From c38d042fe57609ca9a29cdda86cce55441e16f0a Mon Sep 17 00:00:00 2001 From: Marino Faggiana Date: Wed, 6 Nov 2024 10:27:42 +0100 Subject: [PATCH] Version 6.1.4 (#3168) --- .../FileProviderEnumerator.swift | 4 +- Nextcloud.xcodeproj/project.pbxproj | 26 +++- Share/NCShareCell.swift | 5 +- Share/NCShareExtension+DataSource.swift | 2 +- ...reExtension+NCAccountRequestDelegate.swift | 22 +-- Share/NCShareExtension.swift | 45 ++++-- .../Data/NCManageDatabase+Metadata.swift | 4 + .../UIAlertController+Extension.swift | 142 +++++++++++------- .../NCCollectionViewCommon+MediaLayout.swift | 9 +- .../NCCollectionViewCommon+SelectTabBar.swift | 4 +- iOSClient/Main/NCDragDrop.swift | 35 ++++- iOSClient/Main/NCPickerViewController.swift | 47 ++++-- iOSClient/NCGlobal.swift | 1 + .../Scan document/NCUploadScanDocument.swift | 1 - .../af.lproj/Localizable.strings | Bin 136560 -> 136912 bytes .../an.lproj/Localizable.strings | Bin 135918 -> 136270 bytes .../ar.lproj/Localizable.strings | Bin 134172 -> 134524 bytes .../ast.lproj/Localizable.strings | Bin 137600 -> 137952 bytes .../az.lproj/Localizable.strings | Bin 136242 -> 136594 bytes .../be.lproj/Localizable.strings | Bin 135998 -> 136350 bytes .../bg_BG.lproj/Localizable.strings | Bin 142964 -> 143316 bytes .../bn_BD.lproj/Localizable.strings | Bin 136172 -> 136524 bytes .../br.lproj/Localizable.strings | Bin 139936 -> 140288 bytes .../bs.lproj/Localizable.strings | Bin 136234 -> 136586 bytes .../ca.lproj/Localizable.strings | Bin 142882 -> 143234 bytes .../cs-CZ.lproj/Localizable.strings | Bin 139866 -> 140218 bytes .../cy_GB.lproj/Localizable.strings | Bin 136194 -> 136546 bytes .../da.lproj/Localizable.strings | Bin 137166 -> 137518 bytes .../de.lproj/Localizable.strings | Bin 148558 -> 148910 bytes .../el.lproj/Localizable.strings | Bin 149272 -> 149624 bytes .../en-GB.lproj/Localizable.strings | Bin 136024 -> 136376 bytes .../en.lproj/Localizable.strings | 4 +- .../eo.lproj/Localizable.strings | Bin 136640 -> 136992 bytes .../es-419.lproj/Localizable.strings | Bin 140048 -> 140400 bytes .../es-AR.lproj/Localizable.strings | Bin 139110 -> 139462 bytes .../es-CL.lproj/Localizable.strings | Bin 140766 -> 141118 bytes .../es-CO.lproj/Localizable.strings | Bin 140408 -> 140760 bytes .../es-CR.lproj/Localizable.strings | Bin 140410 -> 140762 bytes .../es-DO.lproj/Localizable.strings | Bin 140406 -> 140758 bytes .../es-EC.lproj/Localizable.strings | Bin 145208 -> 145560 bytes .../es-GT.lproj/Localizable.strings | Bin 140410 -> 140762 bytes .../es-HN.lproj/Localizable.strings | Bin 140032 -> 140384 bytes .../es-MX.lproj/Localizable.strings | Bin 140750 -> 141102 bytes .../es-NI.lproj/Localizable.strings | Bin 140022 -> 140374 bytes .../es-PA.lproj/Localizable.strings | Bin 140022 -> 140374 bytes .../es-PE.lproj/Localizable.strings | Bin 140012 -> 140364 bytes .../es-PR.lproj/Localizable.strings | Bin 140024 -> 140376 bytes .../es-PY.lproj/Localizable.strings | Bin 140048 -> 140400 bytes .../es-SV.lproj/Localizable.strings | Bin 140398 -> 140750 bytes .../es-UY.lproj/Localizable.strings | Bin 140046 -> 140398 bytes .../es.lproj/Localizable.strings | Bin 145446 -> 145798 bytes .../et_EE.lproj/Localizable.strings | Bin 136460 -> 136812 bytes .../eu.lproj/Localizable.strings | Bin 143588 -> 143940 bytes .../fa.lproj/Localizable.strings | Bin 136708 -> 137060 bytes .../fi-FI.lproj/Localizable.strings | Bin 138878 -> 139230 bytes .../fo.lproj/Localizable.strings | Bin 135928 -> 136280 bytes .../fr.lproj/Localizable.strings | Bin 151056 -> 151408 bytes .../ga.lproj/Localizable.strings | Bin 147316 -> 147668 bytes .../gd.lproj/Localizable.strings | Bin 137428 -> 137780 bytes .../gl.lproj/Localizable.strings | Bin 146010 -> 146362 bytes .../he.lproj/Localizable.strings | Bin 134042 -> 134394 bytes .../hi_IN.lproj/Localizable.strings | Bin 135902 -> 136254 bytes .../hr.lproj/Localizable.strings | Bin 140598 -> 140950 bytes .../hsb.lproj/Localizable.strings | Bin 135908 -> 136260 bytes .../hu.lproj/Localizable.strings | Bin 141850 -> 142202 bytes .../hy.lproj/Localizable.strings | Bin 136186 -> 136538 bytes .../ia.lproj/Localizable.strings | Bin 136686 -> 137038 bytes .../id.lproj/Localizable.strings | Bin 136820 -> 137172 bytes .../ig.lproj/Localizable.strings | Bin 135878 -> 136230 bytes .../is.lproj/Localizable.strings | Bin 138128 -> 138480 bytes .../it.lproj/Localizable.strings | Bin 145444 -> 145796 bytes .../ja-JP.lproj/Localizable.strings | Bin 119702 -> 120054 bytes .../ka-GE.lproj/Localizable.strings | Bin 138638 -> 138990 bytes .../ka.lproj/Localizable.strings | Bin 135906 -> 136258 bytes .../kab.lproj/Localizable.strings | Bin 135966 -> 136318 bytes .../km.lproj/Localizable.strings | Bin 136160 -> 136512 bytes .../kn.lproj/Localizable.strings | Bin 136388 -> 136740 bytes .../ko.lproj/Localizable.strings | Bin 114784 -> 115136 bytes .../la.lproj/Localizable.strings | Bin 135892 -> 136244 bytes .../lb.lproj/Localizable.strings | Bin 136370 -> 136722 bytes .../lo.lproj/Localizable.strings | Bin 134822 -> 135174 bytes .../lt_LT.lproj/Localizable.strings | Bin 139020 -> 139372 bytes .../lv.lproj/InfoPlist.strings | Bin 1356 -> 1366 bytes .../lv.lproj/Localizable.strings | Bin 137014 -> 137366 bytes .../mk.lproj/Localizable.strings | Bin 137196 -> 137548 bytes .../mn.lproj/Localizable.strings | Bin 136704 -> 137056 bytes .../mr.lproj/Localizable.strings | Bin 135870 -> 136222 bytes .../ms_MY.lproj/Localizable.strings | Bin 136016 -> 136368 bytes .../my.lproj/Localizable.strings | Bin 136088 -> 136440 bytes .../nb-NO.lproj/Localizable.strings | Bin 138600 -> 138952 bytes .../ne.lproj/Localizable.strings | Bin 135922 -> 136274 bytes .../nl.lproj/Localizable.strings | Bin 141226 -> 141578 bytes .../nn_NO.lproj/Localizable.strings | Bin 136040 -> 136392 bytes .../oc.lproj/Localizable.strings | Bin 137046 -> 137398 bytes .../pl.lproj/Localizable.strings | Bin 140586 -> 140938 bytes .../ps.lproj/Localizable.strings | Bin 135916 -> 136268 bytes .../pt-BR.lproj/Localizable.strings | Bin 143412 -> 143764 bytes .../pt-PT.lproj/Localizable.strings | Bin 139696 -> 140048 bytes .../ro.lproj/Localizable.strings | Bin 139026 -> 139378 bytes .../ru.lproj/Localizable.strings | Bin 143392 -> 143744 bytes .../sc.lproj/Localizable.strings | Bin 144642 -> 144994 bytes .../si.lproj/Localizable.strings | Bin 136782 -> 137134 bytes .../sk-SK.lproj/Localizable.strings | Bin 140722 -> 141074 bytes .../sl.lproj/Localizable.strings | Bin 141648 -> 142000 bytes .../sq.lproj/Localizable.strings | Bin 137684 -> 138036 bytes .../sr.lproj/Localizable.strings | Bin 140298 -> 140666 bytes .../sr@latin.lproj/Localizable.strings | Bin 136206 -> 136558 bytes .../sv.lproj/Localizable.strings | Bin 138270 -> 138622 bytes .../sw.lproj/Localizable.strings | Bin 135902 -> 136254 bytes .../ta.lproj/Localizable.strings | Bin 136240 -> 136592 bytes .../th_TH.lproj/Localizable.strings | Bin 135824 -> 136176 bytes .../tk.lproj/Localizable.strings | Bin 136604 -> 136956 bytes .../tr.lproj/Localizable.strings | Bin 140974 -> 141446 bytes .../ug.lproj/InfoPlist.strings | Bin 1356 -> 1386 bytes .../ug.lproj/Localizable.strings | Bin 136074 -> 140678 bytes .../uk.lproj/Localizable.strings | Bin 138408 -> 138760 bytes .../ur_PK.lproj/Localizable.strings | Bin 135950 -> 136302 bytes .../uz.lproj/Localizable.strings | Bin 135902 -> 136254 bytes .../vi.lproj/Localizable.strings | Bin 137280 -> 137632 bytes .../zh-Hans.lproj/Localizable.strings | Bin 99736 -> 100088 bytes .../zh-Hant-TW.lproj/Localizable.strings | Bin 105764 -> 106116 bytes .../zh_HK.lproj/Localizable.strings | Bin 100348 -> 100700 bytes .../zu_ZA.lproj/Localizable.strings | Bin 135902 -> 136254 bytes .../Utility/FileAutoRenamer+Extensions.swift | 21 +++ .../FileNameValidator+Extensions.swift | 2 - 125 files changed, 266 insertions(+), 108 deletions(-) create mode 100644 iOSClient/Utility/FileAutoRenamer+Extensions.swift diff --git a/File Provider Extension/FileProviderEnumerator.swift b/File Provider Extension/FileProviderEnumerator.swift index 671091d1ab..0b3a92aadb 100644 --- a/File Provider Extension/FileProviderEnumerator.swift +++ b/File Provider Extension/FileProviderEnumerator.swift @@ -40,7 +40,7 @@ class FileProviderEnumerator: NSObject, NSFileProviderEnumerator { serverUrl = NCUtilityFileSystem().getHomeServer(session: fileProviderData.shared.session) } else { if let metadata = providerUtility.getTableMetadataFromItemIdentifier(enumeratedItemIdentifier), - let directorySource = self.database.getTableDirectory(predicate: NSPredicate(format: "account == %@ AND serverUrl == %@", metadata.account, metadata.serverUrl)) { + let directorySource = self.database.getTableDirectory(predicate: NSPredicate(format: "account == %@ AND serverUrl == %@ AND NOT (status IN %@)", metadata.account, metadata.serverUrl, NCGlobal.shared.metadataStatusHideInFileExtension)) { serverUrl = directorySource.serverUrl + "/" + metadata.fileName } @@ -158,7 +158,7 @@ class FileProviderEnumerator: NSObject, NSFileProviderEnumerator { } func fetchItemsForPage(serverUrl: String, pageNumber: Int, completionHandler: @escaping (_ metadatas: Results?) -> Void) { - let predicate = NSPredicate(format: "account == %@ AND serverUrl == %@", fileProviderData.shared.session.account, serverUrl) + let predicate = NSPredicate(format: "account == %@ AND serverUrl == %@ AND NOT (status IN %@)", fileProviderData.shared.session.account, serverUrl, NCGlobal.shared.metadataStatusHideInFileExtension) if pageNumber == 1 { NextcloudKit.shared.readFileOrFolder(serverUrlFileName: serverUrl, depth: "1", showHiddenFiles: NCKeychain().showHiddenFiles, account: fileProviderData.shared.session.account) { _, files, _, error in diff --git a/Nextcloud.xcodeproj/project.pbxproj b/Nextcloud.xcodeproj/project.pbxproj index 1d5b85e9d5..424115483c 100644 --- a/Nextcloud.xcodeproj/project.pbxproj +++ b/Nextcloud.xcodeproj/project.pbxproj @@ -148,6 +148,13 @@ F37208C62BAB63F0006B5430 /* LRUCache in Frameworks */ = {isa = PBXBuildFile; productRef = F37208C52BAB63F0006B5430 /* LRUCache */; }; F37208C82BAB63F1006B5430 /* KeychainAccess in Frameworks */ = {isa = PBXBuildFile; productRef = F37208C72BAB63F1006B5430 /* KeychainAccess */; }; F38F71252B6BBDC300473CDC /* NCCollectionViewCommonSelectTabBar.swift in Sources */ = {isa = PBXBuildFile; fileRef = F38F71242B6BBDC300473CDC /* NCCollectionViewCommonSelectTabBar.swift */; }; + F39170A92CB82024006127BC /* FileAutoRenamer+Extensions.swift in Sources */ = {isa = PBXBuildFile; fileRef = F39170A82CB8201B006127BC /* FileAutoRenamer+Extensions.swift */; }; + F39170AA2CB82024006127BC /* FileAutoRenamer+Extensions.swift in Sources */ = {isa = PBXBuildFile; fileRef = F39170A82CB8201B006127BC /* FileAutoRenamer+Extensions.swift */; }; + F39170AB2CB82024006127BC /* FileAutoRenamer+Extensions.swift in Sources */ = {isa = PBXBuildFile; fileRef = F39170A82CB8201B006127BC /* FileAutoRenamer+Extensions.swift */; }; + F39170AC2CB82024006127BC /* FileAutoRenamer+Extensions.swift in Sources */ = {isa = PBXBuildFile; fileRef = F39170A82CB8201B006127BC /* FileAutoRenamer+Extensions.swift */; }; + F39170AD2CB82024006127BC /* FileAutoRenamer+Extensions.swift in Sources */ = {isa = PBXBuildFile; fileRef = F39170A82CB8201B006127BC /* FileAutoRenamer+Extensions.swift */; }; + F39170AE2CB82024006127BC /* FileAutoRenamer+Extensions.swift in Sources */ = {isa = PBXBuildFile; fileRef = F39170A82CB8201B006127BC /* FileAutoRenamer+Extensions.swift */; }; + F39170AF2CB82024006127BC /* FileAutoRenamer+Extensions.swift in Sources */ = {isa = PBXBuildFile; fileRef = F39170A82CB8201B006127BC /* FileAutoRenamer+Extensions.swift */; }; F39298972A3B12CB00509762 /* BaseNCMoreCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = F39298962A3B12CB00509762 /* BaseNCMoreCell.swift */; }; F3953BD72A6E87E000EE03F9 /* BaseIntegrationXCTestCase.swift in Sources */ = {isa = PBXBuildFile; fileRef = F3953BD62A6E87E000EE03F9 /* BaseIntegrationXCTestCase.swift */; }; F3A047972BD2668800658E7B /* NCAssistantEmptyView.swift in Sources */ = {isa = PBXBuildFile; fileRef = F3A0478F2BD2668800658E7B /* NCAssistantEmptyView.swift */; }; @@ -1204,6 +1211,7 @@ F37208742BAB4AB0006B5430 /* TestConstants.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = TestConstants.swift; sourceTree = ""; }; F37208772BAB4B5D006B5430 /* BaseXCTestCase.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = BaseXCTestCase.swift; sourceTree = ""; }; F38F71242B6BBDC300473CDC /* NCCollectionViewCommonSelectTabBar.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = NCCollectionViewCommonSelectTabBar.swift; sourceTree = ""; }; + F39170A82CB8201B006127BC /* FileAutoRenamer+Extensions.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "FileAutoRenamer+Extensions.swift"; sourceTree = ""; }; F39298962A3B12CB00509762 /* BaseNCMoreCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = BaseNCMoreCell.swift; sourceTree = ""; }; F3953BD62A6E87E000EE03F9 /* BaseIntegrationXCTestCase.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = BaseIntegrationXCTestCase.swift; sourceTree = ""; }; F3998E192B4879B2007CA5DE /* CoreAudioTypes.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreAudioTypes.framework; path = System/Library/Frameworks/CoreAudioTypes.framework; sourceTree = SDKROOT; }; @@ -2849,6 +2857,7 @@ F7245923289BB50B00474787 /* ThreadSafeDictionary.swift */, F33EE6F12BF4C9B200CA1A51 /* PKCS12.swift */, F33918C32C7CD8F2002D9AA1 /* FileNameValidator+Extensions.swift */, + F39170A82CB8201B006127BC /* FileAutoRenamer+Extensions.swift */, ); path = Utility; sourceTree = ""; @@ -4017,6 +4026,7 @@ files = ( F73EF7BD2B0224AB0087E6E9 /* NCManageDatabase+ExternalSites.swift in Sources */, F71433E72C778FFB00E20B5A /* NotificationCenter+MainThread.swift in Sources */, + F39170AA2CB82024006127BC /* FileAutoRenamer+Extensions.swift in Sources */, F73EF7C52B02250B0087E6E9 /* NCManageDatabase+GPS.swift in Sources */, 2C1D5D7923E2DE9100334ABB /* NCBrand.swift in Sources */, F770768A263A8A2500A1BA94 /* NCUtilityFileSystem.swift in Sources */, @@ -4151,6 +4161,7 @@ F757CC8729E7F88B00F31428 /* NCManageDatabase+Groupfolders.swift in Sources */, F33EE6F72BF4C9B200CA1A51 /* PKCS12.swift in Sources */, F7B769AD2B7A0B2000C1AAEB /* NCManageDatabase+Metadata+Session.swift in Sources */, + F39170AC2CB82024006127BC /* FileAutoRenamer+Extensions.swift in Sources */, F73EF7BC2B0224AB0087E6E9 /* NCManageDatabase+ExternalSites.swift in Sources */, F724377E2C10B92300C7C68D /* NCPermissions.swift in Sources */, F73EF7B42B0224350087E6E9 /* NCManageDatabase+DirectEditing.swift in Sources */, @@ -4232,6 +4243,7 @@ F7BD71E62636EAFC00643C34 /* NCNetworkingE2EE.swift in Sources */, F7F878AF1FB9E3B900599E4F /* NCEndToEndMetadata.swift in Sources */, F7327E3B2B73B8D600A462C7 /* Array+Extension.swift in Sources */, + F39170AF2CB82024006127BC /* FileAutoRenamer+Extensions.swift in Sources */, F799DF832C4B7DCC003410B5 /* NCSectionFooter.swift in Sources */, AF22B218277D196700DAB0CC /* NCShareExtension+Files.swift in Sources */, F799DF862C4B7E56003410B5 /* NCSectionHeader.swift in Sources */, @@ -4306,6 +4318,7 @@ F73EF7D02B0225BA0087E6E9 /* NCManageDatabase+Tag.swift in Sources */, F783030228B4C4B800B84583 /* NCUtility.swift in Sources */, F711D63128F44801003F43C8 /* IntentHandler.swift in Sources */, + F39170AE2CB82024006127BC /* FileAutoRenamer+Extensions.swift in Sources */, F76DEE9728F808AF0041B1C9 /* LockscreenData.swift in Sources */, F72EA95A28B7BD0D00C88F0C /* FilesWidgetView.swift in Sources */, F768823C2C0DD231001CF441 /* NCKeychain.swift in Sources */, @@ -4449,6 +4462,7 @@ F7BFFD2C2C8854690029A201 /* NCHud.swift in Sources */, F771E3F820E239B500AFB62D /* FileProviderExtension+Thumbnail.swift in Sources */, F76882392C0DD230001CF441 /* NCKeychain.swift in Sources */, + F39170AB2CB82024006127BC /* FileAutoRenamer+Extensions.swift in Sources */, F343A4BF2A1E734600DDA874 /* Optional+Extension.swift in Sources */, AF4BF62027562B3F0081CEEF /* NCManageDatabase+Activity.swift in Sources */, F73ADD2226554FD10069EA0D /* NCContentPresenter.swift in Sources */, @@ -4467,6 +4481,7 @@ F7E7AEA72BA32D0000512E52 /* NCCollectionViewUnifiedSearch.swift in Sources */, F73EF7A72B0223900087E6E9 /* NCManageDatabase+Comments.swift in Sources */, F33918C42C7CD8F2002D9AA1 /* FileNameValidator+Extensions.swift in Sources */, + F39170AD2CB82024006127BC /* FileAutoRenamer+Extensions.swift in Sources */, F799DF882C4B83CC003410B5 /* NCCollectionViewCommon+EasyTipView.swift in Sources */, F7AE00F8230E81CB007ACF8A /* NCBrowserWeb.swift in Sources */, F77DD6A82C5CC093009448FB /* NCSession.swift in Sources */, @@ -4770,6 +4785,7 @@ F7C9B91F2B582F550064EA91 /* NCManageDatabase+SecurityGuard.swift in Sources */, F75DD767290ABB25002EB562 /* Intent.intentdefinition in Sources */, F72437812C10B92500C7C68D /* NCPermissions.swift in Sources */, + F39170A92CB82024006127BC /* FileAutoRenamer+Extensions.swift in Sources */, F749B64C297B0CBB00087535 /* NCManageDatabase+Share.swift in Sources */, F7A8D73F28F181EF008BBE1C /* NCGlobal.swift in Sources */, F74B6D972A7E239A00F03C5F /* NCManageDatabase+Chunk.swift in Sources */, @@ -5682,7 +5698,7 @@ CLANG_WARN_UNREACHABLE_CODE = YES; CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; COPY_PHASE_STRIP = NO; - CURRENT_PROJECT_VERSION = 0; + CURRENT_PROJECT_VERSION = 2; DEBUG_INFORMATION_FORMAT = dwarf; DEVELOPMENT_TEAM = NKUJUXUJ3B; ENABLE_STRICT_OBJC_MSGSEND = YES; @@ -5709,7 +5725,7 @@ "@executable_path/Frameworks", "@executable_path/../../Frameworks", ); - MARKETING_VERSION = 6.1.3; + MARKETING_VERSION = 6.1.4; ONLY_ACTIVE_ARCH = YES; OTHER_CFLAGS = "-v"; OTHER_LDFLAGS = ""; @@ -5748,7 +5764,7 @@ CLANG_WARN_UNREACHABLE_CODE = YES; CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; COPY_PHASE_STRIP = NO; - CURRENT_PROJECT_VERSION = 0; + CURRENT_PROJECT_VERSION = 2; DEVELOPMENT_TEAM = NKUJUXUJ3B; ENABLE_STRICT_OBJC_MSGSEND = YES; ENABLE_TESTABILITY = YES; @@ -5772,7 +5788,7 @@ "@executable_path/Frameworks", "@executable_path/../../Frameworks", ); - MARKETING_VERSION = 6.1.3; + MARKETING_VERSION = 6.1.4; ONLY_ACTIVE_ARCH = YES; OTHER_CFLAGS = "-v"; OTHER_LDFLAGS = ""; @@ -6047,7 +6063,7 @@ repositoryURL = "https://github.com/nextcloud/NextcloudKit"; requirement = { kind = exactVersion; - version = 5.0.0; + version = 5.0.1; }; }; F788ECC5263AAAF900ADC67F /* XCRemoteSwiftPackageReference "MarkdownKit" */ = { diff --git a/Share/NCShareCell.swift b/Share/NCShareCell.swift index 047652f93e..ba27c71da8 100644 --- a/Share/NCShareCell.swift +++ b/Share/NCShareCell.swift @@ -27,7 +27,8 @@ import NextcloudKit protocol NCShareCellDelegate: AnyObject { var uploadStarted: Bool { get } func removeFile(named fileName: String) - func renameFile(named fileName: String, account: String) + func showRenameFileDialog(named fileName: String, account: String) + func renameFile(oldName: String, newName: String, account: String) } class NCShareCell: UITableViewCell { @@ -71,7 +72,7 @@ class NCShareCell: UITableViewCell { let alertController = UIAlertController(title: "", message: fileName, preferredStyle: .alert) alertController.addAction(UIAlertAction(title: NSLocalizedString("_rename_file_", comment: ""), style: .default) { _ in - self.delegate?.renameFile(named: self.fileName, account: self.account) + self.delegate?.showRenameFileDialog(named: self.fileName, account: self.account) }) alertController.addAction(UIAlertAction(title: NSLocalizedString("_remove_file_", comment: ""), style: .default) { _ in diff --git a/Share/NCShareExtension+DataSource.swift b/Share/NCShareExtension+DataSource.swift index ae9e84f5bc..c54965087b 100644 --- a/Share/NCShareExtension+DataSource.swift +++ b/Share/NCShareExtension+DataSource.swift @@ -176,7 +176,7 @@ extension NCShareExtension: UITableViewDelegate { func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) { guard !uploadStarted else { return } let fileName = filesName[indexPath.row] - renameFile(named: fileName, account: session.account) + showRenameFileDialog(named: fileName, account: session.account) } } diff --git a/Share/NCShareExtension+NCAccountRequestDelegate.swift b/Share/NCShareExtension+NCAccountRequestDelegate.swift index a64f425b12..c6633c5df6 100644 --- a/Share/NCShareExtension+NCAccountRequestDelegate.swift +++ b/Share/NCShareExtension+NCAccountRequestDelegate.swift @@ -111,21 +111,25 @@ extension NCShareExtension: NCCreateFormUploadConflictDelegate { } extension NCShareExtension: NCShareCellDelegate { - func renameFile(named fileName: String, account: String) { + func showRenameFileDialog(named fileName: String, account: String) { let alert = UIAlertController.renameFile(fileName: fileName, account: account) { [self] newFileName in - guard let fileIx = self.filesName.firstIndex(of: fileName), - !self.filesName.contains(newFileName), - utilityFileSystem.moveFile(atPath: (NSTemporaryDirectory() + fileName), toPath: (NSTemporaryDirectory() + newFileName)) else { - return showAlert(title: "_single_file_conflict_title_", description: "'\(fileName)' -> '\(newFileName)'") - } - - filesName[fileIx] = newFileName - tableView.reloadData() + renameFile(oldName: fileName, newName: newFileName, account: account) } present(alert, animated: true) } + func renameFile(oldName: String, newName: String, account: String) { + guard let fileIx = self.filesName.firstIndex(of: oldName), + !self.filesName.contains(newName), + utilityFileSystem.moveFile(atPath: (NSTemporaryDirectory() + oldName), toPath: (NSTemporaryDirectory() + newName)) else { + return showAlert(title: "_single_file_conflict_title_", description: "'\(oldName)' -> '\(newName)'") + } + + filesName[fileIx] = newName + tableView.reloadData() + } + func removeFile(named fileName: String) { guard let index = self.filesName.firstIndex(of: fileName) else { return showAlert(title: "_file_not_found_", description: fileName) diff --git a/Share/NCShareExtension.swift b/Share/NCShareExtension.swift index 05ac2e6bb2..a767d97a13 100644 --- a/Share/NCShareExtension.swift +++ b/Share/NCShareExtension.swift @@ -285,17 +285,41 @@ extension NCShareExtension { guard !filesName.isEmpty else { return showAlert(description: "_files_no_files_") } counterUploaded = 0 - uploadStarted = true uploadErrors = [] + var dismissAfterUpload = true var conflicts: [tableMetadata] = [] - for fileName in filesName { - if let fileNameError = FileNameValidator.shared.checkFileName(fileName, account: session.account) { - present(UIAlertController.warning(message: "\(fileNameError.errorDescription) \(NSLocalizedString("_please_rename_file_", comment: ""))"), animated: true) + var invalidNameIndexes: [Int] = [] + + for (index, fileName) in filesName.enumerated() { + let newFileName = FileAutoRenamer.shared.rename(fileName, account: session.account) + + if fileName != newFileName { + renameFile(oldName: fileName, newName: newFileName, account: session.account) + } + + if let fileNameError = FileNameValidator.shared.checkFileName(newFileName, account: session.account) { + if filesName.count == 1 { + showRenameFileDialog(named: fileName, account: account) + return + } else { + present(UIAlertController.warning(message: "\(fileNameError.errorDescription) \(NSLocalizedString("_please_rename_file_", comment: ""))") { + self.extensionContext?.completeRequest(returningItems: self.extensionContext?.inputItems, completionHandler: nil) + }, animated: true) + + invalidNameIndexes.append(index) + dismissAfterUpload = false + continue + } - continue } + } + + for index in invalidNameIndexes.reversed() { + filesName.remove(at: index) + } + for fileName in filesName { let ocId = NSUUID().uuidString let toPath = utilityFileSystem.getDirectoryProviderStorageOcId(ocId, fileNameView: fileName) guard utilityFileSystem.copyFile(atPath: (NSTemporaryDirectory() + fileName), toPath: toPath) else { continue } @@ -320,6 +344,8 @@ extension NCShareExtension { } } + tableView.reloadData() + if !conflicts.isEmpty { guard let conflict = UIStoryboard(name: "NCCreateFormUploadConflict", bundle: nil).instantiateInitialViewController() as? NCCreateFormUploadConflict else { return } @@ -330,13 +356,14 @@ extension NCShareExtension { conflict.delegate = self self.present(conflict, animated: true, completion: nil) } else { - upload() + uploadStarted = true + upload(dismissAfterUpload: dismissAfterUpload) } } - func upload() { + func upload(dismissAfterUpload: Bool = true) { guard uploadStarted else { return } - guard uploadMetadata.count > counterUploaded else { return DispatchQueue.main.async { self.finishedUploading() } } + guard uploadMetadata.count > counterUploaded else { return DispatchQueue.main.async { self.finishedUploading(dismissAfterUpload: dismissAfterUpload) } } let metadata = uploadMetadata[counterUploaded] let results = NextcloudKit.shared.nkCommonInstance.getInternalType(fileName: metadata.fileNameView, mimeType: metadata.contentType, directory: false, account: session.account) @@ -374,7 +401,7 @@ extension NCShareExtension { } } - func finishedUploading() { + func finishedUploading(dismissAfterUpload: Bool = true) { uploadStarted = false if !uploadErrors.isEmpty { let fileList = "- " + uploadErrors.map({ $0.fileName }).joined(separator: "\n - ") diff --git a/iOSClient/Data/NCManageDatabase+Metadata.swift b/iOSClient/Data/NCManageDatabase+Metadata.swift index 3daeabbf47..bda2165a99 100644 --- a/iOSClient/Data/NCManageDatabase+Metadata.swift +++ b/iOSClient/Data/NCManageDatabase+Metadata.swift @@ -253,6 +253,10 @@ extension tableMetadata { status == NCGlobal.shared.metadataStatusWaitUpload || status == NCGlobal.shared.metadataStatusUploading } + var isDirectory: Bool { + directory + } + @objc var isDirectoryE2EE: Bool { let session = NCSession.Session(account: account, urlBase: urlBase, user: user, userId: userId) return NCUtilityFileSystem().isDirectoryE2EE(session: session, serverUrl: serverUrl) diff --git a/iOSClient/Extensions/UIAlertController+Extension.swift b/iOSClient/Extensions/UIAlertController+Extension.swift index d6b7efd5c1..a8841023fa 100644 --- a/iOSClient/Extensions/UIAlertController+Extension.swift +++ b/iOSClient/Extensions/UIAlertController+Extension.swift @@ -39,6 +39,9 @@ extension UIAlertController { let okAction = UIAlertAction(title: NSLocalizedString("_save_", comment: ""), style: .default, handler: { _ in guard let fileNameFolder = alertController.textFields?.first?.text else { return } if markE2ee { + if NCNetworking.shared.isOffline { + return NCContentPresenter().showInfo(error: NKError(errorCode: NCGlobal.shared.errorInternalError, errorDescription: "_offline_not_allowed_")) + } Task { let createFolderResults = await NCNetworking.shared.createFolder(serverUrlFileName: serverUrl + "/" + fileNameFolder, account: session.account) if createFolderResults.error == .success { @@ -51,17 +54,28 @@ extension UIAlertController { } } } else if isDirectoryEncrypted { + if NCNetworking.shared.isOffline { + return NCContentPresenter().showInfo(error: NKError(errorCode: NCGlobal.shared.errorInternalError, errorDescription: "_offline_not_allowed_")) + } + #if !EXTENSION Task { await NCNetworkingE2EECreateFolder().createFolder(fileName: fileNameFolder, serverUrl: serverUrl, withPush: true, sceneIdentifier: sceneIdentifier, session: session) } + #endif } else { - NCNetworking.shared.createFolder(fileName: fileNameFolder, serverUrl: serverUrl, overwrite: false, withPush: true, sceneIdentifier: sceneIdentifier, session: session) { error in - if let completion = completion { - DispatchQueue.main.async { completion(error) } - } else if error != .success { - NCContentPresenter().showError(error: error) - } // else: successful, no action - } + let metadataForCreateFolder = NCManageDatabase.shared.createMetadata(fileName: fileNameFolder, + fileNameView: fileNameFolder, + ocId: NSUUID().uuidString, + serverUrl: serverUrl, + url: "", + contentType: "httpd/unix-directory", + directory: true, + session: session, + sceneIdentifier: sceneIdentifier) + metadataForCreateFolder.status = NCGlobal.shared.metadataStatusWaitCreateFolder + metadataForCreateFolder.sessionDate = Date() + NCManageDatabase.shared.addMetadata(metadataForCreateFolder) + NotificationCenter.default.postOnMainThread(name: NCGlobal.shared.notificationCenterCreateFolder, userInfo: ["ocId": metadataForCreateFolder.ocId, "serverUrl": metadataForCreateFolder.serverUrl, "account": metadataForCreateFolder.account, "withPush": true, "sceneIdentifier": sceneIdentifier as Any]) } }) @@ -81,9 +95,28 @@ extension UIAlertController { guard let text = alertController.textFields?.first?.text else { return } let folderName = text.trimmingCharacters(in: .whitespaces) + let newExtension = text.fileExtension + let isFileHidden = FileNameValidator.shared.isFileHidden(text) let textCheck = FileNameValidator.shared.checkFileName(folderName, account: session.account) - okAction.isEnabled = textCheck?.error == nil && !folderName.isEmpty - alertController.message = textCheck?.error.localizedDescription + + okAction.isEnabled = !text.isEmpty && textCheck?.error == nil + + var message = "" + var messageColor = UIColor.label + + if let errorMessage = textCheck?.error.localizedDescription { + message = errorMessage + messageColor = .red + } else if isFileHidden { + message = NSLocalizedString("hidden_file_name_warning", comment: "") + } + + let attributedString = NSAttributedString(string: message, attributes: [ + NSAttributedString.Key.font: UIFont.systemFont(ofSize: 14), + NSAttributedString.Key.foregroundColor: messageColor + ]) + + alertController.setValue(attributedString, forKey: "attributedMessage") } alertController.addAction(cancelAction) @@ -146,8 +179,8 @@ extension UIAlertController { return alertController } - static func renameFile(fileName: String, account: String, completion: @escaping (_ newFileName: String) -> Void) -> UIAlertController { - let alertController = UIAlertController(title: NSLocalizedString("_rename_", comment: ""), message: nil, preferredStyle: .alert) + static func renameFile(fileName: String, isDirectory: Bool = false, account: String, completion: @escaping (_ newFileName: String) -> Void) -> UIAlertController { + let alertController = UIAlertController(title: NSLocalizedString(isDirectory ? "_rename_folder_" : "_rename_file_", comment: ""), message: nil, preferredStyle: .alert) let okAction = UIAlertAction(title: NSLocalizedString("_save_", comment: ""), style: .default, handler: { _ in guard let newFileName = alertController.textFields?.first?.text else { return } @@ -164,6 +197,19 @@ extension UIAlertController { textField.autocapitalizationType = .words } + let oldExtension = fileName.fileExtension + + let text = alertController.textFields?.first?.text ?? "" + let textCheck = FileNameValidator.shared.checkFileName(text, account: account) + var message = textCheck?.error.localizedDescription ?? "" + var messageColor = UIColor.red + + let attributedString = NSAttributedString(string: message, attributes: [ + NSAttributedString.Key.font: UIFont.systemFont(ofSize: 14), + NSAttributedString.Key.foregroundColor: messageColor + ]) + alertController.setValue(attributedString, forKey: "attributedMessage") + // only allow saving if folder name exists NotificationCenter.default.addObserver( forName: UITextField.textDidBeginEditingNotification, @@ -182,10 +228,31 @@ extension UIAlertController { object: alertController.textFields?.first, queue: .main) { _ in guard let text = alertController.textFields?.first?.text else { return } + let newExtension = text.fileExtension let textCheck = FileNameValidator.shared.checkFileName(text, account: account) - okAction.isEnabled = textCheck?.error == nil && !text.isEmpty - alertController.message = textCheck?.error.localizedDescription + let isFileHidden = FileNameValidator.shared.isFileHidden(text) + + okAction.isEnabled = !text.isEmpty && textCheck?.error == nil + + message = "" + messageColor = UIColor.label + + if let errorMessage = textCheck?.error.localizedDescription { + message = errorMessage + messageColor = .red + } else if isFileHidden { + message = NSLocalizedString("hidden_file_name_warning", comment: "") + } else if newExtension != oldExtension { + message = NSLocalizedString("_file_name_new_extension_", comment: "") + } + + + let attributedString = NSAttributedString(string: message, attributes: [ + NSAttributedString.Key.font: UIFont.systemFont(ofSize: 14), + NSAttributedString.Key.foregroundColor: messageColor + ]) + alertController.setValue(attributedString, forKey: "attributedMessage") } alertController.addAction(cancelAction) @@ -193,12 +260,8 @@ extension UIAlertController { return alertController } - static func renameFile(metadata: tableMetadata) -> UIAlertController { - let alertController = UIAlertController(title: NSLocalizedString("_rename_", comment: ""), message: nil, preferredStyle: .alert) - - let okAction = UIAlertAction(title: NSLocalizedString("_save_", comment: ""), style: .default, handler: { _ in - guard let fileNameNew = alertController.textFields?.first?.text else { return } - + static func renameFile(metadata: tableMetadata, completion: @escaping (_ newFileName: String) -> Void = { _ in }) -> UIAlertController { + renameFile(fileName: metadata.fileNameView, isDirectory: metadata.isDirectory, account: metadata.account) { fileNameNew in // verify if already exists if NCManageDatabase.shared.getMetadata(predicate: NSPredicate(format: "account == %@ AND serverUrl == %@ AND fileName == %@", metadata.account, metadata.serverUrl, fileNameNew)) != nil { NCContentPresenter().showError(error: NKError(errorCode: 0, errorDescription: "_rename_already_exists_")) @@ -208,50 +271,15 @@ extension UIAlertController { NCNetworking.shared.renameMetadata(metadata, fileNameNew: fileNameNew) NotificationCenter.default.postOnMainThread(name: NCGlobal.shared.notificationCenterReloadDataSource, userInfo: ["serverUrl": metadata.serverUrl]) - }) - - // text field is initially empty, no action - okAction.isEnabled = false - let cancelAction = UIAlertAction(title: NSLocalizedString("_cancel_", comment: ""), style: .cancel) - alertController.addTextField { textField in - textField.text = metadata.fileNameView - textField.autocapitalizationType = .words + completion(fileNameNew) } - - // only allow saving if folder name exists - NotificationCenter.default.addObserver( - forName: UITextField.textDidBeginEditingNotification, - object: alertController.textFields?.first, - queue: .main) { _ in - guard let textField = alertController.textFields?.first else { return } - - if let start = textField.position(from: textField.beginningOfDocument, offset: 0), - let end = textField.position(from: start, offset: textField.text?.withRemovedFileExtension.count ?? 0) { - textField.selectedTextRange = textField.textRange(from: start, to: end) - } - } - - NotificationCenter.default.addObserver( - forName: UITextField.textDidChangeNotification, - object: alertController.textFields?.first, - queue: .main) { _ in - guard let text = alertController.textFields?.first?.text else { return } - - let textCheck = FileNameValidator.shared.checkFileName(text, account: NCManageDatabase.shared.getActiveTableAccount()?.account) - okAction.isEnabled = textCheck?.error == nil && !text.isEmpty - alertController.message = textCheck?.error.localizedDescription - } - - alertController.addAction(cancelAction) - alertController.addAction(okAction) - return alertController } - static func warning(title: String? = nil, message: String? = nil) -> UIAlertController { + static func warning(title: String? = nil, message: String? = nil, completion: @escaping () -> Void = {}) -> UIAlertController { let alertController = UIAlertController(title: title, message: message, preferredStyle: .alert) - let okAction = UIAlertAction(title: NSLocalizedString("_ok_", comment: ""), style: .default) + let okAction = UIAlertAction(title: NSLocalizedString("_ok_", comment: ""), style: .default) { _ in completion() } alertController.addAction(okAction) diff --git a/iOSClient/Main/Collection Common/NCCollectionViewCommon+MediaLayout.swift b/iOSClient/Main/Collection Common/NCCollectionViewCommon+MediaLayout.swift index ac95c0893e..c45bf1ba11 100644 --- a/iOSClient/Main/Collection Common/NCCollectionViewCommon+MediaLayout.swift +++ b/iOSClient/Main/Collection Common/NCCollectionViewCommon+MediaLayout.swift @@ -74,9 +74,14 @@ extension NCCollectionViewCommon: NCMediaLayoutDelegate { if metadata.imageSize != CGSize.zero { return metadata.imageSize - } else { - return CGSize(width: collectionView.frame.width / CGFloat(columnCount), height: collectionView.frame.width / CGFloat(columnCount)) + } else if metadata.classFile == NKCommon.TypeClassFile.document.rawValue { + let ext = NCGlobal.shared.getSizeExtension(column: self.numberOfColumns) + if let image = self.utility.getImage(ocId: metadata.ocId, etag: metadata.etag, ext: ext) { + return image.size + } } + + return CGSize(width: collectionView.frame.width / CGFloat(columnCount), height: collectionView.frame.width / CGFloat(columnCount)) } } } diff --git a/iOSClient/Main/Collection Common/NCCollectionViewCommon+SelectTabBar.swift b/iOSClient/Main/Collection Common/NCCollectionViewCommon+SelectTabBar.swift index 019c3ce4fc..d08f494692 100644 --- a/iOSClient/Main/Collection Common/NCCollectionViewCommon+SelectTabBar.swift +++ b/iOSClient/Main/Collection Common/NCCollectionViewCommon+SelectTabBar.swift @@ -33,7 +33,7 @@ extension NCCollectionViewCommon: NCCollectionViewCommonSelectTabBarDelegate { fileSelect = self.dataSource.getMetadatas().compactMap({ $0.ocId }) } tabBarSelect.update(fileSelect: fileSelect, metadatas: getSelectedMetadatas(), userId: session.userId) - self.reloadDataSource() + self.collectionView.reloadData() } func delete() { @@ -135,6 +135,6 @@ extension NCCollectionViewCommon: NCCollectionViewCommonSelectTabBarDelegate { navigationController?.interactivePopGestureRecognizer?.isEnabled = !editMode navigationItem.hidesBackButton = editMode searchController(enabled: !editMode) - self.reloadDataSource() + self.collectionView.reloadData() } } diff --git a/iOSClient/Main/NCDragDrop.swift b/iOSClient/Main/NCDragDrop.swift index 65e0c0e229..16cb5263ff 100644 --- a/iOSClient/Main/NCDragDrop.swift +++ b/iOSClient/Main/NCDragDrop.swift @@ -88,6 +88,30 @@ class NCDragDrop: NSObject { } } + var invalidNameIndexes: [Int] = [] + let session = NCSession.shared.getSession(controller: controller) + + for (index, metadata) in metadatas.enumerated() { + if let fileNameError = FileNameValidator.shared.checkFileName(metadata.fileName, account: session.account) { + if metadatas.count == 1 { + let alert = UIAlertController.renameFile(metadata: metadata) { newFileName in + metadatas[index].fileName = newFileName + metadatas[index].fileNameView = newFileName + } + + controller?.present(alert, animated: true) + return nil + } else { + controller?.present(UIAlertController.warning(message: "\(fileNameError.errorDescription) \(NSLocalizedString("_please_rename_file_", comment: ""))"), animated: true) + invalidNameIndexes.append(index) + } + } + } + + for index in invalidNameIndexes.reversed() { + metadatas.remove(at: index) + } + if metadatas.isEmpty { return nil } else { @@ -101,8 +125,15 @@ class NCDragDrop: NSObject { Task { let ocId = NSUUID().uuidString let session = NCSession.shared.getSession(controller: controller) - let fileName = await NCNetworking.shared.createFileName(fileNameBase: url.lastPathComponent, account: session.account, serverUrl: serverUrl) - let fileNamePath = utilityFileSystem.getDirectoryProviderStorageOcId(ocId, fileNameView: fileName) + let newFileName = FileAutoRenamer.shared.rename(url.lastPathComponent, account: session.account) + let fileNamePath = utilityFileSystem.getDirectoryProviderStorageOcId(ocId, fileNameView: newFileName) + + if let fileNameError = FileNameValidator.shared.checkFileName(newFileName, account: session.account) { + await controller?.present(UIAlertController.warning(message: "\(fileNameError.errorDescription) \(NSLocalizedString("_please_rename_file_", comment: ""))"), animated: true) + return + } + + let fileName = await NCNetworking.shared.createFileName(fileNameBase: newFileName, account: session.account, serverUrl: serverUrl) try data.write(to: URL(fileURLWithPath: fileNamePath)) diff --git a/iOSClient/Main/NCPickerViewController.swift b/iOSClient/Main/NCPickerViewController.swift index 8c413db174..42f806ab28 100644 --- a/iOSClient/Main/NCPickerViewController.swift +++ b/iOSClient/Main/NCPickerViewController.swift @@ -135,9 +135,9 @@ class NCDocumentPickerViewController: NSObject, UIDocumentPickerDelegate { func documentPicker(_ controller: UIDocumentPickerViewController, didPickDocumentsAt urls: [URL]) { let session = NCSession.shared.getSession(controller: self.controller) if isViewerMedia, - let urlIn = urls.first, - let url = self.copySecurityScopedResource(url: urlIn, urlOut: FileManager.default.temporaryDirectory.appendingPathComponent(urlIn.lastPathComponent)), - let viewController = self.viewController { + let urlIn = urls.first, + let url = self.copySecurityScopedResource(url: urlIn, urlOut: FileManager.default.temporaryDirectory.appendingPathComponent(urlIn.lastPathComponent)), + let viewController = self.viewController { let ocId = NSUUID().uuidString let fileName = url.lastPathComponent let metadata = database.createMetadata(fileName: fileName, @@ -154,7 +154,7 @@ class NCDocumentPickerViewController: NSObject, UIDocumentPickerDelegate { } if let fileNameError = FileNameValidator.shared.checkFileName(metadata.fileNameView, account: self.controller.account) { - controller.present(UIAlertController.warning(message: "\(fileNameError.errorDescription) \(NSLocalizedString("_please_rename_file_", comment: ""))"), animated: true) + self.controller.present(UIAlertController.warning(message: "\(fileNameError.errorDescription) \(NSLocalizedString("_please_rename_file_", comment: ""))"), animated: true) } else { database.addMetadata(metadata) NCViewer().view(viewController: viewController, metadata: metadata) @@ -167,15 +167,16 @@ class NCDocumentPickerViewController: NSObject, UIDocumentPickerDelegate { for urlIn in urls { let ocId = NSUUID().uuidString - let fileName = urlIn.lastPathComponent - let toPath = utilityFileSystem.getDirectoryProviderStorageOcId(ocId, fileNameView: fileName) + let newFileName = FileAutoRenamer.shared.rename(fileName, account: session.account) + + let toPath = utilityFileSystem.getDirectoryProviderStorageOcId(ocId, fileNameView: newFileName) let urlOut = URL(fileURLWithPath: toPath) guard self.copySecurityScopedResource(url: urlIn, urlOut: urlOut) != nil else { continue } - let metadataForUpload = database.createMetadata(fileName: fileName, - fileNameView: fileName, + let metadataForUpload = database.createMetadata(fileName: newFileName, + fileNameView: newFileName, ocId: ocId, serverUrl: serverUrl, url: "", @@ -183,11 +184,6 @@ class NCDocumentPickerViewController: NSObject, UIDocumentPickerDelegate { session: session, sceneIdentifier: self.controller.sceneIdentifier) - if let fileNameError = FileNameValidator.shared.checkFileName(metadataForUpload.fileNameView, account: self.controller.account) { - controller.present(UIAlertController.warning(message: "\(fileNameError.errorDescription) \(NSLocalizedString("_please_rename_file_", comment: ""))"), animated: true) - continue - } - metadataForUpload.session = NCNetworking.shared.sessionUploadBackground metadataForUpload.sessionSelector = NCGlobal.shared.selectorUploadFile metadataForUpload.size = utilityFileSystem.getFileSize(filePath: toPath) @@ -201,6 +197,31 @@ class NCDocumentPickerViewController: NSObject, UIDocumentPickerDelegate { } } + var invalidNameIndexes: [Int] = [] + + for (index, metadata) in metadatas.enumerated() { + if let fileNameError = FileNameValidator.shared.checkFileName(metadata.fileName, account: session.account) { + if metadatas.count == 1 { + let alert = UIAlertController.renameFile(fileName: metadata.fileName, account: session.account) { newFileName in + metadatas[index].fileName = newFileName + metadatas[index].fileNameView = newFileName + + NCNetworkingProcess.shared.createProcessUploads(metadatas: metadatas) + } + + self.controller.present(alert, animated: true) + return + } else { + self.controller.present(UIAlertController.warning(message: "\(fileNameError.errorDescription) \(NSLocalizedString("_please_rename_file_", comment: ""))"), animated: true) + invalidNameIndexes.append(index) + } + } + } + + for index in invalidNameIndexes.reversed() { + metadatas.remove(at: index) + } + NCNetworkingProcess.shared.createProcessUploads(metadatas: metadatas) if !metadatasInConflict.isEmpty { diff --git a/iOSClient/NCGlobal.swift b/iOSClient/NCGlobal.swift index 67e1a3474e..ab0f5beff8 100644 --- a/iOSClient/NCGlobal.swift +++ b/iOSClient/NCGlobal.swift @@ -281,6 +281,7 @@ class NCGlobal: NSObject { let metadataStatusInTransfer = [-1, -2, 1, 2] let metadataStatusFileDown = [-1, -2, -3] let metadataStatusHideInView = [1, 2, 3, 11] + let metadataStatusHideInFileExtension = [1, 2, 3, 10, 11] let metadataStatusObserve = [-1, 1, 10, 11, 12, 13, 14, 15] let metadataStatusWaitWebDav = [10, 11, 12, 13, 14, 15] diff --git a/iOSClient/Scan document/NCUploadScanDocument.swift b/iOSClient/Scan document/NCUploadScanDocument.swift index 8ca8d9fa72..450d1e53a1 100644 --- a/iOSClient/Scan document/NCUploadScanDocument.swift +++ b/iOSClient/Scan document/NCUploadScanDocument.swift @@ -382,7 +382,6 @@ struct UploadScanDocumentView: View { footer = fileNameError.errorDescription } else { footer = "" - } } } diff --git a/iOSClient/Supporting Files/af.lproj/Localizable.strings b/iOSClient/Supporting Files/af.lproj/Localizable.strings index 147b45a457114de3f6e57112602989aebae38c8f..0b6fcd22dccb49443bbf5c9fbc173ac45f825477 100644 GIT binary patch delta 249 zcmeycisQmsj)oS-Ellr3rt=9giLmA|q%xFG|1QL&IC;%tF7r%=Jce`z1%?ua44{Mp z5LW=%sX)HUICq7LOiP7V+%03}j^PALVlLDqwmC;*i!0G*S`kOG7trz$X{fz_un N=rJfUSTk@j005TeJ8S>| delta 40 ycmV+@0N4M}tqAa{2!MnEv;yuFm(mpiDw7Zh3X`zD2A6=z0R)q<%nFwf76Lj}rw>8^ diff --git a/iOSClient/Supporting Files/an.lproj/Localizable.strings b/iOSClient/Supporting Files/an.lproj/Localizable.strings index a2332e26f3c1e1ca870557db0c4bd3e414b4bbd0..eedbce6983fc94accad5956c743c69a584602e5b 100644 GIT binary patch delta 267 zcmaF2l;hkAj)oS-ElfE=)7J?yiSXtzq%xEM(MFFTV zZ+hWwM(OEd=NQGNCkQc_OniC1(?Kh@_>fr0(Hg% zU6jaB1hfpOA83^l&`et(R$}mjs!#x`$YjU?LIt3@RG{NZfozb2KspqFsuX|@%w$Lb WLXhJX7}CJ%QyKJtrdTs@F#rIl;yhje delta 36 ucmV+<0Nel0s0i+*2!MnEv;u4rmrxS|DwA-M3X{+$2A9CC0TP#z69P5}mJKri diff --git a/iOSClient/Supporting Files/ar.lproj/Localizable.strings b/iOSClient/Supporting Files/ar.lproj/Localizable.strings index 0928c85ad18b2e86220d373d66ff759b9f5acf69..1e355dbefe330ab70cc7cb1bb4f96703a36fa9bf 100644 GIT binary patch delta 298 zcmbO;gX7OEj)oS-Eld-*r{CdV5@F3_NM$IWzLAqjvEG>>gCUV2k0G5Q6HF>FlmJCi z85DrH0?1AUiWURq@`1DhLoSe&4wNqevXg=ON`Z19wIDs2K(+!y8j#L`isb|O`3wbM zGZcX0AQKXSI0eW~1Hx2>A`Y-5(75UA4={=|=`l=i<7P6M{K1fI`YCRvAV#IhhHJ#9 zXK^y|B$Wg876HwGxKjyejx7)?G57(+bHO&2gYC`%iWUL+#X#5PfL)5P8RW_oAO!ge N;Z{AMDb@^J3;?i9JwX5f delta 31 ncmew}i(}3Vj)oS-Eld-*rM(O93d7 zH+}CxM(N2RGnA(PlVH-CJi(Z4@|sw_>28utR=i4JO(_g1Am!6-C78q~r%mOXzCe^o u#GxFhIR^+87>asQ|QC0a-7Qmj+g!%Am)f#9+<9#Q*>&Avbma delta 35 rcmaE`m7`%ZM?(wa7N&m^(;rDPX-!se;hH=_gKe_jIlk!%QcP9={f7)> diff --git a/iOSClient/Supporting Files/az.lproj/Localizable.strings b/iOSClient/Supporting Files/az.lproj/Localizable.strings index 48d8e559384b9ce6c385e652f98bd966350e1f2e..b1fd764de3ee2ee6490c162deb60998391e8f7f0 100644 GIT binary patch delta 237 zcmYj~yAALKBx+FAzlnM=TPhd#;J`;uGFfHIGo#W$X`4*B@GyqP8WS~9E!T%pmhQ_a1lwa;F1D%$Ry`&kTeZy!F)oH2 u=H*Mi>65tRb5txHOXXWWk10pfaIj+GG%61xnsNP4;Wdi#4r-{Ni6njn_BD0@ delta 39 xcmV+?0NDSMs|d2F2!MnEv;wdbmy{F&Dv~1zlR&-*lYl)Amk_T31eewn0yZE%4OsvH diff --git a/iOSClient/Supporting Files/be.lproj/Localizable.strings b/iOSClient/Supporting Files/be.lproj/Localizable.strings index 2239e6a719ac3a0ee3de8e6a57a595465ce76508..b5f17436942d0c3e6e85b47312766c9766ec8e02 100644 GIT binary patch delta 243 zcmdnDjAPzPj)oS-ElhiarvDRU5@F3_NM$IWepG--aq_!GT(+4Ec?{_c3JfI-89)gI zAg%ziQ-Pwz44Dl1Kw5zz7syHn%9jAy$qb1Mr9e55+LFl!eTApH6)*}&f{alBN+~d; z02QYJVJbrr$e8IL&oW9+-yp7taG~ z%>^otXDA14#)vJ25Rf%?6r~{dJIYo)(l(> E0ChMx-~a#s delta 41 zcmV+^0M`GWsR+KN2!MnEv;w>mm!J~@Dw7~b3X||<2A6;u0S=cSt^ov>;u8WkLZ=QJ diff --git a/iOSClient/Supporting Files/bg_BG.lproj/Localizable.strings b/iOSClient/Supporting Files/bg_BG.lproj/Localizable.strings index 926d182ada81174a0ebf0fd49978019db51a75b8..f9ebaae2d3117c9a2fdaade1198b3aa2e7f68b14 100644 GIT binary patch delta 266 zcmYk0Jqp4=5JtZ&2tlwBCG8rp&=|!wVr8#q@F$6aMlq4J7P*1NcAh}6@hFypcL;Vi zepw4;*kzb`^JZQT^ZqoCnQ;@jt1gbHl_K~^)!Pw``Up!*5h27%{}Kt7YSIywC9z>K zB#=O2PV9gfzUpO$c$iAXG%2Miy3-Ahi_b5rH6Xsc?=s41^2yoych zis+(1RNocWEami`mhT-lO+!8#W7apsBvSU)45`gA&spo!e!Ksqqyo+R=+ZJk86Q;M BILZJ3 delta 35 rcmca|pX19Nj)oS-Eli(ur(e@!(we-%jcc-j4cp|JB);h)`b<^;8*L3@ diff --git a/iOSClient/Supporting Files/bn_BD.lproj/Localizable.strings b/iOSClient/Supporting Files/bn_BD.lproj/Localizable.strings index ea4f86d284ce922562a689f04af0c07f4da60c7a..2d142b085c9573c2f80e148df074013d1d0c6922 100644 GIT binary patch delta 244 zcmaE}oa4+Yj)oS-ElgR$llk(vrt1kZaq;Fcq%xErtwVA5@ynxEMUwwc}5K1^i9G{R*XuM>(`1; z*AZmm;VlR1EdrVWGADhyqY#s*d^wPl1B41-gNlK+=YU-TwQBPIwUQiq3`z{v3|tHV D65=}a delta 36 scmX@JisQ|4j)oS-ElgR$)BQx4v?e>e=bHRMl5Kjx1V+B;Jt9n200#IB-T(jq diff --git a/iOSClient/Supporting Files/br.lproj/Localizable.strings b/iOSClient/Supporting Files/br.lproj/Localizable.strings index e6b3ee1520e7cec1cda5250ffa6bbfc206bb5125..fc2a85fe819c99f7c5f5bce64b633ebfb31650cc 100644 GIT binary patch delta 234 zcmXX=O$$L$6r6jDBt#K5&viG-!bVw8_yzI{lz2RaCm%ga3oF~ZxY^m+QubEL5Aj3H zlV)+|%$YgoTwbxmJ9apVhjg@Umt;1wgp0sdlq{RxHEtT~bj8IUTgpppFoVykuppbl zqpmQ*5IbyarX%u2Maie=WA%$D8pFWQhzqVmt`hH9z!~V0z(Ny z22er)h%12XRG?@vLncE$kXB&G1+vnC@+ClaGD9LmDNrtT`a@$z(dj{bj6%#nGp4WK z!zev{8!sc@bc3Ue9FuoV>$e-LJ}Vpd|vm_ApKNql;aAQKmF zInbygpaozjOs^MW5_KpCa&mxB0Vt6Qw51ft2H6Tyq5xE`0CYtrLkbXrT&Td123DWS NpvR!ZV9mhA007JiI}HE; delta 35 rcmeBL&9Q0)M?(wa7N!-#(|bgiv?kAc&owzAjcwX`Mxp8FM3~F~_xKG1 diff --git a/iOSClient/Supporting Files/ca.lproj/Localizable.strings b/iOSClient/Supporting Files/ca.lproj/Localizable.strings index d65366793b24f91ab2834660b23d934df8c244b4..0103e0060f9d0fd782815521dabc02fca33f06e3 100644 GIT binary patch delta 241 zcmZ23_AE#HAG&av3s#LK#3I1%_mXM21p^VxU%_lF17Lg(ugUu_@;>6aYo?fMOu+ z3P3dq3@Jc%8W5&36oKTX^WJBap6oY|XZiwNCauZuOxPyZCGbsuq03~&s5JTEHu34N zbbwA!o6R@f3Ftb9a-jAcAXETrF9uqg19kwyf()RF6d;6HoCa2(%Am)f#9+<9#Q*^6 Cq&ms~ delta 37 tcmZp=&#~wZM?(wa7N!Nd(_8eIv?e#WaZTS~&&V;o?*ya3^kaHVW&jrT4WIx3 diff --git a/iOSClient/Supporting Files/cs-CZ.lproj/Localizable.strings b/iOSClient/Supporting Files/cs-CZ.lproj/Localizable.strings index 507a106340f17a42be9c59ca94156ddef6ed2b64..e7d9dbe321d02260b871c7f1b8a9a940ecd5a966 100644 GIT binary patch delta 302 zcmYLEJr4mv6dWs(i|9|~_AUyQh(aTx(EATQ&XF7^cjR;w{()jU@gr1fiIONq#}6^P zB(iz?=FQtTZ}xGvP8Vyl%^bzk-PPU&b#R20o54q_UXF0r9gNY#3;`zQmROMSAsH)T zpKQWj#4Ir-3fNx|4>-4EPrubO6Jm)GbNJ&T))D4LLz34DJ;soD#N#8jOp|h|eb3nH z=8DFyTq>%HC+b-bV|8_et@e({_fyWs)cE@JsMBJ2=#rnBjj7okl8sp>bQc<@|IOOv PkVpUO@3l&mCi3_IHmyGA delta 41 zcmV+^0M`Gy#|YZQ2!MnEv;y2Am%t(dDv}5am%ujx2$vw40T7pzdjS-e79#>4Q)CU) diff --git a/iOSClient/Supporting Files/cy_GB.lproj/Localizable.strings b/iOSClient/Supporting Files/cy_GB.lproj/Localizable.strings index 8ba84887d8df22460e2d52feb42a25e0ad89fc2a..0d3142f5393133f32db5568195c14b8a796df319 100644 GIT binary patch delta 208 zcmZo#!SQGnM?(wa7N!Q_=?esyMA-8fQW?q_;-^0pWD=e}Pmqaca?N6{$q@wt(;o>k z35hB&4oDpZ=wQQHVK{A#Zy99!BZuYUdfnCQq2g zGrd8WNo(>yBevQE2)y5hgPL<&6us diff --git a/iOSClient/Supporting Files/da.lproj/Localizable.strings b/iOSClient/Supporting Files/da.lproj/Localizable.strings index 4bc841d4b8bf4f54be295d4cdbc6a080deefe91b..14e56db3dd07801056ab32d04d021ae68c2fabbc 100644 GIT binary patch delta 240 zcmX@No@3o6j)oS-ElfV*(`(!rIi@#=G4ZhGF{Cn-Pq!CkQk)*e#Kgs)$&km8&Y-|h z!jJ)!QJC&1$|S6)z>v$32^7u%3M()qGbA#UG8BWP!OAijil;w3!YIs}&rkpq%mWGo zO_~08Kcn z1_dCl0J2koqQyYDd?2mBkPBp`1LaGA>|~(6QlK12El5u$kgdRw2BdSKV);ORK0^W6 z3{7P64vhfH0MzhyyGMG;aFbcZ}lG*ElnoO*Tswn*Pt3DS%mtA!B;4Ba`@a zJtrov$;;;QO?Pl+6mcjATag1as0gUL80d%`u!9g5fE<$ogdoQwoTSH~#9+<9#Q*^H C=R3;) delta 36 scmZ42&3Ueav!R7?3)2qg>2q9|v?e>u<(jO}#Wvl*n2~4t4Hu>W00AZp!~g&Q diff --git a/iOSClient/Supporting Files/el.lproj/Localizable.strings b/iOSClient/Supporting Files/el.lproj/Localizable.strings index 1375b5917d17dd25a76199ffcef8607c8153b6d1..351b6b200b097e724e7d5efb3b368a573a9b888a 100644 GIT binary patch delta 246 zcmYLDu?oUa47>&eEjkquw^yO7qYk?HsFQwyi)gilTE$knIygCqAQ(6CAN&DV|H8j; zG<}N%LUMPx-0f8Po-6x<^`xuMecP(?L{qtxAVAJ{O>T355K|;rA~Ibe6C{A*hbG5W zSP8KdD1*XGq&uVqZDbMB%d6{nYitBd1T9RIs1)WhFQfu&4VUr5r6wPJ>hRmAajhk$ wk;vu+%_B{XS}vDcaWGNX9a@g3kjolNDPxpMfY^ljzY6)Isa|fQg&u7D0N-vl2mk;8 delta 36 scmew{fpbP5XG06)7N%)#)2rN>v?e!ja7~^too#x9IV0cn9qvq400a9B@Bjb+ diff --git a/iOSClient/Supporting Files/en-GB.lproj/Localizable.strings b/iOSClient/Supporting Files/en-GB.lproj/Localizable.strings index 0ae7ecd6828cdf63a67070154498e96466217bfb..9801a363f36ebce1c64f08ec9c51518a66600d5f 100644 GIT binary patch delta 230 zcmcbyjAO@2j)oS-Elk&hChJ)9OrImb#KD@!kjhX#{k{N`;^bS)xhCJp7nuG?fJsPP zfgzV6lOdfUgQ0{$fgzb8k)f2Km?3p~egUJna0x>`P%xjN0H`?+$jW5MoBnV&qx9so zYO(33gqX}GD;Tj&*0SZBe&8)5%XB4SCNo|opi!9&DL@F+Grd=UN!+y@XlfDA0HAiD zO-ew6Y=Kyb!4D{&3sk1SP!5#K0YU|!x>TV3r9d{wJs=$lKvfD18PgR7nM67CfZD7X GxEKI}Yc`Gm delta 36 ucmV+<0Nek#sR-Dn2!MnEv;x)=m%0-IDwBYc3X{MU2$wLf0T7q`69P68a}A~d diff --git a/iOSClient/Supporting Files/en.lproj/Localizable.strings b/iOSClient/Supporting Files/en.lproj/Localizable.strings index 3a2a9014e7..93796e43e0 100644 --- a/iOSClient/Supporting Files/en.lproj/Localizable.strings +++ b/iOSClient/Supporting Files/en.lproj/Localizable.strings @@ -1123,4 +1123,6 @@ "_file_name_validator_error_forbidden_file_extension_" = "\".%@\" is a forbidden file extension."; "_file_name_validator_error_invalid_character_" = "Name contains an invalid character: \"%@\"."; "_file_name_validator_error_space_" = "Name must not contain spaces at the beginning or end."; -"_please_rename_file_" = "Please rename the file or folder."; +"_file_name_new_extension_" = "Changing the extension might cause this file to open in a different application."; +"_please_rename_file_" = "Please rename the file or folder."; +"hidden_file_name_warning" = "Name will result in a hidden file."; diff --git a/iOSClient/Supporting Files/eo.lproj/Localizable.strings b/iOSClient/Supporting Files/eo.lproj/Localizable.strings index 9377dfcd5a284165710b6917caad2d0cd703ed4a..657404da85543aff8fb79c5a11a344a9279ed5d0 100644 GIT binary patch delta 240 zcmX@Gnq$E_j)oS-ElhTz)8mAgL|F3}QW?spy9+ZZPTsYMYx0Z&f#6hz3WgG(a2`W3 zLncE$kXB&G1+vl^GJxU=49N_M45dK1R3N(qD3%FiD=?%1=^Ut7K9HZ!PyjYV0Vtj~ zU3VX&^z!Q`9NBMAs5I>2g;WK*~vhCr3}T>FWNJTi-NS}0|oOL3cy+vK*mjv zKg}pTz3B;~*kqeoJk$G>n6xIpGiIAy7sod};V&c0^jk_yX1q#3^D-GyfDmZc^s|ag z;=JWRql06YU%m5Pe4J!Zu diff --git a/iOSClient/Supporting Files/es-AR.lproj/Localizable.strings b/iOSClient/Supporting Files/es-AR.lproj/Localizable.strings index 578ec094a93ead813eab1b391077e7b69a2b44da..930bf97d306e470fcc80ee6f2a7ae9fb2ea71784 100644 GIT binary patch delta 242 zcmaF1kK@=uj)oS-Elf}3rq7dM5@F3_NM$IW{#J%badOXcF78Z*Jce`z1%?uajOmWD zOyc4S47m)MK%oqvkOD(8Ln1>dLoq|@~$fbt3qDL{4_ z5T-H|f#jwi6lD~i?r?#TV|s)v6VLP~a!gv2L*hiH>&P=%F)B?~+$26-N1BPpwH&Cs z2xtn#5lTRlY=Kyb!4D{&3p7cAp&Tfe1B41-lZ%0F$pO0yVRy!KeOV?^4n3eYYX&X` E06`2kSpWb4 delta 36 ucmV+<0Nek@!3gHQ2!MnEv;yQFm&hLiDwA*s3X|~u2ABT10TP!AAObch#txYP diff --git a/iOSClient/Supporting Files/es-CL.lproj/Localizable.strings b/iOSClient/Supporting Files/es-CL.lproj/Localizable.strings index a2da31f1ee1f0e3ee237d2bf2cf54eb19938dd41..1275e0694d80371e0c62a25c9769e047912b87ca 100644 GIT binary patch delta 242 zcmW+w!3qIU6g}@rP09*UHqS5{%2G)den6C^jd+-1h!IN*OS@S-rL1LbEekuP{D5z9 zX1d+pdH0@s&iTEq$H&?q#9j6sb1BJm+=Ir}=%OqHw@#w&!ovg#KBinK_KsL{x`vAd zUxhi*gnOTOhyga-X(L)96C7(+a)D)Zph)vfuj68Bg@8rik!JRvKF&3HQl1j zGQa@y;Co8-Z0a@HHrnAV^50Tq#!^`EzoyqL@(pt;vJ`W;7_q{P3gd{cQKd=)3H$+^ Czcyt6 delta 32 ocmdmYj^o~Gj)oS-Ele@0(;d{9v?d=Y;F=z=m{DYUof?xB0M_XXjsO4v diff --git a/iOSClient/Supporting Files/es-CO.lproj/Localizable.strings b/iOSClient/Supporting Files/es-CO.lproj/Localizable.strings index bd510611db1967aee09cb75e67701e87ba806d14..8f1c81e944f28be558bb55e44bbf99d2a25da8a4 100644 GIT binary patch delta 245 zcmexyg5$<%j)oS-Ell5(C$F*Mn(m;$#KoG&kjhX#{l6lU;$$y>F8)l0Jce`z1%?ua z44{OUG>5GyhG0gcK9N-8jv0~O`~p#s>rVxTi}z)nI~m@(Z^iAj`052($Wfr|kE DG!!;? delta 34 qcmca{n&Za_j)oS-Ell5(r{7Xx(wbbr!8Q4T7270xzUdOGOjZB}qzu3S diff --git a/iOSClient/Supporting Files/es-CR.lproj/Localizable.strings b/iOSClient/Supporting Files/es-CR.lproj/Localizable.strings index fb08b399366f3a19ea28d04502ad65a38dab1322..12acda45d15fd1ee426fdbc5df1fcac1b38839ed 100644 GIT binary patch delta 259 zcmex$g5%a{j)oS-ElfX@r_bSH5Kq%tS~aRrc_3KT5{%H;!T1%_N8D;+3b0%Rux^_2qUQYX(Z5|sq$%Lj_)GZcXJ zD1gmVU`U+&&|h?V$$dtN$#t`MrvFf8(wfW^FEZUhg~^Ipi6LY9TSX@E>3bBJxOmHf z1{MLW0Xt;+L=#3~Ck2LbAU6jH6@XHyK-)@zY>@3BML^SmI0MK|0YZ>V6&TXM>Qfo? L7?c>S8Mqh#|3F5@F3_NM$IW{#TJnakAbDuE|wJ0@K5kn1n|5Ol2qn;=IWV>!hb= zC^7L&|Dw#KHN8ciNo2ahenyt*4k}D$yh=a=Gl5!CKuV_@Dlmz=mIF;G0-6RgF`YpP yXre6;D>3*1#dCqm6d1~ZaydY#0JfnR=#m_;s}OF;m~OAcB+8)&)Mm}V#Q*@@O*HZV delta 39 xcmV+?0NDT5%Lw+!2!MnEv;y=am)Il%DwA*s3X|YE29iGxmmt3Z1eY2m0ya%G4lw`# diff --git a/iOSClient/Supporting Files/es-EC.lproj/Localizable.strings b/iOSClient/Supporting Files/es-EC.lproj/Localizable.strings index 178405e6216d2ee2a6d86398b593accf313e0353..dfdbeea8a6262efb4f601c407eb68f918fa0d8ed 100644 GIT binary patch delta 278 zcmdn-j$_70j)oS-Elk_YCda+ynr6(z#hS;E%1}OizX_9~q%%VXLn1>SLpnnym{edW z0g9wDC`>o`+NCyg)Feor21C^FC6oaI}$})j$1%@=BiX5m|K9HZ!PypoR z0a+j;6@Ypa7*c@jG$2f6C<4osOuj!~b^10lCauX1rfidcCGk!FXU1g3s|2(u6R0`` zq-uJu36r>MInaP2pg|D#DFF?$1!5%zKcILnP?-WlIZ!SK2o=DF7XzJ`19mRL`i$v} Prc9z7dO&T~3|tHVpItoh delta 36 scmbR7kz>a@j)oS-Elk_Yrq42G(wbbr!8Q4T7~6CoBPPD-H_Vx=01^BRCIA2c diff --git a/iOSClient/Supporting Files/es-GT.lproj/Localizable.strings b/iOSClient/Supporting Files/es-GT.lproj/Localizable.strings index 1d2aa1bf2381c4d2f503dcf56f83ec83d547088b..b455c4ce18c79be2c310006fadac2fe23570fec3 100644 GIT binary patch delta 257 zcmex$g5%a{j)oS-ElfX@C$F*Mn!ZPoiHkLlA(f$gI-?SkqO&tY216o49z!}qCYV%U zC;^J3GAICX1(2Nz6fFkI+5bC(kbul?3U_2a4u16oB<8 zfX!22NSyr8UvzrWeMX7Nb+dS;|4?Sqny#Y8C^Fqag~^Ipi6LY9TSX>uu(No}fhHCK z?E$-F`gtWLQHOFMCkF@>fD)-d%SwT4kmVpHK*NDJ1ISJRLXblh7}CJ%QyKIalo+fT GxEKJ_GR~7L|F3}QW?spw<|CyPWJNWn(R^}pqa{0!B7Ge&SNNM z$YjU|(h3Z@Kvp_K22fmqA(dmJbxoXD9&cQ2?sUo9=s>QF=Pt z6-Kei2D5mk*C{b+O}{dqQDpitB_=CIrO9hIiBCVF$i%~24m7I>Xai6WL;7@ic_vYZ yav&!M2o-=5sX%K=fozbqASDVwP^m>&Y{IVi38g}mnk{aj@dPSQL9*pO zkF&^Ra!+QyGxvn=^dn54&c;*OmcG_hF6qI+K@Y2{61)bPmJ1Ja2zFR-A?zcy!|4_- ze7=Ge)tvhs^#o(=vDM?QQOw6SpF z8H#{7Z*pLr^z;`BOgz&|l$f+8zcXf={40)c`hvZTEYlAtF`4lyfelOn>I15tzEO@z z+_fBNP!Z5TkfG@eNf$dY29>vF&@MK~j4`hEo_Q4T$z JHfshh1^~*^JHG$` delta 41 zcmV+^0M`H3$O!hu2!MnEv;uS@msleLDwA*s3X>3M2A9yE0S=d-y#WN5nj-=>QTqQos(D diff --git a/iOSClient/Supporting Files/es-PE.lproj/Localizable.strings b/iOSClient/Supporting Files/es-PE.lproj/Localizable.strings index bca66c596285586369bdadf85d181d32618301c2..8a5b3fa9a274af6c5cdb9ae6e4e1458945198ec2 100644 GIT binary patch delta 256 zcmaEJl;g|^j)oS-ElgQT)7L06i3sO0q%xEuF-~~$o#kAUEs6w! zk;EA?8S;Vh3JkeGRysolP`v^}GD9LmDMK+(rvi|l0hB2QveJNb4pb~3$j@ge0Gq7< z6wjM(d74pra!8%n^f)CZv&rv_*(U#r0fhHFL?E~sy zNT2Sg$Rz4e4mLIiXkZc0xMHBiIbcVClqdj|D}Wu4!jJ;B4CV|y1|hD3%^hGK@)$%#dx+6q9ie4uDPLjh249*~s@CKG|I6d*ed2vZq~ zKyuUH-({4ZY%q&wdYKZF*5r4_Y?JHa_@?huVzOdXn!I+C_;d>eCLY&vp!r2WGeG8~ zGbjPgu?1o!20x&9F3=nWhH{`>4iGAU%`FDHCI{>?gv}Y#4=ON;a_9lISu=1k001*L BI3NH3 delta 36 scmca{g5$?gj)oS-Elg!f)1#D`v?dpDa82Ie&o*6QJ|o}s8Olsn016Tep#T5? diff --git a/iOSClient/Supporting Files/es-PY.lproj/Localizable.strings b/iOSClient/Supporting Files/es-PY.lproj/Localizable.strings index a6a333bfba9f44a2bafe419ddef44c4448826fd3..bad6d8fd922aeab6733d5653ee87e03d65549f98 100644 GIT binary patch delta 247 zcmbPmjN`)zj)oS-Elhn%)7Qx}iLmA|q%xFGpRT~9$ml%TyGT+qm7#*61SputP|T3Y zkPoC47;=HEbcPI|xB^2mLn1>dP%d?HVUeh|0#Ga;D4Neu0M?@bR0-0N2*fEsb{Y_- zG8BR2rvJaoC_UL>7SHrPB_^%O?~K_d_r>u|zox`w#i%rS?sluj1to=RG7>dl_r1OB%T)!G&B)tXevWILphLD1mpvC0j*F1nq&*a zN(_Eb6$(HVnG88Vr~p)#3beQs$ObtCq(cFyN&)DwOokL71UXuPAq}iPl|c_^iZufl F0{~m&IPCxc delta 32 ocmX?in&aIGj)oS-Elh8er(aNE(wbbr!8QHCLPnA4e5y=V0O|V-DF6Tf diff --git a/iOSClient/Supporting Files/es-UY.lproj/Localizable.strings b/iOSClient/Supporting Files/es-UY.lproj/Localizable.strings index 01d363cb81520102dcbe77ff60352064ebb42145..12cb8ecdda863bd9f97056ecf6e13cc58eec52d4 100644 GIT binary patch delta 273 zcmeA>#_{e1M?(wa7N#Dh>E{%gL|F3}QW?spPgP)2baZCOU`S-hV@PMn1d|F3B|wo> z1_dCl0J2koqQyYDd?2mBkPBp`1LaGA>|~(6QikH`XYCoqMM2u~fr9xA1z;@-AmgS- zpJtSvE^>uYY_iTQp6NYGOj?uQ8M94awU<$7`VA!}GiD`*jOmREOyW6tK*Mr@I^!A2 zfvh5+Wf12m0nM}pVkHJYs0sz3icE$aAXEUVO9eWv6vzfS2&6*+s7e9oz)Xe|AOtyH Sfgug7K9xZaXo@uh7XtvE5^J6T9XSnxTZHOU=*3YPMOIH0MgS7UjP6A diff --git a/iOSClient/Supporting Files/es.lproj/Localizable.strings b/iOSClient/Supporting Files/es.lproj/Localizable.strings index 31eef28fbdbe3d375ff784f88c6960e6ff26e2d7..72bcdce5e8e547acd3dd48da51205737130a2bd3 100644 GIT binary patch delta 274 zcmYLDJ&VFX5Pcaq2!~cGp52;K@EVB$z^@YY!g2dM0)n6 K=Dt(b$183{ojIWZ delta 32 ocmZqs%(3hPM?(wa7N#ZU(>pAfw5BV_FmX+ukj*iDmj#m>0Mm;Le*gdg diff --git a/iOSClient/Supporting Files/et_EE.lproj/Localizable.strings b/iOSClient/Supporting Files/et_EE.lproj/Localizable.strings index 39a7efeffd0f9ad5693c7242aca3efa0273c049f..fb14b165728bc624b0a76c3cde0bd4f06102862a 100644 GIT binary patch delta 246 zcmeBK#qnkhM?(wa7N#zd>1TwQL|F3}QW?spPZnZQoZPjD%Q=%Fk0G5wfuV#U11O;Y z#1%kxDp0hTA(J5=NGmYp0$J%m`4S*InIVy(6etH$3(}LxP&_^G5To$)dxeZ#%s|to zSMOz%o<8LoquAtEWjxcnM3}TDZ!lt;eri3V(DZ8}OlHhV3>nkwg_y*r`w1~|@s3O0|T9YSC=9)fX5~IlUHKI&b0MVlhpa1{> diff --git a/iOSClient/Supporting Files/eu.lproj/Localizable.strings b/iOSClient/Supporting Files/eu.lproj/Localizable.strings index 3b7d6f81a0e9479f072936ff8aab8b2b0c700c40..8ec62917e8841c9b6d88d92fb50fe97b9414c9ca 100644 GIT binary patch delta 258 zcmaFzkmJY`j)oS-Elf!U(`EFSL|F3}QW?spXX`O3iaIl7FeEbMF{CqOf=LC25{8WF z`}LT_#T6KGfr9Bk1tkm$49P%cr3}Rksna*QGK%Vg)a3((^BD?&hUEcSApHtJMG6cl zKz14srZN&&r_YAWWb~~{gXD6$n;ePOjf)~Kyx#JN>e~erZ3cI5}*8S7GH=G zP`@n@D>3*1&B_HzDln7-73Kh;0@%D_pfhs7PD0p-WE4(^b diff --git a/iOSClient/Supporting Files/fa.lproj/Localizable.strings b/iOSClient/Supporting Files/fa.lproj/Localizable.strings index 6b9aae2b08e3738d154cc2ec218faaeb32182997..05d33fb6a0126e6f66c87627adc3726bb63c1fde 100644 GIT binary patch delta 248 zcmXAjy$ZrW5QHZOLI`%|Od-gb(!$D0NoDUl_!EtwQT!pTgmjh%Ug0aKm9?!PqK{zX zgE&!^J(js|W;Z+9pR>KqtcyscuC^WXbcIuh5h5|WlBmfJBJ>brjLGj+SR*p;lJGo* z8O1SyH53NKHdrCluZ5I3Hm5qrf>|*q+Rfo=RZR0{mGyC7G^rGI{Rv!im!f6)`hD`u z!xhDT!l)%p|BXJ)0ozBH`iyZ33IC=nMK0vh4d?ub+@VM*9yP&`^1kq2T9e~AxF)aTW}B`c!^k&%i5Qa=0PS%LC;$Ke diff --git a/iOSClient/Supporting Files/fi-FI.lproj/Localizable.strings b/iOSClient/Supporting Files/fi-FI.lproj/Localizable.strings index fd5d3499af718cacdde33c8191837f03ffbb9436..e747cbd49c333c70d74062c1e81554897adb6c64 100644 GIT binary patch delta 270 zcmeyjhvVLUj)oS-Elhu8r`yRgiLmA|q%xFGXO&@6oIGbamvbgV9z!~V0z(Ny22er) zh%12XRG?@vLncE$kXB&G1+vnC@+ClaGD9LmDNqii7NjSWp?Lbm(~QEr`3wbMZ3;l4 zyyZ;H04cu>`~Uy| diff --git a/iOSClient/Supporting Files/fo.lproj/Localizable.strings b/iOSClient/Supporting Files/fo.lproj/Localizable.strings index 72413d0ba7d7b3e1dd3d880303c38cffc064949d..6a9f58f87fcfafc6f5629c70dc8c73c29fe6e867 100644 GIT binary patch delta 226 zcmeydl;g$9Er zRcU&e5R=yA0Asevb}@X@_X#ms@hSmL$z(_YLZI^Lx&ln%uH`@ji-3B8I)Rob0nM-l zVkHJYpm;7&nF2#OP%Z}u6@cne8H$0{=YX98(xCuUrNEFe{h$DoD2E7O$0|4}Y BG~xgN delta 36 scmcbyg5$?hj)oS-Elg!X)1!o$v?eP!b4?ZqVw-+pEu+x%Il@e40Q<`fK>z>% diff --git a/iOSClient/Supporting Files/fr.lproj/Localizable.strings b/iOSClient/Supporting Files/fr.lproj/Localizable.strings index cd6d6f6350539736c4d444a4c180c9985200e215..a33266810e3f15167c16cf615104937c7bbe1d88 100644 GIT binary patch delta 279 zcmbO*hx5Zc&W0AoElgFu)APKTL|F3}QW?sp$9gj>gCUV2k0G5Q6HF>F zlmJCi85DrH0?1AUiWURq@`1DhLoSe&4wNqevXg=ON`Z19wIDs2K(+!y8j#L`isb|O z`3wbMGZcX0AQKXSI0eW~1Hx2>A~~=m$hbtH!UCYyOt8TvKpJS}^rLo6=99m0%S_JV z5t$y-&!{jx%$`Y(QE77FPVwnpwoE)pbYv-z4YCp8AdurzfDq(agctOHrdTs@F#rJIWV^h?O9z0CpV}*78OGNP0)fAQ`vE_0_ zK?I38We0?ClVM;a@1|bgVb2_&TxONzB^I2Qgo_~K)aR*HRo@n^%w#i|GmI{hfB`@A5eqaKEKrA||&XWS$qY!6t9>zvxl1Abw4jx!y&CDIFB?1&ty$ Aj{pDw delta 36 scmdn8h2zRbj)oS-ElfcY)6FEAv?dpDa82Kk&d4^|<^tdJ5=ka20Q4FR3;+NC diff --git a/iOSClient/Supporting Files/gl.lproj/Localizable.strings b/iOSClient/Supporting Files/gl.lproj/Localizable.strings index 153b48878533a8514105845cab19c6d3e3ea05f5..49fa12bef38d9e784f96484d3280de0f653787c7 100644 GIT binary patch delta 312 zcmcchg=5!uj)oS-EllSur`uUDiLmA|q%xFG-)YXISnte`!H~$1$B@pD2__X7N`NA% z3<^M80c58FMT>!Q`9NBMAs5I>2g;WK*~vhCr9e55T9BShAX|YU4M^ue#qxpte1-zB z845sgkO_%EoC0L00bwdbksMeOWLzRpVF6HUCfMK-APux~`aw%3^T}80M5c>bF}W}* zP0rsTKK+d;6Hih(P(u;WM2M@EfCktCu@ZwHP&^lGe>qSt2M85_>QaGjD+RJa79rdL Ua&rn0g8YbZxgO9IYX&X`0BmAGmH+?% delta 35 rcmdn>o#WOQj)oS-EllSur*E=i(wbbr!8O@HmSggUK#u8ete89i5*Q7k diff --git a/iOSClient/Supporting Files/he.lproj/Localizable.strings b/iOSClient/Supporting Files/he.lproj/Localizable.strings index cdd3168a1c98446c738c92ba8c493c2b749bbd66..a5299003b2443eca9bb7b466f8cd46c1accb64d8 100644 GIT binary patch delta 260 zcmW+wF=|3V6r5dA_WS)Jf~eT6mO&C?k;X>w8a5$rR4^Kh@+DOYZ?MH99>5bwj$r8p z6!8Z3sht0L?C$KFd2ePb=Kt6HY}8)YLVr9J z!Sbw$9lKxT=6o$ah(_d>#BZEik#nM+RK*WECYs|j9k9tVsqa-o{sL8$>p>ac_64bh z`oWi;bMn1YWf_M0CDX!KqCi*WY;-<~xpYCRG>qH=UFpUAOj(wMqu+`+@lPa{a?3mu S3|UE5i}zIT@Q4<=$m0$@B|3iq delta 36 scmex0lVjF&j)oS-Eld*J)BkWYX-zhG&ox;&)8`2?iSXtzq%xEEL$K}V(^2iPynjPWXJ(R1+dx0KnLZ39fz&(;bAFv?do!;+lLxoo%|G6eHjCI$f0#SuG7{+79WjaHnIQ! delta 36 ucmV+<0NekT%?P&22!MnEv;wpwmzX62DwFUd2$N7y2$#IS0TP$mB?2}QMGfNs diff --git a/iOSClient/Supporting Files/hsb.lproj/Localizable.strings b/iOSClient/Supporting Files/hsb.lproj/Localizable.strings index 44f1ae70837e2147d915a001a80ffd0ed9b8774c..fbf2a7ac72ee201c9e8054392b3344dd6e948fbb 100644 GIT binary patch delta 239 zcmaE|l;g+>j)oS-Elf#5(`5vhL|F3}QW?spXA3YXPQKO2HTguo!1N;mOhV!c47m)M z4CxFR3?&Q-49N_M45bXk45`!q=QD~=_dCGI#+%Pj0MwfYl+9$wo1VLyQF?M%wb`YItND_$j_L75CGKnT<_eW4(ecv3mg%p#zEpl+Z&NA8YT;?r#enYeh% zfd&=0GE(Ae*gdg delta 35 rcmcb$isRREj)oS-Eld@{(_=)Kv?jT5O*YVAn|@&(qtNtuB1~og^S%rz diff --git a/iOSClient/Supporting Files/ia.lproj/Localizable.strings b/iOSClient/Supporting Files/ia.lproj/Localizable.strings index a734f9217a4b55ad79d3012ebdd55d16fe4d76ec..ffd75e71ddf614613eda4a9732831adb5a1eafe9 100644 GIT binary patch delta 301 zcmYLEI|{-;6dYFs5xXSVt|=`%K*ZWEClDl^P9DBXLAFM~swR zVo$W?ydYj9K*^cWnw^+fV#BU}T*`ZjL+c^Q8;5`u5^s1SWbMqj1@+?O)V>~S<%miB zTH3mCgx7Vk(}5*MD&gv$@)atgjAq}!E|=#l7yeHnsW2fFS@S^7n5vEZk6_}4Jm!1< K&{Mk1Fu(^tx;~5m delta 35 rcmX@Nj^o{Gj)oS-ElfG0(*wkqv?d35a7~_I$u@a|E#LG$F(xYj@_Y;@ diff --git a/iOSClient/Supporting Files/id.lproj/Localizable.strings b/iOSClient/Supporting Files/id.lproj/Localizable.strings index b390f881e87a0f20d62b2b917c97dc8ca04c0f4d..7697e8917e94b13c43dd21c3861a6f2252dd14cd 100644 GIT binary patch delta 257 zcmeyehU3b5j)oS-Eli(8r>_xa5@F3_NM$IW{#%$yaq=%;uF0ng1g3|GFbRn(Fyu01 zGNdzPFqAMTFeEc1GL$kDGo(&$G-VW>+>^(loX=1I)S3sB%mkB(KvoKnod$%d3`HQh z>4nD`rKdj=Wip!_V9YjIDwc1$!bV1x>2_jFX1q#3qcedzQot$=MVZ8t%7L~N0SyBg zn9iUCG|(1^l^Fbh;<-R&3Jm2yxf~!=09#NDbW;x4eF!HY846UD23DWSpa(R?nt_V} E0I7pI3IG5A delta 40 ycmV+@0N4N2uL$(42!MnEv;y)Km(~^nDv}HelOPrdmoSq743{9W0R)#A7Xmgs(G2ha diff --git a/iOSClient/Supporting Files/ig.lproj/Localizable.strings b/iOSClient/Supporting Files/ig.lproj/Localizable.strings index fc6a18670a916ccd343ecad6e08f5490a6c937d2..fa743d22340d9e7dd6029721f7cc2bea2200b4fa 100644 GIT binary patch delta 214 zcmX@Mlw;Wnj)oS-Ele&#)Bo`^iLmA|q%xFG_Z47LoP4U2Yx0qNf$7Txn1sX?7;+gh z8PXXt7)lrv7?K$h8A=(78B(V|%x4szekGq#fH{*PZ@T|(M(N3J)nb!RP34*HBE+OM zd7Tm4WUCmy={-VBR=i3;?U@WIK$r?t+{niy?ph8ssfZyDD4Yj0T?uHmEf6a)_yNUp ufyxvZ%7Jn@K&SvzmkPAA6vzg-0i;6#s7iq$V|u>;lPHHCP@6Ra7XtwC@H3tO delta 36 scmZ3sg5%gyj)oS-Ele&#(=~*dv?jmf=9*rh%g8ZV&X#9-nlO_U0Os!s@&Et; diff --git a/iOSClient/Supporting Files/is.lproj/Localizable.strings b/iOSClient/Supporting Files/is.lproj/Localizable.strings index 0a6ed8079f51dd34706b9d5a94cf60f022b853ee..0e5aebe7e156ee6215ecaafde2db29ea373335df 100644 GIT binary patch delta 226 zcmW+wu?_)I5S)7n5#gdBhijf|Bnp*^##e|&AsjB@4o6O@@BxySc)mcPp^%7LDZYhI zFeh8=?Ci|$?C+`XBemTbH(}bkUKII+4;PWPN}{6tQ(7GsxvGl|R-}D|@DQ*|%!tOA zke3*sk2OO5X&P2Rk_t!$nEx%3LSMh0hOKr-N1L{&seL1<&OK9iY|%6v^}brVTNasY v#6wG-rvqbsu|%OAahS3s7cT#=iQ}KKL{cu9!NZUh=aU%y^)Bjg&_WtN)rB=( delta 36 ucmV+<0NelYxd@QA2!MnEv;qzrm+~6|Dwog@0Sc3l!3LA6T@IHp90EE991Q3H diff --git a/iOSClient/Supporting Files/it.lproj/Localizable.strings b/iOSClient/Supporting Files/it.lproj/Localizable.strings index f89e9fdeb32d08ee234ba664df2d95162101ce1f..93a3f4f350934e2f676b9a27079edbc4fe7905fb 100644 GIT binary patch delta 314 zcmZ4TfurR!M?(wa7N%w9)AyM$iSXtzq%xE1_g*pAeqNd43x_U(h3Z@Kvp_Xz68il2I?yX%7N5^^kf3r3JhsL zItMD259H@F6oAc80E&Z5NCe^(AUh2RQyGdlz>+}Yrt?2x6rVoJoXKqR15>uiUOWoZ zESOZ7l^8OnPc&r`pDt&{#FbPI)LsNM2I5pDpi#C!ti<346wd`)S`M~82Pj$u8D=gvgJfLDlVIrU{f+Z9NB3r=| zXCx8E1E8_>l^_y-%|dQeD5^2KPd0QdL`ik$ZPa>+3eFpWj?f gVJ)_?oWeq4Jn0xmeg8R1I+e`n2V^E2sG@}wenLMsi2wiq delta 34 scmV+-0NwxgsRx#)2Y|Ez6w{aZ(*Y`zV1Npf;2Q>)>~R4Smpaq|HWN7xhyVZp diff --git a/iOSClient/Supporting Files/ka-GE.lproj/Localizable.strings b/iOSClient/Supporting Files/ka-GE.lproj/Localizable.strings index 0314075cab514663958e3698efe49a4c053db1f9..ee17a1643f65fc1ab8bef9dfb105f6d6ecc3ddc6 100644 GIT binary patch delta 252 zcmW+wyJ`YK6g@LRSr)69)nc=7vmYRWAc$Q)K(Moukc_$zcO_A@Okr&! znKmC{;Wv18xeRmWJm#Lw*}Gl5pS3yKN~FDK`&3Hdu+$*5FY0^N?<7buhG32f72#PC zJF?$Mknt8wiN@6D#P4{+f|}Dq*91Wx%t&XL6(OND)!m;7HU2lX-^jMN`&L=6C-bNS zz8+#s)P%NPPx;f7p&^z;U))r5(SFlZUxj3XPmWM>T(}_43*;tYKv*cj2PZEp7!`hp J24ZyK;|_uiHUIzs delta 37 tcmaF2m!oetM?(wa7A79q=^td7v?dpDa82JZi&13yg71th(~abq%m5L+4Hf_Z diff --git a/iOSClient/Supporting Files/ka.lproj/Localizable.strings b/iOSClient/Supporting Files/ka.lproj/Localizable.strings index fabc368b7c49b0d8bcf13073388ad0c64d8eeefe..a9c34e2df00e27173562241c968f6661b15fca4c 100644 GIT binary patch delta 225 zcmaE~l;h9}j)oS-EldeQ(;N7iMA-8fQW?q_;-?=JU=p5QC&0ur`Bo=p$wpq0z)!GB10)dF+=L~zxj;flh+xuO_%CrL=bGN2%g8Z3p`VdwdXq4d6#xX;3^f1% diff --git a/iOSClient/Supporting Files/kab.lproj/Localizable.strings b/iOSClient/Supporting Files/kab.lproj/Localizable.strings index 83eea6b79676a47d24a62be058acc4f6d499c1b8..20bd753e0841b43572a46d1b078a58232dbb0e04 100644 GIT binary patch delta 239 zcmbQYjN{)5j)oS-ElhKSrr#4}5@F3_NM$IWzEprokx|eYpNip|{zQn$idl&vWBNn^CUNmRpjo*P8&qEJ?y)+=e)bPb89Z`R~GMoa!AkP(uefd;!G+ BIvW50 delta 36 scmX@GisQj@j)oS-ElhF3)15?^v?gD0=9(;!#y0)HI!2-CEh0>20R34Eg#Z8m diff --git a/iOSClient/Supporting Files/kn.lproj/Localizable.strings b/iOSClient/Supporting Files/kn.lproj/Localizable.strings index 2512a21a3e813d3526c3e963adef90e46223b5e1..bd6c1d57d73754a3cff3d5092c61e04f298974ad 100644 GIT binary patch delta 239 zcmX@Il4Hplj)oS-Elf@#)BgxEiLmA|q%xFG_ZDJOoV;rV*W{D}f$2+xn1sX?7;+gh z8PXXt7)lrv7?K$h8A=(78B!-V7Kl!kG2!6NXD9&b%md10GUQD++{-9E{n~j(vB_tq z@l1CTVbYp>B1UBTg!POp)B8l2%y^Z624ym&03lG*^hRMO@uYH~nMFVofck;v( D0=_sO delta 42 zcmV+_0M-AbtO&%Z2!MnEv;smDmnIbgDwke90Sc4g8wQskkpT{ukgov*muM9NHZz+I AEdT%j diff --git a/iOSClient/Supporting Files/ko.lproj/Localizable.strings b/iOSClient/Supporting Files/ko.lproj/Localizable.strings index c29ff67c8c3e4242f9412a3324ee46ae71413918..48050a97e87da31e6c55b493daadf8b7b2547006 100644 GIT binary patch delta 301 zcmYLEI|{-;6r8ODF_nr~2#bY4ggu8~8A!Z{coK1T zQ7rcD?3;P>W?xCEIG2*Uc;@<@iJB9@LyQ^g5h{I*s;40&+8ARE7Xen-*eape@yJ;v zYk-Jc$XjAdv?8yF=bSr`Gg>pVA(mM3_P@Q5?+`odA=x($F3*B^S)tU!-jYh+E~1%E zlZt-kqMKePHQgyh-)URl1t*w8w{p>NVp{BJW#j5oChDWu?)2$w>>{S}ZNmRXlkV$6 M)h}a@{~w@?4|ShIYybcN delta 33 pcmX@m%>JN(y diff --git a/iOSClient/Supporting Files/la.lproj/Localizable.strings b/iOSClient/Supporting Files/la.lproj/Localizable.strings index e4b1b24a008b66a107515444b130582ef92876ed..cda698459d4af8e57bfc82e06cc4ff43cbb08f1c 100644 GIT binary patch delta 234 zcmcbzlw->Zj)oS-Elfc|(|H7#L|F3}QW?spM+-11PCm7qYx0qNf$3WWn1sX?7;+gh z8PXXt7)lrv7?K$h8A=(78B!-d%om+*bAXY9H=m&Zs5K8LnaPkhJ$5&v^yHvwvFUC? zOlFhU8L>^ais73+ONhyeR|#lFCPNAk0+mmnD99w9R1P$*2&fmR6KI7J&f0jMq&XmKf!4RQ!bhXPQQ0OV diff --git a/iOSClient/Supporting Files/lb.lproj/Localizable.strings b/iOSClient/Supporting Files/lb.lproj/Localizable.strings index d4d01da2b6c373062f4614f23c8ad9c19452ccbc..973159515976420dcc92cebbd460b12a52619c82 100644 GIT binary patch delta 220 zcmXYq%?bfw6o%h98`3Cd1`DZ=r6PM9S0HyFnekJMVQ6G!;Rg81DR-b`AuDC$2IPk1 zkk00u_vbv9V|;gtuQ$e(Y7V#3165K%7udeLFcpAet}g5Iz^~MxGx}BdgzglWPu@*>$LClyv2sPX-Nr7|=H delta 35 rcmbQVhGWx8j)oS-EldU?(?vv?v?eQXa82T3o1V9xQD}OYD3cig$}0)| diff --git a/iOSClient/Supporting Files/lo.lproj/Localizable.strings b/iOSClient/Supporting Files/lo.lproj/Localizable.strings index de1a756daeb5e2f039dbf8810ce68c94da1d7303..fd2bca83f33136ed1b7ab2ee7d50a1751e83a90a 100644 GIT binary patch delta 253 zcmZ2Bm!oX~M?(wa7A6(G>G!yqL|F3}QW?sp>+&!uiaIl7FeEbMF{CqOf=LC25{8WF zjXX@^q6!STK*4mNf)WM=hGd|!QikH`cMTZDwLz-#fr9xA1wf z4G2>iia>JH51wR{o_uNw&vX?&CauZqjMygMiRPR3l96S40UwhYqtax-)#B50xR`ic z%YpiffaXA4q69R{7KoJ?{D9)QK(iDW%7Jn@K&SvVyBO%89I)dMwr5Pw=V21%&;x3- IX5eA~07vFGEC2ui delta 39 vcmZo$z_DyDM?(wa7A6(G=^Xq_T9ZC-O)f}fo316n$T#gJBg=FzekL;j0mKW> diff --git a/iOSClient/Supporting Files/lt_LT.lproj/Localizable.strings b/iOSClient/Supporting Files/lt_LT.lproj/Localizable.strings index e7b8af2b03486a7c78a4c959e4807283d4a24ae7..1dd12cde11a80c83ea77622cb6308b48c503eb4c 100644 GIT binary patch delta 556 zcmZ8dO=uHQ5T3XFTf!RM^e3dm_>6ifZ4+prV1-I5J@t@-2N7BtOlp>&{I8m>Y?C4LDZ`~_1ldndAv9CX1?#6pY?a<&ja(-LXUhK zR>SQ7PRYuyO3HelviSC;JpcKgkOfzD^Ij$yr8^v&5_?8X@j=N9i{{QXe(}-bw;M_R zHFCYjrL^*?!jDVo@b2g*CFQ5!9u*RKO%+-phiar@eOQ;8v_O}|#r~nv{AO;84-11~WB#aD^jDRV`Oj*AFI=^F_OJP5&EH@1RqCb8 zW{tis7dkE3&Kj4er>PEM7qy)D)ex^Et#Kd1k46cQ^I$cmb%3lRuIV0lP2_5F{)Xxw ziHIJ;9+nf4bSxMxP5&Es5%KogR>eM18GiKKlFghk#KrM$Im{U)mFEwy(~`YtSm#<` t`p}8n5<6$~-)!O2z|pZxfa;C7lL*o-R0pDp({3QzaRdG+jUn9qc;O4aAw`c#|0t8S)sC8B!T?80@DD zx-r^MPjF+@n9TJ~Xu6ggqtfI9-?%0Ryp!5|hC@wt`i04i9FtSRBqsCdSxwj4z-Y8N zMehjXWWF_Q(?4-CiZHrNzq^o8d~%9`6--QM@+(E2$&V6~CO=6O+H7Jd!aVtbiPiLP zr-80n@{& zbYLRbp$b4chaqS3`T)_%2V!S%`!eJ+6aiHzFhH&Evg6uZ6L(B_x`QAS%Venn0nT!u zf=q@IhSceeR~cm|*9dbo*A;EAD`FH{GrdHfNo!I8*JK4Qw#f>-Y?Jr#a82JL&twDu Dc*1N{ diff --git a/iOSClient/Supporting Files/lv.lproj/InfoPlist.strings b/iOSClient/Supporting Files/lv.lproj/InfoPlist.strings index 6a26379f17613cf64cf50b48f77673af18903b63..2a9c001c6ef5a4d8afa4a01b47862cc0b800f42d 100644 GIT binary patch delta 144 zcmX@Zb&YES6Jxz6LlJ`lLmopaLjgl3kW2=XiHwO1xeUcX88?PRpjax9<;mc}paZ0H zfFhYdI+3B2p#&(C2P88Y(ttRbL71_GAs?(S5o~TTP(BN&5@b>$P+b9#tYXk+1eu=) Q)UP*rK8y6`NsPOg0TqE9+5i9m delta 99 zcmcb{b%tvL6CmLn?y;gC~Q_#9&3&M21p^5{3+*P#%!Z1WG0XX^?_ahGHN; hk0Bk%PJ?SJ0?H*blv>z0{}C76`ueA diff --git a/iOSClient/Supporting Files/lv.lproj/Localizable.strings b/iOSClient/Supporting Files/lv.lproj/Localizable.strings index 10d4322a8ca1431389868552979d0560793bf56b..3b9f3e6d001d55c5e6ba8938947ae2de0751a5a2 100644 GIT binary patch delta 232 zcmdnCj$_(Jj)oS-ElgX)rss(;iLmA|q%xFG-z&nTIGJxL*W|K7f$3tROhVxb47m)M z4CxFR3?&Q-49N_M45bXkK(z`$eg;sc7|2Qk(m7DEd>}ucp#aFs1F|x~WFnB20%WHF zVJbrrNN%!kt@LDt89dXsh%sqR-V!S^{f`)v6|WN5%oLz%pql9)g_y)Ai%sR5eo2c_ oNL7KM9BfYx&@_-4#Xy(jfL(>KC1d)35hhU%Jq9HPYX&X`0K57%RsaA1 delta 32 ocmbQXkz?CBj)oS-ElgX)rq2*((wc0*!!>=u6h@Kh*Tk8u0Lgj_EC2ui diff --git a/iOSClient/Supporting Files/mk.lproj/Localizable.strings b/iOSClient/Supporting Files/mk.lproj/Localizable.strings index 544ef95735e1e92a773e4b51ef6e1b7144f61ebc..56a08bb2ef3672a946f811cd2de700a996825a9a 100644 GIT binary patch delta 252 zcmaE}p5x3Wj)oS-ElgSB)7OYGiSXtzq%xE0iqB{<}nllT*hjJh%2M85_5~)D*OMz^VeIO+YK;;TR`!g9*fDq(11%@=R`cwuz L1|SA^>z%M diff --git a/iOSClient/Supporting Files/mn.lproj/Localizable.strings b/iOSClient/Supporting Files/mn.lproj/Localizable.strings index a1b1c4114c9b86862da166c57a17c2a49101ea6f..2cdd7ad0447a67b8432544759c07656f5172da11 100644 GIT binary patch delta 244 zcmZoz!|`ApM?(wa7N$DU>GOn`M0oQUQW?q_;(=rZL&?;MjKY&uRtlJBGUPF&Gbk{W zFk}E_6dtd^nBF18WX7z-kTKm*fJq$annZ@&$r~pL x8!G{|+XAr?gC9r?s9k}f9B5n)5GsI;D+XGe19k+|!pXX8B{}qfI;z=jk9ZO#F^0&30V{0A)fq`v3p{ delta 37 vcmV+=0NVessR+=f2!MnEv;xi&m$DNADwiM%0Sc4Q6$qDbkO2&r@Dl<$3F{2W diff --git a/iOSClient/Supporting Files/my.lproj/Localizable.strings b/iOSClient/Supporting Files/my.lproj/Localizable.strings index 76642e450133fe6d9ae4f14e8b6f9c2bb6207849..58b3ee0e9d6876e18f96f4416bbe0948aa05a227 100644 GIT binary patch delta 250 zcmbQSoa4tzj)oS-ElgsF zlmJCi85E`~3Ni_cD=_2&CDMUHB@7A-$v~y048;to(;bZ&MMXhs^MS(o3 zjOmhl7^SBlJHjY7`QKEY>0-i6T9XTm*(Se=;hP>O%w)x@1T-v@Aq5D5dZwQhU=nvN z2bx<1GyviRC7?mJK&-^z2Ncf*IfkJeD3=3-3P5$KKo^t(*&r8zbSMB-DKKPAPZVSl N<-2!MnEv;r0rm--U|DwD873X_nb29prY4wpC-0y_DN44eP} diff --git a/iOSClient/Supporting Files/nb-NO.lproj/Localizable.strings b/iOSClient/Supporting Files/nb-NO.lproj/Localizable.strings index 4140f2af78b6dd534e799bc04a774e4af589875e..767c3cde1b7e570f71da1669a10749060fb1df7e 100644 GIT binary patch delta 305 zcmYLEF$%&!5FAew30R5{qMSa!O0cjI?ES-`rwM2xF(GzZSlU_KCoHW5dwXla($*h1 zcL=iV?d;C(?B4rYyWeX2L+K)3fjO#@XU@LxDls$)^YKMzH%17B7z;%1mB?7pkn}CF zW_3d@VU$=AEy!oYQ_kh&Y_FY(h$ZHX%U>;Fo?z`XBCWUz2HnrQFpjefoO~hCQF(mp?ObEY{mb(?VU54 N{n!869=aI9!x#4iK;i%Z delta 36 scmX@Hm*d4Qj)oS-Eldw&rXP`I(wZ#5!8Q3qI@@#ucSecnJaSBC01pxjSO5S3 diff --git a/iOSClient/Supporting Files/ne.lproj/Localizable.strings b/iOSClient/Supporting Files/ne.lproj/Localizable.strings index ea7940f5cc41abb4fa416aefbef403f4b8048a39..05c2793d2b0e7f7fc5f56ac25b2e567eed6ac1e8 100644 GIT binary patch delta 229 zcmeygl;hG0j)oS-EldSM(}-g2OUML469PI4+zn#@ diff --git a/iOSClient/Supporting Files/nl.lproj/Localizable.strings b/iOSClient/Supporting Files/nl.lproj/Localizable.strings index 865ae9859c6e3265609ef03c6ef2ce4ed9962a7f..89c14bad35d231142daa6846b9c8c2ed1c863c2e 100644 GIT binary patch delta 237 zcmZ2=o}=p$M?(wa7A6h#>31?1xu(BSVd7%VV@PEvpKhqiq{!$zd2flNaVkRvLkUnY zkD-_$lOZ2SD=_2&S?LTJKyd|zWQIhBQlMNakX-^4%Va2?o_K{(m^YuH0IW>`D3mw7 z@I0gRWRvS+lN;vnOxI9n(wdxS!ZvwX0^jrkbtWrDrOCZp#HYVfVdCK}2O3xev<9e) zA$|IPRVGn~av&!M2o-=5sX)6*fozc7ASDVwXbfgz0{b9#OOqc}6rgy|o5 zGfGcqxymRu*c^k+g$T9b=nM5YIsR-z%2!MnEv;yW5m&y|YDwDuN3X|YX29r$94wq1_0R)!}6aqF|hz|?^ diff --git a/iOSClient/Supporting Files/oc.lproj/Localizable.strings b/iOSClient/Supporting Files/oc.lproj/Localizable.strings index 1c20fe7d1dbe54998e26f444f625c51a9ce7be5d..64fa2bc7cf3e86f63e9b22e4c28ae341fa3b1071 100644 GIT binary patch delta 229 zcmYL@&k6xy6vfYXqo#?%%#bX6lnrHR;|1g`CjUk;VrW*%!rJCj_Z=)0$!pli&a22Z z8=dar+&{m2UT5omv37fPqi2y1F1hItBgFi6sb=~o+nkm;?s!zFY0NRj1Oe927{JE{ zk?d;mflMOfFC6|v$}Ue4O52wj%3v%SVI>tBe_P?6M;U$=scDW6mvdK@VqKz6ww_>y vawD6Zcc_$&1+o&@4>)1fQcgo77CRH^gc(VUSrY00HQ=g8p4CPjUD)^n0CqJT delta 40 ycmV+@0N4Mvu?W_#2!MnEv;x!?m$(-KDwYia3X?Dv2$Rs#43`kH0R)%&7XmgrP!2%= diff --git a/iOSClient/Supporting Files/pl.lproj/Localizable.strings b/iOSClient/Supporting Files/pl.lproj/Localizable.strings index ac5a09c081d8991f6e237ba594f4a44661f5916f..4991b261b4bdd3d12639756c8a53a101f11c3a4a 100644 GIT binary patch delta 288 zcmZ2=ilgf+M?(wa7N!*{)BEZexu)kRF>$fxF{Cn-Pv5A-q*(9Fkin41kjIeDkO?Lg z7)pR5sSFB0TmfXK0!52~a``}7fgu;jN(ai90NKeveWgG-kXn$QOdwlnEz1EKSp+n!80efFu+tD$ft-~BgdlGq O9H+;i#9+<9#Q*?LjX$#h delta 37 tcmeA=%dzSdM?(wa7N!*{(|c5zv?j-W=bFBNk&$D%g8~!J^i!%#Rsa!o4AB4p diff --git a/iOSClient/Supporting Files/ps.lproj/Localizable.strings b/iOSClient/Supporting Files/ps.lproj/Localizable.strings index 2bb2692793eb8e38b28969b9ce05a8df7c8a1eaa..aa8205fd9f1e44b4830b98c209575ee01e105337 100644 GIT binary patch delta 254 zcmaE}l;g|_j)oS-ElgQLlmETvnQkD!#KD@!kjhX#y;y)radK5Tmw6^b9z!~V0z(Ny z22er)h%12XRG?@vLncE$kXB&G1+vnC@+ClaGD9LmDMRt}L}Nzr>EH4hg(N{HC;&wj z7*c@h(tt3Pp$KHc^!aBQr6+Th@l4MWV$zx{V8k}rCWdeNCLty(W+jG<>G1+g;?wm6 zn7DY$f!d3J#(*6&-BFN9)S(>6$pJzIuvx`GJ9EJHBW%k6sz?DskXsdiwu02BGUzcV KF<3KjF#rJNr#YGc delta 32 ocmX@Jg5%9nj)oS-ElgQL)BS{*v?eP!b4}kcfl*|7k1&%J0Lg0#&j0`b diff --git a/iOSClient/Supporting Files/pt-BR.lproj/Localizable.strings b/iOSClient/Supporting Files/pt-BR.lproj/Localizable.strings index c5cea76ec4ce216575e3fa0b6ed46ceadbcf1235..346f27a05b23a730c98b736917fa0ace3ac78d49 100644 GIT binary patch delta 324 zcmYL^!Ae3w6o!8X3<=!@?P9!JQ6mtcXw|-VxaFu9)GK!7x~oNRU@(u-#!b+oM-h5} z-XQ#DRAe}F{`voN{&Qxtt$qB~-rg%4^WF9T9dl8g$*J^TZPR>x&{(Nv8YzpnRRQB< zi51wvzM$n~t0`!NUVxwJTcU;9(363!hUCeC%X#OTM-K}h98zKc9&(%(S5XXhDTQ-d zvuIq98R@m!L2LDwA*s3X`xL29v-*1d~1t2$$S20x~$y4k7>m diff --git a/iOSClient/Supporting Files/pt-PT.lproj/Localizable.strings b/iOSClient/Supporting Files/pt-PT.lproj/Localizable.strings index ab8bf1bb09361accfc6437946943b405099ab48c..1bdc1f03838bffec3625d3f8f2b83235307ed247 100644 GIT binary patch delta 244 zcmdmRm}9~*j)oS-Elhff)BWU_L|F3}QW?spo69pPPJXqVYx0#M0nJo~3WgG(a2`W3 zLncE$kXB&G1+vl^GJxU=49N_M45dK1)X5)3_bt= diff --git a/iOSClient/Supporting Files/ro.lproj/Localizable.strings b/iOSClient/Supporting Files/ro.lproj/Localizable.strings index 838a41ab553fec011a56587817016494add45931..1ad555e8a6e000c0e5fd5d502a0e0a1152c26b07 100644 GIT binary patch delta 250 zcmbQVkK@w;j)oS-Eld;Srf-mD5@F9{NM$Hzh@bvZhDmt(IvFOO$$YE1xHB2@7}6OO z7)ls2roWY85_eQ!$Ysa`3S|I=6c~~j5*bPvih)|eN`NxOKvo)%&Vh>M1Nr$31wdXN zkOeeudh~Hd>FHt@7{w;9naeYMf*h09^doXie!NORGcy@dfDov5`gvIHAS*m(hKZz2eS=Wwzp zvb=q>Gw;pLqzX8ji?3e z5?i7b^_Y0Uy#uvkw%FMaODx&_FBk9~V6QzS`NCnwa*3Bb9zsKlaTeqql{=!FJqJcs zo!8Xc5ksr3ZCx%fhI;fx(@N+N(n+UPV_P&PiT={3amcxdp?n?i|6vjC>%ysD#6H>> Gp@I+B{yvic delta 30 mcmZp8%(37BM?(wa7N&Xn)0+&Kv?djEP5!{iHhq%;lLr953JX;L diff --git a/iOSClient/Supporting Files/sc.lproj/Localizable.strings b/iOSClient/Supporting Files/sc.lproj/Localizable.strings index 2a002e38bd15d49c2287eef90da9c94b1afd8deb..94480d43221f8703dccb7db5c1f6c659b1f07382 100644 GIT binary patch delta 235 zcmZpA#qsD3M?(wa7N!Q1=?e^*MA-8fQW?q_;-^0}ViKM{&xnaJOyZ&n47m)MK%oqvkOD(8Ln1>dL-F+e-i#or5{7)BU_L_u(6Brp3#fa# z_FYEl>5HB+icK#uVKSRsXUaC2Cz)@0!FfiO>1TivTm!CQ*lSASVY16@U_{48=g(a=Qfo?7?c>S8Mqh# D))hFc delta 43 zcmaF#hNI~fM?(wa7N!Q1=_#g6TGJKe8M&rU*ucm!UBZBgXL`YTMwaQzOqt98UoH+w diff --git a/iOSClient/Supporting Files/si.lproj/Localizable.strings b/iOSClient/Supporting Files/si.lproj/Localizable.strings index cbe5a1b4de622f54306ac83ef3f4559dffc75c6c..1887237c8ef5f58f4487a57db1f1754225d5b243 100644 GIT binary patch delta 268 zcmXX=u?_)I5S)8LL~+eI3eCC?&`13{>R*r z&AvC;otd5YF@HMecYEuiUaqlSRm_IaSeuWds+|rd7$C$LLHY_}PBetQA=aEOxr_J< zW<+D|W8xuoEAF(3mR8w`NfGuul}KV|t~aY<{HIkicULtIyL#@h?b)VSQq7EqiFr7x zJPqkHqo|KH(Smn=Nj%!M*&e!ohL90p$`bN4Z?A}xEQvzM5@ri9VkNl+e#+OV(WQj~ EzD@Bt&j0`b delta 36 ucmV+<0NekruL#bp2!MnEv;xc(m#`KBDw9wQ3X^aa2ABS@0TP$;76LX0l?_w? diff --git a/iOSClient/Supporting Files/sk-SK.lproj/Localizable.strings b/iOSClient/Supporting Files/sk-SK.lproj/Localizable.strings index 0e3d04173b7bfe29d6a0676081d996c262278681..921b2aa124d7f246b3a095b32fe137537f47e055 100644 GIT binary patch delta 306 zcmYLEy$%6E7@S)nB1$2;b(d2pbSlx%dj%2BPqOahoX}Bt0*Xyko_M4sgzRB$El|R1o`-62Cbyr^G&Lx!~{s8={b2|GYN+IxHLgWI}SnWKd*7ZmgJ6#fj4d RCheHV{4UMhq)QtG`~Z?~KO6u6 delta 38 ucmbPqj$_klj)oS-Elg^v)49}`v?g(IO-^WGo3@{kXWBwWmg!zFlmJCi z85DrH0?1AUiWURq@`1DhLoSe&4wNqevXg=ON*Ri$GrBN}PrhTu!JE%e09LL5GHQC{ zMMmlAB2O5_Cil$cnSM@#No%r$Dcj_834GJVG?}b;m4L=%GNb?@(2D828cgE6^KjHpp_25(S`g1!Plzyfm=-R0cf;B?fB-E(QSn C5;~Cp delta 37 vcmV+=0NVes)d@m0)RMsWxij12l>cQYjW*K!Pk-c>@c@lXwDa z58xcD|kkfMWzsObC%~=Q06m><~1P=m-&$4VHx#8vCWx=ElXjyZJGB; zq|Ditm9#_igs>Yy=9rbLA8>w2&-WIGt{R_%ChId|8UcG#hK}7Uo-~cm`)&V|k{ZUm KhaxRiB=G?@Upcn` delta 35 rcmdn8jpNE@j)oS-Elfd@)6Jxqv?d$4a82Hz!8SSX0^jr!DJClb>GBKx diff --git a/iOSClient/Supporting Files/sr.lproj/Localizable.strings b/iOSClient/Supporting Files/sr.lproj/Localizable.strings index 1f118ac29c513823ba0b0878b85ffc230d11ff51..2dd64e6679d136bf510639d72c7c4be006899bf6 100644 GIT binary patch delta 434 zcmYL@J4*vm5QXP16IdiRBBar9v#}DC5Rw#{TptkxA=U~uiP^-!CM$WcRz|SWc8jZx znjaw8rO?JstOOf>gGCxG#LBa4M3&im=FH5;Ie#+0pUu1X8~^2cK9b@*E5GzH>#M8j zQ#BZ>fykFianA56=Qzb_)DBC^@)DdB7odyKyIkZ=&Z6I=7Ok^_rvQ_*g1x|3yoP;A z8~)>EOvf)oRLf&w4o4$#lJRH0qWZxy%t(uD^7L84Nc4+zKxNSC)Cm8Qx^Qfgs3T|_ zZU-|LucRha9rG^qKJI#$1-rpb16ooIuQT>s^e!ES3<*CVlu=da8a|uaW;g^+_g_U! zSCU3ff8L8Zy|o~w^jp$MPg)_niYsK%x0VsBc)+xQ`;BY?SwLB|4Zn#sNnRMkfoh}g XAgB|D{tpoZ9z(J97kd$uWtyNLz3W|O delta 186 zcmex$ilgfU$A(u6#2pz*8A=%P85DqY0YeUumB^67pfFkRvoNOuke3G(tDO9Qq2=Uv zsUnjvsBkpbE!F0!)L|F3}QW?spPZeZRoPO#bBbQ|+Lmopqg91YdLk3Vr z0f;Mr>{Os=F+(OpK9E*m$OW>}f$}9lb}~aELn%-$b#i`z==5&|j6#wiBNTwb3JfVg zg=s*T%1{I{V){g0M&aoOM;SRLXHDao-XqMUHOZK5@}3yJ=?U)`S*G6*W-?<`n!IqW zcwRivj6|SCsSNQ9;ukPmU163|>*AXZ}VgQ`#fs>o!>0YU|^J;gu=<$xWBa7hMG YMG6ptJfZ+}5lDS1gC5WnYX&X`06{ZApa1{> delta 37 tcmaF2ilc7@M?(wa7N#EI=>;N8T9XT$xu$QJ$S5*B;TzH6>7rgEzN$F;e6ALvz?rWz}cw^aq> zWQjMhgI%DNWUC2ij9!6X=v$(N+R&4Otw!YH#Fe~D&7y~e4-OeI1dljQ^IjB#T}I)I z);tD^Vm+~m>~wN<$pS+^IX$7$N9K@iqQj+>Ir^AnN^Kea4dC> X9hcxR@Vrmh{bUON|ASjx?scg@A!tD$ delta 40 ycmV+@0N4Nix(J@Q2!MnEv;v?TmxLSwDwDuR3YXw|0S1$xiU^Z13>KHt90Dd#AP(yQ diff --git a/iOSClient/Supporting Files/sw.lproj/Localizable.strings b/iOSClient/Supporting Files/sw.lproj/Localizable.strings index ac4dbaf0214e41a30a1167c8d219c80f76c3e62e..28d37dd0d69560061c2272cc563da633732e58e6 100644 GIT binary patch delta 279 zcmcb&lw;otj)oS-Ele>&)8`2?iSXtzq%xEEL$K}V(^2iPynjPWXJ(R1+dx0KnLZ39fz&(;bAFv?do!;+lLxoo%|G6eHjCI$k(_aWPdGIO$4a#Il0Yac9)87g)iSw2N%`5`i1k}%v tKHXn{NmRZZ$jJdh1)xMK&?%)rHpqIA5(S3D$o;phV<#{`Itl< s%7L65AXETKqyjA~1+qbwgOn%$l`9~d0_3HE)u%G(F(@%uGjK5g0B|fbMF0Q* delta 35 rcmeycoMXaLj)oS-Elhku(?1C@X-($i;F`Q3g>7=e8NTTT!c0~G=s*jy diff --git a/iOSClient/Supporting Files/tk.lproj/Localizable.strings b/iOSClient/Supporting Files/tk.lproj/Localizable.strings index 72485018199a2141793b1b13d9a9a918bd0e7290..e14a69057c2c28257999e3376703066423378e90 100644 GIT binary patch delta 241 zcmbQUn&Zz}j)oS-Elg6PlkZt^O}{6^#KoG&kjhX#U0Ik(aq_ywT;`b!c?{_c3JfI- z89)gIAg%ziQ-Pwz44Dl1Kw5zz7syHn%9jAy$qb1Mr3}T>6HOV#C-azaOrKT6$i)ma zWxDh}M(OD$*BQko|0?5|E+xvOHTg!2$g~fPEYs6Onar4#7&4~w3p0s>oxxiUG^Yq? zI@tc{ABCAj9m;{693WHxN~8j@pOIsF-Udd2=?-E{W&j6|3=aSR diff --git a/iOSClient/Supporting Files/tr.lproj/Localizable.strings b/iOSClient/Supporting Files/tr.lproj/Localizable.strings index 40c53d529046e8383a725f17838e3de91910f6cd..ced848d9a8649d8e4949284eabf2be450cace793 100644 GIT binary patch delta 1293 zcmaJ>ZAg<*6uxJ!G1eS&e$2jfTTTf?Go_@DVU+$Th=^DtBz@QX7;~GvO|~FP6YNJ8 z!HsT3fmT!~h43a50`pI4(1(!*M*ZlQe=JfVA|pEIeKS7_dAXOn^PKaX=bU@)9=ErEvyMYiA7imgjs+`6L#JeuUdvQu`o|-OXsH&WlDKsuaS?HS@{*0P3)Tk zGr!S#i0iLfxpgFik65yJPrFGeY8%Mr2cH;u#VregYb55tG)dsa?-9;%xlD?QEjC27eDHraXE9T|5Eh%W= zPVYL!Gu8o%4gAaaltE&Xm{gg0*Qw(@&*q&odFOMR@@V3)O22}};*SMcq`@*; zWoIp>An!0%S_7i68a$K&s4bad$_HjK#!Yl3GONS5815^?B;D@;TRLj93cVk! zylbt=U5#`UBqM1=?Hb)#2u~rjG$ARDjOhM~$r`Ug#%i)^5<(*FJUGQrKbCl48j6IY z7xdifHB@S2=3ouTJc&z29x5b&lP}{6DkDCrTBwiMQStf{*qxgp__rR3X(qzD!j#JrS)F17*j7@m(~Tnl34OEFZ+`~YaSDE^MJX7r#~QbvS%gVzm^+jZlk4kS@|vLq$zZlhJ;XNt;iT;wM(2 zAar4Qiw6Y}3#H;B6lM|WMz?}4im9J~qToswM(fgr_fBksHCRGs?wxne40Ur)cvUBZl1^1DrdQh2dRM@dGii& z|{ANEpP0A^@b5t`OCvDeI5#wd$W6fiRe z*W`r)_8!=+;T#M=Uv9mC?M}5kJ>FmzX7B% BGamo| diff --git a/iOSClient/Supporting Files/ug.lproj/InfoPlist.strings b/iOSClient/Supporting Files/ug.lproj/InfoPlist.strings index 6a26379f17613cf64cf50b48f77673af18903b63..2c2bb056e7e6064a097df77fc061ec079f816705 100644 GIT binary patch literal 1386 zcmds%yG{a85Qe9k!l&3+h@pUhRvHUr*|a30u@?=f5q4Xuf^W9N3sw{Ja*Yy(>S;uGP~ z66$DMO6^(uxcAgcp7Xj#cIRX6n;vr}Ui1;%$XC%UVIfV5F6E4D-mi+R z7Bsp=R>WU+F~4!}&j-oa@6b-8Bv=&v+2=dh4ijn2rd_c!yP>OFW|Os}Wn!x0NwxxK ziA<_M(k(b;et^p17FpGwkgf!)pEd2x=D*F4tc-&e@P*Am%Yco+@yEqrS8Q5 literal 1356 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

jCfQ#tFdUm(~L}zq#GAG3Ni7u*q@?jb%C+E zxu@2ey%AJ)+^oAU%pp!L(BbE99PYp%U&W(wM++Iir@QCkC*8Q=8mjLAR-lqIjO?}E`+51qZF{=hrZukJ}*d^^1h@=#8OwD(%vf9m^XK}4P0LAA(KRInLDFjz?7(;HGHq~_t+Pz|O#o|Wn~+!Rr%LZOKaDj!rNnARhf!**#-$92D2Cpn9Ed16VGJzF@e z2YaI)GNwyU3wk}Qc0c;?s;OYVOuM8BU7bJ0{>HYum0JHK8YnUqFKWzhi-c|6y0%ti z4<}QW@^WCFb1_)NvAtcwfee9eIumW~S}ki#m1=sPoY-XcsqX6iDL=}|x-In5uI_f9 zOxmj^j?LY&TE+6!kV@HxTn$e~=BC@LG($jM^5yiKF$B|H8iN<|dU06K(G^?YZ3I$)3)2o`MWcF;-6K!R+^~U6>WWs5?vLlDSV%gdg z2V=-c7#BkDaLFpUYal)6C(}IANV1`XX!>g00H{gttQh@r>Oh`P(1kVH1}q|r-|Fj4QU?}k?&1eHaU|{ge~ijD1_wr zoWH74k^rAI0D~v-r3xF}3n&8SsbAb?s@YE>Gx`^J`(?-}3qU`eCg!N{y*$-oUxL$CT$7S~=EeM>&&P4oLtS7b-9GD-C`Iq*(qbDNY&Dc#mM>!v)U}mwS<3hl73cw}7O&Hn6~1777prnoMBL5WM>0+(H>0!Ja(ux+bzU<{PJiIffT<{6CCWiJf zL6);3y*CxqUL%)gMCclQJlToMKv~lNC1^-P#&XgO@K?upyb~;=&aC)EI#EsPcxC|a z#yUDbiTv+dcRn!!Uu12^xdBqey+_KX6K+mfh-X{(rHOdi5lxY>Q|3o>$Hvi4{(Owh zoR&IywRP|Jig&pTjqxB<0MGzixh*uWaC2wMk{q)pcd1{n(`_^*9_H*HUQ61{x{9#n zC-JSSjwg(qjmWx^ESpbFmGq6D7z!F3EZZpTM0rQr*1Hw%M}sj%%0q>>(8+kmdMg~v3vO~CMT&j zK_^v(kK@(6LjAYf$u``R))|S^orrh3BYbr7qsB4qTKY+}L7w)XEBPS2DAjtrpYk7K zwwxB9uW$L_6z&f}YefxYB-G2lz3?4l%EN7OnJjBNCgUVzoNRUn@)ze&K>I(<5%&aO= zBlal`<|XA1Xdco$Vp4waG-^nH{Q zbb44fp6)+!p|f@<7FBO_gUNC=-*gZbIe|}gAWwY=1MJEA+8JjnXJPMY-2{W`*7uWi z;z`^EIE^R@y4TYzt)91#m#lK7rYi>Q#aVRjgqtROe`dS(a{ptUN|I*sNov1HxOpea zsgJc47M$4vZ@GK5eTVOacW}HV$_jFObC7#y>c3R^nD6{>OVifp>Mcsk8fiJiqWc&e@EBba@?mQN6+?AvnPsEtELpW~TtvIALiQ=d+?vRA->e~mW(!(@5VhKU|qFnfNQPWofus#T7Hv+u@JnEt+Ca4mkm7JJl_ zda!OEO~1JoGLSG$l`2WEG@q#%KUTP%lhRYd@QX{UYF9kl$xn0A^dnW8dI~owHo{J; zv=tM)H64(=C9O_7)+&K(D^z-P|0NThK9x&_!}8~OH=U1EJ*`63``WdAn||9n&HYgE zVz+dY$U?II*V_#3l340?RD7RIe(~xBZtRvkK)3InJ>568lk=gU#Op&qXO zlPB=eFyT_ZDx5wgd|pH{&a1 zBKKsDKy~$7u!rlr5*&Mz>~yg+>UcS`>{>9rmz(0mbfPHJq_5;Xn(aEj!J;%bl1Fopkl@PnDY_V%;2b@$yus&!98?$BL2 zjP)E-U6~4=Z1FbwXl3E*?ulft{zPP3>v!#)b;%#qBawiwC-3)uaEn=Lyjy?f(=_vU zVRC1xXfCgiu*eCv-63fR`CYKkoAy@8Tzy`9-mWcL9g0;hi3ZAfy}F{Nkt8LqywZy5 z#xog$cDHBks~1h%vmIx{6Qr~{Ns(L?E>r#2N!Bee`c;{Fc`amOw7Tp^_E+{p8L$3f z7;1Bx%T9MioUPkuOmoQw7HGYu|Js#H3aybbu?^A(ri1_b~Xv>3M!gE?wa6- z@!ra6b=xNzjn?M$2=hTpb9ycQnl4h`yVv|S20^BMCQ&gmw+3@B2Nh-6O{VKdwn)2r zGw80*MCU#BdV2A>qj*y5U4EYSVZ7B*aQy%ZlmD)F)-Bod@4|p5z`jx>MLm$ur=4NB zM!3({(r>h)Z6(=t&K6V2#QUU7LaDqvQj$ki3|q;q!fUsD3DQYf!B3u`dOlt&A#+lm zXoV?e>g9*jt_2zG)wvnbizfj;-2F26_i%#Gy5wxBV+nn3xqV8Z#_MCco5DoqWOitr z`X22ZUP9CDQl7@ZJA&JI^`5VWM#T;&K)V%sMLi~Ob)Cb)17|mFi-ok7--(DrIS<`^ z_gMX0XVE(0shdcw0-fKE98K{*IUxDx+Ab|YP{S+moGDI!~)8Q!WR zg7{+CF+CmXq+}khidNmOHOdNWZXtWVnVM9%kP}CGc@~A4e%-2}9IUOe*9=DW7}+7L z>$OvlH& zs#$QI#mgsoF=J1n-Dnr5Q=Fbw2P?{13FKLk1#+EUtJYK;m7!JG;TnUWi)(T& z=ruyi7>eq%CU8@a>Un<0>vQ;H%drM4vqas3%AF?2f9*EplwL~B7*Z=IDXrvAz9oa( z|MgEkeF1u8g~BWkS3p4HFSI# zzLu;zt7k99lgYVZId_dU)GQxZIRerI@4u}^H1?(UhbtUSJIb?D39;4(6}dreW?ktG zt=}?eNv76AM4^1?G+s-uZiY;&I%gitPydXg^=-Ts{F7;KeeRGugp&9?-BOR$$w|6> za0KDivO@m^!GzOhH1=oPsvMRhtPoVJRnCOq6BCE+q3T2*$@sKIjXYaBeHbk5qlGex zdvZ^6Xjxs^2isJuCxH%uy=2Ardp~R2)r-536yadS(_V{@oL}KtM)oE0@6>>j28oCA z3srr#-Bl$T%<<4|;b(zQ#-4aT&orxZ5$6^gOjHSKd9sBX$e1vpN5E-0bxR!U;;X8R z`DxXcfn*u`>(s;VA<igR2DN(3gpKh#qM*Vi1 zrF}51pieA6^O&srV?)l3A($g z#T_P0nSOCGAHdU%$i=v0J7L!TMZ03fdi+{2|7*l6>e=L~Ym))vweq)G^*C%9(}>Dq zdX#N+adE_ni)u$&(+^-J~vwVzlVHY2Jf@!bE6fx z6;hp9$q294@1PMU>CEUHH#sqxIuj;aAlS|>bF_y*orqH#qt)M=D1CUJ0BzODw(+Vu zx3c|yMd5sXqQ#P2;GghXc%f|=YgK9_H&*10z9G@+GDTZyvo`8kVq?1gDd>8b7Z?OQO_6;#~C^bM6(p2rOLJfX9Oz1GGuW7*IMWpC6i>aF{= zq6#!5LtPl)=tQh6H@OY{L_FPmc2MvR*_it;)$!`Y)1CNf5uu^OT-Dqz0usfNN&B1(&66l5p`e zjjB{aOJ*V9BRV8mpkIK*&OSYoL+_L6L ztqLveY|G_W!U|FY_&A<8i?t<>yc1HW80xLqBQ_qbLN>=Y0ah+b_B`n-ORP!|dY)%Q zkOp)gxtMnib(^8|pB`&g6V!8GmfA!1GuJC|sl{hr?HFs%_L+sAYx%R_=k11?fsriM zsuh~FecplTNaCu>%hp4|SywMcGAz7&$Iv=tPYYG4&?!AXCCEKVI6FUiGo~YP2p*fb zen0Mq<69@AczqgQbRzXc+vUATf)ClrVJDHb6I)Jc!js@V^#*==c1g$^RkwJwUP7zY zes)~)?$zzMNIRCNeMZtxSF1iPY#o~R+}^r1);~|?*H~~Y&s2H0o{_a(=cYK$K-T+D z=N3Y@iD4}?*PPD_?{9z`>9KYo4OM48J;z}?S(9^7R8#J$J32o=yeh5Au5XO*hiM-Jo z-6$fAp!7aEkLgLYFn=1NCFYeWmf#)PIjz;{F-OOcc*gWRTQMX@e)f&3OQ4&~qH+TO z=cI`RJ!emkz?7nopAxI7PDOXzBB`I%BW6Y3sU8Qk%v&bv)2$qJieGTzg^(*g=lBz@ z0eAEaSWfGFA6T>E*%XDc3nWwcd#0s*N0m%+B+rz2$2Iy0$^U$PYV1o-AQCiq?Wp7M^|8@-3g5v|_oMaSn5?)e6ioZHpJ=;6 z`{3`R=2G-cRMuL%j30X~7<;XHx1?^3Y@?xS#jL^3VfIBvy-rLr8I}>f#j4jybu_ZI zta-zx?y;mcP|qBW<;Yk9VHdA!q+MD#gq@jpArU z`hu8TLM#3JE=4oa$@&f=KJ4E3>4JF5^GSExUhkMb?tg5H{Dke}SRFgAERLx>Zqme3 zshTN_o%gk!?L)AbOL?VPPArY@TtaR|A#AR!bd4{dprZ>co=*F;XBfuVY9_~1pL$|- zwO%c^MKd7Zm~1-{N3}(LY*6#r%fcT~PI#P6vg4@$Vwoy&szN|7bo(U!Mzn;cK}k5g zybsY+nTYFloOr3VnDKr_6y#nhDtFjhDx}0MZM|Omc@Xb-cdAA>XC;yteKz&hbv1YV zn1K3X)A|0)&izVQw3hEQD5Vqes&v(9CG6)GOhz0u%<*?&!VODskxChM5`GhhiQ_Gv zsiCKn1txm-JE_PlWt6(@MVuZ@*3em$tUJ9eiHxl{OqHs zH~s$UZ|Idevf;i5-9|0BM1!(FjijnNq$lO1H&ISev9V>MmZzCw_=KJHeKMNM!5V1y zRQXk>j5_v4Jc#$OjpPchQfggSxrEu-Ssb};`RGqUvwAQG~ zj%8QbVe5aFo-k1@SITitoN()wVxX-xS7GsH_qoy9)IO=Zu0M@szQbRKKmTKVk~1UJ zzK}Iy7RB*&A3R~ss}W@No;cNLJER#LZt*0tnA2Fh!mm7@xQLWuYdHmgP1Vn;Xd?$Y zS&xovgOANxJH;dTn(L!!vaCe7K zl*}c<@Of4VcUA<1cvU}5%y}6|b6=sIszxhY=F@59oyZW+S|qsV;J?f zhL`7Rfd-6|BL6*vN5N4fU<$?MZqo+ zyRb`oy|p@0v%nD-{9e@w>G>{AVu?%kx7R}(={|B&6ORclI(t`b4)q@2ttT&UPfBdV z=czIItcxO_yEDI@Q9h9^QcomTZVq^4jj#PyI;iy|Ixs z>Lp(w!u;;@Tm2R{OjRncS2<%JR9yDlau}LTadQ>Y0PbK`pX( z(;N><2>Eo=CLCiqdlDlzQmB0DWo3DrFs|9 zTUz1m(B`@*XvozjG5O37n+m-!RZkcyD1WvCpJ;cgWP4QEo9K(Q<{qrWg{&+vCZ1+!+NGV!} zr5h)frW6ga&ugxSCzrfnskw(qc046VrAg?{o3DfX#b*K0(W(n)kb>Ppm=+t-4l zCqZNNv15)0wI}J^SVpm+)FyP7$03ln!iB#+Q(pH>&Vl9jj=_YCWc^gX_CA7*4Ip;% zvk|rHnWt~%YuER0eXDwfM)f$M{ZqlQzKc0`G=toh zsY>GHwP`iss7P+C-QwSI&<#6(8n!`^D<^;5ZNv_bPgJ-2^PL!V>S8IwvgVT6^mlx4 zw%&6aX&EaW*g1I>G}w1HT3U%Q1?1iR#2w^E`m9)m>J}7%PQ)uzXO`B%0(lNU>qKYq zTi2ASc40RZIb#V$f8tH|(dc?&S$~|Qx%xVvTKpzxrW;$4+_qjZie-`lSqsyBCyK3w z0~V8Pw?dTmQcXGhjvUF}Hd;~9V*>wC@RN$)_4rp$d{sR3JQONNbW5oDa`)x3Jrf@E zOR3N;bB}EQrN|AQ#0}BJ@7(l&{h;CkpO6A>em#%x%5L#Gs@~N+AS1KZ%cV?nkFUCe z)Fs%5ruCM1XI-iCMXtT?3D}a>I)O5(!KySQs2 zh^%5YbvFe1I``<}Oe>R~LS(N@dEJjJD=RR>;qzM{v4+5-;wBq}U$M`V^e)*U;lT6W zP6Hwti+HKrg!_4<|EdByD`{(6KA%#hbO~M?RhYBlfnZz)g9_PqSyg#k!$uU){Z;+_ zkLb&x7Vi*?Cdx78u1cMIuv<>uS+B9FJ>`^fDiY08Z`#X#UTX)(AqhE$Q?24*b6_pU zg*86r#jrL^s;7tR*JWmr8s=K=?bWp|T61sm)^!3I-JGwzCKF!O@`(@2K8Q{cx+<9X zD_e4;hrZXGcuS=6>)35R!=AoQzd}Nr_YdZK%!t3;t*AvdLatDE*XA;gHdQ}Vmel^P zb~%*qU`gqS5r^tzELP>u@tQt3>({BR`7Zi%A4_{MZz?p!EVZxiX`;+l6dikt0_`y! z6qoRKyk5=jnCp>Gq>^RdsMv_;PEY)FJ!*Ql zNLNo8arL{PFTPRFom6eo(>!nmFTW;5*dnrUJV*~A^@3M|2mQ5k#dAwJc9ol29VcFR z9A8LJ_VMP_ei%;{M3bqaxGPnoQ$>wP-V!7|qXKxEl&7BC#wdU5TYcvmI=30ErY6Nj z?Im5c?q!_UbNW$GPv>`uxj3b^9B(Dm^;g2_^^2964B{@e!E_}#2@D}s>lXh_)83VWG5f!3m=aXF_BI+qA9IzQoiV=%GJ08NJ zozUBY1+^8P0{iS3KoMb~{FnR6_fdkZY~PutO6e`Hg~RB%8@l^My~3Xgs-S6R?T0Df zYoGM-aN_Z^TaMhhAm-$*@3KliD}USHaAiN`oagYn4ig8z5-zU<7m;SK%yZO`Yb*iX zDEtpHPn`>C^WDAmRLadRIKrU21c!KGiAc`2=rY zCs?+f;tTo9(tI=(6>>kO^w1#n>xdoOr*j}RcsC|~6gQ4z-(H@RR`XZF?lQ4$TTR5a zCl!~u>F9DaTda(w zo_s=Y4#(e~9qY@fEbb5?_s+WwvObd0^}Jr=TxyQ%7TYV2(PB@nKqoDcO=`a81QS9& zm0?bJR;vCjF<;YDTYsui;GulxVLUhELD<{+Nqpk9i8}Z`JQRNK$s`r>H+qtwCjaft zRL`oGi3)`~s9R*SYLevi`@rNz_(dp`7KO}4@fZ13eFEK@jA?bP>lKKzbi16+?9{dR z4bKKjxN~TF$9|}maLtL)c|xu^RYxQNFW6%{iCA&LGH!=uXup^|X}iv7SJXdtIh7!rY^v| z2KlM()X>wr^OQl2{94F@+V*?Nm1HyWHg9E1na4Pa!)oeA!nOOs>kLNE$%K)T!)>xU z8E|Ol)ViP!j3|dM#}>j{@;>)f#cQHNo`Q(&&-uAgHdf=lwzAmLw0cj!7M))&RfOCv z@uTMLMsnd5#^1H>t4~+RRq0Fk4m$PQx9WsxsBW2Jp(_859%kZFn!v@Iivi0#~W$nczz1$;3gXnb&7w6f_vn=ps z3r5O*(u(AyXT_&RZHbX}8xCU6&<%8bS?+|9wG>XgG@aY4u#_({OO1W=90fUA#?);u z3hPD|fhW`xiIy?w$9oKf%yCDx) z?!4Z4H6|a3*k?-ifyYzV5uv()Pbb?+>Jl}`aTuz}C^f9fV z+u^iY$Lmn6D#cpdD);7eN}b5=GM0s^cWYUUk8G6mSNr=aB59Ku#)A`%T?S=yX>MC){V>ds?qAB4<}5k5`#{lpcqC zj!(P$xwa(jNBrN4!7_Zhfz%_gYeaC|?V|{eNF$-oIiIj~Hvvyh8SUL({WxF{HOgW? ztK@Hm-tOG6x9%DrjdUp^B3|Gps#@#`5@JEkgY3t^e&5v842oA6 z@AyzSWShPxz?_`#+;!4Q4fWAHfu(w+vLULRx;v`Pv1lQnXtJ0bA}bA4J2Hi&g4))=#=A?%f_gQgf}Gww4?3=OaIhw_$30H_pxK7rnO5+W!kkXI zH^Vw?SK8lbZ~bKI=&VZ1#kmwMMdv^ranUQdhPY3PS{d7J84~{Mjg)elj1vvN5Bz#u zlG4l-az)Oj{j6Im6HI1q)!Yhi3CfsCt>)%BM^iLP z%tP0tRvoau+_;pd>yYSe6SUeX-pWsR?AJ^xP@ zqvk?mh=TGjf!_zgMa>&1_pI`;1R-%~{ms(*$G5l%hxz#%Nd}b0JJ-m2d42VCv2fgI zHQMt9w2)j)151W;=cBbVr+Xo2q}ou;R^iO2i_{}JqA!eILE8}o_*LVm(aC#YYky>z z+#|_M1U>41D%QP^WLp_nr;ljUM(eFU5Vt!+7Jus52WpS11=UQD$e~V1(O2<&>bFx) zt5fIbyCM$VhS)zlWt(S~9OWr4x;$V?1x!61W`yX#@!VZ?IC;(A>l3x-UJ^>umm@b> zk2pog(~0kJTz(yi@e1(LQOfqyIPl%Kp<`2Omf73pUiO94-I%BPP2BSIN_@YwyIbUD z-{;fE&0lHlY6WYhXbtNcH}n{%y?!eu&F2{Bc{`ovrW36*_CTcS;%CmzV^CrIzdU!e z`!4uiPvK?HmP{ip+Bl~QHF*-~jUD^&Pd4wm?yBnHh$* zbL5rQzH2}23Wr8aO8VMXdR8;K28PE}Yzk?MNT3kv|p0x$T_O=-KJh z+SeMj9!jA(zH=%G-@{>YYaKJ4XdRxC86N2YU7qEND3T+XZ^S2=d|_^nsEC;NkJBn& z#cSdxJxero!m}x=_-^m&B+Pccn0P>QmbyEj&iT|hG_9~ad^;smr=h5`wo~xhYg;*> z`q0K(OZVbm%sEFCqua|)17l5QCsh(V(+7U6V`YmW>?&2ZW1^Ek?M@Oa$B}LIx8S!_t5ND9ke9u{WgwHe)+(j$$l!?{^k23=9Vw+$+DHZJ zdeDG-8k{TZ-iH2WU+rfJ+WOrk+Oa1FGZt^VWMpP=np1MT1~X*RIdO|C8FYKAL7ScU zYzrFi7_Rj_)lLaRol_d0)2{x6_q8(F?xdaxBDSVhjSW(j%ySUxoXbBt7pOSdhK(q4 z8s3jeD(5@qlxSg+-)*a_q;wp|+Bbv#>friGv^qIjYtC~>bo#lct>zQ$u3Ed$YFol( zBH;O{U&$*b5V*Buejf1V#0l!lkDG}qTP&g)$!`747^4=mddCQq=s7-@zpV8cVpcxZ zqpPYRs+Nx+R$DaZI+pO?g7TiWIE3$lKdx5mo*_7McapiRu4o>lt*FhPQeWww-Q*Dm zgvH~aH90qDE82UKtE|*o=+8nQ(Rcg-r&!F#?cW9YPE0P}jp_c^o<@f12vC!Rs>HY3 z*R=kg#Coqr*7-)<2mT=b*^A7**CDG5MX(UoZv`d(CB9VmFy5Ry#V+-%@alKLuG2m>(p6s<4%Z!SlO?Tu9^QcIW~%w-0<`g&2CN`e zn?D52$UT`^Szll4UX9oTFQW)ZPc|igY`b;yQ~a$Lq~59m7#r%V_Jisd>m<2)C3v85U3VQb zRl;>jkY1CxM3(tc@N7PvIhX0NJ|Q8;h2lFcT_UhBm^f_|18|s~^ zdhe%6CJicF-{g{+2Gvl`!jGR}D;m_iF{_Qr6WKqpi(|XKx;28Has8ptbqCQQFmreI z?;~C(dk|p|Ptf@mWTKC86>qdpMb6a7$S(FpibP=b1{_6%k}t>2Rk|ufoolN; zNL791dvp2LF70hR2f(~N7Lsa|Dne)R`aJY?bOLWIVZx->?URp5;Erm?FZW_X2mHo@2ipU9d)E5V~=>pSq=T_+j8T=T7SXgZQ+bu}BB_ z^~hvTcg*77iA~{aoukM0BO_S*G7#-%36}Gc+|k^2?&G5A zWquMn+-vgS#QV_Ih4<^h!?lx0`#8hXGad!+>iM_*z8N2+yIJR-W-3k|bp+dg+bU^E zLDTT=#p=nID#@BHLF=|b5EYkCsQ8>w!q~d9@%70F>Nj{r=05R1M`7LYq{KyEM7Hsd z7kW8{*v|DV$(?1np53d@lcCP%N$5JYrg)v`*5{t2Z&b2~{m?>cfU2BwuJCj^&yy8E zriHLbzV}_HEb49ZJ&k3>+NuLS)zd@DtJ>L8^e0axYG*zXI@-@1MvV@M0W}rca(9ai ziPGqS`_0M0rFECMHka}7K9_jsUAl{0E#nd{TjXh3nwI4VT<}MyAq%>VPCxthGv%oM z3z-uq!h8?bG=&_$A&76QwgCQlpnb9(u5sf5^_am{? zgn_0xgVDQt$xWXGro^S==Op#@q`B;hb6}w?uf3nf7Q?mkv={qrn|SwpHzix|(Wo6! z<=lz}uy6Y`K&$t3Nex(Ad!OW4>iTC)q7!7?_bw`9a389*&u>!qND;ZS0Y2qt{MH%v zUiy$*{k_Unzf1C7-PJMYo^8=sw)B2ZB!dyMKE5%u+Nd>3?z1PR~!PA09JJg-w{p zr|o&1rk;iSyQP857o62F+d(brENw7gcK2`y4}k%l$>7Fu9|7z}O9)tYfL32k_x3By^VaZzCT_u%U zNvV`;dWnkT_LBpmzE3qmv*+TB{Bu_-h14OSTW~l8t?yM;vHd=%K+J`7)!K2}DLf2T z3rDo7k$t6Ca@_rObsD_SwW^%p&@F0rp*TzxW9j!<#AHiQv5jO|b;4)KLZ%mc98f(e zH>$nYeQnvxJnBCQtT>J6Pp2)eYpZ7=nzc3c@g6K=*`IQh@~m_uw@{}2{*=iw13t!~ z`rx+Loi$u$qC*4XnH5Rr+5@PuYo!Oa&h>D*X!~%otj1~ofCLTn#N0Y5{p?sVm4rrZ zo6~Tl)WVe>K?9zetEUc(Wn%6vTi@LCMKoCR&to{FY7sjecTl`5s-@TCpPz+u^+FY9wN0~9n)YuYXRT*xf0~8T1bss7ca?TbRCW$d z{})cn+fp099kk`Q((3(o+VE=+a~Zm&%^l3kLnHF1GqhgmvrIjkFY+E+Sz5NDf?9p+ z?TBoMw+^N1yel_`Du}IRIt(Jyz+2?Uk|cf+ct~zgQ%7PfF{UHE zY~nwn>?a|snwzL`QN?@>3LNaaNrF;6+GzIldiea-E7nO4SqPrwLCj4Lluo>=vRJV8 zS-I?Ep6_ceqs_4MeP>~t>n)RY$Jp2UGxZ2grICvfr}Wg-jxW2*YCDXdyoR16N=!~| zXSwD^HSdu9Xn&ldVTKtAYWHM0`Dh*BIT3u`^gfM+!^S-VtKXmQP-gf-L1 zoZRA>YtO~gO3+L+R@#bfo>OZMcS}vpkOeoV=#Y9pF?$;py`=Qk%aGQ-3yU{H&hVL* zxwfCB(`lEZu3!twoU-W)MznM$plFc_g0y`pP85{Z68D@F&9I0y*DwV5H$GihX(%|@ zIx_M4yuFbPVajCvsY$#8&vFF{wb~^{`-QbUvw2XZ^9H^d@BK=;+i) z5&z26aqS%(DnX*egQt@SRc@Bnm(DuRTZd?lw$=jI~n}`+JPGSpFWe_;xj{ zrf(n3_3K$I?yMQ?ymKoly99|C z?2nUO*)KVk6ZML?TOc*d)rOIbwz@$D7l`kLBw)YakJrY5EUBLEOiEl9w(oRMWvE@7 zDu$jMvmUnzw!B4+baHCH@>H1#y3RyY>O9`6?FOXG_OApH$+HpidUk3NVhf?qjn}QZhGv@J{JovdQy3@&h zF}n4)ChrncJ3+xZ8xOU~(bUOQZ33Ortx}#4%e{I2t*3Ez;h$}9I*+Xx4rw}PN5?hi zWgOB&SO1*eA$3r6#$LI01BK*|bJyx~Qp2L($qY9U1ryM++Elc9YYfI{LF6-4#iLd%&H={nJ2vkpz z8OuVRE7@0{ZzWdvj!(15PgV)uCas#=rEVl2bRLr3J_B~VhgO?2>T_=!Uqq%)zrV_f z_HZNY0$vp#gH#f|sDq>!25*Q>qq2Q=K~W+sVw1b^Kh=z?gS`9Yh+FBqvl4L+J!yAd z(B~)d6Z4|AztdWk@l!FO3l>2$snQ|Ep>0g$IgR6ZFZwl)nuy8T3LaJaX^J|&*ZBtK zFR2i#nx{E^^tC>TXITTtcr-DyjT=zPN` zAZ}D-XLZV(Ndj)Sg3HSP6#cv3B$_29`+2}E607@8h?#UEr|ktxJnvrR~L% zXP6`7HQ`FVgKX>pZIg0x+OfB)ygJ=6;>%ur z{Y&ImszNO5YhPm_pQp~nobiLAV=qO>E{6IL}HgcNEzH zk9wG@F6um2c@P9u!%_xh3w)agmYh2-=?eNLM{Kty^_T2}CPQT%d@{iC+%|70UhcOi z)D1WdwqEx$*V^ye|8eXqXBjfaynNg_e?CsuOO~P$<*sdZupW=*UbK&l`%oWN0r)bd(w_7Mv@005`{?f z=P;>A6JX5wWPFtTQX?r4n4r}0N2aa+WRa~&1=;a*i zEm9!tABVpoqw~Z@-Z<#h=k=cLt7pw8dD`OsZcukbThn;_UAU`LP2{LPB{@NzW@sUC zo`pLP#QCi!aRrHZ{O-h)>YIsi=+b#QBei1d=^y9gDIIMGL0ZYa@>!j(46k9rlrMJ_ z970*`l=*bJ4tOKug61e%=__~V5kHTfuijI}_nmwdc4I3}!iNa`YWyQMQu`SwFaT7M}?x6}@sMNY@ zE$g}bt=!0c>t+{C@+g-|D7l~PWUhDe>rV7~w4YJ0l%57!jGgj{4Wcx8$8DZUuv$O8 z#Y0&yGZL=a2uA7@6Q6Qo<)g52Sc&blu#D9XGIIx~p$V?Mai7N3kjFPe)46je^DIvC zb7DieAI}S-riD$&8a7XD;Vc&K{jj|E!BYwnGjW>^G-W5mxn%ZN11^(&U&n7u?`uzA z`Sz7-1)nvU)=rb^dHSc_-OuCBUD1`*>U|ykZq=XQE>At%0ZHk1xsM{1diTP^!o97O zAV%W-*BUIZ1@#jDx!l{Xk#2ZxzX@~DV%_^!#?DL8W8;*I(s(O-byK8;N9Hu>m zd!O#^Q&Dv%#d1&VT`?PbxP5pf-IwPx(_=5g(;fcgdB`mNyN?%Uki};zN8bkZiIi2h z&eI@U;OYDz*^ImjR-6ja+-F*@miH&B(^Fw8=;~B?eJQFC)Ee8T^40yT6I*|?pVldb zqbGD!dC)Ws`5-ku?t)YAZA_avF8k?{xFqF)gv|A`oiz(>=e1mqT$b3j8!*Pd*DC6l zL~En74B+j5;;p(gZKbTzvSOb(=3KX!KUS}}K8dk%xYe<(SX##p!_!u3j1?3kR@D7( zhgw3>FEvAx7ITWUeOushn}VNidKqdgb4>QF<&|lGwKy4Sq%4kWI+;-%GQVq_a!$9+ zTq{mKiAaW-u{E|>HTQ8pcq=wzOvvYzy)x@X95lZR7kS7o!>A{{ABQc_tF5S>C^I;` zB0fM*np&DWwFcMkg6|3bmItntrTrK~{35&nw4l$&`3CY3rtrqLxrexX%K~@YT%R&{ zbx-H~ALG-W*2sKnj8TtI=5RR+G^Yez2j2of7B;RwR!YxbSKjM<1^$oP4*j)iP30{| zbtPb9Ey3nSd}Zu6-t8Oc7GgDE4` zs?@KZ_mESv>OO8h(>{8<)XQh`FrPF$IyIph9{c51@wu#33~xOXhQ~oUcjbAd`4aV_ zsqUKx^(k695zRz_?;fG6#IEi}g<8*G*$efl_^IN;y*uPSz6pqK0`*X^!~1!DXKZWhPRFx4 zKm)!k%=kU(zavK#GbRQ#qX>@V0)Gm8mM5Glb^6z$7J8Alef1NB)WTTZH)#Q#s&&py zd_Cc@1p~o*XJIpjTfbZnsZ-*C_+_1G5{dv$V*}y{W>l z8AYEc9OLV`9OtfJxc@1!NipI3+u+bw!6DUao(ugrinxOaj5^|IZ7Qvw#ou&05%*fD zE}a!vJ(mhDIHMi!0I7hYm$M7@wr@?^qlpCL<|ktbCn%GrpDdG=-&A^EpLU|zHa$1@ z4-*YIJxxq@6tdv^c3JVu_{x1{?B4d>%_XX#d|nnPr6&22uf!Q?Ei$4rV!C-jc?5Rv zam^ zJPIyJ|2>=2;zm5{$sWV0Tm&0Y5Nv#4z#OV&srG%tvfMQV$6O1rnRvR*wAfz zQC6h>SJm8p4=q(s18<+M6ID6agoJr#?*<0^CD*V1q3%Gl2Z|TANtbcacTsmKE~s;9 zil2%3$e5`q>%6EcFr!+UC`mlS&F)JyY4I8VWNp@pTJMFR5Sh_8@tswOC<)isdBE$BUm-HHR(SXfviJ3V0;~Cr~ zj9Lx~zt$6+g=N#k0CLyQ-t{xPWF1L6tO;{M#7&%Os3(KqDqKe@h$7L;G1aQ^(`DZWwmP$jA4Cg?{h339@_j_R4_EmU-6yq%C)kRP&xUKBvcivu?kBMe zXOXQGRF8oVJWOLoQUJ9)hd8G9e6BD#pHc}nvW)Lf5~(OgvClRuBWeXYf9XgwjvS&gB!4lri!5ihuet-9w80$(|9Zv5&2C z-r`^B;n*WruK9qyW(y~A#B1cNByycmopDypf1ky$9-79vGI2Q3WV<>v6>U8e!z?qi z6Y}r)j0)MY$~*BM=*+Yh^LaW8l{+Fr;qQ8CQI(bIn-0+hyawF@$-3-=>f-ng>Xn>< zxHaiYwa3!Kkr$ISwx?V7uhky+_nGO$Fm)5v$f(}&n);YeX)u8}uJok;ZJ%QW-ijW! zQOTSi+b#Tr&o+bIX;=zHNmRzvX#hXGv9ly>On)C4UY2-R9T>c=t==K$T`M*1FkJ?8L2V09%7CyRITSuws5`0w#BH%D`brFv#K_d5i#}0oz9-( zMQ+JW)!C_X>Z%gasQY_hiazp;#qF3{5~!zB|CIedo#J7iC{wk6gh$2%=zg0^wGz4? zBiYN7*h9Y(Pjz|_PhYRu*}iz$^|#COFnzu-BQiRVFXSjWnO2PHwRgkwP}ey$u1r`} zett8pcz1Va_ph<{K9W>jf_ogsf6+NVJ-KG zN7N&tNZaAcvg#(p#K?JjOI6J_Mj21Vai4Svhh=L=R7@=w>->DYCc3#9x=1_^ZtXMr zlIQp;^)lOgb#z8ak;qnUT*DEG`!TEJ?j`|7UAJhgDq| zJ-g#Z*mim**i39~OAji0$|T%{W13ep-?}YBF=cvOxb3W|&8D#MHz&U=`A%BbUHaS%szo=}E3vQ>q6uCh7H&ROwxwe9w$Rl;bQUn36@$ zW8*fnLi0YKsuEjx)#7IC#@_8{_tx%>DR#m_EmwDXd~^y4ZmL>x2wsvU;N1+(cCC(| z98vD8HTBr!&HLohpHCUZ)*7s^QQpPP0KmUj~;EymcSc2CF)$;IhTCv<)n>{$W>ddJKFu9ahDhodiu%45pLpN=+;P@u+3x(^x@wN9P2LD z@l71Z-Zr74-*f|!7gbVSKPPTjhcec%YO|4=AE&4}BQj!fY($}a-4?!#Z=OL_9phQ?Ql}<6N_DOm{b@DYc7nbhS)A%a%&x;fsC%^gW$3Hs z?Vw{jIjfs|6q%luj?KRXEy%C1wW+D@d|_+mlSRTswJS+($}#l>)vuV2BO}ptn*CCp zyaQWB{X`%0jCqV3vlZwrxXmlV!tK9CjDTjmJlO&CN@r2)dD!EyWZa3!4TtD27_7%Q zwd0HB_-xVy=tgWt*3om#u?*G%k9{+Er3p{yrWtfJS2d4*zIqISP6`q{ju*@u>Ryg= z*(uRDQsY`&)t_ZJ==gk38DBFkcr9WOYb=)RGO!$3dlICDY1v<=VS1qPe&|Ln-PAYd zlOqCW{gx0<)}V2Qc<*UEz(kO45wcFTT3r3GcGbThSw#|+E&BPoV_5Vdu)bf%cTdZW z;R=@ReLb7J4Cy4~InO>kJ0$IE-;+~&deF5Y?s-3OQBMpz$(_%?pU&Dcx!2AZaMOP%-rQ>wuDMd};9_taUVK4-@Z6X(?Xw(bVSJ-@ch-OB0I7pmfDqEGt$e0LJN z@tonItI47$0yuvvjmzD4Y`kWxK8||RNXPn4I+kf1NhmUWJjE&4nVeF$RxIQ3D0Zw$ z*Bl#3>IjeH$;x1Bm{)cMuHNE_-VkYA4y&~@mdjYR)R7$ozpYdlLtTcqg$fBf?<~hE zF(aT(XUqFmRt38~Z|)l$v_EoS<#+0^q;Wyt!PTTyRVE$3JPk8xb3v1qbey)&5hgf!(62^ZVfDmKC+ye~Q(J?a#_; zw=TWft-)&SG;!O4nPVSz+T+G*REj^CdL`R9k#vI>Jf)#N%a0YQAa1wz6+dNP)moVg zOK0iL&HOI>v{PkQxt?WY`)bBcGSaVS+8w^0X{RcCy-f`2ahLMp6cqKSK7nVy<{|4r zP0_LEh$b_be`Jc5Isdh4kGNuv$Y;p|1>=<#zLxZ!+zB3 zZ0E66O|6i1ZVqon{gG1??r68saMkh(Stn4*2^E1M^Xi}K1mZ7Z-~Sw6KEvk|tK6)M zWhZwf{>d7kYL84*cu`%EPW6Czxo@97LxbnBDZ0@uC%L=6-*cJW)}1F^ zk0(yGGtH_6*4rDQ33{r2GWA?_2NRD^FQymyn7nUKXvis3Vt%{=ukEpf$$7}X;$Z4p#Px6^xghOAyP1HT-;>f) zIH^ozjZSBtuA67DsYn?oIDYLc~TXRRe$=?a12eAw4BIx|_QLf1E$aFNL#*7d9WKNh&0J||ir=bb30(nk7C`U^D!^Vy8YT1Tyb|su;5KK;bg8nPAW%yC!+ zFjEGOR~OgV8yz>#z9RAJcbvuVJOuW_SRMa^%Zd}m~sbpzLqP>8ghBne`K^t30YAM+K7vd}J z2v5`G_qj{XiO|omerb+moqkDwPe#{g7W6C5sbs3>_xXxdU!|9-c=?3s*MTwJo+V68 z8)9n7>TlxRzl_NKVd%zLNUFRc-h%iGDaLvbBzB)a(aLh7NO@~hT&64B!q&@*Ljhp$Z) zZK=}idLG`i-mXWMj;@ms%W~2L|u7h3s_^UvLr`Y zrM&KwkSS!CnQdk}>U@dr3DRHjJ3Ko&t-=!a?yn-}W31^7g3amle_!{jHPdR9s6tvk z=$#WY>;7qSP~NF`AIGcg{1ab*dp+G}I_Uk_M)k_Eg{{^s?NQUR9|wov&wQU)Ez9;X%QUnv7HZM^SNjZIkhI)w$rR{`N{qIGI+olekX&>zCyWDMVOTrwmm-%l&H z(ZQ0AY+X5ZMLe|kv?kOVp7nqKZq><9=7`k1^i<-oJU!i|OHi5Fno%6p%Zl}TbkivE zswir%P4)Z$)+Dy9VAwfwNIYwwgUWD#&I=c z=q*KZ#d!%aj*rqWq}L!C;U}_gdzQ=*avrGKF-=FR9t4*48QZQ^+QS=5QN%S! zX&5{OH`#)-z*V@^Dvc_k)T+4chJ4O3Eu6r|>(+qE1;LWVVa*<@PDk?h3RBq)wlynK z$O^WX_hS37iMJ=a`_g1fu!Z$*R83!f88|^5Y{6b#D~k z&n(CISvfVLZlP!1NPUc4m|9xjXA`ZkJI_9^ihRLA_zK<6;|tjzdkn=i=z?ZHv*My> zG7%Hu;gF6e@jn(iC-PL|w&fRR>Qfb+&DLqgCHnYe2^4~Nb*fGDS=+%+MZ4Tfr3w4M zCT`gW+Mt=Nk75_dTUI=NT0RrM`3zUZ7Q0<7*v-I!SX`9FKO+BYH?IoMaUG+LJ8QmI ztMJGIUY-2pJY`!yoNet%cxs}Xko*Xat^N7N|;-VNLEfG@eyC#rp z{F=^+VP#a+Rc?jto?91UIp}E&Oi^3eWuN!wh+>$o(|K@PM0?id2^Hs_nE}JY_rkXA z%hEF=l%~rza1RSnAsr`m?}-O(k*Pbe|2a1}NkNoF^h~xWS!Y6wh-+?D?d_=qT;>)| z>NVVE22?|X>b1|%Q(OF}7Na>9e2Hx0jmf%lN>ma-4bJ|*Mw856?b|1{9Gzf<4%B5h zX=1OKk|1oTmVP+BhYAU2?umozq%*pFBYw+Mv*;d5f3V?5Mb&QEA#_|3Ja+o9-F`QH zRvsT-_w|;;_uuaqDKoWuS||Q^rF>EdJfc(K+@L>;AYY~!lca17)`f5 zCvLr@-gbOXu?GkAf7q%HNCiavVCmFBOs_DRSGUF}>8+0H4vho$4=%wP`1c=olC zYK7;O6M1b{oadHt9AEC6O8Z+)prsVFJ0YI-L>QUEe3~sgU)u3$a1YNdnNohPc#cRr zIe|sXX}hI;wVV|v#(1FLMAXzp1e=I84buXW2a&K+!1zV0K#&<%yYs^~ZMR+GCPA{TKY_DqN#ML7W9q;cjjFt1K2CA$P zDZ|Q>$0;wNV_r{*nb+7`C`mkU>q460^zySA+Dag>GeX0!@*DC=>N1&6*4RO?op01g z4X@J2pEXxZomN#w)q#w^D^KRH1(%4G7_~p22;M|okK#*}ri$}?HGZQNsV_ec8PmFC zk=*b~Tr3}6Cm4t$6ss$DnEQY^q~sM5`{|^ISj(GDR-61&LmWp3}Ct_A;)#q@ExV*g!v9$n(y*Hu(mV|BkcwuWTKx-8Y`?)XOk* z(frbuHNC1LM&-58it33Zifjr^M-tj-gPa!c%S|ZQ5oBD?IVIvkpXMiD#f|Z-8?jEk z*Guz!RC>u8^h5_b32i-C(Gc(8Z_YrMF-_~C%s2J1wNP_iXz|OF>#p=+X*qR?kIAVI zo%I(jRY`STu)k(oDeN2_-DRFmGhlNYWqGfZOv};6a#)x79XRT;R9Q_v8;f-uELGK# zEKzR^2kB95V!p%bH|D#|x?hEU8eBm-h=TB9yk_@I5lQdoba2GNM5&56FA;Zh$YeOC5msLkcGXZm`-&Q6^*)@-d8 zt7@Y-Tz!g954900yM?>-4_}+)iVFRmuoarnrKi|O%SeFef?uIR^U{Uw;x5Ic5r3&P zB6`vUEENVSk8~XF#ut8r9V#P$V$7K8iIa5is7qpnv;vc*&gz^?a4xofYNWe03+>M{ zk%44opHI_CW-p`Dxz21`UbmEms=7ydsUKBsQjIwO63~g@xI3fo5V6lZ;e9)(B+o!^ z#{HRPtMqrJ0`sTPH9Z4itkHAq%=Po&*tY=ZRmC{zKc5AvP(0nvES^p)jA*#pfUx?VzlO#PY6jGP=91Akjx$HBdAq{dFH{N2-c z5_4nSiLI|Cvu6|=Y zj&`XfwJNN*M4qv=soCiPx8KFruP?rTI^n9C{I^qfF0aK-i3x={{(LkgqPmv5$WWcy zjdvpe#a((jL{Pi%3tM7s&+9%^H`-w2w zFl0bg;p3ndK0~mWI)#pk5t#hoFLWGzrb09x`(}2>=WoOgh#i1I{=#lmHIu9(M@Slf zg@a(Ou3t#Y?jM57(w!%u&;{kZOY&4}n(%2^W1T}IZKks$kLwe) zfrbu`G*;RSXYtfvdvnr1W$jR@cGmLtB`B$g)SPjIn^`IEai&zWL-?E3;8(l(launcLA^k5{s)T9Z=K9g!D zb&f4Ntt-KAtopZ8oita}Nmsn!H}R#ZGk#*qPd(x}B;f|_(6%2Z8-Vr^T`G^UMD@H& zxc!uqGB{5`rN^&y7Ti9U!Hdw@RNX%z_;&U2T6NugEeOUMKj!Jm@w#o#dQK^?taazs z(Ke&zI&E#B<`;g7nQZ-t4(P3NC)o^a0Trm)&DG?YPEpXI&|QvX7V7R&4|Ju`v=jb# z8fxzMB3_WkcRv@c$0}eKm^%@4D%?r8uR{ZJ?m$ma(>*53vj>7pjHQ|yvsYR>J#|7D z?`*Um^TnFm?<{wNz%@3XSbGF z-kp4|6x9TT_Jz-}e)M$Jj>c1U@{EQrPwJkP_bopvta-=LjVs}Rp+H1sdK=%_`QyZ$pVKKbn2j z9*RDSa>PXk-}0;^%K0`5seXbh0KT)6jb^ zCCMHXsb2-UO4wGeG#vFJD^N`-)@d0C*hN> zk}p}sZ97MIUz%dEewKGEQQW=o#|w?)nI@W((HtuJ-JU2CCxM}v7-D}anmU$H?2%_EG_yo;)glrb=Zf2QRrmJR#P`oj55y;X z=6qS!cbN;b4=TSot_ z&iM?1tnFD~_&D^9%1Mn3Ta0{uuJzetjOJM&Hmug;6_v_IR+wuOBTG@Fs8C_bd-)uR zcIgQ{D8Xrp^(RH)8hI7YgDBqk3{m|uV5nIJXwUF6+2KbcH~B# zZ(cjkRa7k`pUa9O^MCwa+AU9!w3Tfof6BYNd5x(WEp5E`Aq#k;hdP{)hM-XFfTN z*>@Ro*EvO8IlYecyA#gYnN#uUU_gQw@ z*FUM#jOMqiRo4#L)pzmrec(>z0{Jy>{=?HVq3Wd&o1$BO-hd(q_}2PK^)Kp~P^4C$ zu02$!l^qW<5Pl|>r1MAb5RK9&rRA-p6Nf1R<(=3ALji+Y`Me(QWG(d~+NwWsjb~Tq zr|#NW8+kr!Cfe^)bHsn5AbOd&C^}rWm|z73>n@Qx^*o7Ai0j-Paqf`k)YvB+BV%j3 zC>1-?LZ_9Wn`v*0ST7LSw?p=0gqZ5iyy)*cK;6|gtM%01et z`bCwFIQ>yXNFT;`rjNdgdC+`%vFqEG63YqQxbyge7WQ?gQ&&e)-FJ_mW9CcnWLaJ5eU49SG)BSMLJZ0F-U+XCuoJ669M*Z$leAl!MyC#~KzHoj;PgqeF zPrVpRO9h$8Va}~N-=GFr7ka~8I9KCm$F{0=r+i4BT{EtGr5c9J^e2=P1Ic%lPtP<8 z8ZwcPl)Lf_Cq+Ek_g8!Nq}|zGVX3m3C640(u~M$R$%pY17QXG!*M?v{%G@xY2Aof#1kDauilRBtVWQao=^)|&`NG~A+Nf`1wrJQkCPOOq4C@Wk8X z6uDDbW#rvwc@Blt#vm0+?Y3rD{gAy#2DPKaUbfLUPf)qZ{fs%+^JpyFJsd~k*k#3S z>wzD3ZJx*WS&b<*=kwxmBz@Gvdl@ulu<<08O9!(Oc{i*W39iDcEHX?iV zsVK?ADjTX)5V`Q`GSZ%~&??V1Bs9}@?G*0T-H)w6YUc9pu?fqkfE8mTx1l}L_J>j* z*%l5&$<~!QFKR~9Q;G9aVVUNDFz6DA?LIOVP51()s#k$~APa9&spHDJPUtLe{L$dF+82DW_sw zD^>P`zj`w9M6@6I+E*tFf$!uAb6E9!GAOZO{rk147f;@>PKm@;G`SnQ(Wm}#^5E^7 zCldx_I3I6XS8KXMK@B6H`PQ!dMy!c0e7R{|%T}**uDkRWuZ8v66o2MZxb{)V`eyyM zcC@QLC?^s2t(aO&{y`-q{q~6ScY-#|IB4D=b3Sf8YJX2`#c!E1)u~#lI-CxiOQ`mB z8nBfGJ&Et$o9=L0UYqGTp4aexK*1~b8lbh)@+dNq{%?gr)Uv54Mb`j+z=A!zOKozero4UOGN>HdO z>Vyc95g{5MCLp)W!U>Q6HGJa96cceW2q{z+OOA$( z$WsW+aA@M@G=4v>=+9~NO=t!_YHmkOkI{GGMy*2qL!z#H9z9)D*+~A{>N$2BS|r?U z)L4_To)UfKl`3b`Sw@v5Ny?k?TrlP>w_>H384pNQiLRYbuebr0t~iw$B@dPt;4QU6&;;NZM2p_Zi)glS3@0-&*|=(_b30rz2|zmQ+@s*-hLrWOq~1geRe^wYRD|gfufPan+B@>`;{)cEQv& zQEXBN&Cz~-7a5$R4qlJ$W{{+6*UyTTCXUJf={ccOc|(z=CQr)>PsBkPW_byGZ2Gm?*!i4)Y$RY9i%OV&#VmK)~l=Z+$O^hr^o8Rmhg zXy`Ml*;wn;$vp~NpbqxYv_6wcMPsaN_gp*gN&KqsV;7lIeEK-sqWB Pl|mH?9dl*XrpEsdKCz>J literal 136074 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 z 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�H_MdS0< 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 diff --git a/iOSClient/Supporting Files/uk.lproj/Localizable.strings b/iOSClient/Supporting Files/uk.lproj/Localizable.strings index 7c4215d81373265ce5dd69a20bc23a8a0d8529cd..84ebd016b0e93e32ada078d1da1117eaef4de99d 100644 GIT binary patch delta 244 zcmZ3nlcQq~M?(wa7A7^B$vIDWroWM7;$Y2VNM$IWt}n%;ICFHwE8O0`hRq;$$lVQ@D9B0Zl`A$6F^gJ0RD_$j_VVMjmKnT<`{jMaFxNAAk z+#;X>5GN=B4YCDdB?dpBcrM5>4CO$%93WHxs!IjBpcKdkxd@~~0jNrWA!B->6q6{2 L9#ES#0~Z4T^guRz delta 36 scmeC!!?9u~M?(wa7A7^B>0Gi*T9f-+xh7ArW}E(R8>7&4A6X_d0PH6W2LJ#7 diff --git a/iOSClient/Supporting Files/ur_PK.lproj/Localizable.strings b/iOSClient/Supporting Files/ur_PK.lproj/Localizable.strings index 56765571c6b65cfe8ec3e2b618676f40ebc998ce..784d10eb9107496d91120f8bb0531b068597a5f1 100644 GIT binary patch delta 253 zcmeBM#_?_iM?(wa7N#Dd>E{HQL|F3}QW?spPZeNNob1)YWuD29$B@pTz)-@F0hCYx z;tC);6)0NFkjan_q!k!)fvj|(dkxj_EuFj9kn>W2X1+ zW|W>>R4q2WL5Rt0@;)QB$$l|>)2|3ISurayWK3@qU=q*C18UC&8XwP44rCPpjfXfu z323w}5GyhGK~*RKRb(>c0HFd@_}T9XAhxF$bPXPazb%Qt&)8`2?iSXtzq%xEEL$K}V(^2iPynjPWXJ(R1+dx0KnLZ39fz&(;bAFv?do!;+lLxoo%|G6eHjCI$FlmJCi z85DrH0?1AUiWURq@`1DhLoSe&4wNqevXg=ON`Z2z(vVsZQmj5GsHTDh67a1GXMvRR&N+3J`*vssOYSq&}5Fk3osSnt_V} E04ZTPSpWb4 delta 35 tcmV+;0Nnqevk1Vj2!MnEv;w{tm!cQ~DwA*s3X>oj29xm44wv8<0y_0)4D$d0 diff --git a/iOSClient/Supporting Files/zh-Hans.lproj/Localizable.strings b/iOSClient/Supporting Files/zh-Hans.lproj/Localizable.strings index 8a089f39ddaabe969a3f71f8812b817eb451439e..5949795c137b7b7ef1e9c0f5c10222ca2ddca1f4 100644 GIT binary patch delta 299 zcmYLEy9&ZU5S&vK5&MAE87w80*oYw5>o-J=M#w{wNbD3sDzUOSKg7zv@Duz9!P2=? zkYjIWXK!ccuBZC@TtD8#xV*IQE#(xVQH$UqSFb{J4iorr5n+vuxg|0(9wcK=?2%2` ziDl z`YJ0$w`#*z&q7$LSBU03=V(HSuT7gWBZiGB`OqxP&FX+`!aAk7z!?26)+U!c`cr?a J4poL|;se6dJ@Wtn delta 29 lcmey-%QmB%tziqJL+f;vHb$+E3gv>m?{--x*J;#Doz$}wf+);3tdkhy#GmG@ulZxJ^($MvtSo)DlvuN|5 zDOo3D^nEYoVa)Xi_@% delta 33 rcmV++0N($Ey#}PZ27t5yqMVn8odGJ7u+9pTpc4j@T-*+q#GL^;{-+Li diff --git a/iOSClient/Supporting Files/zh_HK.lproj/Localizable.strings b/iOSClient/Supporting Files/zh_HK.lproj/Localizable.strings index 92880bea91861c529b3da47cb5f2522e1c38e886..7998572123bf55d0b1c558465fd16a267f20369b 100644 GIT binary patch delta 316 zcmYL^v2Fq}5Jbm9xq=#r4w>uHP^Ckpp-%qc5)7Qg-63-5(j^UCNfZi8)O-S;6Xi=% zpym;cT>u#@!8%C-=lgWcv{tToGkeYc649h zDymfhTEN%fXZE&mVK(gKV5>QG_1~+wS6W96OFt-N&)8`2?iSXtzq%xEEL$K}V(^2iPynjPWXJ(R1+dx0KnLZ39fz&(;bAFv?do!;+lLxoo%|G6eHjCI$ String { + setup(account: account) + return FileAutoRenamer.shared.rename(filename: filename, isFolderPath: isFolderPath) + } +} diff --git a/iOSClient/Utility/FileNameValidator+Extensions.swift b/iOSClient/Utility/FileNameValidator+Extensions.swift index 0de7a271e7..166bf157b9 100644 --- a/iOSClient/Utility/FileNameValidator+Extensions.swift +++ b/iOSClient/Utility/FileNameValidator+Extensions.swift @@ -6,9 +6,7 @@ // Copyright © 2024 Marino Faggiana. All rights reserved. // -import Foundation import NextcloudKit -import UIKit extension FileNameValidator { private func setup(account: String?) {