From 3a5cf56099889f75b96822635317dd27ba801075 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=90=AF=E6=98=9F?= Date: Fri, 24 Oct 2025 10:52:40 +0800 Subject: [PATCH] =?UTF-8?q?=E6=9B=B4=E6=8D=A2=E8=85=BE=E8=AE=AFcos?= =?UTF-8?q?=E4=B8=8A=E4=BC=A0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Podfile | 3 + Podfile.lock | 10 +- Pods/Manifest.lock | 10 +- Pods/Pods.xcodeproj/project.pbxproj | 24788 ++++++++-------- .../Base/NSString+RegularExpressionCategory.h | 12 + .../Base/NSString+RegularExpressionCategory.m | 15 + .../Base/QCloudAbstractRequest+Quality.h | 16 + .../Base/QCloudAbstractRequest+Quality.m | 46 + .../Base/QCloudBizHTTPRequest+COSXML.h | 16 + .../Base/QCloudBizHTTPRequest+COSXML.m | 132 + .../Classes/Base/QCloudCOSXMLEndPoint.h | 43 + .../Classes/Base/QCloudCOSXMLEndPoint.m | 137 + .../Base/QCloudCOSXMLService+Configuration.h | 37 + .../Base/QCloudCOSXMLService+Configuration.m | 53 + .../Base/QCloudCOSXMLService+Private.h | 12 + .../Base/QCloudCOSXMLService+Quality.h | 15 + .../Base/QCloudCOSXMLService+Quality.m | 66 + .../Classes/Base/QCloudCOSXMLService.h | 125 + .../Classes/Base/QCloudCOSXMLService.m | 139 + .../Base/QCloudCOSXMLServiceUtilities.h | 12 + .../Base/QCloudCOSXMLServiceUtilities.m | 15 + .../Classes/Base/QCloudLogManager.h | 39 + .../Classes/Base/QCloudLogManager.m | 208 + .../Classes/Base/QCloudRequestData+COSXML.h | 16 + .../Classes/Base/QCloudRequestData+COSXML.m | 46 + .../Base/QCloudRequestData+COSXMLVersion.h | 12 + .../Base/QCloudRequestData+COSXMLVersion.m | 51 + .../Classes/QCloudCOSXMLVersion.h | 15 + .../Classes/QCloudCOSXMLVersion.m | 29 + .../Transfer/QCloudCOSTransferMangerService.h | 65 + .../Transfer/QCloudCOSTransferMangerService.m | 158 + .../Transfer/QCloudCOSXMLService+Transfer.h | 400 + .../Transfer/QCloudCOSXMLService+Transfer.m | 59 + .../Classes/Transfer/QCloudCOSXMLTransfer.h | 29 + .../Transfer/enum/QCloudCOSStorageClassEnum.h | 56 + .../Transfer/enum/QCloudCOSStorageClassEnum.m | 71 + .../model/QCloudCompleteMultipartUploadInfo.h | 46 + .../model/QCloudCompleteMultipartUploadInfo.m | 82 + .../Transfer/model/QCloudCopyObjectResult.h | 54 + .../Transfer/model/QCloudCopyObjectResult.m | 60 + .../QCloudInitiateMultipartUploadResult.h | 53 + .../QCloudInitiateMultipartUploadResult.m | 60 + .../Transfer/model/QCloudListPartsResult.h | 93 + .../Transfer/model/QCloudListPartsResult.m | 108 + .../Transfer/model/QCloudMultipartInfo.h | 49 + .../Transfer/model/QCloudMultipartInfo.m | 59 + .../model/QCloudMultipartUploadInitiator.h | 51 + .../model/QCloudMultipartUploadInitiator.m | 59 + .../model/QCloudMultipartUploadOwner.h | 51 + .../model/QCloudMultipartUploadOwner.m | 59 + .../model/QCloudMultipartUploadPart.h | 57 + .../model/QCloudMultipartUploadPart.m | 61 + .../Transfer/model/QCloudUploadObjectResult.h | 89 + .../Transfer/model/QCloudUploadObjectResult.m | 79 + .../Transfer/model/QCloudUploadPartResult.h | 45 + .../Transfer/model/QCloudUploadPartResult.m | 58 + .../QCloudAbortMultipfartUploadRequest.h | 75 + .../QCloudAbortMultipfartUploadRequest.m | 134 + .../request/QCloudAppendObjectRequest.h | 95 + .../request/QCloudAppendObjectRequest.m | 142 + .../request/QCloudCOSXMLCopyObjectRequest.h | 156 + .../request/QCloudCOSXMLCopyObjectRequest.m | 358 + .../QCloudCOSXMLDownloadObjectRequest.h | 144 + .../QCloudCOSXMLDownloadObjectRequest.m | 470 + .../request/QCloudCOSXMLUploadObjectRequest.h | 172 + .../request/QCloudCOSXMLUploadObjectRequest.m | 898 + .../QCloudCOSXMLUploadObjectRequest_Private.h | 14 + .../QCloudCompleteMultipartUploadRequest.h | 117 + .../QCloudCompleteMultipartUploadRequest.m | 158 + .../request/QCloudGetObjectRequest+Custom.h | 43 + .../request/QCloudGetObjectRequest+Custom.m | 98 + .../Transfer/request/QCloudGetObjectRequest.h | 149 + .../Transfer/request/QCloudGetObjectRequest.m | 208 + .../request/QCloudHeadObjectRequest.h | 85 + .../request/QCloudHeadObjectRequest.m | 126 + .../QCloudInitiateMultipartUploadRequest.h | 148 + .../QCloudInitiateMultipartUploadRequest.m | 172 + .../request/QCloudListMultipartRequest.h | 97 + .../request/QCloudListMultipartRequest.m | 152 + .../request/QCloudPutObjectCopyRequest.h | 165 + .../request/QCloudPutObjectCopyRequest.m | 185 + .../request/QCloudPutObjectRequest+Custom.h | 12 + .../request/QCloudPutObjectRequest+Custom.m | 32 + .../QCloudPutObjectRequest+CustomBuild.h | 13 + .../QCloudPutObjectRequest+CustomBuild.m | 16 + .../Transfer/request/QCloudPutObjectRequest.h | 134 + .../Transfer/request/QCloudPutObjectRequest.m | 177 + .../request/QCloudUploadPartCopyRequest.h | 148 + .../request/QCloudUploadPartCopyRequest.m | 188 + .../request/QCloudUploadPartRequest+Custom.h | 36 + .../request/QCloudUploadPartRequest+Custom.m | 41 + .../request/QCloudUploadPartRequest.h | 105 + .../request/QCloudUploadPartRequest.m | 160 + Pods/QCloudCOSXML/README.md | 126 + .../QCloudThreadSafeMutableDictionary.h | 18 + .../QCloudThreadSafeMutableDictionary.m | 78 + .../Base/CustomLoader/QCloudCustomLoader.h | 23 + .../CustomLoader/QCloudCustomLoaderTask.h | 35 + .../CustomLoader/QCloudCustomLoaderTask.m | 37 + .../Base/CustomLoader/QCloudCustomSession.h | 91 + .../Base/CustomLoader/QCloudCustomSession.m | 67 + .../Base/CustomLoader/QCloudLoaderManager.h | 27 + .../Base/CustomLoader/QCloudLoaderManager.m | 52 + .../Base/DateTools/NSDate+QCloudComapre.h | 29 + .../Base/DateTools/NSDate+QCloudComapre.m | 55 + .../Classes/Base/FCUUID/QCloudFCUUID.h | 57 + .../Classes/Base/FCUUID/QCloudFCUUID.m | 427 + .../Base/FCUUID/UIDevice+QCloudFCUUID.h | 17 + .../Base/FCUUID/UIDevice+QCloudFCUUID.m | 17 + .../Classes/Base/Logger/Encryt/QCloudEncryt.h | 19 + .../Base/Logger/Encryt/QCloudEncryt.mm | 216 + .../Base/Logger/QCloudCLSLoggerOutput.h | 22 + .../Base/Logger/QCloudCLSLoggerOutput.m | 141 + .../Base/Logger/QCloudCustomLoggerOutput.h | 16 + .../Base/Logger/QCloudCustomLoggerOutput.m | 45 + .../Classes/Base/Logger/QCloudFileLogger.h | 24 + .../Classes/Base/Logger/QCloudFileLogger.m | 188 + .../Classes/Base/Logger/QCloudFileZipper.h | 14 + .../Classes/Base/Logger/QCloudFileZipper.m | 28 + .../Classes/Base/Logger/QCloudLogModel.h | 103 + .../Classes/Base/Logger/QCloudLogModel.m | 168 + .../Classes/Base/Logger/QCloudLogger.h | 154 + .../Classes/Base/Logger/QCloudLogger.m | 274 + .../Classes/Base/Logger/QCloudLoggerOutput.h | 13 + .../Classes/Base/Logger/QCloudLoggerOutput.m | 15 + .../ObjectFack/QCloudMultiDelegateProxy.h | 28 + .../ObjectFack/QCloudMultiDelegateProxy.m | 106 + .../Classes/Base/ObjectFack/QCloudWeakProxy.h | 35 + .../Classes/Base/ObjectFack/QCloudWeakProxy.m | 88 + .../Base/PathUtilities/QCloudBundlePath.h | 16 + .../Base/PathUtilities/QCloudBundlePath.m | 12 + .../Base/PathUtilities/QCloudMediaPath.h | 16 + .../Base/PathUtilities/QCloudMediaPath.m | 12 + .../Base/PathUtilities/QCloudSandboxPath.h | 16 + .../Base/PathUtilities/QCloudSandboxPath.m | 15 + .../QCloudUniversalAdjustablePath.h | 16 + .../QCloudUniversalAdjustablePath.m | 12 + .../PathUtilities/QCloudUniversalFixedPath.h | 16 + .../PathUtilities/QCloudUniversalFixedPath.m | 18 + .../Base/PathUtilities/QCloudUniversalPath.h | 21 + .../Base/PathUtilities/QCloudUniversalPath.m | 22 + .../QCloudUniversalPathConstants.h | 18 + .../QCloudUniversalPathFactory.h | 18 + .../QCloudUniversalPathFactory.m | 69 + .../Base/QCLOUDFileUtils/QCloudFileUtils.h | 48 + .../Base/QCLOUDFileUtils/QCloudFileUtils.m | 1020 + .../Base/QCLOUDFileUtils/QCloudModel.h | 13 + .../Base/QCLOUDFileUtils/QCloudModel.m | 13 + .../Base/QCLOUDFileUtils/QCloudSHAPart.h | 26 + .../Base/QCLOUDFileUtils/QCloudSHAPart.m | 13 + .../QCLOUDObjectModel/NSObject+QCloudModel.h | 320 + .../QCLOUDObjectModel/NSObject+QCloudModel.m | 2002 ++ .../NSObject+QCloudModelTool.h | 16 + .../NSObject+QCloudModelTool.m | 21 + .../Base/QCLOUDObjectModel/QCloudClassInfo.h | 196 + .../Base/QCLOUDObjectModel/QCloudClassInfo.m | 407 + .../QCLOUDObjectModel/QCloudObjectModel.h | 22 + .../QCloudProgrameDefines.h | 98 + .../QCloudProgrameDefines.m | 21 + .../QCLOUDRestNet/API/QCloudNetworkingAPI.h | 32 + .../NSHTTPCookie+QCloudNetworking.h | 14 + .../NSHTTPCookie+QCloudNetworking.m | 43 + .../CoreRequest/QCloudAbstractRequest.h | 134 + .../CoreRequest/QCloudAbstractRequest.m | 240 + .../CoreRequest/QCloudHTTPRequest.h | 148 + .../CoreRequest/QCloudHTTPRequest.m | 271 + .../CoreRequest/QCloudHTTPRequestDelegate.h | 32 + .../CoreRequest/QCloudHTTPRequest_RequestID.h | 12 + .../CoreRequest/QCloudRequestData.h | 190 + .../CoreRequest/QCloudRequestData.m | 390 + .../Serializer/QCloudRequestSerializer.h | 129 + .../Serializer/QCloudRequestSerializer.m | 535 + .../Serializer/QCloudResponseSerializer.h | 22 + .../Serializer/QCloudResponseSerializer.m | 193 + .../CoreRequest/Serializer/QCloudURLHelper.h | 11 + .../CoreRequest/Serializer/QCloudURLHelper.m | 42 + .../Reader/QCloudXMLDictionary.h | 107 + .../Reader/QCloudXMLDictionary.m | 450 + .../XMLDictionary/Writer/QCloudXMLWriter.h | 148 + .../XMLDictionary/Writer/QCloudXMLWriter.m | 760 + .../QCLOUDRestNet/DNSCache/QCloudDomain.h | 16 + .../QCLOUDRestNet/DNSCache/QCloudDomain.m | 20 + .../Base/QCLOUDRestNet/DNSCache/QCloudHosts.h | 16 + .../Base/QCLOUDRestNet/DNSCache/QCloudHosts.m | 85 + .../QCLOUDRestNet/DNSCache/QCloudHttpDNS.h | 78 + .../QCLOUDRestNet/DNSCache/QCloudHttpDNS.m | 271 + .../QCLOUDRestNet/DNSCache/QCloudPingTester.h | 40 + .../QCLOUDRestNet/DNSCache/QCloudPingTester.m | 108 + .../QCLOUDRestNet/DNSCache/QCloudSimplePing.h | 275 + .../QCLOUDRestNet/DNSCache/QCloudSimplePing.m | 788 + .../DataForm/QCloudFileOffsetBody.h | 17 + .../DataForm/QCloudFileOffsetBody.m | 23 + .../DataForm/QCloudFileOffsetStream.h | 19 + .../DataForm/QCloudFileOffsetStream.m | 127 + .../DataForm/QCloudHTTPBodyPart.h | 32 + .../DataForm/QCloudHTTPBodyPart.m | 322 + .../DataForm/QCloudHTTPMultiDataStream.h | 21 + .../DataForm/QCloudHTTPMultiDataStream.m | 201 + .../Error/NSError+QCloudNetworking.h | 62 + .../Error/NSError+QCloudNetworking.m | 136 + .../Operations/QCloudFakeRequestOperation.h | 13 + .../Operations/QCloudFakeRequestOperation.m | 29 + .../Operations/QCloudHTTPRequestOperation.h | 13 + .../Operations/QCloudHTTPRequestOperation.m | 68 + .../QCloudHTTPSessionManager_Private.h | 14 + .../Operations/QCloudOperationQueue.h | 21 + .../Operations/QCloudOperationQueue.m | 270 + .../Operations/QCloudRequestOperation.h | 25 + .../Operations/QCloudRequestOperation.m | 59 + .../QCLOUDRestNet/Profile/QCloudHttpMetrics.h | 39 + .../QCLOUDRestNet/Profile/QCloudHttpMetrics.m | 156 + .../QCLOUDRestNet/Profile/QCloudNetProfile.h | 25 + .../QCLOUDRestNet/Profile/QCloudNetProfile.m | 183 + .../Base/QCLOUDRestNet/QCLOUDRestNet.h | 28 + .../Base/QCLOUDRestNet/QCloudEnv/QCloudEnv.h | 38 + .../Base/QCLOUDRestNet/QCloudEnv/QCloudEnv.m | 36 + .../QCloudSecret/NSString+QCloudSHA.h | 15 + .../QCloudSecret/NSString+QCloudSHA.mm | 74 + .../Retry/QCloudHTTPRetryHanlder.h | 60 + .../Retry/QCloudHTTPRetryHanlder.m | 111 + .../Retry/QCloudHTTPTaskDelayManager.h | 24 + .../Retry/QCloudHTTPTaskDelayManager.m | 45 + .../QCloudUploadPartRequestRetryHandler.h | 11 + .../QCloudUploadPartRequestRetryHandler.m | 19 + .../NSObject+HTTPHeadersContainer.h | 14 + .../NSObject+HTTPHeadersContainer.m | 30 + .../QCloudHTTPRequest_SessionPrivate.h | 12 + .../SessionSupport/QCloudHTTPSessionManager.h | 28 + .../SessionSupport/QCloudHTTPSessionManager.m | 734 + .../SessionSupport/QCloudURLSessionTaskData.h | 29 + .../SessionSupport/QCloudURLSessionTaskData.m | 99 + .../QCloudIntelligenceTimeOutAdapter.h | 13 + .../QCloudIntelligenceTimeOutAdapter.m | 20 + .../QCLOUDRestNet/URLTools/QCloudURLTools.h | 13 + .../QCLOUDRestNet/URLTools/QCloudURLTools.m | 27 + .../QCLOUDRestNet/reachability/QCloudNetEnv.h | 37 + .../QCLOUDRestNet/reachability/QCloudNetEnv.m | 110 + .../reachability/QCloudReachability.h | 101 + .../reachability/QCloudReachability.m | 407 + .../QCloudServiceConfiguration+Quality.h | 17 + .../QCloudServiceConfiguration+Quality.m | 20 + .../Classes/Base/QCloudBundle/QCloudBundle.h | 12 + .../Base/QCloudBundle/QCloudMainBundle.h | 13 + .../Base/QCloudBundle/QCloudMainBundle.m | 19 + .../Base/QCloudBundle/UIImage+QCloudBundle.h | 17 + .../Base/QCloudBundle/UIImage+QCloudBundle.m | 24 + .../Base/QCloudCategory/NSDate+QCLOUD.h | 22 + .../Base/QCloudCategory/NSDate+QCLOUD.m | 51 + .../NSDate+QCloudInternetDateTime.h | 26 + .../NSDate+QCloudInternetDateTime.m | 142 + .../QCloudCategory/NSMutableData+QCloud_CRC.h | 17 + .../QCloudCategory/NSMutableData+QCloud_CRC.m | 18 + .../Classes/Base/QCloudCategory/QCloudCRC64.c | 289 + .../Classes/Base/QCloudCategory/QCloudCRC64.h | 11 + .../Authentation/NSURLRequest+COS.h | 16 + .../Authentation/NSURLRequest+COS.m | 18 + .../Authentation/QCloudAuthentationCreator.h | 51 + .../Authentation/QCloudAuthentationCreator.m | 23 + .../QCloudAuthentationV4Creator.h | 16 + .../QCloudAuthentationV4Creator.mm | 109 + .../QCloudAuthentationV5Creator.h | 36 + .../QCloudAuthentationV5Creator.m | 234 + .../Authentation/QCloudCredentailFenceQueue.h | 79 + .../Authentation/QCloudCredentailFenceQueue.m | 126 + .../Authentation/QCloudCredential.h | 53 + .../Authentation/QCloudCredential.m | 29 + .../Authentation/QCloudSignature.h | 59 + .../Authentation/QCloudSignature.m | 37 + .../Authentation/QCloudSignatureFields.h | 39 + .../Authentation/QCloudSignatureFields.m | 39 + .../Authentation/QCloudSignatureProvider.h | 38 + .../Authentation/QCloudUICKeyChainStore.h | 371 + .../Authentation/QCloudUICKeyChainStore.m | 1364 + .../QCloudClientBase/QCloudClientContext.h | 44 + .../QCloudClientBase/QCloudClientContext.m | 192 + .../QCloudAbstractRequest_FakeRequest.h | 17 + .../Request/QCloudBizHTTPRequest.h | 74 + .../Request/QCloudBizHTTPRequest.m | 298 + .../Request/QCloudNetResponse.h | 35 + .../Request/QCloudNetResponse.m | 13 + .../Service/QCloudConfiguration.h | 67 + .../Service/QCloudConfiguration.m | 34 + .../Service/QCloudConfiguration_Private.h | 17 + .../QCloudClientBase/Service/QCloudEndPoint.h | 60 + .../QCloudClientBase/Service/QCloudEndPoint.m | 71 + .../QCloudClientBase/Service/QCloudError.h | 10 + .../QCloudClientBase/Service/QCloudError.m | 10 + .../QCloudClientBase/Service/QCloudService.h | 76 + .../QCloudClientBase/Service/QCloudService.m | 197 + .../Service/QCloudServiceConfiguration.h | 47 + .../Service/QCloudServiceConfiguration.m | 42 + .../QCloudServiceConfiguration_Private.h | 8 + .../QCloudCore/Classes/Base/QCloudCore.h | 47 + .../Classes/Base/QCloudCoreVersion.h | 16 + .../Classes/Base/QCloudCoreVersion.m | 29 + .../QCloudCore/Classes/Base/QCloudGCDTimer.h | 56 + .../QCloudCore/Classes/Base/QCloudGCDTimer.m | 127 + .../QualityAssurance/QualityDataUploader.h | 46 + .../QualityAssurance/QualityDataUploader.m | 494 + .../Base/Supervisory/QCloudSDKModuleManager.h | 22 + .../Base/Supervisory/QCloudSDKModuleManager.m | 67 + .../Base/Supervisory/QCloudSupervisory.h | 15 + .../Base/Supervisory/QCloudSupervisory.m | 227 + .../Supervisory/QCloudSupervisoryRecord.h | 36 + .../Supervisory/QCloudSupervisoryRecord.m | 30 + .../Supervisory/QCloudSupervisorySession.h | 23 + .../Supervisory/QCloudSupervisorySession.m | 47 + Pods/QCloudCore/README.md | 126 + .../Pods-QXLive/Pods-QXLive.debug.xcconfig | 8 +- .../Pods-QXLive/Pods-QXLive.release.xcconfig | 8 +- .../Pods-QXLiveDev.debug.xcconfig | 8 +- .../Pods-QXLiveDev.release.xcconfig | 8 +- .../QCloudCOSXML/QCloudCOSXML-Info.plist | 26 + .../QCloudCOSXML/QCloudCOSXML-dummy.m | 5 + .../QCloudCOSXML/QCloudCOSXML-prefix.pch | 12 + .../QCloudCOSXML/QCloudCOSXML-umbrella.h | 62 + .../QCloudCOSXML/QCloudCOSXML.debug.xcconfig | 14 + .../QCloudCOSXML/QCloudCOSXML.modulemap | 6 + .../QCloudCOSXML.release.xcconfig | 14 + .../QCloudCore/QCloudCore-Info.plist | 26 + .../QCloudCore/QCloudCore-dummy.m | 5 + .../QCloudCore/QCloudCore-prefix.pch | 12 + .../QCloudCore/QCloudCore-umbrella.h | 130 + .../QCloudCore/QCloudCore.debug.xcconfig | 13 + .../QCloudCore/QCloudCore.modulemap | 6 + .../QCloudCore/QCloudCore.release.xcconfig | 13 + .../Controlller/QXHomeViewController.m | 4 +- .../Controlller/QXFillUserInfoViewController.m | 37 +- QXLive/Login(登录)/Model/QXLoginModel.h | 2 + QXLive/Manager/QXRoomMessageManager.h | 4 + QXLive/Manager/QXRoomMessageManager.m | 59 +- .../个人主页/QXCreatPhotosViewController.m | 33 +- .../Controller/个人主页/QXPhotosDetailVC.m | 39 +- .../个性装扮/QXDressSubViewController.m | 5 +- .../我的房间/QXCreateRoomViewController.m | 42 +- QXLive/Mine(音域)/Model/QXUserModel.h | 4 + QXLive/Mine(音域)/Services/QXMineNetwork.h | 20 + QXLive/Mine(音域)/Services/QXMineNetwork.m | 39 + .../View/编辑/QXUserInfoEditFooterView.m | 70 +- .../View/编辑/QXUserInfoEditHeaderView.m | 37 +- .../AppIcon.appiconset/iPadApp_76pt.png | Bin 11955 -> 7465 bytes .../AppIcon.appiconset/iPadApp_76pt@2x.png | Bin 39653 -> 21332 bytes .../iPadNotification_20pt.png | Bin 1226 -> 1010 bytes .../iPadNotification_20pt@2x.png | Bin 3905 -> 2602 bytes .../iPadProApp_83.5pt@2x.png | Bin 46577 -> 25208 bytes .../iPadSpootlight5_29pt.png | Bin 2321 -> 1765 bytes .../iPadSpootlight5_29pt@2x.png | Bin 7385 -> 4835 bytes .../iPadSpootlight7_40pt.png | Bin 3905 -> 2602 bytes .../iPadSpootlight7_40pt@2x.png | Bin 13080 -> 8120 bytes .../AppIcon.appiconset/iPhoneApp_60pt@2x.png | Bin 26170 -> 14706 bytes .../AppIcon.appiconset/iPhoneApp_60pt@3x.png | Bin 52726 -> 28291 bytes .../iPhoneNotification_20pt@2x.png | Bin 3905 -> 2602 bytes .../iPhoneNotification_20pt@3x.png | Bin 7931 -> 5133 bytes .../iPhoneSpootlight5_29pt@2x.png | Bin 7385 -> 4835 bytes .../iPhoneSpootlight5_29pt@3x.png | Bin 15078 -> 9250 bytes .../iPhoneSpootlight7_40pt@2x.png | Bin 13080 -> 8120 bytes .../iPhoneSpootlight7_40pt@3x.png | Bin 26170 -> 14706 bytes .../AppIcon.appiconset/store_1024pt.png | Bin 753848 -> 362502 bytes .../AppIconDev.appiconset/iPadApp_76pt.png | Bin 11766 -> 7465 bytes .../AppIconDev.appiconset/iPadApp_76pt@2x.png | Bin 35769 -> 21332 bytes .../iPadNotification_20pt.png | Bin 1247 -> 1010 bytes .../iPadNotification_20pt@2x.png | Bin 3874 -> 2602 bytes .../iPadProApp_83.5pt@2x.png | Bin 41958 -> 25208 bytes .../iPadSpootlight5_29pt.png | Bin 2400 -> 1765 bytes .../iPadSpootlight5_29pt@2x.png | Bin 7364 -> 4835 bytes .../iPadSpootlight7_40pt.png | Bin 3874 -> 2602 bytes .../iPadSpootlight7_40pt@2x.png | Bin 12715 -> 8120 bytes .../iPhoneApp_60pt@2x.png | Bin 24028 -> 14706 bytes .../iPhoneApp_60pt@3x.png | Bin 47140 -> 28291 bytes .../iPhoneNotification_20pt@2x.png | Bin 3874 -> 2602 bytes .../iPhoneNotification_20pt@3x.png | Bin 7758 -> 5133 bytes .../iPhoneSpootlight5_29pt@2x.png | Bin 7364 -> 4835 bytes .../iPhoneSpootlight5_29pt@3x.png | Bin 14710 -> 9250 bytes .../iPhoneSpootlight7_40pt@2x.png | Bin 12715 -> 8120 bytes .../iPhoneSpootlight7_40pt@3x.png | Bin 24028 -> 14706 bytes .../AppIconDev.appiconset/store_1024pt.png | Bin 693785 -> 362502 bytes .../Assets.xcassets/chat_buble/Contents.json | 6 + .../chat_bubble1.imageset}/Contents.json | 4 +- .../chat_bubble1.imageset/chat_buble1@2x.png | Bin 0 -> 105785 bytes .../chat_bubble1.imageset/chat_buble1@3x.png | Bin 0 -> 239553 bytes .../chat_bubble2.imageset/Contents.json | 22 + .../chat_bubble2.imageset/chat_bubble2@2x.png | Bin 0 -> 70284 bytes .../chat_bubble2.imageset/chat_bubble2@3x.png | Bin 0 -> 169026 bytes .../login/mi_di.imageset/mi_di@2x.png | Bin 7434 -> 0 bytes .../login/mi_di.imageset/mi_di@3x.png | Bin 14764 -> 0 bytes .../Contents.json | 4 +- .../login/yusheng.imageset/yusheng@2x.png | Bin 0 -> 17062 bytes .../login/yusheng.imageset/yusheng@3x.png | Bin 0 -> 32853 bytes .../room_emoji_btn.imageset/Contents.json | 22 + .../room_emoji_btn@2x.png | Bin 0 -> 1609 bytes .../room_emoji_btn@3x.png | Bin 0 -> 2968 bytes .../Chat, Messages@2x.png | Bin 904 -> 0 bytes .../Chat, Messages@3x.png | Bin 1647 -> 0 bytes QXLive/Other/NoitceAndKey.h | 3 +- QXLive/Other/PrefixHeader.pch | 1 + QXLive/Other/QXApi.h | 7 + QXLive/Other/chat_bubble.webp | Bin 319082 -> 0 bytes QXLive/Other/chat_buble.png | Bin 0 -> 28735 bytes .../Controller/QXRoomViewController.m | 14 +- QXLive/Room(房间)/Model/QXEmojiTypeModel.h | 41 + QXLive/Room(房间)/Model/QXEmojiTypeModel.m | 30 + QXLive/Room(房间)/View/QXRoomBottomView.h | 2 + QXLive/Room(房间)/View/QXRoomBottomView.m | 52 +- QXLive/Room(房间)/View/QXRoomChatListView.h | 29 +- QXLive/Room(房间)/View/QXRoomChatListView.m | 537 +- QXLive/Room(房间)/View/表情/QXEmojiCell.h | 18 + QXLive/Room(房间)/View/表情/QXEmojiCell.m | 21 + QXLive/Room(房间)/View/表情/QXEmojiCell.xib | 52 + .../View/表情/QXRoomEmojiContentView.h | 23 + .../View/表情/QXRoomEmojiContentView.m | 104 + QXLive/Room(房间)/View/表情/QXRoomEmojiView.h | 16 + QXLive/Room(房间)/View/表情/QXRoomEmojiView.m | 128 + .../View/设置/QXRoomBgSettingView.m | 35 +- QXLive/Tools/COS/QXCOSUploadManager.h | 36 + QXLive/Tools/COS/QXCOSUploadManager.m | 226 + 415 files changed, 47343 insertions(+), 11864 deletions(-) create mode 100644 Pods/QCloudCOSXML/QCloudCOSXML/Classes/Base/NSString+RegularExpressionCategory.h create mode 100644 Pods/QCloudCOSXML/QCloudCOSXML/Classes/Base/NSString+RegularExpressionCategory.m create mode 100644 Pods/QCloudCOSXML/QCloudCOSXML/Classes/Base/QCloudAbstractRequest+Quality.h create mode 100644 Pods/QCloudCOSXML/QCloudCOSXML/Classes/Base/QCloudAbstractRequest+Quality.m create mode 100644 Pods/QCloudCOSXML/QCloudCOSXML/Classes/Base/QCloudBizHTTPRequest+COSXML.h create mode 100644 Pods/QCloudCOSXML/QCloudCOSXML/Classes/Base/QCloudBizHTTPRequest+COSXML.m create mode 100644 Pods/QCloudCOSXML/QCloudCOSXML/Classes/Base/QCloudCOSXMLEndPoint.h create mode 100644 Pods/QCloudCOSXML/QCloudCOSXML/Classes/Base/QCloudCOSXMLEndPoint.m create mode 100644 Pods/QCloudCOSXML/QCloudCOSXML/Classes/Base/QCloudCOSXMLService+Configuration.h create mode 100644 Pods/QCloudCOSXML/QCloudCOSXML/Classes/Base/QCloudCOSXMLService+Configuration.m create mode 100644 Pods/QCloudCOSXML/QCloudCOSXML/Classes/Base/QCloudCOSXMLService+Private.h create mode 100644 Pods/QCloudCOSXML/QCloudCOSXML/Classes/Base/QCloudCOSXMLService+Quality.h create mode 100644 Pods/QCloudCOSXML/QCloudCOSXML/Classes/Base/QCloudCOSXMLService+Quality.m create mode 100644 Pods/QCloudCOSXML/QCloudCOSXML/Classes/Base/QCloudCOSXMLService.h create mode 100644 Pods/QCloudCOSXML/QCloudCOSXML/Classes/Base/QCloudCOSXMLService.m create mode 100644 Pods/QCloudCOSXML/QCloudCOSXML/Classes/Base/QCloudCOSXMLServiceUtilities.h create mode 100644 Pods/QCloudCOSXML/QCloudCOSXML/Classes/Base/QCloudCOSXMLServiceUtilities.m create mode 100644 Pods/QCloudCOSXML/QCloudCOSXML/Classes/Base/QCloudLogManager.h create mode 100644 Pods/QCloudCOSXML/QCloudCOSXML/Classes/Base/QCloudLogManager.m create mode 100644 Pods/QCloudCOSXML/QCloudCOSXML/Classes/Base/QCloudRequestData+COSXML.h create mode 100644 Pods/QCloudCOSXML/QCloudCOSXML/Classes/Base/QCloudRequestData+COSXML.m create mode 100644 Pods/QCloudCOSXML/QCloudCOSXML/Classes/Base/QCloudRequestData+COSXMLVersion.h create mode 100644 Pods/QCloudCOSXML/QCloudCOSXML/Classes/Base/QCloudRequestData+COSXMLVersion.m create mode 100644 Pods/QCloudCOSXML/QCloudCOSXML/Classes/QCloudCOSXMLVersion.h create mode 100644 Pods/QCloudCOSXML/QCloudCOSXML/Classes/QCloudCOSXMLVersion.m create mode 100644 Pods/QCloudCOSXML/QCloudCOSXML/Classes/Transfer/QCloudCOSTransferMangerService.h create mode 100644 Pods/QCloudCOSXML/QCloudCOSXML/Classes/Transfer/QCloudCOSTransferMangerService.m create mode 100644 Pods/QCloudCOSXML/QCloudCOSXML/Classes/Transfer/QCloudCOSXMLService+Transfer.h create mode 100644 Pods/QCloudCOSXML/QCloudCOSXML/Classes/Transfer/QCloudCOSXMLService+Transfer.m create mode 100644 Pods/QCloudCOSXML/QCloudCOSXML/Classes/Transfer/QCloudCOSXMLTransfer.h create mode 100644 Pods/QCloudCOSXML/QCloudCOSXML/Classes/Transfer/enum/QCloudCOSStorageClassEnum.h create mode 100644 Pods/QCloudCOSXML/QCloudCOSXML/Classes/Transfer/enum/QCloudCOSStorageClassEnum.m create mode 100644 Pods/QCloudCOSXML/QCloudCOSXML/Classes/Transfer/model/QCloudCompleteMultipartUploadInfo.h create mode 100644 Pods/QCloudCOSXML/QCloudCOSXML/Classes/Transfer/model/QCloudCompleteMultipartUploadInfo.m create mode 100644 Pods/QCloudCOSXML/QCloudCOSXML/Classes/Transfer/model/QCloudCopyObjectResult.h create mode 100644 Pods/QCloudCOSXML/QCloudCOSXML/Classes/Transfer/model/QCloudCopyObjectResult.m create mode 100644 Pods/QCloudCOSXML/QCloudCOSXML/Classes/Transfer/model/QCloudInitiateMultipartUploadResult.h create mode 100644 Pods/QCloudCOSXML/QCloudCOSXML/Classes/Transfer/model/QCloudInitiateMultipartUploadResult.m create mode 100644 Pods/QCloudCOSXML/QCloudCOSXML/Classes/Transfer/model/QCloudListPartsResult.h create mode 100644 Pods/QCloudCOSXML/QCloudCOSXML/Classes/Transfer/model/QCloudListPartsResult.m create mode 100644 Pods/QCloudCOSXML/QCloudCOSXML/Classes/Transfer/model/QCloudMultipartInfo.h create mode 100644 Pods/QCloudCOSXML/QCloudCOSXML/Classes/Transfer/model/QCloudMultipartInfo.m create mode 100644 Pods/QCloudCOSXML/QCloudCOSXML/Classes/Transfer/model/QCloudMultipartUploadInitiator.h create mode 100644 Pods/QCloudCOSXML/QCloudCOSXML/Classes/Transfer/model/QCloudMultipartUploadInitiator.m create mode 100644 Pods/QCloudCOSXML/QCloudCOSXML/Classes/Transfer/model/QCloudMultipartUploadOwner.h create mode 100644 Pods/QCloudCOSXML/QCloudCOSXML/Classes/Transfer/model/QCloudMultipartUploadOwner.m create mode 100644 Pods/QCloudCOSXML/QCloudCOSXML/Classes/Transfer/model/QCloudMultipartUploadPart.h create mode 100644 Pods/QCloudCOSXML/QCloudCOSXML/Classes/Transfer/model/QCloudMultipartUploadPart.m create mode 100644 Pods/QCloudCOSXML/QCloudCOSXML/Classes/Transfer/model/QCloudUploadObjectResult.h create mode 100644 Pods/QCloudCOSXML/QCloudCOSXML/Classes/Transfer/model/QCloudUploadObjectResult.m create mode 100644 Pods/QCloudCOSXML/QCloudCOSXML/Classes/Transfer/model/QCloudUploadPartResult.h create mode 100644 Pods/QCloudCOSXML/QCloudCOSXML/Classes/Transfer/model/QCloudUploadPartResult.m create mode 100644 Pods/QCloudCOSXML/QCloudCOSXML/Classes/Transfer/request/QCloudAbortMultipfartUploadRequest.h create mode 100644 Pods/QCloudCOSXML/QCloudCOSXML/Classes/Transfer/request/QCloudAbortMultipfartUploadRequest.m create mode 100644 Pods/QCloudCOSXML/QCloudCOSXML/Classes/Transfer/request/QCloudAppendObjectRequest.h create mode 100644 Pods/QCloudCOSXML/QCloudCOSXML/Classes/Transfer/request/QCloudAppendObjectRequest.m create mode 100644 Pods/QCloudCOSXML/QCloudCOSXML/Classes/Transfer/request/QCloudCOSXMLCopyObjectRequest.h create mode 100644 Pods/QCloudCOSXML/QCloudCOSXML/Classes/Transfer/request/QCloudCOSXMLCopyObjectRequest.m create mode 100644 Pods/QCloudCOSXML/QCloudCOSXML/Classes/Transfer/request/QCloudCOSXMLDownloadObjectRequest.h create mode 100644 Pods/QCloudCOSXML/QCloudCOSXML/Classes/Transfer/request/QCloudCOSXMLDownloadObjectRequest.m create mode 100644 Pods/QCloudCOSXML/QCloudCOSXML/Classes/Transfer/request/QCloudCOSXMLUploadObjectRequest.h create mode 100644 Pods/QCloudCOSXML/QCloudCOSXML/Classes/Transfer/request/QCloudCOSXMLUploadObjectRequest.m create mode 100644 Pods/QCloudCOSXML/QCloudCOSXML/Classes/Transfer/request/QCloudCOSXMLUploadObjectRequest_Private.h create mode 100644 Pods/QCloudCOSXML/QCloudCOSXML/Classes/Transfer/request/QCloudCompleteMultipartUploadRequest.h create mode 100644 Pods/QCloudCOSXML/QCloudCOSXML/Classes/Transfer/request/QCloudCompleteMultipartUploadRequest.m create mode 100644 Pods/QCloudCOSXML/QCloudCOSXML/Classes/Transfer/request/QCloudGetObjectRequest+Custom.h create mode 100644 Pods/QCloudCOSXML/QCloudCOSXML/Classes/Transfer/request/QCloudGetObjectRequest+Custom.m create mode 100644 Pods/QCloudCOSXML/QCloudCOSXML/Classes/Transfer/request/QCloudGetObjectRequest.h create mode 100644 Pods/QCloudCOSXML/QCloudCOSXML/Classes/Transfer/request/QCloudGetObjectRequest.m create mode 100644 Pods/QCloudCOSXML/QCloudCOSXML/Classes/Transfer/request/QCloudHeadObjectRequest.h create mode 100644 Pods/QCloudCOSXML/QCloudCOSXML/Classes/Transfer/request/QCloudHeadObjectRequest.m create mode 100644 Pods/QCloudCOSXML/QCloudCOSXML/Classes/Transfer/request/QCloudInitiateMultipartUploadRequest.h create mode 100644 Pods/QCloudCOSXML/QCloudCOSXML/Classes/Transfer/request/QCloudInitiateMultipartUploadRequest.m create mode 100644 Pods/QCloudCOSXML/QCloudCOSXML/Classes/Transfer/request/QCloudListMultipartRequest.h create mode 100644 Pods/QCloudCOSXML/QCloudCOSXML/Classes/Transfer/request/QCloudListMultipartRequest.m create mode 100644 Pods/QCloudCOSXML/QCloudCOSXML/Classes/Transfer/request/QCloudPutObjectCopyRequest.h create mode 100644 Pods/QCloudCOSXML/QCloudCOSXML/Classes/Transfer/request/QCloudPutObjectCopyRequest.m create mode 100644 Pods/QCloudCOSXML/QCloudCOSXML/Classes/Transfer/request/QCloudPutObjectRequest+Custom.h create mode 100644 Pods/QCloudCOSXML/QCloudCOSXML/Classes/Transfer/request/QCloudPutObjectRequest+Custom.m create mode 100644 Pods/QCloudCOSXML/QCloudCOSXML/Classes/Transfer/request/QCloudPutObjectRequest+CustomBuild.h create mode 100644 Pods/QCloudCOSXML/QCloudCOSXML/Classes/Transfer/request/QCloudPutObjectRequest+CustomBuild.m create mode 100644 Pods/QCloudCOSXML/QCloudCOSXML/Classes/Transfer/request/QCloudPutObjectRequest.h create mode 100644 Pods/QCloudCOSXML/QCloudCOSXML/Classes/Transfer/request/QCloudPutObjectRequest.m create mode 100644 Pods/QCloudCOSXML/QCloudCOSXML/Classes/Transfer/request/QCloudUploadPartCopyRequest.h create mode 100644 Pods/QCloudCOSXML/QCloudCOSXML/Classes/Transfer/request/QCloudUploadPartCopyRequest.m create mode 100644 Pods/QCloudCOSXML/QCloudCOSXML/Classes/Transfer/request/QCloudUploadPartRequest+Custom.h create mode 100644 Pods/QCloudCOSXML/QCloudCOSXML/Classes/Transfer/request/QCloudUploadPartRequest+Custom.m create mode 100644 Pods/QCloudCOSXML/QCloudCOSXML/Classes/Transfer/request/QCloudUploadPartRequest.h create mode 100644 Pods/QCloudCOSXML/QCloudCOSXML/Classes/Transfer/request/QCloudUploadPartRequest.m create mode 100644 Pods/QCloudCOSXML/README.md create mode 100644 Pods/QCloudCore/QCloudCore/Classes/Base/Bolts-Promise/QCloudThreadSafeMutableDictionary.h create mode 100644 Pods/QCloudCore/QCloudCore/Classes/Base/Bolts-Promise/QCloudThreadSafeMutableDictionary.m create mode 100644 Pods/QCloudCore/QCloudCore/Classes/Base/CustomLoader/QCloudCustomLoader.h create mode 100644 Pods/QCloudCore/QCloudCore/Classes/Base/CustomLoader/QCloudCustomLoaderTask.h create mode 100644 Pods/QCloudCore/QCloudCore/Classes/Base/CustomLoader/QCloudCustomLoaderTask.m create mode 100644 Pods/QCloudCore/QCloudCore/Classes/Base/CustomLoader/QCloudCustomSession.h create mode 100644 Pods/QCloudCore/QCloudCore/Classes/Base/CustomLoader/QCloudCustomSession.m create mode 100644 Pods/QCloudCore/QCloudCore/Classes/Base/CustomLoader/QCloudLoaderManager.h create mode 100644 Pods/QCloudCore/QCloudCore/Classes/Base/CustomLoader/QCloudLoaderManager.m create mode 100644 Pods/QCloudCore/QCloudCore/Classes/Base/DateTools/NSDate+QCloudComapre.h create mode 100644 Pods/QCloudCore/QCloudCore/Classes/Base/DateTools/NSDate+QCloudComapre.m create mode 100644 Pods/QCloudCore/QCloudCore/Classes/Base/FCUUID/QCloudFCUUID.h create mode 100644 Pods/QCloudCore/QCloudCore/Classes/Base/FCUUID/QCloudFCUUID.m create mode 100644 Pods/QCloudCore/QCloudCore/Classes/Base/FCUUID/UIDevice+QCloudFCUUID.h create mode 100644 Pods/QCloudCore/QCloudCore/Classes/Base/FCUUID/UIDevice+QCloudFCUUID.m create mode 100644 Pods/QCloudCore/QCloudCore/Classes/Base/Logger/Encryt/QCloudEncryt.h create mode 100644 Pods/QCloudCore/QCloudCore/Classes/Base/Logger/Encryt/QCloudEncryt.mm create mode 100644 Pods/QCloudCore/QCloudCore/Classes/Base/Logger/QCloudCLSLoggerOutput.h create mode 100644 Pods/QCloudCore/QCloudCore/Classes/Base/Logger/QCloudCLSLoggerOutput.m create mode 100644 Pods/QCloudCore/QCloudCore/Classes/Base/Logger/QCloudCustomLoggerOutput.h create mode 100644 Pods/QCloudCore/QCloudCore/Classes/Base/Logger/QCloudCustomLoggerOutput.m create mode 100644 Pods/QCloudCore/QCloudCore/Classes/Base/Logger/QCloudFileLogger.h create mode 100644 Pods/QCloudCore/QCloudCore/Classes/Base/Logger/QCloudFileLogger.m create mode 100644 Pods/QCloudCore/QCloudCore/Classes/Base/Logger/QCloudFileZipper.h create mode 100644 Pods/QCloudCore/QCloudCore/Classes/Base/Logger/QCloudFileZipper.m create mode 100644 Pods/QCloudCore/QCloudCore/Classes/Base/Logger/QCloudLogModel.h create mode 100644 Pods/QCloudCore/QCloudCore/Classes/Base/Logger/QCloudLogModel.m create mode 100644 Pods/QCloudCore/QCloudCore/Classes/Base/Logger/QCloudLogger.h create mode 100644 Pods/QCloudCore/QCloudCore/Classes/Base/Logger/QCloudLogger.m create mode 100644 Pods/QCloudCore/QCloudCore/Classes/Base/Logger/QCloudLoggerOutput.h create mode 100644 Pods/QCloudCore/QCloudCore/Classes/Base/Logger/QCloudLoggerOutput.m create mode 100644 Pods/QCloudCore/QCloudCore/Classes/Base/ObjectFack/QCloudMultiDelegateProxy.h create mode 100644 Pods/QCloudCore/QCloudCore/Classes/Base/ObjectFack/QCloudMultiDelegateProxy.m create mode 100644 Pods/QCloudCore/QCloudCore/Classes/Base/ObjectFack/QCloudWeakProxy.h create mode 100755 Pods/QCloudCore/QCloudCore/Classes/Base/ObjectFack/QCloudWeakProxy.m create mode 100644 Pods/QCloudCore/QCloudCore/Classes/Base/PathUtilities/QCloudBundlePath.h create mode 100644 Pods/QCloudCore/QCloudCore/Classes/Base/PathUtilities/QCloudBundlePath.m create mode 100644 Pods/QCloudCore/QCloudCore/Classes/Base/PathUtilities/QCloudMediaPath.h create mode 100644 Pods/QCloudCore/QCloudCore/Classes/Base/PathUtilities/QCloudMediaPath.m create mode 100644 Pods/QCloudCore/QCloudCore/Classes/Base/PathUtilities/QCloudSandboxPath.h create mode 100644 Pods/QCloudCore/QCloudCore/Classes/Base/PathUtilities/QCloudSandboxPath.m create mode 100644 Pods/QCloudCore/QCloudCore/Classes/Base/PathUtilities/QCloudUniversalAdjustablePath.h create mode 100644 Pods/QCloudCore/QCloudCore/Classes/Base/PathUtilities/QCloudUniversalAdjustablePath.m create mode 100644 Pods/QCloudCore/QCloudCore/Classes/Base/PathUtilities/QCloudUniversalFixedPath.h create mode 100644 Pods/QCloudCore/QCloudCore/Classes/Base/PathUtilities/QCloudUniversalFixedPath.m create mode 100644 Pods/QCloudCore/QCloudCore/Classes/Base/PathUtilities/QCloudUniversalPath.h create mode 100644 Pods/QCloudCore/QCloudCore/Classes/Base/PathUtilities/QCloudUniversalPath.m create mode 100644 Pods/QCloudCore/QCloudCore/Classes/Base/PathUtilities/QCloudUniversalPathConstants.h create mode 100644 Pods/QCloudCore/QCloudCore/Classes/Base/PathUtilities/QCloudUniversalPathFactory.h create mode 100644 Pods/QCloudCore/QCloudCore/Classes/Base/PathUtilities/QCloudUniversalPathFactory.m create mode 100644 Pods/QCloudCore/QCloudCore/Classes/Base/QCLOUDFileUtils/QCloudFileUtils.h create mode 100644 Pods/QCloudCore/QCloudCore/Classes/Base/QCLOUDFileUtils/QCloudFileUtils.m create mode 100644 Pods/QCloudCore/QCloudCore/Classes/Base/QCLOUDFileUtils/QCloudModel.h create mode 100644 Pods/QCloudCore/QCloudCore/Classes/Base/QCLOUDFileUtils/QCloudModel.m create mode 100644 Pods/QCloudCore/QCloudCore/Classes/Base/QCLOUDFileUtils/QCloudSHAPart.h create mode 100644 Pods/QCloudCore/QCloudCore/Classes/Base/QCLOUDFileUtils/QCloudSHAPart.m create mode 100644 Pods/QCloudCore/QCloudCore/Classes/Base/QCLOUDObjectModel/NSObject+QCloudModel.h create mode 100644 Pods/QCloudCore/QCloudCore/Classes/Base/QCLOUDObjectModel/NSObject+QCloudModel.m create mode 100644 Pods/QCloudCore/QCloudCore/Classes/Base/QCLOUDObjectModel/NSObject+QCloudModelTool.h create mode 100644 Pods/QCloudCore/QCloudCore/Classes/Base/QCLOUDObjectModel/NSObject+QCloudModelTool.m create mode 100644 Pods/QCloudCore/QCloudCore/Classes/Base/QCLOUDObjectModel/QCloudClassInfo.h create mode 100644 Pods/QCloudCore/QCloudCore/Classes/Base/QCLOUDObjectModel/QCloudClassInfo.m create mode 100755 Pods/QCloudCore/QCloudCore/Classes/Base/QCLOUDObjectModel/QCloudObjectModel.h create mode 100644 Pods/QCloudCore/QCloudCore/Classes/Base/QCLOUDProgramDefines/QCloudProgrameDefines.h create mode 100644 Pods/QCloudCore/QCloudCore/Classes/Base/QCLOUDProgramDefines/QCloudProgrameDefines.m create mode 100644 Pods/QCloudCore/QCloudCore/Classes/Base/QCLOUDRestNet/API/QCloudNetworkingAPI.h create mode 100644 Pods/QCloudCore/QCloudCore/Classes/Base/QCLOUDRestNet/CoreRequest/NSHTTPCookie+QCloudNetworking.h create mode 100644 Pods/QCloudCore/QCloudCore/Classes/Base/QCLOUDRestNet/CoreRequest/NSHTTPCookie+QCloudNetworking.m create mode 100644 Pods/QCloudCore/QCloudCore/Classes/Base/QCLOUDRestNet/CoreRequest/QCloudAbstractRequest.h create mode 100644 Pods/QCloudCore/QCloudCore/Classes/Base/QCLOUDRestNet/CoreRequest/QCloudAbstractRequest.m create mode 100644 Pods/QCloudCore/QCloudCore/Classes/Base/QCLOUDRestNet/CoreRequest/QCloudHTTPRequest.h create mode 100644 Pods/QCloudCore/QCloudCore/Classes/Base/QCLOUDRestNet/CoreRequest/QCloudHTTPRequest.m create mode 100644 Pods/QCloudCore/QCloudCore/Classes/Base/QCLOUDRestNet/CoreRequest/QCloudHTTPRequestDelegate.h create mode 100644 Pods/QCloudCore/QCloudCore/Classes/Base/QCLOUDRestNet/CoreRequest/QCloudHTTPRequest_RequestID.h create mode 100644 Pods/QCloudCore/QCloudCore/Classes/Base/QCLOUDRestNet/CoreRequest/QCloudRequestData.h create mode 100644 Pods/QCloudCore/QCloudCore/Classes/Base/QCLOUDRestNet/CoreRequest/QCloudRequestData.m create mode 100644 Pods/QCloudCore/QCloudCore/Classes/Base/QCLOUDRestNet/CoreRequest/Serializer/QCloudRequestSerializer.h create mode 100644 Pods/QCloudCore/QCloudCore/Classes/Base/QCLOUDRestNet/CoreRequest/Serializer/QCloudRequestSerializer.m create mode 100644 Pods/QCloudCore/QCloudCore/Classes/Base/QCLOUDRestNet/CoreRequest/Serializer/QCloudResponseSerializer.h create mode 100644 Pods/QCloudCore/QCloudCore/Classes/Base/QCLOUDRestNet/CoreRequest/Serializer/QCloudResponseSerializer.m create mode 100644 Pods/QCloudCore/QCloudCore/Classes/Base/QCLOUDRestNet/CoreRequest/Serializer/QCloudURLHelper.h create mode 100644 Pods/QCloudCore/QCloudCore/Classes/Base/QCLOUDRestNet/CoreRequest/Serializer/QCloudURLHelper.m create mode 100644 Pods/QCloudCore/QCloudCore/Classes/Base/QCLOUDRestNet/CoreRequest/Serializer/XML/XMLDictionary/Reader/QCloudXMLDictionary.h create mode 100644 Pods/QCloudCore/QCloudCore/Classes/Base/QCLOUDRestNet/CoreRequest/Serializer/XML/XMLDictionary/Reader/QCloudXMLDictionary.m create mode 100644 Pods/QCloudCore/QCloudCore/Classes/Base/QCLOUDRestNet/CoreRequest/Serializer/XML/XMLDictionary/Writer/QCloudXMLWriter.h create mode 100644 Pods/QCloudCore/QCloudCore/Classes/Base/QCLOUDRestNet/CoreRequest/Serializer/XML/XMLDictionary/Writer/QCloudXMLWriter.m create mode 100644 Pods/QCloudCore/QCloudCore/Classes/Base/QCLOUDRestNet/DNSCache/QCloudDomain.h create mode 100644 Pods/QCloudCore/QCloudCore/Classes/Base/QCLOUDRestNet/DNSCache/QCloudDomain.m create mode 100644 Pods/QCloudCore/QCloudCore/Classes/Base/QCLOUDRestNet/DNSCache/QCloudHosts.h create mode 100644 Pods/QCloudCore/QCloudCore/Classes/Base/QCLOUDRestNet/DNSCache/QCloudHosts.m create mode 100644 Pods/QCloudCore/QCloudCore/Classes/Base/QCLOUDRestNet/DNSCache/QCloudHttpDNS.h create mode 100644 Pods/QCloudCore/QCloudCore/Classes/Base/QCLOUDRestNet/DNSCache/QCloudHttpDNS.m create mode 100644 Pods/QCloudCore/QCloudCore/Classes/Base/QCLOUDRestNet/DNSCache/QCloudPingTester.h create mode 100644 Pods/QCloudCore/QCloudCore/Classes/Base/QCLOUDRestNet/DNSCache/QCloudPingTester.m create mode 100644 Pods/QCloudCore/QCloudCore/Classes/Base/QCLOUDRestNet/DNSCache/QCloudSimplePing.h create mode 100644 Pods/QCloudCore/QCloudCore/Classes/Base/QCLOUDRestNet/DNSCache/QCloudSimplePing.m create mode 100644 Pods/QCloudCore/QCloudCore/Classes/Base/QCLOUDRestNet/DataForm/QCloudFileOffsetBody.h create mode 100644 Pods/QCloudCore/QCloudCore/Classes/Base/QCLOUDRestNet/DataForm/QCloudFileOffsetBody.m create mode 100644 Pods/QCloudCore/QCloudCore/Classes/Base/QCLOUDRestNet/DataForm/QCloudFileOffsetStream.h create mode 100644 Pods/QCloudCore/QCloudCore/Classes/Base/QCLOUDRestNet/DataForm/QCloudFileOffsetStream.m create mode 100644 Pods/QCloudCore/QCloudCore/Classes/Base/QCLOUDRestNet/DataForm/QCloudHTTPBodyPart.h create mode 100644 Pods/QCloudCore/QCloudCore/Classes/Base/QCLOUDRestNet/DataForm/QCloudHTTPBodyPart.m create mode 100644 Pods/QCloudCore/QCloudCore/Classes/Base/QCLOUDRestNet/DataForm/QCloudHTTPMultiDataStream.h create mode 100644 Pods/QCloudCore/QCloudCore/Classes/Base/QCLOUDRestNet/DataForm/QCloudHTTPMultiDataStream.m create mode 100644 Pods/QCloudCore/QCloudCore/Classes/Base/QCLOUDRestNet/Error/NSError+QCloudNetworking.h create mode 100644 Pods/QCloudCore/QCloudCore/Classes/Base/QCLOUDRestNet/Error/NSError+QCloudNetworking.m create mode 100644 Pods/QCloudCore/QCloudCore/Classes/Base/QCLOUDRestNet/Operations/QCloudFakeRequestOperation.h create mode 100644 Pods/QCloudCore/QCloudCore/Classes/Base/QCLOUDRestNet/Operations/QCloudFakeRequestOperation.m create mode 100644 Pods/QCloudCore/QCloudCore/Classes/Base/QCLOUDRestNet/Operations/QCloudHTTPRequestOperation.h create mode 100644 Pods/QCloudCore/QCloudCore/Classes/Base/QCLOUDRestNet/Operations/QCloudHTTPRequestOperation.m create mode 100644 Pods/QCloudCore/QCloudCore/Classes/Base/QCLOUDRestNet/Operations/QCloudHTTPSessionManager_Private.h create mode 100644 Pods/QCloudCore/QCloudCore/Classes/Base/QCLOUDRestNet/Operations/QCloudOperationQueue.h create mode 100644 Pods/QCloudCore/QCloudCore/Classes/Base/QCLOUDRestNet/Operations/QCloudOperationQueue.m create mode 100644 Pods/QCloudCore/QCloudCore/Classes/Base/QCLOUDRestNet/Operations/QCloudRequestOperation.h create mode 100644 Pods/QCloudCore/QCloudCore/Classes/Base/QCLOUDRestNet/Operations/QCloudRequestOperation.m create mode 100644 Pods/QCloudCore/QCloudCore/Classes/Base/QCLOUDRestNet/Profile/QCloudHttpMetrics.h create mode 100644 Pods/QCloudCore/QCloudCore/Classes/Base/QCLOUDRestNet/Profile/QCloudHttpMetrics.m create mode 100644 Pods/QCloudCore/QCloudCore/Classes/Base/QCLOUDRestNet/Profile/QCloudNetProfile.h create mode 100644 Pods/QCloudCore/QCloudCore/Classes/Base/QCLOUDRestNet/Profile/QCloudNetProfile.m create mode 100644 Pods/QCloudCore/QCloudCore/Classes/Base/QCLOUDRestNet/QCLOUDRestNet.h create mode 100644 Pods/QCloudCore/QCloudCore/Classes/Base/QCLOUDRestNet/QCloudEnv/QCloudEnv.h create mode 100644 Pods/QCloudCore/QCloudCore/Classes/Base/QCLOUDRestNet/QCloudEnv/QCloudEnv.m create mode 100644 Pods/QCloudCore/QCloudCore/Classes/Base/QCLOUDRestNet/QCloudSecret/NSString+QCloudSHA.h create mode 100644 Pods/QCloudCore/QCloudCore/Classes/Base/QCLOUDRestNet/QCloudSecret/NSString+QCloudSHA.mm create mode 100644 Pods/QCloudCore/QCloudCore/Classes/Base/QCLOUDRestNet/Retry/QCloudHTTPRetryHanlder.h create mode 100644 Pods/QCloudCore/QCloudCore/Classes/Base/QCLOUDRestNet/Retry/QCloudHTTPRetryHanlder.m create mode 100644 Pods/QCloudCore/QCloudCore/Classes/Base/QCLOUDRestNet/Retry/QCloudHTTPTaskDelayManager.h create mode 100644 Pods/QCloudCore/QCloudCore/Classes/Base/QCLOUDRestNet/Retry/QCloudHTTPTaskDelayManager.m create mode 100644 Pods/QCloudCore/QCloudCore/Classes/Base/QCLOUDRestNet/Retry/QCloudUploadPartRequestRetryHandler.h create mode 100644 Pods/QCloudCore/QCloudCore/Classes/Base/QCLOUDRestNet/Retry/QCloudUploadPartRequestRetryHandler.m create mode 100644 Pods/QCloudCore/QCloudCore/Classes/Base/QCLOUDRestNet/SessionSupport/NSObject+HTTPHeadersContainer.h create mode 100644 Pods/QCloudCore/QCloudCore/Classes/Base/QCLOUDRestNet/SessionSupport/NSObject+HTTPHeadersContainer.m create mode 100644 Pods/QCloudCore/QCloudCore/Classes/Base/QCLOUDRestNet/SessionSupport/QCloudHTTPRequest_SessionPrivate.h create mode 100644 Pods/QCloudCore/QCloudCore/Classes/Base/QCLOUDRestNet/SessionSupport/QCloudHTTPSessionManager.h create mode 100644 Pods/QCloudCore/QCloudCore/Classes/Base/QCLOUDRestNet/SessionSupport/QCloudHTTPSessionManager.m create mode 100644 Pods/QCloudCore/QCloudCore/Classes/Base/QCLOUDRestNet/SessionSupport/QCloudURLSessionTaskData.h create mode 100644 Pods/QCloudCore/QCloudCore/Classes/Base/QCLOUDRestNet/SessionSupport/QCloudURLSessionTaskData.m create mode 100644 Pods/QCloudCore/QCloudCore/Classes/Base/QCLOUDRestNet/TimeOutAdapter/QCloudIntelligenceTimeOutAdapter.h create mode 100644 Pods/QCloudCore/QCloudCore/Classes/Base/QCLOUDRestNet/TimeOutAdapter/QCloudIntelligenceTimeOutAdapter.m create mode 100644 Pods/QCloudCore/QCloudCore/Classes/Base/QCLOUDRestNet/URLTools/QCloudURLTools.h create mode 100644 Pods/QCloudCore/QCloudCore/Classes/Base/QCLOUDRestNet/URLTools/QCloudURLTools.m create mode 100644 Pods/QCloudCore/QCloudCore/Classes/Base/QCLOUDRestNet/reachability/QCloudNetEnv.h create mode 100644 Pods/QCloudCore/QCloudCore/Classes/Base/QCLOUDRestNet/reachability/QCloudNetEnv.m create mode 100644 Pods/QCloudCore/QCloudCore/Classes/Base/QCLOUDRestNet/reachability/QCloudReachability.h create mode 100644 Pods/QCloudCore/QCloudCore/Classes/Base/QCLOUDRestNet/reachability/QCloudReachability.m create mode 100644 Pods/QCloudCore/QCloudCore/Classes/Base/QCloudBase/QualityAssurance/QCloudServiceConfiguration+Quality.h create mode 100644 Pods/QCloudCore/QCloudCore/Classes/Base/QCloudBase/QualityAssurance/QCloudServiceConfiguration+Quality.m create mode 100644 Pods/QCloudCore/QCloudCore/Classes/Base/QCloudBundle/QCloudBundle.h create mode 100644 Pods/QCloudCore/QCloudCore/Classes/Base/QCloudBundle/QCloudMainBundle.h create mode 100644 Pods/QCloudCore/QCloudCore/Classes/Base/QCloudBundle/QCloudMainBundle.m create mode 100644 Pods/QCloudCore/QCloudCore/Classes/Base/QCloudBundle/UIImage+QCloudBundle.h create mode 100644 Pods/QCloudCore/QCloudCore/Classes/Base/QCloudBundle/UIImage+QCloudBundle.m create mode 100644 Pods/QCloudCore/QCloudCore/Classes/Base/QCloudCategory/NSDate+QCLOUD.h create mode 100644 Pods/QCloudCore/QCloudCore/Classes/Base/QCloudCategory/NSDate+QCLOUD.m create mode 100644 Pods/QCloudCore/QCloudCore/Classes/Base/QCloudCategory/NSDate+QCloudInternetDateTime.h create mode 100644 Pods/QCloudCore/QCloudCore/Classes/Base/QCloudCategory/NSDate+QCloudInternetDateTime.m create mode 100644 Pods/QCloudCore/QCloudCore/Classes/Base/QCloudCategory/NSMutableData+QCloud_CRC.h create mode 100644 Pods/QCloudCore/QCloudCore/Classes/Base/QCloudCategory/NSMutableData+QCloud_CRC.m create mode 100755 Pods/QCloudCore/QCloudCore/Classes/Base/QCloudCategory/QCloudCRC64.c create mode 100755 Pods/QCloudCore/QCloudCore/Classes/Base/QCloudCategory/QCloudCRC64.h create mode 100644 Pods/QCloudCore/QCloudCore/Classes/Base/QCloudClientBase/Authentation/NSURLRequest+COS.h create mode 100644 Pods/QCloudCore/QCloudCore/Classes/Base/QCloudClientBase/Authentation/NSURLRequest+COS.m create mode 100644 Pods/QCloudCore/QCloudCore/Classes/Base/QCloudClientBase/Authentation/QCloudAuthentationCreator.h create mode 100644 Pods/QCloudCore/QCloudCore/Classes/Base/QCloudClientBase/Authentation/QCloudAuthentationCreator.m create mode 100644 Pods/QCloudCore/QCloudCore/Classes/Base/QCloudClientBase/Authentation/QCloudAuthentationV4Creator.h create mode 100644 Pods/QCloudCore/QCloudCore/Classes/Base/QCloudClientBase/Authentation/QCloudAuthentationV4Creator.mm create mode 100644 Pods/QCloudCore/QCloudCore/Classes/Base/QCloudClientBase/Authentation/QCloudAuthentationV5Creator.h create mode 100644 Pods/QCloudCore/QCloudCore/Classes/Base/QCloudClientBase/Authentation/QCloudAuthentationV5Creator.m create mode 100644 Pods/QCloudCore/QCloudCore/Classes/Base/QCloudClientBase/Authentation/QCloudCredentailFenceQueue.h create mode 100644 Pods/QCloudCore/QCloudCore/Classes/Base/QCloudClientBase/Authentation/QCloudCredentailFenceQueue.m create mode 100644 Pods/QCloudCore/QCloudCore/Classes/Base/QCloudClientBase/Authentation/QCloudCredential.h create mode 100644 Pods/QCloudCore/QCloudCore/Classes/Base/QCloudClientBase/Authentation/QCloudCredential.m create mode 100644 Pods/QCloudCore/QCloudCore/Classes/Base/QCloudClientBase/Authentation/QCloudSignature.h create mode 100644 Pods/QCloudCore/QCloudCore/Classes/Base/QCloudClientBase/Authentation/QCloudSignature.m create mode 100644 Pods/QCloudCore/QCloudCore/Classes/Base/QCloudClientBase/Authentation/QCloudSignatureFields.h create mode 100644 Pods/QCloudCore/QCloudCore/Classes/Base/QCloudClientBase/Authentation/QCloudSignatureFields.m create mode 100644 Pods/QCloudCore/QCloudCore/Classes/Base/QCloudClientBase/Authentation/QCloudSignatureProvider.h create mode 100644 Pods/QCloudCore/QCloudCore/Classes/Base/QCloudClientBase/Authentation/QCloudUICKeyChainStore.h create mode 100644 Pods/QCloudCore/QCloudCore/Classes/Base/QCloudClientBase/Authentation/QCloudUICKeyChainStore.m create mode 100644 Pods/QCloudCore/QCloudCore/Classes/Base/QCloudClientBase/QCloudClientContext.h create mode 100644 Pods/QCloudCore/QCloudCore/Classes/Base/QCloudClientBase/QCloudClientContext.m create mode 100644 Pods/QCloudCore/QCloudCore/Classes/Base/QCloudClientBase/Request/QCloudAbstractRequest_FakeRequest.h create mode 100644 Pods/QCloudCore/QCloudCore/Classes/Base/QCloudClientBase/Request/QCloudBizHTTPRequest.h create mode 100644 Pods/QCloudCore/QCloudCore/Classes/Base/QCloudClientBase/Request/QCloudBizHTTPRequest.m create mode 100644 Pods/QCloudCore/QCloudCore/Classes/Base/QCloudClientBase/Request/QCloudNetResponse.h create mode 100644 Pods/QCloudCore/QCloudCore/Classes/Base/QCloudClientBase/Request/QCloudNetResponse.m create mode 100644 Pods/QCloudCore/QCloudCore/Classes/Base/QCloudClientBase/Service/QCloudConfiguration.h create mode 100644 Pods/QCloudCore/QCloudCore/Classes/Base/QCloudClientBase/Service/QCloudConfiguration.m create mode 100644 Pods/QCloudCore/QCloudCore/Classes/Base/QCloudClientBase/Service/QCloudConfiguration_Private.h create mode 100644 Pods/QCloudCore/QCloudCore/Classes/Base/QCloudClientBase/Service/QCloudEndPoint.h create mode 100644 Pods/QCloudCore/QCloudCore/Classes/Base/QCloudClientBase/Service/QCloudEndPoint.m create mode 100644 Pods/QCloudCore/QCloudCore/Classes/Base/QCloudClientBase/Service/QCloudError.h create mode 100644 Pods/QCloudCore/QCloudCore/Classes/Base/QCloudClientBase/Service/QCloudError.m create mode 100644 Pods/QCloudCore/QCloudCore/Classes/Base/QCloudClientBase/Service/QCloudService.h create mode 100644 Pods/QCloudCore/QCloudCore/Classes/Base/QCloudClientBase/Service/QCloudService.m create mode 100644 Pods/QCloudCore/QCloudCore/Classes/Base/QCloudClientBase/Service/QCloudServiceConfiguration.h create mode 100644 Pods/QCloudCore/QCloudCore/Classes/Base/QCloudClientBase/Service/QCloudServiceConfiguration.m create mode 100644 Pods/QCloudCore/QCloudCore/Classes/Base/QCloudClientBase/Service/QCloudServiceConfiguration_Private.h create mode 100644 Pods/QCloudCore/QCloudCore/Classes/Base/QCloudCore.h create mode 100644 Pods/QCloudCore/QCloudCore/Classes/Base/QCloudCoreVersion.h create mode 100644 Pods/QCloudCore/QCloudCore/Classes/Base/QCloudCoreVersion.m create mode 100644 Pods/QCloudCore/QCloudCore/Classes/Base/QCloudGCDTimer.h create mode 100644 Pods/QCloudCore/QCloudCore/Classes/Base/QCloudGCDTimer.m create mode 100644 Pods/QCloudCore/QCloudCore/Classes/Base/QualityAssurance/QualityDataUploader.h create mode 100644 Pods/QCloudCore/QCloudCore/Classes/Base/QualityAssurance/QualityDataUploader.m create mode 100644 Pods/QCloudCore/QCloudCore/Classes/Base/Supervisory/QCloudSDKModuleManager.h create mode 100644 Pods/QCloudCore/QCloudCore/Classes/Base/Supervisory/QCloudSDKModuleManager.m create mode 100644 Pods/QCloudCore/QCloudCore/Classes/Base/Supervisory/QCloudSupervisory.h create mode 100644 Pods/QCloudCore/QCloudCore/Classes/Base/Supervisory/QCloudSupervisory.m create mode 100644 Pods/QCloudCore/QCloudCore/Classes/Base/Supervisory/QCloudSupervisoryRecord.h create mode 100644 Pods/QCloudCore/QCloudCore/Classes/Base/Supervisory/QCloudSupervisoryRecord.m create mode 100644 Pods/QCloudCore/QCloudCore/Classes/Base/Supervisory/QCloudSupervisorySession.h create mode 100644 Pods/QCloudCore/QCloudCore/Classes/Base/Supervisory/QCloudSupervisorySession.m create mode 100644 Pods/QCloudCore/README.md create mode 100644 Pods/Target Support Files/QCloudCOSXML/QCloudCOSXML-Info.plist create mode 100644 Pods/Target Support Files/QCloudCOSXML/QCloudCOSXML-dummy.m create mode 100644 Pods/Target Support Files/QCloudCOSXML/QCloudCOSXML-prefix.pch create mode 100644 Pods/Target Support Files/QCloudCOSXML/QCloudCOSXML-umbrella.h create mode 100644 Pods/Target Support Files/QCloudCOSXML/QCloudCOSXML.debug.xcconfig create mode 100644 Pods/Target Support Files/QCloudCOSXML/QCloudCOSXML.modulemap create mode 100644 Pods/Target Support Files/QCloudCOSXML/QCloudCOSXML.release.xcconfig create mode 100644 Pods/Target Support Files/QCloudCore/QCloudCore-Info.plist create mode 100644 Pods/Target Support Files/QCloudCore/QCloudCore-dummy.m create mode 100644 Pods/Target Support Files/QCloudCore/QCloudCore-prefix.pch create mode 100644 Pods/Target Support Files/QCloudCore/QCloudCore-umbrella.h create mode 100644 Pods/Target Support Files/QCloudCore/QCloudCore.debug.xcconfig create mode 100644 Pods/Target Support Files/QCloudCore/QCloudCore.modulemap create mode 100644 Pods/Target Support Files/QCloudCore/QCloudCore.release.xcconfig create mode 100644 QXLive/Other/Assets.xcassets/chat_buble/Contents.json rename QXLive/Other/Assets.xcassets/{room/room_say_icon.imageset => chat_buble/chat_bubble1.imageset}/Contents.json (75%) create mode 100644 QXLive/Other/Assets.xcassets/chat_buble/chat_bubble1.imageset/chat_buble1@2x.png create mode 100644 QXLive/Other/Assets.xcassets/chat_buble/chat_bubble1.imageset/chat_buble1@3x.png create mode 100644 QXLive/Other/Assets.xcassets/chat_buble/chat_bubble2.imageset/Contents.json create mode 100644 QXLive/Other/Assets.xcassets/chat_buble/chat_bubble2.imageset/chat_bubble2@2x.png create mode 100644 QXLive/Other/Assets.xcassets/chat_buble/chat_bubble2.imageset/chat_bubble2@3x.png delete mode 100644 QXLive/Other/Assets.xcassets/login/mi_di.imageset/mi_di@2x.png delete mode 100644 QXLive/Other/Assets.xcassets/login/mi_di.imageset/mi_di@3x.png rename QXLive/Other/Assets.xcassets/login/{mi_di.imageset => yusheng.imageset}/Contents.json (78%) create mode 100644 QXLive/Other/Assets.xcassets/login/yusheng.imageset/yusheng@2x.png create mode 100644 QXLive/Other/Assets.xcassets/login/yusheng.imageset/yusheng@3x.png create mode 100644 QXLive/Other/Assets.xcassets/room/room_emoji_btn.imageset/Contents.json create mode 100644 QXLive/Other/Assets.xcassets/room/room_emoji_btn.imageset/room_emoji_btn@2x.png create mode 100644 QXLive/Other/Assets.xcassets/room/room_emoji_btn.imageset/room_emoji_btn@3x.png delete mode 100644 QXLive/Other/Assets.xcassets/room/room_say_icon.imageset/Chat, Messages@2x.png delete mode 100644 QXLive/Other/Assets.xcassets/room/room_say_icon.imageset/Chat, Messages@3x.png delete mode 100644 QXLive/Other/chat_bubble.webp create mode 100644 QXLive/Other/chat_buble.png create mode 100644 QXLive/Room(房间)/Model/QXEmojiTypeModel.h create mode 100644 QXLive/Room(房间)/Model/QXEmojiTypeModel.m create mode 100644 QXLive/Room(房间)/View/表情/QXEmojiCell.h create mode 100644 QXLive/Room(房间)/View/表情/QXEmojiCell.m create mode 100644 QXLive/Room(房间)/View/表情/QXEmojiCell.xib create mode 100644 QXLive/Room(房间)/View/表情/QXRoomEmojiContentView.h create mode 100644 QXLive/Room(房间)/View/表情/QXRoomEmojiContentView.m create mode 100644 QXLive/Room(房间)/View/表情/QXRoomEmojiView.h create mode 100644 QXLive/Room(房间)/View/表情/QXRoomEmojiView.m create mode 100644 QXLive/Tools/COS/QXCOSUploadManager.h create mode 100644 QXLive/Tools/COS/QXCOSUploadManager.m diff --git a/Podfile b/Podfile index d810d13..88636c8 100644 --- a/Podfile +++ b/Podfile @@ -56,6 +56,9 @@ def taget_pods pod 'JXPagingView/Pager' #阿里云上传文件 pod 'AliyunOSSiOS' + #腾讯cos + pod 'QCloudCOSXML/Transfer' + #声网 pod 'AgoraRtcEngine_iOS','~> 4.5.2' # pod 'AgoraRtcEngine_Special_iOS','~> 4.4.1.9' # pod 'AgoraRtm_iOS' diff --git a/Podfile.lock b/Podfile.lock index b7c0606..6cf152c 100644 --- a/Podfile.lock +++ b/Podfile.lock @@ -167,6 +167,9 @@ PODS: - MQTTClient/Min - MQTTClient/Min (0.15.3) - Protobuf (3.29.3) + - QCloudCore/WithoutMTA (6.5.0) + - QCloudCOSXML/Transfer (6.5.0): + - QCloudCore/WithoutMTA (= 6.5.0) - QGVAPlayer (1.0.19) - ReactiveObjC (3.1.1) - SDCycleScrollView (1.82): @@ -260,6 +263,7 @@ DEPENDENCIES: - MBProgressHUD - MJRefresh - MQTTClient + - QCloudCOSXML/Transfer - QGVAPlayer - SDCycleScrollView - SDWebImage @@ -305,6 +309,8 @@ SPEC REPOS: - MJRefresh - MQTTClient - Protobuf + - QCloudCore + - QCloudCOSXML - QGVAPlayer - ReactiveObjC - SDCycleScrollView @@ -359,6 +365,8 @@ SPEC CHECKSUMS: MJRefresh: ff9e531227924c84ce459338414550a05d2aea78 MQTTClient: 0dfa04e789479c2e461786464969895c1fcb0875 Protobuf: e2de96d939c642ce8da186343ff8929b35223212 + QCloudCore: 8681c29dc68d783d07209e7a6ebd8b9058ec73e8 + QCloudCOSXML: 26ba1918f7126e650e70f091fee4760cca38038a QGVAPlayer: a0bca68c9bd6f1c8de5ac2d10ddf98be6038cce9 ReactiveObjC: 011caa393aa0383245f2dcf9bf02e86b80b36040 SDCycleScrollView: a0d74c3384caa72bdfc81470bdbc8c14b3e1fbcf @@ -384,6 +392,6 @@ SPEC CHECKSUMS: YYWebImage: 5f7f36aee2ae293f016d418c7d6ba05c4863e928 Zip: b3fef584b147b6e582b2256a9815c897d60ddc67 -PODFILE CHECKSUM: 0d9fb42b40922f1e7b70bca0655faf5be6d1d454 +PODFILE CHECKSUM: 0bc5dc8150dc827b074af9f826d3454f1feacf07 COCOAPODS: 1.16.2 diff --git a/Pods/Manifest.lock b/Pods/Manifest.lock index b7c0606..6cf152c 100644 --- a/Pods/Manifest.lock +++ b/Pods/Manifest.lock @@ -167,6 +167,9 @@ PODS: - MQTTClient/Min - MQTTClient/Min (0.15.3) - Protobuf (3.29.3) + - QCloudCore/WithoutMTA (6.5.0) + - QCloudCOSXML/Transfer (6.5.0): + - QCloudCore/WithoutMTA (= 6.5.0) - QGVAPlayer (1.0.19) - ReactiveObjC (3.1.1) - SDCycleScrollView (1.82): @@ -260,6 +263,7 @@ DEPENDENCIES: - MBProgressHUD - MJRefresh - MQTTClient + - QCloudCOSXML/Transfer - QGVAPlayer - SDCycleScrollView - SDWebImage @@ -305,6 +309,8 @@ SPEC REPOS: - MJRefresh - MQTTClient - Protobuf + - QCloudCore + - QCloudCOSXML - QGVAPlayer - ReactiveObjC - SDCycleScrollView @@ -359,6 +365,8 @@ SPEC CHECKSUMS: MJRefresh: ff9e531227924c84ce459338414550a05d2aea78 MQTTClient: 0dfa04e789479c2e461786464969895c1fcb0875 Protobuf: e2de96d939c642ce8da186343ff8929b35223212 + QCloudCore: 8681c29dc68d783d07209e7a6ebd8b9058ec73e8 + QCloudCOSXML: 26ba1918f7126e650e70f091fee4760cca38038a QGVAPlayer: a0bca68c9bd6f1c8de5ac2d10ddf98be6038cce9 ReactiveObjC: 011caa393aa0383245f2dcf9bf02e86b80b36040 SDCycleScrollView: a0d74c3384caa72bdfc81470bdbc8c14b3e1fbcf @@ -384,6 +392,6 @@ SPEC CHECKSUMS: YYWebImage: 5f7f36aee2ae293f016d418c7d6ba05c4863e928 Zip: b3fef584b147b6e582b2256a9815c897d60ddc67 -PODFILE CHECKSUM: 0d9fb42b40922f1e7b70bca0655faf5be6d1d454 +PODFILE CHECKSUM: 0bc5dc8150dc827b074af9f826d3454f1feacf07 COCOAPODS: 1.16.2 diff --git a/Pods/Pods.xcodeproj/project.pbxproj b/Pods/Pods.xcodeproj/project.pbxproj index 3afd614..b1dcdd2 100644 --- a/Pods/Pods.xcodeproj/project.pbxproj +++ b/Pods/Pods.xcodeproj/project.pbxproj @@ -14,7 +14,7 @@ 4ADCCF1EE25517194697A524ABEDD36C /* [CP] Copy XCFrameworks */, ); dependencies = ( - A783AE5EE624B38E33AD237A78D74B64 /* PBXTargetDependency */, + 7DD0EA943F8CD743D13C000DA9DBE791 /* PBXTargetDependency */, ); name = AgoraRtcEngine_iOS; }; @@ -45,8 +45,8 @@ 7CB7B2472D4FF364431A91266B098CD8 /* [CP] Copy XCFrameworks */, ); dependencies = ( - 319E4F2895EDD6FBD6F026DD18192973 /* PBXTargetDependency */, - A4DD8F5AF87062A46C0258D0AFD1111C /* PBXTargetDependency */, + 93C32D3DD3C94BD8E2298593899D8D49 /* PBXTargetDependency */, + 5364DABCD79D6C21B15F9FF6E181C7C2 /* PBXTargetDependency */, ); name = TIMPush; }; @@ -90,6742 +90,7403 @@ }; BB2154EC919CB4298C80ED396B322C5F /* TXIMSDK_Plus_iOS_XCFramework */ = { isa = PBXAggregateTarget; - buildConfigurationList = 789642115AD8DCE6541EFACF2F474CD0 /* Build configuration list for PBXAggregateTarget "TXIMSDK_Plus_iOS_XCFramework" */; + buildConfigurationList = A4FE0284AED92AD478DAE26325262701 /* Build configuration list for PBXAggregateTarget "TXIMSDK_Plus_iOS_XCFramework" */; buildPhases = ( - 6C2571307A44E8295C40D0357813B6D0 /* [CP] Copy XCFrameworks */, + 30E6A5903DBDCB0E267C5812402F6798 /* [CP] Copy XCFrameworks */, ); dependencies = ( - 5650A50F12305CBDEBA4DC6CBC1A6011 /* PBXTargetDependency */, + FC37B04DACD3EC54B63B172959948082 /* PBXTargetDependency */, ); name = TXIMSDK_Plus_iOS_XCFramework; }; /* End PBXAggregateTarget section */ /* Begin PBXBuildFile section */ - 000B7CF92F1A0FC654C3FD59E8D83952 /* IQPreviousNextView.m in Sources */ = {isa = PBXBuildFile; fileRef = CD3401A3226DCB11E15899A01C463A56 /* IQPreviousNextView.m */; }; - 003480C3DFC5728A280F394BC0954943 /* filter_enc.c in Sources */ = {isa = PBXBuildFile; fileRef = A8794629E39969EC18FE07CB70457287 /* filter_enc.c */; settings = {COMPILER_FLAGS = "-D_THREAD_SAFE -fno-objc-arc"; }; }; + 000B7CF92F1A0FC654C3FD59E8D83952 /* IQPreviousNextView.m in Sources */ = {isa = PBXBuildFile; fileRef = 5B9348D4F60D56C673A7CEA33E823944 /* IQPreviousNextView.m */; }; + 001C815094D6B4900DBE37250C9AB4FC /* UIImage+Transform.h in Headers */ = {isa = PBXBuildFile; fileRef = B28DB461D2927E771DBAFDC89DBA4548 /* UIImage+Transform.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 00345A5B548DC8E3DD07540DC32236C5 /* demux.c in Sources */ = {isa = PBXBuildFile; fileRef = AF185AB44875D71E62BF2E58ED0F4C88 /* demux.c */; settings = {COMPILER_FLAGS = "-D_THREAD_SAFE -fno-objc-arc"; }; }; 005FEB6651D89DCD98B097B506109A93 /* TUICircleLodingView.h in Headers */ = {isa = PBXBuildFile; fileRef = 30C63F6B88C0F8AD4486A67AF2F2E024 /* TUICircleLodingView.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 0060E387D081C9907ABDC8FB23F7E32D /* LLNetworkHelper.h in Headers */ = {isa = PBXBuildFile; fileRef = 34B32386E62DAFD9F626300575CF2D1A /* LLNetworkHelper.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 0060E387D081C9907ABDC8FB23F7E32D /* LLNetworkHelper.h in Headers */ = {isa = PBXBuildFile; fileRef = 08574C1EB9E14AE1574467A04F81844C /* LLNetworkHelper.h */; settings = {ATTRIBUTES = (Public, ); }; }; 0066C9BDBCB5DB47CB2A1DAB18E8A1EF /* CoreText.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = DC8C16342A53C061414E552D24448B80 /* CoreText.framework */; }; - 009A101C6D6749EEE990C935A028904B /* UICollectionReusableView+RACSignalSupport.m in Sources */ = {isa = PBXBuildFile; fileRef = 3BE30CE823E0C71B1D4A34995D92C5FF /* UICollectionReusableView+RACSignalSupport.m */; }; - 009D17FA056598E9B013B81A52AE4F83 /* UIView+WebCache.m in Sources */ = {isa = PBXBuildFile; fileRef = A993269DE36889EE9D32B5065C219ABB /* UIView+WebCache.m */; }; - 00AA2658FFA7BD73E276AF18A85F26CE /* cost_mips_dsp_r2.c in Sources */ = {isa = PBXBuildFile; fileRef = 19EA860424B2E003DEF032573D40DF17 /* cost_mips_dsp_r2.c */; settings = {COMPILER_FLAGS = "-D_THREAD_SAFE -fno-objc-arc"; }; }; + 009A101C6D6749EEE990C935A028904B /* UICollectionReusableView+RACSignalSupport.m in Sources */ = {isa = PBXBuildFile; fileRef = C3C075B5F84B5C8E31A0BA81C62F891D /* UICollectionReusableView+RACSignalSupport.m */; }; 00BA2C589C3649A1B348646907D50F58 /* TUIConversationMultiChooseView_Minimalist.h in Headers */ = {isa = PBXBuildFile; fileRef = 0DE96672AACB04189F4CD3F67F9D2112 /* TUIConversationMultiChooseView_Minimalist.h */; settings = {ATTRIBUTES = (Public, ); }; }; 00C9A2BBFA9ED96808F00E2BEE3E369D /* TUIMessageCellData.m in Sources */ = {isa = PBXBuildFile; fileRef = 1FBFBF1657F4C8B08A3A6870AFFF5457 /* TUIMessageCellData.m */; }; 00CF55F985DF473F038B26D4BBD1B974 /* TUIReplyQuoteViewData.h in Headers */ = {isa = PBXBuildFile; fileRef = B6C84846E5D81455F1F75911720D9FF9 /* TUIReplyQuoteViewData.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 00D47783A8896A2CB77183AC54B3896A /* SDWebImageOptionsProcessor.h in Headers */ = {isa = PBXBuildFile; fileRef = B22EBF3B312E8568505AE9F06CEFC25E /* SDWebImageOptionsProcessor.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 01014DE40BF934E31158FE88DCFAA456 /* LLAppInfoComponent.m in Sources */ = {isa = PBXBuildFile; fileRef = 61D9E0C415937DE7E59760AAD7167051 /* LLAppInfoComponent.m */; }; - 010C441BAA16841E8795F6384901AF58 /* OSSIPv6Adapter.m in Sources */ = {isa = PBXBuildFile; fileRef = E6554C82F4DCDC7AEF6E40B5904434BA /* OSSIPv6Adapter.m */; }; + 01014DE40BF934E31158FE88DCFAA456 /* LLAppInfoComponent.m in Sources */ = {isa = PBXBuildFile; fileRef = DEE88D31598BBC877C31F1ED9C43BBD7 /* LLAppInfoComponent.m */; }; + 010C441BAA16841E8795F6384901AF58 /* OSSIPv6Adapter.m in Sources */ = {isa = PBXBuildFile; fileRef = B7B9417ADC72AFB9DB5C0C63BD184A23 /* OSSIPv6Adapter.m */; }; 0122945EEB0ED2711D042289DF417EA0 /* TUIFaceMessageCell_Minimalist.m in Sources */ = {isa = PBXBuildFile; fileRef = 202BB8B880446B1F9B7C7708BF26FDD1 /* TUIFaceMessageCell_Minimalist.m */; }; - 01337B28102993C3FDD41D9A2E0AFAB2 /* RACCompoundDisposable.h in Headers */ = {isa = PBXBuildFile; fileRef = B5F401CFC257F77EC27724C8E9B72978 /* RACCompoundDisposable.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 017169EFCF339B59B9259F2496C0F51C /* YYLabel.h in Headers */ = {isa = PBXBuildFile; fileRef = 3DCBC00766D06F1B7F4F5ECCC2D19171 /* YYLabel.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 0180FFD87596CE458D6BEAC78D956E58 /* dec_sse2.c in Sources */ = {isa = PBXBuildFile; fileRef = 5EFC2B9A5DD894B9DDC7C1B220A86E22 /* dec_sse2.c */; settings = {COMPILER_FLAGS = "-D_THREAD_SAFE -fno-objc-arc"; }; }; - 0188022A2DD38A056E13D07973F7FC21 /* LLTitleViewController.h in Headers */ = {isa = PBXBuildFile; fileRef = 526A2B0C3FC3B187FF770704F25E1445 /* LLTitleViewController.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 01AD9C4D5168F89B9844CB3E46072DE7 /* NSObject+RACDescription.m in Sources */ = {isa = PBXBuildFile; fileRef = 48E908F60217B7B5344EA813696E9C6B /* NSObject+RACDescription.m */; }; - 01B2E81FBD9A6D179150C9130B2C1807 /* UIRefreshControl+RACCommandSupport.h in Headers */ = {isa = PBXBuildFile; fileRef = F6633117218F5C9B51700A7513813FE7 /* UIRefreshControl+RACCommandSupport.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 01B503E5471AD5173DE109423170F4E9 /* ZipUtilities.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2AA9A2E1438036D23183D38BA6BD6C82 /* ZipUtilities.swift */; }; - 01BDBBF1657820AB1883A41F1D317790 /* OfflinePushExtInfo.m in Sources */ = {isa = PBXBuildFile; fileRef = AB4EDE133919220DA0DB77266DD4F290 /* OfflinePushExtInfo.m */; }; - 01CC429C9627CFE6AA836FD1BEC68B55 /* tree_dec.c in Sources */ = {isa = PBXBuildFile; fileRef = 07C862DBF71EFED68AB3FCF04848DFCF /* tree_dec.c */; settings = {COMPILER_FLAGS = "-D_THREAD_SAFE -fno-objc-arc"; }; }; - 01FCBA3480BF4F485F07F1C7B25B88D6 /* NSObject+YBImageBrowser.h in Headers */ = {isa = PBXBuildFile; fileRef = 69CDE4A0B26080E0536A05BC4BC16084 /* NSObject+YBImageBrowser.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 020FEDA58170EE1ABDF9E268D373CF4F /* JXCategoryNumberView.m in Sources */ = {isa = PBXBuildFile; fileRef = 39F20F182CE4DA5C4011C05FD04682B7 /* JXCategoryNumberView.m */; }; + 01285ABEB9326C59B161E94A330219EC /* ZipUtilities.swift in Sources */ = {isa = PBXBuildFile; fileRef = C4966ADEB527BE45F20A76208929346C /* ZipUtilities.swift */; }; + 01337B28102993C3FDD41D9A2E0AFAB2 /* RACCompoundDisposable.h in Headers */ = {isa = PBXBuildFile; fileRef = CEF0F2326528DDC9C23F31E0F7DC083C /* RACCompoundDisposable.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 017169EFCF339B59B9259F2496C0F51C /* YYLabel.h in Headers */ = {isa = PBXBuildFile; fileRef = 0A78B1221D5E139D0A1043307E3391C8 /* YYLabel.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 0188022A2DD38A056E13D07973F7FC21 /* LLTitleViewController.h in Headers */ = {isa = PBXBuildFile; fileRef = 5ACD2A903B7EDBEB11059E6E059F552D /* LLTitleViewController.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 01AD9C4D5168F89B9844CB3E46072DE7 /* NSObject+RACDescription.m in Sources */ = {isa = PBXBuildFile; fileRef = 0E38BF12D23CB438D23EBF8BE915E93B /* NSObject+RACDescription.m */; }; + 01B2E81FBD9A6D179150C9130B2C1807 /* UIRefreshControl+RACCommandSupport.h in Headers */ = {isa = PBXBuildFile; fileRef = 935DE90A8B2DAD1AAC40EBFB11032967 /* UIRefreshControl+RACCommandSupport.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 01FCBA3480BF4F485F07F1C7B25B88D6 /* NSObject+YBImageBrowser.h in Headers */ = {isa = PBXBuildFile; fileRef = 8EDF4D4EC1EC60F6DB319427A41A087C /* NSObject+YBImageBrowser.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 020FEDA58170EE1ABDF9E268D373CF4F /* JXCategoryNumberView.m in Sources */ = {isa = PBXBuildFile; fileRef = CDC68FC5971701721E0F5AF722A2623B /* JXCategoryNumberView.m */; }; 0265A0C9B98BF6F89B4666A6CEDC67CB /* TUIGroupInfoController_Minimalist.h in Headers */ = {isa = PBXBuildFile; fileRef = FE1BD52BFADEA61D919421EC8D818FBA /* TUIGroupInfoController_Minimalist.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 02661A0934BC99375198D41EA84CDD7D /* YBIBImageCell+Internal.h in Headers */ = {isa = PBXBuildFile; fileRef = 49D936986B00F70F98A5F9D1DA0A4E4F /* YBIBImageCell+Internal.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 02661A0934BC99375198D41EA84CDD7D /* YBIBImageCell+Internal.h in Headers */ = {isa = PBXBuildFile; fileRef = EF2443999210E3224CA08A2708F3C289 /* YBIBImageCell+Internal.h */; settings = {ATTRIBUTES = (Public, ); }; }; 0271EB1B8C34CE651AF84DD0E3B3D54B /* TUICloudCustomDataTypeCenter.h in Headers */ = {isa = PBXBuildFile; fileRef = 80E909573FB94FE0B5E7F0DB01A78B32 /* TUICloudCustomDataTypeCenter.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 02B99127BAED5C8686EEAE82447F697D /* QCloudEncryt.mm in Sources */ = {isa = PBXBuildFile; fileRef = A865E990B35FB6B509984027BE08F592 /* QCloudEncryt.mm */; }; 02D53775D779865D05E8AB0B473494EF /* TUIReplyQuoteViewData.m in Sources */ = {isa = PBXBuildFile; fileRef = 6CC2904CA0EBAC93330078979CE446BF /* TUIReplyQuoteViewData.m */; }; - 02E9ACC4782F8EE2D53F5338165BEEB6 /* PrivacyInfo.xcprivacy in Resources */ = {isa = PBXBuildFile; fileRef = 95EE60D03898593A6C20C72EBD683F98 /* PrivacyInfo.xcprivacy */; }; - 0311146BDD4388D02608B16BC6134DE2 /* MQTTSessionSynchron.m in Sources */ = {isa = PBXBuildFile; fileRef = DCA7AF97E6E82F6C971AD0C7105CF4D9 /* MQTTSessionSynchron.m */; }; - 033E3949E9602802BAB4714C58B69C79 /* SDWebImageError.h in Headers */ = {isa = PBXBuildFile; fileRef = CB5255FAFE0C0E220F260AFA6D1522B1 /* SDWebImageError.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 03588B938BECEEF89042E2C73159BEA2 /* mz_strm_wzaes.h in Headers */ = {isa = PBXBuildFile; fileRef = 80E3C2E300CD116D6119C5D6C7723351 /* mz_strm_wzaes.h */; settings = {ATTRIBUTES = (Project, ); }; }; + 02DE03E3DF22829FE1A08CD0FA2599CF /* SDWebImageDownloaderOperation.h in Headers */ = {isa = PBXBuildFile; fileRef = 2335CA9DB919E6FE3491B0DC6ED22569 /* SDWebImageDownloaderOperation.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 0311146BDD4388D02608B16BC6134DE2 /* MQTTSessionSynchron.m in Sources */ = {isa = PBXBuildFile; fileRef = 5D16A59BD9CAE5F6315D5D8438950C3F /* MQTTSessionSynchron.m */; }; + 03588B938BECEEF89042E2C73159BEA2 /* mz_strm_wzaes.h in Headers */ = {isa = PBXBuildFile; fileRef = EBD0F5528D089B8DFC408C64AB16CF9A /* mz_strm_wzaes.h */; settings = {ATTRIBUTES = (Project, ); }; }; 035D58BBEBF04765E3880007A91C3D44 /* TUIConversation-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = 3B18A0FDCCE2BCD71AF416792C610BE8 /* TUIConversation-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 0364A1F6A01A8796595A1E8DD4D5640B /* QCloudResponseSerializer.h in Headers */ = {isa = PBXBuildFile; fileRef = 99C2CBBFB4379E23C1A56B3F85C4B092 /* QCloudResponseSerializer.h */; settings = {ATTRIBUTES = (Public, ); }; }; 036EA037FB85487AE0CFD0A2E4CBB69C /* TUIConversationConfig.h in Headers */ = {isa = PBXBuildFile; fileRef = 68634D709C3E0FBD03E2C8A301E3904C /* TUIConversationConfig.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 03A612215C3EBF93073A9828104A7FF6 /* zip.h in Headers */ = {isa = PBXBuildFile; fileRef = 8F26F0561CFD77A8DE74190245D48F2D /* zip.h */; settings = {ATTRIBUTES = (Project, ); }; }; - 03A82053D2EBDA7BA24A86FCD5C6884C /* LLNetworkFilterViewController.h in Headers */ = {isa = PBXBuildFile; fileRef = 9B8DCC45CDEBEE45C76704381B29D9C3 /* LLNetworkFilterViewController.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 03A82053D2EBDA7BA24A86FCD5C6884C /* LLNetworkFilterViewController.h in Headers */ = {isa = PBXBuildFile; fileRef = 7378F8C8FFBE479804EDE124B75AF775 /* LLNetworkFilterViewController.h */; settings = {ATTRIBUTES = (Public, ); }; }; 03B11B29CC2946837B1AE040C56E3D67 /* TUIChatPopMenu.h in Headers */ = {isa = PBXBuildFile; fileRef = C5E5731040BDA7C46A5E0412A2AC9F24 /* TUIChatPopMenu.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 03C32276684A78A3AB9CC8F2448AE408 /* MQTTSessionSynchron.h in Headers */ = {isa = PBXBuildFile; fileRef = 4988BA03D0EBAD5A74A80D6379EF62DF /* MQTTSessionSynchron.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 03C32276684A78A3AB9CC8F2448AE408 /* MQTTSessionSynchron.h in Headers */ = {isa = PBXBuildFile; fileRef = F45A4E627872ED9122F86308D2FE0D02 /* MQTTSessionSynchron.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 03CAF948B22F4E43727DA1099C58D973 /* alphai_dec.h in Headers */ = {isa = PBXBuildFile; fileRef = 5669FF9A1AD09E203C494E22DAE96000 /* alphai_dec.h */; settings = {ATTRIBUTES = (Project, ); }; }; 03F2428C9FE1AF75B287A39D46F646FA /* FMDB-FMDB_Privacy in Resources */ = {isa = PBXBuildFile; fileRef = 148D9AC15C4A9777E5ACBB46C03FE218 /* FMDB-FMDB_Privacy */; }; 03FC2C70E79680B44353938ADA5B4637 /* TUITextView.h in Headers */ = {isa = PBXBuildFile; fileRef = 65621BEE3F93FA7DFC7B6FD9300CC4BE /* TUITextView.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 042D818D52B4574BF24F710013A99515 /* LLRouter+ShortCut.h in Headers */ = {isa = PBXBuildFile; fileRef = F766644C58B096CE34504D0D218E0666 /* LLRouter+ShortCut.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 0444111BF4AB96C3A12B64159E0E5728 /* YYCategoriesMacro.h in Headers */ = {isa = PBXBuildFile; fileRef = FF7439BD4FE89B1ED8FEF7DD1825760F /* YYCategoriesMacro.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 044EF3D31C4DF2E0FC5C1D5D0A8A128A /* backward_references_enc.h in Headers */ = {isa = PBXBuildFile; fileRef = 7460B953F2664BBC07950D2921C6B42C /* backward_references_enc.h */; settings = {ATTRIBUTES = (Project, ); }; }; - 045D1B79D4A0A6C3766E33B8176AE80A /* GCDTimer.m in Sources */ = {isa = PBXBuildFile; fileRef = CF3BCCDFE5207EEDDAA538327D74F2D6 /* GCDTimer.m */; }; - 046C8CF4F5BC1F8F7AEB535E1FB5CFF9 /* TADotView.m in Sources */ = {isa = PBXBuildFile; fileRef = EC90F94F312D0E34FE172989809C5B43 /* TADotView.m */; }; - 04A6A10D7D31E14B450F8368F54C9A21 /* Svga.pbobjc.m in Sources */ = {isa = PBXBuildFile; fileRef = 593B07DA61DC8977DA7FB2ADEA9D91D0 /* Svga.pbobjc.m */; settings = {COMPILER_FLAGS = "-fno-objc-arc"; }; }; + 03FF888D16C5484DDD1C3ED4A233043C /* histogram_enc.c in Sources */ = {isa = PBXBuildFile; fileRef = 11A2159ED822A3FD5A308AEBAD81FCE0 /* histogram_enc.c */; settings = {COMPILER_FLAGS = "-D_THREAD_SAFE -fno-objc-arc"; }; }; + 04228F05F836E7E0C6809341F18409F8 /* thread_utils.c in Sources */ = {isa = PBXBuildFile; fileRef = F12F3F34A7DE95B22A6457237D49AE54 /* thread_utils.c */; settings = {COMPILER_FLAGS = "-D_THREAD_SAFE -fno-objc-arc"; }; }; + 042D818D52B4574BF24F710013A99515 /* LLRouter+ShortCut.h in Headers */ = {isa = PBXBuildFile; fileRef = 5225D77BA4F9A454E29205329E0C01D4 /* LLRouter+ShortCut.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 0444111BF4AB96C3A12B64159E0E5728 /* YYCategoriesMacro.h in Headers */ = {isa = PBXBuildFile; fileRef = 58070842DD72A3D1C0A9C4135133D62C /* YYCategoriesMacro.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 045D1B79D4A0A6C3766E33B8176AE80A /* GCDTimer.m in Sources */ = {isa = PBXBuildFile; fileRef = 8314AB8D3F9A10F8AC6C7C5C432CDD81 /* GCDTimer.m */; }; + 046C8CF4F5BC1F8F7AEB535E1FB5CFF9 /* TADotView.m in Sources */ = {isa = PBXBuildFile; fileRef = E693E4401A900A1D6F614D2499EACDC6 /* TADotView.m */; }; + 04A6A10D7D31E14B450F8368F54C9A21 /* Svga.pbobjc.m in Sources */ = {isa = PBXBuildFile; fileRef = 54895662330D0B655500AE0805959BFA /* Svga.pbobjc.m */; settings = {COMPILER_FLAGS = "-fno-objc-arc"; }; }; 04BE71321B8DA19CF1683869A64D99CA /* TUIJoinGroupMessageCell_Minimalist.m in Sources */ = {isa = PBXBuildFile; fileRef = 2BB9B6BCE9C815DF362E7DC0F1CFEFF5 /* TUIJoinGroupMessageCell_Minimalist.m */; }; 04D1BC095B4E3A7F44BADB514002A9FE /* TUIChat_Minimalist.h in Headers */ = {isa = PBXBuildFile; fileRef = 3E862A46EBB0A2B61CF942F373DB8E7E /* TUIChat_Minimalist.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 04EE234B1FAA2D40166722FCBC308152 /* lossless.c in Sources */ = {isa = PBXBuildFile; fileRef = AA84C9E918A8EB359CBF8F936A50EBD7 /* lossless.c */; settings = {COMPILER_FLAGS = "-D_THREAD_SAFE -fno-objc-arc"; }; }; - 04EE87FCC8246E4608BC172E9C9FFE46 /* LLHierarchyHelper.m in Sources */ = {isa = PBXBuildFile; fileRef = B7492E14C2FD946DFC80BE5BDC0BD97D /* LLHierarchyHelper.m */; }; + 04DA9B183DBDD000F079CBCC78BC8DBD /* SDWebImageCacheSerializer.m in Sources */ = {isa = PBXBuildFile; fileRef = 881A35A4B8A8F46F01049907FE90A46E /* SDWebImageCacheSerializer.m */; }; + 04EE87FCC8246E4608BC172E9C9FFE46 /* LLHierarchyHelper.m in Sources */ = {isa = PBXBuildFile; fileRef = 172CB44B04B81500A3896C8F1EA66C29 /* LLHierarchyHelper.m */; }; 0510DA7DC69F1F3AD18B5CD84760F1CC /* TUIJoinGroupMessageCellData.h in Headers */ = {isa = PBXBuildFile; fileRef = 71E0BAB2367D690A75FFCD2C3E3E476B /* TUIJoinGroupMessageCellData.h */; settings = {ATTRIBUTES = (Public, ); }; }; 0522FA5AF95D589B84A2B57A19F050BD /* TUIMessageMultiChooseView.m in Sources */ = {isa = PBXBuildFile; fileRef = F72A0DD575031488E86ADFFE85794378 /* TUIMessageMultiChooseView.m */; }; - 052ACFE9C87A7A8738AC8CCB3D5D418C /* GPBUnknownField.m in Sources */ = {isa = PBXBuildFile; fileRef = 3CC6D578DAE943369C7E725198632A3B /* GPBUnknownField.m */; settings = {COMPILER_FLAGS = "-fno-objc-arc"; }; }; - 05451F7FC8A2CC518BE1396FF087AD5F /* UIImage+Metadata.h in Headers */ = {isa = PBXBuildFile; fileRef = D730BBEFDCB616A1B9384EB1AD574C0C /* UIImage+Metadata.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 054C3B2C429E6F3BDCDA2A480D917F51 /* RACMulticastConnection.m in Sources */ = {isa = PBXBuildFile; fileRef = 0F688F191EA28E7570EBEA4FBE37E761 /* RACMulticastConnection.m */; }; - 055736782AAD8B8195A070333A213447 /* LLHierarchyViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = DBEACBCBDF9395A22CD3ABF281B25FE7 /* LLHierarchyViewController.m */; }; - 055D20B1E5A4A78B6D22C5A48D6A8281 /* QGMP4AnimatedImageFrame.m in Sources */ = {isa = PBXBuildFile; fileRef = 71B6E3BFC980212235D7C7FB0F5B15BF /* QGMP4AnimatedImageFrame.m */; }; - 056A961481F6100D2E63324FFDCCD88A /* UIColor+YYAdd.m in Sources */ = {isa = PBXBuildFile; fileRef = B39C83EB922B636956FE5F2D8F8A7DF4 /* UIColor+YYAdd.m */; }; + 052ACFE9C87A7A8738AC8CCB3D5D418C /* GPBUnknownField.m in Sources */ = {isa = PBXBuildFile; fileRef = 243DC8BA4219B00A2990C1B28A76E955 /* GPBUnknownField.m */; settings = {COMPILER_FLAGS = "-fno-objc-arc"; }; }; + 0539344547B401F1BEBFE46D6B96B1DD /* PrivacyInfo.xcprivacy in Resources */ = {isa = PBXBuildFile; fileRef = 82D0B465906E5E076DB9061E7138AB4D /* PrivacyInfo.xcprivacy */; }; + 054C3B2C429E6F3BDCDA2A480D917F51 /* RACMulticastConnection.m in Sources */ = {isa = PBXBuildFile; fileRef = 42C728A59C0AE226E37593713492404B /* RACMulticastConnection.m */; }; + 055736782AAD8B8195A070333A213447 /* LLHierarchyViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 665C51535F2E4D888446AA4C1D24119E /* LLHierarchyViewController.m */; }; + 055D20B1E5A4A78B6D22C5A48D6A8281 /* QGMP4AnimatedImageFrame.m in Sources */ = {isa = PBXBuildFile; fileRef = 0861D83E5928C4E8173B6F9299FC22B0 /* QGMP4AnimatedImageFrame.m */; }; + 056A961481F6100D2E63324FFDCCD88A /* UIColor+YYAdd.m in Sources */ = {isa = PBXBuildFile; fileRef = FCFA60F1F51C283C6ECE3B9E71BDC520 /* UIColor+YYAdd.m */; }; 056F6418DC7AB1BEA0337EFB57417A65 /* TUIJoinGroupMessageCell.m in Sources */ = {isa = PBXBuildFile; fileRef = 07FF34D98319B5F3FE027B7F4450B6F8 /* TUIJoinGroupMessageCell.m */; }; + 0573730A4CBED9C08E82C50578D1E6ED /* UIView+TUIUtil.h in Headers */ = {isa = PBXBuildFile; fileRef = 158FE2BF1C4A02316B39C4ED2FD86230 /* UIView+TUIUtil.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 0578DCDC4D372FC2891B10CF99316202 /* QCloudError.m in Sources */ = {isa = PBXBuildFile; fileRef = 94F066A7E04C103261B7E99EEC47E974 /* QCloudError.m */; }; 058AB7EAD404A5619F9591AB797BE7CB /* TUIConversationSelectDataProvider_Minimalist.m in Sources */ = {isa = PBXBuildFile; fileRef = 21169C94E627784A07C82A02EAA0C0B8 /* TUIConversationSelectDataProvider_Minimalist.m */; }; - 05A1DD44EA26C531351AE28F1AC9AFF4 /* SDImageFrame.m in Sources */ = {isa = PBXBuildFile; fileRef = 6C7EC0BEBF4146846D1466985703C640 /* SDImageFrame.m */; }; - 05B32EB25A1A47DAF64D349652FFB740 /* UIApplication+YYAdd.h in Headers */ = {isa = PBXBuildFile; fileRef = CA028D2D69AD590A9E195B0056E84645 /* UIApplication+YYAdd.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 05B4094BACE6C2B5855A82D6FE99D075 /* OSSPutObjectTaggingRequest.m in Sources */ = {isa = PBXBuildFile; fileRef = 722BE7E177F875A3DC306C0D6F9CFECD /* OSSPutObjectTaggingRequest.m */; }; - 05C72493BC22CB7BA10670ACB0EC8023 /* YYTextDebugOption.m in Sources */ = {isa = PBXBuildFile; fileRef = 17A2EE449522DCED16FF69CB080F8B07 /* YYTextDebugOption.m */; }; - 05E2B7C1DB7528A0BBEA1521BE0DBAF1 /* MASViewAttribute.h in Headers */ = {isa = PBXBuildFile; fileRef = 5EB57D9635A33A33212E093AF52E5728 /* MASViewAttribute.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 05E4F203EF130676D1AE838809EDE646 /* OSSGetObjectTaggingResult.m in Sources */ = {isa = PBXBuildFile; fileRef = D5258A8F9600058612450C0A2D0ADDFD /* OSSGetObjectTaggingResult.m */; }; - 05EEA40D460AB9A5A6E8D33AAAEF801E /* JXPagingView-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = CF22ACA36E6E1D4341A21AC7BDB8234B /* JXPagingView-dummy.m */; }; - 05F22F8B6A39ADEE5F919070E6B2B869 /* UITextField+RACSignalSupport.m in Sources */ = {isa = PBXBuildFile; fileRef = D4633C889866FADCB396805A32962CA8 /* UITextField+RACSignalSupport.m */; }; + 0590068A814D004531EFF9F43F8F4F93 /* SDAnimatedImageRep.h in Headers */ = {isa = PBXBuildFile; fileRef = 5BA80F3843FD77DE4AE38E0BB6FD35AD /* SDAnimatedImageRep.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 05A211C03572D49EC9098ED963EA724D /* sharpyuv_cpu.h in Headers */ = {isa = PBXBuildFile; fileRef = 4545EA2AC0F863D487A9A624FC563DB0 /* sharpyuv_cpu.h */; settings = {ATTRIBUTES = (Project, ); }; }; + 05B32EB25A1A47DAF64D349652FFB740 /* UIApplication+YYAdd.h in Headers */ = {isa = PBXBuildFile; fileRef = E3C7F134F837A97CB0F6E17B8B02C872 /* UIApplication+YYAdd.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 05B4094BACE6C2B5855A82D6FE99D075 /* OSSPutObjectTaggingRequest.m in Sources */ = {isa = PBXBuildFile; fileRef = 83D296A06C346620040962D0D749D156 /* OSSPutObjectTaggingRequest.m */; }; + 05C72493BC22CB7BA10670ACB0EC8023 /* YYTextDebugOption.m in Sources */ = {isa = PBXBuildFile; fileRef = 28D40F6CCEE48E207E41579351042FC2 /* YYTextDebugOption.m */; }; + 05E2B7C1DB7528A0BBEA1521BE0DBAF1 /* MASViewAttribute.h in Headers */ = {isa = PBXBuildFile; fileRef = E94961F742C6507D2C08B64FAA14C0D4 /* MASViewAttribute.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 05E4F203EF130676D1AE838809EDE646 /* OSSGetObjectTaggingResult.m in Sources */ = {isa = PBXBuildFile; fileRef = 0535C9DCAC87747CACE1185DA0AFD5FB /* OSSGetObjectTaggingResult.m */; }; + 05EEA40D460AB9A5A6E8D33AAAEF801E /* JXPagingView-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = D8929906F89FB8657A7846E55F6C8457 /* JXPagingView-dummy.m */; }; + 05F22F8B6A39ADEE5F919070E6B2B869 /* UITextField+RACSignalSupport.m in Sources */ = {isa = PBXBuildFile; fileRef = D22A05C657A520EB1959789447F57706 /* UITextField+RACSignalSupport.m */; }; 0606D1B69C8826F556E3328BC14CA8D9 /* TUIMessageBaseDataProvider.m in Sources */ = {isa = PBXBuildFile; fileRef = 697AEFBA3C443378CEFAA38443DED2CE /* TUIMessageBaseDataProvider.m */; }; - 0606D6D0FE9E82FD3A43261A0E545C6E /* LLScreenshotHelper.h in Headers */ = {isa = PBXBuildFile; fileRef = 71F034516BC7947B34EB22C661C2C03F /* LLScreenshotHelper.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 0606D6D0FE9E82FD3A43261A0E545C6E /* LLScreenshotHelper.h in Headers */ = {isa = PBXBuildFile; fileRef = 2FC9C62187F90EFF84B6BBA08E6FC0DD /* LLScreenshotHelper.h */; settings = {ATTRIBUTES = (Public, ); }; }; 060BB4B944FC6A87F6E993FD5095F6B6 /* BRPickerView-BRPickerView.Privacy in Resources */ = {isa = PBXBuildFile; fileRef = B5786D7DC0F4D5F19C5C3E4160C54D30 /* BRPickerView-BRPickerView.Privacy */; }; - 0622EE2BB509D7BB8BE2E89B19D1C5DF /* OSSPutObjectTaggingResult.h in Headers */ = {isa = PBXBuildFile; fileRef = 56BAFE6EA4F60EFE92A698548CDFCF6F /* OSSPutObjectTaggingResult.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 0622EE2BB509D7BB8BE2E89B19D1C5DF /* OSSPutObjectTaggingResult.h in Headers */ = {isa = PBXBuildFile; fileRef = 0AF58878DCB0DD0EDCDC248201356A28 /* OSSPutObjectTaggingResult.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 06309CC6E70311DEDC6A0C3ABBBF87D9 /* NSDate+QCloudInternetDateTime.m in Sources */ = {isa = PBXBuildFile; fileRef = E276FA7218F50593335C26AA37A9A7AF /* NSDate+QCloudInternetDateTime.m */; }; + 069ECDAFABEE824193CEA4B107114A92 /* SDWebImage.h in Headers */ = {isa = PBXBuildFile; fileRef = 04F2E273AD98B5402439CC78936C5217 /* SDWebImage.h */; settings = {ATTRIBUTES = (Public, ); }; }; 06AB20CCE84FE4E65BB0C4B21D5EF159 /* TUIBaseChatViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 80982FE688D1717632F9A64839F7AF6F /* TUIBaseChatViewController.m */; }; 06AD72CCA3AF39BC663C5323D0B94276 /* TUIGroupNoticeCellData.m in Sources */ = {isa = PBXBuildFile; fileRef = 2CC2A638F8CCA07A3B663837CDF7B381 /* TUIGroupNoticeCellData.m */; }; - 06BCDDE08C148024F75AC922D6EF1A58 /* FMDatabaseAdditions.m in Sources */ = {isa = PBXBuildFile; fileRef = BCC9D0A8697B7A2AC3B8D6D3F5DD4623 /* FMDatabaseAdditions.m */; }; - 06C2DCBE28F39C4A651BAE857B1E36CA /* SDWebImageTransition.m in Sources */ = {isa = PBXBuildFile; fileRef = D47B53D2485EEE90A13BA750C09AEB9F /* SDWebImageTransition.m */; }; - 06CF9BA7F1218B957233F4416B218154 /* CLLocationManager+LL_Location.m in Sources */ = {isa = PBXBuildFile; fileRef = 03697A5DCCE59E99B6D859C322B2BD81 /* CLLocationManager+LL_Location.m */; }; - 070E3B8CFECA2B7EFF61B256763C1386 /* LLRulerViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = F3FD7DBCFAAD619E4C1CFD8A572F0FD1 /* LLRulerViewController.m */; }; - 0744FF91BD34CBF21804DD175227A3D0 /* IQUITextFieldView+Additions.m in Sources */ = {isa = PBXBuildFile; fileRef = DD726CADA9E7CF526575271D5B097352 /* IQUITextFieldView+Additions.m */; }; + 06B034A8AFB8F0E0EB5FB8E502DDB584 /* SDImageIOAnimatedCoder.m in Sources */ = {isa = PBXBuildFile; fileRef = 53A7C6BE80C8D1B02CBB4B203B4AE16D /* SDImageIOAnimatedCoder.m */; }; + 06BCDDE08C148024F75AC922D6EF1A58 /* FMDatabaseAdditions.m in Sources */ = {isa = PBXBuildFile; fileRef = D57C815FBA33C1D6AA386287678BE074 /* FMDatabaseAdditions.m */; }; + 06CF9BA7F1218B957233F4416B218154 /* CLLocationManager+LL_Location.m in Sources */ = {isa = PBXBuildFile; fileRef = FF7C05E57A441420C8F62811D382304B /* CLLocationManager+LL_Location.m */; }; + 06D0B030FAEB10438716F1B1BD719E11 /* QCloudCOSXMLService+Transfer.h in Headers */ = {isa = PBXBuildFile; fileRef = 98540D1B92D5723A142D1F8AD54D2598 /* QCloudCOSXMLService+Transfer.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 06E0D3305D7A3F345F208F6B33F570D9 /* iterator_enc.c in Sources */ = {isa = PBXBuildFile; fileRef = E91D275F6375A2DEB0BBE4068CE1806B /* iterator_enc.c */; settings = {COMPILER_FLAGS = "-D_THREAD_SAFE -fno-objc-arc"; }; }; + 070E3B8CFECA2B7EFF61B256763C1386 /* LLRulerViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = AAC766598D2FF55AAF23A0F6A46B9A60 /* LLRulerViewController.m */; }; + 0744FF91BD34CBF21804DD175227A3D0 /* IQUITextFieldView+Additions.m in Sources */ = {isa = PBXBuildFile; fileRef = E0946C8F07FB91900E9A1ED32E7D8BE8 /* IQUITextFieldView+Additions.m */; }; + 075C3CFB37A49F29F651E393ACB77E58 /* QCloudRequestSerializer.h in Headers */ = {isa = PBXBuildFile; fileRef = 10266C441AF75A2B9A82E1643B116C5A /* QCloudRequestSerializer.h */; settings = {ATTRIBUTES = (Public, ); }; }; 076B3A86841458B724ACC94708C491CA /* TUIChatObjectFactory_Minimalist.h in Headers */ = {isa = PBXBuildFile; fileRef = CB756318698F305B068777B81A551965 /* TUIChatObjectFactory_Minimalist.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 078A128AD9AE4BADFFBECB900B75FE2F /* MQTTSession.m in Sources */ = {isa = PBXBuildFile; fileRef = 54BB0D7D6F853CA4875A588BB976B0A7 /* MQTTSession.m */; }; + 078A128AD9AE4BADFFBECB900B75FE2F /* MQTTSession.m in Sources */ = {isa = PBXBuildFile; fileRef = DC88F1CA2915BE4BCD3F2EE692E2BB84 /* MQTTSession.m */; }; 078B5A62D6C961D2D3A839562D6CD352 /* TUIChatDataProvider.m in Sources */ = {isa = PBXBuildFile; fileRef = 79BDF63877BF7277102F6279C283A3FC /* TUIChatDataProvider.m */; }; - 07AEAEDEB8A50365A17143861C5FB4A8 /* alpha_dec.c in Sources */ = {isa = PBXBuildFile; fileRef = 80F60B3CBE5F9E587140DB5C4FFB26D9 /* alpha_dec.c */; settings = {COMPILER_FLAGS = "-D_THREAD_SAFE -fno-objc-arc"; }; }; 07BBE14D13B2308935A86FF8EA90E958 /* TUIMediaCollectionCell_Minimalist.h in Headers */ = {isa = PBXBuildFile; fileRef = 3EB6806CDE099CA882C42A8D9F13365C /* TUIMediaCollectionCell_Minimalist.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 07D14B5EF1995A49B3159DB7DF129208 /* YYWebImageManager.m in Sources */ = {isa = PBXBuildFile; fileRef = AA08BF9F59DD8D7D975269572F90DE81 /* YYWebImageManager.m */; }; - 07F10CC389188E48EB14C281BB9BE6E8 /* NSMutableDictionary+AvoidCrash.m in Sources */ = {isa = PBXBuildFile; fileRef = 7B214FF6F0B5DF058EAB84CBA5CB49C1 /* NSMutableDictionary+AvoidCrash.m */; }; - 07F1E9EB27EB1A6C663B9E6B488F72C7 /* TZVideoCropController.h in Headers */ = {isa = PBXBuildFile; fileRef = E02357F6C56C7E274CAEBE2B4A112E34 /* TZVideoCropController.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 07F7D99F876DB8E82AB1370D7714DC2F /* common_sse41.h in Headers */ = {isa = PBXBuildFile; fileRef = 644C5E1632EC58931811708AC07F12B3 /* common_sse41.h */; settings = {ATTRIBUTES = (Project, ); }; }; - 07FD4096630F531BD78D2B7E77D9D8DB /* OSSXMLDictionary.h in Headers */ = {isa = PBXBuildFile; fileRef = FC9FCF9EAB97503DBEE7531816122FA1 /* OSSXMLDictionary.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 081726C9B0A5BB4448B5DA4AAECF90ED /* LLShortCutModel.h in Headers */ = {isa = PBXBuildFile; fileRef = 39412F2E342F45004F168645F67B7C47 /* LLShortCutModel.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 081A184B4D49DE347719C16C538A591E /* MQTTCFSocketTransport.m in Sources */ = {isa = PBXBuildFile; fileRef = EA8C7406B301BE8273410FBC2AD62032 /* MQTTCFSocketTransport.m */; }; - 081F5490E6DEE4DE765BE89AC4EC8288 /* OSSIPv6PrefixResolver.h in Headers */ = {isa = PBXBuildFile; fileRef = 1C7FF4E56FB57E68D16A5E3145BCF530 /* OSSIPv6PrefixResolver.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 082304C1BACED3CCD06217A48ADA64C9 /* UIImage+Transform.m in Sources */ = {isa = PBXBuildFile; fileRef = EBD2B361A3238AD29CDE2377784A4314 /* UIImage+Transform.m */; }; - 0841A8F711A24B7F373A5B2E7DCA7F90 /* LLCrashDetailViewController.h in Headers */ = {isa = PBXBuildFile; fileRef = 4193A35FC3320885BA47232C75963539 /* LLCrashDetailViewController.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 0843F940A222F1D9369AF3767BF59178 /* filters_utils.h in Headers */ = {isa = PBXBuildFile; fileRef = ABB282F8C620DBE4956E8CE56054EEEE /* filters_utils.h */; settings = {ATTRIBUTES = (Project, ); }; }; - 08699A51E1CCDD2B8DD889A284ABE884 /* RACEXTScope.h in Headers */ = {isa = PBXBuildFile; fileRef = FCBB6DFD6A58E8B6100BF172DEA7EBA8 /* RACEXTScope.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 08719ABCE689ED74FE7486B1E49DAA6C /* MJRefreshBackStateFooter.h in Headers */ = {isa = PBXBuildFile; fileRef = 6D3CDD13D69DD4A561025ED3F2249C6A /* MJRefreshBackStateFooter.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 07C58DE9392386C0CBF63F1179A99C25 /* unzip.h in Headers */ = {isa = PBXBuildFile; fileRef = CCEF3A19E5C884D4C24EEEE3EE8E158C /* unzip.h */; settings = {ATTRIBUTES = (Project, ); }; }; + 07D14B5EF1995A49B3159DB7DF129208 /* YYWebImageManager.m in Sources */ = {isa = PBXBuildFile; fileRef = E97716D3E37FCB503F0F6021923CF88E /* YYWebImageManager.m */; }; + 07F10CC389188E48EB14C281BB9BE6E8 /* NSMutableDictionary+AvoidCrash.m in Sources */ = {isa = PBXBuildFile; fileRef = B652FC8625E543BC390939A913ABDD71 /* NSMutableDictionary+AvoidCrash.m */; }; + 07F1E9EB27EB1A6C663B9E6B488F72C7 /* TZVideoCropController.h in Headers */ = {isa = PBXBuildFile; fileRef = 30D725B5B1C3152F5DB42BF6D2B60526 /* TZVideoCropController.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 07FD4096630F531BD78D2B7E77D9D8DB /* OSSXMLDictionary.h in Headers */ = {isa = PBXBuildFile; fileRef = 6C62CC8D6160F965F50F122A7F6F7EC0 /* OSSXMLDictionary.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 081726C9B0A5BB4448B5DA4AAECF90ED /* LLShortCutModel.h in Headers */ = {isa = PBXBuildFile; fileRef = 25B3E2E0C6804514CD853C7F052941F7 /* LLShortCutModel.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 081A184B4D49DE347719C16C538A591E /* MQTTCFSocketTransport.m in Sources */ = {isa = PBXBuildFile; fileRef = 2EF6FDC981A4DFD81282292B2893DB0A /* MQTTCFSocketTransport.m */; }; + 081F5490E6DEE4DE765BE89AC4EC8288 /* OSSIPv6PrefixResolver.h in Headers */ = {isa = PBXBuildFile; fileRef = F45376A94E516AF1D7060549269A6A5A /* OSSIPv6PrefixResolver.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 0841A8F711A24B7F373A5B2E7DCA7F90 /* LLCrashDetailViewController.h in Headers */ = {isa = PBXBuildFile; fileRef = 06F8B9EBC43764C462B974042FB30306 /* LLCrashDetailViewController.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 08699A51E1CCDD2B8DD889A284ABE884 /* RACEXTScope.h in Headers */ = {isa = PBXBuildFile; fileRef = 3C92B0D5A5DC08D351EAC1B4DFB9BDBB /* RACEXTScope.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 08719ABCE689ED74FE7486B1E49DAA6C /* MJRefreshBackStateFooter.h in Headers */ = {isa = PBXBuildFile; fileRef = 9B1559F7D5A38D19DF602A367B89383A /* MJRefreshBackStateFooter.h */; settings = {ATTRIBUTES = (Public, ); }; }; 0895CC7804D677B0811493338E315A7C /* TUIChat-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = 17F101A8D76A7CB07D0256337B955E80 /* TUIChat-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 08C82A50A8F66398B67DE2323EBF0788 /* GPBWireFormat.m in Sources */ = {isa = PBXBuildFile; fileRef = 4B419F69AB9F77AFCEFA32FD565D3F52 /* GPBWireFormat.m */; settings = {COMPILER_FLAGS = "-fno-objc-arc"; }; }; - 08CE50255C337E1B09D84BA4D501F7D1 /* TUIDarkModel.h in Headers */ = {isa = PBXBuildFile; fileRef = D0CE18216B8392E2C506407533674D7C /* TUIDarkModel.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 08E8B7ECC821E18E4B5B4F746E7337CD /* UIRefreshControl+RACCommandSupport.m in Sources */ = {isa = PBXBuildFile; fileRef = 24726EDF04425EB9268BBF0BE35F2019 /* UIRefreshControl+RACCommandSupport.m */; }; - 08EA26BFDA9DCFAB1FDD4B0B7B435D0E /* NSInputStream+LL_Network.m in Sources */ = {isa = PBXBuildFile; fileRef = A08F8B16492370DB9F28EB5099110A4E /* NSInputStream+LL_Network.m */; }; - 08EE826653BB71774A3FB8368D8F3409 /* GPBProtocolBuffers.h in Headers */ = {isa = PBXBuildFile; fileRef = 8F0885D551896D4DBE9DA887B6221629 /* GPBProtocolBuffers.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 08C82A50A8F66398B67DE2323EBF0788 /* GPBWireFormat.m in Sources */ = {isa = PBXBuildFile; fileRef = 6C0509771CA56E87CDB37DD602D88F36 /* GPBWireFormat.m */; settings = {COMPILER_FLAGS = "-fno-objc-arc"; }; }; + 08E8B7ECC821E18E4B5B4F746E7337CD /* UIRefreshControl+RACCommandSupport.m in Sources */ = {isa = PBXBuildFile; fileRef = 26BEDB39DD6E60FF7D064ED631198FA5 /* UIRefreshControl+RACCommandSupport.m */; }; + 08EA26BFDA9DCFAB1FDD4B0B7B435D0E /* NSInputStream+LL_Network.m in Sources */ = {isa = PBXBuildFile; fileRef = 10DCB2538262102141069397DEEEEE4B /* NSInputStream+LL_Network.m */; }; + 08EE826653BB71774A3FB8368D8F3409 /* GPBProtocolBuffers.h in Headers */ = {isa = PBXBuildFile; fileRef = 0169D03841D66672B8F22279621EA8C5 /* GPBProtocolBuffers.h */; settings = {ATTRIBUTES = (Public, ); }; }; 08F1C412908D15736E3A366206CEF8F3 /* TUIMovieManager.m in Sources */ = {isa = PBXBuildFile; fileRef = 86EF6079A5879D7E6318E373FCC98304 /* TUIMovieManager.m */; }; - 08FA425F56B11AEB51D5C905ADEAB40F /* UITextField+YYAdd.m in Sources */ = {isa = PBXBuildFile; fileRef = F672B2747776908BD811039768BC3E30 /* UITextField+YYAdd.m */; }; - 090CC8DB2713055B65F3693A67A9F0AF /* mz_zip_rw.c in Sources */ = {isa = PBXBuildFile; fileRef = 15860ADA4F37D1ADAED9FD137CFFCDEA /* mz_zip_rw.c */; }; - 091D627CF1F8ADDB1170D46DC9856F46 /* MQTTSession.h in Headers */ = {isa = PBXBuildFile; fileRef = B3D33CA776B0C7A667FEC2DA58D0DD92 /* MQTTSession.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 0975B13671C78F589FD8C34DD5A2B7A0 /* ConsoleView.swift in Sources */ = {isa = PBXBuildFile; fileRef = E4FF19D5317D1ED5C5188BF89D337F6A /* ConsoleView.swift */; }; - 09A436E68E1A09D43D40F7107B5F33DF /* LLSandboxViewController.h in Headers */ = {isa = PBXBuildFile; fileRef = 1C5EABFA1248704C4935F55A44D0FEAF /* LLSandboxViewController.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 09CD09FD9FC0592B912E0E99B9958EDC /* LLAnimateView.h in Headers */ = {isa = PBXBuildFile; fileRef = 4BFBC22DC52C1A898920DEFF886A4646 /* LLAnimateView.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 09E767931055798FD93E0FA0B8DED95D /* LLJsonTool.m in Sources */ = {isa = PBXBuildFile; fileRef = DFB59CF852C889E6D49871A7FB1EF503 /* LLJsonTool.m */; }; - 09FF77340E8ABB3E4FE1FEAD1BC171B9 /* QGVAPMetalUtil.m in Sources */ = {isa = PBXBuildFile; fileRef = 33B08BAA0B5F97E5E3CE46628C420C4E /* QGVAPMetalUtil.m */; }; + 08FA425F56B11AEB51D5C905ADEAB40F /* UITextField+YYAdd.m in Sources */ = {isa = PBXBuildFile; fileRef = 10CB15319D4C89805ABB80E01AEAC917 /* UITextField+YYAdd.m */; }; + 090CC8DB2713055B65F3693A67A9F0AF /* mz_zip_rw.c in Sources */ = {isa = PBXBuildFile; fileRef = C2ED0C934174CAE9C38C71D4CB9A9BA5 /* mz_zip_rw.c */; }; + 091D627CF1F8ADDB1170D46DC9856F46 /* MQTTSession.h in Headers */ = {isa = PBXBuildFile; fileRef = DE87CFB112405397BCD68F780C06DF6E /* MQTTSession.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 093AF0B4A65FFDCAF7FA05D926A5FBAB /* UIColor+TUIHexColor.m in Sources */ = {isa = PBXBuildFile; fileRef = 3BF3B905DD277678DFA482F73C17846C /* UIColor+TUIHexColor.m */; }; + 0975B13671C78F589FD8C34DD5A2B7A0 /* ConsoleView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 30D3FDFB4CB22F098F35BDBFF98C848D /* ConsoleView.swift */; }; + 09A436E68E1A09D43D40F7107B5F33DF /* LLSandboxViewController.h in Headers */ = {isa = PBXBuildFile; fileRef = 5101A4F82BD63A4B88949CE1AB209586 /* LLSandboxViewController.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 09CD09FD9FC0592B912E0E99B9958EDC /* LLAnimateView.h in Headers */ = {isa = PBXBuildFile; fileRef = 38F54560F4FAB326B5C0AD5AEBB34000 /* LLAnimateView.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 09E7156724157A8D17031A8C7EB94C80 /* NSBezierPath+SDRoundedCorners.h in Headers */ = {isa = PBXBuildFile; fileRef = 37FBF5391BBB5280F15041DE59EAE7F9 /* NSBezierPath+SDRoundedCorners.h */; settings = {ATTRIBUTES = (Private, ); }; }; + 09E767931055798FD93E0FA0B8DED95D /* LLJsonTool.m in Sources */ = {isa = PBXBuildFile; fileRef = DBF1CE0031A290FECB43DFFD0E208746 /* LLJsonTool.m */; }; + 09FF77340E8ABB3E4FE1FEAD1BC171B9 /* QGVAPMetalUtil.m in Sources */ = {isa = PBXBuildFile; fileRef = 94F1A20F3CF3CA9B5FEE05BC72495CF0 /* QGVAPMetalUtil.m */; }; 0A2B82C64D6AD021DD27AB5121204723 /* TUIChatExtensionObserver_Minimalist.h in Headers */ = {isa = PBXBuildFile; fileRef = 2B28F74266AC1DF20798935654BBEB03 /* TUIChatExtensionObserver_Minimalist.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 0A4B2CC947F7739D7F3B995A5EA111CD /* NSTimer+YYAdd.h in Headers */ = {isa = PBXBuildFile; fileRef = 31D03D99C57F9ACA9A16C6FC6AB13652 /* NSTimer+YYAdd.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 0A543346E663B7BA3CC071AA92390EB4 /* TADotView.h in Headers */ = {isa = PBXBuildFile; fileRef = A25CBD3B81EE4193B886C64BB99F4E21 /* TADotView.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 0A4B2CC947F7739D7F3B995A5EA111CD /* NSTimer+YYAdd.h in Headers */ = {isa = PBXBuildFile; fileRef = 5F51F3BE189188690CCAEA6FE1A67ECA /* NSTimer+YYAdd.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 0A543346E663B7BA3CC071AA92390EB4 /* TADotView.h in Headers */ = {isa = PBXBuildFile; fileRef = 6ED6A5A48786AF8C96B4DD152146C3B2 /* TADotView.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 0A5DA4F69A145D63C10D667C1410245E /* QCloudSHAPart.m in Sources */ = {isa = PBXBuildFile; fileRef = F8039AB6180055886058E02816803572 /* QCloudSHAPart.m */; }; 0A5DBEEEBB323F41C4F572435D59455C /* TUIRepliesDetailViewController_Minimalist.m in Sources */ = {isa = PBXBuildFile; fileRef = B806B2B3C57CE699810BCE2A2F244814 /* TUIRepliesDetailViewController_Minimalist.m */; }; - 0A8D9AC2B8F9313FA1E0766D228E2633 /* YBIBDefaultWebImageMediator.h in Headers */ = {isa = PBXBuildFile; fileRef = 23F44CAF0546D581DC68E8E12AAD674C /* YBIBDefaultWebImageMediator.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 0AA1842830C770B1E299BAC977E813D9 /* JXCategoryIndicatorRainbowLineView.h in Headers */ = {isa = PBXBuildFile; fileRef = 56039E928BC98914D3D7BC3588147DDE /* JXCategoryIndicatorRainbowLineView.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 0AB3E68B0D75E2E12EFA2719137B82E8 /* OSSRestoreObjectRequest.h in Headers */ = {isa = PBXBuildFile; fileRef = E38F77FBF70FE78E3F9C884F2A239974 /* OSSRestoreObjectRequest.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 0ABA5238D75A3BBD5BC762B8983164F8 /* GPBUtilities.h in Headers */ = {isa = PBXBuildFile; fileRef = 6D917E7C268683BBDB19CF1CA24802F2 /* GPBUtilities.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 0AD0DA7E3EF0417207A3284FCE002F24 /* NSMutableData+OSS_CRC.h in Headers */ = {isa = PBXBuildFile; fileRef = 5DFC64AD2C17C3AA6FE573958757156C /* NSMutableData+OSS_CRC.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 0AE01A7B4911F5F10E97A56F0881F02A /* SDImageIOAnimatedCoder.m in Sources */ = {isa = PBXBuildFile; fileRef = CD87398022E36EB461F2985C62E47454 /* SDImageIOAnimatedCoder.m */; }; - 0AF16F084FDB6E84677C4692CD931EE6 /* TAAbstractDotView.m in Sources */ = {isa = PBXBuildFile; fileRef = B4F0278AE29B9C08CEF13C303B90CAF3 /* TAAbstractDotView.m */; }; + 0A8D9AC2B8F9313FA1E0766D228E2633 /* YBIBDefaultWebImageMediator.h in Headers */ = {isa = PBXBuildFile; fileRef = 89A330FE3DA0F43B36B7988FB367518D /* YBIBDefaultWebImageMediator.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 0A9F5206A2D928EA62F82C819657C307 /* NSObject+QCloudModel.h in Headers */ = {isa = PBXBuildFile; fileRef = 57F3287EB8E962EA0BE79F87076D6CBA /* NSObject+QCloudModel.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 0AA1842830C770B1E299BAC977E813D9 /* JXCategoryIndicatorRainbowLineView.h in Headers */ = {isa = PBXBuildFile; fileRef = 1E7586DE1167AFED1753C420B434C34F /* JXCategoryIndicatorRainbowLineView.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 0AB3E68B0D75E2E12EFA2719137B82E8 /* OSSRestoreObjectRequest.h in Headers */ = {isa = PBXBuildFile; fileRef = F4BFE503E4A73ED6B5425D791B013C99 /* OSSRestoreObjectRequest.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 0ABA5238D75A3BBD5BC762B8983164F8 /* GPBUtilities.h in Headers */ = {isa = PBXBuildFile; fileRef = 251EC03870BC0F85091C303842ADABCA /* GPBUtilities.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 0AD0DA7E3EF0417207A3284FCE002F24 /* NSMutableData+OSS_CRC.h in Headers */ = {isa = PBXBuildFile; fileRef = 5FA491F71D09EE8210D0037DE3363926 /* NSMutableData+OSS_CRC.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 0AF16F084FDB6E84677C4692CD931EE6 /* TAAbstractDotView.m in Sources */ = {isa = PBXBuildFile; fileRef = FF204A05CB1AB49D5DEB4BA6464A401E /* TAAbstractDotView.m */; }; + 0AF57A4BD4A6B4007E6FD97574A82A96 /* SDWeakProxy.m in Sources */ = {isa = PBXBuildFile; fileRef = EF93B3640C08C144E0F52756EA96E8D3 /* SDWeakProxy.m */; }; + 0B2C0C6E52131850FFC3AB6938F76696 /* QCloudListMultipartRequest.h in Headers */ = {isa = PBXBuildFile; fileRef = 3617FB84BF477BCEC32EF2265F46D63E /* QCloudListMultipartRequest.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 0B44789CD43ABF50D32D1DD80E7019EB /* QCloudFileUtils.m in Sources */ = {isa = PBXBuildFile; fileRef = 3B2A9C92B1C203189E192C03AF2AB8EA /* QCloudFileUtils.m */; }; 0B6AB62DF2896F3ADF534A9E2066A508 /* TUIVoiceReplyQuoteViewData.h in Headers */ = {isa = PBXBuildFile; fileRef = FCBBA7230A43A051A289DA1A6EDB8017 /* TUIVoiceReplyQuoteViewData.h */; settings = {ATTRIBUTES = (Public, ); }; }; 0B82E27A0B4B19E561A1FCF1C6D228EF /* MapKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = A6BC76762F8D52042C42AB6BF970FEED /* MapKit.framework */; }; - 0B9E6CDDBDBB0D3B723481714B3C6FD0 /* yuv_mips_dsp_r2.c in Sources */ = {isa = PBXBuildFile; fileRef = 40F75BB15FB44DEB1E68FEB6BCEBD91F /* yuv_mips_dsp_r2.c */; settings = {COMPILER_FLAGS = "-D_THREAD_SAFE -fno-objc-arc"; }; }; - 0BD03DDEEB3CBDB7C2D899140420AB5D /* YBIBVideoCell+Internal.h in Headers */ = {isa = PBXBuildFile; fileRef = 9D0482EBFF9848823658B081A54CCFFB /* YBIBVideoCell+Internal.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 0BD1E52C6A20A1E2F9B6044C2CF41DAC /* SDCollectionViewCell.h in Headers */ = {isa = PBXBuildFile; fileRef = 7D85F571351B8D5A7A33993426157D83 /* SDCollectionViewCell.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 0BF46B2653C6B6026D3E625A4282F0F3 /* Pods-QXLive-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 76262613319C32AD3942999FD973732D /* Pods-QXLive-dummy.m */; }; - 0C06527D45203379F258430E3A705BBF /* LLWidgetBorderHelper.m in Sources */ = {isa = PBXBuildFile; fileRef = 9CC9638F77E815D0E3B324F718450E25 /* LLWidgetBorderHelper.m */; }; - 0C0988F44323C559DBF0DA5BAC5D3D22 /* OSSCompat.m in Sources */ = {isa = PBXBuildFile; fileRef = 45A85B8E3D1E373866D8BA83364066BE /* OSSCompat.m */; }; - 0C0C7BDE1A0FC54E6245AA09A842EACB /* LLEntryViewController.h in Headers */ = {isa = PBXBuildFile; fileRef = 0D6D33B9A6C0316F839B7702D98CB1E4 /* LLEntryViewController.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 0C1C2331038CB08304C89016AA44F46F /* LLWindowManager+Sandbox.h in Headers */ = {isa = PBXBuildFile; fileRef = BFAB969193E17F3829AA936707D86F16 /* LLWindowManager+Sandbox.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 0C312924F0A07471A1D04AD15D32BF3A /* JXCategoryIndicatorRainbowLineView.m in Sources */ = {isa = PBXBuildFile; fileRef = 05BACFC5C27CC08ADFFEE87EAE8C1090 /* JXCategoryIndicatorRainbowLineView.m */; }; - 0C5CB38D8F399F890785483EAF531383 /* LLComponent.h in Headers */ = {isa = PBXBuildFile; fileRef = FBC2384014AEE26EAFB9C600A8015122 /* LLComponent.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 0C6956D9B1BAF797C380C6AEA4C23A5D /* RACBehaviorSubject.h in Headers */ = {isa = PBXBuildFile; fileRef = 29CA2D1B5A8C0FBD39DB377ED08EFBE7 /* RACBehaviorSubject.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 0C6DABFCF5BF706F0288D68F246B8D98 /* BRResultModel.h in Headers */ = {isa = PBXBuildFile; fileRef = 3714959B32893D0305EFC87D686A4F24 /* BRResultModel.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 0BD03DDEEB3CBDB7C2D899140420AB5D /* YBIBVideoCell+Internal.h in Headers */ = {isa = PBXBuildFile; fileRef = B32EF8D1CB3CE568658DC5C2F1730286 /* YBIBVideoCell+Internal.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 0BD1E52C6A20A1E2F9B6044C2CF41DAC /* SDCollectionViewCell.h in Headers */ = {isa = PBXBuildFile; fileRef = FFABF4F4BC06FCC6D58B58BC4D845D34 /* SDCollectionViewCell.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 0C06527D45203379F258430E3A705BBF /* LLWidgetBorderHelper.m in Sources */ = {isa = PBXBuildFile; fileRef = EB20D4AB990A5D5B4CA4725DD62E892B /* LLWidgetBorderHelper.m */; }; + 0C0988F44323C559DBF0DA5BAC5D3D22 /* OSSCompat.m in Sources */ = {isa = PBXBuildFile; fileRef = A85E8FDD8A1086AD73C014B6D6033655 /* OSSCompat.m */; }; + 0C0C7BDE1A0FC54E6245AA09A842EACB /* LLEntryViewController.h in Headers */ = {isa = PBXBuildFile; fileRef = 69CDB9AD81295D1E902E3BE2C17D5746 /* LLEntryViewController.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 0C1C2331038CB08304C89016AA44F46F /* LLWindowManager+Sandbox.h in Headers */ = {isa = PBXBuildFile; fileRef = FF0B11CAE6891641C22F82ACC12D510D /* LLWindowManager+Sandbox.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 0C312924F0A07471A1D04AD15D32BF3A /* JXCategoryIndicatorRainbowLineView.m in Sources */ = {isa = PBXBuildFile; fileRef = 92CCD998EA97097340DB86E4B6424431 /* JXCategoryIndicatorRainbowLineView.m */; }; + 0C5CB38D8F399F890785483EAF531383 /* LLComponent.h in Headers */ = {isa = PBXBuildFile; fileRef = 032F2427BF747A216EC0E35C6E3F369E /* LLComponent.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 0C6956D9B1BAF797C380C6AEA4C23A5D /* RACBehaviorSubject.h in Headers */ = {isa = PBXBuildFile; fileRef = 2594C31B2AEE1C39486F19CE5BE8EA1E /* RACBehaviorSubject.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 0C6DABFCF5BF706F0288D68F246B8D98 /* BRResultModel.h in Headers */ = {isa = PBXBuildFile; fileRef = E6D396D7C475FFCCE53A5F2AD5CD89B2 /* BRResultModel.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 0C8086E24034EA24585A0BF2035871F8 /* lossless_msa.c in Sources */ = {isa = PBXBuildFile; fileRef = 5E60E1C7FF51630E359F4349A09761DD /* lossless_msa.c */; settings = {COMPILER_FLAGS = "-D_THREAD_SAFE -fno-objc-arc"; }; }; 0C97DBC8F830B92149AC516A9C9EA04C /* UIKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 83AC327FDFB768874F13D3CD20C46095 /* UIKit.framework */; }; - 0C9B84F079FC860C45179349B277099B /* MQTTPersistence.h in Headers */ = {isa = PBXBuildFile; fileRef = 18F4C4629CC425BF3DE1AF23A034EC2A /* MQTTPersistence.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 0CAEE65E6D9FF477F8DE31E14CA26C7B /* LLSandboxModel.m in Sources */ = {isa = PBXBuildFile; fileRef = D75DC647DAB6C1AEDC8D507218D413DA /* LLSandboxModel.m */; }; - 0CB058D5589D74FE3D5108116397CE77 /* LLHtmlWkWebViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = B41610D9C71138E26CD083D47E0CDA3D /* LLHtmlWkWebViewController.m */; }; - 0CBE1243DD49592DC58233E98D212EFE /* LLPreviewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 736B0E5E7A0DCE490FD163260A1E8FC9 /* LLPreviewController.m */; }; - 0CBFBBED8CC2A92CBB28696689E6E19A /* NSMutableArray+AvoidCrash.m in Sources */ = {isa = PBXBuildFile; fileRef = EF7118D739E1BFA6377449B799E1496F /* NSMutableArray+AvoidCrash.m */; settings = {COMPILER_FLAGS = "-fno-objc-arc"; }; }; + 0C9B84F079FC860C45179349B277099B /* MQTTPersistence.h in Headers */ = {isa = PBXBuildFile; fileRef = CE511EFACF0EA87C83306AB4C60769B5 /* MQTTPersistence.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 0CAEE65E6D9FF477F8DE31E14CA26C7B /* LLSandboxModel.m in Sources */ = {isa = PBXBuildFile; fileRef = 008B0ECA6FE8E078096EDEFD07A46848 /* LLSandboxModel.m */; }; + 0CB058D5589D74FE3D5108116397CE77 /* LLHtmlWkWebViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = D29F11B1D1C5DE70CDD5EEE39537CD8C /* LLHtmlWkWebViewController.m */; }; + 0CBE1243DD49592DC58233E98D212EFE /* LLPreviewController.m in Sources */ = {isa = PBXBuildFile; fileRef = E0AC5CF7DFFEE64766896EC56ABE170A /* LLPreviewController.m */; }; + 0CBFBBED8CC2A92CBB28696689E6E19A /* NSMutableArray+AvoidCrash.m in Sources */ = {isa = PBXBuildFile; fileRef = 7E91AC838DA3E00425237239625A60D5 /* NSMutableArray+AvoidCrash.m */; settings = {COMPILER_FLAGS = "-fno-objc-arc"; }; }; + 0CC0C93586A8F96E35C9949D8B35885F /* SDImageIOCoder.h in Headers */ = {isa = PBXBuildFile; fileRef = E7E4513BAFB9371B25CB9D6F1DDA6A07 /* SDImageIOCoder.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 0CC2B0AC0C555D6A6C4A411A082C96F1 /* frame_enc.c in Sources */ = {isa = PBXBuildFile; fileRef = 96C143B365F048B7C234C3A8462EAC60 /* frame_enc.c */; settings = {COMPILER_FLAGS = "-D_THREAD_SAFE -fno-objc-arc"; }; }; 0CC32E05A5D3850F7128B0CEDE093809 /* TUIBubbleMessageCell.h in Headers */ = {isa = PBXBuildFile; fileRef = 9ACC681AFDDAC895FF7D551E3A4EE95D /* TUIBubbleMessageCell.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 0D09D90479A0C8E3E30E7EE414997DF4 /* YYImage.h in Headers */ = {isa = PBXBuildFile; fileRef = B0E4C5AFE10929A35D97E1EA0E4B135A /* YYImage.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 0D133E7EBAF3D42A5A6538A79D46BA03 /* picture_rescale_enc.c in Sources */ = {isa = PBXBuildFile; fileRef = C1BC0472FE5FD58AF300F17F81501112 /* picture_rescale_enc.c */; settings = {COMPILER_FLAGS = "-D_THREAD_SAFE -fno-objc-arc"; }; }; - 0D6EFFD314E70C1E547970D8CEF11131 /* JXPagerMainTableView.m in Sources */ = {isa = PBXBuildFile; fileRef = 873998215043841815B0429E6732E482 /* JXPagerMainTableView.m */; }; - 0D72C23AB0597CFF32A4C8889E6AA3DA /* YYTextRubyAnnotation.h in Headers */ = {isa = PBXBuildFile; fileRef = F861B1537BCE56A6BA93D8DE8FC5BC59 /* YYTextRubyAnnotation.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 0DB61F661491104AF5F8778F810C37D4 /* RACSubscriber.m in Sources */ = {isa = PBXBuildFile; fileRef = 1AD2B1887F9946F4A3CC53C3A5A7B630 /* RACSubscriber.m */; }; - 0DBAE07ED5D8EFF25BD2F6B66EE97A50 /* YBIBAuxiliaryViewHandler.h in Headers */ = {isa = PBXBuildFile; fileRef = 848246EBE770CCC005AA4310A97E5DC8 /* YBIBAuxiliaryViewHandler.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 0CE68F238ABAADB6878BC527B88051B2 /* QCloudCompleteMultipartUploadRequest.m in Sources */ = {isa = PBXBuildFile; fileRef = F61F788776C5F5D0C1B9B660F9A919DB /* QCloudCompleteMultipartUploadRequest.m */; }; + 0D0B5E1A61EEBAC06E9B6BA085BDCEBC /* QCloudCOSXMLVersion.h in Headers */ = {isa = PBXBuildFile; fileRef = C32DF683159492303C2754FC40ABF3C6 /* QCloudCOSXMLVersion.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 0D6EFFD314E70C1E547970D8CEF11131 /* JXPagerMainTableView.m in Sources */ = {isa = PBXBuildFile; fileRef = 85B390D16FED19D8AB3F01A1763BE66B /* JXPagerMainTableView.m */; }; + 0D72C23AB0597CFF32A4C8889E6AA3DA /* YYTextRubyAnnotation.h in Headers */ = {isa = PBXBuildFile; fileRef = D54D2C488298D0C70A11E825433A8FF9 /* YYTextRubyAnnotation.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 0DB61F661491104AF5F8778F810C37D4 /* RACSubscriber.m in Sources */ = {isa = PBXBuildFile; fileRef = 0DBE6154EA2D73949C4F324280E21C53 /* RACSubscriber.m */; }; + 0DBAE07ED5D8EFF25BD2F6B66EE97A50 /* YBIBAuxiliaryViewHandler.h in Headers */ = {isa = PBXBuildFile; fileRef = 2ED6C53C04D78091379F540275FF3352 /* YBIBAuxiliaryViewHandler.h */; settings = {ATTRIBUTES = (Public, ); }; }; 0DE0F18BAB9098574ECFB9BBE0F38E1D /* TUITextMessageCell_Minimalist.m in Sources */ = {isa = PBXBuildFile; fileRef = 6469957AD651325AF37FB226E8998D56 /* TUITextMessageCell_Minimalist.m */; }; - 0DE685CEFEB20136E8E8D4B4BFA9EAFE /* QGVAPSafeMutableArray.h in Headers */ = {isa = PBXBuildFile; fileRef = 67FEC9974CB487C8AA112FB22A6A74DB /* QGVAPSafeMutableArray.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 0DE685CEFEB20136E8E8D4B4BFA9EAFE /* QGVAPSafeMutableArray.h in Headers */ = {isa = PBXBuildFile; fileRef = D08510DE0D551DB58D948856A43CD905 /* QGVAPSafeMutableArray.h */; settings = {ATTRIBUTES = (Public, ); }; }; 0DE7D74D5E2E0260499990C0B821679E /* TUIVideoReplyQuoteView_Minimalist.m in Sources */ = {isa = PBXBuildFile; fileRef = 6EFB45CA45BDF87B7F301AD48B0DF034 /* TUIVideoReplyQuoteView_Minimalist.m */; }; + 0E039D3B4C08F9B0208B997A4C925937 /* QCloudService.m in Sources */ = {isa = PBXBuildFile; fileRef = 2B7644544550A839D6BA80383C9D1A3F /* QCloudService.m */; }; 0E0760CD2FB20DB0516AC3D4564DC590 /* TUIEmojiConfig.h in Headers */ = {isa = PBXBuildFile; fileRef = FD44815ECE4EA76B0FD7468FD81DF564 /* TUIEmojiConfig.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 0E10E3D9408E4EEEE700CE5F7B6EEC30 /* LLPreviewController.h in Headers */ = {isa = PBXBuildFile; fileRef = C1BBE6D9E6934F4A1295351D6DA04D07 /* LLPreviewController.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 0E10E3D9408E4EEEE700CE5F7B6EEC30 /* LLPreviewController.h in Headers */ = {isa = PBXBuildFile; fileRef = 68625218E6B514223D5BA3382ED52E27 /* LLPreviewController.h */; settings = {ATTRIBUTES = (Public, ); }; }; 0E2BB2BC5FED54DD181375B14557BE00 /* TUIImageCollectionCell.h in Headers */ = {isa = PBXBuildFile; fileRef = 24734CFC2869F85306FFB5AF734D3733 /* TUIImageCollectionCell.h */; settings = {ATTRIBUTES = (Public, ); }; }; 0E4A332820BC7A109560CF1944229DB5 /* TUIConversationConfig.m in Sources */ = {isa = PBXBuildFile; fileRef = 480843312073783E57924342A1831668 /* TUIConversationConfig.m */; }; - 0E738963815B831A6195FEB28354A8BC /* LLTitleHeaderView.m in Sources */ = {isa = PBXBuildFile; fileRef = 65678AFC51F00D296A959D345B13E278 /* LLTitleHeaderView.m */; }; - 0E75ACB10489F67801489EAB68D34A51 /* QGHWDShaders.metal in Sources */ = {isa = PBXBuildFile; fileRef = D7574DD4D47B99CF15F057DA575390BD /* QGHWDShaders.metal */; }; + 0E738963815B831A6195FEB28354A8BC /* LLTitleHeaderView.m in Sources */ = {isa = PBXBuildFile; fileRef = 8E42297E0B75C875D6022D94AE3D2CB9 /* LLTitleHeaderView.m */; }; + 0E75ACB10489F67801489EAB68D34A51 /* QGHWDShaders.metal in Sources */ = {isa = PBXBuildFile; fileRef = AE6044C2F23ADE662B69D64BFCB9759A /* QGHWDShaders.metal */; }; 0E7E1AE4CD8342A11D0754DB5389F779 /* TUIMessageController.m in Sources */ = {isa = PBXBuildFile; fileRef = 351AD2DDB6888E18549005C6A2B56494 /* TUIMessageController.m */; }; - 0E8A6DC318277807A45CB21C40672C3F /* RACSignal.m in Sources */ = {isa = PBXBuildFile; fileRef = D88C4031A4949CAF9B8662AC6D9B3AEE /* RACSignal.m */; }; - 0EBA19D1D7F5C36A595236A648E60E29 /* NSInputStream+LL_Network.h in Headers */ = {isa = PBXBuildFile; fileRef = F0843D21283D9AAC0F3F523506980FDD /* NSInputStream+LL_Network.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 0EBF06BCC2C4BF223BE887A555D54EC3 /* TUICore-TUICore_Privacy in Resources */ = {isa = PBXBuildFile; fileRef = 62476AD95833F1EC15B5FC7E01E6CB19 /* TUICore-TUICore_Privacy */; }; - 0EC3180549CBBC44B1C85CF571D15D4E /* QGAnimatedImageBufferManager.m in Sources */ = {isa = PBXBuildFile; fileRef = 3E1C3C99EEADDCD0F7E40E070FE54705 /* QGAnimatedImageBufferManager.m */; }; - 0EF10747EF2A02413E84BD5EF7C87A4B /* MJRefreshNormalHeader.m in Sources */ = {isa = PBXBuildFile; fileRef = 6C69C98590E37B3ED76719F2BEA60AC4 /* MJRefreshNormalHeader.m */; }; - 0EF998FD99FC833F28B2B06CB5452070 /* LLHtmlUIWebViewController.h in Headers */ = {isa = PBXBuildFile; fileRef = 206F285C417EB4592AD582E0E645404D /* LLHtmlUIWebViewController.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 0F07C8D359E2DAC891AF41F731A1CED4 /* CALayer+YYWebImage.h in Headers */ = {isa = PBXBuildFile; fileRef = C28DDEE1CE0413791FE27CABF81EDDB6 /* CALayer+YYWebImage.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 0F2013EF92FA95D1ACC17C75B4B72441 /* NSObject+LL_Utils.m in Sources */ = {isa = PBXBuildFile; fileRef = 69DFE9503A04CABD5E4B38C11E84CB16 /* NSObject+LL_Utils.m */; }; - 0F307CCAE2D45876CCD0983763D5D45B /* RACEmptySignal.h in Headers */ = {isa = PBXBuildFile; fileRef = 33A9AE1A679F38D63E16BC90A6D54F0D /* RACEmptySignal.h */; settings = {ATTRIBUTES = (Private, ); }; }; - 0F345665080A245AF1958873611D4DAB /* TUILogin.h in Headers */ = {isa = PBXBuildFile; fileRef = 9BCCCD8BC95F5E12FB275A7AAEDEBAB5 /* TUILogin.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 0F36C31F1633EC3349B6FDAB1C8EF3C1 /* BRDatePickerView+BR.h in Headers */ = {isa = PBXBuildFile; fileRef = BC48BFCABBB6EE95E092F94E3C3B28F1 /* BRDatePickerView+BR.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 0F5109284E40773CA8B13207B9C56717 /* UIDevice+LL_AppInfo.m in Sources */ = {isa = PBXBuildFile; fileRef = 742A1E6D5178AC74FB55B9B25DEE59E8 /* UIDevice+LL_AppInfo.m */; }; + 0E8A6DC318277807A45CB21C40672C3F /* RACSignal.m in Sources */ = {isa = PBXBuildFile; fileRef = 08F4D75A4853C8A90BD6B7B4785893C3 /* RACSignal.m */; }; + 0EBA19D1D7F5C36A595236A648E60E29 /* NSInputStream+LL_Network.h in Headers */ = {isa = PBXBuildFile; fileRef = BFA251B40E1BA8D917AD3181373F7681 /* NSInputStream+LL_Network.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 0EC3180549CBBC44B1C85CF571D15D4E /* QGAnimatedImageBufferManager.m in Sources */ = {isa = PBXBuildFile; fileRef = D87D3D42999151033E75027643FC134C /* QGAnimatedImageBufferManager.m */; }; + 0EF10747EF2A02413E84BD5EF7C87A4B /* MJRefreshNormalHeader.m in Sources */ = {isa = PBXBuildFile; fileRef = 9BEF732727DBD392AFAA82C773855B0E /* MJRefreshNormalHeader.m */; }; + 0EF998FD99FC833F28B2B06CB5452070 /* LLHtmlUIWebViewController.h in Headers */ = {isa = PBXBuildFile; fileRef = 4F8BD6F89587FED967455EC7405AE7C1 /* LLHtmlUIWebViewController.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 0F07C8D359E2DAC891AF41F731A1CED4 /* CALayer+YYWebImage.h in Headers */ = {isa = PBXBuildFile; fileRef = 499E34B74A4F8D067A02EB2B2A2DE8B4 /* CALayer+YYWebImage.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 0F2013EF92FA95D1ACC17C75B4B72441 /* NSObject+LL_Utils.m in Sources */ = {isa = PBXBuildFile; fileRef = 72EE1CA8526D00772A680BF6836CBBB9 /* NSObject+LL_Utils.m */; }; + 0F2D5DF148EC7E509DA8803303E4D6B0 /* backward_references_cost_enc.c in Sources */ = {isa = PBXBuildFile; fileRef = 5320BB3AC0EF89CDCEA8D440833550E2 /* backward_references_cost_enc.c */; settings = {COMPILER_FLAGS = "-D_THREAD_SAFE -fno-objc-arc"; }; }; + 0F307CCAE2D45876CCD0983763D5D45B /* RACEmptySignal.h in Headers */ = {isa = PBXBuildFile; fileRef = D3F3803FD9E0A31A59E9FA60AFDF0F74 /* RACEmptySignal.h */; settings = {ATTRIBUTES = (Private, ); }; }; + 0F36C31F1633EC3349B6FDAB1C8EF3C1 /* BRDatePickerView+BR.h in Headers */ = {isa = PBXBuildFile; fileRef = 44578ABEEBE1F4791F2C0D6AAA913313 /* BRDatePickerView+BR.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 0F503BFAD47E6DECA1487D8633D3AC18 /* muxread.c in Sources */ = {isa = PBXBuildFile; fileRef = E3A3717E2EB0F7601DF3D74E9ECDF971 /* muxread.c */; settings = {COMPILER_FLAGS = "-D_THREAD_SAFE -fno-objc-arc"; }; }; + 0F5109284E40773CA8B13207B9C56717 /* UIDevice+LL_AppInfo.m in Sources */ = {isa = PBXBuildFile; fileRef = 03861350775BC47ED43300CAFCF72276 /* UIDevice+LL_AppInfo.m */; }; + 0F5F90CC4FE29470EB1B96247BE2010F /* SDWebImage-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 38B548276CBDD58FCFE13856ADA58FFB /* SDWebImage-dummy.m */; }; 0F60CD5F9500009B8C30EC0FAC24EC08 /* TUICameraViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = D49CE152AD6B6A368F767598E30EF271 /* TUICameraViewController.m */; }; - 0F71B4B1E155F99BF17C011EADF71F95 /* SDWebImageCacheSerializer.m in Sources */ = {isa = PBXBuildFile; fileRef = 48D571BF5420C75BE0AD2C3B1A4F1862 /* SDWebImageCacheSerializer.m */; }; - 0F72ACD374D9BF0A9F3B858CD1D14D24 /* LLFunctionItemView.h in Headers */ = {isa = PBXBuildFile; fileRef = 652D8706564F0B0C4C2E1480B6FBAEA7 /* LLFunctionItemView.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 0F72ACD374D9BF0A9F3B858CD1D14D24 /* LLFunctionItemView.h in Headers */ = {isa = PBXBuildFile; fileRef = 6CF9654FB9FCEBB1F7768D11730F4CBF /* LLFunctionItemView.h */; settings = {ATTRIBUTES = (Public, ); }; }; 0F79B2475E33916F3F557F885982F2A3 /* TUIChatCallingDataProvider.h in Headers */ = {isa = PBXBuildFile; fileRef = CE22F08285FBC6969FF903551651BCBC /* TUIChatCallingDataProvider.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 0F80E5085B1FACBD670029F8B47DAAB2 /* SDImageCoderHelper.h in Headers */ = {isa = PBXBuildFile; fileRef = 946D09B22E7BC35DB43AC9E37E3B45DD /* SDImageCoderHelper.h */; settings = {ATTRIBUTES = (Public, ); }; }; 0F843F0DE71169C2FF7BF3CA0F567315 /* ImageIO.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = A5B624A70D4735B79D27A4C5B4DA64AA /* ImageIO.framework */; }; - 0F8B085F7AC1338C05966BBFC55EF0B1 /* OSSRequest.h in Headers */ = {isa = PBXBuildFile; fileRef = 83C3BD260DC6D10212C1C3E60A943693 /* OSSRequest.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 0F8B085F7AC1338C05966BBFC55EF0B1 /* OSSRequest.h in Headers */ = {isa = PBXBuildFile; fileRef = 9B5A9F8E58D4C563082437381DF998CD /* OSSRequest.h */; settings = {ATTRIBUTES = (Public, ); }; }; 0FD7905480A786738CE135EA20F1F99B /* TUITextMessageCell_Minimalist.h in Headers */ = {isa = PBXBuildFile; fileRef = A97986EFC169E7901000177162F2CC7C /* TUITextMessageCell_Minimalist.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 101A10CF50731EFD014AD10D9C48E3DC /* UIView+MP4HWDecode.h in Headers */ = {isa = PBXBuildFile; fileRef = 609F38FC2BF170DFF2AE9E585C34FFF9 /* UIView+MP4HWDecode.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 103683286A1282DB4F9E831D0E06F431 /* LLHierarchyDetailViewController.h in Headers */ = {isa = PBXBuildFile; fileRef = B5E7CFC45EF81FB9D62C25BD34A73694 /* LLHierarchyDetailViewController.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 101A10CF50731EFD014AD10D9C48E3DC /* UIView+MP4HWDecode.h in Headers */ = {isa = PBXBuildFile; fileRef = 8FF050324764B7CC17BB9B1BE5FE6720 /* UIView+MP4HWDecode.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 1025B923CA6A00B538E17E518EFB040F /* QCloudMultipartUploadInitiator.h in Headers */ = {isa = PBXBuildFile; fileRef = 433A5FFCBDCB1AB1C936D3774520D3ED /* QCloudMultipartUploadInitiator.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 103683286A1282DB4F9E831D0E06F431 /* LLHierarchyDetailViewController.h in Headers */ = {isa = PBXBuildFile; fileRef = 045B381B796968C148FD9386FF98FFAC /* LLHierarchyDetailViewController.h */; settings = {ATTRIBUTES = (Public, ); }; }; 1046610A51620E727140217FEC6DD5BF /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = F91075A92425F75F02E0E1C8D455AF79 /* Foundation.framework */; }; - 104D9196010D2A8C52C0C19E9C9D52E8 /* MBProgressHUD-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 48916B4071AC3689F512A4A27B2D6CF8 /* MBProgressHUD-dummy.m */; }; - 10682EC2863EE4B1FB3AA0417AE39A4D /* LLRouter+Log.h in Headers */ = {isa = PBXBuildFile; fileRef = 2C3BB5140944CD351541881EDFAA96DC /* LLRouter+Log.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 104D9196010D2A8C52C0C19E9C9D52E8 /* MBProgressHUD-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = FBC0A4D8819DED9523982B72E982ECE9 /* MBProgressHUD-dummy.m */; }; + 10682EC2863EE4B1FB3AA0417AE39A4D /* LLRouter+Log.h in Headers */ = {isa = PBXBuildFile; fileRef = B0F135764479655C291D5F464098653D /* LLRouter+Log.h */; settings = {ATTRIBUTES = (Public, ); }; }; 106A5FCAF4145ED9C6519734F44D716E /* TUIReplyPreviewData.h in Headers */ = {isa = PBXBuildFile; fileRef = F099CABCF077B9E89AF98C6B90C82F38 /* TUIReplyPreviewData.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 106F4BFFBE4F028458C0C4A5BAFD3B41 /* YBIBVideoTopBar.m in Sources */ = {isa = PBXBuildFile; fileRef = 26066A905DEEEE84553A9221450A2D8C /* YBIBVideoTopBar.m */; }; + 106F4BFFBE4F028458C0C4A5BAFD3B41 /* YBIBVideoTopBar.m in Sources */ = {isa = PBXBuildFile; fileRef = 564351900D0E66F5FCCD801223E2046D /* YBIBVideoTopBar.m */; }; 10935051E01BD877DA737BF7BEA14DF6 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = F91075A92425F75F02E0E1C8D455AF79 /* Foundation.framework */; }; - 109D1B65E59C620471D3C872BD9590D4 /* NSDate+OSS.m in Sources */ = {isa = PBXBuildFile; fileRef = 380C5BD13C442E034BF71F95457DE708 /* NSDate+OSS.m */; }; - 11070C99F9B8E0779A87CD5589DC0D06 /* alpha_processing.c in Sources */ = {isa = PBXBuildFile; fileRef = 9A9280CB44A2E836FD369210C0414A0A /* alpha_processing.c */; settings = {COMPILER_FLAGS = "-D_THREAD_SAFE -fno-objc-arc"; }; }; - 11097FE0793854F03A82BFCAA919BC1E /* vp8l_dec.c in Sources */ = {isa = PBXBuildFile; fileRef = D999FA8853AA1CE2077F0ACB87C46329 /* vp8l_dec.c */; settings = {COMPILER_FLAGS = "-D_THREAD_SAFE -fno-objc-arc"; }; }; - 11422CB222C72A6EF77DA96D152FA6F8 /* UIBarButtonItem+RACCommandSupport.h in Headers */ = {isa = PBXBuildFile; fileRef = F428149B2FF2455DA70284F8BEB2AB92 /* UIBarButtonItem+RACCommandSupport.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 115E6A3F461DC8C1E92EFEE3058E0291 /* YBIBOperateBrowserProtocol.h in Headers */ = {isa = PBXBuildFile; fileRef = E737304B2404D251C27ABCD5567F1F52 /* YBIBOperateBrowserProtocol.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 116ED6B44B17B10CBA76942A7EB155AB /* rescaler_utils.h in Headers */ = {isa = PBXBuildFile; fileRef = EFE5DE49CF763F91F46159B7E1C1BAF3 /* rescaler_utils.h */; settings = {ATTRIBUTES = (Project, ); }; }; + 109D1B65E59C620471D3C872BD9590D4 /* NSDate+OSS.m in Sources */ = {isa = PBXBuildFile; fileRef = 9F8E1D3AB840A9EAAB2361A28EA6660E /* NSDate+OSS.m */; }; + 109D98A7C3F89B5847696DE4B2797957 /* UIButton+WebCache.h in Headers */ = {isa = PBXBuildFile; fileRef = 4CAB3DAEF0E00F0F21C97646381AED5F /* UIButton+WebCache.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 10EFBA3D9D9CD9F4FCF6E67989F37640 /* upsampling.c in Sources */ = {isa = PBXBuildFile; fileRef = 109E33175A59F8C3E531B352793B6952 /* upsampling.c */; settings = {COMPILER_FLAGS = "-D_THREAD_SAFE -fno-objc-arc"; }; }; + 11359E2FD06D54A0B955529EA13273D7 /* QCloudCOSStorageClassEnum.h in Headers */ = {isa = PBXBuildFile; fileRef = 5D4BC79C3D9B76FF89F8811540251066 /* QCloudCOSStorageClassEnum.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 11422CB222C72A6EF77DA96D152FA6F8 /* UIBarButtonItem+RACCommandSupport.h in Headers */ = {isa = PBXBuildFile; fileRef = 31CA26C8AB804A64B74DEFAEAAF24BA6 /* UIBarButtonItem+RACCommandSupport.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 115E6A3F461DC8C1E92EFEE3058E0291 /* YBIBOperateBrowserProtocol.h in Headers */ = {isa = PBXBuildFile; fileRef = C0F55F4CF1612600964678D6DB467ECD /* YBIBOperateBrowserProtocol.h */; settings = {ATTRIBUTES = (Public, ); }; }; 117595E349ADDD74EE204512A7393AC5 /* TUILinkCell.m in Sources */ = {isa = PBXBuildFile; fileRef = 3F9FFCC87BF7E40DC2E87253414B2BE8 /* TUILinkCell.m */; }; - 11AD210D385F977383AFB974D3CDEF53 /* JXCategoryListContainerRTLCell.h in Headers */ = {isa = PBXBuildFile; fileRef = 22BB10C33BB18B3202A34C7D2A937F0C /* JXCategoryListContainerRTLCell.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 11BC1BC7296497E738DA1A3B7181434C /* Struct.pbobjc.h in Headers */ = {isa = PBXBuildFile; fileRef = 22213487E53AA83762A2083D3ADBA990 /* Struct.pbobjc.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 11C929E6BFB46F981685446F26DCE605 /* MJRefreshAutoFooter.m in Sources */ = {isa = PBXBuildFile; fileRef = 19BDE7DE37FB94AF8F799EB887B2959C /* MJRefreshAutoFooter.m */; }; - 11D4DC1FCE5647EEA8484AA4A880AF8F /* MBProgressHUD.m in Sources */ = {isa = PBXBuildFile; fileRef = 492115D79EE235CEF40092B476C19A16 /* MBProgressHUD.m */; }; + 11AD210D385F977383AFB974D3CDEF53 /* JXCategoryListContainerRTLCell.h in Headers */ = {isa = PBXBuildFile; fileRef = 8C6DE3267E526E282214774C6134F2C6 /* JXCategoryListContainerRTLCell.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 11BC1BC7296497E738DA1A3B7181434C /* Struct.pbobjc.h in Headers */ = {isa = PBXBuildFile; fileRef = 5158B6BAC0B683F0ED5396925F1455B4 /* Struct.pbobjc.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 11C929E6BFB46F981685446F26DCE605 /* MJRefreshAutoFooter.m in Sources */ = {isa = PBXBuildFile; fileRef = 7DE64C569A1E6932192F89F76EE47A34 /* MJRefreshAutoFooter.m */; }; + 11D4DC1FCE5647EEA8484AA4A880AF8F /* MBProgressHUD.m in Sources */ = {isa = PBXBuildFile; fileRef = 1135D4E59A92E087E5425E466950E410 /* MBProgressHUD.m */; }; 11F8B37D6D1891F3196083D117C21620 /* TUIFitButton.m in Sources */ = {isa = PBXBuildFile; fileRef = 92871C51F3A63C205C71A1C165D90489 /* TUIFitButton.m */; }; - 11FC9573D3140E8580EE8B826043B4D4 /* YBIBSentinel.m in Sources */ = {isa = PBXBuildFile; fileRef = B21894011FB4467D95E770A70332E873 /* YBIBSentinel.m */; }; + 11FC9573D3140E8580EE8B826043B4D4 /* YBIBSentinel.m in Sources */ = {isa = PBXBuildFile; fileRef = 5D8BE51E1B0036FE1F123834CEEBB13F /* YBIBSentinel.m */; }; 1205B6E906DFE89E5011CD98C3BD1617 /* TUIMenuCell.h in Headers */ = {isa = PBXBuildFile; fileRef = 2E95E77CD77531688FB047C8D48AC231 /* TUIMenuCell.h */; settings = {ATTRIBUTES = (Public, ); }; }; 1219A6860BF3C2D317D3C715FE772C62 /* TIMRTLUtil.h in Headers */ = {isa = PBXBuildFile; fileRef = 4FF4D54968106D99B5B105557684ACEA /* TIMRTLUtil.h */; settings = {ATTRIBUTES = (Public, ); }; }; 12A0C13FD7F5822BC17D483FDD7DC4B8 /* TUIInputMoreCell.h in Headers */ = {isa = PBXBuildFile; fileRef = 43BEB7914C053F5ED176D1E988A1B63A /* TUIInputMoreCell.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 12B0F9412DA72E5C518155799154EFCA /* NSObject+YBImageBrowser.m in Sources */ = {isa = PBXBuildFile; fileRef = BB7C656C69B7991466749BA9583DCEC9 /* NSObject+YBImageBrowser.m */; }; - 12DEDFBDD6A19E45734C9BF576DB4379 /* RACSerialDisposable.h in Headers */ = {isa = PBXBuildFile; fileRef = 33209571890BFD1121B09EF9352AD064 /* RACSerialDisposable.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 1307E93DE595E67AD2D50A379199F385 /* GPBProtocolBuffers_RuntimeSupport.h in Headers */ = {isa = PBXBuildFile; fileRef = CAD76B76ED9FFA966995C405B47E305E /* GPBProtocolBuffers_RuntimeSupport.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 12B0F9412DA72E5C518155799154EFCA /* NSObject+YBImageBrowser.m in Sources */ = {isa = PBXBuildFile; fileRef = 0A916049B8466E1D89EBB40ABBDE2B55 /* NSObject+YBImageBrowser.m */; }; + 12DEDFBDD6A19E45734C9BF576DB4379 /* RACSerialDisposable.h in Headers */ = {isa = PBXBuildFile; fileRef = AB327FEAAFD9095A9034BF0C5D5E88E2 /* RACSerialDisposable.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 12FBA667A51EE9A44E03CCA23B297236 /* QCloudCOSXMLService+Quality.m in Sources */ = {isa = PBXBuildFile; fileRef = 891768C36B9368BDC22D663758D43B1A /* QCloudCOSXMLService+Quality.m */; }; + 12FC1AF5259F03D79E04DBEAF8693D36 /* QCloudInitiateMultipartUploadRequest.m in Sources */ = {isa = PBXBuildFile; fileRef = 6DCDC4699AD61041684AB3720F04F1F6 /* QCloudInitiateMultipartUploadRequest.m */; }; + 1307E93DE595E67AD2D50A379199F385 /* GPBProtocolBuffers_RuntimeSupport.h in Headers */ = {isa = PBXBuildFile; fileRef = 037EFE84298534860E3E72DBCCFF50DD /* GPBProtocolBuffers_RuntimeSupport.h */; settings = {ATTRIBUTES = (Public, ); }; }; 131177DB5878795DE25814F1E055C09E /* TUIMenuView.h in Headers */ = {isa = PBXBuildFile; fileRef = 9211E26EE5EA1B5D5F0399C5FA89C084 /* TUIMenuView.h */; settings = {ATTRIBUTES = (Public, ); }; }; 1311D098F07D9F1AC7CF9FCC37DDB14D /* TUIReferenceMessageCell_Minimalist.h in Headers */ = {isa = PBXBuildFile; fileRef = F014CF6E9AC36DF1BD11D71E1CA51E3A /* TUIReferenceMessageCell_Minimalist.h */; settings = {ATTRIBUTES = (Public, ); }; }; 131F79B9E4717122CEC8195FEFB28A3B /* TUIAttributedLabel.h in Headers */ = {isa = PBXBuildFile; fileRef = 7230A6F1A80D744CBB4A2139CC60E9D6 /* TUIAttributedLabel.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 133B7561751D0BE5D717EA24ADF172F4 /* QGBaseAnimatedImageFrame.h in Headers */ = {isa = PBXBuildFile; fileRef = 0F689B90C8173CF2269E4DE394AB6104 /* QGBaseAnimatedImageFrame.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 133B7561751D0BE5D717EA24ADF172F4 /* QGBaseAnimatedImageFrame.h in Headers */ = {isa = PBXBuildFile; fileRef = C2B4D4B562EC668CAF254E73F9CDD713 /* QGBaseAnimatedImageFrame.h */; settings = {ATTRIBUTES = (Public, ); }; }; 1374AAC56D759E72CEE423DA19A46A8F /* TUIConfig_Minimalist.h in Headers */ = {isa = PBXBuildFile; fileRef = 31CDC63E7035C004EAE1BC7C73F92C52 /* TUIConfig_Minimalist.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 1399CD097E164E2C7A6882F0C8FFA525 /* JXCategoryIndicatorProtocol.h in Headers */ = {isa = PBXBuildFile; fileRef = AA7C34CC343507C125EB6837C6748B5E /* JXCategoryIndicatorProtocol.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 13C93315BD05F9EC411DA61CF40993EC /* NSObject+AvoidCrash.h in Headers */ = {isa = PBXBuildFile; fileRef = A789F7B252C2751219AF125891CC7B53 /* NSObject+AvoidCrash.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 13C9400B5AFC20C5A5B3832F7306F308 /* OSSService.h in Headers */ = {isa = PBXBuildFile; fileRef = 30EEA1EE58480438768944A483CE7952 /* OSSService.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 140FF2A1C69F7BF740C09B69C9530C69 /* SDImageCacheDefine.h in Headers */ = {isa = PBXBuildFile; fileRef = 1C48DE11BB2002EE471F4BC6C1FE9B15 /* SDImageCacheDefine.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 1399CD097E164E2C7A6882F0C8FFA525 /* JXCategoryIndicatorProtocol.h in Headers */ = {isa = PBXBuildFile; fileRef = C9EB273B20622E7055FCBC9E9078D4A1 /* JXCategoryIndicatorProtocol.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 13C93315BD05F9EC411DA61CF40993EC /* NSObject+AvoidCrash.h in Headers */ = {isa = PBXBuildFile; fileRef = DED597E4F4BBCF830F2F918FE4BBD659 /* NSObject+AvoidCrash.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 13C9400B5AFC20C5A5B3832F7306F308 /* OSSService.h in Headers */ = {isa = PBXBuildFile; fileRef = 76678DADF04F439070B40060F80653A3 /* OSSService.h */; settings = {ATTRIBUTES = (Public, ); }; }; 1410A4D02BA06FB11A5BE52414C1F4CE /* TUIConversationTheme_Minimalist.bundle in Resources */ = {isa = PBXBuildFile; fileRef = 22F173A85B4B6FDF1FF684108CDB7251 /* TUIConversationTheme_Minimalist.bundle */; }; - 141B4B6F021F761781BC9D9F8AAE0F07 /* YYFrameImage.h in Headers */ = {isa = PBXBuildFile; fileRef = 41D1E4E76E5007958C60B21846EB3CD0 /* YYFrameImage.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 141E78E1381DBCAF7D310FCC1C8BA54E /* YBImageBrowser+Internal.h in Headers */ = {isa = PBXBuildFile; fileRef = 4E63A23FAF92DD5F3251EF0B328F1C0D /* YBImageBrowser+Internal.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 1444DFD1492DECA5C8C0760EF0FB6CA6 /* NSDictionary+RACSequenceAdditions.m in Sources */ = {isa = PBXBuildFile; fileRef = 96C8E25F23B1E6EF7231C646A0C30351 /* NSDictionary+RACSequenceAdditions.m */; }; - 14676CDFFDE06FF960179AA34C474EEE /* RACStringSequence.h in Headers */ = {isa = PBXBuildFile; fileRef = D2EDB3C2522692B94BFB6EC06EB734D0 /* RACStringSequence.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 146FAF32A06C6BB449470345F876E000 /* yuv_sse41.c in Sources */ = {isa = PBXBuildFile; fileRef = 6DA1F6403722CFE622396EF89367F223 /* yuv_sse41.c */; settings = {COMPILER_FLAGS = "-D_THREAD_SAFE -fno-objc-arc"; }; }; - 1491AA4AD8AF61C2B6E3B9969D7EC301 /* palette.h in Headers */ = {isa = PBXBuildFile; fileRef = 81F2EB46903FC696F4A42DFF8C534BCC /* palette.h */; settings = {ATTRIBUTES = (Project, ); }; }; + 14173E380C5C639EB7632270E4EDF7C7 /* QCloudCOSXMLTransfer.h in Headers */ = {isa = PBXBuildFile; fileRef = 4B5FB108B5C99E9BE20DE622B2EB506C /* QCloudCOSXMLTransfer.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 141E78E1381DBCAF7D310FCC1C8BA54E /* YBImageBrowser+Internal.h in Headers */ = {isa = PBXBuildFile; fileRef = 27939F811894E4852B3BBEFB91CADD90 /* YBImageBrowser+Internal.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 1438ED8D8F61A48CDF60D2588420E815 /* QCLOUDRestNet.h in Headers */ = {isa = PBXBuildFile; fileRef = 24EDEC7679846AB322E29370B1EC8CA7 /* QCLOUDRestNet.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 1444DFD1492DECA5C8C0760EF0FB6CA6 /* NSDictionary+RACSequenceAdditions.m in Sources */ = {isa = PBXBuildFile; fileRef = F2CA35F782DD82F3F4E47B1C834CB783 /* NSDictionary+RACSequenceAdditions.m */; }; + 14676CDFFDE06FF960179AA34C474EEE /* RACStringSequence.h in Headers */ = {isa = PBXBuildFile; fileRef = B541F42AE2B69D8C59A6D106B6AE1B0C /* RACStringSequence.h */; settings = {ATTRIBUTES = (Public, ); }; }; 14BA3DCAA48A9B039FF3D0699404E7F6 /* TIMConfig.h in Headers */ = {isa = PBXBuildFile; fileRef = 33AAFEDB266478D4B5A46934B6973C3F /* TIMConfig.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 14D295950C18090E9B5520366DA0128B /* SDAnimatedImagePlayer.m in Sources */ = {isa = PBXBuildFile; fileRef = AAC9D3A5A73A53CAABD58F8BE574835F /* SDAnimatedImagePlayer.m */; }; 14D6987D9461EBA235CB5D927570901E /* TUIJoinGroupMessageCell_Minimalist.h in Headers */ = {isa = PBXBuildFile; fileRef = 5C8DA2A02D44E90EB49285092734D51D /* TUIJoinGroupMessageCell_Minimalist.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 14DC3C68792EA0079B1C026603DCB79A /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = F91075A92425F75F02E0E1C8D455AF79 /* Foundation.framework */; }; - 14DF69D0604268EA986A32E5C075700B /* LLStorageModel.m in Sources */ = {isa = PBXBuildFile; fileRef = 7D196C3B31C756FB0E740374A64D08E4 /* LLStorageModel.m */; }; - 14F3C05CC0A5F2116A2E81066F40F750 /* LLNetworkDefine.h in Headers */ = {isa = PBXBuildFile; fileRef = BF50D3782BE0325F478D768EDC1D4EA8 /* LLNetworkDefine.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 14FA4497F1EF1BFA70BD58AF70E9DBB7 /* LLRouter.h in Headers */ = {isa = PBXBuildFile; fileRef = F1DF7D94F28198BA10BCBE2B495B2FDC /* LLRouter.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 14FA4503CA8E6D921465FFE941B2748D /* NSDictionary+AvoidCrash.h in Headers */ = {isa = PBXBuildFile; fileRef = D20DD2027AC5A9401BA861A78C7A6C83 /* NSDictionary+AvoidCrash.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 14FF0AAAF6169AE9CE1118F09FA530F1 /* OSSResult.m in Sources */ = {isa = PBXBuildFile; fileRef = F8CF4B494678B12F79C894D22D4AE3A7 /* OSSResult.m */; }; + 14DF69D0604268EA986A32E5C075700B /* LLStorageModel.m in Sources */ = {isa = PBXBuildFile; fileRef = C005C05F637D2ADE52B405BEF24BB72C /* LLStorageModel.m */; }; + 14F3C05CC0A5F2116A2E81066F40F750 /* LLNetworkDefine.h in Headers */ = {isa = PBXBuildFile; fileRef = DDEF07DE0B86BF944608BA8E72EB3855 /* LLNetworkDefine.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 14FA4497F1EF1BFA70BD58AF70E9DBB7 /* LLRouter.h in Headers */ = {isa = PBXBuildFile; fileRef = 5B765BAD63B4B0446B65B03B06284E0B /* LLRouter.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 14FA4503CA8E6D921465FFE941B2748D /* NSDictionary+AvoidCrash.h in Headers */ = {isa = PBXBuildFile; fileRef = 41F540009AA9DAF3CAE32CFADA4A5792 /* NSDictionary+AvoidCrash.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 14FF0AAAF6169AE9CE1118F09FA530F1 /* OSSResult.m in Sources */ = {isa = PBXBuildFile; fileRef = 2457FA1E27DA7FD51ABCA23257D94C88 /* OSSResult.m */; }; 150FD65DF7193E3F32C6AB529E61EC63 /* TUIMessageProgressManager.m in Sources */ = {isa = PBXBuildFile; fileRef = 1270D341AD024370F782DDA45E6C12A9 /* TUIMessageProgressManager.m */; }; - 1515E53D44165ADA60360FD882B7B24D /* LocalPitchView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 43D1E3261820DB9A9433A6EB37B8265B /* LocalPitchView.swift */; }; - 1553489FE64B7632055EE648A439FC59 /* enc.c in Sources */ = {isa = PBXBuildFile; fileRef = 59F02994182D40650E8194612C91F47D /* enc.c */; settings = {COMPILER_FLAGS = "-D_THREAD_SAFE -fno-objc-arc"; }; }; + 1515E53D44165ADA60360FD882B7B24D /* LocalPitchView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 968231824AEE19E86BB15B07FE4E7B0A /* LocalPitchView.swift */; }; + 15317734C31679B7AFFE227683833769 /* QCloudProgrameDefines.m in Sources */ = {isa = PBXBuildFile; fileRef = 594B387A2FE7AB0230FBDBE5EF1F5810 /* QCloudProgrameDefines.m */; }; 1556A4D914CBACA73C9D6322E6EE8820 /* TUIVoiceMessageCell_Minimalist.h in Headers */ = {isa = PBXBuildFile; fileRef = 5CAD0AD352E2C213E674C5467229A9AC /* TUIVoiceMessageCell_Minimalist.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 1576311FF9915598832DF80F6AE9AACF /* LLSandboxVideoPreviewController.h in Headers */ = {isa = PBXBuildFile; fileRef = 67CEF53E0F24EA9CFD1071F0F164872A /* LLSandboxVideoPreviewController.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 1576311FF9915598832DF80F6AE9AACF /* LLSandboxVideoPreviewController.h in Headers */ = {isa = PBXBuildFile; fileRef = 1F0C905D614789808B6910473387F2D8 /* LLSandboxVideoPreviewController.h */; settings = {ATTRIBUTES = (Public, ); }; }; 157A7B96CE5F03F08066EF3ED6B68497 /* MetalKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 0605A8E8C5BD82B2F0126377C7D3E113 /* MetalKit.framework */; }; 1581E43B758EA224FB8CA10847A79FA9 /* TUIMergeReplyQuoteViewData.h in Headers */ = {isa = PBXBuildFile; fileRef = 05C0427931F2A1B82488C1A7F4152F72 /* TUIMergeReplyQuoteViewData.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 159AF03B7FE55B3E29BF3AA92804F4C9 /* NSDate+YYAdd.m in Sources */ = {isa = PBXBuildFile; fileRef = 3207338365EBF7BD9944C81870D9296B /* NSDate+YYAdd.m */; }; - 15A09F7F886DA1BC15197613B119B7AE /* GPBCodedInputStream.h in Headers */ = {isa = PBXBuildFile; fileRef = 3B7223ABEB7A4441164C36487E964288 /* GPBCodedInputStream.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 15BBAB5E75C406EB52666234F8D7A250 /* OSSHttpdns.m in Sources */ = {isa = PBXBuildFile; fileRef = 8F03FC5865B06A0A4FCEB0376B13483D /* OSSHttpdns.m */; }; + 159AF03B7FE55B3E29BF3AA92804F4C9 /* NSDate+YYAdd.m in Sources */ = {isa = PBXBuildFile; fileRef = D7F1FD3D056BB47E77EFFA1440556537 /* NSDate+YYAdd.m */; }; + 15A09F7F886DA1BC15197613B119B7AE /* GPBCodedInputStream.h in Headers */ = {isa = PBXBuildFile; fileRef = 341F1DA851C2DCD12018594E5969B23A /* GPBCodedInputStream.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 15BBAB5E75C406EB52666234F8D7A250 /* OSSHttpdns.m in Sources */ = {isa = PBXBuildFile; fileRef = 34AD6B77629EF6E1432ED0F009E85F10 /* OSSHttpdns.m */; }; 15CDD745889D2DEF8FC2D8B70F7EA7E5 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = F91075A92425F75F02E0E1C8D455AF79 /* Foundation.framework */; }; 15F76EA14E352A37AAEB9BFD234C689D /* TUIChatPopContextExtionView.h in Headers */ = {isa = PBXBuildFile; fileRef = EB361C03E5B03DACCD2D1F7D15A19F8D /* TUIChatPopContextExtionView.h */; settings = {ATTRIBUTES = (Public, ); }; }; 163E08920F38F4A3A74B0A35FD597187 /* TUIFileViewController_Minimalist.h in Headers */ = {isa = PBXBuildFile; fileRef = DC0B4DA09A4C7ACAD1E2999D1666D104 /* TUIFileViewController_Minimalist.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 164B67EBBDE420384CAF0F06920C792C /* LLScreenshotWindow.m in Sources */ = {isa = PBXBuildFile; fileRef = 5DD9C40E05539B7B6E58688BA870BC77 /* LLScreenshotWindow.m */; }; + 164B67EBBDE420384CAF0F06920C792C /* LLScreenshotWindow.m in Sources */ = {isa = PBXBuildFile; fileRef = EB313BC7A26F886148DD5DBE4DF6B8AF /* LLScreenshotWindow.m */; }; 1656B9D27D1BA93D6059B296C904133E /* TUIReplyPreviewBar_Minimalist.m in Sources */ = {isa = PBXBuildFile; fileRef = 4D0B68F7A77EDEFA15C6E04F186A7F3A /* TUIReplyPreviewBar_Minimalist.m */; }; 165A8DE46D543687290F8E1D51D840B5 /* TUIMessageCell_Minimalist.h in Headers */ = {isa = PBXBuildFile; fileRef = D823AC827B20FC55FDF20096733C2DED /* TUIMessageCell_Minimalist.h */; settings = {ATTRIBUTES = (Public, ); }; }; 1666974398EBC614E14C3ED751817DEC /* TUIReplyMessageCell_Minimalist.m in Sources */ = {isa = PBXBuildFile; fileRef = 72E629B3799C8A0D6ED71D0245E94C3D /* TUIReplyMessageCell_Minimalist.m */; }; - 168889E3E897E6D6102A2AA7F7C47496 /* JXCategoryIndicatorComponentView.h in Headers */ = {isa = PBXBuildFile; fileRef = 4A63CB94EA8C84203F71D1CA1C2DD532 /* JXCategoryIndicatorComponentView.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 16920A7DF362BA6B7BFF6373F9B3B351 /* NSDictionary+TUISafe.h in Headers */ = {isa = PBXBuildFile; fileRef = 70B022C3F6170B768EE43DBF5F1231B2 /* NSDictionary+TUISafe.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 168889E3E897E6D6102A2AA7F7C47496 /* JXCategoryIndicatorComponentView.h in Headers */ = {isa = PBXBuildFile; fileRef = 60F0ACFACE35B256864B519DB9B6FD16 /* JXCategoryIndicatorComponentView.h */; settings = {ATTRIBUTES = (Public, ); }; }; 169BAF0DC05D4A1120A42CD58CC2B734 /* TUIMessageCellConfig.m in Sources */ = {isa = PBXBuildFile; fileRef = DCB549AB857DE04EF1BDD48B0B2D30AA /* TUIMessageCellConfig.m */; }; - 16AFA6D6E8F1248018BCE8790512E025 /* UIBezierPath+YYAdd.h in Headers */ = {isa = PBXBuildFile; fileRef = 22F58C07C8461290EF57F06B810A2D66 /* UIBezierPath+YYAdd.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 16AFA6D6E8F1248018BCE8790512E025 /* UIBezierPath+YYAdd.h in Headers */ = {isa = PBXBuildFile; fileRef = C5D2969988E90C9E62DEF88128586039 /* UIBezierPath+YYAdd.h */; settings = {ATTRIBUTES = (Public, ); }; }; 16BCD075FF40919A76C360EC65C08D6D /* TUIImageMessageCell_Minimalist.m in Sources */ = {isa = PBXBuildFile; fileRef = 847E02600FDAECBC9FDB61964C06D149 /* TUIImageMessageCell_Minimalist.m */; }; 16E8AE5D56A9B2A4CE94E0524B766F36 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = F91075A92425F75F02E0E1C8D455AF79 /* Foundation.framework */; }; - 1709DA959BE17156FAA0A342D697AD9E /* LLFilterTextFieldModel.h in Headers */ = {isa = PBXBuildFile; fileRef = 4330020F4C521947AF26520C3C36D5E3 /* LLFilterTextFieldModel.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 17134C3258CDB162F0507654B177CAE3 /* RACUnit.h in Headers */ = {isa = PBXBuildFile; fileRef = 4054A82DBB97406AE6930F5DDF337D3D /* RACUnit.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 17341EDF872432C3966B77976F3E0470 /* JXCategoryTitleVerticalZoomCellModel.h in Headers */ = {isa = PBXBuildFile; fileRef = 20CA6B0B009D02EE41529269BB0B0177 /* JXCategoryTitleVerticalZoomCellModel.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 1736D947C34A78105163B59F020A544D /* OSSHttpResponseParser.m in Sources */ = {isa = PBXBuildFile; fileRef = BFA2719BB5CA9AB9B92A865360E40147 /* OSSHttpResponseParser.m */; }; - 1783296E08DA2357148CEDACCE3A9351 /* LLTitleCell.h in Headers */ = {isa = PBXBuildFile; fileRef = CE0E272099D446C2FD6837C47119FDC5 /* LLTitleCell.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 179413BD936A98D571223DDA39AB9786 /* UIActionSheet+RACSignalSupport.h in Headers */ = {isa = PBXBuildFile; fileRef = E26E811CF89B2B83F9EBF5C7AF9CC336 /* UIActionSheet+RACSignalSupport.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 17A4935F78766E41FC29D1D668146EF3 /* RACTupleSequence.h in Headers */ = {isa = PBXBuildFile; fileRef = 4BB5ECE45841E247C0A2B2E4EC46359D /* RACTupleSequence.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 17B48B33392526B1458B2457E3BB0A18 /* OSSDefine.h in Headers */ = {isa = PBXBuildFile; fileRef = 86F8615F32472DED5E41F60F5A63C866 /* OSSDefine.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 180A8BFAC72B52E31EDCF19406C20BB2 /* TUICore.bundle in Resources */ = {isa = PBXBuildFile; fileRef = 900B01806C65D7DCC5EC5ED03ECD0D03 /* TUICore.bundle */; }; - 181244DB18F7C1582B1E1E23866F1B4C /* LLCrashModel.m in Sources */ = {isa = PBXBuildFile; fileRef = C3646BA96354A02C0099985DF4298174 /* LLCrashModel.m */; }; - 1839437DDEA6EB16A5239F19484FDC2F /* NSIndexSet+RACSequenceAdditions.m in Sources */ = {isa = PBXBuildFile; fileRef = E60C781CFDEE02E3CB6E0439024B2C2C /* NSIndexSet+RACSequenceAdditions.m */; }; - 183E110CA013E24F20547A3F1C164DCF /* LLWidgetBorderComponent.m in Sources */ = {isa = PBXBuildFile; fileRef = 3CC8CD30E834C0DCF63FA6BA5782D962 /* LLWidgetBorderComponent.m */; }; - 183EE7C43F799CF27B036AE0A6112DF7 /* LLConvenientScreenshotComponent.h in Headers */ = {isa = PBXBuildFile; fileRef = CE1424F91B32D8E450782B368DE382A6 /* LLConvenientScreenshotComponent.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 16EE019CA76F9E38EA0374860056B703 /* decode.h in Headers */ = {isa = PBXBuildFile; fileRef = 014493B443F63C3E3682E9F5D1A7FF7D /* decode.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 1709DA959BE17156FAA0A342D697AD9E /* LLFilterTextFieldModel.h in Headers */ = {isa = PBXBuildFile; fileRef = E761F0F71FD3449DAC91AC2FC0119E53 /* LLFilterTextFieldModel.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 17134C3258CDB162F0507654B177CAE3 /* RACUnit.h in Headers */ = {isa = PBXBuildFile; fileRef = 6E8080977476EDE067C7237FB558235B /* RACUnit.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 17341EDF872432C3966B77976F3E0470 /* JXCategoryTitleVerticalZoomCellModel.h in Headers */ = {isa = PBXBuildFile; fileRef = BED68C538A19A37E9526D13D95F95CA9 /* JXCategoryTitleVerticalZoomCellModel.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 1736D947C34A78105163B59F020A544D /* OSSHttpResponseParser.m in Sources */ = {isa = PBXBuildFile; fileRef = B67587D4C6EDE3D3F984451E994D0B8B /* OSSHttpResponseParser.m */; }; + 1774A298FAFA92BC78E66AC99E59F872 /* lossless_enc_neon.c in Sources */ = {isa = PBXBuildFile; fileRef = 80A9E7D4BFA9F54864B54934B2C3B3CD /* lossless_enc_neon.c */; settings = {COMPILER_FLAGS = "-D_THREAD_SAFE -fno-objc-arc"; }; }; + 1783296E08DA2357148CEDACCE3A9351 /* LLTitleCell.h in Headers */ = {isa = PBXBuildFile; fileRef = AF2FAF58CD50FE84E591FC8FD56FF4A5 /* LLTitleCell.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 1793EBF429D3B819DF85B917A20C3072 /* UIDevice+QCloudFCUUID.m in Sources */ = {isa = PBXBuildFile; fileRef = 052F3DC77C8AA502465D6B2B089B0961 /* UIDevice+QCloudFCUUID.m */; }; + 179413BD936A98D571223DDA39AB9786 /* UIActionSheet+RACSignalSupport.h in Headers */ = {isa = PBXBuildFile; fileRef = B88A3739A28696C3C8546E4FA37BB037 /* UIActionSheet+RACSignalSupport.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 17A4935F78766E41FC29D1D668146EF3 /* RACTupleSequence.h in Headers */ = {isa = PBXBuildFile; fileRef = A573B609D6C8B39620770CD5BA15CD68 /* RACTupleSequence.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 17B48B33392526B1458B2457E3BB0A18 /* OSSDefine.h in Headers */ = {isa = PBXBuildFile; fileRef = C0BDD55090EA491AF820C3E1B6AA09D4 /* OSSDefine.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 17F4D68ACF34607576312AF772CE41BE /* QCloudUniversalPath.m in Sources */ = {isa = PBXBuildFile; fileRef = EFF85A1204CF96BC0A1D721E19FB41E8 /* QCloudUniversalPath.m */; }; + 181244DB18F7C1582B1E1E23866F1B4C /* LLCrashModel.m in Sources */ = {isa = PBXBuildFile; fileRef = ABCFAE80AC277547100AC9A23CC81757 /* LLCrashModel.m */; }; + 1839437DDEA6EB16A5239F19484FDC2F /* NSIndexSet+RACSequenceAdditions.m in Sources */ = {isa = PBXBuildFile; fileRef = E5E0E5B578A2414D1DF536E421A68252 /* NSIndexSet+RACSequenceAdditions.m */; }; + 183E110CA013E24F20547A3F1C164DCF /* LLWidgetBorderComponent.m in Sources */ = {isa = PBXBuildFile; fileRef = BBF62AF43F45AA5E1F4B4AD591E48609 /* LLWidgetBorderComponent.m */; }; + 183EE7C43F799CF27B036AE0A6112DF7 /* LLConvenientScreenshotComponent.h in Headers */ = {isa = PBXBuildFile; fileRef = AFFB2CEAD3DD982A686F05DC9DA2014D /* LLConvenientScreenshotComponent.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 184854BDED0C9D6456E0DAB1A8315A87 /* ssim_sse2.c in Sources */ = {isa = PBXBuildFile; fileRef = B36C796F49BEF7ABEF89640467C9035F /* ssim_sse2.c */; settings = {COMPILER_FLAGS = "-D_THREAD_SAFE -fno-objc-arc"; }; }; 1865B6CB6317AC90DF084409F0CD4152 /* TUIEvaluationCell.m in Sources */ = {isa = PBXBuildFile; fileRef = 6943F10B256A54258CAE5035FAA5B1A9 /* TUIEvaluationCell.m */; }; - 186B573F1BEB8A23419A02814A7741DB /* MJRefreshFooter.m in Sources */ = {isa = PBXBuildFile; fileRef = 48AF7830E71D577636207496D60CF788 /* MJRefreshFooter.m */; }; - 1903A0760105E2486B9EAB3AA45257B3 /* SDWebImage-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = B3AF33AAF8CAC88D6F3278A2696EE6AA /* SDWebImage-dummy.m */; }; + 18682E322F439D29319F66A3E9C4A9A0 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = F91075A92425F75F02E0E1C8D455AF79 /* Foundation.framework */; }; + 186B573F1BEB8A23419A02814A7741DB /* MJRefreshFooter.m in Sources */ = {isa = PBXBuildFile; fileRef = AFA6497AF7365FFB0A6AE8D6446BD7D0 /* MJRefreshFooter.m */; }; 194EC03A71DA3302E52801CF5B91A6F5 /* TUIChatMediaDataProvider.h in Headers */ = {isa = PBXBuildFile; fileRef = DF55EB1086CF9818E4F167559D118164 /* TUIChatMediaDataProvider.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 19721A64F1578BB051EAA69D53C068F9 /* OSSPutSymlinkRequest.m in Sources */ = {isa = PBXBuildFile; fileRef = 38841C117A37A6643DCB88F8A67D5E7D /* OSSPutSymlinkRequest.m */; }; + 19721A64F1578BB051EAA69D53C068F9 /* OSSPutSymlinkRequest.m in Sources */ = {isa = PBXBuildFile; fileRef = 8A0A2D55C1414A8E81DC33C523BA9110 /* OSSPutSymlinkRequest.m */; }; 199196A6294CC937CEE3958AD4E2C9EA /* TUIVoiceReplyQuoteViewData.m in Sources */ = {isa = PBXBuildFile; fileRef = 346BB8B8D2DCA50D7EDD6B1F4851028F /* TUIVoiceReplyQuoteViewData.m */; }; - 19A269F2FE0FA4F2AF8F2C68CFD25B43 /* NSObject+LL_Hierarchy.m in Sources */ = {isa = PBXBuildFile; fileRef = 4EBD3B0E13D269E8B237B7ADC85AEE2C /* NSObject+LL_Hierarchy.m */; }; + 19A269F2FE0FA4F2AF8F2C68CFD25B43 /* NSObject+LL_Hierarchy.m in Sources */ = {isa = PBXBuildFile; fileRef = 45F6156BAFF6E3C11F8C266239D12A47 /* NSObject+LL_Hierarchy.m */; }; 19B9A4DC53BEC02B8BC31B8E866993D8 /* TUIUserAuthorizationCenter.h in Headers */ = {isa = PBXBuildFile; fileRef = 2E0663BAB8B009B6E38E76EB2150B766 /* TUIUserAuthorizationCenter.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 19DACFADB04BA953A8491AC671B0C720 /* LLNetworkWindow.m in Sources */ = {isa = PBXBuildFile; fileRef = E560E18BB9B4ECA6400E78332BD04253 /* LLNetworkWindow.m */; }; - 19DFDD891E3940254CD1680E4779E818 /* UIColor+YYAdd.h in Headers */ = {isa = PBXBuildFile; fileRef = 545E4F91069F670EDDED415198AE6299 /* UIColor+YYAdd.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 19F8A68E37A49FF193C31BFFFF882400 /* UIView+YYText.m in Sources */ = {isa = PBXBuildFile; fileRef = 2DEFB767E19488518B5EBA2545010C59 /* UIView+YYText.m */; }; - 1A04F96D809081AD065C76C83B99965D /* YYCGUtilities.h in Headers */ = {isa = PBXBuildFile; fileRef = 48CADA1527BFF387596A012E48219AFE /* YYCGUtilities.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 19C113E078F6504608AF32089C60D9D3 /* NSButton+WebCache.m in Sources */ = {isa = PBXBuildFile; fileRef = 5C8E309E449353BA9E88041E725C3240 /* NSButton+WebCache.m */; }; + 19C2F560E7416DD8339E669039344748 /* QCloudSDKModuleManager.h in Headers */ = {isa = PBXBuildFile; fileRef = 5185439B556CBFA05DC9C6F974A9422B /* QCloudSDKModuleManager.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 19C76FF43F287D5446E77339B250E6B6 /* QCloudPutObjectCopyRequest.h in Headers */ = {isa = PBXBuildFile; fileRef = C9CBA92FBACD7C83AADAF41B7B4A6F26 /* QCloudPutObjectCopyRequest.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 19DACFADB04BA953A8491AC671B0C720 /* LLNetworkWindow.m in Sources */ = {isa = PBXBuildFile; fileRef = 27B972B0CD012A81F1BA6F314B6280C6 /* LLNetworkWindow.m */; }; + 19DFDD891E3940254CD1680E4779E818 /* UIColor+YYAdd.h in Headers */ = {isa = PBXBuildFile; fileRef = F7657EC539A94C7F0E4F7742CB6A5D5C /* UIColor+YYAdd.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 19F8A68E37A49FF193C31BFFFF882400 /* UIView+YYText.m in Sources */ = {isa = PBXBuildFile; fileRef = 5C73C1F8EEF212FDE5556FDC4A99AD2C /* UIView+YYText.m */; }; + 19FFEF3C65FFDF37B24E2997783F8A91 /* QCloudRequestOperation.m in Sources */ = {isa = PBXBuildFile; fileRef = D0B07744061C78005223DDAF28091705 /* QCloudRequestOperation.m */; }; + 1A04F96D809081AD065C76C83B99965D /* YYCGUtilities.h in Headers */ = {isa = PBXBuildFile; fileRef = F92837A12DF81376F8A497838A9EAA5D /* YYCGUtilities.h */; settings = {ATTRIBUTES = (Public, ); }; }; 1A4130EBF987B83BFBE872EB0B03F7E1 /* TUIMediaView_Minimalist.h in Headers */ = {isa = PBXBuildFile; fileRef = 40DE24D75001778BCF5E78BEFD743E56 /* TUIMediaView_Minimalist.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 1A49A2078BA4B66466FB930A909F6AFF /* QGMP4AnimatedImageFrame.h in Headers */ = {isa = PBXBuildFile; fileRef = 674CEB6319DA26A8EB6FA8EB7C2E0B0C /* QGMP4AnimatedImageFrame.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 1A510F19704819EA9F9C3CFAC77CDE04 /* LLRouter+Location.h in Headers */ = {isa = PBXBuildFile; fileRef = 9A3A444853E4BC17982A8D145003B844 /* LLRouter+Location.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 1A51CF9668347C9AB7F0DA8A9D149399 /* RACSerialDisposable.m in Sources */ = {isa = PBXBuildFile; fileRef = C7828D500F6093CD09FB8CC989E8AD0C /* RACSerialDisposable.m */; }; - 1A65647771E890A0F4EE898C97E8801A /* lossless_enc_msa.c in Sources */ = {isa = PBXBuildFile; fileRef = 776CFA1C203D83B99CA88C678E15F2BD /* lossless_enc_msa.c */; settings = {COMPILER_FLAGS = "-D_THREAD_SAFE -fno-objc-arc"; }; }; - 1A67437543BF681DFDFFDCB7505D7BDF /* LLLeftTitleCell.m in Sources */ = {isa = PBXBuildFile; fileRef = AEA5781AF75CFC8EEA535BE68D16170A /* LLLeftTitleCell.m */; }; - 1A83CE3F38F8B12A38D9310E93D22821 /* ToneCalculator.swift in Sources */ = {isa = PBXBuildFile; fileRef = 12D8D0DD804774D4BB031F4294F17C2C /* ToneCalculator.swift */; }; + 1A49A2078BA4B66466FB930A909F6AFF /* QGMP4AnimatedImageFrame.h in Headers */ = {isa = PBXBuildFile; fileRef = 7C774508195CE16AFEAF10E844CCB0E0 /* QGMP4AnimatedImageFrame.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 1A510F19704819EA9F9C3CFAC77CDE04 /* LLRouter+Location.h in Headers */ = {isa = PBXBuildFile; fileRef = 88DCBC3DE4800B8BDA0B6A9F2157250D /* LLRouter+Location.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 1A51CF9668347C9AB7F0DA8A9D149399 /* RACSerialDisposable.m in Sources */ = {isa = PBXBuildFile; fileRef = 9D8CA32B7B18331200E33A55F2B91C6C /* RACSerialDisposable.m */; }; + 1A67437543BF681DFDFFDCB7505D7BDF /* LLLeftTitleCell.m in Sources */ = {isa = PBXBuildFile; fileRef = 7711CAB336D62A25FA62660300F75B7A /* LLLeftTitleCell.m */; }; + 1A83CE3F38F8B12A38D9310E93D22821 /* ToneCalculator.swift in Sources */ = {isa = PBXBuildFile; fileRef = B041C72D07773284DD32739065F532D1 /* ToneCalculator.swift */; }; 1A88EA8B1B58F17A5F4F8286E7715761 /* TUIConversationCellData.h in Headers */ = {isa = PBXBuildFile; fileRef = 10824CEBAEAC448CE4E6B61396A4030A /* TUIConversationCellData.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 1A8F4D7FCCFAA0A692DB10B31D3C4A70 /* UITableViewHeaderFooterView+RACSignalSupport.h in Headers */ = {isa = PBXBuildFile; fileRef = BF3B9C219B5D8CA4E3427470D290553C /* UITableViewHeaderFooterView+RACSignalSupport.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 1A8F4D7FCCFAA0A692DB10B31D3C4A70 /* UITableViewHeaderFooterView+RACSignalSupport.h in Headers */ = {isa = PBXBuildFile; fileRef = B0C7E86F6A25D69A1020C7E430E9328C /* UITableViewHeaderFooterView+RACSignalSupport.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 1AB046078A83CDA65C634E3919FD286F /* OfflinePushExtBusinessInfo.h in Headers */ = {isa = PBXBuildFile; fileRef = FF884162ACA1B990362FA3FBCD33B392 /* OfflinePushExtBusinessInfo.h */; settings = {ATTRIBUTES = (Public, ); }; }; 1ABABD6E4294C399D90B094D5E3CEC62 /* TUIMemberCell.m in Sources */ = {isa = PBXBuildFile; fileRef = 4C51BC4BBEAB45670F0D5A20672BA6DA /* TUIMemberCell.m */; }; - 1AC287B3981A2BBFB60D36B73A936CA9 /* LLBaseView.h in Headers */ = {isa = PBXBuildFile; fileRef = 577EA99AF892FC80FDFB73795AE74976 /* LLBaseView.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 1AC287B3981A2BBFB60D36B73A936CA9 /* LLBaseView.h in Headers */ = {isa = PBXBuildFile; fileRef = 95B6840B1277532F157C0E5E204647E6 /* LLBaseView.h */; settings = {ATTRIBUTES = (Public, ); }; }; 1AC6A9469252C1A5F8C977952D2AADF9 /* TUIMessageBaseDataProvider+ProtectedAPI.h in Headers */ = {isa = PBXBuildFile; fileRef = 5591E78EC7BBBBCF6967AED1BDC523B1 /* TUIMessageBaseDataProvider+ProtectedAPI.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 1ACB47DBEEA8BEFEB3157972B052813D /* QGVAPMetalRenderer.h in Headers */ = {isa = PBXBuildFile; fileRef = 162CBC99F1F8BA87A87C3CE93BD47408 /* QGVAPMetalRenderer.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 1AD405BE4CB7F4A0AC212BEAC1E2137B /* OSSDeleteMultipleObjectsRequest.h in Headers */ = {isa = PBXBuildFile; fileRef = 8F62C974D96C0C3FC85AB3BF849997B4 /* OSSDeleteMultipleObjectsRequest.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 1AEBA7397BE356EB62FBA07D451124BD /* YBIBImageData.h in Headers */ = {isa = PBXBuildFile; fileRef = 83B805B5BBF823B4C369B80E72F3F789 /* YBIBImageData.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 1AF975E4CDD2646CF6F548029788EA20 /* VAPMacros.h in Headers */ = {isa = PBXBuildFile; fileRef = CF53369A8B0DF0513BDF05E8284107D4 /* VAPMacros.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 1AFDDE174F7DFBE7FB3063086F1F525A /* SDMemoryCache.h in Headers */ = {isa = PBXBuildFile; fileRef = 07973103A0C3B933766D4185DF0E77B0 /* SDMemoryCache.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 1ACB47DBEEA8BEFEB3157972B052813D /* QGVAPMetalRenderer.h in Headers */ = {isa = PBXBuildFile; fileRef = 9FD3E83627951C9F02E6974ADBF35643 /* QGVAPMetalRenderer.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 1AD405BE4CB7F4A0AC212BEAC1E2137B /* OSSDeleteMultipleObjectsRequest.h in Headers */ = {isa = PBXBuildFile; fileRef = EF4E32640150F200E41FBF0CA7EDF0E2 /* OSSDeleteMultipleObjectsRequest.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 1AEBA7397BE356EB62FBA07D451124BD /* YBIBImageData.h in Headers */ = {isa = PBXBuildFile; fileRef = F0AD291BD2180AE0EEB6B5E15812E68F /* YBIBImageData.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 1AF975E4CDD2646CF6F548029788EA20 /* VAPMacros.h in Headers */ = {isa = PBXBuildFile; fileRef = 558DF22DBEE747C372FF9D653111002F /* VAPMacros.h */; settings = {ATTRIBUTES = (Public, ); }; }; 1B084B925CF7B31DC8519D8D4739882C /* TUICaptureVideoPreviewViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 46D80C90D21F3263EE737B6A267C24B2 /* TUICaptureVideoPreviewViewController.m */; }; - 1B0923636CA1091FCFB6BEBBC804A9C9 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = F91075A92425F75F02E0E1C8D455AF79 /* Foundation.framework */; }; - 1B09462282C6957916FA8EF0CDD0D811 /* SDmetamacros.h in Headers */ = {isa = PBXBuildFile; fileRef = F97A274287A7815903F4EBEA65A06146 /* SDmetamacros.h */; settings = {ATTRIBUTES = (Private, ); }; }; - 1B207575AE129EE7B0D7E92DA44878F5 /* LLTitleCellCategoryModel.h in Headers */ = {isa = PBXBuildFile; fileRef = 6C970AEE6236BCF58330D036D69156D5 /* LLTitleCellCategoryModel.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 1B34A1A983BA69178D62EF766FFEA3CB /* lossless_sse2.c in Sources */ = {isa = PBXBuildFile; fileRef = 706EAA8EF97A9EF8B58B4B37A8C70B84 /* lossless_sse2.c */; settings = {COMPILER_FLAGS = "-D_THREAD_SAFE -fno-objc-arc"; }; }; - 1B3954A6F476F0FC716EB39384DCC60B /* LLSandboxPreviewController.h in Headers */ = {isa = PBXBuildFile; fileRef = FC7F4FCE5B2841512C8B56B3595C9871 /* LLSandboxPreviewController.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 1B3A373C0E85F9A1613EAD66EE6CE24A /* LLMoveView.h in Headers */ = {isa = PBXBuildFile; fileRef = 149D41AE89B83465881446CCD18DD1BF /* LLMoveView.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 1B5B440676B88E51CC477BE0C3EB7BD4 /* YBIBDataMediator.m in Sources */ = {isa = PBXBuildFile; fileRef = B30A138F614E2D96E72C6CFAA3EF1931 /* YBIBDataMediator.m */; }; - 1B6116293EEE0C3286026370537AA5CE /* OSSAllRequestNeededMessage.m in Sources */ = {isa = PBXBuildFile; fileRef = 0A1F1E2967738DEB94519ABCA86CD5A1 /* OSSAllRequestNeededMessage.m */; }; - 1B692E7030310DA1F7F2B6D05F86E04B /* LLScreenshotActionView.m in Sources */ = {isa = PBXBuildFile; fileRef = 2DAEBF47DAD907A4319FCECEBF149DCC /* LLScreenshotActionView.m */; }; - 1B76FA373EBE72CFEC21821905D5D5BA /* NSString+LL_Utils.h in Headers */ = {isa = PBXBuildFile; fileRef = 769888229E12F2BBE7BA0A489F5B4DFC /* NSString+LL_Utils.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 1B7CFADD01332020D97DD468BF5DADA8 /* YYAnimatedImageView.m in Sources */ = {isa = PBXBuildFile; fileRef = 5A44C915129CF5FB29F75D6E99668448 /* YYAnimatedImageView.m */; }; + 1B207575AE129EE7B0D7E92DA44878F5 /* LLTitleCellCategoryModel.h in Headers */ = {isa = PBXBuildFile; fileRef = 9BF1D7415B65F00E54E6FB8A7A71EB1D /* LLTitleCellCategoryModel.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 1B3954A6F476F0FC716EB39384DCC60B /* LLSandboxPreviewController.h in Headers */ = {isa = PBXBuildFile; fileRef = C619C80864BD2CCD830BB0FB030E262C /* LLSandboxPreviewController.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 1B3A373C0E85F9A1613EAD66EE6CE24A /* LLMoveView.h in Headers */ = {isa = PBXBuildFile; fileRef = 9ABFDA5D5519B2CBB9975196E9D4AFA5 /* LLMoveView.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 1B5B440676B88E51CC477BE0C3EB7BD4 /* YBIBDataMediator.m in Sources */ = {isa = PBXBuildFile; fileRef = 29AED64486413DE1C23D030EBAA9D51A /* YBIBDataMediator.m */; }; + 1B6116293EEE0C3286026370537AA5CE /* OSSAllRequestNeededMessage.m in Sources */ = {isa = PBXBuildFile; fileRef = 1AF888AD2D01349BB1539729BFBAE5CF /* OSSAllRequestNeededMessage.m */; }; + 1B692E7030310DA1F7F2B6D05F86E04B /* LLScreenshotActionView.m in Sources */ = {isa = PBXBuildFile; fileRef = 672E5FEEA04009375B5912652BA1C31F /* LLScreenshotActionView.m */; }; + 1B76FA373EBE72CFEC21821905D5D5BA /* NSString+LL_Utils.h in Headers */ = {isa = PBXBuildFile; fileRef = CF28D596AE82B37A33C0FDA2C9F674A4 /* NSString+LL_Utils.h */; settings = {ATTRIBUTES = (Public, ); }; }; 1B8F7D81A81335BD6EE944E32F282155 /* TUIChatShortcutMenuView.h in Headers */ = {isa = PBXBuildFile; fileRef = 4ECBC2998B1180A23676A54D19B5A5E4 /* TUIChatShortcutMenuView.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 1B9D8386A8FFB1D6F356D2CF34C963C8 /* IQUIView+IQKeyboardToolbar.h in Headers */ = {isa = PBXBuildFile; fileRef = 93A0F6F8690822149BE632E155F778FE /* IQUIView+IQKeyboardToolbar.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 1BA5E248221E2737C0395D4D9BA7232A /* YYImage.m in Sources */ = {isa = PBXBuildFile; fileRef = 5A4D8F763DF17C7ABE0F9CD0E0094337 /* YYImage.m */; }; - 1BAC69260156BD0B7C09BAE5D070F0D0 /* YBIBDataMediator.h in Headers */ = {isa = PBXBuildFile; fileRef = E2ED00FBD4C5E1E3B13C45A817CDD7AD /* YBIBDataMediator.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 1BB983BF6D8EEE655E46C1827B440BDC /* LLRouter+Location.m in Sources */ = {isa = PBXBuildFile; fileRef = 925219E1D82F01F5443A91853768502D /* LLRouter+Location.m */; }; - 1C0FA6017CAD67C1A80FFA70024FC6FD /* JXCategoryIndicatorCell.m in Sources */ = {isa = PBXBuildFile; fileRef = ABA8E1CEBD8426E600EEAB98C79995D1 /* JXCategoryIndicatorCell.m */; }; - 1C1BC9F0555B36914FF5278D30152DE6 /* JXCategoryNumberView.h in Headers */ = {isa = PBXBuildFile; fileRef = C305ECE4CDC593B8966FC35CFEE40E8E /* JXCategoryNumberView.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 1B987F2F6A7E8E26E65DB160059FC9B4 /* NSError+QCloudNetworking.m in Sources */ = {isa = PBXBuildFile; fileRef = A9C922E189897BDF10AF0987565B9277 /* NSError+QCloudNetworking.m */; }; + 1B9D8386A8FFB1D6F356D2CF34C963C8 /* IQUIView+IQKeyboardToolbar.h in Headers */ = {isa = PBXBuildFile; fileRef = 241C716412E075F29B1A0C7266EC0C5B /* IQUIView+IQKeyboardToolbar.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 1BAC69260156BD0B7C09BAE5D070F0D0 /* YBIBDataMediator.h in Headers */ = {isa = PBXBuildFile; fileRef = 5A4C7B30FB80EE6DA2BC816069ABC236 /* YBIBDataMediator.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 1BB983BF6D8EEE655E46C1827B440BDC /* LLRouter+Location.m in Sources */ = {isa = PBXBuildFile; fileRef = 2DC75F3F2A316111778CCAFE092D45E1 /* LLRouter+Location.m */; }; + 1C0FA6017CAD67C1A80FFA70024FC6FD /* JXCategoryIndicatorCell.m in Sources */ = {isa = PBXBuildFile; fileRef = 73C7D844511054DD693E1F939A8C33BF /* JXCategoryIndicatorCell.m */; }; + 1C1981F586580F36AD0A64C5CF544828 /* QCloudSupervisoryRecord.h in Headers */ = {isa = PBXBuildFile; fileRef = 6A2FC80F534ADF9E089715A5F9199080 /* QCloudSupervisoryRecord.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 1C1BC9F0555B36914FF5278D30152DE6 /* JXCategoryNumberView.h in Headers */ = {isa = PBXBuildFile; fileRef = A43FC8D677FBFD53EFF8F43679E524BE /* JXCategoryNumberView.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 1C22B241E957CFDBB1D07D3A71036180 /* QCloudFileOffsetBody.h in Headers */ = {isa = PBXBuildFile; fileRef = 6C10AE388C2BA01DAA2F0CD6469EE068 /* QCloudFileOffsetBody.h */; settings = {ATTRIBUTES = (Public, ); }; }; 1C32D148086B522735E5F594A1A5E83C /* TUIMemberCellData.h in Headers */ = {isa = PBXBuildFile; fileRef = 6410F3572F9138679FC972A9B789A516 /* TUIMemberCellData.h */; settings = {ATTRIBUTES = (Public, ); }; }; 1C33563366E431D94591828C74345802 /* TUICaptureVideoPreviewViewController.h in Headers */ = {isa = PBXBuildFile; fileRef = 929A960D01E2CCD3DED5C21784B95109 /* TUICaptureVideoPreviewViewController.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 1C5C3CF2E557AB6152CB1B8AA84A091F /* LLTitleSwitchCellView.h in Headers */ = {isa = PBXBuildFile; fileRef = BFA5BEDAEA2B4B04402026A47EA1FF06 /* LLTitleSwitchCellView.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 1C6A9BE75AF46B08D04DEBB8DA4D687A /* NSObject+RACSelectorSignal.m in Sources */ = {isa = PBXBuildFile; fileRef = F94A7CE692EE89E7ECAD65E1F22AC0CE /* NSObject+RACSelectorSignal.m */; }; - 1CB3978B07A69A3A020E5CF64D0AAF29 /* YYTextUtilities.m in Sources */ = {isa = PBXBuildFile; fileRef = 64B314B57DC5CC28F866C71DA0A90BDC /* YYTextUtilities.m */; }; - 1CDFABA9B2A06A4238E706017BE1F38A /* RACScopedDisposable.h in Headers */ = {isa = PBXBuildFile; fileRef = 1DFCD9D1F043F199564DA45EC1E218EC /* RACScopedDisposable.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 1D00181E61A74B66B145897150943E83 /* IQUIView+Hierarchy.h in Headers */ = {isa = PBXBuildFile; fileRef = 8F2EF24CADB69C8A3AEA7A8FE89F95E8 /* IQUIView+Hierarchy.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 1D1E7D0BB03DA45493DC69423238FA9F /* GPBArray.h in Headers */ = {isa = PBXBuildFile; fileRef = EF2AEDAE9A213E867E8C5D7CFC957F67 /* GPBArray.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 1DA6425591FB0175B15CD159F3DE1152 /* QGBaseDecoder.m in Sources */ = {isa = PBXBuildFile; fileRef = 5B912AA106374EFEF87FF032DC814DAD /* QGBaseDecoder.m */; }; - 1DAB5545C9D05F2EC60A1D938A24ED3F /* GPBTimestamp.pbobjc.m in Sources */ = {isa = PBXBuildFile; fileRef = 44D5CF3C4D616174401BEF8CCEECF216 /* GPBTimestamp.pbobjc.m */; settings = {COMPILER_FLAGS = "-fno-objc-arc"; }; }; - 1DC161351EBD409CC622E826340E4FD8 /* JXCategoryTitleVerticalZoomCell.h in Headers */ = {isa = PBXBuildFile; fileRef = C2B9A16A2621EE7B88699C69BDF6B6D1 /* JXCategoryTitleVerticalZoomCell.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 1C5C3CF2E557AB6152CB1B8AA84A091F /* LLTitleSwitchCellView.h in Headers */ = {isa = PBXBuildFile; fileRef = FBCCAA9179C058685DA8DD825C11AEC2 /* LLTitleSwitchCellView.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 1C6A9BE75AF46B08D04DEBB8DA4D687A /* NSObject+RACSelectorSignal.m in Sources */ = {isa = PBXBuildFile; fileRef = B32E21934BB2E8E0CED0C7F3AE0919D7 /* NSObject+RACSelectorSignal.m */; }; + 1CB3978B07A69A3A020E5CF64D0AAF29 /* YYTextUtilities.m in Sources */ = {isa = PBXBuildFile; fileRef = 9F9B08AD35EE6AE7E86E91C31D8A0F8B /* YYTextUtilities.m */; }; + 1CDFABA9B2A06A4238E706017BE1F38A /* RACScopedDisposable.h in Headers */ = {isa = PBXBuildFile; fileRef = 7BA596AF09DC25D4F318AC46F7C2DE57 /* RACScopedDisposable.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 1CF603ECBB53C159F112D436B98F2164 /* bit_writer_utils.c in Sources */ = {isa = PBXBuildFile; fileRef = 65F07C155D2D631830BBEFC4B3175AEB /* bit_writer_utils.c */; settings = {COMPILER_FLAGS = "-D_THREAD_SAFE -fno-objc-arc"; }; }; + 1CFE8430D74AFCAE00AE9BC26D991597 /* QCloudXMLDictionary.h in Headers */ = {isa = PBXBuildFile; fileRef = 1F082B671EE3CBA5A36ECBB1394A10FB /* QCloudXMLDictionary.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 1D00181E61A74B66B145897150943E83 /* IQUIView+Hierarchy.h in Headers */ = {isa = PBXBuildFile; fileRef = 1031BE5D760A9D6E9F25A5C9048469B3 /* IQUIView+Hierarchy.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 1D041E2F10BFC8928AF292E41D751185 /* QCloudBizHTTPRequest.h in Headers */ = {isa = PBXBuildFile; fileRef = 74EB775AD342740E22D7202CF44739C7 /* QCloudBizHTTPRequest.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 1D1E7D0BB03DA45493DC69423238FA9F /* GPBArray.h in Headers */ = {isa = PBXBuildFile; fileRef = 838794DEBE70D2339D218F6BC2E11FEF /* GPBArray.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 1DA6425591FB0175B15CD159F3DE1152 /* QGBaseDecoder.m in Sources */ = {isa = PBXBuildFile; fileRef = 74E90077F43AB33C2B68679AA9A70863 /* QGBaseDecoder.m */; }; + 1DAB5545C9D05F2EC60A1D938A24ED3F /* GPBTimestamp.pbobjc.m in Sources */ = {isa = PBXBuildFile; fileRef = DBBE92C497FB7032E00ECB99BEAAABD8 /* GPBTimestamp.pbobjc.m */; settings = {COMPILER_FLAGS = "-fno-objc-arc"; }; }; + 1DBD47E3CBCD2A8998F50A75FE960DEC /* vp8i_dec.h in Headers */ = {isa = PBXBuildFile; fileRef = 334DED8C53FD541D90D3B63F4C9CE8E1 /* vp8i_dec.h */; settings = {ATTRIBUTES = (Project, ); }; }; + 1DC161351EBD409CC622E826340E4FD8 /* JXCategoryTitleVerticalZoomCell.h in Headers */ = {isa = PBXBuildFile; fileRef = 513EDB94C0EFD0FB669D4887555BA589 /* JXCategoryTitleVerticalZoomCell.h */; settings = {ATTRIBUTES = (Public, ); }; }; 1DD390AAE4117EFC349CF165BF2F1F4A /* TUIRepliesDetailViewController.h in Headers */ = {isa = PBXBuildFile; fileRef = 13CC9D78787F0E0390A490F2BA590C48 /* TUIRepliesDetailViewController.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 1E0719023EC9A4D6E51D34C618762348 /* YYImageCoder.m in Sources */ = {isa = PBXBuildFile; fileRef = 80465901921C31FCB30E524C8CD52297 /* YYImageCoder.m */; }; - 1E164D7C173C2F8DE4FE3B9BCA1B7D5E /* LLWidgetBorderWindow.h in Headers */ = {isa = PBXBuildFile; fileRef = 2941012AC32BDBEE3D77B37160DC4FBD /* LLWidgetBorderWindow.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 1E164D7C173C2F8DE4FE3B9BCA1B7D5E /* LLWidgetBorderWindow.h in Headers */ = {isa = PBXBuildFile; fileRef = 29CBCFAADE686D81BA69E3799EBE3789 /* LLWidgetBorderWindow.h */; settings = {ATTRIBUTES = (Public, ); }; }; 1E21EC92014C5CBC9302156F4AD875E6 /* TUIAIDenoiseSignatureManager.h in Headers */ = {isa = PBXBuildFile; fileRef = CB1AD5888C5F20CC7583A80D346B3A81 /* TUIAIDenoiseSignatureManager.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 1E316F966BC4E74A30EB1F5AB1271E95 /* UIImage+YYWebImage.m in Sources */ = {isa = PBXBuildFile; fileRef = EEBEDD218764032003B5BF12AD62BE02 /* UIImage+YYWebImage.m */; }; - 1E68EA83555FEA00CE72842EE243900E /* TZImagePickerController-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 28B71C7F00C85A72DFC0FDAE0D29801C /* TZImagePickerController-dummy.m */; }; - 1E758825FB8307A4E0FFEF3CD16CEBD7 /* SDWebImageError.m in Sources */ = {isa = PBXBuildFile; fileRef = B9915BD4B37F03DE533465064F22DC10 /* SDWebImageError.m */; }; - 1EB0F9BC9841E472E1B6E1B0ADD3007C /* FMDB-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 5DF2F527B07456732064F6F5B3C39379 /* FMDB-dummy.m */; }; - 1EB9BE5FF838870876DCE0845DB1C834 /* MQTTCFSocketDecoder.m in Sources */ = {isa = PBXBuildFile; fileRef = 2031054870ACAE160DB061A19CD5B9FA /* MQTTCFSocketDecoder.m */; }; - 1EC9C8720D4F501DDA72C288D03DEC4E /* filters_mips_dsp_r2.c in Sources */ = {isa = PBXBuildFile; fileRef = 2E972EED29A38A4EF5B225DB757B975C /* filters_mips_dsp_r2.c */; settings = {COMPILER_FLAGS = "-D_THREAD_SAFE -fno-objc-arc"; }; }; - 1F255700661347843AD0580B1AA7D6A5 /* RACScheduler+Subclass.h in Headers */ = {isa = PBXBuildFile; fileRef = EB2977ADC464CB806A515F61CE03F0F0 /* RACScheduler+Subclass.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 1F28BB0791FBFEBE82B4CF09CC87D338 /* common_dec.h in Headers */ = {isa = PBXBuildFile; fileRef = C62A1642783C59A2A71ACACE461E7F13 /* common_dec.h */; settings = {ATTRIBUTES = (Project, ); }; }; + 1E316F966BC4E74A30EB1F5AB1271E95 /* UIImage+YYWebImage.m in Sources */ = {isa = PBXBuildFile; fileRef = 623F3004FBB3625FB6DE1B1DA2871059 /* UIImage+YYWebImage.m */; }; + 1E68EA83555FEA00CE72842EE243900E /* TZImagePickerController-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = A30C065247D0D713F216F91EB2CCE0A1 /* TZImagePickerController-dummy.m */; }; + 1E7A2784DC4E0347AB6BFA4BB92AFBBC /* lossless_enc_msa.c in Sources */ = {isa = PBXBuildFile; fileRef = 69365D42E1B30FF35DC8561E851C72D8 /* lossless_enc_msa.c */; settings = {COMPILER_FLAGS = "-D_THREAD_SAFE -fno-objc-arc"; }; }; + 1E7E7FD4804A0853A98EB2B394F6EFE8 /* picture_psnr_enc.c in Sources */ = {isa = PBXBuildFile; fileRef = B03A7927C1DBBD7EC530C86B7C22BCE1 /* picture_psnr_enc.c */; settings = {COMPILER_FLAGS = "-D_THREAD_SAFE -fno-objc-arc"; }; }; + 1E97AF0E5440658BC17A2B3658916169 /* common_sse41.h in Headers */ = {isa = PBXBuildFile; fileRef = D86DA65E0F51A4D4E5169E34D21247A5 /* common_sse41.h */; settings = {ATTRIBUTES = (Project, ); }; }; + 1EB0F9BC9841E472E1B6E1B0ADD3007C /* FMDB-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = A7419C5AE8251BEFC0F64A5B6585B79A /* FMDB-dummy.m */; }; + 1EB9BE5FF838870876DCE0845DB1C834 /* MQTTCFSocketDecoder.m in Sources */ = {isa = PBXBuildFile; fileRef = FA706F595B8ECCEB0E77FAEC1B217A7B /* MQTTCFSocketDecoder.m */; }; + 1ED89740B89EDD77218FC43513F375F6 /* QCloudAppendObjectRequest.m in Sources */ = {isa = PBXBuildFile; fileRef = 4DFC0BEE18F9B338EBED87AC7B5F8AA3 /* QCloudAppendObjectRequest.m */; }; + 1F255700661347843AD0580B1AA7D6A5 /* RACScheduler+Subclass.h in Headers */ = {isa = PBXBuildFile; fileRef = F5F5F218E51C83DB84A07324371BD32B /* RACScheduler+Subclass.h */; settings = {ATTRIBUTES = (Public, ); }; }; 1F2A15A88E68374531919D6AA878B072 /* TUIConversationCell_Minimalist.m in Sources */ = {isa = PBXBuildFile; fileRef = C29756442762FD77052A400C23560F33 /* TUIConversationCell_Minimalist.m */; }; + 1F4D555FB782C754FB11E8EACD4F54D5 /* QCloudSupervisorySession.h in Headers */ = {isa = PBXBuildFile; fileRef = 0A6AECE95982DB22F5E502FCB987D0DB /* QCloudSupervisorySession.h */; settings = {ATTRIBUTES = (Public, ); }; }; 1F51F5B325F8FF9B667244676155648D /* TUIRecordView.m in Sources */ = {isa = PBXBuildFile; fileRef = 86CB648AB8AA849054A90FDEE3115821 /* TUIRecordView.m */; }; - 1F6A039816A26CD2C96A4D490BFD4719 /* UIView+YYAdd.m in Sources */ = {isa = PBXBuildFile; fileRef = 8F94F25170156C8AF5B2D2AC234DFC9B /* UIView+YYAdd.m */; }; - 1F778CA18D1F4A50D9F15280B25D10EB /* JXCategoryTitleImageCellModel.h in Headers */ = {isa = PBXBuildFile; fileRef = 470C958CEF97EF9DCAEA9EE882D6BF21 /* JXCategoryTitleImageCellModel.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 1F6A039816A26CD2C96A4D490BFD4719 /* UIView+YYAdd.m in Sources */ = {isa = PBXBuildFile; fileRef = FB55D561B0427F73A37BDD783B483A09 /* UIView+YYAdd.m */; }; + 1F778CA18D1F4A50D9F15280B25D10EB /* JXCategoryTitleImageCellModel.h in Headers */ = {isa = PBXBuildFile; fileRef = 02A1DC10EF0C09312CD645E0AF3D7439 /* JXCategoryTitleImageCellModel.h */; settings = {ATTRIBUTES = (Public, ); }; }; 1F9916BE8D97E615AB6FD97C16022A7C /* TUIConversationCellData_Minimalist.h in Headers */ = {isa = PBXBuildFile; fileRef = 91B5CBEF9476C1128396E8D8CA480DFB /* TUIConversationCellData_Minimalist.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 1FA2D98BDA02FCFCB1EF5FE132845695 /* MQTTMessage.m in Sources */ = {isa = PBXBuildFile; fileRef = F8DC3F5E134F8832F84B05512E11FC51 /* MQTTMessage.m */; }; + 1FA2D98BDA02FCFCB1EF5FE132845695 /* MQTTMessage.m in Sources */ = {isa = PBXBuildFile; fileRef = A0A728336F6246D24DED8C58925854E5 /* MQTTMessage.m */; }; 1FAF73836D42F14AC6E3EBA461DC5DC1 /* TUIGroupPendencyController.h in Headers */ = {isa = PBXBuildFile; fileRef = 3AF18CA26422804654DF44D2F04846A7 /* TUIGroupPendencyController.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 1FBC61AD6C848603C1B3AE2B8CE82C0F /* YBIBImageCache+Internal.h in Headers */ = {isa = PBXBuildFile; fileRef = F0477B3BAFFDA16CA822D19B6277CDCF /* YBIBImageCache+Internal.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 1FBC61AD6C848603C1B3AE2B8CE82C0F /* YBIBImageCache+Internal.h in Headers */ = {isa = PBXBuildFile; fileRef = 1CE1DA34852DAF66DAD591519DC73EE7 /* YBIBImageCache+Internal.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 20178306661E1BEF7B96CDC1FAC1FB4F /* sharpyuv_sse2.c in Sources */ = {isa = PBXBuildFile; fileRef = A134B62F97284007A18D1FEA61377950 /* sharpyuv_sse2.c */; settings = {COMPILER_FLAGS = "-D_THREAD_SAFE -fno-objc-arc"; }; }; + 2017B51D3FD025A213FD8964EE2D4828 /* QCloudPutObjectRequest+CustomBuild.m in Sources */ = {isa = PBXBuildFile; fileRef = 1E30DD2E6EACC0D6E1AC4B882A63B165 /* QCloudPutObjectRequest+CustomBuild.m */; }; + 20457E2CD2C85D05F0E1103073208078 /* analysis_enc.c in Sources */ = {isa = PBXBuildFile; fileRef = 2897465C7E615AE1516A01D76DDD4CF0 /* analysis_enc.c */; settings = {COMPILER_FLAGS = "-D_THREAD_SAFE -fno-objc-arc"; }; }; 2057F6562DC29DA42E08146B61CB9C67 /* TUIGroupPendencyDataProvider.h in Headers */ = {isa = PBXBuildFile; fileRef = 97B154008DDCC90A8341E90151A21F2D /* TUIGroupPendencyDataProvider.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 2069D3A0935460B9F9FC98F93927B1D7 /* NSBezierPath+SDRoundedCorners.h in Headers */ = {isa = PBXBuildFile; fileRef = 9EF9B43E5C6306C31F727D78C525E967 /* NSBezierPath+SDRoundedCorners.h */; settings = {ATTRIBUTES = (Private, ); }; }; - 207791430D1E92DF86EA8E7CE685BE30 /* RACSignalSequence.m in Sources */ = {isa = PBXBuildFile; fileRef = 7ABDB6DAEBD6804A541E75AAE3ECBBA7 /* RACSignalSequence.m */; }; - 208B003FC8B86A3610F6345B722CB640 /* SDWebImageCacheKeyFilter.h in Headers */ = {isa = PBXBuildFile; fileRef = 29E19CF0E6671A589604E325D5B5310C /* SDWebImageCacheKeyFilter.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 2090A8784B34EEB48CF93B29A206CFD1 /* OSSBolts.m in Sources */ = {isa = PBXBuildFile; fileRef = 7C07DEBF5092E04D597ADC1DC8509A4C /* OSSBolts.m */; }; - 20D5706AD3ED295B4FBACD8825DC3A1E /* JXPagerListRefreshView.h in Headers */ = {isa = PBXBuildFile; fileRef = 6F77708E280007080CDA4B397032C007 /* JXPagerListRefreshView.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 20E686FAD25DE13DBF0100E5EA1AD736 /* NSObject+LL_Runtime.m in Sources */ = {isa = PBXBuildFile; fileRef = A19178061F1FBDC75171A65E0BDC5651 /* NSObject+LL_Runtime.m */; }; - 20EBE3D9DF1CEEE31D37208650BF227F /* UIPasteboard+YYText.h in Headers */ = {isa = PBXBuildFile; fileRef = 19F3149D5D563AEB54551B9A84B47865 /* UIPasteboard+YYText.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 20EF28E3B7DFA61B05BC046A45B87E3D /* YYWebImageOperation.m in Sources */ = {isa = PBXBuildFile; fileRef = AEC23BD1487B0F695EE3C72A92218241 /* YYWebImageOperation.m */; }; - 20FBBC12322412237D48D3695D98E043 /* JXCategoryDotView.m in Sources */ = {isa = PBXBuildFile; fileRef = 4479C9CE8CBE5C54A6538FA431D9EE7F /* JXCategoryDotView.m */; }; - 2106112EF01B53D54A2E3E8692DD9F3E /* OSSBolts.h in Headers */ = {isa = PBXBuildFile; fileRef = 1A9FADDA2D43F976F452DCD9C6C75C42 /* OSSBolts.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 216F4E6B1B9D42BCC30BE260BC356474 /* upsampling.c in Sources */ = {isa = PBXBuildFile; fileRef = 6C7AE35EA52B309C094DCF8EBBA6810D /* upsampling.c */; settings = {COMPILER_FLAGS = "-D_THREAD_SAFE -fno-objc-arc"; }; }; - 2175B894008D948C762468307BA677B8 /* RTLManager.m in Sources */ = {isa = PBXBuildFile; fileRef = 65226C8099E6CB9B0B3B9DF6ED9D7BA8 /* RTLManager.m */; }; + 207767E3C84AFE84909E4E5B68D83361 /* QCloudUploadPartRequestRetryHandler.m in Sources */ = {isa = PBXBuildFile; fileRef = 9E0C10E8175502CA91376FA006DC639B /* QCloudUploadPartRequestRetryHandler.m */; }; + 207791430D1E92DF86EA8E7CE685BE30 /* RACSignalSequence.m in Sources */ = {isa = PBXBuildFile; fileRef = AC4D329644DEE93BABC33463AEDA1D67 /* RACSignalSequence.m */; }; + 208BEDB36FB621C1B663E1C0FC7C1C70 /* filters_utils.c in Sources */ = {isa = PBXBuildFile; fileRef = C91DCFA49F944029C6FC01F11E1523C2 /* filters_utils.c */; settings = {COMPILER_FLAGS = "-D_THREAD_SAFE -fno-objc-arc"; }; }; + 2090A8784B34EEB48CF93B29A206CFD1 /* OSSBolts.m in Sources */ = {isa = PBXBuildFile; fileRef = A98B45B96F67A668A3EBE9B4D3BD12EF /* OSSBolts.m */; }; + 20931126768579145590E20B9C13D2A9 /* random_utils.h in Headers */ = {isa = PBXBuildFile; fileRef = 9177A1E1CB5989389C44C78FE0A269BA /* random_utils.h */; settings = {ATTRIBUTES = (Project, ); }; }; + 20A05486F312C1B722CA644B7DB2D261 /* dsp.h in Headers */ = {isa = PBXBuildFile; fileRef = 5E216BE9228887E06127F9CE98FF3C16 /* dsp.h */; settings = {ATTRIBUTES = (Project, ); }; }; + 20BB3C9D99AB44BE4296DC7C6D65F593 /* QCloudURLTools.h in Headers */ = {isa = PBXBuildFile; fileRef = EAAC33A7F3159675ED218F9748204503 /* QCloudURLTools.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 20C8C3F1EAD912C389E97AED712EEFA5 /* NSButton+WebCache.h in Headers */ = {isa = PBXBuildFile; fileRef = BCF2A79A1CCAD410454C190955386D1C /* NSButton+WebCache.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 20D5706AD3ED295B4FBACD8825DC3A1E /* JXPagerListRefreshView.h in Headers */ = {isa = PBXBuildFile; fileRef = 9769F3CB66237CD67D3373761DCB0AAC /* JXPagerListRefreshView.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 20E686FAD25DE13DBF0100E5EA1AD736 /* NSObject+LL_Runtime.m in Sources */ = {isa = PBXBuildFile; fileRef = 5842D6A6D34AB9EC8BDFC6AD6FE2FF4A /* NSObject+LL_Runtime.m */; }; + 20EBE3D9DF1CEEE31D37208650BF227F /* UIPasteboard+YYText.h in Headers */ = {isa = PBXBuildFile; fileRef = 2B9D372EBAFFD39011BBCC04E81130E9 /* UIPasteboard+YYText.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 20EF28E3B7DFA61B05BC046A45B87E3D /* YYWebImageOperation.m in Sources */ = {isa = PBXBuildFile; fileRef = FC55E3804B2539EB8C9446130189B6DC /* YYWebImageOperation.m */; }; + 20FBBC12322412237D48D3695D98E043 /* JXCategoryDotView.m in Sources */ = {isa = PBXBuildFile; fileRef = DE2C013F88A45440FC7DB25E09015410 /* JXCategoryDotView.m */; }; + 2106112EF01B53D54A2E3E8692DD9F3E /* OSSBolts.h in Headers */ = {isa = PBXBuildFile; fileRef = E76FF91F73392067A0842DA01AECC136 /* OSSBolts.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 2119E866324CBCDC3F7FBF172EFAA7B1 /* SDImageLoadersManager.m in Sources */ = {isa = PBXBuildFile; fileRef = 84A22F912D671BD9C38E83D82CD609F5 /* SDImageLoadersManager.m */; }; + 21671B106FE886E6E45802EB0136FBBB /* SDmetamacros.h in Headers */ = {isa = PBXBuildFile; fileRef = D488DBC8E27EED6616FE1AFFF663B7D7 /* SDmetamacros.h */; settings = {ATTRIBUTES = (Private, ); }; }; + 2175B894008D948C762468307BA677B8 /* RTLManager.m in Sources */ = {isa = PBXBuildFile; fileRef = 697FDC9C6A90677F41687893EF5DA394 /* RTLManager.m */; }; + 218D200739200D1CEF369D4CC9439808 /* QCloudListMultipartRequest.m in Sources */ = {isa = PBXBuildFile; fileRef = 25B82B3EDD249F0E3B38E27E46363778 /* QCloudListMultipartRequest.m */; }; 21A4A0EA8A604BB80541D29DE11037EF /* CoreGraphics.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 58B0067B68C01AB3887A364BABB15A12 /* CoreGraphics.framework */; }; + 21B18C7766AC0DB87C15056676C5D216 /* frame_dec.c in Sources */ = {isa = PBXBuildFile; fileRef = 9913A2617E39A9B8B72732889C727C44 /* frame_dec.c */; settings = {COMPILER_FLAGS = "-D_THREAD_SAFE -fno-objc-arc"; }; }; 21B55A47D98676DDAB0C3429309FF149 /* TUIGroupPinPageViewController.h in Headers */ = {isa = PBXBuildFile; fileRef = 16AAD6577B4751C59BFF8318341DDDAB /* TUIGroupPinPageViewController.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 21E9FD119F1C6A58207307462BFD36D9 /* LLPickerView.m in Sources */ = {isa = PBXBuildFile; fileRef = 99F02E391E9E59CF1A24D9420B5C972A /* LLPickerView.m */; }; - 222B1215A3546220404A36DE8C77D557 /* LLFilterLabelModel.m in Sources */ = {isa = PBXBuildFile; fileRef = 120A2C7BF3E33F70525F3CD84CD45539 /* LLFilterLabelModel.m */; }; - 224E376FB4B9CF87202FB02225210161 /* lossless_msa.c in Sources */ = {isa = PBXBuildFile; fileRef = 4ADB24D987D3B73BA797489C26469CA7 /* lossless_msa.c */; settings = {COMPILER_FLAGS = "-D_THREAD_SAFE -fno-objc-arc"; }; }; - 22516EA77E7120000632C30BD9A03927 /* UIScrollView+MJExtension.h in Headers */ = {isa = PBXBuildFile; fileRef = 9D5D566458D3A05FB13CC8463CDE6C8A /* UIScrollView+MJExtension.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 225F924255C41D53958FEB795EB51FDE /* RACmetamacros.h in Headers */ = {isa = PBXBuildFile; fileRef = 5C0F37A69D4A56CBC03C8AD4B85B7DB6 /* RACmetamacros.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 21E9FD119F1C6A58207307462BFD36D9 /* LLPickerView.m in Sources */ = {isa = PBXBuildFile; fileRef = 70E6C8F929E89E6D1E63DFE36986AE01 /* LLPickerView.m */; }; + 222B1215A3546220404A36DE8C77D557 /* LLFilterLabelModel.m in Sources */ = {isa = PBXBuildFile; fileRef = 2821D8DBECE9A3C19ACBE64E10681516 /* LLFilterLabelModel.m */; }; + 22516EA77E7120000632C30BD9A03927 /* UIScrollView+MJExtension.h in Headers */ = {isa = PBXBuildFile; fileRef = E5430B61F1535179412C3298C4B8816E /* UIScrollView+MJExtension.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 225F924255C41D53958FEB795EB51FDE /* RACmetamacros.h in Headers */ = {isa = PBXBuildFile; fileRef = 1F49515474D94F5D1BC16E8BF0451BA6 /* RACmetamacros.h */; settings = {ATTRIBUTES = (Public, ); }; }; 226FC180B89097ED97EC6463BA0A9061 /* TUIMoreView.h in Headers */ = {isa = PBXBuildFile; fileRef = 955E405DBAF6E8AC856E5284FFC13751 /* TUIMoreView.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 227942D76BAAE37263A3FA2212B17B80 /* QGMP4HWDFileInfo.h in Headers */ = {isa = PBXBuildFile; fileRef = 3E5A7E767E348F97E272E96D9435E56D /* QGMP4HWDFileInfo.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 2285883E87CB970950E0839D813D6ADA /* SDWebImageIndicator.h in Headers */ = {isa = PBXBuildFile; fileRef = 31843514D4C8C6FD10CEE21341584643 /* SDWebImageIndicator.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 229674D41ADA70329D7F08784D252E69 /* Pods-QXLiveDev-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = D879B4B770AFB9F4F0DE858C92DC7B8C /* Pods-QXLiveDev-dummy.m */; }; - 22AC6D2EF135D2E7DFEB542C30CF2EA7 /* GPBCodedOutputStream_PackagePrivate.h in Headers */ = {isa = PBXBuildFile; fileRef = 9AA7A4C3CF9EBFF26EC64B190F7D271B /* GPBCodedOutputStream_PackagePrivate.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 22C38AE7AB145224FF646303AFED11D2 /* JXCategoryDotCellModel.h in Headers */ = {isa = PBXBuildFile; fileRef = 71316F73E160DAFDD81D10D6C6E7B053 /* JXCategoryDotCellModel.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 22F72E872A783A8AB4670B5037787DD6 /* NSArray+RACSequenceAdditions.h in Headers */ = {isa = PBXBuildFile; fileRef = DC1160574EFD195629D53A5C05F029FB /* NSArray+RACSequenceAdditions.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 22FDDB35C14D5DCBB55E8890EAC38990 /* LLRulerPickerView.h in Headers */ = {isa = PBXBuildFile; fileRef = A8A2450686AD874CEBB426F8893F380C /* LLRulerPickerView.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 227942D76BAAE37263A3FA2212B17B80 /* QGMP4HWDFileInfo.h in Headers */ = {isa = PBXBuildFile; fileRef = 88A2ED2A1032291042DC260644022682 /* QGMP4HWDFileInfo.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 227AF40520F47C730178C6B4767D80CF /* PrivacyInfo.xcprivacy in Resources */ = {isa = PBXBuildFile; fileRef = 4668CDA61453AE45C06B5ED2DB0B0520 /* PrivacyInfo.xcprivacy */; }; + 22AC6D2EF135D2E7DFEB542C30CF2EA7 /* GPBCodedOutputStream_PackagePrivate.h in Headers */ = {isa = PBXBuildFile; fileRef = 1D1BF4079BD07F4564B6FC5D9AD29C91 /* GPBCodedOutputStream_PackagePrivate.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 22C38AE7AB145224FF646303AFED11D2 /* JXCategoryDotCellModel.h in Headers */ = {isa = PBXBuildFile; fileRef = D4A89FDEABCA149509D2610849CF63D7 /* JXCategoryDotCellModel.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 22F72E872A783A8AB4670B5037787DD6 /* NSArray+RACSequenceAdditions.h in Headers */ = {isa = PBXBuildFile; fileRef = 51ECC2497E7E3CE715361897E1C66AC4 /* NSArray+RACSequenceAdditions.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 22FDDB35C14D5DCBB55E8890EAC38990 /* LLRulerPickerView.h in Headers */ = {isa = PBXBuildFile; fileRef = B92838BE8B1A42670B845820CB759CB9 /* LLRulerPickerView.h */; settings = {ATTRIBUTES = (Public, ); }; }; 23093C257293F66D6C3433273468A8C2 /* TUIImageMessageCellData.h in Headers */ = {isa = PBXBuildFile; fileRef = 2321C1B30776D9537BF1098966CE81BB /* TUIImageMessageCellData.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 233E51DC2087F23EA20386DC72853960 /* DataStructs.swift in Sources */ = {isa = PBXBuildFile; fileRef = 32F4C4B2065DD641B80B483B67E859CB /* DataStructs.swift */; }; - 2395CE03CE80FC5F9A7F61C48270618B /* JXCategoryViewAnimator.m in Sources */ = {isa = PBXBuildFile; fileRef = 0747F58A19EB5B80AC8B61BAD0BF1C0B /* JXCategoryViewAnimator.m */; }; + 2324D454F6A4089B830BD72BBC35411A /* dec_mips32.c in Sources */ = {isa = PBXBuildFile; fileRef = 8BA2460BEC774C2B520E7E4AA6E31D4F /* dec_mips32.c */; settings = {COMPILER_FLAGS = "-D_THREAD_SAFE -fno-objc-arc"; }; }; + 233E51DC2087F23EA20386DC72853960 /* DataStructs.swift in Sources */ = {isa = PBXBuildFile; fileRef = 828D6CA863C2CEC912510CCD83ECC1FB /* DataStructs.swift */; }; + 2367C84B8D1F6B0C8F5D345018A071FE /* QCloudSignatureProvider.h in Headers */ = {isa = PBXBuildFile; fileRef = 7D4921D54DF57037990148DED5974A9B /* QCloudSignatureProvider.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 2395CE03CE80FC5F9A7F61C48270618B /* JXCategoryViewAnimator.m in Sources */ = {isa = PBXBuildFile; fileRef = E74F9C60664CBFB20EA9BF1CD45853F6 /* JXCategoryViewAnimator.m */; }; + 23A64C3370CAFA6B2F283531941DFD0E /* QCloudUploadPartRequestRetryHandler.h in Headers */ = {isa = PBXBuildFile; fileRef = E8BCD3D74A1BA116AC477521177D2AD7 /* QCloudUploadPartRequestRetryHandler.h */; settings = {ATTRIBUTES = (Public, ); }; }; 23FCBDA9D597364E429831B3D99759B0 /* TUIConversation-TUIConversation_Privacy in Resources */ = {isa = PBXBuildFile; fileRef = FC14DF02839D1B209B22801C7FCC416B /* TUIConversation-TUIConversation_Privacy */; }; - 240202AD1C01F1C9F0E89B816F9972CA /* IQKeyboardManager.m in Sources */ = {isa = PBXBuildFile; fileRef = AD9C1156D65123703105C7424A2799C5 /* IQKeyboardManager.m */; }; - 240EA5A18468CB72158084DB2FB7C218 /* sharpyuv_gamma.c in Sources */ = {isa = PBXBuildFile; fileRef = 81A91F2C2C8BD26FB9B0A47E460DEDAD /* sharpyuv_gamma.c */; settings = {COMPILER_FLAGS = "-D_THREAD_SAFE -fno-objc-arc"; }; }; - 24211D20F9094CD869C245C8E2B4E51B /* NSAttributedString+YYText.m in Sources */ = {isa = PBXBuildFile; fileRef = FBF6FEE2C0B6DF3970579856F6DD9F1E /* NSAttributedString+YYText.m */; }; - 244415898475C361F53B52BC1A34407E /* RACKVOProxy.m in Sources */ = {isa = PBXBuildFile; fileRef = DF26039398C538B0C3F976E17D2B9065 /* RACKVOProxy.m */; }; - 24442D875873F555693DB07D281EBCE7 /* YYMemoryCache.h in Headers */ = {isa = PBXBuildFile; fileRef = 2E772E46B21B584067C3A888FF7C79AA /* YYMemoryCache.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 240202AD1C01F1C9F0E89B816F9972CA /* IQKeyboardManager.m in Sources */ = {isa = PBXBuildFile; fileRef = BAE3CA1A2F7CC361F3AD4EA2A5F38A46 /* IQKeyboardManager.m */; }; + 24211D20F9094CD869C245C8E2B4E51B /* NSAttributedString+YYText.m in Sources */ = {isa = PBXBuildFile; fileRef = 977F1E2C35AB1341C1F8E208B95D7DF9 /* NSAttributedString+YYText.m */; }; + 244415898475C361F53B52BC1A34407E /* RACKVOProxy.m in Sources */ = {isa = PBXBuildFile; fileRef = 0684286BE588AD832BA8C677DCF5C671 /* RACKVOProxy.m */; }; + 24442D875873F555693DB07D281EBCE7 /* YYMemoryCache.h in Headers */ = {isa = PBXBuildFile; fileRef = 9DB965A81E3DB8E6A8A9FFC57FE6553B /* YYMemoryCache.h */; settings = {ATTRIBUTES = (Public, ); }; }; 24459D31D79BC45B66F28AD4B04BC7EE /* TUIVideoCollectionCell.h in Headers */ = {isa = PBXBuildFile; fileRef = 1C7865F99FD95F09847F533F33A10298 /* TUIVideoCollectionCell.h */; settings = {ATTRIBUTES = (Public, ); }; }; 2449C8B0EB6B6CC15177374244576576 /* TUIConversationListController_Minimalist.m in Sources */ = {isa = PBXBuildFile; fileRef = 43DF364C2CA875E492429347063A32C3 /* TUIConversationListController_Minimalist.m */; }; - 244E5100AADACE8DE503C2DFF555AE70 /* UIResponder+LL_Utils.m in Sources */ = {isa = PBXBuildFile; fileRef = 64CC4AFD8CBBA261D3C5B70AC79D079E /* UIResponder+LL_Utils.m */; }; - 245B6ACACDE1FB4106D9D4393A5660EF /* UIResponder+LL_Utils.h in Headers */ = {isa = PBXBuildFile; fileRef = 2BDC0728BC41914BE523A9028147B0D8 /* UIResponder+LL_Utils.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 2461CB32A48BB5BA7C70C6C8899244C2 /* cost_neon.c in Sources */ = {isa = PBXBuildFile; fileRef = 012D8F28477FDD72A4BBA154968DBEA3 /* cost_neon.c */; settings = {COMPILER_FLAGS = "-D_THREAD_SAFE -fno-objc-arc"; }; }; - 2464EF992E53925D4D35E104F675E25B /* BRResultModel.m in Sources */ = {isa = PBXBuildFile; fileRef = 4BCF3A982C0897F194EE8E1F86C57C14 /* BRResultModel.m */; }; + 244E5100AADACE8DE503C2DFF555AE70 /* UIResponder+LL_Utils.m in Sources */ = {isa = PBXBuildFile; fileRef = F3BFBA7BD94C931B80A10837F5F4A10A /* UIResponder+LL_Utils.m */; }; + 245B6ACACDE1FB4106D9D4393A5660EF /* UIResponder+LL_Utils.h in Headers */ = {isa = PBXBuildFile; fileRef = 36A72A8E9C73A1AFAFBFFC02A5579F23 /* UIResponder+LL_Utils.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 2464EF992E53925D4D35E104F675E25B /* BRResultModel.m in Sources */ = {isa = PBXBuildFile; fileRef = 5E09CB1F8712CEBC8AF29845E3E094C2 /* BRResultModel.m */; }; 246E420A9CA548179D9E81BF7E860337 /* TUITextReplyQuoteView.h in Headers */ = {isa = PBXBuildFile; fileRef = 25264920B108DDF704289AD5810D5746 /* TUITextReplyQuoteView.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 249E3D3827CC9DC425F345A302673A3D /* UITableView+YYAdd.m in Sources */ = {isa = PBXBuildFile; fileRef = A1C09BEC61EAAD16FE430967BD85B0BF /* UITableView+YYAdd.m */; }; - 24A189ACF1F33F2119745513768529D8 /* vp8li_dec.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A13C26D08093EE9A49057D16D3D20EB /* vp8li_dec.h */; settings = {ATTRIBUTES = (Project, ); }; }; - 24AB7D689667544B52182C145D36024E /* SDWebImageWebPCoder-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 7BB5E2AE2E887542391B90E86AAA2F9F /* SDWebImageWebPCoder-dummy.m */; }; - 24C037622063B25E30CDFA01D616E20C /* OSSGetSymlinkRequest.m in Sources */ = {isa = PBXBuildFile; fileRef = 0F52F7C5E70BB47EBF33E51E749F893F /* OSSGetSymlinkRequest.m */; }; - 24E314129EEAFBE778C9C82AB72A075C /* QGBaseDFileInfo.h in Headers */ = {isa = PBXBuildFile; fileRef = 431F8736C60B5E8242F2C9742342DE8C /* QGBaseDFileInfo.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 24E963C1D6245F98BAC8A0ACCB7DE987 /* NSBundle+MJRefresh.m in Sources */ = {isa = PBXBuildFile; fileRef = 1DA270961CB495F878ECF5BF25189FEB /* NSBundle+MJRefresh.m */; }; + 246E5F3CC4B4CE9C68897415CBE64AE3 /* QCloudAuthentationV4Creator.h in Headers */ = {isa = PBXBuildFile; fileRef = 3D53F42BFA6BF31AD142C5117BB2CD10 /* QCloudAuthentationV4Creator.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 249E3D3827CC9DC425F345A302673A3D /* UITableView+YYAdd.m in Sources */ = {isa = PBXBuildFile; fileRef = D6FE190AD5AD901796B3A1496940A493 /* UITableView+YYAdd.m */; }; + 24AB7D689667544B52182C145D36024E /* SDWebImageWebPCoder-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = F65463BD2CA100D855096EC0BC53C922 /* SDWebImageWebPCoder-dummy.m */; }; + 24C037622063B25E30CDFA01D616E20C /* OSSGetSymlinkRequest.m in Sources */ = {isa = PBXBuildFile; fileRef = 6197C7B50545936E0C999DC85F34A649 /* OSSGetSymlinkRequest.m */; }; + 24E314129EEAFBE778C9C82AB72A075C /* QGBaseDFileInfo.h in Headers */ = {isa = PBXBuildFile; fileRef = B5D4B6F06B24BD60D5A8E84B41C1D8CA /* QGBaseDFileInfo.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 24E963C1D6245F98BAC8A0ACCB7DE987 /* NSBundle+MJRefresh.m in Sources */ = {isa = PBXBuildFile; fileRef = 06E20AF8BAEDFF42624D3E09AA89D66A /* NSBundle+MJRefresh.m */; }; 24EE1599F36B8BBD4567CB5FAB92C0D8 /* TUIMessageMediaDataProvider.m in Sources */ = {isa = PBXBuildFile; fileRef = 023E703941A778CDD0AA302FA5B84F2E /* TUIMessageMediaDataProvider.m */; }; - 252A09DAC0974C2C2FF6621698EC9015 /* yuv.c in Sources */ = {isa = PBXBuildFile; fileRef = F1A2452F98D3EE9BBF2B5A6B11C53616 /* yuv.c */; settings = {COMPILER_FLAGS = "-D_THREAD_SAFE -fno-objc-arc"; }; }; - 254DCA20BFE6BE3B7431156E217E4289 /* LLSettingComponent.h in Headers */ = {isa = PBXBuildFile; fileRef = FD63AC94A788423710A268939278CD39 /* LLSettingComponent.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 2552719AC1186A233FFF8CFFC395FBA4 /* UIControl+YYAdd.h in Headers */ = {isa = PBXBuildFile; fileRef = 7ECCFC6A17A1B204A0B32CA0F4F54EE4 /* UIControl+YYAdd.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 255702D1853E23E30B6847F6A26402F9 /* RACBlockTrampoline.m in Sources */ = {isa = PBXBuildFile; fileRef = 1022AE2F730E8371E0319E83E7653A89 /* RACBlockTrampoline.m */; }; - 2558B1799256B29B2D61697399FF5398 /* dec.c in Sources */ = {isa = PBXBuildFile; fileRef = 28011C0095CBB91AE3686E2C02CFE20D /* dec.c */; settings = {COMPILER_FLAGS = "-D_THREAD_SAFE -fno-objc-arc"; }; }; - 257BA31E9A14B16BBFEBB062FFE57588 /* OSSCocoaLumberjack.h in Headers */ = {isa = PBXBuildFile; fileRef = C1DE0AA187F4CA800DEDE30E8985A98B /* OSSCocoaLumberjack.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 257CC7240E92E33DF05F666CF70A82C9 /* LLLocationWindow.m in Sources */ = {isa = PBXBuildFile; fileRef = C45DC6F598F63544263420CFD6DB489D /* LLLocationWindow.m */; }; - 25A1B6AF202605686AB2EE6882E0D4B4 /* LLCrashComponent.m in Sources */ = {isa = PBXBuildFile; fileRef = 9683F0FA555D901640477496F3D0C083 /* LLCrashComponent.m */; }; + 24F4D1D56320CDA5B059665B0A21B8BF /* SDWebImageOperation.m in Sources */ = {isa = PBXBuildFile; fileRef = 759AF02F1630A1D1A0A68E6A36D7C296 /* SDWebImageOperation.m */; }; + 252AC85DC92E4607118EDDDEB724AA1C /* QCloudMainBundle.h in Headers */ = {isa = PBXBuildFile; fileRef = 642387252CAEC2179AC1B5C3E54449CB /* QCloudMainBundle.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 2548383D6BC425131D95CC4A8F6196A9 /* SDImageHEICCoder.h in Headers */ = {isa = PBXBuildFile; fileRef = DD4CD0B1E4329CD87FB920343A3D00F6 /* SDImageHEICCoder.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 254DCA20BFE6BE3B7431156E217E4289 /* LLSettingComponent.h in Headers */ = {isa = PBXBuildFile; fileRef = 1F952366013AD3E5E9BA84A0A2236459 /* LLSettingComponent.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 2552719AC1186A233FFF8CFFC395FBA4 /* UIControl+YYAdd.h in Headers */ = {isa = PBXBuildFile; fileRef = B12604E41BABB52C997364A828A0B085 /* UIControl+YYAdd.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 255702D1853E23E30B6847F6A26402F9 /* RACBlockTrampoline.m in Sources */ = {isa = PBXBuildFile; fileRef = A9ED807F800450D9C4F837CA1F24D5D5 /* RACBlockTrampoline.m */; }; + 257BA31E9A14B16BBFEBB062FFE57588 /* OSSCocoaLumberjack.h in Headers */ = {isa = PBXBuildFile; fileRef = E4330A749A940B5AA89F9A60869460AC /* OSSCocoaLumberjack.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 257CC7240E92E33DF05F666CF70A82C9 /* LLLocationWindow.m in Sources */ = {isa = PBXBuildFile; fileRef = CCC75942C35CF8A1599760D941698552 /* LLLocationWindow.m */; }; + 25A1B6AF202605686AB2EE6882E0D4B4 /* LLCrashComponent.m in Sources */ = {isa = PBXBuildFile; fileRef = EB4D80265B18933ECC0B7D05844DD0D0 /* LLCrashComponent.m */; }; 25AC8A80A698BC02607CBCE6EF0F534A /* TIMCommonModel.m in Sources */ = {isa = PBXBuildFile; fileRef = F7B8D16F9833EEFEDEE96C81AD0D6406 /* TIMCommonModel.m */; }; 25BDB3CBC8A6914F9ECCC35EDFF3A107 /* TIMRTLUtil.m in Sources */ = {isa = PBXBuildFile; fileRef = 9A92360AC76FD4C5F177D22F01DB8B0D /* TIMRTLUtil.m */; }; - 25C3A2BA3CEF4D94C5C34CD8FE3FFAE2 /* UIButton+RACCommandSupport.m in Sources */ = {isa = PBXBuildFile; fileRef = ACE27D14F40D07FDA39F1A3B7A55190F /* UIButton+RACCommandSupport.m */; }; - 2601829EB6049C1594CEFD082DCE0A26 /* unzip.c in Sources */ = {isa = PBXBuildFile; fileRef = 638CA51AACFC6C661E87F56CCF7FD1A5 /* unzip.c */; }; - 26023C499783F1D1FF4E8BDCDF0F627D /* LLButton.m in Sources */ = {isa = PBXBuildFile; fileRef = 660BEEBB30C16E0400F8953714753B17 /* LLButton.m */; }; - 2609AEF9B7C24A507DAE3AA17E8ECA21 /* RACSubscriptionScheduler.h in Headers */ = {isa = PBXBuildFile; fileRef = 9A8E88BEDBF9E729FC38BF8AA1CFEAC5 /* RACSubscriptionScheduler.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 261C3781EAFE595E4230B8286519FFA3 /* GPBExtensionRegistry.m in Sources */ = {isa = PBXBuildFile; fileRef = CFC7F6F048271F8BF3C990B162401D12 /* GPBExtensionRegistry.m */; settings = {COMPILER_FLAGS = "-fno-objc-arc"; }; }; - 261EF92C048F313E01114B86B08D0E73 /* YBIBVideoCell.m in Sources */ = {isa = PBXBuildFile; fileRef = B819BB8F676B0834236C011C2159475B /* YBIBVideoCell.m */; }; - 261F2F49BE560E275D3C03FD48C7F13C /* OfflinePushExtBusinessInfo.m in Sources */ = {isa = PBXBuildFile; fileRef = 05BC9D17EBBB0C644FBB473A801A365D /* OfflinePushExtBusinessInfo.m */; }; - 266352AA446DAE8C9502E83810C174D9 /* JXCategoryImageView.m in Sources */ = {isa = PBXBuildFile; fileRef = 0D38F2A723076F7CCAF1D9266C5EB54C /* JXCategoryImageView.m */; }; + 25C3A2BA3CEF4D94C5C34CD8FE3FFAE2 /* UIButton+RACCommandSupport.m in Sources */ = {isa = PBXBuildFile; fileRef = D01045A790CB707EF8D11F839D332878 /* UIButton+RACCommandSupport.m */; }; + 26023C499783F1D1FF4E8BDCDF0F627D /* LLButton.m in Sources */ = {isa = PBXBuildFile; fileRef = 001D0AEF9177F128239342BB59CCFEF6 /* LLButton.m */; }; + 2609AEF9B7C24A507DAE3AA17E8ECA21 /* RACSubscriptionScheduler.h in Headers */ = {isa = PBXBuildFile; fileRef = 85F0B0A0670EDBDBEFF4CC199510D3DC /* RACSubscriptionScheduler.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 261C3781EAFE595E4230B8286519FFA3 /* GPBExtensionRegistry.m in Sources */ = {isa = PBXBuildFile; fileRef = 646E4A6BFAE3542804E8B988D7ABB58F /* GPBExtensionRegistry.m */; settings = {COMPILER_FLAGS = "-fno-objc-arc"; }; }; + 261EF92C048F313E01114B86B08D0E73 /* YBIBVideoCell.m in Sources */ = {isa = PBXBuildFile; fileRef = 03A96E726CD9E0A1DB0BCD921E67F763 /* YBIBVideoCell.m */; }; + 26253C143769404AB816F115EAB4E0BB /* QCloudCoreVersion.m in Sources */ = {isa = PBXBuildFile; fileRef = CBBB3E9EF0DEE2D12719945345EB7E5A /* QCloudCoreVersion.m */; }; + 264D6589824C0F46BBA090CBB223632D /* QCloudAuthentationV4Creator.mm in Sources */ = {isa = PBXBuildFile; fileRef = AE3B69019F2C2B619A91B7A1E9A91EA6 /* QCloudAuthentationV4Creator.mm */; }; + 266352AA446DAE8C9502E83810C174D9 /* JXCategoryImageView.m in Sources */ = {isa = PBXBuildFile; fileRef = 3F14C2DF14D0E3CC5631975A85551119 /* JXCategoryImageView.m */; }; + 26864C3A7069851582B5EC7A80F1B991 /* QCloudEnv.m in Sources */ = {isa = PBXBuildFile; fileRef = 1E4D01471C7BA05B3A00A0FC471A0BF2 /* QCloudEnv.m */; }; 2698284EE0C16E2AAD90BDEDEA1842F6 /* NSTimer+TUISafe.h in Headers */ = {isa = PBXBuildFile; fileRef = 422577C147AB7CB42594B3620AC0E0E5 /* NSTimer+TUISafe.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 269D5BD5031AE2E93B3ECD48F9FAFBFA /* YBIBAuxiliaryViewHandler.m in Sources */ = {isa = PBXBuildFile; fileRef = 983EDB64D59FAC1C1EF21D3C691631E5 /* YBIBAuxiliaryViewHandler.m */; }; - 26A40AF53DF6BB6BA477623C6F75F39C /* SDWebImageWebPCoder.h in Headers */ = {isa = PBXBuildFile; fileRef = 4EABE0178615179C6690F5C063B836A7 /* SDWebImageWebPCoder.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 26B154F96D1D0F6E2C6094FBB25417DB /* TUIConfig.h in Headers */ = {isa = PBXBuildFile; fileRef = 01DA4F808EAFF56600BCF643C6F5B140 /* TUIConfig.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 26B643248C0F5F6750F45EF1E720850B /* OSSSignerParams.h in Headers */ = {isa = PBXBuildFile; fileRef = 1718C637E8B2E604FE3CF4BF15E5F7F6 /* OSSSignerParams.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 26E92401D6AEE7576C4D837145CF1E2C /* UITextField+YYAdd.h in Headers */ = {isa = PBXBuildFile; fileRef = 44479834C43DD04BF6BB9017DEC9DA32 /* UITextField+YYAdd.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 27293E7084BFE6AF873BB233419CFA2D /* mz_strm_mem.c in Sources */ = {isa = PBXBuildFile; fileRef = FD74A0CD929DEE8AFDFC9AA9C3BB5C37 /* mz_strm_mem.c */; }; - 278CC095AE53F3DA68BE866137FCBCF9 /* LLNavigationController.m in Sources */ = {isa = PBXBuildFile; fileRef = 83D8B03CC07CD17385769B58E1ACAECB /* LLNavigationController.m */; }; - 27D556E71BF02015E4E6B01749ACB31D /* SDInternalMacros.m in Sources */ = {isa = PBXBuildFile; fileRef = 7F883178AAADE89662BD581D8C35CD3B /* SDInternalMacros.m */; }; - 27F69C6688D86564B0A02D52835EF86E /* IQBarButtonItem.m in Sources */ = {isa = PBXBuildFile; fileRef = 2ADAD99B44741DF3A1CA3BDD5AF03775 /* IQBarButtonItem.m */; }; - 28011D6203A46798D789585BB2F5B7F9 /* RACImmediateScheduler.h in Headers */ = {isa = PBXBuildFile; fileRef = 60D9E66108606702F5433BBA6214654B /* RACImmediateScheduler.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 281AAC518B477D8402F888A6156C6F10 /* UIImage+MultiFormat.m in Sources */ = {isa = PBXBuildFile; fileRef = 3DBE0C6CF51CE0D6BEFF411F116002F8 /* UIImage+MultiFormat.m */; }; - 281D33AF6A6B0CD104A32272BB47CFD1 /* NSThread+YYAdd.m in Sources */ = {isa = PBXBuildFile; fileRef = 30D14ADF5196237789B7EA9D2C1B9519 /* NSThread+YYAdd.m */; settings = {COMPILER_FLAGS = "-fno-objc-arc"; }; }; + 269D5BD5031AE2E93B3ECD48F9FAFBFA /* YBIBAuxiliaryViewHandler.m in Sources */ = {isa = PBXBuildFile; fileRef = 3E857A504F04C7C10AEC3565A2EF8736 /* YBIBAuxiliaryViewHandler.m */; }; + 26A40AF53DF6BB6BA477623C6F75F39C /* SDWebImageWebPCoder.h in Headers */ = {isa = PBXBuildFile; fileRef = 95A3324CA0FE1B9B3F9E4D935B5E655F /* SDWebImageWebPCoder.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 26AF97DC3A22F159EA7F9DB85BDE57B2 /* QCloudHTTPRequest_RequestID.h in Headers */ = {isa = PBXBuildFile; fileRef = 97BA55813AF3F0187E2A44C2CAEC0B25 /* QCloudHTTPRequest_RequestID.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 26B643248C0F5F6750F45EF1E720850B /* OSSSignerParams.h in Headers */ = {isa = PBXBuildFile; fileRef = 9BE32627DF4D8D823A089C2E192012DD /* OSSSignerParams.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 26E92401D6AEE7576C4D837145CF1E2C /* UITextField+YYAdd.h in Headers */ = {isa = PBXBuildFile; fileRef = 10F12302E97BCF14E1D3B73DDB4EF820 /* UITextField+YYAdd.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 26F1CAC56EB5D4852ECA337EDC4B237B /* SDDeviceHelper.m in Sources */ = {isa = PBXBuildFile; fileRef = F51481CE626E7B7B928CD7CF0704F580 /* SDDeviceHelper.m */; }; + 27293E7084BFE6AF873BB233419CFA2D /* mz_strm_mem.c in Sources */ = {isa = PBXBuildFile; fileRef = AE98678D412A6B7DE782583556482E18 /* mz_strm_mem.c */; }; + 27391513B13C7BD84784DD548AF04B5A /* QCloudSupervisory.m in Sources */ = {isa = PBXBuildFile; fileRef = 3175BD5CE61F738AF88728C70A17AC8E /* QCloudSupervisory.m */; }; + 275E31BFCCEE04AFC02D1D8870026A79 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = F91075A92425F75F02E0E1C8D455AF79 /* Foundation.framework */; }; + 277705D7E7F5048EBE5FE821A39F81E4 /* UIColor+TUIHexColor.h in Headers */ = {isa = PBXBuildFile; fileRef = 55701518AB4B0314CAA3F1367384D4C2 /* UIColor+TUIHexColor.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 277C19821E42F4C95E1A0A826DE339E4 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = F91075A92425F75F02E0E1C8D455AF79 /* Foundation.framework */; }; + 278CC095AE53F3DA68BE866137FCBCF9 /* LLNavigationController.m in Sources */ = {isa = PBXBuildFile; fileRef = A122991B8CCF83B3BC9837E9B9333696 /* LLNavigationController.m */; }; + 27D121781BD42F4C5DE18578BB12C74A /* dec_mips_dsp_r2.c in Sources */ = {isa = PBXBuildFile; fileRef = 2C0210ABFD615E6A1062A758A7331AC9 /* dec_mips_dsp_r2.c */; settings = {COMPILER_FLAGS = "-D_THREAD_SAFE -fno-objc-arc"; }; }; + 27F69C6688D86564B0A02D52835EF86E /* IQBarButtonItem.m in Sources */ = {isa = PBXBuildFile; fileRef = 1887F4D2942335285CFD33902DAB90D2 /* IQBarButtonItem.m */; }; + 28011D6203A46798D789585BB2F5B7F9 /* RACImmediateScheduler.h in Headers */ = {isa = PBXBuildFile; fileRef = D848FDA27A465508C6D2DDDEB9516905 /* RACImmediateScheduler.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 2812845AF1D794616E0087581E634778 /* QCloudHTTPRequestDelegate.h in Headers */ = {isa = PBXBuildFile; fileRef = F0702474156FAB94A2529B7D779D0F44 /* QCloudHTTPRequestDelegate.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 281D33AF6A6B0CD104A32272BB47CFD1 /* NSThread+YYAdd.m in Sources */ = {isa = PBXBuildFile; fileRef = 2D545E17C337F3F6FA8468A5E3C6CCD3 /* NSThread+YYAdd.m */; settings = {COMPILER_FLAGS = "-fno-objc-arc"; }; }; 28249B2E810969D74C7A2D6E8E443C2B /* TUIMoreView.m in Sources */ = {isa = PBXBuildFile; fileRef = 63A2A2963FFE0BDF24C74D20F8916937 /* TUIMoreView.m */; }; - 2842289FBB6DB34865CD7DD7AEA34ECA /* yuv_neon.c in Sources */ = {isa = PBXBuildFile; fileRef = 9E0B9E69E5E8D32287F946186EC52C8D /* yuv_neon.c */; settings = {COMPILER_FLAGS = "-D_THREAD_SAFE -fno-objc-arc"; }; }; - 2856121070FEFC1B4D77693641551510 /* YBIBPhotoAlbumManager.h in Headers */ = {isa = PBXBuildFile; fileRef = 1C743C0A955ACC0E0775005EB0D41E6B /* YBIBPhotoAlbumManager.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 28732531D5DA94118DD2E8619B25B1BF /* NSData+OSS.h in Headers */ = {isa = PBXBuildFile; fileRef = B3338873437309D5CB766787621B4F24 /* NSData+OSS.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 289F1324448E362D7F4140096F749C29 /* LLHtmlWkWebViewController.h in Headers */ = {isa = PBXBuildFile; fileRef = A2718CA949BAF9593150667E3EE82BB9 /* LLHtmlWkWebViewController.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 28BA94295CCC50685132AB06B8433EDC /* LLSandboxWindow.m in Sources */ = {isa = PBXBuildFile; fileRef = 0D3DFE6293A302B7722F166D3804C24E /* LLSandboxWindow.m */; }; - 28BA9702905AA2B4C1E9E4878032D4E4 /* MJRefreshConst.h in Headers */ = {isa = PBXBuildFile; fileRef = 473F983F60E23534F5497188C2DD457C /* MJRefreshConst.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 28C71D0DD2723BBE5D5C74A64FE185A0 /* RACReturnSignal.h in Headers */ = {isa = PBXBuildFile; fileRef = 0F022DE9B328C785CE8D266EE01605C8 /* RACReturnSignal.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 28C8C21D9A0A8B4F507C2EB3D13F583A /* NSUserDefaults+LL_Utils.h in Headers */ = {isa = PBXBuildFile; fileRef = 6056B1EC9CE80CE2CAD3EB61737E0840 /* NSUserDefaults+LL_Utils.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 28E3E4C5A831F37C5A31E5F4AC5A450A /* Timestamp.pbobjc.h in Headers */ = {isa = PBXBuildFile; fileRef = 67C1F9A015545FCBD8AB3570B08C9C92 /* Timestamp.pbobjc.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 28F22032CC388B76B647E674C1D287AB /* PrivacyInfo.xcprivacy in Resources */ = {isa = PBXBuildFile; fileRef = 890063AFA66A21ED497BBEF97B4B406C /* PrivacyInfo.xcprivacy */; }; - 29011C485D6F50E2BCA1B491578D873B /* LLMagnifierWindow.h in Headers */ = {isa = PBXBuildFile; fileRef = A0EC51D009F30AA4859B94683989F031 /* LLMagnifierWindow.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 284F0367BCC5DC4B79A2F844AE736CC6 /* PrivacyInfo.xcprivacy in Resources */ = {isa = PBXBuildFile; fileRef = A06743D5607121BF0B96A932A6EA7363 /* PrivacyInfo.xcprivacy */; }; + 2856121070FEFC1B4D77693641551510 /* YBIBPhotoAlbumManager.h in Headers */ = {isa = PBXBuildFile; fileRef = 188FEDA05AA25015F0253CF3C2A1311E /* YBIBPhotoAlbumManager.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 28633A871EEF62935F2466AEC155E680 /* io_dec.c in Sources */ = {isa = PBXBuildFile; fileRef = AE2BD227372A622034B2AC24A2D2B24B /* io_dec.c */; settings = {COMPILER_FLAGS = "-D_THREAD_SAFE -fno-objc-arc"; }; }; + 28732531D5DA94118DD2E8619B25B1BF /* NSData+OSS.h in Headers */ = {isa = PBXBuildFile; fileRef = 4FF0632AC66004E15AE1242C155D8A16 /* NSData+OSS.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 289F1324448E362D7F4140096F749C29 /* LLHtmlWkWebViewController.h in Headers */ = {isa = PBXBuildFile; fileRef = 37B2D8A9CCA85F0B562530AFC1FEC885 /* LLHtmlWkWebViewController.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 28BA94295CCC50685132AB06B8433EDC /* LLSandboxWindow.m in Sources */ = {isa = PBXBuildFile; fileRef = 0EEFD1789A4F6A6D74E4012B76D0AB00 /* LLSandboxWindow.m */; }; + 28BA9702905AA2B4C1E9E4878032D4E4 /* MJRefreshConst.h in Headers */ = {isa = PBXBuildFile; fileRef = 0099A22C8BA1C31D012F487D75194315 /* MJRefreshConst.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 28C71D0DD2723BBE5D5C74A64FE185A0 /* RACReturnSignal.h in Headers */ = {isa = PBXBuildFile; fileRef = 44AE97FCF15E4F9C1D3DA54A92B4B5B1 /* RACReturnSignal.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 28C8C21D9A0A8B4F507C2EB3D13F583A /* NSUserDefaults+LL_Utils.h in Headers */ = {isa = PBXBuildFile; fileRef = A5C1F238A245A9334B922ADF86C25F01 /* NSUserDefaults+LL_Utils.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 28E3E4C5A831F37C5A31E5F4AC5A450A /* Timestamp.pbobjc.h in Headers */ = {isa = PBXBuildFile; fileRef = 6C20E80C571982C11FF077A63BEDA767 /* Timestamp.pbobjc.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 29011C485D6F50E2BCA1B491578D873B /* LLMagnifierWindow.h in Headers */ = {isa = PBXBuildFile; fileRef = 4B5DCD20450BB0146A820F2D4940F097 /* LLMagnifierWindow.h */; settings = {ATTRIBUTES = (Public, ); }; }; 29068634F1A410F813C570C9780506E4 /* TUIChatConfig.m in Sources */ = {isa = PBXBuildFile; fileRef = 423A0B9A3E18AC560EF8F42EDD8F1E0D /* TUIChatConfig.m */; }; - 293C5187AD0385CC962584DB44A6FC91 /* QGMP4Box.h in Headers */ = {isa = PBXBuildFile; fileRef = E7E6D038FA4D9E830F2892C7893649BA /* QGMP4Box.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 29489009B707CF4D904BEF00214A77C5 /* RACScheduler+Private.h in Headers */ = {isa = PBXBuildFile; fileRef = E8A858791FCAD7F99C0E3F955D7C907C /* RACScheduler+Private.h */; settings = {ATTRIBUTES = (Private, ); }; }; - 296C857B92C63CEE26305DF575D37AC5 /* QGBaseDFileInfo.m in Sources */ = {isa = PBXBuildFile; fileRef = 55224C2C7539480551F39C5D5B8A2157 /* QGBaseDFileInfo.m */; }; - 2971489959C0056C86916FC502E3D851 /* UIColor+TUIHexColor.m in Sources */ = {isa = PBXBuildFile; fileRef = 3BF3B905DD277678DFA482F73C17846C /* UIColor+TUIHexColor.m */; }; + 292A3396ACC110FF8CC96FB0F18523E4 /* QCloudFakeRequestOperation.m in Sources */ = {isa = PBXBuildFile; fileRef = 7490703FEE0BF75E32A17CB702EACF40 /* QCloudFakeRequestOperation.m */; }; + 293C5187AD0385CC962584DB44A6FC91 /* QGMP4Box.h in Headers */ = {isa = PBXBuildFile; fileRef = 1DD50156D9B15CB388A20DB62B2E0BB0 /* QGMP4Box.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 294123664AD33921B6FD6459FB618053 /* QCloudFCUUID.h in Headers */ = {isa = PBXBuildFile; fileRef = B453E2E3D8C067CE7A24ED9EB5F1E439 /* QCloudFCUUID.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 29487A98FDD202926228442180AB230E /* QCloudCOSXMLCopyObjectRequest.h in Headers */ = {isa = PBXBuildFile; fileRef = 3C4FF55ACDBF05D5851592739846E2BB /* QCloudCOSXMLCopyObjectRequest.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 29489009B707CF4D904BEF00214A77C5 /* RACScheduler+Private.h in Headers */ = {isa = PBXBuildFile; fileRef = 427488FBC941453A919AEC0ACBFF10DF /* RACScheduler+Private.h */; settings = {ATTRIBUTES = (Private, ); }; }; + 296C857B92C63CEE26305DF575D37AC5 /* QGBaseDFileInfo.m in Sources */ = {isa = PBXBuildFile; fileRef = 29DC22A46EC320B38D2E3416E25A3438 /* QGBaseDFileInfo.m */; }; 29939A199EE4BAE8976AEC88E59F2ABB /* CoreFoundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = BDCD3DDCE37ACFD1BDD612F5969870AA /* CoreFoundation.framework */; }; - 2997891BAA4DF08B2C7111E1DE390646 /* LLCrashCell.m in Sources */ = {isa = PBXBuildFile; fileRef = D5C4D24F13BAF847987F7069AABE82EA /* LLCrashCell.m */; }; + 2997891BAA4DF08B2C7111E1DE390646 /* LLCrashCell.m in Sources */ = {isa = PBXBuildFile; fileRef = E5B1D0E9CE2A700E78BE5773C02888CB /* LLCrashCell.m */; }; 29B2957ED9DDBE0EE54E0BCB9649FC59 /* TUIMessageDataProvider.m in Sources */ = {isa = PBXBuildFile; fileRef = 7D8F8EED794CA3D78DFAA80B891564DA /* TUIMessageDataProvider.m */; }; 29B92B911A4DE06CA5104DE45B45BFFE /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = F91075A92425F75F02E0E1C8D455AF79 /* Foundation.framework */; }; - 29FBA06A84E314E7819CB2D841B4086E /* OSSReachability.m in Sources */ = {isa = PBXBuildFile; fileRef = 6C71473402D3B2EC1706517D9776310E /* OSSReachability.m */; }; - 2A329296A4DC3BBA7E27EF8F0EAFC8BD /* IQKeyboardManager-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = C1E3B3294A9C29005A26C65C8DD408F3 /* IQKeyboardManager-dummy.m */; }; - 2A4F5A1CE4B33E577C4CEF70E768CD9A /* SVGABitmapLayer.h in Headers */ = {isa = PBXBuildFile; fileRef = 38169B7B8DB8DD37C509B90EBAF523A9 /* SVGABitmapLayer.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 2ABF8A787AC3C62CECE03540DFBF60DC /* lossless_sse41.c in Sources */ = {isa = PBXBuildFile; fileRef = 60979304EC286DDCC3C45369969B8EB7 /* lossless_sse41.c */; settings = {COMPILER_FLAGS = "-D_THREAD_SAFE -fno-objc-arc"; }; }; - 2AD40AFC4BB803B3EF3C41BDE61118E5 /* YBIBVideoData.m in Sources */ = {isa = PBXBuildFile; fileRef = D51323B7EF423B6F5E9C22307A601AF0 /* YBIBVideoData.m */; }; - 2AE7BB585C30531B98A96059C231B9A2 /* OSSNSLogger.m in Sources */ = {isa = PBXBuildFile; fileRef = BB73D23FDDE202789585E343649BF4D9 /* OSSNSLogger.m */; }; - 2AF63AAE9AA1B79A9D763AD6F1E9419D /* BRStringPickerView.m in Sources */ = {isa = PBXBuildFile; fileRef = AB2F2ED04AC1855C92554B71108661C7 /* BRStringPickerView.m */; }; - 2B05197D9780DA9C2A6C74663FDC1BE8 /* UIButton+RACCommandSupport.h in Headers */ = {isa = PBXBuildFile; fileRef = 6783350E5EEBE526BCC7AA81538520AC /* UIButton+RACCommandSupport.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 2B20067EAA2480AF957719D9D01C2CD7 /* YBIBScreenRotationHandler.h in Headers */ = {isa = PBXBuildFile; fileRef = E58237B2B4A6B1DD42E9F847AC66FF60 /* YBIBScreenRotationHandler.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 2B4B0F5722CADFFB78D9DAF97B5BF4AB /* SDWebImageCacheKeyFilter.m in Sources */ = {isa = PBXBuildFile; fileRef = 7145A9E52E76E351982F1B65D68A1C37 /* SDWebImageCacheKeyFilter.m */; }; - 2B4DCD295A607A2B1F1643A2EC05E843 /* OSSGetObjectTaggingRequest.m in Sources */ = {isa = PBXBuildFile; fileRef = F007B2FA752918FA4152FCA7ABAFB0DA /* OSSGetObjectTaggingRequest.m */; }; - 2B540D96582456222075783FC6C272DD /* alpha_processing_mips_dsp_r2.c in Sources */ = {isa = PBXBuildFile; fileRef = A5605D39F81419C8807BA8D96CB91D39 /* alpha_processing_mips_dsp_r2.c */; settings = {COMPILER_FLAGS = "-D_THREAD_SAFE -fno-objc-arc"; }; }; - 2B563466941B4D57F6692FA3CE839900 /* SDImageFrame.h in Headers */ = {isa = PBXBuildFile; fileRef = 2DA7CD9088FBD27028D8FBB51DEA9E06 /* SDImageFrame.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 2BAF7BC9E0306911179C28374B91F8F3 /* LLLogComponent.m in Sources */ = {isa = PBXBuildFile; fileRef = 422005268305760033704361EE21208D /* LLLogComponent.m */; }; + 29BA83CA355176B8A2D866426610ABD3 /* lossless_enc_sse2.c in Sources */ = {isa = PBXBuildFile; fileRef = 7622B32104E90F22DCAA3A51E5584A2F /* lossless_enc_sse2.c */; settings = {COMPILER_FLAGS = "-D_THREAD_SAFE -fno-objc-arc"; }; }; + 29FBA06A84E314E7819CB2D841B4086E /* OSSReachability.m in Sources */ = {isa = PBXBuildFile; fileRef = 8713EAD8F5F555520F376C1B56C94475 /* OSSReachability.m */; }; + 2A20F86E9737C6EEABA93F84D6B3C45D /* QCloudAppendObjectRequest.h in Headers */ = {isa = PBXBuildFile; fileRef = 8FD899744B4FE45A72DB2098F9A30587 /* QCloudAppendObjectRequest.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 2A329296A4DC3BBA7E27EF8F0EAFC8BD /* IQKeyboardManager-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = F04CF9EF12EF7BB8300A657B6133FD01 /* IQKeyboardManager-dummy.m */; }; + 2A4F5A1CE4B33E577C4CEF70E768CD9A /* SVGABitmapLayer.h in Headers */ = {isa = PBXBuildFile; fileRef = 65560FBD00985B81E1244034EFF5D028 /* SVGABitmapLayer.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 2AD40AFC4BB803B3EF3C41BDE61118E5 /* YBIBVideoData.m in Sources */ = {isa = PBXBuildFile; fileRef = 2DA148DE1B8BA9807E9C034B5AD68C62 /* YBIBVideoData.m */; }; + 2AE7BB585C30531B98A96059C231B9A2 /* OSSNSLogger.m in Sources */ = {isa = PBXBuildFile; fileRef = 35274E48FA9B681200EB7E115F96721F /* OSSNSLogger.m */; }; + 2AF03A6ED69ABEA11BC6C3235B2C7A46 /* PrivacyInfo.xcprivacy in Resources */ = {isa = PBXBuildFile; fileRef = BD769B178C36278A102C5B37E74E8BF1 /* PrivacyInfo.xcprivacy */; }; + 2AF63AAE9AA1B79A9D763AD6F1E9419D /* BRStringPickerView.m in Sources */ = {isa = PBXBuildFile; fileRef = CCBF64731105523C223CFAD2C3B593F2 /* BRStringPickerView.m */; }; + 2B05197D9780DA9C2A6C74663FDC1BE8 /* UIButton+RACCommandSupport.h in Headers */ = {isa = PBXBuildFile; fileRef = 10085F9C69F730D9B2523E9F1C8467AB /* UIButton+RACCommandSupport.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 2B20067EAA2480AF957719D9D01C2CD7 /* YBIBScreenRotationHandler.h in Headers */ = {isa = PBXBuildFile; fileRef = 417A37FD0F881B7B19B3D9D3CDCD19D6 /* YBIBScreenRotationHandler.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 2B3E5C42810FCE4769ABB7FB948B5408 /* SDWebImageTransition.m in Sources */ = {isa = PBXBuildFile; fileRef = 9B30693507E84DDEC66045E3DD7397AA /* SDWebImageTransition.m */; }; + 2B4DCD295A607A2B1F1643A2EC05E843 /* OSSGetObjectTaggingRequest.m in Sources */ = {isa = PBXBuildFile; fileRef = BE241C2F9A47D46A4AF4A623C4B1E59A /* OSSGetObjectTaggingRequest.m */; }; + 2B6A021FEA88E0BB935BD31578B7DACB /* QCloudUploadPartCopyRequest.h in Headers */ = {isa = PBXBuildFile; fileRef = EBE5099CE237143C902B9F81A11DB6EE /* QCloudUploadPartCopyRequest.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 2B7826A107770D56D65CCC5F356F702D /* QCloudClientContext.m in Sources */ = {isa = PBXBuildFile; fileRef = FC1DF0BC5184945C1CF0AFDB36051E1D /* QCloudClientContext.m */; }; + 2BAF7BC9E0306911179C28374B91F8F3 /* LLLogComponent.m in Sources */ = {isa = PBXBuildFile; fileRef = 708727B81F22B40D3A3A8C8DC1AAE97E /* LLLogComponent.m */; }; 2BB18AE00C465E032ACDD9DA51514688 /* TUIFaceMessageCell.m in Sources */ = {isa = PBXBuildFile; fileRef = 61DE3E8F06512815DB6D6DD71AD2F899 /* TUIFaceMessageCell.m */; }; - 2BC3B39A149E8998A7B8749935868AF0 /* LLTitleCell.m in Sources */ = {isa = PBXBuildFile; fileRef = 5DC324923EDC21A26D4B568AAC873688 /* LLTitleCell.m */; }; - 2BDFF6555E7582D1635C017B636B4591 /* LLBaseView.m in Sources */ = {isa = PBXBuildFile; fileRef = 66C14A33E8167660438C7F28D3771F24 /* LLBaseView.m */; }; - 2BED2E564D470695BC40C26583766BA8 /* LLFunctionComponent.h in Headers */ = {isa = PBXBuildFile; fileRef = F7A3659F20415C8438246E3A6D607A15 /* LLFunctionComponent.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 2BEDD35426B348EC616C6A0939C6BD83 /* RACAnnotations.h in Headers */ = {isa = PBXBuildFile; fileRef = 7EEBE3C8967905D483B0EA21522EAD31 /* RACAnnotations.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 2BF447D576AA9348D60D3747DAF2951B /* LLMoveView.m in Sources */ = {isa = PBXBuildFile; fileRef = B46B2FBE4DF39282224F9442B3644468 /* LLMoveView.m */; }; - 2C0FA190FEDC9EAE16DC40DC130B27CB /* QGMP4Parser.h in Headers */ = {isa = PBXBuildFile; fileRef = B6D38AC750D197B3F8888F2C342BED27 /* QGMP4Parser.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 2C1F1D72A18885BC0EAA9D6B52747BF7 /* LLHtmlConfigViewController.h in Headers */ = {isa = PBXBuildFile; fileRef = D080384D965E90350B3F19D493EB0BAB /* LLHtmlConfigViewController.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 2C35504A9D1F5B50B94C346A89BD2ADA /* LLWidgetBorderViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 9DF6396672E6660143CC1E27678A2E81 /* LLWidgetBorderViewController.m */; }; + 2BB2E704A7D1993734857D56EEF87417 /* QCloudCOSXMLService.h in Headers */ = {isa = PBXBuildFile; fileRef = E5317EED7BF8169353CF7EC8B155150A /* QCloudCOSXMLService.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 2BC3B39A149E8998A7B8749935868AF0 /* LLTitleCell.m in Sources */ = {isa = PBXBuildFile; fileRef = D01197E6C49A9AD7979056EE3756EAA8 /* LLTitleCell.m */; }; + 2BC9958D405FFEC5922D3DCDCCA541B5 /* libwebp-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = 8A2E54379802BDF73B1501EBF3CBE028 /* libwebp-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 2BDFF6555E7582D1635C017B636B4591 /* LLBaseView.m in Sources */ = {isa = PBXBuildFile; fileRef = B824EF32F8F9CB34233DB0D1331D0198 /* LLBaseView.m */; }; + 2BED2E564D470695BC40C26583766BA8 /* LLFunctionComponent.h in Headers */ = {isa = PBXBuildFile; fileRef = 1E518B1E5926085DBA4039B9D137A1DD /* LLFunctionComponent.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 2BEDD35426B348EC616C6A0939C6BD83 /* RACAnnotations.h in Headers */ = {isa = PBXBuildFile; fileRef = 90391DF6CE0A93C6D9EA0ABCBF2EC469 /* RACAnnotations.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 2BF447D576AA9348D60D3747DAF2951B /* LLMoveView.m in Sources */ = {isa = PBXBuildFile; fileRef = D014ADFEC72D94D1F08EFECCCFB30171 /* LLMoveView.m */; }; + 2C0FA190FEDC9EAE16DC40DC130B27CB /* QGMP4Parser.h in Headers */ = {isa = PBXBuildFile; fileRef = B2BAF03368C61D0A31E4A6CFC8D815CC /* QGMP4Parser.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 2C1F1D72A18885BC0EAA9D6B52747BF7 /* LLHtmlConfigViewController.h in Headers */ = {isa = PBXBuildFile; fileRef = E14DEF22AF4250D11F2F22A453A3A435 /* LLHtmlConfigViewController.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 2C2441428AD5DAE47B2BA3DC36A0B10F /* SDImageAssetManager.h in Headers */ = {isa = PBXBuildFile; fileRef = 4954EA086BF966885872FE25853BA697 /* SDImageAssetManager.h */; settings = {ATTRIBUTES = (Private, ); }; }; + 2C35504A9D1F5B50B94C346A89BD2ADA /* LLWidgetBorderViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 0181C802BE8602B5399F0D3B7179F895 /* LLWidgetBorderViewController.m */; }; 2C44FFD191405D400640C732650CA899 /* QuartzCore.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 495512CED6B55B9463695CBE9898BE51 /* QuartzCore.framework */; }; 2C4AD1CC5D0F76CE1920BBD9D8EEF50B /* TUIFaceView.h in Headers */ = {isa = PBXBuildFile; fileRef = 93FE9436178E5ACA9A9610B25786D11D /* TUIFaceView.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 2C52A40A6CEE5E8E2AA9E848ABF6136F /* SDWebImageDownloaderConfig.h in Headers */ = {isa = PBXBuildFile; fileRef = 7B9A035DE5D9C7806758DF7A4C66FC22 /* SDWebImageDownloaderConfig.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 2CCABBEFDEFB70C41CCC37065A2574B6 /* GPBStruct.pbobjc.h in Headers */ = {isa = PBXBuildFile; fileRef = 41E1777D368E8B68ADAC7BFFAB3222C4 /* GPBStruct.pbobjc.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 2CCABBEFDEFB70C41CCC37065A2574B6 /* GPBStruct.pbobjc.h in Headers */ = {isa = PBXBuildFile; fileRef = E2CAA01D90816AFC88844177C39399EF /* GPBStruct.pbobjc.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 2CD337A735536426E53122DD7B9E1A8E /* filters_sse2.c in Sources */ = {isa = PBXBuildFile; fileRef = 4CC4BCC6BDE780529CE713EB68E02781 /* filters_sse2.c */; settings = {COMPILER_FLAGS = "-D_THREAD_SAFE -fno-objc-arc"; }; }; + 2CDBE668854D8F494BC61BBCFE07A85F /* NSURLRequest+COS.h in Headers */ = {isa = PBXBuildFile; fileRef = 6E78B3D3666EAECB485A34F58F88CB21 /* NSURLRequest+COS.h */; settings = {ATTRIBUTES = (Public, ); }; }; 2CE7D498230122B0E97F1922AE3B3AEA /* TIMCommon.bundle in Resources */ = {isa = PBXBuildFile; fileRef = F422FF5E8289A7F608A9000EB557C218 /* TIMCommon.bundle */; }; - 2D186F2FB3E10E14113F37C408BA2989 /* UIWindow+LL_Utils.h in Headers */ = {isa = PBXBuildFile; fileRef = 9FF785B24C04D1820F062A5C2D2C513D /* UIWindow+LL_Utils.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 2D1EB31BA01EABC37A2C31F6ABD25ED6 /* huffman_encode_utils.c in Sources */ = {isa = PBXBuildFile; fileRef = E989E86414A3C2F2B0DBC5C16D646DD1 /* huffman_encode_utils.c */; settings = {COMPILER_FLAGS = "-D_THREAD_SAFE -fno-objc-arc"; }; }; - 2D26235B8351FA85BF96A35D35FB4838 /* UIImage+MultiFormat.h in Headers */ = {isa = PBXBuildFile; fileRef = 4C5296DC25AE3D290C724DAACD1CFEE7 /* UIImage+MultiFormat.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 2D2C84E3A1976DED48341393B35E1BC6 /* IQUIView+Hierarchy.m in Sources */ = {isa = PBXBuildFile; fileRef = BE8A3BA93CE6AF649E5A8BFE619067E1 /* IQUIView+Hierarchy.m */; }; - 2D38C75D33DBF73D90E67B5657221319 /* GPBStruct.pbobjc.m in Sources */ = {isa = PBXBuildFile; fileRef = 9A93869CEF592BE323C598BD2B5DB2FD /* GPBStruct.pbobjc.m */; settings = {COMPILER_FLAGS = "-fno-objc-arc"; }; }; + 2D00040687DD499A5EA73FB89BBCF559 /* QCloudNetResponse.m in Sources */ = {isa = PBXBuildFile; fileRef = 3E50F3C1212023FC910409AE15820C07 /* QCloudNetResponse.m */; }; + 2D186F2FB3E10E14113F37C408BA2989 /* UIWindow+LL_Utils.h in Headers */ = {isa = PBXBuildFile; fileRef = 1905248EEA3CE43D8B0EE5A90773BEF7 /* UIWindow+LL_Utils.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 2D2C84E3A1976DED48341393B35E1BC6 /* IQUIView+Hierarchy.m in Sources */ = {isa = PBXBuildFile; fileRef = E6424BE5F62EA57F4F0571A902C9BA27 /* IQUIView+Hierarchy.m */; }; + 2D38C75D33DBF73D90E67B5657221319 /* GPBStruct.pbobjc.m in Sources */ = {isa = PBXBuildFile; fileRef = 199536E8963A301291FD2DEC6B14531D /* GPBStruct.pbobjc.m */; settings = {COMPILER_FLAGS = "-fno-objc-arc"; }; }; 2D4F4C06308215411A68E544A3982D1C /* TUIMemberCell_Minimalist.m in Sources */ = {isa = PBXBuildFile; fileRef = 21428AF52FBF5DEC274F06D5C60B0C16 /* TUIMemberCell_Minimalist.m */; }; - 2D6F7E56AF2B8FD646BD1751B4DADEBD /* MQTTStrict.m in Sources */ = {isa = PBXBuildFile; fileRef = 2F16AADB89A2534768EEF98070B578AF /* MQTTStrict.m */; }; - 2D873076AFF986FB88A07B056E6E1B45 /* UISwitch+RACSignalSupport.h in Headers */ = {isa = PBXBuildFile; fileRef = 324C3C17E77640BD11D454C5D4E11998 /* UISwitch+RACSignalSupport.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 2DAE548120C5802FFFA367BB465A889C /* OSSHttpdns.h in Headers */ = {isa = PBXBuildFile; fileRef = 1B682B2D49A459741652DEE728A1163D /* OSSHttpdns.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 2DB0021F9583F06D433E0EA01CC4BD65 /* YYClassInfo.m in Sources */ = {isa = PBXBuildFile; fileRef = CDCBFE2460C3F5A7DAFF62C702FD0F97 /* YYClassInfo.m */; }; - 2DC44A09A6C9D6DC7D1BDA2DFCF99EE3 /* MJRefreshConfig.m in Sources */ = {isa = PBXBuildFile; fileRef = 612B560D0E7ABEABC7B82D4986F590AE /* MJRefreshConfig.m */; }; + 2D6F7E56AF2B8FD646BD1751B4DADEBD /* MQTTStrict.m in Sources */ = {isa = PBXBuildFile; fileRef = BDE1AA2A36E096D689FCD716B4C4E034 /* MQTTStrict.m */; }; + 2D873076AFF986FB88A07B056E6E1B45 /* UISwitch+RACSignalSupport.h in Headers */ = {isa = PBXBuildFile; fileRef = 1641B4130A8DD2C2E3021678074209EB /* UISwitch+RACSignalSupport.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 2DAE548120C5802FFFA367BB465A889C /* OSSHttpdns.h in Headers */ = {isa = PBXBuildFile; fileRef = A3760168DD553F63C1B028117FACCA40 /* OSSHttpdns.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 2DB0021F9583F06D433E0EA01CC4BD65 /* YYClassInfo.m in Sources */ = {isa = PBXBuildFile; fileRef = D844201CDF9991CA5EC19D25ED3DEAE7 /* YYClassInfo.m */; }; + 2DBC4BB68901CAE949C825BC6494261A /* webp_enc.c in Sources */ = {isa = PBXBuildFile; fileRef = E5D64DC699AC6B5360DF371C757BB336 /* webp_enc.c */; settings = {COMPILER_FLAGS = "-D_THREAD_SAFE -fno-objc-arc"; }; }; + 2DC44A09A6C9D6DC7D1BDA2DFCF99EE3 /* MJRefreshConfig.m in Sources */ = {isa = PBXBuildFile; fileRef = 7E117D8C5A00946329D50C817ABA1495 /* MJRefreshConfig.m */; }; 2DCFF659873D28F23E5EF7905E5BA179 /* TUICameraManager.m in Sources */ = {isa = PBXBuildFile; fileRef = 8555CE3050DD11E22AB65208A845D9FD /* TUICameraManager.m */; }; - 2DD65DE2BC1D3B6536ECC06F2BB1CB26 /* RACEmptySignal.m in Sources */ = {isa = PBXBuildFile; fileRef = 3F9064E489C7E7B3860786D3B0B5F4C9 /* RACEmptySignal.m */; }; - 2DDF8B118492FE8D05026C8FB28AA79B /* SDAnimatedImage.h in Headers */ = {isa = PBXBuildFile; fileRef = 19EF0D68B436BB55EB5138A59AD851AD /* SDAnimatedImage.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 2DF18AC7710FF41843AF083CBB379E3D /* QGHWDMetalView.h in Headers */ = {isa = PBXBuildFile; fileRef = 849EF98FCEA13497C076203B672F2DBE /* QGHWDMetalView.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 2DD65DE2BC1D3B6536ECC06F2BB1CB26 /* RACEmptySignal.m in Sources */ = {isa = PBXBuildFile; fileRef = 4FAEC03D86C93D4F312C93B5ED5AAE54 /* RACEmptySignal.m */; }; + 2DDF3CEDB408861B01CE914C5D13E789 /* QCloudCopyObjectResult.m in Sources */ = {isa = PBXBuildFile; fileRef = 55829FFCDE8DA7CCFAF80FADF8C47EEF /* QCloudCopyObjectResult.m */; }; + 2DF18AC7710FF41843AF083CBB379E3D /* QGHWDMetalView.h in Headers */ = {isa = PBXBuildFile; fileRef = F9E5BDE72EE2D76597543262ADB25515 /* QGHWDMetalView.h */; settings = {ATTRIBUTES = (Public, ); }; }; 2E1867F4BF148982CC9C6D87AA37BDCA /* TUIInputMoreCell.m in Sources */ = {isa = PBXBuildFile; fileRef = 80986A16BDC16262E495AA75F73F8B79 /* TUIInputMoreCell.m */; }; - 2E1CA71B0FFA4A03E28B17AE0F278D45 /* LLShortCut.h in Headers */ = {isa = PBXBuildFile; fileRef = 06759C0A3CE57C6E2D69515A279E89F8 /* LLShortCut.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 2E1E3AC46C967F91DFDE559D89EBC3A8 /* LLNetworkFilterViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = BB7828C91DBD796106F506300C7CDF36 /* LLNetworkFilterViewController.m */; }; + 2E1CA71B0FFA4A03E28B17AE0F278D45 /* LLShortCut.h in Headers */ = {isa = PBXBuildFile; fileRef = 53EDF4BD172DDA164576FF8F67F56308 /* LLShortCut.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 2E1E3AC46C967F91DFDE559D89EBC3A8 /* LLNetworkFilterViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 3F38A2256A603F22218784B900169A70 /* LLNetworkFilterViewController.m */; }; + 2E2536A30BBF28BA8E8B908F6B1B786E /* dec_neon.c in Sources */ = {isa = PBXBuildFile; fileRef = B0C72B62D46E9DC948B196A020E7C33B /* dec_neon.c */; settings = {COMPILER_FLAGS = "-D_THREAD_SAFE -fno-objc-arc"; }; }; + 2E3E19C270C7CA28D22E1DE97A355225 /* QCloudHTTPRequestOperation.h in Headers */ = {isa = PBXBuildFile; fileRef = 963582D9879ACDC3E657D057454E7CE1 /* QCloudHTTPRequestOperation.h */; settings = {ATTRIBUTES = (Public, ); }; }; 2E55EE8816AF888AA4799BC09BEAA876 /* TUIChatMediaSendingManager.h in Headers */ = {isa = PBXBuildFile; fileRef = 80FDEC578435CB75CD9AB2F2B618434D /* TUIChatMediaSendingManager.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 2E5D87C6E60B28438B385B3296398047 /* QGBaseAnimatedImageFrame+Displaying.h in Headers */ = {isa = PBXBuildFile; fileRef = 7CB3ADC3E378AEF407221E27752303D3 /* QGBaseAnimatedImageFrame+Displaying.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 2E9739C114AE2A36057E717F0513BB32 /* SDDiskCache.h in Headers */ = {isa = PBXBuildFile; fileRef = 545BFAFF9A7B79F842EA72B5AF9B36C7 /* SDDiskCache.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 2E9DD2B27ED0BF420AB2BB7C5F6C8008 /* LLMagnifierInfoView.h in Headers */ = {isa = PBXBuildFile; fileRef = BF63C85D80E158AF3A1E9EB19E7C9D25 /* LLMagnifierInfoView.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 2EC7BA321016EC71EA595E4BAF0B7E8B /* JXCategoryDotCell.h in Headers */ = {isa = PBXBuildFile; fileRef = A4DFCF7FE09ABB20B39A07DB8F4FEF55 /* JXCategoryDotCell.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 2EDA227454079ED3F6371BF34AFD4735 /* JXCategoryIndicatorCellModel.m in Sources */ = {isa = PBXBuildFile; fileRef = 832302185FF62A978FE3E99CFB7F2271 /* JXCategoryIndicatorCellModel.m */; }; - 2EDBAEFB8B5F8E2E1DFFBCE35B30B274 /* OSSCancellationTokenRegistration.m in Sources */ = {isa = PBXBuildFile; fileRef = 62F6451C0AB15084F2AE9AA9293C2EC2 /* OSSCancellationTokenRegistration.m */; }; - 2EE6DD9A0A1D9BE22645EFD7C86247F7 /* YYCache.m in Sources */ = {isa = PBXBuildFile; fileRef = 1E5B4A02151E0AC91F638B2A3F028F76 /* YYCache.m */; }; - 2EED77BCEA5962E3F5C6AA01EE470F2E /* SDWebImageCacheSerializer.h in Headers */ = {isa = PBXBuildFile; fileRef = 47CF136EC922D540479ABE8BCF255DA8 /* SDWebImageCacheSerializer.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 2F13033DEC902E6AF5B17B7482AB2015 /* TZImageCropManager.h in Headers */ = {isa = PBXBuildFile; fileRef = D6D160BF36FB6AD42ADF0CCACC82C43E /* TZImageCropManager.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 2E5D87C6E60B28438B385B3296398047 /* QGBaseAnimatedImageFrame+Displaying.h in Headers */ = {isa = PBXBuildFile; fileRef = 521ED7848F776C4C2660EAE7DFBC2718 /* QGBaseAnimatedImageFrame+Displaying.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 2E6EFA9423F2E284B5463C5A6E51F328 /* huffman_utils.c in Sources */ = {isa = PBXBuildFile; fileRef = 9F986A2714B3B701410AC79A28043637 /* huffman_utils.c */; settings = {COMPILER_FLAGS = "-D_THREAD_SAFE -fno-objc-arc"; }; }; + 2E9DD2B27ED0BF420AB2BB7C5F6C8008 /* LLMagnifierInfoView.h in Headers */ = {isa = PBXBuildFile; fileRef = A7BCC0FC949E3EB097C59CAB5EC45784 /* LLMagnifierInfoView.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 2EC7BA321016EC71EA595E4BAF0B7E8B /* JXCategoryDotCell.h in Headers */ = {isa = PBXBuildFile; fileRef = DD1E393A663396E0042545C9810C4128 /* JXCategoryDotCell.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 2EDA227454079ED3F6371BF34AFD4735 /* JXCategoryIndicatorCellModel.m in Sources */ = {isa = PBXBuildFile; fileRef = 54104EB829695774D39A98E876CD853E /* JXCategoryIndicatorCellModel.m */; }; + 2EDBAEFB8B5F8E2E1DFFBCE35B30B274 /* OSSCancellationTokenRegistration.m in Sources */ = {isa = PBXBuildFile; fileRef = 82D4AA5F4F0F239F62DF2A79FEA53CB7 /* OSSCancellationTokenRegistration.m */; }; + 2EE6DD9A0A1D9BE22645EFD7C86247F7 /* YYCache.m in Sources */ = {isa = PBXBuildFile; fileRef = 89F00C01EAA910DD95D102446456FC76 /* YYCache.m */; }; + 2EF6B6DB15FF65EA643A5C16890D5827 /* QCloudModel.m in Sources */ = {isa = PBXBuildFile; fileRef = FD4864429FE4F1180471376F2525AC2D /* QCloudModel.m */; }; + 2F13033DEC902E6AF5B17B7482AB2015 /* TZImageCropManager.h in Headers */ = {isa = PBXBuildFile; fileRef = A326A8817A27E8B1B6A3F303113D0899 /* TZImageCropManager.h */; settings = {ATTRIBUTES = (Public, ); }; }; 2F20ABF8B57D4D09C60877EC6646D392 /* TUICaptureVideoPreviewView.m in Sources */ = {isa = PBXBuildFile; fileRef = B04090E2340AAF49C80FAD7F98AED770 /* TUICaptureVideoPreviewView.m */; }; - 2F2E362731C082CFAC44A750372AA85D /* LLWindowManager+Screenshot.h in Headers */ = {isa = PBXBuildFile; fileRef = 4364DEC7F8E45E2544D5183FAF389978 /* LLWindowManager+Screenshot.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 2F2E362731C082CFAC44A750372AA85D /* LLWindowManager+Screenshot.h in Headers */ = {isa = PBXBuildFile; fileRef = 30D66DBB6F25AA190EC0CF9EE915C8BC /* LLWindowManager+Screenshot.h */; settings = {ATTRIBUTES = (Public, ); }; }; 2F3186E94305E1BDE2804B371FD6256C /* TUITextMessageCellData.m in Sources */ = {isa = PBXBuildFile; fileRef = 553D8AA632AA4938E14D719679F3A41F /* TUITextMessageCellData.m */; }; 2F3DF6B364762766B2071E72455EED69 /* TUICaptureVideoPreviewView.h in Headers */ = {isa = PBXBuildFile; fileRef = F191B112D9A647ADDE823C7B989E1DAE /* TUICaptureVideoPreviewView.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 2F42596595A31B11953A6E2143126B39 /* predictor_enc.c in Sources */ = {isa = PBXBuildFile; fileRef = 444739377ECBE2783ED8E2D08F35EFFD /* predictor_enc.c */; settings = {COMPILER_FLAGS = "-D_THREAD_SAFE -fno-objc-arc"; }; }; - 2F5E8EB2C0A520801311E742CCCC4799 /* GPBDictionary.h in Headers */ = {isa = PBXBuildFile; fileRef = BBC1F5060599CCD3877037976AD18304 /* GPBDictionary.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 2F75AC11B36110337AA9C7D210917269 /* YYTextAsyncLayer.h in Headers */ = {isa = PBXBuildFile; fileRef = E7E4F788297C182FDA37350932B99BD4 /* YYTextAsyncLayer.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 2F7D053737C1D885B4580081A33891CB /* LLShortCutComponent.h in Headers */ = {isa = PBXBuildFile; fileRef = 9836D81589CC11610310D84CF2E8CDFD /* LLShortCutComponent.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 2F81402A67807E725AFA9A886C6765E1 /* msa_macro.h in Headers */ = {isa = PBXBuildFile; fileRef = 5402A5DB3FC680C9B92D7CBE65389962 /* msa_macro.h */; settings = {ATTRIBUTES = (Project, ); }; }; - 2F9F5E8A231DBC9ED70074D69D9DCA8A /* BRPickerView.h in Headers */ = {isa = PBXBuildFile; fileRef = DA38BE4378060C256C25BF91B3F8D48A /* BRPickerView.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 2FA0528C4525B526B8DB3A6BF2C737E3 /* LLLocationHelper.h in Headers */ = {isa = PBXBuildFile; fileRef = 2C14E11BA635536BCBC8B07EC4BA06E1 /* LLLocationHelper.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 2FBAC3DA2F1F5310FFC3305B264B5EE8 /* TUIWeakProxy.h in Headers */ = {isa = PBXBuildFile; fileRef = 8C7BEF24C1C8967E18F0BE66B0FE3D0F /* TUIWeakProxy.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 2FBC3BF80C513F568493D1129256AF49 /* SDWebImagePrefetcher.m in Sources */ = {isa = PBXBuildFile; fileRef = 5BC35F28F4336A35C3B61935534DF8EC /* SDWebImagePrefetcher.m */; }; - 2FD1030933EBCDA3B09E25152E9D67B4 /* SDImageWebPCoder.m in Sources */ = {isa = PBXBuildFile; fileRef = C10BF9C2806D6FEF1555EB9A878E0690 /* SDImageWebPCoder.m */; }; + 2F5B6ADA86518392F043E7F2E03EDC4A /* UIView+TUIUtil.m in Sources */ = {isa = PBXBuildFile; fileRef = 3814AF3EC255DDF9577E5266D96B7B49 /* UIView+TUIUtil.m */; }; + 2F5D66F850E2C1DC3BA55E0D972A6495 /* rescaler_utils.h in Headers */ = {isa = PBXBuildFile; fileRef = 6040685E7D4DC736512DD586ADEEA597 /* rescaler_utils.h */; settings = {ATTRIBUTES = (Project, ); }; }; + 2F5E8EB2C0A520801311E742CCCC4799 /* GPBDictionary.h in Headers */ = {isa = PBXBuildFile; fileRef = 43F47529FDB6F50A2E5C8527B27CBE63 /* GPBDictionary.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 2F75AC11B36110337AA9C7D210917269 /* YYTextAsyncLayer.h in Headers */ = {isa = PBXBuildFile; fileRef = 286102C5A2422F0545325003AF4C9835 /* YYTextAsyncLayer.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 2F7D053737C1D885B4580081A33891CB /* LLShortCutComponent.h in Headers */ = {isa = PBXBuildFile; fileRef = D05247707BB27F2A39F7138D5AFBFC7C /* LLShortCutComponent.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 2F9A003577735BEAEF4DFEF7854B0E86 /* QCloudCompleteMultipartUploadRequest.h in Headers */ = {isa = PBXBuildFile; fileRef = 0D02468817FCFA1FA6213B1F3F66F5B4 /* QCloudCompleteMultipartUploadRequest.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 2F9D0961E6C03C7C4D9CACF7759CC8A1 /* YYFrameImage.m in Sources */ = {isa = PBXBuildFile; fileRef = 3D091AA23B12B1EEA18EBF1FCCD12330 /* YYFrameImage.m */; }; + 2F9E90FFAE85AD66A89D697911F7E7B5 /* QCloudWeakProxy.h in Headers */ = {isa = PBXBuildFile; fileRef = 2B96829ABC3F8B1A7F6070F204948699 /* QCloudWeakProxy.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 2F9F5E8A231DBC9ED70074D69D9DCA8A /* BRPickerView.h in Headers */ = {isa = PBXBuildFile; fileRef = 29973248D7074A8F3E4849D416197401 /* BRPickerView.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 2FA0528C4525B526B8DB3A6BF2C737E3 /* LLLocationHelper.h in Headers */ = {isa = PBXBuildFile; fileRef = EC66B56F74A65DE41BAF756857F9EA36 /* LLLocationHelper.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 2FD1030933EBCDA3B09E25152E9D67B4 /* SDImageWebPCoder.m in Sources */ = {isa = PBXBuildFile; fileRef = 47AA2B6BDCF9094B1400FB48698EAE18 /* SDImageWebPCoder.m */; }; 2FDA0F9A0DBB98A99500F2E0B5B7753C /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = F91075A92425F75F02E0E1C8D455AF79 /* Foundation.framework */; }; 300A16E33BB0C3B1FD8EB7D37C924F28 /* TUIMediaView.m in Sources */ = {isa = PBXBuildFile; fileRef = 369D4B722FCCC1FCA027159ADEAC799E /* TUIMediaView.m */; }; 302F4A05CADC5F8C1682D9BD6374E6BE /* TUIVideoMessageCell.h in Headers */ = {isa = PBXBuildFile; fileRef = A045214BD85EE2AE5F384C3A0A4A8F28 /* TUIVideoMessageCell.h */; settings = {ATTRIBUTES = (Public, ); }; }; 3031F261833CCB0D23E371363F8FA792 /* TUIImageReplyQuoteView_Minimalist.h in Headers */ = {isa = PBXBuildFile; fileRef = 0A80B6BD2BF1890499E2A12A11A06DDD /* TUIImageReplyQuoteView_Minimalist.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 3036356F85FEE0B1B1EFD389C8AB515E /* UIImageView+HighlightedWebCache.h in Headers */ = {isa = PBXBuildFile; fileRef = 7F9BF7459E26D9B231CAE3CE61CA0701 /* UIImageView+HighlightedWebCache.h */; settings = {ATTRIBUTES = (Public, ); }; }; 303A2C5BA27890E7B2A6975D6D3E57DF /* TUIConversationCell.h in Headers */ = {isa = PBXBuildFile; fileRef = 4E3CC9A805668EB263F100E9E0BAA674 /* TUIConversationCell.h */; settings = {ATTRIBUTES = (Public, ); }; }; 303B0ABC4B3B9B82ECE84BE4C3EC2F44 /* TUITypingStatusCellData.h in Headers */ = {isa = PBXBuildFile; fileRef = 217E31AF5E6DE232205A50434411FA03 /* TUITypingStatusCellData.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 306C9FB5F02CE7B2CEE3B834AFE69B76 /* quant_levels_dec_utils.c in Sources */ = {isa = PBXBuildFile; fileRef = 9657CC53F162E9B98D58C7976220247D /* quant_levels_dec_utils.c */; settings = {COMPILER_FLAGS = "-D_THREAD_SAFE -fno-objc-arc"; }; }; 30837733AFFB5B01C5E0833B5719E5D7 /* UIKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 83AC327FDFB768874F13D3CD20C46095 /* UIKit.framework */; }; - 30B0A360934E282E40ED1408F47A27E2 /* lossless_enc_sse41.c in Sources */ = {isa = PBXBuildFile; fileRef = A566682050AA734A99A672489B819EEF /* lossless_enc_sse41.c */; settings = {COMPILER_FLAGS = "-D_THREAD_SAFE -fno-objc-arc"; }; }; - 30BE83ACB80227A5F67D6A1347B1293A /* YBIBIconManager.m in Sources */ = {isa = PBXBuildFile; fileRef = DC0E38C4B8DAC14B0CCFCA2FDD46687D /* YBIBIconManager.m */; }; - 30D5C50A52FA6139CCDF5966F4296736 /* OSSGetObjectTaggingRequest.h in Headers */ = {isa = PBXBuildFile; fileRef = E4E45A60EDFFD10C68DAFA2D0A43547E /* OSSGetObjectTaggingRequest.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 30FE660831E11D2EA5791BB9D84A3978 /* UITableViewCell+RACSignalSupport.h in Headers */ = {isa = PBXBuildFile; fileRef = 8061F5C4EB19BDD00C4EA158523641A8 /* UITableViewCell+RACSignalSupport.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 312AE7AE9A6E3EB30FD084F241146810 /* IQTextView.m in Sources */ = {isa = PBXBuildFile; fileRef = A4C45C623F73AE83F13B0AA7910263B2 /* IQTextView.m */; }; + 30BE83ACB80227A5F67D6A1347B1293A /* YBIBIconManager.m in Sources */ = {isa = PBXBuildFile; fileRef = C33E4AB992FF9A1D7C2AA70DC651EAA8 /* YBIBIconManager.m */; }; + 30D5C50A52FA6139CCDF5966F4296736 /* OSSGetObjectTaggingRequest.h in Headers */ = {isa = PBXBuildFile; fileRef = 573B74D12E6E54986C8557B3D9046F11 /* OSSGetObjectTaggingRequest.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 30DEA4FB597C430C3B209532F85585B8 /* common_dec.h in Headers */ = {isa = PBXBuildFile; fileRef = C6456D0D2370E680BAE9250B60CF2081 /* common_dec.h */; settings = {ATTRIBUTES = (Project, ); }; }; + 30FE660831E11D2EA5791BB9D84A3978 /* UITableViewCell+RACSignalSupport.h in Headers */ = {isa = PBXBuildFile; fileRef = 500E30DB35DDF6AA73303E1805A5F0E6 /* UITableViewCell+RACSignalSupport.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 312AE7AE9A6E3EB30FD084F241146810 /* IQTextView.m in Sources */ = {isa = PBXBuildFile; fileRef = 3EC3B519AC23B98923D9A30087556A44 /* IQTextView.m */; }; 31339F805AC3B51DEC5A6381086F9FF9 /* TUIImageMessageCell.h in Headers */ = {isa = PBXBuildFile; fileRef = EA8D722501ED4C9433828EF23341D97D /* TUIImageMessageCell.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 314D0B850DE7537ED7DA7B2990A2B9FF /* LLBaseViewController.h in Headers */ = {isa = PBXBuildFile; fileRef = 58DFADEA0C94467F4B75AC9F1FCCDD11 /* LLBaseViewController.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 318F89E20D7D6657B6234A5EE37DFD33 /* DownloaderManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = AFC8D0AE1EB81A7CD6655C9AD0556CA7 /* DownloaderManager.swift */; }; - 31CCE24843F18CF8FB0E90F4DDF99723 /* OSSDeleteMultipleObjectsResult.h in Headers */ = {isa = PBXBuildFile; fileRef = 6A096E00BF1BBA44741A175C7BDC569F /* OSSDeleteMultipleObjectsResult.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 31CCEEAF7153AADA391DA25B3C2DE6BB /* UIView+LLWidgetBorder.h in Headers */ = {isa = PBXBuildFile; fileRef = 606BAB5DCA9C660E267EA1EEB3E53F24 /* UIView+LLWidgetBorder.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 31DDCE41A00FEDF44F78FEA573BCEF85 /* LLWindowManager+Html.m in Sources */ = {isa = PBXBuildFile; fileRef = 9E30BFB967304B7C677E3EFC6D830038 /* LLWindowManager+Html.m */; }; - 31E03594824B9C1868700CB719A49612 /* NSUserDefaults+RACSupport.m in Sources */ = {isa = PBXBuildFile; fileRef = 4BD5985475E7528CD717D4DC5A781D5E /* NSUserDefaults+RACSupport.m */; }; - 31FA8264AA5553AB85039530B1FB8C4B /* JXCategoryNumberCell.h in Headers */ = {isa = PBXBuildFile; fileRef = C51F53C378A097EAB86127ED017F91E5 /* JXCategoryNumberCell.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 320FE38DF354323CBF30D4637B9056C2 /* LLHierarchy.h in Headers */ = {isa = PBXBuildFile; fileRef = 20AF907DFE0BD391414559970C40DA48 /* LLHierarchy.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 3135CC07B90460FB8ED8FED5F604F575 /* Accelerate.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 2F4078DA790DE5F4A9E0EBCD660768F7 /* Accelerate.framework */; }; + 3136AA517CA62EDF3813DFE82E748263 /* OfflinePushExtConfigInfo.h in Headers */ = {isa = PBXBuildFile; fileRef = 47F26FBC921B8530CADA1C0B48729E56 /* OfflinePushExtConfigInfo.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 314D0B850DE7537ED7DA7B2990A2B9FF /* LLBaseViewController.h in Headers */ = {isa = PBXBuildFile; fileRef = 48ABF582031A3386A3F7AED01D5630E2 /* LLBaseViewController.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 3165193FCEB8F6E32A86F0171C6EA2B3 /* TUIDefine.h in Headers */ = {isa = PBXBuildFile; fileRef = D378CF997ED4D06ECB2AE3DA1820EDE0 /* TUIDefine.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 316A315BADE052A39A6B2D25346F77E9 /* animi.h in Headers */ = {isa = PBXBuildFile; fileRef = 4390ECF02B6670C58E8A831A9A51D222 /* animi.h */; settings = {ATTRIBUTES = (Project, ); }; }; + 31764B90A991416D8CFFDB958167B5EB /* msa_macro.h in Headers */ = {isa = PBXBuildFile; fileRef = C58D32D01D066EB0C2F0E3F0B8D29D34 /* msa_macro.h */; settings = {ATTRIBUTES = (Project, ); }; }; + 31890AFC64545DC6A61BCA0D13B978E9 /* PrivacyInfo.xcprivacy in Resources */ = {isa = PBXBuildFile; fileRef = 41A52D5D394DB0AC8B4F045B594ED41B /* PrivacyInfo.xcprivacy */; }; + 318F89E20D7D6657B6234A5EE37DFD33 /* DownloaderManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6B580640D9CAF2BBC81C2216F358EA49 /* DownloaderManager.swift */; }; + 31CCE24843F18CF8FB0E90F4DDF99723 /* OSSDeleteMultipleObjectsResult.h in Headers */ = {isa = PBXBuildFile; fileRef = F2AC53F6F4586A35D3FFFF1BDB6D871E /* OSSDeleteMultipleObjectsResult.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 31CCEEAF7153AADA391DA25B3C2DE6BB /* UIView+LLWidgetBorder.h in Headers */ = {isa = PBXBuildFile; fileRef = 8592C7A6E25AFD826CEEBF578627B491 /* UIView+LLWidgetBorder.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 31DDCE41A00FEDF44F78FEA573BCEF85 /* LLWindowManager+Html.m in Sources */ = {isa = PBXBuildFile; fileRef = F0257AE55D55EF4A62C2C9C57A1DD59C /* LLWindowManager+Html.m */; }; + 31E03594824B9C1868700CB719A49612 /* NSUserDefaults+RACSupport.m in Sources */ = {isa = PBXBuildFile; fileRef = A91DF9F24199E49B4664372B94BADF48 /* NSUserDefaults+RACSupport.m */; }; + 31FA8264AA5553AB85039530B1FB8C4B /* JXCategoryNumberCell.h in Headers */ = {isa = PBXBuildFile; fileRef = B6EBDFFAC616F225B0F0B402279D197E /* JXCategoryNumberCell.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 32027080638708E21A2637CCC12C9483 /* lossless_mips_dsp_r2.c in Sources */ = {isa = PBXBuildFile; fileRef = 52D9EC9C96308E3F313A45922A3F0A6A /* lossless_mips_dsp_r2.c */; settings = {COMPILER_FLAGS = "-D_THREAD_SAFE -fno-objc-arc"; }; }; + 320FE38DF354323CBF30D4637B9056C2 /* LLHierarchy.h in Headers */ = {isa = PBXBuildFile; fileRef = E13AF1DF1EA09639F6F1D482DA30D222 /* LLHierarchy.h */; settings = {ATTRIBUTES = (Public, ); }; }; 321439AF92C111D5CB788627DA0B9AF5 /* TUIMediaView.h in Headers */ = {isa = PBXBuildFile; fileRef = 50BCF8BF2AF130E56729604C7B293ABD /* TUIMediaView.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 325CA20B9271F3E008234E1518B79061 /* MJRefresh-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = 87441D298151CFC225E14084247F8C9B /* MJRefresh-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 325CA20B9271F3E008234E1518B79061 /* MJRefresh-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = 45737676658AB1206146138DF7F2A0FF /* MJRefresh-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; 327BA3DDA513422E632D3DA4A8FC60EC /* MJRefresh-MJRefresh.Privacy in Resources */ = {isa = PBXBuildFile; fileRef = 7E3097CFEFDA621E9FB0E62009FF87FC /* MJRefresh-MJRefresh.Privacy */; }; - 327F8D3DD176743A1F2588C648EB2329 /* OSSCompat.h in Headers */ = {isa = PBXBuildFile; fileRef = EDEBEFDC15E4DA6B1CB9B03CF7309CE4 /* OSSCompat.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 327F8D3DD176743A1F2588C648EB2329 /* OSSCompat.h in Headers */ = {isa = PBXBuildFile; fileRef = 7C060A1B3314655E245A42B468679D3D /* OSSCompat.h */; settings = {ATTRIBUTES = (Public, ); }; }; 328757BF6111B25146A960C1B9798063 /* TUICameraViewController.h in Headers */ = {isa = PBXBuildFile; fileRef = E3C04C2EC55D83B4112636E431842FCD /* TUICameraViewController.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 32E9EBC31AB1234E68C1343ECE547274 /* SDImageCoderHelper.m in Sources */ = {isa = PBXBuildFile; fileRef = 72C3D78C7D7352C6A56092BC76521B39 /* SDImageCoderHelper.m */; }; 32F131A6DFA5553145E7F47839CB6B73 /* TUIMessageReadViewController.h in Headers */ = {isa = PBXBuildFile; fileRef = C6A22377923BC98FFF855E0D7E2C7BD9 /* TUIMessageReadViewController.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 32F17A5F04E538A7576DF236ACA6FC28 /* LLTitleCellView.h in Headers */ = {isa = PBXBuildFile; fileRef = 63EEDE214D2801C7AF04DF7DDF730311 /* LLTitleCellView.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 3331A013D48A5063B483A51B7E9068ED /* AFURLSessionManager.m in Sources */ = {isa = PBXBuildFile; fileRef = 64A70131FA93859D2FE1A6201257A797 /* AFURLSessionManager.m */; }; - 333CDC1546BEE98AA76BE27E4E17DF8B /* AvoidCrashStubProxy.h in Headers */ = {isa = PBXBuildFile; fileRef = C72D0FCDBEA89A04B10E44BE52EA4C9A /* AvoidCrashStubProxy.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 336CB4C1BDA002EBACD791D2C9AF8F85 /* dec_mips32.c in Sources */ = {isa = PBXBuildFile; fileRef = 5496A6590FB24C60ED57717FE61C81A0 /* dec_mips32.c */; settings = {COMPILER_FLAGS = "-D_THREAD_SAFE -fno-objc-arc"; }; }; - 34014A87BB2E5320D87A613DE5FFE2C7 /* picture_tools_enc.c in Sources */ = {isa = PBXBuildFile; fileRef = 7018D51C62366469DF6D714287D00F64 /* picture_tools_enc.c */; settings = {COMPILER_FLAGS = "-D_THREAD_SAFE -fno-objc-arc"; }; }; + 32F17A5F04E538A7576DF236ACA6FC28 /* LLTitleCellView.h in Headers */ = {isa = PBXBuildFile; fileRef = B5E71CD21CE2DDBF542958688F951266 /* LLTitleCellView.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 331BEB926B46CE13F35535BC53AACEEF /* SDGraphicsImageRenderer.m in Sources */ = {isa = PBXBuildFile; fileRef = 626BB9A04BF481E00E9842E0113F90AA /* SDGraphicsImageRenderer.m */; }; + 3331A013D48A5063B483A51B7E9068ED /* AFURLSessionManager.m in Sources */ = {isa = PBXBuildFile; fileRef = 82ED1D75E12BD82491ABBEC5F5DBBD68 /* AFURLSessionManager.m */; }; + 333CDC1546BEE98AA76BE27E4E17DF8B /* AvoidCrashStubProxy.h in Headers */ = {isa = PBXBuildFile; fileRef = 9F7262576B81D9C92A8FF0835DB50A90 /* AvoidCrashStubProxy.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 334425FEC5EF9E7A55BDD088F0DAF704 /* SDWebImageDefine.h in Headers */ = {isa = PBXBuildFile; fileRef = B3EFA030454F7A7EFF92DA22D9943AFF /* SDWebImageDefine.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 341C7DA0D7C8F40C3B9927046FF87DC5 /* UIImageView+WebCache.m in Sources */ = {isa = PBXBuildFile; fileRef = 5C4B739BEFAA0E94F4B683D81609CE1C /* UIImageView+WebCache.m */; }; + 34224C5D529358119ABAC3C4CAE6AEE7 /* Zip.h in Headers */ = {isa = PBXBuildFile; fileRef = 0B252BA0F7D2F638A817C6C63D3D0B0C /* Zip.h */; settings = {ATTRIBUTES = (Public, ); }; }; 343E8DC2493E915EF0FD322663090C8F /* TUIMessageItem.m in Sources */ = {isa = PBXBuildFile; fileRef = 873A1564696AA6BCE99CA1ED7D5A8BE7 /* TUIMessageItem.m */; }; 343FA23B4027F43CFCFB6A981593E67C /* AliyunOSSiOS-AliyunOSSiOS_Privacy in Resources */ = {isa = PBXBuildFile; fileRef = 5D73ED9DCB04D101A1FA489C7FB2A54D /* AliyunOSSiOS-AliyunOSSiOS_Privacy */; }; - 345ED7704F6D6E5086BE7B21D58F5145 /* AgoraLyricsScore-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = 7B52BD624B9A013BD9BAC65DA60BEB35 /* AgoraLyricsScore-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 345ED7704F6D6E5086BE7B21D58F5145 /* AgoraLyricsScore-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = 5372E747772584C1D17DBA7819A6F865 /* AgoraLyricsScore-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; 34642119D7DD5B521C5F215FC9950B78 /* TUIInputController_Minimalist.h in Headers */ = {isa = PBXBuildFile; fileRef = 8C575D326DDB2A7FB218A55FC5B74E37 /* TUIInputController_Minimalist.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 3468FD7E83C0A6607F7229DBAB70A135 /* YBIBCollectionViewLayout.m in Sources */ = {isa = PBXBuildFile; fileRef = 20A60CFBEC429CE08E5B9CD466502973 /* YBIBCollectionViewLayout.m */; }; - 34822E0799338A17A5AFCBF73081E4C9 /* GPBRuntimeTypes.h in Headers */ = {isa = PBXBuildFile; fileRef = 1324A3F6F9214E457D18D6CADF834808 /* GPBRuntimeTypes.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 34AAA32786D16B879ED317280AD7C550 /* RACStream+Private.h in Headers */ = {isa = PBXBuildFile; fileRef = B5E455DE9A138D99A488F5572102CFCB /* RACStream+Private.h */; settings = {ATTRIBUTES = (Private, ); }; }; + 3468FD7E83C0A6607F7229DBAB70A135 /* YBIBCollectionViewLayout.m in Sources */ = {isa = PBXBuildFile; fileRef = 51EB6ECF9AA2E8F129D99BE57FF8DEA0 /* YBIBCollectionViewLayout.m */; }; + 34822E0799338A17A5AFCBF73081E4C9 /* GPBRuntimeTypes.h in Headers */ = {isa = PBXBuildFile; fileRef = 6111A4BED9FE9D6BCD61B8D7FAF17CA0 /* GPBRuntimeTypes.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 3483C52B530F457A8326194085A2BAAE /* QCloudHeadObjectRequest.h in Headers */ = {isa = PBXBuildFile; fileRef = F78D1CA4CC5CF7D9ED38292265B20B2B /* QCloudHeadObjectRequest.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 34AAA32786D16B879ED317280AD7C550 /* RACStream+Private.h in Headers */ = {isa = PBXBuildFile; fileRef = E2B5421620D8C1B2D573F5B4953B3072 /* RACStream+Private.h */; settings = {ATTRIBUTES = (Private, ); }; }; 34B71A9A09BE9E81CD9E37D715BB9E98 /* TUIGroupButtonCell_Minimalist.m in Sources */ = {isa = PBXBuildFile; fileRef = B9862FD66F22C24BA599EAE94D867A8A /* TUIGroupButtonCell_Minimalist.m */; }; - 34F0AC42EC0E17A78D8B472363FA732D /* NSSet+RACSequenceAdditions.h in Headers */ = {isa = PBXBuildFile; fileRef = C02BE31F90C28D8BC8E0D4759ED1DE8A /* NSSet+RACSequenceAdditions.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 351DEEAFE94ADD9BC5383421BA24028E /* TUICore.h in Headers */ = {isa = PBXBuildFile; fileRef = 92080B092D611A9308583BC80776AFD4 /* TUICore.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 352E63E404CED072E7F714C52FF93E49 /* mz_compat.c in Sources */ = {isa = PBXBuildFile; fileRef = F75646AC5A9BF6AC37CFB3EF8368C481 /* mz_compat.c */; }; + 34F0AC42EC0E17A78D8B472363FA732D /* NSSet+RACSequenceAdditions.h in Headers */ = {isa = PBXBuildFile; fileRef = CA0BED4EE8560104777515C15B1B17AD /* NSSet+RACSequenceAdditions.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 352E63E404CED072E7F714C52FF93E49 /* mz_compat.c in Sources */ = {isa = PBXBuildFile; fileRef = 1A9DA6C06786C42A34745E252318F852 /* mz_compat.c */; }; + 35495E4162F16743E4C9794AB114B8A8 /* SDAnimatedImageView+WebCache.m in Sources */ = {isa = PBXBuildFile; fileRef = 1E061233B1799471B81C71C2DABD1D6A /* SDAnimatedImageView+WebCache.m */; }; 3568566DE8C6E5F440886B60548D8ED1 /* TUIMessageProgressManager.h in Headers */ = {isa = PBXBuildFile; fileRef = A65023E4C16DC6F042A72C8068D3FD39 /* TUIMessageProgressManager.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 358023298F603969AEE40A31B9243389 /* QGVAPMaskInfo.h in Headers */ = {isa = PBXBuildFile; fileRef = 3D62E51C28A76B206927E5029080D8C4 /* QGVAPMaskInfo.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 35A4FE7088F7CA4B023B38FFDB6AE68A /* YYTextContainerView.h in Headers */ = {isa = PBXBuildFile; fileRef = 9DD029ACDF013F34226A2C42AC5E85E0 /* YYTextContainerView.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 35ABE1610265CB89756159EDFF7C77A3 /* LLRulerComponent.h in Headers */ = {isa = PBXBuildFile; fileRef = 2D6A96693141627C8469538ADC1E3C39 /* LLRulerComponent.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 35C4DA2C65C1035F710F437EC9602294 /* SVGAVideoEntity.m in Sources */ = {isa = PBXBuildFile; fileRef = 6BC202EE3655B3A683E1A704462493FA /* SVGAVideoEntity.m */; }; - 35F8F16617EA4D58688C0633DF1ED887 /* UISwitch+RACSignalSupport.m in Sources */ = {isa = PBXBuildFile; fileRef = A9C2940910F9BD87850FF4E0B79BFD06 /* UISwitch+RACSignalSupport.m */; }; - 360D939A32BF407694834CC4BCD6B1F0 /* LLScreenshotDefine.h in Headers */ = {isa = PBXBuildFile; fileRef = 1556CE6009342518C88400576F155A9E /* LLScreenshotDefine.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 361EF1B39584BC7FCB56BF035EFAB3D4 /* LLMagnifierComponent.h in Headers */ = {isa = PBXBuildFile; fileRef = CCF6097BE8F93EE153EB8CC734BE0E3B /* LLMagnifierComponent.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 362F5B93AA29BEAFAFA13E70392AEA53 /* LLTitleSwitchCell.h in Headers */ = {isa = PBXBuildFile; fileRef = BFF7E296BB19087FEE8CF9E7BE196285 /* LLTitleSwitchCell.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 3640A2A4F954D481ABD8900FDE25B1E6 /* animi.h in Headers */ = {isa = PBXBuildFile; fileRef = 6011940F094EBFF0D2FFF6A06B49CCBB /* animi.h */; settings = {ATTRIBUTES = (Project, ); }; }; - 3650C86E60D03E4678315B00B3910572 /* UIImagePickerController+RACSignalSupport.h in Headers */ = {isa = PBXBuildFile; fileRef = 40B72C4126635C522B6FF11FD30432C3 /* UIImagePickerController+RACSignalSupport.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 3677B19656F201D0512673A743D00E7D /* UIImage+GIF.h in Headers */ = {isa = PBXBuildFile; fileRef = 3E5EFA07237AA26A316503568F4C829A /* UIImage+GIF.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 3683A04365A59519AAB2F47C5FA6FA3C /* mz_os_posix.c in Sources */ = {isa = PBXBuildFile; fileRef = 76A0029CABE4A428453EE2F68F334E20 /* mz_os_posix.c */; }; - 3683E0632283EDB6B8B0F3E2506704E4 /* YBIBToastView.h in Headers */ = {isa = PBXBuildFile; fileRef = 5FB8BC623C6D9DD9C68B774ACCADC0E9 /* YBIBToastView.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 358023298F603969AEE40A31B9243389 /* QGVAPMaskInfo.h in Headers */ = {isa = PBXBuildFile; fileRef = FFEE3F861C1FD26E95F4FB2D306BB733 /* QGVAPMaskInfo.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 35A4FE7088F7CA4B023B38FFDB6AE68A /* YYTextContainerView.h in Headers */ = {isa = PBXBuildFile; fileRef = B420B532516143FB623C377EE29C5A9F /* YYTextContainerView.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 35ABE1610265CB89756159EDFF7C77A3 /* LLRulerComponent.h in Headers */ = {isa = PBXBuildFile; fileRef = 771E3184D99EB64F4B54612437318B74 /* LLRulerComponent.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 35C4DA2C65C1035F710F437EC9602294 /* SVGAVideoEntity.m in Sources */ = {isa = PBXBuildFile; fileRef = 017BAAACDD053594300C54CF77519A48 /* SVGAVideoEntity.m */; }; + 35F8F16617EA4D58688C0633DF1ED887 /* UISwitch+RACSignalSupport.m in Sources */ = {isa = PBXBuildFile; fileRef = 6617ABA08A42582D96197306CB572A92 /* UISwitch+RACSignalSupport.m */; }; + 360D939A32BF407694834CC4BCD6B1F0 /* LLScreenshotDefine.h in Headers */ = {isa = PBXBuildFile; fileRef = A222B75963C60FEC3AF799F8D98BD2D9 /* LLScreenshotDefine.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 361EF1B39584BC7FCB56BF035EFAB3D4 /* LLMagnifierComponent.h in Headers */ = {isa = PBXBuildFile; fileRef = CE53C7588B42781E5A62E85D6BC5824B /* LLMagnifierComponent.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 362F5B93AA29BEAFAFA13E70392AEA53 /* LLTitleSwitchCell.h in Headers */ = {isa = PBXBuildFile; fileRef = 6382036A2DE542F37244F9B2ED5EA292 /* LLTitleSwitchCell.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 3650C86E60D03E4678315B00B3910572 /* UIImagePickerController+RACSignalSupport.h in Headers */ = {isa = PBXBuildFile; fileRef = 9DCCD661606026D325AC54FE741A7283 /* UIImagePickerController+RACSignalSupport.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 3683A04365A59519AAB2F47C5FA6FA3C /* mz_os_posix.c in Sources */ = {isa = PBXBuildFile; fileRef = B032C540A8349640C0FDFBDCB6723F98 /* mz_os_posix.c */; }; + 3683E0632283EDB6B8B0F3E2506704E4 /* YBIBToastView.h in Headers */ = {isa = PBXBuildFile; fileRef = D2760843D551D0BD6CB6EE2A8F604376 /* YBIBToastView.h */; settings = {ATTRIBUTES = (Public, ); }; }; 36973DD85DECAA6854996AB02A3F1BE1 /* TUIGroupConfig.h in Headers */ = {isa = PBXBuildFile; fileRef = 2427B1D549F423C7E2C4144B1118E36B /* TUIGroupConfig.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 36B5D70928AB8469D51D3BE6CC69E727 /* CoreFoundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = BDCD3DDCE37ACFD1BDD612F5969870AA /* CoreFoundation.framework */; }; - 36E37CF49AC372398BA00E0D8C83B7CC /* TZImagePickerController.h in Headers */ = {isa = PBXBuildFile; fileRef = A75B31477B530C0EC92AA906C2B88C48 /* TZImagePickerController.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 371656F6B8BEECEB9ECAF75FFEB35890 /* LLSubTitleTableViewCell.h in Headers */ = {isa = PBXBuildFile; fileRef = 9EC0A88C1DAF1CB7ABD533D9188BCF4E /* LLSubTitleTableViewCell.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 371CB877060C909579153AA2635840BD /* yuv_mips32.c in Sources */ = {isa = PBXBuildFile; fileRef = 7DFA74EEE358019BD8749611761E516E /* yuv_mips32.c */; settings = {COMPILER_FLAGS = "-D_THREAD_SAFE -fno-objc-arc"; }; }; - 372DD39999CDE7378F1DFFA9587FDE75 /* NSObject+YYAddForARC.m in Sources */ = {isa = PBXBuildFile; fileRef = 4D3B32E71A69DB1CC3A8D3B0D7539B94 /* NSObject+YYAddForARC.m */; settings = {COMPILER_FLAGS = "-fno-objc-arc"; }; }; - 374FECA22750A2F7F17CA125C25DB352 /* mz_compat.h in Headers */ = {isa = PBXBuildFile; fileRef = 048C1B18194E62C7C04606BAAFA7B8CE /* mz_compat.h */; settings = {ATTRIBUTES = (Project, ); }; }; - 37619FE2ABF062BDB1E38AD5A6961129 /* MQTTSSLSecurityPolicyEncoder.m in Sources */ = {isa = PBXBuildFile; fileRef = 56E6F6060749C45CD2589FFFAB8052C3 /* MQTTSSLSecurityPolicyEncoder.m */; }; - 37698E9A490474D1F5ED3A46A4D27F9D /* SDImageLoader.m in Sources */ = {isa = PBXBuildFile; fileRef = E6202558041A58CC7B9AFD2C0265C2EB /* SDImageLoader.m */; }; - 378A30C9D95764929720BD11259BD5B9 /* Zip-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = 2B5645CF65E01A88B0BE454C8273D724 /* Zip-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 37B653B4BAD4D59588EDA3D872FBCEFC /* SDImageLoadersManager.m in Sources */ = {isa = PBXBuildFile; fileRef = 07E5424BE62D963DBEBB638AEAB4F0BE /* SDImageLoadersManager.m */; }; - 37B890ABDC7DD441E6AA662325D412E6 /* MASConstraint.h in Headers */ = {isa = PBXBuildFile; fileRef = 52F6080476321C49D1FAEF0A94C5679B /* MASConstraint.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 37C07E47C935F4DB8770CCA3AE8C4157 /* MQTTDecoder.h in Headers */ = {isa = PBXBuildFile; fileRef = 0CD165943BD615CF7BBF796D3A9A40C1 /* MQTTDecoder.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 37D637B577E1AEE9A86932C97CE11F7E /* YBIBAnimatedTransition.h in Headers */ = {isa = PBXBuildFile; fileRef = FBA1D9AEC1D9116B235CC76CF5B856BD /* YBIBAnimatedTransition.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 37DF27F7544A7450736F02492C9337DA /* PrivacyInfo.xcprivacy in Resources */ = {isa = PBXBuildFile; fileRef = 6385E47C78E7A354F67C3140F9399359 /* PrivacyInfo.xcprivacy */; }; - 37FBCB28E91059D0A633D1ABFE4803BC /* YYCache-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = 6F098AF9A6E0719FEF3401CE55DCCC48 /* YYCache-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 38007D8B2D7B055D75C486183F0EADF3 /* RACScopedDisposable.m in Sources */ = {isa = PBXBuildFile; fileRef = 5AFB313B43FA2AD26597FD28A7B02161 /* RACScopedDisposable.m */; }; + 3699DFBC140CAAC821CAFE5A8345646E /* QCloudUploadPartRequest.h in Headers */ = {isa = PBXBuildFile; fileRef = A30BE8E0405F71F65B389795E68A00B1 /* QCloudUploadPartRequest.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 36B1C34DE39F5A7C356552FF38B65528 /* QCloudDomain.m in Sources */ = {isa = PBXBuildFile; fileRef = 5DA7FB4A463B745AEEE150F7D5826337 /* QCloudDomain.m */; }; + 36E37CF49AC372398BA00E0D8C83B7CC /* TZImagePickerController.h in Headers */ = {isa = PBXBuildFile; fileRef = 579AC723AA8FCDB6AA00696A86318F7B /* TZImagePickerController.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 371656F6B8BEECEB9ECAF75FFEB35890 /* LLSubTitleTableViewCell.h in Headers */ = {isa = PBXBuildFile; fileRef = 48813970F298EDD5DFAA1DBC2D8CF097 /* LLSubTitleTableViewCell.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 372DD39999CDE7378F1DFFA9587FDE75 /* NSObject+YYAddForARC.m in Sources */ = {isa = PBXBuildFile; fileRef = 2BB75F158D508B9FF0D11CD62578EA76 /* NSObject+YYAddForARC.m */; settings = {COMPILER_FLAGS = "-fno-objc-arc"; }; }; + 37406209761E5D4526E6F5815501ECC8 /* ioapi.c in Sources */ = {isa = PBXBuildFile; fileRef = 4258F21AB9C6E0D317E647FAAF476C5E /* ioapi.c */; }; + 3747AEAFBCF57E0A97A910B9F1F9D331 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = F91075A92425F75F02E0E1C8D455AF79 /* Foundation.framework */; }; + 374FECA22750A2F7F17CA125C25DB352 /* mz_compat.h in Headers */ = {isa = PBXBuildFile; fileRef = 7E9F1FF9DD117F796BE188AD8D9701A9 /* mz_compat.h */; settings = {ATTRIBUTES = (Project, ); }; }; + 37619FE2ABF062BDB1E38AD5A6961129 /* MQTTSSLSecurityPolicyEncoder.m in Sources */ = {isa = PBXBuildFile; fileRef = 36333F4F2E36DBF4FA871A8584CA3DF0 /* MQTTSSLSecurityPolicyEncoder.m */; }; + 37B890ABDC7DD441E6AA662325D412E6 /* MASConstraint.h in Headers */ = {isa = PBXBuildFile; fileRef = 45064926640EDB7B2361D4ABB46D48BD /* MASConstraint.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 37C07E47C935F4DB8770CCA3AE8C4157 /* MQTTDecoder.h in Headers */ = {isa = PBXBuildFile; fileRef = 954A29B28B94DAB35DBB9DCA2DA8D1FB /* MQTTDecoder.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 37D637B577E1AEE9A86932C97CE11F7E /* YBIBAnimatedTransition.h in Headers */ = {isa = PBXBuildFile; fileRef = CD4C7F5C127CA356817BDE1ACCB4CEBE /* YBIBAnimatedTransition.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 37FBCB28E91059D0A633D1ABFE4803BC /* YYCache-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A321FB4DB148B7F4B3C8519D7AAED1E /* YYCache-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 38007D8B2D7B055D75C486183F0EADF3 /* RACScopedDisposable.m in Sources */ = {isa = PBXBuildFile; fileRef = 2469A2DB072E0F4497D41355086248DA /* RACScopedDisposable.m */; }; 3827DB35C9604BF65BA0832035EED793 /* TUISystemMessageCell.h in Headers */ = {isa = PBXBuildFile; fileRef = FD7C328B4F956180720C8F48E4163F5A /* TUISystemMessageCell.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 3834F6B013F16886BE2866A29E65F22C /* YBIBSentinel.h in Headers */ = {isa = PBXBuildFile; fileRef = B76A88E31B455C6DD5C9FCDE72B9F4BE /* YBIBSentinel.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 3874F4CA60580D566C00579B8DED1552 /* PrivacyInfo.xcprivacy in Resources */ = {isa = PBXBuildFile; fileRef = B45A776FEF6D64E82676097687E6E29F /* PrivacyInfo.xcprivacy */; }; - 388BB4079F7D18CB3D7AF0848BC98F08 /* UIView+SDExtension.m in Sources */ = {isa = PBXBuildFile; fileRef = 1B403AFD3386756786B7F92B5A1D84B3 /* UIView+SDExtension.m */; }; - 38AE26BF6C0F4A9E8B69D9947B8ECE12 /* LLLogDetailViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 102552B7677D63C293FF23EA6E3ABCFD /* LLLogDetailViewController.m */; }; - 38B430C930E27BBA032CC4F06AF995E2 /* LLDebugTool.h in Headers */ = {isa = PBXBuildFile; fileRef = 6838D5A055DD9D599B8461FBFA6043F4 /* LLDebugTool.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 38C88847A1FA0750979B7E3C0214ED96 /* LLEnumDescription.h in Headers */ = {isa = PBXBuildFile; fileRef = BDA3927983699496B7D9033CA74611CC /* LLEnumDescription.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 3905C185D90999E707BDFC497ABFF6BC /* SDDeviceHelper.m in Sources */ = {isa = PBXBuildFile; fileRef = CAE3CED5E389DC50AEBBB1CC20C5CE22 /* SDDeviceHelper.m */; }; - 392AEDD2622BADB7A7B1729D4282B4A6 /* GPBWireFormat.h in Headers */ = {isa = PBXBuildFile; fileRef = C63FBC083681F24635FFABAE8D35CF63 /* GPBWireFormat.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 392E6367FB1A10EEA969ED00E460E4DD /* NSFileHandle+RACSupport.h in Headers */ = {isa = PBXBuildFile; fileRef = 67A6099318A28F87F5D01781C55227B1 /* NSFileHandle+RACSupport.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 3935713D38F93BBFDEF445191E42EBB4 /* SDAssociatedObject.m in Sources */ = {isa = PBXBuildFile; fileRef = B8CF257FCD97F54FEC8ADBEE98239478 /* SDAssociatedObject.m */; }; - 393E4BA6883E05A6A06F90705AD23BF6 /* QGHWDMetalRenderer.h in Headers */ = {isa = PBXBuildFile; fileRef = 3C65CA4EC7D80D3DDE1755B99EA29555 /* QGHWDMetalRenderer.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 397F166FCB84F8BD4E7407C30D5E6898 /* UIColor+SDHexString.h in Headers */ = {isa = PBXBuildFile; fileRef = D471A934451267DFEDEC0E9458C1B905 /* UIColor+SDHexString.h */; settings = {ATTRIBUTES = (Private, ); }; }; - 398EF531E96793D97C1E5524C2975AF8 /* LLLogWindow.m in Sources */ = {isa = PBXBuildFile; fileRef = 1F45A768F6ABE10A865ADEE0772C06C4 /* LLLogWindow.m */; }; - 39AB8508E90D417A6888AEC9263B0071 /* LLEntryBigTitleView.h in Headers */ = {isa = PBXBuildFile; fileRef = DE8DC774EDAC9D94143D31BC9789B9A9 /* LLEntryBigTitleView.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 39B977488B0EE1A480B7C27176889675 /* LLAnnotation.m in Sources */ = {isa = PBXBuildFile; fileRef = A55A010C06799C1DE66455D5F2525664 /* LLAnnotation.m */; }; + 3829375B943E8BBBB5D5372DFF8E8D83 /* UIView+WebCache.h in Headers */ = {isa = PBXBuildFile; fileRef = 5CF4D2FE91FD3D313739E44B80DDA00A /* UIView+WebCache.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 3834F6B013F16886BE2866A29E65F22C /* YBIBSentinel.h in Headers */ = {isa = PBXBuildFile; fileRef = 6336BA27A0A65F973C5488887D567474 /* YBIBSentinel.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 38896C7BF06A4ABFAFC6A61ABB916433 /* QCloudConfiguration.h in Headers */ = {isa = PBXBuildFile; fileRef = 796C040FFBED8EDA555E335E388F7C12 /* QCloudConfiguration.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 388BB4079F7D18CB3D7AF0848BC98F08 /* UIView+SDExtension.m in Sources */ = {isa = PBXBuildFile; fileRef = 16A953B1489D93A6CAB58DF3660E50FC /* UIView+SDExtension.m */; }; + 38AE26BF6C0F4A9E8B69D9947B8ECE12 /* LLLogDetailViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 0A6F4495DD097887BC5B36C1CE31C94C /* LLLogDetailViewController.m */; }; + 38B430C930E27BBA032CC4F06AF995E2 /* LLDebugTool.h in Headers */ = {isa = PBXBuildFile; fileRef = 1C6CB13EC3CBC674CF960DABFF97B5E0 /* LLDebugTool.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 38C88847A1FA0750979B7E3C0214ED96 /* LLEnumDescription.h in Headers */ = {isa = PBXBuildFile; fileRef = 51166D92E11078C50AE52E881DB09BE0 /* LLEnumDescription.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 3908B5511F772908C860F6C5DF670946 /* lossless_enc_mips_dsp_r2.c in Sources */ = {isa = PBXBuildFile; fileRef = 36C58901FA133D1BB74984D16582B20A /* lossless_enc_mips_dsp_r2.c */; settings = {COMPILER_FLAGS = "-D_THREAD_SAFE -fno-objc-arc"; }; }; + 392AEDD2622BADB7A7B1729D4282B4A6 /* GPBWireFormat.h in Headers */ = {isa = PBXBuildFile; fileRef = 32978C299B2134D5886AD072C2ED827C /* GPBWireFormat.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 392E6367FB1A10EEA969ED00E460E4DD /* NSFileHandle+RACSupport.h in Headers */ = {isa = PBXBuildFile; fileRef = 29A7A5F23205732BB4A1F528C9D20946 /* NSFileHandle+RACSupport.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 3932941B7E0E393205EE07EC3D10A258 /* OfflinePushExtConfigInfo.m in Sources */ = {isa = PBXBuildFile; fileRef = C8F97B02F5B488511B0CE5FA4CFE7F1A /* OfflinePushExtConfigInfo.m */; }; + 393E4BA6883E05A6A06F90705AD23BF6 /* QGHWDMetalRenderer.h in Headers */ = {isa = PBXBuildFile; fileRef = E8F31B119AB11AA2DC40EBEA5F9DB70F /* QGHWDMetalRenderer.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 39471F0AFD5C6D374C306AF92B64B1C5 /* SDWebImageOperation.h in Headers */ = {isa = PBXBuildFile; fileRef = 6F7EE4FA982C7FB8A72E152F7448932D /* SDWebImageOperation.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 398EF531E96793D97C1E5524C2975AF8 /* LLLogWindow.m in Sources */ = {isa = PBXBuildFile; fileRef = EF5F21B0EC41988D0A2186EFD3843326 /* LLLogWindow.m */; }; + 39AB8508E90D417A6888AEC9263B0071 /* LLEntryBigTitleView.h in Headers */ = {isa = PBXBuildFile; fileRef = 5948B77899519A175746DD0C6176B637 /* LLEntryBigTitleView.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 39B977488B0EE1A480B7C27176889675 /* LLAnnotation.m in Sources */ = {isa = PBXBuildFile; fileRef = 22F209DCFDF06D6D004B17D4A4614726 /* LLAnnotation.m */; }; 39CA9224F01E3998D4B216D1CBD7AA9C /* TUILocalTipsCellData.m in Sources */ = {isa = PBXBuildFile; fileRef = 3C28B8D5E3DF6250210567B58082DFBA /* TUILocalTipsCellData.m */; }; + 39EC1C028111A45D156D0CF831CE54DA /* quant_enc.c in Sources */ = {isa = PBXBuildFile; fileRef = F0DBC4CCC06B3923039F6C794F6CF1A6 /* quant_enc.c */; settings = {COMPILER_FLAGS = "-D_THREAD_SAFE -fno-objc-arc"; }; }; 3A068A7AF51A9360663A5D7A0BDAE77A /* TUIVideoMessageCell.m in Sources */ = {isa = PBXBuildFile; fileRef = 51E4FF8465B27405FC87C412997283D0 /* TUIVideoMessageCell.m */; }; - 3A2FCB914F6EADED828FF05F7E9132AE /* UIView+MJExtension.h in Headers */ = {isa = PBXBuildFile; fileRef = 57012ECE5EDE9E2CB2EC2D4102834902 /* UIView+MJExtension.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 3A479E97823142AC3F49E005986B96CC /* UIPasteboard+YYText.m in Sources */ = {isa = PBXBuildFile; fileRef = 9671234B95976CC18EFB70FA2EA4B915 /* UIPasteboard+YYText.m */; }; - 3A7DAB61445DE650AB6812C5DD7803D4 /* SDImageIOCoder.m in Sources */ = {isa = PBXBuildFile; fileRef = 687C34AE0B14C1228C5F3410106D95B3 /* SDImageIOCoder.m */; }; - 3A84CAB02C2188C16B1254A654B61A49 /* QGVAPlayer-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = B2150F20FE1199A937735BBA31A90470 /* QGVAPlayer-dummy.m */; }; - 3A8A4BEE0175E8579B30CEDCF194BCEE /* LLEntryView.m in Sources */ = {isa = PBXBuildFile; fileRef = A52CCAB689ADC905DACC0724B977C78B /* LLEntryView.m */; }; - 3ACA20A727BFA6F7488352777B6D0015 /* SDWebImageOptionsProcessor.m in Sources */ = {isa = PBXBuildFile; fileRef = 0493754B105B7C0910C6CA206DAAF387 /* SDWebImageOptionsProcessor.m */; }; - 3AD69B6D1E2BBC4BDFF94ABF8E4D573B /* YYTextLine.m in Sources */ = {isa = PBXBuildFile; fileRef = F0C9267BF045030E45DFA2A950EE55AC /* YYTextLine.m */; }; - 3AEA9965C260CF8AC87E1EB56F50A851 /* SourceContext.pbobjc.h in Headers */ = {isa = PBXBuildFile; fileRef = 78ED6BA2D05CA733DCFF4F9FD00420B9 /* SourceContext.pbobjc.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 3AF01E9F246117B6C7FB0204D4B972D8 /* SDGraphicsImageRenderer.h in Headers */ = {isa = PBXBuildFile; fileRef = 59F5F2FAE3795F71FA5EFFC57C0D422C /* SDGraphicsImageRenderer.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 3B176EA98ACF14D2CB4A76A1D0EFB65E /* UIImage+YYAdd.m in Sources */ = {isa = PBXBuildFile; fileRef = 283BA9DC4F8B80C258BC6CD004061AE6 /* UIImage+YYAdd.m */; }; - 3B35B88EE7E45F3FFEA4473C514B304C /* OSSNSLogger.h in Headers */ = {isa = PBXBuildFile; fileRef = 29687F0269C0A04397B98DF48D994583 /* OSSNSLogger.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 3B62431BEF820E7FC779F344AB2A1D17 /* JXCategoryIndicatorLineView.m in Sources */ = {isa = PBXBuildFile; fileRef = 17069CF4EF1C5A1762BB7B0F6C0A356B /* JXCategoryIndicatorLineView.m */; }; + 3A2FCB914F6EADED828FF05F7E9132AE /* UIView+MJExtension.h in Headers */ = {isa = PBXBuildFile; fileRef = CD1F7F8BBC69402151D983080FEA8471 /* UIView+MJExtension.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 3A479E97823142AC3F49E005986B96CC /* UIPasteboard+YYText.m in Sources */ = {isa = PBXBuildFile; fileRef = B85B877F076DC7FFAD6874AFA8E3EE86 /* UIPasteboard+YYText.m */; }; + 3A4858E0EFCB7326984D3C03F9672C6F /* cpu.c in Sources */ = {isa = PBXBuildFile; fileRef = BD39EE693FDD1016482B2126132727D6 /* cpu.c */; settings = {COMPILER_FLAGS = "-D_THREAD_SAFE -fno-objc-arc"; }; }; + 3A84CAB02C2188C16B1254A654B61A49 /* QGVAPlayer-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 745A9A4493F6C8C67ECBA6EBE734E857 /* QGVAPlayer-dummy.m */; }; + 3A8A4BEE0175E8579B30CEDCF194BCEE /* LLEntryView.m in Sources */ = {isa = PBXBuildFile; fileRef = 147B4F4D17B7C95671DEA10F9578A4D8 /* LLEntryView.m */; }; + 3AD69B6D1E2BBC4BDFF94ABF8E4D573B /* YYTextLine.m in Sources */ = {isa = PBXBuildFile; fileRef = 523A1B94681A2291B4E3E6F8CBE45846 /* YYTextLine.m */; }; + 3AEA9965C260CF8AC87E1EB56F50A851 /* SourceContext.pbobjc.h in Headers */ = {isa = PBXBuildFile; fileRef = 1FDCEE6B910DFAC0E9C772B99EE56625 /* SourceContext.pbobjc.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 3B0DC0BBB774A59EFA5DAEDDE4E11B4E /* QCloudCOSXMLService+Configuration.h in Headers */ = {isa = PBXBuildFile; fileRef = 5877861C915E71930D402C2BAFC9551A /* QCloudCOSXMLService+Configuration.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 3B15865BE6E463978317B5AB00580FEE /* QCloudURLSessionTaskData.h in Headers */ = {isa = PBXBuildFile; fileRef = 47F8B1EA9FDC198744CA6B5DBE1EB460 /* QCloudURLSessionTaskData.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 3B176EA98ACF14D2CB4A76A1D0EFB65E /* UIImage+YYAdd.m in Sources */ = {isa = PBXBuildFile; fileRef = 9B28C48857CDE0E27AD1F24A76385EB9 /* UIImage+YYAdd.m */; }; + 3B35B88EE7E45F3FFEA4473C514B304C /* OSSNSLogger.h in Headers */ = {isa = PBXBuildFile; fileRef = 199E167D37F89FBAB58B59277B052F6E /* OSSNSLogger.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 3B62431BEF820E7FC779F344AB2A1D17 /* JXCategoryIndicatorLineView.m in Sources */ = {isa = PBXBuildFile; fileRef = 133CE6640C5C7DFB943F938227BC2556 /* JXCategoryIndicatorLineView.m */; }; 3B76E721F8F5714AED5CF446F430E3BA /* TUIGroupNoticeController.m in Sources */ = {isa = PBXBuildFile; fileRef = C7C8D04857A062BBA96720BAFE1EB832 /* TUIGroupNoticeController.m */; }; - 3B8EDFF69A68ABD3735E0C6931CA5C95 /* AFURLSessionManager.h in Headers */ = {isa = PBXBuildFile; fileRef = 880DCA1E2F177241D82DC8ECDE4CAF3F /* AFURLSessionManager.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 3B959E6505C82CA0FF804E07CA51492A /* NSEnumerator+RACSequenceAdditions.h in Headers */ = {isa = PBXBuildFile; fileRef = F7D1A9C4926FD986129B7C792ED74F62 /* NSEnumerator+RACSequenceAdditions.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 3BD54D1AE900D867D6B1CFFA9A303B78 /* BRTextModel.h in Headers */ = {isa = PBXBuildFile; fileRef = 7F090161AC4F475F49518CF68DFC309C /* BRTextModel.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 3BD61412906318A0820CDB055AC13C50 /* LLJsonTool.h in Headers */ = {isa = PBXBuildFile; fileRef = AB5352DBC178D6FB014D44D10371147C /* LLJsonTool.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 3BE54CDC544FD95595EAF4094BD96193 /* LLFilterTextFieldCell.h in Headers */ = {isa = PBXBuildFile; fileRef = 1ABB117959382F8EF646811ABA4EE0E6 /* LLFilterTextFieldCell.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 3BFA92648AC1313CFD040750ACE5D0C1 /* RACSequence.m in Sources */ = {isa = PBXBuildFile; fileRef = 866B82E07C82BBB6BC96C9CA6FDE32F6 /* RACSequence.m */; }; - 3C2BA9EE17F04C66900011B907E2FFBB /* MQTTTransport.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B87EE478A2CDC2B5235E40FD354D5E3 /* MQTTTransport.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 3C2E1F3AF1E008F5610EDBB2258CA617 /* RACSignal+Operations.m in Sources */ = {isa = PBXBuildFile; fileRef = 9989F82CA2DC6F39435D478FCDEFA2B3 /* RACSignal+Operations.m */; }; + 3B8EDFF69A68ABD3735E0C6931CA5C95 /* AFURLSessionManager.h in Headers */ = {isa = PBXBuildFile; fileRef = DC59393E8A79060D096924489FACD258 /* AFURLSessionManager.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 3B959E6505C82CA0FF804E07CA51492A /* NSEnumerator+RACSequenceAdditions.h in Headers */ = {isa = PBXBuildFile; fileRef = CF94AD26C9835BA712DC1A55C08DAEF4 /* NSEnumerator+RACSequenceAdditions.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 3BA7483F7C2CAB47952BF5E4BD68A2F7 /* TUICore-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = 6D24D29E7D2DC3A953C99CBAC81B6CB8 /* TUICore-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 3BC81BF18717D8F25ECD4404976EC7DE /* QCloudMultipartUploadOwner.h in Headers */ = {isa = PBXBuildFile; fileRef = E46368F03B603442284C9EEEE484B5B1 /* QCloudMultipartUploadOwner.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 3BD54D1AE900D867D6B1CFFA9A303B78 /* BRTextModel.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B6426A1A9ACD43A67415CDBD025165D /* BRTextModel.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 3BD61412906318A0820CDB055AC13C50 /* LLJsonTool.h in Headers */ = {isa = PBXBuildFile; fileRef = 177252F2A68240CE164B5848F29F2CBA /* LLJsonTool.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 3BE54CDC544FD95595EAF4094BD96193 /* LLFilterTextFieldCell.h in Headers */ = {isa = PBXBuildFile; fileRef = 1E820501571CC869D75B3B906D793C0B /* LLFilterTextFieldCell.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 3BE893FD17F3456A7AEA7DCEB655972E /* rescaler_mips32.c in Sources */ = {isa = PBXBuildFile; fileRef = 67F378B22F34B91070BE2D83C22C2953 /* rescaler_mips32.c */; settings = {COMPILER_FLAGS = "-D_THREAD_SAFE -fno-objc-arc"; }; }; + 3BFA92648AC1313CFD040750ACE5D0C1 /* RACSequence.m in Sources */ = {isa = PBXBuildFile; fileRef = 35FDBDF29A76E644B9627F0011BD8D21 /* RACSequence.m */; }; + 3C05F7E4389A81874862D5F0CEDBF9F1 /* QCloudObjectModel.h in Headers */ = {isa = PBXBuildFile; fileRef = 2A3AF1019300B26D688B8D9879B7D335 /* QCloudObjectModel.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 3C2BA9EE17F04C66900011B907E2FFBB /* MQTTTransport.h in Headers */ = {isa = PBXBuildFile; fileRef = 68138633BBF169547D6B1400361686DA /* MQTTTransport.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 3C2E1F3AF1E008F5610EDBB2258CA617 /* RACSignal+Operations.m in Sources */ = {isa = PBXBuildFile; fileRef = F04A5F532E257E759188C8E6601BE06B /* RACSignal+Operations.m */; }; 3C2F3C5BF7E2787ED8437F709772D4A9 /* TUIVoiceReplyQuoteView.h in Headers */ = {isa = PBXBuildFile; fileRef = 0E6DD3FA6D35E66AC465E974C5A2F798 /* TUIVoiceReplyQuoteView.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 3C76848E9AA1EE9FB3CA1BAD6A217790 /* RACSubscriber.h in Headers */ = {isa = PBXBuildFile; fileRef = C98D8B98E7B4DB697FA530730298BD5E /* RACSubscriber.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 3C8A254F2F68D5ABB1CCC8BA3A0E1B85 /* LLLogModel.h in Headers */ = {isa = PBXBuildFile; fileRef = 5B68201A654F737330642C2495AD1325 /* LLLogModel.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 3CE13969772F4180701A575FAB98E978 /* JXPagingView-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = 76D132A2176B2450D9F819A17F35F9E4 /* JXPagingView-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 3CFDBADDBDCC0EFB3989B3A5E5F09792 /* sharpyuv_cpu.h in Headers */ = {isa = PBXBuildFile; fileRef = DCEBD23A4F94DA88A003BC9C60D200BE /* sharpyuv_cpu.h */; settings = {ATTRIBUTES = (Project, ); }; }; - 3D07A16B97BE137C0741A9F90893D156 /* SVGAVideoSpriteFrameEntity.m in Sources */ = {isa = PBXBuildFile; fileRef = 8C55F3AB4780A7E3E86F8F8A407A5653 /* SVGAVideoSpriteFrameEntity.m */; }; + 3C40BD851654FC3410B06F3884C64CCE /* NSHTTPCookie+QCloudNetworking.m in Sources */ = {isa = PBXBuildFile; fileRef = B7431A41094D0C01BEA07A2A2C43DCE6 /* NSHTTPCookie+QCloudNetworking.m */; }; + 3C76848E9AA1EE9FB3CA1BAD6A217790 /* RACSubscriber.h in Headers */ = {isa = PBXBuildFile; fileRef = 8F35545C13BDCF4A615CCAAB5E07B891 /* RACSubscriber.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 3C8A254F2F68D5ABB1CCC8BA3A0E1B85 /* LLLogModel.h in Headers */ = {isa = PBXBuildFile; fileRef = 21EE74BC633A64457A51AA4D8437E546 /* LLLogModel.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 3CAE47C3170A956F0A625C82E7BAC5DA /* PrivacyInfo.xcprivacy in Resources */ = {isa = PBXBuildFile; fileRef = B7A86637AF0616375B4F723C21D06184 /* PrivacyInfo.xcprivacy */; }; + 3CE13969772F4180701A575FAB98E978 /* JXPagingView-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = B33BCF564E600AFBD44AE40E7E48150B /* JXPagingView-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 3D07A16B97BE137C0741A9F90893D156 /* SVGAVideoSpriteFrameEntity.m in Sources */ = {isa = PBXBuildFile; fileRef = 2B67F16A8B9E5318F935440886955A70 /* SVGAVideoSpriteFrameEntity.m */; }; + 3D2D443511029427C36EF9E477D8D76F /* yuv_mips32.c in Sources */ = {isa = PBXBuildFile; fileRef = BC35A905DD48CB76AFB0135B362F643F /* yuv_mips32.c */; settings = {COMPILER_FLAGS = "-D_THREAD_SAFE -fno-objc-arc"; }; }; + 3D6265E77CB847CEAEFDFFC230E2E589 /* SDImageHEICCoder.m in Sources */ = {isa = PBXBuildFile; fileRef = 0BEABA91D373BF2ACDEFE09097D6B745 /* SDImageHEICCoder.m */; }; 3D8FB89AA2347BE4A54FC6B34F46B501 /* TUIMergeReplyQuoteViewData.m in Sources */ = {isa = PBXBuildFile; fileRef = 7E0E8A35DB0D379281F23791C6881C2C /* TUIMergeReplyQuoteViewData.m */; }; - 3D9403E00F4F45C8B978EE79D4DAB64F /* GPBMessage.h in Headers */ = {isa = PBXBuildFile; fileRef = 48AE9D7627E24D90FE62F6F652E514DE /* GPBMessage.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 3D9E99F17F687A6BBAF6BCBC33C74213 /* YBImageBrowserDelegate.h in Headers */ = {isa = PBXBuildFile; fileRef = E07715DD868637E7632ADA8EEF3D5795 /* YBImageBrowserDelegate.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 3DABBFDABC03A66B4329A30A0C23BF44 /* IQToolbar.h in Headers */ = {isa = PBXBuildFile; fileRef = DC8DEBA0B938C2334D6AE10B56D65448 /* IQToolbar.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 3DDA9410826DE547A8E99F2BAEB1C94A /* thread_utils.c in Sources */ = {isa = PBXBuildFile; fileRef = FE97B85549C4C2DB73F62EF1E8F42AE9 /* thread_utils.c */; settings = {COMPILER_FLAGS = "-D_THREAD_SAFE -fno-objc-arc"; }; }; - 3DE0A16DECF5F1E85D8A3B6CE06CF2B4 /* MQTTStrict.h in Headers */ = {isa = PBXBuildFile; fileRef = BDDE6DDA00CA871418655CB96863F537 /* MQTTStrict.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 3E0590F3E26D459A5C5E2CF1EBD844A0 /* QGVAPMetalShaderFunctionLoader.h in Headers */ = {isa = PBXBuildFile; fileRef = 13E75550002CF24D09CCC30370A00A2F /* QGVAPMetalShaderFunctionLoader.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 3E18575D6BF160FC477A2815AE59BC38 /* LLInfoView.h in Headers */ = {isa = PBXBuildFile; fileRef = FB9D947C48D89B3FAF593D45CC2BF48B /* LLInfoView.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 3E1D9FD4E15EAD00141A7A1342A0CC10 /* RACDynamicSignal.h in Headers */ = {isa = PBXBuildFile; fileRef = EAB94DED6D97E9572836AE565AE8F8C6 /* RACDynamicSignal.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 3E3BB888333388CFE121797E3A3736B3 /* LLBaseModel.m in Sources */ = {isa = PBXBuildFile; fileRef = BA11557E5E51E567D930384B83024C1C /* LLBaseModel.m */; }; - 3E3DB961B347DC03E72B8F650E4EA9A8 /* dec_neon.c in Sources */ = {isa = PBXBuildFile; fileRef = 5853E4C7D318DEA2F3B4365F7197455B /* dec_neon.c */; settings = {COMPILER_FLAGS = "-D_THREAD_SAFE -fno-objc-arc"; }; }; - 3E467D3F19F1E544A10DC5E022FAA1D6 /* LLMagnifierView.m in Sources */ = {isa = PBXBuildFile; fileRef = 1498B5F778F353FE200AD032BF24BAB9 /* LLMagnifierView.m */; }; - 3E5170C994A46777341F08EFCD6AE083 /* LLFilterEventView.m in Sources */ = {isa = PBXBuildFile; fileRef = 3828C61E6877E0C2459AE9FB73980AB9 /* LLFilterEventView.m */; }; + 3D9403E00F4F45C8B978EE79D4DAB64F /* GPBMessage.h in Headers */ = {isa = PBXBuildFile; fileRef = 3C0CC4726723D6D3B9F07ADF69FE10CC /* GPBMessage.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 3D9E99F17F687A6BBAF6BCBC33C74213 /* YBImageBrowserDelegate.h in Headers */ = {isa = PBXBuildFile; fileRef = 65A64F7169695A769517A54CBEF11E8F /* YBImageBrowserDelegate.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 3DABBFDABC03A66B4329A30A0C23BF44 /* IQToolbar.h in Headers */ = {isa = PBXBuildFile; fileRef = FF9D7BE8F13C3313349427C6E1D14C96 /* IQToolbar.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 3DC8B48485EDE12C923A220CA38D6783 /* SDImageCoderHelper.h in Headers */ = {isa = PBXBuildFile; fileRef = D9C3738F91D2216AB5CF82365500EF2B /* SDImageCoderHelper.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 3DE0A16DECF5F1E85D8A3B6CE06CF2B4 /* MQTTStrict.h in Headers */ = {isa = PBXBuildFile; fileRef = B3640160F31D225FC53EE555B691915B /* MQTTStrict.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 3E0590F3E26D459A5C5E2CF1EBD844A0 /* QGVAPMetalShaderFunctionLoader.h in Headers */ = {isa = PBXBuildFile; fileRef = 85F1E0B017257CF852C48AECF7DF6E93 /* QGVAPMetalShaderFunctionLoader.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 3E18575D6BF160FC477A2815AE59BC38 /* LLInfoView.h in Headers */ = {isa = PBXBuildFile; fileRef = 6E9FC5BCB5B8A7E2A87726A2BEEAA102 /* LLInfoView.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 3E1D9FD4E15EAD00141A7A1342A0CC10 /* RACDynamicSignal.h in Headers */ = {isa = PBXBuildFile; fileRef = 991332021BA6EA0F0A0807C7E3ADA665 /* RACDynamicSignal.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 3E2841C054E01396AC8172C0ECF48F8E /* QCloudMultipartInfo.m in Sources */ = {isa = PBXBuildFile; fileRef = AB893C8E53EC1B80E37F0708C2FAF94A /* QCloudMultipartInfo.m */; }; + 3E34CE327F8725563DEED4BEB6D0AD12 /* SDDiskCache.h in Headers */ = {isa = PBXBuildFile; fileRef = 7F399192B4E0B59417904626FC68275B /* SDDiskCache.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 3E3BB888333388CFE121797E3A3736B3 /* LLBaseModel.m in Sources */ = {isa = PBXBuildFile; fileRef = 5087DCD7D883FD6000FC11CC75BE144F /* LLBaseModel.m */; }; + 3E467D3F19F1E544A10DC5E022FAA1D6 /* LLMagnifierView.m in Sources */ = {isa = PBXBuildFile; fileRef = 4B6880AE8BA92FD6D17A828C3E659E5E /* LLMagnifierView.m */; }; + 3E5170C994A46777341F08EFCD6AE083 /* LLFilterEventView.m in Sources */ = {isa = PBXBuildFile; fileRef = 21AC504E3B4C2B470EFC690097F306CE /* LLFilterEventView.m */; }; 3E740EE6B8F512B127ACFB7E2C0BF80F /* TUIChat_Minimalist.bundle in Resources */ = {isa = PBXBuildFile; fileRef = D2F0CED0BD6588FF1177DA192DD47436 /* TUIChat_Minimalist.bundle */; }; - 3E9B7829091DB08299A28473E42AAC60 /* YBIBImageLayout.h in Headers */ = {isa = PBXBuildFile; fileRef = 3088EC7C57E1D1C446F9438801DBBD79 /* YBIBImageLayout.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 3E9EDD43AA102077554C885812DB126D /* LyricCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = E67BB8DDE723F1C65F52E293178094CE /* LyricCell.swift */; }; - 3ED71F04B0843B932E0B8B4FB45DDF2E /* LLAppInfoHelper.m in Sources */ = {isa = PBXBuildFile; fileRef = 7EFF9BB7077C826E11E7816EB23FDB40 /* LLAppInfoHelper.m */; }; - 3EF49628D627CAA9EB32D93514DBB988 /* LLShortCutComponent.m in Sources */ = {isa = PBXBuildFile; fileRef = A39A8A54ACDD282E45350F5819AF26CA /* LLShortCutComponent.m */; }; - 3F22234752ABAB08438999DF33A5C016 /* LLNetworkDetailViewController.h in Headers */ = {isa = PBXBuildFile; fileRef = A36328E824823110688B0E258456BBC6 /* LLNetworkDetailViewController.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 3F36A6B93B07560980D35ED158991969 /* MQTTDecoder.m in Sources */ = {isa = PBXBuildFile; fileRef = D0BD09083F508CA50BA0A33856D212BB /* MQTTDecoder.m */; }; - 3F49113833DA93F31163179E95D2DAC6 /* NSObject+YYAddForKVO.m in Sources */ = {isa = PBXBuildFile; fileRef = 1B983014BE906CBD7A984B45476F4FC8 /* NSObject+YYAddForKVO.m */; }; - 3F6AE60F5078CB1C0F9A7E6E9CCA993C /* NSData+ImageContentType.m in Sources */ = {isa = PBXBuildFile; fileRef = A04D1E2D5C9D88AE64149598D9C7E62D /* NSData+ImageContentType.m */; }; + 3E9B7829091DB08299A28473E42AAC60 /* YBIBImageLayout.h in Headers */ = {isa = PBXBuildFile; fileRef = E39BBC08241C89A07EFF4D3DE68190A3 /* YBIBImageLayout.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 3E9EDD43AA102077554C885812DB126D /* LyricCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 475A73ACB9133C7BF300F5488F21228E /* LyricCell.swift */; }; + 3ED71F04B0843B932E0B8B4FB45DDF2E /* LLAppInfoHelper.m in Sources */ = {isa = PBXBuildFile; fileRef = BC1678DFFE2FD0D0919967D248C3C496 /* LLAppInfoHelper.m */; }; + 3EF49628D627CAA9EB32D93514DBB988 /* LLShortCutComponent.m in Sources */ = {isa = PBXBuildFile; fileRef = E0157C3B1258A7010A0AD99F52D0B599 /* LLShortCutComponent.m */; }; + 3EF8062F5032F38E39BF9663AF5C08C8 /* enc_msa.c in Sources */ = {isa = PBXBuildFile; fileRef = 609C34D2447174114C2B15A677403B61 /* enc_msa.c */; settings = {COMPILER_FLAGS = "-D_THREAD_SAFE -fno-objc-arc"; }; }; + 3F22234752ABAB08438999DF33A5C016 /* LLNetworkDetailViewController.h in Headers */ = {isa = PBXBuildFile; fileRef = D6FAD67ED2AC36777D1F37562B2CA887 /* LLNetworkDetailViewController.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 3F26AB74F27C242AE5D6481E8E8E2611 /* QCloudXMLWriter.m in Sources */ = {isa = PBXBuildFile; fileRef = 5DA566BA305FC8AC53CCD33A2CFEFDD5 /* QCloudXMLWriter.m */; }; + 3F36A6B93B07560980D35ED158991969 /* MQTTDecoder.m in Sources */ = {isa = PBXBuildFile; fileRef = FD150508BF6A78C9887FD0A7DE309309 /* MQTTDecoder.m */; }; + 3F49113833DA93F31163179E95D2DAC6 /* NSObject+YYAddForKVO.m in Sources */ = {isa = PBXBuildFile; fileRef = C40B79EAAA6B3CC6CF1E78FFA5D2A559 /* NSObject+YYAddForKVO.m */; }; 3F9BACC4CD008CFAD1BF7F8A2518DBFC /* TUIChatSmallTongueView_Minimalist.m in Sources */ = {isa = PBXBuildFile; fileRef = 4B492734916E97A6ABCA25BBFCCC1803 /* TUIChatSmallTongueView_Minimalist.m */; }; - 3F9C3275F786E754C812482941E96F4A /* RACEXTRuntimeExtensions.h in Headers */ = {isa = PBXBuildFile; fileRef = A885D25D9BB36D8AA7AA3B478EC889DA /* RACEXTRuntimeExtensions.h */; settings = {ATTRIBUTES = (Private, ); }; }; - 3F9EB70845C07E9C4EC09988AB7763FE /* BRAddressPickerView.bundle in Resources */ = {isa = PBXBuildFile; fileRef = 2698E77D6C0E185839BCB7FFDC1A9658 /* BRAddressPickerView.bundle */; }; - 3FDD85AA92703FBD5CEC9754D55AD571 /* BRPickerAlertView.m in Sources */ = {isa = PBXBuildFile; fileRef = C51F8AD762E49E1A111C44C545B2B4A2 /* BRPickerAlertView.m */; }; - 3FE11C3DF2FAC8F25A8B8EE8AA90993A /* LLFilterTextFieldCell.m in Sources */ = {isa = PBXBuildFile; fileRef = A42838A9BEDA6FBBBB4626600DE52FCC /* LLFilterTextFieldCell.m */; }; - 3FE5005F9237F795F8AF7A373FB461F8 /* tree_enc.c in Sources */ = {isa = PBXBuildFile; fileRef = 9A09B5FD3B58DF5489AEA2A533ADB033 /* tree_enc.c */; settings = {COMPILER_FLAGS = "-D_THREAD_SAFE -fno-objc-arc"; }; }; - 3FF12F392FFAD45A9D62C9E746937E26 /* FMDatabaseQueue.h in Headers */ = {isa = PBXBuildFile; fileRef = 8FBF31FB026CFBC2F46DA82B834D55C1 /* FMDatabaseQueue.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 3FF7252DD60182221BB1E5A167C41A07 /* UIProgressView+AFNetworking.m in Sources */ = {isa = PBXBuildFile; fileRef = 3B680E2D07764F46DE876BB2983D8C41 /* UIProgressView+AFNetworking.m */; }; - 3FF9873BBEDD1C8AA6EC43EBCB23D060 /* NSData+RACSupport.m in Sources */ = {isa = PBXBuildFile; fileRef = EC4AFEBAB597CA581EA5CFC7CCD195BA /* NSData+RACSupport.m */; }; - 401D08D2573A4696AEADDDED3D47C251 /* MQTTProperties.m in Sources */ = {isa = PBXBuildFile; fileRef = 907FF6352E0FF6E21E635F1822136EBC /* MQTTProperties.m */; }; - 403A6AAA9354BE5A564DE010AAAEF6F7 /* UIView+WebCacheState.m in Sources */ = {isa = PBXBuildFile; fileRef = F83232DD6EB023866B86E5D84C8DC48F /* UIView+WebCacheState.m */; }; + 3F9C3275F786E754C812482941E96F4A /* RACEXTRuntimeExtensions.h in Headers */ = {isa = PBXBuildFile; fileRef = 9C683F3F0B9711A79A25F1505D26C793 /* RACEXTRuntimeExtensions.h */; settings = {ATTRIBUTES = (Private, ); }; }; + 3F9EB70845C07E9C4EC09988AB7763FE /* BRAddressPickerView.bundle in Resources */ = {isa = PBXBuildFile; fileRef = C25A2F5175440A6A656FDE590F024550 /* BRAddressPickerView.bundle */; }; + 3FDD85AA92703FBD5CEC9754D55AD571 /* BRPickerAlertView.m in Sources */ = {isa = PBXBuildFile; fileRef = B9DA828B683D4E0C716E72D7455447D9 /* BRPickerAlertView.m */; }; + 3FE11C3DF2FAC8F25A8B8EE8AA90993A /* LLFilterTextFieldCell.m in Sources */ = {isa = PBXBuildFile; fileRef = A4E3954F0EE219E2B68B85F4B5B72235 /* LLFilterTextFieldCell.m */; }; + 3FF12F392FFAD45A9D62C9E746937E26 /* FMDatabaseQueue.h in Headers */ = {isa = PBXBuildFile; fileRef = 85CC94351C231B6632DAB441C2F35141 /* FMDatabaseQueue.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 3FF7252DD60182221BB1E5A167C41A07 /* UIProgressView+AFNetworking.m in Sources */ = {isa = PBXBuildFile; fileRef = A519F1F393FB879673BD511BC859018E /* UIProgressView+AFNetworking.m */; }; + 3FF9873BBEDD1C8AA6EC43EBCB23D060 /* NSData+RACSupport.m in Sources */ = {isa = PBXBuildFile; fileRef = 8D25EDCC9DB928F40CE0A38D790A2695 /* NSData+RACSupport.m */; }; + 401D08D2573A4696AEADDDED3D47C251 /* MQTTProperties.m in Sources */ = {isa = PBXBuildFile; fileRef = 06D345BB7E51A3ECD6665C4AB51741FC /* MQTTProperties.m */; }; 403B42C3B236A41E6789C0471916E2B0 /* TUISecondConfirm.h in Headers */ = {isa = PBXBuildFile; fileRef = F1A4111F17FF72D844D2BAA264E4F805 /* TUISecondConfirm.h */; settings = {ATTRIBUTES = (Public, ); }; }; 403D898F4BA3F19AD155F16A947E2099 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = F91075A92425F75F02E0E1C8D455AF79 /* Foundation.framework */; }; 404B304E3D24B24289201C64C5DC016C /* TUIBaseMessageController.h in Headers */ = {isa = PBXBuildFile; fileRef = 2BEF753BC001FC149F6ABE41D1CB479A /* TUIBaseMessageController.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 4060BBB124FB12730C079C8E2F6F5FE7 /* rescaler_mips32.c in Sources */ = {isa = PBXBuildFile; fileRef = 10D8FF29100E3162C3A417B55F1AF215 /* rescaler_mips32.c */; settings = {COMPILER_FLAGS = "-D_THREAD_SAFE -fno-objc-arc"; }; }; + 40A3FAD55D708AA8A903BAE592780B31 /* bit_reader_inl_utils.h in Headers */ = {isa = PBXBuildFile; fileRef = DBA5E791DD9EDD7838CC7AFE495DD477 /* bit_reader_inl_utils.h */; settings = {ATTRIBUTES = (Project, ); }; }; + 40C6547E1BF9D38DAF250AAC9486D97E /* color_cache_utils.c in Sources */ = {isa = PBXBuildFile; fileRef = 29C365D5701AB648363972D3E6F75AEC /* color_cache_utils.c */; settings = {COMPILER_FLAGS = "-D_THREAD_SAFE -fno-objc-arc"; }; }; 40E84298D5B6281A8EE507A8DCB02B63 /* Protobuf-Protobuf_Privacy in Resources */ = {isa = PBXBuildFile; fileRef = F777222FFBEEB0CE4650EE8A00938A60 /* Protobuf-Protobuf_Privacy */; }; 4100175AE18D2880695987AD44178FE7 /* TUIReferenceMessageCell.m in Sources */ = {isa = PBXBuildFile; fileRef = 3B1BE9331F5E5D12CA04E6D642BCFB41 /* TUIReferenceMessageCell.m */; }; - 412D58DF657ACB7FC82B1EC7D830FD45 /* BRPickerStyle.m in Sources */ = {isa = PBXBuildFile; fileRef = 3BEFF4173E0713075161D72CD9E5D921 /* BRPickerStyle.m */; }; - 417ED41553543E3E003DC19085F53393 /* YYKVStorage.m in Sources */ = {isa = PBXBuildFile; fileRef = D1423811F8D69704871E20B5BEA8F6CB /* YYKVStorage.m */; }; - 41A403B14E69F35BC81B50B82CF94E76 /* LLNetworkViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 917B9B835A9ADCB099DD9059B41E3FFB /* LLNetworkViewController.m */; }; - 41A5D376FC6FD20F1BE93F098C374242 /* SDWebImageOperation.m in Sources */ = {isa = PBXBuildFile; fileRef = 035CC5F26C50DA8B90743281082535AA /* SDWebImageOperation.m */; }; - 41A88C49547B5D0C3C2FFF38E8D91155 /* LLTitleSwitchCell.m in Sources */ = {isa = PBXBuildFile; fileRef = 5F5F511E4E026BBDDB111AF16C4EB126 /* LLTitleSwitchCell.m */; }; - 4204B1334D2E961D1EB3E0AAA0056B43 /* SDFileAttributeHelper.m in Sources */ = {isa = PBXBuildFile; fileRef = 62BA00937E80B01E5AA79C6A6E698958 /* SDFileAttributeHelper.m */; }; - 422EFB8349BC2959FD59EBCF849D74D2 /* LLNetworkDetailViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 9084936B68F36D335E818E606C5B306C /* LLNetworkDetailViewController.m */; }; - 424A157AFFB80C110600C31E89963064 /* SDImageIOAnimatedCoderInternal.h in Headers */ = {isa = PBXBuildFile; fileRef = CC8D1E0C4EA0E4C4D195306669D101CE /* SDImageIOAnimatedCoderInternal.h */; settings = {ATTRIBUTES = (Private, ); }; }; - 42735B679585CBE859585C298BB91FC6 /* UIControl+RACSignalSupportPrivate.m in Sources */ = {isa = PBXBuildFile; fileRef = 240EC0D5314707D71622B123B7B06E10 /* UIControl+RACSignalSupportPrivate.m */; }; - 4281CC31F4D4EAE690F999C778F17E5B /* JXCategoryViewAnimator.h in Headers */ = {isa = PBXBuildFile; fileRef = 0DD13064D19D1D06B109048495DD25FA /* JXCategoryViewAnimator.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 412D58DF657ACB7FC82B1EC7D830FD45 /* BRPickerStyle.m in Sources */ = {isa = PBXBuildFile; fileRef = 8C557D2F6361E8295AAD89EDEE2AACB4 /* BRPickerStyle.m */; }; + 4153C3C4CBD7A48F844B69FB74079D7F /* SDAnimatedImageView.h in Headers */ = {isa = PBXBuildFile; fileRef = A054FBD9092C16401FFBD55D55C8AF62 /* SDAnimatedImageView.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 417ED41553543E3E003DC19085F53393 /* YYKVStorage.m in Sources */ = {isa = PBXBuildFile; fileRef = 9203541306F143FDEB870B5F9A0B5E1F /* YYKVStorage.m */; }; + 4185D077B27806CFABB2E83654DB63E3 /* QualityDataUploader.m in Sources */ = {isa = PBXBuildFile; fileRef = 0086153F7A83A07B955062499369838D /* QualityDataUploader.m */; }; + 41A403B14E69F35BC81B50B82CF94E76 /* LLNetworkViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = C037CB7FD3E4185DA804EFAEA5ECB47B /* LLNetworkViewController.m */; }; + 41A88C49547B5D0C3C2FFF38E8D91155 /* LLTitleSwitchCell.m in Sources */ = {isa = PBXBuildFile; fileRef = FF94ECE1BD1A32B1EB0097A1E3CCD910 /* LLTitleSwitchCell.m */; }; + 41C1B8A8080B53028E5B40176081C73B /* QCloudCompleteMultipartUploadInfo.m in Sources */ = {isa = PBXBuildFile; fileRef = C30120819B40CF27526538D243E95959 /* QCloudCompleteMultipartUploadInfo.m */; }; + 422EFB8349BC2959FD59EBCF849D74D2 /* LLNetworkDetailViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 714DE9D21747F7ADB7E847688567B3A0 /* LLNetworkDetailViewController.m */; }; + 4245F36EC533087433201DF8F2956E4B /* vp8l_dec.c in Sources */ = {isa = PBXBuildFile; fileRef = C6A9340CDAC0B6369DB2690CDC3A55CE /* vp8l_dec.c */; settings = {COMPILER_FLAGS = "-D_THREAD_SAFE -fno-objc-arc"; }; }; + 42735B679585CBE859585C298BB91FC6 /* UIControl+RACSignalSupportPrivate.m in Sources */ = {isa = PBXBuildFile; fileRef = E27D21FEAC4F96C7439A48A38ED0D771 /* UIControl+RACSignalSupportPrivate.m */; }; + 4281CC31F4D4EAE690F999C778F17E5B /* JXCategoryViewAnimator.h in Headers */ = {isa = PBXBuildFile; fileRef = C721DEC379A32E6A40BB74DDCD48133C /* JXCategoryViewAnimator.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 4284930B9C2F398EE2D1CA19A9BBABFF /* Pods-QXLive-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = 6A79F5B474AEB6E40838CD82097C06E2 /* Pods-QXLive-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 42858CCB6BA08087924DA97300C4AE06 /* QCloudHTTPBodyPart.h in Headers */ = {isa = PBXBuildFile; fileRef = 9B654199114861BA650381E43DD5E10B /* QCloudHTTPBodyPart.h */; settings = {ATTRIBUTES = (Public, ); }; }; 42C2907A3C5E1BCFEEC106D7CD55A594 /* TUIAudioRecorder.m in Sources */ = {isa = PBXBuildFile; fileRef = 9AB38CA7304414D2A5EDAB32ACB99441 /* TUIAudioRecorder.m */; }; 42CD06BECB1FC098673502A1AB0EBB2F /* TUIRecordView.h in Headers */ = {isa = PBXBuildFile; fileRef = 16F5E8F967963B368527015A3F347B30 /* TUIRecordView.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 42E3AF3AA926C4A6A6C273D26D0619E3 /* sharpyuv_dsp.h in Headers */ = {isa = PBXBuildFile; fileRef = E1828373766AE5D4C3F5D785FE41B81C /* sharpyuv_dsp.h */; settings = {ATTRIBUTES = (Project, ); }; }; + 42E900E1ACEB99DE2F7C7527B2DEDC1B /* SDImageLoadersManager.h in Headers */ = {isa = PBXBuildFile; fileRef = F1FF064C40D7D723E9880B09ED29008D /* SDImageLoadersManager.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 42F504E018BBA6706DF45785E16C0DAE /* vp8li_enc.h in Headers */ = {isa = PBXBuildFile; fileRef = 8A87A1F94C3A4E6F191EA25DAF3D2A5F /* vp8li_enc.h */; settings = {ATTRIBUTES = (Project, ); }; }; 431023914A5D2653ABAE7AB54880C9AC /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = F91075A92425F75F02E0E1C8D455AF79 /* Foundation.framework */; }; - 436DA28CC16B8439CDAF0D2B3DB1C226 /* UIColor+LL_Utils.m in Sources */ = {isa = PBXBuildFile; fileRef = 80A2AD92A5B51B36F6D54DD52742DDD3 /* UIColor+LL_Utils.m */; }; - 437FF425F39B4467C0A640481B1B5291 /* QGHWDMP4OpenGLView.m in Sources */ = {isa = PBXBuildFile; fileRef = FC19B79147D3C952825509941C1C22E8 /* QGHWDMP4OpenGLView.m */; }; + 436DA28CC16B8439CDAF0D2B3DB1C226 /* UIColor+LL_Utils.m in Sources */ = {isa = PBXBuildFile; fileRef = EB605D949037651D57725E2BED5B6196 /* UIColor+LL_Utils.m */; }; + 437FF425F39B4467C0A640481B1B5291 /* QGHWDMP4OpenGLView.m in Sources */ = {isa = PBXBuildFile; fileRef = AF9CD71DEEC9408CBF151103B0E5F0D2 /* QGHWDMP4OpenGLView.m */; }; 43826AF76DDBBDBDD21BF52C6E361632 /* TUIConversationListController_Minimalist.h in Headers */ = {isa = PBXBuildFile; fileRef = DE1A0692E5E399612B98DC07272C2E69 /* TUIConversationListController_Minimalist.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 43DAECA9091DEEDE97251FC68F804E21 /* GPBDescriptor.m in Sources */ = {isa = PBXBuildFile; fileRef = FFC4EB1C47258CFEE04214368FA1D0E9 /* GPBDescriptor.m */; settings = {COMPILER_FLAGS = "-fno-objc-arc"; }; }; - 44229A5739A1CA25860DAB568183E751 /* OSSGetSymlinkResult.h in Headers */ = {isa = PBXBuildFile; fileRef = 6FBE57DE259A7819AD6B1295713CA7BE /* OSSGetSymlinkResult.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 4424E7517B86FE622BCD3D5040FC579C /* JXCategoryTitleCell.h in Headers */ = {isa = PBXBuildFile; fileRef = 10482229F1C33E5B6D0103805A45AE8C /* JXCategoryTitleCell.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 442F468E261A1106C291BF52BDBF9DB7 /* MJRefreshHeader.h in Headers */ = {isa = PBXBuildFile; fileRef = D21CDA4E7F267846E8641BE42E764B13 /* MJRefreshHeader.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 442F711B72745323EBB2775FFC35A7B0 /* SDImageAPNGCoder.m in Sources */ = {isa = PBXBuildFile; fileRef = 09F9197259B88F2C65A1CBE164EBEB7A /* SDImageAPNGCoder.m */; }; - 44339C00EEAC1F42F4BD9F5FC1C93FA0 /* IQPreviousNextView.h in Headers */ = {isa = PBXBuildFile; fileRef = 1CF9327BF7C88C0B6AAF3178DA04CC51 /* IQPreviousNextView.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 44348C8359F737B6D0961604D185B853 /* LLHierarchyWindow.h in Headers */ = {isa = PBXBuildFile; fileRef = 047A8BEFD58F6C53EFE366ECDC291C93 /* LLHierarchyWindow.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 4435F92DED5194DE28973FAA56D2C000 /* PrivacyInfo.xcprivacy in Resources */ = {isa = PBXBuildFile; fileRef = 2F50726B73AFA95C2E2546DB1C370E8A /* PrivacyInfo.xcprivacy */; }; - 445C3272BC1602F3CF1B140BC2A0B39C /* UIBarButtonItem+RACCommandSupport.m in Sources */ = {isa = PBXBuildFile; fileRef = 276CE580A63B4C6D0943C51AE0279721 /* UIBarButtonItem+RACCommandSupport.m */; }; - 446D509EEE7AB2A4112C2B607024ACF0 /* MQTTInMemoryPersistence.m in Sources */ = {isa = PBXBuildFile; fileRef = 16ABE6B596635A18447A7259BA6AEC22 /* MQTTInMemoryPersistence.m */; }; - 4492DCF2EBB472D5EC111292F7AC31C7 /* LLNetworkModel.h in Headers */ = {isa = PBXBuildFile; fileRef = 654E73A05103D50BF66BAD6D0D38DEC8 /* LLNetworkModel.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 44D5615EBA2F2623739A5A7048C6F33B /* LLThemeManager.m in Sources */ = {isa = PBXBuildFile; fileRef = 5E697AF06DAEB05FDA140390182DE628 /* LLThemeManager.m */; }; + 439374D38249FBC5F964B12382ACA155 /* YYImageCoder.m in Sources */ = {isa = PBXBuildFile; fileRef = D3AF15632551C4CCE70DD675D38A81A1 /* YYImageCoder.m */; }; + 43DAECA9091DEEDE97251FC68F804E21 /* GPBDescriptor.m in Sources */ = {isa = PBXBuildFile; fileRef = DD9221EDB1D66F00A81FC5764351315E /* GPBDescriptor.m */; settings = {COMPILER_FLAGS = "-fno-objc-arc"; }; }; + 43DCD0A7033099F7F5AEB42423928867 /* dec_clip_tables.c in Sources */ = {isa = PBXBuildFile; fileRef = 3CC1EA350F30753E1F105F5F4F0C1E4E /* dec_clip_tables.c */; settings = {COMPILER_FLAGS = "-D_THREAD_SAFE -fno-objc-arc"; }; }; + 44229A5739A1CA25860DAB568183E751 /* OSSGetSymlinkResult.h in Headers */ = {isa = PBXBuildFile; fileRef = 96F57F8950C059A0FB4F8A87B8134D20 /* OSSGetSymlinkResult.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 4424E7517B86FE622BCD3D5040FC579C /* JXCategoryTitleCell.h in Headers */ = {isa = PBXBuildFile; fileRef = C0CEB5A1B00EFCEA42EB2B0602CBF8D8 /* JXCategoryTitleCell.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 442F468E261A1106C291BF52BDBF9DB7 /* MJRefreshHeader.h in Headers */ = {isa = PBXBuildFile; fileRef = A76638BBDB3A90170090F0B04BEB7752 /* MJRefreshHeader.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 44339C00EEAC1F42F4BD9F5FC1C93FA0 /* IQPreviousNextView.h in Headers */ = {isa = PBXBuildFile; fileRef = DBDD225BF9FABCDCA7ACE73C61C154CC /* IQPreviousNextView.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 44348C8359F737B6D0961604D185B853 /* LLHierarchyWindow.h in Headers */ = {isa = PBXBuildFile; fileRef = 3D1757743CDC76FAC89974FBEDD31E89 /* LLHierarchyWindow.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 445C3272BC1602F3CF1B140BC2A0B39C /* UIBarButtonItem+RACCommandSupport.m in Sources */ = {isa = PBXBuildFile; fileRef = F13A129258E41B3295F00EFE8D23CCD3 /* UIBarButtonItem+RACCommandSupport.m */; }; + 446D509EEE7AB2A4112C2B607024ACF0 /* MQTTInMemoryPersistence.m in Sources */ = {isa = PBXBuildFile; fileRef = 3EF9852A5A98D3131B14E29BB416C491 /* MQTTInMemoryPersistence.m */; }; + 4492DCF2EBB472D5EC111292F7AC31C7 /* LLNetworkModel.h in Headers */ = {isa = PBXBuildFile; fileRef = 88E06D778F2FCCEB9FE5416F7D4CF216 /* LLNetworkModel.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 44B18784422E263DB239DE4DC05155E8 /* ioapi.h in Headers */ = {isa = PBXBuildFile; fileRef = F431D2A564F4F18F222226A9471AB5EB /* ioapi.h */; settings = {ATTRIBUTES = (Project, ); }; }; + 44D5615EBA2F2623739A5A7048C6F33B /* LLThemeManager.m in Sources */ = {isa = PBXBuildFile; fileRef = D026878D71D61309F44586E0D3DFD323 /* LLThemeManager.m */; }; + 44F56BFDB1BD2792727E542BF5D24ADD /* QCloudUniversalAdjustablePath.m in Sources */ = {isa = PBXBuildFile; fileRef = 79D937BCD943E356C2FC4B49FF67BF50 /* QCloudUniversalAdjustablePath.m */; }; 4500E7C9876384FBFBEB4E78028C4424 /* TUIInputBar.m in Sources */ = {isa = PBXBuildFile; fileRef = 990C3927E2E64898196108C7F15A1FB5 /* TUIInputBar.m */; }; + 4509D5616BCBACC1F5798EC63412A13B /* NSBezierPath+SDRoundedCorners.m in Sources */ = {isa = PBXBuildFile; fileRef = 08A7023C52345C508988051E5EE1F7EE /* NSBezierPath+SDRoundedCorners.m */; }; 450A3108BED0B2531B5BB22DF4F5603E /* TUIReplyPreviewBar.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A0F36C9DA1928A51CE0C61A106BCA1A /* TUIReplyPreviewBar.h */; settings = {ATTRIBUTES = (Public, ); }; }; 451298F3173179E04EC77B6E34747153 /* TUILinkCell_Minimalist.m in Sources */ = {isa = PBXBuildFile; fileRef = DB0B74500075FC8A895C1F1C5238EBBE /* TUILinkCell_Minimalist.m */; }; - 452C940762F65B125C216F73B369F583 /* MJRefreshStateTrailer.m in Sources */ = {isa = PBXBuildFile; fileRef = E8819458139503FDB6BB66BE19FF3F16 /* MJRefreshStateTrailer.m */; }; - 453437AE32236787CCBCDB84336E4A93 /* YBIBVideoActionBar.h in Headers */ = {isa = PBXBuildFile; fileRef = FA3874AF2A2DB99BDD9D65D599FF0FF9 /* YBIBVideoActionBar.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 4540A4789762BCFDD9100135BE6D1D0C /* PrivacyInfo.xcprivacy in Resources */ = {isa = PBXBuildFile; fileRef = B547DE0AF865AACABD260B51DFF954AC /* PrivacyInfo.xcprivacy */; }; - 4569AD436BB87FA37A01C5C982F025A2 /* SSZipArchive.h in Headers */ = {isa = PBXBuildFile; fileRef = D6D3758013920FC1F345973E944F8016 /* SSZipArchive.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 452C940762F65B125C216F73B369F583 /* MJRefreshStateTrailer.m in Sources */ = {isa = PBXBuildFile; fileRef = D8076727251FFD8F87405D28F5A543CC /* MJRefreshStateTrailer.m */; }; + 4531190068B3C7FEE69B4F45ED486200 /* QCloudCoreVersion.h in Headers */ = {isa = PBXBuildFile; fileRef = 2366CE60ED206FA9E103640EBEF8EA66 /* QCloudCoreVersion.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 453437AE32236787CCBCDB84336E4A93 /* YBIBVideoActionBar.h in Headers */ = {isa = PBXBuildFile; fileRef = D8D981282865C8320ECD683BF5879065 /* YBIBVideoActionBar.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 4569AD436BB87FA37A01C5C982F025A2 /* SSZipArchive.h in Headers */ = {isa = PBXBuildFile; fileRef = 510CE074799D6F1B2FAE69B11D670BE6 /* SSZipArchive.h */; settings = {ATTRIBUTES = (Public, ); }; }; 4571A0EA37DC84F39E3830D38A1531AB /* UIKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 83AC327FDFB768874F13D3CD20C46095 /* UIKit.framework */; }; - 45A2252FE9A80B5B59B021395E19EE0C /* RACTuple.m in Sources */ = {isa = PBXBuildFile; fileRef = 012DE05920131187826AFC086713FF68 /* RACTuple.m */; }; - 45B7CAB165FD8E202588F40FACB9904A /* SDWebImageDownloaderRequestModifier.h in Headers */ = {isa = PBXBuildFile; fileRef = 70929FA996E547213570225B829490E0 /* SDWebImageDownloaderRequestModifier.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 45D47817A6B892B164550CD5DE558780 /* LLFilterView.m in Sources */ = {isa = PBXBuildFile; fileRef = 32CF5DC6D8E6BCE1CCBB7201E95E428F /* LLFilterView.m */; }; + 45A2252FE9A80B5B59B021395E19EE0C /* RACTuple.m in Sources */ = {isa = PBXBuildFile; fileRef = EEEC6F5B7A994FE6A18E789BF0CD0ADE /* RACTuple.m */; }; + 45A419A1E8A72D7337CE05B749681B21 /* PrivacyInfo.xcprivacy in Resources */ = {isa = PBXBuildFile; fileRef = 0F0C9ABF667C40EF3A478D191CE00BF1 /* PrivacyInfo.xcprivacy */; }; + 45D47817A6B892B164550CD5DE558780 /* LLFilterView.m in Sources */ = {isa = PBXBuildFile; fileRef = C99BD807257F535CA1405079C4548FD5 /* LLFilterView.m */; }; 45D6B5ED97C7B8930311A3EF84D4F28D /* UIImage+ImageEffects.h in Headers */ = {isa = PBXBuildFile; fileRef = ABBA0A23841EA9AF8E49C4B6A7CC39F0 /* UIImage+ImageEffects.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 45E1583D7EF53489B82C4CA2AD1AD0CF /* MJRefreshBackFooter.h in Headers */ = {isa = PBXBuildFile; fileRef = 39615AF59B548CFAF0193DD8917A002D /* MJRefreshBackFooter.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 45E1583D7EF53489B82C4CA2AD1AD0CF /* MJRefreshBackFooter.h in Headers */ = {isa = PBXBuildFile; fileRef = 9502B0B473623E7357CE14F670B4A6C5 /* MJRefreshBackFooter.h */; settings = {ATTRIBUTES = (Public, ); }; }; 45EA632E71D058387E87C9323A02312A /* TUIConversationCellData.m in Sources */ = {isa = PBXBuildFile; fileRef = 85DF452A6A68913D3B9E22E2BB1E72B7 /* TUIConversationCellData.m */; }; - 45F861348548E0CD9D2C0781E04B3CEA /* RACPassthroughSubscriber.h in Headers */ = {isa = PBXBuildFile; fileRef = 37BF5C6D27DC9250948AD8D426A63A5D /* RACPassthroughSubscriber.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 4632FEB97EDF8C1B008F7E801543752E /* OSSNetworking.m in Sources */ = {isa = PBXBuildFile; fileRef = B065E3A2FE0BCAAD7F3D83FA560043B6 /* OSSNetworking.m */; }; - 464668087ADF503E364FF9ACA13D81CA /* MQTTTransport.m in Sources */ = {isa = PBXBuildFile; fileRef = 2777A736EB2CF402FF93A5840C02A123 /* MQTTTransport.m */; }; + 45F861348548E0CD9D2C0781E04B3CEA /* RACPassthroughSubscriber.h in Headers */ = {isa = PBXBuildFile; fileRef = 07F94D341C349D9A7ADEB1A65768B8C0 /* RACPassthroughSubscriber.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 461A4C946BFC3437ED41D5C52DCCB9A3 /* QCloudPutObjectRequest+Custom.h in Headers */ = {isa = PBXBuildFile; fileRef = 874E32992FF188A8A335A064CF0F52CA /* QCloudPutObjectRequest+Custom.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 463244BCC6849C407D1178E87E974FE3 /* NSObject+QCloudModel.m in Sources */ = {isa = PBXBuildFile; fileRef = C955ACD5B6F9A8EBD41DDBF4CA3436B0 /* NSObject+QCloudModel.m */; }; + 4632FEB97EDF8C1B008F7E801543752E /* OSSNetworking.m in Sources */ = {isa = PBXBuildFile; fileRef = 20879D9B56A7E684907F75923C3F6EF1 /* OSSNetworking.m */; }; + 4633D19CB7A248F3662AD25AC6E7383E /* QCloudGCDTimer.h in Headers */ = {isa = PBXBuildFile; fileRef = A0A6BF44469A53B30A9D29E8B75563F0 /* QCloudGCDTimer.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 464668087ADF503E364FF9ACA13D81CA /* MQTTTransport.m in Sources */ = {isa = PBXBuildFile; fileRef = EF7AA64092BF7E400C6F8FDF6A189D50 /* MQTTTransport.m */; }; 464821B903FE9FC52174A0AD1E3D51CB /* TUIConversationService.m in Sources */ = {isa = PBXBuildFile; fileRef = 74804D733853C053151DEF88E96F292B /* TUIConversationService.m */; }; 4656DAE4B21347D54B0260B70022E376 /* TIMCommon-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = 74AAD8C647E438E01FDB030A02A427DE /* TIMCommon-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 465933F874F36D39C16F1FED6284777E /* UIImage+YYAdd.h in Headers */ = {isa = PBXBuildFile; fileRef = 7CF9C7F6DBB7F2CEF6DDE1A85B040BE3 /* UIImage+YYAdd.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 4662CC312ECC1BEF6EA91F5B6C7B15EE /* idec_dec.c in Sources */ = {isa = PBXBuildFile; fileRef = 950930A73A3FB9836C5174F10B9565BD /* idec_dec.c */; settings = {COMPILER_FLAGS = "-D_THREAD_SAFE -fno-objc-arc"; }; }; + 465933F874F36D39C16F1FED6284777E /* UIImage+YYAdd.h in Headers */ = {isa = PBXBuildFile; fileRef = BEB885F0149701199F0189974EBC7D8D /* UIImage+YYAdd.h */; settings = {ATTRIBUTES = (Public, ); }; }; 467B232885609B74C3D5C97CD6F2C8F2 /* TUIConversationCell.m in Sources */ = {isa = PBXBuildFile; fileRef = 57E829FAFFA12D804643CC96EEB8EB62 /* TUIConversationCell.m */; }; 46833123DEC0B3647C076081F3DC54C5 /* TUIFileReplyQuoteView_Minimalist.m in Sources */ = {isa = PBXBuildFile; fileRef = B9E1C417847BC5FDC1B91A3641CA45F0 /* TUIFileReplyQuoteView_Minimalist.m */; }; - 4692E85326804A3DBF99C6628460AEC2 /* GPBUtilities_PackagePrivate.h in Headers */ = {isa = PBXBuildFile; fileRef = 6B1B643DEB1B9575913936C72467D795 /* GPBUtilities_PackagePrivate.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 46A3C25D009DF5A6755F8BA3B8BFAC40 /* TZAssetModel.h in Headers */ = {isa = PBXBuildFile; fileRef = 352CBC2D9D6F988EE9950B6B5E54A5F1 /* TZAssetModel.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 468C19B5A2C541F12BA50CCF3B2B3072 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = F91075A92425F75F02E0E1C8D455AF79 /* Foundation.framework */; }; + 4692E85326804A3DBF99C6628460AEC2 /* GPBUtilities_PackagePrivate.h in Headers */ = {isa = PBXBuildFile; fileRef = C0CF66D77341CBAB70B181A81C6F4CCA /* GPBUtilities_PackagePrivate.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 46A3C25D009DF5A6755F8BA3B8BFAC40 /* TZAssetModel.h in Headers */ = {isa = PBXBuildFile; fileRef = F1AFDF65630C82C9602A85EC64FA9479 /* TZAssetModel.h */; settings = {ATTRIBUTES = (Public, ); }; }; 46BB28F62F6521E1CA1BB3A729629041 /* QuartzCore.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 495512CED6B55B9463695CBE9898BE51 /* QuartzCore.framework */; }; 46C7022E5BC425465290808C2DFA0082 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = F91075A92425F75F02E0E1C8D455AF79 /* Foundation.framework */; }; - 46D42E5E1A164D82814A2B776CA43C31 /* NSData+LL_Network.h in Headers */ = {isa = PBXBuildFile; fileRef = A6F53221B473FF9F89CB2EACD5739FBA /* NSData+LL_Network.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 46FE7652F3F63388BF97D9C8B7015A6B /* RACUnarySequence.h in Headers */ = {isa = PBXBuildFile; fileRef = F7D704EA73182F83BFA8FC340F8FA287 /* RACUnarySequence.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 4702E963628D3FADF91645127A378723 /* MQTTSSLSecurityPolicyTransport.m in Sources */ = {isa = PBXBuildFile; fileRef = 9CED0A800FADE3CC1E40B544A2DB5533 /* MQTTSSLSecurityPolicyTransport.m */; }; + 46D42E5E1A164D82814A2B776CA43C31 /* NSData+LL_Network.h in Headers */ = {isa = PBXBuildFile; fileRef = 0EE95776273C13ED73E0B751B2BA8E2A /* NSData+LL_Network.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 46F78953386C12D843D0889F6C9E63D0 /* syntax_enc.c in Sources */ = {isa = PBXBuildFile; fileRef = 30A83DA60174B28C331EFA1522382EDC /* syntax_enc.c */; settings = {COMPILER_FLAGS = "-D_THREAD_SAFE -fno-objc-arc"; }; }; + 46FE7652F3F63388BF97D9C8B7015A6B /* RACUnarySequence.h in Headers */ = {isa = PBXBuildFile; fileRef = 9237AE7D726F70DDD45C541AD4A800DC /* RACUnarySequence.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 4702E963628D3FADF91645127A378723 /* MQTTSSLSecurityPolicyTransport.m in Sources */ = {isa = PBXBuildFile; fileRef = 243E21A815BF2730E755AAFC60796035 /* MQTTSSLSecurityPolicyTransport.m */; }; 473099662834A40D93F387926A762FD2 /* TUIImageCollectionCell_Minimalist.h in Headers */ = {isa = PBXBuildFile; fileRef = F3BF8AEF59CB21D843D0550C284FBED5 /* TUIImageCollectionCell_Minimalist.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 474EA16BE6E23875E528FF2615F4D829 /* yuv.h in Headers */ = {isa = PBXBuildFile; fileRef = 4AE210D9A885696D72F3DA98859ABC65 /* yuv.h */; settings = {ATTRIBUTES = (Project, ); }; }; - 47554A9952DB0C1415DD2B9084981A6F /* GPBUnknownFields.h in Headers */ = {isa = PBXBuildFile; fileRef = 875088AA24FC04E68E1BA359484AA755 /* GPBUnknownFields.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 475591A8A7A10CDFCADE68F2E1EFF2F9 /* ScoreAlgorithm.swift in Sources */ = {isa = PBXBuildFile; fileRef = E97B946024F34982FB86D50C6A6F70FF /* ScoreAlgorithm.swift */; }; - 475B4F3E71C293065AAFDB1888696CF6 /* MJRefreshBackGifFooter.h in Headers */ = {isa = PBXBuildFile; fileRef = BA047E6FEE17317C5DC12CC626EB3C4D /* MJRefreshBackGifFooter.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 478D72D0F9423618F7752BCD764E454E /* QGVAPConfigManager.h in Headers */ = {isa = PBXBuildFile; fileRef = 79D43D24910C0244A48B3A934EC0DA65 /* QGVAPConfigManager.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 47A5E935D575A79B23EC8E89EADC9A36 /* LLPickerView.h in Headers */ = {isa = PBXBuildFile; fileRef = 4A83A386748C5CE18D8AE941C894A549 /* LLPickerView.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 47C42F9495BE423806E1D723A9D8CC17 /* lossless.h in Headers */ = {isa = PBXBuildFile; fileRef = 745A040E3696B4A9BB1691C1E7FE5D23 /* lossless.h */; settings = {ATTRIBUTES = (Project, ); }; }; - 47D8BB08A24842E6145C37D7006FC77A /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = F91075A92425F75F02E0E1C8D455AF79 /* Foundation.framework */; }; - 47E27473C6C3DAD243E76BBB9FAAC38A /* YYModel.h in Headers */ = {isa = PBXBuildFile; fileRef = 061DF778A675606EC01E9A048E925E98 /* YYModel.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 47FBCA188545B898AB5EEC31E3E5E680 /* YBIBIconManager.h in Headers */ = {isa = PBXBuildFile; fileRef = EA17CD937CA3EA89FF79F818E6703B37 /* YBIBIconManager.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 4851743937896F7DBEC0BCC7A878682C /* NSObject+RACDeallocating.h in Headers */ = {isa = PBXBuildFile; fileRef = F6FE0B645B3D02D2EFD794BC6CF6269F /* NSObject+RACDeallocating.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 48B6F70763817CE2BDFB77E4D69A538D /* LLSandboxImagePreviewController.h in Headers */ = {isa = PBXBuildFile; fileRef = 2E6C2A703C44A0270CFBAA655E88B2E1 /* LLSandboxImagePreviewController.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 48BCC8312F8AA14F0646E0B7668FEDE0 /* LLEntryStyleModel.h in Headers */ = {isa = PBXBuildFile; fileRef = 8914FC0B67E512714BF00F1B30A11D84 /* LLEntryStyleModel.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 48D87ECC621E39931B8C68BFA214F49F /* SDInternalMacros.h in Headers */ = {isa = PBXBuildFile; fileRef = F712609A7530BD737F05E692B1B6EE0E /* SDInternalMacros.h */; settings = {ATTRIBUTES = (Private, ); }; }; + 47554A9952DB0C1415DD2B9084981A6F /* GPBUnknownFields.h in Headers */ = {isa = PBXBuildFile; fileRef = 9863230652A77516A5830C58FEE0B4C6 /* GPBUnknownFields.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 475591A8A7A10CDFCADE68F2E1EFF2F9 /* ScoreAlgorithm.swift in Sources */ = {isa = PBXBuildFile; fileRef = A303F5DD2B26CE2527CE68451DDFB716 /* ScoreAlgorithm.swift */; }; + 4756738C81961577D2EEFDB3452E8F43 /* QCloudCOSXMLUploadObjectRequest.h in Headers */ = {isa = PBXBuildFile; fileRef = BABEB31645FCCB421C9DB0258E8EDB0F /* QCloudCOSXMLUploadObjectRequest.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 475B4F3E71C293065AAFDB1888696CF6 /* MJRefreshBackGifFooter.h in Headers */ = {isa = PBXBuildFile; fileRef = 953EA43E3F2AF86474EE7D74EBCBD573 /* MJRefreshBackGifFooter.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 4789E7B688EFC2614D1A8B0A97B2FCEE /* QualityDataUploader.h in Headers */ = {isa = PBXBuildFile; fileRef = 75E6A73F4E61682A5174EE7D7ED19F76 /* QualityDataUploader.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 478D72D0F9423618F7752BCD764E454E /* QGVAPConfigManager.h in Headers */ = {isa = PBXBuildFile; fileRef = AB95C2A2C021DEBDF9C01A0110B99675 /* QGVAPConfigManager.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 479436C23E64305FF468C16180CD5136 /* cpu.h in Headers */ = {isa = PBXBuildFile; fileRef = 39779CCB2B95BB129A4CC4AA600A1891 /* cpu.h */; settings = {ATTRIBUTES = (Project, ); }; }; + 47A5E935D575A79B23EC8E89EADC9A36 /* LLPickerView.h in Headers */ = {isa = PBXBuildFile; fileRef = BF07F0FE4411608E1B184E1B81320425 /* LLPickerView.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 47BA6AF3FC0322EF22638A335C527C51 /* QCloudPingTester.m in Sources */ = {isa = PBXBuildFile; fileRef = 90221918B2D60B3483BFF2542B9C7C7D /* QCloudPingTester.m */; }; + 47E27473C6C3DAD243E76BBB9FAAC38A /* YYModel.h in Headers */ = {isa = PBXBuildFile; fileRef = 6FCDDE0A5CF0D363E689FA4FCA630498 /* YYModel.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 47FBCA188545B898AB5EEC31E3E5E680 /* YBIBIconManager.h in Headers */ = {isa = PBXBuildFile; fileRef = C53F402394FD2693DBC50E446144B0DC /* YBIBIconManager.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 482E3AC419EEB9AF9AD03488FCEB05F1 /* NSDate+QCloudInternetDateTime.h in Headers */ = {isa = PBXBuildFile; fileRef = 4FB9ED5CF4B69C84A0B8EFA08054C3D8 /* NSDate+QCloudInternetDateTime.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 483BBAE65CFE0E6411AB0C23156078D7 /* QCloudCOSXMLEndPoint.m in Sources */ = {isa = PBXBuildFile; fileRef = A31C43698997610ED8F05DEC34A4492D /* QCloudCOSXMLEndPoint.m */; }; + 4851743937896F7DBEC0BCC7A878682C /* NSObject+RACDeallocating.h in Headers */ = {isa = PBXBuildFile; fileRef = 66B5F51CA24193FBCE780EDC93E423BE /* NSObject+RACDeallocating.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 485B5F5CCDAEE9F80EBE99D02B17AEAD /* dec.c in Sources */ = {isa = PBXBuildFile; fileRef = 2B4D62F83F7E039BA5324693A012705B /* dec.c */; settings = {COMPILER_FLAGS = "-D_THREAD_SAFE -fno-objc-arc"; }; }; + 48B6F70763817CE2BDFB77E4D69A538D /* LLSandboxImagePreviewController.h in Headers */ = {isa = PBXBuildFile; fileRef = 2AF782A50913D8F3025AA322B252D419 /* LLSandboxImagePreviewController.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 48BCC8312F8AA14F0646E0B7668FEDE0 /* LLEntryStyleModel.h in Headers */ = {isa = PBXBuildFile; fileRef = CFE2AE2DCDFB03CB52175AB2EC84E409 /* LLEntryStyleModel.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 48D87ECC621E39931B8C68BFA214F49F /* SDInternalMacros.h in Headers */ = {isa = PBXBuildFile; fileRef = 05799F519CA6516CC4DB8F360246FC40 /* SDInternalMacros.h */; settings = {ATTRIBUTES = (Private, ); }; }; 48DC1676BB4B5F1BCC17DD4CAE4A6463 /* TUIMenuCellData.m in Sources */ = {isa = PBXBuildFile; fileRef = 168C9552835213EFD4E946DF7A3A5E4A /* TUIMenuCellData.m */; }; - 48E73B4A56D8180A4EB644E42BA6AFD1 /* LLThemeColor.h in Headers */ = {isa = PBXBuildFile; fileRef = E8952280EC5E897F2BAC8CB258E55431 /* LLThemeColor.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 48F72262D21723E25AF109697B3B8406 /* random_utils.c in Sources */ = {isa = PBXBuildFile; fileRef = B07D4AC05AFCE457EBF91DB86BEBF821 /* random_utils.c */; settings = {COMPILER_FLAGS = "-D_THREAD_SAFE -fno-objc-arc"; }; }; + 48E73B4A56D8180A4EB644E42BA6AFD1 /* LLThemeColor.h in Headers */ = {isa = PBXBuildFile; fileRef = B8D1EBF59A6C0A03F9590D0AA698BCB2 /* LLThemeColor.h */; settings = {ATTRIBUTES = (Public, ); }; }; 491A7AE32415DC4241A1B4A50EBD486F /* TUIReplyMessageCell.h in Headers */ = {isa = PBXBuildFile; fileRef = A97AA042E83682CF2E8E476B6F22C3F4 /* TUIReplyMessageCell.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 4938511D8412EFA06AFCB9D8DD0F4F77 /* YBIBCollectionViewLayout.h in Headers */ = {isa = PBXBuildFile; fileRef = E5593FF637FE8067AE3574CA666F390D /* YBIBCollectionViewLayout.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 4939661619DF978FFE36444D2DAD2C49 /* LLScreenshotSelectorView.m in Sources */ = {isa = PBXBuildFile; fileRef = FEF5521913D41FD970482B0C32AECA39 /* LLScreenshotSelectorView.m */; }; - 49445CE967F63922E2048455DCE72758 /* YBIBInteractionProfile.h in Headers */ = {isa = PBXBuildFile; fileRef = 9730A5C0ABE243EAF832C27088081C37 /* YBIBInteractionProfile.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 4938511D8412EFA06AFCB9D8DD0F4F77 /* YBIBCollectionViewLayout.h in Headers */ = {isa = PBXBuildFile; fileRef = 0E20FE5F3C2DB8183FD45A978EFA50AF /* YBIBCollectionViewLayout.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 4939661619DF978FFE36444D2DAD2C49 /* LLScreenshotSelectorView.m in Sources */ = {isa = PBXBuildFile; fileRef = 14E7A02B510897AEBABF642888FD2C3E /* LLScreenshotSelectorView.m */; }; + 49445CE967F63922E2048455DCE72758 /* YBIBInteractionProfile.h in Headers */ = {isa = PBXBuildFile; fileRef = C7B13D01E3DCCAB0D2C37A8E95512A72 /* YBIBInteractionProfile.h */; settings = {ATTRIBUTES = (Public, ); }; }; 49535EBE8444A47CD8250B9CD9DE0ED5 /* TUIMergeMessageListController_Minimalist.m in Sources */ = {isa = PBXBuildFile; fileRef = 1597DCC4A53580299802EB3744A88E1C /* TUIMergeMessageListController_Minimalist.m */; }; - 4958D2D0D6DC37810FAB1105D10E90D3 /* UITextField+RACSignalSupport.h in Headers */ = {isa = PBXBuildFile; fileRef = E8F52380927FAB122930062DC59EF5C1 /* UITextField+RACSignalSupport.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 49646510A30950028E3B71670EEB7439 /* UIImage+Metadata.m in Sources */ = {isa = PBXBuildFile; fileRef = 9F2A7C57E0AC18FA56339A30A4FAB05F /* UIImage+Metadata.m */; }; + 4958D2D0D6DC37810FAB1105D10E90D3 /* UITextField+RACSignalSupport.h in Headers */ = {isa = PBXBuildFile; fileRef = F7041DEF3DD898FD8DFBD1B29FE1A075 /* UITextField+RACSignalSupport.h */; settings = {ATTRIBUTES = (Public, ); }; }; 496BCDBB0A4A8EBD4D476750B85492EF /* TUIGroupChatViewController.h in Headers */ = {isa = PBXBuildFile; fileRef = 524BFF28768667EEC1C6E0B822637EFB /* TUIGroupChatViewController.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 49900106BEFC9C1BEB3E96558C0C4AE8 /* mz_zip.h in Headers */ = {isa = PBXBuildFile; fileRef = 3B93AE270291BC5CC9DBCD6392AF31F9 /* mz_zip.h */; settings = {ATTRIBUTES = (Project, ); }; }; - 4990936139BF46A3888CBF58360A7251 /* UIView+SDExtension.h in Headers */ = {isa = PBXBuildFile; fileRef = 7069E937A9C3761B8EA9EF80099920B0 /* UIView+SDExtension.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 49900106BEFC9C1BEB3E96558C0C4AE8 /* mz_zip.h in Headers */ = {isa = PBXBuildFile; fileRef = E0BD1F678701DC08BABBD2969B0D5B1A /* mz_zip.h */; settings = {ATTRIBUTES = (Project, ); }; }; + 4990936139BF46A3888CBF58360A7251 /* UIView+SDExtension.h in Headers */ = {isa = PBXBuildFile; fileRef = B34B9D4244B907E89430EFBB1D393221 /* UIView+SDExtension.h */; settings = {ATTRIBUTES = (Public, ); }; }; 49AB2C8699E40DBB93A915BCE25CE13F /* TUIMessageCellLayout.m in Sources */ = {isa = PBXBuildFile; fileRef = C68412B6CE6995367EE57E8BBDEB57E9 /* TUIMessageCellLayout.m */; }; - 49B416817C87FE85C084BFAA84214500 /* LLPinAnnotationView.h in Headers */ = {isa = PBXBuildFile; fileRef = A5A9D8693E9A5C2D37A5FAE77FFE77AC /* LLPinAnnotationView.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 49D24B6BE985C2DB4FEC4E167BA95374 /* UIImage+LL_Utils.h in Headers */ = {isa = PBXBuildFile; fileRef = 67DBD6F82CD4F6399E94E7F5997928D7 /* UIImage+LL_Utils.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 49B416817C87FE85C084BFAA84214500 /* LLPinAnnotationView.h in Headers */ = {isa = PBXBuildFile; fileRef = 23785D638D2B27E21D5B4CCA02DDDB07 /* LLPinAnnotationView.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 49D24B6BE985C2DB4FEC4E167BA95374 /* UIImage+LL_Utils.h in Headers */ = {isa = PBXBuildFile; fileRef = DEDE4932D792B0DF7288337D438BD858 /* UIImage+LL_Utils.h */; settings = {ATTRIBUTES = (Public, ); }; }; 4A1485CD7235E932D750E52E8C043C9C /* TUIInputController_Minimalist.m in Sources */ = {isa = PBXBuildFile; fileRef = 8E1A15F98848EBCBE15138BA0D390465 /* TUIInputController_Minimalist.m */; }; 4A17B86AE3D5181086E0C71149E9EE20 /* TUIFileMessageCell_Minimalist.m in Sources */ = {isa = PBXBuildFile; fileRef = 4CB6583A6C803E782602C115004BEEC6 /* TUIFileMessageCell_Minimalist.m */; }; - 4A240539859DE81874149E2DAB8852EF /* YBIBUtilities.h in Headers */ = {isa = PBXBuildFile; fileRef = E8C4DFAD7C4FD6624BB368350F29137D /* YBIBUtilities.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 4A299728D98F189E83460EF4034FB7C5 /* BRPickerView-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = DD2CFF3328286C38338F8C9AA42A87B5 /* BRPickerView-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 4A240539859DE81874149E2DAB8852EF /* YBIBUtilities.h in Headers */ = {isa = PBXBuildFile; fileRef = 6EF3DB55129CE8E6AC2242B6C689909B /* YBIBUtilities.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 4A299728D98F189E83460EF4034FB7C5 /* BRPickerView-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = 3F5ACF065BB91F5338720FFACC00E1EB /* BRPickerView-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; 4A2D7878579537881DD3859B3359F702 /* CoreGraphics.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 58B0067B68C01AB3887A364BABB15A12 /* CoreGraphics.framework */; }; - 4A33DEAEFE6C2069DB251140B9B3C7CD /* SDImageCodersManager.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B6F65CFB2AA3AA19676C6EC059CC8C8 /* SDImageCodersManager.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 4A35BA7223526521D4985C85D38D1AD2 /* LLSandboxHelper.m in Sources */ = {isa = PBXBuildFile; fileRef = 2109E0B0456FB1B07A2362495F92B4DC /* LLSandboxHelper.m */; }; + 4A35BA7223526521D4985C85D38D1AD2 /* LLSandboxHelper.m in Sources */ = {isa = PBXBuildFile; fileRef = FAE1D320A54FB06110638D3EA7B561C4 /* LLSandboxHelper.m */; }; 4A5F3840CDDEB418BAF448615442C13E /* TUIGroupInfoController_Minimalist.m in Sources */ = {isa = PBXBuildFile; fileRef = CEC2619022B1476C1306B6A4B8DCA5BB /* TUIGroupInfoController_Minimalist.m */; }; - 4A6BDFE68B609181E9925EAC3BA76536 /* UIImage+LL_Utils.m in Sources */ = {isa = PBXBuildFile; fileRef = FFB5B5D161A1A751B7ED1F6CAA916399 /* UIImage+LL_Utils.m */; }; + 4A616B361623FDB0D094D1B02D73DBC4 /* QCloudUniversalFixedPath.m in Sources */ = {isa = PBXBuildFile; fileRef = 56918E70C10E441DD9427320942AEE1B /* QCloudUniversalFixedPath.m */; }; + 4A6BDFE68B609181E9925EAC3BA76536 /* UIImage+LL_Utils.m in Sources */ = {isa = PBXBuildFile; fileRef = 9F9BBADC5F6AAAEDBB32F6A5FD9876AE /* UIImage+LL_Utils.m */; }; + 4A6F2964F297C2A3F4A5D187C4DA8C76 /* alpha_enc.c in Sources */ = {isa = PBXBuildFile; fileRef = 9405B7EE37C2626E0FAB6A4D24BAF3BB /* alpha_enc.c */; settings = {COMPILER_FLAGS = "-D_THREAD_SAFE -fno-objc-arc"; }; }; + 4A76784AD10E5500AA2812FEB89E6A37 /* picture_rescale_enc.c in Sources */ = {isa = PBXBuildFile; fileRef = 5B183CC5E8148072B8DA532DAA6D1F13 /* picture_rescale_enc.c */; settings = {COMPILER_FLAGS = "-D_THREAD_SAFE -fno-objc-arc"; }; }; 4A76BCEC415E1FA5963BE7A673613BA7 /* TUIGroupCreatedCell_Minimalist.m in Sources */ = {isa = PBXBuildFile; fileRef = 098C782DD1EFC66245792CE8C1854462 /* TUIGroupCreatedCell_Minimalist.m */; }; - 4A96DE78037837FC5DAA2D2E1FA4BAFE /* bit_reader_utils.c in Sources */ = {isa = PBXBuildFile; fileRef = B708C0DD3E89131594A6BE90E31BC52A /* bit_reader_utils.c */; settings = {COMPILER_FLAGS = "-D_THREAD_SAFE -fno-objc-arc"; }; }; - 4ACB6A663BCFB08A0A8158F6463CF563 /* IQUIScrollView+Additions.h in Headers */ = {isa = PBXBuildFile; fileRef = 3053110246C5E8573DD046F41040C699 /* IQUIScrollView+Additions.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 4ACD02D169C56FB246FE474E506D8686 /* OSSRestoreObjectResult.m in Sources */ = {isa = PBXBuildFile; fileRef = FB4B90018C3134EDF41142C70D7ABD98 /* OSSRestoreObjectResult.m */; }; + 4ACB6A663BCFB08A0A8158F6463CF563 /* IQUIScrollView+Additions.h in Headers */ = {isa = PBXBuildFile; fileRef = 82994E7C083EEACEA413FDE326F454A0 /* IQUIScrollView+Additions.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 4ACD02D169C56FB246FE474E506D8686 /* OSSRestoreObjectResult.m in Sources */ = {isa = PBXBuildFile; fileRef = 3D41F48683FCC1EDA89D903FF0965373 /* OSSRestoreObjectResult.m */; }; 4AD23AFFF44958856EC47FB0A80C4C29 /* TUIImageMessageCell.m in Sources */ = {isa = PBXBuildFile; fileRef = C79E6E3BEBEC51A2C585F5364070A8B4 /* TUIImageMessageCell.m */; }; 4AF1234A66EF23D20DE504C674F94BED /* TUIConversationSelectBaseDataProvider.h in Headers */ = {isa = PBXBuildFile; fileRef = 921D0BB999A8CEDFA647B19789344E63 /* TUIConversationSelectBaseDataProvider.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 4AF963104FA28596E23535551D37E42A /* UIView+TUIToast.m in Sources */ = {isa = PBXBuildFile; fileRef = B7AC52C17666EC6525CFE7E07F4A589A /* UIView+TUIToast.m */; }; - 4B0E74AAAEF19EB9CC3EC2321C25EACE /* UIImage+YYWebImage.h in Headers */ = {isa = PBXBuildFile; fileRef = FDD7FD54D966647F8441CF24F69FDEE4 /* UIImage+YYWebImage.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 4B1BA0258986F5F4A8F8E2BB3459B2B1 /* LLFilterOtherView.h in Headers */ = {isa = PBXBuildFile; fileRef = 23299C366F15C247D63EF849DF61EDC9 /* LLFilterOtherView.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 4B1DC079E6520394036A9CDBCC727A8B /* UIButton+LL_Utils.m in Sources */ = {isa = PBXBuildFile; fileRef = 8622A2A4D3CB35246611FF5345E8E9A0 /* UIButton+LL_Utils.m */; }; - 4B6B56257FE9E422AA10730DDF5DBD16 /* rescaler.c in Sources */ = {isa = PBXBuildFile; fileRef = 0E02A266CABD48A4C5AE6F3868BB268B /* rescaler.c */; settings = {COMPILER_FLAGS = "-D_THREAD_SAFE -fno-objc-arc"; }; }; - 4B93B7FC73D63A6B2ACB559E4D283C08 /* aos_crc64.h in Headers */ = {isa = PBXBuildFile; fileRef = FB84CEF88ADAF5600824EBA93E9EF256 /* aos_crc64.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 4BBF9011CBE38EC8789904F8F35B5317 /* neon.h in Headers */ = {isa = PBXBuildFile; fileRef = 738484531F2AA008CB4B278289424BAD /* neon.h */; settings = {ATTRIBUTES = (Project, ); }; }; - 4BCA5F8C6F0C73C76E656BA0E3EA858F /* RACTargetQueueScheduler.m in Sources */ = {isa = PBXBuildFile; fileRef = A5CAB58598954B709EB1F0AB68D95D4F /* RACTargetQueueScheduler.m */; }; - 4BF22F80955EE8342018CD36A93B1A76 /* UIGestureRecognizer+VAPUtil.m in Sources */ = {isa = PBXBuildFile; fileRef = 3DD727C4E06EB5359A3C9FCF1491E22B /* UIGestureRecognizer+VAPUtil.m */; }; + 4B0E74AAAEF19EB9CC3EC2321C25EACE /* UIImage+YYWebImage.h in Headers */ = {isa = PBXBuildFile; fileRef = D74E609EC1715A674FEB95A5A9DA3713 /* UIImage+YYWebImage.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 4B1BA0258986F5F4A8F8E2BB3459B2B1 /* LLFilterOtherView.h in Headers */ = {isa = PBXBuildFile; fileRef = 45F9170B8BFDE56BEA0643989DB74548 /* LLFilterOtherView.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 4B1DC079E6520394036A9CDBCC727A8B /* UIButton+LL_Utils.m in Sources */ = {isa = PBXBuildFile; fileRef = 3965B84AE43C0F8234D384603B14D8C6 /* UIButton+LL_Utils.m */; }; + 4B772CFA8555C2FD25F938C3D0252A0F /* quant_levels_dec_utils.h in Headers */ = {isa = PBXBuildFile; fileRef = D36D1075AA0CC80AD328D2A389227227 /* quant_levels_dec_utils.h */; settings = {ATTRIBUTES = (Project, ); }; }; + 4B93B7FC73D63A6B2ACB559E4D283C08 /* aos_crc64.h in Headers */ = {isa = PBXBuildFile; fileRef = F204C8E9145F57163F6EE85A499EA11A /* aos_crc64.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 4BBAEC8FBF2B5E2C4D9A3592B64F8BB6 /* UIImage+MemoryCacheCost.h in Headers */ = {isa = PBXBuildFile; fileRef = A01F184A36753F1D2B521D2E3A311EFC /* UIImage+MemoryCacheCost.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 4BCA5F8C6F0C73C76E656BA0E3EA858F /* RACTargetQueueScheduler.m in Sources */ = {isa = PBXBuildFile; fileRef = 7A232D07C7D89F3CFB0596B6AFA9312C /* RACTargetQueueScheduler.m */; }; + 4BD7EA86C2ABEC23D4BE43CE12BDC1F5 /* cost_sse2.c in Sources */ = {isa = PBXBuildFile; fileRef = C76964ED7C150134F52382927DD30E44 /* cost_sse2.c */; settings = {COMPILER_FLAGS = "-D_THREAD_SAFE -fno-objc-arc"; }; }; + 4BF22F80955EE8342018CD36A93B1A76 /* UIGestureRecognizer+VAPUtil.m in Sources */ = {isa = PBXBuildFile; fileRef = 33DA828E554084B88BA4798FDD90C02A /* UIGestureRecognizer+VAPUtil.m */; }; 4BFBD4EA89FFBE8F3C2D8A47B9D46DAF /* TUIConversationListDataProvider_Minimalist.m in Sources */ = {isa = PBXBuildFile; fileRef = 2E545F039352166CA06FD93C126DC4ED /* TUIConversationListDataProvider_Minimalist.m */; }; + 4BFCB69C67C125EA6C0B10FA9105A2FE /* QCloudLoaderManager.h in Headers */ = {isa = PBXBuildFile; fileRef = 12F1A2F10AC296A844DA752039C443B5 /* QCloudLoaderManager.h */; settings = {ATTRIBUTES = (Public, ); }; }; 4C10B9194DBC6BF78E6EA3CBB007C8D5 /* TUIConversation_Minimalist.h in Headers */ = {isa = PBXBuildFile; fileRef = AB95361BE7782B6A665DBA1DED9DBE5C /* TUIConversation_Minimalist.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 4C23DA652BC41C6750BCC6C55A37229B /* NSDictionary+YYAdd.m in Sources */ = {isa = PBXBuildFile; fileRef = 7E2EE826FEA94FAC5DF3646BE7D9FA18 /* NSDictionary+YYAdd.m */; }; - 4C3088CEE33D14BD99C1C1E0302E5748 /* SVGAAudioEntity.m in Sources */ = {isa = PBXBuildFile; fileRef = 84BE16B0E59D1167B51A83D28AE94134 /* SVGAAudioEntity.m */; }; + 4C23DA652BC41C6750BCC6C55A37229B /* NSDictionary+YYAdd.m in Sources */ = {isa = PBXBuildFile; fileRef = AC38372D2FD6828F577098071390850D /* NSDictionary+YYAdd.m */; }; + 4C3088CEE33D14BD99C1C1E0302E5748 /* SVGAAudioEntity.m in Sources */ = {isa = PBXBuildFile; fileRef = 3EFB5D80BCEF79FD344A2A41703512CD /* SVGAAudioEntity.m */; }; 4C33D020E0D3174E4990496D34E03800 /* TUIFaceMessageCell_Minimalist.h in Headers */ = {isa = PBXBuildFile; fileRef = 24A1EEE1269823A6363186D2C76AB03A /* TUIFaceMessageCell_Minimalist.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 4C377BD081E90FA3F09999EE7C07AEE4 /* UIView+TUILayout.h in Headers */ = {isa = PBXBuildFile; fileRef = 0BD3A560E72C86BABE5F7CC27E62D459 /* UIView+TUILayout.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 4C56F7AF9878AFF95DAC8F80BC61D4EE /* UIImage+ForceDecode.m in Sources */ = {isa = PBXBuildFile; fileRef = 38B44D679DFCCC7F57518443D86AFF4E /* UIImage+ForceDecode.m */; }; 4C652DF3EC0F0F39B29287E72864FC11 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = F91075A92425F75F02E0E1C8D455AF79 /* Foundation.framework */; }; - 4C8A5ADD06D2DFC9E7FA2A1CA9DD565A /* mz_strm_pkcrypt.c in Sources */ = {isa = PBXBuildFile; fileRef = 96C1FAD7D1DCED5CCFADA9DB19A77B86 /* mz_strm_pkcrypt.c */; }; - 4C8C34A09D61A3881DFB1A544A2CA2A5 /* JXCategoryFactory.h in Headers */ = {isa = PBXBuildFile; fileRef = B5A0554B0D24867830340AC05E6BAF2B /* JXCategoryFactory.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 4C6C5102E6FBFDDC8CB872E8F4B76EE3 /* format_constants.h in Headers */ = {isa = PBXBuildFile; fileRef = 8AD3CCB72F8AB9C0CF20BFCC7959C835 /* format_constants.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 4C8A5ADD06D2DFC9E7FA2A1CA9DD565A /* mz_strm_pkcrypt.c in Sources */ = {isa = PBXBuildFile; fileRef = 605DDB370CA419BC1C7BDF52982DE3C5 /* mz_strm_pkcrypt.c */; }; + 4C8C34A09D61A3881DFB1A544A2CA2A5 /* JXCategoryFactory.h in Headers */ = {isa = PBXBuildFile; fileRef = ECBBAB4283E101197919F9885D7896FF /* JXCategoryFactory.h */; settings = {ATTRIBUTES = (Public, ); }; }; 4C9D6174AFC6F1D99D4496A6114E1E2F /* TUIBaseMessageController_Minimalist.m in Sources */ = {isa = PBXBuildFile; fileRef = 25B480B82BEE1C4C543329E58D895692 /* TUIBaseMessageController_Minimalist.m */; }; - 4CB0B49CF8894021997B219A872FF63A /* LLWindowManager+Crash.h in Headers */ = {isa = PBXBuildFile; fileRef = 2930EC58D1B8E09552F6807D376C0EE6 /* LLWindowManager+Crash.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 4CB0B49CF8894021997B219A872FF63A /* LLWindowManager+Crash.h in Headers */ = {isa = PBXBuildFile; fileRef = 21F6E7E34006BB346311534A7F4A1C99 /* LLWindowManager+Crash.h */; settings = {ATTRIBUTES = (Public, ); }; }; 4CD23141D667F76078A9639E94DD6380 /* PhotosUI.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = B27711EA0041B232D4559EFE42901D38 /* PhotosUI.framework */; }; - 4CDCF1EA49430DFAAEAD07828A8B355B /* backward_references_enc.c in Sources */ = {isa = PBXBuildFile; fileRef = 0B823B00FB1D408CA71ECBAC8D7AC4D6 /* backward_references_enc.c */; settings = {COMPILER_FLAGS = "-D_THREAD_SAFE -fno-objc-arc"; }; }; - 4CE3820956EE3E3F1154149D0C714396 /* ioapi.h in Headers */ = {isa = PBXBuildFile; fileRef = 0D0C13AD4F2D4252E25CC5852045C615 /* ioapi.h */; settings = {ATTRIBUTES = (Project, ); }; }; + 4CF7A7454E9437E159596D289400E51E /* QCloudNetworkingAPI.h in Headers */ = {isa = PBXBuildFile; fileRef = F0ADA66445721AE5087E8E87CCCE5940 /* QCloudNetworkingAPI.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 4D0C286F6CB54066F4AFDFC6DD34ED2B /* NSData+ImageContentType.m in Sources */ = {isa = PBXBuildFile; fileRef = B69E322B6DF26946B4E37955EAB6FDDD /* NSData+ImageContentType.m */; }; 4D0FABC6E007BD2783741E1AB9C2CBBF /* TUIConversationSelectBaseDataProvider.m in Sources */ = {isa = PBXBuildFile; fileRef = C64E3E71C1C975F9D1192BD7D8140E75 /* TUIConversationSelectBaseDataProvider.m */; }; - 4D600B32B84B759049AD2EB88ADDC5FE /* SDDisplayLink.h in Headers */ = {isa = PBXBuildFile; fileRef = 91BB89F0F1F8F5DCA244319672FBF412 /* SDDisplayLink.h */; settings = {ATTRIBUTES = (Private, ); }; }; - 4D9A893753CC130AF8D4DDFEB7A3033B /* LLTool.m in Sources */ = {isa = PBXBuildFile; fileRef = 102DA00FD2F50042CE3DF1FBA0E891A6 /* LLTool.m */; }; + 4D332E74D41BFCDF7A46D96731AEA16B /* yuv.h in Headers */ = {isa = PBXBuildFile; fileRef = 7BCF3811DF71E81D97FE5E9692B0FE7C /* yuv.h */; settings = {ATTRIBUTES = (Project, ); }; }; + 4D9A893753CC130AF8D4DDFEB7A3033B /* LLTool.m in Sources */ = {isa = PBXBuildFile; fileRef = 029B62B6D64A7011C7493A65ED7F7869 /* LLTool.m */; }; 4DB14E87A12A2F926168E830BCC0F3C2 /* TUIResponderTextView.m in Sources */ = {isa = PBXBuildFile; fileRef = 3291209D4A48AC0FE68A52980DFA6F6D /* TUIResponderTextView.m */; }; - 4DBF1E78AFA53774720E63DB393629D6 /* vp8_dec.h in Headers */ = {isa = PBXBuildFile; fileRef = 5B8401A8C9707D91B3E1F16D573A573F /* vp8_dec.h */; settings = {ATTRIBUTES = (Project, ); }; }; - 4DCA75BFE1558CE59DFC56607E49B3D2 /* MJRefreshConfig.h in Headers */ = {isa = PBXBuildFile; fileRef = 360A901FBA1AF81D2E9A0E00CB0DBA9A /* MJRefreshConfig.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 4DDCF91B0E69078FDD19EEB2730E2815 /* QGAnimatedImageDecodeConfig.m in Sources */ = {isa = PBXBuildFile; fileRef = 85380B7714F717D36AC2672E9BA69380 /* QGAnimatedImageDecodeConfig.m */; }; - 4DED7675C722438D2061C2D1900A1C82 /* MQTTSessionManager.m in Sources */ = {isa = PBXBuildFile; fileRef = CEF8EB16640BF42DD91C5EF839BF29A1 /* MQTTSessionManager.m */; }; + 4DCA75BFE1558CE59DFC56607E49B3D2 /* MJRefreshConfig.h in Headers */ = {isa = PBXBuildFile; fileRef = 7D1124643FAA5580FABB3C1211801FAA /* MJRefreshConfig.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 4DCF85817926F4B2DEB088464C9B6A02 /* SDAsyncBlockOperation.h in Headers */ = {isa = PBXBuildFile; fileRef = 07C2B7657EBE23C1400CE1F43EF5AF7E /* SDAsyncBlockOperation.h */; settings = {ATTRIBUTES = (Private, ); }; }; + 4DDCF91B0E69078FDD19EEB2730E2815 /* QGAnimatedImageDecodeConfig.m in Sources */ = {isa = PBXBuildFile; fileRef = 4C7865C77DD9DB60607E579BC0758D5E /* QGAnimatedImageDecodeConfig.m */; }; + 4DEBB258BC46688834120D211CE0CD70 /* QCloudBizHTTPRequest.m in Sources */ = {isa = PBXBuildFile; fileRef = 65A9BD6BC6509EAC9B75926E5C23C815 /* QCloudBizHTTPRequest.m */; }; + 4DED7675C722438D2061C2D1900A1C82 /* MQTTSessionManager.m in Sources */ = {isa = PBXBuildFile; fileRef = D628CF60CF16B25D244CB5DA92F977B8 /* MQTTSessionManager.m */; }; + 4DFA6C0293B2E2B592B1B4C49E30DD27 /* rescaler_utils.c in Sources */ = {isa = PBXBuildFile; fileRef = DD899567E197BDD657A67C60DB038D7B /* rescaler_utils.c */; settings = {COMPILER_FLAGS = "-D_THREAD_SAFE -fno-objc-arc"; }; }; 4DFB7CDC482C045F75938D2C0F3F94E9 /* TUIFoldListViewController_Minimalist.h in Headers */ = {isa = PBXBuildFile; fileRef = BA6033E0DA62139833B7CF1C3B444B05 /* TUIFoldListViewController_Minimalist.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 4E03C151E0D457E77AD80400343A9139 /* YYTextParser.m in Sources */ = {isa = PBXBuildFile; fileRef = FA195CEE3BE39FB7579070EAA2945A50 /* YYTextParser.m */; }; + 4E03C151E0D457E77AD80400343A9139 /* YYTextParser.m in Sources */ = {isa = PBXBuildFile; fileRef = E1E6299D85E07E7F127123F64CF648C5 /* YYTextParser.m */; }; 4E1DF4B8689139F1DE11C3A98BBFB723 /* TUIMergeReplyQuoteView.m in Sources */ = {isa = PBXBuildFile; fileRef = A17158C33086A84D53428C9242A1CB4F /* TUIMergeReplyQuoteView.m */; }; - 4E350CF6C7EDE026E45B22D70B8C782A /* OSSServiceSignature.h in Headers */ = {isa = PBXBuildFile; fileRef = 6E6349754791444BA8338A47A5C47392 /* OSSServiceSignature.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 4E350CF6C7EDE026E45B22D70B8C782A /* OSSServiceSignature.h in Headers */ = {isa = PBXBuildFile; fileRef = 8987F2680025821384582D94FD0210C3 /* OSSServiceSignature.h */; settings = {ATTRIBUTES = (Public, ); }; }; 4E55AB4F35CDAA52A30B055371B14E81 /* TUIUserAuthorizationCenter.m in Sources */ = {isa = PBXBuildFile; fileRef = 23A40EB4AA945E58D683522C7267A6BA /* TUIUserAuthorizationCenter.m */; }; - 4E56BA148170B3A6E7FA6D312B06C784 /* mz_zip_rw.h in Headers */ = {isa = PBXBuildFile; fileRef = 7C6E5DAB982BC66D49DFAF9F20D7E984 /* mz_zip_rw.h */; settings = {ATTRIBUTES = (Project, ); }; }; - 4E64E3ACB0070325287252B917BA9EF3 /* NSString+RACSequenceAdditions.h in Headers */ = {isa = PBXBuildFile; fileRef = F1D2B99C73E8D762A9AB1CBA3A98A3EE /* NSString+RACSequenceAdditions.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 4E779C8FB578F43A334967391F023F4D /* UIFont+YYAdd.h in Headers */ = {isa = PBXBuildFile; fileRef = 6759BC0F35925833D132DC61E26AAB36 /* UIFont+YYAdd.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 4E56BA148170B3A6E7FA6D312B06C784 /* mz_zip_rw.h in Headers */ = {isa = PBXBuildFile; fileRef = 1FD47CF6F11864745940F976B14CC857 /* mz_zip_rw.h */; settings = {ATTRIBUTES = (Project, ); }; }; + 4E64E3ACB0070325287252B917BA9EF3 /* NSString+RACSequenceAdditions.h in Headers */ = {isa = PBXBuildFile; fileRef = B4450DA054D5D02EF98C692E495AC1E8 /* NSString+RACSequenceAdditions.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 4E779C8FB578F43A334967391F023F4D /* UIFont+YYAdd.h in Headers */ = {isa = PBXBuildFile; fileRef = 8133891E2F2C6C6C2FA738BA352A7800 /* UIFont+YYAdd.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 4E7B49A5C1D207415A4FFED77174D298 /* tree_enc.c in Sources */ = {isa = PBXBuildFile; fileRef = CBD15162B14078B79CAC3A2581747109 /* tree_enc.c */; settings = {COMPILER_FLAGS = "-D_THREAD_SAFE -fno-objc-arc"; }; }; 4E8CD1E6DAFED6F202F984ECB2157F1C /* TUICommonGroupInfoCellData.m in Sources */ = {isa = PBXBuildFile; fileRef = 3AA156D5EB13C201C0D46B8AAEB9F7D0 /* TUICommonGroupInfoCellData.m */; }; - 4E9A2EAFAE484638BDAAE65A16D77FBC /* OSSGetBucketInfoResult.h in Headers */ = {isa = PBXBuildFile; fileRef = B5C17A4B17EA0D8B7BA709B8B341F4B7 /* OSSGetBucketInfoResult.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 4EB28B62136A6E02726C50DD45B3B3A4 /* GPBDictionary_PackagePrivate.h in Headers */ = {isa = PBXBuildFile; fileRef = 899F1FD672DE4DDA4CF8839564486D0F /* GPBDictionary_PackagePrivate.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 4EC2962339DCDEAA3554795F8737A175 /* YBIBToolViewHandler.h in Headers */ = {isa = PBXBuildFile; fileRef = 8107B3A917F377B3D51773067E1849BC /* YBIBToolViewHandler.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 4EC538C18FE58347BB34E572C98EA57F /* webp_dec.c in Sources */ = {isa = PBXBuildFile; fileRef = 1162671AF59CA6F029CFD383A73B0FCD /* webp_dec.c */; settings = {COMPILER_FLAGS = "-D_THREAD_SAFE -fno-objc-arc"; }; }; - 4ECE7F80A917130DE4045E25D741EAF9 /* JXCategoryTitleCellModel.m in Sources */ = {isa = PBXBuildFile; fileRef = 932104682567C1662DFE0661EAD36CD9 /* JXCategoryTitleCellModel.m */; }; - 4ED8D4C89D65CD9BAFF98BA1EA8543BE /* RACPassthroughSubscriber.m in Sources */ = {isa = PBXBuildFile; fileRef = CDCDFDB506B6E3439FC21785865FEE77 /* RACPassthroughSubscriber.m */; }; - 4EDA035BE71627293C7714C6909D64BE /* Minizip.h in Headers */ = {isa = PBXBuildFile; fileRef = F131D70A08DA7A1945458B96F12F0165 /* Minizip.h */; settings = {ATTRIBUTES = (Project, ); }; }; - 4EDF9B52649E89CEE7077D9AFAA4DB54 /* LLRouter+ShortCut.m in Sources */ = {isa = PBXBuildFile; fileRef = DC1A77982A27CDBDD3B94E53E179D922 /* LLRouter+ShortCut.m */; }; - 4F052DD4F5DAD868B96F3AF8515D73F2 /* LLCrashComponent.h in Headers */ = {isa = PBXBuildFile; fileRef = 8A55DFE8F2E73912C7ECEEE2F781BCD5 /* LLCrashComponent.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 4F21D1074DD361FF6C2DD6B85EBFC845 /* TZPhotoPickerController.m in Sources */ = {isa = PBXBuildFile; fileRef = F57BACA3ED26B598E4855CAD9219E1D6 /* TZPhotoPickerController.m */; }; - 4F2506F20F6E778B71CC643C0C76F805 /* RACReplaySubject.m in Sources */ = {isa = PBXBuildFile; fileRef = A892A1CEE6B8E22EEB2402156B6B1376 /* RACReplaySubject.m */; }; - 4F56CCAE467C57BD8B5B288737AC80B4 /* YYTextEffectWindow.h in Headers */ = {isa = PBXBuildFile; fileRef = ACF3427E0422A2A0D3C12F8950AE1D33 /* YYTextEffectWindow.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 4F63479413D6B297C0ABD538DBCB0B6F /* LLMagnifier.h in Headers */ = {isa = PBXBuildFile; fileRef = 4ECD239C3C898255314335D24FF27D44 /* LLMagnifier.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 4E9A2EAFAE484638BDAAE65A16D77FBC /* OSSGetBucketInfoResult.h in Headers */ = {isa = PBXBuildFile; fileRef = EA7074CE7972C5E11D452EB1B3FD9A81 /* OSSGetBucketInfoResult.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 4EB28B62136A6E02726C50DD45B3B3A4 /* GPBDictionary_PackagePrivate.h in Headers */ = {isa = PBXBuildFile; fileRef = 320AD155944DBB52005BF56892A6FEA4 /* GPBDictionary_PackagePrivate.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 4EB5270F18F95C75648C0307F6EE1508 /* TUIConfig.m in Sources */ = {isa = PBXBuildFile; fileRef = 82E18AE901BF4AEF62F224E784ABC4F2 /* TUIConfig.m */; }; + 4EC2962339DCDEAA3554795F8737A175 /* YBIBToolViewHandler.h in Headers */ = {isa = PBXBuildFile; fileRef = A37B614CF84CCD73E5801E821D21B28F /* YBIBToolViewHandler.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 4ECE7F80A917130DE4045E25D741EAF9 /* JXCategoryTitleCellModel.m in Sources */ = {isa = PBXBuildFile; fileRef = D6E24392E00CCEFC1DE947C1D4BF8B71 /* JXCategoryTitleCellModel.m */; }; + 4ED8D4C89D65CD9BAFF98BA1EA8543BE /* RACPassthroughSubscriber.m in Sources */ = {isa = PBXBuildFile; fileRef = 934F3A0D5E9E6D51DA588C2F649A5ED9 /* RACPassthroughSubscriber.m */; }; + 4EDF9B52649E89CEE7077D9AFAA4DB54 /* LLRouter+ShortCut.m in Sources */ = {isa = PBXBuildFile; fileRef = F99187070AA578DCB648A8A3BE33A49C /* LLRouter+ShortCut.m */; }; + 4F052DD4F5DAD868B96F3AF8515D73F2 /* LLCrashComponent.h in Headers */ = {isa = PBXBuildFile; fileRef = C63D04F695E094AC6F3E69C41CCF0EA1 /* LLCrashComponent.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 4F21D1074DD361FF6C2DD6B85EBFC845 /* TZPhotoPickerController.m in Sources */ = {isa = PBXBuildFile; fileRef = 8742A82B8F18D5E7870DAF2CC7C4F5A7 /* TZPhotoPickerController.m */; }; + 4F2506F20F6E778B71CC643C0C76F805 /* RACReplaySubject.m in Sources */ = {isa = PBXBuildFile; fileRef = 6148E9DB32FE775F65B25614196D5C40 /* RACReplaySubject.m */; }; + 4F2CCD193D9212160142AB68255F5FD3 /* NSObject+QCloudModelTool.h in Headers */ = {isa = PBXBuildFile; fileRef = 54BF9B7902D6B1DB574ED8E8CA3C30DE /* NSObject+QCloudModelTool.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 4F44379331638A3F184CFC4CA824EB80 /* QCloudCLSLoggerOutput.m in Sources */ = {isa = PBXBuildFile; fileRef = 42DF17540226A843A3FBDBDD11A33387 /* QCloudCLSLoggerOutput.m */; }; + 4F559F7F72DC57452290FA625671F8AC /* QCloudCOSXMLUploadObjectRequest_Private.h in Headers */ = {isa = PBXBuildFile; fileRef = F7401CD28EFAD27F27D565659A105C93 /* QCloudCOSXMLUploadObjectRequest_Private.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 4F56CCAE467C57BD8B5B288737AC80B4 /* YYTextEffectWindow.h in Headers */ = {isa = PBXBuildFile; fileRef = A4A91C3F5D41EC11FEFE6B4BCE280F3D /* YYTextEffectWindow.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 4F63479413D6B297C0ABD538DBCB0B6F /* LLMagnifier.h in Headers */ = {isa = PBXBuildFile; fileRef = 08C1F598D6F39EDEB0A77CE60618639B /* LLMagnifier.h */; settings = {ATTRIBUTES = (Public, ); }; }; 4F7D89B07D7FA32B85DFB68894DFD64E /* TUITextMessageCell.h in Headers */ = {isa = PBXBuildFile; fileRef = 713008FB4851221DD57AC26416FAB3D2 /* TUITextMessageCell.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 4FB29944582C42A0936FC82B7D453C00 /* OSSGetObjectACLRequest.m in Sources */ = {isa = PBXBuildFile; fileRef = 58AD37709F39264790CB037A968FDA7D /* OSSGetObjectACLRequest.m */; }; - 4FB4C9B05D0EABEC410C04D2CBBCAE0A /* LyricLabel.swift in Sources */ = {isa = PBXBuildFile; fileRef = E188B8AEC86B133F5CDCF5D6FDC6E481 /* LyricLabel.swift */; }; - 4FC5757F84509D9CCD13D511D2CC6F6C /* OSSGetObjectACLResult.h in Headers */ = {isa = PBXBuildFile; fileRef = 339AA4E9A659007E44DBA93A7F85D1B5 /* OSSGetObjectACLResult.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 4FD3A83E20ED738668A362A6995D6404 /* lossless_mips_dsp_r2.c in Sources */ = {isa = PBXBuildFile; fileRef = 23A5DF27D4A72482918155DD0C42C5AE /* lossless_mips_dsp_r2.c */; settings = {COMPILER_FLAGS = "-D_THREAD_SAFE -fno-objc-arc"; }; }; - 4FD4E05B49A93E15C48DA3F38E4543E0 /* QGVAPWrapView.h in Headers */ = {isa = PBXBuildFile; fileRef = BF55E6F0ABCEE1F253156A83F4519758 /* QGVAPWrapView.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 4FE0E785F97144E411FCE8F30C51F7EA /* RACImmediateScheduler.m in Sources */ = {isa = PBXBuildFile; fileRef = ECACABDDF9CE533CDA75BC8C7715A10C /* RACImmediateScheduler.m */; }; + 4FA119DF461BADA8EBC6BBB9592FBBC3 /* SDWebImageDownloaderConfig.m in Sources */ = {isa = PBXBuildFile; fileRef = 8E181961FCB60B6D14994C2890037357 /* SDWebImageDownloaderConfig.m */; }; + 4FA971745EC3A2DD2047A1DF5CA4FD9D /* QCloudReachability.h in Headers */ = {isa = PBXBuildFile; fileRef = E1B0FF7FEFB496262922F978B707A91E /* QCloudReachability.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 4FB29944582C42A0936FC82B7D453C00 /* OSSGetObjectACLRequest.m in Sources */ = {isa = PBXBuildFile; fileRef = C1B44F7C84CE5F424E138473F02C948C /* OSSGetObjectACLRequest.m */; }; + 4FB4C9B05D0EABEC410C04D2CBBCAE0A /* LyricLabel.swift in Sources */ = {isa = PBXBuildFile; fileRef = C52D2D0B79D8CC5F558AD7293D3EA2F8 /* LyricLabel.swift */; }; + 4FC5757F84509D9CCD13D511D2CC6F6C /* OSSGetObjectACLResult.h in Headers */ = {isa = PBXBuildFile; fileRef = 4A5AF9B087E813547E706B45C3DFB7E1 /* OSSGetObjectACLResult.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 4FD4E05B49A93E15C48DA3F38E4543E0 /* QGVAPWrapView.h in Headers */ = {isa = PBXBuildFile; fileRef = 37AC3CD799DAF42B47FD31D0327DFB1A /* QGVAPWrapView.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 4FE0E785F97144E411FCE8F30C51F7EA /* RACImmediateScheduler.m in Sources */ = {isa = PBXBuildFile; fileRef = 319D22F892A6438A469F4F1F3B7F64AD /* RACImmediateScheduler.m */; }; 4FF226AAA981FF5CDF167EDE3C6B75C7 /* TUIVoiceReplyQuoteView_Minimalist.m in Sources */ = {isa = PBXBuildFile; fileRef = 8D80C05E653BCEE0BC386FDC6D64C15F /* TUIVoiceReplyQuoteView_Minimalist.m */; }; 5005432EAECE0BBCAE0487FB541489F7 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = F91075A92425F75F02E0E1C8D455AF79 /* Foundation.framework */; }; - 501C49DD62913B1F658EE2EEAD9129D2 /* UIWindow+LL_Utils.m in Sources */ = {isa = PBXBuildFile; fileRef = BD8D64FCE0985D5A7DCB94E0A3C17B1F /* UIWindow+LL_Utils.m */; }; + 501C49DD62913B1F658EE2EEAD9129D2 /* UIWindow+LL_Utils.m in Sources */ = {isa = PBXBuildFile; fileRef = 1E36624477B577760A70F5A7A72FF3F5 /* UIWindow+LL_Utils.m */; }; 50411ACB7EB2EBCA5165E81B2EFC18B8 /* TUICircleLodingView.m in Sources */ = {isa = PBXBuildFile; fileRef = C5B218CCE329321443E58C391C09F1DE /* TUICircleLodingView.m */; }; - 50559EFD7F12C78B1448D757DCC81218 /* RACGroupedSignal.m in Sources */ = {isa = PBXBuildFile; fileRef = F22C56B3D303A4D4DE652354074431CA /* RACGroupedSignal.m */; }; - 5058F069CE518B8C8C75101A0DE2B238 /* LLSandboxModel.h in Headers */ = {isa = PBXBuildFile; fileRef = 21D150A1E98C12FF95AA2A0E954B188A /* LLSandboxModel.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 505E2ECAC3DE1C62B5FC279E41D04776 /* aos_crc64.c in Sources */ = {isa = PBXBuildFile; fileRef = F0D675ED5B636CD21AF04128A3BBC8F8 /* aos_crc64.c */; }; + 50559EFD7F12C78B1448D757DCC81218 /* RACGroupedSignal.m in Sources */ = {isa = PBXBuildFile; fileRef = 4FCFA223EDBCA09679E985DD1489EC35 /* RACGroupedSignal.m */; }; + 5058F069CE518B8C8C75101A0DE2B238 /* LLSandboxModel.h in Headers */ = {isa = PBXBuildFile; fileRef = D1B43A5397B326E44C076B5E4756F49A /* LLSandboxModel.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 505E2ECAC3DE1C62B5FC279E41D04776 /* aos_crc64.c in Sources */ = {isa = PBXBuildFile; fileRef = EE89A6EA0D5F935FF1E4B4D39E928AC5 /* aos_crc64.c */; }; 506668A5ED8EF7139260172E7F633E40 /* TUIChatPopContextController.m in Sources */ = {isa = PBXBuildFile; fileRef = ADDC0F0327D1EA52514CEB1F30DD3559 /* TUIChatPopContextController.m */; }; - 506FC58999564A737C745F2590E9B4D5 /* AFHTTPSessionManager.h in Headers */ = {isa = PBXBuildFile; fileRef = 43E264E971DB51E34D30086005AF908E /* AFHTTPSessionManager.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 506FC884318A57CC927092553C2A7C85 /* TUIThemeManager.m in Sources */ = {isa = PBXBuildFile; fileRef = 0FC3C76B119B8122DE10E41DE6041FE3 /* TUIThemeManager.m */; }; - 5087E07126C398DBF9B9F8F5873E703F /* LLLogCell.h in Headers */ = {isa = PBXBuildFile; fileRef = 68B797A2CDC7AD73EB6C2F1C74C8C36C /* LLLogCell.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 508FEB4F1173AA39D0919840C1534877 /* OSSDeleteMultipleObjectsResult.m in Sources */ = {isa = PBXBuildFile; fileRef = DDB54696124D6CAE6F5A60FB45542B84 /* OSSDeleteMultipleObjectsResult.m */; }; - 50FF2DA1132FB613D4033991EF2B4C37 /* QGVAPConfigModel.m in Sources */ = {isa = PBXBuildFile; fileRef = ACFCBCF4E62065B7A11BA87E097CEFDE /* QGVAPConfigModel.m */; }; + 506FC58999564A737C745F2590E9B4D5 /* AFHTTPSessionManager.h in Headers */ = {isa = PBXBuildFile; fileRef = 28D28484E843EAB89818F3F533CD1FC3 /* AFHTTPSessionManager.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 5080E9C329C7864A34115144F9AF16B7 /* TUIDarkModel.h in Headers */ = {isa = PBXBuildFile; fileRef = D0CE18216B8392E2C506407533674D7C /* TUIDarkModel.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 5087E07126C398DBF9B9F8F5873E703F /* LLLogCell.h in Headers */ = {isa = PBXBuildFile; fileRef = B29F1923AD4248A13CA3B53F97E36979 /* LLLogCell.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 508FEB4F1173AA39D0919840C1534877 /* OSSDeleteMultipleObjectsResult.m in Sources */ = {isa = PBXBuildFile; fileRef = A2C09D9CCFD530FB976ADE84BD0A52F8 /* OSSDeleteMultipleObjectsResult.m */; }; + 50904B7D79655D791D8B00B1D5442AC0 /* QCloudUploadPartResult.m in Sources */ = {isa = PBXBuildFile; fileRef = 94CF2495A56C33AAEA8737D4DF150E53 /* QCloudUploadPartResult.m */; }; + 5093F74339B8ED2C597067E7037A8919 /* sharpyuv_cpu.c in Sources */ = {isa = PBXBuildFile; fileRef = B00DA237ADEF5F3B79A18F2D994EAE07 /* sharpyuv_cpu.c */; settings = {COMPILER_FLAGS = "-D_THREAD_SAFE -fno-objc-arc"; }; }; + 50FF2DA1132FB613D4033991EF2B4C37 /* QGVAPConfigModel.m in Sources */ = {isa = PBXBuildFile; fileRef = 1DE08FA81747E5623FBCBD95406DA52C /* QGVAPConfigModel.m */; }; + 51026C74401CF5C32D128CEE06FC2975 /* QCloudHTTPMultiDataStream.m in Sources */ = {isa = PBXBuildFile; fileRef = B704460D3FE367377F547A4693C164DF /* QCloudHTTPMultiDataStream.m */; }; + 510F304193A01CCD2C7488749FE58DEC /* QCloudGetObjectRequest+Custom.h in Headers */ = {isa = PBXBuildFile; fileRef = 4731228CFADB75FA741A9142F8406B22 /* QCloudGetObjectRequest+Custom.h */; settings = {ATTRIBUTES = (Public, ); }; }; 511DDA43756B513C4C1A40F68D4B7683 /* TUIFileReplyQuoteView.m in Sources */ = {isa = PBXBuildFile; fileRef = 2D68B72D0B212A69F5656E7EA137C61D /* TUIFileReplyQuoteView.m */; }; - 51226F634425DCA26735FBC6D5319A9F /* SDWebImageManager.m in Sources */ = {isa = PBXBuildFile; fileRef = 2CCD1172BFD800033BA099F286F8D0D9 /* SDWebImageManager.m */; }; - 51373ED5B0A47B71F6923C1A62FC4048 /* YYWebImage-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = E54323A751E7E123E3FE66ED5294D556 /* YYWebImage-dummy.m */; }; - 51489E5A9AAEA2FC3AA5859470AA0738 /* QGHWDMetalView.m in Sources */ = {isa = PBXBuildFile; fileRef = 0D31F38BDA3E124A26D342A005FD3F95 /* QGHWDMetalView.m */; }; - 5163FC6D715F6881B1FA1AB13DCEF870 /* UICollectionViewLayout+MJRefresh.h in Headers */ = {isa = PBXBuildFile; fileRef = 364F986E519664737AB61C9815D6967E /* UICollectionViewLayout+MJRefresh.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 51B867763DC82A7E03B34EE779717D4F /* OSSDeleteObjectTaggingRequest.h in Headers */ = {isa = PBXBuildFile; fileRef = 21DD07E2DB0DE908A2DCDE7B482E2EF3 /* OSSDeleteObjectTaggingRequest.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 51F7C205E024D4148E7FAA534EB64E53 /* LLNetworkCell.h in Headers */ = {isa = PBXBuildFile; fileRef = 33189B650BEB3689A94AD39C796B0F85 /* LLNetworkCell.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 5215FF42FF4B3E2227F897B3ECDA8760 /* OSSExecutor.m in Sources */ = {isa = PBXBuildFile; fileRef = 503DBF6B044EAFB40C2DC9730CD668D2 /* OSSExecutor.m */; }; - 5224E21CD8630A9DD74515EA18739B79 /* SDWebImageDownloaderResponseModifier.m in Sources */ = {isa = PBXBuildFile; fileRef = 718BDB2B6CFD39118DE1DFAAD3493EFE /* SDWebImageDownloaderResponseModifier.m */; }; - 5229DB6F083814A963A6CEEF1D858652 /* LLInfoView.m in Sources */ = {isa = PBXBuildFile; fileRef = 7F6E7A6C504F85941CEC9D4BB2424FF5 /* LLInfoView.m */; }; - 523235228A1C021C67F2E3776A922DC5 /* MJRefreshTrailer.h in Headers */ = {isa = PBXBuildFile; fileRef = C3BF8ADC6D83F817099D8E7C70FD029C /* MJRefreshTrailer.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 524E2E7ABD52874B06C8644AF2955AEE /* FMDB-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = B726AD5EA5152EC7A81AFCAB38FB480B /* FMDB-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 526F3C4BF83991DC4B7899DBC5626386 /* UIButton+WebCache.h in Headers */ = {isa = PBXBuildFile; fileRef = 05A4D811FA189792CA10CEC69DF9007F /* UIButton+WebCache.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 52B6E27260DC936E3AAE8F2F46CFB416 /* RACEXTKeyPathCoding.h in Headers */ = {isa = PBXBuildFile; fileRef = 453B168D21923248C66146A95DEB6CE9 /* RACEXTKeyPathCoding.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 52B856E1C42487615989587BA04E9AC7 /* GPBAny.pbobjc.h in Headers */ = {isa = PBXBuildFile; fileRef = 545B97ACBF0338EB6662C85DB3711CF1 /* GPBAny.pbobjc.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 52D757C94A7C2AACD80AB049F9881EFD /* YBIBImageScrollView.h in Headers */ = {isa = PBXBuildFile; fileRef = D9B538591C0A67BF7A17D4E356805B70 /* YBIBImageScrollView.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 51373ED5B0A47B71F6923C1A62FC4048 /* YYWebImage-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 1F821D96E4D6D12CCD9302BF748763FB /* YYWebImage-dummy.m */; }; + 51489E5A9AAEA2FC3AA5859470AA0738 /* QGHWDMetalView.m in Sources */ = {isa = PBXBuildFile; fileRef = 1ADA0F2909892D339EE4B58B24AAF304 /* QGHWDMetalView.m */; }; + 514D3DB18B286DD0F5869019E4184034 /* alpha_processing.c in Sources */ = {isa = PBXBuildFile; fileRef = 4F368678C5E9A1277094F7744437EF5E /* alpha_processing.c */; settings = {COMPILER_FLAGS = "-D_THREAD_SAFE -fno-objc-arc"; }; }; + 5163FC6D715F6881B1FA1AB13DCEF870 /* UICollectionViewLayout+MJRefresh.h in Headers */ = {isa = PBXBuildFile; fileRef = E0E73A539E857E7C1A16FC745598812F /* UICollectionViewLayout+MJRefresh.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 5189C7462F13D3C4623EACB225F11906 /* UIButton+WebCache.m in Sources */ = {isa = PBXBuildFile; fileRef = 07362453DEAADF8829AA12FA96BCE721 /* UIButton+WebCache.m */; }; + 519257B406D45F20FFE5A2771A7952A0 /* SDImageGraphics.h in Headers */ = {isa = PBXBuildFile; fileRef = FEEC1915846135604DE448031E0DBD33 /* SDImageGraphics.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 519C35CD6FB6C729363F298E794514DC /* sharpyuv_gamma.h in Headers */ = {isa = PBXBuildFile; fileRef = 7CE17C93C73BB3A3750816869E6D7288 /* sharpyuv_gamma.h */; settings = {ATTRIBUTES = (Project, ); }; }; + 51B867763DC82A7E03B34EE779717D4F /* OSSDeleteObjectTaggingRequest.h in Headers */ = {isa = PBXBuildFile; fileRef = 2782991E1DCC2DC5E6762AEABDB651C1 /* OSSDeleteObjectTaggingRequest.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 51F7C205E024D4148E7FAA534EB64E53 /* LLNetworkCell.h in Headers */ = {isa = PBXBuildFile; fileRef = C05969BEAC7EC4ACD6B24C23139E3BC5 /* LLNetworkCell.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 520196BF6955092CD5B265B3A8F891FA /* QCloudUploadPartResult.h in Headers */ = {isa = PBXBuildFile; fileRef = 3C118021EF031FBCA103B7EA98DA851B /* QCloudUploadPartResult.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 5215FF42FF4B3E2227F897B3ECDA8760 /* OSSExecutor.m in Sources */ = {isa = PBXBuildFile; fileRef = 21BC654EF72FE10DB39330E4AEF34656 /* OSSExecutor.m */; }; + 5229DB6F083814A963A6CEEF1D858652 /* LLInfoView.m in Sources */ = {isa = PBXBuildFile; fileRef = F7067B3B5F7C69DBCE90B6EC50BF1147 /* LLInfoView.m */; }; + 523235228A1C021C67F2E3776A922DC5 /* MJRefreshTrailer.h in Headers */ = {isa = PBXBuildFile; fileRef = BD3EFEA8D8C7A0FC5D460B9546BEB6BC /* MJRefreshTrailer.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 523B6A238431B685597E214FD554FFED /* QCloudMultipartUploadPart.m in Sources */ = {isa = PBXBuildFile; fileRef = E03A7815CB4559D04681A648642263BA /* QCloudMultipartUploadPart.m */; }; + 524E2E7ABD52874B06C8644AF2955AEE /* FMDB-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = 876F9A889959089D5C1BC6EB86A4BACA /* FMDB-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 52A6D06F7140385A38AC33A34CD12B2E /* utils.h in Headers */ = {isa = PBXBuildFile; fileRef = 4B7791ED3CAC956C61D2090F84B877A3 /* utils.h */; settings = {ATTRIBUTES = (Project, ); }; }; + 52B6E27260DC936E3AAE8F2F46CFB416 /* RACEXTKeyPathCoding.h in Headers */ = {isa = PBXBuildFile; fileRef = D8F69EDF30D389E873EF3E1FA85905B3 /* RACEXTKeyPathCoding.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 52B856E1C42487615989587BA04E9AC7 /* GPBAny.pbobjc.h in Headers */ = {isa = PBXBuildFile; fileRef = ECE6433E17E570A21A030F4F73E3CEAC /* GPBAny.pbobjc.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 52D757C94A7C2AACD80AB049F9881EFD /* YBIBImageScrollView.h in Headers */ = {isa = PBXBuildFile; fileRef = B9AA5F5F417330491DDCA3C808098DB3 /* YBIBImageScrollView.h */; settings = {ATTRIBUTES = (Public, ); }; }; 52DBDB8B915ABD8D68A1B8B788A5671F /* TUIResponderTextView_Minimalist.h in Headers */ = {isa = PBXBuildFile; fileRef = B269FBDEE9C976A7C283CC2D523B357C /* TUIResponderTextView_Minimalist.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 52DD5FFBB98B340FECC3F8B0E3E8D0D1 /* UIView+LLWidgetBorder.m in Sources */ = {isa = PBXBuildFile; fileRef = 8B49A684F6CEE7B4E41A6721D70990AA /* UIView+LLWidgetBorder.m */; }; - 52E60EE26D065DB63D272298AC8867DF /* JXCategoryTitleVerticalZoomView.h in Headers */ = {isa = PBXBuildFile; fileRef = 8498FE3C5D61C2994C40CD9DF77DA30B /* JXCategoryTitleVerticalZoomView.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 530457208AA81E1B3459E95E0FCED4A7 /* LLURLProtocol.h in Headers */ = {isa = PBXBuildFile; fileRef = 0970752D93B2D31FEF265D08321B2471 /* LLURLProtocol.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 52DD5FFBB98B340FECC3F8B0E3E8D0D1 /* UIView+LLWidgetBorder.m in Sources */ = {isa = PBXBuildFile; fileRef = 8B4BC2892DA2ED1B2A7AA0B143C483EA /* UIView+LLWidgetBorder.m */; }; + 52E60EE26D065DB63D272298AC8867DF /* JXCategoryTitleVerticalZoomView.h in Headers */ = {isa = PBXBuildFile; fileRef = 49D97FDA99C133F08F9485B68A70964A /* JXCategoryTitleVerticalZoomView.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 530457208AA81E1B3459E95E0FCED4A7 /* LLURLProtocol.h in Headers */ = {isa = PBXBuildFile; fileRef = 550A3A97018FC4B7A39F25E713E9C5CF /* LLURLProtocol.h */; settings = {ATTRIBUTES = (Public, ); }; }; 532A078C9AC78200C1B7D85FED184274 /* TIMGroupInfo+TUIDataProvider.m in Sources */ = {isa = PBXBuildFile; fileRef = 63C8AC101E2CF6B61D058E5D4D0FAAC5 /* TIMGroupInfo+TUIDataProvider.m */; }; 5335471B49FAA9DD9FDCA466EACCDDE7 /* TUIGroupNoticeCell.m in Sources */ = {isa = PBXBuildFile; fileRef = 7C59572B595BAC9C28F19D2C92B524DA /* TUIGroupNoticeCell.m */; }; - 535F85479334C4440B08FA18413995D7 /* BRAddressPickerView.h in Headers */ = {isa = PBXBuildFile; fileRef = B3BFD36DD27A6F6E722A13EF0AFBB191 /* BRAddressPickerView.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 536A5E29662C45FBA93C2CFF905EB4DD /* LLNetworkComponent.h in Headers */ = {isa = PBXBuildFile; fileRef = 5E4140709CD30665E92934462B28F87F /* LLNetworkComponent.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 53A1736C48F316EF24ABE42EDAF37647 /* TZProgressView.m in Sources */ = {isa = PBXBuildFile; fileRef = 8E7A2DD5D01536CEF9A241CDE85119AA /* TZProgressView.m */; }; - 53B7ADFA877C35CDE87C2ACF4BE2696D /* LLTool.h in Headers */ = {isa = PBXBuildFile; fileRef = D2D29C50C80059906846A05DDE838167 /* LLTool.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 53C572EF70D74597B7C5C910EE0F7C78 /* LLSandboxHelper.h in Headers */ = {isa = PBXBuildFile; fileRef = 5E897D0959338F7C3C6938D01F3ECD5F /* LLSandboxHelper.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 53CCCF0D22C17157E7E672D66A390E39 /* LLWidgetBorderComponent.h in Headers */ = {isa = PBXBuildFile; fileRef = A695D29421A8623ECA662FFD93DBE110 /* LLWidgetBorderComponent.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 535F85479334C4440B08FA18413995D7 /* BRAddressPickerView.h in Headers */ = {isa = PBXBuildFile; fileRef = B8876136C9D6D7FB2DFDE81F966721BF /* BRAddressPickerView.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 536A5E29662C45FBA93C2CFF905EB4DD /* LLNetworkComponent.h in Headers */ = {isa = PBXBuildFile; fileRef = 8F93B67C8D43EC657E335A6F77182973 /* LLNetworkComponent.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 53A1736C48F316EF24ABE42EDAF37647 /* TZProgressView.m in Sources */ = {isa = PBXBuildFile; fileRef = BB2BA76D5803E39A8FF2C99711A62EC0 /* TZProgressView.m */; }; + 53B7ADFA877C35CDE87C2ACF4BE2696D /* LLTool.h in Headers */ = {isa = PBXBuildFile; fileRef = 0509301D9D6D3B9FE731E922E1CFFB03 /* LLTool.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 53C572EF70D74597B7C5C910EE0F7C78 /* LLSandboxHelper.h in Headers */ = {isa = PBXBuildFile; fileRef = 71201FCDF4D5304E930B47888A9FBFA7 /* LLSandboxHelper.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 53CCCF0D22C17157E7E672D66A390E39 /* LLWidgetBorderComponent.h in Headers */ = {isa = PBXBuildFile; fileRef = ACD31B9CF4EFBCA98DAAAD28E2DB8FC6 /* LLWidgetBorderComponent.h */; settings = {ATTRIBUTES = (Public, ); }; }; 53E2DC800EB25FAACA00E7DD557A2325 /* TUIFileMessageCellData.m in Sources */ = {isa = PBXBuildFile; fileRef = EC4DB0C809E92AF61D96C49436DFE57B /* TUIFileMessageCellData.m */; }; - 53EAC4BAE3DC7226DE1EC3AF01B762AA /* LLFilterDatePickerView.m in Sources */ = {isa = PBXBuildFile; fileRef = 8BE32E652E896D8069C45912609E8D41 /* LLFilterDatePickerView.m */; }; - 53ED068F04437D516871C07A0F299165 /* SDWebImageTransition.h in Headers */ = {isa = PBXBuildFile; fileRef = 03A06D937AC97CA67B76FEA1780AB6B6 /* SDWebImageTransition.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 53F270C1988B56BD84F88F47DD80E151 /* MQTTSSLSecurityPolicyEncoder.h in Headers */ = {isa = PBXBuildFile; fileRef = 5B3AE16F4A757602D6257E9A2F768BFF /* MQTTSSLSecurityPolicyEncoder.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 540484CA48AE6E538865EE0882E9B886 /* UITextView+RACSignalSupport.h in Headers */ = {isa = PBXBuildFile; fileRef = FCF416D248705468EA5712B0B7CD870F /* UITextView+RACSignalSupport.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 541D1D311BC92E734A0A4E1F0F53D212 /* CLLocationManager+LL_Location.h in Headers */ = {isa = PBXBuildFile; fileRef = FB53EB1DC75D99D36D4FF55B1F09EB35 /* CLLocationManager+LL_Location.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 541F8D011B2289643C57403D049153DC /* NSBundle+BRPickerView.h in Headers */ = {isa = PBXBuildFile; fileRef = A8A2E239F463C92F51E8AB0BB7E52A47 /* NSBundle+BRPickerView.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 5452E694293134D6693F57345FDA9798 /* LLRouter+AppInfo.m in Sources */ = {isa = PBXBuildFile; fileRef = 01A913356614613EE075A8809B6FE574 /* LLRouter+AppInfo.m */; }; + 53EAC4BAE3DC7226DE1EC3AF01B762AA /* LLFilterDatePickerView.m in Sources */ = {isa = PBXBuildFile; fileRef = 8A13FEA60D90AB2D3F2F63E56062B2D0 /* LLFilterDatePickerView.m */; }; + 53F270C1988B56BD84F88F47DD80E151 /* MQTTSSLSecurityPolicyEncoder.h in Headers */ = {isa = PBXBuildFile; fileRef = 6A31F9BDA55CB0F598C8747E5717A3D8 /* MQTTSSLSecurityPolicyEncoder.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 53F9A20C73728D6285A2A2D4BA5634FA /* picture_tools_enc.c in Sources */ = {isa = PBXBuildFile; fileRef = A019910B8F5B2BA82472CB9A339DC2BB /* picture_tools_enc.c */; settings = {COMPILER_FLAGS = "-D_THREAD_SAFE -fno-objc-arc"; }; }; + 540484CA48AE6E538865EE0882E9B886 /* UITextView+RACSignalSupport.h in Headers */ = {isa = PBXBuildFile; fileRef = C2D9EF1C959CBC79B00089B09679713E /* UITextView+RACSignalSupport.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 541D1D311BC92E734A0A4E1F0F53D212 /* CLLocationManager+LL_Location.h in Headers */ = {isa = PBXBuildFile; fileRef = 08B46AA8431E44FAA52AF003D3538302 /* CLLocationManager+LL_Location.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 541F8D011B2289643C57403D049153DC /* NSBundle+BRPickerView.h in Headers */ = {isa = PBXBuildFile; fileRef = BA5A046FB178953580894853399DB5E8 /* NSBundle+BRPickerView.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 5452E694293134D6693F57345FDA9798 /* LLRouter+AppInfo.m in Sources */ = {isa = PBXBuildFile; fileRef = C3B410D5394B8F77CA81A9DA8A843E98 /* LLRouter+AppInfo.m */; }; + 5455134C58EA508BC4B4C2F3EA812C04 /* bit_reader_utils.c in Sources */ = {isa = PBXBuildFile; fileRef = 54BCDBAAA254EFD1FA9DF2898850A34E /* bit_reader_utils.c */; settings = {COMPILER_FLAGS = "-D_THREAD_SAFE -fno-objc-arc"; }; }; 546A598FAA0E8974B473274C8559FB0A /* TUIMessageMultiChooseView.h in Headers */ = {isa = PBXBuildFile; fileRef = B32193385A6E966920BFF6F89C44E8B6 /* TUIMessageMultiChooseView.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 546DE9D8142C6D8554E083C6FD65D0BE /* JXCategoryIndicatorTriangleView.h in Headers */ = {isa = PBXBuildFile; fileRef = 2E8B62DEA836832696F69521DD582284 /* JXCategoryIndicatorTriangleView.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 54BED812146F40E7D0B9110F4F8F2691 /* UIView+LL_Utils.h in Headers */ = {isa = PBXBuildFile; fileRef = F8291218D30FA82D71ED875822020EA3 /* UIView+LL_Utils.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 54C6DD71F9BA9CA676096215DDE74996 /* UIGestureRecognizer+RACSignalSupport.m in Sources */ = {isa = PBXBuildFile; fileRef = 282F7D9179265592C1D1511E7E769B8A /* UIGestureRecognizer+RACSignalSupport.m */; }; + 546DE9D8142C6D8554E083C6FD65D0BE /* JXCategoryIndicatorTriangleView.h in Headers */ = {isa = PBXBuildFile; fileRef = 158012710CADFDCACD7C7479D3F84646 /* JXCategoryIndicatorTriangleView.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 54B40BCB356EE7A105A1818CCD3F5E39 /* QCloudUICKeyChainStore.h in Headers */ = {isa = PBXBuildFile; fileRef = ADA1E060ACDC8ADD2CB42E39F5165255 /* QCloudUICKeyChainStore.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 54BED812146F40E7D0B9110F4F8F2691 /* UIView+LL_Utils.h in Headers */ = {isa = PBXBuildFile; fileRef = CEEB0214F896A6C53854D4F3BF506498 /* UIView+LL_Utils.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 54C6DD71F9BA9CA676096215DDE74996 /* UIGestureRecognizer+RACSignalSupport.m in Sources */ = {isa = PBXBuildFile; fileRef = AB337F8DA4B26CBF4559F0E4E4CFA08E /* UIGestureRecognizer+RACSignalSupport.m */; }; 54D2A2A678F2BED1DCE7FAA78103C1CD /* TUIGroupConfig.m in Sources */ = {isa = PBXBuildFile; fileRef = 21F67884B0B7892FCFAF0E1EF80ABDF3 /* TUIGroupConfig.m */; }; 54DC0C619FD7B5F5533498D23797814E /* TUIReplyPreviewData.m in Sources */ = {isa = PBXBuildFile; fileRef = E87FC9C2715494EF5B6B8614029C5CD2 /* TUIReplyPreviewData.m */; }; - 54E268C32915CF908E7AA776909B45EB /* MJRefreshConst.m in Sources */ = {isa = PBXBuildFile; fileRef = 5EFBC9FCA9177589DDCFC9E86873B674 /* MJRefreshConst.m */; }; + 54E268C32915CF908E7AA776909B45EB /* MJRefreshConst.m in Sources */ = {isa = PBXBuildFile; fileRef = 8F7928C82DAD75AC11E29EB566F480C5 /* MJRefreshConst.m */; }; 54F30B2200AC1ECE199E4E2CDD855D91 /* TIMDefine.h in Headers */ = {isa = PBXBuildFile; fileRef = 1D62A009291D7554837AE9F991AF602C /* TIMDefine.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 54F360B2097B034296A56077AD1FAE96 /* BRPickerAlertView.h in Headers */ = {isa = PBXBuildFile; fileRef = 7C05072F6E59B5FC0F919854426158BC /* BRPickerAlertView.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 551169463D72EA504D04226C3C9924F9 /* UIBarButtonItem+YYAdd.m in Sources */ = {isa = PBXBuildFile; fileRef = C318DF172DFDE33A381F24E52461F106 /* UIBarButtonItem+YYAdd.m */; }; + 54F360B2097B034296A56077AD1FAE96 /* BRPickerAlertView.h in Headers */ = {isa = PBXBuildFile; fileRef = ED860B060332BFFC3AE2F067A2DC9DF0 /* BRPickerAlertView.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 551169463D72EA504D04226C3C9924F9 /* UIBarButtonItem+YYAdd.m in Sources */ = {isa = PBXBuildFile; fileRef = 0D5175CC00EA0F15BBA480393710C207 /* UIBarButtonItem+YYAdd.m */; }; 553B6DA0934AD8A6E5D74B3264952EBB /* TUIMovieManager.h in Headers */ = {isa = PBXBuildFile; fileRef = F68CD5BD0D95502D7B9F4755DCBFD002 /* TUIMovieManager.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 555508AEAB31C6D07671A371388CD58A /* OSSGetSymlinkRequest.h in Headers */ = {isa = PBXBuildFile; fileRef = 8F2A97ABFE1A06FA7232E8D6CF0BD13C /* OSSGetSymlinkRequest.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 55880D2EE4146A4F93B2D6D76E44384B /* SDWebImageDownloaderOperation.h in Headers */ = {isa = PBXBuildFile; fileRef = 11C3CA76E801CD8D06F15340328EBA04 /* SDWebImageDownloaderOperation.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 55910DBCDF99E39955BE01EAD8251081 /* JXCategoryImageView.h in Headers */ = {isa = PBXBuildFile; fileRef = EACE11D589387CF44A921B85EE6B8559 /* JXCategoryImageView.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 55948AC1957526557F4658B2B70D17A4 /* SDCallbackQueue.m in Sources */ = {isa = PBXBuildFile; fileRef = B9B1E54D66B187A0C86E3F7D8B4F9033 /* SDCallbackQueue.m */; }; - 55A7234291A1F9E29BDA8835B00AC1BD /* NSBundle+TZImagePicker.m in Sources */ = {isa = PBXBuildFile; fileRef = E8405E6E34E44ED063F9FCC5C1A44031 /* NSBundle+TZImagePicker.m */; }; + 555508AEAB31C6D07671A371388CD58A /* OSSGetSymlinkRequest.h in Headers */ = {isa = PBXBuildFile; fileRef = 400574FFCC52BAC3027118E7DBA6D9D3 /* OSSGetSymlinkRequest.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 55910DBCDF99E39955BE01EAD8251081 /* JXCategoryImageView.h in Headers */ = {isa = PBXBuildFile; fileRef = 9E2B890DB980A1C091EC1EC9B0100DA7 /* JXCategoryImageView.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 55A7234291A1F9E29BDA8835B00AC1BD /* NSBundle+TZImagePicker.m in Sources */ = {isa = PBXBuildFile; fileRef = 4FB0259B9872C6E35B0CA86EC698BD30 /* NSBundle+TZImagePicker.m */; }; 55C16C33B1BF5C60C31CB8FFD294A6FD /* TUIChatPopActionsView.m in Sources */ = {isa = PBXBuildFile; fileRef = 4C668B56B6C97A84C58A7AFBF8067086 /* TUIChatPopActionsView.m */; }; - 55C5FFF68997E75916A65A2A1BB85EE6 /* LLFilterEventView.h in Headers */ = {isa = PBXBuildFile; fileRef = B72AC929631FC454D1821CE0FA547C98 /* LLFilterEventView.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 55D7C793DA7FD6E1026FE4BA89795A98 /* huffman_encode_utils.h in Headers */ = {isa = PBXBuildFile; fileRef = 538BB024743EC24DC9870ED55C39BF40 /* huffman_encode_utils.h */; settings = {ATTRIBUTES = (Project, ); }; }; + 55C5FFF68997E75916A65A2A1BB85EE6 /* LLFilterEventView.h in Headers */ = {isa = PBXBuildFile; fileRef = 0A898F55547B6E5B293183969888F9EA /* LLFilterEventView.h */; settings = {ATTRIBUTES = (Public, ); }; }; 55F48A9B1631B5AF46DA93EC1357E6FE /* TUIMessageBaseMediaDataProvider.h in Headers */ = {isa = PBXBuildFile; fileRef = 79F8CD81D69251341C8E0C4201EE2932 /* TUIMessageBaseMediaDataProvider.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 560184E3EA2263CBF3D453368F706BED /* LLComponentNavigationController.m in Sources */ = {isa = PBXBuildFile; fileRef = 6E596E4FB7B7C6AC6D239E6E687C6A07 /* LLComponentNavigationController.m */; }; - 561420A20DC0A84258A902E9EB69A15A /* MJRefreshAutoFooter.h in Headers */ = {isa = PBXBuildFile; fileRef = E600F1E83D5FA1C22609AA8EA9D44172 /* MJRefreshAutoFooter.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 562041D9E34EB4A80420E8C127FB0091 /* demux.c in Sources */ = {isa = PBXBuildFile; fileRef = FC08338316F5A658727A1948229CBE87 /* demux.c */; settings = {COMPILER_FLAGS = "-D_THREAD_SAFE -fno-objc-arc"; }; }; - 563251728CEF438130C98E68AE74DB24 /* NSAttributedString+AvoidCrash.m in Sources */ = {isa = PBXBuildFile; fileRef = 171A749A0ABC4EC247A355379BFA03A4 /* NSAttributedString+AvoidCrash.m */; }; - 564714D075CF51356D3D8437846AA6EB /* AFURLRequestSerialization.m in Sources */ = {isa = PBXBuildFile; fileRef = 53CB6BE6A2D5D3A69A1BBC957060C84B /* AFURLRequestSerialization.m */; }; - 564C95482D463B3CE3205B8E86BA8104 /* YYTextRunDelegate.h in Headers */ = {isa = PBXBuildFile; fileRef = 8CDA437F713F4845D3DE652540BB0EB9 /* YYTextRunDelegate.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 560184E3EA2263CBF3D453368F706BED /* LLComponentNavigationController.m in Sources */ = {isa = PBXBuildFile; fileRef = 8F4089CEE8BD5BF8B23666F05A0B478F /* LLComponentNavigationController.m */; }; + 561420A20DC0A84258A902E9EB69A15A /* MJRefreshAutoFooter.h in Headers */ = {isa = PBXBuildFile; fileRef = FFDE1D22A05B7734B4D04697FBA9703E /* MJRefreshAutoFooter.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 561E0098F1FDB77F38A0EFEF6B64E53B /* QCloudURLHelper.m in Sources */ = {isa = PBXBuildFile; fileRef = 1E45121F3C1E9DCE8C3B702C17FA6143 /* QCloudURLHelper.m */; }; + 563251728CEF438130C98E68AE74DB24 /* NSAttributedString+AvoidCrash.m in Sources */ = {isa = PBXBuildFile; fileRef = 2BD4ACF537A2E98F261652F6D97447AB /* NSAttributedString+AvoidCrash.m */; }; + 563DDB2C3E3ECF0598F49A3B6B007616 /* QCloudHTTPRetryHanlder.h in Headers */ = {isa = PBXBuildFile; fileRef = 89795919B1994307C83B553A8DCC073A /* QCloudHTTPRetryHanlder.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 564714D075CF51356D3D8437846AA6EB /* AFURLRequestSerialization.m in Sources */ = {isa = PBXBuildFile; fileRef = D25B963F5D91092D2AF613777D3EDF10 /* AFURLRequestSerialization.m */; }; + 5648420D0FC4B05CA8623079BE8A8720 /* QCloudHosts.h in Headers */ = {isa = PBXBuildFile; fileRef = C16B9711622C2F8C8ECE8C9128B040FD /* QCloudHosts.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 564C95482D463B3CE3205B8E86BA8104 /* YYTextRunDelegate.h in Headers */ = {isa = PBXBuildFile; fileRef = 665CE986B42F440546A46928C2CD55BC /* YYTextRunDelegate.h */; settings = {ATTRIBUTES = (Public, ); }; }; 56598AE365144102EF4E058EDC6066F1 /* TUIChat-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = EBE41960EC4C02DE7507077364862A87 /* TUIChat-dummy.m */; }; - 565B62FC30AE2F4AD370089DBB936347 /* SDAnimatedImageView+WebCache.h in Headers */ = {isa = PBXBuildFile; fileRef = 14806CABC7CCFB326D24066E23E1F92F /* SDAnimatedImageView+WebCache.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 566367A4357560D32586A9A07E8F1AE5 /* demux.h in Headers */ = {isa = PBXBuildFile; fileRef = D45A5B4953AC305222C3054D5C54F266 /* demux.h */; settings = {ATTRIBUTES = (Public, ); }; }; 5667A1E9D671DF8C8B4F5901658ED7E3 /* TUIImageMessageCellData.m in Sources */ = {isa = PBXBuildFile; fileRef = F87F01122654A008DC24C105C6C589AC /* TUIImageMessageCellData.m */; }; - 566B1350CFC30E4D9B89E294C69C9EB3 /* YBIBContainerView.m in Sources */ = {isa = PBXBuildFile; fileRef = D86288874EF226EB8351E9D4D9273A92 /* YBIBContainerView.m */; }; - 56788ECC9BE4FF5A7AE427A41E86FD77 /* MKAnnotationView+YYWebImage.m in Sources */ = {isa = PBXBuildFile; fileRef = 82E8B5703081A4208F68D18A58201CD8 /* MKAnnotationView+YYWebImage.m */; }; - 56A786F5EC1DCD226624BE956DB872D5 /* Wrappers.pbobjc.h in Headers */ = {isa = PBXBuildFile; fileRef = 600187BCDCF365645E5F4451C958FAE9 /* Wrappers.pbobjc.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 56C30EF2AEF567D9CEFF4943E80297E2 /* NSData+LL_Network.m in Sources */ = {isa = PBXBuildFile; fileRef = ABD5F2C79D0E0B7507D53E84E2C8AB34 /* NSData+LL_Network.m */; }; - 56E800EB3B2BE8AE0BA45A30974D7920 /* Masonry-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = BB376250D12E6D6D2BF76FDB5D15F278 /* Masonry-dummy.m */; }; - 56EA3B08EA85B1F87E9E5E2EEDA83607 /* MQTTCFSocketDecoder.h in Headers */ = {isa = PBXBuildFile; fileRef = 0422526A8D034EC1C848131751331825 /* MQTTCFSocketDecoder.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 56F6A1268C028620929290D5E63D693D /* SDWeakProxy.h in Headers */ = {isa = PBXBuildFile; fileRef = 2D86FB5A237B0F886544C0A50D76D540 /* SDWeakProxy.h */; settings = {ATTRIBUTES = (Private, ); }; }; - 56FE435145D35628CB94B8DBD67E81F4 /* RACStream.h in Headers */ = {isa = PBXBuildFile; fileRef = B451ADF9BA1CC2FF64C146F5FC437A84 /* RACStream.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 57064C5D6C4FC1B8A4F53D9CDE321360 /* crypt.h in Headers */ = {isa = PBXBuildFile; fileRef = 3F8D829D41253554A64C59CFD33906F3 /* crypt.h */; settings = {ATTRIBUTES = (Project, ); }; }; - 5728A52824808C5F9AAEAE2FB19151E3 /* LLWidgetBorder.h in Headers */ = {isa = PBXBuildFile; fileRef = F1225E12CF790B08F1E102F995AD8080 /* LLWidgetBorder.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 566B1350CFC30E4D9B89E294C69C9EB3 /* YBIBContainerView.m in Sources */ = {isa = PBXBuildFile; fileRef = 5E5D6DEC4D689A5CCD2A9B6945192CE4 /* YBIBContainerView.m */; }; + 56788ECC9BE4FF5A7AE427A41E86FD77 /* MKAnnotationView+YYWebImage.m in Sources */ = {isa = PBXBuildFile; fileRef = 83DA5EE38E68337BC3C63E0C331F230E /* MKAnnotationView+YYWebImage.m */; }; + 56A786F5EC1DCD226624BE956DB872D5 /* Wrappers.pbobjc.h in Headers */ = {isa = PBXBuildFile; fileRef = 9DB164CC791FD30A2834AF58B3810F1C /* Wrappers.pbobjc.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 56C30EF2AEF567D9CEFF4943E80297E2 /* NSData+LL_Network.m in Sources */ = {isa = PBXBuildFile; fileRef = 59212D34B5BADE17EFD6F8B3760781A6 /* NSData+LL_Network.m */; }; + 56CA0120C203D3FB78ECD1538B417D83 /* NSMutableData+QCloud_CRC.m in Sources */ = {isa = PBXBuildFile; fileRef = 5C74512A9EC30518FADD1B3ECAB2C27C /* NSMutableData+QCloud_CRC.m */; }; + 56E800EB3B2BE8AE0BA45A30974D7920 /* Masonry-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = FD7C23F715A06E593A4488EB4CB076AF /* Masonry-dummy.m */; }; + 56EA3B08EA85B1F87E9E5E2EEDA83607 /* MQTTCFSocketDecoder.h in Headers */ = {isa = PBXBuildFile; fileRef = 839AC695CE0536D9762E4327F1EAE6BA /* MQTTCFSocketDecoder.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 56FE435145D35628CB94B8DBD67E81F4 /* RACStream.h in Headers */ = {isa = PBXBuildFile; fileRef = 86234E6F546FFFC29A15FEC592D1C2EA /* RACStream.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 5728A52824808C5F9AAEAE2FB19151E3 /* LLWidgetBorder.h in Headers */ = {isa = PBXBuildFile; fileRef = E1E2ABA1CF16E38306949C39DBFFE81D /* LLWidgetBorder.h */; settings = {ATTRIBUTES = (Public, ); }; }; 573D7405AB0E819A86A401EFC59BB1CB /* TUIFileReplyQuoteViewData.h in Headers */ = {isa = PBXBuildFile; fileRef = 38AF682265526EA5128444E09DF05B92 /* TUIFileReplyQuoteViewData.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 573EC3884AF3818998A6B2014DD2D845 /* SDImageIOCoder.m in Sources */ = {isa = PBXBuildFile; fileRef = 070EC055ABB58F2DE3D093EEB55C18F7 /* SDImageIOCoder.m */; }; 5751F53AAD0D218B3390DC95F64B4CEA /* TUIBubbleMessageCellData.h in Headers */ = {isa = PBXBuildFile; fileRef = 64E0ED44B3FA7BFA0B6B14112C984551 /* TUIBubbleMessageCellData.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 57612336010B567948EEE306D7D0F54A /* PrivacyInfo.xcprivacy in Resources */ = {isa = PBXBuildFile; fileRef = FB399EEC52490F7CC6066187151BB2F2 /* PrivacyInfo.xcprivacy */; }; - 57715F0680B971EFE2C95853613CA10F /* LLFormatterTool.m in Sources */ = {isa = PBXBuildFile; fileRef = AC6E5307DBC128E998625E240CBB280D /* LLFormatterTool.m */; }; - 5798319294ED9577D70EAA9875177225 /* YYTextInput.m in Sources */ = {isa = PBXBuildFile; fileRef = B280381C79B20523E196B1B91882F4EB /* YYTextInput.m */; }; - 579DDC4FE78455D88E0350C3268D96C4 /* JXCategoryIndicatorComponentView.m in Sources */ = {isa = PBXBuildFile; fileRef = 0D5EE78234CA8C94A9E8DCD58F4FA2C2 /* JXCategoryIndicatorComponentView.m */; }; + 57715F0680B971EFE2C95853613CA10F /* LLFormatterTool.m in Sources */ = {isa = PBXBuildFile; fileRef = 7053A1909D5DF7141E0A8CFD4571D63F /* LLFormatterTool.m */; }; + 5798319294ED9577D70EAA9875177225 /* YYTextInput.m in Sources */ = {isa = PBXBuildFile; fileRef = C27596B7E37B9F52761B7EBA8ACCAA54 /* YYTextInput.m */; }; + 579DDC4FE78455D88E0350C3268D96C4 /* JXCategoryIndicatorComponentView.m in Sources */ = {isa = PBXBuildFile; fileRef = 8A94570B593AB24C01653192CA3FB3D5 /* JXCategoryIndicatorComponentView.m */; }; 58411E171CC1B9DBF35EAF2C2534DC3C /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = F91075A92425F75F02E0E1C8D455AF79 /* Foundation.framework */; }; - 585920A1A37B315FCA853A232773CC12 /* RACStringSequence.m in Sources */ = {isa = PBXBuildFile; fileRef = 739BE06759FE9FD4EFE88DC94FFC138A /* RACStringSequence.m */; }; - 585E1D3757F90A3BBC188DF098B3255E /* LLHtmlViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 29B7D14D3169A64C161155CFB980AF20 /* LLHtmlViewController.m */; }; - 5889FA7EB7333745C27C7FACAA9FBB87 /* UIControl+RACSignalSupportPrivate.h in Headers */ = {isa = PBXBuildFile; fileRef = 641CA628D43B5A1C6085AB2C563B44E1 /* UIControl+RACSignalSupportPrivate.h */; settings = {ATTRIBUTES = (Private, ); }; }; - 588C2AB19F06C1678C6C5C20C2EA498F /* UIView+WebCacheOperation.h in Headers */ = {isa = PBXBuildFile; fileRef = B04D2E8778CE407F9154ECA988D10CFA /* UIView+WebCacheOperation.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 5843C5CEB4E25CC1D96A73C13BF289AB /* QCloudHTTPRequest_SessionPrivate.h in Headers */ = {isa = PBXBuildFile; fileRef = FAE7DECC7BFF312884F8FE74337F1DDC /* QCloudHTTPRequest_SessionPrivate.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 585920A1A37B315FCA853A232773CC12 /* RACStringSequence.m in Sources */ = {isa = PBXBuildFile; fileRef = 4A6193EB42B940AE1CF0ADC616574F3E /* RACStringSequence.m */; }; + 585E1D3757F90A3BBC188DF098B3255E /* LLHtmlViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = E9610F285E606B247996729D342EA2DF /* LLHtmlViewController.m */; }; + 5889FA7EB7333745C27C7FACAA9FBB87 /* UIControl+RACSignalSupportPrivate.h in Headers */ = {isa = PBXBuildFile; fileRef = 90014943D27A4414D6A92F636C655431 /* UIControl+RACSignalSupportPrivate.h */; settings = {ATTRIBUTES = (Private, ); }; }; 58A595B9B0ED2DD43E1266C3D1B2351B /* TUIFileReplyQuoteView.h in Headers */ = {isa = PBXBuildFile; fileRef = 7205277D00E2B5C7608D4D38182B8348 /* TUIFileReplyQuoteView.h */; settings = {ATTRIBUTES = (Public, ); }; }; 58A935FEB6438B9FF613EAC1C4AEECF9 /* TUIChatDataProvider.h in Headers */ = {isa = PBXBuildFile; fileRef = 1AE7F39720B6351447C0166FA9BD3C05 /* TUIChatDataProvider.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 58D96E7E65D97A049D1C6F28DB5E4909 /* MQTTCoreDataPersistence.h in Headers */ = {isa = PBXBuildFile; fileRef = B53440B74ED4D77A1FD5576805D9E922 /* MQTTCoreDataPersistence.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 58E512BD916CDD9631428F30A623D370 /* RACTargetQueueScheduler.h in Headers */ = {isa = PBXBuildFile; fileRef = 201746211CE34F124E35D10C68791A4B /* RACTargetQueueScheduler.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 58C3ACB1D3834A3C26B3AFDE311AA643 /* TUICore.h in Headers */ = {isa = PBXBuildFile; fileRef = 92080B092D611A9308583BC80776AFD4 /* TUICore.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 58D96E7E65D97A049D1C6F28DB5E4909 /* MQTTCoreDataPersistence.h in Headers */ = {isa = PBXBuildFile; fileRef = 5D60C8CF30CE6978A59CD19521DB6EB5 /* MQTTCoreDataPersistence.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 58E512BD916CDD9631428F30A623D370 /* RACTargetQueueScheduler.h in Headers */ = {isa = PBXBuildFile; fileRef = 4B7875C13EE1A811F6106084804B9569 /* RACTargetQueueScheduler.h */; settings = {ATTRIBUTES = (Public, ); }; }; 58E5D672F3A180C72E81F2DE6DFF417D /* UIImage+ImageEffects.m in Sources */ = {isa = PBXBuildFile; fileRef = 544E67F8B3648AA844F2913AB5F7E1BE /* UIImage+ImageEffects.m */; }; - 58FA7FAC4CB2D935D691AE0A4F932195 /* LLSandboxHtmlPreviewController.h in Headers */ = {isa = PBXBuildFile; fileRef = A57A219EA4983CF7FCA736AF8CA139B9 /* LLSandboxHtmlPreviewController.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 591719E6FDFCB5D9EA8C9BCE62AC08B4 /* BRBaseView.h in Headers */ = {isa = PBXBuildFile; fileRef = FFEAFFC94537D193B0A5B072774D2B44 /* BRBaseView.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 58FA7FAC4CB2D935D691AE0A4F932195 /* LLSandboxHtmlPreviewController.h in Headers */ = {isa = PBXBuildFile; fileRef = 3B04C37349BDC515B4E0D346572551E0 /* LLSandboxHtmlPreviewController.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 591719E6FDFCB5D9EA8C9BCE62AC08B4 /* BRBaseView.h in Headers */ = {isa = PBXBuildFile; fileRef = F852A499CE096A863C3E81EC3F590D72 /* BRBaseView.h */; settings = {ATTRIBUTES = (Public, ); }; }; 591EF72B23CA8670E73CA81B970D26DF /* TUIFaceSegementScrollView.h in Headers */ = {isa = PBXBuildFile; fileRef = 826C5B71E3BE23399C4911B80411F577 /* TUIFaceSegementScrollView.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 59224299DA38B63CEFE5FDAE933501E3 /* GPBCodedOutputStream.m in Sources */ = {isa = PBXBuildFile; fileRef = F9BB944D6D5FBB6AB373CD16CDE70EDD /* GPBCodedOutputStream.m */; settings = {COMPILER_FLAGS = "-fno-objc-arc"; }; }; - 592B7BD80BB751BB5EB02A7D2FB5B7EE /* UIImageView+WebCache.h in Headers */ = {isa = PBXBuildFile; fileRef = B534CFECA8728CD97AC4FC484952BD83 /* UIImageView+WebCache.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 59511C98EDB03A5A333E82D79CCA4D64 /* TUIGlobalization.h in Headers */ = {isa = PBXBuildFile; fileRef = 1B01055A02C595C4CC216230475CCEF1 /* TUIGlobalization.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 59224299DA38B63CEFE5FDAE933501E3 /* GPBCodedOutputStream.m in Sources */ = {isa = PBXBuildFile; fileRef = D414544FFA7415CC2A36EF0984F5D467 /* GPBCodedOutputStream.m */; settings = {COMPILER_FLAGS = "-fno-objc-arc"; }; }; 5954E112BE6F79FB74B60F2BD64C61D9 /* TUIMessageDataProvider+MessageDeal.h in Headers */ = {isa = PBXBuildFile; fileRef = C4652D09AF671F760E57B77ED4B2B844 /* TUIMessageDataProvider+MessageDeal.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 596AEAE7A03137CB24B6D05E3B4E47B7 /* RACIndexSetSequence.h in Headers */ = {isa = PBXBuildFile; fileRef = 323E2DDDBFA33D8B25A1200AC5E00A75 /* RACIndexSetSequence.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 598457F25A7D0E105308652DA12D907E /* OSSXMLDictionary.m in Sources */ = {isa = PBXBuildFile; fileRef = 89B7EF8032FA82FC0AA8CBBD48C2934F /* OSSXMLDictionary.m */; }; - 598598E9BD0FAECD9A65FE2913C46C41 /* GPBUnknownField+Additions.swift in Sources */ = {isa = PBXBuildFile; fileRef = 902734325A3C7BE856EED2FF283B5BA2 /* GPBUnknownField+Additions.swift */; }; + 596AEAE7A03137CB24B6D05E3B4E47B7 /* RACIndexSetSequence.h in Headers */ = {isa = PBXBuildFile; fileRef = E2A1BA9676A2E0ABD52EBABFEE4C3A0D /* RACIndexSetSequence.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 598457F25A7D0E105308652DA12D907E /* OSSXMLDictionary.m in Sources */ = {isa = PBXBuildFile; fileRef = 477D50507EA8EB7B547B4A2E1572DC1F /* OSSXMLDictionary.m */; }; + 598598E9BD0FAECD9A65FE2913C46C41 /* GPBUnknownField+Additions.swift in Sources */ = {isa = PBXBuildFile; fileRef = B0DC3EFE8D130B50511160BF15B4DDE3 /* GPBUnknownField+Additions.swift */; }; 59987815030F514C09DF79A1C060A217 /* TUIMenuView.m in Sources */ = {isa = PBXBuildFile; fileRef = 0AF9AD3E98B3D1E5A504C2AEBA0F87E6 /* TUIMenuView.m */; }; - 599AE799EFB38A01C3B6752D63769655 /* LLSettingManager.h in Headers */ = {isa = PBXBuildFile; fileRef = 628A5A8364FBAFBE40D9106B3347B7B9 /* LLSettingManager.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 59B1C1BC2DEA76C3C37244184B74E9D8 /* MQTTProperties.h in Headers */ = {isa = PBXBuildFile; fileRef = 0D1882D5427DA3A6B6E7C146C0F72C69 /* MQTTProperties.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 59C2ED58D5102A1BEBFC4CF64D5A3054 /* ImageIO.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = A5B624A70D4735B79D27A4C5B4DA64AA /* ImageIO.framework */; }; - 59E8169407ACC8A198276A0395495F1B /* LLShortCutHelper.m in Sources */ = {isa = PBXBuildFile; fileRef = 49DC9E73EA5F77F47D92CFB1B3EC2608 /* LLShortCutHelper.m */; }; + 599AE799EFB38A01C3B6752D63769655 /* LLSettingManager.h in Headers */ = {isa = PBXBuildFile; fileRef = 79D6665A746B7CB75F80D33BD138EFAF /* LLSettingManager.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 59AD344A074A7D16E1E4A7E3F902AC54 /* QCloudCustomSession.h in Headers */ = {isa = PBXBuildFile; fileRef = 31D6A899A2F22D73E42C4AFF53B6646D /* QCloudCustomSession.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 59B1C1BC2DEA76C3C37244184B74E9D8 /* MQTTProperties.h in Headers */ = {isa = PBXBuildFile; fileRef = 4502D6D8B4E750A45DF10F54D71EF01F /* MQTTProperties.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 59E8169407ACC8A198276A0395495F1B /* LLShortCutHelper.m in Sources */ = {isa = PBXBuildFile; fileRef = 02F58B05B07E645C5748C55D22B88861 /* LLShortCutHelper.m */; }; 59E99B295441D9C426A85B989C834FB5 /* TUIVoiceMessageCell_Minimalist.m in Sources */ = {isa = PBXBuildFile; fileRef = C8199828D909683114A2A228F68764E5 /* TUIVoiceMessageCell_Minimalist.m */; }; 5A2F75ECF5A1DC0927F40A65D00E0817 /* TUISystemMessageCell.m in Sources */ = {isa = PBXBuildFile; fileRef = C5047226BADBAC5B021884D209558AAF /* TUISystemMessageCell.m */; }; - 5A3E097A8A529C8468D56D9BC8AD9862 /* UIGestureRecognizer+VAPUtil.h in Headers */ = {isa = PBXBuildFile; fileRef = 594D12E166E00C4623953ABB400295D2 /* UIGestureRecognizer+VAPUtil.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 5A6AFAF7515C84B07422A61E94280EB6 /* RACSignalSequence.h in Headers */ = {isa = PBXBuildFile; fileRef = 56B0E7A38A8353991791DDBF58BAF1D2 /* RACSignalSequence.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 5A6D3BE92C77ED70C397567996DFAEB9 /* AFHTTPSessionManager.m in Sources */ = {isa = PBXBuildFile; fileRef = 45AC580ACA8F314CF2C9B9C00815D6EA /* AFHTTPSessionManager.m */; }; + 5A3E097A8A529C8468D56D9BC8AD9862 /* UIGestureRecognizer+VAPUtil.h in Headers */ = {isa = PBXBuildFile; fileRef = 04EA3C1259C99C8D4B2F7760CA9C496D /* UIGestureRecognizer+VAPUtil.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 5A6AFAF7515C84B07422A61E94280EB6 /* RACSignalSequence.h in Headers */ = {isa = PBXBuildFile; fileRef = A32F7DA914A2405DF5F8EF4B2A957B41 /* RACSignalSequence.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 5A6D3BE92C77ED70C397567996DFAEB9 /* AFHTTPSessionManager.m in Sources */ = {isa = PBXBuildFile; fileRef = 051F1766A9870CFBD8C0C678367C5767 /* AFHTTPSessionManager.m */; }; + 5A7CCDEA9EF360782F375A38932833A6 /* SDAsyncBlockOperation.m in Sources */ = {isa = PBXBuildFile; fileRef = 425F58D75A337964475D8BDD83ABD04D /* SDAsyncBlockOperation.m */; }; + 5A9448737A60657D405D228E6A3FEDCF /* TUICore.bundle in Resources */ = {isa = PBXBuildFile; fileRef = 900B01806C65D7DCC5EC5ED03ECD0D03 /* TUICore.bundle */; }; 5AB0933CB14AF0A59EDE15AA03B5B660 /* TUIBaseChatViewController_Minimalist.m in Sources */ = {isa = PBXBuildFile; fileRef = AC6FBF5583543BBBF9CD974FD4EBD722 /* TUIBaseChatViewController_Minimalist.m */; }; - 5AC9D6EF968C2394AB105C4B448309FC /* SDImageCachesManagerOperation.m in Sources */ = {isa = PBXBuildFile; fileRef = D595FDB6AA04C3954C1C3772EE1F7EFD /* SDImageCachesManagerOperation.m */; }; - 5AF22814CD055B553AD9D78BE54B94E1 /* UIProgressView+AFNetworking.h in Headers */ = {isa = PBXBuildFile; fileRef = 6CA1BAB7B291FFD8994D70B914C15384 /* UIProgressView+AFNetworking.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 5B08596E856E4CC2F34A8A2372F9F764 /* NSArray+MASAdditions.m in Sources */ = {isa = PBXBuildFile; fileRef = 1A4EF6B84B65165920D96CC4503CCC85 /* NSArray+MASAdditions.m */; }; - 5B3FCD8B9966874E440CF638DB0481DD /* huffman_utils.c in Sources */ = {isa = PBXBuildFile; fileRef = F0BD28A56BD17B68BBF47CCDF2ABA003 /* huffman_utils.c */; settings = {COMPILER_FLAGS = "-D_THREAD_SAFE -fno-objc-arc"; }; }; + 5ACFF0305272F8D4589AD1D8FB889D2C /* QCloudLoaderManager.m in Sources */ = {isa = PBXBuildFile; fileRef = 94596E7FC878CAF5BD0D9CC95E61BF93 /* QCloudLoaderManager.m */; }; + 5AF22814CD055B553AD9D78BE54B94E1 /* UIProgressView+AFNetworking.h in Headers */ = {isa = PBXBuildFile; fileRef = 230AF4A6C6B69155BA2EFCECF574EEEF /* UIProgressView+AFNetworking.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 5AF89DA031A71E3E690FC6C78214207E /* SDWebImageManager.h in Headers */ = {isa = PBXBuildFile; fileRef = A7FBF8F01AE1585F2D8153B34446ED00 /* SDWebImageManager.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 5B08596E856E4CC2F34A8A2372F9F764 /* NSArray+MASAdditions.m in Sources */ = {isa = PBXBuildFile; fileRef = 95FE8358D7747A179D03A5C18C0782AE /* NSArray+MASAdditions.m */; }; + 5B3692968156948E48EA23BB61E7C726 /* SDAnimatedImageView+WebCache.h in Headers */ = {isa = PBXBuildFile; fileRef = 8894C7A542AFDB70DE5A9A8BB69ED8EC /* SDAnimatedImageView+WebCache.h */; settings = {ATTRIBUTES = (Public, ); }; }; 5B434D5867AD9CF30682E65CDD135EC5 /* TUIFloatViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 78A4C84DE22C48967209E3579250D19A /* TUIFloatViewController.m */; }; 5B44F312F7BE1B2185E19ABE256F0415 /* TUIImageReplyQuoteView_Minimalist.m in Sources */ = {isa = PBXBuildFile; fileRef = 968DB3C6703E8E1ED6FDB0C1B30F28D0 /* TUIImageReplyQuoteView_Minimalist.m */; }; 5B4A538AADB40ACC7F95048B99CAD9DE /* TUISystemMessageCellData.h in Headers */ = {isa = PBXBuildFile; fileRef = 2F9EBF75C7BF827B62D554DF70178092 /* TUISystemMessageCellData.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 5B647539436EB4D590054BBD2AEEE373 /* QCloudURLTools.m in Sources */ = {isa = PBXBuildFile; fileRef = 00DDD741C3318DEB7E0D838DE56174FA /* QCloudURLTools.m */; }; 5B6AD0120098DD95D42B81A6DA274108 /* TUIChatService.m in Sources */ = {isa = PBXBuildFile; fileRef = AE591D6A2CC36F9DD224AD3A7249659F /* TUIChatService.m */; }; - 5B7DCF3383F2A381A5988EC035EAF296 /* LLFunctionWindow.m in Sources */ = {isa = PBXBuildFile; fileRef = 84395610D9405F0B2AAE3A3ADAAF3335 /* LLFunctionWindow.m */; }; - 5B9D1E7004B8112FC8DC1989C19908AA /* NSMutableAttributedString+AvoidCrash.h in Headers */ = {isa = PBXBuildFile; fileRef = E7BD0B0B60CA10C971E26DD11DD2AC30 /* NSMutableAttributedString+AvoidCrash.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 5B7DCF3383F2A381A5988EC035EAF296 /* LLFunctionWindow.m in Sources */ = {isa = PBXBuildFile; fileRef = 3E588B994E24E929C3ADFD2384AF7EE0 /* LLFunctionWindow.m */; }; + 5B80543908692B4F821DBFFD0F55E747 /* QCloudRequestData+COSXML.h in Headers */ = {isa = PBXBuildFile; fileRef = 878B6D72536A69FF375964403CD032BE /* QCloudRequestData+COSXML.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 5B9D1E7004B8112FC8DC1989C19908AA /* NSMutableAttributedString+AvoidCrash.h in Headers */ = {isa = PBXBuildFile; fileRef = 40062F33F40BB0D1FDF395F715E3092C /* NSMutableAttributedString+AvoidCrash.h */; settings = {ATTRIBUTES = (Public, ); }; }; 5BA2047D5251662AEDCA21F2261FAB6E /* TUICaptureTimer.h in Headers */ = {isa = PBXBuildFile; fileRef = 15DF20828D428D24A8E4843A2BFE0154 /* TUICaptureTimer.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 5BB6B99986FD7111B3AEBE931C7F507B /* MJRefreshAutoStateFooter.h in Headers */ = {isa = PBXBuildFile; fileRef = 16BDA8E3F3C349C76A1450A2A6D742DD /* MJRefreshAutoStateFooter.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 5BC0B1DC5456A78F7CEDE5F1080F83A3 /* TUILogin.m in Sources */ = {isa = PBXBuildFile; fileRef = 8005A15AA2883C0049FC97E6669A659E /* TUILogin.m */; }; - 5BC0FD0581F5C971B79B4AF7E1353115 /* UIGestureRecognizer+YYAdd.m in Sources */ = {isa = PBXBuildFile; fileRef = F96BFA65EF9ED8D327287F96623EC245 /* UIGestureRecognizer+YYAdd.m */; }; - 5BC67924B21B1732CA9F21705D397176 /* GPBMessage.m in Sources */ = {isa = PBXBuildFile; fileRef = 8CFA5283175C82344C3D2A141931554A /* GPBMessage.m */; settings = {COMPILER_FLAGS = "-fno-objc-arc"; }; }; - 5BD5D9B8F61C124A62C75D9AC36A07BD /* MJRefreshTrailer.m in Sources */ = {isa = PBXBuildFile; fileRef = 55445F67263B2041800762E1FC4ED4B3 /* MJRefreshTrailer.m */; }; - 5BED302AAA762675E755A381AE206B87 /* utils.c in Sources */ = {isa = PBXBuildFile; fileRef = 9CDA7FB8FA8B1B31A6C45BD10037CE18 /* utils.c */; settings = {COMPILER_FLAGS = "-D_THREAD_SAFE -fno-objc-arc"; }; }; + 5BA3D2BD699A01BF3A0E4C464BF5C8B6 /* QCloudLoggerOutput.h in Headers */ = {isa = PBXBuildFile; fileRef = CADE92E3BE41EE65BCBB512F7FC612B8 /* QCloudLoggerOutput.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 5BB6B99986FD7111B3AEBE931C7F507B /* MJRefreshAutoStateFooter.h in Headers */ = {isa = PBXBuildFile; fileRef = 04483493AE81CA6B29E55ED29DE41586 /* MJRefreshAutoStateFooter.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 5BC0FD0581F5C971B79B4AF7E1353115 /* UIGestureRecognizer+YYAdd.m in Sources */ = {isa = PBXBuildFile; fileRef = B6275FE53E390549AAD224E337C65C23 /* UIGestureRecognizer+YYAdd.m */; }; + 5BC67924B21B1732CA9F21705D397176 /* GPBMessage.m in Sources */ = {isa = PBXBuildFile; fileRef = EB6632376F3502E2D9C6BF8ACC2E0A33 /* GPBMessage.m */; settings = {COMPILER_FLAGS = "-fno-objc-arc"; }; }; + 5BD5D9B8F61C124A62C75D9AC36A07BD /* MJRefreshTrailer.m in Sources */ = {isa = PBXBuildFile; fileRef = 5BD3B0AC73D7D3B674D2C8951C3CC458 /* MJRefreshTrailer.m */; }; + 5BE284C8540E62459A6546BAC2672F7A /* enc_mips_dsp_r2.c in Sources */ = {isa = PBXBuildFile; fileRef = 878AE7C6CDB1A444CD8092D4A297E391 /* enc_mips_dsp_r2.c */; settings = {COMPILER_FLAGS = "-D_THREAD_SAFE -fno-objc-arc"; }; }; + 5BE3AADFCBDF0EC9A721A12B5BA7F7BD /* dec_sse41.c in Sources */ = {isa = PBXBuildFile; fileRef = EAEAABB94450E749A25AF3707224E59B /* dec_sse41.c */; settings = {COMPILER_FLAGS = "-D_THREAD_SAFE -fno-objc-arc"; }; }; 5BF9DF61DC40293C90DA4523952180E6 /* TUISystemMessageCellData.m in Sources */ = {isa = PBXBuildFile; fileRef = BFBE6390BE0DC947D8E0C65D9D69EE42 /* TUISystemMessageCellData.m */; }; - 5C2164E1F573103D5D332EAAB84514A9 /* LLMagnifierViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 4C10EA7251486F3CF046D8F5538ADA9A /* LLMagnifierViewController.m */; }; - 5C7199812C951AD5E976A6AA29A30BD5 /* RACReplaySubject.h in Headers */ = {isa = PBXBuildFile; fileRef = 34BCEB440A28333692E4A9A246780F63 /* RACReplaySubject.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 5C2164E1F573103D5D332EAAB84514A9 /* LLMagnifierViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 33A53419BC34A6CCB358D07E454EA09E /* LLMagnifierViewController.m */; }; + 5C42BF6B33B35F9CB3A090DF92854689 /* vp8i_enc.h in Headers */ = {isa = PBXBuildFile; fileRef = 380131B8E123CBEBF5EF2B2F50944602 /* vp8i_enc.h */; settings = {ATTRIBUTES = (Project, ); }; }; + 5C7199812C951AD5E976A6AA29A30BD5 /* RACReplaySubject.h in Headers */ = {isa = PBXBuildFile; fileRef = BBB8E73527FB7E5B15612F429C0A8F2E /* RACReplaySubject.h */; settings = {ATTRIBUTES = (Public, ); }; }; 5C73AEACAB4212C6C6274A6321C0D4A0 /* TUIEmojiMeditorProtocol.h in Headers */ = {isa = PBXBuildFile; fileRef = BC8547508910F204B4AB9E124BFF0C13 /* TUIEmojiMeditorProtocol.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 5C77D5C9A8BB60A3AC7F7A472510348D /* LLLocationWindow.h in Headers */ = {isa = PBXBuildFile; fileRef = 9E7F35BA45AF43CC7983D67E1C395F5A /* LLLocationWindow.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 5C7DC9BDD0273F9AD62077140FA48F4D /* unzip.h in Headers */ = {isa = PBXBuildFile; fileRef = 9F6EEE8C6A98AAA417490D4F34670A58 /* unzip.h */; settings = {ATTRIBUTES = (Project, ); }; }; - 5C822725E68A3E2CF442FA9E814EB89A /* LLScreenshotWindow.h in Headers */ = {isa = PBXBuildFile; fileRef = ADB1EF25CCD031473FB4F9709E6F2550 /* LLScreenshotWindow.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 5C88E1B78D6724C19D070FCCE10704CB /* IQKeyboardManager-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = 27A74E8E605B833398217C7585B54D30 /* IQKeyboardManager-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 5C77D5C9A8BB60A3AC7F7A472510348D /* LLLocationWindow.h in Headers */ = {isa = PBXBuildFile; fileRef = 38423F8F3364205E7E652C96998807CD /* LLLocationWindow.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 5C7CCD0361B588E3157821FF7EF6F35B /* SDWebImageIndicator.m in Sources */ = {isa = PBXBuildFile; fileRef = 29CE0D7F908564A238F70D76322D7C83 /* SDWebImageIndicator.m */; }; + 5C822725E68A3E2CF442FA9E814EB89A /* LLScreenshotWindow.h in Headers */ = {isa = PBXBuildFile; fileRef = 92B370C7C8365A49C3D05DD3FDE518C4 /* LLScreenshotWindow.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 5C88E1B78D6724C19D070FCCE10704CB /* IQKeyboardManager-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = E62BB46E22E182B4B5AAB0C82DE137D0 /* IQKeyboardManager-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; 5C9570BAE096521F0967FDE6B2EC8663 /* TUIMediaCollectionCell.m in Sources */ = {isa = PBXBuildFile; fileRef = 14B94D6CDFBC0C16AED0830D2F1A4DD1 /* TUIMediaCollectionCell.m */; }; - 5CAB535753B28B463140F421E9B00136 /* JXCategoryIndicatorCell.h in Headers */ = {isa = PBXBuildFile; fileRef = 64BF158414578943E8015D33BD5CB900 /* JXCategoryIndicatorCell.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 5CC332735380826301402B8544B8D2AE /* mux_types.h in Headers */ = {isa = PBXBuildFile; fileRef = 465D9400CBBC458DD7899D83EDE7E415 /* mux_types.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 5CD1164C22DA8E2882BDDD66A611D139 /* YBIBUtilities.m in Sources */ = {isa = PBXBuildFile; fileRef = AA4D60FFBE6EC179FBC8808525DA6D9D /* YBIBUtilities.m */; }; - 5CD7905E78EDF0CD5984A99DEB31B8C0 /* endian_inl_utils.h in Headers */ = {isa = PBXBuildFile; fileRef = 6ED43215E946B77CECE4547DF05B34CD /* endian_inl_utils.h */; settings = {ATTRIBUTES = (Project, ); }; }; - 5CDD538232C6646E26C7A4E77BC363C5 /* Algorithm.c in Sources */ = {isa = PBXBuildFile; fileRef = F0569AB649FAD1979AAD043A9886A4D5 /* Algorithm.c */; }; - 5D0638F3CACDB145864022B8A8AB6107 /* LLHierarchyInfoView.m in Sources */ = {isa = PBXBuildFile; fileRef = 70160915B805CCCE8098C6E79164C268 /* LLHierarchyInfoView.m */; }; - 5D30B58DF3C79C62631F3EB8E7A13187 /* LLAppInfoWindow.h in Headers */ = {isa = PBXBuildFile; fileRef = C57CD7050B94D854BDE5D9DCEC10FBBA /* LLAppInfoWindow.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 5D3228722C2C58A3EB991CE8B33E1AD6 /* LLFilterView.h in Headers */ = {isa = PBXBuildFile; fileRef = 78EA929E169916A9F9E7AD094C630211 /* LLFilterView.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 5D54317C2F74F775D7FD668710D6938F /* YYMemoryCache.m in Sources */ = {isa = PBXBuildFile; fileRef = 1138AFF1E9C05B6254CFE2757D8752DE /* YYMemoryCache.m */; }; - 5D5A991E2B3E5504A80FF49B84BB0221 /* LLShortCutWindow.h in Headers */ = {isa = PBXBuildFile; fileRef = 7971499FF2CB98199DA5DEF58AB6B7BE /* LLShortCutWindow.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 5D67CB51613B0B3A068081470855CD5E /* TUICoreTheme.bundle in Resources */ = {isa = PBXBuildFile; fileRef = A59F6537B1B9F23ED5E809B231C52402 /* TUICoreTheme.bundle */; }; - 5D884512066B213A70ECDC7C21E00D5B /* LLScreenshotBaseOperation.m in Sources */ = {isa = PBXBuildFile; fileRef = D5DF4228C29FD3D24B2C9710525CB678 /* LLScreenshotBaseOperation.m */; }; - 5D9B873C59994D52CE9758EFE54DABF3 /* SVGABezierPath.m in Sources */ = {isa = PBXBuildFile; fileRef = 0C5C66C53B90DFDE05D50CFFD1E55A6B /* SVGABezierPath.m */; }; - 5D9E43A8D2A2C78FC0703EBB9605A218 /* LLShortCutWindow.m in Sources */ = {isa = PBXBuildFile; fileRef = 78E1AF6CD965D6698401E49FAE61C114 /* LLShortCutWindow.m */; }; - 5DC8C4F0F23982E81CC41542FB030088 /* IQToolbar.m in Sources */ = {isa = PBXBuildFile; fileRef = D574930237D0B53170786DC8F3DF2FBA /* IQToolbar.m */; }; - 5DFCBADAC7D0FAC82C84A6C8E7BF1DA6 /* MJRefreshStateHeader.h in Headers */ = {isa = PBXBuildFile; fileRef = 20549C6E077C1966886A7F4966DFFE2D /* MJRefreshStateHeader.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 5E124176D9C928C295A0904964F03E8C /* NSSet+OSS.h in Headers */ = {isa = PBXBuildFile; fileRef = C50FE691FA8A4034C3B7F82696C1E3E4 /* NSSet+OSS.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 5C9E532874E0E1FD615C302B7C55EA7D /* UIView+TUILayout.m in Sources */ = {isa = PBXBuildFile; fileRef = F34ED37CCCFB96877F7C3DB719E3B5B8 /* UIView+TUILayout.m */; }; + 5CAB535753B28B463140F421E9B00136 /* JXCategoryIndicatorCell.h in Headers */ = {isa = PBXBuildFile; fileRef = 256D39F3AAE8F0B4297D2F583CE91DA0 /* JXCategoryIndicatorCell.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 5CD1164C22DA8E2882BDDD66A611D139 /* YBIBUtilities.m in Sources */ = {isa = PBXBuildFile; fileRef = 01F116E41F30A1BEB3F8B16782869C6C /* YBIBUtilities.m */; }; + 5CDD538232C6646E26C7A4E77BC363C5 /* Algorithm.c in Sources */ = {isa = PBXBuildFile; fileRef = 1A73459C2CC9D8D858F04BEFB0B50BA1 /* Algorithm.c */; }; + 5D0638F3CACDB145864022B8A8AB6107 /* LLHierarchyInfoView.m in Sources */ = {isa = PBXBuildFile; fileRef = F8E05516B4AFA1A47E780B068A22E7E9 /* LLHierarchyInfoView.m */; }; + 5D30B58DF3C79C62631F3EB8E7A13187 /* LLAppInfoWindow.h in Headers */ = {isa = PBXBuildFile; fileRef = F28FCFD7EF813D25B30D12F7E698FB24 /* LLAppInfoWindow.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 5D3228722C2C58A3EB991CE8B33E1AD6 /* LLFilterView.h in Headers */ = {isa = PBXBuildFile; fileRef = 939F642E6D82A2E63F328D05004F525C /* LLFilterView.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 5D3C21735CE9F0DFFE46955967DDA2A4 /* YYSpriteSheetImage.m in Sources */ = {isa = PBXBuildFile; fileRef = 44A8305BC3D1A52CCB23AA5A1D90D284 /* YYSpriteSheetImage.m */; }; + 5D54317C2F74F775D7FD668710D6938F /* YYMemoryCache.m in Sources */ = {isa = PBXBuildFile; fileRef = CFA215FD18CE2A201870B774F659F913 /* YYMemoryCache.m */; }; + 5D5A991E2B3E5504A80FF49B84BB0221 /* LLShortCutWindow.h in Headers */ = {isa = PBXBuildFile; fileRef = 6D01744AAFCCA20CB20800B360A1FA6A /* LLShortCutWindow.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 5D884512066B213A70ECDC7C21E00D5B /* LLScreenshotBaseOperation.m in Sources */ = {isa = PBXBuildFile; fileRef = D944D47E71E8CC4721AC562791FFA914 /* LLScreenshotBaseOperation.m */; }; + 5D9B873C59994D52CE9758EFE54DABF3 /* SVGABezierPath.m in Sources */ = {isa = PBXBuildFile; fileRef = 38A9F0F0BAE1325195D9E0BA7F6D3EA6 /* SVGABezierPath.m */; }; + 5D9E43A8D2A2C78FC0703EBB9605A218 /* LLShortCutWindow.m in Sources */ = {isa = PBXBuildFile; fileRef = 4C09EF151C191E0F6F7F6DC3F524DCDE /* LLShortCutWindow.m */; }; + 5DB037DE4D97B8898724F9F697DA15AB /* SDWeakProxy.h in Headers */ = {isa = PBXBuildFile; fileRef = F9BA14945E139C4567A39D99223B4A74 /* SDWeakProxy.h */; settings = {ATTRIBUTES = (Private, ); }; }; + 5DC8C4F0F23982E81CC41542FB030088 /* IQToolbar.m in Sources */ = {isa = PBXBuildFile; fileRef = 171952C1A3A5AF772DD6ECCA56E1D43B /* IQToolbar.m */; }; + 5DFCBADAC7D0FAC82C84A6C8E7BF1DA6 /* MJRefreshStateHeader.h in Headers */ = {isa = PBXBuildFile; fileRef = A565896E9ADE92E95BFA3D78C3448E59 /* MJRefreshStateHeader.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 5E1058BF78AA8B0A78CFA379CB1218F3 /* QCloudCOSXMLEndPoint.h in Headers */ = {isa = PBXBuildFile; fileRef = F2DC47CB9B03DC306718A9641398E670 /* QCloudCOSXMLEndPoint.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 5E124176D9C928C295A0904964F03E8C /* NSSet+OSS.h in Headers */ = {isa = PBXBuildFile; fileRef = 517CE6AC36880E1AD113C29DE39FF026 /* NSSet+OSS.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 5E28C60AE91FADDC0B11C38D4519D073 /* QCloudLoggerOutput.m in Sources */ = {isa = PBXBuildFile; fileRef = 140AA7712FA9AE158F7E5EADD7AFED63 /* QCloudLoggerOutput.m */; }; 5E415CD7A2331BA678B8D645A3F008C4 /* TUIOrderCell_Minimalist.m in Sources */ = {isa = PBXBuildFile; fileRef = A72FACE9B3363185CE164C51632BCC33 /* TUIOrderCell_Minimalist.m */; }; 5E493A546635827EF0E0A4124066E621 /* TUIMergeMessageListController.m in Sources */ = {isa = PBXBuildFile; fileRef = 59916D633D9814D68A1250D542C08FFD /* TUIMergeMessageListController.m */; }; 5E50B97D43DF5E5E313B72C6B40FA067 /* TUIConversationListController.h in Headers */ = {isa = PBXBuildFile; fileRef = DC6ACEAC8B9D92AAC2A3AE6566E1D7DC /* TUIConversationListController.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 5E616318FF1DD9AFB1340D318311AA8B /* LLFilterLabelCell.m in Sources */ = {isa = PBXBuildFile; fileRef = 05F1BFAB800B23714B38CBABF73935E4 /* LLFilterLabelCell.m */; }; + 5E616318FF1DD9AFB1340D318311AA8B /* LLFilterLabelCell.m in Sources */ = {isa = PBXBuildFile; fileRef = F3C4F65C4B3175EE439B83B4E00B7FFC /* LLFilterLabelCell.m */; }; 5E8CAF871BF3AF3A9F5BF10A71197958 /* TUIChatConfig_Minimalist.h in Headers */ = {isa = PBXBuildFile; fileRef = 08FC247E9EF105334F5F448B6F5EEDD2 /* TUIChatConfig_Minimalist.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 5ED5469E3F90BED7502CEF00C2817BF9 /* MKMapView+LL_Location.h in Headers */ = {isa = PBXBuildFile; fileRef = 899D39DBF0662F0703181A527D2560EF /* MKMapView+LL_Location.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 5EE53074B8A35D48AB76CAF38C88A37A /* JXCategoryView.h in Headers */ = {isa = PBXBuildFile; fileRef = 979D01138FFAA7C8E7C2B9EEC17F1DEE /* JXCategoryView.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 5F2221EEE7C397A1BCC9C3FEB9B4B90B /* SDImageFramePool.h in Headers */ = {isa = PBXBuildFile; fileRef = 39C1E2A4916B0F942ED8CB193963BB81 /* SDImageFramePool.h */; settings = {ATTRIBUTES = (Private, ); }; }; - 5F2257A9CCF4C300CDFBBC80341118D4 /* YYText-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = 34DCB86206FE5F8BFE8B5FB158C5DE18 /* YYText-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 5F3FD64E21CEC446689D81BC36F6F3B0 /* TUICommonModel.h in Headers */ = {isa = PBXBuildFile; fileRef = 5F2B239B652D2D3DC03E303D582E2C23 /* TUICommonModel.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 5ED5469E3F90BED7502CEF00C2817BF9 /* MKMapView+LL_Location.h in Headers */ = {isa = PBXBuildFile; fileRef = 5BE42352D9754498DBB58BBB69049326 /* MKMapView+LL_Location.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 5EE53074B8A35D48AB76CAF38C88A37A /* JXCategoryView.h in Headers */ = {isa = PBXBuildFile; fileRef = A3A33854C22C9DED462D690FC5D83E78 /* JXCategoryView.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 5F2257A9CCF4C300CDFBBC80341118D4 /* YYText-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = 512EC903D472361CCD58ADB381897CFD /* YYText-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 5F2B5328A669BE4B6D028F19070DEF90 /* QCloudProgrameDefines.h in Headers */ = {isa = PBXBuildFile; fileRef = 348F60D805DCC0E0BD4D382F5BE1701C /* QCloudProgrameDefines.h */; settings = {ATTRIBUTES = (Public, ); }; }; 5F43351A8005637755AEF253F8E72ACD /* TUIConversationTheme.bundle in Resources */ = {isa = PBXBuildFile; fileRef = D04AF005124A945C310D69F389023BE3 /* TUIConversationTheme.bundle */; }; - 5F45735DF355530CC955066D3C007E19 /* MASViewConstraint.h in Headers */ = {isa = PBXBuildFile; fileRef = B2F47109BCC17FA9FE00931C6C532066 /* MASViewConstraint.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 5F8F021870002E9A2776909ACB965E3E /* NSString+RACSequenceAdditions.m in Sources */ = {isa = PBXBuildFile; fileRef = BF9F88796446E07B16F5CA618BD2E80B /* NSString+RACSequenceAdditions.m */; }; + 5F45735DF355530CC955066D3C007E19 /* MASViewConstraint.h in Headers */ = {isa = PBXBuildFile; fileRef = 13FEC6BC9EE134DDC176142FABA564F3 /* MASViewConstraint.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 5F8F021870002E9A2776909ACB965E3E /* NSString+RACSequenceAdditions.m in Sources */ = {isa = PBXBuildFile; fileRef = 8F44CE3F4F0E453A47C43891F081FF7C /* NSString+RACSequenceAdditions.m */; }; 5F9C3FD38AD0D45C60B20B1742736AA0 /* TUIGroupCreatedCellData.h in Headers */ = {isa = PBXBuildFile; fileRef = 4D79865AB8E4EF9F3A62AE2FD846AFAC /* TUIGroupCreatedCellData.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 5FACCF863E68273118733B945DDEE068 /* SDDeviceHelper.h in Headers */ = {isa = PBXBuildFile; fileRef = 70264D7981AAA844BD90AB2E551A785A /* SDDeviceHelper.h */; settings = {ATTRIBUTES = (Private, ); }; }; 5FBB5E15B56584BABDCCE2345577972D /* TUIConversationSelectDataProvider.m in Sources */ = {isa = PBXBuildFile; fileRef = C993B40579213A499C1882A9530E0E25 /* TUIConversationSelectDataProvider.m */; }; - 5FDC4239F7B651092BF582D0F460BAD4 /* UIView+MJExtension.m in Sources */ = {isa = PBXBuildFile; fileRef = E2E2540E6B97F042EB7CC229F42B939E /* UIView+MJExtension.m */; }; + 5FDC4239F7B651092BF582D0F460BAD4 /* UIView+MJExtension.m in Sources */ = {isa = PBXBuildFile; fileRef = 8E94E4E4444BC6E312965ABBB875E3EC /* UIView+MJExtension.m */; }; 5FFBF6CED86A676A52902B51246A1FED /* TUISecurityStrikeView.h in Headers */ = {isa = PBXBuildFile; fileRef = C9299C3B2AA7F5B8F7F249683F8DFC76 /* TUISecurityStrikeView.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 6008C8594E2AA2259DA7C27E44AD47AA /* SDWebImageIndicator.m in Sources */ = {isa = PBXBuildFile; fileRef = 23247EF611DA3AD6CF1F2A92738C3F3A /* SDWebImageIndicator.m */; }; - 602772B0C8F571BE83997BC91C52A3A6 /* SDImageAssetManager.h in Headers */ = {isa = PBXBuildFile; fileRef = 6A3832EB868F7E208911BFFA4A40B31D /* SDImageAssetManager.h */; settings = {ATTRIBUTES = (Private, ); }; }; - 60451F00D1A161C10B643F4DCCCF7F64 /* QGAnimatedImageDecodeManager.h in Headers */ = {isa = PBXBuildFile; fileRef = F172B1B59ACACDE64DE3AE908EC171B0 /* QGAnimatedImageDecodeManager.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 604F3D868CCFD59D28C0C9A055645AAA /* ProgressChecker.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4BC4121E1020CEE8E5BCE66D6B415EB9 /* ProgressChecker.swift */; }; - 604F4B4F732177FC3393A5AA2A7A6A23 /* MQTTClient.h in Headers */ = {isa = PBXBuildFile; fileRef = E6A2E8DF1C0C065161F7CC2BF9A28954 /* MQTTClient.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 60451F00D1A161C10B643F4DCCCF7F64 /* QGAnimatedImageDecodeManager.h in Headers */ = {isa = PBXBuildFile; fileRef = 411A5B0C12E31DC1B0A4913E176C3514 /* QGAnimatedImageDecodeManager.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 604F3D868CCFD59D28C0C9A055645AAA /* ProgressChecker.swift in Sources */ = {isa = PBXBuildFile; fileRef = DD245A2E8AE763FF9DB33272BBFD5334 /* ProgressChecker.swift */; }; + 604F4B4F732177FC3393A5AA2A7A6A23 /* MQTTClient.h in Headers */ = {isa = PBXBuildFile; fileRef = A0D0E32105DD24D18513B8162EA18D47 /* MQTTClient.h */; settings = {ATTRIBUTES = (Public, ); }; }; 607B8A893A5D58B9CE8D3E9B0679742F /* UIKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 83AC327FDFB768874F13D3CD20C46095 /* UIKit.framework */; }; - 607E23B19FD8700ED4BA434C686CABED /* IQUIView+IQKeyboardToolbar.m in Sources */ = {isa = PBXBuildFile; fileRef = 3C8BE30F840B83DB35EC45D0BC727A37 /* IQUIView+IQKeyboardToolbar.m */; }; + 607E23B19FD8700ED4BA434C686CABED /* IQUIView+IQKeyboardToolbar.m in Sources */ = {isa = PBXBuildFile; fileRef = C7315416C91B3CF333FEDDE0D2696E94 /* IQUIView+IQKeyboardToolbar.m */; }; + 608B9353328B129D37B87A64DAE971A5 /* QCloudServiceConfiguration+Quality.m in Sources */ = {isa = PBXBuildFile; fileRef = CCE346E3012BA03247A7FA88B48F8913 /* QCloudServiceConfiguration+Quality.m */; }; 608BD706F2A0BB3666773E3D3C161FAB /* TUIGroupChatViewController_Minimalist.m in Sources */ = {isa = PBXBuildFile; fileRef = 13F6BF283CB904EC3C778176A1930515 /* TUIGroupChatViewController_Minimalist.m */; }; - 6090A2B1C6B62E89CA92305CFC855212 /* AvoidCrashStubProxy.m in Sources */ = {isa = PBXBuildFile; fileRef = 0C1A87184CB5B1766C02E4CABB67CE89 /* AvoidCrashStubProxy.m */; }; - 60C38B6801646A6AAE43E0A9FA01AABC /* QGMP4Parser.m in Sources */ = {isa = PBXBuildFile; fileRef = D0FF48F5F84AA4ECC2ED9051A2BCD707 /* QGMP4Parser.m */; }; - 60C8DAED3357014E8A529EEA0E268F20 /* YYImage-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = F2AFB8155C88CB1513B0A52BC47AF899 /* YYImage-dummy.m */; }; - 60E384ABEF99F5104C99DCB596E2BE95 /* mz_crypt.c in Sources */ = {isa = PBXBuildFile; fileRef = 35129B8F9F4AF6040B3700EBF65B3561 /* mz_crypt.c */; }; - 60F8F5D53A696B13D2E88CD5892A92CF /* IQTextView.h in Headers */ = {isa = PBXBuildFile; fileRef = 2B1455620F687F6DFE9E1EAA52FEBBD0 /* IQTextView.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 60FF685230C9A1542F5DE9A0356A76D2 /* QGAnimatedImageDecodeManager.m in Sources */ = {isa = PBXBuildFile; fileRef = 47157BC0FAEB8D0BC69F8C03265A065F /* QGAnimatedImageDecodeManager.m */; }; - 612ACC4DD4B9CD4807109AAE3AB6825A /* LLRouter+Network.h in Headers */ = {isa = PBXBuildFile; fileRef = B6BE47762C9A79E0899482F4EFDDF8BE /* LLRouter+Network.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 61461B0D9D7B81C3F8D24066D9A19DCE /* MJRefreshGifHeader.h in Headers */ = {isa = PBXBuildFile; fileRef = C4EB5433DD0D64544C34394BF6227C50 /* MJRefreshGifHeader.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 61507E402F1F7C58BF119995A0479A22 /* NSArray+MASShorthandAdditions.h in Headers */ = {isa = PBXBuildFile; fileRef = 862C89D856CA6970C67F4C1C6F6C13A9 /* NSArray+MASShorthandAdditions.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 61779BAF0B218F01021557015ECEC5F9 /* CLLocation+LL_Location.m in Sources */ = {isa = PBXBuildFile; fileRef = 40CDCF0A855C2AE7E071E7C592346090 /* CLLocation+LL_Location.m */; }; - 61BE2A0AA4858B0477E60FA1B7D059D6 /* LLCrashWindow.h in Headers */ = {isa = PBXBuildFile; fileRef = 029643B1FDD1E9FA015424F2D2FE96BF /* LLCrashWindow.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 61CE1E12D365AD1DED7FBF50E25672BD /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = F91075A92425F75F02E0E1C8D455AF79 /* Foundation.framework */; }; - 61CFFD49744986F710A9C02A297C16EE /* MQTTSessionLegacy.h in Headers */ = {isa = PBXBuildFile; fileRef = A3568A55FDE1DB9E52DFED4A1F9580A7 /* MQTTSessionLegacy.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 6204F3E4E75772BB6CAB13CD53D9D93E /* JXPagerSmoothView.m in Sources */ = {isa = PBXBuildFile; fileRef = FBF87F2DB2943C33A83FB3E273EF5C6E /* JXPagerSmoothView.m */; }; + 6090A2B1C6B62E89CA92305CFC855212 /* AvoidCrashStubProxy.m in Sources */ = {isa = PBXBuildFile; fileRef = DF916CC5A16F2C4A062458992ED868E5 /* AvoidCrashStubProxy.m */; }; + 60C38B6801646A6AAE43E0A9FA01AABC /* QGMP4Parser.m in Sources */ = {isa = PBXBuildFile; fileRef = F1A541AEECDD4A5D89130BB48241344A /* QGMP4Parser.m */; }; + 60E384ABEF99F5104C99DCB596E2BE95 /* mz_crypt.c in Sources */ = {isa = PBXBuildFile; fileRef = ACAA04DF49E064B429EEDA8898EA38C6 /* mz_crypt.c */; }; + 60E449E5ABDBAE7822B6CDC59EDA929B /* SDWebImageOptionsProcessor.h in Headers */ = {isa = PBXBuildFile; fileRef = 381C0C51650DE5BB3FF030BC00F289F7 /* SDWebImageOptionsProcessor.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 60F8F5D53A696B13D2E88CD5892A92CF /* IQTextView.h in Headers */ = {isa = PBXBuildFile; fileRef = CABDAF6E815567ABC244C42CFF7B59E9 /* IQTextView.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 60FF685230C9A1542F5DE9A0356A76D2 /* QGAnimatedImageDecodeManager.m in Sources */ = {isa = PBXBuildFile; fileRef = 473121754F756FBD831BB36046B34507 /* QGAnimatedImageDecodeManager.m */; }; + 612ACC4DD4B9CD4807109AAE3AB6825A /* LLRouter+Network.h in Headers */ = {isa = PBXBuildFile; fileRef = 2D7C99155B46C46448B59A7EBC17967C /* LLRouter+Network.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 61461B0D9D7B81C3F8D24066D9A19DCE /* MJRefreshGifHeader.h in Headers */ = {isa = PBXBuildFile; fileRef = 4AC207119B73A324FA703ECBC70E7591 /* MJRefreshGifHeader.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 61507E402F1F7C58BF119995A0479A22 /* NSArray+MASShorthandAdditions.h in Headers */ = {isa = PBXBuildFile; fileRef = F0351BD5F213FBC346E2339F8043EEA4 /* NSArray+MASShorthandAdditions.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 61779BAF0B218F01021557015ECEC5F9 /* CLLocation+LL_Location.m in Sources */ = {isa = PBXBuildFile; fileRef = 6266B7B85BC7C76E37F697E8C52F7304 /* CLLocation+LL_Location.m */; }; + 61BE2A0AA4858B0477E60FA1B7D059D6 /* LLCrashWindow.h in Headers */ = {isa = PBXBuildFile; fileRef = F1B7927F6989CFB987810F4C0B4BF875 /* LLCrashWindow.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 61CFFD49744986F710A9C02A297C16EE /* MQTTSessionLegacy.h in Headers */ = {isa = PBXBuildFile; fileRef = 8638D3BA370C6BB7994C82FE10994F39 /* MQTTSessionLegacy.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 6204F3E4E75772BB6CAB13CD53D9D93E /* JXPagerSmoothView.m in Sources */ = {isa = PBXBuildFile; fileRef = F6BA536F83EE19990C5ADB308021ACB8 /* JXPagerSmoothView.m */; }; 6207E7F7332AC910F0D0AC493EE973F3 /* TUIBaseMessageController_Minimalist.h in Headers */ = {isa = PBXBuildFile; fileRef = C56A469CB25B4F78660D87B430C21BFE /* TUIBaseMessageController_Minimalist.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 620A0FFFDE5AEF215E28135566106BA4 /* JXCategoryBaseView.m in Sources */ = {isa = PBXBuildFile; fileRef = BFED9E7FA8A9FDD85D5E48A13B8E8F85 /* JXCategoryBaseView.m */; }; - 6215CAAC4B72DECED49E706D88C3B66D /* RACDelegateProxy.m in Sources */ = {isa = PBXBuildFile; fileRef = E54BB4993F0F6ABD3B22325957CF3841 /* RACDelegateProxy.m */; }; - 6230D9CA0C66211B5FD74B883B795E5C /* LLWindowManager+Magnifier.m in Sources */ = {isa = PBXBuildFile; fileRef = 105B905040346C3D2EBEF1AFBFA9B146 /* LLWindowManager+Magnifier.m */; }; + 620A0FFFDE5AEF215E28135566106BA4 /* JXCategoryBaseView.m in Sources */ = {isa = PBXBuildFile; fileRef = 7DE8A580BF8985ABA68B8D11064530FB /* JXCategoryBaseView.m */; }; + 6215CAAC4B72DECED49E706D88C3B66D /* RACDelegateProxy.m in Sources */ = {isa = PBXBuildFile; fileRef = 1E0A6CF1D49A40449DA267861AD1E722 /* RACDelegateProxy.m */; }; + 6230D9CA0C66211B5FD74B883B795E5C /* LLWindowManager+Magnifier.m in Sources */ = {isa = PBXBuildFile; fileRef = 63B9B4BACBEA3184F3651DFA58603133 /* LLWindowManager+Magnifier.m */; }; + 6239BB475D99E1C8B765A85E51F458E1 /* vp8l_enc.c in Sources */ = {isa = PBXBuildFile; fileRef = 2AE23C0B84FD193CA343B607C3D1F663 /* vp8l_enc.c */; settings = {COMPILER_FLAGS = "-D_THREAD_SAFE -fno-objc-arc"; }; }; 626401380ADC61520BB5627C76521683 /* IQKeyboardManager-IQKeyboardManager in Resources */ = {isa = PBXBuildFile; fileRef = A5B2838E4866923F3DA717B058EBFF5D /* IQKeyboardManager-IQKeyboardManager */; }; - 6276755DF85C29E6FA83F08E4BE4120D /* AliyunOSSiOS-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = 7E65EF5DD78F66325A573218AE7EA5E1 /* AliyunOSSiOS-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 62A097A7D7D02797C12DEC7CA015CA40 /* YYWebImageOperation.h in Headers */ = {isa = PBXBuildFile; fileRef = 45747E992794769A411E7106BAE44257 /* YYWebImageOperation.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 6276755DF85C29E6FA83F08E4BE4120D /* AliyunOSSiOS-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = 4DD84671C676DB5A9EDF1B803F587C61 /* AliyunOSSiOS-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 627C428536FDE6CDF58F5676D7256A03 /* SDAssociatedObject.m in Sources */ = {isa = PBXBuildFile; fileRef = 61B8191C761F55FF121C7571334E3197 /* SDAssociatedObject.m */; }; + 62A097A7D7D02797C12DEC7CA015CA40 /* YYWebImageOperation.h in Headers */ = {isa = PBXBuildFile; fileRef = 23BAECC7410EB345D7D890FBECDA1763 /* YYWebImageOperation.h */; settings = {ATTRIBUTES = (Public, ); }; }; 62D14C8533949FE879618320CB0C14A0 /* TUIVideoCollectionCell.m in Sources */ = {isa = PBXBuildFile; fileRef = 847F0D230F54AFB72EBED217B5A5D29B /* TUIVideoCollectionCell.m */; }; - 62FCD4A967D743DE07DA80DACF5B14DB /* IQUIViewController+Additions.m in Sources */ = {isa = PBXBuildFile; fileRef = 067E849D32A7BD0C279F2CCD97C22742 /* IQUIViewController+Additions.m */; }; - 631C7A46CD48A0306B13B66BB384EC03 /* YYTextParser.h in Headers */ = {isa = PBXBuildFile; fileRef = 12101AFD2403BB3035912A7EEBF3B089 /* YYTextParser.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 6340AFEE04830C01EB74D920029A229B /* LLEntryBigTitleView.m in Sources */ = {isa = PBXBuildFile; fileRef = 3EC6AEFDC235E429CBB65ADDA22008C2 /* LLEntryBigTitleView.m */; }; - 6362233D4732C85B61C2E66A8B1A2F4F /* SDImageGraphics.m in Sources */ = {isa = PBXBuildFile; fileRef = D03E32DA9872F407D0A99E50C50BC378 /* SDImageGraphics.m */; }; + 62E968DC66E1A0A7031DA9DA2FC73A4C /* QCloudCOSTransferMangerService.h in Headers */ = {isa = PBXBuildFile; fileRef = FE49047C963CAAC22EA9DAEE82414272 /* QCloudCOSTransferMangerService.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 62FCD4A967D743DE07DA80DACF5B14DB /* IQUIViewController+Additions.m in Sources */ = {isa = PBXBuildFile; fileRef = CC0989E7BC16BCEFD24143416FE27094 /* IQUIViewController+Additions.m */; }; + 631C7A46CD48A0306B13B66BB384EC03 /* YYTextParser.h in Headers */ = {isa = PBXBuildFile; fileRef = 1B5BDB8A4E3E1A103D830B649A2DE327 /* YYTextParser.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 63385A73A7EDF785A8EEEACD6E598C8D /* QCloudHTTPMultiDataStream.h in Headers */ = {isa = PBXBuildFile; fileRef = B7785600CA1CE726B540619F36C210A5 /* QCloudHTTPMultiDataStream.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 633F564D1934AF655632B753E13DB7BB /* dec_sse2.c in Sources */ = {isa = PBXBuildFile; fileRef = 148E56923E88BF660AC5CD67D8B05C46 /* dec_sse2.c */; settings = {COMPILER_FLAGS = "-D_THREAD_SAFE -fno-objc-arc"; }; }; + 6340AFEE04830C01EB74D920029A229B /* LLEntryBigTitleView.m in Sources */ = {isa = PBXBuildFile; fileRef = 66A1B7286800F9153C0B6AAF9A0A3549 /* LLEntryBigTitleView.m */; }; 636A4627F4602DE3DEE47170A8F32EAB /* SystemConfiguration.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1E7B96200FED33071FAA8946D3A6788E /* SystemConfiguration.framework */; }; 63746085EDBFE2EE310F1B9E6A24527B /* TUIChatConversationModel.h in Headers */ = {isa = PBXBuildFile; fileRef = 4251EBFE894C9B59DEFEB487B9FD015E /* TUIChatConversationModel.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 637DCB79C92036D3EF3C67BB1CD27486 /* QCloudIntelligenceTimeOutAdapter.h in Headers */ = {isa = PBXBuildFile; fileRef = B3400033532838906F71E9C292A9BF77 /* QCloudIntelligenceTimeOutAdapter.h */; settings = {ATTRIBUTES = (Public, ); }; }; 6389FC54D6F7FAF221130A675DC243AC /* TUIInputMoreCellData.m in Sources */ = {isa = PBXBuildFile; fileRef = 064BE23A98D1538F5AB5682881F46F37 /* TUIInputMoreCellData.m */; }; - 63CF0152592B0C530806B85CB512BC60 /* ScoringMachineProtocol+Events.swift in Sources */ = {isa = PBXBuildFile; fileRef = EAE59A937C0D00ADB586F516A7B50CDA /* ScoringMachineProtocol+Events.swift */; }; - 63D8A88D36948E62F745594854E0677F /* FMDB.h in Headers */ = {isa = PBXBuildFile; fileRef = 1739D40E3ECE7CF5786D24A51C8AA0B0 /* FMDB.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 63DBDFBDF0206E44813856A279431DCC /* LLScreenshot.h in Headers */ = {isa = PBXBuildFile; fileRef = 1C026300FFFB099F48154B7D5E9C26B1 /* LLScreenshot.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 63DEE7A8F89B3204E6B60AACB4DBA1B8 /* MQTTLog.h in Headers */ = {isa = PBXBuildFile; fileRef = 9EA98A7121979D4F6F445BF0363C017C /* MQTTLog.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 63F31CE965534C2AEAD013023B4A1C77 /* NSMutableString+AvoidCrash.h in Headers */ = {isa = PBXBuildFile; fileRef = E3F9DDDD63205FF6D3C3B1491080E62D /* NSMutableString+AvoidCrash.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 6400909164B4B3DD0FAEFD9ECC2C8E37 /* UIColor+VAPUtil.h in Headers */ = {isa = PBXBuildFile; fileRef = 27DF334FB5C90AA90F7FA4EF65244AC6 /* UIColor+VAPUtil.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 64308875A4ADBE88D2C76D622FACF1D2 /* YBIBAnimatedTransition.m in Sources */ = {isa = PBXBuildFile; fileRef = 448E2DA9F08232ACEBC665701C58C0FA /* YBIBAnimatedTransition.m */; }; + 63CF0152592B0C530806B85CB512BC60 /* ScoringMachineProtocol+Events.swift in Sources */ = {isa = PBXBuildFile; fileRef = E1A2959CE55336EA28C3DDBBE3D50588 /* ScoringMachineProtocol+Events.swift */; }; + 63D8A88D36948E62F745594854E0677F /* FMDB.h in Headers */ = {isa = PBXBuildFile; fileRef = 137A9C20B65B87E549A6267C60BA5B81 /* FMDB.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 63DBDFBDF0206E44813856A279431DCC /* LLScreenshot.h in Headers */ = {isa = PBXBuildFile; fileRef = A77EB632553A0A492720FBAC64A2DF93 /* LLScreenshot.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 63DEE7A8F89B3204E6B60AACB4DBA1B8 /* MQTTLog.h in Headers */ = {isa = PBXBuildFile; fileRef = 2E0988409A5182DDC8136E3CC4179BF5 /* MQTTLog.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 63F31CE965534C2AEAD013023B4A1C77 /* NSMutableString+AvoidCrash.h in Headers */ = {isa = PBXBuildFile; fileRef = 91B38216C9217DACF5ACC9EA5145E770 /* NSMutableString+AvoidCrash.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 63FD6FB771881021CF073F4B6A6A3537 /* QCloudPutObjectRequest+CustomBuild.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B5F8B9B8807D978B0FF32BEACD47182 /* QCloudPutObjectRequest+CustomBuild.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 6400909164B4B3DD0FAEFD9ECC2C8E37 /* UIColor+VAPUtil.h in Headers */ = {isa = PBXBuildFile; fileRef = 5B225C31748D5973C2767CBCEA2616DA /* UIColor+VAPUtil.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 64308875A4ADBE88D2C76D622FACF1D2 /* YBIBAnimatedTransition.m in Sources */ = {isa = PBXBuildFile; fileRef = 9BE9B48D28DCC4DBEE3A82849379B15D /* YBIBAnimatedTransition.m */; }; 64390431DEDC8EA8F5A1280968763728 /* AVFoundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = A0CCB28EE0520D9714B91ADFEFCC87A3 /* AVFoundation.framework */; }; - 645EE6DF7F9625882CE6DCB15B30BD6C /* LLThemeColor.m in Sources */ = {isa = PBXBuildFile; fileRef = A5428420D1649D6B7387154BC64BD61F /* LLThemeColor.m */; }; - 6468A0261E6DBC056892B60843E1B1E9 /* SDAssociatedObject.h in Headers */ = {isa = PBXBuildFile; fileRef = 19892B4444E8A8E2B48DFB057AFF8C54 /* SDAssociatedObject.h */; settings = {ATTRIBUTES = (Private, ); }; }; - 64A1E95C0E8186396974297F2B4C009D /* NSURLSessionConfiguration+LL_Network.h in Headers */ = {isa = PBXBuildFile; fileRef = A8F9A41909751D027FEC04392628035E /* NSURLSessionConfiguration+LL_Network.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 64BD4C1893460DE1396EACCA3561C722 /* NSArray+YYAdd.h in Headers */ = {isa = PBXBuildFile; fileRef = A6EDC19BB012FC94BC757E0EC9BF814E /* NSArray+YYAdd.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 64C810322128A0A80D156EEF3A01D2B8 /* OfflinePushExtConfigInfo.m in Sources */ = {isa = PBXBuildFile; fileRef = C8F97B02F5B488511B0CE5FA4CFE7F1A /* OfflinePushExtConfigInfo.m */; }; - 64DE89266AEBCC1D29B097CF9889D8A9 /* GPBDictionary.m in Sources */ = {isa = PBXBuildFile; fileRef = 9077684F9BA457B0CC80131BC2D3D790 /* GPBDictionary.m */; settings = {COMPILER_FLAGS = "-fno-objc-arc"; }; }; + 645EE6DF7F9625882CE6DCB15B30BD6C /* LLThemeColor.m in Sources */ = {isa = PBXBuildFile; fileRef = 1309C5A556D19DF70F71226558A8775A /* LLThemeColor.m */; }; + 6472ABC08E741AA1097C598001B765A7 /* SDImageCache.h in Headers */ = {isa = PBXBuildFile; fileRef = 8CE1912E0C18C5CD4EFB419D62667262 /* SDImageCache.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 64A1E95C0E8186396974297F2B4C009D /* NSURLSessionConfiguration+LL_Network.h in Headers */ = {isa = PBXBuildFile; fileRef = B8B6B8F0BED93D0BD0BEE76007D1292A /* NSURLSessionConfiguration+LL_Network.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 64BD4C1893460DE1396EACCA3561C722 /* NSArray+YYAdd.h in Headers */ = {isa = PBXBuildFile; fileRef = A152F29126ECD353288CB6D7282596B1 /* NSArray+YYAdd.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 64DE89266AEBCC1D29B097CF9889D8A9 /* GPBDictionary.m in Sources */ = {isa = PBXBuildFile; fileRef = 5487F017F2C6A867C5AE7ECE3797AD8E /* GPBDictionary.m */; settings = {COMPILER_FLAGS = "-fno-objc-arc"; }; }; 64E91CE7BA03A0B2D15A87F39122C804 /* TUIVideoReplyQuoteViewData.h in Headers */ = {isa = PBXBuildFile; fileRef = 451B36F0F04B8637DE43FB12431B05F3 /* TUIVideoReplyQuoteViewData.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 650441ED94EA9BEFAA55E9DA86246464 /* OSSSignerParams.m in Sources */ = {isa = PBXBuildFile; fileRef = 1444DD729800C600C3FC005A7D08C795 /* OSSSignerParams.m */; }; - 650BA43CA729BA2B435B4720C6F5B802 /* LLRouter+Crash.h in Headers */ = {isa = PBXBuildFile; fileRef = FDF637E456682345CA37569F97D5E821 /* LLRouter+Crash.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 652A8A583FB18B03181DB6429256292F /* NSHTTPURLResponse+LL_Network.m in Sources */ = {isa = PBXBuildFile; fileRef = 34AB9D4B67F808A65B4C76074FF1074C /* NSHTTPURLResponse+LL_Network.m */; }; - 653FAEE8368822FD2F59BF59D217047C /* UIView+VAP.m in Sources */ = {isa = PBXBuildFile; fileRef = 12C424B95B1043BA4941599E8D71457C /* UIView+VAP.m */; }; - 6577A9EB1AED47B915B7F77C3F8BF335 /* mz_os.c in Sources */ = {isa = PBXBuildFile; fileRef = 928E50522E71F758AA262A680F299967 /* mz_os.c */; }; - 65A77C296675740D11691D85BBD9B2F8 /* LLNetwork.h in Headers */ = {isa = PBXBuildFile; fileRef = EC0432E6C5A9F3162D407A3C677C2791 /* LLNetwork.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 65D1DAFE46F668E75DFC6C836843AB56 /* SVGAAudioLayer.m in Sources */ = {isa = PBXBuildFile; fileRef = 3F7A1528D4F0591CC5C105BAA48929F8 /* SVGAAudioLayer.m */; }; - 65D36040EFBEE963EB0C7A2E69E0BE5D /* TZAssetModel.m in Sources */ = {isa = PBXBuildFile; fileRef = C7971EB1474B2162A3317E778F3ED1B1 /* TZAssetModel.m */; }; - 65DA00E88E7D7050416557289C7BF1AA /* Log.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2BEFFCC856F9435D518C2E4C45BD84C9 /* Log.swift */; }; - 65DB6D055AAD5F89EFB33C554CA7F53B /* IQNSArray+Sort.h in Headers */ = {isa = PBXBuildFile; fileRef = 06DE3814E457DBAE1243F555A99E0900 /* IQNSArray+Sort.h */; settings = {ATTRIBUTES = (Project, ); }; }; - 66187A77817A27C7EAA46CA9E1183C67 /* RACEmptySequence.m in Sources */ = {isa = PBXBuildFile; fileRef = 614E21F4741355B3B329E475AAD5EE31 /* RACEmptySequence.m */; }; - 661DE3EC5A5F7805ACD68EBA077AF612 /* GPBDuration.pbobjc.h in Headers */ = {isa = PBXBuildFile; fileRef = 04CEF05709246E123CA26B88CC2B0794 /* GPBDuration.pbobjc.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 6630C0B541E50903F9AD81FD847CFE7A /* JXCategoryIndicatorBackgroundView.m in Sources */ = {isa = PBXBuildFile; fileRef = 8CDBCCA12A44826584E068F9D41B2142 /* JXCategoryIndicatorBackgroundView.m */; }; - 6636EB3DEA42AE95FF246274BD7BE3F8 /* OSSNetworkingRequestDelegate.h in Headers */ = {isa = PBXBuildFile; fileRef = 9C1A7138173D077ED980C448E301A54B /* OSSNetworkingRequestDelegate.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 650441ED94EA9BEFAA55E9DA86246464 /* OSSSignerParams.m in Sources */ = {isa = PBXBuildFile; fileRef = D61672BC580B7295B72BAA51B46E2C81 /* OSSSignerParams.m */; }; + 650BA43CA729BA2B435B4720C6F5B802 /* LLRouter+Crash.h in Headers */ = {isa = PBXBuildFile; fileRef = C06331A6F143EE9F2A7BBD07E8FF3F8A /* LLRouter+Crash.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 65175B123149F1485F7262CC237E114E /* common_sse2.h in Headers */ = {isa = PBXBuildFile; fileRef = CD287969EAB5F5DC4D31824EC51AAD45 /* common_sse2.h */; settings = {ATTRIBUTES = (Project, ); }; }; + 652A8A583FB18B03181DB6429256292F /* NSHTTPURLResponse+LL_Network.m in Sources */ = {isa = PBXBuildFile; fileRef = FC6AAE19178B09BFA7FF9D1C8B678484 /* NSHTTPURLResponse+LL_Network.m */; }; + 653FAEE8368822FD2F59BF59D217047C /* UIView+VAP.m in Sources */ = {isa = PBXBuildFile; fileRef = 7117659E612C3305B5061F6263F50C7F /* UIView+VAP.m */; }; + 655CDE9DECD35A571DC6E6311DDA9D6E /* UIImage+MultiFormat.m in Sources */ = {isa = PBXBuildFile; fileRef = 5A9FA9509C89FFF41AE1164D36C0C985 /* UIImage+MultiFormat.m */; }; + 6577A9EB1AED47B915B7F77C3F8BF335 /* mz_os.c in Sources */ = {isa = PBXBuildFile; fileRef = 554FA0F746FB80A9FE0D7A9201FD49B1 /* mz_os.c */; }; + 65A77C296675740D11691D85BBD9B2F8 /* LLNetwork.h in Headers */ = {isa = PBXBuildFile; fileRef = BF3C384FACF30DDD51276EE009F09266 /* LLNetwork.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 65D1DAFE46F668E75DFC6C836843AB56 /* SVGAAudioLayer.m in Sources */ = {isa = PBXBuildFile; fileRef = EEE5459E155526DC93D8227F979698F9 /* SVGAAudioLayer.m */; }; + 65D36040EFBEE963EB0C7A2E69E0BE5D /* TZAssetModel.m in Sources */ = {isa = PBXBuildFile; fileRef = C4371CCED5E31576E5B0DD6CAF360FA8 /* TZAssetModel.m */; }; + 65DA00E88E7D7050416557289C7BF1AA /* Log.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0B0B611141C92E6727C2F9468C28F17D /* Log.swift */; }; + 65DB6D055AAD5F89EFB33C554CA7F53B /* IQNSArray+Sort.h in Headers */ = {isa = PBXBuildFile; fileRef = 715FF71B72C0FD10FE38E7355ECD6460 /* IQNSArray+Sort.h */; settings = {ATTRIBUTES = (Project, ); }; }; + 66187A77817A27C7EAA46CA9E1183C67 /* RACEmptySequence.m in Sources */ = {isa = PBXBuildFile; fileRef = E6D676BE462C8A5A4EAB6E4541DBD81C /* RACEmptySequence.m */; }; + 661DE3EC5A5F7805ACD68EBA077AF612 /* GPBDuration.pbobjc.h in Headers */ = {isa = PBXBuildFile; fileRef = 368A6985445BE6224178FD078201DF73 /* GPBDuration.pbobjc.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 662818BE56B321D0A4DF83266588B2CC /* QCloudEndPoint.h in Headers */ = {isa = PBXBuildFile; fileRef = 528653073F6A18330DE69AA47535E0CF /* QCloudEndPoint.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 6630C0B541E50903F9AD81FD847CFE7A /* JXCategoryIndicatorBackgroundView.m in Sources */ = {isa = PBXBuildFile; fileRef = 5126A4D9B87E984813282B556AF97202 /* JXCategoryIndicatorBackgroundView.m */; }; + 6636EB3DEA42AE95FF246274BD7BE3F8 /* OSSNetworkingRequestDelegate.h in Headers */ = {isa = PBXBuildFile; fileRef = 9FF110BC6855F39BA27623F8D6056E68 /* OSSNetworkingRequestDelegate.h */; settings = {ATTRIBUTES = (Public, ); }; }; 663F23187297886BAFB244B681EE23DC /* TUIVoiceReplyQuoteView_Minimalist.h in Headers */ = {isa = PBXBuildFile; fileRef = E47B79BEDA5A878E74F97A1BDA1A7DC9 /* TUIVoiceReplyQuoteView_Minimalist.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 66421084F82555750BE73D538D04D332 /* GPBUnknownFields.m in Sources */ = {isa = PBXBuildFile; fileRef = CC599E09B879E3AB6A5E0F01154C35C4 /* GPBUnknownFields.m */; settings = {COMPILER_FLAGS = "-fno-objc-arc"; }; }; + 66421084F82555750BE73D538D04D332 /* GPBUnknownFields.m in Sources */ = {isa = PBXBuildFile; fileRef = 744BC791085D330ABBCEDDBEA28A0B69 /* GPBUnknownFields.m */; settings = {COMPILER_FLAGS = "-fno-objc-arc"; }; }; 664B58AD1FA3ED618A2EE30BEFDC0771 /* TUIChatPopActionsView.h in Headers */ = {isa = PBXBuildFile; fileRef = 0E09950AFFE253677274763C16783C4C /* TUIChatPopActionsView.h */; settings = {ATTRIBUTES = (Public, ); }; }; 664F18CED916ED69B0A6EFDD29EBA694 /* TUIGroupNoticeCell.h in Headers */ = {isa = PBXBuildFile; fileRef = 63CFA7A386727582E326DC58C38DDCC1 /* TUIGroupNoticeCell.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 667B4D17270EAAF886DCDE4CFE086815 /* sharpyuv_sse2.c in Sources */ = {isa = PBXBuildFile; fileRef = 8452DB94EF6CC76C45A5B628E1B79527 /* sharpyuv_sse2.c */; settings = {COMPILER_FLAGS = "-D_THREAD_SAFE -fno-objc-arc"; }; }; 66A896BDB2C894468D4CF96B07673823 /* TUIGroupInfoController.h in Headers */ = {isa = PBXBuildFile; fileRef = CA29AD0D1327156BDE92C1791F0CB81D /* TUIGroupInfoController.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 66BBA5A95B9791608A03499C1A03BF6F /* OSSUtil.h in Headers */ = {isa = PBXBuildFile; fileRef = 002F8FB9FB749B5760FA00556C7B77B1 /* OSSUtil.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 66C593FB4EC3FF5DF00B954216A75835 /* GPBType.pbobjc.h in Headers */ = {isa = PBXBuildFile; fileRef = 46559E75F1D464238EF82892A7601C22 /* GPBType.pbobjc.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 66C59B27747658346F72163C701D1CB3 /* TZGifPhotoPreviewController.h in Headers */ = {isa = PBXBuildFile; fileRef = CBE176765141835BD6BC05CE717A1B6E /* TZGifPhotoPreviewController.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 66D1162BD854BC15E3200936A304D01C /* IQTitleBarButtonItem.m in Sources */ = {isa = PBXBuildFile; fileRef = 31FC171CB8FC2E31CF537B21BB1FF95A /* IQTitleBarButtonItem.m */; }; - 66F0F3FA774C38B55C091221D241DF5B /* UIImageView+YYWebImage.h in Headers */ = {isa = PBXBuildFile; fileRef = 13922E11F6337C4C9A1D4C124E5EE7BA /* UIImageView+YYWebImage.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 671347F24D9FDFA45AC894760A275E23 /* YBIBDefaultWebImageMediator.m in Sources */ = {isa = PBXBuildFile; fileRef = 5F14B4836CDC1D67C95178E6904F2980 /* YBIBDefaultWebImageMediator.m */; }; + 66BABB3E0EFD4B289D5C6C622DD07095 /* QCloudOperationQueue.h in Headers */ = {isa = PBXBuildFile; fileRef = 3B1AB3E8ED48D02DFFBFCC6751BDB663 /* QCloudOperationQueue.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 66BBA5A95B9791608A03499C1A03BF6F /* OSSUtil.h in Headers */ = {isa = PBXBuildFile; fileRef = 868FA57F94057F8FC61B23A46C8140BE /* OSSUtil.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 66C593FB4EC3FF5DF00B954216A75835 /* GPBType.pbobjc.h in Headers */ = {isa = PBXBuildFile; fileRef = 966B2ACA825394A27EB38B0C8BB7BECC /* GPBType.pbobjc.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 66C59B27747658346F72163C701D1CB3 /* TZGifPhotoPreviewController.h in Headers */ = {isa = PBXBuildFile; fileRef = 771850D0B1CA7B6E4AD0F9C1D43381E1 /* TZGifPhotoPreviewController.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 66D1162BD854BC15E3200936A304D01C /* IQTitleBarButtonItem.m in Sources */ = {isa = PBXBuildFile; fileRef = 81EF99E7A6CBA6012C60D684788F131C /* IQTitleBarButtonItem.m */; }; + 66D862484C3FB22D4A71D1180BC11489 /* UIImage+Metadata.h in Headers */ = {isa = PBXBuildFile; fileRef = D0F5589533F2D0723DEADB5EBC6D7482 /* UIImage+Metadata.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 66DE3FE81338DA9C06C4DDBAE425037E /* quant_levels_utils.c in Sources */ = {isa = PBXBuildFile; fileRef = 0F4105022E08CBF5EA22D24DCAFE5F8A /* quant_levels_utils.c */; settings = {COMPILER_FLAGS = "-D_THREAD_SAFE -fno-objc-arc"; }; }; + 66F0F3FA774C38B55C091221D241DF5B /* UIImageView+YYWebImage.h in Headers */ = {isa = PBXBuildFile; fileRef = 337ADB5D316FDB0A929EAB064196DC3C /* UIImageView+YYWebImage.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 66FCF7C5581DFE51C17E25F7DCAB715B /* SDImageCachesManager.h in Headers */ = {isa = PBXBuildFile; fileRef = 374F257E854D9B1A189B5FB06602026F /* SDImageCachesManager.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 671347F24D9FDFA45AC894760A275E23 /* YBIBDefaultWebImageMediator.m in Sources */ = {isa = PBXBuildFile; fileRef = 0066569E5E46D03747A9064F7836CD04 /* YBIBDefaultWebImageMediator.m */; }; + 67202448C80DCC66D4049CE81A261D20 /* QCloudFCUUID.m in Sources */ = {isa = PBXBuildFile; fileRef = 70EDCCD8EE5E9D56D04A4CDE52E217A8 /* QCloudFCUUID.m */; }; 672B34FDDAE7043C32C1DCD78C4482A5 /* TUICaptureImagePreviewController.h in Headers */ = {isa = PBXBuildFile; fileRef = 860FFBC37B968C46FC5989D8D25BB440 /* TUICaptureImagePreviewController.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 676B7A2C7CDBB3C09AFD0CF1F07C1DCC /* LLSandboxImagePreviewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 04A104C169E0D6777D9CB40E1FC29E13 /* LLSandboxImagePreviewController.m */; }; - 679B7A918825CB13FC5DFE6B672AA5AF /* QGVAPSafeMutableArray.m in Sources */ = {isa = PBXBuildFile; fileRef = 22CEADC5B86E9A4199E7AFB7C446AA3B /* QGVAPSafeMutableArray.m */; }; - 67CE08DF5ADD081B9FFF1784C1A1C419 /* filters_neon.c in Sources */ = {isa = PBXBuildFile; fileRef = 6AAC81D3D478BAB7CEE5C591C7EAE018 /* filters_neon.c */; settings = {COMPILER_FLAGS = "-D_THREAD_SAFE -fno-objc-arc"; }; }; - 67FB50A7B87A855D4FDE81CE941D784C /* SVGAParser.h in Headers */ = {isa = PBXBuildFile; fileRef = EA81271596A1BFD0BB86331927BF78E6 /* SVGAParser.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 67FE17BE3E8ECC85317FC9C367EB3DFA /* lossless_common.h in Headers */ = {isa = PBXBuildFile; fileRef = 057867A5A08473C69DEA499B5EDAC90A /* lossless_common.h */; settings = {ATTRIBUTES = (Project, ); }; }; - 680DFC97031866ED2C3A56134ECE0FA4 /* SDImageGraphics.h in Headers */ = {isa = PBXBuildFile; fileRef = C007219D7B1CEE59C1658F1150239BE0 /* SDImageGraphics.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 6818F170D6F8EDBBA1E59BC8A10F0476 /* NSNotificationCenter+YYAdd.m in Sources */ = {isa = PBXBuildFile; fileRef = E8451BC48B7FD940E2BC4D8E47E44668 /* NSNotificationCenter+YYAdd.m */; }; - 6819AA5CBCFF1076B6C794A360C846A4 /* LLComponentDelegate.h in Headers */ = {isa = PBXBuildFile; fileRef = 155F35071198D863D3CAAB027300D532 /* LLComponentDelegate.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 68226223027CEEF60F56083DABA3EF9A /* LLLocationMockRouteModel.h in Headers */ = {isa = PBXBuildFile; fileRef = 6941DD126E30211D7F92AB1D97C7A5A5 /* LLLocationMockRouteModel.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 684922BAF5EC5925C2435734B168823D /* LLWindowManager+WidgetBorder.m in Sources */ = {isa = PBXBuildFile; fileRef = 40186D6864EFAF2EA4DF9E988AE52E98 /* LLWindowManager+WidgetBorder.m */; }; + 675CA4D3EA2E131017A0AE8FBD282FC0 /* QCloudAuthentationV5Creator.m in Sources */ = {isa = PBXBuildFile; fileRef = 9128D7877A6A305E46EC7D3A2B092BBD /* QCloudAuthentationV5Creator.m */; }; + 676B7A2C7CDBB3C09AFD0CF1F07C1DCC /* LLSandboxImagePreviewController.m in Sources */ = {isa = PBXBuildFile; fileRef = B28844EE0ED3ABF993151E7177C55EFF /* LLSandboxImagePreviewController.m */; }; + 676E5598F38CC0C3EC7C858CBDEA3805 /* NSObject+QCloudModelTool.m in Sources */ = {isa = PBXBuildFile; fileRef = 700D9F45DD60B4A13E98A83AAFBDE938 /* NSObject+QCloudModelTool.m */; }; + 679B7A918825CB13FC5DFE6B672AA5AF /* QGVAPSafeMutableArray.m in Sources */ = {isa = PBXBuildFile; fileRef = 500DABA99FE89D664AC06E90ED5861F6 /* QGVAPSafeMutableArray.m */; }; + 67FB50A7B87A855D4FDE81CE941D784C /* SVGAParser.h in Headers */ = {isa = PBXBuildFile; fileRef = DFE7ADED148E13C4B35972C63998B62D /* SVGAParser.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 6818F170D6F8EDBBA1E59BC8A10F0476 /* NSNotificationCenter+YYAdd.m in Sources */ = {isa = PBXBuildFile; fileRef = EF5C2676A38389D598A3D54F2B114464 /* NSNotificationCenter+YYAdd.m */; }; + 6819AA5CBCFF1076B6C794A360C846A4 /* LLComponentDelegate.h in Headers */ = {isa = PBXBuildFile; fileRef = 9180B113E5C06B750956171BB08B097F /* LLComponentDelegate.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 68226223027CEEF60F56083DABA3EF9A /* LLLocationMockRouteModel.h in Headers */ = {isa = PBXBuildFile; fileRef = 01BDA857040880769264BF6D0D910048 /* LLLocationMockRouteModel.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 684922BAF5EC5925C2435734B168823D /* LLWindowManager+WidgetBorder.m in Sources */ = {isa = PBXBuildFile; fileRef = CFC26C4557DF4FFAF6DFED98F128E915 /* LLWindowManager+WidgetBorder.m */; }; + 684CED7387E4EB7EA8873FC033966A89 /* QCloudUniversalPath.h in Headers */ = {isa = PBXBuildFile; fileRef = F44EE9216564BDC2AFAFA74D91F767A6 /* QCloudUniversalPath.h */; settings = {ATTRIBUTES = (Public, ); }; }; 68599E2880B04894D8E9B70F9DE8BB85 /* TUIVoiceMessageCell.h in Headers */ = {isa = PBXBuildFile; fileRef = 8C47DEA2F80C17C505D5AAC5E478F6B5 /* TUIVoiceMessageCell.h */; settings = {ATTRIBUTES = (Public, ); }; }; 68BC799F9B06DE3C9FEC54A73AB6BD4C /* TUIMergeMessageCell.h in Headers */ = {isa = PBXBuildFile; fileRef = A31374D55373DC917D8C7C28A12DBF55 /* TUIMergeMessageCell.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 68BF13B636A783D4FE92044AD40637D4 /* yuv_sse41.c in Sources */ = {isa = PBXBuildFile; fileRef = CB10776CAC78EE0A178699E752E508D2 /* yuv_sse41.c */; settings = {COMPILER_FLAGS = "-D_THREAD_SAFE -fno-objc-arc"; }; }; 68C34D1A6BB6BED6E42B9116E9D32307 /* TUIOrderCell.m in Sources */ = {isa = PBXBuildFile; fileRef = F12E37CD50A416455E5182803128EF91 /* TUIOrderCell.m */; }; - 68D4A83EA695C463981E04DAD037064F /* mz_strm_split.c in Sources */ = {isa = PBXBuildFile; fileRef = 44DEBECD3D533181312AF5854D8B1593 /* mz_strm_split.c */; }; - 68E961806B18B3BEEE20CD23B34F687E /* format_constants.h in Headers */ = {isa = PBXBuildFile; fileRef = E9318EF7F094F5278E322D0F4235E48C /* format_constants.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 68F5801A3661C79D70275BFC2EEFCE9F /* TZVideoEditedPreviewController.h in Headers */ = {isa = PBXBuildFile; fileRef = 1398C969877EF6564C094BC18FD10C6C /* TZVideoEditedPreviewController.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 68D4A83EA695C463981E04DAD037064F /* mz_strm_split.c in Sources */ = {isa = PBXBuildFile; fileRef = 3DDCB02354376548FCA283EA4CA38124 /* mz_strm_split.c */; }; + 68F5801A3661C79D70275BFC2EEFCE9F /* TZVideoEditedPreviewController.h in Headers */ = {isa = PBXBuildFile; fileRef = 2BE918035921F9F60C61DE5B61B27A36 /* TZVideoEditedPreviewController.h */; settings = {ATTRIBUTES = (Public, ); }; }; 68F9CE4DA0E714686E309DF0F130091A /* TUIGroupInfoDataProvider_Minimalist.h in Headers */ = {isa = PBXBuildFile; fileRef = D50B66BD78551E541F8416B9EFC9F935 /* TUIGroupInfoDataProvider_Minimalist.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 6920E6B671ACED0AE40C2E06A304BE72 /* OSSURLRequestRetryHandler.m in Sources */ = {isa = PBXBuildFile; fileRef = 826F6586B5F27FE3CD781A46F85A787F /* OSSURLRequestRetryHandler.m */; }; - 69345CBCB31076EBF8A2C5885AF973AB /* MJRefreshComponent.h in Headers */ = {isa = PBXBuildFile; fileRef = 1A91AA397556CC9C7060BEE7A4434CAA /* MJRefreshComponent.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 6920E6B671ACED0AE40C2E06A304BE72 /* OSSURLRequestRetryHandler.m in Sources */ = {isa = PBXBuildFile; fileRef = 2F4072CC0F5D9B263C667F94F5F71468 /* OSSURLRequestRetryHandler.m */; }; + 69345CBCB31076EBF8A2C5885AF973AB /* MJRefreshComponent.h in Headers */ = {isa = PBXBuildFile; fileRef = 3CDC87DA0AFD4FF5C4C35065331B3A64 /* MJRefreshComponent.h */; settings = {ATTRIBUTES = (Public, ); }; }; 69488BB1CB24E3E6C25D6604F25501B2 /* TUIConversationListDataProvider.m in Sources */ = {isa = PBXBuildFile; fileRef = 4A0F6C825A3F8EF9D021A0256D803FF8 /* TUIConversationListDataProvider.m */; }; - 694C2AE94A738B212CAD49FCD61B28BD /* QGVAPSafeMutableDictionary.h in Headers */ = {isa = PBXBuildFile; fileRef = ED7EFF533A0671B040F28AB45F3F7CA9 /* QGVAPSafeMutableDictionary.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 69574E08CF52AF3E444DA63ED59289F8 /* TZAssetCell.m in Sources */ = {isa = PBXBuildFile; fileRef = 83CDCFE2A451FDCD18A04FF31570AD32 /* TZAssetCell.m */; }; - 695B0EEC3D048EB572396649F1976F5F /* Zip.h in Headers */ = {isa = PBXBuildFile; fileRef = C615144ABEC3D35105A51EF5991A7108 /* Zip.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 696E54DA900982D3368EF867503A611C /* NSURLSession+LL_Network.m in Sources */ = {isa = PBXBuildFile; fileRef = 64760B2AF401FED2F042CB61BFA41999 /* NSURLSession+LL_Network.m */; }; - 6997D9898E12375AE37F9BAC5B6E8F93 /* GPBUnknownFieldSet.m in Sources */ = {isa = PBXBuildFile; fileRef = 49EE0B8E8030962716DC77EE047C52D8 /* GPBUnknownFieldSet.m */; settings = {COMPILER_FLAGS = "-fno-objc-arc"; }; }; + 694C2AE94A738B212CAD49FCD61B28BD /* QGVAPSafeMutableDictionary.h in Headers */ = {isa = PBXBuildFile; fileRef = 9F87C0D5F738CA610152A78F9E775A09 /* QGVAPSafeMutableDictionary.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 69574E08CF52AF3E444DA63ED59289F8 /* TZAssetCell.m in Sources */ = {isa = PBXBuildFile; fileRef = 1F859E2210DE47D702E8681BA4105ADD /* TZAssetCell.m */; }; + 6966C657096D926138408396AFF803BC /* SDWebImageDownloaderRequestModifier.m in Sources */ = {isa = PBXBuildFile; fileRef = 49165D3F80366D32186A3AAC57E6D8AC /* SDWebImageDownloaderRequestModifier.m */; }; + 696E54DA900982D3368EF867503A611C /* NSURLSession+LL_Network.m in Sources */ = {isa = PBXBuildFile; fileRef = 63ECAA4E7DABBCB3BF783384C7808CC7 /* NSURLSession+LL_Network.m */; }; + 696F9EF2E1C5F714476DD9C47455D901 /* QCloudCustomLoader.h in Headers */ = {isa = PBXBuildFile; fileRef = 17A930B3262C6C80EA4BDDDAF7256495 /* QCloudCustomLoader.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 6997D9898E12375AE37F9BAC5B6E8F93 /* GPBUnknownFieldSet.m in Sources */ = {isa = PBXBuildFile; fileRef = FE9736BB0BD4C1473F78EBB9198CC88F /* GPBUnknownFieldSet.m */; settings = {COMPILER_FLAGS = "-fno-objc-arc"; }; }; 69990EA2EF0DE2D5431D8763DD1A238E /* TUIGroupInfoDataProvider.h in Headers */ = {isa = PBXBuildFile; fileRef = 9A69EBE67FC175DD4A6E2DEA910A192A /* TUIGroupInfoDataProvider.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 69D03F930D53E8D88A4BF3BAD834EC51 /* ForegroundReconnection.h in Headers */ = {isa = PBXBuildFile; fileRef = BFEAE72DD932F7178875FE6821E2716D /* ForegroundReconnection.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 69E353C99C6EEA3C93CCF2E526460B9D /* UIScrollView+MJRefresh.h in Headers */ = {isa = PBXBuildFile; fileRef = 54EB3F51909F1C80F3039170F58E5A7C /* UIScrollView+MJRefresh.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 69C7F46C0BE11E7A4AB0DF78D9F7F88E /* AssetsLibrary.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = E86BC2B5D47B2EA61ED76887B7F31B53 /* AssetsLibrary.framework */; }; + 69CD1179D1B059FF0689FC46AC24DB7F /* QCloudNetEnv.m in Sources */ = {isa = PBXBuildFile; fileRef = CCE282AC804A22DAA7883DDDBAED9BA9 /* QCloudNetEnv.m */; }; + 69D03F930D53E8D88A4BF3BAD834EC51 /* ForegroundReconnection.h in Headers */ = {isa = PBXBuildFile; fileRef = CDF553859C80B6935CE37CEFB4FDF6BC /* ForegroundReconnection.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 69E353C99C6EEA3C93CCF2E526460B9D /* UIScrollView+MJRefresh.h in Headers */ = {isa = PBXBuildFile; fileRef = F56497042AE613CAC039F1626388B075 /* UIScrollView+MJRefresh.h */; settings = {ATTRIBUTES = (Public, ); }; }; 69E6E79C0EDCBB9DD698A63C108B3283 /* TUIEmojiMeditorProtocolProvider.h in Headers */ = {isa = PBXBuildFile; fileRef = 429C498FC140988AC06E1E425259B971 /* TUIEmojiMeditorProtocolProvider.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 69EC3BDD4FCE1FB60FEAB52EC083F7D2 /* GPBDescriptor.h in Headers */ = {isa = PBXBuildFile; fileRef = A0F68CEDC6273EF848D9C09B257C6262 /* GPBDescriptor.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 69EC3BDD4FCE1FB60FEAB52EC083F7D2 /* GPBDescriptor.h in Headers */ = {isa = PBXBuildFile; fileRef = 6EC98E7919863935819A20E6D1D5194A /* GPBDescriptor.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 69F66E539C7611F1602ED11D183B04FA /* UIView+WebCache.m in Sources */ = {isa = PBXBuildFile; fileRef = B797D80EB0169E30138FE4FBEE6B2DC6 /* UIView+WebCache.m */; }; + 6A068B7AC9B86601F4A3C14570F765D1 /* Pods-QXLiveDev-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = 9729C86379BFD05AFA85BB733D4EDC3A /* Pods-QXLiveDev-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; 6A1D431426C1F472EC74855A1D6B713B /* AgoraLyricsScore-AgoraLyricsScoreBundle in Resources */ = {isa = PBXBuildFile; fileRef = 0C6AF30DA9F94BBA4AD5F3DA3FA30177 /* AgoraLyricsScore-AgoraLyricsScoreBundle */; }; - 6A20B578B254532A6495785EF99C9389 /* NSThread+YYAdd.h in Headers */ = {isa = PBXBuildFile; fileRef = 9E02B257586EA1A9F278235262D83AB3 /* NSThread+YYAdd.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 6A3EF0DED7755F18C73D338341EF084D /* LLNetworkWindow.h in Headers */ = {isa = PBXBuildFile; fileRef = 803C6D9674538F98A75D1477FA70C01C /* LLNetworkWindow.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 6A4316A64CC1FCC9422EFA0CEBB754F4 /* SDWebImageDownloaderOperation.m in Sources */ = {isa = PBXBuildFile; fileRef = 2B4F0971B79B0676FF3440555D2CFF34 /* SDWebImageDownloaderOperation.m */; }; - 6A4C0518640F1FF5CB8024E732E9DF95 /* MKAnnotationView+RACSignalSupport.h in Headers */ = {isa = PBXBuildFile; fileRef = 2B6574C1EBA79E9D88FCAE60880F3D1F /* MKAnnotationView+RACSignalSupport.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 6A1DEF211A2200E201B39E27EC240571 /* QCloudSimplePing.h in Headers */ = {isa = PBXBuildFile; fileRef = CF4FB944E62FFF369A009D4F038B93D0 /* QCloudSimplePing.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 6A20B578B254532A6495785EF99C9389 /* NSThread+YYAdd.h in Headers */ = {isa = PBXBuildFile; fileRef = FEDD5696061F1DE17BF7AC794791280F /* NSThread+YYAdd.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 6A302204CCB4D93E8652FA6DF6452398 /* QCloudCustomSession.m in Sources */ = {isa = PBXBuildFile; fileRef = 3F53B9667F1CFB1CC3C6E326A1E115A4 /* QCloudCustomSession.m */; }; + 6A3EF0DED7755F18C73D338341EF084D /* LLNetworkWindow.h in Headers */ = {isa = PBXBuildFile; fileRef = 7364939E951750D98837F0924A8F4788 /* LLNetworkWindow.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 6A4C0518640F1FF5CB8024E732E9DF95 /* MKAnnotationView+RACSignalSupport.h in Headers */ = {isa = PBXBuildFile; fileRef = A02006565CA489FA42F8C5D9F109547E /* MKAnnotationView+RACSignalSupport.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 6A633798C2E809315C6B0A370B54F4B8 /* UIView+WebCacheState.m in Sources */ = {isa = PBXBuildFile; fileRef = DCCD650D6DF16F350F448384A3F516A8 /* UIView+WebCacheState.m */; }; 6A6EC0083AFBE01A12B735B49C320BED /* TUILinkCellData.h in Headers */ = {isa = PBXBuildFile; fileRef = C72D292DB0F13AF832A188C959882814 /* TUILinkCellData.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 6A78A39A6B1CA7D9DA8ED7EE0DAA5E32 /* YBIBToastView.m in Sources */ = {isa = PBXBuildFile; fileRef = 2CA663CF2987E10DC0841B1A0868DAB9 /* YBIBToastView.m */; }; - 6A9A1609CBC92AB647705495D3B43406 /* UIView+TUILayout.m in Sources */ = {isa = PBXBuildFile; fileRef = F34ED37CCCFB96877F7C3DB719E3B5B8 /* UIView+TUILayout.m */; }; - 6ABBBFEFE41857794BD89676505E3D68 /* LLMoveWindow.m in Sources */ = {isa = PBXBuildFile; fileRef = C3DEC960D97F07408DDEB6D9D72E8BBB /* LLMoveWindow.m */; }; - 6AC6DB566533BB3C51FA22C7133A4977 /* IQNSArray+Sort.m in Sources */ = {isa = PBXBuildFile; fileRef = A9F6F2F5534727607C323AACBB3B8485 /* IQNSArray+Sort.m */; }; - 6AEB43F72496DBB501BC8D273B68AAD9 /* LLSandboxVideoPreviewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 963354F1BD6B33DEE9BFE8C56475A7C1 /* LLSandboxVideoPreviewController.m */; }; - 6AF86223A35838A57BAEBAC263E3C2BF /* GPBWellKnownTypes.h in Headers */ = {isa = PBXBuildFile; fileRef = 10BCBF5490F681E966574333DEB58FAC /* GPBWellKnownTypes.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 6B248006F914EFA0501E626A11F73A06 /* YYTextWeakProxy.h in Headers */ = {isa = PBXBuildFile; fileRef = 2D66C65B691B8E5F649DD5EAF7C899A9 /* YYTextWeakProxy.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 6B30F8C285A71D17004807AA8FE56FC1 /* LLSettingViewController.h in Headers */ = {isa = PBXBuildFile; fileRef = C936A1721F6CF8FA0A28202704F0AFFB /* LLSettingViewController.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 6B337C0F2FC167CD47023BE9BC9DFB9E /* SDImageCacheDefine.m in Sources */ = {isa = PBXBuildFile; fileRef = E5F2C11258E35A5931012AA73EBE86CB /* SDImageCacheDefine.m */; }; - 6B672446128377B90C2F9D7B696FA117 /* LLAppInfoWindow.m in Sources */ = {isa = PBXBuildFile; fileRef = AB23DD5BEADD6E2CFC82EB663378BB67 /* LLAppInfoWindow.m */; }; - 6B6A8223FEB87A844F6B8C66454768CE /* GPBEmpty.pbobjc.m in Sources */ = {isa = PBXBuildFile; fileRef = 22711BFFEA064CD5FE6D3C22DBC9158D /* GPBEmpty.pbobjc.m */; settings = {COMPILER_FLAGS = "-fno-objc-arc"; }; }; - 6B6C4D3830AE8BA39A98D9C3DA028CB5 /* QGHWDMetalRenderer.m in Sources */ = {isa = PBXBuildFile; fileRef = 2B72A6C6151A8791E68DAE90BE851C3D /* QGHWDMetalRenderer.m */; }; - 6B9D333C18DDBF4E7CC889F7FDE05EEA /* JXCategoryDotView.h in Headers */ = {isa = PBXBuildFile; fileRef = 09B2A461423A6F18B3B5EF622C4E76B5 /* JXCategoryDotView.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 6A78A39A6B1CA7D9DA8ED7EE0DAA5E32 /* YBIBToastView.m in Sources */ = {isa = PBXBuildFile; fileRef = F879360912F8C4F6C238888A531D504D /* YBIBToastView.m */; }; + 6ABBBFEFE41857794BD89676505E3D68 /* LLMoveWindow.m in Sources */ = {isa = PBXBuildFile; fileRef = 14096887FCB0C95BE6DFBB7E9875B3B6 /* LLMoveWindow.m */; }; + 6AC6DB566533BB3C51FA22C7133A4977 /* IQNSArray+Sort.m in Sources */ = {isa = PBXBuildFile; fileRef = CAC3E9BA80100B1FFFDC3991654DC0A4 /* IQNSArray+Sort.m */; }; + 6AEB43F72496DBB501BC8D273B68AAD9 /* LLSandboxVideoPreviewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 717F62074FD5ED7DC4F2E508C7DE4CF9 /* LLSandboxVideoPreviewController.m */; }; + 6AECCF84CDE47BA91E241CF7E1BC63DC /* SDImageCoderHelper.m in Sources */ = {isa = PBXBuildFile; fileRef = A506CAE9E5DBB528A3DF2AC9A078EA8A /* SDImageCoderHelper.m */; }; + 6AF86223A35838A57BAEBAC263E3C2BF /* GPBWellKnownTypes.h in Headers */ = {isa = PBXBuildFile; fileRef = E76643658D7F1857836CE14A026C5F33 /* GPBWellKnownTypes.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 6B248006F914EFA0501E626A11F73A06 /* YYTextWeakProxy.h in Headers */ = {isa = PBXBuildFile; fileRef = A8911AAD900EAE6EB0688BB3EB02E473 /* YYTextWeakProxy.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 6B30F8C285A71D17004807AA8FE56FC1 /* LLSettingViewController.h in Headers */ = {isa = PBXBuildFile; fileRef = 0FD42879AC877B8E2953499A9703793E /* LLSettingViewController.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 6B3E8858A02F2EEB75982ACD5A74F784 /* near_lossless_enc.c in Sources */ = {isa = PBXBuildFile; fileRef = 58242B008E957BED6CA7497F95558A88 /* near_lossless_enc.c */; settings = {COMPILER_FLAGS = "-D_THREAD_SAFE -fno-objc-arc"; }; }; + 6B49D82DA4C3D450785E26F1DB6DA45E /* filter_enc.c in Sources */ = {isa = PBXBuildFile; fileRef = 0845832E2D7B1438A2874E2A1281BE41 /* filter_enc.c */; settings = {COMPILER_FLAGS = "-D_THREAD_SAFE -fno-objc-arc"; }; }; + 6B672446128377B90C2F9D7B696FA117 /* LLAppInfoWindow.m in Sources */ = {isa = PBXBuildFile; fileRef = BB719ECE2616F368FFEEB36F18BB403E /* LLAppInfoWindow.m */; }; + 6B6A8223FEB87A844F6B8C66454768CE /* GPBEmpty.pbobjc.m in Sources */ = {isa = PBXBuildFile; fileRef = 3C4AFCFC76BE581A67CA5B539B832BF3 /* GPBEmpty.pbobjc.m */; settings = {COMPILER_FLAGS = "-fno-objc-arc"; }; }; + 6B6C4D3830AE8BA39A98D9C3DA028CB5 /* QGHWDMetalRenderer.m in Sources */ = {isa = PBXBuildFile; fileRef = BA4E41152B130497D7FC307144BBB8C8 /* QGHWDMetalRenderer.m */; }; + 6B9D333C18DDBF4E7CC889F7FDE05EEA /* JXCategoryDotView.h in Headers */ = {isa = PBXBuildFile; fileRef = A1745B555BE6350271185A52CE4044A3 /* JXCategoryDotView.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 6BA9664ED6E272AA3A45E3A6273AA1AE /* QCloudAbstractRequest_FakeRequest.h in Headers */ = {isa = PBXBuildFile; fileRef = C3E38BFE6C28CCF1198E02D9BB9FC3E7 /* QCloudAbstractRequest_FakeRequest.h */; settings = {ATTRIBUTES = (Public, ); }; }; 6BB419E1BD86AB9E872B267E39C6A95B /* TUIGroupProfileCardViewCell_Minimalist.m in Sources */ = {isa = PBXBuildFile; fileRef = 023D55EDE59D8FD17C30CE0AE38C4A73 /* TUIGroupProfileCardViewCell_Minimalist.m */; }; - 6BB6A1057882847ACA0A03D528AE55FD /* LLFilterDateView.h in Headers */ = {isa = PBXBuildFile; fileRef = D999A68DC846BFF3DFCC443023FD3A3B /* LLFilterDateView.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 6BB773BF5C46BD4299C553634671883B /* LLHtmlComponent.h in Headers */ = {isa = PBXBuildFile; fileRef = F0D419308728BF1A25C72B89B70F2493 /* LLHtmlComponent.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 6BB87AE4E009ECBDE8D507BDA00B6810 /* SDImageTransformer.m in Sources */ = {isa = PBXBuildFile; fileRef = 485A12720F358891E9F01B1CA163E2F1 /* SDImageTransformer.m */; }; - 6BDEFFD3F143FD0BA56CC01A1C4A7997 /* SDAnimatedImageView.m in Sources */ = {isa = PBXBuildFile; fileRef = 4806E1164E2700B391CF8990E34B58FC /* SDAnimatedImageView.m */; }; - 6BE57CB764D58E1016C456971D11F1A0 /* UIView+TUIUtil.h in Headers */ = {isa = PBXBuildFile; fileRef = 158FE2BF1C4A02316B39C4ED2FD86230 /* UIView+TUIUtil.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 6BE86A0FFB0D69C6098CC75E1FB4E8B5 /* JXCategoryIndicatorCellModel.h in Headers */ = {isa = PBXBuildFile; fileRef = FA31F462469FB019EF34797C11A4F6DC /* JXCategoryIndicatorCellModel.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 6BF5DB46D42D8B9D536C870EC77BF4A3 /* JXCategoryIndicatorBallView.m in Sources */ = {isa = PBXBuildFile; fileRef = 49BB7730AD6B24BB53B32F573022429E /* JXCategoryIndicatorBallView.m */; }; + 6BB6A1057882847ACA0A03D528AE55FD /* LLFilterDateView.h in Headers */ = {isa = PBXBuildFile; fileRef = D5BC3CEAB5F801AEBB63F7AA9BD258BC /* LLFilterDateView.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 6BB773BF5C46BD4299C553634671883B /* LLHtmlComponent.h in Headers */ = {isa = PBXBuildFile; fileRef = 7C0FEDCED2F0A3D817915379F808E910 /* LLHtmlComponent.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 6BBA934D523E97B9F3288060F353A9F9 /* SDAnimatedImageRep.m in Sources */ = {isa = PBXBuildFile; fileRef = 8622D12E0AC31FB3A85CD6DC41378BBB /* SDAnimatedImageRep.m */; }; + 6BDA1B0E096052D9E723EA8F9E059128 /* QCloudBundlePath.h in Headers */ = {isa = PBXBuildFile; fileRef = 7ECB13CEA7C57C83436F9B033C82B395 /* QCloudBundlePath.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 6BE5013D32EF4E1BD43C55E6A8761F7C /* SDDiskCache.m in Sources */ = {isa = PBXBuildFile; fileRef = C9ED034EF0A7164FDED8ADC512A418CF /* SDDiskCache.m */; }; + 6BE86A0FFB0D69C6098CC75E1FB4E8B5 /* JXCategoryIndicatorCellModel.h in Headers */ = {isa = PBXBuildFile; fileRef = E047C31AC9937B895EB741CA05F233C9 /* JXCategoryIndicatorCellModel.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 6BF5DB46D42D8B9D536C870EC77BF4A3 /* JXCategoryIndicatorBallView.m in Sources */ = {isa = PBXBuildFile; fileRef = 26368630C638E71A8C20C6B148A0EDFF /* JXCategoryIndicatorBallView.m */; }; 6BFF443EA44D1606F749AB57CFC0DB3B /* TUIConversationListControllerListener.h in Headers */ = {isa = PBXBuildFile; fileRef = 697273E2F02FF6EBD0321D2849D4F080 /* TUIConversationListControllerListener.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 6C4279AEF656A050D9C09AC3D3033A89 /* cost_sse2.c in Sources */ = {isa = PBXBuildFile; fileRef = 2C60157F1A8157F2531B2C855355BAFD /* cost_sse2.c */; settings = {COMPILER_FLAGS = "-D_THREAD_SAFE -fno-objc-arc"; }; }; - 6C4D829A14966677A79ECCE581BCF4B1 /* CALayer+YYWebImage.m in Sources */ = {isa = PBXBuildFile; fileRef = C3982FC450A5BEC72FEA666A8BE3DD3D /* CALayer+YYWebImage.m */; }; + 6C1D20060FEFADC6C5F4FC31729586D1 /* Pods-QXLive-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 76262613319C32AD3942999FD973732D /* Pods-QXLive-dummy.m */; }; + 6C4D829A14966677A79ECCE581BCF4B1 /* CALayer+YYWebImage.m in Sources */ = {isa = PBXBuildFile; fileRef = EA259811A5E4EDBD31B8E485315ABC4E /* CALayer+YYWebImage.m */; }; 6C5358C4272E66F685220822ED401DA5 /* TUIEvaluationCell_Minimalist.h in Headers */ = {isa = PBXBuildFile; fileRef = 3EE5F4CBCDAA09ACB04423969186AFDC /* TUIEvaluationCell_Minimalist.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 6C5D3C3A24638B6EC36F689D7A17E5CA /* LLNetworkViewController.h in Headers */ = {isa = PBXBuildFile; fileRef = 5F4E0564755FFDBADDB9183ECB554A68 /* LLNetworkViewController.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 6C75B663D3FDDE600E99AE52B2376DD9 /* LLFunctionItemView.m in Sources */ = {isa = PBXBuildFile; fileRef = DE63E002EBA8D9354A3BB30981267080 /* LLFunctionItemView.m */; }; - 6C76DB1B99B98C951F687DE80FE6F463 /* JXPagerListRefreshView.m in Sources */ = {isa = PBXBuildFile; fileRef = 6D94FE6859348BB52BD8131E25776E41 /* JXPagerListRefreshView.m */; }; - 6C85CA8D99E50C137D056B6057DAC58A /* UIRefreshControl+AFNetworking.m in Sources */ = {isa = PBXBuildFile; fileRef = 73BDC252E37860D682F3200FE18B58DD /* UIRefreshControl+AFNetworking.m */; }; - 6CA0B4A9E7B2957063163BC673F355CD /* AFAutoPurgingImageCache.m in Sources */ = {isa = PBXBuildFile; fileRef = 6C2EFC72068A4953769068070888931D /* AFAutoPurgingImageCache.m */; }; - 6CD51DF837C81F43946E2844D2CB469D /* SVGAPlayer.h in Headers */ = {isa = PBXBuildFile; fileRef = 43A17D602225CFF13C90AB1B4E001E86 /* SVGAPlayer.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 6D108FBC1DAEC25B9AECAD5F50C9F0A0 /* LLLocationHelper.m in Sources */ = {isa = PBXBuildFile; fileRef = 6410D74145BF62D84FECAF2E75DFB970 /* LLLocationHelper.m */; }; + 6C5D3C3A24638B6EC36F689D7A17E5CA /* LLNetworkViewController.h in Headers */ = {isa = PBXBuildFile; fileRef = DCC0C6B6E0A89084D9A0A49FF21876E6 /* LLNetworkViewController.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 6C75B663D3FDDE600E99AE52B2376DD9 /* LLFunctionItemView.m in Sources */ = {isa = PBXBuildFile; fileRef = F78F91426E25BBB81A7AA64843C1EE73 /* LLFunctionItemView.m */; }; + 6C76DB1B99B98C951F687DE80FE6F463 /* JXPagerListRefreshView.m in Sources */ = {isa = PBXBuildFile; fileRef = 03E7148680D2B5CA0145A90368880BDC /* JXPagerListRefreshView.m */; }; + 6C85CA8D99E50C137D056B6057DAC58A /* UIRefreshControl+AFNetworking.m in Sources */ = {isa = PBXBuildFile; fileRef = B656772A40F6C7D8AA8B172EE33D1AD1 /* UIRefreshControl+AFNetworking.m */; }; + 6CA0B4A9E7B2957063163BC673F355CD /* AFAutoPurgingImageCache.m in Sources */ = {isa = PBXBuildFile; fileRef = ADE31962E6DAEF6C1F5352D7020EAD0A /* AFAutoPurgingImageCache.m */; }; + 6CD51DF837C81F43946E2844D2CB469D /* SVGAPlayer.h in Headers */ = {isa = PBXBuildFile; fileRef = 1CEA4A82EF6A095428C4B800C30E39E9 /* SVGAPlayer.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 6CDF8868E74A81F2E65AC1D71D1BA83F /* TUIThemeManager.m in Sources */ = {isa = PBXBuildFile; fileRef = 0FC3C76B119B8122DE10E41DE6041FE3 /* TUIThemeManager.m */; }; + 6D108FBC1DAEC25B9AECAD5F50C9F0A0 /* LLLocationHelper.m in Sources */ = {isa = PBXBuildFile; fileRef = 92C8304300FD1039B39260B05ED122B9 /* LLLocationHelper.m */; }; 6D1358AD1011A4B260C35642A7F69E29 /* TUIGroupAvatar+Helper.h in Headers */ = {isa = PBXBuildFile; fileRef = 596A448FC3F3C4E51638D0260C886117 /* TUIGroupAvatar+Helper.h */; settings = {ATTRIBUTES = (Public, ); }; }; 6D2B0C8509C0F96F7E0B4049A6488DC7 /* TUILinkCellData.m in Sources */ = {isa = PBXBuildFile; fileRef = E0E23643E0E4AA188287E0327F1E7B99 /* TUILinkCellData.m */; }; - 6D316F209F073EEEC9898B2DED020AF8 /* RACChannel.m in Sources */ = {isa = PBXBuildFile; fileRef = 14F709833EB5E24917813D59A3397A71 /* RACChannel.m */; }; - 6D322F82AEA4271AED1426C85D888C8A /* OSSClient.h in Headers */ = {isa = PBXBuildFile; fileRef = 88301128E8395B55483A176C15014582 /* OSSClient.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 6D316F209F073EEEC9898B2DED020AF8 /* RACChannel.m in Sources */ = {isa = PBXBuildFile; fileRef = A5387796E0AB3060099C77C202AFD119 /* RACChannel.m */; }; + 6D322F82AEA4271AED1426C85D888C8A /* OSSClient.h in Headers */ = {isa = PBXBuildFile; fileRef = DDE6B5003C19BEF91575545DF64F29EF /* OSSClient.h */; settings = {ATTRIBUTES = (Public, ); }; }; 6D449C6D6A8653502BA8F84CB85B3016 /* TUIEvaluationCell_Minimalist.m in Sources */ = {isa = PBXBuildFile; fileRef = F4077AC83D41ACA6D4A53F6E2411189C /* TUIEvaluationCell_Minimalist.m */; }; 6D46D300C60B662768820DBB25BF1AC6 /* TUIBaseChatViewController_Minimalist.h in Headers */ = {isa = PBXBuildFile; fileRef = D732251049C4356EF790CD35AA9721E9 /* TUIBaseChatViewController_Minimalist.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 6D9949D8FE86A2D522CB6C880B8E63CD /* NSString+RACKeyPathUtilities.m in Sources */ = {isa = PBXBuildFile; fileRef = 3E716E52FD1B70E27F8D13FF9DE24B69 /* NSString+RACKeyPathUtilities.m */; }; - 6DA46E3C215092BBB681AB0BC661105B /* GPBRootObject.m in Sources */ = {isa = PBXBuildFile; fileRef = CECBB213D69458631B4885D75F4DCC71 /* GPBRootObject.m */; settings = {COMPILER_FLAGS = "-fno-objc-arc"; }; }; + 6D86CFCB0E2EE91A6C171A8B087BB145 /* QCloudCredential.h in Headers */ = {isa = PBXBuildFile; fileRef = 6D0835A5D318BFF6B0D82EBEE3D2D88A /* QCloudCredential.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 6D9949D8FE86A2D522CB6C880B8E63CD /* NSString+RACKeyPathUtilities.m in Sources */ = {isa = PBXBuildFile; fileRef = A7B0A3711DFEF20A9200906048461419 /* NSString+RACKeyPathUtilities.m */; }; + 6DA46E3C215092BBB681AB0BC661105B /* GPBRootObject.m in Sources */ = {isa = PBXBuildFile; fileRef = 1836FF8EE9E132C2D0C9EDF864335D28 /* GPBRootObject.m */; settings = {COMPILER_FLAGS = "-fno-objc-arc"; }; }; 6DAC6A4E7EA1C5AF61E070AB2A5ADB1D /* TUIChatMediaSendingManager.m in Sources */ = {isa = PBXBuildFile; fileRef = 10279ACCBD6A903BF072BD7AE13ECB59 /* TUIChatMediaSendingManager.m */; }; - 6DDB4A5993061651E24E7A20D2B98CD0 /* sharpyuv_csp.c in Sources */ = {isa = PBXBuildFile; fileRef = 0C0D2B19B547B1FF27049B40C1F814EC /* sharpyuv_csp.c */; settings = {COMPILER_FLAGS = "-D_THREAD_SAFE -fno-objc-arc"; }; }; - 6DE4EF429E51202F0D58FFC6BA0A929C /* YBIBDataProtocol.h in Headers */ = {isa = PBXBuildFile; fileRef = 5A5BA70FEC1C78E7C0AD01C1748FEFBC /* YBIBDataProtocol.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 6DE6C7F0FA965828E4FCE687BF75FBBE /* MJRefreshAutoNormalFooter.m in Sources */ = {isa = PBXBuildFile; fileRef = D76B9189C6630474C495A0095371B50A /* MJRefreshAutoNormalFooter.m */; }; - 6E70FD36C8727B07CE2E1E33A67485F8 /* ReconnectTimer.h in Headers */ = {isa = PBXBuildFile; fileRef = F8D08950769F826D68FF60B4646903CC /* ReconnectTimer.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 6E8E2BDFC97BEC59728F799294361CB0 /* quant_dec.c in Sources */ = {isa = PBXBuildFile; fileRef = 2A233B03B02E73268E99D56FDEDC9FCF /* quant_dec.c */; settings = {COMPILER_FLAGS = "-D_THREAD_SAFE -fno-objc-arc"; }; }; - 6E9768DE32522A9BDAE652A71CB0339D /* TUIConfig.m in Sources */ = {isa = PBXBuildFile; fileRef = 82E18AE901BF4AEF62F224E784ABC4F2 /* TUIConfig.m */; }; - 6EBDAAC37ECF5FD96EA5BCE641618A87 /* TUICommonModel.m in Sources */ = {isa = PBXBuildFile; fileRef = 18EBAF584B696CB221C9BEC2A9B9E812 /* TUICommonModel.m */; }; - 6EFF58891A2BDB930E59DDBB53557F9F /* TUICoreTheme_Minimalist.bundle in Resources */ = {isa = PBXBuildFile; fileRef = BA3590990882B5B4A19670AC9FA0D493 /* TUICoreTheme_Minimalist.bundle */; }; - 6F08947648A52913443FB255BD96B1C0 /* ScoringMachineProtocol.swift in Sources */ = {isa = PBXBuildFile; fileRef = CD14AEF254415F9CAFB098159077C5BB /* ScoringMachineProtocol.swift */; }; - 6F4B91B36573316E375BFA522A631C01 /* LLScreenshotImageView.m in Sources */ = {isa = PBXBuildFile; fileRef = F9C7C18788030E30F92E319F88529380 /* LLScreenshotImageView.m */; }; - 6F6B35F54CE65ABE5A576F66DACC1185 /* SDDiskCache.m in Sources */ = {isa = PBXBuildFile; fileRef = CAD0AD3068472F52FA8B2DB6A0B11FA3 /* SDDiskCache.m */; }; - 6F75FDB9BE37C9A8473F97B1696B5D09 /* JXCategoryListContainerView.h in Headers */ = {isa = PBXBuildFile; fileRef = 6E712AD6ABD4B985271A5F2E81078CB9 /* JXCategoryListContainerView.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 6DE4EF429E51202F0D58FFC6BA0A929C /* YBIBDataProtocol.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B8F9D4DF79C6BECDCA1C9D14D27DFE5 /* YBIBDataProtocol.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 6DE6C7F0FA965828E4FCE687BF75FBBE /* MJRefreshAutoNormalFooter.m in Sources */ = {isa = PBXBuildFile; fileRef = BE7757F8AD39EE1F7BEC579DFBAF1158 /* MJRefreshAutoNormalFooter.m */; }; + 6E70FD36C8727B07CE2E1E33A67485F8 /* ReconnectTimer.h in Headers */ = {isa = PBXBuildFile; fileRef = 7109D7C673C3E8233DB1A7DC6E8D0584 /* ReconnectTimer.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 6E7883A08CD5E58BBA3D50FA6E30018C /* lossless_neon.c in Sources */ = {isa = PBXBuildFile; fileRef = E9E9A8D313D4EA9E98CFC88D6D56F1F7 /* lossless_neon.c */; settings = {COMPILER_FLAGS = "-D_THREAD_SAFE -fno-objc-arc"; }; }; + 6ED9361FA6CA71AFD17110377B365FE5 /* Zip-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 1BE696AE898CF859D435CA3561473095 /* Zip-dummy.m */; }; + 6F08947648A52913443FB255BD96B1C0 /* ScoringMachineProtocol.swift in Sources */ = {isa = PBXBuildFile; fileRef = A06F429023166DF8CFD2725B77474946 /* ScoringMachineProtocol.swift */; }; + 6F4B91B36573316E375BFA522A631C01 /* LLScreenshotImageView.m in Sources */ = {isa = PBXBuildFile; fileRef = 8BC0FF9EE0A770F4B320B20B34F9A137 /* LLScreenshotImageView.m */; }; + 6F64E93638A47888B45943CFC35CFC57 /* buffer_dec.c in Sources */ = {isa = PBXBuildFile; fileRef = FC546A86D11DA54EAC73A615369C28E5 /* buffer_dec.c */; settings = {COMPILER_FLAGS = "-D_THREAD_SAFE -fno-objc-arc"; }; }; + 6F75FDB9BE37C9A8473F97B1696B5D09 /* JXCategoryListContainerView.h in Headers */ = {isa = PBXBuildFile; fileRef = 7F1CAB64DE99CAFFF7F8C0DCE41285AF /* JXCategoryListContainerView.h */; settings = {ATTRIBUTES = (Public, ); }; }; 6F8052CDC510A9FA8E09C52E745A73EA /* TUIMergeMessageCell.m in Sources */ = {isa = PBXBuildFile; fileRef = A898A1F98A4CEE76C7DAF5EFB8D668AE /* TUIMergeMessageCell.m */; }; - 6F8DD4AE1698B4D8D2AF418BC372ECD7 /* LLLocationProxy.m in Sources */ = {isa = PBXBuildFile; fileRef = 861F7E0CA3AFDD003CB8FA10549E99AE /* LLLocationProxy.m */; }; - 6F96A74F2CBC73404C688B3F83D59713 /* LLNetworkModel.m in Sources */ = {isa = PBXBuildFile; fileRef = 04B919D67838FC229439BB0B4662F04C /* LLNetworkModel.m */; }; + 6F8DD4AE1698B4D8D2AF418BC372ECD7 /* LLLocationProxy.m in Sources */ = {isa = PBXBuildFile; fileRef = D33508649AF468E5AD20E17489CB50D7 /* LLLocationProxy.m */; }; + 6F96A74F2CBC73404C688B3F83D59713 /* LLNetworkModel.m in Sources */ = {isa = PBXBuildFile; fileRef = 89799A51AC5B8D27444B63A0C708C748 /* LLNetworkModel.m */; }; 6FA6E1A236677649A716D74F68622981 /* TUIChatModifyMessageHelper.m in Sources */ = {isa = PBXBuildFile; fileRef = 56165F19F48355B3A9D8272D215A7ECA /* TUIChatModifyMessageHelper.m */; }; - 6FCC2779FC1EC3542EA841DBA6D6A020 /* SVGAContentLayer.h in Headers */ = {isa = PBXBuildFile; fileRef = 7ABB8BC7F2F51867BA70320173E3BCF2 /* SVGAContentLayer.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 700BA5C6D7BFE8251E95B6AAC1AEADE7 /* IQTitleBarButtonItem.h in Headers */ = {isa = PBXBuildFile; fileRef = 1CD8647F3F770C4C44B6909BA049DD1D /* IQTitleBarButtonItem.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 700D2AA3341495AA0C40F375FA521AE3 /* Algorithm.h in Headers */ = {isa = PBXBuildFile; fileRef = 5C5C15F018F38A042C78F89DCC19685B /* Algorithm.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 6FCC2779FC1EC3542EA841DBA6D6A020 /* SVGAContentLayer.h in Headers */ = {isa = PBXBuildFile; fileRef = 00361D09259A98437F9FB0940187B976 /* SVGAContentLayer.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 6FD7C5AF4A486D9E525511FE07CAF8B7 /* vp8_dec.c in Sources */ = {isa = PBXBuildFile; fileRef = FF984B47225FDD7DAA2D4DC89C5888D1 /* vp8_dec.c */; settings = {COMPILER_FLAGS = "-D_THREAD_SAFE -fno-objc-arc"; }; }; + 6FE816BA0121CA266A00B3E7D039704A /* SDWebImageError.m in Sources */ = {isa = PBXBuildFile; fileRef = DA665001896216EC56E38F8B6CF9C11A /* SDWebImageError.m */; }; + 6FEF81EACFB8290E4C8D0213007FC4CF /* cost_mips32.c in Sources */ = {isa = PBXBuildFile; fileRef = 70C81FC71834B1E177BFF9B4EC6BB164 /* cost_mips32.c */; settings = {COMPILER_FLAGS = "-D_THREAD_SAFE -fno-objc-arc"; }; }; + 700BA5C6D7BFE8251E95B6AAC1AEADE7 /* IQTitleBarButtonItem.h in Headers */ = {isa = PBXBuildFile; fileRef = 8CD2F32CCB6620DC2E4DA0B0CFD85C26 /* IQTitleBarButtonItem.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 700D2AA3341495AA0C40F375FA521AE3 /* Algorithm.h in Headers */ = {isa = PBXBuildFile; fileRef = B194DDC27110CF95EA56034870715C28 /* Algorithm.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 700FA5A022E904AAAC9AE7433005CC9E /* TUIWeakProxy.m in Sources */ = {isa = PBXBuildFile; fileRef = 27AC6C179096FE28CA4BDABA8BD92E8B /* TUIWeakProxy.m */; }; 701A3F3D3DEC904D982C441C8CEFD862 /* TUIGroupCreatedCell.m in Sources */ = {isa = PBXBuildFile; fileRef = 36DE87FF6645F02EEFF37D59E5E14782 /* TUIGroupCreatedCell.m */; }; 7026E3B8D604AAE8706F144780D12805 /* TUIChatTheme.bundle in Resources */ = {isa = PBXBuildFile; fileRef = 57171897BF23802237A3E9001B7E18AA /* TUIChatTheme.bundle */; }; 702AC46F22553515868C3503B2E3C801 /* TUIReplyQuoteView.h in Headers */ = {isa = PBXBuildFile; fileRef = A645E24534632E87180C3CCA874F4617 /* TUIReplyQuoteView.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 703ECE43B05C08DBA32F0230A6499002 /* LLEntryBallView.h in Headers */ = {isa = PBXBuildFile; fileRef = FA34ED960A10DBE441DAC79960183360 /* LLEntryBallView.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 70430F1702D1FC67235FA9E43082F308 /* MQTTClient-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = B126BDB2263A01F0D05093F9A3DBE2EF /* MQTTClient-dummy.m */; }; + 703ECE43B05C08DBA32F0230A6499002 /* LLEntryBallView.h in Headers */ = {isa = PBXBuildFile; fileRef = A42C1E5895862D601588313E8542EBAF /* LLEntryBallView.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 70430F1702D1FC67235FA9E43082F308 /* MQTTClient-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 4D35A74BC801A1B8AECF7D12EC6B801A /* MQTTClient-dummy.m */; }; + 70815FC79FDB744FFF97A06395448785 /* QCloudCore-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = CEF0ED2E06CBE14491AF9FD14CEF3B9C /* QCloudCore-dummy.m */; }; + 709737A62E97CE253F789CE99572A618 /* sharpyuv_csp.h in Headers */ = {isa = PBXBuildFile; fileRef = 15A33D6AE6F352803CE3BA0C735F26B8 /* sharpyuv_csp.h */; settings = {ATTRIBUTES = (Project, ); }; }; 70B71BF1BB330FDD2D86CD79B42EB4C0 /* TUIChatSmallTongueView.m in Sources */ = {isa = PBXBuildFile; fileRef = 097BDE3C52C3D1AE8C9BCF151AF6B916 /* TUIChatSmallTongueView.m */; }; + 70C09375972CB0DAB150A6D09C59192E /* QCloudCRC64.h in Headers */ = {isa = PBXBuildFile; fileRef = CF932E20F871204E5F07D3F80869C5D2 /* QCloudCRC64.h */; settings = {ATTRIBUTES = (Public, ); }; }; 70C4386508EAE757F78E9C670CEEEDCC /* TUIInputController.m in Sources */ = {isa = PBXBuildFile; fileRef = 075273255B28474D75A23BB975D8C328 /* TUIInputController.m */; }; - 70D30BC7134E3C8006BF0B6A4B438057 /* JXCategoryTitleImageCell.h in Headers */ = {isa = PBXBuildFile; fileRef = 0D2CD83606622C586990024E0548D5DC /* JXCategoryTitleImageCell.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 70D30BC7134E3C8006BF0B6A4B438057 /* JXCategoryTitleImageCell.h in Headers */ = {isa = PBXBuildFile; fileRef = C687B8148F1910B4B648C64A6CD3D439 /* JXCategoryTitleImageCell.h */; settings = {ATTRIBUTES = (Public, ); }; }; 713F3DC7E2641FD6011F7F2E5D0FE8DF /* TUIGroupButtonCell_Minimalist.h in Headers */ = {isa = PBXBuildFile; fileRef = D1C6BA2EAE69D5409D69FE263D35D857 /* TUIGroupButtonCell_Minimalist.h */; settings = {ATTRIBUTES = (Public, ); }; }; 714C4922358E7AFA7FD165FFBAA66857 /* TUIMenuView_Minimalist.h in Headers */ = {isa = PBXBuildFile; fileRef = E278A72C5A9C2D21BB5D9F3048E9A42E /* TUIMenuView_Minimalist.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 717B980E4FEBC45C8AFB72B4120863CE /* LLSandboxComponent.h in Headers */ = {isa = PBXBuildFile; fileRef = 1F8AA2E551ED1527D8B46CFDA30457A9 /* LLSandboxComponent.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 717FC822FF16749466A2172AB9AFCD1F /* LLDetailTitleCell.h in Headers */ = {isa = PBXBuildFile; fileRef = DDC88FEBB8727A3A776F89B0D986163D /* LLDetailTitleCell.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 7185A42E15D6976BB75CE30CC2F1AB27 /* LLBaseTableViewCell.m in Sources */ = {isa = PBXBuildFile; fileRef = 4D27C90763A7DD8B508AC6D9E47885A2 /* LLBaseTableViewCell.m */; }; + 717B980E4FEBC45C8AFB72B4120863CE /* LLSandboxComponent.h in Headers */ = {isa = PBXBuildFile; fileRef = 6F590BBB5D9F172B6653BAC35659B091 /* LLSandboxComponent.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 717FC822FF16749466A2172AB9AFCD1F /* LLDetailTitleCell.h in Headers */ = {isa = PBXBuildFile; fileRef = 09760E5EB41613DDC7A05531DBBDA368 /* LLDetailTitleCell.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 7185A42E15D6976BB75CE30CC2F1AB27 /* LLBaseTableViewCell.m in Sources */ = {isa = PBXBuildFile; fileRef = 23CBEEFD035534375E98070CD9DE605D /* LLBaseTableViewCell.m */; }; 719130525E68E25CBFC0A35AECA872B5 /* TUILinkCell.h in Headers */ = {isa = PBXBuildFile; fileRef = 0854CB819A7BC2D7A3E86A617F440667 /* TUILinkCell.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 71A3CB6802680B30A5E2F7AB8ADC8525 /* LLLocation.h in Headers */ = {isa = PBXBuildFile; fileRef = 57FDC36AD61B6031CB658B58A28DADBA /* LLLocation.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 71A9A14223B711ED398479921B0D099B /* RACEmptySequence.h in Headers */ = {isa = PBXBuildFile; fileRef = BD892B6F45459AEBA85A914099D832FC /* RACEmptySequence.h */; settings = {ATTRIBUTES = (Private, ); }; }; - 71E92A551D9B8876966D69F6ECF474E4 /* AvoidCrash.h in Headers */ = {isa = PBXBuildFile; fileRef = 5FFB9B32C9304B2C02F9226579B90D1B /* AvoidCrash.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 71EAC39ECE811EF6055082B72C82D7EE /* YYWebImage-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = C6B729EC72A3E7EE2ED5C8A99B256E97 /* YYWebImage-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 71F93487767E310ADA5A55204EFD4172 /* SDImageCodersManager.m in Sources */ = {isa = PBXBuildFile; fileRef = 7A5DA90274FD948A4973F3E2AE5986FF /* SDImageCodersManager.m */; }; - 72160AA9CC58A895FB054E68E49176E9 /* BRTextPickerView.m in Sources */ = {isa = PBXBuildFile; fileRef = DC60866DA2C75125175CDB5DD741E082 /* BRTextPickerView.m */; }; - 72167B3ACAA1D8DB0200C37E5C703957 /* OSSIPv6Adapter.h in Headers */ = {isa = PBXBuildFile; fileRef = E7ADAE7D0F3413404AD508AAD8899515 /* OSSIPv6Adapter.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 71A2319149C6FB9385A5D576E22193BF /* SDWebImageOptionsProcessor.m in Sources */ = {isa = PBXBuildFile; fileRef = C8E968C43C6B5C68801618FF48203921 /* SDWebImageOptionsProcessor.m */; }; + 71A3CB6802680B30A5E2F7AB8ADC8525 /* LLLocation.h in Headers */ = {isa = PBXBuildFile; fileRef = E4ED40F5B60870AF9B51CE353E178560 /* LLLocation.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 71A9A14223B711ED398479921B0D099B /* RACEmptySequence.h in Headers */ = {isa = PBXBuildFile; fileRef = 71F194C96E1870C5F8EB7568160A0893 /* RACEmptySequence.h */; settings = {ATTRIBUTES = (Private, ); }; }; + 71E92A551D9B8876966D69F6ECF474E4 /* AvoidCrash.h in Headers */ = {isa = PBXBuildFile; fileRef = 1E41F889305B064BE18B2188D743011A /* AvoidCrash.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 71EAC39ECE811EF6055082B72C82D7EE /* YYWebImage-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = 1091026C99A74FE986F2EF251172CD33 /* YYWebImage-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 72160AA9CC58A895FB054E68E49176E9 /* BRTextPickerView.m in Sources */ = {isa = PBXBuildFile; fileRef = 9F6FF641EABEE4CC560B92FEB7DAFB1D /* BRTextPickerView.m */; }; + 72167B3ACAA1D8DB0200C37E5C703957 /* OSSIPv6Adapter.h in Headers */ = {isa = PBXBuildFile; fileRef = 923D56204C8878303AE2C6359922DB30 /* OSSIPv6Adapter.h */; settings = {ATTRIBUTES = (Public, ); }; }; 72180965014417931596827BAB3D886D /* TUIFileViewController.h in Headers */ = {isa = PBXBuildFile; fileRef = 97F2D1E98D2FAE9D3412F765A459F06E /* TUIFileViewController.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 722707D1ED96DB4C9176CAFD10D0F6A9 /* LLLogViewController.h in Headers */ = {isa = PBXBuildFile; fileRef = 89142EC6B523D91585CFF089AC2D5760 /* LLLogViewController.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 723113FD5F3D75FF1AB5255336247216 /* sharpyuv.c in Sources */ = {isa = PBXBuildFile; fileRef = 165719683AA3EE8CDC24DD49B0F7012D /* sharpyuv.c */; settings = {COMPILER_FLAGS = "-D_THREAD_SAFE -fno-objc-arc"; }; }; - 723CA7FCC548B5CD95356ACAC76567CC /* UIApplication+YYAdd.m in Sources */ = {isa = PBXBuildFile; fileRef = 1EC213AA74CEF098ADBC9AF0E46C7E63 /* UIApplication+YYAdd.m */; }; + 722707D1ED96DB4C9176CAFD10D0F6A9 /* LLLogViewController.h in Headers */ = {isa = PBXBuildFile; fileRef = 125A95325D9860E01937012FD3C0E317 /* LLLogViewController.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 723CA7FCC548B5CD95356ACAC76567CC /* UIApplication+YYAdd.m in Sources */ = {isa = PBXBuildFile; fileRef = AF508AC4AAFFCA0A0D366655A7F75716 /* UIApplication+YYAdd.m */; }; 723D1925C39764631641D0DBFDF6833B /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = F91075A92425F75F02E0E1C8D455AF79 /* Foundation.framework */; }; - 72493549A72116EBF5CAF735CD0AEA80 /* RACSequence.h in Headers */ = {isa = PBXBuildFile; fileRef = D821828056F8CA7A6C75531B742399FA /* RACSequence.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 724991CA89C46BAFBC08264D94D86484 /* AFURLRequestSerialization.h in Headers */ = {isa = PBXBuildFile; fileRef = AAB37F72A32BF77F9659649C64F3748B /* AFURLRequestSerialization.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 7280BB82296D72C49AAD4ACFA64F772E /* bit_writer_utils.h in Headers */ = {isa = PBXBuildFile; fileRef = 4184DCBB71B713497DD98B62D1032660 /* bit_writer_utils.h */; settings = {ATTRIBUTES = (Project, ); }; }; - 7283DDCBE48E1E836B1E8D378045760C /* OfflinePushExtConfigInfo.h in Headers */ = {isa = PBXBuildFile; fileRef = 47F26FBC921B8530CADA1C0B48729E56 /* OfflinePushExtConfigInfo.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 72AE6D5A79C2CC6D5E6578F9644C654B /* UIAlertView+RACSignalSupport.h in Headers */ = {isa = PBXBuildFile; fileRef = 256205526101F732296DD3DD84FD4A9C /* UIAlertView+RACSignalSupport.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 72493549A72116EBF5CAF735CD0AEA80 /* RACSequence.h in Headers */ = {isa = PBXBuildFile; fileRef = 2571385A0C05CA8746E0F28D50C41727 /* RACSequence.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 724991CA89C46BAFBC08264D94D86484 /* AFURLRequestSerialization.h in Headers */ = {isa = PBXBuildFile; fileRef = DF350F198EB9F6AD1C0396C161228699 /* AFURLRequestSerialization.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 726A9E27FE628AF66FEAFB214BA85BBF /* QCloudCOSXMLService+Transfer.m in Sources */ = {isa = PBXBuildFile; fileRef = F5894517989EB369276CA7F97CC83FC6 /* QCloudCOSXMLService+Transfer.m */; }; + 729E155AEAF77A9C8400F4B45E3907C9 /* webpi_dec.h in Headers */ = {isa = PBXBuildFile; fileRef = F15F91872233EE8EE0F3E443277151FD /* webpi_dec.h */; settings = {ATTRIBUTES = (Project, ); }; }; + 72AE6D5A79C2CC6D5E6578F9644C654B /* UIAlertView+RACSignalSupport.h in Headers */ = {isa = PBXBuildFile; fileRef = 4C571E11B7B5B9801B361197A15449E6 /* UIAlertView+RACSignalSupport.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 72BA548A669602BC74B7343EA578B093 /* QCloudSignatureFields.m in Sources */ = {isa = PBXBuildFile; fileRef = E52791FE967A9ACA6B4451CFA4F19E67 /* QCloudSignatureFields.m */; }; 72C90CC9265C6A3F445870FEE1FCF211 /* TUIChatConfig_Classic.h in Headers */ = {isa = PBXBuildFile; fileRef = EFE9FBC8AF21EE2EC58B8D593E34DCCA /* TUIChatConfig_Classic.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 731577C503D19D84FD21ECC7883D395B /* random_utils.h in Headers */ = {isa = PBXBuildFile; fileRef = 8A65FEC83A5F914F1D1506686969354D /* random_utils.h */; settings = {ATTRIBUTES = (Project, ); }; }; - 733238ED74C5AD541868E734A784C59C /* BRPickerStyle.h in Headers */ = {isa = PBXBuildFile; fileRef = 2ACECC93939E9485471A40122BECF5C1 /* BRPickerStyle.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 73484D39A92E83DF9E2B56D524ECA9C5 /* NSObject+RACDescription.h in Headers */ = {isa = PBXBuildFile; fileRef = B6F57065A876E2A87F53681BB4879762 /* NSObject+RACDescription.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 73574D4AAB1219ED412B3D2A6D1E321F /* UIStepper+RACSignalSupport.m in Sources */ = {isa = PBXBuildFile; fileRef = A12049159656D8053BC45EBAF14A5092 /* UIStepper+RACSignalSupport.m */; }; - 735B8CC30A80E18CB300E7593C81E6B8 /* YYSpriteSheetImage.h in Headers */ = {isa = PBXBuildFile; fileRef = CA0A608F7A9C7F3900D7F53900E1FD30 /* YYSpriteSheetImage.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 736BA760F45642E224EF0ABB98D2EA0F /* BRPickerViewMacro.h in Headers */ = {isa = PBXBuildFile; fileRef = D9B02393EAEB33A54EB83C8396AACB94 /* BRPickerViewMacro.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 73761DFBB402E1C150A8237B85E2C388 /* QGVAPMetalShaderFunctionLoader.m in Sources */ = {isa = PBXBuildFile; fileRef = BF98847EBFF7D1E8E8EB95FB31B164A0 /* QGVAPMetalShaderFunctionLoader.m */; }; - 739C6E58EBED9811DD2CB09D5DDD395D /* LLBaseWindow.h in Headers */ = {isa = PBXBuildFile; fileRef = EECE53281BBB3B762D5E3019C8E1B910 /* LLBaseWindow.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 73A3B205538A1FA2D9374664C59CE675 /* LLHierarchyPickerView.h in Headers */ = {isa = PBXBuildFile; fileRef = 556343C376CBBFD263B32B0B40598D68 /* LLHierarchyPickerView.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 73A70EE2C9C9FC76C6495945F3F0DC4D /* RACDisposable.m in Sources */ = {isa = PBXBuildFile; fileRef = D29B7BE54DD7C222865D156D3AB9CAAE /* RACDisposable.m */; }; - 73B39372537468BCBF5E31E3DF33DAFE /* Extensions.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8B0FD18816925B0577902324CB9DFBBC /* Extensions.swift */; }; - 73CBC54096E7607E0B642F473731DC67 /* SDWebImagePrefetcher.h in Headers */ = {isa = PBXBuildFile; fileRef = B2189A238F3FB0C4263BA8966E8A50DD /* SDWebImagePrefetcher.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 73FAF334D0F6B011C1E224FAE259058B /* LLHtmlWindow.m in Sources */ = {isa = PBXBuildFile; fileRef = 2B6D267CE9E1B697119ACB6DD5BF6881 /* LLHtmlWindow.m */; }; - 7421638D009A27ADDB956AD1398C9511 /* utils.h in Headers */ = {isa = PBXBuildFile; fileRef = D8B74DC9A94E739354C12C11334EFBBE /* utils.h */; settings = {ATTRIBUTES = (Project, ); }; }; + 72FAF4A4B46F576A71DA02698201BB66 /* QCloudRequestData.m in Sources */ = {isa = PBXBuildFile; fileRef = 76DF1335C12134B1D7D445AAE9364DAD /* QCloudRequestData.m */; }; + 7302081073BB5F70009CCAE3FA849EDB /* alpha_processing_sse41.c in Sources */ = {isa = PBXBuildFile; fileRef = 508B43E63B65B3D5ECB9245286302F94 /* alpha_processing_sse41.c */; settings = {COMPILER_FLAGS = "-D_THREAD_SAFE -fno-objc-arc"; }; }; + 733238ED74C5AD541868E734A784C59C /* BRPickerStyle.h in Headers */ = {isa = PBXBuildFile; fileRef = 5AD3E84946F04BBCF27D92779CED252D /* BRPickerStyle.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 73484D39A92E83DF9E2B56D524ECA9C5 /* NSObject+RACDescription.h in Headers */ = {isa = PBXBuildFile; fileRef = DC8A31E600A792A21E14A87D62727918 /* NSObject+RACDescription.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 73574D4AAB1219ED412B3D2A6D1E321F /* UIStepper+RACSignalSupport.m in Sources */ = {isa = PBXBuildFile; fileRef = 3455D83AE2F566E310C187F75E25A1F0 /* UIStepper+RACSignalSupport.m */; }; + 735E48D045A2351D2C05AAE959D686F6 /* NSString+TUIUtil.h in Headers */ = {isa = PBXBuildFile; fileRef = 7C1FA8898FB04920C5245AF177B91318 /* NSString+TUIUtil.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 736BA760F45642E224EF0ABB98D2EA0F /* BRPickerViewMacro.h in Headers */ = {isa = PBXBuildFile; fileRef = F8B5C907C3551E990641F7F8B0FC68DF /* BRPickerViewMacro.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 736C021BF1B69ED50AB6A3C7B441E707 /* NSImage+Compatibility.m in Sources */ = {isa = PBXBuildFile; fileRef = 37A171C91C19D0F12C6EC7F0FFF8E15C /* NSImage+Compatibility.m */; }; + 73761DFBB402E1C150A8237B85E2C388 /* QGVAPMetalShaderFunctionLoader.m in Sources */ = {isa = PBXBuildFile; fileRef = E31A240DEFB4EFD2B4D01DD7117E0034 /* QGVAPMetalShaderFunctionLoader.m */; }; + 739C6E58EBED9811DD2CB09D5DDD395D /* LLBaseWindow.h in Headers */ = {isa = PBXBuildFile; fileRef = FDBBD150506DF18C3C4A93C10F2BF49A /* LLBaseWindow.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 73A204F8708E7FE3A157ADEF23C83C6E /* backward_references_enc.c in Sources */ = {isa = PBXBuildFile; fileRef = 0671A8AABCD30AB3C728D93F82BF615D /* backward_references_enc.c */; settings = {COMPILER_FLAGS = "-D_THREAD_SAFE -fno-objc-arc"; }; }; + 73A3B205538A1FA2D9374664C59CE675 /* LLHierarchyPickerView.h in Headers */ = {isa = PBXBuildFile; fileRef = 8599F350D9B61D88A495344D7BAE052F /* LLHierarchyPickerView.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 73A70EE2C9C9FC76C6495945F3F0DC4D /* RACDisposable.m in Sources */ = {isa = PBXBuildFile; fileRef = D88D0F77FB238D4E662C9AE23CAEBE88 /* RACDisposable.m */; }; + 73B39372537468BCBF5E31E3DF33DAFE /* Extensions.swift in Sources */ = {isa = PBXBuildFile; fileRef = F633B22245CDEE9BF987758E3B74BC62 /* Extensions.swift */; }; + 73FAF334D0F6B011C1E224FAE259058B /* LLHtmlWindow.m in Sources */ = {isa = PBXBuildFile; fileRef = FDEA4EE17B8435E1A244FF956F57DC6F /* LLHtmlWindow.m */; }; + 74304F2FDD7CA6537E42152D77DC7CFE /* QCloudXMLWriter.h in Headers */ = {isa = PBXBuildFile; fileRef = C9330057B71F140B37BC9E00042B60E8 /* QCloudXMLWriter.h */; settings = {ATTRIBUTES = (Public, ); }; }; 7440E8E3D276DC6383BE3605B562218D /* TUIMessageMultiChooseView_Minimalist.m in Sources */ = {isa = PBXBuildFile; fileRef = 68B4ADC737778C3DF692D1D36ADBD520 /* TUIMessageMultiChooseView_Minimalist.m */; }; - 7442EEDA7CE62EF544CD7321040BA9A4 /* LLAppInfoHelper.h in Headers */ = {isa = PBXBuildFile; fileRef = AC89138165E8ABC2F7E6A48958DFA374 /* LLAppInfoHelper.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 7446118BBD505AECEB81964A568D4810 /* LLFunctionComponent.m in Sources */ = {isa = PBXBuildFile; fileRef = 09D98466FD061EDA558818DB4610EBAF /* LLFunctionComponent.m */; }; - 745888CF2B6BE4268572D66CD35A780A /* LLLocationMockRouteModel.m in Sources */ = {isa = PBXBuildFile; fileRef = 7FC5BDFC466EC58D3F786F4A178E0D37 /* LLLocationMockRouteModel.m */; }; - 74935C36A0E389324C1B458BAF7E0659 /* LLConvenientScreenshotComponent.m in Sources */ = {isa = PBXBuildFile; fileRef = 798B85CFA2FEA1EC56E6EE7192006D0E /* LLConvenientScreenshotComponent.m */; }; - 74972CE2B8760849ADCE77A57DB2592E /* YYTextWeakProxy.m in Sources */ = {isa = PBXBuildFile; fileRef = E0B49643CBB49E9D505B5F8F1FD53A92 /* YYTextWeakProxy.m */; }; - 749B3AEC52C395FB4A285D58722B9003 /* YYWebImageManager.h in Headers */ = {isa = PBXBuildFile; fileRef = A91C9B42E42536E5D074D2A7DD70F8FF /* YYWebImageManager.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 74A4AC633DE642003A765C931FD66450 /* LLTitleCellModel.m in Sources */ = {isa = PBXBuildFile; fileRef = 81AFFAB123228CF5B5F7A405ED8A65F3 /* LLTitleCellModel.m */; }; + 7442EEDA7CE62EF544CD7321040BA9A4 /* LLAppInfoHelper.h in Headers */ = {isa = PBXBuildFile; fileRef = D2D15502E1716B21DCCC2DDCE7702BD7 /* LLAppInfoHelper.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 7446118BBD505AECEB81964A568D4810 /* LLFunctionComponent.m in Sources */ = {isa = PBXBuildFile; fileRef = EAFFA0142D3AF6787B89DBC210C2CA48 /* LLFunctionComponent.m */; }; + 7447871F0A78341BEF69CD1570BD83DB /* UIImage+GIF.h in Headers */ = {isa = PBXBuildFile; fileRef = 493CC25D5A1C1722BB3C9A944434F6C3 /* UIImage+GIF.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 745888CF2B6BE4268572D66CD35A780A /* LLLocationMockRouteModel.m in Sources */ = {isa = PBXBuildFile; fileRef = AC603A19274FB2CD8196100E3288674E /* LLLocationMockRouteModel.m */; }; + 74935C36A0E389324C1B458BAF7E0659 /* LLConvenientScreenshotComponent.m in Sources */ = {isa = PBXBuildFile; fileRef = 551DC510725AD8CDD655B3EC5477A0F9 /* LLConvenientScreenshotComponent.m */; }; + 74972CE2B8760849ADCE77A57DB2592E /* YYTextWeakProxy.m in Sources */ = {isa = PBXBuildFile; fileRef = C633EFE05B75BEC4A82E1ED5B47B3D8A /* YYTextWeakProxy.m */; }; + 749B3AEC52C395FB4A285D58722B9003 /* YYWebImageManager.h in Headers */ = {isa = PBXBuildFile; fileRef = B1E0E37B6DB572C1BF483998D840C12C /* YYWebImageManager.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 74A1D7E7F7B02CDB2AF01FDF5071C294 /* QCloudCOSXML-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = 4F4F830C97D11D657F4F6538BBE7369A /* QCloudCOSXML-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 74A4AC633DE642003A765C931FD66450 /* LLTitleCellModel.m in Sources */ = {isa = PBXBuildFile; fileRef = BB980D9D90D607350408E38B8BBE7208 /* LLTitleCellModel.m */; }; + 74AA724E12CE5E78D796C3D18B4F81D0 /* upsampling_msa.c in Sources */ = {isa = PBXBuildFile; fileRef = D0A9B55B2A4B78892B247E467A229EE2 /* upsampling_msa.c */; settings = {COMPILER_FLAGS = "-D_THREAD_SAFE -fno-objc-arc"; }; }; + 74B2FF1F10268B4E26E3D51B4C02C4D0 /* UIImage+QCloudBundle.m in Sources */ = {isa = PBXBuildFile; fileRef = D49D69CC1463B9E1441DB8EF597C49CC /* UIImage+QCloudBundle.m */; }; 74BAE2AA54BF9B40F3E8F8BB44FD7CD9 /* TUIGroupCreatedCellData.m in Sources */ = {isa = PBXBuildFile; fileRef = 9540DF32823F25B245A8907FFFF8A2F2 /* TUIGroupCreatedCellData.m */; }; - 7525CD9ACBD7A3929A22A8205F0F7C9B /* LLShortCutHelper.h in Headers */ = {isa = PBXBuildFile; fileRef = 1255F8A25737F25EEB06F9A77C767064 /* LLShortCutHelper.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 75408D52A812FECC84C6FB7FF7C442F7 /* NSNumber+YYAdd.m in Sources */ = {isa = PBXBuildFile; fileRef = 652135307B51A24441A3CA94E9C1D047 /* NSNumber+YYAdd.m */; }; - 75DAF68EAA2C4C31478EDA2DC2D57455 /* YYCategories-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 6D097F8CAC9797189B5DD6C90DC5F326 /* YYCategories-dummy.m */; }; - 764A214486DC26599EDF01D061C2E1DE /* SDWebImageDownloaderDecryptor.m in Sources */ = {isa = PBXBuildFile; fileRef = 424BB3666066A1D28E7D5C0145146C1C /* SDWebImageDownloaderDecryptor.m */; }; - 76650EBC07D9E790FE57E595745EBBC5 /* SDImageCoder.h in Headers */ = {isa = PBXBuildFile; fileRef = 6227D63813069B9CA267358C5B2E3D2E /* SDImageCoder.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 7672F2589A19B825C819AA69A1DB0DF3 /* YYTextAttribute.h in Headers */ = {isa = PBXBuildFile; fileRef = 15F6E5CCF1C71D3157A8D4CD7984C3D3 /* YYTextAttribute.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 769362AA95ABC83ACBFE62E1AE8A10A0 /* LLNoneCopyTextField.h in Headers */ = {isa = PBXBuildFile; fileRef = B0A97A6940406BA43363AEBE53FFCEE4 /* LLNoneCopyTextField.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 769479819CB1D9EFF16BE98CE317AFF3 /* LLNetworkImageCell.h in Headers */ = {isa = PBXBuildFile; fileRef = A84212C733EE4C0F206ECE609D2CD477 /* LLNetworkImageCell.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 76A7CE65CD0FEF5877BE1B366E73CD16 /* NSDate+YYAdd.h in Headers */ = {isa = PBXBuildFile; fileRef = A8EC08E60F8DFF09E73CF1086CF3712B /* NSDate+YYAdd.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 74C05160B5A5A7EF619C6CB6254ABA4D /* QCloudLogManager.h in Headers */ = {isa = PBXBuildFile; fileRef = FD308BDEE243E3EC2366E129D50B0677 /* QCloudLogManager.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 7525CD9ACBD7A3929A22A8205F0F7C9B /* LLShortCutHelper.h in Headers */ = {isa = PBXBuildFile; fileRef = 277D448F043FB38680AA53C9B0ADABEA /* LLShortCutHelper.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 7535B55D5E8C735348A02D7F21F9847F /* ImageIO.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = A5B624A70D4735B79D27A4C5B4DA64AA /* ImageIO.framework */; }; + 753BAB4780145D4FD3E7102F732B1A93 /* alpha_processing_mips_dsp_r2.c in Sources */ = {isa = PBXBuildFile; fileRef = 41E51DB94A6FC8A936BBD0B77CE55ED9 /* alpha_processing_mips_dsp_r2.c */; settings = {COMPILER_FLAGS = "-D_THREAD_SAFE -fno-objc-arc"; }; }; + 75408D52A812FECC84C6FB7FF7C442F7 /* NSNumber+YYAdd.m in Sources */ = {isa = PBXBuildFile; fileRef = 4F913DD8E9D1DD23E75D985A632219C8 /* NSNumber+YYAdd.m */; }; + 7583A012358AB4438A81CB42CEE752C4 /* QCloudInitiateMultipartUploadRequest.h in Headers */ = {isa = PBXBuildFile; fileRef = 588895FF1346486ECBAEE86B9986F26B /* QCloudInitiateMultipartUploadRequest.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 75DAF68EAA2C4C31478EDA2DC2D57455 /* YYCategories-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 10273522C8A8B06633A16F79AF185B74 /* YYCategories-dummy.m */; }; + 75EC55920863EB9A75494F58C0027C1F /* picture_enc.c in Sources */ = {isa = PBXBuildFile; fileRef = 914BEA483726676393D445DE4DE45FB1 /* picture_enc.c */; settings = {COMPILER_FLAGS = "-D_THREAD_SAFE -fno-objc-arc"; }; }; + 7672F2589A19B825C819AA69A1DB0DF3 /* YYTextAttribute.h in Headers */ = {isa = PBXBuildFile; fileRef = 9EA8BFCEB35290D7C7990DBCB1E7DC3F /* YYTextAttribute.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 769362AA95ABC83ACBFE62E1AE8A10A0 /* LLNoneCopyTextField.h in Headers */ = {isa = PBXBuildFile; fileRef = DE2CFA9D9A2F4A02CAF3C1151D76BA55 /* LLNoneCopyTextField.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 769479819CB1D9EFF16BE98CE317AFF3 /* LLNetworkImageCell.h in Headers */ = {isa = PBXBuildFile; fileRef = 3AB782AC7C00029CE68CCBD575FF72B7 /* LLNetworkImageCell.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 76A7CE65CD0FEF5877BE1B366E73CD16 /* NSDate+YYAdd.h in Headers */ = {isa = PBXBuildFile; fileRef = 79197E9742FC7ACA3F513F5B1C3E9ADE /* NSDate+YYAdd.h */; settings = {ATTRIBUTES = (Public, ); }; }; 76BAFBC1D8ECCE133656C49E907050F5 /* TUIFaceSegementScrollView.m in Sources */ = {isa = PBXBuildFile; fileRef = 327EC8E8086101EB4B996956ECA23820 /* TUIFaceSegementScrollView.m */; }; - 76C21B1AE55DC6FFA71463F68DC7B43E /* LLScreenshotViewController.h in Headers */ = {isa = PBXBuildFile; fileRef = 34E2640229E8238789D84A897AEF3545 /* LLScreenshotViewController.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 76CE6F8D531EA7B2BCC219922FC75AAA /* MQTTCFSocketEncoder.m in Sources */ = {isa = PBXBuildFile; fileRef = 5D3453AD440E8776E21812DC32CC673A /* MQTTCFSocketEncoder.m */; }; + 76C21B1AE55DC6FFA71463F68DC7B43E /* LLScreenshotViewController.h in Headers */ = {isa = PBXBuildFile; fileRef = 24EC9E116E2CFD2C1FCC8A407CFAE3F8 /* LLScreenshotViewController.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 76CA3CFB705D6596A384D208F3F7AF7A /* SDWebImageTransitionInternal.h in Headers */ = {isa = PBXBuildFile; fileRef = 37065A75D83E7396C1993697D64B2C16 /* SDWebImageTransitionInternal.h */; settings = {ATTRIBUTES = (Private, ); }; }; + 76CE6F8D531EA7B2BCC219922FC75AAA /* MQTTCFSocketEncoder.m in Sources */ = {isa = PBXBuildFile; fileRef = 418D6C32727990782230828C49D7AF0A /* MQTTCFSocketEncoder.m */; }; 76E6CA3A0E437BF285DC8E3D49A793EA /* TUIMessageReadViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 3F87BDB8E808A82A00B25EDB2E327F87 /* TUIMessageReadViewController.m */; }; - 76FE013CAA5D3972F17B96497E3DBC56 /* RACDynamicSequence.h in Headers */ = {isa = PBXBuildFile; fileRef = 595A2AEE5A65358BE4824F0982DFCF01 /* RACDynamicSequence.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 77012917D2242C283FC2033151C77E72 /* YYTextMagnifier.h in Headers */ = {isa = PBXBuildFile; fileRef = F633EFEF8E6221E6C3C59F0B44C7B1EC /* YYTextMagnifier.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 772CF8E9CD02ECA4275B6173E2110E80 /* View+MASShorthandAdditions.h in Headers */ = {isa = PBXBuildFile; fileRef = 925687F9CF4BEB2B884C5A107EC7F564 /* View+MASShorthandAdditions.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 772FC78080957BFCF009F5B5218AB3E8 /* LLNetworkComponent.m in Sources */ = {isa = PBXBuildFile; fileRef = 5AC25879876AB54C8D73855B58D378D8 /* LLNetworkComponent.m */; }; - 77328C782097B4AA71F9A5D1B99CF48C /* QGMP4FrameHWDecoder.h in Headers */ = {isa = PBXBuildFile; fileRef = 22882EECE2115824AE08DDE008698515 /* QGMP4FrameHWDecoder.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 775AA4E6B8BB3997733A77430CD2F7DD /* BRBaseView.m in Sources */ = {isa = PBXBuildFile; fileRef = 0B54934660FB579DAA1DD748C0F86E14 /* BRBaseView.m */; }; - 7767F96B2292E6D566A79EFA92643359 /* LLRouter+Network.m in Sources */ = {isa = PBXBuildFile; fileRef = DFC9ED7E927EA6F3DFB9B86E97538293 /* LLRouter+Network.m */; }; - 7799D7F71554D3293AF8BF153E20D97A /* OfflinePushExtInfo.h in Headers */ = {isa = PBXBuildFile; fileRef = B7EA6FC9AF22FF281CCFF1E883E9E1A8 /* OfflinePushExtInfo.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 77AFA0A8A6D40C7B1C03C3BDC21A1272 /* lossless_neon.c in Sources */ = {isa = PBXBuildFile; fileRef = F1D17856669D0FEB8191B498F40531B9 /* lossless_neon.c */; settings = {COMPILER_FLAGS = "-D_THREAD_SAFE -fno-objc-arc"; }; }; - 77D697FFB49B719C1F046D8A3EB6DA36 /* GPBSourceContext.pbobjc.m in Sources */ = {isa = PBXBuildFile; fileRef = 03193DBFE66AA5B27435EC7A79CD1188 /* GPBSourceContext.pbobjc.m */; settings = {COMPILER_FLAGS = "-fno-objc-arc"; }; }; - 77F71350954EFEA1548AD66C2E6EB5FC /* upsampling_sse2.c in Sources */ = {isa = PBXBuildFile; fileRef = 8B3555E375576D0BDB845B336C7242AD /* upsampling_sse2.c */; settings = {COMPILER_FLAGS = "-D_THREAD_SAFE -fno-objc-arc"; }; }; - 780EDF2615923E89C179EB5A60D2DA41 /* JXCategoryCollectionView.h in Headers */ = {isa = PBXBuildFile; fileRef = B107938941210ED2FBABCD7AF027331D /* JXCategoryCollectionView.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 7819DD27A1B62DFC933835DFAFBDBF42 /* mz.h in Headers */ = {isa = PBXBuildFile; fileRef = EBFBDD5D4DF49E660553FC2ADF20385C /* mz.h */; settings = {ATTRIBUTES = (Project, ); }; }; - 7831EA4E9558E4C55E1E297893BA9A3F /* YYAnimatedImageView.h in Headers */ = {isa = PBXBuildFile; fileRef = F6C823FFFF8DC45B553CD41D517EF6F6 /* YYAnimatedImageView.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 78335F40E1DCC31801B626729AA17032 /* upsampling_mips_dsp_r2.c in Sources */ = {isa = PBXBuildFile; fileRef = 2B2FAEECFECB42387E64A383C220C74E /* upsampling_mips_dsp_r2.c */; settings = {COMPILER_FLAGS = "-D_THREAD_SAFE -fno-objc-arc"; }; }; - 785684E5AB15F3335ADB430C492A56EB /* LLEntryStyleModel.m in Sources */ = {isa = PBXBuildFile; fileRef = C858289408529E87B895C6F10F0ABE4D /* LLEntryStyleModel.m */; }; - 78661E688B5C3BE4696C9E89F762BEDD /* NSData+ImageContentType.h in Headers */ = {isa = PBXBuildFile; fileRef = D8831485F25F7259BF2543CCE7F3C30A /* NSData+ImageContentType.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 78738D8654840AFE9E9A9C8D23098510 /* cost_enc.c in Sources */ = {isa = PBXBuildFile; fileRef = F5AFE27AA6DCC84ED5E9D0C15A91CB02 /* cost_enc.c */; settings = {COMPILER_FLAGS = "-D_THREAD_SAFE -fno-objc-arc"; }; }; - 78892B095C5C8A91DAC058B607ABA3B2 /* OSSRestoreObjectResult.h in Headers */ = {isa = PBXBuildFile; fileRef = A689CF5BB1A3E202DA9F662500A2D835 /* OSSRestoreObjectResult.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 789735C62B41A852EE63C8AD95C7C685 /* UIGestureRecognizer+YYAdd.h in Headers */ = {isa = PBXBuildFile; fileRef = ADCA5F3C6DC228BA53FA18FF82FE52CC /* UIGestureRecognizer+YYAdd.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 789F60A2BEBEC50A63F3071A0197D492 /* LLConfig.m in Sources */ = {isa = PBXBuildFile; fileRef = 549F1C5969139F497518BAF11C48F351 /* LLConfig.m */; }; - 78A399BED0F9E46349F47EB9D2CB021E /* LLTableViewSelectableDelegate.h in Headers */ = {isa = PBXBuildFile; fileRef = A43532F44BCC462AD8BFFA06345EBF96 /* LLTableViewSelectableDelegate.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 76F0E980C644CADEB2767482361E28C7 /* SDWebImage-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = E68BAAC2BD14E395860B9FCECB394C41 /* SDWebImage-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 76FE013CAA5D3972F17B96497E3DBC56 /* RACDynamicSequence.h in Headers */ = {isa = PBXBuildFile; fileRef = BBDDEA7F7D6153715B217B0861D9E005 /* RACDynamicSequence.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 77012917D2242C283FC2033151C77E72 /* YYTextMagnifier.h in Headers */ = {isa = PBXBuildFile; fileRef = F8FD6112E89B5310AFB25FDEB36CBA41 /* YYTextMagnifier.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 772CF8E9CD02ECA4275B6173E2110E80 /* View+MASShorthandAdditions.h in Headers */ = {isa = PBXBuildFile; fileRef = EB84278F9C240163984059166FE0EA11 /* View+MASShorthandAdditions.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 772FC78080957BFCF009F5B5218AB3E8 /* LLNetworkComponent.m in Sources */ = {isa = PBXBuildFile; fileRef = F009AC257668424C615751C2506B3977 /* LLNetworkComponent.m */; }; + 77328C782097B4AA71F9A5D1B99CF48C /* QGMP4FrameHWDecoder.h in Headers */ = {isa = PBXBuildFile; fileRef = 67B3F520F242F8408461338A1A462C72 /* QGMP4FrameHWDecoder.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 774A8FB37A8425948605300B0B9D9B73 /* YYFrameImage.h in Headers */ = {isa = PBXBuildFile; fileRef = 547AD5FE94B8E8890383F48287DE956B /* YYFrameImage.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 775AA4E6B8BB3997733A77430CD2F7DD /* BRBaseView.m in Sources */ = {isa = PBXBuildFile; fileRef = 18FC96CC58A3760F2BCDB736F8029010 /* BRBaseView.m */; }; + 7767F96B2292E6D566A79EFA92643359 /* LLRouter+Network.m in Sources */ = {isa = PBXBuildFile; fileRef = CF9F8D38658BCF5191653BC297E28C70 /* LLRouter+Network.m */; }; + 779682F851CC03633ABFFBA0E8D0EB4F /* SDFileAttributeHelper.m in Sources */ = {isa = PBXBuildFile; fileRef = 30F048CA0AE11A263618A72FA4FFC37C /* SDFileAttributeHelper.m */; }; + 77BE4DB71EE170C2EAFFB6BA48797ADA /* lossless_enc.c in Sources */ = {isa = PBXBuildFile; fileRef = 2219A2C8EC086DEADE75ADBAA587A684 /* lossless_enc.c */; settings = {COMPILER_FLAGS = "-D_THREAD_SAFE -fno-objc-arc"; }; }; + 77C150E5084894BD7E87E60A6802E12F /* QCloudBizHTTPRequest+COSXML.h in Headers */ = {isa = PBXBuildFile; fileRef = B19CD9CB8BAF79C7CC6D0D6B78219BFB /* QCloudBizHTTPRequest+COSXML.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 77D697FFB49B719C1F046D8A3EB6DA36 /* GPBSourceContext.pbobjc.m in Sources */ = {isa = PBXBuildFile; fileRef = 4229A484FA4CC3658F4BD425661DB4F2 /* GPBSourceContext.pbobjc.m */; settings = {COMPILER_FLAGS = "-fno-objc-arc"; }; }; + 780EDF2615923E89C179EB5A60D2DA41 /* JXCategoryCollectionView.h in Headers */ = {isa = PBXBuildFile; fileRef = 43C3CFE35EC68B8945DD220F8DC627A9 /* JXCategoryCollectionView.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 7819DD27A1B62DFC933835DFAFBDBF42 /* mz.h in Headers */ = {isa = PBXBuildFile; fileRef = DBDDFAA999A99ED3F54264CAD99C5828 /* mz.h */; settings = {ATTRIBUTES = (Project, ); }; }; + 781AA5848E2391FE0D3D9B13B58760B8 /* SDWebImageDownloaderRequestModifier.h in Headers */ = {isa = PBXBuildFile; fileRef = D479BA1C8C604B48DA8A04018EDA3382 /* SDWebImageDownloaderRequestModifier.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 784EDFADAD82FAC7DED6D269890CA8B3 /* encode.h in Headers */ = {isa = PBXBuildFile; fileRef = A9BFD1A7CDE248132A063C7EFA77DBA2 /* encode.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 785684E5AB15F3335ADB430C492A56EB /* LLEntryStyleModel.m in Sources */ = {isa = PBXBuildFile; fileRef = 365C6C6ED6AED64789474E4FCC19775E /* LLEntryStyleModel.m */; }; + 78892B095C5C8A91DAC058B607ABA3B2 /* OSSRestoreObjectResult.h in Headers */ = {isa = PBXBuildFile; fileRef = 613A2513436703013AE9CEDA1109907D /* OSSRestoreObjectResult.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 789735C62B41A852EE63C8AD95C7C685 /* UIGestureRecognizer+YYAdd.h in Headers */ = {isa = PBXBuildFile; fileRef = 62BA7E83F0DCC3BFFC9ED548C5094D44 /* UIGestureRecognizer+YYAdd.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 789F60A2BEBEC50A63F3071A0197D492 /* LLConfig.m in Sources */ = {isa = PBXBuildFile; fileRef = BA4C78CE2CF50A328F19C6033C8C4F93 /* LLConfig.m */; }; + 78A399BED0F9E46349F47EB9D2CB021E /* LLTableViewSelectableDelegate.h in Headers */ = {isa = PBXBuildFile; fileRef = 07E12F66F0C74E8FE3A247A5DFFDD0D5 /* LLTableViewSelectableDelegate.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 78B9C81C32C187933D2D47C5ADB67B12 /* SDAnimatedImagePlayer.m in Sources */ = {isa = PBXBuildFile; fileRef = B5197FC8F3CA8278F03C3E69101DA835 /* SDAnimatedImagePlayer.m */; }; 78C6895FC55497C38B133EB2E5FD1CEF /* TUIImageCollectionCell_Minimalist.m in Sources */ = {isa = PBXBuildFile; fileRef = FA23F3C0A4C49E0258B3648059D0B23B /* TUIImageCollectionCell_Minimalist.m */; }; - 7902D28FC9EF5AFEB452F508C7F266B1 /* MJRefreshAutoNormalFooter.h in Headers */ = {isa = PBXBuildFile; fileRef = 6A6448D2FC538F0F90D53F06A8822A24 /* MJRefreshAutoNormalFooter.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 78C8E87D7106BBCA8EA7C89B608B59F6 /* alpha_processing_sse2.c in Sources */ = {isa = PBXBuildFile; fileRef = 9C33394F0E7BABD8B82BC1DD20D7DD19 /* alpha_processing_sse2.c */; settings = {COMPILER_FLAGS = "-D_THREAD_SAFE -fno-objc-arc"; }; }; + 7902D28FC9EF5AFEB452F508C7F266B1 /* MJRefreshAutoNormalFooter.h in Headers */ = {isa = PBXBuildFile; fileRef = 769A0472F954FE718F6A4E551D2894F2 /* MJRefreshAutoNormalFooter.h */; settings = {ATTRIBUTES = (Public, ); }; }; 790959ADB9A7BE7E23A915B880E27229 /* TUIReplyPreviewBar.m in Sources */ = {isa = PBXBuildFile; fileRef = 6E2E532ED7FAA784C0CF38E8C7F6E7A9 /* TUIReplyPreviewBar.m */; }; 79179AB96FFDF6C31B9B4751BA7F5514 /* TUIChatBaseDataProvider.h in Headers */ = {isa = PBXBuildFile; fileRef = 6577BCCD8FEF0E904F101B9F2FCDA937 /* TUIChatBaseDataProvider.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 7936CAAB1EB821E10A9F5E323048F89D /* LLMagnifierViewController.h in Headers */ = {isa = PBXBuildFile; fileRef = 09073B3C4545A83E888D395FB6E2AEA5 /* LLMagnifierViewController.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 79516C5BE459042B87FD2E96E2BA9A4D /* SDWebImageDownloader.h in Headers */ = {isa = PBXBuildFile; fileRef = 4BC063D2D8E5C2709B7C87FFCB1F191F /* SDWebImageDownloader.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 795DE7CEDEB9BC0C081F0DA082089C32 /* SDInternalMacros.h in Headers */ = {isa = PBXBuildFile; fileRef = 42470DC08A578CD4DB5502A1520820F6 /* SDInternalMacros.h */; settings = {ATTRIBUTES = (Private, ); }; }; - 79701CF51014A7C02D810F9DAEFE6D79 /* JXCategoryTitleCell.m in Sources */ = {isa = PBXBuildFile; fileRef = A263E84B5986F0B3C802912C58328C7F /* JXCategoryTitleCell.m */; }; + 7936CAAB1EB821E10A9F5E323048F89D /* LLMagnifierViewController.h in Headers */ = {isa = PBXBuildFile; fileRef = 483FA220EBE6DE11974FA317C1AE9F3B /* LLMagnifierViewController.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 79701CF51014A7C02D810F9DAEFE6D79 /* JXCategoryTitleCell.m in Sources */ = {isa = PBXBuildFile; fileRef = 0F9B1E78486FE006258AEE7EC88B74D9 /* JXCategoryTitleCell.m */; }; 7978C8B99D8C31E126404E46D172FD70 /* TUIChatSmallTongueView.h in Headers */ = {isa = PBXBuildFile; fileRef = A9EE9485A8B60746310B7A8C2D1CFE84 /* TUIChatSmallTongueView.h */; settings = {ATTRIBUTES = (Public, ); }; }; 797A78E2F68645AC1488BD1764A8C619 /* TUIVoiceMessageCellData.m in Sources */ = {isa = PBXBuildFile; fileRef = 644A764DDDE2B5CCFD552DC09D2A6A24 /* TUIVoiceMessageCellData.m */; }; - 7989A6E79BFA78440C39F568D972305C /* MJRefresh.h in Headers */ = {isa = PBXBuildFile; fileRef = 946B1ED3C30E392D4A276E04268E720E /* MJRefresh.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 798E1C36B6EEC96A9DFE4749599E363B /* NSString+YYAdd.h in Headers */ = {isa = PBXBuildFile; fileRef = 4B4C4C49B27AE50A19797A6B13F8D392 /* NSString+YYAdd.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 7992B71D2FA49BCE4A4559DF1ED9D690 /* GPBUnknownField_PackagePrivate.h in Headers */ = {isa = PBXBuildFile; fileRef = 4D82ED4AFEFCB2B8BC40005C731E228B /* GPBUnknownField_PackagePrivate.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 79D90E8FC3C197735716C18D3A2E2ADE /* CLLocation+LL_Location.h in Headers */ = {isa = PBXBuildFile; fileRef = 058D8991FF3DEDE1A320BA9D713F6967 /* CLLocation+LL_Location.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 79E48F16A170A96D1F2E8839D6D64FBD /* LLWindowManager+Hierarchy.m in Sources */ = {isa = PBXBuildFile; fileRef = 792BDE17147284F412D465D40D7D82D5 /* LLWindowManager+Hierarchy.m */; }; - 79EED77497687EF9CF4F840F74005F48 /* buffer_dec.c in Sources */ = {isa = PBXBuildFile; fileRef = 99969904C7B66F20281BD1B8BE69A6F8 /* buffer_dec.c */; settings = {COMPILER_FLAGS = "-D_THREAD_SAFE -fno-objc-arc"; }; }; + 7989A6E79BFA78440C39F568D972305C /* MJRefresh.h in Headers */ = {isa = PBXBuildFile; fileRef = D35C99E8614F1240276A47D9A3C0237B /* MJRefresh.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 798E1C36B6EEC96A9DFE4749599E363B /* NSString+YYAdd.h in Headers */ = {isa = PBXBuildFile; fileRef = DD4124BE66EA16516FFF8188EFC76F0A /* NSString+YYAdd.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 7992B71D2FA49BCE4A4559DF1ED9D690 /* GPBUnknownField_PackagePrivate.h in Headers */ = {isa = PBXBuildFile; fileRef = 7D73B991F91970EA6FA49F3BDC9EF941 /* GPBUnknownField_PackagePrivate.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 79B4156E4717561BE76FBFA0D5BD252B /* SDWebImageDownloaderDecryptor.h in Headers */ = {isa = PBXBuildFile; fileRef = DF0BBA9B42464B4176B06338BCAADE41 /* SDWebImageDownloaderDecryptor.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 79C800901BA07EACDEE0885D9668670A /* QCloudOperationQueue.m in Sources */ = {isa = PBXBuildFile; fileRef = 12219A15E2A116077165083EADA9D658 /* QCloudOperationQueue.m */; }; + 79D90E8FC3C197735716C18D3A2E2ADE /* CLLocation+LL_Location.h in Headers */ = {isa = PBXBuildFile; fileRef = CAF6106571940D673660A0787611E02D /* CLLocation+LL_Location.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 79E48F16A170A96D1F2E8839D6D64FBD /* LLWindowManager+Hierarchy.m in Sources */ = {isa = PBXBuildFile; fileRef = 2D4AA009EFBF09AF09130C2D978E268F /* LLWindowManager+Hierarchy.m */; }; + 79E6A6FC42C2A50CEE4CB36B5EA0D0D2 /* QCloudFileLogger.m in Sources */ = {isa = PBXBuildFile; fileRef = 9BB3A9AA14AB5DF7B0B2B548200126AE /* QCloudFileLogger.m */; }; + 79ECF8B86B505DB359090F0072E50CA1 /* TUICore-TUICore_Privacy in Resources */ = {isa = PBXBuildFile; fileRef = 62476AD95833F1EC15B5FC7E01E6CB19 /* TUICore-TUICore_Privacy */; }; 79F167515E57D4510F42DD6D2EEFADB7 /* TUIMergeReplyQuoteView_Minimalist.h in Headers */ = {isa = PBXBuildFile; fileRef = D0A5F9BE6E04A13B03CEB14559A58466 /* TUIMergeReplyQuoteView_Minimalist.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 79F4B99651758413BBF3FEFD1C46100A /* LLBaseCollectionViewCell.h in Headers */ = {isa = PBXBuildFile; fileRef = 6D9BB3ACB7E6A38051244484838348F7 /* LLBaseCollectionViewCell.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 7A114322FD74B0E16D5C30F1CF8F849B /* NSArray+AvoidCrash.m in Sources */ = {isa = PBXBuildFile; fileRef = 80F0DD12952ED87B30B0627F494F0E36 /* NSArray+AvoidCrash.m */; }; - 7A26241DF106712AC7C5AB50BDCDCCAD /* UIView+YYText.h in Headers */ = {isa = PBXBuildFile; fileRef = 7EF4173009E165F51CE02CA8303F8D2A /* UIView+YYText.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 79F4B99651758413BBF3FEFD1C46100A /* LLBaseCollectionViewCell.h in Headers */ = {isa = PBXBuildFile; fileRef = 7749CDC189668907FA85E1CE3762B28F /* LLBaseCollectionViewCell.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 7A114322FD74B0E16D5C30F1CF8F849B /* NSArray+AvoidCrash.m in Sources */ = {isa = PBXBuildFile; fileRef = F96E1EAFFB0135EF005F808FCE28AD11 /* NSArray+AvoidCrash.m */; }; + 7A24F1359C44ADBDC869ABC02BAD540C /* SDAnimatedImagePlayer.h in Headers */ = {isa = PBXBuildFile; fileRef = E4FAE4B9CC1934D1C85C22DC6E67F58F /* SDAnimatedImagePlayer.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 7A26241DF106712AC7C5AB50BDCDCCAD /* UIView+YYText.h in Headers */ = {isa = PBXBuildFile; fileRef = F2BAC07911A34060DCC9F62FEEA390BF /* UIView+YYText.h */; settings = {ATTRIBUTES = (Public, ); }; }; 7A39FAD680A2AFE97F537BC9C03AA205 /* TUIMessageBaseDataProvider.h in Headers */ = {isa = PBXBuildFile; fileRef = 7326F95CC68F362B01B7AB6A7E664060 /* TUIMessageBaseDataProvider.h */; settings = {ATTRIBUTES = (Public, ); }; }; 7A43AFC2CE3CDD3A61448A4890389140 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = F91075A92425F75F02E0E1C8D455AF79 /* Foundation.framework */; }; 7A4CDD2AABE76C3741BB6794537F7D97 /* TUIBaseMessageController_Minimalist+ProtectedAPI.h in Headers */ = {isa = PBXBuildFile; fileRef = 93FCD3E08B24EAECB6BA290C25794B95 /* TUIBaseMessageController_Minimalist+ProtectedAPI.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 7A72EED4D21EFD52DB67A1B243C42CD0 /* LLScreenshotSelectorView.h in Headers */ = {isa = PBXBuildFile; fileRef = 63C8FDB112830F4A2DF6C9C1D2360D5A /* LLScreenshotSelectorView.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 7A72EED4D21EFD52DB67A1B243C42CD0 /* LLScreenshotSelectorView.h in Headers */ = {isa = PBXBuildFile; fileRef = 5F5221963815A4246195A4F7393D4D27 /* LLScreenshotSelectorView.h */; settings = {ATTRIBUTES = (Public, ); }; }; 7A822A1AB352B6DB8C5FBD02659E51C1 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = F91075A92425F75F02E0E1C8D455AF79 /* Foundation.framework */; }; - 7AA19549B12A020DCD82432CBAE30427 /* SDWeakProxy.m in Sources */ = {isa = PBXBuildFile; fileRef = F12FBE6E6A6063CB1B3C137B5151A2C6 /* SDWeakProxy.m */; }; + 7A9DFE84BCFA04853C75BD52962BFEB2 /* OfflinePushExtBusinessInfo.m in Sources */ = {isa = PBXBuildFile; fileRef = 05BC9D17EBBB0C644FBB473A801A365D /* OfflinePushExtBusinessInfo.m */; }; 7AA885A49632E6311B68FFDE0DD3F1C9 /* TUIConversationMultiChooseView_Minimalist.m in Sources */ = {isa = PBXBuildFile; fileRef = E74601B22DB72DD03796E96705A3A34C /* TUIConversationMultiChooseView_Minimalist.m */; }; 7AC6AAED48BF5DA855104150A2CF51DD /* TUIFoldConversationListBaseDataProvider.h in Headers */ = {isa = PBXBuildFile; fileRef = 1DCFA6A608700DFA6B10940A80171747 /* TUIFoldConversationListBaseDataProvider.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 7AD70C269F61B9B7B5BB90FAC586A5A3 /* NSBundle+BRPickerView.m in Sources */ = {isa = PBXBuildFile; fileRef = C9C3B191F37B7FB154E6A62279162378 /* NSBundle+BRPickerView.m */; }; - 7ADD5E3EB3BD3AB45E0D82246016B0D9 /* sharpyuv_csp.h in Headers */ = {isa = PBXBuildFile; fileRef = 45716665E4EAA0E5DAD3E15292F69C4E /* sharpyuv_csp.h */; settings = {ATTRIBUTES = (Project, ); }; }; - 7B0458B6E9002963B57B5E8DB56B33B8 /* TAAbstractDotView.h in Headers */ = {isa = PBXBuildFile; fileRef = F29E02DF7E8B14A840107078E68F9346 /* TAAbstractDotView.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 7AD70C269F61B9B7B5BB90FAC586A5A3 /* NSBundle+BRPickerView.m in Sources */ = {isa = PBXBuildFile; fileRef = 494AE1EEC499764B92EB7EE3D53BBD35 /* NSBundle+BRPickerView.m */; }; + 7B0458B6E9002963B57B5E8DB56B33B8 /* TAAbstractDotView.h in Headers */ = {isa = PBXBuildFile; fileRef = 04F93B99373F84FB3CAC2DB23B5DADE4 /* TAAbstractDotView.h */; settings = {ATTRIBUTES = (Public, ); }; }; 7B1C61CA7A1DD66930DABF760149DAA3 /* TUIConversationListController.m in Sources */ = {isa = PBXBuildFile; fileRef = 3E3132179E4867E62E968B90A02AF64C /* TUIConversationListController.m */; }; - 7B4124ACA96B7D1CE5C4B53A6FADBF51 /* LLMagnifierWindow.m in Sources */ = {isa = PBXBuildFile; fileRef = 065C9ADE9C028B93E849796DCECDEBFA /* LLMagnifierWindow.m */; }; + 7B4124ACA96B7D1CE5C4B53A6FADBF51 /* LLMagnifierWindow.m in Sources */ = {isa = PBXBuildFile; fileRef = 0C8B8C82B78B0E02140C0E1621D2CA82 /* LLMagnifierWindow.m */; }; + 7B41594533A260AC128E2008A0CEE355 /* MobileCoreServices.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 6A4B0155D81BD9992D04820FA803A6DE /* MobileCoreServices.framework */; }; 7B4D7E4498868D71C5DE904C318A8976 /* TUIMemberCellData.m in Sources */ = {isa = PBXBuildFile; fileRef = A24C304F34D875AF9D30B224E8149319 /* TUIMemberCellData.m */; }; - 7B4EFFC3FF0F777D2016F71F95596D5E /* filters_sse2.c in Sources */ = {isa = PBXBuildFile; fileRef = 8A8FFD7C2E47DF1F6BB575A90A807915 /* filters_sse2.c */; settings = {COMPILER_FLAGS = "-D_THREAD_SAFE -fno-objc-arc"; }; }; - 7B8936A3C624863577D1F5314796C638 /* LLSettingViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 90BC90004236BCE3C7B89F50E2A7982D /* LLSettingViewController.m */; }; + 7B73CB919AA0330591FFD0DF1B8770C2 /* QCloudCOSXMLServiceUtilities.m in Sources */ = {isa = PBXBuildFile; fileRef = 4C2808CF313B057473840CDC35642A08 /* QCloudCOSXMLServiceUtilities.m */; }; + 7B8936A3C624863577D1F5314796C638 /* LLSettingViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 59AE9D70D9A19B0A9A979AB9768F21E5 /* LLSettingViewController.m */; }; 7BB0843A67CBF5B64FE1695CD08DC981 /* QuartzCore.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 495512CED6B55B9463695CBE9898BE51 /* QuartzCore.framework */; }; - 7BD03F5F6FF41D50F368F53984A23928 /* TZImagePickerController-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2B808DBD11F83AE48A117605787349 /* TZImagePickerController-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 7C0E703E6FA0DE4C0E4CE1A52FAF925A /* TAPageControl.m in Sources */ = {isa = PBXBuildFile; fileRef = DF95B3F1876A4C1DD21ED29A1015CD24 /* TAPageControl.m */; }; - 7C1492C1DD9BFEAAE37FC47265DC947D /* NSMutableString+AvoidCrash.m in Sources */ = {isa = PBXBuildFile; fileRef = 196F0625998DC51DDCF87BFDF917C668 /* NSMutableString+AvoidCrash.m */; }; - 7C14FCA367AB963FA7332CF19AEB6190 /* OSSGetBucketInfoResult.m in Sources */ = {isa = PBXBuildFile; fileRef = 852327A701AAD6F8A479BC74BE40E564 /* OSSGetBucketInfoResult.m */; }; + 7BD03F5F6FF41D50F368F53984A23928 /* TZImagePickerController-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = F4D5EF3E9841636963E4EDDCDF6187F1 /* TZImagePickerController-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 7BF691BF1588EE33E3BF4269C6874E7F /* lossless_enc_mips32.c in Sources */ = {isa = PBXBuildFile; fileRef = 47F9E07C30F10F1710B40B7BBB8100BE /* lossless_enc_mips32.c */; settings = {COMPILER_FLAGS = "-D_THREAD_SAFE -fno-objc-arc"; }; }; + 7C0E703E6FA0DE4C0E4CE1A52FAF925A /* TAPageControl.m in Sources */ = {isa = PBXBuildFile; fileRef = CFF79233CB753D68E555DC8E3B25F755 /* TAPageControl.m */; }; + 7C1492C1DD9BFEAAE37FC47265DC947D /* NSMutableString+AvoidCrash.m in Sources */ = {isa = PBXBuildFile; fileRef = B5B5872A0CC38D9CA24F16F06750DB2E /* NSMutableString+AvoidCrash.m */; }; + 7C14FCA367AB963FA7332CF19AEB6190 /* OSSGetBucketInfoResult.m in Sources */ = {isa = PBXBuildFile; fileRef = BEC903997C0C9532B3B0E836B3542926 /* OSSGetBucketInfoResult.m */; }; + 7C29043780C3949F1622F5380B2E2625 /* palette.h in Headers */ = {isa = PBXBuildFile; fileRef = 57BFE83FF143652383D8D52BD8B68ED6 /* palette.h */; settings = {ATTRIBUTES = (Project, ); }; }; 7C295BC9DB4DD2DB5137C3203CCDDCB4 /* TUIMessageCell.m in Sources */ = {isa = PBXBuildFile; fileRef = 976E283DFB7D8CEF67DA977E0B88253D /* TUIMessageCell.m */; }; - 7C5505A2D3F2A697A5F324787061F4B7 /* MASConstraint+Private.h in Headers */ = {isa = PBXBuildFile; fileRef = 3C3CF31542420185F3DB404477C45361 /* MASConstraint+Private.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 7C6A24B103E14B07F00100A020D9BA7D /* YYModel-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = 43C28D551C16612543B216EC60A29660 /* YYModel-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 7C6EDCCAB9E244E3DB9A01084B4413A4 /* LLButton.h in Headers */ = {isa = PBXBuildFile; fileRef = 0F2182553CE4575B6E4E7C792397A033 /* LLButton.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 7C3443D8CCEBB91F3CE43BB19927A73E /* NSDate+QCloudComapre.m in Sources */ = {isa = PBXBuildFile; fileRef = 020ADF3725407E5743290A57E877F690 /* NSDate+QCloudComapre.m */; }; + 7C5505A2D3F2A697A5F324787061F4B7 /* MASConstraint+Private.h in Headers */ = {isa = PBXBuildFile; fileRef = DFD7DFDBB62717B2AAC2E75ED67A2787 /* MASConstraint+Private.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 7C6A24B103E14B07F00100A020D9BA7D /* YYModel-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = 67FF0CF47B357F64347293E2BB8DCBF2 /* YYModel-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 7C6EDCCAB9E244E3DB9A01084B4413A4 /* LLButton.h in Headers */ = {isa = PBXBuildFile; fileRef = BC29AB5ED56B3B4F0AF5D8CBE55017F1 /* LLButton.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 7C6FD2D344AA34159D1F899A40BEC6BD /* QCloudMultipartInfo.h in Headers */ = {isa = PBXBuildFile; fileRef = F44BA258755276F28D07763771D72A11 /* QCloudMultipartInfo.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 7C74FAC852066BE12D9272A4152B5A5A /* QCloudAuthentationV5Creator.h in Headers */ = {isa = PBXBuildFile; fileRef = B30B6988DDE2F166062EAC02A14CD96B /* QCloudAuthentationV5Creator.h */; settings = {ATTRIBUTES = (Public, ); }; }; 7C7759CEB5E42B2E4A4CD0AE30969914 /* TUIReplyMessageCellData.h in Headers */ = {isa = PBXBuildFile; fileRef = 185891CE0FA5AA263CFA1982F4E5B3F1 /* TUIReplyMessageCellData.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 7C7D944BB921B77E15754E3284C83845 /* SDImageCacheConfig.m in Sources */ = {isa = PBXBuildFile; fileRef = 276EE6334CADB9FC101BF29F6E6E6C96 /* SDImageCacheConfig.m */; }; - 7C81CD00F0C5CDC183F5EA70584C9D2B /* TZAuthLimitedFooterTipView.m in Sources */ = {isa = PBXBuildFile; fileRef = 308AF89B134250D0CD9115BC42591484 /* TZAuthLimitedFooterTipView.m */; }; - 7CA138393DE78FE0AFF84DD79AD1783B /* GPBArray_PackagePrivate.h in Headers */ = {isa = PBXBuildFile; fileRef = 94C75BB537A2078039EA8CFF221C5B77 /* GPBArray_PackagePrivate.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 7CF3C3F9FC7E6C2330C242E601655FBC /* UIImage+ExtendedCacheData.h in Headers */ = {isa = PBXBuildFile; fileRef = F244481D2BD70CA6DEE4F0A5D8891CA2 /* UIImage+ExtendedCacheData.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 7D19484413530B0C2F3C67F275E9B2EA /* LLProxy.h in Headers */ = {isa = PBXBuildFile; fileRef = 4B98C44A64F510AC7D5B3D5257A703A6 /* LLProxy.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 7D1D00A799A5BA1ABBD28DBB13EE024C /* NSDictionary+VAPUtil.h in Headers */ = {isa = PBXBuildFile; fileRef = 3887FF2C85EA02C915288999A9FDEC57 /* NSDictionary+VAPUtil.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 7D1E98BE9558F6E5E29B0E81EC526A90 /* JXCategoryImageCell.h in Headers */ = {isa = PBXBuildFile; fileRef = E6D13CF8672AD03F8C407B5BA2045DF6 /* JXCategoryImageCell.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 7D2B574E988168EAFDB7A194B05D9508 /* LLSandboxWindow.h in Headers */ = {isa = PBXBuildFile; fileRef = 84976CAC7B63B4E315DC28D5A363255F /* LLSandboxWindow.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 7D7B770377196BCA46E35673B11FC637 /* TZImageRequestOperation.h in Headers */ = {isa = PBXBuildFile; fileRef = 11C0AC474AE9DFD4D517BFD0C6A12FEB /* TZImageRequestOperation.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 7D8EE3D0CDBB69436929836C33AF4838 /* GPBUnknownFieldSet.h in Headers */ = {isa = PBXBuildFile; fileRef = 812AF80FE57C92C33FF74E5D5BFBA2E6 /* GPBUnknownFieldSet.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 7D9B7886D109B225957E6BD295F968F4 /* UIImage+WebP.h in Headers */ = {isa = PBXBuildFile; fileRef = D3B1A9676B1BE055F959E27DD2539F24 /* UIImage+WebP.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 7DAA642421745C3FAA3C06E3AD535508 /* MQTTSSLSecurityPolicyDecoder.h in Headers */ = {isa = PBXBuildFile; fileRef = 0489B4E7CF7D7BEBBE5CE6A2724E3EB2 /* MQTTSSLSecurityPolicyDecoder.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 7DB8F743D0F865E3304CD6AEC4009376 /* QGVAPConfigModel.h in Headers */ = {isa = PBXBuildFile; fileRef = B1EAADBE74790CD68AAA65C51DE0FC3D /* QGVAPConfigModel.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 7DC6AF92D7A49BFFF22422808C6562E0 /* OSSNetworkingRequestDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = C397F8BAEA54E844DB80F7E4C2D08A8B /* OSSNetworkingRequestDelegate.m */; }; - 7DDF9709AB38F61405BF07C318F8DCFE /* MQTTInMemoryPersistence.h in Headers */ = {isa = PBXBuildFile; fileRef = 415EDC4F9C24FB1219CE8918D360F58C /* MQTTInMemoryPersistence.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 7DE68D233059A7C2BD2F4B12490CDD2C /* UIView+LL_Utils.m in Sources */ = {isa = PBXBuildFile; fileRef = F074D164137E6D27FB78D7B045BE04D5 /* UIView+LL_Utils.m */; }; - 7E08BB5E07CF4B85C7041F9D058BBC1D /* TZImageCropManager.m in Sources */ = {isa = PBXBuildFile; fileRef = 77E30E64E9270DD9CF9FF715F41492E3 /* TZImageCropManager.m */; }; - 7E0CE59DF6CA365A0F8ADF5CB174E68A /* SDAnimatedImageView+WebCache.m in Sources */ = {isa = PBXBuildFile; fileRef = B9E86BFCEBE64215BCEABA540178ED6C /* SDAnimatedImageView+WebCache.m */; }; - 7E29BCBC354A49524D1C1019377DD68C /* QGHWDShaderTypes.h in Headers */ = {isa = PBXBuildFile; fileRef = 5F858ACB8F054980D7E116044C9A022C /* QGHWDShaderTypes.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 7E87D589F135093C179E571A12242622 /* RACSubscriptingAssignmentTrampoline.m in Sources */ = {isa = PBXBuildFile; fileRef = 594FF10178D0CEA9AE06A05AFCDE4FAF /* RACSubscriptingAssignmentTrampoline.m */; }; - 7EA54D82094944541E95CB5041773FC4 /* IQKeyboardReturnKeyHandler.m in Sources */ = {isa = PBXBuildFile; fileRef = 9E71376EDE6C27D72848F85D2A2DDB92 /* IQKeyboardReturnKeyHandler.m */; }; + 7C77853F95836FCCA3EC0FAE9B551AFB /* QCloudServiceConfiguration+Quality.h in Headers */ = {isa = PBXBuildFile; fileRef = 6697056E33FF1977741123A939640298 /* QCloudServiceConfiguration+Quality.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 7C81CD00F0C5CDC183F5EA70584C9D2B /* TZAuthLimitedFooterTipView.m in Sources */ = {isa = PBXBuildFile; fileRef = E0457961BED118ADEE3972EE368A7C27 /* TZAuthLimitedFooterTipView.m */; }; + 7CA138393DE78FE0AFF84DD79AD1783B /* GPBArray_PackagePrivate.h in Headers */ = {isa = PBXBuildFile; fileRef = 51579FB914B828FDC79BFBAF0759EDEF /* GPBArray_PackagePrivate.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 7D19484413530B0C2F3C67F275E9B2EA /* LLProxy.h in Headers */ = {isa = PBXBuildFile; fileRef = A09107184EC47CEA2A18869EC7EBE627 /* LLProxy.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 7D1D00A799A5BA1ABBD28DBB13EE024C /* NSDictionary+VAPUtil.h in Headers */ = {isa = PBXBuildFile; fileRef = 198BE69391F4887F28FA64E0248071F8 /* NSDictionary+VAPUtil.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 7D1E98BE9558F6E5E29B0E81EC526A90 /* JXCategoryImageCell.h in Headers */ = {isa = PBXBuildFile; fileRef = E8777A80F3109028701BC6328896A006 /* JXCategoryImageCell.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 7D2B574E988168EAFDB7A194B05D9508 /* LLSandboxWindow.h in Headers */ = {isa = PBXBuildFile; fileRef = 70659A69CAE6EA930F48FCB7F22D38C9 /* LLSandboxWindow.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 7D3AEAF43EC8A509B2110FD1B7768119 /* QCloudServiceConfiguration.m in Sources */ = {isa = PBXBuildFile; fileRef = 78698D88D2EF9869FB93054A6D3F2BC8 /* QCloudServiceConfiguration.m */; }; + 7D474DE580BC95C375FCFE838E18C18D /* SDInternalMacros.m in Sources */ = {isa = PBXBuildFile; fileRef = DFFB6D1532803A3F738F4A9FD59EBF77 /* SDInternalMacros.m */; }; + 7D60D1C5C5458F03C876E7B576E8E55B /* QCloudConfiguration.m in Sources */ = {isa = PBXBuildFile; fileRef = F7DD294F8030E33AD9247C7EE8210884 /* QCloudConfiguration.m */; }; + 7D70F003693D51DA590B150D7F30DD92 /* TUIDarkModel.m in Sources */ = {isa = PBXBuildFile; fileRef = CE3AFEB67175C77D974F0ADF335962C8 /* TUIDarkModel.m */; }; + 7D7B770377196BCA46E35673B11FC637 /* TZImageRequestOperation.h in Headers */ = {isa = PBXBuildFile; fileRef = F3EC070A45B19821425FB4FC62B2B342 /* TZImageRequestOperation.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 7D8EE3D0CDBB69436929836C33AF4838 /* GPBUnknownFieldSet.h in Headers */ = {isa = PBXBuildFile; fileRef = 112512243FBC916B15B7E653B9DED86A /* GPBUnknownFieldSet.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 7D9B7886D109B225957E6BD295F968F4 /* UIImage+WebP.h in Headers */ = {isa = PBXBuildFile; fileRef = 32D76BD34CD2BE0A545513A0C0E136DF /* UIImage+WebP.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 7DAA642421745C3FAA3C06E3AD535508 /* MQTTSSLSecurityPolicyDecoder.h in Headers */ = {isa = PBXBuildFile; fileRef = 4E9D4F3C20EEEFACF0E26F2164A34B4A /* MQTTSSLSecurityPolicyDecoder.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 7DB8F743D0F865E3304CD6AEC4009376 /* QGVAPConfigModel.h in Headers */ = {isa = PBXBuildFile; fileRef = 5A06563771AD5B6DC597B80D8460B3A2 /* QGVAPConfigModel.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 7DC6AF92D7A49BFFF22422808C6562E0 /* OSSNetworkingRequestDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = 3B6C3FF75906D49816B4A95049FDEE4A /* OSSNetworkingRequestDelegate.m */; }; + 7DDF9709AB38F61405BF07C318F8DCFE /* MQTTInMemoryPersistence.h in Headers */ = {isa = PBXBuildFile; fileRef = B7C16BEB4788EC54D17700770DCFF936 /* MQTTInMemoryPersistence.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 7DE68D233059A7C2BD2F4B12490CDD2C /* UIView+LL_Utils.m in Sources */ = {isa = PBXBuildFile; fileRef = C843365FB508324DFEA1066E0471FA6F /* UIView+LL_Utils.m */; }; + 7E08BB5E07CF4B85C7041F9D058BBC1D /* TZImageCropManager.m in Sources */ = {isa = PBXBuildFile; fileRef = C9097DF320AD6854D0D1730AC9642B32 /* TZImageCropManager.m */; }; + 7E11E0BBC542CA0449746DB477640364 /* QCloudCOSXMLDownloadObjectRequest.h in Headers */ = {isa = PBXBuildFile; fileRef = D21FC35A263003D9063A244A68F3BF6A /* QCloudCOSXMLDownloadObjectRequest.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 7E29BCBC354A49524D1C1019377DD68C /* QGHWDShaderTypes.h in Headers */ = {isa = PBXBuildFile; fileRef = F9D24DD12D3E42238B1D77BB54E9FA99 /* QGHWDShaderTypes.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 7E4C2F2687D9FE014E75B65EB6984F86 /* QCloudUniversalPathFactory.m in Sources */ = {isa = PBXBuildFile; fileRef = 7CA06F08E44AB208CD1789571785DA66 /* QCloudUniversalPathFactory.m */; }; + 7E87D589F135093C179E571A12242622 /* RACSubscriptingAssignmentTrampoline.m in Sources */ = {isa = PBXBuildFile; fileRef = 75C812E71CF5725A0B7F0DAA45A5E9FC /* RACSubscriptingAssignmentTrampoline.m */; }; + 7EA54D82094944541E95CB5041773FC4 /* IQKeyboardReturnKeyHandler.m in Sources */ = {isa = PBXBuildFile; fileRef = DFEBC812C61A8513EF9F4C6C7C250054 /* IQKeyboardReturnKeyHandler.m */; }; 7EAD79580B04B33B76CD8D5798BF0CF8 /* TUIChat.h in Headers */ = {isa = PBXBuildFile; fileRef = A339BF835AD0BAF9904201794462DED7 /* TUIChat.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 7EBA6EDBCA4FE775D088E6BA122E4E4B /* XmlParser.swift in Sources */ = {isa = PBXBuildFile; fileRef = 967420287935BB8D5BD94A2094D80BBA /* XmlParser.swift */; }; - 7EBDFE8DD83691C12230B408D0756732 /* PrivacyInfo.xcprivacy in Resources */ = {isa = PBXBuildFile; fileRef = BA55F982A6001CDFC735D703067BBF0C /* PrivacyInfo.xcprivacy */; }; - 7EC853C5434336EF435F769826D3A3C7 /* UIView+YYAdd.h in Headers */ = {isa = PBXBuildFile; fileRef = B8B1F72D4C37FC81350C23A26CBCE359 /* UIView+YYAdd.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 7ED6C3C05EA6EE83780A3600C7088B46 /* mz_crypt.h in Headers */ = {isa = PBXBuildFile; fileRef = 90098B3496EF9217A27651C6B216D919 /* mz_crypt.h */; settings = {ATTRIBUTES = (Project, ); }; }; - 7EE24CA58A3B6C93F8124DCBE6539CE6 /* vp8i_enc.h in Headers */ = {isa = PBXBuildFile; fileRef = 01E398367630AB363FB25E946F373D70 /* vp8i_enc.h */; settings = {ATTRIBUTES = (Project, ); }; }; - 7F10C0D094C74F2FA4CD38C7FD77B0A8 /* WKWebView+AFNetworking.m in Sources */ = {isa = PBXBuildFile; fileRef = CCB1E1F3B1AE554D43EC50F9449EACA2 /* WKWebView+AFNetworking.m */; }; - 7F1949553D3C117359C281517A8EF960 /* GPBEmpty.pbobjc.h in Headers */ = {isa = PBXBuildFile; fileRef = D8AF1F119656673578F8444C271F2B2B /* GPBEmpty.pbobjc.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 7EBA6EDBCA4FE775D088E6BA122E4E4B /* XmlParser.swift in Sources */ = {isa = PBXBuildFile; fileRef = 386832C5BD3499E3597A77285E27241C /* XmlParser.swift */; }; + 7EC853C5434336EF435F769826D3A3C7 /* UIView+YYAdd.h in Headers */ = {isa = PBXBuildFile; fileRef = AB5418996736D7C56ADC85142FC15FBA /* UIView+YYAdd.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 7ECA113F9E3F371EABDD47DA7458AF8C /* anim_encode.c in Sources */ = {isa = PBXBuildFile; fileRef = 01DDF4017E587B9EF1AEA59D1AB0269E /* anim_encode.c */; settings = {COMPILER_FLAGS = "-D_THREAD_SAFE -fno-objc-arc"; }; }; + 7ED6C3C05EA6EE83780A3600C7088B46 /* mz_crypt.h in Headers */ = {isa = PBXBuildFile; fileRef = 82A74F33715923995340A1B73FB38DC4 /* mz_crypt.h */; settings = {ATTRIBUTES = (Project, ); }; }; + 7F10C0D094C74F2FA4CD38C7FD77B0A8 /* WKWebView+AFNetworking.m in Sources */ = {isa = PBXBuildFile; fileRef = 0181B85525623BF13C065D6FC2A0014E /* WKWebView+AFNetworking.m */; }; + 7F1949553D3C117359C281517A8EF960 /* GPBEmpty.pbobjc.h in Headers */ = {isa = PBXBuildFile; fileRef = FD9EDF992954E0963255C8A3AC630C95 /* GPBEmpty.pbobjc.h */; settings = {ATTRIBUTES = (Public, ); }; }; 7F36812FE2C0D8A0F6DD9658855DE217 /* CoreImage.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = FD062F8E373220F7BD07680C56E08EA8 /* CoreImage.framework */; }; - 7F3ABEDE976C2FC97BED035A1F41B732 /* YYDiskCache.m in Sources */ = {isa = PBXBuildFile; fileRef = C2EE43377FF6A0997004EE9B2EF5E682 /* YYDiskCache.m */; }; - 7F46110E24BBC89EB44DD11BE3231C68 /* YBIBCollectionView.m in Sources */ = {isa = PBXBuildFile; fileRef = 07DF01BD99A3A2A212AC4C0BED8C6192 /* YBIBCollectionView.m */; }; - 7F886FC2763F0BF1625A24EE4F94C04D /* UIRefreshControl+AFNetworking.h in Headers */ = {isa = PBXBuildFile; fileRef = 701B01541AF4C8663A726F903DED605D /* UIRefreshControl+AFNetworking.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 7FB7054DA6BF75EE6CEDC4D31817248C /* TUIKitLocalizable.bundle in Resources */ = {isa = PBXBuildFile; fileRef = BBEA8037ABA4B0C60F53C9D1AFB4606C /* TUIKitLocalizable.bundle */; }; - 7FE26592B76BBE7D97D50769C37F174C /* SDImageGIFCoder.m in Sources */ = {isa = PBXBuildFile; fileRef = 4DC2564CCF916F42356626D53461094E /* SDImageGIFCoder.m */; }; - 7FF50219077B6B6DEBA2F63EE87C3781 /* YBIBLoadingView.h in Headers */ = {isa = PBXBuildFile; fileRef = 3BA4D99997626F46FFEACA76BE8DCA47 /* YBIBLoadingView.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 7FF8A56511E71D6FEC966BF9FEE135B5 /* AFNetworkActivityIndicatorManager.h in Headers */ = {isa = PBXBuildFile; fileRef = 4D0F43DE4846AA96F2A431D520D25536 /* AFNetworkActivityIndicatorManager.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 7F3ABEDE976C2FC97BED035A1F41B732 /* YYDiskCache.m in Sources */ = {isa = PBXBuildFile; fileRef = 136160DFF4DC56D9F769B02AC0929F6F /* YYDiskCache.m */; }; + 7F46110E24BBC89EB44DD11BE3231C68 /* YBIBCollectionView.m in Sources */ = {isa = PBXBuildFile; fileRef = 5BE880167CD5D75B403798426828A97C /* YBIBCollectionView.m */; }; + 7F486EA29353E26957AE695D167A941C /* QCloudMultipartUploadInitiator.m in Sources */ = {isa = PBXBuildFile; fileRef = E4AB7D9B1431982AD38B82C9EF5E0697 /* QCloudMultipartUploadInitiator.m */; }; + 7F886FC2763F0BF1625A24EE4F94C04D /* UIRefreshControl+AFNetworking.h in Headers */ = {isa = PBXBuildFile; fileRef = 1A95A841692B05AA71D9B23913C6DCB1 /* UIRefreshControl+AFNetworking.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 7FF50219077B6B6DEBA2F63EE87C3781 /* YBIBLoadingView.h in Headers */ = {isa = PBXBuildFile; fileRef = B70428F70E136CC5D04C08B674B64DCF /* YBIBLoadingView.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 7FF8A56511E71D6FEC966BF9FEE135B5 /* AFNetworkActivityIndicatorManager.h in Headers */ = {isa = PBXBuildFile; fileRef = E7F470C1AAF30E9BE42D163CB95B0C90 /* AFNetworkActivityIndicatorManager.h */; settings = {ATTRIBUTES = (Public, ); }; }; 8034E3ADCD03B2AED30A5C42FA7C86B2 /* TUIConversationTableView.m in Sources */ = {isa = PBXBuildFile; fileRef = C05D167917CA4F9184B81BB330166224 /* TUIConversationTableView.m */; }; 8052D76956E67EC440CB4E2323B7F11E /* TUIChatService.h in Headers */ = {isa = PBXBuildFile; fileRef = 2834A026635154EEFF04BB3CF2B347A7 /* TUIChatService.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 807F8B771CAF66A74C94107078A2DE47 /* LLMagnifierView.h in Headers */ = {isa = PBXBuildFile; fileRef = 647D6F61E66BC6504B5E09D7B5FDFB3A /* LLMagnifierView.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 8085C3E407AA5EF1D9D7376F893F2B6A /* RACMulticastConnection+Private.h in Headers */ = {isa = PBXBuildFile; fileRef = 5B4A77C9A770321DFD1BE15FAD442EA6 /* RACMulticastConnection+Private.h */; settings = {ATTRIBUTES = (Private, ); }; }; - 80A8D44E274367AA97A804B3BEC264A5 /* SDCycleScrollView-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = A42EAD9878765593A296A972FEEC1C8B /* SDCycleScrollView-dummy.m */; }; - 80AFED5C0117D7E781670260E736305A /* BRAddressModel.h in Headers */ = {isa = PBXBuildFile; fileRef = E62FFFB5908F91CD2C7ACCCD5E3CFCEC /* BRAddressModel.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 80B9438059A8BFCBE5E3940E0DA1EE9A /* SDWebImage.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B0560BC7DAF461FE7A5358BF9C951D9 /* SDWebImage.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 80BC5DE1CE16235D6166643E18874114 /* IQKeyboardManagerConstantsInternal.h in Headers */ = {isa = PBXBuildFile; fileRef = D56D35B4F308B3FB671479609357BEA3 /* IQKeyboardManagerConstantsInternal.h */; settings = {ATTRIBUTES = (Project, ); }; }; + 805CB0D8C5C49452708BC49B1D591B7C /* QCloudListPartsResult.h in Headers */ = {isa = PBXBuildFile; fileRef = D4E90F4F7A8F65885DF9F6E01FA7088A /* QCloudListPartsResult.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 807F8B771CAF66A74C94107078A2DE47 /* LLMagnifierView.h in Headers */ = {isa = PBXBuildFile; fileRef = D6E4732BF338A7D905F1BD32A6814045 /* LLMagnifierView.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 8085C3E407AA5EF1D9D7376F893F2B6A /* RACMulticastConnection+Private.h in Headers */ = {isa = PBXBuildFile; fileRef = BE819378C0009619686B38EAAC6294F3 /* RACMulticastConnection+Private.h */; settings = {ATTRIBUTES = (Private, ); }; }; + 80A8D44E274367AA97A804B3BEC264A5 /* SDCycleScrollView-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 548776CDF0D86CACB6FA503CC4368123 /* SDCycleScrollView-dummy.m */; }; + 80AFED5C0117D7E781670260E736305A /* BRAddressModel.h in Headers */ = {isa = PBXBuildFile; fileRef = E5DD350699AF476F14E85542980DA167 /* BRAddressModel.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 80BA622EF5C475DB3565946D7D013258 /* QCloudMediaPath.h in Headers */ = {isa = PBXBuildFile; fileRef = A686FC9E4DA1F24044F0F824DCA06B52 /* QCloudMediaPath.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 80BC5DE1CE16235D6166643E18874114 /* IQKeyboardManagerConstantsInternal.h in Headers */ = {isa = PBXBuildFile; fileRef = 102A32772156807B7045B74EA0BC0CBA /* IQKeyboardManagerConstantsInternal.h */; settings = {ATTRIBUTES = (Project, ); }; }; 80BFF4778ADB364E70051DC1AE3B7F9E /* TUIRelationUserModel.h in Headers */ = {isa = PBXBuildFile; fileRef = 209879172E5087EAA9EADBF0F6D8DFBF /* TUIRelationUserModel.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 80D44B08D71851B8F27FF295206E99F6 /* YBIBVideoTopBar.h in Headers */ = {isa = PBXBuildFile; fileRef = 759C22D19B734FD7914350F679EF3A7B /* YBIBVideoTopBar.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 80E157CBA7AE6BD79E34E063F46ED57C /* UIActionSheet+RACSignalSupport.m in Sources */ = {isa = PBXBuildFile; fileRef = 0FC6CF60D2302792BEC53958959D04EA /* UIActionSheet+RACSignalSupport.m */; }; - 80EFB3CA40BA972693A18F6A12E0F4F8 /* LLRulerWindow.m in Sources */ = {isa = PBXBuildFile; fileRef = C9C1427EA71BE8756DB2B4291DDA4691 /* LLRulerWindow.m */; }; - 80F35FE6EC89AAC77F968AC86618E92A /* UITableViewCell+RACSignalSupport.m in Sources */ = {isa = PBXBuildFile; fileRef = D1879B8F07A78453656448845438BB92 /* UITableViewCell+RACSignalSupport.m */; }; - 80F9DA815A14C80808875FCE65F41CAB /* NSArray+VAPUtil.h in Headers */ = {isa = PBXBuildFile; fileRef = 4525F69C7EC6EEF866CDDE4285EF7044 /* NSArray+VAPUtil.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 80D44B08D71851B8F27FF295206E99F6 /* YBIBVideoTopBar.h in Headers */ = {isa = PBXBuildFile; fileRef = D47A22BD575A9B6FFE45026BF1DBB385 /* YBIBVideoTopBar.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 80E157CBA7AE6BD79E34E063F46ED57C /* UIActionSheet+RACSignalSupport.m in Sources */ = {isa = PBXBuildFile; fileRef = 5C931A54C2E2C07F96655639E86785D4 /* UIActionSheet+RACSignalSupport.m */; }; + 80EFB3CA40BA972693A18F6A12E0F4F8 /* LLRulerWindow.m in Sources */ = {isa = PBXBuildFile; fileRef = 91F8647124E0787F55038BB3D25FBB27 /* LLRulerWindow.m */; }; + 80F0AD05B7A7033FA782E811A22AFDA5 /* UIImage+Transform.m in Sources */ = {isa = PBXBuildFile; fileRef = CDCE0020309A5F2ADDFEEAA7592443CF /* UIImage+Transform.m */; }; + 80F35FE6EC89AAC77F968AC86618E92A /* UITableViewCell+RACSignalSupport.m in Sources */ = {isa = PBXBuildFile; fileRef = 1F831A5281096A13920386EF42722ED4 /* UITableViewCell+RACSignalSupport.m */; }; + 80F9DA815A14C80808875FCE65F41CAB /* NSArray+VAPUtil.h in Headers */ = {isa = PBXBuildFile; fileRef = EC2B8510602804E6C25935647B94A846 /* NSArray+VAPUtil.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 81097748862C2AE658E35C951125B3DB /* QCloudHTTPSessionManager.m in Sources */ = {isa = PBXBuildFile; fileRef = 95457C29FC39801500A209BB64538B5F /* QCloudHTTPSessionManager.m */; }; 8118AEE9D2F94F2DC0FA9EE52628AD6A /* TUIGroupProfileCardCellData_Minimalist.m in Sources */ = {isa = PBXBuildFile; fileRef = 92A8C56F5321E2AA0AAF46195868DC27 /* TUIGroupProfileCardCellData_Minimalist.m */; }; - 8128D2BD3AC890F75E7AD243AA104C13 /* JXCategoryIndicatorParamsModel.m in Sources */ = {isa = PBXBuildFile; fileRef = 3E78254046E55473DBFA5F1736E256ED /* JXCategoryIndicatorParamsModel.m */; }; - 812ED25410BAEC254BB80DF903862750 /* MQTTSSLSecurityPolicyDecoder.m in Sources */ = {isa = PBXBuildFile; fileRef = 25106002F2C0045DC60DA393D32734FC /* MQTTSSLSecurityPolicyDecoder.m */; }; - 81385B2990FFC4BFB943429BDB2DBD2F /* GPBApi.pbobjc.m in Sources */ = {isa = PBXBuildFile; fileRef = 8C9A54B670C67220C746FF0491A0690B /* GPBApi.pbobjc.m */; settings = {COMPILER_FLAGS = "-fno-objc-arc"; }; }; - 813BE4C96A6D39C13EC50C6CD164F0AF /* MASConstraintMaker.h in Headers */ = {isa = PBXBuildFile; fileRef = DF5382E219D7D8EFA5A89DB367D04410 /* MASConstraintMaker.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 81410C6644DA0C6B70C7A0C0EC92626F /* CALayer+YYAdd.h in Headers */ = {isa = PBXBuildFile; fileRef = 15326C99072EE61C47A1A69786519F31 /* CALayer+YYAdd.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 8128D2BD3AC890F75E7AD243AA104C13 /* JXCategoryIndicatorParamsModel.m in Sources */ = {isa = PBXBuildFile; fileRef = 08FC8C330637E4A26203F5C4F0C8FFBC /* JXCategoryIndicatorParamsModel.m */; }; + 812ED25410BAEC254BB80DF903862750 /* MQTTSSLSecurityPolicyDecoder.m in Sources */ = {isa = PBXBuildFile; fileRef = E89915ACAE5B113945B1B0C0820599A3 /* MQTTSSLSecurityPolicyDecoder.m */; }; + 81385B2990FFC4BFB943429BDB2DBD2F /* GPBApi.pbobjc.m in Sources */ = {isa = PBXBuildFile; fileRef = FC1516F2209EDDC2D920EC80F8334C56 /* GPBApi.pbobjc.m */; settings = {COMPILER_FLAGS = "-fno-objc-arc"; }; }; + 813BE4C96A6D39C13EC50C6CD164F0AF /* MASConstraintMaker.h in Headers */ = {isa = PBXBuildFile; fileRef = 229456A0002B546AEB3B11619B034725 /* MASConstraintMaker.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 81410C6644DA0C6B70C7A0C0EC92626F /* CALayer+YYAdd.h in Headers */ = {isa = PBXBuildFile; fileRef = 1832AD024F11EA28E6491B6EE218049F /* CALayer+YYAdd.h */; settings = {ATTRIBUTES = (Public, ); }; }; 8141D93FEAD553EEBA601D47EAB53420 /* TIMPopActionProtocol.h in Headers */ = {isa = PBXBuildFile; fileRef = 7A68AEF7D8C8DCB4F66D54DE4E6FF430 /* TIMPopActionProtocol.h */; settings = {ATTRIBUTES = (Public, ); }; }; 8141F5A4F7444222B9029C0C04281F16 /* TUIChatFace.bundle in Resources */ = {isa = PBXBuildFile; fileRef = 7160A6AD43E15C733E0D1B613C6A36D9 /* TUIChatFace.bundle */; }; - 8161D3CA4E049EFF4B33237230B4DDBA /* NSData+YYAdd.m in Sources */ = {isa = PBXBuildFile; fileRef = 1AD45616632E2D6FB7219489EF525303 /* NSData+YYAdd.m */; }; - 816285A314BBAD7E6256F5090DB117AA /* vp8i_dec.h in Headers */ = {isa = PBXBuildFile; fileRef = 336C1DA948FF772449434E995BD8A651 /* vp8i_dec.h */; settings = {ATTRIBUTES = (Project, ); }; }; - 817909CFA2E8032670693BF57A2D5519 /* mz_strm_mem.h in Headers */ = {isa = PBXBuildFile; fileRef = 65174360761DB66FED4DE75C805F65F3 /* mz_strm_mem.h */; settings = {ATTRIBUTES = (Project, ); }; }; + 8147F7BD9427E1F098DB119B28A5A471 /* sharpyuv_gamma.c in Sources */ = {isa = PBXBuildFile; fileRef = 9A651EC9070289A97EF337EFE867B426 /* sharpyuv_gamma.c */; settings = {COMPILER_FLAGS = "-D_THREAD_SAFE -fno-objc-arc"; }; }; + 81608BB30CB47A42E441941CC1650FC3 /* QCloudMultiDelegateProxy.m in Sources */ = {isa = PBXBuildFile; fileRef = 1C8D8936524EBE3B344C9BC49AF47117 /* QCloudMultiDelegateProxy.m */; }; + 8161D3CA4E049EFF4B33237230B4DDBA /* NSData+YYAdd.m in Sources */ = {isa = PBXBuildFile; fileRef = D0D2B295BF80FD7647A6E373F02EB062 /* NSData+YYAdd.m */; }; + 817909CFA2E8032670693BF57A2D5519 /* mz_strm_mem.h in Headers */ = {isa = PBXBuildFile; fileRef = BA2C6FBDA88DFCD94CDF34B9CC6B5B8B /* mz_strm_mem.h */; settings = {ATTRIBUTES = (Project, ); }; }; 819F12ED46F394534F28AE12292C7740 /* TUIMessageBaseMediaDataProvider.m in Sources */ = {isa = PBXBuildFile; fileRef = 9CCEECAFAEAF62C1D5BA88BA680ABB1D /* TUIMessageBaseMediaDataProvider.m */; }; - 81A5635CEA2AD9623E30CAE9AFC3BF65 /* NSBundle+MJRefresh.h in Headers */ = {isa = PBXBuildFile; fileRef = C8FC13E080653B95689427E9BB5AEDAB /* NSBundle+MJRefresh.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 81A5635CEA2AD9623E30CAE9AFC3BF65 /* NSBundle+MJRefresh.h in Headers */ = {isa = PBXBuildFile; fileRef = 3443B7A055C772DC7A0B5A8FDBB9431B /* NSBundle+MJRefresh.h */; settings = {ATTRIBUTES = (Public, ); }; }; 81AC11BE0FE476A8A9DCD4451208080F /* TUIConversationService_Minimalist.h in Headers */ = {isa = PBXBuildFile; fileRef = 443862055AB1A2B22A077E269E21FCAC /* TUIConversationService_Minimalist.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 81B56C1F9110FCD7532A5FD4A5E07F26 /* LLSandboxTextPreviewController.m in Sources */ = {isa = PBXBuildFile; fileRef = D442259526A73D1818CF1B3FEF6FB017 /* LLSandboxTextPreviewController.m */; }; + 81B56C1F9110FCD7532A5FD4A5E07F26 /* LLSandboxTextPreviewController.m in Sources */ = {isa = PBXBuildFile; fileRef = EE7DC835BDA49D199852711EC4553B8A /* LLSandboxTextPreviewController.m */; }; 81C591DCEB885EB6E9993A375A42C69F /* TUIMessageSearchDataProvider.h in Headers */ = {isa = PBXBuildFile; fileRef = 76CC1C40CD7F150B44EC5D075C24D595 /* TUIMessageSearchDataProvider.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 81D1D804B78CC7243BB72C4F0FB2CF15 /* LLLogWindow.h in Headers */ = {isa = PBXBuildFile; fileRef = A51301AD2DEA724DC4FFBA2A074839E2 /* LLLogWindow.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 81D1D804B78CC7243BB72C4F0FB2CF15 /* LLLogWindow.h in Headers */ = {isa = PBXBuildFile; fileRef = 89D952264408F11D7B3386FF4D7C68B1 /* LLLogWindow.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 81E7BD591D67EE712D65D5607D5074F0 /* NSString+QCloudSHA.h in Headers */ = {isa = PBXBuildFile; fileRef = 5AA52D27748E77DE70821D23A3D86E93 /* NSString+QCloudSHA.h */; settings = {ATTRIBUTES = (Public, ); }; }; 81F25F4C8398AA646E757033441ACAD5 /* TUIChatExtensionObserver.m in Sources */ = {isa = PBXBuildFile; fileRef = 0ACD74E9409F50C6A5B2CEA6EA866E13 /* TUIChatExtensionObserver.m */; }; - 81F5EA54407CB720718052C549998704 /* SDAnimatedImagePlayer.h in Headers */ = {isa = PBXBuildFile; fileRef = 6754AA1C23E5AC36B71614E2A951674F /* SDAnimatedImagePlayer.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 8205BDE0951C14B8411D96779BE5F8CB /* NSBundle+TZImagePicker.h in Headers */ = {isa = PBXBuildFile; fileRef = 6B239A49B93C15EC0B8A40FA1B22C2F1 /* NSBundle+TZImagePicker.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 82254FFB3296798BECE82BF531577E5B /* TZVideoCropController.m in Sources */ = {isa = PBXBuildFile; fileRef = DBCCE3367CFCFE8EAF47FCA662D63387 /* TZVideoCropController.m */; }; - 822F14A51D26702C2C3CDE7FC6FD4559 /* NSObject+RACPropertySubscribing.m in Sources */ = {isa = PBXBuildFile; fileRef = AB9D730F4C08F0B6BBCFADE910AD0A95 /* NSObject+RACPropertySubscribing.m */; }; - 823033F3DF2D5C7C4B123A277DB55073 /* mz_strm.c in Sources */ = {isa = PBXBuildFile; fileRef = 59579BD44E27B2EDDEE8380595FEB43A /* mz_strm.c */; }; - 825D12E2014A0326891B40E3CA977AC9 /* YYText-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 90D8F7730CBBCB11E49C17770F705019 /* YYText-dummy.m */; }; - 8267CD68633A7747378CE6B7E5EA932A /* UIDevice+VAPUtil.h in Headers */ = {isa = PBXBuildFile; fileRef = 55FF73FD94D203282FAE109DFCD2DB18 /* UIDevice+VAPUtil.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 8205BDE0951C14B8411D96779BE5F8CB /* NSBundle+TZImagePicker.h in Headers */ = {isa = PBXBuildFile; fileRef = 54EC05DDCA801E98E2D6B33852A50597 /* NSBundle+TZImagePicker.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 8216CA9FBCBD7F6E477BA8CDE5C89B86 /* upsampling_sse41.c in Sources */ = {isa = PBXBuildFile; fileRef = 410044B067F7DD4A01C05494625ECDF2 /* upsampling_sse41.c */; settings = {COMPILER_FLAGS = "-D_THREAD_SAFE -fno-objc-arc"; }; }; + 82254FFB3296798BECE82BF531577E5B /* TZVideoCropController.m in Sources */ = {isa = PBXBuildFile; fileRef = B3F8EF9485DEC55AA942156C83C2120C /* TZVideoCropController.m */; }; + 822F14A51D26702C2C3CDE7FC6FD4559 /* NSObject+RACPropertySubscribing.m in Sources */ = {isa = PBXBuildFile; fileRef = 23196B90844E6084099C006D0089BE25 /* NSObject+RACPropertySubscribing.m */; }; + 823033F3DF2D5C7C4B123A277DB55073 /* mz_strm.c in Sources */ = {isa = PBXBuildFile; fileRef = 9BDB11E404E29F0239331E5574C73B3B /* mz_strm.c */; }; + 825D12E2014A0326891B40E3CA977AC9 /* YYText-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = AA7F7BD6DA0E90C79B0C2F5390A8BD40 /* YYText-dummy.m */; }; + 825FD86CB211540B93698388809AEAB8 /* QCloudRequestData+COSXML.m in Sources */ = {isa = PBXBuildFile; fileRef = CEF3CE4555FDAEA369ABD1581E297B11 /* QCloudRequestData+COSXML.m */; }; + 8267CD68633A7747378CE6B7E5EA932A /* UIDevice+VAPUtil.h in Headers */ = {isa = PBXBuildFile; fileRef = 240862F3B8E54C91D33AFD34A896DBBC /* UIDevice+VAPUtil.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 828D37CD5222A35EEC430A007FF0296D /* SDImageCachesManagerOperation.m in Sources */ = {isa = PBXBuildFile; fileRef = 7797D0A0ADF164212771042AC5E18FA9 /* SDImageCachesManagerOperation.m */; }; 8292DE0E24364766447337520F1CD904 /* TUICaptureImagePreviewController.m in Sources */ = {isa = PBXBuildFile; fileRef = E3F4B6D386AFBB28C1B3E5BABEB67B29 /* TUICaptureImagePreviewController.m */; }; + 82A08131A4F2B04122FE322F25B1EE74 /* neon.h in Headers */ = {isa = PBXBuildFile; fileRef = 31ADE70C54EC2AA86CDD058978447193 /* neon.h */; settings = {ATTRIBUTES = (Project, ); }; }; + 82A1FBE72AB977764F33FB333B2FA2AE /* QCloudLogger.m in Sources */ = {isa = PBXBuildFile; fileRef = 7F401BD5D64C98706C50B381569FAA63 /* QCloudLogger.m */; }; 82D30958DE24D32169DADAB27E300040 /* TUICommonGroupInfoCellData.h in Headers */ = {isa = PBXBuildFile; fileRef = DED0B9E63597782CA2D7E84B42B88575 /* TUICommonGroupInfoCellData.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 82E8BDA9EF4BEAD4E3ED304B73075D1E /* enc_mips32.c in Sources */ = {isa = PBXBuildFile; fileRef = 7A4E0C63D2167E78E6616CA04F10960B /* enc_mips32.c */; settings = {COMPILER_FLAGS = "-D_THREAD_SAFE -fno-objc-arc"; }; }; - 8320C45699CAC5719F2A8520B6592F66 /* ReactiveObjC.h in Headers */ = {isa = PBXBuildFile; fileRef = C1DD8BA8D1AFC8CA6DF6622626BCF972 /* ReactiveObjC.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 8320C45699CAC5719F2A8520B6592F66 /* ReactiveObjC.h in Headers */ = {isa = PBXBuildFile; fileRef = FF49590BDCF35D6EF1E3CFA0A524C9D1 /* ReactiveObjC.h */; settings = {ATTRIBUTES = (Public, ); }; }; 83224166A7A2DC074DC193B5C6FF6341 /* TIMCommonMediator.h in Headers */ = {isa = PBXBuildFile; fileRef = E2531977085A038BF8D006D31F4E4A61 /* TIMCommonMediator.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 83433F6587AD1AF1AECA628F1B5F23A5 /* LLNetworkFilterView.m in Sources */ = {isa = PBXBuildFile; fileRef = 2D940C751843B36BEB6906542158AB9A /* LLNetworkFilterView.m */; }; - 83553A93078720285C19BD6C5DE6F891 /* NSData+YYAdd.h in Headers */ = {isa = PBXBuildFile; fileRef = 038128B9260A99031210959AFD639165 /* NSData+YYAdd.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 83433F6587AD1AF1AECA628F1B5F23A5 /* LLNetworkFilterView.m in Sources */ = {isa = PBXBuildFile; fileRef = 8767B263652CFDCD16E40D68E0A5E658 /* LLNetworkFilterView.m */; }; + 83553A93078720285C19BD6C5DE6F891 /* NSData+YYAdd.h in Headers */ = {isa = PBXBuildFile; fileRef = 0A86C790B45E4083031A17C6CEC3638C /* NSData+YYAdd.h */; settings = {ATTRIBUTES = (Public, ); }; }; 835C687083E3D51DE87C2F2C4C681B1C /* Security.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = E5E5388557256032F589DD8A8200B03A /* Security.framework */; }; - 836F7C86B67D8B9DC07E92DA3454E86C /* IQKeyboardReturnKeyHandler.h in Headers */ = {isa = PBXBuildFile; fileRef = 431702E6F18B8C98A9A6B60A43B4E9E1 /* IQKeyboardReturnKeyHandler.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 836068DBC3F27F018522ACA705628DA4 /* vp8_dec.h in Headers */ = {isa = PBXBuildFile; fileRef = 0E0A0BAA80DA453334649223D3A66C28 /* vp8_dec.h */; settings = {ATTRIBUTES = (Project, ); }; }; + 836F7C86B67D8B9DC07E92DA3454E86C /* IQKeyboardReturnKeyHandler.h in Headers */ = {isa = PBXBuildFile; fileRef = 33C8DA3D2A8279573A354DF2ADEDB1B6 /* IQKeyboardReturnKeyHandler.h */; settings = {ATTRIBUTES = (Public, ); }; }; 83A4F2816C1B3F072E1A26A34C3BC4AC /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = F91075A92425F75F02E0E1C8D455AF79 /* Foundation.framework */; }; - 83D606A78D12DD7520D4A2ED67EBF4C2 /* FMDatabaseQueue.m in Sources */ = {isa = PBXBuildFile; fileRef = 03DB84C5DAB22C9CC33D74AC4DF94FD8 /* FMDatabaseQueue.m */; }; + 83B8FD83CDDC4DDB8C30C1A4CE689EDF /* SDImageCachesManager.m in Sources */ = {isa = PBXBuildFile; fileRef = 19EC4EE0C567873774C66292AEC15EFD /* SDImageCachesManager.m */; }; + 83D606A78D12DD7520D4A2ED67EBF4C2 /* FMDatabaseQueue.m in Sources */ = {isa = PBXBuildFile; fileRef = DD3062298DC964BE33DDE207A95FB004 /* FMDatabaseQueue.m */; }; 83DD0AA04C87293B8F9578D7D2754187 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = F91075A92425F75F02E0E1C8D455AF79 /* Foundation.framework */; }; - 83E9673775BA0FDBB8FC197A61426861 /* SDMemoryCache.m in Sources */ = {isa = PBXBuildFile; fileRef = C4C1E961E62D23A6E68D20E8D029B2B0 /* SDMemoryCache.m */; }; - 83EE4E8E7BAEC5391D0B7DCA2EA5AFC0 /* OSSGetObjectACLResult.m in Sources */ = {isa = PBXBuildFile; fileRef = 42560742032C8BF735E3B934F5D39D26 /* OSSGetObjectACLResult.m */; }; - 8415E191A2886EC3426A01BC86299E1F /* mz_strm_buf.c in Sources */ = {isa = PBXBuildFile; fileRef = E2CFD475F1D5E2205AD0C1BDEC89C0FC /* mz_strm_buf.c */; }; + 83EE4E8E7BAEC5391D0B7DCA2EA5AFC0 /* OSSGetObjectACLResult.m in Sources */ = {isa = PBXBuildFile; fileRef = FE3AC34514DCD306FA3CC025C8C9C22B /* OSSGetObjectACLResult.m */; }; + 83FC7F5C1CCBB396659301768ADE1ED9 /* types.h in Headers */ = {isa = PBXBuildFile; fileRef = B86C6E30F767B19901BA01F9973BEB94 /* types.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 8415E191A2886EC3426A01BC86299E1F /* mz_strm_buf.c in Sources */ = {isa = PBXBuildFile; fileRef = 1427B961E3A5BA3434EDF22E7C734D31 /* mz_strm_buf.c */; }; 841F665670E6A4BA595975BE9569C342 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = F91075A92425F75F02E0E1C8D455AF79 /* Foundation.framework */; }; - 84921A6965D81F540426B325F6619DF3 /* LLAnnotation.h in Headers */ = {isa = PBXBuildFile; fileRef = 59970FF7CA18D915AFD14313201DADEA /* LLAnnotation.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 84B5FB65B38C19F534F49DE6471C0E5B /* mz_strm_zlib.c in Sources */ = {isa = PBXBuildFile; fileRef = 85425BC7EFF4D34A868E3BD6BDDD6A49 /* mz_strm_zlib.c */; }; - 84CC4C1245DEB16923C03796B81077D1 /* LLLogDefine.h in Headers */ = {isa = PBXBuildFile; fileRef = 0468BB8CCDC10CCC9646BC6EF2EF1518 /* LLLogDefine.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 84DFF0B49848BB0ACCB1C41C2F0497A4 /* LLWidgetBorderHelper.h in Headers */ = {isa = PBXBuildFile; fileRef = 5D6D46CFFA25461A23FA6F7C95B5D6E0 /* LLWidgetBorderHelper.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 8519FFE62880ED1C876D14CADE632505 /* LLLogHelper.m in Sources */ = {isa = PBXBuildFile; fileRef = 326457E17330AB8C4BF96B7DF959A075 /* LLLogHelper.m */; }; + 84921A6965D81F540426B325F6619DF3 /* LLAnnotation.h in Headers */ = {isa = PBXBuildFile; fileRef = EF1815A55EB691FEA620B8DC19152869 /* LLAnnotation.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 84B5FB65B38C19F534F49DE6471C0E5B /* mz_strm_zlib.c in Sources */ = {isa = PBXBuildFile; fileRef = 3EF1087DC4E07D930E9F64123948E480 /* mz_strm_zlib.c */; }; + 84C8A618ED329B0D8D6BFE1EF0282631 /* SDWebImageDownloaderOperation.m in Sources */ = {isa = PBXBuildFile; fileRef = 33C7A38BE28DEEA49F3A692023E68CD5 /* SDWebImageDownloaderOperation.m */; }; + 84CC4C1245DEB16923C03796B81077D1 /* LLLogDefine.h in Headers */ = {isa = PBXBuildFile; fileRef = 7531481D2D01648B1119B1ECB117B843 /* LLLogDefine.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 84DFF0B49848BB0ACCB1C41C2F0497A4 /* LLWidgetBorderHelper.h in Headers */ = {isa = PBXBuildFile; fileRef = 30F0633886F127563F74ACF39A7FF0FB /* LLWidgetBorderHelper.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 8519FFE62880ED1C876D14CADE632505 /* LLLogHelper.m in Sources */ = {isa = PBXBuildFile; fileRef = 13A7D917A92A240C84FE0CEFB2C9753F /* LLLogHelper.m */; }; 8537C51116861BE9A731A529AF79502C /* TUIConversation.h in Headers */ = {isa = PBXBuildFile; fileRef = 9C40A21F9277D41215D06231CB6FAAB2 /* TUIConversation.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 853FB6405F3A5B760D7BCB6A9B960AE0 /* QGVAPLogger.h in Headers */ = {isa = PBXBuildFile; fileRef = D215081B233C0157899F8CD1392F027F /* QGVAPLogger.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 8560591902BC68FDDE432817313A0502 /* LLSandboxCell.m in Sources */ = {isa = PBXBuildFile; fileRef = C17E299F82DE8805FE3EC13DD205CD99 /* LLSandboxCell.m */; }; - 85AB23275E9D19394969235E5DC2300E /* MJRefreshHeader.m in Sources */ = {isa = PBXBuildFile; fileRef = B1282D7AA922966064CBDFA1F136B05F /* MJRefreshHeader.m */; }; - 85ADE2C984B9734379D4E9504555424A /* OSSServiceSignature.m in Sources */ = {isa = PBXBuildFile; fileRef = 48C2340F7BF1F45F70EE1E903B18259C /* OSSServiceSignature.m */; }; - 85C08D3AEAC2C12FB06579C326550982 /* RACTestScheduler.m in Sources */ = {isa = PBXBuildFile; fileRef = C95D205F4D3CC22777142A7CACA76399 /* RACTestScheduler.m */; }; - 85C23D10F34A04A592E712D8479BD816 /* UIFont+YYAdd.m in Sources */ = {isa = PBXBuildFile; fileRef = 9459AF8F3E5C9053E7A59E3EC4342B20 /* UIFont+YYAdd.m */; }; - 85ED10431A6C01970A3DAD8A8C9BF25F /* JXPagerView.h in Headers */ = {isa = PBXBuildFile; fileRef = 9EB65665259C35FD5E82D73207BFA369 /* JXPagerView.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 860CB3A5D2E13B946CD2EFB7F749C4CF /* UIActivityIndicatorView+AFNetworking.h in Headers */ = {isa = PBXBuildFile; fileRef = 3B8A0F686454D4EED1E4B08D439A6E60 /* UIActivityIndicatorView+AFNetworking.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 860F38F44C72BF60A55102EB3EBC7948 /* ScoringMachine.swift in Sources */ = {isa = PBXBuildFile; fileRef = F660B5AE7DF73D1980AD5BC904ED7B98 /* ScoringMachine.swift */; }; - 861DA23D2D71536D7832C1BD0844590B /* vp8_dec.c in Sources */ = {isa = PBXBuildFile; fileRef = 86EF1208C46ED894D571AD6C492DC009 /* vp8_dec.c */; settings = {COMPILER_FLAGS = "-D_THREAD_SAFE -fno-objc-arc"; }; }; + 853FB6405F3A5B760D7BCB6A9B960AE0 /* QGVAPLogger.h in Headers */ = {isa = PBXBuildFile; fileRef = 132B2C689DCD777DB3F90F03952E6683 /* QGVAPLogger.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 8560591902BC68FDDE432817313A0502 /* LLSandboxCell.m in Sources */ = {isa = PBXBuildFile; fileRef = 8CE9693C7EE0BA4DC0D167FC5A8BE327 /* LLSandboxCell.m */; }; + 85863FD85FCB4121405CFF13660D260A /* PrivacyInfo.xcprivacy in Resources */ = {isa = PBXBuildFile; fileRef = 8B8FB28A9D30ECA09F09C36506DA8E06 /* PrivacyInfo.xcprivacy */; }; + 85AB23275E9D19394969235E5DC2300E /* MJRefreshHeader.m in Sources */ = {isa = PBXBuildFile; fileRef = D5D0B47D069C02BC3AC52FB851635104 /* MJRefreshHeader.m */; }; + 85ADE2C984B9734379D4E9504555424A /* OSSServiceSignature.m in Sources */ = {isa = PBXBuildFile; fileRef = 9A6600403FF27849D26DCED372AB99BB /* OSSServiceSignature.m */; }; + 85C08D3AEAC2C12FB06579C326550982 /* RACTestScheduler.m in Sources */ = {isa = PBXBuildFile; fileRef = 5C4F242CD832E3801061800A00E81669 /* RACTestScheduler.m */; }; + 85C23D10F34A04A592E712D8479BD816 /* UIFont+YYAdd.m in Sources */ = {isa = PBXBuildFile; fileRef = 4948440EE0B5687EA9D6EB66838E3B1E /* UIFont+YYAdd.m */; }; + 85ED10431A6C01970A3DAD8A8C9BF25F /* JXPagerView.h in Headers */ = {isa = PBXBuildFile; fileRef = FFEFC5459225C1D6833D458534BC3472 /* JXPagerView.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 860CB3A5D2E13B946CD2EFB7F749C4CF /* UIActivityIndicatorView+AFNetworking.h in Headers */ = {isa = PBXBuildFile; fileRef = 03BF43093B19208E3AE16619EEF6EE57 /* UIActivityIndicatorView+AFNetworking.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 860F38F44C72BF60A55102EB3EBC7948 /* ScoringMachine.swift in Sources */ = {isa = PBXBuildFile; fileRef = 83DE08ABDDA697D64E148207A6EA8D8E /* ScoringMachine.swift */; }; 866DAB382F87D5ADF18CA6DB12F71E64 /* TUIMessageReadViewController_Minimalist.h in Headers */ = {isa = PBXBuildFile; fileRef = 15D9C6DC714203BCE67C84C9D60E46C0 /* TUIMessageReadViewController_Minimalist.h */; settings = {ATTRIBUTES = (Public, ); }; }; 8675CC8EA8677D2F2F9ED13C235F5353 /* TUIGroupNoticeDataProvider.h in Headers */ = {isa = PBXBuildFile; fileRef = F05D544BFAD6DEB17A077304C93B769B /* TUIGroupNoticeDataProvider.h */; settings = {ATTRIBUTES = (Public, ); }; }; 8678216D6197B0FD468890999CA9BCF7 /* AlbumPicker.m in Sources */ = {isa = PBXBuildFile; fileRef = 96026FBB2F8FD1F74ABC487E8E31DA10 /* AlbumPicker.m */; }; - 86A6525BB278F85C1608EB39594451DC /* QuickZip.swift in Sources */ = {isa = PBXBuildFile; fileRef = AD0E37C6A4E41D3661FCB7AF24D6C3C7 /* QuickZip.swift */; }; - 86CF0BB8C8723EEECC946EC992BDDD33 /* TZPhotoPreviewCell.m in Sources */ = {isa = PBXBuildFile; fileRef = CC08102499A976AA9C80A31D8DCB69A3 /* TZPhotoPreviewCell.m */; }; - 86EE45879860D01CEE36EA89CEC5455C /* MobileCoreServices.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 6A4B0155D81BD9992D04820FA803A6DE /* MobileCoreServices.framework */; }; - 86F49BC4F7AE18697C2E48352004703B /* TUIDarkModel.m in Sources */ = {isa = PBXBuildFile; fileRef = CE3AFEB67175C77D974F0ADF335962C8 /* TUIDarkModel.m */; }; - 8706F7110B1A424205AF1E4A50CDEA7B /* RACScheduler.h in Headers */ = {isa = PBXBuildFile; fileRef = 7852EC32D4C50BE7EF8F4F80620AC043 /* RACScheduler.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 8711FE4967F7B63F83E21E3D1BF2269B /* UIColor+LL_Utils.h in Headers */ = {isa = PBXBuildFile; fileRef = 785EEFEFE74C9A3EF2EA06CA73326B2A /* UIColor+LL_Utils.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 87179D194DDB424A8A72DD7DF4989818 /* cost.c in Sources */ = {isa = PBXBuildFile; fileRef = 8DE522F509CDE89640D03DA4E47811DF /* cost.c */; settings = {COMPILER_FLAGS = "-D_THREAD_SAFE -fno-objc-arc"; }; }; - 87349B0CB0DE766ACAA2C84D1E71A0A4 /* cpu.c in Sources */ = {isa = PBXBuildFile; fileRef = ABF0400160196B408E6C52FE008EBDAB /* cpu.c */; settings = {COMPILER_FLAGS = "-D_THREAD_SAFE -fno-objc-arc"; }; }; - 874CE8F3650D220092077846A46598E6 /* JXCategoryTitleImageView.h in Headers */ = {isa = PBXBuildFile; fileRef = 81B73281D5838D27D169AE5A277ABD11 /* JXCategoryTitleImageView.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 874D4F4333ACAF8A27A9C9BB53CA884B /* sharpyuv_cpu.c in Sources */ = {isa = PBXBuildFile; fileRef = 12910AE21B90F8BC035075C6E8F72AD8 /* sharpyuv_cpu.c */; settings = {COMPILER_FLAGS = "-D_THREAD_SAFE -fno-objc-arc"; }; }; - 875A44AEF6ED55D6E7062C391FD831FE /* UIViewController+LL_Utils.m in Sources */ = {isa = PBXBuildFile; fileRef = D8DD7EB318DFF0B19FC176048834C534 /* UIViewController+LL_Utils.m */; }; + 868ACE81DFEC80762903E55F49F3D062 /* QCloudUniversalAdjustablePath.h in Headers */ = {isa = PBXBuildFile; fileRef = 859DE6F468D292B157C8C50EFA88A833 /* QCloudUniversalAdjustablePath.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 86CF0BB8C8723EEECC946EC992BDDD33 /* TZPhotoPreviewCell.m in Sources */ = {isa = PBXBuildFile; fileRef = 133E941E19269403FDB94954342B351E /* TZPhotoPreviewCell.m */; }; + 8706F7110B1A424205AF1E4A50CDEA7B /* RACScheduler.h in Headers */ = {isa = PBXBuildFile; fileRef = 27CF3F36A2F0579FC2DCC7FDC9C92EC2 /* RACScheduler.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 8711FE4967F7B63F83E21E3D1BF2269B /* UIColor+LL_Utils.h in Headers */ = {isa = PBXBuildFile; fileRef = 89CD89D90377A4027ED6E9DA5232715C /* UIColor+LL_Utils.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 8749ABD4FF8CDB3363EEA03AF9C48AFB /* QCloudAuthentationCreator.h in Headers */ = {isa = PBXBuildFile; fileRef = 78181E620223E59062D99CF2CE56EA5D /* QCloudAuthentationCreator.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 874CE8F3650D220092077846A46598E6 /* JXCategoryTitleImageView.h in Headers */ = {isa = PBXBuildFile; fileRef = E68613DF1CB927FB8EAE99A7C1341972 /* JXCategoryTitleImageView.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 875A44AEF6ED55D6E7062C391FD831FE /* UIViewController+LL_Utils.m in Sources */ = {isa = PBXBuildFile; fileRef = 3712540F0027EB218AE464F58A59CC60 /* UIViewController+LL_Utils.m */; }; + 87673702A8D8F8E5231C9EE9F443BB9E /* random_utils.c in Sources */ = {isa = PBXBuildFile; fileRef = 22395D96BD0C176809677199C8E364AA /* random_utils.c */; settings = {COMPILER_FLAGS = "-D_THREAD_SAFE -fno-objc-arc"; }; }; 87CBEC9AAEB143F9D9528F2DE66F6133 /* TUIConversationListBaseDataProvider.m in Sources */ = {isa = PBXBuildFile; fileRef = 120AEFA3CD7FF64DE083594AD2F1B5EF /* TUIConversationListBaseDataProvider.m */; }; 87D0F36D58E6D9008CC52E3AB77A6832 /* TUIFileViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = BB562BFA68708C2AEC93AD36A2E0D95E /* TUIFileViewController.m */; }; - 87D779B124FCB97E5B8F0807A7F956B1 /* GPBExtensionInternals.m in Sources */ = {isa = PBXBuildFile; fileRef = 84DBD06EFCBEE0C5494F6F52798EFD94 /* GPBExtensionInternals.m */; settings = {COMPILER_FLAGS = "-fno-objc-arc"; }; }; + 87D779B124FCB97E5B8F0807A7F956B1 /* GPBExtensionInternals.m in Sources */ = {isa = PBXBuildFile; fileRef = AABFA3A345BA6647A3D4F1EC9D98C146 /* GPBExtensionInternals.m */; settings = {COMPILER_FLAGS = "-fno-objc-arc"; }; }; 87D8541B6E2EB8AF8538C6295153B1E3 /* TUIConversationSelectController_Minimalist.h in Headers */ = {isa = PBXBuildFile; fileRef = 86796338B78749363118B2D5651D23C6 /* TUIConversationSelectController_Minimalist.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 87D866F47BC04711B213B08D4AEEBC58 /* TZPhotoPreviewController.h in Headers */ = {isa = PBXBuildFile; fileRef = 33D353B44EE0092B7A36F0CB689CA644 /* TZPhotoPreviewController.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 87E0B81548B6D62E0543B49F37276811 /* LLReachability.h in Headers */ = {isa = PBXBuildFile; fileRef = 09C40ECED6606B10F5281CED2D23A991 /* LLReachability.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 880734078B5547EE076E5CA7242EB33F /* LLFilterOtherView.m in Sources */ = {isa = PBXBuildFile; fileRef = F0A51593FDDFCC3278387F39D83E39FB /* LLFilterOtherView.m */; }; + 87D866F47BC04711B213B08D4AEEBC58 /* TZPhotoPreviewController.h in Headers */ = {isa = PBXBuildFile; fileRef = 3CE9A3A6D92E62A399341821737EDBC8 /* TZPhotoPreviewController.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 87E0B81548B6D62E0543B49F37276811 /* LLReachability.h in Headers */ = {isa = PBXBuildFile; fileRef = 229DE89D7AD71733706C671D77CC7666 /* LLReachability.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 880734078B5547EE076E5CA7242EB33F /* LLFilterOtherView.m in Sources */ = {isa = PBXBuildFile; fileRef = 3A5C00D57F5928FE8EB781CC2C0EA87C /* LLFilterOtherView.m */; }; 88090D17729671297E182E8581E2E881 /* TUIReplyQuoteView_Minimalist.h in Headers */ = {isa = PBXBuildFile; fileRef = 29E26C59CCF55FC936FBD2CDE025FF9D /* TUIReplyQuoteView_Minimalist.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 88197D535BEBB0F4B71F106AE300631D /* JXCategoryBaseView.h in Headers */ = {isa = PBXBuildFile; fileRef = 81236901A91A3903EF88042EEC4E90BF /* JXCategoryBaseView.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 883FD025282A98981CFF7B3DB51DB1D5 /* config_enc.c in Sources */ = {isa = PBXBuildFile; fileRef = ABC7E828C1EFC4EDEBB35D12432C1DC1 /* config_enc.c */; settings = {COMPILER_FLAGS = "-D_THREAD_SAFE -fno-objc-arc"; }; }; - 884640C08ACB1D127FC23C368310D8A3 /* UIScreen+YYAdd.h in Headers */ = {isa = PBXBuildFile; fileRef = C89E2504985E03ACD1D1EA8FF03A4C07 /* UIScreen+YYAdd.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 8872BEB0954C0254A792469F4DBC9891 /* MJRefreshAutoStateFooter.m in Sources */ = {isa = PBXBuildFile; fileRef = 752314A8247EE2D1334AA134A994C269 /* MJRefreshAutoStateFooter.m */; }; - 88889F5DA04EB4FA08125742B5E522DA /* JXCategoryTitleView.h in Headers */ = {isa = PBXBuildFile; fileRef = 320209B1B0F7E135EA478D3FEF6BE049 /* JXCategoryTitleView.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 888E7F1F8876AF0CF9EDA4A866E376AD /* UISegmentedControl+RACSignalSupport.m in Sources */ = {isa = PBXBuildFile; fileRef = 79029D33A08F6FA9B18D92BD91286B4F /* UISegmentedControl+RACSignalSupport.m */; }; - 88A6B3696943C988A1A0A1FE652A14E5 /* TUIWeakProxy.m in Sources */ = {isa = PBXBuildFile; fileRef = 27AC6C179096FE28CA4BDABA8BD92E8B /* TUIWeakProxy.m */; }; - 892836B00B1EC32998E806DDECB97FA0 /* OSSTask.h in Headers */ = {isa = PBXBuildFile; fileRef = BDC0FB4AD840773A77D68DBADD5FAB22 /* OSSTask.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 88197D535BEBB0F4B71F106AE300631D /* JXCategoryBaseView.h in Headers */ = {isa = PBXBuildFile; fileRef = 6112F12A2C44C152B62D6CF04EA3C2A8 /* JXCategoryBaseView.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 881E7CF6C23E6A128A5BB530207A8BCD /* QCloudMultiDelegateProxy.h in Headers */ = {isa = PBXBuildFile; fileRef = 61752A0E14B02C5DCBDCFE98F7EB9266 /* QCloudMultiDelegateProxy.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 884640C08ACB1D127FC23C368310D8A3 /* UIScreen+YYAdd.h in Headers */ = {isa = PBXBuildFile; fileRef = 9809B70512BD2DA0DD82468228FBE923 /* UIScreen+YYAdd.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 8872BEB0954C0254A792469F4DBC9891 /* MJRefreshAutoStateFooter.m in Sources */ = {isa = PBXBuildFile; fileRef = F01E1F08282F3394FD18192811AC5C49 /* MJRefreshAutoStateFooter.m */; }; + 88889F5DA04EB4FA08125742B5E522DA /* JXCategoryTitleView.h in Headers */ = {isa = PBXBuildFile; fileRef = 18041577F16A0143428033EB5F335017 /* JXCategoryTitleView.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 888E7F1F8876AF0CF9EDA4A866E376AD /* UISegmentedControl+RACSignalSupport.m in Sources */ = {isa = PBXBuildFile; fileRef = 060CA856231CE9AEF91DE3B82284A1FE /* UISegmentedControl+RACSignalSupport.m */; }; + 88BEA37AB338316CB588313BCD2C9F56 /* SDImageGIFCoder.m in Sources */ = {isa = PBXBuildFile; fileRef = D4A94EDF166017F836A2F4FAB770A2A5 /* SDImageGIFCoder.m */; }; + 88CAF624D333D3028E6B002A13FE4130 /* SDImageCacheConfig.m in Sources */ = {isa = PBXBuildFile; fileRef = F6C2D9118926E9DDF9259C614E34F096 /* SDImageCacheConfig.m */; }; + 88FB6F1FA3935F380184DBA6DB31C414 /* SDImageCacheDefine.h in Headers */ = {isa = PBXBuildFile; fileRef = 52864092240DC4531C349BDF313B651F /* SDImageCacheDefine.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 892836B00B1EC32998E806DDECB97FA0 /* OSSTask.h in Headers */ = {isa = PBXBuildFile; fileRef = 3272B2DBCD538F6D7CE6F08DD40047FF /* OSSTask.h */; settings = {ATTRIBUTES = (Public, ); }; }; 893B6DA5F9294AF26BE3E5F6DFBFB5C3 /* TUIReplyQuoteView_Minimalist.m in Sources */ = {isa = PBXBuildFile; fileRef = 18F28F3038AFFB65CF4B02270E8D7093 /* TUIReplyQuoteView_Minimalist.m */; }; - 8960A0FF6E0BE4892AB44E75BB5F3BCD /* NSButton+WebCache.h in Headers */ = {isa = PBXBuildFile; fileRef = 472933F0C6E71E5D30CC84620F95933B /* NSButton+WebCache.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 8983EB887C3F9E14A8DA036E56B90B0D /* LLBaseComponentViewController.h in Headers */ = {isa = PBXBuildFile; fileRef = 32F7EA5134AD844D1AB8F3302D8F414A /* LLBaseComponentViewController.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 8995E2EFCB282F0A3A773ABD5F807B24 /* BRDatePickerView.h in Headers */ = {isa = PBXBuildFile; fileRef = E253484CE7282A091C574EEC4B9AE6F6 /* BRDatePickerView.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 89CAFC43896C8BF254CDEAEF1298D287 /* RACDynamicSignal.m in Sources */ = {isa = PBXBuildFile; fileRef = 44933FE9E5817D4D9B3F4ED9EEED1BAA /* RACDynamicSignal.m */; }; - 89D6769F9AA17FE6F4742FB49196CE8B /* UIDatePicker+RACSignalSupport.h in Headers */ = {isa = PBXBuildFile; fileRef = 7436C54DA532D571912C09AA8611D6D1 /* UIDatePicker+RACSignalSupport.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 89F244569393B096F7EFDB7F5C942CDB /* LLEntryTitleView.m in Sources */ = {isa = PBXBuildFile; fileRef = D2CFE4A739CC1184021F95EB6AABFC46 /* LLEntryTitleView.m */; }; - 89F6D640D5EE16964A7E1E366FAF8CF3 /* NSDictionary+AvoidCrash.m in Sources */ = {isa = PBXBuildFile; fileRef = CCADFE0BDA29D3D300B124C79D0F24C8 /* NSDictionary+AvoidCrash.m */; }; - 8A0E94F87B74EB4E7C326ABB6FD7BF2C /* ReactiveObjC-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 692404F6D6615D05F46F6C26915DCE97 /* ReactiveObjC-dummy.m */; }; + 894144E5A329C4B8EFD207DE8C39C2D7 /* SDImageAssetManager.m in Sources */ = {isa = PBXBuildFile; fileRef = 53A91BA8A01AFB9B24A1CDF1BC6B8952 /* SDImageAssetManager.m */; }; + 8983EB887C3F9E14A8DA036E56B90B0D /* LLBaseComponentViewController.h in Headers */ = {isa = PBXBuildFile; fileRef = DC8A682A33E9730C4383C828C9AF348C /* LLBaseComponentViewController.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 8989CDE99F6192BC43ECB974BFEAD709 /* SDImageCache.m in Sources */ = {isa = PBXBuildFile; fileRef = 42DC58EB8CC42ADC838C26B96E59BB14 /* SDImageCache.m */; }; + 8995E2EFCB282F0A3A773ABD5F807B24 /* BRDatePickerView.h in Headers */ = {isa = PBXBuildFile; fileRef = 2008AD3DBA6144A4F2B2261111D8AEE0 /* BRDatePickerView.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 899D7129D6C4B97F1DAA000540A2AC3C /* PrivacyInfo.xcprivacy in Resources */ = {isa = PBXBuildFile; fileRef = 7D34802C42910BED926F2406DC0964E2 /* PrivacyInfo.xcprivacy */; }; + 89CAFC43896C8BF254CDEAEF1298D287 /* RACDynamicSignal.m in Sources */ = {isa = PBXBuildFile; fileRef = 8926303B207455F38713717E1F6C7EAB /* RACDynamicSignal.m */; }; + 89D6769F9AA17FE6F4742FB49196CE8B /* UIDatePicker+RACSignalSupport.h in Headers */ = {isa = PBXBuildFile; fileRef = 5A6FBB4C8D91B816E85D2AE45DAE84C6 /* UIDatePicker+RACSignalSupport.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 89F244569393B096F7EFDB7F5C942CDB /* LLEntryTitleView.m in Sources */ = {isa = PBXBuildFile; fileRef = CD47EF1DD714EF6D0D39B6860EAA1581 /* LLEntryTitleView.m */; }; + 89F6D640D5EE16964A7E1E366FAF8CF3 /* NSDictionary+AvoidCrash.m in Sources */ = {isa = PBXBuildFile; fileRef = DD60131313F27909A330EEEF4EC6BEE3 /* NSDictionary+AvoidCrash.m */; }; + 8A02EC3931014967AD028122101662D3 /* NSString+TUIUtil.m in Sources */ = {isa = PBXBuildFile; fileRef = 0EBECD2A46E28042357ED8782F70E08B /* NSString+TUIUtil.m */; }; + 8A0E94F87B74EB4E7C326ABB6FD7BF2C /* ReactiveObjC-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 5585D238EB7F232DBA375D4B9BE6CF44 /* ReactiveObjC-dummy.m */; }; 8A14A72C1BA87BB8E02DBB11D3D5FDD5 /* TUIGroupCreatedCell.h in Headers */ = {isa = PBXBuildFile; fileRef = B879E4375802FD736178B03F962A9610 /* TUIGroupCreatedCell.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 8A25C54A3252129BA3983BA82D9A1F3B /* NSDictionary+YYAdd.h in Headers */ = {isa = PBXBuildFile; fileRef = 1A46F62C62F5816CED7DED7AE930B1DA /* NSDictionary+YYAdd.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 8A1555E81D0831CF17469A2F06E76A3F /* color_cache_utils.h in Headers */ = {isa = PBXBuildFile; fileRef = 76242A9B4B975CF03084229735D63690 /* color_cache_utils.h */; settings = {ATTRIBUTES = (Project, ); }; }; + 8A25C54A3252129BA3983BA82D9A1F3B /* NSDictionary+YYAdd.h in Headers */ = {isa = PBXBuildFile; fileRef = 1F29DFB2EA1AABDE355EB7AE042635C7 /* NSDictionary+YYAdd.h */; settings = {ATTRIBUTES = (Public, ); }; }; 8A5FD9C7048B40086D80D12B2BB5A41B /* TUIVideoMessageCellData.m in Sources */ = {isa = PBXBuildFile; fileRef = A2132E283E7D89450410121B094665E9 /* TUIVideoMessageCellData.m */; }; - 8AA70B5B05E48CE1A821E898FAA47D19 /* OSSConstants.h in Headers */ = {isa = PBXBuildFile; fileRef = 386ABB68464A5A25701025617B1DBB29 /* OSSConstants.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 8AA70B5B05E48CE1A821E898FAA47D19 /* OSSConstants.h in Headers */ = {isa = PBXBuildFile; fileRef = 2AE4A74A978E3E77BF8E0C4AF2EB61AA /* OSSConstants.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 8AAA6CED801F9C2A309560BA692A6879 /* QCloudFileLogger.h in Headers */ = {isa = PBXBuildFile; fileRef = 2ACC6735D7D46C3BC2A4291B6636D2D4 /* QCloudFileLogger.h */; settings = {ATTRIBUTES = (Public, ); }; }; 8AD07D232B63EF3C7650DF9FD2D624E9 /* TUIMessageController_Minimalist.h in Headers */ = {isa = PBXBuildFile; fileRef = 4E72571279543227958D9176DC8B802D /* TUIMessageController_Minimalist.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 8B19B105A6611EC4A22F6CC7DFB47C3B /* NSDictionary+LL_Utils.m in Sources */ = {isa = PBXBuildFile; fileRef = 806CCE2940F0FE5D05D6B4AFD51D2A6D /* NSDictionary+LL_Utils.m */; }; - 8B28A31B6D6249395276C820B64925E1 /* lossless_enc_neon.c in Sources */ = {isa = PBXBuildFile; fileRef = 4B774B1E857B2D20B4E02843FD819DF6 /* lossless_enc_neon.c */; settings = {COMPILER_FLAGS = "-D_THREAD_SAFE -fno-objc-arc"; }; }; - 8B3CD70221DCB6E765DC5BFC499B0FB4 /* SDGraphicsImageRenderer.m in Sources */ = {isa = PBXBuildFile; fileRef = 056366CA0E1CF32042B3F73384891C20 /* SDGraphicsImageRenderer.m */; }; + 8B19B105A6611EC4A22F6CC7DFB47C3B /* NSDictionary+LL_Utils.m in Sources */ = {isa = PBXBuildFile; fileRef = 54A33472470BAC0F792616DD91D66756 /* NSDictionary+LL_Utils.m */; }; 8B47B7F220A2B9E121EFF5A28B477972 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = F91075A92425F75F02E0E1C8D455AF79 /* Foundation.framework */; }; - 8B49BD4C9E3C4A0AFD5F871220469A50 /* LLStorageModel.h in Headers */ = {isa = PBXBuildFile; fileRef = 1D934EAAAD9213F619EBB361ECB5D97B /* LLStorageModel.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 8B8E0858C48167346060A72979D08AC1 /* RACQueueScheduler.h in Headers */ = {isa = PBXBuildFile; fileRef = 343CD4E0DC126EC0B16184E8939997DC /* RACQueueScheduler.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 8B49BD4C9E3C4A0AFD5F871220469A50 /* LLStorageModel.h in Headers */ = {isa = PBXBuildFile; fileRef = 4E3655025FF158E184BED421A2EF13CA /* LLStorageModel.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 8B5438E5ACF00C67C96CE39C2BB46369 /* TUITool.h in Headers */ = {isa = PBXBuildFile; fileRef = 927DCA1FCB1533BC17E9492D4F79B13E /* TUITool.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 8B6EFE52C4B4B34080EE1633BEBC934D /* SDDisplayLink.h in Headers */ = {isa = PBXBuildFile; fileRef = A9E5769E8BE3315EFFB5CDF0CA40BFEF /* SDDisplayLink.h */; settings = {ATTRIBUTES = (Private, ); }; }; + 8B8BB366CCF5D7D783BD63CDEF2D556C /* quant_dec.c in Sources */ = {isa = PBXBuildFile; fileRef = 9EC714453B605C0110B12871F200D1F5 /* quant_dec.c */; settings = {COMPILER_FLAGS = "-D_THREAD_SAFE -fno-objc-arc"; }; }; + 8B8E0858C48167346060A72979D08AC1 /* RACQueueScheduler.h in Headers */ = {isa = PBXBuildFile; fileRef = 44DCFC170E392AF48237565BCC2199CA /* RACQueueScheduler.h */; settings = {ATTRIBUTES = (Public, ); }; }; 8B91BF0F4F8928E5E64AE14044010782 /* TUIBaseChatViewController.h in Headers */ = {isa = PBXBuildFile; fileRef = 3EB478F8C6F7755BB50F9863DB5B5231 /* TUIBaseChatViewController.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 8B990235A0006E1F9C1E6F68AD81F77C /* JXCategoryView-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = B24E6D65F9FD1715159F3CBABC7D755A /* JXCategoryView-dummy.m */; }; - 8B9D2A96A5C441F71C104DAF8D929111 /* Pods-QXLiveDev-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = 9729C86379BFD05AFA85BB733D4EDC3A /* Pods-QXLiveDev-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 8BA0096E3F59F1D52A08143D6FBD9379 /* enc_neon.c in Sources */ = {isa = PBXBuildFile; fileRef = D472CD1919EA716FF1780DD9D7D159D8 /* enc_neon.c */; settings = {COMPILER_FLAGS = "-D_THREAD_SAFE -fno-objc-arc"; }; }; - 8BC4CE9F36D19A09404A29C66145AF28 /* NSObject+RACLifting.m in Sources */ = {isa = PBXBuildFile; fileRef = 440649D44500BEFE35F8447CA3A6BB3A /* NSObject+RACLifting.m */; }; - 8BC4DDC03BA8BCBEA89338ADC846D93D /* Parser.swift in Sources */ = {isa = PBXBuildFile; fileRef = 84784F1779ED49885BEDC482DE6E959E /* Parser.swift */; }; + 8B990235A0006E1F9C1E6F68AD81F77C /* JXCategoryView-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 52840598BF92A895362F367863E2E641 /* JXCategoryView-dummy.m */; }; + 8BC4CE9F36D19A09404A29C66145AF28 /* NSObject+RACLifting.m in Sources */ = {isa = PBXBuildFile; fileRef = 397DCE3E6D13B2709771BD62DFFF1D8C /* NSObject+RACLifting.m */; }; + 8BC4DDC03BA8BCBEA89338ADC846D93D /* Parser.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7D20A37D62721558A4DAAA2C5262A0C0 /* Parser.swift */; }; 8BCB4388C6426F593D3395EB2C6D1708 /* TUIVoiceReplyQuoteView.m in Sources */ = {isa = PBXBuildFile; fileRef = D89C050BCB9A79B41D43D884F67D389B /* TUIVoiceReplyQuoteView.m */; }; 8BD95BE403E72262F4E4BC8B80256B11 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = F91075A92425F75F02E0E1C8D455AF79 /* Foundation.framework */; }; - 8BDDFED41302DD7ADF441B5E8D81E73F /* YBIBPhotoAlbumManager.m in Sources */ = {isa = PBXBuildFile; fileRef = C99F54A93DE0F31868318100E3D1BFDE /* YBIBPhotoAlbumManager.m */; }; - 8BF90C8E63B886657A08BD62F78CC57C /* FMResultSet.h in Headers */ = {isa = PBXBuildFile; fileRef = 19F5B12627C5AA63AD9135DE3E6260CB /* FMResultSet.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 8BDDFED41302DD7ADF441B5E8D81E73F /* YBIBPhotoAlbumManager.m in Sources */ = {isa = PBXBuildFile; fileRef = 3EBCAA712AC9DD6F814BA94244BEA3AC /* YBIBPhotoAlbumManager.m */; }; + 8BF90C8E63B886657A08BD62F78CC57C /* FMResultSet.h in Headers */ = {isa = PBXBuildFile; fileRef = C33C1A0241E7CE367A7B8244F8872066 /* FMResultSet.h */; settings = {ATTRIBUTES = (Public, ); }; }; 8C0609E11E58F98EA599443228DD158C /* CoreLocation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = A7F700FBADE3CAFB8E2E41A00A6E6AD8 /* CoreLocation.framework */; }; - 8C23C9271C42FB5BFC9D762F6E4167A5 /* GPBUtilities.m in Sources */ = {isa = PBXBuildFile; fileRef = B813480C42AEE8F8D9DE51F840E096F5 /* GPBUtilities.m */; settings = {COMPILER_FLAGS = "-fno-objc-arc"; }; }; - 8C2CD923B27029D3C602AF7638F02DF6 /* IQKeyboardManagerConstants.h in Headers */ = {isa = PBXBuildFile; fileRef = 1ADB21FD1AACA89F1FB5A6D577CEE0A8 /* IQKeyboardManagerConstants.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 8C6C7E25C5A24C936F81823978190E96 /* ViewController+MASAdditions.h in Headers */ = {isa = PBXBuildFile; fileRef = 09DF495FADE8A9E05FB49E7E777A83F9 /* ViewController+MASAdditions.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 8C23C9271C42FB5BFC9D762F6E4167A5 /* GPBUtilities.m in Sources */ = {isa = PBXBuildFile; fileRef = AE45107946C343DBF04C1B7B5B8CFCE5 /* GPBUtilities.m */; settings = {COMPILER_FLAGS = "-fno-objc-arc"; }; }; + 8C2CD923B27029D3C602AF7638F02DF6 /* IQKeyboardManagerConstants.h in Headers */ = {isa = PBXBuildFile; fileRef = C66C0380E1B9950A1C7DFA681485377D /* IQKeyboardManagerConstants.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 8C6C7E25C5A24C936F81823978190E96 /* ViewController+MASAdditions.h in Headers */ = {isa = PBXBuildFile; fileRef = 7EF55A83A84BDDBDEE9CEFAF550BEBA9 /* ViewController+MASAdditions.h */; settings = {ATTRIBUTES = (Public, ); }; }; 8C831A1EE7905076ACBAF9F3CBB03A1B /* UIAlertController+TUICustomStyle.h in Headers */ = {isa = PBXBuildFile; fileRef = 5295372A963A773F8835D919A373C9CF /* UIAlertController+TUICustomStyle.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 8C8BDCA377F36280B1B2CE49E6EEE848 /* quant.h in Headers */ = {isa = PBXBuildFile; fileRef = 52D4A7773367BECC9A76F6CE32854190 /* quant.h */; settings = {ATTRIBUTES = (Project, ); }; }; 8CA40E28F1D0524C62C280CC8C25AC08 /* TUIBaseMessageController+ProtectedAPI.h in Headers */ = {isa = PBXBuildFile; fileRef = F56972CA515823DC35C83AFBC7CC559D /* TUIBaseMessageController+ProtectedAPI.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 8CAC36087F1E6B0D8EF57B62C3C81E80 /* NSImage+Compatibility.m in Sources */ = {isa = PBXBuildFile; fileRef = 15BBA74568D5A2FED38E97F745B8E748 /* NSImage+Compatibility.m */; }; - 8CB719D27EE49B32DC206F1DC132D610 /* GPBCodedInputStream.m in Sources */ = {isa = PBXBuildFile; fileRef = F53E475EA8522DD60B3B44292EE1FBE1 /* GPBCodedInputStream.m */; settings = {COMPILER_FLAGS = "-fno-objc-arc"; }; }; - 8CC5D9C3E1430F52DAEB7EC0EE59F103 /* OSSCancellationToken.h in Headers */ = {isa = PBXBuildFile; fileRef = 618C665AC79DCC1127C20C92479C7C21 /* OSSCancellationToken.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 8CCF16A2A9DDE787996C0A3D5F48D39E /* libwebp-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = C8B1DF9319EA4EE6D2B94DC72B2EC8C6 /* libwebp-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 8CE57264642104F73DC8D8F3208018D7 /* OSSGetBucketInfoRequest.m in Sources */ = {isa = PBXBuildFile; fileRef = 4618D65F597A2C7CE70BE332EF5AAA1A /* OSSGetBucketInfoRequest.m */; }; - 8D07F8CA69CF8A20CBC86823852AE944 /* RACUnit.m in Sources */ = {isa = PBXBuildFile; fileRef = C0EC29D281EB3968B8B0340A6BABFC82 /* RACUnit.m */; }; - 8D082ED05C36EDF278A1065FBE114F38 /* RACEXTRuntimeExtensions.m in Sources */ = {isa = PBXBuildFile; fileRef = 0EEC88AEAD6941ABCF5D74F17B2C29AB /* RACEXTRuntimeExtensions.m */; }; - 8D250E76971D8B8091883ACE9CD13DC0 /* YYTextKeyboardManager.m in Sources */ = {isa = PBXBuildFile; fileRef = 5781BD27F95D5ABF53B28CBB3FCA27BE /* YYTextKeyboardManager.m */; }; - 8D269AD4641E15D71AEC8881B3C0476B /* OSSPutSymlinkResult.h in Headers */ = {isa = PBXBuildFile; fileRef = 3BE2F4BD4F74874DEED17704E081BB72 /* OSSPutSymlinkResult.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 8D4044A3D8A143824890609ABE469A3F /* QGMP4Box.m in Sources */ = {isa = PBXBuildFile; fileRef = 1B8DDE6261E463904F0E0DAD4AF0CF2C /* QGMP4Box.m */; }; - 8D4685BEACCAF4340D8A62154E3764DF /* Type.pbobjc.h in Headers */ = {isa = PBXBuildFile; fileRef = CD946DD7720C99A2934DDA973009201E /* Type.pbobjc.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 8CB719D27EE49B32DC206F1DC132D610 /* GPBCodedInputStream.m in Sources */ = {isa = PBXBuildFile; fileRef = 8BA0D408D35A7F95A467007CD3693595 /* GPBCodedInputStream.m */; settings = {COMPILER_FLAGS = "-fno-objc-arc"; }; }; + 8CC5D9C3E1430F52DAEB7EC0EE59F103 /* OSSCancellationToken.h in Headers */ = {isa = PBXBuildFile; fileRef = 37E9AD7DCB022C875EC7E34C9066A336 /* OSSCancellationToken.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 8CCBBA20C7280AF9D8486F2C51A7F830 /* QCloudThreadSafeMutableDictionary.m in Sources */ = {isa = PBXBuildFile; fileRef = 1BEB685C697FE5423B0FBEF0E1C5592E /* QCloudThreadSafeMutableDictionary.m */; }; + 8CD440CEEA1E7DFD846146DB717517C0 /* SDGraphicsImageRenderer.h in Headers */ = {isa = PBXBuildFile; fileRef = A34EEE4E7CD8FE8A71C0428F1EC3EFB8 /* SDGraphicsImageRenderer.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 8CE57264642104F73DC8D8F3208018D7 /* OSSGetBucketInfoRequest.m in Sources */ = {isa = PBXBuildFile; fileRef = D5E90B4CD67A67C3D852421AC1659F23 /* OSSGetBucketInfoRequest.m */; }; + 8D07F8CA69CF8A20CBC86823852AE944 /* RACUnit.m in Sources */ = {isa = PBXBuildFile; fileRef = 622DDCF1096DB4BB33190FCDA5EDBCCA /* RACUnit.m */; }; + 8D082ED05C36EDF278A1065FBE114F38 /* RACEXTRuntimeExtensions.m in Sources */ = {isa = PBXBuildFile; fileRef = 7030EF4B87EF53E82902BFEC8CFEDCC2 /* RACEXTRuntimeExtensions.m */; }; + 8D250E76971D8B8091883ACE9CD13DC0 /* YYTextKeyboardManager.m in Sources */ = {isa = PBXBuildFile; fileRef = F13F34A3737416B4D351BFA90163B681 /* YYTextKeyboardManager.m */; }; + 8D269AD4641E15D71AEC8881B3C0476B /* OSSPutSymlinkResult.h in Headers */ = {isa = PBXBuildFile; fileRef = D2BD87A3DBDBAC8E670C094233EB262E /* OSSPutSymlinkResult.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 8D3C1CB7CE9F29D3013C1B856F35383D /* QCloudEncryt.h in Headers */ = {isa = PBXBuildFile; fileRef = 2CDA66414E081105E530FA690DE42E78 /* QCloudEncryt.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 8D4044A3D8A143824890609ABE469A3F /* QGMP4Box.m in Sources */ = {isa = PBXBuildFile; fileRef = 20343CC3F6D152CD8DD53ACAC5CDADC5 /* QGMP4Box.m */; }; + 8D4685BEACCAF4340D8A62154E3764DF /* Type.pbobjc.h in Headers */ = {isa = PBXBuildFile; fileRef = 749BEEC667E8C1178984A3CF8A3945FD /* Type.pbobjc.h */; settings = {ATTRIBUTES = (Public, ); }; }; 8D47F18E560098426EEFFC4B2D3BDC61 /* TUIFoldListViewController_Minimalist.m in Sources */ = {isa = PBXBuildFile; fileRef = EAC939BE9580C808FD4B6EE368DEC4FF /* TUIFoldListViewController_Minimalist.m */; }; - 8D698B34AFA0C674C5D6125B1ECDE27F /* muxinternal.c in Sources */ = {isa = PBXBuildFile; fileRef = F2212D5CB880E70DE3D1030A08CD30A9 /* muxinternal.c */; settings = {COMPILER_FLAGS = "-D_THREAD_SAFE -fno-objc-arc"; }; }; - 8D69DBED1B7F280821BF867E4A712057 /* LLEntryTitleView.h in Headers */ = {isa = PBXBuildFile; fileRef = 31855EAA2CF70B656440AFB8D4A289A4 /* LLEntryTitleView.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 8DA1FC7709EE16A1676D38961D961EAA /* common_sse2.h in Headers */ = {isa = PBXBuildFile; fileRef = 234F27068DB78A5D9A3FEDF406C515DE /* common_sse2.h */; settings = {ATTRIBUTES = (Project, ); }; }; - 8DDF260CCEFB164BCB786069BCC8265D /* SDAsyncBlockOperation.m in Sources */ = {isa = PBXBuildFile; fileRef = 46412452CE6A9C4797694CAA1C11E49E /* SDAsyncBlockOperation.m */; }; - 8E0804AC3279DD432CF9F0ABD2CBEA78 /* GPBExtensionInternals.h in Headers */ = {isa = PBXBuildFile; fileRef = 69A27433FDA4E6C77747CB83F5A40E84 /* GPBExtensionInternals.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 8E1B47386DA669564234C823FBCA6BB6 /* LLDebugTool.bundle in Resources */ = {isa = PBXBuildFile; fileRef = 45DD5331A0A48C24E35AC07CF0AF4A7D /* LLDebugTool.bundle */; }; + 8D5ADF0C4F778250335502B86D50AEC3 /* QCloudFileOffsetBody.m in Sources */ = {isa = PBXBuildFile; fileRef = 48690F4654CC6797136C23CDB420F510 /* QCloudFileOffsetBody.m */; }; + 8D69DBED1B7F280821BF867E4A712057 /* LLEntryTitleView.h in Headers */ = {isa = PBXBuildFile; fileRef = 1FA9E357EBE09B8FB04E0D52A6DA6214 /* LLEntryTitleView.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 8E0804AC3279DD432CF9F0ABD2CBEA78 /* GPBExtensionInternals.h in Headers */ = {isa = PBXBuildFile; fileRef = 4B61D66FAAF993EA868CC86802228D2D /* GPBExtensionInternals.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 8E1B47386DA669564234C823FBCA6BB6 /* LLDebugTool.bundle in Resources */ = {isa = PBXBuildFile; fileRef = 80DA8DF4560D22DCB297C1D76E14A1B1 /* LLDebugTool.bundle */; }; 8E231A0358910262188B950EE037D1D0 /* TUIBubbleMessageCell_Minimalist.m in Sources */ = {isa = PBXBuildFile; fileRef = F21C50FB7018219CC9E26F2802E81D76 /* TUIBubbleMessageCell_Minimalist.m */; }; - 8E596CBDA745237A010AE6C43429630D /* NSObject+RACKVOWrapper.m in Sources */ = {isa = PBXBuildFile; fileRef = 58C26C82C995202B9CB0E047FEE692F2 /* NSObject+RACKVOWrapper.m */; }; - 8E6D7DB2397E40357B0A5F6C7AAEC10B /* rescaler_sse2.c in Sources */ = {isa = PBXBuildFile; fileRef = 9EF299DDB28BD8FB60548BC6802A3377 /* rescaler_sse2.c */; settings = {COMPILER_FLAGS = "-D_THREAD_SAFE -fno-objc-arc"; }; }; + 8E37D173AEB8FF8ECCA4028F0F8C0788 /* QCloudAbstractRequest+Quality.m in Sources */ = {isa = PBXBuildFile; fileRef = 735156C22241BE6BB31BA3B8BF821FAD /* QCloudAbstractRequest+Quality.m */; }; + 8E3BCA648DE1E1E1AC6A48248C8715A2 /* SDWebImageIndicator.h in Headers */ = {isa = PBXBuildFile; fileRef = 771CD80A64A178845FC2C4BB567A4538 /* SDWebImageIndicator.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 8E596CBDA745237A010AE6C43429630D /* NSObject+RACKVOWrapper.m in Sources */ = {isa = PBXBuildFile; fileRef = 064CEDA45AB54736381BEF0722CEED17 /* NSObject+RACKVOWrapper.m */; }; + 8E6911F02C8CBEBDBF812F79B9C8676C /* QCloudURLHelper.h in Headers */ = {isa = PBXBuildFile; fileRef = DC2201A3DE36EA664A4A23138A42175E /* QCloudURLHelper.h */; settings = {ATTRIBUTES = (Public, ); }; }; 8EAFD8B482A0880BAD6BC24A7AA9C3CF /* TUIChatShortcutMenuView.m in Sources */ = {isa = PBXBuildFile; fileRef = FD255A844B00B2BE53EC83556C86AEFF /* TUIChatShortcutMenuView.m */; }; - 8EB960488E4E463FC2797EE477659C34 /* vp8l_enc.c in Sources */ = {isa = PBXBuildFile; fileRef = 8726A2F833F7BABF40CFA3ABDF825B47 /* vp8l_enc.c */; settings = {COMPILER_FLAGS = "-D_THREAD_SAFE -fno-objc-arc"; }; }; - 8ED34722B5C54230E9FED56FE14F6A84 /* NSParagraphStyle+YYText.h in Headers */ = {isa = PBXBuildFile; fileRef = 62D34159820E86AA003CEC486E175B6A /* NSParagraphStyle+YYText.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 8ED21F71B07CBB9B9FA5ECF2131A7860 /* QCloudError.h in Headers */ = {isa = PBXBuildFile; fileRef = 21CD9146FF1328867F9C45C25E0E53CF /* QCloudError.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 8ED34722B5C54230E9FED56FE14F6A84 /* NSParagraphStyle+YYText.h in Headers */ = {isa = PBXBuildFile; fileRef = 19AB223C1F942890DF0BE9212ABCBAE0 /* NSParagraphStyle+YYText.h */; settings = {ATTRIBUTES = (Public, ); }; }; 8ED8766E15435D819882253EB5CEFF8A /* QuartzCore.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 495512CED6B55B9463695CBE9898BE51 /* QuartzCore.framework */; }; - 8EF861A9244BF4976FA0B712FF30DF96 /* GPBUnknownFields+Additions.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1A88AD91A6FB86BFBBF07A36A5C85A1B /* GPBUnknownFields+Additions.swift */; }; + 8EE5E1E0F23A80F01AD7813021D26775 /* yuv_neon.c in Sources */ = {isa = PBXBuildFile; fileRef = B5F5042F3896571E05E61122C0162866 /* yuv_neon.c */; settings = {COMPILER_FLAGS = "-D_THREAD_SAFE -fno-objc-arc"; }; }; + 8EF798F7CFE4ED6959A53BCA940EB3A9 /* QCloudCore-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = F73BA879E079E1A5AE0928F81B96C87F /* QCloudCore-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 8EF861A9244BF4976FA0B712FF30DF96 /* GPBUnknownFields+Additions.swift in Sources */ = {isa = PBXBuildFile; fileRef = EB51F8B2EA22886BB29FA17F417426A8 /* GPBUnknownFields+Additions.swift */; }; + 8F0A90DEBA76FB530A13FADAC068D1FD /* picture_csp_enc.c in Sources */ = {isa = PBXBuildFile; fileRef = DB56C90354230FC7108B503D36EA6EAC /* picture_csp_enc.c */; settings = {COMPILER_FLAGS = "-D_THREAD_SAFE -fno-objc-arc"; }; }; 8F19D51C9993C8BC7423D6DCC63FA4F0 /* TUIGroupPendencyDataProvider.m in Sources */ = {isa = PBXBuildFile; fileRef = 3BE1410E472321DAD3D7A9845B07EEB7 /* TUIGroupPendencyDataProvider.m */; }; - 8F300908B4A31C64D65358DFCC3196A9 /* TZImageManager.m in Sources */ = {isa = PBXBuildFile; fileRef = C694159BB916444B4C886BB73F6FB730 /* TZImageManager.m */; }; + 8F300908B4A31C64D65358DFCC3196A9 /* TZImageManager.m in Sources */ = {isa = PBXBuildFile; fileRef = 717B81C5679992AB0C1198CDCD49EA60 /* TZImageManager.m */; }; + 8F328AF7CF51A48B354D03439BD9738F /* UIImage+Metadata.m in Sources */ = {isa = PBXBuildFile; fileRef = 9BA1F95BC2AE0EAB023475411F2E5D65 /* UIImage+Metadata.m */; }; 8F38DBD092CE864B0A785AD3E671343A /* NSString+TUIEmoji.m in Sources */ = {isa = PBXBuildFile; fileRef = 723612A1E297CB61A656728A3CA5BC28 /* NSString+TUIEmoji.m */; }; - 8F39CB0CF7A8950856252AE7B07F2764 /* LLFunctionViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = D3D2C75FD094644A4AE4943D04145088 /* LLFunctionViewController.m */; }; - 8F43694404EAFF6D73EE58928154C0F2 /* mz_strm_buf.h in Headers */ = {isa = PBXBuildFile; fileRef = 0D1B9EFB46C06E718A9D066B8AB19E39 /* mz_strm_buf.h */; settings = {ATTRIBUTES = (Project, ); }; }; - 8F43E9CC36EE5B0ECF39A5806DBA185F /* SVGAAudioLayer.h in Headers */ = {isa = PBXBuildFile; fileRef = 1B669E57FA769FDF71F6D8A261B286AF /* SVGAAudioLayer.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 8F76F03C24AA73E767A04F148E56F172 /* UIBezierPath+YYAdd.m in Sources */ = {isa = PBXBuildFile; fileRef = 8A7A6DBC0CC7A832BF95221C74CD021E /* UIBezierPath+YYAdd.m */; }; + 8F39CB0CF7A8950856252AE7B07F2764 /* LLFunctionViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 784353DA37A39F5B40EE64CC6348C2D3 /* LLFunctionViewController.m */; }; + 8F43694404EAFF6D73EE58928154C0F2 /* mz_strm_buf.h in Headers */ = {isa = PBXBuildFile; fileRef = 4806A37ADC8E1AFD2D6602A0D52A54F9 /* mz_strm_buf.h */; settings = {ATTRIBUTES = (Project, ); }; }; + 8F43E9CC36EE5B0ECF39A5806DBA185F /* SVGAAudioLayer.h in Headers */ = {isa = PBXBuildFile; fileRef = 9022B1F8CA7AA17EFA70ED28FB02E862 /* SVGAAudioLayer.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 8F5923A37DFFC0F720ED0BC21A6A0FD1 /* TUICoreTheme.bundle in Resources */ = {isa = PBXBuildFile; fileRef = A59F6537B1B9F23ED5E809B231C52402 /* TUICoreTheme.bundle */; }; + 8F66E3AC1D758E5BD60ADA50774A82DB /* huffman_encode_utils.h in Headers */ = {isa = PBXBuildFile; fileRef = DE90685317F566A867EC2A4D58B7A5F5 /* huffman_encode_utils.h */; settings = {ATTRIBUTES = (Project, ); }; }; + 8F76F03C24AA73E767A04F148E56F172 /* UIBezierPath+YYAdd.m in Sources */ = {isa = PBXBuildFile; fileRef = 4885DA2AB0FC4B985EDC95880F1CE0BE /* UIBezierPath+YYAdd.m */; }; 8F785A734D1DB3F05D1931BAD1581C92 /* TUIConversationObjectFactory.m in Sources */ = {isa = PBXBuildFile; fileRef = 872FEC5AA064DBA3B149B71919F8EBE8 /* TUIConversationObjectFactory.m */; }; - 8F86D4F9208954CD2B674B4490B91227 /* _YYWebImageSetter.h in Headers */ = {isa = PBXBuildFile; fileRef = DF8F1B5D47F63BF3020FEC73C56ED31A /* _YYWebImageSetter.h */; settings = {ATTRIBUTES = (Private, ); }; }; - 8FBEE344426CFFB04B968AB974CDE6DB /* Zip.swift in Sources */ = {isa = PBXBuildFile; fileRef = D52DFCFF44DE16962C6ED50F3CD3C869 /* Zip.swift */; }; + 8F86D4F9208954CD2B674B4490B91227 /* _YYWebImageSetter.h in Headers */ = {isa = PBXBuildFile; fileRef = 1E8DEB350CFCD7C373D1B90E2A2DFB02 /* _YYWebImageSetter.h */; settings = {ATTRIBUTES = (Private, ); }; }; 8FC376E23EBDDA9614DD1FCDCBAECDDD /* TUIBaseMessageControllerDelegate_Minimalist.h in Headers */ = {isa = PBXBuildFile; fileRef = E459531FF12481C7C7546D8F9EB01C58 /* TUIBaseMessageControllerDelegate_Minimalist.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 8FD31D60FDFBDF124AE956E9F343D767 /* YYAnimatedImageView.h in Headers */ = {isa = PBXBuildFile; fileRef = 093F6DA4C4B280185F6791821488D841 /* YYAnimatedImageView.h */; settings = {ATTRIBUTES = (Public, ); }; }; 8FDB8B23851CC281D5576CA69CD92A53 /* TUIFileMessageCell.h in Headers */ = {isa = PBXBuildFile; fileRef = FBBB336A7B3D96CF46F0A555530D50C4 /* TUIFileMessageCell.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 8FE166FDFD21D842A5FC5F638565C996 /* NSMutableArray+AvoidCrash.h in Headers */ = {isa = PBXBuildFile; fileRef = D7324F57315749B9FB6DF16F6BB3210B /* NSMutableArray+AvoidCrash.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 8FF4E9A492CA258F45C0BC51F6F69650 /* JXCategoryTitleImageCell.m in Sources */ = {isa = PBXBuildFile; fileRef = 13A5F69D2737AD399E5116EF238F4BE5 /* JXCategoryTitleImageCell.m */; }; - 8FF7B6477BFA6E6ABA168E1417291D5F /* MASCompositeConstraint.m in Sources */ = {isa = PBXBuildFile; fileRef = 9808AD2B9EE2031A2356B48987E3E1E4 /* MASCompositeConstraint.m */; }; - 9002B36EFB52C0E1D4AE262767AFD8C3 /* LLEntryView.h in Headers */ = {isa = PBXBuildFile; fileRef = 1425FFD7F8DDFD8D5C5F628E0CB20932 /* LLEntryView.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 90048ABBFACBE5044CC44972579C1CC0 /* SVGAPlayer.m in Sources */ = {isa = PBXBuildFile; fileRef = 6813AE87A1BEEFE062BEFF23AF8351CD /* SVGAPlayer.m */; }; - 901356E3307CBDB599BB4E68B6A928E4 /* LLRulerWindow.h in Headers */ = {isa = PBXBuildFile; fileRef = 7904B187B62CC80CCC17E0510619D9E5 /* LLRulerWindow.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 9027CF29E44F82D4CE33CB554C662F1B /* NSObject+RACDeallocating.m in Sources */ = {isa = PBXBuildFile; fileRef = D8BBB31F9A3A8FC62374228BA72BB013 /* NSObject+RACDeallocating.m */; }; - 9028020929B4D10BA807517BBBD3EF93 /* NSString+AvoidCrash.h in Headers */ = {isa = PBXBuildFile; fileRef = F77A98E3CEFCF74FDF4F7671F7B5C01F /* NSString+AvoidCrash.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 90316FD30E81602F58CD3BB547CA2EF3 /* QGVAPlayer-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = 13D5AD7FF09DDA4A40B74644F8F8C2D3 /* QGVAPlayer-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 903C0676C8543A3F851A6C7CB065921D /* YBIBVideoActionBar.m in Sources */ = {isa = PBXBuildFile; fileRef = 02ED9A8E87499543036ED657A3756A4A /* YBIBVideoActionBar.m */; }; + 8FE166FDFD21D842A5FC5F638565C996 /* NSMutableArray+AvoidCrash.h in Headers */ = {isa = PBXBuildFile; fileRef = 0C2A4BB1F9DEDDC74FE6DA31B85D038F /* NSMutableArray+AvoidCrash.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 8FF4E9A492CA258F45C0BC51F6F69650 /* JXCategoryTitleImageCell.m in Sources */ = {isa = PBXBuildFile; fileRef = 44C8CD309D205740AE6E91FC35912EA6 /* JXCategoryTitleImageCell.m */; }; + 8FF7B6477BFA6E6ABA168E1417291D5F /* MASCompositeConstraint.m in Sources */ = {isa = PBXBuildFile; fileRef = 012867F77EA4C06969F8E589E4431624 /* MASCompositeConstraint.m */; }; + 9002B36EFB52C0E1D4AE262767AFD8C3 /* LLEntryView.h in Headers */ = {isa = PBXBuildFile; fileRef = 9ED05F48EEE0C26B237BA5E6E85377DE /* LLEntryView.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 90048ABBFACBE5044CC44972579C1CC0 /* SVGAPlayer.m in Sources */ = {isa = PBXBuildFile; fileRef = FA3790ED1C353D98F38FE8635D90B690 /* SVGAPlayer.m */; }; + 901356E3307CBDB599BB4E68B6A928E4 /* LLRulerWindow.h in Headers */ = {isa = PBXBuildFile; fileRef = 036A8493F267A265546920A8E22CBEB9 /* LLRulerWindow.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 901401CBD6B9BD144E814FA22F3D3411 /* SDFileAttributeHelper.h in Headers */ = {isa = PBXBuildFile; fileRef = 96CFE93F542A68F13873B7A2311998B7 /* SDFileAttributeHelper.h */; settings = {ATTRIBUTES = (Private, ); }; }; + 90144D396A77EE2730B9637CE86B6C9D /* rescaler_neon.c in Sources */ = {isa = PBXBuildFile; fileRef = 51CA26F641287F8855EFC6724DF07367 /* rescaler_neon.c */; settings = {COMPILER_FLAGS = "-D_THREAD_SAFE -fno-objc-arc"; }; }; + 90196D0B9A0DD557A3162F94C2608204 /* NSDictionary+TUISafe.h in Headers */ = {isa = PBXBuildFile; fileRef = 70B022C3F6170B768EE43DBF5F1231B2 /* NSDictionary+TUISafe.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 9027CF29E44F82D4CE33CB554C662F1B /* NSObject+RACDeallocating.m in Sources */ = {isa = PBXBuildFile; fileRef = 1561E7BDCD20D0328E461774C81100A8 /* NSObject+RACDeallocating.m */; }; + 9028020929B4D10BA807517BBBD3EF93 /* NSString+AvoidCrash.h in Headers */ = {isa = PBXBuildFile; fileRef = ED253747B042E602D6C91CBDB8A3385B /* NSString+AvoidCrash.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 90316FD30E81602F58CD3BB547CA2EF3 /* QGVAPlayer-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = 9F87D94B1EDF77359432448687D113BC /* QGVAPlayer-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 903C0676C8543A3F851A6C7CB065921D /* YBIBVideoActionBar.m in Sources */ = {isa = PBXBuildFile; fileRef = BE34E09E310FAD39B5FA5816A583C4B8 /* YBIBVideoActionBar.m */; }; + 9043FDAE4DF53A0EA892A40410FA9461 /* quant_levels_utils.h in Headers */ = {isa = PBXBuildFile; fileRef = B39097140D840BDDCA338BF5FCEA54DD /* quant_levels_utils.h */; settings = {ATTRIBUTES = (Project, ); }; }; 90471D8F316164B9D1FD0B3BB168EACC /* TUICaptureTimer.m in Sources */ = {isa = PBXBuildFile; fileRef = AE6529FFB0FDD75FD4EC2102415CBACA /* TUICaptureTimer.m */; }; - 905BA262B468FFAB5972F97B7EF69DD8 /* LLComponentWindow.m in Sources */ = {isa = PBXBuildFile; fileRef = 1BB42E948C2F7E7473873E19D52BFA99 /* LLComponentWindow.m */; }; - 90633609A9FA63286F42A4F83E821F0F /* TZImagePickerController.bundle in Resources */ = {isa = PBXBuildFile; fileRef = 166C63775ADC195B9E4AF0274FE7786D /* TZImagePickerController.bundle */; }; - 90737337CB39EF9E1C91787E8B70B498 /* alpha_enc.c in Sources */ = {isa = PBXBuildFile; fileRef = 6198CD0C7F87CCCA1BECDBC050110782 /* alpha_enc.c */; settings = {COMPILER_FLAGS = "-D_THREAD_SAFE -fno-objc-arc"; }; }; - 907520C897E664127ACFB48F092F9F57 /* FieldMask.pbobjc.h in Headers */ = {isa = PBXBuildFile; fileRef = 2CE1DD6113CA0FA4B6F46B949428AD90 /* FieldMask.pbobjc.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 90808BDA069F3F2B36DBD9DD3E4E9866 /* LLWindowManager+Network.m in Sources */ = {isa = PBXBuildFile; fileRef = F56A893F541C7B361D833E39B93D5939 /* LLWindowManager+Network.m */; }; - 90AB40458E725DD0A1E8CA7FBC085CAF /* LLFilterLabelModel.h in Headers */ = {isa = PBXBuildFile; fileRef = EF9533E814FCEB3B5AA9A96BEFB6E65C /* LLFilterLabelModel.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 90B73A51C14C5AC83914DBAC0974D95F /* NSBezierPath+SDRoundedCorners.m in Sources */ = {isa = PBXBuildFile; fileRef = 268AAD8AB808C0CFBFA84207F5DA46E3 /* NSBezierPath+SDRoundedCorners.m */; }; - 90ED1FF0DC2F96996C4B0EE6CD7588B6 /* SDImageGIFCoder.h in Headers */ = {isa = PBXBuildFile; fileRef = 206CEEB7B03796F0D8BB1C23DE44714E /* SDImageGIFCoder.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 905BA262B468FFAB5972F97B7EF69DD8 /* LLComponentWindow.m in Sources */ = {isa = PBXBuildFile; fileRef = 682522F66F395094FCF1508C53C40937 /* LLComponentWindow.m */; }; + 90633609A9FA63286F42A4F83E821F0F /* TZImagePickerController.bundle in Resources */ = {isa = PBXBuildFile; fileRef = A09CEF93EFE09A15795678E4628EC96C /* TZImagePickerController.bundle */; }; + 907520C897E664127ACFB48F092F9F57 /* FieldMask.pbobjc.h in Headers */ = {isa = PBXBuildFile; fileRef = 77A1E4B9629768B50FAC5938B8C2E2F6 /* FieldMask.pbobjc.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 90808BDA069F3F2B36DBD9DD3E4E9866 /* LLWindowManager+Network.m in Sources */ = {isa = PBXBuildFile; fileRef = EDC3AB439C39A211DAE08F7749D129AC /* LLWindowManager+Network.m */; }; + 90AB40458E725DD0A1E8CA7FBC085CAF /* LLFilterLabelModel.h in Headers */ = {isa = PBXBuildFile; fileRef = F5C402199A7C19DB70EF6165CC811725 /* LLFilterLabelModel.h */; settings = {ATTRIBUTES = (Public, ); }; }; 9111DCE8B478DB32C900D6A596FF52AC /* Accelerate.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 2F4078DA790DE5F4A9E0EBCD660768F7 /* Accelerate.framework */; }; - 913AD2CA2F03CE4F360AB192307AA9BB /* NSURLConnection+RACSupport.m in Sources */ = {isa = PBXBuildFile; fileRef = 62E4490E6CBEB7E0B7D7ABACA43DC8A1 /* NSURLConnection+RACSupport.m */; }; - 91528DD512EE750F441482468677216E /* UIView+WebCache.h in Headers */ = {isa = PBXBuildFile; fileRef = D7ED8152304F98A36150F6215E3B4E01 /* UIView+WebCache.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 918693042E70C68780908DD1BF122833 /* YBIBInteractionProfile.m in Sources */ = {isa = PBXBuildFile; fileRef = 5166CB954C5718CAAFF59E4B954E576F /* YBIBInteractionProfile.m */; }; - 91898C9672493E98117C81B4DE27F2AC /* FMDatabaseAdditions.h in Headers */ = {isa = PBXBuildFile; fileRef = 5D4590DE7BFAB8B5585664C4271F8723 /* FMDatabaseAdditions.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 918AD406999AAE718841B034702BF5CB /* TAAnimatedDotView.h in Headers */ = {isa = PBXBuildFile; fileRef = 37221025A73D9BE36B92DB09BC14BBA1 /* TAAnimatedDotView.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 913AD2CA2F03CE4F360AB192307AA9BB /* NSURLConnection+RACSupport.m in Sources */ = {isa = PBXBuildFile; fileRef = F151C770BFB3BBC0A554E6D2997E8742 /* NSURLConnection+RACSupport.m */; }; + 9167A6D3D0979512821CBED5B7E80CDE /* UIView+TUIToast.m in Sources */ = {isa = PBXBuildFile; fileRef = B7AC52C17666EC6525CFE7E07F4A589A /* UIView+TUIToast.m */; }; + 918693042E70C68780908DD1BF122833 /* YBIBInteractionProfile.m in Sources */ = {isa = PBXBuildFile; fileRef = F7B9D5023F66AD40897A3FACAF7EE9C2 /* YBIBInteractionProfile.m */; }; + 91898C9672493E98117C81B4DE27F2AC /* FMDatabaseAdditions.h in Headers */ = {isa = PBXBuildFile; fileRef = A27A3CAB9C1D0CA09627DD6030B9C533 /* FMDatabaseAdditions.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 918AD406999AAE718841B034702BF5CB /* TAAnimatedDotView.h in Headers */ = {isa = PBXBuildFile; fileRef = 93E89987E1B5492FE72D12FFBF263D70 /* TAAnimatedDotView.h */; settings = {ATTRIBUTES = (Public, ); }; }; 91AFF41167C616A131F2E24563B8DDD8 /* JXPagingView-JXPagerView in Resources */ = {isa = PBXBuildFile; fileRef = E03F152E95B6924D2486511337D24503 /* JXPagingView-JXPagerView */; }; - 91BEBD471C408E6C72763AFB6926242B /* JXCategoryTitleImageView.m in Sources */ = {isa = PBXBuildFile; fileRef = DD67E642C4D1A4567F01E99E077A562A /* JXCategoryTitleImageView.m */; }; - 91C5B60FC8B631895A6165FE473BAFAF /* SDImageLoadersManager.h in Headers */ = {isa = PBXBuildFile; fileRef = DFD30CFA347E29CC35C719E4CF4AAECD /* SDImageLoadersManager.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 91D1262F4BE96BF8B3571073B1975882 /* GCDTimer.h in Headers */ = {isa = PBXBuildFile; fileRef = 4CD3877D9642085EB7E4E9FA7963DF63 /* GCDTimer.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 91BC6FBBE87F9E60873ED0DE8D3EB628 /* QCloudHTTPRequest.h in Headers */ = {isa = PBXBuildFile; fileRef = D3570A7EC59D075D85838481B4558A30 /* QCloudHTTPRequest.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 91BEBD471C408E6C72763AFB6926242B /* JXCategoryTitleImageView.m in Sources */ = {isa = PBXBuildFile; fileRef = 7184B751586747EA07190E5E65F23584 /* JXCategoryTitleImageView.m */; }; + 91CA8BFAA373E443FDE4906DD9877D84 /* QCloudHttpMetrics.m in Sources */ = {isa = PBXBuildFile; fileRef = EDD1CB209F65EDFF312B9A803F98DE95 /* QCloudHttpMetrics.m */; }; + 91CD10FBD253F19CA2D63B8D465F0767 /* QCloudHTTPTaskDelayManager.m in Sources */ = {isa = PBXBuildFile; fileRef = DDB1E4597FA4DF1E8EA730DE3BAAE2C9 /* QCloudHTTPTaskDelayManager.m */; }; + 91D1262F4BE96BF8B3571073B1975882 /* GCDTimer.h in Headers */ = {isa = PBXBuildFile; fileRef = EFAC5EB3D12F2A178A8DE0F6B3B4A459 /* GCDTimer.h */; settings = {ATTRIBUTES = (Public, ); }; }; 91F70AF7E114F479081AC32DE57DACF4 /* TUIFileReplyQuoteView_Minimalist.h in Headers */ = {isa = PBXBuildFile; fileRef = 6CF136691A99D2EAD21A4554F46E537F /* TUIFileReplyQuoteView_Minimalist.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 92217EA3F86B694BD70BE96E8AB70A66 /* SDCallbackQueue.h in Headers */ = {isa = PBXBuildFile; fileRef = 16443CE5B196B2E7CB45F9871958260E /* SDCallbackQueue.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 922506C067B3BECC7F79E5EDC299BE7F /* histogram_enc.c in Sources */ = {isa = PBXBuildFile; fileRef = 638177B7F85CDF5D67AAD9972E38C978 /* histogram_enc.c */; settings = {COMPILER_FLAGS = "-D_THREAD_SAFE -fno-objc-arc"; }; }; - 922A0859E9496841E557B54836F6D341 /* UIImageView+YYWebImage.m in Sources */ = {isa = PBXBuildFile; fileRef = 041B83AC677DA064EE9BD3D9557991DF /* UIImageView+YYWebImage.m */; }; - 924FF67A1D8C3FF9FB2D57B9B530CD4C /* LLFunctionWindow.h in Headers */ = {isa = PBXBuildFile; fileRef = 268B852E71965B968C3A86296B48A595 /* LLFunctionWindow.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 926DA524D5C2BB96BD976ECDA7578FBD /* Downloader.swift in Sources */ = {isa = PBXBuildFile; fileRef = 16F9963AA25300C4236F0E214BAC6582 /* Downloader.swift */; }; - 929E752618885322F0A96DD37017B721 /* TUIThemeManager.h in Headers */ = {isa = PBXBuildFile; fileRef = ACECA3CC22B9472A71AE45035282AD24 /* TUIThemeManager.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 92CEDD9FC030A7AB726D6B309F88E510 /* backward_references_cost_enc.c in Sources */ = {isa = PBXBuildFile; fileRef = 3968D5977847797BCA5DA4441827276F /* backward_references_cost_enc.c */; settings = {COMPILER_FLAGS = "-D_THREAD_SAFE -fno-objc-arc"; }; }; - 92D66840A945FAFC01AD1FB4C63C2DDB /* ScoringView+Events.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7427E2A32C82308FCD03E34DA132A19F /* ScoringView+Events.swift */; }; - 9320D67F1B4DB7F053B7DA8CF99C0508 /* YYTextTransaction.h in Headers */ = {isa = PBXBuildFile; fileRef = F6B7F4714982FE5F0A151F5539A5BA8C /* YYTextTransaction.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 9339A018E5BB984901F5588A5EA8A49C /* LyricsFileDownloader+Info.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5127BAB81383DA0D0B1DE1E9CFD54040 /* LyricsFileDownloader+Info.swift */; }; + 922A0859E9496841E557B54836F6D341 /* UIImageView+YYWebImage.m in Sources */ = {isa = PBXBuildFile; fileRef = A3420642FD3958E6BD891717F991A593 /* UIImageView+YYWebImage.m */; }; + 9237513CA09A59EE8F568570DBAE5848 /* QCloudUploadPartCopyRequest.m in Sources */ = {isa = PBXBuildFile; fileRef = 548D34F6170A1B7F8F1EB4BBE0EF9C56 /* QCloudUploadPartCopyRequest.m */; }; + 924FF67A1D8C3FF9FB2D57B9B530CD4C /* LLFunctionWindow.h in Headers */ = {isa = PBXBuildFile; fileRef = 718A96947020C5DE11285C5421799D7E /* LLFunctionWindow.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 926DA524D5C2BB96BD976ECDA7578FBD /* Downloader.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4D98461267F745B1EBE8EE50AAEAF9CB /* Downloader.swift */; }; + 9292ECA0992210219776182988C0BBFA /* QCloudLogger.h in Headers */ = {isa = PBXBuildFile; fileRef = D54E60B963045432F57E02171AE8C7E7 /* QCloudLogger.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 92A1F6C31A0DB18F5BD21A0C245C6813 /* SDCallbackQueue.m in Sources */ = {isa = PBXBuildFile; fileRef = 179266BC2C3B9C1BC1AB76D7677AF624 /* SDCallbackQueue.m */; }; + 92D66840A945FAFC01AD1FB4C63C2DDB /* ScoringView+Events.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1BB17EB26C18B840FDFABFCD2C4A1964 /* ScoringView+Events.swift */; }; + 9320D67F1B4DB7F053B7DA8CF99C0508 /* YYTextTransaction.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B241A6BBA3261241FF305E7C1B4D351 /* YYTextTransaction.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 9339A018E5BB984901F5588A5EA8A49C /* LyricsFileDownloader+Info.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5E1A7B52CBEB40776FBBD7E00B21125A /* LyricsFileDownloader+Info.swift */; }; 9376F221EE3993A371DA76571018C2C7 /* TUIReplyMessageCell_Minimalist.h in Headers */ = {isa = PBXBuildFile; fileRef = 6C1CFA3549E9534C462CB8A97942A3C0 /* TUIReplyMessageCell_Minimalist.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 938303D0D9C246ADF2793B7048768D56 /* OSSDeleteMultipleObjectsRequest.m in Sources */ = {isa = PBXBuildFile; fileRef = E88654AC28F45E0216CEFAB4500604DE /* OSSDeleteMultipleObjectsRequest.m */; }; + 938303D0D9C246ADF2793B7048768D56 /* OSSDeleteMultipleObjectsRequest.m in Sources */ = {isa = PBXBuildFile; fileRef = C9B3407E9964E300B473126AAAE3F5BD /* OSSDeleteMultipleObjectsRequest.m */; }; 9386B4CEFE4E711EFEA76804B51FD09B /* TUIConversationListDataProvider.h in Headers */ = {isa = PBXBuildFile; fileRef = 5338EF5B447D01D0ECAEDE9DC1891224 /* TUIConversationListDataProvider.h */; settings = {ATTRIBUTES = (Public, ); }; }; 93936384C8E0D62A06CC1114881DFE50 /* TIMCommonLocalizable.bundle in Resources */ = {isa = PBXBuildFile; fileRef = D21C381482DDAD3E0EA0740220813E03 /* TIMCommonLocalizable.bundle */; }; - 93C029E94F812132D896B986CEC41CAE /* LLScreenshotToolbar.m in Sources */ = {isa = PBXBuildFile; fileRef = D87808ED640D8290201CE22AF72C7F47 /* LLScreenshotToolbar.m */; }; + 93C029E94F812132D896B986CEC41CAE /* LLScreenshotToolbar.m in Sources */ = {isa = PBXBuildFile; fileRef = 03F305614444015BF088A453D75BD964 /* LLScreenshotToolbar.m */; }; 93C38673A78C1F758183901D0779C7B4 /* TUIFileMessageCell.m in Sources */ = {isa = PBXBuildFile; fileRef = BE315555765AD252485AF6B13582294D /* TUIFileMessageCell.m */; }; - 93CE6988D9EB84490E2ECC58100AAD72 /* UITableView+YYAdd.h in Headers */ = {isa = PBXBuildFile; fileRef = 48B2AFC333E6122EEEF8FBCFD6E4DCC5 /* UITableView+YYAdd.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 93DD3438FA31B90F60BCC482878F1968 /* YBIBVideoView.h in Headers */ = {isa = PBXBuildFile; fileRef = 00715EDF92C9D06491FC9799F92407E0 /* YBIBVideoView.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 93E2C24501FAE3C3B886B9879786EF22 /* JXCategoryTitleVerticalZoomCell.m in Sources */ = {isa = PBXBuildFile; fileRef = 9CEB99840ACC3ABDB8078496E670623E /* JXCategoryTitleVerticalZoomCell.m */; }; - 9400852C9A13DE4665FC43C319A24974 /* LLEntryViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 62744747DD9D3BCB210D69ECCF3CF405 /* LLEntryViewController.m */; }; - 940CD731A431894B0EE4E3283E6F352F /* JXCategoryBaseCellModel.m in Sources */ = {isa = PBXBuildFile; fileRef = AEACA15144FB9B5E808C6C900F0794F0 /* JXCategoryBaseCellModel.m */; }; - 9413E036088702C5C8888249F8FA550F /* LLLog.h in Headers */ = {isa = PBXBuildFile; fileRef = 04D571BABDBB15F97622B0D805B60213 /* LLLog.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 9439A1947DB16F74CD265AC1BD8CB25A /* SDImageAWebPCoder.m in Sources */ = {isa = PBXBuildFile; fileRef = 7ED6DE7DE306C3C1789B1BBCF29BA18A /* SDImageAWebPCoder.m */; }; - 9449676C495A42E11212DA1FB962D035 /* LLWindowManager+Location.m in Sources */ = {isa = PBXBuildFile; fileRef = 4EEF4BBA370E0CCC68B0BA1C9FF85A69 /* LLWindowManager+Location.m */; }; - 944A2A24288229147FE096D893A64788 /* OSSIPv6PrefixResolver.m in Sources */ = {isa = PBXBuildFile; fileRef = 97C2918FF8CBF93DE48FCD699E651A56 /* OSSIPv6PrefixResolver.m */; }; - 9470CC4CA104628FE6616BDC7AC04062 /* RACEagerSequence.h in Headers */ = {isa = PBXBuildFile; fileRef = B723F5123B1E1AF062A2FC17FBA8F916 /* RACEagerSequence.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 94825DA7AAEA8838DD00AE6C2FA11124 /* UIDatePicker+RACSignalSupport.m in Sources */ = {isa = PBXBuildFile; fileRef = 3CC9BDDA97B381BF43C970FF96C770E8 /* UIDatePicker+RACSignalSupport.m */; }; - 94A826BE9C24076FDA9F877AFE719599 /* SDWebImageManager.h in Headers */ = {isa = PBXBuildFile; fileRef = 03499B1247AA8DD708C0537896D52224 /* SDWebImageManager.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 94C003B414C2BE38827E80A422040805 /* LLLocationViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 4E3B1DB010CAF8D3F5FFFB84D59D0D76 /* LLLocationViewController.m */; }; - 94C499B5770C41F7ABDD45B0B0F45197 /* YYTextDebugOption.h in Headers */ = {isa = PBXBuildFile; fileRef = 295E7137A986BF6F0A5A70F2D8506361 /* YYTextDebugOption.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 94CE2F8D9A996E797BBF4D37580CDA63 /* YBImageBrowser.h in Headers */ = {isa = PBXBuildFile; fileRef = 5B745E760BF4AF934CB759C87F10EA22 /* YBImageBrowser.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 94DDB91F929A377A8C662564CEA81BD9 /* MQTTCFSocketTransport.h in Headers */ = {isa = PBXBuildFile; fileRef = DEE52AA4F9F7FC2228073F0EE4099772 /* MQTTCFSocketTransport.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 93CE6988D9EB84490E2ECC58100AAD72 /* UITableView+YYAdd.h in Headers */ = {isa = PBXBuildFile; fileRef = 81C1129DB71786693EDAB154C89022AF /* UITableView+YYAdd.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 93DD3438FA31B90F60BCC482878F1968 /* YBIBVideoView.h in Headers */ = {isa = PBXBuildFile; fileRef = C3596BCDA45C25B2117C700F96091D75 /* YBIBVideoView.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 93E2C24501FAE3C3B886B9879786EF22 /* JXCategoryTitleVerticalZoomCell.m in Sources */ = {isa = PBXBuildFile; fileRef = F25A23DB19B57F2B620D4342E3BC4F17 /* JXCategoryTitleVerticalZoomCell.m */; }; + 9400852C9A13DE4665FC43C319A24974 /* LLEntryViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 222CF36F5EE052DB6BF78898FE8EC77D /* LLEntryViewController.m */; }; + 940CD731A431894B0EE4E3283E6F352F /* JXCategoryBaseCellModel.m in Sources */ = {isa = PBXBuildFile; fileRef = 912D47DD71DFADB72E7CEDD5287EEB2D /* JXCategoryBaseCellModel.m */; }; + 9413E036088702C5C8888249F8FA550F /* LLLog.h in Headers */ = {isa = PBXBuildFile; fileRef = D638E405D8BD255AF8F38DCA255CDF36 /* LLLog.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 942D6E9F1D1DFB7F64D83EBFC3BA912B /* QCloudSupervisoryRecord.m in Sources */ = {isa = PBXBuildFile; fileRef = 9F8058E03C03D62659518316D52A1D0A /* QCloudSupervisoryRecord.m */; }; + 9449676C495A42E11212DA1FB962D035 /* LLWindowManager+Location.m in Sources */ = {isa = PBXBuildFile; fileRef = 6CF500A440CB4A87DFD5C4F2EE40F2A6 /* LLWindowManager+Location.m */; }; + 944A2A24288229147FE096D893A64788 /* OSSIPv6PrefixResolver.m in Sources */ = {isa = PBXBuildFile; fileRef = 14041B691D7491247310B82D64739506 /* OSSIPv6PrefixResolver.m */; }; + 9470CC4CA104628FE6616BDC7AC04062 /* RACEagerSequence.h in Headers */ = {isa = PBXBuildFile; fileRef = DD7A09C95FA4450752A0DF79E0D085EE /* RACEagerSequence.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 94825DA7AAEA8838DD00AE6C2FA11124 /* UIDatePicker+RACSignalSupport.m in Sources */ = {isa = PBXBuildFile; fileRef = 42821BF616C6828D2C8981A83A92325B /* UIDatePicker+RACSignalSupport.m */; }; + 94A51470D1D3647BA2C6C8B60AEC34ED /* QCloudFakeRequestOperation.h in Headers */ = {isa = PBXBuildFile; fileRef = 7E6D8C17D7EFFE59B3E79D8BBD2DD07C /* QCloudFakeRequestOperation.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 94C003B414C2BE38827E80A422040805 /* LLLocationViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 44D7C63266B958AF24384DFB3BF655CF /* LLLocationViewController.m */; }; + 94C499B5770C41F7ABDD45B0B0F45197 /* YYTextDebugOption.h in Headers */ = {isa = PBXBuildFile; fileRef = 41ABE376D03A65F97D42923B7751D41B /* YYTextDebugOption.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 94CE2F8D9A996E797BBF4D37580CDA63 /* YBImageBrowser.h in Headers */ = {isa = PBXBuildFile; fileRef = 236FC77C07EFAB2D511A65D97C27EBD2 /* YBImageBrowser.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 94DDB91F929A377A8C662564CEA81BD9 /* MQTTCFSocketTransport.h in Headers */ = {isa = PBXBuildFile; fileRef = 721BED0B5DAF5FDD64D7C82782189E0D /* MQTTCFSocketTransport.h */; settings = {ATTRIBUTES = (Public, ); }; }; 94DE8D06EAB973BA7800E675E9D0FE27 /* TIMCommon_Minimalist.bundle in Resources */ = {isa = PBXBuildFile; fileRef = 4DC0797733A618D987907713A3FA27F3 /* TIMCommon_Minimalist.bundle */; }; - 94E66770300FF8E75E1C6ECEF6A72EFE /* NSKeyedUnarchiver+YYAdd.m in Sources */ = {isa = PBXBuildFile; fileRef = 760BFCCB1C365206F35835D4028BAC3C /* NSKeyedUnarchiver+YYAdd.m */; }; - 94FC3E106F506C1078FD089CFD0BA6C1 /* OSSFileLogger.h in Headers */ = {isa = PBXBuildFile; fileRef = 149AF4B27775F9A3212B5199958B7441 /* OSSFileLogger.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 94E66770300FF8E75E1C6ECEF6A72EFE /* NSKeyedUnarchiver+YYAdd.m in Sources */ = {isa = PBXBuildFile; fileRef = ED3F60124D1F64BE9A869D5B5C500CD6 /* NSKeyedUnarchiver+YYAdd.m */; }; + 94FC3E106F506C1078FD089CFD0BA6C1 /* OSSFileLogger.h in Headers */ = {isa = PBXBuildFile; fileRef = 5CB89412A91A86D42BDCB3EFCBE8B644 /* OSSFileLogger.h */; settings = {ATTRIBUTES = (Public, ); }; }; 952EB497D247942EBA417B6ABC9AB3AD /* TUIRelationUserModel.m in Sources */ = {isa = PBXBuildFile; fileRef = 5ED079007E65C7E4F9BB0FC4CB4B82DC /* TUIRelationUserModel.m */; }; - 954610B91144AD98FDF33331F742D701 /* LLMoveWindow.h in Headers */ = {isa = PBXBuildFile; fileRef = A794908A7EF7D7D028D22800C0AE4E01 /* LLMoveWindow.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 954CACFF707517EB76A36013CBE9E3DE /* QGAnimatedImageDecodeThreadPool.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B186DEE675FD72C25A2CEA6B32DDF29 /* QGAnimatedImageDecodeThreadPool.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 955B87902E039163281C4F47C95DB851 /* MJRefreshBackNormalFooter.m in Sources */ = {isa = PBXBuildFile; fileRef = F351B6ED185FE752A207BDD64F9ECE9C /* MJRefreshBackNormalFooter.m */; }; - 956326326ACB3B4A18CA746132A47A45 /* LLWindowManager.h in Headers */ = {isa = PBXBuildFile; fileRef = CE6B5A4678C0703F54C076CE855DED1E /* LLWindowManager.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 954610B91144AD98FDF33331F742D701 /* LLMoveWindow.h in Headers */ = {isa = PBXBuildFile; fileRef = B3AD45250B6947E772C50E6896E5745D /* LLMoveWindow.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 954CACFF707517EB76A36013CBE9E3DE /* QGAnimatedImageDecodeThreadPool.h in Headers */ = {isa = PBXBuildFile; fileRef = F8A259C7517650851FFC0D29B1C032E2 /* QGAnimatedImageDecodeThreadPool.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 955B87902E039163281C4F47C95DB851 /* MJRefreshBackNormalFooter.m in Sources */ = {isa = PBXBuildFile; fileRef = AA6C170C80274AA4B47C157B76FEDCDF /* MJRefreshBackNormalFooter.m */; }; + 956326326ACB3B4A18CA746132A47A45 /* LLWindowManager.h in Headers */ = {isa = PBXBuildFile; fileRef = 74F23177A9F373D97D957CB188DAB1DE /* LLWindowManager.h */; settings = {ATTRIBUTES = (Public, ); }; }; 957209D5FE4C6DEEFE9A3944C9454809 /* CoreFoundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = BDCD3DDCE37ACFD1BDD612F5969870AA /* CoreFoundation.framework */; }; - 95A34F207A09D1B03BCBD06CB6711ACC /* OSSAllRequestNeededMessage.h in Headers */ = {isa = PBXBuildFile; fileRef = 53829206577B27B45762DB1DFF8081C1 /* OSSAllRequestNeededMessage.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 958E079650D9C858359AD2D789F0BABE /* QCloudSignature.h in Headers */ = {isa = PBXBuildFile; fileRef = 3FB7CC38CC4EC713F738E35D48A74E91 /* QCloudSignature.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 95A34F207A09D1B03BCBD06CB6711ACC /* OSSAllRequestNeededMessage.h in Headers */ = {isa = PBXBuildFile; fileRef = 3AEBC735855A390946B5EF65B3823B1E /* OSSAllRequestNeededMessage.h */; settings = {ATTRIBUTES = (Public, ); }; }; 95B600F949A0E184927CE527650CA04F /* TUIReplyQuoteView.m in Sources */ = {isa = PBXBuildFile; fileRef = 28F3298C534C0E2FE7758FEAD5E431F9 /* TUIReplyQuoteView.m */; }; 95B73724D9E2D04051B157B4ACF6682F /* TUIImageReplyQuoteViewData.m in Sources */ = {isa = PBXBuildFile; fileRef = 22EAE43A3280942E07FB2459F848722A /* TUIImageReplyQuoteViewData.m */; }; 95B85D6048A0D15D5C7BE96B35A82C40 /* CoreTelephony.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 7D01B7A03D3A1CE42F6F8CA6C8FE217A /* CoreTelephony.framework */; }; - 95BFF67A4AB5BF68F28B09126F06C5DE /* PitchParser.swift in Sources */ = {isa = PBXBuildFile; fileRef = F280EF245536DF1D03450F4AD1895B9C /* PitchParser.swift */; }; + 95BFF67A4AB5BF68F28B09126F06C5DE /* PitchParser.swift in Sources */ = {isa = PBXBuildFile; fileRef = F2DDDFC9373673CC8F43300A99610530 /* PitchParser.swift */; }; 95C07B620B190A6533DAF608F5648A3B /* TUIJoinGroupMessageCellData.m in Sources */ = {isa = PBXBuildFile; fileRef = CEFB90355676732A704783490C6AF718 /* TUIJoinGroupMessageCellData.m */; }; - 95C73DF77BBC82BA09363C45E7B6021E /* YBIBSheetView.m in Sources */ = {isa = PBXBuildFile; fileRef = 7E276F24B861711DE1495475D746E403 /* YBIBSheetView.m */; }; - 95DF4BD28B81E167A3AC2B7629A561AB /* RACQueueScheduler+Subclass.h in Headers */ = {isa = PBXBuildFile; fileRef = F25CAC6CD00ADFF0B9EF930622712103 /* RACQueueScheduler+Subclass.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 95EB80D49171B815ECAD7D08FDE21004 /* LLWindowManager+Log.m in Sources */ = {isa = PBXBuildFile; fileRef = 9DD333580E90F323B0E9F07F0A06422E /* LLWindowManager+Log.m */; }; - 95FA274D963B59C3E7313117FC1AC334 /* LLHierarchyDetailViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = DE7B4AAD419FD1D481F4D736EAED89DD /* LLHierarchyDetailViewController.m */; }; + 95C73DF77BBC82BA09363C45E7B6021E /* YBIBSheetView.m in Sources */ = {isa = PBXBuildFile; fileRef = 7550D182E44956C61ABC5FDD0196940D /* YBIBSheetView.m */; }; + 95DF4BD28B81E167A3AC2B7629A561AB /* RACQueueScheduler+Subclass.h in Headers */ = {isa = PBXBuildFile; fileRef = 92B775B45DE7E0A6F25CAA435FED1917 /* RACQueueScheduler+Subclass.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 95EB80D49171B815ECAD7D08FDE21004 /* LLWindowManager+Log.m in Sources */ = {isa = PBXBuildFile; fileRef = 8E4CE67C9A59C081F15F846C5A734745 /* LLWindowManager+Log.m */; }; + 95FA274D963B59C3E7313117FC1AC334 /* LLHierarchyDetailViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 7D7456310EE07F17AF25F30FBA7E159C /* LLHierarchyDetailViewController.m */; }; 960C79312FBA660C3ADC7D905EEF951F /* TUIVideoReplyQuoteView.m in Sources */ = {isa = PBXBuildFile; fileRef = 72D628EC1573A46B32560C9A16ECF520 /* TUIVideoReplyQuoteView.m */; }; - 961128FB3001DD0D6ED80F157388F9EB /* dec_mips_dsp_r2.c in Sources */ = {isa = PBXBuildFile; fileRef = 515FE8950262AB8FAD2DC3C9C5F11862 /* dec_mips_dsp_r2.c */; settings = {COMPILER_FLAGS = "-D_THREAD_SAFE -fno-objc-arc"; }; }; - 9612707F9DE302BF40FCBE970A9F859D /* YBIBContainerView.h in Headers */ = {isa = PBXBuildFile; fileRef = 73F948957DADA2D8DE0DE6E66F0DD91A /* YBIBContainerView.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 9612707F9DE302BF40FCBE970A9F859D /* YBIBContainerView.h in Headers */ = {isa = PBXBuildFile; fileRef = 45587A81AB0615660244646D82449E82 /* YBIBContainerView.h */; settings = {ATTRIBUTES = (Public, ); }; }; 961492F53481EE40D2DFF6974BD4E665 /* TUIMessageItem.h in Headers */ = {isa = PBXBuildFile; fileRef = 24C970BE8C0F0B966E1D47524E71B5C5 /* TUIMessageItem.h */; settings = {ATTRIBUTES = (Public, ); }; }; 9674D4E2B24CA6EC519AF2963B2C7FAE /* Accelerate.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 2F4078DA790DE5F4A9E0EBCD660768F7 /* Accelerate.framework */; }; 967AC0C2D7618DFA18C1853BD3D945A8 /* TUIMergeMessageListController.h in Headers */ = {isa = PBXBuildFile; fileRef = 4762AFD2FAD5267D8DC626739141CA7F /* TUIMergeMessageListController.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 96C1D55B3436C158B4CBB4E3D0AE53EE /* UIColor+JXAdd.m in Sources */ = {isa = PBXBuildFile; fileRef = 18B7096A5E2FB6204CEB59A13E752361 /* UIColor+JXAdd.m */; }; - 96D33654AB6A4B1C9ADFF929FBA5C159 /* NSObject+LL_Utils.h in Headers */ = {isa = PBXBuildFile; fileRef = 93B07EE1D0E0B6718EEFFE39BB11D26D /* NSObject+LL_Utils.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 96DEE30A1954FC89FC528814C1B095F7 /* UIScreen+YYAdd.m in Sources */ = {isa = PBXBuildFile; fileRef = FB23B7FEBA3450A73D95BA1465A057B1 /* UIScreen+YYAdd.m */; }; + 969F392CDF869FA2F7BE6D03F6DFEEA6 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = F91075A92425F75F02E0E1C8D455AF79 /* Foundation.framework */; }; + 96C1D55B3436C158B4CBB4E3D0AE53EE /* UIColor+JXAdd.m in Sources */ = {isa = PBXBuildFile; fileRef = 14BF43BE178C4AA10A056797985328BE /* UIColor+JXAdd.m */; }; + 96D33654AB6A4B1C9ADFF929FBA5C159 /* NSObject+LL_Utils.h in Headers */ = {isa = PBXBuildFile; fileRef = D26A701D17EEABC1EF6B5053A3207934 /* NSObject+LL_Utils.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 96DEE30A1954FC89FC528814C1B095F7 /* UIScreen+YYAdd.m in Sources */ = {isa = PBXBuildFile; fileRef = A0EDE7E40198B2C8562587370C2E6A0F /* UIScreen+YYAdd.m */; }; + 96FCC37C56CC1961A5B35F223676FFB5 /* SDInternalMacros.h in Headers */ = {isa = PBXBuildFile; fileRef = 3669B9D9B4922F9AEC4046F6C6A18C8F /* SDInternalMacros.h */; settings = {ATTRIBUTES = (Private, ); }; }; 970974372522B22B634C0A8DB53AD353 /* TUIMessageCellConfig.h in Headers */ = {isa = PBXBuildFile; fileRef = 6AED3FE2223A068871799C5E979F49FE /* TUIMessageCellConfig.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 970DAFFDE4CD7F110A33347F18895FE3 /* SVGABitmapLayer.m in Sources */ = {isa = PBXBuildFile; fileRef = 9936934BB53FD2E5DE6122B0747DDD32 /* SVGABitmapLayer.m */; }; + 970DAFFDE4CD7F110A33347F18895FE3 /* SVGABitmapLayer.m in Sources */ = {isa = PBXBuildFile; fileRef = E0EEE8F740E7D2005A96B4E8DD699E4D /* SVGABitmapLayer.m */; }; 973F6A72EA33F910C8D15CB1C133F923 /* TUIConversationTableView.h in Headers */ = {isa = PBXBuildFile; fileRef = 5FF1B49917497CA7784806318AA23850 /* TUIConversationTableView.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 9744E7851D6BCCDD20453B7D9FC86A02 /* RACCommand.h in Headers */ = {isa = PBXBuildFile; fileRef = A2A57CECB4A3CAE50819DD12A98FCC5A /* RACCommand.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 9763AD649AF2676F642BC9A6707E4B86 /* Empty.pbobjc.h in Headers */ = {isa = PBXBuildFile; fileRef = 500ACEEF41D18EA3ABCE142BECD85504 /* Empty.pbobjc.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 9763CEAE384680E87EE11A8DBD160233 /* YYSpriteSheetImage.m in Sources */ = {isa = PBXBuildFile; fileRef = 32CC90CA01A0CCF24A12979B2695F9A3 /* YYSpriteSheetImage.m */; }; - 97694B5A3E6FC632B648D23D314AF28C /* NSString+RACSupport.h in Headers */ = {isa = PBXBuildFile; fileRef = 83B44DD1C48B79BC362AEA55A429DEAD /* NSString+RACSupport.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 9744E7851D6BCCDD20453B7D9FC86A02 /* RACCommand.h in Headers */ = {isa = PBXBuildFile; fileRef = AA59DD14C40BD66A74D38651FCEFEA11 /* RACCommand.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 9763AD649AF2676F642BC9A6707E4B86 /* Empty.pbobjc.h in Headers */ = {isa = PBXBuildFile; fileRef = F64616BA34683CC79280A13D2EE0FBA6 /* Empty.pbobjc.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 97694B5A3E6FC632B648D23D314AF28C /* NSString+RACSupport.h in Headers */ = {isa = PBXBuildFile; fileRef = 4A35217855830B5FCBD9A22EF5A16B80 /* NSString+RACSupport.h */; settings = {ATTRIBUTES = (Public, ); }; }; 978F01C30F52319F741AFA677AEEBBB2 /* TIMCommonModel.h in Headers */ = {isa = PBXBuildFile; fileRef = FAECA124A85697CFB653B9D56FC4BF04 /* TIMCommonModel.h */; settings = {ATTRIBUTES = (Public, ); }; }; 9796ECD0B3D635C51750FCB5A067815C /* TUIConfig_Classic.h in Headers */ = {isa = PBXBuildFile; fileRef = 368B91EBB98C264B3B1AF05E3E46A89B /* TUIConfig_Classic.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 97A4DB544AC61B3EAA955A15E1AEE55C /* FileCache.swift in Sources */ = {isa = PBXBuildFile; fileRef = AB36CE6695767CDFB7C1C2C0AF42AAFB /* FileCache.swift */; }; - 97B095F77C34C7B89D581061311C7CE8 /* TZPhotoPickerController.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B621079F3499A3CC8F694ACB5CD1472 /* TZPhotoPickerController.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 97C5A66B195BD0F9E7468F6C561CB4C7 /* NSObject+YYModel.h in Headers */ = {isa = PBXBuildFile; fileRef = 5EE798C142A2020443A407DB553EC25C /* NSObject+YYModel.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 97DE7672B0943F648B8EAF7414286699 /* FMResultSet.m in Sources */ = {isa = PBXBuildFile; fileRef = 0E14717C79BA97D405005454EC460097 /* FMResultSet.m */; }; - 97ED4FF4690EDEC6FD316DA53A1BAACB /* OSSCancellationToken.m in Sources */ = {isa = PBXBuildFile; fileRef = D94CBA9F4453A9710AC2AB2F7ABF9E5E /* OSSCancellationToken.m */; }; - 98049E03516C7C6C3A276B734C5A19A6 /* PrivacyInfo.xcprivacy in Resources */ = {isa = PBXBuildFile; fileRef = 6F9F72D68CA995FF6902BADCC34B6E3C /* PrivacyInfo.xcprivacy */; }; - 982283A5AC4FEE0303E363644213EE9F /* UIImageView+WebCache.m in Sources */ = {isa = PBXBuildFile; fileRef = 1D9024CE53F8BB44B99BED9ADAADBEC5 /* UIImageView+WebCache.m */; }; - 982CC07AB9A797EFD02AA01DA4ED71F3 /* SVGA.m in Sources */ = {isa = PBXBuildFile; fileRef = 48A3E5F0507E66EC1D7CB589FF174650 /* SVGA.m */; }; - 9838965B6E76EAC0A8EC90802D1A064B /* RACIndexSetSequence.m in Sources */ = {isa = PBXBuildFile; fileRef = 7543008B3F4C02A48A84E1C1588DD1D1 /* RACIndexSetSequence.m */; }; - 9845B3261AE41190829BFB3D9557DBE5 /* quant_levels_dec_utils.c in Sources */ = {isa = PBXBuildFile; fileRef = 3DE4DC886B92E31B8DCEBB8D6969A644 /* quant_levels_dec_utils.c */; settings = {COMPILER_FLAGS = "-D_THREAD_SAFE -fno-objc-arc"; }; }; - 98522F42D9B3466B2999DD6C9B6E9E87 /* UIButton+WebCache.m in Sources */ = {isa = PBXBuildFile; fileRef = F2F46C5C8F92C07FBF6A90CC3C4E9A65 /* UIButton+WebCache.m */; }; - 98616885A5EB2E0F3F31E7A6693331B7 /* KaraokeView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 176EC1FA23F354ACC3E12A660507847F /* KaraokeView.swift */; }; - 98988998FE3C405674F8B420AD13701E /* filters_utils.c in Sources */ = {isa = PBXBuildFile; fileRef = 4F57764188C45DFBCDFE5F9F903400DF /* filters_utils.c */; settings = {COMPILER_FLAGS = "-D_THREAD_SAFE -fno-objc-arc"; }; }; + 97A4DB544AC61B3EAA955A15E1AEE55C /* FileCache.swift in Sources */ = {isa = PBXBuildFile; fileRef = B7CAED8CFBD58A948FEFDC98D05B3A1A /* FileCache.swift */; }; + 97B095F77C34C7B89D581061311C7CE8 /* TZPhotoPickerController.h in Headers */ = {isa = PBXBuildFile; fileRef = 3E87DB6ACFF482D7B2365EFA82074E9C /* TZPhotoPickerController.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 97C5A66B195BD0F9E7468F6C561CB4C7 /* NSObject+YYModel.h in Headers */ = {isa = PBXBuildFile; fileRef = CFA0BB8A4DE76ACEDD5CFE6C69C63AB2 /* NSObject+YYModel.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 97DE7672B0943F648B8EAF7414286699 /* FMResultSet.m in Sources */ = {isa = PBXBuildFile; fileRef = 5DBC0BAD4F9281386E8BC0FDCB01FEF3 /* FMResultSet.m */; }; + 97ED4FF4690EDEC6FD316DA53A1BAACB /* OSSCancellationToken.m in Sources */ = {isa = PBXBuildFile; fileRef = 24247A6B54051F81748085AF5018565B /* OSSCancellationToken.m */; }; + 980563CFDCB4DCC78ADD0ADAA6F1B266 /* TUICore-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = B1186EC674E701810914EBF98E6BF146 /* TUICore-dummy.m */; }; + 9814625D681689E4CF5C6C3D37FB9332 /* NSImage+Compatibility.h in Headers */ = {isa = PBXBuildFile; fileRef = 9D60F9452422D2548C79E8680FE1D976 /* NSImage+Compatibility.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 982CC07AB9A797EFD02AA01DA4ED71F3 /* SVGA.m in Sources */ = {isa = PBXBuildFile; fileRef = 4783575EFDFA7AF19D0C4E7F85CFD8AF /* SVGA.m */; }; + 9838965B6E76EAC0A8EC90802D1A064B /* RACIndexSetSequence.m in Sources */ = {isa = PBXBuildFile; fileRef = 1C67F518C36E23AF40254DBA8D1341DE /* RACIndexSetSequence.m */; }; + 985DB73D5EF7319A9D906C0088D4A940 /* filters_utils.h in Headers */ = {isa = PBXBuildFile; fileRef = C990846C5E3C92D6B1F54978170573C6 /* filters_utils.h */; settings = {ATTRIBUTES = (Project, ); }; }; + 98616885A5EB2E0F3F31E7A6693331B7 /* KaraokeView.swift in Sources */ = {isa = PBXBuildFile; fileRef = EFC41CE30D06937C22B7E27C45B27871 /* KaraokeView.swift */; }; 989C682678F460BBE76B24CD7749844E /* TUITextMessageCell.m in Sources */ = {isa = PBXBuildFile; fileRef = 4E407B7ED44DC80EEE078DA6D29B6A96 /* TUITextMessageCell.m */; }; - 98C098E65DE8764AF63F72D9F1159018 /* NSArray+LL_Utils.m in Sources */ = {isa = PBXBuildFile; fileRef = 0F32CA563BD4DD97B89E971AB5851DCF /* NSArray+LL_Utils.m */; }; - 98CB4BD62636225A73BA6992B6C533B9 /* LLThemeManager.h in Headers */ = {isa = PBXBuildFile; fileRef = 108CC78E90CB06A73DC046405D12968F /* LLThemeManager.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 98CF2D6B6F83C011675EA1F335C71E46 /* upsampling_sse41.c in Sources */ = {isa = PBXBuildFile; fileRef = B7E41137BC494F0940A883E840BE75BE /* upsampling_sse41.c */; settings = {COMPILER_FLAGS = "-D_THREAD_SAFE -fno-objc-arc"; }; }; - 98EFA246A2A845E74DEFF098CE60356C /* SDCycleScrollView.h in Headers */ = {isa = PBXBuildFile; fileRef = 6F997DBF534DFE76470A1AB8175B3610 /* SDCycleScrollView.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 98F31835D6FA5D1D63DEFEA29C8CE461 /* SVGAContentLayer.m in Sources */ = {isa = PBXBuildFile; fileRef = 3589EC62449C82E49971D5A7BC3F6AE9 /* SVGAContentLayer.m */; }; - 9902D257E5BF610335380AE1736E0269 /* SDWebImage-SDWebImage in Resources */ = {isa = PBXBuildFile; fileRef = CF1281E58AA1045D4B7F33FC56691C42 /* SDWebImage-SDWebImage */; }; - 991A5CAC4B62EADDA985EEBFCD22DAA7 /* dec_sse41.c in Sources */ = {isa = PBXBuildFile; fileRef = 91DB4C9280D8A35C9C913FE1F9CF29CC /* dec_sse41.c */; settings = {COMPILER_FLAGS = "-D_THREAD_SAFE -fno-objc-arc"; }; }; - 992358B17598680C77009C89C19AE677 /* NSAttributedString+AvoidCrash.h in Headers */ = {isa = PBXBuildFile; fileRef = 48C3BBA70F677407E36DBA2EE896068B /* NSAttributedString+AvoidCrash.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 98A316DC276C0DE190CA07B074F7F89A /* QCloudCOSXMLService+Private.h in Headers */ = {isa = PBXBuildFile; fileRef = C59C22BAD3474049BCF91D6D1F429239 /* QCloudCOSXMLService+Private.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 98C098E65DE8764AF63F72D9F1159018 /* NSArray+LL_Utils.m in Sources */ = {isa = PBXBuildFile; fileRef = E1D336009902F5BB7D273BA4AFAE1743 /* NSArray+LL_Utils.m */; }; + 98CB4BD62636225A73BA6992B6C533B9 /* LLThemeManager.h in Headers */ = {isa = PBXBuildFile; fileRef = C76A747AF5148D32E2D72F7E037204D8 /* LLThemeManager.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 98CC12887D688588D3FF359BD3327FC5 /* predictor_enc.c in Sources */ = {isa = PBXBuildFile; fileRef = 992E7E74FA846B8584E79728F0C6F7D0 /* predictor_enc.c */; settings = {COMPILER_FLAGS = "-D_THREAD_SAFE -fno-objc-arc"; }; }; + 98D89E51CF701AABB4D70B9F0F76FF66 /* yuv_mips_dsp_r2.c in Sources */ = {isa = PBXBuildFile; fileRef = 686CEFEF8F6698FD3A987D079EF81C12 /* yuv_mips_dsp_r2.c */; settings = {COMPILER_FLAGS = "-D_THREAD_SAFE -fno-objc-arc"; }; }; + 98E93420430FC614A21ECD364D958E64 /* QCloudUploadPartRequest+Custom.h in Headers */ = {isa = PBXBuildFile; fileRef = 38284497DD20EB23C007D4DD28318A8C /* QCloudUploadPartRequest+Custom.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 98EFA246A2A845E74DEFF098CE60356C /* SDCycleScrollView.h in Headers */ = {isa = PBXBuildFile; fileRef = 4C7A7AD3D79ABFF552B4AAEDBA5A9DCC /* SDCycleScrollView.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 98F31835D6FA5D1D63DEFEA29C8CE461 /* SVGAContentLayer.m in Sources */ = {isa = PBXBuildFile; fileRef = 03D9206219D47CEEE6D52B1D089F4AAC /* SVGAContentLayer.m */; }; + 99196B9247580A210DF4D3D2572E1A82 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = F91075A92425F75F02E0E1C8D455AF79 /* Foundation.framework */; }; + 992358B17598680C77009C89C19AE677 /* NSAttributedString+AvoidCrash.h in Headers */ = {isa = PBXBuildFile; fileRef = 44B04605C171CACC5F44118805A486F3 /* NSAttributedString+AvoidCrash.h */; settings = {ATTRIBUTES = (Public, ); }; }; 99508DEE0C4AD578E99D75DCD73FC280 /* TUIImageReplyQuoteViewData.h in Headers */ = {isa = PBXBuildFile; fileRef = A9D106C30BEE5B4E6A2FF73AA473A3BE /* TUIImageReplyQuoteViewData.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 995E2C2F7FDB86668B21AC0E9B0A2F73 /* dec_clip_tables.c in Sources */ = {isa = PBXBuildFile; fileRef = E6187E2A44D5D42825768D5BB2D1EC18 /* dec_clip_tables.c */; settings = {COMPILER_FLAGS = "-D_THREAD_SAFE -fno-objc-arc"; }; }; - 99635CA468CC21AAC3D5B922B1D93490 /* LLWindowManager+AppInfo.m in Sources */ = {isa = PBXBuildFile; fileRef = 6FEDEBB6368648B55E48238CFA4252B9 /* LLWindowManager+AppInfo.m */; }; - 997159B060A73FD93F99C0E647FC98A2 /* bit_reader_utils.h in Headers */ = {isa = PBXBuildFile; fileRef = FC8965E29F7E2C92477174EF5568E76E /* bit_reader_utils.h */; settings = {ATTRIBUTES = (Project, ); }; }; + 99635CA468CC21AAC3D5B922B1D93490 /* LLWindowManager+AppInfo.m in Sources */ = {isa = PBXBuildFile; fileRef = 9307B5FE011D6F6ED5ACC26D6E47C901 /* LLWindowManager+AppInfo.m */; }; 99802DF430D1711E201A90BE25877DA9 /* TUIChatPopContextExtionView.m in Sources */ = {isa = PBXBuildFile; fileRef = 2E8366DB1E5DA13F1587059290E9BC38 /* TUIChatPopContextExtionView.m */; }; - 99B20F1007E6DD270BC8ABB8D1B4E412 /* LLEntryWindow.m in Sources */ = {isa = PBXBuildFile; fileRef = 2F070F6A9F41599A531F9A7FC3109961 /* LLEntryWindow.m */; }; + 99AC0F90AC1C8CD6FD5E49F8671941F9 /* QCloudWeakProxy.m in Sources */ = {isa = PBXBuildFile; fileRef = 01E8BF528D10019C70F08C573C50A689 /* QCloudWeakProxy.m */; }; + 99B20F1007E6DD270BC8ABB8D1B4E412 /* LLEntryWindow.m in Sources */ = {isa = PBXBuildFile; fileRef = 0C8A81E9E5FF908407DB6AAF637F7307 /* LLEntryWindow.m */; }; 99C826682A5A43AF6FB1A5B25E999198 /* TUIGroupInfoDataProvider.m in Sources */ = {isa = PBXBuildFile; fileRef = 0B08E549753454E1731D00B4D98F0CC8 /* TUIGroupInfoDataProvider.m */; }; - 99D370B84B89C74D916A5E05FCF84DC8 /* GPBRootObject_PackagePrivate.h in Headers */ = {isa = PBXBuildFile; fileRef = 999B45DE9163CA2BE626E067C0981D13 /* GPBRootObject_PackagePrivate.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 99FBE73B7B7E6DA785FAD8ED7A2EBB94 /* NSIndexSet+RACSequenceAdditions.h in Headers */ = {isa = PBXBuildFile; fileRef = C543DD290F6D315E73EB20C3E7C3635E /* NSIndexSet+RACSequenceAdditions.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 99D370B84B89C74D916A5E05FCF84DC8 /* GPBRootObject_PackagePrivate.h in Headers */ = {isa = PBXBuildFile; fileRef = 7BAAB6788DBAD384970B8CA5CE92451C /* GPBRootObject_PackagePrivate.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 99FBE73B7B7E6DA785FAD8ED7A2EBB94 /* NSIndexSet+RACSequenceAdditions.h in Headers */ = {isa = PBXBuildFile; fileRef = 5B6DDC7972DDADE492493B995D400DCF /* NSIndexSet+RACSequenceAdditions.h */; settings = {ATTRIBUTES = (Public, ); }; }; 9A0A9F7CD8522C1D418F8E3525350C8B /* TUIChatObjectFactory.h in Headers */ = {isa = PBXBuildFile; fileRef = 81A32EFD62CBDD8038441F526F801A6B /* TUIChatObjectFactory.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 9A2DC5356256DDB77F00B03DC8AF88B2 /* YYTextAttribute.m in Sources */ = {isa = PBXBuildFile; fileRef = FE83CF94555463AA2432B3405B188C32 /* YYTextAttribute.m */; }; + 9A2DC5356256DDB77F00B03DC8AF88B2 /* YYTextAttribute.m in Sources */ = {isa = PBXBuildFile; fileRef = E5BF696DB0B67824D9A719D3F80F4CD4 /* YYTextAttribute.m */; }; + 9A4C1DF662989F02B63E6BEF3781C270 /* backward_references_enc.h in Headers */ = {isa = PBXBuildFile; fileRef = 9559EC21ED7F4E98D232C84ECEA163E1 /* backward_references_enc.h */; settings = {ATTRIBUTES = (Project, ); }; }; 9A541A851275150EF7374FBFAAF58CDE /* TUIInputBar_Minimalist.m in Sources */ = {isa = PBXBuildFile; fileRef = C600EA527364A2CC147B44F899DEA94D /* TUIInputBar_Minimalist.m */; }; 9A78E066B1145AAB71A8583CAD852F0D /* AlbumPicker.h in Headers */ = {isa = PBXBuildFile; fileRef = 5D4EDE4133B90DA0FCF72C6B9141D7A0 /* AlbumPicker.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 9A7FB1E975A5955C896E6B195C521804 /* MJRefreshBackNormalFooter.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B00C84D5AA28FD815A3FACEC1940288 /* MJRefreshBackNormalFooter.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 9A7FB1E975A5955C896E6B195C521804 /* MJRefreshBackNormalFooter.h in Headers */ = {isa = PBXBuildFile; fileRef = 204426110067416B491362D7ABBCA052 /* MJRefreshBackNormalFooter.h */; settings = {ATTRIBUTES = (Public, ); }; }; 9ACFFBD98450F435517BE1D3475810D5 /* TUIConversationListDataProvider_Minimalist.h in Headers */ = {isa = PBXBuildFile; fileRef = 1AD3A57805F1807345E09E59E29510FB /* TUIConversationListDataProvider_Minimalist.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 9AD13CBA64A2611A305B598B1D1DB154 /* NSParagraphStyle+YYText.m in Sources */ = {isa = PBXBuildFile; fileRef = 93ED4168CB181125A6B72D391E025A4E /* NSParagraphStyle+YYText.m */; }; - 9ADB69DEACB5B811F3CBF85ABF4C0F10 /* RACStream.m in Sources */ = {isa = PBXBuildFile; fileRef = 6919ED6EF55488289D03D05104EE944D /* RACStream.m */; }; + 9AD13CBA64A2611A305B598B1D1DB154 /* NSParagraphStyle+YYText.m in Sources */ = {isa = PBXBuildFile; fileRef = 6F28FBBBCF4CCC86340A0FF856333554 /* NSParagraphStyle+YYText.m */; }; + 9ADB69DEACB5B811F3CBF85ABF4C0F10 /* RACStream.m in Sources */ = {isa = PBXBuildFile; fileRef = 04548106866B951006921AF00DE0D9A1 /* RACStream.m */; }; 9AF1EC09317E5E9DE5D1C70A0B2A6E11 /* CoreGraphics.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 58B0067B68C01AB3887A364BABB15A12 /* CoreGraphics.framework */; }; - 9B2813CB4372A381C770D86A6B8FEA43 /* NSNotificationCenter+RACSupport.h in Headers */ = {isa = PBXBuildFile; fileRef = C04645052ADA4D0C5776AF0B76583807 /* NSNotificationCenter+RACSupport.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 9B2E19FB0E083B2DF5BCEE7AEA7D23B7 /* IQUIScrollView+Additions.m in Sources */ = {isa = PBXBuildFile; fileRef = E71B621E3EBC3CC09FA8F9E51EB8D80B /* IQUIScrollView+Additions.m */; }; - 9B3BCBB38A21CC9C9076515CF74AE047 /* NSDate+BRPickerView.h in Headers */ = {isa = PBXBuildFile; fileRef = 7AE99A5C966E43E5FAED29A2602CEAB2 /* NSDate+BRPickerView.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 9B4C96950622A3BC33EFAFD7B4597EDF /* sharpyuv.h in Headers */ = {isa = PBXBuildFile; fileRef = 5D17A1DCD046EB694DCD8D2D86A83792 /* sharpyuv.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 9B6D9A264C830023A2CA54E6166CAB26 /* AvoidCrashProtocol.h in Headers */ = {isa = PBXBuildFile; fileRef = 23AD3202055EDA5301C91022B2C83F1B /* AvoidCrashProtocol.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 9B88422EF63D08F2B539B711CD59DED0 /* NSString+YYAdd.m in Sources */ = {isa = PBXBuildFile; fileRef = 84D3D1D7453390DDDBF69853A482E7F9 /* NSString+YYAdd.m */; }; + 9B222B505118A6DA07A5EC02C94B229D /* QCloudHTTPTaskDelayManager.h in Headers */ = {isa = PBXBuildFile; fileRef = 6A3256BD1FA7962C33DB9B557B92EF68 /* QCloudHTTPTaskDelayManager.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 9B2813CB4372A381C770D86A6B8FEA43 /* NSNotificationCenter+RACSupport.h in Headers */ = {isa = PBXBuildFile; fileRef = 873C77F893A4816E5084555066F10F74 /* NSNotificationCenter+RACSupport.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 9B2E19FB0E083B2DF5BCEE7AEA7D23B7 /* IQUIScrollView+Additions.m in Sources */ = {isa = PBXBuildFile; fileRef = B41729B5536A6AC1354B2E5EADF8E6C4 /* IQUIScrollView+Additions.m */; }; + 9B3BCBB38A21CC9C9076515CF74AE047 /* NSDate+BRPickerView.h in Headers */ = {isa = PBXBuildFile; fileRef = E022BE52E2CBA50EAA33B904EFECAE50 /* NSDate+BRPickerView.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 9B4B8A5E6E654F8B1C96E5BE3BA0DF95 /* QCloudCLSLoggerOutput.h in Headers */ = {isa = PBXBuildFile; fileRef = E0D53186B5B8533612EBBA00926B2FE7 /* QCloudCLSLoggerOutput.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 9B687A9373746BF17EDBEE0400BA1903 /* SDAnimatedImage.m in Sources */ = {isa = PBXBuildFile; fileRef = B9353A29D6EC6E90EC2C64FADEDD0A22 /* SDAnimatedImage.m */; }; + 9B6D9A264C830023A2CA54E6166CAB26 /* AvoidCrashProtocol.h in Headers */ = {isa = PBXBuildFile; fileRef = CA98A77F09F0AB352712BE13267E380F /* AvoidCrashProtocol.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 9B88422EF63D08F2B539B711CD59DED0 /* NSString+YYAdd.m in Sources */ = {isa = PBXBuildFile; fileRef = 53817E330C397B22A43D06E36B41D2D0 /* NSString+YYAdd.m */; }; 9BA625A9D644B8073647630417F34894 /* TUIChat-TUIChat_Privacy in Resources */ = {isa = PBXBuildFile; fileRef = F8879DB9AD3F9A8F85D8C38EC2024D15 /* TUIChat-TUIChat_Privacy */; }; - 9BA712F1170E12E2CADDD49C51F856B5 /* Accelerate.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 2F4078DA790DE5F4A9E0EBCD660768F7 /* Accelerate.framework */; }; - 9BAB90DFB5E11FFE0C0DA393ED67657F /* SDAnimatedImage.m in Sources */ = {isa = PBXBuildFile; fileRef = 4BFCBC45D942B34D6947C2B92D59A048 /* SDAnimatedImage.m */; }; - 9C034894E873E67C35BAF6879BF6F05A /* ReactiveObjC-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = C545DCD091AC0B30D265510FFD6F5E84 /* ReactiveObjC-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 9C4F3B14230628913E21EADA643B1452 /* Extentions.swift in Sources */ = {isa = PBXBuildFile; fileRef = DDEA1A9F93242C3A31DD49B8388F96BC /* Extentions.swift */; }; - 9C5AD0CCE68EEAE2096052C189F3A948 /* YBIBImageData.m in Sources */ = {isa = PBXBuildFile; fileRef = AAD4A1BB55053FBBEBE321C9BB07A5C9 /* YBIBImageData.m */; }; - 9C5BE1E41CEECABEC4FD5A887E8F6600 /* sharpyuv_dsp.h in Headers */ = {isa = PBXBuildFile; fileRef = 2C73A03D77A46247AF3DE8683AA802CD /* sharpyuv_dsp.h */; settings = {ATTRIBUTES = (Project, ); }; }; - 9C71EC782AE737A06EC9F9199A61EE2F /* BRTextPickerView.h in Headers */ = {isa = PBXBuildFile; fileRef = 1D5C836EF20E3D39FF804AEB9B1D57F7 /* BRTextPickerView.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 9CB0C910E0950794AF58F2F24D1D9D74 /* NSSet+RACSequenceAdditions.m in Sources */ = {isa = PBXBuildFile; fileRef = B5FE646DE5FC4AD3481E835DD271302D /* NSSet+RACSequenceAdditions.m */; }; - 9CE079FF1A759CC1F214F57922278767 /* GPBUnknownFields_PackagePrivate.h in Headers */ = {isa = PBXBuildFile; fileRef = 608BE80B7637F08E2F1EB5719409AFDE /* GPBUnknownFields_PackagePrivate.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 9C034894E873E67C35BAF6879BF6F05A /* ReactiveObjC-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = 323E560A5CBA3BC04CD92054CD30A16A /* ReactiveObjC-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 9C4F3B14230628913E21EADA643B1452 /* Extentions.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4A32567127ABAC848D51F4C939E2D5FF /* Extentions.swift */; }; + 9C5AD0CCE68EEAE2096052C189F3A948 /* YBIBImageData.m in Sources */ = {isa = PBXBuildFile; fileRef = 92C1D7D3A305BC6D2EBEE755EB5A930E /* YBIBImageData.m */; }; + 9C71EC782AE737A06EC9F9199A61EE2F /* BRTextPickerView.h in Headers */ = {isa = PBXBuildFile; fileRef = 6AAB5B001249D96CE8C2A1FE66E00532 /* BRTextPickerView.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 9C8A60DB6F215924FB99FCE372E39C10 /* NSString+RegularExpressionCategory.h in Headers */ = {isa = PBXBuildFile; fileRef = AFCDAAFCBD6B1754C7C41B461713D8D7 /* NSString+RegularExpressionCategory.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 9CB0C910E0950794AF58F2F24D1D9D74 /* NSSet+RACSequenceAdditions.m in Sources */ = {isa = PBXBuildFile; fileRef = 3121FA43FAB28AEFB43B567F9077953F /* NSSet+RACSequenceAdditions.m */; }; + 9CD0AF4148006DAE5DD426C527C6FFA0 /* SDImageAWebPCoder.h in Headers */ = {isa = PBXBuildFile; fileRef = F9C90C051621F066A3D2F27F52C026E5 /* SDImageAWebPCoder.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 9CE079FF1A759CC1F214F57922278767 /* GPBUnknownFields_PackagePrivate.h in Headers */ = {isa = PBXBuildFile; fileRef = 5214B00F5E32EE3751D1DD70C6B09C8B /* GPBUnknownFields_PackagePrivate.h */; settings = {ATTRIBUTES = (Public, ); }; }; 9D2056506EF1FCA542A86810886CC5A7 /* TUIGroupPinPageViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 4B8034564E23ACFED289992BDEE3ADD5 /* TUIGroupPinPageViewController.m */; }; - 9D25333E97DC21D53B544ACB025CC27C /* upsampling_neon.c in Sources */ = {isa = PBXBuildFile; fileRef = 456D577A21B703DFBFB895E645CEC50C /* upsampling_neon.c */; settings = {COMPILER_FLAGS = "-D_THREAD_SAFE -fno-objc-arc"; }; }; - 9D2B4F63AACD42D296F3AC3B6133D113 /* PrivacyInfo.xcprivacy in Resources */ = {isa = PBXBuildFile; fileRef = 702583BA078293A9CBBC0567D8E90474 /* PrivacyInfo.xcprivacy */; }; - 9D422527A25BAE6A207DEFE11958ABBC /* AFCompatibilityMacros.h in Headers */ = {isa = PBXBuildFile; fileRef = 4589F20EBA71C4A177A12B168241BAB4 /* AFCompatibilityMacros.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 9D4390C7D097FA6C27E34DC233D08B8B /* LLComponent.m in Sources */ = {isa = PBXBuildFile; fileRef = 48EDE83A052BE4897E236230697A1CCE /* LLComponent.m */; }; - 9D44F5E650F3CEC1BC93A939729217BC /* FMDatabasePool.h in Headers */ = {isa = PBXBuildFile; fileRef = 121C7BCD792C816BBAAC7774652021D7 /* FMDatabasePool.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 9D4A51D6D997BE426F521FC9081F694E /* dsp.h in Headers */ = {isa = PBXBuildFile; fileRef = 431B99C72F709AAC251DD838825FC01C /* dsp.h */; settings = {ATTRIBUTES = (Project, ); }; }; + 9D3B92F0D94D925112147BA2B5989D52 /* TUILogin.m in Sources */ = {isa = PBXBuildFile; fileRef = 8005A15AA2883C0049FC97E6669A659E /* TUILogin.m */; }; + 9D422527A25BAE6A207DEFE11958ABBC /* AFCompatibilityMacros.h in Headers */ = {isa = PBXBuildFile; fileRef = 54A34D23FFDF5900855CC9BC436FB705 /* AFCompatibilityMacros.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 9D4390C7D097FA6C27E34DC233D08B8B /* LLComponent.m in Sources */ = {isa = PBXBuildFile; fileRef = B33ABF35E96ABE37B2B3453BF842EF63 /* LLComponent.m */; }; + 9D44F5E650F3CEC1BC93A939729217BC /* FMDatabasePool.h in Headers */ = {isa = PBXBuildFile; fileRef = E0810B11491CDAE691F3ED6C4766F317 /* FMDatabasePool.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 9D5A04CAF690C446B6473161B152AB1A /* QCloudClassInfo.m in Sources */ = {isa = PBXBuildFile; fileRef = B8774079A41F3B0A8535EDA4B2D90E8B /* QCloudClassInfo.m */; }; 9D781BABE4BC0316C505A2F3EB427B5F /* UIKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 83AC327FDFB768874F13D3CD20C46095 /* UIKit.framework */; }; - 9D82CEFBF479CDE63B0FF0735A27E32B /* LyricsFileDownloaderProtocol.swift in Sources */ = {isa = PBXBuildFile; fileRef = 27CDF3758333D3474CC079298D4736DD /* LyricsFileDownloaderProtocol.swift */; }; - 9D9511ADB5181DAFEB94BCEA60EF4745 /* LLPinAnnotationView.m in Sources */ = {isa = PBXBuildFile; fileRef = 2C4FA9E3872B981247941FECE75C57B8 /* LLPinAnnotationView.m */; }; - 9DA8BF5E1F62665192ED18B27ADD0FBE /* UITableViewHeaderFooterView+RACSignalSupport.m in Sources */ = {isa = PBXBuildFile; fileRef = E82E4E8160F794B08736FFB99B47495A /* UITableViewHeaderFooterView+RACSignalSupport.m */; }; + 9D82CEFBF479CDE63B0FF0735A27E32B /* LyricsFileDownloaderProtocol.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1B065ADB18274304662B055842D547B8 /* LyricsFileDownloaderProtocol.swift */; }; + 9D9511ADB5181DAFEB94BCEA60EF4745 /* LLPinAnnotationView.m in Sources */ = {isa = PBXBuildFile; fileRef = E8B01716AB758E8D6CBBDDBFF566A30C /* LLPinAnnotationView.m */; }; + 9D9E4EC76B429D267BCC7907727B2436 /* yuv_sse2.c in Sources */ = {isa = PBXBuildFile; fileRef = 968E0E8489EA1FEE210BB51339379F28 /* yuv_sse2.c */; settings = {COMPILER_FLAGS = "-D_THREAD_SAFE -fno-objc-arc"; }; }; + 9DA8BF5E1F62665192ED18B27ADD0FBE /* UITableViewHeaderFooterView+RACSignalSupport.m in Sources */ = {isa = PBXBuildFile; fileRef = 7AA8DA305EE8D9181700B0E85ACBF0A0 /* UITableViewHeaderFooterView+RACSignalSupport.m */; }; 9DAF7D6D3F4B671E08C73AEB7A1306B9 /* TIMCommon-TIMCommon_Privacy in Resources */ = {isa = PBXBuildFile; fileRef = 1861D51E6AFECEB294232A4496429A63 /* TIMCommon-TIMCommon_Privacy */; }; - 9DB8E1A6396E3AF5AF0855353063ED40 /* NSData+RACSupport.h in Headers */ = {isa = PBXBuildFile; fileRef = 0F88EF100863CF2E8408D228E573FF49 /* NSData+RACSupport.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 9DCB863E86B7AE9D88883F3E7E2B52AE /* LLFactory.h in Headers */ = {isa = PBXBuildFile; fileRef = 342958B2FE3F28E830204FDF3E1244F1 /* LLFactory.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 9E46EF300E2FAE9C075C03534DECBCA5 /* YBIBVideoView.m in Sources */ = {isa = PBXBuildFile; fileRef = 6C05CAB860CB05ACA1887A474F3C5723 /* YBIBVideoView.m */; }; - 9E6887F0D737BF162A365E8B2FF6F709 /* LLSandboxCell.h in Headers */ = {isa = PBXBuildFile; fileRef = 309D1A47FA158D12298A21D9BC26845E /* LLSandboxCell.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 9E7FD4501C2EF7FBF3379D21E46DB07B /* JXCategoryBaseCell.m in Sources */ = {isa = PBXBuildFile; fileRef = 18CAAFC88AC77CDDEB1287E1863E3537 /* JXCategoryBaseCell.m */; }; - 9E9313A64BBD79B2244DEBBD100BEBFA /* BRPickerView-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = D15AF3430226E14F6709DD8A871FA73E /* BRPickerView-dummy.m */; }; - 9EBEB3D20E9DB94CEC321B8D971D5D61 /* LLFilterTextFieldModel.m in Sources */ = {isa = PBXBuildFile; fileRef = 3E4B236E0E1156C523241EA7587DF41C /* LLFilterTextFieldModel.m */; }; - 9EC5B480172577DC86FD51F18D19C25A /* GPBAny.pbobjc.m in Sources */ = {isa = PBXBuildFile; fileRef = 1FCEB5B1CE94F3E0C081CE12F3F86133 /* GPBAny.pbobjc.m */; settings = {COMPILER_FLAGS = "-fno-objc-arc"; }; }; + 9DB8E1A6396E3AF5AF0855353063ED40 /* NSData+RACSupport.h in Headers */ = {isa = PBXBuildFile; fileRef = B68B32C40EAACFBF41CA0FBC1546C6AF /* NSData+RACSupport.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 9DCB863E86B7AE9D88883F3E7E2B52AE /* LLFactory.h in Headers */ = {isa = PBXBuildFile; fileRef = 100426633041B94E69C7367D0DC74093 /* LLFactory.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 9DE2B9009A83398F51894B2343CF1398 /* QCloudCOSXMLService+Configuration.m in Sources */ = {isa = PBXBuildFile; fileRef = 3F228046BA3DB3BF92D807FF46D06083 /* QCloudCOSXMLService+Configuration.m */; }; + 9E1EEF4810C44B92AE79A7EA1C3D1519 /* YYImage-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = B91D5E724A7FD050682DF4FCBF8F7BB1 /* YYImage-dummy.m */; }; + 9E46EF300E2FAE9C075C03534DECBCA5 /* YBIBVideoView.m in Sources */ = {isa = PBXBuildFile; fileRef = 380962502D82008B0DA186322FC1E653 /* YBIBVideoView.m */; }; + 9E6887F0D737BF162A365E8B2FF6F709 /* LLSandboxCell.h in Headers */ = {isa = PBXBuildFile; fileRef = 16A98E5BDC077F1555782DCE30594D96 /* LLSandboxCell.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 9E7FD4501C2EF7FBF3379D21E46DB07B /* JXCategoryBaseCell.m in Sources */ = {isa = PBXBuildFile; fileRef = B42A64C3FD634897BDC5A5415634AD6C /* JXCategoryBaseCell.m */; }; + 9E9313A64BBD79B2244DEBBD100BEBFA /* BRPickerView-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 5839E2465EFCB6EC01D2CD4DE6D3B0C6 /* BRPickerView-dummy.m */; }; + 9EBEB3D20E9DB94CEC321B8D971D5D61 /* LLFilterTextFieldModel.m in Sources */ = {isa = PBXBuildFile; fileRef = 20C4734B2C29C11E89943BF4ED48D831 /* LLFilterTextFieldModel.m */; }; + 9EC5B480172577DC86FD51F18D19C25A /* GPBAny.pbobjc.m in Sources */ = {isa = PBXBuildFile; fileRef = 6EC746F4456DF1846F062EF0158D5F66 /* GPBAny.pbobjc.m */; settings = {COMPILER_FLAGS = "-fno-objc-arc"; }; }; 9ED207EEBBAEC939D21521CA4F2A3451 /* TUIMergeMessageCellData.h in Headers */ = {isa = PBXBuildFile; fileRef = CF8DC8D67823DDEBA8A706CA855A7282 /* TUIMergeMessageCellData.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 9EEDEAF30A0745171E689B3B0C971E91 /* QGVAPTextureLoader.h in Headers */ = {isa = PBXBuildFile; fileRef = AFB2604C71FD725C5ED31B34AE93DFA7 /* QGVAPTextureLoader.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 9F5321CA9D525A29337A77504963DBCF /* LLUITableViewLongPressGestureRecognizerDelegate.h in Headers */ = {isa = PBXBuildFile; fileRef = 70802533FD1E275AA7358F18A6459030 /* LLUITableViewLongPressGestureRecognizerDelegate.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 9F63C2389B775C4543044A4210071F79 /* QGVAPTextureLoader.m in Sources */ = {isa = PBXBuildFile; fileRef = 277B2376ADFADC4C028AB41D28228907 /* QGVAPTextureLoader.m */; }; - 9F69075D5DC6E2F9183F5D8E7B090D76 /* YYTextLine.h in Headers */ = {isa = PBXBuildFile; fileRef = AD9174A6EE6273047D6FA0E4DA5E4CB1 /* YYTextLine.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 9EDFD8CCB090927F7D03EC4DE86FB27F /* QCloudHTTPRetryHanlder.m in Sources */ = {isa = PBXBuildFile; fileRef = 69DBB5682495D2343EDB5BBA33EF8EA9 /* QCloudHTTPRetryHanlder.m */; }; + 9EEDEAF30A0745171E689B3B0C971E91 /* QGVAPTextureLoader.h in Headers */ = {isa = PBXBuildFile; fileRef = 1444A2422702396B38D30FA53D16C3B0 /* QGVAPTextureLoader.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 9F4AF4819E2A6E01E54A3374113FFFA4 /* QCloudModel.h in Headers */ = {isa = PBXBuildFile; fileRef = 58D65E4069D50F71191C20F097FFA577 /* QCloudModel.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 9F5321CA9D525A29337A77504963DBCF /* LLUITableViewLongPressGestureRecognizerDelegate.h in Headers */ = {isa = PBXBuildFile; fileRef = 4CC7230276400BD97B652992D74B90FB /* LLUITableViewLongPressGestureRecognizerDelegate.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 9F63C2389B775C4543044A4210071F79 /* QGVAPTextureLoader.m in Sources */ = {isa = PBXBuildFile; fileRef = 29633068DC32D42C43EE802B8FEE1A3B /* QGVAPTextureLoader.m */; }; + 9F69075D5DC6E2F9183F5D8E7B090D76 /* YYTextLine.h in Headers */ = {isa = PBXBuildFile; fileRef = 0D4B0E9AF1DC425F683EAD19AFC28566 /* YYTextLine.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 9F6F901E05D6A4185A05908AB2782B20 /* UIImage+MultiFormat.h in Headers */ = {isa = PBXBuildFile; fileRef = 7F9F6F40AB8B6C82E514BD3868B3C40D /* UIImage+MultiFormat.h */; settings = {ATTRIBUTES = (Public, ); }; }; 9F723293C4D68B55C648A57B36283CF7 /* TUIConversationCellData_Minimalist.m in Sources */ = {isa = PBXBuildFile; fileRef = D814DADC5EB35256584C7C702C130377 /* TUIConversationCellData_Minimalist.m */; }; - 9FAC1A110B4EE0BA2D2817068223B25F /* SDWebImageDownloaderDecryptor.h in Headers */ = {isa = PBXBuildFile; fileRef = 3C5889D5277E5E8A2309A95BE35876AD /* SDWebImageDownloaderDecryptor.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 9F925F465F1C00BDE1C99CAF618D2D29 /* QuartzCore.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 495512CED6B55B9463695CBE9898BE51 /* QuartzCore.framework */; }; + 9F9F09EC77469B710932299D23D3AB0D /* SDWebImageCacheKeyFilter.m in Sources */ = {isa = PBXBuildFile; fileRef = 6357121AA9EC74D1AA4218F756C2EEE1 /* SDWebImageCacheKeyFilter.m */; }; 9FBF7933AA477EFE4996F2FA427425B0 /* TUIImageReplyQuoteView.h in Headers */ = {isa = PBXBuildFile; fileRef = 89D7379232813932A27501B7ABDE4743 /* TUIImageReplyQuoteView.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 9FFBCED2ECA798F52C90F050BA81B311 /* OSSHttpResponseParser.h in Headers */ = {isa = PBXBuildFile; fileRef = BFDA366E9CB7BAB06A7CB8C1F81195BF /* OSSHttpResponseParser.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 9FFFA84114E3A6494A5E8DD1081F8747 /* UIControl+YYAdd.m in Sources */ = {isa = PBXBuildFile; fileRef = FF30BBC68DF89754D2DFDDEF5A7BD91A /* UIControl+YYAdd.m */; }; - A001AD8FB1D14919112949B16443B582 /* NSMutableDictionary+OSS.m in Sources */ = {isa = PBXBuildFile; fileRef = 60FF643DA672F248EEC2A67C984DD59B /* NSMutableDictionary+OSS.m */; }; - A007EA5F40B3284761C5C320FEC89861 /* LLRouter.m in Sources */ = {isa = PBXBuildFile; fileRef = 845C507976FCD3C451D99608DEF05255 /* LLRouter.m */; }; - A00ECA21D523ED1D698FFEAE82EFC6DE /* GPBCodedInputStream_PackagePrivate.h in Headers */ = {isa = PBXBuildFile; fileRef = F14BBAA787AE34E19292BCB584EF6869 /* GPBCodedInputStream_PackagePrivate.h */; settings = {ATTRIBUTES = (Public, ); }; }; - A0234E08FC869B2266F88614A2F0E08F /* QGVAPMetalRenderer.m in Sources */ = {isa = PBXBuildFile; fileRef = B8DCECE609B6998C0E522248044B5682 /* QGVAPMetalRenderer.m */; }; - A028CD3C4B02A44E0265B3ECB41DDFBB /* NSString+AvoidCrash.m in Sources */ = {isa = PBXBuildFile; fileRef = 405626BC91F97DC3F00DE8BBC0646BEE /* NSString+AvoidCrash.m */; }; - A0429A1909F7621FD97AA26CD9E987EB /* QGBaseAnimatedImageFrame+Displaying.m in Sources */ = {isa = PBXBuildFile; fileRef = DDACD423E70107BD1391BADADB12C79D /* QGBaseAnimatedImageFrame+Displaying.m */; }; + 9FFBCED2ECA798F52C90F050BA81B311 /* OSSHttpResponseParser.h in Headers */ = {isa = PBXBuildFile; fileRef = B3BA5D06353974236746C59F1C574993 /* OSSHttpResponseParser.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 9FFCA26B16410FCB07DAB8A6464358F0 /* YYImage-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = 50374C4613B393AB172EAFA723197796 /* YYImage-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 9FFFA84114E3A6494A5E8DD1081F8747 /* UIControl+YYAdd.m in Sources */ = {isa = PBXBuildFile; fileRef = 86DED4C847CB1687333D82BF77D26073 /* UIControl+YYAdd.m */; }; + A001AD8FB1D14919112949B16443B582 /* NSMutableDictionary+OSS.m in Sources */ = {isa = PBXBuildFile; fileRef = 4ED53B73CF9D64B4F955BABACA49A2E4 /* NSMutableDictionary+OSS.m */; }; + A007EA5F40B3284761C5C320FEC89861 /* LLRouter.m in Sources */ = {isa = PBXBuildFile; fileRef = 937BAE0D7ECAFAC5DF4B1015DADDDDFC /* LLRouter.m */; }; + A00ECA21D523ED1D698FFEAE82EFC6DE /* GPBCodedInputStream_PackagePrivate.h in Headers */ = {isa = PBXBuildFile; fileRef = 20FB6E25DD4AF9E7342175D1281FF609 /* GPBCodedInputStream_PackagePrivate.h */; settings = {ATTRIBUTES = (Public, ); }; }; + A0234E08FC869B2266F88614A2F0E08F /* QGVAPMetalRenderer.m in Sources */ = {isa = PBXBuildFile; fileRef = D1BD141EC6A53A6B60DC9B14624F1C22 /* QGVAPMetalRenderer.m */; }; + A028CD3C4B02A44E0265B3ECB41DDFBB /* NSString+AvoidCrash.m in Sources */ = {isa = PBXBuildFile; fileRef = AD7C11AB19D85D711E929DC58F74CB80 /* NSString+AvoidCrash.m */; }; + A0429A1909F7621FD97AA26CD9E987EB /* QGBaseAnimatedImageFrame+Displaying.m in Sources */ = {isa = PBXBuildFile; fileRef = 356E53AC019108FC3CD39CF37AB40AD7 /* QGBaseAnimatedImageFrame+Displaying.m */; }; A046D6B7F89B0BF16CA32A722C246AA2 /* TUIChatObjectFactory.m in Sources */ = {isa = PBXBuildFile; fileRef = BD84E6AC9ECD5194352D138B1C2FD5A4 /* TUIChatObjectFactory.m */; }; - A0555B6CFD5E574EBD3B4CDB37F3D0B4 /* LLFunctionItemModel.h in Headers */ = {isa = PBXBuildFile; fileRef = 7C0C3946F0D9BB69D717E357ADB74546 /* LLFunctionItemModel.h */; settings = {ATTRIBUTES = (Public, ); }; }; - A0579BFD34A4DB5257BF641BAD61356D /* GPBArray.m in Sources */ = {isa = PBXBuildFile; fileRef = 417112912F5D066486D4EF451CDF125E /* GPBArray.m */; settings = {COMPILER_FLAGS = "-fno-objc-arc"; }; }; - A078A275FFFA48D620074790DA3CA6CE /* MJRefreshStateHeader.m in Sources */ = {isa = PBXBuildFile; fileRef = C378B7B6942FF775194460F2840467B7 /* MJRefreshStateHeader.m */; }; - A07C7A7B0A57BA1172D001F0991978A8 /* LLWindowManager+Sandbox.m in Sources */ = {isa = PBXBuildFile; fileRef = C5B9C3A62950E1FCEAC7D74608452593 /* LLWindowManager+Sandbox.m */; }; - A0B0FB84DBCD10FAF6A457F03CFFFC79 /* NSUserDefaults+LL_Utils.m in Sources */ = {isa = PBXBuildFile; fileRef = 3430192F21CBDC1205AEAA154B5BAD74 /* NSUserDefaults+LL_Utils.m */; }; - A0E0DC76F51300E7EB1EBA5492DE854D /* UIImageView+AFNetworking.m in Sources */ = {isa = PBXBuildFile; fileRef = 4BA6F40D960E0AE3D8D68035BC34044B /* UIImageView+AFNetworking.m */; }; + A0555B6CFD5E574EBD3B4CDB37F3D0B4 /* LLFunctionItemModel.h in Headers */ = {isa = PBXBuildFile; fileRef = D675818455980FA38020761F6771D3E7 /* LLFunctionItemModel.h */; settings = {ATTRIBUTES = (Public, ); }; }; + A0579BFD34A4DB5257BF641BAD61356D /* GPBArray.m in Sources */ = {isa = PBXBuildFile; fileRef = 4004B7488B679ED2B729FAA9A0EDA5DF /* GPBArray.m */; settings = {COMPILER_FLAGS = "-fno-objc-arc"; }; }; + A078A275FFFA48D620074790DA3CA6CE /* MJRefreshStateHeader.m in Sources */ = {isa = PBXBuildFile; fileRef = 62D2D3B118A4F616DAA2D0738B90699D /* MJRefreshStateHeader.m */; }; + A07C7A7B0A57BA1172D001F0991978A8 /* LLWindowManager+Sandbox.m in Sources */ = {isa = PBXBuildFile; fileRef = 90D8F228D30C0E38CECAA4978016D584 /* LLWindowManager+Sandbox.m */; }; + A09FFE389B050F8157742F7E34BE9C41 /* QCloudUICKeyChainStore.m in Sources */ = {isa = PBXBuildFile; fileRef = A39978EF7D591558C823F1C0FE10007F /* QCloudUICKeyChainStore.m */; }; + A0B0FB84DBCD10FAF6A457F03CFFFC79 /* NSUserDefaults+LL_Utils.m in Sources */ = {isa = PBXBuildFile; fileRef = 0DAC3115AB9E9572F6566EA9B791BAD1 /* NSUserDefaults+LL_Utils.m */; }; + A0C4DC20A0B5362E0E3E7DFB5A26F86E /* QCloudURLSessionTaskData.m in Sources */ = {isa = PBXBuildFile; fileRef = 02256A35658F257D79F2E0A2FC9C4822 /* QCloudURLSessionTaskData.m */; }; + A0E0DC76F51300E7EB1EBA5492DE854D /* UIImageView+AFNetworking.m in Sources */ = {isa = PBXBuildFile; fileRef = 2E0E74DDEF5598A8AC34DE1381BBE2F9 /* UIImageView+AFNetworking.m */; }; A0E338B103FC0FA96106564B5DD5C893 /* TUIRepliesDetailViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 73862A0F8AFCF49692EED3FA5095F177 /* TUIRepliesDetailViewController.m */; }; - A10FE58BAF663340918C3EBCC2BA6E5E /* AgoraLyricsScore-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = F8F68F9685579896CE2ECC8D53A77DD8 /* AgoraLyricsScore-dummy.m */; }; - A11A08B19EAA6632F0985238F742D061 /* LLWindowManager+WidgetBorder.h in Headers */ = {isa = PBXBuildFile; fileRef = 3F77304E3B0ED66758F7F561D432369E /* LLWindowManager+WidgetBorder.h */; settings = {ATTRIBUTES = (Public, ); }; }; - A121EA3502B90DF7EAC99C3041B29376 /* lossless_enc_mips32.c in Sources */ = {isa = PBXBuildFile; fileRef = 87927ADCBAAA58C3A270D01961886164 /* lossless_enc_mips32.c */; settings = {COMPILER_FLAGS = "-D_THREAD_SAFE -fno-objc-arc"; }; }; - A12B5AA99615B7B720F5B989CB1FFB4C /* UIDevice+LL_AppInfo.h in Headers */ = {isa = PBXBuildFile; fileRef = 9B5AE18DBDE00D6087843502F2BD4C4E /* UIDevice+LL_AppInfo.h */; settings = {ATTRIBUTES = (Public, ); }; }; - A134C40C1A891D013520258E234C73FD /* YYImage-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = 39B7511BB3C2B480AB6836AB01019C9D /* YYImage-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; - A14CB138559202BF9783493A3B0A49F3 /* YBImage.h in Headers */ = {isa = PBXBuildFile; fileRef = 0C89AC9F2BD2169E9824E33140DDE7C8 /* YBImage.h */; settings = {ATTRIBUTES = (Public, ); }; }; - A190A9DFC23558006BE5D8D5B6DAE51C /* mz_strm_zlib.h in Headers */ = {isa = PBXBuildFile; fileRef = E44CE15790053A4E0520E54B59416561 /* mz_strm_zlib.h */; settings = {ATTRIBUTES = (Project, ); }; }; + A10FE58BAF663340918C3EBCC2BA6E5E /* AgoraLyricsScore-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = B45199EF5621FF4E7B7DEAE995A0EE45 /* AgoraLyricsScore-dummy.m */; }; + A111B75180D308835F93BD080A6590AE /* QCloudSHAPart.h in Headers */ = {isa = PBXBuildFile; fileRef = B6123F6972C52F09194644A8E32B02B0 /* QCloudSHAPart.h */; settings = {ATTRIBUTES = (Public, ); }; }; + A11A08B19EAA6632F0985238F742D061 /* LLWindowManager+WidgetBorder.h in Headers */ = {isa = PBXBuildFile; fileRef = 7AE87813BC5C3F351ABF41B3DAEE6338 /* LLWindowManager+WidgetBorder.h */; settings = {ATTRIBUTES = (Public, ); }; }; + A125CB6BC39EEED37656AFB02A23E90B /* YYSpriteSheetImage.h in Headers */ = {isa = PBXBuildFile; fileRef = 2A9C0B1C108E00CC8C13BF1F3E12E325 /* YYSpriteSheetImage.h */; settings = {ATTRIBUTES = (Public, ); }; }; + A12B5AA99615B7B720F5B989CB1FFB4C /* UIDevice+LL_AppInfo.h in Headers */ = {isa = PBXBuildFile; fileRef = 9842CBBE1DDEAF850B3443F53051090E /* UIDevice+LL_AppInfo.h */; settings = {ATTRIBUTES = (Public, ); }; }; + A14CB138559202BF9783493A3B0A49F3 /* YBImage.h in Headers */ = {isa = PBXBuildFile; fileRef = 2D47EF12A03D7398C37784DF392ACDF6 /* YBImage.h */; settings = {ATTRIBUTES = (Public, ); }; }; + A16D475B9744F3EC466F2FB5A4722CF3 /* ImageIO.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = A5B624A70D4735B79D27A4C5B4DA64AA /* ImageIO.framework */; }; + A190A9DFC23558006BE5D8D5B6DAE51C /* mz_strm_zlib.h in Headers */ = {isa = PBXBuildFile; fileRef = 29E55AD78C94C23BE35748AFED72216A /* mz_strm_zlib.h */; settings = {ATTRIBUTES = (Project, ); }; }; A1A1266FD70CEB545FD7602CC33F2F7B /* QuartzCore.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 495512CED6B55B9463695CBE9898BE51 /* QuartzCore.framework */; }; - A1BFCC1BC5107F5F72BDBDB98E12559C /* JXCategoryViewDefines.h in Headers */ = {isa = PBXBuildFile; fileRef = FB65E787DBDD6C075BE105BBFC677E96 /* JXCategoryViewDefines.h */; settings = {ATTRIBUTES = (Public, ); }; }; + A1AFED6D834A1C13AC5F1D2E0EBE2A37 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = F91075A92425F75F02E0E1C8D455AF79 /* Foundation.framework */; }; + A1BFCC1BC5107F5F72BDBDB98E12559C /* JXCategoryViewDefines.h in Headers */ = {isa = PBXBuildFile; fileRef = 73FB31866D38C5A31179DE08FB3FCDB2 /* JXCategoryViewDefines.h */; settings = {ATTRIBUTES = (Public, ); }; }; A1C02A0C13BE4A139BC38BBE20217FA2 /* JXCategoryView-JXCategoryView in Resources */ = {isa = PBXBuildFile; fileRef = BB4F011171FCB76B1AEBE390F843E930 /* JXCategoryView-JXCategoryView */; }; - A1C41F38F77CA1B9ED641356A11F9438 /* NSBundle+YYAdd.m in Sources */ = {isa = PBXBuildFile; fileRef = C1E44A694DD59DB29196DD78FEDD5D95 /* NSBundle+YYAdd.m */; }; + A1C41F38F77CA1B9ED641356A11F9438 /* NSBundle+YYAdd.m in Sources */ = {isa = PBXBuildFile; fileRef = DEF50E39F73539D79DE0EE24D597BCC2 /* NSBundle+YYAdd.m */; }; A1DBE69F147126DE73D120F58C52B4B2 /* TUIEvaluationCell.h in Headers */ = {isa = PBXBuildFile; fileRef = 757BEFA20C7A216740F15BDA6826B4D2 /* TUIEvaluationCell.h */; settings = {ATTRIBUTES = (Public, ); }; }; - A1E44277704AD68E867FD7C955A6632D /* MJRefreshBackGifFooter.m in Sources */ = {isa = PBXBuildFile; fileRef = A9FE85154159BBC9DA7A3B5F56BF0E4F /* MJRefreshBackGifFooter.m */; }; - A2454462B76EE45C94E8D5C7EC928A1E /* KrcParser.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8097A0CFE095F6B88DFC00726F709043 /* KrcParser.swift */; }; + A1E44277704AD68E867FD7C955A6632D /* MJRefreshBackGifFooter.m in Sources */ = {isa = PBXBuildFile; fileRef = F3238A7705973F5D24304E387D6646F4 /* MJRefreshBackGifFooter.m */; }; + A2353141EEDB62BAD82E51BF0783173C /* histogram_enc.h in Headers */ = {isa = PBXBuildFile; fileRef = 24E85B1054FDBB3D58BDE7CDC036EFD9 /* histogram_enc.h */; settings = {ATTRIBUTES = (Project, ); }; }; + A2454462B76EE45C94E8D5C7EC928A1E /* KrcParser.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1872E3DC15A4A585A5D6B157E5353431 /* KrcParser.swift */; }; A28C8698007304A3B1E1BBD145D03C80 /* TUIConversationSelectDataProvider_Minimalist.h in Headers */ = {isa = PBXBuildFile; fileRef = C2147602278DF464D75720F3926C978E /* TUIConversationSelectDataProvider_Minimalist.h */; settings = {ATTRIBUTES = (Public, ); }; }; - A2F2DE8FA01256AAF0E4FFDF9C8ACE39 /* OSSSignerBase.m in Sources */ = {isa = PBXBuildFile; fileRef = 368529C6BDC7F1F1AAE0D6FE32887BDC /* OSSSignerBase.m */; }; - A305809A51C3D44F17934E60C7E0839A /* GPBApi.pbobjc.h in Headers */ = {isa = PBXBuildFile; fileRef = 6AC8605DB2F91055A98EDC9A4185FCE4 /* GPBApi.pbobjc.h */; settings = {ATTRIBUTES = (Public, ); }; }; - A3176DB51EA73D03577A270CCFF37DE9 /* ScoringMachineEx.swift in Sources */ = {isa = PBXBuildFile; fileRef = 44D299FD67E11862321D7F710B260C3D /* ScoringMachineEx.swift */; }; - A325C7E5098EB5641EF49D279EA9EF03 /* JXCategoryTitleView.m in Sources */ = {isa = PBXBuildFile; fileRef = 7FC482CCFC42F915F06023F8A7DF40E8 /* JXCategoryTitleView.m */; }; - A34F832763C924A0911D1E7797533EF8 /* NSDictionary+RACSequenceAdditions.h in Headers */ = {isa = PBXBuildFile; fileRef = 3387EAE707EA852914EB3CD0D69B1343 /* NSDictionary+RACSequenceAdditions.h */; settings = {ATTRIBUTES = (Public, ); }; }; + A2A1537F991F3BB1588DC2DECAA5EA90 /* Media.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 6E83C30EDB74218EA5F36BAAEA976F47 /* Media.xcassets */; }; + A2A1EC90455B7E81F29318699D701A96 /* QCloudHeadObjectRequest.m in Sources */ = {isa = PBXBuildFile; fileRef = 508983BAD4AE67AB61E3DFCBA3B75547 /* QCloudHeadObjectRequest.m */; }; + A2F2DE8FA01256AAF0E4FFDF9C8ACE39 /* OSSSignerBase.m in Sources */ = {isa = PBXBuildFile; fileRef = 47E10E0D6778A84F4226B56EA9B3EE54 /* OSSSignerBase.m */; }; + A305809A51C3D44F17934E60C7E0839A /* GPBApi.pbobjc.h in Headers */ = {isa = PBXBuildFile; fileRef = E638ADEEE618D9115549F970DEB31647 /* GPBApi.pbobjc.h */; settings = {ATTRIBUTES = (Public, ); }; }; + A305D73E42D1C3551F44C32E85C7AE49 /* SDImageCachesManagerOperation.h in Headers */ = {isa = PBXBuildFile; fileRef = 3E8B4B231A3F303B1FE0DC0673804179 /* SDImageCachesManagerOperation.h */; settings = {ATTRIBUTES = (Private, ); }; }; + A3176DB51EA73D03577A270CCFF37DE9 /* ScoringMachineEx.swift in Sources */ = {isa = PBXBuildFile; fileRef = 36F2ADBE477D20DCEFB2B7B11D9398BC /* ScoringMachineEx.swift */; }; + A325C7E5098EB5641EF49D279EA9EF03 /* JXCategoryTitleView.m in Sources */ = {isa = PBXBuildFile; fileRef = 4D50156FF02FF501BE9BE16E890E6F36 /* JXCategoryTitleView.m */; }; + A32C1CB2C8090B1CDBD60A3F269E6291 /* QCloudAbstractRequest.m in Sources */ = {isa = PBXBuildFile; fileRef = CAA846B08517159F1B9AFA67795013D3 /* QCloudAbstractRequest.m */; }; + A34F832763C924A0911D1E7797533EF8 /* NSDictionary+RACSequenceAdditions.h in Headers */ = {isa = PBXBuildFile; fileRef = E0B6C8455312D1E21D836A863FAEB6B1 /* NSDictionary+RACSequenceAdditions.h */; settings = {ATTRIBUTES = (Public, ); }; }; A3678ADE855E05137649DB3C40AC1726 /* TUIMediaView_Minimalist.m in Sources */ = {isa = PBXBuildFile; fileRef = 7A21DD9A7DE0469E7318C8B61E5363B3 /* TUIMediaView_Minimalist.m */; }; - A3716B6B67727A527D76218D7A8C4C0B /* RACCompoundDisposableProvider.d in Sources */ = {isa = PBXBuildFile; fileRef = 58B5188933EFE0E84F3B4D3F7BF43664 /* RACCompoundDisposableProvider.d */; }; + A3716B6B67727A527D76218D7A8C4C0B /* RACCompoundDisposableProvider.d in Sources */ = {isa = PBXBuildFile; fileRef = 3A88737F7B4E7160E58FFAA2E27780E9 /* RACCompoundDisposableProvider.d */; }; + A3809882E960B7CDBE3B9CD29108DA23 /* SDImageIOAnimatedCoder.h in Headers */ = {isa = PBXBuildFile; fileRef = FAC8BBDB51284975BAC168144CF24160 /* SDImageIOAnimatedCoder.h */; settings = {ATTRIBUTES = (Public, ); }; }; + A39098864124E903903D3D6A5505E7B0 /* mux.h in Headers */ = {isa = PBXBuildFile; fileRef = 70E963D3F3354A877AAEC8CCC24B927D /* mux.h */; settings = {ATTRIBUTES = (Public, ); }; }; A3909B8A8CCDF010EF00EA5E5E98BCEB /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = F91075A92425F75F02E0E1C8D455AF79 /* Foundation.framework */; }; - A3BD74698F85D9E1E91D0071CFFD9DF9 /* QGAnimatedImageDecodeConfig.h in Headers */ = {isa = PBXBuildFile; fileRef = 1C1DA722249DD04340455DFA86D43927 /* QGAnimatedImageDecodeConfig.h */; settings = {ATTRIBUTES = (Public, ); }; }; + A3BD74698F85D9E1E91D0071CFFD9DF9 /* QGAnimatedImageDecodeConfig.h in Headers */ = {isa = PBXBuildFile; fileRef = 5A669C34401252F978308F1576563A14 /* QGAnimatedImageDecodeConfig.h */; settings = {ATTRIBUTES = (Public, ); }; }; A3C0593AA171CDF13265995EE1C27679 /* TUIC2CChatViewController.h in Headers */ = {isa = PBXBuildFile; fileRef = 98FFB85987A25E738F2F8E252A56EB58 /* TUIC2CChatViewController.h */; settings = {ATTRIBUTES = (Public, ); }; }; A3C1D358E7E0DB52EAF1050F67D15699 /* TUIMergeMessageCell_Minimalist.m in Sources */ = {isa = PBXBuildFile; fileRef = 1E4A1EA0001525A567CA5C9A0ACD8D79 /* TUIMergeMessageCell_Minimalist.m */; }; - A407F1B14A4C6ACD00DA37BD363C9ADB /* LLHtmlWindow.h in Headers */ = {isa = PBXBuildFile; fileRef = B5D3F9F4DF3C1DC363F3C1747A0F042C /* LLHtmlWindow.h */; settings = {ATTRIBUTES = (Public, ); }; }; - A44C1B664D16CE42922D382B552CCDF5 /* YYTextLayout.m in Sources */ = {isa = PBXBuildFile; fileRef = 9DDCA8479C21E6C665854AB7A6C26862 /* YYTextLayout.m */; }; - A473E0B6F34CBE03B9E1F0511E140735 /* AvoidCrash.m in Sources */ = {isa = PBXBuildFile; fileRef = D421B73F2AB1AD9950928AAD24188E08 /* AvoidCrash.m */; }; + A407F1B14A4C6ACD00DA37BD363C9ADB /* LLHtmlWindow.h in Headers */ = {isa = PBXBuildFile; fileRef = 07FDA729CDF8A809667CE7E8744C07A9 /* LLHtmlWindow.h */; settings = {ATTRIBUTES = (Public, ); }; }; + A44C1B664D16CE42922D382B552CCDF5 /* YYTextLayout.m in Sources */ = {isa = PBXBuildFile; fileRef = 148CB482AC0BEB1AFFE5154991BEC4C4 /* YYTextLayout.m */; }; + A473E0B6F34CBE03B9E1F0511E140735 /* AvoidCrash.m in Sources */ = {isa = PBXBuildFile; fileRef = FD10571A0E69D1CF3DD44B0CA32A3B71 /* AvoidCrash.m */; }; A48B4E774BF0CC6A37149A99414D7972 /* TUIAttributedLabel.m in Sources */ = {isa = PBXBuildFile; fileRef = 454F9DFDA1065D194C8D1B3C486EF23E /* TUIAttributedLabel.m */; }; - A4CD275DADB3551201C2A05AD4BB269E /* NSEnumerator+RACSequenceAdditions.m in Sources */ = {isa = PBXBuildFile; fileRef = 2FE3D8E42EF97CBAA2153E6796B78ACC /* NSEnumerator+RACSequenceAdditions.m */; }; + A4CD275DADB3551201C2A05AD4BB269E /* NSEnumerator+RACSequenceAdditions.m in Sources */ = {isa = PBXBuildFile; fileRef = EBA00B33D07C2257E53459D1AA6DF78B /* NSEnumerator+RACSequenceAdditions.m */; }; A4EFF3A030165417C5D7BD5FC9A54416 /* TUIChatService_Minimalist.h in Headers */ = {isa = PBXBuildFile; fileRef = B0328F1C971A4B5D62BD91D769B98D0A /* TUIChatService_Minimalist.h */; settings = {ATTRIBUTES = (Public, ); }; }; A503385F27166BA89C1C760F7CB62384 /* TUIMessageController.h in Headers */ = {isa = PBXBuildFile; fileRef = E2E9DEFD66C96770DF6DFAE74BA2EE2A /* TUIMessageController.h */; settings = {ATTRIBUTES = (Public, ); }; }; - A50833B08706004695F22D20FB258019 /* RACSubscriptionScheduler.m in Sources */ = {isa = PBXBuildFile; fileRef = FEFC974F671B263EBF26A7BDD8953409 /* RACSubscriptionScheduler.m */; }; - A508F79AAC8CD67107DE7B2457764030 /* LLBaseTableViewController.h in Headers */ = {isa = PBXBuildFile; fileRef = 2C3B4D25E3B3EF56CE8D50A026C45575 /* LLBaseTableViewController.h */; settings = {ATTRIBUTES = (Public, ); }; }; - A511C366D4A885EBF7F0D8A3630104FC /* LLRouter+AppInfo.h in Headers */ = {isa = PBXBuildFile; fileRef = 170B4737D8EF99A8FA05C7A23B23F883 /* LLRouter+AppInfo.h */; settings = {ATTRIBUTES = (Public, ); }; }; + A50833B08706004695F22D20FB258019 /* RACSubscriptionScheduler.m in Sources */ = {isa = PBXBuildFile; fileRef = A7A6223A3CE26074CA9826D818FD6D9D /* RACSubscriptionScheduler.m */; }; + A508F79AAC8CD67107DE7B2457764030 /* LLBaseTableViewController.h in Headers */ = {isa = PBXBuildFile; fileRef = 6EDCA7092BC03B9E08248A523C81623F /* LLBaseTableViewController.h */; settings = {ATTRIBUTES = (Public, ); }; }; + A50D37FB316D9F8AC7CA949924792EC7 /* PrivacyInfo.xcprivacy in Resources */ = {isa = PBXBuildFile; fileRef = 1A23EF77097C6A1C74E776951B509E5B /* PrivacyInfo.xcprivacy */; }; + A511C366D4A885EBF7F0D8A3630104FC /* LLRouter+AppInfo.h in Headers */ = {isa = PBXBuildFile; fileRef = 1E43C0ADF881FD3563B72BA5623AB21B /* LLRouter+AppInfo.h */; settings = {ATTRIBUTES = (Public, ); }; }; + A511DD8DC9AACC15C9809C32736022F5 /* QCloudService.h in Headers */ = {isa = PBXBuildFile; fileRef = E18B499863F3BE8494CA3C4CA00806B4 /* QCloudService.h */; settings = {ATTRIBUTES = (Public, ); }; }; A5126F403ECF0AE36119C5B3BB2792F4 /* TUIConversationSelectController.h in Headers */ = {isa = PBXBuildFile; fileRef = 37D1B036F87F771DFD660BCC3CF71B90 /* TUIConversationSelectController.h */; settings = {ATTRIBUTES = (Public, ); }; }; - A5549AA24F3127285C539E4B76DD61E3 /* LLLeftTitleCell.h in Headers */ = {isa = PBXBuildFile; fileRef = 89786CFB0B3C5AF09F0063427794DCFF /* LLLeftTitleCell.h */; settings = {ATTRIBUTES = (Public, ); }; }; - A55698FB562D29144BD37E7A7DAB3C78 /* Logger.swift in Sources */ = {isa = PBXBuildFile; fileRef = 49FBD338226836B031A24A27762915F5 /* Logger.swift */; }; - A57A3BE00FE7CE8F25BB2AB8CB5BBEA4 /* LrcParser.swift in Sources */ = {isa = PBXBuildFile; fileRef = 35EA76B0EF001DAAAE68CB5B62F28883 /* LrcParser.swift */; }; - A583A30CEA07A0748B6D95D5D12FF5F2 /* UICollectionReusableView+RACSignalSupport.h in Headers */ = {isa = PBXBuildFile; fileRef = 1BD5CCBD233C9725E461C49442B1F843 /* UICollectionReusableView+RACSignalSupport.h */; settings = {ATTRIBUTES = (Public, ); }; }; + A54E948A6C110CA478341C95779F4F9C /* QCloudFileOffsetStream.h in Headers */ = {isa = PBXBuildFile; fileRef = 775560D20105CB51E7EF7E299897C02A /* QCloudFileOffsetStream.h */; settings = {ATTRIBUTES = (Public, ); }; }; + A5549AA24F3127285C539E4B76DD61E3 /* LLLeftTitleCell.h in Headers */ = {isa = PBXBuildFile; fileRef = BF20B12E834B2ED83365F8F857203CF1 /* LLLeftTitleCell.h */; settings = {ATTRIBUTES = (Public, ); }; }; + A55698FB562D29144BD37E7A7DAB3C78 /* Logger.swift in Sources */ = {isa = PBXBuildFile; fileRef = 23D543084AA38F3C3880C906EFA3B0C2 /* Logger.swift */; }; + A57A3BE00FE7CE8F25BB2AB8CB5BBEA4 /* LrcParser.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5ADCFD520A1AA47C58313C5F58E22176 /* LrcParser.swift */; }; + A583A30CEA07A0748B6D95D5D12FF5F2 /* UICollectionReusableView+RACSignalSupport.h in Headers */ = {isa = PBXBuildFile; fileRef = 836D47EDA8BEB432F379BD9A9BEC2AEB /* UICollectionReusableView+RACSignalSupport.h */; settings = {ATTRIBUTES = (Public, ); }; }; + A5875BA1D4230D53C00361710D077EB4 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = F91075A92425F75F02E0E1C8D455AF79 /* Foundation.framework */; }; A5A4A89D4912328ACFE850840C81AFCD /* TUIVideoReplyQuoteView.h in Headers */ = {isa = PBXBuildFile; fileRef = FEE1997B7EDDED81709C013F1C343020 /* TUIVideoReplyQuoteView.h */; settings = {ATTRIBUTES = (Public, ); }; }; - A5B6D2F21FDEEE7320A50D105D3282BB /* BRPickerView.bundle in Resources */ = {isa = PBXBuildFile; fileRef = B63BA3093E22820A65B90FF7FBB0962E /* BRPickerView.bundle */; }; + A5B6D2F21FDEEE7320A50D105D3282BB /* BRPickerView.bundle in Resources */ = {isa = PBXBuildFile; fileRef = 16C764907155092CA362EE87202CB7AC /* BRPickerView.bundle */; }; A5C6AEEDF7CE8F35ECB2433DB4BAA0FD /* TUIReplyMessageCell.m in Sources */ = {isa = PBXBuildFile; fileRef = FB1C741978B157373EE662BEA616C227 /* TUIReplyMessageCell.m */; }; - A5C8153E33B06145D0DB2DFAFC9D6467 /* LLScreenshotActionView.h in Headers */ = {isa = PBXBuildFile; fileRef = C82642F6DD1910B02E2CB7E3AB20324F /* LLScreenshotActionView.h */; settings = {ATTRIBUTES = (Public, ); }; }; + A5C8153E33B06145D0DB2DFAFC9D6467 /* LLScreenshotActionView.h in Headers */ = {isa = PBXBuildFile; fileRef = 8EFB87AFFBE3A61E5E0B068AA4508D41 /* LLScreenshotActionView.h */; settings = {ATTRIBUTES = (Public, ); }; }; A5E2EC70CE6A9FC7335573DD41E365FB /* TUICommonGroupInfoCellData_Minimalist.m in Sources */ = {isa = PBXBuildFile; fileRef = 3D349B4677392B69A14A120F95770225 /* TUICommonGroupInfoCellData_Minimalist.m */; }; A5FA9A0BBC68611F42DFBB6793732B2E /* TUIOrderCellData.h in Headers */ = {isa = PBXBuildFile; fileRef = 84F76A085CD6104D282D09A6AD4CA316 /* TUIOrderCellData.h */; settings = {ATTRIBUTES = (Public, ); }; }; - A5FD23174C48674A5CCD2F6B932CEF01 /* NSObject+YYAdd.h in Headers */ = {isa = PBXBuildFile; fileRef = 340D5C13BB9C695B9DA99E0ECDF548E4 /* NSObject+YYAdd.h */; settings = {ATTRIBUTES = (Public, ); }; }; - A5FF072E62B134B8816E19FB9240F843 /* GPBFieldMask.pbobjc.h in Headers */ = {isa = PBXBuildFile; fileRef = 103BA56FB41C6802EBB399ADDBC15525 /* GPBFieldMask.pbobjc.h */; settings = {ATTRIBUTES = (Public, ); }; }; + A5FD23174C48674A5CCD2F6B932CEF01 /* NSObject+YYAdd.h in Headers */ = {isa = PBXBuildFile; fileRef = FF9748894B8C35A1825C07C5F420B7C3 /* NSObject+YYAdd.h */; settings = {ATTRIBUTES = (Public, ); }; }; + A5FF072E62B134B8816E19FB9240F843 /* GPBFieldMask.pbobjc.h in Headers */ = {isa = PBXBuildFile; fileRef = A78E12FAA97079585B4D6DE0C45D8A6F /* GPBFieldMask.pbobjc.h */; settings = {ATTRIBUTES = (Public, ); }; }; A60D40B788496A29DFDF6F9DB519049F /* TUIOrderCell_Minimalist.h in Headers */ = {isa = PBXBuildFile; fileRef = A5E24F5FA1F54B91337C6669D431BE22 /* TUIOrderCell_Minimalist.h */; settings = {ATTRIBUTES = (Public, ); }; }; A60E2744E30FF5F78A3037C83103024D /* TUIBaseMessageControllerDelegate.h in Headers */ = {isa = PBXBuildFile; fileRef = 3E8C9936364E090EC4037ED3F5F40990 /* TUIBaseMessageControllerDelegate.h */; settings = {ATTRIBUTES = (Public, ); }; }; - A61C327D757A120970680467C85B53AE /* OSSDeleteObjectTaggingRequest.m in Sources */ = {isa = PBXBuildFile; fileRef = A0C0E0E71BC898B01785194BFAB0C194 /* OSSDeleteObjectTaggingRequest.m */; }; + A61051FD5085BE911E11C29BA0767073 /* QCloudCOSXMLDownloadObjectRequest.m in Sources */ = {isa = PBXBuildFile; fileRef = BAF83BAFBB271E58F6BD133128490A58 /* QCloudCOSXMLDownloadObjectRequest.m */; }; + A61C327D757A120970680467C85B53AE /* OSSDeleteObjectTaggingRequest.m in Sources */ = {isa = PBXBuildFile; fileRef = 650ECB455240EC2D4951420C5853FB71 /* OSSDeleteObjectTaggingRequest.m */; }; A63F84ECA6067F5AB271B8A351BD66CC /* UIKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 83AC327FDFB768874F13D3CD20C46095 /* UIKit.framework */; }; - A643679AC9795083558C6D8E33AF6151 /* JXCategoryBaseCell.h in Headers */ = {isa = PBXBuildFile; fileRef = 13FA732875D7053C925CF325B53FDB01 /* JXCategoryBaseCell.h */; settings = {ATTRIBUTES = (Public, ); }; }; - A6550B6FCD7840E718E0C3E81F11CF61 /* UIButton+YYWebImage.h in Headers */ = {isa = PBXBuildFile; fileRef = 57A76A0817AB9141CEAE4DF9EE1FCF2C /* UIButton+YYWebImage.h */; settings = {ATTRIBUTES = (Public, ); }; }; - A65BA83F178BD0897B4447E8E5285DA4 /* QGMP4HWDFileInfo.m in Sources */ = {isa = PBXBuildFile; fileRef = F583AFD8550AFE5A75B6F18B49C123E9 /* QGMP4HWDFileInfo.m */; }; - A69690C43A272A643A24944BB22368C5 /* YYTextAsyncLayer.m in Sources */ = {isa = PBXBuildFile; fileRef = D2B4F1EC84F075A17D49A81F1B6EBFB4 /* YYTextAsyncLayer.m */; }; - A6B4B302A0EAA86D83AD877DCFC48098 /* LLFilterDateView.m in Sources */ = {isa = PBXBuildFile; fileRef = F5C1AF703E379B65B318680A37DC3130 /* LLFilterDateView.m */; }; - A6C18639F320194DCC90DC340CEABA73 /* AssetsLibrary.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = E86BC2B5D47B2EA61ED76887B7F31B53 /* AssetsLibrary.framework */; }; - A6CD5C47D3F877E525C82A20BD3813AF /* mux.h in Headers */ = {isa = PBXBuildFile; fileRef = 0BCA7D797DBE802EE6DA6AF8A258915C /* mux.h */; settings = {ATTRIBUTES = (Public, ); }; }; - A6DFB50DD4199408EC4C671915BBD675 /* LLHierarchyViewController.h in Headers */ = {isa = PBXBuildFile; fileRef = 654CFA573EECA8E3AC040B10A204A348 /* LLHierarchyViewController.h */; settings = {ATTRIBUTES = (Public, ); }; }; - A6E3D156C99FA7723B8BE749C7A6ACE3 /* PrivacyInfo.xcprivacy in Resources */ = {isa = PBXBuildFile; fileRef = A43B8E8CEA964FCB6B496724A7B22DDC /* PrivacyInfo.xcprivacy */; }; - A71E222C76A20B18600A6DE4091CFB0E /* SSZipArchive.m in Sources */ = {isa = PBXBuildFile; fileRef = 982AB3BF6B2628EAF0F6B75E9C15E3F8 /* SSZipArchive.m */; }; - A77513C2862A446F87DAB1690C77128D /* GPBFieldMask.pbobjc.m in Sources */ = {isa = PBXBuildFile; fileRef = C003BEE3608B633E918C90327DD4CE69 /* GPBFieldMask.pbobjc.m */; settings = {COMPILER_FLAGS = "-fno-objc-arc"; }; }; - A798D4549AEDBC29A35E0B5BBF30F65E /* LLSettingWindow.h in Headers */ = {isa = PBXBuildFile; fileRef = F5310451521A581CD74E4B3F0E27D2F7 /* LLSettingWindow.h */; settings = {ATTRIBUTES = (Public, ); }; }; + A643679AC9795083558C6D8E33AF6151 /* JXCategoryBaseCell.h in Headers */ = {isa = PBXBuildFile; fileRef = D60397114C329033F3EC1FE6C91F841A /* JXCategoryBaseCell.h */; settings = {ATTRIBUTES = (Public, ); }; }; + A6550B6FCD7840E718E0C3E81F11CF61 /* UIButton+YYWebImage.h in Headers */ = {isa = PBXBuildFile; fileRef = 31E61363BD9694569DD3E9A63B4E4511 /* UIButton+YYWebImage.h */; settings = {ATTRIBUTES = (Public, ); }; }; + A65BA83F178BD0897B4447E8E5285DA4 /* QGMP4HWDFileInfo.m in Sources */ = {isa = PBXBuildFile; fileRef = 5F7A26AF65BC509BC99AA1FC85C51745 /* QGMP4HWDFileInfo.m */; }; + A68865C72552A210385AE93116D82663 /* enc_mips32.c in Sources */ = {isa = PBXBuildFile; fileRef = A1FF9203E1CA53CFB391D1B29B255EFB /* enc_mips32.c */; settings = {COMPILER_FLAGS = "-D_THREAD_SAFE -fno-objc-arc"; }; }; + A69690C43A272A643A24944BB22368C5 /* YYTextAsyncLayer.m in Sources */ = {isa = PBXBuildFile; fileRef = E8C3E9C4EBA37ECB192FF24CDEC1BC61 /* YYTextAsyncLayer.m */; }; + A6B4B302A0EAA86D83AD877DCFC48098 /* LLFilterDateView.m in Sources */ = {isa = PBXBuildFile; fileRef = 61F21BBE5CAA353DB16B76CF0B6E2AEA /* LLFilterDateView.m */; }; + A6DFB50DD4199408EC4C671915BBD675 /* LLHierarchyViewController.h in Headers */ = {isa = PBXBuildFile; fileRef = 315FC00907D3B61F7085A204AF7583FD /* LLHierarchyViewController.h */; settings = {ATTRIBUTES = (Public, ); }; }; + A71E222C76A20B18600A6DE4091CFB0E /* SSZipArchive.m in Sources */ = {isa = PBXBuildFile; fileRef = 8884A54CC62EA704007A7C723CFD1665 /* SSZipArchive.m */; }; + A7234DE6C34F7963B730FCD90961EA60 /* QCloudPutObjectRequest.h in Headers */ = {isa = PBXBuildFile; fileRef = 7AD876C2E305B26F51D1C62B84BC2F1A /* QCloudPutObjectRequest.h */; settings = {ATTRIBUTES = (Public, ); }; }; + A7319C0A38A05660801DFC829A8C3689 /* QCloudBundle.h in Headers */ = {isa = PBXBuildFile; fileRef = 42E9299398EEF93DC318C686625437D5 /* QCloudBundle.h */; settings = {ATTRIBUTES = (Public, ); }; }; + A73EC7E8F57613F289B093884FAF3875 /* QCloudClassInfo.h in Headers */ = {isa = PBXBuildFile; fileRef = 54D1057009A2FE4069E1C199BCBF7C28 /* QCloudClassInfo.h */; settings = {ATTRIBUTES = (Public, ); }; }; + A76446BBD07801DDA6DED159B4DD48A5 /* SDWebImageDownloaderDecryptor.m in Sources */ = {isa = PBXBuildFile; fileRef = 3C0BD0C10DA136133A117EA08236E700 /* SDWebImageDownloaderDecryptor.m */; }; + A77513C2862A446F87DAB1690C77128D /* GPBFieldMask.pbobjc.m in Sources */ = {isa = PBXBuildFile; fileRef = B21FAEC52778928CA42CDA254919B55B /* GPBFieldMask.pbobjc.m */; settings = {COMPILER_FLAGS = "-fno-objc-arc"; }; }; + A77A96B2165EBFD1E0D1F32C9D00DEA9 /* lossless.h in Headers */ = {isa = PBXBuildFile; fileRef = 4841B1E779CC86B9DCFEEE99A605C413 /* lossless.h */; settings = {ATTRIBUTES = (Project, ); }; }; + A798D4549AEDBC29A35E0B5BBF30F65E /* LLSettingWindow.h in Headers */ = {isa = PBXBuildFile; fileRef = 6825071B8D6EE88F46C7CF6C8D25B734 /* LLSettingWindow.h */; settings = {ATTRIBUTES = (Public, ); }; }; A7A1EC2B3C52F1E3109913BEE0C0A0CD /* TUIFoldConversationListDataProvider_Minimalist.h in Headers */ = {isa = PBXBuildFile; fileRef = 849DEB0595FDC54CF25BCD9A3B3BF07A /* TUIFoldConversationListDataProvider_Minimalist.h */; settings = {ATTRIBUTES = (Public, ); }; }; A7BDEB5D315249538BB28746C4991AC9 /* MobileCoreServices.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 6A4B0155D81BD9992D04820FA803A6DE /* MobileCoreServices.framework */; }; - A7E260770BA88D7163467308544077B1 /* LLLogFilterView.h in Headers */ = {isa = PBXBuildFile; fileRef = D04A0233439BC2F162850F68B07CCB3C /* LLLogFilterView.h */; settings = {ATTRIBUTES = (Public, ); }; }; - A7F1684AFC4407027588736BD9DE3244 /* lossless_enc.c in Sources */ = {isa = PBXBuildFile; fileRef = 1BA6DF5BE5A1DBE7A5CAF475B59DC668 /* lossless_enc.c */; settings = {COMPILER_FLAGS = "-D_THREAD_SAFE -fno-objc-arc"; }; }; + A7E260770BA88D7163467308544077B1 /* LLLogFilterView.h in Headers */ = {isa = PBXBuildFile; fileRef = 4E863240CED41D55CF689930006088FC /* LLLogFilterView.h */; settings = {ATTRIBUTES = (Public, ); }; }; A80C99AEA35E16F621C66C2CF026739A /* UIAlertController+TUICustomStyle.m in Sources */ = {isa = PBXBuildFile; fileRef = 5EC8D55D1FF5DA885E9FF8AE8E2D7517 /* UIAlertController+TUICustomStyle.m */; }; A825D29D9DEA653F6681156B2C0D79BB /* TUIGroupInfoDataProvider_Minimalist.m in Sources */ = {isa = PBXBuildFile; fileRef = 78C38A473ABFCB87E5984F46822129BA /* TUIGroupInfoDataProvider_Minimalist.m */; }; - A826A5E0505880B690A0B1877D27CF17 /* NSArray+RACSequenceAdditions.m in Sources */ = {isa = PBXBuildFile; fileRef = 63783C8C7D8459660065E5F923BD3F1F /* NSArray+RACSequenceAdditions.m */; }; + A826A5E0505880B690A0B1877D27CF17 /* NSArray+RACSequenceAdditions.m in Sources */ = {isa = PBXBuildFile; fileRef = 2BAAE3507872C8B9A98EDE04DD2B674E /* NSArray+RACSequenceAdditions.m */; }; A82BDBFDFC750206683DC1ED93BC53BF /* TUIAIDenoiseSignatureManager.m in Sources */ = {isa = PBXBuildFile; fileRef = 23282B13250A6E08A1364B956B7E310B /* TUIAIDenoiseSignatureManager.m */; }; - A82C6D22F0644F05ED0987563683EEC6 /* SDImageCachesManager.h in Headers */ = {isa = PBXBuildFile; fileRef = 3D57A82C4C9FC2CDB44E1501EE0A2693 /* SDImageCachesManager.h */; settings = {ATTRIBUTES = (Public, ); }; }; + A843C9FDBFB04D2F939AF0E87C538A4A /* TUIWeakProxy.h in Headers */ = {isa = PBXBuildFile; fileRef = 8C7BEF24C1C8967E18F0BE66B0FE3D0F /* TUIWeakProxy.h */; settings = {ATTRIBUTES = (Public, ); }; }; A85753CD3378DA1E2F2C45F4EEC5F48D /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = F91075A92425F75F02E0E1C8D455AF79 /* Foundation.framework */; }; - A85C7760CC82EF9C2F68544C581744F7 /* YYLabel.m in Sources */ = {isa = PBXBuildFile; fileRef = 8747BCAED6A317AE8A6FF8F1BDF2AD28 /* YYLabel.m */; }; - A86CC1AFDFDD692DC4EE66F57C0F39E6 /* UIScrollView+MJRefresh.m in Sources */ = {isa = PBXBuildFile; fileRef = BD6C1F056BABA6595A64AC4C6F437CBF /* UIScrollView+MJRefresh.m */; }; + A85C7760CC82EF9C2F68544C581744F7 /* YYLabel.m in Sources */ = {isa = PBXBuildFile; fileRef = 631F823FA56A6BB0323A5521AB2017B5 /* YYLabel.m */; }; + A86CC1AFDFDD692DC4EE66F57C0F39E6 /* UIScrollView+MJRefresh.m in Sources */ = {isa = PBXBuildFile; fileRef = 83B6710C39A209D61985C1FF3B2AE5E1 /* UIScrollView+MJRefresh.m */; }; A8792B6A24CD30D0C14857D9544107BE /* TUIConversation-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 61E71E5AFC1EED7DE1FC6729D0DE6108 /* TUIConversation-dummy.m */; }; - A8AD3B5507610591B1DDAAD9079CE895 /* YYTextEffectWindow.m in Sources */ = {isa = PBXBuildFile; fileRef = A85DF892F37C25E8A82270F153585F56 /* YYTextEffectWindow.m */; }; - A8B2175200EA398DB4BD83C9333AF6C2 /* vp8li_enc.h in Headers */ = {isa = PBXBuildFile; fileRef = 0A62076422015F139EB015346368315A /* vp8li_enc.h */; settings = {ATTRIBUTES = (Project, ); }; }; + A8AD3B5507610591B1DDAAD9079CE895 /* YYTextEffectWindow.m in Sources */ = {isa = PBXBuildFile; fileRef = F0AA041A13B213C33E04A62038E6212E /* YYTextEffectWindow.m */; }; + A8C015843661CCFAB75E09249E383989 /* QCloudUploadObjectResult.m in Sources */ = {isa = PBXBuildFile; fileRef = 069F96CE0DAEF6A9FE35804AA7AE93DB /* QCloudUploadObjectResult.m */; }; A8C1CF3AC8D381A25AB42ECB249456DD /* TUIMotionManager.h in Headers */ = {isa = PBXBuildFile; fileRef = D65D2E87DDCE429CB28A60DFC7C2356D /* TUIMotionManager.h */; settings = {ATTRIBUTES = (Public, ); }; }; - A8D22F3E1F684024B6175A5424FA026A /* OSSCancellationTokenSource.m in Sources */ = {isa = PBXBuildFile; fileRef = 75AD2F2F51F9CDB57C8CFC1E3D854BF4 /* OSSCancellationTokenSource.m */; }; - A8E186B1FE4B17DA0502C02E03CA8A07 /* YBIBVideoData.h in Headers */ = {isa = PBXBuildFile; fileRef = 0DBED08975EC04695D0471F24E5EC0C5 /* YBIBVideoData.h */; settings = {ATTRIBUTES = (Public, ); }; }; - A8E6366498BA4314BB4D850F0A3B22F4 /* OSSInputStreamHelper.h in Headers */ = {isa = PBXBuildFile; fileRef = 00A291A2B72EA4E6FAEDE7232917E9FB /* OSSInputStreamHelper.h */; settings = {ATTRIBUTES = (Public, ); }; }; - A90260F860E51EC89130250EA3E61F22 /* SSZipArchive-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 13F19568DAB9768DEED990AD23257476 /* SSZipArchive-dummy.m */; }; - A9071F54289564382DCD37D03E09EA0A /* RACSignalProvider.d in Sources */ = {isa = PBXBuildFile; fileRef = B44B0A704748E5F5EE4F9F8C88B789C3 /* RACSignalProvider.d */; }; - A90B103B83B99443B4D33C61DFC4EF7D /* OSSSignUtils.m in Sources */ = {isa = PBXBuildFile; fileRef = 6F278D6855CB743D06DF092548A744D1 /* OSSSignUtils.m */; }; - A91B5CDC65167AFEEA4C4DBB6192F767 /* LLToastUtils.m in Sources */ = {isa = PBXBuildFile; fileRef = F747EE137563FC39B2250916416D7F2D /* LLToastUtils.m */; }; - A93021BCE0BEBE91764ED3D4FE1B0019 /* NSObject+LL_Hierarchy.h in Headers */ = {isa = PBXBuildFile; fileRef = A687BED20C7D536316FC3A7D7D95ADA9 /* NSObject+LL_Hierarchy.h */; settings = {ATTRIBUTES = (Public, ); }; }; - A965EBDF43C882EEACB64A5D77FA415A /* UIImage+MemoryCacheCost.h in Headers */ = {isa = PBXBuildFile; fileRef = C811656C4254591CAAD70ACF5AFBF597 /* UIImage+MemoryCacheCost.h */; settings = {ATTRIBUTES = (Public, ); }; }; - A978F83A9DFDFE430AE04EC1CAB91913 /* thread_utils.h in Headers */ = {isa = PBXBuildFile; fileRef = 7BFAC4ADECF889483CD444EFD2238929 /* thread_utils.h */; settings = {ATTRIBUTES = (Project, ); }; }; - A982D8F3722564E5E64643BF5415CB88 /* SDImageFramePool.m in Sources */ = {isa = PBXBuildFile; fileRef = 5BE4183EB9DA3DD05163547DECF0939C /* SDImageFramePool.m */; }; + A8D22F3E1F684024B6175A5424FA026A /* OSSCancellationTokenSource.m in Sources */ = {isa = PBXBuildFile; fileRef = 52D76EA9F9359DD8E0593C7B0696A688 /* OSSCancellationTokenSource.m */; }; + A8E186B1FE4B17DA0502C02E03CA8A07 /* YBIBVideoData.h in Headers */ = {isa = PBXBuildFile; fileRef = 976641C70166B3DDE3CFAEFD61C325C7 /* YBIBVideoData.h */; settings = {ATTRIBUTES = (Public, ); }; }; + A8E6366498BA4314BB4D850F0A3B22F4 /* OSSInputStreamHelper.h in Headers */ = {isa = PBXBuildFile; fileRef = 05F2E80C39D2DF3A04F2F806BFA2D391 /* OSSInputStreamHelper.h */; settings = {ATTRIBUTES = (Public, ); }; }; + A8F940FE5B7AC6C584CA84D7D4ADD3DE /* SDAnimatedImage.h in Headers */ = {isa = PBXBuildFile; fileRef = 59A9ED22FE2FE804CA389E6D8653E544 /* SDAnimatedImage.h */; settings = {ATTRIBUTES = (Public, ); }; }; + A90260F860E51EC89130250EA3E61F22 /* SSZipArchive-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 14DBE1B6DBE5D9646D9DD05011D55B51 /* SSZipArchive-dummy.m */; }; + A903401014698F66E1973C62DB4EE14E /* QCloudCOSXMLService.m in Sources */ = {isa = PBXBuildFile; fileRef = 789D9C60CEC14184D954B2E6F6750860 /* QCloudCOSXMLService.m */; }; + A9071F54289564382DCD37D03E09EA0A /* RACSignalProvider.d in Sources */ = {isa = PBXBuildFile; fileRef = 89DBFBD73EA2E42ACCC0C09C32089424 /* RACSignalProvider.d */; }; + A90B103B83B99443B4D33C61DFC4EF7D /* OSSSignUtils.m in Sources */ = {isa = PBXBuildFile; fileRef = 25E296C16D1E5CA8A229C3CE3304F567 /* OSSSignUtils.m */; }; + A91B5CDC65167AFEEA4C4DBB6192F767 /* LLToastUtils.m in Sources */ = {isa = PBXBuildFile; fileRef = BB4A42C5906BCDBC119A793E08C16200 /* LLToastUtils.m */; }; + A93021BCE0BEBE91764ED3D4FE1B0019 /* NSObject+LL_Hierarchy.h in Headers */ = {isa = PBXBuildFile; fileRef = 6E322BD5C5A5DEF2120CFC5FA8F75A03 /* NSObject+LL_Hierarchy.h */; settings = {ATTRIBUTES = (Public, ); }; }; A99E684297B033490ED7F4319EC39490 /* CoreFoundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = BDCD3DDCE37ACFD1BDD612F5969870AA /* CoreFoundation.framework */; }; - A9C90BDA47752EB49496311AB0547462 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = F91075A92425F75F02E0E1C8D455AF79 /* Foundation.framework */; }; - A9C93AF46B2CFFCF6CEA58CF1F317800 /* SDImageCoder.m in Sources */ = {isa = PBXBuildFile; fileRef = 5BD5FA8A96D9D23D9211395CCA8A4F9B /* SDImageCoder.m */; }; - A9C9D42351DCF33F4B3857A1C5B5F34B /* anim_encode.c in Sources */ = {isa = PBXBuildFile; fileRef = 2154EC194925378F4B4970367A60560E /* anim_encode.c */; settings = {COMPILER_FLAGS = "-D_THREAD_SAFE -fno-objc-arc"; }; }; + A9B2532EBDF8BCFE64D39A9E985FD640 /* filters_neon.c in Sources */ = {isa = PBXBuildFile; fileRef = E291D433E8515858FE063A147D01483D /* filters_neon.c */; settings = {COMPILER_FLAGS = "-D_THREAD_SAFE -fno-objc-arc"; }; }; + A9C9D83007FC719DEC2B09C3A3C7516D /* upsampling_mips_dsp_r2.c in Sources */ = {isa = PBXBuildFile; fileRef = 9D4E72E2610B992A55D6BDD182B4D44D /* upsampling_mips_dsp_r2.c */; settings = {COMPILER_FLAGS = "-D_THREAD_SAFE -fno-objc-arc"; }; }; + A9F71C1FA433B0D5A1001A75D559458D /* lossless.c in Sources */ = {isa = PBXBuildFile; fileRef = 49487E6AF0649F3A2ABFA50CA196A2B6 /* lossless.c */; settings = {COMPILER_FLAGS = "-D_THREAD_SAFE -fno-objc-arc"; }; }; AA0A898B94E21A15C8C5F9C1D95EF6ED /* TUIMergeReplyQuoteView_Minimalist.m in Sources */ = {isa = PBXBuildFile; fileRef = 4611EA05FD8DE6B4D5D0A3CA495CDE90 /* TUIMergeReplyQuoteView_Minimalist.m */; }; AA20914B6700006115A9982CB3371DB0 /* TUIBaseChatViewController+ProtectedAPI.h in Headers */ = {isa = PBXBuildFile; fileRef = 0D548526C93C538E41E3CFF4945585BD /* TUIBaseChatViewController+ProtectedAPI.h */; settings = {ATTRIBUTES = (Public, ); }; }; - AA22C5CAB0EC8FA08492A7F38407BCA5 /* SDImageTransformer.h in Headers */ = {isa = PBXBuildFile; fileRef = 1006B55F4244FD34CAB86BE7FC557622 /* SDImageTransformer.h */; settings = {ATTRIBUTES = (Public, ); }; }; - AA35A30759B66CC0227A9B7A9E9F6D66 /* QGVAPlayer.h in Headers */ = {isa = PBXBuildFile; fileRef = 5FB1A41894B3062E2B83982585206CA4 /* QGVAPlayer.h */; settings = {ATTRIBUTES = (Public, ); }; }; - AA3D7F8EE07FC337044F13DD1A8FC4D7 /* LLScreenshotViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 3255A026DBC0318EFC46551B68D63032 /* LLScreenshotViewController.m */; }; - AA4CECA3798CE0C84CB7CD5F342AC4E3 /* YBIBToolViewHandler.m in Sources */ = {isa = PBXBuildFile; fileRef = 6CE45F49ED4CFC035A2719F21DAF4F22 /* YBIBToolViewHandler.m */; }; - AA6CE6B93C8FA84C482D8648986E4D79 /* UIImage+WebP.m in Sources */ = {isa = PBXBuildFile; fileRef = AB553709600E3E065D5B17480C474C15 /* UIImage+WebP.m */; }; - AA8300B33346BFAB1E37B95405F535AD /* alpha_processing_sse41.c in Sources */ = {isa = PBXBuildFile; fileRef = C77AACE739BCE1A5E9D096C6E6898494 /* alpha_processing_sse41.c */; settings = {COMPILER_FLAGS = "-D_THREAD_SAFE -fno-objc-arc"; }; }; - AA9883CA105A3DBEEC0EB4A4619D158B /* YBImageBrowser-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = 60E714F82EE222A0F63630D61B959190 /* YBImageBrowser-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; + AA35A30759B66CC0227A9B7A9E9F6D66 /* QGVAPlayer.h in Headers */ = {isa = PBXBuildFile; fileRef = F19844E57C069F103596F7D39BD46525 /* QGVAPlayer.h */; settings = {ATTRIBUTES = (Public, ); }; }; + AA3D7F8EE07FC337044F13DD1A8FC4D7 /* LLScreenshotViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 62CF371FE27BDFEAF25D8F9228D616A6 /* LLScreenshotViewController.m */; }; + AA3DDA0FF81918CB019B91AD590EB186 /* unzip.c in Sources */ = {isa = PBXBuildFile; fileRef = 0BBE3E24D7890459A0F0A8103974FD41 /* unzip.c */; }; + AA4CECA3798CE0C84CB7CD5F342AC4E3 /* YBIBToolViewHandler.m in Sources */ = {isa = PBXBuildFile; fileRef = 0BAE364C0ED239A588749ADAB7F2593F /* YBIBToolViewHandler.m */; }; + AA6CE6B93C8FA84C482D8648986E4D79 /* UIImage+WebP.m in Sources */ = {isa = PBXBuildFile; fileRef = 502439F27906B715098E164CB607F37D /* UIImage+WebP.m */; }; + AA9883CA105A3DBEEC0EB4A4619D158B /* YBImageBrowser-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = F2D15662858FD437C6A400E9069E0C17 /* YBImageBrowser-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; AAC91B42BB4C780D245E2E0FFBAA7D0F /* TUIEmojiConfig.m in Sources */ = {isa = PBXBuildFile; fileRef = AA2FB3E6D8ADC13685158B6D8FE69523 /* TUIEmojiConfig.m */; }; - AAE556983AE3E026D5DE1BC5293242F5 /* LLTitleCellView.m in Sources */ = {isa = PBXBuildFile; fileRef = F819E968F4ACA14B3567C60C45EC87DB /* LLTitleCellView.m */; }; - AAF2B7BD4C56295DBA1BB6039AC0EDD4 /* ZipArchive.h in Headers */ = {isa = PBXBuildFile; fileRef = 1C203BA082EC1DA4047762B2C81E58B9 /* ZipArchive.h */; settings = {ATTRIBUTES = (Project, ); }; }; - AAFF52BFB654564326D45F7BC6C7C1A2 /* RACTestScheduler.h in Headers */ = {isa = PBXBuildFile; fileRef = 899502FBB6B6D644524A81FACD02E803 /* RACTestScheduler.h */; settings = {ATTRIBUTES = (Public, ); }; }; + AAE556983AE3E026D5DE1BC5293242F5 /* LLTitleCellView.m in Sources */ = {isa = PBXBuildFile; fileRef = 4BE6BE51B3655D97259F6FA6512BF9A7 /* LLTitleCellView.m */; }; + AAEB1E829AAA33B5EC656D766E89B767 /* QCloudSupervisorySession.m in Sources */ = {isa = PBXBuildFile; fileRef = D477CD6410C7FF4D1DD1B7801611179D /* QCloudSupervisorySession.m */; }; + AAF2B7BD4C56295DBA1BB6039AC0EDD4 /* ZipArchive.h in Headers */ = {isa = PBXBuildFile; fileRef = 513C0A6E6774AB5C5A27949D53C8E9E7 /* ZipArchive.h */; settings = {ATTRIBUTES = (Project, ); }; }; + AAFF52BFB654564326D45F7BC6C7C1A2 /* RACTestScheduler.h in Headers */ = {isa = PBXBuildFile; fileRef = AD3260D683FB91AB5E1C93B0A64A26BE /* RACTestScheduler.h */; settings = {ATTRIBUTES = (Public, ); }; }; AB21A22A5A7DB8212F62286E0A97335C /* TUIMergeReplyQuoteView.h in Headers */ = {isa = PBXBuildFile; fileRef = 47220AC1D156A75328B1EB3A111750D5 /* TUIMergeReplyQuoteView.h */; settings = {ATTRIBUTES = (Public, ); }; }; - AB277214CEA16AC13F50DE8C2697F1E0 /* LLWindowManager+Location.h in Headers */ = {isa = PBXBuildFile; fileRef = E2169C728ECA5EC036D1CD033A2011A5 /* LLWindowManager+Location.h */; settings = {ATTRIBUTES = (Public, ); }; }; + AB277214CEA16AC13F50DE8C2697F1E0 /* LLWindowManager+Location.h in Headers */ = {isa = PBXBuildFile; fileRef = 0793A27AE39621C7A440276E1D066FB7 /* LLWindowManager+Location.h */; settings = {ATTRIBUTES = (Public, ); }; }; AB50C532069CE971D8B476038838EF00 /* TUIChatMediaDataProvider.m in Sources */ = {isa = PBXBuildFile; fileRef = B995F64C2759E6ADA670C67D6AD2F04A /* TUIChatMediaDataProvider.m */; }; AB59B540184D69D53E5107ADB060654F /* QuickLook.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = A67A5C6CBAB5BF67506C7A70F12AB11A /* QuickLook.framework */; }; AB9A89C83F20056EF5282DF4A19CF1C3 /* TUIChatService_Minimalist.m in Sources */ = {isa = PBXBuildFile; fileRef = 85401C39B0308D744C4AF607784E840B /* TUIChatService_Minimalist.m */; }; - AB9EE1CF134ED91269437197079AA155 /* MKAnnotationView+YYWebImage.h in Headers */ = {isa = PBXBuildFile; fileRef = 8A1D8ADFC778F8EED6176108D81AB894 /* MKAnnotationView+YYWebImage.h */; settings = {ATTRIBUTES = (Public, ); }; }; - ABB4322FE068E8DBEC45FCDC1418F01C /* SDAnimatedImageView.h in Headers */ = {isa = PBXBuildFile; fileRef = 2B74B65AA07714AC14A8E9B86A3A4D3F /* SDAnimatedImageView.h */; settings = {ATTRIBUTES = (Public, ); }; }; - ABC1AF45D459CF87075F83085EEB0993 /* SVGAVectorLayer.h in Headers */ = {isa = PBXBuildFile; fileRef = 354C3C21A292F214B8BE56FA99EBCC14 /* SVGAVectorLayer.h */; settings = {ATTRIBUTES = (Public, ); }; }; - ABDF2546C46AA0359E468651D3CBF26F /* RACTupleSequence.m in Sources */ = {isa = PBXBuildFile; fileRef = D318B214A7C1B1081D57579C4DD9F600 /* RACTupleSequence.m */; }; - AC0005CB442C4315F753DD394B2E2F33 /* Model.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4CDB22E59EA8FC62CC575A7919518A56 /* Model.swift */; }; - AC1A43C798EF5A45415A5324DF801279 /* enc_msa.c in Sources */ = {isa = PBXBuildFile; fileRef = 07E79ADDC5F4FE489A6B2E76CF9172BB /* enc_msa.c */; settings = {COMPILER_FLAGS = "-D_THREAD_SAFE -fno-objc-arc"; }; }; - AC5BD66D1A8252977C95F6D166130C8E /* ReconnectTimer.m in Sources */ = {isa = PBXBuildFile; fileRef = 2B877BD7BC304000D4B0BE7DCB6D53C0 /* ReconnectTimer.m */; }; - AC64486F607707ADC4C46C46EF281BBF /* OSSTaskCompletionSource.h in Headers */ = {isa = PBXBuildFile; fileRef = B5D3F03AAA3E760C3B8E3678058C233C /* OSSTaskCompletionSource.h */; settings = {ATTRIBUTES = (Public, ); }; }; - AC86A56E69976858BB0B5D95069FB48F /* OSSV4Signer.m in Sources */ = {isa = PBXBuildFile; fileRef = EBD6D848881BA6A6A09320745B3C89A7 /* OSSV4Signer.m */; }; - AC886F52E3E61183AC99820BFEFBC00D /* QGVAPSafeMutableDictionary.m in Sources */ = {isa = PBXBuildFile; fileRef = 82562587B511A509383A8D72854A5F25 /* QGVAPSafeMutableDictionary.m */; }; - AC8B2028B465E32EE6264C089B044814 /* FMDatabase.h in Headers */ = {isa = PBXBuildFile; fileRef = 28C1495CD5448A6EFED38F45A527251B /* FMDatabase.h */; settings = {ATTRIBUTES = (Public, ); }; }; - AC93B2FE9098DCFEE6AD4288102FC004 /* GPBWellKnownTypes.m in Sources */ = {isa = PBXBuildFile; fileRef = FD40C551F46673EDF0A2D2C24F073D6B /* GPBWellKnownTypes.m */; settings = {COMPILER_FLAGS = "-fno-objc-arc"; }; }; - ACA3E8B9182B9BD918ACD839AB3C9ACE /* BRAddressModel.m in Sources */ = {isa = PBXBuildFile; fileRef = 6E2A3F933B5FE68555BBEB51008F6DC9 /* BRAddressModel.m */; }; - ACB58EBCB043F97F51F3B9821FB5B86F /* SDmetamacros.h in Headers */ = {isa = PBXBuildFile; fileRef = EEC83944AE9DC1EDD7A3475F7B291C15 /* SDmetamacros.h */; settings = {ATTRIBUTES = (Private, ); }; }; + AB9EE1CF134ED91269437197079AA155 /* MKAnnotationView+YYWebImage.h in Headers */ = {isa = PBXBuildFile; fileRef = A3AE0BCA7468C1DE252BB5E2104CBA32 /* MKAnnotationView+YYWebImage.h */; settings = {ATTRIBUTES = (Public, ); }; }; + ABBAABCB6652CED048083FF2C67F1447 /* filters_msa.c in Sources */ = {isa = PBXBuildFile; fileRef = 14837271B0CCF90097B6148F909B5838 /* filters_msa.c */; settings = {COMPILER_FLAGS = "-D_THREAD_SAFE -fno-objc-arc"; }; }; + ABC1AF45D459CF87075F83085EEB0993 /* SVGAVectorLayer.h in Headers */ = {isa = PBXBuildFile; fileRef = B2B53396E81143B3CF52682ECBF19B9F /* SVGAVectorLayer.h */; settings = {ATTRIBUTES = (Public, ); }; }; + ABDF2546C46AA0359E468651D3CBF26F /* RACTupleSequence.m in Sources */ = {isa = PBXBuildFile; fileRef = 3B15130A662ED9AC1282838D3D5AAF5A /* RACTupleSequence.m */; }; + AC0005CB442C4315F753DD394B2E2F33 /* Model.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8B073F94C3CA83EAB308C132CDAB89E5 /* Model.swift */; }; + AC5BD66D1A8252977C95F6D166130C8E /* ReconnectTimer.m in Sources */ = {isa = PBXBuildFile; fileRef = 1D76AFCC9DA97C81EEFD8C284AC66766 /* ReconnectTimer.m */; }; + AC64486F607707ADC4C46C46EF281BBF /* OSSTaskCompletionSource.h in Headers */ = {isa = PBXBuildFile; fileRef = B90E60B1CFDBCB3F2F1CE555E8427A14 /* OSSTaskCompletionSource.h */; settings = {ATTRIBUTES = (Public, ); }; }; + AC66653C82A16808314C853AFB0F3121 /* sharpyuv_neon.c in Sources */ = {isa = PBXBuildFile; fileRef = EC8EDA2AD254FBD42815A4AF21830A39 /* sharpyuv_neon.c */; settings = {COMPILER_FLAGS = "-D_THREAD_SAFE -fno-objc-arc"; }; }; + AC86A56E69976858BB0B5D95069FB48F /* OSSV4Signer.m in Sources */ = {isa = PBXBuildFile; fileRef = 7BA85FD2B0BC74A86DE67260FEB5932B /* OSSV4Signer.m */; }; + AC886F52E3E61183AC99820BFEFBC00D /* QGVAPSafeMutableDictionary.m in Sources */ = {isa = PBXBuildFile; fileRef = 1D065235116A0A3ABAAB4CAE58E793D6 /* QGVAPSafeMutableDictionary.m */; }; + AC8B2028B465E32EE6264C089B044814 /* FMDatabase.h in Headers */ = {isa = PBXBuildFile; fileRef = 234CF9F181DF27CB055689C00B3F81E2 /* FMDatabase.h */; settings = {ATTRIBUTES = (Public, ); }; }; + AC93B2FE9098DCFEE6AD4288102FC004 /* GPBWellKnownTypes.m in Sources */ = {isa = PBXBuildFile; fileRef = 1A1B3B7BD102DF87FBCCD0568816B6BA /* GPBWellKnownTypes.m */; settings = {COMPILER_FLAGS = "-fno-objc-arc"; }; }; + ACA3E8B9182B9BD918ACD839AB3C9ACE /* BRAddressModel.m in Sources */ = {isa = PBXBuildFile; fileRef = 64892690D0CE2071D6D12296BE9C05A8 /* BRAddressModel.m */; }; + ACB58EBCB043F97F51F3B9821FB5B86F /* SDmetamacros.h in Headers */ = {isa = PBXBuildFile; fileRef = A470008A38B5DFD5F7A75E35F2C2D778 /* SDmetamacros.h */; settings = {ATTRIBUTES = (Private, ); }; }; ACB6CEEBA8EE1F6203AC5141284F8042 /* TUIChatCallingDataProvider.m in Sources */ = {isa = PBXBuildFile; fileRef = F0A524978AB3CFE61AA5CFF81EDB42CD /* TUIChatCallingDataProvider.m */; }; - ACC1789B45031DC853B2610155189BE5 /* LLImageNameConfig.h in Headers */ = {isa = PBXBuildFile; fileRef = 37F667D0DBFE410E28D2779499C4AD43 /* LLImageNameConfig.h */; settings = {ATTRIBUTES = (Public, ); }; }; - AD395F6BD7F53258A431E9479D07C6AF /* JXCategoryTitleImageCellModel.m in Sources */ = {isa = PBXBuildFile; fileRef = DB3B7F8A30B262F80B31FA820ED5A470 /* JXCategoryTitleImageCellModel.m */; }; - AD481FDB5982037BD20B74A8FAAAE90C /* LLShortCutModel.m in Sources */ = {isa = PBXBuildFile; fileRef = 195C3C289162E648A1D619A1B4B96E7A /* LLShortCutModel.m */; }; - AD534929285EECBE3ECFADAE0CF48907 /* OSSDeleteObjectTaggingResult.m in Sources */ = {isa = PBXBuildFile; fileRef = CC5312AF6FBA8949781977323DEAB33A /* OSSDeleteObjectTaggingResult.m */; }; - AD634BA9EE90917646DF25307B5D6063 /* LLBaseTableViewCell.h in Headers */ = {isa = PBXBuildFile; fileRef = A8EC5759A3D64D6E4359B45A449795F0 /* LLBaseTableViewCell.h */; settings = {ATTRIBUTES = (Public, ); }; }; - AD701CF655759DBAEB1F3782E02A6272 /* LLDebugTool-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 89B8C160C9B8FB244FD67C498B0F433D /* LLDebugTool-dummy.m */; }; + ACC1789B45031DC853B2610155189BE5 /* LLImageNameConfig.h in Headers */ = {isa = PBXBuildFile; fileRef = 9C7F8C86658AAFEEC1836A349FA1BE73 /* LLImageNameConfig.h */; settings = {ATTRIBUTES = (Public, ); }; }; + AD0AEAB82B8926418E7E1109EAA53042 /* TUICommonModel.h in Headers */ = {isa = PBXBuildFile; fileRef = 5F2B239B652D2D3DC03E303D582E2C23 /* TUICommonModel.h */; settings = {ATTRIBUTES = (Public, ); }; }; + AD2CAAFCCF69A952F556C9365349241A /* QCloudAbstractRequest.h in Headers */ = {isa = PBXBuildFile; fileRef = 9CEAA6D4BE1912D961E2FB7DFE47397B /* QCloudAbstractRequest.h */; settings = {ATTRIBUTES = (Public, ); }; }; + AD395F6BD7F53258A431E9479D07C6AF /* JXCategoryTitleImageCellModel.m in Sources */ = {isa = PBXBuildFile; fileRef = 202AE6CB23C1D7766483A0092527E90E /* JXCategoryTitleImageCellModel.m */; }; + AD481FDB5982037BD20B74A8FAAAE90C /* LLShortCutModel.m in Sources */ = {isa = PBXBuildFile; fileRef = AE90088E58557360D6C0788805D76D76 /* LLShortCutModel.m */; }; + AD534929285EECBE3ECFADAE0CF48907 /* OSSDeleteObjectTaggingResult.m in Sources */ = {isa = PBXBuildFile; fileRef = B263D9F56028DCAF3F376D150DCEDB73 /* OSSDeleteObjectTaggingResult.m */; }; + AD5EE355C3346D64984521C8C756FD53 /* QCloudHTTPSessionManager.h in Headers */ = {isa = PBXBuildFile; fileRef = 8825C555D465064A00CC5398DD1AAA25 /* QCloudHTTPSessionManager.h */; settings = {ATTRIBUTES = (Public, ); }; }; + AD634BA9EE90917646DF25307B5D6063 /* LLBaseTableViewCell.h in Headers */ = {isa = PBXBuildFile; fileRef = 486B3677731399BB8F37EA68AD8802DF /* LLBaseTableViewCell.h */; settings = {ATTRIBUTES = (Public, ); }; }; + AD701CF655759DBAEB1F3782E02A6272 /* LLDebugTool-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 9A5F6D8AA6993683C15AB8AF64D1DD9A /* LLDebugTool-dummy.m */; }; + AD7AF9D7203D33772057DA2245765AFD /* QCloudAbstractRequest+Quality.h in Headers */ = {isa = PBXBuildFile; fileRef = AA11C0FF9CA37265A8F60A4B1D292C51 /* QCloudAbstractRequest+Quality.h */; settings = {ATTRIBUTES = (Public, ); }; }; ADA175BAC67B58ADE1AA9699C61E9F40 /* TIMCommonTheme.bundle in Resources */ = {isa = PBXBuildFile; fileRef = 941FD917F417F550371D727FDF654777 /* TIMCommonTheme.bundle */; }; - ADB992510F33AC7C5C071C5DBA00FFB7 /* OSSGetObjectACLRequest.h in Headers */ = {isa = PBXBuildFile; fileRef = 671AD687DE2A9004EB7B860715777140 /* OSSGetObjectACLRequest.h */; settings = {ATTRIBUTES = (Public, ); }; }; - ADC24851255B750F83E51EB91F110B9D /* UIImage+ForceDecode.m in Sources */ = {isa = PBXBuildFile; fileRef = 63CDE53A29B0BF589F693E8CBAEBB2AF /* UIImage+ForceDecode.m */; }; - AE0F1284A9C414203C1D5C66EDE95E8E /* mz_strm.h in Headers */ = {isa = PBXBuildFile; fileRef = DC49539AAD2F9F64523325C9C029A155 /* mz_strm.h */; settings = {ATTRIBUTES = (Project, ); }; }; - AE1E83D78E910206DAB04D9A019D7992 /* Zip-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 19273D67C7D67D752C0B805B300C27F3 /* Zip-dummy.m */; }; - AE3E5B4D37CE1CAE158516E1827DB624 /* NSArray+VAPUtil.m in Sources */ = {isa = PBXBuildFile; fileRef = 1762B76F8D2896C8BD39CCAEBEEC31BA /* NSArray+VAPUtil.m */; }; - AE49D0FD0F5649EA4DF5E6A243675A0C /* UIDevice+VAPUtil.m in Sources */ = {isa = PBXBuildFile; fileRef = F755AF5F80022FDE4DE647DD0770A0D1 /* UIDevice+VAPUtil.m */; }; + ADB992510F33AC7C5C071C5DBA00FFB7 /* OSSGetObjectACLRequest.h in Headers */ = {isa = PBXBuildFile; fileRef = 254C447AE99BD0064FCF9A29F9124605 /* OSSGetObjectACLRequest.h */; settings = {ATTRIBUTES = (Public, ); }; }; + AE0F1284A9C414203C1D5C66EDE95E8E /* mz_strm.h in Headers */ = {isa = PBXBuildFile; fileRef = F99C7AD3D5187E3F9FA001BE3573C9BC /* mz_strm.h */; settings = {ATTRIBUTES = (Project, ); }; }; + AE3E5B4D37CE1CAE158516E1827DB624 /* NSArray+VAPUtil.m in Sources */ = {isa = PBXBuildFile; fileRef = 375CF7EC774E0546D8281084DF667137 /* NSArray+VAPUtil.m */; }; + AE484489CB26D8B326EA5876CFB32F8C /* NSDate+QCLOUD.m in Sources */ = {isa = PBXBuildFile; fileRef = 0647C4695E12F486F60B14634B9C2661 /* NSDate+QCLOUD.m */; }; + AE49D0FD0F5649EA4DF5E6A243675A0C /* UIDevice+VAPUtil.m in Sources */ = {isa = PBXBuildFile; fileRef = 07A82BE18AB318F4F5861C0328FD2263 /* UIDevice+VAPUtil.m */; }; AE52341D34E2158DD2BB75F30B7643B2 /* TUIInputBar_Minimalist.h in Headers */ = {isa = PBXBuildFile; fileRef = EED6A24B5F0A0825CE50F1995DE40B3A /* TUIInputBar_Minimalist.h */; settings = {ATTRIBUTES = (Public, ); }; }; AE79A02AA9E8AB6094EF954BA0B8FEB1 /* TUIConversationObjectFactory_Minimalist.h in Headers */ = {isa = PBXBuildFile; fileRef = E5886BA16FE6219FD61B34C60A326850 /* TUIConversationObjectFactory_Minimalist.h */; settings = {ATTRIBUTES = (Public, ); }; }; - AE7B02645B8F769CA5F215EE8F7CC5B0 /* View+MASAdditions.h in Headers */ = {isa = PBXBuildFile; fileRef = 0530CA95ACA47296C611C65A4C48575D /* View+MASAdditions.h */; settings = {ATTRIBUTES = (Public, ); }; }; - AE7E26C4052133D3AB3768FD5D215568 /* MKMapView+LL_Location.m in Sources */ = {isa = PBXBuildFile; fileRef = 9B188AF11ABC695A8C591CCFCE3741A7 /* MKMapView+LL_Location.m */; }; - AEB8926360324E2A84020EAD714E33E4 /* RACSubject.m in Sources */ = {isa = PBXBuildFile; fileRef = 57DBE5E18EE466C6732DC09D06D7E549 /* RACSubject.m */; }; - AEC54DB652B1960BED8B4F43B1C980C1 /* LLRouter+Crash.m in Sources */ = {isa = PBXBuildFile; fileRef = 73706FB01E2DECC219126A9A3209D812 /* LLRouter+Crash.m */; }; + AE7B02645B8F769CA5F215EE8F7CC5B0 /* View+MASAdditions.h in Headers */ = {isa = PBXBuildFile; fileRef = DB30E41C786F3ED229A934C038771D8A /* View+MASAdditions.h */; settings = {ATTRIBUTES = (Public, ); }; }; + AE7E26C4052133D3AB3768FD5D215568 /* MKMapView+LL_Location.m in Sources */ = {isa = PBXBuildFile; fileRef = C2D2EF8B393EF2C8810CDF344F4737A3 /* MKMapView+LL_Location.m */; }; + AEB1970A9F2E8A1E79D5789766B5D746 /* QCloudCOSXMLUploadObjectRequest.m in Sources */ = {isa = PBXBuildFile; fileRef = 6D01A5CAF0AED19664007EE7A1DDA214 /* QCloudCOSXMLUploadObjectRequest.m */; }; + AEB8926360324E2A84020EAD714E33E4 /* RACSubject.m in Sources */ = {isa = PBXBuildFile; fileRef = F53F4D257FEC7DD3D89E1F3C3FA96244 /* RACSubject.m */; }; + AEC54DB652B1960BED8B4F43B1C980C1 /* LLRouter+Crash.m in Sources */ = {isa = PBXBuildFile; fileRef = 781B957CD910ED3C3FC242928CE4FA0B /* LLRouter+Crash.m */; }; AECE7FFC186B979D71EB302B40219B83 /* WebKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 66FA1666019F2F9617F3A5B4650213BE /* WebKit.framework */; }; - AF17C7BD3344504E243E234004B4593E /* JXCategoryIndicatorView.m in Sources */ = {isa = PBXBuildFile; fileRef = C0219029E9E43C08F49F43F62C517DB1 /* JXCategoryIndicatorView.m */; }; - AF1E836BC84429676750E94613A5CEC5 /* SDWebImageDefine.h in Headers */ = {isa = PBXBuildFile; fileRef = 070E0A055E488907F8C6932CCBB200E4 /* SDWebImageDefine.h */; settings = {ATTRIBUTES = (Public, ); }; }; + AEDFE2F717DB7D2664BFAD5F1368FBCE /* SDImageGraphics.m in Sources */ = {isa = PBXBuildFile; fileRef = 3FA7B1A5443DB4247116DF057334E34E /* SDImageGraphics.m */; }; + AF08DCA3AB922FCF7106189567B7871A /* QCloudRequestData+COSXMLVersion.h in Headers */ = {isa = PBXBuildFile; fileRef = 3067AF278E4B581B7F782D773FAAD91C /* QCloudRequestData+COSXMLVersion.h */; settings = {ATTRIBUTES = (Public, ); }; }; + AF17C7BD3344504E243E234004B4593E /* JXCategoryIndicatorView.m in Sources */ = {isa = PBXBuildFile; fileRef = 61D8691DF4138DD1F4223CB015018521 /* JXCategoryIndicatorView.m */; }; AF3272C5978A95B3D5EC82097EDCBF1C /* TUIInputController.h in Headers */ = {isa = PBXBuildFile; fileRef = 532D01F08F02C6F987F1F7330ECC9427 /* TUIInputController.h */; settings = {ATTRIBUTES = (Public, ); }; }; - AF62B6D4FD3FC6994D9BDDEFA0FE91A5 /* UIView+WebCacheOperation.m in Sources */ = {isa = PBXBuildFile; fileRef = 441C7D6A46B3AA228483B6520C2081C8 /* UIView+WebCacheOperation.m */; }; - AF7C9C150875D43D2791D4F66D5F39CD /* NSButton+WebCache.m in Sources */ = {isa = PBXBuildFile; fileRef = 71AA17A9D1EFBC20860F669033D73E51 /* NSButton+WebCache.m */; }; AFA4CB5D2135D41300FE4199AA5351C2 /* TUIFileViewController_Minimalist.m in Sources */ = {isa = PBXBuildFile; fileRef = 5CC32A51336B1D6507C77DE4C575139C /* TUIFileViewController_Minimalist.m */; }; - AFBA4DFDAFB6506D5DC862AFB1B4347B /* UISlider+RACSignalSupport.m in Sources */ = {isa = PBXBuildFile; fileRef = 1E241228CEDF79BEF3B92FA29E248D54 /* UISlider+RACSignalSupport.m */; }; - AFD6AFDBC3D3DF6DBD090006CF41A6F0 /* LLRulerViewController.h in Headers */ = {isa = PBXBuildFile; fileRef = 51AF8113A6263D3CDE7BE5C614A554BA /* LLRulerViewController.h */; settings = {ATTRIBUTES = (Public, ); }; }; - AFDF645683D9FE5419BE6CC469A05125 /* UIView+TUIUtil.m in Sources */ = {isa = PBXBuildFile; fileRef = 3814AF3EC255DDF9577E5266D96B7B49 /* UIView+TUIUtil.m */; }; - AFEED9925C7800D94EBDB1F42AF2C53A /* NSBundle+YYAdd.h in Headers */ = {isa = PBXBuildFile; fileRef = 65760C38CA52743665906378AA28522D /* NSBundle+YYAdd.h */; settings = {ATTRIBUTES = (Public, ); }; }; - AFF20591A873016E33C4AFB4829679CD /* dec_msa.c in Sources */ = {isa = PBXBuildFile; fileRef = 933597D58F60972C9FBCA1DDFD489C49 /* dec_msa.c */; settings = {COMPILER_FLAGS = "-D_THREAD_SAFE -fno-objc-arc"; }; }; - AFFCF22AB10FDB1BA56E318CF0FEEACE /* RACKVOChannel.h in Headers */ = {isa = PBXBuildFile; fileRef = 9430AB66010AA631CF130C9E4E90866F /* RACKVOChannel.h */; settings = {ATTRIBUTES = (Public, ); }; }; + AFBA4DFDAFB6506D5DC862AFB1B4347B /* UISlider+RACSignalSupport.m in Sources */ = {isa = PBXBuildFile; fileRef = 0E854BD028C282A18A29A41EAF1109EA /* UISlider+RACSignalSupport.m */; }; + AFD6AFDBC3D3DF6DBD090006CF41A6F0 /* LLRulerViewController.h in Headers */ = {isa = PBXBuildFile; fileRef = E9B2C06C987B4A6E04E58710FBC3E339 /* LLRulerViewController.h */; settings = {ATTRIBUTES = (Public, ); }; }; + AFE80E5E82C7D7C65593001FE4874C94 /* QCloudCRC64.c in Sources */ = {isa = PBXBuildFile; fileRef = 8266B86609E6771A6370B1F8673F4827 /* QCloudCRC64.c */; }; + AFEED9925C7800D94EBDB1F42AF2C53A /* NSBundle+YYAdd.h in Headers */ = {isa = PBXBuildFile; fileRef = 19C0F163161623AD623CF6733ACC305E /* NSBundle+YYAdd.h */; settings = {ATTRIBUTES = (Public, ); }; }; + AFF7B240A481F97877B7537BA3C596C4 /* SDWebImageCompat.h in Headers */ = {isa = PBXBuildFile; fileRef = E5BBF9FF824780EF9D3A870677253467 /* SDWebImageCompat.h */; settings = {ATTRIBUTES = (Public, ); }; }; + AFF86B94C6EA4DE28869682020383B80 /* SDMemoryCache.h in Headers */ = {isa = PBXBuildFile; fileRef = 66E740293F0165C37F9706BD734847B4 /* SDMemoryCache.h */; settings = {ATTRIBUTES = (Public, ); }; }; + AFFCF22AB10FDB1BA56E318CF0FEEACE /* RACKVOChannel.h in Headers */ = {isa = PBXBuildFile; fileRef = D231EA1EA63CDB0D9177BE3432143F87 /* RACKVOChannel.h */; settings = {ATTRIBUTES = (Public, ); }; }; B015234590BDD54DBC723D7E5B6BEFF8 /* TUIMessageMediaDataProvider.h in Headers */ = {isa = PBXBuildFile; fileRef = 73A1D1E8E3BB385F625869200581B47A /* TUIMessageMediaDataProvider.h */; settings = {ATTRIBUTES = (Public, ); }; }; - B01B0D2C3D7DB351CAE2D74E6069B69A /* ForegroundReconnection.m in Sources */ = {isa = PBXBuildFile; fileRef = 02FAD85033B2089C692AD28A2CD21D31 /* ForegroundReconnection.m */; }; - B030B558BE97E0225652EFB8C8FA431F /* AFAutoPurgingImageCache.h in Headers */ = {isa = PBXBuildFile; fileRef = 9FFC80C95BD87F390E6A865F48A6D868 /* AFAutoPurgingImageCache.h */; settings = {ATTRIBUTES = (Public, ); }; }; - B042EAB18E883CB34F46A53DAF25EB88 /* SVGAPlayer-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = 9E150C7B99DB3BF47EAC81EA8C4408E4 /* SVGAPlayer-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; - B0763E503C83B88F7646562C2F128901 /* quant_levels_utils.h in Headers */ = {isa = PBXBuildFile; fileRef = F297C683DFC094C1BAC7D0FC3DAF2F5C /* quant_levels_utils.h */; settings = {ATTRIBUTES = (Project, ); }; }; + B01B0D2C3D7DB351CAE2D74E6069B69A /* ForegroundReconnection.m in Sources */ = {isa = PBXBuildFile; fileRef = 3F4A516A9355EAA944CA1793EC6D4205 /* ForegroundReconnection.m */; }; + B030B558BE97E0225652EFB8C8FA431F /* AFAutoPurgingImageCache.h in Headers */ = {isa = PBXBuildFile; fileRef = 464CEA7C113FAB329A4414AE96B55A64 /* AFAutoPurgingImageCache.h */; settings = {ATTRIBUTES = (Public, ); }; }; + B042EAB18E883CB34F46A53DAF25EB88 /* SVGAPlayer-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = AEEEE4DD3BC6DFDF0073DA40B34539EC /* SVGAPlayer-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; B083BF6BC4142CA40E740BB7FC5D745D /* TUIChatPopMenu.m in Sources */ = {isa = PBXBuildFile; fileRef = 859DA83E1B98F6F07DD65F33A7D801E9 /* TUIChatPopMenu.m */; }; B09D1973A651FF105C39DBF8C43047C7 /* TUIConversationSelectController_Minimalist.m in Sources */ = {isa = PBXBuildFile; fileRef = 25FA38DE937645738EE9103E4B8A16CE /* TUIConversationSelectController_Minimalist.m */; }; - B09F08548ACA8379445F6525011EE219 /* MJRefreshBackStateFooter.m in Sources */ = {isa = PBXBuildFile; fileRef = E9C3BBE56A385FC9FDEE685E9083AD8C /* MJRefreshBackStateFooter.m */; }; - B0A7C233634456686A7D69FF8591B1FD /* LLWindowManager+Log.h in Headers */ = {isa = PBXBuildFile; fileRef = 84DC34A068077DFA9A3C77C06571FF24 /* LLWindowManager+Log.h */; settings = {ATTRIBUTES = (Public, ); }; }; + B09F08548ACA8379445F6525011EE219 /* MJRefreshBackStateFooter.m in Sources */ = {isa = PBXBuildFile; fileRef = E2625642277CF56AE9F82AFCBB63EEFC /* MJRefreshBackStateFooter.m */; }; + B0A7C233634456686A7D69FF8591B1FD /* LLWindowManager+Log.h in Headers */ = {isa = PBXBuildFile; fileRef = CC022135945BC95FA761403F90D48780 /* LLWindowManager+Log.h */; settings = {ATTRIBUTES = (Public, ); }; }; + B0B19262D8D8C50EDA69F1BC57824DE8 /* SDWebImageDefine.m in Sources */ = {isa = PBXBuildFile; fileRef = B679C0655074D606AA2C774339FD7D46 /* SDWebImageDefine.m */; }; B0B95D4D89830A79ECD7889F7DA1401C /* TUIBubbleMessageCellData.m in Sources */ = {isa = PBXBuildFile; fileRef = B129247FD92914E3FED8996F2357E494 /* TUIBubbleMessageCellData.m */; }; B0F36E9025B754D74A5502D44A6BC005 /* MobileCoreServices.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 6A4B0155D81BD9992D04820FA803A6DE /* MobileCoreServices.framework */; }; - B0F512045830FAB66AE7526E35501800 /* JXCategoryImageCellModel.h in Headers */ = {isa = PBXBuildFile; fileRef = 059B5D409318CD8D93A66EB097A041E4 /* JXCategoryImageCellModel.h */; settings = {ATTRIBUTES = (Public, ); }; }; - B10ECCC867CF04D8B0919C3C25384F11 /* cost_mips32.c in Sources */ = {isa = PBXBuildFile; fileRef = 970AF4B7BFE170D4945250E644A45414 /* cost_mips32.c */; settings = {COMPILER_FLAGS = "-D_THREAD_SAFE -fno-objc-arc"; }; }; - B1863EDC31F3CAD3F67478685E2673DC /* Duration.pbobjc.h in Headers */ = {isa = PBXBuildFile; fileRef = E4943D2D0B9FFEBA397DCCD362025CD9 /* Duration.pbobjc.h */; settings = {ATTRIBUTES = (Public, ); }; }; + B0F512045830FAB66AE7526E35501800 /* JXCategoryImageCellModel.h in Headers */ = {isa = PBXBuildFile; fileRef = C2BB68A8BBA98BD66780B665DB150779 /* JXCategoryImageCellModel.h */; settings = {ATTRIBUTES = (Public, ); }; }; + B11D69C8EC231599BD64D86066EBA31D /* QCloudRequestSerializer.m in Sources */ = {isa = PBXBuildFile; fileRef = CD132394F8219CB52F20FF82FFA7113B /* QCloudRequestSerializer.m */; }; + B12D095947E105B66A64F1F3C81CD495 /* QCloudReachability.m in Sources */ = {isa = PBXBuildFile; fileRef = 2E9877101739BBAC0A288D5640B2E796 /* QCloudReachability.m */; }; + B1863EDC31F3CAD3F67478685E2673DC /* Duration.pbobjc.h in Headers */ = {isa = PBXBuildFile; fileRef = CE380A2D80461203CB5EF1EC7876D1AC /* Duration.pbobjc.h */; settings = {ATTRIBUTES = (Public, ); }; }; + B1B38E1E4B2C4AE648617267A195E86D /* QCloudUniversalPathFactory.h in Headers */ = {isa = PBXBuildFile; fileRef = 761E13468DE363FA8FFB70FDED81A231 /* QCloudUniversalPathFactory.h */; settings = {ATTRIBUTES = (Public, ); }; }; B1C2CABFA17175C50CA81DC59B65B827 /* TUIMenuView_Minimalist.m in Sources */ = {isa = PBXBuildFile; fileRef = AB621E0633786FE4BC8E55BD2183155A /* TUIMenuView_Minimalist.m */; }; - B1CD2DB19E192179712C064576745A74 /* SDWebImageDefine.m in Sources */ = {isa = PBXBuildFile; fileRef = B3F832F2B4C19E5C81F0E5E680F5D1F0 /* SDWebImageDefine.m */; }; - B1D499219E22629F17AA2B333B7E66D5 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = F91075A92425F75F02E0E1C8D455AF79 /* Foundation.framework */; }; - B1DEACA29333F451154D9AA3ED72B09A /* YYFrameImage.m in Sources */ = {isa = PBXBuildFile; fileRef = 61E4C5401F2E34BCE0FCBA470E3C957E /* YYFrameImage.m */; }; + B1D690C99DED873AF5547AF9D075D9CD /* SDWebImageManager.m in Sources */ = {isa = PBXBuildFile; fileRef = 1CCC26D7A014F04D3FF49AF42C9F966C /* SDWebImageManager.m */; }; + B1DB55B7550449F4EC83E21DF46CD7F8 /* QCloudEndPoint.m in Sources */ = {isa = PBXBuildFile; fileRef = C9FB1986F4BE1CF8F11AE763240D2E95 /* QCloudEndPoint.m */; }; + B1FC04DAB11A3F5FCBE161B609DE4B3D /* QCloudCustomLoaderTask.m in Sources */ = {isa = PBXBuildFile; fileRef = E5A96B75D9BDE7780BDB2E8002A68AA7 /* QCloudCustomLoaderTask.m */; }; B25C5811E6864C0EEF1FE861CA805067 /* QuartzCore.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 495512CED6B55B9463695CBE9898BE51 /* QuartzCore.framework */; }; - B274840BC120F8BF0053493A5BA09CB9 /* GPBBootstrap.h in Headers */ = {isa = PBXBuildFile; fileRef = A75BC77EB31709CB1D41E98777E3EF6B /* GPBBootstrap.h */; settings = {ATTRIBUTES = (Public, ); }; }; - B27CEB09C2501BA30188239D06C3D3C3 /* QuartzCore.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 495512CED6B55B9463695CBE9898BE51 /* QuartzCore.framework */; }; - B2988270E4F44FC92342D189627323F6 /* OSSInputStreamHelper.m in Sources */ = {isa = PBXBuildFile; fileRef = 3178347A4C5327D93B120D4EE564D6CB /* OSSInputStreamHelper.m */; }; - B29D633815AA9A6C1740E98A0802E870 /* LLScreenshotPreviewViewController.h in Headers */ = {isa = PBXBuildFile; fileRef = DCFE3F6AFAEEBC6E836DDC148905E788 /* LLScreenshotPreviewViewController.h */; settings = {ATTRIBUTES = (Public, ); }; }; - B29D84FBD85EA5AD2217ED780F2EB123 /* SDWebImageDownloaderResponseModifier.h in Headers */ = {isa = PBXBuildFile; fileRef = DE590FD7CC8FF3EADF495F5794FB93DD /* SDWebImageDownloaderResponseModifier.h */; settings = {ATTRIBUTES = (Public, ); }; }; - B2A55AD2A4FA2CFA18CA54EBEBF5DF99 /* YYCategories-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = 3DB57F5DA26A4F24A3A02393785F74C1 /* YYCategories-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; + B274840BC120F8BF0053493A5BA09CB9 /* GPBBootstrap.h in Headers */ = {isa = PBXBuildFile; fileRef = FA71F63ECF516CB8499FA494C1ACAC03 /* GPBBootstrap.h */; settings = {ATTRIBUTES = (Public, ); }; }; + B2988270E4F44FC92342D189627323F6 /* OSSInputStreamHelper.m in Sources */ = {isa = PBXBuildFile; fileRef = 9A81EBF3E122777C71BC1E14A5A5DC2F /* OSSInputStreamHelper.m */; }; + B29D633815AA9A6C1740E98A0802E870 /* LLScreenshotPreviewViewController.h in Headers */ = {isa = PBXBuildFile; fileRef = DB9B43640341B4AEBD209008CF55A813 /* LLScreenshotPreviewViewController.h */; settings = {ATTRIBUTES = (Public, ); }; }; + B2A55AD2A4FA2CFA18CA54EBEBF5DF99 /* YYCategories-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = DB9F7E2D705481AF576EBF89395748D3 /* YYCategories-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; B2BFC9A50E874B34E42B51A5A20D656F /* TUIEvaluationCellData.m in Sources */ = {isa = PBXBuildFile; fileRef = 5666394C8E2E12E601208F9435337DB8 /* TUIEvaluationCellData.m */; }; - B2D7231DA297982AF33E710590E3F8A8 /* GPBType.pbobjc.m in Sources */ = {isa = PBXBuildFile; fileRef = DA5720F010C721950F8B9403EEFDBF2A /* GPBType.pbobjc.m */; settings = {COMPILER_FLAGS = "-fno-objc-arc"; }; }; + B2C0455A954995524725927DB7821E85 /* QCloudCredentailFenceQueue.m in Sources */ = {isa = PBXBuildFile; fileRef = 6D9399244799CCB26A1F65654F0E913F /* QCloudCredentailFenceQueue.m */; }; + B2D2F4D2DD6ADA11BF2CB12B759784FB /* idec_dec.c in Sources */ = {isa = PBXBuildFile; fileRef = F88E4977EB3F1DA61E63A631CAFE861A /* idec_dec.c */; settings = {COMPILER_FLAGS = "-D_THREAD_SAFE -fno-objc-arc"; }; }; + B2D7231DA297982AF33E710590E3F8A8 /* GPBType.pbobjc.m in Sources */ = {isa = PBXBuildFile; fileRef = 8C1323B30EB572CD81E268BAA03C779B /* GPBType.pbobjc.m */; settings = {COMPILER_FLAGS = "-fno-objc-arc"; }; }; B2EB9AA0D7FF4DF73FCD6497DCFDE7B0 /* TUIGroupPinCell.m in Sources */ = {isa = PBXBuildFile; fileRef = CF9D185009F4804E7C7E3F0C509C5E69 /* TUIGroupPinCell.m */; }; - B312C7154719371C49BCF8055BCC1BFF /* NSOrderedSet+RACSequenceAdditions.m in Sources */ = {isa = PBXBuildFile; fileRef = B1BFFCFC6C51859FFD9C9ABBDBF260BA /* NSOrderedSet+RACSequenceAdditions.m */; }; - B312CA775DF8DB834AFD6FE2E2A110C2 /* OSSReachability.h in Headers */ = {isa = PBXBuildFile; fileRef = EA32E98C9DBA059E4205EC581458383C /* OSSReachability.h */; settings = {ATTRIBUTES = (Public, ); }; }; - B35179A053209B558732CFA26451AA12 /* QGAnimatedImageDecodeThreadPool.m in Sources */ = {isa = PBXBuildFile; fileRef = 53FE2614574061CBC55A1B687D023EB4 /* QGAnimatedImageDecodeThreadPool.m */; }; - B35C07F89DAE0EDB7F3B4178875C394A /* LLSettingComponent.m in Sources */ = {isa = PBXBuildFile; fileRef = 5E6AFCEEFAF137883D32E47BD48C0DEA /* LLSettingComponent.m */; }; + B312C7154719371C49BCF8055BCC1BFF /* NSOrderedSet+RACSequenceAdditions.m in Sources */ = {isa = PBXBuildFile; fileRef = C5A21116BFD10B2D4FEA6E079CFA608F /* NSOrderedSet+RACSequenceAdditions.m */; }; + B312CA775DF8DB834AFD6FE2E2A110C2 /* OSSReachability.h in Headers */ = {isa = PBXBuildFile; fileRef = EE6091647D1C566C87CC7254162D681B /* OSSReachability.h */; settings = {ATTRIBUTES = (Public, ); }; }; + B35179A053209B558732CFA26451AA12 /* QGAnimatedImageDecodeThreadPool.m in Sources */ = {isa = PBXBuildFile; fileRef = 5B984728ADC52AF50BCCA6AE10D4564F /* QGAnimatedImageDecodeThreadPool.m */; }; + B35C07F89DAE0EDB7F3B4178875C394A /* LLSettingComponent.m in Sources */ = {isa = PBXBuildFile; fileRef = AD6BCF82EECFC175647BF009235EC25B /* LLSettingComponent.m */; }; B36C49E2A9035AD28D9E01676C0FEA7A /* TUIBaseMessageController.m in Sources */ = {isa = PBXBuildFile; fileRef = 9C83C193429D5CFAFA375833F8D2FB49 /* TUIBaseMessageController.m */; }; - B38365382592A2EA2891FAEA021894E5 /* NSData+OSS.m in Sources */ = {isa = PBXBuildFile; fileRef = B810A9B9528573F1C75469C4C3C78D7B /* NSData+OSS.m */; }; - B3BAE2216F20F91DBC4C3E3B105E077D /* RACCompoundDisposable.m in Sources */ = {isa = PBXBuildFile; fileRef = D265E983DA80B4DBBE3AF47B25EFCDB7 /* RACCompoundDisposable.m */; }; - B3CF0FD8C5CAE5360ECF449DF19A4B73 /* NSObject+RACPropertySubscribing.h in Headers */ = {isa = PBXBuildFile; fileRef = 7EE201C9EDE3E86876EA40183DA69E3A /* NSObject+RACPropertySubscribing.h */; settings = {ATTRIBUTES = (Public, ); }; }; + B37AD0C8EFB02339F184D8B0FBF5A986 /* UIColor+SDHexString.m in Sources */ = {isa = PBXBuildFile; fileRef = 2AC8556128C53E4DDFF0360719135975 /* UIColor+SDHexString.m */; }; + B38365382592A2EA2891FAEA021894E5 /* NSData+OSS.m in Sources */ = {isa = PBXBuildFile; fileRef = 9B26A92A7F41BE44412BF4151857574D /* NSData+OSS.m */; }; + B38885EBB26FED9673B5405352C93CE9 /* alpha_dec.c in Sources */ = {isa = PBXBuildFile; fileRef = 822965F471AC39FAA8C2A81E1DAF3A5C /* alpha_dec.c */; settings = {COMPILER_FLAGS = "-D_THREAD_SAFE -fno-objc-arc"; }; }; + B3A77F2AC6C8025430A3815F6D6CB440 /* NSMutableData+QCloud_CRC.h in Headers */ = {isa = PBXBuildFile; fileRef = 14618BAE422652F257E80A9339F7B3F5 /* NSMutableData+QCloud_CRC.h */; settings = {ATTRIBUTES = (Public, ); }; }; + B3BAE2216F20F91DBC4C3E3B105E077D /* RACCompoundDisposable.m in Sources */ = {isa = PBXBuildFile; fileRef = 9D37D2DBCA6C4594AAF3590760363C05 /* RACCompoundDisposable.m */; }; + B3CF0FD8C5CAE5360ECF449DF19A4B73 /* NSObject+RACPropertySubscribing.h in Headers */ = {isa = PBXBuildFile; fileRef = 0CB3454E58FE75D89D3F63BC483B12CF /* NSObject+RACPropertySubscribing.h */; settings = {ATTRIBUTES = (Public, ); }; }; + B3F4A77948958A0076B6AB317568809F /* SDWebImageDownloader.h in Headers */ = {isa = PBXBuildFile; fileRef = AFAB1F0E95253035F38051174F68B468 /* SDWebImageDownloader.h */; settings = {ATTRIBUTES = (Public, ); }; }; B3FCC072729A144D44BECE3F186F19A8 /* TUIMessageSearchDataProvider.m in Sources */ = {isa = PBXBuildFile; fileRef = 5CFA74FA375BF7B5E5D107A62E55B907 /* TUIMessageSearchDataProvider.m */; }; - B3FFCF67603888B839DC1AEAEAA2B1C8 /* YYTextContainerView.m in Sources */ = {isa = PBXBuildFile; fileRef = 050E411EAB2DAF29965440F9ADDAB156 /* YYTextContainerView.m */; }; + B3FFCF67603888B839DC1AEAEAA2B1C8 /* YYTextContainerView.m in Sources */ = {isa = PBXBuildFile; fileRef = D5FD50CB70DC73F10EFE6F6FE9EB54DF /* YYTextContainerView.m */; }; B4101943A28176C9E730CA0BA4088070 /* TUIConversationSelectDataProvider.h in Headers */ = {isa = PBXBuildFile; fileRef = 0209152A2926B97D17EF7B12A9425FA1 /* TUIConversationSelectDataProvider.h */; settings = {ATTRIBUTES = (Public, ); }; }; - B42A0E54DADF6B30A598804F11F7FF71 /* LLSettingManager.m in Sources */ = {isa = PBXBuildFile; fileRef = BEEC7394569DAAD54F66E20CF9CBACFD /* LLSettingManager.m */; }; - B45B47737E78C234255108528D7F601D /* NSArray+LL_Utils.h in Headers */ = {isa = PBXBuildFile; fileRef = FBA24CE00E2B054DFD47F92879471271 /* NSArray+LL_Utils.h */; settings = {ATTRIBUTES = (Public, ); }; }; - B47E3D187CC3C49E085401A8E5663C3B /* UIImage+ExtendedCacheData.m in Sources */ = {isa = PBXBuildFile; fileRef = 6742952E3C2B164C0F8981C4F188C493 /* UIImage+ExtendedCacheData.m */; }; - B4A055DE2DAA83775FEAD725E7E34F13 /* RACArraySequence.m in Sources */ = {isa = PBXBuildFile; fileRef = A35BD9C8F4D97D0C81E727EADD3E0184 /* RACArraySequence.m */; }; - B4A3D389BDB1B0E149378182CC942228 /* YYClassInfo.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A0C1642D54AB3CA1AB9E283E62D57EC /* YYClassInfo.h */; settings = {ATTRIBUTES = (Public, ); }; }; - B4B5D09B6C943A88805B18833A836718 /* YBIBCopywriter.m in Sources */ = {isa = PBXBuildFile; fileRef = 107B9B81F6D295C40C085A124188A1A2 /* YBIBCopywriter.m */; }; - B4BAFD47D3A4DB14B32D24B538A876B3 /* NSObject+LL_Runtime.h in Headers */ = {isa = PBXBuildFile; fileRef = 9BF1B77FD6A05F3D8E66686BAC0A9BEF /* NSObject+LL_Runtime.h */; settings = {ATTRIBUTES = (Public, ); }; }; - B4DF1CDCE2413AF579E102954A4033F6 /* mz_strm_os_posix.c in Sources */ = {isa = PBXBuildFile; fileRef = F853F1D51DACCB15646E344EC336589D /* mz_strm_os_posix.c */; }; + B42A0E54DADF6B30A598804F11F7FF71 /* LLSettingManager.m in Sources */ = {isa = PBXBuildFile; fileRef = F4FFF0FF6448B5F686F6A48ABCC817D9 /* LLSettingManager.m */; }; + B4328C00602FF3EA464BFBC18C266BEE /* NSHTTPCookie+QCloudNetworking.h in Headers */ = {isa = PBXBuildFile; fileRef = 5E5DD15436091CA4AE1092B904799916 /* NSHTTPCookie+QCloudNetworking.h */; settings = {ATTRIBUTES = (Public, ); }; }; + B45B47737E78C234255108528D7F601D /* NSArray+LL_Utils.h in Headers */ = {isa = PBXBuildFile; fileRef = 3EE8824ECC4CC90D5F87D9686AA62D9C /* NSArray+LL_Utils.h */; settings = {ATTRIBUTES = (Public, ); }; }; + B4A055DE2DAA83775FEAD725E7E34F13 /* RACArraySequence.m in Sources */ = {isa = PBXBuildFile; fileRef = 2A20B13ED97CA4C1F6A13E8FA306642F /* RACArraySequence.m */; }; + B4A3D389BDB1B0E149378182CC942228 /* YYClassInfo.h in Headers */ = {isa = PBXBuildFile; fileRef = CCF27A6359FD82A1A13840307C74AC39 /* YYClassInfo.h */; settings = {ATTRIBUTES = (Public, ); }; }; + B4B5D09B6C943A88805B18833A836718 /* YBIBCopywriter.m in Sources */ = {isa = PBXBuildFile; fileRef = 7615834E70CBB634BAFC347D66E70170 /* YBIBCopywriter.m */; }; + B4BAFD47D3A4DB14B32D24B538A876B3 /* NSObject+LL_Runtime.h in Headers */ = {isa = PBXBuildFile; fileRef = B5A7D9BF4FBA4AD9B22E5FBCF274C23D /* NSObject+LL_Runtime.h */; settings = {ATTRIBUTES = (Public, ); }; }; + B4CB2561C7A397ECD36C1A8B38EF1FEE /* QCloudGetObjectRequest+Custom.m in Sources */ = {isa = PBXBuildFile; fileRef = F2FA8749876555B817646E49DEB0FBBE /* QCloudGetObjectRequest+Custom.m */; }; + B4DF1CDCE2413AF579E102954A4033F6 /* mz_strm_os_posix.c in Sources */ = {isa = PBXBuildFile; fileRef = 0333F7E5E59B81B75C71256D1E1A8BBD /* mz_strm_os_posix.c */; }; B507480DC8ED83A6D34134E3C7E969C7 /* TUIConfig_Minimalist.m in Sources */ = {isa = PBXBuildFile; fileRef = F1EEED01BE9023F1C663EE34510B3880 /* TUIConfig_Minimalist.m */; }; - B5074964950186F624B781D47AFC6675 /* LLStorageManager.m in Sources */ = {isa = PBXBuildFile; fileRef = D2E4449147CF1B92367B8ED7A68AA121 /* LLStorageManager.m */; }; - B55D6315E855BFCE88C9B27B0C278C4F /* RACKVOTrampoline.h in Headers */ = {isa = PBXBuildFile; fileRef = E38E75419CD6F10F456D076A1546C7DD /* RACKVOTrampoline.h */; settings = {ATTRIBUTES = (Public, ); }; }; + B5074964950186F624B781D47AFC6675 /* LLStorageManager.m in Sources */ = {isa = PBXBuildFile; fileRef = 7855E526D92517A3630804D531988716 /* LLStorageManager.m */; }; + B55D6315E855BFCE88C9B27B0C278C4F /* RACKVOTrampoline.h in Headers */ = {isa = PBXBuildFile; fileRef = 5C04E04A3257EDDCF57FC9A345960F61 /* RACKVOTrampoline.h */; settings = {ATTRIBUTES = (Public, ); }; }; B56DDE0A2EAEAAC757DBB2A2FE734399 /* TUICommonGroupInfoCellData_Minimalist.h in Headers */ = {isa = PBXBuildFile; fileRef = 80BD092334EDB6A9A6A0038022DD9132 /* TUICommonGroupInfoCellData_Minimalist.h */; settings = {ATTRIBUTES = (Public, ); }; }; - B57E67F5CAE0DF86D148A3CDA0407BA0 /* YYTextArchiver.h in Headers */ = {isa = PBXBuildFile; fileRef = C390868BE63CCE0630FC7DA5613A5713 /* YYTextArchiver.h */; settings = {ATTRIBUTES = (Public, ); }; }; - B5893E12228197A222E95787636062DE /* lossless_enc_sse2.c in Sources */ = {isa = PBXBuildFile; fileRef = 2F2DAB05BE0EAA8C06364DC5062DD656 /* lossless_enc_sse2.c */; settings = {COMPILER_FLAGS = "-D_THREAD_SAFE -fno-objc-arc"; }; }; + B56E8AE0483F69941E175C56B3272CD1 /* YYImageCoder.h in Headers */ = {isa = PBXBuildFile; fileRef = F7CD16B080859402407183A99F69DEED /* YYImageCoder.h */; settings = {ATTRIBUTES = (Public, ); }; }; + B57E67F5CAE0DF86D148A3CDA0407BA0 /* YYTextArchiver.h in Headers */ = {isa = PBXBuildFile; fileRef = C47B236151C42E0448F26C5AB78D8959 /* YYTextArchiver.h */; settings = {ATTRIBUTES = (Public, ); }; }; B58E8E516E4ED4AECA3A30F1DA59A14A /* TUIChatFlexViewController.h in Headers */ = {isa = PBXBuildFile; fileRef = C19DB3A1120B979C84C73A7C2A4EEE20 /* TUIChatFlexViewController.h */; settings = {ATTRIBUTES = (Public, ); }; }; - B59E60FBC9665FC1061B88B8E6FD9FAF /* Masonry-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = A4EA5444D3E95AE512B1D488D4C6AA0D /* Masonry-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; - B5BFBD6AAD4CF850D3EC999700B6EDDC /* BRStringPickerView.h in Headers */ = {isa = PBXBuildFile; fileRef = BF1D5FE179804694EF63A50FB66D79D6 /* BRStringPickerView.h */; settings = {ATTRIBUTES = (Public, ); }; }; - B5EB4DB03000B5122B3D1555D3A36D6C /* LLToastUtils.h in Headers */ = {isa = PBXBuildFile; fileRef = 5F4D8633E56A1ABE21BAE5B39A54DDB1 /* LLToastUtils.h */; settings = {ATTRIBUTES = (Public, ); }; }; - B614C78120A133ADB1919C002E0B7920 /* LLHierarchyPickerView.m in Sources */ = {isa = PBXBuildFile; fileRef = F9E95BE53E6A32451C6234D71E746822 /* LLHierarchyPickerView.m */; }; - B6422D1C5378A1E8CF1DB4EA21D31BD3 /* RACErrorSignal.h in Headers */ = {isa = PBXBuildFile; fileRef = F1D8CD4A6EF4FE9FB9EE108598849301 /* RACErrorSignal.h */; settings = {ATTRIBUTES = (Public, ); }; }; - B64647DA56D15CFFBC2D08FE68DDDAF5 /* LLEditTableViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = FE24BBE6690040438CF62BEB8DA4276B /* LLEditTableViewController.m */; }; - B680C2604BD8BC9644AE7C67BC46B9BB /* MASLayoutConstraint.h in Headers */ = {isa = PBXBuildFile; fileRef = AAD34CD00E99EF8DCB941FA4C2F5AE61 /* MASLayoutConstraint.h */; settings = {ATTRIBUTES = (Public, ); }; }; - B6B77A9DBB88AB37C868D97E54E4AE5A /* Api.pbobjc.h in Headers */ = {isa = PBXBuildFile; fileRef = BE797AD1F23CC52C95C35CD7E1CC7C54 /* Api.pbobjc.h */; settings = {ATTRIBUTES = (Public, ); }; }; - B6B9E5CB44FF88EFC0AE1CBC28A1A414 /* NSArray+YYAdd.m in Sources */ = {isa = PBXBuildFile; fileRef = 7D60CEA3C1DFC351B3099F26E0599BE4 /* NSArray+YYAdd.m */; }; - B7066DE77D534E0648F4E35153B9E485 /* QGMP4FrameHWDecoder.m in Sources */ = {isa = PBXBuildFile; fileRef = C551C8EB9741E8A7CEF79E88D215618A /* QGMP4FrameHWDecoder.m */; }; - B719995C3EE0435B860005F73A68089B /* huffman_utils.h in Headers */ = {isa = PBXBuildFile; fileRef = DACE3EC3C26BB00A344269B7F014BC87 /* huffman_utils.h */; settings = {ATTRIBUTES = (Project, ); }; }; - B720D88CD6509882A53A6BBBC2B80D2F /* rescaler_neon.c in Sources */ = {isa = PBXBuildFile; fileRef = D634A240E60F7ACCC06011B82EB73F23 /* rescaler_neon.c */; settings = {COMPILER_FLAGS = "-D_THREAD_SAFE -fno-objc-arc"; }; }; + B59920B2AF5F01CF2A7189DBCD50B512 /* ssim.c in Sources */ = {isa = PBXBuildFile; fileRef = C20893CDFE63C9B61AFAC6AE664B40B9 /* ssim.c */; settings = {COMPILER_FLAGS = "-D_THREAD_SAFE -fno-objc-arc"; }; }; + B59E60FBC9665FC1061B88B8E6FD9FAF /* Masonry-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = F252254B87C079885B1E5BCD33FD7953 /* Masonry-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; + B5BFBD6AAD4CF850D3EC999700B6EDDC /* BRStringPickerView.h in Headers */ = {isa = PBXBuildFile; fileRef = 064E03F699BC13C52E6EB1F6D130577B /* BRStringPickerView.h */; settings = {ATTRIBUTES = (Public, ); }; }; + B5C039EAC61B2F0A9BFDCE16D27A8B37 /* UIImage+QCloudBundle.h in Headers */ = {isa = PBXBuildFile; fileRef = 426111311C78A02D520BA4AECF277B28 /* UIImage+QCloudBundle.h */; settings = {ATTRIBUTES = (Public, ); }; }; + B5EB4DB03000B5122B3D1555D3A36D6C /* LLToastUtils.h in Headers */ = {isa = PBXBuildFile; fileRef = 54AEB652E46049D9B75BFF05CB3FBCAB /* LLToastUtils.h */; settings = {ATTRIBUTES = (Public, ); }; }; + B614C78120A133ADB1919C002E0B7920 /* LLHierarchyPickerView.m in Sources */ = {isa = PBXBuildFile; fileRef = 87FE95E5016AE4506C40838D4BB06BEC /* LLHierarchyPickerView.m */; }; + B6422D1C5378A1E8CF1DB4EA21D31BD3 /* RACErrorSignal.h in Headers */ = {isa = PBXBuildFile; fileRef = 8A1C307E8FEFBA82972B9B07D9B7046E /* RACErrorSignal.h */; settings = {ATTRIBUTES = (Public, ); }; }; + B64647DA56D15CFFBC2D08FE68DDDAF5 /* LLEditTableViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 41D0B4C90B70DFCDBB0DA39579E7BE8E /* LLEditTableViewController.m */; }; + B663DA1570F015D53874F12180B0567A /* QCloudClientContext.h in Headers */ = {isa = PBXBuildFile; fileRef = B814FE7579B6E29BCC634F44EFE75BBD /* QCloudClientContext.h */; settings = {ATTRIBUTES = (Public, ); }; }; + B66AE656B760A57B2E8E526B998485D3 /* SDAnimatedImageView.m in Sources */ = {isa = PBXBuildFile; fileRef = B02CD8CDEFE292CD3557E36E17A6FB7B /* SDAnimatedImageView.m */; }; + B680C2604BD8BC9644AE7C67BC46B9BB /* MASLayoutConstraint.h in Headers */ = {isa = PBXBuildFile; fileRef = 965810800994EDF115FC7C81D968BB02 /* MASLayoutConstraint.h */; settings = {ATTRIBUTES = (Public, ); }; }; + B6897957CFAE31BADA80A435846913D8 /* QCloudCOSXMLService+Quality.h in Headers */ = {isa = PBXBuildFile; fileRef = 3D226186D297226D69E92A635E08589E /* QCloudCOSXMLService+Quality.h */; settings = {ATTRIBUTES = (Public, ); }; }; + B69BC8B912CBBD7C480EF81BD9C7B679 /* TUIConfig.h in Headers */ = {isa = PBXBuildFile; fileRef = 01DA4F808EAFF56600BCF643C6F5B140 /* TUIConfig.h */; settings = {ATTRIBUTES = (Public, ); }; }; + B6B0AD7C9E10927FE301E67352E3DC21 /* upsampling_neon.c in Sources */ = {isa = PBXBuildFile; fileRef = 4749025CEF819C1EAA96E665712CB546 /* upsampling_neon.c */; settings = {COMPILER_FLAGS = "-D_THREAD_SAFE -fno-objc-arc"; }; }; + B6B77A9DBB88AB37C868D97E54E4AE5A /* Api.pbobjc.h in Headers */ = {isa = PBXBuildFile; fileRef = 2B436A74C6297AC8EE4528037D917BB5 /* Api.pbobjc.h */; settings = {ATTRIBUTES = (Public, ); }; }; + B6B9E5CB44FF88EFC0AE1CBC28A1A414 /* NSArray+YYAdd.m in Sources */ = {isa = PBXBuildFile; fileRef = 756CFFC7E845E22F34C163C4786A31A7 /* NSArray+YYAdd.m */; }; + B6C3FB61E9A9E6CF5EBDD17519B0B655 /* QCloudInitiateMultipartUploadResult.h in Headers */ = {isa = PBXBuildFile; fileRef = F6C4A98C4C710857DAA95E235C7EFC13 /* QCloudInitiateMultipartUploadResult.h */; settings = {ATTRIBUTES = (Public, ); }; }; + B6CCE1058404DA3053D9E18D214D7E5F /* QCloudLogModel.h in Headers */ = {isa = PBXBuildFile; fileRef = 31316DA21AA80AE3DD0CA7591518F908 /* QCloudLogModel.h */; settings = {ATTRIBUTES = (Public, ); }; }; + B703222F1E24985123B3AAEC0A0624C2 /* QCloudSignature.m in Sources */ = {isa = PBXBuildFile; fileRef = 2EFA6E27307C8BE2B45648F89DA15BE8 /* QCloudSignature.m */; }; + B7066DE77D534E0648F4E35153B9E485 /* QGMP4FrameHWDecoder.m in Sources */ = {isa = PBXBuildFile; fileRef = F213F69EA7F5CBCD3F22BDCFC5408A46 /* QGMP4FrameHWDecoder.m */; }; B7554ACE935EDB764673CC8B15C60DEA /* TUILinkCell_Minimalist.h in Headers */ = {isa = PBXBuildFile; fileRef = 6009D6F586D3EA39BEF69DD730FFE527 /* TUILinkCell_Minimalist.h */; settings = {ATTRIBUTES = (Public, ); }; }; - B7648CB7A7E7710660F3127D97A45A99 /* QGBaseAnimatedImageFrame.m in Sources */ = {isa = PBXBuildFile; fileRef = 302F072C7A785349E26A8017AE226699 /* QGBaseAnimatedImageFrame.m */; }; + B7648CB7A7E7710660F3127D97A45A99 /* QGBaseAnimatedImageFrame.m in Sources */ = {isa = PBXBuildFile; fileRef = 65A5E1F52BB005E19DA58259743A63DB /* QGBaseAnimatedImageFrame.m */; }; B76694ED45F93710C4662A7DAFE10C9B /* TUIJoinGroupMessageCell.h in Headers */ = {isa = PBXBuildFile; fileRef = 435A259AFFAA7D677132640D57782A61 /* TUIJoinGroupMessageCell.h */; settings = {ATTRIBUTES = (Public, ); }; }; - B79C5211CB9EAD7F0370A3FF5AA52339 /* PrivacyInfo.xcprivacy in Resources */ = {isa = PBXBuildFile; fileRef = C3CB87DA9EDE7FF41B2520CFA0441069 /* PrivacyInfo.xcprivacy */; }; - B7C57A55A892301550A7BEFF1C9E6754 /* YBIBVideoData+Internal.h in Headers */ = {isa = PBXBuildFile; fileRef = 1A05C39702EF96E64D5A8F78FAA0AEE7 /* YBIBVideoData+Internal.h */; settings = {ATTRIBUTES = (Public, ); }; }; - B7C873D76AB33D94EE7C5ABE8C048CDD /* QGHWDMetalShaderSourceDefine.h in Headers */ = {isa = PBXBuildFile; fileRef = 8653C49168871FE0C9AB90AAC3161298 /* QGHWDMetalShaderSourceDefine.h */; settings = {ATTRIBUTES = (Public, ); }; }; - B7CB745A21CDC4A896554B3401B55632 /* TZAssetCell.h in Headers */ = {isa = PBXBuildFile; fileRef = EE843AE22A85DEB0DB74332F863118A8 /* TZAssetCell.h */; settings = {ATTRIBUTES = (Public, ); }; }; - B7D013AF092BD6A1532B9063FDF32627 /* OSSGetBucketInfoRequest.h in Headers */ = {isa = PBXBuildFile; fileRef = 038598EF7831757144B9C4460E6D0C25 /* OSSGetBucketInfoRequest.h */; settings = {ATTRIBUTES = (Public, ); }; }; - B7E5D975A14EE67EBE9EEEDA62E03FBA /* SDWebImageCompat.m in Sources */ = {isa = PBXBuildFile; fileRef = 949810BF2C56B33BC4CF2C2E7814297D /* SDWebImageCompat.m */; }; - B806CEB6DD744A19286FF0E9D4E7AF67 /* UIKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 83AC327FDFB768874F13D3CD20C46095 /* UIKit.framework */; }; - B8231839D764B5F9F7F07D57E5707A96 /* LLTableViewSelectableModel.h in Headers */ = {isa = PBXBuildFile; fileRef = C2B4786D06C98C7F54D8623D193E883C /* LLTableViewSelectableModel.h */; settings = {ATTRIBUTES = (Public, ); }; }; + B7B92A481B566A1189A28A49F21FCA67 /* QCloudGCDTimer.m in Sources */ = {isa = PBXBuildFile; fileRef = EA2215D9AD8C51079F9D11EC84FBAFBC /* QCloudGCDTimer.m */; }; + B7C57A55A892301550A7BEFF1C9E6754 /* YBIBVideoData+Internal.h in Headers */ = {isa = PBXBuildFile; fileRef = 5F78210C3D90DFCC8312FC285147E50B /* YBIBVideoData+Internal.h */; settings = {ATTRIBUTES = (Public, ); }; }; + B7C873D76AB33D94EE7C5ABE8C048CDD /* QGHWDMetalShaderSourceDefine.h in Headers */ = {isa = PBXBuildFile; fileRef = 100995F6875D8295B7AA9D82EDD55E4C /* QGHWDMetalShaderSourceDefine.h */; settings = {ATTRIBUTES = (Public, ); }; }; + B7CB745A21CDC4A896554B3401B55632 /* TZAssetCell.h in Headers */ = {isa = PBXBuildFile; fileRef = 53FC59E8871EFCA8BDDB19867B4DA92B /* TZAssetCell.h */; settings = {ATTRIBUTES = (Public, ); }; }; + B7D013AF092BD6A1532B9063FDF32627 /* OSSGetBucketInfoRequest.h in Headers */ = {isa = PBXBuildFile; fileRef = B416AE5CAE1C71E0CD37C132DDACE397 /* OSSGetBucketInfoRequest.h */; settings = {ATTRIBUTES = (Public, ); }; }; + B8033ED03DE7D7EB785A2E16A29F1E45 /* QCloudMediaPath.m in Sources */ = {isa = PBXBuildFile; fileRef = 3026EF929E12F0F3B8CB1459F141F2C8 /* QCloudMediaPath.m */; }; + B8231839D764B5F9F7F07D57E5707A96 /* LLTableViewSelectableModel.h in Headers */ = {isa = PBXBuildFile; fileRef = 088A9BB1F55EE2A7D6EEC65D069CDDDF /* LLTableViewSelectableModel.h */; settings = {ATTRIBUTES = (Public, ); }; }; B83265CF308C94BEA7DCAB56B73032B3 /* TUIVideoMessageCell_Minimalist.h in Headers */ = {isa = PBXBuildFile; fileRef = 3EE8008F97A8FAE3D61F96263684D669 /* TUIVideoMessageCell_Minimalist.h */; settings = {ATTRIBUTES = (Public, ); }; }; - B846E213F484806CB8E4F74F2DFA9EFE /* SDWebImageDownloaderRequestModifier.m in Sources */ = {isa = PBXBuildFile; fileRef = 19963A5B4C3FD728A2A2BE72D49BF3ED /* SDWebImageDownloaderRequestModifier.m */; }; - B865342C07336C6FFD6CA646C7C77BD5 /* LLDetailTitleCellView.m in Sources */ = {isa = PBXBuildFile; fileRef = E6823DB47E243B6C276E36DA486D9CB6 /* LLDetailTitleCellView.m */; }; - B8BECE7D339672F210CD274C109AEE91 /* LLConst.h in Headers */ = {isa = PBXBuildFile; fileRef = E4448B6915B179BFEAEF6245B3BE722F /* LLConst.h */; settings = {ATTRIBUTES = (Public, ); }; }; - B8D4B7844F609416726F0B02FCAEA660 /* frame_enc.c in Sources */ = {isa = PBXBuildFile; fileRef = AC65407532F4C689DB36CD6A55C47F42 /* frame_enc.c */; settings = {COMPILER_FLAGS = "-D_THREAD_SAFE -fno-objc-arc"; }; }; - B8E83660C660C63DD95B7C25B3C49DC5 /* NSOrderedSet+RACSequenceAdditions.h in Headers */ = {isa = PBXBuildFile; fileRef = 9C89FB44434DDB60D130F00D76923E32 /* NSOrderedSet+RACSequenceAdditions.h */; settings = {ATTRIBUTES = (Public, ); }; }; - B91267D4D0CE9A88612A62F9773F318B /* GPBUnknownField.h in Headers */ = {isa = PBXBuildFile; fileRef = E62FC92A2402198CAD267624467EBB81 /* GPBUnknownField.h */; settings = {ATTRIBUTES = (Public, ); }; }; - B923A9D47DED275F89115F2DB36C08DF /* webp_enc.c in Sources */ = {isa = PBXBuildFile; fileRef = ECCB174B0A81D9A9938707FE508CF775 /* webp_enc.c */; settings = {COMPILER_FLAGS = "-D_THREAD_SAFE -fno-objc-arc"; }; }; - B92BD83C69F10179ECCBF07FE6132768 /* RACScheduler.m in Sources */ = {isa = PBXBuildFile; fileRef = B3B8814894BF2C5AD4EA8B779B0B9C7C /* RACScheduler.m */; }; - B940240C643CCC1314AC65D48E4CE89E /* YYTextUtilities.h in Headers */ = {isa = PBXBuildFile; fileRef = CB57056147B572AA16AC8F3A6F8F3DE7 /* YYTextUtilities.h */; settings = {ATTRIBUTES = (Public, ); }; }; - B948DCB652CEF1509FBE410D85844A53 /* JXCategoryView-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = 8036E4822E47748646E4C8079711ADDC /* JXCategoryView-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; + B849E98A7F0418DD1EC781B1A4251B36 /* QCloudAbortMultipfartUploadRequest.m in Sources */ = {isa = PBXBuildFile; fileRef = 26F00CE6C2177CBF210C5AF90F10CA73 /* QCloudAbortMultipfartUploadRequest.m */; }; + B865342C07336C6FFD6CA646C7C77BD5 /* LLDetailTitleCellView.m in Sources */ = {isa = PBXBuildFile; fileRef = 4F155FE321E6C657B174544964510452 /* LLDetailTitleCellView.m */; }; + B8B1C1A5559FA55B49DB43C0D784B5FC /* SDWebImageCacheSerializer.h in Headers */ = {isa = PBXBuildFile; fileRef = 8714EB5687EBCDAB9ED109CBA2304678 /* SDWebImageCacheSerializer.h */; settings = {ATTRIBUTES = (Public, ); }; }; + B8BECE7D339672F210CD274C109AEE91 /* LLConst.h in Headers */ = {isa = PBXBuildFile; fileRef = AAB4BD16A648A317D96D75896A66A041 /* LLConst.h */; settings = {ATTRIBUTES = (Public, ); }; }; + B8E83660C660C63DD95B7C25B3C49DC5 /* NSOrderedSet+RACSequenceAdditions.h in Headers */ = {isa = PBXBuildFile; fileRef = 85F9486B1EEC1FA8DC233D68E45DF135 /* NSOrderedSet+RACSequenceAdditions.h */; settings = {ATTRIBUTES = (Public, ); }; }; + B91267D4D0CE9A88612A62F9773F318B /* GPBUnknownField.h in Headers */ = {isa = PBXBuildFile; fileRef = 52305ABD7AE6E1655DCC400E006B01C9 /* GPBUnknownField.h */; settings = {ATTRIBUTES = (Public, ); }; }; + B92BD83C69F10179ECCBF07FE6132768 /* RACScheduler.m in Sources */ = {isa = PBXBuildFile; fileRef = 9FE5CD4036232CDEB1DB2A5E819F05C3 /* RACScheduler.m */; }; + B940240C643CCC1314AC65D48E4CE89E /* YYTextUtilities.h in Headers */ = {isa = PBXBuildFile; fileRef = 21DAC2923687FADD0F17B351077F7093 /* YYTextUtilities.h */; settings = {ATTRIBUTES = (Public, ); }; }; + B944926565AB468585AE5DDA990ED8C0 /* SDImageAPNGCoder.m in Sources */ = {isa = PBXBuildFile; fileRef = E75877C0839B68DB156C9EFC81B0FB0F /* SDImageAPNGCoder.m */; }; + B948DCB652CEF1509FBE410D85844A53 /* JXCategoryView-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = E6DFAC3D5BD0F0C59D1B7FE00E877897 /* JXCategoryView-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; B952FCEEC0868FD82E9C3EDD5F16B304 /* TUIFloatViewController.h in Headers */ = {isa = PBXBuildFile; fileRef = E1101C61C1A4BDAA8BB778E75DF00D2B /* TUIFloatViewController.h */; settings = {ATTRIBUTES = (Public, ); }; }; - B957506997F25053B7F13CFFE55F5908 /* alpha_processing_sse2.c in Sources */ = {isa = PBXBuildFile; fileRef = CF552B94D869FC0760C9EF232E9EF18D /* alpha_processing_sse2.c */; settings = {COMPILER_FLAGS = "-D_THREAD_SAFE -fno-objc-arc"; }; }; - B9713A191E896B331A7281BCBB3D755B /* YYTextView.m in Sources */ = {isa = PBXBuildFile; fileRef = F9CEA56BA9A2CA9ACE092EF99CFCB1C0 /* YYTextView.m */; }; + B9713A191E896B331A7281BCBB3D755B /* YYTextView.m in Sources */ = {isa = PBXBuildFile; fileRef = 0CDC2C1A08243A156278FF08784187CE /* YYTextView.m */; }; B9AD16DD951237289B943730F648ECED /* TUIEvaluationCellData.h in Headers */ = {isa = PBXBuildFile; fileRef = 91AF72E84F1B3D7D62712559F9173D1C /* TUIEvaluationCellData.h */; settings = {ATTRIBUTES = (Public, ); }; }; - B9AD528414906CA2F7EFC29C105A4835 /* YBIBScreenRotationHandler.m in Sources */ = {isa = PBXBuildFile; fileRef = 90CC5D58CDA022F0DAD838A155F88E67 /* YBIBScreenRotationHandler.m */; }; + B9AD528414906CA2F7EFC29C105A4835 /* YBIBScreenRotationHandler.m in Sources */ = {isa = PBXBuildFile; fileRef = 6E1CC47E5A93F5216740AD047F73418C /* YBIBScreenRotationHandler.m */; }; B9B2F5FC79BD7883C24D60FC7DDDDDF7 /* TUIVideoCollectionCell_Minimalist.h in Headers */ = {isa = PBXBuildFile; fileRef = F39FB78955E98B67315B93BAD487EA3D /* TUIVideoCollectionCell_Minimalist.h */; settings = {ATTRIBUTES = (Public, ); }; }; B9C8FE44521FDABE51E5700736C97036 /* TUIChatConversationModel.m in Sources */ = {isa = PBXBuildFile; fileRef = A200D818BDB69B5F0D77D66B2DE78A3D /* TUIChatConversationModel.m */; }; B9D0D5D42CB2CD3652108C38B15E2868 /* TUIFileReplyQuoteViewData.m in Sources */ = {isa = PBXBuildFile; fileRef = F1081D72699581714977A28594C061DA /* TUIFileReplyQuoteViewData.m */; }; - BA1172AA4D566319FBBCEE8D64799A9B /* GPBWrappers.pbobjc.h in Headers */ = {isa = PBXBuildFile; fileRef = 604B6177D7F790BBC99D79B61A10403E /* GPBWrappers.pbobjc.h */; settings = {ATTRIBUTES = (Public, ); }; }; + B9F5ED32289AD39F394E3BC4811B4471 /* QCloudNetProfile.h in Headers */ = {isa = PBXBuildFile; fileRef = E2918D96F62616700A9E9F0E5906271C /* QCloudNetProfile.h */; settings = {ATTRIBUTES = (Public, ); }; }; + BA1172AA4D566319FBBCEE8D64799A9B /* GPBWrappers.pbobjc.h in Headers */ = {isa = PBXBuildFile; fileRef = 46862E466AB9C3701971CA5F6591D0DC /* GPBWrappers.pbobjc.h */; settings = {ATTRIBUTES = (Public, ); }; }; BA241D68511B97976412004217C94F6A /* TUIFoldConversationListBaseDataProvider.m in Sources */ = {isa = PBXBuildFile; fileRef = B8A83C9055BE34E4EF6EC84D0CB16FE2 /* TUIFoldConversationListBaseDataProvider.m */; }; - BA33FDF0735B8784707F2C861A9A736E /* OSSGetSymlinkResult.m in Sources */ = {isa = PBXBuildFile; fileRef = BE18BF96F9ED11445CF8FC24F2AA203D /* OSSGetSymlinkResult.m */; }; - BA6E8A36E704F9DBF7CE5B28EE03D17D /* types.h in Headers */ = {isa = PBXBuildFile; fileRef = CC11E565DFEDF2A27A5B9778C85ACE5F /* types.h */; settings = {ATTRIBUTES = (Public, ); }; }; - BA7C931B06D672353400DC9A679FC09E /* LLLogViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = B13E833E737474C1E3C8C2ABC68ABDFC /* LLLogViewController.m */; }; - BA904ABA8ED36CC4E5EB2B2004CA1F18 /* MASCompositeConstraint.h in Headers */ = {isa = PBXBuildFile; fileRef = 1DFC4FE506A8B7A0543399AA7D659D80 /* MASCompositeConstraint.h */; settings = {ATTRIBUTES = (Public, ); }; }; - BAB0D385B3DBF9F9B4271F46B77F9107 /* UIImageView+HighlightedWebCache.m in Sources */ = {isa = PBXBuildFile; fileRef = 227482112708CF2FCE79D210B0E78238 /* UIImageView+HighlightedWebCache.m */; }; - BAB610573F10DEDE42406078AC9476D3 /* AliyunOSSiOS.h in Headers */ = {isa = PBXBuildFile; fileRef = 7E6905C34F7E865783EE450007EA8B53 /* AliyunOSSiOS.h */; settings = {ATTRIBUTES = (Public, ); }; }; - BACAA91A92F35CD7E7795232A83F21D1 /* AFNetworkActivityIndicatorManager.m in Sources */ = {isa = PBXBuildFile; fileRef = BC57EAE742A855E9BD49E4B6B2435ACA /* AFNetworkActivityIndicatorManager.m */; }; + BA33FDF0735B8784707F2C861A9A736E /* OSSGetSymlinkResult.m in Sources */ = {isa = PBXBuildFile; fileRef = 74EBA74B7708B22C55E2C20743A36E39 /* OSSGetSymlinkResult.m */; }; + BA4B082C97EBEBF8460ECAA73FE9CF7D /* SDWebImageDownloaderResponseModifier.m in Sources */ = {isa = PBXBuildFile; fileRef = D35260602FA0F8F5989140704877FD64 /* SDWebImageDownloaderResponseModifier.m */; }; + BA7C931B06D672353400DC9A679FC09E /* LLLogViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 1617859C27A41F6DAFA1D3C071CDC62C /* LLLogViewController.m */; }; + BA8B5D5F70629D43837887B349F98D93 /* QCloudCOSXMLServiceUtilities.h in Headers */ = {isa = PBXBuildFile; fileRef = 0EC2622C154983CB5B159DA232D30CAB /* QCloudCOSXMLServiceUtilities.h */; settings = {ATTRIBUTES = (Public, ); }; }; + BA904ABA8ED36CC4E5EB2B2004CA1F18 /* MASCompositeConstraint.h in Headers */ = {isa = PBXBuildFile; fileRef = B1960E596D16DDF3EF0C424A461DCF7D /* MASCompositeConstraint.h */; settings = {ATTRIBUTES = (Public, ); }; }; + BAB610573F10DEDE42406078AC9476D3 /* AliyunOSSiOS.h in Headers */ = {isa = PBXBuildFile; fileRef = C87D4A32A49F0866458481A6C4751363 /* AliyunOSSiOS.h */; settings = {ATTRIBUTES = (Public, ); }; }; + BACAA91A92F35CD7E7795232A83F21D1 /* AFNetworkActivityIndicatorManager.m in Sources */ = {isa = PBXBuildFile; fileRef = 41E17BB7482527F1150B0125BDE89249 /* AFNetworkActivityIndicatorManager.m */; }; BADD1A8101E057EB95AB8FE4E4364E4C /* TUIMessageDataProvider+MessageDeal.m in Sources */ = {isa = PBXBuildFile; fileRef = 86A0E774E4F0A0D70B4212FA5C0F653C /* TUIMessageDataProvider+MessageDeal.m */; }; - BB02300750C2DBC52F7209EC008743BA /* YYTextInput.h in Headers */ = {isa = PBXBuildFile; fileRef = D1D010B8277004C4E2A48274EB8D5712 /* YYTextInput.h */; settings = {ATTRIBUTES = (Public, ); }; }; - BB6F9FFD17C2A85CC9DE61C60D4BD853 /* LLDebugToolMacros.h in Headers */ = {isa = PBXBuildFile; fileRef = 8D765DB25B9D7DBCE9FC93E5DDC1A929 /* LLDebugToolMacros.h */; settings = {ATTRIBUTES = (Public, ); }; }; - BB90806E75565C863473ABE545A5AEEF /* LLWindowManager+Crash.m in Sources */ = {isa = PBXBuildFile; fileRef = F8646204A9026BCB3F61952D8EA7BE6A /* LLWindowManager+Crash.m */; }; - BB99F9A5505E18E8AB3BF9D27989ECC1 /* CALayer+YYAdd.m in Sources */ = {isa = PBXBuildFile; fileRef = F31E5EBBD12D52E630D943496A9151D0 /* CALayer+YYAdd.m */; }; - BBA7D6B1F5A85263992FEDA1FF97BA10 /* NSObject+RACSelectorSignal.h in Headers */ = {isa = PBXBuildFile; fileRef = 0F99A474F50D0D618E7941A0F9C72BB4 /* NSObject+RACSelectorSignal.h */; settings = {ATTRIBUTES = (Public, ); }; }; - BBD19F40B97082E748BE5AC44CDAA51C /* SDImageLoader.h in Headers */ = {isa = PBXBuildFile; fileRef = 0D967903D66EE300DF9951A621BA3E28 /* SDImageLoader.h */; settings = {ATTRIBUTES = (Public, ); }; }; - BBE87AECC8A612065F059DB7049872FA /* LLScreenshotComponent.m in Sources */ = {isa = PBXBuildFile; fileRef = 7CC1FF2AD5452B874857B99A32DBFE0F /* LLScreenshotComponent.m */; }; - BBE8F52B274AF0A63061166A01DB8256 /* SDImageIOCoder.h in Headers */ = {isa = PBXBuildFile; fileRef = 12B4974D415230D74852002771EE0573 /* SDImageIOCoder.h */; settings = {ATTRIBUTES = (Public, ); }; }; + BB02300750C2DBC52F7209EC008743BA /* YYTextInput.h in Headers */ = {isa = PBXBuildFile; fileRef = 9421733E9492EBAF4554BC01E63F5532 /* YYTextInput.h */; settings = {ATTRIBUTES = (Public, ); }; }; + BB286D5891602B90B68396EDCDABA8F7 /* QCloudHTTPSessionManager_Private.h in Headers */ = {isa = PBXBuildFile; fileRef = E60519A2D9722774AF56F53435310688 /* QCloudHTTPSessionManager_Private.h */; settings = {ATTRIBUTES = (Public, ); }; }; + BB6F9FFD17C2A85CC9DE61C60D4BD853 /* LLDebugToolMacros.h in Headers */ = {isa = PBXBuildFile; fileRef = 6DF71A201F9C7E86BCE095F7751E3E95 /* LLDebugToolMacros.h */; settings = {ATTRIBUTES = (Public, ); }; }; + BB90806E75565C863473ABE545A5AEEF /* LLWindowManager+Crash.m in Sources */ = {isa = PBXBuildFile; fileRef = D92C781EF12BC4CE352A097B1945E1B6 /* LLWindowManager+Crash.m */; }; + BB99148AF384D4B1D781BC8B52172CD3 /* Zip-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = 64E8FCDBEE64029AF0E2945C34E14D6F /* Zip-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; + BB99F9A5505E18E8AB3BF9D27989ECC1 /* CALayer+YYAdd.m in Sources */ = {isa = PBXBuildFile; fileRef = E524F37DDADC6EFAD23EF3D70AD82BEA /* CALayer+YYAdd.m */; }; + BBA7D6B1F5A85263992FEDA1FF97BA10 /* NSObject+RACSelectorSignal.h in Headers */ = {isa = PBXBuildFile; fileRef = EE8DD1631CED20D33D65CF1D7410FD17 /* NSObject+RACSelectorSignal.h */; settings = {ATTRIBUTES = (Public, ); }; }; + BBC531D8F4D7B804AAC8C7805052C8E0 /* utils.c in Sources */ = {isa = PBXBuildFile; fileRef = 29F54965534035F73529270C6DF40B9B /* utils.c */; settings = {COMPILER_FLAGS = "-D_THREAD_SAFE -fno-objc-arc"; }; }; + BBE87AECC8A612065F059DB7049872FA /* LLScreenshotComponent.m in Sources */ = {isa = PBXBuildFile; fileRef = 3FB7B517F1494290323D2B25911FB805 /* LLScreenshotComponent.m */; }; BBEEFD714540BBDC873B782FA65B571C /* TUILocalTipsCellData.h in Headers */ = {isa = PBXBuildFile; fileRef = 532DE30E5C50174E1ACE829BEA5AC080 /* TUILocalTipsCellData.h */; settings = {ATTRIBUTES = (Public, ); }; }; BBF52AA1E4701487971B6EC91D182DE8 /* TUIImageCollectionCell.m in Sources */ = {isa = PBXBuildFile; fileRef = 711039907C470CFC941E325544BC7CF6 /* TUIImageCollectionCell.m */; }; - BC0E95FE25D8CCC1F7BD3FBA44CC05A5 /* SVGAVideoSpriteFrameEntity.h in Headers */ = {isa = PBXBuildFile; fileRef = 0B3FB1F121C2D1AEA313F413197FF936 /* SVGAVideoSpriteFrameEntity.h */; settings = {ATTRIBUTES = (Public, ); }; }; + BC0E95FE25D8CCC1F7BD3FBA44CC05A5 /* SVGAVideoSpriteFrameEntity.h in Headers */ = {isa = PBXBuildFile; fileRef = F7D90F07BFA68E516E547E373F65E4B7 /* SVGAVideoSpriteFrameEntity.h */; settings = {ATTRIBUTES = (Public, ); }; }; BC22B42EFEF0FFB47F09B6A527E8ED1F /* TUIFileMessageCell_Minimalist.h in Headers */ = {isa = PBXBuildFile; fileRef = DEFD7EB8420DE2362781DDF46E24FD1B /* TUIFileMessageCell_Minimalist.h */; settings = {ATTRIBUTES = (Public, ); }; }; - BC2F9B1D6986FEB23B4FB1288B512538 /* MJRefreshNormalTrailer.h in Headers */ = {isa = PBXBuildFile; fileRef = 32E751318C392BA743CC1802177F458D /* MJRefreshNormalTrailer.h */; settings = {ATTRIBUTES = (Public, ); }; }; - BC4A8237493422E675B2706AA113E68B /* YYTextSelectionView.h in Headers */ = {isa = PBXBuildFile; fileRef = 23FB420840016DC5AFA1637003067FDD /* YYTextSelectionView.h */; settings = {ATTRIBUTES = (Public, ); }; }; - BC5458210A973BC7A29D1F45D458A14B /* AFNetworking-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = 83712669C7F8FCE94AB6932D04341B35 /* AFNetworking-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; + BC2F9B1D6986FEB23B4FB1288B512538 /* MJRefreshNormalTrailer.h in Headers */ = {isa = PBXBuildFile; fileRef = D3E3C7EFAD924F6C0AB18FB04A025563 /* MJRefreshNormalTrailer.h */; settings = {ATTRIBUTES = (Public, ); }; }; + BC4A250A28A829BABA72CC85507993C9 /* YYImage.m in Sources */ = {isa = PBXBuildFile; fileRef = 24AD4797CCBB26B169EC0FAAFED2E158 /* YYImage.m */; }; + BC4A8237493422E675B2706AA113E68B /* YYTextSelectionView.h in Headers */ = {isa = PBXBuildFile; fileRef = 23E88DF7BADAE32913AD6B69D10C64B9 /* YYTextSelectionView.h */; settings = {ATTRIBUTES = (Public, ); }; }; + BC5458210A973BC7A29D1F45D458A14B /* AFNetworking-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = 1D56A2F383AE52A2E3DF3A6F4B254740 /* AFNetworking-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; + BC5C6F9B985EDE983548FD63D7A650F7 /* QCloudSandboxPath.m in Sources */ = {isa = PBXBuildFile; fileRef = 35FB9CEABCB769EFEE6032EC483218D6 /* QCloudSandboxPath.m */; }; BC6036D51C7365B2E517559BF3120732 /* TUIImageReplyQuoteView.m in Sources */ = {isa = PBXBuildFile; fileRef = 79D6C309FA26434A55A4DBA122CC04CF /* TUIImageReplyQuoteView.m */; }; - BC60AF43B11C3B3BEA8E91CD67B3EB0C /* UISegmentedControl+RACSignalSupport.h in Headers */ = {isa = PBXBuildFile; fileRef = D28AE5C239DB630C7D59111EAE83EC08 /* UISegmentedControl+RACSignalSupport.h */; settings = {ATTRIBUTES = (Public, ); }; }; - BC69ED49FF4FA7E6C2B88BE29CBAA969 /* sharpyuv_dsp.c in Sources */ = {isa = PBXBuildFile; fileRef = B15739D3AA245DC3EF6AD0F8B840BEA6 /* sharpyuv_dsp.c */; settings = {COMPILER_FLAGS = "-D_THREAD_SAFE -fno-objc-arc"; }; }; + BC60AF43B11C3B3BEA8E91CD67B3EB0C /* UISegmentedControl+RACSignalSupport.h in Headers */ = {isa = PBXBuildFile; fileRef = B75D4455617F6A55CDB1F1819FD7D2B8 /* UISegmentedControl+RACSignalSupport.h */; settings = {ATTRIBUTES = (Public, ); }; }; BC6EE58BC216E60A886D7D65B7495538 /* TUIEmojiMeditorProtocolProvider.m in Sources */ = {isa = PBXBuildFile; fileRef = F386B586F40CECF14B9D7FD3C6A1BC9C /* TUIEmojiMeditorProtocolProvider.m */; }; - BCA586E5D8C61CB5D32A9E947C277B06 /* MQTTSSLSecurityPolicyTransport.h in Headers */ = {isa = PBXBuildFile; fileRef = D2A4C52251BC280747DE59A47A15BDC3 /* MQTTSSLSecurityPolicyTransport.h */; settings = {ATTRIBUTES = (Public, ); }; }; - BCA597780C9ECA993B3E2754BE10BD91 /* TAAnimatedDotView.m in Sources */ = {isa = PBXBuildFile; fileRef = DB2489678F172BAD201F79F168B58003 /* TAAnimatedDotView.m */; }; - BCA6B45AB0A0A3C7C67A31BD72CE399B /* SVGAImageView.h in Headers */ = {isa = PBXBuildFile; fileRef = DB92A990EE9627C698FCE4FC3A621586 /* SVGAImageView.h */; settings = {ATTRIBUTES = (Public, ); }; }; - BCA947B348A2977CD7E8B8ADB78E6851 /* YYTextArchiver.m in Sources */ = {isa = PBXBuildFile; fileRef = EA2D1C583B28A8391498037B6ED2FCDD /* YYTextArchiver.m */; }; - BCEEAFC24178DE5AABACC74245CE1739 /* JXCategoryIndicatorDotLineView.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A08A5E94EC468E382567565BA021F6D /* JXCategoryIndicatorDotLineView.h */; settings = {ATTRIBUTES = (Public, ); }; }; + BCA586E5D8C61CB5D32A9E947C277B06 /* MQTTSSLSecurityPolicyTransport.h in Headers */ = {isa = PBXBuildFile; fileRef = 3F39009C47540616A374AD859EAC041F /* MQTTSSLSecurityPolicyTransport.h */; settings = {ATTRIBUTES = (Public, ); }; }; + BCA597780C9ECA993B3E2754BE10BD91 /* TAAnimatedDotView.m in Sources */ = {isa = PBXBuildFile; fileRef = C3173ED05775B7C9091125BBE55C87DB /* TAAnimatedDotView.m */; }; + BCA6B45AB0A0A3C7C67A31BD72CE399B /* SVGAImageView.h in Headers */ = {isa = PBXBuildFile; fileRef = 1BC9E6647B45DB7C2F29655EE5CB5F55 /* SVGAImageView.h */; settings = {ATTRIBUTES = (Public, ); }; }; + BCA947B348A2977CD7E8B8ADB78E6851 /* YYTextArchiver.m in Sources */ = {isa = PBXBuildFile; fileRef = 2D9498C72BF0862841ADE049DC35EBF6 /* YYTextArchiver.m */; }; + BCEEAFC24178DE5AABACC74245CE1739 /* JXCategoryIndicatorDotLineView.h in Headers */ = {isa = PBXBuildFile; fileRef = F41DC36374C12FD0B41A9BD33F9A414F /* JXCategoryIndicatorDotLineView.h */; settings = {ATTRIBUTES = (Public, ); }; }; BD25095891DFD33AEA896C3469588001 /* CoreText.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = DC8C16342A53C061414E552D24448B80 /* CoreText.framework */; }; - BD30193C1E3D7B1F17B1B1F3F08BE655 /* UICollectionViewLayout+MJRefresh.m in Sources */ = {isa = PBXBuildFile; fileRef = 57583963A259C911485591807DC0F658 /* UICollectionViewLayout+MJRefresh.m */; }; - BD4CA7F3A3B82D603150486BA91C207B /* NSArray+AvoidCrash.h in Headers */ = {isa = PBXBuildFile; fileRef = FC9C62B42AF240A645A8660E04179C51 /* NSArray+AvoidCrash.h */; settings = {ATTRIBUTES = (Public, ); }; }; - BD50F26C5ACD87DBC6751E5A3C67B26E /* OSSSignUtils.h in Headers */ = {isa = PBXBuildFile; fileRef = 18420021A7B1BD23BE8FD0CC278C9B57 /* OSSSignUtils.h */; settings = {ATTRIBUTES = (Public, ); }; }; - BD581D2B28819B151066194D4471202D /* LLBaseWindow.m in Sources */ = {isa = PBXBuildFile; fileRef = 3474A9A3EA75EA3C4C4A50231107106B /* LLBaseWindow.m */; }; - BD581DAE148A2AFC0E2C1ECA447F42CC /* YYDiskCache.h in Headers */ = {isa = PBXBuildFile; fileRef = 223957C4542E867790E30E38FAB68101 /* YYDiskCache.h */; settings = {ATTRIBUTES = (Public, ); }; }; - BD7E02AB6057AD5A6AC513C34D508135 /* JXCategoryIndicatorBackgroundView.h in Headers */ = {isa = PBXBuildFile; fileRef = 7223D9EBC06D49EABD3C615105D8DD6A /* JXCategoryIndicatorBackgroundView.h */; settings = {ATTRIBUTES = (Public, ); }; }; - BD8207D8CA4AEE1D73C65DCB949CB174 /* AvoidCrash-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BAB88729652F3EEB258051F3D9AD7C1 /* AvoidCrash-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; - BD8330CC2391605A4692827980FDDCF8 /* LLShortCutViewController.h in Headers */ = {isa = PBXBuildFile; fileRef = EB6DBD77478BEB5BFF41852F6BE2894D /* LLShortCutViewController.h */; settings = {ATTRIBUTES = (Public, ); }; }; - BD9DC803D8940768668C32B8604857D3 /* FMDatabasePool.m in Sources */ = {isa = PBXBuildFile; fileRef = AFAC5634963A089BAF01A98BFA916B7C /* FMDatabasePool.m */; }; - BD9F30A9E6B07A361B8612FE8859759A /* LLWindowManager+Ruler.m in Sources */ = {isa = PBXBuildFile; fileRef = D374C3674BBC4C3442B6B5FE6EB8874E /* LLWindowManager+Ruler.m */; }; - BE039604960D89D03E30CFE6ED3BA661 /* LLWidgetBorderViewController.h in Headers */ = {isa = PBXBuildFile; fileRef = 59B5088B5AA490FBB6DD48CA79DCD5C4 /* LLWidgetBorderViewController.h */; settings = {ATTRIBUTES = (Public, ); }; }; - BE044579E0A56F79B5CE391935325512 /* LLWindowManager.m in Sources */ = {isa = PBXBuildFile; fileRef = 2BE3FE48856F4FDD6EE8892D688B8176 /* LLWindowManager.m */; }; - BE1233FCB7830D16E97F545E0FEB94F9 /* SDDisplayLink.m in Sources */ = {isa = PBXBuildFile; fileRef = 0E945F1FA6B130694897A1BE189DC381 /* SDDisplayLink.m */; }; - BE562BBE3040A3A95DF422DB9F6D4AEB /* LLAppInfoViewController.h in Headers */ = {isa = PBXBuildFile; fileRef = 08FE24AC9B2B2B677617DB1D82FE3B1F /* LLAppInfoViewController.h */; settings = {ATTRIBUTES = (Public, ); }; }; - BE5CCD74B73B0424352DF4EEF9063080 /* decode.h in Headers */ = {isa = PBXBuildFile; fileRef = FB84A08D793388DCA82ED11C9CA236DD /* decode.h */; settings = {ATTRIBUTES = (Public, ); }; }; - BE6663633FD31883D5A8DCEE2F9CB48F /* SDWebImageWebPCoderDefine.h in Headers */ = {isa = PBXBuildFile; fileRef = F000F0FF4F0689C6D6ED21A7BCD32178 /* SDWebImageWebPCoderDefine.h */; settings = {ATTRIBUTES = (Public, ); }; }; - BE71F68E2107DA8E4D9F262541C62D04 /* LLFormatterTool.h in Headers */ = {isa = PBXBuildFile; fileRef = 4B37FE7622671AF38E9104F5234E5935 /* LLFormatterTool.h */; settings = {ATTRIBUTES = (Public, ); }; }; - BE7880A237B0075CA7FA74B78686189B /* LLShortCutViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 392909F55B62B6A86FBFEA9A024D2E61 /* LLShortCutViewController.m */; }; - BE7F6E08A9BDA2EF6FA625EB5CD685EC /* JXCategoryCollectionView.m in Sources */ = {isa = PBXBuildFile; fileRef = 3BC91A08AACBA542289DE7ADBF5396BC /* JXCategoryCollectionView.m */; }; - BE87DEA1F1C3631921BE0CE768EB42F3 /* NSMutableData+OSS_CRC.m in Sources */ = {isa = PBXBuildFile; fileRef = E8C39112CC747EF942B440513B36A908 /* NSMutableData+OSS_CRC.m */; }; + BD30193C1E3D7B1F17B1B1F3F08BE655 /* UICollectionViewLayout+MJRefresh.m in Sources */ = {isa = PBXBuildFile; fileRef = 0623C1E13AA2A0351AFC2BD89FB49763 /* UICollectionViewLayout+MJRefresh.m */; }; + BD4CA7F3A3B82D603150486BA91C207B /* NSArray+AvoidCrash.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BA2DD4C9C01EE157AD9EEC4D0094970 /* NSArray+AvoidCrash.h */; settings = {ATTRIBUTES = (Public, ); }; }; + BD50F26C5ACD87DBC6751E5A3C67B26E /* OSSSignUtils.h in Headers */ = {isa = PBXBuildFile; fileRef = 4D50A1EA600F9C9F5DB4BE5C21FA010A /* OSSSignUtils.h */; settings = {ATTRIBUTES = (Public, ); }; }; + BD581D2B28819B151066194D4471202D /* LLBaseWindow.m in Sources */ = {isa = PBXBuildFile; fileRef = 99878C107A070699FBAB53DE435AEAD8 /* LLBaseWindow.m */; }; + BD581DAE148A2AFC0E2C1ECA447F42CC /* YYDiskCache.h in Headers */ = {isa = PBXBuildFile; fileRef = 3B0029E8D96A8D3921EC957B31A972EB /* YYDiskCache.h */; settings = {ATTRIBUTES = (Public, ); }; }; + BD7E02AB6057AD5A6AC513C34D508135 /* JXCategoryIndicatorBackgroundView.h in Headers */ = {isa = PBXBuildFile; fileRef = C9FC6908461B70BB12B08EDE3AEBC72A /* JXCategoryIndicatorBackgroundView.h */; settings = {ATTRIBUTES = (Public, ); }; }; + BD8207D8CA4AEE1D73C65DCB949CB174 /* AvoidCrash-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = 9EDA984FC606C7786F043FCB36227404 /* AvoidCrash-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; + BD8330CC2391605A4692827980FDDCF8 /* LLShortCutViewController.h in Headers */ = {isa = PBXBuildFile; fileRef = CDEB499910441B5BFEED3F7530C104AC /* LLShortCutViewController.h */; settings = {ATTRIBUTES = (Public, ); }; }; + BD9DC803D8940768668C32B8604857D3 /* FMDatabasePool.m in Sources */ = {isa = PBXBuildFile; fileRef = B4A579B3A81B3E600ADB0583CF752BFA /* FMDatabasePool.m */; }; + BD9F30A9E6B07A361B8612FE8859759A /* LLWindowManager+Ruler.m in Sources */ = {isa = PBXBuildFile; fileRef = 2B65FEBCB0EF76CFAA00EC8509884F17 /* LLWindowManager+Ruler.m */; }; + BDCB50151900EABD7B7F605A2221E6A6 /* lossless_sse41.c in Sources */ = {isa = PBXBuildFile; fileRef = 74B01FB69A5D74BF6A006DF102F3CAD6 /* lossless_sse41.c */; settings = {COMPILER_FLAGS = "-D_THREAD_SAFE -fno-objc-arc"; }; }; + BE039604960D89D03E30CFE6ED3BA661 /* LLWidgetBorderViewController.h in Headers */ = {isa = PBXBuildFile; fileRef = 2FAA394A28F15B541C15C4046428DF50 /* LLWidgetBorderViewController.h */; settings = {ATTRIBUTES = (Public, ); }; }; + BE044579E0A56F79B5CE391935325512 /* LLWindowManager.m in Sources */ = {isa = PBXBuildFile; fileRef = 08963A4BE59A9D5620B36B9DD98D7D3E /* LLWindowManager.m */; }; + BE562BBE3040A3A95DF422DB9F6D4AEB /* LLAppInfoViewController.h in Headers */ = {isa = PBXBuildFile; fileRef = DCD9F9EB746F01DEB20BA6A8D41F36C1 /* LLAppInfoViewController.h */; settings = {ATTRIBUTES = (Public, ); }; }; + BE6663633FD31883D5A8DCEE2F9CB48F /* SDWebImageWebPCoderDefine.h in Headers */ = {isa = PBXBuildFile; fileRef = 707857DC38035C14923222062751DD87 /* SDWebImageWebPCoderDefine.h */; settings = {ATTRIBUTES = (Public, ); }; }; + BE71F68E2107DA8E4D9F262541C62D04 /* LLFormatterTool.h in Headers */ = {isa = PBXBuildFile; fileRef = 5D405D94057F22C3BE308F2B73D62B94 /* LLFormatterTool.h */; settings = {ATTRIBUTES = (Public, ); }; }; + BE745203BA5D7A5EB4C3E03DEA392153 /* sharpyuv.h in Headers */ = {isa = PBXBuildFile; fileRef = B28BF8818C10BF7170B4BA56EF96834F /* sharpyuv.h */; settings = {ATTRIBUTES = (Public, ); }; }; + BE7880A237B0075CA7FA74B78686189B /* LLShortCutViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 9F6E6EA36B24EB7887EAB936CF2A60EA /* LLShortCutViewController.m */; }; + BE7F6E08A9BDA2EF6FA625EB5CD685EC /* JXCategoryCollectionView.m in Sources */ = {isa = PBXBuildFile; fileRef = 67D0842501F67645472CB0385474A295 /* JXCategoryCollectionView.m */; }; + BE87DEA1F1C3631921BE0CE768EB42F3 /* NSMutableData+OSS_CRC.m in Sources */ = {isa = PBXBuildFile; fileRef = 96D60FAA08A4AD43F6A699D26B9D16EC /* NSMutableData+OSS_CRC.m */; }; BE8DE890E953564D5486DD6CBED46FA8 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = F91075A92425F75F02E0E1C8D455AF79 /* Foundation.framework */; }; - BEAF45E532F7B1637D01396A811F74E9 /* rescaler_utils.c in Sources */ = {isa = PBXBuildFile; fileRef = 477DDCF4D85C7A14B3C28209F0EAC480 /* rescaler_utils.c */; settings = {COMPILER_FLAGS = "-D_THREAD_SAFE -fno-objc-arc"; }; }; - BEC9C8B5BD16696AC1FF048B1587F865 /* BRDatePickerView.m in Sources */ = {isa = PBXBuildFile; fileRef = 5FB19E2769E1329704321BF6EEFB773A /* BRDatePickerView.m */; }; - BF0413973E77D35E21C4222412094CEC /* LLScreenshotSelectorModel.h in Headers */ = {isa = PBXBuildFile; fileRef = 41017787FE8316E19321CA326C97E62F /* LLScreenshotSelectorModel.h */; settings = {ATTRIBUTES = (Public, ); }; }; - BF1C5E4D2AA16B57E130CB91C11E98CB /* SDWebImageTransitionInternal.h in Headers */ = {isa = PBXBuildFile; fileRef = 25E1131249ADEB8EA1D97251E12AB6EA /* SDWebImageTransitionInternal.h */; settings = {ATTRIBUTES = (Private, ); }; }; - BF22D137EF6324675FA50080C5D93C00 /* NSArray+MASAdditions.h in Headers */ = {isa = PBXBuildFile; fileRef = D99A30ECE59C31D0F35FAEA010083CF8 /* NSArray+MASAdditions.h */; settings = {ATTRIBUTES = (Public, ); }; }; + BEA7B3709E49BD3290B9D84229702F02 /* SDImageCacheConfig.h in Headers */ = {isa = PBXBuildFile; fileRef = B7A6746B537DB89FA421A75F17088A77 /* SDImageCacheConfig.h */; settings = {ATTRIBUTES = (Public, ); }; }; + BEC9C8B5BD16696AC1FF048B1587F865 /* BRDatePickerView.m in Sources */ = {isa = PBXBuildFile; fileRef = B6A6AC94FB0F9728EB722EEDE82ED258 /* BRDatePickerView.m */; }; + BED98177E97555BBBD0B7F60CA2CA500 /* SDWebImageDownloaderConfig.h in Headers */ = {isa = PBXBuildFile; fileRef = D823FB07B92337051CE017901F7E34A0 /* SDWebImageDownloaderConfig.h */; settings = {ATTRIBUTES = (Public, ); }; }; + BF0413973E77D35E21C4222412094CEC /* LLScreenshotSelectorModel.h in Headers */ = {isa = PBXBuildFile; fileRef = 9485EB0391E1AB078FD719112A7E1C72 /* LLScreenshotSelectorModel.h */; settings = {ATTRIBUTES = (Public, ); }; }; + BF0CC843365A169A0C2BEAF63A7DED30 /* bit_reader_utils.h in Headers */ = {isa = PBXBuildFile; fileRef = 326116131F7F57A4EEF8996A6AEC35F2 /* bit_reader_utils.h */; settings = {ATTRIBUTES = (Project, ); }; }; + BF22D137EF6324675FA50080C5D93C00 /* NSArray+MASAdditions.h in Headers */ = {isa = PBXBuildFile; fileRef = 4EEB90D0BBD347D13F626D96914661D8 /* NSArray+MASAdditions.h */; settings = {ATTRIBUTES = (Public, ); }; }; + BF26DD4287A51050AEEDFF33A9ADB77A /* UIView+WebCacheOperation.h in Headers */ = {isa = PBXBuildFile; fileRef = 89227E5AC00A91AE71BB799F2AA978DF /* UIView+WebCacheOperation.h */; settings = {ATTRIBUTES = (Public, ); }; }; + BF2A55DDFD93A444919121487E00D070 /* SDWebImageDownloader.m in Sources */ = {isa = PBXBuildFile; fileRef = D6E3B653DB0FD359B9959046355F7388 /* SDWebImageDownloader.m */; }; + BF412BC028D5066537B28540F39FB4F7 /* zip.h in Headers */ = {isa = PBXBuildFile; fileRef = 46EB08EC04D8DDD8DE5C65820D7DE3F5 /* zip.h */; settings = {ATTRIBUTES = (Project, ); }; }; BF61A9638C4046244F7504489D6627BB /* CoreGraphics.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 58B0067B68C01AB3887A364BABB15A12 /* CoreGraphics.framework */; }; - BF6427B348D406A127523F03AE2FD939 /* UIView+MP4HWDecode.m in Sources */ = {isa = PBXBuildFile; fileRef = 65C817FECAE62611DC8A0BEEB2B83CDB /* UIView+MP4HWDecode.m */; }; - BF678DA246AB3DA6E6C90F4818543FB1 /* UIDevice+YYAdd.m in Sources */ = {isa = PBXBuildFile; fileRef = A261E9C17E72EC1BE633196C4C30381A /* UIDevice+YYAdd.m */; }; + BF6427B348D406A127523F03AE2FD939 /* UIView+MP4HWDecode.m in Sources */ = {isa = PBXBuildFile; fileRef = 5992088A813055291F36B0344ECDA1A3 /* UIView+MP4HWDecode.m */; }; + BF678DA246AB3DA6E6C90F4818543FB1 /* UIDevice+YYAdd.m in Sources */ = {isa = PBXBuildFile; fileRef = 278B8B9FC1A43DFA4AD50DE7564A612B /* UIDevice+YYAdd.m */; }; BF696ED00F2BE4E5D23A22BAA9611774 /* AVKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 4BD0A4EBEA8C8C68C7257C630C23F78B /* AVKit.framework */; }; - BF769F77F84E702A6718F4D46294E624 /* SVGAVideoEntity.h in Headers */ = {isa = PBXBuildFile; fileRef = C30C2C75897A9BA655D15BCD83C0AF50 /* SVGAVideoEntity.h */; settings = {ATTRIBUTES = (Public, ); }; }; - BF7D73BC31ED41C8C87A7AD8E615BA90 /* UITextView+RACSignalSupport.m in Sources */ = {isa = PBXBuildFile; fileRef = 9EE454B710D757E4DA03F063278B0227 /* UITextView+RACSignalSupport.m */; }; - BF7E2E36C374B7B1CD0A5332F2A9B26E /* RACKVOChannel.m in Sources */ = {isa = PBXBuildFile; fileRef = 0E010EA52E174EAE780E167D3EBA5FAE /* RACKVOChannel.m */; }; - BFA76954CF8D61A71D61D9110CE02F4B /* LLTableViewSelectableModel.m in Sources */ = {isa = PBXBuildFile; fileRef = 867F9B9CDD2215F8752E6B10A9C0834F /* LLTableViewSelectableModel.m */; }; - BFD8EC99CD8DA66E3C6C0B3EE8CC4859 /* JXCategoryNumberCellModel.h in Headers */ = {isa = PBXBuildFile; fileRef = E84F06C7A76FC325AEB48DF2222C1A25 /* JXCategoryNumberCellModel.h */; settings = {ATTRIBUTES = (Public, ); }; }; - C00F260511723CD7DC4B4E9D22CD9DF1 /* YYTextView.h in Headers */ = {isa = PBXBuildFile; fileRef = 8419DDBABCDD19DBDB37ECBD7AC77EAC /* YYTextView.h */; settings = {ATTRIBUTES = (Public, ); }; }; - C07F8A334C739FD38D9CB5C5239D683F /* JXCategoryTitleCellModel.h in Headers */ = {isa = PBXBuildFile; fileRef = A481BD1A25570E9A260F3C4695AA265E /* JXCategoryTitleCellModel.h */; settings = {ATTRIBUTES = (Public, ); }; }; - C0822509BF7D6154A7EDE4C7583BF02F /* LLInternalMacros.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BC4027DC6000B80FC4E4D1B93B66506 /* LLInternalMacros.h */; settings = {ATTRIBUTES = (Public, ); }; }; - C08F788A609C4CB2D525FD21D4FAD291 /* NSObject+RACKVOWrapper.h in Headers */ = {isa = PBXBuildFile; fileRef = 5C93A460B1526056E40F5B47D308635A /* NSObject+RACKVOWrapper.h */; settings = {ATTRIBUTES = (Public, ); }; }; - C093E1564702DFC14FF75A67E5A40784 /* OSSPutObjectTaggingRequest.h in Headers */ = {isa = PBXBuildFile; fileRef = 05349C51E31CAE69161B68EE1B46E515 /* OSSPutObjectTaggingRequest.h */; settings = {ATTRIBUTES = (Public, ); }; }; - C0A0AD671DC0CA6202F129A8BAF8B043 /* SVGAExporter.m in Sources */ = {isa = PBXBuildFile; fileRef = 7299AE89B34A909C0A8A75ADAB6673D7 /* SVGAExporter.m */; }; - C0A27AF8E1BA202D8015FC341C905C25 /* SDCycleScrollView-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = 72C795493B9E7BD1F1D7AE16825DCAF7 /* SDCycleScrollView-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; - C0AED82731D0B8E2100CA435412520FC /* enc_sse41.c in Sources */ = {isa = PBXBuildFile; fileRef = CE1A0E7A25FFFCE052093977A21E9038 /* enc_sse41.c */; settings = {COMPILER_FLAGS = "-D_THREAD_SAFE -fno-objc-arc"; }; }; + BF769F77F84E702A6718F4D46294E624 /* SVGAVideoEntity.h in Headers */ = {isa = PBXBuildFile; fileRef = 4A3F46F7B7B6B8C5DB64021DEC0B6C77 /* SVGAVideoEntity.h */; settings = {ATTRIBUTES = (Public, ); }; }; + BF7D73BC31ED41C8C87A7AD8E615BA90 /* UITextView+RACSignalSupport.m in Sources */ = {isa = PBXBuildFile; fileRef = EB169B301D75510AD8763578FC9D3620 /* UITextView+RACSignalSupport.m */; }; + BF7E2E36C374B7B1CD0A5332F2A9B26E /* RACKVOChannel.m in Sources */ = {isa = PBXBuildFile; fileRef = 152B09EB5C46C3A5AA864C403CBB9A08 /* RACKVOChannel.m */; }; + BFA76954CF8D61A71D61D9110CE02F4B /* LLTableViewSelectableModel.m in Sources */ = {isa = PBXBuildFile; fileRef = 1391E316F7838DF2D7B2B48EE51B8B64 /* LLTableViewSelectableModel.m */; }; + BFD8EC99CD8DA66E3C6C0B3EE8CC4859 /* JXCategoryNumberCellModel.h in Headers */ = {isa = PBXBuildFile; fileRef = 6CE74D1B298989210F5075ED8306D050 /* JXCategoryNumberCellModel.h */; settings = {ATTRIBUTES = (Public, ); }; }; + C00618FD63143B34F1331FB7516CD387 /* SDImageFrame.h in Headers */ = {isa = PBXBuildFile; fileRef = 1D0B3DEB1714934F5017308B34D0703C /* SDImageFrame.h */; settings = {ATTRIBUTES = (Public, ); }; }; + C00F260511723CD7DC4B4E9D22CD9DF1 /* YYTextView.h in Headers */ = {isa = PBXBuildFile; fileRef = 08704F044297A76E647073F02628D9EE /* YYTextView.h */; settings = {ATTRIBUTES = (Public, ); }; }; + C015B61E5D792F05226D81D64D69FFAE /* SDImageFramePool.m in Sources */ = {isa = PBXBuildFile; fileRef = E99AB24F3B2913D2410969663494C479 /* SDImageFramePool.m */; }; + C0450AD379B2CB7A908168F2B0410EC3 /* SDWebImageTransition.h in Headers */ = {isa = PBXBuildFile; fileRef = 60563E42F8C2BDF7A5316DD00173C890 /* SDWebImageTransition.h */; settings = {ATTRIBUTES = (Public, ); }; }; + C07F8A334C739FD38D9CB5C5239D683F /* JXCategoryTitleCellModel.h in Headers */ = {isa = PBXBuildFile; fileRef = FA4AF1F2FF95ED8DAF949CF745BE8F04 /* JXCategoryTitleCellModel.h */; settings = {ATTRIBUTES = (Public, ); }; }; + C0822509BF7D6154A7EDE4C7583BF02F /* LLInternalMacros.h in Headers */ = {isa = PBXBuildFile; fileRef = 5CAEB5D96592F00F666AB6E47CC47E91 /* LLInternalMacros.h */; settings = {ATTRIBUTES = (Public, ); }; }; + C08F788A609C4CB2D525FD21D4FAD291 /* NSObject+RACKVOWrapper.h in Headers */ = {isa = PBXBuildFile; fileRef = 0700DE062786EA2F6D99770CE63467FC /* NSObject+RACKVOWrapper.h */; settings = {ATTRIBUTES = (Public, ); }; }; + C093E1564702DFC14FF75A67E5A40784 /* OSSPutObjectTaggingRequest.h in Headers */ = {isa = PBXBuildFile; fileRef = 469100BC47C2243AFF98CA27D2EB409D /* OSSPutObjectTaggingRequest.h */; settings = {ATTRIBUTES = (Public, ); }; }; + C0A0AD671DC0CA6202F129A8BAF8B043 /* SVGAExporter.m in Sources */ = {isa = PBXBuildFile; fileRef = 56F2804A0614B269D058BD5820E56D47 /* SVGAExporter.m */; }; + C0A27AF8E1BA202D8015FC341C905C25 /* SDCycleScrollView-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = 5EDEDB571BD2BCAA8282600BEFDAEC76 /* SDCycleScrollView-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; C0D7398A10E080C337DF829A31C9FB59 /* TUIMessageCellConfig_Minimalist.m in Sources */ = {isa = PBXBuildFile; fileRef = 176D1F2373CBF8ADDD59548AEA36F0E5 /* TUIMessageCellConfig_Minimalist.m */; }; - C0D7926E41A294ACA98D7B033B283919 /* WKWebView+AFNetworking.h in Headers */ = {isa = PBXBuildFile; fileRef = 9DF9B3CD39064831DB259BE3ADDBAF08 /* WKWebView+AFNetworking.h */; settings = {ATTRIBUTES = (Public, ); }; }; - C11FC02AB5543C68918A3EF50B69C592 /* MQTTSSLSecurityPolicy.m in Sources */ = {isa = PBXBuildFile; fileRef = 8A44DCEF52F0CEFB314428B6CA51D445 /* MQTTSSLSecurityPolicy.m */; }; + C0D7926E41A294ACA98D7B033B283919 /* WKWebView+AFNetworking.h in Headers */ = {isa = PBXBuildFile; fileRef = 54E7E679235871C331C4566524F5D0E0 /* WKWebView+AFNetworking.h */; settings = {ATTRIBUTES = (Public, ); }; }; + C1000310B198CE24E36B2D7B204C29BD /* enc.c in Sources */ = {isa = PBXBuildFile; fileRef = A0447AA6CE095FB16A0251D0A918CFA1 /* enc.c */; settings = {COMPILER_FLAGS = "-D_THREAD_SAFE -fno-objc-arc"; }; }; + C11FC02AB5543C68918A3EF50B69C592 /* MQTTSSLSecurityPolicy.m in Sources */ = {isa = PBXBuildFile; fileRef = 3E4CE45B35D7D5B5FDBEE63DA76A5C2B /* MQTTSSLSecurityPolicy.m */; }; C12B3B8C6BE3528272269045A8509CA9 /* TUIMediaCollectionCell_Minimalist.m in Sources */ = {isa = PBXBuildFile; fileRef = 12206D86BCB832336894FC3C4E8CAF33 /* TUIMediaCollectionCell_Minimalist.m */; }; - C13FDA24212F02F9E81022118634462F /* LLProxy.m in Sources */ = {isa = PBXBuildFile; fileRef = 54ED7FE35481B30560338864AD8BC50E /* LLProxy.m */; }; - C141940201901A38A684AB8A2426F099 /* YBImageBrowser.bundle in Resources */ = {isa = PBXBuildFile; fileRef = 9E549451B6BC8569943B89553A71DD2C /* YBImageBrowser.bundle */; }; - C14AB91B5A661A400A8712DDAAC1A19C /* OSSFileLogger.m in Sources */ = {isa = PBXBuildFile; fileRef = 3A5374F1D2D57A123F50408DB43B80B0 /* OSSFileLogger.m */; }; + C13B8A49A99DA057DE5C8CBF3BA51EA0 /* UIColor+SDHexString.h in Headers */ = {isa = PBXBuildFile; fileRef = C57FCF8705AA31A1608CC0053A7C56B2 /* UIColor+SDHexString.h */; settings = {ATTRIBUTES = (Private, ); }; }; + C13FDA24212F02F9E81022118634462F /* LLProxy.m in Sources */ = {isa = PBXBuildFile; fileRef = EE85F27CFD896739228842096D35188F /* LLProxy.m */; }; + C141940201901A38A684AB8A2426F099 /* YBImageBrowser.bundle in Resources */ = {isa = PBXBuildFile; fileRef = 24DE23792EB68A41558A67CDFD22791E /* YBImageBrowser.bundle */; }; + C14AB91B5A661A400A8712DDAAC1A19C /* OSSFileLogger.m in Sources */ = {isa = PBXBuildFile; fileRef = A3DC28FF7BCE17C84E078D7B0B24E628 /* OSSFileLogger.m */; }; C16474A0DE79A1DB64C531D7C9312DFF /* TUIVideoReplyQuoteView_Minimalist.h in Headers */ = {isa = PBXBuildFile; fileRef = 8CF1DC6D0369B14BA40B52F5DA888AB5 /* TUIVideoReplyQuoteView_Minimalist.h */; settings = {ATTRIBUTES = (Public, ); }; }; - C1667FDC15CD5E0CEBAD08EE6CFF961A /* LLFilterFilePickerView.h in Headers */ = {isa = PBXBuildFile; fileRef = A62F23D66B98220D5EE5A8B00732CE04 /* LLFilterFilePickerView.h */; settings = {ATTRIBUTES = (Public, ); }; }; - C19EF297181A31152C730790CC91A30C /* LLFunctionItemContainerView.m in Sources */ = {isa = PBXBuildFile; fileRef = 6421C69D98A29F845ECC9CE3160D7FF2 /* LLFunctionItemContainerView.m */; }; - C1CE7DDDEF51510CEDBE3B0C57A49FA3 /* NSString+RACSupport.m in Sources */ = {isa = PBXBuildFile; fileRef = 8CAFA93C3EE234EE57B21D5EBABDDEE9 /* NSString+RACSupport.m */; }; - C1E0E86A92953F85268082E2102F22E1 /* SDImageHEICCoder.h in Headers */ = {isa = PBXBuildFile; fileRef = 43269D978DA1541584B10056E45D0F43 /* SDImageHEICCoder.h */; settings = {ATTRIBUTES = (Public, ); }; }; - C1ED07F75CD8C2D19DA79D96EA77F802 /* RACUnarySequence.m in Sources */ = {isa = PBXBuildFile; fileRef = CDA511D043C97E2418FDBC373437FBEB /* RACUnarySequence.m */; }; - C1F39A84FF65544B186325ABCC88B716 /* LLWindowManager+Magnifier.h in Headers */ = {isa = PBXBuildFile; fileRef = 56A5AA47557B91D4C8B1BD6563F0AB1A /* LLWindowManager+Magnifier.h */; settings = {ATTRIBUTES = (Public, ); }; }; - C2068AEACC2D9C7F1FFE41AA25B12A68 /* MASUtilities.h in Headers */ = {isa = PBXBuildFile; fileRef = C55F448545F5A6D1C9C512435869425E /* MASUtilities.h */; settings = {ATTRIBUTES = (Public, ); }; }; - C21BB4F85EC11E3A16DB3EFD10168CD9 /* RACCommand.m in Sources */ = {isa = PBXBuildFile; fileRef = 9EF5036A6468EAABCE5351203A09B296 /* RACCommand.m */; }; - C22BFD04EAB76981E7F112D57A1F5E79 /* JXCategoryNumberCell.m in Sources */ = {isa = PBXBuildFile; fileRef = 5BE5EB1092638E4D5B43B0EAAB04EEF5 /* JXCategoryNumberCell.m */; }; - C2469087E269EF1B390DDF3AD40E68B6 /* LLFunctionItemModel.m in Sources */ = {isa = PBXBuildFile; fileRef = 74DA460964822320DEEE945F42439081 /* LLFunctionItemModel.m */; }; - C2549FB10C1AF4028CD0565D0E74B75C /* QGVAPMetalView.m in Sources */ = {isa = PBXBuildFile; fileRef = 9E06878BB745204A0589E88CD7DB1B82 /* QGVAPMetalView.m */; }; - C263B67259B2CE753550D11A1CF7D1CB /* OSSUtil.m in Sources */ = {isa = PBXBuildFile; fileRef = 7115CD7CBDDC211BBD79F61965E5D8FA /* OSSUtil.m */; }; - C279BBC1EFE4E45AB56D7A684328336F /* OSSClient.m in Sources */ = {isa = PBXBuildFile; fileRef = 4FC05AB889A2C9D5888B774E57673146 /* OSSClient.m */; }; + C1667FDC15CD5E0CEBAD08EE6CFF961A /* LLFilterFilePickerView.h in Headers */ = {isa = PBXBuildFile; fileRef = 41BF350BB7AE4DD9930855E4CB7384A5 /* LLFilterFilePickerView.h */; settings = {ATTRIBUTES = (Public, ); }; }; + C19E66B928E9ECD90CDCA1CE4D296880 /* QCloudIntelligenceTimeOutAdapter.m in Sources */ = {isa = PBXBuildFile; fileRef = E7DB3331CF659984BFE549C347BD382E /* QCloudIntelligenceTimeOutAdapter.m */; }; + C19EF297181A31152C730790CC91A30C /* LLFunctionItemContainerView.m in Sources */ = {isa = PBXBuildFile; fileRef = 6CDBF4E8B6B8B8F9CD67DB008689E8B9 /* LLFunctionItemContainerView.m */; }; + C1CE7DDDEF51510CEDBE3B0C57A49FA3 /* NSString+RACSupport.m in Sources */ = {isa = PBXBuildFile; fileRef = 4694FA28176755CD70F11DCD81CED0D1 /* NSString+RACSupport.m */; }; + C1ED07F75CD8C2D19DA79D96EA77F802 /* RACUnarySequence.m in Sources */ = {isa = PBXBuildFile; fileRef = B27EA90BAF0FBA19DF2D6CDE20BB2206 /* RACUnarySequence.m */; }; + C1F39A84FF65544B186325ABCC88B716 /* LLWindowManager+Magnifier.h in Headers */ = {isa = PBXBuildFile; fileRef = 9E0DEF151A224E891AFBCF25F8953091 /* LLWindowManager+Magnifier.h */; settings = {ATTRIBUTES = (Public, ); }; }; + C2068AEACC2D9C7F1FFE41AA25B12A68 /* MASUtilities.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B1CD231645C46DF63531F35F10D53BF /* MASUtilities.h */; settings = {ATTRIBUTES = (Public, ); }; }; + C21BB4F85EC11E3A16DB3EFD10168CD9 /* RACCommand.m in Sources */ = {isa = PBXBuildFile; fileRef = 4885493088496B0A9F42E4653BC29910 /* RACCommand.m */; }; + C22BFD04EAB76981E7F112D57A1F5E79 /* JXCategoryNumberCell.m in Sources */ = {isa = PBXBuildFile; fileRef = 3315DC6134F24DE76DE6F35B8D45D47C /* JXCategoryNumberCell.m */; }; + C2331726B6F1BD9CB60DF670990C922D /* palette.c in Sources */ = {isa = PBXBuildFile; fileRef = 5FA8775E4CBFB297E96159A4FA59A2C5 /* palette.c */; settings = {COMPILER_FLAGS = "-D_THREAD_SAFE -fno-objc-arc"; }; }; + C2469087E269EF1B390DDF3AD40E68B6 /* LLFunctionItemModel.m in Sources */ = {isa = PBXBuildFile; fileRef = 1AA12266A225C8D70CDC90D33EABC8C9 /* LLFunctionItemModel.m */; }; + C2549FB10C1AF4028CD0565D0E74B75C /* QGVAPMetalView.m in Sources */ = {isa = PBXBuildFile; fileRef = 588D3CCD8EE99838ACDE6232300077FD /* QGVAPMetalView.m */; }; + C263B67259B2CE753550D11A1CF7D1CB /* OSSUtil.m in Sources */ = {isa = PBXBuildFile; fileRef = F13FE25C055C994285E63FB9F737E571 /* OSSUtil.m */; }; + C279BBC1EFE4E45AB56D7A684328336F /* OSSClient.m in Sources */ = {isa = PBXBuildFile; fileRef = FBACC6494379F151A8E4457F350562C3 /* OSSClient.m */; }; + C27E7B0D613CBEF06BABD8011C89CAF7 /* CoreFoundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = BDCD3DDCE37ACFD1BDD612F5969870AA /* CoreFoundation.framework */; }; C28F70FA8ACA4CFC4186FAD9CFFBB029 /* TUICameraManager.h in Headers */ = {isa = PBXBuildFile; fileRef = 779E558559B81FB082EB472C73CF756A /* TUICameraManager.h */; settings = {ATTRIBUTES = (Public, ); }; }; - C2AA67FD8098DD5910FFB92E1DF478A9 /* LLScreenshotImageView.h in Headers */ = {isa = PBXBuildFile; fileRef = 233276ED57DDAD4E609D8DFB0EBCCC92 /* LLScreenshotImageView.h */; settings = {ATTRIBUTES = (Public, ); }; }; - C2B5E987337CB579B83D5936E5C23A4A /* NSTimer+YYAdd.m in Sources */ = {isa = PBXBuildFile; fileRef = 5B39922C045AE8F53E205C956D5FF742 /* NSTimer+YYAdd.m */; }; - C2C9B5C200F6055D49D93CA5A503AAC0 /* NSMutableDictionary+AvoidCrash.h in Headers */ = {isa = PBXBuildFile; fileRef = 604D1FE7B994587782D5E78D8866E9BB /* NSMutableDictionary+AvoidCrash.h */; settings = {ATTRIBUTES = (Public, ); }; }; - C2CD0223F067656A2FC851B7612916E2 /* YBIBImageCell.m in Sources */ = {isa = PBXBuildFile; fileRef = 26E5FD2367B4E5D6E3B7E4EF60AA985B /* YBIBImageCell.m */; }; + C2A1273998888000E8343E3C0CCBA820 /* QCloudCompleteMultipartUploadInfo.h in Headers */ = {isa = PBXBuildFile; fileRef = CF81D9C467A44B4C6264E6ADF335BE24 /* QCloudCompleteMultipartUploadInfo.h */; settings = {ATTRIBUTES = (Public, ); }; }; + C2AA67FD8098DD5910FFB92E1DF478A9 /* LLScreenshotImageView.h in Headers */ = {isa = PBXBuildFile; fileRef = F461F4FAC8BB19506C6E56A2D8F8EAD1 /* LLScreenshotImageView.h */; settings = {ATTRIBUTES = (Public, ); }; }; + C2B5E987337CB579B83D5936E5C23A4A /* NSTimer+YYAdd.m in Sources */ = {isa = PBXBuildFile; fileRef = 09B31E3D9630343E9793238698D53660 /* NSTimer+YYAdd.m */; }; + C2C9B5C200F6055D49D93CA5A503AAC0 /* NSMutableDictionary+AvoidCrash.h in Headers */ = {isa = PBXBuildFile; fileRef = 6F8B0587EF9A72A0F0798A45C0CCCA01 /* NSMutableDictionary+AvoidCrash.h */; settings = {ATTRIBUTES = (Public, ); }; }; + C2CD0223F067656A2FC851B7612916E2 /* YBIBImageCell.m in Sources */ = {isa = PBXBuildFile; fileRef = 1FC5268B7AC4632A410339FFDD20DF3E /* YBIBImageCell.m */; }; C2EEC977E08984B335E055E91E7646E7 /* TUIGroupNoticeCellData.h in Headers */ = {isa = PBXBuildFile; fileRef = 6F9174A0C86D26733C6530737A366E48 /* TUIGroupNoticeCellData.h */; settings = {ATTRIBUTES = (Public, ); }; }; - C2FE60A10C792613E45031AE6E851ECB /* MASViewConstraint.m in Sources */ = {isa = PBXBuildFile; fileRef = 0877754BEE3D7CADC3D1F761130FBA13 /* MASViewConstraint.m */; }; + C2FE60A10C792613E45031AE6E851ECB /* MASViewConstraint.m in Sources */ = {isa = PBXBuildFile; fileRef = CC51C3581194BC4AC710858D53F46EB8 /* MASViewConstraint.m */; }; + C301C51C5D8076CD04BC223FE69BC623 /* NSObject+HTTPHeadersContainer.h in Headers */ = {isa = PBXBuildFile; fileRef = CC73B0105364E58A9EFDF2644247EEC9 /* NSObject+HTTPHeadersContainer.h */; settings = {ATTRIBUTES = (Public, ); }; }; C3060F7054E1BDABF94B1175FC9C4584 /* TUICloudCustomDataTypeCenter.m in Sources */ = {isa = PBXBuildFile; fileRef = BA5E2BA85421BF845B20D61D8845C1B5 /* TUICloudCustomDataTypeCenter.m */; }; - C307A11538993DEBB5F69C9543063E19 /* MQTTLog.m in Sources */ = {isa = PBXBuildFile; fileRef = 2637DA96632205B39B650F5D7707CA86 /* MQTTLog.m */; }; - C369A8FD65F7CDE11DD4EFFAE88D64F0 /* QGAnimatedImageBufferManager.h in Headers */ = {isa = PBXBuildFile; fileRef = 49598FE073A9A2B4284B97EBAAB70ADD /* QGAnimatedImageBufferManager.h */; settings = {ATTRIBUTES = (Public, ); }; }; + C307A11538993DEBB5F69C9543063E19 /* MQTTLog.m in Sources */ = {isa = PBXBuildFile; fileRef = E65F76B8312CFB36A7276227EFA68E32 /* MQTTLog.m */; }; + C34B618A2DC8AE308EAD8451F428A8EF /* QCloudCore.h in Headers */ = {isa = PBXBuildFile; fileRef = 059219951504E913078712192BF5AEF2 /* QCloudCore.h */; settings = {ATTRIBUTES = (Public, ); }; }; + C369A8FD65F7CDE11DD4EFFAE88D64F0 /* QGAnimatedImageBufferManager.h in Headers */ = {isa = PBXBuildFile; fileRef = BECB881BE01435296C19BD58A872AF4C /* QGAnimatedImageBufferManager.h */; settings = {ATTRIBUTES = (Public, ); }; }; C39047ED9E5DB8534028E3E7E1F33280 /* TUIBubbleMessageCell.m in Sources */ = {isa = PBXBuildFile; fileRef = 71EE376D8DC431E626B54B1B3A7DC9F3 /* TUIBubbleMessageCell.m */; }; - C3A302C12503B4DD55C2E90D98198704 /* LLComponentNavigationController.h in Headers */ = {isa = PBXBuildFile; fileRef = B2D59463662000A09AB6F5FD2CAAAE95 /* LLComponentNavigationController.h */; settings = {ATTRIBUTES = (Public, ); }; }; - C3A3217154A9ABC16EA000A3FC70FA23 /* MQTTMessage.h in Headers */ = {isa = PBXBuildFile; fileRef = B3C9A8FD1390C84584A19F64A61C7FB5 /* MQTTMessage.h */; settings = {ATTRIBUTES = (Public, ); }; }; - C3BC82958CA7244658249A699F92D03D /* LLRouter+Screenshot.h in Headers */ = {isa = PBXBuildFile; fileRef = E26315B3E2CEDECB18219BD485F891BF /* LLRouter+Screenshot.h */; settings = {ATTRIBUTES = (Public, ); }; }; - C3DC81DD3E2BFAB6FB592680C2B18D82 /* LLHierarchyInfoView.h in Headers */ = {isa = PBXBuildFile; fileRef = 0C8A6FE3EA356B31A7E4E41873AADDB1 /* LLHierarchyInfoView.h */; settings = {ATTRIBUTES = (Public, ); }; }; - C3F72653DB26C2241719B4186E0F7838 /* TUICore-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = B1186EC674E701810914EBF98E6BF146 /* TUICore-dummy.m */; }; + C3A302C12503B4DD55C2E90D98198704 /* LLComponentNavigationController.h in Headers */ = {isa = PBXBuildFile; fileRef = CD9D7510313EDF23B2BB3E046E4CA6CE /* LLComponentNavigationController.h */; settings = {ATTRIBUTES = (Public, ); }; }; + C3A3217154A9ABC16EA000A3FC70FA23 /* MQTTMessage.h in Headers */ = {isa = PBXBuildFile; fileRef = EC198EB887024871535BD7E9B8865685 /* MQTTMessage.h */; settings = {ATTRIBUTES = (Public, ); }; }; + C3B32B348C3D905678130E8A4E68379C /* yuv.c in Sources */ = {isa = PBXBuildFile; fileRef = 6E84EC6FDDB438259358A76D0372A255 /* yuv.c */; settings = {COMPILER_FLAGS = "-D_THREAD_SAFE -fno-objc-arc"; }; }; + C3BC82958CA7244658249A699F92D03D /* LLRouter+Screenshot.h in Headers */ = {isa = PBXBuildFile; fileRef = F701FC03FB82A9C98B2E1CD625E02B88 /* LLRouter+Screenshot.h */; settings = {ATTRIBUTES = (Public, ); }; }; + C3DC81DD3E2BFAB6FB592680C2B18D82 /* LLHierarchyInfoView.h in Headers */ = {isa = PBXBuildFile; fileRef = BA6D334238E33F7648A0A126AA2569DC /* LLHierarchyInfoView.h */; settings = {ATTRIBUTES = (Public, ); }; }; C432FCDB82EE7F54B72E4B8E7AA1E1BD /* TUIConversationForwardSelectCell_Minimalist.m in Sources */ = {isa = PBXBuildFile; fileRef = 4BDE83F501FC642E05B993AABCE6F79D /* TUIConversationForwardSelectCell_Minimalist.m */; }; + C4440B596229BFB085DFAC2DE5E748C4 /* QCloudCredentailFenceQueue.h in Headers */ = {isa = PBXBuildFile; fileRef = 2C23F9EBD9AFBABB9B38B9D789CE1A91 /* QCloudCredentailFenceQueue.h */; settings = {ATTRIBUTES = (Public, ); }; }; + C4519F3F2E7044EBBFDDB9EDE10F40B6 /* config_enc.c in Sources */ = {isa = PBXBuildFile; fileRef = 44F8EA9ACD259BDEF40C1EB7FC4F78C9 /* config_enc.c */; settings = {COMPILER_FLAGS = "-D_THREAD_SAFE -fno-objc-arc"; }; }; C45695FBB200A9C670A8220B9C0B6C99 /* TUITextReplyQuoteView.m in Sources */ = {isa = PBXBuildFile; fileRef = A248B0B63FE3C36C7D89728F70094517 /* TUITextReplyQuoteView.m */; }; - C45BDBA1768C56781E48457C6543F6B2 /* RACBehaviorSubject.m in Sources */ = {isa = PBXBuildFile; fileRef = FF572200444F060F0BED08ED673BA628 /* RACBehaviorSubject.m */; }; - C462F17EDE150EF6837F0524C632A64B /* YBIBImageCache.m in Sources */ = {isa = PBXBuildFile; fileRef = 67643ADF05891CEDA4BB5698ADAD6B90 /* YBIBImageCache.m */; }; + C45BDBA1768C56781E48457C6543F6B2 /* RACBehaviorSubject.m in Sources */ = {isa = PBXBuildFile; fileRef = 66BB1AF1C87BAB9329176155F6C493F7 /* RACBehaviorSubject.m */; }; + C462F17EDE150EF6837F0524C632A64B /* YBIBImageCache.m in Sources */ = {isa = PBXBuildFile; fileRef = 0F9B748B9523F955E93AFEE09C9EC2AA /* YBIBImageCache.m */; }; C46FE99E496AA84DFA052E35B1C44DFC /* TUIFaceMessageCell.h in Headers */ = {isa = PBXBuildFile; fileRef = 2A75B57AE83F8839D446ECAE74268D22 /* TUIFaceMessageCell.h */; settings = {ATTRIBUTES = (Public, ); }; }; - C4B5A18EC7EDEE9CCB85F25AF251350C /* LLLogHelper.h in Headers */ = {isa = PBXBuildFile; fileRef = 714451231985AB5241D32A66ACA4EBB0 /* LLLogHelper.h */; settings = {ATTRIBUTES = (Public, ); }; }; - C4C7B8D764FCFA82C39600ABD2E11BFC /* SDImageHEICCoder.m in Sources */ = {isa = PBXBuildFile; fileRef = 8272A08C8D4B1EC0BEC8912EA6C20E2F /* SDImageHEICCoder.m */; }; - C4F9104906F0EB741AC188E1BFFF9BE8 /* TZVideoPlayerController.m in Sources */ = {isa = PBXBuildFile; fileRef = F7BF61BF6F60EC757D465900BF3B663D /* TZVideoPlayerController.m */; }; + C48171E855EFC5FAC19737F709B753FA /* SDMemoryCache.m in Sources */ = {isa = PBXBuildFile; fileRef = 6C3AE4ACBD0DF8C1211665C01F41EFD8 /* SDMemoryCache.m */; }; + C48AD412B798AFB17088E9121E00DFCD /* NSString+QCloudSHA.mm in Sources */ = {isa = PBXBuildFile; fileRef = 51EA6CB8856C050BCD9287E3F892CAC9 /* NSString+QCloudSHA.mm */; }; + C48BD253390E2A3DEC682449B5FAAEF6 /* SDWebImagePrefetcher.m in Sources */ = {isa = PBXBuildFile; fileRef = D6EFAB0D634A7CF321E4DE5C37DD9A91 /* SDWebImagePrefetcher.m */; }; + C49335B501A079DED91B3CF58138501A /* SDAssociatedObject.h in Headers */ = {isa = PBXBuildFile; fileRef = FD63D4E1A24ACB8F4FAC2ACBF321F560 /* SDAssociatedObject.h */; settings = {ATTRIBUTES = (Private, ); }; }; + C4B5A18EC7EDEE9CCB85F25AF251350C /* LLLogHelper.h in Headers */ = {isa = PBXBuildFile; fileRef = 3E4E353A84CE19B95DDD68C7CA1BD511 /* LLLogHelper.h */; settings = {ATTRIBUTES = (Public, ); }; }; + C4E30CD02EF74AB9B105196CAEA5480B /* OfflinePushExtInfo.m in Sources */ = {isa = PBXBuildFile; fileRef = AB4EDE133919220DA0DB77266DD4F290 /* OfflinePushExtInfo.m */; }; + C4F9104906F0EB741AC188E1BFFF9BE8 /* TZVideoPlayerController.m in Sources */ = {isa = PBXBuildFile; fileRef = CEE3C4466188D2B0AFE31D639BFE683C /* TZVideoPlayerController.m */; }; + C518F3630293F83E0E4207E1C8EFC583 /* QCloudGetObjectRequest.m in Sources */ = {isa = PBXBuildFile; fileRef = 1881D1008039B89F10E7FA2BA6DE3763 /* QCloudGetObjectRequest.m */; }; + C52F4CFFB078B8A701A768BF047E2D60 /* QCloudCustomLoggerOutput.m in Sources */ = {isa = PBXBuildFile; fileRef = 8994BC48961600CEB917CFE08DF260F6 /* QCloudCustomLoggerOutput.m */; }; C53A8F231A5B6A067BE80A7357C50BE8 /* TUIFaceMessageCellData.m in Sources */ = {isa = PBXBuildFile; fileRef = 0B2B089DD73C47F9B4F681B5274EC5CE /* TUIFaceMessageCellData.m */; }; - C53D326186927C0C85580CC5FEB133E3 /* mz_os.h in Headers */ = {isa = PBXBuildFile; fileRef = 8136A38D81A5B3FC752562D97578AD4F /* mz_os.h */; settings = {ATTRIBUTES = (Project, ); }; }; + C53CB91443D0025A48F975D083702845 /* QCloudRequestData+COSXMLVersion.m in Sources */ = {isa = PBXBuildFile; fileRef = 455D068D4EB4731CA40B25B1821380D2 /* QCloudRequestData+COSXMLVersion.m */; }; + C53D326186927C0C85580CC5FEB133E3 /* mz_os.h in Headers */ = {isa = PBXBuildFile; fileRef = 2D55E9217F1D871EE1FA275A810596AC /* mz_os.h */; settings = {ATTRIBUTES = (Project, ); }; }; C58D02CF01F48625A5F15239C7F98EF0 /* TUIMessageCellData.h in Headers */ = {isa = PBXBuildFile; fileRef = DEF517A11EBB40C32836AE94CF528F7B /* TUIMessageCellData.h */; settings = {ATTRIBUTES = (Public, ); }; }; C5A8D91010F59E84ADA99B7497DD0084 /* TUIMenuCell_Minimalist.h in Headers */ = {isa = PBXBuildFile; fileRef = E14B2C46EC3FEFE18206707CFB3F6A5A /* TUIMenuCell_Minimalist.h */; settings = {ATTRIBUTES = (Public, ); }; }; - C5BE68E2F6408DB94241AEA121786D97 /* LLNetworkFilterView.h in Headers */ = {isa = PBXBuildFile; fileRef = 13440D22EF77695236BA9B4DEF2E88BC /* LLNetworkFilterView.h */; settings = {ATTRIBUTES = (Public, ); }; }; + C5BE68E2F6408DB94241AEA121786D97 /* LLNetworkFilterView.h in Headers */ = {isa = PBXBuildFile; fileRef = F6DF0EBE007FB701E63CBADDE35A991C /* LLNetworkFilterView.h */; settings = {ATTRIBUTES = (Public, ); }; }; C5C384957A2A0F890E726765AF7FB875 /* TUIConversationSelectController.m in Sources */ = {isa = PBXBuildFile; fileRef = 1EB3DA14360363BDCEC1A1669BAFB2CD /* TUIConversationSelectController.m */; }; - C5F712FC268AE177C29C28244AADEF81 /* NSURLConnection+RACSupport.h in Headers */ = {isa = PBXBuildFile; fileRef = 12B6586F2862B11760BF86632F6D7F85 /* NSURLConnection+RACSupport.h */; settings = {ATTRIBUTES = (Public, ); }; }; - C60DB44F719853DE3B7157960DAF9270 /* MJRefreshComponent.m in Sources */ = {isa = PBXBuildFile; fileRef = 070BDBDEE20F8A5DEB595E81AB68282A /* MJRefreshComponent.m */; }; - C618C480BE5624B14E95733432797244 /* OSSPutSymlinkResult.m in Sources */ = {isa = PBXBuildFile; fileRef = 10BF3D828FC7F8E67EB26B154BF32F8D /* OSSPutSymlinkResult.m */; }; - C628EB8975B98BD99BE9D42903A71F77 /* GPBSourceContext.pbobjc.h in Headers */ = {isa = PBXBuildFile; fileRef = 85A8479E0BA3A2F315C5D568BB30B04F /* GPBSourceContext.pbobjc.h */; settings = {ATTRIBUTES = (Public, ); }; }; - C638FD6DEFC242C723960735B23D3DED /* LLFactory.m in Sources */ = {isa = PBXBuildFile; fileRef = 0ED5824C21A523C789B1396AED91104B /* LLFactory.m */; }; - C63D0B867EAA7235DC7D2830C91C513A /* iterator_enc.c in Sources */ = {isa = PBXBuildFile; fileRef = 34F1246ADF6DCEBE9AFA7682B6CD48AE /* iterator_enc.c */; settings = {COMPILER_FLAGS = "-D_THREAD_SAFE -fno-objc-arc"; }; }; - C649DF4800F7E636D9378CADFEDD75E5 /* OSSDDLog.m in Sources */ = {isa = PBXBuildFile; fileRef = C84D781668C6E814C60B74DCA3BBDE12 /* OSSDDLog.m */; }; - C64C28E8B15C171323473E543C608E68 /* mz_strm_os.h in Headers */ = {isa = PBXBuildFile; fileRef = E4B534B1418DFB31D1AB08E45A77482C /* mz_strm_os.h */; settings = {ATTRIBUTES = (Project, ); }; }; - C655DEC61690278EEE48688D5EBF2D59 /* ScoringMachine+DataHandle.swift in Sources */ = {isa = PBXBuildFile; fileRef = 031AB6E008FD38B9576E2930D353FD15 /* ScoringMachine+DataHandle.swift */; }; - C674F063CDFFB93BEFC9AA9F26626CBA /* AliyunOSSiOS-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 3D3102A78D323A1EB954026A27C7BB82 /* AliyunOSSiOS-dummy.m */; }; - C6E7B5C5D2A2B1B8F527A221DAEECAED /* OSSLog.m in Sources */ = {isa = PBXBuildFile; fileRef = C4215B336A44A8928C5547B9ECAF9303 /* OSSLog.m */; }; - C72702DD0F2F6FE820124FF271160DCD /* mips_macro.h in Headers */ = {isa = PBXBuildFile; fileRef = BB3B777CE044B579EA8BE98F9D154765 /* mips_macro.h */; settings = {ATTRIBUTES = (Project, ); }; }; - C74589E03918328E4D27EFCBF6C4A0B8 /* JXCategoryBaseCellModel.h in Headers */ = {isa = PBXBuildFile; fileRef = 63194898AEFB1F9FED9915979FABB9FE /* JXCategoryBaseCellModel.h */; settings = {ATTRIBUTES = (Public, ); }; }; - C7600D685F740E4A1E935A393ADB27C8 /* _YYWebImageSetter.m in Sources */ = {isa = PBXBuildFile; fileRef = ECC5067C3FE740EE8944EB3549AA154D /* _YYWebImageSetter.m */; }; - C7797CB3D924CF0AAF2DC200C8890C1E /* LLHierarchyComponent.m in Sources */ = {isa = PBXBuildFile; fileRef = 0A3FD328EFD2497883883E73A0FF8D97 /* LLHierarchyComponent.m */; }; - C786581E74B1E97E6042BC99E7193299 /* LLCrashModel.h in Headers */ = {isa = PBXBuildFile; fileRef = 714EDD3BB6957C09011A385F33FF1B02 /* LLCrashModel.h */; settings = {ATTRIBUTES = (Public, ); }; }; - C7ACED7C7E3A5460CFE2825B1AB37A69 /* LLScreenshotBaseOperation.h in Headers */ = {isa = PBXBuildFile; fileRef = 2FD15E7FAC1131BA1CD24E3774107AD7 /* LLScreenshotBaseOperation.h */; settings = {ATTRIBUTES = (Public, ); }; }; - C7FA67545D38E2F4515FAC5D02DB84AE /* LLCrashWindow.m in Sources */ = {isa = PBXBuildFile; fileRef = DF828F3091B735157EB463BF9A28FE61 /* LLCrashWindow.m */; }; - C8031F25F75B85B9EA4D7CFE4A1DF3A9 /* OSSGetObjectTaggingResult.h in Headers */ = {isa = PBXBuildFile; fileRef = 80305933F4129F1895492CE0A1E92850 /* OSSGetObjectTaggingResult.h */; settings = {ATTRIBUTES = (Public, ); }; }; - C8345D4CF38B0FE9983B5AD15675B1DA /* NSMutableDictionary+OSS.h in Headers */ = {isa = PBXBuildFile; fileRef = 99EAA8A69F3605F202C84E86B447328F /* NSMutableDictionary+OSS.h */; settings = {ATTRIBUTES = (Public, ); }; }; - C857B8D2D0BAA5A8A764F9E1C4B85807 /* ViewController+MASAdditions.m in Sources */ = {isa = PBXBuildFile; fileRef = CACDDAF9339325B788805EB4486D22EA /* ViewController+MASAdditions.m */; }; - C86705D074B3675CA80A43D709517B73 /* OSSV1Signer.m in Sources */ = {isa = PBXBuildFile; fileRef = 3AB32A3C6CF61661872B41A75780E6DD /* OSSV1Signer.m */; }; - C8685678D1B020F87365D022216FFE29 /* JXCategoryIndicatorImageView.h in Headers */ = {isa = PBXBuildFile; fileRef = 2D7F8AC7B90B364A3EE09B385229FF31 /* JXCategoryIndicatorImageView.h */; settings = {ATTRIBUTES = (Public, ); }; }; - C870D4FFBF8B37D615C1C88B2ABEBC33 /* YYTextRunDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = C5F36E50FA1F735D95252DCC8DC94105 /* YYTextRunDelegate.m */; }; - C8A55E849B59FC6750A8844FF6745567 /* SVGAImageView.m in Sources */ = {isa = PBXBuildFile; fileRef = A42E4D98A5BAE1FB383572F9C77FEB43 /* SVGAImageView.m */; }; - C8B284A4946540AF76FF866F9F34CF67 /* RACValueTransformer.h in Headers */ = {isa = PBXBuildFile; fileRef = C5CBE99292C594A9C899C9DD38FB8719 /* RACValueTransformer.h */; settings = {ATTRIBUTES = (Public, ); }; }; - C8C84ACFC0D811038ECB5A161059F40C /* LLHtmlConfigViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 793BD5B1F577357BCFF00938BCAF04FC /* LLHtmlConfigViewController.m */; }; - C8DF058D10E2B55CC73C5735F384759B /* LLEditTableViewController.h in Headers */ = {isa = PBXBuildFile; fileRef = 4AC370B71EE218C059D5B370F1189368 /* LLEditTableViewController.h */; settings = {ATTRIBUTES = (Public, ); }; }; - C8EC35DFB0945DBE2F2FF9ECFE6D9711 /* NSLayoutConstraint+MASDebugAdditions.m in Sources */ = {isa = PBXBuildFile; fileRef = EC7B9044D03A66B6036E63908C246857 /* NSLayoutConstraint+MASDebugAdditions.m */; }; - C91AE4BAA1219ABCF49139CD4D6C7A11 /* UIColor+TUIHexColor.h in Headers */ = {isa = PBXBuildFile; fileRef = 55701518AB4B0314CAA3F1367384D4C2 /* UIColor+TUIHexColor.h */; settings = {ATTRIBUTES = (Public, ); }; }; - C922BFFF717515E5878910DF4078CE1E /* JXCategoryIndicatorDotLineView.m in Sources */ = {isa = PBXBuildFile; fileRef = 027A2D4E65C17B84DCD7B5151FBF6BE4 /* JXCategoryIndicatorDotLineView.m */; }; - C941EF27D0CDF0FE81BC9A41434DAA87 /* SDImageAWebPCoder.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A7B4DB4E685E9A79ED6D72C2E68D787 /* SDImageAWebPCoder.h */; settings = {ATTRIBUTES = (Public, ); }; }; - C957C54E1EB01930C1C51F339F4215EF /* muxedit.c in Sources */ = {isa = PBXBuildFile; fileRef = BDBF84D69482C7EB8833D25EF4FED0AC /* muxedit.c */; settings = {COMPILER_FLAGS = "-D_THREAD_SAFE -fno-objc-arc"; }; }; - C96B005ED1E51CBAEA6CCC2FA14DAE47 /* LLWindowManager+Ruler.h in Headers */ = {isa = PBXBuildFile; fileRef = 0A0A30A7EEB2984A729A6C7679BCB6CD /* LLWindowManager+Ruler.h */; settings = {ATTRIBUTES = (Public, ); }; }; - C993A4D0CFA51E567F458CA65C1298AA /* MBProgressHUD-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = 768C3EF493D425504064D811F7396694 /* MBProgressHUD-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; + C5F712FC268AE177C29C28244AADEF81 /* NSURLConnection+RACSupport.h in Headers */ = {isa = PBXBuildFile; fileRef = 093538C874844EDC1A0A197042A45E9F /* NSURLConnection+RACSupport.h */; settings = {ATTRIBUTES = (Public, ); }; }; + C60DB44F719853DE3B7157960DAF9270 /* MJRefreshComponent.m in Sources */ = {isa = PBXBuildFile; fileRef = 7CC8A4437F40CBBF7AD1B9F900965783 /* MJRefreshComponent.m */; }; + C618C480BE5624B14E95733432797244 /* OSSPutSymlinkResult.m in Sources */ = {isa = PBXBuildFile; fileRef = 0612DC526A30752E51650E0CA0BEB4B8 /* OSSPutSymlinkResult.m */; }; + C628EB8975B98BD99BE9D42903A71F77 /* GPBSourceContext.pbobjc.h in Headers */ = {isa = PBXBuildFile; fileRef = AE02E7FF288BA1E6D7F88982C57AE562 /* GPBSourceContext.pbobjc.h */; settings = {ATTRIBUTES = (Public, ); }; }; + C638FD6DEFC242C723960735B23D3DED /* LLFactory.m in Sources */ = {isa = PBXBuildFile; fileRef = 7495011A0379C00CCF0EE0C173F67644 /* LLFactory.m */; }; + C64003C8DC4309812BD0785EA4795B32 /* SDImageCoder.h in Headers */ = {isa = PBXBuildFile; fileRef = D37A688C16B1234239DED92E3320D15B /* SDImageCoder.h */; settings = {ATTRIBUTES = (Public, ); }; }; + C649DF4800F7E636D9378CADFEDD75E5 /* OSSDDLog.m in Sources */ = {isa = PBXBuildFile; fileRef = 0257F63285DF532F217CB060E81B56EE /* OSSDDLog.m */; }; + C64C28E8B15C171323473E543C608E68 /* mz_strm_os.h in Headers */ = {isa = PBXBuildFile; fileRef = E692E5A4ADDC3B8051B81F53EE697149 /* mz_strm_os.h */; settings = {ATTRIBUTES = (Project, ); }; }; + C655DEC61690278EEE48688D5EBF2D59 /* ScoringMachine+DataHandle.swift in Sources */ = {isa = PBXBuildFile; fileRef = F2B65964423B4DEC94B009452F7A3F1B /* ScoringMachine+DataHandle.swift */; }; + C65ADC429A24E6E22657BA20719F2013 /* Zip.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2C24B738D17AE5BC3EED9B271634668D /* Zip.swift */; }; + C65C4A238E7E047F51DE2A10C770E565 /* PrivacyInfo.xcprivacy in Resources */ = {isa = PBXBuildFile; fileRef = 2F50726B73AFA95C2E2546DB1C370E8A /* PrivacyInfo.xcprivacy */; }; + C674F063CDFFB93BEFC9AA9F26626CBA /* AliyunOSSiOS-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 45073970B3C226FBCA12C136D7F3DB71 /* AliyunOSSiOS-dummy.m */; }; + C68E31E1034EE93D215197020FDACDFD /* QCloudLogManager.m in Sources */ = {isa = PBXBuildFile; fileRef = B9703A7371293EECD3570B5B2DFAD0FD /* QCloudLogManager.m */; }; + C6E7B5C5D2A2B1B8F527A221DAEECAED /* OSSLog.m in Sources */ = {isa = PBXBuildFile; fileRef = 1CE3CE3DBC64AB60E3A5818C1BE4EE97 /* OSSLog.m */; }; + C7402A8F9C17599CAC6011CB02B2DB51 /* zip.c in Sources */ = {isa = PBXBuildFile; fileRef = B9CE7D5CE139AF9EA1712245C57B9C42 /* zip.c */; }; + C74589E03918328E4D27EFCBF6C4A0B8 /* JXCategoryBaseCellModel.h in Headers */ = {isa = PBXBuildFile; fileRef = 59CBEAB2995EB1847B7FC4FE89A714A7 /* JXCategoryBaseCellModel.h */; settings = {ATTRIBUTES = (Public, ); }; }; + C7600D685F740E4A1E935A393ADB27C8 /* _YYWebImageSetter.m in Sources */ = {isa = PBXBuildFile; fileRef = 40F20D87AA3C8CE9A0E18052A6DC18E7 /* _YYWebImageSetter.m */; }; + C7797CB3D924CF0AAF2DC200C8890C1E /* LLHierarchyComponent.m in Sources */ = {isa = PBXBuildFile; fileRef = B80E2691F8C188D11FE61DFAD52C6FF3 /* LLHierarchyComponent.m */; }; + C786581E74B1E97E6042BC99E7193299 /* LLCrashModel.h in Headers */ = {isa = PBXBuildFile; fileRef = EE18F9EB151526E3C07397A9E807D8E4 /* LLCrashModel.h */; settings = {ATTRIBUTES = (Public, ); }; }; + C7ACED7C7E3A5460CFE2825B1AB37A69 /* LLScreenshotBaseOperation.h in Headers */ = {isa = PBXBuildFile; fileRef = 8C52E08C63B91E6793D1ABF146E1FDF7 /* LLScreenshotBaseOperation.h */; settings = {ATTRIBUTES = (Public, ); }; }; + C7FA67545D38E2F4515FAC5D02DB84AE /* LLCrashWindow.m in Sources */ = {isa = PBXBuildFile; fileRef = 527F36F77F902FDE250B6767F1A9A9D1 /* LLCrashWindow.m */; }; + C8031F25F75B85B9EA4D7CFE4A1DF3A9 /* OSSGetObjectTaggingResult.h in Headers */ = {isa = PBXBuildFile; fileRef = F3A7D09DD3FE09844CADECC5ED7EB147 /* OSSGetObjectTaggingResult.h */; settings = {ATTRIBUTES = (Public, ); }; }; + C8345D4CF38B0FE9983B5AD15675B1DA /* NSMutableDictionary+OSS.h in Headers */ = {isa = PBXBuildFile; fileRef = C5AF25C4A2709634CF3EB5429C9A4520 /* NSMutableDictionary+OSS.h */; settings = {ATTRIBUTES = (Public, ); }; }; + C84B78CB98146FA6F37F6E885B1008B5 /* QCloudHTTPRequest.m in Sources */ = {isa = PBXBuildFile; fileRef = A53DF9C950F0AD538A15FCFEAC3A99CC /* QCloudHTTPRequest.m */; }; + C857B8D2D0BAA5A8A764F9E1C4B85807 /* ViewController+MASAdditions.m in Sources */ = {isa = PBXBuildFile; fileRef = B285892E042AC483BB9B662E55DCF6B7 /* ViewController+MASAdditions.m */; }; + C85FD4EEAD511606ABB7799A756E7909 /* QCloudCopyObjectResult.h in Headers */ = {isa = PBXBuildFile; fileRef = C142C90A8EE06B1F137BF93CFD1FE0BD /* QCloudCopyObjectResult.h */; settings = {ATTRIBUTES = (Public, ); }; }; + C86705D074B3675CA80A43D709517B73 /* OSSV1Signer.m in Sources */ = {isa = PBXBuildFile; fileRef = FBCC619F2E5062A11CCA629F5913683C /* OSSV1Signer.m */; }; + C8685678D1B020F87365D022216FFE29 /* JXCategoryIndicatorImageView.h in Headers */ = {isa = PBXBuildFile; fileRef = 76A365B590AD92E43010BC75DDB8A8ED /* JXCategoryIndicatorImageView.h */; settings = {ATTRIBUTES = (Public, ); }; }; + C870D4FFBF8B37D615C1C88B2ABEBC33 /* YYTextRunDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = 54C9842F672DD7904085BBAF0823DE9A /* YYTextRunDelegate.m */; }; + C8A55E849B59FC6750A8844FF6745567 /* SVGAImageView.m in Sources */ = {isa = PBXBuildFile; fileRef = EEBED63C0D1C6DC8A8016BDC8797240E /* SVGAImageView.m */; }; + C8B284A4946540AF76FF866F9F34CF67 /* RACValueTransformer.h in Headers */ = {isa = PBXBuildFile; fileRef = 784EAA99362BC0C41CE5852297D05024 /* RACValueTransformer.h */; settings = {ATTRIBUTES = (Public, ); }; }; + C8BABE9974BFE9EFBF7E34BD75D8C445 /* TUIGlobalization.h in Headers */ = {isa = PBXBuildFile; fileRef = 1B01055A02C595C4CC216230475CCEF1 /* TUIGlobalization.h */; settings = {ATTRIBUTES = (Public, ); }; }; + C8C84ACFC0D811038ECB5A161059F40C /* LLHtmlConfigViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 99C9F6420E22E715A5EDD7BC667FB6BD /* LLHtmlConfigViewController.m */; }; + C8DF058D10E2B55CC73C5735F384759B /* LLEditTableViewController.h in Headers */ = {isa = PBXBuildFile; fileRef = DE1BE68F23F888A0E7FB47DEA0566D09 /* LLEditTableViewController.h */; settings = {ATTRIBUTES = (Public, ); }; }; + C8E78F57BF4287B3F93E34C983857ED0 /* QCloudRequestData.h in Headers */ = {isa = PBXBuildFile; fileRef = BC98CCFBF1EDA8F1689CA5CA43F79657 /* QCloudRequestData.h */; settings = {ATTRIBUTES = (Public, ); }; }; + C8EC35DFB0945DBE2F2FF9ECFE6D9711 /* NSLayoutConstraint+MASDebugAdditions.m in Sources */ = {isa = PBXBuildFile; fileRef = EF8AFD9D3F89C4C873F22404656CF56A /* NSLayoutConstraint+MASDebugAdditions.m */; }; + C9015AE4C9EE9D5BC77A83669033624C /* QCloudFileOffsetStream.m in Sources */ = {isa = PBXBuildFile; fileRef = 51D0491B8DC06AE5E614B4D37CAD6F90 /* QCloudFileOffsetStream.m */; }; + C9208B35E8B25A8E183E0B2BD2D22338 /* filters.c in Sources */ = {isa = PBXBuildFile; fileRef = 6221E8AB13753690EE8654446ABF1488 /* filters.c */; settings = {COMPILER_FLAGS = "-D_THREAD_SAFE -fno-objc-arc"; }; }; + C922BFFF717515E5878910DF4078CE1E /* JXCategoryIndicatorDotLineView.m in Sources */ = {isa = PBXBuildFile; fileRef = 3FE371DA2A6EFDB16C2401A747C6C1B9 /* JXCategoryIndicatorDotLineView.m */; }; + C929CEFCE6054964CEDD1180C72C300F /* QCloudSDKModuleManager.m in Sources */ = {isa = PBXBuildFile; fileRef = FA765F9271839D176DB2E0BD4F37309E /* QCloudSDKModuleManager.m */; }; + C93B810C1BD066C657F92F5D7C0259A5 /* SDImageAWebPCoder.m in Sources */ = {isa = PBXBuildFile; fileRef = 4CA49C94F05A2187AF5FFA52A89B5F2D /* SDImageAWebPCoder.m */; }; + C96B005ED1E51CBAEA6CCC2FA14DAE47 /* LLWindowManager+Ruler.h in Headers */ = {isa = PBXBuildFile; fileRef = 53FF1CAC382D4C785DB69A3A2BBE1ACC /* LLWindowManager+Ruler.h */; settings = {ATTRIBUTES = (Public, ); }; }; + C98125F6BAEE14BCDC62707C78A3EEB3 /* rescaler_msa.c in Sources */ = {isa = PBXBuildFile; fileRef = 4393C282FB84A0228EA11E3635D4ADFE /* rescaler_msa.c */; settings = {COMPILER_FLAGS = "-D_THREAD_SAFE -fno-objc-arc"; }; }; + C993A4D0CFA51E567F458CA65C1298AA /* MBProgressHUD-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = 6A1AFD93DA14D0C5F1EBD1E60FA950BC /* MBProgressHUD-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; C99F9A5F0C340700D35AE62A7AAD5115 /* TUIChatModifyMessageHelper.h in Headers */ = {isa = PBXBuildFile; fileRef = 2C28C56D51E91772D91591CED37CDA87 /* TUIChatModifyMessageHelper.h */; settings = {ATTRIBUTES = (Public, ); }; }; - C9AFC6682FD2C8231E779A4349DBDFD6 /* mz_strm_wzaes.c in Sources */ = {isa = PBXBuildFile; fileRef = D041FFCD34A6FD5AEA5E5A185B1E7CE7 /* mz_strm_wzaes.c */; }; - C9E19D164C26414115CC969ED9A303C1 /* MASLayoutConstraint.m in Sources */ = {isa = PBXBuildFile; fileRef = 3BACAFE24515AEBA75EBDB8DA3BB5435 /* MASLayoutConstraint.m */; }; + C9AFC6682FD2C8231E779A4349DBDFD6 /* mz_strm_wzaes.c in Sources */ = {isa = PBXBuildFile; fileRef = 8E039A8E9F100D07647F4967C09F2910 /* mz_strm_wzaes.c */; }; + C9E19D164C26414115CC969ED9A303C1 /* MASLayoutConstraint.m in Sources */ = {isa = PBXBuildFile; fileRef = 1886FABE4F852B01CE143893D8365EFD /* MASLayoutConstraint.m */; }; C9E5067115DD59497C3258119CFD2C07 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = F91075A92425F75F02E0E1C8D455AF79 /* Foundation.framework */; }; - C9E8C7B5AF3C4EF60385EC33BB0A193A /* TZImagePickerController.m in Sources */ = {isa = PBXBuildFile; fileRef = AD984F9C7DEC2984C3949D32E62B91BE /* TZImagePickerController.m */; }; - C9EA8ADF176E3A9958740431739FA3E4 /* YYTextTransaction.m in Sources */ = {isa = PBXBuildFile; fileRef = 3F45C422560606353F0A1EE06FFBB6AB /* YYTextTransaction.m */; }; - C9EBE0AD508E6B3A780A8FA0DBC68427 /* YBImageBrowser-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 3B408488BE85B0EE63793A214141A13F /* YBImageBrowser-dummy.m */; }; - C9F7628BEA110FD9D677EA19555B27BC /* LLHierarchyComponent.h in Headers */ = {isa = PBXBuildFile; fileRef = 2F0BBFCEBD79B28994AA42CB9822B10B /* LLHierarchyComponent.h */; settings = {ATTRIBUTES = (Public, ); }; }; - CA1C91D58406D27B503DB85897597612 /* NSDate+OSS.h in Headers */ = {isa = PBXBuildFile; fileRef = 50E0A84F16910F304436C14B39378BCD /* NSDate+OSS.h */; settings = {ATTRIBUTES = (Public, ); }; }; + C9E8C7B5AF3C4EF60385EC33BB0A193A /* TZImagePickerController.m in Sources */ = {isa = PBXBuildFile; fileRef = 12DB7C639DA744A1B2B62DF0569D27B5 /* TZImagePickerController.m */; }; + C9EA8ADF176E3A9958740431739FA3E4 /* YYTextTransaction.m in Sources */ = {isa = PBXBuildFile; fileRef = 178CB5232ADD2940C664E2DAC8C07E78 /* YYTextTransaction.m */; }; + C9EBE0AD508E6B3A780A8FA0DBC68427 /* YBImageBrowser-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 5A87E7D21E00C0521DD0FFAD245BDF34 /* YBImageBrowser-dummy.m */; }; + C9F1E874CACA8E00BE7BCF27AE20FA28 /* UIView+WebCacheOperation.m in Sources */ = {isa = PBXBuildFile; fileRef = 0E70FF339EB00931C8B39F8AB9932B20 /* UIView+WebCacheOperation.m */; }; + C9F7628BEA110FD9D677EA19555B27BC /* LLHierarchyComponent.h in Headers */ = {isa = PBXBuildFile; fileRef = A613244EA3F30D41E7F6A2B3E0C11771 /* LLHierarchyComponent.h */; settings = {ATTRIBUTES = (Public, ); }; }; + CA1C91D58406D27B503DB85897597612 /* NSDate+OSS.h in Headers */ = {isa = PBXBuildFile; fileRef = A205DF285961A683BDABB3F026EAF070 /* NSDate+OSS.h */; settings = {ATTRIBUTES = (Public, ); }; }; CA213CA644A9696B8EF15C0BFC5D3691 /* TUIGroupAvatar+Helper.m in Sources */ = {isa = PBXBuildFile; fileRef = 90EEBC4F39930756A7145F73F6C19488 /* TUIGroupAvatar+Helper.m */; }; - CA3B70F59C480F8E7E57BB927544A84D /* SDImageAssetManager.m in Sources */ = {isa = PBXBuildFile; fileRef = B769D82EDC972B8FD1AA80B222B81C75 /* SDImageAssetManager.m */; }; - CA400533ABAF7F6923B7B403995755CA /* picture_enc.c in Sources */ = {isa = PBXBuildFile; fileRef = 2B7E52F6B331B02D471778EB539D2BF1 /* picture_enc.c */; settings = {COMPILER_FLAGS = "-D_THREAD_SAFE -fno-objc-arc"; }; }; - CA65FF15957F7DA60B3E224935546A52 /* QGVAPMetalUtil.h in Headers */ = {isa = PBXBuildFile; fileRef = CF0F3A9254672A497A06C1992F0CCCA0 /* QGVAPMetalUtil.h */; settings = {ATTRIBUTES = (Public, ); }; }; - CA9AFE3460622CC65F75A2DDE845F6E9 /* JXPagerSmoothView.h in Headers */ = {isa = PBXBuildFile; fileRef = 155CB483AEDFBD2BA69E796394E3D6C3 /* JXPagerSmoothView.h */; settings = {ATTRIBUTES = (Public, ); }; }; - CA9C35FCA9D124DB830DA3997692E729 /* LLWindowManager+AppInfo.h in Headers */ = {isa = PBXBuildFile; fileRef = 1D8463AD16E20FEE262A6EC2DC418D2B /* LLWindowManager+AppInfo.h */; settings = {ATTRIBUTES = (Public, ); }; }; + CA317E37A91E64AB44A9B1DCD28EAD0F /* muxinternal.c in Sources */ = {isa = PBXBuildFile; fileRef = FA87F8676E587989AD5F3A0F4AA8DFCE /* muxinternal.c */; settings = {COMPILER_FLAGS = "-D_THREAD_SAFE -fno-objc-arc"; }; }; + CA65FF15957F7DA60B3E224935546A52 /* QGVAPMetalUtil.h in Headers */ = {isa = PBXBuildFile; fileRef = 112D92259F30896CFD904B6A7663712C /* QGVAPMetalUtil.h */; settings = {ATTRIBUTES = (Public, ); }; }; + CA969D78DF1470FD1D125F932E7A3C20 /* QCloudNetProfile.m in Sources */ = {isa = PBXBuildFile; fileRef = FFDB774C101BFB12D80A65CD24C53959 /* QCloudNetProfile.m */; }; + CA9AFE3460622CC65F75A2DDE845F6E9 /* JXPagerSmoothView.h in Headers */ = {isa = PBXBuildFile; fileRef = A1E851B842C5436A7C425A28F5EAFF08 /* JXPagerSmoothView.h */; settings = {ATTRIBUTES = (Public, ); }; }; + CA9C35FCA9D124DB830DA3997692E729 /* LLWindowManager+AppInfo.h in Headers */ = {isa = PBXBuildFile; fileRef = 9914816CFEB1A44C5DD27892F27F701A /* LLWindowManager+AppInfo.h */; settings = {ATTRIBUTES = (Public, ); }; }; CADC150E3A4F3C35897990EC757C03DF /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = F91075A92425F75F02E0E1C8D455AF79 /* Foundation.framework */; }; - CAE5D4ECC41160F25912BE5C486B5779 /* bit_writer_utils.c in Sources */ = {isa = PBXBuildFile; fileRef = 3EB054E887D05E31BDE825726592B763 /* bit_writer_utils.c */; settings = {COMPILER_FLAGS = "-D_THREAD_SAFE -fno-objc-arc"; }; }; - CAF87D8871E1C5F25634585386CB3F3B /* UIView+TUILayout.h in Headers */ = {isa = PBXBuildFile; fileRef = 0BD3A560E72C86BABE5F7CC27E62D459 /* UIView+TUILayout.h */; settings = {ATTRIBUTES = (Public, ); }; }; - CAFC7554C76B9139E8841290A5AC9E55 /* UIButton+YYWebImage.m in Sources */ = {isa = PBXBuildFile; fileRef = D2C72257FB63B5EA50AE6A8C3222B5D3 /* UIButton+YYWebImage.m */; }; - CAFDFD4EC14791A28523BC9170E9306B /* SDImageCachesManagerOperation.h in Headers */ = {isa = PBXBuildFile; fileRef = 1A21449F09A73A1E07B5EBA56EA816D0 /* SDImageCachesManagerOperation.h */; settings = {ATTRIBUTES = (Private, ); }; }; - CB12CE1C59E8FD2EDD6975AF72D11BE8 /* color_cache_utils.c in Sources */ = {isa = PBXBuildFile; fileRef = C919EE910E10E500F80D563FE6E49F58 /* color_cache_utils.c */; settings = {COMPILER_FLAGS = "-D_THREAD_SAFE -fno-objc-arc"; }; }; - CB18E8B67513473D943B0083143102B0 /* Svga.pbobjc.h in Headers */ = {isa = PBXBuildFile; fileRef = A7BA3A3BE4417E4AC569EE4594B56890 /* Svga.pbobjc.h */; settings = {ATTRIBUTES = (Public, ); }; }; - CB1BF26E306EB0BFE27E6A0730F7A672 /* alpha_processing_neon.c in Sources */ = {isa = PBXBuildFile; fileRef = E5203DCBA0556E62B9ABE25D1C77D379 /* alpha_processing_neon.c */; settings = {COMPILER_FLAGS = "-D_THREAD_SAFE -fno-objc-arc"; }; }; + CAE200584D8C0794A6D61DE008EDB10B /* NSURLRequest+COS.m in Sources */ = {isa = PBXBuildFile; fileRef = D0873B00FF4A1B50B350980FED12AE7E /* NSURLRequest+COS.m */; }; + CAFC7554C76B9139E8841290A5AC9E55 /* UIButton+YYWebImage.m in Sources */ = {isa = PBXBuildFile; fileRef = 3A7D3D49FA00D2550D145285DA5CA7C3 /* UIButton+YYWebImage.m */; }; + CB18E8B67513473D943B0083143102B0 /* Svga.pbobjc.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A5EC203393EDB39DF19C5B9EC73E99C /* Svga.pbobjc.h */; settings = {ATTRIBUTES = (Public, ); }; }; + CB1D28D0B5A3D8F0040BBA73474A2461 /* QCloudUploadObjectResult.h in Headers */ = {isa = PBXBuildFile; fileRef = F16D84E1CE2EB0590049C86CD5FF0ADE /* QCloudUploadObjectResult.h */; settings = {ATTRIBUTES = (Public, ); }; }; CB22EB2F2905B3529AFDA1A1B7A0AB8D /* TUICameraView.h in Headers */ = {isa = PBXBuildFile; fileRef = E5D1D639E269A845688C860850C08FD7 /* TUICameraView.h */; settings = {ATTRIBUTES = (Public, ); }; }; - CB2D7E2CAB8F50571DA2E0F437AD562D /* LLSandbox.h in Headers */ = {isa = PBXBuildFile; fileRef = E59066CA94FC36560D3769BD1F4B84E6 /* LLSandbox.h */; settings = {ATTRIBUTES = (Public, ); }; }; - CB31465DAD412DA0D7B7A8C6E316E05B /* TUIGlobalization.m in Sources */ = {isa = PBXBuildFile; fileRef = 2130188A88059BB6862656396FAD3C0F /* TUIGlobalization.m */; }; - CB34743BD4DE41CBD72B18BD8A9646E0 /* ScoringMachineProtocol+Infos.swift in Sources */ = {isa = PBXBuildFile; fileRef = BBE9BE2772E3AD3AA9B174F7E636D0A6 /* ScoringMachineProtocol+Infos.swift */; }; - CB6E35960C294DA751F679E953F4F14F /* RACEvent.h in Headers */ = {isa = PBXBuildFile; fileRef = 71003306D1C40BF6E543AABE22DCC951 /* RACEvent.h */; settings = {ATTRIBUTES = (Public, ); }; }; - CB7FD8FA81234BF9CC43527FE6260F62 /* RACReturnSignal.m in Sources */ = {isa = PBXBuildFile; fileRef = 9A05EC9D7F000F85F1F2BEFDEE6C75A0 /* RACReturnSignal.m */; }; - CBA24325A603D600E9A1CD53EAB2FB34 /* LLScreenshotHelper.m in Sources */ = {isa = PBXBuildFile; fileRef = 770E456381CC918A6B967876645BD99C /* LLScreenshotHelper.m */; }; - CBA4E86157FC8473E597F0D7050B5E4C /* IQBarButtonItem.h in Headers */ = {isa = PBXBuildFile; fileRef = 6F0DCA619161F7A82D0ED59EE40C44D8 /* IQBarButtonItem.h */; settings = {ATTRIBUTES = (Public, ); }; }; - CBAAE2A674699D3391C898EA00D0AA5C /* RACSubject.h in Headers */ = {isa = PBXBuildFile; fileRef = 7D8737F50F40B4DD880127C8E8CA6CC3 /* RACSubject.h */; settings = {ATTRIBUTES = (Public, ); }; }; - CBACF5A69474697D1627525F6B2504CD /* LLLocationComponent.m in Sources */ = {isa = PBXBuildFile; fileRef = 61D7F70433229A22F3A30D1AD14CA472 /* LLLocationComponent.m */; }; - CBD669CA61B8E19EE81563F7D7451FA9 /* UIView+TZLayout.h in Headers */ = {isa = PBXBuildFile; fileRef = 5603228251A5126AD66F2725E36DE8B8 /* UIView+TZLayout.h */; settings = {ATTRIBUTES = (Public, ); }; }; - CC292742EE35DD207924BFCFE75D0F8D /* LLEntryBallView.m in Sources */ = {isa = PBXBuildFile; fileRef = 01B91B70699133A8C8CDE58C591B740C /* LLEntryBallView.m */; }; - CC344213CF3017F17E810FB007EE65EF /* YYTextLayout.h in Headers */ = {isa = PBXBuildFile; fileRef = 0185957643DE4CF0AC4A947BBDB153EC /* YYTextLayout.h */; settings = {ATTRIBUTES = (Public, ); }; }; - CC7DB4436CE139CDCB51C5DC5BB1BEAF /* LyricsView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 55BE2719E50A6EA734B586CE45848688 /* LyricsView.swift */; }; - CCA92292FB05539B19AD95F2CBB8A65C /* LLLogFilterView.m in Sources */ = {isa = PBXBuildFile; fileRef = EF5B4DC8A9BAF7B6628BF677B9A547F0 /* LLLogFilterView.m */; }; + CB2D7E2CAB8F50571DA2E0F437AD562D /* LLSandbox.h in Headers */ = {isa = PBXBuildFile; fileRef = 695B71E90A78E92B3B729FF7976FF95B /* LLSandbox.h */; settings = {ATTRIBUTES = (Public, ); }; }; + CB34743BD4DE41CBD72B18BD8A9646E0 /* ScoringMachineProtocol+Infos.swift in Sources */ = {isa = PBXBuildFile; fileRef = 921E5C4735B2CFC1A410EEB60DA1F15D /* ScoringMachineProtocol+Infos.swift */; }; + CB6E35960C294DA751F679E953F4F14F /* RACEvent.h in Headers */ = {isa = PBXBuildFile; fileRef = 9C0752E1B9052AFECD101EBEA8C69BB2 /* RACEvent.h */; settings = {ATTRIBUTES = (Public, ); }; }; + CB7FD8FA81234BF9CC43527FE6260F62 /* RACReturnSignal.m in Sources */ = {isa = PBXBuildFile; fileRef = 898E82C73F718565E9F537B08652C221 /* RACReturnSignal.m */; }; + CBA24325A603D600E9A1CD53EAB2FB34 /* LLScreenshotHelper.m in Sources */ = {isa = PBXBuildFile; fileRef = EF94E42A71EF4BB4F94BCCC59FFDC67F /* LLScreenshotHelper.m */; }; + CBA4E86157FC8473E597F0D7050B5E4C /* IQBarButtonItem.h in Headers */ = {isa = PBXBuildFile; fileRef = 8A24190DA80C03A61877016F3EECE467 /* IQBarButtonItem.h */; settings = {ATTRIBUTES = (Public, ); }; }; + CBAAE2A674699D3391C898EA00D0AA5C /* RACSubject.h in Headers */ = {isa = PBXBuildFile; fileRef = ACE661F218BED1217BB2E02F63814B14 /* RACSubject.h */; settings = {ATTRIBUTES = (Public, ); }; }; + CBACBCFE836FEADE2C187DA67B0439BF /* QCloudHosts.m in Sources */ = {isa = PBXBuildFile; fileRef = EE43C496351E428193836DDC7DAF36AC /* QCloudHosts.m */; }; + CBACF5A69474697D1627525F6B2504CD /* LLLocationComponent.m in Sources */ = {isa = PBXBuildFile; fileRef = 260DC26BDF0892F9519735F2FC5DE923 /* LLLocationComponent.m */; }; + CBD669CA61B8E19EE81563F7D7451FA9 /* UIView+TZLayout.h in Headers */ = {isa = PBXBuildFile; fileRef = 2CF0548A02A55E4C627CD7F357EF9994 /* UIView+TZLayout.h */; settings = {ATTRIBUTES = (Public, ); }; }; + CBE2D64D46706FE4863E094E61A98148 /* sharpyuv.c in Sources */ = {isa = PBXBuildFile; fileRef = 8C93EEA40FE0DA8CB90A713BA52C61B2 /* sharpyuv.c */; settings = {COMPILER_FLAGS = "-D_THREAD_SAFE -fno-objc-arc"; }; }; + CC292742EE35DD207924BFCFE75D0F8D /* LLEntryBallView.m in Sources */ = {isa = PBXBuildFile; fileRef = 91A7D7FAD9C88D8FADFF64439EACA222 /* LLEntryBallView.m */; }; + CC344213CF3017F17E810FB007EE65EF /* YYTextLayout.h in Headers */ = {isa = PBXBuildFile; fileRef = 757F9E32EF3ACEC838DAB4FEF3483E44 /* YYTextLayout.h */; settings = {ATTRIBUTES = (Public, ); }; }; + CC7DB4436CE139CDCB51C5DC5BB1BEAF /* LyricsView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 621FAB72115D94D553E6D61DC403E6FD /* LyricsView.swift */; }; + CCA92292FB05539B19AD95F2CBB8A65C /* LLLogFilterView.m in Sources */ = {isa = PBXBuildFile; fileRef = 75E2AD06BBB42B04236882A7B5727F2E /* LLLogFilterView.m */; }; CCEC6631C7EBB667EA00EEF0A300EB4A /* TUIGroupNoticeController.h in Headers */ = {isa = PBXBuildFile; fileRef = D7C12A77EFF0B391EEAC10733E2E38EA /* TUIGroupNoticeController.h */; settings = {ATTRIBUTES = (Public, ); }; }; - CCFBAD5D98E4D090EC94ECC8BE6FFA49 /* YYTextRubyAnnotation.m in Sources */ = {isa = PBXBuildFile; fileRef = CD243322E3D8FE8CEF5CFAC8FE226440 /* YYTextRubyAnnotation.m */; }; - CD0D3AD69AFAC3F7A49AE61ECD8181A8 /* NSDate+BRPickerView.m in Sources */ = {isa = PBXBuildFile; fileRef = FA20BE804FA50028C68F2AA78C20A9B7 /* NSDate+BRPickerView.m */; }; - CD11AA2AEE821CAE3316CF00DD14B833 /* OSSExecutor.h in Headers */ = {isa = PBXBuildFile; fileRef = 66AA06CECA7B456461C6386269D759F8 /* OSSExecutor.h */; settings = {ATTRIBUTES = (Public, ); }; }; - CD378EDA46C03B48E7981C5E30B9B533 /* LLSandboxTextPreviewController.h in Headers */ = {isa = PBXBuildFile; fileRef = 6F5338DDDD018E2084D66EFC2DFE5631 /* LLSandboxTextPreviewController.h */; settings = {ATTRIBUTES = (Public, ); }; }; + CCFBAD5D98E4D090EC94ECC8BE6FFA49 /* YYTextRubyAnnotation.m in Sources */ = {isa = PBXBuildFile; fileRef = D70F61F84A871A4A5701CC7FF69CA1C0 /* YYTextRubyAnnotation.m */; }; + CD0D3AD69AFAC3F7A49AE61ECD8181A8 /* NSDate+BRPickerView.m in Sources */ = {isa = PBXBuildFile; fileRef = D02B90433D7B5F3B2ACEAC03D5CD20DD /* NSDate+BRPickerView.m */; }; + CD11AA2AEE821CAE3316CF00DD14B833 /* OSSExecutor.h in Headers */ = {isa = PBXBuildFile; fileRef = 8196DF90AC27B269BC046A3C0AF41F3E /* OSSExecutor.h */; settings = {ATTRIBUTES = (Public, ); }; }; + CD378EDA46C03B48E7981C5E30B9B533 /* LLSandboxTextPreviewController.h in Headers */ = {isa = PBXBuildFile; fileRef = B95A480D773A0692D0129A94C8455AC3 /* LLSandboxTextPreviewController.h */; settings = {ATTRIBUTES = (Public, ); }; }; + CD5CC2EDC5C836AF24F4CC1FD014BB2F /* QCloudSandboxPath.h in Headers */ = {isa = PBXBuildFile; fileRef = 1A2E818D391D5A9AF7161708FD90DA54 /* QCloudSandboxPath.h */; settings = {ATTRIBUTES = (Public, ); }; }; + CD6FC480BC8A2D31541403F2009C048D /* SDImageCodersManager.m in Sources */ = {isa = PBXBuildFile; fileRef = 8E587B44A2FE47CDECE41B5B3B3DEEAA /* SDImageCodersManager.m */; }; CD7A4932136830123A1415B34D78E386 /* TUIBaseChatViewController_Minimalist+ProtectedAPI.h in Headers */ = {isa = PBXBuildFile; fileRef = 5B87C5ED941D4516E2EB64739983E9B6 /* TUIBaseChatViewController_Minimalist+ProtectedAPI.h */; settings = {ATTRIBUTES = (Public, ); }; }; - CD8FDD682D944B4D894AC40EF97E2655 /* quant_levels_dec_utils.h in Headers */ = {isa = PBXBuildFile; fileRef = 3820BFD5C4FBCB397E6F614D474D5CE3 /* quant_levels_dec_utils.h */; settings = {ATTRIBUTES = (Project, ); }; }; CDB2B19C502A40360262F9000187F30B /* NSTimer+TUISafe.m in Sources */ = {isa = PBXBuildFile; fileRef = 01AF44A2DFD1DA7DF152967F3D0B0836 /* NSTimer+TUISafe.m */; }; CDBC41B2F5D08292677E501E5CE5FEE2 /* TIMConfig.m in Sources */ = {isa = PBXBuildFile; fileRef = 0B87CDC20E7F7F33E74ECEE87AB3A9FD /* TIMConfig.m */; }; - CDC94CD57BAC77297C535FB9ACF180E4 /* token_enc.c in Sources */ = {isa = PBXBuildFile; fileRef = 13CC6D92AF49BF76FF6C8C2B3209156E /* token_enc.c */; settings = {COMPILER_FLAGS = "-D_THREAD_SAFE -fno-objc-arc"; }; }; - CDD033CA4A385ADDB1E4475E2813738B /* NSAttributedString+YYText.h in Headers */ = {isa = PBXBuildFile; fileRef = 1485D3702A46F151C19F66E9CC28F283 /* NSAttributedString+YYText.h */; settings = {ATTRIBUTES = (Public, ); }; }; - CE2AF36EBB17CDA2652CBADD4A7ABF82 /* JXCategoryImageCellModel.m in Sources */ = {isa = PBXBuildFile; fileRef = 37D6F7F59608D31B5D1DED1686D45B21 /* JXCategoryImageCellModel.m */; }; + CDC44AFBA04BAC64DE991E5829025EC3 /* UIView+WebCacheState.h in Headers */ = {isa = PBXBuildFile; fileRef = 8123DF9F96F2C3A468AF0A2227154768 /* UIView+WebCacheState.h */; settings = {ATTRIBUTES = (Public, ); }; }; + CDD033CA4A385ADDB1E4475E2813738B /* NSAttributedString+YYText.h in Headers */ = {isa = PBXBuildFile; fileRef = FEC5AD5E49B314721065FAA3D47098D7 /* NSAttributedString+YYText.h */; settings = {ATTRIBUTES = (Public, ); }; }; + CE2AF36EBB17CDA2652CBADD4A7ABF82 /* JXCategoryImageCellModel.m in Sources */ = {isa = PBXBuildFile; fileRef = ABF88163521CDB75D54016CB498D594B /* JXCategoryImageCellModel.m */; }; + CE6020CF5752BF13A6606167415ED2D6 /* QCloudCOSXMLCopyObjectRequest.m in Sources */ = {isa = PBXBuildFile; fileRef = E6758F056FC5CD773236E5DF7E34CCF9 /* QCloudCOSXMLCopyObjectRequest.m */; }; CEC1A6D79DD64B30126421BBAB6F376D /* TUIChatPopMenuDefine.h in Headers */ = {isa = PBXBuildFile; fileRef = 01E5A7DCD1DE77AF8BD6ACF98030B325 /* TUIChatPopMenuDefine.h */; settings = {ATTRIBUTES = (Public, ); }; }; - CEC9EF043F69710AC29940EB4E1E2B19 /* RTLManager.h in Headers */ = {isa = PBXBuildFile; fileRef = 6CB8FE27AB427D9D21522E9B878B3336 /* RTLManager.h */; settings = {ATTRIBUTES = (Public, ); }; }; - CECFD7956A416E935B6B2D93FB5B655C /* TZAuthLimitedFooterTipView.h in Headers */ = {isa = PBXBuildFile; fileRef = A58CE48F937F5AC1F3F9D765806B835B /* TZAuthLimitedFooterTipView.h */; settings = {ATTRIBUTES = (Public, ); }; }; - CED755212C219C5B101B2BC783741983 /* QGVAPMetalView.h in Headers */ = {isa = PBXBuildFile; fileRef = 11F9DD3D863E9A8403CFEDA4ACB15853 /* QGVAPMetalView.h */; settings = {ATTRIBUTES = (Public, ); }; }; - CEEDE8C490B8094AFB136AEDFF22D97D /* OSSConstants.m in Sources */ = {isa = PBXBuildFile; fileRef = 570592C997E29B54B8CE76C07D59CBE7 /* OSSConstants.m */; }; - CEF1F954E4C761EAAAA1B663918BAB00 /* SDAsyncBlockOperation.h in Headers */ = {isa = PBXBuildFile; fileRef = E1CD64760C2981521188C1014B317840 /* SDAsyncBlockOperation.h */; settings = {ATTRIBUTES = (Private, ); }; }; - CF056FD841F8BCADF0476F58731E7120 /* BRTextModel.m in Sources */ = {isa = PBXBuildFile; fileRef = D444D03CC4FB842D121B0F3136BDBC5A /* BRTextModel.m */; }; - CF07EC3AE090DA3A7889F4CCDCAD10C8 /* analysis_enc.c in Sources */ = {isa = PBXBuildFile; fileRef = 60B3CD5B3DE785277672733EE37738DC /* analysis_enc.c */; settings = {COMPILER_FLAGS = "-D_THREAD_SAFE -fno-objc-arc"; }; }; + CEC9EF043F69710AC29940EB4E1E2B19 /* RTLManager.h in Headers */ = {isa = PBXBuildFile; fileRef = 1738F3FDE9CC0DE7C1813CA3ABF620E9 /* RTLManager.h */; settings = {ATTRIBUTES = (Public, ); }; }; + CECFD7956A416E935B6B2D93FB5B655C /* TZAuthLimitedFooterTipView.h in Headers */ = {isa = PBXBuildFile; fileRef = 9089C138119CC3A3E207FC6E44DF7883 /* TZAuthLimitedFooterTipView.h */; settings = {ATTRIBUTES = (Public, ); }; }; + CED5AA1968C3B4E43B905A21C9F3F697 /* QCloudCustomLoaderTask.h in Headers */ = {isa = PBXBuildFile; fileRef = B595928CE760ACED587ACBD354A996E5 /* QCloudCustomLoaderTask.h */; settings = {ATTRIBUTES = (Public, ); }; }; + CED755212C219C5B101B2BC783741983 /* QGVAPMetalView.h in Headers */ = {isa = PBXBuildFile; fileRef = 54E20AEAEADAB286610843D9667CB450 /* QGVAPMetalView.h */; settings = {ATTRIBUTES = (Public, ); }; }; + CEEDE8C490B8094AFB136AEDFF22D97D /* OSSConstants.m in Sources */ = {isa = PBXBuildFile; fileRef = C08D14D80A418D788FC62B0EBAA6E0D8 /* OSSConstants.m */; }; + CF056FD841F8BCADF0476F58731E7120 /* BRTextModel.m in Sources */ = {isa = PBXBuildFile; fileRef = 89B334B55D17CF93763C51CB3EA0034D /* BRTextModel.m */; }; CF2227AB0658268B59B035E2D379F700 /* TUIGroupCreatedCell_Minimalist.h in Headers */ = {isa = PBXBuildFile; fileRef = 1AE47120AACC023A925FF8799BECF23D /* TUIGroupCreatedCell_Minimalist.h */; settings = {ATTRIBUTES = (Public, ); }; }; - CF26C843968B8CBFF3931E82CA77FB81 /* RACKVOTrampoline.m in Sources */ = {isa = PBXBuildFile; fileRef = 205478D6096D2F67476662CBE8198CF2 /* RACKVOTrampoline.m */; }; - CF4FEE830556D79EE144EDEBA5FBDD29 /* ssim_sse2.c in Sources */ = {isa = PBXBuildFile; fileRef = 6194FEC8E3AA6C018DE540C5B4361ED4 /* ssim_sse2.c */; settings = {COMPILER_FLAGS = "-D_THREAD_SAFE -fno-objc-arc"; }; }; - CF6EA485CFDB34A03C4F7EA56FE71208 /* LLDebugTool-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = 605B463D31C3111CE15C23C42A2243A1 /* LLDebugTool-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; - CF73C36D71C647ECECA8DD2F682F7C12 /* LLHtmlViewController.h in Headers */ = {isa = PBXBuildFile; fileRef = 66DF3D1DAFCFB049D5AFBF7B7E0EE32E /* LLHtmlViewController.h */; settings = {ATTRIBUTES = (Public, ); }; }; - CF920ABA6E1298340ED5EA7D81D0C19F /* encode.h in Headers */ = {isa = PBXBuildFile; fileRef = C95E4495AF4EB56CE987FDC609698431 /* encode.h */; settings = {ATTRIBUTES = (Public, ); }; }; - CF96B3FEA3AEFCF6137DD7A22D92569E /* YYModel-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 682A112D8B7ABC19F65496559D45F6E9 /* YYModel-dummy.m */; }; + CF26C843968B8CBFF3931E82CA77FB81 /* RACKVOTrampoline.m in Sources */ = {isa = PBXBuildFile; fileRef = 7D520FB3734A205A622A47AED3147EFE /* RACKVOTrampoline.m */; }; + CF6EA485CFDB34A03C4F7EA56FE71208 /* LLDebugTool-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = A91D031B942FCE6EA400BE1570F2D49F /* LLDebugTool-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; + CF73C36D71C647ECECA8DD2F682F7C12 /* LLHtmlViewController.h in Headers */ = {isa = PBXBuildFile; fileRef = 6E9AF43EF9A9E70173237D085D5D3F84 /* LLHtmlViewController.h */; settings = {ATTRIBUTES = (Public, ); }; }; + CF96B3FEA3AEFCF6137DD7A22D92569E /* YYModel-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = B5B4D189B02DA7C4E95C697B6F95821C /* YYModel-dummy.m */; }; CF99653905112ACA6CC860ACF9A90BDF /* TUIMenuCell_Minimalist.m in Sources */ = {isa = PBXBuildFile; fileRef = 6961E71D61A2F3F0E3AEAB17342E8C31 /* TUIMenuCell_Minimalist.m */; }; - CFA8347B3DC533F19499DDB75834F0D7 /* LLLogComponent.h in Headers */ = {isa = PBXBuildFile; fileRef = 7986063DEFE43E2F80E37E4A1882CB24 /* LLLogComponent.h */; settings = {ATTRIBUTES = (Public, ); }; }; - CFC01E70F36F51499407DC16F2A1269D /* SDFileAttributeHelper.h in Headers */ = {isa = PBXBuildFile; fileRef = 4D90E27A2371C9736D70DE7CDA769710 /* SDFileAttributeHelper.h */; settings = {ATTRIBUTES = (Private, ); }; }; - D02BC4DA622575D9276AFF95F9B9DD47 /* LLHtmlComponent.m in Sources */ = {isa = PBXBuildFile; fileRef = 442DC7515F4A10B07B14F67C8A1B0DA7 /* LLHtmlComponent.m */; }; + CFA8347B3DC533F19499DDB75834F0D7 /* LLLogComponent.h in Headers */ = {isa = PBXBuildFile; fileRef = 05160E7568CFFE842A97D9E0E48AB75F /* LLLogComponent.h */; settings = {ATTRIBUTES = (Public, ); }; }; + CFBF856DD8047CBB4695FA7A0E3B6D9D /* enc_neon.c in Sources */ = {isa = PBXBuildFile; fileRef = F4C56853B389CB4CC1EE2AFC7D9EB23C /* enc_neon.c */; settings = {COMPILER_FLAGS = "-D_THREAD_SAFE -fno-objc-arc"; }; }; + D02BC4DA622575D9276AFF95F9B9DD47 /* LLHtmlComponent.m in Sources */ = {isa = PBXBuildFile; fileRef = 9CEF4152C34AAF54F6E4F9F8820EA9E9 /* LLHtmlComponent.m */; }; D0359264CF33D28099D889586019780D /* CoreFoundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = BDCD3DDCE37ACFD1BDD612F5969870AA /* CoreFoundation.framework */; }; - D060CC4D5C18F39B55165F6A40D511D6 /* LLLogCell.m in Sources */ = {isa = PBXBuildFile; fileRef = 93D8230D41E4E6E46D22CF26B773A52D /* LLLogCell.m */; }; - D080955AE334D4B71C2973195577E616 /* LLCrashHelper.h in Headers */ = {isa = PBXBuildFile; fileRef = 1178169A4033918B4D8F19C50E1F67E7 /* LLCrashHelper.h */; settings = {ATTRIBUTES = (Public, ); }; }; - D08901EA319887BE6D694F8333BE8D1F /* JXCategoryIndicatorTriangleView.m in Sources */ = {isa = PBXBuildFile; fileRef = 11F1C3E3E8441B3753F61FF2076D667C /* JXCategoryIndicatorTriangleView.m */; }; - D0931B81CCBC787053DC344C2A42EECD /* SVGAPlayer-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 8C5AA69C7D2BE359935D0B5CC88996BA /* SVGAPlayer-dummy.m */; }; - D0A8F86C31CF8BE5C61785EF585EE6A2 /* RACDisposable.h in Headers */ = {isa = PBXBuildFile; fileRef = A1EEAC3A4312A6FE9A305BE184EDCFA3 /* RACDisposable.h */; settings = {ATTRIBUTES = (Public, ); }; }; - D0C26527632DDFA298C921CD529F675C /* TZImageManager.h in Headers */ = {isa = PBXBuildFile; fileRef = F52A7A1A05E4871CB0F2B150C3737E05 /* TZImageManager.h */; settings = {ATTRIBUTES = (Public, ); }; }; - D0D12E738C15C9C39A8CDECC7321BEC3 /* Any.pbobjc.h in Headers */ = {isa = PBXBuildFile; fileRef = B42263C4FE1E2BE3EEAF9A95826D5E8B /* Any.pbobjc.h */; settings = {ATTRIBUTES = (Public, ); }; }; + D060CC4D5C18F39B55165F6A40D511D6 /* LLLogCell.m in Sources */ = {isa = PBXBuildFile; fileRef = C69A1BBD0A0739C565892EAC45726A72 /* LLLogCell.m */; }; + D06EBB54DE43BBF5E4CD879B987FF915 /* crypt.h in Headers */ = {isa = PBXBuildFile; fileRef = 72078061517BF16CE01E5F76AAA46233 /* crypt.h */; settings = {ATTRIBUTES = (Project, ); }; }; + D080955AE334D4B71C2973195577E616 /* LLCrashHelper.h in Headers */ = {isa = PBXBuildFile; fileRef = 6759B25413994A769CDE9CCE8BDDFA61 /* LLCrashHelper.h */; settings = {ATTRIBUTES = (Public, ); }; }; + D08901EA319887BE6D694F8333BE8D1F /* JXCategoryIndicatorTriangleView.m in Sources */ = {isa = PBXBuildFile; fileRef = FF3945C6F81293E6CA9D3885C41E5616 /* JXCategoryIndicatorTriangleView.m */; }; + D0931B81CCBC787053DC344C2A42EECD /* SVGAPlayer-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = D370EA7482746DE2146E7EE4CFF36767 /* SVGAPlayer-dummy.m */; }; + D0A8F86C31CF8BE5C61785EF585EE6A2 /* RACDisposable.h in Headers */ = {isa = PBXBuildFile; fileRef = 434F24A047F6F5AD0B4311E10778C36C /* RACDisposable.h */; settings = {ATTRIBUTES = (Public, ); }; }; + D0C26527632DDFA298C921CD529F675C /* TZImageManager.h in Headers */ = {isa = PBXBuildFile; fileRef = 06C7ABE6CC45CFDC6591F96A0C87662F /* TZImageManager.h */; settings = {ATTRIBUTES = (Public, ); }; }; + D0D12E738C15C9C39A8CDECC7321BEC3 /* Any.pbobjc.h in Headers */ = {isa = PBXBuildFile; fileRef = 463A082C5CE915F6DA5845B14BA399A8 /* Any.pbobjc.h */; settings = {ATTRIBUTES = (Public, ); }; }; D0D32C91C25C768758BA03F443682606 /* TUIAudioRecorder.h in Headers */ = {isa = PBXBuildFile; fileRef = 6E736FBBE710D09EEED578137E1463D8 /* TUIAudioRecorder.h */; settings = {ATTRIBUTES = (Public, ); }; }; - D0DD94C9BBAF8C653232930C3C3F2F73 /* NSObject+RACLifting.h in Headers */ = {isa = PBXBuildFile; fileRef = DAB99A93E199A7EFD29A521CC7CC8558 /* NSObject+RACLifting.h */; settings = {ATTRIBUTES = (Public, ); }; }; - D0E37358C3DCF2A8A572C4F38BB0569B /* JXCategoryListContainerView.m in Sources */ = {isa = PBXBuildFile; fileRef = 91ADEA4F53077616A3CC66A8692FD31A /* JXCategoryListContainerView.m */; }; - D0E999D1F26BD830BB309201A2D15A3D /* NSURLSessionConfiguration+LL_Network.m in Sources */ = {isa = PBXBuildFile; fileRef = C2CE90DCE001B8195515F4D65E2ED183 /* NSURLSessionConfiguration+LL_Network.m */; }; - D1032FE3094565594E724E62571076AE /* LLAppInfoViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = EF74891611A81F7F87DB08B77687F25D /* LLAppInfoViewController.m */; }; - D12B6BCC5265A12EB56F6EC9E7FC746D /* OSSV1Signer.h in Headers */ = {isa = PBXBuildFile; fileRef = 245039E4F746013BDBE5497A5BEE11FE /* OSSV1Signer.h */; settings = {ATTRIBUTES = (Public, ); }; }; - D13DFED9FEFCA9D5F971AA7B90468881 /* LLDebugTool.m in Sources */ = {isa = PBXBuildFile; fileRef = 06BC694EA42D7895C2D4FAB95B5FA442 /* LLDebugTool.m */; }; - D15D093B9D830AB4A53C31FCF98E1E8D /* quant_enc.c in Sources */ = {isa = PBXBuildFile; fileRef = 5CA119C7B5B21962C540B1D1BED8438F /* quant_enc.c */; settings = {COMPILER_FLAGS = "-D_THREAD_SAFE -fno-objc-arc"; }; }; + D0DD94C9BBAF8C653232930C3C3F2F73 /* NSObject+RACLifting.h in Headers */ = {isa = PBXBuildFile; fileRef = 9FF52FFF0BA5779BEB685AF03ED3B4D8 /* NSObject+RACLifting.h */; settings = {ATTRIBUTES = (Public, ); }; }; + D0E37358C3DCF2A8A572C4F38BB0569B /* JXCategoryListContainerView.m in Sources */ = {isa = PBXBuildFile; fileRef = 5A6671A763F65A861C237A039C08D398 /* JXCategoryListContainerView.m */; }; + D0E999D1F26BD830BB309201A2D15A3D /* NSURLSessionConfiguration+LL_Network.m in Sources */ = {isa = PBXBuildFile; fileRef = D850524224CE3FE7FD8A47FC4AEB9690 /* NSURLSessionConfiguration+LL_Network.m */; }; + D1032FE3094565594E724E62571076AE /* LLAppInfoViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = FCD2A15EFA4C3639EA1F3ACF9FC6C703 /* LLAppInfoViewController.m */; }; + D12B6BCC5265A12EB56F6EC9E7FC746D /* OSSV1Signer.h in Headers */ = {isa = PBXBuildFile; fileRef = 836A68AC03CDB3884B92C0C169D41B8B /* OSSV1Signer.h */; settings = {ATTRIBUTES = (Public, ); }; }; + D13DFED9FEFCA9D5F971AA7B90468881 /* LLDebugTool.m in Sources */ = {isa = PBXBuildFile; fileRef = 8824B0FE89C77E60D2DA94FAAA803D85 /* LLDebugTool.m */; }; + D14229A0FFDE21C1D89920A81A76181B /* SDImageTransformer.h in Headers */ = {isa = PBXBuildFile; fileRef = 52CEA02CA2C86A695488682B0ED4643E /* SDImageTransformer.h */; settings = {ATTRIBUTES = (Public, ); }; }; D1669A8E60C8ABA34F43D1E46D2134B2 /* SystemConfiguration.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1E7B96200FED33071FAA8946D3A6788E /* SystemConfiguration.framework */; }; - D17041803E65E60FD79E01B610EE8256 /* NSDictionary+VAPUtil.m in Sources */ = {isa = PBXBuildFile; fileRef = 75A6A1B041CD1AEDB5EA9DA940F3A260 /* NSDictionary+VAPUtil.m */; }; - D18E31A0CA12C408929DDAC69BAE53DC /* OSSPutObjectTaggingResult.m in Sources */ = {isa = PBXBuildFile; fileRef = B63ACEC26A9E5DB8885AAC32E3FE10D1 /* OSSPutObjectTaggingResult.m */; }; + D17041803E65E60FD79E01B610EE8256 /* NSDictionary+VAPUtil.m in Sources */ = {isa = PBXBuildFile; fileRef = 32515DC6539770B161CF9BE8AA915F02 /* NSDictionary+VAPUtil.m */; }; + D18E31A0CA12C408929DDAC69BAE53DC /* OSSPutObjectTaggingResult.m in Sources */ = {isa = PBXBuildFile; fileRef = FDB766D9288EAB5D81C6D0E89C819D98 /* OSSPutObjectTaggingResult.m */; }; + D1964F4232AAB4475D9EF6604CE07AB5 /* QCloudBundlePath.m in Sources */ = {isa = PBXBuildFile; fileRef = A89977EA2E3241F989DC4BBC74835762 /* QCloudBundlePath.m */; }; D1A204845E6ED0FEA463575B62ADAD7D /* MultimediaRecorder.h in Headers */ = {isa = PBXBuildFile; fileRef = D632BDA9BA2A480929B1F007B91AAB64 /* MultimediaRecorder.h */; settings = {ATTRIBUTES = (Public, ); }; }; - D1A2CA4532919AAC5CFE97F0F40FF41E /* UIScrollView+YYAdd.h in Headers */ = {isa = PBXBuildFile; fileRef = CBE5366F65ACD4F9F57294A8D07BBED3 /* UIScrollView+YYAdd.h */; settings = {ATTRIBUTES = (Public, ); }; }; - D1B938CC317A3BA47A2C23C15087B5B2 /* ScoringView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3CBD739B3337D8AB7A89A90C56DA07A3 /* ScoringView.swift */; }; + D1A2CA4532919AAC5CFE97F0F40FF41E /* UIScrollView+YYAdd.h in Headers */ = {isa = PBXBuildFile; fileRef = 1070F25BCB4F54949167FDE4D7B1EFB1 /* UIScrollView+YYAdd.h */; settings = {ATTRIBUTES = (Public, ); }; }; + D1B938CC317A3BA47A2C23C15087B5B2 /* ScoringView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2EC4C0AB4E56B63C491EB3A8BCCF7022 /* ScoringView.swift */; }; + D1C9D5FB78EACEA48B748B3A8D21419C /* muxi.h in Headers */ = {isa = PBXBuildFile; fileRef = 1D1747FFB2483E7288E1FACBCA24CD46 /* muxi.h */; settings = {ATTRIBUTES = (Project, ); }; }; D1D753D269EBB64D793EE953EF2D534A /* TUIConversationService.h in Headers */ = {isa = PBXBuildFile; fileRef = 7236E6F059F3D6615E4926F9CD2DCF2E /* TUIConversationService.h */; settings = {ATTRIBUTES = (Public, ); }; }; - D252641B69940EA86733CE91F0DDCE67 /* PrivacyInfo.xcprivacy in Resources */ = {isa = PBXBuildFile; fileRef = F2E04D11B4BC39BF25952C1A11B98A52 /* PrivacyInfo.xcprivacy */; }; - D260376A69DA2FD089010955109B10AD /* LLDetailTitleSelectorCell.h in Headers */ = {isa = PBXBuildFile; fileRef = 62E39E077C301AED321EDEA4D9FA33C9 /* LLDetailTitleSelectorCell.h */; settings = {ATTRIBUTES = (Public, ); }; }; + D2139D5563E202660CA855B04344D045 /* PrivacyInfo.xcprivacy in Resources */ = {isa = PBXBuildFile; fileRef = E90B0C6572E5E197382B7E4D88C189F1 /* PrivacyInfo.xcprivacy */; }; + D22BB080462F464AD8C0DE36F9591D6F /* QCloudHttpDNS.m in Sources */ = {isa = PBXBuildFile; fileRef = 6734658196202E3C0BC0728BEE573A98 /* QCloudHttpDNS.m */; }; + D23E84999E4CE1302853099E20E042A7 /* NSDate+QCLOUD.h in Headers */ = {isa = PBXBuildFile; fileRef = 2BB94DACB617D439CD0FAE2DE00EC0BE /* NSDate+QCLOUD.h */; settings = {ATTRIBUTES = (Public, ); }; }; + D25F11604E5AE45F487C1F8AA909658F /* NSDate+QCloudComapre.h in Headers */ = {isa = PBXBuildFile; fileRef = EF92451F14AB433813C2B79BB991ED8D /* NSDate+QCloudComapre.h */; settings = {ATTRIBUTES = (Public, ); }; }; + D260376A69DA2FD089010955109B10AD /* LLDetailTitleSelectorCell.h in Headers */ = {isa = PBXBuildFile; fileRef = C5BF390AA50F37FA3F03682ECD8A3390 /* LLDetailTitleSelectorCell.h */; settings = {ATTRIBUTES = (Public, ); }; }; D261C8225F7A44A6BAB4755C4F01EF60 /* TUIGroupInfoController.m in Sources */ = {isa = PBXBuildFile; fileRef = 10ECCAC987E94F2F4FB4AAD91F435F99 /* TUIGroupInfoController.m */; }; - D287C76C50258D4C92FFDD2059168F45 /* RACSignal+Operations.h in Headers */ = {isa = PBXBuildFile; fileRef = F06667D75722BD057EAF6D8065A3FFB9 /* RACSignal+Operations.h */; settings = {ATTRIBUTES = (Public, ); }; }; - D2C23FE4438D4F8B281D7A420D903ABC /* PrivacyInfo.xcprivacy in Resources */ = {isa = PBXBuildFile; fileRef = 4668CDA61453AE45C06B5ED2DB0B0520 /* PrivacyInfo.xcprivacy */; }; + D287C76C50258D4C92FFDD2059168F45 /* RACSignal+Operations.h in Headers */ = {isa = PBXBuildFile; fileRef = AB5E335BA6B5CAEB564577C66299B1E8 /* RACSignal+Operations.h */; settings = {ATTRIBUTES = (Public, ); }; }; D2C2E3C55DBEFD25BC68701711B417BD /* TUIMediaCollectionCell.h in Headers */ = {isa = PBXBuildFile; fileRef = 125B0C5CEC8256187089CC0925B4428C /* TUIMediaCollectionCell.h */; settings = {ATTRIBUTES = (Public, ); }; }; - D2D7606A6FB66100571D6D8A6C7E5747 /* OSSURLRequestRetryHandler.h in Headers */ = {isa = PBXBuildFile; fileRef = 12F06A680D70D1F1341E71DB85A169C2 /* OSSURLRequestRetryHandler.h */; settings = {ATTRIBUTES = (Public, ); }; }; - D2DE87A8A9939B659242C6E7A325482E /* YYKVStorage.h in Headers */ = {isa = PBXBuildFile; fileRef = AD9CB70277F98D7B46E5FAB684A3959E /* YYKVStorage.h */; settings = {ATTRIBUTES = (Public, ); }; }; + D2D7606A6FB66100571D6D8A6C7E5747 /* OSSURLRequestRetryHandler.h in Headers */ = {isa = PBXBuildFile; fileRef = F08DF978703E06D1D38711DEEC2B625F /* OSSURLRequestRetryHandler.h */; settings = {ATTRIBUTES = (Public, ); }; }; + D2DE87A8A9939B659242C6E7A325482E /* YYKVStorage.h in Headers */ = {isa = PBXBuildFile; fileRef = 50ACAC4A3CD7C0D928CE130C10855388 /* YYKVStorage.h */; settings = {ATTRIBUTES = (Public, ); }; }; D2E417778DB52B427501F9718B998AA2 /* TUIChatSmallTongueView_Minimalist.h in Headers */ = {isa = PBXBuildFile; fileRef = A60BDF0C0F1602B5F949B8C1FE96F063 /* TUIChatSmallTongueView_Minimalist.h */; settings = {ATTRIBUTES = (Public, ); }; }; - D2E6ED217227452C59C9B29C62858F7C /* SSZipArchive-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = 4B730F600A81F90B6C34AA78ABEE5ED0 /* SSZipArchive-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; - D2F3BF2EE409D26EB5FF618D490512D4 /* color_cache_utils.h in Headers */ = {isa = PBXBuildFile; fileRef = CB10BE9386BC5C570038D73529404555 /* color_cache_utils.h */; settings = {ATTRIBUTES = (Project, ); }; }; - D31558927DE3F62D1BB1FC416E6F237D /* JXCategoryDotCellModel.m in Sources */ = {isa = PBXBuildFile; fileRef = 590F344CF409111B5256DA6950955CEB /* JXCategoryDotCellModel.m */; }; + D2E6ED217227452C59C9B29C62858F7C /* SSZipArchive-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = C420B69D849181FD011FAD3D8E9B6518 /* SSZipArchive-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; + D31558927DE3F62D1BB1FC416E6F237D /* JXCategoryDotCellModel.m in Sources */ = {isa = PBXBuildFile; fileRef = A2E49E0E30F0374D1869A7E0FEDE0B18 /* JXCategoryDotCellModel.m */; }; D33CB3E8B2EB706866767603CE4DD827 /* TUIChat.bundle in Resources */ = {isa = PBXBuildFile; fileRef = 6D17B52BC38FBC1485D09A3098547434 /* TUIChat.bundle */; }; - D380F9C945002DBF2E7D64983ABDC890 /* JXPagerListContainerView.h in Headers */ = {isa = PBXBuildFile; fileRef = 329BFF587DD6C0F79B826D021A752616 /* JXPagerListContainerView.h */; settings = {ATTRIBUTES = (Public, ); }; }; - D386C2DA6C40B7E37F0BDFAD23F99909 /* OSSDeleteObjectTaggingResult.h in Headers */ = {isa = PBXBuildFile; fileRef = 6592BD04192A92F3AA3212543091E9F3 /* OSSDeleteObjectTaggingResult.h */; settings = {ATTRIBUTES = (Public, ); }; }; - D38F636B1D6053677632131E0D181E12 /* LLAppInfo.h in Headers */ = {isa = PBXBuildFile; fileRef = EF1AE254E1202354B2AEA7DDA131FB61 /* LLAppInfo.h */; settings = {ATTRIBUTES = (Public, ); }; }; - D397F3D9E12E75959BB21782CBFD8755 /* UIAlertView+RACSignalSupport.m in Sources */ = {isa = PBXBuildFile; fileRef = C56C0F410529275BDBD25BBDFE51F9C6 /* UIAlertView+RACSignalSupport.m */; }; - D39ADDADBD9EBD47CC36026EA6F1633E /* YBIBCellProtocol.h in Headers */ = {isa = PBXBuildFile; fileRef = 4AD969C7C7F56A47BA0E78069F1FACFB /* YBIBCellProtocol.h */; settings = {ATTRIBUTES = (Public, ); }; }; - D3BBE0DBD610BF753DFCC37348B3DB31 /* NSString+TUIUtil.m in Sources */ = {isa = PBXBuildFile; fileRef = 0EBECD2A46E28042357ED8782F70E08B /* NSString+TUIUtil.m */; }; - D40F7E1DD6EA34E8F749A14B0CD9BE84 /* UIStepper+RACSignalSupport.h in Headers */ = {isa = PBXBuildFile; fileRef = BD57A55328407A1B60CBA41BDC6D00DB /* UIStepper+RACSignalSupport.h */; settings = {ATTRIBUTES = (Public, ); }; }; - D423726E8FA79619214170CEE328676A /* RACErrorSignal.m in Sources */ = {isa = PBXBuildFile; fileRef = C7E1FEDE75F88426ACE300C7E5E27418 /* RACErrorSignal.m */; }; - D44FB088780E57B8CE40109B533F0E70 /* SVGA.h in Headers */ = {isa = PBXBuildFile; fileRef = 2AE6456797300B26BBD1634C2AE07F9E /* SVGA.h */; settings = {ATTRIBUTES = (Public, ); }; }; - D4830A474634AAD157876E6BAEB4EA15 /* LLSandboxComponent.m in Sources */ = {isa = PBXBuildFile; fileRef = 711A24F01B4B49F16276C6C1025A0C75 /* LLSandboxComponent.m */; }; + D356ABD2201283F9B18FDAC9F6205934 /* QCloudRequestOperation.h in Headers */ = {isa = PBXBuildFile; fileRef = 3815B32E45F80315CD87EED97ADDBCA3 /* QCloudRequestOperation.h */; settings = {ATTRIBUTES = (Public, ); }; }; + D380F9C945002DBF2E7D64983ABDC890 /* JXPagerListContainerView.h in Headers */ = {isa = PBXBuildFile; fileRef = 22E8DD0330CB46FFDCB1E05F3F8840BC /* JXPagerListContainerView.h */; settings = {ATTRIBUTES = (Public, ); }; }; + D386C2DA6C40B7E37F0BDFAD23F99909 /* OSSDeleteObjectTaggingResult.h in Headers */ = {isa = PBXBuildFile; fileRef = 6D9857627FF718DAF6B431262DEB5704 /* OSSDeleteObjectTaggingResult.h */; settings = {ATTRIBUTES = (Public, ); }; }; + D38F636B1D6053677632131E0D181E12 /* LLAppInfo.h in Headers */ = {isa = PBXBuildFile; fileRef = C2EC384853C33474F77B75DE52D2073D /* LLAppInfo.h */; settings = {ATTRIBUTES = (Public, ); }; }; + D397F3D9E12E75959BB21782CBFD8755 /* UIAlertView+RACSignalSupport.m in Sources */ = {isa = PBXBuildFile; fileRef = 075EC03CCB7EF582E2F047C0F5904D07 /* UIAlertView+RACSignalSupport.m */; }; + D39ADDADBD9EBD47CC36026EA6F1633E /* YBIBCellProtocol.h in Headers */ = {isa = PBXBuildFile; fileRef = 03DBAEBAE10E3C3901F45B05656EB4DC /* YBIBCellProtocol.h */; settings = {ATTRIBUTES = (Public, ); }; }; + D3A409349A18419F70039B5B20428B17 /* UIImage+GIF.m in Sources */ = {isa = PBXBuildFile; fileRef = E7E49E1A2E12BC5E171A2E605535C23C /* UIImage+GIF.m */; }; + D3AFA903E4E92064AC2F1320563670F6 /* QCloudHttpMetrics.h in Headers */ = {isa = PBXBuildFile; fileRef = 14B471E238C81B6B3B17BCADB845A327 /* QCloudHttpMetrics.h */; settings = {ATTRIBUTES = (Public, ); }; }; + D40F7E1DD6EA34E8F749A14B0CD9BE84 /* UIStepper+RACSignalSupport.h in Headers */ = {isa = PBXBuildFile; fileRef = E1AF77422F2BE60E53969576D67E3943 /* UIStepper+RACSignalSupport.h */; settings = {ATTRIBUTES = (Public, ); }; }; + D4188C34A75D13E9D8359709949F8A4A /* YYAnimatedImageView.m in Sources */ = {isa = PBXBuildFile; fileRef = D71846A0611A3086C72AD48DB142E0E1 /* YYAnimatedImageView.m */; }; + D423726E8FA79619214170CEE328676A /* RACErrorSignal.m in Sources */ = {isa = PBXBuildFile; fileRef = 1FF62029FDFFD732732EF5F2EF5929E7 /* RACErrorSignal.m */; }; + D44FB088780E57B8CE40109B533F0E70 /* SVGA.h in Headers */ = {isa = PBXBuildFile; fileRef = 03AF1AA709B34727F21BF6A59F85A81D /* SVGA.h */; settings = {ATTRIBUTES = (Public, ); }; }; + D45B3C5B19F0E4CD3F0DF0AFD71592C2 /* alpha_processing_neon.c in Sources */ = {isa = PBXBuildFile; fileRef = B27FBD7E5E7A153717454D957D6FA3A5 /* alpha_processing_neon.c */; settings = {COMPILER_FLAGS = "-D_THREAD_SAFE -fno-objc-arc"; }; }; + D463E87E283927561C7A9EED0F203A0F /* QCloudSupervisory.h in Headers */ = {isa = PBXBuildFile; fileRef = 7E36FEAE81EA2EE361EDF25FF9210DE6 /* QCloudSupervisory.h */; settings = {ATTRIBUTES = (Public, ); }; }; + D46BE3CAA7C6074F29E49030C4CC1CCC /* UIImage+MemoryCacheCost.m in Sources */ = {isa = PBXBuildFile; fileRef = F22ED9F84F9FF9D560A293ECEF669F61 /* UIImage+MemoryCacheCost.m */; }; + D47FE7A5E310CDD2613B1767417DCED5 /* QCloudSignatureFields.h in Headers */ = {isa = PBXBuildFile; fileRef = E6EE15597502DD3E98A60D4F8268CFBD /* QCloudSignatureFields.h */; settings = {ATTRIBUTES = (Public, ); }; }; + D4830A474634AAD157876E6BAEB4EA15 /* LLSandboxComponent.m in Sources */ = {isa = PBXBuildFile; fileRef = 46B46CA3BB374944BFE4574523963C47 /* LLSandboxComponent.m */; }; + D494EB43FCBA2144EBF674C3CD7F9E44 /* SDCallbackQueue.h in Headers */ = {isa = PBXBuildFile; fileRef = D792F130A469C6670AC492178FA4D112 /* SDCallbackQueue.h */; settings = {ATTRIBUTES = (Public, ); }; }; D4A5CAC6D25BCBC532D2059FD84C0A4A /* TUIConversationService_Minimalist.m in Sources */ = {isa = PBXBuildFile; fileRef = 57D70C0107D2F7F6D27020FC17AC7038 /* TUIConversationService_Minimalist.m */; }; - D4AA0A3C57852C503AB69822D93178F3 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = F91075A92425F75F02E0E1C8D455AF79 /* Foundation.framework */; }; - D4B960B3EA8F0252C47BCF91984C7D05 /* LLConfigHelper.m in Sources */ = {isa = PBXBuildFile; fileRef = 09A9780B2906EB9EE99CC6AD7A35AA7E /* LLConfigHelper.m */; }; + D4B960B3EA8F0252C47BCF91984C7D05 /* LLConfigHelper.m in Sources */ = {isa = PBXBuildFile; fileRef = 4DF037AB8692E8ABBFFE931A9DEB6A71 /* LLConfigHelper.m */; }; + D4DD670C3F1CAB3306D681F11DE4189F /* vp8li_dec.h in Headers */ = {isa = PBXBuildFile; fileRef = 64C0EABFBD54D70D54576509BB9EEEA2 /* vp8li_dec.h */; settings = {ATTRIBUTES = (Project, ); }; }; D4DF3D681969548474D6E7CE3B738D3D /* TUIChatConfig.h in Headers */ = {isa = PBXBuildFile; fileRef = C45996975D0DE7A4FAAFE40AB64E5824 /* TUIChatConfig.h */; settings = {ATTRIBUTES = (Public, ); }; }; - D4F0509846C2B58E06E1D12205084041 /* libwebp-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 18D10D60FDAB96D86A0AB66AD1178534 /* libwebp-dummy.m */; }; - D540D2C13D255C6D7D884AEB9638581E /* LLTitleSliderCell.h in Headers */ = {isa = PBXBuildFile; fileRef = 022EE2189C7116021E81F0DA9B50D965 /* LLTitleSliderCell.h */; settings = {ATTRIBUTES = (Public, ); }; }; - D5423A39DC27E0D405412709B34C0D1B /* LLLocationProxy.h in Headers */ = {isa = PBXBuildFile; fileRef = DA5557B778D5476BC0E4415A71D84376 /* LLLocationProxy.h */; settings = {ATTRIBUTES = (Public, ); }; }; - D55BEC854C194BA478224F847B7E5199 /* TZLocationManager.h in Headers */ = {isa = PBXBuildFile; fileRef = F24DA3D31FC3941298E3AE46B6C6B726 /* TZLocationManager.h */; settings = {ATTRIBUTES = (Public, ); }; }; - D564C6917F740F5D4DAED8062165A4C6 /* MQTTSessionLegacy.m in Sources */ = {isa = PBXBuildFile; fileRef = CF5CAD8EC46028FBA2494B8B40E60D5E /* MQTTSessionLegacy.m */; }; + D51C0531CDC53CADBB8BDE3039C500C6 /* TUIGlobalization.m in Sources */ = {isa = PBXBuildFile; fileRef = 2130188A88059BB6862656396FAD3C0F /* TUIGlobalization.m */; }; + D540D2C13D255C6D7D884AEB9638581E /* LLTitleSliderCell.h in Headers */ = {isa = PBXBuildFile; fileRef = 306FBC56F569C750761C853A13D3E573 /* LLTitleSliderCell.h */; settings = {ATTRIBUTES = (Public, ); }; }; + D5423A39DC27E0D405412709B34C0D1B /* LLLocationProxy.h in Headers */ = {isa = PBXBuildFile; fileRef = 5FE4B5C48241DD23EC880016020E67CD /* LLLocationProxy.h */; settings = {ATTRIBUTES = (Public, ); }; }; + D55BEC854C194BA478224F847B7E5199 /* TZLocationManager.h in Headers */ = {isa = PBXBuildFile; fileRef = 949742297D1D4FF3E63055928121743C /* TZLocationManager.h */; settings = {ATTRIBUTES = (Public, ); }; }; + D564C6917F740F5D4DAED8062165A4C6 /* MQTTSessionLegacy.m in Sources */ = {isa = PBXBuildFile; fileRef = B99AE0D7C723D7EB2F76A31B2A18E2A2 /* MQTTSessionLegacy.m */; }; + D565A12B54D581CE18443338D4F8BE2C /* UIImageView+HighlightedWebCache.h in Headers */ = {isa = PBXBuildFile; fileRef = 050E9C412B482842673928065F7D1958 /* UIImageView+HighlightedWebCache.h */; settings = {ATTRIBUTES = (Public, ); }; }; D57614CF0AA38CD1CF41725C0CA570DA /* TUIResponderTextView_Minimalist.m in Sources */ = {isa = PBXBuildFile; fileRef = D66FD26F39529A681C6DDAAEF3317ED5 /* TUIResponderTextView_Minimalist.m */; }; - D5B69628A936D4C40FF03CE245E49271 /* sharpyuv_gamma.h in Headers */ = {isa = PBXBuildFile; fileRef = 2D591A6F9F0E49F577ED2D062B8F565B /* sharpyuv_gamma.h */; settings = {ATTRIBUTES = (Project, ); }; }; - D5BC75187BC76C9D39D22066FE4E2A83 /* YBIBVideoCell.h in Headers */ = {isa = PBXBuildFile; fileRef = D7CE1677ED87451ED6880866BA1CF6C3 /* YBIBVideoCell.h */; settings = {ATTRIBUTES = (Public, ); }; }; - D5C046C46961BE465293625D6B870620 /* AFNetworking-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 70C61452D67BD52A395A95ADBCE5BCF4 /* AFNetworking-dummy.m */; }; - D5D11F2D10A1C73E1BA2F4E2B56EC923 /* LLCrashDetailViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 1E0638C21C467AA43795C1ADEE22ADA5 /* LLCrashDetailViewController.m */; }; + D5832B38617D3B1D319A7566DF7FFD77 /* NSError+QCloudNetworking.h in Headers */ = {isa = PBXBuildFile; fileRef = 84F86C82AB812ED3A00ACB3FC4D5F1E9 /* NSError+QCloudNetworking.h */; settings = {ATTRIBUTES = (Public, ); }; }; + D5BC75187BC76C9D39D22066FE4E2A83 /* YBIBVideoCell.h in Headers */ = {isa = PBXBuildFile; fileRef = 9C5DA95C7B3A846577A39AA8E38A691A /* YBIBVideoCell.h */; settings = {ATTRIBUTES = (Public, ); }; }; + D5C046C46961BE465293625D6B870620 /* AFNetworking-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = E3A7B5C3D308CF01E7D339EF644C71EE /* AFNetworking-dummy.m */; }; + D5D11F2D10A1C73E1BA2F4E2B56EC923 /* LLCrashDetailViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 507A36A5DA149C8C4AC5CCDE8DD4A9F5 /* LLCrashDetailViewController.m */; }; D5E3A7477D64B1E3B877568AE63B22C6 /* TUIMessageCellLayout.h in Headers */ = {isa = PBXBuildFile; fileRef = 1EED6B4D68B51A9CA8E4B61BB1614666 /* TUIMessageCellLayout.h */; settings = {ATTRIBUTES = (Public, ); }; }; - D5ED505236781648C281F64B78DD1BA7 /* LLBaseComponentViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 0F43BA7F3728C69A42DF74325C6A9BA7 /* LLBaseComponentViewController.m */; }; - D5F07F7462A9AD80E4A9DB21294D8FA2 /* UIGestureRecognizer+RACSignalSupport.h in Headers */ = {isa = PBXBuildFile; fileRef = 4A00004632EC2F650DE6F0B2DB7E13E8 /* UIGestureRecognizer+RACSignalSupport.h */; settings = {ATTRIBUTES = (Public, ); }; }; + D5ED505236781648C281F64B78DD1BA7 /* LLBaseComponentViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = E041B3CA8F2D4CB20875751377B3DEB0 /* LLBaseComponentViewController.m */; }; + D5F07F7462A9AD80E4A9DB21294D8FA2 /* UIGestureRecognizer+RACSignalSupport.h in Headers */ = {isa = PBXBuildFile; fileRef = BB1735604A32A761B18E5AB7D7427E72 /* UIGestureRecognizer+RACSignalSupport.h */; settings = {ATTRIBUTES = (Public, ); }; }; D5F09F2287CDB0D750FB056594B9F63F /* TUIFoldConversationListDataProvider.m in Sources */ = {isa = PBXBuildFile; fileRef = 67BFCAB8F95C8154639B76D0329F3231 /* TUIFoldConversationListDataProvider.m */; }; - D6240F67BBF625334F7BD91272F26C4D /* Pods-QXLive-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = 6A79F5B474AEB6E40838CD82097C06E2 /* Pods-QXLive-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; - D62E8EBC82FE2A4110091499EB72C052 /* TAPageControl.h in Headers */ = {isa = PBXBuildFile; fileRef = E177B4461D6CD14125C2F8E102EE5D10 /* TAPageControl.h */; settings = {ATTRIBUTES = (Public, ); }; }; - D636521B9C636E6534EE2476C6D48FB7 /* io_dec.c in Sources */ = {isa = PBXBuildFile; fileRef = 2DD5E84E580EC2329E1DEF21BF6BF20A /* io_dec.c */; settings = {COMPILER_FLAGS = "-D_THREAD_SAFE -fno-objc-arc"; }; }; - D64923C1E042FB4B842F9D24569FB2A2 /* LLWindowManager+Hierarchy.h in Headers */ = {isa = PBXBuildFile; fileRef = 45C1319414DA0887EDB55A55683C9ABE /* LLWindowManager+Hierarchy.h */; settings = {ATTRIBUTES = (Public, ); }; }; + D5FEBFCDCD7FB89ACC62E6295A44B57E /* TUICoreTheme_Minimalist.bundle in Resources */ = {isa = PBXBuildFile; fileRef = BA3590990882B5B4A19670AC9FA0D493 /* TUICoreTheme_Minimalist.bundle */; }; + D62E8EBC82FE2A4110091499EB72C052 /* TAPageControl.h in Headers */ = {isa = PBXBuildFile; fileRef = 58C890266E241B152328C4CD2F9604F5 /* TAPageControl.h */; settings = {ATTRIBUTES = (Public, ); }; }; + D6443D7EE6A15E89BEC02695743A0498 /* rescaler_mips_dsp_r2.c in Sources */ = {isa = PBXBuildFile; fileRef = C6644EE432B19E6B483A15BF64272CE2 /* rescaler_mips_dsp_r2.c */; settings = {COMPILER_FLAGS = "-D_THREAD_SAFE -fno-objc-arc"; }; }; + D64923C1E042FB4B842F9D24569FB2A2 /* LLWindowManager+Hierarchy.h in Headers */ = {isa = PBXBuildFile; fileRef = 5FC5A55F5B13D5261B74CD0B8F8D29C8 /* LLWindowManager+Hierarchy.h */; settings = {ATTRIBUTES = (Public, ); }; }; + D6519183F44ADB60997B301834F04D40 /* QCloudFileZipper.m in Sources */ = {isa = PBXBuildFile; fileRef = A65514043646900CD20F454DBA2106F8 /* QCloudFileZipper.m */; }; D663837F4347AF58660EE6F7FD426ECE /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = F91075A92425F75F02E0E1C8D455AF79 /* Foundation.framework */; }; - D6691D328E39C28F7CF9FCE6708934B1 /* LLConst.m in Sources */ = {isa = PBXBuildFile; fileRef = 79ABEC3E0AD0F789BBA2E91BEC477792 /* LLConst.m */; }; - D6A56773666C4FC13435EDD44B689518 /* Media.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 3A2674A2B952E3636D3DCBF9C83BE1B8 /* Media.xcassets */; }; - D6CC5A87711F556DD8CD367D3E5100E7 /* LLConfig.h in Headers */ = {isa = PBXBuildFile; fileRef = 031FB2CB616D36387E7EDFC0FADE9F95 /* LLConfig.h */; settings = {ATTRIBUTES = (Public, ); }; }; - D6DFFB575C5488505F99E8A2369853A4 /* NSNotificationCenter+YYAdd.h in Headers */ = {isa = PBXBuildFile; fileRef = 913B067AF3DC46C1E34520C9808D414D /* NSNotificationCenter+YYAdd.h */; settings = {ATTRIBUTES = (Public, ); }; }; - D6E33608F9275BEF1DC53944E502B2C1 /* UIColor+SDHexString.m in Sources */ = {isa = PBXBuildFile; fileRef = 11720E63FF35CC267165CC3483387C66 /* UIColor+SDHexString.m */; }; + D6691D328E39C28F7CF9FCE6708934B1 /* LLConst.m in Sources */ = {isa = PBXBuildFile; fileRef = 0C16B37920CE44F2C3A456E2A399E001 /* LLConst.m */; }; + D6A1CA833E7F300E22EEBF4415A1F907 /* UIImage+ExtendedCacheData.m in Sources */ = {isa = PBXBuildFile; fileRef = 59CA764D4D271AEEA362F8B3EC71ED60 /* UIImage+ExtendedCacheData.m */; }; + D6CC5A87711F556DD8CD367D3E5100E7 /* LLConfig.h in Headers */ = {isa = PBXBuildFile; fileRef = D7957969B37E57230D18413BB653A6B5 /* LLConfig.h */; settings = {ATTRIBUTES = (Public, ); }; }; + D6DE7937F20ECC267730FE9A0ADFFFB8 /* SDWebImageCompat.m in Sources */ = {isa = PBXBuildFile; fileRef = 2E5F7F19C81AD93CA6819B2DC599E89D /* SDWebImageCompat.m */; }; + D6DFFB575C5488505F99E8A2369853A4 /* NSNotificationCenter+YYAdd.h in Headers */ = {isa = PBXBuildFile; fileRef = 9DCB052C837E4C8AA5199500B64FE3A3 /* NSNotificationCenter+YYAdd.h */; settings = {ATTRIBUTES = (Public, ); }; }; D703683B2B83B523188E34D49864942B /* TUIChatFlexViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 1FDA6E658D588ECAEFD0121E81EF3A4D /* TUIChatFlexViewController.m */; }; - D708917EBA6D26108063D2462BEFAF8C /* QGAnimatedImageDecodeThread.m in Sources */ = {isa = PBXBuildFile; fileRef = 9C74F8D8CCF5C22829F1AF0D033688C1 /* QGAnimatedImageDecodeThread.m */; }; - D70CCFA666A4817C76C7BE866EEB66F6 /* AvoidCrash-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = CF13F429D0EBA44F948BA8FB164E9295 /* AvoidCrash-dummy.m */; }; - D73A01F55B64E581304D567FB120B8F4 /* LLTitleViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = BC3C5636EC722E4AC6FD8283868C22CE /* LLTitleViewController.m */; }; - D7425E667A208272CAF51CCF06B6A63E /* LLStorageManager.h in Headers */ = {isa = PBXBuildFile; fileRef = 9FBCF9CB69F3A025ACCB48B0FF5134A0 /* LLStorageManager.h */; settings = {ATTRIBUTES = (Public, ); }; }; - D771430E5F4AF751239221B71C6A873C /* LLNoneCopyTextField.m in Sources */ = {isa = PBXBuildFile; fileRef = 2999DA7C81E6CE0A9E32C1EE9344AE7C /* LLNoneCopyTextField.m */; }; - D77E34A893845BFCB246CF5B9993B065 /* YYImageCache.m in Sources */ = {isa = PBXBuildFile; fileRef = DBAECD1D58D515C5B33AFAB085E02781 /* YYImageCache.m */; }; - D788BA4B9E8186271BA75CA52B30502C /* View+MASAdditions.m in Sources */ = {isa = PBXBuildFile; fileRef = BFCFDA928928856B92B702E01DCADBC0 /* View+MASAdditions.m */; }; - D7950E6AF0202F0E627670A610213753 /* SVGABezierPath.h in Headers */ = {isa = PBXBuildFile; fileRef = 489D95A5454B6B440EB04C69D5D542BD /* SVGABezierPath.h */; settings = {ATTRIBUTES = (Public, ); }; }; - D7C55193688C358959ED98779557B39A /* LLReachability.m in Sources */ = {isa = PBXBuildFile; fileRef = 69B931EC69B669A60CC11B4455935C74 /* LLReachability.m */; }; - D7CDD8022747B816122DF56BFCBF3F92 /* LLRouter+Log.m in Sources */ = {isa = PBXBuildFile; fileRef = 12E886F4AC943C99824C0B41E8825278 /* LLRouter+Log.m */; }; + D708917EBA6D26108063D2462BEFAF8C /* QGAnimatedImageDecodeThread.m in Sources */ = {isa = PBXBuildFile; fileRef = 97E4EE3DDAA0E9C5FA33E798507F3C1A /* QGAnimatedImageDecodeThread.m */; }; + D70CCFA666A4817C76C7BE866EEB66F6 /* AvoidCrash-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 0C0F0FD1CA80715765F6CF94A7A9C0AF /* AvoidCrash-dummy.m */; }; + D73A01F55B64E581304D567FB120B8F4 /* LLTitleViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 9B829B7FA319A9242900C26A0F8E1617 /* LLTitleViewController.m */; }; + D7425E667A208272CAF51CCF06B6A63E /* LLStorageManager.h in Headers */ = {isa = PBXBuildFile; fileRef = 21C18E0134BCBCD91C5BEA2285A82444 /* LLStorageManager.h */; settings = {ATTRIBUTES = (Public, ); }; }; + D771430E5F4AF751239221B71C6A873C /* LLNoneCopyTextField.m in Sources */ = {isa = PBXBuildFile; fileRef = 5C541EB345AA0147795628FD8E4814B3 /* LLNoneCopyTextField.m */; }; + D77E34A893845BFCB246CF5B9993B065 /* YYImageCache.m in Sources */ = {isa = PBXBuildFile; fileRef = A67700BDBA30F4B4EDBC894DFE79DF75 /* YYImageCache.m */; }; + D788BA4B9E8186271BA75CA52B30502C /* View+MASAdditions.m in Sources */ = {isa = PBXBuildFile; fileRef = C47C14012AEB64E5D97CDFD4AB79E6BB /* View+MASAdditions.m */; }; + D7950E6AF0202F0E627670A610213753 /* SVGABezierPath.h in Headers */ = {isa = PBXBuildFile; fileRef = 1DC79BC833AE05646E3EE85C4E5C88A5 /* SVGABezierPath.h */; settings = {ATTRIBUTES = (Public, ); }; }; + D7C55193688C358959ED98779557B39A /* LLReachability.m in Sources */ = {isa = PBXBuildFile; fileRef = 03951B0F3C08BDC07E054943864B3594 /* LLReachability.m */; }; + D7CDD8022747B816122DF56BFCBF3F92 /* LLRouter+Log.m in Sources */ = {isa = PBXBuildFile; fileRef = 125E2C9F6220164179D4C90638B6195F /* LLRouter+Log.m */; }; D7F8ADAEB1639B6AD369774B7CF74D75 /* TUIVoiceMessageCell.m in Sources */ = {isa = PBXBuildFile; fileRef = 588B926593985C8CE5DE5590B0F2AE6D /* TUIVoiceMessageCell.m */; }; - D8400BA2C1A77AF2653125C0C66AB1E3 /* SDWebImageDownloader.m in Sources */ = {isa = PBXBuildFile; fileRef = 6C23B2C9C707367E2C83E6A3E81DBF27 /* SDWebImageDownloader.m */; }; - D847C10CD159DD855EE0DBBE66D48408 /* demux.h in Headers */ = {isa = PBXBuildFile; fileRef = F5AC0E5E9040767274F7CCF8681677AF /* demux.h */; settings = {ATTRIBUTES = (Public, ); }; }; - D8604949A95EAE0C78BA89F9F57D1296 /* LLRulerPickerInfoView.h in Headers */ = {isa = PBXBuildFile; fileRef = 72624D1A372CA9B53E4ECBBAA599F8FE /* LLRulerPickerInfoView.h */; settings = {ATTRIBUTES = (Public, ); }; }; + D8604949A95EAE0C78BA89F9F57D1296 /* LLRulerPickerInfoView.h in Headers */ = {isa = PBXBuildFile; fileRef = 9C649B3DF8BE9CAD8B695B3552409074 /* LLRulerPickerInfoView.h */; settings = {ATTRIBUTES = (Public, ); }; }; D86171AA6F8BB4B521E77F258BBB98A0 /* TUIGroupPendencyController.m in Sources */ = {isa = PBXBuildFile; fileRef = E2319A9846E5441AE828CF8F38CB31FB /* TUIGroupPendencyController.m */; }; - D8784D41D4C806EBC369E2C12B9AB250 /* UIButton+LL_Utils.h in Headers */ = {isa = PBXBuildFile; fileRef = 362AAF63ACF4F5D9F2017197144BB0B5 /* UIButton+LL_Utils.h */; settings = {ATTRIBUTES = (Public, ); }; }; + D8784D41D4C806EBC369E2C12B9AB250 /* UIButton+LL_Utils.h in Headers */ = {isa = PBXBuildFile; fileRef = 7B74AFAD09760E4C9FEED9088724194B /* UIButton+LL_Utils.h */; settings = {ATTRIBUTES = (Public, ); }; }; + D89AE04754C8E43F07F55412DA18A10F /* lossless_enc_sse41.c in Sources */ = {isa = PBXBuildFile; fileRef = CC6361F81A3A94F318EAAB390449A969 /* lossless_enc_sse41.c */; settings = {COMPILER_FLAGS = "-D_THREAD_SAFE -fno-objc-arc"; }; }; D8A8793C8CD5EB08C28372EE25DAA3EA /* TUIConversationObjectFactory.h in Headers */ = {isa = PBXBuildFile; fileRef = 4B1179595C537511728368623505A2A4 /* TUIConversationObjectFactory.h */; settings = {ATTRIBUTES = (Public, ); }; }; - D8B4CB8F113156A6CD75C060D0113BE4 /* NSInvocation+RACTypeParsing.h in Headers */ = {isa = PBXBuildFile; fileRef = 0497FFAE57C0BF0660DE3C130E9713F0 /* NSInvocation+RACTypeParsing.h */; settings = {ATTRIBUTES = (Public, ); }; }; + D8B4CB8F113156A6CD75C060D0113BE4 /* NSInvocation+RACTypeParsing.h in Headers */ = {isa = PBXBuildFile; fileRef = 2347A8311733C7AF43399482DB6E21C7 /* NSInvocation+RACTypeParsing.h */; settings = {ATTRIBUTES = (Public, ); }; }; D8DAD7D52D3ED00B124675F5C6915DE9 /* TUIMenuCell.m in Sources */ = {isa = PBXBuildFile; fileRef = 8D934C7FCFA041C07A6F54B84AFF29F2 /* TUIMenuCell.m */; }; D902B23BFE141A445FBED64041497302 /* TUITypingStatusCellData.m in Sources */ = {isa = PBXBuildFile; fileRef = 1B1EB606B1F4A7C6FCDE8A933428596B /* TUITypingStatusCellData.m */; }; - D90607B4E56247B19B14462E487BA86E /* MJRefreshNormalTrailer.m in Sources */ = {isa = PBXBuildFile; fileRef = CE44DC8060163D4E2828401C9225903A /* MJRefreshNormalTrailer.m */; }; - D90DED0F5638B1C44F4B6C62D600D240 /* MJRefreshFooter.h in Headers */ = {isa = PBXBuildFile; fileRef = 493FEB8B776299BE5A6F511C3548D524 /* MJRefreshFooter.h */; settings = {ATTRIBUTES = (Public, ); }; }; - D90DF1376DF5E2EA644313BCD2E03058 /* MJRefresh.bundle in Resources */ = {isa = PBXBuildFile; fileRef = 4E3A90A60CE344C08837F6FFC7402844 /* MJRefresh.bundle */; }; - D925F5A06F35F862746087D2165FD083 /* UIView+WebCacheState.h in Headers */ = {isa = PBXBuildFile; fileRef = E09918C381C316915AFA988D84FD5D35 /* UIView+WebCacheState.h */; settings = {ATTRIBUTES = (Public, ); }; }; + D90607B4E56247B19B14462E487BA86E /* MJRefreshNormalTrailer.m in Sources */ = {isa = PBXBuildFile; fileRef = B0B826306FDFB3F9365808FE0ECC8EE7 /* MJRefreshNormalTrailer.m */; }; + D90DED0F5638B1C44F4B6C62D600D240 /* MJRefreshFooter.h in Headers */ = {isa = PBXBuildFile; fileRef = 7A7F4E929AA33853310B11781EEB9EF6 /* MJRefreshFooter.h */; settings = {ATTRIBUTES = (Public, ); }; }; + D90DF1376DF5E2EA644313BCD2E03058 /* MJRefresh.bundle in Resources */ = {isa = PBXBuildFile; fileRef = AC273F778E57C55001C3197B23B7BF66 /* MJRefresh.bundle */; }; D93E5533B2607D3F8F341513C773EA5F /* TUIConversationListBaseDataProvider.h in Headers */ = {isa = PBXBuildFile; fileRef = 24B068604F5CEEE22EDBFED6F40D7632 /* TUIConversationListBaseDataProvider.h */; settings = {ATTRIBUTES = (Public, ); }; }; - D93EA925FC24665584B3653514A56706 /* JXCategoryIndicatorImageView.m in Sources */ = {isa = PBXBuildFile; fileRef = 13B8E0192C98B212CBDA3BC676AEA5DF /* JXCategoryIndicatorImageView.m */; }; + D93EA925FC24665584B3653514A56706 /* JXCategoryIndicatorImageView.m in Sources */ = {isa = PBXBuildFile; fileRef = 8815A62C357FCED40FBFA5CC5AD486FD /* JXCategoryIndicatorImageView.m */; }; D9B437DFBF6EC45944808564F5257ECB /* TUIChatConfig_Classic.m in Sources */ = {isa = PBXBuildFile; fileRef = 73E67159238714CEE5D70A7115574077 /* TUIChatConfig_Classic.m */; }; - D9C15A8B92E62396D95DB88415A38A8F /* mz_strm_split.h in Headers */ = {isa = PBXBuildFile; fileRef = 5C90057D3802BA6FEFBC84A8341DE7DD /* mz_strm_split.h */; settings = {ATTRIBUTES = (Project, ); }; }; - D9C6481FAD022D3AE8E586181C0047CB /* LLDetailTitleSelectorCellView.m in Sources */ = {isa = PBXBuildFile; fileRef = 1D8BECC77DA0256CDB6F464348B52C83 /* LLDetailTitleSelectorCellView.m */; }; - D9FD34CF0D3C7D72C9EAE86F25B40F04 /* webpi_dec.h in Headers */ = {isa = PBXBuildFile; fileRef = 85E5D828F1BF657869C6726125A67C65 /* webpi_dec.h */; settings = {ATTRIBUTES = (Project, ); }; }; - DA29450780B280A167FEB1A347347202 /* SVGAVideoSpriteEntity.m in Sources */ = {isa = PBXBuildFile; fileRef = 21C9E73417D17027540FBD32658CD01C /* SVGAVideoSpriteEntity.m */; }; - DA3C464E991E03454304041E6212DF50 /* LLEntryWindow.h in Headers */ = {isa = PBXBuildFile; fileRef = 3FC284B7F615BD01D66AA71855552B9C /* LLEntryWindow.h */; settings = {ATTRIBUTES = (Public, ); }; }; - DA7BC11E2CD623784BBFF0C9939661BC /* GPBWrappers.pbobjc.m in Sources */ = {isa = PBXBuildFile; fileRef = 954A6870C2CC210065883BAD3C0DB5E0 /* GPBWrappers.pbobjc.m */; settings = {COMPILER_FLAGS = "-fno-objc-arc"; }; }; - DAACB6C433D86B6C98D2F66375D35A79 /* YBIBImageData+Internal.h in Headers */ = {isa = PBXBuildFile; fileRef = CE299E1203694BD2A9DE3A761032C7CF /* YBIBImageData+Internal.h */; settings = {ATTRIBUTES = (Public, ); }; }; + D9C15A8B92E62396D95DB88415A38A8F /* mz_strm_split.h in Headers */ = {isa = PBXBuildFile; fileRef = 4A65640EDCF8A341B1C6F8BE8351E673 /* mz_strm_split.h */; settings = {ATTRIBUTES = (Project, ); }; }; + D9C6481FAD022D3AE8E586181C0047CB /* LLDetailTitleSelectorCellView.m in Sources */ = {isa = PBXBuildFile; fileRef = 7F0A2C19402A57262BA8DDF54B4CF42C /* LLDetailTitleSelectorCellView.m */; }; + D9E4D2D075008EA8CD81B3970254C26B /* libwebp-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 6110DCF76C3074CB5C0F3BE724EDDF56 /* libwebp-dummy.m */; }; + D9EB61DAC0CCA13484E7E60F7B180CDF /* TUICore.m in Sources */ = {isa = PBXBuildFile; fileRef = BC904AEED689EF7B62DCF1FD5CE9ED43 /* TUICore.m */; }; + DA1934F562297877D91B23CEF649D6D0 /* thread_utils.h in Headers */ = {isa = PBXBuildFile; fileRef = 56990544E9DC75FE2A6CDCB511DF2E4F /* thread_utils.h */; settings = {ATTRIBUTES = (Project, ); }; }; + DA29450780B280A167FEB1A347347202 /* SVGAVideoSpriteEntity.m in Sources */ = {isa = PBXBuildFile; fileRef = C381CA671602E00BE9C08D39A33983CA /* SVGAVideoSpriteEntity.m */; }; + DA3C464E991E03454304041E6212DF50 /* LLEntryWindow.h in Headers */ = {isa = PBXBuildFile; fileRef = D2BB9DF39D8B81853CBE9687B603D089 /* LLEntryWindow.h */; settings = {ATTRIBUTES = (Public, ); }; }; + DA7BC11E2CD623784BBFF0C9939661BC /* GPBWrappers.pbobjc.m in Sources */ = {isa = PBXBuildFile; fileRef = FAC5A92DA11131162B8A8D5D8E89755C /* GPBWrappers.pbobjc.m */; settings = {COMPILER_FLAGS = "-fno-objc-arc"; }; }; + DAACB6C433D86B6C98D2F66375D35A79 /* YBIBImageData+Internal.h in Headers */ = {isa = PBXBuildFile; fileRef = 465917E15105D6EF2BCCE90AF909E953 /* YBIBImageData+Internal.h */; settings = {ATTRIBUTES = (Public, ); }; }; DAB2FC08BBB8E75BD5DE12C1D362A436 /* Metal.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 71EC7C2BAB81E01764C988FCDEB8A8F0 /* Metal.framework */; }; + DABF57A5B53FA45117B631F980CDF867 /* QCloudCOSStorageClassEnum.m in Sources */ = {isa = PBXBuildFile; fileRef = DEF0F542000F2144D714D4C1624C282D /* QCloudCOSStorageClassEnum.m */; }; DAF453D63B0255317D6D8F9174ECF109 /* TUIMenuCellData.h in Headers */ = {isa = PBXBuildFile; fileRef = 57E3D4A4F6225FB1DF428E678BDEAD47 /* TUIMenuCellData.h */; settings = {ATTRIBUTES = (Public, ); }; }; DAF9CDC0AAB04D5852B2B777564314E4 /* TUIConversation.bundle in Resources */ = {isa = PBXBuildFile; fileRef = FB8C13BE2223996DD93F879D4CBB38DB /* TUIConversation.bundle */; }; - DB472B623861DBA6581AFB84E950D416 /* LLFilterFilePickerView.m in Sources */ = {isa = PBXBuildFile; fileRef = AD7C17AE50A9F0D01678978E43E3468B /* LLFilterFilePickerView.m */; }; - DB7DFFFC8944187A8FFC26DFE223F952 /* LLCrashViewController.h in Headers */ = {isa = PBXBuildFile; fileRef = 22B017C7FDB4A324DEF797B894E90BEE /* LLCrashViewController.h */; settings = {ATTRIBUTES = (Public, ); }; }; - DB8A5A0E04105F7DA2225599C7043803 /* MQTTSSLSecurityPolicy.h in Headers */ = {isa = PBXBuildFile; fileRef = F92CE0D86BA334BDC83C50BF7EC20D2B /* MQTTSSLSecurityPolicy.h */; settings = {ATTRIBUTES = (Public, ); }; }; - DBA9500CBBA5FF6FCBBA115AE4D12152 /* NSLayoutConstraint+MASDebugAdditions.h in Headers */ = {isa = PBXBuildFile; fileRef = B2DE2860EFCBA8765E48C28650C9C74D /* NSLayoutConstraint+MASDebugAdditions.h */; settings = {ATTRIBUTES = (Public, ); }; }; + DB472B623861DBA6581AFB84E950D416 /* LLFilterFilePickerView.m in Sources */ = {isa = PBXBuildFile; fileRef = 90151025C24FE963DFFF64B6DED7B423 /* LLFilterFilePickerView.m */; }; + DB4DFAA9D60FC1A603BABFF348DD740B /* QCloudHttpDNS.h in Headers */ = {isa = PBXBuildFile; fileRef = 3922C9F377B494EE8CB80F8AFC076B4B /* QCloudHttpDNS.h */; settings = {ATTRIBUTES = (Public, ); }; }; + DB7DFFFC8944187A8FFC26DFE223F952 /* LLCrashViewController.h in Headers */ = {isa = PBXBuildFile; fileRef = EC4FF01339FA7AB1962A0244200963E7 /* LLCrashViewController.h */; settings = {ATTRIBUTES = (Public, ); }; }; + DB8A5A0E04105F7DA2225599C7043803 /* MQTTSSLSecurityPolicy.h in Headers */ = {isa = PBXBuildFile; fileRef = 596B00E778A94AF409303B83B6142981 /* MQTTSSLSecurityPolicy.h */; settings = {ATTRIBUTES = (Public, ); }; }; + DB9B62E0186BDA8C3992C014091DACB9 /* SDImageIOAnimatedCoderInternal.h in Headers */ = {isa = PBXBuildFile; fileRef = C005CD9427CF96E31FC220AE74F97744 /* SDImageIOAnimatedCoderInternal.h */; settings = {ATTRIBUTES = (Private, ); }; }; + DB9CF46196FC75C6E23A01A5067DE71D /* quant.h in Headers */ = {isa = PBXBuildFile; fileRef = 6A1D57FCB5F0541A0ADFDD3D6A998A0A /* quant.h */; settings = {ATTRIBUTES = (Project, ); }; }; + DBA9500CBBA5FF6FCBBA115AE4D12152 /* NSLayoutConstraint+MASDebugAdditions.h in Headers */ = {isa = PBXBuildFile; fileRef = 5FB2FC28DD2551C40A5A86D69A610B77 /* NSLayoutConstraint+MASDebugAdditions.h */; settings = {ATTRIBUTES = (Public, ); }; }; DBB011F27A131275A68E892FA6A4BAE6 /* MultimediaRecorder.m in Sources */ = {isa = PBXBuildFile; fileRef = 61394E50922D2535BBE7004DA14AFE92 /* MultimediaRecorder.m */; }; - DBBB535C5257CE9DDE78E1369DB09A41 /* NSMutableAttributedString+AvoidCrash.m in Sources */ = {isa = PBXBuildFile; fileRef = AB3FA486FEC3DC524BB77DE6197AB2BF /* NSMutableAttributedString+AvoidCrash.m */; }; - DBD9152526A180771BF7D7CD209B957E /* AFSecurityPolicy.h in Headers */ = {isa = PBXBuildFile; fileRef = 01CF471971FD11F12FA8B912C4FF5FD1 /* AFSecurityPolicy.h */; settings = {ATTRIBUTES = (Public, ); }; }; - DBFC152989A222B752C542B0C1296497 /* LLSubTitleTableViewCell.m in Sources */ = {isa = PBXBuildFile; fileRef = 3DA9F704F86FBFD91151BF2E751B6619 /* LLSubTitleTableViewCell.m */; }; - DC1087F648A70DDB1D78C62EFFB443F6 /* MQTTSessionManager.h in Headers */ = {isa = PBXBuildFile; fileRef = 71D514F677784C29F713F8AC1B512F86 /* MQTTSessionManager.h */; settings = {ATTRIBUTES = (Public, ); }; }; - DC12A357619CB1BBB52F071BF19EC8EB /* UIBarButtonItem+YYAdd.h in Headers */ = {isa = PBXBuildFile; fileRef = 618A2B516047117F6B2DE77209ED9C05 /* UIBarButtonItem+YYAdd.h */; settings = {ATTRIBUTES = (Public, ); }; }; - DC2D102D3C2A921545D1EC6A6BF27F3A /* OSSLogMacros.h in Headers */ = {isa = PBXBuildFile; fileRef = D23BF5872AAEF793BFFD3AFD3387CA65 /* OSSLogMacros.h */; settings = {ATTRIBUTES = (Public, ); }; }; + DBBB535C5257CE9DDE78E1369DB09A41 /* NSMutableAttributedString+AvoidCrash.m in Sources */ = {isa = PBXBuildFile; fileRef = 4CB0F464809B1069B0C26F82638E404D /* NSMutableAttributedString+AvoidCrash.m */; }; + DBBF87F6A2EA5A2B1EB7C39AFD2ED326 /* TUICommonModel.m in Sources */ = {isa = PBXBuildFile; fileRef = 18EBAF584B696CB221C9BEC2A9B9E812 /* TUICommonModel.m */; }; + DBD9152526A180771BF7D7CD209B957E /* AFSecurityPolicy.h in Headers */ = {isa = PBXBuildFile; fileRef = 6B6C279B3765170E1DD3AD35E11142DF /* AFSecurityPolicy.h */; settings = {ATTRIBUTES = (Public, ); }; }; + DBE5B5CAB958533B4B33652684CDF272 /* SDDeviceHelper.h in Headers */ = {isa = PBXBuildFile; fileRef = 586C397A0CE78A849C9C64F6C1AB1B7B /* SDDeviceHelper.h */; settings = {ATTRIBUTES = (Private, ); }; }; + DBFC152989A222B752C542B0C1296497 /* LLSubTitleTableViewCell.m in Sources */ = {isa = PBXBuildFile; fileRef = 822CDEBDC9BEE20B60756CFC3222912B /* LLSubTitleTableViewCell.m */; }; + DC1087F648A70DDB1D78C62EFFB443F6 /* MQTTSessionManager.h in Headers */ = {isa = PBXBuildFile; fileRef = 7E414E5A0DC1E4355F0710FF6106FE67 /* MQTTSessionManager.h */; settings = {ATTRIBUTES = (Public, ); }; }; + DC12A357619CB1BBB52F071BF19EC8EB /* UIBarButtonItem+YYAdd.h in Headers */ = {isa = PBXBuildFile; fileRef = 08E81CB31ABA8AF4EA8D4DAD52085F1C /* UIBarButtonItem+YYAdd.h */; settings = {ATTRIBUTES = (Public, ); }; }; + DC2D102D3C2A921545D1EC6A6BF27F3A /* OSSLogMacros.h in Headers */ = {isa = PBXBuildFile; fileRef = CEF4B9B1F796455AFE7B18763F69EBDE /* OSSLogMacros.h */; settings = {ATTRIBUTES = (Public, ); }; }; DC3216788DA995A9EC9BAB96730193F1 /* TUIBubbleMessageCell_Minimalist.h in Headers */ = {isa = PBXBuildFile; fileRef = DBB834720D5BBA3E4AF15DB97066B6EB /* TUIBubbleMessageCell_Minimalist.h */; settings = {ATTRIBUTES = (Public, ); }; }; - DC440A627AAE1829D9D04F34C2D64C29 /* LLTitleCellCategoryModel.m in Sources */ = {isa = PBXBuildFile; fileRef = 01908B706040D18914CEFEF241F629B5 /* LLTitleCellCategoryModel.m */; }; - DC6B2EA34F6B200148CAC37C152E4CFB /* YYCache-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = AFF6BFEF29D849DA0A5FFB9799BF3837 /* YYCache-dummy.m */; }; - DC6E7F9DAF12789FDA3566CC41CA37F8 /* LLScreenshotSelectorModel.m in Sources */ = {isa = PBXBuildFile; fileRef = 4DAC7633A133F7BDA3138F879621D8D3 /* LLScreenshotSelectorModel.m */; }; - DCA6F4165CC98E1F9D014E5F2A2EA401 /* SDWebImage-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = 60AAA5F448F4A6BBFB5BEFFA5F737DDE /* SDWebImage-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; - DCB6D76FB9D037310A6185CB37FDF7D2 /* TZProgressView.h in Headers */ = {isa = PBXBuildFile; fileRef = 7B3437C53629426F737F71A99D6242C3 /* TZProgressView.h */; settings = {ATTRIBUTES = (Public, ); }; }; - DCDF487CAB5019636DD057CC957F68BB /* LLDetailTitleCell.m in Sources */ = {isa = PBXBuildFile; fileRef = 1D2953BEEA9E7DD25F9FEE070C93EE01 /* LLDetailTitleCell.m */; }; - DCEE4729DD352BD882B588BE396B40E1 /* NSObject+YYAdd.m in Sources */ = {isa = PBXBuildFile; fileRef = 51BC1121123237550E5B2B77C0371244 /* NSObject+YYAdd.m */; }; - DD148A49F360D8A97109D54976E98D94 /* LLAppInfoComponent.h in Headers */ = {isa = PBXBuildFile; fileRef = 42DB0A4D5793C73C847285C20CA1AEDF /* LLAppInfoComponent.h */; settings = {ATTRIBUTES = (Public, ); }; }; - DD3AFB0A9F60A7A78B811C3B3A8813B8 /* SDImageCachesManager.m in Sources */ = {isa = PBXBuildFile; fileRef = CDF953BA0635ACD53ECC5973D2DB1F28 /* SDImageCachesManager.m */; }; - DD4252B690E9ECDBCD0EDF4517582B1C /* UIColor+VAPUtil.m in Sources */ = {isa = PBXBuildFile; fileRef = 8CD63CAB748523DC6A63AFB6098E79AE /* UIColor+VAPUtil.m */; }; - DD44BAB5FAAE0975E6A99C7B9C936E42 /* YYWebImage.h in Headers */ = {isa = PBXBuildFile; fileRef = BE7128B3243B044F8F84F39B4078CC36 /* YYWebImage.h */; settings = {ATTRIBUTES = (Public, ); }; }; - DD699FEDADFA8EEB5D2BBFAD81788652 /* LLTitleCellModel.h in Headers */ = {isa = PBXBuildFile; fileRef = 367AD13E2B8BEEC1AF33DB1BE33DC7C4 /* LLTitleCellModel.h */; settings = {ATTRIBUTES = (Public, ); }; }; - DD7D0C5FD5ABE6989A2F0513657C48B6 /* QGVAPWeakProxy.h in Headers */ = {isa = PBXBuildFile; fileRef = 3B80D3EC4B7F7C0CED094987D021EF94 /* QGVAPWeakProxy.h */; settings = {ATTRIBUTES = (Public, ); }; }; - DD7D38B1D11219F1882E3E9DD5FA2E0E /* YBIBCollectionView.h in Headers */ = {isa = PBXBuildFile; fileRef = B5B05BEABBCA1F1EE87AA9BDCE556886 /* YBIBCollectionView.h */; settings = {ATTRIBUTES = (Public, ); }; }; + DC3DADEFCFAEE070182679C2CDDEA282 /* UIImageView+HighlightedWebCache.m in Sources */ = {isa = PBXBuildFile; fileRef = C321EB295C351AF59772E6AEE2A6D27D /* UIImageView+HighlightedWebCache.m */; }; + DC440A627AAE1829D9D04F34C2D64C29 /* LLTitleCellCategoryModel.m in Sources */ = {isa = PBXBuildFile; fileRef = 5348E5E93C5D2E798D8E020D1C450C4B /* LLTitleCellCategoryModel.m */; }; + DC4DBA9A2C5F05CB2927B3748F59E01A /* UIView+TUIToast.h in Headers */ = {isa = PBXBuildFile; fileRef = 571F3B6AC50B0F54672B1002F50CA2B8 /* UIView+TUIToast.h */; settings = {ATTRIBUTES = (Public, ); }; }; + DC6B2EA34F6B200148CAC37C152E4CFB /* YYCache-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 649AE684AF0BCEC9C9605216F274C8D8 /* YYCache-dummy.m */; }; + DC6E7F9DAF12789FDA3566CC41CA37F8 /* LLScreenshotSelectorModel.m in Sources */ = {isa = PBXBuildFile; fileRef = 33C281761BF7F5D15E479274DDB11055 /* LLScreenshotSelectorModel.m */; }; + DCB6D76FB9D037310A6185CB37FDF7D2 /* TZProgressView.h in Headers */ = {isa = PBXBuildFile; fileRef = 4F2EAB0C4650E7AF59DA1A14BC9DB18E /* TZProgressView.h */; settings = {ATTRIBUTES = (Public, ); }; }; + DCBD59543F4FF13EC5DD8F0D5B1EEADB /* QCloudResponseSerializer.m in Sources */ = {isa = PBXBuildFile; fileRef = 93E65E29AF71B238088AA081907C6313 /* QCloudResponseSerializer.m */; }; + DCD8FC989F817A0861574B55DCBF8FDE /* QCloudLogModel.m in Sources */ = {isa = PBXBuildFile; fileRef = 09476A3F0CB268CA65F6159142C35FE0 /* QCloudLogModel.m */; }; + DCDF487CAB5019636DD057CC957F68BB /* LLDetailTitleCell.m in Sources */ = {isa = PBXBuildFile; fileRef = 15DCC370CB5257738FC2E7302AB8CFE9 /* LLDetailTitleCell.m */; }; + DCEE4729DD352BD882B588BE396B40E1 /* NSObject+YYAdd.m in Sources */ = {isa = PBXBuildFile; fileRef = 841200A96600F47505EE122C123B8061 /* NSObject+YYAdd.m */; }; + DD148A49F360D8A97109D54976E98D94 /* LLAppInfoComponent.h in Headers */ = {isa = PBXBuildFile; fileRef = 3819279E7AF258AC6770FDDDE575D03B /* LLAppInfoComponent.h */; settings = {ATTRIBUTES = (Public, ); }; }; + DD2D1DD4464714F133AFA38BF82479B1 /* muxedit.c in Sources */ = {isa = PBXBuildFile; fileRef = DD86480B7B0E664045E3CE0C8FAD95B0 /* muxedit.c */; settings = {COMPILER_FLAGS = "-D_THREAD_SAFE -fno-objc-arc"; }; }; + DD4252B690E9ECDBCD0EDF4517582B1C /* UIColor+VAPUtil.m in Sources */ = {isa = PBXBuildFile; fileRef = 9BBD491D1860D0D424311AB4B2AE2CE6 /* UIColor+VAPUtil.m */; }; + DD44BAB5FAAE0975E6A99C7B9C936E42 /* YYWebImage.h in Headers */ = {isa = PBXBuildFile; fileRef = 855ED5B6EC2A2AA8B89C4DE6EE20E635 /* YYWebImage.h */; settings = {ATTRIBUTES = (Public, ); }; }; + DD47C94FA0E8B20E26034BFDA80A9868 /* SDImageLoader.h in Headers */ = {isa = PBXBuildFile; fileRef = 1255387576CCE8313FF05DEDAF799591 /* SDImageLoader.h */; settings = {ATTRIBUTES = (Public, ); }; }; + DD5E0602F4874AEA1C56FD54B4AEBCD3 /* QCloudNetEnv.h in Headers */ = {isa = PBXBuildFile; fileRef = 2D4E05DFA160EE66F5E35106F629A9EF /* QCloudNetEnv.h */; settings = {ATTRIBUTES = (Public, ); }; }; + DD699FEDADFA8EEB5D2BBFAD81788652 /* LLTitleCellModel.h in Headers */ = {isa = PBXBuildFile; fileRef = B0F30852CD15D1EABA704F90A371FF1A /* LLTitleCellModel.h */; settings = {ATTRIBUTES = (Public, ); }; }; + DD7995D9D176010D26E0306C48FBE4D8 /* OfflinePushExtInfo.h in Headers */ = {isa = PBXBuildFile; fileRef = B7EA6FC9AF22FF281CCFF1E883E9E1A8 /* OfflinePushExtInfo.h */; settings = {ATTRIBUTES = (Public, ); }; }; + DD7D0C5FD5ABE6989A2F0513657C48B6 /* QGVAPWeakProxy.h in Headers */ = {isa = PBXBuildFile; fileRef = E0B061F36D87206193C7479A40CE154C /* QGVAPWeakProxy.h */; settings = {ATTRIBUTES = (Public, ); }; }; + DD7D38B1D11219F1882E3E9DD5FA2E0E /* YBIBCollectionView.h in Headers */ = {isa = PBXBuildFile; fileRef = 5A02F9F5DA991A2B0285EBF37B13BE2E /* YBIBCollectionView.h */; settings = {ATTRIBUTES = (Public, ); }; }; + DD81BA414257A9E0B656780275E1EA0C /* sharpyuv_csp.c in Sources */ = {isa = PBXBuildFile; fileRef = C1E1AC30B88AF0AA1FBE23726D6D264D /* sharpyuv_csp.c */; settings = {COMPILER_FLAGS = "-D_THREAD_SAFE -fno-objc-arc"; }; }; DD89AB2BA0BECDB99DFE70482857AB32 /* NSString+TUIEmoji.h in Headers */ = {isa = PBXBuildFile; fileRef = D761586108CFA562B01FCCCF2226D114 /* NSString+TUIEmoji.h */; settings = {ATTRIBUTES = (Public, ); }; }; - DDA16FB9C21AD941442357DAE6939530 /* UIKit+AFNetworking.h in Headers */ = {isa = PBXBuildFile; fileRef = 413240E290CD078A53FFBB7B9F42AC74 /* UIKit+AFNetworking.h */; settings = {ATTRIBUTES = (Public, ); }; }; - DDF10ECB01544EAF89A19F582A5C24F6 /* LLTitleSliderCell.m in Sources */ = {isa = PBXBuildFile; fileRef = 0028E9A546B55600287EFCB239F91C8A /* LLTitleSliderCell.m */; }; - DE1E1332DD725B5546E6C0C5CEC01B61 /* OSSRequest.m in Sources */ = {isa = PBXBuildFile; fileRef = 7748FE0C40CEB3D554077FD992B2170D /* OSSRequest.m */; }; - DE2553DFC19AAB617B63261D50C44091 /* UISlider+RACSignalSupport.h in Headers */ = {isa = PBXBuildFile; fileRef = 3842C0F2A0B7023AD39B5999D462DE6E /* UISlider+RACSignalSupport.h */; settings = {ATTRIBUTES = (Public, ); }; }; - DE4563C85FEDF955C4942B5927905122 /* Events.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8DD2401B49B91450CE48170A14EEB9D0 /* Events.swift */; }; - DE520223E8CD850F2C4706B5F1DCF470 /* LLMagnifierInfoView.m in Sources */ = {isa = PBXBuildFile; fileRef = AFB0B825E8F65A2DDC5B09B15DAEB88F /* LLMagnifierInfoView.m */; }; + DD9CA23E5F01C70B3FBB981941A9024A /* token_enc.c in Sources */ = {isa = PBXBuildFile; fileRef = 985C75D39F6D074CF247CCA12CFF66CB /* token_enc.c */; settings = {COMPILER_FLAGS = "-D_THREAD_SAFE -fno-objc-arc"; }; }; + DD9F71083FFD7FB379C31F8D3842D4E5 /* QCloudUploadPartRequest.m in Sources */ = {isa = PBXBuildFile; fileRef = 0775C52A5931289F362DAD2225F5A91B /* QCloudUploadPartRequest.m */; }; + DDA16FB9C21AD941442357DAE6939530 /* UIKit+AFNetworking.h in Headers */ = {isa = PBXBuildFile; fileRef = BC29A2455DEEC2E1DC7C35DE7214705D /* UIKit+AFNetworking.h */; settings = {ATTRIBUTES = (Public, ); }; }; + DDF10ECB01544EAF89A19F582A5C24F6 /* LLTitleSliderCell.m in Sources */ = {isa = PBXBuildFile; fileRef = 2EAA503FE1150C4D64D3C0B680244A80 /* LLTitleSliderCell.m */; }; + DE1E1332DD725B5546E6C0C5CEC01B61 /* OSSRequest.m in Sources */ = {isa = PBXBuildFile; fileRef = EA78C5CB4CC328A89FAA412536E20940 /* OSSRequest.m */; }; + DE2553DFC19AAB617B63261D50C44091 /* UISlider+RACSignalSupport.h in Headers */ = {isa = PBXBuildFile; fileRef = DA597C2D4AAC3DEED8E7A19C70EA3CEA /* UISlider+RACSignalSupport.h */; settings = {ATTRIBUTES = (Public, ); }; }; + DE3EACA2934D11E2DFEF31F2244B4E0C /* QCloudPutObjectRequest+Custom.m in Sources */ = {isa = PBXBuildFile; fileRef = B29A9DA90F39E64BABA248050A567240 /* QCloudPutObjectRequest+Custom.m */; }; + DE4563C85FEDF955C4942B5927905122 /* Events.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3445DE2E4AAB5AA7BAD875A6A2964BD5 /* Events.swift */; }; + DE520223E8CD850F2C4706B5F1DCF470 /* LLMagnifierInfoView.m in Sources */ = {isa = PBXBuildFile; fileRef = EA5A6EDB788A0DF426C2F16FAC9A0526 /* LLMagnifierInfoView.m */; }; DE54135CF5849C6C4766F82CE71DDDB4 /* TUIImageMessageCell_Minimalist.h in Headers */ = {isa = PBXBuildFile; fileRef = 7E45FD6D033BD66E2A7C199CA579F8C4 /* TUIImageMessageCell_Minimalist.h */; settings = {ATTRIBUTES = (Public, ); }; }; - DE5A78F116018E2AC54714238276574D /* UIActivityIndicatorView+AFNetworking.m in Sources */ = {isa = PBXBuildFile; fileRef = 7707FACE79B6E516056A977715E501D5 /* UIActivityIndicatorView+AFNetworking.m */; }; - DE8503AEAC47119F5F287C04BA18476A /* OSSTaskCompletionSource.m in Sources */ = {isa = PBXBuildFile; fileRef = 2B4ABA00DBD6FE3E676A2EF0F58AB3F7 /* OSSTaskCompletionSource.m */; }; - DE98ECCCA7106A4EA575EF34830D41FF /* MJRefresh-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = DC6A7978A4E1E40BFC56F20B0AF9EAD4 /* MJRefresh-dummy.m */; }; - DEBD5474712A0CFD0A2334E42AD174F8 /* frame_dec.c in Sources */ = {isa = PBXBuildFile; fileRef = ECE1B6025BEA2C708D2EE2CC233D7FCC /* frame_dec.c */; settings = {COMPILER_FLAGS = "-D_THREAD_SAFE -fno-objc-arc"; }; }; - DF08A49444CDBFA264E32B32C82C8FC1 /* SDAnimatedImageRep.m in Sources */ = {isa = PBXBuildFile; fileRef = 0C1C20BEC07C1B8B9468DDABFC999E0A /* SDAnimatedImageRep.m */; }; - DF1F2CC29D9871EF48FCD47055CB2A59 /* UIImagePickerController+RACSignalSupport.m in Sources */ = {isa = PBXBuildFile; fileRef = F7A9D0E3B76FA3DFE606B56FE1A35962 /* UIImagePickerController+RACSignalSupport.m */; }; - DF2B15402CE105F5A8CE48BBDCFFD5DD /* MASConstraint.m in Sources */ = {isa = PBXBuildFile; fileRef = 0AD9E56AFB7A8C6C92A18D7B8E3858D0 /* MASConstraint.m */; }; - DF678533A1F2B0A8DB7DADDF1085BF50 /* enc_mips_dsp_r2.c in Sources */ = {isa = PBXBuildFile; fileRef = DF9F1DB119FBB5354B3F8341679D810A /* enc_mips_dsp_r2.c */; settings = {COMPILER_FLAGS = "-D_THREAD_SAFE -fno-objc-arc"; }; }; + DE5A78F116018E2AC54714238276574D /* UIActivityIndicatorView+AFNetworking.m in Sources */ = {isa = PBXBuildFile; fileRef = BA05A74193017E1B72355F6DBA29D068 /* UIActivityIndicatorView+AFNetworking.m */; }; + DE8503AEAC47119F5F287C04BA18476A /* OSSTaskCompletionSource.m in Sources */ = {isa = PBXBuildFile; fileRef = F8A8FDF49509F93A2D3C59F31A78EEC8 /* OSSTaskCompletionSource.m */; }; + DE98ECCCA7106A4EA575EF34830D41FF /* MJRefresh-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = B917F66CF01EF9C9879E67E2E6C23986 /* MJRefresh-dummy.m */; }; + DEF10CCFF33F1C1D9091DE224A74505F /* QCloudCustomLoggerOutput.h in Headers */ = {isa = PBXBuildFile; fileRef = F4D3CF3A5AC1C97E056709D5B1B5C06E /* QCloudCustomLoggerOutput.h */; settings = {ATTRIBUTES = (Public, ); }; }; + DF1F2CC29D9871EF48FCD47055CB2A59 /* UIImagePickerController+RACSignalSupport.m in Sources */ = {isa = PBXBuildFile; fileRef = D3805108AB8AB68C6DD903BA0AEEDD37 /* UIImagePickerController+RACSignalSupport.m */; }; + DF2B15402CE105F5A8CE48BBDCFFD5DD /* MASConstraint.m in Sources */ = {isa = PBXBuildFile; fileRef = B87B21B49952B070175DF9812055AA23 /* MASConstraint.m */; }; DF7ACA33B12E419A25DDA607A5A0D6D6 /* TUICameraView.m in Sources */ = {isa = PBXBuildFile; fileRef = CD65B31AA1121B8089259AE5B098F32D /* TUICameraView.m */; }; - DF9373C694786CDCBD25B1996B1C73ED /* yuv_sse2.c in Sources */ = {isa = PBXBuildFile; fileRef = 3A99B108129F4BF107A8295BB64E26BC /* yuv_sse2.c */; settings = {COMPILER_FLAGS = "-D_THREAD_SAFE -fno-objc-arc"; }; }; DFB393B9CEC6E6FCCCA8BBAFECE83C4D /* TUIGroupChatViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 906059D2926D776E777F243B60E05A46 /* TUIGroupChatViewController.m */; }; - DFB9ED96872A12083BC849AD5F37B0E4 /* GPBRootObject.h in Headers */ = {isa = PBXBuildFile; fileRef = FD51339B5C0F83C53D659E77C3B1A32C /* GPBRootObject.h */; settings = {ATTRIBUTES = (Public, ); }; }; - DFC3B6FBE34258475044700A57A0C82A /* LLFilterLabelCell.h in Headers */ = {isa = PBXBuildFile; fileRef = A7E4A02481BBD00FF58497A5B71A70AE /* LLFilterLabelCell.h */; settings = {ATTRIBUTES = (Public, ); }; }; - DFC8B1EDFA3633209348F1B70D12D285 /* TZGifPhotoPreviewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 9D41182662BBBB434B21A9611CD2B340 /* TZGifPhotoPreviewController.m */; }; - DFC923354A112557856EF0AFB0710BA4 /* histogram_enc.h in Headers */ = {isa = PBXBuildFile; fileRef = 82BDD4E3E3018BDACCAE12BC8AB9561F /* histogram_enc.h */; settings = {ATTRIBUTES = (Project, ); }; }; - DFFA77DF629678D944DBCF2D9D37EC2C /* YYImageCache.h in Headers */ = {isa = PBXBuildFile; fileRef = 82FE32D6CFD69029C95673FB63B1A39D /* YYImageCache.h */; settings = {ATTRIBUTES = (Public, ); }; }; + DFB9ED96872A12083BC849AD5F37B0E4 /* GPBRootObject.h in Headers */ = {isa = PBXBuildFile; fileRef = 94A7B19715A0D856103E5BDA6B5DF908 /* GPBRootObject.h */; settings = {ATTRIBUTES = (Public, ); }; }; + DFC3B6FBE34258475044700A57A0C82A /* LLFilterLabelCell.h in Headers */ = {isa = PBXBuildFile; fileRef = A368A614DFEF0A54AD867879AAA5E953 /* LLFilterLabelCell.h */; settings = {ATTRIBUTES = (Public, ); }; }; + DFC8844C2ED83658A5E36EF1E22AE837 /* filters_mips_dsp_r2.c in Sources */ = {isa = PBXBuildFile; fileRef = 2D25C96ED9AEC859A4F5DAE89D31C0C0 /* filters_mips_dsp_r2.c */; settings = {COMPILER_FLAGS = "-D_THREAD_SAFE -fno-objc-arc"; }; }; + DFC8B1EDFA3633209348F1B70D12D285 /* TZGifPhotoPreviewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 316F4CBFD242760840B0046811B6EDA6 /* TZGifPhotoPreviewController.m */; }; + DFE007BD61F7C0B73FE36F8F3CBB6334 /* SDImageGIFCoder.h in Headers */ = {isa = PBXBuildFile; fileRef = 5892E24D8A698EBF900F733AFB9E40C0 /* SDImageGIFCoder.h */; settings = {ATTRIBUTES = (Public, ); }; }; + DFFA77DF629678D944DBCF2D9D37EC2C /* YYImageCache.h in Headers */ = {isa = PBXBuildFile; fileRef = 70CE75A6493DCA56CA9437CE63DF76D9 /* YYImageCache.h */; settings = {ATTRIBUTES = (Public, ); }; }; E021BAF22B125D122587118CF90BDDF0 /* TUIFileMessageCellData.h in Headers */ = {isa = PBXBuildFile; fileRef = 098870D0C14EC3335F09BD7728028A06 /* TUIFileMessageCellData.h */; settings = {ATTRIBUTES = (Public, ); }; }; - E032CD4FBC1C84803E74D9A2BB53EBC8 /* LLTitleSwitchCellView.m in Sources */ = {isa = PBXBuildFile; fileRef = 7A597F55E869CB15D42DA6FE4F4A857F /* LLTitleSwitchCellView.m */; }; - E038F02D08E33A673A360ED34648A027 /* JXCategoryDotCell.m in Sources */ = {isa = PBXBuildFile; fileRef = E7BA158897808F571256C02BA01E24B1 /* JXCategoryDotCell.m */; }; + E032CD4FBC1C84803E74D9A2BB53EBC8 /* LLTitleSwitchCellView.m in Sources */ = {isa = PBXBuildFile; fileRef = 3C4BFE225DAC7F3C4528A80761A0A1D4 /* LLTitleSwitchCellView.m */; }; + E038F02D08E33A673A360ED34648A027 /* JXCategoryDotCell.m in Sources */ = {isa = PBXBuildFile; fileRef = 5005257548F3DFF019EC1E6A56D8DE94 /* JXCategoryDotCell.m */; }; E059B2B0B79755A4EDB744E430352747 /* TUIMergeMessageCellData.m in Sources */ = {isa = PBXBuildFile; fileRef = C07D6BBCDBB790439770AA98AB551685 /* TUIMergeMessageCellData.m */; }; E05F27C3E55F9B95F5642F4D6A28B97B /* TUIConversationForwardSelectCell_Minimalist.h in Headers */ = {isa = PBXBuildFile; fileRef = 67F8743314AC117BC659D3315D207F45 /* TUIConversationForwardSelectCell_Minimalist.h */; settings = {ATTRIBUTES = (Public, ); }; }; - E063A2C5BE8547A13E2DA5A63D54B2C5 /* YYTextMagnifier.m in Sources */ = {isa = PBXBuildFile; fileRef = 302EADA9FF7DEF58D73D45E418445F4F /* YYTextMagnifier.m */; }; - E06D2DD06570E8A01D5AEDE55D2FD3F8 /* UIImage+GIF.m in Sources */ = {isa = PBXBuildFile; fileRef = 66A1E8AAD93B967F27BA75C7980CA671 /* UIImage+GIF.m */; }; - E075608ADB8A563BCA3D9F6C123220ED /* NSUserDefaults+RACSupport.h in Headers */ = {isa = PBXBuildFile; fileRef = 54179D0731911E4A42EB32AF0284D5B9 /* NSUserDefaults+RACSupport.h */; settings = {ATTRIBUTES = (Public, ); }; }; - E0AB22E12BC070F95D9417798444D4B3 /* MQTTCoreDataPersistence.m in Sources */ = {isa = PBXBuildFile; fileRef = 46F3FA171D00A665CFFAEE4B37F1D22E /* MQTTCoreDataPersistence.m */; }; + E063A2C5BE8547A13E2DA5A63D54B2C5 /* YYTextMagnifier.m in Sources */ = {isa = PBXBuildFile; fileRef = 7AF7D22843BF31FD4D542530E673362D /* YYTextMagnifier.m */; }; + E075608ADB8A563BCA3D9F6C123220ED /* NSUserDefaults+RACSupport.h in Headers */ = {isa = PBXBuildFile; fileRef = 263EE999B95713DD0960782B47CBB342 /* NSUserDefaults+RACSupport.h */; settings = {ATTRIBUTES = (Public, ); }; }; + E0821A4351C5396FE739D1CAE2FF32A1 /* SDWebImageDownloaderResponseModifier.h in Headers */ = {isa = PBXBuildFile; fileRef = AD696186A1BF2A482C52650529E13051 /* SDWebImageDownloaderResponseModifier.h */; settings = {ATTRIBUTES = (Public, ); }; }; + E0A5AFDFE9F97FA55A692B799AEB5F67 /* QCloudUploadPartRequest+Custom.m in Sources */ = {isa = PBXBuildFile; fileRef = 187EB415C386F93E525B3555B972129F /* QCloudUploadPartRequest+Custom.m */; }; + E0AB22E12BC070F95D9417798444D4B3 /* MQTTCoreDataPersistence.m in Sources */ = {isa = PBXBuildFile; fileRef = E4B6C5AB1961961DE5B3BA2E86D15FC0 /* MQTTCoreDataPersistence.m */; }; E0B65D40FBF18188D54EFD61B8880B01 /* TUIInputMoreCellData.h in Headers */ = {isa = PBXBuildFile; fileRef = 9EAD5A1BCFAAB8394D7854755A2B1C2A /* TUIInputMoreCellData.h */; settings = {ATTRIBUTES = (Public, ); }; }; - E0C5CCC6E19E486A5F376354BF46F224 /* SDImageAPNGCoder.h in Headers */ = {isa = PBXBuildFile; fileRef = 4AFAE5AA756CAD7FA3E072BFAF4FDE90 /* SDImageAPNGCoder.h */; settings = {ATTRIBUTES = (Public, ); }; }; E0D3CD00FFE025E8B76D199660E9CB7A /* TUIFaceVerticalView.h in Headers */ = {isa = PBXBuildFile; fileRef = E9000759BE4ACA264C59EC2C0F9620FD /* TUIFaceVerticalView.h */; settings = {ATTRIBUTES = (Public, ); }; }; - E0DB14976CA6F6E604FD5E4EDF3378E7 /* JXPagerListContainerView.m in Sources */ = {isa = PBXBuildFile; fileRef = 923D47CE8814930C4728001B7DB2B464 /* JXPagerListContainerView.m */; }; - E0FDC64CAB50099A54B1FC5A25D9A47B /* ImageIO.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = A5B624A70D4735B79D27A4C5B4DA64AA /* ImageIO.framework */; }; - E0FFBB236451FB45A282D149C6F3A0B2 /* palette.c in Sources */ = {isa = PBXBuildFile; fileRef = B289A5282A939C5797A3CC4A22FD5F4C /* palette.c */; settings = {COMPILER_FLAGS = "-D_THREAD_SAFE -fno-objc-arc"; }; }; + E0D98960156C4E881DCCA2EB78D1140F /* PrivacyInfo.xcprivacy in Resources */ = {isa = PBXBuildFile; fileRef = C3CB87DA9EDE7FF41B2520CFA0441069 /* PrivacyInfo.xcprivacy */; }; + E0DB14976CA6F6E604FD5E4EDF3378E7 /* JXPagerListContainerView.m in Sources */ = {isa = PBXBuildFile; fileRef = 5205F5C2383D19CD9E496BC9EDDD45F4 /* JXPagerListContainerView.m */; }; E110942AB64481819FD4B887959111DD /* TUITextReplyQuoteViewData.h in Headers */ = {isa = PBXBuildFile; fileRef = B588E91362874F6E5D47A1D1768082D5 /* TUITextReplyQuoteViewData.h */; settings = {ATTRIBUTES = (Public, ); }; }; - E12459F4E5C6016E340D85323E3C59A5 /* zip.c in Sources */ = {isa = PBXBuildFile; fileRef = 6482F5E40400B180C7D990119B4279A5 /* zip.c */; }; - E13E3AF06F6C5301678CD7F4FEBE376F /* OSSDDLog.h in Headers */ = {isa = PBXBuildFile; fileRef = 84212DE296979BA80C0CD70D2556DA61 /* OSSDDLog.h */; settings = {ATTRIBUTES = (Public, ); }; }; - E15319829D042A0E6BBE4005D44FACDA /* UIControl+RACSignalSupport.h in Headers */ = {isa = PBXBuildFile; fileRef = 20D0B4E551C2CF5AF61B7EC31AF96DCE /* UIControl+RACSignalSupport.h */; settings = {ATTRIBUTES = (Public, ); }; }; + E1169D91467B115F726B8C3F7F372BC9 /* TUITool.m in Sources */ = {isa = PBXBuildFile; fileRef = DF9021474921AF35345BD06EBD2AB531 /* TUITool.m */; }; + E1378EFA6BD8F69AEFE6CD4F92E27C19 /* PrivacyInfo.xcprivacy in Resources */ = {isa = PBXBuildFile; fileRef = F2E04D11B4BC39BF25952C1A11B98A52 /* PrivacyInfo.xcprivacy */; }; + E13E3AF06F6C5301678CD7F4FEBE376F /* OSSDDLog.h in Headers */ = {isa = PBXBuildFile; fileRef = 1D8331164E212257C20D95AB2E3448C8 /* OSSDDLog.h */; settings = {ATTRIBUTES = (Public, ); }; }; + E15319829D042A0E6BBE4005D44FACDA /* UIControl+RACSignalSupport.h in Headers */ = {isa = PBXBuildFile; fileRef = 349D8C96879E11B1DC187B265EDAB622 /* UIControl+RACSignalSupport.h */; settings = {ATTRIBUTES = (Public, ); }; }; E15617DE44F2AADACB5584E4AE54BEFF /* TUIConversationCell_Minimalist.h in Headers */ = {isa = PBXBuildFile; fileRef = ABCA57500273A3605E0F06EBFE2E2AF3 /* TUIConversationCell_Minimalist.h */; settings = {ATTRIBUTES = (Public, ); }; }; - E19A541884A4642533B127F0FB14C458 /* SVGAExporter.h in Headers */ = {isa = PBXBuildFile; fileRef = 68CBC7D90FFEEA84F40FB2E4BEDD2168 /* SVGAExporter.h */; settings = {ATTRIBUTES = (Public, ); }; }; - E19F102D6254F7683F96F3AD5AB7CCEF /* upsampling_msa.c in Sources */ = {isa = PBXBuildFile; fileRef = 12C6FC9038D7F3D9D4408200D10ADC00 /* upsampling_msa.c */; settings = {COMPILER_FLAGS = "-D_THREAD_SAFE -fno-objc-arc"; }; }; - E1AD0B44E2984063EBA7CE3AFCA19F34 /* FirstToneHintView.swift in Sources */ = {isa = PBXBuildFile; fileRef = D8F3B10B718C40E0674DA5A179D24AE8 /* FirstToneHintView.swift */; }; + E161715043C3A147EA49366F5B017F9F /* QCloudXMLDictionary.m in Sources */ = {isa = PBXBuildFile; fileRef = CA02343B02ACB759CD9BCC09459B20DA /* QCloudXMLDictionary.m */; }; + E19A541884A4642533B127F0FB14C458 /* SVGAExporter.h in Headers */ = {isa = PBXBuildFile; fileRef = 5161C70D80D0CD4FF9A2FE85CCC3D4A8 /* SVGAExporter.h */; settings = {ATTRIBUTES = (Public, ); }; }; + E1AD0B44E2984063EBA7CE3AFCA19F34 /* FirstToneHintView.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0518F549EC5A50220151506B1FD184B /* FirstToneHintView.swift */; }; E1B6B193F62EAF39566ABE4D3C62DA42 /* TUIVideoCollectionCell_Minimalist.m in Sources */ = {isa = PBXBuildFile; fileRef = 8D3D87C5F465FC0AB4618BA7FD7BC9BA /* TUIVideoCollectionCell_Minimalist.m */; }; - E1BF615DD0422B06C97542F03C879D41 /* AFNetworking.h in Headers */ = {isa = PBXBuildFile; fileRef = B16DE3CF846E72DA646B89524B14E8A7 /* AFNetworking.h */; settings = {ATTRIBUTES = (Public, ); }; }; + E1BF615DD0422B06C97542F03C879D41 /* AFNetworking.h in Headers */ = {isa = PBXBuildFile; fileRef = 9F963BF7A4A1B55E2C31A73AB013FEA0 /* AFNetworking.h */; settings = {ATTRIBUTES = (Public, ); }; }; E1CAAF5795721F8F8F4BAE6B6F460DFE /* TUIChatExtensionObserver.h in Headers */ = {isa = PBXBuildFile; fileRef = EE8DB31B041B11EA309F0CC4C6B3F6F3 /* TUIChatExtensionObserver.h */; settings = {ATTRIBUTES = (Public, ); }; }; - E1DE69F6BB6235A6EDB6C99A184BEDB4 /* UIScrollView+MJExtension.m in Sources */ = {isa = PBXBuildFile; fileRef = B91587F4676D44AEA2A4F341A62F8156 /* UIScrollView+MJExtension.m */; }; - E1EEA462E77A0B79CB7AFB0AA6A3B73D /* LLSandboxPreviewController.m in Sources */ = {isa = PBXBuildFile; fileRef = B24F4D722E0777BF25D84D5AF84F0C4E /* LLSandboxPreviewController.m */; }; - E1F9666E74CEF2B73BC533602F35CD78 /* LLWindowManager+Network.h in Headers */ = {isa = PBXBuildFile; fileRef = 78F40CD95F964A48B1B2D4E12A399BA3 /* LLWindowManager+Network.h */; settings = {ATTRIBUTES = (Public, ); }; }; - E218F9C003876677BE6ADCB198C5B9DD /* ScoringMachineEx+DataHandle.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6ECEDD2A29867A53C07C426C67AFC270 /* ScoringMachineEx+DataHandle.swift */; }; - E223BF835F00FA8AF8C0461760D82B34 /* SDImageCacheConfig.h in Headers */ = {isa = PBXBuildFile; fileRef = BC7648150172AC0F908F548A663CB6C6 /* SDImageCacheConfig.h */; settings = {ATTRIBUTES = (Public, ); }; }; - E25B7F7ED64E459D6BA4E9FA1B812370 /* MKAnnotationView+RACSignalSupport.m in Sources */ = {isa = PBXBuildFile; fileRef = F2B5FD56E03155516A6FD232CD54E736 /* MKAnnotationView+RACSignalSupport.m */; }; - E262615839CCD98302C839BE8DDF8AE4 /* SDImageCache.h in Headers */ = {isa = PBXBuildFile; fileRef = D415E70E083DD16E2702B55402406756 /* SDImageCache.h */; settings = {ATTRIBUTES = (Public, ); }; }; - E26270176D6BF19961091537CED04175 /* YYTextSelectionView.m in Sources */ = {isa = PBXBuildFile; fileRef = B5CAC29105D74AAA2CBE6ACF725518DD /* YYTextSelectionView.m */; }; - E2642D9F8E18B99EA8FBFFE2F17651C2 /* LLRulerComponent.m in Sources */ = {isa = PBXBuildFile; fileRef = FF580315006F92336B16CDBFA1B405F4 /* LLRulerComponent.m */; }; - E27FAE501457A0743817BFD57B93164E /* OSSSignerBase.h in Headers */ = {isa = PBXBuildFile; fileRef = B4D3107F6D1A5FC591E7F11CEC6FF9FD /* OSSSignerBase.h */; settings = {ATTRIBUTES = (Public, ); }; }; - E283D8FF283E09D9CF863A27B55886EF /* mz_crypt_apple.c in Sources */ = {isa = PBXBuildFile; fileRef = B7AC9CD559132EAAE413E73BF1A905A0 /* mz_crypt_apple.c */; }; - E286D66CCCDA502C0752304994BB90A1 /* YYText.h in Headers */ = {isa = PBXBuildFile; fileRef = 3990C5F087BEDFEABAE5941E3A558AF1 /* YYText.h */; settings = {ATTRIBUTES = (Public, ); }; }; - E2920772EA5FF4A56F02ECE79223C825 /* Protobuf-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = 853B2355369C0C0B87455A9D35FDE385 /* Protobuf-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; - E2A9527BD973B3F05F1902E21219A134 /* anim_decode.c in Sources */ = {isa = PBXBuildFile; fileRef = DD53E5EF73A7ABDF3E47AFA8A0FE16B8 /* anim_decode.c */; settings = {COMPILER_FLAGS = "-D_THREAD_SAFE -fno-objc-arc"; }; }; - E2CF7B0B68A3FCEA97725F1D3792E32B /* TZImageRequestOperation.m in Sources */ = {isa = PBXBuildFile; fileRef = C529FFF63E78C75FC76F7E2580C9E401 /* TZImageRequestOperation.m */; }; + E1DE69F6BB6235A6EDB6C99A184BEDB4 /* UIScrollView+MJExtension.m in Sources */ = {isa = PBXBuildFile; fileRef = ACE45D60BA908387E7AC000FEA74358E /* UIScrollView+MJExtension.m */; }; + E1DEBCA4E66E9DAE022DBFE4639E8B27 /* cost.c in Sources */ = {isa = PBXBuildFile; fileRef = 62A7818C3C86A9C69D1661932E0DC7D1 /* cost.c */; settings = {COMPILER_FLAGS = "-D_THREAD_SAFE -fno-objc-arc"; }; }; + E1EDF32BF56C0E4CC75B2E807CA8DB84 /* QCloudNetResponse.h in Headers */ = {isa = PBXBuildFile; fileRef = 01B6E2A3F3ABECF6C77BBDD5969A85FA /* QCloudNetResponse.h */; settings = {ATTRIBUTES = (Public, ); }; }; + E1EEA462E77A0B79CB7AFB0AA6A3B73D /* LLSandboxPreviewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 2EFC9E1ADA603009197192F0CC57762D /* LLSandboxPreviewController.m */; }; + E1F9666E74CEF2B73BC533602F35CD78 /* LLWindowManager+Network.h in Headers */ = {isa = PBXBuildFile; fileRef = 92BA56547911C9DDE2E0D1FBC2379C56 /* LLWindowManager+Network.h */; settings = {ATTRIBUTES = (Public, ); }; }; + E218F9C003876677BE6ADCB198C5B9DD /* ScoringMachineEx+DataHandle.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1DE48FA5EDE295A1EA70F1332367380A /* ScoringMachineEx+DataHandle.swift */; }; + E2314C741690AB22910179863B119B6C /* rescaler_sse2.c in Sources */ = {isa = PBXBuildFile; fileRef = 19208F14DA0A2B3D68B23872962764E3 /* rescaler_sse2.c */; settings = {COMPILER_FLAGS = "-D_THREAD_SAFE -fno-objc-arc"; }; }; + E23C805AB9C80FC98DA69B788D1E874F /* QCloudGetObjectRequest.h in Headers */ = {isa = PBXBuildFile; fileRef = E18E03C1C00A188C9CF3F2695977222B /* QCloudGetObjectRequest.h */; settings = {ATTRIBUTES = (Public, ); }; }; + E25B7F7ED64E459D6BA4E9FA1B812370 /* MKAnnotationView+RACSignalSupport.m in Sources */ = {isa = PBXBuildFile; fileRef = 153EE398FE075A68208EAEED76E6725C /* MKAnnotationView+RACSignalSupport.m */; }; + E26270176D6BF19961091537CED04175 /* YYTextSelectionView.m in Sources */ = {isa = PBXBuildFile; fileRef = F0EE9EA288C0E4AB8E7DC82868ED94B6 /* YYTextSelectionView.m */; }; + E2642D9F8E18B99EA8FBFFE2F17651C2 /* LLRulerComponent.m in Sources */ = {isa = PBXBuildFile; fileRef = 04695F3AD3921005A28EBA538ECF308E /* LLRulerComponent.m */; }; + E27637B301110750F6B5192994A67CAF /* QCloudDomain.h in Headers */ = {isa = PBXBuildFile; fileRef = 427D6B6141C02621647A5630C27D724E /* QCloudDomain.h */; settings = {ATTRIBUTES = (Public, ); }; }; + E27FAE501457A0743817BFD57B93164E /* OSSSignerBase.h in Headers */ = {isa = PBXBuildFile; fileRef = 644954D23769116479DF55829AA34123 /* OSSSignerBase.h */; settings = {ATTRIBUTES = (Public, ); }; }; + E283D8FF283E09D9CF863A27B55886EF /* mz_crypt_apple.c in Sources */ = {isa = PBXBuildFile; fileRef = 54CD88DFDB3F87ED69A9DF1B163663EA /* mz_crypt_apple.c */; }; + E286D66CCCDA502C0752304994BB90A1 /* YYText.h in Headers */ = {isa = PBXBuildFile; fileRef = 49895CC2A226DAE2A55E019E17D06B6B /* YYText.h */; settings = {ATTRIBUTES = (Public, ); }; }; + E2920772EA5FF4A56F02ECE79223C825 /* Protobuf-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = 29F3E5D98D3FABD7051D31672E414485 /* Protobuf-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; + E2CF7B0B68A3FCEA97725F1D3792E32B /* TZImageRequestOperation.m in Sources */ = {isa = PBXBuildFile; fileRef = B2390AC5CF1382F055C7BBB7735FB1C7 /* TZImageRequestOperation.m */; }; E2D78910993318A0B0F89516037DBABA /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = F91075A92425F75F02E0E1C8D455AF79 /* Foundation.framework */; }; E2D86380588F7867D118B1E6A319150E /* AssetsLibrary.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = E86BC2B5D47B2EA61ED76887B7F31B53 /* AssetsLibrary.framework */; }; - E2DF1B379D9444D40D78320E90B1DC07 /* JXCategoryIndicatorLineView.h in Headers */ = {isa = PBXBuildFile; fileRef = 695AABDC88C9C22D5B340CA077894EF7 /* JXCategoryIndicatorLineView.h */; settings = {ATTRIBUTES = (Public, ); }; }; - E318339B816EDB5D0FBBFB4A8BFD0CB8 /* UIImage+ForceDecode.h in Headers */ = {isa = PBXBuildFile; fileRef = 6A2A9A4ACB15551AAE9304266126636E /* UIImage+ForceDecode.h */; settings = {ATTRIBUTES = (Public, ); }; }; - E37BD58375F4A32A87106083A495AC68 /* UIScrollView+YYAdd.m in Sources */ = {isa = PBXBuildFile; fileRef = 5C6257AC871D5CC33F8C195BADA2E844 /* UIScrollView+YYAdd.m */; }; - E3937B29B7C128063C5908DDCDFB866E /* LLWindowManager+Screenshot.m in Sources */ = {isa = PBXBuildFile; fileRef = 7B9CFE0009D3BE470BBA587D39B3FC89 /* LLWindowManager+Screenshot.m */; }; - E3A332CEB3CF3E3FFA5B573AE3DCAD1F /* bit_reader_inl_utils.h in Headers */ = {isa = PBXBuildFile; fileRef = D310A2CB30D273BCCE0133B8B391E30E /* bit_reader_inl_utils.h */; settings = {ATTRIBUTES = (Project, ); }; }; - E3AE19CF14457FA0CAF26CD1D35093F7 /* ssim.c in Sources */ = {isa = PBXBuildFile; fileRef = 4EAE04E32C83B09078A765F27D24CFAA /* ssim.c */; settings = {COMPILER_FLAGS = "-D_THREAD_SAFE -fno-objc-arc"; }; }; + E2DF1B379D9444D40D78320E90B1DC07 /* JXCategoryIndicatorLineView.h in Headers */ = {isa = PBXBuildFile; fileRef = EC29EBA6A2189FCC642AE87C1864EB3C /* JXCategoryIndicatorLineView.h */; settings = {ATTRIBUTES = (Public, ); }; }; + E327A1FA94610F5FDC1F8DFD07B88198 /* lossless_sse2.c in Sources */ = {isa = PBXBuildFile; fileRef = 20F1EF1530C7EB6E819B8CBA9CD7B69D /* lossless_sse2.c */; settings = {COMPILER_FLAGS = "-D_THREAD_SAFE -fno-objc-arc"; }; }; + E37B65C3196913E9D089113CD11CA68E /* QCloudCOSXML-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 14C654A222FC66AA2867F3373E6E4FF8 /* QCloudCOSXML-dummy.m */; }; + E37BD58375F4A32A87106083A495AC68 /* UIScrollView+YYAdd.m in Sources */ = {isa = PBXBuildFile; fileRef = 8B0AE30712F5FBA31C3678C0A195DBF5 /* UIScrollView+YYAdd.m */; }; + E3937B29B7C128063C5908DDCDFB866E /* LLWindowManager+Screenshot.m in Sources */ = {isa = PBXBuildFile; fileRef = 355D7EF7FF50D1218C0CEC883F6C2E3C /* LLWindowManager+Screenshot.m */; }; E3E13DF3B4B9DBE5F6840BC427C48E63 /* TUIFaceVerticalView.m in Sources */ = {isa = PBXBuildFile; fileRef = 4489EEAECC80C21215AC4B5643F5E3D8 /* TUIFaceVerticalView.m */; }; - E3EC79C356C38BFB6B8F0A84B9E2ABB8 /* QGVAPWeakProxy.m in Sources */ = {isa = PBXBuildFile; fileRef = B61C6DFC91DD916296E6BFFCE696D21D /* QGVAPWeakProxy.m */; }; - E3FC6BEE41652C0500F57E0CB83B347F /* UIButton+AFNetworking.h in Headers */ = {isa = PBXBuildFile; fileRef = 3B30AAFDA181015C6C27025D766CC3DC /* UIButton+AFNetworking.h */; settings = {ATTRIBUTES = (Public, ); }; }; - E3FF59ED528626007ABD830612FA9D8A /* LLDetailTitleCellView.h in Headers */ = {isa = PBXBuildFile; fileRef = 8D63218945CEF3121D4AE8FCC7623D69 /* LLDetailTitleCellView.h */; settings = {ATTRIBUTES = (Public, ); }; }; - E419715BA255848000D8A82F050E42DE /* LLNetworkCell.m in Sources */ = {isa = PBXBuildFile; fileRef = 27D36B9A44BD6E35F3475595AC7E13B0 /* LLNetworkCell.m */; }; - E42D6EF120A5C17DA2F6FD6473CE7E7A /* JXCategoryTitleVerticalZoomCellModel.m in Sources */ = {isa = PBXBuildFile; fileRef = A8CA6A684C2248FBF8810DA9E2C4B5F4 /* JXCategoryTitleVerticalZoomCellModel.m */; }; - E4300B4836DC8B47F8D09A90DBD71587 /* YBImage.m in Sources */ = {isa = PBXBuildFile; fileRef = 1A216F21A0B9C30986ED0630A2105BF3 /* YBImage.m */; }; - E451A509B771EFE3D8DCD740B6148358 /* LLConfigHelper.h in Headers */ = {isa = PBXBuildFile; fileRef = A202F514979CFFF9B4E8AB0B372DA181 /* LLConfigHelper.h */; settings = {ATTRIBUTES = (Public, ); }; }; - E4791277B085D100F164E6944F22DF9F /* LLNavigationController.h in Headers */ = {isa = PBXBuildFile; fileRef = 96BAADD5753B42CD493A7FC30C2FC41F /* LLNavigationController.h */; settings = {ATTRIBUTES = (Public, ); }; }; - E48AB2604A4016A54D5813F774898467 /* MQTTClient-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = AE2793AF03E317A766D7B828C391871B /* MQTTClient-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; + E3EC79C356C38BFB6B8F0A84B9E2ABB8 /* QGVAPWeakProxy.m in Sources */ = {isa = PBXBuildFile; fileRef = CAA1EF5C04ED14358E201C77CD3AE0BE /* QGVAPWeakProxy.m */; }; + E3FC6BEE41652C0500F57E0CB83B347F /* UIButton+AFNetworking.h in Headers */ = {isa = PBXBuildFile; fileRef = 8A31C5ACB803D9BB5674006841EEF304 /* UIButton+AFNetworking.h */; settings = {ATTRIBUTES = (Public, ); }; }; + E3FF59ED528626007ABD830612FA9D8A /* LLDetailTitleCellView.h in Headers */ = {isa = PBXBuildFile; fileRef = FDA44B36E76D3472427B98C7E854A29A /* LLDetailTitleCellView.h */; settings = {ATTRIBUTES = (Public, ); }; }; + E40E3E06341C443AA03066373F7DA96A /* TUILogin.h in Headers */ = {isa = PBXBuildFile; fileRef = 9BCCCD8BC95F5E12FB275A7AAEDEBAB5 /* TUILogin.h */; settings = {ATTRIBUTES = (Public, ); }; }; + E419715BA255848000D8A82F050E42DE /* LLNetworkCell.m in Sources */ = {isa = PBXBuildFile; fileRef = 5F180675B02342B8418012E932CB120F /* LLNetworkCell.m */; }; + E42D6EF120A5C17DA2F6FD6473CE7E7A /* JXCategoryTitleVerticalZoomCellModel.m in Sources */ = {isa = PBXBuildFile; fileRef = C440992FB5C2BB522A19691CCA778577 /* JXCategoryTitleVerticalZoomCellModel.m */; }; + E42F742943BE7C91996D7423B72188D5 /* NSDictionary+TUISafe.m in Sources */ = {isa = PBXBuildFile; fileRef = DC855D70F52FBC5A8FB5F2CC9D9A8BA7 /* NSDictionary+TUISafe.m */; }; + E4300B4836DC8B47F8D09A90DBD71587 /* YBImage.m in Sources */ = {isa = PBXBuildFile; fileRef = 773645E1AF35F14E2778E340F7BE3033 /* YBImage.m */; }; + E451A509B771EFE3D8DCD740B6148358 /* LLConfigHelper.h in Headers */ = {isa = PBXBuildFile; fileRef = 6D55C665C7E25A52C125DF3DF54BAD92 /* LLConfigHelper.h */; settings = {ATTRIBUTES = (Public, ); }; }; + E458329F778FEC8481E769BCB73813A3 /* PrivacyInfo.xcprivacy in Resources */ = {isa = PBXBuildFile; fileRef = 5690FDD3C5DB21ACD0EBF9996B47FE4A /* PrivacyInfo.xcprivacy */; }; + E477E5E8D8CE83B34B17E8681FC353C4 /* QuickZip.swift in Sources */ = {isa = PBXBuildFile; fileRef = C8825480DA40C3D9DA5C343E898215A6 /* QuickZip.swift */; }; + E4791277B085D100F164E6944F22DF9F /* LLNavigationController.h in Headers */ = {isa = PBXBuildFile; fileRef = 904A8E2DD1D23113769C60C4B8AA0D63 /* LLNavigationController.h */; settings = {ATTRIBUTES = (Public, ); }; }; + E48AB2604A4016A54D5813F774898467 /* MQTTClient-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = E3005CBA4D670540031B0AC9B7BF3FA0 /* MQTTClient-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; + E4925DABB4009B6B908F6589BA4286C1 /* webp_dec.c in Sources */ = {isa = PBXBuildFile; fileRef = 1A80456146B2F3CE27A4C9F942F1A2D1 /* webp_dec.c */; settings = {COMPILER_FLAGS = "-D_THREAD_SAFE -fno-objc-arc"; }; }; E4ACC8194A475B3BA0E7894F7C2DB1DE /* TUIReplyMessageCellData.m in Sources */ = {isa = PBXBuildFile; fileRef = BB5265554F5E08EB827691D22296A69D /* TUIReplyMessageCellData.m */; }; - E4B688B8A0D07AFB883A52250CA874A1 /* JXCategoryNumberCellModel.m in Sources */ = {isa = PBXBuildFile; fileRef = 2046F5DB3072AA404306987E5954F7E9 /* JXCategoryNumberCellModel.m */; }; - E4B7809F5A264F92C5F88325A37B5B59 /* GPBUnknownFieldSet_PackagePrivate.h in Headers */ = {isa = PBXBuildFile; fileRef = 665747A59D8D999B6E0DBC6B726A5DE7 /* GPBUnknownFieldSet_PackagePrivate.h */; settings = {ATTRIBUTES = (Public, ); }; }; - E4D8DD3667A7FAC7A30ED23F98B74A2F /* NSSet+OSS.m in Sources */ = {isa = PBXBuildFile; fileRef = F78A86D020E37CCAE2DC4D14B3FC09D6 /* NSSet+OSS.m */; }; - E4FE2C52B4BEFEEE261443716020E30B /* PrivacyInfo.xcprivacy in Resources */ = {isa = PBXBuildFile; fileRef = 9F948D425063BD45CB4DC7BC39379CA0 /* PrivacyInfo.xcprivacy */; }; - E52DCE394A6E02B6BA11FA64624F68F3 /* JXCategoryIndicatorParamsModel.h in Headers */ = {isa = PBXBuildFile; fileRef = 347D304AA51F0A3E612D713E96B253DA /* JXCategoryIndicatorParamsModel.h */; settings = {ATTRIBUTES = (Public, ); }; }; - E55B3151D86660E28CEABC3CDE6B1508 /* UIButton+AFNetworking.m in Sources */ = {isa = PBXBuildFile; fileRef = E78B40B3D91063005F2C036F1BDC4627 /* UIButton+AFNetworking.m */; }; - E5665A3D0AF22E3B91FF96E278F29663 /* TZVideoEditedPreviewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 7E453ECA8A5EFF7938EEEE294601EA51 /* TZVideoEditedPreviewController.m */; }; + E4B688B8A0D07AFB883A52250CA874A1 /* JXCategoryNumberCellModel.m in Sources */ = {isa = PBXBuildFile; fileRef = 4486B7B66827B72035C9C938A6C2F114 /* JXCategoryNumberCellModel.m */; }; + E4B7809F5A264F92C5F88325A37B5B59 /* GPBUnknownFieldSet_PackagePrivate.h in Headers */ = {isa = PBXBuildFile; fileRef = 2FAB6EAA857B7B7D4B5C776DB888EB83 /* GPBUnknownFieldSet_PackagePrivate.h */; settings = {ATTRIBUTES = (Public, ); }; }; + E4D8DD3667A7FAC7A30ED23F98B74A2F /* NSSet+OSS.m in Sources */ = {isa = PBXBuildFile; fileRef = 936AFBA0A950DAA32400CF9454411A48 /* NSSet+OSS.m */; }; + E4FE51F0868EA5D8755ECC0637297462 /* upsampling_sse2.c in Sources */ = {isa = PBXBuildFile; fileRef = E306122A64AE025374FF6635E9A1D13D /* upsampling_sse2.c */; settings = {COMPILER_FLAGS = "-D_THREAD_SAFE -fno-objc-arc"; }; }; + E503145E00678D86C1299695B2CB4FD0 /* TUIThemeManager.h in Headers */ = {isa = PBXBuildFile; fileRef = ACECA3CC22B9472A71AE45035282AD24 /* TUIThemeManager.h */; settings = {ATTRIBUTES = (Public, ); }; }; + E50D5EFDA3478DC752D64CD61747CDDA /* UIImageView+WebCache.h in Headers */ = {isa = PBXBuildFile; fileRef = 546050D3806424147A820EF88B7C56C4 /* UIImageView+WebCache.h */; settings = {ATTRIBUTES = (Public, ); }; }; + E52DCE394A6E02B6BA11FA64624F68F3 /* JXCategoryIndicatorParamsModel.h in Headers */ = {isa = PBXBuildFile; fileRef = F58FF61B5A735120E41ED0DF5DB13E37 /* JXCategoryIndicatorParamsModel.h */; settings = {ATTRIBUTES = (Public, ); }; }; + E55B3151D86660E28CEABC3CDE6B1508 /* UIButton+AFNetworking.m in Sources */ = {isa = PBXBuildFile; fileRef = 7EEA1E1BB5437E90728E35ED0A840516 /* UIButton+AFNetworking.m */; }; + E5665A3D0AF22E3B91FF96E278F29663 /* TZVideoEditedPreviewController.m in Sources */ = {isa = PBXBuildFile; fileRef = A0FB4D55F858D76463B34428D6E124A5 /* TZVideoEditedPreviewController.m */; }; E578F8115FA615428164C726BC0DFF02 /* TUIFoldListViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 5236509FD4A522718E1073ED84ECE08E /* TUIFoldListViewController.m */; }; - E588F096B2A92CDF96569CB8899AD354 /* LLHierarchyHelper.h in Headers */ = {isa = PBXBuildFile; fileRef = EC9FAD6E6B2245B24C268E38F90E7152 /* LLHierarchyHelper.h */; settings = {ATTRIBUTES = (Public, ); }; }; - E5ACF2811D293A780218BCE9E0DDA274 /* LLWindowManager+ShortCut.m in Sources */ = {isa = PBXBuildFile; fileRef = 94B0443327D5ED261D57CF897842D4C8 /* LLWindowManager+ShortCut.m */; }; - E5AD74C206FCBD08FBBA2F359D787980 /* RACGroupedSignal.h in Headers */ = {isa = PBXBuildFile; fileRef = 4EB7EA528AD2955EEC8332C25AF94ABC /* RACGroupedSignal.h */; settings = {ATTRIBUTES = (Public, ); }; }; - E5B057BC87284367918B2DB9CA084B4E /* MJRefreshAutoGifFooter.m in Sources */ = {isa = PBXBuildFile; fileRef = A06DB1DD84E7A1B2E3AF590362B966AB /* MJRefreshAutoGifFooter.m */; }; - E5E0BF4E04B92B170661E0B3F6416CEB /* NSString+LL_Utils.m in Sources */ = {isa = PBXBuildFile; fileRef = E7795C18E237EAC5EA711BD505B0C00C /* NSString+LL_Utils.m */; }; - E5FA0235CD286C13C0F568946EB0AEA8 /* mz_strm_pkcrypt.h in Headers */ = {isa = PBXBuildFile; fileRef = BD32AC887A0618F4E3DA892E88AE55D3 /* mz_strm_pkcrypt.h */; settings = {ATTRIBUTES = (Project, ); }; }; - E5FC6988D1BAA7896108207413F98A33 /* LLFilterDatePickerView.h in Headers */ = {isa = PBXBuildFile; fileRef = 7E428D3DD36D1F0B655E0FE9239DCC59 /* LLFilterDatePickerView.h */; settings = {ATTRIBUTES = (Public, ); }; }; + E588F096B2A92CDF96569CB8899AD354 /* LLHierarchyHelper.h in Headers */ = {isa = PBXBuildFile; fileRef = 3F1BA4BA88EB71B223562EEACCDBFE05 /* LLHierarchyHelper.h */; settings = {ATTRIBUTES = (Public, ); }; }; + E5ACF2811D293A780218BCE9E0DDA274 /* LLWindowManager+ShortCut.m in Sources */ = {isa = PBXBuildFile; fileRef = F8B806456AE57EF110F02C6A3FB88CC9 /* LLWindowManager+ShortCut.m */; }; + E5AD74C206FCBD08FBBA2F359D787980 /* RACGroupedSignal.h in Headers */ = {isa = PBXBuildFile; fileRef = 8D3CC53B87F8F2D4554CD8FD1FDD9428 /* RACGroupedSignal.h */; settings = {ATTRIBUTES = (Public, ); }; }; + E5B057BC87284367918B2DB9CA084B4E /* MJRefreshAutoGifFooter.m in Sources */ = {isa = PBXBuildFile; fileRef = 86075546D8DCB851A80563BC28DB4CDF /* MJRefreshAutoGifFooter.m */; }; + E5E0BF4E04B92B170661E0B3F6416CEB /* NSString+LL_Utils.m in Sources */ = {isa = PBXBuildFile; fileRef = 767C01FFC630B22313EF2E0ED00FD383 /* NSString+LL_Utils.m */; }; + E5FA0235CD286C13C0F568946EB0AEA8 /* mz_strm_pkcrypt.h in Headers */ = {isa = PBXBuildFile; fileRef = DB49D7AF524858A12FE2F7D542ABD60E /* mz_strm_pkcrypt.h */; settings = {ATTRIBUTES = (Project, ); }; }; + E5FC6988D1BAA7896108207413F98A33 /* LLFilterDatePickerView.h in Headers */ = {isa = PBXBuildFile; fileRef = 20E5C9474158147BFADEC3D36D8234F0 /* LLFilterDatePickerView.h */; settings = {ATTRIBUTES = (Public, ); }; }; E6147372BB010DDDC67CA5236AE54C6E /* TUIFoldConversationListDataProvider.h in Headers */ = {isa = PBXBuildFile; fileRef = F65FCF6C53BCD8ACB2C35DAD514DA78C /* TUIFoldConversationListDataProvider.h */; settings = {ATTRIBUTES = (Public, ); }; }; - E62794B56595DEAD26E97758F85C2777 /* SVGAVectorLayer.m in Sources */ = {isa = PBXBuildFile; fileRef = 97D657EBD16D63AE0B4CBD9E62451BD1 /* SVGAVectorLayer.m */; }; - E6364916D32C6AE450361124DA48698E /* syntax_enc.c in Sources */ = {isa = PBXBuildFile; fileRef = 45B70AB8F45A69F6D35599E9C3C79C6E /* syntax_enc.c */; settings = {COMPILER_FLAGS = "-D_THREAD_SAFE -fno-objc-arc"; }; }; - E63DAE47568BD251EE37F4029CAFFEDD /* GPBDuration.pbobjc.m in Sources */ = {isa = PBXBuildFile; fileRef = AF867A3166A514494F5092E35E2FEE6D /* GPBDuration.pbobjc.m */; settings = {COMPILER_FLAGS = "-fno-objc-arc"; }; }; + E62794B56595DEAD26E97758F85C2777 /* SVGAVectorLayer.m in Sources */ = {isa = PBXBuildFile; fileRef = 5708E07AB2840A76853C9AE6DD55E305 /* SVGAVectorLayer.m */; }; + E63DAE47568BD251EE37F4029CAFFEDD /* GPBDuration.pbobjc.m in Sources */ = {isa = PBXBuildFile; fileRef = C27CA9BB1BC6C72D88FF580AA4D3AC9B /* GPBDuration.pbobjc.m */; settings = {COMPILER_FLAGS = "-fno-objc-arc"; }; }; E661D5F2437AA8BB75CF2752D567E151 /* TUIMessageCell.h in Headers */ = {isa = PBXBuildFile; fileRef = 953C060534FC3B5C1D79AF1D5519C9D2 /* TUIMessageCell.h */; settings = {ATTRIBUTES = (Public, ); }; }; - E66814F31F70B2A0D7477CCE8B9A38A8 /* SDImageCache.m in Sources */ = {isa = PBXBuildFile; fileRef = 892593E950280D9DF8D65B3C8B4F7A75 /* SDImageCache.m */; }; - E6756E840099F98D1E135EABCDB5BEF0 /* LyricMachine+Events.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7B5324C47C8F7979E68D5933AE51B7AC /* LyricMachine+Events.swift */; }; + E6756E840099F98D1E135EABCDB5BEF0 /* LyricMachine+Events.swift in Sources */ = {isa = PBXBuildFile; fileRef = 13CFFBA69B3D2794F8315B288F3F91D9 /* LyricMachine+Events.swift */; }; + E680FD6B25C3AA602215FCB100BDE02C /* QCloudCOSTransferMangerService.m in Sources */ = {isa = PBXBuildFile; fileRef = AC3912514619936BE782EEA52811A2A7 /* QCloudCOSTransferMangerService.m */; }; E688A92F531481322886A2ED94800092 /* Photos.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = E9FD69164CED3C5424496E386AA5CA8E /* Photos.framework */; }; - E69689D02F65E151584D4699213E0763 /* SDCollectionViewCell.m in Sources */ = {isa = PBXBuildFile; fileRef = C9E11F37F96460ECAEE6E3C2E337098D /* SDCollectionViewCell.m */; }; + E69689D02F65E151584D4699213E0763 /* SDCollectionViewCell.m in Sources */ = {isa = PBXBuildFile; fileRef = FF584313D7CD1613FC941ED1EF9D63A2 /* SDCollectionViewCell.m */; }; E7038B552E49B740A0FF6A2FDD379832 /* TUIConfig_Classic.m in Sources */ = {isa = PBXBuildFile; fileRef = 895342357D7BE55B10118F22F3F4988D /* TUIConfig_Classic.m */; }; - E70C2CAC42C2694A81BC922A16053E46 /* LyricsFileDownloader.swift in Sources */ = {isa = PBXBuildFile; fileRef = FC566BF6FA3581636EE1F0AC3040D321 /* LyricsFileDownloader.swift */; }; - E73B763A23118BEBD6FE1278812ADAD5 /* NSObject+YYAddForKVO.h in Headers */ = {isa = PBXBuildFile; fileRef = 043D54CB26D71DFE0ABE7C668577A729 /* NSObject+YYAddForKVO.h */; settings = {ATTRIBUTES = (Public, ); }; }; - E7501698D047E7A24E21AAD6A9AB192F /* NSDictionary+TUISafe.m in Sources */ = {isa = PBXBuildFile; fileRef = DC855D70F52FBC5A8FB5F2CC9D9A8BA7 /* NSDictionary+TUISafe.m */; }; - E77175BDAE33AADF66766B28AA710247 /* JXPagerMainTableView.h in Headers */ = {isa = PBXBuildFile; fileRef = 901CEC3A79F36A2E0FE70F329E32570F /* JXPagerMainTableView.h */; settings = {ATTRIBUTES = (Public, ); }; }; + E70C2CAC42C2694A81BC922A16053E46 /* LyricsFileDownloader.swift in Sources */ = {isa = PBXBuildFile; fileRef = 783462EC8F6705A4B684FCEB809EA483 /* LyricsFileDownloader.swift */; }; + E73324F0702481ABBAAEE654FCC92343 /* dec_msa.c in Sources */ = {isa = PBXBuildFile; fileRef = F8181EDD3C12ED0FF3835E32FCCC6261 /* dec_msa.c */; settings = {COMPILER_FLAGS = "-D_THREAD_SAFE -fno-objc-arc"; }; }; + E73B763A23118BEBD6FE1278812ADAD5 /* NSObject+YYAddForKVO.h in Headers */ = {isa = PBXBuildFile; fileRef = 238139139920DAC159425DC75197A6D2 /* NSObject+YYAddForKVO.h */; settings = {ATTRIBUTES = (Public, ); }; }; + E77175BDAE33AADF66766B28AA710247 /* JXPagerMainTableView.h in Headers */ = {isa = PBXBuildFile; fileRef = E57FDA4CCBD36CE0E8D479344368C8BE /* JXPagerMainTableView.h */; settings = {ATTRIBUTES = (Public, ); }; }; E79B2DA9C75EF0230B73D1E44D10D45F /* TUISecondConfirm.m in Sources */ = {isa = PBXBuildFile; fileRef = 28E5DB0D46F7C1455159A225688901A3 /* TUISecondConfirm.m */; }; - E7B29BC38EE6759EBF88740CC4615979 /* MQTTCFSocketEncoder.h in Headers */ = {isa = PBXBuildFile; fileRef = 4A2C80110882FD004441E6E08C198992 /* MQTTCFSocketEncoder.h */; settings = {ATTRIBUTES = (Public, ); }; }; - E7BFC33B375657F2F9253DC7D0916143 /* OSSModel.h in Headers */ = {isa = PBXBuildFile; fileRef = 0793B2C30D54159C1392333F12A81D4E /* OSSModel.h */; settings = {ATTRIBUTES = (Public, ); }; }; - E7C4C5B3C1E96415BC5E5C715FA02C46 /* LLSandboxHtmlPreviewController.m in Sources */ = {isa = PBXBuildFile; fileRef = AC4CBF8C5116C1FECAFEBE4E2E394213 /* LLSandboxHtmlPreviewController.m */; }; - E7D93841576E1B14402A52947E31A445 /* LLAnimateView.m in Sources */ = {isa = PBXBuildFile; fileRef = C7C43E3F6DF662280080032954FEBA27 /* LLAnimateView.m */; }; - E7DE92454E27053C3A77B2706D7F0694 /* LLCrash.h in Headers */ = {isa = PBXBuildFile; fileRef = 5E9888DF58BF1C3626184D210A3E1D7A /* LLCrash.h */; settings = {ATTRIBUTES = (Public, ); }; }; + E7B29BC38EE6759EBF88740CC4615979 /* MQTTCFSocketEncoder.h in Headers */ = {isa = PBXBuildFile; fileRef = CEDA2D880A862E9E8EA601DB0DD7E776 /* MQTTCFSocketEncoder.h */; settings = {ATTRIBUTES = (Public, ); }; }; + E7BFC33B375657F2F9253DC7D0916143 /* OSSModel.h in Headers */ = {isa = PBXBuildFile; fileRef = E7FB5DD066A6771B3D6ED75334CFD6EE /* OSSModel.h */; settings = {ATTRIBUTES = (Public, ); }; }; + E7C4C5B3C1E96415BC5E5C715FA02C46 /* LLSandboxHtmlPreviewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 46CBF33AC9C4CFFD0BD0574B8080451E /* LLSandboxHtmlPreviewController.m */; }; + E7D93841576E1B14402A52947E31A445 /* LLAnimateView.m in Sources */ = {isa = PBXBuildFile; fileRef = BD902CC30B9F9055A5B5A06DC5666750 /* LLAnimateView.m */; }; + E7DE92454E27053C3A77B2706D7F0694 /* LLCrash.h in Headers */ = {isa = PBXBuildFile; fileRef = DF93D12A280FEEB9F29949C627132528 /* LLCrash.h */; settings = {ATTRIBUTES = (Public, ); }; }; + E7F453CBE1650D82A1BE7816D353C39F /* sharpyuv_dsp.c in Sources */ = {isa = PBXBuildFile; fileRef = 7E7F426B17E68809DC64043CCDD166B9 /* sharpyuv_dsp.c */; settings = {COMPILER_FLAGS = "-D_THREAD_SAFE -fno-objc-arc"; }; }; E7F570F449E9ADEF8D6F2141D958E695 /* TUIGroupProfileCardViewCell_Minimalist.h in Headers */ = {isa = PBXBuildFile; fileRef = 780A48EC5BF491622F641F863E8AB53C /* TUIGroupProfileCardViewCell_Minimalist.h */; settings = {ATTRIBUTES = (Public, ); }; }; - E80BC1F3C11C00D429504583AEC7EB12 /* RACChannel.h in Headers */ = {isa = PBXBuildFile; fileRef = 68A637692529FA9A3C79480A3A5E44E5 /* RACChannel.h */; settings = {ATTRIBUTES = (Public, ); }; }; - E81BE9935B2121C12CEC06480E77EA22 /* RACSubscriptingAssignmentTrampoline.h in Headers */ = {isa = PBXBuildFile; fileRef = AE2D6ADA4FDF24EAB07D1F9ADFFD7102 /* RACSubscriptingAssignmentTrampoline.h */; settings = {ATTRIBUTES = (Public, ); }; }; - E83A52894523FA9BACDD7D8BB4A80927 /* YYImageCoder.h in Headers */ = {isa = PBXBuildFile; fileRef = 2FB0F1EA0129A32D8F1B9DBBE93BEAA7 /* YYImageCoder.h */; settings = {ATTRIBUTES = (Public, ); }; }; - E846E6DBA5F23C32B28E34C2E9C37E99 /* GPBCodedOutputStream.h in Headers */ = {isa = PBXBuildFile; fileRef = A7EF03C1C38B5DAA7907D6512336BF89 /* GPBCodedOutputStream.h */; settings = {ATTRIBUTES = (Public, ); }; }; - E8941C3C9C4A93AF97CD4D244A2A8B61 /* QGVAPConfigManager.m in Sources */ = {isa = PBXBuildFile; fileRef = 90625BA868039992AC0524D9CF7BEF76 /* QGVAPConfigManager.m */; }; + E80BC1F3C11C00D429504583AEC7EB12 /* RACChannel.h in Headers */ = {isa = PBXBuildFile; fileRef = E5FB34D330D2F3C122CDC554CE2915C9 /* RACChannel.h */; settings = {ATTRIBUTES = (Public, ); }; }; + E81BE9935B2121C12CEC06480E77EA22 /* RACSubscriptingAssignmentTrampoline.h in Headers */ = {isa = PBXBuildFile; fileRef = 05B21B4AB11BDEBEE17E7103D179F817 /* RACSubscriptingAssignmentTrampoline.h */; settings = {ATTRIBUTES = (Public, ); }; }; + E82AE613AF90BA23E80A1962FB798FCA /* NSData+ImageContentType.h in Headers */ = {isa = PBXBuildFile; fileRef = D8E080E375BEB544709F641AB0369521 /* NSData+ImageContentType.h */; settings = {ATTRIBUTES = (Public, ); }; }; + E834A633EB29B25DAE5D9280DEE8F82E /* SDImageLoader.m in Sources */ = {isa = PBXBuildFile; fileRef = A514397B4D917730AB6D898D6305E2A9 /* SDImageLoader.m */; }; + E846E6DBA5F23C32B28E34C2E9C37E99 /* GPBCodedOutputStream.h in Headers */ = {isa = PBXBuildFile; fileRef = 027E243469F04F5AAD000E82F7BE6A2D /* GPBCodedOutputStream.h */; settings = {ATTRIBUTES = (Public, ); }; }; + E8941C3C9C4A93AF97CD4D244A2A8B61 /* QGVAPConfigManager.m in Sources */ = {isa = PBXBuildFile; fileRef = 864CE51C15F42BF2126252E3EDF35226 /* QGVAPConfigManager.m */; }; E8FFFABE7E6D4ADA1AAA96866A5BB744 /* TIMCommonMediator.m in Sources */ = {isa = PBXBuildFile; fileRef = D375198E0E511210A10D45F22A5E8258 /* TIMCommonMediator.m */; }; - E930A5612DC6D120BE040AD17C6D1BCD /* MASViewAttribute.m in Sources */ = {isa = PBXBuildFile; fileRef = 7383FBB730EFFDCA84542FCC41257D02 /* MASViewAttribute.m */; }; - E93C5196D1C5FDA70807A260DD7A9284 /* TUIDefine.h in Headers */ = {isa = PBXBuildFile; fileRef = D378CF997ED4D06ECB2AE3DA1820EDE0 /* TUIDefine.h */; settings = {ATTRIBUTES = (Public, ); }; }; + E911D374AA95309E0D5E63F403A217F5 /* mips_macro.h in Headers */ = {isa = PBXBuildFile; fileRef = 1A2E8AEB3D01EFA0A7BC494E9A84B299 /* mips_macro.h */; settings = {ATTRIBUTES = (Project, ); }; }; + E930A5612DC6D120BE040AD17C6D1BCD /* MASViewAttribute.m in Sources */ = {isa = PBXBuildFile; fileRef = 55A0F6E976D71D48E4793E256F4C8AE5 /* MASViewAttribute.m */; }; + E9321CD14430DEA687FC4D9D4890037E /* cost_neon.c in Sources */ = {isa = PBXBuildFile; fileRef = B4DF94FB31089F7B36BC6CB85F37D16B /* cost_neon.c */; settings = {COMPILER_FLAGS = "-D_THREAD_SAFE -fno-objc-arc"; }; }; E9438B626ECF2FE13B5177CC655D0BE5 /* TUIMemberCell_Minimalist.h in Headers */ = {isa = PBXBuildFile; fileRef = C3C90F27D76A0D9A5E5CFA5010887FDB /* TUIMemberCell_Minimalist.h */; settings = {ATTRIBUTES = (Public, ); }; }; - E94DE04E2D28C6E30C60FDED9895C233 /* SDWebImageCompat.h in Headers */ = {isa = PBXBuildFile; fileRef = D8D5905F8689189CE798DC536D9F5C82 /* SDWebImageCompat.h */; settings = {ATTRIBUTES = (Public, ); }; }; E95936D246EEC35D1A34992DA3DC44E2 /* TUIGroupNoticeController_Minimalist.h in Headers */ = {isa = PBXBuildFile; fileRef = 15B5065E95A05EA77EC7890FE9C0D494 /* TUIGroupNoticeController_Minimalist.h */; settings = {ATTRIBUTES = (Public, ); }; }; - E95FE85B929E24CD0B18BB521969C9B8 /* YBIBTopView.m in Sources */ = {isa = PBXBuildFile; fileRef = 3B7558B9B194726397EEBD52EC664E87 /* YBIBTopView.m */; }; - E96F37E3D1E77EB2349FF06BD82E95E9 /* RACEagerSequence.m in Sources */ = {isa = PBXBuildFile; fileRef = FDECB8D5714E6E4D9D45FFB53A536451 /* RACEagerSequence.m */; }; + E95FE85B929E24CD0B18BB521969C9B8 /* YBIBTopView.m in Sources */ = {isa = PBXBuildFile; fileRef = D6B2DF963D12773BFEABC3276B469599 /* YBIBTopView.m */; }; + E96F37E3D1E77EB2349FF06BD82E95E9 /* RACEagerSequence.m in Sources */ = {isa = PBXBuildFile; fileRef = E0C3FDC79600F8A0E44431E63963F213 /* RACEagerSequence.m */; }; E985EBAF61BB2DCC5B2A9C16381072A4 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = F91075A92425F75F02E0E1C8D455AF79 /* Foundation.framework */; }; - E98ECECD3ACB99F47836386933BBC102 /* LineScoreRecorder.swift in Sources */ = {isa = PBXBuildFile; fileRef = CF8EE222BE8FE0853FC74C87C3A9BCF9 /* LineScoreRecorder.swift */; }; + E98ECECD3ACB99F47836386933BBC102 /* LineScoreRecorder.swift in Sources */ = {isa = PBXBuildFile; fileRef = 43E4B10A769DF79034D79FD068C23A59 /* LineScoreRecorder.swift */; }; E990FF7E5A8587AEDC3593E7C68F0AFF /* TUIMessageMultiChooseView_Minimalist.h in Headers */ = {isa = PBXBuildFile; fileRef = FCD1C0BEF002E89CC58E0BBE7D329376 /* TUIMessageMultiChooseView_Minimalist.h */; settings = {ATTRIBUTES = (Public, ); }; }; - E99D0FDFED6B9B6CE4F1373A8D4CEE03 /* RACSubscriber+Private.h in Headers */ = {isa = PBXBuildFile; fileRef = 8EC299F270811F3DB74DD20C70965FDA /* RACSubscriber+Private.h */; settings = {ATTRIBUTES = (Private, ); }; }; + E99D0FDFED6B9B6CE4F1373A8D4CEE03 /* RACSubscriber+Private.h in Headers */ = {isa = PBXBuildFile; fileRef = 518A1560C99DA713CB6C06E2B95DDA29 /* RACSubscriber+Private.h */; settings = {ATTRIBUTES = (Private, ); }; }; E9BDD8AF3508BA961AC29AB7946D4C9E /* TUIGroupProfileCardCellData_Minimalist.h in Headers */ = {isa = PBXBuildFile; fileRef = 6F33970E4DC39CE021058A4648F9619F /* TUIGroupProfileCardCellData_Minimalist.h */; settings = {ATTRIBUTES = (Public, ); }; }; + E9C7E961F1A373E6CBF9CCAE5C10FAAE /* QCloudPutObjectCopyRequest.m in Sources */ = {isa = PBXBuildFile; fileRef = F470A925C5094BD40B4014B0102B5721 /* QCloudPutObjectCopyRequest.m */; }; E9CCB8EFFD7360AE5676D09F99C029F4 /* TUIGroupNoticeDataProvider.m in Sources */ = {isa = PBXBuildFile; fileRef = A2A32A9E5B43946A10FB76032D4670C7 /* TUIGroupNoticeDataProvider.m */; }; - E9DE0CCC562C50CD2D2967CD742FF9FF /* FMDatabase.m in Sources */ = {isa = PBXBuildFile; fileRef = B5A9F243B9EAC464EE4B36D914634458 /* FMDatabase.m */; }; - E9E16E749FD6121557C8D9E648A8C6AB /* RACDelegateProxy.h in Headers */ = {isa = PBXBuildFile; fileRef = E4F49D838212163A9F7FD44ED4BE7717 /* RACDelegateProxy.h */; settings = {ATTRIBUTES = (Public, ); }; }; + E9DE0CCC562C50CD2D2967CD742FF9FF /* FMDatabase.m in Sources */ = {isa = PBXBuildFile; fileRef = 5F3353A426C7C99A13ABAC5E085CFE8A /* FMDatabase.m */; }; + E9E16E749FD6121557C8D9E648A8C6AB /* RACDelegateProxy.h in Headers */ = {isa = PBXBuildFile; fileRef = BDF89E7175CF443129F1FEEE83848352 /* RACDelegateProxy.h */; settings = {ATTRIBUTES = (Public, ); }; }; EA0E5968A6C6D51780946D37E381CB7D /* TUIInputBar.h in Headers */ = {isa = PBXBuildFile; fileRef = 8A6F5446EC500086A4E04F962CED9EE9 /* TUIInputBar.h */; settings = {ATTRIBUTES = (Public, ); }; }; - EA1C4EBC6B12CA6C32A9D62E3EBB9167 /* LLScreenshotToolbar.h in Headers */ = {isa = PBXBuildFile; fileRef = 05B194A51F710F29C89EA5E6458B9D3F /* LLScreenshotToolbar.h */; settings = {ATTRIBUTES = (Public, ); }; }; - EA409B23FF58B66A5AB37803A2F4E8A8 /* enc_sse2.c in Sources */ = {isa = PBXBuildFile; fileRef = D7247191F9CD01626791CB907C40B585 /* enc_sse2.c */; settings = {COMPILER_FLAGS = "-D_THREAD_SAFE -fno-objc-arc"; }; }; + EA1C4EBC6B12CA6C32A9D62E3EBB9167 /* LLScreenshotToolbar.h in Headers */ = {isa = PBXBuildFile; fileRef = 9231995BAA72208E6E6F3F4018F17579 /* LLScreenshotToolbar.h */; settings = {ATTRIBUTES = (Public, ); }; }; EA4273CCC793DFFAB6DADC79100F96A4 /* TUIVideoMessageCellData.h in Headers */ = {isa = PBXBuildFile; fileRef = BBE47E39AE0BA6E5CD95FE71B6CE0CBE /* TUIVideoMessageCellData.h */; settings = {ATTRIBUTES = (Public, ); }; }; - EA4323194CD798F0B5146EFF75556E5C /* YBIBWebImageMediator.h in Headers */ = {isa = PBXBuildFile; fileRef = DFD95C0DA4E39DDD8F4559673364C37F /* YBIBWebImageMediator.h */; settings = {ATTRIBUTES = (Public, ); }; }; + EA4323194CD798F0B5146EFF75556E5C /* YBIBWebImageMediator.h in Headers */ = {isa = PBXBuildFile; fileRef = A3B1345579B77EC14E3A5F3B4E84A4AA /* YBIBWebImageMediator.h */; settings = {ATTRIBUTES = (Public, ); }; }; EA4467ECBDB1A791BC2C4B09D78D831E /* TUIMemberCell.h in Headers */ = {isa = PBXBuildFile; fileRef = ED739D2EA31730B9C469B5913E6EC5D1 /* TUIMemberCell.h */; settings = {ATTRIBUTES = (Public, ); }; }; - EA4546A2D4D34D3DCEFAB2F93C479716 /* picture_csp_enc.c in Sources */ = {isa = PBXBuildFile; fileRef = 8818B1BDA478BB0B28781263C3DA1847 /* picture_csp_enc.c */; settings = {COMPILER_FLAGS = "-D_THREAD_SAFE -fno-objc-arc"; }; }; - EA4E72FBA7A916AC0625825DE163F21B /* TUICore-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = 6D24D29E7D2DC3A953C99CBAC81B6CB8 /* TUICore-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; EA62A293A1312D1F2C6431A0DA213585 /* TUITextReplyQuoteView_Minimalist.m in Sources */ = {isa = PBXBuildFile; fileRef = 0291ED357AD3A6B01A65FA73A9AA56F1 /* TUITextReplyQuoteView_Minimalist.m */; }; EA635B32DFD100A1350299A2CE2BA303 /* TUIMessageController_Minimalist.m in Sources */ = {isa = PBXBuildFile; fileRef = 1206B93CFDB4E20716E1C190A77C73DE /* TUIMessageController_Minimalist.m */; }; - EA77EFAFDF70EFBCCABBCED7880C1351 /* NSURLSession+LL_Network.h in Headers */ = {isa = PBXBuildFile; fileRef = 6AE29C597486D351C1A50091BB2CD4D3 /* NSURLSession+LL_Network.h */; settings = {ATTRIBUTES = (Public, ); }; }; + EA77EFAFDF70EFBCCABBCED7880C1351 /* NSURLSession+LL_Network.h in Headers */ = {isa = PBXBuildFile; fileRef = 0C7CF617060B058010C68F29C2D02F5A /* NSURLSession+LL_Network.h */; settings = {ATTRIBUTES = (Public, ); }; }; EAA993C385E6F1E9A17B65193B3C34C9 /* CoreFoundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = BDCD3DDCE37ACFD1BDD612F5969870AA /* CoreFoundation.framework */; }; EAAD9DA147FC4AC486E7EC886FB0D4C0 /* TIMGroupInfo+TUIDataProvider.h in Headers */ = {isa = PBXBuildFile; fileRef = ACCB3F547ED73CEAB07719C9740163D4 /* TIMGroupInfo+TUIDataProvider.h */; settings = {ATTRIBUTES = (Public, ); }; }; EABCB60A26B06BF576E50BBD2F89A385 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = F91075A92425F75F02E0E1C8D455AF79 /* Foundation.framework */; }; - EAE4E1942E70282C20A589AF486C4876 /* LLHtmlUIWebViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = D51C121C141A77CFF72D490239BAF9F7 /* LLHtmlUIWebViewController.m */; }; + EAE4E1942E70282C20A589AF486C4876 /* LLHtmlUIWebViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = DE30E0E4C3B6299ED2521A89660768A3 /* LLHtmlUIWebViewController.m */; }; EAE65CE6EF5FF1C8F9A35E6FED46C57C /* TUITextReplyQuoteViewData.m in Sources */ = {isa = PBXBuildFile; fileRef = FD38D7AAAA1752EE33E65A445DBC2A12 /* TUITextReplyQuoteViewData.m */; }; + EAF653886E9D67BC1008F9CF841B3847 /* NSObject+HTTPHeadersContainer.m in Sources */ = {isa = PBXBuildFile; fileRef = 7B4640EBC24552EA6D19B590EC17005D /* NSObject+HTTPHeadersContainer.m */; }; EAFE724B5B9F7ABD32DD1B7C94925043 /* TUIMergeMessageCell_Minimalist.h in Headers */ = {isa = PBXBuildFile; fileRef = AA9AB74FC7A6B3470E3E553AC2449C76 /* TUIMergeMessageCell_Minimalist.h */; settings = {ATTRIBUTES = (Public, ); }; }; - EB27DEF6CC7E1606E358166B56931C05 /* NSObject+YYModel.m in Sources */ = {isa = PBXBuildFile; fileRef = 6D68728C88CDAB9931092D9444DE4CE3 /* NSObject+YYModel.m */; }; - EB2B23ED2E2255738EB55BA0538A395F /* QGHWDMP4OpenGLView.h in Headers */ = {isa = PBXBuildFile; fileRef = A3A5460DC1784C79D84C105DC7872440 /* QGHWDMP4OpenGLView.h */; settings = {ATTRIBUTES = (Public, ); }; }; - EB3DF628891F7D6AB114718AF760CB2A /* UIImageView+AFNetworking.h in Headers */ = {isa = PBXBuildFile; fileRef = 182D05E9C4066BF7CB2532FAD45EE86F /* UIImageView+AFNetworking.h */; settings = {ATTRIBUTES = (Public, ); }; }; - EB7ADEE9F27EDF912A9C1D71B0D4A018 /* LLLocationViewController.h in Headers */ = {isa = PBXBuildFile; fileRef = 0DE7144DA85E194D1C6BC9681558FB2E /* LLLocationViewController.h */; settings = {ATTRIBUTES = (Public, ); }; }; + EB27DEF6CC7E1606E358166B56931C05 /* NSObject+YYModel.m in Sources */ = {isa = PBXBuildFile; fileRef = C153F5BFB075FF25972871DD709AC72F /* NSObject+YYModel.m */; }; + EB2B23ED2E2255738EB55BA0538A395F /* QGHWDMP4OpenGLView.h in Headers */ = {isa = PBXBuildFile; fileRef = 310C4B839E1AF1CB0616FC948067B950 /* QGHWDMP4OpenGLView.h */; settings = {ATTRIBUTES = (Public, ); }; }; + EB3DF628891F7D6AB114718AF760CB2A /* UIImageView+AFNetworking.h in Headers */ = {isa = PBXBuildFile; fileRef = 75E14A26B2443DB8636F73380840454C /* UIImageView+AFNetworking.h */; settings = {ATTRIBUTES = (Public, ); }; }; + EB51356E2301A289B78569FD68BD7887 /* QCloudHTTPBodyPart.m in Sources */ = {isa = PBXBuildFile; fileRef = 02C774AEDD8E08E9846E154495C38CB6 /* QCloudHTTPBodyPart.m */; }; + EB7102F7FE7FDC2D9B6126BB9E8ABEC2 /* QCloudThreadSafeMutableDictionary.h in Headers */ = {isa = PBXBuildFile; fileRef = 94FE1C2503CF03D1C77C30D7339D20E3 /* QCloudThreadSafeMutableDictionary.h */; settings = {ATTRIBUTES = (Public, ); }; }; + EB7ADEE9F27EDF912A9C1D71B0D4A018 /* LLLocationViewController.h in Headers */ = {isa = PBXBuildFile; fileRef = E5441491448053F9814E00F743DCDEEB /* LLLocationViewController.h */; settings = {ATTRIBUTES = (Public, ); }; }; EB7C97F6A1D19BEA56A888E3B86AAD2B /* TUIC2CChatViewController_Minimalist.h in Headers */ = {isa = PBXBuildFile; fileRef = 04DEE32DAFEC80DB40214AC44BA8DCC7 /* TUIC2CChatViewController_Minimalist.h */; settings = {ATTRIBUTES = (Public, ); }; }; - EBBD659A6BB3DC330AAD88C321361940 /* LLTitleHeaderView.h in Headers */ = {isa = PBXBuildFile; fileRef = 236E454306F606C3F011D8CD029CC748 /* LLTitleHeaderView.h */; settings = {ATTRIBUTES = (Public, ); }; }; - EBC70DB5DE292712123ADC4E9869F971 /* LLNetworkImageCell.m in Sources */ = {isa = PBXBuildFile; fileRef = B13E38E110BFB6989C00FA0144504D42 /* LLNetworkImageCell.m */; }; - EBDD8CAE3EB94A4DD44BE301957EEE38 /* LyricMachine.swift in Sources */ = {isa = PBXBuildFile; fileRef = 24D3D4145CE006F07F0559089213AC63 /* LyricMachine.swift */; }; - EC279D26A1EFB495BEED39E769818DDB /* LLDetailTitleSelectorCellView.h in Headers */ = {isa = PBXBuildFile; fileRef = 02E25CDD4D2DE5A248B9E87C4DF24192 /* LLDetailTitleSelectorCellView.h */; settings = {ATTRIBUTES = (Public, ); }; }; - EC3320C2D4A399BA609E996A16556ED8 /* YYCache.h in Headers */ = {isa = PBXBuildFile; fileRef = F51C16B113C9721356EEFBC10909541D /* YYCache.h */; settings = {ATTRIBUTES = (Public, ); }; }; - EC4BB1B03B2B07AD0FBAE5C08257E0CE /* LLSandboxViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 269813640263C63AD251D28B89BEA74B /* LLSandboxViewController.m */; }; - EC8E84A8FFADDCA562A8608D141D9027 /* MJRefreshAutoGifFooter.h in Headers */ = {isa = PBXBuildFile; fileRef = 646587ECA4BBC4900149D0BDC4148DDF /* MJRefreshAutoGifFooter.h */; settings = {ATTRIBUTES = (Public, ); }; }; - EC9B34262AED632D7EFB49804337648E /* Masonry.h in Headers */ = {isa = PBXBuildFile; fileRef = 0895A25B99C036865A229F0EBFD59A17 /* Masonry.h */; settings = {ATTRIBUTES = (Public, ); }; }; - EC9B8D81AEAF11E16149869246F7D4C1 /* JXCategoryFactory.m in Sources */ = {isa = PBXBuildFile; fileRef = DEDB4EECD3C10FF0873723E9D93C2C36 /* JXCategoryFactory.m */; }; - ECA353665F9140C86D3F3660D7E85449 /* LLScreenshotPreviewViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 91C37FCE586EA4CBDAE664E8973148C6 /* LLScreenshotPreviewViewController.m */; }; - ECA96B3311A3D5220A712F46A701CFAC /* LLNetworkHelper.m in Sources */ = {isa = PBXBuildFile; fileRef = A19D671115C14C28BDBD8FA35EA47272 /* LLNetworkHelper.m */; }; - ECB913231A2A9ECB1618AC19BE9D080E /* LLCrashViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 1B3DD5FA7ADF78EBF57830D7902FBF52 /* LLCrashViewController.m */; }; - ECC6BC85943DB873215826A344A462FD /* JXCategoryIndicatorBallView.h in Headers */ = {isa = PBXBuildFile; fileRef = A8A32CD9B11823592DA39852F5A8C987 /* JXCategoryIndicatorBallView.h */; settings = {ATTRIBUTES = (Public, ); }; }; - ECEECE8C4840E0DD1B7C7273162E4BC9 /* NSNumber+YYAdd.h in Headers */ = {isa = PBXBuildFile; fileRef = 7D26F39CD7F4C4CADB3EB2810910D962 /* NSNumber+YYAdd.h */; settings = {ATTRIBUTES = (Public, ); }; }; + EBBD659A6BB3DC330AAD88C321361940 /* LLTitleHeaderView.h in Headers */ = {isa = PBXBuildFile; fileRef = 83CD502443784E2B833CE52EEE4C49F7 /* LLTitleHeaderView.h */; settings = {ATTRIBUTES = (Public, ); }; }; + EBC70DB5DE292712123ADC4E9869F971 /* LLNetworkImageCell.m in Sources */ = {isa = PBXBuildFile; fileRef = C1AC44C8FF9653AEB5DAB71D8C51CF27 /* LLNetworkImageCell.m */; }; + EBD46A09D2AF1C57BBDB00CBF7D51110 /* cost_mips_dsp_r2.c in Sources */ = {isa = PBXBuildFile; fileRef = 3792CC0CD093085EF6561256005846BD /* cost_mips_dsp_r2.c */; settings = {COMPILER_FLAGS = "-D_THREAD_SAFE -fno-objc-arc"; }; }; + EBDD8CAE3EB94A4DD44BE301957EEE38 /* LyricMachine.swift in Sources */ = {isa = PBXBuildFile; fileRef = A65B3699136AF380E291273EA83F2FFF /* LyricMachine.swift */; }; + EC279D26A1EFB495BEED39E769818DDB /* LLDetailTitleSelectorCellView.h in Headers */ = {isa = PBXBuildFile; fileRef = 4E497A4DD0D46E0E5BC8A7A83CEE12FA /* LLDetailTitleSelectorCellView.h */; settings = {ATTRIBUTES = (Public, ); }; }; + EC3320C2D4A399BA609E996A16556ED8 /* YYCache.h in Headers */ = {isa = PBXBuildFile; fileRef = AFAC75D15F34AD6C5AEA0F9C81F3B591 /* YYCache.h */; settings = {ATTRIBUTES = (Public, ); }; }; + EC4BB1B03B2B07AD0FBAE5C08257E0CE /* LLSandboxViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 76298DEA19B1C31CDB0010A7864AC119 /* LLSandboxViewController.m */; }; + EC56A2C636E183484368C9530AD96873 /* Pods-QXLiveDev-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = D879B4B770AFB9F4F0DE858C92DC7B8C /* Pods-QXLiveDev-dummy.m */; }; + EC8E84A8FFADDCA562A8608D141D9027 /* MJRefreshAutoGifFooter.h in Headers */ = {isa = PBXBuildFile; fileRef = 8FF907C8216B1C454231D7D3BAE13426 /* MJRefreshAutoGifFooter.h */; settings = {ATTRIBUTES = (Public, ); }; }; + EC9B34262AED632D7EFB49804337648E /* Masonry.h in Headers */ = {isa = PBXBuildFile; fileRef = F3ACCE4A9824FD6D2834081E621B653D /* Masonry.h */; settings = {ATTRIBUTES = (Public, ); }; }; + EC9B8D81AEAF11E16149869246F7D4C1 /* JXCategoryFactory.m in Sources */ = {isa = PBXBuildFile; fileRef = 7B8538C92E9A05B81E43BE9E127229AB /* JXCategoryFactory.m */; }; + ECA353665F9140C86D3F3660D7E85449 /* LLScreenshotPreviewViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = BAA163586BEA8551A768765B67B1AABD /* LLScreenshotPreviewViewController.m */; }; + ECA96B3311A3D5220A712F46A701CFAC /* LLNetworkHelper.m in Sources */ = {isa = PBXBuildFile; fileRef = F6FCB1F49ED9AFE79B0EA48E701E8FB1 /* LLNetworkHelper.m */; }; + ECB913231A2A9ECB1618AC19BE9D080E /* LLCrashViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 6114638680138B240CC22DF88534B37A /* LLCrashViewController.m */; }; + ECC6BC85943DB873215826A344A462FD /* JXCategoryIndicatorBallView.h in Headers */ = {isa = PBXBuildFile; fileRef = 1C4CB6C1CB8203418CDFE97C2E15EF20 /* JXCategoryIndicatorBallView.h */; settings = {ATTRIBUTES = (Public, ); }; }; + ECEECE8C4840E0DD1B7C7273162E4BC9 /* NSNumber+YYAdd.h in Headers */ = {isa = PBXBuildFile; fileRef = 971D3EE6EC1361D862EC9522FE88E5B9 /* NSNumber+YYAdd.h */; settings = {ATTRIBUTES = (Public, ); }; }; + ECFB2EBDD5D06DB5564D7AD1CBC3D94A /* QCloudUniversalPathConstants.h in Headers */ = {isa = PBXBuildFile; fileRef = 1F4A3625FFAF59432A3A92CB06415642 /* QCloudUniversalPathConstants.h */; settings = {ATTRIBUTES = (Public, ); }; }; ED011A88F915196AFF1A05F5F61FBBB9 /* TIMCommon-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 3E6EE10810E6442739526F9C8EECEB34 /* TIMCommon-dummy.m */; }; - ED0A54384DF38AFA606D1803CB0B698D /* UIViewController+LL_Utils.h in Headers */ = {isa = PBXBuildFile; fileRef = BFFA4BBB27140286D2B5B54FC2058DE7 /* UIViewController+LL_Utils.h */; settings = {ATTRIBUTES = (Public, ); }; }; - ED122D25F8E9EDF9989A11085C467908 /* cost_enc.h in Headers */ = {isa = PBXBuildFile; fileRef = A86844415CF8A5AC53565B3B024C3D83 /* cost_enc.h */; settings = {ATTRIBUTES = (Project, ); }; }; - ED17984517468C0451A219F5B4CE8684 /* OSSLog.h in Headers */ = {isa = PBXBuildFile; fileRef = 42AC661BE5571A5ABC9A381FB2821036 /* OSSLog.h */; settings = {ATTRIBUTES = (Public, ); }; }; + ED0A54384DF38AFA606D1803CB0B698D /* UIViewController+LL_Utils.h in Headers */ = {isa = PBXBuildFile; fileRef = 95C14D9A7910CDEB22F772FEE9354C42 /* UIViewController+LL_Utils.h */; settings = {ATTRIBUTES = (Public, ); }; }; + ED17984517468C0451A219F5B4CE8684 /* OSSLog.h in Headers */ = {isa = PBXBuildFile; fileRef = 7B50A7E8DA5B74A5B380E5D6A332CF25 /* OSSLog.h */; settings = {ATTRIBUTES = (Public, ); }; }; ED492DE23ABD6F9D341C369988E82513 /* TUITextView.m in Sources */ = {isa = PBXBuildFile; fileRef = 8FAC875D7E5664C15E339C08A8BF6809 /* TUITextView.m */; }; - ED51021055EDE963F1D7A2379E310741 /* SDWebImageOperation.h in Headers */ = {isa = PBXBuildFile; fileRef = 2BBBFAFD7BAFB4C0BE7B296FE348C700 /* SDWebImageOperation.h */; settings = {ATTRIBUTES = (Public, ); }; }; - ED5ED77D9BD48798DCA60CBA7EFFADC6 /* TUICore.m in Sources */ = {isa = PBXBuildFile; fileRef = BC904AEED689EF7B62DCF1FD5CE9ED43 /* TUICore.m */; }; - ED7CB6EC6CFC9EE6F928AF112503FC88 /* near_lossless_enc.c in Sources */ = {isa = PBXBuildFile; fileRef = 2009E7DCD0A87C3894AD0DAFE1F314DE /* near_lossless_enc.c */; settings = {COMPILER_FLAGS = "-D_THREAD_SAFE -fno-objc-arc"; }; }; - ED8991A8AE7C04362C2BED3875DC1656 /* AFURLResponseSerialization.m in Sources */ = {isa = PBXBuildFile; fileRef = C1FD454982C6045A59169F375F219F74 /* AFURLResponseSerialization.m */; }; - ED9DC266977F10C47FC18E466C231ADD /* SDCycleScrollView.m in Sources */ = {isa = PBXBuildFile; fileRef = BB3FC9FA77CAA4B5A047F3F0B67AF17D /* SDCycleScrollView.m */; }; - EE06365D1F798C365FB7F8C681EF8D2B /* NSImage+Compatibility.h in Headers */ = {isa = PBXBuildFile; fileRef = B1314C678FDD08FC0976C143FFB19582 /* NSImage+Compatibility.h */; settings = {ATTRIBUTES = (Public, ); }; }; - EE101918DFCDC1D6728BF910DB5AF29A /* JXPagerView.m in Sources */ = {isa = PBXBuildFile; fileRef = 552BD4E3F2F0D02D6D0825D0090BFECD /* JXPagerView.m */; }; - EE10C76FBA6A727B7329614390FCEF2F /* LLCrashHelper.m in Sources */ = {isa = PBXBuildFile; fileRef = CB434051D64FC3A94D524A8D4E99569A /* LLCrashHelper.m */; }; + ED8991A8AE7C04362C2BED3875DC1656 /* AFURLResponseSerialization.m in Sources */ = {isa = PBXBuildFile; fileRef = 204C3DF99C0FD906CB57AC328EA4A0DE /* AFURLResponseSerialization.m */; }; + ED9D42B2930C719E5024B52682ED0789 /* SDDisplayLink.m in Sources */ = {isa = PBXBuildFile; fileRef = 3FB04540F536CE9A17AEAFC02540303E /* SDDisplayLink.m */; }; + ED9DC266977F10C47FC18E466C231ADD /* SDCycleScrollView.m in Sources */ = {isa = PBXBuildFile; fileRef = 7DA03579B3320963B3E23FE8F282C770 /* SDCycleScrollView.m */; }; + EE101918DFCDC1D6728BF910DB5AF29A /* JXPagerView.m in Sources */ = {isa = PBXBuildFile; fileRef = FB254EB4AE400CA7010D8F4D0A3438E5 /* JXPagerView.m */; }; + EE10C76FBA6A727B7329614390FCEF2F /* LLCrashHelper.m in Sources */ = {isa = PBXBuildFile; fileRef = FC88BE1927B5B72263E7CBC43989CED3 /* LLCrashHelper.m */; }; + EE25B4D305D1DB3AB90F651027308F63 /* QCloudPutObjectRequest.m in Sources */ = {isa = PBXBuildFile; fileRef = 79FE46DF0519B7BC0F843EA1B149D909 /* QCloudPutObjectRequest.m */; }; EE3EE745A8135DEDB576BD208BB6B67B /* TUIMessageReadViewController_Minimalist.m in Sources */ = {isa = PBXBuildFile; fileRef = 8732D2115A680F216A765369AA41277E /* TUIMessageReadViewController_Minimalist.m */; }; - EE40E4B8B23D11ED6A395006C7EE8D76 /* TZVideoPlayerController.h in Headers */ = {isa = PBXBuildFile; fileRef = 78E3DC27915BE74A4C155D9D4085E14A /* TZVideoPlayerController.h */; settings = {ATTRIBUTES = (Public, ); }; }; - EE4F7B791F4F27235368566F2E7B3705 /* LLRouter+Screenshot.m in Sources */ = {isa = PBXBuildFile; fileRef = 7D3C30217CE5E60BD3244C7C67251778 /* LLRouter+Screenshot.m */; }; - EE6E8FE636D2C02E3D2FC1E8555B4612 /* MJRefreshNormalHeader.h in Headers */ = {isa = PBXBuildFile; fileRef = 23D0835721B014D08CBD12E57CCDCE15 /* MJRefreshNormalHeader.h */; settings = {ATTRIBUTES = (Public, ); }; }; - EE782EF3F3AF6CC8705E638B9CB20E3E /* UIView+TUIToast.h in Headers */ = {isa = PBXBuildFile; fileRef = 571F3B6AC50B0F54672B1002F50CA2B8 /* UIView+TUIToast.h */; settings = {ATTRIBUTES = (Public, ); }; }; + EE40E4B8B23D11ED6A395006C7EE8D76 /* TZVideoPlayerController.h in Headers */ = {isa = PBXBuildFile; fileRef = 497E462742C80F125C25E5968C7986D1 /* TZVideoPlayerController.h */; settings = {ATTRIBUTES = (Public, ); }; }; + EE4F7B791F4F27235368566F2E7B3705 /* LLRouter+Screenshot.m in Sources */ = {isa = PBXBuildFile; fileRef = F3C26B5FE38E1E91BCCB9B5BE6270886 /* LLRouter+Screenshot.m */; }; + EE6E8FE636D2C02E3D2FC1E8555B4612 /* MJRefreshNormalHeader.h in Headers */ = {isa = PBXBuildFile; fileRef = 583D558EA52ECDDA31F861C4C7A7D402 /* MJRefreshNormalHeader.h */; settings = {ATTRIBUTES = (Public, ); }; }; EE7E1FF57245172803DF2C8570F8D5BB /* TUIVideoReplyQuoteViewData.m in Sources */ = {isa = PBXBuildFile; fileRef = DF5AA3E0ECB4B0811D896E8411906383 /* TUIVideoReplyQuoteViewData.m */; }; - EE89C4BB85C9FC0B9C01BF479ADD9769 /* NSHTTPURLResponse+LL_Network.h in Headers */ = {isa = PBXBuildFile; fileRef = 29272B13145F66FADEAB7CDBFBFE245A /* NSHTTPURLResponse+LL_Network.h */; settings = {ATTRIBUTES = (Public, ); }; }; - EE9F153A902A6F096CD2514A5169AA7D /* alphai_dec.h in Headers */ = {isa = PBXBuildFile; fileRef = 0A7CDDBA8880F80FD104AFB2642BF97F /* alphai_dec.h */; settings = {ATTRIBUTES = (Project, ); }; }; - EEC9DD1DD8BF3E3B26F112BF4549B6E2 /* UIImage+MemoryCacheCost.m in Sources */ = {isa = PBXBuildFile; fileRef = 6A2C6983B49B886DD6BF6A0B85E0B98C /* UIImage+MemoryCacheCost.m */; }; - EED835481A379B6E6D4FD900673BAE37 /* LLScreenshotComponent.h in Headers */ = {isa = PBXBuildFile; fileRef = EABD8B32D67DA62EA7FAB53F75BA340C /* LLScreenshotComponent.h */; settings = {ATTRIBUTES = (Public, ); }; }; - EEF0BF7E53148EB20BED242061BDC5ED /* JXCategoryTitleVerticalZoomView.m in Sources */ = {isa = PBXBuildFile; fileRef = AE81EE30D65E00E270693FAEB2AD269C /* JXCategoryTitleVerticalZoomView.m */; }; - EEF1B964770FF54D45DCE7660234CE70 /* NSString+TUIUtil.h in Headers */ = {isa = PBXBuildFile; fileRef = 7C1FA8898FB04920C5245AF177B91318 /* NSString+TUIUtil.h */; settings = {ATTRIBUTES = (Public, ); }; }; - EEFA3E7BE17BDAB079806CB0A26F55E5 /* NSNotificationCenter+VAPThreadSafe.h in Headers */ = {isa = PBXBuildFile; fileRef = 37BF15A3289527A730A18B0FF3B92BD3 /* NSNotificationCenter+VAPThreadSafe.h */; settings = {ATTRIBUTES = (Public, ); }; }; - EF02C3B560987E0739D535762FB15668 /* LLRulerPickerInfoView.m in Sources */ = {isa = PBXBuildFile; fileRef = 7BD65414F9161E090DAD5B80CE95692E /* LLRulerPickerInfoView.m */; }; - EF1D89EA39681A9224121AB18A4A8FDC /* LLHierarchyWindow.m in Sources */ = {isa = PBXBuildFile; fileRef = F51747FBA8E81534E5E9116C185D4531 /* LLHierarchyWindow.m */; }; - EF36953C899CBCFA082A4CED396810EB /* OSSModel.m in Sources */ = {isa = PBXBuildFile; fileRef = 5AFA83370A44F6C536769BF9E3788178 /* OSSModel.m */; }; - EF6933E6A4CD219E6E53B814E7E249F2 /* LLFunctionViewController.h in Headers */ = {isa = PBXBuildFile; fileRef = C2E9BB13621732B9FC1435AA09D12A46 /* LLFunctionViewController.h */; settings = {ATTRIBUTES = (Public, ); }; }; - EF6EC11B4F1200D913F25B100C8757BB /* LLBaseViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 11AF117707A1AA185C68872653884BE0 /* LLBaseViewController.m */; }; - EFF7C575DA2BCEF08D63FBCA667DADD5 /* Protobuf-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 225B9D19B39419A86C8B3D9105211FA3 /* Protobuf-dummy.m */; }; - F015E85CB0A39CBD6861306037AF6573 /* TZLocationManager.m in Sources */ = {isa = PBXBuildFile; fileRef = FA41BE13BA7829AC9DC545A26853A7D1 /* TZLocationManager.m */; }; - F01A247E708519104DF39CCD1BDCF3D8 /* TZPhotoPreviewController.m in Sources */ = {isa = PBXBuildFile; fileRef = D35408311B57D25B8EC7D4E521EA80D7 /* TZPhotoPreviewController.m */; }; - F020B9388949EB094D51AF361BB3F5A9 /* QGBaseDecoder.h in Headers */ = {isa = PBXBuildFile; fileRef = 64550E746282A75645D9947E7ACF3C60 /* QGBaseDecoder.h */; settings = {ATTRIBUTES = (Public, ); }; }; - F03DF28D16FBA4D15545844A75AC96BF /* muxi.h in Headers */ = {isa = PBXBuildFile; fileRef = 07E4938D682DFDF7C5305E3A9D02AF63 /* muxi.h */; settings = {ATTRIBUTES = (Project, ); }; }; - F07D340DEDD5F2378761E235B3963348 /* IQUITextFieldView+Additions.h in Headers */ = {isa = PBXBuildFile; fileRef = C007B24BBDAED66926E8B22A398FE52D /* IQUITextFieldView+Additions.h */; settings = {ATTRIBUTES = (Public, ); }; }; - F0C9E3E89D63ED48636FD99FEC617E51 /* QGVAPWrapView.m in Sources */ = {isa = PBXBuildFile; fileRef = 8CB783AC0E6DB2074907F3CB9BA56574 /* QGVAPWrapView.m */; }; + EE89C4BB85C9FC0B9C01BF479ADD9769 /* NSHTTPURLResponse+LL_Network.h in Headers */ = {isa = PBXBuildFile; fileRef = 2F1F9AAFED55796FC0D703387BD54857 /* NSHTTPURLResponse+LL_Network.h */; settings = {ATTRIBUTES = (Public, ); }; }; + EECAAE038AE8AA2F6025F7433EC5AB75 /* Minizip.h in Headers */ = {isa = PBXBuildFile; fileRef = F0DF13AE6AA0FAE9BB59FDD5F4A6F9AF /* Minizip.h */; settings = {ATTRIBUTES = (Project, ); }; }; + EED50F1A1A7B63A59CC1282D44F6F002 /* huffman_encode_utils.c in Sources */ = {isa = PBXBuildFile; fileRef = 0B9E532883452012C95B2BF6FD077FF9 /* huffman_encode_utils.c */; settings = {COMPILER_FLAGS = "-D_THREAD_SAFE -fno-objc-arc"; }; }; + EED835481A379B6E6D4FD900673BAE37 /* LLScreenshotComponent.h in Headers */ = {isa = PBXBuildFile; fileRef = 6B4C74B4499DA0C6DB49B3B55272D4BB /* LLScreenshotComponent.h */; settings = {ATTRIBUTES = (Public, ); }; }; + EEE1520B078C0324661D921CD09ED5CA /* QCloudMultipartUploadOwner.m in Sources */ = {isa = PBXBuildFile; fileRef = 1B01B009C9C7D3274074627D95807B53 /* QCloudMultipartUploadOwner.m */; }; + EEF0BF7E53148EB20BED242061BDC5ED /* JXCategoryTitleVerticalZoomView.m in Sources */ = {isa = PBXBuildFile; fileRef = CF41A05EADB663B1410C03EDE0207D4F /* JXCategoryTitleVerticalZoomView.m */; }; + EEFA3E7BE17BDAB079806CB0A26F55E5 /* NSNotificationCenter+VAPThreadSafe.h in Headers */ = {isa = PBXBuildFile; fileRef = 3CCEE7FC2F9AFDB27D8705E4B260814C /* NSNotificationCenter+VAPThreadSafe.h */; settings = {ATTRIBUTES = (Public, ); }; }; + EF02C3B560987E0739D535762FB15668 /* LLRulerPickerInfoView.m in Sources */ = {isa = PBXBuildFile; fileRef = A465273CA4937B252DFCEF9FE85DA721 /* LLRulerPickerInfoView.m */; }; + EF0D3A3BDDCD147B529637209714908E /* rescaler.c in Sources */ = {isa = PBXBuildFile; fileRef = ED69B92666F6F0383AFED29E18C4261A /* rescaler.c */; settings = {COMPILER_FLAGS = "-D_THREAD_SAFE -fno-objc-arc"; }; }; + EF1D89EA39681A9224121AB18A4A8FDC /* LLHierarchyWindow.m in Sources */ = {isa = PBXBuildFile; fileRef = E36A5330493A24254E2ACD21ED5B6F71 /* LLHierarchyWindow.m */; }; + EF36953C899CBCFA082A4CED396810EB /* OSSModel.m in Sources */ = {isa = PBXBuildFile; fileRef = 872092720724CD156A786F236C00CAEB /* OSSModel.m */; }; + EF6933E6A4CD219E6E53B814E7E249F2 /* LLFunctionViewController.h in Headers */ = {isa = PBXBuildFile; fileRef = E03C7149C55FD86B18A2199051445ED5 /* LLFunctionViewController.h */; settings = {ATTRIBUTES = (Public, ); }; }; + EF6EC11B4F1200D913F25B100C8757BB /* LLBaseViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 14AF95B74F7BC3A01173E51DA5FF80FA /* LLBaseViewController.m */; }; + EF9DFC4A31BAC474A118F275D849A8E8 /* SDWebImage-SDWebImage in Resources */ = {isa = PBXBuildFile; fileRef = CF1281E58AA1045D4B7F33FC56691C42 /* SDWebImage-SDWebImage */; }; + EFC576705CBF094E2A483BDF0840429B /* YYImage.h in Headers */ = {isa = PBXBuildFile; fileRef = F04970F3062613CE53F3F40284480EAE /* YYImage.h */; settings = {ATTRIBUTES = (Public, ); }; }; + EFF7C575DA2BCEF08D63FBCA667DADD5 /* Protobuf-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 5DB62198D391E68703BA2846D5C2CCF7 /* Protobuf-dummy.m */; }; + F00CED9556AF712A0B73938228F91D0B /* QCloudFileZipper.h in Headers */ = {isa = PBXBuildFile; fileRef = 0789DEFD618507613CFEF78AC06D3527 /* QCloudFileZipper.h */; settings = {ATTRIBUTES = (Public, ); }; }; + F015E85CB0A39CBD6861306037AF6573 /* TZLocationManager.m in Sources */ = {isa = PBXBuildFile; fileRef = 5A6AE4D05DFEDE5863D2A5FFA43F75F3 /* TZLocationManager.m */; }; + F01A247E708519104DF39CCD1BDCF3D8 /* TZPhotoPreviewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 765783176C474AD8B7B9B46B80ABA9DD /* TZPhotoPreviewController.m */; }; + F01FFA48FF6030D9888F00E322D01FC6 /* SDWebImageCacheKeyFilter.h in Headers */ = {isa = PBXBuildFile; fileRef = 9AEA63AD0F5D203B883FE2860A36BF94 /* SDWebImageCacheKeyFilter.h */; settings = {ATTRIBUTES = (Public, ); }; }; + F020B9388949EB094D51AF361BB3F5A9 /* QGBaseDecoder.h in Headers */ = {isa = PBXBuildFile; fileRef = B2431DF859493CECA1608DFE5282B2DA /* QGBaseDecoder.h */; settings = {ATTRIBUTES = (Public, ); }; }; + F07D340DEDD5F2378761E235B3963348 /* IQUITextFieldView+Additions.h in Headers */ = {isa = PBXBuildFile; fileRef = F76842447A11E448C72A86F465DD0526 /* IQUITextFieldView+Additions.h */; settings = {ATTRIBUTES = (Public, ); }; }; + F09C19B42A1AB6D5C70CDBF95DBB4557 /* bit_writer_utils.h in Headers */ = {isa = PBXBuildFile; fileRef = A918DC96BFCF495952F2BEC35A02F70A /* bit_writer_utils.h */; settings = {ATTRIBUTES = (Project, ); }; }; + F0C9E3E89D63ED48636FD99FEC617E51 /* QGVAPWrapView.m in Sources */ = {isa = PBXBuildFile; fileRef = BD802461011BF0D3BB86E9C8CB90F549 /* QGVAPWrapView.m */; }; + F0D692D34694E2F94D6BBC8C2E5F724A /* SDImageCacheDefine.m in Sources */ = {isa = PBXBuildFile; fileRef = 8EB95657DE06379818EEFDF02FC742BC /* SDImageCacheDefine.m */; }; + F0EC049344959BA51A956B69F34C8DE7 /* UIDevice+QCloudFCUUID.h in Headers */ = {isa = PBXBuildFile; fileRef = 267390C4651B684FCA9BB8A2E9BD7DC5 /* UIDevice+QCloudFCUUID.h */; settings = {ATTRIBUTES = (Public, ); }; }; + F0EC2840D29CF34032070BBF07CA3020 /* SDImageTransformer.m in Sources */ = {isa = PBXBuildFile; fileRef = FC4E8FE35DCD38D7A7E1980DCBAA4BFB /* SDImageTransformer.m */; }; F0F38ED35A3FCB9BD1CB3A489F5E026B /* TUIGroupChatViewController_Minimalist.h in Headers */ = {isa = PBXBuildFile; fileRef = 71FAEBBCE1C4B025E6986DD863B7CBDE /* TUIGroupChatViewController_Minimalist.h */; settings = {ATTRIBUTES = (Public, ); }; }; - F0F8EE59EDB86336E29CCA58CA100EDE /* IQKeyboardManager.h in Headers */ = {isa = PBXBuildFile; fileRef = EA8772B0615DCC38C15FD2F5498E6157 /* IQKeyboardManager.h */; settings = {ATTRIBUTES = (Public, ); }; }; - F10ABB19AD2F8969CBA2F11027F8A61C /* UIDevice+YYAdd.h in Headers */ = {isa = PBXBuildFile; fileRef = 68D67C8CC4931410597FAA7E49944CA1 /* UIDevice+YYAdd.h */; settings = {ATTRIBUTES = (Public, ); }; }; - F1108DE1AB588C74E8AFAABC92E9B90C /* YBImageBrowserVideo.bundle in Resources */ = {isa = PBXBuildFile; fileRef = 2C9DD974DC481EEB90952278C12219CA /* YBImageBrowserVideo.bundle */; }; + F0F8EE59EDB86336E29CCA58CA100EDE /* IQKeyboardManager.h in Headers */ = {isa = PBXBuildFile; fileRef = DAA7897567BF3CAB80459FD302C7EB55 /* IQKeyboardManager.h */; settings = {ATTRIBUTES = (Public, ); }; }; + F10ABB19AD2F8969CBA2F11027F8A61C /* UIDevice+YYAdd.h in Headers */ = {isa = PBXBuildFile; fileRef = 66542E4E3D3B005611727F8A41CF09AA /* UIDevice+YYAdd.h */; settings = {ATTRIBUTES = (Public, ); }; }; + F1108DE1AB588C74E8AFAABC92E9B90C /* YBImageBrowserVideo.bundle in Resources */ = {isa = PBXBuildFile; fileRef = 47244846055B1984C8720B09D4E682B8 /* YBImageBrowserVideo.bundle */; }; F1186C00583AE50374A87857FFD0674E /* Photos.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = E9FD69164CED3C5424496E386AA5CA8E /* Photos.framework */; }; - F123B1150C9E10A34B49E594AC636214 /* rescaler_mips_dsp_r2.c in Sources */ = {isa = PBXBuildFile; fileRef = 92AFF723617B418648CD0C40EF61B5A4 /* rescaler_mips_dsp_r2.c */; settings = {COMPILER_FLAGS = "-D_THREAD_SAFE -fno-objc-arc"; }; }; - F1454467D8C33378127057476591C1AF /* RACDynamicSequence.m in Sources */ = {isa = PBXBuildFile; fileRef = D8395E20A97D710813876BFD2FF6958F /* RACDynamicSequence.m */; }; - F168226C444665783606189A18B21B63 /* muxread.c in Sources */ = {isa = PBXBuildFile; fileRef = 3556F02ACB3F57E398FEDC3AFE44F82A /* muxread.c */; settings = {COMPILER_FLAGS = "-D_THREAD_SAFE -fno-objc-arc"; }; }; - F16C8BA7E4A4437A94F1AF2C506BA33F /* LLLocationComponent.h in Headers */ = {isa = PBXBuildFile; fileRef = D3CEC09ABA681A31757D676664810F09 /* LLLocationComponent.h */; settings = {ATTRIBUTES = (Public, ); }; }; - F1716A3BB7952321EEA14919A3606EE2 /* LLRulerPickerView.m in Sources */ = {isa = PBXBuildFile; fileRef = 6823CB3D85EB4B1D66AA03F787EE9139 /* LLRulerPickerView.m */; }; + F12F5AD177B73B1DD32A87EE8B671C21 /* QCloudUniversalFixedPath.h in Headers */ = {isa = PBXBuildFile; fileRef = CC2D2EDAB4A2C221C27E81E92C902F3E /* QCloudUniversalFixedPath.h */; settings = {ATTRIBUTES = (Public, ); }; }; + F1454467D8C33378127057476591C1AF /* RACDynamicSequence.m in Sources */ = {isa = PBXBuildFile; fileRef = B82A0D7E1A5BEAAB36593700CD9789D1 /* RACDynamicSequence.m */; }; + F16C8BA7E4A4437A94F1AF2C506BA33F /* LLLocationComponent.h in Headers */ = {isa = PBXBuildFile; fileRef = 5FA8A9238F9D0428F04C1A12C4A2537A /* LLLocationComponent.h */; settings = {ATTRIBUTES = (Public, ); }; }; + F1716A3BB7952321EEA14919A3606EE2 /* LLRulerPickerView.m in Sources */ = {isa = PBXBuildFile; fileRef = A526B70077C822C241012C9A03910FD9 /* LLRulerPickerView.m */; }; F18504F8E958FB0C620BC9605A5E8C4D /* TUIMessageCellConfig_Minimalist.h in Headers */ = {isa = PBXBuildFile; fileRef = E02CFB5301EC9DA1992F848D281AF6DA /* TUIMessageCellConfig_Minimalist.h */; settings = {ATTRIBUTES = (Public, ); }; }; - F18AB133D2D0F40618D0A4C87D3AF0BF /* RACBlockTrampoline.h in Headers */ = {isa = PBXBuildFile; fileRef = E141AB38DD124405E4BED436DAA10A7C /* RACBlockTrampoline.h */; settings = {ATTRIBUTES = (Public, ); }; }; - F19975303A126195F8FCCF09361CE669 /* GPBMessage_PackagePrivate.h in Headers */ = {isa = PBXBuildFile; fileRef = 0612460241DF4F2D09733683492856D4 /* GPBMessage_PackagePrivate.h */; settings = {ATTRIBUTES = (Public, ); }; }; - F19D77978F7E75BA6DD6FD7085161A4F /* picture_psnr_enc.c in Sources */ = {isa = PBXBuildFile; fileRef = F5E0D7CFA90F41B7E780E830B75C583F /* picture_psnr_enc.c */; settings = {COMPILER_FLAGS = "-D_THREAD_SAFE -fno-objc-arc"; }; }; - F1ABB5428A1CCF2EAC42A4C3B388F25D /* JXCategoryIndicatorView.h in Headers */ = {isa = PBXBuildFile; fileRef = 3EA6D898EDE093F327BE43FE2CAEC65E /* JXCategoryIndicatorView.h */; settings = {ATTRIBUTES = (Public, ); }; }; - F1D845E22D5B8FC6AFC3C2E41DA1B6DF /* AFNetworkReachabilityManager.h in Headers */ = {isa = PBXBuildFile; fileRef = DDB90E2C4DAA237C032EAC3501E58AF4 /* AFNetworkReachabilityManager.h */; settings = {ATTRIBUTES = (Public, ); }; }; + F18AB133D2D0F40618D0A4C87D3AF0BF /* RACBlockTrampoline.h in Headers */ = {isa = PBXBuildFile; fileRef = 51207D900C7949AD27AD35C6196E76CC /* RACBlockTrampoline.h */; settings = {ATTRIBUTES = (Public, ); }; }; + F19975303A126195F8FCCF09361CE669 /* GPBMessage_PackagePrivate.h in Headers */ = {isa = PBXBuildFile; fileRef = 121C28411A592719BA15879F48FCD54D /* GPBMessage_PackagePrivate.h */; settings = {ATTRIBUTES = (Public, ); }; }; + F1ABB5428A1CCF2EAC42A4C3B388F25D /* JXCategoryIndicatorView.h in Headers */ = {isa = PBXBuildFile; fileRef = 4132B15C9DAEF46D37E2C2A2CDC99A07 /* JXCategoryIndicatorView.h */; settings = {ATTRIBUTES = (Public, ); }; }; + F1D845E22D5B8FC6AFC3C2E41DA1B6DF /* AFNetworkReachabilityManager.h in Headers */ = {isa = PBXBuildFile; fileRef = 517A1DE40F6000369B30F813F8475AA5 /* AFNetworkReachabilityManager.h */; settings = {ATTRIBUTES = (Public, ); }; }; F1F38F735A20D279483A41471006CFB8 /* TUIFaceView.m in Sources */ = {isa = PBXBuildFile; fileRef = 99658E8DD4623D50FA4011BCDDADB02D /* TUIFaceView.m */; }; - F1F65C6BC104AEE9121DEE1CDC605AC4 /* SDAnimatedImageRep.h in Headers */ = {isa = PBXBuildFile; fileRef = CBFD4731301BA34D2EEC9562547D3752 /* SDAnimatedImageRep.h */; settings = {ATTRIBUTES = (Public, ); }; }; F2034DD73A0894AA9C633E4881E2A496 /* TUISecurityStrikeView.m in Sources */ = {isa = PBXBuildFile; fileRef = 69A1B8F792923569AD0D9E638DE015D8 /* TUISecurityStrikeView.m */; }; F20A49A8261C60FED5A1023D85116909 /* TUIC2CChatViewController_Minimalist.m in Sources */ = {isa = PBXBuildFile; fileRef = F65B7539720919DF74D8EAEA5FDFABFA /* TUIC2CChatViewController_Minimalist.m */; }; - F2115E35D122B4389E12431231CF0703 /* NSObject+AvoidCrash.m in Sources */ = {isa = PBXBuildFile; fileRef = 59BEC91DC693BB063B65D324ED1A36F1 /* NSObject+AvoidCrash.m */; }; - F218070C3C2C07D5DBC8AE88D02662F1 /* OSSV4Signer.h in Headers */ = {isa = PBXBuildFile; fileRef = 5465D9B9F5D0C6F06DA6C7F85202E8B0 /* OSSV4Signer.h */; settings = {ATTRIBUTES = (Public, ); }; }; - F245796A726ADC3B346F21F1D3FAF16F /* NSKeyedUnarchiver+YYAdd.h in Headers */ = {isa = PBXBuildFile; fileRef = 5F34701B6997BFB8393C6D4EAC90CC73 /* NSKeyedUnarchiver+YYAdd.h */; settings = {ATTRIBUTES = (Public, ); }; }; - F24E4DA6659061237424A876461039FC /* YBIBSheetView.h in Headers */ = {isa = PBXBuildFile; fileRef = 43C737B86D6630A0E0854C7FEAE59957 /* YBIBSheetView.h */; settings = {ATTRIBUTES = (Public, ); }; }; - F259910B0A55A9349FD241768AB4AD8A /* BRAddressPickerView.m in Sources */ = {isa = PBXBuildFile; fileRef = 44ABEF56F2F498C888A0FEC93C707794 /* BRAddressPickerView.m */; }; - F295E7DAC2C1C9E3E8911479500BE5A0 /* QGAnimatedImageDecodeThread.h in Headers */ = {isa = PBXBuildFile; fileRef = E950D4D78D1BA96B9E435CE95D92DC20 /* QGAnimatedImageDecodeThread.h */; settings = {ATTRIBUTES = (Public, ); }; }; - F2AD91050B1FE3C8BC78567F1FDE3ED5 /* AFURLResponseSerialization.h in Headers */ = {isa = PBXBuildFile; fileRef = 632E0BB55069E906C587C0395E619E35 /* AFURLResponseSerialization.h */; settings = {ATTRIBUTES = (Public, ); }; }; - F2C9F9038FBEFD951516694AE873A2B9 /* MBProgressHUD.h in Headers */ = {isa = PBXBuildFile; fileRef = 7016207545611B1E0384784787BF09CD /* MBProgressHUD.h */; settings = {ATTRIBUTES = (Public, ); }; }; + F2115E35D122B4389E12431231CF0703 /* NSObject+AvoidCrash.m in Sources */ = {isa = PBXBuildFile; fileRef = D76E15FD8E9D624B6128AF88E737B6B5 /* NSObject+AvoidCrash.m */; }; + F218070C3C2C07D5DBC8AE88D02662F1 /* OSSV4Signer.h in Headers */ = {isa = PBXBuildFile; fileRef = 6E6E8D73033CB0139EAB9E7B7B48B1FD /* OSSV4Signer.h */; settings = {ATTRIBUTES = (Public, ); }; }; + F245796A726ADC3B346F21F1D3FAF16F /* NSKeyedUnarchiver+YYAdd.h in Headers */ = {isa = PBXBuildFile; fileRef = 4A244D0771AADA020A6977E7310CDB0B /* NSKeyedUnarchiver+YYAdd.h */; settings = {ATTRIBUTES = (Public, ); }; }; + F24E4DA6659061237424A876461039FC /* YBIBSheetView.h in Headers */ = {isa = PBXBuildFile; fileRef = F904CF4CD5F6A789799C4C2865B463BE /* YBIBSheetView.h */; settings = {ATTRIBUTES = (Public, ); }; }; + F259910B0A55A9349FD241768AB4AD8A /* BRAddressPickerView.m in Sources */ = {isa = PBXBuildFile; fileRef = A3D03B1399AC3BE7304423BFD9C56A30 /* BRAddressPickerView.m */; }; + F27A1770FE0B3EFCC00419ECD21190E0 /* QCloudSimplePing.m in Sources */ = {isa = PBXBuildFile; fileRef = 87FE1F20266F2FF2C15BBADA95BA93F9 /* QCloudSimplePing.m */; }; + F27E5677CA11FFD90565566F4DA7AEA1 /* SDWebImageError.h in Headers */ = {isa = PBXBuildFile; fileRef = 095150C2759A526C892A2B6132FCBEE9 /* SDWebImageError.h */; settings = {ATTRIBUTES = (Public, ); }; }; + F295E7DAC2C1C9E3E8911479500BE5A0 /* QGAnimatedImageDecodeThread.h in Headers */ = {isa = PBXBuildFile; fileRef = C5FBE2A2DE1912B40BC887678504DBBD /* QGAnimatedImageDecodeThread.h */; settings = {ATTRIBUTES = (Public, ); }; }; + F2AD91050B1FE3C8BC78567F1FDE3ED5 /* AFURLResponseSerialization.h in Headers */ = {isa = PBXBuildFile; fileRef = 68554F7E465557315380CB171D09D0E7 /* AFURLResponseSerialization.h */; settings = {ATTRIBUTES = (Public, ); }; }; + F2B8677DF24EDA65C239AFE2496C36B1 /* QCloudCredential.m in Sources */ = {isa = PBXBuildFile; fileRef = 3D6F7385C05D83E3F9FF3CC073E76B8D /* QCloudCredential.m */; }; + F2C9F9038FBEFD951516694AE873A2B9 /* MBProgressHUD.h in Headers */ = {isa = PBXBuildFile; fileRef = 746FE5E7F1A4103C529B9A947F4C4163 /* MBProgressHUD.h */; settings = {ATTRIBUTES = (Public, ); }; }; F2D9EF01629459D30264AC9CA0052882 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = F91075A92425F75F02E0E1C8D455AF79 /* Foundation.framework */; }; - F2DAC1DEF200EB8CBBF570272D86CA51 /* NSInvocation+RACTypeParsing.m in Sources */ = {isa = PBXBuildFile; fileRef = F822496FFAF9B7B6D982527883BC6117 /* NSInvocation+RACTypeParsing.m */; }; + F2DAC1DEF200EB8CBBF570272D86CA51 /* NSInvocation+RACTypeParsing.m in Sources */ = {isa = PBXBuildFile; fileRef = FF45AD9CA889C84D2B448F3E852058C1 /* NSInvocation+RACTypeParsing.m */; }; F2EB10CE12A925FC59386AE0DDC49481 /* TUIFoldConversationListDataProvider_Minimalist.m in Sources */ = {isa = PBXBuildFile; fileRef = 3FF168039C7F53A9CF459756C932BB7F /* TUIFoldConversationListDataProvider_Minimalist.m */; }; - F2EF43DEDF5D8BAA926C33DACB402AA7 /* UIImage+Transform.h in Headers */ = {isa = PBXBuildFile; fileRef = 0726377073C33B2E23DB3E823F8E20F8 /* UIImage+Transform.h */; settings = {ATTRIBUTES = (Public, ); }; }; + F2F63743F33EC060BE27306FB8218E62 /* QCloudFileUtils.h in Headers */ = {isa = PBXBuildFile; fileRef = A5A4DEA77CFABE5F22D7697BEB044ABD /* QCloudFileUtils.h */; settings = {ATTRIBUTES = (Public, ); }; }; F30045D5668E548EE420BB650C5DCDC6 /* TUIChatBaseDataProvider.m in Sources */ = {isa = PBXBuildFile; fileRef = 581E267CB7FF32511BF6C9892BE79D26 /* TUIChatBaseDataProvider.m */; }; + F321BB2CC17C06BAE8B8E4ADEFB3CAF6 /* tree_dec.c in Sources */ = {isa = PBXBuildFile; fileRef = 36BD4259AA7F4658875BDD457F270C24 /* tree_dec.c */; settings = {COMPILER_FLAGS = "-D_THREAD_SAFE -fno-objc-arc"; }; }; + F33976F198574EE625CBDCB0ADDDAF4A /* QCloudMultipartUploadPart.h in Headers */ = {isa = PBXBuildFile; fileRef = 2E1E07AA41596A16AD4EEF079BC88CC2 /* QCloudMultipartUploadPart.h */; settings = {ATTRIBUTES = (Public, ); }; }; F33E325145FABBBC2F1FB825A0BA5ED1 /* TUIChatObjectFactory_Minimalist.m in Sources */ = {isa = PBXBuildFile; fileRef = 148EFBAE4D6B4B17FA9BC9B952DF5C3F /* TUIChatObjectFactory_Minimalist.m */; }; - F341B1F0FEDE67D2DB40B5C5D854DA8A /* RACEvent.m in Sources */ = {isa = PBXBuildFile; fileRef = C518C80567153AE3BF076BB749A472CB /* RACEvent.m */; }; - F3604694FDE5476E5AA37DFDB131C7C8 /* NSNotificationCenter+RACSupport.m in Sources */ = {isa = PBXBuildFile; fileRef = 74EC94175729818B4BE8B5EF94BB256E /* NSNotificationCenter+RACSupport.m */; }; - F38ECDACE09F8DEBBDFDCB9897795E54 /* YBIBImageLayout.m in Sources */ = {isa = PBXBuildFile; fileRef = 73348A5BE5D65F1CA2B14253B1F29263 /* YBIBImageLayout.m */; }; - F396B0371570F876F8D7DE3EEA8C181D /* GPBTimestamp.pbobjc.h in Headers */ = {isa = PBXBuildFile; fileRef = 45528AFC6ED47C8AAB7E9FCBD83BA0E7 /* GPBTimestamp.pbobjc.h */; settings = {ATTRIBUTES = (Public, ); }; }; - F3A6D79E6A1E8864E47940113881901C /* YBIBOrientationReceiveProtocol.h in Headers */ = {isa = PBXBuildFile; fileRef = A87C9E81F3486D7C4ACF5E119E8F26D2 /* YBIBOrientationReceiveProtocol.h */; settings = {ATTRIBUTES = (Public, ); }; }; - F3AECEF6D3BB919B3E7392942E1BC58B /* MJRefreshBackFooter.m in Sources */ = {isa = PBXBuildFile; fileRef = 7C70F29094808A284B4932FBC016B051 /* MJRefreshBackFooter.m */; }; - F3B50A140EA5062ADD0D17F76B4FC149 /* YBIBCopywriter.h in Headers */ = {isa = PBXBuildFile; fileRef = 7ADE8D264B11576DC5C2A85D8F5A0CCE /* YBIBCopywriter.h */; settings = {ATTRIBUTES = (Public, ); }; }; - F3EB5F0F0BF7835E7E02DBFB6B50FAAB /* LLCrashCell.h in Headers */ = {isa = PBXBuildFile; fileRef = E7B8735050F4935C5F0EC57A5CAFBBFB /* LLCrashCell.h */; settings = {ATTRIBUTES = (Public, ); }; }; - F3F7651923711E6A4A12FBE3B5DDCC4E /* NSString+RACKeyPathUtilities.h in Headers */ = {isa = PBXBuildFile; fileRef = CFAA67A034CA90CF6F568464671B5835 /* NSString+RACKeyPathUtilities.h */; settings = {ATTRIBUTES = (Public, ); }; }; + F341B1F0FEDE67D2DB40B5C5D854DA8A /* RACEvent.m in Sources */ = {isa = PBXBuildFile; fileRef = AC9B09FA3426D6DE9ACEABE688BBCD05 /* RACEvent.m */; }; + F3604694FDE5476E5AA37DFDB131C7C8 /* NSNotificationCenter+RACSupport.m in Sources */ = {isa = PBXBuildFile; fileRef = 4896AFD440B9327E4502FA57CB15D87A /* NSNotificationCenter+RACSupport.m */; }; + F38ECDACE09F8DEBBDFDCB9897795E54 /* YBIBImageLayout.m in Sources */ = {isa = PBXBuildFile; fileRef = 845DF1D33860C77005E69FE07DBA2291 /* YBIBImageLayout.m */; }; + F396B0371570F876F8D7DE3EEA8C181D /* GPBTimestamp.pbobjc.h in Headers */ = {isa = PBXBuildFile; fileRef = 1804E0CE29A76FAF0B263872E8F5B485 /* GPBTimestamp.pbobjc.h */; settings = {ATTRIBUTES = (Public, ); }; }; + F3A6D79E6A1E8864E47940113881901C /* YBIBOrientationReceiveProtocol.h in Headers */ = {isa = PBXBuildFile; fileRef = 063F11FE7EAFD9367C5FA4AC6ACD5C9B /* YBIBOrientationReceiveProtocol.h */; settings = {ATTRIBUTES = (Public, ); }; }; + F3AECEF6D3BB919B3E7392942E1BC58B /* MJRefreshBackFooter.m in Sources */ = {isa = PBXBuildFile; fileRef = 6CBB765E04F1683B0F0F50AF3C346C9C /* MJRefreshBackFooter.m */; }; + F3B50A140EA5062ADD0D17F76B4FC149 /* YBIBCopywriter.h in Headers */ = {isa = PBXBuildFile; fileRef = 0122BA4FE8C43FEAF4EDD0CC1EC9ECF1 /* YBIBCopywriter.h */; settings = {ATTRIBUTES = (Public, ); }; }; + F3EB5F0F0BF7835E7E02DBFB6B50FAAB /* LLCrashCell.h in Headers */ = {isa = PBXBuildFile; fileRef = 6170642C1C4E9BC596E9F1101C087707 /* LLCrashCell.h */; settings = {ATTRIBUTES = (Public, ); }; }; + F3F7651923711E6A4A12FBE3B5DDCC4E /* NSString+RACKeyPathUtilities.h in Headers */ = {isa = PBXBuildFile; fileRef = FA94166897E932CA6FF25C4ECC2DCFE1 /* NSString+RACKeyPathUtilities.h */; settings = {ATTRIBUTES = (Public, ); }; }; F3F82C7C5CCE16F646876C931134F11A /* TUIChatLocalizable.bundle in Resources */ = {isa = PBXBuildFile; fileRef = 511E89FD908585EB7E90353AB3751525 /* TUIChatLocalizable.bundle */; }; - F43396B5CB23638E5509B3ED61AE6192 /* JXCategoryListContainerRTLCell.m in Sources */ = {isa = PBXBuildFile; fileRef = EDAF9D4D062D739B0C83C766F29654CB /* JXCategoryListContainerRTLCell.m */; }; - F437972E5C7BCE0166880F7E8F990CE6 /* SDImageWebPCoder.h in Headers */ = {isa = PBXBuildFile; fileRef = 15FDB37175E53B6511201CC5383369E3 /* SDImageWebPCoder.h */; settings = {ATTRIBUTES = (Public, ); }; }; - F447BD855B81CC593E8582E6562D9442 /* YBIBGetBaseInfoProtocol.h in Headers */ = {isa = PBXBuildFile; fileRef = 7505374FD5BF0FA86428DDD873470EE7 /* YBIBGetBaseInfoProtocol.h */; settings = {ATTRIBUTES = (Public, ); }; }; - F4484EF74D6DAA6D920A7B21FA807E57 /* OSSCancellationTokenSource.h in Headers */ = {isa = PBXBuildFile; fileRef = 7ECD4D942E99D706A9F27E2A3E37ED2B /* OSSCancellationTokenSource.h */; settings = {ATTRIBUTES = (Public, ); }; }; - F458385338076D8734DD74BE4A94B33F /* UIColor+JXAdd.h in Headers */ = {isa = PBXBuildFile; fileRef = BAF9BE5954777541BF814E47C33C935E /* UIColor+JXAdd.h */; settings = {ATTRIBUTES = (Public, ); }; }; - F45CC0AF8CE901E60F1F0EAB98BFF9EC /* YBImageBrowser.m in Sources */ = {isa = PBXBuildFile; fileRef = 3AC6BF1138B854446EC68BCEA6A76F18 /* YBImageBrowser.m */; }; - F460B8D9827F2F2D722A47C28B2D4C95 /* IQUIViewController+Additions.h in Headers */ = {isa = PBXBuildFile; fileRef = 2F6B2E7D27F5FC0A99F93B178E564E02 /* IQUIViewController+Additions.h */; settings = {ATTRIBUTES = (Public, ); }; }; + F40AC8C330D7923CD2F3A046CA528D73 /* cost_enc.h in Headers */ = {isa = PBXBuildFile; fileRef = 736CB3F3305EBE3695E1F73EDC2BABBD /* cost_enc.h */; settings = {ATTRIBUTES = (Project, ); }; }; + F42EBEE5DF8456CF7DDC6F2A3B622B37 /* QCloudListPartsResult.m in Sources */ = {isa = PBXBuildFile; fileRef = 40A1A43CA22FAF6453F1BFE43DCE0C9F /* QCloudListPartsResult.m */; }; + F43396B5CB23638E5509B3ED61AE6192 /* JXCategoryListContainerRTLCell.m in Sources */ = {isa = PBXBuildFile; fileRef = 7B595D29D87085688B882F34B66276A4 /* JXCategoryListContainerRTLCell.m */; }; + F437972E5C7BCE0166880F7E8F990CE6 /* SDImageWebPCoder.h in Headers */ = {isa = PBXBuildFile; fileRef = E5946F09464FE288F219AFED01ADC592 /* SDImageWebPCoder.h */; settings = {ATTRIBUTES = (Public, ); }; }; + F447BD855B81CC593E8582E6562D9442 /* YBIBGetBaseInfoProtocol.h in Headers */ = {isa = PBXBuildFile; fileRef = 9E53987150C1E4B2B7D70F51FD86A5ED /* YBIBGetBaseInfoProtocol.h */; settings = {ATTRIBUTES = (Public, ); }; }; + F4484EF74D6DAA6D920A7B21FA807E57 /* OSSCancellationTokenSource.h in Headers */ = {isa = PBXBuildFile; fileRef = 021A626905C188DF3DECC7A1B16E617F /* OSSCancellationTokenSource.h */; settings = {ATTRIBUTES = (Public, ); }; }; + F458385338076D8734DD74BE4A94B33F /* UIColor+JXAdd.h in Headers */ = {isa = PBXBuildFile; fileRef = E81461CED9E96FB3CBA947397E3AF3CD /* UIColor+JXAdd.h */; settings = {ATTRIBUTES = (Public, ); }; }; + F45CC0AF8CE901E60F1F0EAB98BFF9EC /* YBImageBrowser.m in Sources */ = {isa = PBXBuildFile; fileRef = 71CF3583ECAC5937DB2B422D8EB4C3C3 /* YBImageBrowser.m */; }; + F460B8D9827F2F2D722A47C28B2D4C95 /* IQUIViewController+Additions.h in Headers */ = {isa = PBXBuildFile; fileRef = 1CAD5071D46DA74AF8629B89B2460B55 /* IQUIViewController+Additions.h */; settings = {ATTRIBUTES = (Public, ); }; }; F46B9D55B7A30809F2D1DFEE40727F0D /* TUIConversationObjectFactory_Minimalist.m in Sources */ = {isa = PBXBuildFile; fileRef = 2A1D0DA9B9D1330A39927231DDD5CBD5 /* TUIConversationObjectFactory_Minimalist.m */; }; - F4967A9D767B24CE1CFD1D5CB2F3F3F9 /* rescaler_msa.c in Sources */ = {isa = PBXBuildFile; fileRef = 827C30B04863CF6A3B899EA252B43C14 /* rescaler_msa.c */; settings = {COMPILER_FLAGS = "-D_THREAD_SAFE -fno-objc-arc"; }; }; - F499390AC09F53E63C5B03920EB2454C /* TUITool.m in Sources */ = {isa = PBXBuildFile; fileRef = DF9021474921AF35345BD06EBD2AB531 /* TUITool.m */; }; F499CF75C2E21F8296D19CF30A756398 /* TUIChatPopContextController.h in Headers */ = {isa = PBXBuildFile; fileRef = 0B003F1CB577B8CA5FF3FD3154A6BA46 /* TUIChatPopContextController.h */; settings = {ATTRIBUTES = (Public, ); }; }; F4B6F152D0E05B1B5ABF8734ECE8FB6F /* TUIChatConfig_Minimalist.m in Sources */ = {isa = PBXBuildFile; fileRef = B0E58BC55A159A517DAF2E8DD1900711 /* TUIChatConfig_Minimalist.m */; }; - F4D58DD087E6FC0E93E9BE632E43E3C7 /* LLDebug.h in Headers */ = {isa = PBXBuildFile; fileRef = F92DB7B7025A88791DC528CB73220FF0 /* LLDebug.h */; settings = {ATTRIBUTES = (Public, ); }; }; - F50878ED367723F5493AADE36B3E66E5 /* GPBDescriptor_PackagePrivate.h in Headers */ = {isa = PBXBuildFile; fileRef = E34C20A667264D69BB2AD98EF3C16C1D /* GPBDescriptor_PackagePrivate.h */; settings = {ATTRIBUTES = (Public, ); }; }; - F5490BF6A3666825BFAF918C46B060DB /* quant_levels_utils.c in Sources */ = {isa = PBXBuildFile; fileRef = 7ABCE646AFDD6A3662E4B5C7B15F999A /* quant_levels_utils.c */; settings = {COMPILER_FLAGS = "-D_THREAD_SAFE -fno-objc-arc"; }; }; - F569F9010089F10C4D83B6B40798828D /* filters.c in Sources */ = {isa = PBXBuildFile; fileRef = FB0D91620F0D0565D6C327BEB4340FC2 /* filters.c */; settings = {COMPILER_FLAGS = "-D_THREAD_SAFE -fno-objc-arc"; }; }; - F5A539A21A4C4F642A5BABB0EC6CD05A /* SVGAAudioEntity.h in Headers */ = {isa = PBXBuildFile; fileRef = CC078D6CCA0C3AB165D43631D3A2677F /* SVGAAudioEntity.h */; settings = {ATTRIBUTES = (Public, ); }; }; - F5A6806DA01AEDEA925EF7F6F42A1BA5 /* NSFileHandle+RACSupport.m in Sources */ = {isa = PBXBuildFile; fileRef = 2140F903354FA7A1562D5065709EF8CA /* NSFileHandle+RACSupport.m */; }; - F60F90EAF35CFF40DF1C33557965787D /* MJRefreshStateTrailer.h in Headers */ = {isa = PBXBuildFile; fileRef = 7B7F1F80C3554DB598171C96EE03DD98 /* MJRefreshStateTrailer.h */; settings = {ATTRIBUTES = (Public, ); }; }; + F4D58DD087E6FC0E93E9BE632E43E3C7 /* LLDebug.h in Headers */ = {isa = PBXBuildFile; fileRef = 4EE2EF091477EDE4329C65586C479C20 /* LLDebug.h */; settings = {ATTRIBUTES = (Public, ); }; }; + F50878ED367723F5493AADE36B3E66E5 /* GPBDescriptor_PackagePrivate.h in Headers */ = {isa = PBXBuildFile; fileRef = B7725C9811C809D2358ED8C18D5CD403 /* GPBDescriptor_PackagePrivate.h */; settings = {ATTRIBUTES = (Public, ); }; }; + F53DFF249079BF1CEA457F97180940C6 /* QCloudCOSXMLVersion.m in Sources */ = {isa = PBXBuildFile; fileRef = D9D545768D055B0050317DBB78952386 /* QCloudCOSXMLVersion.m */; }; + F56F43F3E8587CBE40DA6332A187C216 /* SDImageFramePool.h in Headers */ = {isa = PBXBuildFile; fileRef = C3E48BE87B8C0C0D804379966D58D8D8 /* SDImageFramePool.h */; settings = {ATTRIBUTES = (Private, ); }; }; + F5A539A21A4C4F642A5BABB0EC6CD05A /* SVGAAudioEntity.h in Headers */ = {isa = PBXBuildFile; fileRef = 5784592997676878493A47DD67BB6541 /* SVGAAudioEntity.h */; settings = {ATTRIBUTES = (Public, ); }; }; + F5A6806DA01AEDEA925EF7F6F42A1BA5 /* NSFileHandle+RACSupport.m in Sources */ = {isa = PBXBuildFile; fileRef = 76879033625920D4331A6E74D64B6009 /* NSFileHandle+RACSupport.m */; }; + F5AB770569E93346F35765953DB91C83 /* QCloudMainBundle.m in Sources */ = {isa = PBXBuildFile; fileRef = 3FFCAB28BFF424598BABBC33294D2C27 /* QCloudMainBundle.m */; }; + F5B66E8046316AC9118A90DDFB0E7014 /* SDImageFrame.m in Sources */ = {isa = PBXBuildFile; fileRef = 1E1F7BCD40A282679B5ACF989AF45F25 /* SDImageFrame.m */; }; + F60F90EAF35CFF40DF1C33557965787D /* MJRefreshStateTrailer.h in Headers */ = {isa = PBXBuildFile; fileRef = A4C9591D960245AAEDA6C83E81505668 /* MJRefreshStateTrailer.h */; settings = {ATTRIBUTES = (Public, ); }; }; F61644A241A6CB5C4B299D1EEE773244 /* TUIReplyPreviewBar_Minimalist.h in Headers */ = {isa = PBXBuildFile; fileRef = E856B12C60338D611D7677EC9739BA4D /* TUIReplyPreviewBar_Minimalist.h */; settings = {ATTRIBUTES = (Public, ); }; }; - F6298C0BCA84CFAD1C6D0CAB0E358CCC /* LLMagnifierComponent.m in Sources */ = {isa = PBXBuildFile; fileRef = 1458BA2690A119C8FEDFB249E566F0AE /* LLMagnifierComponent.m */; }; + F6177B58D1C0CFE913B5507D80178D33 /* UIImage+ForceDecode.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A65777FEF1D37CB29AAA9B70EBAC6C9 /* UIImage+ForceDecode.h */; settings = {ATTRIBUTES = (Public, ); }; }; + F6298C0BCA84CFAD1C6D0CAB0E358CCC /* LLMagnifierComponent.m in Sources */ = {isa = PBXBuildFile; fileRef = F58EDA48BD1EE499F6329173868A906C /* LLMagnifierComponent.m */; }; F64369626A7E12DFD9618636B3866F37 /* TUIChatDefine.h in Headers */ = {isa = PBXBuildFile; fileRef = 7E85AE7CD8AD114CB75B2015BFF30139 /* TUIChatDefine.h */; settings = {ATTRIBUTES = (Public, ); }; }; - F670E18DEB88ABB7E77E1325D07EB530 /* OSSPutSymlinkRequest.h in Headers */ = {isa = PBXBuildFile; fileRef = 0ABE05003A8F29C98E5FAAE6CE701848 /* OSSPutSymlinkRequest.h */; settings = {ATTRIBUTES = (Public, ); }; }; - F6AB0CEC78EBCF64556A4833404729BD /* LLBaseCollectionViewCell.m in Sources */ = {isa = PBXBuildFile; fileRef = 63E010833519B9ACF4F8B6D9DF28EC7A /* LLBaseCollectionViewCell.m */; }; + F6658AB5F16568F93C3250BC17BD979C /* QCloudServiceConfiguration_Private.h in Headers */ = {isa = PBXBuildFile; fileRef = F9842232139B32310A3F79A34C87DA90 /* QCloudServiceConfiguration_Private.h */; settings = {ATTRIBUTES = (Public, ); }; }; + F66802E0AAF7ED50C98F9AC44F4E05AE /* UIKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 83AC327FDFB768874F13D3CD20C46095 /* UIKit.framework */; }; + F670E18DEB88ABB7E77E1325D07EB530 /* OSSPutSymlinkRequest.h in Headers */ = {isa = PBXBuildFile; fileRef = E64C0CC4EE8501C605F259E3B887D980 /* OSSPutSymlinkRequest.h */; settings = {ATTRIBUTES = (Public, ); }; }; + F69AD2D8CF96B87364127158BF47B1BC /* lossless_common.h in Headers */ = {isa = PBXBuildFile; fileRef = EE016A33A5E237BFB4665F4F038B0B17 /* lossless_common.h */; settings = {ATTRIBUTES = (Project, ); }; }; + F6AB0CEC78EBCF64556A4833404729BD /* LLBaseCollectionViewCell.m in Sources */ = {isa = PBXBuildFile; fileRef = 3CD85DC1770975A7D82905376807EEB1 /* LLBaseCollectionViewCell.m */; }; + F6C7C0A4CA7442704FAEFFD31A9B981C /* cost_enc.c in Sources */ = {isa = PBXBuildFile; fileRef = BADC0186524F48319412F2A94BA1F0AE /* cost_enc.c */; settings = {COMPILER_FLAGS = "-D_THREAD_SAFE -fno-objc-arc"; }; }; F6D129D5D22D4D5182F16EF99EE831C0 /* TUIGroupNoticeController_Minimalist.m in Sources */ = {isa = PBXBuildFile; fileRef = 67E824825CF7A3BE9AB81A60E7902A1A /* TUIGroupNoticeController_Minimalist.m */; }; - F6D1C960368EB1E067ABD0BFF707FC56 /* MASConstraintMaker.m in Sources */ = {isa = PBXBuildFile; fileRef = 0A5F09BA40E5E31AE3EA04D1A30D8708 /* MASConstraintMaker.m */; }; + F6D1C960368EB1E067ABD0BFF707FC56 /* MASConstraintMaker.m in Sources */ = {isa = PBXBuildFile; fileRef = 250B79B6BF275D0B3463ACD42672DCC2 /* MASConstraintMaker.m */; }; F6F7789FFB7A69E5F03CC0FCA916FF2E /* TUIVoiceMessageCellData.h in Headers */ = {isa = PBXBuildFile; fileRef = 1C57656CFFDD0E3A00DA919DA53EAD2E /* TUIVoiceMessageCellData.h */; settings = {ATTRIBUTES = (Public, ); }; }; - F7355C95564EAA5773584709C68ED3B7 /* UIView+VAP.h in Headers */ = {isa = PBXBuildFile; fileRef = 3291F0FB38A1BE54BF95374F4ECBC806 /* UIView+VAP.h */; settings = {ATTRIBUTES = (Public, ); }; }; - F7623E7C314AA5010D8D0BD6ED4AAAD4 /* AFImageDownloader.m in Sources */ = {isa = PBXBuildFile; fileRef = C81216EA476AF6B7BC4E9C092A979786 /* AFImageDownloader.m */; }; - F775F679F321E234A469F54310116E6D /* RACValueTransformer.m in Sources */ = {isa = PBXBuildFile; fileRef = 40A4AB5FDB162AD7D81253D8AEE885D6 /* RACValueTransformer.m */; }; - F790014FE62516F80C467236F0C3C84B /* LLBaseTableViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 7946A888A59E2EC0E6E447B36C714F56 /* LLBaseTableViewController.m */; }; - F7A283737F48F8FE2A9AA41F40856233 /* cpu.h in Headers */ = {isa = PBXBuildFile; fileRef = 8E2D13DEE04802DDF97C031B055D5CD4 /* cpu.h */; settings = {ATTRIBUTES = (Project, ); }; }; - F7A8FE8CEE61F44B4CDFE0BE245642B6 /* YBIBImageCell.h in Headers */ = {isa = PBXBuildFile; fileRef = 6923C8461B6129E9596F3084779EBBD7 /* YBIBImageCell.h */; settings = {ATTRIBUTES = (Public, ); }; }; - F7C6A20C8D96866C163E6196294E8232 /* LLHtml.h in Headers */ = {isa = PBXBuildFile; fileRef = FB4E7E1C2D61D4B0BA7189E976F6854B /* LLHtml.h */; settings = {ATTRIBUTES = (Public, ); }; }; - F7CA711927E14F963F5E47EEBC79EE62 /* RACKVOProxy.h in Headers */ = {isa = PBXBuildFile; fileRef = FED504FEAC08432BEC64058A0647F40A /* RACKVOProxy.h */; settings = {ATTRIBUTES = (Public, ); }; }; - F804C7AAD40FA603AE71070ABC9679AB /* ioapi.c in Sources */ = {isa = PBXBuildFile; fileRef = DE70643D8C7B20011C33FF0CF0C417BE /* ioapi.c */; }; + F6F805FECE802821700B0B6A4619F93B /* huffman_utils.h in Headers */ = {isa = PBXBuildFile; fileRef = 510A481D16EC2697CA59168881F1D464 /* huffman_utils.h */; settings = {ATTRIBUTES = (Project, ); }; }; + F722D239DE679AF0F954CB8851E41947 /* NSString+RegularExpressionCategory.m in Sources */ = {isa = PBXBuildFile; fileRef = DC7D94A4CE8CA4AD5BABAAAB6004BF6A /* NSString+RegularExpressionCategory.m */; }; + F7355C95564EAA5773584709C68ED3B7 /* UIView+VAP.h in Headers */ = {isa = PBXBuildFile; fileRef = 0454D0147525728E889241EA260FBF13 /* UIView+VAP.h */; settings = {ATTRIBUTES = (Public, ); }; }; + F7623E7C314AA5010D8D0BD6ED4AAAD4 /* AFImageDownloader.m in Sources */ = {isa = PBXBuildFile; fileRef = 193B8DE441F822996DB85CE1E778E140 /* AFImageDownloader.m */; }; + F775F679F321E234A469F54310116E6D /* RACValueTransformer.m in Sources */ = {isa = PBXBuildFile; fileRef = 7702226C1165C32EABF219A997827653 /* RACValueTransformer.m */; }; + F790014FE62516F80C467236F0C3C84B /* LLBaseTableViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = C1790E31F6435CEF46A8CA60375DA81A /* LLBaseTableViewController.m */; }; + F7A4E253075E533FA2B4CC2826554BB3 /* mux_types.h in Headers */ = {isa = PBXBuildFile; fileRef = 6AE77FD11A04349202B7C3561B84B845 /* mux_types.h */; settings = {ATTRIBUTES = (Public, ); }; }; + F7A8FE8CEE61F44B4CDFE0BE245642B6 /* YBIBImageCell.h in Headers */ = {isa = PBXBuildFile; fileRef = EBBFFE545A4F4829A8AEFF12572DF506 /* YBIBImageCell.h */; settings = {ATTRIBUTES = (Public, ); }; }; + F7C6A20C8D96866C163E6196294E8232 /* LLHtml.h in Headers */ = {isa = PBXBuildFile; fileRef = 2921A1F4DC86BCE7F505F51D3C9DC18A /* LLHtml.h */; settings = {ATTRIBUTES = (Public, ); }; }; + F7CA711927E14F963F5E47EEBC79EE62 /* RACKVOProxy.h in Headers */ = {isa = PBXBuildFile; fileRef = 3C12BE5CAB2519B0F0248C98EF5CD67A /* RACKVOProxy.h */; settings = {ATTRIBUTES = (Public, ); }; }; + F7E940FF1267B88A296DBACCAE38249A /* QCloudAuthentationCreator.m in Sources */ = {isa = PBXBuildFile; fileRef = 6503BAF1C6BD6DE4B2A9C92F451868BF /* QCloudAuthentationCreator.m */; }; F80DFC23854AED128DBB54B09A5CE897 /* TUIC2CChatViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = AB76C88FA06FBA051FDAA44F6EF28B76 /* TUIC2CChatViewController.m */; }; - F81ACC8DADA7F9F17C2FD7351A1D1A63 /* LLLogModel.m in Sources */ = {isa = PBXBuildFile; fileRef = 6A7AAAD1AD9FE69C87ECAA09DB3606CC /* LLLogModel.m */; }; + F816C42641A98ADC0559C9E146831FDA /* enc_sse41.c in Sources */ = {isa = PBXBuildFile; fileRef = E772B7F914CACF8772A7FFE42632D64C /* enc_sse41.c */; settings = {COMPILER_FLAGS = "-D_THREAD_SAFE -fno-objc-arc"; }; }; + F81ACC8DADA7F9F17C2FD7351A1D1A63 /* LLLogModel.m in Sources */ = {isa = PBXBuildFile; fileRef = 7C2ADB6C0EB671B069FB89C018103821 /* LLLogModel.m */; }; F824B795A59D836AA87CE65EE75A87CD /* TUIOrderCell.h in Headers */ = {isa = PBXBuildFile; fileRef = 41CAE80F9FEBA3C9CD0CC1B3A287586C /* TUIOrderCell.h */; settings = {ATTRIBUTES = (Public, ); }; }; - F82886FC4EB9C227354FB31BE01E95D5 /* NSObject+YYAddForARC.h in Headers */ = {isa = PBXBuildFile; fileRef = 7A7049611F4F5458FA0C6A6B2566E802 /* NSObject+YYAddForARC.h */; settings = {ATTRIBUTES = (Public, ); }; }; - F847E3C26E5AC43CD73364AD3DF49AFE /* JXCategoryImageCell.m in Sources */ = {isa = PBXBuildFile; fileRef = 4BA768D40DC69C52510EB28570C9D8AB /* JXCategoryImageCell.m */; }; - F84821217598572DCD6377D7E5AF7D27 /* RACSignal.h in Headers */ = {isa = PBXBuildFile; fileRef = 273EE05626CE419A5CD1C8843D7F7DD6 /* RACSignal.h */; settings = {ATTRIBUTES = (Public, ); }; }; + F82886FC4EB9C227354FB31BE01E95D5 /* NSObject+YYAddForARC.h in Headers */ = {isa = PBXBuildFile; fileRef = 3457584A90D2FC553E77823B19CA85DB /* NSObject+YYAddForARC.h */; settings = {ATTRIBUTES = (Public, ); }; }; + F847E3C26E5AC43CD73364AD3DF49AFE /* JXCategoryImageCell.m in Sources */ = {isa = PBXBuildFile; fileRef = 18354FADB2DFD827C38F32B5B283B9A4 /* JXCategoryImageCell.m */; }; + F84821217598572DCD6377D7E5AF7D27 /* RACSignal.h in Headers */ = {isa = PBXBuildFile; fileRef = 88352B406BD5BA371383E95CF2AA778C /* RACSignal.h */; settings = {ATTRIBUTES = (Public, ); }; }; + F883C8948D59BDB2E474CCD151A80E98 /* QCloudAbortMultipfartUploadRequest.h in Headers */ = {isa = PBXBuildFile; fileRef = C23535EAE5BFF74DF355ED25D1284A7F /* QCloudAbortMultipfartUploadRequest.h */; settings = {ATTRIBUTES = (Public, ); }; }; F894245811A0CF0C7089DD4FBF109951 /* TUIFaceMessageCellData.h in Headers */ = {isa = PBXBuildFile; fileRef = CF5E2D4522BE3B45082331E0D2D77725 /* TUIFaceMessageCellData.h */; settings = {ATTRIBUTES = (Public, ); }; }; - F8AFE17439C43140914623E76F3C3AD4 /* BRDatePickerView+BR.m in Sources */ = {isa = PBXBuildFile; fileRef = B73A54C6B2C5265F811AB9D5CB3A21DF /* BRDatePickerView+BR.m */; }; + F8AFE17439C43140914623E76F3C3AD4 /* BRDatePickerView+BR.m in Sources */ = {isa = PBXBuildFile; fileRef = CA7DAD293A40ABB3C0EF7B680D054ECB /* BRDatePickerView+BR.m */; }; F8C0CE436F15BB4ED740727283AA9FC3 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = F91075A92425F75F02E0E1C8D455AF79 /* Foundation.framework */; }; - F8C9B997F8DEA590BA10FE3C3A3167F5 /* YBImageBrowserDataSource.h in Headers */ = {isa = PBXBuildFile; fileRef = 11531608C3500A1F0D08C7D212C1882D /* YBImageBrowserDataSource.h */; settings = {ATTRIBUTES = (Public, ); }; }; - F8D31E65466DECE981CBFFB9F96D569A /* YYTextKeyboardManager.h in Headers */ = {isa = PBXBuildFile; fileRef = B0B87C8EB4F405E680169D002E00B33D /* YYTextKeyboardManager.h */; settings = {ATTRIBUTES = (Public, ); }; }; - F911E51B72591FA0376C4E79DF8ADF97 /* OSSTask.m in Sources */ = {isa = PBXBuildFile; fileRef = 9B738ADE726A061A4C5F827A1D5699EC /* OSSTask.m */; }; - F95B02BA33F34615E545E50555DC0061 /* LLEnumDescription.m in Sources */ = {isa = PBXBuildFile; fileRef = E76491A4F0DC05B07F335A66431817A0 /* LLEnumDescription.m */; }; - F970E99804C1DEDC1A830D6D67FC7165 /* TUITool.h in Headers */ = {isa = PBXBuildFile; fileRef = 927DCA1FCB1533BC17E9492D4F79B13E /* TUITool.h */; settings = {ATTRIBUTES = (Public, ); }; }; - F972DCBE61D6C3B274C555F2D983F67B /* YBIBImageCache.h in Headers */ = {isa = PBXBuildFile; fileRef = 171BC9A890FA78716C470AE7F0861E99 /* YBIBImageCache.h */; settings = {ATTRIBUTES = (Public, ); }; }; - F9789D86D3279D71B398B550F27C3EFF /* AFSecurityPolicy.m in Sources */ = {isa = PBXBuildFile; fileRef = 879DDC7E616BA6935102ADD78F720882 /* AFSecurityPolicy.m */; }; - F979D099A0090D58B7946B47E0D52E91 /* YBIBTopView.h in Headers */ = {isa = PBXBuildFile; fileRef = 78825BA551DB4A4895F1233B3007B119 /* YBIBTopView.h */; settings = {ATTRIBUTES = (Public, ); }; }; + F8C9B997F8DEA590BA10FE3C3A3167F5 /* YBImageBrowserDataSource.h in Headers */ = {isa = PBXBuildFile; fileRef = 31928EFB2114E4672EFCA3B925B522EE /* YBImageBrowserDataSource.h */; settings = {ATTRIBUTES = (Public, ); }; }; + F8D31E65466DECE981CBFFB9F96D569A /* YYTextKeyboardManager.h in Headers */ = {isa = PBXBuildFile; fileRef = E7D88E62CA4D102DA8BBCC2036403CF4 /* YYTextKeyboardManager.h */; settings = {ATTRIBUTES = (Public, ); }; }; + F911E51B72591FA0376C4E79DF8ADF97 /* OSSTask.m in Sources */ = {isa = PBXBuildFile; fileRef = 7AC7367DFD49858857D764C9E8E6D909 /* OSSTask.m */; }; + F92F0E2EE63DE5B4E9F28F3520245729 /* anim_decode.c in Sources */ = {isa = PBXBuildFile; fileRef = 56B8F4D76A861932A8D1829CC0607A1C /* anim_decode.c */; settings = {COMPILER_FLAGS = "-D_THREAD_SAFE -fno-objc-arc"; }; }; + F95B02BA33F34615E545E50555DC0061 /* LLEnumDescription.m in Sources */ = {isa = PBXBuildFile; fileRef = 0FC180A2D3D7441C79D90FC3533C91C9 /* LLEnumDescription.m */; }; + F972DCBE61D6C3B274C555F2D983F67B /* YBIBImageCache.h in Headers */ = {isa = PBXBuildFile; fileRef = D23C21717D45A802CA9C51BD698860B6 /* YBIBImageCache.h */; settings = {ATTRIBUTES = (Public, ); }; }; + F9789D86D3279D71B398B550F27C3EFF /* AFSecurityPolicy.m in Sources */ = {isa = PBXBuildFile; fileRef = 90D7FF3042800797EA73C0A0442C6956 /* AFSecurityPolicy.m */; }; + F979D099A0090D58B7946B47E0D52E91 /* YBIBTopView.h in Headers */ = {isa = PBXBuildFile; fileRef = C12F4F59F31062A2EA18468431CB2C5D /* YBIBTopView.h */; settings = {ATTRIBUTES = (Public, ); }; }; + F98C0FF73ED1625FF7A0A9CF93F5113A /* enc_sse2.c in Sources */ = {isa = PBXBuildFile; fileRef = 46F242023E9A7F0185F551DB249B9B2D /* enc_sse2.c */; settings = {COMPILER_FLAGS = "-D_THREAD_SAFE -fno-objc-arc"; }; }; F9AD715EB8CE36958FEC824890395775 /* TUIGroupPinCell.h in Headers */ = {isa = PBXBuildFile; fileRef = 6D8B345639CB7FE77A2F3B451E4FE00F /* TUIGroupPinCell.h */; settings = {ATTRIBUTES = (Public, ); }; }; - F9B92C99985A5B345D5D58169150098E /* LLRuler.h in Headers */ = {isa = PBXBuildFile; fileRef = 0B55B78A78D7706936B1F477109CCBFC /* LLRuler.h */; settings = {ATTRIBUTES = (Public, ); }; }; - F9C133B5D9F23EDB5D017B3A95784250 /* sharpyuv_neon.c in Sources */ = {isa = PBXBuildFile; fileRef = 8E14B722699442611DCAE34C30CB4486 /* sharpyuv_neon.c */; settings = {COMPILER_FLAGS = "-D_THREAD_SAFE -fno-objc-arc"; }; }; - F9F0C29C2EF5CC88959AAA4144E4CB87 /* QGVAPLogger.m in Sources */ = {isa = PBXBuildFile; fileRef = A68CC5ACD892CAC87CF38B0281EF34EC /* QGVAPLogger.m */; }; + F9B92C99985A5B345D5D58169150098E /* LLRuler.h in Headers */ = {isa = PBXBuildFile; fileRef = 947BB50F945ACD93C0920B78DC1FA996 /* LLRuler.h */; settings = {ATTRIBUTES = (Public, ); }; }; + F9F0C29C2EF5CC88959AAA4144E4CB87 /* QGVAPLogger.m in Sources */ = {isa = PBXBuildFile; fileRef = D2E7C8FDB05292AE8AFC4257846F3A95 /* QGVAPLogger.m */; }; FA1B0818847661A21A7A4BD94CE1E16E /* TUITextReplyQuoteView_Minimalist.h in Headers */ = {isa = PBXBuildFile; fileRef = 3EA2047A997EED2FC02DEB89ADDF3379 /* TUITextReplyQuoteView_Minimalist.h */; settings = {ATTRIBUTES = (Public, ); }; }; - FA2587F0AE5F324CC8F67B1D9BBA5789 /* LLDetailTitleSelectorCell.m in Sources */ = {isa = PBXBuildFile; fileRef = 19A0587CA47990B3165DCD372D3C9787 /* LLDetailTitleSelectorCell.m */; }; - FA300DA605A54EF49B65F2A05E176AF2 /* LLComponentWindow.h in Headers */ = {isa = PBXBuildFile; fileRef = F55B36FB4DC1F24B10A717017D0834CA /* LLComponentWindow.h */; settings = {ATTRIBUTES = (Public, ); }; }; - FA4D59453FAEF4399232AB1CF9ABDDBD /* RACQueueScheduler.m in Sources */ = {isa = PBXBuildFile; fileRef = 4F63AAB3B7BBFDF1046B6090A4116864 /* RACQueueScheduler.m */; }; - FA58F4CD441B4DE4A616F36354B0D1A0 /* LLFunctionItemContainerView.h in Headers */ = {isa = PBXBuildFile; fileRef = 97924E2E0C817A877F7DCB3CCF46893F /* LLFunctionItemContainerView.h */; settings = {ATTRIBUTES = (Public, ); }; }; - FA7C5EDA2999053E0DD8A0AFAB61A431 /* QGVAPMaskInfo.m in Sources */ = {isa = PBXBuildFile; fileRef = CC605DA23310CE8C48CE7EE15AAAD9DA /* QGVAPMaskInfo.m */; }; + FA2587F0AE5F324CC8F67B1D9BBA5789 /* LLDetailTitleSelectorCell.m in Sources */ = {isa = PBXBuildFile; fileRef = A361FF5A23C7458E7F0C160ADC16FBD9 /* LLDetailTitleSelectorCell.m */; }; + FA300DA605A54EF49B65F2A05E176AF2 /* LLComponentWindow.h in Headers */ = {isa = PBXBuildFile; fileRef = 01D5D3B99CED4E0D3A0DC7F0417A3522 /* LLComponentWindow.h */; settings = {ATTRIBUTES = (Public, ); }; }; + FA4D59453FAEF4399232AB1CF9ABDDBD /* RACQueueScheduler.m in Sources */ = {isa = PBXBuildFile; fileRef = 014BE88DC3744AC9119E8D90026F9403 /* RACQueueScheduler.m */; }; + FA58F4CD441B4DE4A616F36354B0D1A0 /* LLFunctionItemContainerView.h in Headers */ = {isa = PBXBuildFile; fileRef = BD199545E7D4B40A1730FD85D3611FB0 /* LLFunctionItemContainerView.h */; settings = {ATTRIBUTES = (Public, ); }; }; + FA7C5EDA2999053E0DD8A0AFAB61A431 /* QGVAPMaskInfo.m in Sources */ = {isa = PBXBuildFile; fileRef = 263ABCD0AFFF04BFAD27C11EF90EF1B4 /* QGVAPMaskInfo.m */; }; FA9D9B46B60514DF2366538B1FADE93A /* TUIMessageDataProvider.h in Headers */ = {isa = PBXBuildFile; fileRef = 5E5F28332B507B8323DC625AB8F34116 /* TUIMessageDataProvider.h */; settings = {ATTRIBUTES = (Public, ); }; }; - FAAC95CC784EC755703089395BBDB148 /* LLURLProtocol.m in Sources */ = {isa = PBXBuildFile; fileRef = EBA26284EF96039CE4F9195867B7F3D1 /* LLURLProtocol.m */; }; - FABDFB2B539107ABC3385B3B2C9B5E6D /* LLSettingWindow.m in Sources */ = {isa = PBXBuildFile; fileRef = 468E33438D7E12E032EC205710C51A62 /* LLSettingWindow.m */; }; - FB0649D6739C0AC6E503BECAD869A8A9 /* LLBaseModel.h in Headers */ = {isa = PBXBuildFile; fileRef = 341363FE03AAD9F1114A239526416C46 /* LLBaseModel.h */; settings = {ATTRIBUTES = (Public, ); }; }; - FB0AF590C63D0D265D1D755FCEF074D6 /* OSSNetworking.h in Headers */ = {isa = PBXBuildFile; fileRef = 709780182A5CA351F71920FED34965D5 /* OSSNetworking.h */; settings = {ATTRIBUTES = (Public, ); }; }; - FB1D858F09AAF47F96795E1AEAC09A19 /* UIControl+RACSignalSupport.m in Sources */ = {isa = PBXBuildFile; fileRef = 974EF5F6AB07F9047E91897A1CB0ED2A /* UIControl+RACSignalSupport.m */; }; + FAAC95CC784EC755703089395BBDB148 /* LLURLProtocol.m in Sources */ = {isa = PBXBuildFile; fileRef = 28D46022EB59849B06DD06DE0851BC0D /* LLURLProtocol.m */; }; + FABDFB2B539107ABC3385B3B2C9B5E6D /* LLSettingWindow.m in Sources */ = {isa = PBXBuildFile; fileRef = 1BD7A2EEFD3A74BC35A93A1D846CCD9B /* LLSettingWindow.m */; }; + FAF3E653CB79FC887BC4307E0B59AC50 /* TUIKitLocalizable.bundle in Resources */ = {isa = PBXBuildFile; fileRef = BBEA8037ABA4B0C60F53C9D1AFB4606C /* TUIKitLocalizable.bundle */; }; + FB0649D6739C0AC6E503BECAD869A8A9 /* LLBaseModel.h in Headers */ = {isa = PBXBuildFile; fileRef = 0749B0115A88A6A4235CE775ADE3BC39 /* LLBaseModel.h */; settings = {ATTRIBUTES = (Public, ); }; }; + FB0AF590C63D0D265D1D755FCEF074D6 /* OSSNetworking.h in Headers */ = {isa = PBXBuildFile; fileRef = 4A0CED06B42A21EB241B1DF222855283 /* OSSNetworking.h */; settings = {ATTRIBUTES = (Public, ); }; }; + FB1D858F09AAF47F96795E1AEAC09A19 /* UIControl+RACSignalSupport.m in Sources */ = {isa = PBXBuildFile; fileRef = 09E6A8D33A091100AC35918AAF28B84F /* UIControl+RACSignalSupport.m */; }; FB215E8A1F4AB53234AEA0D88F766974 /* TIMInputViewMoreActionProtocol.h in Headers */ = {isa = PBXBuildFile; fileRef = 4D2EFE8FDFC4B40362DD0943B6B80CCA /* TIMInputViewMoreActionProtocol.h */; settings = {ATTRIBUTES = (Public, ); }; }; + FB3159EBD1B38EE74CD17CE8D463A435 /* QCloudInitiateMultipartUploadResult.m in Sources */ = {isa = PBXBuildFile; fileRef = F61D1EE4A2BD6425C80377815250D878 /* QCloudInitiateMultipartUploadResult.m */; }; FB3924682046FFAC423B29D09072C38F /* TUITextMessageCellData.h in Headers */ = {isa = PBXBuildFile; fileRef = 76AC216E0092258A6692750763C9E8E2 /* TUITextMessageCellData.h */; settings = {ATTRIBUTES = (Public, ); }; }; - FB3BE9AF5DDC6474C6BAB9234C0DB9B0 /* YBIBImageScrollView.m in Sources */ = {isa = PBXBuildFile; fileRef = 7740F3442EC022CD073B1C7C422B750B /* YBIBImageScrollView.m */; }; + FB3B07B8E017B657EEBA7F7227B0108E /* UIImage+ExtendedCacheData.h in Headers */ = {isa = PBXBuildFile; fileRef = CAE391A4AB25A8264FABBB5A8646EF2B /* UIImage+ExtendedCacheData.h */; settings = {ATTRIBUTES = (Public, ); }; }; + FB3BE9AF5DDC6474C6BAB9234C0DB9B0 /* YBIBImageScrollView.m in Sources */ = {isa = PBXBuildFile; fileRef = E228F0EF6F69D4BD4D3BC3D9F0C9022C /* YBIBImageScrollView.m */; }; FB4F9D2891600397CD3F6CB081886D95 /* TUIMergeMessageListController_Minimalist.h in Headers */ = {isa = PBXBuildFile; fileRef = 9B9066D6BD7D677B859780409BC7859A /* TUIMergeMessageListController_Minimalist.h */; settings = {ATTRIBUTES = (Public, ); }; }; - FB5C92CE526B1E0DC5B35C55A4CBFD16 /* filters_msa.c in Sources */ = {isa = PBXBuildFile; fileRef = 3F5EB3188F34F43EB488665FA38106AC /* filters_msa.c */; settings = {COMPILER_FLAGS = "-D_THREAD_SAFE -fno-objc-arc"; }; }; - FB9D80F494434C9DCCA2D93054466820 /* LLLogDetailViewController.h in Headers */ = {isa = PBXBuildFile; fileRef = 983C32C3FED8FE8453CCBEAF54DCD23F /* LLLogDetailViewController.h */; settings = {ATTRIBUTES = (Public, ); }; }; - FBBD6F4AE0F7F9AC2AB1E46E147BC15A /* SVGAVideoSpriteEntity.h in Headers */ = {isa = PBXBuildFile; fileRef = BB76C8765ED12589358F806A48426A00 /* SVGAVideoSpriteEntity.h */; settings = {ATTRIBUTES = (Public, ); }; }; - FBF481A2EC25D99DC41914AE7B9754D2 /* mz_zip.c in Sources */ = {isa = PBXBuildFile; fileRef = 266B7F9B95BC2A2C9927CF9ADF6AA6B9 /* mz_zip.c */; }; - FC16BB1D601656C4C5F0B8B2D2D38A65 /* RACTuple.h in Headers */ = {isa = PBXBuildFile; fileRef = E9E3514ACF2CA3C76FE4AD482DF52CF4 /* RACTuple.h */; settings = {ATTRIBUTES = (Public, ); }; }; - FC2703E1BF0427C851947D86CD9CA154 /* NSNotificationCenter+VAPThreadSafe.m in Sources */ = {isa = PBXBuildFile; fileRef = 367F3A9044385655959B96A79439DD72 /* NSNotificationCenter+VAPThreadSafe.m */; }; - FC599CF0F5824322639E7A6419A1B578 /* VoicePitchChanger.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5C2D76A62ED836207C184BBC40C69766 /* VoicePitchChanger.swift */; }; + FB9D80F494434C9DCCA2D93054466820 /* LLLogDetailViewController.h in Headers */ = {isa = PBXBuildFile; fileRef = EE1088E943CE4EEB071B855ED0AB96FE /* LLLogDetailViewController.h */; settings = {ATTRIBUTES = (Public, ); }; }; + FBA46D16EF8A59865BDB164B11812BD0 /* QCloudEnv.h in Headers */ = {isa = PBXBuildFile; fileRef = 2C7383E4D223791146E5FFE99A9D3C81 /* QCloudEnv.h */; settings = {ATTRIBUTES = (Public, ); }; }; + FBBD6F4AE0F7F9AC2AB1E46E147BC15A /* SVGAVideoSpriteEntity.h in Headers */ = {isa = PBXBuildFile; fileRef = B6294F5B706E4071476626A139BF4F4C /* SVGAVideoSpriteEntity.h */; settings = {ATTRIBUTES = (Public, ); }; }; + FBF481A2EC25D99DC41914AE7B9754D2 /* mz_zip.c in Sources */ = {isa = PBXBuildFile; fileRef = 475515E230E6437FDA8F8391F5A38403 /* mz_zip.c */; }; + FBFF8C5EBFDE7C292A723916B8AD99BE /* QCloudConfiguration_Private.h in Headers */ = {isa = PBXBuildFile; fileRef = E409E85F125AF2F8DF9E7B8DEC0373A0 /* QCloudConfiguration_Private.h */; settings = {ATTRIBUTES = (Public, ); }; }; + FC16BB1D601656C4C5F0B8B2D2D38A65 /* RACTuple.h in Headers */ = {isa = PBXBuildFile; fileRef = E74B050A3D73D875D39BB6D402AECFFB /* RACTuple.h */; settings = {ATTRIBUTES = (Public, ); }; }; + FC2703E1BF0427C851947D86CD9CA154 /* NSNotificationCenter+VAPThreadSafe.m in Sources */ = {isa = PBXBuildFile; fileRef = AB2CCA7421225550F02BAD572D94F38B /* NSNotificationCenter+VAPThreadSafe.m */; }; + FC31BA25177C3A8AF59A49EBE8371C25 /* SDWebImagePrefetcher.h in Headers */ = {isa = PBXBuildFile; fileRef = D9099313D0213D6D25EC9DB1627C3A64 /* SDWebImagePrefetcher.h */; settings = {ATTRIBUTES = (Public, ); }; }; + FC599CF0F5824322639E7A6419A1B578 /* VoicePitchChanger.swift in Sources */ = {isa = PBXBuildFile; fileRef = C5713F1E75E1BD6748EF793FE83DD09D /* VoicePitchChanger.swift */; }; FC6533483B4FB1B610B47165C20DAD1B /* TUIRepliesDetailViewController_Minimalist.h in Headers */ = {isa = PBXBuildFile; fileRef = 445A9A7C0F1C7D8B8E5F398DCBC6DE01 /* TUIRepliesDetailViewController_Minimalist.h */; settings = {ATTRIBUTES = (Public, ); }; }; FC6E4E543E2E25E9C3A57234315C0153 /* TUIConversation_Minimalist.bundle in Resources */ = {isa = PBXBuildFile; fileRef = 7F5DFDDAA9C8958F354EB87E55C151C5 /* TUIConversation_Minimalist.bundle */; }; - FC82D0E6CF35BC1E7097340328C2E600 /* LLWindowManager+ShortCut.h in Headers */ = {isa = PBXBuildFile; fileRef = 93CFF13DF818C81535CCE2B63111760A /* LLWindowManager+ShortCut.h */; settings = {ATTRIBUTES = (Public, ); }; }; - FCA8946A40BE52876F991CF772C26AB3 /* YBIBLoadingView.m in Sources */ = {isa = PBXBuildFile; fileRef = 1878A5067AE8B0473732790299DBB133 /* YBIBLoadingView.m */; }; - FCACF69202105035E060CFD0563536AC /* OSSResult.h in Headers */ = {isa = PBXBuildFile; fileRef = BFD45B173D4C81AA909775CDF23A0F00 /* OSSResult.h */; settings = {ATTRIBUTES = (Public, ); }; }; + FC82D0E6CF35BC1E7097340328C2E600 /* LLWindowManager+ShortCut.h in Headers */ = {isa = PBXBuildFile; fileRef = A0EDD0BB750ACB2E6BA0ECBDEBBCEF9C /* LLWindowManager+ShortCut.h */; settings = {ATTRIBUTES = (Public, ); }; }; + FC940D3B007646EBE196BC52DF708AA7 /* SDImageAPNGCoder.h in Headers */ = {isa = PBXBuildFile; fileRef = 981B62113BD0DA69A54FB78AFEE784C2 /* SDImageAPNGCoder.h */; settings = {ATTRIBUTES = (Public, ); }; }; + FCA8946A40BE52876F991CF772C26AB3 /* YBIBLoadingView.m in Sources */ = {isa = PBXBuildFile; fileRef = 8621ABDAB8F588581CCF8E95882CFB98 /* YBIBLoadingView.m */; }; + FCACF69202105035E060CFD0563536AC /* OSSResult.h in Headers */ = {isa = PBXBuildFile; fileRef = 2D17F39F57A6545F841645C65D8D7100 /* OSSResult.h */; settings = {ATTRIBUTES = (Public, ); }; }; FCB1CEDE5AB601F4DA13C9F96B502366 /* TUIMessageCell_Minimalist.m in Sources */ = {isa = PBXBuildFile; fileRef = FDB1F9FD9C05C68C54D17F9D08BAB572 /* TUIMessageCell_Minimalist.m */; }; - FCCAA43CA462C699A1F0335B4A2C8784 /* TZPhotoPreviewCell.h in Headers */ = {isa = PBXBuildFile; fileRef = D0F4B6D3EB21B5225D98D6735CEFA345 /* TZPhotoPreviewCell.h */; settings = {ATTRIBUTES = (Public, ); }; }; + FCCAA43CA462C699A1F0335B4A2C8784 /* TZPhotoPreviewCell.h in Headers */ = {isa = PBXBuildFile; fileRef = 7471DE218C1C144E6BFEA24AFEE27EDC /* TZPhotoPreviewCell.h */; settings = {ATTRIBUTES = (Public, ); }; }; FCCF159D2E546F243A239980E83A680C /* TUIMotionManager.m in Sources */ = {isa = PBXBuildFile; fileRef = 86EDC1282AC260378B15FD17080CCBCC /* TUIMotionManager.m */; }; FCD70C8F3CBD5F05C877F72F7ABBADE3 /* TUIResponderTextView.h in Headers */ = {isa = PBXBuildFile; fileRef = 63CE1B06DD93E606DA49ADD24AE6B99D /* TUIResponderTextView.h */; settings = {ATTRIBUTES = (Public, ); }; }; FCDAF3B4FB8CAA91DBC651F64B7D7562 /* TUIReferenceMessageCell.h in Headers */ = {isa = PBXBuildFile; fileRef = 5AFC9CB5F23D10155D6DFC87F02C2E1A /* TUIReferenceMessageCell.h */; settings = {ATTRIBUTES = (Public, ); }; }; - FCECAF8AE496CADE0C4C72E1F5929C3F /* GPBExtensionRegistry.h in Headers */ = {isa = PBXBuildFile; fileRef = 1FC8955AE81C82455EBA2CD27CCDF355 /* GPBExtensionRegistry.h */; settings = {ATTRIBUTES = (Public, ); }; }; + FCECAF8AE496CADE0C4C72E1F5929C3F /* GPBExtensionRegistry.h in Headers */ = {isa = PBXBuildFile; fileRef = 0E1BCFEF87090D1F4DE111DD8866319F /* GPBExtensionRegistry.h */; settings = {ATTRIBUTES = (Public, ); }; }; FCF581215F5CE87C5D70639835A01EFC /* CoreTelephony.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 7D01B7A03D3A1CE42F6F8CA6C8FE217A /* CoreTelephony.framework */; }; - FD13C7C20817DCC877E0DEA3B1B5CD93 /* OfflinePushExtBusinessInfo.h in Headers */ = {isa = PBXBuildFile; fileRef = FF884162ACA1B990362FA3FBCD33B392 /* OfflinePushExtBusinessInfo.h */; settings = {ATTRIBUTES = (Public, ); }; }; - FD507DDBA6D51715FF5FDC82F374078E /* SDWebImageDownloaderConfig.m in Sources */ = {isa = PBXBuildFile; fileRef = 1B20C25F7405FD9E57B73C3A72FFFCB8 /* SDWebImageDownloaderConfig.m */; }; - FD9BA74BACBA3F59304DDF3D5BCF6119 /* RACArraySequence.h in Headers */ = {isa = PBXBuildFile; fileRef = 7F00E751F1A9E894E923D939629EC0FE /* RACArraySequence.h */; settings = {ATTRIBUTES = (Public, ); }; }; - FDACBA49610EA6F39CABB7FE44B137D1 /* AFImageDownloader.h in Headers */ = {isa = PBXBuildFile; fileRef = 1EF077E1326B5D643F8DA3DC7228C74E /* AFImageDownloader.h */; settings = {ATTRIBUTES = (Public, ); }; }; + FCFB3145B34CE84AB55E0CA6DE7E211B /* QCloudPingTester.h in Headers */ = {isa = PBXBuildFile; fileRef = 39F9B08441831B3354714594DA08CFC2 /* QCloudPingTester.h */; settings = {ATTRIBUTES = (Public, ); }; }; + FD0ADC95B4984384A28CC3EB33872C2A /* QCloudServiceConfiguration.h in Headers */ = {isa = PBXBuildFile; fileRef = D98CE44DF4F75957C6E7E2C3C766DEF2 /* QCloudServiceConfiguration.h */; settings = {ATTRIBUTES = (Public, ); }; }; + FD2132D091CD6AA660832FB4CC11903D /* endian_inl_utils.h in Headers */ = {isa = PBXBuildFile; fileRef = B1E8F50B7D434CCC63D637589A791128 /* endian_inl_utils.h */; settings = {ATTRIBUTES = (Project, ); }; }; + FD7BEA20AF6E50298AD19A071B673593 /* QCloudBizHTTPRequest+COSXML.m in Sources */ = {isa = PBXBuildFile; fileRef = 46E422104473A370B56E1E8DF29ACCE8 /* QCloudBizHTTPRequest+COSXML.m */; }; + FD9BA74BACBA3F59304DDF3D5BCF6119 /* RACArraySequence.h in Headers */ = {isa = PBXBuildFile; fileRef = 94F514CCC0F54DE94974B8D9BD3346D7 /* RACArraySequence.h */; settings = {ATTRIBUTES = (Public, ); }; }; + FDACBA49610EA6F39CABB7FE44B137D1 /* AFImageDownloader.h in Headers */ = {isa = PBXBuildFile; fileRef = AC2534F6DA9CD0DE92D5AD36466B46CC /* AFImageDownloader.h */; settings = {ATTRIBUTES = (Public, ); }; }; + FDC027B679C5A1486A728EBB274F8AB8 /* SDImageCodersManager.h in Headers */ = {isa = PBXBuildFile; fileRef = 47A8E8E73773FFA3CBADB473AD8A91AD /* SDImageCodersManager.h */; settings = {ATTRIBUTES = (Public, ); }; }; FDE250C5561704F09B09BA2926C6DEC8 /* ImageIO.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = A5B624A70D4735B79D27A4C5B4DA64AA /* ImageIO.framework */; }; - FE07C069C2E3543002CEB5D751ABA9AC /* AFNetworkReachabilityManager.m in Sources */ = {isa = PBXBuildFile; fileRef = FC1874DCF7E7B17BE82FE5D7F74E9D1D /* AFNetworkReachabilityManager.m */; }; - FE0B4A3709F834A9EC5C147987276572 /* NSDictionary+LL_Utils.h in Headers */ = {isa = PBXBuildFile; fileRef = 5E85D466DAF6130084249DD59520D273 /* NSDictionary+LL_Utils.h */; settings = {ATTRIBUTES = (Public, ); }; }; + FE07C069C2E3543002CEB5D751ABA9AC /* AFNetworkReachabilityManager.m in Sources */ = {isa = PBXBuildFile; fileRef = 26AEC3D2B8577B305151437FEAEB9A6A /* AFNetworkReachabilityManager.m */; }; + FE0B4A3709F834A9EC5C147987276572 /* NSDictionary+LL_Utils.h in Headers */ = {isa = PBXBuildFile; fileRef = 6115A8D16D865CDF496810AACA0A4B13 /* NSDictionary+LL_Utils.h */; settings = {ATTRIBUTES = (Public, ); }; }; FE0B7C0EA6FB0A9346F2671085840126 /* Accelerate.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 2F4078DA790DE5F4A9E0EBCD660768F7 /* Accelerate.framework */; }; - FE4522093C014032887A2B6E528FE6F9 /* lossless_enc_mips_dsp_r2.c in Sources */ = {isa = PBXBuildFile; fileRef = 47CB2AD9B30AFF104CD113C9F6BB2472 /* lossless_enc_mips_dsp_r2.c */; settings = {COMPILER_FLAGS = "-D_THREAD_SAFE -fno-objc-arc"; }; }; + FE1BAEFA244A1BC1D665D253C0D2CEF6 /* QCloudHTTPRequestOperation.m in Sources */ = {isa = PBXBuildFile; fileRef = AF957DE788B58BA05F425A7EA2790102 /* QCloudHTTPRequestOperation.m */; }; FE4995D7F84230347E1B451649D3CF33 /* TUIFitButton.h in Headers */ = {isa = PBXBuildFile; fileRef = DA7158A0AE4F7F12534DD3AF2C303645 /* TUIFitButton.h */; settings = {ATTRIBUTES = (Public, ); }; }; - FE506A926796FEECE1452B8E3AF93591 /* OSSRestoreObjectRequest.m in Sources */ = {isa = PBXBuildFile; fileRef = 967A3636407ACF40079E57F1C7A7F4FC /* OSSRestoreObjectRequest.m */; }; - FE85FAEB1109FA7AF4E29308C8BA3BCA /* YYCGUtilities.m in Sources */ = {isa = PBXBuildFile; fileRef = 734FEDEB0E4869A922BA927A05973BF3 /* YYCGUtilities.m */; }; + FE506A926796FEECE1452B8E3AF93591 /* OSSRestoreObjectRequest.m in Sources */ = {isa = PBXBuildFile; fileRef = B716F297BF2BB5EC6D457C8F094B3E05 /* OSSRestoreObjectRequest.m */; }; + FE85FAEB1109FA7AF4E29308C8BA3BCA /* YYCGUtilities.m in Sources */ = {isa = PBXBuildFile; fileRef = CE38FE9C7C3B869FB38E67A91A3BF617 /* YYCGUtilities.m */; }; FE8C500E9BB5B432F50E0700B0B4CDD8 /* TUIFoldListViewController.h in Headers */ = {isa = PBXBuildFile; fileRef = 89FAE2939EEAB7D3DDEE6DA7B3614A3E /* TUIFoldListViewController.h */; settings = {ATTRIBUTES = (Public, ); }; }; FEB61EDCA9CAB42EFCCF417DA4D0B32B /* TUIChatExtensionObserver_Minimalist.m in Sources */ = {isa = PBXBuildFile; fileRef = 4450B377B7446FB0491757E7C25B5BF0 /* TUIChatExtensionObserver_Minimalist.m */; }; FEB8FE6AA2ABECF7F7B25E57C24AD202 /* TUICameraMacro.h in Headers */ = {isa = PBXBuildFile; fileRef = D55F19B8100733EBC5A25A0FC5B27F3F /* TUICameraMacro.h */; settings = {ATTRIBUTES = (Public, ); }; }; - FEBA6D0B98CF73A496807E153799A820 /* OSSCancellationTokenRegistration.h in Headers */ = {isa = PBXBuildFile; fileRef = 5265C177C267DB0D19359CE70E54913A /* OSSCancellationTokenRegistration.h */; settings = {ATTRIBUTES = (Public, ); }; }; - FECD1EA2C6CBF49AD35E8C4F6F6C8C18 /* UIView+TZLayout.m in Sources */ = {isa = PBXBuildFile; fileRef = 7D91F0BC568DF526F575AE17E505DDDE /* UIView+TZLayout.m */; }; - FED7FE42FA286D4155E12417F17C9E5A /* LLWindowManager+Html.h in Headers */ = {isa = PBXBuildFile; fileRef = 8C0739797D471F6BB6CFD302504B6DE8 /* LLWindowManager+Html.h */; settings = {ATTRIBUTES = (Public, ); }; }; - FEE51E91B096D7A3BC157E02386ECC79 /* LLWidgetBorderWindow.m in Sources */ = {isa = PBXBuildFile; fileRef = BF04538E6DF381D857343A142F9DCFA6 /* LLWidgetBorderWindow.m */; }; - FEE883575278D5BE8F185437AB5DB3BB /* MJRefreshGifHeader.m in Sources */ = {isa = PBXBuildFile; fileRef = 180E8B14FBA98D060BE0B6BA6136D5DD /* MJRefreshGifHeader.m */; }; - FEFD66606CE72903093718DC2A2EFCFA /* SDImageIOAnimatedCoder.h in Headers */ = {isa = PBXBuildFile; fileRef = 282AD344C37FE6C97BC95AB40478A1A6 /* SDImageIOAnimatedCoder.h */; settings = {ATTRIBUTES = (Public, ); }; }; - FF298EDEF3741C40A1AB8FB9EE00CD2F /* RACMulticastConnection.h in Headers */ = {isa = PBXBuildFile; fileRef = B1B07F419F253B5ACE387A614AD2EA5A /* RACMulticastConnection.h */; settings = {ATTRIBUTES = (Public, ); }; }; - FF3D56C280E02DB5E0C40C4072C10660 /* SDWebImageWebPCoderDefine.m in Sources */ = {isa = PBXBuildFile; fileRef = D3C9DC3448E4B987779EC4167A93EF3D /* SDWebImageWebPCoderDefine.m */; }; + FEBA6D0B98CF73A496807E153799A820 /* OSSCancellationTokenRegistration.h in Headers */ = {isa = PBXBuildFile; fileRef = 4138A87F260183784A34F09B09809E36 /* OSSCancellationTokenRegistration.h */; settings = {ATTRIBUTES = (Public, ); }; }; + FECD1EA2C6CBF49AD35E8C4F6F6C8C18 /* UIView+TZLayout.m in Sources */ = {isa = PBXBuildFile; fileRef = 1593910178D38A66B74B5C24944CBECD /* UIView+TZLayout.m */; }; + FED7FE42FA286D4155E12417F17C9E5A /* LLWindowManager+Html.h in Headers */ = {isa = PBXBuildFile; fileRef = B6F5769BC1BCC9441BEC34B156174379 /* LLWindowManager+Html.h */; settings = {ATTRIBUTES = (Public, ); }; }; + FEE51E91B096D7A3BC157E02386ECC79 /* LLWidgetBorderWindow.m in Sources */ = {isa = PBXBuildFile; fileRef = 04F3305D1A23F19A8359301ABDB5F69F /* LLWidgetBorderWindow.m */; }; + FEE883575278D5BE8F185437AB5DB3BB /* MJRefreshGifHeader.m in Sources */ = {isa = PBXBuildFile; fileRef = F0E672C03917739DF51EEFBC4528E5E9 /* MJRefreshGifHeader.m */; }; + FF298EDEF3741C40A1AB8FB9EE00CD2F /* RACMulticastConnection.h in Headers */ = {isa = PBXBuildFile; fileRef = 2C1248D2950FAF4846F04C3D51F5CD46 /* RACMulticastConnection.h */; settings = {ATTRIBUTES = (Public, ); }; }; + FF37ADC82AF415499378A8618E43C9D3 /* SDImageCoder.m in Sources */ = {isa = PBXBuildFile; fileRef = 4BCBA05C056BE50368553A3FE1794CEF /* SDImageCoder.m */; }; + FF3D56C280E02DB5E0C40C4072C10660 /* SDWebImageWebPCoderDefine.m in Sources */ = {isa = PBXBuildFile; fileRef = 4F053A8BB4012F91DA472CE271FE0C3B /* SDWebImageWebPCoderDefine.m */; }; FF42D2A57915F2FE3652C3AA5E6940BB /* TUIOrderCellData.m in Sources */ = {isa = PBXBuildFile; fileRef = 292A986DB46CAE85E1C254720976D3F5 /* TUIOrderCellData.m */; }; - FF4CE1D89AB17ECD080B8C33CA9EB8CB /* ScoringCanvasView.swift in Sources */ = {isa = PBXBuildFile; fileRef = AF4200171D98AF34C3A7BAE2D2F7C9BC /* ScoringCanvasView.swift */; }; - FF500FD55C6C8DD8418FA2290B95811A /* SSZipCommon.h in Headers */ = {isa = PBXBuildFile; fileRef = D4C3D0176CBA55DA8C3B2C968E77902A /* SSZipCommon.h */; settings = {ATTRIBUTES = (Public, ); }; }; - FFBEB872AE0FCB8C1679BE8ACE279876 /* YYCategories.h in Headers */ = {isa = PBXBuildFile; fileRef = 6B789392E75B492153D080BFEB776638 /* YYCategories.h */; settings = {ATTRIBUTES = (Public, ); }; }; + FF4CE1D89AB17ECD080B8C33CA9EB8CB /* ScoringCanvasView.swift in Sources */ = {isa = PBXBuildFile; fileRef = E48DF8F4EC5948428E1C0BE1AF56C102 /* ScoringCanvasView.swift */; }; + FF500FD55C6C8DD8418FA2290B95811A /* SSZipCommon.h in Headers */ = {isa = PBXBuildFile; fileRef = 0F73B9A6B621D23A3C2DE4A36E856E3B /* SSZipCommon.h */; settings = {ATTRIBUTES = (Public, ); }; }; + FFBEB872AE0FCB8C1679BE8ACE279876 /* YYCategories.h in Headers */ = {isa = PBXBuildFile; fileRef = BFD4096F7B30D29E37016A981BCD4AB7 /* YYCategories.h */; settings = {ATTRIBUTES = (Public, ); }; }; FFE349C21A3DE6B516D462DFDF6A6197 /* TUIReferenceMessageCell_Minimalist.m in Sources */ = {isa = PBXBuildFile; fileRef = 752D582863FC7410A1035663E1F616D1 /* TUIReferenceMessageCell_Minimalist.m */; }; FFE3E0A7CEE2A23658267F0453D62C8D /* TUIVideoMessageCell_Minimalist.m in Sources */ = {isa = PBXBuildFile; fileRef = 398456EF8E6157E22F5A20834A6E7B2A /* TUIVideoMessageCell_Minimalist.m */; }; - FFFCC62769F93CB8547C2F1487620C90 /* SVGAParser.m in Sources */ = {isa = PBXBuildFile; fileRef = 905FBB50EB9A3EBAAF0F1DA8438DCF3E /* SVGAParser.m */; }; + FFFCC62769F93CB8547C2F1487620C90 /* SVGAParser.m in Sources */ = {isa = PBXBuildFile; fileRef = DF4C538B7B59BA11F52CC24B3932313F /* SVGAParser.m */; }; /* End PBXBuildFile section */ /* Begin PBXContainerItemProxy section */ - 01093F9EF5718532279A0BAB5B82A7C0 /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */; - proxyType = 1; - remoteGlobalIDString = 3847153A6E5EEFB86565BA840768F429; - remoteInfo = SDWebImage; - }; - 020AA3DAD770EFBBAA9E5897422CBBE0 /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */; - proxyType = 1; - remoteGlobalIDString = 8592E0E389D40AC17881400ADC67ABC0; - remoteInfo = FMDB; - }; - 04CA5E153E3B5DA89E5F39F725B4A14C /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */; - proxyType = 1; - remoteGlobalIDString = 2F7F7AAA1C81C1ECBEECAABE3C3609AC; - remoteInfo = AgoraInfra_iOS; - }; - 051BB28CF487CB0313CE6D1542E73175 /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */; - proxyType = 1; - remoteGlobalIDString = 4927495D845F79030185863355F5B96F; - remoteInfo = TIMPush; - }; - 05845572ACE764455145EBA401F96B4C /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */; - proxyType = 1; - remoteGlobalIDString = 0409F31E66073F5C1A3BBA08171DD017; - remoteInfo = "AgoraLyricsScore-AgoraLyricsScoreBundle"; - }; - 06CFF6FB8F40B3DA5A5F84276DF601EE /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */; - proxyType = 1; - remoteGlobalIDString = 43B293ED3108BC77CE12D6449EF3AA5F; - remoteInfo = AgoraLyricsScore; - }; - 0709C5963BB203A7E2B1F78CA9061B51 /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */; - proxyType = 1; - remoteGlobalIDString = 822E44240F2922DAB12018A6B649BD19; - remoteInfo = YYImage; - }; - 074F9B460B2D9071E8B8ABF81AEF5062 /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */; - proxyType = 1; - remoteGlobalIDString = 84B44807A12996D487A4A591A481D6A0; - remoteInfo = YYModel; - }; - 0775D6958DA34F8924379FD0E8A20B09 /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */; - proxyType = 1; - remoteGlobalIDString = FBA456CB50E371584C11231929A0971E; - remoteInfo = IQKeyboardManager; - }; - 0F4B061CFCF6CCA2C46A8A56468B9D98 /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */; - proxyType = 1; - remoteGlobalIDString = 7F18C31A804695333763EEC303E265D7; - remoteInfo = "WechatOpenSDK-XCFramework"; - }; - 1031B8FFCAC4AD17629B6C340BC5352A /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */; - proxyType = 1; - remoteGlobalIDString = B97FC50FB8C4390DDCCA281E85E7AD84; - remoteInfo = YBImageBrowser; - }; - 15BE9C5C6D144C4B882D6B996DE0C843 /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */; - proxyType = 1; - remoteGlobalIDString = C4E1020AF425614337737213AA26DBD5; - remoteInfo = JXPagingView; - }; - 1746C56D63A42BA46AA9CC8E8839FAF9 /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */; - proxyType = 1; - remoteGlobalIDString = 331902F14E62290AA86FB37CAAC6ABB0; - remoteInfo = "Protobuf-Protobuf_Privacy"; - }; - 1E22BFF7A33A33EC82742AFD52F1158A /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */; - proxyType = 1; - remoteGlobalIDString = 46196B0F15FB5453681E745A8C1700C8; - remoteInfo = TIMCommon; - }; - 1E9E3EAFA3B9007384E01748EDDB88F2 /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */; - proxyType = 1; - remoteGlobalIDString = 47D2E85A78C25869BB13521D8561A638; - remoteInfo = libwebp; - }; - 1EB449AF21A3A1CD16D5304EDE82774E /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */; - proxyType = 1; - remoteGlobalIDString = 8592E0E389D40AC17881400ADC67ABC0; - remoteInfo = FMDB; - }; - 1FC484B818464FAB3E6E74E141013C16 /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */; - proxyType = 1; - remoteGlobalIDString = 3847153A6E5EEFB86565BA840768F429; - remoteInfo = SDWebImage; - }; - 212053B25B14060E02A9DC614D1C34D5 /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */; - proxyType = 1; - remoteGlobalIDString = 31708EE6929C61C0EDA6F5DAE3AF9DB7; - remoteInfo = Zip; - }; - 22E7850C6CB71E1B93A91AFD1B8D7865 /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */; - proxyType = 1; - remoteGlobalIDString = 55AF53E6C77A10ED4985E04D74A8878E; - remoteInfo = Masonry; - }; - 247AE5EBE93E7B333DD744D6330A6D02 /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */; - proxyType = 1; - remoteGlobalIDString = 18D5937A1FF4E1064BDE592E5E9532EA; - remoteInfo = MQTTClient; - }; - 2EC380083EED54BB0A220146F55789CA /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */; - proxyType = 1; - remoteGlobalIDString = 7E6A8D6108E4537DCBFAFA98674E2A71; - remoteInfo = TUIConversation; - }; - 31937D9F1D33B30FCFEE16FD37C0C5AF /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */; - proxyType = 1; - remoteGlobalIDString = 4847ACB1E2799345AA74D9E317048D58; - remoteInfo = "AlipaySDK-iOS"; - }; - 3382B7A6C17923D08B6757924B2616EF /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */; - proxyType = 1; - remoteGlobalIDString = 55AF53E6C77A10ED4985E04D74A8878E; - remoteInfo = Masonry; - }; - 366F16D753772708BF0C95B5AB11C7BA /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */; - proxyType = 1; - remoteGlobalIDString = 8592E0E389D40AC17881400ADC67ABC0; - remoteInfo = FMDB; - }; - 368EF9A4D30CDB3C2E4987CE592DEC35 /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */; - proxyType = 1; - remoteGlobalIDString = FBF544DF4EBDEAD14CE7D3656AF4A18B; - remoteInfo = QGVAPlayer; - }; - 36A197C5137A42049FBCCF80351AA086 /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */; - proxyType = 1; - remoteGlobalIDString = CBED833AAD6266F3AEFE9BE31C68E094; - remoteInfo = SDCycleScrollView; - }; - 3721EF2D1883E75794FE471ABCE02315 /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */; - proxyType = 1; - remoteGlobalIDString = 7F18C31A804695333763EEC303E265D7; - remoteInfo = "WechatOpenSDK-XCFramework"; - }; - 3B4A1DE9D442732D9C0D9BA7A6777D64 /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */; - proxyType = 1; - remoteGlobalIDString = EB381B961261861E0643718E562995A8; - remoteInfo = TUICore; - }; - 3B657BE676FC481D8C2DE884DDA541B6 /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */; - proxyType = 1; - remoteGlobalIDString = 488E8C830C5A5694EE916251B9ADAADA; - remoteInfo = YYWebImage; - }; - 3D21594B69A5DDD7492EB7EA0A3054AF /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */; - proxyType = 1; - remoteGlobalIDString = 183C29DD6DE04D22CA29BAE61F5C530B; - remoteInfo = AgoraRtcEngine_iOS; - }; - 3E45D1CF20ACC6F47C861CAA819DA438 /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */; - proxyType = 1; - remoteGlobalIDString = 8F36C5664BEF7888A4F179030A11C598; - remoteInfo = "TUICore-TUICore_Privacy"; - }; - 413D20F8D71F8ED6DAEB51B964236752 /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */; - proxyType = 1; - remoteGlobalIDString = BB2154EC919CB4298C80ED396B322C5F; - remoteInfo = TXIMSDK_Plus_iOS_XCFramework; - }; - 41548FCEEAFED71596646284E6CD6165 /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */; - proxyType = 1; - remoteGlobalIDString = 82B0A41D3031FF27D78E17B0A9A46FB0; - remoteInfo = MBProgressHUD; - }; - 41D69BAD4F4611F7D96F7768FC5B88A7 /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */; - proxyType = 1; - remoteGlobalIDString = F60E38364AFF5E1349FF07415B944396; - remoteInfo = SSZipArchive; - }; - 4360F4CC351B3B59561A829929671EFE /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */; - proxyType = 1; - remoteGlobalIDString = 4A68CFD979D413A619DF631BB121D98F; - remoteInfo = Bugly; - }; - 48ACF972B0270AFE3988CC327288AB0C /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */; - proxyType = 1; - remoteGlobalIDString = CBED833AAD6266F3AEFE9BE31C68E094; - remoteInfo = SDCycleScrollView; - }; - 4A950B9A6DB9601D53D6163B57BD0DB2 /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */; - proxyType = 1; - remoteGlobalIDString = 438B238ACC7DF1178D1BCE1A31983146; - remoteInfo = ReactiveObjC; - }; - 4BD12C74C0B105C9026A0A905626AE69 /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */; - proxyType = 1; - remoteGlobalIDString = F71BF3AB61E6444B3140F0A3A86B2910; - remoteInfo = "TXIMSDK_Plus_iOS_XCFramework-TXIMSDK_Plus_iOS_XCFramework_Privacy"; - }; - 4CA647D61A9FB939ACE2F0C1ACDBDDD3 /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */; - proxyType = 1; - remoteGlobalIDString = D505645C3F99EB1E8B6529D64D2C3E1C; - remoteInfo = BRPickerView; - }; - 4EE4F5FC108E1DFB15C0370D75D5A22A /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */; - proxyType = 1; - remoteGlobalIDString = D505645C3F99EB1E8B6529D64D2C3E1C; - remoteInfo = BRPickerView; - }; - 50AA0BA3AFFC1AD0A6BC2C8335F1C1FB /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */; - proxyType = 1; - remoteGlobalIDString = 47D2E85A78C25869BB13521D8561A638; - remoteInfo = libwebp; - }; - 518A0816B64DB277DEEFA7367373AE0D /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */; - proxyType = 1; - remoteGlobalIDString = 31708EE6929C61C0EDA6F5DAE3AF9DB7; - remoteInfo = Zip; - }; - 51A9DAC7AA11125F42EB14AF2D3B62A3 /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */; - proxyType = 1; - remoteGlobalIDString = 49F1FB331F497E32873611039BAF1C27; - remoteInfo = AgoraComponetLog; - }; - 51AEF2EBA7D06130C7538E4D34EEF376 /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */; - proxyType = 1; - remoteGlobalIDString = C4E1020AF425614337737213AA26DBD5; - remoteInfo = JXPagingView; - }; - 591E01C5AB1C7E3B012D5ED05309380B /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */; - proxyType = 1; - remoteGlobalIDString = 8BEAFAA726C1965864B79B4B441AA513; - remoteInfo = JXCategoryView; - }; - 59711CAD7D54759472BC0BCD241BF328 /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */; - proxyType = 1; - remoteGlobalIDString = 438B238ACC7DF1178D1BCE1A31983146; - remoteInfo = ReactiveObjC; - }; - 5A09BE6F92DF5BF8EBEC72FBE17EC07C /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */; - proxyType = 1; - remoteGlobalIDString = 183C29DD6DE04D22CA29BAE61F5C530B; - remoteInfo = AgoraRtcEngine_iOS; - }; - 5FECA706195D5FB18464B389B138D065 /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */; - proxyType = 1; - remoteGlobalIDString = 43B293ED3108BC77CE12D6449EF3AA5F; - remoteInfo = AgoraLyricsScore; - }; - 602F0E9A8A16A6AEC2B4DFFB4557A7D6 /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */; - proxyType = 1; - remoteGlobalIDString = 05927177BD6FAFDF573D533A8665C859; - remoteInfo = TUIChat; - }; - 61B9AB47565D0C40B1DACAD49D3BCC2E /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */; - proxyType = 1; - remoteGlobalIDString = 3847153A6E5EEFB86565BA840768F429; - remoteInfo = SDWebImage; - }; - 644267CAE897A723959E81468079E728 /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */; - proxyType = 1; - remoteGlobalIDString = 4CF4590C80DA0BCFB23334523B614709; - remoteInfo = YYCategories; - }; - 644358C1414A29F154EDD1697B268D86 /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */; - proxyType = 1; - remoteGlobalIDString = BB2154EC919CB4298C80ED396B322C5F; - remoteInfo = TXIMSDK_Plus_iOS_XCFramework; - }; - 64CA7C6DA579D3CD5EAE23573E70BBCB /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */; - proxyType = 1; - remoteGlobalIDString = 470FE31978DC918618A329D8B55C85FF; - remoteInfo = Protobuf; - }; - 680BBA0EA595A4A79BF17CDBA3EE8D07 /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */; - proxyType = 1; - remoteGlobalIDString = 2F7F7AAA1C81C1ECBEECAABE3C3609AC; - remoteInfo = AgoraInfra_iOS; - }; - 69380FD672AD199FDF110DF331496F21 /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */; - proxyType = 1; - remoteGlobalIDString = FBC036FDFE401149B1CD899239D81CFA; - remoteInfo = "TUIConversation-TUIConversation_Privacy"; - }; - 69438CE734BBE1949313E07DEF140583 /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */; - proxyType = 1; - remoteGlobalIDString = 3847153A6E5EEFB86565BA840768F429; - remoteInfo = SDWebImage; - }; - 6C722F4BB03C576D4C3586B46BBD19A4 /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */; - proxyType = 1; - remoteGlobalIDString = 7E6A8D6108E4537DCBFAFA98674E2A71; - remoteInfo = TUIConversation; - }; - 7178AF8598196103A827A4116F759AEF /* PBXContainerItemProxy */ = { + 0029DCEA4AC4C88C5DDE7545C7812128 /* PBXContainerItemProxy */ = { isa = PBXContainerItemProxy; containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */; proxyType = 1; remoteGlobalIDString = 0130B3724283586C0E9D2A112D4F2AA1; remoteInfo = AFNetworking; }; - 73D24F5B76DDAFC9F6B00541CCEB5F2E /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */; - proxyType = 1; - remoteGlobalIDString = 3847153A6E5EEFB86565BA840768F429; - remoteInfo = SDWebImage; - }; - 755D808B8AFE191C142B2266AA4FED9A /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */; - proxyType = 1; - remoteGlobalIDString = 5A3DE9AE6F3A36E1625275AD8CEC43B4; - remoteInfo = LLDebugTool; - }; - 78AAB5E778453647E3F52ABB85E559D7 /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */; - proxyType = 1; - remoteGlobalIDString = B26054DF1DEA11585A231AF6D1D80D5E; - remoteInfo = "MJRefresh-MJRefresh.Privacy"; - }; - 7AE2F138264E6A7DB8DAC791CC118EF4 /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */; - proxyType = 1; - remoteGlobalIDString = 46196B0F15FB5453681E745A8C1700C8; - remoteInfo = TIMCommon; - }; - 7B1634DEE4A9C9AD2F56999A0265C9DD /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */; - proxyType = 1; - remoteGlobalIDString = F56DFD738FAB4E4F07F2D2E962EA3946; - remoteInfo = "TUIChat-TUIChat_Privacy"; - }; - 7B3306284B22E6E94DF1150E5D6CC8BA /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */; - proxyType = 1; - remoteGlobalIDString = 46196B0F15FB5453681E745A8C1700C8; - remoteInfo = TIMCommon; - }; - 7DB82F05DA6EDED64CC03376602FBA9A /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */; - proxyType = 1; - remoteGlobalIDString = A3672D206FD781B76503C6F6C0C8191A; - remoteInfo = "TIMPush-TIMPush_Privacy"; - }; - 7E9BE9B294C1348B3EE358E1D3DA19FE /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */; - proxyType = 1; - remoteGlobalIDString = 3847153A6E5EEFB86565BA840768F429; - remoteInfo = SDWebImage; - }; - 8396B7EEFBA03BC691544BC22CB25B1F /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */; - proxyType = 1; - remoteGlobalIDString = 438B238ACC7DF1178D1BCE1A31983146; - remoteInfo = ReactiveObjC; - }; - 8508702D6C46FD7EF82F22EAEEBD8D8C /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */; - proxyType = 1; - remoteGlobalIDString = 8BEAFAA726C1965864B79B4B441AA513; - remoteInfo = JXCategoryView; - }; - 8571BAABD5AE5D246956B42FE60BAD88 /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */; - proxyType = 1; - remoteGlobalIDString = 47D2E85A78C25869BB13521D8561A638; - remoteInfo = libwebp; - }; - 85EB59969C08A6ACCDD736472A493802 /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */; - proxyType = 1; - remoteGlobalIDString = A96BBB982D62BB807B5BD10774BE2D07; - remoteInfo = TZImagePickerController; - }; - 86B044B10A905DBD0B6539A644E09702 /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */; - proxyType = 1; - remoteGlobalIDString = 94CFBA7D633ECA58DF85C327B035E6A3; - remoteInfo = "SDWebImage-SDWebImage"; - }; - 88BB8CAA636A8C30B6D686B2D935A2E4 /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */; - proxyType = 1; - remoteGlobalIDString = CFDAE6EB02F58B9A37CADCF439AE6082; - remoteInfo = YYCache; - }; - 8BEB4624A9BEEEDA7B739274A4CFB8E2 /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */; - proxyType = 1; - remoteGlobalIDString = 3FA1E8E62E0263A4B0CA32E2D30D5BFC; - remoteInfo = AvoidCrash; - }; - 9173D151DEFE280BF5FA96D30AB247B8 /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */; - proxyType = 1; - remoteGlobalIDString = C1FD11F5F7EBFF63F845CDF963F73E1A; - remoteInfo = AliyunOSSiOS; - }; - 91D842DB6DB458643F4CC76A61C6DF8F /* PBXContainerItemProxy */ = { + 020891F66636A97959E12CCF051160CD /* PBXContainerItemProxy */ = { isa = PBXContainerItemProxy; containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */; proxyType = 1; remoteGlobalIDString = 4CF4590C80DA0BCFB23334523B614709; remoteInfo = YYCategories; }; - 93721CD41220C5857DE808B46FC0A65F /* PBXContainerItemProxy */ = { + 028557861E402973F8077C9376E7CBC3 /* PBXContainerItemProxy */ = { isa = PBXContainerItemProxy; containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */; proxyType = 1; - remoteGlobalIDString = 84B44807A12996D487A4A591A481D6A0; - remoteInfo = YYModel; + remoteGlobalIDString = 822E44240F2922DAB12018A6B649BD19; + remoteInfo = YYImage; }; - 953B51EB9EAD8770B58B4B07ABB48C48 /* PBXContainerItemProxy */ = { + 02F6311EAFAEFC38331D481A0FAE0C3B /* PBXContainerItemProxy */ = { isa = PBXContainerItemProxy; containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */; proxyType = 1; - remoteGlobalIDString = A9A94B2F47199AE29CDF9CF13F4D95CF; - remoteInfo = "TIMCommon-TIMCommon_Privacy"; + remoteGlobalIDString = 470FE31978DC918618A329D8B55C85FF; + remoteInfo = Protobuf; }; - 97BA0FD6BCF59AC47BA59DC4136DD2C6 /* PBXContainerItemProxy */ = { + 04DABAA35D35B88C47152374F21BD7EC /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */; + proxyType = 1; + remoteGlobalIDString = 8BEAFAA726C1965864B79B4B441AA513; + remoteInfo = JXCategoryView; + }; + 0652AD0FEB33FFA21855D67268259526 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */; + proxyType = 1; + remoteGlobalIDString = CFDAE6EB02F58B9A37CADCF439AE6082; + remoteInfo = YYCache; + }; + 07CC761A63DA4D49464DFF756E5D24E4 /* PBXContainerItemProxy */ = { isa = PBXContainerItemProxy; containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */; proxyType = 1; remoteGlobalIDString = 05B2A835D60F78761395189914B88047; remoteInfo = "IQKeyboardManager-IQKeyboardManager"; }; - 99B6E129773778C1F5B65162B1AE51DA /* PBXContainerItemProxy */ = { + 0952E0D150ED3103EF4A7CFA1C5804E8 /* PBXContainerItemProxy */ = { isa = PBXContainerItemProxy; containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */; proxyType = 1; - remoteGlobalIDString = FBA456CB50E371584C11231929A0971E; - remoteInfo = IQKeyboardManager; + remoteGlobalIDString = DBD31C8A3F2371ED732009637E95423D; + remoteInfo = QCloudCore; }; - 9A8DA57BF3201A9FA6E843196B6EFDB3 /* PBXContainerItemProxy */ = { + 09AAB4E5693870EA6C09BC124338463D /* PBXContainerItemProxy */ = { isa = PBXContainerItemProxy; containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */; proxyType = 1; - remoteGlobalIDString = 5D11A19D6943394EC1DDAB15A39FB827; - remoteInfo = "AliyunOSSiOS-AliyunOSSiOS_Privacy"; + remoteGlobalIDString = 7F18C31A804695333763EEC303E265D7; + remoteInfo = "WechatOpenSDK-XCFramework"; }; - 9B9E488A674B5E081D2C307B3C975F20 /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */; - proxyType = 1; - remoteGlobalIDString = 470FE31978DC918618A329D8B55C85FF; - remoteInfo = Protobuf; - }; - 9CA232270A4F54E89F0EA4554DF61E40 /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */; - proxyType = 1; - remoteGlobalIDString = F60E38364AFF5E1349FF07415B944396; - remoteInfo = SSZipArchive; - }; - 9CB8A95ACE84B9DEC8B7CAFA8ED9287B /* PBXContainerItemProxy */ = { + 09BC255FC6063AD2A45CD450B7BA0673 /* PBXContainerItemProxy */ = { isa = PBXContainerItemProxy; containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */; proxyType = 1; remoteGlobalIDString = 18D5937A1FF4E1064BDE592E5E9532EA; remoteInfo = MQTTClient; }; - 9DF899C53732ADF731510552260F6ADA /* PBXContainerItemProxy */ = { + 0B5E6DAAC9C3B97218B31CCDCC2AEC32 /* PBXContainerItemProxy */ = { isa = PBXContainerItemProxy; containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */; proxyType = 1; - remoteGlobalIDString = 822E44240F2922DAB12018A6B649BD19; - remoteInfo = YYImage; + remoteGlobalIDString = F71BF3AB61E6444B3140F0A3A86B2910; + remoteInfo = "TXIMSDK_Plus_iOS_XCFramework-TXIMSDK_Plus_iOS_XCFramework_Privacy"; }; - 9E1480ED41A5CCEBE12BEF817FCA8CF5 /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */; - proxyType = 1; - remoteGlobalIDString = 6868056D761E163D10FDAF8CF1C4D9B8; - remoteInfo = MJRefresh; - }; - 9E9D9604578C41517BAB7E74497166EC /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */; - proxyType = 1; - remoteGlobalIDString = EB381B961261861E0643718E562995A8; - remoteInfo = TUICore; - }; - 9F69D42ECBD909A98A28114D67D52D6C /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */; - proxyType = 1; - remoteGlobalIDString = B97FC50FB8C4390DDCCA281E85E7AD84; - remoteInfo = YBImageBrowser; - }; - A05E1F7F9BEEBFFEE330D9B243840D35 /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */; - proxyType = 1; - remoteGlobalIDString = C1FD11F5F7EBFF63F845CDF963F73E1A; - remoteInfo = AliyunOSSiOS; - }; - A42F0D7DA726BC0032DE2479C2DDF5D7 /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */; - proxyType = 1; - remoteGlobalIDString = 438B238ACC7DF1178D1BCE1A31983146; - remoteInfo = ReactiveObjC; - }; - AA28C343E95101F8EF08F4A2A51E8C5A /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */; - proxyType = 1; - remoteGlobalIDString = EB381B961261861E0643718E562995A8; - remoteInfo = TUICore; - }; - AE196FDD36DD11299524588DD478C0A0 /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */; - proxyType = 1; - remoteGlobalIDString = 6F5C17E80BD1B7F60A33F79692330A57; - remoteInfo = YYText; - }; - AE19CD62F443333E738E35938CEF351E /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */; - proxyType = 1; - remoteGlobalIDString = 438B238ACC7DF1178D1BCE1A31983146; - remoteInfo = ReactiveObjC; - }; - AEE1BDA5AC969F1F9ADEAF26F8773FEE /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */; - proxyType = 1; - remoteGlobalIDString = 6F5C17E80BD1B7F60A33F79692330A57; - remoteInfo = YYText; - }; - B114634FEB52A5B8DC1BDBA277B6E04C /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */; - proxyType = 1; - remoteGlobalIDString = 3FA1E8E62E0263A4B0CA32E2D30D5BFC; - remoteInfo = AvoidCrash; - }; - B198D6EEDBD054EA3CDBD951334AB827 /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */; - proxyType = 1; - remoteGlobalIDString = BB2154EC919CB4298C80ED396B322C5F; - remoteInfo = TXIMSDK_Plus_iOS_XCFramework; - }; - B3D4328E4EBEB73AB84B872516908F07 /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */; - proxyType = 1; - remoteGlobalIDString = EF4EFD5BE77B99AACFB0B7ACE03D198F; - remoteInfo = SVGAPlayer; - }; - B479D51A504EAA57EDACE79055420399 /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */; - proxyType = 1; - remoteGlobalIDString = BB2154EC919CB4298C80ED396B322C5F; - remoteInfo = TXIMSDK_Plus_iOS_XCFramework; - }; - B4B028383B099533841EA4B134558D96 /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */; - proxyType = 1; - remoteGlobalIDString = 5A3DE9AE6F3A36E1625275AD8CEC43B4; - remoteInfo = LLDebugTool; - }; - B4E8C3C25B6978DD93F13B6A87382261 /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */; - proxyType = 1; - remoteGlobalIDString = 470FE31978DC918618A329D8B55C85FF; - remoteInfo = Protobuf; - }; - B8271A7FCF41A52A835AD161BFCFDBCB /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */; - proxyType = 1; - remoteGlobalIDString = FBF544DF4EBDEAD14CE7D3656AF4A18B; - remoteInfo = QGVAPlayer; - }; - BAEA004701C70473ADFCE4E48657F9A5 /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */; - proxyType = 1; - remoteGlobalIDString = EF4EFD5BE77B99AACFB0B7ACE03D198F; - remoteInfo = SVGAPlayer; - }; - BC6251474E6E80633EF46AFD5D6CCBB1 /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */; - proxyType = 1; - remoteGlobalIDString = 3847153A6E5EEFB86565BA840768F429; - remoteInfo = SDWebImage; - }; - C1CA5D4215AE0632430CEF269224177C /* PBXContainerItemProxy */ = { + 0CB6AEAEC6651B4A2747C9FAFF7E62A9 /* PBXContainerItemProxy */ = { isa = PBXContainerItemProxy; containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */; proxyType = 1; remoteGlobalIDString = E79E29F55A2453370D27112480FCF6A2; remoteInfo = "JXCategoryView-JXCategoryView"; }; - C1F2303CB5CA1F1809AE17D91903F0A5 /* PBXContainerItemProxy */ = { + 108623F5739E2E3EE52F0E0BB2152C60 /* PBXContainerItemProxy */ = { isa = PBXContainerItemProxy; containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */; proxyType = 1; - remoteGlobalIDString = 49F1FB331F497E32873611039BAF1C27; - remoteInfo = AgoraComponetLog; + remoteGlobalIDString = 6F5C17E80BD1B7F60A33F79692330A57; + remoteInfo = YYText; }; - C282F96096823150EC41B425D2274B74 /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */; - proxyType = 1; - remoteGlobalIDString = 2F7F7AAA1C81C1ECBEECAABE3C3609AC; - remoteInfo = AgoraInfra_iOS; - }; - C3B1079E354838B045730F4643D010C6 /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */; - proxyType = 1; - remoteGlobalIDString = 5E1A429206107DAD9DA8C2C93A5BAFC5; - remoteInfo = TencentCloudHuiyanSDKFace_framework; - }; - C5A526947E4B0CD83375DC7959F92395 /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */; - proxyType = 1; - remoteGlobalIDString = 488E8C830C5A5694EE916251B9ADAADA; - remoteInfo = YYWebImage; - }; - C5F98D87822A2C16E7A3A7EAC58DFC4E /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */; - proxyType = 1; - remoteGlobalIDString = 82B0A41D3031FF27D78E17B0A9A46FB0; - remoteInfo = MBProgressHUD; - }; - C7322B130CDE432E072CA307B7133AA2 /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */; - proxyType = 1; - remoteGlobalIDString = 49F1FB331F497E32873611039BAF1C27; - remoteInfo = AgoraComponetLog; - }; - C7C86951B95F7E3148DF1CA308ED9079 /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */; - proxyType = 1; - remoteGlobalIDString = EB381B961261861E0643718E562995A8; - remoteInfo = TUICore; - }; - C9BF3ED2D4D7072FCB102D99E84E41C4 /* PBXContainerItemProxy */ = { + 1281264C00145AC68F1F17C3C57DF63D /* PBXContainerItemProxy */ = { isa = PBXContainerItemProxy; containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */; proxyType = 1; remoteGlobalIDString = 4927495D845F79030185863355F5B96F; remoteInfo = TIMPush; }; - CF23EB2333BEEB93D576B2F2D4452258 /* PBXContainerItemProxy */ = { + 159B162B5E46A6E9284F7BC3EEDFD97D /* PBXContainerItemProxy */ = { isa = PBXContainerItemProxy; containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */; proxyType = 1; - remoteGlobalIDString = 5E1A429206107DAD9DA8C2C93A5BAFC5; - remoteInfo = TencentCloudHuiyanSDKFace_framework; + remoteGlobalIDString = B97FC50FB8C4390DDCCA281E85E7AD84; + remoteInfo = YBImageBrowser; }; - D2D562F7290C2A4FEA87EAF9D2FB9165 /* PBXContainerItemProxy */ = { + 15AAC6306C4DACCC73B6C5215006F0BD /* PBXContainerItemProxy */ = { isa = PBXContainerItemProxy; containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */; proxyType = 1; remoteGlobalIDString = 1953860EA9853AA2BC8022B242F08512; remoteInfo = SDWebImageWebPCoder; }; - D64D314DCE7326E18128C2477AC936DA /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */; - proxyType = 1; - remoteGlobalIDString = 1953860EA9853AA2BC8022B242F08512; - remoteInfo = SDWebImageWebPCoder; - }; - D76A4E4C5518751114122060AA2E5792 /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */; - proxyType = 1; - remoteGlobalIDString = 6868056D761E163D10FDAF8CF1C4D9B8; - remoteInfo = MJRefresh; - }; - DB360EB8C09C6A33CD833E5145C89291 /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */; - proxyType = 1; - remoteGlobalIDString = CFDAE6EB02F58B9A37CADCF439AE6082; - remoteInfo = YYCache; - }; - DB528EC6BD97D016D74AA384AC9B52C3 /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */; - proxyType = 1; - remoteGlobalIDString = EB381B961261861E0643718E562995A8; - remoteInfo = TUICore; - }; - DBB622B76CD3ECE6239C40F6001DB8DA /* PBXContainerItemProxy */ = { + 1C578EC7E8798F8C9B3105C93F8EF2BC /* PBXContainerItemProxy */ = { isa = PBXContainerItemProxy; containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */; proxyType = 1; remoteGlobalIDString = 31708EE6929C61C0EDA6F5DAE3AF9DB7; remoteInfo = Zip; }; - DEC69336680DDEBD1D013230513F182B /* PBXContainerItemProxy */ = { + 1D4028B5653790FD7C1664A8F8B44706 /* PBXContainerItemProxy */ = { isa = PBXContainerItemProxy; containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */; proxyType = 1; - remoteGlobalIDString = 4A68CFD979D413A619DF631BB121D98F; - remoteInfo = Bugly; + remoteGlobalIDString = 3FA1E8E62E0263A4B0CA32E2D30D5BFC; + remoteInfo = AvoidCrash; }; - E5D34CEEAAF928E7446EB3BAE9FEAEB2 /* PBXContainerItemProxy */ = { + 1D5E043B52D2F4553BBC41EE9CDA6495 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */; + proxyType = 1; + remoteGlobalIDString = 438B238ACC7DF1178D1BCE1A31983146; + remoteInfo = ReactiveObjC; + }; + 1F2591DAB90FBBADED218A0035E01B6A /* PBXContainerItemProxy */ = { isa = PBXContainerItemProxy; containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */; proxyType = 1; remoteGlobalIDString = 46196B0F15FB5453681E745A8C1700C8; remoteInfo = TIMCommon; }; - E6C8AD52F9E4B836C8907382E6013A48 /* PBXContainerItemProxy */ = { + 237A2C43FD43EFA1B999B025652DDE9C /* PBXContainerItemProxy */ = { isa = PBXContainerItemProxy; containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */; proxyType = 1; - remoteGlobalIDString = 822E44240F2922DAB12018A6B649BD19; - remoteInfo = YYImage; + remoteGlobalIDString = 5E1A429206107DAD9DA8C2C93A5BAFC5; + remoteInfo = TencentCloudHuiyanSDKFace_framework; }; - E731FC5349CF0D8771140A3C362149F7 /* PBXContainerItemProxy */ = { + 24550EF6EEB669CFD077E84C5EED2159 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */; + proxyType = 1; + remoteGlobalIDString = 84B44807A12996D487A4A591A481D6A0; + remoteInfo = YYModel; + }; + 28F10095BD55DDB900D01FB05E0CC845 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */; + proxyType = 1; + remoteGlobalIDString = 8F36C5664BEF7888A4F179030A11C598; + remoteInfo = "TUICore-TUICore_Privacy"; + }; + 2BD935484349F98B50BCD16507C92672 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */; + proxyType = 1; + remoteGlobalIDString = 5A3DE9AE6F3A36E1625275AD8CEC43B4; + remoteInfo = LLDebugTool; + }; + 2C7DF2A99416F4BFF98E997742A2328A /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */; + proxyType = 1; + remoteGlobalIDString = FBC036FDFE401149B1CD899239D81CFA; + remoteInfo = "TUIConversation-TUIConversation_Privacy"; + }; + 2EB0896D7C53E6E57D4A8D604F821CB1 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */; + proxyType = 1; + remoteGlobalIDString = BB2154EC919CB4298C80ED396B322C5F; + remoteInfo = TXIMSDK_Plus_iOS_XCFramework; + }; + 310E8D091602C594A87258D86026A686 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */; + proxyType = 1; + remoteGlobalIDString = 47D2E85A78C25869BB13521D8561A638; + remoteInfo = libwebp; + }; + 3157F3A5741DB4A4370ECDCE9A21D4B5 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */; + proxyType = 1; + remoteGlobalIDString = 7F18C31A804695333763EEC303E265D7; + remoteInfo = "WechatOpenSDK-XCFramework"; + }; + 32798F602FF0B7FFA6DC2B02A6531C23 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */; + proxyType = 1; + remoteGlobalIDString = 47D2E85A78C25869BB13521D8561A638; + remoteInfo = libwebp; + }; + 37C19017C031E834BDF333968302D1D2 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */; + proxyType = 1; + remoteGlobalIDString = 3FA1E8E62E0263A4B0CA32E2D30D5BFC; + remoteInfo = AvoidCrash; + }; + 3861F460E1B6091DC8452D33525D04BB /* PBXContainerItemProxy */ = { isa = PBXContainerItemProxy; containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */; proxyType = 1; remoteGlobalIDString = 973B9A51B49701F13767694DCAF5C37D; remoteInfo = "FMDB-FMDB_Privacy"; }; - EA668A66672814C88B3A7B811AF8FD7E /* PBXContainerItemProxy */ = { + 3984F2A2E338DFC75AABF982EC317FA6 /* PBXContainerItemProxy */ = { isa = PBXContainerItemProxy; containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */; proxyType = 1; - remoteGlobalIDString = 0130B3724283586C0E9D2A112D4F2AA1; - remoteInfo = AFNetworking; + remoteGlobalIDString = 2F7F7AAA1C81C1ECBEECAABE3C3609AC; + remoteInfo = AgoraInfra_iOS; }; - EC23F0E21FE2C66548BA927F834F0B6D /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */; - proxyType = 1; - remoteGlobalIDString = 55AF53E6C77A10ED4985E04D74A8878E; - remoteInfo = Masonry; - }; - EDF92B278F02743922ADD10F68A84829 /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */; - proxyType = 1; - remoteGlobalIDString = 822E44240F2922DAB12018A6B649BD19; - remoteInfo = YYImage; - }; - F18D5B5CDBE5433D69E97784EB610414 /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */; - proxyType = 1; - remoteGlobalIDString = CFDAE6EB02F58B9A37CADCF439AE6082; - remoteInfo = YYCache; - }; - F357CD4CAA0E8E87EABCB03D0B622102 /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */; - proxyType = 1; - remoteGlobalIDString = 4847ACB1E2799345AA74D9E317048D58; - remoteInfo = "AlipaySDK-iOS"; - }; - F55FEBB16B313B8383096D3D74CDBACA /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */; - proxyType = 1; - remoteGlobalIDString = 16704C6B67439DA959DB043702C75A7A; - remoteInfo = "JXPagingView-JXPagerView"; - }; - F59C16145EF6FD2A99BFFEC69FAC681F /* PBXContainerItemProxy */ = { + 3A15BE3BA831AB6D82AF832865D3660D /* PBXContainerItemProxy */ = { isa = PBXContainerItemProxy; containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */; proxyType = 1; remoteGlobalIDString = F60E38364AFF5E1349FF07415B944396; remoteInfo = SSZipArchive; }; - FA1467CBC41D83BE77BE1278B2B61E79 /* PBXContainerItemProxy */ = { + 3CD0EF4C5259194763E690E53C221A2B /* PBXContainerItemProxy */ = { isa = PBXContainerItemProxy; containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */; proxyType = 1; - remoteGlobalIDString = 941104F296513E17138328984384286C; - remoteInfo = "BRPickerView-BRPickerView.Privacy"; + remoteGlobalIDString = 470FE31978DC918618A329D8B55C85FF; + remoteInfo = Protobuf; }; - FB32483A8FF3B785A9E1B44263DB1C8B /* PBXContainerItemProxy */ = { + 3D45E1FB45BC564A44D478DDE8710D22 /* PBXContainerItemProxy */ = { isa = PBXContainerItemProxy; containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */; proxyType = 1; - remoteGlobalIDString = 3847153A6E5EEFB86565BA840768F429; - remoteInfo = SDWebImage; + remoteGlobalIDString = D505645C3F99EB1E8B6529D64D2C3E1C; + remoteInfo = BRPickerView; }; - FD62F8498F4BB0C047A954EBB37B409F /* PBXContainerItemProxy */ = { + 3D51294011CC41FA02FF2849C353E2A0 /* PBXContainerItemProxy */ = { isa = PBXContainerItemProxy; containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */; proxyType = 1; - remoteGlobalIDString = A96BBB982D62BB807B5BD10774BE2D07; - remoteInfo = TZImagePickerController; + remoteGlobalIDString = 5E1A429206107DAD9DA8C2C93A5BAFC5; + remoteInfo = TencentCloudHuiyanSDKFace_framework; }; - FDBBC8C0996C0AAA002152BDAB03C61F /* PBXContainerItemProxy */ = { + 3D76DC33B64A38970EDB33D4B270C2BC /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */; + proxyType = 1; + remoteGlobalIDString = 49F1FB331F497E32873611039BAF1C27; + remoteInfo = AgoraComponetLog; + }; + 3DA5736C9D9C98245361FB63B57F5CF2 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */; + proxyType = 1; + remoteGlobalIDString = EB381B961261861E0643718E562995A8; + remoteInfo = TUICore; + }; + 3EDCF4C545B6759DF67D524989807F98 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */; + proxyType = 1; + remoteGlobalIDString = 7E6A8D6108E4537DCBFAFA98674E2A71; + remoteInfo = TUIConversation; + }; + 41094FC104272DEC00E861120E8F0F7A /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */; + proxyType = 1; + remoteGlobalIDString = C1FD11F5F7EBFF63F845CDF963F73E1A; + remoteInfo = AliyunOSSiOS; + }; + 41A43E1AC329881F60B7766205E64985 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */; + proxyType = 1; + remoteGlobalIDString = 183C29DD6DE04D22CA29BAE61F5C530B; + remoteInfo = AgoraRtcEngine_iOS; + }; + 4442227DC45815DC3B0E2DA7A2A25EF8 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */; + proxyType = 1; + remoteGlobalIDString = 822E44240F2922DAB12018A6B649BD19; + remoteInfo = YYImage; + }; + 45C9C7E95BB419E9FDF6CC13F7FB59E2 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */; + proxyType = 1; + remoteGlobalIDString = FBF544DF4EBDEAD14CE7D3656AF4A18B; + remoteInfo = QGVAPlayer; + }; + 45EC9278BFD02DA63B5A3B2772FE32DA /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */; + proxyType = 1; + remoteGlobalIDString = 0409F31E66073F5C1A3BBA08171DD017; + remoteInfo = "AgoraLyricsScore-AgoraLyricsScoreBundle"; + }; + 480A87FA39770E9196796FB6EFE15F46 /* PBXContainerItemProxy */ = { isa = PBXContainerItemProxy; containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */; proxyType = 1; remoteGlobalIDString = 05927177BD6FAFDF573D533A8665C859; remoteInfo = TUIChat; }; + 49CC4658896CF5872EBA36EABC8C3098 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */; + proxyType = 1; + remoteGlobalIDString = 43B293ED3108BC77CE12D6449EF3AA5F; + remoteInfo = AgoraLyricsScore; + }; + 4AAE1FC807145DC21418D6028197EF7B /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */; + proxyType = 1; + remoteGlobalIDString = 49F1FB331F497E32873611039BAF1C27; + remoteInfo = AgoraComponetLog; + }; + 4BE456AF0CDEEE4AE5F8320B05C84875 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */; + proxyType = 1; + remoteGlobalIDString = B2155DC9E9B69430B6C78F3E6D06BACF; + remoteInfo = QCloudCOSXML; + }; + 4CB767C2134601903D4C00B2322B6FDA /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */; + proxyType = 1; + remoteGlobalIDString = 3847153A6E5EEFB86565BA840768F429; + remoteInfo = SDWebImage; + }; + 4F31066B4A5C6619D5880F4069EEFE98 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */; + proxyType = 1; + remoteGlobalIDString = 5A3DE9AE6F3A36E1625275AD8CEC43B4; + remoteInfo = LLDebugTool; + }; + 500760E24363ECDF7890F0D69D11C3AD /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */; + proxyType = 1; + remoteGlobalIDString = 822E44240F2922DAB12018A6B649BD19; + remoteInfo = YYImage; + }; + 501FD2611F90677E2656783AFD5A3672 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */; + proxyType = 1; + remoteGlobalIDString = FBF544DF4EBDEAD14CE7D3656AF4A18B; + remoteInfo = QGVAPlayer; + }; + 50A7C44D30473B9AF60C176F2D361614 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */; + proxyType = 1; + remoteGlobalIDString = 16704C6B67439DA959DB043702C75A7A; + remoteInfo = "JXPagingView-JXPagerView"; + }; + 52EB9919A62F3979C12CCBB07021EEBB /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */; + proxyType = 1; + remoteGlobalIDString = 43B293ED3108BC77CE12D6449EF3AA5F; + remoteInfo = AgoraLyricsScore; + }; + 5459B75ABEE9F255EB0293FAEB3A9F42 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */; + proxyType = 1; + remoteGlobalIDString = 55AF53E6C77A10ED4985E04D74A8878E; + remoteInfo = Masonry; + }; + 576D780D64039138ADFE2DE8A0E8D0A4 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */; + proxyType = 1; + remoteGlobalIDString = 8592E0E389D40AC17881400ADC67ABC0; + remoteInfo = FMDB; + }; + 59FFFE0EA691487F70851399F4DE2172 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */; + proxyType = 1; + remoteGlobalIDString = C4E1020AF425614337737213AA26DBD5; + remoteInfo = JXPagingView; + }; + 5C9AC1DB7EA0D2557EE7343EEFFB9FD4 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */; + proxyType = 1; + remoteGlobalIDString = 2F7F7AAA1C81C1ECBEECAABE3C3609AC; + remoteInfo = AgoraInfra_iOS; + }; + 5CA7DA26B29C599B586021D786100313 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */; + proxyType = 1; + remoteGlobalIDString = 488E8C830C5A5694EE916251B9ADAADA; + remoteInfo = YYWebImage; + }; + 5E7BD4CBFF52513F2165C47BF7B13F0D /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */; + proxyType = 1; + remoteGlobalIDString = 3847153A6E5EEFB86565BA840768F429; + remoteInfo = SDWebImage; + }; + 61D46D74EDAD4F83DB0A6A0D0FD6124C /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */; + proxyType = 1; + remoteGlobalIDString = 3847153A6E5EEFB86565BA840768F429; + remoteInfo = SDWebImage; + }; + 628121684B04DE0EBD44BA2B43690247 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */; + proxyType = 1; + remoteGlobalIDString = EB381B961261861E0643718E562995A8; + remoteInfo = TUICore; + }; + 63D08DF051D6CDA4F8FA805DA51355C3 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */; + proxyType = 1; + remoteGlobalIDString = 438B238ACC7DF1178D1BCE1A31983146; + remoteInfo = ReactiveObjC; + }; + 64AB6FC47DE5C3BCE3AB43F9F11D23A9 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */; + proxyType = 1; + remoteGlobalIDString = FBA456CB50E371584C11231929A0971E; + remoteInfo = IQKeyboardManager; + }; + 679696E6F73A37D2F4D883C3233EB704 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */; + proxyType = 1; + remoteGlobalIDString = 470FE31978DC918618A329D8B55C85FF; + remoteInfo = Protobuf; + }; + 6B0EECF76C24E4F2A0AE6FFA51CFCB05 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */; + proxyType = 1; + remoteGlobalIDString = CFDAE6EB02F58B9A37CADCF439AE6082; + remoteInfo = YYCache; + }; + 6B9724217F5575F58C0FABF2B76DFBA4 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */; + proxyType = 1; + remoteGlobalIDString = 438B238ACC7DF1178D1BCE1A31983146; + remoteInfo = ReactiveObjC; + }; + 6D3AF90D318A9DEA4591D1395A8C1367 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */; + proxyType = 1; + remoteGlobalIDString = C4E1020AF425614337737213AA26DBD5; + remoteInfo = JXPagingView; + }; + 6EB558D513B879598E51C0F9F64B6EE0 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */; + proxyType = 1; + remoteGlobalIDString = 6F5C17E80BD1B7F60A33F79692330A57; + remoteInfo = YYText; + }; + 714338FADA42542BEAAF434CA9D7016E /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */; + proxyType = 1; + remoteGlobalIDString = B26054DF1DEA11585A231AF6D1D80D5E; + remoteInfo = "MJRefresh-MJRefresh.Privacy"; + }; + 732EE6B42CAE5FD65F332A7817CE0BE0 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */; + proxyType = 1; + remoteGlobalIDString = 4847ACB1E2799345AA74D9E317048D58; + remoteInfo = "AlipaySDK-iOS"; + }; + 74A5CF175C93FFF5139D6B689616E8CB /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */; + proxyType = 1; + remoteGlobalIDString = 4CF4590C80DA0BCFB23334523B614709; + remoteInfo = YYCategories; + }; + 75E27EAD9B648921F61C9ABBA4CBEFAE /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */; + proxyType = 1; + remoteGlobalIDString = 31708EE6929C61C0EDA6F5DAE3AF9DB7; + remoteInfo = Zip; + }; + 796D5237F0B25CC172A59C0E55D2A89D /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */; + proxyType = 1; + remoteGlobalIDString = 47D2E85A78C25869BB13521D8561A638; + remoteInfo = libwebp; + }; + 7C2BDCF1DE010557B9D78050BE8C21B6 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */; + proxyType = 1; + remoteGlobalIDString = F60E38364AFF5E1349FF07415B944396; + remoteInfo = SSZipArchive; + }; + 7FB626BD27CD09AC0C07DDEA8F1ACE6B /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */; + proxyType = 1; + remoteGlobalIDString = 4847ACB1E2799345AA74D9E317048D58; + remoteInfo = "AlipaySDK-iOS"; + }; + 80EC13B5260679E745963371D6ECF68E /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */; + proxyType = 1; + remoteGlobalIDString = 4927495D845F79030185863355F5B96F; + remoteInfo = TIMPush; + }; + 82A242C2FD08D660440BA3C9A869ABF5 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */; + proxyType = 1; + remoteGlobalIDString = 3847153A6E5EEFB86565BA840768F429; + remoteInfo = SDWebImage; + }; + 84E3A5308B439C1EFA044ECD8B9A38C8 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */; + proxyType = 1; + remoteGlobalIDString = 84B44807A12996D487A4A591A481D6A0; + remoteInfo = YYModel; + }; + 88E30E6E51B37F5BD260E3376D6FA658 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */; + proxyType = 1; + remoteGlobalIDString = BB2154EC919CB4298C80ED396B322C5F; + remoteInfo = TXIMSDK_Plus_iOS_XCFramework; + }; + 8A1D6514AA1BCEFE43C58F427F04CD47 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */; + proxyType = 1; + remoteGlobalIDString = 49F1FB331F497E32873611039BAF1C27; + remoteInfo = AgoraComponetLog; + }; + 8F908A2F824D8F80641268B41277AB4A /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */; + proxyType = 1; + remoteGlobalIDString = 94CFBA7D633ECA58DF85C327B035E6A3; + remoteInfo = "SDWebImage-SDWebImage"; + }; + 91F6915B9C2691E207F50667D0C6CC64 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */; + proxyType = 1; + remoteGlobalIDString = 3847153A6E5EEFB86565BA840768F429; + remoteInfo = SDWebImage; + }; + 9293289AEDC21A818C527958E375C15D /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */; + proxyType = 1; + remoteGlobalIDString = 6868056D761E163D10FDAF8CF1C4D9B8; + remoteInfo = MJRefresh; + }; + 94AC921FAE058EF778BBCA29ABC27740 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */; + proxyType = 1; + remoteGlobalIDString = 3847153A6E5EEFB86565BA840768F429; + remoteInfo = SDWebImage; + }; + 9575AD4B351933C5F7CF2F49DCC4E628 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */; + proxyType = 1; + remoteGlobalIDString = 46196B0F15FB5453681E745A8C1700C8; + remoteInfo = TIMCommon; + }; + 96D867B7C5AE3119C286CD14E2631376 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */; + proxyType = 1; + remoteGlobalIDString = A3672D206FD781B76503C6F6C0C8191A; + remoteInfo = "TIMPush-TIMPush_Privacy"; + }; + 9BF107EA92F565EFA85837758B1E142C /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */; + proxyType = 1; + remoteGlobalIDString = 8592E0E389D40AC17881400ADC67ABC0; + remoteInfo = FMDB; + }; + 9F0F3F56088E77C966B91A4F9891CCFA /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */; + proxyType = 1; + remoteGlobalIDString = 8BEAFAA726C1965864B79B4B441AA513; + remoteInfo = JXCategoryView; + }; + A0B5A23982AE8343659A22CBF7543D8E /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */; + proxyType = 1; + remoteGlobalIDString = 4A68CFD979D413A619DF631BB121D98F; + remoteInfo = Bugly; + }; + A0CA705AFB83A288989431AA25A90AFB /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */; + proxyType = 1; + remoteGlobalIDString = 438B238ACC7DF1178D1BCE1A31983146; + remoteInfo = ReactiveObjC; + }; + A174F9D7A404D2D8F73E0D0E6028BD63 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */; + proxyType = 1; + remoteGlobalIDString = 183C29DD6DE04D22CA29BAE61F5C530B; + remoteInfo = AgoraRtcEngine_iOS; + }; + A21200E15CFA9DE8BEE6021B398C2441 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */; + proxyType = 1; + remoteGlobalIDString = 31708EE6929C61C0EDA6F5DAE3AF9DB7; + remoteInfo = Zip; + }; + A30CD380CB2DF1855F4C05204D761FEC /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */; + proxyType = 1; + remoteGlobalIDString = 18D5937A1FF4E1064BDE592E5E9532EA; + remoteInfo = MQTTClient; + }; + A520E99F4820C26F0FCB9919DB466742 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */; + proxyType = 1; + remoteGlobalIDString = 822E44240F2922DAB12018A6B649BD19; + remoteInfo = YYImage; + }; + A8823BF30F6E0DD84F79DEE760D3FE24 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */; + proxyType = 1; + remoteGlobalIDString = 1953860EA9853AA2BC8022B242F08512; + remoteInfo = SDWebImageWebPCoder; + }; + AA6F2C893F10328E2C7F2EF987884F52 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */; + proxyType = 1; + remoteGlobalIDString = C1FD11F5F7EBFF63F845CDF963F73E1A; + remoteInfo = AliyunOSSiOS; + }; + AACEEBFE9082FD3F762B5BF07BC66668 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */; + proxyType = 1; + remoteGlobalIDString = BB2154EC919CB4298C80ED396B322C5F; + remoteInfo = TXIMSDK_Plus_iOS_XCFramework; + }; + ADFF61EAF4459FB2F5F4CBE6F28D765A /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */; + proxyType = 1; + remoteGlobalIDString = 46196B0F15FB5453681E745A8C1700C8; + remoteInfo = TIMCommon; + }; + AF7847F1777DF2A310767328A6D6F837 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */; + proxyType = 1; + remoteGlobalIDString = DBD31C8A3F2371ED732009637E95423D; + remoteInfo = QCloudCore; + }; + B047959F7DFF5AB101284FD51A05F538 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */; + proxyType = 1; + remoteGlobalIDString = 3847153A6E5EEFB86565BA840768F429; + remoteInfo = SDWebImage; + }; + B3451F3E8C4912090BA5B338CCCDA977 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */; + proxyType = 1; + remoteGlobalIDString = 55AF53E6C77A10ED4985E04D74A8878E; + remoteInfo = Masonry; + }; + B3AD63BCFBE1E5DF8B85D2F368E49FCA /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */; + proxyType = 1; + remoteGlobalIDString = 2F7F7AAA1C81C1ECBEECAABE3C3609AC; + remoteInfo = AgoraInfra_iOS; + }; + B7DE55517B61AEE736981DA1AA0164E0 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */; + proxyType = 1; + remoteGlobalIDString = 5D11A19D6943394EC1DDAB15A39FB827; + remoteInfo = "AliyunOSSiOS-AliyunOSSiOS_Privacy"; + }; + BBE3140C15182EB5C795C43E74778A6B /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */; + proxyType = 1; + remoteGlobalIDString = EF4EFD5BE77B99AACFB0B7ACE03D198F; + remoteInfo = SVGAPlayer; + }; + C1FD4CF95EE51B508128C889D813DD5F /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */; + proxyType = 1; + remoteGlobalIDString = 438B238ACC7DF1178D1BCE1A31983146; + remoteInfo = ReactiveObjC; + }; + C336193CEF49DBBA2913F599EC1F0E53 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */; + proxyType = 1; + remoteGlobalIDString = 4A68CFD979D413A619DF631BB121D98F; + remoteInfo = Bugly; + }; + C3D139DEB51FED1DBEE1535CADA37B24 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */; + proxyType = 1; + remoteGlobalIDString = EB381B961261861E0643718E562995A8; + remoteInfo = TUICore; + }; + C7B5F25C9AD4E697541DAE41932D09CD /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */; + proxyType = 1; + remoteGlobalIDString = 55AF53E6C77A10ED4985E04D74A8878E; + remoteInfo = Masonry; + }; + CABFC33BF0F819F399EDD67ACF107B36 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */; + proxyType = 1; + remoteGlobalIDString = EB381B961261861E0643718E562995A8; + remoteInfo = TUICore; + }; + CAFEE185BB6C4D90077FFB8B75ABAA8F /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */; + proxyType = 1; + remoteGlobalIDString = CBED833AAD6266F3AEFE9BE31C68E094; + remoteInfo = SDCycleScrollView; + }; + CCD6D29070F83B40E4E5034BB0F6C0E3 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */; + proxyType = 1; + remoteGlobalIDString = 82B0A41D3031FF27D78E17B0A9A46FB0; + remoteInfo = MBProgressHUD; + }; + D019DC9BA0A67304C2FCFED19766511A /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */; + proxyType = 1; + remoteGlobalIDString = 488E8C830C5A5694EE916251B9ADAADA; + remoteInfo = YYWebImage; + }; + D09A5E2E9F2D1F46DBCFAA557C7B589E /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */; + proxyType = 1; + remoteGlobalIDString = A96BBB982D62BB807B5BD10774BE2D07; + remoteInfo = TZImagePickerController; + }; + D182EB0D4EE294BF10C6D707A0D39024 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */; + proxyType = 1; + remoteGlobalIDString = CBED833AAD6266F3AEFE9BE31C68E094; + remoteInfo = SDCycleScrollView; + }; + D59B4BF3F2CBFA99CE8C380C304FE4E3 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */; + proxyType = 1; + remoteGlobalIDString = 331902F14E62290AA86FB37CAAC6ABB0; + remoteInfo = "Protobuf-Protobuf_Privacy"; + }; + D649D6842507D60C5EE3F2B566FB1228 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */; + proxyType = 1; + remoteGlobalIDString = 0130B3724283586C0E9D2A112D4F2AA1; + remoteInfo = AFNetworking; + }; + D6D329189B73CDC29DAAAED592A6FCAA /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */; + proxyType = 1; + remoteGlobalIDString = EB381B961261861E0643718E562995A8; + remoteInfo = TUICore; + }; + D9FEA0229D5535DA05BD8CC440924F52 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */; + proxyType = 1; + remoteGlobalIDString = 8592E0E389D40AC17881400ADC67ABC0; + remoteInfo = FMDB; + }; + DAFF3B41501CABEEA3D82BDFDA35DDC8 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */; + proxyType = 1; + remoteGlobalIDString = FBA456CB50E371584C11231929A0971E; + remoteInfo = IQKeyboardManager; + }; + DD0704D52564443ADE2B9640A285A131 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */; + proxyType = 1; + remoteGlobalIDString = F60E38364AFF5E1349FF07415B944396; + remoteInfo = SSZipArchive; + }; + DE4E655A959E1598CC8F2579E98B08A4 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */; + proxyType = 1; + remoteGlobalIDString = 82B0A41D3031FF27D78E17B0A9A46FB0; + remoteInfo = MBProgressHUD; + }; + DEAD0FBD5C5AC5D71ABED4B71B26FED2 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */; + proxyType = 1; + remoteGlobalIDString = 941104F296513E17138328984384286C; + remoteInfo = "BRPickerView-BRPickerView.Privacy"; + }; + E078D03B34BAFFFE0E9EDF2CED1A0A1B /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */; + proxyType = 1; + remoteGlobalIDString = A96BBB982D62BB807B5BD10774BE2D07; + remoteInfo = TZImagePickerController; + }; + E279B3C8C18063C1DF056DF766D02ED1 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */; + proxyType = 1; + remoteGlobalIDString = CFDAE6EB02F58B9A37CADCF439AE6082; + remoteInfo = YYCache; + }; + E30C4774CCD17478759E1471E55E1293 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */; + proxyType = 1; + remoteGlobalIDString = EF4EFD5BE77B99AACFB0B7ACE03D198F; + remoteInfo = SVGAPlayer; + }; + E3D2CC3BC36AAD3C0174E7C3C0603480 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */; + proxyType = 1; + remoteGlobalIDString = A9A94B2F47199AE29CDF9CF13F4D95CF; + remoteInfo = "TIMCommon-TIMCommon_Privacy"; + }; + E46BC07786369083D70505B105235C8B /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */; + proxyType = 1; + remoteGlobalIDString = D505645C3F99EB1E8B6529D64D2C3E1C; + remoteInfo = BRPickerView; + }; + E8B3BF8E10AA744AECDE61C270366A34 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */; + proxyType = 1; + remoteGlobalIDString = BB2154EC919CB4298C80ED396B322C5F; + remoteInfo = TXIMSDK_Plus_iOS_XCFramework; + }; + EAA732F4DFAB772C8DFF53A9F3E4B3D8 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */; + proxyType = 1; + remoteGlobalIDString = B2155DC9E9B69430B6C78F3E6D06BACF; + remoteInfo = QCloudCOSXML; + }; + EB3D1E6F410C807E454A09E9D8738B0E /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */; + proxyType = 1; + remoteGlobalIDString = 7E6A8D6108E4537DCBFAFA98674E2A71; + remoteInfo = TUIConversation; + }; + EBE0D2A69DD9DAA83E86F9CED91EEAF1 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */; + proxyType = 1; + remoteGlobalIDString = 6868056D761E163D10FDAF8CF1C4D9B8; + remoteInfo = MJRefresh; + }; + ECE45EFCD3202BFFD3B36C1DC4898AF0 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */; + proxyType = 1; + remoteGlobalIDString = 05927177BD6FAFDF573D533A8665C859; + remoteInfo = TUIChat; + }; + ED19FEE3F2B1CD87A7363CB415741848 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */; + proxyType = 1; + remoteGlobalIDString = 3847153A6E5EEFB86565BA840768F429; + remoteInfo = SDWebImage; + }; + F3A7BF69C0DED3C741059EA4574310A0 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */; + proxyType = 1; + remoteGlobalIDString = DBD31C8A3F2371ED732009637E95423D; + remoteInfo = QCloudCore; + }; + F80CDFA97DFB7F2F0A7D242C6F722FB4 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */; + proxyType = 1; + remoteGlobalIDString = B97FC50FB8C4390DDCCA281E85E7AD84; + remoteInfo = YBImageBrowser; + }; + FB4CE9736CBDAF6975EDAA4E0781E4A9 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */; + proxyType = 1; + remoteGlobalIDString = 46196B0F15FB5453681E745A8C1700C8; + remoteInfo = TIMCommon; + }; + FBA10CBC55CE9D39CC04D596F3363C16 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */; + proxyType = 1; + remoteGlobalIDString = F56DFD738FAB4E4F07F2D2E962EA3946; + remoteInfo = "TUIChat-TUIChat_Privacy"; + }; /* End PBXContainerItemProxy section */ /* Begin PBXFileReference section */ - 0028E9A546B55600287EFCB239F91C8A /* LLTitleSliderCell.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = LLTitleSliderCell.m; path = LLDebugTool/Core/Others/CommonUI/View/TitleCell/LLTitleSliderCell.m; sourceTree = ""; }; - 002F8FB9FB749B5760FA00556C7B77B1 /* OSSUtil.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = OSSUtil.h; path = AliyunOSSSDK/OSSUtil.h; sourceTree = ""; }; - 00492A2FD4F5B7DB65CEF9470468CE92 /* FMDB-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "FMDB-prefix.pch"; sourceTree = ""; }; - 0064AF095F0D698E5FCAF4A97098CBCC /* YYModel-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "YYModel-prefix.pch"; sourceTree = ""; }; - 00715EDF92C9D06491FC9799F92407E0 /* YBIBVideoView.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = YBIBVideoView.h; path = Video/YBIBVideoView.h; sourceTree = ""; }; - 00A291A2B72EA4E6FAEDE7232917E9FB /* OSSInputStreamHelper.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = OSSInputStreamHelper.h; path = AliyunOSSSDK/OSSInputStreamHelper.h; sourceTree = ""; }; - 012D8F28477FDD72A4BBA154968DBEA3 /* cost_neon.c */ = {isa = PBXFileReference; includeInIndex = 1; name = cost_neon.c; path = src/dsp/cost_neon.c; sourceTree = ""; }; - 012DE05920131187826AFC086713FF68 /* RACTuple.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = RACTuple.m; path = ReactiveObjC/RACTuple.m; sourceTree = ""; }; - 0185957643DE4CF0AC4A947BBDB153EC /* YYTextLayout.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = YYTextLayout.h; path = YYText/Component/YYTextLayout.h; sourceTree = ""; }; - 01908B706040D18914CEFEF241F629B5 /* LLTitleCellCategoryModel.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = LLTitleCellCategoryModel.m; path = LLDebugTool/Core/Others/CommonUI/View/TitleCell/LLTitleCellCategoryModel.m; sourceTree = ""; }; - 01A913356614613EE075A8809B6FE574 /* LLRouter+AppInfo.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "LLRouter+AppInfo.m"; path = "LLDebugTool/Core/Others/Router/LLRouter+AppInfo.m"; sourceTree = ""; }; + 001D0AEF9177F128239342BB59CCFEF6 /* LLButton.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = LLButton.m; path = LLDebugTool/Core/Others/CommonUI/View/TabBarButton/LLButton.m; sourceTree = ""; }; + 00361D09259A98437F9FB0940187B976 /* SVGAContentLayer.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SVGAContentLayer.h; path = Source/SVGAContentLayer.h; sourceTree = ""; }; + 0066569E5E46D03747A9064F7836CD04 /* YBIBDefaultWebImageMediator.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = YBIBDefaultWebImageMediator.m; path = YBImageBrowser/WebImageMediator/YBIBDefaultWebImageMediator.m; sourceTree = ""; }; + 0086153F7A83A07B955062499369838D /* QualityDataUploader.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = QualityDataUploader.m; path = QCloudCore/Classes/Base/QualityAssurance/QualityDataUploader.m; sourceTree = ""; }; + 008B0ECA6FE8E078096EDEFD07A46848 /* LLSandboxModel.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = LLSandboxModel.m; path = LLDebugTool/Core/Component/Sandbox/Function/LLSandboxModel.m; sourceTree = ""; }; + 0099A22C8BA1C31D012F487D75194315 /* MJRefreshConst.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = MJRefreshConst.h; path = MJRefresh/MJRefreshConst.h; sourceTree = ""; }; + 00DDD741C3318DEB7E0D838DE56174FA /* QCloudURLTools.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = QCloudURLTools.m; path = QCloudCore/Classes/Base/QCLOUDRestNet/URLTools/QCloudURLTools.m; sourceTree = ""; }; + 01088A799B966110B896C4DBFCFAD1DA /* libwebp.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = libwebp.debug.xcconfig; sourceTree = ""; }; + 0122BA4FE8C43FEAF4EDD0CC1EC9ECF1 /* YBIBCopywriter.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = YBIBCopywriter.h; path = YBImageBrowser/Helper/YBIBCopywriter.h; sourceTree = ""; }; + 012867F77EA4C06969F8E589E4431624 /* MASCompositeConstraint.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = MASCompositeConstraint.m; path = Masonry/MASCompositeConstraint.m; sourceTree = ""; }; + 014493B443F63C3E3682E9F5D1A7FF7D /* decode.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = decode.h; path = src/webp/decode.h; sourceTree = ""; }; + 014BE88DC3744AC9119E8D90026F9403 /* RACQueueScheduler.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = RACQueueScheduler.m; path = ReactiveObjC/RACQueueScheduler.m; sourceTree = ""; }; + 0169D03841D66672B8F22279621EA8C5 /* GPBProtocolBuffers.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = GPBProtocolBuffers.h; path = objectivec/GPBProtocolBuffers.h; sourceTree = ""; }; + 017BAAACDD053594300C54CF77519A48 /* SVGAVideoEntity.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SVGAVideoEntity.m; path = Source/SVGAVideoEntity.m; sourceTree = ""; }; + 0181B85525623BF13C065D6FC2A0014E /* WKWebView+AFNetworking.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "WKWebView+AFNetworking.m"; path = "UIKit+AFNetworking/WKWebView+AFNetworking.m"; sourceTree = ""; }; + 0181C802BE8602B5399F0D3B7179F895 /* LLWidgetBorderViewController.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = LLWidgetBorderViewController.m; path = LLDebugTool/Core/Component/WidgetBorder/UserInterface/LLWidgetBorderViewController.m; sourceTree = ""; }; 01AF44A2DFD1DA7DF152967F3D0B0836 /* NSTimer+TUISafe.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "NSTimer+TUISafe.m"; sourceTree = ""; }; - 01B91B70699133A8C8CDE58C591B740C /* LLEntryBallView.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = LLEntryBallView.m; path = LLDebugTool/Core/Others/CommonUI/Window/EntryWindow/LLEntryBallView.m; sourceTree = ""; }; - 01CF471971FD11F12FA8B912C4FF5FD1 /* AFSecurityPolicy.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = AFSecurityPolicy.h; path = AFNetworking/AFSecurityPolicy.h; sourceTree = ""; }; + 01B6E2A3F3ABECF6C77BBDD5969A85FA /* QCloudNetResponse.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = QCloudNetResponse.h; path = QCloudCore/Classes/Base/QCloudClientBase/Request/QCloudNetResponse.h; sourceTree = ""; }; + 01BDA857040880769264BF6D0D910048 /* LLLocationMockRouteModel.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = LLLocationMockRouteModel.h; path = LLDebugTool/Core/Component/Location/Function/LLLocationMockRouteModel.h; sourceTree = ""; }; + 01D5D3B99CED4E0D3A0DC7F0417A3522 /* LLComponentWindow.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = LLComponentWindow.h; path = LLDebugTool/Core/Others/CommonUI/Window/ComponentWindow/LLComponentWindow.h; sourceTree = ""; }; 01DA4F808EAFF56600BCF643C6F5B140 /* TUIConfig.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = TUIConfig.h; sourceTree = ""; }; - 01E398367630AB363FB25E946F373D70 /* vp8i_enc.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = vp8i_enc.h; path = src/enc/vp8i_enc.h; sourceTree = ""; }; + 01DDF4017E587B9EF1AEA59D1AB0269E /* anim_encode.c */ = {isa = PBXFileReference; includeInIndex = 1; name = anim_encode.c; path = src/mux/anim_encode.c; sourceTree = ""; }; 01E5A7DCD1DE77AF8BD6ACF98030B325 /* TUIChatPopMenuDefine.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = TUIChatPopMenuDefine.h; sourceTree = ""; }; - 01ECF9A68D5E9B699664C3436A2E46E8 /* MJRefresh-Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "MJRefresh-Info.plist"; sourceTree = ""; }; + 01E8BF528D10019C70F08C573C50A689 /* QCloudWeakProxy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = QCloudWeakProxy.m; path = QCloudCore/Classes/Base/ObjectFack/QCloudWeakProxy.m; sourceTree = ""; }; + 01F116E41F30A1BEB3F8B16782869C6C /* YBIBUtilities.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = YBIBUtilities.m; path = YBImageBrowser/Helper/YBIBUtilities.m; sourceTree = ""; }; 0209152A2926B97D17EF7B12A9425FA1 /* TUIConversationSelectDataProvider.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = TUIConversationSelectDataProvider.h; sourceTree = ""; }; - 022A531397C9F020E81FB203A4CF5AA8 /* BRPickerView.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = BRPickerView.release.xcconfig; sourceTree = ""; }; - 022EE2189C7116021E81F0DA9B50D965 /* LLTitleSliderCell.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = LLTitleSliderCell.h; path = LLDebugTool/Core/Others/CommonUI/View/TitleCell/LLTitleSliderCell.h; sourceTree = ""; }; + 020ADF3725407E5743290A57E877F690 /* NSDate+QCloudComapre.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "NSDate+QCloudComapre.m"; path = "QCloudCore/Classes/Base/DateTools/NSDate+QCloudComapre.m"; sourceTree = ""; }; + 021A626905C188DF3DECC7A1B16E617F /* OSSCancellationTokenSource.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = OSSCancellationTokenSource.h; path = AliyunOSSSDK/OSSTask/OSSCancellationTokenSource.h; sourceTree = ""; }; + 02256A35658F257D79F2E0A2FC9C4822 /* QCloudURLSessionTaskData.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = QCloudURLSessionTaskData.m; path = QCloudCore/Classes/Base/QCLOUDRestNet/SessionSupport/QCloudURLSessionTaskData.m; sourceTree = ""; }; 023D55EDE59D8FD17C30CE0AE38C4A73 /* TUIGroupProfileCardViewCell_Minimalist.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = TUIGroupProfileCardViewCell_Minimalist.m; sourceTree = ""; }; 023E703941A778CDD0AA302FA5B84F2E /* TUIMessageMediaDataProvider.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = TUIMessageMediaDataProvider.m; sourceTree = ""; }; - 027A2D4E65C17B84DCD7B5151FBF6BE4 /* JXCategoryIndicatorDotLineView.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = JXCategoryIndicatorDotLineView.m; path = Sources/Indicator/IndicatorViews/JXCategoryIndicatorDotLineView.m; sourceTree = ""; }; + 0257F63285DF532F217CB060E81B56EE /* OSSDDLog.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = OSSDDLog.m; path = AliyunOSSSDK/OSSFileLog/OSSDDLog.m; sourceTree = ""; }; + 027E243469F04F5AAD000E82F7BE6A2D /* GPBCodedOutputStream.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = GPBCodedOutputStream.h; path = objectivec/GPBCodedOutputStream.h; sourceTree = ""; }; 0291ED357AD3A6B01A65FA73A9AA56F1 /* TUITextReplyQuoteView_Minimalist.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = TUITextReplyQuoteView_Minimalist.m; sourceTree = ""; }; - 029643B1FDD1E9FA015424F2D2FE96BF /* LLCrashWindow.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = LLCrashWindow.h; path = LLDebugTool/Core/Component/Crash/UserInterface/LLCrashWindow.h; sourceTree = ""; }; - 02E25CDD4D2DE5A248B9E87C4DF24192 /* LLDetailTitleSelectorCellView.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = LLDetailTitleSelectorCellView.h; path = LLDebugTool/Core/Others/CommonUI/View/CellView/LLDetailTitleSelectorCellView.h; sourceTree = ""; }; - 02ED9A8E87499543036ED657A3756A4A /* YBIBVideoActionBar.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = YBIBVideoActionBar.m; path = Video/YBIBVideoActionBar.m; sourceTree = ""; }; - 02FAD85033B2089C692AD28A2CD21D31 /* ForegroundReconnection.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = ForegroundReconnection.m; path = MQTTClient/MQTTClient/ForegroundReconnection.m; sourceTree = ""; }; - 03193DBFE66AA5B27435EC7A79CD1188 /* GPBSourceContext.pbobjc.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = GPBSourceContext.pbobjc.m; path = objectivec/GPBSourceContext.pbobjc.m; sourceTree = ""; }; - 031AB6E008FD38B9576E2930D353FD15 /* ScoringMachine+DataHandle.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "ScoringMachine+DataHandle.swift"; path = "AgoraLyricsScore/Class/Scoring/ScoringMachine/ScoringMachine+DataHandle.swift"; sourceTree = ""; }; - 031FB2CB616D36387E7EDFC0FADE9F95 /* LLConfig.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = LLConfig.h; path = LLDebugTool/DebugTool/LLConfig.h; sourceTree = ""; }; - 03499B1247AA8DD708C0537896D52224 /* SDWebImageManager.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDWebImageManager.h; path = SDWebImage/Core/SDWebImageManager.h; sourceTree = ""; }; - 035CC5F26C50DA8B90743281082535AA /* SDWebImageOperation.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDWebImageOperation.m; path = SDWebImage/Core/SDWebImageOperation.m; sourceTree = ""; }; - 03697A5DCCE59E99B6D859C322B2BD81 /* CLLocationManager+LL_Location.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "CLLocationManager+LL_Location.m"; path = "LLDebugTool/Core/Component/Location/Function/CLLocationManager/CLLocationManager+LL_Location.m"; sourceTree = ""; }; - 038128B9260A99031210959AFD639165 /* NSData+YYAdd.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "NSData+YYAdd.h"; path = "YYCategories/Foundation/NSData+YYAdd.h"; sourceTree = ""; }; - 038598EF7831757144B9C4460E6D0C25 /* OSSGetBucketInfoRequest.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = OSSGetBucketInfoRequest.h; path = AliyunOSSSDK/OSSGetBucketInfoRequest.h; sourceTree = ""; }; - 03A06D937AC97CA67B76FEA1780AB6B6 /* SDWebImageTransition.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDWebImageTransition.h; path = SDWebImage/Core/SDWebImageTransition.h; sourceTree = ""; }; - 03C70B2B7D74D31A1BC510EC918BEA1F /* Bugly.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = Bugly.debug.xcconfig; sourceTree = ""; }; - 03DB84C5DAB22C9CC33D74AC4DF94FD8 /* FMDatabaseQueue.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FMDatabaseQueue.m; path = src/fmdb/FMDatabaseQueue.m; sourceTree = ""; }; - 041B83AC677DA064EE9BD3D9557991DF /* UIImageView+YYWebImage.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "UIImageView+YYWebImage.m"; path = "YYWebImage/Categories/UIImageView+YYWebImage.m"; sourceTree = ""; }; - 0422526A8D034EC1C848131751331825 /* MQTTCFSocketDecoder.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = MQTTCFSocketDecoder.h; path = MQTTClient/MQTTClient/MQTTCFSocketDecoder.h; sourceTree = ""; }; - 043D54CB26D71DFE0ABE7C668577A729 /* NSObject+YYAddForKVO.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "NSObject+YYAddForKVO.h"; path = "YYCategories/Foundation/NSObject+YYAddForKVO.h"; sourceTree = ""; }; - 0468BB8CCDC10CCC9646BC6EF2EF1518 /* LLLogDefine.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = LLLogDefine.h; path = LLDebugTool/Core/Others/Define/LLLogDefine.h; sourceTree = ""; }; - 047A8BEFD58F6C53EFE366ECDC291C93 /* LLHierarchyWindow.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = LLHierarchyWindow.h; path = LLDebugTool/Core/Component/Hierarchy/UserInterface/LLHierarchyWindow.h; sourceTree = ""; }; - 0489B4E7CF7D7BEBBE5CE6A2724E3EB2 /* MQTTSSLSecurityPolicyDecoder.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = MQTTSSLSecurityPolicyDecoder.h; path = MQTTClient/MQTTClient/MQTTSSLSecurityPolicyDecoder.h; sourceTree = ""; }; - 048C1B18194E62C7C04606BAAFA7B8CE /* mz_compat.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = mz_compat.h; path = SSZipArchive/minizip/mz_compat.h; sourceTree = ""; }; - 0493754B105B7C0910C6CA206DAAF387 /* SDWebImageOptionsProcessor.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDWebImageOptionsProcessor.m; path = SDWebImage/Core/SDWebImageOptionsProcessor.m; sourceTree = ""; }; - 0497FFAE57C0BF0660DE3C130E9713F0 /* NSInvocation+RACTypeParsing.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "NSInvocation+RACTypeParsing.h"; path = "ReactiveObjC/NSInvocation+RACTypeParsing.h"; sourceTree = ""; }; - 04A104C169E0D6777D9CB40E1FC29E13 /* LLSandboxImagePreviewController.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = LLSandboxImagePreviewController.m; path = LLDebugTool/Core/Component/Sandbox/UserInterface/LLSandboxImagePreviewController.m; sourceTree = ""; }; - 04B919D67838FC229439BB0B4662F04C /* LLNetworkModel.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = LLNetworkModel.m; path = LLDebugTool/Core/Component/Network/Function/LLNetworkModel.m; sourceTree = ""; }; - 04C1501BE84465D65722FF50DE813C49 /* BRPickerView.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = BRPickerView.debug.xcconfig; sourceTree = ""; }; - 04CEF05709246E123CA26B88CC2B0794 /* GPBDuration.pbobjc.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = GPBDuration.pbobjc.h; path = objectivec/GPBDuration.pbobjc.h; sourceTree = ""; }; - 04D571BABDBB15F97622B0D805B60213 /* LLLog.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = LLLog.h; path = LLDebugTool/Core/Component/Log/LLLog.h; sourceTree = ""; }; + 029B62B6D64A7011C7493A65ED7F7869 /* LLTool.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = LLTool.m; path = LLDebugTool/Core/Others/Tool/LLTool.m; sourceTree = ""; }; + 02A1DC10EF0C09312CD645E0AF3D7439 /* JXCategoryTitleImageCellModel.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = JXCategoryTitleImageCellModel.h; path = Sources/TitleImage/JXCategoryTitleImageCellModel.h; sourceTree = ""; }; + 02C774AEDD8E08E9846E154495C38CB6 /* QCloudHTTPBodyPart.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = QCloudHTTPBodyPart.m; path = QCloudCore/Classes/Base/QCLOUDRestNet/DataForm/QCloudHTTPBodyPart.m; sourceTree = ""; }; + 02F58B05B07E645C5748C55D22B88861 /* LLShortCutHelper.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = LLShortCutHelper.m; path = LLDebugTool/Core/Component/ShortCut/Function/LLShortCutHelper.m; sourceTree = ""; }; + 032F2427BF747A216EC0E35C6E3F369E /* LLComponent.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = LLComponent.h; path = LLDebugTool/Core/Others/Component/LLComponent.h; sourceTree = ""; }; + 0333F7E5E59B81B75C71256D1E1A8BBD /* mz_strm_os_posix.c */ = {isa = PBXFileReference; includeInIndex = 1; name = mz_strm_os_posix.c; path = SSZipArchive/minizip/mz_strm_os_posix.c; sourceTree = ""; }; + 036A8493F267A265546920A8E22CBEB9 /* LLRulerWindow.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = LLRulerWindow.h; path = LLDebugTool/Core/Component/Ruler/UserInterface/LLRulerWindow.h; sourceTree = ""; }; + 037EFE84298534860E3E72DBCCFF50DD /* GPBProtocolBuffers_RuntimeSupport.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = GPBProtocolBuffers_RuntimeSupport.h; path = objectivec/GPBProtocolBuffers_RuntimeSupport.h; sourceTree = ""; }; + 03861350775BC47ED43300CAFCF72276 /* UIDevice+LL_AppInfo.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "UIDevice+LL_AppInfo.m"; path = "LLDebugTool/Core/Component/AppInfo/Function/UIDevice/UIDevice+LL_AppInfo.m"; sourceTree = ""; }; + 03951B0F3C08BDC07E054943864B3594 /* LLReachability.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = LLReachability.m; path = LLDebugTool/Core/Component/Network/Function/LLReachability.m; sourceTree = ""; }; + 03A96E726CD9E0A1DB0BCD921E67F763 /* YBIBVideoCell.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = YBIBVideoCell.m; path = Video/YBIBVideoCell.m; sourceTree = ""; }; + 03AF1AA709B34727F21BF6A59F85A81D /* SVGA.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SVGA.h; path = Source/SVGA.h; sourceTree = ""; }; + 03BF43093B19208E3AE16619EEF6EE57 /* UIActivityIndicatorView+AFNetworking.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "UIActivityIndicatorView+AFNetworking.h"; path = "UIKit+AFNetworking/UIActivityIndicatorView+AFNetworking.h"; sourceTree = ""; }; + 03D9206219D47CEEE6D52B1D089F4AAC /* SVGAContentLayer.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SVGAContentLayer.m; path = Source/SVGAContentLayer.m; sourceTree = ""; }; + 03DBAEBAE10E3C3901F45B05656EB4DC /* YBIBCellProtocol.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = YBIBCellProtocol.h; path = YBImageBrowser/Protocol/YBIBCellProtocol.h; sourceTree = ""; }; + 03E7148680D2B5CA0145A90368880BDC /* JXPagerListRefreshView.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = JXPagerListRefreshView.m; path = Sources/JXPagerView/JXPagerListRefreshView.m; sourceTree = ""; }; + 03F305614444015BF088A453D75BD964 /* LLScreenshotToolbar.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = LLScreenshotToolbar.m; path = LLDebugTool/Core/Component/Screenshot/UserInterface/LLScreenshotToolbar.m; sourceTree = ""; }; + 042AAD3E705664FF9CBFA0E0B6517FE4 /* MBProgressHUD.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.module; path = MBProgressHUD.modulemap; sourceTree = ""; }; + 04483493AE81CA6B29E55ED29DE41586 /* MJRefreshAutoStateFooter.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = MJRefreshAutoStateFooter.h; path = MJRefresh/Custom/Footer/Auto/MJRefreshAutoStateFooter.h; sourceTree = ""; }; + 04548106866B951006921AF00DE0D9A1 /* RACStream.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = RACStream.m; path = ReactiveObjC/RACStream.m; sourceTree = ""; }; + 0454D0147525728E889241EA260FBF13 /* UIView+VAP.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "UIView+VAP.h"; path = "iOS/QGVAPlayer/QGVAPlayer/Classes/UIView+VAP.h"; sourceTree = ""; }; + 045B381B796968C148FD9386FF98FFAC /* LLHierarchyDetailViewController.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = LLHierarchyDetailViewController.h; path = LLDebugTool/Core/Component/Hierarchy/UserInterface/LLHierarchyDetailViewController.h; sourceTree = ""; }; + 04695F3AD3921005A28EBA538ECF308E /* LLRulerComponent.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = LLRulerComponent.m; path = LLDebugTool/Core/Component/Ruler/LLRulerComponent.m; sourceTree = ""; }; 04DEE32DAFEC80DB40214AC44BA8DCC7 /* TUIC2CChatViewController_Minimalist.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = TUIC2CChatViewController_Minimalist.h; sourceTree = ""; }; - 050E411EAB2DAF29965440F9ADDAB156 /* YYTextContainerView.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = YYTextContainerView.m; path = YYText/Component/YYTextContainerView.m; sourceTree = ""; }; - 0530CA95ACA47296C611C65A4C48575D /* View+MASAdditions.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "View+MASAdditions.h"; path = "Masonry/View+MASAdditions.h"; sourceTree = ""; }; - 05349C51E31CAE69161B68EE1B46E515 /* OSSPutObjectTaggingRequest.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = OSSPutObjectTaggingRequest.h; path = AliyunOSSSDK/OSSPutObjectTaggingRequest.h; sourceTree = ""; }; - 056366CA0E1CF32042B3F73384891C20 /* SDGraphicsImageRenderer.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDGraphicsImageRenderer.m; path = SDWebImage/Core/SDGraphicsImageRenderer.m; sourceTree = ""; }; - 057867A5A08473C69DEA499B5EDAC90A /* lossless_common.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = lossless_common.h; path = src/dsp/lossless_common.h; sourceTree = ""; }; - 058D8991FF3DEDE1A320BA9D713F6967 /* CLLocation+LL_Location.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "CLLocation+LL_Location.h"; path = "LLDebugTool/Core/Component/Location/Function/CLLocation/CLLocation+LL_Location.h"; sourceTree = ""; }; - 059B5D409318CD8D93A66EB097A041E4 /* JXCategoryImageCellModel.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = JXCategoryImageCellModel.h; path = Sources/Image/JXCategoryImageCellModel.h; sourceTree = ""; }; - 05A4D811FA189792CA10CEC69DF9007F /* UIButton+WebCache.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "UIButton+WebCache.h"; path = "SDWebImage/Core/UIButton+WebCache.h"; sourceTree = ""; }; - 05A955183D3132502ACEA19704DED8DF /* YYCache.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = YYCache.release.xcconfig; sourceTree = ""; }; - 05ADA054B8F8B2E623C90509D886840E /* YBImageBrowser.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.module; path = YBImageBrowser.modulemap; sourceTree = ""; }; - 05B194A51F710F29C89EA5E6458B9D3F /* LLScreenshotToolbar.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = LLScreenshotToolbar.h; path = LLDebugTool/Core/Component/Screenshot/UserInterface/LLScreenshotToolbar.h; sourceTree = ""; }; - 05BACFC5C27CC08ADFFEE87EAE8C1090 /* JXCategoryIndicatorRainbowLineView.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = JXCategoryIndicatorRainbowLineView.m; path = Sources/Indicator/IndicatorViews/JXCategoryIndicatorRainbowLineView.m; sourceTree = ""; }; + 04E7D28787C538821BED3763DF72984D /* YBImageBrowser-Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "YBImageBrowser-Info.plist"; sourceTree = ""; }; + 04EA3C1259C99C8D4B2F7760CA9C496D /* UIGestureRecognizer+VAPUtil.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "UIGestureRecognizer+VAPUtil.h"; path = "iOS/QGVAPlayer/QGVAPlayer/Classes/Utils/Categorys/UIGestureRecognizer+VAPUtil.h"; sourceTree = ""; }; + 04F2E273AD98B5402439CC78936C5217 /* SDWebImage.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDWebImage.h; path = WebImage/SDWebImage.h; sourceTree = ""; }; + 04F3305D1A23F19A8359301ABDB5F69F /* LLWidgetBorderWindow.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = LLWidgetBorderWindow.m; path = LLDebugTool/Core/Component/WidgetBorder/UserInterface/LLWidgetBorderWindow.m; sourceTree = ""; }; + 04F93B99373F84FB3CAC2DB23B5DADE4 /* TAAbstractDotView.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = TAAbstractDotView.h; path = SDCycleScrollView/Lib/SDCycleScrollView/PageControl/TAAbstractDotView.h; sourceTree = ""; }; + 0509301D9D6D3B9FE731E922E1CFFB03 /* LLTool.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = LLTool.h; path = LLDebugTool/Core/Others/Tool/LLTool.h; sourceTree = ""; }; + 050E9C412B482842673928065F7D1958 /* UIImageView+HighlightedWebCache.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "UIImageView+HighlightedWebCache.h"; path = "SDWebImage/Core/UIImageView+HighlightedWebCache.h"; sourceTree = ""; }; + 05160E7568CFFE842A97D9E0E48AB75F /* LLLogComponent.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = LLLogComponent.h; path = LLDebugTool/Core/Component/Log/LLLogComponent.h; sourceTree = ""; }; + 051F1766A9870CFBD8C0C678367C5767 /* AFHTTPSessionManager.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = AFHTTPSessionManager.m; path = AFNetworking/AFHTTPSessionManager.m; sourceTree = ""; }; + 052F3DC77C8AA502465D6B2B089B0961 /* UIDevice+QCloudFCUUID.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "UIDevice+QCloudFCUUID.m"; path = "QCloudCore/Classes/Base/FCUUID/UIDevice+QCloudFCUUID.m"; sourceTree = ""; }; + 0535C9DCAC87747CACE1185DA0AFD5FB /* OSSGetObjectTaggingResult.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = OSSGetObjectTaggingResult.m; path = AliyunOSSSDK/OSSGetObjectTaggingResult.m; sourceTree = ""; }; + 05799F519CA6516CC4DB8F360246FC40 /* SDInternalMacros.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDInternalMacros.h; path = SDWebImageWebPCoder/Private/SDInternalMacros.h; sourceTree = ""; }; + 059219951504E913078712192BF5AEF2 /* QCloudCore.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = QCloudCore.h; path = QCloudCore/Classes/Base/QCloudCore.h; sourceTree = ""; }; + 05B21B4AB11BDEBEE17E7103D179F817 /* RACSubscriptingAssignmentTrampoline.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = RACSubscriptingAssignmentTrampoline.h; path = ReactiveObjC/RACSubscriptingAssignmentTrampoline.h; sourceTree = ""; }; 05BC9D17EBBB0C644FBB473A801A365D /* OfflinePushExtBusinessInfo.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = OfflinePushExtBusinessInfo.m; sourceTree = ""; }; 05C0427931F2A1B82488C1A7F4152F72 /* TUIMergeReplyQuoteViewData.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = TUIMergeReplyQuoteViewData.h; sourceTree = ""; }; - 05F1BFAB800B23714B38CBABF73935E4 /* LLFilterLabelCell.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = LLFilterLabelCell.m; path = LLDebugTool/Core/Others/CommonUI/View/FilterView/LLFilterLabelCell.m; sourceTree = ""; }; + 05D13810E9465114CEB23FB6CFCB23D5 /* AgoraContentInspectExtension.xcframework */ = {isa = PBXFileReference; includeInIndex = 1; path = AgoraContentInspectExtension.xcframework; sourceTree = ""; }; + 05F2E80C39D2DF3A04F2F806BFA2D391 /* OSSInputStreamHelper.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = OSSInputStreamHelper.h; path = AliyunOSSSDK/OSSInputStreamHelper.h; sourceTree = ""; }; 0605A8E8C5BD82B2F0126377C7D3E113 /* MetalKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = MetalKit.framework; path = Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS18.0.sdk/System/Library/Frameworks/MetalKit.framework; sourceTree = DEVELOPER_DIR; }; - 0612460241DF4F2D09733683492856D4 /* GPBMessage_PackagePrivate.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = GPBMessage_PackagePrivate.h; path = objectivec/GPBMessage_PackagePrivate.h; sourceTree = ""; }; - 061DF778A675606EC01E9A048E925E98 /* YYModel.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = YYModel.h; path = YYModel/YYModel.h; sourceTree = ""; }; + 060CA856231CE9AEF91DE3B82284A1FE /* UISegmentedControl+RACSignalSupport.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "UISegmentedControl+RACSignalSupport.m"; path = "ReactiveObjC/UISegmentedControl+RACSignalSupport.m"; sourceTree = ""; }; + 0612DC526A30752E51650E0CA0BEB4B8 /* OSSPutSymlinkResult.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = OSSPutSymlinkResult.m; path = AliyunOSSSDK/OSSPutSymlinkResult.m; sourceTree = ""; }; + 0623C1E13AA2A0351AFC2BD89FB49763 /* UICollectionViewLayout+MJRefresh.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "UICollectionViewLayout+MJRefresh.m"; path = "MJRefresh/UICollectionViewLayout+MJRefresh.m"; sourceTree = ""; }; + 063F11FE7EAFD9367C5FA4AC6ACD5C9B /* YBIBOrientationReceiveProtocol.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = YBIBOrientationReceiveProtocol.h; path = YBImageBrowser/Protocol/YBIBOrientationReceiveProtocol.h; sourceTree = ""; }; + 0647C4695E12F486F60B14634B9C2661 /* NSDate+QCLOUD.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "NSDate+QCLOUD.m"; path = "QCloudCore/Classes/Base/QCloudCategory/NSDate+QCLOUD.m"; sourceTree = ""; }; 064BE23A98D1538F5AB5682881F46F37 /* TUIInputMoreCellData.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = TUIInputMoreCellData.m; sourceTree = ""; }; + 064CEDA45AB54736381BEF0722CEED17 /* NSObject+RACKVOWrapper.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "NSObject+RACKVOWrapper.m"; path = "ReactiveObjC/NSObject+RACKVOWrapper.m"; sourceTree = ""; }; + 064E03F699BC13C52E6EB1F6D130577B /* BRStringPickerView.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = BRStringPickerView.h; path = BRPickerView/Deprecated/StringPickerView/BRStringPickerView.h; sourceTree = ""; }; 065A99C7DE43D844F86902F23317C016 /* face-tracker-v003.bundle */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = "wrapper.plug-in"; name = "face-tracker-v003.bundle"; path = "Resources/face-tracker-v003.bundle"; sourceTree = ""; }; - 065C9ADE9C028B93E849796DCECDEBFA /* LLMagnifierWindow.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = LLMagnifierWindow.m; path = LLDebugTool/Core/Component/Magnifier/UserInterface/LLMagnifierWindow.m; sourceTree = ""; }; - 06759C0A3CE57C6E2D69515A279E89F8 /* LLShortCut.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = LLShortCut.h; path = LLDebugTool/Core/Component/ShortCut/LLShortCut.h; sourceTree = ""; }; - 067E849D32A7BD0C279F2CCD97C22742 /* IQUIViewController+Additions.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "IQUIViewController+Additions.m"; path = "IQKeyboardManager/Categories/IQUIViewController+Additions.m"; sourceTree = ""; }; - 06BC694EA42D7895C2D4FAB95B5FA442 /* LLDebugTool.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = LLDebugTool.m; path = LLDebugTool/DebugTool/LLDebugTool.m; sourceTree = ""; }; - 06DE3814E457DBAE1243F555A99E0900 /* IQNSArray+Sort.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "IQNSArray+Sort.h"; path = "IQKeyboardManager/Categories/IQNSArray+Sort.h"; sourceTree = ""; }; - 070BDBDEE20F8A5DEB595E81AB68282A /* MJRefreshComponent.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = MJRefreshComponent.m; path = MJRefresh/Base/MJRefreshComponent.m; sourceTree = ""; }; - 070E0A055E488907F8C6932CCBB200E4 /* SDWebImageDefine.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDWebImageDefine.h; path = SDWebImage/Core/SDWebImageDefine.h; sourceTree = ""; }; - 071E4EF09DD730FFF592072C5C5D143D /* TZImagePickerController.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = TZImagePickerController.release.xcconfig; sourceTree = ""; }; - 0726377073C33B2E23DB3E823F8E20F8 /* UIImage+Transform.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "UIImage+Transform.h"; path = "SDWebImage/Core/UIImage+Transform.h"; sourceTree = ""; }; - 0747F58A19EB5B80AC8B61BAD0BF1C0B /* JXCategoryViewAnimator.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = JXCategoryViewAnimator.m; path = Sources/Common/JXCategoryViewAnimator.m; sourceTree = ""; }; + 0671A8AABCD30AB3C728D93F82BF615D /* backward_references_enc.c */ = {isa = PBXFileReference; includeInIndex = 1; name = backward_references_enc.c; path = src/enc/backward_references_enc.c; sourceTree = ""; }; + 0684286BE588AD832BA8C677DCF5C671 /* RACKVOProxy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = RACKVOProxy.m; path = ReactiveObjC/RACKVOProxy.m; sourceTree = ""; }; + 069F96CE0DAEF6A9FE35804AA7AE93DB /* QCloudUploadObjectResult.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = QCloudUploadObjectResult.m; path = QCloudCOSXML/Classes/Transfer/model/QCloudUploadObjectResult.m; sourceTree = ""; }; + 06C7ABE6CC45CFDC6591F96A0C87662F /* TZImageManager.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = TZImageManager.h; path = TZImagePickerController/TZImagePickerController/TZImageManager.h; sourceTree = ""; }; + 06D345BB7E51A3ECD6665C4AB51741FC /* MQTTProperties.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = MQTTProperties.m; path = MQTTClient/MQTTClient/MQTTProperties.m; sourceTree = ""; }; + 06E20AF8BAEDFF42624D3E09AA89D66A /* NSBundle+MJRefresh.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "NSBundle+MJRefresh.m"; path = "MJRefresh/NSBundle+MJRefresh.m"; sourceTree = ""; }; + 06F8B9EBC43764C462B974042FB30306 /* LLCrashDetailViewController.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = LLCrashDetailViewController.h; path = LLDebugTool/Core/Component/Crash/UserInterface/LLCrashDetailViewController.h; sourceTree = ""; }; + 0700DE062786EA2F6D99770CE63467FC /* NSObject+RACKVOWrapper.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "NSObject+RACKVOWrapper.h"; path = "ReactiveObjC/NSObject+RACKVOWrapper.h"; sourceTree = ""; }; + 070EC055ABB58F2DE3D093EEB55C18F7 /* SDImageIOCoder.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDImageIOCoder.m; path = SDWebImage/Core/SDImageIOCoder.m; sourceTree = ""; }; + 07362453DEAADF8829AA12FA96BCE721 /* UIButton+WebCache.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "UIButton+WebCache.m"; path = "SDWebImage/Core/UIButton+WebCache.m"; sourceTree = ""; }; + 0749B0115A88A6A4235CE775ADE3BC39 /* LLBaseModel.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = LLBaseModel.h; path = LLDebugTool/Core/Others/CommonUI/Base/LLBaseModel.h; sourceTree = ""; }; 075273255B28474D75A23BB975D8C328 /* TUIInputController.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = TUIInputController.m; sourceTree = ""; }; - 0793B2C30D54159C1392333F12A81D4E /* OSSModel.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = OSSModel.h; path = AliyunOSSSDK/OSSModel.h; sourceTree = ""; }; - 07973103A0C3B933766D4185DF0E77B0 /* SDMemoryCache.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDMemoryCache.h; path = SDWebImage/Core/SDMemoryCache.h; sourceTree = ""; }; - 07BEED9FBFEA1287E0D1E639285F7863 /* AgoraAiNoiseSuppressionLLExtension.xcframework */ = {isa = PBXFileReference; includeInIndex = 1; path = AgoraAiNoiseSuppressionLLExtension.xcframework; sourceTree = ""; }; - 07C862DBF71EFED68AB3FCF04848DFCF /* tree_dec.c */ = {isa = PBXFileReference; includeInIndex = 1; name = tree_dec.c; path = src/dec/tree_dec.c; sourceTree = ""; }; - 07D80A182085699A6C348DDD80B14E45 /* AgoraAiEchoCancellationLLExtension.xcframework */ = {isa = PBXFileReference; includeInIndex = 1; path = AgoraAiEchoCancellationLLExtension.xcframework; sourceTree = ""; }; - 07DF01BD99A3A2A212AC4C0BED8C6192 /* YBIBCollectionView.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = YBIBCollectionView.m; path = YBImageBrowser/Base/YBIBCollectionView.m; sourceTree = ""; }; - 07E4938D682DFDF7C5305E3A9D02AF63 /* muxi.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = muxi.h; path = src/mux/muxi.h; sourceTree = ""; }; - 07E5424BE62D963DBEBB638AEAB4F0BE /* SDImageLoadersManager.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDImageLoadersManager.m; path = SDWebImage/Core/SDImageLoadersManager.m; sourceTree = ""; }; - 07E79ADDC5F4FE489A6B2E76CF9172BB /* enc_msa.c */ = {isa = PBXFileReference; includeInIndex = 1; name = enc_msa.c; path = src/dsp/enc_msa.c; sourceTree = ""; }; + 075EC03CCB7EF582E2F047C0F5904D07 /* UIAlertView+RACSignalSupport.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "UIAlertView+RACSignalSupport.m"; path = "ReactiveObjC/UIAlertView+RACSignalSupport.m"; sourceTree = ""; }; + 0775C52A5931289F362DAD2225F5A91B /* QCloudUploadPartRequest.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = QCloudUploadPartRequest.m; path = QCloudCOSXML/Classes/Transfer/request/QCloudUploadPartRequest.m; sourceTree = ""; }; + 0789DEFD618507613CFEF78AC06D3527 /* QCloudFileZipper.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = QCloudFileZipper.h; path = QCloudCore/Classes/Base/Logger/QCloudFileZipper.h; sourceTree = ""; }; + 0793A27AE39621C7A440276E1D066FB7 /* LLWindowManager+Location.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "LLWindowManager+Location.h"; path = "LLDebugTool/Core/Component/Location/UserInterface/LLWindowManager+Location.h"; sourceTree = ""; }; + 07A82BE18AB318F4F5861C0328FD2263 /* UIDevice+VAPUtil.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "UIDevice+VAPUtil.m"; path = "iOS/QGVAPlayer/QGVAPlayer/Classes/Utils/Categorys/UIDevice+VAPUtil.m"; sourceTree = ""; }; + 07C2B7657EBE23C1400CE1F43EF5AF7E /* SDAsyncBlockOperation.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDAsyncBlockOperation.h; path = SDWebImage/Private/SDAsyncBlockOperation.h; sourceTree = ""; }; + 07E12F66F0C74E8FE3A247A5DFFDD0D5 /* LLTableViewSelectableDelegate.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = LLTableViewSelectableDelegate.h; path = LLDebugTool/Core/Others/CommonUI/Model/LLTableViewSelectableModel/LLTableViewSelectableDelegate.h; sourceTree = ""; }; + 07F94D341C349D9A7ADEB1A65768B8C0 /* RACPassthroughSubscriber.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = RACPassthroughSubscriber.h; path = ReactiveObjC/RACPassthroughSubscriber.h; sourceTree = ""; }; + 07FDA729CDF8A809667CE7E8744C07A9 /* LLHtmlWindow.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = LLHtmlWindow.h; path = LLDebugTool/Core/Component/Html/UserInterface/LLHtmlWindow.h; sourceTree = ""; }; 07FF34D98319B5F3FE027B7F4450B6F8 /* TUIJoinGroupMessageCell.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = TUIJoinGroupMessageCell.m; sourceTree = ""; }; 083EC450646A3191F1E7E38811DC908B /* TUIChat-Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "TUIChat-Info.plist"; sourceTree = ""; }; + 0845832E2D7B1438A2874E2A1281BE41 /* filter_enc.c */ = {isa = PBXFileReference; includeInIndex = 1; name = filter_enc.c; path = src/enc/filter_enc.c; sourceTree = ""; }; 0854CB819A7BC2D7A3E86A617F440667 /* TUILinkCell.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = TUILinkCell.h; sourceTree = ""; }; - 0877754BEE3D7CADC3D1F761130FBA13 /* MASViewConstraint.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = MASViewConstraint.m; path = Masonry/MASViewConstraint.m; sourceTree = ""; }; - 0895A25B99C036865A229F0EBFD59A17 /* Masonry.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = Masonry.h; path = Masonry/Masonry.h; sourceTree = ""; }; + 08574C1EB9E14AE1574467A04F81844C /* LLNetworkHelper.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = LLNetworkHelper.h; path = LLDebugTool/Core/Component/Network/Function/LLNetworkHelper.h; sourceTree = ""; }; + 0861D83E5928C4E8173B6F9299FC22B0 /* QGMP4AnimatedImageFrame.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = QGMP4AnimatedImageFrame.m; path = iOS/QGVAPlayer/QGVAPlayer/Classes/Models/QGMP4AnimatedImageFrame.m; sourceTree = ""; }; + 08704F044297A76E647073F02628D9EE /* YYTextView.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = YYTextView.h; path = YYText/YYTextView.h; sourceTree = ""; }; + 088A9BB1F55EE2A7D6EEC65D069CDDDF /* LLTableViewSelectableModel.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = LLTableViewSelectableModel.h; path = LLDebugTool/Core/Others/CommonUI/Model/LLTableViewSelectableModel/LLTableViewSelectableModel.h; sourceTree = ""; }; + 08963A4BE59A9D5620B36B9DD98D7D3E /* LLWindowManager.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = LLWindowManager.m; path = LLDebugTool/Core/Others/Manager/WindowManager/LLWindowManager.m; sourceTree = ""; }; + 08A7023C52345C508988051E5EE1F7EE /* NSBezierPath+SDRoundedCorners.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "NSBezierPath+SDRoundedCorners.m"; path = "SDWebImage/Private/NSBezierPath+SDRoundedCorners.m"; sourceTree = ""; }; + 08B46AA8431E44FAA52AF003D3538302 /* CLLocationManager+LL_Location.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "CLLocationManager+LL_Location.h"; path = "LLDebugTool/Core/Component/Location/Function/CLLocationManager/CLLocationManager+LL_Location.h"; sourceTree = ""; }; 08B8980434FBD4317A7A907D8F0BA6EB /* TUICore.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = TUICore.debug.xcconfig; sourceTree = ""; }; + 08C1F598D6F39EDEB0A77CE60618639B /* LLMagnifier.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = LLMagnifier.h; path = LLDebugTool/Core/Component/Magnifier/LLMagnifier.h; sourceTree = ""; }; + 08E81CB31ABA8AF4EA8D4DAD52085F1C /* UIBarButtonItem+YYAdd.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "UIBarButtonItem+YYAdd.h"; path = "YYCategories/UIKit/UIBarButtonItem+YYAdd.h"; sourceTree = ""; }; + 08F4D75A4853C8A90BD6B7B4785893C3 /* RACSignal.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = RACSignal.m; path = ReactiveObjC/RACSignal.m; sourceTree = ""; }; 08FC247E9EF105334F5F448B6F5EEDD2 /* TUIChatConfig_Minimalist.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = TUIChatConfig_Minimalist.h; sourceTree = ""; }; - 08FE24AC9B2B2B677617DB1D82FE3B1F /* LLAppInfoViewController.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = LLAppInfoViewController.h; path = LLDebugTool/Core/Component/AppInfo/UserInterface/LLAppInfoViewController.h; sourceTree = ""; }; - 09073B3C4545A83E888D395FB6E2AEA5 /* LLMagnifierViewController.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = LLMagnifierViewController.h; path = LLDebugTool/Core/Component/Magnifier/UserInterface/LLMagnifierViewController.h; sourceTree = ""; }; - 093B228B53556FE1FC8ED75A574A849B /* AgoraRtcEngine_iOS.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = AgoraRtcEngine_iOS.debug.xcconfig; sourceTree = ""; }; - 0970752D93B2D31FEF265D08321B2471 /* LLURLProtocol.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = LLURLProtocol.h; path = LLDebugTool/Core/Component/Network/Function/LLURLProtocol.h; sourceTree = ""; }; + 08FC8C330637E4A26203F5C4F0C8FFBC /* JXCategoryIndicatorParamsModel.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = JXCategoryIndicatorParamsModel.m; path = Sources/Common/JXCategoryIndicatorParamsModel.m; sourceTree = ""; }; + 093538C874844EDC1A0A197042A45E9F /* NSURLConnection+RACSupport.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "NSURLConnection+RACSupport.h"; path = "ReactiveObjC/NSURLConnection+RACSupport.h"; sourceTree = ""; }; + 093F6DA4C4B280185F6791821488D841 /* YYAnimatedImageView.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = YYAnimatedImageView.h; path = YYImage/YYAnimatedImageView.h; sourceTree = ""; }; + 09476A3F0CB268CA65F6159142C35FE0 /* QCloudLogModel.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = QCloudLogModel.m; path = QCloudCore/Classes/Base/Logger/QCloudLogModel.m; sourceTree = ""; }; + 095150C2759A526C892A2B6132FCBEE9 /* SDWebImageError.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDWebImageError.h; path = SDWebImage/Core/SDWebImageError.h; sourceTree = ""; }; + 09760E5EB41613DDC7A05531DBBDA368 /* LLDetailTitleCell.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = LLDetailTitleCell.h; path = LLDebugTool/Core/Others/CommonUI/View/TitleCell/LLDetailTitleCell.h; sourceTree = ""; }; 097BDE3C52C3D1AE8C9BCF151AF6B916 /* TUIChatSmallTongueView.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = TUIChatSmallTongueView.m; sourceTree = ""; }; 098870D0C14EC3335F09BD7728028A06 /* TUIFileMessageCellData.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = TUIFileMessageCellData.h; sourceTree = ""; }; 098C782DD1EFC66245792CE8C1854462 /* TUIGroupCreatedCell_Minimalist.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = TUIGroupCreatedCell_Minimalist.m; sourceTree = ""; }; - 09951D634DB3327E3E72184ABC98EFDC /* ReactiveObjC.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.module; path = ReactiveObjC.modulemap; sourceTree = ""; }; - 09A9780B2906EB9EE99CC6AD7A35AA7E /* LLConfigHelper.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = LLConfigHelper.m; path = LLDebugTool/Core/Others/ConfigHelper/LLConfigHelper.m; sourceTree = ""; }; - 09B2A461423A6F18B3B5EF622C4E76B5 /* JXCategoryDotView.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = JXCategoryDotView.h; path = Sources/Dot/JXCategoryDotView.h; sourceTree = ""; }; - 09C40ECED6606B10F5281CED2D23A991 /* LLReachability.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = LLReachability.h; path = LLDebugTool/Core/Component/Network/Function/LLReachability.h; sourceTree = ""; }; - 09D98466FD061EDA558818DB4610EBAF /* LLFunctionComponent.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = LLFunctionComponent.m; path = LLDebugTool/Core/Others/Component/Function/LLFunctionComponent.m; sourceTree = ""; }; - 09DF495FADE8A9E05FB49E7E777A83F9 /* ViewController+MASAdditions.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "ViewController+MASAdditions.h"; path = "Masonry/ViewController+MASAdditions.h"; sourceTree = ""; }; - 09F9197259B88F2C65A1CBE164EBEB7A /* SDImageAPNGCoder.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDImageAPNGCoder.m; path = SDWebImage/Core/SDImageAPNGCoder.m; sourceTree = ""; }; - 0A069424C6F4B84840CB9A263F727E07 /* TXIMSDK_Plus_iOS_XCFramework.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = TXIMSDK_Plus_iOS_XCFramework.debug.xcconfig; sourceTree = ""; }; - 0A0A30A7EEB2984A729A6C7679BCB6CD /* LLWindowManager+Ruler.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "LLWindowManager+Ruler.h"; path = "LLDebugTool/Core/Component/Ruler/UserInterface/LLWindowManager+Ruler.h"; sourceTree = ""; }; - 0A1F1E2967738DEB94519ABCA86CD5A1 /* OSSAllRequestNeededMessage.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = OSSAllRequestNeededMessage.m; path = AliyunOSSSDK/OSSAllRequestNeededMessage.m; sourceTree = ""; }; - 0A3FD328EFD2497883883E73A0FF8D97 /* LLHierarchyComponent.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = LLHierarchyComponent.m; path = LLDebugTool/Core/Component/Hierarchy/LLHierarchyComponent.m; sourceTree = ""; }; - 0A4BC16A58122FB85FBCDD66374A9FA6 /* IQKeyboardManager.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.module; path = IQKeyboardManager.modulemap; sourceTree = ""; }; - 0A5F09BA40E5E31AE3EA04D1A30D8708 /* MASConstraintMaker.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = MASConstraintMaker.m; path = Masonry/MASConstraintMaker.m; sourceTree = ""; }; - 0A62076422015F139EB015346368315A /* vp8li_enc.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = vp8li_enc.h; path = src/enc/vp8li_enc.h; sourceTree = ""; }; - 0A7CDDBA8880F80FD104AFB2642BF97F /* alphai_dec.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = alphai_dec.h; path = src/dec/alphai_dec.h; sourceTree = ""; }; + 09B31E3D9630343E9793238698D53660 /* NSTimer+YYAdd.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "NSTimer+YYAdd.m"; path = "YYCategories/Foundation/NSTimer+YYAdd.m"; sourceTree = ""; }; + 09E6A8D33A091100AC35918AAF28B84F /* UIControl+RACSignalSupport.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "UIControl+RACSignalSupport.m"; path = "ReactiveObjC/UIControl+RACSignalSupport.m"; sourceTree = ""; }; + 09F10D3C43B69141D421137BE6F58F62 /* AgoraLyricsScore.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = AgoraLyricsScore.release.xcconfig; sourceTree = ""; }; + 0A10228A512ED1CEB609122BF4CE1612 /* AgoraLipSyncExtension.xcframework */ = {isa = PBXFileReference; includeInIndex = 1; path = AgoraLipSyncExtension.xcframework; sourceTree = ""; }; + 0A5C406889543896E1481825ACC14D92 /* QCloudCore-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "QCloudCore-prefix.pch"; sourceTree = ""; }; + 0A6AECE95982DB22F5E502FCB987D0DB /* QCloudSupervisorySession.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = QCloudSupervisorySession.h; path = QCloudCore/Classes/Base/Supervisory/QCloudSupervisorySession.h; sourceTree = ""; }; + 0A6F4495DD097887BC5B36C1CE31C94C /* LLLogDetailViewController.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = LLLogDetailViewController.m; path = LLDebugTool/Core/Component/Log/UserInterface/LLLogDetailViewController.m; sourceTree = ""; }; + 0A78B1221D5E139D0A1043307E3391C8 /* YYLabel.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = YYLabel.h; path = YYText/YYLabel.h; sourceTree = ""; }; + 0A7FF82B2807814FEF8A70A246C12313 /* BRPickerView.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.module; path = BRPickerView.modulemap; sourceTree = ""; }; 0A80B6BD2BF1890499E2A12A11A06DDD /* TUIImageReplyQuoteView_Minimalist.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = TUIImageReplyQuoteView_Minimalist.h; sourceTree = ""; }; - 0A9DE069A2145C9E196D514AE60A9C1D /* YYCache.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.module; path = YYCache.modulemap; sourceTree = ""; }; - 0ABE05003A8F29C98E5FAAE6CE701848 /* OSSPutSymlinkRequest.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = OSSPutSymlinkRequest.h; path = AliyunOSSSDK/OSSPutSymlinkRequest.h; sourceTree = ""; }; + 0A86C790B45E4083031A17C6CEC3638C /* NSData+YYAdd.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "NSData+YYAdd.h"; path = "YYCategories/Foundation/NSData+YYAdd.h"; sourceTree = ""; }; + 0A898F55547B6E5B293183969888F9EA /* LLFilterEventView.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = LLFilterEventView.h; path = LLDebugTool/Core/Others/CommonUI/View/FilterView/LLFilterEventView.h; sourceTree = ""; }; + 0A916049B8466E1D89EBB40ABBDE2B55 /* NSObject+YBImageBrowser.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "NSObject+YBImageBrowser.m"; path = "YBImageBrowser/Base/NSObject+YBImageBrowser.m"; sourceTree = ""; }; 0ACD74E9409F50C6A5B2CEA6EA866E13 /* TUIChatExtensionObserver.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = TUIChatExtensionObserver.m; sourceTree = ""; }; - 0AD9E56AFB7A8C6C92A18D7B8E3858D0 /* MASConstraint.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = MASConstraint.m; path = Masonry/MASConstraint.m; sourceTree = ""; }; + 0AF58878DCB0DD0EDCDC248201356A28 /* OSSPutObjectTaggingResult.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = OSSPutObjectTaggingResult.h; path = AliyunOSSSDK/OSSPutObjectTaggingResult.h; sourceTree = ""; }; + 0AF9691CBD931F8DB1AB89D3DC087C3D /* SSZipArchive.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = SSZipArchive.debug.xcconfig; sourceTree = ""; }; 0AF9AD3E98B3D1E5A504C2AEBA0F87E6 /* TUIMenuView.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = TUIMenuView.m; sourceTree = ""; }; 0B003F1CB577B8CA5FF3FD3154A6BA46 /* TUIChatPopContextController.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = TUIChatPopContextController.h; sourceTree = ""; }; 0B08E549753454E1731D00B4D98F0CC8 /* TUIGroupInfoDataProvider.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = TUIGroupInfoDataProvider.m; sourceTree = ""; }; + 0B0B611141C92E6727C2F9468C28F17D /* Log.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Log.swift; path = AgoraLyricsScore/Class/Other/Log.swift; sourceTree = ""; }; + 0B252BA0F7D2F638A817C6C63D3D0B0C /* Zip.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = Zip.h; path = Zip/Zip.h; sourceTree = ""; }; 0B2B089DD73C47F9B4F681B5274EC5CE /* TUIFaceMessageCellData.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = TUIFaceMessageCellData.m; sourceTree = ""; }; - 0B3FB1F121C2D1AEA313F413197FF936 /* SVGAVideoSpriteFrameEntity.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SVGAVideoSpriteFrameEntity.h; path = Source/SVGAVideoSpriteFrameEntity.h; sourceTree = ""; }; - 0B54934660FB579DAA1DD748C0F86E14 /* BRBaseView.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = BRBaseView.m; path = BRPickerView/Deprecated/Base/BRBaseView.m; sourceTree = ""; }; - 0B55B78A78D7706936B1F477109CCBFC /* LLRuler.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = LLRuler.h; path = LLDebugTool/Core/Component/Ruler/LLRuler.h; sourceTree = ""; }; 0B7C3E382201D205D11C627407BB9D3A /* TUICore.podspec */ = {isa = PBXFileReference; explicitFileType = text.script.ruby; includeInIndex = 1; indentWidth = 2; lastKnownFileType = text; path = TUICore.podspec; sourceTree = ""; tabWidth = 2; xcLanguageSpecificationIdentifier = xcode.lang.ruby; }; - 0B823B00FB1D408CA71ECBAC8D7AC4D6 /* backward_references_enc.c */ = {isa = PBXFileReference; includeInIndex = 1; name = backward_references_enc.c; path = src/enc/backward_references_enc.c; sourceTree = ""; }; 0B87CDC20E7F7F33E74ECEE87AB3A9FD /* TIMConfig.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = TIMConfig.m; sourceTree = ""; }; - 0BCA7D797DBE802EE6DA6AF8A258915C /* mux.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = mux.h; path = src/webp/mux.h; sourceTree = ""; }; + 0B9E532883452012C95B2BF6FD077FF9 /* huffman_encode_utils.c */ = {isa = PBXFileReference; includeInIndex = 1; name = huffman_encode_utils.c; path = src/utils/huffman_encode_utils.c; sourceTree = ""; }; + 0B9FD6341D534FEF98CCCFFCDF7A0E88 /* SDWebImageWebPCoder.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = SDWebImageWebPCoder.release.xcconfig; sourceTree = ""; }; + 0BAE364C0ED239A588749ADAB7F2593F /* YBIBToolViewHandler.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = YBIBToolViewHandler.m; path = YBImageBrowser/ToolView/YBIBToolViewHandler.m; sourceTree = ""; }; + 0BBE3E24D7890459A0F0A8103974FD41 /* unzip.c */ = {isa = PBXFileReference; includeInIndex = 1; name = unzip.c; path = Zip/minizip/unzip.c; sourceTree = ""; }; 0BD3A560E72C86BABE5F7CC27E62D459 /* UIView+TUILayout.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "UIView+TUILayout.h"; sourceTree = ""; }; - 0C0D2B19B547B1FF27049B40C1F814EC /* sharpyuv_csp.c */ = {isa = PBXFileReference; includeInIndex = 1; name = sharpyuv_csp.c; path = sharpyuv/sharpyuv_csp.c; sourceTree = ""; }; - 0C1A87184CB5B1766C02E4CABB67CE89 /* AvoidCrashStubProxy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = AvoidCrashStubProxy.m; path = AvoidCrash/AvoidCrashStubProxy.m; sourceTree = ""; }; - 0C1C20BEC07C1B8B9468DDABFC999E0A /* SDAnimatedImageRep.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDAnimatedImageRep.m; path = SDWebImage/Core/SDAnimatedImageRep.m; sourceTree = ""; }; - 0C5C66C53B90DFDE05D50CFFD1E55A6B /* SVGABezierPath.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SVGABezierPath.m; path = Source/SVGABezierPath.m; sourceTree = ""; }; + 0BEABA91D373BF2ACDEFE09097D6B745 /* SDImageHEICCoder.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDImageHEICCoder.m; path = SDWebImage/Core/SDImageHEICCoder.m; sourceTree = ""; }; + 0BEC2BBADC99E6E8DB2F4283151B1539 /* MJRefresh-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "MJRefresh-prefix.pch"; sourceTree = ""; }; + 0C0F0FD1CA80715765F6CF94A7A9C0AF /* AvoidCrash-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "AvoidCrash-dummy.m"; sourceTree = ""; }; + 0C16B37920CE44F2C3A456E2A399E001 /* LLConst.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = LLConst.m; path = LLDebugTool/Core/Others/Const/LLConst.m; sourceTree = ""; }; + 0C2A4BB1F9DEDDC74FE6DA31B85D038F /* NSMutableArray+AvoidCrash.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "NSMutableArray+AvoidCrash.h"; path = "AvoidCrash/NSMutableArray+AvoidCrash.h"; sourceTree = ""; }; 0C6AF30DA9F94BBA4AD5F3DA3FA30177 /* AgoraLyricsScore-AgoraLyricsScoreBundle */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; name = "AgoraLyricsScore-AgoraLyricsScoreBundle"; path = AgoraLyricsScoreBundle.bundle; sourceTree = BUILT_PRODUCTS_DIR; }; 0C6F4829D47D1826F47CDC4264F9F6A8 /* YYImage */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; name = YYImage; path = YYImage.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - 0C89AC9F2BD2169E9824E33140DDE7C8 /* YBImage.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = YBImage.h; path = YBImageBrowser/Image/YBImage.h; sourceTree = ""; }; - 0C8A6FE3EA356B31A7E4E41873AADDB1 /* LLHierarchyInfoView.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = LLHierarchyInfoView.h; path = LLDebugTool/Core/Component/Hierarchy/UserInterface/LLHierarchyInfoView.h; sourceTree = ""; }; - 0CD165943BD615CF7BBF796D3A9A40C1 /* MQTTDecoder.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = MQTTDecoder.h; path = MQTTClient/MQTTClient/MQTTDecoder.h; sourceTree = ""; }; - 0D0C13AD4F2D4252E25CC5852045C615 /* ioapi.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = ioapi.h; path = Zip/minizip/include/ioapi.h; sourceTree = ""; }; - 0D1882D5427DA3A6B6E7C146C0F72C69 /* MQTTProperties.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = MQTTProperties.h; path = MQTTClient/MQTTClient/MQTTProperties.h; sourceTree = ""; }; - 0D1B9EFB46C06E718A9D066B8AB19E39 /* mz_strm_buf.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = mz_strm_buf.h; path = SSZipArchive/minizip/mz_strm_buf.h; sourceTree = ""; }; - 0D2CD83606622C586990024E0548D5DC /* JXCategoryTitleImageCell.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = JXCategoryTitleImageCell.h; path = Sources/TitleImage/JXCategoryTitleImageCell.h; sourceTree = ""; }; - 0D31F38BDA3E124A26D342A005FD3F95 /* QGHWDMetalView.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = QGHWDMetalView.m; path = iOS/QGVAPlayer/QGVAPlayer/Classes/Views/Metal/QGHWDMetalView.m; sourceTree = ""; }; - 0D38F2A723076F7CCAF1D9266C5EB54C /* JXCategoryImageView.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = JXCategoryImageView.m; path = Sources/Image/JXCategoryImageView.m; sourceTree = ""; }; - 0D3DFE6293A302B7722F166D3804C24E /* LLSandboxWindow.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = LLSandboxWindow.m; path = LLDebugTool/Core/Component/Sandbox/UserInterface/LLSandboxWindow.m; sourceTree = ""; }; + 0C7CF617060B058010C68F29C2D02F5A /* NSURLSession+LL_Network.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "NSURLSession+LL_Network.h"; path = "LLDebugTool/Core/Component/Network/Function/NSURLSession/NSURLSession+LL_Network.h"; sourceTree = ""; }; + 0C8A81E9E5FF908407DB6AAF637F7307 /* LLEntryWindow.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = LLEntryWindow.m; path = LLDebugTool/Core/Others/CommonUI/Window/EntryWindow/LLEntryWindow.m; sourceTree = ""; }; + 0C8B8C82B78B0E02140C0E1621D2CA82 /* LLMagnifierWindow.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = LLMagnifierWindow.m; path = LLDebugTool/Core/Component/Magnifier/UserInterface/LLMagnifierWindow.m; sourceTree = ""; }; + 0CB3454E58FE75D89D3F63BC483B12CF /* NSObject+RACPropertySubscribing.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "NSObject+RACPropertySubscribing.h"; path = "ReactiveObjC/NSObject+RACPropertySubscribing.h"; sourceTree = ""; }; + 0CBCABD5BCE1B822E47AFF0134199A15 /* AgoraAiEchoCancellationLLExtension.xcframework */ = {isa = PBXFileReference; includeInIndex = 1; path = AgoraAiEchoCancellationLLExtension.xcframework; sourceTree = ""; }; + 0CDC2C1A08243A156278FF08784187CE /* YYTextView.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = YYTextView.m; path = YYText/YYTextView.m; sourceTree = ""; }; + 0CE660FB2BC9FCC0ADA5A373DB1AC30E /* ResourceBundle-FMDB_Privacy-FMDB-Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "ResourceBundle-FMDB_Privacy-FMDB-Info.plist"; sourceTree = ""; }; + 0CE99C3F16B8FFC4F8B20C7EA2944513 /* AgoraVideoAv1DecoderExtension.xcframework */ = {isa = PBXFileReference; includeInIndex = 1; path = AgoraVideoAv1DecoderExtension.xcframework; sourceTree = ""; }; + 0D02468817FCFA1FA6213B1F3F66F5B4 /* QCloudCompleteMultipartUploadRequest.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = QCloudCompleteMultipartUploadRequest.h; path = QCloudCOSXML/Classes/Transfer/request/QCloudCompleteMultipartUploadRequest.h; sourceTree = ""; }; + 0D40C51B78D866B14BDA9BF330E9CD47 /* SSZipArchive-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "SSZipArchive-prefix.pch"; sourceTree = ""; }; + 0D4B0E9AF1DC425F683EAD19AFC28566 /* YYTextLine.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = YYTextLine.h; path = YYText/Component/YYTextLine.h; sourceTree = ""; }; + 0D5175CC00EA0F15BBA480393710C207 /* UIBarButtonItem+YYAdd.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "UIBarButtonItem+YYAdd.m"; path = "YYCategories/UIKit/UIBarButtonItem+YYAdd.m"; sourceTree = ""; }; 0D548526C93C538E41E3CFF4945585BD /* TUIBaseChatViewController+ProtectedAPI.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "TUIBaseChatViewController+ProtectedAPI.h"; sourceTree = ""; }; - 0D5EE78234CA8C94A9E8DCD58F4FA2C2 /* JXCategoryIndicatorComponentView.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = JXCategoryIndicatorComponentView.m; path = Sources/Indicator/IndicatorViews/JXCategoryIndicatorComponentView.m; sourceTree = ""; }; - 0D6D33B9A6C0316F839B7702D98CB1E4 /* LLEntryViewController.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = LLEntryViewController.h; path = LLDebugTool/Core/Others/CommonUI/Window/EntryWindow/LLEntryViewController.h; sourceTree = ""; }; - 0D967903D66EE300DF9951A621BA3E28 /* SDImageLoader.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDImageLoader.h; path = SDWebImage/Core/SDImageLoader.h; sourceTree = ""; }; - 0DBED08975EC04695D0471F24E5EC0C5 /* YBIBVideoData.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = YBIBVideoData.h; path = Video/YBIBVideoData.h; sourceTree = ""; }; - 0DD13064D19D1D06B109048495DD25FA /* JXCategoryViewAnimator.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = JXCategoryViewAnimator.h; path = Sources/Common/JXCategoryViewAnimator.h; sourceTree = ""; }; - 0DE7144DA85E194D1C6BC9681558FB2E /* LLLocationViewController.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = LLLocationViewController.h; path = LLDebugTool/Core/Component/Location/UserInterface/LLLocationViewController.h; sourceTree = ""; }; + 0DAC3115AB9E9572F6566EA9B791BAD1 /* NSUserDefaults+LL_Utils.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "NSUserDefaults+LL_Utils.m"; path = "LLDebugTool/Core/Others/Category/NSUserDefaults/NSUserDefaults+LL_Utils.m"; sourceTree = ""; }; + 0DBE6154EA2D73949C4F324280E21C53 /* RACSubscriber.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = RACSubscriber.m; path = ReactiveObjC/RACSubscriber.m; sourceTree = ""; }; 0DE96672AACB04189F4CD3F67F9D2112 /* TUIConversationMultiChooseView_Minimalist.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = TUIConversationMultiChooseView_Minimalist.h; sourceTree = ""; }; - 0E010EA52E174EAE780E167D3EBA5FAE /* RACKVOChannel.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = RACKVOChannel.m; path = ReactiveObjC/RACKVOChannel.m; sourceTree = ""; }; - 0E02A266CABD48A4C5AE6F3868BB268B /* rescaler.c */ = {isa = PBXFileReference; includeInIndex = 1; name = rescaler.c; path = src/dsp/rescaler.c; sourceTree = ""; }; 0E09950AFFE253677274763C16783C4C /* TUIChatPopActionsView.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = TUIChatPopActionsView.h; sourceTree = ""; }; - 0E14717C79BA97D405005454EC460097 /* FMResultSet.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FMResultSet.m; path = src/fmdb/FMResultSet.m; sourceTree = ""; }; + 0E0A0BAA80DA453334649223D3A66C28 /* vp8_dec.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = vp8_dec.h; path = src/dec/vp8_dec.h; sourceTree = ""; }; + 0E1BCFEF87090D1F4DE111DD8866319F /* GPBExtensionRegistry.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = GPBExtensionRegistry.h; path = objectivec/GPBExtensionRegistry.h; sourceTree = ""; }; + 0E20FE5F3C2DB8183FD45A978EFA50AF /* YBIBCollectionViewLayout.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = YBIBCollectionViewLayout.h; path = YBImageBrowser/Base/YBIBCollectionViewLayout.h; sourceTree = ""; }; + 0E38BF12D23CB438D23EBF8BE915E93B /* NSObject+RACDescription.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "NSObject+RACDescription.m"; path = "ReactiveObjC/NSObject+RACDescription.m"; sourceTree = ""; }; 0E6DD3FA6D35E66AC465E974C5A2F798 /* TUIVoiceReplyQuoteView.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = TUIVoiceReplyQuoteView.h; sourceTree = ""; }; - 0E945F1FA6B130694897A1BE189DC381 /* SDDisplayLink.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDDisplayLink.m; path = SDWebImage/Private/SDDisplayLink.m; sourceTree = ""; }; - 0EA505AAD149644608E5E9EFC567CC5F /* IQKeyboardManager.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = IQKeyboardManager.release.xcconfig; sourceTree = ""; }; - 0EB130A77AB99ACA5AFE6A8E05F5D986 /* libwebp.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.module; path = libwebp.modulemap; sourceTree = ""; }; + 0E70FF339EB00931C8B39F8AB9932B20 /* UIView+WebCacheOperation.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "UIView+WebCacheOperation.m"; path = "SDWebImage/Core/UIView+WebCacheOperation.m"; sourceTree = ""; }; + 0E854BD028C282A18A29A41EAF1109EA /* UISlider+RACSignalSupport.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "UISlider+RACSignalSupport.m"; path = "ReactiveObjC/UISlider+RACSignalSupport.m"; sourceTree = ""; }; 0EBECD2A46E28042357ED8782F70E08B /* NSString+TUIUtil.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "NSString+TUIUtil.m"; sourceTree = ""; }; - 0ED5824C21A523C789B1396AED91104B /* LLFactory.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = LLFactory.m; path = LLDebugTool/Core/Others/Factory/LLFactory.m; sourceTree = ""; }; - 0EEC88AEAD6941ABCF5D74F17B2C29AB /* RACEXTRuntimeExtensions.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = RACEXTRuntimeExtensions.m; path = ReactiveObjC/extobjc/RACEXTRuntimeExtensions.m; sourceTree = ""; }; - 0F022DE9B328C785CE8D266EE01605C8 /* RACReturnSignal.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = RACReturnSignal.h; path = ReactiveObjC/RACReturnSignal.h; sourceTree = ""; }; - 0F13741EC1EEFBC284A2043D73B2E65F /* Protobuf-Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "Protobuf-Info.plist"; sourceTree = ""; }; - 0F2182553CE4575B6E4E7C792397A033 /* LLButton.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = LLButton.h; path = LLDebugTool/Core/Others/CommonUI/View/TabBarButton/LLButton.h; sourceTree = ""; }; - 0F32CA563BD4DD97B89E971AB5851DCF /* NSArray+LL_Utils.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "NSArray+LL_Utils.m"; path = "LLDebugTool/Core/Others/Category/NSArray/NSArray+LL_Utils.m"; sourceTree = ""; }; - 0F43BA7F3728C69A42DF74325C6A9BA7 /* LLBaseComponentViewController.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = LLBaseComponentViewController.m; path = LLDebugTool/Core/Others/CommonUI/ViewController/ComponentViewController/LLBaseComponentViewController.m; sourceTree = ""; }; - 0F52F7C5E70BB47EBF33E51E749F893F /* OSSGetSymlinkRequest.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = OSSGetSymlinkRequest.m; path = AliyunOSSSDK/OSSGetSymlinkRequest.m; sourceTree = ""; }; - 0F688F191EA28E7570EBEA4FBE37E761 /* RACMulticastConnection.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = RACMulticastConnection.m; path = ReactiveObjC/RACMulticastConnection.m; sourceTree = ""; }; - 0F689B90C8173CF2269E4DE394AB6104 /* QGBaseAnimatedImageFrame.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = QGBaseAnimatedImageFrame.h; path = iOS/QGVAPlayer/QGVAPlayer/Classes/Models/QGBaseAnimatedImageFrame.h; sourceTree = ""; }; - 0F88EF100863CF2E8408D228E573FF49 /* NSData+RACSupport.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "NSData+RACSupport.h"; path = "ReactiveObjC/NSData+RACSupport.h"; sourceTree = ""; }; - 0F99A474F50D0D618E7941A0F9C72BB4 /* NSObject+RACSelectorSignal.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "NSObject+RACSelectorSignal.h"; path = "ReactiveObjC/NSObject+RACSelectorSignal.h"; sourceTree = ""; }; - 0FA5E61CD2A544B602E28CF72818EFFB /* Zip-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "Zip-prefix.pch"; sourceTree = ""; }; + 0EC2622C154983CB5B159DA232D30CAB /* QCloudCOSXMLServiceUtilities.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = QCloudCOSXMLServiceUtilities.h; path = QCloudCOSXML/Classes/Base/QCloudCOSXMLServiceUtilities.h; sourceTree = ""; }; + 0EE95776273C13ED73E0B751B2BA8E2A /* NSData+LL_Network.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "NSData+LL_Network.h"; path = "LLDebugTool/Core/Component/Network/Function/NSData/NSData+LL_Network.h"; sourceTree = ""; }; + 0EEFD1789A4F6A6D74E4012B76D0AB00 /* LLSandboxWindow.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = LLSandboxWindow.m; path = LLDebugTool/Core/Component/Sandbox/UserInterface/LLSandboxWindow.m; sourceTree = ""; }; + 0F0C9ABF667C40EF3A478D191CE00BF1 /* PrivacyInfo.xcprivacy */ = {isa = PBXFileReference; includeInIndex = 1; name = PrivacyInfo.xcprivacy; path = WebImage/PrivacyInfo.xcprivacy; sourceTree = ""; }; + 0F4105022E08CBF5EA22D24DCAFE5F8A /* quant_levels_utils.c */ = {isa = PBXFileReference; includeInIndex = 1; name = quant_levels_utils.c; path = src/utils/quant_levels_utils.c; sourceTree = ""; }; + 0F42E1C57C5F5A75AA1A9C8C3F00AE0B /* QGVAPlayer-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "QGVAPlayer-prefix.pch"; sourceTree = ""; }; + 0F73B9A6B621D23A3C2DE4A36E856E3B /* SSZipCommon.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SSZipCommon.h; path = SSZipArchive/SSZipCommon.h; sourceTree = ""; }; + 0F9B1E78486FE006258AEE7EC88B74D9 /* JXCategoryTitleCell.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = JXCategoryTitleCell.m; path = Sources/Title/JXCategoryTitleCell.m; sourceTree = ""; }; + 0F9B748B9523F955E93AFEE09C9EC2AA /* YBIBImageCache.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = YBIBImageCache.m; path = YBImageBrowser/Image/YBIBImageCache.m; sourceTree = ""; }; + 0FC180A2D3D7441C79D90FC3533C91C9 /* LLEnumDescription.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = LLEnumDescription.m; path = LLDebugTool/Core/Component/Hierarchy/Function/EnumDescription/LLEnumDescription.m; sourceTree = ""; }; + 0FC37A99477ECA2126AF75BBA16733D3 /* AliyunOSSiOS-Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "AliyunOSSiOS-Info.plist"; sourceTree = ""; }; 0FC3C76B119B8122DE10E41DE6041FE3 /* TUIThemeManager.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = TUIThemeManager.m; sourceTree = ""; }; - 0FC6CF60D2302792BEC53958959D04EA /* UIActionSheet+RACSignalSupport.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "UIActionSheet+RACSignalSupport.m"; path = "ReactiveObjC/UIActionSheet+RACSignalSupport.m"; sourceTree = ""; }; - 1006B55F4244FD34CAB86BE7FC557622 /* SDImageTransformer.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDImageTransformer.h; path = SDWebImage/Core/SDImageTransformer.h; sourceTree = ""; }; - 1022AE2F730E8371E0319E83E7653A89 /* RACBlockTrampoline.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = RACBlockTrampoline.m; path = ReactiveObjC/RACBlockTrampoline.m; sourceTree = ""; }; - 102552B7677D63C293FF23EA6E3ABCFD /* LLLogDetailViewController.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = LLLogDetailViewController.m; path = LLDebugTool/Core/Component/Log/UserInterface/LLLogDetailViewController.m; sourceTree = ""; }; + 0FD42879AC877B8E2953499A9703793E /* LLSettingViewController.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = LLSettingViewController.h; path = LLDebugTool/Core/Others/Component/Setting/UserInterface/LLSettingViewController.h; sourceTree = ""; }; + 100426633041B94E69C7367D0DC74093 /* LLFactory.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = LLFactory.h; path = LLDebugTool/Core/Others/Factory/LLFactory.h; sourceTree = ""; }; + 10085F9C69F730D9B2523E9F1C8467AB /* UIButton+RACCommandSupport.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "UIButton+RACCommandSupport.h"; path = "ReactiveObjC/UIButton+RACCommandSupport.h"; sourceTree = ""; }; + 100995F6875D8295B7AA9D82EDD55E4C /* QGHWDMetalShaderSourceDefine.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = QGHWDMetalShaderSourceDefine.h; path = iOS/QGVAPlayer/QGVAPlayer/Shaders/QGHWDMetalShaderSourceDefine.h; sourceTree = ""; }; + 1016EF046E46A37BEE8567F861919423 /* AgoraComponetLog.xcframework */ = {isa = PBXFileReference; includeInIndex = 1; path = AgoraComponetLog.xcframework; sourceTree = ""; }; + 10266C441AF75A2B9A82E1643B116C5A /* QCloudRequestSerializer.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = QCloudRequestSerializer.h; path = QCloudCore/Classes/Base/QCLOUDRestNet/CoreRequest/Serializer/QCloudRequestSerializer.h; sourceTree = ""; }; + 10273522C8A8B06633A16F79AF185B74 /* YYCategories-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "YYCategories-dummy.m"; sourceTree = ""; }; 10279ACCBD6A903BF072BD7AE13ECB59 /* TUIChatMediaSendingManager.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = TUIChatMediaSendingManager.m; sourceTree = ""; }; - 102DA00FD2F50042CE3DF1FBA0E891A6 /* LLTool.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = LLTool.m; path = LLDebugTool/Core/Others/Tool/LLTool.m; sourceTree = ""; }; - 103BA56FB41C6802EBB399ADDBC15525 /* GPBFieldMask.pbobjc.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = GPBFieldMask.pbobjc.h; path = objectivec/GPBFieldMask.pbobjc.h; sourceTree = ""; }; - 10482229F1C33E5B6D0103805A45AE8C /* JXCategoryTitleCell.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = JXCategoryTitleCell.h; path = Sources/Title/JXCategoryTitleCell.h; sourceTree = ""; }; - 104CC0A7D42967CFFD862A11AA258625 /* libwebp-Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "libwebp-Info.plist"; sourceTree = ""; }; - 105B905040346C3D2EBEF1AFBFA9B146 /* LLWindowManager+Magnifier.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "LLWindowManager+Magnifier.m"; path = "LLDebugTool/Core/Component/Magnifier/UserInterface/LLWindowManager+Magnifier.m"; sourceTree = ""; }; - 107B9B81F6D295C40C085A124188A1A2 /* YBIBCopywriter.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = YBIBCopywriter.m; path = YBImageBrowser/Helper/YBIBCopywriter.m; sourceTree = ""; }; + 102A32772156807B7045B74EA0BC0CBA /* IQKeyboardManagerConstantsInternal.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = IQKeyboardManagerConstantsInternal.h; path = IQKeyboardManager/Constants/IQKeyboardManagerConstantsInternal.h; sourceTree = ""; }; + 1031BE5D760A9D6E9F25A5C9048469B3 /* IQUIView+Hierarchy.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "IQUIView+Hierarchy.h"; path = "IQKeyboardManager/Categories/IQUIView+Hierarchy.h"; sourceTree = ""; }; + 1070F25BCB4F54949167FDE4D7B1EFB1 /* UIScrollView+YYAdd.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "UIScrollView+YYAdd.h"; path = "YYCategories/UIKit/UIScrollView+YYAdd.h"; sourceTree = ""; }; 10824CEBAEAC448CE4E6B61396A4030A /* TUIConversationCellData.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = TUIConversationCellData.h; sourceTree = ""; }; - 10833E5BACDEF21A0369D23AD74DC0A7 /* BRPickerView-Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "BRPickerView-Info.plist"; sourceTree = ""; }; - 108CC78E90CB06A73DC046405D12968F /* LLThemeManager.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = LLThemeManager.h; path = LLDebugTool/Core/Others/Manager/ThemeManager/LLThemeManager.h; sourceTree = ""; }; - 10BCBF5490F681E966574333DEB58FAC /* GPBWellKnownTypes.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = GPBWellKnownTypes.h; path = objectivec/GPBWellKnownTypes.h; sourceTree = ""; }; - 10BF3D828FC7F8E67EB26B154BF32F8D /* OSSPutSymlinkResult.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = OSSPutSymlinkResult.m; path = AliyunOSSSDK/OSSPutSymlinkResult.m; sourceTree = ""; }; - 10D8FF29100E3162C3A417B55F1AF215 /* rescaler_mips32.c */ = {isa = PBXFileReference; includeInIndex = 1; name = rescaler_mips32.c; path = src/dsp/rescaler_mips32.c; sourceTree = ""; }; + 1091026C99A74FE986F2EF251172CD33 /* YYWebImage-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "YYWebImage-umbrella.h"; sourceTree = ""; }; + 109E33175A59F8C3E531B352793B6952 /* upsampling.c */ = {isa = PBXFileReference; includeInIndex = 1; name = upsampling.c; path = src/dsp/upsampling.c; sourceTree = ""; }; + 10CB15319D4C89805ABB80E01AEAC917 /* UITextField+YYAdd.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "UITextField+YYAdd.m"; path = "YYCategories/UIKit/UITextField+YYAdd.m"; sourceTree = ""; }; + 10DCB2538262102141069397DEEEEE4B /* NSInputStream+LL_Network.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "NSInputStream+LL_Network.m"; path = "LLDebugTool/Core/Component/Network/Function/NSInputStream/NSInputStream+LL_Network.m"; sourceTree = ""; }; 10ECCAC987E94F2F4FB4AAD91F435F99 /* TUIGroupInfoController.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = TUIGroupInfoController.m; sourceTree = ""; }; - 1138AFF1E9C05B6254CFE2757D8752DE /* YYMemoryCache.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = YYMemoryCache.m; path = YYCache/YYMemoryCache.m; sourceTree = ""; }; - 11531608C3500A1F0D08C7D212C1882D /* YBImageBrowserDataSource.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = YBImageBrowserDataSource.h; path = YBImageBrowser/Protocol/YBImageBrowserDataSource.h; sourceTree = ""; }; - 1162671AF59CA6F029CFD383A73B0FCD /* webp_dec.c */ = {isa = PBXFileReference; includeInIndex = 1; name = webp_dec.c; path = src/dec/webp_dec.c; sourceTree = ""; }; - 11720E63FF35CC267165CC3483387C66 /* UIColor+SDHexString.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "UIColor+SDHexString.m"; path = "SDWebImage/Private/UIColor+SDHexString.m"; sourceTree = ""; }; - 1178169A4033918B4D8F19C50E1F67E7 /* LLCrashHelper.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = LLCrashHelper.h; path = LLDebugTool/Core/Component/Crash/Function/LLCrashHelper.h; sourceTree = ""; }; - 11AF117707A1AA185C68872653884BE0 /* LLBaseViewController.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = LLBaseViewController.m; path = LLDebugTool/Core/Others/CommonUI/Base/LLBaseViewController.m; sourceTree = ""; }; - 11C0AC474AE9DFD4D517BFD0C6A12FEB /* TZImageRequestOperation.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = TZImageRequestOperation.h; path = TZImagePickerController/TZImagePickerController/TZImageRequestOperation.h; sourceTree = ""; }; - 11C3CA76E801CD8D06F15340328EBA04 /* SDWebImageDownloaderOperation.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDWebImageDownloaderOperation.h; path = SDWebImage/Core/SDWebImageDownloaderOperation.h; sourceTree = ""; }; - 11F1C3E3E8441B3753F61FF2076D667C /* JXCategoryIndicatorTriangleView.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = JXCategoryIndicatorTriangleView.m; path = Sources/Indicator/IndicatorViews/JXCategoryIndicatorTriangleView.m; sourceTree = ""; }; - 11F9DD3D863E9A8403CFEDA4ACB15853 /* QGVAPMetalView.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = QGVAPMetalView.h; path = iOS/QGVAPlayer/QGVAPlayer/Classes/Views/Metal/Vapx/QGVAPMetalView.h; sourceTree = ""; }; + 10F12302E97BCF14E1D3B73DDB4EF820 /* UITextField+YYAdd.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "UITextField+YYAdd.h"; path = "YYCategories/UIKit/UITextField+YYAdd.h"; sourceTree = ""; }; + 112512243FBC916B15B7E653B9DED86A /* GPBUnknownFieldSet.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = GPBUnknownFieldSet.h; path = objectivec/GPBUnknownFieldSet.h; sourceTree = ""; }; + 112D92259F30896CFD904B6A7663712C /* QGVAPMetalUtil.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = QGVAPMetalUtil.h; path = iOS/QGVAPlayer/QGVAPlayer/Classes/Utils/QGVAPMetalUtil.h; sourceTree = ""; }; + 1135D4E59A92E087E5425E466950E410 /* MBProgressHUD.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = MBProgressHUD.m; sourceTree = ""; }; + 11A2159ED822A3FD5A308AEBAD81FCE0 /* histogram_enc.c */ = {isa = PBXFileReference; includeInIndex = 1; name = histogram_enc.c; path = src/enc/histogram_enc.c; sourceTree = ""; }; 1206B93CFDB4E20716E1C190A77C73DE /* TUIMessageController_Minimalist.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = TUIMessageController_Minimalist.m; sourceTree = ""; }; - 120A2C7BF3E33F70525F3CD84CD45539 /* LLFilterLabelModel.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = LLFilterLabelModel.m; path = LLDebugTool/Core/Others/CommonUI/View/FilterView/LLFilterLabelModel.m; sourceTree = ""; }; 120AEFA3CD7FF64DE083594AD2F1B5EF /* TUIConversationListBaseDataProvider.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = TUIConversationListBaseDataProvider.m; sourceTree = ""; }; - 12101AFD2403BB3035912A7EEBF3B089 /* YYTextParser.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = YYTextParser.h; path = YYText/String/YYTextParser.h; sourceTree = ""; }; - 121C7BCD792C816BBAAC7774652021D7 /* FMDatabasePool.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FMDatabasePool.h; path = src/fmdb/FMDatabasePool.h; sourceTree = ""; }; + 121C28411A592719BA15879F48FCD54D /* GPBMessage_PackagePrivate.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = GPBMessage_PackagePrivate.h; path = objectivec/GPBMessage_PackagePrivate.h; sourceTree = ""; }; 12206D86BCB832336894FC3C4E8CAF33 /* TUIMediaCollectionCell_Minimalist.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = TUIMediaCollectionCell_Minimalist.m; sourceTree = ""; }; - 1255F8A25737F25EEB06F9A77C767064 /* LLShortCutHelper.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = LLShortCutHelper.h; path = LLDebugTool/Core/Component/ShortCut/Function/LLShortCutHelper.h; sourceTree = ""; }; + 12219A15E2A116077165083EADA9D658 /* QCloudOperationQueue.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = QCloudOperationQueue.m; path = QCloudCore/Classes/Base/QCLOUDRestNet/Operations/QCloudOperationQueue.m; sourceTree = ""; }; + 1255387576CCE8313FF05DEDAF799591 /* SDImageLoader.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDImageLoader.h; path = SDWebImage/Core/SDImageLoader.h; sourceTree = ""; }; + 125A95325D9860E01937012FD3C0E317 /* LLLogViewController.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = LLLogViewController.h; path = LLDebugTool/Core/Component/Log/UserInterface/LLLogViewController.h; sourceTree = ""; }; 125B0C5CEC8256187089CC0925B4428C /* TUIMediaCollectionCell.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = TUIMediaCollectionCell.h; sourceTree = ""; }; + 125E2C9F6220164179D4C90638B6195F /* LLRouter+Log.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "LLRouter+Log.m"; path = "LLDebugTool/Core/Others/Router/LLRouter+Log.m"; sourceTree = ""; }; + 126BA284242F73A99913BE9B9D42AAE6 /* SDWebImage.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.module; path = SDWebImage.modulemap; sourceTree = ""; }; 1270D341AD024370F782DDA45E6C12A9 /* TUIMessageProgressManager.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = TUIMessageProgressManager.m; sourceTree = ""; }; - 12910AE21B90F8BC035075C6E8F72AD8 /* sharpyuv_cpu.c */ = {isa = PBXFileReference; includeInIndex = 1; name = sharpyuv_cpu.c; path = sharpyuv/sharpyuv_cpu.c; sourceTree = ""; }; - 12B4974D415230D74852002771EE0573 /* SDImageIOCoder.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDImageIOCoder.h; path = SDWebImage/Core/SDImageIOCoder.h; sourceTree = ""; }; - 12B6586F2862B11760BF86632F6D7F85 /* NSURLConnection+RACSupport.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "NSURLConnection+RACSupport.h"; path = "ReactiveObjC/NSURLConnection+RACSupport.h"; sourceTree = ""; }; - 12C424B95B1043BA4941599E8D71457C /* UIView+VAP.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "UIView+VAP.m"; path = "iOS/QGVAPlayer/QGVAPlayer/Classes/UIView+VAP.m"; sourceTree = ""; }; - 12C6FC9038D7F3D9D4408200D10ADC00 /* upsampling_msa.c */ = {isa = PBXFileReference; includeInIndex = 1; name = upsampling_msa.c; path = src/dsp/upsampling_msa.c; sourceTree = ""; }; - 12D8D0DD804774D4BB031F4294F17C2C /* ToneCalculator.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ToneCalculator.swift; path = AgoraLyricsScore/Class/Scoring/Other/ToneCalculator.swift; sourceTree = ""; }; - 12E886F4AC943C99824C0B41E8825278 /* LLRouter+Log.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "LLRouter+Log.m"; path = "LLDebugTool/Core/Others/Router/LLRouter+Log.m"; sourceTree = ""; }; - 12F06A680D70D1F1341E71DB85A169C2 /* OSSURLRequestRetryHandler.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = OSSURLRequestRetryHandler.h; path = AliyunOSSSDK/OSSURLRequestRetryHandler.h; sourceTree = ""; }; + 12DB7C639DA744A1B2B62DF0569D27B5 /* TZImagePickerController.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = TZImagePickerController.m; path = TZImagePickerController/TZImagePickerController/TZImagePickerController.m; sourceTree = ""; }; + 12EF51BACC197258B8B67C383A336E35 /* FMDB.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = FMDB.debug.xcconfig; sourceTree = ""; }; + 12F1A2F10AC296A844DA752039C443B5 /* QCloudLoaderManager.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = QCloudLoaderManager.h; path = QCloudCore/Classes/Base/CustomLoader/QCloudLoaderManager.h; sourceTree = ""; }; 12F70B3195C1736144C6897F105DAB60 /* ResourceBundle-TUIChat_Privacy-TUIChat-Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "ResourceBundle-TUIChat_Privacy-TUIChat-Info.plist"; sourceTree = ""; }; + 12F7EECB1516484975DFF9EADC43A210 /* ResourceBundle-TIMPush_Privacy-TIMPush-Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "ResourceBundle-TIMPush_Privacy-TIMPush-Info.plist"; sourceTree = ""; }; 12F89F4F6D01D511842B6A85199CD3BE /* TuringShieldCamRisk.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = TuringShieldCamRisk.framework; path = Libs/TuringShieldCamRisk.framework; sourceTree = ""; }; - 1324A3F6F9214E457D18D6CADF834808 /* GPBRuntimeTypes.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = GPBRuntimeTypes.h; path = objectivec/GPBRuntimeTypes.h; sourceTree = ""; }; - 13440D22EF77695236BA9B4DEF2E88BC /* LLNetworkFilterView.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = LLNetworkFilterView.h; path = LLDebugTool/Core/Component/Network/UserInterface/LLNetworkFilterView.h; sourceTree = ""; }; - 13922E11F6337C4C9A1D4C124E5EE7BA /* UIImageView+YYWebImage.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "UIImageView+YYWebImage.h"; path = "YYWebImage/Categories/UIImageView+YYWebImage.h"; sourceTree = ""; }; - 1398C969877EF6564C094BC18FD10C6C /* TZVideoEditedPreviewController.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = TZVideoEditedPreviewController.h; path = TZImagePickerController/TZImagePickerController/TZVideoEditedPreviewController.h; sourceTree = ""; }; - 13A5F69D2737AD399E5116EF238F4BE5 /* JXCategoryTitleImageCell.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = JXCategoryTitleImageCell.m; path = Sources/TitleImage/JXCategoryTitleImageCell.m; sourceTree = ""; }; - 13B8E0192C98B212CBDA3BC676AEA5DF /* JXCategoryIndicatorImageView.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = JXCategoryIndicatorImageView.m; path = Sources/Indicator/IndicatorViews/JXCategoryIndicatorImageView.m; sourceTree = ""; }; - 13CC6D92AF49BF76FF6C8C2B3209156E /* token_enc.c */ = {isa = PBXFileReference; includeInIndex = 1; name = token_enc.c; path = src/enc/token_enc.c; sourceTree = ""; }; + 1309C5A556D19DF70F71226558A8775A /* LLThemeColor.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = LLThemeColor.m; path = LLDebugTool/Core/Others/Manager/ThemeManager/LLThemeColor.m; sourceTree = ""; }; + 132B2C689DCD777DB3F90F03952E6683 /* QGVAPLogger.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = QGVAPLogger.h; path = iOS/QGVAPlayer/QGVAPlayer/Classes/Utils/Logger/QGVAPLogger.h; sourceTree = ""; }; + 133CE6640C5C7DFB943F938227BC2556 /* JXCategoryIndicatorLineView.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = JXCategoryIndicatorLineView.m; path = Sources/Indicator/IndicatorViews/JXCategoryIndicatorLineView.m; sourceTree = ""; }; + 133E941E19269403FDB94954342B351E /* TZPhotoPreviewCell.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = TZPhotoPreviewCell.m; path = TZImagePickerController/TZImagePickerController/TZPhotoPreviewCell.m; sourceTree = ""; }; + 136160DFF4DC56D9F769B02AC0929F6F /* YYDiskCache.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = YYDiskCache.m; path = YYCache/YYDiskCache.m; sourceTree = ""; }; + 137A9C20B65B87E549A6267C60BA5B81 /* FMDB.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FMDB.h; path = src/fmdb/FMDB.h; sourceTree = ""; }; + 1391E316F7838DF2D7B2B48EE51B8B64 /* LLTableViewSelectableModel.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = LLTableViewSelectableModel.m; path = LLDebugTool/Core/Others/CommonUI/Model/LLTableViewSelectableModel/LLTableViewSelectableModel.m; sourceTree = ""; }; + 13A7D917A92A240C84FE0CEFB2C9753F /* LLLogHelper.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = LLLogHelper.m; path = LLDebugTool/Core/Component/Log/Function/LLLogHelper.m; sourceTree = ""; }; 13CC9D78787F0E0390A490F2BA590C48 /* TUIRepliesDetailViewController.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = TUIRepliesDetailViewController.h; sourceTree = ""; }; - 13D5AD7FF09DDA4A40B74644F8F8C2D3 /* QGVAPlayer-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "QGVAPlayer-umbrella.h"; sourceTree = ""; }; - 13E75550002CF24D09CCC30370A00A2F /* QGVAPMetalShaderFunctionLoader.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = QGVAPMetalShaderFunctionLoader.h; path = iOS/QGVAPlayer/QGVAPlayer/Classes/Utils/QGVAPMetalShaderFunctionLoader.h; sourceTree = ""; }; - 13F19568DAB9768DEED990AD23257476 /* SSZipArchive-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "SSZipArchive-dummy.m"; sourceTree = ""; }; + 13CFFBA69B3D2794F8315B288F3F91D9 /* LyricMachine+Events.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "LyricMachine+Events.swift"; path = "AgoraLyricsScore/Class/Lyrics/LyricMachine+Events.swift"; sourceTree = ""; }; 13F6BF283CB904EC3C778176A1930515 /* TUIGroupChatViewController_Minimalist.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = TUIGroupChatViewController_Minimalist.m; sourceTree = ""; }; - 13FA732875D7053C925CF325B53FDB01 /* JXCategoryBaseCell.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = JXCategoryBaseCell.h; path = Sources/Base/JXCategoryBaseCell.h; sourceTree = ""; }; - 1425FFD7F8DDFD8D5C5F628E0CB20932 /* LLEntryView.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = LLEntryView.h; path = LLDebugTool/Core/Others/CommonUI/Window/EntryWindow/LLEntryView.h; sourceTree = ""; }; - 1444DD729800C600C3FC005A7D08C795 /* OSSSignerParams.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = OSSSignerParams.m; path = AliyunOSSSDK/Signer/OSSSignerParams.m; sourceTree = ""; }; - 1458BA2690A119C8FEDFB249E566F0AE /* LLMagnifierComponent.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = LLMagnifierComponent.m; path = LLDebugTool/Core/Component/Magnifier/LLMagnifierComponent.m; sourceTree = ""; }; - 146CBB19E23DBCF3CBBB69CAF66C7675 /* AgoraContentInspectExtension.xcframework */ = {isa = PBXFileReference; includeInIndex = 1; path = AgoraContentInspectExtension.xcframework; sourceTree = ""; }; - 14806CABC7CCFB326D24066E23E1F92F /* SDAnimatedImageView+WebCache.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "SDAnimatedImageView+WebCache.h"; path = "SDWebImage/Core/SDAnimatedImageView+WebCache.h"; sourceTree = ""; }; - 1485D3702A46F151C19F66E9CC28F283 /* NSAttributedString+YYText.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "NSAttributedString+YYText.h"; path = "YYText/Utility/NSAttributedString+YYText.h"; sourceTree = ""; }; + 13FEC6BC9EE134DDC176142FABA564F3 /* MASViewConstraint.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = MASViewConstraint.h; path = Masonry/MASViewConstraint.h; sourceTree = ""; }; + 14041B691D7491247310B82D64739506 /* OSSIPv6PrefixResolver.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = OSSIPv6PrefixResolver.m; path = AliyunOSSSDK/OSSIPv6/OSSIPv6PrefixResolver.m; sourceTree = ""; }; + 14096887FCB0C95BE6DFBB7E9875B3B6 /* LLMoveWindow.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = LLMoveWindow.m; path = LLDebugTool/Core/Others/CommonUI/View/MoveWindow/LLMoveWindow.m; sourceTree = ""; }; + 140AA7712FA9AE158F7E5EADD7AFED63 /* QCloudLoggerOutput.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = QCloudLoggerOutput.m; path = QCloudCore/Classes/Base/Logger/QCloudLoggerOutput.m; sourceTree = ""; }; + 1427B961E3A5BA3434EDF22E7C734D31 /* mz_strm_buf.c */ = {isa = PBXFileReference; includeInIndex = 1; name = mz_strm_buf.c; path = SSZipArchive/minizip/mz_strm_buf.c; sourceTree = ""; }; + 1444A2422702396B38D30FA53D16C3B0 /* QGVAPTextureLoader.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = QGVAPTextureLoader.h; path = iOS/QGVAPlayer/QGVAPlayer/Classes/Models/QGVAPTextureLoader.h; sourceTree = ""; }; + 14618BAE422652F257E80A9339F7B3F5 /* NSMutableData+QCloud_CRC.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "NSMutableData+QCloud_CRC.h"; path = "QCloudCore/Classes/Base/QCloudCategory/NSMutableData+QCloud_CRC.h"; sourceTree = ""; }; + 147B4F4D17B7C95671DEA10F9578A4D8 /* LLEntryView.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = LLEntryView.m; path = LLDebugTool/Core/Others/CommonUI/Window/EntryWindow/LLEntryView.m; sourceTree = ""; }; + 14837271B0CCF90097B6148F909B5838 /* filters_msa.c */ = {isa = PBXFileReference; includeInIndex = 1; name = filters_msa.c; path = src/dsp/filters_msa.c; sourceTree = ""; }; + 148CB482AC0BEB1AFFE5154991BEC4C4 /* YYTextLayout.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = YYTextLayout.m; path = YYText/Component/YYTextLayout.m; sourceTree = ""; }; 148D9AC15C4A9777E5ACBB46C03FE218 /* FMDB-FMDB_Privacy */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; name = "FMDB-FMDB_Privacy"; path = FMDB_Privacy.bundle; sourceTree = BUILT_PRODUCTS_DIR; }; + 148E56923E88BF660AC5CD67D8B05C46 /* dec_sse2.c */ = {isa = PBXFileReference; includeInIndex = 1; name = dec_sse2.c; path = src/dsp/dec_sse2.c; sourceTree = ""; }; 148EFBAE4D6B4B17FA9BC9B952DF5C3F /* TUIChatObjectFactory_Minimalist.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = TUIChatObjectFactory_Minimalist.m; sourceTree = ""; }; - 1498B5F778F353FE200AD032BF24BAB9 /* LLMagnifierView.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = LLMagnifierView.m; path = LLDebugTool/Core/Component/Magnifier/UserInterface/LLMagnifierView.m; sourceTree = ""; }; - 149AF4B27775F9A3212B5199958B7441 /* OSSFileLogger.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = OSSFileLogger.h; path = AliyunOSSSDK/OSSFileLog/OSSFileLogger.h; sourceTree = ""; }; - 149D41AE89B83465881446CCD18DD1BF /* LLMoveView.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = LLMoveView.h; path = LLDebugTool/Core/Others/CommonUI/View/MoveView/LLMoveView.h; sourceTree = ""; }; 14A3FE4DA4CE007A926AAC6102122F2E /* AliyunOSSiOS */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; name = AliyunOSSiOS; path = AliyunOSSiOS.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + 14AF95B74F7BC3A01173E51DA5FF80FA /* LLBaseViewController.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = LLBaseViewController.m; path = LLDebugTool/Core/Others/CommonUI/Base/LLBaseViewController.m; sourceTree = ""; }; + 14B2543E409AD42E610C3A45A0E7E42D /* WechatOpenSDK-XCFramework-xcframeworks.sh */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.script.sh; path = "WechatOpenSDK-XCFramework-xcframeworks.sh"; sourceTree = ""; }; + 14B471E238C81B6B3B17BCADB845A327 /* QCloudHttpMetrics.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = QCloudHttpMetrics.h; path = QCloudCore/Classes/Base/QCLOUDRestNet/Profile/QCloudHttpMetrics.h; sourceTree = ""; }; 14B94D6CDFBC0C16AED0830D2F1A4DD1 /* TUIMediaCollectionCell.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = TUIMediaCollectionCell.m; sourceTree = ""; }; - 14F709833EB5E24917813D59A3397A71 /* RACChannel.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = RACChannel.m; path = ReactiveObjC/RACChannel.m; sourceTree = ""; }; - 15326C99072EE61C47A1A69786519F31 /* CALayer+YYAdd.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "CALayer+YYAdd.h"; path = "YYCategories/Quartz/CALayer+YYAdd.h"; sourceTree = ""; }; - 1556CE6009342518C88400576F155A9E /* LLScreenshotDefine.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = LLScreenshotDefine.h; path = LLDebugTool/Core/Component/Screenshot/UserInterface/LLScreenshotDefine.h; sourceTree = ""; }; - 155CB483AEDFBD2BA69E796394E3D6C3 /* JXPagerSmoothView.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = JXPagerSmoothView.h; path = Sources/JXPagerView/JXPagerSmoothView.h; sourceTree = ""; }; - 155F35071198D863D3CAAB027300D532 /* LLComponentDelegate.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = LLComponentDelegate.h; path = LLDebugTool/Core/Others/Component/LLComponentDelegate.h; sourceTree = ""; }; - 15860ADA4F37D1ADAED9FD137CFFCDEA /* mz_zip_rw.c */ = {isa = PBXFileReference; includeInIndex = 1; name = mz_zip_rw.c; path = SSZipArchive/minizip/mz_zip_rw.c; sourceTree = ""; }; + 14BF43BE178C4AA10A056797985328BE /* UIColor+JXAdd.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "UIColor+JXAdd.m"; path = "Sources/Common/UIColor+JXAdd.m"; sourceTree = ""; }; + 14C654A222FC66AA2867F3373E6E4FF8 /* QCloudCOSXML-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "QCloudCOSXML-dummy.m"; sourceTree = ""; }; + 14DBE1B6DBE5D9646D9DD05011D55B51 /* SSZipArchive-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "SSZipArchive-dummy.m"; sourceTree = ""; }; + 14E7A02B510897AEBABF642888FD2C3E /* LLScreenshotSelectorView.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = LLScreenshotSelectorView.m; path = LLDebugTool/Core/Component/Screenshot/UserInterface/LLScreenshotSelectorView.m; sourceTree = ""; }; + 14EAD339EDD974C5708A827842C210A9 /* AgoraComponetLog-xcframeworks.sh */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.script.sh; path = "AgoraComponetLog-xcframeworks.sh"; sourceTree = ""; }; + 151F3D3EC05D7C138CFAB0A035025F9A /* JXPagingView-Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "JXPagingView-Info.plist"; sourceTree = ""; }; + 152B09EB5C46C3A5AA864C403CBB9A08 /* RACKVOChannel.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = RACKVOChannel.m; path = ReactiveObjC/RACKVOChannel.m; sourceTree = ""; }; + 153EE398FE075A68208EAEED76E6725C /* MKAnnotationView+RACSignalSupport.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "MKAnnotationView+RACSignalSupport.m"; path = "ReactiveObjC/MKAnnotationView+RACSignalSupport.m"; sourceTree = ""; }; + 1561E7BDCD20D0328E461774C81100A8 /* NSObject+RACDeallocating.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "NSObject+RACDeallocating.m"; path = "ReactiveObjC/NSObject+RACDeallocating.m"; sourceTree = ""; }; + 158012710CADFDCACD7C7479D3F84646 /* JXCategoryIndicatorTriangleView.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = JXCategoryIndicatorTriangleView.h; path = Sources/Indicator/IndicatorViews/JXCategoryIndicatorTriangleView.h; sourceTree = ""; }; 158FE2BF1C4A02316B39C4ED2FD86230 /* UIView+TUIUtil.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "UIView+TUIUtil.h"; sourceTree = ""; }; + 1593910178D38A66B74B5C24944CBECD /* UIView+TZLayout.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "UIView+TZLayout.m"; path = "TZImagePickerController/TZImagePickerController/UIView+TZLayout.m"; sourceTree = ""; }; 1597DCC4A53580299802EB3744A88E1C /* TUIMergeMessageListController_Minimalist.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = TUIMergeMessageListController_Minimalist.m; sourceTree = ""; }; + 15A33D6AE6F352803CE3BA0C735F26B8 /* sharpyuv_csp.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = sharpyuv_csp.h; path = sharpyuv/sharpyuv_csp.h; sourceTree = ""; }; 15B5065E95A05EA77EC7890FE9C0D494 /* TUIGroupNoticeController_Minimalist.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = TUIGroupNoticeController_Minimalist.h; sourceTree = ""; }; - 15BACCDF1E62033AF5CD2F2FBCA2F220 /* ReactiveObjC-Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "ReactiveObjC-Info.plist"; sourceTree = ""; }; - 15BBA74568D5A2FED38E97F745B8E748 /* NSImage+Compatibility.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "NSImage+Compatibility.m"; path = "SDWebImage/Core/NSImage+Compatibility.m"; sourceTree = ""; }; 15D9C6DC714203BCE67C84C9D60E46C0 /* TUIMessageReadViewController_Minimalist.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = TUIMessageReadViewController_Minimalist.h; sourceTree = ""; }; + 15DCC370CB5257738FC2E7302AB8CFE9 /* LLDetailTitleCell.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = LLDetailTitleCell.m; path = LLDebugTool/Core/Others/CommonUI/View/TitleCell/LLDetailTitleCell.m; sourceTree = ""; }; 15DF20828D428D24A8E4843A2BFE0154 /* TUICaptureTimer.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = TUICaptureTimer.h; sourceTree = ""; }; - 15F6E5CCF1C71D3157A8D4CD7984C3D3 /* YYTextAttribute.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = YYTextAttribute.h; path = YYText/String/YYTextAttribute.h; sourceTree = ""; }; - 15FDB37175E53B6511201CC5383369E3 /* SDImageWebPCoder.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDImageWebPCoder.h; path = SDWebImageWebPCoder/Classes/SDImageWebPCoder.h; sourceTree = ""; }; - 162CBC99F1F8BA87A87C3CE93BD47408 /* QGVAPMetalRenderer.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = QGVAPMetalRenderer.h; path = iOS/QGVAPlayer/QGVAPlayer/Classes/Views/Metal/Vapx/QGVAPMetalRenderer.h; sourceTree = ""; }; - 16443CE5B196B2E7CB45F9871958260E /* SDCallbackQueue.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDCallbackQueue.h; path = SDWebImage/Core/SDCallbackQueue.h; sourceTree = ""; }; - 165719683AA3EE8CDC24DD49B0F7012D /* sharpyuv.c */ = {isa = PBXFileReference; includeInIndex = 1; name = sharpyuv.c; path = sharpyuv/sharpyuv.c; sourceTree = ""; }; - 166C63775ADC195B9E4AF0274FE7786D /* TZImagePickerController.bundle */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = "wrapper.plug-in"; name = TZImagePickerController.bundle; path = TZImagePickerController/TZImagePickerController/TZImagePickerController.bundle; sourceTree = ""; }; + 1617859C27A41F6DAFA1D3C071CDC62C /* LLLogViewController.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = LLLogViewController.m; path = LLDebugTool/Core/Component/Log/UserInterface/LLLogViewController.m; sourceTree = ""; }; + 1641B4130A8DD2C2E3021678074209EB /* UISwitch+RACSignalSupport.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "UISwitch+RACSignalSupport.h"; path = "ReactiveObjC/UISwitch+RACSignalSupport.h"; sourceTree = ""; }; 168C9552835213EFD4E946DF7A3A5E4A /* TUIMenuCellData.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = TUIMenuCellData.m; sourceTree = ""; }; + 16A953B1489D93A6CAB58DF3660E50FC /* UIView+SDExtension.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "UIView+SDExtension.m"; path = "SDCycleScrollView/Lib/SDCycleScrollView/UIView+SDExtension.m"; sourceTree = ""; }; + 16A98E5BDC077F1555782DCE30594D96 /* LLSandboxCell.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = LLSandboxCell.h; path = LLDebugTool/Core/Component/Sandbox/UserInterface/LLSandboxCell.h; sourceTree = ""; }; 16AAD6577B4751C59BFF8318341DDDAB /* TUIGroupPinPageViewController.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = TUIGroupPinPageViewController.h; sourceTree = ""; }; - 16ABE6B596635A18447A7259BA6AEC22 /* MQTTInMemoryPersistence.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = MQTTInMemoryPersistence.m; path = MQTTClient/MQTTClient/MQTTInMemoryPersistence.m; sourceTree = ""; }; - 16BDA8E3F3C349C76A1450A2A6D742DD /* MJRefreshAutoStateFooter.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = MJRefreshAutoStateFooter.h; path = MJRefresh/Custom/Footer/Auto/MJRefreshAutoStateFooter.h; sourceTree = ""; }; + 16C764907155092CA362EE87202CB7AC /* BRPickerView.bundle */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = "wrapper.plug-in"; name = BRPickerView.bundle; path = BRPickerView/Core/BRPickerView.bundle; sourceTree = ""; }; 16F5E8F967963B368527015A3F347B30 /* TUIRecordView.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = TUIRecordView.h; sourceTree = ""; }; - 16F9963AA25300C4236F0E214BAC6582 /* Downloader.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Downloader.swift; path = AgoraLyricsScore/Class/Downloader/Downloader.swift; sourceTree = ""; }; - 17069CF4EF1C5A1762BB7B0F6C0A356B /* JXCategoryIndicatorLineView.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = JXCategoryIndicatorLineView.m; path = Sources/Indicator/IndicatorViews/JXCategoryIndicatorLineView.m; sourceTree = ""; }; - 170B4737D8EF99A8FA05C7A23B23F883 /* LLRouter+AppInfo.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "LLRouter+AppInfo.h"; path = "LLDebugTool/Core/Others/Router/LLRouter+AppInfo.h"; sourceTree = ""; }; + 1716232139CC5201D57DB0BC972C8EA4 /* SDWebImage.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = SDWebImage.debug.xcconfig; sourceTree = ""; }; 1716B5FBCF0DF55C120AC52CFC22452D /* YYCategories */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; name = YYCategories; path = YYCategories.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - 1718C637E8B2E604FE3CF4BF15E5F7F6 /* OSSSignerParams.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = OSSSignerParams.h; path = AliyunOSSSDK/Signer/OSSSignerParams.h; sourceTree = ""; }; - 171A749A0ABC4EC247A355379BFA03A4 /* NSAttributedString+AvoidCrash.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "NSAttributedString+AvoidCrash.m"; path = "AvoidCrash/NSAttributedString+AvoidCrash.m"; sourceTree = ""; }; - 171BC9A890FA78716C470AE7F0861E99 /* YBIBImageCache.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = YBIBImageCache.h; path = YBImageBrowser/Image/YBIBImageCache.h; sourceTree = ""; }; - 1739D40E3ECE7CF5786D24A51C8AA0B0 /* FMDB.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FMDB.h; path = src/fmdb/FMDB.h; sourceTree = ""; }; - 1762B76F8D2896C8BD39CCAEBEEC31BA /* NSArray+VAPUtil.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "NSArray+VAPUtil.m"; path = "iOS/QGVAPlayer/QGVAPlayer/Classes/Utils/Categorys/NSArray+VAPUtil.m"; sourceTree = ""; }; + 171952C1A3A5AF772DD6ECCA56E1D43B /* IQToolbar.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = IQToolbar.m; path = IQKeyboardManager/IQToolbar/IQToolbar.m; sourceTree = ""; }; + 172CB44B04B81500A3896C8F1EA66C29 /* LLHierarchyHelper.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = LLHierarchyHelper.m; path = LLDebugTool/Core/Component/Hierarchy/Function/LLHierarchyHelper.m; sourceTree = ""; }; + 1738F3FDE9CC0DE7C1813CA3ABF620E9 /* RTLManager.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = RTLManager.h; path = Sources/RLTManager/RTLManager.h; sourceTree = ""; }; + 17627534BA2F0834C096BC0D027BCF76 /* Zip-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "Zip-prefix.pch"; sourceTree = ""; }; 176D1F2373CBF8ADDD59548AEA36F0E5 /* TUIMessageCellConfig_Minimalist.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = TUIMessageCellConfig_Minimalist.m; sourceTree = ""; }; - 176EC1FA23F354ACC3E12A660507847F /* KaraokeView.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = KaraokeView.swift; path = AgoraLyricsScore/Class/KaraokeView.swift; sourceTree = ""; }; - 17A2EE449522DCED16FF69CB080F8B07 /* YYTextDebugOption.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = YYTextDebugOption.m; path = YYText/Component/YYTextDebugOption.m; sourceTree = ""; }; + 177252F2A68240CE164B5848F29F2CBA /* LLJsonTool.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = LLJsonTool.h; path = LLDebugTool/Core/Others/JsonTool/LLJsonTool.h; sourceTree = ""; }; + 178CB5232ADD2940C664E2DAC8C07E78 /* YYTextTransaction.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = YYTextTransaction.m; path = YYText/Utility/YYTextTransaction.m; sourceTree = ""; }; + 179266BC2C3B9C1BC1AB76D7677AF624 /* SDCallbackQueue.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDCallbackQueue.m; path = SDWebImage/Core/SDCallbackQueue.m; sourceTree = ""; }; + 17A930B3262C6C80EA4BDDDAF7256495 /* QCloudCustomLoader.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = QCloudCustomLoader.h; path = QCloudCore/Classes/Base/CustomLoader/QCloudCustomLoader.h; sourceTree = ""; }; + 17B18416AEC94C55CE635A96FB102FE8 /* ReactiveObjC.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = ReactiveObjC.release.xcconfig; sourceTree = ""; }; 17F101A8D76A7CB07D0256337B955E80 /* TUIChat-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "TUIChat-umbrella.h"; sourceTree = ""; }; - 180E8B14FBA98D060BE0B6BA6136D5DD /* MJRefreshGifHeader.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = MJRefreshGifHeader.m; path = MJRefresh/Custom/Header/MJRefreshGifHeader.m; sourceTree = ""; }; - 182D05E9C4066BF7CB2532FAD45EE86F /* UIImageView+AFNetworking.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "UIImageView+AFNetworking.h"; path = "UIKit+AFNetworking/UIImageView+AFNetworking.h"; sourceTree = ""; }; - 18420021A7B1BD23BE8FD0CC278C9B57 /* OSSSignUtils.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = OSSSignUtils.h; path = AliyunOSSSDK/Signer/OSSSignUtils.h; sourceTree = ""; }; + 18041577F16A0143428033EB5F335017 /* JXCategoryTitleView.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = JXCategoryTitleView.h; path = Sources/Title/JXCategoryTitleView.h; sourceTree = ""; }; + 1804E0CE29A76FAF0B263872E8F5B485 /* GPBTimestamp.pbobjc.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = GPBTimestamp.pbobjc.h; path = objectivec/GPBTimestamp.pbobjc.h; sourceTree = ""; }; + 1832AD024F11EA28E6491B6EE218049F /* CALayer+YYAdd.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "CALayer+YYAdd.h"; path = "YYCategories/Quartz/CALayer+YYAdd.h"; sourceTree = ""; }; + 18354FADB2DFD827C38F32B5B283B9A4 /* JXCategoryImageCell.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = JXCategoryImageCell.m; path = Sources/Image/JXCategoryImageCell.m; sourceTree = ""; }; + 1836FF8EE9E132C2D0C9EDF864335D28 /* GPBRootObject.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = GPBRootObject.m; path = objectivec/GPBRootObject.m; sourceTree = ""; }; + 1854DC9D55B17DD70F4C7058C19FF2F9 /* MQTTClient.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = MQTTClient.release.xcconfig; sourceTree = ""; }; 185891CE0FA5AA263CFA1982F4E5B3F1 /* TUIReplyMessageCellData.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = TUIReplyMessageCellData.h; sourceTree = ""; }; 1861D51E6AFECEB294232A4496429A63 /* TIMCommon-TIMCommon_Privacy */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; name = "TIMCommon-TIMCommon_Privacy"; path = TIMCommon_Privacy.bundle; sourceTree = BUILT_PRODUCTS_DIR; }; - 1878A5067AE8B0473732790299DBB133 /* YBIBLoadingView.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = YBIBLoadingView.m; path = YBImageBrowser/AuxiliaryView/YBIBLoadingView.m; sourceTree = ""; }; - 18B7096A5E2FB6204CEB59A13E752361 /* UIColor+JXAdd.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "UIColor+JXAdd.m"; path = "Sources/Common/UIColor+JXAdd.m"; sourceTree = ""; }; - 18CAAFC88AC77CDDEB1287E1863E3537 /* JXCategoryBaseCell.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = JXCategoryBaseCell.m; path = Sources/Base/JXCategoryBaseCell.m; sourceTree = ""; }; - 18D10D60FDAB96D86A0AB66AD1178534 /* libwebp-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "libwebp-dummy.m"; sourceTree = ""; }; + 1872E3DC15A4A585A5D6B157E5353431 /* KrcParser.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = KrcParser.swift; path = AgoraLyricsScore/Class/Other/KrcParser.swift; sourceTree = ""; }; + 187EB415C386F93E525B3555B972129F /* QCloudUploadPartRequest+Custom.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "QCloudUploadPartRequest+Custom.m"; path = "QCloudCOSXML/Classes/Transfer/request/QCloudUploadPartRequest+Custom.m"; sourceTree = ""; }; + 1881D1008039B89F10E7FA2BA6DE3763 /* QCloudGetObjectRequest.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = QCloudGetObjectRequest.m; path = QCloudCOSXML/Classes/Transfer/request/QCloudGetObjectRequest.m; sourceTree = ""; }; + 1886FABE4F852B01CE143893D8365EFD /* MASLayoutConstraint.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = MASLayoutConstraint.m; path = Masonry/MASLayoutConstraint.m; sourceTree = ""; }; + 1887F4D2942335285CFD33902DAB90D2 /* IQBarButtonItem.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = IQBarButtonItem.m; path = IQKeyboardManager/IQToolbar/IQBarButtonItem.m; sourceTree = ""; }; + 188FEDA05AA25015F0253CF3C2A1311E /* YBIBPhotoAlbumManager.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = YBIBPhotoAlbumManager.h; path = YBImageBrowser/Helper/YBIBPhotoAlbumManager.h; sourceTree = ""; }; + 18D4BC089B6EE583D1F4CBCED430B23B /* YYCategories-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "YYCategories-prefix.pch"; sourceTree = ""; }; 18EBAF584B696CB221C9BEC2A9B9E812 /* TUICommonModel.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = TUICommonModel.m; sourceTree = ""; }; 18F28F3038AFFB65CF4B02270E8D7093 /* TUIReplyQuoteView_Minimalist.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = TUIReplyQuoteView_Minimalist.m; sourceTree = ""; }; - 18F4C4629CC425BF3DE1AF23A034EC2A /* MQTTPersistence.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = MQTTPersistence.h; path = MQTTClient/MQTTClient/MQTTPersistence.h; sourceTree = ""; }; - 19273D67C7D67D752C0B805B300C27F3 /* Zip-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "Zip-dummy.m"; sourceTree = ""; }; - 1947430A08FD5DE906F4FA0E5CA162EE /* AgoraComponetLog-xcframeworks.sh */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.script.sh; path = "AgoraComponetLog-xcframeworks.sh"; sourceTree = ""; }; - 195C3C289162E648A1D619A1B4B96E7A /* LLShortCutModel.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = LLShortCutModel.m; path = LLDebugTool/Core/Component/ShortCut/Function/LLShortCutModel.m; sourceTree = ""; }; - 196F0625998DC51DDCF87BFDF917C668 /* NSMutableString+AvoidCrash.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "NSMutableString+AvoidCrash.m"; path = "AvoidCrash/NSMutableString+AvoidCrash.m"; sourceTree = ""; }; - 19892B4444E8A8E2B48DFB057AFF8C54 /* SDAssociatedObject.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDAssociatedObject.h; path = SDWebImage/Private/SDAssociatedObject.h; sourceTree = ""; }; - 19963A5B4C3FD728A2A2BE72D49BF3ED /* SDWebImageDownloaderRequestModifier.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDWebImageDownloaderRequestModifier.m; path = SDWebImage/Core/SDWebImageDownloaderRequestModifier.m; sourceTree = ""; }; - 19A0587CA47990B3165DCD372D3C9787 /* LLDetailTitleSelectorCell.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = LLDetailTitleSelectorCell.m; path = LLDebugTool/Core/Others/CommonUI/View/TitleCell/LLDetailTitleSelectorCell.m; sourceTree = ""; }; - 19BDE7DE37FB94AF8F799EB887B2959C /* MJRefreshAutoFooter.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = MJRefreshAutoFooter.m; path = MJRefresh/Base/MJRefreshAutoFooter.m; sourceTree = ""; }; - 19E9FFA06A50A1FA4E030472C000813B /* AgoraAiNoiseSuppressionExtension.xcframework */ = {isa = PBXFileReference; includeInIndex = 1; path = AgoraAiNoiseSuppressionExtension.xcframework; sourceTree = ""; }; - 19EA860424B2E003DEF032573D40DF17 /* cost_mips_dsp_r2.c */ = {isa = PBXFileReference; includeInIndex = 1; name = cost_mips_dsp_r2.c; path = src/dsp/cost_mips_dsp_r2.c; sourceTree = ""; }; - 19EF0D68B436BB55EB5138A59AD851AD /* SDAnimatedImage.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDAnimatedImage.h; path = SDWebImage/Core/SDAnimatedImage.h; sourceTree = ""; }; - 19F3149D5D563AEB54551B9A84B47865 /* UIPasteboard+YYText.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "UIPasteboard+YYText.h"; path = "YYText/Utility/UIPasteboard+YYText.h"; sourceTree = ""; }; - 19F5B12627C5AA63AD9135DE3E6260CB /* FMResultSet.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FMResultSet.h; path = src/fmdb/FMResultSet.h; sourceTree = ""; }; - 1A05C39702EF96E64D5A8F78FAA0AEE7 /* YBIBVideoData+Internal.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "YBIBVideoData+Internal.h"; path = "Video/YBIBVideoData+Internal.h"; sourceTree = ""; }; - 1A21449F09A73A1E07B5EBA56EA816D0 /* SDImageCachesManagerOperation.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDImageCachesManagerOperation.h; path = SDWebImage/Private/SDImageCachesManagerOperation.h; sourceTree = ""; }; - 1A216F21A0B9C30986ED0630A2105BF3 /* YBImage.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = YBImage.m; path = YBImageBrowser/Image/YBImage.m; sourceTree = ""; }; - 1A46F62C62F5816CED7DED7AE930B1DA /* NSDictionary+YYAdd.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "NSDictionary+YYAdd.h"; path = "YYCategories/Foundation/NSDictionary+YYAdd.h"; sourceTree = ""; }; - 1A4EF6B84B65165920D96CC4503CCC85 /* NSArray+MASAdditions.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "NSArray+MASAdditions.m"; path = "Masonry/NSArray+MASAdditions.m"; sourceTree = ""; }; - 1A88AD91A6FB86BFBBF07A36A5C85A1B /* GPBUnknownFields+Additions.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "GPBUnknownFields+Additions.swift"; path = "objectivec/GPBUnknownFields+Additions.swift"; sourceTree = ""; }; - 1A91AA397556CC9C7060BEE7A4434CAA /* MJRefreshComponent.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = MJRefreshComponent.h; path = MJRefresh/Base/MJRefreshComponent.h; sourceTree = ""; }; - 1A9FADDA2D43F976F452DCD9C6C75C42 /* OSSBolts.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = OSSBolts.h; path = AliyunOSSSDK/OSSTask/OSSBolts.h; sourceTree = ""; }; - 1AB00D2FD73F42A4B4405E3C4E458E83 /* ResourceBundle-TIMPush_Privacy-TIMPush-Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "ResourceBundle-TIMPush_Privacy-TIMPush-Info.plist"; sourceTree = ""; }; - 1ABB117959382F8EF646811ABA4EE0E6 /* LLFilterTextFieldCell.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = LLFilterTextFieldCell.h; path = LLDebugTool/Core/Others/CommonUI/View/FilterView/LLFilterTextFieldCell.h; sourceTree = ""; }; - 1AD2B1887F9946F4A3CC53C3A5A7B630 /* RACSubscriber.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = RACSubscriber.m; path = ReactiveObjC/RACSubscriber.m; sourceTree = ""; }; + 18FC96CC58A3760F2BCDB736F8029010 /* BRBaseView.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = BRBaseView.m; path = BRPickerView/Deprecated/Base/BRBaseView.m; sourceTree = ""; }; + 1905248EEA3CE43D8B0EE5A90773BEF7 /* UIWindow+LL_Utils.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "UIWindow+LL_Utils.h"; path = "LLDebugTool/Core/Others/Category/UIWindow/UIWindow+LL_Utils.h"; sourceTree = ""; }; + 19208F14DA0A2B3D68B23872962764E3 /* rescaler_sse2.c */ = {isa = PBXFileReference; includeInIndex = 1; name = rescaler_sse2.c; path = src/dsp/rescaler_sse2.c; sourceTree = ""; }; + 193B8DE441F822996DB85CE1E778E140 /* AFImageDownloader.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = AFImageDownloader.m; path = "UIKit+AFNetworking/AFImageDownloader.m"; sourceTree = ""; }; + 198BE69391F4887F28FA64E0248071F8 /* NSDictionary+VAPUtil.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "NSDictionary+VAPUtil.h"; path = "iOS/QGVAPlayer/QGVAPlayer/Classes/Utils/Categorys/NSDictionary+VAPUtil.h"; sourceTree = ""; }; + 199536E8963A301291FD2DEC6B14531D /* GPBStruct.pbobjc.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = GPBStruct.pbobjc.m; path = objectivec/GPBStruct.pbobjc.m; sourceTree = ""; }; + 199E167D37F89FBAB58B59277B052F6E /* OSSNSLogger.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = OSSNSLogger.h; path = AliyunOSSSDK/OSSFileLog/OSSNSLogger.h; sourceTree = ""; }; + 19AB223C1F942890DF0BE9212ABCBAE0 /* NSParagraphStyle+YYText.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "NSParagraphStyle+YYText.h"; path = "YYText/Utility/NSParagraphStyle+YYText.h"; sourceTree = ""; }; + 19C0F163161623AD623CF6733ACC305E /* NSBundle+YYAdd.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "NSBundle+YYAdd.h"; path = "YYCategories/Foundation/NSBundle+YYAdd.h"; sourceTree = ""; }; + 19EC4EE0C567873774C66292AEC15EFD /* SDImageCachesManager.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDImageCachesManager.m; path = SDWebImage/Core/SDImageCachesManager.m; sourceTree = ""; }; + 1A1B3B7BD102DF87FBCCD0568816B6BA /* GPBWellKnownTypes.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = GPBWellKnownTypes.m; path = objectivec/GPBWellKnownTypes.m; sourceTree = ""; }; + 1A23EF77097C6A1C74E776951B509E5B /* PrivacyInfo.xcprivacy */ = {isa = PBXFileReference; includeInIndex = 1; name = PrivacyInfo.xcprivacy; path = BRPickerView/PrivacyInfo.xcprivacy; sourceTree = ""; }; + 1A2E818D391D5A9AF7161708FD90DA54 /* QCloudSandboxPath.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = QCloudSandboxPath.h; path = QCloudCore/Classes/Base/PathUtilities/QCloudSandboxPath.h; sourceTree = ""; }; + 1A2E8AEB3D01EFA0A7BC494E9A84B299 /* mips_macro.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = mips_macro.h; path = src/dsp/mips_macro.h; sourceTree = ""; }; + 1A37423603CB86631A25C75E7428AED0 /* Masonry.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.module; path = Masonry.modulemap; sourceTree = ""; }; + 1A73459C2CC9D8D858F04BEFB0B50BA1 /* Algorithm.c */ = {isa = PBXFileReference; includeInIndex = 1; name = Algorithm.c; path = AgoraLyricsScore/Class/Al/Algorithm.c; sourceTree = ""; }; + 1A80456146B2F3CE27A4C9F942F1A2D1 /* webp_dec.c */ = {isa = PBXFileReference; includeInIndex = 1; name = webp_dec.c; path = src/dec/webp_dec.c; sourceTree = ""; }; + 1A95A841692B05AA71D9B23913C6DCB1 /* UIRefreshControl+AFNetworking.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "UIRefreshControl+AFNetworking.h"; path = "UIKit+AFNetworking/UIRefreshControl+AFNetworking.h"; sourceTree = ""; }; + 1A9DA6C06786C42A34745E252318F852 /* mz_compat.c */ = {isa = PBXFileReference; includeInIndex = 1; name = mz_compat.c; path = SSZipArchive/minizip/mz_compat.c; sourceTree = ""; }; + 1AA12266A225C8D70CDC90D33EABC8C9 /* LLFunctionItemModel.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = LLFunctionItemModel.m; path = LLDebugTool/Core/Others/Component/Function/UserInterface/LLFunctionItemModel.m; sourceTree = ""; }; 1AD3A57805F1807345E09E59E29510FB /* TUIConversationListDataProvider_Minimalist.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = TUIConversationListDataProvider_Minimalist.h; sourceTree = ""; }; - 1AD45616632E2D6FB7219489EF525303 /* NSData+YYAdd.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "NSData+YYAdd.m"; path = "YYCategories/Foundation/NSData+YYAdd.m"; sourceTree = ""; }; - 1ADB21FD1AACA89F1FB5A6D577CEE0A8 /* IQKeyboardManagerConstants.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = IQKeyboardManagerConstants.h; path = IQKeyboardManager/Constants/IQKeyboardManagerConstants.h; sourceTree = ""; }; + 1ADA0F2909892D339EE4B58B24AAF304 /* QGHWDMetalView.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = QGHWDMetalView.m; path = iOS/QGVAPlayer/QGVAPlayer/Classes/Views/Metal/QGHWDMetalView.m; sourceTree = ""; }; 1AE47120AACC023A925FF8799BECF23D /* TUIGroupCreatedCell_Minimalist.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = TUIGroupCreatedCell_Minimalist.h; sourceTree = ""; }; 1AE7F39720B6351447C0166FA9BD3C05 /* TUIChatDataProvider.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = TUIChatDataProvider.h; sourceTree = ""; }; + 1AF888AD2D01349BB1539729BFBAE5CF /* OSSAllRequestNeededMessage.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = OSSAllRequestNeededMessage.m; path = AliyunOSSSDK/OSSAllRequestNeededMessage.m; sourceTree = ""; }; + 1AFD837912158353E2D4AA3698EDECEF /* AgoraSpatialAudioExtension.xcframework */ = {isa = PBXFileReference; includeInIndex = 1; path = AgoraSpatialAudioExtension.xcframework; sourceTree = ""; }; 1B01055A02C595C4CC216230475CCEF1 /* TUIGlobalization.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = TUIGlobalization.h; sourceTree = ""; }; + 1B01B009C9C7D3274074627D95807B53 /* QCloudMultipartUploadOwner.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = QCloudMultipartUploadOwner.m; path = QCloudCOSXML/Classes/Transfer/model/QCloudMultipartUploadOwner.m; sourceTree = ""; }; + 1B065ADB18274304662B055842D547B8 /* LyricsFileDownloaderProtocol.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = LyricsFileDownloaderProtocol.swift; path = AgoraLyricsScore/Class/Downloader/LyricsFileDownloaderProtocol.swift; sourceTree = ""; }; + 1B1917C3258642FD33C8DEDAA318364B /* TIMPush.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = TIMPush.debug.xcconfig; sourceTree = ""; }; 1B1EB606B1F4A7C6FCDE8A933428596B /* TUITypingStatusCellData.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = TUITypingStatusCellData.m; sourceTree = ""; }; - 1B20C25F7405FD9E57B73C3A72FFFCB8 /* SDWebImageDownloaderConfig.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDWebImageDownloaderConfig.m; path = SDWebImage/Core/SDWebImageDownloaderConfig.m; sourceTree = ""; }; - 1B3DD5FA7ADF78EBF57830D7902FBF52 /* LLCrashViewController.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = LLCrashViewController.m; path = LLDebugTool/Core/Component/Crash/UserInterface/LLCrashViewController.m; sourceTree = ""; }; - 1B403AFD3386756786B7F92B5A1D84B3 /* UIView+SDExtension.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "UIView+SDExtension.m"; path = "SDCycleScrollView/Lib/SDCycleScrollView/UIView+SDExtension.m"; sourceTree = ""; }; - 1B669E57FA769FDF71F6D8A261B286AF /* SVGAAudioLayer.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SVGAAudioLayer.h; path = Source/SVGAAudioLayer.h; sourceTree = ""; }; - 1B682B2D49A459741652DEE728A1163D /* OSSHttpdns.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = OSSHttpdns.h; path = AliyunOSSSDK/OSSHttpdns.h; sourceTree = ""; }; - 1B8DDE6261E463904F0E0DAD4AF0CF2C /* QGMP4Box.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = QGMP4Box.m; path = iOS/QGVAPlayer/QGVAPlayer/Classes/MP4Parser/QGMP4Box.m; sourceTree = ""; }; - 1B983014BE906CBD7A984B45476F4FC8 /* NSObject+YYAddForKVO.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "NSObject+YYAddForKVO.m"; path = "YYCategories/Foundation/NSObject+YYAddForKVO.m"; sourceTree = ""; }; - 1BA6DF5BE5A1DBE7A5CAF475B59DC668 /* lossless_enc.c */ = {isa = PBXFileReference; includeInIndex = 1; name = lossless_enc.c; path = src/dsp/lossless_enc.c; sourceTree = ""; }; - 1BB42E948C2F7E7473873E19D52BFA99 /* LLComponentWindow.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = LLComponentWindow.m; path = LLDebugTool/Core/Others/CommonUI/Window/ComponentWindow/LLComponentWindow.m; sourceTree = ""; }; - 1BD5CCBD233C9725E461C49442B1F843 /* UICollectionReusableView+RACSignalSupport.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "UICollectionReusableView+RACSignalSupport.h"; path = "ReactiveObjC/UICollectionReusableView+RACSignalSupport.h"; sourceTree = ""; }; - 1C026300FFFB099F48154B7D5E9C26B1 /* LLScreenshot.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = LLScreenshot.h; path = LLDebugTool/Core/Component/Screenshot/LLScreenshot.h; sourceTree = ""; }; - 1C1DA722249DD04340455DFA86D43927 /* QGAnimatedImageDecodeConfig.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = QGAnimatedImageDecodeConfig.h; path = iOS/QGVAPlayer/QGVAPlayer/Classes/Controllers/QGAnimatedImageDecodeConfig.h; sourceTree = ""; }; - 1C203BA082EC1DA4047762B2C81E58B9 /* ZipArchive.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = ZipArchive.h; path = SSZipArchive/include/ZipArchive.h; sourceTree = ""; }; - 1C48DE11BB2002EE471F4BC6C1FE9B15 /* SDImageCacheDefine.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDImageCacheDefine.h; path = SDWebImage/Core/SDImageCacheDefine.h; sourceTree = ""; }; + 1B5BDB8A4E3E1A103D830B649A2DE327 /* YYTextParser.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = YYTextParser.h; path = YYText/String/YYTextParser.h; sourceTree = ""; }; + 1BA6958466A32AF9132FFA8AA4FD8B85 /* QCloudCOSXML.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = QCloudCOSXML.debug.xcconfig; sourceTree = ""; }; + 1BB17EB26C18B840FDFABFCD2C4A1964 /* ScoringView+Events.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "ScoringView+Events.swift"; path = "AgoraLyricsScore/Class/Scoring/View/ScoringView+Events.swift"; sourceTree = ""; }; + 1BC9E6647B45DB7C2F29655EE5CB5F55 /* SVGAImageView.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SVGAImageView.h; path = Source/SVGAImageView.h; sourceTree = ""; }; + 1BD7A2EEFD3A74BC35A93A1D846CCD9B /* LLSettingWindow.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = LLSettingWindow.m; path = LLDebugTool/Core/Others/Component/Setting/UserInterface/LLSettingWindow.m; sourceTree = ""; }; + 1BE696AE898CF859D435CA3561473095 /* Zip-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "Zip-dummy.m"; sourceTree = ""; }; + 1BEB685C697FE5423B0FBEF0E1C5592E /* QCloudThreadSafeMutableDictionary.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = QCloudThreadSafeMutableDictionary.m; path = "QCloudCore/Classes/Base/Bolts-Promise/QCloudThreadSafeMutableDictionary.m"; sourceTree = ""; }; + 1C2F31D548AB72EE666F20112F85F721 /* IQKeyboardManager.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.module; path = IQKeyboardManager.modulemap; sourceTree = ""; }; + 1C33AB6E13244E6E5A312200E726BD56 /* YYText-Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "YYText-Info.plist"; sourceTree = ""; }; + 1C4CB6C1CB8203418CDFE97C2E15EF20 /* JXCategoryIndicatorBallView.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = JXCategoryIndicatorBallView.h; path = Sources/Indicator/IndicatorViews/JXCategoryIndicatorBallView.h; sourceTree = ""; }; 1C57656CFFDD0E3A00DA919DA53EAD2E /* TUIVoiceMessageCellData.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = TUIVoiceMessageCellData.h; sourceTree = ""; }; - 1C5EABFA1248704C4935F55A44D0FEAF /* LLSandboxViewController.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = LLSandboxViewController.h; path = LLDebugTool/Core/Component/Sandbox/UserInterface/LLSandboxViewController.h; sourceTree = ""; }; - 1C743C0A955ACC0E0775005EB0D41E6B /* YBIBPhotoAlbumManager.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = YBIBPhotoAlbumManager.h; path = YBImageBrowser/Helper/YBIBPhotoAlbumManager.h; sourceTree = ""; }; + 1C58A2493448062EEB078E9E75FC5E00 /* YBImageBrowser.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.module; path = YBImageBrowser.modulemap; sourceTree = ""; }; + 1C67F518C36E23AF40254DBA8D1341DE /* RACIndexSetSequence.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = RACIndexSetSequence.m; path = ReactiveObjC/RACIndexSetSequence.m; sourceTree = ""; }; + 1C6CB13EC3CBC674CF960DABFF97B5E0 /* LLDebugTool.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = LLDebugTool.h; path = LLDebugTool/DebugTool/LLDebugTool.h; sourceTree = ""; }; 1C7865F99FD95F09847F533F33A10298 /* TUIVideoCollectionCell.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = TUIVideoCollectionCell.h; sourceTree = ""; }; - 1C7FF4E56FB57E68D16A5E3145BCF530 /* OSSIPv6PrefixResolver.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = OSSIPv6PrefixResolver.h; path = AliyunOSSSDK/OSSIPv6/OSSIPv6PrefixResolver.h; sourceTree = ""; }; - 1CD8647F3F770C4C44B6909BA049DD1D /* IQTitleBarButtonItem.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = IQTitleBarButtonItem.h; path = IQKeyboardManager/IQToolbar/IQTitleBarButtonItem.h; sourceTree = ""; }; - 1CF9327BF7C88C0B6AAF3178DA04CC51 /* IQPreviousNextView.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = IQPreviousNextView.h; path = IQKeyboardManager/IQToolbar/IQPreviousNextView.h; sourceTree = ""; }; - 1CFB72C52D3A20B7F2E09BEDA45ED8F8 /* YYModel-Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "YYModel-Info.plist"; sourceTree = ""; }; - 1CFC5AEBAA715076772A3FC1E5E1485A /* AFNetworking.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.module; path = AFNetworking.modulemap; sourceTree = ""; }; - 1D2953BEEA9E7DD25F9FEE070C93EE01 /* LLDetailTitleCell.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = LLDetailTitleCell.m; path = LLDebugTool/Core/Others/CommonUI/View/TitleCell/LLDetailTitleCell.m; sourceTree = ""; }; - 1D5C836EF20E3D39FF804AEB9B1D57F7 /* BRTextPickerView.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = BRTextPickerView.h; path = BRPickerView/TextPicker/BRTextPickerView.h; sourceTree = ""; }; + 1C8D8936524EBE3B344C9BC49AF47117 /* QCloudMultiDelegateProxy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = QCloudMultiDelegateProxy.m; path = QCloudCore/Classes/Base/ObjectFack/QCloudMultiDelegateProxy.m; sourceTree = ""; }; + 1C9EA99F55198372B00D4B1CE72A7626 /* SVGAPlayer.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = SVGAPlayer.debug.xcconfig; sourceTree = ""; }; + 1CAD5071D46DA74AF8629B89B2460B55 /* IQUIViewController+Additions.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "IQUIViewController+Additions.h"; path = "IQKeyboardManager/Categories/IQUIViewController+Additions.h"; sourceTree = ""; }; + 1CCC26D7A014F04D3FF49AF42C9F966C /* SDWebImageManager.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDWebImageManager.m; path = SDWebImage/Core/SDWebImageManager.m; sourceTree = ""; }; + 1CE1DA34852DAF66DAD591519DC73EE7 /* YBIBImageCache+Internal.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "YBIBImageCache+Internal.h"; path = "YBImageBrowser/Image/YBIBImageCache+Internal.h"; sourceTree = ""; }; + 1CE3CE3DBC64AB60E3A5818C1BE4EE97 /* OSSLog.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = OSSLog.m; path = AliyunOSSSDK/OSSLog.m; sourceTree = ""; }; + 1CEA4A82EF6A095428C4B800C30E39E9 /* SVGAPlayer.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SVGAPlayer.h; path = Source/SVGAPlayer.h; sourceTree = ""; }; + 1D065235116A0A3ABAAB4CAE58E793D6 /* QGVAPSafeMutableDictionary.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = QGVAPSafeMutableDictionary.m; path = iOS/QGVAPlayer/QGVAPlayer/Classes/Utils/QGVAPSafeMutableDictionary.m; sourceTree = ""; }; + 1D0B3DEB1714934F5017308B34D0703C /* SDImageFrame.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDImageFrame.h; path = SDWebImage/Core/SDImageFrame.h; sourceTree = ""; }; + 1D1747FFB2483E7288E1FACBCA24CD46 /* muxi.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = muxi.h; path = src/mux/muxi.h; sourceTree = ""; }; + 1D1BF4079BD07F4564B6FC5D9AD29C91 /* GPBCodedOutputStream_PackagePrivate.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = GPBCodedOutputStream_PackagePrivate.h; path = objectivec/GPBCodedOutputStream_PackagePrivate.h; sourceTree = ""; }; + 1D56A2F383AE52A2E3DF3A6F4B254740 /* AFNetworking-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "AFNetworking-umbrella.h"; sourceTree = ""; }; 1D62A009291D7554837AE9F991AF602C /* TIMDefine.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = TIMDefine.h; sourceTree = ""; }; - 1D8463AD16E20FEE262A6EC2DC418D2B /* LLWindowManager+AppInfo.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "LLWindowManager+AppInfo.h"; path = "LLDebugTool/Core/Component/AppInfo/UserInterface/LLWindowManager+AppInfo.h"; sourceTree = ""; }; - 1D8BECC77DA0256CDB6F464348B52C83 /* LLDetailTitleSelectorCellView.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = LLDetailTitleSelectorCellView.m; path = LLDebugTool/Core/Others/CommonUI/View/CellView/LLDetailTitleSelectorCellView.m; sourceTree = ""; }; - 1D9024CE53F8BB44B99BED9ADAADBEC5 /* UIImageView+WebCache.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "UIImageView+WebCache.m"; path = "SDWebImage/Core/UIImageView+WebCache.m"; sourceTree = ""; }; - 1D934EAAAD9213F619EBB361ECB5D97B /* LLStorageModel.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = LLStorageModel.h; path = LLDebugTool/Core/Others/CommonUI/Model/Storage/LLStorageModel.h; sourceTree = ""; }; - 1DA270961CB495F878ECF5BF25189FEB /* NSBundle+MJRefresh.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "NSBundle+MJRefresh.m"; path = "MJRefresh/NSBundle+MJRefresh.m"; sourceTree = ""; }; + 1D76AFCC9DA97C81EEFD8C284AC66766 /* ReconnectTimer.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = ReconnectTimer.m; path = MQTTClient/MQTTClient/ReconnectTimer.m; sourceTree = ""; }; + 1D8331164E212257C20D95AB2E3448C8 /* OSSDDLog.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = OSSDDLog.h; path = AliyunOSSSDK/OSSFileLog/OSSDDLog.h; sourceTree = ""; }; + 1DA7140D48E0E3E591B0673604CC5DB4 /* Masonry.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = Masonry.release.xcconfig; sourceTree = ""; }; + 1DC79BC833AE05646E3EE85C4E5C88A5 /* SVGABezierPath.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SVGABezierPath.h; path = Source/SVGABezierPath.h; sourceTree = ""; }; 1DCFA6A608700DFA6B10940A80171747 /* TUIFoldConversationListBaseDataProvider.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = TUIFoldConversationListBaseDataProvider.h; sourceTree = ""; }; - 1DFC4FE506A8B7A0543399AA7D659D80 /* MASCompositeConstraint.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = MASCompositeConstraint.h; path = Masonry/MASCompositeConstraint.h; sourceTree = ""; }; - 1DFCD9D1F043F199564DA45EC1E218EC /* RACScopedDisposable.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = RACScopedDisposable.h; path = ReactiveObjC/RACScopedDisposable.h; sourceTree = ""; }; - 1E0638C21C467AA43795C1ADEE22ADA5 /* LLCrashDetailViewController.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = LLCrashDetailViewController.m; path = LLDebugTool/Core/Component/Crash/UserInterface/LLCrashDetailViewController.m; sourceTree = ""; }; - 1E241228CEDF79BEF3B92FA29E248D54 /* UISlider+RACSignalSupport.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "UISlider+RACSignalSupport.m"; path = "ReactiveObjC/UISlider+RACSignalSupport.m"; sourceTree = ""; }; + 1DD50156D9B15CB388A20DB62B2E0BB0 /* QGMP4Box.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = QGMP4Box.h; path = iOS/QGVAPlayer/QGVAPlayer/Classes/MP4Parser/QGMP4Box.h; sourceTree = ""; }; + 1DE08FA81747E5623FBCBD95406DA52C /* QGVAPConfigModel.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = QGVAPConfigModel.m; path = iOS/QGVAPlayer/QGVAPlayer/Classes/Models/QGVAPConfigModel.m; sourceTree = ""; }; + 1DE48FA5EDE295A1EA70F1332367380A /* ScoringMachineEx+DataHandle.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "ScoringMachineEx+DataHandle.swift"; path = "AgoraLyricsScore/Class/Scoring/ScoringMachineEx/ScoringMachineEx+DataHandle.swift"; sourceTree = ""; }; + 1E061233B1799471B81C71C2DABD1D6A /* SDAnimatedImageView+WebCache.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "SDAnimatedImageView+WebCache.m"; path = "SDWebImage/Core/SDAnimatedImageView+WebCache.m"; sourceTree = ""; }; + 1E0A6CF1D49A40449DA267861AD1E722 /* RACDelegateProxy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = RACDelegateProxy.m; path = ReactiveObjC/RACDelegateProxy.m; sourceTree = ""; }; + 1E1F7BCD40A282679B5ACF989AF45F25 /* SDImageFrame.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDImageFrame.m; path = SDWebImage/Core/SDImageFrame.m; sourceTree = ""; }; + 1E30DD2E6EACC0D6E1AC4B882A63B165 /* QCloudPutObjectRequest+CustomBuild.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "QCloudPutObjectRequest+CustomBuild.m"; path = "QCloudCOSXML/Classes/Transfer/request/QCloudPutObjectRequest+CustomBuild.m"; sourceTree = ""; }; + 1E36624477B577760A70F5A7A72FF3F5 /* UIWindow+LL_Utils.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "UIWindow+LL_Utils.m"; path = "LLDebugTool/Core/Others/Category/UIWindow/UIWindow+LL_Utils.m"; sourceTree = ""; }; + 1E41F889305B064BE18B2188D743011A /* AvoidCrash.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = AvoidCrash.h; path = AvoidCrash/AvoidCrash.h; sourceTree = ""; }; + 1E43C0ADF881FD3563B72BA5623AB21B /* LLRouter+AppInfo.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "LLRouter+AppInfo.h"; path = "LLDebugTool/Core/Others/Router/LLRouter+AppInfo.h"; sourceTree = ""; }; + 1E45121F3C1E9DCE8C3B702C17FA6143 /* QCloudURLHelper.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = QCloudURLHelper.m; path = QCloudCore/Classes/Base/QCLOUDRestNet/CoreRequest/Serializer/QCloudURLHelper.m; sourceTree = ""; }; 1E4A1EA0001525A567CA5C9A0ACD8D79 /* TUIMergeMessageCell_Minimalist.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = TUIMergeMessageCell_Minimalist.m; sourceTree = ""; }; - 1E5B4A02151E0AC91F638B2A3F028F76 /* YYCache.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = YYCache.m; path = YYCache/YYCache.m; sourceTree = ""; }; + 1E4D01471C7BA05B3A00A0FC471A0BF2 /* QCloudEnv.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = QCloudEnv.m; path = QCloudCore/Classes/Base/QCLOUDRestNet/QCloudEnv/QCloudEnv.m; sourceTree = ""; }; + 1E518B1E5926085DBA4039B9D137A1DD /* LLFunctionComponent.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = LLFunctionComponent.h; path = LLDebugTool/Core/Others/Component/Function/LLFunctionComponent.h; sourceTree = ""; }; + 1E6B984379824E27D781992D6782D448 /* YYCache-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "YYCache-prefix.pch"; sourceTree = ""; }; + 1E7586DE1167AFED1753C420B434C34F /* JXCategoryIndicatorRainbowLineView.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = JXCategoryIndicatorRainbowLineView.h; path = Sources/Indicator/IndicatorViews/JXCategoryIndicatorRainbowLineView.h; sourceTree = ""; }; 1E7B96200FED33071FAA8946D3A6788E /* SystemConfiguration.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = SystemConfiguration.framework; path = Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS18.0.sdk/System/Library/Frameworks/SystemConfiguration.framework; sourceTree = DEVELOPER_DIR; }; + 1E820501571CC869D75B3B906D793C0B /* LLFilterTextFieldCell.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = LLFilterTextFieldCell.h; path = LLDebugTool/Core/Others/CommonUI/View/FilterView/LLFilterTextFieldCell.h; sourceTree = ""; }; + 1E8DEB350CFCD7C373D1B90E2A2DFB02 /* _YYWebImageSetter.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = _YYWebImageSetter.h; path = YYWebImage/Categories/_YYWebImageSetter.h; sourceTree = ""; }; 1EB3DA14360363BDCEC1A1669BAFB2CD /* TUIConversationSelectController.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = TUIConversationSelectController.m; sourceTree = ""; }; - 1EC213AA74CEF098ADBC9AF0E46C7E63 /* UIApplication+YYAdd.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "UIApplication+YYAdd.m"; path = "YYCategories/UIKit/UIApplication+YYAdd.m"; sourceTree = ""; }; - 1EDEE3DF230A0C21740AFF82453678FC /* Masonry-Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "Masonry-Info.plist"; sourceTree = ""; }; 1EED6B4D68B51A9CA8E4B61BB1614666 /* TUIMessageCellLayout.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = TUIMessageCellLayout.h; sourceTree = ""; }; - 1EF077E1326B5D643F8DA3DC7228C74E /* AFImageDownloader.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = AFImageDownloader.h; path = "UIKit+AFNetworking/AFImageDownloader.h"; sourceTree = ""; }; - 1F45A768F6ABE10A865ADEE0772C06C4 /* LLLogWindow.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = LLLogWindow.m; path = LLDebugTool/Core/Component/Log/UserInterface/LLLogWindow.m; sourceTree = ""; }; - 1F8AA2E551ED1527D8B46CFDA30457A9 /* LLSandboxComponent.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = LLSandboxComponent.h; path = LLDebugTool/Core/Component/Sandbox/LLSandboxComponent.h; sourceTree = ""; }; + 1F082B671EE3CBA5A36ECBB1394A10FB /* QCloudXMLDictionary.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = QCloudXMLDictionary.h; path = QCloudCore/Classes/Base/QCLOUDRestNet/CoreRequest/Serializer/XML/XMLDictionary/Reader/QCloudXMLDictionary.h; sourceTree = ""; }; + 1F0C905D614789808B6910473387F2D8 /* LLSandboxVideoPreviewController.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = LLSandboxVideoPreviewController.h; path = LLDebugTool/Core/Component/Sandbox/UserInterface/LLSandboxVideoPreviewController.h; sourceTree = ""; }; + 1F29DFB2EA1AABDE355EB7AE042635C7 /* NSDictionary+YYAdd.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "NSDictionary+YYAdd.h"; path = "YYCategories/Foundation/NSDictionary+YYAdd.h"; sourceTree = ""; }; + 1F49515474D94F5D1BC16E8BF0451BA6 /* RACmetamacros.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = RACmetamacros.h; path = ReactiveObjC/extobjc/RACmetamacros.h; sourceTree = ""; }; + 1F4A3625FFAF59432A3A92CB06415642 /* QCloudUniversalPathConstants.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = QCloudUniversalPathConstants.h; path = QCloudCore/Classes/Base/PathUtilities/QCloudUniversalPathConstants.h; sourceTree = ""; }; + 1F72FA2C4280C378D93155F09037443B /* YYText-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "YYText-prefix.pch"; sourceTree = ""; }; + 1F821D96E4D6D12CCD9302BF748763FB /* YYWebImage-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "YYWebImage-dummy.m"; sourceTree = ""; }; + 1F831A5281096A13920386EF42722ED4 /* UITableViewCell+RACSignalSupport.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "UITableViewCell+RACSignalSupport.m"; path = "ReactiveObjC/UITableViewCell+RACSignalSupport.m"; sourceTree = ""; }; + 1F859E2210DE47D702E8681BA4105ADD /* TZAssetCell.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = TZAssetCell.m; path = TZImagePickerController/TZImagePickerController/TZAssetCell.m; sourceTree = ""; }; + 1F952366013AD3E5E9BA84A0A2236459 /* LLSettingComponent.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = LLSettingComponent.h; path = LLDebugTool/Core/Others/Component/Setting/LLSettingComponent.h; sourceTree = ""; }; + 1FA30EA3D09058DC2BCC91FEE99C7FFA /* MBProgressHUD.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = MBProgressHUD.debug.xcconfig; sourceTree = ""; }; + 1FA9E357EBE09B8FB04E0D52A6DA6214 /* LLEntryTitleView.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = LLEntryTitleView.h; path = LLDebugTool/Core/Others/CommonUI/Window/EntryWindow/LLEntryTitleView.h; sourceTree = ""; }; 1FBFBF1657F4C8B08A3A6870AFFF5457 /* TUIMessageCellData.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = TUIMessageCellData.m; sourceTree = ""; }; - 1FC3AF7E7065298F07CF881EB71F6743 /* AgoraRtcKit.xcframework */ = {isa = PBXFileReference; includeInIndex = 1; path = AgoraRtcKit.xcframework; sourceTree = ""; }; - 1FC8955AE81C82455EBA2CD27CCDF355 /* GPBExtensionRegistry.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = GPBExtensionRegistry.h; path = objectivec/GPBExtensionRegistry.h; sourceTree = ""; }; - 1FCEB5B1CE94F3E0C081CE12F3F86133 /* GPBAny.pbobjc.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = GPBAny.pbobjc.m; path = objectivec/GPBAny.pbobjc.m; sourceTree = ""; }; + 1FC5268B7AC4632A410339FFDD20DF3E /* YBIBImageCell.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = YBIBImageCell.m; path = YBImageBrowser/Image/YBIBImageCell.m; sourceTree = ""; }; + 1FD47CF6F11864745940F976B14CC857 /* mz_zip_rw.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = mz_zip_rw.h; path = SSZipArchive/minizip/mz_zip_rw.h; sourceTree = ""; }; 1FDA6E658D588ECAEFD0121E81EF3A4D /* TUIChatFlexViewController.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = TUIChatFlexViewController.m; sourceTree = ""; }; + 1FDCEE6B910DFAC0E9C772B99EE56625 /* SourceContext.pbobjc.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SourceContext.pbobjc.h; path = objectivec/google/protobuf/SourceContext.pbobjc.h; sourceTree = ""; }; + 1FF62029FDFFD732732EF5F2EF5929E7 /* RACErrorSignal.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = RACErrorSignal.m; path = ReactiveObjC/RACErrorSignal.m; sourceTree = ""; }; 1FFED36A657123030ABB700256D73F15 /* Masonry */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; name = Masonry; path = Masonry.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - 2009E7DCD0A87C3894AD0DAFE1F314DE /* near_lossless_enc.c */ = {isa = PBXFileReference; includeInIndex = 1; name = near_lossless_enc.c; path = src/enc/near_lossless_enc.c; sourceTree = ""; }; - 201746211CE34F124E35D10C68791A4B /* RACTargetQueueScheduler.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = RACTargetQueueScheduler.h; path = ReactiveObjC/RACTargetQueueScheduler.h; sourceTree = ""; }; + 2008AD3DBA6144A4F2B2261111D8AEE0 /* BRDatePickerView.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = BRDatePickerView.h; path = BRPickerView/DatePicker/BRDatePickerView.h; sourceTree = ""; }; + 202AE6CB23C1D7766483A0092527E90E /* JXCategoryTitleImageCellModel.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = JXCategoryTitleImageCellModel.m; path = Sources/TitleImage/JXCategoryTitleImageCellModel.m; sourceTree = ""; }; 202BB8B880446B1F9B7C7708BF26FDD1 /* TUIFaceMessageCell_Minimalist.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = TUIFaceMessageCell_Minimalist.m; sourceTree = ""; }; - 2031054870ACAE160DB061A19CD5B9FA /* MQTTCFSocketDecoder.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = MQTTCFSocketDecoder.m; path = MQTTClient/MQTTClient/MQTTCFSocketDecoder.m; sourceTree = ""; }; - 2046F5DB3072AA404306987E5954F7E9 /* JXCategoryNumberCellModel.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = JXCategoryNumberCellModel.m; path = Sources/Number/JXCategoryNumberCellModel.m; sourceTree = ""; }; - 205478D6096D2F67476662CBE8198CF2 /* RACKVOTrampoline.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = RACKVOTrampoline.m; path = ReactiveObjC/RACKVOTrampoline.m; sourceTree = ""; }; - 20549C6E077C1966886A7F4966DFFE2D /* MJRefreshStateHeader.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = MJRefreshStateHeader.h; path = MJRefresh/Custom/Header/MJRefreshStateHeader.h; sourceTree = ""; }; - 206CEEB7B03796F0D8BB1C23DE44714E /* SDImageGIFCoder.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDImageGIFCoder.h; path = SDWebImage/Core/SDImageGIFCoder.h; sourceTree = ""; }; - 206F285C417EB4592AD582E0E645404D /* LLHtmlUIWebViewController.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = LLHtmlUIWebViewController.h; path = LLDebugTool/Core/Component/Html/UserInterface/LLHtmlUIWebViewController.h; sourceTree = ""; }; + 20343CC3F6D152CD8DD53ACAC5CDADC5 /* QGMP4Box.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = QGMP4Box.m; path = iOS/QGVAPlayer/QGVAPlayer/Classes/MP4Parser/QGMP4Box.m; sourceTree = ""; }; + 204426110067416B491362D7ABBCA052 /* MJRefreshBackNormalFooter.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = MJRefreshBackNormalFooter.h; path = MJRefresh/Custom/Footer/Back/MJRefreshBackNormalFooter.h; sourceTree = ""; }; + 204C3DF99C0FD906CB57AC328EA4A0DE /* AFURLResponseSerialization.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = AFURLResponseSerialization.m; path = AFNetworking/AFURLResponseSerialization.m; sourceTree = ""; }; + 205C8F9018C2B758BAC59F6F06EAB367 /* AFNetworking.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = AFNetworking.release.xcconfig; sourceTree = ""; }; + 20879D9B56A7E684907F75923C3F6EF1 /* OSSNetworking.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = OSSNetworking.m; path = AliyunOSSSDK/OSSNetworking.m; sourceTree = ""; }; 209879172E5087EAA9EADBF0F6D8DFBF /* TUIRelationUserModel.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = TUIRelationUserModel.h; sourceTree = ""; }; - 20A3B8F1012D1AFC71E985A9D9C0F1A8 /* LLDebugTool.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.module; path = LLDebugTool.modulemap; sourceTree = ""; }; - 20A60CFBEC429CE08E5B9CD466502973 /* YBIBCollectionViewLayout.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = YBIBCollectionViewLayout.m; path = YBImageBrowser/Base/YBIBCollectionViewLayout.m; sourceTree = ""; }; - 20AF907DFE0BD391414559970C40DA48 /* LLHierarchy.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = LLHierarchy.h; path = LLDebugTool/Core/Component/Hierarchy/LLHierarchy.h; sourceTree = ""; }; - 20CA6B0B009D02EE41529269BB0B0177 /* JXCategoryTitleVerticalZoomCellModel.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = JXCategoryTitleVerticalZoomCellModel.h; path = Sources/VerticalZoomTitle/JXCategoryTitleVerticalZoomCellModel.h; sourceTree = ""; }; - 20D0B4E551C2CF5AF61B7EC31AF96DCE /* UIControl+RACSignalSupport.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "UIControl+RACSignalSupport.h"; path = "ReactiveObjC/UIControl+RACSignalSupport.h"; sourceTree = ""; }; - 2109E0B0456FB1B07A2362495F92B4DC /* LLSandboxHelper.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = LLSandboxHelper.m; path = LLDebugTool/Core/Component/Sandbox/Function/LLSandboxHelper.m; sourceTree = ""; }; + 20C4734B2C29C11E89943BF4ED48D831 /* LLFilterTextFieldModel.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = LLFilterTextFieldModel.m; path = LLDebugTool/Core/Others/CommonUI/View/FilterView/LLFilterTextFieldModel.m; sourceTree = ""; }; + 20E5C9474158147BFADEC3D36D8234F0 /* LLFilterDatePickerView.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = LLFilterDatePickerView.h; path = LLDebugTool/Core/Others/CommonUI/View/FilterView/LLFilterDatePickerView.h; sourceTree = ""; }; + 20F1EF1530C7EB6E819B8CBA9CD7B69D /* lossless_sse2.c */ = {isa = PBXFileReference; includeInIndex = 1; name = lossless_sse2.c; path = src/dsp/lossless_sse2.c; sourceTree = ""; }; + 20FB6E25DD4AF9E7342175D1281FF609 /* GPBCodedInputStream_PackagePrivate.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = GPBCodedInputStream_PackagePrivate.h; path = objectivec/GPBCodedInputStream_PackagePrivate.h; sourceTree = ""; }; 21169C94E627784A07C82A02EAA0C0B8 /* TUIConversationSelectDataProvider_Minimalist.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = TUIConversationSelectDataProvider_Minimalist.m; sourceTree = ""; }; - 21269D852F39E22D6312538D3EF162A4 /* JXCategoryView-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "JXCategoryView-prefix.pch"; sourceTree = ""; }; 2130188A88059BB6862656396FAD3C0F /* TUIGlobalization.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = TUIGlobalization.m; sourceTree = ""; }; - 2140F903354FA7A1562D5065709EF8CA /* NSFileHandle+RACSupport.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "NSFileHandle+RACSupport.m"; path = "ReactiveObjC/NSFileHandle+RACSupport.m"; sourceTree = ""; }; 21428AF52FBF5DEC274F06D5C60B0C16 /* TUIMemberCell_Minimalist.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = TUIMemberCell_Minimalist.m; sourceTree = ""; }; - 2154EC194925378F4B4970367A60560E /* anim_encode.c */ = {isa = PBXFileReference; includeInIndex = 1; name = anim_encode.c; path = src/mux/anim_encode.c; sourceTree = ""; }; 217E31AF5E6DE232205A50434411FA03 /* TUITypingStatusCellData.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = TUITypingStatusCellData.h; sourceTree = ""; }; - 2195192E0EB44905D32CD9ADF59CC941 /* YBImageBrowser-Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "YBImageBrowser-Info.plist"; sourceTree = ""; }; 219FA74A8DCAA0E02134F5C3C1E58329 /* ResourceBundle-TUIConversation_Privacy-TUIConversation-Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "ResourceBundle-TUIConversation_Privacy-TUIConversation-Info.plist"; sourceTree = ""; }; + 21AC504E3B4C2B470EFC690097F306CE /* LLFilterEventView.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = LLFilterEventView.m; path = LLDebugTool/Core/Others/CommonUI/View/FilterView/LLFilterEventView.m; sourceTree = ""; }; + 21BC654EF72FE10DB39330E4AEF34656 /* OSSExecutor.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = OSSExecutor.m; path = AliyunOSSSDK/OSSTask/OSSExecutor.m; sourceTree = ""; }; + 21C18E0134BCBCD91C5BEA2285A82444 /* LLStorageManager.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = LLStorageManager.h; path = LLDebugTool/Core/Storage/LLStorageManager.h; sourceTree = ""; }; 21C50C82FD0F580C7860E4241DC8B841 /* YtSDKKitFrameworkTool.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = YtSDKKitFrameworkTool.framework; path = Libs/YtSDKKitFrameworkTool.framework; sourceTree = ""; }; - 21C9E73417D17027540FBD32658CD01C /* SVGAVideoSpriteEntity.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SVGAVideoSpriteEntity.m; path = Source/SVGAVideoSpriteEntity.m; sourceTree = ""; }; - 21D150A1E98C12FF95AA2A0E954B188A /* LLSandboxModel.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = LLSandboxModel.h; path = LLDebugTool/Core/Component/Sandbox/Function/LLSandboxModel.h; sourceTree = ""; }; - 21DD07E2DB0DE908A2DCDE7B482E2EF3 /* OSSDeleteObjectTaggingRequest.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = OSSDeleteObjectTaggingRequest.h; path = AliyunOSSSDK/OSSDeleteObjectTaggingRequest.h; sourceTree = ""; }; - 21E16ABE190784FF95B859CA8F1ABEB6 /* SDWebImage.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.module; path = SDWebImage.modulemap; sourceTree = ""; }; + 21CD9146FF1328867F9C45C25E0E53CF /* QCloudError.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = QCloudError.h; path = QCloudCore/Classes/Base/QCloudClientBase/Service/QCloudError.h; sourceTree = ""; }; + 21DAC2923687FADD0F17B351077F7093 /* YYTextUtilities.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = YYTextUtilities.h; path = YYText/Utility/YYTextUtilities.h; sourceTree = ""; }; + 21EE74BC633A64457A51AA4D8437E546 /* LLLogModel.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = LLLogModel.h; path = LLDebugTool/Core/Component/Log/Function/LLLogModel.h; sourceTree = ""; }; 21F67884B0B7892FCFAF0E1EF80ABDF3 /* TUIGroupConfig.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = TUIGroupConfig.m; sourceTree = ""; }; - 22213487E53AA83762A2083D3ADBA990 /* Struct.pbobjc.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = Struct.pbobjc.h; path = objectivec/google/protobuf/Struct.pbobjc.h; sourceTree = ""; }; - 223957C4542E867790E30E38FAB68101 /* YYDiskCache.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = YYDiskCache.h; path = YYCache/YYDiskCache.h; sourceTree = ""; }; - 225B9D19B39419A86C8B3D9105211FA3 /* Protobuf-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "Protobuf-dummy.m"; sourceTree = ""; }; - 2268F2FD0FED2B17CE1C6552CF725F23 /* AgoraVideoAv1EncoderExtension.xcframework */ = {isa = PBXFileReference; includeInIndex = 1; path = AgoraVideoAv1EncoderExtension.xcframework; sourceTree = ""; }; - 22711BFFEA064CD5FE6D3C22DBC9158D /* GPBEmpty.pbobjc.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = GPBEmpty.pbobjc.m; path = objectivec/GPBEmpty.pbobjc.m; sourceTree = ""; }; - 227482112708CF2FCE79D210B0E78238 /* UIImageView+HighlightedWebCache.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "UIImageView+HighlightedWebCache.m"; path = "SDWebImage/Core/UIImageView+HighlightedWebCache.m"; sourceTree = ""; }; - 22882EECE2115824AE08DDE008698515 /* QGMP4FrameHWDecoder.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = QGMP4FrameHWDecoder.h; path = iOS/QGVAPlayer/QGVAPlayer/Classes/Controllers/Decoders/QGMP4FrameHWDecoder.h; sourceTree = ""; }; - 22B017C7FDB4A324DEF797B894E90BEE /* LLCrashViewController.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = LLCrashViewController.h; path = LLDebugTool/Core/Component/Crash/UserInterface/LLCrashViewController.h; sourceTree = ""; }; - 22BB10C33BB18B3202A34C7D2A937F0C /* JXCategoryListContainerRTLCell.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = JXCategoryListContainerRTLCell.h; path = Sources/Common/JXCategoryListContainerRTLCell.h; sourceTree = ""; }; - 22CEADC5B86E9A4199E7AFB7C446AA3B /* QGVAPSafeMutableArray.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = QGVAPSafeMutableArray.m; path = iOS/QGVAPlayer/QGVAPlayer/Classes/Utils/QGVAPSafeMutableArray.m; sourceTree = ""; }; + 21F6E7E34006BB346311534A7F4A1C99 /* LLWindowManager+Crash.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "LLWindowManager+Crash.h"; path = "LLDebugTool/Core/Component/Crash/UserInterface/LLWindowManager+Crash.h"; sourceTree = ""; }; + 2219A2C8EC086DEADE75ADBAA587A684 /* lossless_enc.c */ = {isa = PBXFileReference; includeInIndex = 1; name = lossless_enc.c; path = src/dsp/lossless_enc.c; sourceTree = ""; }; + 2229584A0BC281EAA8ECED045CA5DE67 /* MJRefresh.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.module; path = MJRefresh.modulemap; sourceTree = ""; }; + 222CF36F5EE052DB6BF78898FE8EC77D /* LLEntryViewController.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = LLEntryViewController.m; path = LLDebugTool/Core/Others/CommonUI/Window/EntryWindow/LLEntryViewController.m; sourceTree = ""; }; + 2237A6209697E17B9F9540A670A6BE23 /* SDCycleScrollView.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = SDCycleScrollView.release.xcconfig; sourceTree = ""; }; + 22395D96BD0C176809677199C8E364AA /* random_utils.c */ = {isa = PBXFileReference; includeInIndex = 1; name = random_utils.c; path = src/utils/random_utils.c; sourceTree = ""; }; + 229456A0002B546AEB3B11619B034725 /* MASConstraintMaker.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = MASConstraintMaker.h; path = Masonry/MASConstraintMaker.h; sourceTree = ""; }; + 229DE89D7AD71733706C671D77CC7666 /* LLReachability.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = LLReachability.h; path = LLDebugTool/Core/Component/Network/Function/LLReachability.h; sourceTree = ""; }; + 22E8DD0330CB46FFDCB1E05F3F8840BC /* JXPagerListContainerView.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = JXPagerListContainerView.h; path = Sources/JXPagerView/JXPagerListContainerView.h; sourceTree = ""; }; 22EAE43A3280942E07FB2459F848722A /* TUIImageReplyQuoteViewData.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = TUIImageReplyQuoteViewData.m; sourceTree = ""; }; 22F173A85B4B6FDF1FF684108CDB7251 /* TUIConversationTheme_Minimalist.bundle */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = "wrapper.plug-in"; name = TUIConversationTheme_Minimalist.bundle; path = Resources/TUIConversationTheme_Minimalist.bundle; sourceTree = ""; }; - 22F58C07C8461290EF57F06B810A2D66 /* UIBezierPath+YYAdd.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "UIBezierPath+YYAdd.h"; path = "YYCategories/UIKit/UIBezierPath+YYAdd.h"; sourceTree = ""; }; + 22F209DCFDF06D6D004B17D4A4614726 /* LLAnnotation.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = LLAnnotation.m; path = LLDebugTool/Core/Component/Location/UserInterface/LLAnnotation.m; sourceTree = ""; }; + 230AF4A6C6B69155BA2EFCECF574EEEF /* UIProgressView+AFNetworking.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "UIProgressView+AFNetworking.h"; path = "UIKit+AFNetworking/UIProgressView+AFNetworking.h"; sourceTree = ""; }; + 23196B90844E6084099C006D0089BE25 /* NSObject+RACPropertySubscribing.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "NSObject+RACPropertySubscribing.m"; path = "ReactiveObjC/NSObject+RACPropertySubscribing.m"; sourceTree = ""; }; 2321C1B30776D9537BF1098966CE81BB /* TUIImageMessageCellData.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = TUIImageMessageCellData.h; sourceTree = ""; }; - 23247EF611DA3AD6CF1F2A92738C3F3A /* SDWebImageIndicator.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDWebImageIndicator.m; path = SDWebImage/Core/SDWebImageIndicator.m; sourceTree = ""; }; 23282B13250A6E08A1364B956B7E310B /* TUIAIDenoiseSignatureManager.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = TUIAIDenoiseSignatureManager.m; sourceTree = ""; }; - 23299C366F15C247D63EF849DF61EDC9 /* LLFilterOtherView.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = LLFilterOtherView.h; path = LLDebugTool/Core/Others/CommonUI/View/FilterView/LLFilterOtherView.h; sourceTree = ""; }; - 233276ED57DDAD4E609D8DFB0EBCCC92 /* LLScreenshotImageView.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = LLScreenshotImageView.h; path = LLDebugTool/Core/Component/Screenshot/UserInterface/LLScreenshotImageView.h; sourceTree = ""; }; - 234F27068DB78A5D9A3FEDF406C515DE /* common_sse2.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = common_sse2.h; path = src/dsp/common_sse2.h; sourceTree = ""; }; - 236E454306F606C3F011D8CD029CC748 /* LLTitleHeaderView.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = LLTitleHeaderView.h; path = LLDebugTool/Core/Others/CommonUI/View/TitleCell/LLTitleHeaderView.h; sourceTree = ""; }; + 2335CA9DB919E6FE3491B0DC6ED22569 /* SDWebImageDownloaderOperation.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDWebImageDownloaderOperation.h; path = SDWebImage/Core/SDWebImageDownloaderOperation.h; sourceTree = ""; }; + 2347A8311733C7AF43399482DB6E21C7 /* NSInvocation+RACTypeParsing.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "NSInvocation+RACTypeParsing.h"; path = "ReactiveObjC/NSInvocation+RACTypeParsing.h"; sourceTree = ""; }; + 234CF9F181DF27CB055689C00B3F81E2 /* FMDatabase.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FMDatabase.h; path = src/fmdb/FMDatabase.h; sourceTree = ""; }; + 2366CE60ED206FA9E103640EBEF8EA66 /* QCloudCoreVersion.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = QCloudCoreVersion.h; path = QCloudCore/Classes/Base/QCloudCoreVersion.h; sourceTree = ""; }; + 236FC77C07EFAB2D511A65D97C27EBD2 /* YBImageBrowser.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = YBImageBrowser.h; path = YBImageBrowser/YBImageBrowser.h; sourceTree = ""; }; + 23785D638D2B27E21D5B4CCA02DDDB07 /* LLPinAnnotationView.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = LLPinAnnotationView.h; path = LLDebugTool/Core/Component/Location/UserInterface/LLPinAnnotationView.h; sourceTree = ""; }; + 238139139920DAC159425DC75197A6D2 /* NSObject+YYAddForKVO.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "NSObject+YYAddForKVO.h"; path = "YYCategories/Foundation/NSObject+YYAddForKVO.h"; sourceTree = ""; }; 23A40EB4AA945E58D683522C7267A6BA /* TUIUserAuthorizationCenter.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = TUIUserAuthorizationCenter.m; sourceTree = ""; }; - 23A5DF27D4A72482918155DD0C42C5AE /* lossless_mips_dsp_r2.c */ = {isa = PBXFileReference; includeInIndex = 1; name = lossless_mips_dsp_r2.c; path = src/dsp/lossless_mips_dsp_r2.c; sourceTree = ""; }; - 23AD3202055EDA5301C91022B2C83F1B /* AvoidCrashProtocol.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = AvoidCrashProtocol.h; path = AvoidCrash/AvoidCrashProtocol.h; sourceTree = ""; }; - 23D0835721B014D08CBD12E57CCDCE15 /* MJRefreshNormalHeader.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = MJRefreshNormalHeader.h; path = MJRefresh/Custom/Header/MJRefreshNormalHeader.h; sourceTree = ""; }; - 23F44CAF0546D581DC68E8E12AAD674C /* YBIBDefaultWebImageMediator.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = YBIBDefaultWebImageMediator.h; path = YBImageBrowser/WebImageMediator/YBIBDefaultWebImageMediator.h; sourceTree = ""; }; - 23FB420840016DC5AFA1637003067FDD /* YYTextSelectionView.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = YYTextSelectionView.h; path = YYText/Component/YYTextSelectionView.h; sourceTree = ""; }; - 240EC0D5314707D71622B123B7B06E10 /* UIControl+RACSignalSupportPrivate.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "UIControl+RACSignalSupportPrivate.m"; path = "ReactiveObjC/UIControl+RACSignalSupportPrivate.m"; sourceTree = ""; }; + 23BAECC7410EB345D7D890FBECDA1763 /* YYWebImageOperation.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = YYWebImageOperation.h; path = YYWebImage/YYWebImageOperation.h; sourceTree = ""; }; + 23CBEEFD035534375E98070CD9DE605D /* LLBaseTableViewCell.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = LLBaseTableViewCell.m; path = LLDebugTool/Core/Others/CommonUI/Base/LLBaseTableViewCell.m; sourceTree = ""; }; + 23D543084AA38F3C3880C906EFA3B0C2 /* Logger.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Logger.swift; path = AgoraLyricsScore/Class/Other/Logger.swift; sourceTree = ""; }; + 23E88DF7BADAE32913AD6B69D10C64B9 /* YYTextSelectionView.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = YYTextSelectionView.h; path = YYText/Component/YYTextSelectionView.h; sourceTree = ""; }; + 240862F3B8E54C91D33AFD34A896DBBC /* UIDevice+VAPUtil.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "UIDevice+VAPUtil.h"; path = "iOS/QGVAPlayer/QGVAPlayer/Classes/Utils/Categorys/UIDevice+VAPUtil.h"; sourceTree = ""; }; + 241C716412E075F29B1A0C7266EC0C5B /* IQUIView+IQKeyboardToolbar.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "IQUIView+IQKeyboardToolbar.h"; path = "IQKeyboardManager/IQToolbar/IQUIView+IQKeyboardToolbar.h"; sourceTree = ""; }; + 24247A6B54051F81748085AF5018565B /* OSSCancellationToken.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = OSSCancellationToken.m; path = AliyunOSSSDK/OSSTask/OSSCancellationToken.m; sourceTree = ""; }; 242584F2D1CEF9A23F6BD1341BB72F25 /* TIMCommon.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.module; path = TIMCommon.modulemap; sourceTree = ""; }; 2427B1D549F423C7E2C4144B1118E36B /* TUIGroupConfig.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = TUIGroupConfig.h; sourceTree = ""; }; - 245039E4F746013BDBE5497A5BEE11FE /* OSSV1Signer.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = OSSV1Signer.h; path = AliyunOSSSDK/Signer/OSSV1Signer.h; sourceTree = ""; }; - 24726EDF04425EB9268BBF0BE35F2019 /* UIRefreshControl+RACCommandSupport.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "UIRefreshControl+RACCommandSupport.m"; path = "ReactiveObjC/UIRefreshControl+RACCommandSupport.m"; sourceTree = ""; }; + 243DC8BA4219B00A2990C1B28A76E955 /* GPBUnknownField.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = GPBUnknownField.m; path = objectivec/GPBUnknownField.m; sourceTree = ""; }; + 243E21A815BF2730E755AAFC60796035 /* MQTTSSLSecurityPolicyTransport.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = MQTTSSLSecurityPolicyTransport.m; path = MQTTClient/MQTTClient/MQTTSSLSecurityPolicyTransport.m; sourceTree = ""; }; + 2457FA1E27DA7FD51ABCA23257D94C88 /* OSSResult.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = OSSResult.m; path = AliyunOSSSDK/OSSResult.m; sourceTree = ""; }; + 2469A2DB072E0F4497D41355086248DA /* RACScopedDisposable.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = RACScopedDisposable.m; path = ReactiveObjC/RACScopedDisposable.m; sourceTree = ""; }; 24734CFC2869F85306FFB5AF734D3733 /* TUIImageCollectionCell.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = TUIImageCollectionCell.h; sourceTree = ""; }; 24A1EEE1269823A6363186D2C76AB03A /* TUIFaceMessageCell_Minimalist.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = TUIFaceMessageCell_Minimalist.h; sourceTree = ""; }; + 24AD4797CCBB26B169EC0FAAFED2E158 /* YYImage.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = YYImage.m; path = YYImage/YYImage.m; sourceTree = ""; }; 24B068604F5CEEE22EDBFED6F40D7632 /* TUIConversationListBaseDataProvider.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = TUIConversationListBaseDataProvider.h; sourceTree = ""; }; - 24B7CE186129047A6456ED65079B6E90 /* MJRefresh.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.module; path = MJRefresh.modulemap; sourceTree = ""; }; 24C970BE8C0F0B966E1D47524E71B5C5 /* TUIMessageItem.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = TUIMessageItem.h; sourceTree = ""; }; - 24D3D4145CE006F07F0559089213AC63 /* LyricMachine.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = LyricMachine.swift; path = AgoraLyricsScore/Class/Lyrics/LyricMachine.swift; sourceTree = ""; }; - 25106002F2C0045DC60DA393D32734FC /* MQTTSSLSecurityPolicyDecoder.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = MQTTSSLSecurityPolicyDecoder.m; path = MQTTClient/MQTTClient/MQTTSSLSecurityPolicyDecoder.m; sourceTree = ""; }; + 24D778ECA14E184A4CF72F4BB4E7D79B /* Bugly.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = Bugly.debug.xcconfig; sourceTree = ""; }; + 24DE23792EB68A41558A67CDFD22791E /* YBImageBrowser.bundle */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = "wrapper.plug-in"; name = YBImageBrowser.bundle; path = YBImageBrowser/YBImageBrowser.bundle; sourceTree = ""; }; + 24E85B1054FDBB3D58BDE7CDC036EFD9 /* histogram_enc.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = histogram_enc.h; path = src/enc/histogram_enc.h; sourceTree = ""; }; + 24EC9E116E2CFD2C1FCC8A407CFAE3F8 /* LLScreenshotViewController.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = LLScreenshotViewController.h; path = LLDebugTool/Core/Component/Screenshot/UserInterface/LLScreenshotViewController.h; sourceTree = ""; }; + 24EDEC7679846AB322E29370B1EC8CA7 /* QCLOUDRestNet.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = QCLOUDRestNet.h; path = QCloudCore/Classes/Base/QCLOUDRestNet/QCLOUDRestNet.h; sourceTree = ""; }; + 250B79B6BF275D0B3463ACD42672DCC2 /* MASConstraintMaker.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = MASConstraintMaker.m; path = Masonry/MASConstraintMaker.m; sourceTree = ""; }; + 251EC03870BC0F85091C303842ADABCA /* GPBUtilities.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = GPBUtilities.h; path = objectivec/GPBUtilities.h; sourceTree = ""; }; 25264920B108DDF704289AD5810D5746 /* TUITextReplyQuoteView.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = TUITextReplyQuoteView.h; sourceTree = ""; }; - 256205526101F732296DD3DD84FD4A9C /* UIAlertView+RACSignalSupport.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "UIAlertView+RACSignalSupport.h"; path = "ReactiveObjC/UIAlertView+RACSignalSupport.h"; sourceTree = ""; }; + 254C447AE99BD0064FCF9A29F9124605 /* OSSGetObjectACLRequest.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = OSSGetObjectACLRequest.h; path = AliyunOSSSDK/OSSGetObjectACLRequest.h; sourceTree = ""; }; + 256D39F3AAE8F0B4297D2F583CE91DA0 /* JXCategoryIndicatorCell.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = JXCategoryIndicatorCell.h; path = Sources/Indicator/JXCategoryIndicatorCell.h; sourceTree = ""; }; + 2571385A0C05CA8746E0F28D50C41727 /* RACSequence.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = RACSequence.h; path = ReactiveObjC/RACSequence.h; sourceTree = ""; }; + 2594C31B2AEE1C39486F19CE5BE8EA1E /* RACBehaviorSubject.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = RACBehaviorSubject.h; path = ReactiveObjC/RACBehaviorSubject.h; sourceTree = ""; }; 2598910578FE259E665B3B0E83B7BDF0 /* Pods-QXLive.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-QXLive.release.xcconfig"; sourceTree = ""; }; + 25B3E2E0C6804514CD853C7F052941F7 /* LLShortCutModel.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = LLShortCutModel.h; path = LLDebugTool/Core/Component/ShortCut/Function/LLShortCutModel.h; sourceTree = ""; }; 25B480B82BEE1C4C543329E58D895692 /* TUIBaseMessageController_Minimalist.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = TUIBaseMessageController_Minimalist.m; sourceTree = ""; }; - 25E1131249ADEB8EA1D97251E12AB6EA /* SDWebImageTransitionInternal.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDWebImageTransitionInternal.h; path = SDWebImage/Private/SDWebImageTransitionInternal.h; sourceTree = ""; }; + 25B82B3EDD249F0E3B38E27E46363778 /* QCloudListMultipartRequest.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = QCloudListMultipartRequest.m; path = QCloudCOSXML/Classes/Transfer/request/QCloudListMultipartRequest.m; sourceTree = ""; }; + 25E296C16D1E5CA8A229C3CE3304F567 /* OSSSignUtils.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = OSSSignUtils.m; path = AliyunOSSSDK/Signer/OSSSignUtils.m; sourceTree = ""; }; 25FA38DE937645738EE9103E4B8A16CE /* TUIConversationSelectController_Minimalist.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = TUIConversationSelectController_Minimalist.m; sourceTree = ""; }; - 26066A905DEEEE84553A9221450A2D8C /* YBIBVideoTopBar.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = YBIBVideoTopBar.m; path = Video/YBIBVideoTopBar.m; sourceTree = ""; }; - 2637DA96632205B39B650F5D7707CA86 /* MQTTLog.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = MQTTLog.m; path = MQTTClient/MQTTClient/MQTTLog.m; sourceTree = ""; }; - 266354E5F0EE799B2DBF871861949F01 /* MBProgressHUD-Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "MBProgressHUD-Info.plist"; sourceTree = ""; }; - 266B7F9B95BC2A2C9927CF9ADF6AA6B9 /* mz_zip.c */ = {isa = PBXFileReference; includeInIndex = 1; name = mz_zip.c; path = SSZipArchive/minizip/mz_zip.c; sourceTree = ""; }; - 268AAD8AB808C0CFBFA84207F5DA46E3 /* NSBezierPath+SDRoundedCorners.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "NSBezierPath+SDRoundedCorners.m"; path = "SDWebImage/Private/NSBezierPath+SDRoundedCorners.m"; sourceTree = ""; }; - 268B852E71965B968C3A86296B48A595 /* LLFunctionWindow.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = LLFunctionWindow.h; path = LLDebugTool/Core/Others/Component/Function/UserInterface/LLFunctionWindow.h; sourceTree = ""; }; - 269813640263C63AD251D28B89BEA74B /* LLSandboxViewController.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = LLSandboxViewController.m; path = LLDebugTool/Core/Component/Sandbox/UserInterface/LLSandboxViewController.m; sourceTree = ""; }; - 2698E77D6C0E185839BCB7FFDC1A9658 /* BRAddressPickerView.bundle */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = "wrapper.plug-in"; name = BRAddressPickerView.bundle; path = BRPickerView/Deprecated/AddressPickerView/BRAddressPickerView.bundle; sourceTree = ""; }; + 260DC26BDF0892F9519735F2FC5DE923 /* LLLocationComponent.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = LLLocationComponent.m; path = LLDebugTool/Core/Component/Location/LLLocationComponent.m; sourceTree = ""; }; + 26368630C638E71A8C20C6B148A0EDFF /* JXCategoryIndicatorBallView.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = JXCategoryIndicatorBallView.m; path = Sources/Indicator/IndicatorViews/JXCategoryIndicatorBallView.m; sourceTree = ""; }; + 263ABCD0AFFF04BFAD27C11EF90EF1B4 /* QGVAPMaskInfo.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = QGVAPMaskInfo.m; path = iOS/QGVAPlayer/QGVAPlayer/Classes/Models/QGVAPMaskInfo.m; sourceTree = ""; }; + 263EE999B95713DD0960782B47CBB342 /* NSUserDefaults+RACSupport.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "NSUserDefaults+RACSupport.h"; path = "ReactiveObjC/NSUserDefaults+RACSupport.h"; sourceTree = ""; }; + 267390C4651B684FCA9BB8A2E9BD7DC5 /* UIDevice+QCloudFCUUID.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "UIDevice+QCloudFCUUID.h"; path = "QCloudCore/Classes/Base/FCUUID/UIDevice+QCloudFCUUID.h"; sourceTree = ""; }; + 26A118A10758C5A28B5E4AB39FD11B59 /* Protobuf.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = Protobuf.release.xcconfig; sourceTree = ""; }; + 26AEC3D2B8577B305151437FEAEB9A6A /* AFNetworkReachabilityManager.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = AFNetworkReachabilityManager.m; path = AFNetworking/AFNetworkReachabilityManager.m; sourceTree = ""; }; + 26BEDB39DD6E60FF7D064ED631198FA5 /* UIRefreshControl+RACCommandSupport.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "UIRefreshControl+RACCommandSupport.m"; path = "ReactiveObjC/UIRefreshControl+RACCommandSupport.m"; sourceTree = ""; }; + 26C6A4EEE3091A88B3DE4245AA8C43E5 /* MBProgressHUD-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "MBProgressHUD-prefix.pch"; sourceTree = ""; }; 26CC58BB257F17999020544D376076FF /* TencentCloudHuiyanSDKFace_framework.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = TencentCloudHuiyanSDKFace_framework.release.xcconfig; sourceTree = ""; }; - 26E5FD2367B4E5D6E3B7E4EF60AA985B /* YBIBImageCell.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = YBIBImageCell.m; path = YBImageBrowser/Image/YBIBImageCell.m; sourceTree = ""; }; - 273EE05626CE419A5CD1C8843D7F7DD6 /* RACSignal.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = RACSignal.h; path = ReactiveObjC/RACSignal.h; sourceTree = ""; }; - 276CE580A63B4C6D0943C51AE0279721 /* UIBarButtonItem+RACCommandSupport.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "UIBarButtonItem+RACCommandSupport.m"; path = "ReactiveObjC/UIBarButtonItem+RACCommandSupport.m"; sourceTree = ""; }; - 276EE6334CADB9FC101BF29F6E6E6C96 /* SDImageCacheConfig.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDImageCacheConfig.m; path = SDWebImage/Core/SDImageCacheConfig.m; sourceTree = ""; }; - 2777A736EB2CF402FF93A5840C02A123 /* MQTTTransport.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = MQTTTransport.m; path = MQTTClient/MQTTClient/MQTTTransport.m; sourceTree = ""; }; - 277B2376ADFADC4C028AB41D28228907 /* QGVAPTextureLoader.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = QGVAPTextureLoader.m; path = iOS/QGVAPlayer/QGVAPlayer/Classes/Models/QGVAPTextureLoader.m; sourceTree = ""; }; - 27920C8907D0C4BA0EE35D12FCA02C15 /* YYWebImage.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = YYWebImage.debug.xcconfig; sourceTree = ""; }; - 27A74E8E605B833398217C7585B54D30 /* IQKeyboardManager-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "IQKeyboardManager-umbrella.h"; sourceTree = ""; }; + 26F00CE6C2177CBF210C5AF90F10CA73 /* QCloudAbortMultipfartUploadRequest.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = QCloudAbortMultipfartUploadRequest.m; path = QCloudCOSXML/Classes/Transfer/request/QCloudAbortMultipfartUploadRequest.m; sourceTree = ""; }; + 277D448F043FB38680AA53C9B0ADABEA /* LLShortCutHelper.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = LLShortCutHelper.h; path = LLDebugTool/Core/Component/ShortCut/Function/LLShortCutHelper.h; sourceTree = ""; }; + 2782991E1DCC2DC5E6762AEABDB651C1 /* OSSDeleteObjectTaggingRequest.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = OSSDeleteObjectTaggingRequest.h; path = AliyunOSSSDK/OSSDeleteObjectTaggingRequest.h; sourceTree = ""; }; + 278B8B9FC1A43DFA4AD50DE7564A612B /* UIDevice+YYAdd.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "UIDevice+YYAdd.m"; path = "YYCategories/UIKit/UIDevice+YYAdd.m"; sourceTree = ""; }; + 27939F811894E4852B3BBEFB91CADD90 /* YBImageBrowser+Internal.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "YBImageBrowser+Internal.h"; path = "YBImageBrowser/Base/YBImageBrowser+Internal.h"; sourceTree = ""; }; 27AC6C179096FE28CA4BDABA8BD92E8B /* TUIWeakProxy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = TUIWeakProxy.m; sourceTree = ""; }; - 27CDF3758333D3474CC079298D4736DD /* LyricsFileDownloaderProtocol.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = LyricsFileDownloaderProtocol.swift; path = AgoraLyricsScore/Class/Downloader/LyricsFileDownloaderProtocol.swift; sourceTree = ""; }; - 27D36B9A44BD6E35F3475595AC7E13B0 /* LLNetworkCell.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = LLNetworkCell.m; path = LLDebugTool/Core/Component/Network/UserInterface/LLNetworkCell.m; sourceTree = ""; }; - 27DF334FB5C90AA90F7FA4EF65244AC6 /* UIColor+VAPUtil.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "UIColor+VAPUtil.h"; path = "iOS/QGVAPlayer/QGVAPlayer/Classes/Utils/Categorys/UIColor+VAPUtil.h"; sourceTree = ""; }; - 28011C0095CBB91AE3686E2C02CFE20D /* dec.c */ = {isa = PBXFileReference; includeInIndex = 1; name = dec.c; path = src/dsp/dec.c; sourceTree = ""; }; - 280CC3F32E0DD82D6F321811491E9426 /* FMDB-Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "FMDB-Info.plist"; sourceTree = ""; }; - 282AD344C37FE6C97BC95AB40478A1A6 /* SDImageIOAnimatedCoder.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDImageIOAnimatedCoder.h; path = SDWebImage/Core/SDImageIOAnimatedCoder.h; sourceTree = ""; }; - 282F7D9179265592C1D1511E7E769B8A /* UIGestureRecognizer+RACSignalSupport.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "UIGestureRecognizer+RACSignalSupport.m"; path = "ReactiveObjC/UIGestureRecognizer+RACSignalSupport.m"; sourceTree = ""; }; + 27B972B0CD012A81F1BA6F314B6280C6 /* LLNetworkWindow.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = LLNetworkWindow.m; path = LLDebugTool/Core/Component/Network/UserInterface/LLNetworkWindow.m; sourceTree = ""; }; + 27CF3F36A2F0579FC2DCC7FDC9C92EC2 /* RACScheduler.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = RACScheduler.h; path = ReactiveObjC/RACScheduler.h; sourceTree = ""; }; + 2821D8DBECE9A3C19ACBE64E10681516 /* LLFilterLabelModel.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = LLFilterLabelModel.m; path = LLDebugTool/Core/Others/CommonUI/View/FilterView/LLFilterLabelModel.m; sourceTree = ""; }; 2834A026635154EEFF04BB3CF2B347A7 /* TUIChatService.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = TUIChatService.h; sourceTree = ""; }; - 283BA9DC4F8B80C258BC6CD004061AE6 /* UIImage+YYAdd.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "UIImage+YYAdd.m"; path = "YYCategories/UIKit/UIImage+YYAdd.m"; sourceTree = ""; }; - 28B71C7F00C85A72DFC0FDAE0D29801C /* TZImagePickerController-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "TZImagePickerController-dummy.m"; sourceTree = ""; }; - 28C1495CD5448A6EFED38F45A527251B /* FMDatabase.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FMDatabase.h; path = src/fmdb/FMDatabase.h; sourceTree = ""; }; + 286102C5A2422F0545325003AF4C9835 /* YYTextAsyncLayer.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = YYTextAsyncLayer.h; path = YYText/Utility/YYTextAsyncLayer.h; sourceTree = ""; }; + 2897465C7E615AE1516A01D76DDD4CF0 /* analysis_enc.c */ = {isa = PBXFileReference; includeInIndex = 1; name = analysis_enc.c; path = src/enc/analysis_enc.c; sourceTree = ""; }; + 28D28484E843EAB89818F3F533CD1FC3 /* AFHTTPSessionManager.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = AFHTTPSessionManager.h; path = AFNetworking/AFHTTPSessionManager.h; sourceTree = ""; }; + 28D40F6CCEE48E207E41579351042FC2 /* YYTextDebugOption.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = YYTextDebugOption.m; path = YYText/Component/YYTextDebugOption.m; sourceTree = ""; }; + 28D46022EB59849B06DD06DE0851BC0D /* LLURLProtocol.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = LLURLProtocol.m; path = LLDebugTool/Core/Component/Network/Function/LLURLProtocol.m; sourceTree = ""; }; 28E5DB0D46F7C1455159A225688901A3 /* TUISecondConfirm.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = TUISecondConfirm.m; sourceTree = ""; }; 28F3298C534C0E2FE7758FEAD5E431F9 /* TUIReplyQuoteView.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = TUIReplyQuoteView.m; sourceTree = ""; }; - 29272B13145F66FADEAB7CDBFBFE245A /* NSHTTPURLResponse+LL_Network.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "NSHTTPURLResponse+LL_Network.h"; path = "LLDebugTool/Core/Component/Network/Function/NSHTTPURLResponse/NSHTTPURLResponse+LL_Network.h"; sourceTree = ""; }; + 2921A1F4DC86BCE7F505F51D3C9DC18A /* LLHtml.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = LLHtml.h; path = LLDebugTool/Core/Component/Html/LLHtml.h; sourceTree = ""; }; 292A986DB46CAE85E1C254720976D3F5 /* TUIOrderCellData.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = TUIOrderCellData.m; sourceTree = ""; }; - 2930EC58D1B8E09552F6807D376C0EE6 /* LLWindowManager+Crash.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "LLWindowManager+Crash.h"; path = "LLDebugTool/Core/Component/Crash/UserInterface/LLWindowManager+Crash.h"; sourceTree = ""; }; - 2941012AC32BDBEE3D77B37160DC4FBD /* LLWidgetBorderWindow.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = LLWidgetBorderWindow.h; path = LLDebugTool/Core/Component/WidgetBorder/UserInterface/LLWidgetBorderWindow.h; sourceTree = ""; }; - 295E7137A986BF6F0A5A70F2D8506361 /* YYTextDebugOption.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = YYTextDebugOption.h; path = YYText/Component/YYTextDebugOption.h; sourceTree = ""; }; - 29687F0269C0A04397B98DF48D994583 /* OSSNSLogger.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = OSSNSLogger.h; path = AliyunOSSSDK/OSSFileLog/OSSNSLogger.h; sourceTree = ""; }; - 2999DA7C81E6CE0A9E32C1EE9344AE7C /* LLNoneCopyTextField.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = LLNoneCopyTextField.m; path = LLDebugTool/Core/Others/CommonUI/View/NoneCopyTextField/LLNoneCopyTextField.m; sourceTree = ""; }; - 299C4742BACC5887D7AF93915D0AB83B /* ResourceBundle-TXIMSDK_Plus_iOS_XCFramework_Privacy-TXIMSDK_Plus_iOS_XCFramework-Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "ResourceBundle-TXIMSDK_Plus_iOS_XCFramework_Privacy-TXIMSDK_Plus_iOS_XCFramework-Info.plist"; sourceTree = ""; }; + 29633068DC32D42C43EE802B8FEE1A3B /* QGVAPTextureLoader.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = QGVAPTextureLoader.m; path = iOS/QGVAPlayer/QGVAPlayer/Classes/Models/QGVAPTextureLoader.m; sourceTree = ""; }; + 29973248D7074A8F3E4849D416197401 /* BRPickerView.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = BRPickerView.h; path = BRPickerView/BRPickerView.h; sourceTree = ""; }; + 29A7A5F23205732BB4A1F528C9D20946 /* NSFileHandle+RACSupport.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "NSFileHandle+RACSupport.h"; path = "ReactiveObjC/NSFileHandle+RACSupport.h"; sourceTree = ""; }; 29A8D85E0F0876B48D49A0B7EEB64E4C /* TUICore-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "TUICore-prefix.pch"; sourceTree = ""; }; - 29B7D14D3169A64C161155CFB980AF20 /* LLHtmlViewController.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = LLHtmlViewController.m; path = LLDebugTool/Core/Component/Html/UserInterface/LLHtmlViewController.m; sourceTree = ""; }; - 29CA2D1B5A8C0FBD39DB377ED08EFBE7 /* RACBehaviorSubject.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = RACBehaviorSubject.h; path = ReactiveObjC/RACBehaviorSubject.h; sourceTree = ""; }; - 29E19CF0E6671A589604E325D5B5310C /* SDWebImageCacheKeyFilter.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDWebImageCacheKeyFilter.h; path = SDWebImage/Core/SDWebImageCacheKeyFilter.h; sourceTree = ""; }; + 29AED64486413DE1C23D030EBAA9D51A /* YBIBDataMediator.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = YBIBDataMediator.m; path = YBImageBrowser/Base/YBIBDataMediator.m; sourceTree = ""; }; + 29C365D5701AB648363972D3E6F75AEC /* color_cache_utils.c */ = {isa = PBXFileReference; includeInIndex = 1; name = color_cache_utils.c; path = src/utils/color_cache_utils.c; sourceTree = ""; }; + 29CBCFAADE686D81BA69E3799EBE3789 /* LLWidgetBorderWindow.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = LLWidgetBorderWindow.h; path = LLDebugTool/Core/Component/WidgetBorder/UserInterface/LLWidgetBorderWindow.h; sourceTree = ""; }; + 29CE0D7F908564A238F70D76322D7C83 /* SDWebImageIndicator.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDWebImageIndicator.m; path = SDWebImage/Core/SDWebImageIndicator.m; sourceTree = ""; }; + 29DC22A46EC320B38D2E3416E25A3438 /* QGBaseDFileInfo.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = QGBaseDFileInfo.m; path = iOS/QGVAPlayer/QGVAPlayer/Classes/Models/QGBaseDFileInfo.m; sourceTree = ""; }; 29E26C59CCF55FC936FBD2CDE025FF9D /* TUIReplyQuoteView_Minimalist.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = TUIReplyQuoteView_Minimalist.h; sourceTree = ""; }; - 2A1C4AEBC25A44A0C2A4DA887A5B9F40 /* Masonry.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = Masonry.release.xcconfig; sourceTree = ""; }; + 29E55AD78C94C23BE35748AFED72216A /* mz_strm_zlib.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = mz_strm_zlib.h; path = SSZipArchive/minizip/mz_strm_zlib.h; sourceTree = ""; }; + 29F3E5D98D3FABD7051D31672E414485 /* Protobuf-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "Protobuf-umbrella.h"; sourceTree = ""; }; + 29F54965534035F73529270C6DF40B9B /* utils.c */ = {isa = PBXFileReference; includeInIndex = 1; name = utils.c; path = src/utils/utils.c; sourceTree = ""; }; + 29FBCC92D682EDD34E9423145A579B6D /* AlipaySDK-iOS.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "AlipaySDK-iOS.release.xcconfig"; sourceTree = ""; }; 2A1D0DA9B9D1330A39927231DDD5CBD5 /* TUIConversationObjectFactory_Minimalist.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = TUIConversationObjectFactory_Minimalist.m; sourceTree = ""; }; - 2A233B03B02E73268E99D56FDEDC9FCF /* quant_dec.c */ = {isa = PBXFileReference; includeInIndex = 1; name = quant_dec.c; path = src/dec/quant_dec.c; sourceTree = ""; }; + 2A20B13ED97CA4C1F6A13E8FA306642F /* RACArraySequence.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = RACArraySequence.m; path = ReactiveObjC/RACArraySequence.m; sourceTree = ""; }; + 2A3AF1019300B26D688B8D9879B7D335 /* QCloudObjectModel.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = QCloudObjectModel.h; path = QCloudCore/Classes/Base/QCLOUDObjectModel/QCloudObjectModel.h; sourceTree = ""; }; 2A75B57AE83F8839D446ECAE74268D22 /* TUIFaceMessageCell.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = TUIFaceMessageCell.h; sourceTree = ""; }; - 2AA9A2E1438036D23183D38BA6BD6C82 /* ZipUtilities.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ZipUtilities.swift; path = Zip/ZipUtilities.swift; sourceTree = ""; }; - 2ACECC93939E9485471A40122BECF5C1 /* BRPickerStyle.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = BRPickerStyle.h; path = BRPickerView/Core/BRPickerStyle.h; sourceTree = ""; }; - 2ADAD99B44741DF3A1CA3BDD5AF03775 /* IQBarButtonItem.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = IQBarButtonItem.m; path = IQKeyboardManager/IQToolbar/IQBarButtonItem.m; sourceTree = ""; }; - 2AE6456797300B26BBD1634C2AE07F9E /* SVGA.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SVGA.h; path = Source/SVGA.h; sourceTree = ""; }; - 2B1455620F687F6DFE9E1EAA52FEBBD0 /* IQTextView.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = IQTextView.h; path = IQKeyboardManager/IQTextView/IQTextView.h; sourceTree = ""; }; + 2A9C0B1C108E00CC8C13BF1F3E12E325 /* YYSpriteSheetImage.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = YYSpriteSheetImage.h; path = YYImage/YYSpriteSheetImage.h; sourceTree = ""; }; + 2AB908F82047BCCE323274DF95F5D89C /* YYWebImage.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.module; path = YYWebImage.modulemap; sourceTree = ""; }; + 2AC8556128C53E4DDFF0360719135975 /* UIColor+SDHexString.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "UIColor+SDHexString.m"; path = "SDWebImage/Private/UIColor+SDHexString.m"; sourceTree = ""; }; + 2ACC6735D7D46C3BC2A4291B6636D2D4 /* QCloudFileLogger.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = QCloudFileLogger.h; path = QCloudCore/Classes/Base/Logger/QCloudFileLogger.h; sourceTree = ""; }; + 2AE23C0B84FD193CA343B607C3D1F663 /* vp8l_enc.c */ = {isa = PBXFileReference; includeInIndex = 1; name = vp8l_enc.c; path = src/enc/vp8l_enc.c; sourceTree = ""; }; + 2AE4A74A978E3E77BF8E0C4AF2EB61AA /* OSSConstants.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = OSSConstants.h; path = AliyunOSSSDK/OSSConstants.h; sourceTree = ""; }; + 2AF782A50913D8F3025AA322B252D419 /* LLSandboxImagePreviewController.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = LLSandboxImagePreviewController.h; path = LLDebugTool/Core/Component/Sandbox/UserInterface/LLSandboxImagePreviewController.h; sourceTree = ""; }; 2B28F74266AC1DF20798935654BBEB03 /* TUIChatExtensionObserver_Minimalist.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = TUIChatExtensionObserver_Minimalist.h; sourceTree = ""; }; - 2B2FAEECFECB42387E64A383C220C74E /* upsampling_mips_dsp_r2.c */ = {isa = PBXFileReference; includeInIndex = 1; name = upsampling_mips_dsp_r2.c; path = src/dsp/upsampling_mips_dsp_r2.c; sourceTree = ""; }; - 2B4ABA00DBD6FE3E676A2EF0F58AB3F7 /* OSSTaskCompletionSource.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = OSSTaskCompletionSource.m; path = AliyunOSSSDK/OSSTask/OSSTaskCompletionSource.m; sourceTree = ""; }; - 2B4F0971B79B0676FF3440555D2CFF34 /* SDWebImageDownloaderOperation.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDWebImageDownloaderOperation.m; path = SDWebImage/Core/SDWebImageDownloaderOperation.m; sourceTree = ""; }; - 2B5645CF65E01A88B0BE454C8273D724 /* Zip-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "Zip-umbrella.h"; sourceTree = ""; }; - 2B6574C1EBA79E9D88FCAE60880F3D1F /* MKAnnotationView+RACSignalSupport.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "MKAnnotationView+RACSignalSupport.h"; path = "ReactiveObjC/MKAnnotationView+RACSignalSupport.h"; sourceTree = ""; }; - 2B6D267CE9E1B697119ACB6DD5BF6881 /* LLHtmlWindow.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = LLHtmlWindow.m; path = LLDebugTool/Core/Component/Html/UserInterface/LLHtmlWindow.m; sourceTree = ""; }; - 2B72A6C6151A8791E68DAE90BE851C3D /* QGHWDMetalRenderer.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = QGHWDMetalRenderer.m; path = iOS/QGVAPlayer/QGVAPlayer/Classes/Views/Metal/QGHWDMetalRenderer.m; sourceTree = ""; }; - 2B74B65AA07714AC14A8E9B86A3A4D3F /* SDAnimatedImageView.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDAnimatedImageView.h; path = SDWebImage/Core/SDAnimatedImageView.h; sourceTree = ""; }; - 2B7E52F6B331B02D471778EB539D2BF1 /* picture_enc.c */ = {isa = PBXFileReference; includeInIndex = 1; name = picture_enc.c; path = src/enc/picture_enc.c; sourceTree = ""; }; - 2B877BD7BC304000D4B0BE7DCB6D53C0 /* ReconnectTimer.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = ReconnectTimer.m; path = MQTTClient/MQTTClient/ReconnectTimer.m; sourceTree = ""; }; + 2B436A74C6297AC8EE4528037D917BB5 /* Api.pbobjc.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = Api.pbobjc.h; path = objectivec/google/protobuf/Api.pbobjc.h; sourceTree = ""; }; + 2B4D62F83F7E039BA5324693A012705B /* dec.c */ = {isa = PBXFileReference; includeInIndex = 1; name = dec.c; path = src/dsp/dec.c; sourceTree = ""; }; + 2B65FEBCB0EF76CFAA00EC8509884F17 /* LLWindowManager+Ruler.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "LLWindowManager+Ruler.m"; path = "LLDebugTool/Core/Component/Ruler/UserInterface/LLWindowManager+Ruler.m"; sourceTree = ""; }; + 2B67F16A8B9E5318F935440886955A70 /* SVGAVideoSpriteFrameEntity.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SVGAVideoSpriteFrameEntity.m; path = Source/SVGAVideoSpriteFrameEntity.m; sourceTree = ""; }; + 2B7644544550A839D6BA80383C9D1A3F /* QCloudService.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = QCloudService.m; path = QCloudCore/Classes/Base/QCloudClientBase/Service/QCloudService.m; sourceTree = ""; }; + 2B96829ABC3F8B1A7F6070F204948699 /* QCloudWeakProxy.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = QCloudWeakProxy.h; path = QCloudCore/Classes/Base/ObjectFack/QCloudWeakProxy.h; sourceTree = ""; }; + 2B9D372EBAFFD39011BBCC04E81130E9 /* UIPasteboard+YYText.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "UIPasteboard+YYText.h"; path = "YYText/Utility/UIPasteboard+YYText.h"; sourceTree = ""; }; + 2BAAE3507872C8B9A98EDE04DD2B674E /* NSArray+RACSequenceAdditions.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "NSArray+RACSequenceAdditions.m"; path = "ReactiveObjC/NSArray+RACSequenceAdditions.m"; sourceTree = ""; }; + 2BAC912E61281A688599CAF2535DF84B /* AlipaySDK.xcframework */ = {isa = PBXFileReference; includeInIndex = 1; path = AlipaySDK.xcframework; sourceTree = ""; }; + 2BB75F158D508B9FF0D11CD62578EA76 /* NSObject+YYAddForARC.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "NSObject+YYAddForARC.m"; path = "YYCategories/Foundation/NSObject+YYAddForARC.m"; sourceTree = ""; }; + 2BB94DACB617D439CD0FAE2DE00EC0BE /* NSDate+QCLOUD.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "NSDate+QCLOUD.h"; path = "QCloudCore/Classes/Base/QCloudCategory/NSDate+QCLOUD.h"; sourceTree = ""; }; 2BB9B6BCE9C815DF362E7DC0F1CFEFF5 /* TUIJoinGroupMessageCell_Minimalist.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = TUIJoinGroupMessageCell_Minimalist.m; sourceTree = ""; }; - 2BBBFAFD7BAFB4C0BE7B296FE348C700 /* SDWebImageOperation.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDWebImageOperation.h; path = SDWebImage/Core/SDWebImageOperation.h; sourceTree = ""; }; - 2BDC0728BC41914BE523A9028147B0D8 /* UIResponder+LL_Utils.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "UIResponder+LL_Utils.h"; path = "LLDebugTool/Core/Others/Category/UIResponder/UIResponder+LL_Utils.h"; sourceTree = ""; }; - 2BE3FE48856F4FDD6EE8892D688B8176 /* LLWindowManager.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = LLWindowManager.m; path = LLDebugTool/Core/Others/Manager/WindowManager/LLWindowManager.m; sourceTree = ""; }; + 2BD4ACF537A2E98F261652F6D97447AB /* NSAttributedString+AvoidCrash.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "NSAttributedString+AvoidCrash.m"; path = "AvoidCrash/NSAttributedString+AvoidCrash.m"; sourceTree = ""; }; + 2BE918035921F9F60C61DE5B61B27A36 /* TZVideoEditedPreviewController.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = TZVideoEditedPreviewController.h; path = TZImagePickerController/TZImagePickerController/TZVideoEditedPreviewController.h; sourceTree = ""; }; 2BEF753BC001FC149F6ABE41D1CB479A /* TUIBaseMessageController.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = TUIBaseMessageController.h; sourceTree = ""; }; - 2BEFFCC856F9435D518C2E4C45BD84C9 /* Log.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Log.swift; path = AgoraLyricsScore/Class/Other/Log.swift; sourceTree = ""; }; - 2C14E11BA635536BCBC8B07EC4BA06E1 /* LLLocationHelper.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = LLLocationHelper.h; path = LLDebugTool/Core/Component/Location/Function/LLLocationHelper.h; sourceTree = ""; }; + 2C0210ABFD615E6A1062A758A7331AC9 /* dec_mips_dsp_r2.c */ = {isa = PBXFileReference; includeInIndex = 1; name = dec_mips_dsp_r2.c; path = src/dsp/dec_mips_dsp_r2.c; sourceTree = ""; }; + 2C1248D2950FAF4846F04C3D51F5CD46 /* RACMulticastConnection.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = RACMulticastConnection.h; path = ReactiveObjC/RACMulticastConnection.h; sourceTree = ""; }; + 2C23F9EBD9AFBABB9B38B9D789CE1A91 /* QCloudCredentailFenceQueue.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = QCloudCredentailFenceQueue.h; path = QCloudCore/Classes/Base/QCloudClientBase/Authentation/QCloudCredentailFenceQueue.h; sourceTree = ""; }; + 2C24B738D17AE5BC3EED9B271634668D /* Zip.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Zip.swift; path = Zip/Zip.swift; sourceTree = ""; }; 2C28C56D51E91772D91591CED37CDA87 /* TUIChatModifyMessageHelper.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = TUIChatModifyMessageHelper.h; sourceTree = ""; }; - 2C3B4D25E3B3EF56CE8D50A026C45575 /* LLBaseTableViewController.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = LLBaseTableViewController.h; path = LLDebugTool/Core/Others/CommonUI/Base/LLBaseTableViewController.h; sourceTree = ""; }; - 2C3BB5140944CD351541881EDFAA96DC /* LLRouter+Log.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "LLRouter+Log.h"; path = "LLDebugTool/Core/Others/Router/LLRouter+Log.h"; sourceTree = ""; }; - 2C4FA9E3872B981247941FECE75C57B8 /* LLPinAnnotationView.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = LLPinAnnotationView.m; path = LLDebugTool/Core/Component/Location/UserInterface/LLPinAnnotationView.m; sourceTree = ""; }; - 2C60157F1A8157F2531B2C855355BAFD /* cost_sse2.c */ = {isa = PBXFileReference; includeInIndex = 1; name = cost_sse2.c; path = src/dsp/cost_sse2.c; sourceTree = ""; }; - 2C73A03D77A46247AF3DE8683AA802CD /* sharpyuv_dsp.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = sharpyuv_dsp.h; path = sharpyuv/sharpyuv_dsp.h; sourceTree = ""; }; - 2C9DD974DC481EEB90952278C12219CA /* YBImageBrowserVideo.bundle */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = "wrapper.plug-in"; name = YBImageBrowserVideo.bundle; path = Video/YBImageBrowserVideo.bundle; sourceTree = ""; }; - 2CA663CF2987E10DC0841B1A0868DAB9 /* YBIBToastView.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = YBIBToastView.m; path = YBImageBrowser/AuxiliaryView/YBIBToastView.m; sourceTree = ""; }; + 2C7383E4D223791146E5FFE99A9D3C81 /* QCloudEnv.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = QCloudEnv.h; path = QCloudCore/Classes/Base/QCLOUDRestNet/QCloudEnv/QCloudEnv.h; sourceTree = ""; }; 2CA925CF410A32FD7BF052406767BC59 /* AvoidCrash */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; name = AvoidCrash; path = AvoidCrash.framework; sourceTree = BUILT_PRODUCTS_DIR; }; 2CC2A638F8CCA07A3B663837CDF7B381 /* TUIGroupNoticeCellData.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = TUIGroupNoticeCellData.m; sourceTree = ""; }; - 2CCD1172BFD800033BA099F286F8D0D9 /* SDWebImageManager.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDWebImageManager.m; path = SDWebImage/Core/SDWebImageManager.m; sourceTree = ""; }; - 2CE1DD6113CA0FA4B6F46B949428AD90 /* FieldMask.pbobjc.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FieldMask.pbobjc.h; path = objectivec/google/protobuf/FieldMask.pbobjc.h; sourceTree = ""; }; - 2D591A6F9F0E49F577ED2D062B8F565B /* sharpyuv_gamma.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = sharpyuv_gamma.h; path = sharpyuv/sharpyuv_gamma.h; sourceTree = ""; }; - 2D66C65B691B8E5F649DD5EAF7C899A9 /* YYTextWeakProxy.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = YYTextWeakProxy.h; path = YYText/Utility/YYTextWeakProxy.h; sourceTree = ""; }; + 2CDA66414E081105E530FA690DE42E78 /* QCloudEncryt.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = QCloudEncryt.h; path = QCloudCore/Classes/Base/Logger/Encryt/QCloudEncryt.h; sourceTree = ""; }; + 2CF0548A02A55E4C627CD7F357EF9994 /* UIView+TZLayout.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "UIView+TZLayout.h"; path = "TZImagePickerController/TZImagePickerController/UIView+TZLayout.h"; sourceTree = ""; }; + 2D17F39F57A6545F841645C65D8D7100 /* OSSResult.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = OSSResult.h; path = AliyunOSSSDK/OSSResult.h; sourceTree = ""; }; + 2D25C96ED9AEC859A4F5DAE89D31C0C0 /* filters_mips_dsp_r2.c */ = {isa = PBXFileReference; includeInIndex = 1; name = filters_mips_dsp_r2.c; path = src/dsp/filters_mips_dsp_r2.c; sourceTree = ""; }; + 2D47EF12A03D7398C37784DF392ACDF6 /* YBImage.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = YBImage.h; path = YBImageBrowser/Image/YBImage.h; sourceTree = ""; }; + 2D4AA009EFBF09AF09130C2D978E268F /* LLWindowManager+Hierarchy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "LLWindowManager+Hierarchy.m"; path = "LLDebugTool/Core/Component/Hierarchy/UserInterface/LLWindowManager+Hierarchy.m"; sourceTree = ""; }; + 2D4E05DFA160EE66F5E35106F629A9EF /* QCloudNetEnv.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = QCloudNetEnv.h; path = QCloudCore/Classes/Base/QCLOUDRestNet/reachability/QCloudNetEnv.h; sourceTree = ""; }; + 2D545E17C337F3F6FA8468A5E3C6CCD3 /* NSThread+YYAdd.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "NSThread+YYAdd.m"; path = "YYCategories/Foundation/NSThread+YYAdd.m"; sourceTree = ""; }; + 2D55E9217F1D871EE1FA275A810596AC /* mz_os.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = mz_os.h; path = SSZipArchive/minizip/mz_os.h; sourceTree = ""; }; 2D68B72D0B212A69F5656E7EA137C61D /* TUIFileReplyQuoteView.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = TUIFileReplyQuoteView.m; sourceTree = ""; }; - 2D6A96693141627C8469538ADC1E3C39 /* LLRulerComponent.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = LLRulerComponent.h; path = LLDebugTool/Core/Component/Ruler/LLRulerComponent.h; sourceTree = ""; }; - 2D7E54CAD410150517D379095DBD833A /* AgoraVideoDecoderExtension.xcframework */ = {isa = PBXFileReference; includeInIndex = 1; path = AgoraVideoDecoderExtension.xcframework; sourceTree = ""; }; - 2D7F8AC7B90B364A3EE09B385229FF31 /* JXCategoryIndicatorImageView.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = JXCategoryIndicatorImageView.h; path = Sources/Indicator/IndicatorViews/JXCategoryIndicatorImageView.h; sourceTree = ""; }; - 2D86FB5A237B0F886544C0A50D76D540 /* SDWeakProxy.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDWeakProxy.h; path = SDWebImage/Private/SDWeakProxy.h; sourceTree = ""; }; - 2D940C751843B36BEB6906542158AB9A /* LLNetworkFilterView.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = LLNetworkFilterView.m; path = LLDebugTool/Core/Component/Network/UserInterface/LLNetworkFilterView.m; sourceTree = ""; }; - 2DA7CD9088FBD27028D8FBB51DEA9E06 /* SDImageFrame.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDImageFrame.h; path = SDWebImage/Core/SDImageFrame.h; sourceTree = ""; }; - 2DAEBF47DAD907A4319FCECEBF149DCC /* LLScreenshotActionView.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = LLScreenshotActionView.m; path = LLDebugTool/Core/Component/Screenshot/UserInterface/LLScreenshotActionView.m; sourceTree = ""; }; - 2DD5E84E580EC2329E1DEF21BF6BF20A /* io_dec.c */ = {isa = PBXFileReference; includeInIndex = 1; name = io_dec.c; path = src/dec/io_dec.c; sourceTree = ""; }; - 2DEFB767E19488518B5EBA2545010C59 /* UIView+YYText.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "UIView+YYText.m"; path = "YYText/Utility/UIView+YYText.m"; sourceTree = ""; }; + 2D7C99155B46C46448B59A7EBC17967C /* LLRouter+Network.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "LLRouter+Network.h"; path = "LLDebugTool/Core/Others/Router/LLRouter+Network.h"; sourceTree = ""; }; + 2D9498C72BF0862841ADE049DC35EBF6 /* YYTextArchiver.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = YYTextArchiver.m; path = YYText/String/YYTextArchiver.m; sourceTree = ""; }; + 2DA148DE1B8BA9807E9C034B5AD68C62 /* YBIBVideoData.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = YBIBVideoData.m; path = Video/YBIBVideoData.m; sourceTree = ""; }; + 2DC75F3F2A316111778CCAFE092D45E1 /* LLRouter+Location.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "LLRouter+Location.m"; path = "LLDebugTool/Core/Others/Router/LLRouter+Location.m"; sourceTree = ""; }; + 2DD9385ECFC8B4A4946B324AF2B72B70 /* Agoraffmpeg.xcframework */ = {isa = PBXFileReference; includeInIndex = 1; path = Agoraffmpeg.xcframework; sourceTree = ""; }; 2E0663BAB8B009B6E38E76EB2150B766 /* TUIUserAuthorizationCenter.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = TUIUserAuthorizationCenter.h; sourceTree = ""; }; + 2E0988409A5182DDC8136E3CC4179BF5 /* MQTTLog.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = MQTTLog.h; path = MQTTClient/MQTTClient/MQTTLog.h; sourceTree = ""; }; + 2E0E74DDEF5598A8AC34DE1381BBE2F9 /* UIImageView+AFNetworking.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "UIImageView+AFNetworking.m"; path = "UIKit+AFNetworking/UIImageView+AFNetworking.m"; sourceTree = ""; }; + 2E1E07AA41596A16AD4EEF079BC88CC2 /* QCloudMultipartUploadPart.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = QCloudMultipartUploadPart.h; path = QCloudCOSXML/Classes/Transfer/model/QCloudMultipartUploadPart.h; sourceTree = ""; }; 2E545F039352166CA06FD93C126DC4ED /* TUIConversationListDataProvider_Minimalist.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = TUIConversationListDataProvider_Minimalist.m; sourceTree = ""; }; - 2E6C2A703C44A0270CFBAA655E88B2E1 /* LLSandboxImagePreviewController.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = LLSandboxImagePreviewController.h; path = LLDebugTool/Core/Component/Sandbox/UserInterface/LLSandboxImagePreviewController.h; sourceTree = ""; }; - 2E772E46B21B584067C3A888FF7C79AA /* YYMemoryCache.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = YYMemoryCache.h; path = YYCache/YYMemoryCache.h; sourceTree = ""; }; + 2E5F7F19C81AD93CA6819B2DC599E89D /* SDWebImageCompat.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDWebImageCompat.m; path = SDWebImage/Core/SDWebImageCompat.m; sourceTree = ""; }; 2E8366DB1E5DA13F1587059290E9BC38 /* TUIChatPopContextExtionView.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = TUIChatPopContextExtionView.m; sourceTree = ""; }; - 2E8B62DEA836832696F69521DD582284 /* JXCategoryIndicatorTriangleView.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = JXCategoryIndicatorTriangleView.h; path = Sources/Indicator/IndicatorViews/JXCategoryIndicatorTriangleView.h; sourceTree = ""; }; 2E95E77CD77531688FB047C8D48AC231 /* TUIMenuCell.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = TUIMenuCell.h; sourceTree = ""; }; - 2E972EED29A38A4EF5B225DB757B975C /* filters_mips_dsp_r2.c */ = {isa = PBXFileReference; includeInIndex = 1; name = filters_mips_dsp_r2.c; path = src/dsp/filters_mips_dsp_r2.c; sourceTree = ""; }; - 2F070F6A9F41599A531F9A7FC3109961 /* LLEntryWindow.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = LLEntryWindow.m; path = LLDebugTool/Core/Others/CommonUI/Window/EntryWindow/LLEntryWindow.m; sourceTree = ""; }; - 2F0BBFCEBD79B28994AA42CB9822B10B /* LLHierarchyComponent.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = LLHierarchyComponent.h; path = LLDebugTool/Core/Component/Hierarchy/LLHierarchyComponent.h; sourceTree = ""; }; - 2F16AADB89A2534768EEF98070B578AF /* MQTTStrict.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = MQTTStrict.m; path = MQTTClient/MQTTClient/MQTTStrict.m; sourceTree = ""; }; - 2F2DAB05BE0EAA8C06364DC5062DD656 /* lossless_enc_sse2.c */ = {isa = PBXFileReference; includeInIndex = 1; name = lossless_enc_sse2.c; path = src/dsp/lossless_enc_sse2.c; sourceTree = ""; }; + 2E9877101739BBAC0A288D5640B2E796 /* QCloudReachability.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = QCloudReachability.m; path = QCloudCore/Classes/Base/QCLOUDRestNet/reachability/QCloudReachability.m; sourceTree = ""; }; + 2EAA503FE1150C4D64D3C0B680244A80 /* LLTitleSliderCell.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = LLTitleSliderCell.m; path = LLDebugTool/Core/Others/CommonUI/View/TitleCell/LLTitleSliderCell.m; sourceTree = ""; }; + 2EBF6EA2FFA09ACB870E520287C9F0D5 /* AgoraFaceCaptureExtension.xcframework */ = {isa = PBXFileReference; includeInIndex = 1; path = AgoraFaceCaptureExtension.xcframework; sourceTree = ""; }; + 2EC4C0AB4E56B63C491EB3A8BCCF7022 /* ScoringView.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ScoringView.swift; path = AgoraLyricsScore/Class/Scoring/View/ScoringView.swift; sourceTree = ""; }; + 2ED6C53C04D78091379F540275FF3352 /* YBIBAuxiliaryViewHandler.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = YBIBAuxiliaryViewHandler.h; path = YBImageBrowser/AuxiliaryView/YBIBAuxiliaryViewHandler.h; sourceTree = ""; }; + 2EF6FDC981A4DFD81282292B2893DB0A /* MQTTCFSocketTransport.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = MQTTCFSocketTransport.m; path = MQTTClient/MQTTClient/MQTTCFSocketTransport.m; sourceTree = ""; }; + 2EFA6E27307C8BE2B45648F89DA15BE8 /* QCloudSignature.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = QCloudSignature.m; path = QCloudCore/Classes/Base/QCloudClientBase/Authentation/QCloudSignature.m; sourceTree = ""; }; + 2EFC9E1ADA603009197192F0CC57762D /* LLSandboxPreviewController.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = LLSandboxPreviewController.m; path = LLDebugTool/Core/Component/Sandbox/UserInterface/LLSandboxPreviewController.m; sourceTree = ""; }; + 2F1F9AAFED55796FC0D703387BD54857 /* NSHTTPURLResponse+LL_Network.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "NSHTTPURLResponse+LL_Network.h"; path = "LLDebugTool/Core/Component/Network/Function/NSHTTPURLResponse/NSHTTPURLResponse+LL_Network.h"; sourceTree = ""; }; + 2F4072CC0F5D9B263C667F94F5F71468 /* OSSURLRequestRetryHandler.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = OSSURLRequestRetryHandler.m; path = AliyunOSSSDK/OSSURLRequestRetryHandler.m; sourceTree = ""; }; 2F4078DA790DE5F4A9E0EBCD660768F7 /* Accelerate.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Accelerate.framework; path = Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS18.0.sdk/System/Library/Frameworks/Accelerate.framework; sourceTree = DEVELOPER_DIR; }; - 2F4308A38596D866AEC25B61D2C87543 /* MJRefresh.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = MJRefresh.release.xcconfig; sourceTree = ""; }; 2F4A1CCB21DB7EA5A2ACEB11E374FBCA /* JXPagingView */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; name = JXPagingView; path = JXPagingView.framework; sourceTree = BUILT_PRODUCTS_DIR; }; 2F50726B73AFA95C2E2546DB1C370E8A /* PrivacyInfo.xcprivacy */ = {isa = PBXFileReference; includeInIndex = 1; name = PrivacyInfo.xcprivacy; path = Resources/PrivacyInfo.xcprivacy; sourceTree = ""; }; - 2F6B2E7D27F5FC0A99F93B178E564E02 /* IQUIViewController+Additions.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "IQUIViewController+Additions.h"; path = "IQKeyboardManager/Categories/IQUIViewController+Additions.h"; sourceTree = ""; }; + 2F83F23B35D00B822AF31BD714997BEB /* YBImageBrowser.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = YBImageBrowser.release.xcconfig; sourceTree = ""; }; 2F9EBF75C7BF827B62D554DF70178092 /* TUISystemMessageCellData.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = TUISystemMessageCellData.h; sourceTree = ""; }; - 2FB0F1EA0129A32D8F1B9DBBE93BEAA7 /* YYImageCoder.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = YYImageCoder.h; path = YYImage/YYImageCoder.h; sourceTree = ""; }; - 2FD15E7FAC1131BA1CD24E3774107AD7 /* LLScreenshotBaseOperation.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = LLScreenshotBaseOperation.h; path = LLDebugTool/Core/Component/Screenshot/UserInterface/LLScreenshotBaseOperation.h; sourceTree = ""; }; - 2FDDD201C2A98C3CA6DDCC3F69B3AAE3 /* Zip.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = Zip.debug.xcconfig; sourceTree = ""; }; - 2FE3D8E42EF97CBAA2153E6796B78ACC /* NSEnumerator+RACSequenceAdditions.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "NSEnumerator+RACSequenceAdditions.m"; path = "ReactiveObjC/NSEnumerator+RACSequenceAdditions.m"; sourceTree = ""; }; - 302EADA9FF7DEF58D73D45E418445F4F /* YYTextMagnifier.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = YYTextMagnifier.m; path = YYText/Component/YYTextMagnifier.m; sourceTree = ""; }; - 302F072C7A785349E26A8017AE226699 /* QGBaseAnimatedImageFrame.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = QGBaseAnimatedImageFrame.m; path = iOS/QGVAPlayer/QGVAPlayer/Classes/Models/QGBaseAnimatedImageFrame.m; sourceTree = ""; }; - 3053110246C5E8573DD046F41040C699 /* IQUIScrollView+Additions.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "IQUIScrollView+Additions.h"; path = "IQKeyboardManager/Categories/IQUIScrollView+Additions.h"; sourceTree = ""; }; + 2FAA394A28F15B541C15C4046428DF50 /* LLWidgetBorderViewController.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = LLWidgetBorderViewController.h; path = LLDebugTool/Core/Component/WidgetBorder/UserInterface/LLWidgetBorderViewController.h; sourceTree = ""; }; + 2FAB6EAA857B7B7D4B5C776DB888EB83 /* GPBUnknownFieldSet_PackagePrivate.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = GPBUnknownFieldSet_PackagePrivate.h; path = objectivec/GPBUnknownFieldSet_PackagePrivate.h; sourceTree = ""; }; + 2FC9C62187F90EFF84B6BBA08E6FC0DD /* LLScreenshotHelper.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = LLScreenshotHelper.h; path = LLDebugTool/Core/Component/Screenshot/Function/LLScreenshotHelper.h; sourceTree = ""; }; + 2FFFCAD9E9632DB26E25DD641BABC990 /* Protobuf.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.module; path = Protobuf.modulemap; sourceTree = ""; }; + 3026EF929E12F0F3B8CB1459F141F2C8 /* QCloudMediaPath.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = QCloudMediaPath.m; path = QCloudCore/Classes/Base/PathUtilities/QCloudMediaPath.m; sourceTree = ""; }; + 3067AF278E4B581B7F782D773FAAD91C /* QCloudRequestData+COSXMLVersion.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "QCloudRequestData+COSXMLVersion.h"; path = "QCloudCOSXML/Classes/Base/QCloudRequestData+COSXMLVersion.h"; sourceTree = ""; }; + 306FBC56F569C750761C853A13D3E573 /* LLTitleSliderCell.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = LLTitleSliderCell.h; path = LLDebugTool/Core/Others/CommonUI/View/TitleCell/LLTitleSliderCell.h; sourceTree = ""; }; 3079401082458950495F2DC04E71FC4E /* SVGAPlayer */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; name = SVGAPlayer; path = SVGAPlayer.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - 3088EC7C57E1D1C446F9438801DBBD79 /* YBIBImageLayout.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = YBIBImageLayout.h; path = YBImageBrowser/Image/YBIBImageLayout.h; sourceTree = ""; }; - 308AF89B134250D0CD9115BC42591484 /* TZAuthLimitedFooterTipView.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = TZAuthLimitedFooterTipView.m; path = TZImagePickerController/TZImagePickerController/TZAuthLimitedFooterTipView.m; sourceTree = ""; }; - 309D1A47FA158D12298A21D9BC26845E /* LLSandboxCell.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = LLSandboxCell.h; path = LLDebugTool/Core/Component/Sandbox/UserInterface/LLSandboxCell.h; sourceTree = ""; }; + 30A83DA60174B28C331EFA1522382EDC /* syntax_enc.c */ = {isa = PBXFileReference; includeInIndex = 1; name = syntax_enc.c; path = src/enc/syntax_enc.c; sourceTree = ""; }; + 30C63B80F2734C318ABB99335F44B65F /* YYWebImage-Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "YYWebImage-Info.plist"; sourceTree = ""; }; 30C63F6B88C0F8AD4486A67AF2F2E024 /* TUICircleLodingView.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = TUICircleLodingView.h; sourceTree = ""; }; - 30D14ADF5196237789B7EA9D2C1B9519 /* NSThread+YYAdd.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "NSThread+YYAdd.m"; path = "YYCategories/Foundation/NSThread+YYAdd.m"; sourceTree = ""; }; - 30EEA1EE58480438768944A483CE7952 /* OSSService.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = OSSService.h; path = AliyunOSSSDK/OSSService.h; sourceTree = ""; }; - 3178347A4C5327D93B120D4EE564D6CB /* OSSInputStreamHelper.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = OSSInputStreamHelper.m; path = AliyunOSSSDK/OSSInputStreamHelper.m; sourceTree = ""; }; - 31843514D4C8C6FD10CEE21341584643 /* SDWebImageIndicator.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDWebImageIndicator.h; path = SDWebImage/Core/SDWebImageIndicator.h; sourceTree = ""; }; - 31855EAA2CF70B656440AFB8D4A289A4 /* LLEntryTitleView.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = LLEntryTitleView.h; path = LLDebugTool/Core/Others/CommonUI/Window/EntryWindow/LLEntryTitleView.h; sourceTree = ""; }; + 30D3FDFB4CB22F098F35BDBFF98C848D /* ConsoleView.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ConsoleView.swift; path = AgoraLyricsScore/Class/Scoring/View/ConsoleView.swift; sourceTree = ""; }; + 30D66DBB6F25AA190EC0CF9EE915C8BC /* LLWindowManager+Screenshot.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "LLWindowManager+Screenshot.h"; path = "LLDebugTool/Core/Component/Screenshot/UserInterface/LLWindowManager+Screenshot.h"; sourceTree = ""; }; + 30D725B5B1C3152F5DB42BF6D2B60526 /* TZVideoCropController.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = TZVideoCropController.h; path = TZImagePickerController/TZImagePickerController/TZVideoCropController.h; sourceTree = ""; }; + 30F048CA0AE11A263618A72FA4FFC37C /* SDFileAttributeHelper.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDFileAttributeHelper.m; path = SDWebImage/Private/SDFileAttributeHelper.m; sourceTree = ""; }; + 30F0633886F127563F74ACF39A7FF0FB /* LLWidgetBorderHelper.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = LLWidgetBorderHelper.h; path = LLDebugTool/Core/Component/WidgetBorder/Function/LLWidgetBorderHelper.h; sourceTree = ""; }; + 31028B60B9C19E0F02F617C1B0FED785 /* ResourceBundle-AgoraLyricsScoreBundle-AgoraLyricsScore-Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "ResourceBundle-AgoraLyricsScoreBundle-AgoraLyricsScore-Info.plist"; sourceTree = ""; }; + 310C4B839E1AF1CB0616FC948067B950 /* QGHWDMP4OpenGLView.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = QGHWDMP4OpenGLView.h; path = iOS/QGVAPlayer/QGVAPlayer/Classes/Views/OpenGL/QGHWDMP4OpenGLView.h; sourceTree = ""; }; + 3121FA43FAB28AEFB43B567F9077953F /* NSSet+RACSequenceAdditions.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "NSSet+RACSequenceAdditions.m"; path = "ReactiveObjC/NSSet+RACSequenceAdditions.m"; sourceTree = ""; }; + 31316DA21AA80AE3DD0CA7591518F908 /* QCloudLogModel.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = QCloudLogModel.h; path = QCloudCore/Classes/Base/Logger/QCloudLogModel.h; sourceTree = ""; }; + 313EBD1ED4CF3BFF7D35A23B739B12D3 /* IQKeyboardManager.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = IQKeyboardManager.release.xcconfig; sourceTree = ""; }; + 315FC00907D3B61F7085A204AF7583FD /* LLHierarchyViewController.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = LLHierarchyViewController.h; path = LLDebugTool/Core/Component/Hierarchy/UserInterface/LLHierarchyViewController.h; sourceTree = ""; }; + 316F4CBFD242760840B0046811B6EDA6 /* TZGifPhotoPreviewController.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = TZGifPhotoPreviewController.m; path = TZImagePickerController/TZImagePickerController/TZGifPhotoPreviewController.m; sourceTree = ""; }; + 3175BD5CE61F738AF88728C70A17AC8E /* QCloudSupervisory.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = QCloudSupervisory.m; path = QCloudCore/Classes/Base/Supervisory/QCloudSupervisory.m; sourceTree = ""; }; + 31928EFB2114E4672EFCA3B925B522EE /* YBImageBrowserDataSource.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = YBImageBrowserDataSource.h; path = YBImageBrowser/Protocol/YBImageBrowserDataSource.h; sourceTree = ""; }; + 319D22F892A6438A469F4F1F3B7F64AD /* RACImmediateScheduler.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = RACImmediateScheduler.m; path = ReactiveObjC/RACImmediateScheduler.m; sourceTree = ""; }; + 31ADE70C54EC2AA86CDD058978447193 /* neon.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = neon.h; path = src/dsp/neon.h; sourceTree = ""; }; 31BCDD60A08BA8E78ED99F8ED7408E7B /* YTFaceLiveReflect.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = YTFaceLiveReflect.framework; path = Libs/YTFaceLiveReflect.framework; sourceTree = ""; }; + 31CA26C8AB804A64B74DEFAEAAF24BA6 /* UIBarButtonItem+RACCommandSupport.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "UIBarButtonItem+RACCommandSupport.h"; path = "ReactiveObjC/UIBarButtonItem+RACCommandSupport.h"; sourceTree = ""; }; 31CDC63E7035C004EAE1BC7C73F92C52 /* TUIConfig_Minimalist.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = TUIConfig_Minimalist.h; sourceTree = ""; }; - 31D03D99C57F9ACA9A16C6FC6AB13652 /* NSTimer+YYAdd.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "NSTimer+YYAdd.h"; path = "YYCategories/Foundation/NSTimer+YYAdd.h"; sourceTree = ""; }; - 31FC171CB8FC2E31CF537B21BB1FF95A /* IQTitleBarButtonItem.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = IQTitleBarButtonItem.m; path = IQKeyboardManager/IQToolbar/IQTitleBarButtonItem.m; sourceTree = ""; }; - 320209B1B0F7E135EA478D3FEF6BE049 /* JXCategoryTitleView.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = JXCategoryTitleView.h; path = Sources/Title/JXCategoryTitleView.h; sourceTree = ""; }; - 3207338365EBF7BD9944C81870D9296B /* NSDate+YYAdd.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "NSDate+YYAdd.m"; path = "YYCategories/Foundation/NSDate+YYAdd.m"; sourceTree = ""; }; - 323E2DDDBFA33D8B25A1200AC5E00A75 /* RACIndexSetSequence.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = RACIndexSetSequence.h; path = ReactiveObjC/RACIndexSetSequence.h; sourceTree = ""; }; - 324C3C17E77640BD11D454C5D4E11998 /* UISwitch+RACSignalSupport.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "UISwitch+RACSignalSupport.h"; path = "ReactiveObjC/UISwitch+RACSignalSupport.h"; sourceTree = ""; }; - 3255A026DBC0318EFC46551B68D63032 /* LLScreenshotViewController.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = LLScreenshotViewController.m; path = LLDebugTool/Core/Component/Screenshot/UserInterface/LLScreenshotViewController.m; sourceTree = ""; }; - 326457E17330AB8C4BF96B7DF959A075 /* LLLogHelper.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = LLLogHelper.m; path = LLDebugTool/Core/Component/Log/Function/LLLogHelper.m; sourceTree = ""; }; + 31D6A899A2F22D73E42C4AFF53B6646D /* QCloudCustomSession.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = QCloudCustomSession.h; path = QCloudCore/Classes/Base/CustomLoader/QCloudCustomSession.h; sourceTree = ""; }; + 31E61363BD9694569DD3E9A63B4E4511 /* UIButton+YYWebImage.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "UIButton+YYWebImage.h"; path = "YYWebImage/Categories/UIButton+YYWebImage.h"; sourceTree = ""; }; + 320AD155944DBB52005BF56892A6FEA4 /* GPBDictionary_PackagePrivate.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = GPBDictionary_PackagePrivate.h; path = objectivec/GPBDictionary_PackagePrivate.h; sourceTree = ""; }; + 323E560A5CBA3BC04CD92054CD30A16A /* ReactiveObjC-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "ReactiveObjC-umbrella.h"; sourceTree = ""; }; + 32515DC6539770B161CF9BE8AA915F02 /* NSDictionary+VAPUtil.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "NSDictionary+VAPUtil.m"; path = "iOS/QGVAPlayer/QGVAPlayer/Classes/Utils/Categorys/NSDictionary+VAPUtil.m"; sourceTree = ""; }; + 326116131F7F57A4EEF8996A6AEC35F2 /* bit_reader_utils.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = bit_reader_utils.h; path = src/utils/bit_reader_utils.h; sourceTree = ""; }; + 3272B2DBCD538F6D7CE6F08DD40047FF /* OSSTask.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = OSSTask.h; path = AliyunOSSSDK/OSSTask/OSSTask.h; sourceTree = ""; }; 327EC8E8086101EB4B996956ECA23820 /* TUIFaceSegementScrollView.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = TUIFaceSegementScrollView.m; sourceTree = ""; }; 3291209D4A48AC0FE68A52980DFA6F6D /* TUIResponderTextView.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = TUIResponderTextView.m; sourceTree = ""; }; - 3291F0FB38A1BE54BF95374F4ECBC806 /* UIView+VAP.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "UIView+VAP.h"; path = "iOS/QGVAPlayer/QGVAPlayer/Classes/UIView+VAP.h"; sourceTree = ""; }; - 329BFF587DD6C0F79B826D021A752616 /* JXPagerListContainerView.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = JXPagerListContainerView.h; path = Sources/JXPagerView/JXPagerListContainerView.h; sourceTree = ""; }; - 32CC90CA01A0CCF24A12979B2695F9A3 /* YYSpriteSheetImage.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = YYSpriteSheetImage.m; path = YYImage/YYSpriteSheetImage.m; sourceTree = ""; }; - 32CF5DC6D8E6BCE1CCBB7201E95E428F /* LLFilterView.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = LLFilterView.m; path = LLDebugTool/Core/Others/CommonUI/View/FilterView/LLFilterView.m; sourceTree = ""; }; - 32E751318C392BA743CC1802177F458D /* MJRefreshNormalTrailer.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = MJRefreshNormalTrailer.h; path = MJRefresh/Custom/Trailer/MJRefreshNormalTrailer.h; sourceTree = ""; }; - 32F4C4B2065DD641B80B483B67E859CB /* DataStructs.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = DataStructs.swift; path = AgoraLyricsScore/Class/Other/DataStructs.swift; sourceTree = ""; }; - 32F7EA5134AD844D1AB8F3302D8F414A /* LLBaseComponentViewController.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = LLBaseComponentViewController.h; path = LLDebugTool/Core/Others/CommonUI/ViewController/ComponentViewController/LLBaseComponentViewController.h; sourceTree = ""; }; - 33189B650BEB3689A94AD39C796B0F85 /* LLNetworkCell.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = LLNetworkCell.h; path = LLDebugTool/Core/Component/Network/UserInterface/LLNetworkCell.h; sourceTree = ""; }; - 33209571890BFD1121B09EF9352AD064 /* RACSerialDisposable.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = RACSerialDisposable.h; path = ReactiveObjC/RACSerialDisposable.h; sourceTree = ""; }; + 32978C299B2134D5886AD072C2ED827C /* GPBWireFormat.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = GPBWireFormat.h; path = objectivec/GPBWireFormat.h; sourceTree = ""; }; + 32D76BD34CD2BE0A545513A0C0E136DF /* UIImage+WebP.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "UIImage+WebP.h"; path = "SDWebImageWebPCoder/Classes/UIImage+WebP.h"; sourceTree = ""; }; + 330637CF749ED5BCC479A9632969669E /* SSZipArchive.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = SSZipArchive.release.xcconfig; sourceTree = ""; }; + 3315DC6134F24DE76DE6F35B8D45D47C /* JXCategoryNumberCell.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = JXCategoryNumberCell.m; path = Sources/Number/JXCategoryNumberCell.m; sourceTree = ""; }; 334B7631B5F1C7644E85CBD3AFA64C98 /* Pods-QXLive-Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "Pods-QXLive-Info.plist"; sourceTree = ""; }; - 336C1DA948FF772449434E995BD8A651 /* vp8i_dec.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = vp8i_dec.h; path = src/dec/vp8i_dec.h; sourceTree = ""; }; - 3387EAE707EA852914EB3CD0D69B1343 /* NSDictionary+RACSequenceAdditions.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "NSDictionary+RACSequenceAdditions.h"; path = "ReactiveObjC/NSDictionary+RACSequenceAdditions.h"; sourceTree = ""; }; - 339AA4E9A659007E44DBA93A7F85D1B5 /* OSSGetObjectACLResult.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = OSSGetObjectACLResult.h; path = AliyunOSSSDK/OSSGetObjectACLResult.h; sourceTree = ""; }; - 33A9AE1A679F38D63E16BC90A6D54F0D /* RACEmptySignal.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = RACEmptySignal.h; path = ReactiveObjC/RACEmptySignal.h; sourceTree = ""; }; + 334DED8C53FD541D90D3B63F4C9CE8E1 /* vp8i_dec.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = vp8i_dec.h; path = src/dec/vp8i_dec.h; sourceTree = ""; }; + 337ADB5D316FDB0A929EAB064196DC3C /* UIImageView+YYWebImage.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "UIImageView+YYWebImage.h"; path = "YYWebImage/Categories/UIImageView+YYWebImage.h"; sourceTree = ""; }; + 33A53419BC34A6CCB358D07E454EA09E /* LLMagnifierViewController.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = LLMagnifierViewController.m; path = LLDebugTool/Core/Component/Magnifier/UserInterface/LLMagnifierViewController.m; sourceTree = ""; }; 33AAFEDB266478D4B5A46934B6973C3F /* TIMConfig.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = TIMConfig.h; sourceTree = ""; }; - 33B08BAA0B5F97E5E3CE46628C420C4E /* QGVAPMetalUtil.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = QGVAPMetalUtil.m; path = iOS/QGVAPlayer/QGVAPlayer/Classes/Utils/QGVAPMetalUtil.m; sourceTree = ""; }; - 33B0F4ACEB466D6A47F4B5CF98C4455C /* SSZipArchive.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = SSZipArchive.release.xcconfig; sourceTree = ""; }; - 33D353B44EE0092B7A36F0CB689CA644 /* TZPhotoPreviewController.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = TZPhotoPreviewController.h; path = TZImagePickerController/TZImagePickerController/TZPhotoPreviewController.h; sourceTree = ""; }; - 340D5C13BB9C695B9DA99E0ECDF548E4 /* NSObject+YYAdd.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "NSObject+YYAdd.h"; path = "YYCategories/Foundation/NSObject+YYAdd.h"; sourceTree = ""; }; - 341363FE03AAD9F1114A239526416C46 /* LLBaseModel.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = LLBaseModel.h; path = LLDebugTool/Core/Others/CommonUI/Base/LLBaseModel.h; sourceTree = ""; }; - 342958B2FE3F28E830204FDF3E1244F1 /* LLFactory.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = LLFactory.h; path = LLDebugTool/Core/Others/Factory/LLFactory.h; sourceTree = ""; }; - 3430192F21CBDC1205AEAA154B5BAD74 /* NSUserDefaults+LL_Utils.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "NSUserDefaults+LL_Utils.m"; path = "LLDebugTool/Core/Others/Category/NSUserDefaults/NSUserDefaults+LL_Utils.m"; sourceTree = ""; }; - 343CD4E0DC126EC0B16184E8939997DC /* RACQueueScheduler.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = RACQueueScheduler.h; path = ReactiveObjC/RACQueueScheduler.h; sourceTree = ""; }; - 3465D28232CE75C9385EA661D43FD69E /* ResourceBundle-FMDB_Privacy-FMDB-Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "ResourceBundle-FMDB_Privacy-FMDB-Info.plist"; sourceTree = ""; }; + 33C281761BF7F5D15E479274DDB11055 /* LLScreenshotSelectorModel.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = LLScreenshotSelectorModel.m; path = LLDebugTool/Core/Component/Screenshot/UserInterface/LLScreenshotSelectorModel.m; sourceTree = ""; }; + 33C7A38BE28DEEA49F3A692023E68CD5 /* SDWebImageDownloaderOperation.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDWebImageDownloaderOperation.m; path = SDWebImage/Core/SDWebImageDownloaderOperation.m; sourceTree = ""; }; + 33C8DA3D2A8279573A354DF2ADEDB1B6 /* IQKeyboardReturnKeyHandler.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = IQKeyboardReturnKeyHandler.h; path = IQKeyboardManager/IQKeyboardReturnKeyHandler.h; sourceTree = ""; }; + 33DA828E554084B88BA4798FDD90C02A /* UIGestureRecognizer+VAPUtil.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "UIGestureRecognizer+VAPUtil.m"; path = "iOS/QGVAPlayer/QGVAPlayer/Classes/Utils/Categorys/UIGestureRecognizer+VAPUtil.m"; sourceTree = ""; }; + 341F1DA851C2DCD12018594E5969B23A /* GPBCodedInputStream.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = GPBCodedInputStream.h; path = objectivec/GPBCodedInputStream.h; sourceTree = ""; }; + 3443B7A055C772DC7A0B5A8FDBB9431B /* NSBundle+MJRefresh.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "NSBundle+MJRefresh.h"; path = "MJRefresh/NSBundle+MJRefresh.h"; sourceTree = ""; }; + 3445DE2E4AAB5AA7BAD875A6A2964BD5 /* Events.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Events.swift; path = AgoraLyricsScore/Class/Events.swift; sourceTree = ""; }; + 3455D83AE2F566E310C187F75E25A1F0 /* UIStepper+RACSignalSupport.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "UIStepper+RACSignalSupport.m"; path = "ReactiveObjC/UIStepper+RACSignalSupport.m"; sourceTree = ""; }; + 3457584A90D2FC553E77823B19CA85DB /* NSObject+YYAddForARC.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "NSObject+YYAddForARC.h"; path = "YYCategories/Foundation/NSObject+YYAddForARC.h"; sourceTree = ""; }; 346BB8B8D2DCA50D7EDD6B1F4851028F /* TUIVoiceReplyQuoteViewData.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = TUIVoiceReplyQuoteViewData.m; sourceTree = ""; }; - 3474A9A3EA75EA3C4C4A50231107106B /* LLBaseWindow.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = LLBaseWindow.m; path = LLDebugTool/Core/Others/CommonUI/Base/LLBaseWindow.m; sourceTree = ""; }; - 347D304AA51F0A3E612D713E96B253DA /* JXCategoryIndicatorParamsModel.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = JXCategoryIndicatorParamsModel.h; path = Sources/Common/JXCategoryIndicatorParamsModel.h; sourceTree = ""; }; - 34AB9D4B67F808A65B4C76074FF1074C /* NSHTTPURLResponse+LL_Network.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "NSHTTPURLResponse+LL_Network.m"; path = "LLDebugTool/Core/Component/Network/Function/NSHTTPURLResponse/NSHTTPURLResponse+LL_Network.m"; sourceTree = ""; }; - 34B32386E62DAFD9F626300575CF2D1A /* LLNetworkHelper.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = LLNetworkHelper.h; path = LLDebugTool/Core/Component/Network/Function/LLNetworkHelper.h; sourceTree = ""; }; - 34BCEB440A28333692E4A9A246780F63 /* RACReplaySubject.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = RACReplaySubject.h; path = ReactiveObjC/RACReplaySubject.h; sourceTree = ""; }; - 34DCB86206FE5F8BFE8B5FB158C5DE18 /* YYText-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "YYText-umbrella.h"; sourceTree = ""; }; - 34E2640229E8238789D84A897AEF3545 /* LLScreenshotViewController.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = LLScreenshotViewController.h; path = LLDebugTool/Core/Component/Screenshot/UserInterface/LLScreenshotViewController.h; sourceTree = ""; }; - 34F1246ADF6DCEBE9AFA7682B6CD48AE /* iterator_enc.c */ = {isa = PBXFileReference; includeInIndex = 1; name = iterator_enc.c; path = src/enc/iterator_enc.c; sourceTree = ""; }; - 35129B8F9F4AF6040B3700EBF65B3561 /* mz_crypt.c */ = {isa = PBXFileReference; includeInIndex = 1; name = mz_crypt.c; path = SSZipArchive/minizip/mz_crypt.c; sourceTree = ""; }; - 35156887AF7BC08E0E7AE0BEEA046E3B /* AgoraSpatialAudioExtension.xcframework */ = {isa = PBXFileReference; includeInIndex = 1; path = AgoraSpatialAudioExtension.xcframework; sourceTree = ""; }; + 348F60D805DCC0E0BD4D382F5BE1701C /* QCloudProgrameDefines.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = QCloudProgrameDefines.h; path = QCloudCore/Classes/Base/QCLOUDProgramDefines/QCloudProgrameDefines.h; sourceTree = ""; }; + 349D8C96879E11B1DC187B265EDAB622 /* UIControl+RACSignalSupport.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "UIControl+RACSignalSupport.h"; path = "ReactiveObjC/UIControl+RACSignalSupport.h"; sourceTree = ""; }; + 34AD6B77629EF6E1432ED0F009E85F10 /* OSSHttpdns.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = OSSHttpdns.m; path = AliyunOSSSDK/OSSHttpdns.m; sourceTree = ""; }; 351AD2DDB6888E18549005C6A2B56494 /* TUIMessageController.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = TUIMessageController.m; sourceTree = ""; }; - 352CBC2D9D6F988EE9950B6B5E54A5F1 /* TZAssetModel.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = TZAssetModel.h; path = TZImagePickerController/TZImagePickerController/TZAssetModel.h; sourceTree = ""; }; - 354C3C21A292F214B8BE56FA99EBCC14 /* SVGAVectorLayer.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SVGAVectorLayer.h; path = Source/SVGAVectorLayer.h; sourceTree = ""; }; - 3556F02ACB3F57E398FEDC3AFE44F82A /* muxread.c */ = {isa = PBXFileReference; includeInIndex = 1; name = muxread.c; path = src/mux/muxread.c; sourceTree = ""; }; - 3583F9CDC8596CAF010268BCF510CA18 /* ResourceBundle-IQKeyboardManager-IQKeyboardManager-Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "ResourceBundle-IQKeyboardManager-IQKeyboardManager-Info.plist"; sourceTree = ""; }; - 3589EC62449C82E49971D5A7BC3F6AE9 /* SVGAContentLayer.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SVGAContentLayer.m; path = Source/SVGAContentLayer.m; sourceTree = ""; }; - 35CF86C4D78D2DD06F474501907C4F93 /* WechatOpenSDK-XCFramework.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "WechatOpenSDK-XCFramework.release.xcconfig"; sourceTree = ""; }; - 35EA76B0EF001DAAAE68CB5B62F28883 /* LrcParser.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = LrcParser.swift; path = AgoraLyricsScore/Class/Other/LrcParser.swift; sourceTree = ""; }; - 360A901FBA1AF81D2E9A0E00CB0DBA9A /* MJRefreshConfig.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = MJRefreshConfig.h; path = MJRefresh/MJRefreshConfig.h; sourceTree = ""; }; - 362AAF63ACF4F5D9F2017197144BB0B5 /* UIButton+LL_Utils.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "UIButton+LL_Utils.h"; path = "LLDebugTool/Core/Others/Category/UIButton/UIButton+LL_Utils.h"; sourceTree = ""; }; - 364F986E519664737AB61C9815D6967E /* UICollectionViewLayout+MJRefresh.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "UICollectionViewLayout+MJRefresh.h"; path = "MJRefresh/UICollectionViewLayout+MJRefresh.h"; sourceTree = ""; }; - 367AD13E2B8BEEC1AF33DB1BE33DC7C4 /* LLTitleCellModel.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = LLTitleCellModel.h; path = LLDebugTool/Core/Others/CommonUI/View/TitleCell/LLTitleCellModel.h; sourceTree = ""; }; - 367F3A9044385655959B96A79439DD72 /* NSNotificationCenter+VAPThreadSafe.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "NSNotificationCenter+VAPThreadSafe.m"; path = "iOS/QGVAPlayer/QGVAPlayer/Classes/Utils/Categorys/NSNotificationCenter+VAPThreadSafe.m"; sourceTree = ""; }; - 368529C6BDC7F1F1AAE0D6FE32887BDC /* OSSSignerBase.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = OSSSignerBase.m; path = AliyunOSSSDK/Signer/OSSSignerBase.m; sourceTree = ""; }; + 35274E48FA9B681200EB7E115F96721F /* OSSNSLogger.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = OSSNSLogger.m; path = AliyunOSSSDK/OSSFileLog/OSSNSLogger.m; sourceTree = ""; }; + 355D7EF7FF50D1218C0CEC883F6C2E3C /* LLWindowManager+Screenshot.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "LLWindowManager+Screenshot.m"; path = "LLDebugTool/Core/Component/Screenshot/UserInterface/LLWindowManager+Screenshot.m"; sourceTree = ""; }; + 356E53AC019108FC3CD39CF37AB40AD7 /* QGBaseAnimatedImageFrame+Displaying.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "QGBaseAnimatedImageFrame+Displaying.m"; path = "iOS/QGVAPlayer/QGVAPlayer/Classes/Models/QGBaseAnimatedImageFrame+Displaying.m"; sourceTree = ""; }; + 35CC6DBCAD38C47C3CD1ED1C276F2416 /* TZImagePickerController.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = TZImagePickerController.debug.xcconfig; sourceTree = ""; }; + 35FB9CEABCB769EFEE6032EC483218D6 /* QCloudSandboxPath.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = QCloudSandboxPath.m; path = QCloudCore/Classes/Base/PathUtilities/QCloudSandboxPath.m; sourceTree = ""; }; + 35FDBDF29A76E644B9627F0011BD8D21 /* RACSequence.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = RACSequence.m; path = ReactiveObjC/RACSequence.m; sourceTree = ""; }; + 3617FB84BF477BCEC32EF2265F46D63E /* QCloudListMultipartRequest.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = QCloudListMultipartRequest.h; path = QCloudCOSXML/Classes/Transfer/request/QCloudListMultipartRequest.h; sourceTree = ""; }; + 36333F4F2E36DBF4FA871A8584CA3DF0 /* MQTTSSLSecurityPolicyEncoder.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = MQTTSSLSecurityPolicyEncoder.m; path = MQTTClient/MQTTClient/MQTTSSLSecurityPolicyEncoder.m; sourceTree = ""; }; + 365C6C6ED6AED64789474E4FCC19775E /* LLEntryStyleModel.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = LLEntryStyleModel.m; path = LLDebugTool/Core/Others/CommonUI/Window/EntryWindow/LLEntryStyleModel.m; sourceTree = ""; }; + 3669B9D9B4922F9AEC4046F6C6A18C8F /* SDInternalMacros.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDInternalMacros.h; path = SDWebImage/Private/SDInternalMacros.h; sourceTree = ""; }; + 368A6985445BE6224178FD078201DF73 /* GPBDuration.pbobjc.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = GPBDuration.pbobjc.h; path = objectivec/GPBDuration.pbobjc.h; sourceTree = ""; }; 368B91EBB98C264B3B1AF05E3E46A89B /* TUIConfig_Classic.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = TUIConfig_Classic.h; sourceTree = ""; }; 369D4B722FCCC1FCA027159ADEAC799E /* TUIMediaView.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = TUIMediaView.m; sourceTree = ""; }; - 36C65C27CD686409B0FA655E55D45F58 /* AFNetworking.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = AFNetworking.release.xcconfig; sourceTree = ""; }; + 36A72A8E9C73A1AFAFBFFC02A5579F23 /* UIResponder+LL_Utils.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "UIResponder+LL_Utils.h"; path = "LLDebugTool/Core/Others/Category/UIResponder/UIResponder+LL_Utils.h"; sourceTree = ""; }; + 36BD4259AA7F4658875BDD457F270C24 /* tree_dec.c */ = {isa = PBXFileReference; includeInIndex = 1; name = tree_dec.c; path = src/dec/tree_dec.c; sourceTree = ""; }; + 36C58901FA133D1BB74984D16582B20A /* lossless_enc_mips_dsp_r2.c */ = {isa = PBXFileReference; includeInIndex = 1; name = lossless_enc_mips_dsp_r2.c; path = src/dsp/lossless_enc_mips_dsp_r2.c; sourceTree = ""; }; 36DE87FF6645F02EEFF37D59E5E14782 /* TUIGroupCreatedCell.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = TUIGroupCreatedCell.m; sourceTree = ""; }; - 3714959B32893D0305EFC87D686A4F24 /* BRResultModel.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = BRResultModel.h; path = BRPickerView/Deprecated/StringPickerView/BRResultModel.h; sourceTree = ""; }; - 37221025A73D9BE36B92DB09BC14BBA1 /* TAAnimatedDotView.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = TAAnimatedDotView.h; path = SDCycleScrollView/Lib/SDCycleScrollView/PageControl/TAAnimatedDotView.h; sourceTree = ""; }; - 37BF15A3289527A730A18B0FF3B92BD3 /* NSNotificationCenter+VAPThreadSafe.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "NSNotificationCenter+VAPThreadSafe.h"; path = "iOS/QGVAPlayer/QGVAPlayer/Classes/Utils/Categorys/NSNotificationCenter+VAPThreadSafe.h"; sourceTree = ""; }; - 37BF5C6D27DC9250948AD8D426A63A5D /* RACPassthroughSubscriber.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = RACPassthroughSubscriber.h; path = ReactiveObjC/RACPassthroughSubscriber.h; sourceTree = ""; }; + 36F2ADBE477D20DCEFB2B7B11D9398BC /* ScoringMachineEx.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ScoringMachineEx.swift; path = AgoraLyricsScore/Class/Scoring/ScoringMachineEx/ScoringMachineEx.swift; sourceTree = ""; }; + 37065A75D83E7396C1993697D64B2C16 /* SDWebImageTransitionInternal.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDWebImageTransitionInternal.h; path = SDWebImage/Private/SDWebImageTransitionInternal.h; sourceTree = ""; }; + 3712540F0027EB218AE464F58A59CC60 /* UIViewController+LL_Utils.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "UIViewController+LL_Utils.m"; path = "LLDebugTool/Core/Others/Category/UIViewController/UIViewController+LL_Utils.m"; sourceTree = ""; }; + 374F257E854D9B1A189B5FB06602026F /* SDImageCachesManager.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDImageCachesManager.h; path = SDWebImage/Core/SDImageCachesManager.h; sourceTree = ""; }; + 375CF7EC774E0546D8281084DF667137 /* NSArray+VAPUtil.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "NSArray+VAPUtil.m"; path = "iOS/QGVAPlayer/QGVAPlayer/Classes/Utils/Categorys/NSArray+VAPUtil.m"; sourceTree = ""; }; + 3792CC0CD093085EF6561256005846BD /* cost_mips_dsp_r2.c */ = {isa = PBXFileReference; includeInIndex = 1; name = cost_mips_dsp_r2.c; path = src/dsp/cost_mips_dsp_r2.c; sourceTree = ""; }; + 37A171C91C19D0F12C6EC7F0FFF8E15C /* NSImage+Compatibility.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "NSImage+Compatibility.m"; path = "SDWebImage/Core/NSImage+Compatibility.m"; sourceTree = ""; }; + 37AC3CD799DAF42B47FD31D0327DFB1A /* QGVAPWrapView.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = QGVAPWrapView.h; path = iOS/QGVAPlayer/QGVAPlayer/Classes/QGVAPWrapView.h; sourceTree = ""; }; + 37B2D8A9CCA85F0B562530AFC1FEC885 /* LLHtmlWkWebViewController.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = LLHtmlWkWebViewController.h; path = LLDebugTool/Core/Component/Html/UserInterface/LLHtmlWkWebViewController.h; sourceTree = ""; }; 37D1B036F87F771DFD660BCC3CF71B90 /* TUIConversationSelectController.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = TUIConversationSelectController.h; sourceTree = ""; }; - 37D6F7F59608D31B5D1DED1686D45B21 /* JXCategoryImageCellModel.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = JXCategoryImageCellModel.m; path = Sources/Image/JXCategoryImageCellModel.m; sourceTree = ""; }; + 37E9AD7DCB022C875EC7E34C9066A336 /* OSSCancellationToken.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = OSSCancellationToken.h; path = AliyunOSSSDK/OSSTask/OSSCancellationToken.h; sourceTree = ""; }; 37EA43C6154607EB4C385B067D4FF381 /* TUICore */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; name = TUICore; path = TUICore.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - 37F667D0DBFE410E28D2779499C4AD43 /* LLImageNameConfig.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = LLImageNameConfig.h; path = LLDebugTool/Core/Others/Resource/LLImageNameConfig.h; sourceTree = ""; }; - 380C5BD13C442E034BF71F95457DE708 /* NSDate+OSS.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "NSDate+OSS.m"; path = "AliyunOSSSDK/NSDate+OSS.m"; sourceTree = ""; }; + 37F7AF42CD89D99C7C641148A78BEEC3 /* AFNetworking-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "AFNetworking-prefix.pch"; sourceTree = ""; }; + 37FBF5391BBB5280F15041DE59EAE7F9 /* NSBezierPath+SDRoundedCorners.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "NSBezierPath+SDRoundedCorners.h"; path = "SDWebImage/Private/NSBezierPath+SDRoundedCorners.h"; sourceTree = ""; }; + 380131B8E123CBEBF5EF2B2F50944602 /* vp8i_enc.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = vp8i_enc.h; path = src/enc/vp8i_enc.h; sourceTree = ""; }; + 380962502D82008B0DA186322FC1E653 /* YBIBVideoView.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = YBIBVideoView.m; path = Video/YBIBVideoView.m; sourceTree = ""; }; 3814AF3EC255DDF9577E5266D96B7B49 /* UIView+TUIUtil.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "UIView+TUIUtil.m"; sourceTree = ""; }; - 38169B7B8DB8DD37C509B90EBAF523A9 /* SVGABitmapLayer.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SVGABitmapLayer.h; path = Source/SVGABitmapLayer.h; sourceTree = ""; }; - 3820BFD5C4FBCB397E6F614D474D5CE3 /* quant_levels_dec_utils.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = quant_levels_dec_utils.h; path = src/utils/quant_levels_dec_utils.h; sourceTree = ""; }; + 3815B32E45F80315CD87EED97ADDBCA3 /* QCloudRequestOperation.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = QCloudRequestOperation.h; path = QCloudCore/Classes/Base/QCLOUDRestNet/Operations/QCloudRequestOperation.h; sourceTree = ""; }; + 3819279E7AF258AC6770FDDDE575D03B /* LLAppInfoComponent.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = LLAppInfoComponent.h; path = LLDebugTool/Core/Component/AppInfo/LLAppInfoComponent.h; sourceTree = ""; }; + 381C0C51650DE5BB3FF030BC00F289F7 /* SDWebImageOptionsProcessor.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDWebImageOptionsProcessor.h; path = SDWebImage/Core/SDWebImageOptionsProcessor.h; sourceTree = ""; }; 382649DB90957A519752DBA5E57B1C7D /* TIMCommon.podspec */ = {isa = PBXFileReference; explicitFileType = text.script.ruby; includeInIndex = 1; indentWidth = 2; lastKnownFileType = text; path = TIMCommon.podspec; sourceTree = ""; tabWidth = 2; xcLanguageSpecificationIdentifier = xcode.lang.ruby; }; - 3828C61E6877E0C2459AE9FB73980AB9 /* LLFilterEventView.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = LLFilterEventView.m; path = LLDebugTool/Core/Others/CommonUI/View/FilterView/LLFilterEventView.m; sourceTree = ""; }; - 3842C0F2A0B7023AD39B5999D462DE6E /* UISlider+RACSignalSupport.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "UISlider+RACSignalSupport.h"; path = "ReactiveObjC/UISlider+RACSignalSupport.h"; sourceTree = ""; }; - 386ABB68464A5A25701025617B1DBB29 /* OSSConstants.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = OSSConstants.h; path = AliyunOSSSDK/OSSConstants.h; sourceTree = ""; }; - 38841C117A37A6643DCB88F8A67D5E7D /* OSSPutSymlinkRequest.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = OSSPutSymlinkRequest.m; path = AliyunOSSSDK/OSSPutSymlinkRequest.m; sourceTree = ""; }; - 3887FF2C85EA02C915288999A9FDEC57 /* NSDictionary+VAPUtil.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "NSDictionary+VAPUtil.h"; path = "iOS/QGVAPlayer/QGVAPlayer/Classes/Utils/Categorys/NSDictionary+VAPUtil.h"; sourceTree = ""; }; + 38284497DD20EB23C007D4DD28318A8C /* QCloudUploadPartRequest+Custom.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "QCloudUploadPartRequest+Custom.h"; path = "QCloudCOSXML/Classes/Transfer/request/QCloudUploadPartRequest+Custom.h"; sourceTree = ""; }; + 38423F8F3364205E7E652C96998807CD /* LLLocationWindow.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = LLLocationWindow.h; path = LLDebugTool/Core/Component/Location/UserInterface/LLLocationWindow.h; sourceTree = ""; }; + 386832C5BD3499E3597A77285E27241C /* XmlParser.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = XmlParser.swift; path = AgoraLyricsScore/Class/Other/XmlParser.swift; sourceTree = ""; }; + 38A9F0F0BAE1325195D9E0BA7F6D3EA6 /* SVGABezierPath.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SVGABezierPath.m; path = Source/SVGABezierPath.m; sourceTree = ""; }; 38AF682265526EA5128444E09DF05B92 /* TUIFileReplyQuoteViewData.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = TUIFileReplyQuoteViewData.h; sourceTree = ""; }; - 392909F55B62B6A86FBFEA9A024D2E61 /* LLShortCutViewController.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = LLShortCutViewController.m; path = LLDebugTool/Core/Component/ShortCut/UserInterface/LLShortCutViewController.m; sourceTree = ""; }; + 38B44D679DFCCC7F57518443D86AFF4E /* UIImage+ForceDecode.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "UIImage+ForceDecode.m"; path = "SDWebImage/Core/UIImage+ForceDecode.m"; sourceTree = ""; }; + 38B548276CBDD58FCFE13856ADA58FFB /* SDWebImage-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "SDWebImage-dummy.m"; sourceTree = ""; }; + 38BDAD26DBD09CF5C97C92BC5898EE60 /* AgoraVideoQualityAnalyzerExtension.xcframework */ = {isa = PBXFileReference; includeInIndex = 1; path = AgoraVideoQualityAnalyzerExtension.xcframework; sourceTree = ""; }; + 38F54560F4FAB326B5C0AD5AEBB34000 /* LLAnimateView.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = LLAnimateView.h; path = LLDebugTool/Core/Others/CommonUI/View/AnimateView/LLAnimateView.h; sourceTree = ""; }; + 3922C9F377B494EE8CB80F8AFC076B4B /* QCloudHttpDNS.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = QCloudHttpDNS.h; path = QCloudCore/Classes/Base/QCLOUDRestNet/DNSCache/QCloudHttpDNS.h; sourceTree = ""; }; 393F7B77890098F5E8F820AA7AAB3CD8 /* tnnliveness.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = tnnliveness.framework; path = Libs/tnnliveness.framework; sourceTree = ""; }; - 39412F2E342F45004F168645F67B7C47 /* LLShortCutModel.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = LLShortCutModel.h; path = LLDebugTool/Core/Component/ShortCut/Function/LLShortCutModel.h; sourceTree = ""; }; - 39615AF59B548CFAF0193DD8917A002D /* MJRefreshBackFooter.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = MJRefreshBackFooter.h; path = MJRefresh/Base/MJRefreshBackFooter.h; sourceTree = ""; }; - 3968D5977847797BCA5DA4441827276F /* backward_references_cost_enc.c */ = {isa = PBXFileReference; includeInIndex = 1; name = backward_references_cost_enc.c; path = src/enc/backward_references_cost_enc.c; sourceTree = ""; }; + 3965B84AE43C0F8234D384603B14D8C6 /* UIButton+LL_Utils.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "UIButton+LL_Utils.m"; path = "LLDebugTool/Core/Others/Category/UIButton/UIButton+LL_Utils.m"; sourceTree = ""; }; + 39779CCB2B95BB129A4CC4AA600A1891 /* cpu.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = cpu.h; path = src/dsp/cpu.h; sourceTree = ""; }; + 397DCE3E6D13B2709771BD62DFFF1D8C /* NSObject+RACLifting.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "NSObject+RACLifting.m"; path = "ReactiveObjC/NSObject+RACLifting.m"; sourceTree = ""; }; 398456EF8E6157E22F5A20834A6E7B2A /* TUIVideoMessageCell_Minimalist.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = TUIVideoMessageCell_Minimalist.m; sourceTree = ""; }; - 3990C5F087BEDFEABAE5941E3A558AF1 /* YYText.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = YYText.h; path = YYText/YYText.h; sourceTree = ""; }; - 39A9ED08E7A75D28D761EE555528B5ED /* WechatOpenSDK-XCFramework.xcframework */ = {isa = PBXFileReference; includeInIndex = 1; path = "WechatOpenSDK-XCFramework.xcframework"; sourceTree = ""; }; - 39B7511BB3C2B480AB6836AB01019C9D /* YYImage-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "YYImage-umbrella.h"; sourceTree = ""; }; - 39C1E2A4916B0F942ED8CB193963BB81 /* SDImageFramePool.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDImageFramePool.h; path = SDWebImage/Private/SDImageFramePool.h; sourceTree = ""; }; - 39F20F182CE4DA5C4011C05FD04682B7 /* JXCategoryNumberView.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = JXCategoryNumberView.m; path = Sources/Number/JXCategoryNumberView.m; sourceTree = ""; }; - 3A08A5E94EC468E382567565BA021F6D /* JXCategoryIndicatorDotLineView.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = JXCategoryIndicatorDotLineView.h; path = Sources/Indicator/IndicatorViews/JXCategoryIndicatorDotLineView.h; sourceTree = ""; }; - 3A0C1642D54AB3CA1AB9E283E62D57EC /* YYClassInfo.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = YYClassInfo.h; path = YYModel/YYClassInfo.h; sourceTree = ""; }; + 39B59F81DD5B923A6917D73817561C63 /* YYText.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.module; path = YYText.modulemap; sourceTree = ""; }; + 39F9B08441831B3354714594DA08CFC2 /* QCloudPingTester.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = QCloudPingTester.h; path = QCloudCore/Classes/Base/QCLOUDRestNet/DNSCache/QCloudPingTester.h; sourceTree = ""; }; 3A0F36C9DA1928A51CE0C61A106BCA1A /* TUIReplyPreviewBar.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = TUIReplyPreviewBar.h; sourceTree = ""; }; - 3A13C26D08093EE9A49057D16D3D20EB /* vp8li_dec.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = vp8li_dec.h; path = src/dec/vp8li_dec.h; sourceTree = ""; }; - 3A2674A2B952E3636D3DCBF9C83BE1B8 /* Media.xcassets */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = folder.assetcatalog; name = Media.xcassets; path = AgoraLyricsScore/Resources/Media.xcassets; sourceTree = ""; }; - 3A2B808DBD11F83AE48A117605787349 /* TZImagePickerController-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "TZImagePickerController-umbrella.h"; sourceTree = ""; }; - 3A5374F1D2D57A123F50408DB43B80B0 /* OSSFileLogger.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = OSSFileLogger.m; path = AliyunOSSSDK/OSSFileLog/OSSFileLogger.m; sourceTree = ""; }; - 3A55E0B8409973D29041C0DF40B38366 /* Bugly.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = Bugly.release.xcconfig; sourceTree = ""; }; - 3A7B4DB4E685E9A79ED6D72C2E68D787 /* SDImageAWebPCoder.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDImageAWebPCoder.h; path = SDWebImage/Core/SDImageAWebPCoder.h; sourceTree = ""; }; - 3A99B108129F4BF107A8295BB64E26BC /* yuv_sse2.c */ = {isa = PBXFileReference; includeInIndex = 1; name = yuv_sse2.c; path = src/dsp/yuv_sse2.c; sourceTree = ""; }; + 3A29D7C214574D219F6C435101FF52C8 /* QCloudCOSXML */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; name = QCloudCOSXML; path = QCloudCOSXML.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + 3A321FB4DB148B7F4B3C8519D7AAED1E /* YYCache-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "YYCache-umbrella.h"; sourceTree = ""; }; + 3A5C00D57F5928FE8EB781CC2C0EA87C /* LLFilterOtherView.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = LLFilterOtherView.m; path = LLDebugTool/Core/Others/CommonUI/View/FilterView/LLFilterOtherView.m; sourceTree = ""; }; + 3A5EC203393EDB39DF19C5B9EC73E99C /* Svga.pbobjc.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = Svga.pbobjc.h; path = Source/pbobjc/Svga.pbobjc.h; sourceTree = ""; }; + 3A65777FEF1D37CB29AAA9B70EBAC6C9 /* UIImage+ForceDecode.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "UIImage+ForceDecode.h"; path = "SDWebImage/Core/UIImage+ForceDecode.h"; sourceTree = ""; }; + 3A7D3D49FA00D2550D145285DA5CA7C3 /* UIButton+YYWebImage.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "UIButton+YYWebImage.m"; path = "YYWebImage/Categories/UIButton+YYWebImage.m"; sourceTree = ""; }; + 3A88737F7B4E7160E58FFAA2E27780E9 /* RACCompoundDisposableProvider.d */ = {isa = PBXFileReference; includeInIndex = 1; name = RACCompoundDisposableProvider.d; path = ReactiveObjC/RACCompoundDisposableProvider.d; sourceTree = ""; }; 3AA156D5EB13C201C0D46B8AAEB9F7D0 /* TUICommonGroupInfoCellData.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = TUICommonGroupInfoCellData.m; sourceTree = ""; }; - 3AA4F397EDE5C1D7038946A455CC9C90 /* AgoraFaceCaptureExtension.xcframework */ = {isa = PBXFileReference; includeInIndex = 1; path = AgoraFaceCaptureExtension.xcframework; sourceTree = ""; }; - 3AB32A3C6CF61661872B41A75780E6DD /* OSSV1Signer.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = OSSV1Signer.m; path = AliyunOSSSDK/Signer/OSSV1Signer.m; sourceTree = ""; }; - 3AC6BF1138B854446EC68BCEA6A76F18 /* YBImageBrowser.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = YBImageBrowser.m; path = YBImageBrowser/YBImageBrowser.m; sourceTree = ""; }; + 3AB782AC7C00029CE68CCBD575FF72B7 /* LLNetworkImageCell.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = LLNetworkImageCell.h; path = LLDebugTool/Core/Component/Network/UserInterface/LLNetworkImageCell.h; sourceTree = ""; }; + 3ACED52B3F83A3EA354B6EC039B93F9F /* JXCategoryView-Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "JXCategoryView-Info.plist"; sourceTree = ""; }; + 3AEBC735855A390946B5EF65B3823B1E /* OSSAllRequestNeededMessage.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = OSSAllRequestNeededMessage.h; path = AliyunOSSSDK/OSSAllRequestNeededMessage.h; sourceTree = ""; }; 3AF18CA26422804654DF44D2F04846A7 /* TUIGroupPendencyController.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = TUIGroupPendencyController.h; sourceTree = ""; }; + 3AF7922C63D1F715EF9339F99CF89C7D /* video_dec.xcframework */ = {isa = PBXFileReference; includeInIndex = 1; path = video_dec.xcframework; sourceTree = ""; }; + 3B0029E8D96A8D3921EC957B31A972EB /* YYDiskCache.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = YYDiskCache.h; path = YYCache/YYDiskCache.h; sourceTree = ""; }; + 3B04C37349BDC515B4E0D346572551E0 /* LLSandboxHtmlPreviewController.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = LLSandboxHtmlPreviewController.h; path = LLDebugTool/Core/Component/Sandbox/UserInterface/LLSandboxHtmlPreviewController.h; sourceTree = ""; }; + 3B1425FAA83B90D2C942C81713A82E18 /* WechatOpenSDK-XCFramework.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "WechatOpenSDK-XCFramework.release.xcconfig"; sourceTree = ""; }; + 3B15130A662ED9AC1282838D3D5AAF5A /* RACTupleSequence.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = RACTupleSequence.m; path = ReactiveObjC/RACTupleSequence.m; sourceTree = ""; }; 3B18A0FDCCE2BCD71AF416792C610BE8 /* TUIConversation-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "TUIConversation-umbrella.h"; sourceTree = ""; }; + 3B1AB3E8ED48D02DFFBFCC6751BDB663 /* QCloudOperationQueue.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = QCloudOperationQueue.h; path = QCloudCore/Classes/Base/QCLOUDRestNet/Operations/QCloudOperationQueue.h; sourceTree = ""; }; 3B1BE9331F5E5D12CA04E6D642BCFB41 /* TUIReferenceMessageCell.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = TUIReferenceMessageCell.m; sourceTree = ""; }; - 3B21B1E28B47B3F45DC3D0F3DF148E5A /* YYImage.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = YYImage.debug.xcconfig; sourceTree = ""; }; - 3B24F4F8ACEEB6EA9A2B606314DD5276 /* TZImagePickerController.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.module; path = TZImagePickerController.modulemap; sourceTree = ""; }; - 3B30AAFDA181015C6C27025D766CC3DC /* UIButton+AFNetworking.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "UIButton+AFNetworking.h"; path = "UIKit+AFNetworking/UIButton+AFNetworking.h"; sourceTree = ""; }; - 3B408488BE85B0EE63793A214141A13F /* YBImageBrowser-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "YBImageBrowser-dummy.m"; sourceTree = ""; }; - 3B680E2D07764F46DE876BB2983D8C41 /* UIProgressView+AFNetworking.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "UIProgressView+AFNetworking.m"; path = "UIKit+AFNetworking/UIProgressView+AFNetworking.m"; sourceTree = ""; }; - 3B7223ABEB7A4441164C36487E964288 /* GPBCodedInputStream.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = GPBCodedInputStream.h; path = objectivec/GPBCodedInputStream.h; sourceTree = ""; }; - 3B7558B9B194726397EEBD52EC664E87 /* YBIBTopView.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = YBIBTopView.m; path = YBImageBrowser/ToolView/YBIBTopView.m; sourceTree = ""; }; - 3B80D3EC4B7F7C0CED094987D021EF94 /* QGVAPWeakProxy.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = QGVAPWeakProxy.h; path = iOS/QGVAPlayer/QGVAPlayer/Classes/Utils/QGVAPWeakProxy.h; sourceTree = ""; }; - 3B8A0F686454D4EED1E4B08D439A6E60 /* UIActivityIndicatorView+AFNetworking.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "UIActivityIndicatorView+AFNetworking.h"; path = "UIKit+AFNetworking/UIActivityIndicatorView+AFNetworking.h"; sourceTree = ""; }; - 3B93AE270291BC5CC9DBCD6392AF31F9 /* mz_zip.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = mz_zip.h; path = SSZipArchive/minizip/mz_zip.h; sourceTree = ""; }; - 3BA4D99997626F46FFEACA76BE8DCA47 /* YBIBLoadingView.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = YBIBLoadingView.h; path = YBImageBrowser/AuxiliaryView/YBIBLoadingView.h; sourceTree = ""; }; - 3BACAFE24515AEBA75EBDB8DA3BB5435 /* MASLayoutConstraint.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = MASLayoutConstraint.m; path = Masonry/MASLayoutConstraint.m; sourceTree = ""; }; - 3BC91A08AACBA542289DE7ADBF5396BC /* JXCategoryCollectionView.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = JXCategoryCollectionView.m; path = Sources/Common/JXCategoryCollectionView.m; sourceTree = ""; }; + 3B2A9C92B1C203189E192C03AF2AB8EA /* QCloudFileUtils.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = QCloudFileUtils.m; path = QCloudCore/Classes/Base/QCLOUDFileUtils/QCloudFileUtils.m; sourceTree = ""; }; + 3B6C3FF75906D49816B4A95049FDEE4A /* OSSNetworkingRequestDelegate.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = OSSNetworkingRequestDelegate.m; path = AliyunOSSSDK/OSSNetworkingRequestDelegate.m; sourceTree = ""; }; 3BE1410E472321DAD3D7A9845B07EEB7 /* TUIGroupPendencyDataProvider.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = TUIGroupPendencyDataProvider.m; sourceTree = ""; }; - 3BE2F4BD4F74874DEED17704E081BB72 /* OSSPutSymlinkResult.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = OSSPutSymlinkResult.h; path = AliyunOSSSDK/OSSPutSymlinkResult.h; sourceTree = ""; }; - 3BE30CE823E0C71B1D4A34995D92C5FF /* UICollectionReusableView+RACSignalSupport.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "UICollectionReusableView+RACSignalSupport.m"; path = "ReactiveObjC/UICollectionReusableView+RACSignalSupport.m"; sourceTree = ""; }; - 3BEFF4173E0713075161D72CD9E5D921 /* BRPickerStyle.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = BRPickerStyle.m; path = BRPickerView/Core/BRPickerStyle.m; sourceTree = ""; }; 3BF3B905DD277678DFA482F73C17846C /* UIColor+TUIHexColor.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "UIColor+TUIHexColor.m"; sourceTree = ""; }; - 3BFEFA0A0B3119C90493AACB2952A551 /* Protobuf.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = Protobuf.release.xcconfig; sourceTree = ""; }; 3C0098C78C4AFA36FDBC748CDB13F174 /* TUIChat.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.module; path = TUIChat.modulemap; sourceTree = ""; }; + 3C0BD0C10DA136133A117EA08236E700 /* SDWebImageDownloaderDecryptor.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDWebImageDownloaderDecryptor.m; path = SDWebImage/Core/SDWebImageDownloaderDecryptor.m; sourceTree = ""; }; + 3C0CC4726723D6D3B9F07ADF69FE10CC /* GPBMessage.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = GPBMessage.h; path = objectivec/GPBMessage.h; sourceTree = ""; }; + 3C118021EF031FBCA103B7EA98DA851B /* QCloudUploadPartResult.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = QCloudUploadPartResult.h; path = QCloudCOSXML/Classes/Transfer/model/QCloudUploadPartResult.h; sourceTree = ""; }; + 3C12BE5CAB2519B0F0248C98EF5CD67A /* RACKVOProxy.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = RACKVOProxy.h; path = ReactiveObjC/RACKVOProxy.h; sourceTree = ""; }; 3C28B8D5E3DF6250210567B58082DFBA /* TUILocalTipsCellData.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = TUILocalTipsCellData.m; sourceTree = ""; }; - 3C3CF31542420185F3DB404477C45361 /* MASConstraint+Private.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "MASConstraint+Private.h"; path = "Masonry/MASConstraint+Private.h"; sourceTree = ""; }; - 3C5889D5277E5E8A2309A95BE35876AD /* SDWebImageDownloaderDecryptor.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDWebImageDownloaderDecryptor.h; path = SDWebImage/Core/SDWebImageDownloaderDecryptor.h; sourceTree = ""; }; - 3C65CA4EC7D80D3DDE1755B99EA29555 /* QGHWDMetalRenderer.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = QGHWDMetalRenderer.h; path = iOS/QGVAPlayer/QGVAPlayer/Classes/Views/Metal/QGHWDMetalRenderer.h; sourceTree = ""; }; - 3C734EC7A0E414C42093EC41F3868F98 /* SVGAPlayer.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = SVGAPlayer.release.xcconfig; sourceTree = ""; }; - 3C8BE30F840B83DB35EC45D0BC727A37 /* IQUIView+IQKeyboardToolbar.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "IQUIView+IQKeyboardToolbar.m"; path = "IQKeyboardManager/IQToolbar/IQUIView+IQKeyboardToolbar.m"; sourceTree = ""; }; + 3C4AFCFC76BE581A67CA5B539B832BF3 /* GPBEmpty.pbobjc.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = GPBEmpty.pbobjc.m; path = objectivec/GPBEmpty.pbobjc.m; sourceTree = ""; }; + 3C4BFE225DAC7F3C4528A80761A0A1D4 /* LLTitleSwitchCellView.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = LLTitleSwitchCellView.m; path = LLDebugTool/Core/Others/CommonUI/View/CellView/LLTitleSwitchCellView.m; sourceTree = ""; }; + 3C4FF55ACDBF05D5851592739846E2BB /* QCloudCOSXMLCopyObjectRequest.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = QCloudCOSXMLCopyObjectRequest.h; path = QCloudCOSXML/Classes/Transfer/request/QCloudCOSXMLCopyObjectRequest.h; sourceTree = ""; }; + 3C92B0D5A5DC08D351EAC1B4DFB9BDBB /* RACEXTScope.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = RACEXTScope.h; path = ReactiveObjC/extobjc/RACEXTScope.h; sourceTree = ""; }; 3CA375F51768BE15E2FECCE0FF4DC94D /* TUIChat.podspec */ = {isa = PBXFileReference; explicitFileType = text.script.ruby; includeInIndex = 1; indentWidth = 2; lastKnownFileType = text; path = TUIChat.podspec; sourceTree = ""; tabWidth = 2; xcLanguageSpecificationIdentifier = xcode.lang.ruby; }; - 3CBD739B3337D8AB7A89A90C56DA07A3 /* ScoringView.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ScoringView.swift; path = AgoraLyricsScore/Class/Scoring/View/ScoringView.swift; sourceTree = ""; }; - 3CC6D578DAE943369C7E725198632A3B /* GPBUnknownField.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = GPBUnknownField.m; path = objectivec/GPBUnknownField.m; sourceTree = ""; }; - 3CC8CD30E834C0DCF63FA6BA5782D962 /* LLWidgetBorderComponent.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = LLWidgetBorderComponent.m; path = LLDebugTool/Core/Component/WidgetBorder/LLWidgetBorderComponent.m; sourceTree = ""; }; - 3CC9BDDA97B381BF43C970FF96C770E8 /* UIDatePicker+RACSignalSupport.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "UIDatePicker+RACSignalSupport.m"; path = "ReactiveObjC/UIDatePicker+RACSignalSupport.m"; sourceTree = ""; }; - 3D01AD22FEDC8002233D7AACEDC04EAD /* AgoraLyricsScore.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = AgoraLyricsScore.debug.xcconfig; sourceTree = ""; }; - 3D3102A78D323A1EB954026A27C7BB82 /* AliyunOSSiOS-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "AliyunOSSiOS-dummy.m"; sourceTree = ""; }; + 3CC1EA350F30753E1F105F5F4F0C1E4E /* dec_clip_tables.c */ = {isa = PBXFileReference; includeInIndex = 1; name = dec_clip_tables.c; path = src/dsp/dec_clip_tables.c; sourceTree = ""; }; + 3CCEE7FC2F9AFDB27D8705E4B260814C /* NSNotificationCenter+VAPThreadSafe.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "NSNotificationCenter+VAPThreadSafe.h"; path = "iOS/QGVAPlayer/QGVAPlayer/Classes/Utils/Categorys/NSNotificationCenter+VAPThreadSafe.h"; sourceTree = ""; }; + 3CD85DC1770975A7D82905376807EEB1 /* LLBaseCollectionViewCell.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = LLBaseCollectionViewCell.m; path = LLDebugTool/Core/Others/CommonUI/Base/LLBaseCollectionViewCell.m; sourceTree = ""; }; + 3CDC87DA0AFD4FF5C4C35065331B3A64 /* MJRefreshComponent.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = MJRefreshComponent.h; path = MJRefresh/Base/MJRefreshComponent.h; sourceTree = ""; }; + 3CE9A3A6D92E62A399341821737EDBC8 /* TZPhotoPreviewController.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = TZPhotoPreviewController.h; path = TZImagePickerController/TZImagePickerController/TZPhotoPreviewController.h; sourceTree = ""; }; + 3CF202DD067955FFE62E96A64DB799E6 /* QCloudCore-Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "QCloudCore-Info.plist"; sourceTree = ""; }; + 3D091AA23B12B1EEA18EBF1FCCD12330 /* YYFrameImage.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = YYFrameImage.m; path = YYImage/YYFrameImage.m; sourceTree = ""; }; + 3D1757743CDC76FAC89974FBEDD31E89 /* LLHierarchyWindow.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = LLHierarchyWindow.h; path = LLDebugTool/Core/Component/Hierarchy/UserInterface/LLHierarchyWindow.h; sourceTree = ""; }; + 3D226186D297226D69E92A635E08589E /* QCloudCOSXMLService+Quality.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "QCloudCOSXMLService+Quality.h"; path = "QCloudCOSXML/Classes/Base/QCloudCOSXMLService+Quality.h"; sourceTree = ""; }; 3D349B4677392B69A14A120F95770225 /* TUICommonGroupInfoCellData_Minimalist.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = TUICommonGroupInfoCellData_Minimalist.m; sourceTree = ""; }; - 3D57A82C4C9FC2CDB44E1501EE0A2693 /* SDImageCachesManager.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDImageCachesManager.h; path = SDWebImage/Core/SDImageCachesManager.h; sourceTree = ""; }; - 3D62E51C28A76B206927E5029080D8C4 /* QGVAPMaskInfo.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = QGVAPMaskInfo.h; path = iOS/QGVAPlayer/QGVAPlayer/Classes/Models/QGVAPMaskInfo.h; sourceTree = ""; }; - 3DA9F704F86FBFD91151BF2E751B6619 /* LLSubTitleTableViewCell.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = LLSubTitleTableViewCell.m; path = LLDebugTool/Core/Others/CommonUI/View/SubTitleTableViewCell/LLSubTitleTableViewCell.m; sourceTree = ""; }; - 3DB57F5DA26A4F24A3A02393785F74C1 /* YYCategories-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "YYCategories-umbrella.h"; sourceTree = ""; }; - 3DBE0C6CF51CE0D6BEFF411F116002F8 /* UIImage+MultiFormat.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "UIImage+MultiFormat.m"; path = "SDWebImage/Core/UIImage+MultiFormat.m"; sourceTree = ""; }; - 3DCBC00766D06F1B7F4F5ECCC2D19171 /* YYLabel.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = YYLabel.h; path = YYText/YYLabel.h; sourceTree = ""; }; - 3DD727C4E06EB5359A3C9FCF1491E22B /* UIGestureRecognizer+VAPUtil.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "UIGestureRecognizer+VAPUtil.m"; path = "iOS/QGVAPlayer/QGVAPlayer/Classes/Utils/Categorys/UIGestureRecognizer+VAPUtil.m"; sourceTree = ""; }; - 3DD878AFABDF8EBC09174F427CBE5B7D /* AgoraReplayKitExtension.xcframework */ = {isa = PBXFileReference; includeInIndex = 1; path = AgoraReplayKitExtension.xcframework; sourceTree = ""; }; - 3DE4DC886B92E31B8DCEBB8D6969A644 /* quant_levels_dec_utils.c */ = {isa = PBXFileReference; includeInIndex = 1; name = quant_levels_dec_utils.c; path = src/utils/quant_levels_dec_utils.c; sourceTree = ""; }; - 3E1C3C99EEADDCD0F7E40E070FE54705 /* QGAnimatedImageBufferManager.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = QGAnimatedImageBufferManager.m; path = iOS/QGVAPlayer/QGVAPlayer/Classes/Controllers/QGAnimatedImageBufferManager.m; sourceTree = ""; }; + 3D41F48683FCC1EDA89D903FF0965373 /* OSSRestoreObjectResult.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = OSSRestoreObjectResult.m; path = AliyunOSSSDK/OSSRestoreObjectResult.m; sourceTree = ""; }; + 3D53F42BFA6BF31AD142C5117BB2CD10 /* QCloudAuthentationV4Creator.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = QCloudAuthentationV4Creator.h; path = QCloudCore/Classes/Base/QCloudClientBase/Authentation/QCloudAuthentationV4Creator.h; sourceTree = ""; }; + 3D6F7385C05D83E3F9FF3CC073E76B8D /* QCloudCredential.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = QCloudCredential.m; path = QCloudCore/Classes/Base/QCloudClientBase/Authentation/QCloudCredential.m; sourceTree = ""; }; + 3DDCB02354376548FCA283EA4CA38124 /* mz_strm_split.c */ = {isa = PBXFileReference; includeInIndex = 1; name = mz_strm_split.c; path = SSZipArchive/minizip/mz_strm_split.c; sourceTree = ""; }; 3E3132179E4867E62E968B90A02AF64C /* TUIConversationListController.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = TUIConversationListController.m; sourceTree = ""; }; - 3E4B236E0E1156C523241EA7587DF41C /* LLFilterTextFieldModel.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = LLFilterTextFieldModel.m; path = LLDebugTool/Core/Others/CommonUI/View/FilterView/LLFilterTextFieldModel.m; sourceTree = ""; }; - 3E5A7E767E348F97E272E96D9435E56D /* QGMP4HWDFileInfo.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = QGMP4HWDFileInfo.h; path = iOS/QGVAPlayer/QGVAPlayer/Classes/Models/QGMP4HWDFileInfo.h; sourceTree = ""; }; - 3E5EFA07237AA26A316503568F4C829A /* UIImage+GIF.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "UIImage+GIF.h"; path = "SDWebImage/Core/UIImage+GIF.h"; sourceTree = ""; }; + 3E4CE45B35D7D5B5FDBEE63DA76A5C2B /* MQTTSSLSecurityPolicy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = MQTTSSLSecurityPolicy.m; path = MQTTClient/MQTTClient/MQTTSSLSecurityPolicy.m; sourceTree = ""; }; + 3E4E353A84CE19B95DDD68C7CA1BD511 /* LLLogHelper.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = LLLogHelper.h; path = LLDebugTool/Core/Component/Log/Function/LLLogHelper.h; sourceTree = ""; }; + 3E50F3C1212023FC910409AE15820C07 /* QCloudNetResponse.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = QCloudNetResponse.m; path = QCloudCore/Classes/Base/QCloudClientBase/Request/QCloudNetResponse.m; sourceTree = ""; }; + 3E588B994E24E929C3ADFD2384AF7EE0 /* LLFunctionWindow.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = LLFunctionWindow.m; path = LLDebugTool/Core/Others/Component/Function/UserInterface/LLFunctionWindow.m; sourceTree = ""; }; 3E6EE10810E6442739526F9C8EECEB34 /* TIMCommon-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "TIMCommon-dummy.m"; sourceTree = ""; }; - 3E716E52FD1B70E27F8D13FF9DE24B69 /* NSString+RACKeyPathUtilities.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "NSString+RACKeyPathUtilities.m"; path = "ReactiveObjC/NSString+RACKeyPathUtilities.m"; sourceTree = ""; }; - 3E78254046E55473DBFA5F1736E256ED /* JXCategoryIndicatorParamsModel.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = JXCategoryIndicatorParamsModel.m; path = Sources/Common/JXCategoryIndicatorParamsModel.m; sourceTree = ""; }; + 3E857A504F04C7C10AEC3565A2EF8736 /* YBIBAuxiliaryViewHandler.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = YBIBAuxiliaryViewHandler.m; path = YBImageBrowser/AuxiliaryView/YBIBAuxiliaryViewHandler.m; sourceTree = ""; }; 3E862A46EBB0A2B61CF942F373DB8E7E /* TUIChat_Minimalist.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = TUIChat_Minimalist.h; sourceTree = ""; }; + 3E87DB6ACFF482D7B2365EFA82074E9C /* TZPhotoPickerController.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = TZPhotoPickerController.h; path = TZImagePickerController/TZImagePickerController/TZPhotoPickerController.h; sourceTree = ""; }; + 3E8B4B231A3F303B1FE0DC0673804179 /* SDImageCachesManagerOperation.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDImageCachesManagerOperation.h; path = SDWebImage/Private/SDImageCachesManagerOperation.h; sourceTree = ""; }; 3E8C9936364E090EC4037ED3F5F40990 /* TUIBaseMessageControllerDelegate.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = TUIBaseMessageControllerDelegate.h; sourceTree = ""; }; 3EA2047A997EED2FC02DEB89ADDF3379 /* TUITextReplyQuoteView_Minimalist.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = TUITextReplyQuoteView_Minimalist.h; sourceTree = ""; }; - 3EA6D898EDE093F327BE43FE2CAEC65E /* JXCategoryIndicatorView.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = JXCategoryIndicatorView.h; path = Sources/Indicator/JXCategoryIndicatorView.h; sourceTree = ""; }; - 3EB054E887D05E31BDE825726592B763 /* bit_writer_utils.c */ = {isa = PBXFileReference; includeInIndex = 1; name = bit_writer_utils.c; path = src/utils/bit_writer_utils.c; sourceTree = ""; }; 3EB478F8C6F7755BB50F9863DB5B5231 /* TUIBaseChatViewController.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = TUIBaseChatViewController.h; sourceTree = ""; }; 3EB6806CDE099CA882C42A8D9F13365C /* TUIMediaCollectionCell_Minimalist.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = TUIMediaCollectionCell_Minimalist.h; sourceTree = ""; }; - 3EC6AEFDC235E429CBB65ADDA22008C2 /* LLEntryBigTitleView.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = LLEntryBigTitleView.m; path = LLDebugTool/Core/Others/CommonUI/Window/EntryWindow/LLEntryBigTitleView.m; sourceTree = ""; }; + 3EBCAA712AC9DD6F814BA94244BEA3AC /* YBIBPhotoAlbumManager.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = YBIBPhotoAlbumManager.m; path = YBImageBrowser/Helper/YBIBPhotoAlbumManager.m; sourceTree = ""; }; + 3EC3B519AC23B98923D9A30087556A44 /* IQTextView.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = IQTextView.m; path = IQKeyboardManager/IQTextView/IQTextView.m; sourceTree = ""; }; 3EE5F4CBCDAA09ACB04423969186AFDC /* TUIEvaluationCell_Minimalist.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = TUIEvaluationCell_Minimalist.h; sourceTree = ""; }; 3EE8008F97A8FAE3D61F96263684D669 /* TUIVideoMessageCell_Minimalist.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = TUIVideoMessageCell_Minimalist.h; sourceTree = ""; }; - 3F45C422560606353F0A1EE06FFBB6AB /* YYTextTransaction.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = YYTextTransaction.m; path = YYText/Utility/YYTextTransaction.m; sourceTree = ""; }; - 3F5EB3188F34F43EB488665FA38106AC /* filters_msa.c */ = {isa = PBXFileReference; includeInIndex = 1; name = filters_msa.c; path = src/dsp/filters_msa.c; sourceTree = ""; }; - 3F77304E3B0ED66758F7F561D432369E /* LLWindowManager+WidgetBorder.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "LLWindowManager+WidgetBorder.h"; path = "LLDebugTool/Core/Component/WidgetBorder/UserInterface/LLWindowManager+WidgetBorder.h"; sourceTree = ""; }; - 3F7A1528D4F0591CC5C105BAA48929F8 /* SVGAAudioLayer.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SVGAAudioLayer.m; path = Source/SVGAAudioLayer.m; sourceTree = ""; }; + 3EE8824ECC4CC90D5F87D9686AA62D9C /* NSArray+LL_Utils.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "NSArray+LL_Utils.h"; path = "LLDebugTool/Core/Others/Category/NSArray/NSArray+LL_Utils.h"; sourceTree = ""; }; + 3EF1087DC4E07D930E9F64123948E480 /* mz_strm_zlib.c */ = {isa = PBXFileReference; includeInIndex = 1; name = mz_strm_zlib.c; path = SSZipArchive/minizip/mz_strm_zlib.c; sourceTree = ""; }; + 3EF9852A5A98D3131B14E29BB416C491 /* MQTTInMemoryPersistence.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = MQTTInMemoryPersistence.m; path = MQTTClient/MQTTClient/MQTTInMemoryPersistence.m; sourceTree = ""; }; + 3EFB5D80BCEF79FD344A2A41703512CD /* SVGAAudioEntity.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SVGAAudioEntity.m; path = Source/SVGAAudioEntity.m; sourceTree = ""; }; + 3F14C2DF14D0E3CC5631975A85551119 /* JXCategoryImageView.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = JXCategoryImageView.m; path = Sources/Image/JXCategoryImageView.m; sourceTree = ""; }; + 3F1BA4BA88EB71B223562EEACCDBFE05 /* LLHierarchyHelper.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = LLHierarchyHelper.h; path = LLDebugTool/Core/Component/Hierarchy/Function/LLHierarchyHelper.h; sourceTree = ""; }; + 3F228046BA3DB3BF92D807FF46D06083 /* QCloudCOSXMLService+Configuration.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "QCloudCOSXMLService+Configuration.m"; path = "QCloudCOSXML/Classes/Base/QCloudCOSXMLService+Configuration.m"; sourceTree = ""; }; + 3F38A2256A603F22218784B900169A70 /* LLNetworkFilterViewController.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = LLNetworkFilterViewController.m; path = LLDebugTool/Core/Component/Network/UserInterface/LLNetworkFilterViewController.m; sourceTree = ""; }; + 3F39009C47540616A374AD859EAC041F /* MQTTSSLSecurityPolicyTransport.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = MQTTSSLSecurityPolicyTransport.h; path = MQTTClient/MQTTClient/MQTTSSLSecurityPolicyTransport.h; sourceTree = ""; }; + 3F4A516A9355EAA944CA1793EC6D4205 /* ForegroundReconnection.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = ForegroundReconnection.m; path = MQTTClient/MQTTClient/ForegroundReconnection.m; sourceTree = ""; }; + 3F53B9667F1CFB1CC3C6E326A1E115A4 /* QCloudCustomSession.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = QCloudCustomSession.m; path = QCloudCore/Classes/Base/CustomLoader/QCloudCustomSession.m; sourceTree = ""; }; + 3F5ACF065BB91F5338720FFACC00E1EB /* BRPickerView-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "BRPickerView-umbrella.h"; sourceTree = ""; }; 3F87BDB8E808A82A00B25EDB2E327F87 /* TUIMessageReadViewController.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = TUIMessageReadViewController.m; sourceTree = ""; }; - 3F8D829D41253554A64C59CFD33906F3 /* crypt.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = crypt.h; path = Zip/minizip/include/crypt.h; sourceTree = ""; }; - 3F9064E489C7E7B3860786D3B0B5F4C9 /* RACEmptySignal.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = RACEmptySignal.m; path = ReactiveObjC/RACEmptySignal.m; sourceTree = ""; }; 3F9FFCC87BF7E40DC2E87253414B2BE8 /* TUILinkCell.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = TUILinkCell.m; sourceTree = ""; }; - 3F9FFFF7EC51D7F650C770A05053DAC6 /* JXCategoryView.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = JXCategoryView.release.xcconfig; sourceTree = ""; }; - 3FC284B7F615BD01D66AA71855552B9C /* LLEntryWindow.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = LLEntryWindow.h; path = LLDebugTool/Core/Others/CommonUI/Window/EntryWindow/LLEntryWindow.h; sourceTree = ""; }; + 3FA7B1A5443DB4247116DF057334E34E /* SDImageGraphics.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDImageGraphics.m; path = SDWebImage/Core/SDImageGraphics.m; sourceTree = ""; }; + 3FB04540F536CE9A17AEAFC02540303E /* SDDisplayLink.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDDisplayLink.m; path = SDWebImage/Private/SDDisplayLink.m; sourceTree = ""; }; + 3FB7B517F1494290323D2B25911FB805 /* LLScreenshotComponent.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = LLScreenshotComponent.m; path = LLDebugTool/Core/Component/Screenshot/LLScreenshotComponent.m; sourceTree = ""; }; + 3FB7CC38CC4EC713F738E35D48A74E91 /* QCloudSignature.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = QCloudSignature.h; path = QCloudCore/Classes/Base/QCloudClientBase/Authentation/QCloudSignature.h; sourceTree = ""; }; + 3FE371DA2A6EFDB16C2401A747C6C1B9 /* JXCategoryIndicatorDotLineView.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = JXCategoryIndicatorDotLineView.m; path = Sources/Indicator/IndicatorViews/JXCategoryIndicatorDotLineView.m; sourceTree = ""; }; 3FF168039C7F53A9CF459756C932BB7F /* TUIFoldConversationListDataProvider_Minimalist.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = TUIFoldConversationListDataProvider_Minimalist.m; sourceTree = ""; }; - 40186D6864EFAF2EA4DF9E988AE52E98 /* LLWindowManager+WidgetBorder.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "LLWindowManager+WidgetBorder.m"; path = "LLDebugTool/Core/Component/WidgetBorder/UserInterface/LLWindowManager+WidgetBorder.m"; sourceTree = ""; }; - 4054A82DBB97406AE6930F5DDF337D3D /* RACUnit.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = RACUnit.h; path = ReactiveObjC/RACUnit.h; sourceTree = ""; }; - 405626BC91F97DC3F00DE8BBC0646BEE /* NSString+AvoidCrash.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "NSString+AvoidCrash.m"; path = "AvoidCrash/NSString+AvoidCrash.m"; sourceTree = ""; }; - 406FA81F194DE7165BAE5048697FDFCE /* WechatOpenSDK-XCFramework.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "WechatOpenSDK-XCFramework.debug.xcconfig"; sourceTree = ""; }; - 408670745C8873E55EC5F55520BA2000 /* SDCycleScrollView.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = SDCycleScrollView.debug.xcconfig; sourceTree = ""; }; - 40A4AB5FDB162AD7D81253D8AEE885D6 /* RACValueTransformer.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = RACValueTransformer.m; path = ReactiveObjC/RACValueTransformer.m; sourceTree = ""; }; - 40B72C4126635C522B6FF11FD30432C3 /* UIImagePickerController+RACSignalSupport.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "UIImagePickerController+RACSignalSupport.h"; path = "ReactiveObjC/UIImagePickerController+RACSignalSupport.h"; sourceTree = ""; }; - 40CDCF0A855C2AE7E071E7C592346090 /* CLLocation+LL_Location.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "CLLocation+LL_Location.m"; path = "LLDebugTool/Core/Component/Location/Function/CLLocation/CLLocation+LL_Location.m"; sourceTree = ""; }; + 3FFCAB28BFF424598BABBC33294D2C27 /* QCloudMainBundle.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = QCloudMainBundle.m; path = QCloudCore/Classes/Base/QCloudBundle/QCloudMainBundle.m; sourceTree = ""; }; + 4004B7488B679ED2B729FAA9A0EDA5DF /* GPBArray.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = GPBArray.m; path = objectivec/GPBArray.m; sourceTree = ""; }; + 400574FFCC52BAC3027118E7DBA6D9D3 /* OSSGetSymlinkRequest.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = OSSGetSymlinkRequest.h; path = AliyunOSSSDK/OSSGetSymlinkRequest.h; sourceTree = ""; }; + 40062F33F40BB0D1FDF395F715E3092C /* NSMutableAttributedString+AvoidCrash.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "NSMutableAttributedString+AvoidCrash.h"; path = "AvoidCrash/NSMutableAttributedString+AvoidCrash.h"; sourceTree = ""; }; + 40A1A43CA22FAF6453F1BFE43DCE0C9F /* QCloudListPartsResult.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = QCloudListPartsResult.m; path = QCloudCOSXML/Classes/Transfer/model/QCloudListPartsResult.m; sourceTree = ""; }; 40DE24D75001778BCF5E78BEFD743E56 /* TUIMediaView_Minimalist.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = TUIMediaView_Minimalist.h; sourceTree = ""; }; - 40F75BB15FB44DEB1E68FEB6BCEBD91F /* yuv_mips_dsp_r2.c */ = {isa = PBXFileReference; includeInIndex = 1; name = yuv_mips_dsp_r2.c; path = src/dsp/yuv_mips_dsp_r2.c; sourceTree = ""; }; - 41017787FE8316E19321CA326C97E62F /* LLScreenshotSelectorModel.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = LLScreenshotSelectorModel.h; path = LLDebugTool/Core/Component/Screenshot/UserInterface/LLScreenshotSelectorModel.h; sourceTree = ""; }; - 4108B6E6AA41AC48D0C1A1D2348886D2 /* AgoraLipSyncExtension.xcframework */ = {isa = PBXFileReference; includeInIndex = 1; path = AgoraLipSyncExtension.xcframework; sourceTree = ""; }; - 413240E290CD078A53FFBB7B9F42AC74 /* UIKit+AFNetworking.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "UIKit+AFNetworking.h"; path = "UIKit+AFNetworking/UIKit+AFNetworking.h"; sourceTree = ""; }; - 415EDC4F9C24FB1219CE8918D360F58C /* MQTTInMemoryPersistence.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = MQTTInMemoryPersistence.h; path = MQTTClient/MQTTClient/MQTTInMemoryPersistence.h; sourceTree = ""; }; - 417112912F5D066486D4EF451CDF125E /* GPBArray.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = GPBArray.m; path = objectivec/GPBArray.m; sourceTree = ""; }; - 4184DCBB71B713497DD98B62D1032660 /* bit_writer_utils.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = bit_writer_utils.h; path = src/utils/bit_writer_utils.h; sourceTree = ""; }; - 4193A35FC3320885BA47232C75963539 /* LLCrashDetailViewController.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = LLCrashDetailViewController.h; path = LLDebugTool/Core/Component/Crash/UserInterface/LLCrashDetailViewController.h; sourceTree = ""; }; + 40F20D87AA3C8CE9A0E18052A6DC18E7 /* _YYWebImageSetter.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = _YYWebImageSetter.m; path = YYWebImage/Categories/_YYWebImageSetter.m; sourceTree = ""; }; + 410044B067F7DD4A01C05494625ECDF2 /* upsampling_sse41.c */ = {isa = PBXFileReference; includeInIndex = 1; name = upsampling_sse41.c; path = src/dsp/upsampling_sse41.c; sourceTree = ""; }; + 411A5B0C12E31DC1B0A4913E176C3514 /* QGAnimatedImageDecodeManager.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = QGAnimatedImageDecodeManager.h; path = iOS/QGVAPlayer/QGVAPlayer/Classes/Controllers/QGAnimatedImageDecodeManager.h; sourceTree = ""; }; + 4132B15C9DAEF46D37E2C2A2CDC99A07 /* JXCategoryIndicatorView.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = JXCategoryIndicatorView.h; path = Sources/Indicator/JXCategoryIndicatorView.h; sourceTree = ""; }; + 4138A87F260183784A34F09B09809E36 /* OSSCancellationTokenRegistration.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = OSSCancellationTokenRegistration.h; path = AliyunOSSSDK/OSSTask/OSSCancellationTokenRegistration.h; sourceTree = ""; }; + 417A37FD0F881B7B19B3D9D3CDCD19D6 /* YBIBScreenRotationHandler.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = YBIBScreenRotationHandler.h; path = YBImageBrowser/Base/YBIBScreenRotationHandler.h; sourceTree = ""; }; + 418D6C32727990782230828C49D7AF0A /* MQTTCFSocketEncoder.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = MQTTCFSocketEncoder.m; path = MQTTClient/MQTTClient/MQTTCFSocketEncoder.m; sourceTree = ""; }; + 41A52D5D394DB0AC8B4F045B594ED41B /* PrivacyInfo.xcprivacy */ = {isa = PBXFileReference; includeInIndex = 1; name = PrivacyInfo.xcprivacy; path = Sources/PrivacyInfo.xcprivacy; sourceTree = ""; }; + 41ABE376D03A65F97D42923B7751D41B /* YYTextDebugOption.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = YYTextDebugOption.h; path = YYText/Component/YYTextDebugOption.h; sourceTree = ""; }; + 41BF350BB7AE4DD9930855E4CB7384A5 /* LLFilterFilePickerView.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = LLFilterFilePickerView.h; path = LLDebugTool/Core/Others/CommonUI/View/FilterView/LLFilterFilePickerView.h; sourceTree = ""; }; 41CAE80F9FEBA3C9CD0CC1B3A287586C /* TUIOrderCell.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = TUIOrderCell.h; sourceTree = ""; }; - 41D1E4E76E5007958C60B21846EB3CD0 /* YYFrameImage.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = YYFrameImage.h; path = YYImage/YYFrameImage.h; sourceTree = ""; }; - 41E1777D368E8B68ADAC7BFFAB3222C4 /* GPBStruct.pbobjc.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = GPBStruct.pbobjc.h; path = objectivec/GPBStruct.pbobjc.h; sourceTree = ""; }; - 422005268305760033704361EE21208D /* LLLogComponent.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = LLLogComponent.m; path = LLDebugTool/Core/Component/Log/LLLogComponent.m; sourceTree = ""; }; + 41D0B4C90B70DFCDBB0DA39579E7BE8E /* LLEditTableViewController.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = LLEditTableViewController.m; path = LLDebugTool/Core/Others/CommonUI/ViewController/EditTableViewController/LLEditTableViewController.m; sourceTree = ""; }; + 41E17BB7482527F1150B0125BDE89249 /* AFNetworkActivityIndicatorManager.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = AFNetworkActivityIndicatorManager.m; path = "UIKit+AFNetworking/AFNetworkActivityIndicatorManager.m"; sourceTree = ""; }; + 41E51DB94A6FC8A936BBD0B77CE55ED9 /* alpha_processing_mips_dsp_r2.c */ = {isa = PBXFileReference; includeInIndex = 1; name = alpha_processing_mips_dsp_r2.c; path = src/dsp/alpha_processing_mips_dsp_r2.c; sourceTree = ""; }; + 41F540009AA9DAF3CAE32CFADA4A5792 /* NSDictionary+AvoidCrash.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "NSDictionary+AvoidCrash.h"; path = "AvoidCrash/NSDictionary+AvoidCrash.h"; sourceTree = ""; }; 422577C147AB7CB42594B3620AC0E0E5 /* NSTimer+TUISafe.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "NSTimer+TUISafe.h"; sourceTree = ""; }; + 4229A484FA4CC3658F4BD425661DB4F2 /* GPBSourceContext.pbobjc.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = GPBSourceContext.pbobjc.m; path = objectivec/GPBSourceContext.pbobjc.m; sourceTree = ""; }; 423A0B9A3E18AC560EF8F42EDD8F1E0D /* TUIChatConfig.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = TUIChatConfig.m; sourceTree = ""; }; - 42470DC08A578CD4DB5502A1520820F6 /* SDInternalMacros.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDInternalMacros.h; path = SDWebImage/Private/SDInternalMacros.h; sourceTree = ""; }; - 424BB3666066A1D28E7D5C0145146C1C /* SDWebImageDownloaderDecryptor.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDWebImageDownloaderDecryptor.m; path = SDWebImage/Core/SDWebImageDownloaderDecryptor.m; sourceTree = ""; }; 4251EBFE894C9B59DEFEB487B9FD015E /* TUIChatConversationModel.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = TUIChatConversationModel.h; sourceTree = ""; }; - 42560742032C8BF735E3B934F5D39D26 /* OSSGetObjectACLResult.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = OSSGetObjectACLResult.m; path = AliyunOSSSDK/OSSGetObjectACLResult.m; sourceTree = ""; }; + 4258F21AB9C6E0D317E647FAAF476C5E /* ioapi.c */ = {isa = PBXFileReference; includeInIndex = 1; name = ioapi.c; path = Zip/minizip/ioapi.c; sourceTree = ""; }; + 425F58D75A337964475D8BDD83ABD04D /* SDAsyncBlockOperation.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDAsyncBlockOperation.m; path = SDWebImage/Private/SDAsyncBlockOperation.m; sourceTree = ""; }; + 426111311C78A02D520BA4AECF277B28 /* UIImage+QCloudBundle.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "UIImage+QCloudBundle.h"; path = "QCloudCore/Classes/Base/QCloudBundle/UIImage+QCloudBundle.h"; sourceTree = ""; }; + 427488FBC941453A919AEC0ACBFF10DF /* RACScheduler+Private.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "RACScheduler+Private.h"; path = "ReactiveObjC/RACScheduler+Private.h"; sourceTree = ""; }; + 427D6B6141C02621647A5630C27D724E /* QCloudDomain.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = QCloudDomain.h; path = QCloudCore/Classes/Base/QCLOUDRestNet/DNSCache/QCloudDomain.h; sourceTree = ""; }; + 42821BF616C6828D2C8981A83A92325B /* UIDatePicker+RACSignalSupport.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "UIDatePicker+RACSignalSupport.m"; path = "ReactiveObjC/UIDatePicker+RACSignalSupport.m"; sourceTree = ""; }; 429C498FC140988AC06E1E425259B971 /* TUIEmojiMeditorProtocolProvider.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = TUIEmojiMeditorProtocolProvider.h; sourceTree = ""; }; - 42AC661BE5571A5ABC9A381FB2821036 /* OSSLog.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = OSSLog.h; path = AliyunOSSSDK/OSSLog.h; sourceTree = ""; }; - 42DB0A4D5793C73C847285C20CA1AEDF /* LLAppInfoComponent.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = LLAppInfoComponent.h; path = LLDebugTool/Core/Component/AppInfo/LLAppInfoComponent.h; sourceTree = ""; }; - 431702E6F18B8C98A9A6B60A43B4E9E1 /* IQKeyboardReturnKeyHandler.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = IQKeyboardReturnKeyHandler.h; path = IQKeyboardManager/IQKeyboardReturnKeyHandler.h; sourceTree = ""; }; - 431B99C72F709AAC251DD838825FC01C /* dsp.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = dsp.h; path = src/dsp/dsp.h; sourceTree = ""; }; - 431F8736C60B5E8242F2C9742342DE8C /* QGBaseDFileInfo.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = QGBaseDFileInfo.h; path = iOS/QGVAPlayer/QGVAPlayer/Classes/Models/QGBaseDFileInfo.h; sourceTree = ""; }; - 43269D978DA1541584B10056E45D0F43 /* SDImageHEICCoder.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDImageHEICCoder.h; path = SDWebImage/Core/SDImageHEICCoder.h; sourceTree = ""; }; - 4330020F4C521947AF26520C3C36D5E3 /* LLFilterTextFieldModel.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = LLFilterTextFieldModel.h; path = LLDebugTool/Core/Others/CommonUI/View/FilterView/LLFilterTextFieldModel.h; sourceTree = ""; }; + 42B34A9453AFC086AD9C70B005091148 /* AgoraVideoSegmentationExtension.xcframework */ = {isa = PBXFileReference; includeInIndex = 1; path = AgoraVideoSegmentationExtension.xcframework; sourceTree = ""; }; + 42C728A59C0AE226E37593713492404B /* RACMulticastConnection.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = RACMulticastConnection.m; path = ReactiveObjC/RACMulticastConnection.m; sourceTree = ""; }; + 42DC58EB8CC42ADC838C26B96E59BB14 /* SDImageCache.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDImageCache.m; path = SDWebImage/Core/SDImageCache.m; sourceTree = ""; }; + 42DF17540226A843A3FBDBDD11A33387 /* QCloudCLSLoggerOutput.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = QCloudCLSLoggerOutput.m; path = QCloudCore/Classes/Base/Logger/QCloudCLSLoggerOutput.m; sourceTree = ""; }; + 42E9299398EEF93DC318C686625437D5 /* QCloudBundle.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = QCloudBundle.h; path = QCloudCore/Classes/Base/QCloudBundle/QCloudBundle.h; sourceTree = ""; }; + 433A5FFCBDCB1AB1C936D3774520D3ED /* QCloudMultipartUploadInitiator.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = QCloudMultipartUploadInitiator.h; path = QCloudCOSXML/Classes/Transfer/model/QCloudMultipartUploadInitiator.h; sourceTree = ""; }; + 434F24A047F6F5AD0B4311E10778C36C /* RACDisposable.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = RACDisposable.h; path = ReactiveObjC/RACDisposable.h; sourceTree = ""; }; 435A259AFFAA7D677132640D57782A61 /* TUIJoinGroupMessageCell.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = TUIJoinGroupMessageCell.h; sourceTree = ""; }; - 4364DEC7F8E45E2544D5183FAF389978 /* LLWindowManager+Screenshot.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "LLWindowManager+Screenshot.h"; path = "LLDebugTool/Core/Component/Screenshot/UserInterface/LLWindowManager+Screenshot.h"; sourceTree = ""; }; - 43A17D602225CFF13C90AB1B4E001E86 /* SVGAPlayer.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SVGAPlayer.h; path = Source/SVGAPlayer.h; sourceTree = ""; }; + 4390ECF02B6670C58E8A831A9A51D222 /* animi.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = animi.h; path = src/mux/animi.h; sourceTree = ""; }; + 4393C282FB84A0228EA11E3635D4ADFE /* rescaler_msa.c */ = {isa = PBXFileReference; includeInIndex = 1; name = rescaler_msa.c; path = src/dsp/rescaler_msa.c; sourceTree = ""; }; 43BEB7914C053F5ED176D1E988A1B63A /* TUIInputMoreCell.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = TUIInputMoreCell.h; sourceTree = ""; }; - 43C28D551C16612543B216EC60A29660 /* YYModel-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "YYModel-umbrella.h"; sourceTree = ""; }; - 43C737B86D6630A0E0854C7FEAE59957 /* YBIBSheetView.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = YBIBSheetView.h; path = YBImageBrowser/ToolView/YBIBSheetView.h; sourceTree = ""; }; - 43D1E3261820DB9A9433A6EB37B8265B /* LocalPitchView.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = LocalPitchView.swift; path = AgoraLyricsScore/Class/Scoring/View/LocalPitchView.swift; sourceTree = ""; }; + 43C3CFE35EC68B8945DD220F8DC627A9 /* JXCategoryCollectionView.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = JXCategoryCollectionView.h; path = Sources/Common/JXCategoryCollectionView.h; sourceTree = ""; }; 43DF364C2CA875E492429347063A32C3 /* TUIConversationListController_Minimalist.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = TUIConversationListController_Minimalist.m; sourceTree = ""; }; - 43E264E971DB51E34D30086005AF908E /* AFHTTPSessionManager.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = AFHTTPSessionManager.h; path = AFNetworking/AFHTTPSessionManager.h; sourceTree = ""; }; - 440649D44500BEFE35F8447CA3A6BB3A /* NSObject+RACLifting.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "NSObject+RACLifting.m"; path = "ReactiveObjC/NSObject+RACLifting.m"; sourceTree = ""; }; - 441C7D6A46B3AA228483B6520C2081C8 /* UIView+WebCacheOperation.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "UIView+WebCacheOperation.m"; path = "SDWebImage/Core/UIView+WebCacheOperation.m"; sourceTree = ""; }; - 442DC7515F4A10B07B14F67C8A1B0DA7 /* LLHtmlComponent.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = LLHtmlComponent.m; path = LLDebugTool/Core/Component/Html/LLHtmlComponent.m; sourceTree = ""; }; + 43E4B10A769DF79034D79FD068C23A59 /* LineScoreRecorder.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = LineScoreRecorder.swift; path = AgoraLyricsScore/Class/Other/LineScoreRecorder.swift; sourceTree = ""; }; + 43F47529FDB6F50A2E5C8527B27CBE63 /* GPBDictionary.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = GPBDictionary.h; path = objectivec/GPBDictionary.h; sourceTree = ""; }; 443862055AB1A2B22A077E269E21FCAC /* TUIConversationService_Minimalist.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = TUIConversationService_Minimalist.h; sourceTree = ""; }; - 444739377ECBE2783ED8E2D08F35EFFD /* predictor_enc.c */ = {isa = PBXFileReference; includeInIndex = 1; name = predictor_enc.c; path = src/enc/predictor_enc.c; sourceTree = ""; }; - 44479834C43DD04BF6BB9017DEC9DA32 /* UITextField+YYAdd.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "UITextField+YYAdd.h"; path = "YYCategories/UIKit/UITextField+YYAdd.h"; sourceTree = ""; }; 4450B377B7446FB0491757E7C25B5BF0 /* TUIChatExtensionObserver_Minimalist.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = TUIChatExtensionObserver_Minimalist.m; sourceTree = ""; }; + 44578ABEEBE1F4791F2C0D6AAA913313 /* BRDatePickerView+BR.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "BRDatePickerView+BR.h"; path = "BRPickerView/DatePicker/BRDatePickerView+BR.h"; sourceTree = ""; }; 445A9A7C0F1C7D8B8E5F398DCBC6DE01 /* TUIRepliesDetailViewController_Minimalist.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = TUIRepliesDetailViewController_Minimalist.h; sourceTree = ""; }; - 4479C9CE8CBE5C54A6538FA431D9EE7F /* JXCategoryDotView.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = JXCategoryDotView.m; path = Sources/Dot/JXCategoryDotView.m; sourceTree = ""; }; + 4486B7B66827B72035C9C938A6C2F114 /* JXCategoryNumberCellModel.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = JXCategoryNumberCellModel.m; path = Sources/Number/JXCategoryNumberCellModel.m; sourceTree = ""; }; 4489EEAECC80C21215AC4B5643F5E3D8 /* TUIFaceVerticalView.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = TUIFaceVerticalView.m; sourceTree = ""; }; - 448A21E5AEFB49A97DB05CBD0A18E8F8 /* BRPickerView.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.module; path = BRPickerView.modulemap; sourceTree = ""; }; - 448E2DA9F08232ACEBC665701C58C0FA /* YBIBAnimatedTransition.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = YBIBAnimatedTransition.m; path = YBImageBrowser/Base/YBIBAnimatedTransition.m; sourceTree = ""; }; - 44933FE9E5817D4D9B3F4ED9EEED1BAA /* RACDynamicSignal.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = RACDynamicSignal.m; path = ReactiveObjC/RACDynamicSignal.m; sourceTree = ""; }; - 44ABEF56F2F498C888A0FEC93C707794 /* BRAddressPickerView.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = BRAddressPickerView.m; path = BRPickerView/Deprecated/AddressPickerView/BRAddressPickerView.m; sourceTree = ""; }; - 44D299FD67E11862321D7F710B260C3D /* ScoringMachineEx.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ScoringMachineEx.swift; path = AgoraLyricsScore/Class/Scoring/ScoringMachineEx/ScoringMachineEx.swift; sourceTree = ""; }; - 44D5CF3C4D616174401BEF8CCEECF216 /* GPBTimestamp.pbobjc.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = GPBTimestamp.pbobjc.m; path = objectivec/GPBTimestamp.pbobjc.m; sourceTree = ""; }; - 44DEBECD3D533181312AF5854D8B1593 /* mz_strm_split.c */ = {isa = PBXFileReference; includeInIndex = 1; name = mz_strm_split.c; path = SSZipArchive/minizip/mz_strm_split.c; sourceTree = ""; }; - 44FA33DCAC56187B31EF9632388CC99F /* YBImageBrowser.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = YBImageBrowser.debug.xcconfig; sourceTree = ""; }; + 44A8305BC3D1A52CCB23AA5A1D90D284 /* YYSpriteSheetImage.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = YYSpriteSheetImage.m; path = YYImage/YYSpriteSheetImage.m; sourceTree = ""; }; + 44AE97FCF15E4F9C1D3DA54A92B4B5B1 /* RACReturnSignal.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = RACReturnSignal.h; path = ReactiveObjC/RACReturnSignal.h; sourceTree = ""; }; + 44B04605C171CACC5F44118805A486F3 /* NSAttributedString+AvoidCrash.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "NSAttributedString+AvoidCrash.h"; path = "AvoidCrash/NSAttributedString+AvoidCrash.h"; sourceTree = ""; }; + 44C8CD309D205740AE6E91FC35912EA6 /* JXCategoryTitleImageCell.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = JXCategoryTitleImageCell.m; path = Sources/TitleImage/JXCategoryTitleImageCell.m; sourceTree = ""; }; + 44D7C63266B958AF24384DFB3BF655CF /* LLLocationViewController.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = LLLocationViewController.m; path = LLDebugTool/Core/Component/Location/UserInterface/LLLocationViewController.m; sourceTree = ""; }; + 44DCFC170E392AF48237565BCC2199CA /* RACQueueScheduler.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = RACQueueScheduler.h; path = ReactiveObjC/RACQueueScheduler.h; sourceTree = ""; }; + 44F8EA9ACD259BDEF40C1EB7FC4F78C9 /* config_enc.c */ = {isa = PBXFileReference; includeInIndex = 1; name = config_enc.c; path = src/enc/config_enc.c; sourceTree = ""; }; + 4502D6D8B4E750A45DF10F54D71EF01F /* MQTTProperties.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = MQTTProperties.h; path = MQTTClient/MQTTClient/MQTTProperties.h; sourceTree = ""; }; + 45064926640EDB7B2361D4ABB46D48BD /* MASConstraint.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = MASConstraint.h; path = Masonry/MASConstraint.h; sourceTree = ""; }; + 45073970B3C226FBCA12C136D7F3DB71 /* AliyunOSSiOS-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "AliyunOSSiOS-dummy.m"; sourceTree = ""; }; 451B36F0F04B8637DE43FB12431B05F3 /* TUIVideoReplyQuoteViewData.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = TUIVideoReplyQuoteViewData.h; sourceTree = ""; }; - 4525F69C7EC6EEF866CDDE4285EF7044 /* NSArray+VAPUtil.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "NSArray+VAPUtil.h"; path = "iOS/QGVAPlayer/QGVAPlayer/Classes/Utils/Categorys/NSArray+VAPUtil.h"; sourceTree = ""; }; - 453B168D21923248C66146A95DEB6CE9 /* RACEXTKeyPathCoding.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = RACEXTKeyPathCoding.h; path = ReactiveObjC/extobjc/RACEXTKeyPathCoding.h; sourceTree = ""; }; + 4545EA2AC0F863D487A9A624FC563DB0 /* sharpyuv_cpu.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = sharpyuv_cpu.h; path = sharpyuv/sharpyuv_cpu.h; sourceTree = ""; }; 454F9DFDA1065D194C8D1B3C486EF23E /* TUIAttributedLabel.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = TUIAttributedLabel.m; sourceTree = ""; }; - 45528AFC6ED47C8AAB7E9FCBD83BA0E7 /* GPBTimestamp.pbobjc.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = GPBTimestamp.pbobjc.h; path = objectivec/GPBTimestamp.pbobjc.h; sourceTree = ""; }; - 456D577A21B703DFBFB895E645CEC50C /* upsampling_neon.c */ = {isa = PBXFileReference; includeInIndex = 1; name = upsampling_neon.c; path = src/dsp/upsampling_neon.c; sourceTree = ""; }; - 45716665E4EAA0E5DAD3E15292F69C4E /* sharpyuv_csp.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = sharpyuv_csp.h; path = sharpyuv/sharpyuv_csp.h; sourceTree = ""; }; - 45747E992794769A411E7106BAE44257 /* YYWebImageOperation.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = YYWebImageOperation.h; path = YYWebImage/YYWebImageOperation.h; sourceTree = ""; }; - 4589F20EBA71C4A177A12B168241BAB4 /* AFCompatibilityMacros.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = AFCompatibilityMacros.h; path = AFNetworking/AFCompatibilityMacros.h; sourceTree = ""; }; - 45A85B8E3D1E373866D8BA83364066BE /* OSSCompat.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = OSSCompat.m; path = AliyunOSSSDK/OSSCompat.m; sourceTree = ""; }; - 45AC580ACA8F314CF2C9B9C00815D6EA /* AFHTTPSessionManager.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = AFHTTPSessionManager.m; path = AFNetworking/AFHTTPSessionManager.m; sourceTree = ""; }; - 45B70AB8F45A69F6D35599E9C3C79C6E /* syntax_enc.c */ = {isa = PBXFileReference; includeInIndex = 1; name = syntax_enc.c; path = src/enc/syntax_enc.c; sourceTree = ""; }; - 45C1319414DA0887EDB55A55683C9ABE /* LLWindowManager+Hierarchy.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "LLWindowManager+Hierarchy.h"; path = "LLDebugTool/Core/Component/Hierarchy/UserInterface/LLWindowManager+Hierarchy.h"; sourceTree = ""; }; - 45C27F901CBB3B6858D4AE61D68E605E /* WechatOpenSDK-XCFramework-xcframeworks.sh */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.script.sh; path = "WechatOpenSDK-XCFramework-xcframeworks.sh"; sourceTree = ""; }; - 45DD5331A0A48C24E35AC07CF0AF4A7D /* LLDebugTool.bundle */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = "wrapper.plug-in"; name = LLDebugTool.bundle; path = LLDebugTool/Core/Others/Resource/LLDebugTool.bundle; sourceTree = ""; }; + 45587A81AB0615660244646D82449E82 /* YBIBContainerView.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = YBIBContainerView.h; path = YBImageBrowser/Base/YBIBContainerView.h; sourceTree = ""; }; + 455D068D4EB4731CA40B25B1821380D2 /* QCloudRequestData+COSXMLVersion.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "QCloudRequestData+COSXMLVersion.m"; path = "QCloudCOSXML/Classes/Base/QCloudRequestData+COSXMLVersion.m"; sourceTree = ""; }; + 45737676658AB1206146138DF7F2A0FF /* MJRefresh-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "MJRefresh-umbrella.h"; sourceTree = ""; }; + 45F6156BAFF6E3C11F8C266239D12A47 /* NSObject+LL_Hierarchy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "NSObject+LL_Hierarchy.m"; path = "LLDebugTool/Core/Component/Hierarchy/Function/NSObject+LL_Hierarchy.m"; sourceTree = ""; }; + 45F9170B8BFDE56BEA0643989DB74548 /* LLFilterOtherView.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = LLFilterOtherView.h; path = LLDebugTool/Core/Others/CommonUI/View/FilterView/LLFilterOtherView.h; sourceTree = ""; }; 4611EA05FD8DE6B4D5D0A3CA495CDE90 /* TUIMergeReplyQuoteView_Minimalist.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = TUIMergeReplyQuoteView_Minimalist.m; sourceTree = ""; }; - 4618D65F597A2C7CE70BE332EF5AAA1A /* OSSGetBucketInfoRequest.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = OSSGetBucketInfoRequest.m; path = AliyunOSSSDK/OSSGetBucketInfoRequest.m; sourceTree = ""; }; - 46412452CE6A9C4797694CAA1C11E49E /* SDAsyncBlockOperation.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDAsyncBlockOperation.m; path = SDWebImage/Private/SDAsyncBlockOperation.m; sourceTree = ""; }; - 46559E75F1D464238EF82892A7601C22 /* GPBType.pbobjc.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = GPBType.pbobjc.h; path = objectivec/GPBType.pbobjc.h; sourceTree = ""; }; - 465D9400CBBC458DD7899D83EDE7E415 /* mux_types.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = mux_types.h; path = src/webp/mux_types.h; sourceTree = ""; }; - 465E738838E950321A408C78D73035CA /* FMDB.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.module; path = FMDB.modulemap; sourceTree = ""; }; - 4665AD29BC148D93AD69A7C0D6541D5D /* AFNetworking-Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "AFNetworking-Info.plist"; sourceTree = ""; }; + 463A082C5CE915F6DA5845B14BA399A8 /* Any.pbobjc.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = Any.pbobjc.h; path = objectivec/google/protobuf/Any.pbobjc.h; sourceTree = ""; }; + 464CEA7C113FAB329A4414AE96B55A64 /* AFAutoPurgingImageCache.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = AFAutoPurgingImageCache.h; path = "UIKit+AFNetworking/AFAutoPurgingImageCache.h"; sourceTree = ""; }; + 465917E15105D6EF2BCCE90AF909E953 /* YBIBImageData+Internal.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "YBIBImageData+Internal.h"; path = "YBImageBrowser/Image/YBIBImageData+Internal.h"; sourceTree = ""; }; 4668CDA61453AE45C06B5ED2DB0B0520 /* PrivacyInfo.xcprivacy */ = {isa = PBXFileReference; includeInIndex = 1; name = PrivacyInfo.xcprivacy; path = Resources/PrivacyInfo.xcprivacy; sourceTree = ""; }; - 467428FA1052A78F712E8319CC5186C5 /* SDWebImageWebPCoder.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = SDWebImageWebPCoder.debug.xcconfig; sourceTree = ""; }; - 468E33438D7E12E032EC205710C51A62 /* LLSettingWindow.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = LLSettingWindow.m; path = LLDebugTool/Core/Others/Component/Setting/UserInterface/LLSettingWindow.m; sourceTree = ""; }; + 46692FB12DB27794094D838DF87D563C /* QCloudCore */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; name = QCloudCore; path = QCloudCore.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + 46862E466AB9C3701971CA5F6591D0DC /* GPBWrappers.pbobjc.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = GPBWrappers.pbobjc.h; path = objectivec/GPBWrappers.pbobjc.h; sourceTree = ""; }; + 469100BC47C2243AFF98CA27D2EB409D /* OSSPutObjectTaggingRequest.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = OSSPutObjectTaggingRequest.h; path = AliyunOSSSDK/OSSPutObjectTaggingRequest.h; sourceTree = ""; }; + 4694FA28176755CD70F11DCD81CED0D1 /* NSString+RACSupport.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "NSString+RACSupport.m"; path = "ReactiveObjC/NSString+RACSupport.m"; sourceTree = ""; }; + 46B46CA3BB374944BFE4574523963C47 /* LLSandboxComponent.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = LLSandboxComponent.m; path = LLDebugTool/Core/Component/Sandbox/LLSandboxComponent.m; sourceTree = ""; }; + 46CBF33AC9C4CFFD0BD0574B8080451E /* LLSandboxHtmlPreviewController.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = LLSandboxHtmlPreviewController.m; path = LLDebugTool/Core/Component/Sandbox/UserInterface/LLSandboxHtmlPreviewController.m; sourceTree = ""; }; 46D80C90D21F3263EE737B6A267C24B2 /* TUICaptureVideoPreviewViewController.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = TUICaptureVideoPreviewViewController.m; sourceTree = ""; }; - 46F3FA171D00A665CFFAEE4B37F1D22E /* MQTTCoreDataPersistence.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = MQTTCoreDataPersistence.m; path = MQTTClient/MQTTClient/MQTTCoreDataPersistence.m; sourceTree = ""; }; - 470974CBF212AA33890B313DA7B7DEE3 /* SDWebImage-Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "SDWebImage-Info.plist"; sourceTree = ""; }; - 470C958CEF97EF9DCAEA9EE882D6BF21 /* JXCategoryTitleImageCellModel.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = JXCategoryTitleImageCellModel.h; path = Sources/TitleImage/JXCategoryTitleImageCellModel.h; sourceTree = ""; }; - 47157BC0FAEB8D0BC69F8C03265A065F /* QGAnimatedImageDecodeManager.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = QGAnimatedImageDecodeManager.m; path = iOS/QGVAPlayer/QGVAPlayer/Classes/Controllers/QGAnimatedImageDecodeManager.m; sourceTree = ""; }; + 46E422104473A370B56E1E8DF29ACCE8 /* QCloudBizHTTPRequest+COSXML.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "QCloudBizHTTPRequest+COSXML.m"; path = "QCloudCOSXML/Classes/Base/QCloudBizHTTPRequest+COSXML.m"; sourceTree = ""; }; + 46EB08EC04D8DDD8DE5C65820D7DE3F5 /* zip.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = zip.h; path = Zip/minizip/include/zip.h; sourceTree = ""; }; + 46EC5DEFD0CF52601F82C8C6A0C50D07 /* AgoraAiNoiseSuppressionLLExtension.xcframework */ = {isa = PBXFileReference; includeInIndex = 1; path = AgoraAiNoiseSuppressionLLExtension.xcframework; sourceTree = ""; }; + 46F242023E9A7F0185F551DB249B9B2D /* enc_sse2.c */ = {isa = PBXFileReference; includeInIndex = 1; name = enc_sse2.c; path = src/dsp/enc_sse2.c; sourceTree = ""; }; 47220AC1D156A75328B1EB3A111750D5 /* TUIMergeReplyQuoteView.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = TUIMergeReplyQuoteView.h; sourceTree = ""; }; - 472933F0C6E71E5D30CC84620F95933B /* NSButton+WebCache.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "NSButton+WebCache.h"; path = "SDWebImage/Core/NSButton+WebCache.h"; sourceTree = ""; }; - 473F983F60E23534F5497188C2DD457C /* MJRefreshConst.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = MJRefreshConst.h; path = MJRefresh/MJRefreshConst.h; sourceTree = ""; }; + 47244846055B1984C8720B09D4E682B8 /* YBImageBrowserVideo.bundle */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = "wrapper.plug-in"; name = YBImageBrowserVideo.bundle; path = Video/YBImageBrowserVideo.bundle; sourceTree = ""; }; + 473121754F756FBD831BB36046B34507 /* QGAnimatedImageDecodeManager.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = QGAnimatedImageDecodeManager.m; path = iOS/QGVAPlayer/QGVAPlayer/Classes/Controllers/QGAnimatedImageDecodeManager.m; sourceTree = ""; }; + 4731228CFADB75FA741A9142F8406B22 /* QCloudGetObjectRequest+Custom.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "QCloudGetObjectRequest+Custom.h"; path = "QCloudCOSXML/Classes/Transfer/request/QCloudGetObjectRequest+Custom.h"; sourceTree = ""; }; + 4749025CEF819C1EAA96E665712CB546 /* upsampling_neon.c */ = {isa = PBXFileReference; includeInIndex = 1; name = upsampling_neon.c; path = src/dsp/upsampling_neon.c; sourceTree = ""; }; + 475515E230E6437FDA8F8391F5A38403 /* mz_zip.c */ = {isa = PBXFileReference; includeInIndex = 1; name = mz_zip.c; path = SSZipArchive/minizip/mz_zip.c; sourceTree = ""; }; + 475A73ACB9133C7BF300F5488F21228E /* LyricCell.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = LyricCell.swift; path = AgoraLyricsScore/Class/Lyrics/LyricCell.swift; sourceTree = ""; }; 4762AFD2FAD5267D8DC626739141CA7F /* TUIMergeMessageListController.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = TUIMergeMessageListController.h; sourceTree = ""; }; - 477DDCF4D85C7A14B3C28209F0EAC480 /* rescaler_utils.c */ = {isa = PBXFileReference; includeInIndex = 1; name = rescaler_utils.c; path = src/utils/rescaler_utils.c; sourceTree = ""; }; - 4781464C64215FFAC729655CC585DBE7 /* Protobuf-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "Protobuf-prefix.pch"; sourceTree = ""; }; - 47CB2AD9B30AFF104CD113C9F6BB2472 /* lossless_enc_mips_dsp_r2.c */ = {isa = PBXFileReference; includeInIndex = 1; name = lossless_enc_mips_dsp_r2.c; path = src/dsp/lossless_enc_mips_dsp_r2.c; sourceTree = ""; }; - 47CF136EC922D540479ABE8BCF255DA8 /* SDWebImageCacheSerializer.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDWebImageCacheSerializer.h; path = SDWebImage/Core/SDWebImageCacheSerializer.h; sourceTree = ""; }; - 47DDB66642728D3F979DD86063C87E4B /* SVGAPlayer-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "SVGAPlayer-prefix.pch"; sourceTree = ""; }; + 477D50507EA8EB7B547B4A2E1572DC1F /* OSSXMLDictionary.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = OSSXMLDictionary.m; path = AliyunOSSSDK/OSSXMLDictionary.m; sourceTree = ""; }; + 4783575EFDFA7AF19D0C4E7F85CFD8AF /* SVGA.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SVGA.m; path = Source/SVGA.m; sourceTree = ""; }; + 47A8E8E73773FFA3CBADB473AD8A91AD /* SDImageCodersManager.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDImageCodersManager.h; path = SDWebImage/Core/SDImageCodersManager.h; sourceTree = ""; }; + 47AA2B6BDCF9094B1400FB48698EAE18 /* SDImageWebPCoder.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDImageWebPCoder.m; path = SDWebImageWebPCoder/Classes/SDImageWebPCoder.m; sourceTree = ""; }; + 47E10E0D6778A84F4226B56EA9B3EE54 /* OSSSignerBase.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = OSSSignerBase.m; path = AliyunOSSSDK/Signer/OSSSignerBase.m; sourceTree = ""; }; 47F26FBC921B8530CADA1C0B48729E56 /* OfflinePushExtConfigInfo.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = OfflinePushExtConfigInfo.h; sourceTree = ""; }; - 4806E1164E2700B391CF8990E34B58FC /* SDAnimatedImageView.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDAnimatedImageView.m; path = SDWebImage/Core/SDAnimatedImageView.m; sourceTree = ""; }; + 47F8B1EA9FDC198744CA6B5DBE1EB460 /* QCloudURLSessionTaskData.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = QCloudURLSessionTaskData.h; path = QCloudCore/Classes/Base/QCLOUDRestNet/SessionSupport/QCloudURLSessionTaskData.h; sourceTree = ""; }; + 47F9E07C30F10F1710B40B7BBB8100BE /* lossless_enc_mips32.c */ = {isa = PBXFileReference; includeInIndex = 1; name = lossless_enc_mips32.c; path = src/dsp/lossless_enc_mips32.c; sourceTree = ""; }; + 4806A37ADC8E1AFD2D6602A0D52A54F9 /* mz_strm_buf.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = mz_strm_buf.h; path = SSZipArchive/minizip/mz_strm_buf.h; sourceTree = ""; }; 480843312073783E57924342A1831668 /* TUIConversationConfig.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = TUIConversationConfig.m; sourceTree = ""; }; - 485A12720F358891E9F01B1CA163E2F1 /* SDImageTransformer.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDImageTransformer.m; path = SDWebImage/Core/SDImageTransformer.m; sourceTree = ""; }; - 48916B4071AC3689F512A4A27B2D6CF8 /* MBProgressHUD-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "MBProgressHUD-dummy.m"; sourceTree = ""; }; - 489A29959428F34BCE040C9A062E9157 /* YYText-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "YYText-prefix.pch"; sourceTree = ""; }; - 489D95A5454B6B440EB04C69D5D542BD /* SVGABezierPath.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SVGABezierPath.h; path = Source/SVGABezierPath.h; sourceTree = ""; }; - 48A3E5F0507E66EC1D7CB589FF174650 /* SVGA.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SVGA.m; path = Source/SVGA.m; sourceTree = ""; }; + 483FA220EBE6DE11974FA317C1AE9F3B /* LLMagnifierViewController.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = LLMagnifierViewController.h; path = LLDebugTool/Core/Component/Magnifier/UserInterface/LLMagnifierViewController.h; sourceTree = ""; }; + 4841B1E779CC86B9DCFEEE99A605C413 /* lossless.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = lossless.h; path = src/dsp/lossless.h; sourceTree = ""; }; + 48690F4654CC6797136C23CDB420F510 /* QCloudFileOffsetBody.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = QCloudFileOffsetBody.m; path = QCloudCore/Classes/Base/QCLOUDRestNet/DataForm/QCloudFileOffsetBody.m; sourceTree = ""; }; + 486B3677731399BB8F37EA68AD8802DF /* LLBaseTableViewCell.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = LLBaseTableViewCell.h; path = LLDebugTool/Core/Others/CommonUI/Base/LLBaseTableViewCell.h; sourceTree = ""; }; + 48813970F298EDD5DFAA1DBC2D8CF097 /* LLSubTitleTableViewCell.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = LLSubTitleTableViewCell.h; path = LLDebugTool/Core/Others/CommonUI/View/SubTitleTableViewCell/LLSubTitleTableViewCell.h; sourceTree = ""; }; + 4885493088496B0A9F42E4653BC29910 /* RACCommand.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = RACCommand.m; path = ReactiveObjC/RACCommand.m; sourceTree = ""; }; + 4885DA2AB0FC4B985EDC95880F1CE0BE /* UIBezierPath+YYAdd.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "UIBezierPath+YYAdd.m"; path = "YYCategories/UIKit/UIBezierPath+YYAdd.m"; sourceTree = ""; }; + 4896AFD440B9327E4502FA57CB15D87A /* NSNotificationCenter+RACSupport.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "NSNotificationCenter+RACSupport.m"; path = "ReactiveObjC/NSNotificationCenter+RACSupport.m"; sourceTree = ""; }; + 48ABF582031A3386A3F7AED01D5630E2 /* LLBaseViewController.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = LLBaseViewController.h; path = LLDebugTool/Core/Others/CommonUI/Base/LLBaseViewController.h; sourceTree = ""; }; 48ACF38225AF5129416A1F090F6D3286 /* YYCache */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; name = YYCache; path = YYCache.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - 48AE9D7627E24D90FE62F6F652E514DE /* GPBMessage.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = GPBMessage.h; path = objectivec/GPBMessage.h; sourceTree = ""; }; - 48AF7830E71D577636207496D60CF788 /* MJRefreshFooter.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = MJRefreshFooter.m; path = MJRefresh/Base/MJRefreshFooter.m; sourceTree = ""; }; - 48B2AFC333E6122EEEF8FBCFD6E4DCC5 /* UITableView+YYAdd.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "UITableView+YYAdd.h"; path = "YYCategories/UIKit/UITableView+YYAdd.h"; sourceTree = ""; }; - 48C2340F7BF1F45F70EE1E903B18259C /* OSSServiceSignature.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = OSSServiceSignature.m; path = AliyunOSSSDK/Signer/OSSServiceSignature.m; sourceTree = ""; }; - 48C3BBA70F677407E36DBA2EE896068B /* NSAttributedString+AvoidCrash.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "NSAttributedString+AvoidCrash.h"; path = "AvoidCrash/NSAttributedString+AvoidCrash.h"; sourceTree = ""; }; - 48CADA1527BFF387596A012E48219AFE /* YYCGUtilities.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = YYCGUtilities.h; path = YYCategories/Quartz/YYCGUtilities.h; sourceTree = ""; }; - 48D571BF5420C75BE0AD2C3B1A4F1862 /* SDWebImageCacheSerializer.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDWebImageCacheSerializer.m; path = SDWebImage/Core/SDWebImageCacheSerializer.m; sourceTree = ""; }; - 48E908F60217B7B5344EA813696E9C6B /* NSObject+RACDescription.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "NSObject+RACDescription.m"; path = "ReactiveObjC/NSObject+RACDescription.m"; sourceTree = ""; }; - 48EDE83A052BE4897E236230697A1CCE /* LLComponent.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = LLComponent.m; path = LLDebugTool/Core/Others/Component/LLComponent.m; sourceTree = ""; }; - 492115D79EE235CEF40092B476C19A16 /* MBProgressHUD.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = MBProgressHUD.m; sourceTree = ""; }; - 493FEB8B776299BE5A6F511C3548D524 /* MJRefreshFooter.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = MJRefreshFooter.h; path = MJRefresh/Base/MJRefreshFooter.h; sourceTree = ""; }; + 49165D3F80366D32186A3AAC57E6D8AC /* SDWebImageDownloaderRequestModifier.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDWebImageDownloaderRequestModifier.m; path = SDWebImage/Core/SDWebImageDownloaderRequestModifier.m; sourceTree = ""; }; + 491AC60B9EA27D9A0A73E8B4022CAA04 /* FMDB-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "FMDB-prefix.pch"; sourceTree = ""; }; + 493CC25D5A1C1722BB3C9A944434F6C3 /* UIImage+GIF.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "UIImage+GIF.h"; path = "SDWebImage/Core/UIImage+GIF.h"; sourceTree = ""; }; + 4948440EE0B5687EA9D6EB66838E3B1E /* UIFont+YYAdd.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "UIFont+YYAdd.m"; path = "YYCategories/UIKit/UIFont+YYAdd.m"; sourceTree = ""; }; + 49487E6AF0649F3A2ABFA50CA196A2B6 /* lossless.c */ = {isa = PBXFileReference; includeInIndex = 1; name = lossless.c; path = src/dsp/lossless.c; sourceTree = ""; }; + 494AE1EEC499764B92EB7EE3D53BBD35 /* NSBundle+BRPickerView.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "NSBundle+BRPickerView.m"; path = "BRPickerView/Core/NSBundle+BRPickerView.m"; sourceTree = ""; }; + 4954EA086BF966885872FE25853BA697 /* SDImageAssetManager.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDImageAssetManager.h; path = SDWebImage/Private/SDImageAssetManager.h; sourceTree = ""; }; 495512CED6B55B9463695CBE9898BE51 /* QuartzCore.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = QuartzCore.framework; path = Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS18.0.sdk/System/Library/Frameworks/QuartzCore.framework; sourceTree = DEVELOPER_DIR; }; - 49598FE073A9A2B4284B97EBAAB70ADD /* QGAnimatedImageBufferManager.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = QGAnimatedImageBufferManager.h; path = iOS/QGVAPlayer/QGVAPlayer/Classes/Controllers/QGAnimatedImageBufferManager.h; sourceTree = ""; }; - 4988BA03D0EBAD5A74A80D6379EF62DF /* MQTTSessionSynchron.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = MQTTSessionSynchron.h; path = MQTTClient/MQTTClient/MQTTSessionSynchron.h; sourceTree = ""; }; - 49BB7730AD6B24BB53B32F573022429E /* JXCategoryIndicatorBallView.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = JXCategoryIndicatorBallView.m; path = Sources/Indicator/IndicatorViews/JXCategoryIndicatorBallView.m; sourceTree = ""; }; - 49CE5C3DC4D31F4B2E39E056A9AEA508 /* LLDebugTool-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "LLDebugTool-prefix.pch"; sourceTree = ""; }; - 49D936986B00F70F98A5F9D1DA0A4E4F /* YBIBImageCell+Internal.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "YBIBImageCell+Internal.h"; path = "YBImageBrowser/Image/YBIBImageCell+Internal.h"; sourceTree = ""; }; - 49DC9E73EA5F77F47D92CFB1B3EC2608 /* LLShortCutHelper.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = LLShortCutHelper.m; path = LLDebugTool/Core/Component/ShortCut/Function/LLShortCutHelper.m; sourceTree = ""; }; - 49EE0B8E8030962716DC77EE047C52D8 /* GPBUnknownFieldSet.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = GPBUnknownFieldSet.m; path = objectivec/GPBUnknownFieldSet.m; sourceTree = ""; }; - 49FBD338226836B031A24A27762915F5 /* Logger.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Logger.swift; path = AgoraLyricsScore/Class/Other/Logger.swift; sourceTree = ""; }; - 4A00004632EC2F650DE6F0B2DB7E13E8 /* UIGestureRecognizer+RACSignalSupport.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "UIGestureRecognizer+RACSignalSupport.h"; path = "ReactiveObjC/UIGestureRecognizer+RACSignalSupport.h"; sourceTree = ""; }; + 497E462742C80F125C25E5968C7986D1 /* TZVideoPlayerController.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = TZVideoPlayerController.h; path = TZImagePickerController/TZImagePickerController/TZVideoPlayerController.h; sourceTree = ""; }; + 49895CC2A226DAE2A55E019E17D06B6B /* YYText.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = YYText.h; path = YYText/YYText.h; sourceTree = ""; }; + 499E34B74A4F8D067A02EB2B2A2DE8B4 /* CALayer+YYWebImage.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "CALayer+YYWebImage.h"; path = "YYWebImage/Categories/CALayer+YYWebImage.h"; sourceTree = ""; }; + 49D97FDA99C133F08F9485B68A70964A /* JXCategoryTitleVerticalZoomView.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = JXCategoryTitleVerticalZoomView.h; path = Sources/VerticalZoomTitle/JXCategoryTitleVerticalZoomView.h; sourceTree = ""; }; + 4A0A2AFC2983CAE9A4C3F9AD7BDFC509 /* AgoraComponetLog.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = AgoraComponetLog.release.xcconfig; sourceTree = ""; }; + 4A0CED06B42A21EB241B1DF222855283 /* OSSNetworking.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = OSSNetworking.h; path = AliyunOSSSDK/OSSNetworking.h; sourceTree = ""; }; 4A0F6C825A3F8EF9D021A0256D803FF8 /* TUIConversationListDataProvider.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = TUIConversationListDataProvider.m; sourceTree = ""; }; - 4A2C80110882FD004441E6E08C198992 /* MQTTCFSocketEncoder.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = MQTTCFSocketEncoder.h; path = MQTTClient/MQTTClient/MQTTCFSocketEncoder.h; sourceTree = ""; }; - 4A63CB94EA8C84203F71D1CA1C2DD532 /* JXCategoryIndicatorComponentView.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = JXCategoryIndicatorComponentView.h; path = Sources/Indicator/IndicatorViews/JXCategoryIndicatorComponentView.h; sourceTree = ""; }; - 4A83A386748C5CE18D8AE941C894A549 /* LLPickerView.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = LLPickerView.h; path = LLDebugTool/Core/Others/CommonUI/View/PickerView/LLPickerView.h; sourceTree = ""; }; - 4AC370B71EE218C059D5B370F1189368 /* LLEditTableViewController.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = LLEditTableViewController.h; path = LLDebugTool/Core/Others/CommonUI/ViewController/EditTableViewController/LLEditTableViewController.h; sourceTree = ""; }; - 4AD969C7C7F56A47BA0E78069F1FACFB /* YBIBCellProtocol.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = YBIBCellProtocol.h; path = YBImageBrowser/Protocol/YBIBCellProtocol.h; sourceTree = ""; }; - 4ADB24D987D3B73BA797489C26469CA7 /* lossless_msa.c */ = {isa = PBXFileReference; includeInIndex = 1; name = lossless_msa.c; path = src/dsp/lossless_msa.c; sourceTree = ""; }; - 4AE210D9A885696D72F3DA98859ABC65 /* yuv.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = yuv.h; path = src/dsp/yuv.h; sourceTree = ""; }; - 4AFAE5AA756CAD7FA3E072BFAF4FDE90 /* SDImageAPNGCoder.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDImageAPNGCoder.h; path = SDWebImage/Core/SDImageAPNGCoder.h; sourceTree = ""; }; + 4A244D0771AADA020A6977E7310CDB0B /* NSKeyedUnarchiver+YYAdd.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "NSKeyedUnarchiver+YYAdd.h"; path = "YYCategories/Foundation/NSKeyedUnarchiver+YYAdd.h"; sourceTree = ""; }; + 4A32567127ABAC848D51F4C939E2D5FF /* Extentions.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Extentions.swift; path = AgoraLyricsScore/Class/Downloader/Extentions.swift; sourceTree = ""; }; + 4A35217855830B5FCBD9A22EF5A16B80 /* NSString+RACSupport.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "NSString+RACSupport.h"; path = "ReactiveObjC/NSString+RACSupport.h"; sourceTree = ""; }; + 4A3F46F7B7B6B8C5DB64021DEC0B6C77 /* SVGAVideoEntity.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SVGAVideoEntity.h; path = Source/SVGAVideoEntity.h; sourceTree = ""; }; + 4A5AF9B087E813547E706B45C3DFB7E1 /* OSSGetObjectACLResult.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = OSSGetObjectACLResult.h; path = AliyunOSSSDK/OSSGetObjectACLResult.h; sourceTree = ""; }; + 4A6193EB42B940AE1CF0ADC616574F3E /* RACStringSequence.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = RACStringSequence.m; path = ReactiveObjC/RACStringSequence.m; sourceTree = ""; }; + 4A65640EDCF8A341B1C6F8BE8351E673 /* mz_strm_split.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = mz_strm_split.h; path = SSZipArchive/minizip/mz_strm_split.h; sourceTree = ""; }; + 4AC207119B73A324FA703ECBC70E7591 /* MJRefreshGifHeader.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = MJRefreshGifHeader.h; path = MJRefresh/Custom/Header/MJRefreshGifHeader.h; sourceTree = ""; }; 4B1179595C537511728368623505A2A4 /* TUIConversationObjectFactory.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = TUIConversationObjectFactory.h; sourceTree = ""; }; - 4B37FE7622671AF38E9104F5234E5935 /* LLFormatterTool.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = LLFormatterTool.h; path = LLDebugTool/Core/Others/FormatterTool/LLFormatterTool.h; sourceTree = ""; }; - 4B419F69AB9F77AFCEFA32FD565D3F52 /* GPBWireFormat.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = GPBWireFormat.m; path = objectivec/GPBWireFormat.m; sourceTree = ""; }; 4B492734916E97A6ABCA25BBFCCC1803 /* TUIChatSmallTongueView_Minimalist.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = TUIChatSmallTongueView_Minimalist.m; sourceTree = ""; }; - 4B4C4C49B27AE50A19797A6B13F8D392 /* NSString+YYAdd.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "NSString+YYAdd.h"; path = "YYCategories/Foundation/NSString+YYAdd.h"; sourceTree = ""; }; - 4B730F600A81F90B6C34AA78ABEE5ED0 /* SSZipArchive-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "SSZipArchive-umbrella.h"; sourceTree = ""; }; - 4B774B1E857B2D20B4E02843FD819DF6 /* lossless_enc_neon.c */ = {isa = PBXFileReference; includeInIndex = 1; name = lossless_enc_neon.c; path = src/dsp/lossless_enc_neon.c; sourceTree = ""; }; - 4B77BB45DFA03E6F0DE54C82DD84ECFB /* AgoraLyricsScore.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.module; path = AgoraLyricsScore.modulemap; sourceTree = ""; }; + 4B5DCD20450BB0146A820F2D4940F097 /* LLMagnifierWindow.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = LLMagnifierWindow.h; path = LLDebugTool/Core/Component/Magnifier/UserInterface/LLMagnifierWindow.h; sourceTree = ""; }; + 4B5FB108B5C99E9BE20DE622B2EB506C /* QCloudCOSXMLTransfer.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = QCloudCOSXMLTransfer.h; path = QCloudCOSXML/Classes/Transfer/QCloudCOSXMLTransfer.h; sourceTree = ""; }; + 4B61D66FAAF993EA868CC86802228D2D /* GPBExtensionInternals.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = GPBExtensionInternals.h; path = objectivec/GPBExtensionInternals.h; sourceTree = ""; }; + 4B6880AE8BA92FD6D17A828C3E659E5E /* LLMagnifierView.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = LLMagnifierView.m; path = LLDebugTool/Core/Component/Magnifier/UserInterface/LLMagnifierView.m; sourceTree = ""; }; + 4B7791ED3CAC956C61D2090F84B877A3 /* utils.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = utils.h; path = src/utils/utils.h; sourceTree = ""; }; + 4B7875C13EE1A811F6106084804B9569 /* RACTargetQueueScheduler.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = RACTargetQueueScheduler.h; path = ReactiveObjC/RACTargetQueueScheduler.h; sourceTree = ""; }; 4B8034564E23ACFED289992BDEE3ADD5 /* TUIGroupPinPageViewController.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = TUIGroupPinPageViewController.m; sourceTree = ""; }; - 4B98C44A64F510AC7D5B3D5257A703A6 /* LLProxy.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = LLProxy.h; path = LLDebugTool/Core/Others/Proxy/LLProxy.h; sourceTree = ""; }; - 4BA6F40D960E0AE3D8D68035BC34044B /* UIImageView+AFNetworking.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "UIImageView+AFNetworking.m"; path = "UIKit+AFNetworking/UIImageView+AFNetworking.m"; sourceTree = ""; }; - 4BA768D40DC69C52510EB28570C9D8AB /* JXCategoryImageCell.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = JXCategoryImageCell.m; path = Sources/Image/JXCategoryImageCell.m; sourceTree = ""; }; - 4BB5ECE45841E247C0A2B2E4EC46359D /* RACTupleSequence.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = RACTupleSequence.h; path = ReactiveObjC/RACTupleSequence.h; sourceTree = ""; }; - 4BC063D2D8E5C2709B7C87FFCB1F191F /* SDWebImageDownloader.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDWebImageDownloader.h; path = SDWebImage/Core/SDWebImageDownloader.h; sourceTree = ""; }; - 4BC4121E1020CEE8E5BCE66D6B415EB9 /* ProgressChecker.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ProgressChecker.swift; path = AgoraLyricsScore/Class/Other/ProgressChecker.swift; sourceTree = ""; }; - 4BCF3A982C0897F194EE8E1F86C57C14 /* BRResultModel.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = BRResultModel.m; path = BRPickerView/Deprecated/StringPickerView/BRResultModel.m; sourceTree = ""; }; + 4BCBA05C056BE50368553A3FE1794CEF /* SDImageCoder.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDImageCoder.m; path = SDWebImage/Core/SDImageCoder.m; sourceTree = ""; }; 4BD0A4EBEA8C8C68C7257C630C23F78B /* AVKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AVKit.framework; path = Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS18.0.sdk/System/Library/Frameworks/AVKit.framework; sourceTree = DEVELOPER_DIR; }; - 4BD232EBDA66AE8A6AF77454C5BF3F19 /* AgoraVideoAv1DecoderExtension.xcframework */ = {isa = PBXFileReference; includeInIndex = 1; path = AgoraVideoAv1DecoderExtension.xcframework; sourceTree = ""; }; - 4BD5985475E7528CD717D4DC5A781D5E /* NSUserDefaults+RACSupport.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "NSUserDefaults+RACSupport.m"; path = "ReactiveObjC/NSUserDefaults+RACSupport.m"; sourceTree = ""; }; 4BDE83F501FC642E05B993AABCE6F79D /* TUIConversationForwardSelectCell_Minimalist.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = TUIConversationForwardSelectCell_Minimalist.m; sourceTree = ""; }; - 4BFBC22DC52C1A898920DEFF886A4646 /* LLAnimateView.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = LLAnimateView.h; path = LLDebugTool/Core/Others/CommonUI/View/AnimateView/LLAnimateView.h; sourceTree = ""; }; - 4BFCBC45D942B34D6947C2B92D59A048 /* SDAnimatedImage.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDAnimatedImage.m; path = SDWebImage/Core/SDAnimatedImage.m; sourceTree = ""; }; - 4C10EA7251486F3CF046D8F5538ADA9A /* LLMagnifierViewController.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = LLMagnifierViewController.m; path = LLDebugTool/Core/Component/Magnifier/UserInterface/LLMagnifierViewController.m; sourceTree = ""; }; + 4BE6BE51B3655D97259F6FA6512BF9A7 /* LLTitleCellView.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = LLTitleCellView.m; path = LLDebugTool/Core/Others/CommonUI/View/CellView/LLTitleCellView.m; sourceTree = ""; }; + 4C09EF151C191E0F6F7F6DC3F524DCDE /* LLShortCutWindow.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = LLShortCutWindow.m; path = LLDebugTool/Core/Component/ShortCut/UserInterface/LLShortCutWindow.m; sourceTree = ""; }; + 4C2808CF313B057473840CDC35642A08 /* QCloudCOSXMLServiceUtilities.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = QCloudCOSXMLServiceUtilities.m; path = QCloudCOSXML/Classes/Base/QCloudCOSXMLServiceUtilities.m; sourceTree = ""; }; 4C51BC4BBEAB45670F0D5A20672BA6DA /* TUIMemberCell.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = TUIMemberCell.m; sourceTree = ""; }; - 4C5296DC25AE3D290C724DAACD1CFEE7 /* UIImage+MultiFormat.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "UIImage+MultiFormat.h"; path = "SDWebImage/Core/UIImage+MultiFormat.h"; sourceTree = ""; }; + 4C571E11B7B5B9801B361197A15449E6 /* UIAlertView+RACSignalSupport.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "UIAlertView+RACSignalSupport.h"; path = "ReactiveObjC/UIAlertView+RACSignalSupport.h"; sourceTree = ""; }; 4C668B56B6C97A84C58A7AFBF8067086 /* TUIChatPopActionsView.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = TUIChatPopActionsView.m; sourceTree = ""; }; + 4C7865C77DD9DB60607E579BC0758D5E /* QGAnimatedImageDecodeConfig.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = QGAnimatedImageDecodeConfig.m; path = iOS/QGVAPlayer/QGVAPlayer/Classes/Controllers/QGAnimatedImageDecodeConfig.m; sourceTree = ""; }; + 4C7A7AD3D79ABFF552B4AAEDBA5A9DCC /* SDCycleScrollView.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDCycleScrollView.h; path = SDCycleScrollView/Lib/SDCycleScrollView/SDCycleScrollView.h; sourceTree = ""; }; + 4CA49C94F05A2187AF5FFA52A89B5F2D /* SDImageAWebPCoder.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDImageAWebPCoder.m; path = SDWebImage/Core/SDImageAWebPCoder.m; sourceTree = ""; }; + 4CAB3DAEF0E00F0F21C97646381AED5F /* UIButton+WebCache.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "UIButton+WebCache.h"; path = "SDWebImage/Core/UIButton+WebCache.h"; sourceTree = ""; }; + 4CB0F464809B1069B0C26F82638E404D /* NSMutableAttributedString+AvoidCrash.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "NSMutableAttributedString+AvoidCrash.m"; path = "AvoidCrash/NSMutableAttributedString+AvoidCrash.m"; sourceTree = ""; }; 4CB6583A6C803E782602C115004BEEC6 /* TUIFileMessageCell_Minimalist.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = TUIFileMessageCell_Minimalist.m; sourceTree = ""; }; - 4CD3877D9642085EB7E4E9FA7963DF63 /* GCDTimer.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = GCDTimer.h; path = MQTTClient/MQTTClient/GCDTimer.h; sourceTree = ""; }; - 4CDB22E59EA8FC62CC575A7919518A56 /* Model.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Model.swift; path = AgoraLyricsScore/Class/Model.swift; sourceTree = ""; }; + 4CC4BCC6BDE780529CE713EB68E02781 /* filters_sse2.c */ = {isa = PBXFileReference; includeInIndex = 1; name = filters_sse2.c; path = src/dsp/filters_sse2.c; sourceTree = ""; }; + 4CC7230276400BD97B652992D74B90FB /* LLUITableViewLongPressGestureRecognizerDelegate.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = LLUITableViewLongPressGestureRecognizerDelegate.h; path = LLDebugTool/Core/Others/CommonUI/View/SubTitleTableViewCell/LLUITableViewLongPressGestureRecognizerDelegate.h; sourceTree = ""; }; + 4CC90FF57114835B548772BD7118CB20 /* YYCategories.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = YYCategories.release.xcconfig; sourceTree = ""; }; + 4CCA4F8DFC3F22B6C5141EFD47D97E52 /* QGVAPlayer.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = QGVAPlayer.debug.xcconfig; sourceTree = ""; }; 4D0B68F7A77EDEFA15C6E04F186A7F3A /* TUIReplyPreviewBar_Minimalist.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = TUIReplyPreviewBar_Minimalist.m; sourceTree = ""; }; - 4D0F43DE4846AA96F2A431D520D25536 /* AFNetworkActivityIndicatorManager.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = AFNetworkActivityIndicatorManager.h; path = "UIKit+AFNetworking/AFNetworkActivityIndicatorManager.h"; sourceTree = ""; }; - 4D27C90763A7DD8B508AC6D9E47885A2 /* LLBaseTableViewCell.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = LLBaseTableViewCell.m; path = LLDebugTool/Core/Others/CommonUI/Base/LLBaseTableViewCell.m; sourceTree = ""; }; 4D2EFE8FDFC4B40362DD0943B6B80CCA /* TIMInputViewMoreActionProtocol.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = TIMInputViewMoreActionProtocol.h; sourceTree = ""; }; - 4D3487DAD648D7A78DB51E4EA1AF1772 /* AliyunOSSiOS.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.module; path = AliyunOSSiOS.modulemap; sourceTree = ""; }; - 4D3B32E71A69DB1CC3A8D3B0D7539B94 /* NSObject+YYAddForARC.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "NSObject+YYAddForARC.m"; path = "YYCategories/Foundation/NSObject+YYAddForARC.m"; sourceTree = ""; }; + 4D35A74BC801A1B8AECF7D12EC6B801A /* MQTTClient-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "MQTTClient-dummy.m"; sourceTree = ""; }; + 4D50156FF02FF501BE9BE16E890E6F36 /* JXCategoryTitleView.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = JXCategoryTitleView.m; path = Sources/Title/JXCategoryTitleView.m; sourceTree = ""; }; + 4D50A1EA600F9C9F5DB4BE5C21FA010A /* OSSSignUtils.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = OSSSignUtils.h; path = AliyunOSSSDK/Signer/OSSSignUtils.h; sourceTree = ""; }; 4D79865AB8E4EF9F3A62AE2FD846AFAC /* TUIGroupCreatedCellData.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = TUIGroupCreatedCellData.h; sourceTree = ""; }; - 4D82ED4AFEFCB2B8BC40005C731E228B /* GPBUnknownField_PackagePrivate.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = GPBUnknownField_PackagePrivate.h; path = objectivec/GPBUnknownField_PackagePrivate.h; sourceTree = ""; }; - 4D90E27A2371C9736D70DE7CDA769710 /* SDFileAttributeHelper.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDFileAttributeHelper.h; path = SDWebImage/Private/SDFileAttributeHelper.h; sourceTree = ""; }; - 4DAC7633A133F7BDA3138F879621D8D3 /* LLScreenshotSelectorModel.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = LLScreenshotSelectorModel.m; path = LLDebugTool/Core/Component/Screenshot/UserInterface/LLScreenshotSelectorModel.m; sourceTree = ""; }; + 4D98461267F745B1EBE8EE50AAEAF9CB /* Downloader.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Downloader.swift; path = AgoraLyricsScore/Class/Downloader/Downloader.swift; sourceTree = ""; }; 4DC0797733A618D987907713A3FA27F3 /* TIMCommon_Minimalist.bundle */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = "wrapper.plug-in"; name = TIMCommon_Minimalist.bundle; path = Resources/TIMCommon_Minimalist.bundle; sourceTree = ""; }; - 4DC2564CCF916F42356626D53461094E /* SDImageGIFCoder.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDImageGIFCoder.m; path = SDWebImage/Core/SDImageGIFCoder.m; sourceTree = ""; }; + 4DD84671C676DB5A9EDF1B803F587C61 /* AliyunOSSiOS-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "AliyunOSSiOS-umbrella.h"; sourceTree = ""; }; + 4DF037AB8692E8ABBFFE931A9DEB6A71 /* LLConfigHelper.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = LLConfigHelper.m; path = LLDebugTool/Core/Others/ConfigHelper/LLConfigHelper.m; sourceTree = ""; }; + 4DFC0BEE18F9B338EBED87AC7B5F8AA3 /* QCloudAppendObjectRequest.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = QCloudAppendObjectRequest.m; path = QCloudCOSXML/Classes/Transfer/request/QCloudAppendObjectRequest.m; sourceTree = ""; }; 4E0ECC85931C245B4C25F2B227E767C3 /* YTCommonLiveness.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = YTCommonLiveness.framework; path = Libs/YTCommonLiveness.framework; sourceTree = ""; }; - 4E3A90A60CE344C08837F6FFC7402844 /* MJRefresh.bundle */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = "wrapper.plug-in"; name = MJRefresh.bundle; path = MJRefresh/MJRefresh.bundle; sourceTree = ""; }; - 4E3B1DB010CAF8D3F5FFFB84D59D0D76 /* LLLocationViewController.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = LLLocationViewController.m; path = LLDebugTool/Core/Component/Location/UserInterface/LLLocationViewController.m; sourceTree = ""; }; + 4E3655025FF158E184BED421A2EF13CA /* LLStorageModel.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = LLStorageModel.h; path = LLDebugTool/Core/Others/CommonUI/Model/Storage/LLStorageModel.h; sourceTree = ""; }; 4E3CC9A805668EB263F100E9E0BAA674 /* TUIConversationCell.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = TUIConversationCell.h; sourceTree = ""; }; 4E407B7ED44DC80EEE078DA6D29B6A96 /* TUITextMessageCell.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = TUITextMessageCell.m; sourceTree = ""; }; - 4E63A23FAF92DD5F3251EF0B328F1C0D /* YBImageBrowser+Internal.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "YBImageBrowser+Internal.h"; path = "YBImageBrowser/Base/YBImageBrowser+Internal.h"; sourceTree = ""; }; - 4E70276862717303D11D443124244893 /* JXCategoryView.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.module; path = JXCategoryView.modulemap; sourceTree = ""; }; + 4E497A4DD0D46E0E5BC8A7A83CEE12FA /* LLDetailTitleSelectorCellView.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = LLDetailTitleSelectorCellView.h; path = LLDebugTool/Core/Others/CommonUI/View/CellView/LLDetailTitleSelectorCellView.h; sourceTree = ""; }; 4E72571279543227958D9176DC8B802D /* TUIMessageController_Minimalist.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = TUIMessageController_Minimalist.h; sourceTree = ""; }; - 4EABE0178615179C6690F5C063B836A7 /* SDWebImageWebPCoder.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDWebImageWebPCoder.h; path = SDWebImageWebPCoder/Module/SDWebImageWebPCoder.h; sourceTree = ""; }; - 4EAE04E32C83B09078A765F27D24CFAA /* ssim.c */ = {isa = PBXFileReference; includeInIndex = 1; name = ssim.c; path = src/dsp/ssim.c; sourceTree = ""; }; - 4EB7EA528AD2955EEC8332C25AF94ABC /* RACGroupedSignal.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = RACGroupedSignal.h; path = ReactiveObjC/RACGroupedSignal.h; sourceTree = ""; }; - 4EBD3B0E13D269E8B237B7ADC85AEE2C /* NSObject+LL_Hierarchy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "NSObject+LL_Hierarchy.m"; path = "LLDebugTool/Core/Component/Hierarchy/Function/NSObject+LL_Hierarchy.m"; sourceTree = ""; }; + 4E863240CED41D55CF689930006088FC /* LLLogFilterView.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = LLLogFilterView.h; path = LLDebugTool/Core/Component/Log/UserInterface/LLLogFilterView.h; sourceTree = ""; }; + 4E9D4F3C20EEEFACF0E26F2164A34B4A /* MQTTSSLSecurityPolicyDecoder.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = MQTTSSLSecurityPolicyDecoder.h; path = MQTTClient/MQTTClient/MQTTSSLSecurityPolicyDecoder.h; sourceTree = ""; }; + 4EA0643222D03967A5E44991F3E53B51 /* ReactiveObjC-Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "ReactiveObjC-Info.plist"; sourceTree = ""; }; 4ECBC2998B1180A23676A54D19B5A5E4 /* TUIChatShortcutMenuView.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = TUIChatShortcutMenuView.h; sourceTree = ""; }; - 4ECD239C3C898255314335D24FF27D44 /* LLMagnifier.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = LLMagnifier.h; path = LLDebugTool/Core/Component/Magnifier/LLMagnifier.h; sourceTree = ""; }; - 4EEF4BBA370E0CCC68B0BA1C9FF85A69 /* LLWindowManager+Location.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "LLWindowManager+Location.m"; path = "LLDebugTool/Core/Component/Location/UserInterface/LLWindowManager+Location.m"; sourceTree = ""; }; - 4F57764188C45DFBCDFE5F9F903400DF /* filters_utils.c */ = {isa = PBXFileReference; includeInIndex = 1; name = filters_utils.c; path = src/utils/filters_utils.c; sourceTree = ""; }; - 4F63AAB3B7BBFDF1046B6090A4116864 /* RACQueueScheduler.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = RACQueueScheduler.m; path = ReactiveObjC/RACQueueScheduler.m; sourceTree = ""; }; - 4FC05AB889A2C9D5888B774E57673146 /* OSSClient.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = OSSClient.m; path = AliyunOSSSDK/OSSClient.m; sourceTree = ""; }; + 4ED53B73CF9D64B4F955BABACA49A2E4 /* NSMutableDictionary+OSS.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "NSMutableDictionary+OSS.m"; path = "AliyunOSSSDK/NSMutableDictionary+OSS.m"; sourceTree = ""; }; + 4EE2EF091477EDE4329C65586C479C20 /* LLDebug.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = LLDebug.h; path = LLDebugTool/LLDebug.h; sourceTree = ""; }; + 4EEB90D0BBD347D13F626D96914661D8 /* NSArray+MASAdditions.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "NSArray+MASAdditions.h"; path = "Masonry/NSArray+MASAdditions.h"; sourceTree = ""; }; + 4F053A8BB4012F91DA472CE271FE0C3B /* SDWebImageWebPCoderDefine.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDWebImageWebPCoderDefine.m; path = SDWebImageWebPCoder/Classes/SDWebImageWebPCoderDefine.m; sourceTree = ""; }; + 4F155FE321E6C657B174544964510452 /* LLDetailTitleCellView.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = LLDetailTitleCellView.m; path = LLDebugTool/Core/Others/CommonUI/View/CellView/LLDetailTitleCellView.m; sourceTree = ""; }; + 4F2EAB0C4650E7AF59DA1A14BC9DB18E /* TZProgressView.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = TZProgressView.h; path = TZImagePickerController/TZImagePickerController/TZProgressView.h; sourceTree = ""; }; + 4F368678C5E9A1277094F7744437EF5E /* alpha_processing.c */ = {isa = PBXFileReference; includeInIndex = 1; name = alpha_processing.c; path = src/dsp/alpha_processing.c; sourceTree = ""; }; + 4F4F830C97D11D657F4F6538BBE7369A /* QCloudCOSXML-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "QCloudCOSXML-umbrella.h"; sourceTree = ""; }; + 4F8BD6F89587FED967455EC7405AE7C1 /* LLHtmlUIWebViewController.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = LLHtmlUIWebViewController.h; path = LLDebugTool/Core/Component/Html/UserInterface/LLHtmlUIWebViewController.h; sourceTree = ""; }; + 4F913DD8E9D1DD23E75D985A632219C8 /* NSNumber+YYAdd.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "NSNumber+YYAdd.m"; path = "YYCategories/Foundation/NSNumber+YYAdd.m"; sourceTree = ""; }; + 4F9C556BDAA7116AA9A7D61C98AC802E /* Zip.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = Zip.release.xcconfig; sourceTree = ""; }; + 4FAEC03D86C93D4F312C93B5ED5AAE54 /* RACEmptySignal.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = RACEmptySignal.m; path = ReactiveObjC/RACEmptySignal.m; sourceTree = ""; }; + 4FB0259B9872C6E35B0CA86EC698BD30 /* NSBundle+TZImagePicker.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "NSBundle+TZImagePicker.m"; path = "TZImagePickerController/TZImagePickerController/NSBundle+TZImagePicker.m"; sourceTree = ""; }; + 4FB9ED5CF4B69C84A0B8EFA08054C3D8 /* NSDate+QCloudInternetDateTime.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "NSDate+QCloudInternetDateTime.h"; path = "QCloudCore/Classes/Base/QCloudCategory/NSDate+QCloudInternetDateTime.h"; sourceTree = ""; }; 4FC1978206616CE319648B302B05AA8A /* YYWebImage */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; name = YYWebImage; path = YYWebImage.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + 4FCFA223EDBCA09679E985DD1489EC35 /* RACGroupedSignal.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = RACGroupedSignal.m; path = ReactiveObjC/RACGroupedSignal.m; sourceTree = ""; }; + 4FF0632AC66004E15AE1242C155D8A16 /* NSData+OSS.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "NSData+OSS.h"; path = "AliyunOSSSDK/NSData+OSS.h"; sourceTree = ""; }; 4FF4D54968106D99B5B105557684ACEA /* TIMRTLUtil.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = TIMRTLUtil.h; sourceTree = ""; }; - 500ACEEF41D18EA3ABCE142BECD85504 /* Empty.pbobjc.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = Empty.pbobjc.h; path = objectivec/google/protobuf/Empty.pbobjc.h; sourceTree = ""; }; - 503DBF6B044EAFB40C2DC9730CD668D2 /* OSSExecutor.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = OSSExecutor.m; path = AliyunOSSSDK/OSSTask/OSSExecutor.m; sourceTree = ""; }; + 5005257548F3DFF019EC1E6A56D8DE94 /* JXCategoryDotCell.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = JXCategoryDotCell.m; path = Sources/Dot/JXCategoryDotCell.m; sourceTree = ""; }; + 500DABA99FE89D664AC06E90ED5861F6 /* QGVAPSafeMutableArray.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = QGVAPSafeMutableArray.m; path = iOS/QGVAPlayer/QGVAPlayer/Classes/Utils/QGVAPSafeMutableArray.m; sourceTree = ""; }; + 500E30DB35DDF6AA73303E1805A5F0E6 /* UITableViewCell+RACSignalSupport.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "UITableViewCell+RACSignalSupport.h"; path = "ReactiveObjC/UITableViewCell+RACSignalSupport.h"; sourceTree = ""; }; + 502439F27906B715098E164CB607F37D /* UIImage+WebP.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "UIImage+WebP.m"; path = "SDWebImageWebPCoder/Classes/UIImage+WebP.m"; sourceTree = ""; }; + 50374C4613B393AB172EAFA723197796 /* YYImage-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "YYImage-umbrella.h"; sourceTree = ""; }; + 507A36A5DA149C8C4AC5CCDE8DD4A9F5 /* LLCrashDetailViewController.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = LLCrashDetailViewController.m; path = LLDebugTool/Core/Component/Crash/UserInterface/LLCrashDetailViewController.m; sourceTree = ""; }; + 5087DCD7D883FD6000FC11CC75BE144F /* LLBaseModel.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = LLBaseModel.m; path = LLDebugTool/Core/Others/CommonUI/Base/LLBaseModel.m; sourceTree = ""; }; + 508983BAD4AE67AB61E3DFCBA3B75547 /* QCloudHeadObjectRequest.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = QCloudHeadObjectRequest.m; path = QCloudCOSXML/Classes/Transfer/request/QCloudHeadObjectRequest.m; sourceTree = ""; }; + 508B43E63B65B3D5ECB9245286302F94 /* alpha_processing_sse41.c */ = {isa = PBXFileReference; includeInIndex = 1; name = alpha_processing_sse41.c; path = src/dsp/alpha_processing_sse41.c; sourceTree = ""; }; + 50ACAC4A3CD7C0D928CE130C10855388 /* YYKVStorage.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = YYKVStorage.h; path = YYCache/YYKVStorage.h; sourceTree = ""; }; 50BCF8BF2AF130E56729604C7B293ABD /* TUIMediaView.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = TUIMediaView.h; sourceTree = ""; }; - 50E0A84F16910F304436C14B39378BCD /* NSDate+OSS.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "NSDate+OSS.h"; path = "AliyunOSSSDK/NSDate+OSS.h"; sourceTree = ""; }; + 50CB953D9D3B4F72E9ED204CAD506CAC /* SDWebImage.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = SDWebImage.release.xcconfig; sourceTree = ""; }; + 51004FC89CBF8CCF5A0B99BAF1E83BC8 /* JXPagingView.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.module; path = JXPagingView.modulemap; sourceTree = ""; }; + 5101A4F82BD63A4B88949CE1AB209586 /* LLSandboxViewController.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = LLSandboxViewController.h; path = LLDebugTool/Core/Component/Sandbox/UserInterface/LLSandboxViewController.h; sourceTree = ""; }; + 510A481D16EC2697CA59168881F1D464 /* huffman_utils.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = huffman_utils.h; path = src/utils/huffman_utils.h; sourceTree = ""; }; + 510CE074799D6F1B2FAE69B11D670BE6 /* SSZipArchive.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SSZipArchive.h; path = SSZipArchive/SSZipArchive.h; sourceTree = ""; }; + 51166D92E11078C50AE52E881DB09BE0 /* LLEnumDescription.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = LLEnumDescription.h; path = LLDebugTool/Core/Component/Hierarchy/Function/EnumDescription/LLEnumDescription.h; sourceTree = ""; }; 511E89FD908585EB7E90353AB3751525 /* TUIChatLocalizable.bundle */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = "wrapper.plug-in"; name = TUIChatLocalizable.bundle; path = Resources/TUIChatLocalizable.bundle; sourceTree = ""; }; - 5127BAB81383DA0D0B1DE1E9CFD54040 /* LyricsFileDownloader+Info.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "LyricsFileDownloader+Info.swift"; path = "AgoraLyricsScore/Class/Downloader/LyricsFileDownloader+Info.swift"; sourceTree = ""; }; - 515FE8950262AB8FAD2DC3C9C5F11862 /* dec_mips_dsp_r2.c */ = {isa = PBXFileReference; includeInIndex = 1; name = dec_mips_dsp_r2.c; path = src/dsp/dec_mips_dsp_r2.c; sourceTree = ""; }; - 5166CB954C5718CAAFF59E4B954E576F /* YBIBInteractionProfile.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = YBIBInteractionProfile.m; path = YBImageBrowser/Image/YBIBInteractionProfile.m; sourceTree = ""; }; - 5181AB30D3F31C421FE34E1B0E6EB96C /* AliyunOSSiOS-Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "AliyunOSSiOS-Info.plist"; sourceTree = ""; }; - 51AF8113A6263D3CDE7BE5C614A554BA /* LLRulerViewController.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = LLRulerViewController.h; path = LLDebugTool/Core/Component/Ruler/UserInterface/LLRulerViewController.h; sourceTree = ""; }; - 51BC1121123237550E5B2B77C0371244 /* NSObject+YYAdd.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "NSObject+YYAdd.m"; path = "YYCategories/Foundation/NSObject+YYAdd.m"; sourceTree = ""; }; + 51207D900C7949AD27AD35C6196E76CC /* RACBlockTrampoline.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = RACBlockTrampoline.h; path = ReactiveObjC/RACBlockTrampoline.h; sourceTree = ""; }; + 5126A4D9B87E984813282B556AF97202 /* JXCategoryIndicatorBackgroundView.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = JXCategoryIndicatorBackgroundView.m; path = Sources/Indicator/IndicatorViews/JXCategoryIndicatorBackgroundView.m; sourceTree = ""; }; + 512EC903D472361CCD58ADB381897CFD /* YYText-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "YYText-umbrella.h"; sourceTree = ""; }; + 513C0A6E6774AB5C5A27949D53C8E9E7 /* ZipArchive.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = ZipArchive.h; path = SSZipArchive/include/ZipArchive.h; sourceTree = ""; }; + 513EDB94C0EFD0FB669D4887555BA589 /* JXCategoryTitleVerticalZoomCell.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = JXCategoryTitleVerticalZoomCell.h; path = Sources/VerticalZoomTitle/JXCategoryTitleVerticalZoomCell.h; sourceTree = ""; }; + 51579FB914B828FDC79BFBAF0759EDEF /* GPBArray_PackagePrivate.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = GPBArray_PackagePrivate.h; path = objectivec/GPBArray_PackagePrivate.h; sourceTree = ""; }; + 5158B6BAC0B683F0ED5396925F1455B4 /* Struct.pbobjc.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = Struct.pbobjc.h; path = objectivec/google/protobuf/Struct.pbobjc.h; sourceTree = ""; }; + 5161C70D80D0CD4FF9A2FE85CCC3D4A8 /* SVGAExporter.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SVGAExporter.h; path = Source/SVGAExporter.h; sourceTree = ""; }; + 517A1DE40F6000369B30F813F8475AA5 /* AFNetworkReachabilityManager.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = AFNetworkReachabilityManager.h; path = AFNetworking/AFNetworkReachabilityManager.h; sourceTree = ""; }; + 517CE6AC36880E1AD113C29DE39FF026 /* NSSet+OSS.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "NSSet+OSS.h"; path = "AliyunOSSSDK/NSSet+OSS.h"; sourceTree = ""; }; + 5185439B556CBFA05DC9C6F974A9422B /* QCloudSDKModuleManager.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = QCloudSDKModuleManager.h; path = QCloudCore/Classes/Base/Supervisory/QCloudSDKModuleManager.h; sourceTree = ""; }; + 518A1560C99DA713CB6C06E2B95DDA29 /* RACSubscriber+Private.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "RACSubscriber+Private.h"; path = "ReactiveObjC/RACSubscriber+Private.h"; sourceTree = ""; }; + 519FC0F676D42EB2112CE24428C563FF /* ResourceBundle-JXPagerView-JXPagingView-Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "ResourceBundle-JXPagerView-JXPagingView-Info.plist"; sourceTree = ""; }; + 51C23DC3DC29A2A612B6B0E41DD47F7D /* SVGAPlayer.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = SVGAPlayer.release.xcconfig; sourceTree = ""; }; + 51CA26F641287F8855EFC6724DF07367 /* rescaler_neon.c */ = {isa = PBXFileReference; includeInIndex = 1; name = rescaler_neon.c; path = src/dsp/rescaler_neon.c; sourceTree = ""; }; + 51D0491B8DC06AE5E614B4D37CAD6F90 /* QCloudFileOffsetStream.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = QCloudFileOffsetStream.m; path = QCloudCore/Classes/Base/QCLOUDRestNet/DataForm/QCloudFileOffsetStream.m; sourceTree = ""; }; 51E4FF8465B27405FC87C412997283D0 /* TUIVideoMessageCell.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = TUIVideoMessageCell.m; sourceTree = ""; }; + 51EA6CB8856C050BCD9287E3F892CAC9 /* NSString+QCloudSHA.mm */ = {isa = PBXFileReference; includeInIndex = 1; name = "NSString+QCloudSHA.mm"; path = "QCloudCore/Classes/Base/QCLOUDRestNet/QCloudSecret/NSString+QCloudSHA.mm"; sourceTree = ""; }; + 51EB6ECF9AA2E8F129D99BE57FF8DEA0 /* YBIBCollectionViewLayout.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = YBIBCollectionViewLayout.m; path = YBImageBrowser/Base/YBIBCollectionViewLayout.m; sourceTree = ""; }; + 51ECC2497E7E3CE715361897E1C66AC4 /* NSArray+RACSequenceAdditions.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "NSArray+RACSequenceAdditions.h"; path = "ReactiveObjC/NSArray+RACSequenceAdditions.h"; sourceTree = ""; }; + 5205F5C2383D19CD9E496BC9EDDD45F4 /* JXPagerListContainerView.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = JXPagerListContainerView.m; path = Sources/JXPagerView/JXPagerListContainerView.m; sourceTree = ""; }; + 5214B00F5E32EE3751D1DD70C6B09C8B /* GPBUnknownFields_PackagePrivate.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = GPBUnknownFields_PackagePrivate.h; path = objectivec/GPBUnknownFields_PackagePrivate.h; sourceTree = ""; }; + 521ED7848F776C4C2660EAE7DFBC2718 /* QGBaseAnimatedImageFrame+Displaying.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "QGBaseAnimatedImageFrame+Displaying.h"; path = "iOS/QGVAPlayer/QGVAPlayer/Classes/Models/QGBaseAnimatedImageFrame+Displaying.h"; sourceTree = ""; }; + 5225D77BA4F9A454E29205329E0C01D4 /* LLRouter+ShortCut.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "LLRouter+ShortCut.h"; path = "LLDebugTool/Core/Others/Router/LLRouter+ShortCut.h"; sourceTree = ""; }; + 52305ABD7AE6E1655DCC400E006B01C9 /* GPBUnknownField.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = GPBUnknownField.h; path = objectivec/GPBUnknownField.h; sourceTree = ""; }; 5236509FD4A522718E1073ED84ECE08E /* TUIFoldListViewController.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = TUIFoldListViewController.m; sourceTree = ""; }; 52389EA2AA61742DE2714261023D6EA7 /* TUIConversation.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = TUIConversation.release.xcconfig; sourceTree = ""; }; + 523A1B94681A2291B4E3E6F8CBE45846 /* YYTextLine.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = YYTextLine.m; path = YYText/Component/YYTextLine.m; sourceTree = ""; }; 524BFF28768667EEC1C6E0B822637EFB /* TUIGroupChatViewController.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = TUIGroupChatViewController.h; sourceTree = ""; }; - 5265C177C267DB0D19359CE70E54913A /* OSSCancellationTokenRegistration.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = OSSCancellationTokenRegistration.h; path = AliyunOSSSDK/OSSTask/OSSCancellationTokenRegistration.h; sourceTree = ""; }; - 526A2B0C3FC3B187FF770704F25E1445 /* LLTitleViewController.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = LLTitleViewController.h; path = LLDebugTool/Core/Others/CommonUI/ViewController/TitleViewController/LLTitleViewController.h; sourceTree = ""; }; + 527F36F77F902FDE250B6767F1A9A9D1 /* LLCrashWindow.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = LLCrashWindow.m; path = LLDebugTool/Core/Component/Crash/UserInterface/LLCrashWindow.m; sourceTree = ""; }; + 52840598BF92A895362F367863E2E641 /* JXCategoryView-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "JXCategoryView-dummy.m"; sourceTree = ""; }; + 52864092240DC4531C349BDF313B651F /* SDImageCacheDefine.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDImageCacheDefine.h; path = SDWebImage/Core/SDImageCacheDefine.h; sourceTree = ""; }; + 528653073F6A18330DE69AA47535E0CF /* QCloudEndPoint.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = QCloudEndPoint.h; path = QCloudCore/Classes/Base/QCloudClientBase/Service/QCloudEndPoint.h; sourceTree = ""; }; 5295372A963A773F8835D919A373C9CF /* UIAlertController+TUICustomStyle.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "UIAlertController+TUICustomStyle.h"; sourceTree = ""; }; - 52CDD0ECDD400E2BE3EDE37210B136B2 /* AFNetworking.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = AFNetworking.debug.xcconfig; sourceTree = ""; }; - 52D4A7773367BECC9A76F6CE32854190 /* quant.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = quant.h; path = src/dsp/quant.h; sourceTree = ""; }; - 52F6080476321C49D1FAEF0A94C5679B /* MASConstraint.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = MASConstraint.h; path = Masonry/MASConstraint.h; sourceTree = ""; }; + 52CEA02CA2C86A695488682B0ED4643E /* SDImageTransformer.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDImageTransformer.h; path = SDWebImage/Core/SDImageTransformer.h; sourceTree = ""; }; + 52D76EA9F9359DD8E0593C7B0696A688 /* OSSCancellationTokenSource.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = OSSCancellationTokenSource.m; path = AliyunOSSSDK/OSSTask/OSSCancellationTokenSource.m; sourceTree = ""; }; + 52D9EC9C96308E3F313A45922A3F0A6A /* lossless_mips_dsp_r2.c */ = {isa = PBXFileReference; includeInIndex = 1; name = lossless_mips_dsp_r2.c; path = src/dsp/lossless_mips_dsp_r2.c; sourceTree = ""; }; + 52EE3D681BF668BD0C2862CF6BFC9A06 /* JXPagingView-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "JXPagingView-prefix.pch"; sourceTree = ""; }; + 5320BB3AC0EF89CDCEA8D440833550E2 /* backward_references_cost_enc.c */ = {isa = PBXFileReference; includeInIndex = 1; name = backward_references_cost_enc.c; path = src/enc/backward_references_cost_enc.c; sourceTree = ""; }; 532D01F08F02C6F987F1F7330ECC9427 /* TUIInputController.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = TUIInputController.h; sourceTree = ""; }; 532DE30E5C50174E1ACE829BEA5AC080 /* TUILocalTipsCellData.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = TUILocalTipsCellData.h; sourceTree = ""; }; 5338EF5B447D01D0ECAEDE9DC1891224 /* TUIConversationListDataProvider.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = TUIConversationListDataProvider.h; sourceTree = ""; }; - 53640BE0F4F9B0E24FF9D101E3F0A3A2 /* YYCategories-Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "YYCategories-Info.plist"; sourceTree = ""; }; - 53829206577B27B45762DB1DFF8081C1 /* OSSAllRequestNeededMessage.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = OSSAllRequestNeededMessage.h; path = AliyunOSSSDK/OSSAllRequestNeededMessage.h; sourceTree = ""; }; - 538BB024743EC24DC9870ED55C39BF40 /* huffman_encode_utils.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = huffman_encode_utils.h; path = src/utils/huffman_encode_utils.h; sourceTree = ""; }; - 53CB6BE6A2D5D3A69A1BBC957060C84B /* AFURLRequestSerialization.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = AFURLRequestSerialization.m; path = AFNetworking/AFURLRequestSerialization.m; sourceTree = ""; }; - 53FE2614574061CBC55A1B687D023EB4 /* QGAnimatedImageDecodeThreadPool.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = QGAnimatedImageDecodeThreadPool.m; path = iOS/QGVAPlayer/QGVAPlayer/Classes/Controllers/QGAnimatedImageDecodeThreadPool.m; sourceTree = ""; }; - 5402A5DB3FC680C9B92D7CBE65389962 /* msa_macro.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = msa_macro.h; path = src/dsp/msa_macro.h; sourceTree = ""; }; - 54179D0731911E4A42EB32AF0284D5B9 /* NSUserDefaults+RACSupport.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "NSUserDefaults+RACSupport.h"; path = "ReactiveObjC/NSUserDefaults+RACSupport.h"; sourceTree = ""; }; - 5446AE4B6075291D7EE3AB7F5B6B413F /* YBImageBrowser.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = YBImageBrowser.release.xcconfig; sourceTree = ""; }; + 5348E5E93C5D2E798D8E020D1C450C4B /* LLTitleCellCategoryModel.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = LLTitleCellCategoryModel.m; path = LLDebugTool/Core/Others/CommonUI/View/TitleCell/LLTitleCellCategoryModel.m; sourceTree = ""; }; + 5372E747772584C1D17DBA7819A6F865 /* AgoraLyricsScore-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "AgoraLyricsScore-umbrella.h"; sourceTree = ""; }; + 53817E330C397B22A43D06E36B41D2D0 /* NSString+YYAdd.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "NSString+YYAdd.m"; path = "YYCategories/Foundation/NSString+YYAdd.m"; sourceTree = ""; }; + 539E81F9AA4C78794DAC997EB95A5DAC /* MJRefresh.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = MJRefresh.debug.xcconfig; sourceTree = ""; }; + 53A7C6BE80C8D1B02CBB4B203B4AE16D /* SDImageIOAnimatedCoder.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDImageIOAnimatedCoder.m; path = SDWebImage/Core/SDImageIOAnimatedCoder.m; sourceTree = ""; }; + 53A91BA8A01AFB9B24A1CDF1BC6B8952 /* SDImageAssetManager.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDImageAssetManager.m; path = SDWebImage/Private/SDImageAssetManager.m; sourceTree = ""; }; + 53EDF4BD172DDA164576FF8F67F56308 /* LLShortCut.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = LLShortCut.h; path = LLDebugTool/Core/Component/ShortCut/LLShortCut.h; sourceTree = ""; }; + 53FC59E8871EFCA8BDDB19867B4DA92B /* TZAssetCell.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = TZAssetCell.h; path = TZImagePickerController/TZImagePickerController/TZAssetCell.h; sourceTree = ""; }; + 53FF1CAC382D4C785DB69A3A2BBE1ACC /* LLWindowManager+Ruler.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "LLWindowManager+Ruler.h"; path = "LLDebugTool/Core/Component/Ruler/UserInterface/LLWindowManager+Ruler.h"; sourceTree = ""; }; + 54104EB829695774D39A98E876CD853E /* JXCategoryIndicatorCellModel.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = JXCategoryIndicatorCellModel.m; path = Sources/Indicator/JXCategoryIndicatorCellModel.m; sourceTree = ""; }; 544E67F8B3648AA844F2913AB5F7E1BE /* UIImage+ImageEffects.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "UIImage+ImageEffects.m"; sourceTree = ""; }; - 545B97ACBF0338EB6662C85DB3711CF1 /* GPBAny.pbobjc.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = GPBAny.pbobjc.h; path = objectivec/GPBAny.pbobjc.h; sourceTree = ""; }; - 545BFAFF9A7B79F842EA72B5AF9B36C7 /* SDDiskCache.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDDiskCache.h; path = SDWebImage/Core/SDDiskCache.h; sourceTree = ""; }; - 545E4F91069F670EDDED415198AE6299 /* UIColor+YYAdd.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "UIColor+YYAdd.h"; path = "YYCategories/UIKit/UIColor+YYAdd.h"; sourceTree = ""; }; - 5465D9B9F5D0C6F06DA6C7F85202E8B0 /* OSSV4Signer.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = OSSV4Signer.h; path = AliyunOSSSDK/Signer/OSSV4Signer.h; sourceTree = ""; }; - 5496A6590FB24C60ED57717FE61C81A0 /* dec_mips32.c */ = {isa = PBXFileReference; includeInIndex = 1; name = dec_mips32.c; path = src/dsp/dec_mips32.c; sourceTree = ""; }; - 549F1C5969139F497518BAF11C48F351 /* LLConfig.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = LLConfig.m; path = LLDebugTool/DebugTool/LLConfig.m; sourceTree = ""; }; - 54A3E4A0BA81ABE860F0F310C7E16747 /* IQKeyboardManager-Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "IQKeyboardManager-Info.plist"; sourceTree = ""; }; - 54BB0D7D6F853CA4875A588BB976B0A7 /* MQTTSession.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = MQTTSession.m; path = MQTTClient/MQTTClient/MQTTSession.m; sourceTree = ""; }; - 54BB81D54B44630A921DBE98BADCC6A8 /* YYCache-Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "YYCache-Info.plist"; sourceTree = ""; }; - 54C5F1194AC9D45301268CB4419A8C23 /* AgoraFaceDetectionExtension.xcframework */ = {isa = PBXFileReference; includeInIndex = 1; path = AgoraFaceDetectionExtension.xcframework; sourceTree = ""; }; - 54EB3F51909F1C80F3039170F58E5A7C /* UIScrollView+MJRefresh.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "UIScrollView+MJRefresh.h"; path = "MJRefresh/UIScrollView+MJRefresh.h"; sourceTree = ""; }; - 54ED7FE35481B30560338864AD8BC50E /* LLProxy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = LLProxy.m; path = LLDebugTool/Core/Others/Proxy/LLProxy.m; sourceTree = ""; }; - 55224C2C7539480551F39C5D5B8A2157 /* QGBaseDFileInfo.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = QGBaseDFileInfo.m; path = iOS/QGVAPlayer/QGVAPlayer/Classes/Models/QGBaseDFileInfo.m; sourceTree = ""; }; - 552BD4E3F2F0D02D6D0825D0090BFECD /* JXPagerView.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = JXPagerView.m; path = Sources/JXPagerView/JXPagerView.m; sourceTree = ""; }; + 546050D3806424147A820EF88B7C56C4 /* UIImageView+WebCache.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "UIImageView+WebCache.h"; path = "SDWebImage/Core/UIImageView+WebCache.h"; sourceTree = ""; }; + 547AD5FE94B8E8890383F48287DE956B /* YYFrameImage.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = YYFrameImage.h; path = YYImage/YYFrameImage.h; sourceTree = ""; }; + 548776CDF0D86CACB6FA503CC4368123 /* SDCycleScrollView-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "SDCycleScrollView-dummy.m"; sourceTree = ""; }; + 5487F017F2C6A867C5AE7ECE3797AD8E /* GPBDictionary.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = GPBDictionary.m; path = objectivec/GPBDictionary.m; sourceTree = ""; }; + 54895662330D0B655500AE0805959BFA /* Svga.pbobjc.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = Svga.pbobjc.m; path = Source/pbobjc/Svga.pbobjc.m; sourceTree = ""; }; + 548D34F6170A1B7F8F1EB4BBE0EF9C56 /* QCloudUploadPartCopyRequest.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = QCloudUploadPartCopyRequest.m; path = QCloudCOSXML/Classes/Transfer/request/QCloudUploadPartCopyRequest.m; sourceTree = ""; }; + 54A33472470BAC0F792616DD91D66756 /* NSDictionary+LL_Utils.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "NSDictionary+LL_Utils.m"; path = "LLDebugTool/Core/Others/Category/NSDictionary/NSDictionary+LL_Utils.m"; sourceTree = ""; }; + 54A34D23FFDF5900855CC9BC436FB705 /* AFCompatibilityMacros.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = AFCompatibilityMacros.h; path = AFNetworking/AFCompatibilityMacros.h; sourceTree = ""; }; + 54AEB652E46049D9B75BFF05CB3FBCAB /* LLToastUtils.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = LLToastUtils.h; path = LLDebugTool/Core/Others/ToastUtils/LLToastUtils.h; sourceTree = ""; }; + 54BCDBAAA254EFD1FA9DF2898850A34E /* bit_reader_utils.c */ = {isa = PBXFileReference; includeInIndex = 1; name = bit_reader_utils.c; path = src/utils/bit_reader_utils.c; sourceTree = ""; }; + 54BF9B7902D6B1DB574ED8E8CA3C30DE /* NSObject+QCloudModelTool.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "NSObject+QCloudModelTool.h"; path = "QCloudCore/Classes/Base/QCLOUDObjectModel/NSObject+QCloudModelTool.h"; sourceTree = ""; }; + 54C9842F672DD7904085BBAF0823DE9A /* YYTextRunDelegate.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = YYTextRunDelegate.m; path = YYText/String/YYTextRunDelegate.m; sourceTree = ""; }; + 54CD88DFDB3F87ED69A9DF1B163663EA /* mz_crypt_apple.c */ = {isa = PBXFileReference; includeInIndex = 1; name = mz_crypt_apple.c; path = SSZipArchive/minizip/mz_crypt_apple.c; sourceTree = ""; }; + 54D1057009A2FE4069E1C199BCBF7C28 /* QCloudClassInfo.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = QCloudClassInfo.h; path = QCloudCore/Classes/Base/QCLOUDObjectModel/QCloudClassInfo.h; sourceTree = ""; }; + 54E20AEAEADAB286610843D9667CB450 /* QGVAPMetalView.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = QGVAPMetalView.h; path = iOS/QGVAPlayer/QGVAPlayer/Classes/Views/Metal/Vapx/QGVAPMetalView.h; sourceTree = ""; }; + 54E7E679235871C331C4566524F5D0E0 /* WKWebView+AFNetworking.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "WKWebView+AFNetworking.h"; path = "UIKit+AFNetworking/WKWebView+AFNetworking.h"; sourceTree = ""; }; + 54EC05DDCA801E98E2D6B33852A50597 /* NSBundle+TZImagePicker.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "NSBundle+TZImagePicker.h"; path = "TZImagePickerController/TZImagePickerController/NSBundle+TZImagePicker.h"; sourceTree = ""; }; + 550A3A97018FC4B7A39F25E713E9C5CF /* LLURLProtocol.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = LLURLProtocol.h; path = LLDebugTool/Core/Component/Network/Function/LLURLProtocol.h; sourceTree = ""; }; + 551DC510725AD8CDD655B3EC5477A0F9 /* LLConvenientScreenshotComponent.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = LLConvenientScreenshotComponent.m; path = LLDebugTool/Core/Component/Screenshot/LLConvenientScreenshotComponent.m; sourceTree = ""; }; 553D8AA632AA4938E14D719679F3A41F /* TUITextMessageCellData.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = TUITextMessageCellData.m; sourceTree = ""; }; - 55445F67263B2041800762E1FC4ED4B3 /* MJRefreshTrailer.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = MJRefreshTrailer.m; path = MJRefresh/Base/MJRefreshTrailer.m; sourceTree = ""; }; - 5547EBD2D22EB59AEB027AC63B1BF4D7 /* Zip.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = Zip.release.xcconfig; sourceTree = ""; }; - 556343C376CBBFD263B32B0B40598D68 /* LLHierarchyPickerView.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = LLHierarchyPickerView.h; path = LLDebugTool/Core/Component/Hierarchy/UserInterface/LLHierarchyPickerView.h; sourceTree = ""; }; + 554FA0F746FB80A9FE0D7A9201FD49B1 /* mz_os.c */ = {isa = PBXFileReference; includeInIndex = 1; name = mz_os.c; path = SSZipArchive/minizip/mz_os.c; sourceTree = ""; }; 55701518AB4B0314CAA3F1367384D4C2 /* UIColor+TUIHexColor.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "UIColor+TUIHexColor.h"; sourceTree = ""; }; - 5584457FB4113FFF04D74B2039E39415 /* FMDB.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = FMDB.release.xcconfig; sourceTree = ""; }; + 55829FFCDE8DA7CCFAF80FADF8C47EEF /* QCloudCopyObjectResult.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = QCloudCopyObjectResult.m; path = QCloudCOSXML/Classes/Transfer/model/QCloudCopyObjectResult.m; sourceTree = ""; }; + 5585D238EB7F232DBA375D4B9BE6CF44 /* ReactiveObjC-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "ReactiveObjC-dummy.m"; sourceTree = ""; }; + 558DF22DBEE747C372FF9D653111002F /* VAPMacros.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = VAPMacros.h; path = iOS/QGVAPlayer/QGVAPlayer/Classes/VAPMacros.h; sourceTree = ""; }; 5591E78EC7BBBBCF6967AED1BDC523B1 /* TUIMessageBaseDataProvider+ProtectedAPI.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "TUIMessageBaseDataProvider+ProtectedAPI.h"; sourceTree = ""; }; - 55BE2719E50A6EA734B586CE45848688 /* LyricsView.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = LyricsView.swift; path = AgoraLyricsScore/Class/Lyrics/LyricsView.swift; sourceTree = ""; }; - 55FF73FD94D203282FAE109DFCD2DB18 /* UIDevice+VAPUtil.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "UIDevice+VAPUtil.h"; path = "iOS/QGVAPlayer/QGVAPlayer/Classes/Utils/Categorys/UIDevice+VAPUtil.h"; sourceTree = ""; }; - 5603228251A5126AD66F2725E36DE8B8 /* UIView+TZLayout.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "UIView+TZLayout.h"; path = "TZImagePickerController/TZImagePickerController/UIView+TZLayout.h"; sourceTree = ""; }; - 56039E928BC98914D3D7BC3588147DDE /* JXCategoryIndicatorRainbowLineView.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = JXCategoryIndicatorRainbowLineView.h; path = Sources/Indicator/IndicatorViews/JXCategoryIndicatorRainbowLineView.h; sourceTree = ""; }; + 55A0F6E976D71D48E4793E256F4C8AE5 /* MASViewAttribute.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = MASViewAttribute.m; path = Masonry/MASViewAttribute.m; sourceTree = ""; }; 56165F19F48355B3A9D8272D215A7ECA /* TUIChatModifyMessageHelper.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = TUIChatModifyMessageHelper.m; sourceTree = ""; }; + 564351900D0E66F5FCCD801223E2046D /* YBIBVideoTopBar.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = YBIBVideoTopBar.m; path = Video/YBIBVideoTopBar.m; sourceTree = ""; }; 5666394C8E2E12E601208F9435337DB8 /* TUIEvaluationCellData.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = TUIEvaluationCellData.m; sourceTree = ""; }; - 56A5AA47557B91D4C8B1BD6563F0AB1A /* LLWindowManager+Magnifier.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "LLWindowManager+Magnifier.h"; path = "LLDebugTool/Core/Component/Magnifier/UserInterface/LLWindowManager+Magnifier.h"; sourceTree = ""; }; - 56B0E7A38A8353991791DDBF58BAF1D2 /* RACSignalSequence.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = RACSignalSequence.h; path = ReactiveObjC/RACSignalSequence.h; sourceTree = ""; }; - 56BAFE6EA4F60EFE92A698548CDFCF6F /* OSSPutObjectTaggingResult.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = OSSPutObjectTaggingResult.h; path = AliyunOSSSDK/OSSPutObjectTaggingResult.h; sourceTree = ""; }; - 56E6F6060749C45CD2589FFFAB8052C3 /* MQTTSSLSecurityPolicyEncoder.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = MQTTSSLSecurityPolicyEncoder.m; path = MQTTClient/MQTTClient/MQTTSSLSecurityPolicyEncoder.m; sourceTree = ""; }; - 57012ECE5EDE9E2CB2EC2D4102834902 /* UIView+MJExtension.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "UIView+MJExtension.h"; path = "MJRefresh/UIView+MJExtension.h"; sourceTree = ""; }; - 570592C997E29B54B8CE76C07D59CBE7 /* OSSConstants.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = OSSConstants.m; path = AliyunOSSSDK/OSSConstants.m; sourceTree = ""; }; + 5669FF9A1AD09E203C494E22DAE96000 /* alphai_dec.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = alphai_dec.h; path = src/dec/alphai_dec.h; sourceTree = ""; }; + 5690FDD3C5DB21ACD0EBF9996B47FE4A /* PrivacyInfo.xcprivacy */ = {isa = PBXFileReference; includeInIndex = 1; path = PrivacyInfo.xcprivacy; sourceTree = ""; }; + 56918E70C10E441DD9427320942AEE1B /* QCloudUniversalFixedPath.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = QCloudUniversalFixedPath.m; path = QCloudCore/Classes/Base/PathUtilities/QCloudUniversalFixedPath.m; sourceTree = ""; }; + 56990544E9DC75FE2A6CDCB511DF2E4F /* thread_utils.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = thread_utils.h; path = src/utils/thread_utils.h; sourceTree = ""; }; + 56B8F4D76A861932A8D1829CC0607A1C /* anim_decode.c */ = {isa = PBXFileReference; includeInIndex = 1; name = anim_decode.c; path = src/demux/anim_decode.c; sourceTree = ""; }; + 56F2804A0614B269D058BD5820E56D47 /* SVGAExporter.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SVGAExporter.m; path = Source/SVGAExporter.m; sourceTree = ""; }; + 5708E07AB2840A76853C9AE6DD55E305 /* SVGAVectorLayer.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SVGAVectorLayer.m; path = Source/SVGAVectorLayer.m; sourceTree = ""; }; 57171897BF23802237A3E9001B7E18AA /* TUIChatTheme.bundle */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = "wrapper.plug-in"; name = TUIChatTheme.bundle; path = Resources/TUIChatTheme.bundle; sourceTree = ""; }; 571F3B6AC50B0F54672B1002F50CA2B8 /* UIView+TUIToast.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "UIView+TUIToast.h"; sourceTree = ""; }; - 57583963A259C911485591807DC0F658 /* UICollectionViewLayout+MJRefresh.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "UICollectionViewLayout+MJRefresh.m"; path = "MJRefresh/UICollectionViewLayout+MJRefresh.m"; sourceTree = ""; }; - 577EA99AF892FC80FDFB73795AE74976 /* LLBaseView.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = LLBaseView.h; path = LLDebugTool/Core/Others/CommonUI/Base/LLBaseView.h; sourceTree = ""; }; - 5781BD27F95D5ABF53B28CBB3FCA27BE /* YYTextKeyboardManager.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = YYTextKeyboardManager.m; path = YYText/Component/YYTextKeyboardManager.m; sourceTree = ""; }; - 57A76A0817AB9141CEAE4DF9EE1FCF2C /* UIButton+YYWebImage.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "UIButton+YYWebImage.h"; path = "YYWebImage/Categories/UIButton+YYWebImage.h"; sourceTree = ""; }; + 573B74D12E6E54986C8557B3D9046F11 /* OSSGetObjectTaggingRequest.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = OSSGetObjectTaggingRequest.h; path = AliyunOSSSDK/OSSGetObjectTaggingRequest.h; sourceTree = ""; }; + 5784592997676878493A47DD67BB6541 /* SVGAAudioEntity.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SVGAAudioEntity.h; path = Source/SVGAAudioEntity.h; sourceTree = ""; }; + 578EBAD6008013CBDC078739E7461D08 /* YYImage.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = YYImage.release.xcconfig; sourceTree = ""; }; + 579AC723AA8FCDB6AA00696A86318F7B /* TZImagePickerController.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = TZImagePickerController.h; path = TZImagePickerController/TZImagePickerController/TZImagePickerController.h; sourceTree = ""; }; + 57B040E8C8F0B4B62BA73420C9547687 /* AgoraRtcKit.xcframework */ = {isa = PBXFileReference; includeInIndex = 1; path = AgoraRtcKit.xcframework; sourceTree = ""; }; + 57BFE83FF143652383D8D52BD8B68ED6 /* palette.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = palette.h; path = src/utils/palette.h; sourceTree = ""; }; 57D595EEE94C48E72A9BDDDAC7E44529 /* TencentCloudHuiyanSDKFace.bundle */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = "wrapper.plug-in"; name = TencentCloudHuiyanSDKFace.bundle; path = Resources/TencentCloudHuiyanSDKFace.bundle; sourceTree = ""; }; 57D70C0107D2F7F6D27020FC17AC7038 /* TUIConversationService_Minimalist.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = TUIConversationService_Minimalist.m; sourceTree = ""; }; - 57DBE5E18EE466C6732DC09D06D7E549 /* RACSubject.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = RACSubject.m; path = ReactiveObjC/RACSubject.m; sourceTree = ""; }; 57E3D4A4F6225FB1DF428E678BDEAD47 /* TUIMenuCellData.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = TUIMenuCellData.h; sourceTree = ""; }; 57E829FAFFA12D804643CC96EEB8EB62 /* TUIConversationCell.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = TUIConversationCell.m; sourceTree = ""; }; - 57F9EC351586A7953002865F92E275B8 /* AvoidCrash.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = AvoidCrash.debug.xcconfig; sourceTree = ""; }; - 57FDC36AD61B6031CB658B58A28DADBA /* LLLocation.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = LLLocation.h; path = LLDebugTool/Core/Component/Location/LLLocation.h; sourceTree = ""; }; + 57F3287EB8E962EA0BE79F87076D6CBA /* NSObject+QCloudModel.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "NSObject+QCloudModel.h"; path = "QCloudCore/Classes/Base/QCLOUDObjectModel/NSObject+QCloudModel.h"; sourceTree = ""; }; + 58070842DD72A3D1C0A9C4135133D62C /* YYCategoriesMacro.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = YYCategoriesMacro.h; path = YYCategories/YYCategoriesMacro.h; sourceTree = ""; }; 581E267CB7FF32511BF6C9892BE79D26 /* TUIChatBaseDataProvider.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = TUIChatBaseDataProvider.m; sourceTree = ""; }; - 5853E4C7D318DEA2F3B4365F7197455B /* dec_neon.c */ = {isa = PBXFileReference; includeInIndex = 1; name = dec_neon.c; path = src/dsp/dec_neon.c; sourceTree = ""; }; + 58242B008E957BED6CA7497F95558A88 /* near_lossless_enc.c */ = {isa = PBXFileReference; includeInIndex = 1; name = near_lossless_enc.c; path = src/enc/near_lossless_enc.c; sourceTree = ""; }; + 5839E2465EFCB6EC01D2CD4DE6D3B0C6 /* BRPickerView-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "BRPickerView-dummy.m"; sourceTree = ""; }; + 583D558EA52ECDDA31F861C4C7A7D402 /* MJRefreshNormalHeader.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = MJRefreshNormalHeader.h; path = MJRefresh/Custom/Header/MJRefreshNormalHeader.h; sourceTree = ""; }; + 5842D6A6D34AB9EC8BDFC6AD6FE2FF4A /* NSObject+LL_Runtime.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "NSObject+LL_Runtime.m"; path = "LLDebugTool/Core/Others/Category/NSObject/NSObject+LL_Runtime.m"; sourceTree = ""; }; + 586C397A0CE78A849C9C64F6C1AB1B7B /* SDDeviceHelper.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDDeviceHelper.h; path = SDWebImage/Private/SDDeviceHelper.h; sourceTree = ""; }; + 5877861C915E71930D402C2BAFC9551A /* QCloudCOSXMLService+Configuration.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "QCloudCOSXMLService+Configuration.h"; path = "QCloudCOSXML/Classes/Base/QCloudCOSXMLService+Configuration.h"; sourceTree = ""; }; + 588895FF1346486ECBAEE86B9986F26B /* QCloudInitiateMultipartUploadRequest.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = QCloudInitiateMultipartUploadRequest.h; path = QCloudCOSXML/Classes/Transfer/request/QCloudInitiateMultipartUploadRequest.h; sourceTree = ""; }; 588B926593985C8CE5DE5590B0F2AE6D /* TUIVoiceMessageCell.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = TUIVoiceMessageCell.m; sourceTree = ""; }; - 589BA9ECEFA3519B8CACA91E85CEC710 /* ResourceBundle-Protobuf_Privacy-Protobuf-Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "ResourceBundle-Protobuf_Privacy-Protobuf-Info.plist"; sourceTree = ""; }; - 58AD37709F39264790CB037A968FDA7D /* OSSGetObjectACLRequest.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = OSSGetObjectACLRequest.m; path = AliyunOSSSDK/OSSGetObjectACLRequest.m; sourceTree = ""; }; + 588D3CCD8EE99838ACDE6232300077FD /* QGVAPMetalView.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = QGVAPMetalView.m; path = iOS/QGVAPlayer/QGVAPlayer/Classes/Views/Metal/Vapx/QGVAPMetalView.m; sourceTree = ""; }; + 5892E24D8A698EBF900F733AFB9E40C0 /* SDImageGIFCoder.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDImageGIFCoder.h; path = SDWebImage/Core/SDImageGIFCoder.h; sourceTree = ""; }; + 58A6ED66560B5BA5E371D56B18DE6CB1 /* ImSDK_Plus.xcframework */ = {isa = PBXFileReference; includeInIndex = 1; path = ImSDK_Plus.xcframework; sourceTree = ""; }; 58B0067B68C01AB3887A364BABB15A12 /* CoreGraphics.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreGraphics.framework; path = Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS18.0.sdk/System/Library/Frameworks/CoreGraphics.framework; sourceTree = DEVELOPER_DIR; }; - 58B5188933EFE0E84F3B4D3F7BF43664 /* RACCompoundDisposableProvider.d */ = {isa = PBXFileReference; includeInIndex = 1; name = RACCompoundDisposableProvider.d; path = ReactiveObjC/RACCompoundDisposableProvider.d; sourceTree = ""; }; - 58C26C82C995202B9CB0E047FEE692F2 /* NSObject+RACKVOWrapper.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "NSObject+RACKVOWrapper.m"; path = "ReactiveObjC/NSObject+RACKVOWrapper.m"; sourceTree = ""; }; - 58DFADEA0C94467F4B75AC9F1FCCDD11 /* LLBaseViewController.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = LLBaseViewController.h; path = LLDebugTool/Core/Others/CommonUI/Base/LLBaseViewController.h; sourceTree = ""; }; - 58EB93600B226CA5D087A05FFF6DE5E4 /* YYWebImage-Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "YYWebImage-Info.plist"; sourceTree = ""; }; - 590F344CF409111B5256DA6950955CEB /* JXCategoryDotCellModel.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = JXCategoryDotCellModel.m; path = Sources/Dot/JXCategoryDotCellModel.m; sourceTree = ""; }; - 593B07DA61DC8977DA7FB2ADEA9D91D0 /* Svga.pbobjc.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = Svga.pbobjc.m; path = Source/pbobjc/Svga.pbobjc.m; sourceTree = ""; }; - 594D12E166E00C4623953ABB400295D2 /* UIGestureRecognizer+VAPUtil.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "UIGestureRecognizer+VAPUtil.h"; path = "iOS/QGVAPlayer/QGVAPlayer/Classes/Utils/Categorys/UIGestureRecognizer+VAPUtil.h"; sourceTree = ""; }; - 594FF10178D0CEA9AE06A05AFCDE4FAF /* RACSubscriptingAssignmentTrampoline.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = RACSubscriptingAssignmentTrampoline.m; path = ReactiveObjC/RACSubscriptingAssignmentTrampoline.m; sourceTree = ""; }; - 59579BD44E27B2EDDEE8380595FEB43A /* mz_strm.c */ = {isa = PBXFileReference; includeInIndex = 1; name = mz_strm.c; path = SSZipArchive/minizip/mz_strm.c; sourceTree = ""; }; - 595A2AEE5A65358BE4824F0982DFCF01 /* RACDynamicSequence.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = RACDynamicSequence.h; path = ReactiveObjC/RACDynamicSequence.h; sourceTree = ""; }; + 58C890266E241B152328C4CD2F9604F5 /* TAPageControl.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = TAPageControl.h; path = SDCycleScrollView/Lib/SDCycleScrollView/PageControl/TAPageControl.h; sourceTree = ""; }; + 58D65E4069D50F71191C20F097FFA577 /* QCloudModel.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = QCloudModel.h; path = QCloudCore/Classes/Base/QCLOUDFileUtils/QCloudModel.h; sourceTree = ""; }; + 58F4A0609A917741FE7C239586520A66 /* SDCycleScrollView.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.module; path = SDCycleScrollView.modulemap; sourceTree = ""; }; + 59212D34B5BADE17EFD6F8B3760781A6 /* NSData+LL_Network.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "NSData+LL_Network.m"; path = "LLDebugTool/Core/Component/Network/Function/NSData/NSData+LL_Network.m"; sourceTree = ""; }; + 5948B77899519A175746DD0C6176B637 /* LLEntryBigTitleView.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = LLEntryBigTitleView.h; path = LLDebugTool/Core/Others/CommonUI/Window/EntryWindow/LLEntryBigTitleView.h; sourceTree = ""; }; + 594B387A2FE7AB0230FBDBE5EF1F5810 /* QCloudProgrameDefines.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = QCloudProgrameDefines.m; path = QCloudCore/Classes/Base/QCLOUDProgramDefines/QCloudProgrameDefines.m; sourceTree = ""; }; 596A448FC3F3C4E51638D0260C886117 /* TUIGroupAvatar+Helper.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "TUIGroupAvatar+Helper.h"; sourceTree = ""; }; + 596B00E778A94AF409303B83B6142981 /* MQTTSSLSecurityPolicy.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = MQTTSSLSecurityPolicy.h; path = MQTTClient/MQTTClient/MQTTSSLSecurityPolicy.h; sourceTree = ""; }; 59916D633D9814D68A1250D542C08FFD /* TUIMergeMessageListController.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = TUIMergeMessageListController.m; sourceTree = ""; }; - 59970FF7CA18D915AFD14313201DADEA /* LLAnnotation.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = LLAnnotation.h; path = LLDebugTool/Core/Component/Location/UserInterface/LLAnnotation.h; sourceTree = ""; }; - 59AEB068B8D286CD738AC75C91C1FF5B /* MBProgressHUD-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "MBProgressHUD-prefix.pch"; sourceTree = ""; }; - 59B5088B5AA490FBB6DD48CA79DCD5C4 /* LLWidgetBorderViewController.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = LLWidgetBorderViewController.h; path = LLDebugTool/Core/Component/WidgetBorder/UserInterface/LLWidgetBorderViewController.h; sourceTree = ""; }; - 59BEC91DC693BB063B65D324ED1A36F1 /* NSObject+AvoidCrash.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "NSObject+AvoidCrash.m"; path = "AvoidCrash/NSObject+AvoidCrash.m"; sourceTree = ""; }; - 59F02994182D40650E8194612C91F47D /* enc.c */ = {isa = PBXFileReference; includeInIndex = 1; name = enc.c; path = src/dsp/enc.c; sourceTree = ""; }; - 59F5F2FAE3795F71FA5EFFC57C0D422C /* SDGraphicsImageRenderer.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDGraphicsImageRenderer.h; path = SDWebImage/Core/SDGraphicsImageRenderer.h; sourceTree = ""; }; - 5A2BB719E1792E006B83CD7621083519 /* AvoidCrash-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "AvoidCrash-prefix.pch"; sourceTree = ""; }; - 5A44C915129CF5FB29F75D6E99668448 /* YYAnimatedImageView.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = YYAnimatedImageView.m; path = YYImage/YYAnimatedImageView.m; sourceTree = ""; }; - 5A4D8F763DF17C7ABE0F9CD0E0094337 /* YYImage.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = YYImage.m; path = YYImage/YYImage.m; sourceTree = ""; }; - 5A5BA70FEC1C78E7C0AD01C1748FEFBC /* YBIBDataProtocol.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = YBIBDataProtocol.h; path = YBImageBrowser/Protocol/YBIBDataProtocol.h; sourceTree = ""; }; - 5A8FEE35372F6C7BF718AF877C4EC862 /* YYWebImage.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = YYWebImage.release.xcconfig; sourceTree = ""; }; - 5AB74FF76C681668732A016E3E39325B /* YYText.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.module; path = YYText.modulemap; sourceTree = ""; }; - 5AC25879876AB54C8D73855B58D378D8 /* LLNetworkComponent.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = LLNetworkComponent.m; path = LLDebugTool/Core/Component/Network/LLNetworkComponent.m; sourceTree = ""; }; - 5AFA83370A44F6C536769BF9E3788178 /* OSSModel.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = OSSModel.m; path = AliyunOSSSDK/OSSModel.m; sourceTree = ""; }; - 5AFB313B43FA2AD26597FD28A7B02161 /* RACScopedDisposable.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = RACScopedDisposable.m; path = ReactiveObjC/RACScopedDisposable.m; sourceTree = ""; }; + 5992088A813055291F36B0344ECDA1A3 /* UIView+MP4HWDecode.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "UIView+MP4HWDecode.m"; path = "iOS/QGVAPlayer/QGVAPlayer/Classes/Utils/Categorys/UIView+MP4HWDecode.m"; sourceTree = ""; }; + 59A03BE22CDD449090BAC7B02AF796E4 /* BRPickerView.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = BRPickerView.debug.xcconfig; sourceTree = ""; }; + 59A9ED22FE2FE804CA389E6D8653E544 /* SDAnimatedImage.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDAnimatedImage.h; path = SDWebImage/Core/SDAnimatedImage.h; sourceTree = ""; }; + 59AE9D70D9A19B0A9A979AB9768F21E5 /* LLSettingViewController.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = LLSettingViewController.m; path = LLDebugTool/Core/Others/Component/Setting/UserInterface/LLSettingViewController.m; sourceTree = ""; }; + 59C4B857C3564ECB2A07D79D96916AC2 /* JXCategoryView.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = JXCategoryView.debug.xcconfig; sourceTree = ""; }; + 59CA764D4D271AEEA362F8B3EC71ED60 /* UIImage+ExtendedCacheData.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "UIImage+ExtendedCacheData.m"; path = "SDWebImage/Core/UIImage+ExtendedCacheData.m"; sourceTree = ""; }; + 59CBEAB2995EB1847B7FC4FE89A714A7 /* JXCategoryBaseCellModel.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = JXCategoryBaseCellModel.h; path = Sources/Base/JXCategoryBaseCellModel.h; sourceTree = ""; }; + 5A02F9F5DA991A2B0285EBF37B13BE2E /* YBIBCollectionView.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = YBIBCollectionView.h; path = YBImageBrowser/Base/YBIBCollectionView.h; sourceTree = ""; }; + 5A06563771AD5B6DC597B80D8460B3A2 /* QGVAPConfigModel.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = QGVAPConfigModel.h; path = iOS/QGVAPlayer/QGVAPlayer/Classes/Models/QGVAPConfigModel.h; sourceTree = ""; }; + 5A4BD85D8382A0B5507404DC7B9DA89E /* YYImage-Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "YYImage-Info.plist"; sourceTree = ""; }; + 5A4C7B30FB80EE6DA2BC816069ABC236 /* YBIBDataMediator.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = YBIBDataMediator.h; path = YBImageBrowser/Base/YBIBDataMediator.h; sourceTree = ""; }; + 5A6671A763F65A861C237A039C08D398 /* JXCategoryListContainerView.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = JXCategoryListContainerView.m; path = Sources/Common/JXCategoryListContainerView.m; sourceTree = ""; }; + 5A669C34401252F978308F1576563A14 /* QGAnimatedImageDecodeConfig.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = QGAnimatedImageDecodeConfig.h; path = iOS/QGVAPlayer/QGVAPlayer/Classes/Controllers/QGAnimatedImageDecodeConfig.h; sourceTree = ""; }; + 5A6AE4D05DFEDE5863D2A5FFA43F75F3 /* TZLocationManager.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = TZLocationManager.m; path = TZImagePickerController/Location/TZLocationManager.m; sourceTree = ""; }; + 5A6FBB4C8D91B816E85D2AE45DAE84C6 /* UIDatePicker+RACSignalSupport.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "UIDatePicker+RACSignalSupport.h"; path = "ReactiveObjC/UIDatePicker+RACSignalSupport.h"; sourceTree = ""; }; + 5A87E7D21E00C0521DD0FFAD245BDF34 /* YBImageBrowser-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "YBImageBrowser-dummy.m"; sourceTree = ""; }; + 5A9FA9509C89FFF41AE1164D36C0C985 /* UIImage+MultiFormat.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "UIImage+MultiFormat.m"; path = "SDWebImage/Core/UIImage+MultiFormat.m"; sourceTree = ""; }; + 5AA52D27748E77DE70821D23A3D86E93 /* NSString+QCloudSHA.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "NSString+QCloudSHA.h"; path = "QCloudCore/Classes/Base/QCLOUDRestNet/QCloudSecret/NSString+QCloudSHA.h"; sourceTree = ""; }; + 5ACD2A903B7EDBEB11059E6E059F552D /* LLTitleViewController.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = LLTitleViewController.h; path = LLDebugTool/Core/Others/CommonUI/ViewController/TitleViewController/LLTitleViewController.h; sourceTree = ""; }; + 5AD3E84946F04BBCF27D92779CED252D /* BRPickerStyle.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = BRPickerStyle.h; path = BRPickerView/Core/BRPickerStyle.h; sourceTree = ""; }; + 5ADCFD520A1AA47C58313C5F58E22176 /* LrcParser.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = LrcParser.swift; path = AgoraLyricsScore/Class/Other/LrcParser.swift; sourceTree = ""; }; 5AFC9CB5F23D10155D6DFC87F02C2E1A /* TUIReferenceMessageCell.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = TUIReferenceMessageCell.h; sourceTree = ""; }; - 5B39922C045AE8F53E205C956D5FF742 /* NSTimer+YYAdd.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "NSTimer+YYAdd.m"; path = "YYCategories/Foundation/NSTimer+YYAdd.m"; sourceTree = ""; }; - 5B3AE16F4A757602D6257E9A2F768BFF /* MQTTSSLSecurityPolicyEncoder.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = MQTTSSLSecurityPolicyEncoder.h; path = MQTTClient/MQTTClient/MQTTSSLSecurityPolicyEncoder.h; sourceTree = ""; }; - 5B4A77C9A770321DFD1BE15FAD442EA6 /* RACMulticastConnection+Private.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "RACMulticastConnection+Private.h"; path = "ReactiveObjC/RACMulticastConnection+Private.h"; sourceTree = ""; }; - 5B68201A654F737330642C2495AD1325 /* LLLogModel.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = LLLogModel.h; path = LLDebugTool/Core/Component/Log/Function/LLLogModel.h; sourceTree = ""; }; - 5B745E760BF4AF934CB759C87F10EA22 /* YBImageBrowser.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = YBImageBrowser.h; path = YBImageBrowser/YBImageBrowser.h; sourceTree = ""; }; - 5B8401A8C9707D91B3E1F16D573A573F /* vp8_dec.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = vp8_dec.h; path = src/dec/vp8_dec.h; sourceTree = ""; }; + 5B183CC5E8148072B8DA532DAA6D1F13 /* picture_rescale_enc.c */ = {isa = PBXFileReference; includeInIndex = 1; name = picture_rescale_enc.c; path = src/enc/picture_rescale_enc.c; sourceTree = ""; }; + 5B225C31748D5973C2767CBCEA2616DA /* UIColor+VAPUtil.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "UIColor+VAPUtil.h"; path = "iOS/QGVAPlayer/QGVAPlayer/Classes/Utils/Categorys/UIColor+VAPUtil.h"; sourceTree = ""; }; + 5B6DDC7972DDADE492493B995D400DCF /* NSIndexSet+RACSequenceAdditions.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "NSIndexSet+RACSequenceAdditions.h"; path = "ReactiveObjC/NSIndexSet+RACSequenceAdditions.h"; sourceTree = ""; }; + 5B765BAD63B4B0446B65B03B06284E0B /* LLRouter.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = LLRouter.h; path = LLDebugTool/Core/Others/Router/LLRouter.h; sourceTree = ""; }; 5B87C5ED941D4516E2EB64739983E9B6 /* TUIBaseChatViewController_Minimalist+ProtectedAPI.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "TUIBaseChatViewController_Minimalist+ProtectedAPI.h"; sourceTree = ""; }; - 5B912AA106374EFEF87FF032DC814DAD /* QGBaseDecoder.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = QGBaseDecoder.m; path = iOS/QGVAPlayer/QGVAPlayer/Classes/Controllers/Decoders/QGBaseDecoder.m; sourceTree = ""; }; + 5B9348D4F60D56C673A7CEA33E823944 /* IQPreviousNextView.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = IQPreviousNextView.m; path = IQKeyboardManager/IQToolbar/IQPreviousNextView.m; sourceTree = ""; }; + 5B984728ADC52AF50BCCA6AE10D4564F /* QGAnimatedImageDecodeThreadPool.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = QGAnimatedImageDecodeThreadPool.m; path = iOS/QGVAPlayer/QGVAPlayer/Classes/Controllers/QGAnimatedImageDecodeThreadPool.m; sourceTree = ""; }; 5BA6046B4C2674409C0D5625F45F8769 /* BRPickerView */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; name = BRPickerView; path = BRPickerView.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - 5BB9CBA9B84CE9FCC92DD252DEB00EE5 /* BRPickerView-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "BRPickerView-prefix.pch"; sourceTree = ""; }; - 5BC35F28F4336A35C3B61935534DF8EC /* SDWebImagePrefetcher.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDWebImagePrefetcher.m; path = SDWebImage/Core/SDWebImagePrefetcher.m; sourceTree = ""; }; - 5BD5FA8A96D9D23D9211395CCA8A4F9B /* SDImageCoder.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDImageCoder.m; path = SDWebImage/Core/SDImageCoder.m; sourceTree = ""; }; - 5BE4183EB9DA3DD05163547DECF0939C /* SDImageFramePool.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDImageFramePool.m; path = SDWebImage/Private/SDImageFramePool.m; sourceTree = ""; }; - 5BE5EB1092638E4D5B43B0EAAB04EEF5 /* JXCategoryNumberCell.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = JXCategoryNumberCell.m; path = Sources/Number/JXCategoryNumberCell.m; sourceTree = ""; }; - 5C0F37A69D4A56CBC03C8AD4B85B7DB6 /* RACmetamacros.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = RACmetamacros.h; path = ReactiveObjC/extobjc/RACmetamacros.h; sourceTree = ""; }; - 5C2D76A62ED836207C184BBC40C69766 /* VoicePitchChanger.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = VoicePitchChanger.swift; path = AgoraLyricsScore/Class/Scoring/Other/VoicePitchChanger.swift; sourceTree = ""; }; - 5C5C15F018F38A042C78F89DCC19685B /* Algorithm.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = Algorithm.h; path = AgoraLyricsScore/Class/Al/Algorithm.h; sourceTree = ""; }; - 5C6257AC871D5CC33F8C195BADA2E844 /* UIScrollView+YYAdd.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "UIScrollView+YYAdd.m"; path = "YYCategories/UIKit/UIScrollView+YYAdd.m"; sourceTree = ""; }; + 5BA80F3843FD77DE4AE38E0BB6FD35AD /* SDAnimatedImageRep.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDAnimatedImageRep.h; path = SDWebImage/Core/SDAnimatedImageRep.h; sourceTree = ""; }; + 5BD3B0AC73D7D3B674D2C8951C3CC458 /* MJRefreshTrailer.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = MJRefreshTrailer.m; path = MJRefresh/Base/MJRefreshTrailer.m; sourceTree = ""; }; + 5BE42352D9754498DBB58BBB69049326 /* MKMapView+LL_Location.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "MKMapView+LL_Location.h"; path = "LLDebugTool/Core/Component/Location/Function/MKMapView/MKMapView+LL_Location.h"; sourceTree = ""; }; + 5BE880167CD5D75B403798426828A97C /* YBIBCollectionView.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = YBIBCollectionView.m; path = YBImageBrowser/Base/YBIBCollectionView.m; sourceTree = ""; }; + 5C04E04A3257EDDCF57FC9A345960F61 /* RACKVOTrampoline.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = RACKVOTrampoline.h; path = ReactiveObjC/RACKVOTrampoline.h; sourceTree = ""; }; + 5C4B739BEFAA0E94F4B683D81609CE1C /* UIImageView+WebCache.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "UIImageView+WebCache.m"; path = "SDWebImage/Core/UIImageView+WebCache.m"; sourceTree = ""; }; + 5C4F242CD832E3801061800A00E81669 /* RACTestScheduler.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = RACTestScheduler.m; path = ReactiveObjC/RACTestScheduler.m; sourceTree = ""; }; + 5C541EB345AA0147795628FD8E4814B3 /* LLNoneCopyTextField.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = LLNoneCopyTextField.m; path = LLDebugTool/Core/Others/CommonUI/View/NoneCopyTextField/LLNoneCopyTextField.m; sourceTree = ""; }; + 5C73C1F8EEF212FDE5556FDC4A99AD2C /* UIView+YYText.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "UIView+YYText.m"; path = "YYText/Utility/UIView+YYText.m"; sourceTree = ""; }; + 5C74512A9EC30518FADD1B3ECAB2C27C /* NSMutableData+QCloud_CRC.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "NSMutableData+QCloud_CRC.m"; path = "QCloudCore/Classes/Base/QCloudCategory/NSMutableData+QCloud_CRC.m"; sourceTree = ""; }; 5C8DA2A02D44E90EB49285092734D51D /* TUIJoinGroupMessageCell_Minimalist.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = TUIJoinGroupMessageCell_Minimalist.h; sourceTree = ""; }; - 5C90057D3802BA6FEFBC84A8341DE7DD /* mz_strm_split.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = mz_strm_split.h; path = SSZipArchive/minizip/mz_strm_split.h; sourceTree = ""; }; - 5C93A460B1526056E40F5B47D308635A /* NSObject+RACKVOWrapper.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "NSObject+RACKVOWrapper.h"; path = "ReactiveObjC/NSObject+RACKVOWrapper.h"; sourceTree = ""; }; - 5CA119C7B5B21962C540B1D1BED8438F /* quant_enc.c */ = {isa = PBXFileReference; includeInIndex = 1; name = quant_enc.c; path = src/enc/quant_enc.c; sourceTree = ""; }; + 5C8E309E449353BA9E88041E725C3240 /* NSButton+WebCache.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "NSButton+WebCache.m"; path = "SDWebImage/Core/NSButton+WebCache.m"; sourceTree = ""; }; + 5C931A54C2E2C07F96655639E86785D4 /* UIActionSheet+RACSignalSupport.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "UIActionSheet+RACSignalSupport.m"; path = "ReactiveObjC/UIActionSheet+RACSignalSupport.m"; sourceTree = ""; }; 5CAD0AD352E2C213E674C5467229A9AC /* TUIVoiceMessageCell_Minimalist.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = TUIVoiceMessageCell_Minimalist.h; sourceTree = ""; }; + 5CAEB5D96592F00F666AB6E47CC47E91 /* LLInternalMacros.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = LLInternalMacros.h; path = LLDebugTool/Core/Others/Macros/LLInternalMacros.h; sourceTree = ""; }; + 5CB0F6D85B106F72CF74B3CEC5A1D176 /* MQTTClient-Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "MQTTClient-Info.plist"; sourceTree = ""; }; + 5CB89412A91A86D42BDCB3EFCBE8B644 /* OSSFileLogger.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = OSSFileLogger.h; path = AliyunOSSSDK/OSSFileLog/OSSFileLogger.h; sourceTree = ""; }; 5CC32A51336B1D6507C77DE4C575139C /* TUIFileViewController_Minimalist.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = TUIFileViewController_Minimalist.m; sourceTree = ""; }; + 5CE8F498500E97CEE4FAF754B750338C /* YYModel.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.module; path = YYModel.modulemap; sourceTree = ""; }; + 5CF4D2FE91FD3D313739E44B80DDA00A /* UIView+WebCache.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "UIView+WebCache.h"; path = "SDWebImage/Core/UIView+WebCache.h"; sourceTree = ""; }; 5CFA74FA375BF7B5E5D107A62E55B907 /* TUIMessageSearchDataProvider.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = TUIMessageSearchDataProvider.m; sourceTree = ""; }; - 5D17A1DCD046EB694DCD8D2D86A83792 /* sharpyuv.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = sharpyuv.h; path = sharpyuv/sharpyuv.h; sourceTree = ""; }; - 5D3453AD440E8776E21812DC32CC673A /* MQTTCFSocketEncoder.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = MQTTCFSocketEncoder.m; path = MQTTClient/MQTTClient/MQTTCFSocketEncoder.m; sourceTree = ""; }; - 5D42EEB22711E17D3F469B15EB92596E /* TIMPush.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = TIMPush.h; path = "TIMPush.xcframework/ios-arm64/TIMPush.framework/Headers/TIMPush.h"; sourceTree = ""; }; - 5D4590DE7BFAB8B5585664C4271F8723 /* FMDatabaseAdditions.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FMDatabaseAdditions.h; path = src/fmdb/FMDatabaseAdditions.h; sourceTree = ""; }; + 5D16A59BD9CAE5F6315D5D8438950C3F /* MQTTSessionSynchron.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = MQTTSessionSynchron.m; path = MQTTClient/MQTTClient/MQTTSessionSynchron.m; sourceTree = ""; }; + 5D405D94057F22C3BE308F2B73D62B94 /* LLFormatterTool.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = LLFormatterTool.h; path = LLDebugTool/Core/Others/FormatterTool/LLFormatterTool.h; sourceTree = ""; }; + 5D4BC79C3D9B76FF89F8811540251066 /* QCloudCOSStorageClassEnum.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = QCloudCOSStorageClassEnum.h; path = QCloudCOSXML/Classes/Transfer/enum/QCloudCOSStorageClassEnum.h; sourceTree = ""; }; 5D4EDE4133B90DA0FCF72C6B9141D7A0 /* AlbumPicker.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = AlbumPicker.h; sourceTree = ""; }; - 5D6D46CFFA25461A23FA6F7C95B5D6E0 /* LLWidgetBorderHelper.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = LLWidgetBorderHelper.h; path = LLDebugTool/Core/Component/WidgetBorder/Function/LLWidgetBorderHelper.h; sourceTree = ""; }; + 5D60C8CF30CE6978A59CD19521DB6EB5 /* MQTTCoreDataPersistence.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = MQTTCoreDataPersistence.h; path = MQTTClient/MQTTClient/MQTTCoreDataPersistence.h; sourceTree = ""; }; + 5D6D94888D0D254E26C1D3D2BF3B2CBA /* SDWebImageWebPCoder.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.module; path = SDWebImageWebPCoder.modulemap; sourceTree = ""; }; 5D73ED9DCB04D101A1FA489C7FB2A54D /* AliyunOSSiOS-AliyunOSSiOS_Privacy */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; name = "AliyunOSSiOS-AliyunOSSiOS_Privacy"; path = AliyunOSSiOS_Privacy.bundle; sourceTree = BUILT_PRODUCTS_DIR; }; 5D788B07075A4FD166F5F45AC14AC33C /* TIMCommon.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = TIMCommon.debug.xcconfig; sourceTree = ""; }; - 5DC324923EDC21A26D4B568AAC873688 /* LLTitleCell.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = LLTitleCell.m; path = LLDebugTool/Core/Others/CommonUI/View/TitleCell/LLTitleCell.m; sourceTree = ""; }; - 5DD9C40E05539B7B6E58688BA870BC77 /* LLScreenshotWindow.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = LLScreenshotWindow.m; path = LLDebugTool/Core/Component/Screenshot/UserInterface/LLScreenshotWindow.m; sourceTree = ""; }; - 5DF2F527B07456732064F6F5B3C39379 /* FMDB-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "FMDB-dummy.m"; sourceTree = ""; }; - 5DFC64AD2C17C3AA6FE573958757156C /* NSMutableData+OSS_CRC.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "NSMutableData+OSS_CRC.h"; path = "AliyunOSSSDK/NSMutableData+OSS_CRC.h"; sourceTree = ""; }; - 5E4140709CD30665E92934462B28F87F /* LLNetworkComponent.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = LLNetworkComponent.h; path = LLDebugTool/Core/Component/Network/LLNetworkComponent.h; sourceTree = ""; }; + 5D8BE51E1B0036FE1F123834CEEBB13F /* YBIBSentinel.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = YBIBSentinel.m; path = YBImageBrowser/Helper/YBIBSentinel.m; sourceTree = ""; }; + 5DA566BA305FC8AC53CCD33A2CFEFDD5 /* QCloudXMLWriter.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = QCloudXMLWriter.m; path = QCloudCore/Classes/Base/QCLOUDRestNet/CoreRequest/Serializer/XML/XMLDictionary/Writer/QCloudXMLWriter.m; sourceTree = ""; }; + 5DA7FB4A463B745AEEE150F7D5826337 /* QCloudDomain.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = QCloudDomain.m; path = QCloudCore/Classes/Base/QCLOUDRestNet/DNSCache/QCloudDomain.m; sourceTree = ""; }; + 5DB62198D391E68703BA2846D5C2CCF7 /* Protobuf-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "Protobuf-dummy.m"; sourceTree = ""; }; + 5DBC0BAD4F9281386E8BC0FDCB01FEF3 /* FMResultSet.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FMResultSet.m; path = src/fmdb/FMResultSet.m; sourceTree = ""; }; + 5E09CB1F8712CEBC8AF29845E3E094C2 /* BRResultModel.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = BRResultModel.m; path = BRPickerView/Deprecated/StringPickerView/BRResultModel.m; sourceTree = ""; }; + 5E0C89D8B95AEE225AF9EA68327CA306 /* WechatOpenSDK-XCFramework.xcframework */ = {isa = PBXFileReference; includeInIndex = 1; path = "WechatOpenSDK-XCFramework.xcframework"; sourceTree = ""; }; + 5E1A7B52CBEB40776FBBD7E00B21125A /* LyricsFileDownloader+Info.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "LyricsFileDownloader+Info.swift"; path = "AgoraLyricsScore/Class/Downloader/LyricsFileDownloader+Info.swift"; sourceTree = ""; }; + 5E216BE9228887E06127F9CE98FF3C16 /* dsp.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = dsp.h; path = src/dsp/dsp.h; sourceTree = ""; }; 5E4674603A5D5B9215FFA0F8E69F8B71 /* libwebp */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; name = libwebp; path = libwebp.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + 5E5D6DEC4D689A5CCD2A9B6945192CE4 /* YBIBContainerView.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = YBIBContainerView.m; path = YBImageBrowser/Base/YBIBContainerView.m; sourceTree = ""; }; + 5E5DD15436091CA4AE1092B904799916 /* NSHTTPCookie+QCloudNetworking.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "NSHTTPCookie+QCloudNetworking.h"; path = "QCloudCore/Classes/Base/QCLOUDRestNet/CoreRequest/NSHTTPCookie+QCloudNetworking.h"; sourceTree = ""; }; 5E5F28332B507B8323DC625AB8F34116 /* TUIMessageDataProvider.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = TUIMessageDataProvider.h; sourceTree = ""; }; - 5E697AF06DAEB05FDA140390182DE628 /* LLThemeManager.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = LLThemeManager.m; path = LLDebugTool/Core/Others/Manager/ThemeManager/LLThemeManager.m; sourceTree = ""; }; - 5E6AFCEEFAF137883D32E47BD48C0DEA /* LLSettingComponent.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = LLSettingComponent.m; path = LLDebugTool/Core/Others/Component/Setting/LLSettingComponent.m; sourceTree = ""; }; - 5E85D466DAF6130084249DD59520D273 /* NSDictionary+LL_Utils.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "NSDictionary+LL_Utils.h"; path = "LLDebugTool/Core/Others/Category/NSDictionary/NSDictionary+LL_Utils.h"; sourceTree = ""; }; - 5E897D0959338F7C3C6938D01F3ECD5F /* LLSandboxHelper.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = LLSandboxHelper.h; path = LLDebugTool/Core/Component/Sandbox/Function/LLSandboxHelper.h; sourceTree = ""; }; - 5E9888DF58BF1C3626184D210A3E1D7A /* LLCrash.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = LLCrash.h; path = LLDebugTool/Core/Component/Crash/LLCrash.h; sourceTree = ""; }; - 5EB57D9635A33A33212E093AF52E5728 /* MASViewAttribute.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = MASViewAttribute.h; path = Masonry/MASViewAttribute.h; sourceTree = ""; }; + 5E60E1C7FF51630E359F4349A09761DD /* lossless_msa.c */ = {isa = PBXFileReference; includeInIndex = 1; name = lossless_msa.c; path = src/dsp/lossless_msa.c; sourceTree = ""; }; 5EC8D55D1FF5DA885E9FF8AE8E2D7517 /* UIAlertController+TUICustomStyle.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "UIAlertController+TUICustomStyle.m"; sourceTree = ""; }; 5ED079007E65C7E4F9BB0FC4CB4B82DC /* TUIRelationUserModel.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = TUIRelationUserModel.m; sourceTree = ""; }; - 5EE798C142A2020443A407DB553EC25C /* NSObject+YYModel.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "NSObject+YYModel.h"; path = "YYModel/NSObject+YYModel.h"; sourceTree = ""; }; - 5EFBC9FCA9177589DDCFC9E86873B674 /* MJRefreshConst.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = MJRefreshConst.m; path = MJRefresh/MJRefreshConst.m; sourceTree = ""; }; - 5EFC2B9A5DD894B9DDC7C1B220A86E22 /* dec_sse2.c */ = {isa = PBXFileReference; includeInIndex = 1; name = dec_sse2.c; path = src/dsp/dec_sse2.c; sourceTree = ""; }; - 5F14B4836CDC1D67C95178E6904F2980 /* YBIBDefaultWebImageMediator.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = YBIBDefaultWebImageMediator.m; path = YBImageBrowser/WebImageMediator/YBIBDefaultWebImageMediator.m; sourceTree = ""; }; + 5EDEDB571BD2BCAA8282600BEFDAEC76 /* SDCycleScrollView-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "SDCycleScrollView-umbrella.h"; sourceTree = ""; }; + 5F180675B02342B8418012E932CB120F /* LLNetworkCell.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = LLNetworkCell.m; path = LLDebugTool/Core/Component/Network/UserInterface/LLNetworkCell.m; sourceTree = ""; }; 5F2B239B652D2D3DC03E303D582E2C23 /* TUICommonModel.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = TUICommonModel.h; sourceTree = ""; }; - 5F34701B6997BFB8393C6D4EAC90CC73 /* NSKeyedUnarchiver+YYAdd.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "NSKeyedUnarchiver+YYAdd.h"; path = "YYCategories/Foundation/NSKeyedUnarchiver+YYAdd.h"; sourceTree = ""; }; - 5F4D8633E56A1ABE21BAE5B39A54DDB1 /* LLToastUtils.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = LLToastUtils.h; path = LLDebugTool/Core/Others/ToastUtils/LLToastUtils.h; sourceTree = ""; }; - 5F4E0564755FFDBADDB9183ECB554A68 /* LLNetworkViewController.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = LLNetworkViewController.h; path = LLDebugTool/Core/Component/Network/UserInterface/LLNetworkViewController.h; sourceTree = ""; }; - 5F4E9AF7F25D364F8164C7753CC72C8B /* QGVAPlayer-Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "QGVAPlayer-Info.plist"; sourceTree = ""; }; - 5F5D21C60AB1C2F9480977EEB8AB0D5E /* AlipaySDK-iOS.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "AlipaySDK-iOS.release.xcconfig"; sourceTree = ""; }; - 5F5F511E4E026BBDDB111AF16C4EB126 /* LLTitleSwitchCell.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = LLTitleSwitchCell.m; path = LLDebugTool/Core/Others/CommonUI/View/TitleCell/LLTitleSwitchCell.m; sourceTree = ""; }; - 5F858ACB8F054980D7E116044C9A022C /* QGHWDShaderTypes.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = QGHWDShaderTypes.h; path = iOS/QGVAPlayer/QGVAPlayer/Shaders/QGHWDShaderTypes.h; sourceTree = ""; }; - 5FB19E2769E1329704321BF6EEFB773A /* BRDatePickerView.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = BRDatePickerView.m; path = BRPickerView/DatePicker/BRDatePickerView.m; sourceTree = ""; }; - 5FB1A41894B3062E2B83982585206CA4 /* QGVAPlayer.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = QGVAPlayer.h; path = iOS/QGVAPlayer/QGVAPlayer/Classes/QGVAPlayer.h; sourceTree = ""; }; - 5FB8BC623C6D9DD9C68B774ACCADC0E9 /* YBIBToastView.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = YBIBToastView.h; path = YBImageBrowser/AuxiliaryView/YBIBToastView.h; sourceTree = ""; }; + 5F3353A426C7C99A13ABAC5E085CFE8A /* FMDatabase.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FMDatabase.m; path = src/fmdb/FMDatabase.m; sourceTree = ""; }; + 5F51F3BE189188690CCAEA6FE1A67ECA /* NSTimer+YYAdd.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "NSTimer+YYAdd.h"; path = "YYCategories/Foundation/NSTimer+YYAdd.h"; sourceTree = ""; }; + 5F5221963815A4246195A4F7393D4D27 /* LLScreenshotSelectorView.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = LLScreenshotSelectorView.h; path = LLDebugTool/Core/Component/Screenshot/UserInterface/LLScreenshotSelectorView.h; sourceTree = ""; }; + 5F6CF3F8AFA70F47C743ED5063206383 /* SDCycleScrollView-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "SDCycleScrollView-prefix.pch"; sourceTree = ""; }; + 5F78210C3D90DFCC8312FC285147E50B /* YBIBVideoData+Internal.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "YBIBVideoData+Internal.h"; path = "Video/YBIBVideoData+Internal.h"; sourceTree = ""; }; + 5F7A26AF65BC509BC99AA1FC85C51745 /* QGMP4HWDFileInfo.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = QGMP4HWDFileInfo.m; path = iOS/QGVAPlayer/QGVAPlayer/Classes/Models/QGMP4HWDFileInfo.m; sourceTree = ""; }; + 5FA491F71D09EE8210D0037DE3363926 /* NSMutableData+OSS_CRC.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "NSMutableData+OSS_CRC.h"; path = "AliyunOSSSDK/NSMutableData+OSS_CRC.h"; sourceTree = ""; }; + 5FA8775E4CBFB297E96159A4FA59A2C5 /* palette.c */ = {isa = PBXFileReference; includeInIndex = 1; name = palette.c; path = src/utils/palette.c; sourceTree = ""; }; + 5FA8A9238F9D0428F04C1A12C4A2537A /* LLLocationComponent.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = LLLocationComponent.h; path = LLDebugTool/Core/Component/Location/LLLocationComponent.h; sourceTree = ""; }; + 5FB2FC28DD2551C40A5A86D69A610B77 /* NSLayoutConstraint+MASDebugAdditions.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "NSLayoutConstraint+MASDebugAdditions.h"; path = "Masonry/NSLayoutConstraint+MASDebugAdditions.h"; sourceTree = ""; }; + 5FC5A55F5B13D5261B74CD0B8F8D29C8 /* LLWindowManager+Hierarchy.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "LLWindowManager+Hierarchy.h"; path = "LLDebugTool/Core/Component/Hierarchy/UserInterface/LLWindowManager+Hierarchy.h"; sourceTree = ""; }; + 5FE4B5C48241DD23EC880016020E67CD /* LLLocationProxy.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = LLLocationProxy.h; path = LLDebugTool/Core/Component/Location/Function/LLLocationProxy.h; sourceTree = ""; }; 5FF1B49917497CA7784806318AA23850 /* TUIConversationTableView.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = TUIConversationTableView.h; sourceTree = ""; }; - 5FFB9B32C9304B2C02F9226579B90D1B /* AvoidCrash.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = AvoidCrash.h; path = AvoidCrash/AvoidCrash.h; sourceTree = ""; }; - 600187BCDCF365645E5F4451C958FAE9 /* Wrappers.pbobjc.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = Wrappers.pbobjc.h; path = objectivec/google/protobuf/Wrappers.pbobjc.h; sourceTree = ""; }; + 60032E39B89A10E14CEC2557336A62AF /* YYWebImage-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "YYWebImage-prefix.pch"; sourceTree = ""; }; 6009D6F586D3EA39BEF69DD730FFE527 /* TUILinkCell_Minimalist.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = TUILinkCell_Minimalist.h; sourceTree = ""; }; - 6011940F094EBFF0D2FFF6A06B49CCBB /* animi.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = animi.h; path = src/mux/animi.h; sourceTree = ""; }; - 604B6177D7F790BBC99D79B61A10403E /* GPBWrappers.pbobjc.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = GPBWrappers.pbobjc.h; path = objectivec/GPBWrappers.pbobjc.h; sourceTree = ""; }; - 604D1FE7B994587782D5E78D8866E9BB /* NSMutableDictionary+AvoidCrash.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "NSMutableDictionary+AvoidCrash.h"; path = "AvoidCrash/NSMutableDictionary+AvoidCrash.h"; sourceTree = ""; }; - 6056B1EC9CE80CE2CAD3EB61737E0840 /* NSUserDefaults+LL_Utils.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "NSUserDefaults+LL_Utils.h"; path = "LLDebugTool/Core/Others/Category/NSUserDefaults/NSUserDefaults+LL_Utils.h"; sourceTree = ""; }; - 605B463D31C3111CE15C23C42A2243A1 /* LLDebugTool-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "LLDebugTool-umbrella.h"; sourceTree = ""; }; - 606BAB5DCA9C660E267EA1EEB3E53F24 /* UIView+LLWidgetBorder.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "UIView+LLWidgetBorder.h"; path = "LLDebugTool/Core/Component/WidgetBorder/Function/UIView+LLWidgetBorder.h"; sourceTree = ""; }; - 608BE80B7637F08E2F1EB5719409AFDE /* GPBUnknownFields_PackagePrivate.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = GPBUnknownFields_PackagePrivate.h; path = objectivec/GPBUnknownFields_PackagePrivate.h; sourceTree = ""; }; - 60979304EC286DDCC3C45369969B8EB7 /* lossless_sse41.c */ = {isa = PBXFileReference; includeInIndex = 1; name = lossless_sse41.c; path = src/dsp/lossless_sse41.c; sourceTree = ""; }; - 609F38FC2BF170DFF2AE9E585C34FFF9 /* UIView+MP4HWDecode.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "UIView+MP4HWDecode.h"; path = "iOS/QGVAPlayer/QGVAPlayer/Classes/Utils/Categorys/UIView+MP4HWDecode.h"; sourceTree = ""; }; - 60AAA5F448F4A6BBFB5BEFFA5F737DDE /* SDWebImage-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "SDWebImage-umbrella.h"; sourceTree = ""; }; - 60B3CD5B3DE785277672733EE37738DC /* analysis_enc.c */ = {isa = PBXFileReference; includeInIndex = 1; name = analysis_enc.c; path = src/enc/analysis_enc.c; sourceTree = ""; }; - 60D9E66108606702F5433BBA6214654B /* RACImmediateScheduler.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = RACImmediateScheduler.h; path = ReactiveObjC/RACImmediateScheduler.h; sourceTree = ""; }; - 60E714F82EE222A0F63630D61B959190 /* YBImageBrowser-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "YBImageBrowser-umbrella.h"; sourceTree = ""; }; - 60EB43759A795C970FFCF4CA4505C9DB /* libwebp.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = libwebp.release.xcconfig; sourceTree = ""; }; - 60F947CE04A1A0FCF25A9B0C51989DAB /* libwebp.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = libwebp.debug.xcconfig; sourceTree = ""; }; - 60FF643DA672F248EEC2A67C984DD59B /* NSMutableDictionary+OSS.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "NSMutableDictionary+OSS.m"; path = "AliyunOSSSDK/NSMutableDictionary+OSS.m"; sourceTree = ""; }; - 612B560D0E7ABEABC7B82D4986F590AE /* MJRefreshConfig.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = MJRefreshConfig.m; path = MJRefresh/MJRefreshConfig.m; sourceTree = ""; }; + 6040685E7D4DC736512DD586ADEEA597 /* rescaler_utils.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = rescaler_utils.h; path = src/utils/rescaler_utils.h; sourceTree = ""; }; + 60563E42F8C2BDF7A5316DD00173C890 /* SDWebImageTransition.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDWebImageTransition.h; path = SDWebImage/Core/SDWebImageTransition.h; sourceTree = ""; }; + 605DDB370CA419BC1C7BDF52982DE3C5 /* mz_strm_pkcrypt.c */ = {isa = PBXFileReference; includeInIndex = 1; name = mz_strm_pkcrypt.c; path = SSZipArchive/minizip/mz_strm_pkcrypt.c; sourceTree = ""; }; + 607DD143B7FE0F2FAC3B4835F05C6F0F /* AvoidCrash.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = AvoidCrash.release.xcconfig; sourceTree = ""; }; + 609C34D2447174114C2B15A677403B61 /* enc_msa.c */ = {isa = PBXFileReference; includeInIndex = 1; name = enc_msa.c; path = src/dsp/enc_msa.c; sourceTree = ""; }; + 60F0ACFACE35B256864B519DB9B6FD16 /* JXCategoryIndicatorComponentView.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = JXCategoryIndicatorComponentView.h; path = Sources/Indicator/IndicatorViews/JXCategoryIndicatorComponentView.h; sourceTree = ""; }; + 6110DCF76C3074CB5C0F3BE724EDDF56 /* libwebp-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "libwebp-dummy.m"; sourceTree = ""; }; + 6111A4BED9FE9D6BCD61B8D7FAF17CA0 /* GPBRuntimeTypes.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = GPBRuntimeTypes.h; path = objectivec/GPBRuntimeTypes.h; sourceTree = ""; }; + 6112F12A2C44C152B62D6CF04EA3C2A8 /* JXCategoryBaseView.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = JXCategoryBaseView.h; path = Sources/Base/JXCategoryBaseView.h; sourceTree = ""; }; + 6114638680138B240CC22DF88534B37A /* LLCrashViewController.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = LLCrashViewController.m; path = LLDebugTool/Core/Component/Crash/UserInterface/LLCrashViewController.m; sourceTree = ""; }; + 6115A8D16D865CDF496810AACA0A4B13 /* NSDictionary+LL_Utils.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "NSDictionary+LL_Utils.h"; path = "LLDebugTool/Core/Others/Category/NSDictionary/NSDictionary+LL_Utils.h"; sourceTree = ""; }; 61394E50922D2535BBE7004DA14AFE92 /* MultimediaRecorder.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = MultimediaRecorder.m; sourceTree = ""; }; - 614E21F4741355B3B329E475AAD5EE31 /* RACEmptySequence.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = RACEmptySequence.m; path = ReactiveObjC/RACEmptySequence.m; sourceTree = ""; }; - 618A2B516047117F6B2DE77209ED9C05 /* UIBarButtonItem+YYAdd.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "UIBarButtonItem+YYAdd.h"; path = "YYCategories/UIKit/UIBarButtonItem+YYAdd.h"; sourceTree = ""; }; - 618C665AC79DCC1127C20C92479C7C21 /* OSSCancellationToken.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = OSSCancellationToken.h; path = AliyunOSSSDK/OSSTask/OSSCancellationToken.h; sourceTree = ""; }; - 6194FEC8E3AA6C018DE540C5B4361ED4 /* ssim_sse2.c */ = {isa = PBXFileReference; includeInIndex = 1; name = ssim_sse2.c; path = src/dsp/ssim_sse2.c; sourceTree = ""; }; - 6198CD0C7F87CCCA1BECDBC050110782 /* alpha_enc.c */ = {isa = PBXFileReference; includeInIndex = 1; name = alpha_enc.c; path = src/enc/alpha_enc.c; sourceTree = ""; }; - 61D7F70433229A22F3A30D1AD14CA472 /* LLLocationComponent.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = LLLocationComponent.m; path = LLDebugTool/Core/Component/Location/LLLocationComponent.m; sourceTree = ""; }; - 61D9E0C415937DE7E59760AAD7167051 /* LLAppInfoComponent.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = LLAppInfoComponent.m; path = LLDebugTool/Core/Component/AppInfo/LLAppInfoComponent.m; sourceTree = ""; }; - 61DCA12D208383EE15614CE2EF950C5E /* MQTTClient-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "MQTTClient-prefix.pch"; sourceTree = ""; }; + 613A2513436703013AE9CEDA1109907D /* OSSRestoreObjectResult.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = OSSRestoreObjectResult.h; path = AliyunOSSSDK/OSSRestoreObjectResult.h; sourceTree = ""; }; + 6148E9DB32FE775F65B25614196D5C40 /* RACReplaySubject.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = RACReplaySubject.m; path = ReactiveObjC/RACReplaySubject.m; sourceTree = ""; }; + 6170642C1C4E9BC596E9F1101C087707 /* LLCrashCell.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = LLCrashCell.h; path = LLDebugTool/Core/Component/Crash/UserInterface/LLCrashCell.h; sourceTree = ""; }; + 61752A0E14B02C5DCBDCFE98F7EB9266 /* QCloudMultiDelegateProxy.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = QCloudMultiDelegateProxy.h; path = QCloudCore/Classes/Base/ObjectFack/QCloudMultiDelegateProxy.h; sourceTree = ""; }; + 6197C7B50545936E0C999DC85F34A649 /* OSSGetSymlinkRequest.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = OSSGetSymlinkRequest.m; path = AliyunOSSSDK/OSSGetSymlinkRequest.m; sourceTree = ""; }; + 61B8191C761F55FF121C7571334E3197 /* SDAssociatedObject.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDAssociatedObject.m; path = SDWebImage/Private/SDAssociatedObject.m; sourceTree = ""; }; + 61D8691DF4138DD1F4223CB015018521 /* JXCategoryIndicatorView.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = JXCategoryIndicatorView.m; path = Sources/Indicator/JXCategoryIndicatorView.m; sourceTree = ""; }; 61DE3E8F06512815DB6D6DD71AD2F899 /* TUIFaceMessageCell.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = TUIFaceMessageCell.m; sourceTree = ""; }; - 61DE752A6D1CF125C5A2A5BD48BA0227 /* video_dec.xcframework */ = {isa = PBXFileReference; includeInIndex = 1; path = video_dec.xcframework; sourceTree = ""; }; - 61E4C5401F2E34BCE0FCBA470E3C957E /* YYFrameImage.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = YYFrameImage.m; path = YYImage/YYFrameImage.m; sourceTree = ""; }; 61E71E5AFC1EED7DE1FC6729D0DE6108 /* TUIConversation-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "TUIConversation-dummy.m"; sourceTree = ""; }; - 6227D63813069B9CA267358C5B2E3D2E /* SDImageCoder.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDImageCoder.h; path = SDWebImage/Core/SDImageCoder.h; sourceTree = ""; }; + 61F21BBE5CAA353DB16B76CF0B6E2AEA /* LLFilterDateView.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = LLFilterDateView.m; path = LLDebugTool/Core/Others/CommonUI/View/FilterView/LLFilterDateView.m; sourceTree = ""; }; + 621FAB72115D94D553E6D61DC403E6FD /* LyricsView.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = LyricsView.swift; path = AgoraLyricsScore/Class/Lyrics/LyricsView.swift; sourceTree = ""; }; + 6221E8AB13753690EE8654446ABF1488 /* filters.c */ = {isa = PBXFileReference; includeInIndex = 1; name = filters.c; path = src/dsp/filters.c; sourceTree = ""; }; + 622DDCF1096DB4BB33190FCDA5EDBCCA /* RACUnit.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = RACUnit.m; path = ReactiveObjC/RACUnit.m; sourceTree = ""; }; + 623F3004FBB3625FB6DE1B1DA2871059 /* UIImage+YYWebImage.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "UIImage+YYWebImage.m"; path = "YYWebImage/Categories/UIImage+YYWebImage.m"; sourceTree = ""; }; 62476AD95833F1EC15B5FC7E01E6CB19 /* TUICore-TUICore_Privacy */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; name = "TUICore-TUICore_Privacy"; path = TUICore_Privacy.bundle; sourceTree = BUILT_PRODUCTS_DIR; }; - 62744747DD9D3BCB210D69ECCF3CF405 /* LLEntryViewController.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = LLEntryViewController.m; path = LLDebugTool/Core/Others/CommonUI/Window/EntryWindow/LLEntryViewController.m; sourceTree = ""; }; - 628A5A8364FBAFBE40D9106B3347B7B9 /* LLSettingManager.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = LLSettingManager.h; path = LLDebugTool/Core/Others/Manager/SettingManager/LLSettingManager.h; sourceTree = ""; }; - 62BA00937E80B01E5AA79C6A6E698958 /* SDFileAttributeHelper.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDFileAttributeHelper.m; path = SDWebImage/Private/SDFileAttributeHelper.m; sourceTree = ""; }; - 62D34159820E86AA003CEC486E175B6A /* NSParagraphStyle+YYText.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "NSParagraphStyle+YYText.h"; path = "YYText/Utility/NSParagraphStyle+YYText.h"; sourceTree = ""; }; - 62E39E077C301AED321EDEA4D9FA33C9 /* LLDetailTitleSelectorCell.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = LLDetailTitleSelectorCell.h; path = LLDebugTool/Core/Others/CommonUI/View/TitleCell/LLDetailTitleSelectorCell.h; sourceTree = ""; }; - 62E4490E6CBEB7E0B7D7ABACA43DC8A1 /* NSURLConnection+RACSupport.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "NSURLConnection+RACSupport.m"; path = "ReactiveObjC/NSURLConnection+RACSupport.m"; sourceTree = ""; }; - 62F6451C0AB15084F2AE9AA9293C2EC2 /* OSSCancellationTokenRegistration.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = OSSCancellationTokenRegistration.m; path = AliyunOSSSDK/OSSTask/OSSCancellationTokenRegistration.m; sourceTree = ""; }; - 63194898AEFB1F9FED9915979FABB9FE /* JXCategoryBaseCellModel.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = JXCategoryBaseCellModel.h; path = Sources/Base/JXCategoryBaseCellModel.h; sourceTree = ""; }; - 632E0BB55069E906C587C0395E619E35 /* AFURLResponseSerialization.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = AFURLResponseSerialization.h; path = AFNetworking/AFURLResponseSerialization.h; sourceTree = ""; }; + 6266B7B85BC7C76E37F697E8C52F7304 /* CLLocation+LL_Location.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "CLLocation+LL_Location.m"; path = "LLDebugTool/Core/Component/Location/Function/CLLocation/CLLocation+LL_Location.m"; sourceTree = ""; }; + 626BB9A04BF481E00E9842E0113F90AA /* SDGraphicsImageRenderer.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDGraphicsImageRenderer.m; path = SDWebImage/Core/SDGraphicsImageRenderer.m; sourceTree = ""; }; + 62A7818C3C86A9C69D1661932E0DC7D1 /* cost.c */ = {isa = PBXFileReference; includeInIndex = 1; name = cost.c; path = src/dsp/cost.c; sourceTree = ""; }; + 62BA7E83F0DCC3BFFC9ED548C5094D44 /* UIGestureRecognizer+YYAdd.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "UIGestureRecognizer+YYAdd.h"; path = "YYCategories/UIKit/UIGestureRecognizer+YYAdd.h"; sourceTree = ""; }; + 62CF371FE27BDFEAF25D8F9228D616A6 /* LLScreenshotViewController.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = LLScreenshotViewController.m; path = LLDebugTool/Core/Component/Screenshot/UserInterface/LLScreenshotViewController.m; sourceTree = ""; }; + 62D2D3B118A4F616DAA2D0738B90699D /* MJRefreshStateHeader.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = MJRefreshStateHeader.m; path = MJRefresh/Custom/Header/MJRefreshStateHeader.m; sourceTree = ""; }; + 631F823FA56A6BB0323A5521AB2017B5 /* YYLabel.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = YYLabel.m; path = YYText/YYLabel.m; sourceTree = ""; }; + 63307022B07850EAC2377DBAD303A51E /* AgoraVideoDecoderExtension.xcframework */ = {isa = PBXFileReference; includeInIndex = 1; path = AgoraVideoDecoderExtension.xcframework; sourceTree = ""; }; + 6336BA27A0A65F973C5488887D567474 /* YBIBSentinel.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = YBIBSentinel.h; path = YBImageBrowser/Helper/YBIBSentinel.h; sourceTree = ""; }; 6353CA54FB78AEBA93A275549DC2A160 /* Pods-QXLive-frameworks.sh */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.script.sh; path = "Pods-QXLive-frameworks.sh"; sourceTree = ""; }; - 636C9F5B94ABEC692A8C134264864AA7 /* AliyunOSSiOS.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = AliyunOSSiOS.release.xcconfig; sourceTree = ""; }; - 63783C8C7D8459660065E5F923BD3F1F /* NSArray+RACSequenceAdditions.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "NSArray+RACSequenceAdditions.m"; path = "ReactiveObjC/NSArray+RACSequenceAdditions.m"; sourceTree = ""; }; - 638177B7F85CDF5D67AAD9972E38C978 /* histogram_enc.c */ = {isa = PBXFileReference; includeInIndex = 1; name = histogram_enc.c; path = src/enc/histogram_enc.c; sourceTree = ""; }; - 6385E47C78E7A354F67C3140F9399359 /* PrivacyInfo.xcprivacy */ = {isa = PBXFileReference; includeInIndex = 1; name = PrivacyInfo.xcprivacy; path = privacy/PrivacyInfo.xcprivacy; sourceTree = ""; }; - 638CA51AACFC6C661E87F56CCF7FD1A5 /* unzip.c */ = {isa = PBXFileReference; includeInIndex = 1; name = unzip.c; path = Zip/minizip/unzip.c; sourceTree = ""; }; + 6357121AA9EC74D1AA4218F756C2EEE1 /* SDWebImageCacheKeyFilter.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDWebImageCacheKeyFilter.m; path = SDWebImage/Core/SDWebImageCacheKeyFilter.m; sourceTree = ""; }; + 6382036A2DE542F37244F9B2ED5EA292 /* LLTitleSwitchCell.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = LLTitleSwitchCell.h; path = LLDebugTool/Core/Others/CommonUI/View/TitleCell/LLTitleSwitchCell.h; sourceTree = ""; }; 63A2A2963FFE0BDF24C74D20F8916937 /* TUIMoreView.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = TUIMoreView.m; sourceTree = ""; }; + 63B9B4BACBEA3184F3651DFA58603133 /* LLWindowManager+Magnifier.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "LLWindowManager+Magnifier.m"; path = "LLDebugTool/Core/Component/Magnifier/UserInterface/LLWindowManager+Magnifier.m"; sourceTree = ""; }; 63C8AC101E2CF6B61D058E5D4D0FAAC5 /* TIMGroupInfo+TUIDataProvider.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "TIMGroupInfo+TUIDataProvider.m"; sourceTree = ""; }; - 63C8FDB112830F4A2DF6C9C1D2360D5A /* LLScreenshotSelectorView.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = LLScreenshotSelectorView.h; path = LLDebugTool/Core/Component/Screenshot/UserInterface/LLScreenshotSelectorView.h; sourceTree = ""; }; - 63CDE53A29B0BF589F693E8CBAEBB2AF /* UIImage+ForceDecode.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "UIImage+ForceDecode.m"; path = "SDWebImage/Core/UIImage+ForceDecode.m"; sourceTree = ""; }; 63CE1B06DD93E606DA49ADD24AE6B99D /* TUIResponderTextView.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = TUIResponderTextView.h; sourceTree = ""; }; 63CFA7A386727582E326DC58C38DDCC1 /* TUIGroupNoticeCell.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = TUIGroupNoticeCell.h; sourceTree = ""; }; - 63E010833519B9ACF4F8B6D9DF28EC7A /* LLBaseCollectionViewCell.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = LLBaseCollectionViewCell.m; path = LLDebugTool/Core/Others/CommonUI/Base/LLBaseCollectionViewCell.m; sourceTree = ""; }; - 63EEDE214D2801C7AF04DF7DDF730311 /* LLTitleCellView.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = LLTitleCellView.h; path = LLDebugTool/Core/Others/CommonUI/View/CellView/LLTitleCellView.h; sourceTree = ""; }; - 640D7FE7FEF3FA2A830F4C7F59B5545F /* AlipaySDK.xcframework */ = {isa = PBXFileReference; includeInIndex = 1; path = AlipaySDK.xcframework; sourceTree = ""; }; - 6410D74145BF62D84FECAF2E75DFB970 /* LLLocationHelper.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = LLLocationHelper.m; path = LLDebugTool/Core/Component/Location/Function/LLLocationHelper.m; sourceTree = ""; }; + 63D913B0247EA9453038CE683ED652FF /* Bugly.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; path = Bugly.framework; sourceTree = ""; }; + 63ECAA4E7DABBCB3BF783384C7808CC7 /* NSURLSession+LL_Network.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "NSURLSession+LL_Network.m"; path = "LLDebugTool/Core/Component/Network/Function/NSURLSession/NSURLSession+LL_Network.m"; sourceTree = ""; }; + 63F7F4EF5CBB4638DF86614C461CDBB3 /* MQTTClient.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.module; path = MQTTClient.modulemap; sourceTree = ""; }; 6410F3572F9138679FC972A9B789A516 /* TUIMemberCellData.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = TUIMemberCellData.h; sourceTree = ""; }; - 641CA628D43B5A1C6085AB2C563B44E1 /* UIControl+RACSignalSupportPrivate.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "UIControl+RACSignalSupportPrivate.h"; path = "ReactiveObjC/UIControl+RACSignalSupportPrivate.h"; sourceTree = ""; }; - 6421C69D98A29F845ECC9CE3160D7FF2 /* LLFunctionItemContainerView.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = LLFunctionItemContainerView.m; path = LLDebugTool/Core/Others/Component/Function/UserInterface/LLFunctionItemContainerView.m; sourceTree = ""; }; + 642387252CAEC2179AC1B5C3E54449CB /* QCloudMainBundle.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = QCloudMainBundle.h; path = QCloudCore/Classes/Base/QCloudBundle/QCloudMainBundle.h; sourceTree = ""; }; 642FEF38E132FB38DD2B59B88F069917 /* YBImageBrowser */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; name = YBImageBrowser; path = YBImageBrowser.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - 643E57EF0AC45C3A17DCA0C4BB703C28 /* YYWebImage.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.module; path = YYWebImage.modulemap; sourceTree = ""; }; + 644954D23769116479DF55829AA34123 /* OSSSignerBase.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = OSSSignerBase.h; path = AliyunOSSSDK/Signer/OSSSignerBase.h; sourceTree = ""; }; 644A764DDDE2B5CCFD552DC09D2A6A24 /* TUIVoiceMessageCellData.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = TUIVoiceMessageCellData.m; sourceTree = ""; }; - 644C5E1632EC58931811708AC07F12B3 /* common_sse41.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = common_sse41.h; path = src/dsp/common_sse41.h; sourceTree = ""; }; - 64550E746282A75645D9947E7ACF3C60 /* QGBaseDecoder.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = QGBaseDecoder.h; path = iOS/QGVAPlayer/QGVAPlayer/Classes/Controllers/Decoders/QGBaseDecoder.h; sourceTree = ""; }; - 646587ECA4BBC4900149D0BDC4148DDF /* MJRefreshAutoGifFooter.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = MJRefreshAutoGifFooter.h; path = MJRefresh/Custom/Footer/Auto/MJRefreshAutoGifFooter.h; sourceTree = ""; }; 6469957AD651325AF37FB226E8998D56 /* TUITextMessageCell_Minimalist.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = TUITextMessageCell_Minimalist.m; sourceTree = ""; }; - 64760B2AF401FED2F042CB61BFA41999 /* NSURLSession+LL_Network.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "NSURLSession+LL_Network.m"; path = "LLDebugTool/Core/Component/Network/Function/NSURLSession/NSURLSession+LL_Network.m"; sourceTree = ""; }; - 647D6F61E66BC6504B5E09D7B5FDFB3A /* LLMagnifierView.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = LLMagnifierView.h; path = LLDebugTool/Core/Component/Magnifier/UserInterface/LLMagnifierView.h; sourceTree = ""; }; - 6482F5E40400B180C7D990119B4279A5 /* zip.c */ = {isa = PBXFileReference; includeInIndex = 1; name = zip.c; path = Zip/minizip/zip.c; sourceTree = ""; }; - 64A70131FA93859D2FE1A6201257A797 /* AFURLSessionManager.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = AFURLSessionManager.m; path = AFNetworking/AFURLSessionManager.m; sourceTree = ""; }; - 64B314B57DC5CC28F866C71DA0A90BDC /* YYTextUtilities.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = YYTextUtilities.m; path = YYText/Utility/YYTextUtilities.m; sourceTree = ""; }; - 64BF158414578943E8015D33BD5CB900 /* JXCategoryIndicatorCell.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = JXCategoryIndicatorCell.h; path = Sources/Indicator/JXCategoryIndicatorCell.h; sourceTree = ""; }; - 64CC4AFD8CBBA261D3C5B70AC79D079E /* UIResponder+LL_Utils.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "UIResponder+LL_Utils.m"; path = "LLDebugTool/Core/Others/Category/UIResponder/UIResponder+LL_Utils.m"; sourceTree = ""; }; + 646E4A6BFAE3542804E8B988D7ABB58F /* GPBExtensionRegistry.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = GPBExtensionRegistry.m; path = objectivec/GPBExtensionRegistry.m; sourceTree = ""; }; + 64892690D0CE2071D6D12296BE9C05A8 /* BRAddressModel.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = BRAddressModel.m; path = BRPickerView/Deprecated/AddressPickerView/BRAddressModel.m; sourceTree = ""; }; + 649AE684AF0BCEC9C9605216F274C8D8 /* YYCache-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "YYCache-dummy.m"; sourceTree = ""; }; + 64C0EABFBD54D70D54576509BB9EEEA2 /* vp8li_dec.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = vp8li_dec.h; path = src/dec/vp8li_dec.h; sourceTree = ""; }; 64E0ED44B3FA7BFA0B6B14112C984551 /* TUIBubbleMessageCellData.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = TUIBubbleMessageCellData.h; sourceTree = ""; }; - 65174360761DB66FED4DE75C805F65F3 /* mz_strm_mem.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = mz_strm_mem.h; path = SSZipArchive/minizip/mz_strm_mem.h; sourceTree = ""; }; - 652135307B51A24441A3CA94E9C1D047 /* NSNumber+YYAdd.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "NSNumber+YYAdd.m"; path = "YYCategories/Foundation/NSNumber+YYAdd.m"; sourceTree = ""; }; - 65226C8099E6CB9B0B3B9DF6ED9D7BA8 /* RTLManager.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = RTLManager.m; path = Sources/RLTManager/RTLManager.m; sourceTree = ""; }; - 652D8706564F0B0C4C2E1480B6FBAEA7 /* LLFunctionItemView.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = LLFunctionItemView.h; path = LLDebugTool/Core/Others/Component/Function/UserInterface/LLFunctionItemView.h; sourceTree = ""; }; - 654CFA573EECA8E3AC040B10A204A348 /* LLHierarchyViewController.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = LLHierarchyViewController.h; path = LLDebugTool/Core/Component/Hierarchy/UserInterface/LLHierarchyViewController.h; sourceTree = ""; }; - 654E73A05103D50BF66BAD6D0D38DEC8 /* LLNetworkModel.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = LLNetworkModel.h; path = LLDebugTool/Core/Component/Network/Function/LLNetworkModel.h; sourceTree = ""; }; + 64E8FCDBEE64029AF0E2945C34E14D6F /* Zip-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "Zip-umbrella.h"; sourceTree = ""; }; + 6503BAF1C6BD6DE4B2A9C92F451868BF /* QCloudAuthentationCreator.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = QCloudAuthentationCreator.m; path = QCloudCore/Classes/Base/QCloudClientBase/Authentation/QCloudAuthentationCreator.m; sourceTree = ""; }; + 650ECB455240EC2D4951420C5853FB71 /* OSSDeleteObjectTaggingRequest.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = OSSDeleteObjectTaggingRequest.m; path = AliyunOSSSDK/OSSDeleteObjectTaggingRequest.m; sourceTree = ""; }; + 65560FBD00985B81E1244034EFF5D028 /* SVGABitmapLayer.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SVGABitmapLayer.h; path = Source/SVGABitmapLayer.h; sourceTree = ""; }; 65621BEE3F93FA7DFC7B6FD9300CC4BE /* TUITextView.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = TUITextView.h; sourceTree = ""; }; - 65678AFC51F00D296A959D345B13E278 /* LLTitleHeaderView.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = LLTitleHeaderView.m; path = LLDebugTool/Core/Others/CommonUI/View/TitleCell/LLTitleHeaderView.m; sourceTree = ""; }; - 65760C38CA52743665906378AA28522D /* NSBundle+YYAdd.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "NSBundle+YYAdd.h"; path = "YYCategories/Foundation/NSBundle+YYAdd.h"; sourceTree = ""; }; 6577BCCD8FEF0E904F101B9F2FCDA937 /* TUIChatBaseDataProvider.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = TUIChatBaseDataProvider.h; sourceTree = ""; }; - 6592BD04192A92F3AA3212543091E9F3 /* OSSDeleteObjectTaggingResult.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = OSSDeleteObjectTaggingResult.h; path = AliyunOSSSDK/OSSDeleteObjectTaggingResult.h; sourceTree = ""; }; - 65C817FECAE62611DC8A0BEEB2B83CDB /* UIView+MP4HWDecode.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "UIView+MP4HWDecode.m"; path = "iOS/QGVAPlayer/QGVAPlayer/Classes/Utils/Categorys/UIView+MP4HWDecode.m"; sourceTree = ""; }; - 660BEEBB30C16E0400F8953714753B17 /* LLButton.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = LLButton.m; path = LLDebugTool/Core/Others/CommonUI/View/TabBarButton/LLButton.m; sourceTree = ""; }; + 65A5E1F52BB005E19DA58259743A63DB /* QGBaseAnimatedImageFrame.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = QGBaseAnimatedImageFrame.m; path = iOS/QGVAPlayer/QGVAPlayer/Classes/Models/QGBaseAnimatedImageFrame.m; sourceTree = ""; }; + 65A64F7169695A769517A54CBEF11E8F /* YBImageBrowserDelegate.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = YBImageBrowserDelegate.h; path = YBImageBrowser/Protocol/YBImageBrowserDelegate.h; sourceTree = ""; }; + 65A9BD6BC6509EAC9B75926E5C23C815 /* QCloudBizHTTPRequest.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = QCloudBizHTTPRequest.m; path = QCloudCore/Classes/Base/QCloudClientBase/Request/QCloudBizHTTPRequest.m; sourceTree = ""; }; + 65F07C155D2D631830BBEFC4B3175AEB /* bit_writer_utils.c */ = {isa = PBXFileReference; includeInIndex = 1; name = bit_writer_utils.c; path = src/utils/bit_writer_utils.c; sourceTree = ""; }; + 6605C6E24318FF0858D7894465B8CF34 /* TZImagePickerController.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = TZImagePickerController.release.xcconfig; sourceTree = ""; }; + 6617ABA08A42582D96197306CB572A92 /* UISwitch+RACSignalSupport.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "UISwitch+RACSignalSupport.m"; path = "ReactiveObjC/UISwitch+RACSignalSupport.m"; sourceTree = ""; }; 664D85C77511FBEB1896EFC975EA5903 /* Pods-QXLiveDev.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-QXLiveDev.release.xcconfig"; sourceTree = ""; }; - 665747A59D8D999B6E0DBC6B726A5DE7 /* GPBUnknownFieldSet_PackagePrivate.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = GPBUnknownFieldSet_PackagePrivate.h; path = objectivec/GPBUnknownFieldSet_PackagePrivate.h; sourceTree = ""; }; - 66A1E8AAD93B967F27BA75C7980CA671 /* UIImage+GIF.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "UIImage+GIF.m"; path = "SDWebImage/Core/UIImage+GIF.m"; sourceTree = ""; }; - 66AA06CECA7B456461C6386269D759F8 /* OSSExecutor.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = OSSExecutor.h; path = AliyunOSSSDK/OSSTask/OSSExecutor.h; sourceTree = ""; }; - 66C14A33E8167660438C7F28D3771F24 /* LLBaseView.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = LLBaseView.m; path = LLDebugTool/Core/Others/CommonUI/Base/LLBaseView.m; sourceTree = ""; }; - 66DF3D1DAFCFB049D5AFBF7B7E0EE32E /* LLHtmlViewController.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = LLHtmlViewController.h; path = LLDebugTool/Core/Component/Html/UserInterface/LLHtmlViewController.h; sourceTree = ""; }; + 66542E4E3D3B005611727F8A41CF09AA /* UIDevice+YYAdd.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "UIDevice+YYAdd.h"; path = "YYCategories/UIKit/UIDevice+YYAdd.h"; sourceTree = ""; }; + 665C51535F2E4D888446AA4C1D24119E /* LLHierarchyViewController.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = LLHierarchyViewController.m; path = LLDebugTool/Core/Component/Hierarchy/UserInterface/LLHierarchyViewController.m; sourceTree = ""; }; + 665CE986B42F440546A46928C2CD55BC /* YYTextRunDelegate.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = YYTextRunDelegate.h; path = YYText/String/YYTextRunDelegate.h; sourceTree = ""; }; + 6697056E33FF1977741123A939640298 /* QCloudServiceConfiguration+Quality.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "QCloudServiceConfiguration+Quality.h"; path = "QCloudCore/Classes/Base/QCloudBase/QualityAssurance/QCloudServiceConfiguration+Quality.h"; sourceTree = ""; }; + 66A1B7286800F9153C0B6AAF9A0A3549 /* LLEntryBigTitleView.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = LLEntryBigTitleView.m; path = LLDebugTool/Core/Others/CommonUI/Window/EntryWindow/LLEntryBigTitleView.m; sourceTree = ""; }; + 66B5F51CA24193FBCE780EDC93E423BE /* NSObject+RACDeallocating.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "NSObject+RACDeallocating.h"; path = "ReactiveObjC/NSObject+RACDeallocating.h"; sourceTree = ""; }; + 66BB1AF1C87BAB9329176155F6C493F7 /* RACBehaviorSubject.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = RACBehaviorSubject.m; path = ReactiveObjC/RACBehaviorSubject.m; sourceTree = ""; }; + 66E740293F0165C37F9706BD734847B4 /* SDMemoryCache.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDMemoryCache.h; path = SDWebImage/Core/SDMemoryCache.h; sourceTree = ""; }; 66FA1666019F2F9617F3A5B4650213BE /* WebKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = WebKit.framework; path = Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS18.0.sdk/System/Library/Frameworks/WebKit.framework; sourceTree = DEVELOPER_DIR; }; - 671AD687DE2A9004EB7B860715777140 /* OSSGetObjectACLRequest.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = OSSGetObjectACLRequest.h; path = AliyunOSSSDK/OSSGetObjectACLRequest.h; sourceTree = ""; }; - 6742952E3C2B164C0F8981C4F188C493 /* UIImage+ExtendedCacheData.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "UIImage+ExtendedCacheData.m"; path = "SDWebImage/Core/UIImage+ExtendedCacheData.m"; sourceTree = ""; }; - 674CEB6319DA26A8EB6FA8EB7C2E0B0C /* QGMP4AnimatedImageFrame.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = QGMP4AnimatedImageFrame.h; path = iOS/QGVAPlayer/QGVAPlayer/Classes/Models/QGMP4AnimatedImageFrame.h; sourceTree = ""; }; - 6754AA1C23E5AC36B71614E2A951674F /* SDAnimatedImagePlayer.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDAnimatedImagePlayer.h; path = SDWebImage/Core/SDAnimatedImagePlayer.h; sourceTree = ""; }; - 6759BC0F35925833D132DC61E26AAB36 /* UIFont+YYAdd.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "UIFont+YYAdd.h"; path = "YYCategories/UIKit/UIFont+YYAdd.h"; sourceTree = ""; }; - 67643ADF05891CEDA4BB5698ADAD6B90 /* YBIBImageCache.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = YBIBImageCache.m; path = YBImageBrowser/Image/YBIBImageCache.m; sourceTree = ""; }; - 6783350E5EEBE526BCC7AA81538520AC /* UIButton+RACCommandSupport.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "UIButton+RACCommandSupport.h"; path = "ReactiveObjC/UIButton+RACCommandSupport.h"; sourceTree = ""; }; - 67A6099318A28F87F5D01781C55227B1 /* NSFileHandle+RACSupport.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "NSFileHandle+RACSupport.h"; path = "ReactiveObjC/NSFileHandle+RACSupport.h"; sourceTree = ""; }; - 67AB58A2792880BE86602F974D60E7CE /* SDWebImage.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = SDWebImage.release.xcconfig; sourceTree = ""; }; + 672E5FEEA04009375B5912652BA1C31F /* LLScreenshotActionView.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = LLScreenshotActionView.m; path = LLDebugTool/Core/Component/Screenshot/UserInterface/LLScreenshotActionView.m; sourceTree = ""; }; + 6734658196202E3C0BC0728BEE573A98 /* QCloudHttpDNS.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = QCloudHttpDNS.m; path = QCloudCore/Classes/Base/QCLOUDRestNet/DNSCache/QCloudHttpDNS.m; sourceTree = ""; }; + 6759B25413994A769CDE9CCE8BDDFA61 /* LLCrashHelper.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = LLCrashHelper.h; path = LLDebugTool/Core/Component/Crash/Function/LLCrashHelper.h; sourceTree = ""; }; + 67920ED57D0F6DF210C68AB499BFD9D5 /* YYCache.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = YYCache.release.xcconfig; sourceTree = ""; }; + 67B3F520F242F8408461338A1A462C72 /* QGMP4FrameHWDecoder.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = QGMP4FrameHWDecoder.h; path = iOS/QGVAPlayer/QGVAPlayer/Classes/Controllers/Decoders/QGMP4FrameHWDecoder.h; sourceTree = ""; }; 67BFCAB8F95C8154639B76D0329F3231 /* TUIFoldConversationListDataProvider.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = TUIFoldConversationListDataProvider.m; sourceTree = ""; }; - 67C1F9A015545FCBD8AB3570B08C9C92 /* Timestamp.pbobjc.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = Timestamp.pbobjc.h; path = objectivec/google/protobuf/Timestamp.pbobjc.h; sourceTree = ""; }; - 67CEF53E0F24EA9CFD1071F0F164872A /* LLSandboxVideoPreviewController.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = LLSandboxVideoPreviewController.h; path = LLDebugTool/Core/Component/Sandbox/UserInterface/LLSandboxVideoPreviewController.h; sourceTree = ""; }; - 67DBD6F82CD4F6399E94E7F5997928D7 /* UIImage+LL_Utils.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "UIImage+LL_Utils.h"; path = "LLDebugTool/Core/Others/Category/UIImage/UIImage+LL_Utils.h"; sourceTree = ""; }; + 67D0842501F67645472CB0385474A295 /* JXCategoryCollectionView.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = JXCategoryCollectionView.m; path = Sources/Common/JXCategoryCollectionView.m; sourceTree = ""; }; 67E824825CF7A3BE9AB81A60E7902A1A /* TUIGroupNoticeController_Minimalist.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = TUIGroupNoticeController_Minimalist.m; sourceTree = ""; }; + 67F378B22F34B91070BE2D83C22C2953 /* rescaler_mips32.c */ = {isa = PBXFileReference; includeInIndex = 1; name = rescaler_mips32.c; path = src/dsp/rescaler_mips32.c; sourceTree = ""; }; 67F8743314AC117BC659D3315D207F45 /* TUIConversationForwardSelectCell_Minimalist.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = TUIConversationForwardSelectCell_Minimalist.h; sourceTree = ""; }; - 67FEC9974CB487C8AA112FB22A6A74DB /* QGVAPSafeMutableArray.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = QGVAPSafeMutableArray.h; path = iOS/QGVAPlayer/QGVAPlayer/Classes/Utils/QGVAPSafeMutableArray.h; sourceTree = ""; }; - 6813AE87A1BEEFE062BEFF23AF8351CD /* SVGAPlayer.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SVGAPlayer.m; path = Source/SVGAPlayer.m; sourceTree = ""; }; - 6823CB3D85EB4B1D66AA03F787EE9139 /* LLRulerPickerView.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = LLRulerPickerView.m; path = LLDebugTool/Core/Component/Ruler/UserInterface/LLRulerPickerView.m; sourceTree = ""; }; - 682A112D8B7ABC19F65496559D45F6E9 /* YYModel-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "YYModel-dummy.m"; sourceTree = ""; }; - 6838D5A055DD9D599B8461FBFA6043F4 /* LLDebugTool.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = LLDebugTool.h; path = LLDebugTool/DebugTool/LLDebugTool.h; sourceTree = ""; }; + 67FF0CF47B357F64347293E2BB8DCBF2 /* YYModel-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "YYModel-umbrella.h"; sourceTree = ""; }; + 68138633BBF169547D6B1400361686DA /* MQTTTransport.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = MQTTTransport.h; path = MQTTClient/MQTTClient/MQTTTransport.h; sourceTree = ""; }; + 6825071B8D6EE88F46C7CF6C8D25B734 /* LLSettingWindow.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = LLSettingWindow.h; path = LLDebugTool/Core/Others/Component/Setting/UserInterface/LLSettingWindow.h; sourceTree = ""; }; + 682522F66F395094FCF1508C53C40937 /* LLComponentWindow.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = LLComponentWindow.m; path = LLDebugTool/Core/Others/CommonUI/Window/ComponentWindow/LLComponentWindow.m; sourceTree = ""; }; + 68554F7E465557315380CB171D09D0E7 /* AFURLResponseSerialization.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = AFURLResponseSerialization.h; path = AFNetworking/AFURLResponseSerialization.h; sourceTree = ""; }; + 68625218E6B514223D5BA3382ED52E27 /* LLPreviewController.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = LLPreviewController.h; path = LLDebugTool/Core/Component/Sandbox/UserInterface/LLPreviewController.h; sourceTree = ""; }; 68634D709C3E0FBD03E2C8A301E3904C /* TUIConversationConfig.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = TUIConversationConfig.h; sourceTree = ""; }; - 687C34AE0B14C1228C5F3410106D95B3 /* SDImageIOCoder.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDImageIOCoder.m; path = SDWebImage/Core/SDImageIOCoder.m; sourceTree = ""; }; - 68A637692529FA9A3C79480A3A5E44E5 /* RACChannel.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = RACChannel.h; path = ReactiveObjC/RACChannel.h; sourceTree = ""; }; + 686CEFEF8F6698FD3A987D079EF81C12 /* yuv_mips_dsp_r2.c */ = {isa = PBXFileReference; includeInIndex = 1; name = yuv_mips_dsp_r2.c; path = src/dsp/yuv_mips_dsp_r2.c; sourceTree = ""; }; 68B4ADC737778C3DF692D1D36ADBD520 /* TUIMessageMultiChooseView_Minimalist.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = TUIMessageMultiChooseView_Minimalist.m; sourceTree = ""; }; - 68B797A2CDC7AD73EB6C2F1C74C8C36C /* LLLogCell.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = LLLogCell.h; path = LLDebugTool/Core/Component/Log/UserInterface/LLLogCell.h; sourceTree = ""; }; - 68C8302E274DB017279690C70A5541E4 /* YYImage-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "YYImage-prefix.pch"; sourceTree = ""; }; - 68CBC7D90FFEEA84F40FB2E4BEDD2168 /* SVGAExporter.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SVGAExporter.h; path = Source/SVGAExporter.h; sourceTree = ""; }; - 68D67C8CC4931410597FAA7E49944CA1 /* UIDevice+YYAdd.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "UIDevice+YYAdd.h"; path = "YYCategories/UIKit/UIDevice+YYAdd.h"; sourceTree = ""; }; - 68DBC71C82B0B357C8C72AAF193D63A3 /* TZImagePickerController-Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "TZImagePickerController-Info.plist"; sourceTree = ""; }; - 6919ED6EF55488289D03D05104EE944D /* RACStream.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = RACStream.m; path = ReactiveObjC/RACStream.m; sourceTree = ""; }; - 6923C8461B6129E9596F3084779EBBD7 /* YBIBImageCell.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = YBIBImageCell.h; path = YBImageBrowser/Image/YBIBImageCell.h; sourceTree = ""; }; - 692404F6D6615D05F46F6C26915DCE97 /* ReactiveObjC-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "ReactiveObjC-dummy.m"; sourceTree = ""; }; - 6941DD126E30211D7F92AB1D97C7A5A5 /* LLLocationMockRouteModel.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = LLLocationMockRouteModel.h; path = LLDebugTool/Core/Component/Location/Function/LLLocationMockRouteModel.h; sourceTree = ""; }; + 69365D42E1B30FF35DC8561E851C72D8 /* lossless_enc_msa.c */ = {isa = PBXFileReference; includeInIndex = 1; name = lossless_enc_msa.c; path = src/dsp/lossless_enc_msa.c; sourceTree = ""; }; 6943F10B256A54258CAE5035FAA5B1A9 /* TUIEvaluationCell.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = TUIEvaluationCell.m; sourceTree = ""; }; 69548067BF8002DF53941149BD410A1D /* TIMCommon */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; name = TIMCommon; path = TIMCommon.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - 695AABDC88C9C22D5B340CA077894EF7 /* JXCategoryIndicatorLineView.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = JXCategoryIndicatorLineView.h; path = Sources/Indicator/IndicatorViews/JXCategoryIndicatorLineView.h; sourceTree = ""; }; + 695B71E90A78E92B3B729FF7976FF95B /* LLSandbox.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = LLSandbox.h; path = LLDebugTool/Core/Component/Sandbox/LLSandbox.h; sourceTree = ""; }; 6961E71D61A2F3F0E3AEAB17342E8C31 /* TUIMenuCell_Minimalist.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = TUIMenuCell_Minimalist.m; sourceTree = ""; }; 697273E2F02FF6EBD0321D2849D4F080 /* TUIConversationListControllerListener.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = TUIConversationListControllerListener.h; sourceTree = ""; }; 697AEFBA3C443378CEFAA38443DED2CE /* TUIMessageBaseDataProvider.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = TUIMessageBaseDataProvider.m; sourceTree = ""; }; + 697FDC9C6A90677F41687893EF5DA394 /* RTLManager.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = RTLManager.m; path = Sources/RLTManager/RTLManager.m; sourceTree = ""; }; 69A1B8F792923569AD0D9E638DE015D8 /* TUISecurityStrikeView.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = TUISecurityStrikeView.m; sourceTree = ""; }; - 69A27433FDA4E6C77747CB83F5A40E84 /* GPBExtensionInternals.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = GPBExtensionInternals.h; path = objectivec/GPBExtensionInternals.h; sourceTree = ""; }; - 69B248D555D8BD61F0BE46A285DFCDF8 /* JXCategoryView.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = JXCategoryView.debug.xcconfig; sourceTree = ""; }; - 69B931EC69B669A60CC11B4455935C74 /* LLReachability.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = LLReachability.m; path = LLDebugTool/Core/Component/Network/Function/LLReachability.m; sourceTree = ""; }; - 69CDE4A0B26080E0536A05BC4BC16084 /* NSObject+YBImageBrowser.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "NSObject+YBImageBrowser.h"; path = "YBImageBrowser/Base/NSObject+YBImageBrowser.h"; sourceTree = ""; }; - 69DFE9503A04CABD5E4B38C11E84CB16 /* NSObject+LL_Utils.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "NSObject+LL_Utils.m"; path = "LLDebugTool/Core/Others/Category/NSObject/NSObject+LL_Utils.m"; sourceTree = ""; }; - 6A096E00BF1BBA44741A175C7BDC569F /* OSSDeleteMultipleObjectsResult.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = OSSDeleteMultipleObjectsResult.h; path = AliyunOSSSDK/OSSDeleteMultipleObjectsResult.h; sourceTree = ""; }; - 6A2A9A4ACB15551AAE9304266126636E /* UIImage+ForceDecode.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "UIImage+ForceDecode.h"; path = "SDWebImage/Core/UIImage+ForceDecode.h"; sourceTree = ""; }; - 6A2C6983B49B886DD6BF6A0B85E0B98C /* UIImage+MemoryCacheCost.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "UIImage+MemoryCacheCost.m"; path = "SDWebImage/Core/UIImage+MemoryCacheCost.m"; sourceTree = ""; }; - 6A3832EB868F7E208911BFFA4A40B31D /* SDImageAssetManager.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDImageAssetManager.h; path = SDWebImage/Private/SDImageAssetManager.h; sourceTree = ""; }; + 69CDB9AD81295D1E902E3BE2C17D5746 /* LLEntryViewController.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = LLEntryViewController.h; path = LLDebugTool/Core/Others/CommonUI/Window/EntryWindow/LLEntryViewController.h; sourceTree = ""; }; + 69DBB5682495D2343EDB5BBA33EF8EA9 /* QCloudHTTPRetryHanlder.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = QCloudHTTPRetryHanlder.m; path = QCloudCore/Classes/Base/QCLOUDRestNet/Retry/QCloudHTTPRetryHanlder.m; sourceTree = ""; }; + 6A1AFD93DA14D0C5F1EBD1E60FA950BC /* MBProgressHUD-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "MBProgressHUD-umbrella.h"; sourceTree = ""; }; + 6A1D57FCB5F0541A0ADFDD3D6A998A0A /* quant.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = quant.h; path = src/dsp/quant.h; sourceTree = ""; }; + 6A2FC80F534ADF9E089715A5F9199080 /* QCloudSupervisoryRecord.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = QCloudSupervisoryRecord.h; path = QCloudCore/Classes/Base/Supervisory/QCloudSupervisoryRecord.h; sourceTree = ""; }; + 6A31F9BDA55CB0F598C8747E5717A3D8 /* MQTTSSLSecurityPolicyEncoder.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = MQTTSSLSecurityPolicyEncoder.h; path = MQTTClient/MQTTClient/MQTTSSLSecurityPolicyEncoder.h; sourceTree = ""; }; + 6A3256BD1FA7962C33DB9B557B92EF68 /* QCloudHTTPTaskDelayManager.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = QCloudHTTPTaskDelayManager.h; path = QCloudCore/Classes/Base/QCLOUDRestNet/Retry/QCloudHTTPTaskDelayManager.h; sourceTree = ""; }; + 6A47A07F1ADB8330E4CE82B071C51A17 /* ResourceBundle-JXCategoryView-JXCategoryView-Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "ResourceBundle-JXCategoryView-JXCategoryView-Info.plist"; sourceTree = ""; }; 6A4B0155D81BD9992D04820FA803A6DE /* MobileCoreServices.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = MobileCoreServices.framework; path = Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS18.0.sdk/System/Library/Frameworks/MobileCoreServices.framework; sourceTree = DEVELOPER_DIR; }; - 6A6448D2FC538F0F90D53F06A8822A24 /* MJRefreshAutoNormalFooter.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = MJRefreshAutoNormalFooter.h; path = MJRefresh/Custom/Footer/Auto/MJRefreshAutoNormalFooter.h; sourceTree = ""; }; 6A79F5B474AEB6E40838CD82097C06E2 /* Pods-QXLive-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "Pods-QXLive-umbrella.h"; sourceTree = ""; }; - 6A7AAAD1AD9FE69C87ECAA09DB3606CC /* LLLogModel.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = LLLogModel.m; path = LLDebugTool/Core/Component/Log/Function/LLLogModel.m; sourceTree = ""; }; - 6AAC81D3D478BAB7CEE5C591C7EAE018 /* filters_neon.c */ = {isa = PBXFileReference; includeInIndex = 1; name = filters_neon.c; path = src/dsp/filters_neon.c; sourceTree = ""; }; - 6AC8605DB2F91055A98EDC9A4185FCE4 /* GPBApi.pbobjc.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = GPBApi.pbobjc.h; path = objectivec/GPBApi.pbobjc.h; sourceTree = ""; }; - 6AE29C597486D351C1A50091BB2CD4D3 /* NSURLSession+LL_Network.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "NSURLSession+LL_Network.h"; path = "LLDebugTool/Core/Component/Network/Function/NSURLSession/NSURLSession+LL_Network.h"; sourceTree = ""; }; + 6AAB5B001249D96CE8C2A1FE66E00532 /* BRTextPickerView.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = BRTextPickerView.h; path = BRPickerView/TextPicker/BRTextPickerView.h; sourceTree = ""; }; + 6AB3913E1360B81F88034CABA5781DBF /* AgoraFaceDetectionExtension.xcframework */ = {isa = PBXFileReference; includeInIndex = 1; path = AgoraFaceDetectionExtension.xcframework; sourceTree = ""; }; + 6AE77FD11A04349202B7C3561B84B845 /* mux_types.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = mux_types.h; path = src/webp/mux_types.h; sourceTree = ""; }; 6AED3FE2223A068871799C5E979F49FE /* TUIMessageCellConfig.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = TUIMessageCellConfig.h; sourceTree = ""; }; - 6B1B643DEB1B9575913936C72467D795 /* GPBUtilities_PackagePrivate.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = GPBUtilities_PackagePrivate.h; path = objectivec/GPBUtilities_PackagePrivate.h; sourceTree = ""; }; - 6B239A49B93C15EC0B8A40FA1B22C2F1 /* NSBundle+TZImagePicker.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "NSBundle+TZImagePicker.h"; path = "TZImagePickerController/TZImagePickerController/NSBundle+TZImagePicker.h"; sourceTree = ""; }; - 6B789392E75B492153D080BFEB776638 /* YYCategories.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = YYCategories.h; path = YYCategories/YYCategories.h; sourceTree = ""; }; + 6AF6640AB2CCFE42C07F6501E2493172 /* YYText.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = YYText.release.xcconfig; sourceTree = ""; }; + 6B4C74B4499DA0C6DB49B3B55272D4BB /* LLScreenshotComponent.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = LLScreenshotComponent.h; path = LLDebugTool/Core/Component/Screenshot/LLScreenshotComponent.h; sourceTree = ""; }; + 6B580640D9CAF2BBC81C2216F358EA49 /* DownloaderManager.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = DownloaderManager.swift; path = AgoraLyricsScore/Class/Downloader/DownloaderManager.swift; sourceTree = ""; }; + 6B6C279B3765170E1DD3AD35E11142DF /* AFSecurityPolicy.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = AFSecurityPolicy.h; path = AFNetworking/AFSecurityPolicy.h; sourceTree = ""; }; 6B9025C2D89398B609D7372485923CB2 /* TIMCommon-Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "TIMCommon-Info.plist"; sourceTree = ""; }; 6BB5C069087EF67B67AE149C77B8103E /* Pods-QXLiveDev-resources.sh */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.script.sh; path = "Pods-QXLiveDev-resources.sh"; sourceTree = ""; }; - 6BC202EE3655B3A683E1A704462493FA /* SVGAVideoEntity.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SVGAVideoEntity.m; path = Source/SVGAVideoEntity.m; sourceTree = ""; }; - 6C05CAB860CB05ACA1887A474F3C5723 /* YBIBVideoView.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = YBIBVideoView.m; path = Video/YBIBVideoView.m; sourceTree = ""; }; + 6C0509771CA56E87CDB37DD602D88F36 /* GPBWireFormat.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = GPBWireFormat.m; path = objectivec/GPBWireFormat.m; sourceTree = ""; }; + 6C10AE388C2BA01DAA2F0CD6469EE068 /* QCloudFileOffsetBody.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = QCloudFileOffsetBody.h; path = QCloudCore/Classes/Base/QCLOUDRestNet/DataForm/QCloudFileOffsetBody.h; sourceTree = ""; }; 6C1CFA3549E9534C462CB8A97942A3C0 /* TUIReplyMessageCell_Minimalist.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = TUIReplyMessageCell_Minimalist.h; sourceTree = ""; }; - 6C23B2C9C707367E2C83E6A3E81DBF27 /* SDWebImageDownloader.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDWebImageDownloader.m; path = SDWebImage/Core/SDWebImageDownloader.m; sourceTree = ""; }; - 6C2EFC72068A4953769068070888931D /* AFAutoPurgingImageCache.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = AFAutoPurgingImageCache.m; path = "UIKit+AFNetworking/AFAutoPurgingImageCache.m"; sourceTree = ""; }; - 6C69C98590E37B3ED76719F2BEA60AC4 /* MJRefreshNormalHeader.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = MJRefreshNormalHeader.m; path = MJRefresh/Custom/Header/MJRefreshNormalHeader.m; sourceTree = ""; }; - 6C71473402D3B2EC1706517D9776310E /* OSSReachability.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = OSSReachability.m; path = AliyunOSSSDK/OSSFileLog/OSSReachability.m; sourceTree = ""; }; - 6C7AE35EA52B309C094DCF8EBBA6810D /* upsampling.c */ = {isa = PBXFileReference; includeInIndex = 1; name = upsampling.c; path = src/dsp/upsampling.c; sourceTree = ""; }; - 6C7EC0BEBF4146846D1466985703C640 /* SDImageFrame.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDImageFrame.m; path = SDWebImage/Core/SDImageFrame.m; sourceTree = ""; }; - 6C970AEE6236BCF58330D036D69156D5 /* LLTitleCellCategoryModel.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = LLTitleCellCategoryModel.h; path = LLDebugTool/Core/Others/CommonUI/View/TitleCell/LLTitleCellCategoryModel.h; sourceTree = ""; }; - 6CA1BAB7B291FFD8994D70B914C15384 /* UIProgressView+AFNetworking.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "UIProgressView+AFNetworking.h"; path = "UIKit+AFNetworking/UIProgressView+AFNetworking.h"; sourceTree = ""; }; - 6CB8FE27AB427D9D21522E9B878B3336 /* RTLManager.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = RTLManager.h; path = Sources/RLTManager/RTLManager.h; sourceTree = ""; }; + 6C20E80C571982C11FF077A63BEDA767 /* Timestamp.pbobjc.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = Timestamp.pbobjc.h; path = objectivec/google/protobuf/Timestamp.pbobjc.h; sourceTree = ""; }; + 6C3AE4ACBD0DF8C1211665C01F41EFD8 /* SDMemoryCache.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDMemoryCache.m; path = SDWebImage/Core/SDMemoryCache.m; sourceTree = ""; }; + 6C62CC8D6160F965F50F122A7F6F7EC0 /* OSSXMLDictionary.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = OSSXMLDictionary.h; path = AliyunOSSSDK/OSSXMLDictionary.h; sourceTree = ""; }; + 6CBB765E04F1683B0F0F50AF3C346C9C /* MJRefreshBackFooter.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = MJRefreshBackFooter.m; path = MJRefresh/Base/MJRefreshBackFooter.m; sourceTree = ""; }; 6CC2904CA0EBAC93330078979CE446BF /* TUIReplyQuoteViewData.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = TUIReplyQuoteViewData.m; sourceTree = ""; }; - 6CE45F49ED4CFC035A2719F21DAF4F22 /* YBIBToolViewHandler.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = YBIBToolViewHandler.m; path = YBImageBrowser/ToolView/YBIBToolViewHandler.m; sourceTree = ""; }; + 6CDBF4E8B6B8B8F9CD67DB008689E8B9 /* LLFunctionItemContainerView.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = LLFunctionItemContainerView.m; path = LLDebugTool/Core/Others/Component/Function/UserInterface/LLFunctionItemContainerView.m; sourceTree = ""; }; + 6CE74D1B298989210F5075ED8306D050 /* JXCategoryNumberCellModel.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = JXCategoryNumberCellModel.h; path = Sources/Number/JXCategoryNumberCellModel.h; sourceTree = ""; }; 6CF136691A99D2EAD21A4554F46E537F /* TUIFileReplyQuoteView_Minimalist.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = TUIFileReplyQuoteView_Minimalist.h; sourceTree = ""; }; - 6D097F8CAC9797189B5DD6C90DC5F326 /* YYCategories-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "YYCategories-dummy.m"; sourceTree = ""; }; + 6CF500A440CB4A87DFD5C4F2EE40F2A6 /* LLWindowManager+Location.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "LLWindowManager+Location.m"; path = "LLDebugTool/Core/Component/Location/UserInterface/LLWindowManager+Location.m"; sourceTree = ""; }; + 6CF9654FB9FCEBB1F7768D11730F4CBF /* LLFunctionItemView.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = LLFunctionItemView.h; path = LLDebugTool/Core/Others/Component/Function/UserInterface/LLFunctionItemView.h; sourceTree = ""; }; + 6D01744AAFCCA20CB20800B360A1FA6A /* LLShortCutWindow.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = LLShortCutWindow.h; path = LLDebugTool/Core/Component/ShortCut/UserInterface/LLShortCutWindow.h; sourceTree = ""; }; + 6D01A5CAF0AED19664007EE7A1DDA214 /* QCloudCOSXMLUploadObjectRequest.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = QCloudCOSXMLUploadObjectRequest.m; path = QCloudCOSXML/Classes/Transfer/request/QCloudCOSXMLUploadObjectRequest.m; sourceTree = ""; }; + 6D0835A5D318BFF6B0D82EBEE3D2D88A /* QCloudCredential.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = QCloudCredential.h; path = QCloudCore/Classes/Base/QCloudClientBase/Authentation/QCloudCredential.h; sourceTree = ""; }; 6D17B52BC38FBC1485D09A3098547434 /* TUIChat.bundle */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = "wrapper.plug-in"; name = TUIChat.bundle; path = Resources/TUIChat.bundle; sourceTree = ""; }; 6D24D29E7D2DC3A953C99CBAC81B6CB8 /* TUICore-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "TUICore-umbrella.h"; sourceTree = ""; }; - 6D3CDD13D69DD4A561025ED3F2249C6A /* MJRefreshBackStateFooter.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = MJRefreshBackStateFooter.h; path = MJRefresh/Custom/Footer/Back/MJRefreshBackStateFooter.h; sourceTree = ""; }; - 6D68728C88CDAB9931092D9444DE4CE3 /* NSObject+YYModel.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "NSObject+YYModel.m"; path = "YYModel/NSObject+YYModel.m"; sourceTree = ""; }; + 6D55C665C7E25A52C125DF3DF54BAD92 /* LLConfigHelper.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = LLConfigHelper.h; path = LLDebugTool/Core/Others/ConfigHelper/LLConfigHelper.h; sourceTree = ""; }; 6D8B345639CB7FE77A2F3B451E4FE00F /* TUIGroupPinCell.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = TUIGroupPinCell.h; sourceTree = ""; }; - 6D917E7C268683BBDB19CF1CA24802F2 /* GPBUtilities.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = GPBUtilities.h; path = objectivec/GPBUtilities.h; sourceTree = ""; }; - 6D94FE6859348BB52BD8131E25776E41 /* JXPagerListRefreshView.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = JXPagerListRefreshView.m; path = Sources/JXPagerView/JXPagerListRefreshView.m; sourceTree = ""; }; - 6D9BB3ACB7E6A38051244484838348F7 /* LLBaseCollectionViewCell.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = LLBaseCollectionViewCell.h; path = LLDebugTool/Core/Others/CommonUI/Base/LLBaseCollectionViewCell.h; sourceTree = ""; }; - 6DA1F6403722CFE622396EF89367F223 /* yuv_sse41.c */ = {isa = PBXFileReference; includeInIndex = 1; name = yuv_sse41.c; path = src/dsp/yuv_sse41.c; sourceTree = ""; }; - 6E2A3F933B5FE68555BBEB51008F6DC9 /* BRAddressModel.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = BRAddressModel.m; path = BRPickerView/Deprecated/AddressPickerView/BRAddressModel.m; sourceTree = ""; }; + 6D9399244799CCB26A1F65654F0E913F /* QCloudCredentailFenceQueue.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = QCloudCredentailFenceQueue.m; path = QCloudCore/Classes/Base/QCloudClientBase/Authentation/QCloudCredentailFenceQueue.m; sourceTree = ""; }; + 6D9857627FF718DAF6B431262DEB5704 /* OSSDeleteObjectTaggingResult.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = OSSDeleteObjectTaggingResult.h; path = AliyunOSSSDK/OSSDeleteObjectTaggingResult.h; sourceTree = ""; }; + 6DCDC4699AD61041684AB3720F04F1F6 /* QCloudInitiateMultipartUploadRequest.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = QCloudInitiateMultipartUploadRequest.m; path = QCloudCOSXML/Classes/Transfer/request/QCloudInitiateMultipartUploadRequest.m; sourceTree = ""; }; + 6DF71A201F9C7E86BCE095F7751E3E95 /* LLDebugToolMacros.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = LLDebugToolMacros.h; path = LLDebugTool/DebugTool/LLDebugToolMacros.h; sourceTree = ""; }; + 6E1CC47E5A93F5216740AD047F73418C /* YBIBScreenRotationHandler.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = YBIBScreenRotationHandler.m; path = YBImageBrowser/Base/YBIBScreenRotationHandler.m; sourceTree = ""; }; 6E2E532ED7FAA784C0CF38E8C7F6E7A9 /* TUIReplyPreviewBar.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = TUIReplyPreviewBar.m; sourceTree = ""; }; - 6E596E4FB7B7C6AC6D239E6E687C6A07 /* LLComponentNavigationController.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = LLComponentNavigationController.m; path = LLDebugTool/Core/Others/CommonUI/ViewController/ComponentNavigationController/LLComponentNavigationController.m; sourceTree = ""; }; - 6E6349754791444BA8338A47A5C47392 /* OSSServiceSignature.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = OSSServiceSignature.h; path = AliyunOSSSDK/Signer/OSSServiceSignature.h; sourceTree = ""; }; - 6E712AD6ABD4B985271A5F2E81078CB9 /* JXCategoryListContainerView.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = JXCategoryListContainerView.h; path = Sources/Common/JXCategoryListContainerView.h; sourceTree = ""; }; + 6E322BD5C5A5DEF2120CFC5FA8F75A03 /* NSObject+LL_Hierarchy.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "NSObject+LL_Hierarchy.h"; path = "LLDebugTool/Core/Component/Hierarchy/Function/NSObject+LL_Hierarchy.h"; sourceTree = ""; }; + 6E6E8D73033CB0139EAB9E7B7B48B1FD /* OSSV4Signer.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = OSSV4Signer.h; path = AliyunOSSSDK/Signer/OSSV4Signer.h; sourceTree = ""; }; 6E736FBBE710D09EEED578137E1463D8 /* TUIAudioRecorder.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = TUIAudioRecorder.h; sourceTree = ""; }; - 6ECEDD2A29867A53C07C426C67AFC270 /* ScoringMachineEx+DataHandle.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "ScoringMachineEx+DataHandle.swift"; path = "AgoraLyricsScore/Class/Scoring/ScoringMachineEx/ScoringMachineEx+DataHandle.swift"; sourceTree = ""; }; - 6ED43215E946B77CECE4547DF05B34CD /* endian_inl_utils.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = endian_inl_utils.h; path = src/utils/endian_inl_utils.h; sourceTree = ""; }; + 6E78B3D3666EAECB485A34F58F88CB21 /* NSURLRequest+COS.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "NSURLRequest+COS.h"; path = "QCloudCore/Classes/Base/QCloudClientBase/Authentation/NSURLRequest+COS.h"; sourceTree = ""; }; + 6E8080977476EDE067C7237FB558235B /* RACUnit.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = RACUnit.h; path = ReactiveObjC/RACUnit.h; sourceTree = ""; }; + 6E83C30EDB74218EA5F36BAAEA976F47 /* Media.xcassets */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = folder.assetcatalog; name = Media.xcassets; path = AgoraLyricsScore/Resources/Media.xcassets; sourceTree = ""; }; + 6E84EC6FDDB438259358A76D0372A255 /* yuv.c */ = {isa = PBXFileReference; includeInIndex = 1; name = yuv.c; path = src/dsp/yuv.c; sourceTree = ""; }; + 6E9AF43EF9A9E70173237D085D5D3F84 /* LLHtmlViewController.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = LLHtmlViewController.h; path = LLDebugTool/Core/Component/Html/UserInterface/LLHtmlViewController.h; sourceTree = ""; }; + 6E9FC5BCB5B8A7E2A87726A2BEEAA102 /* LLInfoView.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = LLInfoView.h; path = LLDebugTool/Core/Others/CommonUI/View/InfoView/LLInfoView.h; sourceTree = ""; }; + 6EC746F4456DF1846F062EF0158D5F66 /* GPBAny.pbobjc.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = GPBAny.pbobjc.m; path = objectivec/GPBAny.pbobjc.m; sourceTree = ""; }; + 6EC98E7919863935819A20E6D1D5194A /* GPBDescriptor.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = GPBDescriptor.h; path = objectivec/GPBDescriptor.h; sourceTree = ""; }; + 6ED6A5A48786AF8C96B4DD152146C3B2 /* TADotView.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = TADotView.h; path = SDCycleScrollView/Lib/SDCycleScrollView/PageControl/TADotView.h; sourceTree = ""; }; + 6EDCA7092BC03B9E08248A523C81623F /* LLBaseTableViewController.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = LLBaseTableViewController.h; path = LLDebugTool/Core/Others/CommonUI/Base/LLBaseTableViewController.h; sourceTree = ""; }; + 6EEC0A9F0B73A6C9A1EC6C0BD6B49EE4 /* AvoidCrash-Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "AvoidCrash-Info.plist"; sourceTree = ""; }; + 6EF3DB55129CE8E6AC2242B6C689909B /* YBIBUtilities.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = YBIBUtilities.h; path = YBImageBrowser/Helper/YBIBUtilities.h; sourceTree = ""; }; 6EFB45CA45BDF87B7F301AD48B0DF034 /* TUIVideoReplyQuoteView_Minimalist.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = TUIVideoReplyQuoteView_Minimalist.m; sourceTree = ""; }; - 6F098AF9A6E0719FEF3401CE55DCCC48 /* YYCache-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "YYCache-umbrella.h"; sourceTree = ""; }; - 6F0DCA619161F7A82D0ED59EE40C44D8 /* IQBarButtonItem.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = IQBarButtonItem.h; path = IQKeyboardManager/IQToolbar/IQBarButtonItem.h; sourceTree = ""; }; - 6F278D6855CB743D06DF092548A744D1 /* OSSSignUtils.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = OSSSignUtils.m; path = AliyunOSSSDK/Signer/OSSSignUtils.m; sourceTree = ""; }; + 6F28FBBBCF4CCC86340A0FF856333554 /* NSParagraphStyle+YYText.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "NSParagraphStyle+YYText.m"; path = "YYText/Utility/NSParagraphStyle+YYText.m"; sourceTree = ""; }; 6F33970E4DC39CE021058A4648F9619F /* TUIGroupProfileCardCellData_Minimalist.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = TUIGroupProfileCardCellData_Minimalist.h; sourceTree = ""; }; - 6F3B4FFCD07E8CD6F0997E1D8AA6B060 /* Agoraffmpeg.xcframework */ = {isa = PBXFileReference; includeInIndex = 1; path = Agoraffmpeg.xcframework; sourceTree = ""; }; - 6F5338DDDD018E2084D66EFC2DFE5631 /* LLSandboxTextPreviewController.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = LLSandboxTextPreviewController.h; path = LLDebugTool/Core/Component/Sandbox/UserInterface/LLSandboxTextPreviewController.h; sourceTree = ""; }; - 6F77708E280007080CDA4B397032C007 /* JXPagerListRefreshView.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = JXPagerListRefreshView.h; path = Sources/JXPagerView/JXPagerListRefreshView.h; sourceTree = ""; }; - 6F825A5E4F039EA8BBB916AF2C6CBDBB /* AvoidCrash.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = AvoidCrash.release.xcconfig; sourceTree = ""; }; + 6F590BBB5D9F172B6653BAC35659B091 /* LLSandboxComponent.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = LLSandboxComponent.h; path = LLDebugTool/Core/Component/Sandbox/LLSandboxComponent.h; sourceTree = ""; }; + 6F7816D2CD3DADECBC853A1A72FFD3F4 /* JXCategoryView-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "JXCategoryView-prefix.pch"; sourceTree = ""; }; + 6F7EE4FA982C7FB8A72E152F7448932D /* SDWebImageOperation.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDWebImageOperation.h; path = SDWebImage/Core/SDWebImageOperation.h; sourceTree = ""; }; + 6F8B0587EF9A72A0F0798A45C0CCCA01 /* NSMutableDictionary+AvoidCrash.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "NSMutableDictionary+AvoidCrash.h"; path = "AvoidCrash/NSMutableDictionary+AvoidCrash.h"; sourceTree = ""; }; 6F9174A0C86D26733C6530737A366E48 /* TUIGroupNoticeCellData.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = TUIGroupNoticeCellData.h; sourceTree = ""; }; - 6F997DBF534DFE76470A1AB8175B3610 /* SDCycleScrollView.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDCycleScrollView.h; path = SDCycleScrollView/Lib/SDCycleScrollView/SDCycleScrollView.h; sourceTree = ""; }; - 6F9F72D68CA995FF6902BADCC34B6E3C /* PrivacyInfo.xcprivacy */ = {isa = PBXFileReference; includeInIndex = 1; name = PrivacyInfo.xcprivacy; path = BRPickerView/PrivacyInfo.xcprivacy; sourceTree = ""; }; - 6FBE57DE259A7819AD6B1295713CA7BE /* OSSGetSymlinkResult.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = OSSGetSymlinkResult.h; path = AliyunOSSSDK/OSSGetSymlinkResult.h; sourceTree = ""; }; - 6FEDEBB6368648B55E48238CFA4252B9 /* LLWindowManager+AppInfo.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "LLWindowManager+AppInfo.m"; path = "LLDebugTool/Core/Component/AppInfo/UserInterface/LLWindowManager+AppInfo.m"; sourceTree = ""; }; - 70160915B805CCCE8098C6E79164C268 /* LLHierarchyInfoView.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = LLHierarchyInfoView.m; path = LLDebugTool/Core/Component/Hierarchy/UserInterface/LLHierarchyInfoView.m; sourceTree = ""; }; - 7016207545611B1E0384784787BF09CD /* MBProgressHUD.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = MBProgressHUD.h; sourceTree = ""; }; - 7018D51C62366469DF6D714287D00F64 /* picture_tools_enc.c */ = {isa = PBXFileReference; includeInIndex = 1; name = picture_tools_enc.c; path = src/enc/picture_tools_enc.c; sourceTree = ""; }; - 701B01541AF4C8663A726F903DED605D /* UIRefreshControl+AFNetworking.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "UIRefreshControl+AFNetworking.h"; path = "UIKit+AFNetworking/UIRefreshControl+AFNetworking.h"; sourceTree = ""; }; - 702583BA078293A9CBBC0567D8E90474 /* PrivacyInfo.xcprivacy */ = {isa = PBXFileReference; includeInIndex = 1; name = PrivacyInfo.xcprivacy; path = "TIMPush.xcframework/ios-arm64/TIMPush.framework/PrivacyInfo.xcprivacy"; sourceTree = ""; }; - 70264D7981AAA844BD90AB2E551A785A /* SDDeviceHelper.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDDeviceHelper.h; path = SDWebImage/Private/SDDeviceHelper.h; sourceTree = ""; }; + 6FCDDE0A5CF0D363E689FA4FCA630498 /* YYModel.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = YYModel.h; path = YYModel/YYModel.h; sourceTree = ""; }; + 700D9F45DD60B4A13E98A83AAFBDE938 /* NSObject+QCloudModelTool.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "NSObject+QCloudModelTool.m"; path = "QCloudCore/Classes/Base/QCLOUDObjectModel/NSObject+QCloudModelTool.m"; sourceTree = ""; }; 702A0616493FBE42A4B8F42BF07D11EF /* TUICore.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.module; path = TUICore.modulemap; sourceTree = ""; }; - 7069E937A9C3761B8EA9EF80099920B0 /* UIView+SDExtension.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "UIView+SDExtension.h"; path = "SDCycleScrollView/Lib/SDCycleScrollView/UIView+SDExtension.h"; sourceTree = ""; }; - 706EAA8EF97A9EF8B58B4B37A8C70B84 /* lossless_sse2.c */ = {isa = PBXFileReference; includeInIndex = 1; name = lossless_sse2.c; path = src/dsp/lossless_sse2.c; sourceTree = ""; }; - 70802533FD1E275AA7358F18A6459030 /* LLUITableViewLongPressGestureRecognizerDelegate.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = LLUITableViewLongPressGestureRecognizerDelegate.h; path = LLDebugTool/Core/Others/CommonUI/View/SubTitleTableViewCell/LLUITableViewLongPressGestureRecognizerDelegate.h; sourceTree = ""; }; - 70929FA996E547213570225B829490E0 /* SDWebImageDownloaderRequestModifier.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDWebImageDownloaderRequestModifier.h; path = SDWebImage/Core/SDWebImageDownloaderRequestModifier.h; sourceTree = ""; }; - 709780182A5CA351F71920FED34965D5 /* OSSNetworking.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = OSSNetworking.h; path = AliyunOSSSDK/OSSNetworking.h; sourceTree = ""; }; + 7030EF4B87EF53E82902BFEC8CFEDCC2 /* RACEXTRuntimeExtensions.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = RACEXTRuntimeExtensions.m; path = ReactiveObjC/extobjc/RACEXTRuntimeExtensions.m; sourceTree = ""; }; + 7053A1909D5DF7141E0A8CFD4571D63F /* LLFormatterTool.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = LLFormatterTool.m; path = LLDebugTool/Core/Others/FormatterTool/LLFormatterTool.m; sourceTree = ""; }; + 70659A69CAE6EA930F48FCB7F22D38C9 /* LLSandboxWindow.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = LLSandboxWindow.h; path = LLDebugTool/Core/Component/Sandbox/UserInterface/LLSandboxWindow.h; sourceTree = ""; }; + 707857DC38035C14923222062751DD87 /* SDWebImageWebPCoderDefine.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDWebImageWebPCoderDefine.h; path = SDWebImageWebPCoder/Classes/SDWebImageWebPCoderDefine.h; sourceTree = ""; }; + 708660ADE3C79484FD6654E05C0923CA /* ResourceBundle-MJRefresh.Privacy-MJRefresh-Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "ResourceBundle-MJRefresh.Privacy-MJRefresh-Info.plist"; sourceTree = ""; }; + 708727B81F22B40D3A3A8C8DC1AAE97E /* LLLogComponent.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = LLLogComponent.m; path = LLDebugTool/Core/Component/Log/LLLogComponent.m; sourceTree = ""; }; 70B022C3F6170B768EE43DBF5F1231B2 /* NSDictionary+TUISafe.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "NSDictionary+TUISafe.h"; sourceTree = ""; }; - 70C61452D67BD52A395A95ADBCE5BCF4 /* AFNetworking-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "AFNetworking-dummy.m"; sourceTree = ""; }; - 71003306D1C40BF6E543AABE22DCC951 /* RACEvent.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = RACEvent.h; path = ReactiveObjC/RACEvent.h; sourceTree = ""; }; + 70C81FC71834B1E177BFF9B4EC6BB164 /* cost_mips32.c */ = {isa = PBXFileReference; includeInIndex = 1; name = cost_mips32.c; path = src/dsp/cost_mips32.c; sourceTree = ""; }; + 70CE75A6493DCA56CA9437CE63DF76D9 /* YYImageCache.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = YYImageCache.h; path = YYWebImage/YYImageCache.h; sourceTree = ""; }; + 70E6C8F929E89E6D1E63DFE36986AE01 /* LLPickerView.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = LLPickerView.m; path = LLDebugTool/Core/Others/CommonUI/View/PickerView/LLPickerView.m; sourceTree = ""; }; + 70E963D3F3354A877AAEC8CCC24B927D /* mux.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = mux.h; path = src/webp/mux.h; sourceTree = ""; }; + 70EDCCD8EE5E9D56D04A4CDE52E217A8 /* QCloudFCUUID.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = QCloudFCUUID.m; path = QCloudCore/Classes/Base/FCUUID/QCloudFCUUID.m; sourceTree = ""; }; + 7109D7C673C3E8233DB1A7DC6E8D0584 /* ReconnectTimer.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = ReconnectTimer.h; path = MQTTClient/MQTTClient/ReconnectTimer.h; sourceTree = ""; }; 711039907C470CFC941E325544BC7CF6 /* TUIImageCollectionCell.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = TUIImageCollectionCell.m; sourceTree = ""; }; - 7115CD7CBDDC211BBD79F61965E5D8FA /* OSSUtil.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = OSSUtil.m; path = AliyunOSSSDK/OSSUtil.m; sourceTree = ""; }; - 711A24F01B4B49F16276C6C1025A0C75 /* LLSandboxComponent.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = LLSandboxComponent.m; path = LLDebugTool/Core/Component/Sandbox/LLSandboxComponent.m; sourceTree = ""; }; + 7117659E612C3305B5061F6263F50C7F /* UIView+VAP.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "UIView+VAP.m"; path = "iOS/QGVAPlayer/QGVAPlayer/Classes/UIView+VAP.m"; sourceTree = ""; }; + 71201FCDF4D5304E930B47888A9FBFA7 /* LLSandboxHelper.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = LLSandboxHelper.h; path = LLDebugTool/Core/Component/Sandbox/Function/LLSandboxHelper.h; sourceTree = ""; }; 713008FB4851221DD57AC26416FAB3D2 /* TUITextMessageCell.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = TUITextMessageCell.h; sourceTree = ""; }; - 71316F73E160DAFDD81D10D6C6E7B053 /* JXCategoryDotCellModel.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = JXCategoryDotCellModel.h; path = Sources/Dot/JXCategoryDotCellModel.h; sourceTree = ""; }; - 714451231985AB5241D32A66ACA4EBB0 /* LLLogHelper.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = LLLogHelper.h; path = LLDebugTool/Core/Component/Log/Function/LLLogHelper.h; sourceTree = ""; }; - 7145A9E52E76E351982F1B65D68A1C37 /* SDWebImageCacheKeyFilter.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDWebImageCacheKeyFilter.m; path = SDWebImage/Core/SDWebImageCacheKeyFilter.m; sourceTree = ""; }; - 714EDD3BB6957C09011A385F33FF1B02 /* LLCrashModel.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = LLCrashModel.h; path = LLDebugTool/Core/Component/Crash/Function/LLCrashModel.h; sourceTree = ""; }; + 714DE9D21747F7ADB7E847688567B3A0 /* LLNetworkDetailViewController.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = LLNetworkDetailViewController.m; path = LLDebugTool/Core/Component/Network/UserInterface/LLNetworkDetailViewController.m; sourceTree = ""; }; + 715FF71B72C0FD10FE38E7355ECD6460 /* IQNSArray+Sort.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "IQNSArray+Sort.h"; path = "IQKeyboardManager/Categories/IQNSArray+Sort.h"; sourceTree = ""; }; 7160A6AD43E15C733E0D1B613C6A36D9 /* TUIChatFace.bundle */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = "wrapper.plug-in"; name = TUIChatFace.bundle; path = Resources/TUIChatFace.bundle; sourceTree = ""; }; + 716DB280263AAD9581CF0E6B11380684 /* AgoraSoundTouch.xcframework */ = {isa = PBXFileReference; includeInIndex = 1; path = AgoraSoundTouch.xcframework; sourceTree = ""; }; 71762A728913EB440C97D3616D291AF3 /* YYText */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; name = YYText; path = YYText.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - 717F633F8B5DC116E860495A0CF56ABF /* AgoraInfra_iOS-xcframeworks.sh */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.script.sh; path = "AgoraInfra_iOS-xcframeworks.sh"; sourceTree = ""; }; - 718BDB2B6CFD39118DE1DFAAD3493EFE /* SDWebImageDownloaderResponseModifier.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDWebImageDownloaderResponseModifier.m; path = SDWebImage/Core/SDWebImageDownloaderResponseModifier.m; sourceTree = ""; }; - 71AA17A9D1EFBC20860F669033D73E51 /* NSButton+WebCache.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "NSButton+WebCache.m"; path = "SDWebImage/Core/NSButton+WebCache.m"; sourceTree = ""; }; - 71AB090DADAE0D86EE24D98E0ADCF3E4 /* AgoraVideoEncoderExtension.xcframework */ = {isa = PBXFileReference; includeInIndex = 1; path = AgoraVideoEncoderExtension.xcframework; sourceTree = ""; }; - 71B6E3BFC980212235D7C7FB0F5B15BF /* QGMP4AnimatedImageFrame.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = QGMP4AnimatedImageFrame.m; path = iOS/QGVAPlayer/QGVAPlayer/Classes/Models/QGMP4AnimatedImageFrame.m; sourceTree = ""; }; - 71D514F677784C29F713F8AC1B512F86 /* MQTTSessionManager.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = MQTTSessionManager.h; path = MQTTClient/MQTTClient/MQTTSessionManager.h; sourceTree = ""; }; + 717B81C5679992AB0C1198CDCD49EA60 /* TZImageManager.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = TZImageManager.m; path = TZImagePickerController/TZImagePickerController/TZImageManager.m; sourceTree = ""; }; + 717F62074FD5ED7DC4F2E508C7DE4CF9 /* LLSandboxVideoPreviewController.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = LLSandboxVideoPreviewController.m; path = LLDebugTool/Core/Component/Sandbox/UserInterface/LLSandboxVideoPreviewController.m; sourceTree = ""; }; + 7184B751586747EA07190E5E65F23584 /* JXCategoryTitleImageView.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = JXCategoryTitleImageView.m; path = Sources/TitleImage/JXCategoryTitleImageView.m; sourceTree = ""; }; + 718A96947020C5DE11285C5421799D7E /* LLFunctionWindow.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = LLFunctionWindow.h; path = LLDebugTool/Core/Others/Component/Function/UserInterface/LLFunctionWindow.h; sourceTree = ""; }; + 71CF3583ECAC5937DB2B422D8EB4C3C3 /* YBImageBrowser.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = YBImageBrowser.m; path = YBImageBrowser/YBImageBrowser.m; sourceTree = ""; }; 71E0BAB2367D690A75FFCD2C3E3E476B /* TUIJoinGroupMessageCellData.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = TUIJoinGroupMessageCellData.h; sourceTree = ""; }; 71EC7C2BAB81E01764C988FCDEB8A8F0 /* Metal.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Metal.framework; path = Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS18.0.sdk/System/Library/Frameworks/Metal.framework; sourceTree = DEVELOPER_DIR; }; 71EE376D8DC431E626B54B1B3A7DC9F3 /* TUIBubbleMessageCell.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = TUIBubbleMessageCell.m; sourceTree = ""; }; - 71F034516BC7947B34EB22C661C2C03F /* LLScreenshotHelper.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = LLScreenshotHelper.h; path = LLDebugTool/Core/Component/Screenshot/Function/LLScreenshotHelper.h; sourceTree = ""; }; + 71F194C96E1870C5F8EB7568160A0893 /* RACEmptySequence.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = RACEmptySequence.h; path = ReactiveObjC/RACEmptySequence.h; sourceTree = ""; }; 71FAEBBCE1C4B025E6986DD863B7CBDE /* TUIGroupChatViewController_Minimalist.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = TUIGroupChatViewController_Minimalist.h; sourceTree = ""; }; 7205277D00E2B5C7608D4D38182B8348 /* TUIFileReplyQuoteView.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = TUIFileReplyQuoteView.h; sourceTree = ""; }; - 7223D9EBC06D49EABD3C615105D8DD6A /* JXCategoryIndicatorBackgroundView.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = JXCategoryIndicatorBackgroundView.h; path = Sources/Indicator/IndicatorViews/JXCategoryIndicatorBackgroundView.h; sourceTree = ""; }; - 722BE7E177F875A3DC306C0D6F9CFECD /* OSSPutObjectTaggingRequest.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = OSSPutObjectTaggingRequest.m; path = AliyunOSSSDK/OSSPutObjectTaggingRequest.m; sourceTree = ""; }; + 72078061517BF16CE01E5F76AAA46233 /* crypt.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = crypt.h; path = Zip/minizip/include/crypt.h; sourceTree = ""; }; + 721BED0B5DAF5FDD64D7C82782189E0D /* MQTTCFSocketTransport.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = MQTTCFSocketTransport.h; path = MQTTClient/MQTTClient/MQTTCFSocketTransport.h; sourceTree = ""; }; 7230A6F1A80D744CBB4A2139CC60E9D6 /* TUIAttributedLabel.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = TUIAttributedLabel.h; sourceTree = ""; }; 723612A1E297CB61A656728A3CA5BC28 /* NSString+TUIEmoji.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "NSString+TUIEmoji.m"; sourceTree = ""; }; 7236E6F059F3D6615E4926F9CD2DCF2E /* TUIConversationService.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = TUIConversationService.h; sourceTree = ""; }; - 72624D1A372CA9B53E4ECBBAA599F8FE /* LLRulerPickerInfoView.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = LLRulerPickerInfoView.h; path = LLDebugTool/Core/Component/Ruler/UserInterface/LLRulerPickerInfoView.h; sourceTree = ""; }; - 7299AE89B34A909C0A8A75ADAB6673D7 /* SVGAExporter.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SVGAExporter.m; path = Source/SVGAExporter.m; sourceTree = ""; }; - 72C3D78C7D7352C6A56092BC76521B39 /* SDImageCoderHelper.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDImageCoderHelper.m; path = SDWebImage/Core/SDImageCoderHelper.m; sourceTree = ""; }; - 72C795493B9E7BD1F1D7AE16825DCAF7 /* SDCycleScrollView-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "SDCycleScrollView-umbrella.h"; sourceTree = ""; }; + 725D5047BA2D6891842D7F684B677DAA /* AvoidCrash-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "AvoidCrash-prefix.pch"; sourceTree = ""; }; + 72910234BBBB360162AB8147F96595EB /* YYCategories.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.module; path = YYCategories.modulemap; sourceTree = ""; }; + 72C14EE33E6CEE0E46196F699B3EC5A9 /* QCloudCOSXML.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = QCloudCOSXML.release.xcconfig; sourceTree = ""; }; 72D628EC1573A46B32560C9A16ECF520 /* TUIVideoReplyQuoteView.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = TUIVideoReplyQuoteView.m; sourceTree = ""; }; 72E629B3799C8A0D6ED71D0245E94C3D /* TUIReplyMessageCell_Minimalist.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = TUIReplyMessageCell_Minimalist.m; sourceTree = ""; }; + 72EE1CA8526D00772A680BF6836CBBB9 /* NSObject+LL_Utils.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "NSObject+LL_Utils.m"; path = "LLDebugTool/Core/Others/Category/NSObject/NSObject+LL_Utils.m"; sourceTree = ""; }; 7326F95CC68F362B01B7AB6A7E664060 /* TUIMessageBaseDataProvider.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = TUIMessageBaseDataProvider.h; sourceTree = ""; }; - 73348A5BE5D65F1CA2B14253B1F29263 /* YBIBImageLayout.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = YBIBImageLayout.m; path = YBImageBrowser/Image/YBIBImageLayout.m; sourceTree = ""; }; - 734FEDEB0E4869A922BA927A05973BF3 /* YYCGUtilities.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = YYCGUtilities.m; path = YYCategories/Quartz/YYCGUtilities.m; sourceTree = ""; }; - 73581B19CE9B479ABA8DC111C825CB05 /* AgoraClearVisionExtension.xcframework */ = {isa = PBXFileReference; includeInIndex = 1; path = AgoraClearVisionExtension.xcframework; sourceTree = ""; }; - 736B0E5E7A0DCE490FD163260A1E8FC9 /* LLPreviewController.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = LLPreviewController.m; path = LLDebugTool/Core/Component/Sandbox/UserInterface/LLPreviewController.m; sourceTree = ""; }; - 73706FB01E2DECC219126A9A3209D812 /* LLRouter+Crash.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "LLRouter+Crash.m"; path = "LLDebugTool/Core/Others/Router/LLRouter+Crash.m"; sourceTree = ""; }; - 7383FBB730EFFDCA84542FCC41257D02 /* MASViewAttribute.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = MASViewAttribute.m; path = Masonry/MASViewAttribute.m; sourceTree = ""; }; - 738484531F2AA008CB4B278289424BAD /* neon.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = neon.h; path = src/dsp/neon.h; sourceTree = ""; }; + 735156C22241BE6BB31BA3B8BF821FAD /* QCloudAbstractRequest+Quality.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "QCloudAbstractRequest+Quality.m"; path = "QCloudCOSXML/Classes/Base/QCloudAbstractRequest+Quality.m"; sourceTree = ""; }; + 7364939E951750D98837F0924A8F4788 /* LLNetworkWindow.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = LLNetworkWindow.h; path = LLDebugTool/Core/Component/Network/UserInterface/LLNetworkWindow.h; sourceTree = ""; }; + 736CB3F3305EBE3695E1F73EDC2BABBD /* cost_enc.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = cost_enc.h; path = src/enc/cost_enc.h; sourceTree = ""; }; + 7378F8C8FFBE479804EDE124B75AF775 /* LLNetworkFilterViewController.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = LLNetworkFilterViewController.h; path = LLDebugTool/Core/Component/Network/UserInterface/LLNetworkFilterViewController.h; sourceTree = ""; }; 73862A0F8AFCF49692EED3FA5095F177 /* TUIRepliesDetailViewController.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = TUIRepliesDetailViewController.m; sourceTree = ""; }; - 739BE06759FE9FD4EFE88DC94FFC138A /* RACStringSequence.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = RACStringSequence.m; path = ReactiveObjC/RACStringSequence.m; sourceTree = ""; }; 73A1D1E8E3BB385F625869200581B47A /* TUIMessageMediaDataProvider.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = TUIMessageMediaDataProvider.h; sourceTree = ""; }; - 73BDC252E37860D682F3200FE18B58DD /* UIRefreshControl+AFNetworking.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "UIRefreshControl+AFNetworking.m"; path = "UIKit+AFNetworking/UIRefreshControl+AFNetworking.m"; sourceTree = ""; }; + 73C7D844511054DD693E1F939A8C33BF /* JXCategoryIndicatorCell.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = JXCategoryIndicatorCell.m; path = Sources/Indicator/JXCategoryIndicatorCell.m; sourceTree = ""; }; 73E67159238714CEE5D70A7115574077 /* TUIChatConfig_Classic.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = TUIChatConfig_Classic.m; sourceTree = ""; }; - 73EE5D2492EBEDE6259D2AC98BD96239 /* QGVAPlayer-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "QGVAPlayer-prefix.pch"; sourceTree = ""; }; - 73F948957DADA2D8DE0DE6E66F0DD91A /* YBIBContainerView.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = YBIBContainerView.h; path = YBImageBrowser/Base/YBIBContainerView.h; sourceTree = ""; }; - 7427E2A32C82308FCD03E34DA132A19F /* ScoringView+Events.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "ScoringView+Events.swift"; path = "AgoraLyricsScore/Class/Scoring/View/ScoringView+Events.swift"; sourceTree = ""; }; - 742A1E6D5178AC74FB55B9B25DEE59E8 /* UIDevice+LL_AppInfo.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "UIDevice+LL_AppInfo.m"; path = "LLDebugTool/Core/Component/AppInfo/Function/UIDevice/UIDevice+LL_AppInfo.m"; sourceTree = ""; }; - 7436C54DA532D571912C09AA8611D6D1 /* UIDatePicker+RACSignalSupport.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "UIDatePicker+RACSignalSupport.h"; path = "ReactiveObjC/UIDatePicker+RACSignalSupport.h"; sourceTree = ""; }; - 743ABD6A6D90D4CF7710C9D52F62B5AD /* AgoraVideoQualityAnalyzerExtension.xcframework */ = {isa = PBXFileReference; includeInIndex = 1; path = AgoraVideoQualityAnalyzerExtension.xcframework; sourceTree = ""; }; - 745A040E3696B4A9BB1691C1E7FE5D23 /* lossless.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = lossless.h; path = src/dsp/lossless.h; sourceTree = ""; }; - 7460B953F2664BBC07950D2921C6B42C /* backward_references_enc.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = backward_references_enc.h; path = src/enc/backward_references_enc.h; sourceTree = ""; }; + 73FB31866D38C5A31179DE08FB3FCDB2 /* JXCategoryViewDefines.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = JXCategoryViewDefines.h; path = Sources/Common/JXCategoryViewDefines.h; sourceTree = ""; }; + 7407A1FCF518A0D31B1F5CF0AC98CB66 /* LLDebugTool.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = LLDebugTool.release.xcconfig; sourceTree = ""; }; + 744BC791085D330ABBCEDDBEA28A0B69 /* GPBUnknownFields.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = GPBUnknownFields.m; path = objectivec/GPBUnknownFields.m; sourceTree = ""; }; + 745A9A4493F6C8C67ECBA6EBE734E857 /* QGVAPlayer-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "QGVAPlayer-dummy.m"; sourceTree = ""; }; + 746FE5E7F1A4103C529B9A947F4C4163 /* MBProgressHUD.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = MBProgressHUD.h; sourceTree = ""; }; + 7471DE218C1C144E6BFEA24AFEE27EDC /* TZPhotoPreviewCell.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = TZPhotoPreviewCell.h; path = TZImagePickerController/TZImagePickerController/TZPhotoPreviewCell.h; sourceTree = ""; }; 74804D733853C053151DEF88E96F292B /* TUIConversationService.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = TUIConversationService.m; sourceTree = ""; }; + 7490703FEE0BF75E32A17CB702EACF40 /* QCloudFakeRequestOperation.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = QCloudFakeRequestOperation.m; path = QCloudCore/Classes/Base/QCLOUDRestNet/Operations/QCloudFakeRequestOperation.m; sourceTree = ""; }; + 7495011A0379C00CCF0EE0C173F67644 /* LLFactory.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = LLFactory.m; path = LLDebugTool/Core/Others/Factory/LLFactory.m; sourceTree = ""; }; + 749BEEC667E8C1178984A3CF8A3945FD /* Type.pbobjc.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = Type.pbobjc.h; path = objectivec/google/protobuf/Type.pbobjc.h; sourceTree = ""; }; 74AAD8C647E438E01FDB030A02A427DE /* TIMCommon-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "TIMCommon-umbrella.h"; sourceTree = ""; }; - 74DA460964822320DEEE945F42439081 /* LLFunctionItemModel.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = LLFunctionItemModel.m; path = LLDebugTool/Core/Others/Component/Function/UserInterface/LLFunctionItemModel.m; sourceTree = ""; }; - 74EC94175729818B4BE8B5EF94BB256E /* NSNotificationCenter+RACSupport.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "NSNotificationCenter+RACSupport.m"; path = "ReactiveObjC/NSNotificationCenter+RACSupport.m"; sourceTree = ""; }; - 7505374FD5BF0FA86428DDD873470EE7 /* YBIBGetBaseInfoProtocol.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = YBIBGetBaseInfoProtocol.h; path = YBImageBrowser/Protocol/YBIBGetBaseInfoProtocol.h; sourceTree = ""; }; - 752314A8247EE2D1334AA134A994C269 /* MJRefreshAutoStateFooter.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = MJRefreshAutoStateFooter.m; path = MJRefresh/Custom/Footer/Auto/MJRefreshAutoStateFooter.m; sourceTree = ""; }; + 74B01FB69A5D74BF6A006DF102F3CAD6 /* lossless_sse41.c */ = {isa = PBXFileReference; includeInIndex = 1; name = lossless_sse41.c; path = src/dsp/lossless_sse41.c; sourceTree = ""; }; + 74E90077F43AB33C2B68679AA9A70863 /* QGBaseDecoder.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = QGBaseDecoder.m; path = iOS/QGVAPlayer/QGVAPlayer/Classes/Controllers/Decoders/QGBaseDecoder.m; sourceTree = ""; }; + 74EB775AD342740E22D7202CF44739C7 /* QCloudBizHTTPRequest.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = QCloudBizHTTPRequest.h; path = QCloudCore/Classes/Base/QCloudClientBase/Request/QCloudBizHTTPRequest.h; sourceTree = ""; }; + 74EBA74B7708B22C55E2C20743A36E39 /* OSSGetSymlinkResult.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = OSSGetSymlinkResult.m; path = AliyunOSSSDK/OSSGetSymlinkResult.m; sourceTree = ""; }; + 74F23177A9F373D97D957CB188DAB1DE /* LLWindowManager.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = LLWindowManager.h; path = LLDebugTool/Core/Others/Manager/WindowManager/LLWindowManager.h; sourceTree = ""; }; 752D582863FC7410A1035663E1F616D1 /* TUIReferenceMessageCell_Minimalist.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = TUIReferenceMessageCell_Minimalist.m; sourceTree = ""; }; - 7543008B3F4C02A48A84E1C1588DD1D1 /* RACIndexSetSequence.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = RACIndexSetSequence.m; path = ReactiveObjC/RACIndexSetSequence.m; sourceTree = ""; }; - 7569EED5EB9397F3620E12F8C849250F /* QGVAPlayer.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.module; path = QGVAPlayer.modulemap; sourceTree = ""; }; + 7531481D2D01648B1119B1ECB117B843 /* LLLogDefine.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = LLLogDefine.h; path = LLDebugTool/Core/Others/Define/LLLogDefine.h; sourceTree = ""; }; + 7550D182E44956C61ABC5FDD0196940D /* YBIBSheetView.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = YBIBSheetView.m; path = YBImageBrowser/ToolView/YBIBSheetView.m; sourceTree = ""; }; + 756CFFC7E845E22F34C163C4786A31A7 /* NSArray+YYAdd.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "NSArray+YYAdd.m"; path = "YYCategories/Foundation/NSArray+YYAdd.m"; sourceTree = ""; }; 757BEFA20C7A216740F15BDA6826B4D2 /* TUIEvaluationCell.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = TUIEvaluationCell.h; sourceTree = ""; }; - 759C22D19B734FD7914350F679EF3A7B /* YBIBVideoTopBar.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = YBIBVideoTopBar.h; path = Video/YBIBVideoTopBar.h; sourceTree = ""; }; - 75A6A1B041CD1AEDB5EA9DA940F3A260 /* NSDictionary+VAPUtil.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "NSDictionary+VAPUtil.m"; path = "iOS/QGVAPlayer/QGVAPlayer/Classes/Utils/Categorys/NSDictionary+VAPUtil.m"; sourceTree = ""; }; + 757F9E32EF3ACEC838DAB4FEF3483E44 /* YYTextLayout.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = YYTextLayout.h; path = YYText/Component/YYTextLayout.h; sourceTree = ""; }; + 75828DDEF4647B618DF8BE0B2FD4D8DE /* JXCategoryView.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.module; path = JXCategoryView.modulemap; sourceTree = ""; }; + 759AF02F1630A1D1A0A68E6A36D7C296 /* SDWebImageOperation.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDWebImageOperation.m; path = SDWebImage/Core/SDWebImageOperation.m; sourceTree = ""; }; 75A8D00F6C9560DC70BBB1CCF17AC5FF /* TencentCloudHuiyanSDKFace_framework.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = TencentCloudHuiyanSDKFace_framework.debug.xcconfig; sourceTree = ""; }; - 75AD2F2F51F9CDB57C8CFC1E3D854BF4 /* OSSCancellationTokenSource.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = OSSCancellationTokenSource.m; path = AliyunOSSSDK/OSSTask/OSSCancellationTokenSource.m; sourceTree = ""; }; - 760BFCCB1C365206F35835D4028BAC3C /* NSKeyedUnarchiver+YYAdd.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "NSKeyedUnarchiver+YYAdd.m"; path = "YYCategories/Foundation/NSKeyedUnarchiver+YYAdd.m"; sourceTree = ""; }; + 75C812E71CF5725A0B7F0DAA45A5E9FC /* RACSubscriptingAssignmentTrampoline.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = RACSubscriptingAssignmentTrampoline.m; path = ReactiveObjC/RACSubscriptingAssignmentTrampoline.m; sourceTree = ""; }; + 75E14A26B2443DB8636F73380840454C /* UIImageView+AFNetworking.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "UIImageView+AFNetworking.h"; path = "UIKit+AFNetworking/UIImageView+AFNetworking.h"; sourceTree = ""; }; + 75E2AD06BBB42B04236882A7B5727F2E /* LLLogFilterView.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = LLLogFilterView.m; path = LLDebugTool/Core/Component/Log/UserInterface/LLLogFilterView.m; sourceTree = ""; }; + 75E6A73F4E61682A5174EE7D7ED19F76 /* QualityDataUploader.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = QualityDataUploader.h; path = QCloudCore/Classes/Base/QualityAssurance/QualityDataUploader.h; sourceTree = ""; }; + 7615834E70CBB634BAFC347D66E70170 /* YBIBCopywriter.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = YBIBCopywriter.m; path = YBImageBrowser/Helper/YBIBCopywriter.m; sourceTree = ""; }; + 761E13468DE363FA8FFB70FDED81A231 /* QCloudUniversalPathFactory.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = QCloudUniversalPathFactory.h; path = QCloudCore/Classes/Base/PathUtilities/QCloudUniversalPathFactory.h; sourceTree = ""; }; + 7622B32104E90F22DCAA3A51E5584A2F /* lossless_enc_sse2.c */ = {isa = PBXFileReference; includeInIndex = 1; name = lossless_enc_sse2.c; path = src/dsp/lossless_enc_sse2.c; sourceTree = ""; }; + 76242A9B4B975CF03084229735D63690 /* color_cache_utils.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = color_cache_utils.h; path = src/utils/color_cache_utils.h; sourceTree = ""; }; 76262613319C32AD3942999FD973732D /* Pods-QXLive-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "Pods-QXLive-dummy.m"; sourceTree = ""; }; + 76298DEA19B1C31CDB0010A7864AC119 /* LLSandboxViewController.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = LLSandboxViewController.m; path = LLDebugTool/Core/Component/Sandbox/UserInterface/LLSandboxViewController.m; sourceTree = ""; }; 762AB63A06903DF81E7647C80E271D48 /* YTPoseDetector.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = YTPoseDetector.framework; path = Libs/YTPoseDetector.framework; sourceTree = ""; }; - 768C3EF493D425504064D811F7396694 /* MBProgressHUD-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "MBProgressHUD-umbrella.h"; sourceTree = ""; }; - 769888229E12F2BBE7BA0A489F5B4DFC /* NSString+LL_Utils.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "NSString+LL_Utils.h"; path = "LLDebugTool/Core/Others/Category/NSString/NSString+LL_Utils.h"; sourceTree = ""; }; - 76A0029CABE4A428453EE2F68F334E20 /* mz_os_posix.c */ = {isa = PBXFileReference; includeInIndex = 1; name = mz_os_posix.c; path = SSZipArchive/minizip/mz_os_posix.c; sourceTree = ""; }; + 765783176C474AD8B7B9B46B80ABA9DD /* TZPhotoPreviewController.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = TZPhotoPreviewController.m; path = TZImagePickerController/TZImagePickerController/TZPhotoPreviewController.m; sourceTree = ""; }; + 76678DADF04F439070B40060F80653A3 /* OSSService.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = OSSService.h; path = AliyunOSSSDK/OSSService.h; sourceTree = ""; }; + 767C01FFC630B22313EF2E0ED00FD383 /* NSString+LL_Utils.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "NSString+LL_Utils.m"; path = "LLDebugTool/Core/Others/Category/NSString/NSString+LL_Utils.m"; sourceTree = ""; }; + 76879033625920D4331A6E74D64B6009 /* NSFileHandle+RACSupport.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "NSFileHandle+RACSupport.m"; path = "ReactiveObjC/NSFileHandle+RACSupport.m"; sourceTree = ""; }; + 769A0472F954FE718F6A4E551D2894F2 /* MJRefreshAutoNormalFooter.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = MJRefreshAutoNormalFooter.h; path = MJRefresh/Custom/Footer/Auto/MJRefreshAutoNormalFooter.h; sourceTree = ""; }; + 76A365B590AD92E43010BC75DDB8A8ED /* JXCategoryIndicatorImageView.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = JXCategoryIndicatorImageView.h; path = Sources/Indicator/IndicatorViews/JXCategoryIndicatorImageView.h; sourceTree = ""; }; 76AC216E0092258A6692750763C9E8E2 /* TUITextMessageCellData.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = TUITextMessageCellData.h; sourceTree = ""; }; 76CC1C40CD7F150B44EC5D075C24D595 /* TUIMessageSearchDataProvider.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = TUIMessageSearchDataProvider.h; sourceTree = ""; }; - 76D132A2176B2450D9F819A17F35F9E4 /* JXPagingView-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "JXPagingView-umbrella.h"; sourceTree = ""; }; - 7707FACE79B6E516056A977715E501D5 /* UIActivityIndicatorView+AFNetworking.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "UIActivityIndicatorView+AFNetworking.m"; path = "UIKit+AFNetworking/UIActivityIndicatorView+AFNetworking.m"; sourceTree = ""; }; - 770E456381CC918A6B967876645BD99C /* LLScreenshotHelper.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = LLScreenshotHelper.m; path = LLDebugTool/Core/Component/Screenshot/Function/LLScreenshotHelper.m; sourceTree = ""; }; - 7740F3442EC022CD073B1C7C422B750B /* YBIBImageScrollView.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = YBIBImageScrollView.m; path = YBImageBrowser/Image/YBIBImageScrollView.m; sourceTree = ""; }; - 7748FE0C40CEB3D554077FD992B2170D /* OSSRequest.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = OSSRequest.m; path = AliyunOSSSDK/OSSRequest.m; sourceTree = ""; }; - 776CFA1C203D83B99CA88C678E15F2BD /* lossless_enc_msa.c */ = {isa = PBXFileReference; includeInIndex = 1; name = lossless_enc_msa.c; path = src/dsp/lossless_enc_msa.c; sourceTree = ""; }; + 76DF1335C12134B1D7D445AAE9364DAD /* QCloudRequestData.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = QCloudRequestData.m; path = QCloudCore/Classes/Base/QCLOUDRestNet/CoreRequest/QCloudRequestData.m; sourceTree = ""; }; + 7702226C1165C32EABF219A997827653 /* RACValueTransformer.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = RACValueTransformer.m; path = ReactiveObjC/RACValueTransformer.m; sourceTree = ""; }; + 7711CAB336D62A25FA62660300F75B7A /* LLLeftTitleCell.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = LLLeftTitleCell.m; path = LLDebugTool/Core/Others/CommonUI/View/TitleCell/LLLeftTitleCell.m; sourceTree = ""; }; + 7714E976693EA99BE59000205D302755 /* MQTTClient.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = MQTTClient.debug.xcconfig; sourceTree = ""; }; + 771850D0B1CA7B6E4AD0F9C1D43381E1 /* TZGifPhotoPreviewController.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = TZGifPhotoPreviewController.h; path = TZImagePickerController/TZImagePickerController/TZGifPhotoPreviewController.h; sourceTree = ""; }; + 771CD80A64A178845FC2C4BB567A4538 /* SDWebImageIndicator.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDWebImageIndicator.h; path = SDWebImage/Core/SDWebImageIndicator.h; sourceTree = ""; }; + 771E3184D99EB64F4B54612437318B74 /* LLRulerComponent.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = LLRulerComponent.h; path = LLDebugTool/Core/Component/Ruler/LLRulerComponent.h; sourceTree = ""; }; + 773645E1AF35F14E2778E340F7BE3033 /* YBImage.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = YBImage.m; path = YBImageBrowser/Image/YBImage.m; sourceTree = ""; }; + 7749CDC189668907FA85E1CE3762B28F /* LLBaseCollectionViewCell.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = LLBaseCollectionViewCell.h; path = LLDebugTool/Core/Others/CommonUI/Base/LLBaseCollectionViewCell.h; sourceTree = ""; }; + 775560D20105CB51E7EF7E299897C02A /* QCloudFileOffsetStream.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = QCloudFileOffsetStream.h; path = QCloudCore/Classes/Base/QCLOUDRestNet/DataForm/QCloudFileOffsetStream.h; sourceTree = ""; }; + 7797D0A0ADF164212771042AC5E18FA9 /* SDImageCachesManagerOperation.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDImageCachesManagerOperation.m; path = SDWebImage/Private/SDImageCachesManagerOperation.m; sourceTree = ""; }; 779E558559B81FB082EB472C73CF756A /* TUICameraManager.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = TUICameraManager.h; sourceTree = ""; }; - 77E30E64E9270DD9CF9FF715F41492E3 /* TZImageCropManager.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = TZImageCropManager.m; path = TZImagePickerController/TZImagePickerController/TZImageCropManager.m; sourceTree = ""; }; + 77A1E4B9629768B50FAC5938B8C2E2F6 /* FieldMask.pbobjc.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FieldMask.pbobjc.h; path = objectivec/google/protobuf/FieldMask.pbobjc.h; sourceTree = ""; }; 780A48EC5BF491622F641F863E8AB53C /* TUIGroupProfileCardViewCell_Minimalist.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = TUIGroupProfileCardViewCell_Minimalist.h; sourceTree = ""; }; - 78283A414D283E84B549310A9DEFC98F /* ResourceBundle-JXPagerView-JXPagingView-Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "ResourceBundle-JXPagerView-JXPagingView-Info.plist"; sourceTree = ""; }; - 7852EC32D4C50BE7EF8F4F80620AC043 /* RACScheduler.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = RACScheduler.h; path = ReactiveObjC/RACScheduler.h; sourceTree = ""; }; - 785EEFEFE74C9A3EF2EA06CA73326B2A /* UIColor+LL_Utils.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "UIColor+LL_Utils.h"; path = "LLDebugTool/Core/Others/Category/UIColor/UIColor+LL_Utils.h"; sourceTree = ""; }; - 78825BA551DB4A4895F1233B3007B119 /* YBIBTopView.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = YBIBTopView.h; path = YBImageBrowser/ToolView/YBIBTopView.h; sourceTree = ""; }; - 788309C88B7C6CCEE0B1A6F66BAFA25F /* IQKeyboardManager-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "IQKeyboardManager-prefix.pch"; sourceTree = ""; }; - 7895CD442571FE22BF53128A7AC6A6D4 /* AgoraSoundTouch.xcframework */ = {isa = PBXFileReference; includeInIndex = 1; path = AgoraSoundTouch.xcframework; sourceTree = ""; }; + 78181E620223E59062D99CF2CE56EA5D /* QCloudAuthentationCreator.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = QCloudAuthentationCreator.h; path = QCloudCore/Classes/Base/QCloudClientBase/Authentation/QCloudAuthentationCreator.h; sourceTree = ""; }; + 781B957CD910ED3C3FC242928CE4FA0B /* LLRouter+Crash.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "LLRouter+Crash.m"; path = "LLDebugTool/Core/Others/Router/LLRouter+Crash.m"; sourceTree = ""; }; + 783462EC8F6705A4B684FCEB809EA483 /* LyricsFileDownloader.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = LyricsFileDownloader.swift; path = AgoraLyricsScore/Class/Downloader/LyricsFileDownloader.swift; sourceTree = ""; }; + 784353DA37A39F5B40EE64CC6348C2D3 /* LLFunctionViewController.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = LLFunctionViewController.m; path = LLDebugTool/Core/Others/Component/Function/UserInterface/LLFunctionViewController.m; sourceTree = ""; }; + 784EAA99362BC0C41CE5852297D05024 /* RACValueTransformer.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = RACValueTransformer.h; path = ReactiveObjC/RACValueTransformer.h; sourceTree = ""; }; + 7855E526D92517A3630804D531988716 /* LLStorageManager.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = LLStorageManager.m; path = LLDebugTool/Core/Storage/LLStorageManager.m; sourceTree = ""; }; + 78698D88D2EF9869FB93054A6D3F2BC8 /* QCloudServiceConfiguration.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = QCloudServiceConfiguration.m; path = QCloudCore/Classes/Base/QCloudClientBase/Service/QCloudServiceConfiguration.m; sourceTree = ""; }; + 78880351E0F1EAC9BA7AA75AC6858179 /* AlipaySDK-iOS-xcframeworks.sh */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.script.sh; path = "AlipaySDK-iOS-xcframeworks.sh"; sourceTree = ""; }; + 789D9C60CEC14184D954B2E6F6750860 /* QCloudCOSXMLService.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = QCloudCOSXMLService.m; path = QCloudCOSXML/Classes/Base/QCloudCOSXMLService.m; sourceTree = ""; }; 78A4C84DE22C48967209E3579250D19A /* TUIFloatViewController.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = TUIFloatViewController.m; sourceTree = ""; }; 78AEBBA87FDCC7280A9641A4C6A46DA9 /* Pods-QXLiveDev-Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "Pods-QXLiveDev-Info.plist"; sourceTree = ""; }; 78C38A473ABFCB87E5984F46822129BA /* TUIGroupInfoDataProvider_Minimalist.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = TUIGroupInfoDataProvider_Minimalist.m; sourceTree = ""; }; - 78E1AF6CD965D6698401E49FAE61C114 /* LLShortCutWindow.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = LLShortCutWindow.m; path = LLDebugTool/Core/Component/ShortCut/UserInterface/LLShortCutWindow.m; sourceTree = ""; }; - 78E3DC27915BE74A4C155D9D4085E14A /* TZVideoPlayerController.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = TZVideoPlayerController.h; path = TZImagePickerController/TZImagePickerController/TZVideoPlayerController.h; sourceTree = ""; }; - 78EA929E169916A9F9E7AD094C630211 /* LLFilterView.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = LLFilterView.h; path = LLDebugTool/Core/Others/CommonUI/View/FilterView/LLFilterView.h; sourceTree = ""; }; - 78ED6BA2D05CA733DCFF4F9FD00420B9 /* SourceContext.pbobjc.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SourceContext.pbobjc.h; path = objectivec/google/protobuf/SourceContext.pbobjc.h; sourceTree = ""; }; - 78F40CD95F964A48B1B2D4E12A399BA3 /* LLWindowManager+Network.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "LLWindowManager+Network.h"; path = "LLDebugTool/Core/Component/Network/UserInterface/LLWindowManager+Network.h"; sourceTree = ""; }; - 79029D33A08F6FA9B18D92BD91286B4F /* UISegmentedControl+RACSignalSupport.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "UISegmentedControl+RACSignalSupport.m"; path = "ReactiveObjC/UISegmentedControl+RACSignalSupport.m"; sourceTree = ""; }; - 7904B187B62CC80CCC17E0510619D9E5 /* LLRulerWindow.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = LLRulerWindow.h; path = LLDebugTool/Core/Component/Ruler/UserInterface/LLRulerWindow.h; sourceTree = ""; }; - 792BDE17147284F412D465D40D7D82D5 /* LLWindowManager+Hierarchy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "LLWindowManager+Hierarchy.m"; path = "LLDebugTool/Core/Component/Hierarchy/UserInterface/LLWindowManager+Hierarchy.m"; sourceTree = ""; }; - 793BD5B1F577357BCFF00938BCAF04FC /* LLHtmlConfigViewController.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = LLHtmlConfigViewController.m; path = LLDebugTool/Core/Component/Html/UserInterface/LLHtmlConfigViewController.m; sourceTree = ""; }; - 7946A888A59E2EC0E6E447B36C714F56 /* LLBaseTableViewController.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = LLBaseTableViewController.m; path = LLDebugTool/Core/Others/CommonUI/Base/LLBaseTableViewController.m; sourceTree = ""; }; - 7971499FF2CB98199DA5DEF58AB6B7BE /* LLShortCutWindow.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = LLShortCutWindow.h; path = LLDebugTool/Core/Component/ShortCut/UserInterface/LLShortCutWindow.h; sourceTree = ""; }; - 7986063DEFE43E2F80E37E4A1882CB24 /* LLLogComponent.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = LLLogComponent.h; path = LLDebugTool/Core/Component/Log/LLLogComponent.h; sourceTree = ""; }; - 798B85CFA2FEA1EC56E6EE7192006D0E /* LLConvenientScreenshotComponent.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = LLConvenientScreenshotComponent.m; path = LLDebugTool/Core/Component/Screenshot/LLConvenientScreenshotComponent.m; sourceTree = ""; }; - 79ABEC3E0AD0F789BBA2E91BEC477792 /* LLConst.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = LLConst.m; path = LLDebugTool/Core/Others/Const/LLConst.m; sourceTree = ""; }; + 79197E9742FC7ACA3F513F5B1C3E9ADE /* NSDate+YYAdd.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "NSDate+YYAdd.h"; path = "YYCategories/Foundation/NSDate+YYAdd.h"; sourceTree = ""; }; + 79316CFA51F57B480E78AFD155B565F0 /* YYCache.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.module; path = YYCache.modulemap; sourceTree = ""; }; + 796C040FFBED8EDA555E335E388F7C12 /* QCloudConfiguration.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = QCloudConfiguration.h; path = QCloudCore/Classes/Base/QCloudClientBase/Service/QCloudConfiguration.h; sourceTree = ""; }; 79BDF63877BF7277102F6279C283A3FC /* TUIChatDataProvider.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = TUIChatDataProvider.m; sourceTree = ""; }; - 79C2E4A0E64D560295485D1653A3C77A /* SDWebImageWebPCoder.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.module; path = SDWebImageWebPCoder.modulemap; sourceTree = ""; }; - 79D43D24910C0244A48B3A934EC0DA65 /* QGVAPConfigManager.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = QGVAPConfigManager.h; path = iOS/QGVAPlayer/QGVAPlayer/Classes/Controllers/QGVAPConfigManager.h; sourceTree = ""; }; + 79D6665A746B7CB75F80D33BD138EFAF /* LLSettingManager.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = LLSettingManager.h; path = LLDebugTool/Core/Others/Manager/SettingManager/LLSettingManager.h; sourceTree = ""; }; 79D6C309FA26434A55A4DBA122CC04CF /* TUIImageReplyQuoteView.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = TUIImageReplyQuoteView.m; sourceTree = ""; }; + 79D937BCD943E356C2FC4B49FF67BF50 /* QCloudUniversalAdjustablePath.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = QCloudUniversalAdjustablePath.m; path = QCloudCore/Classes/Base/PathUtilities/QCloudUniversalAdjustablePath.m; sourceTree = ""; }; 79F8CD81D69251341C8E0C4201EE2932 /* TUIMessageBaseMediaDataProvider.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = TUIMessageBaseMediaDataProvider.h; sourceTree = ""; }; + 79FE46DF0519B7BC0F843EA1B149D909 /* QCloudPutObjectRequest.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = QCloudPutObjectRequest.m; path = QCloudCOSXML/Classes/Transfer/request/QCloudPutObjectRequest.m; sourceTree = ""; }; + 7A1A711047C1AC34798F807FBF6686D5 /* JXPagingView.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = JXPagingView.release.xcconfig; sourceTree = ""; }; 7A21DD9A7DE0469E7318C8B61E5363B3 /* TUIMediaView_Minimalist.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = TUIMediaView_Minimalist.m; sourceTree = ""; }; - 7A4E0C63D2167E78E6616CA04F10960B /* enc_mips32.c */ = {isa = PBXFileReference; includeInIndex = 1; name = enc_mips32.c; path = src/dsp/enc_mips32.c; sourceTree = ""; }; - 7A597F55E869CB15D42DA6FE4F4A857F /* LLTitleSwitchCellView.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = LLTitleSwitchCellView.m; path = LLDebugTool/Core/Others/CommonUI/View/CellView/LLTitleSwitchCellView.m; sourceTree = ""; }; - 7A5DA90274FD948A4973F3E2AE5986FF /* SDImageCodersManager.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDImageCodersManager.m; path = SDWebImage/Core/SDImageCodersManager.m; sourceTree = ""; }; + 7A232D07C7D89F3CFB0596B6AFA9312C /* RACTargetQueueScheduler.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = RACTargetQueueScheduler.m; path = ReactiveObjC/RACTargetQueueScheduler.m; sourceTree = ""; }; 7A68AEF7D8C8DCB4F66D54DE4E6FF430 /* TIMPopActionProtocol.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = TIMPopActionProtocol.h; sourceTree = ""; }; - 7A7049611F4F5458FA0C6A6B2566E802 /* NSObject+YYAddForARC.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "NSObject+YYAddForARC.h"; path = "YYCategories/Foundation/NSObject+YYAddForARC.h"; sourceTree = ""; }; - 7ABB8BC7F2F51867BA70320173E3BCF2 /* SVGAContentLayer.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SVGAContentLayer.h; path = Source/SVGAContentLayer.h; sourceTree = ""; }; - 7ABCE646AFDD6A3662E4B5C7B15F999A /* quant_levels_utils.c */ = {isa = PBXFileReference; includeInIndex = 1; name = quant_levels_utils.c; path = src/utils/quant_levels_utils.c; sourceTree = ""; }; - 7ABDB6DAEBD6804A541E75AAE3ECBBA7 /* RACSignalSequence.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = RACSignalSequence.m; path = ReactiveObjC/RACSignalSequence.m; sourceTree = ""; }; - 7ADE8D264B11576DC5C2A85D8F5A0CCE /* YBIBCopywriter.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = YBIBCopywriter.h; path = YBImageBrowser/Helper/YBIBCopywriter.h; sourceTree = ""; }; - 7AE99A5C966E43E5FAED29A2602CEAB2 /* NSDate+BRPickerView.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "NSDate+BRPickerView.h"; path = "BRPickerView/DatePicker/NSDate+BRPickerView.h"; sourceTree = ""; }; - 7B214FF6F0B5DF058EAB84CBA5CB49C1 /* NSMutableDictionary+AvoidCrash.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "NSMutableDictionary+AvoidCrash.m"; path = "AvoidCrash/NSMutableDictionary+AvoidCrash.m"; sourceTree = ""; }; - 7B3437C53629426F737F71A99D6242C3 /* TZProgressView.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = TZProgressView.h; path = TZImagePickerController/TZImagePickerController/TZProgressView.h; sourceTree = ""; }; - 7B3655DC7C72B2B6C45ACE5B6107BCA9 /* AlipaySDK-iOS-xcframeworks.sh */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.script.sh; path = "AlipaySDK-iOS-xcframeworks.sh"; sourceTree = ""; }; - 7B52BD624B9A013BD9BAC65DA60BEB35 /* AgoraLyricsScore-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "AgoraLyricsScore-umbrella.h"; sourceTree = ""; }; - 7B5324C47C8F7979E68D5933AE51B7AC /* LyricMachine+Events.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "LyricMachine+Events.swift"; path = "AgoraLyricsScore/Class/Lyrics/LyricMachine+Events.swift"; sourceTree = ""; }; - 7B7F1F80C3554DB598171C96EE03DD98 /* MJRefreshStateTrailer.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = MJRefreshStateTrailer.h; path = MJRefresh/Custom/Trailer/MJRefreshStateTrailer.h; sourceTree = ""; }; - 7B9A035DE5D9C7806758DF7A4C66FC22 /* SDWebImageDownloaderConfig.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDWebImageDownloaderConfig.h; path = SDWebImage/Core/SDWebImageDownloaderConfig.h; sourceTree = ""; }; - 7B9CFE0009D3BE470BBA587D39B3FC89 /* LLWindowManager+Screenshot.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "LLWindowManager+Screenshot.m"; path = "LLDebugTool/Core/Component/Screenshot/UserInterface/LLWindowManager+Screenshot.m"; sourceTree = ""; }; - 7BB5E2AE2E887542391B90E86AAA2F9F /* SDWebImageWebPCoder-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "SDWebImageWebPCoder-dummy.m"; sourceTree = ""; }; - 7BCF026C0E29BE36E4189826AD023FAB /* YYCategories.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = YYCategories.debug.xcconfig; sourceTree = ""; }; - 7BD65414F9161E090DAD5B80CE95692E /* LLRulerPickerInfoView.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = LLRulerPickerInfoView.m; path = LLDebugTool/Core/Component/Ruler/UserInterface/LLRulerPickerInfoView.m; sourceTree = ""; }; - 7BFAC4ADECF889483CD444EFD2238929 /* thread_utils.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = thread_utils.h; path = src/utils/thread_utils.h; sourceTree = ""; }; - 7C05072F6E59B5FC0F919854426158BC /* BRPickerAlertView.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = BRPickerAlertView.h; path = BRPickerView/Core/BRPickerAlertView.h; sourceTree = ""; }; - 7C07DEBF5092E04D597ADC1DC8509A4C /* OSSBolts.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = OSSBolts.m; path = AliyunOSSSDK/OSSTask/OSSBolts.m; sourceTree = ""; }; - 7C0C3946F0D9BB69D717E357ADB74546 /* LLFunctionItemModel.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = LLFunctionItemModel.h; path = LLDebugTool/Core/Others/Component/Function/UserInterface/LLFunctionItemModel.h; sourceTree = ""; }; + 7A7F4E929AA33853310B11781EEB9EF6 /* MJRefreshFooter.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = MJRefreshFooter.h; path = MJRefresh/Base/MJRefreshFooter.h; sourceTree = ""; }; + 7AA8DA305EE8D9181700B0E85ACBF0A0 /* UITableViewHeaderFooterView+RACSignalSupport.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "UITableViewHeaderFooterView+RACSignalSupport.m"; path = "ReactiveObjC/UITableViewHeaderFooterView+RACSignalSupport.m"; sourceTree = ""; }; + 7AC7367DFD49858857D764C9E8E6D909 /* OSSTask.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = OSSTask.m; path = AliyunOSSSDK/OSSTask/OSSTask.m; sourceTree = ""; }; + 7AD876C2E305B26F51D1C62B84BC2F1A /* QCloudPutObjectRequest.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = QCloudPutObjectRequest.h; path = QCloudCOSXML/Classes/Transfer/request/QCloudPutObjectRequest.h; sourceTree = ""; }; + 7AE87813BC5C3F351ABF41B3DAEE6338 /* LLWindowManager+WidgetBorder.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "LLWindowManager+WidgetBorder.h"; path = "LLDebugTool/Core/Component/WidgetBorder/UserInterface/LLWindowManager+WidgetBorder.h"; sourceTree = ""; }; + 7AF7D22843BF31FD4D542530E673362D /* YYTextMagnifier.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = YYTextMagnifier.m; path = YYText/Component/YYTextMagnifier.m; sourceTree = ""; }; + 7B4640EBC24552EA6D19B590EC17005D /* NSObject+HTTPHeadersContainer.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "NSObject+HTTPHeadersContainer.m"; path = "QCloudCore/Classes/Base/QCLOUDRestNet/SessionSupport/NSObject+HTTPHeadersContainer.m"; sourceTree = ""; }; + 7B50A7E8DA5B74A5B380E5D6A332CF25 /* OSSLog.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = OSSLog.h; path = AliyunOSSSDK/OSSLog.h; sourceTree = ""; }; + 7B595D29D87085688B882F34B66276A4 /* JXCategoryListContainerRTLCell.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = JXCategoryListContainerRTLCell.m; path = Sources/Common/JXCategoryListContainerRTLCell.m; sourceTree = ""; }; + 7B74AFAD09760E4C9FEED9088724194B /* UIButton+LL_Utils.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "UIButton+LL_Utils.h"; path = "LLDebugTool/Core/Others/Category/UIButton/UIButton+LL_Utils.h"; sourceTree = ""; }; + 7B8538C92E9A05B81E43BE9E127229AB /* JXCategoryFactory.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = JXCategoryFactory.m; path = Sources/Common/JXCategoryFactory.m; sourceTree = ""; }; + 7BA596AF09DC25D4F318AC46F7C2DE57 /* RACScopedDisposable.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = RACScopedDisposable.h; path = ReactiveObjC/RACScopedDisposable.h; sourceTree = ""; }; + 7BA85FD2B0BC74A86DE67260FEB5932B /* OSSV4Signer.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = OSSV4Signer.m; path = AliyunOSSSDK/Signer/OSSV4Signer.m; sourceTree = ""; }; + 7BAAB6788DBAD384970B8CA5CE92451C /* GPBRootObject_PackagePrivate.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = GPBRootObject_PackagePrivate.h; path = objectivec/GPBRootObject_PackagePrivate.h; sourceTree = ""; }; + 7BCF3811DF71E81D97FE5E9692B0FE7C /* yuv.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = yuv.h; path = src/dsp/yuv.h; sourceTree = ""; }; + 7C060A1B3314655E245A42B468679D3D /* OSSCompat.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = OSSCompat.h; path = AliyunOSSSDK/OSSCompat.h; sourceTree = ""; }; + 7C0FEDCED2F0A3D817915379F808E910 /* LLHtmlComponent.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = LLHtmlComponent.h; path = LLDebugTool/Core/Component/Html/LLHtmlComponent.h; sourceTree = ""; }; 7C1FA8898FB04920C5245AF177B91318 /* NSString+TUIUtil.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "NSString+TUIUtil.h"; sourceTree = ""; }; + 7C2ADB6C0EB671B069FB89C018103821 /* LLLogModel.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = LLLogModel.m; path = LLDebugTool/Core/Component/Log/Function/LLLogModel.m; sourceTree = ""; }; 7C59572B595BAC9C28F19D2C92B524DA /* TUIGroupNoticeCell.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = TUIGroupNoticeCell.m; sourceTree = ""; }; - 7C6E5DAB982BC66D49DFAF9F20D7E984 /* mz_zip_rw.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = mz_zip_rw.h; path = SSZipArchive/minizip/mz_zip_rw.h; sourceTree = ""; }; - 7C70F29094808A284B4932FBC016B051 /* MJRefreshBackFooter.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = MJRefreshBackFooter.m; path = MJRefresh/Base/MJRefreshBackFooter.m; sourceTree = ""; }; - 7CB3ADC3E378AEF407221E27752303D3 /* QGBaseAnimatedImageFrame+Displaying.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "QGBaseAnimatedImageFrame+Displaying.h"; path = "iOS/QGVAPlayer/QGVAPlayer/Classes/Models/QGBaseAnimatedImageFrame+Displaying.h"; sourceTree = ""; }; - 7CC1FF2AD5452B874857B99A32DBFE0F /* LLScreenshotComponent.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = LLScreenshotComponent.m; path = LLDebugTool/Core/Component/Screenshot/LLScreenshotComponent.m; sourceTree = ""; }; - 7CF9C7F6DBB7F2CEF6DDE1A85B040BE3 /* UIImage+YYAdd.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "UIImage+YYAdd.h"; path = "YYCategories/UIKit/UIImage+YYAdd.h"; sourceTree = ""; }; + 7C774508195CE16AFEAF10E844CCB0E0 /* QGMP4AnimatedImageFrame.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = QGMP4AnimatedImageFrame.h; path = iOS/QGVAPlayer/QGVAPlayer/Classes/Models/QGMP4AnimatedImageFrame.h; sourceTree = ""; }; + 7CA06F08E44AB208CD1789571785DA66 /* QCloudUniversalPathFactory.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = QCloudUniversalPathFactory.m; path = QCloudCore/Classes/Base/PathUtilities/QCloudUniversalPathFactory.m; sourceTree = ""; }; + 7CC8A4437F40CBBF7AD1B9F900965783 /* MJRefreshComponent.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = MJRefreshComponent.m; path = MJRefresh/Base/MJRefreshComponent.m; sourceTree = ""; }; + 7CE15E49F9E3BE063CEB7A453BE51060 /* libwebp-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "libwebp-prefix.pch"; sourceTree = ""; }; + 7CE17C93C73BB3A3750816869E6D7288 /* sharpyuv_gamma.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = sharpyuv_gamma.h; path = sharpyuv/sharpyuv_gamma.h; sourceTree = ""; }; 7D01B7A03D3A1CE42F6F8CA6C8FE217A /* CoreTelephony.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreTelephony.framework; path = Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS18.0.sdk/System/Library/Frameworks/CoreTelephony.framework; sourceTree = DEVELOPER_DIR; }; - 7D196C3B31C756FB0E740374A64D08E4 /* LLStorageModel.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = LLStorageModel.m; path = LLDebugTool/Core/Others/CommonUI/Model/Storage/LLStorageModel.m; sourceTree = ""; }; - 7D26F39CD7F4C4CADB3EB2810910D962 /* NSNumber+YYAdd.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "NSNumber+YYAdd.h"; path = "YYCategories/Foundation/NSNumber+YYAdd.h"; sourceTree = ""; }; - 7D3C30217CE5E60BD3244C7C67251778 /* LLRouter+Screenshot.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "LLRouter+Screenshot.m"; path = "LLDebugTool/Core/Others/Router/LLRouter+Screenshot.m"; sourceTree = ""; }; - 7D60CEA3C1DFC351B3099F26E0599BE4 /* NSArray+YYAdd.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "NSArray+YYAdd.m"; path = "YYCategories/Foundation/NSArray+YYAdd.m"; sourceTree = ""; }; - 7D85F571351B8D5A7A33993426157D83 /* SDCollectionViewCell.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDCollectionViewCell.h; path = SDCycleScrollView/Lib/SDCycleScrollView/SDCollectionViewCell.h; sourceTree = ""; }; - 7D8737F50F40B4DD880127C8E8CA6CC3 /* RACSubject.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = RACSubject.h; path = ReactiveObjC/RACSubject.h; sourceTree = ""; }; + 7D1124643FAA5580FABB3C1211801FAA /* MJRefreshConfig.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = MJRefreshConfig.h; path = MJRefresh/MJRefreshConfig.h; sourceTree = ""; }; + 7D20A37D62721558A4DAAA2C5262A0C0 /* Parser.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Parser.swift; path = AgoraLyricsScore/Class/Other/Parser.swift; sourceTree = ""; }; + 7D34802C42910BED926F2406DC0964E2 /* PrivacyInfo.xcprivacy */ = {isa = PBXFileReference; includeInIndex = 1; name = PrivacyInfo.xcprivacy; path = "TIMPush.xcframework/ios-arm64/TIMPush.framework/PrivacyInfo.xcprivacy"; sourceTree = ""; }; + 7D4921D54DF57037990148DED5974A9B /* QCloudSignatureProvider.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = QCloudSignatureProvider.h; path = QCloudCore/Classes/Base/QCloudClientBase/Authentation/QCloudSignatureProvider.h; sourceTree = ""; }; + 7D520FB3734A205A622A47AED3147EFE /* RACKVOTrampoline.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = RACKVOTrampoline.m; path = ReactiveObjC/RACKVOTrampoline.m; sourceTree = ""; }; + 7D73B991F91970EA6FA49F3BDC9EF941 /* GPBUnknownField_PackagePrivate.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = GPBUnknownField_PackagePrivate.h; path = objectivec/GPBUnknownField_PackagePrivate.h; sourceTree = ""; }; + 7D7456310EE07F17AF25F30FBA7E159C /* LLHierarchyDetailViewController.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = LLHierarchyDetailViewController.m; path = LLDebugTool/Core/Component/Hierarchy/UserInterface/LLHierarchyDetailViewController.m; sourceTree = ""; }; 7D8F8EED794CA3D78DFAA80B891564DA /* TUIMessageDataProvider.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = TUIMessageDataProvider.m; sourceTree = ""; }; - 7D91F0BC568DF526F575AE17E505DDDE /* UIView+TZLayout.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "UIView+TZLayout.m"; path = "TZImagePickerController/TZImagePickerController/UIView+TZLayout.m"; sourceTree = ""; }; - 7DFA74EEE358019BD8749611761E516E /* yuv_mips32.c */ = {isa = PBXFileReference; includeInIndex = 1; name = yuv_mips32.c; path = src/dsp/yuv_mips32.c; sourceTree = ""; }; + 7DA03579B3320963B3E23FE8F282C770 /* SDCycleScrollView.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDCycleScrollView.m; path = SDCycleScrollView/Lib/SDCycleScrollView/SDCycleScrollView.m; sourceTree = ""; }; + 7DE64C569A1E6932192F89F76EE47A34 /* MJRefreshAutoFooter.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = MJRefreshAutoFooter.m; path = MJRefresh/Base/MJRefreshAutoFooter.m; sourceTree = ""; }; + 7DE8A580BF8985ABA68B8D11064530FB /* JXCategoryBaseView.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = JXCategoryBaseView.m; path = Sources/Base/JXCategoryBaseView.m; sourceTree = ""; }; 7E0E8A35DB0D379281F23791C6881C2C /* TUIMergeReplyQuoteViewData.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = TUIMergeReplyQuoteViewData.m; sourceTree = ""; }; - 7E276F24B861711DE1495475D746E403 /* YBIBSheetView.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = YBIBSheetView.m; path = YBImageBrowser/ToolView/YBIBSheetView.m; sourceTree = ""; }; - 7E2EE826FEA94FAC5DF3646BE7D9FA18 /* NSDictionary+YYAdd.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "NSDictionary+YYAdd.m"; path = "YYCategories/Foundation/NSDictionary+YYAdd.m"; sourceTree = ""; }; + 7E117D8C5A00946329D50C817ABA1495 /* MJRefreshConfig.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = MJRefreshConfig.m; path = MJRefresh/MJRefreshConfig.m; sourceTree = ""; }; 7E3097CFEFDA621E9FB0E62009FF87FC /* MJRefresh-MJRefresh.Privacy */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; name = "MJRefresh-MJRefresh.Privacy"; path = MJRefresh.Privacy.bundle; sourceTree = BUILT_PRODUCTS_DIR; }; - 7E35CC371B17AD9F7685BA4B6396AF19 /* SSZipArchive-Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "SSZipArchive-Info.plist"; sourceTree = ""; }; - 7E428D3DD36D1F0B655E0FE9239DCC59 /* LLFilterDatePickerView.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = LLFilterDatePickerView.h; path = LLDebugTool/Core/Others/CommonUI/View/FilterView/LLFilterDatePickerView.h; sourceTree = ""; }; - 7E453ECA8A5EFF7938EEEE294601EA51 /* TZVideoEditedPreviewController.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = TZVideoEditedPreviewController.m; path = TZImagePickerController/TZImagePickerController/TZVideoEditedPreviewController.m; sourceTree = ""; }; + 7E36FEAE81EA2EE361EDF25FF9210DE6 /* QCloudSupervisory.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = QCloudSupervisory.h; path = QCloudCore/Classes/Base/Supervisory/QCloudSupervisory.h; sourceTree = ""; }; + 7E414E5A0DC1E4355F0710FF6106FE67 /* MQTTSessionManager.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = MQTTSessionManager.h; path = MQTTClient/MQTTClient/MQTTSessionManager.h; sourceTree = ""; }; 7E45FD6D033BD66E2A7C199CA579F8C4 /* TUIImageMessageCell_Minimalist.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = TUIImageMessageCell_Minimalist.h; sourceTree = ""; }; - 7E65EF5DD78F66325A573218AE7EA5E1 /* AliyunOSSiOS-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "AliyunOSSiOS-umbrella.h"; sourceTree = ""; }; - 7E6905C34F7E865783EE450007EA8B53 /* AliyunOSSiOS.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = AliyunOSSiOS.h; path = "Supporting Files/AliyunOSSiOS.h"; sourceTree = ""; }; + 7E6D8C17D7EFFE59B3E79D8BBD2DD07C /* QCloudFakeRequestOperation.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = QCloudFakeRequestOperation.h; path = QCloudCore/Classes/Base/QCLOUDRestNet/Operations/QCloudFakeRequestOperation.h; sourceTree = ""; }; + 7E7F426B17E68809DC64043CCDD166B9 /* sharpyuv_dsp.c */ = {isa = PBXFileReference; includeInIndex = 1; name = sharpyuv_dsp.c; path = sharpyuv/sharpyuv_dsp.c; sourceTree = ""; }; 7E85AE7CD8AD114CB75B2015BFF30139 /* TUIChatDefine.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = TUIChatDefine.h; sourceTree = ""; }; - 7EA94F3C2C7CC7E913C8AB4303563598 /* TZImagePickerController.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = TZImagePickerController.debug.xcconfig; sourceTree = ""; }; - 7ECCFC6A17A1B204A0B32CA0F4F54EE4 /* UIControl+YYAdd.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "UIControl+YYAdd.h"; path = "YYCategories/UIKit/UIControl+YYAdd.h"; sourceTree = ""; }; - 7ECD4D942E99D706A9F27E2A3E37ED2B /* OSSCancellationTokenSource.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = OSSCancellationTokenSource.h; path = AliyunOSSSDK/OSSTask/OSSCancellationTokenSource.h; sourceTree = ""; }; - 7ED6DE7DE306C3C1789B1BBCF29BA18A /* SDImageAWebPCoder.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDImageAWebPCoder.m; path = SDWebImage/Core/SDImageAWebPCoder.m; sourceTree = ""; }; - 7EE201C9EDE3E86876EA40183DA69E3A /* NSObject+RACPropertySubscribing.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "NSObject+RACPropertySubscribing.h"; path = "ReactiveObjC/NSObject+RACPropertySubscribing.h"; sourceTree = ""; }; - 7EEBE3C8967905D483B0EA21522EAD31 /* RACAnnotations.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = RACAnnotations.h; path = ReactiveObjC/RACAnnotations.h; sourceTree = ""; }; - 7EF4173009E165F51CE02CA8303F8D2A /* UIView+YYText.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "UIView+YYText.h"; path = "YYText/Utility/UIView+YYText.h"; sourceTree = ""; }; - 7EFF9BB7077C826E11E7816EB23FDB40 /* LLAppInfoHelper.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = LLAppInfoHelper.m; path = LLDebugTool/Core/Component/AppInfo/Function/LLAppInfoHelper.m; sourceTree = ""; }; - 7F00E751F1A9E894E923D939629EC0FE /* RACArraySequence.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = RACArraySequence.h; path = ReactiveObjC/RACArraySequence.h; sourceTree = ""; }; - 7F090161AC4F475F49518CF68DFC309C /* BRTextModel.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = BRTextModel.h; path = BRPickerView/TextPicker/BRTextModel.h; sourceTree = ""; }; + 7E91AC838DA3E00425237239625A60D5 /* NSMutableArray+AvoidCrash.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "NSMutableArray+AvoidCrash.m"; path = "AvoidCrash/NSMutableArray+AvoidCrash.m"; sourceTree = ""; }; + 7E9F1FF9DD117F796BE188AD8D9701A9 /* mz_compat.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = mz_compat.h; path = SSZipArchive/minizip/mz_compat.h; sourceTree = ""; }; + 7ECB13CEA7C57C83436F9B033C82B395 /* QCloudBundlePath.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = QCloudBundlePath.h; path = QCloudCore/Classes/Base/PathUtilities/QCloudBundlePath.h; sourceTree = ""; }; + 7EEA1E1BB5437E90728E35ED0A840516 /* UIButton+AFNetworking.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "UIButton+AFNetworking.m"; path = "UIKit+AFNetworking/UIButton+AFNetworking.m"; sourceTree = ""; }; + 7EF55A83A84BDDBDEE9CEFAF550BEBA9 /* ViewController+MASAdditions.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "ViewController+MASAdditions.h"; path = "Masonry/ViewController+MASAdditions.h"; sourceTree = ""; }; + 7F0A2C19402A57262BA8DDF54B4CF42C /* LLDetailTitleSelectorCellView.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = LLDetailTitleSelectorCellView.m; path = LLDebugTool/Core/Others/CommonUI/View/CellView/LLDetailTitleSelectorCellView.m; sourceTree = ""; }; + 7F1CAB64DE99CAFFF7F8C0DCE41285AF /* JXCategoryListContainerView.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = JXCategoryListContainerView.h; path = Sources/Common/JXCategoryListContainerView.h; sourceTree = ""; }; + 7F399192B4E0B59417904626FC68275B /* SDDiskCache.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDDiskCache.h; path = SDWebImage/Core/SDDiskCache.h; sourceTree = ""; }; + 7F401BD5D64C98706C50B381569FAA63 /* QCloudLogger.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = QCloudLogger.m; path = QCloudCore/Classes/Base/Logger/QCloudLogger.m; sourceTree = ""; }; 7F5DFDDAA9C8958F354EB87E55C151C5 /* TUIConversation_Minimalist.bundle */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = "wrapper.plug-in"; name = TUIConversation_Minimalist.bundle; path = Resources/TUIConversation_Minimalist.bundle; sourceTree = ""; }; - 7F6E7A6C504F85941CEC9D4BB2424FF5 /* LLInfoView.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = LLInfoView.m; path = LLDebugTool/Core/Others/CommonUI/View/InfoView/LLInfoView.m; sourceTree = ""; }; - 7F883178AAADE89662BD581D8C35CD3B /* SDInternalMacros.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDInternalMacros.m; path = SDWebImage/Private/SDInternalMacros.m; sourceTree = ""; }; - 7F9BF7459E26D9B231CAE3CE61CA0701 /* UIImageView+HighlightedWebCache.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "UIImageView+HighlightedWebCache.h"; path = "SDWebImage/Core/UIImageView+HighlightedWebCache.h"; sourceTree = ""; }; + 7F9F6F40AB8B6C82E514BD3868B3C40D /* UIImage+MultiFormat.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "UIImage+MultiFormat.h"; path = "SDWebImage/Core/UIImage+MultiFormat.h"; sourceTree = ""; }; 7FBCE81EE24E82A2E8D15E74B6C76AE0 /* Pods-QXLive-acknowledgements.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "Pods-QXLive-acknowledgements.plist"; sourceTree = ""; }; - 7FC482CCFC42F915F06023F8A7DF40E8 /* JXCategoryTitleView.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = JXCategoryTitleView.m; path = Sources/Title/JXCategoryTitleView.m; sourceTree = ""; }; - 7FC5BDFC466EC58D3F786F4A178E0D37 /* LLLocationMockRouteModel.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = LLLocationMockRouteModel.m; path = LLDebugTool/Core/Component/Location/Function/LLLocationMockRouteModel.m; sourceTree = ""; }; 8005A15AA2883C0049FC97E6669A659E /* TUILogin.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = TUILogin.m; sourceTree = ""; }; - 80305933F4129F1895492CE0A1E92850 /* OSSGetObjectTaggingResult.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = OSSGetObjectTaggingResult.h; path = AliyunOSSSDK/OSSGetObjectTaggingResult.h; sourceTree = ""; }; - 8036E4822E47748646E4C8079711ADDC /* JXCategoryView-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "JXCategoryView-umbrella.h"; sourceTree = ""; }; - 803C6D9674538F98A75D1477FA70C01C /* LLNetworkWindow.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = LLNetworkWindow.h; path = LLDebugTool/Core/Component/Network/UserInterface/LLNetworkWindow.h; sourceTree = ""; }; - 80465901921C31FCB30E524C8CD52297 /* YYImageCoder.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = YYImageCoder.m; path = YYImage/YYImageCoder.m; sourceTree = ""; }; - 8061F5C4EB19BDD00C4EA158523641A8 /* UITableViewCell+RACSignalSupport.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "UITableViewCell+RACSignalSupport.h"; path = "ReactiveObjC/UITableViewCell+RACSignalSupport.h"; sourceTree = ""; }; - 806CCE2940F0FE5D05D6B4AFD51D2A6D /* NSDictionary+LL_Utils.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "NSDictionary+LL_Utils.m"; path = "LLDebugTool/Core/Others/Category/NSDictionary/NSDictionary+LL_Utils.m"; sourceTree = ""; }; - 8097A0CFE095F6B88DFC00726F709043 /* KrcParser.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = KrcParser.swift; path = AgoraLyricsScore/Class/Other/KrcParser.swift; sourceTree = ""; }; 80982FE688D1717632F9A64839F7AF6F /* TUIBaseChatViewController.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = TUIBaseChatViewController.m; sourceTree = ""; }; 80986A16BDC16262E495AA75F73F8B79 /* TUIInputMoreCell.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = TUIInputMoreCell.m; sourceTree = ""; }; - 80A2AD92A5B51B36F6D54DD52742DDD3 /* UIColor+LL_Utils.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "UIColor+LL_Utils.m"; path = "LLDebugTool/Core/Others/Category/UIColor/UIColor+LL_Utils.m"; sourceTree = ""; }; + 80A9E7D4BFA9F54864B54934B2C3B3CD /* lossless_enc_neon.c */ = {isa = PBXFileReference; includeInIndex = 1; name = lossless_enc_neon.c; path = src/dsp/lossless_enc_neon.c; sourceTree = ""; }; 80BD092334EDB6A9A6A0038022DD9132 /* TUICommonGroupInfoCellData_Minimalist.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = TUICommonGroupInfoCellData_Minimalist.h; sourceTree = ""; }; - 80E3C2E300CD116D6119C5D6C7723351 /* mz_strm_wzaes.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = mz_strm_wzaes.h; path = SSZipArchive/minizip/mz_strm_wzaes.h; sourceTree = ""; }; + 80DA8DF4560D22DCB297C1D76E14A1B1 /* LLDebugTool.bundle */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = "wrapper.plug-in"; name = LLDebugTool.bundle; path = LLDebugTool/Core/Others/Resource/LLDebugTool.bundle; sourceTree = ""; }; 80E909573FB94FE0B5E7F0DB01A78B32 /* TUICloudCustomDataTypeCenter.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = TUICloudCustomDataTypeCenter.h; sourceTree = ""; }; - 80F0DD12952ED87B30B0627F494F0E36 /* NSArray+AvoidCrash.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "NSArray+AvoidCrash.m"; path = "AvoidCrash/NSArray+AvoidCrash.m"; sourceTree = ""; }; - 80F60B3CBE5F9E587140DB5C4FFB26D9 /* alpha_dec.c */ = {isa = PBXFileReference; includeInIndex = 1; name = alpha_dec.c; path = src/dec/alpha_dec.c; sourceTree = ""; }; 80FDEC578435CB75CD9AB2F2B618434D /* TUIChatMediaSendingManager.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = TUIChatMediaSendingManager.h; sourceTree = ""; }; - 8107B3A917F377B3D51773067E1849BC /* YBIBToolViewHandler.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = YBIBToolViewHandler.h; path = YBImageBrowser/ToolView/YBIBToolViewHandler.h; sourceTree = ""; }; - 81236901A91A3903EF88042EEC4E90BF /* JXCategoryBaseView.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = JXCategoryBaseView.h; path = Sources/Base/JXCategoryBaseView.h; sourceTree = ""; }; - 812AF80FE57C92C33FF74E5D5BFBA2E6 /* GPBUnknownFieldSet.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = GPBUnknownFieldSet.h; path = objectivec/GPBUnknownFieldSet.h; sourceTree = ""; }; - 8136A38D81A5B3FC752562D97578AD4F /* mz_os.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = mz_os.h; path = SSZipArchive/minizip/mz_os.h; sourceTree = ""; }; - 819DC30C8FD3C4E5A88BEF5C08684CA5 /* TIMPush-xcframeworks.sh */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.script.sh; path = "TIMPush-xcframeworks.sh"; sourceTree = ""; }; + 8123DF9F96F2C3A468AF0A2227154768 /* UIView+WebCacheState.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "UIView+WebCacheState.h"; path = "SDWebImage/Core/UIView+WebCacheState.h"; sourceTree = ""; }; + 8133891E2F2C6C6C2FA738BA352A7800 /* UIFont+YYAdd.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "UIFont+YYAdd.h"; path = "YYCategories/UIKit/UIFont+YYAdd.h"; sourceTree = ""; }; + 8196DF90AC27B269BC046A3C0AF41F3E /* OSSExecutor.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = OSSExecutor.h; path = AliyunOSSSDK/OSSTask/OSSExecutor.h; sourceTree = ""; }; 81A32EFD62CBDD8038441F526F801A6B /* TUIChatObjectFactory.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = TUIChatObjectFactory.h; sourceTree = ""; }; - 81A91F2C2C8BD26FB9B0A47E460DEDAD /* sharpyuv_gamma.c */ = {isa = PBXFileReference; includeInIndex = 1; name = sharpyuv_gamma.c; path = sharpyuv/sharpyuv_gamma.c; sourceTree = ""; }; - 81AFFAB123228CF5B5F7A405ED8A65F3 /* LLTitleCellModel.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = LLTitleCellModel.m; path = LLDebugTool/Core/Others/CommonUI/View/TitleCell/LLTitleCellModel.m; sourceTree = ""; }; - 81B73281D5838D27D169AE5A277ABD11 /* JXCategoryTitleImageView.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = JXCategoryTitleImageView.h; path = Sources/TitleImage/JXCategoryTitleImageView.h; sourceTree = ""; }; - 81CDFF08F0FDF63F8DDF6B061EDAF8F3 /* YYCategories.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.module; path = YYCategories.modulemap; sourceTree = ""; }; - 81F2EB46903FC696F4A42DFF8C534BCC /* palette.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = palette.h; path = src/utils/palette.h; sourceTree = ""; }; - 82562587B511A509383A8D72854A5F25 /* QGVAPSafeMutableDictionary.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = QGVAPSafeMutableDictionary.m; path = iOS/QGVAPlayer/QGVAPlayer/Classes/Utils/QGVAPSafeMutableDictionary.m; sourceTree = ""; }; + 81C1129DB71786693EDAB154C89022AF /* UITableView+YYAdd.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "UITableView+YYAdd.h"; path = "YYCategories/UIKit/UITableView+YYAdd.h"; sourceTree = ""; }; + 81EF99E7A6CBA6012C60D684788F131C /* IQTitleBarButtonItem.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = IQTitleBarButtonItem.m; path = IQKeyboardManager/IQToolbar/IQTitleBarButtonItem.m; sourceTree = ""; }; + 822965F471AC39FAA8C2A81E1DAF3A5C /* alpha_dec.c */ = {isa = PBXFileReference; includeInIndex = 1; name = alpha_dec.c; path = src/dec/alpha_dec.c; sourceTree = ""; }; + 822CDEBDC9BEE20B60756CFC3222912B /* LLSubTitleTableViewCell.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = LLSubTitleTableViewCell.m; path = LLDebugTool/Core/Others/CommonUI/View/SubTitleTableViewCell/LLSubTitleTableViewCell.m; sourceTree = ""; }; + 8266B86609E6771A6370B1F8673F4827 /* QCloudCRC64.c */ = {isa = PBXFileReference; includeInIndex = 1; name = QCloudCRC64.c; path = QCloudCore/Classes/Base/QCloudCategory/QCloudCRC64.c; sourceTree = ""; }; 826C5B71E3BE23399C4911B80411F577 /* TUIFaceSegementScrollView.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = TUIFaceSegementScrollView.h; sourceTree = ""; }; - 826F6586B5F27FE3CD781A46F85A787F /* OSSURLRequestRetryHandler.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = OSSURLRequestRetryHandler.m; path = AliyunOSSSDK/OSSURLRequestRetryHandler.m; sourceTree = ""; }; - 8272A08C8D4B1EC0BEC8912EA6C20E2F /* SDImageHEICCoder.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDImageHEICCoder.m; path = SDWebImage/Core/SDImageHEICCoder.m; sourceTree = ""; }; - 827C30B04863CF6A3B899EA252B43C14 /* rescaler_msa.c */ = {isa = PBXFileReference; includeInIndex = 1; name = rescaler_msa.c; path = src/dsp/rescaler_msa.c; sourceTree = ""; }; - 82BDD4E3E3018BDACCAE12BC8AB9561F /* histogram_enc.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = histogram_enc.h; path = src/enc/histogram_enc.h; sourceTree = ""; }; + 828D6CA863C2CEC912510CCD83ECC1FB /* DataStructs.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = DataStructs.swift; path = AgoraLyricsScore/Class/Other/DataStructs.swift; sourceTree = ""; }; + 82994E7C083EEACEA413FDE326F454A0 /* IQUIScrollView+Additions.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "IQUIScrollView+Additions.h"; path = "IQKeyboardManager/Categories/IQUIScrollView+Additions.h"; sourceTree = ""; }; + 82A74F33715923995340A1B73FB38DC4 /* mz_crypt.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = mz_crypt.h; path = SSZipArchive/minizip/mz_crypt.h; sourceTree = ""; }; + 82D0B465906E5E076DB9061E7138AB4D /* PrivacyInfo.xcprivacy */ = {isa = PBXFileReference; includeInIndex = 1; name = PrivacyInfo.xcprivacy; path = AliyunOSSSDK/PrivacyInfo.xcprivacy; sourceTree = ""; }; + 82D4AA5F4F0F239F62DF2A79FEA53CB7 /* OSSCancellationTokenRegistration.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = OSSCancellationTokenRegistration.m; path = AliyunOSSSDK/OSSTask/OSSCancellationTokenRegistration.m; sourceTree = ""; }; 82E18AE901BF4AEF62F224E784ABC4F2 /* TUIConfig.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = TUIConfig.m; sourceTree = ""; }; - 82E8B5703081A4208F68D18A58201CD8 /* MKAnnotationView+YYWebImage.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "MKAnnotationView+YYWebImage.m"; path = "YYWebImage/Categories/MKAnnotationView+YYWebImage.m"; sourceTree = ""; }; - 82FE32D6CFD69029C95673FB63B1A39D /* YYImageCache.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = YYImageCache.h; path = YYWebImage/YYImageCache.h; sourceTree = ""; }; - 832302185FF62A978FE3E99CFB7F2271 /* JXCategoryIndicatorCellModel.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = JXCategoryIndicatorCellModel.m; path = Sources/Indicator/JXCategoryIndicatorCellModel.m; sourceTree = ""; }; - 83712669C7F8FCE94AB6932D04341B35 /* AFNetworking-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "AFNetworking-umbrella.h"; sourceTree = ""; }; + 82ED1D75E12BD82491ABBEC5F5DBBD68 /* AFURLSessionManager.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = AFURLSessionManager.m; path = AFNetworking/AFURLSessionManager.m; sourceTree = ""; }; + 82EDBFCB86E34D5A2FCACD707617CD6C /* TXIMSDK_Plus_iOS_XCFramework.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = TXIMSDK_Plus_iOS_XCFramework.release.xcconfig; sourceTree = ""; }; + 8314AB8D3F9A10F8AC6C7C5C432CDD81 /* GCDTimer.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = GCDTimer.m; path = MQTTClient/MQTTClient/GCDTimer.m; sourceTree = ""; }; + 83322E3A2A4D13B2A737B5A98FF0A962 /* QCloudCore.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.module; path = QCloudCore.modulemap; sourceTree = ""; }; + 836A68AC03CDB3884B92C0C169D41B8B /* OSSV1Signer.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = OSSV1Signer.h; path = AliyunOSSSDK/Signer/OSSV1Signer.h; sourceTree = ""; }; + 836B2E76061155C2A538E98A1821622E /* AgoraReplayKitExtension.xcframework */ = {isa = PBXFileReference; includeInIndex = 1; path = AgoraReplayKitExtension.xcframework; sourceTree = ""; }; + 836D47EDA8BEB432F379BD9A9BEC2AEB /* UICollectionReusableView+RACSignalSupport.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "UICollectionReusableView+RACSignalSupport.h"; path = "ReactiveObjC/UICollectionReusableView+RACSignalSupport.h"; sourceTree = ""; }; + 838794DEBE70D2339D218F6BC2E11FEF /* GPBArray.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = GPBArray.h; path = objectivec/GPBArray.h; sourceTree = ""; }; + 839AC695CE0536D9762E4327F1EAE6BA /* MQTTCFSocketDecoder.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = MQTTCFSocketDecoder.h; path = MQTTClient/MQTTClient/MQTTCFSocketDecoder.h; sourceTree = ""; }; 83AC327FDFB768874F13D3CD20C46095 /* UIKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = UIKit.framework; path = Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS18.0.sdk/System/Library/Frameworks/UIKit.framework; sourceTree = DEVELOPER_DIR; }; - 83B44DD1C48B79BC362AEA55A429DEAD /* NSString+RACSupport.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "NSString+RACSupport.h"; path = "ReactiveObjC/NSString+RACSupport.h"; sourceTree = ""; }; - 83B805B5BBF823B4C369B80E72F3F789 /* YBIBImageData.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = YBIBImageData.h; path = YBImageBrowser/Image/YBIBImageData.h; sourceTree = ""; }; - 83C3BD260DC6D10212C1C3E60A943693 /* OSSRequest.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = OSSRequest.h; path = AliyunOSSSDK/OSSRequest.h; sourceTree = ""; }; - 83CDCFE2A451FDCD18A04FF31570AD32 /* TZAssetCell.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = TZAssetCell.m; path = TZImagePickerController/TZImagePickerController/TZAssetCell.m; sourceTree = ""; }; - 83D8B03CC07CD17385769B58E1ACAECB /* LLNavigationController.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = LLNavigationController.m; path = LLDebugTool/Core/Others/CommonUI/ViewController/NavigationController/LLNavigationController.m; sourceTree = ""; }; - 8419DDBABCDD19DBDB37ECBD7AC77EAC /* YYTextView.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = YYTextView.h; path = YYText/YYTextView.h; sourceTree = ""; }; - 84212DE296979BA80C0CD70D2556DA61 /* OSSDDLog.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = OSSDDLog.h; path = AliyunOSSSDK/OSSFileLog/OSSDDLog.h; sourceTree = ""; }; - 84395610D9405F0B2AAE3A3ADAAF3335 /* LLFunctionWindow.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = LLFunctionWindow.m; path = LLDebugTool/Core/Others/Component/Function/UserInterface/LLFunctionWindow.m; sourceTree = ""; }; - 8452DB94EF6CC76C45A5B628E1B79527 /* sharpyuv_sse2.c */ = {isa = PBXFileReference; includeInIndex = 1; name = sharpyuv_sse2.c; path = sharpyuv/sharpyuv_sse2.c; sourceTree = ""; }; - 845C507976FCD3C451D99608DEF05255 /* LLRouter.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = LLRouter.m; path = LLDebugTool/Core/Others/Router/LLRouter.m; sourceTree = ""; }; - 84784F1779ED49885BEDC482DE6E959E /* Parser.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Parser.swift; path = AgoraLyricsScore/Class/Other/Parser.swift; sourceTree = ""; }; + 83B6710C39A209D61985C1FF3B2AE5E1 /* UIScrollView+MJRefresh.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "UIScrollView+MJRefresh.m"; path = "MJRefresh/UIScrollView+MJRefresh.m"; sourceTree = ""; }; + 83CD502443784E2B833CE52EEE4C49F7 /* LLTitleHeaderView.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = LLTitleHeaderView.h; path = LLDebugTool/Core/Others/CommonUI/View/TitleCell/LLTitleHeaderView.h; sourceTree = ""; }; + 83D296A06C346620040962D0D749D156 /* OSSPutObjectTaggingRequest.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = OSSPutObjectTaggingRequest.m; path = AliyunOSSSDK/OSSPutObjectTaggingRequest.m; sourceTree = ""; }; + 83DA5EE38E68337BC3C63E0C331F230E /* MKAnnotationView+YYWebImage.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "MKAnnotationView+YYWebImage.m"; path = "YYWebImage/Categories/MKAnnotationView+YYWebImage.m"; sourceTree = ""; }; + 83DE08ABDDA697D64E148207A6EA8D8E /* ScoringMachine.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ScoringMachine.swift; path = AgoraLyricsScore/Class/Scoring/ScoringMachine/ScoringMachine.swift; sourceTree = ""; }; + 841200A96600F47505EE122C123B8061 /* NSObject+YYAdd.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "NSObject+YYAdd.m"; path = "YYCategories/Foundation/NSObject+YYAdd.m"; sourceTree = ""; }; + 844E7C9F76F7288F0F53C5F070E3822F /* AgoraLyricsScore-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "AgoraLyricsScore-prefix.pch"; sourceTree = ""; }; + 845DF1D33860C77005E69FE07DBA2291 /* YBIBImageLayout.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = YBIBImageLayout.m; path = YBImageBrowser/Image/YBIBImageLayout.m; sourceTree = ""; }; 847E02600FDAECBC9FDB61964C06D149 /* TUIImageMessageCell_Minimalist.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = TUIImageMessageCell_Minimalist.m; sourceTree = ""; }; 847F0D230F54AFB72EBED217B5A5D29B /* TUIVideoCollectionCell.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = TUIVideoCollectionCell.m; sourceTree = ""; }; - 848246EBE770CCC005AA4310A97E5DC8 /* YBIBAuxiliaryViewHandler.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = YBIBAuxiliaryViewHandler.h; path = YBImageBrowser/AuxiliaryView/YBIBAuxiliaryViewHandler.h; sourceTree = ""; }; - 84976CAC7B63B4E315DC28D5A363255F /* LLSandboxWindow.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = LLSandboxWindow.h; path = LLDebugTool/Core/Component/Sandbox/UserInterface/LLSandboxWindow.h; sourceTree = ""; }; - 8498FE3C5D61C2994C40CD9DF77DA30B /* JXCategoryTitleVerticalZoomView.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = JXCategoryTitleVerticalZoomView.h; path = Sources/VerticalZoomTitle/JXCategoryTitleVerticalZoomView.h; sourceTree = ""; }; + 848C0FBEC76DA925072947778D53BC60 /* YYWebImage.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = YYWebImage.release.xcconfig; sourceTree = ""; }; 849DEB0595FDC54CF25BCD9A3B3BF07A /* TUIFoldConversationListDataProvider_Minimalist.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = TUIFoldConversationListDataProvider_Minimalist.h; sourceTree = ""; }; - 849EF98FCEA13497C076203B672F2DBE /* QGHWDMetalView.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = QGHWDMetalView.h; path = iOS/QGVAPlayer/QGVAPlayer/Classes/Views/Metal/QGHWDMetalView.h; sourceTree = ""; }; - 84BE16B0E59D1167B51A83D28AE94134 /* SVGAAudioEntity.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SVGAAudioEntity.m; path = Source/SVGAAudioEntity.m; sourceTree = ""; }; - 84D3D1D7453390DDDBF69853A482E7F9 /* NSString+YYAdd.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "NSString+YYAdd.m"; path = "YYCategories/Foundation/NSString+YYAdd.m"; sourceTree = ""; }; - 84DBD06EFCBEE0C5494F6F52798EFD94 /* GPBExtensionInternals.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = GPBExtensionInternals.m; path = objectivec/GPBExtensionInternals.m; sourceTree = ""; }; - 84DC34A068077DFA9A3C77C06571FF24 /* LLWindowManager+Log.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "LLWindowManager+Log.h"; path = "LLDebugTool/Core/Component/Log/UserInterface/LLWindowManager+Log.h"; sourceTree = ""; }; + 84A22F912D671BD9C38E83D82CD609F5 /* SDImageLoadersManager.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDImageLoadersManager.m; path = SDWebImage/Core/SDImageLoadersManager.m; sourceTree = ""; }; 84F76A085CD6104D282D09A6AD4CA316 /* TUIOrderCellData.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = TUIOrderCellData.h; sourceTree = ""; }; - 852327A701AAD6F8A479BC74BE40E564 /* OSSGetBucketInfoResult.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = OSSGetBucketInfoResult.m; path = AliyunOSSSDK/OSSGetBucketInfoResult.m; sourceTree = ""; }; - 852AC4C1BA73FFFBEAEE96511FA5BC41 /* SVGAPlayer.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = SVGAPlayer.debug.xcconfig; sourceTree = ""; }; - 85380B7714F717D36AC2672E9BA69380 /* QGAnimatedImageDecodeConfig.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = QGAnimatedImageDecodeConfig.m; path = iOS/QGVAPlayer/QGVAPlayer/Classes/Controllers/QGAnimatedImageDecodeConfig.m; sourceTree = ""; }; - 853B2355369C0C0B87455A9D35FDE385 /* Protobuf-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "Protobuf-umbrella.h"; sourceTree = ""; }; + 84F86C82AB812ED3A00ACB3FC4D5F1E9 /* NSError+QCloudNetworking.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "NSError+QCloudNetworking.h"; path = "QCloudCore/Classes/Base/QCLOUDRestNet/Error/NSError+QCloudNetworking.h"; sourceTree = ""; }; 85401C39B0308D744C4AF607784E840B /* TUIChatService_Minimalist.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = TUIChatService_Minimalist.m; sourceTree = ""; }; - 85425BC7EFF4D34A868E3BD6BDDD6A49 /* mz_strm_zlib.c */ = {isa = PBXFileReference; includeInIndex = 1; name = mz_strm_zlib.c; path = SSZipArchive/minizip/mz_strm_zlib.c; sourceTree = ""; }; 8555CE3050DD11E22AB65208A845D9FD /* TUICameraManager.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = TUICameraManager.m; sourceTree = ""; }; + 855ED5B6EC2A2AA8B89C4DE6EE20E635 /* YYWebImage.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = YYWebImage.h; path = YYWebImage/YYWebImage.h; sourceTree = ""; }; + 8592C7A6E25AFD826CEEBF578627B491 /* UIView+LLWidgetBorder.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "UIView+LLWidgetBorder.h"; path = "LLDebugTool/Core/Component/WidgetBorder/Function/UIView+LLWidgetBorder.h"; sourceTree = ""; }; + 8599F350D9B61D88A495344D7BAE052F /* LLHierarchyPickerView.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = LLHierarchyPickerView.h; path = LLDebugTool/Core/Component/Hierarchy/UserInterface/LLHierarchyPickerView.h; sourceTree = ""; }; 859DA83E1B98F6F07DD65F33A7D801E9 /* TUIChatPopMenu.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = TUIChatPopMenu.m; sourceTree = ""; }; - 85A8479E0BA3A2F315C5D568BB30B04F /* GPBSourceContext.pbobjc.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = GPBSourceContext.pbobjc.h; path = objectivec/GPBSourceContext.pbobjc.h; sourceTree = ""; }; + 859DE6F468D292B157C8C50EFA88A833 /* QCloudUniversalAdjustablePath.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = QCloudUniversalAdjustablePath.h; path = QCloudCore/Classes/Base/PathUtilities/QCloudUniversalAdjustablePath.h; sourceTree = ""; }; + 85B390D16FED19D8AB3F01A1763BE66B /* JXPagerMainTableView.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = JXPagerMainTableView.m; path = Sources/JXPagerView/JXPagerMainTableView.m; sourceTree = ""; }; + 85CC94351C231B6632DAB441C2F35141 /* FMDatabaseQueue.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FMDatabaseQueue.h; path = src/fmdb/FMDatabaseQueue.h; sourceTree = ""; }; 85DF452A6A68913D3B9E22E2BB1E72B7 /* TUIConversationCellData.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = TUIConversationCellData.m; sourceTree = ""; }; - 85E5D828F1BF657869C6726125A67C65 /* webpi_dec.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = webpi_dec.h; path = src/dec/webpi_dec.h; sourceTree = ""; }; - 85EBF0DA7D4A4CDBA4862EF923BD0D26 /* AvoidCrash-Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "AvoidCrash-Info.plist"; sourceTree = ""; }; + 85F0B0A0670EDBDBEFF4CC199510D3DC /* RACSubscriptionScheduler.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = RACSubscriptionScheduler.h; path = ReactiveObjC/RACSubscriptionScheduler.h; sourceTree = ""; }; + 85F1E0B017257CF852C48AECF7DF6E93 /* QGVAPMetalShaderFunctionLoader.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = QGVAPMetalShaderFunctionLoader.h; path = iOS/QGVAPlayer/QGVAPlayer/Classes/Utils/QGVAPMetalShaderFunctionLoader.h; sourceTree = ""; }; + 85F9486B1EEC1FA8DC233D68E45DF135 /* NSOrderedSet+RACSequenceAdditions.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "NSOrderedSet+RACSequenceAdditions.h"; path = "ReactiveObjC/NSOrderedSet+RACSequenceAdditions.h"; sourceTree = ""; }; + 86075546D8DCB851A80563BC28DB4CDF /* MJRefreshAutoGifFooter.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = MJRefreshAutoGifFooter.m; path = MJRefresh/Custom/Footer/Auto/MJRefreshAutoGifFooter.m; sourceTree = ""; }; 860FFBC37B968C46FC5989D8D25BB440 /* TUICaptureImagePreviewController.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = TUICaptureImagePreviewController.h; sourceTree = ""; }; - 861F7E0CA3AFDD003CB8FA10549E99AE /* LLLocationProxy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = LLLocationProxy.m; path = LLDebugTool/Core/Component/Location/Function/LLLocationProxy.m; sourceTree = ""; }; - 8622A2A4D3CB35246611FF5345E8E9A0 /* UIButton+LL_Utils.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "UIButton+LL_Utils.m"; path = "LLDebugTool/Core/Others/Category/UIButton/UIButton+LL_Utils.m"; sourceTree = ""; }; - 862C89D856CA6970C67F4C1C6F6C13A9 /* NSArray+MASShorthandAdditions.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "NSArray+MASShorthandAdditions.h"; path = "Masonry/NSArray+MASShorthandAdditions.h"; sourceTree = ""; }; - 8653C49168871FE0C9AB90AAC3161298 /* QGHWDMetalShaderSourceDefine.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = QGHWDMetalShaderSourceDefine.h; path = iOS/QGVAPlayer/QGVAPlayer/Shaders/QGHWDMetalShaderSourceDefine.h; sourceTree = ""; }; - 8660ACA44F3117EC781803A4B9D15C9D /* AgoraLyricsScore-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "AgoraLyricsScore-prefix.pch"; sourceTree = ""; }; - 866B82E07C82BBB6BC96C9CA6FDE32F6 /* RACSequence.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = RACSequence.m; path = ReactiveObjC/RACSequence.m; sourceTree = ""; }; + 8621ABDAB8F588581CCF8E95882CFB98 /* YBIBLoadingView.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = YBIBLoadingView.m; path = YBImageBrowser/AuxiliaryView/YBIBLoadingView.m; sourceTree = ""; }; + 8622D12E0AC31FB3A85CD6DC41378BBB /* SDAnimatedImageRep.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDAnimatedImageRep.m; path = SDWebImage/Core/SDAnimatedImageRep.m; sourceTree = ""; }; + 86234E6F546FFFC29A15FEC592D1C2EA /* RACStream.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = RACStream.h; path = ReactiveObjC/RACStream.h; sourceTree = ""; }; + 8638D3BA370C6BB7994C82FE10994F39 /* MQTTSessionLegacy.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = MQTTSessionLegacy.h; path = MQTTClient/MQTTClient/MQTTSessionLegacy.h; sourceTree = ""; }; + 864CE51C15F42BF2126252E3EDF35226 /* QGVAPConfigManager.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = QGVAPConfigManager.m; path = iOS/QGVAPlayer/QGVAPlayer/Classes/Controllers/QGVAPConfigManager.m; sourceTree = ""; }; 86796338B78749363118B2D5651D23C6 /* TUIConversationSelectController_Minimalist.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = TUIConversationSelectController_Minimalist.h; sourceTree = ""; }; - 867F9B9CDD2215F8752E6B10A9C0834F /* LLTableViewSelectableModel.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = LLTableViewSelectableModel.m; path = LLDebugTool/Core/Others/CommonUI/Model/LLTableViewSelectableModel/LLTableViewSelectableModel.m; sourceTree = ""; }; + 868FA57F94057F8FC61B23A46C8140BE /* OSSUtil.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = OSSUtil.h; path = AliyunOSSSDK/OSSUtil.h; sourceTree = ""; }; 86A0E774E4F0A0D70B4212FA5C0F653C /* TUIMessageDataProvider+MessageDeal.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "TUIMessageDataProvider+MessageDeal.m"; sourceTree = ""; }; 86CB648AB8AA849054A90FDEE3115821 /* TUIRecordView.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = TUIRecordView.m; sourceTree = ""; }; + 86DED4C847CB1687333D82BF77D26073 /* UIControl+YYAdd.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "UIControl+YYAdd.m"; path = "YYCategories/UIKit/UIControl+YYAdd.m"; sourceTree = ""; }; 86EDC1282AC260378B15FD17080CCBCC /* TUIMotionManager.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = TUIMotionManager.m; sourceTree = ""; }; - 86EF1208C46ED894D571AD6C492DC009 /* vp8_dec.c */ = {isa = PBXFileReference; includeInIndex = 1; name = vp8_dec.c; path = src/dec/vp8_dec.c; sourceTree = ""; }; 86EF6079A5879D7E6318E373FCC98304 /* TUIMovieManager.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = TUIMovieManager.m; sourceTree = ""; }; - 86F8615F32472DED5E41F60F5A63C866 /* OSSDefine.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = OSSDefine.h; path = AliyunOSSSDK/OSSDefine.h; sourceTree = ""; }; - 8726A2F833F7BABF40CFA3ABDF825B47 /* vp8l_enc.c */ = {isa = PBXFileReference; includeInIndex = 1; name = vp8l_enc.c; path = src/enc/vp8l_enc.c; sourceTree = ""; }; + 8713EAD8F5F555520F376C1B56C94475 /* OSSReachability.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = OSSReachability.m; path = AliyunOSSSDK/OSSFileLog/OSSReachability.m; sourceTree = ""; }; + 8714EB5687EBCDAB9ED109CBA2304678 /* SDWebImageCacheSerializer.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDWebImageCacheSerializer.h; path = SDWebImage/Core/SDWebImageCacheSerializer.h; sourceTree = ""; }; + 872092720724CD156A786F236C00CAEB /* OSSModel.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = OSSModel.m; path = AliyunOSSSDK/OSSModel.m; sourceTree = ""; }; 872FEC5AA064DBA3B149B71919F8EBE8 /* TUIConversationObjectFactory.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = TUIConversationObjectFactory.m; sourceTree = ""; }; 8732D2115A680F216A765369AA41277E /* TUIMessageReadViewController_Minimalist.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = TUIMessageReadViewController_Minimalist.m; sourceTree = ""; }; - 873998215043841815B0429E6732E482 /* JXPagerMainTableView.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = JXPagerMainTableView.m; path = Sources/JXPagerView/JXPagerMainTableView.m; sourceTree = ""; }; 873A1564696AA6BCE99CA1ED7D5A8BE7 /* TUIMessageItem.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = TUIMessageItem.m; sourceTree = ""; }; - 87441D298151CFC225E14084247F8C9B /* MJRefresh-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "MJRefresh-umbrella.h"; sourceTree = ""; }; - 8747BCAED6A317AE8A6FF8F1BDF2AD28 /* YYLabel.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = YYLabel.m; path = YYText/YYLabel.m; sourceTree = ""; }; - 875088AA24FC04E68E1BA359484AA755 /* GPBUnknownFields.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = GPBUnknownFields.h; path = objectivec/GPBUnknownFields.h; sourceTree = ""; }; + 873C77F893A4816E5084555066F10F74 /* NSNotificationCenter+RACSupport.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "NSNotificationCenter+RACSupport.h"; path = "ReactiveObjC/NSNotificationCenter+RACSupport.h"; sourceTree = ""; }; + 8742A82B8F18D5E7870DAF2CC7C4F5A7 /* TZPhotoPickerController.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = TZPhotoPickerController.m; path = TZImagePickerController/TZImagePickerController/TZPhotoPickerController.m; sourceTree = ""; }; + 874E32992FF188A8A335A064CF0F52CA /* QCloudPutObjectRequest+Custom.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "QCloudPutObjectRequest+Custom.h"; path = "QCloudCOSXML/Classes/Transfer/request/QCloudPutObjectRequest+Custom.h"; sourceTree = ""; }; + 8767B263652CFDCD16E40D68E0A5E658 /* LLNetworkFilterView.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = LLNetworkFilterView.m; path = LLDebugTool/Core/Component/Network/UserInterface/LLNetworkFilterView.m; sourceTree = ""; }; + 876F9A889959089D5C1BC6EB86A4BACA /* FMDB-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "FMDB-umbrella.h"; sourceTree = ""; }; 8782AF5694F35F787D0F54B8195D3F31 /* TencentCloudHuiyanSDKFace_framework.podspec */ = {isa = PBXFileReference; explicitFileType = text.script.ruby; includeInIndex = 1; indentWidth = 2; lastKnownFileType = text; path = TencentCloudHuiyanSDKFace_framework.podspec; sourceTree = ""; tabWidth = 2; xcLanguageSpecificationIdentifier = xcode.lang.ruby; }; - 87927ADCBAAA58C3A270D01961886164 /* lossless_enc_mips32.c */ = {isa = PBXFileReference; includeInIndex = 1; name = lossless_enc_mips32.c; path = src/dsp/lossless_enc_mips32.c; sourceTree = ""; }; - 879DDC7E616BA6935102ADD78F720882 /* AFSecurityPolicy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = AFSecurityPolicy.m; path = AFNetworking/AFSecurityPolicy.m; sourceTree = ""; }; - 87CDE0E9BA52DC5154A4E65DD1A2A32E /* video_enc.xcframework */ = {isa = PBXFileReference; includeInIndex = 1; path = video_enc.xcframework; sourceTree = ""; }; - 87F007D7254F77303B8C3A176B722D97 /* YYText.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = YYText.debug.xcconfig; sourceTree = ""; }; + 878AE7C6CDB1A444CD8092D4A297E391 /* enc_mips_dsp_r2.c */ = {isa = PBXFileReference; includeInIndex = 1; name = enc_mips_dsp_r2.c; path = src/dsp/enc_mips_dsp_r2.c; sourceTree = ""; }; + 878B6D72536A69FF375964403CD032BE /* QCloudRequestData+COSXML.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "QCloudRequestData+COSXML.h"; path = "QCloudCOSXML/Classes/Base/QCloudRequestData+COSXML.h"; sourceTree = ""; }; + 87FE1F20266F2FF2C15BBADA95BA93F9 /* QCloudSimplePing.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = QCloudSimplePing.m; path = QCloudCore/Classes/Base/QCLOUDRestNet/DNSCache/QCloudSimplePing.m; sourceTree = ""; }; + 87FE95E5016AE4506C40838D4BB06BEC /* LLHierarchyPickerView.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = LLHierarchyPickerView.m; path = LLDebugTool/Core/Component/Hierarchy/UserInterface/LLHierarchyPickerView.m; sourceTree = ""; }; 8806024254F3EB0BE3C8A4EE1447B145 /* Pods-QXLive */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; name = "Pods-QXLive"; path = Pods_QXLive.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - 880DCA1E2F177241D82DC8ECDE4CAF3F /* AFURLSessionManager.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = AFURLSessionManager.h; path = AFNetworking/AFURLSessionManager.h; sourceTree = ""; }; - 8818B1BDA478BB0B28781263C3DA1847 /* picture_csp_enc.c */ = {isa = PBXFileReference; includeInIndex = 1; name = picture_csp_enc.c; path = src/enc/picture_csp_enc.c; sourceTree = ""; }; - 88301128E8395B55483A176C15014582 /* OSSClient.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = OSSClient.h; path = AliyunOSSSDK/OSSClient.h; sourceTree = ""; }; - 890063AFA66A21ED497BBEF97B4B406C /* PrivacyInfo.xcprivacy */ = {isa = PBXFileReference; includeInIndex = 1; name = PrivacyInfo.xcprivacy; path = MJRefresh/PrivacyInfo.xcprivacy; sourceTree = ""; }; - 89142EC6B523D91585CFF089AC2D5760 /* LLLogViewController.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = LLLogViewController.h; path = LLDebugTool/Core/Component/Log/UserInterface/LLLogViewController.h; sourceTree = ""; }; - 8914FC0B67E512714BF00F1B30A11D84 /* LLEntryStyleModel.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = LLEntryStyleModel.h; path = LLDebugTool/Core/Others/CommonUI/Window/EntryWindow/LLEntryStyleModel.h; sourceTree = ""; }; - 892593E950280D9DF8D65B3C8B4F7A75 /* SDImageCache.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDImageCache.m; path = SDWebImage/Core/SDImageCache.m; sourceTree = ""; }; + 8815A62C357FCED40FBFA5CC5AD486FD /* JXCategoryIndicatorImageView.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = JXCategoryIndicatorImageView.m; path = Sources/Indicator/IndicatorViews/JXCategoryIndicatorImageView.m; sourceTree = ""; }; + 881A35A4B8A8F46F01049907FE90A46E /* SDWebImageCacheSerializer.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDWebImageCacheSerializer.m; path = SDWebImage/Core/SDWebImageCacheSerializer.m; sourceTree = ""; }; + 8824B0FE89C77E60D2DA94FAAA803D85 /* LLDebugTool.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = LLDebugTool.m; path = LLDebugTool/DebugTool/LLDebugTool.m; sourceTree = ""; }; + 8825C555D465064A00CC5398DD1AAA25 /* QCloudHTTPSessionManager.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = QCloudHTTPSessionManager.h; path = QCloudCore/Classes/Base/QCLOUDRestNet/SessionSupport/QCloudHTTPSessionManager.h; sourceTree = ""; }; + 88352B406BD5BA371383E95CF2AA778C /* RACSignal.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = RACSignal.h; path = ReactiveObjC/RACSignal.h; sourceTree = ""; }; + 8884A54CC62EA704007A7C723CFD1665 /* SSZipArchive.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SSZipArchive.m; path = SSZipArchive/SSZipArchive.m; sourceTree = ""; }; + 8894C7A542AFDB70DE5A9A8BB69ED8EC /* SDAnimatedImageView+WebCache.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "SDAnimatedImageView+WebCache.h"; path = "SDWebImage/Core/SDAnimatedImageView+WebCache.h"; sourceTree = ""; }; + 88A2ED2A1032291042DC260644022682 /* QGMP4HWDFileInfo.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = QGMP4HWDFileInfo.h; path = iOS/QGVAPlayer/QGVAPlayer/Classes/Models/QGMP4HWDFileInfo.h; sourceTree = ""; }; + 88DCBC3DE4800B8BDA0B6A9F2157250D /* LLRouter+Location.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "LLRouter+Location.h"; path = "LLDebugTool/Core/Others/Router/LLRouter+Location.h"; sourceTree = ""; }; + 88E06D778F2FCCEB9FE5416F7D4CF216 /* LLNetworkModel.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = LLNetworkModel.h; path = LLDebugTool/Core/Component/Network/Function/LLNetworkModel.h; sourceTree = ""; }; + 891768C36B9368BDC22D663758D43B1A /* QCloudCOSXMLService+Quality.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "QCloudCOSXMLService+Quality.m"; path = "QCloudCOSXML/Classes/Base/QCloudCOSXMLService+Quality.m"; sourceTree = ""; }; + 89227E5AC00A91AE71BB799F2AA978DF /* UIView+WebCacheOperation.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "UIView+WebCacheOperation.h"; path = "SDWebImage/Core/UIView+WebCacheOperation.h"; sourceTree = ""; }; + 8926303B207455F38713717E1F6C7EAB /* RACDynamicSignal.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = RACDynamicSignal.m; path = ReactiveObjC/RACDynamicSignal.m; sourceTree = ""; }; 895342357D7BE55B10118F22F3F4988D /* TUIConfig_Classic.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = TUIConfig_Classic.m; sourceTree = ""; }; - 8969FA50AAC307317D3F05778293401D /* YYImage-Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "YYImage-Info.plist"; sourceTree = ""; }; - 89786CFB0B3C5AF09F0063427794DCFF /* LLLeftTitleCell.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = LLLeftTitleCell.h; path = LLDebugTool/Core/Others/CommonUI/View/TitleCell/LLLeftTitleCell.h; sourceTree = ""; }; - 899502FBB6B6D644524A81FACD02E803 /* RACTestScheduler.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = RACTestScheduler.h; path = ReactiveObjC/RACTestScheduler.h; sourceTree = ""; }; - 899D39DBF0662F0703181A527D2560EF /* MKMapView+LL_Location.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "MKMapView+LL_Location.h"; path = "LLDebugTool/Core/Component/Location/Function/MKMapView/MKMapView+LL_Location.h"; sourceTree = ""; }; - 899F1FD672DE4DDA4CF8839564486D0F /* GPBDictionary_PackagePrivate.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = GPBDictionary_PackagePrivate.h; path = objectivec/GPBDictionary_PackagePrivate.h; sourceTree = ""; }; - 899FE2DF1ECBAD93868B2D343027EDB0 /* JXPagingView.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = JXPagingView.release.xcconfig; sourceTree = ""; }; - 89B621556D15D29CEAB65CF38A759652 /* ResourceBundle-AgoraLyricsScoreBundle-AgoraLyricsScore-Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "ResourceBundle-AgoraLyricsScoreBundle-AgoraLyricsScore-Info.plist"; sourceTree = ""; }; - 89B7EF8032FA82FC0AA8CBBD48C2934F /* OSSXMLDictionary.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = OSSXMLDictionary.m; path = AliyunOSSSDK/OSSXMLDictionary.m; sourceTree = ""; }; - 89B8C160C9B8FB244FD67C498B0F433D /* LLDebugTool-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "LLDebugTool-dummy.m"; sourceTree = ""; }; + 8972D87C24A6C41D7E422C17EA620436 /* YYModel.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = YYModel.debug.xcconfig; sourceTree = ""; }; + 89795919B1994307C83B553A8DCC073A /* QCloudHTTPRetryHanlder.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = QCloudHTTPRetryHanlder.h; path = QCloudCore/Classes/Base/QCLOUDRestNet/Retry/QCloudHTTPRetryHanlder.h; sourceTree = ""; }; + 89799A51AC5B8D27444B63A0C708C748 /* LLNetworkModel.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = LLNetworkModel.m; path = LLDebugTool/Core/Component/Network/Function/LLNetworkModel.m; sourceTree = ""; }; + 8987F2680025821384582D94FD0210C3 /* OSSServiceSignature.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = OSSServiceSignature.h; path = AliyunOSSSDK/Signer/OSSServiceSignature.h; sourceTree = ""; }; + 898E82C73F718565E9F537B08652C221 /* RACReturnSignal.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = RACReturnSignal.m; path = ReactiveObjC/RACReturnSignal.m; sourceTree = ""; }; + 8994BC48961600CEB917CFE08DF260F6 /* QCloudCustomLoggerOutput.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = QCloudCustomLoggerOutput.m; path = QCloudCore/Classes/Base/Logger/QCloudCustomLoggerOutput.m; sourceTree = ""; }; + 89A330FE3DA0F43B36B7988FB367518D /* YBIBDefaultWebImageMediator.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = YBIBDefaultWebImageMediator.h; path = YBImageBrowser/WebImageMediator/YBIBDefaultWebImageMediator.h; sourceTree = ""; }; + 89B334B55D17CF93763C51CB3EA0034D /* BRTextModel.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = BRTextModel.m; path = BRPickerView/TextPicker/BRTextModel.m; sourceTree = ""; }; + 89CD89D90377A4027ED6E9DA5232715C /* UIColor+LL_Utils.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "UIColor+LL_Utils.h"; path = "LLDebugTool/Core/Others/Category/UIColor/UIColor+LL_Utils.h"; sourceTree = ""; }; 89D7379232813932A27501B7ABDE4743 /* TUIImageReplyQuoteView.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = TUIImageReplyQuoteView.h; sourceTree = ""; }; + 89D952264408F11D7B3386FF4D7C68B1 /* LLLogWindow.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = LLLogWindow.h; path = LLDebugTool/Core/Component/Log/UserInterface/LLLogWindow.h; sourceTree = ""; }; + 89DBFBD73EA2E42ACCC0C09C32089424 /* RACSignalProvider.d */ = {isa = PBXFileReference; includeInIndex = 1; name = RACSignalProvider.d; path = ReactiveObjC/RACSignalProvider.d; sourceTree = ""; }; + 89F00C01EAA910DD95D102446456FC76 /* YYCache.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = YYCache.m; path = YYCache/YYCache.m; sourceTree = ""; }; 89FAE2939EEAB7D3DDEE6DA7B3614A3E /* TUIFoldListViewController.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = TUIFoldListViewController.h; sourceTree = ""; }; + 8A0A2D55C1414A8E81DC33C523BA9110 /* OSSPutSymlinkRequest.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = OSSPutSymlinkRequest.m; path = AliyunOSSSDK/OSSPutSymlinkRequest.m; sourceTree = ""; }; + 8A13FEA60D90AB2D3F2F63E56062B2D0 /* LLFilterDatePickerView.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = LLFilterDatePickerView.m; path = LLDebugTool/Core/Others/CommonUI/View/FilterView/LLFilterDatePickerView.m; sourceTree = ""; }; + 8A1C307E8FEFBA82972B9B07D9B7046E /* RACErrorSignal.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = RACErrorSignal.h; path = ReactiveObjC/RACErrorSignal.h; sourceTree = ""; }; 8A1CC89CE5C03DFB6D9D0EE67D4DEF75 /* Pods-QXLiveDev-acknowledgements.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "Pods-QXLiveDev-acknowledgements.plist"; sourceTree = ""; }; - 8A1D8ADFC778F8EED6176108D81AB894 /* MKAnnotationView+YYWebImage.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "MKAnnotationView+YYWebImage.h"; path = "YYWebImage/Categories/MKAnnotationView+YYWebImage.h"; sourceTree = ""; }; - 8A44DCEF52F0CEFB314428B6CA51D445 /* MQTTSSLSecurityPolicy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = MQTTSSLSecurityPolicy.m; path = MQTTClient/MQTTClient/MQTTSSLSecurityPolicy.m; sourceTree = ""; }; - 8A55DFE8F2E73912C7ECEEE2F781BCD5 /* LLCrashComponent.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = LLCrashComponent.h; path = LLDebugTool/Core/Component/Crash/LLCrashComponent.h; sourceTree = ""; }; - 8A65FEC83A5F914F1D1506686969354D /* random_utils.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = random_utils.h; path = src/utils/random_utils.h; sourceTree = ""; }; + 8A24190DA80C03A61877016F3EECE467 /* IQBarButtonItem.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = IQBarButtonItem.h; path = IQKeyboardManager/IQToolbar/IQBarButtonItem.h; sourceTree = ""; }; + 8A2E54379802BDF73B1501EBF3CBE028 /* libwebp-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "libwebp-umbrella.h"; sourceTree = ""; }; + 8A31C5ACB803D9BB5674006841EEF304 /* UIButton+AFNetworking.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "UIButton+AFNetworking.h"; path = "UIKit+AFNetworking/UIButton+AFNetworking.h"; sourceTree = ""; }; 8A6F5446EC500086A4E04F962CED9EE9 /* TUIInputBar.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = TUIInputBar.h; sourceTree = ""; }; - 8A7A6DBC0CC7A832BF95221C74CD021E /* UIBezierPath+YYAdd.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "UIBezierPath+YYAdd.m"; path = "YYCategories/UIKit/UIBezierPath+YYAdd.m"; sourceTree = ""; }; - 8A8FFD7C2E47DF1F6BB575A90A807915 /* filters_sse2.c */ = {isa = PBXFileReference; includeInIndex = 1; name = filters_sse2.c; path = src/dsp/filters_sse2.c; sourceTree = ""; }; - 8B00C84D5AA28FD815A3FACEC1940288 /* MJRefreshBackNormalFooter.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = MJRefreshBackNormalFooter.h; path = MJRefresh/Custom/Footer/Back/MJRefreshBackNormalFooter.h; sourceTree = ""; }; - 8B0560BC7DAF461FE7A5358BF9C951D9 /* SDWebImage.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDWebImage.h; path = WebImage/SDWebImage.h; sourceTree = ""; }; - 8B0FD18816925B0577902324CB9DFBBC /* Extensions.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Extensions.swift; path = AgoraLyricsScore/Class/Other/Extensions.swift; sourceTree = ""; }; - 8B186DEE675FD72C25A2CEA6B32DDF29 /* QGAnimatedImageDecodeThreadPool.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = QGAnimatedImageDecodeThreadPool.h; path = iOS/QGVAPlayer/QGVAPlayer/Classes/Controllers/QGAnimatedImageDecodeThreadPool.h; sourceTree = ""; }; - 8B3555E375576D0BDB845B336C7242AD /* upsampling_sse2.c */ = {isa = PBXFileReference; includeInIndex = 1; name = upsampling_sse2.c; path = src/dsp/upsampling_sse2.c; sourceTree = ""; }; - 8B49A684F6CEE7B4E41A6721D70990AA /* UIView+LLWidgetBorder.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "UIView+LLWidgetBorder.m"; path = "LLDebugTool/Core/Component/WidgetBorder/Function/UIView+LLWidgetBorder.m"; sourceTree = ""; }; - 8B621079F3499A3CC8F694ACB5CD1472 /* TZPhotoPickerController.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = TZPhotoPickerController.h; path = TZImagePickerController/TZImagePickerController/TZPhotoPickerController.h; sourceTree = ""; }; + 8A87A1F94C3A4E6F191EA25DAF3D2A5F /* vp8li_enc.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = vp8li_enc.h; path = src/enc/vp8li_enc.h; sourceTree = ""; }; + 8A94570B593AB24C01653192CA3FB3D5 /* JXCategoryIndicatorComponentView.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = JXCategoryIndicatorComponentView.m; path = Sources/Indicator/IndicatorViews/JXCategoryIndicatorComponentView.m; sourceTree = ""; }; + 8AD3CCB72F8AB9C0CF20BFCC7959C835 /* format_constants.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = format_constants.h; path = src/webp/format_constants.h; sourceTree = ""; }; + 8B073F94C3CA83EAB308C132CDAB89E5 /* Model.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Model.swift; path = AgoraLyricsScore/Class/Model.swift; sourceTree = ""; }; + 8B0AE30712F5FBA31C3678C0A195DBF5 /* UIScrollView+YYAdd.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "UIScrollView+YYAdd.m"; path = "YYCategories/UIKit/UIScrollView+YYAdd.m"; sourceTree = ""; }; + 8B1CD231645C46DF63531F35F10D53BF /* MASUtilities.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = MASUtilities.h; path = Masonry/MASUtilities.h; sourceTree = ""; }; + 8B241A6BBA3261241FF305E7C1B4D351 /* YYTextTransaction.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = YYTextTransaction.h; path = YYText/Utility/YYTextTransaction.h; sourceTree = ""; }; + 8B4BC2892DA2ED1B2A7AA0B143C483EA /* UIView+LLWidgetBorder.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "UIView+LLWidgetBorder.m"; path = "LLDebugTool/Core/Component/WidgetBorder/Function/UIView+LLWidgetBorder.m"; sourceTree = ""; }; + 8B5F8B9B8807D978B0FF32BEACD47182 /* QCloudPutObjectRequest+CustomBuild.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "QCloudPutObjectRequest+CustomBuild.h"; path = "QCloudCOSXML/Classes/Transfer/request/QCloudPutObjectRequest+CustomBuild.h"; sourceTree = ""; }; + 8B6426A1A9ACD43A67415CDBD025165D /* BRTextModel.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = BRTextModel.h; path = BRPickerView/TextPicker/BRTextModel.h; sourceTree = ""; }; 8B6CF5C20C32EE9F7F0862FF892524DE /* SDCycleScrollView */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; name = SDCycleScrollView; path = SDCycleScrollView.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - 8B6F65CFB2AA3AA19676C6EC059CC8C8 /* SDImageCodersManager.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDImageCodersManager.h; path = SDWebImage/Core/SDImageCodersManager.h; sourceTree = ""; }; - 8B87EE478A2CDC2B5235E40FD354D5E3 /* MQTTTransport.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = MQTTTransport.h; path = MQTTClient/MQTTClient/MQTTTransport.h; sourceTree = ""; }; + 8B8F9D4DF79C6BECDCA1C9D14D27DFE5 /* YBIBDataProtocol.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = YBIBDataProtocol.h; path = YBImageBrowser/Protocol/YBIBDataProtocol.h; sourceTree = ""; }; 8B8FAB0D627B17EDE1366984278705D9 /* MBProgressHUD */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; name = MBProgressHUD; path = MBProgressHUD.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - 8BAB88729652F3EEB258051F3D9AD7C1 /* AvoidCrash-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "AvoidCrash-umbrella.h"; sourceTree = ""; }; - 8BC4027DC6000B80FC4E4D1B93B66506 /* LLInternalMacros.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = LLInternalMacros.h; path = LLDebugTool/Core/Others/Macros/LLInternalMacros.h; sourceTree = ""; }; - 8BE32E652E896D8069C45912609E8D41 /* LLFilterDatePickerView.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = LLFilterDatePickerView.m; path = LLDebugTool/Core/Others/CommonUI/View/FilterView/LLFilterDatePickerView.m; sourceTree = ""; }; - 8C0739797D471F6BB6CFD302504B6DE8 /* LLWindowManager+Html.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "LLWindowManager+Html.h"; path = "LLDebugTool/Core/Component/Html/UserInterface/LLWindowManager+Html.h"; sourceTree = ""; }; + 8B8FB28A9D30ECA09F09C36506DA8E06 /* PrivacyInfo.xcprivacy */ = {isa = PBXFileReference; includeInIndex = 1; name = PrivacyInfo.xcprivacy; path = Sources/PrivacyInfo.xcprivacy; sourceTree = ""; }; + 8BA0D408D35A7F95A467007CD3693595 /* GPBCodedInputStream.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = GPBCodedInputStream.m; path = objectivec/GPBCodedInputStream.m; sourceTree = ""; }; + 8BA2460BEC774C2B520E7E4AA6E31D4F /* dec_mips32.c */ = {isa = PBXFileReference; includeInIndex = 1; name = dec_mips32.c; path = src/dsp/dec_mips32.c; sourceTree = ""; }; + 8BA2DD4C9C01EE157AD9EEC4D0094970 /* NSArray+AvoidCrash.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "NSArray+AvoidCrash.h"; path = "AvoidCrash/NSArray+AvoidCrash.h"; sourceTree = ""; }; + 8BC0FF9EE0A770F4B320B20B34F9A137 /* LLScreenshotImageView.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = LLScreenshotImageView.m; path = LLDebugTool/Core/Component/Screenshot/UserInterface/LLScreenshotImageView.m; sourceTree = ""; }; + 8C1323B30EB572CD81E268BAA03C779B /* GPBType.pbobjc.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = GPBType.pbobjc.m; path = objectivec/GPBType.pbobjc.m; sourceTree = ""; }; 8C32E95A497E8AB16BA4B503703866D7 /* TUIChat.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = TUIChat.release.xcconfig; sourceTree = ""; }; 8C3F1A0419AAD8065736DC7968102C54 /* TIMPush-TIMPush_Privacy */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; name = "TIMPush-TIMPush_Privacy"; path = TIMPush_Privacy.bundle; sourceTree = BUILT_PRODUCTS_DIR; }; - 8C473D3FC6BBA942718C67FBF8311A4E /* FMDB.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = FMDB.debug.xcconfig; sourceTree = ""; }; 8C47DEA2F80C17C505D5AAC5E478F6B5 /* TUIVoiceMessageCell.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = TUIVoiceMessageCell.h; sourceTree = ""; }; - 8C55F3AB4780A7E3E86F8F8A407A5653 /* SVGAVideoSpriteFrameEntity.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SVGAVideoSpriteFrameEntity.m; path = Source/SVGAVideoSpriteFrameEntity.m; sourceTree = ""; }; + 8C52E08C63B91E6793D1ABF146E1FDF7 /* LLScreenshotBaseOperation.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = LLScreenshotBaseOperation.h; path = LLDebugTool/Core/Component/Screenshot/UserInterface/LLScreenshotBaseOperation.h; sourceTree = ""; }; + 8C557D2F6361E8295AAD89EDEE2AACB4 /* BRPickerStyle.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = BRPickerStyle.m; path = BRPickerView/Core/BRPickerStyle.m; sourceTree = ""; }; 8C575D326DDB2A7FB218A55FC5B74E37 /* TUIInputController_Minimalist.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = TUIInputController_Minimalist.h; sourceTree = ""; }; - 8C5AA69C7D2BE359935D0B5CC88996BA /* SVGAPlayer-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "SVGAPlayer-dummy.m"; sourceTree = ""; }; + 8C6DE3267E526E282214774C6134F2C6 /* JXCategoryListContainerRTLCell.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = JXCategoryListContainerRTLCell.h; path = Sources/Common/JXCategoryListContainerRTLCell.h; sourceTree = ""; }; 8C7BEF24C1C8967E18F0BE66B0FE3D0F /* TUIWeakProxy.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = TUIWeakProxy.h; sourceTree = ""; }; - 8C9A54B670C67220C746FF0491A0690B /* GPBApi.pbobjc.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = GPBApi.pbobjc.m; path = objectivec/GPBApi.pbobjc.m; sourceTree = ""; }; - 8CAFA93C3EE234EE57B21D5EBABDDEE9 /* NSString+RACSupport.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "NSString+RACSupport.m"; path = "ReactiveObjC/NSString+RACSupport.m"; sourceTree = ""; }; - 8CB783AC0E6DB2074907F3CB9BA56574 /* QGVAPWrapView.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = QGVAPWrapView.m; path = iOS/QGVAPlayer/QGVAPlayer/Classes/QGVAPWrapView.m; sourceTree = ""; }; - 8CD63CAB748523DC6A63AFB6098E79AE /* UIColor+VAPUtil.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "UIColor+VAPUtil.m"; path = "iOS/QGVAPlayer/QGVAPlayer/Classes/Utils/Categorys/UIColor+VAPUtil.m"; sourceTree = ""; }; - 8CDA437F713F4845D3DE652540BB0EB9 /* YYTextRunDelegate.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = YYTextRunDelegate.h; path = YYText/String/YYTextRunDelegate.h; sourceTree = ""; }; - 8CDBCCA12A44826584E068F9D41B2142 /* JXCategoryIndicatorBackgroundView.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = JXCategoryIndicatorBackgroundView.m; path = Sources/Indicator/IndicatorViews/JXCategoryIndicatorBackgroundView.m; sourceTree = ""; }; + 8C93EEA40FE0DA8CB90A713BA52C61B2 /* sharpyuv.c */ = {isa = PBXFileReference; includeInIndex = 1; name = sharpyuv.c; path = sharpyuv/sharpyuv.c; sourceTree = ""; }; + 8CD2F32CCB6620DC2E4DA0B0CFD85C26 /* IQTitleBarButtonItem.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = IQTitleBarButtonItem.h; path = IQKeyboardManager/IQToolbar/IQTitleBarButtonItem.h; sourceTree = ""; }; + 8CE1912E0C18C5CD4EFB419D62667262 /* SDImageCache.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDImageCache.h; path = SDWebImage/Core/SDImageCache.h; sourceTree = ""; }; + 8CE9693C7EE0BA4DC0D167FC5A8BE327 /* LLSandboxCell.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = LLSandboxCell.m; path = LLDebugTool/Core/Component/Sandbox/UserInterface/LLSandboxCell.m; sourceTree = ""; }; 8CF1DC6D0369B14BA40B52F5DA888AB5 /* TUIVideoReplyQuoteView_Minimalist.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = TUIVideoReplyQuoteView_Minimalist.h; sourceTree = ""; }; - 8CFA5283175C82344C3D2A141931554A /* GPBMessage.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = GPBMessage.m; path = objectivec/GPBMessage.m; sourceTree = ""; }; - 8D34B22795A7B36F62CC8AC203968F25 /* JXPagingView.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.module; path = JXPagingView.modulemap; sourceTree = ""; }; + 8D25EDCC9DB928F40CE0A38D790A2695 /* NSData+RACSupport.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "NSData+RACSupport.m"; path = "ReactiveObjC/NSData+RACSupport.m"; sourceTree = ""; }; + 8D3CC53B87F8F2D4554CD8FD1FDD9428 /* RACGroupedSignal.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = RACGroupedSignal.h; path = ReactiveObjC/RACGroupedSignal.h; sourceTree = ""; }; 8D3D87C5F465FC0AB4618BA7FD7BC9BA /* TUIVideoCollectionCell_Minimalist.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = TUIVideoCollectionCell_Minimalist.m; sourceTree = ""; }; 8D4557A35A355F78DD9FFD8EAC379905 /* QGVAPlayer */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; name = QGVAPlayer; path = QGVAPlayer.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - 8D63218945CEF3121D4AE8FCC7623D69 /* LLDetailTitleCellView.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = LLDetailTitleCellView.h; path = LLDebugTool/Core/Others/CommonUI/View/CellView/LLDetailTitleCellView.h; sourceTree = ""; }; - 8D765DB25B9D7DBCE9FC93E5DDC1A929 /* LLDebugToolMacros.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = LLDebugToolMacros.h; path = LLDebugTool/DebugTool/LLDebugToolMacros.h; sourceTree = ""; }; 8D80C05E653BCEE0BC386FDC6D64C15F /* TUIVoiceReplyQuoteView_Minimalist.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = TUIVoiceReplyQuoteView_Minimalist.m; sourceTree = ""; }; + 8D87DA6B70C6FFFC41C35A0E4A2C1486 /* YYImage-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "YYImage-prefix.pch"; sourceTree = ""; }; 8D934C7FCFA041C07A6F54B84AFF29F2 /* TUIMenuCell.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = TUIMenuCell.m; sourceTree = ""; }; - 8DD2401B49B91450CE48170A14EEB9D0 /* Events.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Events.swift; path = AgoraLyricsScore/Class/Events.swift; sourceTree = ""; }; - 8DE522F509CDE89640D03DA4E47811DF /* cost.c */ = {isa = PBXFileReference; includeInIndex = 1; name = cost.c; path = src/dsp/cost.c; sourceTree = ""; }; - 8E14B722699442611DCAE34C30CB4486 /* sharpyuv_neon.c */ = {isa = PBXFileReference; includeInIndex = 1; name = sharpyuv_neon.c; path = sharpyuv/sharpyuv_neon.c; sourceTree = ""; }; + 8E039A8E9F100D07647F4967C09F2910 /* mz_strm_wzaes.c */ = {isa = PBXFileReference; includeInIndex = 1; name = mz_strm_wzaes.c; path = SSZipArchive/minizip/mz_strm_wzaes.c; sourceTree = ""; }; + 8E181961FCB60B6D14994C2890037357 /* SDWebImageDownloaderConfig.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDWebImageDownloaderConfig.m; path = SDWebImage/Core/SDWebImageDownloaderConfig.m; sourceTree = ""; }; 8E1A15F98848EBCBE15138BA0D390465 /* TUIInputController_Minimalist.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = TUIInputController_Minimalist.m; sourceTree = ""; }; 8E1D5C0FCA0D872C3F21E87F25420681 /* TZImagePickerController */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; name = TZImagePickerController; path = TZImagePickerController.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - 8E2D13DEE04802DDF97C031B055D5CD4 /* cpu.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = cpu.h; path = src/dsp/cpu.h; sourceTree = ""; }; - 8E7A2DD5D01536CEF9A241CDE85119AA /* TZProgressView.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = TZProgressView.m; path = TZImagePickerController/TZImagePickerController/TZProgressView.m; sourceTree = ""; }; - 8EC299F270811F3DB74DD20C70965FDA /* RACSubscriber+Private.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "RACSubscriber+Private.h"; path = "ReactiveObjC/RACSubscriber+Private.h"; sourceTree = ""; }; - 8F03FC5865B06A0A4FCEB0376B13483D /* OSSHttpdns.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = OSSHttpdns.m; path = AliyunOSSSDK/OSSHttpdns.m; sourceTree = ""; }; - 8F0885D551896D4DBE9DA887B6221629 /* GPBProtocolBuffers.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = GPBProtocolBuffers.h; path = objectivec/GPBProtocolBuffers.h; sourceTree = ""; }; + 8E42297E0B75C875D6022D94AE3D2CB9 /* LLTitleHeaderView.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = LLTitleHeaderView.m; path = LLDebugTool/Core/Others/CommonUI/View/TitleCell/LLTitleHeaderView.m; sourceTree = ""; }; + 8E4CE67C9A59C081F15F846C5A734745 /* LLWindowManager+Log.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "LLWindowManager+Log.m"; path = "LLDebugTool/Core/Component/Log/UserInterface/LLWindowManager+Log.m"; sourceTree = ""; }; + 8E587B44A2FE47CDECE41B5B3B3DEEAA /* SDImageCodersManager.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDImageCodersManager.m; path = SDWebImage/Core/SDImageCodersManager.m; sourceTree = ""; }; + 8E76B5CE68CA5034BFADC21CFA3E1B97 /* Protobuf-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "Protobuf-prefix.pch"; sourceTree = ""; }; + 8E94E4E4444BC6E312965ABBB875E3EC /* UIView+MJExtension.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "UIView+MJExtension.m"; path = "MJRefresh/UIView+MJExtension.m"; sourceTree = ""; }; + 8EB95657DE06379818EEFDF02FC742BC /* SDImageCacheDefine.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDImageCacheDefine.m; path = SDWebImage/Core/SDImageCacheDefine.m; sourceTree = ""; }; + 8EDF4D4EC1EC60F6DB319427A41A087C /* NSObject+YBImageBrowser.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "NSObject+YBImageBrowser.h"; path = "YBImageBrowser/Base/NSObject+YBImageBrowser.h"; sourceTree = ""; }; + 8EFB87AFFBE3A61E5E0B068AA4508D41 /* LLScreenshotActionView.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = LLScreenshotActionView.h; path = LLDebugTool/Core/Component/Screenshot/UserInterface/LLScreenshotActionView.h; sourceTree = ""; }; 8F0D4D4EC80F62CA54EAD5119A89EF03 /* AgoraLyricsScore */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; name = AgoraLyricsScore; path = AgoraLyricsScore.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - 8F26F0561CFD77A8DE74190245D48F2D /* zip.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = zip.h; path = Zip/minizip/include/zip.h; sourceTree = ""; }; - 8F2A97ABFE1A06FA7232E8D6CF0BD13C /* OSSGetSymlinkRequest.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = OSSGetSymlinkRequest.h; path = AliyunOSSSDK/OSSGetSymlinkRequest.h; sourceTree = ""; }; - 8F2EF24CADB69C8A3AEA7A8FE89F95E8 /* IQUIView+Hierarchy.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "IQUIView+Hierarchy.h"; path = "IQKeyboardManager/Categories/IQUIView+Hierarchy.h"; sourceTree = ""; }; - 8F62C974D96C0C3FC85AB3BF849997B4 /* OSSDeleteMultipleObjectsRequest.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = OSSDeleteMultipleObjectsRequest.h; path = AliyunOSSSDK/OSSDeleteMultipleObjectsRequest.h; sourceTree = ""; }; - 8F94F25170156C8AF5B2D2AC234DFC9B /* UIView+YYAdd.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "UIView+YYAdd.m"; path = "YYCategories/UIKit/UIView+YYAdd.m"; sourceTree = ""; }; + 8F25BEEE81DF1D1A655C0A750C81F444 /* AgoraLyricsScore.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.module; path = AgoraLyricsScore.modulemap; sourceTree = ""; }; + 8F35545C13BDCF4A615CCAAB5E07B891 /* RACSubscriber.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = RACSubscriber.h; path = ReactiveObjC/RACSubscriber.h; sourceTree = ""; }; + 8F4089CEE8BD5BF8B23666F05A0B478F /* LLComponentNavigationController.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = LLComponentNavigationController.m; path = LLDebugTool/Core/Others/CommonUI/ViewController/ComponentNavigationController/LLComponentNavigationController.m; sourceTree = ""; }; + 8F44CE3F4F0E453A47C43891F081FF7C /* NSString+RACSequenceAdditions.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "NSString+RACSequenceAdditions.m"; path = "ReactiveObjC/NSString+RACSequenceAdditions.m"; sourceTree = ""; }; + 8F7928C82DAD75AC11E29EB566F480C5 /* MJRefreshConst.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = MJRefreshConst.m; path = MJRefresh/MJRefreshConst.m; sourceTree = ""; }; + 8F93B67C8D43EC657E335A6F77182973 /* LLNetworkComponent.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = LLNetworkComponent.h; path = LLDebugTool/Core/Component/Network/LLNetworkComponent.h; sourceTree = ""; }; 8FAC875D7E5664C15E339C08A8BF6809 /* TUITextView.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = TUITextView.m; sourceTree = ""; }; - 8FBF31FB026CFBC2F46DA82B834D55C1 /* FMDatabaseQueue.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FMDatabaseQueue.h; path = src/fmdb/FMDatabaseQueue.h; sourceTree = ""; }; - 90098B3496EF9217A27651C6B216D919 /* mz_crypt.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = mz_crypt.h; path = SSZipArchive/minizip/mz_crypt.h; sourceTree = ""; }; + 8FD899744B4FE45A72DB2098F9A30587 /* QCloudAppendObjectRequest.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = QCloudAppendObjectRequest.h; path = QCloudCOSXML/Classes/Transfer/request/QCloudAppendObjectRequest.h; sourceTree = ""; }; + 8FF050324764B7CC17BB9B1BE5FE6720 /* UIView+MP4HWDecode.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "UIView+MP4HWDecode.h"; path = "iOS/QGVAPlayer/QGVAPlayer/Classes/Utils/Categorys/UIView+MP4HWDecode.h"; sourceTree = ""; }; + 8FF907C8216B1C454231D7D3BAE13426 /* MJRefreshAutoGifFooter.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = MJRefreshAutoGifFooter.h; path = MJRefresh/Custom/Footer/Auto/MJRefreshAutoGifFooter.h; sourceTree = ""; }; + 90014943D27A4414D6A92F636C655431 /* UIControl+RACSignalSupportPrivate.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "UIControl+RACSignalSupportPrivate.h"; path = "ReactiveObjC/UIControl+RACSignalSupportPrivate.h"; sourceTree = ""; }; 900B01806C65D7DCC5EC5ED03ECD0D03 /* TUICore.bundle */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = "wrapper.plug-in"; name = TUICore.bundle; path = Resources/TUICore.bundle; sourceTree = ""; }; - 901CEC3A79F36A2E0FE70F329E32570F /* JXPagerMainTableView.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = JXPagerMainTableView.h; path = Sources/JXPagerView/JXPagerMainTableView.h; sourceTree = ""; }; - 902734325A3C7BE856EED2FF283B5BA2 /* GPBUnknownField+Additions.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "GPBUnknownField+Additions.swift"; path = "objectivec/GPBUnknownField+Additions.swift"; sourceTree = ""; }; - 905FBB50EB9A3EBAAF0F1DA8438DCF3E /* SVGAParser.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SVGAParser.m; path = Source/SVGAParser.m; sourceTree = ""; }; + 90151025C24FE963DFFF64B6DED7B423 /* LLFilterFilePickerView.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = LLFilterFilePickerView.m; path = LLDebugTool/Core/Others/CommonUI/View/FilterView/LLFilterFilePickerView.m; sourceTree = ""; }; + 90221918B2D60B3483BFF2542B9C7C7D /* QCloudPingTester.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = QCloudPingTester.m; path = QCloudCore/Classes/Base/QCLOUDRestNet/DNSCache/QCloudPingTester.m; sourceTree = ""; }; + 9022B1F8CA7AA17EFA70ED28FB02E862 /* SVGAAudioLayer.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SVGAAudioLayer.h; path = Source/SVGAAudioLayer.h; sourceTree = ""; }; + 90391DF6CE0A93C6D9EA0ABCBF2EC469 /* RACAnnotations.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = RACAnnotations.h; path = ReactiveObjC/RACAnnotations.h; sourceTree = ""; }; + 904A8E2DD1D23113769C60C4B8AA0D63 /* LLNavigationController.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = LLNavigationController.h; path = LLDebugTool/Core/Others/CommonUI/ViewController/NavigationController/LLNavigationController.h; sourceTree = ""; }; 906059D2926D776E777F243B60E05A46 /* TUIGroupChatViewController.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = TUIGroupChatViewController.m; sourceTree = ""; }; - 90625BA868039992AC0524D9CF7BEF76 /* QGVAPConfigManager.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = QGVAPConfigManager.m; path = iOS/QGVAPlayer/QGVAPlayer/Classes/Controllers/QGVAPConfigManager.m; sourceTree = ""; }; - 9077684F9BA457B0CC80131BC2D3D790 /* GPBDictionary.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = GPBDictionary.m; path = objectivec/GPBDictionary.m; sourceTree = ""; }; - 907FF6352E0FF6E21E635F1822136EBC /* MQTTProperties.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = MQTTProperties.m; path = MQTTClient/MQTTClient/MQTTProperties.m; sourceTree = ""; }; + 9072CDD73A8D211AC95E38A2BAD39770 /* YYCategories-Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "YYCategories-Info.plist"; sourceTree = ""; }; 908009E78A2E56530859FF690E873087 /* Pods-QXLiveDev.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-QXLiveDev.debug.xcconfig"; sourceTree = ""; }; - 9084936B68F36D335E818E606C5B306C /* LLNetworkDetailViewController.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = LLNetworkDetailViewController.m; path = LLDebugTool/Core/Component/Network/UserInterface/LLNetworkDetailViewController.m; sourceTree = ""; }; - 90BC90004236BCE3C7B89F50E2A7982D /* LLSettingViewController.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = LLSettingViewController.m; path = LLDebugTool/Core/Others/Component/Setting/UserInterface/LLSettingViewController.m; sourceTree = ""; }; - 90CC5D58CDA022F0DAD838A155F88E67 /* YBIBScreenRotationHandler.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = YBIBScreenRotationHandler.m; path = YBImageBrowser/Base/YBIBScreenRotationHandler.m; sourceTree = ""; }; - 90D8F7730CBBCB11E49C17770F705019 /* YYText-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "YYText-dummy.m"; sourceTree = ""; }; + 9089C138119CC3A3E207FC6E44DF7883 /* TZAuthLimitedFooterTipView.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = TZAuthLimitedFooterTipView.h; path = TZImagePickerController/TZImagePickerController/TZAuthLimitedFooterTipView.h; sourceTree = ""; }; + 908A837346F8509A3C297F003E23D850 /* BRPickerView-Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "BRPickerView-Info.plist"; sourceTree = ""; }; + 90D7FF3042800797EA73C0A0442C6956 /* AFSecurityPolicy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = AFSecurityPolicy.m; path = AFNetworking/AFSecurityPolicy.m; sourceTree = ""; }; + 90D8F228D30C0E38CECAA4978016D584 /* LLWindowManager+Sandbox.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "LLWindowManager+Sandbox.m"; path = "LLDebugTool/Core/Component/Sandbox/UserInterface/LLWindowManager+Sandbox.m"; sourceTree = ""; }; 90EEBC4F39930756A7145F73F6C19488 /* TUIGroupAvatar+Helper.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "TUIGroupAvatar+Helper.m"; sourceTree = ""; }; - 913B067AF3DC46C1E34520C9808D414D /* NSNotificationCenter+YYAdd.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "NSNotificationCenter+YYAdd.h"; path = "YYCategories/Foundation/NSNotificationCenter+YYAdd.h"; sourceTree = ""; }; - 917B9B835A9ADCB099DD9059B41E3FFB /* LLNetworkViewController.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = LLNetworkViewController.m; path = LLDebugTool/Core/Component/Network/UserInterface/LLNetworkViewController.m; sourceTree = ""; }; - 91ADEA4F53077616A3CC66A8692FD31A /* JXCategoryListContainerView.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = JXCategoryListContainerView.m; path = Sources/Common/JXCategoryListContainerView.m; sourceTree = ""; }; + 9128D7877A6A305E46EC7D3A2B092BBD /* QCloudAuthentationV5Creator.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = QCloudAuthentationV5Creator.m; path = QCloudCore/Classes/Base/QCloudClientBase/Authentation/QCloudAuthentationV5Creator.m; sourceTree = ""; }; + 912D47DD71DFADB72E7CEDD5287EEB2D /* JXCategoryBaseCellModel.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = JXCategoryBaseCellModel.m; path = Sources/Base/JXCategoryBaseCellModel.m; sourceTree = ""; }; + 91403F1E5C0272749E2C99D64AFD32CE /* WechatOpenSDK-XCFramework.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "WechatOpenSDK-XCFramework.debug.xcconfig"; sourceTree = ""; }; + 914BEA483726676393D445DE4DE45FB1 /* picture_enc.c */ = {isa = PBXFileReference; includeInIndex = 1; name = picture_enc.c; path = src/enc/picture_enc.c; sourceTree = ""; }; + 91625967ECE48268D0B6FF9C59DF874A /* TXIMSDK_Plus_iOS_XCFramework-xcframeworks.sh */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.script.sh; path = "TXIMSDK_Plus_iOS_XCFramework-xcframeworks.sh"; sourceTree = ""; }; + 9177A1E1CB5989389C44C78FE0A269BA /* random_utils.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = random_utils.h; path = src/utils/random_utils.h; sourceTree = ""; }; + 9180B113E5C06B750956171BB08B097F /* LLComponentDelegate.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = LLComponentDelegate.h; path = LLDebugTool/Core/Others/Component/LLComponentDelegate.h; sourceTree = ""; }; + 91918C336CB4E3EAD7E5718A4CE3F59D /* ResourceBundle-Protobuf_Privacy-Protobuf-Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "ResourceBundle-Protobuf_Privacy-Protobuf-Info.plist"; sourceTree = ""; }; + 91A7D7FAD9C88D8FADFF64439EACA222 /* LLEntryBallView.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = LLEntryBallView.m; path = LLDebugTool/Core/Others/CommonUI/Window/EntryWindow/LLEntryBallView.m; sourceTree = ""; }; 91AF72E84F1B3D7D62712559F9173D1C /* TUIEvaluationCellData.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = TUIEvaluationCellData.h; sourceTree = ""; }; 91B23470DEB9A986332BEB5034234BC7 /* SSZipArchive */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; name = SSZipArchive; path = SSZipArchive.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + 91B38216C9217DACF5ACC9EA5145E770 /* NSMutableString+AvoidCrash.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "NSMutableString+AvoidCrash.h"; path = "AvoidCrash/NSMutableString+AvoidCrash.h"; sourceTree = ""; }; 91B5CBEF9476C1128396E8D8CA480DFB /* TUIConversationCellData_Minimalist.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = TUIConversationCellData_Minimalist.h; sourceTree = ""; }; - 91BB89F0F1F8F5DCA244319672FBF412 /* SDDisplayLink.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDDisplayLink.h; path = SDWebImage/Private/SDDisplayLink.h; sourceTree = ""; }; - 91C37FCE586EA4CBDAE664E8973148C6 /* LLScreenshotPreviewViewController.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = LLScreenshotPreviewViewController.m; path = LLDebugTool/Core/Component/Screenshot/UserInterface/LLScreenshotPreviewViewController.m; sourceTree = ""; }; - 91DB4C9280D8A35C9C913FE1F9CF29CC /* dec_sse41.c */ = {isa = PBXFileReference; includeInIndex = 1; name = dec_sse41.c; path = src/dsp/dec_sse41.c; sourceTree = ""; }; + 91C6205A1443784459DC10D3043BE98E /* Protobuf-Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "Protobuf-Info.plist"; sourceTree = ""; }; + 91F8647124E0787F55038BB3D25FBB27 /* LLRulerWindow.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = LLRulerWindow.m; path = LLDebugTool/Core/Component/Ruler/UserInterface/LLRulerWindow.m; sourceTree = ""; }; + 9203541306F143FDEB870B5F9A0B5E1F /* YYKVStorage.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = YYKVStorage.m; path = YYCache/YYKVStorage.m; sourceTree = ""; }; 92080B092D611A9308583BC80776AFD4 /* TUICore.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = TUICore.h; sourceTree = ""; }; 9211E26EE5EA1B5D5F0399C5FA89C084 /* TUIMenuView.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = TUIMenuView.h; sourceTree = ""; }; 921D0BB999A8CEDFA647B19789344E63 /* TUIConversationSelectBaseDataProvider.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = TUIConversationSelectBaseDataProvider.h; sourceTree = ""; }; - 923D47CE8814930C4728001B7DB2B464 /* JXPagerListContainerView.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = JXPagerListContainerView.m; path = Sources/JXPagerView/JXPagerListContainerView.m; sourceTree = ""; }; - 925219E1D82F01F5443A91853768502D /* LLRouter+Location.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "LLRouter+Location.m"; path = "LLDebugTool/Core/Others/Router/LLRouter+Location.m"; sourceTree = ""; }; - 925687F9CF4BEB2B884C5A107EC7F564 /* View+MASShorthandAdditions.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "View+MASShorthandAdditions.h"; path = "Masonry/View+MASShorthandAdditions.h"; sourceTree = ""; }; + 921E5C4735B2CFC1A410EEB60DA1F15D /* ScoringMachineProtocol+Infos.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "ScoringMachineProtocol+Infos.swift"; path = "AgoraLyricsScore/Class/Scoring/ScoringMachineProtocol+Infos.swift"; sourceTree = ""; }; + 9231995BAA72208E6E6F3F4018F17579 /* LLScreenshotToolbar.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = LLScreenshotToolbar.h; path = LLDebugTool/Core/Component/Screenshot/UserInterface/LLScreenshotToolbar.h; sourceTree = ""; }; + 9237AE7D726F70DDD45C541AD4A800DC /* RACUnarySequence.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = RACUnarySequence.h; path = ReactiveObjC/RACUnarySequence.h; sourceTree = ""; }; + 923D56204C8878303AE2C6359922DB30 /* OSSIPv6Adapter.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = OSSIPv6Adapter.h; path = AliyunOSSSDK/OSSIPv6/OSSIPv6Adapter.h; sourceTree = ""; }; 927DCA1FCB1533BC17E9492D4F79B13E /* TUITool.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = TUITool.h; sourceTree = ""; }; 92871C51F3A63C205C71A1C165D90489 /* TUIFitButton.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = TUIFitButton.m; sourceTree = ""; }; - 928E50522E71F758AA262A680F299967 /* mz_os.c */ = {isa = PBXFileReference; includeInIndex = 1; name = mz_os.c; path = SSZipArchive/minizip/mz_os.c; sourceTree = ""; }; 929A960D01E2CCD3DED5C21784B95109 /* TUICaptureVideoPreviewViewController.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = TUICaptureVideoPreviewViewController.h; sourceTree = ""; }; 92A8C56F5321E2AA0AAF46195868DC27 /* TUIGroupProfileCardCellData_Minimalist.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = TUIGroupProfileCardCellData_Minimalist.m; sourceTree = ""; }; - 92AFF723617B418648CD0C40EF61B5A4 /* rescaler_mips_dsp_r2.c */ = {isa = PBXFileReference; includeInIndex = 1; name = rescaler_mips_dsp_r2.c; path = src/dsp/rescaler_mips_dsp_r2.c; sourceTree = ""; }; + 92B370C7C8365A49C3D05DD3FDE518C4 /* LLScreenshotWindow.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = LLScreenshotWindow.h; path = LLDebugTool/Core/Component/Screenshot/UserInterface/LLScreenshotWindow.h; sourceTree = ""; }; + 92B775B45DE7E0A6F25CAA435FED1917 /* RACQueueScheduler+Subclass.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "RACQueueScheduler+Subclass.h"; path = "ReactiveObjC/RACQueueScheduler+Subclass.h"; sourceTree = ""; }; + 92BA56547911C9DDE2E0D1FBC2379C56 /* LLWindowManager+Network.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "LLWindowManager+Network.h"; path = "LLDebugTool/Core/Component/Network/UserInterface/LLWindowManager+Network.h"; sourceTree = ""; }; + 92C1D7D3A305BC6D2EBEE755EB5A930E /* YBIBImageData.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = YBIBImageData.m; path = YBImageBrowser/Image/YBIBImageData.m; sourceTree = ""; }; + 92C8304300FD1039B39260B05ED122B9 /* LLLocationHelper.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = LLLocationHelper.m; path = LLDebugTool/Core/Component/Location/Function/LLLocationHelper.m; sourceTree = ""; }; + 92CCD998EA97097340DB86E4B6424431 /* JXCategoryIndicatorRainbowLineView.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = JXCategoryIndicatorRainbowLineView.m; path = Sources/Indicator/IndicatorViews/JXCategoryIndicatorRainbowLineView.m; sourceTree = ""; }; + 9307B5FE011D6F6ED5ACC26D6E47C901 /* LLWindowManager+AppInfo.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "LLWindowManager+AppInfo.m"; path = "LLDebugTool/Core/Component/AppInfo/UserInterface/LLWindowManager+AppInfo.m"; sourceTree = ""; }; 930FF18571AF023CCC64E89B428FB658 /* ResourceBundle-TIMCommon_Privacy-TIMCommon-Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "ResourceBundle-TIMCommon_Privacy-TIMCommon-Info.plist"; sourceTree = ""; }; - 932104682567C1662DFE0661EAD36CD9 /* JXCategoryTitleCellModel.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = JXCategoryTitleCellModel.m; path = Sources/Title/JXCategoryTitleCellModel.m; sourceTree = ""; }; - 933597D58F60972C9FBCA1DDFD489C49 /* dec_msa.c */ = {isa = PBXFileReference; includeInIndex = 1; name = dec_msa.c; path = src/dsp/dec_msa.c; sourceTree = ""; }; - 93A0F6F8690822149BE632E155F778FE /* IQUIView+IQKeyboardToolbar.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "IQUIView+IQKeyboardToolbar.h"; path = "IQKeyboardManager/IQToolbar/IQUIView+IQKeyboardToolbar.h"; sourceTree = ""; }; - 93B07EE1D0E0B6718EEFFE39BB11D26D /* NSObject+LL_Utils.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "NSObject+LL_Utils.h"; path = "LLDebugTool/Core/Others/Category/NSObject/NSObject+LL_Utils.h"; sourceTree = ""; }; - 93BB15B8CEC4558EB68A0E347E85D1BD /* Protobuf.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.module; path = Protobuf.modulemap; sourceTree = ""; }; - 93CFF13DF818C81535CCE2B63111760A /* LLWindowManager+ShortCut.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "LLWindowManager+ShortCut.h"; path = "LLDebugTool/Core/Component/ShortCut/UserInterface/LLWindowManager+ShortCut.h"; sourceTree = ""; }; - 93D8230D41E4E6E46D22CF26B773A52D /* LLLogCell.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = LLLogCell.m; path = LLDebugTool/Core/Component/Log/UserInterface/LLLogCell.m; sourceTree = ""; }; - 93ED4168CB181125A6B72D391E025A4E /* NSParagraphStyle+YYText.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "NSParagraphStyle+YYText.m"; path = "YYText/Utility/NSParagraphStyle+YYText.m"; sourceTree = ""; }; + 934F3A0D5E9E6D51DA588C2F649A5ED9 /* RACPassthroughSubscriber.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = RACPassthroughSubscriber.m; path = ReactiveObjC/RACPassthroughSubscriber.m; sourceTree = ""; }; + 935DE90A8B2DAD1AAC40EBFB11032967 /* UIRefreshControl+RACCommandSupport.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "UIRefreshControl+RACCommandSupport.h"; path = "ReactiveObjC/UIRefreshControl+RACCommandSupport.h"; sourceTree = ""; }; + 936AFBA0A950DAA32400CF9454411A48 /* NSSet+OSS.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "NSSet+OSS.m"; path = "AliyunOSSSDK/NSSet+OSS.m"; sourceTree = ""; }; + 937BAE0D7ECAFAC5DF4B1015DADDDDFC /* LLRouter.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = LLRouter.m; path = LLDebugTool/Core/Others/Router/LLRouter.m; sourceTree = ""; }; + 939F642E6D82A2E63F328D05004F525C /* LLFilterView.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = LLFilterView.h; path = LLDebugTool/Core/Others/CommonUI/View/FilterView/LLFilterView.h; sourceTree = ""; }; + 93E65E29AF71B238088AA081907C6313 /* QCloudResponseSerializer.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = QCloudResponseSerializer.m; path = QCloudCore/Classes/Base/QCLOUDRestNet/CoreRequest/Serializer/QCloudResponseSerializer.m; sourceTree = ""; }; + 93E89987E1B5492FE72D12FFBF263D70 /* TAAnimatedDotView.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = TAAnimatedDotView.h; path = SDCycleScrollView/Lib/SDCycleScrollView/PageControl/TAAnimatedDotView.h; sourceTree = ""; }; 93FCD3E08B24EAECB6BA290C25794B95 /* TUIBaseMessageController_Minimalist+ProtectedAPI.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "TUIBaseMessageController_Minimalist+ProtectedAPI.h"; sourceTree = ""; }; 93FE9436178E5ACA9A9610B25786D11D /* TUIFaceView.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = TUIFaceView.h; sourceTree = ""; }; + 9405B7EE37C2626E0FAB6A4D24BAF3BB /* alpha_enc.c */ = {isa = PBXFileReference; includeInIndex = 1; name = alpha_enc.c; path = src/enc/alpha_enc.c; sourceTree = ""; }; 941FD917F417F550371D727FDF654777 /* TIMCommonTheme.bundle */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = "wrapper.plug-in"; name = TIMCommonTheme.bundle; path = Resources/TIMCommonTheme.bundle; sourceTree = ""; }; - 9430AB66010AA631CF130C9E4E90866F /* RACKVOChannel.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = RACKVOChannel.h; path = ReactiveObjC/RACKVOChannel.h; sourceTree = ""; }; + 9421733E9492EBAF4554BC01E63F5532 /* YYTextInput.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = YYTextInput.h; path = YYText/Component/YYTextInput.h; sourceTree = ""; }; 94329B7AE8EE695E7D6F6A2D1247E7BA /* TIMCommon.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = TIMCommon.release.xcconfig; sourceTree = ""; }; - 9459AF8F3E5C9053E7A59E3EC4342B20 /* UIFont+YYAdd.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "UIFont+YYAdd.m"; path = "YYCategories/UIKit/UIFont+YYAdd.m"; sourceTree = ""; }; - 946B1ED3C30E392D4A276E04268E720E /* MJRefresh.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = MJRefresh.h; path = MJRefresh/MJRefresh.h; sourceTree = ""; }; - 946D09B22E7BC35DB43AC9E37E3B45DD /* SDImageCoderHelper.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDImageCoderHelper.h; path = SDWebImage/Core/SDImageCoderHelper.h; sourceTree = ""; }; - 949810BF2C56B33BC4CF2C2E7814297D /* SDWebImageCompat.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDWebImageCompat.m; path = SDWebImage/Core/SDWebImageCompat.m; sourceTree = ""; }; - 94B0443327D5ED261D57CF897842D4C8 /* LLWindowManager+ShortCut.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "LLWindowManager+ShortCut.m"; path = "LLDebugTool/Core/Component/ShortCut/UserInterface/LLWindowManager+ShortCut.m"; sourceTree = ""; }; - 94C75BB537A2078039EA8CFF221C5B77 /* GPBArray_PackagePrivate.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = GPBArray_PackagePrivate.h; path = objectivec/GPBArray_PackagePrivate.h; sourceTree = ""; }; - 950930A73A3FB9836C5174F10B9565BD /* idec_dec.c */ = {isa = PBXFileReference; includeInIndex = 1; name = idec_dec.c; path = src/dec/idec_dec.c; sourceTree = ""; }; + 94596E7FC878CAF5BD0D9CC95E61BF93 /* QCloudLoaderManager.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = QCloudLoaderManager.m; path = QCloudCore/Classes/Base/CustomLoader/QCloudLoaderManager.m; sourceTree = ""; }; + 947BB50F945ACD93C0920B78DC1FA996 /* LLRuler.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = LLRuler.h; path = LLDebugTool/Core/Component/Ruler/LLRuler.h; sourceTree = ""; }; + 947DC10AA8D519EB371FAA12C67BB016 /* LLDebugTool-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "LLDebugTool-prefix.pch"; sourceTree = ""; }; + 9485EB0391E1AB078FD719112A7E1C72 /* LLScreenshotSelectorModel.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = LLScreenshotSelectorModel.h; path = LLDebugTool/Core/Component/Screenshot/UserInterface/LLScreenshotSelectorModel.h; sourceTree = ""; }; + 949742297D1D4FF3E63055928121743C /* TZLocationManager.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = TZLocationManager.h; path = TZImagePickerController/Location/TZLocationManager.h; sourceTree = ""; }; + 94A7B19715A0D856103E5BDA6B5DF908 /* GPBRootObject.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = GPBRootObject.h; path = objectivec/GPBRootObject.h; sourceTree = ""; }; + 94ACA4048C88BA862C17F19AA560BD71 /* libwebp.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.module; path = libwebp.modulemap; sourceTree = ""; }; + 94CF2495A56C33AAEA8737D4DF150E53 /* QCloudUploadPartResult.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = QCloudUploadPartResult.m; path = QCloudCOSXML/Classes/Transfer/model/QCloudUploadPartResult.m; sourceTree = ""; }; + 94DE8F7BB4C72D62AD40BF89FD749202 /* Masonry.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = Masonry.debug.xcconfig; sourceTree = ""; }; + 94F066A7E04C103261B7E99EEC47E974 /* QCloudError.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = QCloudError.m; path = QCloudCore/Classes/Base/QCloudClientBase/Service/QCloudError.m; sourceTree = ""; }; + 94F1A20F3CF3CA9B5FEE05BC72495CF0 /* QGVAPMetalUtil.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = QGVAPMetalUtil.m; path = iOS/QGVAPlayer/QGVAPlayer/Classes/Utils/QGVAPMetalUtil.m; sourceTree = ""; }; + 94F514CCC0F54DE94974B8D9BD3346D7 /* RACArraySequence.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = RACArraySequence.h; path = ReactiveObjC/RACArraySequence.h; sourceTree = ""; }; + 94FE1C2503CF03D1C77C30D7339D20E3 /* QCloudThreadSafeMutableDictionary.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = QCloudThreadSafeMutableDictionary.h; path = "QCloudCore/Classes/Base/Bolts-Promise/QCloudThreadSafeMutableDictionary.h"; sourceTree = ""; }; + 9502B0B473623E7357CE14F670B4A6C5 /* MJRefreshBackFooter.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = MJRefreshBackFooter.h; path = MJRefresh/Base/MJRefreshBackFooter.h; sourceTree = ""; }; 953C060534FC3B5C1D79AF1D5519C9D2 /* TUIMessageCell.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = TUIMessageCell.h; sourceTree = ""; }; + 953EA43E3F2AF86474EE7D74EBCBD573 /* MJRefreshBackGifFooter.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = MJRefreshBackGifFooter.h; path = MJRefresh/Custom/Footer/Back/MJRefreshBackGifFooter.h; sourceTree = ""; }; + 9540B15BAB1B72A64BF8F5A92E008802 /* AliyunOSSiOS-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "AliyunOSSiOS-prefix.pch"; sourceTree = ""; }; 9540DF32823F25B245A8907FFFF8A2F2 /* TUIGroupCreatedCellData.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = TUIGroupCreatedCellData.m; sourceTree = ""; }; - 954A6870C2CC210065883BAD3C0DB5E0 /* GPBWrappers.pbobjc.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = GPBWrappers.pbobjc.m; path = objectivec/GPBWrappers.pbobjc.m; sourceTree = ""; }; + 95457C29FC39801500A209BB64538B5F /* QCloudHTTPSessionManager.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = QCloudHTTPSessionManager.m; path = QCloudCore/Classes/Base/QCLOUDRestNet/SessionSupport/QCloudHTTPSessionManager.m; sourceTree = ""; }; + 954A29B28B94DAB35DBB9DCA2DA8D1FB /* MQTTDecoder.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = MQTTDecoder.h; path = MQTTClient/MQTTClient/MQTTDecoder.h; sourceTree = ""; }; + 9559EC21ED7F4E98D232C84ECEA163E1 /* backward_references_enc.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = backward_references_enc.h; path = src/enc/backward_references_enc.h; sourceTree = ""; }; 955E405DBAF6E8AC856E5284FFC13751 /* TUIMoreView.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = TUIMoreView.h; sourceTree = ""; }; - 958BC3B678B0450F55FC55CB5F7FE729 /* SDCycleScrollView.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.module; path = SDCycleScrollView.modulemap; sourceTree = ""; }; - 95EE60D03898593A6C20C72EBD683F98 /* PrivacyInfo.xcprivacy */ = {isa = PBXFileReference; includeInIndex = 1; name = PrivacyInfo.xcprivacy; path = Sources/PrivacyInfo.xcprivacy; sourceTree = ""; }; + 958B0EAFAF6E8E42C805AE3BD743DAC4 /* SSZipArchive-Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "SSZipArchive-Info.plist"; sourceTree = ""; }; + 95A3324CA0FE1B9B3F9E4D935B5E655F /* SDWebImageWebPCoder.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDWebImageWebPCoder.h; path = SDWebImageWebPCoder/Module/SDWebImageWebPCoder.h; sourceTree = ""; }; + 95A438E9583EC9367114459DB27631A0 /* Protobuf.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = Protobuf.debug.xcconfig; sourceTree = ""; }; + 95B6840B1277532F157C0E5E204647E6 /* LLBaseView.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = LLBaseView.h; path = LLDebugTool/Core/Others/CommonUI/Base/LLBaseView.h; sourceTree = ""; }; + 95C14D9A7910CDEB22F772FEE9354C42 /* UIViewController+LL_Utils.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "UIViewController+LL_Utils.h"; path = "LLDebugTool/Core/Others/Category/UIViewController/UIViewController+LL_Utils.h"; sourceTree = ""; }; + 95FE8358D7747A179D03A5C18C0782AE /* NSArray+MASAdditions.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "NSArray+MASAdditions.m"; path = "Masonry/NSArray+MASAdditions.m"; sourceTree = ""; }; 96026FBB2F8FD1F74ABC487E8E31DA10 /* AlbumPicker.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = AlbumPicker.m; sourceTree = ""; }; 9621C6383F5733C35183B2DE886C7EC6 /* ReactiveObjC */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; name = ReactiveObjC; path = ReactiveObjC.framework; sourceTree = BUILT_PRODUCTS_DIR; }; 9631FC392053D21BBAA9F1286BF5A0C2 /* TUIConversation-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "TUIConversation-prefix.pch"; sourceTree = ""; }; - 963354F1BD6B33DEE9BFE8C56475A7C1 /* LLSandboxVideoPreviewController.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = LLSandboxVideoPreviewController.m; path = LLDebugTool/Core/Component/Sandbox/UserInterface/LLSandboxVideoPreviewController.m; sourceTree = ""; }; - 9671234B95976CC18EFB70FA2EA4B915 /* UIPasteboard+YYText.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "UIPasteboard+YYText.m"; path = "YYText/Utility/UIPasteboard+YYText.m"; sourceTree = ""; }; - 967420287935BB8D5BD94A2094D80BBA /* XmlParser.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = XmlParser.swift; path = AgoraLyricsScore/Class/Other/XmlParser.swift; sourceTree = ""; }; - 967A3636407ACF40079E57F1C7A7F4FC /* OSSRestoreObjectRequest.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = OSSRestoreObjectRequest.m; path = AliyunOSSSDK/OSSRestoreObjectRequest.m; sourceTree = ""; }; - 9683F0FA555D901640477496F3D0C083 /* LLCrashComponent.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = LLCrashComponent.m; path = LLDebugTool/Core/Component/Crash/LLCrashComponent.m; sourceTree = ""; }; + 963582D9879ACDC3E657D057454E7CE1 /* QCloudHTTPRequestOperation.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = QCloudHTTPRequestOperation.h; path = QCloudCore/Classes/Base/QCLOUDRestNet/Operations/QCloudHTTPRequestOperation.h; sourceTree = ""; }; + 9657CC53F162E9B98D58C7976220247D /* quant_levels_dec_utils.c */ = {isa = PBXFileReference; includeInIndex = 1; name = quant_levels_dec_utils.c; path = src/utils/quant_levels_dec_utils.c; sourceTree = ""; }; + 965810800994EDF115FC7C81D968BB02 /* MASLayoutConstraint.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = MASLayoutConstraint.h; path = Masonry/MASLayoutConstraint.h; sourceTree = ""; }; + 966B2ACA825394A27EB38B0C8BB7BECC /* GPBType.pbobjc.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = GPBType.pbobjc.h; path = objectivec/GPBType.pbobjc.h; sourceTree = ""; }; + 968231824AEE19E86BB15B07FE4E7B0A /* LocalPitchView.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = LocalPitchView.swift; path = AgoraLyricsScore/Class/Scoring/View/LocalPitchView.swift; sourceTree = ""; }; 968DB3C6703E8E1ED6FDB0C1B30F28D0 /* TUIImageReplyQuoteView_Minimalist.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = TUIImageReplyQuoteView_Minimalist.m; sourceTree = ""; }; - 96BAADD5753B42CD493A7FC30C2FC41F /* LLNavigationController.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = LLNavigationController.h; path = LLDebugTool/Core/Others/CommonUI/ViewController/NavigationController/LLNavigationController.h; sourceTree = ""; }; - 96C1FAD7D1DCED5CCFADA9DB19A77B86 /* mz_strm_pkcrypt.c */ = {isa = PBXFileReference; includeInIndex = 1; name = mz_strm_pkcrypt.c; path = SSZipArchive/minizip/mz_strm_pkcrypt.c; sourceTree = ""; }; - 96C8E25F23B1E6EF7231C646A0C30351 /* NSDictionary+RACSequenceAdditions.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "NSDictionary+RACSequenceAdditions.m"; path = "ReactiveObjC/NSDictionary+RACSequenceAdditions.m"; sourceTree = ""; }; - 970AF4B7BFE170D4945250E644A45414 /* cost_mips32.c */ = {isa = PBXFileReference; includeInIndex = 1; name = cost_mips32.c; path = src/dsp/cost_mips32.c; sourceTree = ""; }; + 968E0E8489EA1FEE210BB51339379F28 /* yuv_sse2.c */ = {isa = PBXFileReference; includeInIndex = 1; name = yuv_sse2.c; path = src/dsp/yuv_sse2.c; sourceTree = ""; }; + 9691510F8293B6C3C3620A1B5CF6EC68 /* FMDB-Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "FMDB-Info.plist"; sourceTree = ""; }; + 96C143B365F048B7C234C3A8462EAC60 /* frame_enc.c */ = {isa = PBXFileReference; includeInIndex = 1; name = frame_enc.c; path = src/enc/frame_enc.c; sourceTree = ""; }; + 96CFE93F542A68F13873B7A2311998B7 /* SDFileAttributeHelper.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDFileAttributeHelper.h; path = SDWebImage/Private/SDFileAttributeHelper.h; sourceTree = ""; }; + 96D60FAA08A4AD43F6A699D26B9D16EC /* NSMutableData+OSS_CRC.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "NSMutableData+OSS_CRC.m"; path = "AliyunOSSSDK/NSMutableData+OSS_CRC.m"; sourceTree = ""; }; + 96F57F8950C059A0FB4F8A87B8134D20 /* OSSGetSymlinkResult.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = OSSGetSymlinkResult.h; path = AliyunOSSSDK/OSSGetSymlinkResult.h; sourceTree = ""; }; + 9705AC856C47F05BEF242A30404BE89E /* QCloudCOSXML.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.module; path = QCloudCOSXML.modulemap; sourceTree = ""; }; + 971D3EE6EC1361D862EC9522FE88E5B9 /* NSNumber+YYAdd.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "NSNumber+YYAdd.h"; path = "YYCategories/Foundation/NSNumber+YYAdd.h"; sourceTree = ""; }; 9729C86379BFD05AFA85BB733D4EDC3A /* Pods-QXLiveDev-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "Pods-QXLiveDev-umbrella.h"; sourceTree = ""; }; - 9730A5C0ABE243EAF832C27088081C37 /* YBIBInteractionProfile.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = YBIBInteractionProfile.h; path = YBImageBrowser/Image/YBIBInteractionProfile.h; sourceTree = ""; }; - 974EF5F6AB07F9047E91897A1CB0ED2A /* UIControl+RACSignalSupport.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "UIControl+RACSignalSupport.m"; path = "ReactiveObjC/UIControl+RACSignalSupport.m"; sourceTree = ""; }; - 976E1C74975814DB018A48C7B6007B82 /* SSZipArchive.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = SSZipArchive.debug.xcconfig; sourceTree = ""; }; + 976641C70166B3DDE3CFAEFD61C325C7 /* YBIBVideoData.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = YBIBVideoData.h; path = Video/YBIBVideoData.h; sourceTree = ""; }; + 9769F3CB66237CD67D3373761DCB0AAC /* JXPagerListRefreshView.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = JXPagerListRefreshView.h; path = Sources/JXPagerView/JXPagerListRefreshView.h; sourceTree = ""; }; 976E283DFB7D8CEF67DA977E0B88253D /* TUIMessageCell.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = TUIMessageCell.m; sourceTree = ""; }; - 97924E2E0C817A877F7DCB3CCF46893F /* LLFunctionItemContainerView.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = LLFunctionItemContainerView.h; path = LLDebugTool/Core/Others/Component/Function/UserInterface/LLFunctionItemContainerView.h; sourceTree = ""; }; - 979D01138FFAA7C8E7C2B9EEC17F1DEE /* JXCategoryView.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = JXCategoryView.h; path = Sources/JXCategoryView.h; sourceTree = ""; }; + 977F1E2C35AB1341C1F8E208B95D7DF9 /* NSAttributedString+YYText.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "NSAttributedString+YYText.m"; path = "YYText/Utility/NSAttributedString+YYText.m"; sourceTree = ""; }; + 97ABD91E76532D89129E4947684B67F6 /* SDWebImageWebPCoder-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "SDWebImageWebPCoder-prefix.pch"; sourceTree = ""; }; 97B154008DDCC90A8341E90151A21F2D /* TUIGroupPendencyDataProvider.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = TUIGroupPendencyDataProvider.h; sourceTree = ""; }; - 97C2918FF8CBF93DE48FCD699E651A56 /* OSSIPv6PrefixResolver.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = OSSIPv6PrefixResolver.m; path = AliyunOSSSDK/OSSIPv6/OSSIPv6PrefixResolver.m; sourceTree = ""; }; - 97D657EBD16D63AE0B4CBD9E62451BD1 /* SVGAVectorLayer.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SVGAVectorLayer.m; path = Source/SVGAVectorLayer.m; sourceTree = ""; }; + 97BA55813AF3F0187E2A44C2CAEC0B25 /* QCloudHTTPRequest_RequestID.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = QCloudHTTPRequest_RequestID.h; path = QCloudCore/Classes/Base/QCLOUDRestNet/CoreRequest/QCloudHTTPRequest_RequestID.h; sourceTree = ""; }; + 97E4EE3DDAA0E9C5FA33E798507F3C1A /* QGAnimatedImageDecodeThread.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = QGAnimatedImageDecodeThread.m; path = iOS/QGVAPlayer/QGVAPlayer/Classes/Controllers/QGAnimatedImageDecodeThread.m; sourceTree = ""; }; 97F2D1E98D2FAE9D3412F765A459F06E /* TUIFileViewController.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = TUIFileViewController.h; sourceTree = ""; }; - 9808AD2B9EE2031A2356B48987E3E1E4 /* MASCompositeConstraint.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = MASCompositeConstraint.m; path = Masonry/MASCompositeConstraint.m; sourceTree = ""; }; - 982AB3BF6B2628EAF0F6B75E9C15E3F8 /* SSZipArchive.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SSZipArchive.m; path = SSZipArchive/SSZipArchive.m; sourceTree = ""; }; - 9836D81589CC11610310D84CF2E8CDFD /* LLShortCutComponent.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = LLShortCutComponent.h; path = LLDebugTool/Core/Component/ShortCut/LLShortCutComponent.h; sourceTree = ""; }; - 983C32C3FED8FE8453CCBEAF54DCD23F /* LLLogDetailViewController.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = LLLogDetailViewController.h; path = LLDebugTool/Core/Component/Log/UserInterface/LLLogDetailViewController.h; sourceTree = ""; }; - 983EDB64D59FAC1C1EF21D3C691631E5 /* YBIBAuxiliaryViewHandler.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = YBIBAuxiliaryViewHandler.m; path = YBImageBrowser/AuxiliaryView/YBIBAuxiliaryViewHandler.m; sourceTree = ""; }; + 9809B70512BD2DA0DD82468228FBE923 /* UIScreen+YYAdd.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "UIScreen+YYAdd.h"; path = "YYCategories/UIKit/UIScreen+YYAdd.h"; sourceTree = ""; }; + 981B62113BD0DA69A54FB78AFEE784C2 /* SDImageAPNGCoder.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDImageAPNGCoder.h; path = SDWebImage/Core/SDImageAPNGCoder.h; sourceTree = ""; }; + 9842CBBE1DDEAF850B3443F53051090E /* UIDevice+LL_AppInfo.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "UIDevice+LL_AppInfo.h"; path = "LLDebugTool/Core/Component/AppInfo/Function/UIDevice/UIDevice+LL_AppInfo.h"; sourceTree = ""; }; 98527D7196957AAB07B79E2E2AFDE23E /* IQKeyboardManager */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; name = IQKeyboardManager; path = IQKeyboardManager.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - 987F50B8EC7D4A5A1CA1D8518129FDFD /* LLDebugTool.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = LLDebugTool.debug.xcconfig; sourceTree = ""; }; - 98ED9160518BCF17DF77D32ACF04FA5F /* AgoraAiEchoCancellationExtension.xcframework */ = {isa = PBXFileReference; includeInIndex = 1; path = AgoraAiEchoCancellationExtension.xcframework; sourceTree = ""; }; + 98540D1B92D5723A142D1F8AD54D2598 /* QCloudCOSXMLService+Transfer.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "QCloudCOSXMLService+Transfer.h"; path = "QCloudCOSXML/Classes/Transfer/QCloudCOSXMLService+Transfer.h"; sourceTree = ""; }; + 985C75D39F6D074CF247CCA12CFF66CB /* token_enc.c */ = {isa = PBXFileReference; includeInIndex = 1; name = token_enc.c; path = src/enc/token_enc.c; sourceTree = ""; }; + 9863230652A77516A5830C58FEE0B4C6 /* GPBUnknownFields.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = GPBUnknownFields.h; path = objectivec/GPBUnknownFields.h; sourceTree = ""; }; + 98B77E03C826D52220B2151CB7FF4B08 /* SDWebImageWebPCoder.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = SDWebImageWebPCoder.debug.xcconfig; sourceTree = ""; }; 98FFB85987A25E738F2F8E252A56EB58 /* TUIC2CChatViewController.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = TUIC2CChatViewController.h; sourceTree = ""; }; 990C3927E2E64898196108C7F15A1FB5 /* TUIInputBar.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = TUIInputBar.m; sourceTree = ""; }; - 990CF0C3878613AF2E60F2C9AA606405 /* AgoraInfra_iOS.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = AgoraInfra_iOS.release.xcconfig; sourceTree = ""; }; + 991332021BA6EA0F0A0807C7E3ADA665 /* RACDynamicSignal.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = RACDynamicSignal.h; path = ReactiveObjC/RACDynamicSignal.h; sourceTree = ""; }; + 9913A2617E39A9B8B72732889C727C44 /* frame_dec.c */ = {isa = PBXFileReference; includeInIndex = 1; name = frame_dec.c; path = src/dec/frame_dec.c; sourceTree = ""; }; + 9914816CFEB1A44C5DD27892F27F701A /* LLWindowManager+AppInfo.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "LLWindowManager+AppInfo.h"; path = "LLDebugTool/Core/Component/AppInfo/UserInterface/LLWindowManager+AppInfo.h"; sourceTree = ""; }; + 992E7E74FA846B8584E79728F0C6F7D0 /* predictor_enc.c */ = {isa = PBXFileReference; includeInIndex = 1; name = predictor_enc.c; path = src/enc/predictor_enc.c; sourceTree = ""; }; 99337F0F0F7E53C33D8DEFED209D4660 /* Pods-QXLive.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.module; path = "Pods-QXLive.modulemap"; sourceTree = ""; }; - 9936934BB53FD2E5DE6122B0747DDD32 /* SVGABitmapLayer.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SVGABitmapLayer.m; path = Source/SVGABitmapLayer.m; sourceTree = ""; }; 99658E8DD4623D50FA4011BCDDADB02D /* TUIFaceView.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = TUIFaceView.m; sourceTree = ""; }; 9977D80B67557184683EA5A0EDE7775F /* TUIConversation-Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "TUIConversation-Info.plist"; sourceTree = ""; }; - 9989F82CA2DC6F39435D478FCDEFA2B3 /* RACSignal+Operations.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "RACSignal+Operations.m"; path = "ReactiveObjC/RACSignal+Operations.m"; sourceTree = ""; }; - 99969904C7B66F20281BD1B8BE69A6F8 /* buffer_dec.c */ = {isa = PBXFileReference; includeInIndex = 1; name = buffer_dec.c; path = src/dec/buffer_dec.c; sourceTree = ""; }; - 999B45DE9163CA2BE626E067C0981D13 /* GPBRootObject_PackagePrivate.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = GPBRootObject_PackagePrivate.h; path = objectivec/GPBRootObject_PackagePrivate.h; sourceTree = ""; }; - 99EAA8A69F3605F202C84E86B447328F /* NSMutableDictionary+OSS.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "NSMutableDictionary+OSS.h"; path = "AliyunOSSSDK/NSMutableDictionary+OSS.h"; sourceTree = ""; }; - 99F02E391E9E59CF1A24D9420B5C972A /* LLPickerView.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = LLPickerView.m; path = LLDebugTool/Core/Others/CommonUI/View/PickerView/LLPickerView.m; sourceTree = ""; }; - 9A05EC9D7F000F85F1F2BEFDEE6C75A0 /* RACReturnSignal.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = RACReturnSignal.m; path = ReactiveObjC/RACReturnSignal.m; sourceTree = ""; }; - 9A09B5FD3B58DF5489AEA2A533ADB033 /* tree_enc.c */ = {isa = PBXFileReference; includeInIndex = 1; name = tree_enc.c; path = src/enc/tree_enc.c; sourceTree = ""; }; - 9A3A444853E4BC17982A8D145003B844 /* LLRouter+Location.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "LLRouter+Location.h"; path = "LLDebugTool/Core/Others/Router/LLRouter+Location.h"; sourceTree = ""; }; - 9A515C4744B608C66416D876EA703538 /* AlipaySDK-iOS.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "AlipaySDK-iOS.debug.xcconfig"; sourceTree = ""; }; + 99878C107A070699FBAB53DE435AEAD8 /* LLBaseWindow.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = LLBaseWindow.m; path = LLDebugTool/Core/Others/CommonUI/Base/LLBaseWindow.m; sourceTree = ""; }; + 99C2CBBFB4379E23C1A56B3F85C4B092 /* QCloudResponseSerializer.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = QCloudResponseSerializer.h; path = QCloudCore/Classes/Base/QCLOUDRestNet/CoreRequest/Serializer/QCloudResponseSerializer.h; sourceTree = ""; }; + 99C9F6420E22E715A5EDD7BC667FB6BD /* LLHtmlConfigViewController.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = LLHtmlConfigViewController.m; path = LLDebugTool/Core/Component/Html/UserInterface/LLHtmlConfigViewController.m; sourceTree = ""; }; + 9A5F6D8AA6993683C15AB8AF64D1DD9A /* LLDebugTool-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "LLDebugTool-dummy.m"; sourceTree = ""; }; + 9A651EC9070289A97EF337EFE867B426 /* sharpyuv_gamma.c */ = {isa = PBXFileReference; includeInIndex = 1; name = sharpyuv_gamma.c; path = sharpyuv/sharpyuv_gamma.c; sourceTree = ""; }; + 9A6600403FF27849D26DCED372AB99BB /* OSSServiceSignature.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = OSSServiceSignature.m; path = AliyunOSSSDK/Signer/OSSServiceSignature.m; sourceTree = ""; }; 9A69EBE67FC175DD4A6E2DEA910A192A /* TUIGroupInfoDataProvider.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = TUIGroupInfoDataProvider.h; sourceTree = ""; }; - 9A8E88BEDBF9E729FC38BF8AA1CFEAC5 /* RACSubscriptionScheduler.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = RACSubscriptionScheduler.h; path = ReactiveObjC/RACSubscriptionScheduler.h; sourceTree = ""; }; + 9A81EBF3E122777C71BC1E14A5A5DC2F /* OSSInputStreamHelper.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = OSSInputStreamHelper.m; path = AliyunOSSSDK/OSSInputStreamHelper.m; sourceTree = ""; }; 9A92360AC76FD4C5F177D22F01DB8B0D /* TIMRTLUtil.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = TIMRTLUtil.m; sourceTree = ""; }; - 9A9280CB44A2E836FD369210C0414A0A /* alpha_processing.c */ = {isa = PBXFileReference; includeInIndex = 1; name = alpha_processing.c; path = src/dsp/alpha_processing.c; sourceTree = ""; }; - 9A93869CEF592BE323C598BD2B5DB2FD /* GPBStruct.pbobjc.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = GPBStruct.pbobjc.m; path = objectivec/GPBStruct.pbobjc.m; sourceTree = ""; }; - 9AA7A4C3CF9EBFF26EC64B190F7D271B /* GPBCodedOutputStream_PackagePrivate.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = GPBCodedOutputStream_PackagePrivate.h; path = objectivec/GPBCodedOutputStream_PackagePrivate.h; sourceTree = ""; }; 9AB38CA7304414D2A5EDAB32ACB99441 /* TUIAudioRecorder.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = TUIAudioRecorder.m; sourceTree = ""; }; + 9ABFDA5D5519B2CBB9975196E9D4AFA5 /* LLMoveView.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = LLMoveView.h; path = LLDebugTool/Core/Others/CommonUI/View/MoveView/LLMoveView.h; sourceTree = ""; }; 9ACC681AFDDAC895FF7D551E3A4EE95D /* TUIBubbleMessageCell.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = TUIBubbleMessageCell.h; sourceTree = ""; }; - 9AF4ED464D26156395288C7B3BEDD9C9 /* TXIMSDK_Plus_iOS_XCFramework.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = TXIMSDK_Plus_iOS_XCFramework.release.xcconfig; sourceTree = ""; }; - 9B188AF11ABC695A8C591CCFCE3741A7 /* MKMapView+LL_Location.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "MKMapView+LL_Location.m"; path = "LLDebugTool/Core/Component/Location/Function/MKMapView/MKMapView+LL_Location.m"; sourceTree = ""; }; - 9B356D121CC77A3AA2DF9D74CCE27FD2 /* Masonry.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = Masonry.debug.xcconfig; sourceTree = ""; }; - 9B5AE18DBDE00D6087843502F2BD4C4E /* UIDevice+LL_AppInfo.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "UIDevice+LL_AppInfo.h"; path = "LLDebugTool/Core/Component/AppInfo/Function/UIDevice/UIDevice+LL_AppInfo.h"; sourceTree = ""; }; - 9B738ADE726A061A4C5F827A1D5699EC /* OSSTask.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = OSSTask.m; path = AliyunOSSSDK/OSSTask/OSSTask.m; sourceTree = ""; }; - 9B8DCC45CDEBEE45C76704381B29D9C3 /* LLNetworkFilterViewController.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = LLNetworkFilterViewController.h; path = LLDebugTool/Core/Component/Network/UserInterface/LLNetworkFilterViewController.h; sourceTree = ""; }; + 9ADEC0611E7F3F1C59D7EC77A23F7069 /* QCloudCore.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = QCloudCore.debug.xcconfig; sourceTree = ""; }; + 9AEA63AD0F5D203B883FE2860A36BF94 /* SDWebImageCacheKeyFilter.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDWebImageCacheKeyFilter.h; path = SDWebImage/Core/SDWebImageCacheKeyFilter.h; sourceTree = ""; }; + 9B1559F7D5A38D19DF602A367B89383A /* MJRefreshBackStateFooter.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = MJRefreshBackStateFooter.h; path = MJRefresh/Custom/Footer/Back/MJRefreshBackStateFooter.h; sourceTree = ""; }; + 9B26A92A7F41BE44412BF4151857574D /* NSData+OSS.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "NSData+OSS.m"; path = "AliyunOSSSDK/NSData+OSS.m"; sourceTree = ""; }; + 9B28C48857CDE0E27AD1F24A76385EB9 /* UIImage+YYAdd.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "UIImage+YYAdd.m"; path = "YYCategories/UIKit/UIImage+YYAdd.m"; sourceTree = ""; }; + 9B30693507E84DDEC66045E3DD7397AA /* SDWebImageTransition.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDWebImageTransition.m; path = SDWebImage/Core/SDWebImageTransition.m; sourceTree = ""; }; + 9B5A9F8E58D4C563082437381DF998CD /* OSSRequest.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = OSSRequest.h; path = AliyunOSSSDK/OSSRequest.h; sourceTree = ""; }; + 9B654199114861BA650381E43DD5E10B /* QCloudHTTPBodyPart.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = QCloudHTTPBodyPart.h; path = QCloudCore/Classes/Base/QCLOUDRestNet/DataForm/QCloudHTTPBodyPart.h; sourceTree = ""; }; + 9B829B7FA319A9242900C26A0F8E1617 /* LLTitleViewController.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = LLTitleViewController.m; path = LLDebugTool/Core/Others/CommonUI/ViewController/TitleViewController/LLTitleViewController.m; sourceTree = ""; }; 9B9066D6BD7D677B859780409BC7859A /* TUIMergeMessageListController_Minimalist.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = TUIMergeMessageListController_Minimalist.h; sourceTree = ""; }; + 9BA1F95BC2AE0EAB023475411F2E5D65 /* UIImage+Metadata.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "UIImage+Metadata.m"; path = "SDWebImage/Core/UIImage+Metadata.m"; sourceTree = ""; }; + 9BB3A9AA14AB5DF7B0B2B548200126AE /* QCloudFileLogger.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = QCloudFileLogger.m; path = QCloudCore/Classes/Base/Logger/QCloudFileLogger.m; sourceTree = ""; }; + 9BBD491D1860D0D424311AB4B2AE2CE6 /* UIColor+VAPUtil.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "UIColor+VAPUtil.m"; path = "iOS/QGVAPlayer/QGVAPlayer/Classes/Utils/Categorys/UIColor+VAPUtil.m"; sourceTree = ""; }; 9BCCCD8BC95F5E12FB275A7AAEDEBAB5 /* TUILogin.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = TUILogin.h; sourceTree = ""; }; - 9BF1B77FD6A05F3D8E66686BAC0A9BEF /* NSObject+LL_Runtime.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "NSObject+LL_Runtime.h"; path = "LLDebugTool/Core/Others/Category/NSObject/NSObject+LL_Runtime.h"; sourceTree = ""; }; - 9C1A7138173D077ED980C448E301A54B /* OSSNetworkingRequestDelegate.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = OSSNetworkingRequestDelegate.h; path = AliyunOSSSDK/OSSNetworkingRequestDelegate.h; sourceTree = ""; }; + 9BDB11E404E29F0239331E5574C73B3B /* mz_strm.c */ = {isa = PBXFileReference; includeInIndex = 1; name = mz_strm.c; path = SSZipArchive/minizip/mz_strm.c; sourceTree = ""; }; + 9BE32627DF4D8D823A089C2E192012DD /* OSSSignerParams.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = OSSSignerParams.h; path = AliyunOSSSDK/Signer/OSSSignerParams.h; sourceTree = ""; }; + 9BE9B48D28DCC4DBEE3A82849379B15D /* YBIBAnimatedTransition.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = YBIBAnimatedTransition.m; path = YBImageBrowser/Base/YBIBAnimatedTransition.m; sourceTree = ""; }; + 9BEF732727DBD392AFAA82C773855B0E /* MJRefreshNormalHeader.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = MJRefreshNormalHeader.m; path = MJRefresh/Custom/Header/MJRefreshNormalHeader.m; sourceTree = ""; }; + 9BF1D7415B65F00E54E6FB8A7A71EB1D /* LLTitleCellCategoryModel.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = LLTitleCellCategoryModel.h; path = LLDebugTool/Core/Others/CommonUI/View/TitleCell/LLTitleCellCategoryModel.h; sourceTree = ""; }; + 9C0752E1B9052AFECD101EBEA8C69BB2 /* RACEvent.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = RACEvent.h; path = ReactiveObjC/RACEvent.h; sourceTree = ""; }; + 9C33394F0E7BABD8B82BC1DD20D7DD19 /* alpha_processing_sse2.c */ = {isa = PBXFileReference; includeInIndex = 1; name = alpha_processing_sse2.c; path = src/dsp/alpha_processing_sse2.c; sourceTree = ""; }; 9C40A21F9277D41215D06231CB6FAAB2 /* TUIConversation.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = TUIConversation.h; sourceTree = ""; }; - 9C74F8D8CCF5C22829F1AF0D033688C1 /* QGAnimatedImageDecodeThread.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = QGAnimatedImageDecodeThread.m; path = iOS/QGVAPlayer/QGVAPlayer/Classes/Controllers/QGAnimatedImageDecodeThread.m; sourceTree = ""; }; + 9C5DA95C7B3A846577A39AA8E38A691A /* YBIBVideoCell.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = YBIBVideoCell.h; path = Video/YBIBVideoCell.h; sourceTree = ""; }; + 9C649B3DF8BE9CAD8B695B3552409074 /* LLRulerPickerInfoView.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = LLRulerPickerInfoView.h; path = LLDebugTool/Core/Component/Ruler/UserInterface/LLRulerPickerInfoView.h; sourceTree = ""; }; + 9C683F3F0B9711A79A25F1505D26C793 /* RACEXTRuntimeExtensions.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = RACEXTRuntimeExtensions.h; path = ReactiveObjC/extobjc/RACEXTRuntimeExtensions.h; sourceTree = ""; }; + 9C7F8C86658AAFEEC1836A349FA1BE73 /* LLImageNameConfig.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = LLImageNameConfig.h; path = LLDebugTool/Core/Others/Resource/LLImageNameConfig.h; sourceTree = ""; }; 9C83C193429D5CFAFA375833F8D2FB49 /* TUIBaseMessageController.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = TUIBaseMessageController.m; sourceTree = ""; }; - 9C89FB44434DDB60D130F00D76923E32 /* NSOrderedSet+RACSequenceAdditions.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "NSOrderedSet+RACSequenceAdditions.h"; path = "ReactiveObjC/NSOrderedSet+RACSequenceAdditions.h"; sourceTree = ""; }; - 9CC9638F77E815D0E3B324F718450E25 /* LLWidgetBorderHelper.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = LLWidgetBorderHelper.m; path = LLDebugTool/Core/Component/WidgetBorder/Function/LLWidgetBorderHelper.m; sourceTree = ""; }; 9CCEECAFAEAF62C1D5BA88BA680ABB1D /* TUIMessageBaseMediaDataProvider.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = TUIMessageBaseMediaDataProvider.m; sourceTree = ""; }; - 9CD35131F72D0A0D299DD4A4B1CA1F33 /* YBImageBrowser-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "YBImageBrowser-prefix.pch"; sourceTree = ""; }; - 9CDA7FB8FA8B1B31A6C45BD10037CE18 /* utils.c */ = {isa = PBXFileReference; includeInIndex = 1; name = utils.c; path = src/utils/utils.c; sourceTree = ""; }; - 9CEB99840ACC3ABDB8078496E670623E /* JXCategoryTitleVerticalZoomCell.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = JXCategoryTitleVerticalZoomCell.m; path = Sources/VerticalZoomTitle/JXCategoryTitleVerticalZoomCell.m; sourceTree = ""; }; - 9CED0A800FADE3CC1E40B544A2DB5533 /* MQTTSSLSecurityPolicyTransport.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = MQTTSSLSecurityPolicyTransport.m; path = MQTTClient/MQTTClient/MQTTSSLSecurityPolicyTransport.m; sourceTree = ""; }; - 9D0482EBFF9848823658B081A54CCFFB /* YBIBVideoCell+Internal.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "YBIBVideoCell+Internal.h"; path = "Video/YBIBVideoCell+Internal.h"; sourceTree = ""; }; - 9D41182662BBBB434B21A9611CD2B340 /* TZGifPhotoPreviewController.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = TZGifPhotoPreviewController.m; path = TZImagePickerController/TZImagePickerController/TZGifPhotoPreviewController.m; sourceTree = ""; }; - 9D5D566458D3A05FB13CC8463CDE6C8A /* UIScrollView+MJExtension.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "UIScrollView+MJExtension.h"; path = "MJRefresh/UIScrollView+MJExtension.h"; sourceTree = ""; }; + 9CE8517167832C532F4FDBCA7725C55F /* AvoidCrash.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = AvoidCrash.debug.xcconfig; sourceTree = ""; }; + 9CEAA6D4BE1912D961E2FB7DFE47397B /* QCloudAbstractRequest.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = QCloudAbstractRequest.h; path = QCloudCore/Classes/Base/QCLOUDRestNet/CoreRequest/QCloudAbstractRequest.h; sourceTree = ""; }; + 9CEF4152C34AAF54F6E4F9F8820EA9E9 /* LLHtmlComponent.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = LLHtmlComponent.m; path = LLDebugTool/Core/Component/Html/LLHtmlComponent.m; sourceTree = ""; }; + 9D37D2DBCA6C4594AAF3590760363C05 /* RACCompoundDisposable.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = RACCompoundDisposable.m; path = ReactiveObjC/RACCompoundDisposable.m; sourceTree = ""; }; + 9D4E72E2610B992A55D6BDD182B4D44D /* upsampling_mips_dsp_r2.c */ = {isa = PBXFileReference; includeInIndex = 1; name = upsampling_mips_dsp_r2.c; path = src/dsp/upsampling_mips_dsp_r2.c; sourceTree = ""; }; + 9D60F9452422D2548C79E8680FE1D976 /* NSImage+Compatibility.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "NSImage+Compatibility.h"; path = "SDWebImage/Core/NSImage+Compatibility.h"; sourceTree = ""; }; + 9D8CA32B7B18331200E33A55F2B91C6C /* RACSerialDisposable.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = RACSerialDisposable.m; path = ReactiveObjC/RACSerialDisposable.m; sourceTree = ""; }; 9D940727FF8FB9C785EB98E56350EF41 /* Podfile */ = {isa = PBXFileReference; explicitFileType = text.script.ruby; includeInIndex = 1; indentWidth = 2; lastKnownFileType = text; name = Podfile; path = ../Podfile; sourceTree = SOURCE_ROOT; tabWidth = 2; xcLanguageSpecificationIdentifier = xcode.lang.ruby; }; - 9DA99233A2841983A6D535D521B82607 /* JXPagingView.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = JXPagingView.debug.xcconfig; sourceTree = ""; }; - 9DD029ACDF013F34226A2C42AC5E85E0 /* YYTextContainerView.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = YYTextContainerView.h; path = YYText/Component/YYTextContainerView.h; sourceTree = ""; }; - 9DD333580E90F323B0E9F07F0A06422E /* LLWindowManager+Log.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "LLWindowManager+Log.m"; path = "LLDebugTool/Core/Component/Log/UserInterface/LLWindowManager+Log.m"; sourceTree = ""; }; - 9DDCA8479C21E6C665854AB7A6C26862 /* YYTextLayout.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = YYTextLayout.m; path = YYText/Component/YYTextLayout.m; sourceTree = ""; }; - 9DE1A5F38B0C1802AD102E15D181FDEA /* AgoraLyricsScore-Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "AgoraLyricsScore-Info.plist"; sourceTree = ""; }; - 9DF6396672E6660143CC1E27678A2E81 /* LLWidgetBorderViewController.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = LLWidgetBorderViewController.m; path = LLDebugTool/Core/Component/WidgetBorder/UserInterface/LLWidgetBorderViewController.m; sourceTree = ""; }; - 9DF9B3CD39064831DB259BE3ADDBAF08 /* WKWebView+AFNetworking.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "WKWebView+AFNetworking.h"; path = "UIKit+AFNetworking/WKWebView+AFNetworking.h"; sourceTree = ""; }; - 9E02B257586EA1A9F278235262D83AB3 /* NSThread+YYAdd.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "NSThread+YYAdd.h"; path = "YYCategories/Foundation/NSThread+YYAdd.h"; sourceTree = ""; }; - 9E06878BB745204A0589E88CD7DB1B82 /* QGVAPMetalView.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = QGVAPMetalView.m; path = iOS/QGVAPlayer/QGVAPlayer/Classes/Views/Metal/Vapx/QGVAPMetalView.m; sourceTree = ""; }; - 9E0B9E69E5E8D32287F946186EC52C8D /* yuv_neon.c */ = {isa = PBXFileReference; includeInIndex = 1; name = yuv_neon.c; path = src/dsp/yuv_neon.c; sourceTree = ""; }; - 9E150C7B99DB3BF47EAC81EA8C4408E4 /* SVGAPlayer-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "SVGAPlayer-umbrella.h"; sourceTree = ""; }; - 9E30BFB967304B7C677E3EFC6D830038 /* LLWindowManager+Html.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "LLWindowManager+Html.m"; path = "LLDebugTool/Core/Component/Html/UserInterface/LLWindowManager+Html.m"; sourceTree = ""; }; - 9E549451B6BC8569943B89553A71DD2C /* YBImageBrowser.bundle */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = "wrapper.plug-in"; name = YBImageBrowser.bundle; path = YBImageBrowser/YBImageBrowser.bundle; sourceTree = ""; }; - 9E66D537394401356ED601BF475AC11F /* AgoraRtcEngine_iOS.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = AgoraRtcEngine_iOS.release.xcconfig; sourceTree = ""; }; - 9E71376EDE6C27D72848F85D2A2DDB92 /* IQKeyboardReturnKeyHandler.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = IQKeyboardReturnKeyHandler.m; path = IQKeyboardManager/IQKeyboardReturnKeyHandler.m; sourceTree = ""; }; - 9E7F35BA45AF43CC7983D67E1C395F5A /* LLLocationWindow.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = LLLocationWindow.h; path = LLDebugTool/Core/Component/Location/UserInterface/LLLocationWindow.h; sourceTree = ""; }; - 9EA98A7121979D4F6F445BF0363C017C /* MQTTLog.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = MQTTLog.h; path = MQTTClient/MQTTClient/MQTTLog.h; sourceTree = ""; }; + 9DB164CC791FD30A2834AF58B3810F1C /* Wrappers.pbobjc.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = Wrappers.pbobjc.h; path = objectivec/google/protobuf/Wrappers.pbobjc.h; sourceTree = ""; }; + 9DB965A81E3DB8E6A8A9FFC57FE6553B /* YYMemoryCache.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = YYMemoryCache.h; path = YYCache/YYMemoryCache.h; sourceTree = ""; }; + 9DCB052C837E4C8AA5199500B64FE3A3 /* NSNotificationCenter+YYAdd.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "NSNotificationCenter+YYAdd.h"; path = "YYCategories/Foundation/NSNotificationCenter+YYAdd.h"; sourceTree = ""; }; + 9DCCD661606026D325AC54FE741A7283 /* UIImagePickerController+RACSignalSupport.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "UIImagePickerController+RACSignalSupport.h"; path = "ReactiveObjC/UIImagePickerController+RACSignalSupport.h"; sourceTree = ""; }; + 9E0C10E8175502CA91376FA006DC639B /* QCloudUploadPartRequestRetryHandler.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = QCloudUploadPartRequestRetryHandler.m; path = QCloudCore/Classes/Base/QCLOUDRestNet/Retry/QCloudUploadPartRequestRetryHandler.m; sourceTree = ""; }; + 9E0DEF151A224E891AFBCF25F8953091 /* LLWindowManager+Magnifier.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "LLWindowManager+Magnifier.h"; path = "LLDebugTool/Core/Component/Magnifier/UserInterface/LLWindowManager+Magnifier.h"; sourceTree = ""; }; + 9E2ABBB2D306832705D5F72001B246F6 /* AgoraVideoEncoderExtension.xcframework */ = {isa = PBXFileReference; includeInIndex = 1; path = AgoraVideoEncoderExtension.xcframework; sourceTree = ""; }; + 9E2B890DB980A1C091EC1EC9B0100DA7 /* JXCategoryImageView.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = JXCategoryImageView.h; path = Sources/Image/JXCategoryImageView.h; sourceTree = ""; }; + 9E53987150C1E4B2B7D70F51FD86A5ED /* YBIBGetBaseInfoProtocol.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = YBIBGetBaseInfoProtocol.h; path = YBImageBrowser/Protocol/YBIBGetBaseInfoProtocol.h; sourceTree = ""; }; + 9EA8BFCEB35290D7C7990DBCB1E7DC3F /* YYTextAttribute.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = YYTextAttribute.h; path = YYText/String/YYTextAttribute.h; sourceTree = ""; }; 9EAD5A1BCFAAB8394D7854755A2B1C2A /* TUIInputMoreCellData.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = TUIInputMoreCellData.h; sourceTree = ""; }; - 9EB65665259C35FD5E82D73207BFA369 /* JXPagerView.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = JXPagerView.h; path = Sources/JXPagerView/JXPagerView.h; sourceTree = ""; }; - 9EC0A88C1DAF1CB7ABD533D9188BCF4E /* LLSubTitleTableViewCell.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = LLSubTitleTableViewCell.h; path = LLDebugTool/Core/Others/CommonUI/View/SubTitleTableViewCell/LLSubTitleTableViewCell.h; sourceTree = ""; }; - 9EE454B710D757E4DA03F063278B0227 /* UITextView+RACSignalSupport.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "UITextView+RACSignalSupport.m"; path = "ReactiveObjC/UITextView+RACSignalSupport.m"; sourceTree = ""; }; - 9EF299DDB28BD8FB60548BC6802A3377 /* rescaler_sse2.c */ = {isa = PBXFileReference; includeInIndex = 1; name = rescaler_sse2.c; path = src/dsp/rescaler_sse2.c; sourceTree = ""; }; - 9EF5036A6468EAABCE5351203A09B296 /* RACCommand.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = RACCommand.m; path = ReactiveObjC/RACCommand.m; sourceTree = ""; }; - 9EF9B43E5C6306C31F727D78C525E967 /* NSBezierPath+SDRoundedCorners.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "NSBezierPath+SDRoundedCorners.h"; path = "SDWebImage/Private/NSBezierPath+SDRoundedCorners.h"; sourceTree = ""; }; - 9F2A7C57E0AC18FA56339A30A4FAB05F /* UIImage+Metadata.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "UIImage+Metadata.m"; path = "SDWebImage/Core/UIImage+Metadata.m"; sourceTree = ""; }; - 9F6EEE8C6A98AAA417490D4F34670A58 /* unzip.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = unzip.h; path = Zip/minizip/include/unzip.h; sourceTree = ""; }; - 9F948D425063BD45CB4DC7BC39379CA0 /* PrivacyInfo.xcprivacy */ = {isa = PBXFileReference; includeInIndex = 1; name = PrivacyInfo.xcprivacy; path = IQKeyboardManager/PrivacyInfo.xcprivacy; sourceTree = ""; }; - 9FBCF9CB69F3A025ACCB48B0FF5134A0 /* LLStorageManager.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = LLStorageManager.h; path = LLDebugTool/Core/Storage/LLStorageManager.h; sourceTree = ""; }; - 9FF785B24C04D1820F062A5C2D2C513D /* UIWindow+LL_Utils.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "UIWindow+LL_Utils.h"; path = "LLDebugTool/Core/Others/Category/UIWindow/UIWindow+LL_Utils.h"; sourceTree = ""; }; - 9FFC80C95BD87F390E6A865F48A6D868 /* AFAutoPurgingImageCache.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = AFAutoPurgingImageCache.h; path = "UIKit+AFNetworking/AFAutoPurgingImageCache.h"; sourceTree = ""; }; + 9EC714453B605C0110B12871F200D1F5 /* quant_dec.c */ = {isa = PBXFileReference; includeInIndex = 1; name = quant_dec.c; path = src/dec/quant_dec.c; sourceTree = ""; }; + 9ED05F48EEE0C26B237BA5E6E85377DE /* LLEntryView.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = LLEntryView.h; path = LLDebugTool/Core/Others/CommonUI/Window/EntryWindow/LLEntryView.h; sourceTree = ""; }; + 9EDA984FC606C7786F043FCB36227404 /* AvoidCrash-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "AvoidCrash-umbrella.h"; sourceTree = ""; }; + 9F6E6EA36B24EB7887EAB936CF2A60EA /* LLShortCutViewController.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = LLShortCutViewController.m; path = LLDebugTool/Core/Component/ShortCut/UserInterface/LLShortCutViewController.m; sourceTree = ""; }; + 9F6FF641EABEE4CC560B92FEB7DAFB1D /* BRTextPickerView.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = BRTextPickerView.m; path = BRPickerView/TextPicker/BRTextPickerView.m; sourceTree = ""; }; + 9F7262576B81D9C92A8FF0835DB50A90 /* AvoidCrashStubProxy.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = AvoidCrashStubProxy.h; path = AvoidCrash/AvoidCrashStubProxy.h; sourceTree = ""; }; + 9F7354B06DCC590438EF56843C04923C /* AgoraAiEchoCancellationExtension.xcframework */ = {isa = PBXFileReference; includeInIndex = 1; path = AgoraAiEchoCancellationExtension.xcframework; sourceTree = ""; }; + 9F8058E03C03D62659518316D52A1D0A /* QCloudSupervisoryRecord.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = QCloudSupervisoryRecord.m; path = QCloudCore/Classes/Base/Supervisory/QCloudSupervisoryRecord.m; sourceTree = ""; }; + 9F87C0D5F738CA610152A78F9E775A09 /* QGVAPSafeMutableDictionary.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = QGVAPSafeMutableDictionary.h; path = iOS/QGVAPlayer/QGVAPlayer/Classes/Utils/QGVAPSafeMutableDictionary.h; sourceTree = ""; }; + 9F87D94B1EDF77359432448687D113BC /* QGVAPlayer-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "QGVAPlayer-umbrella.h"; sourceTree = ""; }; + 9F8E1D3AB840A9EAAB2361A28EA6660E /* NSDate+OSS.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "NSDate+OSS.m"; path = "AliyunOSSSDK/NSDate+OSS.m"; sourceTree = ""; }; + 9F963BF7A4A1B55E2C31A73AB013FEA0 /* AFNetworking.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = AFNetworking.h; path = AFNetworking/AFNetworking.h; sourceTree = ""; }; + 9F986A2714B3B701410AC79A28043637 /* huffman_utils.c */ = {isa = PBXFileReference; includeInIndex = 1; name = huffman_utils.c; path = src/utils/huffman_utils.c; sourceTree = ""; }; + 9F9B08AD35EE6AE7E86E91C31D8A0F8B /* YYTextUtilities.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = YYTextUtilities.m; path = YYText/Utility/YYTextUtilities.m; sourceTree = ""; }; + 9F9BBADC5F6AAAEDBB32F6A5FD9876AE /* UIImage+LL_Utils.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "UIImage+LL_Utils.m"; path = "LLDebugTool/Core/Others/Category/UIImage/UIImage+LL_Utils.m"; sourceTree = ""; }; + 9FD3E83627951C9F02E6974ADBF35643 /* QGVAPMetalRenderer.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = QGVAPMetalRenderer.h; path = iOS/QGVAPlayer/QGVAPlayer/Classes/Views/Metal/Vapx/QGVAPMetalRenderer.h; sourceTree = ""; }; + 9FE5CD4036232CDEB1DB2A5E819F05C3 /* RACScheduler.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = RACScheduler.m; path = ReactiveObjC/RACScheduler.m; sourceTree = ""; }; + 9FF110BC6855F39BA27623F8D6056E68 /* OSSNetworkingRequestDelegate.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = OSSNetworkingRequestDelegate.h; path = AliyunOSSSDK/OSSNetworkingRequestDelegate.h; sourceTree = ""; }; + 9FF52FFF0BA5779BEB685AF03ED3B4D8 /* NSObject+RACLifting.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "NSObject+RACLifting.h"; path = "ReactiveObjC/NSObject+RACLifting.h"; sourceTree = ""; }; + A019910B8F5B2BA82472CB9A339DC2BB /* picture_tools_enc.c */ = {isa = PBXFileReference; includeInIndex = 1; name = picture_tools_enc.c; path = src/enc/picture_tools_enc.c; sourceTree = ""; }; + A01F184A36753F1D2B521D2E3A311EFC /* UIImage+MemoryCacheCost.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "UIImage+MemoryCacheCost.h"; path = "SDWebImage/Core/UIImage+MemoryCacheCost.h"; sourceTree = ""; }; + A02006565CA489FA42F8C5D9F109547E /* MKAnnotationView+RACSignalSupport.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "MKAnnotationView+RACSignalSupport.h"; path = "ReactiveObjC/MKAnnotationView+RACSignalSupport.h"; sourceTree = ""; }; + A0447AA6CE095FB16A0251D0A918CFA1 /* enc.c */ = {isa = PBXFileReference; includeInIndex = 1; name = enc.c; path = src/dsp/enc.c; sourceTree = ""; }; A045214BD85EE2AE5F384C3A0A4A8F28 /* TUIVideoMessageCell.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = TUIVideoMessageCell.h; sourceTree = ""; }; - A04D1E2D5C9D88AE64149598D9C7E62D /* NSData+ImageContentType.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "NSData+ImageContentType.m"; path = "SDWebImage/Core/NSData+ImageContentType.m"; sourceTree = ""; }; - A06DB1DD84E7A1B2E3AF590362B966AB /* MJRefreshAutoGifFooter.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = MJRefreshAutoGifFooter.m; path = MJRefresh/Custom/Footer/Auto/MJRefreshAutoGifFooter.m; sourceTree = ""; }; - A076CF92053F682040A05FF0E4739D0E /* SVGAPlayer-Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "SVGAPlayer-Info.plist"; sourceTree = ""; }; + A054FBD9092C16401FFBD55D55C8AF62 /* SDAnimatedImageView.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDAnimatedImageView.h; path = SDWebImage/Core/SDAnimatedImageView.h; sourceTree = ""; }; + A06743D5607121BF0B96A932A6EA7363 /* PrivacyInfo.xcprivacy */ = {isa = PBXFileReference; includeInIndex = 1; name = PrivacyInfo.xcprivacy; path = IQKeyboardManager/PrivacyInfo.xcprivacy; sourceTree = ""; }; + A06F429023166DF8CFD2725B77474946 /* ScoringMachineProtocol.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ScoringMachineProtocol.swift; path = AgoraLyricsScore/Class/Scoring/ScoringMachineProtocol.swift; sourceTree = ""; }; A0780CF9FA1ABB80BD6FA35F0F83E5C0 /* TUIConversation.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.module; path = TUIConversation.modulemap; sourceTree = ""; }; - A08F8B16492370DB9F28EB5099110A4E /* NSInputStream+LL_Network.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "NSInputStream+LL_Network.m"; path = "LLDebugTool/Core/Component/Network/Function/NSInputStream/NSInputStream+LL_Network.m"; sourceTree = ""; }; - A0B57D07E7AB462B22BDA1116D07A080 /* MBProgressHUD.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = MBProgressHUD.release.xcconfig; sourceTree = ""; }; - A0C0E0E71BC898B01785194BFAB0C194 /* OSSDeleteObjectTaggingRequest.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = OSSDeleteObjectTaggingRequest.m; path = AliyunOSSSDK/OSSDeleteObjectTaggingRequest.m; sourceTree = ""; }; + A09107184EC47CEA2A18869EC7EBE627 /* LLProxy.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = LLProxy.h; path = LLDebugTool/Core/Others/Proxy/LLProxy.h; sourceTree = ""; }; + A09CEF93EFE09A15795678E4628EC96C /* TZImagePickerController.bundle */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = "wrapper.plug-in"; name = TZImagePickerController.bundle; path = TZImagePickerController/TZImagePickerController/TZImagePickerController.bundle; sourceTree = ""; }; + A0A6BF44469A53B30A9D29E8B75563F0 /* QCloudGCDTimer.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = QCloudGCDTimer.h; path = QCloudCore/Classes/Base/QCloudGCDTimer.h; sourceTree = ""; }; + A0A728336F6246D24DED8C58925854E5 /* MQTTMessage.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = MQTTMessage.m; path = MQTTClient/MQTTClient/MQTTMessage.m; sourceTree = ""; }; A0CCB28EE0520D9714B91ADFEFCC87A3 /* AVFoundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AVFoundation.framework; path = Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS18.0.sdk/System/Library/Frameworks/AVFoundation.framework; sourceTree = DEVELOPER_DIR; }; - A0EC51D009F30AA4859B94683989F031 /* LLMagnifierWindow.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = LLMagnifierWindow.h; path = LLDebugTool/Core/Component/Magnifier/UserInterface/LLMagnifierWindow.h; sourceTree = ""; }; - A0F68CEDC6273EF848D9C09B257C6262 /* GPBDescriptor.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = GPBDescriptor.h; path = objectivec/GPBDescriptor.h; sourceTree = ""; }; - A12049159656D8053BC45EBAF14A5092 /* UIStepper+RACSignalSupport.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "UIStepper+RACSignalSupport.m"; path = "ReactiveObjC/UIStepper+RACSignalSupport.m"; sourceTree = ""; }; - A12FD923FF1E9906937EB9FA94FC7708 /* QGVAPlayer.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = QGVAPlayer.release.xcconfig; sourceTree = ""; }; + A0D0E32105DD24D18513B8162EA18D47 /* MQTTClient.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = MQTTClient.h; path = MQTTClient/MQTTClient/MQTTClient.h; sourceTree = ""; }; + A0EDD0BB750ACB2E6BA0ECBDEBBCEF9C /* LLWindowManager+ShortCut.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "LLWindowManager+ShortCut.h"; path = "LLDebugTool/Core/Component/ShortCut/UserInterface/LLWindowManager+ShortCut.h"; sourceTree = ""; }; + A0EDE7E40198B2C8562587370C2E6A0F /* UIScreen+YYAdd.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "UIScreen+YYAdd.m"; path = "YYCategories/UIKit/UIScreen+YYAdd.m"; sourceTree = ""; }; + A0FB4D55F858D76463B34428D6E124A5 /* TZVideoEditedPreviewController.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = TZVideoEditedPreviewController.m; path = TZImagePickerController/TZImagePickerController/TZVideoEditedPreviewController.m; sourceTree = ""; }; + A1159FCDCF090CD964DB7D1980C51BC1 /* AgoraInfra_iOS.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = AgoraInfra_iOS.release.xcconfig; sourceTree = ""; }; + A122991B8CCF83B3BC9837E9B9333696 /* LLNavigationController.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = LLNavigationController.m; path = LLDebugTool/Core/Others/CommonUI/ViewController/NavigationController/LLNavigationController.m; sourceTree = ""; }; + A134B62F97284007A18D1FEA61377950 /* sharpyuv_sse2.c */ = {isa = PBXFileReference; includeInIndex = 1; name = sharpyuv_sse2.c; path = sharpyuv/sharpyuv_sse2.c; sourceTree = ""; }; + A152F29126ECD353288CB6D7282596B1 /* NSArray+YYAdd.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "NSArray+YYAdd.h"; path = "YYCategories/Foundation/NSArray+YYAdd.h"; sourceTree = ""; }; A16C101E68E8852784429648C2CCACE5 /* TUIConversation.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = TUIConversation.debug.xcconfig; sourceTree = ""; }; + A16D3E962028F954BA527E95B4340C14 /* QCloudCore.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = QCloudCore.release.xcconfig; sourceTree = ""; }; A17158C33086A84D53428C9242A1CB4F /* TUIMergeReplyQuoteView.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = TUIMergeReplyQuoteView.m; sourceTree = ""; }; - A19178061F1FBDC75171A65E0BDC5651 /* NSObject+LL_Runtime.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "NSObject+LL_Runtime.m"; path = "LLDebugTool/Core/Others/Category/NSObject/NSObject+LL_Runtime.m"; sourceTree = ""; }; - A19D671115C14C28BDBD8FA35EA47272 /* LLNetworkHelper.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = LLNetworkHelper.m; path = LLDebugTool/Core/Component/Network/Function/LLNetworkHelper.m; sourceTree = ""; }; - A1C09BEC61EAAD16FE430967BD85B0BF /* UITableView+YYAdd.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "UITableView+YYAdd.m"; path = "YYCategories/UIKit/UITableView+YYAdd.m"; sourceTree = ""; }; - A1EEAC3A4312A6FE9A305BE184EDCFA3 /* RACDisposable.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = RACDisposable.h; path = ReactiveObjC/RACDisposable.h; sourceTree = ""; }; + A1745B555BE6350271185A52CE4044A3 /* JXCategoryDotView.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = JXCategoryDotView.h; path = Sources/Dot/JXCategoryDotView.h; sourceTree = ""; }; + A1E851B842C5436A7C425A28F5EAFF08 /* JXPagerSmoothView.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = JXPagerSmoothView.h; path = Sources/JXPagerView/JXPagerSmoothView.h; sourceTree = ""; }; + A1FF9203E1CA53CFB391D1B29B255EFB /* enc_mips32.c */ = {isa = PBXFileReference; includeInIndex = 1; name = enc_mips32.c; path = src/dsp/enc_mips32.c; sourceTree = ""; }; A200D818BDB69B5F0D77D66B2DE78A3D /* TUIChatConversationModel.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = TUIChatConversationModel.m; sourceTree = ""; }; - A202F514979CFFF9B4E8AB0B372DA181 /* LLConfigHelper.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = LLConfigHelper.h; path = LLDebugTool/Core/Others/ConfigHelper/LLConfigHelper.h; sourceTree = ""; }; + A205DF285961A683BDABB3F026EAF070 /* NSDate+OSS.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "NSDate+OSS.h"; path = "AliyunOSSSDK/NSDate+OSS.h"; sourceTree = ""; }; A2132E283E7D89450410121B094665E9 /* TUIVideoMessageCellData.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = TUIVideoMessageCellData.m; sourceTree = ""; }; + A222B75963C60FEC3AF799F8D98BD2D9 /* LLScreenshotDefine.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = LLScreenshotDefine.h; path = LLDebugTool/Core/Component/Screenshot/UserInterface/LLScreenshotDefine.h; sourceTree = ""; }; + A24548632BAE4EFF8D93A1EA64260F95 /* AgoraVideoAv1EncoderExtension.xcframework */ = {isa = PBXFileReference; includeInIndex = 1; path = AgoraVideoAv1EncoderExtension.xcframework; sourceTree = ""; }; A248B0B63FE3C36C7D89728F70094517 /* TUITextReplyQuoteView.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = TUITextReplyQuoteView.m; sourceTree = ""; }; A24C304F34D875AF9D30B224E8149319 /* TUIMemberCellData.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = TUIMemberCellData.m; sourceTree = ""; }; - A25CBD3B81EE4193B886C64BB99F4E21 /* TADotView.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = TADotView.h; path = SDCycleScrollView/Lib/SDCycleScrollView/PageControl/TADotView.h; sourceTree = ""; }; - A261E9C17E72EC1BE633196C4C30381A /* UIDevice+YYAdd.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "UIDevice+YYAdd.m"; path = "YYCategories/UIKit/UIDevice+YYAdd.m"; sourceTree = ""; }; - A263E84B5986F0B3C802912C58328C7F /* JXCategoryTitleCell.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = JXCategoryTitleCell.m; path = Sources/Title/JXCategoryTitleCell.m; sourceTree = ""; }; - A2718CA949BAF9593150667E3EE82BB9 /* LLHtmlWkWebViewController.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = LLHtmlWkWebViewController.h; path = LLDebugTool/Core/Component/Html/UserInterface/LLHtmlWkWebViewController.h; sourceTree = ""; }; + A27A3CAB9C1D0CA09627DD6030B9C533 /* FMDatabaseAdditions.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FMDatabaseAdditions.h; path = src/fmdb/FMDatabaseAdditions.h; sourceTree = ""; }; A2A32A9E5B43946A10FB76032D4670C7 /* TUIGroupNoticeDataProvider.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = TUIGroupNoticeDataProvider.m; sourceTree = ""; }; - A2A57CECB4A3CAE50819DD12A98FCC5A /* RACCommand.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = RACCommand.h; path = ReactiveObjC/RACCommand.h; sourceTree = ""; }; + A2C09D9CCFD530FB976ADE84BD0A52F8 /* OSSDeleteMultipleObjectsResult.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = OSSDeleteMultipleObjectsResult.m; path = AliyunOSSSDK/OSSDeleteMultipleObjectsResult.m; sourceTree = ""; }; + A2E49E0E30F0374D1869A7E0FEDE0B18 /* JXCategoryDotCellModel.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = JXCategoryDotCellModel.m; path = Sources/Dot/JXCategoryDotCellModel.m; sourceTree = ""; }; + A2E65E43EB3AC7EF8A3382697C2A0123 /* AlipaySDK.bundle */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = "wrapper.plug-in"; path = AlipaySDK.bundle; sourceTree = ""; }; + A303F5DD2B26CE2527CE68451DDFB716 /* ScoreAlgorithm.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ScoreAlgorithm.swift; path = AgoraLyricsScore/Class/Scoring/Other/ScoreAlgorithm.swift; sourceTree = ""; }; + A30BE8E0405F71F65B389795E68A00B1 /* QCloudUploadPartRequest.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = QCloudUploadPartRequest.h; path = QCloudCOSXML/Classes/Transfer/request/QCloudUploadPartRequest.h; sourceTree = ""; }; + A30C065247D0D713F216F91EB2CCE0A1 /* TZImagePickerController-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "TZImagePickerController-dummy.m"; sourceTree = ""; }; A31374D55373DC917D8C7C28A12DBF55 /* TUIMergeMessageCell.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = TUIMergeMessageCell.h; sourceTree = ""; }; + A31C43698997610ED8F05DEC34A4492D /* QCloudCOSXMLEndPoint.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = QCloudCOSXMLEndPoint.m; path = QCloudCOSXML/Classes/Base/QCloudCOSXMLEndPoint.m; sourceTree = ""; }; + A326A8817A27E8B1B6A3F303113D0899 /* TZImageCropManager.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = TZImageCropManager.h; path = TZImagePickerController/TZImagePickerController/TZImageCropManager.h; sourceTree = ""; }; + A32F7DA914A2405DF5F8EF4B2A957B41 /* RACSignalSequence.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = RACSignalSequence.h; path = ReactiveObjC/RACSignalSequence.h; sourceTree = ""; }; A339BF835AD0BAF9904201794462DED7 /* TUIChat.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = TUIChat.h; sourceTree = ""; }; - A3568A55FDE1DB9E52DFED4A1F9580A7 /* MQTTSessionLegacy.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = MQTTSessionLegacy.h; path = MQTTClient/MQTTClient/MQTTSessionLegacy.h; sourceTree = ""; }; - A35BD9C8F4D97D0C81E727EADD3E0184 /* RACArraySequence.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = RACArraySequence.m; path = ReactiveObjC/RACArraySequence.m; sourceTree = ""; }; - A36328E824823110688B0E258456BBC6 /* LLNetworkDetailViewController.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = LLNetworkDetailViewController.h; path = LLDebugTool/Core/Component/Network/UserInterface/LLNetworkDetailViewController.h; sourceTree = ""; }; - A365826A5D90A98FA92B2F6DBB75E7B6 /* ImSDK_Plus.xcframework */ = {isa = PBXFileReference; includeInIndex = 1; path = ImSDK_Plus.xcframework; sourceTree = ""; }; + A3420642FD3958E6BD891717F991A593 /* UIImageView+YYWebImage.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "UIImageView+YYWebImage.m"; path = "YYWebImage/Categories/UIImageView+YYWebImage.m"; sourceTree = ""; }; + A34EEE4E7CD8FE8A71C0428F1EC3EFB8 /* SDGraphicsImageRenderer.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDGraphicsImageRenderer.h; path = SDWebImage/Core/SDGraphicsImageRenderer.h; sourceTree = ""; }; + A361FF5A23C7458E7F0C160ADC16FBD9 /* LLDetailTitleSelectorCell.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = LLDetailTitleSelectorCell.m; path = LLDebugTool/Core/Others/CommonUI/View/TitleCell/LLDetailTitleSelectorCell.m; sourceTree = ""; }; + A368A614DFEF0A54AD867879AAA5E953 /* LLFilterLabelCell.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = LLFilterLabelCell.h; path = LLDebugTool/Core/Others/CommonUI/View/FilterView/LLFilterLabelCell.h; sourceTree = ""; }; + A3760168DD553F63C1B028117FACCA40 /* OSSHttpdns.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = OSSHttpdns.h; path = AliyunOSSSDK/OSSHttpdns.h; sourceTree = ""; }; + A37B614CF84CCD73E5801E821D21B28F /* YBIBToolViewHandler.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = YBIBToolViewHandler.h; path = YBImageBrowser/ToolView/YBIBToolViewHandler.h; sourceTree = ""; }; A3951CB49DB05AD7C1AE14AA7D28A1F4 /* LLDebugTool */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; name = LLDebugTool; path = LLDebugTool.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - A39A8A54ACDD282E45350F5819AF26CA /* LLShortCutComponent.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = LLShortCutComponent.m; path = LLDebugTool/Core/Component/ShortCut/LLShortCutComponent.m; sourceTree = ""; }; - A3A5460DC1784C79D84C105DC7872440 /* QGHWDMP4OpenGLView.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = QGHWDMP4OpenGLView.h; path = iOS/QGVAPlayer/QGVAPlayer/Classes/Views/OpenGL/QGHWDMP4OpenGLView.h; sourceTree = ""; }; + A39978EF7D591558C823F1C0FE10007F /* QCloudUICKeyChainStore.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = QCloudUICKeyChainStore.m; path = QCloudCore/Classes/Base/QCloudClientBase/Authentation/QCloudUICKeyChainStore.m; sourceTree = ""; }; + A3A33854C22C9DED462D690FC5D83E78 /* JXCategoryView.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = JXCategoryView.h; path = Sources/JXCategoryView.h; sourceTree = ""; }; A3A80BA70CFB7F75C5391BEBBBA8C9DA /* FMDB */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; name = FMDB; path = FMDB.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - A3D2308349C7FAA2DB91A10C02DCF9FB /* AliyunOSSiOS-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "AliyunOSSiOS-prefix.pch"; sourceTree = ""; }; - A3EE4EE23D2E89B7801CD28730E52CB4 /* Masonry-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "Masonry-prefix.pch"; sourceTree = ""; }; - A42838A9BEDA6FBBBB4626600DE52FCC /* LLFilterTextFieldCell.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = LLFilterTextFieldCell.m; path = LLDebugTool/Core/Others/CommonUI/View/FilterView/LLFilterTextFieldCell.m; sourceTree = ""; }; + A3AE0BCA7468C1DE252BB5E2104CBA32 /* MKAnnotationView+YYWebImage.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "MKAnnotationView+YYWebImage.h"; path = "YYWebImage/Categories/MKAnnotationView+YYWebImage.h"; sourceTree = ""; }; + A3B1345579B77EC14E3A5F3B4E84A4AA /* YBIBWebImageMediator.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = YBIBWebImageMediator.h; path = YBImageBrowser/WebImageMediator/YBIBWebImageMediator.h; sourceTree = ""; }; + A3D03B1399AC3BE7304423BFD9C56A30 /* BRAddressPickerView.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = BRAddressPickerView.m; path = BRPickerView/Deprecated/AddressPickerView/BRAddressPickerView.m; sourceTree = ""; }; + A3DC28FF7BCE17C84E078D7B0B24E628 /* OSSFileLogger.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = OSSFileLogger.m; path = AliyunOSSSDK/OSSFileLog/OSSFileLogger.m; sourceTree = ""; }; + A41A5AA1AD11BD944B85AC3E47517917 /* JXCategoryView.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = JXCategoryView.release.xcconfig; sourceTree = ""; }; A42A1CA22BD05C7F9BBAF079E7453AB0 /* TUICore.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = TUICore.release.xcconfig; sourceTree = ""; }; - A42E4D98A5BAE1FB383572F9C77FEB43 /* SVGAImageView.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SVGAImageView.m; path = Source/SVGAImageView.m; sourceTree = ""; }; - A42EAD9878765593A296A972FEEC1C8B /* SDCycleScrollView-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "SDCycleScrollView-dummy.m"; sourceTree = ""; }; - A43532F44BCC462AD8BFFA06345EBF96 /* LLTableViewSelectableDelegate.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = LLTableViewSelectableDelegate.h; path = LLDebugTool/Core/Others/CommonUI/Model/LLTableViewSelectableModel/LLTableViewSelectableDelegate.h; sourceTree = ""; }; - A43B8E8CEA964FCB6B496724A7B22DDC /* PrivacyInfo.xcprivacy */ = {isa = PBXFileReference; includeInIndex = 1; name = PrivacyInfo.xcprivacy; path = WebImage/PrivacyInfo.xcprivacy; sourceTree = ""; }; - A465D583CB77E8C6FC9F9C534E756EF9 /* TIMPush.xcframework */ = {isa = PBXFileReference; includeInIndex = 1; path = TIMPush.xcframework; sourceTree = ""; }; - A47125A5FE0EFA36BB730F3E2431DBBA /* Agorafdkaac.xcframework */ = {isa = PBXFileReference; includeInIndex = 1; path = Agorafdkaac.xcframework; sourceTree = ""; }; - A481BD1A25570E9A260F3C4695AA265E /* JXCategoryTitleCellModel.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = JXCategoryTitleCellModel.h; path = Sources/Title/JXCategoryTitleCellModel.h; sourceTree = ""; }; - A4C45C623F73AE83F13B0AA7910263B2 /* IQTextView.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = IQTextView.m; path = IQKeyboardManager/IQTextView/IQTextView.m; sourceTree = ""; }; - A4DFCF7FE09ABB20B39A07DB8F4FEF55 /* JXCategoryDotCell.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = JXCategoryDotCell.h; path = Sources/Dot/JXCategoryDotCell.h; sourceTree = ""; }; - A4EA5444D3E95AE512B1D488D4C6AA0D /* Masonry-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "Masonry-umbrella.h"; sourceTree = ""; }; + A42C1E5895862D601588313E8542EBAF /* LLEntryBallView.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = LLEntryBallView.h; path = LLDebugTool/Core/Others/CommonUI/Window/EntryWindow/LLEntryBallView.h; sourceTree = ""; }; + A43FC8D677FBFD53EFF8F43679E524BE /* JXCategoryNumberView.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = JXCategoryNumberView.h; path = Sources/Number/JXCategoryNumberView.h; sourceTree = ""; }; + A465273CA4937B252DFCEF9FE85DA721 /* LLRulerPickerInfoView.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = LLRulerPickerInfoView.m; path = LLDebugTool/Core/Component/Ruler/UserInterface/LLRulerPickerInfoView.m; sourceTree = ""; }; + A470008A38B5DFD5F7A75E35F2C2D778 /* SDmetamacros.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDmetamacros.h; path = SDWebImageWebPCoder/Private/SDmetamacros.h; sourceTree = ""; }; + A4A91C3F5D41EC11FEFE6B4BCE280F3D /* YYTextEffectWindow.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = YYTextEffectWindow.h; path = YYText/Component/YYTextEffectWindow.h; sourceTree = ""; }; + A4C9591D960245AAEDA6C83E81505668 /* MJRefreshStateTrailer.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = MJRefreshStateTrailer.h; path = MJRefresh/Custom/Trailer/MJRefreshStateTrailer.h; sourceTree = ""; }; + A4E3954F0EE219E2B68B85F4B5B72235 /* LLFilterTextFieldCell.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = LLFilterTextFieldCell.m; path = LLDebugTool/Core/Others/CommonUI/View/FilterView/LLFilterTextFieldCell.m; sourceTree = ""; }; A4FA15D44DF6BAC7550EDEED10862AA3 /* AFNetworking */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; name = AFNetworking; path = AFNetworking.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - A51301AD2DEA724DC4FFBA2A074839E2 /* LLLogWindow.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = LLLogWindow.h; path = LLDebugTool/Core/Component/Log/UserInterface/LLLogWindow.h; sourceTree = ""; }; - A52CCAB689ADC905DACC0724B977C78B /* LLEntryView.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = LLEntryView.m; path = LLDebugTool/Core/Others/CommonUI/Window/EntryWindow/LLEntryView.m; sourceTree = ""; }; - A5428420D1649D6B7387154BC64BD61F /* LLThemeColor.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = LLThemeColor.m; path = LLDebugTool/Core/Others/Manager/ThemeManager/LLThemeColor.m; sourceTree = ""; }; - A55A010C06799C1DE66455D5F2525664 /* LLAnnotation.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = LLAnnotation.m; path = LLDebugTool/Core/Component/Location/UserInterface/LLAnnotation.m; sourceTree = ""; }; - A5605D39F81419C8807BA8D96CB91D39 /* alpha_processing_mips_dsp_r2.c */ = {isa = PBXFileReference; includeInIndex = 1; name = alpha_processing_mips_dsp_r2.c; path = src/dsp/alpha_processing_mips_dsp_r2.c; sourceTree = ""; }; - A566682050AA734A99A672489B819EEF /* lossless_enc_sse41.c */ = {isa = PBXFileReference; includeInIndex = 1; name = lossless_enc_sse41.c; path = src/dsp/lossless_enc_sse41.c; sourceTree = ""; }; - A569D8D56FD281F402E5E38A1B5CCED4 /* ResourceBundle-MJRefresh.Privacy-MJRefresh-Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "ResourceBundle-MJRefresh.Privacy-MJRefresh-Info.plist"; sourceTree = ""; }; - A57A219EA4983CF7FCA736AF8CA139B9 /* LLSandboxHtmlPreviewController.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = LLSandboxHtmlPreviewController.h; path = LLDebugTool/Core/Component/Sandbox/UserInterface/LLSandboxHtmlPreviewController.h; sourceTree = ""; }; - A58CE48F937F5AC1F3F9D765806B835B /* TZAuthLimitedFooterTipView.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = TZAuthLimitedFooterTipView.h; path = TZImagePickerController/TZImagePickerController/TZAuthLimitedFooterTipView.h; sourceTree = ""; }; + A506CAE9E5DBB528A3DF2AC9A078EA8A /* SDImageCoderHelper.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDImageCoderHelper.m; path = SDWebImage/Core/SDImageCoderHelper.m; sourceTree = ""; }; + A514397B4D917730AB6D898D6305E2A9 /* SDImageLoader.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDImageLoader.m; path = SDWebImage/Core/SDImageLoader.m; sourceTree = ""; }; + A519F1F393FB879673BD511BC859018E /* UIProgressView+AFNetworking.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "UIProgressView+AFNetworking.m"; path = "UIKit+AFNetworking/UIProgressView+AFNetworking.m"; sourceTree = ""; }; + A526B70077C822C241012C9A03910FD9 /* LLRulerPickerView.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = LLRulerPickerView.m; path = LLDebugTool/Core/Component/Ruler/UserInterface/LLRulerPickerView.m; sourceTree = ""; }; + A5387796E0AB3060099C77C202AFD119 /* RACChannel.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = RACChannel.m; path = ReactiveObjC/RACChannel.m; sourceTree = ""; }; + A53DF9C950F0AD538A15FCFEAC3A99CC /* QCloudHTTPRequest.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = QCloudHTTPRequest.m; path = QCloudCore/Classes/Base/QCLOUDRestNet/CoreRequest/QCloudHTTPRequest.m; sourceTree = ""; }; + A565896E9ADE92E95BFA3D78C3448E59 /* MJRefreshStateHeader.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = MJRefreshStateHeader.h; path = MJRefresh/Custom/Header/MJRefreshStateHeader.h; sourceTree = ""; }; + A573B609D6C8B39620770CD5BA15CD68 /* RACTupleSequence.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = RACTupleSequence.h; path = ReactiveObjC/RACTupleSequence.h; sourceTree = ""; }; A59F6537B1B9F23ED5E809B231C52402 /* TUICoreTheme.bundle */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = "wrapper.plug-in"; name = TUICoreTheme.bundle; path = Resources/TUICoreTheme.bundle; sourceTree = ""; }; - A5A9D8693E9A5C2D37A5FAE77FFE77AC /* LLPinAnnotationView.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = LLPinAnnotationView.h; path = LLDebugTool/Core/Component/Location/UserInterface/LLPinAnnotationView.h; sourceTree = ""; }; + A5A4DEA77CFABE5F22D7697BEB044ABD /* QCloudFileUtils.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = QCloudFileUtils.h; path = QCloudCore/Classes/Base/QCLOUDFileUtils/QCloudFileUtils.h; sourceTree = ""; }; A5B2838E4866923F3DA717B058EBFF5D /* IQKeyboardManager-IQKeyboardManager */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; name = "IQKeyboardManager-IQKeyboardManager"; path = IQKeyboardManager.bundle; sourceTree = BUILT_PRODUCTS_DIR; }; A5B624A70D4735B79D27A4C5B4DA64AA /* ImageIO.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = ImageIO.framework; path = Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS18.0.sdk/System/Library/Frameworks/ImageIO.framework; sourceTree = DEVELOPER_DIR; }; - A5CAB58598954B709EB1F0AB68D95D4F /* RACTargetQueueScheduler.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = RACTargetQueueScheduler.m; path = ReactiveObjC/RACTargetQueueScheduler.m; sourceTree = ""; }; + A5C1F238A245A9334B922ADF86C25F01 /* NSUserDefaults+LL_Utils.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "NSUserDefaults+LL_Utils.h"; path = "LLDebugTool/Core/Others/Category/NSUserDefaults/NSUserDefaults+LL_Utils.h"; sourceTree = ""; }; + A5D179DB9964E71DC78558EB224BD05A /* libwebp.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = libwebp.release.xcconfig; sourceTree = ""; }; A5E24F5FA1F54B91337C6669D431BE22 /* TUIOrderCell_Minimalist.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = TUIOrderCell_Minimalist.h; sourceTree = ""; }; A60BDF0C0F1602B5F949B8C1FE96F063 /* TUIChatSmallTongueView_Minimalist.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = TUIChatSmallTongueView_Minimalist.h; sourceTree = ""; }; - A62F23D66B98220D5EE5A8B00732CE04 /* LLFilterFilePickerView.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = LLFilterFilePickerView.h; path = LLDebugTool/Core/Others/CommonUI/View/FilterView/LLFilterFilePickerView.h; sourceTree = ""; }; + A613244EA3F30D41E7F6A2B3E0C11771 /* LLHierarchyComponent.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = LLHierarchyComponent.h; path = LLDebugTool/Core/Component/Hierarchy/LLHierarchyComponent.h; sourceTree = ""; }; A645E24534632E87180C3CCA874F4617 /* TUIReplyQuoteView.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = TUIReplyQuoteView.h; sourceTree = ""; }; + A64EDAA8F27518DD9BCA69758028DA0F /* YBImageBrowser-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "YBImageBrowser-prefix.pch"; sourceTree = ""; }; A65023E4C16DC6F042A72C8068D3FD39 /* TUIMessageProgressManager.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = TUIMessageProgressManager.h; sourceTree = ""; }; + A65514043646900CD20F454DBA2106F8 /* QCloudFileZipper.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = QCloudFileZipper.m; path = QCloudCore/Classes/Base/Logger/QCloudFileZipper.m; sourceTree = ""; }; + A65B3699136AF380E291273EA83F2FFF /* LyricMachine.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = LyricMachine.swift; path = AgoraLyricsScore/Class/Lyrics/LyricMachine.swift; sourceTree = ""; }; + A67700BDBA30F4B4EDBC894DFE79DF75 /* YYImageCache.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = YYImageCache.m; path = YYWebImage/YYImageCache.m; sourceTree = ""; }; A67A5C6CBAB5BF67506C7A70F12AB11A /* QuickLook.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = QuickLook.framework; path = Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS18.0.sdk/System/Library/Frameworks/QuickLook.framework; sourceTree = DEVELOPER_DIR; }; - A687BED20C7D536316FC3A7D7D95ADA9 /* NSObject+LL_Hierarchy.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "NSObject+LL_Hierarchy.h"; path = "LLDebugTool/Core/Component/Hierarchy/Function/NSObject+LL_Hierarchy.h"; sourceTree = ""; }; - A689CF5BB1A3E202DA9F662500A2D835 /* OSSRestoreObjectResult.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = OSSRestoreObjectResult.h; path = AliyunOSSSDK/OSSRestoreObjectResult.h; sourceTree = ""; }; - A68CC5ACD892CAC87CF38B0281EF34EC /* QGVAPLogger.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = QGVAPLogger.m; path = iOS/QGVAPlayer/QGVAPlayer/Classes/Utils/Logger/QGVAPLogger.m; sourceTree = ""; }; - A695D29421A8623ECA662FFD93DBE110 /* LLWidgetBorderComponent.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = LLWidgetBorderComponent.h; path = LLDebugTool/Core/Component/WidgetBorder/LLWidgetBorderComponent.h; sourceTree = ""; }; + A686FC9E4DA1F24044F0F824DCA06B52 /* QCloudMediaPath.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = QCloudMediaPath.h; path = QCloudCore/Classes/Base/PathUtilities/QCloudMediaPath.h; sourceTree = ""; }; A6BC76762F8D52042C42AB6BF970FEED /* MapKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = MapKit.framework; path = Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS18.0.sdk/System/Library/Frameworks/MapKit.framework; sourceTree = DEVELOPER_DIR; }; - A6EDC19BB012FC94BC757E0EC9BF814E /* NSArray+YYAdd.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "NSArray+YYAdd.h"; path = "YYCategories/Foundation/NSArray+YYAdd.h"; sourceTree = ""; }; - A6F53221B473FF9F89CB2EACD5739FBA /* NSData+LL_Network.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "NSData+LL_Network.h"; path = "LLDebugTool/Core/Component/Network/Function/NSData/NSData+LL_Network.h"; sourceTree = ""; }; - A708425D347458CF69857FE1EB5E2BD9 /* JXPagingView-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "JXPagingView-prefix.pch"; sourceTree = ""; }; + A70F28517908A48847FB806248FF0034 /* LLDebugTool.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.module; path = LLDebugTool.modulemap; sourceTree = ""; }; A72FACE9B3363185CE164C51632BCC33 /* TUIOrderCell_Minimalist.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = TUIOrderCell_Minimalist.m; sourceTree = ""; }; - A75B31477B530C0EC92AA906C2B88C48 /* TZImagePickerController.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = TZImagePickerController.h; path = TZImagePickerController/TZImagePickerController/TZImagePickerController.h; sourceTree = ""; }; - A75BC77EB31709CB1D41E98777E3EF6B /* GPBBootstrap.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = GPBBootstrap.h; path = objectivec/GPBBootstrap.h; sourceTree = ""; }; - A789F7B252C2751219AF125891CC7B53 /* NSObject+AvoidCrash.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "NSObject+AvoidCrash.h"; path = "AvoidCrash/NSObject+AvoidCrash.h"; sourceTree = ""; }; - A789FD065E81CDA5E54F90FF7CFFC2BC /* Zip.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.module; path = Zip.modulemap; sourceTree = ""; }; - A794908A7EF7D7D028D22800C0AE4E01 /* LLMoveWindow.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = LLMoveWindow.h; path = LLDebugTool/Core/Others/CommonUI/View/MoveWindow/LLMoveWindow.h; sourceTree = ""; }; - A7BA3A3BE4417E4AC569EE4594B56890 /* Svga.pbobjc.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = Svga.pbobjc.h; path = Source/pbobjc/Svga.pbobjc.h; sourceTree = ""; }; - A7E4A02481BBD00FF58497A5B71A70AE /* LLFilterLabelCell.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = LLFilterLabelCell.h; path = LLDebugTool/Core/Others/CommonUI/View/FilterView/LLFilterLabelCell.h; sourceTree = ""; }; - A7EF03C1C38B5DAA7907D6512336BF89 /* GPBCodedOutputStream.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = GPBCodedOutputStream.h; path = objectivec/GPBCodedOutputStream.h; sourceTree = ""; }; + A7419C5AE8251BEFC0F64A5B6585B79A /* FMDB-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "FMDB-dummy.m"; sourceTree = ""; }; + A7578387B59E97B28BF7094AD41541A8 /* AgoraRtcEngine_iOS.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = AgoraRtcEngine_iOS.release.xcconfig; sourceTree = ""; }; + A76638BBDB3A90170090F0B04BEB7752 /* MJRefreshHeader.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = MJRefreshHeader.h; path = MJRefresh/Base/MJRefreshHeader.h; sourceTree = ""; }; + A76F6366ED4DA4215F3553B65CBCEF59 /* AFNetworking.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = AFNetworking.debug.xcconfig; sourceTree = ""; }; + A77EB632553A0A492720FBAC64A2DF93 /* LLScreenshot.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = LLScreenshot.h; path = LLDebugTool/Core/Component/Screenshot/LLScreenshot.h; sourceTree = ""; }; + A78E12FAA97079585B4D6DE0C45D8A6F /* GPBFieldMask.pbobjc.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = GPBFieldMask.pbobjc.h; path = objectivec/GPBFieldMask.pbobjc.h; sourceTree = ""; }; + A7A6223A3CE26074CA9826D818FD6D9D /* RACSubscriptionScheduler.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = RACSubscriptionScheduler.m; path = ReactiveObjC/RACSubscriptionScheduler.m; sourceTree = ""; }; + A7B0A3711DFEF20A9200906048461419 /* NSString+RACKeyPathUtilities.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "NSString+RACKeyPathUtilities.m"; path = "ReactiveObjC/NSString+RACKeyPathUtilities.m"; sourceTree = ""; }; + A7B47A1079D4114C84B5C2BC41AA3E1A /* aosl.xcframework */ = {isa = PBXFileReference; includeInIndex = 1; path = aosl.xcframework; sourceTree = ""; }; + A7BCC0FC949E3EB097C59CAB5EC45784 /* LLMagnifierInfoView.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = LLMagnifierInfoView.h; path = LLDebugTool/Core/Component/Magnifier/UserInterface/LLMagnifierInfoView.h; sourceTree = ""; }; A7F700FBADE3CAFB8E2E41A00A6E6AD8 /* CoreLocation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreLocation.framework; path = Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS18.0.sdk/System/Library/Frameworks/CoreLocation.framework; sourceTree = DEVELOPER_DIR; }; - A7F7DA10FF3C553A3B79311D0F781541 /* YYCategories-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "YYCategories-prefix.pch"; sourceTree = ""; }; - A84212C733EE4C0F206ECE609D2CD477 /* LLNetworkImageCell.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = LLNetworkImageCell.h; path = LLDebugTool/Core/Component/Network/UserInterface/LLNetworkImageCell.h; sourceTree = ""; }; + A7FBF8F01AE1585F2D8153B34446ED00 /* SDWebImageManager.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDWebImageManager.h; path = SDWebImage/Core/SDWebImageManager.h; sourceTree = ""; }; A845402EF959A57A4640F2A4F5155943 /* Zip */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; name = Zip; path = Zip.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - A85DF892F37C25E8A82270F153585F56 /* YYTextEffectWindow.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = YYTextEffectWindow.m; path = YYText/Component/YYTextEffectWindow.m; sourceTree = ""; }; - A86844415CF8A5AC53565B3B024C3D83 /* cost_enc.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = cost_enc.h; path = src/enc/cost_enc.h; sourceTree = ""; }; - A8794629E39969EC18FE07CB70457287 /* filter_enc.c */ = {isa = PBXFileReference; includeInIndex = 1; name = filter_enc.c; path = src/enc/filter_enc.c; sourceTree = ""; }; - A87C9E81F3486D7C4ACF5E119E8F26D2 /* YBIBOrientationReceiveProtocol.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = YBIBOrientationReceiveProtocol.h; path = YBImageBrowser/Protocol/YBIBOrientationReceiveProtocol.h; sourceTree = ""; }; - A885D25D9BB36D8AA7AA3B478EC889DA /* RACEXTRuntimeExtensions.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = RACEXTRuntimeExtensions.h; path = ReactiveObjC/extobjc/RACEXTRuntimeExtensions.h; sourceTree = ""; }; - A892A1CEE6B8E22EEB2402156B6B1376 /* RACReplaySubject.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = RACReplaySubject.m; path = ReactiveObjC/RACReplaySubject.m; sourceTree = ""; }; + A85E8FDD8A1086AD73C014B6D6033655 /* OSSCompat.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = OSSCompat.m; path = AliyunOSSSDK/OSSCompat.m; sourceTree = ""; }; + A865E990B35FB6B509984027BE08F592 /* QCloudEncryt.mm */ = {isa = PBXFileReference; includeInIndex = 1; name = QCloudEncryt.mm; path = QCloudCore/Classes/Base/Logger/Encryt/QCloudEncryt.mm; sourceTree = ""; }; + A88EDD4C5FDB299D93A721D1FB394726 /* SDCycleScrollView-Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "SDCycleScrollView-Info.plist"; sourceTree = ""; }; + A8911AAD900EAE6EB0688BB3EB02E473 /* YYTextWeakProxy.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = YYTextWeakProxy.h; path = YYText/Utility/YYTextWeakProxy.h; sourceTree = ""; }; A898A1F98A4CEE76C7DAF5EFB8D668AE /* TUIMergeMessageCell.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = TUIMergeMessageCell.m; sourceTree = ""; }; - A8A2450686AD874CEBB426F8893F380C /* LLRulerPickerView.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = LLRulerPickerView.h; path = LLDebugTool/Core/Component/Ruler/UserInterface/LLRulerPickerView.h; sourceTree = ""; }; - A8A2E239F463C92F51E8AB0BB7E52A47 /* NSBundle+BRPickerView.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "NSBundle+BRPickerView.h"; path = "BRPickerView/Core/NSBundle+BRPickerView.h"; sourceTree = ""; }; - A8A32CD9B11823592DA39852F5A8C987 /* JXCategoryIndicatorBallView.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = JXCategoryIndicatorBallView.h; path = Sources/Indicator/IndicatorViews/JXCategoryIndicatorBallView.h; sourceTree = ""; }; - A8CA6A684C2248FBF8810DA9E2C4B5F4 /* JXCategoryTitleVerticalZoomCellModel.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = JXCategoryTitleVerticalZoomCellModel.m; path = Sources/VerticalZoomTitle/JXCategoryTitleVerticalZoomCellModel.m; sourceTree = ""; }; - A8EC08E60F8DFF09E73CF1086CF3712B /* NSDate+YYAdd.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "NSDate+YYAdd.h"; path = "YYCategories/Foundation/NSDate+YYAdd.h"; sourceTree = ""; }; - A8EC5759A3D64D6E4359B45A449795F0 /* LLBaseTableViewCell.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = LLBaseTableViewCell.h; path = LLDebugTool/Core/Others/CommonUI/Base/LLBaseTableViewCell.h; sourceTree = ""; }; - A8F9A41909751D027FEC04392628035E /* NSURLSessionConfiguration+LL_Network.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "NSURLSessionConfiguration+LL_Network.h"; path = "LLDebugTool/Core/Component/Network/Function/NSURLSessionConfiguration/NSURLSessionConfiguration+LL_Network.h"; sourceTree = ""; }; - A91C9B42E42536E5D074D2A7DD70F8FF /* YYWebImageManager.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = YYWebImageManager.h; path = YYWebImage/YYWebImageManager.h; sourceTree = ""; }; - A94B1CD664D156ABF8E1DA51098D41F0 /* SDWebImageWebPCoder.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = SDWebImageWebPCoder.release.xcconfig; sourceTree = ""; }; + A89977EA2E3241F989DC4BBC74835762 /* QCloudBundlePath.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = QCloudBundlePath.m; path = QCloudCore/Classes/Base/PathUtilities/QCloudBundlePath.m; sourceTree = ""; }; + A918DC96BFCF495952F2BEC35A02F70A /* bit_writer_utils.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = bit_writer_utils.h; path = src/utils/bit_writer_utils.h; sourceTree = ""; }; + A91D031B942FCE6EA400BE1570F2D49F /* LLDebugTool-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "LLDebugTool-umbrella.h"; sourceTree = ""; }; + A91DF9F24199E49B4664372B94BADF48 /* NSUserDefaults+RACSupport.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "NSUserDefaults+RACSupport.m"; path = "ReactiveObjC/NSUserDefaults+RACSupport.m"; sourceTree = ""; }; + A97135F79761C90C01612FCE35526D29 /* ResourceBundle-AliyunOSSiOS_Privacy-AliyunOSSiOS-Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "ResourceBundle-AliyunOSSiOS_Privacy-AliyunOSSiOS-Info.plist"; sourceTree = ""; }; A97986EFC169E7901000177162F2CC7C /* TUITextMessageCell_Minimalist.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = TUITextMessageCell_Minimalist.h; sourceTree = ""; }; A97AA042E83682CF2E8E476B6F22C3F4 /* TUIReplyMessageCell.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = TUIReplyMessageCell.h; sourceTree = ""; }; - A993269DE36889EE9D32B5065C219ABB /* UIView+WebCache.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "UIView+WebCache.m"; path = "SDWebImage/Core/UIView+WebCache.m"; sourceTree = ""; }; - A9C2940910F9BD87850FF4E0B79BFD06 /* UISwitch+RACSignalSupport.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "UISwitch+RACSignalSupport.m"; path = "ReactiveObjC/UISwitch+RACSignalSupport.m"; sourceTree = ""; }; + A98B45B96F67A668A3EBE9B4D3BD12EF /* OSSBolts.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = OSSBolts.m; path = AliyunOSSSDK/OSSTask/OSSBolts.m; sourceTree = ""; }; + A9BFD1A7CDE248132A063C7EFA77DBA2 /* encode.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = encode.h; path = src/webp/encode.h; sourceTree = ""; }; + A9C922E189897BDF10AF0987565B9277 /* NSError+QCloudNetworking.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "NSError+QCloudNetworking.m"; path = "QCloudCore/Classes/Base/QCLOUDRestNet/Error/NSError+QCloudNetworking.m"; sourceTree = ""; }; A9D106C30BEE5B4E6A2FF73AA473A3BE /* TUIImageReplyQuoteViewData.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = TUIImageReplyQuoteViewData.h; sourceTree = ""; }; + A9E5769E8BE3315EFFB5CDF0CA40BFEF /* SDDisplayLink.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDDisplayLink.h; path = SDWebImage/Private/SDDisplayLink.h; sourceTree = ""; }; + A9ED807F800450D9C4F837CA1F24D5D5 /* RACBlockTrampoline.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = RACBlockTrampoline.m; path = ReactiveObjC/RACBlockTrampoline.m; sourceTree = ""; }; A9EE9485A8B60746310B7A8C2D1CFE84 /* TUIChatSmallTongueView.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = TUIChatSmallTongueView.h; sourceTree = ""; }; - A9F6F2F5534727607C323AACBB3B8485 /* IQNSArray+Sort.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "IQNSArray+Sort.m"; path = "IQKeyboardManager/Categories/IQNSArray+Sort.m"; sourceTree = ""; }; - A9FBCE8CAC023AA0BA5F20AF17D906FC /* MBProgressHUD.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.module; path = MBProgressHUD.modulemap; sourceTree = ""; }; - A9FE85154159BBC9DA7A3B5F56BF0E4F /* MJRefreshBackGifFooter.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = MJRefreshBackGifFooter.m; path = MJRefresh/Custom/Footer/Back/MJRefreshBackGifFooter.m; sourceTree = ""; }; - AA08BF9F59DD8D7D975269572F90DE81 /* YYWebImageManager.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = YYWebImageManager.m; path = YYWebImage/YYWebImageManager.m; sourceTree = ""; }; + AA11C0FF9CA37265A8F60A4B1D292C51 /* QCloudAbstractRequest+Quality.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "QCloudAbstractRequest+Quality.h"; path = "QCloudCOSXML/Classes/Base/QCloudAbstractRequest+Quality.h"; sourceTree = ""; }; AA2FB3E6D8ADC13685158B6D8FE69523 /* TUIEmojiConfig.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = TUIEmojiConfig.m; sourceTree = ""; }; - AA4D60FFBE6EC179FBC8808525DA6D9D /* YBIBUtilities.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = YBIBUtilities.m; path = YBImageBrowser/Helper/YBIBUtilities.m; sourceTree = ""; }; - AA7C34CC343507C125EB6837C6748B5E /* JXCategoryIndicatorProtocol.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = JXCategoryIndicatorProtocol.h; path = Sources/Common/JXCategoryIndicatorProtocol.h; sourceTree = ""; }; - AA84C9E918A8EB359CBF8F936A50EBD7 /* lossless.c */ = {isa = PBXFileReference; includeInIndex = 1; name = lossless.c; path = src/dsp/lossless.c; sourceTree = ""; }; + AA59DD14C40BD66A74D38651FCEFEA11 /* RACCommand.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = RACCommand.h; path = ReactiveObjC/RACCommand.h; sourceTree = ""; }; + AA6C170C80274AA4B47C157B76FEDCDF /* MJRefreshBackNormalFooter.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = MJRefreshBackNormalFooter.m; path = MJRefresh/Custom/Footer/Back/MJRefreshBackNormalFooter.m; sourceTree = ""; }; + AA7F7BD6DA0E90C79B0C2F5390A8BD40 /* YYText-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "YYText-dummy.m"; sourceTree = ""; }; AA9AB74FC7A6B3470E3E553AC2449C76 /* TUIMergeMessageCell_Minimalist.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = TUIMergeMessageCell_Minimalist.h; sourceTree = ""; }; - AAB37F72A32BF77F9659649C64F3748B /* AFURLRequestSerialization.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = AFURLRequestSerialization.h; path = AFNetworking/AFURLRequestSerialization.h; sourceTree = ""; }; - AAC9D3A5A73A53CAABD58F8BE574835F /* SDAnimatedImagePlayer.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDAnimatedImagePlayer.m; path = SDWebImage/Core/SDAnimatedImagePlayer.m; sourceTree = ""; }; - AACC3831A9F835FDBDFD8EFE21B2E9FC /* YYModel.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = YYModel.release.xcconfig; sourceTree = ""; }; - AAD34CD00E99EF8DCB941FA4C2F5AE61 /* MASLayoutConstraint.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = MASLayoutConstraint.h; path = Masonry/MASLayoutConstraint.h; sourceTree = ""; }; - AAD4A1BB55053FBBEBE321C9BB07A5C9 /* YBIBImageData.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = YBIBImageData.m; path = YBImageBrowser/Image/YBIBImageData.m; sourceTree = ""; }; - AB23DD5BEADD6E2CFC82EB663378BB67 /* LLAppInfoWindow.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = LLAppInfoWindow.m; path = LLDebugTool/Core/Component/AppInfo/UserInterface/LLAppInfoWindow.m; sourceTree = ""; }; - AB2F2ED04AC1855C92554B71108661C7 /* BRStringPickerView.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = BRStringPickerView.m; path = BRPickerView/Deprecated/StringPickerView/BRStringPickerView.m; sourceTree = ""; }; - AB36CE6695767CDFB7C1C2C0AF42AAFB /* FileCache.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = FileCache.swift; path = AgoraLyricsScore/Class/Downloader/FileCache.swift; sourceTree = ""; }; - AB3FA486FEC3DC524BB77DE6197AB2BF /* NSMutableAttributedString+AvoidCrash.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "NSMutableAttributedString+AvoidCrash.m"; path = "AvoidCrash/NSMutableAttributedString+AvoidCrash.m"; sourceTree = ""; }; + AAB4BD16A648A317D96D75896A66A041 /* LLConst.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = LLConst.h; path = LLDebugTool/Core/Others/Const/LLConst.h; sourceTree = ""; }; + AABFA3A345BA6647A3D4F1EC9D98C146 /* GPBExtensionInternals.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = GPBExtensionInternals.m; path = objectivec/GPBExtensionInternals.m; sourceTree = ""; }; + AAC766598D2FF55AAF23A0F6A46B9A60 /* LLRulerViewController.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = LLRulerViewController.m; path = LLDebugTool/Core/Component/Ruler/UserInterface/LLRulerViewController.m; sourceTree = ""; }; + AB2CCA7421225550F02BAD572D94F38B /* NSNotificationCenter+VAPThreadSafe.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "NSNotificationCenter+VAPThreadSafe.m"; path = "iOS/QGVAPlayer/QGVAPlayer/Classes/Utils/Categorys/NSNotificationCenter+VAPThreadSafe.m"; sourceTree = ""; }; + AB3029B1D6DB78EC56E31AD669C7D921 /* YYModel.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = YYModel.release.xcconfig; sourceTree = ""; }; + AB327FEAAFD9095A9034BF0C5D5E88E2 /* RACSerialDisposable.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = RACSerialDisposable.h; path = ReactiveObjC/RACSerialDisposable.h; sourceTree = ""; }; + AB337F8DA4B26CBF4559F0E4E4CFA08E /* UIGestureRecognizer+RACSignalSupport.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "UIGestureRecognizer+RACSignalSupport.m"; path = "ReactiveObjC/UIGestureRecognizer+RACSignalSupport.m"; sourceTree = ""; }; AB4EDE133919220DA0DB77266DD4F290 /* OfflinePushExtInfo.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = OfflinePushExtInfo.m; sourceTree = ""; }; - AB5352DBC178D6FB014D44D10371147C /* LLJsonTool.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = LLJsonTool.h; path = LLDebugTool/Core/Others/JsonTool/LLJsonTool.h; sourceTree = ""; }; - AB553709600E3E065D5B17480C474C15 /* UIImage+WebP.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "UIImage+WebP.m"; path = "SDWebImageWebPCoder/Classes/UIImage+WebP.m"; sourceTree = ""; }; + AB5418996736D7C56ADC85142FC15FBA /* UIView+YYAdd.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "UIView+YYAdd.h"; path = "YYCategories/UIKit/UIView+YYAdd.h"; sourceTree = ""; }; + AB5E335BA6B5CAEB564577C66299B1E8 /* RACSignal+Operations.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "RACSignal+Operations.h"; path = "ReactiveObjC/RACSignal+Operations.h"; sourceTree = ""; }; AB621E0633786FE4BC8E55BD2183155A /* TUIMenuView_Minimalist.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = TUIMenuView_Minimalist.m; sourceTree = ""; }; AB76C88FA06FBA051FDAA44F6EF28B76 /* TUIC2CChatViewController.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = TUIC2CChatViewController.m; sourceTree = ""; }; + AB893C8E53EC1B80E37F0708C2FAF94A /* QCloudMultipartInfo.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = QCloudMultipartInfo.m; path = QCloudCOSXML/Classes/Transfer/model/QCloudMultipartInfo.m; sourceTree = ""; }; AB95361BE7782B6A665DBA1DED9DBE5C /* TUIConversation_Minimalist.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = TUIConversation_Minimalist.h; sourceTree = ""; }; - AB9D730F4C08F0B6BBCFADE910AD0A95 /* NSObject+RACPropertySubscribing.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "NSObject+RACPropertySubscribing.m"; path = "ReactiveObjC/NSObject+RACPropertySubscribing.m"; sourceTree = ""; }; - ABA8E1CEBD8426E600EEAB98C79995D1 /* JXCategoryIndicatorCell.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = JXCategoryIndicatorCell.m; path = Sources/Indicator/JXCategoryIndicatorCell.m; sourceTree = ""; }; - ABB282F8C620DBE4956E8CE56054EEEE /* filters_utils.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = filters_utils.h; path = src/utils/filters_utils.h; sourceTree = ""; }; + AB95C2A2C021DEBDF9C01A0110B99675 /* QGVAPConfigManager.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = QGVAPConfigManager.h; path = iOS/QGVAPlayer/QGVAPlayer/Classes/Controllers/QGVAPConfigManager.h; sourceTree = ""; }; ABBA0A23841EA9AF8E49C4B6A7CC39F0 /* UIImage+ImageEffects.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "UIImage+ImageEffects.h"; sourceTree = ""; }; - ABC7E828C1EFC4EDEBB35D12432C1DC1 /* config_enc.c */ = {isa = PBXFileReference; includeInIndex = 1; name = config_enc.c; path = src/enc/config_enc.c; sourceTree = ""; }; ABCA57500273A3605E0F06EBFE2E2AF3 /* TUIConversationCell_Minimalist.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = TUIConversationCell_Minimalist.h; sourceTree = ""; }; - ABD5F2C79D0E0B7507D53E84E2C8AB34 /* NSData+LL_Network.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "NSData+LL_Network.m"; path = "LLDebugTool/Core/Component/Network/Function/NSData/NSData+LL_Network.m"; sourceTree = ""; }; - ABF0400160196B408E6C52FE008EBDAB /* cpu.c */ = {isa = PBXFileReference; includeInIndex = 1; name = cpu.c; path = src/dsp/cpu.c; sourceTree = ""; }; - AC4CBF8C5116C1FECAFEBE4E2E394213 /* LLSandboxHtmlPreviewController.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = LLSandboxHtmlPreviewController.m; path = LLDebugTool/Core/Component/Sandbox/UserInterface/LLSandboxHtmlPreviewController.m; sourceTree = ""; }; - AC65407532F4C689DB36CD6A55C47F42 /* frame_enc.c */ = {isa = PBXFileReference; includeInIndex = 1; name = frame_enc.c; path = src/enc/frame_enc.c; sourceTree = ""; }; - AC6E5307DBC128E998625E240CBB280D /* LLFormatterTool.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = LLFormatterTool.m; path = LLDebugTool/Core/Others/FormatterTool/LLFormatterTool.m; sourceTree = ""; }; + ABCFAE80AC277547100AC9A23CC81757 /* LLCrashModel.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = LLCrashModel.m; path = LLDebugTool/Core/Component/Crash/Function/LLCrashModel.m; sourceTree = ""; }; + ABF88163521CDB75D54016CB498D594B /* JXCategoryImageCellModel.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = JXCategoryImageCellModel.m; path = Sources/Image/JXCategoryImageCellModel.m; sourceTree = ""; }; + AC0E4AABA42DA7103F94CB7036A8B98A /* SSZipArchive.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.module; path = SSZipArchive.modulemap; sourceTree = ""; }; + AC2534F6DA9CD0DE92D5AD36466B46CC /* AFImageDownloader.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = AFImageDownloader.h; path = "UIKit+AFNetworking/AFImageDownloader.h"; sourceTree = ""; }; + AC273F778E57C55001C3197B23B7BF66 /* MJRefresh.bundle */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = "wrapper.plug-in"; name = MJRefresh.bundle; path = MJRefresh/MJRefresh.bundle; sourceTree = ""; }; + AC38372D2FD6828F577098071390850D /* NSDictionary+YYAdd.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "NSDictionary+YYAdd.m"; path = "YYCategories/Foundation/NSDictionary+YYAdd.m"; sourceTree = ""; }; + AC3912514619936BE782EEA52811A2A7 /* QCloudCOSTransferMangerService.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = QCloudCOSTransferMangerService.m; path = QCloudCOSXML/Classes/Transfer/QCloudCOSTransferMangerService.m; sourceTree = ""; }; + AC4D329644DEE93BABC33463AEDA1D67 /* RACSignalSequence.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = RACSignalSequence.m; path = ReactiveObjC/RACSignalSequence.m; sourceTree = ""; }; + AC603A19274FB2CD8196100E3288674E /* LLLocationMockRouteModel.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = LLLocationMockRouteModel.m; path = LLDebugTool/Core/Component/Location/Function/LLLocationMockRouteModel.m; sourceTree = ""; }; AC6FBF5583543BBBF9CD974FD4EBD722 /* TUIBaseChatViewController_Minimalist.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = TUIBaseChatViewController_Minimalist.m; sourceTree = ""; }; - AC89138165E8ABC2F7E6A48958DFA374 /* LLAppInfoHelper.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = LLAppInfoHelper.h; path = LLDebugTool/Core/Component/AppInfo/Function/LLAppInfoHelper.h; sourceTree = ""; }; + AC9B09FA3426D6DE9ACEABE688BBCD05 /* RACEvent.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = RACEvent.m; path = ReactiveObjC/RACEvent.m; sourceTree = ""; }; + ACAA04DF49E064B429EEDA8898EA38C6 /* mz_crypt.c */ = {isa = PBXFileReference; includeInIndex = 1; name = mz_crypt.c; path = SSZipArchive/minizip/mz_crypt.c; sourceTree = ""; }; ACCB3F547ED73CEAB07719C9740163D4 /* TIMGroupInfo+TUIDataProvider.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "TIMGroupInfo+TUIDataProvider.h"; sourceTree = ""; }; - ACE27D14F40D07FDA39F1A3B7A55190F /* UIButton+RACCommandSupport.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "UIButton+RACCommandSupport.m"; path = "ReactiveObjC/UIButton+RACCommandSupport.m"; sourceTree = ""; }; + ACD31B9CF4EFBCA98DAAAD28E2DB8FC6 /* LLWidgetBorderComponent.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = LLWidgetBorderComponent.h; path = LLDebugTool/Core/Component/WidgetBorder/LLWidgetBorderComponent.h; sourceTree = ""; }; + ACE45D60BA908387E7AC000FEA74358E /* UIScrollView+MJExtension.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "UIScrollView+MJExtension.m"; path = "MJRefresh/UIScrollView+MJExtension.m"; sourceTree = ""; }; + ACE661F218BED1217BB2E02F63814B14 /* RACSubject.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = RACSubject.h; path = ReactiveObjC/RACSubject.h; sourceTree = ""; }; ACECA3CC22B9472A71AE45035282AD24 /* TUIThemeManager.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = TUIThemeManager.h; sourceTree = ""; }; - ACF3427E0422A2A0D3C12F8950AE1D33 /* YYTextEffectWindow.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = YYTextEffectWindow.h; path = YYText/Component/YYTextEffectWindow.h; sourceTree = ""; }; - ACFCBCF4E62065B7A11BA87E097CEFDE /* QGVAPConfigModel.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = QGVAPConfigModel.m; path = iOS/QGVAPlayer/QGVAPlayer/Classes/Models/QGVAPConfigModel.m; sourceTree = ""; }; - AD0E37C6A4E41D3661FCB7AF24D6C3C7 /* QuickZip.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = QuickZip.swift; path = Zip/QuickZip.swift; sourceTree = ""; }; - AD51B2F7DF9CF500D794F073425A6352 /* libwebp-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "libwebp-prefix.pch"; sourceTree = ""; }; - AD7C17AE50A9F0D01678978E43E3468B /* LLFilterFilePickerView.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = LLFilterFilePickerView.m; path = LLDebugTool/Core/Others/CommonUI/View/FilterView/LLFilterFilePickerView.m; sourceTree = ""; }; - AD9174A6EE6273047D6FA0E4DA5E4CB1 /* YYTextLine.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = YYTextLine.h; path = YYText/Component/YYTextLine.h; sourceTree = ""; }; - AD984F9C7DEC2984C3949D32E62B91BE /* TZImagePickerController.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = TZImagePickerController.m; path = TZImagePickerController/TZImagePickerController/TZImagePickerController.m; sourceTree = ""; }; - AD9C1156D65123703105C7424A2799C5 /* IQKeyboardManager.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = IQKeyboardManager.m; path = IQKeyboardManager/IQKeyboardManager.m; sourceTree = ""; }; - AD9CB70277F98D7B46E5FAB684A3959E /* YYKVStorage.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = YYKVStorage.h; path = YYCache/YYKVStorage.h; sourceTree = ""; }; - ADB1EF25CCD031473FB4F9709E6F2550 /* LLScreenshotWindow.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = LLScreenshotWindow.h; path = LLDebugTool/Core/Component/Screenshot/UserInterface/LLScreenshotWindow.h; sourceTree = ""; }; - ADCA5F3C6DC228BA53FA18FF82FE52CC /* UIGestureRecognizer+YYAdd.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "UIGestureRecognizer+YYAdd.h"; path = "YYCategories/UIKit/UIGestureRecognizer+YYAdd.h"; sourceTree = ""; }; + AD3260D683FB91AB5E1C93B0A64A26BE /* RACTestScheduler.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = RACTestScheduler.h; path = ReactiveObjC/RACTestScheduler.h; sourceTree = ""; }; + AD696186A1BF2A482C52650529E13051 /* SDWebImageDownloaderResponseModifier.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDWebImageDownloaderResponseModifier.h; path = SDWebImage/Core/SDWebImageDownloaderResponseModifier.h; sourceTree = ""; }; + AD6BCF82EECFC175647BF009235EC25B /* LLSettingComponent.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = LLSettingComponent.m; path = LLDebugTool/Core/Others/Component/Setting/LLSettingComponent.m; sourceTree = ""; }; + AD7C11AB19D85D711E929DC58F74CB80 /* NSString+AvoidCrash.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "NSString+AvoidCrash.m"; path = "AvoidCrash/NSString+AvoidCrash.m"; sourceTree = ""; }; + ADA1E060ACDC8ADD2CB42E39F5165255 /* QCloudUICKeyChainStore.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = QCloudUICKeyChainStore.h; path = QCloudCore/Classes/Base/QCloudClientBase/Authentation/QCloudUICKeyChainStore.h; sourceTree = ""; }; ADDC0F0327D1EA52514CEB1F30DD3559 /* TUIChatPopContextController.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = TUIChatPopContextController.m; sourceTree = ""; }; - AE2793AF03E317A766D7B828C391871B /* MQTTClient-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "MQTTClient-umbrella.h"; sourceTree = ""; }; - AE2D6ADA4FDF24EAB07D1F9ADFFD7102 /* RACSubscriptingAssignmentTrampoline.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = RACSubscriptingAssignmentTrampoline.h; path = ReactiveObjC/RACSubscriptingAssignmentTrampoline.h; sourceTree = ""; }; + ADE31962E6DAEF6C1F5352D7020EAD0A /* AFAutoPurgingImageCache.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = AFAutoPurgingImageCache.m; path = "UIKit+AFNetworking/AFAutoPurgingImageCache.m"; sourceTree = ""; }; + AE02E7FF288BA1E6D7F88982C57AE562 /* GPBSourceContext.pbobjc.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = GPBSourceContext.pbobjc.h; path = objectivec/GPBSourceContext.pbobjc.h; sourceTree = ""; }; + AE2BD227372A622034B2AC24A2D2B24B /* io_dec.c */ = {isa = PBXFileReference; includeInIndex = 1; name = io_dec.c; path = src/dec/io_dec.c; sourceTree = ""; }; + AE3B69019F2C2B619A91B7A1E9A91EA6 /* QCloudAuthentationV4Creator.mm */ = {isa = PBXFileReference; includeInIndex = 1; name = QCloudAuthentationV4Creator.mm; path = QCloudCore/Classes/Base/QCloudClientBase/Authentation/QCloudAuthentationV4Creator.mm; sourceTree = ""; }; + AE44F5422F5F0932EB52B56C4AF04D32 /* AvoidCrash.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.module; path = AvoidCrash.modulemap; sourceTree = ""; }; + AE45107946C343DBF04C1B7B5B8CFCE5 /* GPBUtilities.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = GPBUtilities.m; path = objectivec/GPBUtilities.m; sourceTree = ""; }; AE591D6A2CC36F9DD224AD3A7249659F /* TUIChatService.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = TUIChatService.m; sourceTree = ""; }; + AE6044C2F23ADE662B69D64BFCB9759A /* QGHWDShaders.metal */ = {isa = PBXFileReference; includeInIndex = 1; name = QGHWDShaders.metal; path = iOS/QGVAPlayer/QGVAPlayer/Shaders/QGHWDShaders.metal; sourceTree = ""; }; + AE650260687E865E28534C92B50333AC /* MJRefresh.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = MJRefresh.release.xcconfig; sourceTree = ""; }; AE6529FFB0FDD75FD4EC2102415CBACA /* TUICaptureTimer.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = TUICaptureTimer.m; sourceTree = ""; }; - AE81EE30D65E00E270693FAEB2AD269C /* JXCategoryTitleVerticalZoomView.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = JXCategoryTitleVerticalZoomView.m; path = Sources/VerticalZoomTitle/JXCategoryTitleVerticalZoomView.m; sourceTree = ""; }; - AEA5781AF75CFC8EEA535BE68D16170A /* LLLeftTitleCell.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = LLLeftTitleCell.m; path = LLDebugTool/Core/Others/CommonUI/View/TitleCell/LLLeftTitleCell.m; sourceTree = ""; }; - AEACA15144FB9B5E808C6C900F0794F0 /* JXCategoryBaseCellModel.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = JXCategoryBaseCellModel.m; path = Sources/Base/JXCategoryBaseCellModel.m; sourceTree = ""; }; - AEC23BD1487B0F695EE3C72A92218241 /* YYWebImageOperation.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = YYWebImageOperation.m; path = YYWebImage/YYWebImageOperation.m; sourceTree = ""; }; - AF4200171D98AF34C3A7BAE2D2F7C9BC /* ScoringCanvasView.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ScoringCanvasView.swift; path = AgoraLyricsScore/Class/Scoring/View/ScoringCanvasView.swift; sourceTree = ""; }; - AF867A3166A514494F5092E35E2FEE6D /* GPBDuration.pbobjc.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = GPBDuration.pbobjc.m; path = objectivec/GPBDuration.pbobjc.m; sourceTree = ""; }; - AFAC5634963A089BAF01A98BFA916B7C /* FMDatabasePool.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FMDatabasePool.m; path = src/fmdb/FMDatabasePool.m; sourceTree = ""; }; - AFB0B825E8F65A2DDC5B09B15DAEB88F /* LLMagnifierInfoView.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = LLMagnifierInfoView.m; path = LLDebugTool/Core/Component/Magnifier/UserInterface/LLMagnifierInfoView.m; sourceTree = ""; }; - AFB2604C71FD725C5ED31B34AE93DFA7 /* QGVAPTextureLoader.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = QGVAPTextureLoader.h; path = iOS/QGVAPlayer/QGVAPlayer/Classes/Models/QGVAPTextureLoader.h; sourceTree = ""; }; - AFC8D0AE1EB81A7CD6655C9AD0556CA7 /* DownloaderManager.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = DownloaderManager.swift; path = AgoraLyricsScore/Class/Downloader/DownloaderManager.swift; sourceTree = ""; }; - AFF6BFEF29D849DA0A5FFB9799BF3837 /* YYCache-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "YYCache-dummy.m"; sourceTree = ""; }; - AFFF1B74E371CF5161810F6C59C355AD /* YYText.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = YYText.release.xcconfig; sourceTree = ""; }; + AE8AA30C86BACC4D9D753D8DC071E34C /* TIMPush.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = TIMPush.release.xcconfig; sourceTree = ""; }; + AE90088E58557360D6C0788805D76D76 /* LLShortCutModel.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = LLShortCutModel.m; path = LLDebugTool/Core/Component/ShortCut/Function/LLShortCutModel.m; sourceTree = ""; }; + AE98678D412A6B7DE782583556482E18 /* mz_strm_mem.c */ = {isa = PBXFileReference; includeInIndex = 1; name = mz_strm_mem.c; path = SSZipArchive/minizip/mz_strm_mem.c; sourceTree = ""; }; + AEA044DFB2BE194A6441B9723B50D0AE /* ReactiveObjC-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "ReactiveObjC-prefix.pch"; sourceTree = ""; }; + AEEEE4DD3BC6DFDF0073DA40B34539EC /* SVGAPlayer-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "SVGAPlayer-umbrella.h"; sourceTree = ""; }; + AF185AB44875D71E62BF2E58ED0F4C88 /* demux.c */ = {isa = PBXFileReference; includeInIndex = 1; name = demux.c; path = src/demux/demux.c; sourceTree = ""; }; + AF2FAF58CD50FE84E591FC8FD56FF4A5 /* LLTitleCell.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = LLTitleCell.h; path = LLDebugTool/Core/Others/CommonUI/View/TitleCell/LLTitleCell.h; sourceTree = ""; }; + AF508AC4AAFFCA0A0D366655A7F75716 /* UIApplication+YYAdd.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "UIApplication+YYAdd.m"; path = "YYCategories/UIKit/UIApplication+YYAdd.m"; sourceTree = ""; }; + AF957DE788B58BA05F425A7EA2790102 /* QCloudHTTPRequestOperation.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = QCloudHTTPRequestOperation.m; path = QCloudCore/Classes/Base/QCLOUDRestNet/Operations/QCloudHTTPRequestOperation.m; sourceTree = ""; }; + AF9CD71DEEC9408CBF151103B0E5F0D2 /* QGHWDMP4OpenGLView.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = QGHWDMP4OpenGLView.m; path = iOS/QGVAPlayer/QGVAPlayer/Classes/Views/OpenGL/QGHWDMP4OpenGLView.m; sourceTree = ""; }; + AFA6497AF7365FFB0A6AE8D6446BD7D0 /* MJRefreshFooter.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = MJRefreshFooter.m; path = MJRefresh/Base/MJRefreshFooter.m; sourceTree = ""; }; + AFAB1F0E95253035F38051174F68B468 /* SDWebImageDownloader.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDWebImageDownloader.h; path = SDWebImage/Core/SDWebImageDownloader.h; sourceTree = ""; }; + AFAC75D15F34AD6C5AEA0F9C81F3B591 /* YYCache.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = YYCache.h; path = YYCache/YYCache.h; sourceTree = ""; }; + AFCDAAFCBD6B1754C7C41B461713D8D7 /* NSString+RegularExpressionCategory.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "NSString+RegularExpressionCategory.h"; path = "QCloudCOSXML/Classes/Base/NSString+RegularExpressionCategory.h"; sourceTree = ""; }; + AFFB2CEAD3DD982A686F05DC9DA2014D /* LLConvenientScreenshotComponent.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = LLConvenientScreenshotComponent.h; path = LLDebugTool/Core/Component/Screenshot/LLConvenientScreenshotComponent.h; sourceTree = ""; }; + B00DA237ADEF5F3B79A18F2D994EAE07 /* sharpyuv_cpu.c */ = {isa = PBXFileReference; includeInIndex = 1; name = sharpyuv_cpu.c; path = sharpyuv/sharpyuv_cpu.c; sourceTree = ""; }; + B02CD8CDEFE292CD3557E36E17A6FB7B /* SDAnimatedImageView.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDAnimatedImageView.m; path = SDWebImage/Core/SDAnimatedImageView.m; sourceTree = ""; }; B0328F1C971A4B5D62BD91D769B98D0A /* TUIChatService_Minimalist.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = TUIChatService_Minimalist.h; sourceTree = ""; }; + B032C540A8349640C0FDFBDCB6723F98 /* mz_os_posix.c */ = {isa = PBXFileReference; includeInIndex = 1; name = mz_os_posix.c; path = SSZipArchive/minizip/mz_os_posix.c; sourceTree = ""; }; + B03A7927C1DBBD7EC530C86B7C22BCE1 /* picture_psnr_enc.c */ = {isa = PBXFileReference; includeInIndex = 1; name = picture_psnr_enc.c; path = src/enc/picture_psnr_enc.c; sourceTree = ""; }; B04090E2340AAF49C80FAD7F98AED770 /* TUICaptureVideoPreviewView.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = TUICaptureVideoPreviewView.m; sourceTree = ""; }; - B04D2E8778CE407F9154ECA988D10CFA /* UIView+WebCacheOperation.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "UIView+WebCacheOperation.h"; path = "SDWebImage/Core/UIView+WebCacheOperation.h"; sourceTree = ""; }; - B065E3A2FE0BCAAD7F3D83FA560043B6 /* OSSNetworking.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = OSSNetworking.m; path = AliyunOSSSDK/OSSNetworking.m; sourceTree = ""; }; - B07D4AC05AFCE457EBF91DB86BEBF821 /* random_utils.c */ = {isa = PBXFileReference; includeInIndex = 1; name = random_utils.c; path = src/utils/random_utils.c; sourceTree = ""; }; - B0A10B59E6C7E6F20746AE945EB76364 /* AgoraInfra_iOS.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = AgoraInfra_iOS.debug.xcconfig; sourceTree = ""; }; - B0A97A6940406BA43363AEBE53FFCEE4 /* LLNoneCopyTextField.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = LLNoneCopyTextField.h; path = LLDebugTool/Core/Others/CommonUI/View/NoneCopyTextField/LLNoneCopyTextField.h; sourceTree = ""; }; + B041C72D07773284DD32739065F532D1 /* ToneCalculator.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ToneCalculator.swift; path = AgoraLyricsScore/Class/Scoring/Other/ToneCalculator.swift; sourceTree = ""; }; B0B214D775196BA7CA8E17E53048A493 /* SDWebImage */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; name = SDWebImage; path = SDWebImage.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - B0B87C8EB4F405E680169D002E00B33D /* YYTextKeyboardManager.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = YYTextKeyboardManager.h; path = YYText/Component/YYTextKeyboardManager.h; sourceTree = ""; }; - B0E4C5AFE10929A35D97E1EA0E4B135A /* YYImage.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = YYImage.h; path = YYImage/YYImage.h; sourceTree = ""; }; + B0B826306FDFB3F9365808FE0ECC8EE7 /* MJRefreshNormalTrailer.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = MJRefreshNormalTrailer.m; path = MJRefresh/Custom/Trailer/MJRefreshNormalTrailer.m; sourceTree = ""; }; + B0C72B62D46E9DC948B196A020E7C33B /* dec_neon.c */ = {isa = PBXFileReference; includeInIndex = 1; name = dec_neon.c; path = src/dsp/dec_neon.c; sourceTree = ""; }; + B0C7E86F6A25D69A1020C7E430E9328C /* UITableViewHeaderFooterView+RACSignalSupport.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "UITableViewHeaderFooterView+RACSignalSupport.h"; path = "ReactiveObjC/UITableViewHeaderFooterView+RACSignalSupport.h"; sourceTree = ""; }; + B0DC3EFE8D130B50511160BF15B4DDE3 /* GPBUnknownField+Additions.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "GPBUnknownField+Additions.swift"; path = "objectivec/GPBUnknownField+Additions.swift"; sourceTree = ""; }; B0E58BC55A159A517DAF2E8DD1900711 /* TUIChatConfig_Minimalist.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = TUIChatConfig_Minimalist.m; sourceTree = ""; }; - B107938941210ED2FBABCD7AF027331D /* JXCategoryCollectionView.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = JXCategoryCollectionView.h; path = Sources/Common/JXCategoryCollectionView.h; sourceTree = ""; }; + B0F135764479655C291D5F464098653D /* LLRouter+Log.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "LLRouter+Log.h"; path = "LLDebugTool/Core/Others/Router/LLRouter+Log.h"; sourceTree = ""; }; + B0F30852CD15D1EABA704F90A371FF1A /* LLTitleCellModel.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = LLTitleCellModel.h; path = LLDebugTool/Core/Others/CommonUI/View/TitleCell/LLTitleCellModel.h; sourceTree = ""; }; B1186EC674E701810914EBF98E6BF146 /* TUICore-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "TUICore-dummy.m"; sourceTree = ""; }; - B126BDB2263A01F0D05093F9A3DBE2EF /* MQTTClient-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "MQTTClient-dummy.m"; sourceTree = ""; }; - B1282D7AA922966064CBDFA1F136B05F /* MJRefreshHeader.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = MJRefreshHeader.m; path = MJRefresh/Base/MJRefreshHeader.m; sourceTree = ""; }; + B12604E41BABB52C997364A828A0B085 /* UIControl+YYAdd.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "UIControl+YYAdd.h"; path = "YYCategories/UIKit/UIControl+YYAdd.h"; sourceTree = ""; }; B129247FD92914E3FED8996F2357E494 /* TUIBubbleMessageCellData.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = TUIBubbleMessageCellData.m; sourceTree = ""; }; - B1314C678FDD08FC0976C143FFB19582 /* NSImage+Compatibility.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "NSImage+Compatibility.h"; path = "SDWebImage/Core/NSImage+Compatibility.h"; sourceTree = ""; }; - B13E38E110BFB6989C00FA0144504D42 /* LLNetworkImageCell.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = LLNetworkImageCell.m; path = LLDebugTool/Core/Component/Network/UserInterface/LLNetworkImageCell.m; sourceTree = ""; }; - B13E833E737474C1E3C8C2ABC68ABDFC /* LLLogViewController.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = LLLogViewController.m; path = LLDebugTool/Core/Component/Log/UserInterface/LLLogViewController.m; sourceTree = ""; }; - B15739D3AA245DC3EF6AD0F8B840BEA6 /* sharpyuv_dsp.c */ = {isa = PBXFileReference; includeInIndex = 1; name = sharpyuv_dsp.c; path = sharpyuv/sharpyuv_dsp.c; sourceTree = ""; }; - B16DE3CF846E72DA646B89524B14E8A7 /* AFNetworking.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = AFNetworking.h; path = AFNetworking/AFNetworking.h; sourceTree = ""; }; - B1821A84FEEDC79CEFFCF904DEB92F3E /* AliyunOSSiOS.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = AliyunOSSiOS.debug.xcconfig; sourceTree = ""; }; + B194DDC27110CF95EA56034870715C28 /* Algorithm.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = Algorithm.h; path = AgoraLyricsScore/Class/Al/Algorithm.h; sourceTree = ""; }; + B1960E596D16DDF3EF0C424A461DCF7D /* MASCompositeConstraint.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = MASCompositeConstraint.h; path = Masonry/MASCompositeConstraint.h; sourceTree = ""; }; + B19CD9CB8BAF79C7CC6D0D6B78219BFB /* QCloudBizHTTPRequest+COSXML.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "QCloudBizHTTPRequest+COSXML.h"; path = "QCloudCOSXML/Classes/Base/QCloudBizHTTPRequest+COSXML.h"; sourceTree = ""; }; B19CEE97C159D1B8AC487B1EFAC7F9CE /* TencentCloudHuiyanSDKFace.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = TencentCloudHuiyanSDKFace.framework; path = Libs/TencentCloudHuiyanSDKFace.framework; sourceTree = ""; }; - B1B07F419F253B5ACE387A614AD2EA5A /* RACMulticastConnection.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = RACMulticastConnection.h; path = ReactiveObjC/RACMulticastConnection.h; sourceTree = ""; }; - B1BFFCFC6C51859FFD9C9ABBDBF260BA /* NSOrderedSet+RACSequenceAdditions.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "NSOrderedSet+RACSequenceAdditions.m"; path = "ReactiveObjC/NSOrderedSet+RACSequenceAdditions.m"; sourceTree = ""; }; - B1BFFE2F429ABB413F2F31F3C990B1EC /* LLDebugTool-Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "LLDebugTool-Info.plist"; sourceTree = ""; }; - B1EAADBE74790CD68AAA65C51DE0FC3D /* QGVAPConfigModel.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = QGVAPConfigModel.h; path = iOS/QGVAPlayer/QGVAPlayer/Classes/Models/QGVAPConfigModel.h; sourceTree = ""; }; - B2150F20FE1199A937735BBA31A90470 /* QGVAPlayer-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "QGVAPlayer-dummy.m"; sourceTree = ""; }; - B21894011FB4467D95E770A70332E873 /* YBIBSentinel.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = YBIBSentinel.m; path = YBImageBrowser/Helper/YBIBSentinel.m; sourceTree = ""; }; - B2189A238F3FB0C4263BA8966E8A50DD /* SDWebImagePrefetcher.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDWebImagePrefetcher.h; path = SDWebImage/Core/SDWebImagePrefetcher.h; sourceTree = ""; }; - B22EBF3B312E8568505AE9F06CEFC25E /* SDWebImageOptionsProcessor.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDWebImageOptionsProcessor.h; path = SDWebImage/Core/SDWebImageOptionsProcessor.h; sourceTree = ""; }; - B24E6D65F9FD1715159F3CBABC7D755A /* JXCategoryView-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "JXCategoryView-dummy.m"; sourceTree = ""; }; - B24F4D722E0777BF25D84D5AF84F0C4E /* LLSandboxPreviewController.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = LLSandboxPreviewController.m; path = LLDebugTool/Core/Component/Sandbox/UserInterface/LLSandboxPreviewController.m; sourceTree = ""; }; + B19F01878E6E00DDEC1E232E65D7722D /* MJRefresh-Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "MJRefresh-Info.plist"; sourceTree = ""; }; + B1E0E37B6DB572C1BF483998D840C12C /* YYWebImageManager.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = YYWebImageManager.h; path = YYWebImage/YYWebImageManager.h; sourceTree = ""; }; + B1E8F50B7D434CCC63D637589A791128 /* endian_inl_utils.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = endian_inl_utils.h; path = src/utils/endian_inl_utils.h; sourceTree = ""; }; + B21FAEC52778928CA42CDA254919B55B /* GPBFieldMask.pbobjc.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = GPBFieldMask.pbobjc.m; path = objectivec/GPBFieldMask.pbobjc.m; sourceTree = ""; }; + B2390AC5CF1382F055C7BBB7735FB1C7 /* TZImageRequestOperation.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = TZImageRequestOperation.m; path = TZImagePickerController/TZImagePickerController/TZImageRequestOperation.m; sourceTree = ""; }; + B2431DF859493CECA1608DFE5282B2DA /* QGBaseDecoder.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = QGBaseDecoder.h; path = iOS/QGVAPlayer/QGVAPlayer/Classes/Controllers/Decoders/QGBaseDecoder.h; sourceTree = ""; }; + B263D9F56028DCAF3F376D150DCEDB73 /* OSSDeleteObjectTaggingResult.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = OSSDeleteObjectTaggingResult.m; path = AliyunOSSSDK/OSSDeleteObjectTaggingResult.m; sourceTree = ""; }; B269FBDEE9C976A7C283CC2D523B357C /* TUIResponderTextView_Minimalist.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = TUIResponderTextView_Minimalist.h; sourceTree = ""; }; B27711EA0041B232D4559EFE42901D38 /* PhotosUI.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = PhotosUI.framework; path = Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS18.0.sdk/System/Library/Frameworks/PhotosUI.framework; sourceTree = DEVELOPER_DIR; }; - B280381C79B20523E196B1B91882F4EB /* YYTextInput.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = YYTextInput.m; path = YYText/Component/YYTextInput.m; sourceTree = ""; }; - B289A5282A939C5797A3CC4A22FD5F4C /* palette.c */ = {isa = PBXFileReference; includeInIndex = 1; name = palette.c; path = src/utils/palette.c; sourceTree = ""; }; - B2D59463662000A09AB6F5FD2CAAAE95 /* LLComponentNavigationController.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = LLComponentNavigationController.h; path = LLDebugTool/Core/Others/CommonUI/ViewController/ComponentNavigationController/LLComponentNavigationController.h; sourceTree = ""; }; - B2DE2860EFCBA8765E48C28650C9C74D /* NSLayoutConstraint+MASDebugAdditions.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "NSLayoutConstraint+MASDebugAdditions.h"; path = "Masonry/NSLayoutConstraint+MASDebugAdditions.h"; sourceTree = ""; }; - B2F47109BCC17FA9FE00931C6C532066 /* MASViewConstraint.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = MASViewConstraint.h; path = Masonry/MASViewConstraint.h; sourceTree = ""; }; - B30A138F614E2D96E72C6CFAA3EF1931 /* YBIBDataMediator.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = YBIBDataMediator.m; path = YBImageBrowser/Base/YBIBDataMediator.m; sourceTree = ""; }; + B27EA90BAF0FBA19DF2D6CDE20BB2206 /* RACUnarySequence.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = RACUnarySequence.m; path = ReactiveObjC/RACUnarySequence.m; sourceTree = ""; }; + B27FBD7E5E7A153717454D957D6FA3A5 /* alpha_processing_neon.c */ = {isa = PBXFileReference; includeInIndex = 1; name = alpha_processing_neon.c; path = src/dsp/alpha_processing_neon.c; sourceTree = ""; }; + B285892E042AC483BB9B662E55DCF6B7 /* ViewController+MASAdditions.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "ViewController+MASAdditions.m"; path = "Masonry/ViewController+MASAdditions.m"; sourceTree = ""; }; + B28844EE0ED3ABF993151E7177C55EFF /* LLSandboxImagePreviewController.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = LLSandboxImagePreviewController.m; path = LLDebugTool/Core/Component/Sandbox/UserInterface/LLSandboxImagePreviewController.m; sourceTree = ""; }; + B28BF8818C10BF7170B4BA56EF96834F /* sharpyuv.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = sharpyuv.h; path = sharpyuv/sharpyuv.h; sourceTree = ""; }; + B28DB461D2927E771DBAFDC89DBA4548 /* UIImage+Transform.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "UIImage+Transform.h"; path = "SDWebImage/Core/UIImage+Transform.h"; sourceTree = ""; }; + B29A9DA90F39E64BABA248050A567240 /* QCloudPutObjectRequest+Custom.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "QCloudPutObjectRequest+Custom.m"; path = "QCloudCOSXML/Classes/Transfer/request/QCloudPutObjectRequest+Custom.m"; sourceTree = ""; }; + B29F1923AD4248A13CA3B53F97E36979 /* LLLogCell.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = LLLogCell.h; path = LLDebugTool/Core/Component/Log/UserInterface/LLLogCell.h; sourceTree = ""; }; + B2B53396E81143B3CF52682ECBF19B9F /* SVGAVectorLayer.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SVGAVectorLayer.h; path = Source/SVGAVectorLayer.h; sourceTree = ""; }; + B2BAF03368C61D0A31E4A6CFC8D815CC /* QGMP4Parser.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = QGMP4Parser.h; path = iOS/QGVAPlayer/QGVAPlayer/Classes/MP4Parser/QGMP4Parser.h; sourceTree = ""; }; + B30B6988DDE2F166062EAC02A14CD96B /* QCloudAuthentationV5Creator.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = QCloudAuthentationV5Creator.h; path = QCloudCore/Classes/Base/QCloudClientBase/Authentation/QCloudAuthentationV5Creator.h; sourceTree = ""; }; B32193385A6E966920BFF6F89C44E8B6 /* TUIMessageMultiChooseView.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = TUIMessageMultiChooseView.h; sourceTree = ""; }; - B3338873437309D5CB766787621B4F24 /* NSData+OSS.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "NSData+OSS.h"; path = "AliyunOSSSDK/NSData+OSS.h"; sourceTree = ""; }; - B39C83EB922B636956FE5F2D8F8A7DF4 /* UIColor+YYAdd.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "UIColor+YYAdd.m"; path = "YYCategories/UIKit/UIColor+YYAdd.m"; sourceTree = ""; }; - B3AF33AAF8CAC88D6F3278A2696EE6AA /* SDWebImage-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "SDWebImage-dummy.m"; sourceTree = ""; }; - B3B8814894BF2C5AD4EA8B779B0B9C7C /* RACScheduler.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = RACScheduler.m; path = ReactiveObjC/RACScheduler.m; sourceTree = ""; }; - B3BFD36DD27A6F6E722A13EF0AFBB191 /* BRAddressPickerView.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = BRAddressPickerView.h; path = BRPickerView/Deprecated/AddressPickerView/BRAddressPickerView.h; sourceTree = ""; }; - B3C9A8FD1390C84584A19F64A61C7FB5 /* MQTTMessage.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = MQTTMessage.h; path = MQTTClient/MQTTClient/MQTTMessage.h; sourceTree = ""; }; - B3D29137092B99EA007C0ADCF4AF2683 /* AgoraAudioBeautyExtension.xcframework */ = {isa = PBXFileReference; includeInIndex = 1; path = AgoraAudioBeautyExtension.xcframework; sourceTree = ""; }; - B3D33CA776B0C7A667FEC2DA58D0DD92 /* MQTTSession.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = MQTTSession.h; path = MQTTClient/MQTTClient/MQTTSession.h; sourceTree = ""; }; - B3F832F2B4C19E5C81F0E5E680F5D1F0 /* SDWebImageDefine.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDWebImageDefine.m; path = SDWebImage/Core/SDWebImageDefine.m; sourceTree = ""; }; - B41610D9C71138E26CD083D47E0CDA3D /* LLHtmlWkWebViewController.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = LLHtmlWkWebViewController.m; path = LLDebugTool/Core/Component/Html/UserInterface/LLHtmlWkWebViewController.m; sourceTree = ""; }; - B42263C4FE1E2BE3EEAF9A95826D5E8B /* Any.pbobjc.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = Any.pbobjc.h; path = objectivec/google/protobuf/Any.pbobjc.h; sourceTree = ""; }; - B44B0A704748E5F5EE4F9F8C88B789C3 /* RACSignalProvider.d */ = {isa = PBXFileReference; includeInIndex = 1; name = RACSignalProvider.d; path = ReactiveObjC/RACSignalProvider.d; sourceTree = ""; }; - B451ADF9BA1CC2FF64C146F5FC437A84 /* RACStream.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = RACStream.h; path = ReactiveObjC/RACStream.h; sourceTree = ""; }; - B45A776FEF6D64E82676097687E6E29F /* PrivacyInfo.xcprivacy */ = {isa = PBXFileReference; includeInIndex = 1; name = PrivacyInfo.xcprivacy; path = AliyunOSSSDK/PrivacyInfo.xcprivacy; sourceTree = ""; }; - B46B2FBE4DF39282224F9442B3644468 /* LLMoveView.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = LLMoveView.m; path = LLDebugTool/Core/Others/CommonUI/View/MoveView/LLMoveView.m; sourceTree = ""; }; - B4D3107F6D1A5FC591E7F11CEC6FF9FD /* OSSSignerBase.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = OSSSignerBase.h; path = AliyunOSSSDK/Signer/OSSSignerBase.h; sourceTree = ""; }; - B4F0278AE29B9C08CEF13C303B90CAF3 /* TAAbstractDotView.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = TAAbstractDotView.m; path = SDCycleScrollView/Lib/SDCycleScrollView/PageControl/TAAbstractDotView.m; sourceTree = ""; }; - B4F3B35A05BE5D4CD732462BCF2C1693 /* AgoraComponetLog.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = AgoraComponetLog.release.xcconfig; sourceTree = ""; }; - B53440B74ED4D77A1FD5576805D9E922 /* MQTTCoreDataPersistence.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = MQTTCoreDataPersistence.h; path = MQTTClient/MQTTClient/MQTTCoreDataPersistence.h; sourceTree = ""; }; - B534CFECA8728CD97AC4FC484952BD83 /* UIImageView+WebCache.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "UIImageView+WebCache.h"; path = "SDWebImage/Core/UIImageView+WebCache.h"; sourceTree = ""; }; - B547DE0AF865AACABD260B51DFF954AC /* PrivacyInfo.xcprivacy */ = {isa = PBXFileReference; includeInIndex = 1; name = PrivacyInfo.xcprivacy; path = "ImSDK_Plus.xcframework/ios-arm64_armv7/ImSDK_Plus.framework/PrivacyInfo.xcprivacy"; sourceTree = ""; }; + B32E21934BB2E8E0CED0C7F3AE0919D7 /* NSObject+RACSelectorSignal.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "NSObject+RACSelectorSignal.m"; path = "ReactiveObjC/NSObject+RACSelectorSignal.m"; sourceTree = ""; }; + B32EF8D1CB3CE568658DC5C2F1730286 /* YBIBVideoCell+Internal.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "YBIBVideoCell+Internal.h"; path = "Video/YBIBVideoCell+Internal.h"; sourceTree = ""; }; + B33ABF35E96ABE37B2B3453BF842EF63 /* LLComponent.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = LLComponent.m; path = LLDebugTool/Core/Others/Component/LLComponent.m; sourceTree = ""; }; + B33BCF564E600AFBD44AE40E7E48150B /* JXPagingView-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "JXPagingView-umbrella.h"; sourceTree = ""; }; + B3400033532838906F71E9C292A9BF77 /* QCloudIntelligenceTimeOutAdapter.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = QCloudIntelligenceTimeOutAdapter.h; path = QCloudCore/Classes/Base/QCLOUDRestNet/TimeOutAdapter/QCloudIntelligenceTimeOutAdapter.h; sourceTree = ""; }; + B34B9D4244B907E89430EFBB1D393221 /* UIView+SDExtension.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "UIView+SDExtension.h"; path = "SDCycleScrollView/Lib/SDCycleScrollView/UIView+SDExtension.h"; sourceTree = ""; }; + B3640160F31D225FC53EE555B691915B /* MQTTStrict.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = MQTTStrict.h; path = MQTTClient/MQTTClient/MQTTStrict.h; sourceTree = ""; }; + B36C796F49BEF7ABEF89640467C9035F /* ssim_sse2.c */ = {isa = PBXFileReference; includeInIndex = 1; name = ssim_sse2.c; path = src/dsp/ssim_sse2.c; sourceTree = ""; }; + B39097140D840BDDCA338BF5FCEA54DD /* quant_levels_utils.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = quant_levels_utils.h; path = src/utils/quant_levels_utils.h; sourceTree = ""; }; + B39FEB9C855D12863B860088E1C6D012 /* MBProgressHUD-Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "MBProgressHUD-Info.plist"; sourceTree = ""; }; + B3AD45250B6947E772C50E6896E5745D /* LLMoveWindow.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = LLMoveWindow.h; path = LLDebugTool/Core/Others/CommonUI/View/MoveWindow/LLMoveWindow.h; sourceTree = ""; }; + B3BA5D06353974236746C59F1C574993 /* OSSHttpResponseParser.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = OSSHttpResponseParser.h; path = AliyunOSSSDK/OSSHttpResponseParser.h; sourceTree = ""; }; + B3EFA030454F7A7EFF92DA22D9943AFF /* SDWebImageDefine.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDWebImageDefine.h; path = SDWebImage/Core/SDWebImageDefine.h; sourceTree = ""; }; + B3F8EF9485DEC55AA942156C83C2120C /* TZVideoCropController.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = TZVideoCropController.m; path = TZImagePickerController/TZImagePickerController/TZVideoCropController.m; sourceTree = ""; }; + B416AE5CAE1C71E0CD37C132DDACE397 /* OSSGetBucketInfoRequest.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = OSSGetBucketInfoRequest.h; path = AliyunOSSSDK/OSSGetBucketInfoRequest.h; sourceTree = ""; }; + B41729B5536A6AC1354B2E5EADF8E6C4 /* IQUIScrollView+Additions.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "IQUIScrollView+Additions.m"; path = "IQKeyboardManager/Categories/IQUIScrollView+Additions.m"; sourceTree = ""; }; + B420B532516143FB623C377EE29C5A9F /* YYTextContainerView.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = YYTextContainerView.h; path = YYText/Component/YYTextContainerView.h; sourceTree = ""; }; + B42A64C3FD634897BDC5A5415634AD6C /* JXCategoryBaseCell.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = JXCategoryBaseCell.m; path = Sources/Base/JXCategoryBaseCell.m; sourceTree = ""; }; + B42EC0846163C3D03398E8548B97FEF5 /* IQKeyboardManager-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "IQKeyboardManager-prefix.pch"; sourceTree = ""; }; + B43FC3C5CC9B826935924F7F1EA12B8B /* TZImagePickerController-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "TZImagePickerController-prefix.pch"; sourceTree = ""; }; + B4450DA054D5D02EF98C692E495AC1E8 /* NSString+RACSequenceAdditions.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "NSString+RACSequenceAdditions.h"; path = "ReactiveObjC/NSString+RACSequenceAdditions.h"; sourceTree = ""; }; + B45199EF5621FF4E7B7DEAE995A0EE45 /* AgoraLyricsScore-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "AgoraLyricsScore-dummy.m"; sourceTree = ""; }; + B453E2E3D8C067CE7A24ED9EB5F1E439 /* QCloudFCUUID.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = QCloudFCUUID.h; path = QCloudCore/Classes/Base/FCUUID/QCloudFCUUID.h; sourceTree = ""; }; + B48B52B32AA72880A0886B843068DC12 /* QGVAPlayer-Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "QGVAPlayer-Info.plist"; sourceTree = ""; }; + B4A579B3A81B3E600ADB0583CF752BFA /* FMDatabasePool.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FMDatabasePool.m; path = src/fmdb/FMDatabasePool.m; sourceTree = ""; }; + B4DF94FB31089F7B36BC6CB85F37D16B /* cost_neon.c */ = {isa = PBXFileReference; includeInIndex = 1; name = cost_neon.c; path = src/dsp/cost_neon.c; sourceTree = ""; }; + B5197FC8F3CA8278F03C3E69101DA835 /* SDAnimatedImagePlayer.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDAnimatedImagePlayer.m; path = SDWebImage/Core/SDAnimatedImagePlayer.m; sourceTree = ""; }; + B541F42AE2B69D8C59A6D106B6AE1B0C /* RACStringSequence.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = RACStringSequence.h; path = ReactiveObjC/RACStringSequence.h; sourceTree = ""; }; B5786D7DC0F4D5F19C5C3E4160C54D30 /* BRPickerView-BRPickerView.Privacy */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; name = "BRPickerView-BRPickerView.Privacy"; path = BRPickerView.Privacy.bundle; sourceTree = BUILT_PRODUCTS_DIR; }; B588E91362874F6E5D47A1D1768082D5 /* TUITextReplyQuoteViewData.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = TUITextReplyQuoteViewData.h; sourceTree = ""; }; - B5A0554B0D24867830340AC05E6BAF2B /* JXCategoryFactory.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = JXCategoryFactory.h; path = Sources/Common/JXCategoryFactory.h; sourceTree = ""; }; - B5A9F243B9EAC464EE4B36D914634458 /* FMDatabase.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FMDatabase.m; path = src/fmdb/FMDatabase.m; sourceTree = ""; }; - B5B05BEABBCA1F1EE87AA9BDCE556886 /* YBIBCollectionView.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = YBIBCollectionView.h; path = YBImageBrowser/Base/YBIBCollectionView.h; sourceTree = ""; }; - B5C17A4B17EA0D8B7BA709B8B341F4B7 /* OSSGetBucketInfoResult.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = OSSGetBucketInfoResult.h; path = AliyunOSSSDK/OSSGetBucketInfoResult.h; sourceTree = ""; }; - B5CAC29105D74AAA2CBE6ACF725518DD /* YYTextSelectionView.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = YYTextSelectionView.m; path = YYText/Component/YYTextSelectionView.m; sourceTree = ""; }; - B5D3F03AAA3E760C3B8E3678058C233C /* OSSTaskCompletionSource.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = OSSTaskCompletionSource.h; path = AliyunOSSSDK/OSSTask/OSSTaskCompletionSource.h; sourceTree = ""; }; - B5D3F9F4DF3C1DC363F3C1747A0F042C /* LLHtmlWindow.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = LLHtmlWindow.h; path = LLDebugTool/Core/Component/Html/UserInterface/LLHtmlWindow.h; sourceTree = ""; }; - B5E455DE9A138D99A488F5572102CFCB /* RACStream+Private.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "RACStream+Private.h"; path = "ReactiveObjC/RACStream+Private.h"; sourceTree = ""; }; - B5E7CFC45EF81FB9D62C25BD34A73694 /* LLHierarchyDetailViewController.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = LLHierarchyDetailViewController.h; path = LLDebugTool/Core/Component/Hierarchy/UserInterface/LLHierarchyDetailViewController.h; sourceTree = ""; }; - B5F401CFC257F77EC27724C8E9B72978 /* RACCompoundDisposable.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = RACCompoundDisposable.h; path = ReactiveObjC/RACCompoundDisposable.h; sourceTree = ""; }; - B5FE646DE5FC4AD3481E835DD271302D /* NSSet+RACSequenceAdditions.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "NSSet+RACSequenceAdditions.m"; path = "ReactiveObjC/NSSet+RACSequenceAdditions.m"; sourceTree = ""; }; - B61C6DFC91DD916296E6BFFCE696D21D /* QGVAPWeakProxy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = QGVAPWeakProxy.m; path = iOS/QGVAPlayer/QGVAPlayer/Classes/Utils/QGVAPWeakProxy.m; sourceTree = ""; }; - B63ACEC26A9E5DB8885AAC32E3FE10D1 /* OSSPutObjectTaggingResult.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = OSSPutObjectTaggingResult.m; path = AliyunOSSSDK/OSSPutObjectTaggingResult.m; sourceTree = ""; }; - B63BA3093E22820A65B90FF7FBB0962E /* BRPickerView.bundle */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = "wrapper.plug-in"; name = BRPickerView.bundle; path = BRPickerView/Core/BRPickerView.bundle; sourceTree = ""; }; - B6BE47762C9A79E0899482F4EFDDF8BE /* LLRouter+Network.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "LLRouter+Network.h"; path = "LLDebugTool/Core/Others/Router/LLRouter+Network.h"; sourceTree = ""; }; + B595928CE760ACED587ACBD354A996E5 /* QCloudCustomLoaderTask.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = QCloudCustomLoaderTask.h; path = QCloudCore/Classes/Base/CustomLoader/QCloudCustomLoaderTask.h; sourceTree = ""; }; + B5A7D9BF4FBA4AD9B22E5FBCF274C23D /* NSObject+LL_Runtime.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "NSObject+LL_Runtime.h"; path = "LLDebugTool/Core/Others/Category/NSObject/NSObject+LL_Runtime.h"; sourceTree = ""; }; + B5B157A5E92B737599FC3070A80C7852 /* AgoraInfra_iOS-xcframeworks.sh */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.script.sh; path = "AgoraInfra_iOS-xcframeworks.sh"; sourceTree = ""; }; + B5B4D189B02DA7C4E95C697B6F95821C /* YYModel-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "YYModel-dummy.m"; sourceTree = ""; }; + B5B5872A0CC38D9CA24F16F06750DB2E /* NSMutableString+AvoidCrash.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "NSMutableString+AvoidCrash.m"; path = "AvoidCrash/NSMutableString+AvoidCrash.m"; sourceTree = ""; }; + B5B9188878E25F64DA70532A79013953 /* AgoraRtcEngine_iOS-xcframeworks.sh */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.script.sh; path = "AgoraRtcEngine_iOS-xcframeworks.sh"; sourceTree = ""; }; + B5D4B6F06B24BD60D5A8E84B41C1D8CA /* QGBaseDFileInfo.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = QGBaseDFileInfo.h; path = iOS/QGVAPlayer/QGVAPlayer/Classes/Models/QGBaseDFileInfo.h; sourceTree = ""; }; + B5E71CD21CE2DDBF542958688F951266 /* LLTitleCellView.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = LLTitleCellView.h; path = LLDebugTool/Core/Others/CommonUI/View/CellView/LLTitleCellView.h; sourceTree = ""; }; + B5F5042F3896571E05E61122C0162866 /* yuv_neon.c */ = {isa = PBXFileReference; includeInIndex = 1; name = yuv_neon.c; path = src/dsp/yuv_neon.c; sourceTree = ""; }; + B6123F6972C52F09194644A8E32B02B0 /* QCloudSHAPart.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = QCloudSHAPart.h; path = QCloudCore/Classes/Base/QCLOUDFileUtils/QCloudSHAPart.h; sourceTree = ""; }; + B6275FE53E390549AAD224E337C65C23 /* UIGestureRecognizer+YYAdd.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "UIGestureRecognizer+YYAdd.m"; path = "YYCategories/UIKit/UIGestureRecognizer+YYAdd.m"; sourceTree = ""; }; + B6294F5B706E4071476626A139BF4F4C /* SVGAVideoSpriteEntity.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SVGAVideoSpriteEntity.h; path = Source/SVGAVideoSpriteEntity.h; sourceTree = ""; }; + B652FC8625E543BC390939A913ABDD71 /* NSMutableDictionary+AvoidCrash.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "NSMutableDictionary+AvoidCrash.m"; path = "AvoidCrash/NSMutableDictionary+AvoidCrash.m"; sourceTree = ""; }; + B656772A40F6C7D8AA8B172EE33D1AD1 /* UIRefreshControl+AFNetworking.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "UIRefreshControl+AFNetworking.m"; path = "UIKit+AFNetworking/UIRefreshControl+AFNetworking.m"; sourceTree = ""; }; + B67587D4C6EDE3D3F984451E994D0B8B /* OSSHttpResponseParser.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = OSSHttpResponseParser.m; path = AliyunOSSSDK/OSSHttpResponseParser.m; sourceTree = ""; }; + B679C0655074D606AA2C774339FD7D46 /* SDWebImageDefine.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDWebImageDefine.m; path = SDWebImage/Core/SDWebImageDefine.m; sourceTree = ""; }; + B68B32C40EAACFBF41CA0FBC1546C6AF /* NSData+RACSupport.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "NSData+RACSupport.h"; path = "ReactiveObjC/NSData+RACSupport.h"; sourceTree = ""; }; + B69E322B6DF26946B4E37955EAB6FDDD /* NSData+ImageContentType.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "NSData+ImageContentType.m"; path = "SDWebImage/Core/NSData+ImageContentType.m"; sourceTree = ""; }; + B6A6AC94FB0F9728EB722EEDE82ED258 /* BRDatePickerView.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = BRDatePickerView.m; path = BRPickerView/DatePicker/BRDatePickerView.m; sourceTree = ""; }; B6C84846E5D81455F1F75911720D9FF9 /* TUIReplyQuoteViewData.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = TUIReplyQuoteViewData.h; sourceTree = ""; }; - B6D38AC750D197B3F8888F2C342BED27 /* QGMP4Parser.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = QGMP4Parser.h; path = iOS/QGVAPlayer/QGVAPlayer/Classes/MP4Parser/QGMP4Parser.h; sourceTree = ""; }; - B6F57065A876E2A87F53681BB4879762 /* NSObject+RACDescription.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "NSObject+RACDescription.h"; path = "ReactiveObjC/NSObject+RACDescription.h"; sourceTree = ""; }; - B708C0DD3E89131594A6BE90E31BC52A /* bit_reader_utils.c */ = {isa = PBXFileReference; includeInIndex = 1; name = bit_reader_utils.c; path = src/utils/bit_reader_utils.c; sourceTree = ""; }; - B723F5123B1E1AF062A2FC17FBA8F916 /* RACEagerSequence.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = RACEagerSequence.h; path = ReactiveObjC/RACEagerSequence.h; sourceTree = ""; }; - B726AD5EA5152EC7A81AFCAB38FB480B /* FMDB-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "FMDB-umbrella.h"; sourceTree = ""; }; - B72AC929631FC454D1821CE0FA547C98 /* LLFilterEventView.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = LLFilterEventView.h; path = LLDebugTool/Core/Others/CommonUI/View/FilterView/LLFilterEventView.h; sourceTree = ""; }; - B73A54C6B2C5265F811AB9D5CB3A21DF /* BRDatePickerView+BR.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "BRDatePickerView+BR.m"; path = "BRPickerView/DatePicker/BRDatePickerView+BR.m"; sourceTree = ""; }; - B7492E14C2FD946DFC80BE5BDC0BD97D /* LLHierarchyHelper.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = LLHierarchyHelper.m; path = LLDebugTool/Core/Component/Hierarchy/Function/LLHierarchyHelper.m; sourceTree = ""; }; - B769D82EDC972B8FD1AA80B222B81C75 /* SDImageAssetManager.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDImageAssetManager.m; path = SDWebImage/Private/SDImageAssetManager.m; sourceTree = ""; }; - B76A88E31B455C6DD5C9FCDE72B9F4BE /* YBIBSentinel.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = YBIBSentinel.h; path = YBImageBrowser/Helper/YBIBSentinel.h; sourceTree = ""; }; + B6EBDFFAC616F225B0F0B402279D197E /* JXCategoryNumberCell.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = JXCategoryNumberCell.h; path = Sources/Number/JXCategoryNumberCell.h; sourceTree = ""; }; + B6F5769BC1BCC9441BEC34B156174379 /* LLWindowManager+Html.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "LLWindowManager+Html.h"; path = "LLDebugTool/Core/Component/Html/UserInterface/LLWindowManager+Html.h"; sourceTree = ""; }; + B70428F70E136CC5D04C08B674B64DCF /* YBIBLoadingView.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = YBIBLoadingView.h; path = YBImageBrowser/AuxiliaryView/YBIBLoadingView.h; sourceTree = ""; }; + B704460D3FE367377F547A4693C164DF /* QCloudHTTPMultiDataStream.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = QCloudHTTPMultiDataStream.m; path = QCloudCore/Classes/Base/QCLOUDRestNet/DataForm/QCloudHTTPMultiDataStream.m; sourceTree = ""; }; + B7079B92C39DEFCD1A9B3BB71454276B /* YBImageBrowser.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = YBImageBrowser.debug.xcconfig; sourceTree = ""; }; + B716F297BF2BB5EC6D457C8F094B3E05 /* OSSRestoreObjectRequest.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = OSSRestoreObjectRequest.m; path = AliyunOSSSDK/OSSRestoreObjectRequest.m; sourceTree = ""; }; + B72A03F02CCB8306A16F5545921CFE99 /* AgoraInfra_iOS.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = AgoraInfra_iOS.debug.xcconfig; sourceTree = ""; }; + B7431A41094D0C01BEA07A2A2C43DCE6 /* NSHTTPCookie+QCloudNetworking.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "NSHTTPCookie+QCloudNetworking.m"; path = "QCloudCore/Classes/Base/QCLOUDRestNet/CoreRequest/NSHTTPCookie+QCloudNetworking.m"; sourceTree = ""; }; + B75D4455617F6A55CDB1F1819FD7D2B8 /* UISegmentedControl+RACSignalSupport.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "UISegmentedControl+RACSignalSupport.h"; path = "ReactiveObjC/UISegmentedControl+RACSignalSupport.h"; sourceTree = ""; }; + B7725C9811C809D2358ED8C18D5CD403 /* GPBDescriptor_PackagePrivate.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = GPBDescriptor_PackagePrivate.h; path = objectivec/GPBDescriptor_PackagePrivate.h; sourceTree = ""; }; + B7785600CA1CE726B540619F36C210A5 /* QCloudHTTPMultiDataStream.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = QCloudHTTPMultiDataStream.h; path = QCloudCore/Classes/Base/QCLOUDRestNet/DataForm/QCloudHTTPMultiDataStream.h; sourceTree = ""; }; + B7892AEF4411015DDFAB086FEE155ED4 /* SVGAPlayer-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "SVGAPlayer-prefix.pch"; sourceTree = ""; }; + B797D80EB0169E30138FE4FBEE6B2DC6 /* UIView+WebCache.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "UIView+WebCache.m"; path = "SDWebImage/Core/UIView+WebCache.m"; sourceTree = ""; }; + B7A6746B537DB89FA421A75F17088A77 /* SDImageCacheConfig.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDImageCacheConfig.h; path = SDWebImage/Core/SDImageCacheConfig.h; sourceTree = ""; }; + B7A86637AF0616375B4F723C21D06184 /* PrivacyInfo.xcprivacy */ = {isa = PBXFileReference; includeInIndex = 1; name = PrivacyInfo.xcprivacy; path = privacy/PrivacyInfo.xcprivacy; sourceTree = ""; }; B7AC52C17666EC6525CFE7E07F4A589A /* UIView+TUIToast.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "UIView+TUIToast.m"; sourceTree = ""; }; - B7AC9CD559132EAAE413E73BF1A905A0 /* mz_crypt_apple.c */ = {isa = PBXFileReference; includeInIndex = 1; name = mz_crypt_apple.c; path = SSZipArchive/minizip/mz_crypt_apple.c; sourceTree = ""; }; - B7E41137BC494F0940A883E840BE75BE /* upsampling_sse41.c */ = {isa = PBXFileReference; includeInIndex = 1; name = upsampling_sse41.c; path = src/dsp/upsampling_sse41.c; sourceTree = ""; }; + B7B9417ADC72AFB9DB5C0C63BD184A23 /* OSSIPv6Adapter.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = OSSIPv6Adapter.m; path = AliyunOSSSDK/OSSIPv6/OSSIPv6Adapter.m; sourceTree = ""; }; + B7C16BEB4788EC54D17700770DCFF936 /* MQTTInMemoryPersistence.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = MQTTInMemoryPersistence.h; path = MQTTClient/MQTTClient/MQTTInMemoryPersistence.h; sourceTree = ""; }; + B7CAED8CFBD58A948FEFDC98D05B3A1A /* FileCache.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = FileCache.swift; path = AgoraLyricsScore/Class/Downloader/FileCache.swift; sourceTree = ""; }; B7EA6FC9AF22FF281CCFF1E883E9E1A8 /* OfflinePushExtInfo.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = OfflinePushExtInfo.h; sourceTree = ""; }; B806B2B3C57CE699810BCE2A2F244814 /* TUIRepliesDetailViewController_Minimalist.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = TUIRepliesDetailViewController_Minimalist.m; sourceTree = ""; }; - B810A9B9528573F1C75469C4C3C78D7B /* NSData+OSS.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "NSData+OSS.m"; path = "AliyunOSSSDK/NSData+OSS.m"; sourceTree = ""; }; - B813480C42AEE8F8D9DE51F840E096F5 /* GPBUtilities.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = GPBUtilities.m; path = objectivec/GPBUtilities.m; sourceTree = ""; }; - B819BB8F676B0834236C011C2159475B /* YBIBVideoCell.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = YBIBVideoCell.m; path = Video/YBIBVideoCell.m; sourceTree = ""; }; + B80E2691F8C188D11FE61DFAD52C6FF3 /* LLHierarchyComponent.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = LLHierarchyComponent.m; path = LLDebugTool/Core/Component/Hierarchy/LLHierarchyComponent.m; sourceTree = ""; }; + B814FE7579B6E29BCC634F44EFE75BBD /* QCloudClientContext.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = QCloudClientContext.h; path = QCloudCore/Classes/Base/QCloudClientBase/QCloudClientContext.h; sourceTree = ""; }; + B824EF32F8F9CB34233DB0D1331D0198 /* LLBaseView.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = LLBaseView.m; path = LLDebugTool/Core/Others/CommonUI/Base/LLBaseView.m; sourceTree = ""; }; + B82A0D7E1A5BEAAB36593700CD9789D1 /* RACDynamicSequence.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = RACDynamicSequence.m; path = ReactiveObjC/RACDynamicSequence.m; sourceTree = ""; }; + B85B877F076DC7FFAD6874AFA8E3EE86 /* UIPasteboard+YYText.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "UIPasteboard+YYText.m"; path = "YYText/Utility/UIPasteboard+YYText.m"; sourceTree = ""; }; + B86C6E30F767B19901BA01F9973BEB94 /* types.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = types.h; path = src/webp/types.h; sourceTree = ""; }; + B8774079A41F3B0A8535EDA4B2D90E8B /* QCloudClassInfo.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = QCloudClassInfo.m; path = QCloudCore/Classes/Base/QCLOUDObjectModel/QCloudClassInfo.m; sourceTree = ""; }; B879E4375802FD736178B03F962A9610 /* TUIGroupCreatedCell.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = TUIGroupCreatedCell.h; sourceTree = ""; }; + B87B21B49952B070175DF9812055AA23 /* MASConstraint.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = MASConstraint.m; path = Masonry/MASConstraint.m; sourceTree = ""; }; + B8876136C9D6D7FB2DFDE81F966721BF /* BRAddressPickerView.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = BRAddressPickerView.h; path = BRPickerView/Deprecated/AddressPickerView/BRAddressPickerView.h; sourceTree = ""; }; + B88A3739A28696C3C8546E4FA37BB037 /* UIActionSheet+RACSignalSupport.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "UIActionSheet+RACSignalSupport.h"; path = "ReactiveObjC/UIActionSheet+RACSignalSupport.h"; sourceTree = ""; }; B8A83C9055BE34E4EF6EC84D0CB16FE2 /* TUIFoldConversationListBaseDataProvider.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = TUIFoldConversationListBaseDataProvider.m; sourceTree = ""; }; - B8B1F72D4C37FC81350C23A26CBCE359 /* UIView+YYAdd.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "UIView+YYAdd.h"; path = "YYCategories/UIKit/UIView+YYAdd.h"; sourceTree = ""; }; - B8CF257FCD97F54FEC8ADBEE98239478 /* SDAssociatedObject.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDAssociatedObject.m; path = SDWebImage/Private/SDAssociatedObject.m; sourceTree = ""; }; - B8DCECE609B6998C0E522248044B5682 /* QGVAPMetalRenderer.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = QGVAPMetalRenderer.m; path = iOS/QGVAPlayer/QGVAPlayer/Classes/Views/Metal/Vapx/QGVAPMetalRenderer.m; sourceTree = ""; }; - B91587F4676D44AEA2A4F341A62F8156 /* UIScrollView+MJExtension.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "UIScrollView+MJExtension.m"; path = "MJRefresh/UIScrollView+MJExtension.m"; sourceTree = ""; }; + B8B6B8F0BED93D0BD0BEE76007D1292A /* NSURLSessionConfiguration+LL_Network.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "NSURLSessionConfiguration+LL_Network.h"; path = "LLDebugTool/Core/Component/Network/Function/NSURLSessionConfiguration/NSURLSessionConfiguration+LL_Network.h"; sourceTree = ""; }; + B8D1EBF59A6C0A03F9590D0AA698BCB2 /* LLThemeColor.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = LLThemeColor.h; path = LLDebugTool/Core/Others/Manager/ThemeManager/LLThemeColor.h; sourceTree = ""; }; + B90E60B1CFDBCB3F2F1CE555E8427A14 /* OSSTaskCompletionSource.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = OSSTaskCompletionSource.h; path = AliyunOSSSDK/OSSTask/OSSTaskCompletionSource.h; sourceTree = ""; }; + B917F66CF01EF9C9879E67E2E6C23986 /* MJRefresh-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "MJRefresh-dummy.m"; sourceTree = ""; }; + B91D5E724A7FD050682DF4FCBF8F7BB1 /* YYImage-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "YYImage-dummy.m"; sourceTree = ""; }; + B922E9ADCAEA935DF2606C8A82973216 /* AgoraAiNoiseSuppressionExtension.xcframework */ = {isa = PBXFileReference; includeInIndex = 1; path = AgoraAiNoiseSuppressionExtension.xcframework; sourceTree = ""; }; + B92838BE8B1A42670B845820CB759CB9 /* LLRulerPickerView.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = LLRulerPickerView.h; path = LLDebugTool/Core/Component/Ruler/UserInterface/LLRulerPickerView.h; sourceTree = ""; }; + B9353A29D6EC6E90EC2C64FADEDD0A22 /* SDAnimatedImage.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDAnimatedImage.m; path = SDWebImage/Core/SDAnimatedImage.m; sourceTree = ""; }; + B95A480D773A0692D0129A94C8455AC3 /* LLSandboxTextPreviewController.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = LLSandboxTextPreviewController.h; path = LLDebugTool/Core/Component/Sandbox/UserInterface/LLSandboxTextPreviewController.h; sourceTree = ""; }; + B9703A7371293EECD3570B5B2DFAD0FD /* QCloudLogManager.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = QCloudLogManager.m; path = QCloudCOSXML/Classes/Base/QCloudLogManager.m; sourceTree = ""; }; B9862FD66F22C24BA599EAE94D867A8A /* TUIGroupButtonCell_Minimalist.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = TUIGroupButtonCell_Minimalist.m; sourceTree = ""; }; - B9915BD4B37F03DE533465064F22DC10 /* SDWebImageError.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDWebImageError.m; path = SDWebImage/Core/SDWebImageError.m; sourceTree = ""; }; B995F64C2759E6ADA670C67D6AD2F04A /* TUIChatMediaDataProvider.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = TUIChatMediaDataProvider.m; sourceTree = ""; }; - B9B1E54D66B187A0C86E3F7D8B4F9033 /* SDCallbackQueue.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDCallbackQueue.m; path = SDWebImage/Core/SDCallbackQueue.m; sourceTree = ""; }; + B99AE0D7C723D7EB2F76A31B2A18E2A2 /* MQTTSessionLegacy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = MQTTSessionLegacy.m; path = MQTTClient/MQTTClient/MQTTSessionLegacy.m; sourceTree = ""; }; + B9AA5F5F417330491DDCA3C808098DB3 /* YBIBImageScrollView.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = YBIBImageScrollView.h; path = YBImageBrowser/Image/YBIBImageScrollView.h; sourceTree = ""; }; + B9CE7D5CE139AF9EA1712245C57B9C42 /* zip.c */ = {isa = PBXFileReference; includeInIndex = 1; name = zip.c; path = Zip/minizip/zip.c; sourceTree = ""; }; + B9DA828B683D4E0C716E72D7455447D9 /* BRPickerAlertView.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = BRPickerAlertView.m; path = BRPickerView/Core/BRPickerAlertView.m; sourceTree = ""; }; B9E1C417847BC5FDC1B91A3641CA45F0 /* TUIFileReplyQuoteView_Minimalist.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = TUIFileReplyQuoteView_Minimalist.m; sourceTree = ""; }; - B9E86BFCEBE64215BCEABA540178ED6C /* SDAnimatedImageView+WebCache.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "SDAnimatedImageView+WebCache.m"; path = "SDWebImage/Core/SDAnimatedImageView+WebCache.m"; sourceTree = ""; }; - B9F50D6670460F2401C7FF47F4640122 /* AgoraRtcEngine_iOS-xcframeworks.sh */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.script.sh; path = "AgoraRtcEngine_iOS-xcframeworks.sh"; sourceTree = ""; }; - BA047E6FEE17317C5DC12CC626EB3C4D /* MJRefreshBackGifFooter.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = MJRefreshBackGifFooter.h; path = MJRefresh/Custom/Footer/Back/MJRefreshBackGifFooter.h; sourceTree = ""; }; - BA11557E5E51E567D930384B83024C1C /* LLBaseModel.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = LLBaseModel.m; path = LLDebugTool/Core/Others/CommonUI/Base/LLBaseModel.m; sourceTree = ""; }; + BA05A74193017E1B72355F6DBA29D068 /* UIActivityIndicatorView+AFNetworking.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "UIActivityIndicatorView+AFNetworking.m"; path = "UIKit+AFNetworking/UIActivityIndicatorView+AFNetworking.m"; sourceTree = ""; }; + BA2C6FBDA88DFCD94CDF34B9CC6B5B8B /* mz_strm_mem.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = mz_strm_mem.h; path = SSZipArchive/minizip/mz_strm_mem.h; sourceTree = ""; }; BA3590990882B5B4A19670AC9FA0D493 /* TUICoreTheme_Minimalist.bundle */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = "wrapper.plug-in"; name = TUICoreTheme_Minimalist.bundle; path = Resources/TUICoreTheme_Minimalist.bundle; sourceTree = ""; }; - BA55F982A6001CDFC735D703067BBF0C /* PrivacyInfo.xcprivacy */ = {isa = PBXFileReference; includeInIndex = 1; path = PrivacyInfo.xcprivacy; sourceTree = ""; }; - BA5624B6B53B6AAE7EBD213B04A574C6 /* IQKeyboardManager.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = IQKeyboardManager.debug.xcconfig; sourceTree = ""; }; + BA4C78CE2CF50A328F19C6033C8C4F93 /* LLConfig.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = LLConfig.m; path = LLDebugTool/DebugTool/LLConfig.m; sourceTree = ""; }; + BA4E41152B130497D7FC307144BBB8C8 /* QGHWDMetalRenderer.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = QGHWDMetalRenderer.m; path = iOS/QGVAPlayer/QGVAPlayer/Classes/Views/Metal/QGHWDMetalRenderer.m; sourceTree = ""; }; + BA5A046FB178953580894853399DB5E8 /* NSBundle+BRPickerView.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "NSBundle+BRPickerView.h"; path = "BRPickerView/Core/NSBundle+BRPickerView.h"; sourceTree = ""; }; BA5E2BA85421BF845B20D61D8845C1B5 /* TUICloudCustomDataTypeCenter.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = TUICloudCustomDataTypeCenter.m; sourceTree = ""; }; + BA5FC428BEF9A50F902D7F72BB603BC5 /* SVGAPlayer.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.module; path = SVGAPlayer.modulemap; sourceTree = ""; }; BA6033E0DA62139833B7CF1C3B444B05 /* TUIFoldListViewController_Minimalist.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = TUIFoldListViewController_Minimalist.h; sourceTree = ""; }; - BA67255D1AA575A42E3214EBB2F08197 /* AFNetworking-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "AFNetworking-prefix.pch"; sourceTree = ""; }; - BAA6A39ED98465F092CAF01FE55BF1F1 /* ResourceBundle-AliyunOSSiOS_Privacy-AliyunOSSiOS-Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "ResourceBundle-AliyunOSSiOS_Privacy-AliyunOSSiOS-Info.plist"; sourceTree = ""; }; - BAF9BE5954777541BF814E47C33C935E /* UIColor+JXAdd.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "UIColor+JXAdd.h"; path = "Sources/Common/UIColor+JXAdd.h"; sourceTree = ""; }; - BB376250D12E6D6D2BF76FDB5D15F278 /* Masonry-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "Masonry-dummy.m"; sourceTree = ""; }; - BB3B777CE044B579EA8BE98F9D154765 /* mips_macro.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = mips_macro.h; path = src/dsp/mips_macro.h; sourceTree = ""; }; - BB3FC9FA77CAA4B5A047F3F0B67AF17D /* SDCycleScrollView.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDCycleScrollView.m; path = SDCycleScrollView/Lib/SDCycleScrollView/SDCycleScrollView.m; sourceTree = ""; }; + BA6D334238E33F7648A0A126AA2569DC /* LLHierarchyInfoView.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = LLHierarchyInfoView.h; path = LLDebugTool/Core/Component/Hierarchy/UserInterface/LLHierarchyInfoView.h; sourceTree = ""; }; + BAA163586BEA8551A768765B67B1AABD /* LLScreenshotPreviewViewController.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = LLScreenshotPreviewViewController.m; path = LLDebugTool/Core/Component/Screenshot/UserInterface/LLScreenshotPreviewViewController.m; sourceTree = ""; }; + BABEB31645FCCB421C9DB0258E8EDB0F /* QCloudCOSXMLUploadObjectRequest.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = QCloudCOSXMLUploadObjectRequest.h; path = QCloudCOSXML/Classes/Transfer/request/QCloudCOSXMLUploadObjectRequest.h; sourceTree = ""; }; + BAD3D4F05D735E651C44225EEBA0ED08 /* FMDB.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = FMDB.release.xcconfig; sourceTree = ""; }; + BADC0186524F48319412F2A94BA1F0AE /* cost_enc.c */ = {isa = PBXFileReference; includeInIndex = 1; name = cost_enc.c; path = src/enc/cost_enc.c; sourceTree = ""; }; + BAE3CA1A2F7CC361F3AD4EA2A5F38A46 /* IQKeyboardManager.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = IQKeyboardManager.m; path = IQKeyboardManager/IQKeyboardManager.m; sourceTree = ""; }; + BAF83BAFBB271E58F6BD133128490A58 /* QCloudCOSXMLDownloadObjectRequest.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = QCloudCOSXMLDownloadObjectRequest.m; path = QCloudCOSXML/Classes/Transfer/request/QCloudCOSXMLDownloadObjectRequest.m; sourceTree = ""; }; + BB1735604A32A761B18E5AB7D7427E72 /* UIGestureRecognizer+RACSignalSupport.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "UIGestureRecognizer+RACSignalSupport.h"; path = "ReactiveObjC/UIGestureRecognizer+RACSignalSupport.h"; sourceTree = ""; }; + BB22CF2535044A0A5C300D31ECF18D68 /* AgoraComponetLog.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = AgoraComponetLog.debug.xcconfig; sourceTree = ""; }; + BB2BA76D5803E39A8FF2C99711A62EC0 /* TZProgressView.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = TZProgressView.m; path = TZImagePickerController/TZImagePickerController/TZProgressView.m; sourceTree = ""; }; + BB4A42C5906BCDBC119A793E08C16200 /* LLToastUtils.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = LLToastUtils.m; path = LLDebugTool/Core/Others/ToastUtils/LLToastUtils.m; sourceTree = ""; }; BB4F011171FCB76B1AEBE390F843E930 /* JXCategoryView-JXCategoryView */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; name = "JXCategoryView-JXCategoryView"; path = JXCategoryView.bundle; sourceTree = BUILT_PRODUCTS_DIR; }; BB5265554F5E08EB827691D22296A69D /* TUIReplyMessageCellData.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = TUIReplyMessageCellData.m; sourceTree = ""; }; BB562BFA68708C2AEC93AD36A2E0D95E /* TUIFileViewController.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = TUIFileViewController.m; sourceTree = ""; }; - BB73D23FDDE202789585E343649BF4D9 /* OSSNSLogger.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = OSSNSLogger.m; path = AliyunOSSSDK/OSSFileLog/OSSNSLogger.m; sourceTree = ""; }; - BB76C8765ED12589358F806A48426A00 /* SVGAVideoSpriteEntity.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SVGAVideoSpriteEntity.h; path = Source/SVGAVideoSpriteEntity.h; sourceTree = ""; }; - BB7828C91DBD796106F506300C7CDF36 /* LLNetworkFilterViewController.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = LLNetworkFilterViewController.m; path = LLDebugTool/Core/Component/Network/UserInterface/LLNetworkFilterViewController.m; sourceTree = ""; }; - BB7C656C69B7991466749BA9583DCEC9 /* NSObject+YBImageBrowser.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "NSObject+YBImageBrowser.m"; path = "YBImageBrowser/Base/NSObject+YBImageBrowser.m"; sourceTree = ""; }; - BBC1F5060599CCD3877037976AD18304 /* GPBDictionary.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = GPBDictionary.h; path = objectivec/GPBDictionary.h; sourceTree = ""; }; + BB719ECE2616F368FFEEB36F18BB403E /* LLAppInfoWindow.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = LLAppInfoWindow.m; path = LLDebugTool/Core/Component/AppInfo/UserInterface/LLAppInfoWindow.m; sourceTree = ""; }; + BB980D9D90D607350408E38B8BBE7208 /* LLTitleCellModel.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = LLTitleCellModel.m; path = LLDebugTool/Core/Others/CommonUI/View/TitleCell/LLTitleCellModel.m; sourceTree = ""; }; + BBB8E73527FB7E5B15612F429C0A8F2E /* RACReplaySubject.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = RACReplaySubject.h; path = ReactiveObjC/RACReplaySubject.h; sourceTree = ""; }; + BBDDEA7F7D6153715B217B0861D9E005 /* RACDynamicSequence.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = RACDynamicSequence.h; path = ReactiveObjC/RACDynamicSequence.h; sourceTree = ""; }; BBE47E39AE0BA6E5CD95FE71B6CE0CBE /* TUIVideoMessageCellData.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = TUIVideoMessageCellData.h; sourceTree = ""; }; - BBE9BE2772E3AD3AA9B174F7E636D0A6 /* ScoringMachineProtocol+Infos.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "ScoringMachineProtocol+Infos.swift"; path = "AgoraLyricsScore/Class/Scoring/ScoringMachineProtocol+Infos.swift"; sourceTree = ""; }; BBEA8037ABA4B0C60F53C9D1AFB4606C /* TUIKitLocalizable.bundle */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = "wrapper.plug-in"; name = TUIKitLocalizable.bundle; path = Resources/TUIKitLocalizable.bundle; sourceTree = ""; }; - BC3C5636EC722E4AC6FD8283868C22CE /* LLTitleViewController.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = LLTitleViewController.m; path = LLDebugTool/Core/Others/CommonUI/ViewController/TitleViewController/LLTitleViewController.m; sourceTree = ""; }; - BC48BFCABBB6EE95E092F94E3C3B28F1 /* BRDatePickerView+BR.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "BRDatePickerView+BR.h"; path = "BRPickerView/DatePicker/BRDatePickerView+BR.h"; sourceTree = ""; }; - BC57EAE742A855E9BD49E4B6B2435ACA /* AFNetworkActivityIndicatorManager.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = AFNetworkActivityIndicatorManager.m; path = "UIKit+AFNetworking/AFNetworkActivityIndicatorManager.m"; sourceTree = ""; }; - BC7648150172AC0F908F548A663CB6C6 /* SDImageCacheConfig.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDImageCacheConfig.h; path = SDWebImage/Core/SDImageCacheConfig.h; sourceTree = ""; }; + BBED4ABD03D03C415C1D40EC5AC793E5 /* AliyunOSSiOS.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = AliyunOSSiOS.release.xcconfig; sourceTree = ""; }; + BBF62AF43F45AA5E1F4B4AD591E48609 /* LLWidgetBorderComponent.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = LLWidgetBorderComponent.m; path = LLDebugTool/Core/Component/WidgetBorder/LLWidgetBorderComponent.m; sourceTree = ""; }; + BC1678DFFE2FD0D0919967D248C3C496 /* LLAppInfoHelper.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = LLAppInfoHelper.m; path = LLDebugTool/Core/Component/AppInfo/Function/LLAppInfoHelper.m; sourceTree = ""; }; + BC29A2455DEEC2E1DC7C35DE7214705D /* UIKit+AFNetworking.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "UIKit+AFNetworking.h"; path = "UIKit+AFNetworking/UIKit+AFNetworking.h"; sourceTree = ""; }; + BC29AB5ED56B3B4F0AF5D8CBE55017F1 /* LLButton.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = LLButton.h; path = LLDebugTool/Core/Others/CommonUI/View/TabBarButton/LLButton.h; sourceTree = ""; }; + BC35A905DD48CB76AFB0135B362F643F /* yuv_mips32.c */ = {isa = PBXFileReference; includeInIndex = 1; name = yuv_mips32.c; path = src/dsp/yuv_mips32.c; sourceTree = ""; }; BC8547508910F204B4AB9E124BFF0C13 /* TUIEmojiMeditorProtocol.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = TUIEmojiMeditorProtocol.h; sourceTree = ""; }; + BC88A109BE9F653CE64BD993A7F419D9 /* IQKeyboardManager-Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "IQKeyboardManager-Info.plist"; sourceTree = ""; }; BC904AEED689EF7B62DCF1FD5CE9ED43 /* TUICore.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = TUICore.m; sourceTree = ""; }; - BCC9D0A8697B7A2AC3B8D6D3F5DD4623 /* FMDatabaseAdditions.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FMDatabaseAdditions.m; path = src/fmdb/FMDatabaseAdditions.m; sourceTree = ""; }; - BD32AC887A0618F4E3DA892E88AE55D3 /* mz_strm_pkcrypt.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = mz_strm_pkcrypt.h; path = SSZipArchive/minizip/mz_strm_pkcrypt.h; sourceTree = ""; }; - BD57A55328407A1B60CBA41BDC6D00DB /* UIStepper+RACSignalSupport.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "UIStepper+RACSignalSupport.h"; path = "ReactiveObjC/UIStepper+RACSignalSupport.h"; sourceTree = ""; }; - BD6C1F056BABA6595A64AC4C6F437CBF /* UIScrollView+MJRefresh.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "UIScrollView+MJRefresh.m"; path = "MJRefresh/UIScrollView+MJRefresh.m"; sourceTree = ""; }; - BD7949A867962F461CDF24FC6813633D /* ReactiveObjC-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "ReactiveObjC-prefix.pch"; sourceTree = ""; }; + BC98CCFBF1EDA8F1689CA5CA43F79657 /* QCloudRequestData.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = QCloudRequestData.h; path = QCloudCore/Classes/Base/QCLOUDRestNet/CoreRequest/QCloudRequestData.h; sourceTree = ""; }; + BCF2A79A1CCAD410454C190955386D1C /* NSButton+WebCache.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "NSButton+WebCache.h"; path = "SDWebImage/Core/NSButton+WebCache.h"; sourceTree = ""; }; + BD199545E7D4B40A1730FD85D3611FB0 /* LLFunctionItemContainerView.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = LLFunctionItemContainerView.h; path = LLDebugTool/Core/Others/Component/Function/UserInterface/LLFunctionItemContainerView.h; sourceTree = ""; }; + BD39EE693FDD1016482B2126132727D6 /* cpu.c */ = {isa = PBXFileReference; includeInIndex = 1; name = cpu.c; path = src/dsp/cpu.c; sourceTree = ""; }; + BD3EFEA8D8C7A0FC5D460B9546BEB6BC /* MJRefreshTrailer.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = MJRefreshTrailer.h; path = MJRefresh/Base/MJRefreshTrailer.h; sourceTree = ""; }; + BD769B178C36278A102C5B37E74E8BF1 /* PrivacyInfo.xcprivacy */ = {isa = PBXFileReference; includeInIndex = 1; name = PrivacyInfo.xcprivacy; path = MJRefresh/PrivacyInfo.xcprivacy; sourceTree = ""; }; + BD802461011BF0D3BB86E9C8CB90F549 /* QGVAPWrapView.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = QGVAPWrapView.m; path = iOS/QGVAPlayer/QGVAPlayer/Classes/QGVAPWrapView.m; sourceTree = ""; }; BD84E6AC9ECD5194352D138B1C2FD5A4 /* TUIChatObjectFactory.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = TUIChatObjectFactory.m; sourceTree = ""; }; - BD892B6F45459AEBA85A914099D832FC /* RACEmptySequence.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = RACEmptySequence.h; path = ReactiveObjC/RACEmptySequence.h; sourceTree = ""; }; - BD8D64FCE0985D5A7DCB94E0A3C17B1F /* UIWindow+LL_Utils.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "UIWindow+LL_Utils.m"; path = "LLDebugTool/Core/Others/Category/UIWindow/UIWindow+LL_Utils.m"; sourceTree = ""; }; - BDA3927983699496B7D9033CA74611CC /* LLEnumDescription.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = LLEnumDescription.h; path = LLDebugTool/Core/Component/Hierarchy/Function/EnumDescription/LLEnumDescription.h; sourceTree = ""; }; - BDBF84D69482C7EB8833D25EF4FED0AC /* muxedit.c */ = {isa = PBXFileReference; includeInIndex = 1; name = muxedit.c; path = src/mux/muxedit.c; sourceTree = ""; }; - BDC0FB4AD840773A77D68DBADD5FAB22 /* OSSTask.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = OSSTask.h; path = AliyunOSSSDK/OSSTask/OSSTask.h; sourceTree = ""; }; + BD902CC30B9F9055A5B5A06DC5666750 /* LLAnimateView.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = LLAnimateView.m; path = LLDebugTool/Core/Others/CommonUI/View/AnimateView/LLAnimateView.m; sourceTree = ""; }; BDCD3DDCE37ACFD1BDD612F5969870AA /* CoreFoundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreFoundation.framework; path = Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS18.0.sdk/System/Library/Frameworks/CoreFoundation.framework; sourceTree = DEVELOPER_DIR; }; - BDDE6DDA00CA871418655CB96863F537 /* MQTTStrict.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = MQTTStrict.h; path = MQTTClient/MQTTClient/MQTTStrict.h; sourceTree = ""; }; - BE18BF96F9ED11445CF8FC24F2AA203D /* OSSGetSymlinkResult.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = OSSGetSymlinkResult.m; path = AliyunOSSSDK/OSSGetSymlinkResult.m; sourceTree = ""; }; + BDE1AA2A36E096D689FCD716B4C4E034 /* MQTTStrict.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = MQTTStrict.m; path = MQTTClient/MQTTClient/MQTTStrict.m; sourceTree = ""; }; + BDF89E7175CF443129F1FEEE83848352 /* RACDelegateProxy.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = RACDelegateProxy.h; path = ReactiveObjC/RACDelegateProxy.h; sourceTree = ""; }; + BE241C2F9A47D46A4AF4A623C4B1E59A /* OSSGetObjectTaggingRequest.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = OSSGetObjectTaggingRequest.m; path = AliyunOSSSDK/OSSGetObjectTaggingRequest.m; sourceTree = ""; }; BE315555765AD252485AF6B13582294D /* TUIFileMessageCell.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = TUIFileMessageCell.m; sourceTree = ""; }; - BE7128B3243B044F8F84F39B4078CC36 /* YYWebImage.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = YYWebImage.h; path = YYWebImage/YYWebImage.h; sourceTree = ""; }; - BE797AD1F23CC52C95C35CD7E1CC7C54 /* Api.pbobjc.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = Api.pbobjc.h; path = objectivec/google/protobuf/Api.pbobjc.h; sourceTree = ""; }; - BE8A3BA93CE6AF649E5A8BFE619067E1 /* IQUIView+Hierarchy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "IQUIView+Hierarchy.m"; path = "IQKeyboardManager/Categories/IQUIView+Hierarchy.m"; sourceTree = ""; }; - BE9537E0CA45D429EC0A4072FD7E3B3B /* AlipaySDK.bundle */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = "wrapper.plug-in"; path = AlipaySDK.bundle; sourceTree = ""; }; - BEA7471268931C3C4DE9E5DBEE081B46 /* ResourceBundle-SDWebImage-SDWebImage-Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "ResourceBundle-SDWebImage-SDWebImage-Info.plist"; sourceTree = ""; }; - BEEC7394569DAAD54F66E20CF9CBACFD /* LLSettingManager.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = LLSettingManager.m; path = LLDebugTool/Core/Others/Manager/SettingManager/LLSettingManager.m; sourceTree = ""; }; - BEF43A731E4D94C78C75166E669E9FA8 /* ReactiveObjC.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = ReactiveObjC.debug.xcconfig; sourceTree = ""; }; - BF04538E6DF381D857343A142F9DCFA6 /* LLWidgetBorderWindow.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = LLWidgetBorderWindow.m; path = LLDebugTool/Core/Component/WidgetBorder/UserInterface/LLWidgetBorderWindow.m; sourceTree = ""; }; + BE34E09E310FAD39B5FA5816A583C4B8 /* YBIBVideoActionBar.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = YBIBVideoActionBar.m; path = Video/YBIBVideoActionBar.m; sourceTree = ""; }; + BE6A723E1647D64586473167B3B8811F /* YYCache.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = YYCache.debug.xcconfig; sourceTree = ""; }; + BE7757F8AD39EE1F7BEC579DFBAF1158 /* MJRefreshAutoNormalFooter.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = MJRefreshAutoNormalFooter.m; path = MJRefresh/Custom/Footer/Auto/MJRefreshAutoNormalFooter.m; sourceTree = ""; }; + BE77F036D9C043AF0BC6261D1370579B /* TIMPushManager.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = TIMPushManager.h; path = "TIMPush.xcframework/ios-arm64/TIMPush.framework/Headers/TIMPushManager.h"; sourceTree = ""; }; + BE819378C0009619686B38EAAC6294F3 /* RACMulticastConnection+Private.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "RACMulticastConnection+Private.h"; path = "ReactiveObjC/RACMulticastConnection+Private.h"; sourceTree = ""; }; + BEB885F0149701199F0189974EBC7D8D /* UIImage+YYAdd.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "UIImage+YYAdd.h"; path = "YYCategories/UIKit/UIImage+YYAdd.h"; sourceTree = ""; }; + BEC903997C0C9532B3B0E836B3542926 /* OSSGetBucketInfoResult.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = OSSGetBucketInfoResult.m; path = AliyunOSSSDK/OSSGetBucketInfoResult.m; sourceTree = ""; }; + BECB881BE01435296C19BD58A872AF4C /* QGAnimatedImageBufferManager.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = QGAnimatedImageBufferManager.h; path = iOS/QGVAPlayer/QGVAPlayer/Classes/Controllers/QGAnimatedImageBufferManager.h; sourceTree = ""; }; + BED68C538A19A37E9526D13D95F95CA9 /* JXCategoryTitleVerticalZoomCellModel.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = JXCategoryTitleVerticalZoomCellModel.h; path = Sources/VerticalZoomTitle/JXCategoryTitleVerticalZoomCellModel.h; sourceTree = ""; }; + BF07F0FE4411608E1B184E1B81320425 /* LLPickerView.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = LLPickerView.h; path = LLDebugTool/Core/Others/CommonUI/View/PickerView/LLPickerView.h; sourceTree = ""; }; BF12EF87337DED2D5544A4B5636CC4C7 /* TXIMSDK_Plus_iOS_XCFramework-TXIMSDK_Plus_iOS_XCFramework_Privacy */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; name = "TXIMSDK_Plus_iOS_XCFramework-TXIMSDK_Plus_iOS_XCFramework_Privacy"; path = TXIMSDK_Plus_iOS_XCFramework_Privacy.bundle; sourceTree = BUILT_PRODUCTS_DIR; }; - BF1D5FE179804694EF63A50FB66D79D6 /* BRStringPickerView.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = BRStringPickerView.h; path = BRPickerView/Deprecated/StringPickerView/BRStringPickerView.h; sourceTree = ""; }; - BF3B9C219B5D8CA4E3427470D290553C /* UITableViewHeaderFooterView+RACSignalSupport.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "UITableViewHeaderFooterView+RACSignalSupport.h"; path = "ReactiveObjC/UITableViewHeaderFooterView+RACSignalSupport.h"; sourceTree = ""; }; - BF50D3782BE0325F478D768EDC1D4EA8 /* LLNetworkDefine.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = LLNetworkDefine.h; path = LLDebugTool/Core/Others/Define/LLNetworkDefine.h; sourceTree = ""; }; - BF55E6F0ABCEE1F253156A83F4519758 /* QGVAPWrapView.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = QGVAPWrapView.h; path = iOS/QGVAPlayer/QGVAPlayer/Classes/QGVAPWrapView.h; sourceTree = ""; }; - BF63C85D80E158AF3A1E9EB19E7C9D25 /* LLMagnifierInfoView.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = LLMagnifierInfoView.h; path = LLDebugTool/Core/Component/Magnifier/UserInterface/LLMagnifierInfoView.h; sourceTree = ""; }; - BF98847EBFF7D1E8E8EB95FB31B164A0 /* QGVAPMetalShaderFunctionLoader.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = QGVAPMetalShaderFunctionLoader.m; path = iOS/QGVAPlayer/QGVAPlayer/Classes/Utils/QGVAPMetalShaderFunctionLoader.m; sourceTree = ""; }; - BF9F88796446E07B16F5CA618BD2E80B /* NSString+RACSequenceAdditions.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "NSString+RACSequenceAdditions.m"; path = "ReactiveObjC/NSString+RACSequenceAdditions.m"; sourceTree = ""; }; - BFA2719BB5CA9AB9B92A865360E40147 /* OSSHttpResponseParser.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = OSSHttpResponseParser.m; path = AliyunOSSSDK/OSSHttpResponseParser.m; sourceTree = ""; }; - BFA5BEDAEA2B4B04402026A47EA1FF06 /* LLTitleSwitchCellView.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = LLTitleSwitchCellView.h; path = LLDebugTool/Core/Others/CommonUI/View/CellView/LLTitleSwitchCellView.h; sourceTree = ""; }; - BFAB969193E17F3829AA936707D86F16 /* LLWindowManager+Sandbox.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "LLWindowManager+Sandbox.h"; path = "LLDebugTool/Core/Component/Sandbox/UserInterface/LLWindowManager+Sandbox.h"; sourceTree = ""; }; + BF20B12E834B2ED83365F8F857203CF1 /* LLLeftTitleCell.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = LLLeftTitleCell.h; path = LLDebugTool/Core/Others/CommonUI/View/TitleCell/LLLeftTitleCell.h; sourceTree = ""; }; + BF2A6DB2A4233FAB516EFE04517C9E1D /* YYCategories.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = YYCategories.debug.xcconfig; sourceTree = ""; }; + BF3C384FACF30DDD51276EE009F09266 /* LLNetwork.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = LLNetwork.h; path = LLDebugTool/Core/Component/Network/LLNetwork.h; sourceTree = ""; }; + BF562E0480494D3B85299D6665852D81 /* YYImage.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.module; path = YYImage.modulemap; sourceTree = ""; }; + BFA251B40E1BA8D917AD3181373F7681 /* NSInputStream+LL_Network.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "NSInputStream+LL_Network.h"; path = "LLDebugTool/Core/Component/Network/Function/NSInputStream/NSInputStream+LL_Network.h"; sourceTree = ""; }; BFBE6390BE0DC947D8E0C65D9D69EE42 /* TUISystemMessageCellData.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = TUISystemMessageCellData.m; sourceTree = ""; }; - BFCFDA928928856B92B702E01DCADBC0 /* View+MASAdditions.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "View+MASAdditions.m"; path = "Masonry/View+MASAdditions.m"; sourceTree = ""; }; - BFD45B173D4C81AA909775CDF23A0F00 /* OSSResult.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = OSSResult.h; path = AliyunOSSSDK/OSSResult.h; sourceTree = ""; }; - BFDA366E9CB7BAB06A7CB8C1F81195BF /* OSSHttpResponseParser.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = OSSHttpResponseParser.h; path = AliyunOSSSDK/OSSHttpResponseParser.h; sourceTree = ""; }; - BFEAE72DD932F7178875FE6821E2716D /* ForegroundReconnection.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = ForegroundReconnection.h; path = MQTTClient/MQTTClient/ForegroundReconnection.h; sourceTree = ""; }; - BFED9E7FA8A9FDD85D5E48A13B8E8F85 /* JXCategoryBaseView.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = JXCategoryBaseView.m; path = Sources/Base/JXCategoryBaseView.m; sourceTree = ""; }; - BFF7E296BB19087FEE8CF9E7BE196285 /* LLTitleSwitchCell.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = LLTitleSwitchCell.h; path = LLDebugTool/Core/Others/CommonUI/View/TitleCell/LLTitleSwitchCell.h; sourceTree = ""; }; - BFFA4BBB27140286D2B5B54FC2058DE7 /* UIViewController+LL_Utils.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "UIViewController+LL_Utils.h"; path = "LLDebugTool/Core/Others/Category/UIViewController/UIViewController+LL_Utils.h"; sourceTree = ""; }; - C003BEE3608B633E918C90327DD4CE69 /* GPBFieldMask.pbobjc.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = GPBFieldMask.pbobjc.m; path = objectivec/GPBFieldMask.pbobjc.m; sourceTree = ""; }; - C007219D7B1CEE59C1658F1150239BE0 /* SDImageGraphics.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDImageGraphics.h; path = SDWebImage/Core/SDImageGraphics.h; sourceTree = ""; }; - C007B24BBDAED66926E8B22A398FE52D /* IQUITextFieldView+Additions.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "IQUITextFieldView+Additions.h"; path = "IQKeyboardManager/Categories/IQUITextFieldView+Additions.h"; sourceTree = ""; }; - C00CF02DCB1EB98C9EBE9A51416346DE /* YYCategories.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = YYCategories.release.xcconfig; sourceTree = ""; }; - C0219029E9E43C08F49F43F62C517DB1 /* JXCategoryIndicatorView.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = JXCategoryIndicatorView.m; path = Sources/Indicator/JXCategoryIndicatorView.m; sourceTree = ""; }; - C02BE31F90C28D8BC8E0D4759ED1DE8A /* NSSet+RACSequenceAdditions.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "NSSet+RACSequenceAdditions.h"; path = "ReactiveObjC/NSSet+RACSequenceAdditions.h"; sourceTree = ""; }; - C04645052ADA4D0C5776AF0B76583807 /* NSNotificationCenter+RACSupport.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "NSNotificationCenter+RACSupport.h"; path = "ReactiveObjC/NSNotificationCenter+RACSupport.h"; sourceTree = ""; }; + BFC84236DC6934E20BF769B2B51E459B /* YYText.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = YYText.debug.xcconfig; sourceTree = ""; }; + BFD4096F7B30D29E37016A981BCD4AB7 /* YYCategories.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = YYCategories.h; path = YYCategories/YYCategories.h; sourceTree = ""; }; + BFDA70797D499F688CDA9F293694C161 /* IQKeyboardManager.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = IQKeyboardManager.debug.xcconfig; sourceTree = ""; }; + C005C05F637D2ADE52B405BEF24BB72C /* LLStorageModel.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = LLStorageModel.m; path = LLDebugTool/Core/Others/CommonUI/Model/Storage/LLStorageModel.m; sourceTree = ""; }; + C005CD9427CF96E31FC220AE74F97744 /* SDImageIOAnimatedCoderInternal.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDImageIOAnimatedCoderInternal.h; path = SDWebImage/Private/SDImageIOAnimatedCoderInternal.h; sourceTree = ""; }; + C037CB7FD3E4185DA804EFAEA5ECB47B /* LLNetworkViewController.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = LLNetworkViewController.m; path = LLDebugTool/Core/Component/Network/UserInterface/LLNetworkViewController.m; sourceTree = ""; }; + C05969BEAC7EC4ACD6B24C23139E3BC5 /* LLNetworkCell.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = LLNetworkCell.h; path = LLDebugTool/Core/Component/Network/UserInterface/LLNetworkCell.h; sourceTree = ""; }; C05D167917CA4F9184B81BB330166224 /* TUIConversationTableView.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = TUIConversationTableView.m; sourceTree = ""; }; + C06331A6F143EE9F2A7BBD07E8FF3F8A /* LLRouter+Crash.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "LLRouter+Crash.h"; path = "LLDebugTool/Core/Others/Router/LLRouter+Crash.h"; sourceTree = ""; }; + C0680D056BC1F5302787A2199A803C1E /* AgoraRtcEngine_iOS.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = AgoraRtcEngine_iOS.debug.xcconfig; sourceTree = ""; }; C07D6BBCDBB790439770AA98AB551685 /* TUIMergeMessageCellData.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = TUIMergeMessageCellData.m; sourceTree = ""; }; - C092C466730A789FFD1F47D57E1CBE1A /* AgoraLyricsScore.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = AgoraLyricsScore.release.xcconfig; sourceTree = ""; }; + C08D14D80A418D788FC62B0EBAA6E0D8 /* OSSConstants.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = OSSConstants.m; path = AliyunOSSSDK/OSSConstants.m; sourceTree = ""; }; + C0BDD55090EA491AF820C3E1B6AA09D4 /* OSSDefine.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = OSSDefine.h; path = AliyunOSSSDK/OSSDefine.h; sourceTree = ""; }; + C0CEB5A1B00EFCEA42EB2B0602CBF8D8 /* JXCategoryTitleCell.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = JXCategoryTitleCell.h; path = Sources/Title/JXCategoryTitleCell.h; sourceTree = ""; }; + C0CF66D77341CBAB70B181A81C6F4CCA /* GPBUtilities_PackagePrivate.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = GPBUtilities_PackagePrivate.h; path = objectivec/GPBUtilities_PackagePrivate.h; sourceTree = ""; }; + C0E21FB4E53ABCBDEF7D668712AB9447 /* Masonry-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "Masonry-prefix.pch"; sourceTree = ""; }; C0E79AD53820186F5DE86726D150F447 /* MQTTClient */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; name = MQTTClient; path = MQTTClient.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - C0EC29D281EB3968B8B0340A6BABFC82 /* RACUnit.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = RACUnit.m; path = ReactiveObjC/RACUnit.m; sourceTree = ""; }; - C10BF9C2806D6FEF1555EB9A878E0690 /* SDImageWebPCoder.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDImageWebPCoder.m; path = SDWebImageWebPCoder/Classes/SDImageWebPCoder.m; sourceTree = ""; }; - C17E299F82DE8805FE3EC13DD205CD99 /* LLSandboxCell.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = LLSandboxCell.m; path = LLDebugTool/Core/Component/Sandbox/UserInterface/LLSandboxCell.m; sourceTree = ""; }; + C0F55F4CF1612600964678D6DB467ECD /* YBIBOperateBrowserProtocol.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = YBIBOperateBrowserProtocol.h; path = YBImageBrowser/Protocol/YBIBOperateBrowserProtocol.h; sourceTree = ""; }; + C12F4F59F31062A2EA18468431CB2C5D /* YBIBTopView.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = YBIBTopView.h; path = YBImageBrowser/ToolView/YBIBTopView.h; sourceTree = ""; }; + C142C90A8EE06B1F137BF93CFD1FE0BD /* QCloudCopyObjectResult.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = QCloudCopyObjectResult.h; path = QCloudCOSXML/Classes/Transfer/model/QCloudCopyObjectResult.h; sourceTree = ""; }; + C153F5BFB075FF25972871DD709AC72F /* NSObject+YYModel.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "NSObject+YYModel.m"; path = "YYModel/NSObject+YYModel.m"; sourceTree = ""; }; + C16B9711622C2F8C8ECE8C9128B040FD /* QCloudHosts.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = QCloudHosts.h; path = QCloudCore/Classes/Base/QCLOUDRestNet/DNSCache/QCloudHosts.h; sourceTree = ""; }; + C1790E31F6435CEF46A8CA60375DA81A /* LLBaseTableViewController.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = LLBaseTableViewController.m; path = LLDebugTool/Core/Others/CommonUI/Base/LLBaseTableViewController.m; sourceTree = ""; }; C19DB3A1120B979C84C73A7C2A4EEE20 /* TUIChatFlexViewController.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = TUIChatFlexViewController.h; sourceTree = ""; }; - C1BBE6D9E6934F4A1295351D6DA04D07 /* LLPreviewController.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = LLPreviewController.h; path = LLDebugTool/Core/Component/Sandbox/UserInterface/LLPreviewController.h; sourceTree = ""; }; - C1BC0472FE5FD58AF300F17F81501112 /* picture_rescale_enc.c */ = {isa = PBXFileReference; includeInIndex = 1; name = picture_rescale_enc.c; path = src/enc/picture_rescale_enc.c; sourceTree = ""; }; - C1DD8BA8D1AFC8CA6DF6622626BCF972 /* ReactiveObjC.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = ReactiveObjC.h; path = ReactiveObjC/ReactiveObjC.h; sourceTree = ""; }; - C1DE0AA187F4CA800DEDE30E8985A98B /* OSSCocoaLumberjack.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = OSSCocoaLumberjack.h; path = AliyunOSSSDK/OSSFileLog/OSSCocoaLumberjack.h; sourceTree = ""; }; - C1E3B3294A9C29005A26C65C8DD408F3 /* IQKeyboardManager-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "IQKeyboardManager-dummy.m"; sourceTree = ""; }; - C1E44A694DD59DB29196DD78FEDD5D95 /* NSBundle+YYAdd.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "NSBundle+YYAdd.m"; path = "YYCategories/Foundation/NSBundle+YYAdd.m"; sourceTree = ""; }; - C1FD454982C6045A59169F375F219F74 /* AFURLResponseSerialization.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = AFURLResponseSerialization.m; path = AFNetworking/AFURLResponseSerialization.m; sourceTree = ""; }; - C20969D5F396CD4CAB6E9EDA39EC279F /* LLDebugTool.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = LLDebugTool.release.xcconfig; sourceTree = ""; }; + C1AC44C8FF9653AEB5DAB71D8C51CF27 /* LLNetworkImageCell.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = LLNetworkImageCell.m; path = LLDebugTool/Core/Component/Network/UserInterface/LLNetworkImageCell.m; sourceTree = ""; }; + C1B44F7C84CE5F424E138473F02C948C /* OSSGetObjectACLRequest.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = OSSGetObjectACLRequest.m; path = AliyunOSSSDK/OSSGetObjectACLRequest.m; sourceTree = ""; }; + C1E1AC30B88AF0AA1FBE23726D6D264D /* sharpyuv_csp.c */ = {isa = PBXFileReference; includeInIndex = 1; name = sharpyuv_csp.c; path = sharpyuv/sharpyuv_csp.c; sourceTree = ""; }; + C20893CDFE63C9B61AFAC6AE664B40B9 /* ssim.c */ = {isa = PBXFileReference; includeInIndex = 1; name = ssim.c; path = src/dsp/ssim.c; sourceTree = ""; }; C2105C94812B6214B154F54DCEDB72AC /* Protobuf */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; name = Protobuf; path = Protobuf.framework; sourceTree = BUILT_PRODUCTS_DIR; }; C2147602278DF464D75720F3926C978E /* TUIConversationSelectDataProvider_Minimalist.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = TUIConversationSelectDataProvider_Minimalist.h; sourceTree = ""; }; - C27A58C19E38F1B31FE08DA6E507EE95 /* MQTTClient.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.module; path = MQTTClient.modulemap; sourceTree = ""; }; - C28DDEE1CE0413791FE27CABF81EDDB6 /* CALayer+YYWebImage.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "CALayer+YYWebImage.h"; path = "YYWebImage/Categories/CALayer+YYWebImage.h"; sourceTree = ""; }; + C232FB3B5A65774E038955D1F9F35716 /* AFNetworking.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.module; path = AFNetworking.modulemap; sourceTree = ""; }; + C23535EAE5BFF74DF355ED25D1284A7F /* QCloudAbortMultipfartUploadRequest.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = QCloudAbortMultipfartUploadRequest.h; path = QCloudCOSXML/Classes/Transfer/request/QCloudAbortMultipfartUploadRequest.h; sourceTree = ""; }; + C25A2F5175440A6A656FDE590F024550 /* BRAddressPickerView.bundle */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = "wrapper.plug-in"; name = BRAddressPickerView.bundle; path = BRPickerView/Deprecated/AddressPickerView/BRAddressPickerView.bundle; sourceTree = ""; }; + C27596B7E37B9F52761B7EBA8ACCAA54 /* YYTextInput.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = YYTextInput.m; path = YYText/Component/YYTextInput.m; sourceTree = ""; }; + C27CA9BB1BC6C72D88FF580AA4D3AC9B /* GPBDuration.pbobjc.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = GPBDuration.pbobjc.m; path = objectivec/GPBDuration.pbobjc.m; sourceTree = ""; }; C29756442762FD77052A400C23560F33 /* TUIConversationCell_Minimalist.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = TUIConversationCell_Minimalist.m; sourceTree = ""; }; - C2B4786D06C98C7F54D8623D193E883C /* LLTableViewSelectableModel.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = LLTableViewSelectableModel.h; path = LLDebugTool/Core/Others/CommonUI/Model/LLTableViewSelectableModel/LLTableViewSelectableModel.h; sourceTree = ""; }; + C2B4D4B562EC668CAF254E73F9CDD713 /* QGBaseAnimatedImageFrame.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = QGBaseAnimatedImageFrame.h; path = iOS/QGVAPlayer/QGVAPlayer/Classes/Models/QGBaseAnimatedImageFrame.h; sourceTree = ""; }; C2B9367F8ECE027BF3D94A1C3ADCA06A /* Pods-QXLive-acknowledgements.markdown */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text; path = "Pods-QXLive-acknowledgements.markdown"; sourceTree = ""; }; - C2B9A16A2621EE7B88699C69BDF6B6D1 /* JXCategoryTitleVerticalZoomCell.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = JXCategoryTitleVerticalZoomCell.h; path = Sources/VerticalZoomTitle/JXCategoryTitleVerticalZoomCell.h; sourceTree = ""; }; - C2CE90DCE001B8195515F4D65E2ED183 /* NSURLSessionConfiguration+LL_Network.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "NSURLSessionConfiguration+LL_Network.m"; path = "LLDebugTool/Core/Component/Network/Function/NSURLSessionConfiguration/NSURLSessionConfiguration+LL_Network.m"; sourceTree = ""; }; - C2E9BB13621732B9FC1435AA09D12A46 /* LLFunctionViewController.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = LLFunctionViewController.h; path = LLDebugTool/Core/Others/Component/Function/UserInterface/LLFunctionViewController.h; sourceTree = ""; }; - C2EE43377FF6A0997004EE9B2EF5E682 /* YYDiskCache.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = YYDiskCache.m; path = YYCache/YYDiskCache.m; sourceTree = ""; }; - C305ECE4CDC593B8966FC35CFEE40E8E /* JXCategoryNumberView.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = JXCategoryNumberView.h; path = Sources/Number/JXCategoryNumberView.h; sourceTree = ""; }; - C30C2C75897A9BA655D15BCD83C0AF50 /* SVGAVideoEntity.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SVGAVideoEntity.h; path = Source/SVGAVideoEntity.h; sourceTree = ""; }; - C30F1C9697667478B08748F74E2E61C6 /* MJRefresh.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = MJRefresh.debug.xcconfig; sourceTree = ""; }; - C318DF172DFDE33A381F24E52461F106 /* UIBarButtonItem+YYAdd.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "UIBarButtonItem+YYAdd.m"; path = "YYCategories/UIKit/UIBarButtonItem+YYAdd.m"; sourceTree = ""; }; - C3646BA96354A02C0099985DF4298174 /* LLCrashModel.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = LLCrashModel.m; path = LLDebugTool/Core/Component/Crash/Function/LLCrashModel.m; sourceTree = ""; }; - C378B7B6942FF775194460F2840467B7 /* MJRefreshStateHeader.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = MJRefreshStateHeader.m; path = MJRefresh/Custom/Header/MJRefreshStateHeader.m; sourceTree = ""; }; - C390868BE63CCE0630FC7DA5613A5713 /* YYTextArchiver.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = YYTextArchiver.h; path = YYText/String/YYTextArchiver.h; sourceTree = ""; }; - C397F8BAEA54E844DB80F7E4C2D08A8B /* OSSNetworkingRequestDelegate.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = OSSNetworkingRequestDelegate.m; path = AliyunOSSSDK/OSSNetworkingRequestDelegate.m; sourceTree = ""; }; - C3982FC450A5BEC72FEA666A8BE3DD3D /* CALayer+YYWebImage.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "CALayer+YYWebImage.m"; path = "YYWebImage/Categories/CALayer+YYWebImage.m"; sourceTree = ""; }; + C2BB68A8BBA98BD66780B665DB150779 /* JXCategoryImageCellModel.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = JXCategoryImageCellModel.h; path = Sources/Image/JXCategoryImageCellModel.h; sourceTree = ""; }; + C2D2EF8B393EF2C8810CDF344F4737A3 /* MKMapView+LL_Location.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "MKMapView+LL_Location.m"; path = "LLDebugTool/Core/Component/Location/Function/MKMapView/MKMapView+LL_Location.m"; sourceTree = ""; }; + C2D9EF1C959CBC79B00089B09679713E /* UITextView+RACSignalSupport.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "UITextView+RACSignalSupport.h"; path = "ReactiveObjC/UITextView+RACSignalSupport.h"; sourceTree = ""; }; + C2EC384853C33474F77B75DE52D2073D /* LLAppInfo.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = LLAppInfo.h; path = LLDebugTool/Core/Component/AppInfo/LLAppInfo.h; sourceTree = ""; }; + C2ED0C934174CAE9C38C71D4CB9A9BA5 /* mz_zip_rw.c */ = {isa = PBXFileReference; includeInIndex = 1; name = mz_zip_rw.c; path = SSZipArchive/minizip/mz_zip_rw.c; sourceTree = ""; }; + C30120819B40CF27526538D243E95959 /* QCloudCompleteMultipartUploadInfo.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = QCloudCompleteMultipartUploadInfo.m; path = QCloudCOSXML/Classes/Transfer/model/QCloudCompleteMultipartUploadInfo.m; sourceTree = ""; }; + C3173ED05775B7C9091125BBE55C87DB /* TAAnimatedDotView.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = TAAnimatedDotView.m; path = SDCycleScrollView/Lib/SDCycleScrollView/PageControl/TAAnimatedDotView.m; sourceTree = ""; }; + C31B61ADA03ADABA7F4258EBE5C98C07 /* AgoraLyricsScore.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = AgoraLyricsScore.debug.xcconfig; sourceTree = ""; }; + C321EB295C351AF59772E6AEE2A6D27D /* UIImageView+HighlightedWebCache.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "UIImageView+HighlightedWebCache.m"; path = "SDWebImage/Core/UIImageView+HighlightedWebCache.m"; sourceTree = ""; }; + C32DF683159492303C2754FC40ABF3C6 /* QCloudCOSXMLVersion.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = QCloudCOSXMLVersion.h; path = QCloudCOSXML/Classes/QCloudCOSXMLVersion.h; sourceTree = ""; }; + C33C1A0241E7CE367A7B8244F8872066 /* FMResultSet.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FMResultSet.h; path = src/fmdb/FMResultSet.h; sourceTree = ""; }; + C33E4AB992FF9A1D7C2AA70DC651EAA8 /* YBIBIconManager.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = YBIBIconManager.m; path = YBImageBrowser/Helper/YBIBIconManager.m; sourceTree = ""; }; + C3596BCDA45C25B2117C700F96091D75 /* YBIBVideoView.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = YBIBVideoView.h; path = Video/YBIBVideoView.h; sourceTree = ""; }; + C381CA671602E00BE9C08D39A33983CA /* SVGAVideoSpriteEntity.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SVGAVideoSpriteEntity.m; path = Source/SVGAVideoSpriteEntity.m; sourceTree = ""; }; C3A46B03C308EEEB11F2A62BA5D2E8BE /* JXCategoryView */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; name = JXCategoryView; path = JXCategoryView.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - C3BF8ADC6D83F817099D8E7C70FD029C /* MJRefreshTrailer.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = MJRefreshTrailer.h; path = MJRefresh/Base/MJRefreshTrailer.h; sourceTree = ""; }; + C3B410D5394B8F77CA81A9DA8A843E98 /* LLRouter+AppInfo.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "LLRouter+AppInfo.m"; path = "LLDebugTool/Core/Others/Router/LLRouter+AppInfo.m"; sourceTree = ""; }; + C3C075B5F84B5C8E31A0BA81C62F891D /* UICollectionReusableView+RACSignalSupport.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "UICollectionReusableView+RACSignalSupport.m"; path = "ReactiveObjC/UICollectionReusableView+RACSignalSupport.m"; sourceTree = ""; }; C3C90F27D76A0D9A5E5CFA5010887FDB /* TUIMemberCell_Minimalist.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = TUIMemberCell_Minimalist.h; sourceTree = ""; }; C3CB87DA9EDE7FF41B2520CFA0441069 /* PrivacyInfo.xcprivacy */ = {isa = PBXFileReference; includeInIndex = 1; name = PrivacyInfo.xcprivacy; path = Resources/PrivacyInfo.xcprivacy; sourceTree = ""; }; - C3DEC960D97F07408DDEB6D9D72E8BBB /* LLMoveWindow.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = LLMoveWindow.m; path = LLDebugTool/Core/Others/CommonUI/View/MoveWindow/LLMoveWindow.m; sourceTree = ""; }; - C4215B336A44A8928C5547B9ECAF9303 /* OSSLog.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = OSSLog.m; path = AliyunOSSSDK/OSSLog.m; sourceTree = ""; }; + C3E38BFE6C28CCF1198E02D9BB9FC3E7 /* QCloudAbstractRequest_FakeRequest.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = QCloudAbstractRequest_FakeRequest.h; path = QCloudCore/Classes/Base/QCloudClientBase/Request/QCloudAbstractRequest_FakeRequest.h; sourceTree = ""; }; + C3E48BE87B8C0C0D804379966D58D8D8 /* SDImageFramePool.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDImageFramePool.h; path = SDWebImage/Private/SDImageFramePool.h; sourceTree = ""; }; + C403756DA5134716BB05DDA42C6AAC80 /* QGVAPlayer.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = QGVAPlayer.release.xcconfig; sourceTree = ""; }; + C40B79EAAA6B3CC6CF1E78FFA5D2A559 /* NSObject+YYAddForKVO.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "NSObject+YYAddForKVO.m"; path = "YYCategories/Foundation/NSObject+YYAddForKVO.m"; sourceTree = ""; }; + C420B69D849181FD011FAD3D8E9B6518 /* SSZipArchive-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "SSZipArchive-umbrella.h"; sourceTree = ""; }; + C4371CCED5E31576E5B0DD6CAF360FA8 /* TZAssetModel.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = TZAssetModel.m; path = TZImagePickerController/TZImagePickerController/TZAssetModel.m; sourceTree = ""; }; + C440992FB5C2BB522A19691CCA778577 /* JXCategoryTitleVerticalZoomCellModel.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = JXCategoryTitleVerticalZoomCellModel.m; path = Sources/VerticalZoomTitle/JXCategoryTitleVerticalZoomCellModel.m; sourceTree = ""; }; C45996975D0DE7A4FAAFE40AB64E5824 /* TUIChatConfig.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = TUIChatConfig.h; sourceTree = ""; }; - C45DC6F598F63544263420CFD6DB489D /* LLLocationWindow.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = LLLocationWindow.m; path = LLDebugTool/Core/Component/Location/UserInterface/LLLocationWindow.m; sourceTree = ""; }; C4652D09AF671F760E57B77ED4B2B844 /* TUIMessageDataProvider+MessageDeal.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "TUIMessageDataProvider+MessageDeal.h"; sourceTree = ""; }; - C4C1E961E62D23A6E68D20E8D029B2B0 /* SDMemoryCache.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDMemoryCache.m; path = SDWebImage/Core/SDMemoryCache.m; sourceTree = ""; }; - C4EB5433DD0D64544C34394BF6227C50 /* MJRefreshGifHeader.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = MJRefreshGifHeader.h; path = MJRefresh/Custom/Header/MJRefreshGifHeader.h; sourceTree = ""; }; + C47B236151C42E0448F26C5AB78D8959 /* YYTextArchiver.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = YYTextArchiver.h; path = YYText/String/YYTextArchiver.h; sourceTree = ""; }; + C47C14012AEB64E5D97CDFD4AB79E6BB /* View+MASAdditions.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "View+MASAdditions.m"; path = "Masonry/View+MASAdditions.m"; sourceTree = ""; }; + C4966ADEB527BE45F20A76208929346C /* ZipUtilities.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ZipUtilities.swift; path = Zip/ZipUtilities.swift; sourceTree = ""; }; C4ECCE12AE742C116170D30DAE9299CF /* TIMCommon-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "TIMCommon-prefix.pch"; sourceTree = ""; }; C5047226BADBAC5B021884D209558AAF /* TUISystemMessageCell.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = TUISystemMessageCell.m; sourceTree = ""; }; - C50FE691FA8A4034C3B7F82696C1E3E4 /* NSSet+OSS.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "NSSet+OSS.h"; path = "AliyunOSSSDK/NSSet+OSS.h"; sourceTree = ""; }; - C518C80567153AE3BF076BB749A472CB /* RACEvent.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = RACEvent.m; path = ReactiveObjC/RACEvent.m; sourceTree = ""; }; - C51F53C378A097EAB86127ED017F91E5 /* JXCategoryNumberCell.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = JXCategoryNumberCell.h; path = Sources/Number/JXCategoryNumberCell.h; sourceTree = ""; }; - C51F8AD762E49E1A111C44C545B2B4A2 /* BRPickerAlertView.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = BRPickerAlertView.m; path = BRPickerView/Core/BRPickerAlertView.m; sourceTree = ""; }; - C529FFF63E78C75FC76F7E2580C9E401 /* TZImageRequestOperation.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = TZImageRequestOperation.m; path = TZImagePickerController/TZImagePickerController/TZImageRequestOperation.m; sourceTree = ""; }; - C543DD290F6D315E73EB20C3E7C3635E /* NSIndexSet+RACSequenceAdditions.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "NSIndexSet+RACSequenceAdditions.h"; path = "ReactiveObjC/NSIndexSet+RACSequenceAdditions.h"; sourceTree = ""; }; - C545DCD091AC0B30D265510FFD6F5E84 /* ReactiveObjC-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "ReactiveObjC-umbrella.h"; sourceTree = ""; }; - C551C8EB9741E8A7CEF79E88D215618A /* QGMP4FrameHWDecoder.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = QGMP4FrameHWDecoder.m; path = iOS/QGVAPlayer/QGVAPlayer/Classes/Controllers/Decoders/QGMP4FrameHWDecoder.m; sourceTree = ""; }; - C55F448545F5A6D1C9C512435869425E /* MASUtilities.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = MASUtilities.h; path = Masonry/MASUtilities.h; sourceTree = ""; }; + C52D2D0B79D8CC5F558AD7293D3EA2F8 /* LyricLabel.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = LyricLabel.swift; path = AgoraLyricsScore/Class/Lyrics/LyricLabel.swift; sourceTree = ""; }; + C53F402394FD2693DBC50E446144B0DC /* YBIBIconManager.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = YBIBIconManager.h; path = YBImageBrowser/Helper/YBIBIconManager.h; sourceTree = ""; }; C56A469CB25B4F78660D87B430C21BFE /* TUIBaseMessageController_Minimalist.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = TUIBaseMessageController_Minimalist.h; sourceTree = ""; }; - C56C0F410529275BDBD25BBDFE51F9C6 /* UIAlertView+RACSignalSupport.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "UIAlertView+RACSignalSupport.m"; path = "ReactiveObjC/UIAlertView+RACSignalSupport.m"; sourceTree = ""; }; - C57CD7050B94D854BDE5D9DCEC10FBBA /* LLAppInfoWindow.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = LLAppInfoWindow.h; path = LLDebugTool/Core/Component/AppInfo/UserInterface/LLAppInfoWindow.h; sourceTree = ""; }; + C5713F1E75E1BD6748EF793FE83DD09D /* VoicePitchChanger.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = VoicePitchChanger.swift; path = AgoraLyricsScore/Class/Scoring/Other/VoicePitchChanger.swift; sourceTree = ""; }; + C57FCF8705AA31A1608CC0053A7C56B2 /* UIColor+SDHexString.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "UIColor+SDHexString.h"; path = "SDWebImage/Private/UIColor+SDHexString.h"; sourceTree = ""; }; + C58D32D01D066EB0C2F0E3F0B8D29D34 /* msa_macro.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = msa_macro.h; path = src/dsp/msa_macro.h; sourceTree = ""; }; + C59C22BAD3474049BCF91D6D1F429239 /* QCloudCOSXMLService+Private.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "QCloudCOSXMLService+Private.h"; path = "QCloudCOSXML/Classes/Base/QCloudCOSXMLService+Private.h"; sourceTree = ""; }; + C5A21116BFD10B2D4FEA6E079CFA608F /* NSOrderedSet+RACSequenceAdditions.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "NSOrderedSet+RACSequenceAdditions.m"; path = "ReactiveObjC/NSOrderedSet+RACSequenceAdditions.m"; sourceTree = ""; }; + C5AE11E7C369B0D007F232374528F4E4 /* Zip.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = Zip.debug.xcconfig; sourceTree = ""; }; + C5AF25C4A2709634CF3EB5429C9A4520 /* NSMutableDictionary+OSS.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "NSMutableDictionary+OSS.h"; path = "AliyunOSSSDK/NSMutableDictionary+OSS.h"; sourceTree = ""; }; C5B218CCE329321443E58C391C09F1DE /* TUICircleLodingView.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = TUICircleLodingView.m; sourceTree = ""; }; - C5B9C3A62950E1FCEAC7D74608452593 /* LLWindowManager+Sandbox.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "LLWindowManager+Sandbox.m"; path = "LLDebugTool/Core/Component/Sandbox/UserInterface/LLWindowManager+Sandbox.m"; sourceTree = ""; }; - C5CBE99292C594A9C899C9DD38FB8719 /* RACValueTransformer.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = RACValueTransformer.h; path = ReactiveObjC/RACValueTransformer.h; sourceTree = ""; }; + C5BF390AA50F37FA3F03682ECD8A3390 /* LLDetailTitleSelectorCell.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = LLDetailTitleSelectorCell.h; path = LLDebugTool/Core/Others/CommonUI/View/TitleCell/LLDetailTitleSelectorCell.h; sourceTree = ""; }; + C5D2969988E90C9E62DEF88128586039 /* UIBezierPath+YYAdd.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "UIBezierPath+YYAdd.h"; path = "YYCategories/UIKit/UIBezierPath+YYAdd.h"; sourceTree = ""; }; C5E5731040BDA7C46A5E0412A2AC9F24 /* TUIChatPopMenu.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = TUIChatPopMenu.h; sourceTree = ""; }; + C5E69BE7034BCDD8B9190C8B7585C961 /* TIMPush.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = TIMPush.h; path = "TIMPush.xcframework/ios-arm64/TIMPush.framework/Headers/TIMPush.h"; sourceTree = ""; }; C5ECFBE352F66FAACBD68DD9422039F9 /* YTCv.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = YTCv.framework; path = Libs/YTCv.framework; sourceTree = ""; }; - C5F36E50FA1F735D95252DCC8DC94105 /* YYTextRunDelegate.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = YYTextRunDelegate.m; path = YYText/String/YYTextRunDelegate.m; sourceTree = ""; }; + C5FBE2A2DE1912B40BC887678504DBBD /* QGAnimatedImageDecodeThread.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = QGAnimatedImageDecodeThread.h; path = iOS/QGVAPlayer/QGVAPlayer/Classes/Controllers/QGAnimatedImageDecodeThread.h; sourceTree = ""; }; C5FCD599C464593383070729FD3A8A4F /* Pods-QXLiveDev-frameworks.sh */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.script.sh; path = "Pods-QXLiveDev-frameworks.sh"; sourceTree = ""; }; C600EA527364A2CC147B44F899DEA94D /* TUIInputBar_Minimalist.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = TUIInputBar_Minimalist.m; sourceTree = ""; }; - C615144ABEC3D35105A51EF5991A7108 /* Zip.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = Zip.h; path = Zip/Zip.h; sourceTree = ""; }; - C62A1642783C59A2A71ACACE461E7F13 /* common_dec.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = common_dec.h; path = src/dec/common_dec.h; sourceTree = ""; }; - C63FBC083681F24635FFABAE8D35CF63 /* GPBWireFormat.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = GPBWireFormat.h; path = objectivec/GPBWireFormat.h; sourceTree = ""; }; + C619C80864BD2CCD830BB0FB030E262C /* LLSandboxPreviewController.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = LLSandboxPreviewController.h; path = LLDebugTool/Core/Component/Sandbox/UserInterface/LLSandboxPreviewController.h; sourceTree = ""; }; + C633EFE05B75BEC4A82E1ED5B47B3D8A /* YYTextWeakProxy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = YYTextWeakProxy.m; path = YYText/Utility/YYTextWeakProxy.m; sourceTree = ""; }; + C63D04F695E094AC6F3E69C41CCF0EA1 /* LLCrashComponent.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = LLCrashComponent.h; path = LLDebugTool/Core/Component/Crash/LLCrashComponent.h; sourceTree = ""; }; + C6456D0D2370E680BAE9250B60CF2081 /* common_dec.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = common_dec.h; path = src/dec/common_dec.h; sourceTree = ""; }; C64E3E71C1C975F9D1192BD7D8140E75 /* TUIConversationSelectBaseDataProvider.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = TUIConversationSelectBaseDataProvider.m; sourceTree = ""; }; - C66B5B801EBBC3EBD036549C0716D072 /* YYText-Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "YYText-Info.plist"; sourceTree = ""; }; + C6644EE432B19E6B483A15BF64272CE2 /* rescaler_mips_dsp_r2.c */ = {isa = PBXFileReference; includeInIndex = 1; name = rescaler_mips_dsp_r2.c; path = src/dsp/rescaler_mips_dsp_r2.c; sourceTree = ""; }; + C66C0380E1B9950A1C7DFA681485377D /* IQKeyboardManagerConstants.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = IQKeyboardManagerConstants.h; path = IQKeyboardManager/Constants/IQKeyboardManagerConstants.h; sourceTree = ""; }; C68412B6CE6995367EE57E8BBDEB57E9 /* TUIMessageCellLayout.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = TUIMessageCellLayout.m; sourceTree = ""; }; - C694159BB916444B4C886BB73F6FB730 /* TZImageManager.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = TZImageManager.m; path = TZImagePickerController/TZImagePickerController/TZImageManager.m; sourceTree = ""; }; + C687B8148F1910B4B648C64A6CD3D439 /* JXCategoryTitleImageCell.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = JXCategoryTitleImageCell.h; path = Sources/TitleImage/JXCategoryTitleImageCell.h; sourceTree = ""; }; + C69A1BBD0A0739C565892EAC45726A72 /* LLLogCell.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = LLLogCell.m; path = LLDebugTool/Core/Component/Log/UserInterface/LLLogCell.m; sourceTree = ""; }; C6A22377923BC98FFF855E0D7E2C7BD9 /* TUIMessageReadViewController.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = TUIMessageReadViewController.h; sourceTree = ""; }; - C6B729EC72A3E7EE2ED5C8A99B256E97 /* YYWebImage-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "YYWebImage-umbrella.h"; sourceTree = ""; }; - C72D0FCDBEA89A04B10E44BE52EA4C9A /* AvoidCrashStubProxy.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = AvoidCrashStubProxy.h; path = AvoidCrash/AvoidCrashStubProxy.h; sourceTree = ""; }; + C6A9340CDAC0B6369DB2690CDC3A55CE /* vp8l_dec.c */ = {isa = PBXFileReference; includeInIndex = 1; name = vp8l_dec.c; path = src/dec/vp8l_dec.c; sourceTree = ""; }; + C721DEC379A32E6A40BB74DDCD48133C /* JXCategoryViewAnimator.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = JXCategoryViewAnimator.h; path = Sources/Common/JXCategoryViewAnimator.h; sourceTree = ""; }; C72D292DB0F13AF832A188C959882814 /* TUILinkCellData.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = TUILinkCellData.h; sourceTree = ""; }; + C7315416C91B3CF333FEDDE0D2696E94 /* IQUIView+IQKeyboardToolbar.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "IQUIView+IQKeyboardToolbar.m"; path = "IQKeyboardManager/IQToolbar/IQUIView+IQKeyboardToolbar.m"; sourceTree = ""; }; C735652D675412AF7F6ACD0ABC915C2A /* YTFaceDetectorLiveness.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = YTFaceDetectorLiveness.framework; path = Libs/YTFaceDetectorLiveness.framework; sourceTree = ""; }; - C77AACE739BCE1A5E9D096C6E6898494 /* alpha_processing_sse41.c */ = {isa = PBXFileReference; includeInIndex = 1; name = alpha_processing_sse41.c; path = src/dsp/alpha_processing_sse41.c; sourceTree = ""; }; - C7828D500F6093CD09FB8CC989E8AD0C /* RACSerialDisposable.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = RACSerialDisposable.m; path = ReactiveObjC/RACSerialDisposable.m; sourceTree = ""; }; - C7971EB1474B2162A3317E778F3ED1B1 /* TZAssetModel.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = TZAssetModel.m; path = TZImagePickerController/TZImagePickerController/TZAssetModel.m; sourceTree = ""; }; + C75290354B7314C4F02110B9D20632B3 /* ReactiveObjC.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = ReactiveObjC.debug.xcconfig; sourceTree = ""; }; + C76964ED7C150134F52382927DD30E44 /* cost_sse2.c */ = {isa = PBXFileReference; includeInIndex = 1; name = cost_sse2.c; path = src/dsp/cost_sse2.c; sourceTree = ""; }; + C76A747AF5148D32E2D72F7E037204D8 /* LLThemeManager.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = LLThemeManager.h; path = LLDebugTool/Core/Others/Manager/ThemeManager/LLThemeManager.h; sourceTree = ""; }; C79E6E3BEBEC51A2C585F5364070A8B4 /* TUIImageMessageCell.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = TUIImageMessageCell.m; sourceTree = ""; }; - C7C43E3F6DF662280080032954FEBA27 /* LLAnimateView.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = LLAnimateView.m; path = LLDebugTool/Core/Others/CommonUI/View/AnimateView/LLAnimateView.m; sourceTree = ""; }; + C7B13D01E3DCCAB0D2C37A8E95512A72 /* YBIBInteractionProfile.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = YBIBInteractionProfile.h; path = YBImageBrowser/Image/YBIBInteractionProfile.h; sourceTree = ""; }; C7C8D04857A062BBA96720BAFE1EB832 /* TUIGroupNoticeController.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = TUIGroupNoticeController.m; sourceTree = ""; }; - C7E1FEDE75F88426ACE300C7E5E27418 /* RACErrorSignal.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = RACErrorSignal.m; path = ReactiveObjC/RACErrorSignal.m; sourceTree = ""; }; - C811656C4254591CAAD70ACF5AFBF597 /* UIImage+MemoryCacheCost.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "UIImage+MemoryCacheCost.h"; path = "SDWebImage/Core/UIImage+MemoryCacheCost.h"; sourceTree = ""; }; - C81216EA476AF6B7BC4E9C092A979786 /* AFImageDownloader.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = AFImageDownloader.m; path = "UIKit+AFNetworking/AFImageDownloader.m"; sourceTree = ""; }; C8199828D909683114A2A228F68764E5 /* TUIVoiceMessageCell_Minimalist.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = TUIVoiceMessageCell_Minimalist.m; sourceTree = ""; }; - C82642F6DD1910B02E2CB7E3AB20324F /* LLScreenshotActionView.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = LLScreenshotActionView.h; path = LLDebugTool/Core/Component/Screenshot/UserInterface/LLScreenshotActionView.h; sourceTree = ""; }; - C84D781668C6E814C60B74DCA3BBDE12 /* OSSDDLog.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = OSSDDLog.m; path = AliyunOSSSDK/OSSFileLog/OSSDDLog.m; sourceTree = ""; }; - C858289408529E87B895C6F10F0ABE4D /* LLEntryStyleModel.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = LLEntryStyleModel.m; path = LLDebugTool/Core/Others/CommonUI/Window/EntryWindow/LLEntryStyleModel.m; sourceTree = ""; }; - C879FEB44DB34C3BA3BE82553CB57D91 /* TIMPush.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = TIMPush.debug.xcconfig; sourceTree = ""; }; - C89E2504985E03ACD1D1EA8FF03A4C07 /* UIScreen+YYAdd.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "UIScreen+YYAdd.h"; path = "YYCategories/UIKit/UIScreen+YYAdd.h"; sourceTree = ""; }; - C8B1DF9319EA4EE6D2B94DC72B2EC8C6 /* libwebp-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "libwebp-umbrella.h"; sourceTree = ""; }; + C843365FB508324DFEA1066E0471FA6F /* UIView+LL_Utils.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "UIView+LL_Utils.m"; path = "LLDebugTool/Core/Others/Category/UIView/UIView+LL_Utils.m"; sourceTree = ""; }; + C87D4A32A49F0866458481A6C4751363 /* AliyunOSSiOS.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = AliyunOSSiOS.h; path = "Supporting Files/AliyunOSSiOS.h"; sourceTree = ""; }; + C8825480DA40C3D9DA5C343E898215A6 /* QuickZip.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = QuickZip.swift; path = Zip/QuickZip.swift; sourceTree = ""; }; + C8E968C43C6B5C68801618FF48203921 /* SDWebImageOptionsProcessor.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDWebImageOptionsProcessor.m; path = SDWebImage/Core/SDWebImageOptionsProcessor.m; sourceTree = ""; }; C8F97B02F5B488511B0CE5FA4CFE7F1A /* OfflinePushExtConfigInfo.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = OfflinePushExtConfigInfo.m; sourceTree = ""; }; - C8FC13E080653B95689427E9BB5AEDAB /* NSBundle+MJRefresh.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "NSBundle+MJRefresh.h"; path = "MJRefresh/NSBundle+MJRefresh.h"; sourceTree = ""; }; C8FFAB06408747E7BA2A353127D4ACF8 /* TUIConversation */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; name = TUIConversation; path = TUIConversation.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - C919EE910E10E500F80D563FE6E49F58 /* color_cache_utils.c */ = {isa = PBXFileReference; includeInIndex = 1; name = color_cache_utils.c; path = src/utils/color_cache_utils.c; sourceTree = ""; }; + C9097DF320AD6854D0D1730AC9642B32 /* TZImageCropManager.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = TZImageCropManager.m; path = TZImagePickerController/TZImagePickerController/TZImageCropManager.m; sourceTree = ""; }; + C91DCFA49F944029C6FC01F11E1523C2 /* filters_utils.c */ = {isa = PBXFileReference; includeInIndex = 1; name = filters_utils.c; path = src/utils/filters_utils.c; sourceTree = ""; }; C9299C3B2AA7F5B8F7F249683F8DFC76 /* TUISecurityStrikeView.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = TUISecurityStrikeView.h; sourceTree = ""; }; - C936A1721F6CF8FA0A28202704F0AFFB /* LLSettingViewController.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = LLSettingViewController.h; path = LLDebugTool/Core/Others/Component/Setting/UserInterface/LLSettingViewController.h; sourceTree = ""; }; - C95D205F4D3CC22777142A7CACA76399 /* RACTestScheduler.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = RACTestScheduler.m; path = ReactiveObjC/RACTestScheduler.m; sourceTree = ""; }; - C95E4495AF4EB56CE987FDC609698431 /* encode.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = encode.h; path = src/webp/encode.h; sourceTree = ""; }; - C9671D5694D2FCBEADA969DC5D078145 /* YYCache.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = YYCache.debug.xcconfig; sourceTree = ""; }; - C98D8B98E7B4DB697FA530730298BD5E /* RACSubscriber.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = RACSubscriber.h; path = ReactiveObjC/RACSubscriber.h; sourceTree = ""; }; + C9330057B71F140B37BC9E00042B60E8 /* QCloudXMLWriter.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = QCloudXMLWriter.h; path = QCloudCore/Classes/Base/QCLOUDRestNet/CoreRequest/Serializer/XML/XMLDictionary/Writer/QCloudXMLWriter.h; sourceTree = ""; }; + C94024930AB08B4D77F3F6E9D671E1A6 /* video_enc.xcframework */ = {isa = PBXFileReference; includeInIndex = 1; path = video_enc.xcframework; sourceTree = ""; }; + C955ACD5B6F9A8EBD41DDBF4CA3436B0 /* NSObject+QCloudModel.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "NSObject+QCloudModel.m"; path = "QCloudCore/Classes/Base/QCLOUDObjectModel/NSObject+QCloudModel.m"; sourceTree = ""; }; + C990846C5E3C92D6B1F54978170573C6 /* filters_utils.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = filters_utils.h; path = src/utils/filters_utils.h; sourceTree = ""; }; C993B40579213A499C1882A9530E0E25 /* TUIConversationSelectDataProvider.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = TUIConversationSelectDataProvider.m; sourceTree = ""; }; - C99F54A93DE0F31868318100E3D1BFDE /* YBIBPhotoAlbumManager.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = YBIBPhotoAlbumManager.m; path = YBImageBrowser/Helper/YBIBPhotoAlbumManager.m; sourceTree = ""; }; - C9C1427EA71BE8756DB2B4291DDA4691 /* LLRulerWindow.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = LLRulerWindow.m; path = LLDebugTool/Core/Component/Ruler/UserInterface/LLRulerWindow.m; sourceTree = ""; }; - C9C3B191F37B7FB154E6A62279162378 /* NSBundle+BRPickerView.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "NSBundle+BRPickerView.m"; path = "BRPickerView/Core/NSBundle+BRPickerView.m"; sourceTree = ""; }; - C9E11F37F96460ECAEE6E3C2E337098D /* SDCollectionViewCell.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDCollectionViewCell.m; path = SDCycleScrollView/Lib/SDCycleScrollView/SDCollectionViewCell.m; sourceTree = ""; }; - CA028D2D69AD590A9E195B0056E84645 /* UIApplication+YYAdd.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "UIApplication+YYAdd.h"; path = "YYCategories/UIKit/UIApplication+YYAdd.h"; sourceTree = ""; }; - CA0A608F7A9C7F3900D7F53900E1FD30 /* YYSpriteSheetImage.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = YYSpriteSheetImage.h; path = YYImage/YYSpriteSheetImage.h; sourceTree = ""; }; + C99BD807257F535CA1405079C4548FD5 /* LLFilterView.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = LLFilterView.m; path = LLDebugTool/Core/Others/CommonUI/View/FilterView/LLFilterView.m; sourceTree = ""; }; + C9B3407E9964E300B473126AAAE3F5BD /* OSSDeleteMultipleObjectsRequest.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = OSSDeleteMultipleObjectsRequest.m; path = AliyunOSSSDK/OSSDeleteMultipleObjectsRequest.m; sourceTree = ""; }; + C9CBA92FBACD7C83AADAF41B7B4A6F26 /* QCloudPutObjectCopyRequest.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = QCloudPutObjectCopyRequest.h; path = QCloudCOSXML/Classes/Transfer/request/QCloudPutObjectCopyRequest.h; sourceTree = ""; }; + C9EB273B20622E7055FCBC9E9078D4A1 /* JXCategoryIndicatorProtocol.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = JXCategoryIndicatorProtocol.h; path = Sources/Common/JXCategoryIndicatorProtocol.h; sourceTree = ""; }; + C9ED034EF0A7164FDED8ADC512A418CF /* SDDiskCache.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDDiskCache.m; path = SDWebImage/Core/SDDiskCache.m; sourceTree = ""; }; + C9FB1986F4BE1CF8F11AE763240D2E95 /* QCloudEndPoint.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = QCloudEndPoint.m; path = QCloudCore/Classes/Base/QCloudClientBase/Service/QCloudEndPoint.m; sourceTree = ""; }; + C9FC6908461B70BB12B08EDE3AEBC72A /* JXCategoryIndicatorBackgroundView.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = JXCategoryIndicatorBackgroundView.h; path = Sources/Indicator/IndicatorViews/JXCategoryIndicatorBackgroundView.h; sourceTree = ""; }; + CA02343B02ACB759CD9BCC09459B20DA /* QCloudXMLDictionary.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = QCloudXMLDictionary.m; path = QCloudCore/Classes/Base/QCLOUDRestNet/CoreRequest/Serializer/XML/XMLDictionary/Reader/QCloudXMLDictionary.m; sourceTree = ""; }; + CA0BED4EE8560104777515C15B1B17AD /* NSSet+RACSequenceAdditions.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "NSSet+RACSequenceAdditions.h"; path = "ReactiveObjC/NSSet+RACSequenceAdditions.h"; sourceTree = ""; }; CA29AD0D1327156BDE92C1791F0CB81D /* TUIGroupInfoController.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = TUIGroupInfoController.h; sourceTree = ""; }; - CA9709A697C55AA3F38E358D97E13C0A /* SDCycleScrollView-Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "SDCycleScrollView-Info.plist"; sourceTree = ""; }; - CA999F84D449AF8557864931035A1ED2 /* YYModel.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = YYModel.debug.xcconfig; sourceTree = ""; }; - CACDDAF9339325B788805EB4486D22EA /* ViewController+MASAdditions.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "ViewController+MASAdditions.m"; path = "Masonry/ViewController+MASAdditions.m"; sourceTree = ""; }; - CAD0AD3068472F52FA8B2DB6A0B11FA3 /* SDDiskCache.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDDiskCache.m; path = SDWebImage/Core/SDDiskCache.m; sourceTree = ""; }; - CAD76B76ED9FFA966995C405B47E305E /* GPBProtocolBuffers_RuntimeSupport.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = GPBProtocolBuffers_RuntimeSupport.h; path = objectivec/GPBProtocolBuffers_RuntimeSupport.h; sourceTree = ""; }; - CAE3CED5E389DC50AEBBB1CC20C5CE22 /* SDDeviceHelper.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDDeviceHelper.m; path = SDWebImage/Private/SDDeviceHelper.m; sourceTree = ""; }; - CB10BE9386BC5C570038D73529404555 /* color_cache_utils.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = color_cache_utils.h; path = src/utils/color_cache_utils.h; sourceTree = ""; }; + CA7DAD293A40ABB3C0EF7B680D054ECB /* BRDatePickerView+BR.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "BRDatePickerView+BR.m"; path = "BRPickerView/DatePicker/BRDatePickerView+BR.m"; sourceTree = ""; }; + CA98A77F09F0AB352712BE13267E380F /* AvoidCrashProtocol.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = AvoidCrashProtocol.h; path = AvoidCrash/AvoidCrashProtocol.h; sourceTree = ""; }; + CAA1EF5C04ED14358E201C77CD3AE0BE /* QGVAPWeakProxy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = QGVAPWeakProxy.m; path = iOS/QGVAPlayer/QGVAPlayer/Classes/Utils/QGVAPWeakProxy.m; sourceTree = ""; }; + CAA846B08517159F1B9AFA67795013D3 /* QCloudAbstractRequest.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = QCloudAbstractRequest.m; path = QCloudCore/Classes/Base/QCLOUDRestNet/CoreRequest/QCloudAbstractRequest.m; sourceTree = ""; }; + CABDAF6E815567ABC244C42CFF7B59E9 /* IQTextView.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = IQTextView.h; path = IQKeyboardManager/IQTextView/IQTextView.h; sourceTree = ""; }; + CAC3E9BA80100B1FFFDC3991654DC0A4 /* IQNSArray+Sort.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "IQNSArray+Sort.m"; path = "IQKeyboardManager/Categories/IQNSArray+Sort.m"; sourceTree = ""; }; + CADE92E3BE41EE65BCBB512F7FC612B8 /* QCloudLoggerOutput.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = QCloudLoggerOutput.h; path = QCloudCore/Classes/Base/Logger/QCloudLoggerOutput.h; sourceTree = ""; }; + CAE391A4AB25A8264FABBB5A8646EF2B /* UIImage+ExtendedCacheData.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "UIImage+ExtendedCacheData.h"; path = "SDWebImage/Core/UIImage+ExtendedCacheData.h"; sourceTree = ""; }; + CAF6106571940D673660A0787611E02D /* CLLocation+LL_Location.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "CLLocation+LL_Location.h"; path = "LLDebugTool/Core/Component/Location/Function/CLLocation/CLLocation+LL_Location.h"; sourceTree = ""; }; + CB051D6342E35A62748D5695DA22D676 /* TZImagePickerController-Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "TZImagePickerController-Info.plist"; sourceTree = ""; }; + CB10776CAC78EE0A178699E752E508D2 /* yuv_sse41.c */ = {isa = PBXFileReference; includeInIndex = 1; name = yuv_sse41.c; path = src/dsp/yuv_sse41.c; sourceTree = ""; }; CB1AD5888C5F20CC7583A80D346B3A81 /* TUIAIDenoiseSignatureManager.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = TUIAIDenoiseSignatureManager.h; sourceTree = ""; }; - CB434051D64FC3A94D524A8D4E99569A /* LLCrashHelper.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = LLCrashHelper.m; path = LLDebugTool/Core/Component/Crash/Function/LLCrashHelper.m; sourceTree = ""; }; - CB5255FAFE0C0E220F260AFA6D1522B1 /* SDWebImageError.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDWebImageError.h; path = SDWebImage/Core/SDWebImageError.h; sourceTree = ""; }; - CB57056147B572AA16AC8F3A6F8F3DE7 /* YYTextUtilities.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = YYTextUtilities.h; path = YYText/Utility/YYTextUtilities.h; sourceTree = ""; }; CB756318698F305B068777B81A551965 /* TUIChatObjectFactory_Minimalist.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = TUIChatObjectFactory_Minimalist.h; sourceTree = ""; }; - CBE176765141835BD6BC05CE717A1B6E /* TZGifPhotoPreviewController.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = TZGifPhotoPreviewController.h; path = TZImagePickerController/TZImagePickerController/TZGifPhotoPreviewController.h; sourceTree = ""; }; - CBE5366F65ACD4F9F57294A8D07BBED3 /* UIScrollView+YYAdd.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "UIScrollView+YYAdd.h"; path = "YYCategories/UIKit/UIScrollView+YYAdd.h"; sourceTree = ""; }; - CBFD4731301BA34D2EEC9562547D3752 /* SDAnimatedImageRep.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDAnimatedImageRep.h; path = SDWebImage/Core/SDAnimatedImageRep.h; sourceTree = ""; }; - CC078D6CCA0C3AB165D43631D3A2677F /* SVGAAudioEntity.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SVGAAudioEntity.h; path = Source/SVGAAudioEntity.h; sourceTree = ""; }; - CC08102499A976AA9C80A31D8DCB69A3 /* TZPhotoPreviewCell.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = TZPhotoPreviewCell.m; path = TZImagePickerController/TZImagePickerController/TZPhotoPreviewCell.m; sourceTree = ""; }; - CC11E565DFEDF2A27A5B9778C85ACE5F /* types.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = types.h; path = src/webp/types.h; sourceTree = ""; }; - CC5312AF6FBA8949781977323DEAB33A /* OSSDeleteObjectTaggingResult.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = OSSDeleteObjectTaggingResult.m; path = AliyunOSSSDK/OSSDeleteObjectTaggingResult.m; sourceTree = ""; }; - CC599E09B879E3AB6A5E0F01154C35C4 /* GPBUnknownFields.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = GPBUnknownFields.m; path = objectivec/GPBUnknownFields.m; sourceTree = ""; }; - CC605DA23310CE8C48CE7EE15AAAD9DA /* QGVAPMaskInfo.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = QGVAPMaskInfo.m; path = iOS/QGVAPlayer/QGVAPlayer/Classes/Models/QGVAPMaskInfo.m; sourceTree = ""; }; - CC8D1E0C4EA0E4C4D195306669D101CE /* SDImageIOAnimatedCoderInternal.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDImageIOAnimatedCoderInternal.h; path = SDWebImage/Private/SDImageIOAnimatedCoderInternal.h; sourceTree = ""; }; - CCADFE0BDA29D3D300B124C79D0F24C8 /* NSDictionary+AvoidCrash.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "NSDictionary+AvoidCrash.m"; path = "AvoidCrash/NSDictionary+AvoidCrash.m"; sourceTree = ""; }; - CCB1E1F3B1AE554D43EC50F9449EACA2 /* WKWebView+AFNetworking.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "WKWebView+AFNetworking.m"; path = "UIKit+AFNetworking/WKWebView+AFNetworking.m"; sourceTree = ""; }; - CCBC66B53330050460A749E0DEA20FFF /* SDWebImageWebPCoder-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "SDWebImageWebPCoder-prefix.pch"; sourceTree = ""; }; - CCF6097BE8F93EE153EB8CC734BE0E3B /* LLMagnifierComponent.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = LLMagnifierComponent.h; path = LLDebugTool/Core/Component/Magnifier/LLMagnifierComponent.h; sourceTree = ""; }; - CD09D8899998B70BD88E3D83032BF3F9 /* Masonry.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.module; path = Masonry.modulemap; sourceTree = ""; }; - CD14AEF254415F9CAFB098159077C5BB /* ScoringMachineProtocol.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ScoringMachineProtocol.swift; path = AgoraLyricsScore/Class/Scoring/ScoringMachineProtocol.swift; sourceTree = ""; }; - CD243322E3D8FE8CEF5CFAC8FE226440 /* YYTextRubyAnnotation.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = YYTextRubyAnnotation.m; path = YYText/String/YYTextRubyAnnotation.m; sourceTree = ""; }; - CD325FB3ADC40E4A890D804835F177B0 /* AvoidCrash.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.module; path = AvoidCrash.modulemap; sourceTree = ""; }; - CD3401A3226DCB11E15899A01C463A56 /* IQPreviousNextView.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = IQPreviousNextView.m; path = IQKeyboardManager/IQToolbar/IQPreviousNextView.m; sourceTree = ""; }; + CBBB3E9EF0DEE2D12719945345EB7E5A /* QCloudCoreVersion.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = QCloudCoreVersion.m; path = QCloudCore/Classes/Base/QCloudCoreVersion.m; sourceTree = ""; }; + CBD15162B14078B79CAC3A2581747109 /* tree_enc.c */ = {isa = PBXFileReference; includeInIndex = 1; name = tree_enc.c; path = src/enc/tree_enc.c; sourceTree = ""; }; + CC022135945BC95FA761403F90D48780 /* LLWindowManager+Log.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "LLWindowManager+Log.h"; path = "LLDebugTool/Core/Component/Log/UserInterface/LLWindowManager+Log.h"; sourceTree = ""; }; + CC0989E7BC16BCEFD24143416FE27094 /* IQUIViewController+Additions.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "IQUIViewController+Additions.m"; path = "IQKeyboardManager/Categories/IQUIViewController+Additions.m"; sourceTree = ""; }; + CC2D2EDAB4A2C221C27E81E92C902F3E /* QCloudUniversalFixedPath.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = QCloudUniversalFixedPath.h; path = QCloudCore/Classes/Base/PathUtilities/QCloudUniversalFixedPath.h; sourceTree = ""; }; + CC51C3581194BC4AC710858D53F46EB8 /* MASViewConstraint.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = MASViewConstraint.m; path = Masonry/MASViewConstraint.m; sourceTree = ""; }; + CC6361F81A3A94F318EAAB390449A969 /* lossless_enc_sse41.c */ = {isa = PBXFileReference; includeInIndex = 1; name = lossless_enc_sse41.c; path = src/dsp/lossless_enc_sse41.c; sourceTree = ""; }; + CC73B0105364E58A9EFDF2644247EEC9 /* NSObject+HTTPHeadersContainer.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "NSObject+HTTPHeadersContainer.h"; path = "QCloudCore/Classes/Base/QCLOUDRestNet/SessionSupport/NSObject+HTTPHeadersContainer.h"; sourceTree = ""; }; + CCBF64731105523C223CFAD2C3B593F2 /* BRStringPickerView.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = BRStringPickerView.m; path = BRPickerView/Deprecated/StringPickerView/BRStringPickerView.m; sourceTree = ""; }; + CCC75942C35CF8A1599760D941698552 /* LLLocationWindow.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = LLLocationWindow.m; path = LLDebugTool/Core/Component/Location/UserInterface/LLLocationWindow.m; sourceTree = ""; }; + CCE282AC804A22DAA7883DDDBAED9BA9 /* QCloudNetEnv.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = QCloudNetEnv.m; path = QCloudCore/Classes/Base/QCLOUDRestNet/reachability/QCloudNetEnv.m; sourceTree = ""; }; + CCE346E3012BA03247A7FA88B48F8913 /* QCloudServiceConfiguration+Quality.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "QCloudServiceConfiguration+Quality.m"; path = "QCloudCore/Classes/Base/QCloudBase/QualityAssurance/QCloudServiceConfiguration+Quality.m"; sourceTree = ""; }; + CCEF3A19E5C884D4C24EEEE3EE8E158C /* unzip.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = unzip.h; path = Zip/minizip/include/unzip.h; sourceTree = ""; }; + CCF27A6359FD82A1A13840307C74AC39 /* YYClassInfo.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = YYClassInfo.h; path = YYModel/YYClassInfo.h; sourceTree = ""; }; + CD132394F8219CB52F20FF82FFA7113B /* QCloudRequestSerializer.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = QCloudRequestSerializer.m; path = QCloudCore/Classes/Base/QCLOUDRestNet/CoreRequest/Serializer/QCloudRequestSerializer.m; sourceTree = ""; }; + CD1F7F8BBC69402151D983080FEA8471 /* UIView+MJExtension.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "UIView+MJExtension.h"; path = "MJRefresh/UIView+MJExtension.h"; sourceTree = ""; }; + CD287969EAB5F5DC4D31824EC51AAD45 /* common_sse2.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = common_sse2.h; path = src/dsp/common_sse2.h; sourceTree = ""; }; + CD47EF1DD714EF6D0D39B6860EAA1581 /* LLEntryTitleView.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = LLEntryTitleView.m; path = LLDebugTool/Core/Others/CommonUI/Window/EntryWindow/LLEntryTitleView.m; sourceTree = ""; }; + CD4C7F5C127CA356817BDE1ACCB4CEBE /* YBIBAnimatedTransition.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = YBIBAnimatedTransition.h; path = YBImageBrowser/Base/YBIBAnimatedTransition.h; sourceTree = ""; }; CD65B31AA1121B8089259AE5B098F32D /* TUICameraView.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = TUICameraView.m; sourceTree = ""; }; - CD7863A1B656CBA10A72DFFE5CBAD4D5 /* Zip-Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "Zip-Info.plist"; sourceTree = ""; }; CD816C1AB0BAE69BA4F0703D10DE6EC1 /* Pods-QXLive.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-QXLive.debug.xcconfig"; sourceTree = ""; }; - CD87398022E36EB461F2985C62E47454 /* SDImageIOAnimatedCoder.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDImageIOAnimatedCoder.m; path = SDWebImage/Core/SDImageIOAnimatedCoder.m; sourceTree = ""; }; - CD946DD7720C99A2934DDA973009201E /* Type.pbobjc.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = Type.pbobjc.h; path = objectivec/google/protobuf/Type.pbobjc.h; sourceTree = ""; }; - CDA511D043C97E2418FDBC373437FBEB /* RACUnarySequence.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = RACUnarySequence.m; path = ReactiveObjC/RACUnarySequence.m; sourceTree = ""; }; - CDCBFE2460C3F5A7DAFF62C702FD0F97 /* YYClassInfo.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = YYClassInfo.m; path = YYModel/YYClassInfo.m; sourceTree = ""; }; - CDCDFDB506B6E3439FC21785865FEE77 /* RACPassthroughSubscriber.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = RACPassthroughSubscriber.m; path = ReactiveObjC/RACPassthroughSubscriber.m; sourceTree = ""; }; - CDF953BA0635ACD53ECC5973D2DB1F28 /* SDImageCachesManager.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDImageCachesManager.m; path = SDWebImage/Core/SDImageCachesManager.m; sourceTree = ""; }; - CE0E272099D446C2FD6837C47119FDC5 /* LLTitleCell.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = LLTitleCell.h; path = LLDebugTool/Core/Others/CommonUI/View/TitleCell/LLTitleCell.h; sourceTree = ""; }; - CE1424F91B32D8E450782B368DE382A6 /* LLConvenientScreenshotComponent.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = LLConvenientScreenshotComponent.h; path = LLDebugTool/Core/Component/Screenshot/LLConvenientScreenshotComponent.h; sourceTree = ""; }; - CE1A0E7A25FFFCE052093977A21E9038 /* enc_sse41.c */ = {isa = PBXFileReference; includeInIndex = 1; name = enc_sse41.c; path = src/dsp/enc_sse41.c; sourceTree = ""; }; + CD9D7510313EDF23B2BB3E046E4CA6CE /* LLComponentNavigationController.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = LLComponentNavigationController.h; path = LLDebugTool/Core/Others/CommonUI/ViewController/ComponentNavigationController/LLComponentNavigationController.h; sourceTree = ""; }; + CDC68FC5971701721E0F5AF722A2623B /* JXCategoryNumberView.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = JXCategoryNumberView.m; path = Sources/Number/JXCategoryNumberView.m; sourceTree = ""; }; + CDCE0020309A5F2ADDFEEAA7592443CF /* UIImage+Transform.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "UIImage+Transform.m"; path = "SDWebImage/Core/UIImage+Transform.m"; sourceTree = ""; }; + CDEB499910441B5BFEED3F7530C104AC /* LLShortCutViewController.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = LLShortCutViewController.h; path = LLDebugTool/Core/Component/ShortCut/UserInterface/LLShortCutViewController.h; sourceTree = ""; }; + CDF553859C80B6935CE37CEFB4FDF6BC /* ForegroundReconnection.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = ForegroundReconnection.h; path = MQTTClient/MQTTClient/ForegroundReconnection.h; sourceTree = ""; }; CE22F08285FBC6969FF903551651BCBC /* TUIChatCallingDataProvider.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = TUIChatCallingDataProvider.h; sourceTree = ""; }; - CE299E1203694BD2A9DE3A761032C7CF /* YBIBImageData+Internal.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "YBIBImageData+Internal.h"; path = "YBImageBrowser/Image/YBIBImageData+Internal.h"; sourceTree = ""; }; + CE380A2D80461203CB5EF1EC7876D1AC /* Duration.pbobjc.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = Duration.pbobjc.h; path = objectivec/google/protobuf/Duration.pbobjc.h; sourceTree = ""; }; + CE38FE9C7C3B869FB38E67A91A3BF617 /* YYCGUtilities.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = YYCGUtilities.m; path = YYCategories/Quartz/YYCGUtilities.m; sourceTree = ""; }; CE3AFEB67175C77D974F0ADF335962C8 /* TUIDarkModel.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = TUIDarkModel.m; sourceTree = ""; }; - CE44DC8060163D4E2828401C9225903A /* MJRefreshNormalTrailer.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = MJRefreshNormalTrailer.m; path = MJRefresh/Custom/Trailer/MJRefreshNormalTrailer.m; sourceTree = ""; }; - CE5A4D133896095D90DD4D5FCE746F91 /* aosl.xcframework */ = {isa = PBXFileReference; includeInIndex = 1; path = aosl.xcframework; sourceTree = ""; }; - CE6B5A4678C0703F54C076CE855DED1E /* LLWindowManager.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = LLWindowManager.h; path = LLDebugTool/Core/Others/Manager/WindowManager/LLWindowManager.h; sourceTree = ""; }; + CE511EFACF0EA87C83306AB4C60769B5 /* MQTTPersistence.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = MQTTPersistence.h; path = MQTTClient/MQTTClient/MQTTPersistence.h; sourceTree = ""; }; + CE53C7588B42781E5A62E85D6BC5824B /* LLMagnifierComponent.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = LLMagnifierComponent.h; path = LLDebugTool/Core/Component/Magnifier/LLMagnifierComponent.h; sourceTree = ""; }; CEC2619022B1476C1306B6A4B8DCA5BB /* TUIGroupInfoController_Minimalist.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = TUIGroupInfoController_Minimalist.m; sourceTree = ""; }; - CECBB213D69458631B4885D75F4DCC71 /* GPBRootObject.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = GPBRootObject.m; path = objectivec/GPBRootObject.m; sourceTree = ""; }; - CEF8EB16640BF42DD91C5EF839BF29A1 /* MQTTSessionManager.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = MQTTSessionManager.m; path = MQTTClient/MQTTClient/MQTTSessionManager.m; sourceTree = ""; }; + CEDA2D880A862E9E8EA601DB0DD7E776 /* MQTTCFSocketEncoder.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = MQTTCFSocketEncoder.h; path = MQTTClient/MQTTClient/MQTTCFSocketEncoder.h; sourceTree = ""; }; + CEE3C4466188D2B0AFE31D639BFE683C /* TZVideoPlayerController.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = TZVideoPlayerController.m; path = TZImagePickerController/TZImagePickerController/TZVideoPlayerController.m; sourceTree = ""; }; + CEEB0214F896A6C53854D4F3BF506498 /* UIView+LL_Utils.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "UIView+LL_Utils.h"; path = "LLDebugTool/Core/Others/Category/UIView/UIView+LL_Utils.h"; sourceTree = ""; }; + CEF0ED2E06CBE14491AF9FD14CEF3B9C /* QCloudCore-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "QCloudCore-dummy.m"; sourceTree = ""; }; + CEF0F2326528DDC9C23F31E0F7DC083C /* RACCompoundDisposable.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = RACCompoundDisposable.h; path = ReactiveObjC/RACCompoundDisposable.h; sourceTree = ""; }; + CEF3CE4555FDAEA369ABD1581E297B11 /* QCloudRequestData+COSXML.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "QCloudRequestData+COSXML.m"; path = "QCloudCOSXML/Classes/Base/QCloudRequestData+COSXML.m"; sourceTree = ""; }; + CEF4B9B1F796455AFE7B18763F69EBDE /* OSSLogMacros.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = OSSLogMacros.h; path = AliyunOSSSDK/OSSFileLog/OSSLogMacros.h; sourceTree = ""; }; CEFB90355676732A704783490C6AF718 /* TUIJoinGroupMessageCellData.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = TUIJoinGroupMessageCellData.m; sourceTree = ""; }; CF003CA42C1A3BEB0DB3D0AE908137A2 /* Pods-QXLiveDev */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; name = "Pods-QXLiveDev"; path = Pods_QXLiveDev.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - CF0F3A9254672A497A06C1992F0CCCA0 /* QGVAPMetalUtil.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = QGVAPMetalUtil.h; path = iOS/QGVAPlayer/QGVAPlayer/Classes/Utils/QGVAPMetalUtil.h; sourceTree = ""; }; CF1281E58AA1045D4B7F33FC56691C42 /* SDWebImage-SDWebImage */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; name = "SDWebImage-SDWebImage"; path = SDWebImage.bundle; sourceTree = BUILT_PRODUCTS_DIR; }; - CF13F429D0EBA44F948BA8FB164E9295 /* AvoidCrash-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "AvoidCrash-dummy.m"; sourceTree = ""; }; - CF22ACA36E6E1D4341A21AC7BDB8234B /* JXPagingView-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "JXPagingView-dummy.m"; sourceTree = ""; }; - CF3BCCDFE5207EEDDAA538327D74F2D6 /* GCDTimer.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = GCDTimer.m; path = MQTTClient/MQTTClient/GCDTimer.m; sourceTree = ""; }; - CF53369A8B0DF0513BDF05E8284107D4 /* VAPMacros.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = VAPMacros.h; path = iOS/QGVAPlayer/QGVAPlayer/Classes/VAPMacros.h; sourceTree = ""; }; - CF552B94D869FC0760C9EF232E9EF18D /* alpha_processing_sse2.c */ = {isa = PBXFileReference; includeInIndex = 1; name = alpha_processing_sse2.c; path = src/dsp/alpha_processing_sse2.c; sourceTree = ""; }; - CF5CAD8EC46028FBA2494B8B40E60D5E /* MQTTSessionLegacy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = MQTTSessionLegacy.m; path = MQTTClient/MQTTClient/MQTTSessionLegacy.m; sourceTree = ""; }; + CF28D596AE82B37A33C0FDA2C9F674A4 /* NSString+LL_Utils.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "NSString+LL_Utils.h"; path = "LLDebugTool/Core/Others/Category/NSString/NSString+LL_Utils.h"; sourceTree = ""; }; + CF41A05EADB663B1410C03EDE0207D4F /* JXCategoryTitleVerticalZoomView.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = JXCategoryTitleVerticalZoomView.m; path = Sources/VerticalZoomTitle/JXCategoryTitleVerticalZoomView.m; sourceTree = ""; }; + CF4FB944E62FFF369A009D4F038B93D0 /* QCloudSimplePing.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = QCloudSimplePing.h; path = QCloudCore/Classes/Base/QCLOUDRestNet/DNSCache/QCloudSimplePing.h; sourceTree = ""; }; CF5E2D4522BE3B45082331E0D2D77725 /* TUIFaceMessageCellData.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = TUIFaceMessageCellData.h; sourceTree = ""; }; + CF81D9C467A44B4C6264E6ADF335BE24 /* QCloudCompleteMultipartUploadInfo.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = QCloudCompleteMultipartUploadInfo.h; path = QCloudCOSXML/Classes/Transfer/model/QCloudCompleteMultipartUploadInfo.h; sourceTree = ""; }; CF8DC8D67823DDEBA8A706CA855A7282 /* TUIMergeMessageCellData.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = TUIMergeMessageCellData.h; sourceTree = ""; }; - CF8EE222BE8FE0853FC74C87C3A9BCF9 /* LineScoreRecorder.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = LineScoreRecorder.swift; path = AgoraLyricsScore/Class/Other/LineScoreRecorder.swift; sourceTree = ""; }; + CF932E20F871204E5F07D3F80869C5D2 /* QCloudCRC64.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = QCloudCRC64.h; path = QCloudCore/Classes/Base/QCloudCategory/QCloudCRC64.h; sourceTree = ""; }; + CF941EA1855F5D99675B4CAEA6AFAF87 /* ResourceBundle-IQKeyboardManager-IQKeyboardManager-Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "ResourceBundle-IQKeyboardManager-IQKeyboardManager-Info.plist"; sourceTree = ""; }; + CF94AD26C9835BA712DC1A55C08DAEF4 /* NSEnumerator+RACSequenceAdditions.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "NSEnumerator+RACSequenceAdditions.h"; path = "ReactiveObjC/NSEnumerator+RACSequenceAdditions.h"; sourceTree = ""; }; CF9D185009F4804E7C7E3F0C509C5E69 /* TUIGroupPinCell.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = TUIGroupPinCell.m; sourceTree = ""; }; - CFAA67A034CA90CF6F568464671B5835 /* NSString+RACKeyPathUtilities.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "NSString+RACKeyPathUtilities.h"; path = "ReactiveObjC/NSString+RACKeyPathUtilities.h"; sourceTree = ""; }; - CFC7F6F048271F8BF3C990B162401D12 /* GPBExtensionRegistry.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = GPBExtensionRegistry.m; path = objectivec/GPBExtensionRegistry.m; sourceTree = ""; }; - D0022808E8F77EC0E79CEBA82472AEED /* ReactiveObjC.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = ReactiveObjC.release.xcconfig; sourceTree = ""; }; - D03E32DA9872F407D0A99E50C50BC378 /* SDImageGraphics.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDImageGraphics.m; path = SDWebImage/Core/SDImageGraphics.m; sourceTree = ""; }; - D041FFCD34A6FD5AEA5E5A185B1E7CE7 /* mz_strm_wzaes.c */ = {isa = PBXFileReference; includeInIndex = 1; name = mz_strm_wzaes.c; path = SSZipArchive/minizip/mz_strm_wzaes.c; sourceTree = ""; }; - D04A0233439BC2F162850F68B07CCB3C /* LLLogFilterView.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = LLLogFilterView.h; path = LLDebugTool/Core/Component/Log/UserInterface/LLLogFilterView.h; sourceTree = ""; }; + CF9F8D38658BCF5191653BC297E28C70 /* LLRouter+Network.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "LLRouter+Network.m"; path = "LLDebugTool/Core/Others/Router/LLRouter+Network.m"; sourceTree = ""; }; + CFA0BB8A4DE76ACEDD5CFE6C69C63AB2 /* NSObject+YYModel.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "NSObject+YYModel.h"; path = "YYModel/NSObject+YYModel.h"; sourceTree = ""; }; + CFA215FD18CE2A201870B774F659F913 /* YYMemoryCache.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = YYMemoryCache.m; path = YYCache/YYMemoryCache.m; sourceTree = ""; }; + CFC26C4557DF4FFAF6DFED98F128E915 /* LLWindowManager+WidgetBorder.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "LLWindowManager+WidgetBorder.m"; path = "LLDebugTool/Core/Component/WidgetBorder/UserInterface/LLWindowManager+WidgetBorder.m"; sourceTree = ""; }; + CFE2AE2DCDFB03CB52175AB2EC84E409 /* LLEntryStyleModel.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = LLEntryStyleModel.h; path = LLDebugTool/Core/Others/CommonUI/Window/EntryWindow/LLEntryStyleModel.h; sourceTree = ""; }; + CFF79233CB753D68E555DC8E3B25F755 /* TAPageControl.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = TAPageControl.m; path = SDCycleScrollView/Lib/SDCycleScrollView/PageControl/TAPageControl.m; sourceTree = ""; }; + D000622E0B2B6A248BC966253E5F59F5 /* AgoraLyricsScore-Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "AgoraLyricsScore-Info.plist"; sourceTree = ""; }; + D01045A790CB707EF8D11F839D332878 /* UIButton+RACCommandSupport.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "UIButton+RACCommandSupport.m"; path = "ReactiveObjC/UIButton+RACCommandSupport.m"; sourceTree = ""; }; + D01197E6C49A9AD7979056EE3756EAA8 /* LLTitleCell.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = LLTitleCell.m; path = LLDebugTool/Core/Others/CommonUI/View/TitleCell/LLTitleCell.m; sourceTree = ""; }; + D014ADFEC72D94D1F08EFECCCFB30171 /* LLMoveView.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = LLMoveView.m; path = LLDebugTool/Core/Others/CommonUI/View/MoveView/LLMoveView.m; sourceTree = ""; }; + D026878D71D61309F44586E0D3DFD323 /* LLThemeManager.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = LLThemeManager.m; path = LLDebugTool/Core/Others/Manager/ThemeManager/LLThemeManager.m; sourceTree = ""; }; + D02B90433D7B5F3B2ACEAC03D5CD20DD /* NSDate+BRPickerView.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "NSDate+BRPickerView.m"; path = "BRPickerView/DatePicker/NSDate+BRPickerView.m"; sourceTree = ""; }; D04AF005124A945C310D69F389023BE3 /* TUIConversationTheme.bundle */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = "wrapper.plug-in"; name = TUIConversationTheme.bundle; path = Resources/TUIConversationTheme.bundle; sourceTree = ""; }; - D07CAE0A81A28571633FD8842EDBE8CB /* AgoraComponetLog.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = AgoraComponetLog.debug.xcconfig; sourceTree = ""; }; - D080384D965E90350B3F19D493EB0BAB /* LLHtmlConfigViewController.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = LLHtmlConfigViewController.h; path = LLDebugTool/Core/Component/Html/UserInterface/LLHtmlConfigViewController.h; sourceTree = ""; }; + D0518F549EC5A50220151506B1FD184B /* FirstToneHintView.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = FirstToneHintView.swift; path = AgoraLyricsScore/Class/Lyrics/FirstToneHintView.swift; sourceTree = ""; }; + D05247707BB27F2A39F7138D5AFBFC7C /* LLShortCutComponent.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = LLShortCutComponent.h; path = LLDebugTool/Core/Component/ShortCut/LLShortCutComponent.h; sourceTree = ""; }; + D08510DE0D551DB58D948856A43CD905 /* QGVAPSafeMutableArray.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = QGVAPSafeMutableArray.h; path = iOS/QGVAPlayer/QGVAPlayer/Classes/Utils/QGVAPSafeMutableArray.h; sourceTree = ""; }; + D0873B00FF4A1B50B350980FED12AE7E /* NSURLRequest+COS.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "NSURLRequest+COS.m"; path = "QCloudCore/Classes/Base/QCloudClientBase/Authentation/NSURLRequest+COS.m"; sourceTree = ""; }; D0A5F9BE6E04A13B03CEB14559A58466 /* TUIMergeReplyQuoteView_Minimalist.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = TUIMergeReplyQuoteView_Minimalist.h; sourceTree = ""; }; - D0BD09083F508CA50BA0A33856D212BB /* MQTTDecoder.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = MQTTDecoder.m; path = MQTTClient/MQTTClient/MQTTDecoder.m; sourceTree = ""; }; + D0A9B55B2A4B78892B247E467A229EE2 /* upsampling_msa.c */ = {isa = PBXFileReference; includeInIndex = 1; name = upsampling_msa.c; path = src/dsp/upsampling_msa.c; sourceTree = ""; }; + D0B07744061C78005223DDAF28091705 /* QCloudRequestOperation.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = QCloudRequestOperation.m; path = QCloudCore/Classes/Base/QCLOUDRestNet/Operations/QCloudRequestOperation.m; sourceTree = ""; }; D0CE18216B8392E2C506407533674D7C /* TUIDarkModel.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = TUIDarkModel.h; sourceTree = ""; }; - D0F4B6D3EB21B5225D98D6735CEFA345 /* TZPhotoPreviewCell.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = TZPhotoPreviewCell.h; path = TZImagePickerController/TZImagePickerController/TZPhotoPreviewCell.h; sourceTree = ""; }; - D0FF48F5F84AA4ECC2ED9051A2BCD707 /* QGMP4Parser.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = QGMP4Parser.m; path = iOS/QGVAPlayer/QGVAPlayer/Classes/MP4Parser/QGMP4Parser.m; sourceTree = ""; }; - D1423811F8D69704871E20B5BEA8F6CB /* YYKVStorage.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = YYKVStorage.m; path = YYCache/YYKVStorage.m; sourceTree = ""; }; - D15AF3430226E14F6709DD8A871FA73E /* BRPickerView-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "BRPickerView-dummy.m"; sourceTree = ""; }; - D1879B8F07A78453656448845438BB92 /* UITableViewCell+RACSignalSupport.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "UITableViewCell+RACSignalSupport.m"; path = "ReactiveObjC/UITableViewCell+RACSignalSupport.m"; sourceTree = ""; }; - D1BA08E58684BE22797B6961922733E2 /* SSZipArchive-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "SSZipArchive-prefix.pch"; sourceTree = ""; }; + D0D2B295BF80FD7647A6E373F02EB062 /* NSData+YYAdd.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "NSData+YYAdd.m"; path = "YYCategories/Foundation/NSData+YYAdd.m"; sourceTree = ""; }; + D0F5589533F2D0723DEADB5EBC6D7482 /* UIImage+Metadata.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "UIImage+Metadata.h"; path = "SDWebImage/Core/UIImage+Metadata.h"; sourceTree = ""; }; + D1B43A5397B326E44C076B5E4756F49A /* LLSandboxModel.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = LLSandboxModel.h; path = LLDebugTool/Core/Component/Sandbox/Function/LLSandboxModel.h; sourceTree = ""; }; + D1BD141EC6A53A6B60DC9B14624F1C22 /* QGVAPMetalRenderer.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = QGVAPMetalRenderer.m; path = iOS/QGVAPlayer/QGVAPlayer/Classes/Views/Metal/Vapx/QGVAPMetalRenderer.m; sourceTree = ""; }; D1C6BA2EAE69D5409D69FE263D35D857 /* TUIGroupButtonCell_Minimalist.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = TUIGroupButtonCell_Minimalist.h; sourceTree = ""; }; - D1D010B8277004C4E2A48274EB8D5712 /* YYTextInput.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = YYTextInput.h; path = YYText/Component/YYTextInput.h; sourceTree = ""; }; - D20DD2027AC5A9401BA861A78C7A6C83 /* NSDictionary+AvoidCrash.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "NSDictionary+AvoidCrash.h"; path = "AvoidCrash/NSDictionary+AvoidCrash.h"; sourceTree = ""; }; - D215081B233C0157899F8CD1392F027F /* QGVAPLogger.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = QGVAPLogger.h; path = iOS/QGVAPlayer/QGVAPlayer/Classes/Utils/Logger/QGVAPLogger.h; sourceTree = ""; }; D21C381482DDAD3E0EA0740220813E03 /* TIMCommonLocalizable.bundle */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = "wrapper.plug-in"; name = TIMCommonLocalizable.bundle; path = Resources/TIMCommonLocalizable.bundle; sourceTree = ""; }; - D21CDA4E7F267846E8641BE42E764B13 /* MJRefreshHeader.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = MJRefreshHeader.h; path = MJRefresh/Base/MJRefreshHeader.h; sourceTree = ""; }; - D23BF5872AAEF793BFFD3AFD3387CA65 /* OSSLogMacros.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = OSSLogMacros.h; path = AliyunOSSSDK/OSSFileLog/OSSLogMacros.h; sourceTree = ""; }; - D265E983DA80B4DBBE3AF47B25EFCDB7 /* RACCompoundDisposable.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = RACCompoundDisposable.m; path = ReactiveObjC/RACCompoundDisposable.m; sourceTree = ""; }; - D28AE5C239DB630C7D59111EAE83EC08 /* UISegmentedControl+RACSignalSupport.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "UISegmentedControl+RACSignalSupport.h"; path = "ReactiveObjC/UISegmentedControl+RACSignalSupport.h"; sourceTree = ""; }; - D29B7BE54DD7C222865D156D3AB9CAAE /* RACDisposable.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = RACDisposable.m; path = ReactiveObjC/RACDisposable.m; sourceTree = ""; }; - D2A4C52251BC280747DE59A47A15BDC3 /* MQTTSSLSecurityPolicyTransport.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = MQTTSSLSecurityPolicyTransport.h; path = MQTTClient/MQTTClient/MQTTSSLSecurityPolicyTransport.h; sourceTree = ""; }; - D2B4F1EC84F075A17D49A81F1B6EBFB4 /* YYTextAsyncLayer.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = YYTextAsyncLayer.m; path = YYText/Utility/YYTextAsyncLayer.m; sourceTree = ""; }; - D2C72257FB63B5EA50AE6A8C3222B5D3 /* UIButton+YYWebImage.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "UIButton+YYWebImage.m"; path = "YYWebImage/Categories/UIButton+YYWebImage.m"; sourceTree = ""; }; - D2CFE4A739CC1184021F95EB6AABFC46 /* LLEntryTitleView.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = LLEntryTitleView.m; path = LLDebugTool/Core/Others/CommonUI/Window/EntryWindow/LLEntryTitleView.m; sourceTree = ""; }; - D2D29C50C80059906846A05DDE838167 /* LLTool.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = LLTool.h; path = LLDebugTool/Core/Others/Tool/LLTool.h; sourceTree = ""; }; - D2DE28FAFB4B78188B1375DF4C93E230 /* WebP.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = WebP.framework; path = Vendor/WebP.framework; sourceTree = ""; }; - D2E4449147CF1B92367B8ED7A68AA121 /* LLStorageManager.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = LLStorageManager.m; path = LLDebugTool/Core/Storage/LLStorageManager.m; sourceTree = ""; }; - D2EDB3C2522692B94BFB6EC06EB734D0 /* RACStringSequence.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = RACStringSequence.h; path = ReactiveObjC/RACStringSequence.h; sourceTree = ""; }; + D21FC35A263003D9063A244A68F3BF6A /* QCloudCOSXMLDownloadObjectRequest.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = QCloudCOSXMLDownloadObjectRequest.h; path = QCloudCOSXML/Classes/Transfer/request/QCloudCOSXMLDownloadObjectRequest.h; sourceTree = ""; }; + D22A05C657A520EB1959789447F57706 /* UITextField+RACSignalSupport.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "UITextField+RACSignalSupport.m"; path = "ReactiveObjC/UITextField+RACSignalSupport.m"; sourceTree = ""; }; + D231EA1EA63CDB0D9177BE3432143F87 /* RACKVOChannel.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = RACKVOChannel.h; path = ReactiveObjC/RACKVOChannel.h; sourceTree = ""; }; + D23C21717D45A802CA9C51BD698860B6 /* YBIBImageCache.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = YBIBImageCache.h; path = YBImageBrowser/Image/YBIBImageCache.h; sourceTree = ""; }; + D25B963F5D91092D2AF613777D3EDF10 /* AFURLRequestSerialization.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = AFURLRequestSerialization.m; path = AFNetworking/AFURLRequestSerialization.m; sourceTree = ""; }; + D262B47F6425F26FE5153FE17935A628 /* Zip-Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "Zip-Info.plist"; sourceTree = ""; }; + D26A701D17EEABC1EF6B5053A3207934 /* NSObject+LL_Utils.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "NSObject+LL_Utils.h"; path = "LLDebugTool/Core/Others/Category/NSObject/NSObject+LL_Utils.h"; sourceTree = ""; }; + D2760843D551D0BD6CB6EE2A8F604376 /* YBIBToastView.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = YBIBToastView.h; path = YBImageBrowser/AuxiliaryView/YBIBToastView.h; sourceTree = ""; }; + D2801E753F234D986E6D64E5D447003D /* TXIMSDK_Plus_iOS_XCFramework.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = TXIMSDK_Plus_iOS_XCFramework.debug.xcconfig; sourceTree = ""; }; + D29F11B1D1C5DE70CDD5EEE39537CD8C /* LLHtmlWkWebViewController.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = LLHtmlWkWebViewController.m; path = LLDebugTool/Core/Component/Html/UserInterface/LLHtmlWkWebViewController.m; sourceTree = ""; }; + D2BB9DF39D8B81853CBE9687B603D089 /* LLEntryWindow.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = LLEntryWindow.h; path = LLDebugTool/Core/Others/CommonUI/Window/EntryWindow/LLEntryWindow.h; sourceTree = ""; }; + D2BD87A3DBDBAC8E670C094233EB262E /* OSSPutSymlinkResult.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = OSSPutSymlinkResult.h; path = AliyunOSSSDK/OSSPutSymlinkResult.h; sourceTree = ""; }; + D2D15502E1716B21DCCC2DDCE7702BD7 /* LLAppInfoHelper.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = LLAppInfoHelper.h; path = LLDebugTool/Core/Component/AppInfo/Function/LLAppInfoHelper.h; sourceTree = ""; }; + D2E7C8FDB05292AE8AFC4257846F3A95 /* QGVAPLogger.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = QGVAPLogger.m; path = iOS/QGVAPlayer/QGVAPlayer/Classes/Utils/Logger/QGVAPLogger.m; sourceTree = ""; }; D2F0CED0BD6588FF1177DA192DD47436 /* TUIChat_Minimalist.bundle */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = "wrapper.plug-in"; name = TUIChat_Minimalist.bundle; path = Resources/TUIChat_Minimalist.bundle; sourceTree = ""; }; - D30D30038FB48FE1F5D0C8959339462A /* SSZipArchive.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.module; path = SSZipArchive.modulemap; sourceTree = ""; }; - D310A2CB30D273BCCE0133B8B391E30E /* bit_reader_inl_utils.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = bit_reader_inl_utils.h; path = src/utils/bit_reader_inl_utils.h; sourceTree = ""; }; - D318B214A7C1B1081D57579C4DD9F600 /* RACTupleSequence.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = RACTupleSequence.m; path = ReactiveObjC/RACTupleSequence.m; sourceTree = ""; }; - D35408311B57D25B8EC7D4E521EA80D7 /* TZPhotoPreviewController.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = TZPhotoPreviewController.m; path = TZImagePickerController/TZImagePickerController/TZPhotoPreviewController.m; sourceTree = ""; }; - D35458AF4A94FAC9A811EEA6AB0F7F81 /* SDWebImageWebPCoder-Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "SDWebImageWebPCoder-Info.plist"; sourceTree = ""; }; - D374C3674BBC4C3442B6B5FE6EB8874E /* LLWindowManager+Ruler.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "LLWindowManager+Ruler.m"; path = "LLDebugTool/Core/Component/Ruler/UserInterface/LLWindowManager+Ruler.m"; sourceTree = ""; }; + D33508649AF468E5AD20E17489CB50D7 /* LLLocationProxy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = LLLocationProxy.m; path = LLDebugTool/Core/Component/Location/Function/LLLocationProxy.m; sourceTree = ""; }; + D35260602FA0F8F5989140704877FD64 /* SDWebImageDownloaderResponseModifier.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDWebImageDownloaderResponseModifier.m; path = SDWebImage/Core/SDWebImageDownloaderResponseModifier.m; sourceTree = ""; }; + D3570A7EC59D075D85838481B4558A30 /* QCloudHTTPRequest.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = QCloudHTTPRequest.h; path = QCloudCore/Classes/Base/QCLOUDRestNet/CoreRequest/QCloudHTTPRequest.h; sourceTree = ""; }; + D35C99E8614F1240276A47D9A3C0237B /* MJRefresh.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = MJRefresh.h; path = MJRefresh/MJRefresh.h; sourceTree = ""; }; + D36D1075AA0CC80AD328D2A389227227 /* quant_levels_dec_utils.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = quant_levels_dec_utils.h; path = src/utils/quant_levels_dec_utils.h; sourceTree = ""; }; + D36E63C06BFB83559EE38B2505C3048A /* MQTTClient-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "MQTTClient-prefix.pch"; sourceTree = ""; }; + D370EA7482746DE2146E7EE4CFF36767 /* SVGAPlayer-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "SVGAPlayer-dummy.m"; sourceTree = ""; }; D375198E0E511210A10D45F22A5E8258 /* TIMCommonMediator.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = TIMCommonMediator.m; sourceTree = ""; }; D378CF997ED4D06ECB2AE3DA1820EDE0 /* TUIDefine.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = TUIDefine.h; sourceTree = ""; }; - D3B1A9676B1BE055F959E27DD2539F24 /* UIImage+WebP.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "UIImage+WebP.h"; path = "SDWebImageWebPCoder/Classes/UIImage+WebP.h"; sourceTree = ""; }; - D3C9DC3448E4B987779EC4167A93EF3D /* SDWebImageWebPCoderDefine.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDWebImageWebPCoderDefine.m; path = SDWebImageWebPCoder/Classes/SDWebImageWebPCoderDefine.m; sourceTree = ""; }; - D3CEC09ABA681A31757D676664810F09 /* LLLocationComponent.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = LLLocationComponent.h; path = LLDebugTool/Core/Component/Location/LLLocationComponent.h; sourceTree = ""; }; - D3D2C75FD094644A4AE4943D04145088 /* LLFunctionViewController.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = LLFunctionViewController.m; path = LLDebugTool/Core/Others/Component/Function/UserInterface/LLFunctionViewController.m; sourceTree = ""; }; - D415E70E083DD16E2702B55402406756 /* SDImageCache.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDImageCache.h; path = SDWebImage/Core/SDImageCache.h; sourceTree = ""; }; - D421B73F2AB1AD9950928AAD24188E08 /* AvoidCrash.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = AvoidCrash.m; path = AvoidCrash/AvoidCrash.m; sourceTree = ""; }; - D43A5CCEB173771A853DD4C4B31EB8FB /* TZImagePickerController-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "TZImagePickerController-prefix.pch"; sourceTree = ""; }; - D442259526A73D1818CF1B3FEF6FB017 /* LLSandboxTextPreviewController.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = LLSandboxTextPreviewController.m; path = LLDebugTool/Core/Component/Sandbox/UserInterface/LLSandboxTextPreviewController.m; sourceTree = ""; }; - D444D03CC4FB842D121B0F3136BDBC5A /* BRTextModel.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = BRTextModel.m; path = BRPickerView/TextPicker/BRTextModel.m; sourceTree = ""; }; - D4633C889866FADCB396805A32962CA8 /* UITextField+RACSignalSupport.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "UITextField+RACSignalSupport.m"; path = "ReactiveObjC/UITextField+RACSignalSupport.m"; sourceTree = ""; }; - D471A934451267DFEDEC0E9458C1B905 /* UIColor+SDHexString.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "UIColor+SDHexString.h"; path = "SDWebImage/Private/UIColor+SDHexString.h"; sourceTree = ""; }; - D472CD1919EA716FF1780DD9D7D159D8 /* enc_neon.c */ = {isa = PBXFileReference; includeInIndex = 1; name = enc_neon.c; path = src/dsp/enc_neon.c; sourceTree = ""; }; - D47B53D2485EEE90A13BA750C09AEB9F /* SDWebImageTransition.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDWebImageTransition.m; path = SDWebImage/Core/SDWebImageTransition.m; sourceTree = ""; }; - D493A05AE3999CBA727F95D6D0981C65 /* SDCycleScrollView.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = SDCycleScrollView.release.xcconfig; sourceTree = ""; }; + D37A688C16B1234239DED92E3320D15B /* SDImageCoder.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDImageCoder.h; path = SDWebImage/Core/SDImageCoder.h; sourceTree = ""; }; + D3805108AB8AB68C6DD903BA0AEEDD37 /* UIImagePickerController+RACSignalSupport.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "UIImagePickerController+RACSignalSupport.m"; path = "ReactiveObjC/UIImagePickerController+RACSignalSupport.m"; sourceTree = ""; }; + D3AF15632551C4CCE70DD675D38A81A1 /* YYImageCoder.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = YYImageCoder.m; path = YYImage/YYImageCoder.m; sourceTree = ""; }; + D3B5ABAAD3C55CA06C58BC87CEED0469 /* YYWebImage.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = YYWebImage.debug.xcconfig; sourceTree = ""; }; + D3BA422BFCBE62C868DFC67AAE710A1E /* FMDB.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.module; path = FMDB.modulemap; sourceTree = ""; }; + D3E3C7EFAD924F6C0AB18FB04A025563 /* MJRefreshNormalTrailer.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = MJRefreshNormalTrailer.h; path = MJRefresh/Custom/Trailer/MJRefreshNormalTrailer.h; sourceTree = ""; }; + D3F3803FD9E0A31A59E9FA60AFDF0F74 /* RACEmptySignal.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = RACEmptySignal.h; path = ReactiveObjC/RACEmptySignal.h; sourceTree = ""; }; + D414544FFA7415CC2A36EF0984F5D467 /* GPBCodedOutputStream.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = GPBCodedOutputStream.m; path = objectivec/GPBCodedOutputStream.m; sourceTree = ""; }; + D45A5B4953AC305222C3054D5C54F266 /* demux.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = demux.h; path = src/webp/demux.h; sourceTree = ""; }; + D477CD6410C7FF4D1DD1B7801611179D /* QCloudSupervisorySession.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = QCloudSupervisorySession.m; path = QCloudCore/Classes/Base/Supervisory/QCloudSupervisorySession.m; sourceTree = ""; }; + D479BA1C8C604B48DA8A04018EDA3382 /* SDWebImageDownloaderRequestModifier.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDWebImageDownloaderRequestModifier.h; path = SDWebImage/Core/SDWebImageDownloaderRequestModifier.h; sourceTree = ""; }; + D47A22BD575A9B6FFE45026BF1DBB385 /* YBIBVideoTopBar.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = YBIBVideoTopBar.h; path = Video/YBIBVideoTopBar.h; sourceTree = ""; }; + D488DBC8E27EED6616FE1AFFF663B7D7 /* SDmetamacros.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDmetamacros.h; path = SDWebImage/Private/SDmetamacros.h; sourceTree = ""; }; D49CE152AD6B6A368F767598E30EF271 /* TUICameraViewController.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = TUICameraViewController.m; sourceTree = ""; }; - D4C3D0176CBA55DA8C3B2C968E77902A /* SSZipCommon.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SSZipCommon.h; path = SSZipArchive/SSZipCommon.h; sourceTree = ""; }; + D49D69CC1463B9E1441DB8EF597C49CC /* UIImage+QCloudBundle.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "UIImage+QCloudBundle.m"; path = "QCloudCore/Classes/Base/QCloudBundle/UIImage+QCloudBundle.m"; sourceTree = ""; }; + D4A89FDEABCA149509D2610849CF63D7 /* JXCategoryDotCellModel.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = JXCategoryDotCellModel.h; path = Sources/Dot/JXCategoryDotCellModel.h; sourceTree = ""; }; + D4A94EDF166017F836A2F4FAB770A2A5 /* SDImageGIFCoder.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDImageGIFCoder.m; path = SDWebImage/Core/SDImageGIFCoder.m; sourceTree = ""; }; + D4E90F4F7A8F65885DF9F6E01FA7088A /* QCloudListPartsResult.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = QCloudListPartsResult.h; path = QCloudCOSXML/Classes/Transfer/model/QCloudListPartsResult.h; sourceTree = ""; }; D50B66BD78551E541F8416B9EFC9F935 /* TUIGroupInfoDataProvider_Minimalist.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = TUIGroupInfoDataProvider_Minimalist.h; sourceTree = ""; }; - D51323B7EF423B6F5E9C22307A601AF0 /* YBIBVideoData.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = YBIBVideoData.m; path = Video/YBIBVideoData.m; sourceTree = ""; }; - D51C121C141A77CFF72D490239BAF9F7 /* LLHtmlUIWebViewController.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = LLHtmlUIWebViewController.m; path = LLDebugTool/Core/Component/Html/UserInterface/LLHtmlUIWebViewController.m; sourceTree = ""; }; - D5258A8F9600058612450C0A2D0ADDFD /* OSSGetObjectTaggingResult.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = OSSGetObjectTaggingResult.m; path = AliyunOSSSDK/OSSGetObjectTaggingResult.m; sourceTree = ""; }; - D52DFCFF44DE16962C6ED50F3CD3C869 /* Zip.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Zip.swift; path = Zip/Zip.swift; sourceTree = ""; }; + D51CBD6D22A4E97F4C979DB181064FF2 /* AgoraClearVisionExtension.xcframework */ = {isa = PBXFileReference; includeInIndex = 1; path = AgoraClearVisionExtension.xcframework; sourceTree = ""; }; + D54D2C488298D0C70A11E825433A8FF9 /* YYTextRubyAnnotation.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = YYTextRubyAnnotation.h; path = YYText/String/YYTextRubyAnnotation.h; sourceTree = ""; }; + D54E60B963045432F57E02171AE8C7E7 /* QCloudLogger.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = QCloudLogger.h; path = QCloudCore/Classes/Base/Logger/QCloudLogger.h; sourceTree = ""; }; D55F19B8100733EBC5A25A0FC5B27F3F /* TUICameraMacro.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = TUICameraMacro.h; sourceTree = ""; }; - D56D35B4F308B3FB671479609357BEA3 /* IQKeyboardManagerConstantsInternal.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = IQKeyboardManagerConstantsInternal.h; path = IQKeyboardManager/Constants/IQKeyboardManagerConstantsInternal.h; sourceTree = ""; }; - D574930237D0B53170786DC8F3DF2FBA /* IQToolbar.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = IQToolbar.m; path = IQKeyboardManager/IQToolbar/IQToolbar.m; sourceTree = ""; }; - D595FDB6AA04C3954C1C3772EE1F7EFD /* SDImageCachesManagerOperation.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDImageCachesManagerOperation.m; path = SDWebImage/Private/SDImageCachesManagerOperation.m; sourceTree = ""; }; - D5C4D24F13BAF847987F7069AABE82EA /* LLCrashCell.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = LLCrashCell.m; path = LLDebugTool/Core/Component/Crash/UserInterface/LLCrashCell.m; sourceTree = ""; }; - D5DF4228C29FD3D24B2C9710525CB678 /* LLScreenshotBaseOperation.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = LLScreenshotBaseOperation.m; path = LLDebugTool/Core/Component/Screenshot/UserInterface/LLScreenshotBaseOperation.m; sourceTree = ""; }; + D57C815FBA33C1D6AA386287678BE074 /* FMDatabaseAdditions.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FMDatabaseAdditions.m; path = src/fmdb/FMDatabaseAdditions.m; sourceTree = ""; }; + D5A5E0E611D4F87301C6D2C36A877C13 /* AFNetworking-Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "AFNetworking-Info.plist"; sourceTree = ""; }; + D5BC3CEAB5F801AEBB63F7AA9BD258BC /* LLFilterDateView.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = LLFilterDateView.h; path = LLDebugTool/Core/Others/CommonUI/View/FilterView/LLFilterDateView.h; sourceTree = ""; }; + D5D0B47D069C02BC3AC52FB851635104 /* MJRefreshHeader.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = MJRefreshHeader.m; path = MJRefresh/Base/MJRefreshHeader.m; sourceTree = ""; }; + D5E90B4CD67A67C3D852421AC1659F23 /* OSSGetBucketInfoRequest.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = OSSGetBucketInfoRequest.m; path = AliyunOSSSDK/OSSGetBucketInfoRequest.m; sourceTree = ""; }; + D5FD50CB70DC73F10EFE6F6FE9EB54DF /* YYTextContainerView.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = YYTextContainerView.m; path = YYText/Component/YYTextContainerView.m; sourceTree = ""; }; + D60397114C329033F3EC1FE6C91F841A /* JXCategoryBaseCell.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = JXCategoryBaseCell.h; path = Sources/Base/JXCategoryBaseCell.h; sourceTree = ""; }; + D61672BC580B7295B72BAA51B46E2C81 /* OSSSignerParams.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = OSSSignerParams.m; path = AliyunOSSSDK/Signer/OSSSignerParams.m; sourceTree = ""; }; + D628CF60CF16B25D244CB5DA92F977B8 /* MQTTSessionManager.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = MQTTSessionManager.m; path = MQTTClient/MQTTClient/MQTTSessionManager.m; sourceTree = ""; }; D632BDA9BA2A480929B1F007B91AAB64 /* MultimediaRecorder.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = MultimediaRecorder.h; sourceTree = ""; }; - D634A240E60F7ACCC06011B82EB73F23 /* rescaler_neon.c */ = {isa = PBXFileReference; includeInIndex = 1; name = rescaler_neon.c; path = src/dsp/rescaler_neon.c; sourceTree = ""; }; + D638E405D8BD255AF8F38DCA255CDF36 /* LLLog.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = LLLog.h; path = LLDebugTool/Core/Component/Log/LLLog.h; sourceTree = ""; }; D65D2E87DDCE429CB28A60DFC7C2356D /* TUIMotionManager.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = TUIMotionManager.h; sourceTree = ""; }; + D65D99444B13FC496E51863A885FCD36 /* AliyunOSSiOS.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = AliyunOSSiOS.debug.xcconfig; sourceTree = ""; }; D66FD26F39529A681C6DDAAEF3317ED5 /* TUIResponderTextView_Minimalist.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = TUIResponderTextView_Minimalist.m; sourceTree = ""; }; - D6D160BF36FB6AD42ADF0CCACC82C43E /* TZImageCropManager.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = TZImageCropManager.h; path = TZImagePickerController/TZImagePickerController/TZImageCropManager.h; sourceTree = ""; }; - D6D3758013920FC1F345973E944F8016 /* SSZipArchive.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SSZipArchive.h; path = SSZipArchive/SSZipArchive.h; sourceTree = ""; }; - D710A177F41CF409EED441B058187584 /* TXIMSDK_Plus_iOS_XCFramework-xcframeworks.sh */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.script.sh; path = "TXIMSDK_Plus_iOS_XCFramework-xcframeworks.sh"; sourceTree = ""; }; - D7247191F9CD01626791CB907C40B585 /* enc_sse2.c */ = {isa = PBXFileReference; includeInIndex = 1; name = enc_sse2.c; path = src/dsp/enc_sse2.c; sourceTree = ""; }; - D730BBEFDCB616A1B9384EB1AD574C0C /* UIImage+Metadata.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "UIImage+Metadata.h"; path = "SDWebImage/Core/UIImage+Metadata.h"; sourceTree = ""; }; + D675818455980FA38020761F6771D3E7 /* LLFunctionItemModel.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = LLFunctionItemModel.h; path = LLDebugTool/Core/Others/Component/Function/UserInterface/LLFunctionItemModel.h; sourceTree = ""; }; + D67C687A64204C0818F7392D75329B77 /* YYModel-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "YYModel-prefix.pch"; sourceTree = ""; }; + D687FAEA674AA0CDC65B66AA70C344EC /* ReactiveObjC.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.module; path = ReactiveObjC.modulemap; sourceTree = ""; }; + D69FB254C932E452540A7B944270FB60 /* QGVAPlayer.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.module; path = QGVAPlayer.modulemap; sourceTree = ""; }; + D6B2DF963D12773BFEABC3276B469599 /* YBIBTopView.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = YBIBTopView.m; path = YBImageBrowser/ToolView/YBIBTopView.m; sourceTree = ""; }; + D6E24392E00CCEFC1DE947C1D4BF8B71 /* JXCategoryTitleCellModel.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = JXCategoryTitleCellModel.m; path = Sources/Title/JXCategoryTitleCellModel.m; sourceTree = ""; }; + D6E3B653DB0FD359B9959046355F7388 /* SDWebImageDownloader.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDWebImageDownloader.m; path = SDWebImage/Core/SDWebImageDownloader.m; sourceTree = ""; }; + D6E4732BF338A7D905F1BD32A6814045 /* LLMagnifierView.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = LLMagnifierView.h; path = LLDebugTool/Core/Component/Magnifier/UserInterface/LLMagnifierView.h; sourceTree = ""; }; + D6EFAB0D634A7CF321E4DE5C37DD9A91 /* SDWebImagePrefetcher.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDWebImagePrefetcher.m; path = SDWebImage/Core/SDWebImagePrefetcher.m; sourceTree = ""; }; + D6FAD67ED2AC36777D1F37562B2CA887 /* LLNetworkDetailViewController.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = LLNetworkDetailViewController.h; path = LLDebugTool/Core/Component/Network/UserInterface/LLNetworkDetailViewController.h; sourceTree = ""; }; + D6FE190AD5AD901796B3A1496940A493 /* UITableView+YYAdd.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "UITableView+YYAdd.m"; path = "YYCategories/UIKit/UITableView+YYAdd.m"; sourceTree = ""; }; + D70F61F84A871A4A5701CC7FF69CA1C0 /* YYTextRubyAnnotation.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = YYTextRubyAnnotation.m; path = YYText/String/YYTextRubyAnnotation.m; sourceTree = ""; }; + D71846A0611A3086C72AD48DB142E0E1 /* YYAnimatedImageView.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = YYAnimatedImageView.m; path = YYImage/YYAnimatedImageView.m; sourceTree = ""; }; D732251049C4356EF790CD35AA9721E9 /* TUIBaseChatViewController_Minimalist.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = TUIBaseChatViewController_Minimalist.h; sourceTree = ""; }; - D7324F57315749B9FB6DF16F6BB3210B /* NSMutableArray+AvoidCrash.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "NSMutableArray+AvoidCrash.h"; path = "AvoidCrash/NSMutableArray+AvoidCrash.h"; sourceTree = ""; }; - D7574DD4D47B99CF15F057DA575390BD /* QGHWDShaders.metal */ = {isa = PBXFileReference; includeInIndex = 1; name = QGHWDShaders.metal; path = iOS/QGVAPlayer/QGVAPlayer/Shaders/QGHWDShaders.metal; sourceTree = ""; }; - D75DC647DAB6C1AEDC8D507218D413DA /* LLSandboxModel.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = LLSandboxModel.m; path = LLDebugTool/Core/Component/Sandbox/Function/LLSandboxModel.m; sourceTree = ""; }; + D74E609EC1715A674FEB95A5A9DA3713 /* UIImage+YYWebImage.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "UIImage+YYWebImage.h"; path = "YYWebImage/Categories/UIImage+YYWebImage.h"; sourceTree = ""; }; D761586108CFA562B01FCCCF2226D114 /* NSString+TUIEmoji.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "NSString+TUIEmoji.h"; sourceTree = ""; }; - D76B9189C6630474C495A0095371B50A /* MJRefreshAutoNormalFooter.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = MJRefreshAutoNormalFooter.m; path = MJRefresh/Custom/Footer/Auto/MJRefreshAutoNormalFooter.m; sourceTree = ""; }; + D76E15FD8E9D624B6128AF88E737B6B5 /* NSObject+AvoidCrash.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "NSObject+AvoidCrash.m"; path = "AvoidCrash/NSObject+AvoidCrash.m"; sourceTree = ""; }; + D792F130A469C6670AC492178FA4D112 /* SDCallbackQueue.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDCallbackQueue.h; path = SDWebImage/Core/SDCallbackQueue.h; sourceTree = ""; }; + D7957969B37E57230D18413BB653A6B5 /* LLConfig.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = LLConfig.h; path = LLDebugTool/DebugTool/LLConfig.h; sourceTree = ""; }; D7C12A77EFF0B391EEAC10733E2E38EA /* TUIGroupNoticeController.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = TUIGroupNoticeController.h; sourceTree = ""; }; - D7CE1677ED87451ED6880866BA1CF6C3 /* YBIBVideoCell.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = YBIBVideoCell.h; path = Video/YBIBVideoCell.h; sourceTree = ""; }; - D7ED8152304F98A36150F6215E3B4E01 /* UIView+WebCache.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "UIView+WebCache.h"; path = "SDWebImage/Core/UIView+WebCache.h"; sourceTree = ""; }; + D7F1FD3D056BB47E77EFFA1440556537 /* NSDate+YYAdd.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "NSDate+YYAdd.m"; path = "YYCategories/Foundation/NSDate+YYAdd.m"; sourceTree = ""; }; + D8076727251FFD8F87405D28F5A543CC /* MJRefreshStateTrailer.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = MJRefreshStateTrailer.m; path = MJRefresh/Custom/Trailer/MJRefreshStateTrailer.m; sourceTree = ""; }; D814DADC5EB35256584C7C702C130377 /* TUIConversationCellData_Minimalist.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = TUIConversationCellData_Minimalist.m; sourceTree = ""; }; - D821828056F8CA7A6C75531B742399FA /* RACSequence.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = RACSequence.h; path = ReactiveObjC/RACSequence.h; sourceTree = ""; }; D823AC827B20FC55FDF20096733C2DED /* TUIMessageCell_Minimalist.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = TUIMessageCell_Minimalist.h; sourceTree = ""; }; - D8395E20A97D710813876BFD2FF6958F /* RACDynamicSequence.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = RACDynamicSequence.m; path = ReactiveObjC/RACDynamicSequence.m; sourceTree = ""; }; - D86288874EF226EB8351E9D4D9273A92 /* YBIBContainerView.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = YBIBContainerView.m; path = YBImageBrowser/Base/YBIBContainerView.m; sourceTree = ""; }; - D87808ED640D8290201CE22AF72C7F47 /* LLScreenshotToolbar.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = LLScreenshotToolbar.m; path = LLDebugTool/Core/Component/Screenshot/UserInterface/LLScreenshotToolbar.m; sourceTree = ""; }; + D823FB07B92337051CE017901F7E34A0 /* SDWebImageDownloaderConfig.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDWebImageDownloaderConfig.h; path = SDWebImage/Core/SDWebImageDownloaderConfig.h; sourceTree = ""; }; + D844201CDF9991CA5EC19D25ED3DEAE7 /* YYClassInfo.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = YYClassInfo.m; path = YYModel/YYClassInfo.m; sourceTree = ""; }; + D848FDA27A465508C6D2DDDEB9516905 /* RACImmediateScheduler.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = RACImmediateScheduler.h; path = ReactiveObjC/RACImmediateScheduler.h; sourceTree = ""; }; + D850524224CE3FE7FD8A47FC4AEB9690 /* NSURLSessionConfiguration+LL_Network.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "NSURLSessionConfiguration+LL_Network.m"; path = "LLDebugTool/Core/Component/Network/Function/NSURLSessionConfiguration/NSURLSessionConfiguration+LL_Network.m"; sourceTree = ""; }; + D86DA65E0F51A4D4E5169E34D21247A5 /* common_sse41.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = common_sse41.h; path = src/dsp/common_sse41.h; sourceTree = ""; }; D879B4B770AFB9F4F0DE858C92DC7B8C /* Pods-QXLiveDev-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "Pods-QXLiveDev-dummy.m"; sourceTree = ""; }; - D8831485F25F7259BF2543CCE7F3C30A /* NSData+ImageContentType.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "NSData+ImageContentType.h"; path = "SDWebImage/Core/NSData+ImageContentType.h"; sourceTree = ""; }; - D88C4031A4949CAF9B8662AC6D9B3AEE /* RACSignal.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = RACSignal.m; path = ReactiveObjC/RACSignal.m; sourceTree = ""; }; + D87D3D42999151033E75027643FC134C /* QGAnimatedImageBufferManager.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = QGAnimatedImageBufferManager.m; path = iOS/QGVAPlayer/QGVAPlayer/Classes/Controllers/QGAnimatedImageBufferManager.m; sourceTree = ""; }; + D88D0F77FB238D4E662C9AE23CAEBE88 /* RACDisposable.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = RACDisposable.m; path = ReactiveObjC/RACDisposable.m; sourceTree = ""; }; + D8929906F89FB8657A7846E55F6C8457 /* JXPagingView-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "JXPagingView-dummy.m"; sourceTree = ""; }; D89C050BCB9A79B41D43D884F67D389B /* TUIVoiceReplyQuoteView.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = TUIVoiceReplyQuoteView.m; sourceTree = ""; }; - D8A7516E6E4BE2A07FF25D985D4B3326 /* SVGAPlayer.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.module; path = SVGAPlayer.modulemap; sourceTree = ""; }; - D8AF1F119656673578F8444C271F2B2B /* GPBEmpty.pbobjc.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = GPBEmpty.pbobjc.h; path = objectivec/GPBEmpty.pbobjc.h; sourceTree = ""; }; - D8B74DC9A94E739354C12C11334EFBBE /* utils.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = utils.h; path = src/utils/utils.h; sourceTree = ""; }; - D8BBB31F9A3A8FC62374228BA72BB013 /* NSObject+RACDeallocating.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "NSObject+RACDeallocating.m"; path = "ReactiveObjC/NSObject+RACDeallocating.m"; sourceTree = ""; }; - D8D5905F8689189CE798DC536D9F5C82 /* SDWebImageCompat.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDWebImageCompat.h; path = SDWebImage/Core/SDWebImageCompat.h; sourceTree = ""; }; - D8DD7EB318DFF0B19FC176048834C534 /* UIViewController+LL_Utils.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "UIViewController+LL_Utils.m"; path = "LLDebugTool/Core/Others/Category/UIViewController/UIViewController+LL_Utils.m"; sourceTree = ""; }; - D8F3B10B718C40E0674DA5A179D24AE8 /* FirstToneHintView.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = FirstToneHintView.swift; path = AgoraLyricsScore/Class/Lyrics/FirstToneHintView.swift; sourceTree = ""; }; - D94CBA9F4453A9710AC2AB2F7ABF9E5E /* OSSCancellationToken.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = OSSCancellationToken.m; path = AliyunOSSSDK/OSSTask/OSSCancellationToken.m; sourceTree = ""; }; - D999A68DC846BFF3DFCC443023FD3A3B /* LLFilterDateView.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = LLFilterDateView.h; path = LLDebugTool/Core/Others/CommonUI/View/FilterView/LLFilterDateView.h; sourceTree = ""; }; - D999FA8853AA1CE2077F0ACB87C46329 /* vp8l_dec.c */ = {isa = PBXFileReference; includeInIndex = 1; name = vp8l_dec.c; path = src/dec/vp8l_dec.c; sourceTree = ""; }; - D99A30ECE59C31D0F35FAEA010083CF8 /* NSArray+MASAdditions.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "NSArray+MASAdditions.h"; path = "Masonry/NSArray+MASAdditions.h"; sourceTree = ""; }; - D9B02393EAEB33A54EB83C8396AACB94 /* BRPickerViewMacro.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = BRPickerViewMacro.h; path = BRPickerView/Core/BRPickerViewMacro.h; sourceTree = ""; }; - D9B538591C0A67BF7A17D4E356805B70 /* YBIBImageScrollView.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = YBIBImageScrollView.h; path = YBImageBrowser/Image/YBIBImageScrollView.h; sourceTree = ""; }; - DA38BE4378060C256C25BF91B3F8D48A /* BRPickerView.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = BRPickerView.h; path = BRPickerView/BRPickerView.h; sourceTree = ""; }; + D8D981282865C8320ECD683BF5879065 /* YBIBVideoActionBar.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = YBIBVideoActionBar.h; path = Video/YBIBVideoActionBar.h; sourceTree = ""; }; + D8E080E375BEB544709F641AB0369521 /* NSData+ImageContentType.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "NSData+ImageContentType.h"; path = "SDWebImage/Core/NSData+ImageContentType.h"; sourceTree = ""; }; + D8F69EDF30D389E873EF3E1FA85905B3 /* RACEXTKeyPathCoding.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = RACEXTKeyPathCoding.h; path = ReactiveObjC/extobjc/RACEXTKeyPathCoding.h; sourceTree = ""; }; + D9099313D0213D6D25EC9DB1627C3A64 /* SDWebImagePrefetcher.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDWebImagePrefetcher.h; path = SDWebImage/Core/SDWebImagePrefetcher.h; sourceTree = ""; }; + D92C781EF12BC4CE352A097B1945E1B6 /* LLWindowManager+Crash.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "LLWindowManager+Crash.m"; path = "LLDebugTool/Core/Component/Crash/UserInterface/LLWindowManager+Crash.m"; sourceTree = ""; }; + D944D47E71E8CC4721AC562791FFA914 /* LLScreenshotBaseOperation.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = LLScreenshotBaseOperation.m; path = LLDebugTool/Core/Component/Screenshot/UserInterface/LLScreenshotBaseOperation.m; sourceTree = ""; }; + D98CE44DF4F75957C6E7E2C3C766DEF2 /* QCloudServiceConfiguration.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = QCloudServiceConfiguration.h; path = QCloudCore/Classes/Base/QCloudClientBase/Service/QCloudServiceConfiguration.h; sourceTree = ""; }; + D9C3738F91D2216AB5CF82365500EF2B /* SDImageCoderHelper.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDImageCoderHelper.h; path = SDWebImage/Core/SDImageCoderHelper.h; sourceTree = ""; }; + D9D545768D055B0050317DBB78952386 /* QCloudCOSXMLVersion.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = QCloudCOSXMLVersion.m; path = QCloudCOSXML/Classes/QCloudCOSXMLVersion.m; sourceTree = ""; }; DA458F526902ADDA81E7E1AD9656BE6D /* YTFaceAlignmentTinyLiveness.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = YTFaceAlignmentTinyLiveness.framework; path = Libs/YTFaceAlignmentTinyLiveness.framework; sourceTree = ""; }; - DA5557B778D5476BC0E4415A71D84376 /* LLLocationProxy.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = LLLocationProxy.h; path = LLDebugTool/Core/Component/Location/Function/LLLocationProxy.h; sourceTree = ""; }; - DA5720F010C721950F8B9403EEFDBF2A /* GPBType.pbobjc.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = GPBType.pbobjc.m; path = objectivec/GPBType.pbobjc.m; sourceTree = ""; }; + DA597C2D4AAC3DEED8E7A19C70EA3CEA /* UISlider+RACSignalSupport.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "UISlider+RACSignalSupport.h"; path = "ReactiveObjC/UISlider+RACSignalSupport.h"; sourceTree = ""; }; + DA665001896216EC56E38F8B6CF9C11A /* SDWebImageError.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDWebImageError.m; path = SDWebImage/Core/SDWebImageError.m; sourceTree = ""; }; DA7158A0AE4F7F12534DD3AF2C303645 /* TUIFitButton.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = TUIFitButton.h; sourceTree = ""; }; - DA73079D48B0F03AB6E8813303F0D692 /* Protobuf.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = Protobuf.debug.xcconfig; sourceTree = ""; }; - DAB99A93E199A7EFD29A521CC7CC8558 /* NSObject+RACLifting.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "NSObject+RACLifting.h"; path = "ReactiveObjC/NSObject+RACLifting.h"; sourceTree = ""; }; - DACE3EC3C26BB00A344269B7F014BC87 /* huffman_utils.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = huffman_utils.h; path = src/utils/huffman_utils.h; sourceTree = ""; }; + DAA7897567BF3CAB80459FD302C7EB55 /* IQKeyboardManager.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = IQKeyboardManager.h; path = IQKeyboardManager/IQKeyboardManager.h; sourceTree = ""; }; DB0B74500075FC8A895C1F1C5238EBBE /* TUILinkCell_Minimalist.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = TUILinkCell_Minimalist.m; sourceTree = ""; }; - DB2489678F172BAD201F79F168B58003 /* TAAnimatedDotView.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = TAAnimatedDotView.m; path = SDCycleScrollView/Lib/SDCycleScrollView/PageControl/TAAnimatedDotView.m; sourceTree = ""; }; - DB3B7F8A30B262F80B31FA820ED5A470 /* JXCategoryTitleImageCellModel.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = JXCategoryTitleImageCellModel.m; path = Sources/TitleImage/JXCategoryTitleImageCellModel.m; sourceTree = ""; }; - DB92A990EE9627C698FCE4FC3A621586 /* SVGAImageView.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SVGAImageView.h; path = Source/SVGAImageView.h; sourceTree = ""; }; - DBAECD1D58D515C5B33AFAB085E02781 /* YYImageCache.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = YYImageCache.m; path = YYWebImage/YYImageCache.m; sourceTree = ""; }; + DB30E41C786F3ED229A934C038771D8A /* View+MASAdditions.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "View+MASAdditions.h"; path = "Masonry/View+MASAdditions.h"; sourceTree = ""; }; + DB338452BE2D74A24F1F0D69031B2872 /* SVGAPlayer-Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "SVGAPlayer-Info.plist"; sourceTree = ""; }; + DB458066FBE295450D53CC3DDCF4AA01 /* BRPickerView-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "BRPickerView-prefix.pch"; sourceTree = ""; }; + DB49D7AF524858A12FE2F7D542ABD60E /* mz_strm_pkcrypt.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = mz_strm_pkcrypt.h; path = SSZipArchive/minizip/mz_strm_pkcrypt.h; sourceTree = ""; }; + DB56C90354230FC7108B503D36EA6EAC /* picture_csp_enc.c */ = {isa = PBXFileReference; includeInIndex = 1; name = picture_csp_enc.c; path = src/enc/picture_csp_enc.c; sourceTree = ""; }; + DB9B43640341B4AEBD209008CF55A813 /* LLScreenshotPreviewViewController.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = LLScreenshotPreviewViewController.h; path = LLDebugTool/Core/Component/Screenshot/UserInterface/LLScreenshotPreviewViewController.h; sourceTree = ""; }; + DB9F7E2D705481AF576EBF89395748D3 /* YYCategories-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "YYCategories-umbrella.h"; sourceTree = ""; }; + DBA5E791DD9EDD7838CC7AFE495DD477 /* bit_reader_inl_utils.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = bit_reader_inl_utils.h; path = src/utils/bit_reader_inl_utils.h; sourceTree = ""; }; DBB834720D5BBA3E4AF15DB97066B6EB /* TUIBubbleMessageCell_Minimalist.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = TUIBubbleMessageCell_Minimalist.h; sourceTree = ""; }; - DBCCE3367CFCFE8EAF47FCA662D63387 /* TZVideoCropController.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = TZVideoCropController.m; path = TZImagePickerController/TZImagePickerController/TZVideoCropController.m; sourceTree = ""; }; - DBEACBCBDF9395A22CD3ABF281B25FE7 /* LLHierarchyViewController.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = LLHierarchyViewController.m; path = LLDebugTool/Core/Component/Hierarchy/UserInterface/LLHierarchyViewController.m; sourceTree = ""; }; + DBBE92C497FB7032E00ECB99BEAAABD8 /* GPBTimestamp.pbobjc.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = GPBTimestamp.pbobjc.m; path = objectivec/GPBTimestamp.pbobjc.m; sourceTree = ""; }; + DBDD225BF9FABCDCA7ACE73C61C154CC /* IQPreviousNextView.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = IQPreviousNextView.h; path = IQKeyboardManager/IQToolbar/IQPreviousNextView.h; sourceTree = ""; }; + DBDDFAA999A99ED3F54264CAD99C5828 /* mz.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = mz.h; path = SSZipArchive/minizip/mz.h; sourceTree = ""; }; + DBF1CE0031A290FECB43DFFD0E208746 /* LLJsonTool.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = LLJsonTool.m; path = LLDebugTool/Core/Others/JsonTool/LLJsonTool.m; sourceTree = ""; }; DC0B4DA09A4C7ACAD1E2999D1666D104 /* TUIFileViewController_Minimalist.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = TUIFileViewController_Minimalist.h; sourceTree = ""; }; - DC0E38C4B8DAC14B0CCFCA2FDD46687D /* YBIBIconManager.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = YBIBIconManager.m; path = YBImageBrowser/Helper/YBIBIconManager.m; sourceTree = ""; }; - DC1160574EFD195629D53A5C05F029FB /* NSArray+RACSequenceAdditions.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "NSArray+RACSequenceAdditions.h"; path = "ReactiveObjC/NSArray+RACSequenceAdditions.h"; sourceTree = ""; }; - DC1A77982A27CDBDD3B94E53E179D922 /* LLRouter+ShortCut.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "LLRouter+ShortCut.m"; path = "LLDebugTool/Core/Others/Router/LLRouter+ShortCut.m"; sourceTree = ""; }; - DC49539AAD2F9F64523325C9C029A155 /* mz_strm.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = mz_strm.h; path = SSZipArchive/minizip/mz_strm.h; sourceTree = ""; }; - DC60866DA2C75125175CDB5DD741E082 /* BRTextPickerView.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = BRTextPickerView.m; path = BRPickerView/TextPicker/BRTextPickerView.m; sourceTree = ""; }; + DC2201A3DE36EA664A4A23138A42175E /* QCloudURLHelper.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = QCloudURLHelper.h; path = QCloudCore/Classes/Base/QCLOUDRestNet/CoreRequest/Serializer/QCloudURLHelper.h; sourceTree = ""; }; + DC59393E8A79060D096924489FACD258 /* AFURLSessionManager.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = AFURLSessionManager.h; path = AFNetworking/AFURLSessionManager.h; sourceTree = ""; }; DC6311DA502399B1184BD3E053963641 /* Pods-QXLive-resources.sh */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.script.sh; path = "Pods-QXLive-resources.sh"; sourceTree = ""; }; - DC6A7978A4E1E40BFC56F20B0AF9EAD4 /* MJRefresh-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "MJRefresh-dummy.m"; sourceTree = ""; }; DC6ACEAC8B9D92AAC2A3AE6566E1D7DC /* TUIConversationListController.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = TUIConversationListController.h; sourceTree = ""; }; + DC7D94A4CE8CA4AD5BABAAAB6004BF6A /* NSString+RegularExpressionCategory.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "NSString+RegularExpressionCategory.m"; path = "QCloudCOSXML/Classes/Base/NSString+RegularExpressionCategory.m"; sourceTree = ""; }; DC855D70F52FBC5A8FB5F2CC9D9A8BA7 /* NSDictionary+TUISafe.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "NSDictionary+TUISafe.m"; sourceTree = ""; }; + DC88F1CA2915BE4BCD3F2EE692E2BB84 /* MQTTSession.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = MQTTSession.m; path = MQTTClient/MQTTClient/MQTTSession.m; sourceTree = ""; }; + DC8A31E600A792A21E14A87D62727918 /* NSObject+RACDescription.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "NSObject+RACDescription.h"; path = "ReactiveObjC/NSObject+RACDescription.h"; sourceTree = ""; }; + DC8A682A33E9730C4383C828C9AF348C /* LLBaseComponentViewController.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = LLBaseComponentViewController.h; path = LLDebugTool/Core/Others/CommonUI/ViewController/ComponentViewController/LLBaseComponentViewController.h; sourceTree = ""; }; DC8C16342A53C061414E552D24448B80 /* CoreText.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreText.framework; path = Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS18.0.sdk/System/Library/Frameworks/CoreText.framework; sourceTree = DEVELOPER_DIR; }; - DC8CFA8071A72285080526D82800C3E0 /* SDWebImage-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "SDWebImage-prefix.pch"; sourceTree = ""; }; - DC8DEBA0B938C2334D6AE10B56D65448 /* IQToolbar.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = IQToolbar.h; path = IQKeyboardManager/IQToolbar/IQToolbar.h; sourceTree = ""; }; - DCA7AF97E6E82F6C971AD0C7105CF4D9 /* MQTTSessionSynchron.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = MQTTSessionSynchron.m; path = MQTTClient/MQTTClient/MQTTSessionSynchron.m; sourceTree = ""; }; DCB549AB857DE04EF1BDD48B0B2D30AA /* TUIMessageCellConfig.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = TUIMessageCellConfig.m; sourceTree = ""; }; - DCEBD23A4F94DA88A003BC9C60D200BE /* sharpyuv_cpu.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = sharpyuv_cpu.h; path = sharpyuv/sharpyuv_cpu.h; sourceTree = ""; }; - DCFE3F6AFAEEBC6E836DDC148905E788 /* LLScreenshotPreviewViewController.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = LLScreenshotPreviewViewController.h; path = LLDebugTool/Core/Component/Screenshot/UserInterface/LLScreenshotPreviewViewController.h; sourceTree = ""; }; - DD2CFF3328286C38338F8C9AA42A87B5 /* BRPickerView-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "BRPickerView-umbrella.h"; sourceTree = ""; }; - DD53E5EF73A7ABDF3E47AFA8A0FE16B8 /* anim_decode.c */ = {isa = PBXFileReference; includeInIndex = 1; name = anim_decode.c; path = src/demux/anim_decode.c; sourceTree = ""; }; - DD67E642C4D1A4567F01E99E077A562A /* JXCategoryTitleImageView.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = JXCategoryTitleImageView.m; path = Sources/TitleImage/JXCategoryTitleImageView.m; sourceTree = ""; }; - DD726CADA9E7CF526575271D5B097352 /* IQUITextFieldView+Additions.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "IQUITextFieldView+Additions.m"; path = "IQKeyboardManager/Categories/IQUITextFieldView+Additions.m"; sourceTree = ""; }; - DDACD423E70107BD1391BADADB12C79D /* QGBaseAnimatedImageFrame+Displaying.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "QGBaseAnimatedImageFrame+Displaying.m"; path = "iOS/QGVAPlayer/QGVAPlayer/Classes/Models/QGBaseAnimatedImageFrame+Displaying.m"; sourceTree = ""; }; - DDB54696124D6CAE6F5A60FB45542B84 /* OSSDeleteMultipleObjectsResult.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = OSSDeleteMultipleObjectsResult.m; path = AliyunOSSSDK/OSSDeleteMultipleObjectsResult.m; sourceTree = ""; }; - DDB90E2C4DAA237C032EAC3501E58AF4 /* AFNetworkReachabilityManager.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = AFNetworkReachabilityManager.h; path = AFNetworking/AFNetworkReachabilityManager.h; sourceTree = ""; }; - DDC88FEBB8727A3A776F89B0D986163D /* LLDetailTitleCell.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = LLDetailTitleCell.h; path = LLDebugTool/Core/Others/CommonUI/View/TitleCell/LLDetailTitleCell.h; sourceTree = ""; }; - DDEA1A9F93242C3A31DD49B8388F96BC /* Extentions.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Extentions.swift; path = AgoraLyricsScore/Class/Downloader/Extentions.swift; sourceTree = ""; }; + DCC0C6B6E0A89084D9A0A49FF21876E6 /* LLNetworkViewController.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = LLNetworkViewController.h; path = LLDebugTool/Core/Component/Network/UserInterface/LLNetworkViewController.h; sourceTree = ""; }; + DCCD650D6DF16F350F448384A3F516A8 /* UIView+WebCacheState.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "UIView+WebCacheState.m"; path = "SDWebImage/Core/UIView+WebCacheState.m"; sourceTree = ""; }; + DCD9F9EB746F01DEB20BA6A8D41F36C1 /* LLAppInfoViewController.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = LLAppInfoViewController.h; path = LLDebugTool/Core/Component/AppInfo/UserInterface/LLAppInfoViewController.h; sourceTree = ""; }; + DD1E393A663396E0042545C9810C4128 /* JXCategoryDotCell.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = JXCategoryDotCell.h; path = Sources/Dot/JXCategoryDotCell.h; sourceTree = ""; }; + DD245A2E8AE763FF9DB33272BBFD5334 /* ProgressChecker.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ProgressChecker.swift; path = AgoraLyricsScore/Class/Other/ProgressChecker.swift; sourceTree = ""; }; + DD3062298DC964BE33DDE207A95FB004 /* FMDatabaseQueue.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FMDatabaseQueue.m; path = src/fmdb/FMDatabaseQueue.m; sourceTree = ""; }; + DD4124BE66EA16516FFF8188EFC76F0A /* NSString+YYAdd.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "NSString+YYAdd.h"; path = "YYCategories/Foundation/NSString+YYAdd.h"; sourceTree = ""; }; + DD4CD0B1E4329CD87FB920343A3D00F6 /* SDImageHEICCoder.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDImageHEICCoder.h; path = SDWebImage/Core/SDImageHEICCoder.h; sourceTree = ""; }; + DD60131313F27909A330EEEF4EC6BEE3 /* NSDictionary+AvoidCrash.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "NSDictionary+AvoidCrash.m"; path = "AvoidCrash/NSDictionary+AvoidCrash.m"; sourceTree = ""; }; + DD7A09C95FA4450752A0DF79E0D085EE /* RACEagerSequence.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = RACEagerSequence.h; path = ReactiveObjC/RACEagerSequence.h; sourceTree = ""; }; + DD86480B7B0E664045E3CE0C8FAD95B0 /* muxedit.c */ = {isa = PBXFileReference; includeInIndex = 1; name = muxedit.c; path = src/mux/muxedit.c; sourceTree = ""; }; + DD899567E197BDD657A67C60DB038D7B /* rescaler_utils.c */ = {isa = PBXFileReference; includeInIndex = 1; name = rescaler_utils.c; path = src/utils/rescaler_utils.c; sourceTree = ""; }; + DD9221EDB1D66F00A81FC5764351315E /* GPBDescriptor.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = GPBDescriptor.m; path = objectivec/GPBDescriptor.m; sourceTree = ""; }; + DDB1E4597FA4DF1E8EA730DE3BAAE2C9 /* QCloudHTTPTaskDelayManager.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = QCloudHTTPTaskDelayManager.m; path = QCloudCore/Classes/Base/QCLOUDRestNet/Retry/QCloudHTTPTaskDelayManager.m; sourceTree = ""; }; + DDE6B5003C19BEF91575545DF64F29EF /* OSSClient.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = OSSClient.h; path = AliyunOSSSDK/OSSClient.h; sourceTree = ""; }; + DDEF07DE0B86BF944608BA8E72EB3855 /* LLNetworkDefine.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = LLNetworkDefine.h; path = LLDebugTool/Core/Others/Define/LLNetworkDefine.h; sourceTree = ""; }; DE1A0692E5E399612B98DC07272C2E69 /* TUIConversationListController_Minimalist.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = TUIConversationListController_Minimalist.h; sourceTree = ""; }; - DE590FD7CC8FF3EADF495F5794FB93DD /* SDWebImageDownloaderResponseModifier.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDWebImageDownloaderResponseModifier.h; path = SDWebImage/Core/SDWebImageDownloaderResponseModifier.h; sourceTree = ""; }; - DE63E002EBA8D9354A3BB30981267080 /* LLFunctionItemView.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = LLFunctionItemView.m; path = LLDebugTool/Core/Others/Component/Function/UserInterface/LLFunctionItemView.m; sourceTree = ""; }; - DE70643D8C7B20011C33FF0CF0C417BE /* ioapi.c */ = {isa = PBXFileReference; includeInIndex = 1; name = ioapi.c; path = Zip/minizip/ioapi.c; sourceTree = ""; }; - DE7B4AAD419FD1D481F4D736EAED89DD /* LLHierarchyDetailViewController.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = LLHierarchyDetailViewController.m; path = LLDebugTool/Core/Component/Hierarchy/UserInterface/LLHierarchyDetailViewController.m; sourceTree = ""; }; - DE8DC774EDAC9D94143D31BC9789B9A9 /* LLEntryBigTitleView.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = LLEntryBigTitleView.h; path = LLDebugTool/Core/Others/CommonUI/Window/EntryWindow/LLEntryBigTitleView.h; sourceTree = ""; }; - DE9620EE71CFEFEEE03EC409FDDDA0A2 /* ResourceBundle-JXCategoryView-JXCategoryView-Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "ResourceBundle-JXCategoryView-JXCategoryView-Info.plist"; sourceTree = ""; }; + DE1BE68F23F888A0E7FB47DEA0566D09 /* LLEditTableViewController.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = LLEditTableViewController.h; path = LLDebugTool/Core/Others/CommonUI/ViewController/EditTableViewController/LLEditTableViewController.h; sourceTree = ""; }; + DE2C013F88A45440FC7DB25E09015410 /* JXCategoryDotView.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = JXCategoryDotView.m; path = Sources/Dot/JXCategoryDotView.m; sourceTree = ""; }; + DE2CFA9D9A2F4A02CAF3C1151D76BA55 /* LLNoneCopyTextField.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = LLNoneCopyTextField.h; path = LLDebugTool/Core/Others/CommonUI/View/NoneCopyTextField/LLNoneCopyTextField.h; sourceTree = ""; }; + DE30E0E4C3B6299ED2521A89660768A3 /* LLHtmlUIWebViewController.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = LLHtmlUIWebViewController.m; path = LLDebugTool/Core/Component/Html/UserInterface/LLHtmlUIWebViewController.m; sourceTree = ""; }; + DE87CFB112405397BCD68F780C06DF6E /* MQTTSession.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = MQTTSession.h; path = MQTTClient/MQTTClient/MQTTSession.h; sourceTree = ""; }; + DE90685317F566A867EC2A4D58B7A5F5 /* huffman_encode_utils.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = huffman_encode_utils.h; path = src/utils/huffman_encode_utils.h; sourceTree = ""; }; DED0B9E63597782CA2D7E84B42B88575 /* TUICommonGroupInfoCellData.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = TUICommonGroupInfoCellData.h; sourceTree = ""; }; - DEDB4EECD3C10FF0873723E9D93C2C36 /* JXCategoryFactory.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = JXCategoryFactory.m; path = Sources/Common/JXCategoryFactory.m; sourceTree = ""; }; - DEE52AA4F9F7FC2228073F0EE4099772 /* MQTTCFSocketTransport.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = MQTTCFSocketTransport.h; path = MQTTClient/MQTTClient/MQTTCFSocketTransport.h; sourceTree = ""; }; + DED597E4F4BBCF830F2F918FE4BBD659 /* NSObject+AvoidCrash.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "NSObject+AvoidCrash.h"; path = "AvoidCrash/NSObject+AvoidCrash.h"; sourceTree = ""; }; + DEDE4932D792B0DF7288337D438BD858 /* UIImage+LL_Utils.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "UIImage+LL_Utils.h"; path = "LLDebugTool/Core/Others/Category/UIImage/UIImage+LL_Utils.h"; sourceTree = ""; }; + DEE88D31598BBC877C31F1ED9C43BBD7 /* LLAppInfoComponent.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = LLAppInfoComponent.m; path = LLDebugTool/Core/Component/AppInfo/LLAppInfoComponent.m; sourceTree = ""; }; + DEF0F542000F2144D714D4C1624C282D /* QCloudCOSStorageClassEnum.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = QCloudCOSStorageClassEnum.m; path = QCloudCOSXML/Classes/Transfer/enum/QCloudCOSStorageClassEnum.m; sourceTree = ""; }; + DEF50E39F73539D79DE0EE24D597BCC2 /* NSBundle+YYAdd.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "NSBundle+YYAdd.m"; path = "YYCategories/Foundation/NSBundle+YYAdd.m"; sourceTree = ""; }; DEF517A11EBB40C32836AE94CF528F7B /* TUIMessageCellData.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = TUIMessageCellData.h; sourceTree = ""; }; DEFD7EB8420DE2362781DDF46E24FD1B /* TUIFileMessageCell_Minimalist.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = TUIFileMessageCell_Minimalist.h; sourceTree = ""; }; - DF26039398C538B0C3F976E17D2B9065 /* RACKVOProxy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = RACKVOProxy.m; path = ReactiveObjC/RACKVOProxy.m; sourceTree = ""; }; - DF5382E219D7D8EFA5A89DB367D04410 /* MASConstraintMaker.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = MASConstraintMaker.h; path = Masonry/MASConstraintMaker.h; sourceTree = ""; }; + DF0BBA9B42464B4176B06338BCAADE41 /* SDWebImageDownloaderDecryptor.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDWebImageDownloaderDecryptor.h; path = SDWebImage/Core/SDWebImageDownloaderDecryptor.h; sourceTree = ""; }; + DF350F198EB9F6AD1C0396C161228699 /* AFURLRequestSerialization.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = AFURLRequestSerialization.h; path = AFNetworking/AFURLRequestSerialization.h; sourceTree = ""; }; + DF4C538B7B59BA11F52CC24B3932313F /* SVGAParser.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SVGAParser.m; path = Source/SVGAParser.m; sourceTree = ""; }; DF55EB1086CF9818E4F167559D118164 /* TUIChatMediaDataProvider.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = TUIChatMediaDataProvider.h; sourceTree = ""; }; DF5AA3E0ECB4B0811D896E8411906383 /* TUIVideoReplyQuoteViewData.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = TUIVideoReplyQuoteViewData.m; sourceTree = ""; }; - DF828F3091B735157EB463BF9A28FE61 /* LLCrashWindow.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = LLCrashWindow.m; path = LLDebugTool/Core/Component/Crash/UserInterface/LLCrashWindow.m; sourceTree = ""; }; - DF8F1B5D47F63BF3020FEC73C56ED31A /* _YYWebImageSetter.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = _YYWebImageSetter.h; path = YYWebImage/Categories/_YYWebImageSetter.h; sourceTree = ""; }; + DF5AA58DD20C66D905E01B59655614DB /* Masonry-Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "Masonry-Info.plist"; sourceTree = ""; }; DF9021474921AF35345BD06EBD2AB531 /* TUITool.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = TUITool.m; sourceTree = ""; }; - DF95B3F1876A4C1DD21ED29A1015CD24 /* TAPageControl.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = TAPageControl.m; path = SDCycleScrollView/Lib/SDCycleScrollView/PageControl/TAPageControl.m; sourceTree = ""; }; - DF9F1DB119FBB5354B3F8341679D810A /* enc_mips_dsp_r2.c */ = {isa = PBXFileReference; includeInIndex = 1; name = enc_mips_dsp_r2.c; path = src/dsp/enc_mips_dsp_r2.c; sourceTree = ""; }; - DFB59CF852C889E6D49871A7FB1EF503 /* LLJsonTool.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = LLJsonTool.m; path = LLDebugTool/Core/Others/JsonTool/LLJsonTool.m; sourceTree = ""; }; - DFC9ED7E927EA6F3DFB9B86E97538293 /* LLRouter+Network.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "LLRouter+Network.m"; path = "LLDebugTool/Core/Others/Router/LLRouter+Network.m"; sourceTree = ""; }; - DFD30CFA347E29CC35C719E4CF4AAECD /* SDImageLoadersManager.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDImageLoadersManager.h; path = SDWebImage/Core/SDImageLoadersManager.h; sourceTree = ""; }; - DFD95C0DA4E39DDD8F4559673364C37F /* YBIBWebImageMediator.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = YBIBWebImageMediator.h; path = YBImageBrowser/WebImageMediator/YBIBWebImageMediator.h; sourceTree = ""; }; - E02357F6C56C7E274CAEBE2B4A112E34 /* TZVideoCropController.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = TZVideoCropController.h; path = TZImagePickerController/TZImagePickerController/TZVideoCropController.h; sourceTree = ""; }; + DF916CC5A16F2C4A062458992ED868E5 /* AvoidCrashStubProxy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = AvoidCrashStubProxy.m; path = AvoidCrash/AvoidCrashStubProxy.m; sourceTree = ""; }; + DF93D12A280FEEB9F29949C627132528 /* LLCrash.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = LLCrash.h; path = LLDebugTool/Core/Component/Crash/LLCrash.h; sourceTree = ""; }; + DFD7DFDBB62717B2AAC2E75ED67A2787 /* MASConstraint+Private.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "MASConstraint+Private.h"; path = "Masonry/MASConstraint+Private.h"; sourceTree = ""; }; + DFE7ADED148E13C4B35972C63998B62D /* SVGAParser.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SVGAParser.h; path = Source/SVGAParser.h; sourceTree = ""; }; + DFEBC812C61A8513EF9F4C6C7C250054 /* IQKeyboardReturnKeyHandler.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = IQKeyboardReturnKeyHandler.m; path = IQKeyboardManager/IQKeyboardReturnKeyHandler.m; sourceTree = ""; }; + DFFB6D1532803A3F738F4A9FD59EBF77 /* SDInternalMacros.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDInternalMacros.m; path = SDWebImage/Private/SDInternalMacros.m; sourceTree = ""; }; + E0157C3B1258A7010A0AD99F52D0B599 /* LLShortCutComponent.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = LLShortCutComponent.m; path = LLDebugTool/Core/Component/ShortCut/LLShortCutComponent.m; sourceTree = ""; }; + E022BE52E2CBA50EAA33B904EFECAE50 /* NSDate+BRPickerView.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "NSDate+BRPickerView.h"; path = "BRPickerView/DatePicker/NSDate+BRPickerView.h"; sourceTree = ""; }; E02CFB5301EC9DA1992F848D281AF6DA /* TUIMessageCellConfig_Minimalist.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = TUIMessageCellConfig_Minimalist.h; sourceTree = ""; }; + E03A7815CB4559D04681A648642263BA /* QCloudMultipartUploadPart.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = QCloudMultipartUploadPart.m; path = QCloudCOSXML/Classes/Transfer/model/QCloudMultipartUploadPart.m; sourceTree = ""; }; + E03C7149C55FD86B18A2199051445ED5 /* LLFunctionViewController.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = LLFunctionViewController.h; path = LLDebugTool/Core/Others/Component/Function/UserInterface/LLFunctionViewController.h; sourceTree = ""; }; E03F152E95B6924D2486511337D24503 /* JXPagingView-JXPagerView */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; name = "JXPagingView-JXPagerView"; path = JXPagerView.bundle; sourceTree = BUILT_PRODUCTS_DIR; }; - E07715DD868637E7632ADA8EEF3D5795 /* YBImageBrowserDelegate.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = YBImageBrowserDelegate.h; path = YBImageBrowser/Protocol/YBImageBrowserDelegate.h; sourceTree = ""; }; - E09918C381C316915AFA988D84FD5D35 /* UIView+WebCacheState.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "UIView+WebCacheState.h"; path = "SDWebImage/Core/UIView+WebCacheState.h"; sourceTree = ""; }; - E0993235E9E6A40B87182CFAF337EA75 /* Bugly.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; path = Bugly.framework; sourceTree = ""; }; - E0B49643CBB49E9D505B5F8F1FD53A92 /* YYTextWeakProxy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = YYTextWeakProxy.m; path = YYText/Utility/YYTextWeakProxy.m; sourceTree = ""; }; + E041B3CA8F2D4CB20875751377B3DEB0 /* LLBaseComponentViewController.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = LLBaseComponentViewController.m; path = LLDebugTool/Core/Others/CommonUI/ViewController/ComponentViewController/LLBaseComponentViewController.m; sourceTree = ""; }; + E0457961BED118ADEE3972EE368A7C27 /* TZAuthLimitedFooterTipView.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = TZAuthLimitedFooterTipView.m; path = TZImagePickerController/TZImagePickerController/TZAuthLimitedFooterTipView.m; sourceTree = ""; }; + E047C31AC9937B895EB741CA05F233C9 /* JXCategoryIndicatorCellModel.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = JXCategoryIndicatorCellModel.h; path = Sources/Indicator/JXCategoryIndicatorCellModel.h; sourceTree = ""; }; + E07E8704096DC5D17E56BC0473B8D7C5 /* TIMPush-xcframeworks.sh */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.script.sh; path = "TIMPush-xcframeworks.sh"; sourceTree = ""; }; + E0810B11491CDAE691F3ED6C4766F317 /* FMDatabasePool.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FMDatabasePool.h; path = src/fmdb/FMDatabasePool.h; sourceTree = ""; }; + E0946C8F07FB91900E9A1ED32E7D8BE8 /* IQUITextFieldView+Additions.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "IQUITextFieldView+Additions.m"; path = "IQKeyboardManager/Categories/IQUITextFieldView+Additions.m"; sourceTree = ""; }; + E0AC5CF7DFFEE64766896EC56ABE170A /* LLPreviewController.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = LLPreviewController.m; path = LLDebugTool/Core/Component/Sandbox/UserInterface/LLPreviewController.m; sourceTree = ""; }; + E0B061F36D87206193C7479A40CE154C /* QGVAPWeakProxy.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = QGVAPWeakProxy.h; path = iOS/QGVAPlayer/QGVAPlayer/Classes/Utils/QGVAPWeakProxy.h; sourceTree = ""; }; + E0B6C8455312D1E21D836A863FAEB6B1 /* NSDictionary+RACSequenceAdditions.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "NSDictionary+RACSequenceAdditions.h"; path = "ReactiveObjC/NSDictionary+RACSequenceAdditions.h"; sourceTree = ""; }; + E0BD1F678701DC08BABBD2969B0D5B1A /* mz_zip.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = mz_zip.h; path = SSZipArchive/minizip/mz_zip.h; sourceTree = ""; }; + E0C3FDC79600F8A0E44431E63963F213 /* RACEagerSequence.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = RACEagerSequence.m; path = ReactiveObjC/RACEagerSequence.m; sourceTree = ""; }; + E0D53186B5B8533612EBBA00926B2FE7 /* QCloudCLSLoggerOutput.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = QCloudCLSLoggerOutput.h; path = QCloudCore/Classes/Base/Logger/QCloudCLSLoggerOutput.h; sourceTree = ""; }; E0E23643E0E4AA188287E0327F1E7B99 /* TUILinkCellData.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = TUILinkCellData.m; sourceTree = ""; }; + E0E73A539E857E7C1A16FC745598812F /* UICollectionViewLayout+MJRefresh.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "UICollectionViewLayout+MJRefresh.h"; path = "MJRefresh/UICollectionViewLayout+MJRefresh.h"; sourceTree = ""; }; + E0EEE8F740E7D2005A96B4E8DD699E4D /* SVGABitmapLayer.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SVGABitmapLayer.m; path = Source/SVGABitmapLayer.m; sourceTree = ""; }; E1101C61C1A4BDAA8BB778E75DF00D2B /* TUIFloatViewController.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = TUIFloatViewController.h; sourceTree = ""; }; - E141AB38DD124405E4BED436DAA10A7C /* RACBlockTrampoline.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = RACBlockTrampoline.h; path = ReactiveObjC/RACBlockTrampoline.h; sourceTree = ""; }; + E125F395AD60ED7B7B07652D73D4218E /* SDWebImageWebPCoder-Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "SDWebImageWebPCoder-Info.plist"; sourceTree = ""; }; + E13AF1DF1EA09639F6F1D482DA30D222 /* LLHierarchy.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = LLHierarchy.h; path = LLDebugTool/Core/Component/Hierarchy/LLHierarchy.h; sourceTree = ""; }; + E14AE7F500D618D391E1F40BD168D99F /* libwebp-Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "libwebp-Info.plist"; sourceTree = ""; }; E14B2C46EC3FEFE18206707CFB3F6A5A /* TUIMenuCell_Minimalist.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = TUIMenuCell_Minimalist.h; sourceTree = ""; }; - E177B4461D6CD14125C2F8E102EE5D10 /* TAPageControl.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = TAPageControl.h; path = SDCycleScrollView/Lib/SDCycleScrollView/PageControl/TAPageControl.h; sourceTree = ""; }; - E188B8AEC86B133F5CDCF5D6FDC6E481 /* LyricLabel.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = LyricLabel.swift; path = AgoraLyricsScore/Class/Lyrics/LyricLabel.swift; sourceTree = ""; }; - E1CD64760C2981521188C1014B317840 /* SDAsyncBlockOperation.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDAsyncBlockOperation.h; path = SDWebImage/Private/SDAsyncBlockOperation.h; sourceTree = ""; }; - E2169C728ECA5EC036D1CD033A2011A5 /* LLWindowManager+Location.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "LLWindowManager+Location.h"; path = "LLDebugTool/Core/Component/Location/UserInterface/LLWindowManager+Location.h"; sourceTree = ""; }; + E14DEF22AF4250D11F2F22A453A3A435 /* LLHtmlConfigViewController.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = LLHtmlConfigViewController.h; path = LLDebugTool/Core/Component/Html/UserInterface/LLHtmlConfigViewController.h; sourceTree = ""; }; + E161221EBA05B88D62E746414C560D43 /* TZImagePickerController.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.module; path = TZImagePickerController.modulemap; sourceTree = ""; }; + E16A9E6B2A5EABBCE1CDCF06E8F746DE /* BRPickerView.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = BRPickerView.release.xcconfig; sourceTree = ""; }; + E1828373766AE5D4C3F5D785FE41B81C /* sharpyuv_dsp.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = sharpyuv_dsp.h; path = sharpyuv/sharpyuv_dsp.h; sourceTree = ""; }; + E18B499863F3BE8494CA3C4CA00806B4 /* QCloudService.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = QCloudService.h; path = QCloudCore/Classes/Base/QCloudClientBase/Service/QCloudService.h; sourceTree = ""; }; + E18E03C1C00A188C9CF3F2695977222B /* QCloudGetObjectRequest.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = QCloudGetObjectRequest.h; path = QCloudCOSXML/Classes/Transfer/request/QCloudGetObjectRequest.h; sourceTree = ""; }; + E1A2959CE55336EA28C3DDBBE3D50588 /* ScoringMachineProtocol+Events.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "ScoringMachineProtocol+Events.swift"; path = "AgoraLyricsScore/Class/Scoring/ScoringMachineProtocol+Events.swift"; sourceTree = ""; }; + E1AF77422F2BE60E53969576D67E3943 /* UIStepper+RACSignalSupport.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "UIStepper+RACSignalSupport.h"; path = "ReactiveObjC/UIStepper+RACSignalSupport.h"; sourceTree = ""; }; + E1B0FF7FEFB496262922F978B707A91E /* QCloudReachability.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = QCloudReachability.h; path = QCloudCore/Classes/Base/QCLOUDRestNet/reachability/QCloudReachability.h; sourceTree = ""; }; + E1D336009902F5BB7D273BA4AFAE1743 /* NSArray+LL_Utils.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "NSArray+LL_Utils.m"; path = "LLDebugTool/Core/Others/Category/NSArray/NSArray+LL_Utils.m"; sourceTree = ""; }; + E1E2ABA1CF16E38306949C39DBFFE81D /* LLWidgetBorder.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = LLWidgetBorder.h; path = LLDebugTool/Core/Component/WidgetBorder/LLWidgetBorder.h; sourceTree = ""; }; + E1E6299D85E07E7F127123F64CF648C5 /* YYTextParser.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = YYTextParser.m; path = YYText/String/YYTextParser.m; sourceTree = ""; }; + E228F0EF6F69D4BD4D3BC3D9F0C9022C /* YBIBImageScrollView.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = YBIBImageScrollView.m; path = YBImageBrowser/Image/YBIBImageScrollView.m; sourceTree = ""; }; E2319A9846E5441AE828CF8F38CB31FB /* TUIGroupPendencyController.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = TUIGroupPendencyController.m; sourceTree = ""; }; E2531977085A038BF8D006D31F4E4A61 /* TIMCommonMediator.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = TIMCommonMediator.h; sourceTree = ""; }; - E253484CE7282A091C574EEC4B9AE6F6 /* BRDatePickerView.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = BRDatePickerView.h; path = BRPickerView/DatePicker/BRDatePickerView.h; sourceTree = ""; }; - E26315B3E2CEDECB18219BD485F891BF /* LLRouter+Screenshot.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "LLRouter+Screenshot.h"; path = "LLDebugTool/Core/Others/Router/LLRouter+Screenshot.h"; sourceTree = ""; }; - E26E811CF89B2B83F9EBF5C7AF9CC336 /* UIActionSheet+RACSignalSupport.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "UIActionSheet+RACSignalSupport.h"; path = "ReactiveObjC/UIActionSheet+RACSignalSupport.h"; sourceTree = ""; }; + E2625642277CF56AE9F82AFCBB63EEFC /* MJRefreshBackStateFooter.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = MJRefreshBackStateFooter.m; path = MJRefresh/Custom/Footer/Back/MJRefreshBackStateFooter.m; sourceTree = ""; }; + E276FA7218F50593335C26AA37A9A7AF /* NSDate+QCloudInternetDateTime.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "NSDate+QCloudInternetDateTime.m"; path = "QCloudCore/Classes/Base/QCloudCategory/NSDate+QCloudInternetDateTime.m"; sourceTree = ""; }; E278A72C5A9C2D21BB5D9F3048E9A42E /* TUIMenuView_Minimalist.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = TUIMenuView_Minimalist.h; sourceTree = ""; }; - E2CFD475F1D5E2205AD0C1BDEC89C0FC /* mz_strm_buf.c */ = {isa = PBXFileReference; includeInIndex = 1; name = mz_strm_buf.c; path = SSZipArchive/minizip/mz_strm_buf.c; sourceTree = ""; }; - E2E2540E6B97F042EB7CC229F42B939E /* UIView+MJExtension.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "UIView+MJExtension.m"; path = "MJRefresh/UIView+MJExtension.m"; sourceTree = ""; }; + E27D21FEAC4F96C7439A48A38ED0D771 /* UIControl+RACSignalSupportPrivate.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "UIControl+RACSignalSupportPrivate.m"; path = "ReactiveObjC/UIControl+RACSignalSupportPrivate.m"; sourceTree = ""; }; + E2918D96F62616700A9E9F0E5906271C /* QCloudNetProfile.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = QCloudNetProfile.h; path = QCloudCore/Classes/Base/QCLOUDRestNet/Profile/QCloudNetProfile.h; sourceTree = ""; }; + E291D433E8515858FE063A147D01483D /* filters_neon.c */ = {isa = PBXFileReference; includeInIndex = 1; name = filters_neon.c; path = src/dsp/filters_neon.c; sourceTree = ""; }; + E2A1BA9676A2E0ABD52EBABFEE4C3A0D /* RACIndexSetSequence.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = RACIndexSetSequence.h; path = ReactiveObjC/RACIndexSetSequence.h; sourceTree = ""; }; + E2B5421620D8C1B2D573F5B4953B3072 /* RACStream+Private.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "RACStream+Private.h"; path = "ReactiveObjC/RACStream+Private.h"; sourceTree = ""; }; + E2CAA01D90816AFC88844177C39399EF /* GPBStruct.pbobjc.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = GPBStruct.pbobjc.h; path = objectivec/GPBStruct.pbobjc.h; sourceTree = ""; }; E2E9DEFD66C96770DF6DFAE74BA2EE2A /* TUIMessageController.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = TUIMessageController.h; sourceTree = ""; }; - E2ED00FBD4C5E1E3B13C45A817CDD7AD /* YBIBDataMediator.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = YBIBDataMediator.h; path = YBImageBrowser/Base/YBIBDataMediator.h; sourceTree = ""; }; - E34C20A667264D69BB2AD98EF3C16C1D /* GPBDescriptor_PackagePrivate.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = GPBDescriptor_PackagePrivate.h; path = objectivec/GPBDescriptor_PackagePrivate.h; sourceTree = ""; }; + E3005CBA4D670540031B0AC9B7BF3FA0 /* MQTTClient-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "MQTTClient-umbrella.h"; sourceTree = ""; }; + E306122A64AE025374FF6635E9A1D13D /* upsampling_sse2.c */ = {isa = PBXFileReference; includeInIndex = 1; name = upsampling_sse2.c; path = src/dsp/upsampling_sse2.c; sourceTree = ""; }; + E31A240DEFB4EFD2B4D01DD7117E0034 /* QGVAPMetalShaderFunctionLoader.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = QGVAPMetalShaderFunctionLoader.m; path = iOS/QGVAPlayer/QGVAPlayer/Classes/Utils/QGVAPMetalShaderFunctionLoader.m; sourceTree = ""; }; E35AAF7B5278F623F6E93AC979ED5547 /* Pods-QXLiveDev-acknowledgements.markdown */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text; path = "Pods-QXLiveDev-acknowledgements.markdown"; sourceTree = ""; }; + E36A5330493A24254E2ACD21ED5B6F71 /* LLHierarchyWindow.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = LLHierarchyWindow.m; path = LLDebugTool/Core/Component/Hierarchy/UserInterface/LLHierarchyWindow.m; sourceTree = ""; }; E3838B866C4BDAEC09F5A72198679BC1 /* YTFaceTrackerLiveness.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = YTFaceTrackerLiveness.framework; path = Libs/YTFaceTrackerLiveness.framework; sourceTree = ""; }; - E38E75419CD6F10F456D076A1546C7DD /* RACKVOTrampoline.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = RACKVOTrampoline.h; path = ReactiveObjC/RACKVOTrampoline.h; sourceTree = ""; }; - E38F77FBF70FE78E3F9C884F2A239974 /* OSSRestoreObjectRequest.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = OSSRestoreObjectRequest.h; path = AliyunOSSSDK/OSSRestoreObjectRequest.h; sourceTree = ""; }; + E39BBC08241C89A07EFF4D3DE68190A3 /* YBIBImageLayout.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = YBIBImageLayout.h; path = YBImageBrowser/Image/YBIBImageLayout.h; sourceTree = ""; }; + E39CC2DDDF3D85095D92C61B4E046213 /* LLDebugTool-Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "LLDebugTool-Info.plist"; sourceTree = ""; }; + E3A3717E2EB0F7601DF3D74E9ECDF971 /* muxread.c */ = {isa = PBXFileReference; includeInIndex = 1; name = muxread.c; path = src/mux/muxread.c; sourceTree = ""; }; + E3A7B5C3D308CF01E7D339EF644C71EE /* AFNetworking-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "AFNetworking-dummy.m"; sourceTree = ""; }; E3C04C2EC55D83B4112636E431842FCD /* TUICameraViewController.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = TUICameraViewController.h; sourceTree = ""; }; + E3C7F134F837A97CB0F6E17B8B02C872 /* UIApplication+YYAdd.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "UIApplication+YYAdd.h"; path = "YYCategories/UIKit/UIApplication+YYAdd.h"; sourceTree = ""; }; E3F4B6D386AFBB28C1B3E5BABEB67B29 /* TUICaptureImagePreviewController.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = TUICaptureImagePreviewController.m; sourceTree = ""; }; - E3F9DDDD63205FF6D3C3B1491080E62D /* NSMutableString+AvoidCrash.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "NSMutableString+AvoidCrash.h"; path = "AvoidCrash/NSMutableString+AvoidCrash.h"; sourceTree = ""; }; - E4448B6915B179BFEAEF6245B3BE722F /* LLConst.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = LLConst.h; path = LLDebugTool/Core/Others/Const/LLConst.h; sourceTree = ""; }; - E44CE15790053A4E0520E54B59416561 /* mz_strm_zlib.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = mz_strm_zlib.h; path = SSZipArchive/minizip/mz_strm_zlib.h; sourceTree = ""; }; + E409E85F125AF2F8DF9E7B8DEC0373A0 /* QCloudConfiguration_Private.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = QCloudConfiguration_Private.h; path = QCloudCore/Classes/Base/QCloudClientBase/Service/QCloudConfiguration_Private.h; sourceTree = ""; }; + E4330A749A940B5AA89F9A60869460AC /* OSSCocoaLumberjack.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = OSSCocoaLumberjack.h; path = AliyunOSSSDK/OSSFileLog/OSSCocoaLumberjack.h; sourceTree = ""; }; E459531FF12481C7C7546D8F9EB01C58 /* TUIBaseMessageControllerDelegate_Minimalist.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = TUIBaseMessageControllerDelegate_Minimalist.h; sourceTree = ""; }; E460D5B0416D36F66EE8EC89E5D2FA0A /* YYModel */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; name = YYModel; path = YYModel.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + E46368F03B603442284C9EEEE484B5B1 /* QCloudMultipartUploadOwner.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = QCloudMultipartUploadOwner.h; path = QCloudCOSXML/Classes/Transfer/model/QCloudMultipartUploadOwner.h; sourceTree = ""; }; E47B79BEDA5A878E74F97A1BDA1A7DC9 /* TUIVoiceReplyQuoteView_Minimalist.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = TUIVoiceReplyQuoteView_Minimalist.h; sourceTree = ""; }; - E4943D2D0B9FFEBA397DCCD362025CD9 /* Duration.pbobjc.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = Duration.pbobjc.h; path = objectivec/google/protobuf/Duration.pbobjc.h; sourceTree = ""; }; + E48DF8F4EC5948428E1C0BE1AF56C102 /* ScoringCanvasView.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ScoringCanvasView.swift; path = AgoraLyricsScore/Class/Scoring/View/ScoringCanvasView.swift; sourceTree = ""; }; E49D6D248DD1CEE584E6776B9164A1B2 /* MJRefresh */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; name = MJRefresh; path = MJRefresh.framework; sourceTree = BUILT_PRODUCTS_DIR; }; E4A3EDF2F2B3DBA4A03937BED17C7E7E /* TUICore-Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "TUICore-Info.plist"; sourceTree = ""; }; - E4B534B1418DFB31D1AB08E45A77482C /* mz_strm_os.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = mz_strm_os.h; path = SSZipArchive/minizip/mz_strm_os.h; sourceTree = ""; }; - E4E45A60EDFFD10C68DAFA2D0A43547E /* OSSGetObjectTaggingRequest.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = OSSGetObjectTaggingRequest.h; path = AliyunOSSSDK/OSSGetObjectTaggingRequest.h; sourceTree = ""; }; - E4F49D838212163A9F7FD44ED4BE7717 /* RACDelegateProxy.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = RACDelegateProxy.h; path = ReactiveObjC/RACDelegateProxy.h; sourceTree = ""; }; - E4FF19D5317D1ED5C5188BF89D337F6A /* ConsoleView.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ConsoleView.swift; path = AgoraLyricsScore/Class/Scoring/View/ConsoleView.swift; sourceTree = ""; }; - E5203DCBA0556E62B9ABE25D1C77D379 /* alpha_processing_neon.c */ = {isa = PBXFileReference; includeInIndex = 1; name = alpha_processing_neon.c; path = src/dsp/alpha_processing_neon.c; sourceTree = ""; }; - E54323A751E7E123E3FE66ED5294D556 /* YYWebImage-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "YYWebImage-dummy.m"; sourceTree = ""; }; - E54BB4993F0F6ABD3B22325957CF3841 /* RACDelegateProxy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = RACDelegateProxy.m; path = ReactiveObjC/RACDelegateProxy.m; sourceTree = ""; }; - E5593FF637FE8067AE3574CA666F390D /* YBIBCollectionViewLayout.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = YBIBCollectionViewLayout.h; path = YBImageBrowser/Base/YBIBCollectionViewLayout.h; sourceTree = ""; }; - E560E18BB9B4ECA6400E78332BD04253 /* LLNetworkWindow.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = LLNetworkWindow.m; path = LLDebugTool/Core/Component/Network/UserInterface/LLNetworkWindow.m; sourceTree = ""; }; - E58237B2B4A6B1DD42E9F847AC66FF60 /* YBIBScreenRotationHandler.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = YBIBScreenRotationHandler.h; path = YBImageBrowser/Base/YBIBScreenRotationHandler.h; sourceTree = ""; }; + E4AB7D9B1431982AD38B82C9EF5E0697 /* QCloudMultipartUploadInitiator.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = QCloudMultipartUploadInitiator.m; path = QCloudCOSXML/Classes/Transfer/model/QCloudMultipartUploadInitiator.m; sourceTree = ""; }; + E4B6C5AB1961961DE5B3BA2E86D15FC0 /* MQTTCoreDataPersistence.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = MQTTCoreDataPersistence.m; path = MQTTClient/MQTTClient/MQTTCoreDataPersistence.m; sourceTree = ""; }; + E4ED40F5B60870AF9B51CE353E178560 /* LLLocation.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = LLLocation.h; path = LLDebugTool/Core/Component/Location/LLLocation.h; sourceTree = ""; }; + E4FAE4B9CC1934D1C85C22DC6E67F58F /* SDAnimatedImagePlayer.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDAnimatedImagePlayer.h; path = SDWebImage/Core/SDAnimatedImagePlayer.h; sourceTree = ""; }; + E524F37DDADC6EFAD23EF3D70AD82BEA /* CALayer+YYAdd.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "CALayer+YYAdd.m"; path = "YYCategories/Quartz/CALayer+YYAdd.m"; sourceTree = ""; }; + E52791FE967A9ACA6B4451CFA4F19E67 /* QCloudSignatureFields.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = QCloudSignatureFields.m; path = QCloudCore/Classes/Base/QCloudClientBase/Authentation/QCloudSignatureFields.m; sourceTree = ""; }; + E5317EED7BF8169353CF7EC8B155150A /* QCloudCOSXMLService.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = QCloudCOSXMLService.h; path = QCloudCOSXML/Classes/Base/QCloudCOSXMLService.h; sourceTree = ""; }; + E5430B61F1535179412C3298C4B8816E /* UIScrollView+MJExtension.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "UIScrollView+MJExtension.h"; path = "MJRefresh/UIScrollView+MJExtension.h"; sourceTree = ""; }; + E5441491448053F9814E00F743DCDEEB /* LLLocationViewController.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = LLLocationViewController.h; path = LLDebugTool/Core/Component/Location/UserInterface/LLLocationViewController.h; sourceTree = ""; }; + E57FDA4CCBD36CE0E8D479344368C8BE /* JXPagerMainTableView.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = JXPagerMainTableView.h; path = Sources/JXPagerView/JXPagerMainTableView.h; sourceTree = ""; }; E5886BA16FE6219FD61B34C60A326850 /* TUIConversationObjectFactory_Minimalist.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = TUIConversationObjectFactory_Minimalist.h; sourceTree = ""; }; - E59066CA94FC36560D3769BD1F4B84E6 /* LLSandbox.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = LLSandbox.h; path = LLDebugTool/Core/Component/Sandbox/LLSandbox.h; sourceTree = ""; }; + E5946F09464FE288F219AFED01ADC592 /* SDImageWebPCoder.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDImageWebPCoder.h; path = SDWebImageWebPCoder/Classes/SDImageWebPCoder.h; sourceTree = ""; }; + E5A96B75D9BDE7780BDB2E8002A68AA7 /* QCloudCustomLoaderTask.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = QCloudCustomLoaderTask.m; path = QCloudCore/Classes/Base/CustomLoader/QCloudCustomLoaderTask.m; sourceTree = ""; }; + E5B1D0E9CE2A700E78BE5773C02888CB /* LLCrashCell.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = LLCrashCell.m; path = LLDebugTool/Core/Component/Crash/UserInterface/LLCrashCell.m; sourceTree = ""; }; + E5BBF9FF824780EF9D3A870677253467 /* SDWebImageCompat.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDWebImageCompat.h; path = SDWebImage/Core/SDWebImageCompat.h; sourceTree = ""; }; + E5BF696DB0B67824D9A719D3F80F4CD4 /* YYTextAttribute.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = YYTextAttribute.m; path = YYText/String/YYTextAttribute.m; sourceTree = ""; }; E5D1D639E269A845688C860850C08FD7 /* TUICameraView.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = TUICameraView.h; sourceTree = ""; }; + E5D64DC699AC6B5360DF371C757BB336 /* webp_enc.c */ = {isa = PBXFileReference; includeInIndex = 1; name = webp_enc.c; path = src/enc/webp_enc.c; sourceTree = ""; }; + E5DD350699AF476F14E85542980DA167 /* BRAddressModel.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = BRAddressModel.h; path = BRPickerView/Deprecated/AddressPickerView/BRAddressModel.h; sourceTree = ""; }; + E5E0E5B578A2414D1DF536E421A68252 /* NSIndexSet+RACSequenceAdditions.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "NSIndexSet+RACSequenceAdditions.m"; path = "ReactiveObjC/NSIndexSet+RACSequenceAdditions.m"; sourceTree = ""; }; E5E5388557256032F589DD8A8200B03A /* Security.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Security.framework; path = Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS18.0.sdk/System/Library/Frameworks/Security.framework; sourceTree = DEVELOPER_DIR; }; - E5F2C11258E35A5931012AA73EBE86CB /* SDImageCacheDefine.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDImageCacheDefine.m; path = SDWebImage/Core/SDImageCacheDefine.m; sourceTree = ""; }; + E5E896043D8BA571D11E0CA55BE4AE68 /* AgoraAudioBeautyExtension.xcframework */ = {isa = PBXFileReference; includeInIndex = 1; path = AgoraAudioBeautyExtension.xcframework; sourceTree = ""; }; E5F4A8F61E0AA1B6C351FBF585F7590B /* TUIChat-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "TUIChat-prefix.pch"; sourceTree = ""; }; - E600F1E83D5FA1C22609AA8EA9D44172 /* MJRefreshAutoFooter.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = MJRefreshAutoFooter.h; path = MJRefresh/Base/MJRefreshAutoFooter.h; sourceTree = ""; }; - E60C781CFDEE02E3CB6E0439024B2C2C /* NSIndexSet+RACSequenceAdditions.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "NSIndexSet+RACSequenceAdditions.m"; path = "ReactiveObjC/NSIndexSet+RACSequenceAdditions.m"; sourceTree = ""; }; - E6187E2A44D5D42825768D5BB2D1EC18 /* dec_clip_tables.c */ = {isa = PBXFileReference; includeInIndex = 1; name = dec_clip_tables.c; path = src/dsp/dec_clip_tables.c; sourceTree = ""; }; - E6202558041A58CC7B9AFD2C0265C2EB /* SDImageLoader.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDImageLoader.m; path = SDWebImage/Core/SDImageLoader.m; sourceTree = ""; }; - E62FC92A2402198CAD267624467EBB81 /* GPBUnknownField.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = GPBUnknownField.h; path = objectivec/GPBUnknownField.h; sourceTree = ""; }; - E62FFFB5908F91CD2C7ACCCD5E3CFCEC /* BRAddressModel.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = BRAddressModel.h; path = BRPickerView/Deprecated/AddressPickerView/BRAddressModel.h; sourceTree = ""; }; - E6554C82F4DCDC7AEF6E40B5904434BA /* OSSIPv6Adapter.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = OSSIPv6Adapter.m; path = AliyunOSSSDK/OSSIPv6/OSSIPv6Adapter.m; sourceTree = ""; }; - E67BB8DDE723F1C65F52E293178094CE /* LyricCell.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = LyricCell.swift; path = AgoraLyricsScore/Class/Lyrics/LyricCell.swift; sourceTree = ""; }; - E6823DB47E243B6C276E36DA486D9CB6 /* LLDetailTitleCellView.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = LLDetailTitleCellView.m; path = LLDebugTool/Core/Others/CommonUI/View/CellView/LLDetailTitleCellView.m; sourceTree = ""; }; - E6A2E8DF1C0C065161F7CC2BF9A28954 /* MQTTClient.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = MQTTClient.h; path = MQTTClient/MQTTClient/MQTTClient.h; sourceTree = ""; }; - E6D13CF8672AD03F8C407B5BA2045DF6 /* JXCategoryImageCell.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = JXCategoryImageCell.h; path = Sources/Image/JXCategoryImageCell.h; sourceTree = ""; }; - E71B621E3EBC3CC09FA8F9E51EB8D80B /* IQUIScrollView+Additions.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "IQUIScrollView+Additions.m"; path = "IQKeyboardManager/Categories/IQUIScrollView+Additions.m"; sourceTree = ""; }; - E737304B2404D251C27ABCD5567F1F52 /* YBIBOperateBrowserProtocol.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = YBIBOperateBrowserProtocol.h; path = YBImageBrowser/Protocol/YBIBOperateBrowserProtocol.h; sourceTree = ""; }; + E5FB34D330D2F3C122CDC554CE2915C9 /* RACChannel.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = RACChannel.h; path = ReactiveObjC/RACChannel.h; sourceTree = ""; }; + E60519A2D9722774AF56F53435310688 /* QCloudHTTPSessionManager_Private.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = QCloudHTTPSessionManager_Private.h; path = QCloudCore/Classes/Base/QCLOUDRestNet/Operations/QCloudHTTPSessionManager_Private.h; sourceTree = ""; }; + E62BB46E22E182B4B5AAB0C82DE137D0 /* IQKeyboardManager-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "IQKeyboardManager-umbrella.h"; sourceTree = ""; }; + E638ADEEE618D9115549F970DEB31647 /* GPBApi.pbobjc.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = GPBApi.pbobjc.h; path = objectivec/GPBApi.pbobjc.h; sourceTree = ""; }; + E6424BE5F62EA57F4F0571A902C9BA27 /* IQUIView+Hierarchy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "IQUIView+Hierarchy.m"; path = "IQKeyboardManager/Categories/IQUIView+Hierarchy.m"; sourceTree = ""; }; + E64C0CC4EE8501C605F259E3B887D980 /* OSSPutSymlinkRequest.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = OSSPutSymlinkRequest.h; path = AliyunOSSSDK/OSSPutSymlinkRequest.h; sourceTree = ""; }; + E65F76B8312CFB36A7276227EFA68E32 /* MQTTLog.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = MQTTLog.m; path = MQTTClient/MQTTClient/MQTTLog.m; sourceTree = ""; }; + E6758F056FC5CD773236E5DF7E34CCF9 /* QCloudCOSXMLCopyObjectRequest.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = QCloudCOSXMLCopyObjectRequest.m; path = QCloudCOSXML/Classes/Transfer/request/QCloudCOSXMLCopyObjectRequest.m; sourceTree = ""; }; + E68613DF1CB927FB8EAE99A7C1341972 /* JXCategoryTitleImageView.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = JXCategoryTitleImageView.h; path = Sources/TitleImage/JXCategoryTitleImageView.h; sourceTree = ""; }; + E68BAAC2BD14E395860B9FCECB394C41 /* SDWebImage-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "SDWebImage-umbrella.h"; sourceTree = ""; }; + E692E5A4ADDC3B8051B81F53EE697149 /* mz_strm_os.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = mz_strm_os.h; path = SSZipArchive/minizip/mz_strm_os.h; sourceTree = ""; }; + E693E4401A900A1D6F614D2499EACDC6 /* TADotView.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = TADotView.m; path = SDCycleScrollView/Lib/SDCycleScrollView/PageControl/TADotView.m; sourceTree = ""; }; + E6D396D7C475FFCCE53A5F2AD5CD89B2 /* BRResultModel.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = BRResultModel.h; path = BRPickerView/Deprecated/StringPickerView/BRResultModel.h; sourceTree = ""; }; + E6D676BE462C8A5A4EAB6E4541DBD81C /* RACEmptySequence.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = RACEmptySequence.m; path = ReactiveObjC/RACEmptySequence.m; sourceTree = ""; }; + E6DFAC3D5BD0F0C59D1B7FE00E877897 /* JXCategoryView-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "JXCategoryView-umbrella.h"; sourceTree = ""; }; + E6EE15597502DD3E98A60D4F8268CFBD /* QCloudSignatureFields.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = QCloudSignatureFields.h; path = QCloudCore/Classes/Base/QCloudClientBase/Authentation/QCloudSignatureFields.h; sourceTree = ""; }; + E71C8117686C1F637744D9721B518A91 /* Agorafdkaac.xcframework */ = {isa = PBXFileReference; includeInIndex = 1; path = Agorafdkaac.xcframework; sourceTree = ""; }; E74601B22DB72DD03796E96705A3A34C /* TUIConversationMultiChooseView_Minimalist.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = TUIConversationMultiChooseView_Minimalist.m; sourceTree = ""; }; - E76491A4F0DC05B07F335A66431817A0 /* LLEnumDescription.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = LLEnumDescription.m; path = LLDebugTool/Core/Component/Hierarchy/Function/EnumDescription/LLEnumDescription.m; sourceTree = ""; }; - E7795C18E237EAC5EA711BD505B0C00C /* NSString+LL_Utils.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "NSString+LL_Utils.m"; path = "LLDebugTool/Core/Others/Category/NSString/NSString+LL_Utils.m"; sourceTree = ""; }; - E77D59B51363B888AD56AD5012A04285 /* TIMPushManager.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = TIMPushManager.h; path = "TIMPush.xcframework/ios-arm64/TIMPush.framework/Headers/TIMPushManager.h"; sourceTree = ""; }; - E78B40B3D91063005F2C036F1BDC4627 /* UIButton+AFNetworking.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "UIButton+AFNetworking.m"; path = "UIKit+AFNetworking/UIButton+AFNetworking.m"; sourceTree = ""; }; - E7ADAE7D0F3413404AD508AAD8899515 /* OSSIPv6Adapter.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = OSSIPv6Adapter.h; path = AliyunOSSSDK/OSSIPv6/OSSIPv6Adapter.h; sourceTree = ""; }; - E7B8735050F4935C5F0EC57A5CAFBBFB /* LLCrashCell.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = LLCrashCell.h; path = LLDebugTool/Core/Component/Crash/UserInterface/LLCrashCell.h; sourceTree = ""; }; - E7BA158897808F571256C02BA01E24B1 /* JXCategoryDotCell.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = JXCategoryDotCell.m; path = Sources/Dot/JXCategoryDotCell.m; sourceTree = ""; }; - E7BD0B0B60CA10C971E26DD11DD2AC30 /* NSMutableAttributedString+AvoidCrash.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "NSMutableAttributedString+AvoidCrash.h"; path = "AvoidCrash/NSMutableAttributedString+AvoidCrash.h"; sourceTree = ""; }; - E7E4F788297C182FDA37350932B99BD4 /* YYTextAsyncLayer.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = YYTextAsyncLayer.h; path = YYText/Utility/YYTextAsyncLayer.h; sourceTree = ""; }; - E7E6D038FA4D9E830F2892C7893649BA /* QGMP4Box.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = QGMP4Box.h; path = iOS/QGVAPlayer/QGVAPlayer/Classes/MP4Parser/QGMP4Box.h; sourceTree = ""; }; - E82E4E8160F794B08736FFB99B47495A /* UITableViewHeaderFooterView+RACSignalSupport.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "UITableViewHeaderFooterView+RACSignalSupport.m"; path = "ReactiveObjC/UITableViewHeaderFooterView+RACSignalSupport.m"; sourceTree = ""; }; - E8405E6E34E44ED063F9FCC5C1A44031 /* NSBundle+TZImagePicker.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "NSBundle+TZImagePicker.m"; path = "TZImagePickerController/TZImagePickerController/NSBundle+TZImagePicker.m"; sourceTree = ""; }; - E8451BC48B7FD940E2BC4D8E47E44668 /* NSNotificationCenter+YYAdd.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "NSNotificationCenter+YYAdd.m"; path = "YYCategories/Foundation/NSNotificationCenter+YYAdd.m"; sourceTree = ""; }; - E84F06C7A76FC325AEB48DF2222C1A25 /* JXCategoryNumberCellModel.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = JXCategoryNumberCellModel.h; path = Sources/Number/JXCategoryNumberCellModel.h; sourceTree = ""; }; - E8520A5CB18CFCEA65D4A5A06F6C4791 /* MQTTClient-Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "MQTTClient-Info.plist"; sourceTree = ""; }; + E74B050A3D73D875D39BB6D402AECFFB /* RACTuple.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = RACTuple.h; path = ReactiveObjC/RACTuple.h; sourceTree = ""; }; + E74F9C60664CBFB20EA9BF1CD45853F6 /* JXCategoryViewAnimator.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = JXCategoryViewAnimator.m; path = Sources/Common/JXCategoryViewAnimator.m; sourceTree = ""; }; + E75877C0839B68DB156C9EFC81B0FB0F /* SDImageAPNGCoder.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDImageAPNGCoder.m; path = SDWebImage/Core/SDImageAPNGCoder.m; sourceTree = ""; }; + E761F0F71FD3449DAC91AC2FC0119E53 /* LLFilterTextFieldModel.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = LLFilterTextFieldModel.h; path = LLDebugTool/Core/Others/CommonUI/View/FilterView/LLFilterTextFieldModel.h; sourceTree = ""; }; + E76643658D7F1857836CE14A026C5F33 /* GPBWellKnownTypes.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = GPBWellKnownTypes.h; path = objectivec/GPBWellKnownTypes.h; sourceTree = ""; }; + E76FF91F73392067A0842DA01AECC136 /* OSSBolts.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = OSSBolts.h; path = AliyunOSSSDK/OSSTask/OSSBolts.h; sourceTree = ""; }; + E772B7F914CACF8772A7FFE42632D64C /* enc_sse41.c */ = {isa = PBXFileReference; includeInIndex = 1; name = enc_sse41.c; path = src/dsp/enc_sse41.c; sourceTree = ""; }; + E7B283DA7D9438642D048CC661511A97 /* JXPagingView.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = JXPagingView.debug.xcconfig; sourceTree = ""; }; + E7D88E62CA4D102DA8BBCC2036403CF4 /* YYTextKeyboardManager.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = YYTextKeyboardManager.h; path = YYText/Component/YYTextKeyboardManager.h; sourceTree = ""; }; + E7DB3331CF659984BFE549C347BD382E /* QCloudIntelligenceTimeOutAdapter.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = QCloudIntelligenceTimeOutAdapter.m; path = QCloudCore/Classes/Base/QCLOUDRestNet/TimeOutAdapter/QCloudIntelligenceTimeOutAdapter.m; sourceTree = ""; }; + E7E4513BAFB9371B25CB9D6F1DDA6A07 /* SDImageIOCoder.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDImageIOCoder.h; path = SDWebImage/Core/SDImageIOCoder.h; sourceTree = ""; }; + E7E49E1A2E12BC5E171A2E605535C23C /* UIImage+GIF.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "UIImage+GIF.m"; path = "SDWebImage/Core/UIImage+GIF.m"; sourceTree = ""; }; + E7F470C1AAF30E9BE42D163CB95B0C90 /* AFNetworkActivityIndicatorManager.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = AFNetworkActivityIndicatorManager.h; path = "UIKit+AFNetworking/AFNetworkActivityIndicatorManager.h"; sourceTree = ""; }; + E7FB5DD066A6771B3D6ED75334CFD6EE /* OSSModel.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = OSSModel.h; path = AliyunOSSSDK/OSSModel.h; sourceTree = ""; }; + E81461CED9E96FB3CBA947397E3AF3CD /* UIColor+JXAdd.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "UIColor+JXAdd.h"; path = "Sources/Common/UIColor+JXAdd.h"; sourceTree = ""; }; E856B12C60338D611D7677EC9739BA4D /* TUIReplyPreviewBar_Minimalist.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = TUIReplyPreviewBar_Minimalist.h; sourceTree = ""; }; - E85F7903A9D040C24E56355B875D47B3 /* QGVAPlayer.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = QGVAPlayer.debug.xcconfig; sourceTree = ""; }; - E865361FAE521D5042AECC879406C1C5 /* JXPagingView-Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "JXPagingView-Info.plist"; sourceTree = ""; }; E86BC2B5D47B2EA61ED76887B7F31B53 /* AssetsLibrary.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AssetsLibrary.framework; path = Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS18.0.sdk/System/Library/Frameworks/AssetsLibrary.framework; sourceTree = DEVELOPER_DIR; }; + E86CC03A6C42C563C17CD73D44D68651 /* QCloudCOSXML-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "QCloudCOSXML-prefix.pch"; sourceTree = ""; }; + E8777A80F3109028701BC6328896A006 /* JXCategoryImageCell.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = JXCategoryImageCell.h; path = Sources/Image/JXCategoryImageCell.h; sourceTree = ""; }; E87FC9C2715494EF5B6B8614029C5CD2 /* TUIReplyPreviewData.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = TUIReplyPreviewData.m; sourceTree = ""; }; - E8819458139503FDB6BB66BE19FF3F16 /* MJRefreshStateTrailer.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = MJRefreshStateTrailer.m; path = MJRefresh/Custom/Trailer/MJRefreshStateTrailer.m; sourceTree = ""; }; - E88654AC28F45E0216CEFAB4500604DE /* OSSDeleteMultipleObjectsRequest.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = OSSDeleteMultipleObjectsRequest.m; path = AliyunOSSSDK/OSSDeleteMultipleObjectsRequest.m; sourceTree = ""; }; - E8952280EC5E897F2BAC8CB258E55431 /* LLThemeColor.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = LLThemeColor.h; path = LLDebugTool/Core/Others/Manager/ThemeManager/LLThemeColor.h; sourceTree = ""; }; - E8A858791FCAD7F99C0E3F955D7C907C /* RACScheduler+Private.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "RACScheduler+Private.h"; path = "ReactiveObjC/RACScheduler+Private.h"; sourceTree = ""; }; - E8C39112CC747EF942B440513B36A908 /* NSMutableData+OSS_CRC.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "NSMutableData+OSS_CRC.m"; path = "AliyunOSSSDK/NSMutableData+OSS_CRC.m"; sourceTree = ""; }; - E8C4DFAD7C4FD6624BB368350F29137D /* YBIBUtilities.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = YBIBUtilities.h; path = YBImageBrowser/Helper/YBIBUtilities.h; sourceTree = ""; }; - E8F52380927FAB122930062DC59EF5C1 /* UITextField+RACSignalSupport.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "UITextField+RACSignalSupport.h"; path = "ReactiveObjC/UITextField+RACSignalSupport.h"; sourceTree = ""; }; + E89915ACAE5B113945B1B0C0820599A3 /* MQTTSSLSecurityPolicyDecoder.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = MQTTSSLSecurityPolicyDecoder.m; path = MQTTClient/MQTTClient/MQTTSSLSecurityPolicyDecoder.m; sourceTree = ""; }; + E8B01716AB758E8D6CBBDDBFF566A30C /* LLPinAnnotationView.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = LLPinAnnotationView.m; path = LLDebugTool/Core/Component/Location/UserInterface/LLPinAnnotationView.m; sourceTree = ""; }; + E8B28E48EF07B30BEB9FFC5A755644E7 /* TIMPush.xcframework */ = {isa = PBXFileReference; includeInIndex = 1; path = TIMPush.xcframework; sourceTree = ""; }; + E8BCD3D74A1BA116AC477521177D2AD7 /* QCloudUploadPartRequestRetryHandler.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = QCloudUploadPartRequestRetryHandler.h; path = QCloudCore/Classes/Base/QCLOUDRestNet/Retry/QCloudUploadPartRequestRetryHandler.h; sourceTree = ""; }; + E8C3E9C4EBA37ECB192FF24CDEC1BC61 /* YYTextAsyncLayer.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = YYTextAsyncLayer.m; path = YYText/Utility/YYTextAsyncLayer.m; sourceTree = ""; }; + E8DD1CB09A0336A45AA2E1FCF9C8F71D /* SDWebImage-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "SDWebImage-prefix.pch"; sourceTree = ""; }; + E8F31B119AB11AA2DC40EBEA5F9DB70F /* QGHWDMetalRenderer.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = QGHWDMetalRenderer.h; path = iOS/QGVAPlayer/QGVAPlayer/Classes/Views/Metal/QGHWDMetalRenderer.h; sourceTree = ""; }; E9000759BE4ACA264C59EC2C0F9620FD /* TUIFaceVerticalView.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = TUIFaceVerticalView.h; sourceTree = ""; }; - E90A28716F427BD6432A990D0FCB4854 /* MQTTClient.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = MQTTClient.debug.xcconfig; sourceTree = ""; }; - E92F2F8136954E0785B95B616359327A /* YYModel.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.module; path = YYModel.modulemap; sourceTree = ""; }; - E9318EF7F094F5278E322D0F4235E48C /* format_constants.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = format_constants.h; path = src/webp/format_constants.h; sourceTree = ""; }; - E950D4D78D1BA96B9E435CE95D92DC20 /* QGAnimatedImageDecodeThread.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = QGAnimatedImageDecodeThread.h; path = iOS/QGVAPlayer/QGVAPlayer/Classes/Controllers/QGAnimatedImageDecodeThread.h; sourceTree = ""; }; - E97B946024F34982FB86D50C6A6F70FF /* ScoreAlgorithm.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ScoreAlgorithm.swift; path = AgoraLyricsScore/Class/Scoring/Other/ScoreAlgorithm.swift; sourceTree = ""; }; - E989E86414A3C2F2B0DBC5C16D646DD1 /* huffman_encode_utils.c */ = {isa = PBXFileReference; includeInIndex = 1; name = huffman_encode_utils.c; path = src/utils/huffman_encode_utils.c; sourceTree = ""; }; - E9C3BBE56A385FC9FDEE685E9083AD8C /* MJRefreshBackStateFooter.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = MJRefreshBackStateFooter.m; path = MJRefresh/Custom/Footer/Back/MJRefreshBackStateFooter.m; sourceTree = ""; }; - E9E3514ACF2CA3C76FE4AD482DF52CF4 /* RACTuple.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = RACTuple.h; path = ReactiveObjC/RACTuple.h; sourceTree = ""; }; + E90B0C6572E5E197382B7E4D88C189F1 /* PrivacyInfo.xcprivacy */ = {isa = PBXFileReference; includeInIndex = 1; name = PrivacyInfo.xcprivacy; path = "ImSDK_Plus.xcframework/ios-arm64_armv7/ImSDK_Plus.framework/PrivacyInfo.xcprivacy"; sourceTree = ""; }; + E91D275F6375A2DEB0BBE4068CE1806B /* iterator_enc.c */ = {isa = PBXFileReference; includeInIndex = 1; name = iterator_enc.c; path = src/enc/iterator_enc.c; sourceTree = ""; }; + E94961F742C6507D2C08B64FAA14C0D4 /* MASViewAttribute.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = MASViewAttribute.h; path = Masonry/MASViewAttribute.h; sourceTree = ""; }; + E9610F285E606B247996729D342EA2DF /* LLHtmlViewController.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = LLHtmlViewController.m; path = LLDebugTool/Core/Component/Html/UserInterface/LLHtmlViewController.m; sourceTree = ""; }; + E97716D3E37FCB503F0F6021923CF88E /* YYWebImageManager.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = YYWebImageManager.m; path = YYWebImage/YYWebImageManager.m; sourceTree = ""; }; + E99AB24F3B2913D2410969663494C479 /* SDImageFramePool.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDImageFramePool.m; path = SDWebImage/Private/SDImageFramePool.m; sourceTree = ""; }; + E9B2C06C987B4A6E04E58710FBC3E339 /* LLRulerViewController.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = LLRulerViewController.h; path = LLDebugTool/Core/Component/Ruler/UserInterface/LLRulerViewController.h; sourceTree = ""; }; + E9E9A8D313D4EA9E98CFC88D6D56F1F7 /* lossless_neon.c */ = {isa = PBXFileReference; includeInIndex = 1; name = lossless_neon.c; path = src/dsp/lossless_neon.c; sourceTree = ""; }; E9FD69164CED3C5424496E386AA5CA8E /* Photos.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Photos.framework; path = Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS18.0.sdk/System/Library/Frameworks/Photos.framework; sourceTree = DEVELOPER_DIR; }; - EA17CD937CA3EA89FF79F818E6703B37 /* YBIBIconManager.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = YBIBIconManager.h; path = YBImageBrowser/Helper/YBIBIconManager.h; sourceTree = ""; }; - EA2D1C583B28A8391498037B6ED2FCDD /* YYTextArchiver.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = YYTextArchiver.m; path = YYText/String/YYTextArchiver.m; sourceTree = ""; }; - EA32E98C9DBA059E4205EC581458383C /* OSSReachability.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = OSSReachability.h; path = AliyunOSSSDK/OSSFileLog/OSSReachability.h; sourceTree = ""; }; + EA2215D9AD8C51079F9D11EC84FBAFBC /* QCloudGCDTimer.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = QCloudGCDTimer.m; path = QCloudCore/Classes/Base/QCloudGCDTimer.m; sourceTree = ""; }; + EA259811A5E4EDBD31B8E485315ABC4E /* CALayer+YYWebImage.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "CALayer+YYWebImage.m"; path = "YYWebImage/Categories/CALayer+YYWebImage.m"; sourceTree = ""; }; + EA5A6EDB788A0DF426C2F16FAC9A0526 /* LLMagnifierInfoView.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = LLMagnifierInfoView.m; path = LLDebugTool/Core/Component/Magnifier/UserInterface/LLMagnifierInfoView.m; sourceTree = ""; }; EA6822A288B04016AC43E4348FF67523 /* Pods-QXLiveDev.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.module; path = "Pods-QXLiveDev.modulemap"; sourceTree = ""; }; - EA81271596A1BFD0BB86331927BF78E6 /* SVGAParser.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SVGAParser.h; path = Source/SVGAParser.h; sourceTree = ""; }; - EA8772B0615DCC38C15FD2F5498E6157 /* IQKeyboardManager.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = IQKeyboardManager.h; path = IQKeyboardManager/IQKeyboardManager.h; sourceTree = ""; }; - EA8C7406B301BE8273410FBC2AD62032 /* MQTTCFSocketTransport.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = MQTTCFSocketTransport.m; path = MQTTClient/MQTTClient/MQTTCFSocketTransport.m; sourceTree = ""; }; + EA7074CE7972C5E11D452EB1B3FD9A81 /* OSSGetBucketInfoResult.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = OSSGetBucketInfoResult.h; path = AliyunOSSSDK/OSSGetBucketInfoResult.h; sourceTree = ""; }; + EA78C5CB4CC328A89FAA412536E20940 /* OSSRequest.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = OSSRequest.m; path = AliyunOSSSDK/OSSRequest.m; sourceTree = ""; }; EA8D722501ED4C9433828EF23341D97D /* TUIImageMessageCell.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = TUIImageMessageCell.h; sourceTree = ""; }; - EAB94DED6D97E9572836AE565AE8F8C6 /* RACDynamicSignal.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = RACDynamicSignal.h; path = ReactiveObjC/RACDynamicSignal.h; sourceTree = ""; }; - EABD8B32D67DA62EA7FAB53F75BA340C /* LLScreenshotComponent.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = LLScreenshotComponent.h; path = LLDebugTool/Core/Component/Screenshot/LLScreenshotComponent.h; sourceTree = ""; }; + EAAC33A7F3159675ED218F9748204503 /* QCloudURLTools.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = QCloudURLTools.h; path = QCloudCore/Classes/Base/QCLOUDRestNet/URLTools/QCloudURLTools.h; sourceTree = ""; }; EAC939BE9580C808FD4B6EE368DEC4FF /* TUIFoldListViewController_Minimalist.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = TUIFoldListViewController_Minimalist.m; sourceTree = ""; }; - EACE11D589387CF44A921B85EE6B8559 /* JXCategoryImageView.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = JXCategoryImageView.h; path = Sources/Image/JXCategoryImageView.h; sourceTree = ""; }; - EAE59A937C0D00ADB586F516A7B50CDA /* ScoringMachineProtocol+Events.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "ScoringMachineProtocol+Events.swift"; path = "AgoraLyricsScore/Class/Scoring/ScoringMachineProtocol+Events.swift"; sourceTree = ""; }; + EAEAABB94450E749A25AF3707224E59B /* dec_sse41.c */ = {isa = PBXFileReference; includeInIndex = 1; name = dec_sse41.c; path = src/dsp/dec_sse41.c; sourceTree = ""; }; + EAFFA0142D3AF6787B89DBC210C2CA48 /* LLFunctionComponent.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = LLFunctionComponent.m; path = LLDebugTool/Core/Others/Component/Function/LLFunctionComponent.m; sourceTree = ""; }; EB08E8CA1E4221135BB492891A9FB339 /* TUIConversation.podspec */ = {isa = PBXFileReference; explicitFileType = text.script.ruby; includeInIndex = 1; indentWidth = 2; lastKnownFileType = text; path = TUIConversation.podspec; sourceTree = ""; tabWidth = 2; xcLanguageSpecificationIdentifier = xcode.lang.ruby; }; - EB2977ADC464CB806A515F61CE03F0F0 /* RACScheduler+Subclass.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "RACScheduler+Subclass.h"; path = "ReactiveObjC/RACScheduler+Subclass.h"; sourceTree = ""; }; + EB169B301D75510AD8763578FC9D3620 /* UITextView+RACSignalSupport.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "UITextView+RACSignalSupport.m"; path = "ReactiveObjC/UITextView+RACSignalSupport.m"; sourceTree = ""; }; + EB20D4AB990A5D5B4CA4725DD62E892B /* LLWidgetBorderHelper.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = LLWidgetBorderHelper.m; path = LLDebugTool/Core/Component/WidgetBorder/Function/LLWidgetBorderHelper.m; sourceTree = ""; }; + EB313BC7A26F886148DD5DBE4DF6B8AF /* LLScreenshotWindow.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = LLScreenshotWindow.m; path = LLDebugTool/Core/Component/Screenshot/UserInterface/LLScreenshotWindow.m; sourceTree = ""; }; EB361C03E5B03DACCD2D1F7D15A19F8D /* TUIChatPopContextExtionView.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = TUIChatPopContextExtionView.h; sourceTree = ""; }; - EB53E28462CB4576327424E66F96052A /* YYWebImage-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "YYWebImage-prefix.pch"; sourceTree = ""; }; - EB6DBD77478BEB5BFF41852F6BE2894D /* LLShortCutViewController.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = LLShortCutViewController.h; path = LLDebugTool/Core/Component/ShortCut/UserInterface/LLShortCutViewController.h; sourceTree = ""; }; - EBA26284EF96039CE4F9195867B7F3D1 /* LLURLProtocol.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = LLURLProtocol.m; path = LLDebugTool/Core/Component/Network/Function/LLURLProtocol.m; sourceTree = ""; }; - EBD2B361A3238AD29CDE2377784A4314 /* UIImage+Transform.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "UIImage+Transform.m"; path = "SDWebImage/Core/UIImage+Transform.m"; sourceTree = ""; }; - EBD6D848881BA6A6A09320745B3C89A7 /* OSSV4Signer.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = OSSV4Signer.m; path = AliyunOSSSDK/Signer/OSSV4Signer.m; sourceTree = ""; }; + EB4D80265B18933ECC0B7D05844DD0D0 /* LLCrashComponent.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = LLCrashComponent.m; path = LLDebugTool/Core/Component/Crash/LLCrashComponent.m; sourceTree = ""; }; + EB51F8B2EA22886BB29FA17F417426A8 /* GPBUnknownFields+Additions.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "GPBUnknownFields+Additions.swift"; path = "objectivec/GPBUnknownFields+Additions.swift"; sourceTree = ""; }; + EB605D949037651D57725E2BED5B6196 /* UIColor+LL_Utils.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "UIColor+LL_Utils.m"; path = "LLDebugTool/Core/Others/Category/UIColor/UIColor+LL_Utils.m"; sourceTree = ""; }; + EB6632376F3502E2D9C6BF8ACC2E0A33 /* GPBMessage.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = GPBMessage.m; path = objectivec/GPBMessage.m; sourceTree = ""; }; + EB84278F9C240163984059166FE0EA11 /* View+MASShorthandAdditions.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "View+MASShorthandAdditions.h"; path = "Masonry/View+MASShorthandAdditions.h"; sourceTree = ""; }; + EBA00B33D07C2257E53459D1AA6DF78B /* NSEnumerator+RACSequenceAdditions.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "NSEnumerator+RACSequenceAdditions.m"; path = "ReactiveObjC/NSEnumerator+RACSequenceAdditions.m"; sourceTree = ""; }; + EBBFFE545A4F4829A8AEFF12572DF506 /* YBIBImageCell.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = YBIBImageCell.h; path = YBImageBrowser/Image/YBIBImageCell.h; sourceTree = ""; }; + EBD0F5528D089B8DFC408C64AB16CF9A /* mz_strm_wzaes.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = mz_strm_wzaes.h; path = SSZipArchive/minizip/mz_strm_wzaes.h; sourceTree = ""; }; + EBDFCC8623E4DB819943C76047E711CA /* LLDebugTool.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = LLDebugTool.debug.xcconfig; sourceTree = ""; }; EBE41960EC4C02DE7507077364862A87 /* TUIChat-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "TUIChat-dummy.m"; sourceTree = ""; }; - EBFBDD5D4DF49E660553FC2ADF20385C /* mz.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = mz.h; path = SSZipArchive/minizip/mz.h; sourceTree = ""; }; - EC0432E6C5A9F3162D407A3C677C2791 /* LLNetwork.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = LLNetwork.h; path = LLDebugTool/Core/Component/Network/LLNetwork.h; sourceTree = ""; }; - EC4AFEBAB597CA581EA5CFC7CCD195BA /* NSData+RACSupport.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "NSData+RACSupport.m"; path = "ReactiveObjC/NSData+RACSupport.m"; sourceTree = ""; }; + EBE5099CE237143C902B9F81A11DB6EE /* QCloudUploadPartCopyRequest.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = QCloudUploadPartCopyRequest.h; path = QCloudCOSXML/Classes/Transfer/request/QCloudUploadPartCopyRequest.h; sourceTree = ""; }; + EC198EB887024871535BD7E9B8865685 /* MQTTMessage.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = MQTTMessage.h; path = MQTTClient/MQTTClient/MQTTMessage.h; sourceTree = ""; }; + EC29EBA6A2189FCC642AE87C1864EB3C /* JXCategoryIndicatorLineView.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = JXCategoryIndicatorLineView.h; path = Sources/Indicator/IndicatorViews/JXCategoryIndicatorLineView.h; sourceTree = ""; }; + EC2B8510602804E6C25935647B94A846 /* NSArray+VAPUtil.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "NSArray+VAPUtil.h"; path = "iOS/QGVAPlayer/QGVAPlayer/Classes/Utils/Categorys/NSArray+VAPUtil.h"; sourceTree = ""; }; EC4DB0C809E92AF61D96C49436DFE57B /* TUIFileMessageCellData.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = TUIFileMessageCellData.m; sourceTree = ""; }; - EC7B9044D03A66B6036E63908C246857 /* NSLayoutConstraint+MASDebugAdditions.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "NSLayoutConstraint+MASDebugAdditions.m"; path = "Masonry/NSLayoutConstraint+MASDebugAdditions.m"; sourceTree = ""; }; - EC90F94F312D0E34FE172989809C5B43 /* TADotView.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = TADotView.m; path = SDCycleScrollView/Lib/SDCycleScrollView/PageControl/TADotView.m; sourceTree = ""; }; - EC9FAD6E6B2245B24C268E38F90E7152 /* LLHierarchyHelper.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = LLHierarchyHelper.h; path = LLDebugTool/Core/Component/Hierarchy/Function/LLHierarchyHelper.h; sourceTree = ""; }; - ECACABDDF9CE533CDA75BC8C7715A10C /* RACImmediateScheduler.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = RACImmediateScheduler.m; path = ReactiveObjC/RACImmediateScheduler.m; sourceTree = ""; }; - ECC5067C3FE740EE8944EB3549AA154D /* _YYWebImageSetter.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = _YYWebImageSetter.m; path = YYWebImage/Categories/_YYWebImageSetter.m; sourceTree = ""; }; - ECCB174B0A81D9A9938707FE508CF775 /* webp_enc.c */ = {isa = PBXFileReference; includeInIndex = 1; name = webp_enc.c; path = src/enc/webp_enc.c; sourceTree = ""; }; - ECDAD0C68CEEEB0CFD6BE1FBBF0202C8 /* YYCache-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "YYCache-prefix.pch"; sourceTree = ""; }; - ECE1B6025BEA2C708D2EE2CC233D7FCC /* frame_dec.c */ = {isa = PBXFileReference; includeInIndex = 1; name = frame_dec.c; path = src/dec/frame_dec.c; sourceTree = ""; }; + EC4FF01339FA7AB1962A0244200963E7 /* LLCrashViewController.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = LLCrashViewController.h; path = LLDebugTool/Core/Component/Crash/UserInterface/LLCrashViewController.h; sourceTree = ""; }; + EC66B56F74A65DE41BAF756857F9EA36 /* LLLocationHelper.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = LLLocationHelper.h; path = LLDebugTool/Core/Component/Location/Function/LLLocationHelper.h; sourceTree = ""; }; + EC8EDA2AD254FBD42815A4AF21830A39 /* sharpyuv_neon.c */ = {isa = PBXFileReference; includeInIndex = 1; name = sharpyuv_neon.c; path = sharpyuv/sharpyuv_neon.c; sourceTree = ""; }; + ECBBAB4283E101197919F9885D7896FF /* JXCategoryFactory.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = JXCategoryFactory.h; path = Sources/Common/JXCategoryFactory.h; sourceTree = ""; }; + ECE6433E17E570A21A030F4F73E3CEAC /* GPBAny.pbobjc.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = GPBAny.pbobjc.h; path = objectivec/GPBAny.pbobjc.h; sourceTree = ""; }; + ED253747B042E602D6C91CBDB8A3385B /* NSString+AvoidCrash.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "NSString+AvoidCrash.h"; path = "AvoidCrash/NSString+AvoidCrash.h"; sourceTree = ""; }; + ED3F60124D1F64BE9A869D5B5C500CD6 /* NSKeyedUnarchiver+YYAdd.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "NSKeyedUnarchiver+YYAdd.m"; path = "YYCategories/Foundation/NSKeyedUnarchiver+YYAdd.m"; sourceTree = ""; }; + ED69B92666F6F0383AFED29E18C4261A /* rescaler.c */ = {isa = PBXFileReference; includeInIndex = 1; name = rescaler.c; path = src/dsp/rescaler.c; sourceTree = ""; }; ED739D2EA31730B9C469B5913E6EC5D1 /* TUIMemberCell.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = TUIMemberCell.h; sourceTree = ""; }; - ED7EFF533A0671B040F28AB45F3F7CA9 /* QGVAPSafeMutableDictionary.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = QGVAPSafeMutableDictionary.h; path = iOS/QGVAPlayer/QGVAPlayer/Classes/Utils/QGVAPSafeMutableDictionary.h; sourceTree = ""; }; - EDAF9D4D062D739B0C83C766F29654CB /* JXCategoryListContainerRTLCell.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = JXCategoryListContainerRTLCell.m; path = Sources/Common/JXCategoryListContainerRTLCell.m; sourceTree = ""; }; - EDEBEFDC15E4DA6B1CB9B03CF7309CE4 /* OSSCompat.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = OSSCompat.h; path = AliyunOSSSDK/OSSCompat.h; sourceTree = ""; }; - EE843AE22A85DEB0DB74332F863118A8 /* TZAssetCell.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = TZAssetCell.h; path = TZImagePickerController/TZImagePickerController/TZAssetCell.h; sourceTree = ""; }; + ED860B060332BFFC3AE2F067A2DC9DF0 /* BRPickerAlertView.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = BRPickerAlertView.h; path = BRPickerView/Core/BRPickerAlertView.h; sourceTree = ""; }; + EDC3AB439C39A211DAE08F7749D129AC /* LLWindowManager+Network.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "LLWindowManager+Network.m"; path = "LLDebugTool/Core/Component/Network/UserInterface/LLWindowManager+Network.m"; sourceTree = ""; }; + EDD1CB209F65EDFF312B9A803F98DE95 /* QCloudHttpMetrics.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = QCloudHttpMetrics.m; path = QCloudCore/Classes/Base/QCLOUDRestNet/Profile/QCloudHttpMetrics.m; sourceTree = ""; }; + EDF8C14ADC3F4CF3EB333A7111631C51 /* YYModel-Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "YYModel-Info.plist"; sourceTree = ""; }; + EE016A33A5E237BFB4665F4F038B0B17 /* lossless_common.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = lossless_common.h; path = src/dsp/lossless_common.h; sourceTree = ""; }; + EE05DB23F7D5BD758A4F27F73F739ED6 /* AliyunOSSiOS.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.module; path = AliyunOSSiOS.modulemap; sourceTree = ""; }; + EE1088E943CE4EEB071B855ED0AB96FE /* LLLogDetailViewController.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = LLLogDetailViewController.h; path = LLDebugTool/Core/Component/Log/UserInterface/LLLogDetailViewController.h; sourceTree = ""; }; + EE18F9EB151526E3C07397A9E807D8E4 /* LLCrashModel.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = LLCrashModel.h; path = LLDebugTool/Core/Component/Crash/Function/LLCrashModel.h; sourceTree = ""; }; + EE43C496351E428193836DDC7DAF36AC /* QCloudHosts.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = QCloudHosts.m; path = QCloudCore/Classes/Base/QCLOUDRestNet/DNSCache/QCloudHosts.m; sourceTree = ""; }; + EE6091647D1C566C87CC7254162D681B /* OSSReachability.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = OSSReachability.h; path = AliyunOSSSDK/OSSFileLog/OSSReachability.h; sourceTree = ""; }; + EE7DC835BDA49D199852711EC4553B8A /* LLSandboxTextPreviewController.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = LLSandboxTextPreviewController.m; path = LLDebugTool/Core/Component/Sandbox/UserInterface/LLSandboxTextPreviewController.m; sourceTree = ""; }; + EE85F27CFD896739228842096D35188F /* LLProxy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = LLProxy.m; path = LLDebugTool/Core/Others/Proxy/LLProxy.m; sourceTree = ""; }; + EE89A6EA0D5F935FF1E4B4D39E928AC5 /* aos_crc64.c */ = {isa = PBXFileReference; includeInIndex = 1; name = aos_crc64.c; path = AliyunOSSSDK/aos_crc64.c; sourceTree = ""; }; EE8DB31B041B11EA309F0CC4C6B3F6F3 /* TUIChatExtensionObserver.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = TUIChatExtensionObserver.h; sourceTree = ""; }; - EEBEDD218764032003B5BF12AD62BE02 /* UIImage+YYWebImage.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "UIImage+YYWebImage.m"; path = "YYWebImage/Categories/UIImage+YYWebImage.m"; sourceTree = ""; }; - EEC83944AE9DC1EDD7A3475F7B291C15 /* SDmetamacros.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDmetamacros.h; path = SDWebImageWebPCoder/Private/SDmetamacros.h; sourceTree = ""; }; - EECE53281BBB3B762D5E3019C8E1B910 /* LLBaseWindow.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = LLBaseWindow.h; path = LLDebugTool/Core/Others/CommonUI/Base/LLBaseWindow.h; sourceTree = ""; }; + EE8DD1631CED20D33D65CF1D7410FD17 /* NSObject+RACSelectorSignal.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "NSObject+RACSelectorSignal.h"; path = "ReactiveObjC/NSObject+RACSelectorSignal.h"; sourceTree = ""; }; + EEBED63C0D1C6DC8A8016BDC8797240E /* SVGAImageView.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SVGAImageView.m; path = Source/SVGAImageView.m; sourceTree = ""; }; EED6A24B5F0A0825CE50F1995DE40B3A /* TUIInputBar_Minimalist.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = TUIInputBar_Minimalist.h; sourceTree = ""; }; - EF1AE254E1202354B2AEA7DDA131FB61 /* LLAppInfo.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = LLAppInfo.h; path = LLDebugTool/Core/Component/AppInfo/LLAppInfo.h; sourceTree = ""; }; - EF2AEDAE9A213E867E8C5D7CFC957F67 /* GPBArray.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = GPBArray.h; path = objectivec/GPBArray.h; sourceTree = ""; }; - EF5B4DC8A9BAF7B6628BF677B9A547F0 /* LLLogFilterView.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = LLLogFilterView.m; path = LLDebugTool/Core/Component/Log/UserInterface/LLLogFilterView.m; sourceTree = ""; }; - EF7118D739E1BFA6377449B799E1496F /* NSMutableArray+AvoidCrash.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "NSMutableArray+AvoidCrash.m"; path = "AvoidCrash/NSMutableArray+AvoidCrash.m"; sourceTree = ""; }; - EF74891611A81F7F87DB08B77687F25D /* LLAppInfoViewController.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = LLAppInfoViewController.m; path = LLDebugTool/Core/Component/AppInfo/UserInterface/LLAppInfoViewController.m; sourceTree = ""; }; - EF9533E814FCEB3B5AA9A96BEFB6E65C /* LLFilterLabelModel.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = LLFilterLabelModel.h; path = LLDebugTool/Core/Others/CommonUI/View/FilterView/LLFilterLabelModel.h; sourceTree = ""; }; - EFE5DE49CF763F91F46159B7E1C1BAF3 /* rescaler_utils.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = rescaler_utils.h; path = src/utils/rescaler_utils.h; sourceTree = ""; }; + EEDFB1859D92A1C8BAE471FFE88FE3E2 /* AlipaySDK-iOS.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "AlipaySDK-iOS.debug.xcconfig"; sourceTree = ""; }; + EEE5459E155526DC93D8227F979698F9 /* SVGAAudioLayer.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SVGAAudioLayer.m; path = Source/SVGAAudioLayer.m; sourceTree = ""; }; + EEEC6F5B7A994FE6A18E789BF0CD0ADE /* RACTuple.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = RACTuple.m; path = ReactiveObjC/RACTuple.m; sourceTree = ""; }; + EF1815A55EB691FEA620B8DC19152869 /* LLAnnotation.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = LLAnnotation.h; path = LLDebugTool/Core/Component/Location/UserInterface/LLAnnotation.h; sourceTree = ""; }; + EF2443999210E3224CA08A2708F3C289 /* YBIBImageCell+Internal.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "YBIBImageCell+Internal.h"; path = "YBImageBrowser/Image/YBIBImageCell+Internal.h"; sourceTree = ""; }; + EF4E32640150F200E41FBF0CA7EDF0E2 /* OSSDeleteMultipleObjectsRequest.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = OSSDeleteMultipleObjectsRequest.h; path = AliyunOSSSDK/OSSDeleteMultipleObjectsRequest.h; sourceTree = ""; }; + EF5C2676A38389D598A3D54F2B114464 /* NSNotificationCenter+YYAdd.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "NSNotificationCenter+YYAdd.m"; path = "YYCategories/Foundation/NSNotificationCenter+YYAdd.m"; sourceTree = ""; }; + EF5F21B0EC41988D0A2186EFD3843326 /* LLLogWindow.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = LLLogWindow.m; path = LLDebugTool/Core/Component/Log/UserInterface/LLLogWindow.m; sourceTree = ""; }; + EF7AA64092BF7E400C6F8FDF6A189D50 /* MQTTTransport.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = MQTTTransport.m; path = MQTTClient/MQTTClient/MQTTTransport.m; sourceTree = ""; }; + EF8AFD9D3F89C4C873F22404656CF56A /* NSLayoutConstraint+MASDebugAdditions.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "NSLayoutConstraint+MASDebugAdditions.m"; path = "Masonry/NSLayoutConstraint+MASDebugAdditions.m"; sourceTree = ""; }; + EF92451F14AB433813C2B79BB991ED8D /* NSDate+QCloudComapre.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "NSDate+QCloudComapre.h"; path = "QCloudCore/Classes/Base/DateTools/NSDate+QCloudComapre.h"; sourceTree = ""; }; + EF93B3640C08C144E0F52756EA96E8D3 /* SDWeakProxy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDWeakProxy.m; path = SDWebImage/Private/SDWeakProxy.m; sourceTree = ""; }; + EF94E42A71EF4BB4F94BCCC59FFDC67F /* LLScreenshotHelper.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = LLScreenshotHelper.m; path = LLDebugTool/Core/Component/Screenshot/Function/LLScreenshotHelper.m; sourceTree = ""; }; + EFAC5EB3D12F2A178A8DE0F6B3B4A459 /* GCDTimer.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = GCDTimer.h; path = MQTTClient/MQTTClient/GCDTimer.h; sourceTree = ""; }; + EFC41CE30D06937C22B7E27C45B27871 /* KaraokeView.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = KaraokeView.swift; path = AgoraLyricsScore/Class/KaraokeView.swift; sourceTree = ""; }; + EFDD11B1942A5E083A3D061C40A52985 /* ResourceBundle-BRPickerView.Privacy-BRPickerView-Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "ResourceBundle-BRPickerView.Privacy-BRPickerView-Info.plist"; sourceTree = ""; }; EFE9FBC8AF21EE2EC58B8D593E34DCCA /* TUIChatConfig_Classic.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = TUIChatConfig_Classic.h; sourceTree = ""; }; - EFF2CBEDDDEF3A94EFB94079955A8A44 /* YYImage.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.module; path = YYImage.modulemap; sourceTree = ""; }; - F000F0FF4F0689C6D6ED21A7BCD32178 /* SDWebImageWebPCoderDefine.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDWebImageWebPCoderDefine.h; path = SDWebImageWebPCoder/Classes/SDWebImageWebPCoderDefine.h; sourceTree = ""; }; - F007B2FA752918FA4152FCA7ABAFB0DA /* OSSGetObjectTaggingRequest.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = OSSGetObjectTaggingRequest.m; path = AliyunOSSSDK/OSSGetObjectTaggingRequest.m; sourceTree = ""; }; + EFF85A1204CF96BC0A1D721E19FB41E8 /* QCloudUniversalPath.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = QCloudUniversalPath.m; path = QCloudCore/Classes/Base/PathUtilities/QCloudUniversalPath.m; sourceTree = ""; }; + F009AC257668424C615751C2506B3977 /* LLNetworkComponent.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = LLNetworkComponent.m; path = LLDebugTool/Core/Component/Network/LLNetworkComponent.m; sourceTree = ""; }; F00D49623A9DB6BF88121D1D25391F36 /* TUIChat */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; name = TUIChat; path = TUIChat.framework; sourceTree = BUILT_PRODUCTS_DIR; }; F014CF6E9AC36DF1BD11D71E1CA51E3A /* TUIReferenceMessageCell_Minimalist.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = TUIReferenceMessageCell_Minimalist.h; sourceTree = ""; }; + F01E1F08282F3394FD18192811AC5C49 /* MJRefreshAutoStateFooter.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = MJRefreshAutoStateFooter.m; path = MJRefresh/Custom/Footer/Auto/MJRefreshAutoStateFooter.m; sourceTree = ""; }; + F0257AE55D55EF4A62C2C9C57A1DD59C /* LLWindowManager+Html.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "LLWindowManager+Html.m"; path = "LLDebugTool/Core/Component/Html/UserInterface/LLWindowManager+Html.m"; sourceTree = ""; }; F025B9C3846DE7CDEB581BE526815DBE /* TUIChat.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = TUIChat.debug.xcconfig; sourceTree = ""; }; - F0477B3BAFFDA16CA822D19B6277CDCF /* YBIBImageCache+Internal.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "YBIBImageCache+Internal.h"; path = "YBImageBrowser/Image/YBIBImageCache+Internal.h"; sourceTree = ""; }; - F0569AB649FAD1979AAD043A9886A4D5 /* Algorithm.c */ = {isa = PBXFileReference; includeInIndex = 1; name = Algorithm.c; path = AgoraLyricsScore/Class/Al/Algorithm.c; sourceTree = ""; }; + F0351BD5F213FBC346E2339F8043EEA4 /* NSArray+MASShorthandAdditions.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "NSArray+MASShorthandAdditions.h"; path = "Masonry/NSArray+MASShorthandAdditions.h"; sourceTree = ""; }; + F04970F3062613CE53F3F40284480EAE /* YYImage.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = YYImage.h; path = YYImage/YYImage.h; sourceTree = ""; }; + F04A5F532E257E759188C8E6601BE06B /* RACSignal+Operations.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "RACSignal+Operations.m"; path = "ReactiveObjC/RACSignal+Operations.m"; sourceTree = ""; }; + F04CF9EF12EF7BB8300A657B6133FD01 /* IQKeyboardManager-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "IQKeyboardManager-dummy.m"; sourceTree = ""; }; + F058E186A9B1E7A156E129CA182B1BC4 /* YYCache-Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "YYCache-Info.plist"; sourceTree = ""; }; F05D544BFAD6DEB17A077304C93B769B /* TUIGroupNoticeDataProvider.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = TUIGroupNoticeDataProvider.h; sourceTree = ""; }; - F06667D75722BD057EAF6D8065A3FFB9 /* RACSignal+Operations.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "RACSignal+Operations.h"; path = "ReactiveObjC/RACSignal+Operations.h"; sourceTree = ""; }; - F074D164137E6D27FB78D7B045BE04D5 /* UIView+LL_Utils.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "UIView+LL_Utils.m"; path = "LLDebugTool/Core/Others/Category/UIView/UIView+LL_Utils.m"; sourceTree = ""; }; - F0843D21283D9AAC0F3F523506980FDD /* NSInputStream+LL_Network.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "NSInputStream+LL_Network.h"; path = "LLDebugTool/Core/Component/Network/Function/NSInputStream/NSInputStream+LL_Network.h"; sourceTree = ""; }; + F0702474156FAB94A2529B7D779D0F44 /* QCloudHTTPRequestDelegate.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = QCloudHTTPRequestDelegate.h; path = QCloudCore/Classes/Base/QCLOUDRestNet/CoreRequest/QCloudHTTPRequestDelegate.h; sourceTree = ""; }; + F08DF978703E06D1D38711DEEC2B625F /* OSSURLRequestRetryHandler.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = OSSURLRequestRetryHandler.h; path = AliyunOSSSDK/OSSURLRequestRetryHandler.h; sourceTree = ""; }; F099CABCF077B9E89AF98C6B90C82F38 /* TUIReplyPreviewData.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = TUIReplyPreviewData.h; sourceTree = ""; }; - F0A51593FDDFCC3278387F39D83E39FB /* LLFilterOtherView.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = LLFilterOtherView.m; path = LLDebugTool/Core/Others/CommonUI/View/FilterView/LLFilterOtherView.m; sourceTree = ""; }; F0A524978AB3CFE61AA5CFF81EDB42CD /* TUIChatCallingDataProvider.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = TUIChatCallingDataProvider.m; sourceTree = ""; }; - F0BD28A56BD17B68BBF47CCDF2ABA003 /* huffman_utils.c */ = {isa = PBXFileReference; includeInIndex = 1; name = huffman_utils.c; path = src/utils/huffman_utils.c; sourceTree = ""; }; - F0C9267BF045030E45DFA2A950EE55AC /* YYTextLine.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = YYTextLine.m; path = YYText/Component/YYTextLine.m; sourceTree = ""; }; - F0D419308728BF1A25C72B89B70F2493 /* LLHtmlComponent.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = LLHtmlComponent.h; path = LLDebugTool/Core/Component/Html/LLHtmlComponent.h; sourceTree = ""; }; - F0D675ED5B636CD21AF04128A3BBC8F8 /* aos_crc64.c */ = {isa = PBXFileReference; includeInIndex = 1; name = aos_crc64.c; path = AliyunOSSSDK/aos_crc64.c; sourceTree = ""; }; - F0EB163B760EC1D361AAEBDEE607BDA1 /* TIMPush.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = TIMPush.release.xcconfig; sourceTree = ""; }; + F0AA041A13B213C33E04A62038E6212E /* YYTextEffectWindow.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = YYTextEffectWindow.m; path = YYText/Component/YYTextEffectWindow.m; sourceTree = ""; }; + F0AD291BD2180AE0EEB6B5E15812E68F /* YBIBImageData.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = YBIBImageData.h; path = YBImageBrowser/Image/YBIBImageData.h; sourceTree = ""; }; + F0ADA66445721AE5087E8E87CCCE5940 /* QCloudNetworkingAPI.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = QCloudNetworkingAPI.h; path = QCloudCore/Classes/Base/QCLOUDRestNet/API/QCloudNetworkingAPI.h; sourceTree = ""; }; + F0DBC4CCC06B3923039F6C794F6CF1A6 /* quant_enc.c */ = {isa = PBXFileReference; includeInIndex = 1; name = quant_enc.c; path = src/enc/quant_enc.c; sourceTree = ""; }; + F0DF13AE6AA0FAE9BB59FDD5F4A6F9AF /* Minizip.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = Minizip.h; path = Zip/minizip/include/Minizip.h; sourceTree = ""; }; + F0E672C03917739DF51EEFBC4528E5E9 /* MJRefreshGifHeader.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = MJRefreshGifHeader.m; path = MJRefresh/Custom/Header/MJRefreshGifHeader.m; sourceTree = ""; }; + F0EE9EA288C0E4AB8E7DC82868ED94B6 /* YYTextSelectionView.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = YYTextSelectionView.m; path = YYText/Component/YYTextSelectionView.m; sourceTree = ""; }; F1081D72699581714977A28594C061DA /* TUIFileReplyQuoteViewData.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = TUIFileReplyQuoteViewData.m; sourceTree = ""; }; - F1225E12CF790B08F1E102F995AD8080 /* LLWidgetBorder.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = LLWidgetBorder.h; path = LLDebugTool/Core/Component/WidgetBorder/LLWidgetBorder.h; sourceTree = ""; }; + F117D94CCC6911AB906A6757E7290E6A /* YYImage.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = YYImage.debug.xcconfig; sourceTree = ""; }; + F12200647DF4175E456B21DAFBCDDBF8 /* ResourceBundle-TXIMSDK_Plus_iOS_XCFramework_Privacy-TXIMSDK_Plus_iOS_XCFramework-Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "ResourceBundle-TXIMSDK_Plus_iOS_XCFramework_Privacy-TXIMSDK_Plus_iOS_XCFramework-Info.plist"; sourceTree = ""; }; F12E37CD50A416455E5182803128EF91 /* TUIOrderCell.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = TUIOrderCell.m; sourceTree = ""; }; - F12FBE6E6A6063CB1B3C137B5151A2C6 /* SDWeakProxy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDWeakProxy.m; path = SDWebImage/Private/SDWeakProxy.m; sourceTree = ""; }; - F131D70A08DA7A1945458B96F12F0165 /* Minizip.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = Minizip.h; path = Zip/minizip/include/Minizip.h; sourceTree = ""; }; - F14BBAA787AE34E19292BCB584EF6869 /* GPBCodedInputStream_PackagePrivate.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = GPBCodedInputStream_PackagePrivate.h; path = objectivec/GPBCodedInputStream_PackagePrivate.h; sourceTree = ""; }; - F172B1B59ACACDE64DE3AE908EC171B0 /* QGAnimatedImageDecodeManager.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = QGAnimatedImageDecodeManager.h; path = iOS/QGVAPlayer/QGVAPlayer/Classes/Controllers/QGAnimatedImageDecodeManager.h; sourceTree = ""; }; - F18BF9AED1CFB6B7419D5546E97CE50B /* AgoraVideoSegmentationExtension.xcframework */ = {isa = PBXFileReference; includeInIndex = 1; path = AgoraVideoSegmentationExtension.xcframework; sourceTree = ""; }; + F12F3F34A7DE95B22A6457237D49AE54 /* thread_utils.c */ = {isa = PBXFileReference; includeInIndex = 1; name = thread_utils.c; path = src/utils/thread_utils.c; sourceTree = ""; }; + F13A129258E41B3295F00EFE8D23CCD3 /* UIBarButtonItem+RACCommandSupport.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "UIBarButtonItem+RACCommandSupport.m"; path = "ReactiveObjC/UIBarButtonItem+RACCommandSupport.m"; sourceTree = ""; }; + F13F34A3737416B4D351BFA90163B681 /* YYTextKeyboardManager.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = YYTextKeyboardManager.m; path = YYText/Component/YYTextKeyboardManager.m; sourceTree = ""; }; + F13FE25C055C994285E63FB9F737E571 /* OSSUtil.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = OSSUtil.m; path = AliyunOSSSDK/OSSUtil.m; sourceTree = ""; }; + F151C770BFB3BBC0A554E6D2997E8742 /* NSURLConnection+RACSupport.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "NSURLConnection+RACSupport.m"; path = "ReactiveObjC/NSURLConnection+RACSupport.m"; sourceTree = ""; }; + F15F91872233EE8EE0F3E443277151FD /* webpi_dec.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = webpi_dec.h; path = src/dec/webpi_dec.h; sourceTree = ""; }; + F16D84E1CE2EB0590049C86CD5FF0ADE /* QCloudUploadObjectResult.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = QCloudUploadObjectResult.h; path = QCloudCOSXML/Classes/Transfer/model/QCloudUploadObjectResult.h; sourceTree = ""; }; F191B112D9A647ADDE823C7B989E1DAE /* TUICaptureVideoPreviewView.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = TUICaptureVideoPreviewView.h; sourceTree = ""; }; - F1A2452F98D3EE9BBF2B5A6B11C53616 /* yuv.c */ = {isa = PBXFileReference; includeInIndex = 1; name = yuv.c; path = src/dsp/yuv.c; sourceTree = ""; }; + F19844E57C069F103596F7D39BD46525 /* QGVAPlayer.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = QGVAPlayer.h; path = iOS/QGVAPlayer/QGVAPlayer/Classes/QGVAPlayer.h; sourceTree = ""; }; F1A4111F17FF72D844D2BAA264E4F805 /* TUISecondConfirm.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = TUISecondConfirm.h; sourceTree = ""; }; - F1D17856669D0FEB8191B498F40531B9 /* lossless_neon.c */ = {isa = PBXFileReference; includeInIndex = 1; name = lossless_neon.c; path = src/dsp/lossless_neon.c; sourceTree = ""; }; - F1D2B99C73E8D762A9AB1CBA3A98A3EE /* NSString+RACSequenceAdditions.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "NSString+RACSequenceAdditions.h"; path = "ReactiveObjC/NSString+RACSequenceAdditions.h"; sourceTree = ""; }; - F1D8CD4A6EF4FE9FB9EE108598849301 /* RACErrorSignal.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = RACErrorSignal.h; path = ReactiveObjC/RACErrorSignal.h; sourceTree = ""; }; - F1DF7D94F28198BA10BCBE2B495B2FDC /* LLRouter.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = LLRouter.h; path = LLDebugTool/Core/Others/Router/LLRouter.h; sourceTree = ""; }; + F1A541AEECDD4A5D89130BB48241344A /* QGMP4Parser.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = QGMP4Parser.m; path = iOS/QGVAPlayer/QGVAPlayer/Classes/MP4Parser/QGMP4Parser.m; sourceTree = ""; }; + F1AFDF65630C82C9602A85EC64FA9479 /* TZAssetModel.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = TZAssetModel.h; path = TZImagePickerController/TZImagePickerController/TZAssetModel.h; sourceTree = ""; }; + F1B7927F6989CFB987810F4C0B4BF875 /* LLCrashWindow.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = LLCrashWindow.h; path = LLDebugTool/Core/Component/Crash/UserInterface/LLCrashWindow.h; sourceTree = ""; }; F1EEED01BE9023F1C663EE34510B3880 /* TUIConfig_Minimalist.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = TUIConfig_Minimalist.m; sourceTree = ""; }; + F1FF064C40D7D723E9880B09ED29008D /* SDImageLoadersManager.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDImageLoadersManager.h; path = SDWebImage/Core/SDImageLoadersManager.h; sourceTree = ""; }; + F204C8E9145F57163F6EE85A499EA11A /* aos_crc64.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = aos_crc64.h; path = AliyunOSSSDK/aos_crc64.h; sourceTree = ""; }; + F213F69EA7F5CBCD3F22BDCFC5408A46 /* QGMP4FrameHWDecoder.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = QGMP4FrameHWDecoder.m; path = iOS/QGVAPlayer/QGVAPlayer/Classes/Controllers/Decoders/QGMP4FrameHWDecoder.m; sourceTree = ""; }; F21C50FB7018219CC9E26F2802E81D76 /* TUIBubbleMessageCell_Minimalist.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = TUIBubbleMessageCell_Minimalist.m; sourceTree = ""; }; - F2212D5CB880E70DE3D1030A08CD30A9 /* muxinternal.c */ = {isa = PBXFileReference; includeInIndex = 1; name = muxinternal.c; path = src/mux/muxinternal.c; sourceTree = ""; }; - F22C56B3D303A4D4DE652354074431CA /* RACGroupedSignal.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = RACGroupedSignal.m; path = ReactiveObjC/RACGroupedSignal.m; sourceTree = ""; }; - F244481D2BD70CA6DEE4F0A5D8891CA2 /* UIImage+ExtendedCacheData.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "UIImage+ExtendedCacheData.h"; path = "SDWebImage/Core/UIImage+ExtendedCacheData.h"; sourceTree = ""; }; - F24DA3D31FC3941298E3AE46B6C6B726 /* TZLocationManager.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = TZLocationManager.h; path = TZImagePickerController/Location/TZLocationManager.h; sourceTree = ""; }; - F25CAC6CD00ADFF0B9EF930622712103 /* RACQueueScheduler+Subclass.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "RACQueueScheduler+Subclass.h"; path = "ReactiveObjC/RACQueueScheduler+Subclass.h"; sourceTree = ""; }; - F280EF245536DF1D03450F4AD1895B9C /* PitchParser.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = PitchParser.swift; path = AgoraLyricsScore/Class/Other/PitchParser.swift; sourceTree = ""; }; - F297C683DFC094C1BAC7D0FC3DAF2F5C /* quant_levels_utils.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = quant_levels_utils.h; path = src/utils/quant_levels_utils.h; sourceTree = ""; }; - F29E02DF7E8B14A840107078E68F9346 /* TAAbstractDotView.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = TAAbstractDotView.h; path = SDCycleScrollView/Lib/SDCycleScrollView/PageControl/TAAbstractDotView.h; sourceTree = ""; }; - F2AFB8155C88CB1513B0A52BC47AF899 /* YYImage-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "YYImage-dummy.m"; sourceTree = ""; }; - F2B5FD56E03155516A6FD232CD54E736 /* MKAnnotationView+RACSignalSupport.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "MKAnnotationView+RACSignalSupport.m"; path = "ReactiveObjC/MKAnnotationView+RACSignalSupport.m"; sourceTree = ""; }; + F22ED9F84F9FF9D560A293ECEF669F61 /* UIImage+MemoryCacheCost.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "UIImage+MemoryCacheCost.m"; path = "SDWebImage/Core/UIImage+MemoryCacheCost.m"; sourceTree = ""; }; + F252254B87C079885B1E5BCD33FD7953 /* Masonry-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "Masonry-umbrella.h"; sourceTree = ""; }; + F25A23DB19B57F2B620D4342E3BC4F17 /* JXCategoryTitleVerticalZoomCell.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = JXCategoryTitleVerticalZoomCell.m; path = Sources/VerticalZoomTitle/JXCategoryTitleVerticalZoomCell.m; sourceTree = ""; }; + F28FCFD7EF813D25B30D12F7E698FB24 /* LLAppInfoWindow.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = LLAppInfoWindow.h; path = LLDebugTool/Core/Component/AppInfo/UserInterface/LLAppInfoWindow.h; sourceTree = ""; }; + F2AC53F6F4586A35D3FFFF1BDB6D871E /* OSSDeleteMultipleObjectsResult.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = OSSDeleteMultipleObjectsResult.h; path = AliyunOSSSDK/OSSDeleteMultipleObjectsResult.h; sourceTree = ""; }; + F2B65964423B4DEC94B009452F7A3F1B /* ScoringMachine+DataHandle.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "ScoringMachine+DataHandle.swift"; path = "AgoraLyricsScore/Class/Scoring/ScoringMachine/ScoringMachine+DataHandle.swift"; sourceTree = ""; }; + F2BAC07911A34060DCC9F62FEEA390BF /* UIView+YYText.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "UIView+YYText.h"; path = "YYText/Utility/UIView+YYText.h"; sourceTree = ""; }; + F2CA35F782DD82F3F4E47B1C834CB783 /* NSDictionary+RACSequenceAdditions.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "NSDictionary+RACSequenceAdditions.m"; path = "ReactiveObjC/NSDictionary+RACSequenceAdditions.m"; sourceTree = ""; }; + F2D15662858FD437C6A400E9069E0C17 /* YBImageBrowser-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "YBImageBrowser-umbrella.h"; sourceTree = ""; }; + F2DC47CB9B03DC306718A9641398E670 /* QCloudCOSXMLEndPoint.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = QCloudCOSXMLEndPoint.h; path = QCloudCOSXML/Classes/Base/QCloudCOSXMLEndPoint.h; sourceTree = ""; }; + F2DDDFC9373673CC8F43300A99610530 /* PitchParser.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = PitchParser.swift; path = AgoraLyricsScore/Class/Other/PitchParser.swift; sourceTree = ""; }; F2E04D11B4BC39BF25952C1A11B98A52 /* PrivacyInfo.xcprivacy */ = {isa = PBXFileReference; includeInIndex = 1; name = PrivacyInfo.xcprivacy; path = Resources/PrivacyInfo.xcprivacy; sourceTree = ""; }; - F2F46C5C8F92C07FBF6A90CC3C4E9A65 /* UIButton+WebCache.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "UIButton+WebCache.m"; path = "SDWebImage/Core/UIButton+WebCache.m"; sourceTree = ""; }; - F31E5EBBD12D52E630D943496A9151D0 /* CALayer+YYAdd.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "CALayer+YYAdd.m"; path = "YYCategories/Quartz/CALayer+YYAdd.m"; sourceTree = ""; }; + F2FA8749876555B817646E49DEB0FBBE /* QCloudGetObjectRequest+Custom.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "QCloudGetObjectRequest+Custom.m"; path = "QCloudCOSXML/Classes/Transfer/request/QCloudGetObjectRequest+Custom.m"; sourceTree = ""; }; + F3238A7705973F5D24304E387D6646F4 /* MJRefreshBackGifFooter.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = MJRefreshBackGifFooter.m; path = MJRefresh/Custom/Footer/Back/MJRefreshBackGifFooter.m; sourceTree = ""; }; F34ED37CCCFB96877F7C3DB719E3B5B8 /* UIView+TUILayout.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "UIView+TUILayout.m"; sourceTree = ""; }; - F351B6ED185FE752A207BDD64F9ECE9C /* MJRefreshBackNormalFooter.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = MJRefreshBackNormalFooter.m; path = MJRefresh/Custom/Footer/Back/MJRefreshBackNormalFooter.m; sourceTree = ""; }; - F372B39EE831B089CBFC2E8A71C0AE92 /* YYImage.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = YYImage.release.xcconfig; sourceTree = ""; }; + F3739706ADBC95382D973991D343B376 /* Bugly.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = Bugly.release.xcconfig; sourceTree = ""; }; F386B586F40CECF14B9D7FD3C6A1BC9C /* TUIEmojiMeditorProtocolProvider.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = TUIEmojiMeditorProtocolProvider.m; sourceTree = ""; }; F39FB78955E98B67315B93BAD487EA3D /* TUIVideoCollectionCell_Minimalist.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = TUIVideoCollectionCell_Minimalist.h; sourceTree = ""; }; + F3A7D09DD3FE09844CADECC5ED7EB147 /* OSSGetObjectTaggingResult.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = OSSGetObjectTaggingResult.h; path = AliyunOSSSDK/OSSGetObjectTaggingResult.h; sourceTree = ""; }; + F3ACCE4A9824FD6D2834081E621B653D /* Masonry.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = Masonry.h; path = Masonry/Masonry.h; sourceTree = ""; }; F3BF8AEF59CB21D843D0550C284FBED5 /* TUIImageCollectionCell_Minimalist.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = TUIImageCollectionCell_Minimalist.h; sourceTree = ""; }; - F3FD7DBCFAAD619E4C1CFD8A572F0FD1 /* LLRulerViewController.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = LLRulerViewController.m; path = LLDebugTool/Core/Component/Ruler/UserInterface/LLRulerViewController.m; sourceTree = ""; }; + F3BFBA7BD94C931B80A10837F5F4A10A /* UIResponder+LL_Utils.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "UIResponder+LL_Utils.m"; path = "LLDebugTool/Core/Others/Category/UIResponder/UIResponder+LL_Utils.m"; sourceTree = ""; }; + F3C26B5FE38E1E91BCCB9B5BE6270886 /* LLRouter+Screenshot.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "LLRouter+Screenshot.m"; path = "LLDebugTool/Core/Others/Router/LLRouter+Screenshot.m"; sourceTree = ""; }; + F3C4F65C4B3175EE439B83B4E00B7FFC /* LLFilterLabelCell.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = LLFilterLabelCell.m; path = LLDebugTool/Core/Others/CommonUI/View/FilterView/LLFilterLabelCell.m; sourceTree = ""; }; + F3EC070A45B19821425FB4FC62B2B342 /* TZImageRequestOperation.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = TZImageRequestOperation.h; path = TZImagePickerController/TZImagePickerController/TZImageRequestOperation.h; sourceTree = ""; }; F4077AC83D41ACA6D4A53F6E2411189C /* TUIEvaluationCell_Minimalist.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = TUIEvaluationCell_Minimalist.m; sourceTree = ""; }; - F4083D8A7E45E15865BE5803DE193294 /* JXCategoryView-Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "JXCategoryView-Info.plist"; sourceTree = ""; }; + F41DC36374C12FD0B41A9BD33F9A414F /* JXCategoryIndicatorDotLineView.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = JXCategoryIndicatorDotLineView.h; path = Sources/Indicator/IndicatorViews/JXCategoryIndicatorDotLineView.h; sourceTree = ""; }; F422FF5E8289A7F608A9000EB557C218 /* TIMCommon.bundle */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = "wrapper.plug-in"; name = TIMCommon.bundle; path = Resources/TIMCommon.bundle; sourceTree = ""; }; - F428149B2FF2455DA70284F8BEB2AB92 /* UIBarButtonItem+RACCommandSupport.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "UIBarButtonItem+RACCommandSupport.h"; path = "ReactiveObjC/UIBarButtonItem+RACCommandSupport.h"; sourceTree = ""; }; - F46BF857445A1CFD7B410F51E409165C /* SDCycleScrollView-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "SDCycleScrollView-prefix.pch"; sourceTree = ""; }; - F51747FBA8E81534E5E9116C185D4531 /* LLHierarchyWindow.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = LLHierarchyWindow.m; path = LLDebugTool/Core/Component/Hierarchy/UserInterface/LLHierarchyWindow.m; sourceTree = ""; }; - F51C16B113C9721356EEFBC10909541D /* YYCache.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = YYCache.h; path = YYCache/YYCache.h; sourceTree = ""; }; - F52A7A1A05E4871CB0F2B150C3737E05 /* TZImageManager.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = TZImageManager.h; path = TZImagePickerController/TZImagePickerController/TZImageManager.h; sourceTree = ""; }; - F5310451521A581CD74E4B3F0E27D2F7 /* LLSettingWindow.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = LLSettingWindow.h; path = LLDebugTool/Core/Others/Component/Setting/UserInterface/LLSettingWindow.h; sourceTree = ""; }; - F53E475EA8522DD60B3B44292EE1FBE1 /* GPBCodedInputStream.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = GPBCodedInputStream.m; path = objectivec/GPBCodedInputStream.m; sourceTree = ""; }; - F55B36FB4DC1F24B10A717017D0834CA /* LLComponentWindow.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = LLComponentWindow.h; path = LLDebugTool/Core/Others/CommonUI/Window/ComponentWindow/LLComponentWindow.h; sourceTree = ""; }; + F431D2A564F4F18F222226A9471AB5EB /* ioapi.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = ioapi.h; path = Zip/minizip/include/ioapi.h; sourceTree = ""; }; + F44BA258755276F28D07763771D72A11 /* QCloudMultipartInfo.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = QCloudMultipartInfo.h; path = QCloudCOSXML/Classes/Transfer/model/QCloudMultipartInfo.h; sourceTree = ""; }; + F44EE9216564BDC2AFAFA74D91F767A6 /* QCloudUniversalPath.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = QCloudUniversalPath.h; path = QCloudCore/Classes/Base/PathUtilities/QCloudUniversalPath.h; sourceTree = ""; }; + F45376A94E516AF1D7060549269A6A5A /* OSSIPv6PrefixResolver.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = OSSIPv6PrefixResolver.h; path = AliyunOSSSDK/OSSIPv6/OSSIPv6PrefixResolver.h; sourceTree = ""; }; + F45A4E627872ED9122F86308D2FE0D02 /* MQTTSessionSynchron.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = MQTTSessionSynchron.h; path = MQTTClient/MQTTClient/MQTTSessionSynchron.h; sourceTree = ""; }; + F461F4FAC8BB19506C6E56A2D8F8EAD1 /* LLScreenshotImageView.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = LLScreenshotImageView.h; path = LLDebugTool/Core/Component/Screenshot/UserInterface/LLScreenshotImageView.h; sourceTree = ""; }; + F470A925C5094BD40B4014B0102B5721 /* QCloudPutObjectCopyRequest.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = QCloudPutObjectCopyRequest.m; path = QCloudCOSXML/Classes/Transfer/request/QCloudPutObjectCopyRequest.m; sourceTree = ""; }; + F4863A97544D4F1132BE48855070A653 /* ResourceBundle-SDWebImage-SDWebImage-Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "ResourceBundle-SDWebImage-SDWebImage-Info.plist"; sourceTree = ""; }; + F4BFE503E4A73ED6B5425D791B013C99 /* OSSRestoreObjectRequest.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = OSSRestoreObjectRequest.h; path = AliyunOSSSDK/OSSRestoreObjectRequest.h; sourceTree = ""; }; + F4C56853B389CB4CC1EE2AFC7D9EB23C /* enc_neon.c */ = {isa = PBXFileReference; includeInIndex = 1; name = enc_neon.c; path = src/dsp/enc_neon.c; sourceTree = ""; }; + F4D3CF3A5AC1C97E056709D5B1B5C06E /* QCloudCustomLoggerOutput.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = QCloudCustomLoggerOutput.h; path = QCloudCore/Classes/Base/Logger/QCloudCustomLoggerOutput.h; sourceTree = ""; }; + F4D5EF3E9841636963E4EDDCDF6187F1 /* TZImagePickerController-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "TZImagePickerController-umbrella.h"; sourceTree = ""; }; + F4FFF0FF6448B5F686F6A48ABCC817D9 /* LLSettingManager.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = LLSettingManager.m; path = LLDebugTool/Core/Others/Manager/SettingManager/LLSettingManager.m; sourceTree = ""; }; + F500827AAC3CB2AC9F44844805366550 /* SDCycleScrollView.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = SDCycleScrollView.debug.xcconfig; sourceTree = ""; }; + F51481CE626E7B7B928CD7CF0704F580 /* SDDeviceHelper.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDDeviceHelper.m; path = SDWebImage/Private/SDDeviceHelper.m; sourceTree = ""; }; + F53F4D257FEC7DD3D89E1F3C3FA96244 /* RACSubject.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = RACSubject.m; path = ReactiveObjC/RACSubject.m; sourceTree = ""; }; + F56497042AE613CAC039F1626388B075 /* UIScrollView+MJRefresh.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "UIScrollView+MJRefresh.h"; path = "MJRefresh/UIScrollView+MJRefresh.h"; sourceTree = ""; }; F56972CA515823DC35C83AFBC7CC559D /* TUIBaseMessageController+ProtectedAPI.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "TUIBaseMessageController+ProtectedAPI.h"; sourceTree = ""; }; - F56A893F541C7B361D833E39B93D5939 /* LLWindowManager+Network.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "LLWindowManager+Network.m"; path = "LLDebugTool/Core/Component/Network/UserInterface/LLWindowManager+Network.m"; sourceTree = ""; }; - F5704A411736ACCF7E7E2DBBC9FBF3B9 /* MBProgressHUD.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = MBProgressHUD.debug.xcconfig; sourceTree = ""; }; - F57BACA3ED26B598E4855CAD9219E1D6 /* TZPhotoPickerController.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = TZPhotoPickerController.m; path = TZImagePickerController/TZImagePickerController/TZPhotoPickerController.m; sourceTree = ""; }; - F583AFD8550AFE5A75B6F18B49C123E9 /* QGMP4HWDFileInfo.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = QGMP4HWDFileInfo.m; path = iOS/QGVAPlayer/QGVAPlayer/Classes/Models/QGMP4HWDFileInfo.m; sourceTree = ""; }; - F5AC0E5E9040767274F7CCF8681677AF /* demux.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = demux.h; path = src/webp/demux.h; sourceTree = ""; }; - F5AFE27AA6DCC84ED5E9D0C15A91CB02 /* cost_enc.c */ = {isa = PBXFileReference; includeInIndex = 1; name = cost_enc.c; path = src/enc/cost_enc.c; sourceTree = ""; }; - F5C1AF703E379B65B318680A37DC3130 /* LLFilterDateView.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = LLFilterDateView.m; path = LLDebugTool/Core/Others/CommonUI/View/FilterView/LLFilterDateView.m; sourceTree = ""; }; - F5E0D7CFA90F41B7E780E830B75C583F /* picture_psnr_enc.c */ = {isa = PBXFileReference; includeInIndex = 1; name = picture_psnr_enc.c; path = src/enc/picture_psnr_enc.c; sourceTree = ""; }; - F633EFEF8E6221E6C3C59F0B44C7B1EC /* YYTextMagnifier.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = YYTextMagnifier.h; path = YYText/Component/YYTextMagnifier.h; sourceTree = ""; }; + F5894517989EB369276CA7F97CC83FC6 /* QCloudCOSXMLService+Transfer.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "QCloudCOSXMLService+Transfer.m"; path = "QCloudCOSXML/Classes/Transfer/QCloudCOSXMLService+Transfer.m"; sourceTree = ""; }; + F58EDA48BD1EE499F6329173868A906C /* LLMagnifierComponent.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = LLMagnifierComponent.m; path = LLDebugTool/Core/Component/Magnifier/LLMagnifierComponent.m; sourceTree = ""; }; + F58FF61B5A735120E41ED0DF5DB13E37 /* JXCategoryIndicatorParamsModel.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = JXCategoryIndicatorParamsModel.h; path = Sources/Common/JXCategoryIndicatorParamsModel.h; sourceTree = ""; }; + F5C402199A7C19DB70EF6165CC811725 /* LLFilterLabelModel.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = LLFilterLabelModel.h; path = LLDebugTool/Core/Others/CommonUI/View/FilterView/LLFilterLabelModel.h; sourceTree = ""; }; + F5F5F218E51C83DB84A07324371BD32B /* RACScheduler+Subclass.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "RACScheduler+Subclass.h"; path = "ReactiveObjC/RACScheduler+Subclass.h"; sourceTree = ""; }; + F61D1EE4A2BD6425C80377815250D878 /* QCloudInitiateMultipartUploadResult.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = QCloudInitiateMultipartUploadResult.m; path = QCloudCOSXML/Classes/Transfer/model/QCloudInitiateMultipartUploadResult.m; sourceTree = ""; }; + F61F788776C5F5D0C1B9B660F9A919DB /* QCloudCompleteMultipartUploadRequest.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = QCloudCompleteMultipartUploadRequest.m; path = QCloudCOSXML/Classes/Transfer/request/QCloudCompleteMultipartUploadRequest.m; sourceTree = ""; }; + F633B22245CDEE9BF987758E3B74BC62 /* Extensions.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Extensions.swift; path = AgoraLyricsScore/Class/Other/Extensions.swift; sourceTree = ""; }; + F64616BA34683CC79280A13D2EE0FBA6 /* Empty.pbobjc.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = Empty.pbobjc.h; path = objectivec/google/protobuf/Empty.pbobjc.h; sourceTree = ""; }; + F65463BD2CA100D855096EC0BC53C922 /* SDWebImageWebPCoder-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "SDWebImageWebPCoder-dummy.m"; sourceTree = ""; }; F65B7539720919DF74D8EAEA5FDFABFA /* TUIC2CChatViewController_Minimalist.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = TUIC2CChatViewController_Minimalist.m; sourceTree = ""; }; F65FCF6C53BCD8ACB2C35DAD514DA78C /* TUIFoldConversationListDataProvider.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = TUIFoldConversationListDataProvider.h; sourceTree = ""; }; - F660B5AE7DF73D1980AD5BC904ED7B98 /* ScoringMachine.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ScoringMachine.swift; path = AgoraLyricsScore/Class/Scoring/ScoringMachine/ScoringMachine.swift; sourceTree = ""; }; - F6633117218F5C9B51700A7513813FE7 /* UIRefreshControl+RACCommandSupport.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "UIRefreshControl+RACCommandSupport.h"; path = "ReactiveObjC/UIRefreshControl+RACCommandSupport.h"; sourceTree = ""; }; - F672B2747776908BD811039768BC3E30 /* UITextField+YYAdd.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "UITextField+YYAdd.m"; path = "YYCategories/UIKit/UITextField+YYAdd.m"; sourceTree = ""; }; + F668719FAAD4F0CA9C2A742EF2C74763 /* SDWebImage-Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "SDWebImage-Info.plist"; sourceTree = ""; }; F68CD5BD0D95502D7B9F4755DCBFD002 /* TUIMovieManager.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = TUIMovieManager.h; sourceTree = ""; }; - F6B7F4714982FE5F0A151F5539A5BA8C /* YYTextTransaction.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = YYTextTransaction.h; path = YYText/Utility/YYTextTransaction.h; sourceTree = ""; }; - F6C823FFFF8DC45B553CD41D517EF6F6 /* YYAnimatedImageView.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = YYAnimatedImageView.h; path = YYImage/YYAnimatedImageView.h; sourceTree = ""; }; - F6FE0B645B3D02D2EFD794BC6CF6269F /* NSObject+RACDeallocating.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "NSObject+RACDeallocating.h"; path = "ReactiveObjC/NSObject+RACDeallocating.h"; sourceTree = ""; }; - F712609A7530BD737F05E692B1B6EE0E /* SDInternalMacros.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDInternalMacros.h; path = SDWebImageWebPCoder/Private/SDInternalMacros.h; sourceTree = ""; }; + F6BA536F83EE19990C5ADB308021ACB8 /* JXPagerSmoothView.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = JXPagerSmoothView.m; path = Sources/JXPagerView/JXPagerSmoothView.m; sourceTree = ""; }; + F6C2D9118926E9DDF9259C614E34F096 /* SDImageCacheConfig.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDImageCacheConfig.m; path = SDWebImage/Core/SDImageCacheConfig.m; sourceTree = ""; }; + F6C4A98C4C710857DAA95E235C7EFC13 /* QCloudInitiateMultipartUploadResult.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = QCloudInitiateMultipartUploadResult.h; path = QCloudCOSXML/Classes/Transfer/model/QCloudInitiateMultipartUploadResult.h; sourceTree = ""; }; + F6DF0EBE007FB701E63CBADDE35A991C /* LLNetworkFilterView.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = LLNetworkFilterView.h; path = LLDebugTool/Core/Component/Network/UserInterface/LLNetworkFilterView.h; sourceTree = ""; }; + F6FCB1F49ED9AFE79B0EA48E701E8FB1 /* LLNetworkHelper.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = LLNetworkHelper.m; path = LLDebugTool/Core/Component/Network/Function/LLNetworkHelper.m; sourceTree = ""; }; + F701FC03FB82A9C98B2E1CD625E02B88 /* LLRouter+Screenshot.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "LLRouter+Screenshot.h"; path = "LLDebugTool/Core/Others/Router/LLRouter+Screenshot.h"; sourceTree = ""; }; + F7041DEF3DD898FD8DFBD1B29FE1A075 /* UITextField+RACSignalSupport.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "UITextField+RACSignalSupport.h"; path = "ReactiveObjC/UITextField+RACSignalSupport.h"; sourceTree = ""; }; + F7067B3B5F7C69DBCE90B6EC50BF1147 /* LLInfoView.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = LLInfoView.m; path = LLDebugTool/Core/Others/CommonUI/View/InfoView/LLInfoView.m; sourceTree = ""; }; F72A0DD575031488E86ADFFE85794378 /* TUIMessageMultiChooseView.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = TUIMessageMultiChooseView.m; sourceTree = ""; }; - F747EE137563FC39B2250916416D7F2D /* LLToastUtils.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = LLToastUtils.m; path = LLDebugTool/Core/Others/ToastUtils/LLToastUtils.m; sourceTree = ""; }; - F755AF5F80022FDE4DE647DD0770A0D1 /* UIDevice+VAPUtil.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "UIDevice+VAPUtil.m"; path = "iOS/QGVAPlayer/QGVAPlayer/Classes/Utils/Categorys/UIDevice+VAPUtil.m"; sourceTree = ""; }; - F75646AC5A9BF6AC37CFB3EF8368C481 /* mz_compat.c */ = {isa = PBXFileReference; includeInIndex = 1; name = mz_compat.c; path = SSZipArchive/minizip/mz_compat.c; sourceTree = ""; }; - F766644C58B096CE34504D0D218E0666 /* LLRouter+ShortCut.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "LLRouter+ShortCut.h"; path = "LLDebugTool/Core/Others/Router/LLRouter+ShortCut.h"; sourceTree = ""; }; + F73BA879E079E1A5AE0928F81B96C87F /* QCloudCore-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "QCloudCore-umbrella.h"; sourceTree = ""; }; + F7401CD28EFAD27F27D565659A105C93 /* QCloudCOSXMLUploadObjectRequest_Private.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = QCloudCOSXMLUploadObjectRequest_Private.h; path = QCloudCOSXML/Classes/Transfer/request/QCloudCOSXMLUploadObjectRequest_Private.h; sourceTree = ""; }; + F7657EC539A94C7F0E4F7742CB6A5D5C /* UIColor+YYAdd.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "UIColor+YYAdd.h"; path = "YYCategories/UIKit/UIColor+YYAdd.h"; sourceTree = ""; }; + F76842447A11E448C72A86F465DD0526 /* IQUITextFieldView+Additions.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "IQUITextFieldView+Additions.h"; path = "IQKeyboardManager/Categories/IQUITextFieldView+Additions.h"; sourceTree = ""; }; F777222FFBEEB0CE4650EE8A00938A60 /* Protobuf-Protobuf_Privacy */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; name = "Protobuf-Protobuf_Privacy"; path = Protobuf_Privacy.bundle; sourceTree = BUILT_PRODUCTS_DIR; }; - F77A98E3CEFCF74FDF4F7671F7B5C01F /* NSString+AvoidCrash.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "NSString+AvoidCrash.h"; path = "AvoidCrash/NSString+AvoidCrash.h"; sourceTree = ""; }; - F78A86D020E37CCAE2DC4D14B3FC09D6 /* NSSet+OSS.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "NSSet+OSS.m"; path = "AliyunOSSSDK/NSSet+OSS.m"; sourceTree = ""; }; - F7A3659F20415C8438246E3A6D607A15 /* LLFunctionComponent.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = LLFunctionComponent.h; path = LLDebugTool/Core/Others/Component/Function/LLFunctionComponent.h; sourceTree = ""; }; - F7A9D0E3B76FA3DFE606B56FE1A35962 /* UIImagePickerController+RACSignalSupport.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "UIImagePickerController+RACSignalSupport.m"; path = "ReactiveObjC/UIImagePickerController+RACSignalSupport.m"; sourceTree = ""; }; + F78D1CA4CC5CF7D9ED38292265B20B2B /* QCloudHeadObjectRequest.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = QCloudHeadObjectRequest.h; path = QCloudCOSXML/Classes/Transfer/request/QCloudHeadObjectRequest.h; sourceTree = ""; }; + F78F91426E25BBB81A7AA64843C1EE73 /* LLFunctionItemView.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = LLFunctionItemView.m; path = LLDebugTool/Core/Others/Component/Function/UserInterface/LLFunctionItemView.m; sourceTree = ""; }; F7B8D16F9833EEFEDEE96C81AD0D6406 /* TIMCommonModel.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = TIMCommonModel.m; sourceTree = ""; }; - F7BF61BF6F60EC757D465900BF3B663D /* TZVideoPlayerController.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = TZVideoPlayerController.m; path = TZImagePickerController/TZImagePickerController/TZVideoPlayerController.m; sourceTree = ""; }; - F7D1A9C4926FD986129B7C792ED74F62 /* NSEnumerator+RACSequenceAdditions.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "NSEnumerator+RACSequenceAdditions.h"; path = "ReactiveObjC/NSEnumerator+RACSequenceAdditions.h"; sourceTree = ""; }; - F7D704EA73182F83BFA8FC340F8FA287 /* RACUnarySequence.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = RACUnarySequence.h; path = ReactiveObjC/RACUnarySequence.h; sourceTree = ""; }; - F819E968F4ACA14B3567C60C45EC87DB /* LLTitleCellView.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = LLTitleCellView.m; path = LLDebugTool/Core/Others/CommonUI/View/CellView/LLTitleCellView.m; sourceTree = ""; }; - F822496FFAF9B7B6D982527883BC6117 /* NSInvocation+RACTypeParsing.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "NSInvocation+RACTypeParsing.m"; path = "ReactiveObjC/NSInvocation+RACTypeParsing.m"; sourceTree = ""; }; - F8291218D30FA82D71ED875822020EA3 /* UIView+LL_Utils.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "UIView+LL_Utils.h"; path = "LLDebugTool/Core/Others/Category/UIView/UIView+LL_Utils.h"; sourceTree = ""; }; - F83232DD6EB023866B86E5D84C8DC48F /* UIView+WebCacheState.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "UIView+WebCacheState.m"; path = "SDWebImage/Core/UIView+WebCacheState.m"; sourceTree = ""; }; - F853F1D51DACCB15646E344EC336589D /* mz_strm_os_posix.c */ = {isa = PBXFileReference; includeInIndex = 1; name = mz_strm_os_posix.c; path = SSZipArchive/minizip/mz_strm_os_posix.c; sourceTree = ""; }; - F861B1537BCE56A6BA93D8DE8FC5BC59 /* YYTextRubyAnnotation.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = YYTextRubyAnnotation.h; path = YYText/String/YYTextRubyAnnotation.h; sourceTree = ""; }; - F8646204A9026BCB3F61952D8EA7BE6A /* LLWindowManager+Crash.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "LLWindowManager+Crash.m"; path = "LLDebugTool/Core/Component/Crash/UserInterface/LLWindowManager+Crash.m"; sourceTree = ""; }; + F7B9D5023F66AD40897A3FACAF7EE9C2 /* YBIBInteractionProfile.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = YBIBInteractionProfile.m; path = YBImageBrowser/Image/YBIBInteractionProfile.m; sourceTree = ""; }; + F7CD16B080859402407183A99F69DEED /* YYImageCoder.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = YYImageCoder.h; path = YYImage/YYImageCoder.h; sourceTree = ""; }; + F7D90F07BFA68E516E547E373F65E4B7 /* SVGAVideoSpriteFrameEntity.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SVGAVideoSpriteFrameEntity.h; path = Source/SVGAVideoSpriteFrameEntity.h; sourceTree = ""; }; + F7DD294F8030E33AD9247C7EE8210884 /* QCloudConfiguration.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = QCloudConfiguration.m; path = QCloudCore/Classes/Base/QCloudClientBase/Service/QCloudConfiguration.m; sourceTree = ""; }; + F8039AB6180055886058E02816803572 /* QCloudSHAPart.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = QCloudSHAPart.m; path = QCloudCore/Classes/Base/QCLOUDFileUtils/QCloudSHAPart.m; sourceTree = ""; }; + F8181EDD3C12ED0FF3835E32FCCC6261 /* dec_msa.c */ = {isa = PBXFileReference; includeInIndex = 1; name = dec_msa.c; path = src/dsp/dec_msa.c; sourceTree = ""; }; + F852A499CE096A863C3E81EC3F590D72 /* BRBaseView.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = BRBaseView.h; path = BRPickerView/Deprecated/Base/BRBaseView.h; sourceTree = ""; }; + F879360912F8C4F6C238888A531D504D /* YBIBToastView.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = YBIBToastView.m; path = YBImageBrowser/AuxiliaryView/YBIBToastView.m; sourceTree = ""; }; F87F01122654A008DC24C105C6C589AC /* TUIImageMessageCellData.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = TUIImageMessageCellData.m; sourceTree = ""; }; F8879DB9AD3F9A8F85D8C38EC2024D15 /* TUIChat-TUIChat_Privacy */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; name = "TUIChat-TUIChat_Privacy"; path = TUIChat_Privacy.bundle; sourceTree = BUILT_PRODUCTS_DIR; }; - F8BC2B200445EF43137B596CD0CE9B46 /* MQTTClient.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = MQTTClient.release.xcconfig; sourceTree = ""; }; - F8CF4B494678B12F79C894D22D4AE3A7 /* OSSResult.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = OSSResult.m; path = AliyunOSSSDK/OSSResult.m; sourceTree = ""; }; - F8D08950769F826D68FF60B4646903CC /* ReconnectTimer.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = ReconnectTimer.h; path = MQTTClient/MQTTClient/ReconnectTimer.h; sourceTree = ""; }; - F8DC3F5E134F8832F84B05512E11FC51 /* MQTTMessage.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = MQTTMessage.m; path = MQTTClient/MQTTClient/MQTTMessage.m; sourceTree = ""; }; - F8F68F9685579896CE2ECC8D53A77DD8 /* AgoraLyricsScore-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "AgoraLyricsScore-dummy.m"; sourceTree = ""; }; + F88E4977EB3F1DA61E63A631CAFE861A /* idec_dec.c */ = {isa = PBXFileReference; includeInIndex = 1; name = idec_dec.c; path = src/dec/idec_dec.c; sourceTree = ""; }; + F8A259C7517650851FFC0D29B1C032E2 /* QGAnimatedImageDecodeThreadPool.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = QGAnimatedImageDecodeThreadPool.h; path = iOS/QGVAPlayer/QGVAPlayer/Classes/Controllers/QGAnimatedImageDecodeThreadPool.h; sourceTree = ""; }; + F8A8FDF49509F93A2D3C59F31A78EEC8 /* OSSTaskCompletionSource.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = OSSTaskCompletionSource.m; path = AliyunOSSSDK/OSSTask/OSSTaskCompletionSource.m; sourceTree = ""; }; + F8B5C907C3551E990641F7F8B0FC68DF /* BRPickerViewMacro.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = BRPickerViewMacro.h; path = BRPickerView/Core/BRPickerViewMacro.h; sourceTree = ""; }; + F8B806456AE57EF110F02C6A3FB88CC9 /* LLWindowManager+ShortCut.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "LLWindowManager+ShortCut.m"; path = "LLDebugTool/Core/Component/ShortCut/UserInterface/LLWindowManager+ShortCut.m"; sourceTree = ""; }; + F8E05516B4AFA1A47E780B068A22E7E9 /* LLHierarchyInfoView.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = LLHierarchyInfoView.m; path = LLDebugTool/Core/Component/Hierarchy/UserInterface/LLHierarchyInfoView.m; sourceTree = ""; }; + F8FD6112E89B5310AFB25FDEB36CBA41 /* YYTextMagnifier.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = YYTextMagnifier.h; path = YYText/Component/YYTextMagnifier.h; sourceTree = ""; }; + F904CF4CD5F6A789799C4C2865B463BE /* YBIBSheetView.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = YBIBSheetView.h; path = YBImageBrowser/ToolView/YBIBSheetView.h; sourceTree = ""; }; F91075A92425F75F02E0E1C8D455AF79 /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS18.0.sdk/System/Library/Frameworks/Foundation.framework; sourceTree = DEVELOPER_DIR; }; - F92CE0D86BA334BDC83C50BF7EC20D2B /* MQTTSSLSecurityPolicy.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = MQTTSSLSecurityPolicy.h; path = MQTTClient/MQTTClient/MQTTSSLSecurityPolicy.h; sourceTree = ""; }; - F92DB7B7025A88791DC528CB73220FF0 /* LLDebug.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = LLDebug.h; path = LLDebugTool/LLDebug.h; sourceTree = ""; }; - F94A7CE692EE89E7ECAD65E1F22AC0CE /* NSObject+RACSelectorSignal.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "NSObject+RACSelectorSignal.m"; path = "ReactiveObjC/NSObject+RACSelectorSignal.m"; sourceTree = ""; }; - F96BFA65EF9ED8D327287F96623EC245 /* UIGestureRecognizer+YYAdd.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "UIGestureRecognizer+YYAdd.m"; path = "YYCategories/UIKit/UIGestureRecognizer+YYAdd.m"; sourceTree = ""; }; - F97A274287A7815903F4EBEA65A06146 /* SDmetamacros.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDmetamacros.h; path = SDWebImage/Private/SDmetamacros.h; sourceTree = ""; }; - F9BB944D6D5FBB6AB373CD16CDE70EDD /* GPBCodedOutputStream.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = GPBCodedOutputStream.m; path = objectivec/GPBCodedOutputStream.m; sourceTree = ""; }; - F9C7C18788030E30F92E319F88529380 /* LLScreenshotImageView.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = LLScreenshotImageView.m; path = LLDebugTool/Core/Component/Screenshot/UserInterface/LLScreenshotImageView.m; sourceTree = ""; }; - F9CEA56BA9A2CA9ACE092EF99CFCB1C0 /* YYTextView.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = YYTextView.m; path = YYText/YYTextView.m; sourceTree = ""; }; - F9E95BE53E6A32451C6234D71E746822 /* LLHierarchyPickerView.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = LLHierarchyPickerView.m; path = LLDebugTool/Core/Component/Hierarchy/UserInterface/LLHierarchyPickerView.m; sourceTree = ""; }; - FA195CEE3BE39FB7579070EAA2945A50 /* YYTextParser.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = YYTextParser.m; path = YYText/String/YYTextParser.m; sourceTree = ""; }; - FA20BE804FA50028C68F2AA78C20A9B7 /* NSDate+BRPickerView.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "NSDate+BRPickerView.m"; path = "BRPickerView/DatePicker/NSDate+BRPickerView.m"; sourceTree = ""; }; + F92837A12DF81376F8A497838A9EAA5D /* YYCGUtilities.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = YYCGUtilities.h; path = YYCategories/Quartz/YYCGUtilities.h; sourceTree = ""; }; + F96E1EAFFB0135EF005F808FCE28AD11 /* NSArray+AvoidCrash.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "NSArray+AvoidCrash.m"; path = "AvoidCrash/NSArray+AvoidCrash.m"; sourceTree = ""; }; + F9842232139B32310A3F79A34C87DA90 /* QCloudServiceConfiguration_Private.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = QCloudServiceConfiguration_Private.h; path = QCloudCore/Classes/Base/QCloudClientBase/Service/QCloudServiceConfiguration_Private.h; sourceTree = ""; }; + F99187070AA578DCB648A8A3BE33A49C /* LLRouter+ShortCut.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "LLRouter+ShortCut.m"; path = "LLDebugTool/Core/Others/Router/LLRouter+ShortCut.m"; sourceTree = ""; }; + F99C7AD3D5187E3F9FA001BE3573C9BC /* mz_strm.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = mz_strm.h; path = SSZipArchive/minizip/mz_strm.h; sourceTree = ""; }; + F9BA14945E139C4567A39D99223B4A74 /* SDWeakProxy.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDWeakProxy.h; path = SDWebImage/Private/SDWeakProxy.h; sourceTree = ""; }; + F9C90C051621F066A3D2F27F52C026E5 /* SDImageAWebPCoder.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDImageAWebPCoder.h; path = SDWebImage/Core/SDImageAWebPCoder.h; sourceTree = ""; }; + F9D24DD12D3E42238B1D77BB54E9FA99 /* QGHWDShaderTypes.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = QGHWDShaderTypes.h; path = iOS/QGVAPlayer/QGVAPlayer/Shaders/QGHWDShaderTypes.h; sourceTree = ""; }; + F9E5BDE72EE2D76597543262ADB25515 /* QGHWDMetalView.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = QGHWDMetalView.h; path = iOS/QGVAPlayer/QGVAPlayer/Classes/Views/Metal/QGHWDMetalView.h; sourceTree = ""; }; FA23F3C0A4C49E0258B3648059D0B23B /* TUIImageCollectionCell_Minimalist.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = TUIImageCollectionCell_Minimalist.m; sourceTree = ""; }; - FA31F462469FB019EF34797C11A4F6DC /* JXCategoryIndicatorCellModel.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = JXCategoryIndicatorCellModel.h; path = Sources/Indicator/JXCategoryIndicatorCellModel.h; sourceTree = ""; }; - FA34ED960A10DBE441DAC79960183360 /* LLEntryBallView.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = LLEntryBallView.h; path = LLDebugTool/Core/Others/CommonUI/Window/EntryWindow/LLEntryBallView.h; sourceTree = ""; }; - FA3874AF2A2DB99BDD9D65D599FF0FF9 /* YBIBVideoActionBar.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = YBIBVideoActionBar.h; path = Video/YBIBVideoActionBar.h; sourceTree = ""; }; - FA41BE13BA7829AC9DC545A26853A7D1 /* TZLocationManager.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = TZLocationManager.m; path = TZImagePickerController/Location/TZLocationManager.m; sourceTree = ""; }; + FA3790ED1C353D98F38FE8635D90B690 /* SVGAPlayer.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SVGAPlayer.m; path = Source/SVGAPlayer.m; sourceTree = ""; }; + FA4AF1F2FF95ED8DAF949CF745BE8F04 /* JXCategoryTitleCellModel.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = JXCategoryTitleCellModel.h; path = Sources/Title/JXCategoryTitleCellModel.h; sourceTree = ""; }; + FA706F595B8ECCEB0E77FAEC1B217A7B /* MQTTCFSocketDecoder.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = MQTTCFSocketDecoder.m; path = MQTTClient/MQTTClient/MQTTCFSocketDecoder.m; sourceTree = ""; }; + FA71F63ECF516CB8499FA494C1ACAC03 /* GPBBootstrap.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = GPBBootstrap.h; path = objectivec/GPBBootstrap.h; sourceTree = ""; }; + FA765F9271839D176DB2E0BD4F37309E /* QCloudSDKModuleManager.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = QCloudSDKModuleManager.m; path = QCloudCore/Classes/Base/Supervisory/QCloudSDKModuleManager.m; sourceTree = ""; }; + FA87F8676E587989AD5F3A0F4AA8DFCE /* muxinternal.c */ = {isa = PBXFileReference; includeInIndex = 1; name = muxinternal.c; path = src/mux/muxinternal.c; sourceTree = ""; }; + FA94166897E932CA6FF25C4ECC2DCFE1 /* NSString+RACKeyPathUtilities.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "NSString+RACKeyPathUtilities.h"; path = "ReactiveObjC/NSString+RACKeyPathUtilities.h"; sourceTree = ""; }; + FAC5A92DA11131162B8A8D5D8E89755C /* GPBWrappers.pbobjc.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = GPBWrappers.pbobjc.m; path = objectivec/GPBWrappers.pbobjc.m; sourceTree = ""; }; + FAC8BBDB51284975BAC168144CF24160 /* SDImageIOAnimatedCoder.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDImageIOAnimatedCoder.h; path = SDWebImage/Core/SDImageIOAnimatedCoder.h; sourceTree = ""; }; + FAE1D320A54FB06110638D3EA7B561C4 /* LLSandboxHelper.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = LLSandboxHelper.m; path = LLDebugTool/Core/Component/Sandbox/Function/LLSandboxHelper.m; sourceTree = ""; }; + FAE7DECC7BFF312884F8FE74337F1DDC /* QCloudHTTPRequest_SessionPrivate.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = QCloudHTTPRequest_SessionPrivate.h; path = QCloudCore/Classes/Base/QCLOUDRestNet/SessionSupport/QCloudHTTPRequest_SessionPrivate.h; sourceTree = ""; }; FAECA124A85697CFB653B9D56FC4BF04 /* TIMCommonModel.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = TIMCommonModel.h; sourceTree = ""; }; - FAF982C18F414CB53BF06E5A272AF33D /* AgoraComponetLog.xcframework */ = {isa = PBXFileReference; includeInIndex = 1; path = AgoraComponetLog.xcframework; sourceTree = ""; }; - FB0D91620F0D0565D6C327BEB4340FC2 /* filters.c */ = {isa = PBXFileReference; includeInIndex = 1; name = filters.c; path = src/dsp/filters.c; sourceTree = ""; }; FB1C741978B157373EE662BEA616C227 /* TUIReplyMessageCell.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = TUIReplyMessageCell.m; sourceTree = ""; }; - FB23B7FEBA3450A73D95BA1465A057B1 /* UIScreen+YYAdd.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "UIScreen+YYAdd.m"; path = "YYCategories/UIKit/UIScreen+YYAdd.m"; sourceTree = ""; }; - FB399EEC52490F7CC6066187151BB2F2 /* PrivacyInfo.xcprivacy */ = {isa = PBXFileReference; includeInIndex = 1; name = PrivacyInfo.xcprivacy; path = Sources/PrivacyInfo.xcprivacy; sourceTree = ""; }; - FB4B90018C3134EDF41142C70D7ABD98 /* OSSRestoreObjectResult.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = OSSRestoreObjectResult.m; path = AliyunOSSSDK/OSSRestoreObjectResult.m; sourceTree = ""; }; - FB4E7E1C2D61D4B0BA7189E976F6854B /* LLHtml.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = LLHtml.h; path = LLDebugTool/Core/Component/Html/LLHtml.h; sourceTree = ""; }; - FB53EB1DC75D99D36D4FF55B1F09EB35 /* CLLocationManager+LL_Location.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "CLLocationManager+LL_Location.h"; path = "LLDebugTool/Core/Component/Location/Function/CLLocationManager/CLLocationManager+LL_Location.h"; sourceTree = ""; }; - FB65E787DBDD6C075BE105BBFC677E96 /* JXCategoryViewDefines.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = JXCategoryViewDefines.h; path = Sources/Common/JXCategoryViewDefines.h; sourceTree = ""; }; - FB84A08D793388DCA82ED11C9CA236DD /* decode.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = decode.h; path = src/webp/decode.h; sourceTree = ""; }; - FB84CEF88ADAF5600824EBA93E9EF256 /* aos_crc64.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = aos_crc64.h; path = AliyunOSSSDK/aos_crc64.h; sourceTree = ""; }; + FB254EB4AE400CA7010D8F4D0A3438E5 /* JXPagerView.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = JXPagerView.m; path = Sources/JXPagerView/JXPagerView.m; sourceTree = ""; }; + FB55D561B0427F73A37BDD783B483A09 /* UIView+YYAdd.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "UIView+YYAdd.m"; path = "YYCategories/UIKit/UIView+YYAdd.m"; sourceTree = ""; }; FB8C13BE2223996DD93F879D4CBB38DB /* TUIConversation.bundle */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = "wrapper.plug-in"; name = TUIConversation.bundle; path = Resources/TUIConversation.bundle; sourceTree = ""; }; - FB919EBC8C89874AB45F95AE2197BC8F /* ResourceBundle-BRPickerView.Privacy-BRPickerView-Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "ResourceBundle-BRPickerView.Privacy-BRPickerView-Info.plist"; sourceTree = ""; }; FB98920F7393BEAB5CC941F04B3889F3 /* ResourceBundle-TUICore_Privacy-TUICore-Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "ResourceBundle-TUICore_Privacy-TUICore-Info.plist"; sourceTree = ""; }; - FB9D947C48D89B3FAF593D45CC2BF48B /* LLInfoView.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = LLInfoView.h; path = LLDebugTool/Core/Others/CommonUI/View/InfoView/LLInfoView.h; sourceTree = ""; }; - FBA1D9AEC1D9116B235CC76CF5B856BD /* YBIBAnimatedTransition.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = YBIBAnimatedTransition.h; path = YBImageBrowser/Base/YBIBAnimatedTransition.h; sourceTree = ""; }; - FBA24CE00E2B054DFD47F92879471271 /* NSArray+LL_Utils.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "NSArray+LL_Utils.h"; path = "LLDebugTool/Core/Others/Category/NSArray/NSArray+LL_Utils.h"; sourceTree = ""; }; + FBACC6494379F151A8E4457F350562C3 /* OSSClient.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = OSSClient.m; path = AliyunOSSSDK/OSSClient.m; sourceTree = ""; }; FBBB336A7B3D96CF46F0A555530D50C4 /* TUIFileMessageCell.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = TUIFileMessageCell.h; sourceTree = ""; }; - FBC2384014AEE26EAFB9C600A8015122 /* LLComponent.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = LLComponent.h; path = LLDebugTool/Core/Others/Component/LLComponent.h; sourceTree = ""; }; - FBF6FEE2C0B6DF3970579856F6DD9F1E /* NSAttributedString+YYText.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "NSAttributedString+YYText.m"; path = "YYText/Utility/NSAttributedString+YYText.m"; sourceTree = ""; }; - FBF87F2DB2943C33A83FB3E273EF5C6E /* JXPagerSmoothView.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = JXPagerSmoothView.m; path = Sources/JXPagerView/JXPagerSmoothView.m; sourceTree = ""; }; - FC08338316F5A658727A1948229CBE87 /* demux.c */ = {isa = PBXFileReference; includeInIndex = 1; name = demux.c; path = src/demux/demux.c; sourceTree = ""; }; + FBC0A4D8819DED9523982B72E982ECE9 /* MBProgressHUD-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "MBProgressHUD-dummy.m"; sourceTree = ""; }; + FBCC619F2E5062A11CCA629F5913683C /* OSSV1Signer.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = OSSV1Signer.m; path = AliyunOSSSDK/Signer/OSSV1Signer.m; sourceTree = ""; }; + FBCCAA9179C058685DA8DD825C11AEC2 /* LLTitleSwitchCellView.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = LLTitleSwitchCellView.h; path = LLDebugTool/Core/Others/CommonUI/View/CellView/LLTitleSwitchCellView.h; sourceTree = ""; }; FC14DF02839D1B209B22801C7FCC416B /* TUIConversation-TUIConversation_Privacy */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; name = "TUIConversation-TUIConversation_Privacy"; path = TUIConversation_Privacy.bundle; sourceTree = BUILT_PRODUCTS_DIR; }; - FC1874DCF7E7B17BE82FE5D7F74E9D1D /* AFNetworkReachabilityManager.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = AFNetworkReachabilityManager.m; path = AFNetworking/AFNetworkReachabilityManager.m; sourceTree = ""; }; - FC19B79147D3C952825509941C1C22E8 /* QGHWDMP4OpenGLView.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = QGHWDMP4OpenGLView.m; path = iOS/QGVAPlayer/QGVAPlayer/Classes/Views/OpenGL/QGHWDMP4OpenGLView.m; sourceTree = ""; }; - FC566BF6FA3581636EE1F0AC3040D321 /* LyricsFileDownloader.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = LyricsFileDownloader.swift; path = AgoraLyricsScore/Class/Downloader/LyricsFileDownloader.swift; sourceTree = ""; }; - FC7F4FCE5B2841512C8B56B3595C9871 /* LLSandboxPreviewController.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = LLSandboxPreviewController.h; path = LLDebugTool/Core/Component/Sandbox/UserInterface/LLSandboxPreviewController.h; sourceTree = ""; }; - FC8965E29F7E2C92477174EF5568E76E /* bit_reader_utils.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = bit_reader_utils.h; path = src/utils/bit_reader_utils.h; sourceTree = ""; }; - FC9C62B42AF240A645A8660E04179C51 /* NSArray+AvoidCrash.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "NSArray+AvoidCrash.h"; path = "AvoidCrash/NSArray+AvoidCrash.h"; sourceTree = ""; }; - FC9FCF9EAB97503DBEE7531816122FA1 /* OSSXMLDictionary.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = OSSXMLDictionary.h; path = AliyunOSSSDK/OSSXMLDictionary.h; sourceTree = ""; }; - FCBB6DFD6A58E8B6100BF172DEA7EBA8 /* RACEXTScope.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = RACEXTScope.h; path = ReactiveObjC/extobjc/RACEXTScope.h; sourceTree = ""; }; + FC1516F2209EDDC2D920EC80F8334C56 /* GPBApi.pbobjc.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = GPBApi.pbobjc.m; path = objectivec/GPBApi.pbobjc.m; sourceTree = ""; }; + FC1DF0BC5184945C1CF0AFDB36051E1D /* QCloudClientContext.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = QCloudClientContext.m; path = QCloudCore/Classes/Base/QCloudClientBase/QCloudClientContext.m; sourceTree = ""; }; + FC4E8FE35DCD38D7A7E1980DCBAA4BFB /* SDImageTransformer.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDImageTransformer.m; path = SDWebImage/Core/SDImageTransformer.m; sourceTree = ""; }; + FC546A86D11DA54EAC73A615369C28E5 /* buffer_dec.c */ = {isa = PBXFileReference; includeInIndex = 1; name = buffer_dec.c; path = src/dec/buffer_dec.c; sourceTree = ""; }; + FC55E3804B2539EB8C9446130189B6DC /* YYWebImageOperation.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = YYWebImageOperation.m; path = YYWebImage/YYWebImageOperation.m; sourceTree = ""; }; + FC6182EF5C7236402D8132D477BB9A59 /* QCloudCOSXML-Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "QCloudCOSXML-Info.plist"; sourceTree = ""; }; + FC6AAE19178B09BFA7FF9D1C8B678484 /* NSHTTPURLResponse+LL_Network.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "NSHTTPURLResponse+LL_Network.m"; path = "LLDebugTool/Core/Component/Network/Function/NSHTTPURLResponse/NSHTTPURLResponse+LL_Network.m"; sourceTree = ""; }; + FC88BE1927B5B72263E7CBC43989CED3 /* LLCrashHelper.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = LLCrashHelper.m; path = LLDebugTool/Core/Component/Crash/Function/LLCrashHelper.m; sourceTree = ""; }; FCBBA7230A43A051A289DA1A6EDB8017 /* TUIVoiceReplyQuoteViewData.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = TUIVoiceReplyQuoteViewData.h; sourceTree = ""; }; FCD1C0BEF002E89CC58E0BBE7D329376 /* TUIMessageMultiChooseView_Minimalist.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = TUIMessageMultiChooseView_Minimalist.h; sourceTree = ""; }; - FCF416D248705468EA5712B0B7CD870F /* UITextView+RACSignalSupport.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "UITextView+RACSignalSupport.h"; path = "ReactiveObjC/UITextView+RACSignalSupport.h"; sourceTree = ""; }; + FCD2A15EFA4C3639EA1F3ACF9FC6C703 /* LLAppInfoViewController.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = LLAppInfoViewController.m; path = LLDebugTool/Core/Component/AppInfo/UserInterface/LLAppInfoViewController.m; sourceTree = ""; }; + FCEE8456B09D143DEBF342B30D156563 /* MBProgressHUD.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = MBProgressHUD.release.xcconfig; sourceTree = ""; }; FCF61D9B2B75054A9A3185DDC609B7FF /* SDWebImageWebPCoder */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; name = SDWebImageWebPCoder; path = SDWebImageWebPCoder.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + FCFA60F1F51C283C6ECE3B9E71BDC520 /* UIColor+YYAdd.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "UIColor+YYAdd.m"; path = "YYCategories/UIKit/UIColor+YYAdd.m"; sourceTree = ""; }; FD062F8E373220F7BD07680C56E08EA8 /* CoreImage.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreImage.framework; path = Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS18.0.sdk/System/Library/Frameworks/CoreImage.framework; sourceTree = DEVELOPER_DIR; }; + FD10571A0E69D1CF3DD44B0CA32A3B71 /* AvoidCrash.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = AvoidCrash.m; path = AvoidCrash/AvoidCrash.m; sourceTree = ""; }; + FD150508BF6A78C9887FD0A7DE309309 /* MQTTDecoder.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = MQTTDecoder.m; path = MQTTClient/MQTTClient/MQTTDecoder.m; sourceTree = ""; }; FD255A844B00B2BE53EC83556C86AEFF /* TUIChatShortcutMenuView.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = TUIChatShortcutMenuView.m; sourceTree = ""; }; + FD308BDEE243E3EC2366E129D50B0677 /* QCloudLogManager.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = QCloudLogManager.h; path = QCloudCOSXML/Classes/Base/QCloudLogManager.h; sourceTree = ""; }; FD38D7AAAA1752EE33E65A445DBC2A12 /* TUITextReplyQuoteViewData.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = TUITextReplyQuoteViewData.m; sourceTree = ""; }; - FD40C551F46673EDF0A2D2C24F073D6B /* GPBWellKnownTypes.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = GPBWellKnownTypes.m; path = objectivec/GPBWellKnownTypes.m; sourceTree = ""; }; FD44815ECE4EA76B0FD7468FD81DF564 /* TUIEmojiConfig.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = TUIEmojiConfig.h; sourceTree = ""; }; - FD51339B5C0F83C53D659E77C3B1A32C /* GPBRootObject.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = GPBRootObject.h; path = objectivec/GPBRootObject.h; sourceTree = ""; }; - FD63AC94A788423710A268939278CD39 /* LLSettingComponent.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = LLSettingComponent.h; path = LLDebugTool/Core/Others/Component/Setting/LLSettingComponent.h; sourceTree = ""; }; - FD74A0CD929DEE8AFDFC9AA9C3BB5C37 /* mz_strm_mem.c */ = {isa = PBXFileReference; includeInIndex = 1; name = mz_strm_mem.c; path = SSZipArchive/minizip/mz_strm_mem.c; sourceTree = ""; }; + FD4864429FE4F1180471376F2525AC2D /* QCloudModel.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = QCloudModel.m; path = QCloudCore/Classes/Base/QCLOUDFileUtils/QCloudModel.m; sourceTree = ""; }; + FD63D4E1A24ACB8F4FAC2ACBF321F560 /* SDAssociatedObject.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDAssociatedObject.h; path = SDWebImage/Private/SDAssociatedObject.h; sourceTree = ""; }; + FD7C23F715A06E593A4488EB4CB076AF /* Masonry-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "Masonry-dummy.m"; sourceTree = ""; }; FD7C328B4F956180720C8F48E4163F5A /* TUISystemMessageCell.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = TUISystemMessageCell.h; sourceTree = ""; }; + FD9EDF992954E0963255C8A3AC630C95 /* GPBEmpty.pbobjc.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = GPBEmpty.pbobjc.h; path = objectivec/GPBEmpty.pbobjc.h; sourceTree = ""; }; + FDA44B36E76D3472427B98C7E854A29A /* LLDetailTitleCellView.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = LLDetailTitleCellView.h; path = LLDebugTool/Core/Others/CommonUI/View/CellView/LLDetailTitleCellView.h; sourceTree = ""; }; FDB1F9FD9C05C68C54D17F9D08BAB572 /* TUIMessageCell_Minimalist.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = TUIMessageCell_Minimalist.m; sourceTree = ""; }; - FDD7FD54D966647F8441CF24F69FDEE4 /* UIImage+YYWebImage.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "UIImage+YYWebImage.h"; path = "YYWebImage/Categories/UIImage+YYWebImage.h"; sourceTree = ""; }; - FDECB8D5714E6E4D9D45FFB53A536451 /* RACEagerSequence.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = RACEagerSequence.m; path = ReactiveObjC/RACEagerSequence.m; sourceTree = ""; }; - FDF637E456682345CA37569F97D5E821 /* LLRouter+Crash.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "LLRouter+Crash.h"; path = "LLDebugTool/Core/Others/Router/LLRouter+Crash.h"; sourceTree = ""; }; + FDB766D9288EAB5D81C6D0E89C819D98 /* OSSPutObjectTaggingResult.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = OSSPutObjectTaggingResult.m; path = AliyunOSSSDK/OSSPutObjectTaggingResult.m; sourceTree = ""; }; + FDBBD150506DF18C3C4A93C10F2BF49A /* LLBaseWindow.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = LLBaseWindow.h; path = LLDebugTool/Core/Others/CommonUI/Base/LLBaseWindow.h; sourceTree = ""; }; + FDEA4EE17B8435E1A244FF956F57DC6F /* LLHtmlWindow.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = LLHtmlWindow.m; path = LLDebugTool/Core/Component/Html/UserInterface/LLHtmlWindow.m; sourceTree = ""; }; FE1BD52BFADEA61D919421EC8D818FBA /* TUIGroupInfoController_Minimalist.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = TUIGroupInfoController_Minimalist.h; sourceTree = ""; }; - FE24BBE6690040438CF62BEB8DA4276B /* LLEditTableViewController.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = LLEditTableViewController.m; path = LLDebugTool/Core/Others/CommonUI/ViewController/EditTableViewController/LLEditTableViewController.m; sourceTree = ""; }; - FE83CF94555463AA2432B3405B188C32 /* YYTextAttribute.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = YYTextAttribute.m; path = YYText/String/YYTextAttribute.m; sourceTree = ""; }; - FE97B85549C4C2DB73F62EF1E8F42AE9 /* thread_utils.c */ = {isa = PBXFileReference; includeInIndex = 1; name = thread_utils.c; path = src/utils/thread_utils.c; sourceTree = ""; }; - FEC2C002E11EC696DCC93CA9FD77476A /* MJRefresh-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "MJRefresh-prefix.pch"; sourceTree = ""; }; - FED504FEAC08432BEC64058A0647F40A /* RACKVOProxy.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = RACKVOProxy.h; path = ReactiveObjC/RACKVOProxy.h; sourceTree = ""; }; + FE3AC34514DCD306FA3CC025C8C9C22B /* OSSGetObjectACLResult.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = OSSGetObjectACLResult.m; path = AliyunOSSSDK/OSSGetObjectACLResult.m; sourceTree = ""; }; + FE487B1D78699009111C03EA22D6D6DF /* Zip.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.module; path = Zip.modulemap; sourceTree = ""; }; + FE49047C963CAAC22EA9DAEE82414272 /* QCloudCOSTransferMangerService.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = QCloudCOSTransferMangerService.h; path = QCloudCOSXML/Classes/Transfer/QCloudCOSTransferMangerService.h; sourceTree = ""; }; + FE94E5E65AE2601BF6DC443A5C5144B2 /* WebP.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = WebP.framework; path = Vendor/WebP.framework; sourceTree = ""; }; + FE9736BB0BD4C1473F78EBB9198CC88F /* GPBUnknownFieldSet.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = GPBUnknownFieldSet.m; path = objectivec/GPBUnknownFieldSet.m; sourceTree = ""; }; + FEC5AD5E49B314721065FAA3D47098D7 /* NSAttributedString+YYText.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "NSAttributedString+YYText.h"; path = "YYText/Utility/NSAttributedString+YYText.h"; sourceTree = ""; }; + FEDD5696061F1DE17BF7AC794791280F /* NSThread+YYAdd.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "NSThread+YYAdd.h"; path = "YYCategories/Foundation/NSThread+YYAdd.h"; sourceTree = ""; }; FEE1997B7EDDED81709C013F1C343020 /* TUIVideoReplyQuoteView.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = TUIVideoReplyQuoteView.h; sourceTree = ""; }; - FEF5521913D41FD970482B0C32AECA39 /* LLScreenshotSelectorView.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = LLScreenshotSelectorView.m; path = LLDebugTool/Core/Component/Screenshot/UserInterface/LLScreenshotSelectorView.m; sourceTree = ""; }; - FEFC974F671B263EBF26A7BDD8953409 /* RACSubscriptionScheduler.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = RACSubscriptionScheduler.m; path = ReactiveObjC/RACSubscriptionScheduler.m; sourceTree = ""; }; - FF30BBC68DF89754D2DFDDEF5A7BD91A /* UIControl+YYAdd.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "UIControl+YYAdd.m"; path = "YYCategories/UIKit/UIControl+YYAdd.m"; sourceTree = ""; }; - FF572200444F060F0BED08ED673BA628 /* RACBehaviorSubject.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = RACBehaviorSubject.m; path = ReactiveObjC/RACBehaviorSubject.m; sourceTree = ""; }; - FF580315006F92336B16CDBFA1B405F4 /* LLRulerComponent.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = LLRulerComponent.m; path = LLDebugTool/Core/Component/Ruler/LLRulerComponent.m; sourceTree = ""; }; - FF7439BD4FE89B1ED8FEF7DD1825760F /* YYCategoriesMacro.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = YYCategoriesMacro.h; path = YYCategories/YYCategoriesMacro.h; sourceTree = ""; }; + FEEC1915846135604DE448031E0DBD33 /* SDImageGraphics.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDImageGraphics.h; path = SDWebImage/Core/SDImageGraphics.h; sourceTree = ""; }; + FF0B11CAE6891641C22F82ACC12D510D /* LLWindowManager+Sandbox.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "LLWindowManager+Sandbox.h"; path = "LLDebugTool/Core/Component/Sandbox/UserInterface/LLWindowManager+Sandbox.h"; sourceTree = ""; }; + FF204A05CB1AB49D5DEB4BA6464A401E /* TAAbstractDotView.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = TAAbstractDotView.m; path = SDCycleScrollView/Lib/SDCycleScrollView/PageControl/TAAbstractDotView.m; sourceTree = ""; }; + FF3945C6F81293E6CA9D3885C41E5616 /* JXCategoryIndicatorTriangleView.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = JXCategoryIndicatorTriangleView.m; path = Sources/Indicator/IndicatorViews/JXCategoryIndicatorTriangleView.m; sourceTree = ""; }; + FF45AD9CA889C84D2B448F3E852058C1 /* NSInvocation+RACTypeParsing.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "NSInvocation+RACTypeParsing.m"; path = "ReactiveObjC/NSInvocation+RACTypeParsing.m"; sourceTree = ""; }; + FF49590BDCF35D6EF1E3CFA0A524C9D1 /* ReactiveObjC.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = ReactiveObjC.h; path = ReactiveObjC/ReactiveObjC.h; sourceTree = ""; }; + FF584313D7CD1613FC941ED1EF9D63A2 /* SDCollectionViewCell.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDCollectionViewCell.m; path = SDCycleScrollView/Lib/SDCycleScrollView/SDCollectionViewCell.m; sourceTree = ""; }; + FF7C05E57A441420C8F62811D382304B /* CLLocationManager+LL_Location.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "CLLocationManager+LL_Location.m"; path = "LLDebugTool/Core/Component/Location/Function/CLLocationManager/CLLocationManager+LL_Location.m"; sourceTree = ""; }; FF884162ACA1B990362FA3FBCD33B392 /* OfflinePushExtBusinessInfo.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = OfflinePushExtBusinessInfo.h; sourceTree = ""; }; - FFB5B5D161A1A751B7ED1F6CAA916399 /* UIImage+LL_Utils.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "UIImage+LL_Utils.m"; path = "LLDebugTool/Core/Others/Category/UIImage/UIImage+LL_Utils.m"; sourceTree = ""; }; - FFC4EB1C47258CFEE04214368FA1D0E9 /* GPBDescriptor.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = GPBDescriptor.m; path = objectivec/GPBDescriptor.m; sourceTree = ""; }; - FFEAFFC94537D193B0A5B072774D2B44 /* BRBaseView.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = BRBaseView.h; path = BRPickerView/Deprecated/Base/BRBaseView.h; sourceTree = ""; }; - FFEF18EDBCF6E79CDD6B64AFFAA12AB1 /* SDWebImage.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = SDWebImage.debug.xcconfig; sourceTree = ""; }; + FF94ECE1BD1A32B1EB0097A1E3CCD910 /* LLTitleSwitchCell.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = LLTitleSwitchCell.m; path = LLDebugTool/Core/Others/CommonUI/View/TitleCell/LLTitleSwitchCell.m; sourceTree = ""; }; + FF9748894B8C35A1825C07C5F420B7C3 /* NSObject+YYAdd.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "NSObject+YYAdd.h"; path = "YYCategories/Foundation/NSObject+YYAdd.h"; sourceTree = ""; }; + FF984B47225FDD7DAA2D4DC89C5888D1 /* vp8_dec.c */ = {isa = PBXFileReference; includeInIndex = 1; name = vp8_dec.c; path = src/dec/vp8_dec.c; sourceTree = ""; }; + FF9D7BE8F13C3313349427C6E1D14C96 /* IQToolbar.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = IQToolbar.h; path = IQKeyboardManager/IQToolbar/IQToolbar.h; sourceTree = ""; }; + FFABF4F4BC06FCC6D58B58BC4D845D34 /* SDCollectionViewCell.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDCollectionViewCell.h; path = SDCycleScrollView/Lib/SDCycleScrollView/SDCollectionViewCell.h; sourceTree = ""; }; + FFDB774C101BFB12D80A65CD24C53959 /* QCloudNetProfile.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = QCloudNetProfile.m; path = QCloudCore/Classes/Base/QCLOUDRestNet/Profile/QCloudNetProfile.m; sourceTree = ""; }; + FFDE1D22A05B7734B4D04697FBA9703E /* MJRefreshAutoFooter.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = MJRefreshAutoFooter.h; path = MJRefresh/Base/MJRefreshAutoFooter.h; sourceTree = ""; }; + FFEE3F861C1FD26E95F4FB2D306BB733 /* QGVAPMaskInfo.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = QGVAPMaskInfo.h; path = iOS/QGVAPlayer/QGVAPlayer/Classes/Models/QGVAPMaskInfo.h; sourceTree = ""; }; + FFEFC5459225C1D6833D458534BC3472 /* JXPagerView.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = JXPagerView.h; path = Sources/JXPagerView/JXPagerView.h; sourceTree = ""; }; /* End PBXFileReference section */ /* Begin PBXFrameworksBuildPhase section */ @@ -6837,6 +7498,13 @@ ); runOnlyForDeploymentPostprocessing = 0; }; + 0BA811B245ECC2516B34388EE9360011 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; 0CB5494E5539E84494DEEC0B4BB3991D /* Frameworks */ = { isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; @@ -6846,20 +7514,6 @@ ); runOnlyForDeploymentPostprocessing = 0; }; - 0FD283735D5803D17404CE056CEC4386 /* Frameworks */ = { - isa = PBXFrameworksBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - runOnlyForDeploymentPostprocessing = 0; - }; - 10741A7E6BE1517B4D829FFBCAA54568 /* Frameworks */ = { - isa = PBXFrameworksBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - runOnlyForDeploymentPostprocessing = 0; - }; 11690A588400BBB164423D5F86311C35 /* Frameworks */ = { isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; @@ -6877,6 +7531,13 @@ ); runOnlyForDeploymentPostprocessing = 0; }; + 1419AE2A06E5901877A78D429CCBA2F3 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; 141ECED4C79F1DFAF57F031AAD8D9EE1 /* Frameworks */ = { isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; @@ -6893,14 +7554,15 @@ ); runOnlyForDeploymentPostprocessing = 0; }; - 25A4467CACB7AF2418E0D38A99FD2F33 /* Frameworks */ = { + 2161306FDDF6705CF027F67DB548A451 /* Frameworks */ = { isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( + 18682E322F439D29319F66A3E9C4A9A0 /* Foundation.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; - 28B01114598E7B08454639F84967BC50 /* Frameworks */ = { + 2A4777E313373DDD79751D6D345A4F1F /* Frameworks */ = { isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( @@ -6916,7 +7578,15 @@ ); runOnlyForDeploymentPostprocessing = 0; }; - 2B72A8FCC5B302BF87FAAC2FFB7962AD /* Frameworks */ = { + 339D28FD2DBBA8E72D3E59D5CD18A894 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + 277C19821E42F4C95E1A0A826DE339E4 /* Foundation.framework in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 3595B53316C1B09B01B6BF4EA8B1A69E /* Frameworks */ = { isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( @@ -6931,26 +7601,26 @@ ); runOnlyForDeploymentPostprocessing = 0; }; - 3A0201408C80ADF43D79ED08233968A9 /* Frameworks */ = { + 3B6B9C4C04114CBC65E4DE16B729DB42 /* Frameworks */ = { isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - 61CE1E12D365AD1DED7FBF50E25672BD /* Foundation.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; - 4619979887A737163113E7ED207005B1 /* Frameworks */ = { + 41FEFFB7D7C215E94011815E60B01962 /* Frameworks */ = { isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - 9BA712F1170E12E2CADDD49C51F856B5 /* Accelerate.framework in Frameworks */, - A6C18639F320194DCC90DC340CEABA73 /* AssetsLibrary.framework in Frameworks */, - 36B5D70928AB8469D51D3BE6CC69E727 /* CoreFoundation.framework in Frameworks */, - B1D499219E22629F17AA2B333B7E66D5 /* Foundation.framework in Frameworks */, - 59C2ED58D5102A1BEBFC4CF64D5A3054 /* ImageIO.framework in Frameworks */, - 86EE45879860D01CEE36EA89CEC5455C /* MobileCoreServices.framework in Frameworks */, - B27CEB09C2501BA30188239D06C3D3C3 /* QuartzCore.framework in Frameworks */, - B806CEB6DD744A19286FF0E9D4E7AF67 /* UIKit.framework in Frameworks */, + 99196B9247580A210DF4D3D2572E1A82 /* Foundation.framework in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 4522EBD73B19EACE720010DBD43F22D3 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + 468C19B5A2C541F12BA50CCF3B2B3072 /* Foundation.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -6962,14 +7632,15 @@ ); runOnlyForDeploymentPostprocessing = 0; }; - 4B53258048CB6D1E2681473BC7A7C030 /* Frameworks */ = { + 4A694A7876403B83712D61D097343924 /* Frameworks */ = { isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( + A1AFED6D834A1C13AC5F1D2E0EBE2A37 /* Foundation.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; - 5275E53CF8D2999DC525B044A715982D /* Frameworks */ = { + 4AF1303DCE8042DCD606B45AD5EB4A07 /* Frameworks */ = { isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( @@ -6995,10 +7666,11 @@ ); runOnlyForDeploymentPostprocessing = 0; }; - 65EDCAE0663EF9BD948ACFC3D5E3C1A7 /* Frameworks */ = { + 5F23E861BB1A89BC7BFE86250DB3ECC3 /* Frameworks */ = { isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( + 3747AEAFBCF57E0A97A910B9F1F9D331 /* Foundation.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -7010,13 +7682,21 @@ ); runOnlyForDeploymentPostprocessing = 0; }; - 6F9AA0BF14F7572C27BCE1BB14E70C60 /* Frameworks */ = { + 6B558927A838FE8F7649B25E2E996CF3 /* Frameworks */ = { isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( ); runOnlyForDeploymentPostprocessing = 0; }; + 7AF666476C02DD365EBD31D92D01BCF2 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + A5875BA1D4230D53C00361710D077EB4 /* Foundation.framework in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; 7B7CCC4D3C186BB73A6D1F0A0DCB559D /* Frameworks */ = { isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; @@ -7045,14 +7725,7 @@ ); runOnlyForDeploymentPostprocessing = 0; }; - 80A4074CABEB75725F888ED02D97377C /* Frameworks */ = { - isa = PBXFrameworksBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - runOnlyForDeploymentPostprocessing = 0; - }; - 841836413845010249A73A861854E1B4 /* Frameworks */ = { + 80C99AC4E4B2851FD010B500C943892A /* Frameworks */ = { isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( @@ -7100,7 +7773,30 @@ ); runOnlyForDeploymentPostprocessing = 0; }; - 98647715ACCD5C88D4CA450B0E616EA7 /* Frameworks */ = { + 992EADAC268742EFDB0DFA0115044F2E /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; + A2772F16ECAE7BF4187D7983988B3441 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; + A8BFDB24638B750DBD2FDE82BB376B99 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + 969F392CDF869FA2F7BE6D03F6DFEEA6 /* Foundation.framework in Frameworks */, + 7535B55D5E8C735348A02D7F21F9847F /* ImageIO.framework in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + ACD5E96065991F818F6960A11DAF72F9 /* Frameworks */ = { isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( @@ -7125,11 +7821,10 @@ ); runOnlyForDeploymentPostprocessing = 0; }; - AFEAE0B61C501F8D8810779551AAF69A /* Frameworks */ = { + B33F67DB3BA6A07B129E576E2ABBF9C6 /* Frameworks */ = { isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - 47D8BB08A24842E6145C37D7006FC77A /* Foundation.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -7149,21 +7844,6 @@ ); runOnlyForDeploymentPostprocessing = 0; }; - B9410652D61E83A0FDE6F30874A9A3DB /* Frameworks */ = { - isa = PBXFrameworksBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - runOnlyForDeploymentPostprocessing = 0; - }; - B964401241CF085A2A5F675DCD7CD95E /* Frameworks */ = { - isa = PBXFrameworksBuildPhase; - buildActionMask = 2147483647; - files = ( - 14DC3C68792EA0079B1C026603DCB79A /* Foundation.framework in Frameworks */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; BA4B20AEA689B0CDCA368E874ADDA5C3 /* Frameworks */ = { isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; @@ -7172,15 +7852,6 @@ ); runOnlyForDeploymentPostprocessing = 0; }; - C12E370FACF8F6E0552EBE564FE75F7A /* Frameworks */ = { - isa = PBXFrameworksBuildPhase; - buildActionMask = 2147483647; - files = ( - 1B0923636CA1091FCFB6BEBBC804A9C9 /* Foundation.framework in Frameworks */, - E0FDC64CAB50099A54B1FC5A25D9A47B /* ImageIO.framework in Frameworks */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; CA6527CF424B1AA12AF1D0BB36EBAF73 /* Frameworks */ = { isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; @@ -7199,13 +7870,6 @@ ); runOnlyForDeploymentPostprocessing = 0; }; - D517245CAA823CB67D365EA976E2861E /* Frameworks */ = { - isa = PBXFrameworksBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - runOnlyForDeploymentPostprocessing = 0; - }; D5E745912BAC4240B513BBBACC72582E /* Frameworks */ = { isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; @@ -7224,7 +7888,14 @@ ); runOnlyForDeploymentPostprocessing = 0; }; - E23935C88FE44DF26353BD17FA88C743 /* Frameworks */ = { + DD9059797CE5A4DF6B017A6C136F1C95 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; + DDA6E1FF129F94F61CFCA9D21E4BADE7 /* Frameworks */ = { isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( @@ -7240,21 +7911,6 @@ ); runOnlyForDeploymentPostprocessing = 0; }; - E3E807DF4222A7B37FC23EEE3E46AF82 /* Frameworks */ = { - isa = PBXFrameworksBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - runOnlyForDeploymentPostprocessing = 0; - }; - E6566FC57C2E9D227CD281A47CDB7423 /* Frameworks */ = { - isa = PBXFrameworksBuildPhase; - buildActionMask = 2147483647; - files = ( - A9C90BDA47752EB49496311AB0547462 /* Foundation.framework in Frameworks */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; E699DE0BEE7553576B371F6878744108 /* Frameworks */ = { isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; @@ -7269,11 +7925,10 @@ ); runOnlyForDeploymentPostprocessing = 0; }; - F12F74007F68939FB7CD54F41274D468 /* Frameworks */ = { + EB594846AD3885B5587BF2BB0CD9787F /* Frameworks */ = { isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - D4AA0A3C57852C503AB69822D93178F3 /* Foundation.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -7301,41 +7956,134 @@ ); runOnlyForDeploymentPostprocessing = 0; }; + F5ED9A87D1BC8805B58C7D8BB2F5B83D /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + 3135CC07B90460FB8ED8FED5F604F575 /* Accelerate.framework in Frameworks */, + 69C7F46C0BE11E7A4AB0DF78D9F7F88E /* AssetsLibrary.framework in Frameworks */, + C27E7B0D613CBEF06BABD8011C89CAF7 /* CoreFoundation.framework in Frameworks */, + 275E31BFCCEE04AFC02D1D8870026A79 /* Foundation.framework in Frameworks */, + A16D475B9744F3EC466F2FB5A4722CF3 /* ImageIO.framework in Frameworks */, + 7B41594533A260AC128E2008A0CEE355 /* MobileCoreServices.framework in Frameworks */, + 9F925F465F1C00BDE1C99CAF618D2D29 /* QuartzCore.framework in Frameworks */, + F66802E0AAF7ED50C98F9AC44F4E05AE /* UIKit.framework in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + F756B3E958081B27744890A0A3D616D5 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; /* End PBXFrameworksBuildPhase section */ /* Begin PBXGroup section */ - 0065CE1B34961116E4F0AD47CF1BB02D /* Masonry */ = { + 0055C9E5E6F7B806DA73C24F652A1E00 /* Reachability */ = { isa = PBXGroup; children = ( - 1DFC4FE506A8B7A0543399AA7D659D80 /* MASCompositeConstraint.h */, - 9808AD2B9EE2031A2356B48987E3E1E4 /* MASCompositeConstraint.m */, - 52F6080476321C49D1FAEF0A94C5679B /* MASConstraint.h */, - 0AD9E56AFB7A8C6C92A18D7B8E3858D0 /* MASConstraint.m */, - 3C3CF31542420185F3DB404477C45361 /* MASConstraint+Private.h */, - DF5382E219D7D8EFA5A89DB367D04410 /* MASConstraintMaker.h */, - 0A5F09BA40E5E31AE3EA04D1A30D8708 /* MASConstraintMaker.m */, - AAD34CD00E99EF8DCB941FA4C2F5AE61 /* MASLayoutConstraint.h */, - 3BACAFE24515AEBA75EBDB8DA3BB5435 /* MASLayoutConstraint.m */, - 0895A25B99C036865A229F0EBFD59A17 /* Masonry.h */, - C55F448545F5A6D1C9C512435869425E /* MASUtilities.h */, - 5EB57D9635A33A33212E093AF52E5728 /* MASViewAttribute.h */, - 7383FBB730EFFDCA84542FCC41257D02 /* MASViewAttribute.m */, - B2F47109BCC17FA9FE00931C6C532066 /* MASViewConstraint.h */, - 0877754BEE3D7CADC3D1F761130FBA13 /* MASViewConstraint.m */, - D99A30ECE59C31D0F35FAEA010083CF8 /* NSArray+MASAdditions.h */, - 1A4EF6B84B65165920D96CC4503CCC85 /* NSArray+MASAdditions.m */, - 862C89D856CA6970C67F4C1C6F6C13A9 /* NSArray+MASShorthandAdditions.h */, - B2DE2860EFCBA8765E48C28650C9C74D /* NSLayoutConstraint+MASDebugAdditions.h */, - EC7B9044D03A66B6036E63908C246857 /* NSLayoutConstraint+MASDebugAdditions.m */, - 0530CA95ACA47296C611C65A4C48575D /* View+MASAdditions.h */, - BFCFDA928928856B92B702E01DCADBC0 /* View+MASAdditions.m */, - 925687F9CF4BEB2B884C5A107EC7F564 /* View+MASShorthandAdditions.h */, - 09DF495FADE8A9E05FB49E7E777A83F9 /* ViewController+MASAdditions.h */, - CACDDAF9339325B788805EB4486D22EA /* ViewController+MASAdditions.m */, - 22A389B5DE188B642DEB379DD4B046FC /* Support Files */, + 517A1DE40F6000369B30F813F8475AA5 /* AFNetworkReachabilityManager.h */, + 26AEC3D2B8577B305151437FEAEB9A6A /* AFNetworkReachabilityManager.m */, ); - name = Masonry; - path = Masonry; + name = Reachability; + sourceTree = ""; + }; + 0188B3A4FDFF17D790F330BB69E90406 /* Transfer */ = { + isa = PBXGroup; + children = ( + AFCDAAFCBD6B1754C7C41B461713D8D7 /* NSString+RegularExpressionCategory.h */, + DC7D94A4CE8CA4AD5BABAAAB6004BF6A /* NSString+RegularExpressionCategory.m */, + C23535EAE5BFF74DF355ED25D1284A7F /* QCloudAbortMultipfartUploadRequest.h */, + 26F00CE6C2177CBF210C5AF90F10CA73 /* QCloudAbortMultipfartUploadRequest.m */, + AA11C0FF9CA37265A8F60A4B1D292C51 /* QCloudAbstractRequest+Quality.h */, + 735156C22241BE6BB31BA3B8BF821FAD /* QCloudAbstractRequest+Quality.m */, + 8FD899744B4FE45A72DB2098F9A30587 /* QCloudAppendObjectRequest.h */, + 4DFC0BEE18F9B338EBED87AC7B5F8AA3 /* QCloudAppendObjectRequest.m */, + B19CD9CB8BAF79C7CC6D0D6B78219BFB /* QCloudBizHTTPRequest+COSXML.h */, + 46E422104473A370B56E1E8DF29ACCE8 /* QCloudBizHTTPRequest+COSXML.m */, + CF81D9C467A44B4C6264E6ADF335BE24 /* QCloudCompleteMultipartUploadInfo.h */, + C30120819B40CF27526538D243E95959 /* QCloudCompleteMultipartUploadInfo.m */, + 0D02468817FCFA1FA6213B1F3F66F5B4 /* QCloudCompleteMultipartUploadRequest.h */, + F61F788776C5F5D0C1B9B660F9A919DB /* QCloudCompleteMultipartUploadRequest.m */, + C142C90A8EE06B1F137BF93CFD1FE0BD /* QCloudCopyObjectResult.h */, + 55829FFCDE8DA7CCFAF80FADF8C47EEF /* QCloudCopyObjectResult.m */, + 5D4BC79C3D9B76FF89F8811540251066 /* QCloudCOSStorageClassEnum.h */, + DEF0F542000F2144D714D4C1624C282D /* QCloudCOSStorageClassEnum.m */, + FE49047C963CAAC22EA9DAEE82414272 /* QCloudCOSTransferMangerService.h */, + AC3912514619936BE782EEA52811A2A7 /* QCloudCOSTransferMangerService.m */, + 3C4FF55ACDBF05D5851592739846E2BB /* QCloudCOSXMLCopyObjectRequest.h */, + E6758F056FC5CD773236E5DF7E34CCF9 /* QCloudCOSXMLCopyObjectRequest.m */, + D21FC35A263003D9063A244A68F3BF6A /* QCloudCOSXMLDownloadObjectRequest.h */, + BAF83BAFBB271E58F6BD133128490A58 /* QCloudCOSXMLDownloadObjectRequest.m */, + F2DC47CB9B03DC306718A9641398E670 /* QCloudCOSXMLEndPoint.h */, + A31C43698997610ED8F05DEC34A4492D /* QCloudCOSXMLEndPoint.m */, + E5317EED7BF8169353CF7EC8B155150A /* QCloudCOSXMLService.h */, + 789D9C60CEC14184D954B2E6F6750860 /* QCloudCOSXMLService.m */, + 5877861C915E71930D402C2BAFC9551A /* QCloudCOSXMLService+Configuration.h */, + 3F228046BA3DB3BF92D807FF46D06083 /* QCloudCOSXMLService+Configuration.m */, + C59C22BAD3474049BCF91D6D1F429239 /* QCloudCOSXMLService+Private.h */, + 3D226186D297226D69E92A635E08589E /* QCloudCOSXMLService+Quality.h */, + 891768C36B9368BDC22D663758D43B1A /* QCloudCOSXMLService+Quality.m */, + 98540D1B92D5723A142D1F8AD54D2598 /* QCloudCOSXMLService+Transfer.h */, + F5894517989EB369276CA7F97CC83FC6 /* QCloudCOSXMLService+Transfer.m */, + 0EC2622C154983CB5B159DA232D30CAB /* QCloudCOSXMLServiceUtilities.h */, + 4C2808CF313B057473840CDC35642A08 /* QCloudCOSXMLServiceUtilities.m */, + 4B5FB108B5C99E9BE20DE622B2EB506C /* QCloudCOSXMLTransfer.h */, + BABEB31645FCCB421C9DB0258E8EDB0F /* QCloudCOSXMLUploadObjectRequest.h */, + 6D01A5CAF0AED19664007EE7A1DDA214 /* QCloudCOSXMLUploadObjectRequest.m */, + F7401CD28EFAD27F27D565659A105C93 /* QCloudCOSXMLUploadObjectRequest_Private.h */, + C32DF683159492303C2754FC40ABF3C6 /* QCloudCOSXMLVersion.h */, + D9D545768D055B0050317DBB78952386 /* QCloudCOSXMLVersion.m */, + E18E03C1C00A188C9CF3F2695977222B /* QCloudGetObjectRequest.h */, + 1881D1008039B89F10E7FA2BA6DE3763 /* QCloudGetObjectRequest.m */, + 4731228CFADB75FA741A9142F8406B22 /* QCloudGetObjectRequest+Custom.h */, + F2FA8749876555B817646E49DEB0FBBE /* QCloudGetObjectRequest+Custom.m */, + F78D1CA4CC5CF7D9ED38292265B20B2B /* QCloudHeadObjectRequest.h */, + 508983BAD4AE67AB61E3DFCBA3B75547 /* QCloudHeadObjectRequest.m */, + 588895FF1346486ECBAEE86B9986F26B /* QCloudInitiateMultipartUploadRequest.h */, + 6DCDC4699AD61041684AB3720F04F1F6 /* QCloudInitiateMultipartUploadRequest.m */, + F6C4A98C4C710857DAA95E235C7EFC13 /* QCloudInitiateMultipartUploadResult.h */, + F61D1EE4A2BD6425C80377815250D878 /* QCloudInitiateMultipartUploadResult.m */, + 3617FB84BF477BCEC32EF2265F46D63E /* QCloudListMultipartRequest.h */, + 25B82B3EDD249F0E3B38E27E46363778 /* QCloudListMultipartRequest.m */, + D4E90F4F7A8F65885DF9F6E01FA7088A /* QCloudListPartsResult.h */, + 40A1A43CA22FAF6453F1BFE43DCE0C9F /* QCloudListPartsResult.m */, + FD308BDEE243E3EC2366E129D50B0677 /* QCloudLogManager.h */, + B9703A7371293EECD3570B5B2DFAD0FD /* QCloudLogManager.m */, + F44BA258755276F28D07763771D72A11 /* QCloudMultipartInfo.h */, + AB893C8E53EC1B80E37F0708C2FAF94A /* QCloudMultipartInfo.m */, + 433A5FFCBDCB1AB1C936D3774520D3ED /* QCloudMultipartUploadInitiator.h */, + E4AB7D9B1431982AD38B82C9EF5E0697 /* QCloudMultipartUploadInitiator.m */, + E46368F03B603442284C9EEEE484B5B1 /* QCloudMultipartUploadOwner.h */, + 1B01B009C9C7D3274074627D95807B53 /* QCloudMultipartUploadOwner.m */, + 2E1E07AA41596A16AD4EEF079BC88CC2 /* QCloudMultipartUploadPart.h */, + E03A7815CB4559D04681A648642263BA /* QCloudMultipartUploadPart.m */, + C9CBA92FBACD7C83AADAF41B7B4A6F26 /* QCloudPutObjectCopyRequest.h */, + F470A925C5094BD40B4014B0102B5721 /* QCloudPutObjectCopyRequest.m */, + 7AD876C2E305B26F51D1C62B84BC2F1A /* QCloudPutObjectRequest.h */, + 79FE46DF0519B7BC0F843EA1B149D909 /* QCloudPutObjectRequest.m */, + 874E32992FF188A8A335A064CF0F52CA /* QCloudPutObjectRequest+Custom.h */, + B29A9DA90F39E64BABA248050A567240 /* QCloudPutObjectRequest+Custom.m */, + 8B5F8B9B8807D978B0FF32BEACD47182 /* QCloudPutObjectRequest+CustomBuild.h */, + 1E30DD2E6EACC0D6E1AC4B882A63B165 /* QCloudPutObjectRequest+CustomBuild.m */, + 878B6D72536A69FF375964403CD032BE /* QCloudRequestData+COSXML.h */, + CEF3CE4555FDAEA369ABD1581E297B11 /* QCloudRequestData+COSXML.m */, + 3067AF278E4B581B7F782D773FAAD91C /* QCloudRequestData+COSXMLVersion.h */, + 455D068D4EB4731CA40B25B1821380D2 /* QCloudRequestData+COSXMLVersion.m */, + F16D84E1CE2EB0590049C86CD5FF0ADE /* QCloudUploadObjectResult.h */, + 069F96CE0DAEF6A9FE35804AA7AE93DB /* QCloudUploadObjectResult.m */, + EBE5099CE237143C902B9F81A11DB6EE /* QCloudUploadPartCopyRequest.h */, + 548D34F6170A1B7F8F1EB4BBE0EF9C56 /* QCloudUploadPartCopyRequest.m */, + A30BE8E0405F71F65B389795E68A00B1 /* QCloudUploadPartRequest.h */, + 0775C52A5931289F362DAD2225F5A91B /* QCloudUploadPartRequest.m */, + 38284497DD20EB23C007D4DD28318A8C /* QCloudUploadPartRequest+Custom.h */, + 187EB415C386F93E525B3555B972129F /* QCloudUploadPartRequest+Custom.m */, + 3C118021EF031FBCA103B7EA98DA851B /* QCloudUploadPartResult.h */, + 94CF2495A56C33AAEA8737D4DF150E53 /* QCloudUploadPartResult.m */, + ); + name = Transfer; sourceTree = ""; }; 021DEAD4977CF1E7C6FC21CB7C6CD5F5 /* TUICore */ = { @@ -7350,41 +8098,55 @@ path = ../TUIKit/TUICore; sourceTree = ""; }; - 034709B528568D122EEA10BAF5AF89A2 /* SDWebImageWebPCoder */ = { + 0276C2ADE13319AA8E77CBB093AB26F9 /* Support Files */ = { isa = PBXGroup; children = ( - 15FDB37175E53B6511201CC5383369E3 /* SDImageWebPCoder.h */, - C10BF9C2806D6FEF1555EB9A878E0690 /* SDImageWebPCoder.m */, - F712609A7530BD737F05E692B1B6EE0E /* SDInternalMacros.h */, - EEC83944AE9DC1EDD7A3475F7B291C15 /* SDmetamacros.h */, - 4EABE0178615179C6690F5C063B836A7 /* SDWebImageWebPCoder.h */, - F000F0FF4F0689C6D6ED21A7BCD32178 /* SDWebImageWebPCoderDefine.h */, - D3C9DC3448E4B987779EC4167A93EF3D /* SDWebImageWebPCoderDefine.m */, - D3B1A9676B1BE055F959E27DD2539F24 /* UIImage+WebP.h */, - AB553709600E3E065D5B17480C474C15 /* UIImage+WebP.m */, - 092FDBB15E01812E027FB05EA018D5EC /* Support Files */, + A70F28517908A48847FB806248FF0034 /* LLDebugTool.modulemap */, + 9A5F6D8AA6993683C15AB8AF64D1DD9A /* LLDebugTool-dummy.m */, + E39CC2DDDF3D85095D92C61B4E046213 /* LLDebugTool-Info.plist */, + 947DC10AA8D519EB371FAA12C67BB016 /* LLDebugTool-prefix.pch */, + A91D031B942FCE6EA400BE1570F2D49F /* LLDebugTool-umbrella.h */, + EBDFCC8623E4DB819943C76047E711CA /* LLDebugTool.debug.xcconfig */, + 7407A1FCF518A0D31B1F5CF0AC98CB66 /* LLDebugTool.release.xcconfig */, ); - name = SDWebImageWebPCoder; - path = SDWebImageWebPCoder; + name = "Support Files"; + path = "../Target Support Files/LLDebugTool"; sourceTree = ""; }; - 048321D873CEDC8681E0B13D2541E751 /* AlipaySDK-iOS */ = { + 03919B68EB58B309A0A59A4600E1B4FF /* AgoraRtcEngine_iOS */ = { isa = PBXGroup; children = ( - 754F9E1968DF825F673CD0A0E3AE3204 /* Frameworks */, - F35228AC0385D8934C33112D377973A7 /* Resources */, - FB2511514839557926DD5A5854DCEE33 /* Support Files */, + 904BA7B4426779A2A3F54F437874B320 /* AIAEC */, + 403F5F50D89FB3A40891B76899A7ADB5 /* AIAECLL */, + F6BFA5D6E787AF23175EE6ADA4870935 /* AINS */, + C80527A9469D1A7B2DE6C107072F9675 /* AINSLL */, + D079F7FEFA2B888706067BDD1D2EFFAD /* AudioBeauty */, + 4744674E6DE30B91F3552CCB64189662 /* ClearVision */, + D3916B57E2D9C16A38989BDBCE0B3EFC /* ContentInspect */, + E473339B0C0418561C27587B301958C7 /* FaceCapture */, + 81F9EA3E6FD5E02A2FED860523EEF187 /* FaceDetection */, + 32D061A1D2A150E3CAEDA04128258F1D /* LipSync */, + 932EA7608F9A64533A7817998F1723FB /* ReplayKit */, + B03AADA0FC0CA8EDCD7A2A1E5C2935C7 /* RtcBasic */, + 6E245AF7B0D7811B9FA7FCBA0A309889 /* SpatialAudio */, + 7A6DF6D47E57D0E7EF4D7147986790DA /* Support Files */, + E81F32BFCE8A6EB7DE809A95F624AA82 /* VideoAv1CodecDec */, + 577AB3ACBE0D271862A20D875A6BF7C3 /* VideoAv1CodecEnc */, + 8196608455F8B9D6858794E4377D26AC /* VideoCodecDec */, + 218A9FB599C7187D7E41E45653780F40 /* VideoCodecEnc */, + 805CBDBCAAEE1C7DB2602F45FD209221 /* VirtualBackground */, + 8C45D19F889A2ABC801A10E803931D5D /* VQA */, ); - name = "AlipaySDK-iOS"; - path = "AlipaySDK-iOS"; + name = AgoraRtcEngine_iOS; + path = AgoraRtcEngine_iOS; sourceTree = ""; }; - 052C6C24B7AC1CE221F111B085BE02C2 /* VirtualBackground */ = { + 04208E633EAF38299251012341135285 /* Frameworks */ = { isa = PBXGroup; children = ( - 19E012A8996B15BA1022248E5CC0E61C /* Frameworks */, + 58A6ED66560B5BA5E371D56B18DE6CB1 /* ImSDK_Plus.xcframework */, ); - name = VirtualBackground; + name = Frameworks; sourceTree = ""; }; 056A2640901BFAA13D6567DD9B4B4C7E /* Base */ = { @@ -7435,183 +8197,165 @@ name = Base; sourceTree = ""; }; - 06310A677FFDDAF8593A97F5854F2480 /* Support Files */ = { + 08EB1B1248DC852C7CF8B4FD3DA673F0 /* Frameworks */ = { isa = PBXGroup; children = ( - 0EB130A77AB99ACA5AFE6A8E05F5D986 /* libwebp.modulemap */, - 18D10D60FDAB96D86A0AB66AD1178534 /* libwebp-dummy.m */, - 104CC0A7D42967CFFD862A11AA258625 /* libwebp-Info.plist */, - AD51B2F7DF9CF500D794F073425A6352 /* libwebp-prefix.pch */, - C8B1DF9319EA4EE6D2B94DC72B2EC8C6 /* libwebp-umbrella.h */, - 60F947CE04A1A0FCF25A9B0C51989DAB /* libwebp.debug.xcconfig */, - 60EB43759A795C970FFCF4CA4505C9DB /* libwebp.release.xcconfig */, - ); - name = "Support Files"; - path = "../Target Support Files/libwebp"; - sourceTree = ""; - }; - 0709B527B940E9A858F7CC4F0825602C /* TIMPush */ = { - isa = PBXGroup; - children = ( - 5D42EEB22711E17D3F469B15EB92596E /* TIMPush.h */, - E77D59B51363B888AD56AD5012A04285 /* TIMPushManager.h */, - 6500BE6FFA4258786A70B34088742E93 /* Frameworks */, - 2CCE5A6D9281759CA09D3F627C1C8746 /* Resources */, - 4E36ADDE68E0E8039AD93E92775C22BB /* Support Files */, - ); - name = TIMPush; - path = TIMPush; - sourceTree = ""; - }; - 0847827D1E7D7314CD700894E7CAEBD6 /* QGVAPlayer */ = { - isa = PBXGroup; - children = ( - 4525F69C7EC6EEF866CDDE4285EF7044 /* NSArray+VAPUtil.h */, - 1762B76F8D2896C8BD39CCAEBEEC31BA /* NSArray+VAPUtil.m */, - 3887FF2C85EA02C915288999A9FDEC57 /* NSDictionary+VAPUtil.h */, - 75A6A1B041CD1AEDB5EA9DA940F3A260 /* NSDictionary+VAPUtil.m */, - 37BF15A3289527A730A18B0FF3B92BD3 /* NSNotificationCenter+VAPThreadSafe.h */, - 367F3A9044385655959B96A79439DD72 /* NSNotificationCenter+VAPThreadSafe.m */, - 49598FE073A9A2B4284B97EBAAB70ADD /* QGAnimatedImageBufferManager.h */, - 3E1C3C99EEADDCD0F7E40E070FE54705 /* QGAnimatedImageBufferManager.m */, - 1C1DA722249DD04340455DFA86D43927 /* QGAnimatedImageDecodeConfig.h */, - 85380B7714F717D36AC2672E9BA69380 /* QGAnimatedImageDecodeConfig.m */, - F172B1B59ACACDE64DE3AE908EC171B0 /* QGAnimatedImageDecodeManager.h */, - 47157BC0FAEB8D0BC69F8C03265A065F /* QGAnimatedImageDecodeManager.m */, - E950D4D78D1BA96B9E435CE95D92DC20 /* QGAnimatedImageDecodeThread.h */, - 9C74F8D8CCF5C22829F1AF0D033688C1 /* QGAnimatedImageDecodeThread.m */, - 8B186DEE675FD72C25A2CEA6B32DDF29 /* QGAnimatedImageDecodeThreadPool.h */, - 53FE2614574061CBC55A1B687D023EB4 /* QGAnimatedImageDecodeThreadPool.m */, - 0F689B90C8173CF2269E4DE394AB6104 /* QGBaseAnimatedImageFrame.h */, - 302F072C7A785349E26A8017AE226699 /* QGBaseAnimatedImageFrame.m */, - 7CB3ADC3E378AEF407221E27752303D3 /* QGBaseAnimatedImageFrame+Displaying.h */, - DDACD423E70107BD1391BADADB12C79D /* QGBaseAnimatedImageFrame+Displaying.m */, - 64550E746282A75645D9947E7ACF3C60 /* QGBaseDecoder.h */, - 5B912AA106374EFEF87FF032DC814DAD /* QGBaseDecoder.m */, - 431F8736C60B5E8242F2C9742342DE8C /* QGBaseDFileInfo.h */, - 55224C2C7539480551F39C5D5B8A2157 /* QGBaseDFileInfo.m */, - 3C65CA4EC7D80D3DDE1755B99EA29555 /* QGHWDMetalRenderer.h */, - 2B72A6C6151A8791E68DAE90BE851C3D /* QGHWDMetalRenderer.m */, - 8653C49168871FE0C9AB90AAC3161298 /* QGHWDMetalShaderSourceDefine.h */, - 849EF98FCEA13497C076203B672F2DBE /* QGHWDMetalView.h */, - 0D31F38BDA3E124A26D342A005FD3F95 /* QGHWDMetalView.m */, - A3A5460DC1784C79D84C105DC7872440 /* QGHWDMP4OpenGLView.h */, - FC19B79147D3C952825509941C1C22E8 /* QGHWDMP4OpenGLView.m */, - D7574DD4D47B99CF15F057DA575390BD /* QGHWDShaders.metal */, - 5F858ACB8F054980D7E116044C9A022C /* QGHWDShaderTypes.h */, - 674CEB6319DA26A8EB6FA8EB7C2E0B0C /* QGMP4AnimatedImageFrame.h */, - 71B6E3BFC980212235D7C7FB0F5B15BF /* QGMP4AnimatedImageFrame.m */, - E7E6D038FA4D9E830F2892C7893649BA /* QGMP4Box.h */, - 1B8DDE6261E463904F0E0DAD4AF0CF2C /* QGMP4Box.m */, - 22882EECE2115824AE08DDE008698515 /* QGMP4FrameHWDecoder.h */, - C551C8EB9741E8A7CEF79E88D215618A /* QGMP4FrameHWDecoder.m */, - 3E5A7E767E348F97E272E96D9435E56D /* QGMP4HWDFileInfo.h */, - F583AFD8550AFE5A75B6F18B49C123E9 /* QGMP4HWDFileInfo.m */, - B6D38AC750D197B3F8888F2C342BED27 /* QGMP4Parser.h */, - D0FF48F5F84AA4ECC2ED9051A2BCD707 /* QGMP4Parser.m */, - 79D43D24910C0244A48B3A934EC0DA65 /* QGVAPConfigManager.h */, - 90625BA868039992AC0524D9CF7BEF76 /* QGVAPConfigManager.m */, - B1EAADBE74790CD68AAA65C51DE0FC3D /* QGVAPConfigModel.h */, - ACFCBCF4E62065B7A11BA87E097CEFDE /* QGVAPConfigModel.m */, - 5FB1A41894B3062E2B83982585206CA4 /* QGVAPlayer.h */, - D215081B233C0157899F8CD1392F027F /* QGVAPLogger.h */, - A68CC5ACD892CAC87CF38B0281EF34EC /* QGVAPLogger.m */, - 3D62E51C28A76B206927E5029080D8C4 /* QGVAPMaskInfo.h */, - CC605DA23310CE8C48CE7EE15AAAD9DA /* QGVAPMaskInfo.m */, - 162CBC99F1F8BA87A87C3CE93BD47408 /* QGVAPMetalRenderer.h */, - B8DCECE609B6998C0E522248044B5682 /* QGVAPMetalRenderer.m */, - 13E75550002CF24D09CCC30370A00A2F /* QGVAPMetalShaderFunctionLoader.h */, - BF98847EBFF7D1E8E8EB95FB31B164A0 /* QGVAPMetalShaderFunctionLoader.m */, - CF0F3A9254672A497A06C1992F0CCCA0 /* QGVAPMetalUtil.h */, - 33B08BAA0B5F97E5E3CE46628C420C4E /* QGVAPMetalUtil.m */, - 11F9DD3D863E9A8403CFEDA4ACB15853 /* QGVAPMetalView.h */, - 9E06878BB745204A0589E88CD7DB1B82 /* QGVAPMetalView.m */, - 67FEC9974CB487C8AA112FB22A6A74DB /* QGVAPSafeMutableArray.h */, - 22CEADC5B86E9A4199E7AFB7C446AA3B /* QGVAPSafeMutableArray.m */, - ED7EFF533A0671B040F28AB45F3F7CA9 /* QGVAPSafeMutableDictionary.h */, - 82562587B511A509383A8D72854A5F25 /* QGVAPSafeMutableDictionary.m */, - AFB2604C71FD725C5ED31B34AE93DFA7 /* QGVAPTextureLoader.h */, - 277B2376ADFADC4C028AB41D28228907 /* QGVAPTextureLoader.m */, - 3B80D3EC4B7F7C0CED094987D021EF94 /* QGVAPWeakProxy.h */, - B61C6DFC91DD916296E6BFFCE696D21D /* QGVAPWeakProxy.m */, - BF55E6F0ABCEE1F253156A83F4519758 /* QGVAPWrapView.h */, - 8CB783AC0E6DB2074907F3CB9BA56574 /* QGVAPWrapView.m */, - 27DF334FB5C90AA90F7FA4EF65244AC6 /* UIColor+VAPUtil.h */, - 8CD63CAB748523DC6A63AFB6098E79AE /* UIColor+VAPUtil.m */, - 55FF73FD94D203282FAE109DFCD2DB18 /* UIDevice+VAPUtil.h */, - F755AF5F80022FDE4DE647DD0770A0D1 /* UIDevice+VAPUtil.m */, - 594D12E166E00C4623953ABB400295D2 /* UIGestureRecognizer+VAPUtil.h */, - 3DD727C4E06EB5359A3C9FCF1491E22B /* UIGestureRecognizer+VAPUtil.m */, - 609F38FC2BF170DFF2AE9E585C34FFF9 /* UIView+MP4HWDecode.h */, - 65C817FECAE62611DC8A0BEEB2B83CDB /* UIView+MP4HWDecode.m */, - 3291F0FB38A1BE54BF95374F4ECBC806 /* UIView+VAP.h */, - 12C424B95B1043BA4941599E8D71457C /* UIView+VAP.m */, - CF53369A8B0DF0513BDF05E8284107D4 /* VAPMacros.h */, - BE684D7A8360C78A2A6B28BA5C664FB1 /* Support Files */, - ); - name = QGVAPlayer; - path = QGVAPlayer; - sourceTree = ""; - }; - 092FDBB15E01812E027FB05EA018D5EC /* Support Files */ = { - isa = PBXGroup; - children = ( - 79C2E4A0E64D560295485D1653A3C77A /* SDWebImageWebPCoder.modulemap */, - 7BB5E2AE2E887542391B90E86AAA2F9F /* SDWebImageWebPCoder-dummy.m */, - D35458AF4A94FAC9A811EEA6AB0F7F81 /* SDWebImageWebPCoder-Info.plist */, - CCBC66B53330050460A749E0DEA20FFF /* SDWebImageWebPCoder-prefix.pch */, - 467428FA1052A78F712E8319CC5186C5 /* SDWebImageWebPCoder.debug.xcconfig */, - A94B1CD664D156ABF8E1DA51098D41F0 /* SDWebImageWebPCoder.release.xcconfig */, - ); - name = "Support Files"; - path = "../Target Support Files/SDWebImageWebPCoder"; - sourceTree = ""; - }; - 094FF198A219620EA5A7C24B5C15D37D /* LLDebugTool */ = { - isa = PBXGroup; - children = ( - 2DF13BFF67642901DA2CD50501D90C6E /* AppInfo */, - 5992DE45111E29C98806D34577C34895 /* Core */, - ED208E689D15441CB0DFF4063D48EF23 /* Crash */, - 4903B4AA36DE7DE01F29CC50078DBE21 /* Hierarchy */, - D4C55484CD92E780B707846C969EAD89 /* Html */, - 774021B4032DBE07E6F10859DB0C8E10 /* Location */, - DEE0683429F6FD83610762383F8901B0 /* Log */, - E92B58FB1CAA9517FEB7032676C2970D /* Magnifier */, - E3466075291D98A72CCC7EE8C46A34F8 /* Network */, - 18B3202D425D52318CF1842C2D657719 /* Ruler */, - 47CC351E9581DAF77B7E03B145FB6530 /* Sandbox */, - 7F4C654F82CFB31F1776074CACBBE0C6 /* Screenshot */, - 595E70172F8CFD60D1C197E484896FED /* ShortCut */, - 2C502AAE5DC46DB59EAA8D71C9457D27 /* Storage */, - 0C5FD9099138E193884EC2E05455C602 /* Support Files */, - 7263F052233F866D3E9E138B293D9D8C /* WidgetBorder */, - ); - name = LLDebugTool; - path = LLDebugTool; - sourceTree = ""; - }; - 0AFF1E3B5736A927CF16BDFE5204C345 /* Frameworks */ = { - isa = PBXGroup; - children = ( - 3AA4F397EDE5C1D7038946A455CC9C90 /* AgoraFaceCaptureExtension.xcframework */, + E8B28E48EF07B30BEB9FFC5A755644E7 /* TIMPush.xcframework */, ); name = Frameworks; sourceTree = ""; }; - 0C5FD9099138E193884EC2E05455C602 /* Support Files */ = { + 093FC85AC6F5DD0C372CC7CD768D77FF /* Html */ = { isa = PBXGroup; children = ( - 20A3B8F1012D1AFC71E985A9D9C0F1A8 /* LLDebugTool.modulemap */, - 89B8C160C9B8FB244FD67C498B0F433D /* LLDebugTool-dummy.m */, - B1BFFE2F429ABB413F2F31F3C990B1EC /* LLDebugTool-Info.plist */, - 49CE5C3DC4D31F4B2E39E056A9AEA508 /* LLDebugTool-prefix.pch */, - 605B463D31C3111CE15C23C42A2243A1 /* LLDebugTool-umbrella.h */, - 987F50B8EC7D4A5A1CA1D8518129FDFD /* LLDebugTool.debug.xcconfig */, - C20969D5F396CD4CAB6E9EDA39EC279F /* LLDebugTool.release.xcconfig */, + 2921A1F4DC86BCE7F505F51D3C9DC18A /* LLHtml.h */, + 7C0FEDCED2F0A3D817915379F808E910 /* LLHtmlComponent.h */, + 9CEF4152C34AAF54F6E4F9F8820EA9E9 /* LLHtmlComponent.m */, + E14DEF22AF4250D11F2F22A453A3A435 /* LLHtmlConfigViewController.h */, + 99C9F6420E22E715A5EDD7BC667FB6BD /* LLHtmlConfigViewController.m */, + 4F8BD6F89587FED967455EC7405AE7C1 /* LLHtmlUIWebViewController.h */, + DE30E0E4C3B6299ED2521A89660768A3 /* LLHtmlUIWebViewController.m */, + 6E9AF43EF9A9E70173237D085D5D3F84 /* LLHtmlViewController.h */, + E9610F285E606B247996729D342EA2DF /* LLHtmlViewController.m */, + 07FDA729CDF8A809667CE7E8744C07A9 /* LLHtmlWindow.h */, + FDEA4EE17B8435E1A244FF956F57DC6F /* LLHtmlWindow.m */, + 37B2D8A9CCA85F0B562530AFC1FEC885 /* LLHtmlWkWebViewController.h */, + D29F11B1D1C5DE70CDD5EEE39537CD8C /* LLHtmlWkWebViewController.m */, + B6F5769BC1BCC9441BEC34B156174379 /* LLWindowManager+Html.h */, + F0257AE55D55EF4A62C2C9C57A1DD59C /* LLWindowManager+Html.m */, ); - name = "Support Files"; - path = "../Target Support Files/LLDebugTool"; + name = Html; + sourceTree = ""; + }; + 0941E2CBC62D38E691709EB01C70B8E6 /* Products */ = { + isa = PBXGroup; + children = ( + A4FA15D44DF6BAC7550EDEED10862AA3 /* AFNetworking */, + 8F0D4D4EC80F62CA54EAD5119A89EF03 /* AgoraLyricsScore */, + 0C6AF30DA9F94BBA4AD5F3DA3FA30177 /* AgoraLyricsScore-AgoraLyricsScoreBundle */, + 14A3FE4DA4CE007A926AAC6102122F2E /* AliyunOSSiOS */, + 5D73ED9DCB04D101A1FA489C7FB2A54D /* AliyunOSSiOS-AliyunOSSiOS_Privacy */, + 2CA925CF410A32FD7BF052406767BC59 /* AvoidCrash */, + 5BA6046B4C2674409C0D5625F45F8769 /* BRPickerView */, + B5786D7DC0F4D5F19C5C3E4160C54D30 /* BRPickerView-BRPickerView.Privacy */, + A3A80BA70CFB7F75C5391BEBBBA8C9DA /* FMDB */, + 148D9AC15C4A9777E5ACBB46C03FE218 /* FMDB-FMDB_Privacy */, + 98527D7196957AAB07B79E2E2AFDE23E /* IQKeyboardManager */, + A5B2838E4866923F3DA717B058EBFF5D /* IQKeyboardManager-IQKeyboardManager */, + C3A46B03C308EEEB11F2A62BA5D2E8BE /* JXCategoryView */, + BB4F011171FCB76B1AEBE390F843E930 /* JXCategoryView-JXCategoryView */, + 2F4A1CCB21DB7EA5A2ACEB11E374FBCA /* JXPagingView */, + E03F152E95B6924D2486511337D24503 /* JXPagingView-JXPagerView */, + 5E4674603A5D5B9215FFA0F8E69F8B71 /* libwebp */, + A3951CB49DB05AD7C1AE14AA7D28A1F4 /* LLDebugTool */, + 1FFED36A657123030ABB700256D73F15 /* Masonry */, + 8B8FAB0D627B17EDE1366984278705D9 /* MBProgressHUD */, + E49D6D248DD1CEE584E6776B9164A1B2 /* MJRefresh */, + 7E3097CFEFDA621E9FB0E62009FF87FC /* MJRefresh-MJRefresh.Privacy */, + C0E79AD53820186F5DE86726D150F447 /* MQTTClient */, + 8806024254F3EB0BE3C8A4EE1447B145 /* Pods-QXLive */, + CF003CA42C1A3BEB0DB3D0AE908137A2 /* Pods-QXLiveDev */, + C2105C94812B6214B154F54DCEDB72AC /* Protobuf */, + F777222FFBEEB0CE4650EE8A00938A60 /* Protobuf-Protobuf_Privacy */, + 46692FB12DB27794094D838DF87D563C /* QCloudCore */, + 3A29D7C214574D219F6C435101FF52C8 /* QCloudCOSXML */, + 8D4557A35A355F78DD9FFD8EAC379905 /* QGVAPlayer */, + 9621C6383F5733C35183B2DE886C7EC6 /* ReactiveObjC */, + 8B6CF5C20C32EE9F7F0862FF892524DE /* SDCycleScrollView */, + B0B214D775196BA7CA8E17E53048A493 /* SDWebImage */, + CF1281E58AA1045D4B7F33FC56691C42 /* SDWebImage-SDWebImage */, + FCF61D9B2B75054A9A3185DDC609B7FF /* SDWebImageWebPCoder */, + 91B23470DEB9A986332BEB5034234BC7 /* SSZipArchive */, + 3079401082458950495F2DC04E71FC4E /* SVGAPlayer */, + 69548067BF8002DF53941149BD410A1D /* TIMCommon */, + 1861D51E6AFECEB294232A4496429A63 /* TIMCommon-TIMCommon_Privacy */, + 8C3F1A0419AAD8065736DC7968102C54 /* TIMPush-TIMPush_Privacy */, + F00D49623A9DB6BF88121D1D25391F36 /* TUIChat */, + F8879DB9AD3F9A8F85D8C38EC2024D15 /* TUIChat-TUIChat_Privacy */, + C8FFAB06408747E7BA2A353127D4ACF8 /* TUIConversation */, + FC14DF02839D1B209B22801C7FCC416B /* TUIConversation-TUIConversation_Privacy */, + 37EA43C6154607EB4C385B067D4FF381 /* TUICore */, + 62476AD95833F1EC15B5FC7E01E6CB19 /* TUICore-TUICore_Privacy */, + BF12EF87337DED2D5544A4B5636CC4C7 /* TXIMSDK_Plus_iOS_XCFramework-TXIMSDK_Plus_iOS_XCFramework_Privacy */, + 8E1D5C0FCA0D872C3F21E87F25420681 /* TZImagePickerController */, + 642FEF38E132FB38DD2B59B88F069917 /* YBImageBrowser */, + 48ACF38225AF5129416A1F090F6D3286 /* YYCache */, + 1716B5FBCF0DF55C120AC52CFC22452D /* YYCategories */, + 0C6F4829D47D1826F47CDC4264F9F6A8 /* YYImage */, + E460D5B0416D36F66EE8EC89E5D2FA0A /* YYModel */, + 71762A728913EB440C97D3616D291AF3 /* YYText */, + 4FC1978206616CE319648B302B05AA8A /* YYWebImage */, + A845402EF959A57A4640F2A4F5155943 /* Zip */, + ); + name = Products; + sourceTree = ""; + }; + 09620E9C390C38639A1DDE74B9C5CEC8 /* Frameworks */ = { + isa = PBXGroup; + children = ( + 42B34A9453AFC086AD9C70B005091148 /* AgoraVideoSegmentationExtension.xcframework */, + ); + name = Frameworks; + sourceTree = ""; + }; + 09A78990FB9E7165FDCDADE28DCAB7D9 /* Pods */ = { + isa = PBXGroup; + children = ( + 53BA064B4B535D8CB03D3F8A70FFC7C3 /* AFNetworking */, + 9C183B0B0FEF56DE8E937130E6090EFA /* AgoraComponetLog */, + B881304D2A8814DA549A89F350EDD7BA /* AgoraInfra_iOS */, + 3070653161CF7F75092242D41B7B3F85 /* AgoraLyricsScore */, + 03919B68EB58B309A0A59A4600E1B4FF /* AgoraRtcEngine_iOS */, + 10F70C133C75B4E82686975F9638576C /* AlipaySDK-iOS */, + E4EBA5F01478E20A1196D498F0534B86 /* AliyunOSSiOS */, + 575B8FFC3504FDA41190188162F97DB5 /* AvoidCrash */, + 60B6010866D140D03545D168FCB18734 /* BRPickerView */, + 87098415178CC03502B5D76CCD5AE04A /* Bugly */, + A730DFF3725311969C177005890E1E80 /* FMDB */, + 9DD5B1A50C8AA42D690B2E5564335DF9 /* IQKeyboardManager */, + E750AEBE16157ECA4D8B407366EFBBFF /* JXCategoryView */, + 8BA162B85AAD47F997B025DB0DF00E98 /* JXPagingView */, + F17EB15AE0FDF45C04E8FE17F9622E3F /* libwebp */, + 6F293977D539FCDCDD55EE6DE922090B /* LLDebugTool */, + B54A38FCEE1EA25F5CE6A7FE9673C7C9 /* Masonry */, + 47322CE029FC9194B6F62C0AF9296B8C /* MBProgressHUD */, + E1273FC545E31F2B19878D0EF471D954 /* MJRefresh */, + 1B928DDD2540B61615859EC7708597CE /* MQTTClient */, + AD13FC4DC881D8451BD3646C26F63158 /* Protobuf */, + 8F43D9AB1CFDCA33904F150363BC2C80 /* QCloudCore */, + 93D646B07457CA3515378F69D334B3E7 /* QCloudCOSXML */, + 4182B290A81810E167941C963B5CC3A4 /* QGVAPlayer */, + BB81769C2F7A4B8EBEB9F9B854D51932 /* ReactiveObjC */, + 8B5576C8562CCBDECAA13A0596B8FEFE /* SDCycleScrollView */, + 63BEFFD16CA4CD952CC40293A542B016 /* SDWebImage */, + 166C6820ADD2D296A2F077753C88C1B6 /* SDWebImageWebPCoder */, + 9578587E21E66877DC2EA8D93688BA69 /* SSZipArchive */, + 8AF55E1DAD15740CED56C178581082E5 /* SVGAPlayer */, + 29699849EBE082E767A596DCC59412C2 /* TIMPush */, + 18C1C5DB6F4A8FC09742CAA0CCC1D8AF /* TXIMSDK_Plus_iOS_XCFramework */, + 9D5707163CE8FA8DE1BD9716BEF7AAE7 /* TZImagePickerController */, + 7A0DC21AAF931C8CCA664C05A6DC4995 /* WechatOpenSDK-XCFramework */, + 0CC947E5691A80C824BE78C592DFCBD5 /* YBImageBrowser */, + A8EAB7A6A2C899ACF1BDB6E12B94AFC9 /* YYCache */, + BBC483E3772FBC4B16FD4EB136929646 /* YYCategories */, + BAFDEC8A4EF30E4F9B60C57671A9C5BE /* YYImage */, + 77814B16737236287DD206044619FE6A /* YYModel */, + 7CA0A4766D005CB1ACCB69F5617BE6B2 /* YYText */, + 557F219E799C41D00DDE20A276CB0E53 /* YYWebImage */, + 6B2016670209793A08CFD21660BF6E7F /* Zip */, + ); + name = Pods; + sourceTree = ""; + }; + 0CC947E5691A80C824BE78C592DFCBD5 /* YBImageBrowser */ = { + isa = PBXGroup; + children = ( + 9126B1AEFC49E89A8782EDA1C42074FE /* Core */, + 8AA3FA01EDF14BB227E0B05D7F96350F /* Support Files */, + 71DC8ED45B65DE88A0FA1CFCDE82B101 /* Video */, + ); + name = YBImageBrowser; + path = YBImageBrowser; sourceTree = ""; }; 0CD5E1F2689A4FB0804C0F9C255FD888 /* Cell */ = { @@ -7626,154 +8370,98 @@ path = Cell; sourceTree = ""; }; - 0D8C86925108957CC8CD187A9363F615 /* Resources */ = { + 0CE85CFEB44E8EB82B34AA5ADD781C4D /* Support Files */ = { isa = PBXGroup; children = ( - 6F9F72D68CA995FF6902BADCC34B6E3C /* PrivacyInfo.xcprivacy */, + F4863A97544D4F1132BE48855070A653 /* ResourceBundle-SDWebImage-SDWebImage-Info.plist */, + 126BA284242F73A99913BE9B9D42AAE6 /* SDWebImage.modulemap */, + 38B548276CBDD58FCFE13856ADA58FFB /* SDWebImage-dummy.m */, + F668719FAAD4F0CA9C2A742EF2C74763 /* SDWebImage-Info.plist */, + E8DD1CB09A0336A45AA2E1FCF9C8F71D /* SDWebImage-prefix.pch */, + E68BAAC2BD14E395860B9FCECB394C41 /* SDWebImage-umbrella.h */, + 1716232139CC5201D57DB0BC972C8EA4 /* SDWebImage.debug.xcconfig */, + 50CB953D9D3B4F72E9ED204CAD506CAC /* SDWebImage.release.xcconfig */, ); - name = Resources; + name = "Support Files"; + path = "../Target Support Files/SDWebImage"; sourceTree = ""; }; - 0FFA05FBEBE421F614B22065EDD1C966 /* Resources */ = { + 0D18BA9AFD3CE2962175AFC68FEB8E06 /* Support Files */ = { isa = PBXGroup; children = ( - 3A2674A2B952E3636D3DCBF9C83BE1B8 /* Media.xcassets */, + 24D778ECA14E184A4CF72F4BB4E7D79B /* Bugly.debug.xcconfig */, + F3739706ADBC95382D973991D343B376 /* Bugly.release.xcconfig */, ); - name = Resources; + name = "Support Files"; + path = "../Target Support Files/Bugly"; sourceTree = ""; }; - 12D420D4BF59F405B5BA86BE5C71178D /* WebP */ = { + 10F70C133C75B4E82686975F9638576C /* AlipaySDK-iOS */ = { isa = PBXGroup; children = ( - E051555C107789D7D7B9AA800CA02735 /* Frameworks */, + BA8A4851A814D3392B85C5B80CEB33FF /* Frameworks */, + 745839B8B0C6DD40D54FF081D03A2D46 /* Resources */, + 1ADB3F452F48510E799DE6A2A8CB3C08 /* Support Files */, ); - name = WebP; + name = "AlipaySDK-iOS"; + path = "AlipaySDK-iOS"; sourceTree = ""; }; - 12E6D3AC9756415E874EF53E5A073BFB /* Resources */ = { + 115A917F1DF91569B4A7A94B3F955EC5 /* sharpyuv */ = { isa = PBXGroup; children = ( - 2698E77D6C0E185839BCB7FFDC1A9658 /* BRAddressPickerView.bundle */, + 8C93EEA40FE0DA8CB90A713BA52C61B2 /* sharpyuv.c */, + B28BF8818C10BF7170B4BA56EF96834F /* sharpyuv.h */, + B00DA237ADEF5F3B79A18F2D994EAE07 /* sharpyuv_cpu.c */, + 4545EA2AC0F863D487A9A624FC563DB0 /* sharpyuv_cpu.h */, + C1E1AC30B88AF0AA1FBE23726D6D264D /* sharpyuv_csp.c */, + 15A33D6AE6F352803CE3BA0C735F26B8 /* sharpyuv_csp.h */, + 7E7F426B17E68809DC64043CCDD166B9 /* sharpyuv_dsp.c */, + E1828373766AE5D4C3F5D785FE41B81C /* sharpyuv_dsp.h */, + 9A651EC9070289A97EF337EFE867B426 /* sharpyuv_gamma.c */, + 7CE17C93C73BB3A3750816869E6D7288 /* sharpyuv_gamma.h */, + EC8EDA2AD254FBD42815A4AF21830A39 /* sharpyuv_neon.c */, + A134B62F97284007A18D1FEA61377950 /* sharpyuv_sse2.c */, ); - name = Resources; + name = sharpyuv; sourceTree = ""; }; - 12FB146E00509D5EEDE653C8F2AF5773 /* Security */ = { + 11E82E3FA698D4286DA12DD4BF0AA95B /* UIKit */ = { isa = PBXGroup; children = ( - 01CF471971FD11F12FA8B912C4FF5FD1 /* AFSecurityPolicy.h */, - 879DDC7E616BA6935102ADD78F720882 /* AFSecurityPolicy.m */, + 464CEA7C113FAB329A4414AE96B55A64 /* AFAutoPurgingImageCache.h */, + ADE31962E6DAEF6C1F5352D7020EAD0A /* AFAutoPurgingImageCache.m */, + AC2534F6DA9CD0DE92D5AD36466B46CC /* AFImageDownloader.h */, + 193B8DE441F822996DB85CE1E778E140 /* AFImageDownloader.m */, + E7F470C1AAF30E9BE42D163CB95B0C90 /* AFNetworkActivityIndicatorManager.h */, + 41E17BB7482527F1150B0125BDE89249 /* AFNetworkActivityIndicatorManager.m */, + 03BF43093B19208E3AE16619EEF6EE57 /* UIActivityIndicatorView+AFNetworking.h */, + BA05A74193017E1B72355F6DBA29D068 /* UIActivityIndicatorView+AFNetworking.m */, + 8A31C5ACB803D9BB5674006841EEF304 /* UIButton+AFNetworking.h */, + 7EEA1E1BB5437E90728E35ED0A840516 /* UIButton+AFNetworking.m */, + 75E14A26B2443DB8636F73380840454C /* UIImageView+AFNetworking.h */, + 2E0E74DDEF5598A8AC34DE1381BBE2F9 /* UIImageView+AFNetworking.m */, + BC29A2455DEEC2E1DC7C35DE7214705D /* UIKit+AFNetworking.h */, + 230AF4A6C6B69155BA2EFCECF574EEEF /* UIProgressView+AFNetworking.h */, + A519F1F393FB879673BD511BC859018E /* UIProgressView+AFNetworking.m */, + 1A95A841692B05AA71D9B23913C6DCB1 /* UIRefreshControl+AFNetworking.h */, + B656772A40F6C7D8AA8B172EE33D1AD1 /* UIRefreshControl+AFNetworking.m */, + 54E7E679235871C331C4566524F5D0E0 /* WKWebView+AFNetworking.h */, + 0181B85525623BF13C065D6FC2A0014E /* WKWebView+AFNetworking.m */, ); - name = Security; + name = UIKit; sourceTree = ""; }; - 13ADFBECC3EC0E6BBD2CA9C1E1E90492 /* Frameworks */ = { + 12C9165C5CA536E94EFA453189497188 /* NSURLSession */ = { isa = PBXGroup; children = ( - 19E9FFA06A50A1FA4E030472C000813B /* AgoraAiNoiseSuppressionExtension.xcframework */, + 54A34D23FFDF5900855CC9BC436FB705 /* AFCompatibilityMacros.h */, + 28D28484E843EAB89818F3F533CD1FC3 /* AFHTTPSessionManager.h */, + 051F1766A9870CFBD8C0C678367C5767 /* AFHTTPSessionManager.m */, + DC59393E8A79060D096924489FACD258 /* AFURLSessionManager.h */, + 82ED1D75E12BD82491ABBEC5F5DBBD68 /* AFURLSessionManager.m */, ); - name = Frameworks; - sourceTree = ""; - }; - 1420EC528DF9EB85A98135771E00C9BC /* JXCategoryView */ = { - isa = PBXGroup; - children = ( - 13FA732875D7053C925CF325B53FDB01 /* JXCategoryBaseCell.h */, - 18CAAFC88AC77CDDEB1287E1863E3537 /* JXCategoryBaseCell.m */, - 63194898AEFB1F9FED9915979FABB9FE /* JXCategoryBaseCellModel.h */, - AEACA15144FB9B5E808C6C900F0794F0 /* JXCategoryBaseCellModel.m */, - 81236901A91A3903EF88042EEC4E90BF /* JXCategoryBaseView.h */, - BFED9E7FA8A9FDD85D5E48A13B8E8F85 /* JXCategoryBaseView.m */, - B107938941210ED2FBABCD7AF027331D /* JXCategoryCollectionView.h */, - 3BC91A08AACBA542289DE7ADBF5396BC /* JXCategoryCollectionView.m */, - A4DFCF7FE09ABB20B39A07DB8F4FEF55 /* JXCategoryDotCell.h */, - E7BA158897808F571256C02BA01E24B1 /* JXCategoryDotCell.m */, - 71316F73E160DAFDD81D10D6C6E7B053 /* JXCategoryDotCellModel.h */, - 590F344CF409111B5256DA6950955CEB /* JXCategoryDotCellModel.m */, - 09B2A461423A6F18B3B5EF622C4E76B5 /* JXCategoryDotView.h */, - 4479C9CE8CBE5C54A6538FA431D9EE7F /* JXCategoryDotView.m */, - B5A0554B0D24867830340AC05E6BAF2B /* JXCategoryFactory.h */, - DEDB4EECD3C10FF0873723E9D93C2C36 /* JXCategoryFactory.m */, - E6D13CF8672AD03F8C407B5BA2045DF6 /* JXCategoryImageCell.h */, - 4BA768D40DC69C52510EB28570C9D8AB /* JXCategoryImageCell.m */, - 059B5D409318CD8D93A66EB097A041E4 /* JXCategoryImageCellModel.h */, - 37D6F7F59608D31B5D1DED1686D45B21 /* JXCategoryImageCellModel.m */, - EACE11D589387CF44A921B85EE6B8559 /* JXCategoryImageView.h */, - 0D38F2A723076F7CCAF1D9266C5EB54C /* JXCategoryImageView.m */, - 7223D9EBC06D49EABD3C615105D8DD6A /* JXCategoryIndicatorBackgroundView.h */, - 8CDBCCA12A44826584E068F9D41B2142 /* JXCategoryIndicatorBackgroundView.m */, - A8A32CD9B11823592DA39852F5A8C987 /* JXCategoryIndicatorBallView.h */, - 49BB7730AD6B24BB53B32F573022429E /* JXCategoryIndicatorBallView.m */, - 64BF158414578943E8015D33BD5CB900 /* JXCategoryIndicatorCell.h */, - ABA8E1CEBD8426E600EEAB98C79995D1 /* JXCategoryIndicatorCell.m */, - FA31F462469FB019EF34797C11A4F6DC /* JXCategoryIndicatorCellModel.h */, - 832302185FF62A978FE3E99CFB7F2271 /* JXCategoryIndicatorCellModel.m */, - 4A63CB94EA8C84203F71D1CA1C2DD532 /* JXCategoryIndicatorComponentView.h */, - 0D5EE78234CA8C94A9E8DCD58F4FA2C2 /* JXCategoryIndicatorComponentView.m */, - 3A08A5E94EC468E382567565BA021F6D /* JXCategoryIndicatorDotLineView.h */, - 027A2D4E65C17B84DCD7B5151FBF6BE4 /* JXCategoryIndicatorDotLineView.m */, - 2D7F8AC7B90B364A3EE09B385229FF31 /* JXCategoryIndicatorImageView.h */, - 13B8E0192C98B212CBDA3BC676AEA5DF /* JXCategoryIndicatorImageView.m */, - 695AABDC88C9C22D5B340CA077894EF7 /* JXCategoryIndicatorLineView.h */, - 17069CF4EF1C5A1762BB7B0F6C0A356B /* JXCategoryIndicatorLineView.m */, - 347D304AA51F0A3E612D713E96B253DA /* JXCategoryIndicatorParamsModel.h */, - 3E78254046E55473DBFA5F1736E256ED /* JXCategoryIndicatorParamsModel.m */, - AA7C34CC343507C125EB6837C6748B5E /* JXCategoryIndicatorProtocol.h */, - 56039E928BC98914D3D7BC3588147DDE /* JXCategoryIndicatorRainbowLineView.h */, - 05BACFC5C27CC08ADFFEE87EAE8C1090 /* JXCategoryIndicatorRainbowLineView.m */, - 2E8B62DEA836832696F69521DD582284 /* JXCategoryIndicatorTriangleView.h */, - 11F1C3E3E8441B3753F61FF2076D667C /* JXCategoryIndicatorTriangleView.m */, - 3EA6D898EDE093F327BE43FE2CAEC65E /* JXCategoryIndicatorView.h */, - C0219029E9E43C08F49F43F62C517DB1 /* JXCategoryIndicatorView.m */, - 22BB10C33BB18B3202A34C7D2A937F0C /* JXCategoryListContainerRTLCell.h */, - EDAF9D4D062D739B0C83C766F29654CB /* JXCategoryListContainerRTLCell.m */, - 6E712AD6ABD4B985271A5F2E81078CB9 /* JXCategoryListContainerView.h */, - 91ADEA4F53077616A3CC66A8692FD31A /* JXCategoryListContainerView.m */, - C51F53C378A097EAB86127ED017F91E5 /* JXCategoryNumberCell.h */, - 5BE5EB1092638E4D5B43B0EAAB04EEF5 /* JXCategoryNumberCell.m */, - E84F06C7A76FC325AEB48DF2222C1A25 /* JXCategoryNumberCellModel.h */, - 2046F5DB3072AA404306987E5954F7E9 /* JXCategoryNumberCellModel.m */, - C305ECE4CDC593B8966FC35CFEE40E8E /* JXCategoryNumberView.h */, - 39F20F182CE4DA5C4011C05FD04682B7 /* JXCategoryNumberView.m */, - 10482229F1C33E5B6D0103805A45AE8C /* JXCategoryTitleCell.h */, - A263E84B5986F0B3C802912C58328C7F /* JXCategoryTitleCell.m */, - A481BD1A25570E9A260F3C4695AA265E /* JXCategoryTitleCellModel.h */, - 932104682567C1662DFE0661EAD36CD9 /* JXCategoryTitleCellModel.m */, - 0D2CD83606622C586990024E0548D5DC /* JXCategoryTitleImageCell.h */, - 13A5F69D2737AD399E5116EF238F4BE5 /* JXCategoryTitleImageCell.m */, - 470C958CEF97EF9DCAEA9EE882D6BF21 /* JXCategoryTitleImageCellModel.h */, - DB3B7F8A30B262F80B31FA820ED5A470 /* JXCategoryTitleImageCellModel.m */, - 81B73281D5838D27D169AE5A277ABD11 /* JXCategoryTitleImageView.h */, - DD67E642C4D1A4567F01E99E077A562A /* JXCategoryTitleImageView.m */, - C2B9A16A2621EE7B88699C69BDF6B6D1 /* JXCategoryTitleVerticalZoomCell.h */, - 9CEB99840ACC3ABDB8078496E670623E /* JXCategoryTitleVerticalZoomCell.m */, - 20CA6B0B009D02EE41529269BB0B0177 /* JXCategoryTitleVerticalZoomCellModel.h */, - A8CA6A684C2248FBF8810DA9E2C4B5F4 /* JXCategoryTitleVerticalZoomCellModel.m */, - 8498FE3C5D61C2994C40CD9DF77DA30B /* JXCategoryTitleVerticalZoomView.h */, - AE81EE30D65E00E270693FAEB2AD269C /* JXCategoryTitleVerticalZoomView.m */, - 320209B1B0F7E135EA478D3FEF6BE049 /* JXCategoryTitleView.h */, - 7FC482CCFC42F915F06023F8A7DF40E8 /* JXCategoryTitleView.m */, - 979D01138FFAA7C8E7C2B9EEC17F1DEE /* JXCategoryView.h */, - 0DD13064D19D1D06B109048495DD25FA /* JXCategoryViewAnimator.h */, - 0747F58A19EB5B80AC8B61BAD0BF1C0B /* JXCategoryViewAnimator.m */, - FB65E787DBDD6C075BE105BBFC677E96 /* JXCategoryViewDefines.h */, - 6CB8FE27AB427D9D21522E9B878B3336 /* RTLManager.h */, - 65226C8099E6CB9B0B3B9DF6ED9D7BA8 /* RTLManager.m */, - BAF9BE5954777541BF814E47C33C935E /* UIColor+JXAdd.h */, - 18B7096A5E2FB6204CEB59A13E752361 /* UIColor+JXAdd.m */, - CCC76F060E82EF100734DC767AB1F8E5 /* Resources */, - D44A7677A10CE6916435CC99FFFE5CBE /* Support Files */, - ); - name = JXCategoryView; - path = JXCategoryView; - sourceTree = ""; - }; - 149DA5B64AED3321A4A1E892A6F46081 /* ReplayKit */ = { - isa = PBXGroup; - children = ( - 8CBA449221131750409516883FF3D936 /* Frameworks */, - ); - name = ReplayKit; + name = NSURLSession; sourceTree = ""; }; 15D5B0217CB989BFE8FDBDFDFD595257 /* Service */ = { @@ -7813,88 +8501,72 @@ path = ../TUIKit/TUIChat; sourceTree = ""; }; - 16C1A2AA834E650F75F73A49ABB5B83D /* Frameworks */ = { + 166C6820ADD2D296A2F077753C88C1B6 /* SDWebImageWebPCoder */ = { isa = PBXGroup; children = ( - 2D7E54CAD410150517D379095DBD833A /* AgoraVideoDecoderExtension.xcframework */, - 61DE752A6D1CF125C5A2A5BD48BA0227 /* video_dec.xcframework */, + E5946F09464FE288F219AFED01ADC592 /* SDImageWebPCoder.h */, + 47AA2B6BDCF9094B1400FB48698EAE18 /* SDImageWebPCoder.m */, + 05799F519CA6516CC4DB8F360246FC40 /* SDInternalMacros.h */, + A470008A38B5DFD5F7A75E35F2C2D778 /* SDmetamacros.h */, + 95A3324CA0FE1B9B3F9E4D935B5E655F /* SDWebImageWebPCoder.h */, + 707857DC38035C14923222062751DD87 /* SDWebImageWebPCoderDefine.h */, + 4F053A8BB4012F91DA472CE271FE0C3B /* SDWebImageWebPCoderDefine.m */, + 32D76BD34CD2BE0A545513A0C0E136DF /* UIImage+WebP.h */, + 502439F27906B715098E164CB607F37D /* UIImage+WebP.m */, + CC0CA982F01B9C0BE0ACBB1B7474E53B /* Support Files */, + ); + name = SDWebImageWebPCoder; + path = SDWebImageWebPCoder; + sourceTree = ""; + }; + 167C99F6513A1617A18AB8C67D98191C /* Support Files */ = { + isa = PBXGroup; + children = ( + D3BA422BFCBE62C868DFC67AAE710A1E /* FMDB.modulemap */, + A7419C5AE8251BEFC0F64A5B6585B79A /* FMDB-dummy.m */, + 9691510F8293B6C3C3620A1B5CF6EC68 /* FMDB-Info.plist */, + 491AC60B9EA27D9A0A73E8B4022CAA04 /* FMDB-prefix.pch */, + 876F9A889959089D5C1BC6EB86A4BACA /* FMDB-umbrella.h */, + 12EF51BACC197258B8B67C383A336E35 /* FMDB.debug.xcconfig */, + BAD3D4F05D735E651C44225EEBA0ED08 /* FMDB.release.xcconfig */, + 0CE660FB2BC9FCC0ADA5A373DB1AC30E /* ResourceBundle-FMDB_Privacy-FMDB-Info.plist */, + ); + name = "Support Files"; + path = "../Target Support Files/FMDB"; + sourceTree = ""; + }; + 178C5CD0B196FF3CE9A1BDC9A8F5994A /* Frameworks */ = { + isa = PBXGroup; + children = ( + D51CBD6D22A4E97F4C979DB181064FF2 /* AgoraClearVisionExtension.xcframework */, ); name = Frameworks; sourceTree = ""; }; - 1825601ECAE8B898CB86CD707605BBA4 /* Resources */ = { + 18C1C5DB6F4A8FC09742CAA0CCC1D8AF /* TXIMSDK_Plus_iOS_XCFramework */ = { isa = PBXGroup; children = ( - FB399EEC52490F7CC6066187151BB2F2 /* PrivacyInfo.xcprivacy */, + 04208E633EAF38299251012341135285 /* Frameworks */, + 590436FBC8F4C69653D1166F29209545 /* Resources */, + 5F502D7D3954F18F8E820DF584CEE465 /* Support Files */, ); - name = Resources; + name = TXIMSDK_Plus_iOS_XCFramework; + path = TXIMSDK_Plus_iOS_XCFramework; sourceTree = ""; }; - 189E099052DAA18D39D6ADB7E23DA337 /* YYImage */ = { + 190C188984D8AE659EDBA10DA75F4B7C /* Support Files */ = { isa = PBXGroup; children = ( - A84E103A9F5A11D87EAF12ABED34FDDD /* Core */, - B4D9536764F0ED4CF0E9A4BDA375FD90 /* Support Files */, - 12D420D4BF59F405B5BA86BE5C71178D /* WebP */, + 2AB908F82047BCCE323274DF95F5D89C /* YYWebImage.modulemap */, + 1F821D96E4D6D12CCD9302BF748763FB /* YYWebImage-dummy.m */, + 30C63B80F2734C318ABB99335F44B65F /* YYWebImage-Info.plist */, + 60032E39B89A10E14CEC2557336A62AF /* YYWebImage-prefix.pch */, + 1091026C99A74FE986F2EF251172CD33 /* YYWebImage-umbrella.h */, + D3B5ABAAD3C55CA06C58BC87CEED0469 /* YYWebImage.debug.xcconfig */, + 848C0FBEC76DA925072947778D53BC60 /* YYWebImage.release.xcconfig */, ); - name = YYImage; - path = YYImage; - sourceTree = ""; - }; - 18B3202D425D52318CF1842C2D657719 /* Ruler */ = { - isa = PBXGroup; - children = ( - 0B55B78A78D7706936B1F477109CCBFC /* LLRuler.h */, - 2D6A96693141627C8469538ADC1E3C39 /* LLRulerComponent.h */, - FF580315006F92336B16CDBFA1B405F4 /* LLRulerComponent.m */, - 72624D1A372CA9B53E4ECBBAA599F8FE /* LLRulerPickerInfoView.h */, - 7BD65414F9161E090DAD5B80CE95692E /* LLRulerPickerInfoView.m */, - A8A2450686AD874CEBB426F8893F380C /* LLRulerPickerView.h */, - 6823CB3D85EB4B1D66AA03F787EE9139 /* LLRulerPickerView.m */, - 51AF8113A6263D3CDE7BE5C614A554BA /* LLRulerViewController.h */, - F3FD7DBCFAAD619E4C1CFD8A572F0FD1 /* LLRulerViewController.m */, - 7904B187B62CC80CCC17E0510619D9E5 /* LLRulerWindow.h */, - C9C1427EA71BE8756DB2B4291DDA4691 /* LLRulerWindow.m */, - 0A0A30A7EEB2984A729A6C7679BCB6CD /* LLWindowManager+Ruler.h */, - D374C3674BBC4C3442B6B5FE6EB8874E /* LLWindowManager+Ruler.m */, - ); - name = Ruler; - sourceTree = ""; - }; - 19E012A8996B15BA1022248E5CC0E61C /* Frameworks */ = { - isa = PBXGroup; - children = ( - F18BF9AED1CFB6B7419D5546E97CE50B /* AgoraVideoSegmentationExtension.xcframework */, - ); - name = Frameworks; - sourceTree = ""; - }; - 1A2414845E80BF2DAEAB6244119DC05C /* YYWebImage */ = { - isa = PBXGroup; - children = ( - DF8F1B5D47F63BF3020FEC73C56ED31A /* _YYWebImageSetter.h */, - ECC5067C3FE740EE8944EB3549AA154D /* _YYWebImageSetter.m */, - C28DDEE1CE0413791FE27CABF81EDDB6 /* CALayer+YYWebImage.h */, - C3982FC450A5BEC72FEA666A8BE3DD3D /* CALayer+YYWebImage.m */, - 8A1D8ADFC778F8EED6176108D81AB894 /* MKAnnotationView+YYWebImage.h */, - 82E8B5703081A4208F68D18A58201CD8 /* MKAnnotationView+YYWebImage.m */, - 57A76A0817AB9141CEAE4DF9EE1FCF2C /* UIButton+YYWebImage.h */, - D2C72257FB63B5EA50AE6A8C3222B5D3 /* UIButton+YYWebImage.m */, - FDD7FD54D966647F8441CF24F69FDEE4 /* UIImage+YYWebImage.h */, - EEBEDD218764032003B5BF12AD62BE02 /* UIImage+YYWebImage.m */, - 13922E11F6337C4C9A1D4C124E5EE7BA /* UIImageView+YYWebImage.h */, - 041B83AC677DA064EE9BD3D9557991DF /* UIImageView+YYWebImage.m */, - 82FE32D6CFD69029C95673FB63B1A39D /* YYImageCache.h */, - DBAECD1D58D515C5B33AFAB085E02781 /* YYImageCache.m */, - BE7128B3243B044F8F84F39B4078CC36 /* YYWebImage.h */, - A91C9B42E42536E5D074D2A7DD70F8FF /* YYWebImageManager.h */, - AA08BF9F59DD8D7D975269572F90DE81 /* YYWebImageManager.m */, - 45747E992794769A411E7106BAE44257 /* YYWebImageOperation.h */, - AEC23BD1487B0F695EE3C72A92218241 /* YYWebImageOperation.m */, - 466173E88DC798341FB59CA3269D854A /* Support Files */, - ); - name = YYWebImage; - path = YYWebImage; + name = "Support Files"; + path = "../Target Support Files/YYWebImage"; sourceTree = ""; }; 1A27AF7140DE88280005FDB90A2B9610 /* UI */ = { @@ -7913,6 +8585,17 @@ path = UI; sourceTree = ""; }; + 1ADB3F452F48510E799DE6A2A8CB3C08 /* Support Files */ = { + isa = PBXGroup; + children = ( + 78880351E0F1EAC9BA7AA75AC6858179 /* AlipaySDK-iOS-xcframeworks.sh */, + EEDFB1859D92A1C8BAE471FFE88FE3E2 /* AlipaySDK-iOS.debug.xcconfig */, + 29FBCC92D682EDD34E9423145A579B6D /* AlipaySDK-iOS.release.xcconfig */, + ); + name = "Support Files"; + path = "../Target Support Files/AlipaySDK-iOS"; + sourceTree = ""; + }; 1B881A3C50E3348E81074A8E46CC5324 /* Custom */ = { isa = PBXGroup; children = ( @@ -7929,6 +8612,17 @@ path = Custom; sourceTree = ""; }; + 1B928DDD2540B61615859EC7708597CE /* MQTTClient */ = { + isa = PBXGroup; + children = ( + 3229768A0D9FA33369AC0AC428516F27 /* Manager */, + 61E6DD927262B54F7D612E6486A090DB /* Min */, + E3A1F33B81C6499194D39E0A5367237A /* Support Files */, + ); + name = MQTTClient; + path = MQTTClient; + sourceTree = ""; + }; 1BF2EE6833E61114DDD4D3F4DED7CDA8 /* CellUI */ = { isa = PBXGroup; children = ( @@ -7939,6 +8633,14 @@ path = CellUI; sourceTree = ""; }; + 1C0EF03D0BB39A755BCD53D5B0AA6C80 /* Frameworks */ = { + isa = PBXGroup; + children = ( + 38BDAD26DBD09CF5C97C92BC5898EE60 /* AgoraVideoQualityAnalyzerExtension.xcframework */, + ); + name = Frameworks; + sourceTree = ""; + }; 1CBF31B94F7CBADC0165A15428D78172 /* Camera */ = { isa = PBXGroup; children = ( @@ -7968,315 +8670,70 @@ path = Camera; sourceTree = ""; }; - 1D5D84D9C14C152774223FB95ABFFC8E /* Support Files */ = { + 1D0D41C8744205587D8F9D851D8759AD /* Frameworks */ = { isa = PBXGroup; children = ( - 03C70B2B7D74D31A1BC510EC918BEA1F /* Bugly.debug.xcconfig */, - 3A55E0B8409973D29041C0DF40B38366 /* Bugly.release.xcconfig */, + 0A10228A512ED1CEB609122BF4CE1612 /* AgoraLipSyncExtension.xcframework */, + ); + name = Frameworks; + sourceTree = ""; + }; + 1FAEA9DEF6B2D379FA39F4608DB0E2A6 /* Support Files */ = { + isa = PBXGroup; + children = ( + AC0E4AABA42DA7103F94CB7036A8B98A /* SSZipArchive.modulemap */, + 14DBE1B6DBE5D9646D9DD05011D55B51 /* SSZipArchive-dummy.m */, + 958B0EAFAF6E8E42C805AE3BD743DAC4 /* SSZipArchive-Info.plist */, + 0D40C51B78D866B14BDA9BF330E9CD47 /* SSZipArchive-prefix.pch */, + C420B69D849181FD011FAD3D8E9B6518 /* SSZipArchive-umbrella.h */, + 0AF9691CBD931F8DB1AB89D3DC087C3D /* SSZipArchive.debug.xcconfig */, + 330637CF749ED5BCC479A9632969669E /* SSZipArchive.release.xcconfig */, ); name = "Support Files"; - path = "../Target Support Files/Bugly"; + path = "../Target Support Files/SSZipArchive"; sourceTree = ""; }; - 1DDC7AC14EDDA94C8E0DBFF1952F285C /* webp */ = { + 1FD3772C8A246B578BE4EB030071B268 /* Frameworks */ = { isa = PBXGroup; children = ( - 80F60B3CBE5F9E587140DB5C4FFB26D9 /* alpha_dec.c */, - 6198CD0C7F87CCCA1BECDBC050110782 /* alpha_enc.c */, - 9A9280CB44A2E836FD369210C0414A0A /* alpha_processing.c */, - A5605D39F81419C8807BA8D96CB91D39 /* alpha_processing_mips_dsp_r2.c */, - E5203DCBA0556E62B9ABE25D1C77D379 /* alpha_processing_neon.c */, - CF552B94D869FC0760C9EF232E9EF18D /* alpha_processing_sse2.c */, - C77AACE739BCE1A5E9D096C6E6898494 /* alpha_processing_sse41.c */, - 0A7CDDBA8880F80FD104AFB2642BF97F /* alphai_dec.h */, - 60B3CD5B3DE785277672733EE37738DC /* analysis_enc.c */, - 3968D5977847797BCA5DA4441827276F /* backward_references_cost_enc.c */, - 0B823B00FB1D408CA71ECBAC8D7AC4D6 /* backward_references_enc.c */, - 7460B953F2664BBC07950D2921C6B42C /* backward_references_enc.h */, - D310A2CB30D273BCCE0133B8B391E30E /* bit_reader_inl_utils.h */, - B708C0DD3E89131594A6BE90E31BC52A /* bit_reader_utils.c */, - FC8965E29F7E2C92477174EF5568E76E /* bit_reader_utils.h */, - 3EB054E887D05E31BDE825726592B763 /* bit_writer_utils.c */, - 4184DCBB71B713497DD98B62D1032660 /* bit_writer_utils.h */, - 99969904C7B66F20281BD1B8BE69A6F8 /* buffer_dec.c */, - C919EE910E10E500F80D563FE6E49F58 /* color_cache_utils.c */, - CB10BE9386BC5C570038D73529404555 /* color_cache_utils.h */, - C62A1642783C59A2A71ACACE461E7F13 /* common_dec.h */, - 234F27068DB78A5D9A3FEDF406C515DE /* common_sse2.h */, - 644C5E1632EC58931811708AC07F12B3 /* common_sse41.h */, - ABC7E828C1EFC4EDEBB35D12432C1DC1 /* config_enc.c */, - 8DE522F509CDE89640D03DA4E47811DF /* cost.c */, - F5AFE27AA6DCC84ED5E9D0C15A91CB02 /* cost_enc.c */, - A86844415CF8A5AC53565B3B024C3D83 /* cost_enc.h */, - 970AF4B7BFE170D4945250E644A45414 /* cost_mips32.c */, - 19EA860424B2E003DEF032573D40DF17 /* cost_mips_dsp_r2.c */, - 012D8F28477FDD72A4BBA154968DBEA3 /* cost_neon.c */, - 2C60157F1A8157F2531B2C855355BAFD /* cost_sse2.c */, - ABF0400160196B408E6C52FE008EBDAB /* cpu.c */, - 8E2D13DEE04802DDF97C031B055D5CD4 /* cpu.h */, - 28011C0095CBB91AE3686E2C02CFE20D /* dec.c */, - E6187E2A44D5D42825768D5BB2D1EC18 /* dec_clip_tables.c */, - 5496A6590FB24C60ED57717FE61C81A0 /* dec_mips32.c */, - 515FE8950262AB8FAD2DC3C9C5F11862 /* dec_mips_dsp_r2.c */, - 933597D58F60972C9FBCA1DDFD489C49 /* dec_msa.c */, - 5853E4C7D318DEA2F3B4365F7197455B /* dec_neon.c */, - 5EFC2B9A5DD894B9DDC7C1B220A86E22 /* dec_sse2.c */, - 91DB4C9280D8A35C9C913FE1F9CF29CC /* dec_sse41.c */, - FB84A08D793388DCA82ED11C9CA236DD /* decode.h */, - 431B99C72F709AAC251DD838825FC01C /* dsp.h */, - 59F02994182D40650E8194612C91F47D /* enc.c */, - 7A4E0C63D2167E78E6616CA04F10960B /* enc_mips32.c */, - DF9F1DB119FBB5354B3F8341679D810A /* enc_mips_dsp_r2.c */, - 07E79ADDC5F4FE489A6B2E76CF9172BB /* enc_msa.c */, - D472CD1919EA716FF1780DD9D7D159D8 /* enc_neon.c */, - D7247191F9CD01626791CB907C40B585 /* enc_sse2.c */, - CE1A0E7A25FFFCE052093977A21E9038 /* enc_sse41.c */, - C95E4495AF4EB56CE987FDC609698431 /* encode.h */, - 6ED43215E946B77CECE4547DF05B34CD /* endian_inl_utils.h */, - A8794629E39969EC18FE07CB70457287 /* filter_enc.c */, - FB0D91620F0D0565D6C327BEB4340FC2 /* filters.c */, - 2E972EED29A38A4EF5B225DB757B975C /* filters_mips_dsp_r2.c */, - 3F5EB3188F34F43EB488665FA38106AC /* filters_msa.c */, - 6AAC81D3D478BAB7CEE5C591C7EAE018 /* filters_neon.c */, - 8A8FFD7C2E47DF1F6BB575A90A807915 /* filters_sse2.c */, - 4F57764188C45DFBCDFE5F9F903400DF /* filters_utils.c */, - ABB282F8C620DBE4956E8CE56054EEEE /* filters_utils.h */, - E9318EF7F094F5278E322D0F4235E48C /* format_constants.h */, - ECE1B6025BEA2C708D2EE2CC233D7FCC /* frame_dec.c */, - AC65407532F4C689DB36CD6A55C47F42 /* frame_enc.c */, - 638177B7F85CDF5D67AAD9972E38C978 /* histogram_enc.c */, - 82BDD4E3E3018BDACCAE12BC8AB9561F /* histogram_enc.h */, - E989E86414A3C2F2B0DBC5C16D646DD1 /* huffman_encode_utils.c */, - 538BB024743EC24DC9870ED55C39BF40 /* huffman_encode_utils.h */, - F0BD28A56BD17B68BBF47CCDF2ABA003 /* huffman_utils.c */, - DACE3EC3C26BB00A344269B7F014BC87 /* huffman_utils.h */, - 950930A73A3FB9836C5174F10B9565BD /* idec_dec.c */, - 2DD5E84E580EC2329E1DEF21BF6BF20A /* io_dec.c */, - 34F1246ADF6DCEBE9AFA7682B6CD48AE /* iterator_enc.c */, - AA84C9E918A8EB359CBF8F936A50EBD7 /* lossless.c */, - 745A040E3696B4A9BB1691C1E7FE5D23 /* lossless.h */, - 057867A5A08473C69DEA499B5EDAC90A /* lossless_common.h */, - 1BA6DF5BE5A1DBE7A5CAF475B59DC668 /* lossless_enc.c */, - 87927ADCBAAA58C3A270D01961886164 /* lossless_enc_mips32.c */, - 47CB2AD9B30AFF104CD113C9F6BB2472 /* lossless_enc_mips_dsp_r2.c */, - 776CFA1C203D83B99CA88C678E15F2BD /* lossless_enc_msa.c */, - 4B774B1E857B2D20B4E02843FD819DF6 /* lossless_enc_neon.c */, - 2F2DAB05BE0EAA8C06364DC5062DD656 /* lossless_enc_sse2.c */, - A566682050AA734A99A672489B819EEF /* lossless_enc_sse41.c */, - 23A5DF27D4A72482918155DD0C42C5AE /* lossless_mips_dsp_r2.c */, - 4ADB24D987D3B73BA797489C26469CA7 /* lossless_msa.c */, - F1D17856669D0FEB8191B498F40531B9 /* lossless_neon.c */, - 706EAA8EF97A9EF8B58B4B37A8C70B84 /* lossless_sse2.c */, - 60979304EC286DDCC3C45369969B8EB7 /* lossless_sse41.c */, - BB3B777CE044B579EA8BE98F9D154765 /* mips_macro.h */, - 5402A5DB3FC680C9B92D7CBE65389962 /* msa_macro.h */, - 465D9400CBBC458DD7899D83EDE7E415 /* mux_types.h */, - 2009E7DCD0A87C3894AD0DAFE1F314DE /* near_lossless_enc.c */, - 738484531F2AA008CB4B278289424BAD /* neon.h */, - B289A5282A939C5797A3CC4A22FD5F4C /* palette.c */, - 81F2EB46903FC696F4A42DFF8C534BCC /* palette.h */, - 8818B1BDA478BB0B28781263C3DA1847 /* picture_csp_enc.c */, - 2B7E52F6B331B02D471778EB539D2BF1 /* picture_enc.c */, - F5E0D7CFA90F41B7E780E830B75C583F /* picture_psnr_enc.c */, - C1BC0472FE5FD58AF300F17F81501112 /* picture_rescale_enc.c */, - 7018D51C62366469DF6D714287D00F64 /* picture_tools_enc.c */, - 444739377ECBE2783ED8E2D08F35EFFD /* predictor_enc.c */, - 52D4A7773367BECC9A76F6CE32854190 /* quant.h */, - 2A233B03B02E73268E99D56FDEDC9FCF /* quant_dec.c */, - 5CA119C7B5B21962C540B1D1BED8438F /* quant_enc.c */, - 3DE4DC886B92E31B8DCEBB8D6969A644 /* quant_levels_dec_utils.c */, - 3820BFD5C4FBCB397E6F614D474D5CE3 /* quant_levels_dec_utils.h */, - 7ABCE646AFDD6A3662E4B5C7B15F999A /* quant_levels_utils.c */, - F297C683DFC094C1BAC7D0FC3DAF2F5C /* quant_levels_utils.h */, - B07D4AC05AFCE457EBF91DB86BEBF821 /* random_utils.c */, - 8A65FEC83A5F914F1D1506686969354D /* random_utils.h */, - 0E02A266CABD48A4C5AE6F3868BB268B /* rescaler.c */, - 10D8FF29100E3162C3A417B55F1AF215 /* rescaler_mips32.c */, - 92AFF723617B418648CD0C40EF61B5A4 /* rescaler_mips_dsp_r2.c */, - 827C30B04863CF6A3B899EA252B43C14 /* rescaler_msa.c */, - D634A240E60F7ACCC06011B82EB73F23 /* rescaler_neon.c */, - 9EF299DDB28BD8FB60548BC6802A3377 /* rescaler_sse2.c */, - 477DDCF4D85C7A14B3C28209F0EAC480 /* rescaler_utils.c */, - EFE5DE49CF763F91F46159B7E1C1BAF3 /* rescaler_utils.h */, - 4EAE04E32C83B09078A765F27D24CFAA /* ssim.c */, - 6194FEC8E3AA6C018DE540C5B4361ED4 /* ssim_sse2.c */, - 45B70AB8F45A69F6D35599E9C3C79C6E /* syntax_enc.c */, - FE97B85549C4C2DB73F62EF1E8F42AE9 /* thread_utils.c */, - 7BFAC4ADECF889483CD444EFD2238929 /* thread_utils.h */, - 13CC6D92AF49BF76FF6C8C2B3209156E /* token_enc.c */, - 07C862DBF71EFED68AB3FCF04848DFCF /* tree_dec.c */, - 9A09B5FD3B58DF5489AEA2A533ADB033 /* tree_enc.c */, - CC11E565DFEDF2A27A5B9778C85ACE5F /* types.h */, - 6C7AE35EA52B309C094DCF8EBBA6810D /* upsampling.c */, - 2B2FAEECFECB42387E64A383C220C74E /* upsampling_mips_dsp_r2.c */, - 12C6FC9038D7F3D9D4408200D10ADC00 /* upsampling_msa.c */, - 456D577A21B703DFBFB895E645CEC50C /* upsampling_neon.c */, - 8B3555E375576D0BDB845B336C7242AD /* upsampling_sse2.c */, - B7E41137BC494F0940A883E840BE75BE /* upsampling_sse41.c */, - 9CDA7FB8FA8B1B31A6C45BD10037CE18 /* utils.c */, - D8B74DC9A94E739354C12C11334EFBBE /* utils.h */, - 86EF1208C46ED894D571AD6C492DC009 /* vp8_dec.c */, - 5B8401A8C9707D91B3E1F16D573A573F /* vp8_dec.h */, - 336C1DA948FF772449434E995BD8A651 /* vp8i_dec.h */, - 01E398367630AB363FB25E946F373D70 /* vp8i_enc.h */, - D999FA8853AA1CE2077F0ACB87C46329 /* vp8l_dec.c */, - 8726A2F833F7BABF40CFA3ABDF825B47 /* vp8l_enc.c */, - 3A13C26D08093EE9A49057D16D3D20EB /* vp8li_dec.h */, - 0A62076422015F139EB015346368315A /* vp8li_enc.h */, - 1162671AF59CA6F029CFD383A73B0FCD /* webp_dec.c */, - ECCB174B0A81D9A9938707FE508CF775 /* webp_enc.c */, - 85E5D828F1BF657869C6726125A67C65 /* webpi_dec.h */, - F1A2452F98D3EE9BBF2B5A6B11C53616 /* yuv.c */, - 4AE210D9A885696D72F3DA98859ABC65 /* yuv.h */, - 7DFA74EEE358019BD8749611761E516E /* yuv_mips32.c */, - 40F75BB15FB44DEB1E68FEB6BCEBD91F /* yuv_mips_dsp_r2.c */, - 9E0B9E69E5E8D32287F946186EC52C8D /* yuv_neon.c */, - 3A99B108129F4BF107A8295BB64E26BC /* yuv_sse2.c */, - 6DA1F6403722CFE622396EF89367F223 /* yuv_sse41.c */, + 63D913B0247EA9453038CE683ED652FF /* Bugly.framework */, ); - name = webp; + name = Frameworks; sourceTree = ""; }; - 1F2411B55085323D28ECC9A8617F4AE7 /* TZImagePickerController */ = { + 204401A4339A443B33702005BF1C83F9 /* Support Files */ = { isa = PBXGroup; children = ( - 7A4395B4AEDE011B32FBC0986A034319 /* Basic */, - FE016E0FFD13403B81C0496AF80171A8 /* Location */, - 3802FDC86E107247A98D49C01AE1EA47 /* Support Files */, - ); - name = TZImagePickerController; - path = TZImagePickerController; - sourceTree = ""; - }; - 1F2CB82C49276B077CB736935B231967 /* MJRefresh */ = { - isa = PBXGroup; - children = ( - 946B1ED3C30E392D4A276E04268E720E /* MJRefresh.h */, - E600F1E83D5FA1C22609AA8EA9D44172 /* MJRefreshAutoFooter.h */, - 19BDE7DE37FB94AF8F799EB887B2959C /* MJRefreshAutoFooter.m */, - 646587ECA4BBC4900149D0BDC4148DDF /* MJRefreshAutoGifFooter.h */, - A06DB1DD84E7A1B2E3AF590362B966AB /* MJRefreshAutoGifFooter.m */, - 6A6448D2FC538F0F90D53F06A8822A24 /* MJRefreshAutoNormalFooter.h */, - D76B9189C6630474C495A0095371B50A /* MJRefreshAutoNormalFooter.m */, - 16BDA8E3F3C349C76A1450A2A6D742DD /* MJRefreshAutoStateFooter.h */, - 752314A8247EE2D1334AA134A994C269 /* MJRefreshAutoStateFooter.m */, - 39615AF59B548CFAF0193DD8917A002D /* MJRefreshBackFooter.h */, - 7C70F29094808A284B4932FBC016B051 /* MJRefreshBackFooter.m */, - BA047E6FEE17317C5DC12CC626EB3C4D /* MJRefreshBackGifFooter.h */, - A9FE85154159BBC9DA7A3B5F56BF0E4F /* MJRefreshBackGifFooter.m */, - 8B00C84D5AA28FD815A3FACEC1940288 /* MJRefreshBackNormalFooter.h */, - F351B6ED185FE752A207BDD64F9ECE9C /* MJRefreshBackNormalFooter.m */, - 6D3CDD13D69DD4A561025ED3F2249C6A /* MJRefreshBackStateFooter.h */, - E9C3BBE56A385FC9FDEE685E9083AD8C /* MJRefreshBackStateFooter.m */, - 1A91AA397556CC9C7060BEE7A4434CAA /* MJRefreshComponent.h */, - 070BDBDEE20F8A5DEB595E81AB68282A /* MJRefreshComponent.m */, - 360A901FBA1AF81D2E9A0E00CB0DBA9A /* MJRefreshConfig.h */, - 612B560D0E7ABEABC7B82D4986F590AE /* MJRefreshConfig.m */, - 473F983F60E23534F5497188C2DD457C /* MJRefreshConst.h */, - 5EFBC9FCA9177589DDCFC9E86873B674 /* MJRefreshConst.m */, - 493FEB8B776299BE5A6F511C3548D524 /* MJRefreshFooter.h */, - 48AF7830E71D577636207496D60CF788 /* MJRefreshFooter.m */, - C4EB5433DD0D64544C34394BF6227C50 /* MJRefreshGifHeader.h */, - 180E8B14FBA98D060BE0B6BA6136D5DD /* MJRefreshGifHeader.m */, - D21CDA4E7F267846E8641BE42E764B13 /* MJRefreshHeader.h */, - B1282D7AA922966064CBDFA1F136B05F /* MJRefreshHeader.m */, - 23D0835721B014D08CBD12E57CCDCE15 /* MJRefreshNormalHeader.h */, - 6C69C98590E37B3ED76719F2BEA60AC4 /* MJRefreshNormalHeader.m */, - 32E751318C392BA743CC1802177F458D /* MJRefreshNormalTrailer.h */, - CE44DC8060163D4E2828401C9225903A /* MJRefreshNormalTrailer.m */, - 20549C6E077C1966886A7F4966DFFE2D /* MJRefreshStateHeader.h */, - C378B7B6942FF775194460F2840467B7 /* MJRefreshStateHeader.m */, - 7B7F1F80C3554DB598171C96EE03DD98 /* MJRefreshStateTrailer.h */, - E8819458139503FDB6BB66BE19FF3F16 /* MJRefreshStateTrailer.m */, - C3BF8ADC6D83F817099D8E7C70FD029C /* MJRefreshTrailer.h */, - 55445F67263B2041800762E1FC4ED4B3 /* MJRefreshTrailer.m */, - C8FC13E080653B95689427E9BB5AEDAB /* NSBundle+MJRefresh.h */, - 1DA270961CB495F878ECF5BF25189FEB /* NSBundle+MJRefresh.m */, - 364F986E519664737AB61C9815D6967E /* UICollectionViewLayout+MJRefresh.h */, - 57583963A259C911485591807DC0F658 /* UICollectionViewLayout+MJRefresh.m */, - 9D5D566458D3A05FB13CC8463CDE6C8A /* UIScrollView+MJExtension.h */, - B91587F4676D44AEA2A4F341A62F8156 /* UIScrollView+MJExtension.m */, - 54EB3F51909F1C80F3039170F58E5A7C /* UIScrollView+MJRefresh.h */, - BD6C1F056BABA6595A64AC4C6F437CBF /* UIScrollView+MJRefresh.m */, - 57012ECE5EDE9E2CB2EC2D4102834902 /* UIView+MJExtension.h */, - E2E2540E6B97F042EB7CC229F42B939E /* UIView+MJExtension.m */, - CDA251B7A40B084496FC72E83BE65263 /* Resources */, - 74197CA80886E1C04F96F3EDA391B3F4 /* Support Files */, - ); - name = MJRefresh; - path = MJRefresh; - sourceTree = ""; - }; - 21983C0BE041F11C88F5210CFB70EDBD /* MQTTClient */ = { - isa = PBXGroup; - children = ( - A9933CAFA7D0C694D4685D5449CB013D /* Manager */, - 436A56CB0A584ABC9C9930C184D87242 /* Min */, - 99BC8226DD10E882D6D5DF77245D07BA /* Support Files */, - ); - name = MQTTClient; - path = MQTTClient; - sourceTree = ""; - }; - 22628DB9690E96961A91CCC5EA9144EE /* Serialization */ = { - isa = PBXGroup; - children = ( - AAB37F72A32BF77F9659649C64F3748B /* AFURLRequestSerialization.h */, - 53CB6BE6A2D5D3A69A1BBC957060C84B /* AFURLRequestSerialization.m */, - 632E0BB55069E906C587C0395E619E35 /* AFURLResponseSerialization.h */, - C1FD454982C6045A59169F375F219F74 /* AFURLResponseSerialization.m */, - ); - name = Serialization; - sourceTree = ""; - }; - 22A389B5DE188B642DEB379DD4B046FC /* Support Files */ = { - isa = PBXGroup; - children = ( - CD09D8899998B70BD88E3D83032BF3F9 /* Masonry.modulemap */, - BB376250D12E6D6D2BF76FDB5D15F278 /* Masonry-dummy.m */, - 1EDEE3DF230A0C21740AFF82453678FC /* Masonry-Info.plist */, - A3EE4EE23D2E89B7801CD28730E52CB4 /* Masonry-prefix.pch */, - A4EA5444D3E95AE512B1D488D4C6AA0D /* Masonry-umbrella.h */, - 9B356D121CC77A3AA2DF9D74CCE27FD2 /* Masonry.debug.xcconfig */, - 2A1C4AEBC25A44A0C2A4DA887A5B9F40 /* Masonry.release.xcconfig */, + 51004FC89CBF8CCF5A0B99BAF1E83BC8 /* JXPagingView.modulemap */, + D8929906F89FB8657A7846E55F6C8457 /* JXPagingView-dummy.m */, + 151F3D3EC05D7C138CFAB0A035025F9A /* JXPagingView-Info.plist */, + 52EE3D681BF668BD0C2862CF6BFC9A06 /* JXPagingView-prefix.pch */, + B33BCF564E600AFBD44AE40E7E48150B /* JXPagingView-umbrella.h */, + E7B283DA7D9438642D048CC661511A97 /* JXPagingView.debug.xcconfig */, + 7A1A711047C1AC34798F807FBF6686D5 /* JXPagingView.release.xcconfig */, + 519FC0F676D42EB2112CE24428C563FF /* ResourceBundle-JXPagerView-JXPagingView-Info.plist */, ); name = "Support Files"; - path = "../Target Support Files/Masonry"; + path = "../Target Support Files/JXPagingView"; sourceTree = ""; }; - 253BC4619E143A5FBEA5270F22A5D27B /* UIKit */ = { + 218A9FB599C7187D7E41E45653780F40 /* VideoCodecEnc */ = { isa = PBXGroup; children = ( - 9FFC80C95BD87F390E6A865F48A6D868 /* AFAutoPurgingImageCache.h */, - 6C2EFC72068A4953769068070888931D /* AFAutoPurgingImageCache.m */, - 1EF077E1326B5D643F8DA3DC7228C74E /* AFImageDownloader.h */, - C81216EA476AF6B7BC4E9C092A979786 /* AFImageDownloader.m */, - 4D0F43DE4846AA96F2A431D520D25536 /* AFNetworkActivityIndicatorManager.h */, - BC57EAE742A855E9BD49E4B6B2435ACA /* AFNetworkActivityIndicatorManager.m */, - 3B8A0F686454D4EED1E4B08D439A6E60 /* UIActivityIndicatorView+AFNetworking.h */, - 7707FACE79B6E516056A977715E501D5 /* UIActivityIndicatorView+AFNetworking.m */, - 3B30AAFDA181015C6C27025D766CC3DC /* UIButton+AFNetworking.h */, - E78B40B3D91063005F2C036F1BDC4627 /* UIButton+AFNetworking.m */, - 182D05E9C4066BF7CB2532FAD45EE86F /* UIImageView+AFNetworking.h */, - 4BA6F40D960E0AE3D8D68035BC34044B /* UIImageView+AFNetworking.m */, - 413240E290CD078A53FFBB7B9F42AC74 /* UIKit+AFNetworking.h */, - 6CA1BAB7B291FFD8994D70B914C15384 /* UIProgressView+AFNetworking.h */, - 3B680E2D07764F46DE876BB2983D8C41 /* UIProgressView+AFNetworking.m */, - 701B01541AF4C8663A726F903DED605D /* UIRefreshControl+AFNetworking.h */, - 73BDC252E37860D682F3200FE18B58DD /* UIRefreshControl+AFNetworking.m */, - 9DF9B3CD39064831DB259BE3ADDBAF08 /* WKWebView+AFNetworking.h */, - CCB1E1F3B1AE554D43EC50F9449EACA2 /* WKWebView+AFNetworking.m */, + DBC323DA54ACAF7C3376A7EF038F5A58 /* Frameworks */, ); - name = UIKit; + name = VideoCodecEnc; sourceTree = ""; }; - 26F4A0325E3757D93CF99F0750740209 /* Reachability */ = { + 23923C260A4A1EAD9990CCF5F421AA0E /* Support Files */ = { isa = PBXGroup; children = ( - DDB90E2C4DAA237C032EAC3501E58AF4 /* AFNetworkReachabilityManager.h */, - FC1874DCF7E7B17BE82FE5D7F74E9D1D /* AFNetworkReachabilityManager.m */, + 14B2543E409AD42E610C3A45A0E7E42D /* WechatOpenSDK-XCFramework-xcframeworks.sh */, + 91403F1E5C0272749E2C99D64AFD32CE /* WechatOpenSDK-XCFramework.debug.xcconfig */, + 3B1425FAA83B90D2C942C81713A82E18 /* WechatOpenSDK-XCFramework.release.xcconfig */, ); - name = Reachability; + name = "Support Files"; + path = "../Target Support Files/WechatOpenSDK-XCFramework"; sourceTree = ""; }; 26F6EE9E470625CDF55F4281A5906353 /* Album */ = { @@ -8291,20 +8748,44 @@ path = Album; sourceTree = ""; }; - 277E55735D972617938C6025B8EE8003 /* Frameworks */ = { + 290B9E57B045B795F7623EC7FBC0CED7 /* Frameworks */ = { isa = PBXGroup; children = ( - 39A9ED08E7A75D28D761EE555528B5ED /* WechatOpenSDK-XCFramework.xcframework */, + 6AB3913E1360B81F88034CABA5781DBF /* AgoraFaceDetectionExtension.xcframework */, ); name = Frameworks; sourceTree = ""; }; - 2AB45A4D36DFD5919E7C261E04A34020 /* Frameworks */ = { + 29699849EBE082E767A596DCC59412C2 /* TIMPush */ = { isa = PBXGroup; children = ( - 07D80A182085699A6C348DDD80B14E45 /* AgoraAiEchoCancellationLLExtension.xcframework */, + C5E69BE7034BCDD8B9190C8B7585C961 /* TIMPush.h */, + BE77F036D9C043AF0BC6261D1370579B /* TIMPushManager.h */, + 08EB1B1248DC852C7CF8B4FD3DA673F0 /* Frameworks */, + C5E07A6911337F91575E37C2933B844C /* Resources */, + 7E69A9457700B7E212F77C920495D334 /* Support Files */, ); - name = Frameworks; + name = TIMPush; + path = TIMPush; + sourceTree = ""; + }; + 2A70C1D13B8876C748847C162205422C /* Core */ = { + isa = PBXGroup; + children = ( + 234CF9F181DF27CB055689C00B3F81E2 /* FMDatabase.h */, + 5F3353A426C7C99A13ABAC5E085CFE8A /* FMDatabase.m */, + A27A3CAB9C1D0CA09627DD6030B9C533 /* FMDatabaseAdditions.h */, + D57C815FBA33C1D6AA386287678BE074 /* FMDatabaseAdditions.m */, + E0810B11491CDAE691F3ED6C4766F317 /* FMDatabasePool.h */, + B4A579B3A81B3E600ADB0583CF752BFA /* FMDatabasePool.m */, + 85CC94351C231B6632DAB441C2F35141 /* FMDatabaseQueue.h */, + DD3062298DC964BE33DDE207A95FB004 /* FMDatabaseQueue.m */, + 137A9C20B65B87E549A6267C60BA5B81 /* FMDB.h */, + C33C1A0241E7CE367A7B8244F8872066 /* FMResultSet.h */, + 5DBC0BAD4F9281386E8BC0FDCB01FEF3 /* FMResultSet.m */, + 3CE84E31787F883DF71F5E8E56EFBED5 /* Resources */, + ); + name = Core; sourceTree = ""; }; 2AC51149F44E89111B8C859F83BBD614 /* BaseDataProvider */ = { @@ -8331,41 +8812,20 @@ path = Custom; sourceTree = ""; }; - 2C502AAE5DC46DB59EAA8D71C9457D27 /* Storage */ = { + 2CC2D5608A780B8D180ED4E3C1B8ACB3 /* Support Files */ = { isa = PBXGroup; children = ( - 9FBCF9CB69F3A025ACCB48B0FF5134A0 /* LLStorageManager.h */, - D2E4449147CF1B92367B8ED7A68AA121 /* LLStorageManager.m */, + 0A7FF82B2807814FEF8A70A246C12313 /* BRPickerView.modulemap */, + 5839E2465EFCB6EC01D2CD4DE6D3B0C6 /* BRPickerView-dummy.m */, + 908A837346F8509A3C297F003E23D850 /* BRPickerView-Info.plist */, + DB458066FBE295450D53CC3DDCF4AA01 /* BRPickerView-prefix.pch */, + 3F5ACF065BB91F5338720FFACC00E1EB /* BRPickerView-umbrella.h */, + 59A03BE22CDD449090BAC7B02AF796E4 /* BRPickerView.debug.xcconfig */, + E16A9E6B2A5EABBCE1CDCF06E8F746DE /* BRPickerView.release.xcconfig */, + EFDD11B1942A5E083A3D061C40A52985 /* ResourceBundle-BRPickerView.Privacy-BRPickerView-Info.plist */, ); - name = Storage; - sourceTree = ""; - }; - 2CCE5A6D9281759CA09D3F627C1C8746 /* Resources */ = { - isa = PBXGroup; - children = ( - 702583BA078293A9CBBC0567D8E90474 /* PrivacyInfo.xcprivacy */, - ); - name = Resources; - sourceTree = ""; - }; - 2DF13BFF67642901DA2CD50501D90C6E /* AppInfo */ = { - isa = PBXGroup; - children = ( - EF1AE254E1202354B2AEA7DDA131FB61 /* LLAppInfo.h */, - 42DB0A4D5793C73C847285C20CA1AEDF /* LLAppInfoComponent.h */, - 61D9E0C415937DE7E59760AAD7167051 /* LLAppInfoComponent.m */, - AC89138165E8ABC2F7E6A48958DFA374 /* LLAppInfoHelper.h */, - 7EFF9BB7077C826E11E7816EB23FDB40 /* LLAppInfoHelper.m */, - 08FE24AC9B2B2B677617DB1D82FE3B1F /* LLAppInfoViewController.h */, - EF74891611A81F7F87DB08B77687F25D /* LLAppInfoViewController.m */, - C57CD7050B94D854BDE5D9DCEC10FBBA /* LLAppInfoWindow.h */, - AB23DD5BEADD6E2CFC82EB663378BB67 /* LLAppInfoWindow.m */, - 1D8463AD16E20FEE262A6EC2DC418D2B /* LLWindowManager+AppInfo.h */, - 6FEDEBB6368648B55E48238CFA4252B9 /* LLWindowManager+AppInfo.m */, - 9B5AE18DBDE00D6087843502F2BD4C4E /* UIDevice+LL_AppInfo.h */, - 742A1E6D5178AC74FB55B9B25DEE59E8 /* UIDevice+LL_AppInfo.m */, - ); - name = AppInfo; + name = "Support Files"; + path = "../Target Support Files/BRPickerView"; sourceTree = ""; }; 2EA3E5B92EE5FB71A28110451EE5A9DB /* Reply */ = { @@ -8394,6 +8854,75 @@ path = Reply; sourceTree = ""; }; + 2FA346F31AEB4B50DAF20914FEF69895 /* Support Files */ = { + isa = PBXGroup; + children = ( + BA5FC428BEF9A50F902D7F72BB603BC5 /* SVGAPlayer.modulemap */, + D370EA7482746DE2146E7EE4CFF36767 /* SVGAPlayer-dummy.m */, + DB338452BE2D74A24F1F0D69031B2872 /* SVGAPlayer-Info.plist */, + B7892AEF4411015DDFAB086FEE155ED4 /* SVGAPlayer-prefix.pch */, + AEEEE4DD3BC6DFDF0073DA40B34539EC /* SVGAPlayer-umbrella.h */, + 1C9EA99F55198372B00D4B1CE72A7626 /* SVGAPlayer.debug.xcconfig */, + 51C23DC3DC29A2A612B6B0E41DD47F7D /* SVGAPlayer.release.xcconfig */, + ); + name = "Support Files"; + path = "../Target Support Files/SVGAPlayer"; + sourceTree = ""; + }; + 3070653161CF7F75092242D41B7B3F85 /* AgoraLyricsScore */ = { + isa = PBXGroup; + children = ( + 1A73459C2CC9D8D858F04BEFB0B50BA1 /* Algorithm.c */, + B194DDC27110CF95EA56034870715C28 /* Algorithm.h */, + 30D3FDFB4CB22F098F35BDBFF98C848D /* ConsoleView.swift */, + 828D6CA863C2CEC912510CCD83ECC1FB /* DataStructs.swift */, + 4D98461267F745B1EBE8EE50AAEAF9CB /* Downloader.swift */, + 6B580640D9CAF2BBC81C2216F358EA49 /* DownloaderManager.swift */, + 3445DE2E4AAB5AA7BAD875A6A2964BD5 /* Events.swift */, + F633B22245CDEE9BF987758E3B74BC62 /* Extensions.swift */, + 4A32567127ABAC848D51F4C939E2D5FF /* Extentions.swift */, + B7CAED8CFBD58A948FEFDC98D05B3A1A /* FileCache.swift */, + D0518F549EC5A50220151506B1FD184B /* FirstToneHintView.swift */, + EFC41CE30D06937C22B7E27C45B27871 /* KaraokeView.swift */, + 1872E3DC15A4A585A5D6B157E5353431 /* KrcParser.swift */, + 43E4B10A769DF79034D79FD068C23A59 /* LineScoreRecorder.swift */, + 968231824AEE19E86BB15B07FE4E7B0A /* LocalPitchView.swift */, + 0B0B611141C92E6727C2F9468C28F17D /* Log.swift */, + 23D543084AA38F3C3880C906EFA3B0C2 /* Logger.swift */, + 5ADCFD520A1AA47C58313C5F58E22176 /* LrcParser.swift */, + 475A73ACB9133C7BF300F5488F21228E /* LyricCell.swift */, + C52D2D0B79D8CC5F558AD7293D3EA2F8 /* LyricLabel.swift */, + A65B3699136AF380E291273EA83F2FFF /* LyricMachine.swift */, + 13CFFBA69B3D2794F8315B288F3F91D9 /* LyricMachine+Events.swift */, + 783462EC8F6705A4B684FCEB809EA483 /* LyricsFileDownloader.swift */, + 5E1A7B52CBEB40776FBBD7E00B21125A /* LyricsFileDownloader+Info.swift */, + 1B065ADB18274304662B055842D547B8 /* LyricsFileDownloaderProtocol.swift */, + 621FAB72115D94D553E6D61DC403E6FD /* LyricsView.swift */, + 8B073F94C3CA83EAB308C132CDAB89E5 /* Model.swift */, + 7D20A37D62721558A4DAAA2C5262A0C0 /* Parser.swift */, + F2DDDFC9373673CC8F43300A99610530 /* PitchParser.swift */, + DD245A2E8AE763FF9DB33272BBFD5334 /* ProgressChecker.swift */, + A303F5DD2B26CE2527CE68451DDFB716 /* ScoreAlgorithm.swift */, + E48DF8F4EC5948428E1C0BE1AF56C102 /* ScoringCanvasView.swift */, + 83DE08ABDDA697D64E148207A6EA8D8E /* ScoringMachine.swift */, + F2B65964423B4DEC94B009452F7A3F1B /* ScoringMachine+DataHandle.swift */, + 36F2ADBE477D20DCEFB2B7B11D9398BC /* ScoringMachineEx.swift */, + 1DE48FA5EDE295A1EA70F1332367380A /* ScoringMachineEx+DataHandle.swift */, + A06F429023166DF8CFD2725B77474946 /* ScoringMachineProtocol.swift */, + E1A2959CE55336EA28C3DDBBE3D50588 /* ScoringMachineProtocol+Events.swift */, + 921E5C4735B2CFC1A410EEB60DA1F15D /* ScoringMachineProtocol+Infos.swift */, + 2EC4C0AB4E56B63C491EB3A8BCCF7022 /* ScoringView.swift */, + 1BB17EB26C18B840FDFABFCD2C4A1964 /* ScoringView+Events.swift */, + B041C72D07773284DD32739065F532D1 /* ToneCalculator.swift */, + C5713F1E75E1BD6748EF793FE83DD09D /* VoicePitchChanger.swift */, + 386832C5BD3499E3597A77285E27241C /* XmlParser.swift */, + AF3552D6A8DD948563A19DF19ACECD70 /* Resources */, + 6F12FB8EDC1C7DEEC0488D664BBA07B8 /* Support Files */, + ); + name = AgoraLyricsScore; + path = AgoraLyricsScore; + sourceTree = ""; + }; 31193D14A15DAC08FAC50C397BC5C448 /* Config */ = { isa = PBXGroup; children = ( @@ -8404,12 +8933,25 @@ path = Config; sourceTree = ""; }; - 314151BE74C8D5E6D7A25CE1D5164307 /* Frameworks */ = { + 3229768A0D9FA33369AC0AC428516F27 /* Manager */ = { isa = PBXGroup; children = ( - 73581B19CE9B479ABA8DC111C825CB05 /* AgoraClearVisionExtension.xcframework */, + CDF553859C80B6935CE37CEFB4FDF6BC /* ForegroundReconnection.h */, + 3F4A516A9355EAA944CA1793EC6D4205 /* ForegroundReconnection.m */, + 7E414E5A0DC1E4355F0710FF6106FE67 /* MQTTSessionManager.h */, + D628CF60CF16B25D244CB5DA92F977B8 /* MQTTSessionManager.m */, + 7109D7C673C3E8233DB1A7DC6E8D0584 /* ReconnectTimer.h */, + 1D76AFCC9DA97C81EEFD8C284AC66766 /* ReconnectTimer.m */, ); - name = Frameworks; + name = Manager; + sourceTree = ""; + }; + 32D061A1D2A150E3CAEDA04128258F1D /* LipSync */ = { + isa = PBXGroup; + children = ( + 1D0D41C8744205587D8F9D851D8759AD /* Frameworks */, + ); + name = LipSync; sourceTree = ""; }; 34341E57D6E6D21C700FFB2F4B6B5EA5 /* Frameworks */ = { @@ -8430,53 +8972,39 @@ name = Frameworks; sourceTree = ""; }; - 354D00371161C8D16DE15C26ACF10063 /* Support Files */ = { + 35E842DA22F322805487063E904F555F /* Support Files */ = { isa = PBXGroup; children = ( - B9F50D6670460F2401C7FF47F4640122 /* AgoraRtcEngine_iOS-xcframeworks.sh */, - 093B228B53556FE1FC8ED75A574A849B /* AgoraRtcEngine_iOS.debug.xcconfig */, - 9E66D537394401356ED601BF475AC11F /* AgoraRtcEngine_iOS.release.xcconfig */, + D69FB254C932E452540A7B944270FB60 /* QGVAPlayer.modulemap */, + 745A9A4493F6C8C67ECBA6EBE734E857 /* QGVAPlayer-dummy.m */, + B48B52B32AA72880A0886B843068DC12 /* QGVAPlayer-Info.plist */, + 0F42E1C57C5F5A75AA1A9C8C3F00AE0B /* QGVAPlayer-prefix.pch */, + 9F87D94B1EDF77359432448687D113BC /* QGVAPlayer-umbrella.h */, + 4CCA4F8DFC3F22B6C5141EFD47D97E52 /* QGVAPlayer.debug.xcconfig */, + C403756DA5134716BB05DDA42C6AAC80 /* QGVAPlayer.release.xcconfig */, ); name = "Support Files"; - path = "../Target Support Files/AgoraRtcEngine_iOS"; + path = "../Target Support Files/QGVAPlayer"; sourceTree = ""; }; - 375859BF2C1F4E2D09BABD8AD0CF28CF /* Frameworks */ = { + 3A850D3C588786E50079BFE87EB6A650 /* Magnifier */ = { isa = PBXGroup; children = ( - CE5A4D133896095D90DD4D5FCE746F91 /* aosl.xcframework */, + 08C1F598D6F39EDEB0A77CE60618639B /* LLMagnifier.h */, + CE53C7588B42781E5A62E85D6BC5824B /* LLMagnifierComponent.h */, + F58EDA48BD1EE499F6329173868A906C /* LLMagnifierComponent.m */, + A7BCC0FC949E3EB097C59CAB5EC45784 /* LLMagnifierInfoView.h */, + EA5A6EDB788A0DF426C2F16FAC9A0526 /* LLMagnifierInfoView.m */, + D6E4732BF338A7D905F1BD32A6814045 /* LLMagnifierView.h */, + 4B6880AE8BA92FD6D17A828C3E659E5E /* LLMagnifierView.m */, + 483FA220EBE6DE11974FA317C1AE9F3B /* LLMagnifierViewController.h */, + 33A53419BC34A6CCB358D07E454EA09E /* LLMagnifierViewController.m */, + 4B5DCD20450BB0146A820F2D4940F097 /* LLMagnifierWindow.h */, + 0C8B8C82B78B0E02140C0E1621D2CA82 /* LLMagnifierWindow.m */, + 9E0DEF151A224E891AFBCF25F8953091 /* LLWindowManager+Magnifier.h */, + 63B9B4BACBEA3184F3651DFA58603133 /* LLWindowManager+Magnifier.m */, ); - name = Frameworks; - sourceTree = ""; - }; - 3802FDC86E107247A98D49C01AE1EA47 /* Support Files */ = { - isa = PBXGroup; - children = ( - 3B24F4F8ACEEB6EA9A2B606314DD5276 /* TZImagePickerController.modulemap */, - 28B71C7F00C85A72DFC0FDAE0D29801C /* TZImagePickerController-dummy.m */, - 68DBC71C82B0B357C8C72AAF193D63A3 /* TZImagePickerController-Info.plist */, - D43A5CCEB173771A853DD4C4B31EB8FB /* TZImagePickerController-prefix.pch */, - 3A2B808DBD11F83AE48A117605787349 /* TZImagePickerController-umbrella.h */, - 7EA94F3C2C7CC7E913C8AB4303563598 /* TZImagePickerController.debug.xcconfig */, - 071E4EF09DD730FFF592072C5C5D143D /* TZImagePickerController.release.xcconfig */, - ); - name = "Support Files"; - path = "../Target Support Files/TZImagePickerController"; - sourceTree = ""; - }; - 3A745B2802478327A10B188DC0E538C0 /* Support Files */ = { - isa = PBXGroup; - children = ( - 958BC3B678B0450F55FC55CB5F7FE729 /* SDCycleScrollView.modulemap */, - A42EAD9878765593A296A972FEEC1C8B /* SDCycleScrollView-dummy.m */, - CA9709A697C55AA3F38E358D97E13C0A /* SDCycleScrollView-Info.plist */, - F46BF857445A1CFD7B410F51E409165C /* SDCycleScrollView-prefix.pch */, - 72C795493B9E7BD1F1D7AE16825DCAF7 /* SDCycleScrollView-umbrella.h */, - 408670745C8873E55EC5F55520BA2000 /* SDCycleScrollView.debug.xcconfig */, - D493A05AE3999CBA727F95D6D0981C65 /* SDCycleScrollView.release.xcconfig */, - ); - name = "Support Files"; - path = "../Target Support Files/SDCycleScrollView"; + name = Magnifier; sourceTree = ""; }; 3AD5A5E3A342432E996A73B1E1B15B8B /* Cell */ = { @@ -8489,17 +9017,24 @@ path = Cell; sourceTree = ""; }; - 3C44B1090DEC854DDB18EA218CE62CB8 /* libwebp */ = { + 3BFFE9A50823B4E7C96B287AB6190C21 /* WidgetBorder */ = { isa = PBXGroup; children = ( - 55FB3B0B6A49E24C5E57533EC6298310 /* demux */, - AFAF47CCB9BA208269AE649A199A3B17 /* mux */, - BE733C67462338D74676A3BF3D54F756 /* sharpyuv */, - 06310A677FFDDAF8593A97F5854F2480 /* Support Files */, - 1DDC7AC14EDDA94C8E0DBFF1952F285C /* webp */, + E1E2ABA1CF16E38306949C39DBFFE81D /* LLWidgetBorder.h */, + ACD31B9CF4EFBCA98DAAAD28E2DB8FC6 /* LLWidgetBorderComponent.h */, + BBF62AF43F45AA5E1F4B4AD591E48609 /* LLWidgetBorderComponent.m */, + 30F0633886F127563F74ACF39A7FF0FB /* LLWidgetBorderHelper.h */, + EB20D4AB990A5D5B4CA4725DD62E892B /* LLWidgetBorderHelper.m */, + 2FAA394A28F15B541C15C4046428DF50 /* LLWidgetBorderViewController.h */, + 0181C802BE8602B5399F0D3B7179F895 /* LLWidgetBorderViewController.m */, + 29CBCFAADE686D81BA69E3799EBE3789 /* LLWidgetBorderWindow.h */, + 04F3305D1A23F19A8359301ABDB5F69F /* LLWidgetBorderWindow.m */, + 7AE87813BC5C3F351ABF41B3DAEE6338 /* LLWindowManager+WidgetBorder.h */, + CFC26C4557DF4FFAF6DFED98F128E915 /* LLWindowManager+WidgetBorder.m */, + 8592C7A6E25AFD826CEEBF578627B491 /* UIView+LLWidgetBorder.h */, + 8B4BC2892DA2ED1B2A7AA0B143C483EA /* UIView+LLWidgetBorder.m */, ); - name = libwebp; - path = libwebp; + name = WidgetBorder; sourceTree = ""; }; 3C5F9BFFF88EB287075E4F955E194987 /* Support Files */ = { @@ -8518,102 +9053,207 @@ path = "../../Pods/Target Support Files/TUICore"; sourceTree = ""; }; - 3F875ED4D3F3F0A4EF83F0EDEF9BC2AF /* Frameworks */ = { + 3CE84E31787F883DF71F5E8E56EFBED5 /* Resources */ = { isa = PBXGroup; children = ( - 98ED9160518BCF17DF77D32ACF04FA5F /* AgoraAiEchoCancellationExtension.xcframework */, + B7A86637AF0616375B4F723C21D06184 /* PrivacyInfo.xcprivacy */, + ); + name = Resources; + sourceTree = ""; + }; + 3DDB300666C43DD01FF7A59FBFD0E02D /* Support Files */ = { + isa = PBXGroup; + children = ( + B5B157A5E92B737599FC3070A80C7852 /* AgoraInfra_iOS-xcframeworks.sh */, + B72A03F02CCB8306A16F5545921CFE99 /* AgoraInfra_iOS.debug.xcconfig */, + A1159FCDCF090CD964DB7D1980C51BC1 /* AgoraInfra_iOS.release.xcconfig */, + ); + name = "Support Files"; + path = "../Target Support Files/AgoraInfra_iOS"; + sourceTree = ""; + }; + 3E16CD633B5C8104A03BA6B0095D4CEE /* Support Files */ = { + isa = PBXGroup; + children = ( + D687FAEA674AA0CDC65B66AA70C344EC /* ReactiveObjC.modulemap */, + 5585D238EB7F232DBA375D4B9BE6CF44 /* ReactiveObjC-dummy.m */, + 4EA0643222D03967A5E44991F3E53B51 /* ReactiveObjC-Info.plist */, + AEA044DFB2BE194A6441B9723B50D0AE /* ReactiveObjC-prefix.pch */, + 323E560A5CBA3BC04CD92054CD30A16A /* ReactiveObjC-umbrella.h */, + C75290354B7314C4F02110B9D20632B3 /* ReactiveObjC.debug.xcconfig */, + 17B18416AEC94C55CE635A96FB102FE8 /* ReactiveObjC.release.xcconfig */, + ); + name = "Support Files"; + path = "../Target Support Files/ReactiveObjC"; + sourceTree = ""; + }; + 403F5F50D89FB3A40891B76899A7ADB5 /* AIAECLL */ = { + isa = PBXGroup; + children = ( + CF36F2A6AB9253F6FE872D4A55E33FBE /* Frameworks */, + ); + name = AIAECLL; + sourceTree = ""; + }; + 40A6F0E730EE86B1A2962B418CA821B4 /* Support Files */ = { + isa = PBXGroup; + children = ( + 1C2F31D548AB72EE666F20112F85F721 /* IQKeyboardManager.modulemap */, + F04CF9EF12EF7BB8300A657B6133FD01 /* IQKeyboardManager-dummy.m */, + BC88A109BE9F653CE64BD993A7F419D9 /* IQKeyboardManager-Info.plist */, + B42EC0846163C3D03398E8548B97FEF5 /* IQKeyboardManager-prefix.pch */, + E62BB46E22E182B4B5AAB0C82DE137D0 /* IQKeyboardManager-umbrella.h */, + BFDA70797D499F688CDA9F293694C161 /* IQKeyboardManager.debug.xcconfig */, + 313EBD1ED4CF3BFF7D35A23B739B12D3 /* IQKeyboardManager.release.xcconfig */, + CF941EA1855F5D99675B4CAEA6AFAF87 /* ResourceBundle-IQKeyboardManager-IQKeyboardManager-Info.plist */, + ); + name = "Support Files"; + path = "../Target Support Files/IQKeyboardManager"; + sourceTree = ""; + }; + 4182B290A81810E167941C963B5CC3A4 /* QGVAPlayer */ = { + isa = PBXGroup; + children = ( + EC2B8510602804E6C25935647B94A846 /* NSArray+VAPUtil.h */, + 375CF7EC774E0546D8281084DF667137 /* NSArray+VAPUtil.m */, + 198BE69391F4887F28FA64E0248071F8 /* NSDictionary+VAPUtil.h */, + 32515DC6539770B161CF9BE8AA915F02 /* NSDictionary+VAPUtil.m */, + 3CCEE7FC2F9AFDB27D8705E4B260814C /* NSNotificationCenter+VAPThreadSafe.h */, + AB2CCA7421225550F02BAD572D94F38B /* NSNotificationCenter+VAPThreadSafe.m */, + BECB881BE01435296C19BD58A872AF4C /* QGAnimatedImageBufferManager.h */, + D87D3D42999151033E75027643FC134C /* QGAnimatedImageBufferManager.m */, + 5A669C34401252F978308F1576563A14 /* QGAnimatedImageDecodeConfig.h */, + 4C7865C77DD9DB60607E579BC0758D5E /* QGAnimatedImageDecodeConfig.m */, + 411A5B0C12E31DC1B0A4913E176C3514 /* QGAnimatedImageDecodeManager.h */, + 473121754F756FBD831BB36046B34507 /* QGAnimatedImageDecodeManager.m */, + C5FBE2A2DE1912B40BC887678504DBBD /* QGAnimatedImageDecodeThread.h */, + 97E4EE3DDAA0E9C5FA33E798507F3C1A /* QGAnimatedImageDecodeThread.m */, + F8A259C7517650851FFC0D29B1C032E2 /* QGAnimatedImageDecodeThreadPool.h */, + 5B984728ADC52AF50BCCA6AE10D4564F /* QGAnimatedImageDecodeThreadPool.m */, + C2B4D4B562EC668CAF254E73F9CDD713 /* QGBaseAnimatedImageFrame.h */, + 65A5E1F52BB005E19DA58259743A63DB /* QGBaseAnimatedImageFrame.m */, + 521ED7848F776C4C2660EAE7DFBC2718 /* QGBaseAnimatedImageFrame+Displaying.h */, + 356E53AC019108FC3CD39CF37AB40AD7 /* QGBaseAnimatedImageFrame+Displaying.m */, + B2431DF859493CECA1608DFE5282B2DA /* QGBaseDecoder.h */, + 74E90077F43AB33C2B68679AA9A70863 /* QGBaseDecoder.m */, + B5D4B6F06B24BD60D5A8E84B41C1D8CA /* QGBaseDFileInfo.h */, + 29DC22A46EC320B38D2E3416E25A3438 /* QGBaseDFileInfo.m */, + E8F31B119AB11AA2DC40EBEA5F9DB70F /* QGHWDMetalRenderer.h */, + BA4E41152B130497D7FC307144BBB8C8 /* QGHWDMetalRenderer.m */, + 100995F6875D8295B7AA9D82EDD55E4C /* QGHWDMetalShaderSourceDefine.h */, + F9E5BDE72EE2D76597543262ADB25515 /* QGHWDMetalView.h */, + 1ADA0F2909892D339EE4B58B24AAF304 /* QGHWDMetalView.m */, + 310C4B839E1AF1CB0616FC948067B950 /* QGHWDMP4OpenGLView.h */, + AF9CD71DEEC9408CBF151103B0E5F0D2 /* QGHWDMP4OpenGLView.m */, + AE6044C2F23ADE662B69D64BFCB9759A /* QGHWDShaders.metal */, + F9D24DD12D3E42238B1D77BB54E9FA99 /* QGHWDShaderTypes.h */, + 7C774508195CE16AFEAF10E844CCB0E0 /* QGMP4AnimatedImageFrame.h */, + 0861D83E5928C4E8173B6F9299FC22B0 /* QGMP4AnimatedImageFrame.m */, + 1DD50156D9B15CB388A20DB62B2E0BB0 /* QGMP4Box.h */, + 20343CC3F6D152CD8DD53ACAC5CDADC5 /* QGMP4Box.m */, + 67B3F520F242F8408461338A1A462C72 /* QGMP4FrameHWDecoder.h */, + F213F69EA7F5CBCD3F22BDCFC5408A46 /* QGMP4FrameHWDecoder.m */, + 88A2ED2A1032291042DC260644022682 /* QGMP4HWDFileInfo.h */, + 5F7A26AF65BC509BC99AA1FC85C51745 /* QGMP4HWDFileInfo.m */, + B2BAF03368C61D0A31E4A6CFC8D815CC /* QGMP4Parser.h */, + F1A541AEECDD4A5D89130BB48241344A /* QGMP4Parser.m */, + AB95C2A2C021DEBDF9C01A0110B99675 /* QGVAPConfigManager.h */, + 864CE51C15F42BF2126252E3EDF35226 /* QGVAPConfigManager.m */, + 5A06563771AD5B6DC597B80D8460B3A2 /* QGVAPConfigModel.h */, + 1DE08FA81747E5623FBCBD95406DA52C /* QGVAPConfigModel.m */, + F19844E57C069F103596F7D39BD46525 /* QGVAPlayer.h */, + 132B2C689DCD777DB3F90F03952E6683 /* QGVAPLogger.h */, + D2E7C8FDB05292AE8AFC4257846F3A95 /* QGVAPLogger.m */, + FFEE3F861C1FD26E95F4FB2D306BB733 /* QGVAPMaskInfo.h */, + 263ABCD0AFFF04BFAD27C11EF90EF1B4 /* QGVAPMaskInfo.m */, + 9FD3E83627951C9F02E6974ADBF35643 /* QGVAPMetalRenderer.h */, + D1BD141EC6A53A6B60DC9B14624F1C22 /* QGVAPMetalRenderer.m */, + 85F1E0B017257CF852C48AECF7DF6E93 /* QGVAPMetalShaderFunctionLoader.h */, + E31A240DEFB4EFD2B4D01DD7117E0034 /* QGVAPMetalShaderFunctionLoader.m */, + 112D92259F30896CFD904B6A7663712C /* QGVAPMetalUtil.h */, + 94F1A20F3CF3CA9B5FEE05BC72495CF0 /* QGVAPMetalUtil.m */, + 54E20AEAEADAB286610843D9667CB450 /* QGVAPMetalView.h */, + 588D3CCD8EE99838ACDE6232300077FD /* QGVAPMetalView.m */, + D08510DE0D551DB58D948856A43CD905 /* QGVAPSafeMutableArray.h */, + 500DABA99FE89D664AC06E90ED5861F6 /* QGVAPSafeMutableArray.m */, + 9F87C0D5F738CA610152A78F9E775A09 /* QGVAPSafeMutableDictionary.h */, + 1D065235116A0A3ABAAB4CAE58E793D6 /* QGVAPSafeMutableDictionary.m */, + 1444A2422702396B38D30FA53D16C3B0 /* QGVAPTextureLoader.h */, + 29633068DC32D42C43EE802B8FEE1A3B /* QGVAPTextureLoader.m */, + E0B061F36D87206193C7479A40CE154C /* QGVAPWeakProxy.h */, + CAA1EF5C04ED14358E201C77CD3AE0BE /* QGVAPWeakProxy.m */, + 37AC3CD799DAF42B47FD31D0327DFB1A /* QGVAPWrapView.h */, + BD802461011BF0D3BB86E9C8CB90F549 /* QGVAPWrapView.m */, + 5B225C31748D5973C2767CBCEA2616DA /* UIColor+VAPUtil.h */, + 9BBD491D1860D0D424311AB4B2AE2CE6 /* UIColor+VAPUtil.m */, + 240862F3B8E54C91D33AFD34A896DBBC /* UIDevice+VAPUtil.h */, + 07A82BE18AB318F4F5861C0328FD2263 /* UIDevice+VAPUtil.m */, + 04EA3C1259C99C8D4B2F7760CA9C496D /* UIGestureRecognizer+VAPUtil.h */, + 33DA828E554084B88BA4798FDD90C02A /* UIGestureRecognizer+VAPUtil.m */, + 8FF050324764B7CC17BB9B1BE5FE6720 /* UIView+MP4HWDecode.h */, + 5992088A813055291F36B0344ECDA1A3 /* UIView+MP4HWDecode.m */, + 0454D0147525728E889241EA260FBF13 /* UIView+VAP.h */, + 7117659E612C3305B5061F6263F50C7F /* UIView+VAP.m */, + 558DF22DBEE747C372FF9D653111002F /* VAPMacros.h */, + 35E842DA22F322805487063E904F555F /* Support Files */, + ); + name = QGVAPlayer; + path = QGVAPlayer; + sourceTree = ""; + }; + 42490F23F25493A4B938BCD481175E85 /* Frameworks */ = { + isa = PBXGroup; + children = ( + E71C8117686C1F637744D9721B518A91 /* Agorafdkaac.xcframework */, + 2DD9385ECFC8B4A4946B324AF2B72B70 /* Agoraffmpeg.xcframework */, + 57B040E8C8F0B4B62BA73420C9547687 /* AgoraRtcKit.xcframework */, + 716DB280263AAD9581CF0E6B11380684 /* AgoraSoundTouch.xcframework */, ); name = Frameworks; sourceTree = ""; }; - 41EF914303645BC9BBC68948592009F2 /* AvoidCrash */ = { + 44A1D96C352AEBA15F6101E8EC2E6599 /* Network */ = { isa = PBXGroup; children = ( - 5FFB9B32C9304B2C02F9226579B90D1B /* AvoidCrash.h */, - D421B73F2AB1AD9950928AAD24188E08 /* AvoidCrash.m */, - 23AD3202055EDA5301C91022B2C83F1B /* AvoidCrashProtocol.h */, - C72D0FCDBEA89A04B10E44BE52EA4C9A /* AvoidCrashStubProxy.h */, - 0C1A87184CB5B1766C02E4CABB67CE89 /* AvoidCrashStubProxy.m */, - FC9C62B42AF240A645A8660E04179C51 /* NSArray+AvoidCrash.h */, - 80F0DD12952ED87B30B0627F494F0E36 /* NSArray+AvoidCrash.m */, - 48C3BBA70F677407E36DBA2EE896068B /* NSAttributedString+AvoidCrash.h */, - 171A749A0ABC4EC247A355379BFA03A4 /* NSAttributedString+AvoidCrash.m */, - D20DD2027AC5A9401BA861A78C7A6C83 /* NSDictionary+AvoidCrash.h */, - CCADFE0BDA29D3D300B124C79D0F24C8 /* NSDictionary+AvoidCrash.m */, - D7324F57315749B9FB6DF16F6BB3210B /* NSMutableArray+AvoidCrash.h */, - EF7118D739E1BFA6377449B799E1496F /* NSMutableArray+AvoidCrash.m */, - E7BD0B0B60CA10C971E26DD11DD2AC30 /* NSMutableAttributedString+AvoidCrash.h */, - AB3FA486FEC3DC524BB77DE6197AB2BF /* NSMutableAttributedString+AvoidCrash.m */, - 604D1FE7B994587782D5E78D8866E9BB /* NSMutableDictionary+AvoidCrash.h */, - 7B214FF6F0B5DF058EAB84CBA5CB49C1 /* NSMutableDictionary+AvoidCrash.m */, - E3F9DDDD63205FF6D3C3B1491080E62D /* NSMutableString+AvoidCrash.h */, - 196F0625998DC51DDCF87BFDF917C668 /* NSMutableString+AvoidCrash.m */, - A789F7B252C2751219AF125891CC7B53 /* NSObject+AvoidCrash.h */, - 59BEC91DC693BB063B65D324ED1A36F1 /* NSObject+AvoidCrash.m */, - F77A98E3CEFCF74FDF4F7671F7B5C01F /* NSString+AvoidCrash.h */, - 405626BC91F97DC3F00DE8BBC0646BEE /* NSString+AvoidCrash.m */, - A51B732E241B0EDA1CFB3289DC0403E3 /* Support Files */, + BF3C384FACF30DDD51276EE009F09266 /* LLNetwork.h */, + C05969BEAC7EC4ACD6B24C23139E3BC5 /* LLNetworkCell.h */, + 5F180675B02342B8418012E932CB120F /* LLNetworkCell.m */, + 8F93B67C8D43EC657E335A6F77182973 /* LLNetworkComponent.h */, + F009AC257668424C615751C2506B3977 /* LLNetworkComponent.m */, + D6FAD67ED2AC36777D1F37562B2CA887 /* LLNetworkDetailViewController.h */, + 714DE9D21747F7ADB7E847688567B3A0 /* LLNetworkDetailViewController.m */, + F6DF0EBE007FB701E63CBADDE35A991C /* LLNetworkFilterView.h */, + 8767B263652CFDCD16E40D68E0A5E658 /* LLNetworkFilterView.m */, + 7378F8C8FFBE479804EDE124B75AF775 /* LLNetworkFilterViewController.h */, + 3F38A2256A603F22218784B900169A70 /* LLNetworkFilterViewController.m */, + 08574C1EB9E14AE1574467A04F81844C /* LLNetworkHelper.h */, + F6FCB1F49ED9AFE79B0EA48E701E8FB1 /* LLNetworkHelper.m */, + 3AB782AC7C00029CE68CCBD575FF72B7 /* LLNetworkImageCell.h */, + C1AC44C8FF9653AEB5DAB71D8C51CF27 /* LLNetworkImageCell.m */, + 88E06D778F2FCCEB9FE5416F7D4CF216 /* LLNetworkModel.h */, + 89799A51AC5B8D27444B63A0C708C748 /* LLNetworkModel.m */, + DCC0C6B6E0A89084D9A0A49FF21876E6 /* LLNetworkViewController.h */, + C037CB7FD3E4185DA804EFAEA5ECB47B /* LLNetworkViewController.m */, + 7364939E951750D98837F0924A8F4788 /* LLNetworkWindow.h */, + 27B972B0CD012A81F1BA6F314B6280C6 /* LLNetworkWindow.m */, + 229DE89D7AD71733706C671D77CC7666 /* LLReachability.h */, + 03951B0F3C08BDC07E054943864B3594 /* LLReachability.m */, + 550A3A97018FC4B7A39F25E713E9C5CF /* LLURLProtocol.h */, + 28D46022EB59849B06DD06DE0851BC0D /* LLURLProtocol.m */, + 92BA56547911C9DDE2E0D1FBC2379C56 /* LLWindowManager+Network.h */, + EDC3AB439C39A211DAE08F7749D129AC /* LLWindowManager+Network.m */, + 0EE95776273C13ED73E0B751B2BA8E2A /* NSData+LL_Network.h */, + 59212D34B5BADE17EFD6F8B3760781A6 /* NSData+LL_Network.m */, + 2F1F9AAFED55796FC0D703387BD54857 /* NSHTTPURLResponse+LL_Network.h */, + FC6AAE19178B09BFA7FF9D1C8B678484 /* NSHTTPURLResponse+LL_Network.m */, + BFA251B40E1BA8D917AD3181373F7681 /* NSInputStream+LL_Network.h */, + 10DCB2538262102141069397DEEEEE4B /* NSInputStream+LL_Network.m */, + 0C7CF617060B058010C68F29C2D02F5A /* NSURLSession+LL_Network.h */, + 63ECAA4E7DABBCB3BF783384C7808CC7 /* NSURLSession+LL_Network.m */, + B8B6B8F0BED93D0BD0BEE76007D1292A /* NSURLSessionConfiguration+LL_Network.h */, + D850524224CE3FE7FD8A47FC4AEB9690 /* NSURLSessionConfiguration+LL_Network.m */, ); - name = AvoidCrash; - path = AvoidCrash; - sourceTree = ""; - }; - 436A56CB0A584ABC9C9930C184D87242 /* Min */ = { - isa = PBXGroup; - children = ( - 4CD3877D9642085EB7E4E9FA7963DF63 /* GCDTimer.h */, - CF3BCCDFE5207EEDDAA538327D74F2D6 /* GCDTimer.m */, - 0422526A8D034EC1C848131751331825 /* MQTTCFSocketDecoder.h */, - 2031054870ACAE160DB061A19CD5B9FA /* MQTTCFSocketDecoder.m */, - 4A2C80110882FD004441E6E08C198992 /* MQTTCFSocketEncoder.h */, - 5D3453AD440E8776E21812DC32CC673A /* MQTTCFSocketEncoder.m */, - DEE52AA4F9F7FC2228073F0EE4099772 /* MQTTCFSocketTransport.h */, - EA8C7406B301BE8273410FBC2AD62032 /* MQTTCFSocketTransport.m */, - E6A2E8DF1C0C065161F7CC2BF9A28954 /* MQTTClient.h */, - B53440B74ED4D77A1FD5576805D9E922 /* MQTTCoreDataPersistence.h */, - 46F3FA171D00A665CFFAEE4B37F1D22E /* MQTTCoreDataPersistence.m */, - 0CD165943BD615CF7BBF796D3A9A40C1 /* MQTTDecoder.h */, - D0BD09083F508CA50BA0A33856D212BB /* MQTTDecoder.m */, - 415EDC4F9C24FB1219CE8918D360F58C /* MQTTInMemoryPersistence.h */, - 16ABE6B596635A18447A7259BA6AEC22 /* MQTTInMemoryPersistence.m */, - 9EA98A7121979D4F6F445BF0363C017C /* MQTTLog.h */, - 2637DA96632205B39B650F5D7707CA86 /* MQTTLog.m */, - B3C9A8FD1390C84584A19F64A61C7FB5 /* MQTTMessage.h */, - F8DC3F5E134F8832F84B05512E11FC51 /* MQTTMessage.m */, - 18F4C4629CC425BF3DE1AF23A034EC2A /* MQTTPersistence.h */, - 0D1882D5427DA3A6B6E7C146C0F72C69 /* MQTTProperties.h */, - 907FF6352E0FF6E21E635F1822136EBC /* MQTTProperties.m */, - B3D33CA776B0C7A667FEC2DA58D0DD92 /* MQTTSession.h */, - 54BB0D7D6F853CA4875A588BB976B0A7 /* MQTTSession.m */, - A3568A55FDE1DB9E52DFED4A1F9580A7 /* MQTTSessionLegacy.h */, - CF5CAD8EC46028FBA2494B8B40E60D5E /* MQTTSessionLegacy.m */, - 4988BA03D0EBAD5A74A80D6379EF62DF /* MQTTSessionSynchron.h */, - DCA7AF97E6E82F6C971AD0C7105CF4D9 /* MQTTSessionSynchron.m */, - F92CE0D86BA334BDC83C50BF7EC20D2B /* MQTTSSLSecurityPolicy.h */, - 8A44DCEF52F0CEFB314428B6CA51D445 /* MQTTSSLSecurityPolicy.m */, - 0489B4E7CF7D7BEBBE5CE6A2724E3EB2 /* MQTTSSLSecurityPolicyDecoder.h */, - 25106002F2C0045DC60DA393D32734FC /* MQTTSSLSecurityPolicyDecoder.m */, - 5B3AE16F4A757602D6257E9A2F768BFF /* MQTTSSLSecurityPolicyEncoder.h */, - 56E6F6060749C45CD2589FFFAB8052C3 /* MQTTSSLSecurityPolicyEncoder.m */, - D2A4C52251BC280747DE59A47A15BDC3 /* MQTTSSLSecurityPolicyTransport.h */, - 9CED0A800FADE3CC1E40B544A2DB5533 /* MQTTSSLSecurityPolicyTransport.m */, - BDDE6DDA00CA871418655CB96863F537 /* MQTTStrict.h */, - 2F16AADB89A2534768EEF98070B578AF /* MQTTStrict.m */, - 8B87EE478A2CDC2B5235E40FD354D5E3 /* MQTTTransport.h */, - 2777A736EB2CF402FF93A5840C02A123 /* MQTTTransport.m */, - ); - name = Min; - sourceTree = ""; - }; - 437CC7A5B3A0558C4D360DD15A55A434 /* TextPicker */ = { - isa = PBXGroup; - children = ( - 7F090161AC4F475F49518CF68DFC309C /* BRTextModel.h */, - D444D03CC4FB842D121B0F3136BDBC5A /* BRTextModel.m */, - 1D5C836EF20E3D39FF804AEB9B1D57F7 /* BRTextPickerView.h */, - DC60866DA2C75125175CDB5DD741E082 /* BRTextPickerView.m */, - ); - name = TextPicker; + name = Network; sourceTree = ""; }; 4565EC0E6E83D3EB250209E1E32082B7 /* UI_Minimalist */ = { @@ -8629,104 +9269,104 @@ path = UI_Minimalist; sourceTree = ""; }; - 4582D5752F7D3EC7C3E12225698A613B /* Frameworks */ = { + 45A64240F9EA559D85BE0707C85B8420 /* TextPicker */ = { isa = PBXGroup; children = ( - 07BEED9FBFEA1287E0D1E639285F7863 /* AgoraAiNoiseSuppressionLLExtension.xcframework */, + 8B6426A1A9ACD43A67415CDBD025165D /* BRTextModel.h */, + 89B334B55D17CF93763C51CB3EA0034D /* BRTextModel.m */, + 6AAB5B001249D96CE8C2A1FE66E00532 /* BRTextPickerView.h */, + 9F6FF641EABEE4CC560B92FEB7DAFB1D /* BRTextPickerView.m */, + ); + name = TextPicker; + sourceTree = ""; + }; + 45CEE62C5E2DC68A9B151B02FAC44D5C /* Frameworks */ = { + isa = PBXGroup; + children = ( + 836B2E76061155C2A538E98A1821622E /* AgoraReplayKitExtension.xcframework */, ); name = Frameworks; sourceTree = ""; }; - 466173E88DC798341FB59CA3269D854A /* Support Files */ = { + 4610AF2FC273553E89485A8F8D78A545 /* Support Files */ = { isa = PBXGroup; children = ( - 643E57EF0AC45C3A17DCA0C4BB703C28 /* YYWebImage.modulemap */, - E54323A751E7E123E3FE66ED5294D556 /* YYWebImage-dummy.m */, - 58EB93600B226CA5D087A05FFF6DE5E4 /* YYWebImage-Info.plist */, - EB53E28462CB4576327424E66F96052A /* YYWebImage-prefix.pch */, - C6B729EC72A3E7EE2ED5C8A99B256E97 /* YYWebImage-umbrella.h */, - 27920C8907D0C4BA0EE35D12FCA02C15 /* YYWebImage.debug.xcconfig */, - 5A8FEE35372F6C7BF718AF877C4EC862 /* YYWebImage.release.xcconfig */, + 72910234BBBB360162AB8147F96595EB /* YYCategories.modulemap */, + 10273522C8A8B06633A16F79AF185B74 /* YYCategories-dummy.m */, + 9072CDD73A8D211AC95E38A2BAD39770 /* YYCategories-Info.plist */, + 18D4BC089B6EE583D1F4CBCED430B23B /* YYCategories-prefix.pch */, + DB9F7E2D705481AF576EBF89395748D3 /* YYCategories-umbrella.h */, + BF2A6DB2A4233FAB516EFE04517C9E1D /* YYCategories.debug.xcconfig */, + 4CC90FF57114835B548772BD7118CB20 /* YYCategories.release.xcconfig */, ); name = "Support Files"; - path = "../Target Support Files/YYWebImage"; + path = "../Target Support Files/YYCategories"; sourceTree = ""; }; - 47CC351E9581DAF77B7E03B145FB6530 /* Sandbox */ = { + 46FE105E639328774525B05CBFFBF92A /* Support Files */ = { isa = PBXGroup; children = ( - C1BBE6D9E6934F4A1295351D6DA04D07 /* LLPreviewController.h */, - 736B0E5E7A0DCE490FD163260A1E8FC9 /* LLPreviewController.m */, - E59066CA94FC36560D3769BD1F4B84E6 /* LLSandbox.h */, - 309D1A47FA158D12298A21D9BC26845E /* LLSandboxCell.h */, - C17E299F82DE8805FE3EC13DD205CD99 /* LLSandboxCell.m */, - 1F8AA2E551ED1527D8B46CFDA30457A9 /* LLSandboxComponent.h */, - 711A24F01B4B49F16276C6C1025A0C75 /* LLSandboxComponent.m */, - 5E897D0959338F7C3C6938D01F3ECD5F /* LLSandboxHelper.h */, - 2109E0B0456FB1B07A2362495F92B4DC /* LLSandboxHelper.m */, - A57A219EA4983CF7FCA736AF8CA139B9 /* LLSandboxHtmlPreviewController.h */, - AC4CBF8C5116C1FECAFEBE4E2E394213 /* LLSandboxHtmlPreviewController.m */, - 2E6C2A703C44A0270CFBAA655E88B2E1 /* LLSandboxImagePreviewController.h */, - 04A104C169E0D6777D9CB40E1FC29E13 /* LLSandboxImagePreviewController.m */, - 21D150A1E98C12FF95AA2A0E954B188A /* LLSandboxModel.h */, - D75DC647DAB6C1AEDC8D507218D413DA /* LLSandboxModel.m */, - FC7F4FCE5B2841512C8B56B3595C9871 /* LLSandboxPreviewController.h */, - B24F4D722E0777BF25D84D5AF84F0C4E /* LLSandboxPreviewController.m */, - 6F5338DDDD018E2084D66EFC2DFE5631 /* LLSandboxTextPreviewController.h */, - D442259526A73D1818CF1B3FEF6FB017 /* LLSandboxTextPreviewController.m */, - 67CEF53E0F24EA9CFD1071F0F164872A /* LLSandboxVideoPreviewController.h */, - 963354F1BD6B33DEE9BFE8C56475A7C1 /* LLSandboxVideoPreviewController.m */, - 1C5EABFA1248704C4935F55A44D0FEAF /* LLSandboxViewController.h */, - 269813640263C63AD251D28B89BEA74B /* LLSandboxViewController.m */, - 84976CAC7B63B4E315DC28D5A363255F /* LLSandboxWindow.h */, - 0D3DFE6293A302B7722F166D3804C24E /* LLSandboxWindow.m */, - BFAB969193E17F3829AA936707D86F16 /* LLWindowManager+Sandbox.h */, - C5B9C3A62950E1FCEAC7D74608452593 /* LLWindowManager+Sandbox.m */, - ); - name = Sandbox; - sourceTree = ""; - }; - 4837F3A409B7395AFFD74D1761E77E0E /* Support Files */ = { - isa = PBXGroup; - children = ( - A789FD065E81CDA5E54F90FF7CFFC2BC /* Zip.modulemap */, - 19273D67C7D67D752C0B805B300C27F3 /* Zip-dummy.m */, - CD7863A1B656CBA10A72DFFE5CBAD4D5 /* Zip-Info.plist */, - 0FA5E61CD2A544B602E28CF72818EFFB /* Zip-prefix.pch */, - 2B5645CF65E01A88B0BE454C8273D724 /* Zip-umbrella.h */, - 2FDDD201C2A98C3CA6DDCC3F69B3AAE3 /* Zip.debug.xcconfig */, - 5547EBD2D22EB59AEB027AC63B1BF4D7 /* Zip.release.xcconfig */, + 58F4A0609A917741FE7C239586520A66 /* SDCycleScrollView.modulemap */, + 548776CDF0D86CACB6FA503CC4368123 /* SDCycleScrollView-dummy.m */, + A88EDD4C5FDB299D93A721D1FB394726 /* SDCycleScrollView-Info.plist */, + 5F6CF3F8AFA70F47C743ED5063206383 /* SDCycleScrollView-prefix.pch */, + 5EDEDB571BD2BCAA8282600BEFDAEC76 /* SDCycleScrollView-umbrella.h */, + F500827AAC3CB2AC9F44844805366550 /* SDCycleScrollView.debug.xcconfig */, + 2237A6209697E17B9F9540A670A6BE23 /* SDCycleScrollView.release.xcconfig */, ); name = "Support Files"; - path = "../Target Support Files/Zip"; + path = "../Target Support Files/SDCycleScrollView"; sourceTree = ""; }; - 4903B4AA36DE7DE01F29CC50078DBE21 /* Hierarchy */ = { + 47322CE029FC9194B6F62C0AF9296B8C /* MBProgressHUD */ = { isa = PBXGroup; children = ( - BDA3927983699496B7D9033CA74611CC /* LLEnumDescription.h */, - E76491A4F0DC05B07F335A66431817A0 /* LLEnumDescription.m */, - 20AF907DFE0BD391414559970C40DA48 /* LLHierarchy.h */, - 2F0BBFCEBD79B28994AA42CB9822B10B /* LLHierarchyComponent.h */, - 0A3FD328EFD2497883883E73A0FF8D97 /* LLHierarchyComponent.m */, - B5E7CFC45EF81FB9D62C25BD34A73694 /* LLHierarchyDetailViewController.h */, - DE7B4AAD419FD1D481F4D736EAED89DD /* LLHierarchyDetailViewController.m */, - EC9FAD6E6B2245B24C268E38F90E7152 /* LLHierarchyHelper.h */, - B7492E14C2FD946DFC80BE5BDC0BD97D /* LLHierarchyHelper.m */, - 0C8A6FE3EA356B31A7E4E41873AADDB1 /* LLHierarchyInfoView.h */, - 70160915B805CCCE8098C6E79164C268 /* LLHierarchyInfoView.m */, - 556343C376CBBFD263B32B0B40598D68 /* LLHierarchyPickerView.h */, - F9E95BE53E6A32451C6234D71E746822 /* LLHierarchyPickerView.m */, - 654CFA573EECA8E3AC040B10A204A348 /* LLHierarchyViewController.h */, - DBEACBCBDF9395A22CD3ABF281B25FE7 /* LLHierarchyViewController.m */, - 047A8BEFD58F6C53EFE366ECDC291C93 /* LLHierarchyWindow.h */, - F51747FBA8E81534E5E9116C185D4531 /* LLHierarchyWindow.m */, - 45C1319414DA0887EDB55A55683C9ABE /* LLWindowManager+Hierarchy.h */, - 792BDE17147284F412D465D40D7D82D5 /* LLWindowManager+Hierarchy.m */, - A687BED20C7D536316FC3A7D7D95ADA9 /* NSObject+LL_Hierarchy.h */, - 4EBD3B0E13D269E8B237B7ADC85AEE2C /* NSObject+LL_Hierarchy.m */, + 746FE5E7F1A4103C529B9A947F4C4163 /* MBProgressHUD.h */, + 1135D4E59A92E087E5425E466950E410 /* MBProgressHUD.m */, + F51A9CAE56FC8C741E3D46EEC5DC727C /* Support Files */, ); - name = Hierarchy; + name = MBProgressHUD; + path = MBProgressHUD; + sourceTree = ""; + }; + 4744674E6DE30B91F3552CCB64189662 /* ClearVision */ = { + isa = PBXGroup; + children = ( + 178C5CD0B196FF3CE9A1BDC9A8F5994A /* Frameworks */, + ); + name = ClearVision; + sourceTree = ""; + }; + 485FBB49B83F72DD02309F3B5F456C8B /* Location */ = { + isa = PBXGroup; + children = ( + CAF6106571940D673660A0787611E02D /* CLLocation+LL_Location.h */, + 6266B7B85BC7C76E37F697E8C52F7304 /* CLLocation+LL_Location.m */, + 08B46AA8431E44FAA52AF003D3538302 /* CLLocationManager+LL_Location.h */, + FF7C05E57A441420C8F62811D382304B /* CLLocationManager+LL_Location.m */, + EF1815A55EB691FEA620B8DC19152869 /* LLAnnotation.h */, + 22F209DCFDF06D6D004B17D4A4614726 /* LLAnnotation.m */, + E4ED40F5B60870AF9B51CE353E178560 /* LLLocation.h */, + 5FA8A9238F9D0428F04C1A12C4A2537A /* LLLocationComponent.h */, + 260DC26BDF0892F9519735F2FC5DE923 /* LLLocationComponent.m */, + EC66B56F74A65DE41BAF756857F9EA36 /* LLLocationHelper.h */, + 92C8304300FD1039B39260B05ED122B9 /* LLLocationHelper.m */, + 01BDA857040880769264BF6D0D910048 /* LLLocationMockRouteModel.h */, + AC603A19274FB2CD8196100E3288674E /* LLLocationMockRouteModel.m */, + 5FE4B5C48241DD23EC880016020E67CD /* LLLocationProxy.h */, + D33508649AF468E5AD20E17489CB50D7 /* LLLocationProxy.m */, + E5441491448053F9814E00F743DCDEEB /* LLLocationViewController.h */, + 44D7C63266B958AF24384DFB3BF655CF /* LLLocationViewController.m */, + 38423F8F3364205E7E652C96998807CD /* LLLocationWindow.h */, + CCC75942C35CF8A1599760D941698552 /* LLLocationWindow.m */, + 23785D638D2B27E21D5B4CCA02DDDB07 /* LLPinAnnotationView.h */, + E8B01716AB758E8D6CBBDDBFF566A30C /* LLPinAnnotationView.m */, + 0793A27AE39621C7A440276E1D066FB7 /* LLWindowManager+Location.h */, + 6CF500A440CB4A87DFD5C4F2EE40F2A6 /* LLWindowManager+Location.m */, + 5BE42352D9754498DBB58BBB69049326 /* MKMapView+LL_Location.h */, + C2D2EF8B393EF2C8810CDF344F4737A3 /* MKMapView+LL_Location.m */, + ); + name = Location; sourceTree = ""; }; 4B3F6CA8E8C87F7D227AD8500ADD5DA7 /* CommonModel */ = { @@ -8766,50 +9406,92 @@ path = CommonModel; sourceTree = ""; }; - 4E36ADDE68E0E8039AD93E92775C22BB /* Support Files */ = { + 4BB3616A5719EE76B90D8417597694C8 /* Crash */ = { isa = PBXGroup; children = ( - 1AB00D2FD73F42A4B4405E3C4E458E83 /* ResourceBundle-TIMPush_Privacy-TIMPush-Info.plist */, - 819DC30C8FD3C4E5A88BEF5C08684CA5 /* TIMPush-xcframeworks.sh */, - C879FEB44DB34C3BA3BE82553CB57D91 /* TIMPush.debug.xcconfig */, - F0EB163B760EC1D361AAEBDEE607BDA1 /* TIMPush.release.xcconfig */, + DF93D12A280FEEB9F29949C627132528 /* LLCrash.h */, + 6170642C1C4E9BC596E9F1101C087707 /* LLCrashCell.h */, + E5B1D0E9CE2A700E78BE5773C02888CB /* LLCrashCell.m */, + C63D04F695E094AC6F3E69C41CCF0EA1 /* LLCrashComponent.h */, + EB4D80265B18933ECC0B7D05844DD0D0 /* LLCrashComponent.m */, + 06F8B9EBC43764C462B974042FB30306 /* LLCrashDetailViewController.h */, + 507A36A5DA149C8C4AC5CCDE8DD4A9F5 /* LLCrashDetailViewController.m */, + 6759B25413994A769CDE9CCE8BDDFA61 /* LLCrashHelper.h */, + FC88BE1927B5B72263E7CBC43989CED3 /* LLCrashHelper.m */, + EE18F9EB151526E3C07397A9E807D8E4 /* LLCrashModel.h */, + ABCFAE80AC277547100AC9A23CC81757 /* LLCrashModel.m */, + EC4FF01339FA7AB1962A0244200963E7 /* LLCrashViewController.h */, + 6114638680138B240CC22DF88534B37A /* LLCrashViewController.m */, + F1B7927F6989CFB987810F4C0B4BF875 /* LLCrashWindow.h */, + 527F36F77F902FDE250B6767F1A9A9D1 /* LLCrashWindow.m */, + 21F6E7E34006BB346311534A7F4A1C99 /* LLWindowManager+Crash.h */, + D92C781EF12BC4CE352A097B1945E1B6 /* LLWindowManager+Crash.m */, + ); + name = Crash; + sourceTree = ""; + }; + 4BE3D3770FA8DAFB36821CDF0917F07F /* Resources */ = { + isa = PBXGroup; + children = ( + A09CEF93EFE09A15795678E4628EC96C /* TZImagePickerController.bundle */, + ); + name = Resources; + sourceTree = ""; + }; + 4FC9EE28B03422683A48D7CE71567B02 /* Frameworks */ = { + isa = PBXGroup; + children = ( + 63307022B07850EAC2377DBAD303A51E /* AgoraVideoDecoderExtension.xcframework */, + 3AF7922C63D1F715EF9339F99CF89C7D /* video_dec.xcframework */, + ); + name = Frameworks; + sourceTree = ""; + }; + 5019B3FD3BA3C5FF35BB87C75752C8BD /* Support Files */ = { + isa = PBXGroup; + children = ( + BF562E0480494D3B85299D6665852D81 /* YYImage.modulemap */, + B91D5E724A7FD050682DF4FCBF8F7BB1 /* YYImage-dummy.m */, + 5A4BD85D8382A0B5507404DC7B9DA89E /* YYImage-Info.plist */, + 8D87DA6B70C6FFFC41C35A0E4A2C1486 /* YYImage-prefix.pch */, + 50374C4613B393AB172EAFA723197796 /* YYImage-umbrella.h */, + F117D94CCC6911AB906A6757E7290E6A /* YYImage.debug.xcconfig */, + 578EBAD6008013CBDC078739E7461D08 /* YYImage.release.xcconfig */, ); name = "Support Files"; - path = "../Target Support Files/TIMPush"; + path = "../Target Support Files/YYImage"; sourceTree = ""; }; - 4FBA57F2159D9710735A3802B61CE75D /* Support Files */ = { + 52D057529923E2CE785AE5DEEB0B190C /* Core */ = { isa = PBXGroup; children = ( - A9FBCE8CAC023AA0BA5F20AF17D906FC /* MBProgressHUD.modulemap */, - 48916B4071AC3689F512A4A27B2D6CF8 /* MBProgressHUD-dummy.m */, - 266354E5F0EE799B2DBF871861949F01 /* MBProgressHUD-Info.plist */, - 59AEB068B8D286CD738AC75C91C1FF5B /* MBProgressHUD-prefix.pch */, - 768C3EF493D425504064D811F7396694 /* MBProgressHUD-umbrella.h */, - F5704A411736ACCF7E7E2DBBC9FBF3B9 /* MBProgressHUD.debug.xcconfig */, - A0B57D07E7AB462B22BDA1116D07A080 /* MBProgressHUD.release.xcconfig */, + 093F6DA4C4B280185F6791821488D841 /* YYAnimatedImageView.h */, + D71846A0611A3086C72AD48DB142E0E1 /* YYAnimatedImageView.m */, + 547AD5FE94B8E8890383F48287DE956B /* YYFrameImage.h */, + 3D091AA23B12B1EEA18EBF1FCCD12330 /* YYFrameImage.m */, + F04970F3062613CE53F3F40284480EAE /* YYImage.h */, + 24AD4797CCBB26B169EC0FAAFED2E158 /* YYImage.m */, + F7CD16B080859402407183A99F69DEED /* YYImageCoder.h */, + D3AF15632551C4CCE70DD675D38A81A1 /* YYImageCoder.m */, + 2A9C0B1C108E00CC8C13BF1F3E12E325 /* YYSpriteSheetImage.h */, + 44A8305BC3D1A52CCB23AA5A1D90D284 /* YYSpriteSheetImage.m */, ); - name = "Support Files"; - path = "../Target Support Files/MBProgressHUD"; + name = Core; sourceTree = ""; }; - 53130F27F4E0372524637CDD28F6E7A3 /* FaceCapture */ = { + 53BA064B4B535D8CB03D3F8A70FFC7C3 /* AFNetworking */ = { isa = PBXGroup; children = ( - 0AFF1E3B5736A927CF16BDFE5204C345 /* Frameworks */, + 9F963BF7A4A1B55E2C31A73AB013FEA0 /* AFNetworking.h */, + 12C9165C5CA536E94EFA453189497188 /* NSURLSession */, + 0055C9E5E6F7B806DA73C24F652A1E00 /* Reachability */, + 5CF7119C51F3766487D61532B33BD722 /* Security */, + 5AE1B5A677561E6F9D5ECCE965906914 /* Serialization */, + E68C03FDD6CCB214B26C8DDBFE0AEFB5 /* Support Files */, + 11E82E3FA698D4286DA12DD4BF0AA95B /* UIKit */, ); - name = FaceCapture; - sourceTree = ""; - }; - 5374565C6AFAED1204E8EE01A0640C67 /* MBProgressHUD */ = { - isa = PBXGroup; - children = ( - 7016207545611B1E0384784787BF09CD /* MBProgressHUD.h */, - 492115D79EE235CEF40092B476C19A16 /* MBProgressHUD.m */, - 4FBA57F2159D9710735A3802B61CE75D /* Support Files */, - ); - name = MBProgressHUD; - path = MBProgressHUD; + name = AFNetworking; + path = AFNetworking; sourceTree = ""; }; 54AD75BD6634FEFCAD52F979E9C3735B /* DataProvider */ = { @@ -8826,14 +9508,72 @@ path = DataProvider; sourceTree = ""; }; - 55FB3B0B6A49E24C5E57533EC6298310 /* demux */ = { + 557F219E799C41D00DDE20A276CB0E53 /* YYWebImage */ = { isa = PBXGroup; children = ( - DD53E5EF73A7ABDF3E47AFA8A0FE16B8 /* anim_decode.c */, - FC08338316F5A658727A1948229CBE87 /* demux.c */, - F5AC0E5E9040767274F7CCF8681677AF /* demux.h */, + 1E8DEB350CFCD7C373D1B90E2A2DFB02 /* _YYWebImageSetter.h */, + 40F20D87AA3C8CE9A0E18052A6DC18E7 /* _YYWebImageSetter.m */, + 499E34B74A4F8D067A02EB2B2A2DE8B4 /* CALayer+YYWebImage.h */, + EA259811A5E4EDBD31B8E485315ABC4E /* CALayer+YYWebImage.m */, + A3AE0BCA7468C1DE252BB5E2104CBA32 /* MKAnnotationView+YYWebImage.h */, + 83DA5EE38E68337BC3C63E0C331F230E /* MKAnnotationView+YYWebImage.m */, + 31E61363BD9694569DD3E9A63B4E4511 /* UIButton+YYWebImage.h */, + 3A7D3D49FA00D2550D145285DA5CA7C3 /* UIButton+YYWebImage.m */, + D74E609EC1715A674FEB95A5A9DA3713 /* UIImage+YYWebImage.h */, + 623F3004FBB3625FB6DE1B1DA2871059 /* UIImage+YYWebImage.m */, + 337ADB5D316FDB0A929EAB064196DC3C /* UIImageView+YYWebImage.h */, + A3420642FD3958E6BD891717F991A593 /* UIImageView+YYWebImage.m */, + 70CE75A6493DCA56CA9437CE63DF76D9 /* YYImageCache.h */, + A67700BDBA30F4B4EDBC894DFE79DF75 /* YYImageCache.m */, + 855ED5B6EC2A2AA8B89C4DE6EE20E635 /* YYWebImage.h */, + B1E0E37B6DB572C1BF483998D840C12C /* YYWebImageManager.h */, + E97716D3E37FCB503F0F6021923CF88E /* YYWebImageManager.m */, + 23BAECC7410EB345D7D890FBECDA1763 /* YYWebImageOperation.h */, + FC55E3804B2539EB8C9446130189B6DC /* YYWebImageOperation.m */, + 190C188984D8AE659EDBA10DA75F4B7C /* Support Files */, ); - name = demux; + name = YYWebImage; + path = YYWebImage; + sourceTree = ""; + }; + 575B8FFC3504FDA41190188162F97DB5 /* AvoidCrash */ = { + isa = PBXGroup; + children = ( + 1E41F889305B064BE18B2188D743011A /* AvoidCrash.h */, + FD10571A0E69D1CF3DD44B0CA32A3B71 /* AvoidCrash.m */, + CA98A77F09F0AB352712BE13267E380F /* AvoidCrashProtocol.h */, + 9F7262576B81D9C92A8FF0835DB50A90 /* AvoidCrashStubProxy.h */, + DF916CC5A16F2C4A062458992ED868E5 /* AvoidCrashStubProxy.m */, + 8BA2DD4C9C01EE157AD9EEC4D0094970 /* NSArray+AvoidCrash.h */, + F96E1EAFFB0135EF005F808FCE28AD11 /* NSArray+AvoidCrash.m */, + 44B04605C171CACC5F44118805A486F3 /* NSAttributedString+AvoidCrash.h */, + 2BD4ACF537A2E98F261652F6D97447AB /* NSAttributedString+AvoidCrash.m */, + 41F540009AA9DAF3CAE32CFADA4A5792 /* NSDictionary+AvoidCrash.h */, + DD60131313F27909A330EEEF4EC6BEE3 /* NSDictionary+AvoidCrash.m */, + 0C2A4BB1F9DEDDC74FE6DA31B85D038F /* NSMutableArray+AvoidCrash.h */, + 7E91AC838DA3E00425237239625A60D5 /* NSMutableArray+AvoidCrash.m */, + 40062F33F40BB0D1FDF395F715E3092C /* NSMutableAttributedString+AvoidCrash.h */, + 4CB0F464809B1069B0C26F82638E404D /* NSMutableAttributedString+AvoidCrash.m */, + 6F8B0587EF9A72A0F0798A45C0CCCA01 /* NSMutableDictionary+AvoidCrash.h */, + B652FC8625E543BC390939A913ABDD71 /* NSMutableDictionary+AvoidCrash.m */, + 91B38216C9217DACF5ACC9EA5145E770 /* NSMutableString+AvoidCrash.h */, + B5B5872A0CC38D9CA24F16F06750DB2E /* NSMutableString+AvoidCrash.m */, + DED597E4F4BBCF830F2F918FE4BBD659 /* NSObject+AvoidCrash.h */, + D76E15FD8E9D624B6128AF88E737B6B5 /* NSObject+AvoidCrash.m */, + ED253747B042E602D6C91CBDB8A3385B /* NSString+AvoidCrash.h */, + AD7C11AB19D85D711E929DC58F74CB80 /* NSString+AvoidCrash.m */, + E459B1809505DF79B1948D0FEDA7AFB3 /* Support Files */, + ); + name = AvoidCrash; + path = AvoidCrash; + sourceTree = ""; + }; + 577AB3ACBE0D271862A20D875A6BF7C3 /* VideoAv1CodecEnc */ = { + isa = PBXGroup; + children = ( + BA56D567A7EAD2ABD33F6ED205CBA128 /* Frameworks */, + ); + name = VideoAv1CodecEnc; sourceTree = ""; }; 5823F21CB11BD6182EE4D7F7AF359B40 /* Targets Support Files */ = { @@ -8845,14 +9585,6 @@ name = "Targets Support Files"; sourceTree = ""; }; - 587E2A42906E2397C05B7460BEA1CA9F /* Resources */ = { - isa = PBXGroup; - children = ( - 45DD5331A0A48C24E35AC07CF0AF4A7D /* LLDebugTool.bundle */, - ); - name = Resources; - sourceTree = ""; - }; 58CE852D9B7CB37F99E7DDFE3D7EDA07 /* Reply */ = { isa = PBXGroup; children = ( @@ -8879,478 +9611,75 @@ path = Reply; sourceTree = ""; }; - 5905511909CB6D8579134EF546C37964 /* Pods */ = { + 590436FBC8F4C69653D1166F29209545 /* Resources */ = { isa = PBXGroup; children = ( - 8CE81F74F1DE2F2B76321256AD028ADF /* AFNetworking */, - FDCC87F10865008F1C68A2124D2BE97D /* AgoraComponetLog */, - 8A8A3C89C9BEFA8F8F50486A39FA2160 /* AgoraInfra_iOS */, - B80D4E61E90DFC03408699A39D7B6355 /* AgoraLyricsScore */, - D15A9322E8232E7F73301130F5EDA98F /* AgoraRtcEngine_iOS */, - 048321D873CEDC8681E0B13D2541E751 /* AlipaySDK-iOS */, - C2DA41A0C769EE6F7A2627DC94F6799D /* AliyunOSSiOS */, - 41EF914303645BC9BBC68948592009F2 /* AvoidCrash */, - 97C76BD56D4DDECBC60C475B2B29CDB1 /* BRPickerView */, - 8DA19E086636346C9CC6241BD45A3EA9 /* Bugly */, - AA338FEF118260E033E4A4274898BF50 /* FMDB */, - 91234D00DDF9EAA87F0FE31F441F906C /* IQKeyboardManager */, - 1420EC528DF9EB85A98135771E00C9BC /* JXCategoryView */, - AC486FCADCD12BB20D5226ED849FD08C /* JXPagingView */, - 3C44B1090DEC854DDB18EA218CE62CB8 /* libwebp */, - 094FF198A219620EA5A7C24B5C15D37D /* LLDebugTool */, - 0065CE1B34961116E4F0AD47CF1BB02D /* Masonry */, - 5374565C6AFAED1204E8EE01A0640C67 /* MBProgressHUD */, - 1F2CB82C49276B077CB736935B231967 /* MJRefresh */, - 21983C0BE041F11C88F5210CFB70EDBD /* MQTTClient */, - 8E894183EA55425E7C0856FF880F1A72 /* Protobuf */, - 0847827D1E7D7314CD700894E7CAEBD6 /* QGVAPlayer */, - 7FCA6C530FC5636BFCC65734A411BFB1 /* ReactiveObjC */, - AAE6A26930544804A1E40955D216F73F /* SDCycleScrollView */, - 9B50D50C56404CAE56712EDBA179F2A4 /* SDWebImage */, - 034709B528568D122EEA10BAF5AF89A2 /* SDWebImageWebPCoder */, - B4189DA46BB2C392E1BD6455C5FF6A3F /* SSZipArchive */, - E45968C2BB434669ADB91A45583276F5 /* SVGAPlayer */, - 0709B527B940E9A858F7CC4F0825602C /* TIMPush */, - E97A35C241D578809DCCE9901809B17A /* TXIMSDK_Plus_iOS_XCFramework */, - 1F2411B55085323D28ECC9A8617F4AE7 /* TZImagePickerController */, - 90239B734A3CB0D7D1099180D8A2E974 /* WechatOpenSDK-XCFramework */, - 63A4CE8FCA07E894DD8D1AA0AC705EFD /* YBImageBrowser */, - C74D0AD1CDEE4A1DF96334D7A04D8D80 /* YYCache */, - 59333A823E59B318D7EFF2AB7FCEA035 /* YYCategories */, - 189E099052DAA18D39D6ADB7E23DA337 /* YYImage */, - F1DEA7C91DA97364DC66B4A96C6B66D7 /* YYModel */, - 5BBB85D86ACBEDB9CC41E3C5585317DB /* YYText */, - 1A2414845E80BF2DAEAB6244119DC05C /* YYWebImage */, - 7E3A2C001BDC661ECC90A5EC967455BE /* Zip */, + E90B0C6572E5E197382B7E4D88C189F1 /* PrivacyInfo.xcprivacy */, ); - name = Pods; + name = Resources; sourceTree = ""; }; - 591174695279364B84BC86155D09072E /* Support Files */ = { + 5AE1B5A677561E6F9D5ECCE965906914 /* Serialization */ = { isa = PBXGroup; children = ( - 448A21E5AEFB49A97DB05CBD0A18E8F8 /* BRPickerView.modulemap */, - D15AF3430226E14F6709DD8A871FA73E /* BRPickerView-dummy.m */, - 10833E5BACDEF21A0369D23AD74DC0A7 /* BRPickerView-Info.plist */, - 5BB9CBA9B84CE9FCC92DD252DEB00EE5 /* BRPickerView-prefix.pch */, - DD2CFF3328286C38338F8C9AA42A87B5 /* BRPickerView-umbrella.h */, - 04C1501BE84465D65722FF50DE813C49 /* BRPickerView.debug.xcconfig */, - 022A531397C9F020E81FB203A4CF5AA8 /* BRPickerView.release.xcconfig */, - FB919EBC8C89874AB45F95AE2197BC8F /* ResourceBundle-BRPickerView.Privacy-BRPickerView-Info.plist */, + DF350F198EB9F6AD1C0396C161228699 /* AFURLRequestSerialization.h */, + D25B963F5D91092D2AF613777D3EDF10 /* AFURLRequestSerialization.m */, + 68554F7E465557315380CB171D09D0E7 /* AFURLResponseSerialization.h */, + 204C3DF99C0FD906CB57AC328EA4A0DE /* AFURLResponseSerialization.m */, ); - name = "Support Files"; - path = "../Target Support Files/BRPickerView"; + name = Serialization; sourceTree = ""; }; - 59333A823E59B318D7EFF2AB7FCEA035 /* YYCategories */ = { + 5BC824E6A93D482797447642F5D2CA1C /* Core */ = { isa = PBXGroup; children = ( - 15326C99072EE61C47A1A69786519F31 /* CALayer+YYAdd.h */, - F31E5EBBD12D52E630D943496A9151D0 /* CALayer+YYAdd.m */, - A6EDC19BB012FC94BC757E0EC9BF814E /* NSArray+YYAdd.h */, - 7D60CEA3C1DFC351B3099F26E0599BE4 /* NSArray+YYAdd.m */, - 65760C38CA52743665906378AA28522D /* NSBundle+YYAdd.h */, - C1E44A694DD59DB29196DD78FEDD5D95 /* NSBundle+YYAdd.m */, - 038128B9260A99031210959AFD639165 /* NSData+YYAdd.h */, - 1AD45616632E2D6FB7219489EF525303 /* NSData+YYAdd.m */, - A8EC08E60F8DFF09E73CF1086CF3712B /* NSDate+YYAdd.h */, - 3207338365EBF7BD9944C81870D9296B /* NSDate+YYAdd.m */, - 1A46F62C62F5816CED7DED7AE930B1DA /* NSDictionary+YYAdd.h */, - 7E2EE826FEA94FAC5DF3646BE7D9FA18 /* NSDictionary+YYAdd.m */, - 5F34701B6997BFB8393C6D4EAC90CC73 /* NSKeyedUnarchiver+YYAdd.h */, - 760BFCCB1C365206F35835D4028BAC3C /* NSKeyedUnarchiver+YYAdd.m */, - 913B067AF3DC46C1E34520C9808D414D /* NSNotificationCenter+YYAdd.h */, - E8451BC48B7FD940E2BC4D8E47E44668 /* NSNotificationCenter+YYAdd.m */, - 7D26F39CD7F4C4CADB3EB2810910D962 /* NSNumber+YYAdd.h */, - 652135307B51A24441A3CA94E9C1D047 /* NSNumber+YYAdd.m */, - 340D5C13BB9C695B9DA99E0ECDF548E4 /* NSObject+YYAdd.h */, - 51BC1121123237550E5B2B77C0371244 /* NSObject+YYAdd.m */, - 043D54CB26D71DFE0ABE7C668577A729 /* NSObject+YYAddForKVO.h */, - 1B983014BE906CBD7A984B45476F4FC8 /* NSObject+YYAddForKVO.m */, - 4B4C4C49B27AE50A19797A6B13F8D392 /* NSString+YYAdd.h */, - 84D3D1D7453390DDDBF69853A482E7F9 /* NSString+YYAdd.m */, - 31D03D99C57F9ACA9A16C6FC6AB13652 /* NSTimer+YYAdd.h */, - 5B39922C045AE8F53E205C956D5FF742 /* NSTimer+YYAdd.m */, - CA028D2D69AD590A9E195B0056E84645 /* UIApplication+YYAdd.h */, - 1EC213AA74CEF098ADBC9AF0E46C7E63 /* UIApplication+YYAdd.m */, - 618A2B516047117F6B2DE77209ED9C05 /* UIBarButtonItem+YYAdd.h */, - C318DF172DFDE33A381F24E52461F106 /* UIBarButtonItem+YYAdd.m */, - 22F58C07C8461290EF57F06B810A2D66 /* UIBezierPath+YYAdd.h */, - 8A7A6DBC0CC7A832BF95221C74CD021E /* UIBezierPath+YYAdd.m */, - 545E4F91069F670EDDED415198AE6299 /* UIColor+YYAdd.h */, - B39C83EB922B636956FE5F2D8F8A7DF4 /* UIColor+YYAdd.m */, - 7ECCFC6A17A1B204A0B32CA0F4F54EE4 /* UIControl+YYAdd.h */, - FF30BBC68DF89754D2DFDDEF5A7BD91A /* UIControl+YYAdd.m */, - 68D67C8CC4931410597FAA7E49944CA1 /* UIDevice+YYAdd.h */, - A261E9C17E72EC1BE633196C4C30381A /* UIDevice+YYAdd.m */, - 6759BC0F35925833D132DC61E26AAB36 /* UIFont+YYAdd.h */, - 9459AF8F3E5C9053E7A59E3EC4342B20 /* UIFont+YYAdd.m */, - ADCA5F3C6DC228BA53FA18FF82FE52CC /* UIGestureRecognizer+YYAdd.h */, - F96BFA65EF9ED8D327287F96623EC245 /* UIGestureRecognizer+YYAdd.m */, - 7CF9C7F6DBB7F2CEF6DDE1A85B040BE3 /* UIImage+YYAdd.h */, - 283BA9DC4F8B80C258BC6CD004061AE6 /* UIImage+YYAdd.m */, - C89E2504985E03ACD1D1EA8FF03A4C07 /* UIScreen+YYAdd.h */, - FB23B7FEBA3450A73D95BA1465A057B1 /* UIScreen+YYAdd.m */, - CBE5366F65ACD4F9F57294A8D07BBED3 /* UIScrollView+YYAdd.h */, - 5C6257AC871D5CC33F8C195BADA2E844 /* UIScrollView+YYAdd.m */, - 48B2AFC333E6122EEEF8FBCFD6E4DCC5 /* UITableView+YYAdd.h */, - A1C09BEC61EAAD16FE430967BD85B0BF /* UITableView+YYAdd.m */, - 44479834C43DD04BF6BB9017DEC9DA32 /* UITextField+YYAdd.h */, - F672B2747776908BD811039768BC3E30 /* UITextField+YYAdd.m */, - B8B1F72D4C37FC81350C23A26CBCE359 /* UIView+YYAdd.h */, - 8F94F25170156C8AF5B2D2AC234DFC9B /* UIView+YYAdd.m */, - 6B789392E75B492153D080BFEB776638 /* YYCategories.h */, - FF7439BD4FE89B1ED8FEF7DD1825760F /* YYCategoriesMacro.h */, - 48CADA1527BFF387596A012E48219AFE /* YYCGUtilities.h */, - 734FEDEB0E4869A922BA927A05973BF3 /* YYCGUtilities.m */, - 5B97AD292B62B592B3725248924D3604 /* no-arc */, - FE444F0079EDAC32BD7B3B418B72AD9B /* Support Files */, - ); - name = YYCategories; - path = YYCategories; - sourceTree = ""; - }; - 595E70172F8CFD60D1C197E484896FED /* ShortCut */ = { - isa = PBXGroup; - children = ( - 06759C0A3CE57C6E2D69515A279E89F8 /* LLShortCut.h */, - 9836D81589CC11610310D84CF2E8CDFD /* LLShortCutComponent.h */, - A39A8A54ACDD282E45350F5819AF26CA /* LLShortCutComponent.m */, - 1255F8A25737F25EEB06F9A77C767064 /* LLShortCutHelper.h */, - 49DC9E73EA5F77F47D92CFB1B3EC2608 /* LLShortCutHelper.m */, - 39412F2E342F45004F168645F67B7C47 /* LLShortCutModel.h */, - 195C3C289162E648A1D619A1B4B96E7A /* LLShortCutModel.m */, - EB6DBD77478BEB5BFF41852F6BE2894D /* LLShortCutViewController.h */, - 392909F55B62B6A86FBFEA9A024D2E61 /* LLShortCutViewController.m */, - 7971499FF2CB98199DA5DEF58AB6B7BE /* LLShortCutWindow.h */, - 78E1AF6CD965D6698401E49FAE61C114 /* LLShortCutWindow.m */, - 93CFF13DF818C81535CCE2B63111760A /* LLWindowManager+ShortCut.h */, - 94B0443327D5ED261D57CF897842D4C8 /* LLWindowManager+ShortCut.m */, - ); - name = ShortCut; - sourceTree = ""; - }; - 5988CB3B990CCC0D9372EAFEB660BCAA /* Base */ = { - isa = PBXGroup; - children = ( - FFEAFFC94537D193B0A5B072774D2B44 /* BRBaseView.h */, - 0B54934660FB579DAA1DD748C0F86E14 /* BRBaseView.m */, - ); - name = Base; - sourceTree = ""; - }; - 5992DE45111E29C98806D34577C34895 /* Core */ = { - isa = PBXGroup; - children = ( - 4BFBC22DC52C1A898920DEFF886A4646 /* LLAnimateView.h */, - C7C43E3F6DF662280080032954FEBA27 /* LLAnimateView.m */, - 6D9BB3ACB7E6A38051244484838348F7 /* LLBaseCollectionViewCell.h */, - 63E010833519B9ACF4F8B6D9DF28EC7A /* LLBaseCollectionViewCell.m */, - 32F7EA5134AD844D1AB8F3302D8F414A /* LLBaseComponentViewController.h */, - 0F43BA7F3728C69A42DF74325C6A9BA7 /* LLBaseComponentViewController.m */, - 341363FE03AAD9F1114A239526416C46 /* LLBaseModel.h */, - BA11557E5E51E567D930384B83024C1C /* LLBaseModel.m */, - A8EC5759A3D64D6E4359B45A449795F0 /* LLBaseTableViewCell.h */, - 4D27C90763A7DD8B508AC6D9E47885A2 /* LLBaseTableViewCell.m */, - 2C3B4D25E3B3EF56CE8D50A026C45575 /* LLBaseTableViewController.h */, - 7946A888A59E2EC0E6E447B36C714F56 /* LLBaseTableViewController.m */, - 577EA99AF892FC80FDFB73795AE74976 /* LLBaseView.h */, - 66C14A33E8167660438C7F28D3771F24 /* LLBaseView.m */, - 58DFADEA0C94467F4B75AC9F1FCCDD11 /* LLBaseViewController.h */, - 11AF117707A1AA185C68872653884BE0 /* LLBaseViewController.m */, - EECE53281BBB3B762D5E3019C8E1B910 /* LLBaseWindow.h */, - 3474A9A3EA75EA3C4C4A50231107106B /* LLBaseWindow.m */, - 0F2182553CE4575B6E4E7C792397A033 /* LLButton.h */, - 660BEEBB30C16E0400F8953714753B17 /* LLButton.m */, - FBC2384014AEE26EAFB9C600A8015122 /* LLComponent.h */, - 48EDE83A052BE4897E236230697A1CCE /* LLComponent.m */, - 155F35071198D863D3CAAB027300D532 /* LLComponentDelegate.h */, - B2D59463662000A09AB6F5FD2CAAAE95 /* LLComponentNavigationController.h */, - 6E596E4FB7B7C6AC6D239E6E687C6A07 /* LLComponentNavigationController.m */, - F55B36FB4DC1F24B10A717017D0834CA /* LLComponentWindow.h */, - 1BB42E948C2F7E7473873E19D52BFA99 /* LLComponentWindow.m */, - 031FB2CB616D36387E7EDFC0FADE9F95 /* LLConfig.h */, - 549F1C5969139F497518BAF11C48F351 /* LLConfig.m */, - A202F514979CFFF9B4E8AB0B372DA181 /* LLConfigHelper.h */, - 09A9780B2906EB9EE99CC6AD7A35AA7E /* LLConfigHelper.m */, - E4448B6915B179BFEAEF6245B3BE722F /* LLConst.h */, - 79ABEC3E0AD0F789BBA2E91BEC477792 /* LLConst.m */, - F92DB7B7025A88791DC528CB73220FF0 /* LLDebug.h */, - 6838D5A055DD9D599B8461FBFA6043F4 /* LLDebugTool.h */, - 06BC694EA42D7895C2D4FAB95B5FA442 /* LLDebugTool.m */, - 8D765DB25B9D7DBCE9FC93E5DDC1A929 /* LLDebugToolMacros.h */, - DDC88FEBB8727A3A776F89B0D986163D /* LLDetailTitleCell.h */, - 1D2953BEEA9E7DD25F9FEE070C93EE01 /* LLDetailTitleCell.m */, - 8D63218945CEF3121D4AE8FCC7623D69 /* LLDetailTitleCellView.h */, - E6823DB47E243B6C276E36DA486D9CB6 /* LLDetailTitleCellView.m */, - 62E39E077C301AED321EDEA4D9FA33C9 /* LLDetailTitleSelectorCell.h */, - 19A0587CA47990B3165DCD372D3C9787 /* LLDetailTitleSelectorCell.m */, - 02E25CDD4D2DE5A248B9E87C4DF24192 /* LLDetailTitleSelectorCellView.h */, - 1D8BECC77DA0256CDB6F464348B52C83 /* LLDetailTitleSelectorCellView.m */, - 4AC370B71EE218C059D5B370F1189368 /* LLEditTableViewController.h */, - FE24BBE6690040438CF62BEB8DA4276B /* LLEditTableViewController.m */, - FA34ED960A10DBE441DAC79960183360 /* LLEntryBallView.h */, - 01B91B70699133A8C8CDE58C591B740C /* LLEntryBallView.m */, - DE8DC774EDAC9D94143D31BC9789B9A9 /* LLEntryBigTitleView.h */, - 3EC6AEFDC235E429CBB65ADDA22008C2 /* LLEntryBigTitleView.m */, - 8914FC0B67E512714BF00F1B30A11D84 /* LLEntryStyleModel.h */, - C858289408529E87B895C6F10F0ABE4D /* LLEntryStyleModel.m */, - 31855EAA2CF70B656440AFB8D4A289A4 /* LLEntryTitleView.h */, - D2CFE4A739CC1184021F95EB6AABFC46 /* LLEntryTitleView.m */, - 1425FFD7F8DDFD8D5C5F628E0CB20932 /* LLEntryView.h */, - A52CCAB689ADC905DACC0724B977C78B /* LLEntryView.m */, - 0D6D33B9A6C0316F839B7702D98CB1E4 /* LLEntryViewController.h */, - 62744747DD9D3BCB210D69ECCF3CF405 /* LLEntryViewController.m */, - 3FC284B7F615BD01D66AA71855552B9C /* LLEntryWindow.h */, - 2F070F6A9F41599A531F9A7FC3109961 /* LLEntryWindow.m */, - 342958B2FE3F28E830204FDF3E1244F1 /* LLFactory.h */, - 0ED5824C21A523C789B1396AED91104B /* LLFactory.m */, - 7E428D3DD36D1F0B655E0FE9239DCC59 /* LLFilterDatePickerView.h */, - 8BE32E652E896D8069C45912609E8D41 /* LLFilterDatePickerView.m */, - D999A68DC846BFF3DFCC443023FD3A3B /* LLFilterDateView.h */, - F5C1AF703E379B65B318680A37DC3130 /* LLFilterDateView.m */, - B72AC929631FC454D1821CE0FA547C98 /* LLFilterEventView.h */, - 3828C61E6877E0C2459AE9FB73980AB9 /* LLFilterEventView.m */, - A62F23D66B98220D5EE5A8B00732CE04 /* LLFilterFilePickerView.h */, - AD7C17AE50A9F0D01678978E43E3468B /* LLFilterFilePickerView.m */, - A7E4A02481BBD00FF58497A5B71A70AE /* LLFilterLabelCell.h */, - 05F1BFAB800B23714B38CBABF73935E4 /* LLFilterLabelCell.m */, - EF9533E814FCEB3B5AA9A96BEFB6E65C /* LLFilterLabelModel.h */, - 120A2C7BF3E33F70525F3CD84CD45539 /* LLFilterLabelModel.m */, - 23299C366F15C247D63EF849DF61EDC9 /* LLFilterOtherView.h */, - F0A51593FDDFCC3278387F39D83E39FB /* LLFilterOtherView.m */, - 1ABB117959382F8EF646811ABA4EE0E6 /* LLFilterTextFieldCell.h */, - A42838A9BEDA6FBBBB4626600DE52FCC /* LLFilterTextFieldCell.m */, - 4330020F4C521947AF26520C3C36D5E3 /* LLFilterTextFieldModel.h */, - 3E4B236E0E1156C523241EA7587DF41C /* LLFilterTextFieldModel.m */, - 78EA929E169916A9F9E7AD094C630211 /* LLFilterView.h */, - 32CF5DC6D8E6BCE1CCBB7201E95E428F /* LLFilterView.m */, - 4B37FE7622671AF38E9104F5234E5935 /* LLFormatterTool.h */, - AC6E5307DBC128E998625E240CBB280D /* LLFormatterTool.m */, - F7A3659F20415C8438246E3A6D607A15 /* LLFunctionComponent.h */, - 09D98466FD061EDA558818DB4610EBAF /* LLFunctionComponent.m */, - 97924E2E0C817A877F7DCB3CCF46893F /* LLFunctionItemContainerView.h */, - 6421C69D98A29F845ECC9CE3160D7FF2 /* LLFunctionItemContainerView.m */, - 7C0C3946F0D9BB69D717E357ADB74546 /* LLFunctionItemModel.h */, - 74DA460964822320DEEE945F42439081 /* LLFunctionItemModel.m */, - 652D8706564F0B0C4C2E1480B6FBAEA7 /* LLFunctionItemView.h */, - DE63E002EBA8D9354A3BB30981267080 /* LLFunctionItemView.m */, - C2E9BB13621732B9FC1435AA09D12A46 /* LLFunctionViewController.h */, - D3D2C75FD094644A4AE4943D04145088 /* LLFunctionViewController.m */, - 268B852E71965B968C3A86296B48A595 /* LLFunctionWindow.h */, - 84395610D9405F0B2AAE3A3ADAAF3335 /* LLFunctionWindow.m */, - 37F667D0DBFE410E28D2779499C4AD43 /* LLImageNameConfig.h */, - FB9D947C48D89B3FAF593D45CC2BF48B /* LLInfoView.h */, - 7F6E7A6C504F85941CEC9D4BB2424FF5 /* LLInfoView.m */, - 8BC4027DC6000B80FC4E4D1B93B66506 /* LLInternalMacros.h */, - AB5352DBC178D6FB014D44D10371147C /* LLJsonTool.h */, - DFB59CF852C889E6D49871A7FB1EF503 /* LLJsonTool.m */, - 89786CFB0B3C5AF09F0063427794DCFF /* LLLeftTitleCell.h */, - AEA5781AF75CFC8EEA535BE68D16170A /* LLLeftTitleCell.m */, - 0468BB8CCDC10CCC9646BC6EF2EF1518 /* LLLogDefine.h */, - 149D41AE89B83465881446CCD18DD1BF /* LLMoveView.h */, - B46B2FBE4DF39282224F9442B3644468 /* LLMoveView.m */, - A794908A7EF7D7D028D22800C0AE4E01 /* LLMoveWindow.h */, - C3DEC960D97F07408DDEB6D9D72E8BBB /* LLMoveWindow.m */, - 96BAADD5753B42CD493A7FC30C2FC41F /* LLNavigationController.h */, - 83D8B03CC07CD17385769B58E1ACAECB /* LLNavigationController.m */, - BF50D3782BE0325F478D768EDC1D4EA8 /* LLNetworkDefine.h */, - B0A97A6940406BA43363AEBE53FFCEE4 /* LLNoneCopyTextField.h */, - 2999DA7C81E6CE0A9E32C1EE9344AE7C /* LLNoneCopyTextField.m */, - 4A83A386748C5CE18D8AE941C894A549 /* LLPickerView.h */, - 99F02E391E9E59CF1A24D9420B5C972A /* LLPickerView.m */, - 4B98C44A64F510AC7D5B3D5257A703A6 /* LLProxy.h */, - 54ED7FE35481B30560338864AD8BC50E /* LLProxy.m */, - F1DF7D94F28198BA10BCBE2B495B2FDC /* LLRouter.h */, - 845C507976FCD3C451D99608DEF05255 /* LLRouter.m */, - 170B4737D8EF99A8FA05C7A23B23F883 /* LLRouter+AppInfo.h */, - 01A913356614613EE075A8809B6FE574 /* LLRouter+AppInfo.m */, - FDF637E456682345CA37569F97D5E821 /* LLRouter+Crash.h */, - 73706FB01E2DECC219126A9A3209D812 /* LLRouter+Crash.m */, - 9A3A444853E4BC17982A8D145003B844 /* LLRouter+Location.h */, - 925219E1D82F01F5443A91853768502D /* LLRouter+Location.m */, - 2C3BB5140944CD351541881EDFAA96DC /* LLRouter+Log.h */, - 12E886F4AC943C99824C0B41E8825278 /* LLRouter+Log.m */, - B6BE47762C9A79E0899482F4EFDDF8BE /* LLRouter+Network.h */, - DFC9ED7E927EA6F3DFB9B86E97538293 /* LLRouter+Network.m */, - E26315B3E2CEDECB18219BD485F891BF /* LLRouter+Screenshot.h */, - 7D3C30217CE5E60BD3244C7C67251778 /* LLRouter+Screenshot.m */, - F766644C58B096CE34504D0D218E0666 /* LLRouter+ShortCut.h */, - DC1A77982A27CDBDD3B94E53E179D922 /* LLRouter+ShortCut.m */, - FD63AC94A788423710A268939278CD39 /* LLSettingComponent.h */, - 5E6AFCEEFAF137883D32E47BD48C0DEA /* LLSettingComponent.m */, - 628A5A8364FBAFBE40D9106B3347B7B9 /* LLSettingManager.h */, - BEEC7394569DAAD54F66E20CF9CBACFD /* LLSettingManager.m */, - C936A1721F6CF8FA0A28202704F0AFFB /* LLSettingViewController.h */, - 90BC90004236BCE3C7B89F50E2A7982D /* LLSettingViewController.m */, - F5310451521A581CD74E4B3F0E27D2F7 /* LLSettingWindow.h */, - 468E33438D7E12E032EC205710C51A62 /* LLSettingWindow.m */, - 1D934EAAAD9213F619EBB361ECB5D97B /* LLStorageModel.h */, - 7D196C3B31C756FB0E740374A64D08E4 /* LLStorageModel.m */, - 9EC0A88C1DAF1CB7ABD533D9188BCF4E /* LLSubTitleTableViewCell.h */, - 3DA9F704F86FBFD91151BF2E751B6619 /* LLSubTitleTableViewCell.m */, - A43532F44BCC462AD8BFFA06345EBF96 /* LLTableViewSelectableDelegate.h */, - C2B4786D06C98C7F54D8623D193E883C /* LLTableViewSelectableModel.h */, - 867F9B9CDD2215F8752E6B10A9C0834F /* LLTableViewSelectableModel.m */, - E8952280EC5E897F2BAC8CB258E55431 /* LLThemeColor.h */, - A5428420D1649D6B7387154BC64BD61F /* LLThemeColor.m */, - 108CC78E90CB06A73DC046405D12968F /* LLThemeManager.h */, - 5E697AF06DAEB05FDA140390182DE628 /* LLThemeManager.m */, - CE0E272099D446C2FD6837C47119FDC5 /* LLTitleCell.h */, - 5DC324923EDC21A26D4B568AAC873688 /* LLTitleCell.m */, - 6C970AEE6236BCF58330D036D69156D5 /* LLTitleCellCategoryModel.h */, - 01908B706040D18914CEFEF241F629B5 /* LLTitleCellCategoryModel.m */, - 367AD13E2B8BEEC1AF33DB1BE33DC7C4 /* LLTitleCellModel.h */, - 81AFFAB123228CF5B5F7A405ED8A65F3 /* LLTitleCellModel.m */, - 63EEDE214D2801C7AF04DF7DDF730311 /* LLTitleCellView.h */, - F819E968F4ACA14B3567C60C45EC87DB /* LLTitleCellView.m */, - 236E454306F606C3F011D8CD029CC748 /* LLTitleHeaderView.h */, - 65678AFC51F00D296A959D345B13E278 /* LLTitleHeaderView.m */, - 022EE2189C7116021E81F0DA9B50D965 /* LLTitleSliderCell.h */, - 0028E9A546B55600287EFCB239F91C8A /* LLTitleSliderCell.m */, - BFF7E296BB19087FEE8CF9E7BE196285 /* LLTitleSwitchCell.h */, - 5F5F511E4E026BBDDB111AF16C4EB126 /* LLTitleSwitchCell.m */, - BFA5BEDAEA2B4B04402026A47EA1FF06 /* LLTitleSwitchCellView.h */, - 7A597F55E869CB15D42DA6FE4F4A857F /* LLTitleSwitchCellView.m */, - 526A2B0C3FC3B187FF770704F25E1445 /* LLTitleViewController.h */, - BC3C5636EC722E4AC6FD8283868C22CE /* LLTitleViewController.m */, - 5F4D8633E56A1ABE21BAE5B39A54DDB1 /* LLToastUtils.h */, - F747EE137563FC39B2250916416D7F2D /* LLToastUtils.m */, - D2D29C50C80059906846A05DDE838167 /* LLTool.h */, - 102DA00FD2F50042CE3DF1FBA0E891A6 /* LLTool.m */, - 70802533FD1E275AA7358F18A6459030 /* LLUITableViewLongPressGestureRecognizerDelegate.h */, - CE6B5A4678C0703F54C076CE855DED1E /* LLWindowManager.h */, - 2BE3FE48856F4FDD6EE8892D688B8176 /* LLWindowManager.m */, - FBA24CE00E2B054DFD47F92879471271 /* NSArray+LL_Utils.h */, - 0F32CA563BD4DD97B89E971AB5851DCF /* NSArray+LL_Utils.m */, - 5E85D466DAF6130084249DD59520D273 /* NSDictionary+LL_Utils.h */, - 806CCE2940F0FE5D05D6B4AFD51D2A6D /* NSDictionary+LL_Utils.m */, - 9BF1B77FD6A05F3D8E66686BAC0A9BEF /* NSObject+LL_Runtime.h */, - A19178061F1FBDC75171A65E0BDC5651 /* NSObject+LL_Runtime.m */, - 93B07EE1D0E0B6718EEFFE39BB11D26D /* NSObject+LL_Utils.h */, - 69DFE9503A04CABD5E4B38C11E84CB16 /* NSObject+LL_Utils.m */, - 769888229E12F2BBE7BA0A489F5B4DFC /* NSString+LL_Utils.h */, - E7795C18E237EAC5EA711BD505B0C00C /* NSString+LL_Utils.m */, - 6056B1EC9CE80CE2CAD3EB61737E0840 /* NSUserDefaults+LL_Utils.h */, - 3430192F21CBDC1205AEAA154B5BAD74 /* NSUserDefaults+LL_Utils.m */, - 362AAF63ACF4F5D9F2017197144BB0B5 /* UIButton+LL_Utils.h */, - 8622A2A4D3CB35246611FF5345E8E9A0 /* UIButton+LL_Utils.m */, - 785EEFEFE74C9A3EF2EA06CA73326B2A /* UIColor+LL_Utils.h */, - 80A2AD92A5B51B36F6D54DD52742DDD3 /* UIColor+LL_Utils.m */, - 67DBD6F82CD4F6399E94E7F5997928D7 /* UIImage+LL_Utils.h */, - FFB5B5D161A1A751B7ED1F6CAA916399 /* UIImage+LL_Utils.m */, - 2BDC0728BC41914BE523A9028147B0D8 /* UIResponder+LL_Utils.h */, - 64CC4AFD8CBBA261D3C5B70AC79D079E /* UIResponder+LL_Utils.m */, - F8291218D30FA82D71ED875822020EA3 /* UIView+LL_Utils.h */, - F074D164137E6D27FB78D7B045BE04D5 /* UIView+LL_Utils.m */, - BFFA4BBB27140286D2B5B54FC2058DE7 /* UIViewController+LL_Utils.h */, - D8DD7EB318DFF0B19FC176048834C534 /* UIViewController+LL_Utils.m */, - 9FF785B24C04D1820F062A5C2D2C513D /* UIWindow+LL_Utils.h */, - BD8D64FCE0985D5A7DCB94E0A3C17B1F /* UIWindow+LL_Utils.m */, - 587E2A42906E2397C05B7460BEA1CA9F /* Resources */, + 03AF1AA709B34727F21BF6A59F85A81D /* SVGA.h */, + 4783575EFDFA7AF19D0C4E7F85CFD8AF /* SVGA.m */, + 5784592997676878493A47DD67BB6541 /* SVGAAudioEntity.h */, + 3EFB5D80BCEF79FD344A2A41703512CD /* SVGAAudioEntity.m */, + 9022B1F8CA7AA17EFA70ED28FB02E862 /* SVGAAudioLayer.h */, + EEE5459E155526DC93D8227F979698F9 /* SVGAAudioLayer.m */, + 1DC79BC833AE05646E3EE85C4E5C88A5 /* SVGABezierPath.h */, + 38A9F0F0BAE1325195D9E0BA7F6D3EA6 /* SVGABezierPath.m */, + 65560FBD00985B81E1244034EFF5D028 /* SVGABitmapLayer.h */, + E0EEE8F740E7D2005A96B4E8DD699E4D /* SVGABitmapLayer.m */, + 00361D09259A98437F9FB0940187B976 /* SVGAContentLayer.h */, + 03D9206219D47CEEE6D52B1D089F4AAC /* SVGAContentLayer.m */, + 5161C70D80D0CD4FF9A2FE85CCC3D4A8 /* SVGAExporter.h */, + 56F2804A0614B269D058BD5820E56D47 /* SVGAExporter.m */, + 1BC9E6647B45DB7C2F29655EE5CB5F55 /* SVGAImageView.h */, + EEBED63C0D1C6DC8A8016BDC8797240E /* SVGAImageView.m */, + DFE7ADED148E13C4B35972C63998B62D /* SVGAParser.h */, + DF4C538B7B59BA11F52CC24B3932313F /* SVGAParser.m */, + 1CEA4A82EF6A095428C4B800C30E39E9 /* SVGAPlayer.h */, + FA3790ED1C353D98F38FE8635D90B690 /* SVGAPlayer.m */, + B2B53396E81143B3CF52682ECBF19B9F /* SVGAVectorLayer.h */, + 5708E07AB2840A76853C9AE6DD55E305 /* SVGAVectorLayer.m */, + 4A3F46F7B7B6B8C5DB64021DEC0B6C77 /* SVGAVideoEntity.h */, + 017BAAACDD053594300C54CF77519A48 /* SVGAVideoEntity.m */, + B6294F5B706E4071476626A139BF4F4C /* SVGAVideoSpriteEntity.h */, + C381CA671602E00BE9C08D39A33983CA /* SVGAVideoSpriteEntity.m */, + F7D90F07BFA68E516E547E373F65E4B7 /* SVGAVideoSpriteFrameEntity.h */, + 2B67F16A8B9E5318F935440886955A70 /* SVGAVideoSpriteFrameEntity.m */, ); name = Core; sourceTree = ""; }; - 5B0B037A797B179913AEE674E5D5B449 /* Support Files */ = { + 5BD724ECD44B12E992B2BCD42EADFC79 /* Resources */ = { isa = PBXGroup; children = ( - BEA7471268931C3C4DE9E5DBEE081B46 /* ResourceBundle-SDWebImage-SDWebImage-Info.plist */, - 21E16ABE190784FF95B859CA8F1ABEB6 /* SDWebImage.modulemap */, - B3AF33AAF8CAC88D6F3278A2696EE6AA /* SDWebImage-dummy.m */, - 470974CBF212AA33890B313DA7B7DEE3 /* SDWebImage-Info.plist */, - DC8CFA8071A72285080526D82800C3E0 /* SDWebImage-prefix.pch */, - 60AAA5F448F4A6BBFB5BEFFA5F737DDE /* SDWebImage-umbrella.h */, - FFEF18EDBCF6E79CDD6B64AFFAA12AB1 /* SDWebImage.debug.xcconfig */, - 67AB58A2792880BE86602F974D60E7CE /* SDWebImage.release.xcconfig */, + 80DA8DF4560D22DCB297C1D76E14A1B1 /* LLDebugTool.bundle */, ); - name = "Support Files"; - path = "../Target Support Files/SDWebImage"; + name = Resources; sourceTree = ""; }; - 5B97AD292B62B592B3725248924D3604 /* no-arc */ = { + 5CF7119C51F3766487D61532B33BD722 /* Security */ = { isa = PBXGroup; children = ( - 7A7049611F4F5458FA0C6A6B2566E802 /* NSObject+YYAddForARC.h */, - 4D3B32E71A69DB1CC3A8D3B0D7539B94 /* NSObject+YYAddForARC.m */, - 9E02B257586EA1A9F278235262D83AB3 /* NSThread+YYAdd.h */, - 30D14ADF5196237789B7EA9D2C1B9519 /* NSThread+YYAdd.m */, + 6B6C279B3765170E1DD3AD35E11142DF /* AFSecurityPolicy.h */, + 90D7FF3042800797EA73C0A0442C6956 /* AFSecurityPolicy.m */, ); - name = "no-arc"; - sourceTree = ""; - }; - 5BBB85D86ACBEDB9CC41E3C5585317DB /* YYText */ = { - isa = PBXGroup; - children = ( - 1485D3702A46F151C19F66E9CC28F283 /* NSAttributedString+YYText.h */, - FBF6FEE2C0B6DF3970579856F6DD9F1E /* NSAttributedString+YYText.m */, - 62D34159820E86AA003CEC486E175B6A /* NSParagraphStyle+YYText.h */, - 93ED4168CB181125A6B72D391E025A4E /* NSParagraphStyle+YYText.m */, - 19F3149D5D563AEB54551B9A84B47865 /* UIPasteboard+YYText.h */, - 9671234B95976CC18EFB70FA2EA4B915 /* UIPasteboard+YYText.m */, - 7EF4173009E165F51CE02CA8303F8D2A /* UIView+YYText.h */, - 2DEFB767E19488518B5EBA2545010C59 /* UIView+YYText.m */, - 3DCBC00766D06F1B7F4F5ECCC2D19171 /* YYLabel.h */, - 8747BCAED6A317AE8A6FF8F1BDF2AD28 /* YYLabel.m */, - 3990C5F087BEDFEABAE5941E3A558AF1 /* YYText.h */, - C390868BE63CCE0630FC7DA5613A5713 /* YYTextArchiver.h */, - EA2D1C583B28A8391498037B6ED2FCDD /* YYTextArchiver.m */, - E7E4F788297C182FDA37350932B99BD4 /* YYTextAsyncLayer.h */, - D2B4F1EC84F075A17D49A81F1B6EBFB4 /* YYTextAsyncLayer.m */, - 15F6E5CCF1C71D3157A8D4CD7984C3D3 /* YYTextAttribute.h */, - FE83CF94555463AA2432B3405B188C32 /* YYTextAttribute.m */, - 9DD029ACDF013F34226A2C42AC5E85E0 /* YYTextContainerView.h */, - 050E411EAB2DAF29965440F9ADDAB156 /* YYTextContainerView.m */, - 295E7137A986BF6F0A5A70F2D8506361 /* YYTextDebugOption.h */, - 17A2EE449522DCED16FF69CB080F8B07 /* YYTextDebugOption.m */, - ACF3427E0422A2A0D3C12F8950AE1D33 /* YYTextEffectWindow.h */, - A85DF892F37C25E8A82270F153585F56 /* YYTextEffectWindow.m */, - D1D010B8277004C4E2A48274EB8D5712 /* YYTextInput.h */, - B280381C79B20523E196B1B91882F4EB /* YYTextInput.m */, - B0B87C8EB4F405E680169D002E00B33D /* YYTextKeyboardManager.h */, - 5781BD27F95D5ABF53B28CBB3FCA27BE /* YYTextKeyboardManager.m */, - 0185957643DE4CF0AC4A947BBDB153EC /* YYTextLayout.h */, - 9DDCA8479C21E6C665854AB7A6C26862 /* YYTextLayout.m */, - AD9174A6EE6273047D6FA0E4DA5E4CB1 /* YYTextLine.h */, - F0C9267BF045030E45DFA2A950EE55AC /* YYTextLine.m */, - F633EFEF8E6221E6C3C59F0B44C7B1EC /* YYTextMagnifier.h */, - 302EADA9FF7DEF58D73D45E418445F4F /* YYTextMagnifier.m */, - 12101AFD2403BB3035912A7EEBF3B089 /* YYTextParser.h */, - FA195CEE3BE39FB7579070EAA2945A50 /* YYTextParser.m */, - F861B1537BCE56A6BA93D8DE8FC5BC59 /* YYTextRubyAnnotation.h */, - CD243322E3D8FE8CEF5CFAC8FE226440 /* YYTextRubyAnnotation.m */, - 8CDA437F713F4845D3DE652540BB0EB9 /* YYTextRunDelegate.h */, - C5F36E50FA1F735D95252DCC8DC94105 /* YYTextRunDelegate.m */, - 23FB420840016DC5AFA1637003067FDD /* YYTextSelectionView.h */, - B5CAC29105D74AAA2CBE6ACF725518DD /* YYTextSelectionView.m */, - F6B7F4714982FE5F0A151F5539A5BA8C /* YYTextTransaction.h */, - 3F45C422560606353F0A1EE06FFBB6AB /* YYTextTransaction.m */, - CB57056147B572AA16AC8F3A6F8F3DE7 /* YYTextUtilities.h */, - 64B314B57DC5CC28F866C71DA0A90BDC /* YYTextUtilities.m */, - 8419DDBABCDD19DBDB37ECBD7AC77EAC /* YYTextView.h */, - F9CEA56BA9A2CA9ACE092EF99CFCB1C0 /* YYTextView.m */, - 2D66C65B691B8E5F649DD5EAF7C899A9 /* YYTextWeakProxy.h */, - E0B49643CBB49E9D505B5F8F1FD53A92 /* YYTextWeakProxy.m */, - 669C1ECC21BE51F192B4281419C6FC59 /* Support Files */, - ); - name = YYText; - path = YYText; - sourceTree = ""; - }; - 5D4C8943ECEE78A0B438CDAA6D66A330 /* Frameworks */ = { - isa = PBXGroup; - children = ( - E0993235E9E6A40B87182CFAF337EA75 /* Bugly.framework */, - ); - name = Frameworks; - sourceTree = ""; - }; - 5E585D446BF6A5005F8474777F2F630F /* Frameworks */ = { - isa = PBXGroup; - children = ( - A365826A5D90A98FA92B2F6DBB75E7B6 /* ImSDK_Plus.xcframework */, - ); - name = Frameworks; + name = Security; sourceTree = ""; }; 5EA2F8705CAFBB97C84274613255132E /* Base */ = { @@ -9369,39 +9698,111 @@ path = Base; sourceTree = ""; }; - 5F57C6B3B074DF8EFE10B880CD148829 /* AIAEC */ = { + 5F502D7D3954F18F8E820DF584CEE465 /* Support Files */ = { isa = PBXGroup; children = ( - 3F875ED4D3F3F0A4EF83F0EDEF9BC2AF /* Frameworks */, + F12200647DF4175E456B21DAFBCDDBF8 /* ResourceBundle-TXIMSDK_Plus_iOS_XCFramework_Privacy-TXIMSDK_Plus_iOS_XCFramework-Info.plist */, + 91625967ECE48268D0B6FF9C59DF874A /* TXIMSDK_Plus_iOS_XCFramework-xcframeworks.sh */, + D2801E753F234D986E6D64E5D447003D /* TXIMSDK_Plus_iOS_XCFramework.debug.xcconfig */, + 82EDBFCB86E34D5A2FCACD707617CD6C /* TXIMSDK_Plus_iOS_XCFramework.release.xcconfig */, ); - name = AIAEC; + name = "Support Files"; + path = "../Target Support Files/TXIMSDK_Plus_iOS_XCFramework"; sourceTree = ""; }; - 62AD5D3FD9BB929EA35EC6FEB79C4F44 /* FaceDetection */ = { + 60B6010866D140D03545D168FCB18734 /* BRPickerView */ = { isa = PBXGroup; children = ( - 6CB2892AB48DB5DA549BC556CEBA8E76 /* Frameworks */, + 29973248D7074A8F3E4849D416197401 /* BRPickerView.h */, + F7B610366F57989F41855F8D07E11965 /* Core */, + 83190E311F9275CB782C00E9DE573BB8 /* DatePicker */, + A756FC841831C7454F2EF4BB8DD0B797 /* Deprecated */, + 9E61CE21E47D07A21638EE8F48A60983 /* Resources */, + 2CC2D5608A780B8D180ED4E3C1B8ACB3 /* Support Files */, + 45A64240F9EA559D85BE0707C85B8420 /* TextPicker */, ); - name = FaceDetection; + name = BRPickerView; + path = BRPickerView; sourceTree = ""; }; - 63A4CE8FCA07E894DD8D1AA0AC705EFD /* YBImageBrowser */ = { + 61E6DD927262B54F7D612E6486A090DB /* Min */ = { isa = PBXGroup; children = ( - BB14CBFAA411BDFA14C3C31938B8980E /* Core */, - 90FBF99C875C00354CE4C26DA4FE92F1 /* Support Files */, - D7F9B6C314436CB3FD1D4A43E54520DA /* Video */, + EFAC5EB3D12F2A178A8DE0F6B3B4A459 /* GCDTimer.h */, + 8314AB8D3F9A10F8AC6C7C5C432CDD81 /* GCDTimer.m */, + 839AC695CE0536D9762E4327F1EAE6BA /* MQTTCFSocketDecoder.h */, + FA706F595B8ECCEB0E77FAEC1B217A7B /* MQTTCFSocketDecoder.m */, + CEDA2D880A862E9E8EA601DB0DD7E776 /* MQTTCFSocketEncoder.h */, + 418D6C32727990782230828C49D7AF0A /* MQTTCFSocketEncoder.m */, + 721BED0B5DAF5FDD64D7C82782189E0D /* MQTTCFSocketTransport.h */, + 2EF6FDC981A4DFD81282292B2893DB0A /* MQTTCFSocketTransport.m */, + A0D0E32105DD24D18513B8162EA18D47 /* MQTTClient.h */, + 5D60C8CF30CE6978A59CD19521DB6EB5 /* MQTTCoreDataPersistence.h */, + E4B6C5AB1961961DE5B3BA2E86D15FC0 /* MQTTCoreDataPersistence.m */, + 954A29B28B94DAB35DBB9DCA2DA8D1FB /* MQTTDecoder.h */, + FD150508BF6A78C9887FD0A7DE309309 /* MQTTDecoder.m */, + B7C16BEB4788EC54D17700770DCFF936 /* MQTTInMemoryPersistence.h */, + 3EF9852A5A98D3131B14E29BB416C491 /* MQTTInMemoryPersistence.m */, + 2E0988409A5182DDC8136E3CC4179BF5 /* MQTTLog.h */, + E65F76B8312CFB36A7276227EFA68E32 /* MQTTLog.m */, + EC198EB887024871535BD7E9B8865685 /* MQTTMessage.h */, + A0A728336F6246D24DED8C58925854E5 /* MQTTMessage.m */, + CE511EFACF0EA87C83306AB4C60769B5 /* MQTTPersistence.h */, + 4502D6D8B4E750A45DF10F54D71EF01F /* MQTTProperties.h */, + 06D345BB7E51A3ECD6665C4AB51741FC /* MQTTProperties.m */, + DE87CFB112405397BCD68F780C06DF6E /* MQTTSession.h */, + DC88F1CA2915BE4BCD3F2EE692E2BB84 /* MQTTSession.m */, + 8638D3BA370C6BB7994C82FE10994F39 /* MQTTSessionLegacy.h */, + B99AE0D7C723D7EB2F76A31B2A18E2A2 /* MQTTSessionLegacy.m */, + F45A4E627872ED9122F86308D2FE0D02 /* MQTTSessionSynchron.h */, + 5D16A59BD9CAE5F6315D5D8438950C3F /* MQTTSessionSynchron.m */, + 596B00E778A94AF409303B83B6142981 /* MQTTSSLSecurityPolicy.h */, + 3E4CE45B35D7D5B5FDBEE63DA76A5C2B /* MQTTSSLSecurityPolicy.m */, + 4E9D4F3C20EEEFACF0E26F2164A34B4A /* MQTTSSLSecurityPolicyDecoder.h */, + E89915ACAE5B113945B1B0C0820599A3 /* MQTTSSLSecurityPolicyDecoder.m */, + 6A31F9BDA55CB0F598C8747E5717A3D8 /* MQTTSSLSecurityPolicyEncoder.h */, + 36333F4F2E36DBF4FA871A8584CA3DF0 /* MQTTSSLSecurityPolicyEncoder.m */, + 3F39009C47540616A374AD859EAC041F /* MQTTSSLSecurityPolicyTransport.h */, + 243E21A815BF2730E755AAFC60796035 /* MQTTSSLSecurityPolicyTransport.m */, + B3640160F31D225FC53EE555B691915B /* MQTTStrict.h */, + BDE1AA2A36E096D689FCD716B4C4E034 /* MQTTStrict.m */, + 68138633BBF169547D6B1400361686DA /* MQTTTransport.h */, + EF7AA64092BF7E400C6F8FDF6A189D50 /* MQTTTransport.m */, ); - name = YBImageBrowser; - path = YBImageBrowser; + name = Min; sourceTree = ""; }; - 6409548D29E4B0543A3B9527CB4F3A8E /* Resources */ = { + 635960204AD52C1AE1C8B95813C1539D /* Support Files */ = { isa = PBXGroup; children = ( - 9F948D425063BD45CB4DC7BC39379CA0 /* PrivacyInfo.xcprivacy */, + 79316CFA51F57B480E78AFD155B565F0 /* YYCache.modulemap */, + 649AE684AF0BCEC9C9605216F274C8D8 /* YYCache-dummy.m */, + F058E186A9B1E7A156E129CA182B1BC4 /* YYCache-Info.plist */, + 1E6B984379824E27D781992D6782D448 /* YYCache-prefix.pch */, + 3A321FB4DB148B7F4B3C8519D7AAED1E /* YYCache-umbrella.h */, + BE6A723E1647D64586473167B3B8811F /* YYCache.debug.xcconfig */, + 67920ED57D0F6DF210C68AB499BFD9D5 /* YYCache.release.xcconfig */, ); - name = Resources; + name = "Support Files"; + path = "../Target Support Files/YYCache"; + sourceTree = ""; + }; + 637749E8BB6B2E2343E3451CFA12E293 /* Frameworks */ = { + isa = PBXGroup; + children = ( + A7B47A1079D4114C84B5C2BC41AA3E1A /* aosl.xcframework */, + ); + name = Frameworks; + sourceTree = ""; + }; + 63BEFFD16CA4CD952CC40293A542B016 /* SDWebImage */ = { + isa = PBXGroup; + children = ( + AD244E37F21C82AB791976DFC0B91C22 /* Core */, + 0CE85CFEB44E8EB82B34AA5ADD781C4D /* Support Files */, + ); + name = SDWebImage; + path = SDWebImage; sourceTree = ""; }; 645625FD8DC71DC09A8675B733A8F212 /* Support Files */ = { @@ -9451,14 +9852,6 @@ name = iOS; sourceTree = ""; }; - 6500BE6FFA4258786A70B34088742E93 /* Frameworks */ = { - isa = PBXGroup; - children = ( - A465D583CB77E8C6FC9F9C534E756EF9 /* TIMPush.xcframework */, - ); - name = Frameworks; - sourceTree = ""; - }; 65D6B179A67085D725865266C1E2706F /* Support Files */ = { isa = PBXGroup; children = ( @@ -9469,65 +9862,49 @@ path = "../Pods/Target Support Files/TencentCloudHuiyanSDKFace_framework"; sourceTree = ""; }; - 669C1ECC21BE51F192B4281419C6FC59 /* Support Files */ = { + 68289D3D28EA1041639E366ACC7FFB53 /* Frameworks */ = { isa = PBXGroup; children = ( - 5AB74FF76C681668732A016E3E39325B /* YYText.modulemap */, - 90D8F7730CBBCB11E49C17770F705019 /* YYText-dummy.m */, - C66B5B801EBBC3EBD036549C0716D072 /* YYText-Info.plist */, - 489A29959428F34BCE040C9A062E9157 /* YYText-prefix.pch */, - 34DCB86206FE5F8BFE8B5FB158C5DE18 /* YYText-umbrella.h */, - 87F007D7254F77303B8C3A176B722D97 /* YYText.debug.xcconfig */, - AFFF1B74E371CF5161810F6C59C355AD /* YYText.release.xcconfig */, - ); - name = "Support Files"; - path = "../Target Support Files/YYText"; - sourceTree = ""; - }; - 6C8B123AB6106EBF2271188F83DC9C13 /* Support Files */ = { - isa = PBXGroup; - children = ( - 1CFC5AEBAA715076772A3FC1E5E1485A /* AFNetworking.modulemap */, - 70C61452D67BD52A395A95ADBCE5BCF4 /* AFNetworking-dummy.m */, - 4665AD29BC148D93AD69A7C0D6541D5D /* AFNetworking-Info.plist */, - BA67255D1AA575A42E3214EBB2F08197 /* AFNetworking-prefix.pch */, - 83712669C7F8FCE94AB6932D04341B35 /* AFNetworking-umbrella.h */, - 52CDD0ECDD400E2BE3EDE37210B136B2 /* AFNetworking.debug.xcconfig */, - 36C65C27CD686409B0FA655E55D45F58 /* AFNetworking.release.xcconfig */, - ); - name = "Support Files"; - path = "../Target Support Files/AFNetworking"; - sourceTree = ""; - }; - 6CB09F49DE5291EFB6A55318FF8B94B1 /* Frameworks */ = { - isa = PBXGroup; - children = ( - 146CBB19E23DBCF3CBBB69CAF66C7675 /* AgoraContentInspectExtension.xcframework */, + 5E0C89D8B95AEE225AF9EA68327CA306 /* WechatOpenSDK-XCFramework.xcframework */, ); name = Frameworks; sourceTree = ""; }; - 6CB2892AB48DB5DA549BC556CEBA8E76 /* Frameworks */ = { + 6B2016670209793A08CFD21660BF6E7F /* Zip */ = { isa = PBXGroup; children = ( - 54C5F1194AC9D45301268CB4419A8C23 /* AgoraFaceDetectionExtension.xcframework */, + 72078061517BF16CE01E5F76AAA46233 /* crypt.h */, + 4258F21AB9C6E0D317E647FAAF476C5E /* ioapi.c */, + F431D2A564F4F18F222226A9471AB5EB /* ioapi.h */, + F0DF13AE6AA0FAE9BB59FDD5F4A6F9AF /* Minizip.h */, + C8825480DA40C3D9DA5C343E898215A6 /* QuickZip.swift */, + 0BBE3E24D7890459A0F0A8103974FD41 /* unzip.c */, + CCEF3A19E5C884D4C24EEEE3EE8E158C /* unzip.h */, + B9CE7D5CE139AF9EA1712245C57B9C42 /* zip.c */, + 46EB08EC04D8DDD8DE5C65820D7DE3F5 /* zip.h */, + 0B252BA0F7D2F638A817C6C63D3D0B0C /* Zip.h */, + 2C24B738D17AE5BC3EED9B271634668D /* Zip.swift */, + C4966ADEB527BE45F20A76208929346C /* ZipUtilities.swift */, + B44D8271522EA5AB29E307D3372F3D1C /* Support Files */, ); - name = Frameworks; + name = Zip; + path = Zip; sourceTree = ""; }; - 6CEBD8540A9B64245987BF061057A834 /* Core */ = { + 6DB13129042F8ACB89606A413CE4DC21 /* Resources */ = { isa = PBXGroup; children = ( - 7C05072F6E59B5FC0F919854426158BC /* BRPickerAlertView.h */, - C51F8AD762E49E1A111C44C545B2B4A2 /* BRPickerAlertView.m */, - 2ACECC93939E9485471A40122BECF5C1 /* BRPickerStyle.h */, - 3BEFF4173E0713075161D72CD9E5D921 /* BRPickerStyle.m */, - D9B02393EAEB33A54EB83C8396AACB94 /* BRPickerViewMacro.h */, - A8A2E239F463C92F51E8AB0BB7E52A47 /* NSBundle+BRPickerView.h */, - C9C3B191F37B7FB154E6A62279162378 /* NSBundle+BRPickerView.m */, - E4FAAF73B7EA2CF1C6F8849B515FE6D6 /* Resources */, + 16C764907155092CA362EE87202CB7AC /* BRPickerView.bundle */, ); - name = Core; + name = Resources; + sourceTree = ""; + }; + 6E245AF7B0D7811B9FA7FCBA0A309889 /* SpatialAudio */ = { + isa = PBXGroup; + children = ( + BE870F8C86321E7DBC927B5DE25F38F0 /* Frameworks */, + ); + name = SpatialAudio; sourceTree = ""; }; 6EBAFB3821EA8686C8D752A52C6731AD /* CommonModel */ = { @@ -9541,48 +9918,99 @@ path = CommonModel; sourceTree = ""; }; - 6F29A587A89C43D49E445068113D1228 /* Frameworks */ = { + 6EE990EDDC72C43269D1F60C2017B744 /* Resources */ = { isa = PBXGroup; children = ( - 35156887AF7BC08E0E7AE0BEEA046E3B /* AgoraSpatialAudioExtension.xcframework */, - ); - name = Frameworks; - sourceTree = ""; - }; - 70B216331ADDCCEB343EB02548420324 /* VideoAv1CodecEnc */ = { - isa = PBXGroup; - children = ( - BE7C7049506A09B7CC9E6865F7B85AEC /* Frameworks */, - ); - name = VideoAv1CodecEnc; - sourceTree = ""; - }; - 7128B6273FE9775063361BEBAE906A91 /* Resources */ = { - isa = PBXGroup; - children = ( - 6385E47C78E7A354F67C3140F9399359 /* PrivacyInfo.xcprivacy */, + 41A52D5D394DB0AC8B4F045B594ED41B /* PrivacyInfo.xcprivacy */, ); name = Resources; sourceTree = ""; }; - 7263F052233F866D3E9E138B293D9D8C /* WidgetBorder */ = { + 6F12FB8EDC1C7DEEC0488D664BBA07B8 /* Support Files */ = { isa = PBXGroup; children = ( - F1225E12CF790B08F1E102F995AD8080 /* LLWidgetBorder.h */, - A695D29421A8623ECA662FFD93DBE110 /* LLWidgetBorderComponent.h */, - 3CC8CD30E834C0DCF63FA6BA5782D962 /* LLWidgetBorderComponent.m */, - 5D6D46CFFA25461A23FA6F7C95B5D6E0 /* LLWidgetBorderHelper.h */, - 9CC9638F77E815D0E3B324F718450E25 /* LLWidgetBorderHelper.m */, - 59B5088B5AA490FBB6DD48CA79DCD5C4 /* LLWidgetBorderViewController.h */, - 9DF6396672E6660143CC1E27678A2E81 /* LLWidgetBorderViewController.m */, - 2941012AC32BDBEE3D77B37160DC4FBD /* LLWidgetBorderWindow.h */, - BF04538E6DF381D857343A142F9DCFA6 /* LLWidgetBorderWindow.m */, - 3F77304E3B0ED66758F7F561D432369E /* LLWindowManager+WidgetBorder.h */, - 40186D6864EFAF2EA4DF9E988AE52E98 /* LLWindowManager+WidgetBorder.m */, - 606BAB5DCA9C660E267EA1EEB3E53F24 /* UIView+LLWidgetBorder.h */, - 8B49A684F6CEE7B4E41A6721D70990AA /* UIView+LLWidgetBorder.m */, + 8F25BEEE81DF1D1A655C0A750C81F444 /* AgoraLyricsScore.modulemap */, + B45199EF5621FF4E7B7DEAE995A0EE45 /* AgoraLyricsScore-dummy.m */, + D000622E0B2B6A248BC966253E5F59F5 /* AgoraLyricsScore-Info.plist */, + 844E7C9F76F7288F0F53C5F070E3822F /* AgoraLyricsScore-prefix.pch */, + 5372E747772584C1D17DBA7819A6F865 /* AgoraLyricsScore-umbrella.h */, + C31B61ADA03ADABA7F4258EBE5C98C07 /* AgoraLyricsScore.debug.xcconfig */, + 09F10D3C43B69141D421137BE6F58F62 /* AgoraLyricsScore.release.xcconfig */, + 31028B60B9C19E0F02F617C1B0FED785 /* ResourceBundle-AgoraLyricsScoreBundle-AgoraLyricsScore-Info.plist */, ); - name = WidgetBorder; + name = "Support Files"; + path = "../Target Support Files/AgoraLyricsScore"; + sourceTree = ""; + }; + 6F293977D539FCDCDD55EE6DE922090B /* LLDebugTool */ = { + isa = PBXGroup; + children = ( + EA12CF9D57A81D45632DF83C91DCCC3D /* AppInfo */, + F312879DAA824D20B3304B73F7606068 /* Core */, + 4BB3616A5719EE76B90D8417597694C8 /* Crash */, + DA2212F11AE40408DC67A1C3D593217A /* Hierarchy */, + 093FC85AC6F5DD0C372CC7CD768D77FF /* Html */, + 485FBB49B83F72DD02309F3B5F456C8B /* Location */, + 9E07DE00AA45EFE58C7D962869D39DD6 /* Log */, + 3A850D3C588786E50079BFE87EB6A650 /* Magnifier */, + 44A1D96C352AEBA15F6101E8EC2E6599 /* Network */, + B9937B2D0C1ECB3B78433004A4A5501D /* Ruler */, + A1F3BE8069B5C7CEA1597AD609EEC3CD /* Sandbox */, + 7CA7A3AAE6C19C541C095E349FBE42AF /* Screenshot */, + CCAA7E84CD2E0B42568AFE0FD3D4D48E /* ShortCut */, + 7BE2AE21D83E448C8F40D10BF38F8F8A /* Storage */, + 0276C2ADE13319AA8E77CBB093AB26F9 /* Support Files */, + 3BFFE9A50823B4E7C96B287AB6190C21 /* WidgetBorder */, + ); + name = LLDebugTool; + path = LLDebugTool; + sourceTree = ""; + }; + 709D842465D438651D36B5AAF6FFE006 /* Support Files */ = { + isa = PBXGroup; + children = ( + 94ACA4048C88BA862C17F19AA560BD71 /* libwebp.modulemap */, + 6110DCF76C3074CB5C0F3BE724EDDF56 /* libwebp-dummy.m */, + E14AE7F500D618D391E1F40BD168D99F /* libwebp-Info.plist */, + 7CE15E49F9E3BE063CEB7A453BE51060 /* libwebp-prefix.pch */, + 8A2E54379802BDF73B1501EBF3CBE028 /* libwebp-umbrella.h */, + 01088A799B966110B896C4DBFCFAD1DA /* libwebp.debug.xcconfig */, + A5D179DB9964E71DC78558EB224BD05A /* libwebp.release.xcconfig */, + ); + name = "Support Files"; + path = "../Target Support Files/libwebp"; + sourceTree = ""; + }; + 7104778F93633B4B27BF3F0540543EB5 /* AddressPickerView */ = { + isa = PBXGroup; + children = ( + E5DD350699AF476F14E85542980DA167 /* BRAddressModel.h */, + 64892690D0CE2071D6D12296BE9C05A8 /* BRAddressModel.m */, + B8876136C9D6D7FB2DFDE81F966721BF /* BRAddressPickerView.h */, + A3D03B1399AC3BE7304423BFD9C56A30 /* BRAddressPickerView.m */, + 967A5998930663CA28BCEBD76F4FCB15 /* Resources */, + ); + name = AddressPickerView; + sourceTree = ""; + }; + 71DC8ED45B65DE88A0FA1CFCDE82B101 /* Video */ = { + isa = PBXGroup; + children = ( + D8D981282865C8320ECD683BF5879065 /* YBIBVideoActionBar.h */, + BE34E09E310FAD39B5FA5816A583C4B8 /* YBIBVideoActionBar.m */, + 9C5DA95C7B3A846577A39AA8E38A691A /* YBIBVideoCell.h */, + 03A96E726CD9E0A1DB0BCD921E67F763 /* YBIBVideoCell.m */, + B32EF8D1CB3CE568658DC5C2F1730286 /* YBIBVideoCell+Internal.h */, + 976641C70166B3DDE3CFAEFD61C325C7 /* YBIBVideoData.h */, + 2DA148DE1B8BA9807E9C034B5AD68C62 /* YBIBVideoData.m */, + 5F78210C3D90DFCC8312FC285147E50B /* YBIBVideoData+Internal.h */, + D47A22BD575A9B6FFE45026BF1DBB385 /* YBIBVideoTopBar.h */, + 564351900D0E66F5FCCD801223E2046D /* YBIBVideoTopBar.m */, + C3596BCDA45C25B2117C700F96091D75 /* YBIBVideoView.h */, + 380962502D82008B0DA186322FC1E653 /* YBIBVideoView.m */, + D5E45B12A9CDD10FCBA1F466CFAB1C49 /* Resources */, + ); + name = Video; sourceTree = ""; }; 727AE23C7F3DF1F1C8833476FB993C7C /* UI */ = { @@ -9619,61 +10047,20 @@ path = Input; sourceTree = ""; }; - 74197CA80886E1C04F96F3EDA391B3F4 /* Support Files */ = { + 745839B8B0C6DD40D54FF081D03A2D46 /* Resources */ = { isa = PBXGroup; children = ( - 24B7CE186129047A6456ED65079B6E90 /* MJRefresh.modulemap */, - DC6A7978A4E1E40BFC56F20B0AF9EAD4 /* MJRefresh-dummy.m */, - 01ECF9A68D5E9B699664C3436A2E46E8 /* MJRefresh-Info.plist */, - FEC2C002E11EC696DCC93CA9FD77476A /* MJRefresh-prefix.pch */, - 87441D298151CFC225E14084247F8C9B /* MJRefresh-umbrella.h */, - C30F1C9697667478B08748F74E2E61C6 /* MJRefresh.debug.xcconfig */, - 2F4308A38596D866AEC25B61D2C87543 /* MJRefresh.release.xcconfig */, - A569D8D56FD281F402E5E38A1B5CCED4 /* ResourceBundle-MJRefresh.Privacy-MJRefresh-Info.plist */, + A2E65E43EB3AC7EF8A3382697C2A0123 /* AlipaySDK.bundle */, ); - name = "Support Files"; - path = "../Target Support Files/MJRefresh"; + name = Resources; sourceTree = ""; }; - 741AB910A35543B3A6B3D784464033D9 /* Frameworks */ = { + 75C9426AEAA3D40D7E5E8B1EECE05C00 /* Resources */ = { isa = PBXGroup; children = ( - 71AB090DADAE0D86EE24D98E0ADCF3E4 /* AgoraVideoEncoderExtension.xcframework */, - 87CDE0E9BA52DC5154A4E65DD1A2A32E /* video_enc.xcframework */, + 8B8FB28A9D30ECA09F09C36506DA8E06 /* PrivacyInfo.xcprivacy */, ); - name = Frameworks; - sourceTree = ""; - }; - 74EE45048B627A4B910C6F4520CCA1A1 /* Frameworks */ = { - isa = PBXGroup; - children = ( - 4108B6E6AA41AC48D0C1A1D2348886D2 /* AgoraLipSyncExtension.xcframework */, - ); - name = Frameworks; - sourceTree = ""; - }; - 754F9E1968DF825F673CD0A0E3AE3204 /* Frameworks */ = { - isa = PBXGroup; - children = ( - 640D7FE7FEF3FA2A830F4C7F59B5545F /* AlipaySDK.xcframework */, - ); - name = Frameworks; - sourceTree = ""; - }; - 75720E754A48E6B6CE3B3C8238615988 /* Support Files */ = { - isa = PBXGroup; - children = ( - 465E738838E950321A408C78D73035CA /* FMDB.modulemap */, - 5DF2F527B07456732064F6F5B3C39379 /* FMDB-dummy.m */, - 280CC3F32E0DD82D6F321811491E9426 /* FMDB-Info.plist */, - 00492A2FD4F5B7DB65CEF9470468CE92 /* FMDB-prefix.pch */, - B726AD5EA5152EC7A81AFCAB38FB480B /* FMDB-umbrella.h */, - 8C473D3FC6BBA942718C67FBF8311A4E /* FMDB.debug.xcconfig */, - 5584457FB4113FFF04D74B2039E39415 /* FMDB.release.xcconfig */, - 3465D28232CE75C9385EA661D43FD69E /* ResourceBundle-FMDB_Privacy-FMDB-Info.plist */, - ); - name = "Support Files"; - path = "../Target Support Files/FMDB"; + name = Resources; sourceTree = ""; }; 76688024C7D48969A6065F7B64796537 /* Cell */ = { @@ -9688,36 +10075,18 @@ path = Cell; sourceTree = ""; }; - 774021B4032DBE07E6F10859DB0C8E10 /* Location */ = { + 77814B16737236287DD206044619FE6A /* YYModel */ = { isa = PBXGroup; children = ( - 058D8991FF3DEDE1A320BA9D713F6967 /* CLLocation+LL_Location.h */, - 40CDCF0A855C2AE7E071E7C592346090 /* CLLocation+LL_Location.m */, - FB53EB1DC75D99D36D4FF55B1F09EB35 /* CLLocationManager+LL_Location.h */, - 03697A5DCCE59E99B6D859C322B2BD81 /* CLLocationManager+LL_Location.m */, - 59970FF7CA18D915AFD14313201DADEA /* LLAnnotation.h */, - A55A010C06799C1DE66455D5F2525664 /* LLAnnotation.m */, - 57FDC36AD61B6031CB658B58A28DADBA /* LLLocation.h */, - D3CEC09ABA681A31757D676664810F09 /* LLLocationComponent.h */, - 61D7F70433229A22F3A30D1AD14CA472 /* LLLocationComponent.m */, - 2C14E11BA635536BCBC8B07EC4BA06E1 /* LLLocationHelper.h */, - 6410D74145BF62D84FECAF2E75DFB970 /* LLLocationHelper.m */, - 6941DD126E30211D7F92AB1D97C7A5A5 /* LLLocationMockRouteModel.h */, - 7FC5BDFC466EC58D3F786F4A178E0D37 /* LLLocationMockRouteModel.m */, - DA5557B778D5476BC0E4415A71D84376 /* LLLocationProxy.h */, - 861F7E0CA3AFDD003CB8FA10549E99AE /* LLLocationProxy.m */, - 0DE7144DA85E194D1C6BC9681558FB2E /* LLLocationViewController.h */, - 4E3B1DB010CAF8D3F5FFFB84D59D0D76 /* LLLocationViewController.m */, - 9E7F35BA45AF43CC7983D67E1C395F5A /* LLLocationWindow.h */, - C45DC6F598F63544263420CFD6DB489D /* LLLocationWindow.m */, - A5A9D8693E9A5C2D37A5FAE77FFE77AC /* LLPinAnnotationView.h */, - 2C4FA9E3872B981247941FECE75C57B8 /* LLPinAnnotationView.m */, - E2169C728ECA5EC036D1CD033A2011A5 /* LLWindowManager+Location.h */, - 4EEF4BBA370E0CCC68B0BA1C9FF85A69 /* LLWindowManager+Location.m */, - 899D39DBF0662F0703181A527D2560EF /* MKMapView+LL_Location.h */, - 9B188AF11ABC695A8C591CCFCE3741A7 /* MKMapView+LL_Location.m */, + CFA0BB8A4DE76ACEDD5CFE6C69C63AB2 /* NSObject+YYModel.h */, + C153F5BFB075FF25972871DD709AC72F /* NSObject+YYModel.m */, + CCF27A6359FD82A1A13840307C74AC39 /* YYClassInfo.h */, + D844201CDF9991CA5EC19D25ED3DEAE7 /* YYClassInfo.m */, + 6FCDDE0A5CF0D363E689FA4FCA630498 /* YYModel.h */, + 828CF186B28D77638D4CB20AEB21BBC0 /* Support Files */, ); - name = Location; + name = YYModel; + path = YYModel; sourceTree = ""; }; 7835B6F48AD6D38E693478ACBADB1A20 /* UI_Classic */ = { @@ -9742,6 +10111,16 @@ name = Pod; sourceTree = ""; }; + 7A0DC21AAF931C8CCA664C05A6DC4995 /* WechatOpenSDK-XCFramework */ = { + isa = PBXGroup; + children = ( + 68289D3D28EA1041639E366ACC7FFB53 /* Frameworks */, + 23923C260A4A1EAD9990CCF5F421AA0E /* Support Files */, + ); + name = "WechatOpenSDK-XCFramework"; + path = "WechatOpenSDK-XCFramework"; + sourceTree = ""; + }; 7A11AF6D0CE3059D66C4CB63240FC890 /* CellData */ = { isa = PBXGroup; children = ( @@ -9752,101 +10131,288 @@ path = CellData; sourceTree = ""; }; - 7A4395B4AEDE011B32FBC0986A034319 /* Basic */ = { + 7A6DF6D47E57D0E7EF4D7147986790DA /* Support Files */ = { isa = PBXGroup; children = ( - 6B239A49B93C15EC0B8A40FA1B22C2F1 /* NSBundle+TZImagePicker.h */, - E8405E6E34E44ED063F9FCC5C1A44031 /* NSBundle+TZImagePicker.m */, - EE843AE22A85DEB0DB74332F863118A8 /* TZAssetCell.h */, - 83CDCFE2A451FDCD18A04FF31570AD32 /* TZAssetCell.m */, - 352CBC2D9D6F988EE9950B6B5E54A5F1 /* TZAssetModel.h */, - C7971EB1474B2162A3317E778F3ED1B1 /* TZAssetModel.m */, - A58CE48F937F5AC1F3F9D765806B835B /* TZAuthLimitedFooterTipView.h */, - 308AF89B134250D0CD9115BC42591484 /* TZAuthLimitedFooterTipView.m */, - CBE176765141835BD6BC05CE717A1B6E /* TZGifPhotoPreviewController.h */, - 9D41182662BBBB434B21A9611CD2B340 /* TZGifPhotoPreviewController.m */, - D6D160BF36FB6AD42ADF0CCACC82C43E /* TZImageCropManager.h */, - 77E30E64E9270DD9CF9FF715F41492E3 /* TZImageCropManager.m */, - F52A7A1A05E4871CB0F2B150C3737E05 /* TZImageManager.h */, - C694159BB916444B4C886BB73F6FB730 /* TZImageManager.m */, - A75B31477B530C0EC92AA906C2B88C48 /* TZImagePickerController.h */, - AD984F9C7DEC2984C3949D32E62B91BE /* TZImagePickerController.m */, - 11C0AC474AE9DFD4D517BFD0C6A12FEB /* TZImageRequestOperation.h */, - C529FFF63E78C75FC76F7E2580C9E401 /* TZImageRequestOperation.m */, - 8B621079F3499A3CC8F694ACB5CD1472 /* TZPhotoPickerController.h */, - F57BACA3ED26B598E4855CAD9219E1D6 /* TZPhotoPickerController.m */, - D0F4B6D3EB21B5225D98D6735CEFA345 /* TZPhotoPreviewCell.h */, - CC08102499A976AA9C80A31D8DCB69A3 /* TZPhotoPreviewCell.m */, - 33D353B44EE0092B7A36F0CB689CA644 /* TZPhotoPreviewController.h */, - D35408311B57D25B8EC7D4E521EA80D7 /* TZPhotoPreviewController.m */, - 7B3437C53629426F737F71A99D6242C3 /* TZProgressView.h */, - 8E7A2DD5D01536CEF9A241CDE85119AA /* TZProgressView.m */, - E02357F6C56C7E274CAEBE2B4A112E34 /* TZVideoCropController.h */, - DBCCE3367CFCFE8EAF47FCA662D63387 /* TZVideoCropController.m */, - 1398C969877EF6564C094BC18FD10C6C /* TZVideoEditedPreviewController.h */, - 7E453ECA8A5EFF7938EEEE294601EA51 /* TZVideoEditedPreviewController.m */, - 78E3DC27915BE74A4C155D9D4085E14A /* TZVideoPlayerController.h */, - F7BF61BF6F60EC757D465900BF3B663D /* TZVideoPlayerController.m */, - 5603228251A5126AD66F2725E36DE8B8 /* UIView+TZLayout.h */, - 7D91F0BC568DF526F575AE17E505DDDE /* UIView+TZLayout.m */, - E65FC8DD82777C6EE17A01B85987652C /* Resources */, - ); - name = Basic; - sourceTree = ""; - }; - 7BB3502A57163A58984BC8508B71535E /* Support Files */ = { - isa = PBXGroup; - children = ( - D30D30038FB48FE1F5D0C8959339462A /* SSZipArchive.modulemap */, - 13F19568DAB9768DEED990AD23257476 /* SSZipArchive-dummy.m */, - 7E35CC371B17AD9F7685BA4B6396AF19 /* SSZipArchive-Info.plist */, - D1BA08E58684BE22797B6961922733E2 /* SSZipArchive-prefix.pch */, - 4B730F600A81F90B6C34AA78ABEE5ED0 /* SSZipArchive-umbrella.h */, - 976E1C74975814DB018A48C7B6007B82 /* SSZipArchive.debug.xcconfig */, - 33B0F4ACEB466D6A47F4B5CF98C4455C /* SSZipArchive.release.xcconfig */, + B5B9188878E25F64DA70532A79013953 /* AgoraRtcEngine_iOS-xcframeworks.sh */, + C0680D056BC1F5302787A2199A803C1E /* AgoraRtcEngine_iOS.debug.xcconfig */, + A7578387B59E97B28BF7094AD41541A8 /* AgoraRtcEngine_iOS.release.xcconfig */, ); name = "Support Files"; - path = "../Target Support Files/SSZipArchive"; + path = "../Target Support Files/AgoraRtcEngine_iOS"; sourceTree = ""; }; - 7CAE5784D58DC49B8A0800F375444D70 /* LipSync */ = { + 7BE2AE21D83E448C8F40D10BF38F8F8A /* Storage */ = { isa = PBXGroup; children = ( - 74EE45048B627A4B910C6F4520CCA1A1 /* Frameworks */, + 21C18E0134BCBCD91C5BEA2285A82444 /* LLStorageManager.h */, + 7855E526D92517A3630804D531988716 /* LLStorageManager.m */, ); - name = LipSync; + name = Storage; sourceTree = ""; }; - 7DC1C1502D64075C7C6808B3FAF899C2 /* Support Files */ = { + 7CA0A4766D005CB1ACCB69F5617BE6B2 /* YYText */ = { isa = PBXGroup; children = ( - 717F633F8B5DC116E860495A0CF56ABF /* AgoraInfra_iOS-xcframeworks.sh */, - B0A10B59E6C7E6F20746AE945EB76364 /* AgoraInfra_iOS.debug.xcconfig */, - 990CF0C3878613AF2E60F2C9AA606405 /* AgoraInfra_iOS.release.xcconfig */, + FEC5AD5E49B314721065FAA3D47098D7 /* NSAttributedString+YYText.h */, + 977F1E2C35AB1341C1F8E208B95D7DF9 /* NSAttributedString+YYText.m */, + 19AB223C1F942890DF0BE9212ABCBAE0 /* NSParagraphStyle+YYText.h */, + 6F28FBBBCF4CCC86340A0FF856333554 /* NSParagraphStyle+YYText.m */, + 2B9D372EBAFFD39011BBCC04E81130E9 /* UIPasteboard+YYText.h */, + B85B877F076DC7FFAD6874AFA8E3EE86 /* UIPasteboard+YYText.m */, + F2BAC07911A34060DCC9F62FEEA390BF /* UIView+YYText.h */, + 5C73C1F8EEF212FDE5556FDC4A99AD2C /* UIView+YYText.m */, + 0A78B1221D5E139D0A1043307E3391C8 /* YYLabel.h */, + 631F823FA56A6BB0323A5521AB2017B5 /* YYLabel.m */, + 49895CC2A226DAE2A55E019E17D06B6B /* YYText.h */, + C47B236151C42E0448F26C5AB78D8959 /* YYTextArchiver.h */, + 2D9498C72BF0862841ADE049DC35EBF6 /* YYTextArchiver.m */, + 286102C5A2422F0545325003AF4C9835 /* YYTextAsyncLayer.h */, + E8C3E9C4EBA37ECB192FF24CDEC1BC61 /* YYTextAsyncLayer.m */, + 9EA8BFCEB35290D7C7990DBCB1E7DC3F /* YYTextAttribute.h */, + E5BF696DB0B67824D9A719D3F80F4CD4 /* YYTextAttribute.m */, + B420B532516143FB623C377EE29C5A9F /* YYTextContainerView.h */, + D5FD50CB70DC73F10EFE6F6FE9EB54DF /* YYTextContainerView.m */, + 41ABE376D03A65F97D42923B7751D41B /* YYTextDebugOption.h */, + 28D40F6CCEE48E207E41579351042FC2 /* YYTextDebugOption.m */, + A4A91C3F5D41EC11FEFE6B4BCE280F3D /* YYTextEffectWindow.h */, + F0AA041A13B213C33E04A62038E6212E /* YYTextEffectWindow.m */, + 9421733E9492EBAF4554BC01E63F5532 /* YYTextInput.h */, + C27596B7E37B9F52761B7EBA8ACCAA54 /* YYTextInput.m */, + E7D88E62CA4D102DA8BBCC2036403CF4 /* YYTextKeyboardManager.h */, + F13F34A3737416B4D351BFA90163B681 /* YYTextKeyboardManager.m */, + 757F9E32EF3ACEC838DAB4FEF3483E44 /* YYTextLayout.h */, + 148CB482AC0BEB1AFFE5154991BEC4C4 /* YYTextLayout.m */, + 0D4B0E9AF1DC425F683EAD19AFC28566 /* YYTextLine.h */, + 523A1B94681A2291B4E3E6F8CBE45846 /* YYTextLine.m */, + F8FD6112E89B5310AFB25FDEB36CBA41 /* YYTextMagnifier.h */, + 7AF7D22843BF31FD4D542530E673362D /* YYTextMagnifier.m */, + 1B5BDB8A4E3E1A103D830B649A2DE327 /* YYTextParser.h */, + E1E6299D85E07E7F127123F64CF648C5 /* YYTextParser.m */, + D54D2C488298D0C70A11E825433A8FF9 /* YYTextRubyAnnotation.h */, + D70F61F84A871A4A5701CC7FF69CA1C0 /* YYTextRubyAnnotation.m */, + 665CE986B42F440546A46928C2CD55BC /* YYTextRunDelegate.h */, + 54C9842F672DD7904085BBAF0823DE9A /* YYTextRunDelegate.m */, + 23E88DF7BADAE32913AD6B69D10C64B9 /* YYTextSelectionView.h */, + F0EE9EA288C0E4AB8E7DC82868ED94B6 /* YYTextSelectionView.m */, + 8B241A6BBA3261241FF305E7C1B4D351 /* YYTextTransaction.h */, + 178CB5232ADD2940C664E2DAC8C07E78 /* YYTextTransaction.m */, + 21DAC2923687FADD0F17B351077F7093 /* YYTextUtilities.h */, + 9F9B08AD35EE6AE7E86E91C31D8A0F8B /* YYTextUtilities.m */, + 08704F044297A76E647073F02628D9EE /* YYTextView.h */, + 0CDC2C1A08243A156278FF08784187CE /* YYTextView.m */, + A8911AAD900EAE6EB0688BB3EB02E473 /* YYTextWeakProxy.h */, + C633EFE05B75BEC4A82E1ED5B47B3D8A /* YYTextWeakProxy.m */, + DBA61C865FD19DD4F3CEC32256F0D6B0 /* Support Files */, + ); + name = YYText; + path = YYText; + sourceTree = ""; + }; + 7CA7A3AAE6C19C541C095E349FBE42AF /* Screenshot */ = { + isa = PBXGroup; + children = ( + AFFB2CEAD3DD982A686F05DC9DA2014D /* LLConvenientScreenshotComponent.h */, + 551DC510725AD8CDD655B3EC5477A0F9 /* LLConvenientScreenshotComponent.m */, + A77EB632553A0A492720FBAC64A2DF93 /* LLScreenshot.h */, + 8EFB87AFFBE3A61E5E0B068AA4508D41 /* LLScreenshotActionView.h */, + 672E5FEEA04009375B5912652BA1C31F /* LLScreenshotActionView.m */, + 8C52E08C63B91E6793D1ABF146E1FDF7 /* LLScreenshotBaseOperation.h */, + D944D47E71E8CC4721AC562791FFA914 /* LLScreenshotBaseOperation.m */, + 6B4C74B4499DA0C6DB49B3B55272D4BB /* LLScreenshotComponent.h */, + 3FB7B517F1494290323D2B25911FB805 /* LLScreenshotComponent.m */, + A222B75963C60FEC3AF799F8D98BD2D9 /* LLScreenshotDefine.h */, + 2FC9C62187F90EFF84B6BBA08E6FC0DD /* LLScreenshotHelper.h */, + EF94E42A71EF4BB4F94BCCC59FFDC67F /* LLScreenshotHelper.m */, + F461F4FAC8BB19506C6E56A2D8F8EAD1 /* LLScreenshotImageView.h */, + 8BC0FF9EE0A770F4B320B20B34F9A137 /* LLScreenshotImageView.m */, + DB9B43640341B4AEBD209008CF55A813 /* LLScreenshotPreviewViewController.h */, + BAA163586BEA8551A768765B67B1AABD /* LLScreenshotPreviewViewController.m */, + 9485EB0391E1AB078FD719112A7E1C72 /* LLScreenshotSelectorModel.h */, + 33C281761BF7F5D15E479274DDB11055 /* LLScreenshotSelectorModel.m */, + 5F5221963815A4246195A4F7393D4D27 /* LLScreenshotSelectorView.h */, + 14E7A02B510897AEBABF642888FD2C3E /* LLScreenshotSelectorView.m */, + 9231995BAA72208E6E6F3F4018F17579 /* LLScreenshotToolbar.h */, + 03F305614444015BF088A453D75BD964 /* LLScreenshotToolbar.m */, + 24EC9E116E2CFD2C1FCC8A407CFAE3F8 /* LLScreenshotViewController.h */, + 62CF371FE27BDFEAF25D8F9228D616A6 /* LLScreenshotViewController.m */, + 92B370C7C8365A49C3D05DD3FDE518C4 /* LLScreenshotWindow.h */, + EB313BC7A26F886148DD5DBE4DF6B8AF /* LLScreenshotWindow.m */, + 30D66DBB6F25AA190EC0CF9EE915C8BC /* LLWindowManager+Screenshot.h */, + 355D7EF7FF50D1218C0CEC883F6C2E3C /* LLWindowManager+Screenshot.m */, + ); + name = Screenshot; + sourceTree = ""; + }; + 7E02DE3E12D2917CA3E6F16ADC906574 /* webp */ = { + isa = PBXGroup; + children = ( + 822965F471AC39FAA8C2A81E1DAF3A5C /* alpha_dec.c */, + 9405B7EE37C2626E0FAB6A4D24BAF3BB /* alpha_enc.c */, + 4F368678C5E9A1277094F7744437EF5E /* alpha_processing.c */, + 41E51DB94A6FC8A936BBD0B77CE55ED9 /* alpha_processing_mips_dsp_r2.c */, + B27FBD7E5E7A153717454D957D6FA3A5 /* alpha_processing_neon.c */, + 9C33394F0E7BABD8B82BC1DD20D7DD19 /* alpha_processing_sse2.c */, + 508B43E63B65B3D5ECB9245286302F94 /* alpha_processing_sse41.c */, + 5669FF9A1AD09E203C494E22DAE96000 /* alphai_dec.h */, + 2897465C7E615AE1516A01D76DDD4CF0 /* analysis_enc.c */, + 5320BB3AC0EF89CDCEA8D440833550E2 /* backward_references_cost_enc.c */, + 0671A8AABCD30AB3C728D93F82BF615D /* backward_references_enc.c */, + 9559EC21ED7F4E98D232C84ECEA163E1 /* backward_references_enc.h */, + DBA5E791DD9EDD7838CC7AFE495DD477 /* bit_reader_inl_utils.h */, + 54BCDBAAA254EFD1FA9DF2898850A34E /* bit_reader_utils.c */, + 326116131F7F57A4EEF8996A6AEC35F2 /* bit_reader_utils.h */, + 65F07C155D2D631830BBEFC4B3175AEB /* bit_writer_utils.c */, + A918DC96BFCF495952F2BEC35A02F70A /* bit_writer_utils.h */, + FC546A86D11DA54EAC73A615369C28E5 /* buffer_dec.c */, + 29C365D5701AB648363972D3E6F75AEC /* color_cache_utils.c */, + 76242A9B4B975CF03084229735D63690 /* color_cache_utils.h */, + C6456D0D2370E680BAE9250B60CF2081 /* common_dec.h */, + CD287969EAB5F5DC4D31824EC51AAD45 /* common_sse2.h */, + D86DA65E0F51A4D4E5169E34D21247A5 /* common_sse41.h */, + 44F8EA9ACD259BDEF40C1EB7FC4F78C9 /* config_enc.c */, + 62A7818C3C86A9C69D1661932E0DC7D1 /* cost.c */, + BADC0186524F48319412F2A94BA1F0AE /* cost_enc.c */, + 736CB3F3305EBE3695E1F73EDC2BABBD /* cost_enc.h */, + 70C81FC71834B1E177BFF9B4EC6BB164 /* cost_mips32.c */, + 3792CC0CD093085EF6561256005846BD /* cost_mips_dsp_r2.c */, + B4DF94FB31089F7B36BC6CB85F37D16B /* cost_neon.c */, + C76964ED7C150134F52382927DD30E44 /* cost_sse2.c */, + BD39EE693FDD1016482B2126132727D6 /* cpu.c */, + 39779CCB2B95BB129A4CC4AA600A1891 /* cpu.h */, + 2B4D62F83F7E039BA5324693A012705B /* dec.c */, + 3CC1EA350F30753E1F105F5F4F0C1E4E /* dec_clip_tables.c */, + 8BA2460BEC774C2B520E7E4AA6E31D4F /* dec_mips32.c */, + 2C0210ABFD615E6A1062A758A7331AC9 /* dec_mips_dsp_r2.c */, + F8181EDD3C12ED0FF3835E32FCCC6261 /* dec_msa.c */, + B0C72B62D46E9DC948B196A020E7C33B /* dec_neon.c */, + 148E56923E88BF660AC5CD67D8B05C46 /* dec_sse2.c */, + EAEAABB94450E749A25AF3707224E59B /* dec_sse41.c */, + 014493B443F63C3E3682E9F5D1A7FF7D /* decode.h */, + 5E216BE9228887E06127F9CE98FF3C16 /* dsp.h */, + A0447AA6CE095FB16A0251D0A918CFA1 /* enc.c */, + A1FF9203E1CA53CFB391D1B29B255EFB /* enc_mips32.c */, + 878AE7C6CDB1A444CD8092D4A297E391 /* enc_mips_dsp_r2.c */, + 609C34D2447174114C2B15A677403B61 /* enc_msa.c */, + F4C56853B389CB4CC1EE2AFC7D9EB23C /* enc_neon.c */, + 46F242023E9A7F0185F551DB249B9B2D /* enc_sse2.c */, + E772B7F914CACF8772A7FFE42632D64C /* enc_sse41.c */, + A9BFD1A7CDE248132A063C7EFA77DBA2 /* encode.h */, + B1E8F50B7D434CCC63D637589A791128 /* endian_inl_utils.h */, + 0845832E2D7B1438A2874E2A1281BE41 /* filter_enc.c */, + 6221E8AB13753690EE8654446ABF1488 /* filters.c */, + 2D25C96ED9AEC859A4F5DAE89D31C0C0 /* filters_mips_dsp_r2.c */, + 14837271B0CCF90097B6148F909B5838 /* filters_msa.c */, + E291D433E8515858FE063A147D01483D /* filters_neon.c */, + 4CC4BCC6BDE780529CE713EB68E02781 /* filters_sse2.c */, + C91DCFA49F944029C6FC01F11E1523C2 /* filters_utils.c */, + C990846C5E3C92D6B1F54978170573C6 /* filters_utils.h */, + 8AD3CCB72F8AB9C0CF20BFCC7959C835 /* format_constants.h */, + 9913A2617E39A9B8B72732889C727C44 /* frame_dec.c */, + 96C143B365F048B7C234C3A8462EAC60 /* frame_enc.c */, + 11A2159ED822A3FD5A308AEBAD81FCE0 /* histogram_enc.c */, + 24E85B1054FDBB3D58BDE7CDC036EFD9 /* histogram_enc.h */, + 0B9E532883452012C95B2BF6FD077FF9 /* huffman_encode_utils.c */, + DE90685317F566A867EC2A4D58B7A5F5 /* huffman_encode_utils.h */, + 9F986A2714B3B701410AC79A28043637 /* huffman_utils.c */, + 510A481D16EC2697CA59168881F1D464 /* huffman_utils.h */, + F88E4977EB3F1DA61E63A631CAFE861A /* idec_dec.c */, + AE2BD227372A622034B2AC24A2D2B24B /* io_dec.c */, + E91D275F6375A2DEB0BBE4068CE1806B /* iterator_enc.c */, + 49487E6AF0649F3A2ABFA50CA196A2B6 /* lossless.c */, + 4841B1E779CC86B9DCFEEE99A605C413 /* lossless.h */, + EE016A33A5E237BFB4665F4F038B0B17 /* lossless_common.h */, + 2219A2C8EC086DEADE75ADBAA587A684 /* lossless_enc.c */, + 47F9E07C30F10F1710B40B7BBB8100BE /* lossless_enc_mips32.c */, + 36C58901FA133D1BB74984D16582B20A /* lossless_enc_mips_dsp_r2.c */, + 69365D42E1B30FF35DC8561E851C72D8 /* lossless_enc_msa.c */, + 80A9E7D4BFA9F54864B54934B2C3B3CD /* lossless_enc_neon.c */, + 7622B32104E90F22DCAA3A51E5584A2F /* lossless_enc_sse2.c */, + CC6361F81A3A94F318EAAB390449A969 /* lossless_enc_sse41.c */, + 52D9EC9C96308E3F313A45922A3F0A6A /* lossless_mips_dsp_r2.c */, + 5E60E1C7FF51630E359F4349A09761DD /* lossless_msa.c */, + E9E9A8D313D4EA9E98CFC88D6D56F1F7 /* lossless_neon.c */, + 20F1EF1530C7EB6E819B8CBA9CD7B69D /* lossless_sse2.c */, + 74B01FB69A5D74BF6A006DF102F3CAD6 /* lossless_sse41.c */, + 1A2E8AEB3D01EFA0A7BC494E9A84B299 /* mips_macro.h */, + C58D32D01D066EB0C2F0E3F0B8D29D34 /* msa_macro.h */, + 6AE77FD11A04349202B7C3561B84B845 /* mux_types.h */, + 58242B008E957BED6CA7497F95558A88 /* near_lossless_enc.c */, + 31ADE70C54EC2AA86CDD058978447193 /* neon.h */, + 5FA8775E4CBFB297E96159A4FA59A2C5 /* palette.c */, + 57BFE83FF143652383D8D52BD8B68ED6 /* palette.h */, + DB56C90354230FC7108B503D36EA6EAC /* picture_csp_enc.c */, + 914BEA483726676393D445DE4DE45FB1 /* picture_enc.c */, + B03A7927C1DBBD7EC530C86B7C22BCE1 /* picture_psnr_enc.c */, + 5B183CC5E8148072B8DA532DAA6D1F13 /* picture_rescale_enc.c */, + A019910B8F5B2BA82472CB9A339DC2BB /* picture_tools_enc.c */, + 992E7E74FA846B8584E79728F0C6F7D0 /* predictor_enc.c */, + 6A1D57FCB5F0541A0ADFDD3D6A998A0A /* quant.h */, + 9EC714453B605C0110B12871F200D1F5 /* quant_dec.c */, + F0DBC4CCC06B3923039F6C794F6CF1A6 /* quant_enc.c */, + 9657CC53F162E9B98D58C7976220247D /* quant_levels_dec_utils.c */, + D36D1075AA0CC80AD328D2A389227227 /* quant_levels_dec_utils.h */, + 0F4105022E08CBF5EA22D24DCAFE5F8A /* quant_levels_utils.c */, + B39097140D840BDDCA338BF5FCEA54DD /* quant_levels_utils.h */, + 22395D96BD0C176809677199C8E364AA /* random_utils.c */, + 9177A1E1CB5989389C44C78FE0A269BA /* random_utils.h */, + ED69B92666F6F0383AFED29E18C4261A /* rescaler.c */, + 67F378B22F34B91070BE2D83C22C2953 /* rescaler_mips32.c */, + C6644EE432B19E6B483A15BF64272CE2 /* rescaler_mips_dsp_r2.c */, + 4393C282FB84A0228EA11E3635D4ADFE /* rescaler_msa.c */, + 51CA26F641287F8855EFC6724DF07367 /* rescaler_neon.c */, + 19208F14DA0A2B3D68B23872962764E3 /* rescaler_sse2.c */, + DD899567E197BDD657A67C60DB038D7B /* rescaler_utils.c */, + 6040685E7D4DC736512DD586ADEEA597 /* rescaler_utils.h */, + C20893CDFE63C9B61AFAC6AE664B40B9 /* ssim.c */, + B36C796F49BEF7ABEF89640467C9035F /* ssim_sse2.c */, + 30A83DA60174B28C331EFA1522382EDC /* syntax_enc.c */, + F12F3F34A7DE95B22A6457237D49AE54 /* thread_utils.c */, + 56990544E9DC75FE2A6CDCB511DF2E4F /* thread_utils.h */, + 985C75D39F6D074CF247CCA12CFF66CB /* token_enc.c */, + 36BD4259AA7F4658875BDD457F270C24 /* tree_dec.c */, + CBD15162B14078B79CAC3A2581747109 /* tree_enc.c */, + B86C6E30F767B19901BA01F9973BEB94 /* types.h */, + 109E33175A59F8C3E531B352793B6952 /* upsampling.c */, + 9D4E72E2610B992A55D6BDD182B4D44D /* upsampling_mips_dsp_r2.c */, + D0A9B55B2A4B78892B247E467A229EE2 /* upsampling_msa.c */, + 4749025CEF819C1EAA96E665712CB546 /* upsampling_neon.c */, + E306122A64AE025374FF6635E9A1D13D /* upsampling_sse2.c */, + 410044B067F7DD4A01C05494625ECDF2 /* upsampling_sse41.c */, + 29F54965534035F73529270C6DF40B9B /* utils.c */, + 4B7791ED3CAC956C61D2090F84B877A3 /* utils.h */, + FF984B47225FDD7DAA2D4DC89C5888D1 /* vp8_dec.c */, + 0E0A0BAA80DA453334649223D3A66C28 /* vp8_dec.h */, + 334DED8C53FD541D90D3B63F4C9CE8E1 /* vp8i_dec.h */, + 380131B8E123CBEBF5EF2B2F50944602 /* vp8i_enc.h */, + C6A9340CDAC0B6369DB2690CDC3A55CE /* vp8l_dec.c */, + 2AE23C0B84FD193CA343B607C3D1F663 /* vp8l_enc.c */, + 64C0EABFBD54D70D54576509BB9EEEA2 /* vp8li_dec.h */, + 8A87A1F94C3A4E6F191EA25DAF3D2A5F /* vp8li_enc.h */, + 1A80456146B2F3CE27A4C9F942F1A2D1 /* webp_dec.c */, + E5D64DC699AC6B5360DF371C757BB336 /* webp_enc.c */, + F15F91872233EE8EE0F3E443277151FD /* webpi_dec.h */, + 6E84EC6FDDB438259358A76D0372A255 /* yuv.c */, + 7BCF3811DF71E81D97FE5E9692B0FE7C /* yuv.h */, + BC35A905DD48CB76AFB0135B362F643F /* yuv_mips32.c */, + 686CEFEF8F6698FD3A987D079EF81C12 /* yuv_mips_dsp_r2.c */, + B5F5042F3896571E05E61122C0162866 /* yuv_neon.c */, + 968E0E8489EA1FEE210BB51339379F28 /* yuv_sse2.c */, + CB10776CAC78EE0A178699E752E508D2 /* yuv_sse41.c */, + ); + name = webp; + sourceTree = ""; + }; + 7E69A9457700B7E212F77C920495D334 /* Support Files */ = { + isa = PBXGroup; + children = ( + 12F7EECB1516484975DFF9EADC43A210 /* ResourceBundle-TIMPush_Privacy-TIMPush-Info.plist */, + E07E8704096DC5D17E56BC0473B8D7C5 /* TIMPush-xcframeworks.sh */, + 1B1917C3258642FD33C8DEDAA318364B /* TIMPush.debug.xcconfig */, + AE8AA30C86BACC4D9D753D8DC071E34C /* TIMPush.release.xcconfig */, ); name = "Support Files"; - path = "../Target Support Files/AgoraInfra_iOS"; - sourceTree = ""; - }; - 7E3A2C001BDC661ECC90A5EC967455BE /* Zip */ = { - isa = PBXGroup; - children = ( - 3F8D829D41253554A64C59CFD33906F3 /* crypt.h */, - DE70643D8C7B20011C33FF0CF0C417BE /* ioapi.c */, - 0D0C13AD4F2D4252E25CC5852045C615 /* ioapi.h */, - F131D70A08DA7A1945458B96F12F0165 /* Minizip.h */, - AD0E37C6A4E41D3661FCB7AF24D6C3C7 /* QuickZip.swift */, - 638CA51AACFC6C661E87F56CCF7FD1A5 /* unzip.c */, - 9F6EEE8C6A98AAA417490D4F34670A58 /* unzip.h */, - 6482F5E40400B180C7D990119B4279A5 /* zip.c */, - 8F26F0561CFD77A8DE74190245D48F2D /* zip.h */, - C615144ABEC3D35105A51EF5991A7108 /* Zip.h */, - D52DFCFF44DE16962C6ED50F3CD3C869 /* Zip.swift */, - 2AA9A2E1438036D23183D38BA6BD6C82 /* ZipUtilities.swift */, - 4837F3A409B7395AFFD74D1761E77E0E /* Support Files */, - ); - name = Zip; - path = Zip; + path = "../Target Support Files/TIMPush"; sourceTree = ""; }; 7F47E07549261018C51E4DEB8E4E99EA /* Service */ = { @@ -9861,41 +10427,6 @@ path = Service; sourceTree = ""; }; - 7F4C654F82CFB31F1776074CACBBE0C6 /* Screenshot */ = { - isa = PBXGroup; - children = ( - CE1424F91B32D8E450782B368DE382A6 /* LLConvenientScreenshotComponent.h */, - 798B85CFA2FEA1EC56E6EE7192006D0E /* LLConvenientScreenshotComponent.m */, - 1C026300FFFB099F48154B7D5E9C26B1 /* LLScreenshot.h */, - C82642F6DD1910B02E2CB7E3AB20324F /* LLScreenshotActionView.h */, - 2DAEBF47DAD907A4319FCECEBF149DCC /* LLScreenshotActionView.m */, - 2FD15E7FAC1131BA1CD24E3774107AD7 /* LLScreenshotBaseOperation.h */, - D5DF4228C29FD3D24B2C9710525CB678 /* LLScreenshotBaseOperation.m */, - EABD8B32D67DA62EA7FAB53F75BA340C /* LLScreenshotComponent.h */, - 7CC1FF2AD5452B874857B99A32DBFE0F /* LLScreenshotComponent.m */, - 1556CE6009342518C88400576F155A9E /* LLScreenshotDefine.h */, - 71F034516BC7947B34EB22C661C2C03F /* LLScreenshotHelper.h */, - 770E456381CC918A6B967876645BD99C /* LLScreenshotHelper.m */, - 233276ED57DDAD4E609D8DFB0EBCCC92 /* LLScreenshotImageView.h */, - F9C7C18788030E30F92E319F88529380 /* LLScreenshotImageView.m */, - DCFE3F6AFAEEBC6E836DDC148905E788 /* LLScreenshotPreviewViewController.h */, - 91C37FCE586EA4CBDAE664E8973148C6 /* LLScreenshotPreviewViewController.m */, - 41017787FE8316E19321CA326C97E62F /* LLScreenshotSelectorModel.h */, - 4DAC7633A133F7BDA3138F879621D8D3 /* LLScreenshotSelectorModel.m */, - 63C8FDB112830F4A2DF6C9C1D2360D5A /* LLScreenshotSelectorView.h */, - FEF5521913D41FD970482B0C32AECA39 /* LLScreenshotSelectorView.m */, - 05B194A51F710F29C89EA5E6458B9D3F /* LLScreenshotToolbar.h */, - D87808ED640D8290201CE22AF72C7F47 /* LLScreenshotToolbar.m */, - 34E2640229E8238789D84A897AEF3545 /* LLScreenshotViewController.h */, - 3255A026DBC0318EFC46551B68D63032 /* LLScreenshotViewController.m */, - ADB1EF25CCD031473FB4F9709E6F2550 /* LLScreenshotWindow.h */, - 5DD9C40E05539B7B6E58688BA870BC77 /* LLScreenshotWindow.m */, - 4364DEC7F8E45E2544D5183FAF389978 /* LLWindowManager+Screenshot.h */, - 7B9CFE0009D3BE470BBA587D39B3FC89 /* LLWindowManager+Screenshot.m */, - ); - name = Screenshot; - sourceTree = ""; - }; 7F5697ED958C5F97D7FEA39BA04EC1EF /* Service */ = { isa = PBXGroup; children = ( @@ -9910,202 +10441,109 @@ path = Service; sourceTree = ""; }; - 7FCA6C530FC5636BFCC65734A411BFB1 /* ReactiveObjC */ = { + 8012A18B8D97B7730EE2B6FA938D17E4 /* Location */ = { isa = PBXGroup; children = ( - 2B6574C1EBA79E9D88FCAE60880F3D1F /* MKAnnotationView+RACSignalSupport.h */, - F2B5FD56E03155516A6FD232CD54E736 /* MKAnnotationView+RACSignalSupport.m */, - DC1160574EFD195629D53A5C05F029FB /* NSArray+RACSequenceAdditions.h */, - 63783C8C7D8459660065E5F923BD3F1F /* NSArray+RACSequenceAdditions.m */, - 0F88EF100863CF2E8408D228E573FF49 /* NSData+RACSupport.h */, - EC4AFEBAB597CA581EA5CFC7CCD195BA /* NSData+RACSupport.m */, - 3387EAE707EA852914EB3CD0D69B1343 /* NSDictionary+RACSequenceAdditions.h */, - 96C8E25F23B1E6EF7231C646A0C30351 /* NSDictionary+RACSequenceAdditions.m */, - F7D1A9C4926FD986129B7C792ED74F62 /* NSEnumerator+RACSequenceAdditions.h */, - 2FE3D8E42EF97CBAA2153E6796B78ACC /* NSEnumerator+RACSequenceAdditions.m */, - 67A6099318A28F87F5D01781C55227B1 /* NSFileHandle+RACSupport.h */, - 2140F903354FA7A1562D5065709EF8CA /* NSFileHandle+RACSupport.m */, - C543DD290F6D315E73EB20C3E7C3635E /* NSIndexSet+RACSequenceAdditions.h */, - E60C781CFDEE02E3CB6E0439024B2C2C /* NSIndexSet+RACSequenceAdditions.m */, - 0497FFAE57C0BF0660DE3C130E9713F0 /* NSInvocation+RACTypeParsing.h */, - F822496FFAF9B7B6D982527883BC6117 /* NSInvocation+RACTypeParsing.m */, - C04645052ADA4D0C5776AF0B76583807 /* NSNotificationCenter+RACSupport.h */, - 74EC94175729818B4BE8B5EF94BB256E /* NSNotificationCenter+RACSupport.m */, - F6FE0B645B3D02D2EFD794BC6CF6269F /* NSObject+RACDeallocating.h */, - D8BBB31F9A3A8FC62374228BA72BB013 /* NSObject+RACDeallocating.m */, - B6F57065A876E2A87F53681BB4879762 /* NSObject+RACDescription.h */, - 48E908F60217B7B5344EA813696E9C6B /* NSObject+RACDescription.m */, - 5C93A460B1526056E40F5B47D308635A /* NSObject+RACKVOWrapper.h */, - 58C26C82C995202B9CB0E047FEE692F2 /* NSObject+RACKVOWrapper.m */, - DAB99A93E199A7EFD29A521CC7CC8558 /* NSObject+RACLifting.h */, - 440649D44500BEFE35F8447CA3A6BB3A /* NSObject+RACLifting.m */, - 7EE201C9EDE3E86876EA40183DA69E3A /* NSObject+RACPropertySubscribing.h */, - AB9D730F4C08F0B6BBCFADE910AD0A95 /* NSObject+RACPropertySubscribing.m */, - 0F99A474F50D0D618E7941A0F9C72BB4 /* NSObject+RACSelectorSignal.h */, - F94A7CE692EE89E7ECAD65E1F22AC0CE /* NSObject+RACSelectorSignal.m */, - 9C89FB44434DDB60D130F00D76923E32 /* NSOrderedSet+RACSequenceAdditions.h */, - B1BFFCFC6C51859FFD9C9ABBDBF260BA /* NSOrderedSet+RACSequenceAdditions.m */, - C02BE31F90C28D8BC8E0D4759ED1DE8A /* NSSet+RACSequenceAdditions.h */, - B5FE646DE5FC4AD3481E835DD271302D /* NSSet+RACSequenceAdditions.m */, - CFAA67A034CA90CF6F568464671B5835 /* NSString+RACKeyPathUtilities.h */, - 3E716E52FD1B70E27F8D13FF9DE24B69 /* NSString+RACKeyPathUtilities.m */, - F1D2B99C73E8D762A9AB1CBA3A98A3EE /* NSString+RACSequenceAdditions.h */, - BF9F88796446E07B16F5CA618BD2E80B /* NSString+RACSequenceAdditions.m */, - 83B44DD1C48B79BC362AEA55A429DEAD /* NSString+RACSupport.h */, - 8CAFA93C3EE234EE57B21D5EBABDDEE9 /* NSString+RACSupport.m */, - 12B6586F2862B11760BF86632F6D7F85 /* NSURLConnection+RACSupport.h */, - 62E4490E6CBEB7E0B7D7ABACA43DC8A1 /* NSURLConnection+RACSupport.m */, - 54179D0731911E4A42EB32AF0284D5B9 /* NSUserDefaults+RACSupport.h */, - 4BD5985475E7528CD717D4DC5A781D5E /* NSUserDefaults+RACSupport.m */, - 7EEBE3C8967905D483B0EA21522EAD31 /* RACAnnotations.h */, - 7F00E751F1A9E894E923D939629EC0FE /* RACArraySequence.h */, - A35BD9C8F4D97D0C81E727EADD3E0184 /* RACArraySequence.m */, - 29CA2D1B5A8C0FBD39DB377ED08EFBE7 /* RACBehaviorSubject.h */, - FF572200444F060F0BED08ED673BA628 /* RACBehaviorSubject.m */, - E141AB38DD124405E4BED436DAA10A7C /* RACBlockTrampoline.h */, - 1022AE2F730E8371E0319E83E7653A89 /* RACBlockTrampoline.m */, - 68A637692529FA9A3C79480A3A5E44E5 /* RACChannel.h */, - 14F709833EB5E24917813D59A3397A71 /* RACChannel.m */, - A2A57CECB4A3CAE50819DD12A98FCC5A /* RACCommand.h */, - 9EF5036A6468EAABCE5351203A09B296 /* RACCommand.m */, - B5F401CFC257F77EC27724C8E9B72978 /* RACCompoundDisposable.h */, - D265E983DA80B4DBBE3AF47B25EFCDB7 /* RACCompoundDisposable.m */, - 58B5188933EFE0E84F3B4D3F7BF43664 /* RACCompoundDisposableProvider.d */, - E4F49D838212163A9F7FD44ED4BE7717 /* RACDelegateProxy.h */, - E54BB4993F0F6ABD3B22325957CF3841 /* RACDelegateProxy.m */, - A1EEAC3A4312A6FE9A305BE184EDCFA3 /* RACDisposable.h */, - D29B7BE54DD7C222865D156D3AB9CAAE /* RACDisposable.m */, - 595A2AEE5A65358BE4824F0982DFCF01 /* RACDynamicSequence.h */, - D8395E20A97D710813876BFD2FF6958F /* RACDynamicSequence.m */, - EAB94DED6D97E9572836AE565AE8F8C6 /* RACDynamicSignal.h */, - 44933FE9E5817D4D9B3F4ED9EEED1BAA /* RACDynamicSignal.m */, - B723F5123B1E1AF062A2FC17FBA8F916 /* RACEagerSequence.h */, - FDECB8D5714E6E4D9D45FFB53A536451 /* RACEagerSequence.m */, - BD892B6F45459AEBA85A914099D832FC /* RACEmptySequence.h */, - 614E21F4741355B3B329E475AAD5EE31 /* RACEmptySequence.m */, - 33A9AE1A679F38D63E16BC90A6D54F0D /* RACEmptySignal.h */, - 3F9064E489C7E7B3860786D3B0B5F4C9 /* RACEmptySignal.m */, - F1D8CD4A6EF4FE9FB9EE108598849301 /* RACErrorSignal.h */, - C7E1FEDE75F88426ACE300C7E5E27418 /* RACErrorSignal.m */, - 71003306D1C40BF6E543AABE22DCC951 /* RACEvent.h */, - C518C80567153AE3BF076BB749A472CB /* RACEvent.m */, - 453B168D21923248C66146A95DEB6CE9 /* RACEXTKeyPathCoding.h */, - A885D25D9BB36D8AA7AA3B478EC889DA /* RACEXTRuntimeExtensions.h */, - 0EEC88AEAD6941ABCF5D74F17B2C29AB /* RACEXTRuntimeExtensions.m */, - FCBB6DFD6A58E8B6100BF172DEA7EBA8 /* RACEXTScope.h */, - 4EB7EA528AD2955EEC8332C25AF94ABC /* RACGroupedSignal.h */, - F22C56B3D303A4D4DE652354074431CA /* RACGroupedSignal.m */, - 60D9E66108606702F5433BBA6214654B /* RACImmediateScheduler.h */, - ECACABDDF9CE533CDA75BC8C7715A10C /* RACImmediateScheduler.m */, - 323E2DDDBFA33D8B25A1200AC5E00A75 /* RACIndexSetSequence.h */, - 7543008B3F4C02A48A84E1C1588DD1D1 /* RACIndexSetSequence.m */, - 9430AB66010AA631CF130C9E4E90866F /* RACKVOChannel.h */, - 0E010EA52E174EAE780E167D3EBA5FAE /* RACKVOChannel.m */, - FED504FEAC08432BEC64058A0647F40A /* RACKVOProxy.h */, - DF26039398C538B0C3F976E17D2B9065 /* RACKVOProxy.m */, - E38E75419CD6F10F456D076A1546C7DD /* RACKVOTrampoline.h */, - 205478D6096D2F67476662CBE8198CF2 /* RACKVOTrampoline.m */, - 5C0F37A69D4A56CBC03C8AD4B85B7DB6 /* RACmetamacros.h */, - B1B07F419F253B5ACE387A614AD2EA5A /* RACMulticastConnection.h */, - 0F688F191EA28E7570EBEA4FBE37E761 /* RACMulticastConnection.m */, - 5B4A77C9A770321DFD1BE15FAD442EA6 /* RACMulticastConnection+Private.h */, - 37BF5C6D27DC9250948AD8D426A63A5D /* RACPassthroughSubscriber.h */, - CDCDFDB506B6E3439FC21785865FEE77 /* RACPassthroughSubscriber.m */, - 343CD4E0DC126EC0B16184E8939997DC /* RACQueueScheduler.h */, - 4F63AAB3B7BBFDF1046B6090A4116864 /* RACQueueScheduler.m */, - F25CAC6CD00ADFF0B9EF930622712103 /* RACQueueScheduler+Subclass.h */, - 34BCEB440A28333692E4A9A246780F63 /* RACReplaySubject.h */, - A892A1CEE6B8E22EEB2402156B6B1376 /* RACReplaySubject.m */, - 0F022DE9B328C785CE8D266EE01605C8 /* RACReturnSignal.h */, - 9A05EC9D7F000F85F1F2BEFDEE6C75A0 /* RACReturnSignal.m */, - 7852EC32D4C50BE7EF8F4F80620AC043 /* RACScheduler.h */, - B3B8814894BF2C5AD4EA8B779B0B9C7C /* RACScheduler.m */, - E8A858791FCAD7F99C0E3F955D7C907C /* RACScheduler+Private.h */, - EB2977ADC464CB806A515F61CE03F0F0 /* RACScheduler+Subclass.h */, - 1DFCD9D1F043F199564DA45EC1E218EC /* RACScopedDisposable.h */, - 5AFB313B43FA2AD26597FD28A7B02161 /* RACScopedDisposable.m */, - D821828056F8CA7A6C75531B742399FA /* RACSequence.h */, - 866B82E07C82BBB6BC96C9CA6FDE32F6 /* RACSequence.m */, - 33209571890BFD1121B09EF9352AD064 /* RACSerialDisposable.h */, - C7828D500F6093CD09FB8CC989E8AD0C /* RACSerialDisposable.m */, - 273EE05626CE419A5CD1C8843D7F7DD6 /* RACSignal.h */, - D88C4031A4949CAF9B8662AC6D9B3AEE /* RACSignal.m */, - F06667D75722BD057EAF6D8065A3FFB9 /* RACSignal+Operations.h */, - 9989F82CA2DC6F39435D478FCDEFA2B3 /* RACSignal+Operations.m */, - B44B0A704748E5F5EE4F9F8C88B789C3 /* RACSignalProvider.d */, - 56B0E7A38A8353991791DDBF58BAF1D2 /* RACSignalSequence.h */, - 7ABDB6DAEBD6804A541E75AAE3ECBBA7 /* RACSignalSequence.m */, - B451ADF9BA1CC2FF64C146F5FC437A84 /* RACStream.h */, - 6919ED6EF55488289D03D05104EE944D /* RACStream.m */, - B5E455DE9A138D99A488F5572102CFCB /* RACStream+Private.h */, - D2EDB3C2522692B94BFB6EC06EB734D0 /* RACStringSequence.h */, - 739BE06759FE9FD4EFE88DC94FFC138A /* RACStringSequence.m */, - 7D8737F50F40B4DD880127C8E8CA6CC3 /* RACSubject.h */, - 57DBE5E18EE466C6732DC09D06D7E549 /* RACSubject.m */, - C98D8B98E7B4DB697FA530730298BD5E /* RACSubscriber.h */, - 1AD2B1887F9946F4A3CC53C3A5A7B630 /* RACSubscriber.m */, - 8EC299F270811F3DB74DD20C70965FDA /* RACSubscriber+Private.h */, - AE2D6ADA4FDF24EAB07D1F9ADFFD7102 /* RACSubscriptingAssignmentTrampoline.h */, - 594FF10178D0CEA9AE06A05AFCDE4FAF /* RACSubscriptingAssignmentTrampoline.m */, - 9A8E88BEDBF9E729FC38BF8AA1CFEAC5 /* RACSubscriptionScheduler.h */, - FEFC974F671B263EBF26A7BDD8953409 /* RACSubscriptionScheduler.m */, - 201746211CE34F124E35D10C68791A4B /* RACTargetQueueScheduler.h */, - A5CAB58598954B709EB1F0AB68D95D4F /* RACTargetQueueScheduler.m */, - 899502FBB6B6D644524A81FACD02E803 /* RACTestScheduler.h */, - C95D205F4D3CC22777142A7CACA76399 /* RACTestScheduler.m */, - E9E3514ACF2CA3C76FE4AD482DF52CF4 /* RACTuple.h */, - 012DE05920131187826AFC086713FF68 /* RACTuple.m */, - 4BB5ECE45841E247C0A2B2E4EC46359D /* RACTupleSequence.h */, - D318B214A7C1B1081D57579C4DD9F600 /* RACTupleSequence.m */, - F7D704EA73182F83BFA8FC340F8FA287 /* RACUnarySequence.h */, - CDA511D043C97E2418FDBC373437FBEB /* RACUnarySequence.m */, - 4054A82DBB97406AE6930F5DDF337D3D /* RACUnit.h */, - C0EC29D281EB3968B8B0340A6BABFC82 /* RACUnit.m */, - C5CBE99292C594A9C899C9DD38FB8719 /* RACValueTransformer.h */, - 40A4AB5FDB162AD7D81253D8AEE885D6 /* RACValueTransformer.m */, - C1DD8BA8D1AFC8CA6DF6622626BCF972 /* ReactiveObjC.h */, - E26E811CF89B2B83F9EBF5C7AF9CC336 /* UIActionSheet+RACSignalSupport.h */, - 0FC6CF60D2302792BEC53958959D04EA /* UIActionSheet+RACSignalSupport.m */, - 256205526101F732296DD3DD84FD4A9C /* UIAlertView+RACSignalSupport.h */, - C56C0F410529275BDBD25BBDFE51F9C6 /* UIAlertView+RACSignalSupport.m */, - F428149B2FF2455DA70284F8BEB2AB92 /* UIBarButtonItem+RACCommandSupport.h */, - 276CE580A63B4C6D0943C51AE0279721 /* UIBarButtonItem+RACCommandSupport.m */, - 6783350E5EEBE526BCC7AA81538520AC /* UIButton+RACCommandSupport.h */, - ACE27D14F40D07FDA39F1A3B7A55190F /* UIButton+RACCommandSupport.m */, - 1BD5CCBD233C9725E461C49442B1F843 /* UICollectionReusableView+RACSignalSupport.h */, - 3BE30CE823E0C71B1D4A34995D92C5FF /* UICollectionReusableView+RACSignalSupport.m */, - 20D0B4E551C2CF5AF61B7EC31AF96DCE /* UIControl+RACSignalSupport.h */, - 974EF5F6AB07F9047E91897A1CB0ED2A /* UIControl+RACSignalSupport.m */, - 641CA628D43B5A1C6085AB2C563B44E1 /* UIControl+RACSignalSupportPrivate.h */, - 240EC0D5314707D71622B123B7B06E10 /* UIControl+RACSignalSupportPrivate.m */, - 7436C54DA532D571912C09AA8611D6D1 /* UIDatePicker+RACSignalSupport.h */, - 3CC9BDDA97B381BF43C970FF96C770E8 /* UIDatePicker+RACSignalSupport.m */, - 4A00004632EC2F650DE6F0B2DB7E13E8 /* UIGestureRecognizer+RACSignalSupport.h */, - 282F7D9179265592C1D1511E7E769B8A /* UIGestureRecognizer+RACSignalSupport.m */, - 40B72C4126635C522B6FF11FD30432C3 /* UIImagePickerController+RACSignalSupport.h */, - F7A9D0E3B76FA3DFE606B56FE1A35962 /* UIImagePickerController+RACSignalSupport.m */, - F6633117218F5C9B51700A7513813FE7 /* UIRefreshControl+RACCommandSupport.h */, - 24726EDF04425EB9268BBF0BE35F2019 /* UIRefreshControl+RACCommandSupport.m */, - D28AE5C239DB630C7D59111EAE83EC08 /* UISegmentedControl+RACSignalSupport.h */, - 79029D33A08F6FA9B18D92BD91286B4F /* UISegmentedControl+RACSignalSupport.m */, - 3842C0F2A0B7023AD39B5999D462DE6E /* UISlider+RACSignalSupport.h */, - 1E241228CEDF79BEF3B92FA29E248D54 /* UISlider+RACSignalSupport.m */, - BD57A55328407A1B60CBA41BDC6D00DB /* UIStepper+RACSignalSupport.h */, - A12049159656D8053BC45EBAF14A5092 /* UIStepper+RACSignalSupport.m */, - 324C3C17E77640BD11D454C5D4E11998 /* UISwitch+RACSignalSupport.h */, - A9C2940910F9BD87850FF4E0B79BFD06 /* UISwitch+RACSignalSupport.m */, - 8061F5C4EB19BDD00C4EA158523641A8 /* UITableViewCell+RACSignalSupport.h */, - D1879B8F07A78453656448845438BB92 /* UITableViewCell+RACSignalSupport.m */, - BF3B9C219B5D8CA4E3427470D290553C /* UITableViewHeaderFooterView+RACSignalSupport.h */, - E82E4E8160F794B08736FFB99B47495A /* UITableViewHeaderFooterView+RACSignalSupport.m */, - E8F52380927FAB122930062DC59EF5C1 /* UITextField+RACSignalSupport.h */, - D4633C889866FADCB396805A32962CA8 /* UITextField+RACSignalSupport.m */, - FCF416D248705468EA5712B0B7CD870F /* UITextView+RACSignalSupport.h */, - 9EE454B710D757E4DA03F063278B0227 /* UITextView+RACSignalSupport.m */, - DA44B83CEBB32DB7116357F7FC1C09F6 /* Support Files */, + 949742297D1D4FF3E63055928121743C /* TZLocationManager.h */, + 5A6AE4D05DFEDE5863D2A5FFA43F75F3 /* TZLocationManager.m */, ); - name = ReactiveObjC; - path = ReactiveObjC; + name = Location; + sourceTree = ""; + }; + 805CBDBCAAEE1C7DB2602F45FD209221 /* VirtualBackground */ = { + isa = PBXGroup; + children = ( + 09620E9C390C38639A1DDE74B9C5CEC8 /* Frameworks */, + ); + name = VirtualBackground; + sourceTree = ""; + }; + 80DBA65CBBBDFCECC11B49B22A64A4A3 /* Frameworks */ = { + isa = PBXGroup; + children = ( + 9F7354B06DCC590438EF56843C04923C /* AgoraAiEchoCancellationExtension.xcframework */, + ); + name = Frameworks; + sourceTree = ""; + }; + 811BEFBEA28CD062DBEE55DD9B65EC2A /* Frameworks */ = { + isa = PBXGroup; + children = ( + 1016EF046E46A37BEE8567F861919423 /* AgoraComponetLog.xcframework */, + ); + name = Frameworks; + sourceTree = ""; + }; + 8127F0939751EDB931CDB2C945875403 /* Frameworks */ = { + isa = PBXGroup; + children = ( + FE94E5E65AE2601BF6DC443A5C5144B2 /* WebP.framework */, + ); + name = Frameworks; + sourceTree = ""; + }; + 8196608455F8B9D6858794E4377D26AC /* VideoCodecDec */ = { + isa = PBXGroup; + children = ( + 4FC9EE28B03422683A48D7CE71567B02 /* Frameworks */, + ); + name = VideoCodecDec; + sourceTree = ""; + }; + 81F9EA3E6FD5E02A2FED860523EEF187 /* FaceDetection */ = { + isa = PBXGroup; + children = ( + 290B9E57B045B795F7623EC7FBC0CED7 /* Frameworks */, + ); + name = FaceDetection; + sourceTree = ""; + }; + 826258E2F41A704842DFD469C313A3E0 /* Resources */ = { + isa = PBXGroup; + children = ( + AC273F778E57C55001C3197B23B7BF66 /* MJRefresh.bundle */, + BD769B178C36278A102C5B37E74E8BF1 /* PrivacyInfo.xcprivacy */, + ); + name = Resources; + sourceTree = ""; + }; + 828CF186B28D77638D4CB20AEB21BBC0 /* Support Files */ = { + isa = PBXGroup; + children = ( + 5CE8F498500E97CEE4FAF754B750338C /* YYModel.modulemap */, + B5B4D189B02DA7C4E95C697B6F95821C /* YYModel-dummy.m */, + EDF8C14ADC3F4CF3EB333A7111631C51 /* YYModel-Info.plist */, + D67C687A64204C0818F7392D75329B77 /* YYModel-prefix.pch */, + 67FF0CF47B357F64347293E2BB8DCBF2 /* YYModel-umbrella.h */, + 8972D87C24A6C41D7E422C17EA620436 /* YYModel.debug.xcconfig */, + AB3029B1D6DB78EC56E31AD669C7D921 /* YYModel.release.xcconfig */, + ); + name = "Support Files"; + path = "../Target Support Files/YYModel"; + sourceTree = ""; + }; + 83190E311F9275CB782C00E9DE573BB8 /* DatePicker */ = { + isa = PBXGroup; + children = ( + 2008AD3DBA6144A4F2B2261111D8AEE0 /* BRDatePickerView.h */, + B6A6AC94FB0F9728EB722EEDE82ED258 /* BRDatePickerView.m */, + 44578ABEEBE1F4791F2C0D6AAA913313 /* BRDatePickerView+BR.h */, + CA7DAD293A40ABB3C0EF7B680D054ECB /* BRDatePickerView+BR.m */, + E022BE52E2CBA50EAA33B904EFECAE50 /* NSDate+BRPickerView.h */, + D02B90433D7B5F3B2ACEAC03D5CD20DD /* NSDate+BRPickerView.m */, + ); + name = DatePicker; + sourceTree = ""; + }; + 854C74E05C978A9DE46747673CE700E3 /* Support Files */ = { + isa = PBXGroup; + children = ( + 14EAD339EDD974C5708A827842C210A9 /* AgoraComponetLog-xcframeworks.sh */, + BB22CF2535044A0A5C300D31ECF18D68 /* AgoraComponetLog.debug.xcconfig */, + 4A0A2AFC2983CAE9A4C3F9AD7BDFC509 /* AgoraComponetLog.release.xcconfig */, + ); + name = "Support Files"; + path = "../Target Support Files/AgoraComponetLog"; sourceTree = ""; }; 85B3DDC48D85D99BF3C82DE6F02E8C1B /* TencentCloudHuiyanSDKFace_framework */ = { @@ -10164,6 +10602,40 @@ path = Chat; sourceTree = ""; }; + 86CB9D3F1344DFC34CC511FA39C6070C /* Frameworks */ = { + isa = PBXGroup; + children = ( + 0CE99C3F16B8FFC4F8B20C7EA2944513 /* AgoraVideoAv1DecoderExtension.xcframework */, + ); + name = Frameworks; + sourceTree = ""; + }; + 8704133608C66C999012B71C67D94077 /* Support Files */ = { + isa = PBXGroup; + children = ( + 2FFFCAD9E9632DB26E25DD641BABC990 /* Protobuf.modulemap */, + 5DB62198D391E68703BA2846D5C2CCF7 /* Protobuf-dummy.m */, + 91C6205A1443784459DC10D3043BE98E /* Protobuf-Info.plist */, + 8E76B5CE68CA5034BFADC21CFA3E1B97 /* Protobuf-prefix.pch */, + 29F3E5D98D3FABD7051D31672E414485 /* Protobuf-umbrella.h */, + 95A438E9583EC9367114459DB27631A0 /* Protobuf.debug.xcconfig */, + 26A118A10758C5A28B5E4AB39FD11B59 /* Protobuf.release.xcconfig */, + 91918C336CB4E3EAD7E5718A4CE3F59D /* ResourceBundle-Protobuf_Privacy-Protobuf-Info.plist */, + ); + name = "Support Files"; + path = "../Target Support Files/Protobuf"; + sourceTree = ""; + }; + 87098415178CC03502B5D76CCD5AE04A /* Bugly */ = { + isa = PBXGroup; + children = ( + 1FD3772C8A246B578BE4EB030071B268 /* Frameworks */, + 0D18BA9AFD3CE2962175AFC68FEB8E06 /* Support Files */, + ); + name = Bugly; + path = Bugly; + sourceTree = ""; + }; 8858ECAD8687D66A93DA93D99E7A5BEF /* Base */ = { isa = PBXGroup; children = ( @@ -10194,14 +10666,6 @@ path = UI_Classic; sourceTree = ""; }; - 88F4B5F5975756C9570F4D4043704361 /* ContentInspect */ = { - isa = PBXGroup; - children = ( - 6CB09F49DE5291EFB6A55318FF8B94B1 /* Frameworks */, - ); - name = ContentInspect; - sourceTree = ""; - }; 8A5B2F328761FE965B5AC5A99CEAA5CB /* Base */ = { isa = PBXGroup; children = ( @@ -10218,22 +10682,74 @@ path = Base; sourceTree = ""; }; - 8A8A3C89C9BEFA8F8F50486A39FA2160 /* AgoraInfra_iOS */ = { + 8A6382C98D5B61857D2F1BD629925A49 /* StringPickerView */ = { isa = PBXGroup; children = ( - 375859BF2C1F4E2D09BABD8AD0CF28CF /* Frameworks */, - 7DC1C1502D64075C7C6808B3FAF899C2 /* Support Files */, + E6D396D7C475FFCCE53A5F2AD5CD89B2 /* BRResultModel.h */, + 5E09CB1F8712CEBC8AF29845E3E094C2 /* BRResultModel.m */, + 064E03F699BC13C52E6EB1F6D130577B /* BRStringPickerView.h */, + CCBF64731105523C223CFAD2C3B593F2 /* BRStringPickerView.m */, ); - name = AgoraInfra_iOS; - path = AgoraInfra_iOS; + name = StringPickerView; sourceTree = ""; }; - 8BD6E9E0B082EF7F5887BBB77BE4E0E9 /* Resources */ = { + 8AA3FA01EDF14BB227E0B05D7F96350F /* Support Files */ = { isa = PBXGroup; children = ( - 9E549451B6BC8569943B89553A71DD2C /* YBImageBrowser.bundle */, + 1C58A2493448062EEB078E9E75FC5E00 /* YBImageBrowser.modulemap */, + 5A87E7D21E00C0521DD0FFAD245BDF34 /* YBImageBrowser-dummy.m */, + 04E7D28787C538821BED3763DF72984D /* YBImageBrowser-Info.plist */, + A64EDAA8F27518DD9BCA69758028DA0F /* YBImageBrowser-prefix.pch */, + F2D15662858FD437C6A400E9069E0C17 /* YBImageBrowser-umbrella.h */, + B7079B92C39DEFCD1A9B3BB71454276B /* YBImageBrowser.debug.xcconfig */, + 2F83F23B35D00B822AF31BD714997BEB /* YBImageBrowser.release.xcconfig */, ); - name = Resources; + name = "Support Files"; + path = "../Target Support Files/YBImageBrowser"; + sourceTree = ""; + }; + 8AF55E1DAD15740CED56C178581082E5 /* SVGAPlayer */ = { + isa = PBXGroup; + children = ( + 5BC824E6A93D482797447642F5D2CA1C /* Core */, + 9F75E02B7D6C9248919A25E110A79F87 /* ProtoFiles */, + 2FA346F31AEB4B50DAF20914FEF69895 /* Support Files */, + ); + name = SVGAPlayer; + path = SVGAPlayer; + sourceTree = ""; + }; + 8B5576C8562CCBDECAA13A0596B8FEFE /* SDCycleScrollView */ = { + isa = PBXGroup; + children = ( + FFABF4F4BC06FCC6D58B58BC4D845D34 /* SDCollectionViewCell.h */, + FF584313D7CD1613FC941ED1EF9D63A2 /* SDCollectionViewCell.m */, + 4C7A7AD3D79ABFF552B4AAEDBA5A9DCC /* SDCycleScrollView.h */, + 7DA03579B3320963B3E23FE8F282C770 /* SDCycleScrollView.m */, + 04F93B99373F84FB3CAC2DB23B5DADE4 /* TAAbstractDotView.h */, + FF204A05CB1AB49D5DEB4BA6464A401E /* TAAbstractDotView.m */, + 93E89987E1B5492FE72D12FFBF263D70 /* TAAnimatedDotView.h */, + C3173ED05775B7C9091125BBE55C87DB /* TAAnimatedDotView.m */, + 6ED6A5A48786AF8C96B4DD152146C3B2 /* TADotView.h */, + E693E4401A900A1D6F614D2499EACDC6 /* TADotView.m */, + 58C890266E241B152328C4CD2F9604F5 /* TAPageControl.h */, + CFF79233CB753D68E555DC8E3B25F755 /* TAPageControl.m */, + B34B9D4244B907E89430EFBB1D393221 /* UIView+SDExtension.h */, + 16A953B1489D93A6CAB58DF3660E50FC /* UIView+SDExtension.m */, + 46FE105E639328774525B05CBFFBF92A /* Support Files */, + ); + name = SDCycleScrollView; + path = SDCycleScrollView; + sourceTree = ""; + }; + 8BA162B85AAD47F997B025DB0DF00E98 /* JXPagingView */ = { + isa = PBXGroup; + children = ( + A60991AE2F5CC4BB6A07403D4240E2AF /* Pager */, + 204401A4339A443B33702005BF1C83F9 /* Support Files */, + ); + name = JXPagingView; + path = JXPagingView; sourceTree = ""; }; 8BD8D7E950B1525E82806A85D5A3FE49 /* CommonUI */ = { @@ -10248,49 +10764,12 @@ path = CommonUI; sourceTree = ""; }; - 8C2016C2F430EE69C5D4731431A38C53 /* NSURLSession */ = { + 8C45D19F889A2ABC801A10E803931D5D /* VQA */ = { isa = PBXGroup; children = ( - 4589F20EBA71C4A177A12B168241BAB4 /* AFCompatibilityMacros.h */, - 43E264E971DB51E34D30086005AF908E /* AFHTTPSessionManager.h */, - 45AC580ACA8F314CF2C9B9C00815D6EA /* AFHTTPSessionManager.m */, - 880DCA1E2F177241D82DC8ECDE4CAF3F /* AFURLSessionManager.h */, - 64A70131FA93859D2FE1A6201257A797 /* AFURLSessionManager.m */, + 1C0EF03D0BB39A755BCD53D5B0AA6C80 /* Frameworks */, ); - name = NSURLSession; - sourceTree = ""; - }; - 8CBA449221131750409516883FF3D936 /* Frameworks */ = { - isa = PBXGroup; - children = ( - 3DD878AFABDF8EBC09174F427CBE5B7D /* AgoraReplayKitExtension.xcframework */, - ); - name = Frameworks; - sourceTree = ""; - }; - 8CE81F74F1DE2F2B76321256AD028ADF /* AFNetworking */ = { - isa = PBXGroup; - children = ( - B16DE3CF846E72DA646B89524B14E8A7 /* AFNetworking.h */, - 8C2016C2F430EE69C5D4731431A38C53 /* NSURLSession */, - 26F4A0325E3757D93CF99F0750740209 /* Reachability */, - 12FB146E00509D5EEDE653C8F2AF5773 /* Security */, - 22628DB9690E96961A91CCC5EA9144EE /* Serialization */, - 6C8B123AB6106EBF2271188F83DC9C13 /* Support Files */, - 253BC4619E143A5FBEA5270F22A5D27B /* UIKit */, - ); - name = AFNetworking; - path = AFNetworking; - sourceTree = ""; - }; - 8DA19E086636346C9CC6241BD45A3EA9 /* Bugly */ = { - isa = PBXGroup; - children = ( - 5D4C8943ECEE78A0B438CDAA6D66A330 /* Frameworks */, - 1D5D84D9C14C152774223FB95ABFFC8E /* Support Files */, - ); - name = Bugly; - path = Bugly; + name = VQA; sourceTree = ""; }; 8DD8564A89536F7B69319B7F6A5388C7 /* Pods-QXLive */ = { @@ -10311,6 +10790,14 @@ path = "Target Support Files/Pods-QXLive"; sourceTree = ""; }; + 8E0CD54C2F55401D8F7A546ACD20087D /* Resources */ = { + isa = PBXGroup; + children = ( + 82D0B465906E5E076DB9061E7138AB4D /* PrivacyInfo.xcprivacy */, + ); + name = Resources; + sourceTree = ""; + }; 8E29B8AAC71F958E35F526424BEE92C2 /* Header */ = { isa = PBXGroup; children = ( @@ -10320,330 +10807,130 @@ path = Header; sourceTree = ""; }; - 8E894183EA55425E7C0856FF880F1A72 /* Protobuf */ = { + 8F43D9AB1CFDCA33904F150363BC2C80 /* QCloudCore */ = { isa = PBXGroup; children = ( - B42263C4FE1E2BE3EEAF9A95826D5E8B /* Any.pbobjc.h */, - BE797AD1F23CC52C95C35CD7E1CC7C54 /* Api.pbobjc.h */, - E4943D2D0B9FFEBA397DCCD362025CD9 /* Duration.pbobjc.h */, - 500ACEEF41D18EA3ABCE142BECD85504 /* Empty.pbobjc.h */, - 2CE1DD6113CA0FA4B6F46B949428AD90 /* FieldMask.pbobjc.h */, - 545B97ACBF0338EB6662C85DB3711CF1 /* GPBAny.pbobjc.h */, - 1FCEB5B1CE94F3E0C081CE12F3F86133 /* GPBAny.pbobjc.m */, - 6AC8605DB2F91055A98EDC9A4185FCE4 /* GPBApi.pbobjc.h */, - 8C9A54B670C67220C746FF0491A0690B /* GPBApi.pbobjc.m */, - EF2AEDAE9A213E867E8C5D7CFC957F67 /* GPBArray.h */, - 417112912F5D066486D4EF451CDF125E /* GPBArray.m */, - 94C75BB537A2078039EA8CFF221C5B77 /* GPBArray_PackagePrivate.h */, - A75BC77EB31709CB1D41E98777E3EF6B /* GPBBootstrap.h */, - 3B7223ABEB7A4441164C36487E964288 /* GPBCodedInputStream.h */, - F53E475EA8522DD60B3B44292EE1FBE1 /* GPBCodedInputStream.m */, - F14BBAA787AE34E19292BCB584EF6869 /* GPBCodedInputStream_PackagePrivate.h */, - A7EF03C1C38B5DAA7907D6512336BF89 /* GPBCodedOutputStream.h */, - F9BB944D6D5FBB6AB373CD16CDE70EDD /* GPBCodedOutputStream.m */, - 9AA7A4C3CF9EBFF26EC64B190F7D271B /* GPBCodedOutputStream_PackagePrivate.h */, - A0F68CEDC6273EF848D9C09B257C6262 /* GPBDescriptor.h */, - FFC4EB1C47258CFEE04214368FA1D0E9 /* GPBDescriptor.m */, - E34C20A667264D69BB2AD98EF3C16C1D /* GPBDescriptor_PackagePrivate.h */, - BBC1F5060599CCD3877037976AD18304 /* GPBDictionary.h */, - 9077684F9BA457B0CC80131BC2D3D790 /* GPBDictionary.m */, - 899F1FD672DE4DDA4CF8839564486D0F /* GPBDictionary_PackagePrivate.h */, - 04CEF05709246E123CA26B88CC2B0794 /* GPBDuration.pbobjc.h */, - AF867A3166A514494F5092E35E2FEE6D /* GPBDuration.pbobjc.m */, - D8AF1F119656673578F8444C271F2B2B /* GPBEmpty.pbobjc.h */, - 22711BFFEA064CD5FE6D3C22DBC9158D /* GPBEmpty.pbobjc.m */, - 69A27433FDA4E6C77747CB83F5A40E84 /* GPBExtensionInternals.h */, - 84DBD06EFCBEE0C5494F6F52798EFD94 /* GPBExtensionInternals.m */, - 1FC8955AE81C82455EBA2CD27CCDF355 /* GPBExtensionRegistry.h */, - CFC7F6F048271F8BF3C990B162401D12 /* GPBExtensionRegistry.m */, - 103BA56FB41C6802EBB399ADDBC15525 /* GPBFieldMask.pbobjc.h */, - C003BEE3608B633E918C90327DD4CE69 /* GPBFieldMask.pbobjc.m */, - 48AE9D7627E24D90FE62F6F652E514DE /* GPBMessage.h */, - 8CFA5283175C82344C3D2A141931554A /* GPBMessage.m */, - 0612460241DF4F2D09733683492856D4 /* GPBMessage_PackagePrivate.h */, - 8F0885D551896D4DBE9DA887B6221629 /* GPBProtocolBuffers.h */, - CAD76B76ED9FFA966995C405B47E305E /* GPBProtocolBuffers_RuntimeSupport.h */, - FD51339B5C0F83C53D659E77C3B1A32C /* GPBRootObject.h */, - CECBB213D69458631B4885D75F4DCC71 /* GPBRootObject.m */, - 999B45DE9163CA2BE626E067C0981D13 /* GPBRootObject_PackagePrivate.h */, - 1324A3F6F9214E457D18D6CADF834808 /* GPBRuntimeTypes.h */, - 85A8479E0BA3A2F315C5D568BB30B04F /* GPBSourceContext.pbobjc.h */, - 03193DBFE66AA5B27435EC7A79CD1188 /* GPBSourceContext.pbobjc.m */, - 41E1777D368E8B68ADAC7BFFAB3222C4 /* GPBStruct.pbobjc.h */, - 9A93869CEF592BE323C598BD2B5DB2FD /* GPBStruct.pbobjc.m */, - 45528AFC6ED47C8AAB7E9FCBD83BA0E7 /* GPBTimestamp.pbobjc.h */, - 44D5CF3C4D616174401BEF8CCEECF216 /* GPBTimestamp.pbobjc.m */, - 46559E75F1D464238EF82892A7601C22 /* GPBType.pbobjc.h */, - DA5720F010C721950F8B9403EEFDBF2A /* GPBType.pbobjc.m */, - E62FC92A2402198CAD267624467EBB81 /* GPBUnknownField.h */, - 3CC6D578DAE943369C7E725198632A3B /* GPBUnknownField.m */, - 902734325A3C7BE856EED2FF283B5BA2 /* GPBUnknownField+Additions.swift */, - 4D82ED4AFEFCB2B8BC40005C731E228B /* GPBUnknownField_PackagePrivate.h */, - 875088AA24FC04E68E1BA359484AA755 /* GPBUnknownFields.h */, - CC599E09B879E3AB6A5E0F01154C35C4 /* GPBUnknownFields.m */, - 1A88AD91A6FB86BFBBF07A36A5C85A1B /* GPBUnknownFields+Additions.swift */, - 608BE80B7637F08E2F1EB5719409AFDE /* GPBUnknownFields_PackagePrivate.h */, - 812AF80FE57C92C33FF74E5D5BFBA2E6 /* GPBUnknownFieldSet.h */, - 49EE0B8E8030962716DC77EE047C52D8 /* GPBUnknownFieldSet.m */, - 665747A59D8D999B6E0DBC6B726A5DE7 /* GPBUnknownFieldSet_PackagePrivate.h */, - 6D917E7C268683BBDB19CF1CA24802F2 /* GPBUtilities.h */, - B813480C42AEE8F8D9DE51F840E096F5 /* GPBUtilities.m */, - 6B1B643DEB1B9575913936C72467D795 /* GPBUtilities_PackagePrivate.h */, - 10BCBF5490F681E966574333DEB58FAC /* GPBWellKnownTypes.h */, - FD40C551F46673EDF0A2D2C24F073D6B /* GPBWellKnownTypes.m */, - C63FBC083681F24635FFABAE8D35CF63 /* GPBWireFormat.h */, - 4B419F69AB9F77AFCEFA32FD565D3F52 /* GPBWireFormat.m */, - 604B6177D7F790BBC99D79B61A10403E /* GPBWrappers.pbobjc.h */, - 954A6870C2CC210065883BAD3C0DB5E0 /* GPBWrappers.pbobjc.m */, - 78ED6BA2D05CA733DCFF4F9FD00420B9 /* SourceContext.pbobjc.h */, - 22213487E53AA83762A2083D3ADBA990 /* Struct.pbobjc.h */, - 67C1F9A015545FCBD8AB3570B08C9C92 /* Timestamp.pbobjc.h */, - CD946DD7720C99A2934DDA973009201E /* Type.pbobjc.h */, - 600187BCDCF365645E5F4451C958FAE9 /* Wrappers.pbobjc.h */, - F5506D04E387E2E86F0DC91FD7FA0EC0 /* Resources */, - B7284534D112AB1D992BA93D65D9D6BE /* Support Files */, + B1C39EA669FD5BDAD43672BB437B088B /* Support Files */, + 986D32FA349AA92545B63BA1C5570CC6 /* WithoutMTA */, ); - name = Protobuf; - path = Protobuf; + name = QCloudCore; + path = QCloudCore; sourceTree = ""; }; - 8FD7364A2B2E78346D96429D620BE701 /* Core */ = { + 8FD9F245D5A14DE83B1CDA41B1573172 /* Frameworks */ = { isa = PBXGroup; children = ( - 9EF9B43E5C6306C31F727D78C525E967 /* NSBezierPath+SDRoundedCorners.h */, - 268AAD8AB808C0CFBFA84207F5DA46E3 /* NSBezierPath+SDRoundedCorners.m */, - 472933F0C6E71E5D30CC84620F95933B /* NSButton+WebCache.h */, - 71AA17A9D1EFBC20860F669033D73E51 /* NSButton+WebCache.m */, - D8831485F25F7259BF2543CCE7F3C30A /* NSData+ImageContentType.h */, - A04D1E2D5C9D88AE64149598D9C7E62D /* NSData+ImageContentType.m */, - B1314C678FDD08FC0976C143FFB19582 /* NSImage+Compatibility.h */, - 15BBA74568D5A2FED38E97F745B8E748 /* NSImage+Compatibility.m */, - 19EF0D68B436BB55EB5138A59AD851AD /* SDAnimatedImage.h */, - 4BFCBC45D942B34D6947C2B92D59A048 /* SDAnimatedImage.m */, - 6754AA1C23E5AC36B71614E2A951674F /* SDAnimatedImagePlayer.h */, - AAC9D3A5A73A53CAABD58F8BE574835F /* SDAnimatedImagePlayer.m */, - CBFD4731301BA34D2EEC9562547D3752 /* SDAnimatedImageRep.h */, - 0C1C20BEC07C1B8B9468DDABFC999E0A /* SDAnimatedImageRep.m */, - 2B74B65AA07714AC14A8E9B86A3A4D3F /* SDAnimatedImageView.h */, - 4806E1164E2700B391CF8990E34B58FC /* SDAnimatedImageView.m */, - 14806CABC7CCFB326D24066E23E1F92F /* SDAnimatedImageView+WebCache.h */, - B9E86BFCEBE64215BCEABA540178ED6C /* SDAnimatedImageView+WebCache.m */, - 19892B4444E8A8E2B48DFB057AFF8C54 /* SDAssociatedObject.h */, - B8CF257FCD97F54FEC8ADBEE98239478 /* SDAssociatedObject.m */, - E1CD64760C2981521188C1014B317840 /* SDAsyncBlockOperation.h */, - 46412452CE6A9C4797694CAA1C11E49E /* SDAsyncBlockOperation.m */, - 16443CE5B196B2E7CB45F9871958260E /* SDCallbackQueue.h */, - B9B1E54D66B187A0C86E3F7D8B4F9033 /* SDCallbackQueue.m */, - 70264D7981AAA844BD90AB2E551A785A /* SDDeviceHelper.h */, - CAE3CED5E389DC50AEBBB1CC20C5CE22 /* SDDeviceHelper.m */, - 545BFAFF9A7B79F842EA72B5AF9B36C7 /* SDDiskCache.h */, - CAD0AD3068472F52FA8B2DB6A0B11FA3 /* SDDiskCache.m */, - 91BB89F0F1F8F5DCA244319672FBF412 /* SDDisplayLink.h */, - 0E945F1FA6B130694897A1BE189DC381 /* SDDisplayLink.m */, - 4D90E27A2371C9736D70DE7CDA769710 /* SDFileAttributeHelper.h */, - 62BA00937E80B01E5AA79C6A6E698958 /* SDFileAttributeHelper.m */, - 59F5F2FAE3795F71FA5EFFC57C0D422C /* SDGraphicsImageRenderer.h */, - 056366CA0E1CF32042B3F73384891C20 /* SDGraphicsImageRenderer.m */, - 4AFAE5AA756CAD7FA3E072BFAF4FDE90 /* SDImageAPNGCoder.h */, - 09F9197259B88F2C65A1CBE164EBEB7A /* SDImageAPNGCoder.m */, - 6A3832EB868F7E208911BFFA4A40B31D /* SDImageAssetManager.h */, - B769D82EDC972B8FD1AA80B222B81C75 /* SDImageAssetManager.m */, - 3A7B4DB4E685E9A79ED6D72C2E68D787 /* SDImageAWebPCoder.h */, - 7ED6DE7DE306C3C1789B1BBCF29BA18A /* SDImageAWebPCoder.m */, - D415E70E083DD16E2702B55402406756 /* SDImageCache.h */, - 892593E950280D9DF8D65B3C8B4F7A75 /* SDImageCache.m */, - BC7648150172AC0F908F548A663CB6C6 /* SDImageCacheConfig.h */, - 276EE6334CADB9FC101BF29F6E6E6C96 /* SDImageCacheConfig.m */, - 1C48DE11BB2002EE471F4BC6C1FE9B15 /* SDImageCacheDefine.h */, - E5F2C11258E35A5931012AA73EBE86CB /* SDImageCacheDefine.m */, - 3D57A82C4C9FC2CDB44E1501EE0A2693 /* SDImageCachesManager.h */, - CDF953BA0635ACD53ECC5973D2DB1F28 /* SDImageCachesManager.m */, - 1A21449F09A73A1E07B5EBA56EA816D0 /* SDImageCachesManagerOperation.h */, - D595FDB6AA04C3954C1C3772EE1F7EFD /* SDImageCachesManagerOperation.m */, - 6227D63813069B9CA267358C5B2E3D2E /* SDImageCoder.h */, - 5BD5FA8A96D9D23D9211395CCA8A4F9B /* SDImageCoder.m */, - 946D09B22E7BC35DB43AC9E37E3B45DD /* SDImageCoderHelper.h */, - 72C3D78C7D7352C6A56092BC76521B39 /* SDImageCoderHelper.m */, - 8B6F65CFB2AA3AA19676C6EC059CC8C8 /* SDImageCodersManager.h */, - 7A5DA90274FD948A4973F3E2AE5986FF /* SDImageCodersManager.m */, - 2DA7CD9088FBD27028D8FBB51DEA9E06 /* SDImageFrame.h */, - 6C7EC0BEBF4146846D1466985703C640 /* SDImageFrame.m */, - 39C1E2A4916B0F942ED8CB193963BB81 /* SDImageFramePool.h */, - 5BE4183EB9DA3DD05163547DECF0939C /* SDImageFramePool.m */, - 206CEEB7B03796F0D8BB1C23DE44714E /* SDImageGIFCoder.h */, - 4DC2564CCF916F42356626D53461094E /* SDImageGIFCoder.m */, - C007219D7B1CEE59C1658F1150239BE0 /* SDImageGraphics.h */, - D03E32DA9872F407D0A99E50C50BC378 /* SDImageGraphics.m */, - 43269D978DA1541584B10056E45D0F43 /* SDImageHEICCoder.h */, - 8272A08C8D4B1EC0BEC8912EA6C20E2F /* SDImageHEICCoder.m */, - 282AD344C37FE6C97BC95AB40478A1A6 /* SDImageIOAnimatedCoder.h */, - CD87398022E36EB461F2985C62E47454 /* SDImageIOAnimatedCoder.m */, - CC8D1E0C4EA0E4C4D195306669D101CE /* SDImageIOAnimatedCoderInternal.h */, - 12B4974D415230D74852002771EE0573 /* SDImageIOCoder.h */, - 687C34AE0B14C1228C5F3410106D95B3 /* SDImageIOCoder.m */, - 0D967903D66EE300DF9951A621BA3E28 /* SDImageLoader.h */, - E6202558041A58CC7B9AFD2C0265C2EB /* SDImageLoader.m */, - DFD30CFA347E29CC35C719E4CF4AAECD /* SDImageLoadersManager.h */, - 07E5424BE62D963DBEBB638AEAB4F0BE /* SDImageLoadersManager.m */, - 1006B55F4244FD34CAB86BE7FC557622 /* SDImageTransformer.h */, - 485A12720F358891E9F01B1CA163E2F1 /* SDImageTransformer.m */, - 42470DC08A578CD4DB5502A1520820F6 /* SDInternalMacros.h */, - 7F883178AAADE89662BD581D8C35CD3B /* SDInternalMacros.m */, - 07973103A0C3B933766D4185DF0E77B0 /* SDMemoryCache.h */, - C4C1E961E62D23A6E68D20E8D029B2B0 /* SDMemoryCache.m */, - F97A274287A7815903F4EBEA65A06146 /* SDmetamacros.h */, - 2D86FB5A237B0F886544C0A50D76D540 /* SDWeakProxy.h */, - F12FBE6E6A6063CB1B3C137B5151A2C6 /* SDWeakProxy.m */, - 8B0560BC7DAF461FE7A5358BF9C951D9 /* SDWebImage.h */, - 29E19CF0E6671A589604E325D5B5310C /* SDWebImageCacheKeyFilter.h */, - 7145A9E52E76E351982F1B65D68A1C37 /* SDWebImageCacheKeyFilter.m */, - 47CF136EC922D540479ABE8BCF255DA8 /* SDWebImageCacheSerializer.h */, - 48D571BF5420C75BE0AD2C3B1A4F1862 /* SDWebImageCacheSerializer.m */, - D8D5905F8689189CE798DC536D9F5C82 /* SDWebImageCompat.h */, - 949810BF2C56B33BC4CF2C2E7814297D /* SDWebImageCompat.m */, - 070E0A055E488907F8C6932CCBB200E4 /* SDWebImageDefine.h */, - B3F832F2B4C19E5C81F0E5E680F5D1F0 /* SDWebImageDefine.m */, - 4BC063D2D8E5C2709B7C87FFCB1F191F /* SDWebImageDownloader.h */, - 6C23B2C9C707367E2C83E6A3E81DBF27 /* SDWebImageDownloader.m */, - 7B9A035DE5D9C7806758DF7A4C66FC22 /* SDWebImageDownloaderConfig.h */, - 1B20C25F7405FD9E57B73C3A72FFFCB8 /* SDWebImageDownloaderConfig.m */, - 3C5889D5277E5E8A2309A95BE35876AD /* SDWebImageDownloaderDecryptor.h */, - 424BB3666066A1D28E7D5C0145146C1C /* SDWebImageDownloaderDecryptor.m */, - 11C3CA76E801CD8D06F15340328EBA04 /* SDWebImageDownloaderOperation.h */, - 2B4F0971B79B0676FF3440555D2CFF34 /* SDWebImageDownloaderOperation.m */, - 70929FA996E547213570225B829490E0 /* SDWebImageDownloaderRequestModifier.h */, - 19963A5B4C3FD728A2A2BE72D49BF3ED /* SDWebImageDownloaderRequestModifier.m */, - DE590FD7CC8FF3EADF495F5794FB93DD /* SDWebImageDownloaderResponseModifier.h */, - 718BDB2B6CFD39118DE1DFAAD3493EFE /* SDWebImageDownloaderResponseModifier.m */, - CB5255FAFE0C0E220F260AFA6D1522B1 /* SDWebImageError.h */, - B9915BD4B37F03DE533465064F22DC10 /* SDWebImageError.m */, - 31843514D4C8C6FD10CEE21341584643 /* SDWebImageIndicator.h */, - 23247EF611DA3AD6CF1F2A92738C3F3A /* SDWebImageIndicator.m */, - 03499B1247AA8DD708C0537896D52224 /* SDWebImageManager.h */, - 2CCD1172BFD800033BA099F286F8D0D9 /* SDWebImageManager.m */, - 2BBBFAFD7BAFB4C0BE7B296FE348C700 /* SDWebImageOperation.h */, - 035CC5F26C50DA8B90743281082535AA /* SDWebImageOperation.m */, - B22EBF3B312E8568505AE9F06CEFC25E /* SDWebImageOptionsProcessor.h */, - 0493754B105B7C0910C6CA206DAAF387 /* SDWebImageOptionsProcessor.m */, - B2189A238F3FB0C4263BA8966E8A50DD /* SDWebImagePrefetcher.h */, - 5BC35F28F4336A35C3B61935534DF8EC /* SDWebImagePrefetcher.m */, - 03A06D937AC97CA67B76FEA1780AB6B6 /* SDWebImageTransition.h */, - D47B53D2485EEE90A13BA750C09AEB9F /* SDWebImageTransition.m */, - 25E1131249ADEB8EA1D97251E12AB6EA /* SDWebImageTransitionInternal.h */, - 05A4D811FA189792CA10CEC69DF9007F /* UIButton+WebCache.h */, - F2F46C5C8F92C07FBF6A90CC3C4E9A65 /* UIButton+WebCache.m */, - D471A934451267DFEDEC0E9458C1B905 /* UIColor+SDHexString.h */, - 11720E63FF35CC267165CC3483387C66 /* UIColor+SDHexString.m */, - F244481D2BD70CA6DEE4F0A5D8891CA2 /* UIImage+ExtendedCacheData.h */, - 6742952E3C2B164C0F8981C4F188C493 /* UIImage+ExtendedCacheData.m */, - 6A2A9A4ACB15551AAE9304266126636E /* UIImage+ForceDecode.h */, - 63CDE53A29B0BF589F693E8CBAEBB2AF /* UIImage+ForceDecode.m */, - 3E5EFA07237AA26A316503568F4C829A /* UIImage+GIF.h */, - 66A1E8AAD93B967F27BA75C7980CA671 /* UIImage+GIF.m */, - C811656C4254591CAAD70ACF5AFBF597 /* UIImage+MemoryCacheCost.h */, - 6A2C6983B49B886DD6BF6A0B85E0B98C /* UIImage+MemoryCacheCost.m */, - D730BBEFDCB616A1B9384EB1AD574C0C /* UIImage+Metadata.h */, - 9F2A7C57E0AC18FA56339A30A4FAB05F /* UIImage+Metadata.m */, - 4C5296DC25AE3D290C724DAACD1CFEE7 /* UIImage+MultiFormat.h */, - 3DBE0C6CF51CE0D6BEFF411F116002F8 /* UIImage+MultiFormat.m */, - 0726377073C33B2E23DB3E823F8E20F8 /* UIImage+Transform.h */, - EBD2B361A3238AD29CDE2377784A4314 /* UIImage+Transform.m */, - 7F9BF7459E26D9B231CAE3CE61CA0701 /* UIImageView+HighlightedWebCache.h */, - 227482112708CF2FCE79D210B0E78238 /* UIImageView+HighlightedWebCache.m */, - B534CFECA8728CD97AC4FC484952BD83 /* UIImageView+WebCache.h */, - 1D9024CE53F8BB44B99BED9ADAADBEC5 /* UIImageView+WebCache.m */, - D7ED8152304F98A36150F6215E3B4E01 /* UIView+WebCache.h */, - A993269DE36889EE9D32B5065C219ABB /* UIView+WebCache.m */, - B04D2E8778CE407F9154ECA988D10CFA /* UIView+WebCacheOperation.h */, - 441C7D6A46B3AA228483B6520C2081C8 /* UIView+WebCacheOperation.m */, - E09918C381C316915AFA988D84FD5D35 /* UIView+WebCacheState.h */, - F83232DD6EB023866B86E5D84C8DC48F /* UIView+WebCacheState.m */, - BC7A59ADB97437B43CBEE408FC4B914C /* Resources */, + 2EBF6EA2FFA09ACB870E520287C9F0D5 /* AgoraFaceCaptureExtension.xcframework */, + ); + name = Frameworks; + sourceTree = ""; + }; + 904BA7B4426779A2A3F54F437874B320 /* AIAEC */ = { + isa = PBXGroup; + children = ( + 80DBA65CBBBDFCECC11B49B22A64A4A3 /* Frameworks */, + ); + name = AIAEC; + sourceTree = ""; + }; + 9126B1AEFC49E89A8782EDA1C42074FE /* Core */ = { + isa = PBXGroup; + children = ( + 8EDF4D4EC1EC60F6DB319427A41A087C /* NSObject+YBImageBrowser.h */, + 0A916049B8466E1D89EBB40ABBDE2B55 /* NSObject+YBImageBrowser.m */, + CD4C7F5C127CA356817BDE1ACCB4CEBE /* YBIBAnimatedTransition.h */, + 9BE9B48D28DCC4DBEE3A82849379B15D /* YBIBAnimatedTransition.m */, + 2ED6C53C04D78091379F540275FF3352 /* YBIBAuxiliaryViewHandler.h */, + 3E857A504F04C7C10AEC3565A2EF8736 /* YBIBAuxiliaryViewHandler.m */, + 03DBAEBAE10E3C3901F45B05656EB4DC /* YBIBCellProtocol.h */, + 5A02F9F5DA991A2B0285EBF37B13BE2E /* YBIBCollectionView.h */, + 5BE880167CD5D75B403798426828A97C /* YBIBCollectionView.m */, + 0E20FE5F3C2DB8183FD45A978EFA50AF /* YBIBCollectionViewLayout.h */, + 51EB6ECF9AA2E8F129D99BE57FF8DEA0 /* YBIBCollectionViewLayout.m */, + 45587A81AB0615660244646D82449E82 /* YBIBContainerView.h */, + 5E5D6DEC4D689A5CCD2A9B6945192CE4 /* YBIBContainerView.m */, + 0122BA4FE8C43FEAF4EDD0CC1EC9ECF1 /* YBIBCopywriter.h */, + 7615834E70CBB634BAFC347D66E70170 /* YBIBCopywriter.m */, + 5A4C7B30FB80EE6DA2BC816069ABC236 /* YBIBDataMediator.h */, + 29AED64486413DE1C23D030EBAA9D51A /* YBIBDataMediator.m */, + 8B8F9D4DF79C6BECDCA1C9D14D27DFE5 /* YBIBDataProtocol.h */, + 89A330FE3DA0F43B36B7988FB367518D /* YBIBDefaultWebImageMediator.h */, + 0066569E5E46D03747A9064F7836CD04 /* YBIBDefaultWebImageMediator.m */, + 9E53987150C1E4B2B7D70F51FD86A5ED /* YBIBGetBaseInfoProtocol.h */, + C53F402394FD2693DBC50E446144B0DC /* YBIBIconManager.h */, + C33E4AB992FF9A1D7C2AA70DC651EAA8 /* YBIBIconManager.m */, + D23C21717D45A802CA9C51BD698860B6 /* YBIBImageCache.h */, + 0F9B748B9523F955E93AFEE09C9EC2AA /* YBIBImageCache.m */, + 1CE1DA34852DAF66DAD591519DC73EE7 /* YBIBImageCache+Internal.h */, + EBBFFE545A4F4829A8AEFF12572DF506 /* YBIBImageCell.h */, + 1FC5268B7AC4632A410339FFDD20DF3E /* YBIBImageCell.m */, + EF2443999210E3224CA08A2708F3C289 /* YBIBImageCell+Internal.h */, + F0AD291BD2180AE0EEB6B5E15812E68F /* YBIBImageData.h */, + 92C1D7D3A305BC6D2EBEE755EB5A930E /* YBIBImageData.m */, + 465917E15105D6EF2BCCE90AF909E953 /* YBIBImageData+Internal.h */, + E39BBC08241C89A07EFF4D3DE68190A3 /* YBIBImageLayout.h */, + 845DF1D33860C77005E69FE07DBA2291 /* YBIBImageLayout.m */, + B9AA5F5F417330491DDCA3C808098DB3 /* YBIBImageScrollView.h */, + E228F0EF6F69D4BD4D3BC3D9F0C9022C /* YBIBImageScrollView.m */, + C7B13D01E3DCCAB0D2C37A8E95512A72 /* YBIBInteractionProfile.h */, + F7B9D5023F66AD40897A3FACAF7EE9C2 /* YBIBInteractionProfile.m */, + B70428F70E136CC5D04C08B674B64DCF /* YBIBLoadingView.h */, + 8621ABDAB8F588581CCF8E95882CFB98 /* YBIBLoadingView.m */, + C0F55F4CF1612600964678D6DB467ECD /* YBIBOperateBrowserProtocol.h */, + 063F11FE7EAFD9367C5FA4AC6ACD5C9B /* YBIBOrientationReceiveProtocol.h */, + 188FEDA05AA25015F0253CF3C2A1311E /* YBIBPhotoAlbumManager.h */, + 3EBCAA712AC9DD6F814BA94244BEA3AC /* YBIBPhotoAlbumManager.m */, + 417A37FD0F881B7B19B3D9D3CDCD19D6 /* YBIBScreenRotationHandler.h */, + 6E1CC47E5A93F5216740AD047F73418C /* YBIBScreenRotationHandler.m */, + 6336BA27A0A65F973C5488887D567474 /* YBIBSentinel.h */, + 5D8BE51E1B0036FE1F123834CEEBB13F /* YBIBSentinel.m */, + F904CF4CD5F6A789799C4C2865B463BE /* YBIBSheetView.h */, + 7550D182E44956C61ABC5FDD0196940D /* YBIBSheetView.m */, + D2760843D551D0BD6CB6EE2A8F604376 /* YBIBToastView.h */, + F879360912F8C4F6C238888A531D504D /* YBIBToastView.m */, + A37B614CF84CCD73E5801E821D21B28F /* YBIBToolViewHandler.h */, + 0BAE364C0ED239A588749ADAB7F2593F /* YBIBToolViewHandler.m */, + C12F4F59F31062A2EA18468431CB2C5D /* YBIBTopView.h */, + D6B2DF963D12773BFEABC3276B469599 /* YBIBTopView.m */, + 6EF3DB55129CE8E6AC2242B6C689909B /* YBIBUtilities.h */, + 01F116E41F30A1BEB3F8B16782869C6C /* YBIBUtilities.m */, + A3B1345579B77EC14E3A5F3B4E84A4AA /* YBIBWebImageMediator.h */, + 2D47EF12A03D7398C37784DF392ACDF6 /* YBImage.h */, + 773645E1AF35F14E2778E340F7BE3033 /* YBImage.m */, + 236FC77C07EFAB2D511A65D97C27EBD2 /* YBImageBrowser.h */, + 71CF3583ECAC5937DB2B422D8EB4C3C3 /* YBImageBrowser.m */, + 27939F811894E4852B3BBEFB91CADD90 /* YBImageBrowser+Internal.h */, + 31928EFB2114E4672EFCA3B925B522EE /* YBImageBrowserDataSource.h */, + 65A64F7169695A769517A54CBEF11E8F /* YBImageBrowserDelegate.h */, + 9F315281C50A2D97268EEBDFC8D35C30 /* Resources */, ); name = Core; sourceTree = ""; }; - 90239B734A3CB0D7D1099180D8A2E974 /* WechatOpenSDK-XCFramework */ = { + 91B900BBA96F456ECB41DFFB16E05763 /* Resources */ = { isa = PBXGroup; children = ( - 277E55735D972617938C6025B8EE8003 /* Frameworks */, - FA5973D33EBE77644BDBD8F1A347D2D6 /* Support Files */, + 0F0C9ABF667C40EF3A478D191CE00BF1 /* PrivacyInfo.xcprivacy */, ); - name = "WechatOpenSDK-XCFramework"; - path = "WechatOpenSDK-XCFramework"; + name = Resources; sourceTree = ""; }; - 90FBF99C875C00354CE4C26DA4FE92F1 /* Support Files */ = { + 932EA7608F9A64533A7817998F1723FB /* ReplayKit */ = { isa = PBXGroup; children = ( - 05ADA054B8F8B2E623C90509D886840E /* YBImageBrowser.modulemap */, - 3B408488BE85B0EE63793A214141A13F /* YBImageBrowser-dummy.m */, - 2195192E0EB44905D32CD9ADF59CC941 /* YBImageBrowser-Info.plist */, - 9CD35131F72D0A0D299DD4A4B1CA1F33 /* YBImageBrowser-prefix.pch */, - 60E714F82EE222A0F63630D61B959190 /* YBImageBrowser-umbrella.h */, - 44FA33DCAC56187B31EF9632388CC99F /* YBImageBrowser.debug.xcconfig */, - 5446AE4B6075291D7EE3AB7F5B6B413F /* YBImageBrowser.release.xcconfig */, + 45CEE62C5E2DC68A9B151B02FAC44D5C /* Frameworks */, ); - name = "Support Files"; - path = "../Target Support Files/YBImageBrowser"; + name = ReplayKit; sourceTree = ""; }; - 91234D00DDF9EAA87F0FE31F441F906C /* IQKeyboardManager */ = { + 93D646B07457CA3515378F69D334B3E7 /* QCloudCOSXML */ = { isa = PBXGroup; children = ( - 6F0DCA619161F7A82D0ED59EE40C44D8 /* IQBarButtonItem.h */, - 2ADAD99B44741DF3A1CA3BDD5AF03775 /* IQBarButtonItem.m */, - EA8772B0615DCC38C15FD2F5498E6157 /* IQKeyboardManager.h */, - AD9C1156D65123703105C7424A2799C5 /* IQKeyboardManager.m */, - 1ADB21FD1AACA89F1FB5A6D577CEE0A8 /* IQKeyboardManagerConstants.h */, - D56D35B4F308B3FB671479609357BEA3 /* IQKeyboardManagerConstantsInternal.h */, - 431702E6F18B8C98A9A6B60A43B4E9E1 /* IQKeyboardReturnKeyHandler.h */, - 9E71376EDE6C27D72848F85D2A2DDB92 /* IQKeyboardReturnKeyHandler.m */, - 06DE3814E457DBAE1243F555A99E0900 /* IQNSArray+Sort.h */, - A9F6F2F5534727607C323AACBB3B8485 /* IQNSArray+Sort.m */, - 1CF9327BF7C88C0B6AAF3178DA04CC51 /* IQPreviousNextView.h */, - CD3401A3226DCB11E15899A01C463A56 /* IQPreviousNextView.m */, - 2B1455620F687F6DFE9E1EAA52FEBBD0 /* IQTextView.h */, - A4C45C623F73AE83F13B0AA7910263B2 /* IQTextView.m */, - 1CD8647F3F770C4C44B6909BA049DD1D /* IQTitleBarButtonItem.h */, - 31FC171CB8FC2E31CF537B21BB1FF95A /* IQTitleBarButtonItem.m */, - DC8DEBA0B938C2334D6AE10B56D65448 /* IQToolbar.h */, - D574930237D0B53170786DC8F3DF2FBA /* IQToolbar.m */, - 3053110246C5E8573DD046F41040C699 /* IQUIScrollView+Additions.h */, - E71B621E3EBC3CC09FA8F9E51EB8D80B /* IQUIScrollView+Additions.m */, - C007B24BBDAED66926E8B22A398FE52D /* IQUITextFieldView+Additions.h */, - DD726CADA9E7CF526575271D5B097352 /* IQUITextFieldView+Additions.m */, - 8F2EF24CADB69C8A3AEA7A8FE89F95E8 /* IQUIView+Hierarchy.h */, - BE8A3BA93CE6AF649E5A8BFE619067E1 /* IQUIView+Hierarchy.m */, - 93A0F6F8690822149BE632E155F778FE /* IQUIView+IQKeyboardToolbar.h */, - 3C8BE30F840B83DB35EC45D0BC727A37 /* IQUIView+IQKeyboardToolbar.m */, - 2F6B2E7D27F5FC0A99F93B178E564E02 /* IQUIViewController+Additions.h */, - 067E849D32A7BD0C279F2CCD97C22742 /* IQUIViewController+Additions.m */, - 6409548D29E4B0543A3B9527CB4F3A8E /* Resources */, - 94B4DDE2568ECE0DE48FBBC2773CBDBD /* Support Files */, + F2D6475B18DBD3E3D41F43524B3B618F /* Support Files */, + 0188B3A4FDFF17D790F330BB69E90406 /* Transfer */, ); - name = IQKeyboardManager; - path = IQKeyboardManager; - sourceTree = ""; - }; - 92A67CB1B929554F0F2E61F3988258BD /* VideoCodecEnc */ = { - isa = PBXGroup; - children = ( - 741AB910A35543B3A6B3D784464033D9 /* Frameworks */, - ); - name = VideoCodecEnc; - sourceTree = ""; - }; - 92D5E252C8E32F84C197EBFCD1EAEF85 /* Support Files */ = { - isa = PBXGroup; - children = ( - 299C4742BACC5887D7AF93915D0AB83B /* ResourceBundle-TXIMSDK_Plus_iOS_XCFramework_Privacy-TXIMSDK_Plus_iOS_XCFramework-Info.plist */, - D710A177F41CF409EED441B058187584 /* TXIMSDK_Plus_iOS_XCFramework-xcframeworks.sh */, - 0A069424C6F4B84840CB9A263F727E07 /* TXIMSDK_Plus_iOS_XCFramework.debug.xcconfig */, - 9AF4ED464D26156395288C7B3BEDD9C9 /* TXIMSDK_Plus_iOS_XCFramework.release.xcconfig */, - ); - name = "Support Files"; - path = "../Target Support Files/TXIMSDK_Plus_iOS_XCFramework"; + name = QCloudCOSXML; + path = QCloudCOSXML; sourceTree = ""; }; 9401BD566B553CECC43DFA73DF389A01 /* BaseCellData */ = { @@ -10666,113 +10953,316 @@ path = BaseCellData; sourceTree = ""; }; - 94B4DDE2568ECE0DE48FBBC2773CBDBD /* Support Files */ = { + 952339C6DDDAADB1D4582AA6E3F2C5FA /* Basic */ = { isa = PBXGroup; children = ( - 0A4BC16A58122FB85FBCDD66374A9FA6 /* IQKeyboardManager.modulemap */, - C1E3B3294A9C29005A26C65C8DD408F3 /* IQKeyboardManager-dummy.m */, - 54A3E4A0BA81ABE860F0F310C7E16747 /* IQKeyboardManager-Info.plist */, - 788309C88B7C6CCEE0B1A6F66BAFA25F /* IQKeyboardManager-prefix.pch */, - 27A74E8E605B833398217C7585B54D30 /* IQKeyboardManager-umbrella.h */, - BA5624B6B53B6AAE7EBD213B04A574C6 /* IQKeyboardManager.debug.xcconfig */, - 0EA505AAD149644608E5E9EFC567CC5F /* IQKeyboardManager.release.xcconfig */, - 3583F9CDC8596CAF010268BCF510CA18 /* ResourceBundle-IQKeyboardManager-IQKeyboardManager-Info.plist */, + 54EC05DDCA801E98E2D6B33852A50597 /* NSBundle+TZImagePicker.h */, + 4FB0259B9872C6E35B0CA86EC698BD30 /* NSBundle+TZImagePicker.m */, + 53FC59E8871EFCA8BDDB19867B4DA92B /* TZAssetCell.h */, + 1F859E2210DE47D702E8681BA4105ADD /* TZAssetCell.m */, + F1AFDF65630C82C9602A85EC64FA9479 /* TZAssetModel.h */, + C4371CCED5E31576E5B0DD6CAF360FA8 /* TZAssetModel.m */, + 9089C138119CC3A3E207FC6E44DF7883 /* TZAuthLimitedFooterTipView.h */, + E0457961BED118ADEE3972EE368A7C27 /* TZAuthLimitedFooterTipView.m */, + 771850D0B1CA7B6E4AD0F9C1D43381E1 /* TZGifPhotoPreviewController.h */, + 316F4CBFD242760840B0046811B6EDA6 /* TZGifPhotoPreviewController.m */, + A326A8817A27E8B1B6A3F303113D0899 /* TZImageCropManager.h */, + C9097DF320AD6854D0D1730AC9642B32 /* TZImageCropManager.m */, + 06C7ABE6CC45CFDC6591F96A0C87662F /* TZImageManager.h */, + 717B81C5679992AB0C1198CDCD49EA60 /* TZImageManager.m */, + 579AC723AA8FCDB6AA00696A86318F7B /* TZImagePickerController.h */, + 12DB7C639DA744A1B2B62DF0569D27B5 /* TZImagePickerController.m */, + F3EC070A45B19821425FB4FC62B2B342 /* TZImageRequestOperation.h */, + B2390AC5CF1382F055C7BBB7735FB1C7 /* TZImageRequestOperation.m */, + 3E87DB6ACFF482D7B2365EFA82074E9C /* TZPhotoPickerController.h */, + 8742A82B8F18D5E7870DAF2CC7C4F5A7 /* TZPhotoPickerController.m */, + 7471DE218C1C144E6BFEA24AFEE27EDC /* TZPhotoPreviewCell.h */, + 133E941E19269403FDB94954342B351E /* TZPhotoPreviewCell.m */, + 3CE9A3A6D92E62A399341821737EDBC8 /* TZPhotoPreviewController.h */, + 765783176C474AD8B7B9B46B80ABA9DD /* TZPhotoPreviewController.m */, + 4F2EAB0C4650E7AF59DA1A14BC9DB18E /* TZProgressView.h */, + BB2BA76D5803E39A8FF2C99711A62EC0 /* TZProgressView.m */, + 30D725B5B1C3152F5DB42BF6D2B60526 /* TZVideoCropController.h */, + B3F8EF9485DEC55AA942156C83C2120C /* TZVideoCropController.m */, + 2BE918035921F9F60C61DE5B61B27A36 /* TZVideoEditedPreviewController.h */, + A0FB4D55F858D76463B34428D6E124A5 /* TZVideoEditedPreviewController.m */, + 497E462742C80F125C25E5968C7986D1 /* TZVideoPlayerController.h */, + CEE3C4466188D2B0AFE31D639BFE683C /* TZVideoPlayerController.m */, + 2CF0548A02A55E4C627CD7F357EF9994 /* UIView+TZLayout.h */, + 1593910178D38A66B74B5C24944CBECD /* UIView+TZLayout.m */, + 4BE3D3770FA8DAFB36821CDF0917F07F /* Resources */, ); - name = "Support Files"; - path = "../Target Support Files/IQKeyboardManager"; + name = Basic; sourceTree = ""; }; - 94F75105974614B9C5AB7E9D5CAF00CC /* Frameworks */ = { + 9578587E21E66877DC2EA8D93688BA69 /* SSZipArchive */ = { isa = PBXGroup; children = ( - A47125A5FE0EFA36BB730F3E2431DBBA /* Agorafdkaac.xcframework */, - 6F3B4FFCD07E8CD6F0997E1D8AA6B060 /* Agoraffmpeg.xcframework */, - 1FC3AF7E7065298F07CF881EB71F6743 /* AgoraRtcKit.xcframework */, - 7895CD442571FE22BF53128A7AC6A6D4 /* AgoraSoundTouch.xcframework */, + DBDDFAA999A99ED3F54264CAD99C5828 /* mz.h */, + 1A9DA6C06786C42A34745E252318F852 /* mz_compat.c */, + 7E9F1FF9DD117F796BE188AD8D9701A9 /* mz_compat.h */, + ACAA04DF49E064B429EEDA8898EA38C6 /* mz_crypt.c */, + 82A74F33715923995340A1B73FB38DC4 /* mz_crypt.h */, + 54CD88DFDB3F87ED69A9DF1B163663EA /* mz_crypt_apple.c */, + 554FA0F746FB80A9FE0D7A9201FD49B1 /* mz_os.c */, + 2D55E9217F1D871EE1FA275A810596AC /* mz_os.h */, + B032C540A8349640C0FDFBDCB6723F98 /* mz_os_posix.c */, + 9BDB11E404E29F0239331E5574C73B3B /* mz_strm.c */, + F99C7AD3D5187E3F9FA001BE3573C9BC /* mz_strm.h */, + 1427B961E3A5BA3434EDF22E7C734D31 /* mz_strm_buf.c */, + 4806A37ADC8E1AFD2D6602A0D52A54F9 /* mz_strm_buf.h */, + AE98678D412A6B7DE782583556482E18 /* mz_strm_mem.c */, + BA2C6FBDA88DFCD94CDF34B9CC6B5B8B /* mz_strm_mem.h */, + E692E5A4ADDC3B8051B81F53EE697149 /* mz_strm_os.h */, + 0333F7E5E59B81B75C71256D1E1A8BBD /* mz_strm_os_posix.c */, + 605DDB370CA419BC1C7BDF52982DE3C5 /* mz_strm_pkcrypt.c */, + DB49D7AF524858A12FE2F7D542ABD60E /* mz_strm_pkcrypt.h */, + 3DDCB02354376548FCA283EA4CA38124 /* mz_strm_split.c */, + 4A65640EDCF8A341B1C6F8BE8351E673 /* mz_strm_split.h */, + 8E039A8E9F100D07647F4967C09F2910 /* mz_strm_wzaes.c */, + EBD0F5528D089B8DFC408C64AB16CF9A /* mz_strm_wzaes.h */, + 3EF1087DC4E07D930E9F64123948E480 /* mz_strm_zlib.c */, + 29E55AD78C94C23BE35748AFED72216A /* mz_strm_zlib.h */, + 475515E230E6437FDA8F8391F5A38403 /* mz_zip.c */, + E0BD1F678701DC08BABBD2969B0D5B1A /* mz_zip.h */, + C2ED0C934174CAE9C38C71D4CB9A9BA5 /* mz_zip_rw.c */, + 1FD47CF6F11864745940F976B14CC857 /* mz_zip_rw.h */, + 510CE074799D6F1B2FAE69B11D670BE6 /* SSZipArchive.h */, + 8884A54CC62EA704007A7C723CFD1665 /* SSZipArchive.m */, + 0F73B9A6B621D23A3C2DE4A36E856E3B /* SSZipCommon.h */, + 513C0A6E6774AB5C5A27949D53C8E9E7 /* ZipArchive.h */, + 1FAEA9DEF6B2D379FA39F4608DB0E2A6 /* Support Files */, ); - name = Frameworks; + name = SSZipArchive; + path = SSZipArchive; sourceTree = ""; }; - 9543D6932ACD856DFCAC9CEEBC5DC5CC /* AIAECLL */ = { + 967A5998930663CA28BCEBD76F4FCB15 /* Resources */ = { isa = PBXGroup; children = ( - 2AB45A4D36DFD5919E7C261E04A34020 /* Frameworks */, + C25A2F5175440A6A656FDE590F024550 /* BRAddressPickerView.bundle */, ); - name = AIAECLL; + name = Resources; sourceTree = ""; }; - 967B1AC496626D43957E92C215954D95 /* Support Files */ = { + 986D32FA349AA92545B63BA1C5570CC6 /* WithoutMTA */ = { isa = PBXGroup; children = ( - E92F2F8136954E0785B95B616359327A /* YYModel.modulemap */, - 682A112D8B7ABC19F65496559D45F6E9 /* YYModel-dummy.m */, - 1CFB72C52D3A20B7F2E09BEDA45ED8F8 /* YYModel-Info.plist */, - 0064AF095F0D698E5FCAF4A97098CBCC /* YYModel-prefix.pch */, - 43C28D551C16612543B216EC60A29660 /* YYModel-umbrella.h */, - CA999F84D449AF8557864931035A1ED2 /* YYModel.debug.xcconfig */, - AACC3831A9F835FDBDFD8EFE21B2E9FC /* YYModel.release.xcconfig */, + 2BB94DACB617D439CD0FAE2DE00EC0BE /* NSDate+QCLOUD.h */, + 0647C4695E12F486F60B14634B9C2661 /* NSDate+QCLOUD.m */, + EF92451F14AB433813C2B79BB991ED8D /* NSDate+QCloudComapre.h */, + 020ADF3725407E5743290A57E877F690 /* NSDate+QCloudComapre.m */, + 4FB9ED5CF4B69C84A0B8EFA08054C3D8 /* NSDate+QCloudInternetDateTime.h */, + E276FA7218F50593335C26AA37A9A7AF /* NSDate+QCloudInternetDateTime.m */, + 84F86C82AB812ED3A00ACB3FC4D5F1E9 /* NSError+QCloudNetworking.h */, + A9C922E189897BDF10AF0987565B9277 /* NSError+QCloudNetworking.m */, + 5E5DD15436091CA4AE1092B904799916 /* NSHTTPCookie+QCloudNetworking.h */, + B7431A41094D0C01BEA07A2A2C43DCE6 /* NSHTTPCookie+QCloudNetworking.m */, + 14618BAE422652F257E80A9339F7B3F5 /* NSMutableData+QCloud_CRC.h */, + 5C74512A9EC30518FADD1B3ECAB2C27C /* NSMutableData+QCloud_CRC.m */, + CC73B0105364E58A9EFDF2644247EEC9 /* NSObject+HTTPHeadersContainer.h */, + 7B4640EBC24552EA6D19B590EC17005D /* NSObject+HTTPHeadersContainer.m */, + 57F3287EB8E962EA0BE79F87076D6CBA /* NSObject+QCloudModel.h */, + C955ACD5B6F9A8EBD41DDBF4CA3436B0 /* NSObject+QCloudModel.m */, + 54BF9B7902D6B1DB574ED8E8CA3C30DE /* NSObject+QCloudModelTool.h */, + 700D9F45DD60B4A13E98A83AAFBDE938 /* NSObject+QCloudModelTool.m */, + 5AA52D27748E77DE70821D23A3D86E93 /* NSString+QCloudSHA.h */, + 51EA6CB8856C050BCD9287E3F892CAC9 /* NSString+QCloudSHA.mm */, + 6E78B3D3666EAECB485A34F58F88CB21 /* NSURLRequest+COS.h */, + D0873B00FF4A1B50B350980FED12AE7E /* NSURLRequest+COS.m */, + 9CEAA6D4BE1912D961E2FB7DFE47397B /* QCloudAbstractRequest.h */, + CAA846B08517159F1B9AFA67795013D3 /* QCloudAbstractRequest.m */, + C3E38BFE6C28CCF1198E02D9BB9FC3E7 /* QCloudAbstractRequest_FakeRequest.h */, + 78181E620223E59062D99CF2CE56EA5D /* QCloudAuthentationCreator.h */, + 6503BAF1C6BD6DE4B2A9C92F451868BF /* QCloudAuthentationCreator.m */, + 3D53F42BFA6BF31AD142C5117BB2CD10 /* QCloudAuthentationV4Creator.h */, + AE3B69019F2C2B619A91B7A1E9A91EA6 /* QCloudAuthentationV4Creator.mm */, + B30B6988DDE2F166062EAC02A14CD96B /* QCloudAuthentationV5Creator.h */, + 9128D7877A6A305E46EC7D3A2B092BBD /* QCloudAuthentationV5Creator.m */, + 74EB775AD342740E22D7202CF44739C7 /* QCloudBizHTTPRequest.h */, + 65A9BD6BC6509EAC9B75926E5C23C815 /* QCloudBizHTTPRequest.m */, + 42E9299398EEF93DC318C686625437D5 /* QCloudBundle.h */, + 7ECB13CEA7C57C83436F9B033C82B395 /* QCloudBundlePath.h */, + A89977EA2E3241F989DC4BBC74835762 /* QCloudBundlePath.m */, + 54D1057009A2FE4069E1C199BCBF7C28 /* QCloudClassInfo.h */, + B8774079A41F3B0A8535EDA4B2D90E8B /* QCloudClassInfo.m */, + B814FE7579B6E29BCC634F44EFE75BBD /* QCloudClientContext.h */, + FC1DF0BC5184945C1CF0AFDB36051E1D /* QCloudClientContext.m */, + E0D53186B5B8533612EBBA00926B2FE7 /* QCloudCLSLoggerOutput.h */, + 42DF17540226A843A3FBDBDD11A33387 /* QCloudCLSLoggerOutput.m */, + 796C040FFBED8EDA555E335E388F7C12 /* QCloudConfiguration.h */, + F7DD294F8030E33AD9247C7EE8210884 /* QCloudConfiguration.m */, + E409E85F125AF2F8DF9E7B8DEC0373A0 /* QCloudConfiguration_Private.h */, + 059219951504E913078712192BF5AEF2 /* QCloudCore.h */, + 2366CE60ED206FA9E103640EBEF8EA66 /* QCloudCoreVersion.h */, + CBBB3E9EF0DEE2D12719945345EB7E5A /* QCloudCoreVersion.m */, + 8266B86609E6771A6370B1F8673F4827 /* QCloudCRC64.c */, + CF932E20F871204E5F07D3F80869C5D2 /* QCloudCRC64.h */, + 2C23F9EBD9AFBABB9B38B9D789CE1A91 /* QCloudCredentailFenceQueue.h */, + 6D9399244799CCB26A1F65654F0E913F /* QCloudCredentailFenceQueue.m */, + 6D0835A5D318BFF6B0D82EBEE3D2D88A /* QCloudCredential.h */, + 3D6F7385C05D83E3F9FF3CC073E76B8D /* QCloudCredential.m */, + 17A930B3262C6C80EA4BDDDAF7256495 /* QCloudCustomLoader.h */, + B595928CE760ACED587ACBD354A996E5 /* QCloudCustomLoaderTask.h */, + E5A96B75D9BDE7780BDB2E8002A68AA7 /* QCloudCustomLoaderTask.m */, + F4D3CF3A5AC1C97E056709D5B1B5C06E /* QCloudCustomLoggerOutput.h */, + 8994BC48961600CEB917CFE08DF260F6 /* QCloudCustomLoggerOutput.m */, + 31D6A899A2F22D73E42C4AFF53B6646D /* QCloudCustomSession.h */, + 3F53B9667F1CFB1CC3C6E326A1E115A4 /* QCloudCustomSession.m */, + 427D6B6141C02621647A5630C27D724E /* QCloudDomain.h */, + 5DA7FB4A463B745AEEE150F7D5826337 /* QCloudDomain.m */, + 2CDA66414E081105E530FA690DE42E78 /* QCloudEncryt.h */, + A865E990B35FB6B509984027BE08F592 /* QCloudEncryt.mm */, + 528653073F6A18330DE69AA47535E0CF /* QCloudEndPoint.h */, + C9FB1986F4BE1CF8F11AE763240D2E95 /* QCloudEndPoint.m */, + 2C7383E4D223791146E5FFE99A9D3C81 /* QCloudEnv.h */, + 1E4D01471C7BA05B3A00A0FC471A0BF2 /* QCloudEnv.m */, + 21CD9146FF1328867F9C45C25E0E53CF /* QCloudError.h */, + 94F066A7E04C103261B7E99EEC47E974 /* QCloudError.m */, + 7E6D8C17D7EFFE59B3E79D8BBD2DD07C /* QCloudFakeRequestOperation.h */, + 7490703FEE0BF75E32A17CB702EACF40 /* QCloudFakeRequestOperation.m */, + B453E2E3D8C067CE7A24ED9EB5F1E439 /* QCloudFCUUID.h */, + 70EDCCD8EE5E9D56D04A4CDE52E217A8 /* QCloudFCUUID.m */, + 2ACC6735D7D46C3BC2A4291B6636D2D4 /* QCloudFileLogger.h */, + 9BB3A9AA14AB5DF7B0B2B548200126AE /* QCloudFileLogger.m */, + 6C10AE388C2BA01DAA2F0CD6469EE068 /* QCloudFileOffsetBody.h */, + 48690F4654CC6797136C23CDB420F510 /* QCloudFileOffsetBody.m */, + 775560D20105CB51E7EF7E299897C02A /* QCloudFileOffsetStream.h */, + 51D0491B8DC06AE5E614B4D37CAD6F90 /* QCloudFileOffsetStream.m */, + A5A4DEA77CFABE5F22D7697BEB044ABD /* QCloudFileUtils.h */, + 3B2A9C92B1C203189E192C03AF2AB8EA /* QCloudFileUtils.m */, + 0789DEFD618507613CFEF78AC06D3527 /* QCloudFileZipper.h */, + A65514043646900CD20F454DBA2106F8 /* QCloudFileZipper.m */, + A0A6BF44469A53B30A9D29E8B75563F0 /* QCloudGCDTimer.h */, + EA2215D9AD8C51079F9D11EC84FBAFBC /* QCloudGCDTimer.m */, + C16B9711622C2F8C8ECE8C9128B040FD /* QCloudHosts.h */, + EE43C496351E428193836DDC7DAF36AC /* QCloudHosts.m */, + 9B654199114861BA650381E43DD5E10B /* QCloudHTTPBodyPart.h */, + 02C774AEDD8E08E9846E154495C38CB6 /* QCloudHTTPBodyPart.m */, + 3922C9F377B494EE8CB80F8AFC076B4B /* QCloudHttpDNS.h */, + 6734658196202E3C0BC0728BEE573A98 /* QCloudHttpDNS.m */, + 14B471E238C81B6B3B17BCADB845A327 /* QCloudHttpMetrics.h */, + EDD1CB209F65EDFF312B9A803F98DE95 /* QCloudHttpMetrics.m */, + B7785600CA1CE726B540619F36C210A5 /* QCloudHTTPMultiDataStream.h */, + B704460D3FE367377F547A4693C164DF /* QCloudHTTPMultiDataStream.m */, + D3570A7EC59D075D85838481B4558A30 /* QCloudHTTPRequest.h */, + A53DF9C950F0AD538A15FCFEAC3A99CC /* QCloudHTTPRequest.m */, + 97BA55813AF3F0187E2A44C2CAEC0B25 /* QCloudHTTPRequest_RequestID.h */, + FAE7DECC7BFF312884F8FE74337F1DDC /* QCloudHTTPRequest_SessionPrivate.h */, + F0702474156FAB94A2529B7D779D0F44 /* QCloudHTTPRequestDelegate.h */, + 963582D9879ACDC3E657D057454E7CE1 /* QCloudHTTPRequestOperation.h */, + AF957DE788B58BA05F425A7EA2790102 /* QCloudHTTPRequestOperation.m */, + 89795919B1994307C83B553A8DCC073A /* QCloudHTTPRetryHanlder.h */, + 69DBB5682495D2343EDB5BBA33EF8EA9 /* QCloudHTTPRetryHanlder.m */, + 8825C555D465064A00CC5398DD1AAA25 /* QCloudHTTPSessionManager.h */, + 95457C29FC39801500A209BB64538B5F /* QCloudHTTPSessionManager.m */, + E60519A2D9722774AF56F53435310688 /* QCloudHTTPSessionManager_Private.h */, + 6A3256BD1FA7962C33DB9B557B92EF68 /* QCloudHTTPTaskDelayManager.h */, + DDB1E4597FA4DF1E8EA730DE3BAAE2C9 /* QCloudHTTPTaskDelayManager.m */, + B3400033532838906F71E9C292A9BF77 /* QCloudIntelligenceTimeOutAdapter.h */, + E7DB3331CF659984BFE549C347BD382E /* QCloudIntelligenceTimeOutAdapter.m */, + 12F1A2F10AC296A844DA752039C443B5 /* QCloudLoaderManager.h */, + 94596E7FC878CAF5BD0D9CC95E61BF93 /* QCloudLoaderManager.m */, + D54E60B963045432F57E02171AE8C7E7 /* QCloudLogger.h */, + 7F401BD5D64C98706C50B381569FAA63 /* QCloudLogger.m */, + CADE92E3BE41EE65BCBB512F7FC612B8 /* QCloudLoggerOutput.h */, + 140AA7712FA9AE158F7E5EADD7AFED63 /* QCloudLoggerOutput.m */, + 31316DA21AA80AE3DD0CA7591518F908 /* QCloudLogModel.h */, + 09476A3F0CB268CA65F6159142C35FE0 /* QCloudLogModel.m */, + 642387252CAEC2179AC1B5C3E54449CB /* QCloudMainBundle.h */, + 3FFCAB28BFF424598BABBC33294D2C27 /* QCloudMainBundle.m */, + A686FC9E4DA1F24044F0F824DCA06B52 /* QCloudMediaPath.h */, + 3026EF929E12F0F3B8CB1459F141F2C8 /* QCloudMediaPath.m */, + 58D65E4069D50F71191C20F097FFA577 /* QCloudModel.h */, + FD4864429FE4F1180471376F2525AC2D /* QCloudModel.m */, + 61752A0E14B02C5DCBDCFE98F7EB9266 /* QCloudMultiDelegateProxy.h */, + 1C8D8936524EBE3B344C9BC49AF47117 /* QCloudMultiDelegateProxy.m */, + 2D4E05DFA160EE66F5E35106F629A9EF /* QCloudNetEnv.h */, + CCE282AC804A22DAA7883DDDBAED9BA9 /* QCloudNetEnv.m */, + E2918D96F62616700A9E9F0E5906271C /* QCloudNetProfile.h */, + FFDB774C101BFB12D80A65CD24C53959 /* QCloudNetProfile.m */, + 01B6E2A3F3ABECF6C77BBDD5969A85FA /* QCloudNetResponse.h */, + 3E50F3C1212023FC910409AE15820C07 /* QCloudNetResponse.m */, + F0ADA66445721AE5087E8E87CCCE5940 /* QCloudNetworkingAPI.h */, + 2A3AF1019300B26D688B8D9879B7D335 /* QCloudObjectModel.h */, + 3B1AB3E8ED48D02DFFBFCC6751BDB663 /* QCloudOperationQueue.h */, + 12219A15E2A116077165083EADA9D658 /* QCloudOperationQueue.m */, + 39F9B08441831B3354714594DA08CFC2 /* QCloudPingTester.h */, + 90221918B2D60B3483BFF2542B9C7C7D /* QCloudPingTester.m */, + 348F60D805DCC0E0BD4D382F5BE1701C /* QCloudProgrameDefines.h */, + 594B387A2FE7AB0230FBDBE5EF1F5810 /* QCloudProgrameDefines.m */, + E1B0FF7FEFB496262922F978B707A91E /* QCloudReachability.h */, + 2E9877101739BBAC0A288D5640B2E796 /* QCloudReachability.m */, + BC98CCFBF1EDA8F1689CA5CA43F79657 /* QCloudRequestData.h */, + 76DF1335C12134B1D7D445AAE9364DAD /* QCloudRequestData.m */, + 3815B32E45F80315CD87EED97ADDBCA3 /* QCloudRequestOperation.h */, + D0B07744061C78005223DDAF28091705 /* QCloudRequestOperation.m */, + 10266C441AF75A2B9A82E1643B116C5A /* QCloudRequestSerializer.h */, + CD132394F8219CB52F20FF82FFA7113B /* QCloudRequestSerializer.m */, + 99C2CBBFB4379E23C1A56B3F85C4B092 /* QCloudResponseSerializer.h */, + 93E65E29AF71B238088AA081907C6313 /* QCloudResponseSerializer.m */, + 24EDEC7679846AB322E29370B1EC8CA7 /* QCLOUDRestNet.h */, + 1A2E818D391D5A9AF7161708FD90DA54 /* QCloudSandboxPath.h */, + 35FB9CEABCB769EFEE6032EC483218D6 /* QCloudSandboxPath.m */, + 5185439B556CBFA05DC9C6F974A9422B /* QCloudSDKModuleManager.h */, + FA765F9271839D176DB2E0BD4F37309E /* QCloudSDKModuleManager.m */, + E18B499863F3BE8494CA3C4CA00806B4 /* QCloudService.h */, + 2B7644544550A839D6BA80383C9D1A3F /* QCloudService.m */, + D98CE44DF4F75957C6E7E2C3C766DEF2 /* QCloudServiceConfiguration.h */, + 78698D88D2EF9869FB93054A6D3F2BC8 /* QCloudServiceConfiguration.m */, + 6697056E33FF1977741123A939640298 /* QCloudServiceConfiguration+Quality.h */, + CCE346E3012BA03247A7FA88B48F8913 /* QCloudServiceConfiguration+Quality.m */, + F9842232139B32310A3F79A34C87DA90 /* QCloudServiceConfiguration_Private.h */, + B6123F6972C52F09194644A8E32B02B0 /* QCloudSHAPart.h */, + F8039AB6180055886058E02816803572 /* QCloudSHAPart.m */, + 3FB7CC38CC4EC713F738E35D48A74E91 /* QCloudSignature.h */, + 2EFA6E27307C8BE2B45648F89DA15BE8 /* QCloudSignature.m */, + E6EE15597502DD3E98A60D4F8268CFBD /* QCloudSignatureFields.h */, + E52791FE967A9ACA6B4451CFA4F19E67 /* QCloudSignatureFields.m */, + 7D4921D54DF57037990148DED5974A9B /* QCloudSignatureProvider.h */, + CF4FB944E62FFF369A009D4F038B93D0 /* QCloudSimplePing.h */, + 87FE1F20266F2FF2C15BBADA95BA93F9 /* QCloudSimplePing.m */, + 7E36FEAE81EA2EE361EDF25FF9210DE6 /* QCloudSupervisory.h */, + 3175BD5CE61F738AF88728C70A17AC8E /* QCloudSupervisory.m */, + 6A2FC80F534ADF9E089715A5F9199080 /* QCloudSupervisoryRecord.h */, + 9F8058E03C03D62659518316D52A1D0A /* QCloudSupervisoryRecord.m */, + 0A6AECE95982DB22F5E502FCB987D0DB /* QCloudSupervisorySession.h */, + D477CD6410C7FF4D1DD1B7801611179D /* QCloudSupervisorySession.m */, + 94FE1C2503CF03D1C77C30D7339D20E3 /* QCloudThreadSafeMutableDictionary.h */, + 1BEB685C697FE5423B0FBEF0E1C5592E /* QCloudThreadSafeMutableDictionary.m */, + ADA1E060ACDC8ADD2CB42E39F5165255 /* QCloudUICKeyChainStore.h */, + A39978EF7D591558C823F1C0FE10007F /* QCloudUICKeyChainStore.m */, + 859DE6F468D292B157C8C50EFA88A833 /* QCloudUniversalAdjustablePath.h */, + 79D937BCD943E356C2FC4B49FF67BF50 /* QCloudUniversalAdjustablePath.m */, + CC2D2EDAB4A2C221C27E81E92C902F3E /* QCloudUniversalFixedPath.h */, + 56918E70C10E441DD9427320942AEE1B /* QCloudUniversalFixedPath.m */, + F44EE9216564BDC2AFAFA74D91F767A6 /* QCloudUniversalPath.h */, + EFF85A1204CF96BC0A1D721E19FB41E8 /* QCloudUniversalPath.m */, + 1F4A3625FFAF59432A3A92CB06415642 /* QCloudUniversalPathConstants.h */, + 761E13468DE363FA8FFB70FDED81A231 /* QCloudUniversalPathFactory.h */, + 7CA06F08E44AB208CD1789571785DA66 /* QCloudUniversalPathFactory.m */, + E8BCD3D74A1BA116AC477521177D2AD7 /* QCloudUploadPartRequestRetryHandler.h */, + 9E0C10E8175502CA91376FA006DC639B /* QCloudUploadPartRequestRetryHandler.m */, + DC2201A3DE36EA664A4A23138A42175E /* QCloudURLHelper.h */, + 1E45121F3C1E9DCE8C3B702C17FA6143 /* QCloudURLHelper.m */, + 47F8B1EA9FDC198744CA6B5DBE1EB460 /* QCloudURLSessionTaskData.h */, + 02256A35658F257D79F2E0A2FC9C4822 /* QCloudURLSessionTaskData.m */, + EAAC33A7F3159675ED218F9748204503 /* QCloudURLTools.h */, + 00DDD741C3318DEB7E0D838DE56174FA /* QCloudURLTools.m */, + 2B96829ABC3F8B1A7F6070F204948699 /* QCloudWeakProxy.h */, + 01E8BF528D10019C70F08C573C50A689 /* QCloudWeakProxy.m */, + 1F082B671EE3CBA5A36ECBB1394A10FB /* QCloudXMLDictionary.h */, + CA02343B02ACB759CD9BCC09459B20DA /* QCloudXMLDictionary.m */, + C9330057B71F140B37BC9E00042B60E8 /* QCloudXMLWriter.h */, + 5DA566BA305FC8AC53CCD33A2CFEFDD5 /* QCloudXMLWriter.m */, + 75E6A73F4E61682A5174EE7D7ED19F76 /* QualityDataUploader.h */, + 0086153F7A83A07B955062499369838D /* QualityDataUploader.m */, + 267390C4651B684FCA9BB8A2E9BD7DC5 /* UIDevice+QCloudFCUUID.h */, + 052F3DC77C8AA502465D6B2B089B0961 /* UIDevice+QCloudFCUUID.m */, + 426111311C78A02D520BA4AECF277B28 /* UIImage+QCloudBundle.h */, + D49D69CC1463B9E1441DB8EF597C49CC /* UIImage+QCloudBundle.m */, ); - name = "Support Files"; - path = "../Target Support Files/YYModel"; - sourceTree = ""; - }; - 97C76BD56D4DDECBC60C475B2B29CDB1 /* BRPickerView */ = { - isa = PBXGroup; - children = ( - DA38BE4378060C256C25BF91B3F8D48A /* BRPickerView.h */, - 6CEBD8540A9B64245987BF061057A834 /* Core */, - 97F743CBE4B329693490E211986C9C71 /* DatePicker */, - C7E8AED3B0920A7A7287DBAA811FB43E /* Deprecated */, - 0D8C86925108957CC8CD187A9363F615 /* Resources */, - 591174695279364B84BC86155D09072E /* Support Files */, - 437CC7A5B3A0558C4D360DD15A55A434 /* TextPicker */, - ); - name = BRPickerView; - path = BRPickerView; - sourceTree = ""; - }; - 97F743CBE4B329693490E211986C9C71 /* DatePicker */ = { - isa = PBXGroup; - children = ( - E253484CE7282A091C574EEC4B9AE6F6 /* BRDatePickerView.h */, - 5FB19E2769E1329704321BF6EEFB773A /* BRDatePickerView.m */, - BC48BFCABBB6EE95E092F94E3C3B28F1 /* BRDatePickerView+BR.h */, - B73A54C6B2C5265F811AB9D5CB3A21DF /* BRDatePickerView+BR.m */, - 7AE99A5C966E43E5FAED29A2602CEAB2 /* NSDate+BRPickerView.h */, - FA20BE804FA50028C68F2AA78C20A9B7 /* NSDate+BRPickerView.m */, - ); - name = DatePicker; - sourceTree = ""; - }; - 98727EE6BCF0C8C2417E10B8744A94FA /* VideoAv1CodecDec */ = { - isa = PBXGroup; - children = ( - EAA123D24320DB79B7509B4D43EFAF70 /* Frameworks */, - ); - name = VideoAv1CodecDec; - sourceTree = ""; - }; - 99BC8226DD10E882D6D5DF77245D07BA /* Support Files */ = { - isa = PBXGroup; - children = ( - C27A58C19E38F1B31FE08DA6E507EE95 /* MQTTClient.modulemap */, - B126BDB2263A01F0D05093F9A3DBE2EF /* MQTTClient-dummy.m */, - E8520A5CB18CFCEA65D4A5A06F6C4791 /* MQTTClient-Info.plist */, - 61DCA12D208383EE15614CE2EF950C5E /* MQTTClient-prefix.pch */, - AE2793AF03E317A766D7B828C391871B /* MQTTClient-umbrella.h */, - E90A28716F427BD6432A990D0FCB4854 /* MQTTClient.debug.xcconfig */, - F8BC2B200445EF43137B596CD0CE9B46 /* MQTTClient.release.xcconfig */, - ); - name = "Support Files"; - path = "../Target Support Files/MQTTClient"; - sourceTree = ""; - }; - 9A38876815E741169DA01EB78B695D68 /* ClearVision */ = { - isa = PBXGroup; - children = ( - 314151BE74C8D5E6D7A25CE1D5164307 /* Frameworks */, - ); - name = ClearVision; + name = WithoutMTA; sourceTree = ""; }; 9B3991DCDD21D1C535E3B25FF70EF28F /* Pod */ = { @@ -10783,41 +11273,122 @@ name = Pod; sourceTree = ""; }; - 9B50D50C56404CAE56712EDBA179F2A4 /* SDWebImage */ = { + 9C183B0B0FEF56DE8E937130E6090EFA /* AgoraComponetLog */ = { isa = PBXGroup; children = ( - 8FD7364A2B2E78346D96429D620BE701 /* Core */, - 5B0B037A797B179913AEE674E5D5B449 /* Support Files */, + 811BEFBEA28CD062DBEE55DD9B65EC2A /* Frameworks */, + 854C74E05C978A9DE46747673CE700E3 /* Support Files */, ); - name = SDWebImage; - path = SDWebImage; + name = AgoraComponetLog; + path = AgoraComponetLog; sourceTree = ""; }; - 9CF613AAEE8DECA4E7AF85AED4ACA77F /* AddressPickerView */ = { + 9D5707163CE8FA8DE1BD9716BEF7AAE7 /* TZImagePickerController */ = { isa = PBXGroup; children = ( - E62FFFB5908F91CD2C7ACCCD5E3CFCEC /* BRAddressModel.h */, - 6E2A3F933B5FE68555BBEB51008F6DC9 /* BRAddressModel.m */, - B3BFD36DD27A6F6E722A13EF0AFBB191 /* BRAddressPickerView.h */, - 44ABEF56F2F498C888A0FEC93C707794 /* BRAddressPickerView.m */, - 12E6D3AC9756415E874EF53E5A073BFB /* Resources */, + 952339C6DDDAADB1D4582AA6E3F2C5FA /* Basic */, + 8012A18B8D97B7730EE2B6FA938D17E4 /* Location */, + AE75299C0EE0ECF2B561F97C6DEB36A1 /* Support Files */, ); - name = AddressPickerView; + name = TZImagePickerController; + path = TZImagePickerController; sourceTree = ""; }; - A01E0516CF02FD75AF6663AF7750C324 /* Support Files */ = { + 9DD5B1A50C8AA42D690B2E5564335DF9 /* IQKeyboardManager */ = { isa = PBXGroup; children = ( - D8A7516E6E4BE2A07FF25D985D4B3326 /* SVGAPlayer.modulemap */, - 8C5AA69C7D2BE359935D0B5CC88996BA /* SVGAPlayer-dummy.m */, - A076CF92053F682040A05FF0E4739D0E /* SVGAPlayer-Info.plist */, - 47DDB66642728D3F979DD86063C87E4B /* SVGAPlayer-prefix.pch */, - 9E150C7B99DB3BF47EAC81EA8C4408E4 /* SVGAPlayer-umbrella.h */, - 852AC4C1BA73FFFBEAEE96511FA5BC41 /* SVGAPlayer.debug.xcconfig */, - 3C734EC7A0E414C42093EC41F3868F98 /* SVGAPlayer.release.xcconfig */, + 8A24190DA80C03A61877016F3EECE467 /* IQBarButtonItem.h */, + 1887F4D2942335285CFD33902DAB90D2 /* IQBarButtonItem.m */, + DAA7897567BF3CAB80459FD302C7EB55 /* IQKeyboardManager.h */, + BAE3CA1A2F7CC361F3AD4EA2A5F38A46 /* IQKeyboardManager.m */, + C66C0380E1B9950A1C7DFA681485377D /* IQKeyboardManagerConstants.h */, + 102A32772156807B7045B74EA0BC0CBA /* IQKeyboardManagerConstantsInternal.h */, + 33C8DA3D2A8279573A354DF2ADEDB1B6 /* IQKeyboardReturnKeyHandler.h */, + DFEBC812C61A8513EF9F4C6C7C250054 /* IQKeyboardReturnKeyHandler.m */, + 715FF71B72C0FD10FE38E7355ECD6460 /* IQNSArray+Sort.h */, + CAC3E9BA80100B1FFFDC3991654DC0A4 /* IQNSArray+Sort.m */, + DBDD225BF9FABCDCA7ACE73C61C154CC /* IQPreviousNextView.h */, + 5B9348D4F60D56C673A7CEA33E823944 /* IQPreviousNextView.m */, + CABDAF6E815567ABC244C42CFF7B59E9 /* IQTextView.h */, + 3EC3B519AC23B98923D9A30087556A44 /* IQTextView.m */, + 8CD2F32CCB6620DC2E4DA0B0CFD85C26 /* IQTitleBarButtonItem.h */, + 81EF99E7A6CBA6012C60D684788F131C /* IQTitleBarButtonItem.m */, + FF9D7BE8F13C3313349427C6E1D14C96 /* IQToolbar.h */, + 171952C1A3A5AF772DD6ECCA56E1D43B /* IQToolbar.m */, + 82994E7C083EEACEA413FDE326F454A0 /* IQUIScrollView+Additions.h */, + B41729B5536A6AC1354B2E5EADF8E6C4 /* IQUIScrollView+Additions.m */, + F76842447A11E448C72A86F465DD0526 /* IQUITextFieldView+Additions.h */, + E0946C8F07FB91900E9A1ED32E7D8BE8 /* IQUITextFieldView+Additions.m */, + 1031BE5D760A9D6E9F25A5C9048469B3 /* IQUIView+Hierarchy.h */, + E6424BE5F62EA57F4F0571A902C9BA27 /* IQUIView+Hierarchy.m */, + 241C716412E075F29B1A0C7266EC0C5B /* IQUIView+IQKeyboardToolbar.h */, + C7315416C91B3CF333FEDDE0D2696E94 /* IQUIView+IQKeyboardToolbar.m */, + 1CAD5071D46DA74AF8629B89B2460B55 /* IQUIViewController+Additions.h */, + CC0989E7BC16BCEFD24143416FE27094 /* IQUIViewController+Additions.m */, + C92376F57312C914B8A05827C8E5F27A /* Resources */, + 40A6F0E730EE86B1A2962B418CA821B4 /* Support Files */, ); - name = "Support Files"; - path = "../Target Support Files/SVGAPlayer"; + name = IQKeyboardManager; + path = IQKeyboardManager; + sourceTree = ""; + }; + 9E07DE00AA45EFE58C7D962869D39DD6 /* Log */ = { + isa = PBXGroup; + children = ( + D638E405D8BD255AF8F38DCA255CDF36 /* LLLog.h */, + B29F1923AD4248A13CA3B53F97E36979 /* LLLogCell.h */, + C69A1BBD0A0739C565892EAC45726A72 /* LLLogCell.m */, + 05160E7568CFFE842A97D9E0E48AB75F /* LLLogComponent.h */, + 708727B81F22B40D3A3A8C8DC1AAE97E /* LLLogComponent.m */, + EE1088E943CE4EEB071B855ED0AB96FE /* LLLogDetailViewController.h */, + 0A6F4495DD097887BC5B36C1CE31C94C /* LLLogDetailViewController.m */, + 4E863240CED41D55CF689930006088FC /* LLLogFilterView.h */, + 75E2AD06BBB42B04236882A7B5727F2E /* LLLogFilterView.m */, + 3E4E353A84CE19B95DDD68C7CA1BD511 /* LLLogHelper.h */, + 13A7D917A92A240C84FE0CEFB2C9753F /* LLLogHelper.m */, + 21EE74BC633A64457A51AA4D8437E546 /* LLLogModel.h */, + 7C2ADB6C0EB671B069FB89C018103821 /* LLLogModel.m */, + 125A95325D9860E01937012FD3C0E317 /* LLLogViewController.h */, + 1617859C27A41F6DAFA1D3C071CDC62C /* LLLogViewController.m */, + 89D952264408F11D7B3386FF4D7C68B1 /* LLLogWindow.h */, + EF5F21B0EC41988D0A2186EFD3843326 /* LLLogWindow.m */, + CC022135945BC95FA761403F90D48780 /* LLWindowManager+Log.h */, + 8E4CE67C9A59C081F15F846C5A734745 /* LLWindowManager+Log.m */, + ); + name = Log; + sourceTree = ""; + }; + 9E61CE21E47D07A21638EE8F48A60983 /* Resources */ = { + isa = PBXGroup; + children = ( + 1A23EF77097C6A1C74E776951B509E5B /* PrivacyInfo.xcprivacy */, + ); + name = Resources; + sourceTree = ""; + }; + 9F315281C50A2D97268EEBDFC8D35C30 /* Resources */ = { + isa = PBXGroup; + children = ( + 24DE23792EB68A41558A67CDFD22791E /* YBImageBrowser.bundle */, + ); + name = Resources; + sourceTree = ""; + }; + 9F75E02B7D6C9248919A25E110A79F87 /* ProtoFiles */ = { + isa = PBXGroup; + children = ( + 3A5EC203393EDB39DF19C5B9EC73E99C /* Svga.pbobjc.h */, + 54895662330D0B655500AE0805959BFA /* Svga.pbobjc.m */, + ); + name = ProtoFiles; + sourceTree = ""; + }; + A01B099F6C2CDD85EBB7CBCB1A594311 /* Frameworks */ = { + isa = PBXGroup; + children = ( + 46EC5DEFD0CF52601F82C8C6A0C50D07 /* AgoraAiNoiseSuppressionLLExtension.xcframework */, + ); + name = Frameworks; sourceTree = ""; }; A021188D4EBF8A93CD78910B360EF58F /* CellUI */ = { @@ -10840,6 +11411,56 @@ name = Pod; sourceTree = ""; }; + A1F3BE8069B5C7CEA1597AD609EEC3CD /* Sandbox */ = { + isa = PBXGroup; + children = ( + 68625218E6B514223D5BA3382ED52E27 /* LLPreviewController.h */, + E0AC5CF7DFFEE64766896EC56ABE170A /* LLPreviewController.m */, + 695B71E90A78E92B3B729FF7976FF95B /* LLSandbox.h */, + 16A98E5BDC077F1555782DCE30594D96 /* LLSandboxCell.h */, + 8CE9693C7EE0BA4DC0D167FC5A8BE327 /* LLSandboxCell.m */, + 6F590BBB5D9F172B6653BAC35659B091 /* LLSandboxComponent.h */, + 46B46CA3BB374944BFE4574523963C47 /* LLSandboxComponent.m */, + 71201FCDF4D5304E930B47888A9FBFA7 /* LLSandboxHelper.h */, + FAE1D320A54FB06110638D3EA7B561C4 /* LLSandboxHelper.m */, + 3B04C37349BDC515B4E0D346572551E0 /* LLSandboxHtmlPreviewController.h */, + 46CBF33AC9C4CFFD0BD0574B8080451E /* LLSandboxHtmlPreviewController.m */, + 2AF782A50913D8F3025AA322B252D419 /* LLSandboxImagePreviewController.h */, + B28844EE0ED3ABF993151E7177C55EFF /* LLSandboxImagePreviewController.m */, + D1B43A5397B326E44C076B5E4756F49A /* LLSandboxModel.h */, + 008B0ECA6FE8E078096EDEFD07A46848 /* LLSandboxModel.m */, + C619C80864BD2CCD830BB0FB030E262C /* LLSandboxPreviewController.h */, + 2EFC9E1ADA603009197192F0CC57762D /* LLSandboxPreviewController.m */, + B95A480D773A0692D0129A94C8455AC3 /* LLSandboxTextPreviewController.h */, + EE7DC835BDA49D199852711EC4553B8A /* LLSandboxTextPreviewController.m */, + 1F0C905D614789808B6910473387F2D8 /* LLSandboxVideoPreviewController.h */, + 717F62074FD5ED7DC4F2E508C7DE4CF9 /* LLSandboxVideoPreviewController.m */, + 5101A4F82BD63A4B88949CE1AB209586 /* LLSandboxViewController.h */, + 76298DEA19B1C31CDB0010A7864AC119 /* LLSandboxViewController.m */, + 70659A69CAE6EA930F48FCB7F22D38C9 /* LLSandboxWindow.h */, + 0EEFD1789A4F6A6D74E4012B76D0AB00 /* LLSandboxWindow.m */, + FF0B11CAE6891641C22F82ACC12D510D /* LLWindowManager+Sandbox.h */, + 90D8F228D30C0E38CECAA4978016D584 /* LLWindowManager+Sandbox.m */, + ); + name = Sandbox; + sourceTree = ""; + }; + A257F2738C74659EF346C24C696C9A33 /* Support Files */ = { + isa = PBXGroup; + children = ( + 75828DDEF4647B618DF8BE0B2FD4D8DE /* JXCategoryView.modulemap */, + 52840598BF92A895362F367863E2E641 /* JXCategoryView-dummy.m */, + 3ACED52B3F83A3EA354B6EC039B93F9F /* JXCategoryView-Info.plist */, + 6F7816D2CD3DADECBC853A1A72FFD3F4 /* JXCategoryView-prefix.pch */, + E6DFAC3D5BD0F0C59D1B7FE00E877897 /* JXCategoryView-umbrella.h */, + 59C4B857C3564ECB2A07D79D96916AC2 /* JXCategoryView.debug.xcconfig */, + A41A5AA1AD11BD944B85AC3E47517917 /* JXCategoryView.release.xcconfig */, + 6A47A07F1ADB8330E4CE82B071C51A17 /* ResourceBundle-JXCategoryView-JXCategoryView-Info.plist */, + ); + name = "Support Files"; + path = "../Target Support Files/JXCategoryView"; + sourceTree = ""; + }; A5061F004270007CD6C2E07B3F53AE4D /* DataProvider */ = { isa = PBXGroup; children = ( @@ -10854,97 +11475,67 @@ path = DataProvider; sourceTree = ""; }; - A51B732E241B0EDA1CFB3289DC0403E3 /* Support Files */ = { + A60991AE2F5CC4BB6A07403D4240E2AF /* Pager */ = { isa = PBXGroup; children = ( - CD325FB3ADC40E4A890D804835F177B0 /* AvoidCrash.modulemap */, - CF13F429D0EBA44F948BA8FB164E9295 /* AvoidCrash-dummy.m */, - 85EBF0DA7D4A4CDBA4862EF923BD0D26 /* AvoidCrash-Info.plist */, - 5A2BB719E1792E006B83CD7621083519 /* AvoidCrash-prefix.pch */, - 8BAB88729652F3EEB258051F3D9AD7C1 /* AvoidCrash-umbrella.h */, - 57F9EC351586A7953002865F92E275B8 /* AvoidCrash.debug.xcconfig */, - 6F825A5E4F039EA8BBB916AF2C6CBDBB /* AvoidCrash.release.xcconfig */, + 22E8DD0330CB46FFDCB1E05F3F8840BC /* JXPagerListContainerView.h */, + 5205F5C2383D19CD9E496BC9EDDD45F4 /* JXPagerListContainerView.m */, + 9769F3CB66237CD67D3373761DCB0AAC /* JXPagerListRefreshView.h */, + 03E7148680D2B5CA0145A90368880BDC /* JXPagerListRefreshView.m */, + E57FDA4CCBD36CE0E8D479344368C8BE /* JXPagerMainTableView.h */, + 85B390D16FED19D8AB3F01A1763BE66B /* JXPagerMainTableView.m */, + A1E851B842C5436A7C425A28F5EAFF08 /* JXPagerSmoothView.h */, + F6BA536F83EE19990C5ADB308021ACB8 /* JXPagerSmoothView.m */, + FFEFC5459225C1D6833D458534BC3472 /* JXPagerView.h */, + FB254EB4AE400CA7010D8F4D0A3438E5 /* JXPagerView.m */, + 75C9426AEAA3D40D7E5E8B1EECE05C00 /* Resources */, ); - name = "Support Files"; - path = "../Target Support Files/AvoidCrash"; + name = Pager; sourceTree = ""; }; - A67EE32858391E5F9EBCFD3D24CA3B17 /* Support Files */ = { + A6F3A10F34C255D0E3340372160D0E93 /* Frameworks */ = { isa = PBXGroup; children = ( - 0A9DE069A2145C9E196D514AE60A9C1D /* YYCache.modulemap */, - AFF6BFEF29D849DA0A5FFB9799BF3837 /* YYCache-dummy.m */, - 54BB81D54B44630A921DBE98BADCC6A8 /* YYCache-Info.plist */, - ECDAD0C68CEEEB0CFD6BE1FBBF0202C8 /* YYCache-prefix.pch */, - 6F098AF9A6E0719FEF3401CE55DCCC48 /* YYCache-umbrella.h */, - C9671D5694D2FCBEADA969DC5D078145 /* YYCache.debug.xcconfig */, - 05A955183D3132502ACEA19704DED8DF /* YYCache.release.xcconfig */, + B922E9ADCAEA935DF2606C8A82973216 /* AgoraAiNoiseSuppressionExtension.xcframework */, ); - name = "Support Files"; - path = "../Target Support Files/YYCache"; + name = Frameworks; sourceTree = ""; }; - A84E103A9F5A11D87EAF12ABED34FDDD /* Core */ = { + A730DFF3725311969C177005890E1E80 /* FMDB */ = { isa = PBXGroup; children = ( - F6C823FFFF8DC45B553CD41D517EF6F6 /* YYAnimatedImageView.h */, - 5A44C915129CF5FB29F75D6E99668448 /* YYAnimatedImageView.m */, - 41D1E4E76E5007958C60B21846EB3CD0 /* YYFrameImage.h */, - 61E4C5401F2E34BCE0FCBA470E3C957E /* YYFrameImage.m */, - B0E4C5AFE10929A35D97E1EA0E4B135A /* YYImage.h */, - 5A4D8F763DF17C7ABE0F9CD0E0094337 /* YYImage.m */, - 2FB0F1EA0129A32D8F1B9DBBE93BEAA7 /* YYImageCoder.h */, - 80465901921C31FCB30E524C8CD52297 /* YYImageCoder.m */, - CA0A608F7A9C7F3900D7F53900E1FD30 /* YYSpriteSheetImage.h */, - 32CC90CA01A0CCF24A12979B2695F9A3 /* YYSpriteSheetImage.m */, - ); - name = Core; - sourceTree = ""; - }; - A9933CAFA7D0C694D4685D5449CB013D /* Manager */ = { - isa = PBXGroup; - children = ( - BFEAE72DD932F7178875FE6821E2716D /* ForegroundReconnection.h */, - 02FAD85033B2089C692AD28A2CD21D31 /* ForegroundReconnection.m */, - 71D514F677784C29F713F8AC1B512F86 /* MQTTSessionManager.h */, - CEF8EB16640BF42DD91C5EF839BF29A1 /* MQTTSessionManager.m */, - F8D08950769F826D68FF60B4646903CC /* ReconnectTimer.h */, - 2B877BD7BC304000D4B0BE7DCB6D53C0 /* ReconnectTimer.m */, - ); - name = Manager; - sourceTree = ""; - }; - AA338FEF118260E033E4A4274898BF50 /* FMDB */ = { - isa = PBXGroup; - children = ( - D66682FA0AA3EB5945C816847E4B3080 /* Core */, - 75720E754A48E6B6CE3B3C8238615988 /* Support Files */, + 2A70C1D13B8876C748847C162205422C /* Core */, + 167C99F6513A1617A18AB8C67D98191C /* Support Files */, ); name = FMDB; path = FMDB; sourceTree = ""; }; - AAE6A26930544804A1E40955D216F73F /* SDCycleScrollView */ = { + A756FC841831C7454F2EF4BB8DD0B797 /* Deprecated */ = { isa = PBXGroup; children = ( - 7D85F571351B8D5A7A33993426157D83 /* SDCollectionViewCell.h */, - C9E11F37F96460ECAEE6E3C2E337098D /* SDCollectionViewCell.m */, - 6F997DBF534DFE76470A1AB8175B3610 /* SDCycleScrollView.h */, - BB3FC9FA77CAA4B5A047F3F0B67AF17D /* SDCycleScrollView.m */, - F29E02DF7E8B14A840107078E68F9346 /* TAAbstractDotView.h */, - B4F0278AE29B9C08CEF13C303B90CAF3 /* TAAbstractDotView.m */, - 37221025A73D9BE36B92DB09BC14BBA1 /* TAAnimatedDotView.h */, - DB2489678F172BAD201F79F168B58003 /* TAAnimatedDotView.m */, - A25CBD3B81EE4193B886C64BB99F4E21 /* TADotView.h */, - EC90F94F312D0E34FE172989809C5B43 /* TADotView.m */, - E177B4461D6CD14125C2F8E102EE5D10 /* TAPageControl.h */, - DF95B3F1876A4C1DD21ED29A1015CD24 /* TAPageControl.m */, - 7069E937A9C3761B8EA9EF80099920B0 /* UIView+SDExtension.h */, - 1B403AFD3386756786B7F92B5A1D84B3 /* UIView+SDExtension.m */, - 3A745B2802478327A10B188DC0E538C0 /* Support Files */, + 7104778F93633B4B27BF3F0540543EB5 /* AddressPickerView */, + F9C10A8CD30AF9C6A16476871D6465AD /* Base */, + 8A6382C98D5B61857D2F1BD629925A49 /* StringPickerView */, ); - name = SDCycleScrollView; - path = SDCycleScrollView; + name = Deprecated; + sourceTree = ""; + }; + A8EAB7A6A2C899ACF1BDB6E12B94AFC9 /* YYCache */ = { + isa = PBXGroup; + children = ( + AFAC75D15F34AD6C5AEA0F9C81F3B591 /* YYCache.h */, + 89F00C01EAA910DD95D102446456FC76 /* YYCache.m */, + 3B0029E8D96A8D3921EC957B31A972EB /* YYDiskCache.h */, + 136160DFF4DC56D9F769B02AC0929F6F /* YYDiskCache.m */, + 50ACAC4A3CD7C0D928CE130C10855388 /* YYKVStorage.h */, + 9203541306F143FDEB870B5F9A0B5E1F /* YYKVStorage.m */, + 9DB965A81E3DB8E6A8A9FFC57FE6553B /* YYMemoryCache.h */, + CFA215FD18CE2A201870B774F659F913 /* YYMemoryCache.m */, + 635960204AD52C1AE1C8B95813C1539D /* Support Files */, + ); + name = YYCache; + path = YYCache; sourceTree = ""; }; AAF6C8913FE1CF693014D52762ACCFA1 /* UI_Minimalist */ = { @@ -10965,30 +11556,263 @@ path = UI_Minimalist; sourceTree = ""; }; - AC486FCADCD12BB20D5226ED849FD08C /* JXPagingView */ = { + ABBA72B58C4F873C7C56CB9EA3EED514 /* Support Files */ = { isa = PBXGroup; children = ( - C3ECDF553B6EF8851A7B6A7525E6060B /* Pager */, - DDD1AB4E3E111A83F8A7F8A64585B2CE /* Support Files */, + EE05DB23F7D5BD758A4F27F73F739ED6 /* AliyunOSSiOS.modulemap */, + 45073970B3C226FBCA12C136D7F3DB71 /* AliyunOSSiOS-dummy.m */, + 0FC37A99477ECA2126AF75BBA16733D3 /* AliyunOSSiOS-Info.plist */, + 9540B15BAB1B72A64BF8F5A92E008802 /* AliyunOSSiOS-prefix.pch */, + 4DD84671C676DB5A9EDF1B803F587C61 /* AliyunOSSiOS-umbrella.h */, + D65D99444B13FC496E51863A885FCD36 /* AliyunOSSiOS.debug.xcconfig */, + BBED4ABD03D03C415C1D40EC5AC793E5 /* AliyunOSSiOS.release.xcconfig */, + A97135F79761C90C01612FCE35526D29 /* ResourceBundle-AliyunOSSiOS_Privacy-AliyunOSSiOS-Info.plist */, ); - name = JXPagingView; - path = JXPagingView; + name = "Support Files"; + path = "../Target Support Files/AliyunOSSiOS"; sourceTree = ""; }; - ACF115BF9993C827D10997B5CD83A23A /* Resources */ = { + AD13FC4DC881D8451BD3646C26F63158 /* Protobuf */ = { isa = PBXGroup; children = ( - B547DE0AF865AACABD260B51DFF954AC /* PrivacyInfo.xcprivacy */, + 463A082C5CE915F6DA5845B14BA399A8 /* Any.pbobjc.h */, + 2B436A74C6297AC8EE4528037D917BB5 /* Api.pbobjc.h */, + CE380A2D80461203CB5EF1EC7876D1AC /* Duration.pbobjc.h */, + F64616BA34683CC79280A13D2EE0FBA6 /* Empty.pbobjc.h */, + 77A1E4B9629768B50FAC5938B8C2E2F6 /* FieldMask.pbobjc.h */, + ECE6433E17E570A21A030F4F73E3CEAC /* GPBAny.pbobjc.h */, + 6EC746F4456DF1846F062EF0158D5F66 /* GPBAny.pbobjc.m */, + E638ADEEE618D9115549F970DEB31647 /* GPBApi.pbobjc.h */, + FC1516F2209EDDC2D920EC80F8334C56 /* GPBApi.pbobjc.m */, + 838794DEBE70D2339D218F6BC2E11FEF /* GPBArray.h */, + 4004B7488B679ED2B729FAA9A0EDA5DF /* GPBArray.m */, + 51579FB914B828FDC79BFBAF0759EDEF /* GPBArray_PackagePrivate.h */, + FA71F63ECF516CB8499FA494C1ACAC03 /* GPBBootstrap.h */, + 341F1DA851C2DCD12018594E5969B23A /* GPBCodedInputStream.h */, + 8BA0D408D35A7F95A467007CD3693595 /* GPBCodedInputStream.m */, + 20FB6E25DD4AF9E7342175D1281FF609 /* GPBCodedInputStream_PackagePrivate.h */, + 027E243469F04F5AAD000E82F7BE6A2D /* GPBCodedOutputStream.h */, + D414544FFA7415CC2A36EF0984F5D467 /* GPBCodedOutputStream.m */, + 1D1BF4079BD07F4564B6FC5D9AD29C91 /* GPBCodedOutputStream_PackagePrivate.h */, + 6EC98E7919863935819A20E6D1D5194A /* GPBDescriptor.h */, + DD9221EDB1D66F00A81FC5764351315E /* GPBDescriptor.m */, + B7725C9811C809D2358ED8C18D5CD403 /* GPBDescriptor_PackagePrivate.h */, + 43F47529FDB6F50A2E5C8527B27CBE63 /* GPBDictionary.h */, + 5487F017F2C6A867C5AE7ECE3797AD8E /* GPBDictionary.m */, + 320AD155944DBB52005BF56892A6FEA4 /* GPBDictionary_PackagePrivate.h */, + 368A6985445BE6224178FD078201DF73 /* GPBDuration.pbobjc.h */, + C27CA9BB1BC6C72D88FF580AA4D3AC9B /* GPBDuration.pbobjc.m */, + FD9EDF992954E0963255C8A3AC630C95 /* GPBEmpty.pbobjc.h */, + 3C4AFCFC76BE581A67CA5B539B832BF3 /* GPBEmpty.pbobjc.m */, + 4B61D66FAAF993EA868CC86802228D2D /* GPBExtensionInternals.h */, + AABFA3A345BA6647A3D4F1EC9D98C146 /* GPBExtensionInternals.m */, + 0E1BCFEF87090D1F4DE111DD8866319F /* GPBExtensionRegistry.h */, + 646E4A6BFAE3542804E8B988D7ABB58F /* GPBExtensionRegistry.m */, + A78E12FAA97079585B4D6DE0C45D8A6F /* GPBFieldMask.pbobjc.h */, + B21FAEC52778928CA42CDA254919B55B /* GPBFieldMask.pbobjc.m */, + 3C0CC4726723D6D3B9F07ADF69FE10CC /* GPBMessage.h */, + EB6632376F3502E2D9C6BF8ACC2E0A33 /* GPBMessage.m */, + 121C28411A592719BA15879F48FCD54D /* GPBMessage_PackagePrivate.h */, + 0169D03841D66672B8F22279621EA8C5 /* GPBProtocolBuffers.h */, + 037EFE84298534860E3E72DBCCFF50DD /* GPBProtocolBuffers_RuntimeSupport.h */, + 94A7B19715A0D856103E5BDA6B5DF908 /* GPBRootObject.h */, + 1836FF8EE9E132C2D0C9EDF864335D28 /* GPBRootObject.m */, + 7BAAB6788DBAD384970B8CA5CE92451C /* GPBRootObject_PackagePrivate.h */, + 6111A4BED9FE9D6BCD61B8D7FAF17CA0 /* GPBRuntimeTypes.h */, + AE02E7FF288BA1E6D7F88982C57AE562 /* GPBSourceContext.pbobjc.h */, + 4229A484FA4CC3658F4BD425661DB4F2 /* GPBSourceContext.pbobjc.m */, + E2CAA01D90816AFC88844177C39399EF /* GPBStruct.pbobjc.h */, + 199536E8963A301291FD2DEC6B14531D /* GPBStruct.pbobjc.m */, + 1804E0CE29A76FAF0B263872E8F5B485 /* GPBTimestamp.pbobjc.h */, + DBBE92C497FB7032E00ECB99BEAAABD8 /* GPBTimestamp.pbobjc.m */, + 966B2ACA825394A27EB38B0C8BB7BECC /* GPBType.pbobjc.h */, + 8C1323B30EB572CD81E268BAA03C779B /* GPBType.pbobjc.m */, + 52305ABD7AE6E1655DCC400E006B01C9 /* GPBUnknownField.h */, + 243DC8BA4219B00A2990C1B28A76E955 /* GPBUnknownField.m */, + B0DC3EFE8D130B50511160BF15B4DDE3 /* GPBUnknownField+Additions.swift */, + 7D73B991F91970EA6FA49F3BDC9EF941 /* GPBUnknownField_PackagePrivate.h */, + 9863230652A77516A5830C58FEE0B4C6 /* GPBUnknownFields.h */, + 744BC791085D330ABBCEDDBEA28A0B69 /* GPBUnknownFields.m */, + EB51F8B2EA22886BB29FA17F417426A8 /* GPBUnknownFields+Additions.swift */, + 5214B00F5E32EE3751D1DD70C6B09C8B /* GPBUnknownFields_PackagePrivate.h */, + 112512243FBC916B15B7E653B9DED86A /* GPBUnknownFieldSet.h */, + FE9736BB0BD4C1473F78EBB9198CC88F /* GPBUnknownFieldSet.m */, + 2FAB6EAA857B7B7D4B5C776DB888EB83 /* GPBUnknownFieldSet_PackagePrivate.h */, + 251EC03870BC0F85091C303842ADABCA /* GPBUtilities.h */, + AE45107946C343DBF04C1B7B5B8CFCE5 /* GPBUtilities.m */, + C0CF66D77341CBAB70B181A81C6F4CCA /* GPBUtilities_PackagePrivate.h */, + E76643658D7F1857836CE14A026C5F33 /* GPBWellKnownTypes.h */, + 1A1B3B7BD102DF87FBCCD0568816B6BA /* GPBWellKnownTypes.m */, + 32978C299B2134D5886AD072C2ED827C /* GPBWireFormat.h */, + 6C0509771CA56E87CDB37DD602D88F36 /* GPBWireFormat.m */, + 46862E466AB9C3701971CA5F6591D0DC /* GPBWrappers.pbobjc.h */, + FAC5A92DA11131162B8A8D5D8E89755C /* GPBWrappers.pbobjc.m */, + 1FDCEE6B910DFAC0E9C772B99EE56625 /* SourceContext.pbobjc.h */, + 5158B6BAC0B683F0ED5396925F1455B4 /* Struct.pbobjc.h */, + 6C20E80C571982C11FF077A63BEDA767 /* Timestamp.pbobjc.h */, + 749BEEC667E8C1178984A3CF8A3945FD /* Type.pbobjc.h */, + 9DB164CC791FD30A2834AF58B3810F1C /* Wrappers.pbobjc.h */, + F979CF3B5FBE72E1AEA8EA671582E91F /* Resources */, + 8704133608C66C999012B71C67D94077 /* Support Files */, ); - name = Resources; + name = Protobuf; + path = Protobuf; sourceTree = ""; }; - AD56A0DCD58ECFA3C28F486ED95BBF62 /* VideoCodecDec */ = { + AD244E37F21C82AB791976DFC0B91C22 /* Core */ = { isa = PBXGroup; children = ( - 16C1A2AA834E650F75F73A49ABB5B83D /* Frameworks */, + 37FBF5391BBB5280F15041DE59EAE7F9 /* NSBezierPath+SDRoundedCorners.h */, + 08A7023C52345C508988051E5EE1F7EE /* NSBezierPath+SDRoundedCorners.m */, + BCF2A79A1CCAD410454C190955386D1C /* NSButton+WebCache.h */, + 5C8E309E449353BA9E88041E725C3240 /* NSButton+WebCache.m */, + D8E080E375BEB544709F641AB0369521 /* NSData+ImageContentType.h */, + B69E322B6DF26946B4E37955EAB6FDDD /* NSData+ImageContentType.m */, + 9D60F9452422D2548C79E8680FE1D976 /* NSImage+Compatibility.h */, + 37A171C91C19D0F12C6EC7F0FFF8E15C /* NSImage+Compatibility.m */, + 59A9ED22FE2FE804CA389E6D8653E544 /* SDAnimatedImage.h */, + B9353A29D6EC6E90EC2C64FADEDD0A22 /* SDAnimatedImage.m */, + E4FAE4B9CC1934D1C85C22DC6E67F58F /* SDAnimatedImagePlayer.h */, + B5197FC8F3CA8278F03C3E69101DA835 /* SDAnimatedImagePlayer.m */, + 5BA80F3843FD77DE4AE38E0BB6FD35AD /* SDAnimatedImageRep.h */, + 8622D12E0AC31FB3A85CD6DC41378BBB /* SDAnimatedImageRep.m */, + A054FBD9092C16401FFBD55D55C8AF62 /* SDAnimatedImageView.h */, + B02CD8CDEFE292CD3557E36E17A6FB7B /* SDAnimatedImageView.m */, + 8894C7A542AFDB70DE5A9A8BB69ED8EC /* SDAnimatedImageView+WebCache.h */, + 1E061233B1799471B81C71C2DABD1D6A /* SDAnimatedImageView+WebCache.m */, + FD63D4E1A24ACB8F4FAC2ACBF321F560 /* SDAssociatedObject.h */, + 61B8191C761F55FF121C7571334E3197 /* SDAssociatedObject.m */, + 07C2B7657EBE23C1400CE1F43EF5AF7E /* SDAsyncBlockOperation.h */, + 425F58D75A337964475D8BDD83ABD04D /* SDAsyncBlockOperation.m */, + D792F130A469C6670AC492178FA4D112 /* SDCallbackQueue.h */, + 179266BC2C3B9C1BC1AB76D7677AF624 /* SDCallbackQueue.m */, + 586C397A0CE78A849C9C64F6C1AB1B7B /* SDDeviceHelper.h */, + F51481CE626E7B7B928CD7CF0704F580 /* SDDeviceHelper.m */, + 7F399192B4E0B59417904626FC68275B /* SDDiskCache.h */, + C9ED034EF0A7164FDED8ADC512A418CF /* SDDiskCache.m */, + A9E5769E8BE3315EFFB5CDF0CA40BFEF /* SDDisplayLink.h */, + 3FB04540F536CE9A17AEAFC02540303E /* SDDisplayLink.m */, + 96CFE93F542A68F13873B7A2311998B7 /* SDFileAttributeHelper.h */, + 30F048CA0AE11A263618A72FA4FFC37C /* SDFileAttributeHelper.m */, + A34EEE4E7CD8FE8A71C0428F1EC3EFB8 /* SDGraphicsImageRenderer.h */, + 626BB9A04BF481E00E9842E0113F90AA /* SDGraphicsImageRenderer.m */, + 981B62113BD0DA69A54FB78AFEE784C2 /* SDImageAPNGCoder.h */, + E75877C0839B68DB156C9EFC81B0FB0F /* SDImageAPNGCoder.m */, + 4954EA086BF966885872FE25853BA697 /* SDImageAssetManager.h */, + 53A91BA8A01AFB9B24A1CDF1BC6B8952 /* SDImageAssetManager.m */, + F9C90C051621F066A3D2F27F52C026E5 /* SDImageAWebPCoder.h */, + 4CA49C94F05A2187AF5FFA52A89B5F2D /* SDImageAWebPCoder.m */, + 8CE1912E0C18C5CD4EFB419D62667262 /* SDImageCache.h */, + 42DC58EB8CC42ADC838C26B96E59BB14 /* SDImageCache.m */, + B7A6746B537DB89FA421A75F17088A77 /* SDImageCacheConfig.h */, + F6C2D9118926E9DDF9259C614E34F096 /* SDImageCacheConfig.m */, + 52864092240DC4531C349BDF313B651F /* SDImageCacheDefine.h */, + 8EB95657DE06379818EEFDF02FC742BC /* SDImageCacheDefine.m */, + 374F257E854D9B1A189B5FB06602026F /* SDImageCachesManager.h */, + 19EC4EE0C567873774C66292AEC15EFD /* SDImageCachesManager.m */, + 3E8B4B231A3F303B1FE0DC0673804179 /* SDImageCachesManagerOperation.h */, + 7797D0A0ADF164212771042AC5E18FA9 /* SDImageCachesManagerOperation.m */, + D37A688C16B1234239DED92E3320D15B /* SDImageCoder.h */, + 4BCBA05C056BE50368553A3FE1794CEF /* SDImageCoder.m */, + D9C3738F91D2216AB5CF82365500EF2B /* SDImageCoderHelper.h */, + A506CAE9E5DBB528A3DF2AC9A078EA8A /* SDImageCoderHelper.m */, + 47A8E8E73773FFA3CBADB473AD8A91AD /* SDImageCodersManager.h */, + 8E587B44A2FE47CDECE41B5B3B3DEEAA /* SDImageCodersManager.m */, + 1D0B3DEB1714934F5017308B34D0703C /* SDImageFrame.h */, + 1E1F7BCD40A282679B5ACF989AF45F25 /* SDImageFrame.m */, + C3E48BE87B8C0C0D804379966D58D8D8 /* SDImageFramePool.h */, + E99AB24F3B2913D2410969663494C479 /* SDImageFramePool.m */, + 5892E24D8A698EBF900F733AFB9E40C0 /* SDImageGIFCoder.h */, + D4A94EDF166017F836A2F4FAB770A2A5 /* SDImageGIFCoder.m */, + FEEC1915846135604DE448031E0DBD33 /* SDImageGraphics.h */, + 3FA7B1A5443DB4247116DF057334E34E /* SDImageGraphics.m */, + DD4CD0B1E4329CD87FB920343A3D00F6 /* SDImageHEICCoder.h */, + 0BEABA91D373BF2ACDEFE09097D6B745 /* SDImageHEICCoder.m */, + FAC8BBDB51284975BAC168144CF24160 /* SDImageIOAnimatedCoder.h */, + 53A7C6BE80C8D1B02CBB4B203B4AE16D /* SDImageIOAnimatedCoder.m */, + C005CD9427CF96E31FC220AE74F97744 /* SDImageIOAnimatedCoderInternal.h */, + E7E4513BAFB9371B25CB9D6F1DDA6A07 /* SDImageIOCoder.h */, + 070EC055ABB58F2DE3D093EEB55C18F7 /* SDImageIOCoder.m */, + 1255387576CCE8313FF05DEDAF799591 /* SDImageLoader.h */, + A514397B4D917730AB6D898D6305E2A9 /* SDImageLoader.m */, + F1FF064C40D7D723E9880B09ED29008D /* SDImageLoadersManager.h */, + 84A22F912D671BD9C38E83D82CD609F5 /* SDImageLoadersManager.m */, + 52CEA02CA2C86A695488682B0ED4643E /* SDImageTransformer.h */, + FC4E8FE35DCD38D7A7E1980DCBAA4BFB /* SDImageTransformer.m */, + 3669B9D9B4922F9AEC4046F6C6A18C8F /* SDInternalMacros.h */, + DFFB6D1532803A3F738F4A9FD59EBF77 /* SDInternalMacros.m */, + 66E740293F0165C37F9706BD734847B4 /* SDMemoryCache.h */, + 6C3AE4ACBD0DF8C1211665C01F41EFD8 /* SDMemoryCache.m */, + D488DBC8E27EED6616FE1AFFF663B7D7 /* SDmetamacros.h */, + F9BA14945E139C4567A39D99223B4A74 /* SDWeakProxy.h */, + EF93B3640C08C144E0F52756EA96E8D3 /* SDWeakProxy.m */, + 04F2E273AD98B5402439CC78936C5217 /* SDWebImage.h */, + 9AEA63AD0F5D203B883FE2860A36BF94 /* SDWebImageCacheKeyFilter.h */, + 6357121AA9EC74D1AA4218F756C2EEE1 /* SDWebImageCacheKeyFilter.m */, + 8714EB5687EBCDAB9ED109CBA2304678 /* SDWebImageCacheSerializer.h */, + 881A35A4B8A8F46F01049907FE90A46E /* SDWebImageCacheSerializer.m */, + E5BBF9FF824780EF9D3A870677253467 /* SDWebImageCompat.h */, + 2E5F7F19C81AD93CA6819B2DC599E89D /* SDWebImageCompat.m */, + B3EFA030454F7A7EFF92DA22D9943AFF /* SDWebImageDefine.h */, + B679C0655074D606AA2C774339FD7D46 /* SDWebImageDefine.m */, + AFAB1F0E95253035F38051174F68B468 /* SDWebImageDownloader.h */, + D6E3B653DB0FD359B9959046355F7388 /* SDWebImageDownloader.m */, + D823FB07B92337051CE017901F7E34A0 /* SDWebImageDownloaderConfig.h */, + 8E181961FCB60B6D14994C2890037357 /* SDWebImageDownloaderConfig.m */, + DF0BBA9B42464B4176B06338BCAADE41 /* SDWebImageDownloaderDecryptor.h */, + 3C0BD0C10DA136133A117EA08236E700 /* SDWebImageDownloaderDecryptor.m */, + 2335CA9DB919E6FE3491B0DC6ED22569 /* SDWebImageDownloaderOperation.h */, + 33C7A38BE28DEEA49F3A692023E68CD5 /* SDWebImageDownloaderOperation.m */, + D479BA1C8C604B48DA8A04018EDA3382 /* SDWebImageDownloaderRequestModifier.h */, + 49165D3F80366D32186A3AAC57E6D8AC /* SDWebImageDownloaderRequestModifier.m */, + AD696186A1BF2A482C52650529E13051 /* SDWebImageDownloaderResponseModifier.h */, + D35260602FA0F8F5989140704877FD64 /* SDWebImageDownloaderResponseModifier.m */, + 095150C2759A526C892A2B6132FCBEE9 /* SDWebImageError.h */, + DA665001896216EC56E38F8B6CF9C11A /* SDWebImageError.m */, + 771CD80A64A178845FC2C4BB567A4538 /* SDWebImageIndicator.h */, + 29CE0D7F908564A238F70D76322D7C83 /* SDWebImageIndicator.m */, + A7FBF8F01AE1585F2D8153B34446ED00 /* SDWebImageManager.h */, + 1CCC26D7A014F04D3FF49AF42C9F966C /* SDWebImageManager.m */, + 6F7EE4FA982C7FB8A72E152F7448932D /* SDWebImageOperation.h */, + 759AF02F1630A1D1A0A68E6A36D7C296 /* SDWebImageOperation.m */, + 381C0C51650DE5BB3FF030BC00F289F7 /* SDWebImageOptionsProcessor.h */, + C8E968C43C6B5C68801618FF48203921 /* SDWebImageOptionsProcessor.m */, + D9099313D0213D6D25EC9DB1627C3A64 /* SDWebImagePrefetcher.h */, + D6EFAB0D634A7CF321E4DE5C37DD9A91 /* SDWebImagePrefetcher.m */, + 60563E42F8C2BDF7A5316DD00173C890 /* SDWebImageTransition.h */, + 9B30693507E84DDEC66045E3DD7397AA /* SDWebImageTransition.m */, + 37065A75D83E7396C1993697D64B2C16 /* SDWebImageTransitionInternal.h */, + 4CAB3DAEF0E00F0F21C97646381AED5F /* UIButton+WebCache.h */, + 07362453DEAADF8829AA12FA96BCE721 /* UIButton+WebCache.m */, + C57FCF8705AA31A1608CC0053A7C56B2 /* UIColor+SDHexString.h */, + 2AC8556128C53E4DDFF0360719135975 /* UIColor+SDHexString.m */, + CAE391A4AB25A8264FABBB5A8646EF2B /* UIImage+ExtendedCacheData.h */, + 59CA764D4D271AEEA362F8B3EC71ED60 /* UIImage+ExtendedCacheData.m */, + 3A65777FEF1D37CB29AAA9B70EBAC6C9 /* UIImage+ForceDecode.h */, + 38B44D679DFCCC7F57518443D86AFF4E /* UIImage+ForceDecode.m */, + 493CC25D5A1C1722BB3C9A944434F6C3 /* UIImage+GIF.h */, + E7E49E1A2E12BC5E171A2E605535C23C /* UIImage+GIF.m */, + A01F184A36753F1D2B521D2E3A311EFC /* UIImage+MemoryCacheCost.h */, + F22ED9F84F9FF9D560A293ECEF669F61 /* UIImage+MemoryCacheCost.m */, + D0F5589533F2D0723DEADB5EBC6D7482 /* UIImage+Metadata.h */, + 9BA1F95BC2AE0EAB023475411F2E5D65 /* UIImage+Metadata.m */, + 7F9F6F40AB8B6C82E514BD3868B3C40D /* UIImage+MultiFormat.h */, + 5A9FA9509C89FFF41AE1164D36C0C985 /* UIImage+MultiFormat.m */, + B28DB461D2927E771DBAFDC89DBA4548 /* UIImage+Transform.h */, + CDCE0020309A5F2ADDFEEAA7592443CF /* UIImage+Transform.m */, + 050E9C412B482842673928065F7D1958 /* UIImageView+HighlightedWebCache.h */, + C321EB295C351AF59772E6AEE2A6D27D /* UIImageView+HighlightedWebCache.m */, + 546050D3806424147A820EF88B7C56C4 /* UIImageView+WebCache.h */, + 5C4B739BEFAA0E94F4B683D81609CE1C /* UIImageView+WebCache.m */, + 5CF4D2FE91FD3D313739E44B80DDA00A /* UIView+WebCache.h */, + B797D80EB0169E30138FE4FBEE6B2DC6 /* UIView+WebCache.m */, + 89227E5AC00A91AE71BB799F2AA978DF /* UIView+WebCacheOperation.h */, + 0E70FF339EB00931C8B39F8AB9932B20 /* UIView+WebCacheOperation.m */, + 8123DF9F96F2C3A468AF0A2227154768 /* UIView+WebCacheState.h */, + DCCD650D6DF16F350F448384A3F516A8 /* UIView+WebCacheState.m */, + 91B900BBA96F456ECB41DFFB16E05763 /* Resources */, ); - name = VideoCodecDec; + name = Core; sourceTree = ""; }; ADF8C7AD26A943E962DD067925716E79 /* BaseCell */ = { @@ -11001,34 +11825,35 @@ path = BaseCell; sourceTree = ""; }; - AFAF47CCB9BA208269AE649A199A3B17 /* mux */ = { + AE75299C0EE0ECF2B561F97C6DEB36A1 /* Support Files */ = { isa = PBXGroup; children = ( - 2154EC194925378F4B4970367A60560E /* anim_encode.c */, - 6011940F094EBFF0D2FFF6A06B49CCBB /* animi.h */, - 0BCA7D797DBE802EE6DA6AF8A258915C /* mux.h */, - BDBF84D69482C7EB8833D25EF4FED0AC /* muxedit.c */, - 07E4938D682DFDF7C5305E3A9D02AF63 /* muxi.h */, - F2212D5CB880E70DE3D1030A08CD30A9 /* muxinternal.c */, - 3556F02ACB3F57E398FEDC3AFE44F82A /* muxread.c */, - ); - name = mux; - sourceTree = ""; - }; - B02A2CA0E736D318D7892B6085E90794 /* Support Files */ = { - isa = PBXGroup; - children = ( - 4D3487DAD648D7A78DB51E4EA1AF1772 /* AliyunOSSiOS.modulemap */, - 3D3102A78D323A1EB954026A27C7BB82 /* AliyunOSSiOS-dummy.m */, - 5181AB30D3F31C421FE34E1B0E6EB96C /* AliyunOSSiOS-Info.plist */, - A3D2308349C7FAA2DB91A10C02DCF9FB /* AliyunOSSiOS-prefix.pch */, - 7E65EF5DD78F66325A573218AE7EA5E1 /* AliyunOSSiOS-umbrella.h */, - B1821A84FEEDC79CEFFCF904DEB92F3E /* AliyunOSSiOS.debug.xcconfig */, - 636C9F5B94ABEC692A8C134264864AA7 /* AliyunOSSiOS.release.xcconfig */, - BAA6A39ED98465F092CAF01FE55BF1F1 /* ResourceBundle-AliyunOSSiOS_Privacy-AliyunOSSiOS-Info.plist */, + E161221EBA05B88D62E746414C560D43 /* TZImagePickerController.modulemap */, + A30C065247D0D713F216F91EB2CCE0A1 /* TZImagePickerController-dummy.m */, + CB051D6342E35A62748D5695DA22D676 /* TZImagePickerController-Info.plist */, + B43FC3C5CC9B826935924F7F1EA12B8B /* TZImagePickerController-prefix.pch */, + F4D5EF3E9841636963E4EDDCDF6187F1 /* TZImagePickerController-umbrella.h */, + 35CC6DBCAD38C47C3CD1ED1C276F2416 /* TZImagePickerController.debug.xcconfig */, + 6605C6E24318FF0858D7894465B8CF34 /* TZImagePickerController.release.xcconfig */, ); name = "Support Files"; - path = "../Target Support Files/AliyunOSSiOS"; + path = "../Target Support Files/TZImagePickerController"; + sourceTree = ""; + }; + AF3552D6A8DD948563A19DF19ACECD70 /* Resources */ = { + isa = PBXGroup; + children = ( + 6E83C30EDB74218EA5F36BAAEA976F47 /* Media.xcassets */, + ); + name = Resources; + sourceTree = ""; + }; + B03AADA0FC0CA8EDCD7A2A1E5C2935C7 /* RtcBasic */ = { + isa = PBXGroup; + children = ( + 42490F23F25493A4B938BCD481175E85 /* Frameworks */, + ); + name = RtcBasic; sourceTree = ""; }; B1835287B0ECCFADC3F2B3D388102C78 /* TUIConversation */ = { @@ -11051,6 +11876,21 @@ path = ../TUIKit/TUIConversation; sourceTree = ""; }; + B1C39EA669FD5BDAD43672BB437B088B /* Support Files */ = { + isa = PBXGroup; + children = ( + 83322E3A2A4D13B2A737B5A98FF0A962 /* QCloudCore.modulemap */, + CEF0ED2E06CBE14491AF9FD14CEF3B9C /* QCloudCore-dummy.m */, + 3CF202DD067955FFE62E96A64DB799E6 /* QCloudCore-Info.plist */, + 0A5C406889543896E1481825ACC14D92 /* QCloudCore-prefix.pch */, + F73BA879E079E1A5AE0928F81B96C87F /* QCloudCore-umbrella.h */, + 9ADEC0611E7F3F1C59D7EC77A23F7069 /* QCloudCore.debug.xcconfig */, + A16D3E962028F954BA527E95B4340C14 /* QCloudCore.release.xcconfig */, + ); + name = "Support Files"; + path = "../Target Support Files/QCloudCore"; + sourceTree = ""; + }; B31C4A87E39A02F53B23D4084842BC66 /* UI_Minimalist */ = { isa = PBXGroup; children = ( @@ -11065,138 +11905,53 @@ path = UI_Minimalist; sourceTree = ""; }; - B4189DA46BB2C392E1BD6455C5FF6A3F /* SSZipArchive */ = { + B44D8271522EA5AB29E307D3372F3D1C /* Support Files */ = { isa = PBXGroup; children = ( - EBFBDD5D4DF49E660553FC2ADF20385C /* mz.h */, - F75646AC5A9BF6AC37CFB3EF8368C481 /* mz_compat.c */, - 048C1B18194E62C7C04606BAAFA7B8CE /* mz_compat.h */, - 35129B8F9F4AF6040B3700EBF65B3561 /* mz_crypt.c */, - 90098B3496EF9217A27651C6B216D919 /* mz_crypt.h */, - B7AC9CD559132EAAE413E73BF1A905A0 /* mz_crypt_apple.c */, - 928E50522E71F758AA262A680F299967 /* mz_os.c */, - 8136A38D81A5B3FC752562D97578AD4F /* mz_os.h */, - 76A0029CABE4A428453EE2F68F334E20 /* mz_os_posix.c */, - 59579BD44E27B2EDDEE8380595FEB43A /* mz_strm.c */, - DC49539AAD2F9F64523325C9C029A155 /* mz_strm.h */, - E2CFD475F1D5E2205AD0C1BDEC89C0FC /* mz_strm_buf.c */, - 0D1B9EFB46C06E718A9D066B8AB19E39 /* mz_strm_buf.h */, - FD74A0CD929DEE8AFDFC9AA9C3BB5C37 /* mz_strm_mem.c */, - 65174360761DB66FED4DE75C805F65F3 /* mz_strm_mem.h */, - E4B534B1418DFB31D1AB08E45A77482C /* mz_strm_os.h */, - F853F1D51DACCB15646E344EC336589D /* mz_strm_os_posix.c */, - 96C1FAD7D1DCED5CCFADA9DB19A77B86 /* mz_strm_pkcrypt.c */, - BD32AC887A0618F4E3DA892E88AE55D3 /* mz_strm_pkcrypt.h */, - 44DEBECD3D533181312AF5854D8B1593 /* mz_strm_split.c */, - 5C90057D3802BA6FEFBC84A8341DE7DD /* mz_strm_split.h */, - D041FFCD34A6FD5AEA5E5A185B1E7CE7 /* mz_strm_wzaes.c */, - 80E3C2E300CD116D6119C5D6C7723351 /* mz_strm_wzaes.h */, - 85425BC7EFF4D34A868E3BD6BDDD6A49 /* mz_strm_zlib.c */, - E44CE15790053A4E0520E54B59416561 /* mz_strm_zlib.h */, - 266B7F9B95BC2A2C9927CF9ADF6AA6B9 /* mz_zip.c */, - 3B93AE270291BC5CC9DBCD6392AF31F9 /* mz_zip.h */, - 15860ADA4F37D1ADAED9FD137CFFCDEA /* mz_zip_rw.c */, - 7C6E5DAB982BC66D49DFAF9F20D7E984 /* mz_zip_rw.h */, - D6D3758013920FC1F345973E944F8016 /* SSZipArchive.h */, - 982AB3BF6B2628EAF0F6B75E9C15E3F8 /* SSZipArchive.m */, - D4C3D0176CBA55DA8C3B2C968E77902A /* SSZipCommon.h */, - 1C203BA082EC1DA4047762B2C81E58B9 /* ZipArchive.h */, - 7BB3502A57163A58984BC8508B71535E /* Support Files */, - ); - name = SSZipArchive; - path = SSZipArchive; - sourceTree = ""; - }; - B4D9536764F0ED4CF0E9A4BDA375FD90 /* Support Files */ = { - isa = PBXGroup; - children = ( - EFF2CBEDDDEF3A94EFB94079955A8A44 /* YYImage.modulemap */, - F2AFB8155C88CB1513B0A52BC47AF899 /* YYImage-dummy.m */, - 8969FA50AAC307317D3F05778293401D /* YYImage-Info.plist */, - 68C8302E274DB017279690C70A5541E4 /* YYImage-prefix.pch */, - 39B7511BB3C2B480AB6836AB01019C9D /* YYImage-umbrella.h */, - 3B21B1E28B47B3F45DC3D0F3DF148E5A /* YYImage.debug.xcconfig */, - F372B39EE831B089CBFC2E8A71C0AE92 /* YYImage.release.xcconfig */, + FE487B1D78699009111C03EA22D6D6DF /* Zip.modulemap */, + 1BE696AE898CF859D435CA3561473095 /* Zip-dummy.m */, + D262B47F6425F26FE5153FE17935A628 /* Zip-Info.plist */, + 17627534BA2F0834C096BC0D027BCF76 /* Zip-prefix.pch */, + 64E8FCDBEE64029AF0E2945C34E14D6F /* Zip-umbrella.h */, + C5AE11E7C369B0D007F232374528F4E4 /* Zip.debug.xcconfig */, + 4F9C556BDAA7116AA9A7D61C98AC802E /* Zip.release.xcconfig */, ); name = "Support Files"; - path = "../Target Support Files/YYImage"; + path = "../Target Support Files/Zip"; sourceTree = ""; }; - B7284534D112AB1D992BA93D65D9D6BE /* Support Files */ = { + B54A38FCEE1EA25F5CE6A7FE9673C7C9 /* Masonry */ = { isa = PBXGroup; children = ( - 93BB15B8CEC4558EB68A0E347E85D1BD /* Protobuf.modulemap */, - 225B9D19B39419A86C8B3D9105211FA3 /* Protobuf-dummy.m */, - 0F13741EC1EEFBC284A2043D73B2E65F /* Protobuf-Info.plist */, - 4781464C64215FFAC729655CC585DBE7 /* Protobuf-prefix.pch */, - 853B2355369C0C0B87455A9D35FDE385 /* Protobuf-umbrella.h */, - DA73079D48B0F03AB6E8813303F0D692 /* Protobuf.debug.xcconfig */, - 3BFEFA0A0B3119C90493AACB2952A551 /* Protobuf.release.xcconfig */, - 589BA9ECEFA3519B8CACA91E85CEC710 /* ResourceBundle-Protobuf_Privacy-Protobuf-Info.plist */, + B1960E596D16DDF3EF0C424A461DCF7D /* MASCompositeConstraint.h */, + 012867F77EA4C06969F8E589E4431624 /* MASCompositeConstraint.m */, + 45064926640EDB7B2361D4ABB46D48BD /* MASConstraint.h */, + B87B21B49952B070175DF9812055AA23 /* MASConstraint.m */, + DFD7DFDBB62717B2AAC2E75ED67A2787 /* MASConstraint+Private.h */, + 229456A0002B546AEB3B11619B034725 /* MASConstraintMaker.h */, + 250B79B6BF275D0B3463ACD42672DCC2 /* MASConstraintMaker.m */, + 965810800994EDF115FC7C81D968BB02 /* MASLayoutConstraint.h */, + 1886FABE4F852B01CE143893D8365EFD /* MASLayoutConstraint.m */, + F3ACCE4A9824FD6D2834081E621B653D /* Masonry.h */, + 8B1CD231645C46DF63531F35F10D53BF /* MASUtilities.h */, + E94961F742C6507D2C08B64FAA14C0D4 /* MASViewAttribute.h */, + 55A0F6E976D71D48E4793E256F4C8AE5 /* MASViewAttribute.m */, + 13FEC6BC9EE134DDC176142FABA564F3 /* MASViewConstraint.h */, + CC51C3581194BC4AC710858D53F46EB8 /* MASViewConstraint.m */, + 4EEB90D0BBD347D13F626D96914661D8 /* NSArray+MASAdditions.h */, + 95FE8358D7747A179D03A5C18C0782AE /* NSArray+MASAdditions.m */, + F0351BD5F213FBC346E2339F8043EEA4 /* NSArray+MASShorthandAdditions.h */, + 5FB2FC28DD2551C40A5A86D69A610B77 /* NSLayoutConstraint+MASDebugAdditions.h */, + EF8AFD9D3F89C4C873F22404656CF56A /* NSLayoutConstraint+MASDebugAdditions.m */, + DB30E41C786F3ED229A934C038771D8A /* View+MASAdditions.h */, + C47C14012AEB64E5D97CDFD4AB79E6BB /* View+MASAdditions.m */, + EB84278F9C240163984059166FE0EA11 /* View+MASShorthandAdditions.h */, + 7EF55A83A84BDDBDEE9CEFAF550BEBA9 /* ViewController+MASAdditions.h */, + B285892E042AC483BB9B662E55DCF6B7 /* ViewController+MASAdditions.m */, + BC7C79FB68365A1BA745A56EC048B0E7 /* Support Files */, ); - name = "Support Files"; - path = "../Target Support Files/Protobuf"; - sourceTree = ""; - }; - B76695B951E8F27C3142A6A367E5504E /* Products */ = { - isa = PBXGroup; - children = ( - A4FA15D44DF6BAC7550EDEED10862AA3 /* AFNetworking */, - 8F0D4D4EC80F62CA54EAD5119A89EF03 /* AgoraLyricsScore */, - 0C6AF30DA9F94BBA4AD5F3DA3FA30177 /* AgoraLyricsScore-AgoraLyricsScoreBundle */, - 14A3FE4DA4CE007A926AAC6102122F2E /* AliyunOSSiOS */, - 5D73ED9DCB04D101A1FA489C7FB2A54D /* AliyunOSSiOS-AliyunOSSiOS_Privacy */, - 2CA925CF410A32FD7BF052406767BC59 /* AvoidCrash */, - 5BA6046B4C2674409C0D5625F45F8769 /* BRPickerView */, - B5786D7DC0F4D5F19C5C3E4160C54D30 /* BRPickerView-BRPickerView.Privacy */, - A3A80BA70CFB7F75C5391BEBBBA8C9DA /* FMDB */, - 148D9AC15C4A9777E5ACBB46C03FE218 /* FMDB-FMDB_Privacy */, - 98527D7196957AAB07B79E2E2AFDE23E /* IQKeyboardManager */, - A5B2838E4866923F3DA717B058EBFF5D /* IQKeyboardManager-IQKeyboardManager */, - C3A46B03C308EEEB11F2A62BA5D2E8BE /* JXCategoryView */, - BB4F011171FCB76B1AEBE390F843E930 /* JXCategoryView-JXCategoryView */, - 2F4A1CCB21DB7EA5A2ACEB11E374FBCA /* JXPagingView */, - E03F152E95B6924D2486511337D24503 /* JXPagingView-JXPagerView */, - 5E4674603A5D5B9215FFA0F8E69F8B71 /* libwebp */, - A3951CB49DB05AD7C1AE14AA7D28A1F4 /* LLDebugTool */, - 1FFED36A657123030ABB700256D73F15 /* Masonry */, - 8B8FAB0D627B17EDE1366984278705D9 /* MBProgressHUD */, - E49D6D248DD1CEE584E6776B9164A1B2 /* MJRefresh */, - 7E3097CFEFDA621E9FB0E62009FF87FC /* MJRefresh-MJRefresh.Privacy */, - C0E79AD53820186F5DE86726D150F447 /* MQTTClient */, - 8806024254F3EB0BE3C8A4EE1447B145 /* Pods-QXLive */, - CF003CA42C1A3BEB0DB3D0AE908137A2 /* Pods-QXLiveDev */, - C2105C94812B6214B154F54DCEDB72AC /* Protobuf */, - F777222FFBEEB0CE4650EE8A00938A60 /* Protobuf-Protobuf_Privacy */, - 8D4557A35A355F78DD9FFD8EAC379905 /* QGVAPlayer */, - 9621C6383F5733C35183B2DE886C7EC6 /* ReactiveObjC */, - 8B6CF5C20C32EE9F7F0862FF892524DE /* SDCycleScrollView */, - B0B214D775196BA7CA8E17E53048A493 /* SDWebImage */, - CF1281E58AA1045D4B7F33FC56691C42 /* SDWebImage-SDWebImage */, - FCF61D9B2B75054A9A3185DDC609B7FF /* SDWebImageWebPCoder */, - 91B23470DEB9A986332BEB5034234BC7 /* SSZipArchive */, - 3079401082458950495F2DC04E71FC4E /* SVGAPlayer */, - 69548067BF8002DF53941149BD410A1D /* TIMCommon */, - 1861D51E6AFECEB294232A4496429A63 /* TIMCommon-TIMCommon_Privacy */, - 8C3F1A0419AAD8065736DC7968102C54 /* TIMPush-TIMPush_Privacy */, - F00D49623A9DB6BF88121D1D25391F36 /* TUIChat */, - F8879DB9AD3F9A8F85D8C38EC2024D15 /* TUIChat-TUIChat_Privacy */, - C8FFAB06408747E7BA2A353127D4ACF8 /* TUIConversation */, - FC14DF02839D1B209B22801C7FCC416B /* TUIConversation-TUIConversation_Privacy */, - 37EA43C6154607EB4C385B067D4FF381 /* TUICore */, - 62476AD95833F1EC15B5FC7E01E6CB19 /* TUICore-TUICore_Privacy */, - BF12EF87337DED2D5544A4B5636CC4C7 /* TXIMSDK_Plus_iOS_XCFramework-TXIMSDK_Plus_iOS_XCFramework_Privacy */, - 8E1D5C0FCA0D872C3F21E87F25420681 /* TZImagePickerController */, - 642FEF38E132FB38DD2B59B88F069917 /* YBImageBrowser */, - 48ACF38225AF5129416A1F090F6D3286 /* YYCache */, - 1716B5FBCF0DF55C120AC52CFC22452D /* YYCategories */, - 0C6F4829D47D1826F47CDC4264F9F6A8 /* YYImage */, - E460D5B0416D36F66EE8EC89E5D2FA0A /* YYModel */, - 71762A728913EB440C97D3616D291AF3 /* YYText */, - 4FC1978206616CE319648B302B05AA8A /* YYWebImage */, - A845402EF959A57A4640F2A4F5155943 /* Zip */, - ); - name = Products; + name = Masonry; + path = Masonry; sourceTree = ""; }; B7F1F19E3AE743A164B04885DBDE9F7F /* Reply */ = { @@ -11225,60 +11980,6 @@ path = Reply; sourceTree = ""; }; - B80D4E61E90DFC03408699A39D7B6355 /* AgoraLyricsScore */ = { - isa = PBXGroup; - children = ( - F0569AB649FAD1979AAD043A9886A4D5 /* Algorithm.c */, - 5C5C15F018F38A042C78F89DCC19685B /* Algorithm.h */, - E4FF19D5317D1ED5C5188BF89D337F6A /* ConsoleView.swift */, - 32F4C4B2065DD641B80B483B67E859CB /* DataStructs.swift */, - 16F9963AA25300C4236F0E214BAC6582 /* Downloader.swift */, - AFC8D0AE1EB81A7CD6655C9AD0556CA7 /* DownloaderManager.swift */, - 8DD2401B49B91450CE48170A14EEB9D0 /* Events.swift */, - 8B0FD18816925B0577902324CB9DFBBC /* Extensions.swift */, - DDEA1A9F93242C3A31DD49B8388F96BC /* Extentions.swift */, - AB36CE6695767CDFB7C1C2C0AF42AAFB /* FileCache.swift */, - D8F3B10B718C40E0674DA5A179D24AE8 /* FirstToneHintView.swift */, - 176EC1FA23F354ACC3E12A660507847F /* KaraokeView.swift */, - 8097A0CFE095F6B88DFC00726F709043 /* KrcParser.swift */, - CF8EE222BE8FE0853FC74C87C3A9BCF9 /* LineScoreRecorder.swift */, - 43D1E3261820DB9A9433A6EB37B8265B /* LocalPitchView.swift */, - 2BEFFCC856F9435D518C2E4C45BD84C9 /* Log.swift */, - 49FBD338226836B031A24A27762915F5 /* Logger.swift */, - 35EA76B0EF001DAAAE68CB5B62F28883 /* LrcParser.swift */, - E67BB8DDE723F1C65F52E293178094CE /* LyricCell.swift */, - E188B8AEC86B133F5CDCF5D6FDC6E481 /* LyricLabel.swift */, - 24D3D4145CE006F07F0559089213AC63 /* LyricMachine.swift */, - 7B5324C47C8F7979E68D5933AE51B7AC /* LyricMachine+Events.swift */, - FC566BF6FA3581636EE1F0AC3040D321 /* LyricsFileDownloader.swift */, - 5127BAB81383DA0D0B1DE1E9CFD54040 /* LyricsFileDownloader+Info.swift */, - 27CDF3758333D3474CC079298D4736DD /* LyricsFileDownloaderProtocol.swift */, - 55BE2719E50A6EA734B586CE45848688 /* LyricsView.swift */, - 4CDB22E59EA8FC62CC575A7919518A56 /* Model.swift */, - 84784F1779ED49885BEDC482DE6E959E /* Parser.swift */, - F280EF245536DF1D03450F4AD1895B9C /* PitchParser.swift */, - 4BC4121E1020CEE8E5BCE66D6B415EB9 /* ProgressChecker.swift */, - E97B946024F34982FB86D50C6A6F70FF /* ScoreAlgorithm.swift */, - AF4200171D98AF34C3A7BAE2D2F7C9BC /* ScoringCanvasView.swift */, - F660B5AE7DF73D1980AD5BC904ED7B98 /* ScoringMachine.swift */, - 031AB6E008FD38B9576E2930D353FD15 /* ScoringMachine+DataHandle.swift */, - 44D299FD67E11862321D7F710B260C3D /* ScoringMachineEx.swift */, - 6ECEDD2A29867A53C07C426C67AFC270 /* ScoringMachineEx+DataHandle.swift */, - CD14AEF254415F9CAFB098159077C5BB /* ScoringMachineProtocol.swift */, - EAE59A937C0D00ADB586F516A7B50CDA /* ScoringMachineProtocol+Events.swift */, - BBE9BE2772E3AD3AA9B174F7E636D0A6 /* ScoringMachineProtocol+Infos.swift */, - 3CBD739B3337D8AB7A89A90C56DA07A3 /* ScoringView.swift */, - 7427E2A32C82308FCD03E34DA132A19F /* ScoringView+Events.swift */, - 12D8D0DD804774D4BB031F4294F17C2C /* ToneCalculator.swift */, - 5C2D76A62ED836207C184BBC40C69766 /* VoicePitchChanger.swift */, - 967420287935BB8D5BD94A2094D80BBA /* XmlParser.swift */, - 0FFA05FBEBE421F614B22065EDD1C966 /* Resources */, - D015DBC79C718646B4A950BDB78759F8 /* Support Files */, - ); - name = AgoraLyricsScore; - path = AgoraLyricsScore; - sourceTree = ""; - }; B8702409602E66193FFAAA0F4DE81788 /* Frameworks */ = { isa = PBXGroup; children = ( @@ -11287,110 +11988,382 @@ name = Frameworks; sourceTree = ""; }; - B9CB50BCEFA107B75AAB30F2D193F9D0 /* AINSLL */ = { + B881304D2A8814DA549A89F350EDD7BA /* AgoraInfra_iOS */ = { isa = PBXGroup; children = ( - 4582D5752F7D3EC7C3E12225698A613B /* Frameworks */, + 637749E8BB6B2E2343E3451CFA12E293 /* Frameworks */, + 3DDB300666C43DD01FF7A59FBFD0E02D /* Support Files */, ); - name = AINSLL; + name = AgoraInfra_iOS; + path = AgoraInfra_iOS; sourceTree = ""; }; - B9E145963D39B173C31042F0D8AAB8EC /* VQA */ = { + B9937B2D0C1ECB3B78433004A4A5501D /* Ruler */ = { isa = PBXGroup; children = ( - DD0B2C8F81BC48B5A1FE877E6BE748C5 /* Frameworks */, + 947BB50F945ACD93C0920B78DC1FA996 /* LLRuler.h */, + 771E3184D99EB64F4B54612437318B74 /* LLRulerComponent.h */, + 04695F3AD3921005A28EBA538ECF308E /* LLRulerComponent.m */, + 9C649B3DF8BE9CAD8B695B3552409074 /* LLRulerPickerInfoView.h */, + A465273CA4937B252DFCEF9FE85DA721 /* LLRulerPickerInfoView.m */, + B92838BE8B1A42670B845820CB759CB9 /* LLRulerPickerView.h */, + A526B70077C822C241012C9A03910FD9 /* LLRulerPickerView.m */, + E9B2C06C987B4A6E04E58710FBC3E339 /* LLRulerViewController.h */, + AAC766598D2FF55AAF23A0F6A46B9A60 /* LLRulerViewController.m */, + 036A8493F267A265546920A8E22CBEB9 /* LLRulerWindow.h */, + 91F8647124E0787F55038BB3D25FBB27 /* LLRulerWindow.m */, + 53FF1CAC382D4C785DB69A3A2BBE1ACC /* LLWindowManager+Ruler.h */, + 2B65FEBCB0EF76CFAA00EC8509884F17 /* LLWindowManager+Ruler.m */, ); - name = VQA; + name = Ruler; sourceTree = ""; }; - BB14CBFAA411BDFA14C3C31938B8980E /* Core */ = { + BA56D567A7EAD2ABD33F6ED205CBA128 /* Frameworks */ = { isa = PBXGroup; children = ( - 69CDE4A0B26080E0536A05BC4BC16084 /* NSObject+YBImageBrowser.h */, - BB7C656C69B7991466749BA9583DCEC9 /* NSObject+YBImageBrowser.m */, - FBA1D9AEC1D9116B235CC76CF5B856BD /* YBIBAnimatedTransition.h */, - 448E2DA9F08232ACEBC665701C58C0FA /* YBIBAnimatedTransition.m */, - 848246EBE770CCC005AA4310A97E5DC8 /* YBIBAuxiliaryViewHandler.h */, - 983EDB64D59FAC1C1EF21D3C691631E5 /* YBIBAuxiliaryViewHandler.m */, - 4AD969C7C7F56A47BA0E78069F1FACFB /* YBIBCellProtocol.h */, - B5B05BEABBCA1F1EE87AA9BDCE556886 /* YBIBCollectionView.h */, - 07DF01BD99A3A2A212AC4C0BED8C6192 /* YBIBCollectionView.m */, - E5593FF637FE8067AE3574CA666F390D /* YBIBCollectionViewLayout.h */, - 20A60CFBEC429CE08E5B9CD466502973 /* YBIBCollectionViewLayout.m */, - 73F948957DADA2D8DE0DE6E66F0DD91A /* YBIBContainerView.h */, - D86288874EF226EB8351E9D4D9273A92 /* YBIBContainerView.m */, - 7ADE8D264B11576DC5C2A85D8F5A0CCE /* YBIBCopywriter.h */, - 107B9B81F6D295C40C085A124188A1A2 /* YBIBCopywriter.m */, - E2ED00FBD4C5E1E3B13C45A817CDD7AD /* YBIBDataMediator.h */, - B30A138F614E2D96E72C6CFAA3EF1931 /* YBIBDataMediator.m */, - 5A5BA70FEC1C78E7C0AD01C1748FEFBC /* YBIBDataProtocol.h */, - 23F44CAF0546D581DC68E8E12AAD674C /* YBIBDefaultWebImageMediator.h */, - 5F14B4836CDC1D67C95178E6904F2980 /* YBIBDefaultWebImageMediator.m */, - 7505374FD5BF0FA86428DDD873470EE7 /* YBIBGetBaseInfoProtocol.h */, - EA17CD937CA3EA89FF79F818E6703B37 /* YBIBIconManager.h */, - DC0E38C4B8DAC14B0CCFCA2FDD46687D /* YBIBIconManager.m */, - 171BC9A890FA78716C470AE7F0861E99 /* YBIBImageCache.h */, - 67643ADF05891CEDA4BB5698ADAD6B90 /* YBIBImageCache.m */, - F0477B3BAFFDA16CA822D19B6277CDCF /* YBIBImageCache+Internal.h */, - 6923C8461B6129E9596F3084779EBBD7 /* YBIBImageCell.h */, - 26E5FD2367B4E5D6E3B7E4EF60AA985B /* YBIBImageCell.m */, - 49D936986B00F70F98A5F9D1DA0A4E4F /* YBIBImageCell+Internal.h */, - 83B805B5BBF823B4C369B80E72F3F789 /* YBIBImageData.h */, - AAD4A1BB55053FBBEBE321C9BB07A5C9 /* YBIBImageData.m */, - CE299E1203694BD2A9DE3A761032C7CF /* YBIBImageData+Internal.h */, - 3088EC7C57E1D1C446F9438801DBBD79 /* YBIBImageLayout.h */, - 73348A5BE5D65F1CA2B14253B1F29263 /* YBIBImageLayout.m */, - D9B538591C0A67BF7A17D4E356805B70 /* YBIBImageScrollView.h */, - 7740F3442EC022CD073B1C7C422B750B /* YBIBImageScrollView.m */, - 9730A5C0ABE243EAF832C27088081C37 /* YBIBInteractionProfile.h */, - 5166CB954C5718CAAFF59E4B954E576F /* YBIBInteractionProfile.m */, - 3BA4D99997626F46FFEACA76BE8DCA47 /* YBIBLoadingView.h */, - 1878A5067AE8B0473732790299DBB133 /* YBIBLoadingView.m */, - E737304B2404D251C27ABCD5567F1F52 /* YBIBOperateBrowserProtocol.h */, - A87C9E81F3486D7C4ACF5E119E8F26D2 /* YBIBOrientationReceiveProtocol.h */, - 1C743C0A955ACC0E0775005EB0D41E6B /* YBIBPhotoAlbumManager.h */, - C99F54A93DE0F31868318100E3D1BFDE /* YBIBPhotoAlbumManager.m */, - E58237B2B4A6B1DD42E9F847AC66FF60 /* YBIBScreenRotationHandler.h */, - 90CC5D58CDA022F0DAD838A155F88E67 /* YBIBScreenRotationHandler.m */, - B76A88E31B455C6DD5C9FCDE72B9F4BE /* YBIBSentinel.h */, - B21894011FB4467D95E770A70332E873 /* YBIBSentinel.m */, - 43C737B86D6630A0E0854C7FEAE59957 /* YBIBSheetView.h */, - 7E276F24B861711DE1495475D746E403 /* YBIBSheetView.m */, - 5FB8BC623C6D9DD9C68B774ACCADC0E9 /* YBIBToastView.h */, - 2CA663CF2987E10DC0841B1A0868DAB9 /* YBIBToastView.m */, - 8107B3A917F377B3D51773067E1849BC /* YBIBToolViewHandler.h */, - 6CE45F49ED4CFC035A2719F21DAF4F22 /* YBIBToolViewHandler.m */, - 78825BA551DB4A4895F1233B3007B119 /* YBIBTopView.h */, - 3B7558B9B194726397EEBD52EC664E87 /* YBIBTopView.m */, - E8C4DFAD7C4FD6624BB368350F29137D /* YBIBUtilities.h */, - AA4D60FFBE6EC179FBC8808525DA6D9D /* YBIBUtilities.m */, - DFD95C0DA4E39DDD8F4559673364C37F /* YBIBWebImageMediator.h */, - 0C89AC9F2BD2169E9824E33140DDE7C8 /* YBImage.h */, - 1A216F21A0B9C30986ED0630A2105BF3 /* YBImage.m */, - 5B745E760BF4AF934CB759C87F10EA22 /* YBImageBrowser.h */, - 3AC6BF1138B854446EC68BCEA6A76F18 /* YBImageBrowser.m */, - 4E63A23FAF92DD5F3251EF0B328F1C0D /* YBImageBrowser+Internal.h */, - 11531608C3500A1F0D08C7D212C1882D /* YBImageBrowserDataSource.h */, - E07715DD868637E7632ADA8EEF3D5795 /* YBImageBrowserDelegate.h */, - 8BD6E9E0B082EF7F5887BBB77BE4E0E9 /* Resources */, + A24548632BAE4EFF8D93A1EA64260F95 /* AgoraVideoAv1EncoderExtension.xcframework */, ); - name = Core; + name = Frameworks; sourceTree = ""; }; - BB333F4F14809E4F4EDDCF04E5CDB6B2 /* SpatialAudio */ = { + BA8A4851A814D3392B85C5B80CEB33FF /* Frameworks */ = { isa = PBXGroup; children = ( - 6F29A587A89C43D49E445068113D1228 /* Frameworks */, + 2BAC912E61281A688599CAF2535DF84B /* AlipaySDK.xcframework */, ); - name = SpatialAudio; + name = Frameworks; sourceTree = ""; }; - BC7A59ADB97437B43CBEE408FC4B914C /* Resources */ = { + BAA08C858F9BD84C2B9A1E7B7D33ED33 /* demux */ = { isa = PBXGroup; children = ( - A43B8E8CEA964FCB6B496724A7B22DDC /* PrivacyInfo.xcprivacy */, + 56B8F4D76A861932A8D1829CC0607A1C /* anim_decode.c */, + AF185AB44875D71E62BF2E58ED0F4C88 /* demux.c */, + D45A5B4953AC305222C3054D5C54F266 /* demux.h */, ); - name = Resources; + name = demux; + sourceTree = ""; + }; + BAFDEC8A4EF30E4F9B60C57671A9C5BE /* YYImage */ = { + isa = PBXGroup; + children = ( + 52D057529923E2CE785AE5DEEB0B190C /* Core */, + 5019B3FD3BA3C5FF35BB87C75752C8BD /* Support Files */, + F6EC3C128E0CE65C73279163CE27B12D /* WebP */, + ); + name = YYImage; + path = YYImage; + sourceTree = ""; + }; + BB81769C2F7A4B8EBEB9F9B854D51932 /* ReactiveObjC */ = { + isa = PBXGroup; + children = ( + A02006565CA489FA42F8C5D9F109547E /* MKAnnotationView+RACSignalSupport.h */, + 153EE398FE075A68208EAEED76E6725C /* MKAnnotationView+RACSignalSupport.m */, + 51ECC2497E7E3CE715361897E1C66AC4 /* NSArray+RACSequenceAdditions.h */, + 2BAAE3507872C8B9A98EDE04DD2B674E /* NSArray+RACSequenceAdditions.m */, + B68B32C40EAACFBF41CA0FBC1546C6AF /* NSData+RACSupport.h */, + 8D25EDCC9DB928F40CE0A38D790A2695 /* NSData+RACSupport.m */, + E0B6C8455312D1E21D836A863FAEB6B1 /* NSDictionary+RACSequenceAdditions.h */, + F2CA35F782DD82F3F4E47B1C834CB783 /* NSDictionary+RACSequenceAdditions.m */, + CF94AD26C9835BA712DC1A55C08DAEF4 /* NSEnumerator+RACSequenceAdditions.h */, + EBA00B33D07C2257E53459D1AA6DF78B /* NSEnumerator+RACSequenceAdditions.m */, + 29A7A5F23205732BB4A1F528C9D20946 /* NSFileHandle+RACSupport.h */, + 76879033625920D4331A6E74D64B6009 /* NSFileHandle+RACSupport.m */, + 5B6DDC7972DDADE492493B995D400DCF /* NSIndexSet+RACSequenceAdditions.h */, + E5E0E5B578A2414D1DF536E421A68252 /* NSIndexSet+RACSequenceAdditions.m */, + 2347A8311733C7AF43399482DB6E21C7 /* NSInvocation+RACTypeParsing.h */, + FF45AD9CA889C84D2B448F3E852058C1 /* NSInvocation+RACTypeParsing.m */, + 873C77F893A4816E5084555066F10F74 /* NSNotificationCenter+RACSupport.h */, + 4896AFD440B9327E4502FA57CB15D87A /* NSNotificationCenter+RACSupport.m */, + 66B5F51CA24193FBCE780EDC93E423BE /* NSObject+RACDeallocating.h */, + 1561E7BDCD20D0328E461774C81100A8 /* NSObject+RACDeallocating.m */, + DC8A31E600A792A21E14A87D62727918 /* NSObject+RACDescription.h */, + 0E38BF12D23CB438D23EBF8BE915E93B /* NSObject+RACDescription.m */, + 0700DE062786EA2F6D99770CE63467FC /* NSObject+RACKVOWrapper.h */, + 064CEDA45AB54736381BEF0722CEED17 /* NSObject+RACKVOWrapper.m */, + 9FF52FFF0BA5779BEB685AF03ED3B4D8 /* NSObject+RACLifting.h */, + 397DCE3E6D13B2709771BD62DFFF1D8C /* NSObject+RACLifting.m */, + 0CB3454E58FE75D89D3F63BC483B12CF /* NSObject+RACPropertySubscribing.h */, + 23196B90844E6084099C006D0089BE25 /* NSObject+RACPropertySubscribing.m */, + EE8DD1631CED20D33D65CF1D7410FD17 /* NSObject+RACSelectorSignal.h */, + B32E21934BB2E8E0CED0C7F3AE0919D7 /* NSObject+RACSelectorSignal.m */, + 85F9486B1EEC1FA8DC233D68E45DF135 /* NSOrderedSet+RACSequenceAdditions.h */, + C5A21116BFD10B2D4FEA6E079CFA608F /* NSOrderedSet+RACSequenceAdditions.m */, + CA0BED4EE8560104777515C15B1B17AD /* NSSet+RACSequenceAdditions.h */, + 3121FA43FAB28AEFB43B567F9077953F /* NSSet+RACSequenceAdditions.m */, + FA94166897E932CA6FF25C4ECC2DCFE1 /* NSString+RACKeyPathUtilities.h */, + A7B0A3711DFEF20A9200906048461419 /* NSString+RACKeyPathUtilities.m */, + B4450DA054D5D02EF98C692E495AC1E8 /* NSString+RACSequenceAdditions.h */, + 8F44CE3F4F0E453A47C43891F081FF7C /* NSString+RACSequenceAdditions.m */, + 4A35217855830B5FCBD9A22EF5A16B80 /* NSString+RACSupport.h */, + 4694FA28176755CD70F11DCD81CED0D1 /* NSString+RACSupport.m */, + 093538C874844EDC1A0A197042A45E9F /* NSURLConnection+RACSupport.h */, + F151C770BFB3BBC0A554E6D2997E8742 /* NSURLConnection+RACSupport.m */, + 263EE999B95713DD0960782B47CBB342 /* NSUserDefaults+RACSupport.h */, + A91DF9F24199E49B4664372B94BADF48 /* NSUserDefaults+RACSupport.m */, + 90391DF6CE0A93C6D9EA0ABCBF2EC469 /* RACAnnotations.h */, + 94F514CCC0F54DE94974B8D9BD3346D7 /* RACArraySequence.h */, + 2A20B13ED97CA4C1F6A13E8FA306642F /* RACArraySequence.m */, + 2594C31B2AEE1C39486F19CE5BE8EA1E /* RACBehaviorSubject.h */, + 66BB1AF1C87BAB9329176155F6C493F7 /* RACBehaviorSubject.m */, + 51207D900C7949AD27AD35C6196E76CC /* RACBlockTrampoline.h */, + A9ED807F800450D9C4F837CA1F24D5D5 /* RACBlockTrampoline.m */, + E5FB34D330D2F3C122CDC554CE2915C9 /* RACChannel.h */, + A5387796E0AB3060099C77C202AFD119 /* RACChannel.m */, + AA59DD14C40BD66A74D38651FCEFEA11 /* RACCommand.h */, + 4885493088496B0A9F42E4653BC29910 /* RACCommand.m */, + CEF0F2326528DDC9C23F31E0F7DC083C /* RACCompoundDisposable.h */, + 9D37D2DBCA6C4594AAF3590760363C05 /* RACCompoundDisposable.m */, + 3A88737F7B4E7160E58FFAA2E27780E9 /* RACCompoundDisposableProvider.d */, + BDF89E7175CF443129F1FEEE83848352 /* RACDelegateProxy.h */, + 1E0A6CF1D49A40449DA267861AD1E722 /* RACDelegateProxy.m */, + 434F24A047F6F5AD0B4311E10778C36C /* RACDisposable.h */, + D88D0F77FB238D4E662C9AE23CAEBE88 /* RACDisposable.m */, + BBDDEA7F7D6153715B217B0861D9E005 /* RACDynamicSequence.h */, + B82A0D7E1A5BEAAB36593700CD9789D1 /* RACDynamicSequence.m */, + 991332021BA6EA0F0A0807C7E3ADA665 /* RACDynamicSignal.h */, + 8926303B207455F38713717E1F6C7EAB /* RACDynamicSignal.m */, + DD7A09C95FA4450752A0DF79E0D085EE /* RACEagerSequence.h */, + E0C3FDC79600F8A0E44431E63963F213 /* RACEagerSequence.m */, + 71F194C96E1870C5F8EB7568160A0893 /* RACEmptySequence.h */, + E6D676BE462C8A5A4EAB6E4541DBD81C /* RACEmptySequence.m */, + D3F3803FD9E0A31A59E9FA60AFDF0F74 /* RACEmptySignal.h */, + 4FAEC03D86C93D4F312C93B5ED5AAE54 /* RACEmptySignal.m */, + 8A1C307E8FEFBA82972B9B07D9B7046E /* RACErrorSignal.h */, + 1FF62029FDFFD732732EF5F2EF5929E7 /* RACErrorSignal.m */, + 9C0752E1B9052AFECD101EBEA8C69BB2 /* RACEvent.h */, + AC9B09FA3426D6DE9ACEABE688BBCD05 /* RACEvent.m */, + D8F69EDF30D389E873EF3E1FA85905B3 /* RACEXTKeyPathCoding.h */, + 9C683F3F0B9711A79A25F1505D26C793 /* RACEXTRuntimeExtensions.h */, + 7030EF4B87EF53E82902BFEC8CFEDCC2 /* RACEXTRuntimeExtensions.m */, + 3C92B0D5A5DC08D351EAC1B4DFB9BDBB /* RACEXTScope.h */, + 8D3CC53B87F8F2D4554CD8FD1FDD9428 /* RACGroupedSignal.h */, + 4FCFA223EDBCA09679E985DD1489EC35 /* RACGroupedSignal.m */, + D848FDA27A465508C6D2DDDEB9516905 /* RACImmediateScheduler.h */, + 319D22F892A6438A469F4F1F3B7F64AD /* RACImmediateScheduler.m */, + E2A1BA9676A2E0ABD52EBABFEE4C3A0D /* RACIndexSetSequence.h */, + 1C67F518C36E23AF40254DBA8D1341DE /* RACIndexSetSequence.m */, + D231EA1EA63CDB0D9177BE3432143F87 /* RACKVOChannel.h */, + 152B09EB5C46C3A5AA864C403CBB9A08 /* RACKVOChannel.m */, + 3C12BE5CAB2519B0F0248C98EF5CD67A /* RACKVOProxy.h */, + 0684286BE588AD832BA8C677DCF5C671 /* RACKVOProxy.m */, + 5C04E04A3257EDDCF57FC9A345960F61 /* RACKVOTrampoline.h */, + 7D520FB3734A205A622A47AED3147EFE /* RACKVOTrampoline.m */, + 1F49515474D94F5D1BC16E8BF0451BA6 /* RACmetamacros.h */, + 2C1248D2950FAF4846F04C3D51F5CD46 /* RACMulticastConnection.h */, + 42C728A59C0AE226E37593713492404B /* RACMulticastConnection.m */, + BE819378C0009619686B38EAAC6294F3 /* RACMulticastConnection+Private.h */, + 07F94D341C349D9A7ADEB1A65768B8C0 /* RACPassthroughSubscriber.h */, + 934F3A0D5E9E6D51DA588C2F649A5ED9 /* RACPassthroughSubscriber.m */, + 44DCFC170E392AF48237565BCC2199CA /* RACQueueScheduler.h */, + 014BE88DC3744AC9119E8D90026F9403 /* RACQueueScheduler.m */, + 92B775B45DE7E0A6F25CAA435FED1917 /* RACQueueScheduler+Subclass.h */, + BBB8E73527FB7E5B15612F429C0A8F2E /* RACReplaySubject.h */, + 6148E9DB32FE775F65B25614196D5C40 /* RACReplaySubject.m */, + 44AE97FCF15E4F9C1D3DA54A92B4B5B1 /* RACReturnSignal.h */, + 898E82C73F718565E9F537B08652C221 /* RACReturnSignal.m */, + 27CF3F36A2F0579FC2DCC7FDC9C92EC2 /* RACScheduler.h */, + 9FE5CD4036232CDEB1DB2A5E819F05C3 /* RACScheduler.m */, + 427488FBC941453A919AEC0ACBFF10DF /* RACScheduler+Private.h */, + F5F5F218E51C83DB84A07324371BD32B /* RACScheduler+Subclass.h */, + 7BA596AF09DC25D4F318AC46F7C2DE57 /* RACScopedDisposable.h */, + 2469A2DB072E0F4497D41355086248DA /* RACScopedDisposable.m */, + 2571385A0C05CA8746E0F28D50C41727 /* RACSequence.h */, + 35FDBDF29A76E644B9627F0011BD8D21 /* RACSequence.m */, + AB327FEAAFD9095A9034BF0C5D5E88E2 /* RACSerialDisposable.h */, + 9D8CA32B7B18331200E33A55F2B91C6C /* RACSerialDisposable.m */, + 88352B406BD5BA371383E95CF2AA778C /* RACSignal.h */, + 08F4D75A4853C8A90BD6B7B4785893C3 /* RACSignal.m */, + AB5E335BA6B5CAEB564577C66299B1E8 /* RACSignal+Operations.h */, + F04A5F532E257E759188C8E6601BE06B /* RACSignal+Operations.m */, + 89DBFBD73EA2E42ACCC0C09C32089424 /* RACSignalProvider.d */, + A32F7DA914A2405DF5F8EF4B2A957B41 /* RACSignalSequence.h */, + AC4D329644DEE93BABC33463AEDA1D67 /* RACSignalSequence.m */, + 86234E6F546FFFC29A15FEC592D1C2EA /* RACStream.h */, + 04548106866B951006921AF00DE0D9A1 /* RACStream.m */, + E2B5421620D8C1B2D573F5B4953B3072 /* RACStream+Private.h */, + B541F42AE2B69D8C59A6D106B6AE1B0C /* RACStringSequence.h */, + 4A6193EB42B940AE1CF0ADC616574F3E /* RACStringSequence.m */, + ACE661F218BED1217BB2E02F63814B14 /* RACSubject.h */, + F53F4D257FEC7DD3D89E1F3C3FA96244 /* RACSubject.m */, + 8F35545C13BDCF4A615CCAAB5E07B891 /* RACSubscriber.h */, + 0DBE6154EA2D73949C4F324280E21C53 /* RACSubscriber.m */, + 518A1560C99DA713CB6C06E2B95DDA29 /* RACSubscriber+Private.h */, + 05B21B4AB11BDEBEE17E7103D179F817 /* RACSubscriptingAssignmentTrampoline.h */, + 75C812E71CF5725A0B7F0DAA45A5E9FC /* RACSubscriptingAssignmentTrampoline.m */, + 85F0B0A0670EDBDBEFF4CC199510D3DC /* RACSubscriptionScheduler.h */, + A7A6223A3CE26074CA9826D818FD6D9D /* RACSubscriptionScheduler.m */, + 4B7875C13EE1A811F6106084804B9569 /* RACTargetQueueScheduler.h */, + 7A232D07C7D89F3CFB0596B6AFA9312C /* RACTargetQueueScheduler.m */, + AD3260D683FB91AB5E1C93B0A64A26BE /* RACTestScheduler.h */, + 5C4F242CD832E3801061800A00E81669 /* RACTestScheduler.m */, + E74B050A3D73D875D39BB6D402AECFFB /* RACTuple.h */, + EEEC6F5B7A994FE6A18E789BF0CD0ADE /* RACTuple.m */, + A573B609D6C8B39620770CD5BA15CD68 /* RACTupleSequence.h */, + 3B15130A662ED9AC1282838D3D5AAF5A /* RACTupleSequence.m */, + 9237AE7D726F70DDD45C541AD4A800DC /* RACUnarySequence.h */, + B27EA90BAF0FBA19DF2D6CDE20BB2206 /* RACUnarySequence.m */, + 6E8080977476EDE067C7237FB558235B /* RACUnit.h */, + 622DDCF1096DB4BB33190FCDA5EDBCCA /* RACUnit.m */, + 784EAA99362BC0C41CE5852297D05024 /* RACValueTransformer.h */, + 7702226C1165C32EABF219A997827653 /* RACValueTransformer.m */, + FF49590BDCF35D6EF1E3CFA0A524C9D1 /* ReactiveObjC.h */, + B88A3739A28696C3C8546E4FA37BB037 /* UIActionSheet+RACSignalSupport.h */, + 5C931A54C2E2C07F96655639E86785D4 /* UIActionSheet+RACSignalSupport.m */, + 4C571E11B7B5B9801B361197A15449E6 /* UIAlertView+RACSignalSupport.h */, + 075EC03CCB7EF582E2F047C0F5904D07 /* UIAlertView+RACSignalSupport.m */, + 31CA26C8AB804A64B74DEFAEAAF24BA6 /* UIBarButtonItem+RACCommandSupport.h */, + F13A129258E41B3295F00EFE8D23CCD3 /* UIBarButtonItem+RACCommandSupport.m */, + 10085F9C69F730D9B2523E9F1C8467AB /* UIButton+RACCommandSupport.h */, + D01045A790CB707EF8D11F839D332878 /* UIButton+RACCommandSupport.m */, + 836D47EDA8BEB432F379BD9A9BEC2AEB /* UICollectionReusableView+RACSignalSupport.h */, + C3C075B5F84B5C8E31A0BA81C62F891D /* UICollectionReusableView+RACSignalSupport.m */, + 349D8C96879E11B1DC187B265EDAB622 /* UIControl+RACSignalSupport.h */, + 09E6A8D33A091100AC35918AAF28B84F /* UIControl+RACSignalSupport.m */, + 90014943D27A4414D6A92F636C655431 /* UIControl+RACSignalSupportPrivate.h */, + E27D21FEAC4F96C7439A48A38ED0D771 /* UIControl+RACSignalSupportPrivate.m */, + 5A6FBB4C8D91B816E85D2AE45DAE84C6 /* UIDatePicker+RACSignalSupport.h */, + 42821BF616C6828D2C8981A83A92325B /* UIDatePicker+RACSignalSupport.m */, + BB1735604A32A761B18E5AB7D7427E72 /* UIGestureRecognizer+RACSignalSupport.h */, + AB337F8DA4B26CBF4559F0E4E4CFA08E /* UIGestureRecognizer+RACSignalSupport.m */, + 9DCCD661606026D325AC54FE741A7283 /* UIImagePickerController+RACSignalSupport.h */, + D3805108AB8AB68C6DD903BA0AEEDD37 /* UIImagePickerController+RACSignalSupport.m */, + 935DE90A8B2DAD1AAC40EBFB11032967 /* UIRefreshControl+RACCommandSupport.h */, + 26BEDB39DD6E60FF7D064ED631198FA5 /* UIRefreshControl+RACCommandSupport.m */, + B75D4455617F6A55CDB1F1819FD7D2B8 /* UISegmentedControl+RACSignalSupport.h */, + 060CA856231CE9AEF91DE3B82284A1FE /* UISegmentedControl+RACSignalSupport.m */, + DA597C2D4AAC3DEED8E7A19C70EA3CEA /* UISlider+RACSignalSupport.h */, + 0E854BD028C282A18A29A41EAF1109EA /* UISlider+RACSignalSupport.m */, + E1AF77422F2BE60E53969576D67E3943 /* UIStepper+RACSignalSupport.h */, + 3455D83AE2F566E310C187F75E25A1F0 /* UIStepper+RACSignalSupport.m */, + 1641B4130A8DD2C2E3021678074209EB /* UISwitch+RACSignalSupport.h */, + 6617ABA08A42582D96197306CB572A92 /* UISwitch+RACSignalSupport.m */, + 500E30DB35DDF6AA73303E1805A5F0E6 /* UITableViewCell+RACSignalSupport.h */, + 1F831A5281096A13920386EF42722ED4 /* UITableViewCell+RACSignalSupport.m */, + B0C7E86F6A25D69A1020C7E430E9328C /* UITableViewHeaderFooterView+RACSignalSupport.h */, + 7AA8DA305EE8D9181700B0E85ACBF0A0 /* UITableViewHeaderFooterView+RACSignalSupport.m */, + F7041DEF3DD898FD8DFBD1B29FE1A075 /* UITextField+RACSignalSupport.h */, + D22A05C657A520EB1959789447F57706 /* UITextField+RACSignalSupport.m */, + C2D9EF1C959CBC79B00089B09679713E /* UITextView+RACSignalSupport.h */, + EB169B301D75510AD8763578FC9D3620 /* UITextView+RACSignalSupport.m */, + 3E16CD633B5C8104A03BA6B0095D4CEE /* Support Files */, + ); + name = ReactiveObjC; + path = ReactiveObjC; + sourceTree = ""; + }; + BBC483E3772FBC4B16FD4EB136929646 /* YYCategories */ = { + isa = PBXGroup; + children = ( + 1832AD024F11EA28E6491B6EE218049F /* CALayer+YYAdd.h */, + E524F37DDADC6EFAD23EF3D70AD82BEA /* CALayer+YYAdd.m */, + A152F29126ECD353288CB6D7282596B1 /* NSArray+YYAdd.h */, + 756CFFC7E845E22F34C163C4786A31A7 /* NSArray+YYAdd.m */, + 19C0F163161623AD623CF6733ACC305E /* NSBundle+YYAdd.h */, + DEF50E39F73539D79DE0EE24D597BCC2 /* NSBundle+YYAdd.m */, + 0A86C790B45E4083031A17C6CEC3638C /* NSData+YYAdd.h */, + D0D2B295BF80FD7647A6E373F02EB062 /* NSData+YYAdd.m */, + 79197E9742FC7ACA3F513F5B1C3E9ADE /* NSDate+YYAdd.h */, + D7F1FD3D056BB47E77EFFA1440556537 /* NSDate+YYAdd.m */, + 1F29DFB2EA1AABDE355EB7AE042635C7 /* NSDictionary+YYAdd.h */, + AC38372D2FD6828F577098071390850D /* NSDictionary+YYAdd.m */, + 4A244D0771AADA020A6977E7310CDB0B /* NSKeyedUnarchiver+YYAdd.h */, + ED3F60124D1F64BE9A869D5B5C500CD6 /* NSKeyedUnarchiver+YYAdd.m */, + 9DCB052C837E4C8AA5199500B64FE3A3 /* NSNotificationCenter+YYAdd.h */, + EF5C2676A38389D598A3D54F2B114464 /* NSNotificationCenter+YYAdd.m */, + 971D3EE6EC1361D862EC9522FE88E5B9 /* NSNumber+YYAdd.h */, + 4F913DD8E9D1DD23E75D985A632219C8 /* NSNumber+YYAdd.m */, + FF9748894B8C35A1825C07C5F420B7C3 /* NSObject+YYAdd.h */, + 841200A96600F47505EE122C123B8061 /* NSObject+YYAdd.m */, + 238139139920DAC159425DC75197A6D2 /* NSObject+YYAddForKVO.h */, + C40B79EAAA6B3CC6CF1E78FFA5D2A559 /* NSObject+YYAddForKVO.m */, + DD4124BE66EA16516FFF8188EFC76F0A /* NSString+YYAdd.h */, + 53817E330C397B22A43D06E36B41D2D0 /* NSString+YYAdd.m */, + 5F51F3BE189188690CCAEA6FE1A67ECA /* NSTimer+YYAdd.h */, + 09B31E3D9630343E9793238698D53660 /* NSTimer+YYAdd.m */, + E3C7F134F837A97CB0F6E17B8B02C872 /* UIApplication+YYAdd.h */, + AF508AC4AAFFCA0A0D366655A7F75716 /* UIApplication+YYAdd.m */, + 08E81CB31ABA8AF4EA8D4DAD52085F1C /* UIBarButtonItem+YYAdd.h */, + 0D5175CC00EA0F15BBA480393710C207 /* UIBarButtonItem+YYAdd.m */, + C5D2969988E90C9E62DEF88128586039 /* UIBezierPath+YYAdd.h */, + 4885DA2AB0FC4B985EDC95880F1CE0BE /* UIBezierPath+YYAdd.m */, + F7657EC539A94C7F0E4F7742CB6A5D5C /* UIColor+YYAdd.h */, + FCFA60F1F51C283C6ECE3B9E71BDC520 /* UIColor+YYAdd.m */, + B12604E41BABB52C997364A828A0B085 /* UIControl+YYAdd.h */, + 86DED4C847CB1687333D82BF77D26073 /* UIControl+YYAdd.m */, + 66542E4E3D3B005611727F8A41CF09AA /* UIDevice+YYAdd.h */, + 278B8B9FC1A43DFA4AD50DE7564A612B /* UIDevice+YYAdd.m */, + 8133891E2F2C6C6C2FA738BA352A7800 /* UIFont+YYAdd.h */, + 4948440EE0B5687EA9D6EB66838E3B1E /* UIFont+YYAdd.m */, + 62BA7E83F0DCC3BFFC9ED548C5094D44 /* UIGestureRecognizer+YYAdd.h */, + B6275FE53E390549AAD224E337C65C23 /* UIGestureRecognizer+YYAdd.m */, + BEB885F0149701199F0189974EBC7D8D /* UIImage+YYAdd.h */, + 9B28C48857CDE0E27AD1F24A76385EB9 /* UIImage+YYAdd.m */, + 9809B70512BD2DA0DD82468228FBE923 /* UIScreen+YYAdd.h */, + A0EDE7E40198B2C8562587370C2E6A0F /* UIScreen+YYAdd.m */, + 1070F25BCB4F54949167FDE4D7B1EFB1 /* UIScrollView+YYAdd.h */, + 8B0AE30712F5FBA31C3678C0A195DBF5 /* UIScrollView+YYAdd.m */, + 81C1129DB71786693EDAB154C89022AF /* UITableView+YYAdd.h */, + D6FE190AD5AD901796B3A1496940A493 /* UITableView+YYAdd.m */, + 10F12302E97BCF14E1D3B73DDB4EF820 /* UITextField+YYAdd.h */, + 10CB15319D4C89805ABB80E01AEAC917 /* UITextField+YYAdd.m */, + AB5418996736D7C56ADC85142FC15FBA /* UIView+YYAdd.h */, + FB55D561B0427F73A37BDD783B483A09 /* UIView+YYAdd.m */, + BFD4096F7B30D29E37016A981BCD4AB7 /* YYCategories.h */, + 58070842DD72A3D1C0A9C4135133D62C /* YYCategoriesMacro.h */, + F92837A12DF81376F8A497838A9EAA5D /* YYCGUtilities.h */, + CE38FE9C7C3B869FB38E67A91A3BF617 /* YYCGUtilities.m */, + F80140007C2D530A1567086C829B4197 /* no-arc */, + 4610AF2FC273553E89485A8F8D78A545 /* Support Files */, + ); + name = YYCategories; + path = YYCategories; + sourceTree = ""; + }; + BC7C79FB68365A1BA745A56EC048B0E7 /* Support Files */ = { + isa = PBXGroup; + children = ( + 1A37423603CB86631A25C75E7428AED0 /* Masonry.modulemap */, + FD7C23F715A06E593A4488EB4CB076AF /* Masonry-dummy.m */, + DF5AA58DD20C66D905E01B59655614DB /* Masonry-Info.plist */, + C0E21FB4E53ABCBDEF7D668712AB9447 /* Masonry-prefix.pch */, + F252254B87C079885B1E5BCD33FD7953 /* Masonry-umbrella.h */, + 94DE8F7BB4C72D62AD40BF89FD749202 /* Masonry.debug.xcconfig */, + 1DA7140D48E0E3E591B0673604CC5DB4 /* Masonry.release.xcconfig */, + ); + name = "Support Files"; + path = "../Target Support Files/Masonry"; + sourceTree = ""; + }; + BD02F9518FFD861A05243C7D706441D6 /* Support Files */ = { + isa = PBXGroup; + children = ( + 2229584A0BC281EAA8ECED045CA5DE67 /* MJRefresh.modulemap */, + B917F66CF01EF9C9879E67E2E6C23986 /* MJRefresh-dummy.m */, + B19F01878E6E00DDEC1E232E65D7722D /* MJRefresh-Info.plist */, + 0BEC2BBADC99E6E8DB2F4283151B1539 /* MJRefresh-prefix.pch */, + 45737676658AB1206146138DF7F2A0FF /* MJRefresh-umbrella.h */, + 539E81F9AA4C78794DAC997EB95A5DAC /* MJRefresh.debug.xcconfig */, + AE650260687E865E28534C92B50333AC /* MJRefresh.release.xcconfig */, + 708660ADE3C79484FD6654E05C0923CA /* ResourceBundle-MJRefresh.Privacy-MJRefresh-Info.plist */, + ); + name = "Support Files"; + path = "../Target Support Files/MJRefresh"; + sourceTree = ""; + }; + BD570E0E5925FE7057F6621D10EE15E4 /* mux */ = { + isa = PBXGroup; + children = ( + 01DDF4017E587B9EF1AEA59D1AB0269E /* anim_encode.c */, + 4390ECF02B6670C58E8A831A9A51D222 /* animi.h */, + 70E963D3F3354A877AAEC8CCC24B927D /* mux.h */, + DD86480B7B0E664045E3CE0C8FAD95B0 /* muxedit.c */, + 1D1747FFB2483E7288E1FACBCA24CD46 /* muxi.h */, + FA87F8676E587989AD5F3A0F4AA8DFCE /* muxinternal.c */, + E3A3717E2EB0F7601DF3D74E9ECDF971 /* muxread.c */, + ); + name = mux; sourceTree = ""; }; BE2CA4D06E6B2F9B3D45CD42228CDDFC /* Pod */ = { @@ -11401,44 +12374,10 @@ name = Pod; sourceTree = ""; }; - BE684D7A8360C78A2A6B28BA5C664FB1 /* Support Files */ = { + BE870F8C86321E7DBC927B5DE25F38F0 /* Frameworks */ = { isa = PBXGroup; children = ( - 7569EED5EB9397F3620E12F8C849250F /* QGVAPlayer.modulemap */, - B2150F20FE1199A937735BBA31A90470 /* QGVAPlayer-dummy.m */, - 5F4E9AF7F25D364F8164C7753CC72C8B /* QGVAPlayer-Info.plist */, - 73EE5D2492EBEDE6259D2AC98BD96239 /* QGVAPlayer-prefix.pch */, - 13D5AD7FF09DDA4A40B74644F8F8C2D3 /* QGVAPlayer-umbrella.h */, - E85F7903A9D040C24E56355B875D47B3 /* QGVAPlayer.debug.xcconfig */, - A12FD923FF1E9906937EB9FA94FC7708 /* QGVAPlayer.release.xcconfig */, - ); - name = "Support Files"; - path = "../Target Support Files/QGVAPlayer"; - sourceTree = ""; - }; - BE733C67462338D74676A3BF3D54F756 /* sharpyuv */ = { - isa = PBXGroup; - children = ( - 165719683AA3EE8CDC24DD49B0F7012D /* sharpyuv.c */, - 5D17A1DCD046EB694DCD8D2D86A83792 /* sharpyuv.h */, - 12910AE21B90F8BC035075C6E8F72AD8 /* sharpyuv_cpu.c */, - DCEBD23A4F94DA88A003BC9C60D200BE /* sharpyuv_cpu.h */, - 0C0D2B19B547B1FF27049B40C1F814EC /* sharpyuv_csp.c */, - 45716665E4EAA0E5DAD3E15292F69C4E /* sharpyuv_csp.h */, - B15739D3AA245DC3EF6AD0F8B840BEA6 /* sharpyuv_dsp.c */, - 2C73A03D77A46247AF3DE8683AA802CD /* sharpyuv_dsp.h */, - 81A91F2C2C8BD26FB9B0A47E460DEDAD /* sharpyuv_gamma.c */, - 2D591A6F9F0E49F577ED2D062B8F565B /* sharpyuv_gamma.h */, - 8E14B722699442611DCAE34C30CB4486 /* sharpyuv_neon.c */, - 8452DB94EF6CC76C45A5B628E1B79527 /* sharpyuv_sse2.c */, - ); - name = sharpyuv; - sourceTree = ""; - }; - BE7C7049506A09B7CC9E6865F7B85AEC /* Frameworks */ = { - isa = PBXGroup; - children = ( - 2268F2FD0FED2B17CE1C6552CF725F23 /* AgoraVideoAv1EncoderExtension.xcframework */, + 1AFD837912158353E2D4AA3698EDECEF /* AgoraSpatialAudioExtension.xcframework */, ); name = Frameworks; sourceTree = ""; @@ -11473,139 +12412,6 @@ path = Pendency; sourceTree = ""; }; - C2DA41A0C769EE6F7A2627DC94F6799D /* AliyunOSSiOS */ = { - isa = PBXGroup; - children = ( - 7E6905C34F7E865783EE450007EA8B53 /* AliyunOSSiOS.h */, - F0D675ED5B636CD21AF04128A3BBC8F8 /* aos_crc64.c */, - FB84CEF88ADAF5600824EBA93E9EF256 /* aos_crc64.h */, - B3338873437309D5CB766787621B4F24 /* NSData+OSS.h */, - B810A9B9528573F1C75469C4C3C78D7B /* NSData+OSS.m */, - 50E0A84F16910F304436C14B39378BCD /* NSDate+OSS.h */, - 380C5BD13C442E034BF71F95457DE708 /* NSDate+OSS.m */, - 5DFC64AD2C17C3AA6FE573958757156C /* NSMutableData+OSS_CRC.h */, - E8C39112CC747EF942B440513B36A908 /* NSMutableData+OSS_CRC.m */, - 99EAA8A69F3605F202C84E86B447328F /* NSMutableDictionary+OSS.h */, - 60FF643DA672F248EEC2A67C984DD59B /* NSMutableDictionary+OSS.m */, - C50FE691FA8A4034C3B7F82696C1E3E4 /* NSSet+OSS.h */, - F78A86D020E37CCAE2DC4D14B3FC09D6 /* NSSet+OSS.m */, - 53829206577B27B45762DB1DFF8081C1 /* OSSAllRequestNeededMessage.h */, - 0A1F1E2967738DEB94519ABCA86CD5A1 /* OSSAllRequestNeededMessage.m */, - 1A9FADDA2D43F976F452DCD9C6C75C42 /* OSSBolts.h */, - 7C07DEBF5092E04D597ADC1DC8509A4C /* OSSBolts.m */, - 618C665AC79DCC1127C20C92479C7C21 /* OSSCancellationToken.h */, - D94CBA9F4453A9710AC2AB2F7ABF9E5E /* OSSCancellationToken.m */, - 5265C177C267DB0D19359CE70E54913A /* OSSCancellationTokenRegistration.h */, - 62F6451C0AB15084F2AE9AA9293C2EC2 /* OSSCancellationTokenRegistration.m */, - 7ECD4D942E99D706A9F27E2A3E37ED2B /* OSSCancellationTokenSource.h */, - 75AD2F2F51F9CDB57C8CFC1E3D854BF4 /* OSSCancellationTokenSource.m */, - 88301128E8395B55483A176C15014582 /* OSSClient.h */, - 4FC05AB889A2C9D5888B774E57673146 /* OSSClient.m */, - C1DE0AA187F4CA800DEDE30E8985A98B /* OSSCocoaLumberjack.h */, - EDEBEFDC15E4DA6B1CB9B03CF7309CE4 /* OSSCompat.h */, - 45A85B8E3D1E373866D8BA83364066BE /* OSSCompat.m */, - 386ABB68464A5A25701025617B1DBB29 /* OSSConstants.h */, - 570592C997E29B54B8CE76C07D59CBE7 /* OSSConstants.m */, - 84212DE296979BA80C0CD70D2556DA61 /* OSSDDLog.h */, - C84D781668C6E814C60B74DCA3BBDE12 /* OSSDDLog.m */, - 86F8615F32472DED5E41F60F5A63C866 /* OSSDefine.h */, - 8F62C974D96C0C3FC85AB3BF849997B4 /* OSSDeleteMultipleObjectsRequest.h */, - E88654AC28F45E0216CEFAB4500604DE /* OSSDeleteMultipleObjectsRequest.m */, - 6A096E00BF1BBA44741A175C7BDC569F /* OSSDeleteMultipleObjectsResult.h */, - DDB54696124D6CAE6F5A60FB45542B84 /* OSSDeleteMultipleObjectsResult.m */, - 21DD07E2DB0DE908A2DCDE7B482E2EF3 /* OSSDeleteObjectTaggingRequest.h */, - A0C0E0E71BC898B01785194BFAB0C194 /* OSSDeleteObjectTaggingRequest.m */, - 6592BD04192A92F3AA3212543091E9F3 /* OSSDeleteObjectTaggingResult.h */, - CC5312AF6FBA8949781977323DEAB33A /* OSSDeleteObjectTaggingResult.m */, - 66AA06CECA7B456461C6386269D759F8 /* OSSExecutor.h */, - 503DBF6B044EAFB40C2DC9730CD668D2 /* OSSExecutor.m */, - 149AF4B27775F9A3212B5199958B7441 /* OSSFileLogger.h */, - 3A5374F1D2D57A123F50408DB43B80B0 /* OSSFileLogger.m */, - 038598EF7831757144B9C4460E6D0C25 /* OSSGetBucketInfoRequest.h */, - 4618D65F597A2C7CE70BE332EF5AAA1A /* OSSGetBucketInfoRequest.m */, - B5C17A4B17EA0D8B7BA709B8B341F4B7 /* OSSGetBucketInfoResult.h */, - 852327A701AAD6F8A479BC74BE40E564 /* OSSGetBucketInfoResult.m */, - 671AD687DE2A9004EB7B860715777140 /* OSSGetObjectACLRequest.h */, - 58AD37709F39264790CB037A968FDA7D /* OSSGetObjectACLRequest.m */, - 339AA4E9A659007E44DBA93A7F85D1B5 /* OSSGetObjectACLResult.h */, - 42560742032C8BF735E3B934F5D39D26 /* OSSGetObjectACLResult.m */, - E4E45A60EDFFD10C68DAFA2D0A43547E /* OSSGetObjectTaggingRequest.h */, - F007B2FA752918FA4152FCA7ABAFB0DA /* OSSGetObjectTaggingRequest.m */, - 80305933F4129F1895492CE0A1E92850 /* OSSGetObjectTaggingResult.h */, - D5258A8F9600058612450C0A2D0ADDFD /* OSSGetObjectTaggingResult.m */, - 8F2A97ABFE1A06FA7232E8D6CF0BD13C /* OSSGetSymlinkRequest.h */, - 0F52F7C5E70BB47EBF33E51E749F893F /* OSSGetSymlinkRequest.m */, - 6FBE57DE259A7819AD6B1295713CA7BE /* OSSGetSymlinkResult.h */, - BE18BF96F9ED11445CF8FC24F2AA203D /* OSSGetSymlinkResult.m */, - 1B682B2D49A459741652DEE728A1163D /* OSSHttpdns.h */, - 8F03FC5865B06A0A4FCEB0376B13483D /* OSSHttpdns.m */, - BFDA366E9CB7BAB06A7CB8C1F81195BF /* OSSHttpResponseParser.h */, - BFA2719BB5CA9AB9B92A865360E40147 /* OSSHttpResponseParser.m */, - 00A291A2B72EA4E6FAEDE7232917E9FB /* OSSInputStreamHelper.h */, - 3178347A4C5327D93B120D4EE564D6CB /* OSSInputStreamHelper.m */, - E7ADAE7D0F3413404AD508AAD8899515 /* OSSIPv6Adapter.h */, - E6554C82F4DCDC7AEF6E40B5904434BA /* OSSIPv6Adapter.m */, - 1C7FF4E56FB57E68D16A5E3145BCF530 /* OSSIPv6PrefixResolver.h */, - 97C2918FF8CBF93DE48FCD699E651A56 /* OSSIPv6PrefixResolver.m */, - 42AC661BE5571A5ABC9A381FB2821036 /* OSSLog.h */, - C4215B336A44A8928C5547B9ECAF9303 /* OSSLog.m */, - D23BF5872AAEF793BFFD3AFD3387CA65 /* OSSLogMacros.h */, - 0793B2C30D54159C1392333F12A81D4E /* OSSModel.h */, - 5AFA83370A44F6C536769BF9E3788178 /* OSSModel.m */, - 709780182A5CA351F71920FED34965D5 /* OSSNetworking.h */, - B065E3A2FE0BCAAD7F3D83FA560043B6 /* OSSNetworking.m */, - 9C1A7138173D077ED980C448E301A54B /* OSSNetworkingRequestDelegate.h */, - C397F8BAEA54E844DB80F7E4C2D08A8B /* OSSNetworkingRequestDelegate.m */, - 29687F0269C0A04397B98DF48D994583 /* OSSNSLogger.h */, - BB73D23FDDE202789585E343649BF4D9 /* OSSNSLogger.m */, - 05349C51E31CAE69161B68EE1B46E515 /* OSSPutObjectTaggingRequest.h */, - 722BE7E177F875A3DC306C0D6F9CFECD /* OSSPutObjectTaggingRequest.m */, - 56BAFE6EA4F60EFE92A698548CDFCF6F /* OSSPutObjectTaggingResult.h */, - B63ACEC26A9E5DB8885AAC32E3FE10D1 /* OSSPutObjectTaggingResult.m */, - 0ABE05003A8F29C98E5FAAE6CE701848 /* OSSPutSymlinkRequest.h */, - 38841C117A37A6643DCB88F8A67D5E7D /* OSSPutSymlinkRequest.m */, - 3BE2F4BD4F74874DEED17704E081BB72 /* OSSPutSymlinkResult.h */, - 10BF3D828FC7F8E67EB26B154BF32F8D /* OSSPutSymlinkResult.m */, - EA32E98C9DBA059E4205EC581458383C /* OSSReachability.h */, - 6C71473402D3B2EC1706517D9776310E /* OSSReachability.m */, - 83C3BD260DC6D10212C1C3E60A943693 /* OSSRequest.h */, - 7748FE0C40CEB3D554077FD992B2170D /* OSSRequest.m */, - E38F77FBF70FE78E3F9C884F2A239974 /* OSSRestoreObjectRequest.h */, - 967A3636407ACF40079E57F1C7A7F4FC /* OSSRestoreObjectRequest.m */, - A689CF5BB1A3E202DA9F662500A2D835 /* OSSRestoreObjectResult.h */, - FB4B90018C3134EDF41142C70D7ABD98 /* OSSRestoreObjectResult.m */, - BFD45B173D4C81AA909775CDF23A0F00 /* OSSResult.h */, - F8CF4B494678B12F79C894D22D4AE3A7 /* OSSResult.m */, - 30EEA1EE58480438768944A483CE7952 /* OSSService.h */, - 6E6349754791444BA8338A47A5C47392 /* OSSServiceSignature.h */, - 48C2340F7BF1F45F70EE1E903B18259C /* OSSServiceSignature.m */, - B4D3107F6D1A5FC591E7F11CEC6FF9FD /* OSSSignerBase.h */, - 368529C6BDC7F1F1AAE0D6FE32887BDC /* OSSSignerBase.m */, - 1718C637E8B2E604FE3CF4BF15E5F7F6 /* OSSSignerParams.h */, - 1444DD729800C600C3FC005A7D08C795 /* OSSSignerParams.m */, - 18420021A7B1BD23BE8FD0CC278C9B57 /* OSSSignUtils.h */, - 6F278D6855CB743D06DF092548A744D1 /* OSSSignUtils.m */, - BDC0FB4AD840773A77D68DBADD5FAB22 /* OSSTask.h */, - 9B738ADE726A061A4C5F827A1D5699EC /* OSSTask.m */, - B5D3F03AAA3E760C3B8E3678058C233C /* OSSTaskCompletionSource.h */, - 2B4ABA00DBD6FE3E676A2EF0F58AB3F7 /* OSSTaskCompletionSource.m */, - 12F06A680D70D1F1341E71DB85A169C2 /* OSSURLRequestRetryHandler.h */, - 826F6586B5F27FE3CD781A46F85A787F /* OSSURLRequestRetryHandler.m */, - 002F8FB9FB749B5760FA00556C7B77B1 /* OSSUtil.h */, - 7115CD7CBDDC211BBD79F61965E5D8FA /* OSSUtil.m */, - 245039E4F746013BDBE5497A5BEE11FE /* OSSV1Signer.h */, - 3AB32A3C6CF61661872B41A75780E6DD /* OSSV1Signer.m */, - 5465D9B9F5D0C6F06DA6C7F85202E8B0 /* OSSV4Signer.h */, - EBD6D848881BA6A6A09320745B3C89A7 /* OSSV4Signer.m */, - FC9FCF9EAB97503DBEE7531816122FA1 /* OSSXMLDictionary.h */, - 89B7EF8032FA82FC0AA8CBBD48C2934F /* OSSXMLDictionary.m */, - F95ABE3088E6634B3DD9603D622E7AB5 /* Resources */, - B02A2CA0E736D318D7892B6085E90794 /* Support Files */, - ); - name = AliyunOSSiOS; - path = AliyunOSSiOS; - sourceTree = ""; - }; C3CB00982F4B0E56299EB8B1AE723446 /* Impl */ = { isa = PBXGroup; children = ( @@ -11626,24 +12432,6 @@ path = Impl; sourceTree = ""; }; - C3ECDF553B6EF8851A7B6A7525E6060B /* Pager */ = { - isa = PBXGroup; - children = ( - 329BFF587DD6C0F79B826D021A752616 /* JXPagerListContainerView.h */, - 923D47CE8814930C4728001B7DB2B464 /* JXPagerListContainerView.m */, - 6F77708E280007080CDA4B397032C007 /* JXPagerListRefreshView.h */, - 6D94FE6859348BB52BD8131E25776E41 /* JXPagerListRefreshView.m */, - 901CEC3A79F36A2E0FE70F329E32570F /* JXPagerMainTableView.h */, - 873998215043841815B0429E6732E482 /* JXPagerMainTableView.m */, - 155CB483AEDFBD2BA69E796394E3D6C3 /* JXPagerSmoothView.h */, - FBF87F2DB2943C33A83FB3E273EF5C6E /* JXPagerSmoothView.m */, - 9EB65665259C35FD5E82D73207BFA369 /* JXPagerView.h */, - 552BD4E3F2F0D02D6D0825D0090BFECD /* JXPagerView.m */, - 1825601ECAE8B898CB86CD707605BBA4 /* Resources */, - ); - name = Pager; - sourceTree = ""; - }; C46D8B287524DEFCB9443D11CDB56F78 /* BaseDataProvider */ = { isa = PBXGroup; children = ( @@ -11677,6 +12465,14 @@ path = Config; sourceTree = ""; }; + C5E07A6911337F91575E37C2933B844C /* Resources */ = { + isa = PBXGroup; + children = ( + 7D34802C42910BED926F2406DC0964E2 /* PrivacyInfo.xcprivacy */, + ); + name = Resources; + sourceTree = ""; + }; C69532FE2BD4D45FAB1148803276FA63 /* Pod */ = { isa = PBXGroup; children = ( @@ -11685,31 +12481,6 @@ name = Pod; sourceTree = ""; }; - C7109D3A10E0F7A8F9F8AF8D6A947F6F /* Resources */ = { - isa = PBXGroup; - children = ( - 2C9DD974DC481EEB90952278C12219CA /* YBImageBrowserVideo.bundle */, - ); - name = Resources; - sourceTree = ""; - }; - C74D0AD1CDEE4A1DF96334D7A04D8D80 /* YYCache */ = { - isa = PBXGroup; - children = ( - F51C16B113C9721356EEFBC10909541D /* YYCache.h */, - 1E5B4A02151E0AC91F638B2A3F028F76 /* YYCache.m */, - 223957C4542E867790E30E38FAB68101 /* YYDiskCache.h */, - C2EE43377FF6A0997004EE9B2EF5E682 /* YYDiskCache.m */, - AD9CB70277F98D7B46E5FAB684A3959E /* YYKVStorage.h */, - D1423811F8D69704871E20B5BEA8F6CB /* YYKVStorage.m */, - 2E772E46B21B584067C3A888FF7C79AA /* YYMemoryCache.h */, - 1138AFF1E9C05B6254CFE2757D8752DE /* YYMemoryCache.m */, - A67EE32858391E5F9EBCFD3D24CA3B17 /* Support Files */, - ); - name = YYCache; - path = YYCache; - sourceTree = ""; - }; C787247560ABB098C3040632458C6845 /* Support Files */ = { isa = PBXGroup; children = ( @@ -11726,14 +12497,12 @@ path = "../../Pods/Target Support Files/TIMCommon"; sourceTree = ""; }; - C7E8AED3B0920A7A7287DBAA811FB43E /* Deprecated */ = { + C80527A9469D1A7B2DE6C107072F9675 /* AINSLL */ = { isa = PBXGroup; children = ( - 9CF613AAEE8DECA4E7AF85AED4ACA77F /* AddressPickerView */, - 5988CB3B990CCC0D9372EAFEB660BCAA /* Base */, - D23A51C2F9D830898226A90034CD943A /* StringPickerView */, + A01B099F6C2CDD85EBB7CBCB1A594311 /* Frameworks */, ); - name = Deprecated; + name = AINSLL; sourceTree = ""; }; C808C8EA8BDB129EEF8539E4999B4645 /* Header */ = { @@ -11745,21 +12514,12 @@ path = Header; sourceTree = ""; }; - CA30060D00A40B08672419A631DBCB14 /* ProtoFiles */ = { + C92376F57312C914B8A05827C8E5F27A /* Resources */ = { isa = PBXGroup; children = ( - A7BA3A3BE4417E4AC569EE4594B56890 /* Svga.pbobjc.h */, - 593B07DA61DC8977DA7FB2ADEA9D91D0 /* Svga.pbobjc.m */, + A06743D5607121BF0B96A932A6EA7363 /* PrivacyInfo.xcprivacy */, ); - name = ProtoFiles; - sourceTree = ""; - }; - CB8370D0C9E6B7AFFCD350A8B84F353F /* AINS */ = { - isa = PBXGroup; - children = ( - 13ADFBECC3EC0E6BBD2CA9C1E1E90492 /* Frameworks */, - ); - name = AINS; + name = Resources; sourceTree = ""; }; CBCE53E74AA711A5EE5851961F8FB038 /* Pop */ = { @@ -11778,21 +12538,38 @@ path = Pop; sourceTree = ""; }; - CCC76F060E82EF100734DC767AB1F8E5 /* Resources */ = { + CC0CA982F01B9C0BE0ACBB1B7474E53B /* Support Files */ = { isa = PBXGroup; children = ( - 95EE60D03898593A6C20C72EBD683F98 /* PrivacyInfo.xcprivacy */, + 5D6D94888D0D254E26C1D3D2BF3B2CBA /* SDWebImageWebPCoder.modulemap */, + F65463BD2CA100D855096EC0BC53C922 /* SDWebImageWebPCoder-dummy.m */, + E125F395AD60ED7B7B07652D73D4218E /* SDWebImageWebPCoder-Info.plist */, + 97ABD91E76532D89129E4947684B67F6 /* SDWebImageWebPCoder-prefix.pch */, + 98B77E03C826D52220B2151CB7FF4B08 /* SDWebImageWebPCoder.debug.xcconfig */, + 0B9FD6341D534FEF98CCCFFCDF7A0E88 /* SDWebImageWebPCoder.release.xcconfig */, ); - name = Resources; + name = "Support Files"; + path = "../Target Support Files/SDWebImageWebPCoder"; sourceTree = ""; }; - CDA251B7A40B084496FC72E83BE65263 /* Resources */ = { + CCAA7E84CD2E0B42568AFE0FD3D4D48E /* ShortCut */ = { isa = PBXGroup; children = ( - 4E3A90A60CE344C08837F6FFC7402844 /* MJRefresh.bundle */, - 890063AFA66A21ED497BBEF97B4B406C /* PrivacyInfo.xcprivacy */, + 53EDF4BD172DDA164576FF8F67F56308 /* LLShortCut.h */, + D05247707BB27F2A39F7138D5AFBFC7C /* LLShortCutComponent.h */, + E0157C3B1258A7010A0AD99F52D0B599 /* LLShortCutComponent.m */, + 277D448F043FB38680AA53C9B0ADABEA /* LLShortCutHelper.h */, + 02F58B05B07E645C5748C55D22B88861 /* LLShortCutHelper.m */, + 25B3E2E0C6804514CD853C7F052941F7 /* LLShortCutModel.h */, + AE90088E58557360D6C0788805D76D76 /* LLShortCutModel.m */, + CDEB499910441B5BFEED3F7530C104AC /* LLShortCutViewController.h */, + 9F6E6EA36B24EB7887EAB936CF2A60EA /* LLShortCutViewController.m */, + 6D01744AAFCCA20CB20800B360A1FA6A /* LLShortCutWindow.h */, + 4C09EF151C191E0F6F7F6DC3F524DCDE /* LLShortCutWindow.m */, + A0EDD0BB750ACB2E6BA0ECBDEBBCEF9C /* LLWindowManager+ShortCut.h */, + F8B806456AE57EF110F02C6A3FB88CC9 /* LLWindowManager+ShortCut.m */, ); - name = Resources; + name = ShortCut; sourceTree = ""; }; CF1408CF629C7361332E53B88F7BD30C = { @@ -11801,65 +12578,42 @@ 9D940727FF8FB9C785EB98E56350EF41 /* Podfile */, F5795CD80D8F4A3854CC57E360FD11F7 /* Development Pods */, B8702409602E66193FFAAA0F4DE81788 /* Frameworks */, - 5905511909CB6D8579134EF546C37964 /* Pods */, - B76695B951E8F27C3142A6A367E5504E /* Products */, + 09A78990FB9E7165FDCDADE28DCAB7D9 /* Pods */, + 0941E2CBC62D38E691709EB01C70B8E6 /* Products */, 5823F21CB11BD6182EE4D7F7AF359B40 /* Targets Support Files */, ); sourceTree = ""; }; - D015DBC79C718646B4A950BDB78759F8 /* Support Files */ = { + CF36F2A6AB9253F6FE872D4A55E33FBE /* Frameworks */ = { isa = PBXGroup; children = ( - 4B77BB45DFA03E6F0DE54C82DD84ECFB /* AgoraLyricsScore.modulemap */, - F8F68F9685579896CE2ECC8D53A77DD8 /* AgoraLyricsScore-dummy.m */, - 9DE1A5F38B0C1802AD102E15D181FDEA /* AgoraLyricsScore-Info.plist */, - 8660ACA44F3117EC781803A4B9D15C9D /* AgoraLyricsScore-prefix.pch */, - 7B52BD624B9A013BD9BAC65DA60BEB35 /* AgoraLyricsScore-umbrella.h */, - 3D01AD22FEDC8002233D7AACEDC04EAD /* AgoraLyricsScore.debug.xcconfig */, - C092C466730A789FFD1F47D57E1CBE1A /* AgoraLyricsScore.release.xcconfig */, - 89B621556D15D29CEAB65CF38A759652 /* ResourceBundle-AgoraLyricsScoreBundle-AgoraLyricsScore-Info.plist */, + 0CBCABD5BCE1B822E47AFF0134199A15 /* AgoraAiEchoCancellationLLExtension.xcframework */, ); - name = "Support Files"; - path = "../Target Support Files/AgoraLyricsScore"; + name = Frameworks; sourceTree = ""; }; - D15A9322E8232E7F73301130F5EDA98F /* AgoraRtcEngine_iOS */ = { + D079F7FEFA2B888706067BDD1D2EFFAD /* AudioBeauty */ = { isa = PBXGroup; children = ( - 5F57C6B3B074DF8EFE10B880CD148829 /* AIAEC */, - 9543D6932ACD856DFCAC9CEEBC5DC5CC /* AIAECLL */, - CB8370D0C9E6B7AFFCD350A8B84F353F /* AINS */, - B9CB50BCEFA107B75AAB30F2D193F9D0 /* AINSLL */, - F14C6855D294C2E028F9B89AC823E7AB /* AudioBeauty */, - 9A38876815E741169DA01EB78B695D68 /* ClearVision */, - 88F4B5F5975756C9570F4D4043704361 /* ContentInspect */, - 53130F27F4E0372524637CDD28F6E7A3 /* FaceCapture */, - 62AD5D3FD9BB929EA35EC6FEB79C4F44 /* FaceDetection */, - 7CAE5784D58DC49B8A0800F375444D70 /* LipSync */, - 149DA5B64AED3321A4A1E892A6F46081 /* ReplayKit */, - DC44BE61C6BDA24EBAF1CEAB75D88F55 /* RtcBasic */, - BB333F4F14809E4F4EDDCF04E5CDB6B2 /* SpatialAudio */, - 354D00371161C8D16DE15C26ACF10063 /* Support Files */, - 98727EE6BCF0C8C2417E10B8744A94FA /* VideoAv1CodecDec */, - 70B216331ADDCCEB343EB02548420324 /* VideoAv1CodecEnc */, - AD56A0DCD58ECFA3C28F486ED95BBF62 /* VideoCodecDec */, - 92A67CB1B929554F0F2E61F3988258BD /* VideoCodecEnc */, - 052C6C24B7AC1CE221F111B085BE02C2 /* VirtualBackground */, - B9E145963D39B173C31042F0D8AAB8EC /* VQA */, + DDE7D076447112818873A43A8E6471C6 /* Frameworks */, ); - name = AgoraRtcEngine_iOS; - path = AgoraRtcEngine_iOS; + name = AudioBeauty; sourceTree = ""; }; - D23A51C2F9D830898226A90034CD943A /* StringPickerView */ = { + D230388306322943007385AA8036F353 /* Frameworks */ = { isa = PBXGroup; children = ( - 3714959B32893D0305EFC87D686A4F24 /* BRResultModel.h */, - 4BCF3A982C0897F194EE8E1F86C57C14 /* BRResultModel.m */, - BF1D5FE179804694EF63A50FB66D79D6 /* BRStringPickerView.h */, - AB2F2ED04AC1855C92554B71108661C7 /* BRStringPickerView.m */, + 05D13810E9465114CEB23FB6CFCB23D5 /* AgoraContentInspectExtension.xcframework */, ); - name = StringPickerView; + name = Frameworks; + sourceTree = ""; + }; + D3916B57E2D9C16A38989BDBCE0B3EFC /* ContentInspect */ = { + isa = PBXGroup; + children = ( + D230388306322943007385AA8036F353 /* Frameworks */, + ); + name = ContentInspect; sourceTree = ""; }; D3C9E5EC02FD527186CC7781F9C813CA /* CellData */ = { @@ -11872,81 +12626,12 @@ path = CellData; sourceTree = ""; }; - D44A7677A10CE6916435CC99FFFE5CBE /* Support Files */ = { + D5E45B12A9CDD10FCBA1F466CFAB1C49 /* Resources */ = { isa = PBXGroup; children = ( - 4E70276862717303D11D443124244893 /* JXCategoryView.modulemap */, - B24E6D65F9FD1715159F3CBABC7D755A /* JXCategoryView-dummy.m */, - F4083D8A7E45E15865BE5803DE193294 /* JXCategoryView-Info.plist */, - 21269D852F39E22D6312538D3EF162A4 /* JXCategoryView-prefix.pch */, - 8036E4822E47748646E4C8079711ADDC /* JXCategoryView-umbrella.h */, - 69B248D555D8BD61F0BE46A285DFCDF8 /* JXCategoryView.debug.xcconfig */, - 3F9FFFF7EC51D7F650C770A05053DAC6 /* JXCategoryView.release.xcconfig */, - DE9620EE71CFEFEEE03EC409FDDDA0A2 /* ResourceBundle-JXCategoryView-JXCategoryView-Info.plist */, + 47244846055B1984C8720B09D4E682B8 /* YBImageBrowserVideo.bundle */, ); - name = "Support Files"; - path = "../Target Support Files/JXCategoryView"; - sourceTree = ""; - }; - D4C55484CD92E780B707846C969EAD89 /* Html */ = { - isa = PBXGroup; - children = ( - FB4E7E1C2D61D4B0BA7189E976F6854B /* LLHtml.h */, - F0D419308728BF1A25C72B89B70F2493 /* LLHtmlComponent.h */, - 442DC7515F4A10B07B14F67C8A1B0DA7 /* LLHtmlComponent.m */, - D080384D965E90350B3F19D493EB0BAB /* LLHtmlConfigViewController.h */, - 793BD5B1F577357BCFF00938BCAF04FC /* LLHtmlConfigViewController.m */, - 206F285C417EB4592AD582E0E645404D /* LLHtmlUIWebViewController.h */, - D51C121C141A77CFF72D490239BAF9F7 /* LLHtmlUIWebViewController.m */, - 66DF3D1DAFCFB049D5AFBF7B7E0EE32E /* LLHtmlViewController.h */, - 29B7D14D3169A64C161155CFB980AF20 /* LLHtmlViewController.m */, - B5D3F9F4DF3C1DC363F3C1747A0F042C /* LLHtmlWindow.h */, - 2B6D267CE9E1B697119ACB6DD5BF6881 /* LLHtmlWindow.m */, - A2718CA949BAF9593150667E3EE82BB9 /* LLHtmlWkWebViewController.h */, - B41610D9C71138E26CD083D47E0CDA3D /* LLHtmlWkWebViewController.m */, - 8C0739797D471F6BB6CFD302504B6DE8 /* LLWindowManager+Html.h */, - 9E30BFB967304B7C677E3EFC6D830038 /* LLWindowManager+Html.m */, - ); - name = Html; - sourceTree = ""; - }; - D66682FA0AA3EB5945C816847E4B3080 /* Core */ = { - isa = PBXGroup; - children = ( - 28C1495CD5448A6EFED38F45A527251B /* FMDatabase.h */, - B5A9F243B9EAC464EE4B36D914634458 /* FMDatabase.m */, - 5D4590DE7BFAB8B5585664C4271F8723 /* FMDatabaseAdditions.h */, - BCC9D0A8697B7A2AC3B8D6D3F5DD4623 /* FMDatabaseAdditions.m */, - 121C7BCD792C816BBAAC7774652021D7 /* FMDatabasePool.h */, - AFAC5634963A089BAF01A98BFA916B7C /* FMDatabasePool.m */, - 8FBF31FB026CFBC2F46DA82B834D55C1 /* FMDatabaseQueue.h */, - 03DB84C5DAB22C9CC33D74AC4DF94FD8 /* FMDatabaseQueue.m */, - 1739D40E3ECE7CF5786D24A51C8AA0B0 /* FMDB.h */, - 19F5B12627C5AA63AD9135DE3E6260CB /* FMResultSet.h */, - 0E14717C79BA97D405005454EC460097 /* FMResultSet.m */, - 7128B6273FE9775063361BEBAE906A91 /* Resources */, - ); - name = Core; - sourceTree = ""; - }; - D7F9B6C314436CB3FD1D4A43E54520DA /* Video */ = { - isa = PBXGroup; - children = ( - FA3874AF2A2DB99BDD9D65D599FF0FF9 /* YBIBVideoActionBar.h */, - 02ED9A8E87499543036ED657A3756A4A /* YBIBVideoActionBar.m */, - D7CE1677ED87451ED6880866BA1CF6C3 /* YBIBVideoCell.h */, - B819BB8F676B0834236C011C2159475B /* YBIBVideoCell.m */, - 9D0482EBFF9848823658B081A54CCFFB /* YBIBVideoCell+Internal.h */, - 0DBED08975EC04695D0471F24E5EC0C5 /* YBIBVideoData.h */, - D51323B7EF423B6F5E9C22307A601AF0 /* YBIBVideoData.m */, - 1A05C39702EF96E64D5A8F78FAA0AEE7 /* YBIBVideoData+Internal.h */, - 759C22D19B734FD7914350F679EF3A7B /* YBIBVideoTopBar.h */, - 26066A905DEEEE84553A9221450A2D8C /* YBIBVideoTopBar.m */, - 00715EDF92C9D06491FC9799F92407E0 /* YBIBVideoView.h */, - 6C05CAB860CB05ACA1887A474F3C5723 /* YBIBVideoView.m */, - C7109D3A10E0F7A8F9F8AF8D6A947F6F /* Resources */, - ); - name = Video; + name = Resources; sourceTree = ""; }; D88180ABCE2272BC0058011B2304CE0C /* Chat */ = { @@ -12005,19 +12690,32 @@ path = BaseCell; sourceTree = ""; }; - DA44B83CEBB32DB7116357F7FC1C09F6 /* Support Files */ = { + DA2212F11AE40408DC67A1C3D593217A /* Hierarchy */ = { isa = PBXGroup; children = ( - 09951D634DB3327E3E72184ABC98EFDC /* ReactiveObjC.modulemap */, - 692404F6D6615D05F46F6C26915DCE97 /* ReactiveObjC-dummy.m */, - 15BACCDF1E62033AF5CD2F2FBCA2F220 /* ReactiveObjC-Info.plist */, - BD7949A867962F461CDF24FC6813633D /* ReactiveObjC-prefix.pch */, - C545DCD091AC0B30D265510FFD6F5E84 /* ReactiveObjC-umbrella.h */, - BEF43A731E4D94C78C75166E669E9FA8 /* ReactiveObjC.debug.xcconfig */, - D0022808E8F77EC0E79CEBA82472AEED /* ReactiveObjC.release.xcconfig */, + 51166D92E11078C50AE52E881DB09BE0 /* LLEnumDescription.h */, + 0FC180A2D3D7441C79D90FC3533C91C9 /* LLEnumDescription.m */, + E13AF1DF1EA09639F6F1D482DA30D222 /* LLHierarchy.h */, + A613244EA3F30D41E7F6A2B3E0C11771 /* LLHierarchyComponent.h */, + B80E2691F8C188D11FE61DFAD52C6FF3 /* LLHierarchyComponent.m */, + 045B381B796968C148FD9386FF98FFAC /* LLHierarchyDetailViewController.h */, + 7D7456310EE07F17AF25F30FBA7E159C /* LLHierarchyDetailViewController.m */, + 3F1BA4BA88EB71B223562EEACCDBFE05 /* LLHierarchyHelper.h */, + 172CB44B04B81500A3896C8F1EA66C29 /* LLHierarchyHelper.m */, + BA6D334238E33F7648A0A126AA2569DC /* LLHierarchyInfoView.h */, + F8E05516B4AFA1A47E780B068A22E7E9 /* LLHierarchyInfoView.m */, + 8599F350D9B61D88A495344D7BAE052F /* LLHierarchyPickerView.h */, + 87FE95E5016AE4506C40838D4BB06BEC /* LLHierarchyPickerView.m */, + 315FC00907D3B61F7085A204AF7583FD /* LLHierarchyViewController.h */, + 665C51535F2E4D888446AA4C1D24119E /* LLHierarchyViewController.m */, + 3D1757743CDC76FAC89974FBEDD31E89 /* LLHierarchyWindow.h */, + E36A5330493A24254E2ACD21ED5B6F71 /* LLHierarchyWindow.m */, + 5FC5A55F5B13D5261B74CD0B8F8D29C8 /* LLWindowManager+Hierarchy.h */, + 2D4AA009EFBF09AF09130C2D978E268F /* LLWindowManager+Hierarchy.m */, + 6E322BD5C5A5DEF2120CFC5FA8F75A03 /* NSObject+LL_Hierarchy.h */, + 45F6156BAFF6E3C11F8C266239D12A47 /* NSObject+LL_Hierarchy.m */, ); - name = "Support Files"; - path = "../Target Support Files/ReactiveObjC"; + name = Hierarchy; sourceTree = ""; }; DA84B9FB09E8FFD8D601332816F7C22F /* UI_Classic */ = { @@ -12034,6 +12732,30 @@ path = UI_Classic; sourceTree = ""; }; + DBA61C865FD19DD4F3CEC32256F0D6B0 /* Support Files */ = { + isa = PBXGroup; + children = ( + 39B59F81DD5B923A6917D73817561C63 /* YYText.modulemap */, + AA7F7BD6DA0E90C79B0C2F5390A8BD40 /* YYText-dummy.m */, + 1C33AB6E13244E6E5A312200E726BD56 /* YYText-Info.plist */, + 1F72FA2C4280C378D93155F09037443B /* YYText-prefix.pch */, + 512EC903D472361CCD58ADB381897CFD /* YYText-umbrella.h */, + BFC84236DC6934E20BF769B2B51E459B /* YYText.debug.xcconfig */, + 6AF6640AB2CCFE42C07F6501E2493172 /* YYText.release.xcconfig */, + ); + name = "Support Files"; + path = "../Target Support Files/YYText"; + sourceTree = ""; + }; + DBC323DA54ACAF7C3376A7EF038F5A58 /* Frameworks */ = { + isa = PBXGroup; + children = ( + 9E2ABBB2D306832705D5F72001B246F6 /* AgoraVideoEncoderExtension.xcframework */, + C94024930AB08B4D77F3F6E9D671E1A6 /* video_enc.xcframework */, + ); + name = Frameworks; + sourceTree = ""; + }; DBEFE3F91006C6B60C044A4D7B0D0FCA /* TIMCommon */ = { isa = PBXGroup; children = ( @@ -12054,22 +12776,6 @@ path = ../TUIKit/TIMCommon; sourceTree = ""; }; - DC44BE61C6BDA24EBAF1CEAB75D88F55 /* RtcBasic */ = { - isa = PBXGroup; - children = ( - 94F75105974614B9C5AB7E9D5CAF00CC /* Frameworks */, - ); - name = RtcBasic; - sourceTree = ""; - }; - DD0B2C8F81BC48B5A1FE877E6BE748C5 /* Frameworks */ = { - isa = PBXGroup; - children = ( - 743ABD6A6D90D4CF7710C9D52F62B5AD /* AgoraVideoQualityAnalyzerExtension.xcframework */, - ); - name = Frameworks; - sourceTree = ""; - }; DD1510677AB60FC4525E085427AD861F /* Header */ = { isa = PBXGroup; children = ( @@ -12150,109 +12856,109 @@ path = Chat; sourceTree = ""; }; - DDD1AB4E3E111A83F8A7F8A64585B2CE /* Support Files */ = { + DDE7D076447112818873A43A8E6471C6 /* Frameworks */ = { isa = PBXGroup; children = ( - 8D34B22795A7B36F62CC8AC203968F25 /* JXPagingView.modulemap */, - CF22ACA36E6E1D4341A21AC7BDB8234B /* JXPagingView-dummy.m */, - E865361FAE521D5042AECC879406C1C5 /* JXPagingView-Info.plist */, - A708425D347458CF69857FE1EB5E2BD9 /* JXPagingView-prefix.pch */, - 76D132A2176B2450D9F819A17F35F9E4 /* JXPagingView-umbrella.h */, - 9DA99233A2841983A6D535D521B82607 /* JXPagingView.debug.xcconfig */, - 899FE2DF1ECBAD93868B2D343027EDB0 /* JXPagingView.release.xcconfig */, - 78283A414D283E84B549310A9DEFC98F /* ResourceBundle-JXPagerView-JXPagingView-Info.plist */, - ); - name = "Support Files"; - path = "../Target Support Files/JXPagingView"; - sourceTree = ""; - }; - DEE0683429F6FD83610762383F8901B0 /* Log */ = { - isa = PBXGroup; - children = ( - 04D571BABDBB15F97622B0D805B60213 /* LLLog.h */, - 68B797A2CDC7AD73EB6C2F1C74C8C36C /* LLLogCell.h */, - 93D8230D41E4E6E46D22CF26B773A52D /* LLLogCell.m */, - 7986063DEFE43E2F80E37E4A1882CB24 /* LLLogComponent.h */, - 422005268305760033704361EE21208D /* LLLogComponent.m */, - 983C32C3FED8FE8453CCBEAF54DCD23F /* LLLogDetailViewController.h */, - 102552B7677D63C293FF23EA6E3ABCFD /* LLLogDetailViewController.m */, - D04A0233439BC2F162850F68B07CCB3C /* LLLogFilterView.h */, - EF5B4DC8A9BAF7B6628BF677B9A547F0 /* LLLogFilterView.m */, - 714451231985AB5241D32A66ACA4EBB0 /* LLLogHelper.h */, - 326457E17330AB8C4BF96B7DF959A075 /* LLLogHelper.m */, - 5B68201A654F737330642C2495AD1325 /* LLLogModel.h */, - 6A7AAAD1AD9FE69C87ECAA09DB3606CC /* LLLogModel.m */, - 89142EC6B523D91585CFF089AC2D5760 /* LLLogViewController.h */, - B13E833E737474C1E3C8C2ABC68ABDFC /* LLLogViewController.m */, - A51301AD2DEA724DC4FFBA2A074839E2 /* LLLogWindow.h */, - 1F45A768F6ABE10A865ADEE0772C06C4 /* LLLogWindow.m */, - 84DC34A068077DFA9A3C77C06571FF24 /* LLWindowManager+Log.h */, - 9DD333580E90F323B0E9F07F0A06422E /* LLWindowManager+Log.m */, - ); - name = Log; - sourceTree = ""; - }; - E051555C107789D7D7B9AA800CA02735 /* Frameworks */ = { - isa = PBXGroup; - children = ( - D2DE28FAFB4B78188B1375DF4C93E230 /* WebP.framework */, + E5E896043D8BA571D11E0CA55BE4AE68 /* AgoraAudioBeautyExtension.xcframework */, ); name = Frameworks; sourceTree = ""; }; - E3466075291D98A72CCC7EE8C46A34F8 /* Network */ = { + E1273FC545E31F2B19878D0EF471D954 /* MJRefresh */ = { isa = PBXGroup; children = ( - EC0432E6C5A9F3162D407A3C677C2791 /* LLNetwork.h */, - 33189B650BEB3689A94AD39C796B0F85 /* LLNetworkCell.h */, - 27D36B9A44BD6E35F3475595AC7E13B0 /* LLNetworkCell.m */, - 5E4140709CD30665E92934462B28F87F /* LLNetworkComponent.h */, - 5AC25879876AB54C8D73855B58D378D8 /* LLNetworkComponent.m */, - A36328E824823110688B0E258456BBC6 /* LLNetworkDetailViewController.h */, - 9084936B68F36D335E818E606C5B306C /* LLNetworkDetailViewController.m */, - 13440D22EF77695236BA9B4DEF2E88BC /* LLNetworkFilterView.h */, - 2D940C751843B36BEB6906542158AB9A /* LLNetworkFilterView.m */, - 9B8DCC45CDEBEE45C76704381B29D9C3 /* LLNetworkFilterViewController.h */, - BB7828C91DBD796106F506300C7CDF36 /* LLNetworkFilterViewController.m */, - 34B32386E62DAFD9F626300575CF2D1A /* LLNetworkHelper.h */, - A19D671115C14C28BDBD8FA35EA47272 /* LLNetworkHelper.m */, - A84212C733EE4C0F206ECE609D2CD477 /* LLNetworkImageCell.h */, - B13E38E110BFB6989C00FA0144504D42 /* LLNetworkImageCell.m */, - 654E73A05103D50BF66BAD6D0D38DEC8 /* LLNetworkModel.h */, - 04B919D67838FC229439BB0B4662F04C /* LLNetworkModel.m */, - 5F4E0564755FFDBADDB9183ECB554A68 /* LLNetworkViewController.h */, - 917B9B835A9ADCB099DD9059B41E3FFB /* LLNetworkViewController.m */, - 803C6D9674538F98A75D1477FA70C01C /* LLNetworkWindow.h */, - E560E18BB9B4ECA6400E78332BD04253 /* LLNetworkWindow.m */, - 09C40ECED6606B10F5281CED2D23A991 /* LLReachability.h */, - 69B931EC69B669A60CC11B4455935C74 /* LLReachability.m */, - 0970752D93B2D31FEF265D08321B2471 /* LLURLProtocol.h */, - EBA26284EF96039CE4F9195867B7F3D1 /* LLURLProtocol.m */, - 78F40CD95F964A48B1B2D4E12A399BA3 /* LLWindowManager+Network.h */, - F56A893F541C7B361D833E39B93D5939 /* LLWindowManager+Network.m */, - A6F53221B473FF9F89CB2EACD5739FBA /* NSData+LL_Network.h */, - ABD5F2C79D0E0B7507D53E84E2C8AB34 /* NSData+LL_Network.m */, - 29272B13145F66FADEAB7CDBFBFE245A /* NSHTTPURLResponse+LL_Network.h */, - 34AB9D4B67F808A65B4C76074FF1074C /* NSHTTPURLResponse+LL_Network.m */, - F0843D21283D9AAC0F3F523506980FDD /* NSInputStream+LL_Network.h */, - A08F8B16492370DB9F28EB5099110A4E /* NSInputStream+LL_Network.m */, - 6AE29C597486D351C1A50091BB2CD4D3 /* NSURLSession+LL_Network.h */, - 64760B2AF401FED2F042CB61BFA41999 /* NSURLSession+LL_Network.m */, - A8F9A41909751D027FEC04392628035E /* NSURLSessionConfiguration+LL_Network.h */, - C2CE90DCE001B8195515F4D65E2ED183 /* NSURLSessionConfiguration+LL_Network.m */, + D35C99E8614F1240276A47D9A3C0237B /* MJRefresh.h */, + FFDE1D22A05B7734B4D04697FBA9703E /* MJRefreshAutoFooter.h */, + 7DE64C569A1E6932192F89F76EE47A34 /* MJRefreshAutoFooter.m */, + 8FF907C8216B1C454231D7D3BAE13426 /* MJRefreshAutoGifFooter.h */, + 86075546D8DCB851A80563BC28DB4CDF /* MJRefreshAutoGifFooter.m */, + 769A0472F954FE718F6A4E551D2894F2 /* MJRefreshAutoNormalFooter.h */, + BE7757F8AD39EE1F7BEC579DFBAF1158 /* MJRefreshAutoNormalFooter.m */, + 04483493AE81CA6B29E55ED29DE41586 /* MJRefreshAutoStateFooter.h */, + F01E1F08282F3394FD18192811AC5C49 /* MJRefreshAutoStateFooter.m */, + 9502B0B473623E7357CE14F670B4A6C5 /* MJRefreshBackFooter.h */, + 6CBB765E04F1683B0F0F50AF3C346C9C /* MJRefreshBackFooter.m */, + 953EA43E3F2AF86474EE7D74EBCBD573 /* MJRefreshBackGifFooter.h */, + F3238A7705973F5D24304E387D6646F4 /* MJRefreshBackGifFooter.m */, + 204426110067416B491362D7ABBCA052 /* MJRefreshBackNormalFooter.h */, + AA6C170C80274AA4B47C157B76FEDCDF /* MJRefreshBackNormalFooter.m */, + 9B1559F7D5A38D19DF602A367B89383A /* MJRefreshBackStateFooter.h */, + E2625642277CF56AE9F82AFCBB63EEFC /* MJRefreshBackStateFooter.m */, + 3CDC87DA0AFD4FF5C4C35065331B3A64 /* MJRefreshComponent.h */, + 7CC8A4437F40CBBF7AD1B9F900965783 /* MJRefreshComponent.m */, + 7D1124643FAA5580FABB3C1211801FAA /* MJRefreshConfig.h */, + 7E117D8C5A00946329D50C817ABA1495 /* MJRefreshConfig.m */, + 0099A22C8BA1C31D012F487D75194315 /* MJRefreshConst.h */, + 8F7928C82DAD75AC11E29EB566F480C5 /* MJRefreshConst.m */, + 7A7F4E929AA33853310B11781EEB9EF6 /* MJRefreshFooter.h */, + AFA6497AF7365FFB0A6AE8D6446BD7D0 /* MJRefreshFooter.m */, + 4AC207119B73A324FA703ECBC70E7591 /* MJRefreshGifHeader.h */, + F0E672C03917739DF51EEFBC4528E5E9 /* MJRefreshGifHeader.m */, + A76638BBDB3A90170090F0B04BEB7752 /* MJRefreshHeader.h */, + D5D0B47D069C02BC3AC52FB851635104 /* MJRefreshHeader.m */, + 583D558EA52ECDDA31F861C4C7A7D402 /* MJRefreshNormalHeader.h */, + 9BEF732727DBD392AFAA82C773855B0E /* MJRefreshNormalHeader.m */, + D3E3C7EFAD924F6C0AB18FB04A025563 /* MJRefreshNormalTrailer.h */, + B0B826306FDFB3F9365808FE0ECC8EE7 /* MJRefreshNormalTrailer.m */, + A565896E9ADE92E95BFA3D78C3448E59 /* MJRefreshStateHeader.h */, + 62D2D3B118A4F616DAA2D0738B90699D /* MJRefreshStateHeader.m */, + A4C9591D960245AAEDA6C83E81505668 /* MJRefreshStateTrailer.h */, + D8076727251FFD8F87405D28F5A543CC /* MJRefreshStateTrailer.m */, + BD3EFEA8D8C7A0FC5D460B9546BEB6BC /* MJRefreshTrailer.h */, + 5BD3B0AC73D7D3B674D2C8951C3CC458 /* MJRefreshTrailer.m */, + 3443B7A055C772DC7A0B5A8FDBB9431B /* NSBundle+MJRefresh.h */, + 06E20AF8BAEDFF42624D3E09AA89D66A /* NSBundle+MJRefresh.m */, + E0E73A539E857E7C1A16FC745598812F /* UICollectionViewLayout+MJRefresh.h */, + 0623C1E13AA2A0351AFC2BD89FB49763 /* UICollectionViewLayout+MJRefresh.m */, + E5430B61F1535179412C3298C4B8816E /* UIScrollView+MJExtension.h */, + ACE45D60BA908387E7AC000FEA74358E /* UIScrollView+MJExtension.m */, + F56497042AE613CAC039F1626388B075 /* UIScrollView+MJRefresh.h */, + 83B6710C39A209D61985C1FF3B2AE5E1 /* UIScrollView+MJRefresh.m */, + CD1F7F8BBC69402151D983080FEA8471 /* UIView+MJExtension.h */, + 8E94E4E4444BC6E312965ABBB875E3EC /* UIView+MJExtension.m */, + 826258E2F41A704842DFD469C313A3E0 /* Resources */, + BD02F9518FFD861A05243C7D706441D6 /* Support Files */, ); - name = Network; + name = MJRefresh; + path = MJRefresh; sourceTree = ""; }; - E45968C2BB434669ADB91A45583276F5 /* SVGAPlayer */ = { + E3A1F33B81C6499194D39E0A5367237A /* Support Files */ = { isa = PBXGroup; children = ( - FB457A0789C1280A955023538721A7E6 /* Core */, - CA30060D00A40B08672419A631DBCB14 /* ProtoFiles */, - A01E0516CF02FD75AF6663AF7750C324 /* Support Files */, + 63F7F4EF5CBB4638DF86614C461CDBB3 /* MQTTClient.modulemap */, + 4D35A74BC801A1B8AECF7D12EC6B801A /* MQTTClient-dummy.m */, + 5CB0F6D85B106F72CF74B3CEC5A1D176 /* MQTTClient-Info.plist */, + D36E63C06BFB83559EE38B2505C3048A /* MQTTClient-prefix.pch */, + E3005CBA4D670540031B0AC9B7BF3FA0 /* MQTTClient-umbrella.h */, + 7714E976693EA99BE59000205D302755 /* MQTTClient.debug.xcconfig */, + 1854DC9D55B17DD70F4C7058C19FF2F9 /* MQTTClient.release.xcconfig */, ); - name = SVGAPlayer; - path = SVGAPlayer; + name = "Support Files"; + path = "../Target Support Files/MQTTClient"; + sourceTree = ""; + }; + E459B1809505DF79B1948D0FEDA7AFB3 /* Support Files */ = { + isa = PBXGroup; + children = ( + AE44F5422F5F0932EB52B56C4AF04D32 /* AvoidCrash.modulemap */, + 0C0F0FD1CA80715765F6CF94A7A9C0AF /* AvoidCrash-dummy.m */, + 6EEC0A9F0B73A6C9A1EC6C0BD6B49EE4 /* AvoidCrash-Info.plist */, + 725D5047BA2D6891842D7F684B677DAA /* AvoidCrash-prefix.pch */, + 9EDA984FC606C7786F043FCB36227404 /* AvoidCrash-umbrella.h */, + 9CE8517167832C532F4FDBCA7725C55F /* AvoidCrash.debug.xcconfig */, + 607DD143B7FE0F2FAC3B4835F05C6F0F /* AvoidCrash.release.xcconfig */, + ); + name = "Support Files"; + path = "../Target Support Files/AvoidCrash"; + sourceTree = ""; + }; + E473339B0C0418561C27587B301958C7 /* FaceCapture */ = { + isa = PBXGroup; + children = ( + 8FD9F245D5A14DE83B1CDA41B1573172 /* Frameworks */, + ); + name = FaceCapture; sourceTree = ""; }; E4B761DECC36CA40A12596576C14C9BF /* Chat */ = { @@ -12285,12 +12991,137 @@ path = Chat; sourceTree = ""; }; - E4FAAF73B7EA2CF1C6F8849B515FE6D6 /* Resources */ = { + E4EBA5F01478E20A1196D498F0534B86 /* AliyunOSSiOS */ = { isa = PBXGroup; children = ( - B63BA3093E22820A65B90FF7FBB0962E /* BRPickerView.bundle */, + C87D4A32A49F0866458481A6C4751363 /* AliyunOSSiOS.h */, + EE89A6EA0D5F935FF1E4B4D39E928AC5 /* aos_crc64.c */, + F204C8E9145F57163F6EE85A499EA11A /* aos_crc64.h */, + 4FF0632AC66004E15AE1242C155D8A16 /* NSData+OSS.h */, + 9B26A92A7F41BE44412BF4151857574D /* NSData+OSS.m */, + A205DF285961A683BDABB3F026EAF070 /* NSDate+OSS.h */, + 9F8E1D3AB840A9EAAB2361A28EA6660E /* NSDate+OSS.m */, + 5FA491F71D09EE8210D0037DE3363926 /* NSMutableData+OSS_CRC.h */, + 96D60FAA08A4AD43F6A699D26B9D16EC /* NSMutableData+OSS_CRC.m */, + C5AF25C4A2709634CF3EB5429C9A4520 /* NSMutableDictionary+OSS.h */, + 4ED53B73CF9D64B4F955BABACA49A2E4 /* NSMutableDictionary+OSS.m */, + 517CE6AC36880E1AD113C29DE39FF026 /* NSSet+OSS.h */, + 936AFBA0A950DAA32400CF9454411A48 /* NSSet+OSS.m */, + 3AEBC735855A390946B5EF65B3823B1E /* OSSAllRequestNeededMessage.h */, + 1AF888AD2D01349BB1539729BFBAE5CF /* OSSAllRequestNeededMessage.m */, + E76FF91F73392067A0842DA01AECC136 /* OSSBolts.h */, + A98B45B96F67A668A3EBE9B4D3BD12EF /* OSSBolts.m */, + 37E9AD7DCB022C875EC7E34C9066A336 /* OSSCancellationToken.h */, + 24247A6B54051F81748085AF5018565B /* OSSCancellationToken.m */, + 4138A87F260183784A34F09B09809E36 /* OSSCancellationTokenRegistration.h */, + 82D4AA5F4F0F239F62DF2A79FEA53CB7 /* OSSCancellationTokenRegistration.m */, + 021A626905C188DF3DECC7A1B16E617F /* OSSCancellationTokenSource.h */, + 52D76EA9F9359DD8E0593C7B0696A688 /* OSSCancellationTokenSource.m */, + DDE6B5003C19BEF91575545DF64F29EF /* OSSClient.h */, + FBACC6494379F151A8E4457F350562C3 /* OSSClient.m */, + E4330A749A940B5AA89F9A60869460AC /* OSSCocoaLumberjack.h */, + 7C060A1B3314655E245A42B468679D3D /* OSSCompat.h */, + A85E8FDD8A1086AD73C014B6D6033655 /* OSSCompat.m */, + 2AE4A74A978E3E77BF8E0C4AF2EB61AA /* OSSConstants.h */, + C08D14D80A418D788FC62B0EBAA6E0D8 /* OSSConstants.m */, + 1D8331164E212257C20D95AB2E3448C8 /* OSSDDLog.h */, + 0257F63285DF532F217CB060E81B56EE /* OSSDDLog.m */, + C0BDD55090EA491AF820C3E1B6AA09D4 /* OSSDefine.h */, + EF4E32640150F200E41FBF0CA7EDF0E2 /* OSSDeleteMultipleObjectsRequest.h */, + C9B3407E9964E300B473126AAAE3F5BD /* OSSDeleteMultipleObjectsRequest.m */, + F2AC53F6F4586A35D3FFFF1BDB6D871E /* OSSDeleteMultipleObjectsResult.h */, + A2C09D9CCFD530FB976ADE84BD0A52F8 /* OSSDeleteMultipleObjectsResult.m */, + 2782991E1DCC2DC5E6762AEABDB651C1 /* OSSDeleteObjectTaggingRequest.h */, + 650ECB455240EC2D4951420C5853FB71 /* OSSDeleteObjectTaggingRequest.m */, + 6D9857627FF718DAF6B431262DEB5704 /* OSSDeleteObjectTaggingResult.h */, + B263D9F56028DCAF3F376D150DCEDB73 /* OSSDeleteObjectTaggingResult.m */, + 8196DF90AC27B269BC046A3C0AF41F3E /* OSSExecutor.h */, + 21BC654EF72FE10DB39330E4AEF34656 /* OSSExecutor.m */, + 5CB89412A91A86D42BDCB3EFCBE8B644 /* OSSFileLogger.h */, + A3DC28FF7BCE17C84E078D7B0B24E628 /* OSSFileLogger.m */, + B416AE5CAE1C71E0CD37C132DDACE397 /* OSSGetBucketInfoRequest.h */, + D5E90B4CD67A67C3D852421AC1659F23 /* OSSGetBucketInfoRequest.m */, + EA7074CE7972C5E11D452EB1B3FD9A81 /* OSSGetBucketInfoResult.h */, + BEC903997C0C9532B3B0E836B3542926 /* OSSGetBucketInfoResult.m */, + 254C447AE99BD0064FCF9A29F9124605 /* OSSGetObjectACLRequest.h */, + C1B44F7C84CE5F424E138473F02C948C /* OSSGetObjectACLRequest.m */, + 4A5AF9B087E813547E706B45C3DFB7E1 /* OSSGetObjectACLResult.h */, + FE3AC34514DCD306FA3CC025C8C9C22B /* OSSGetObjectACLResult.m */, + 573B74D12E6E54986C8557B3D9046F11 /* OSSGetObjectTaggingRequest.h */, + BE241C2F9A47D46A4AF4A623C4B1E59A /* OSSGetObjectTaggingRequest.m */, + F3A7D09DD3FE09844CADECC5ED7EB147 /* OSSGetObjectTaggingResult.h */, + 0535C9DCAC87747CACE1185DA0AFD5FB /* OSSGetObjectTaggingResult.m */, + 400574FFCC52BAC3027118E7DBA6D9D3 /* OSSGetSymlinkRequest.h */, + 6197C7B50545936E0C999DC85F34A649 /* OSSGetSymlinkRequest.m */, + 96F57F8950C059A0FB4F8A87B8134D20 /* OSSGetSymlinkResult.h */, + 74EBA74B7708B22C55E2C20743A36E39 /* OSSGetSymlinkResult.m */, + A3760168DD553F63C1B028117FACCA40 /* OSSHttpdns.h */, + 34AD6B77629EF6E1432ED0F009E85F10 /* OSSHttpdns.m */, + B3BA5D06353974236746C59F1C574993 /* OSSHttpResponseParser.h */, + B67587D4C6EDE3D3F984451E994D0B8B /* OSSHttpResponseParser.m */, + 05F2E80C39D2DF3A04F2F806BFA2D391 /* OSSInputStreamHelper.h */, + 9A81EBF3E122777C71BC1E14A5A5DC2F /* OSSInputStreamHelper.m */, + 923D56204C8878303AE2C6359922DB30 /* OSSIPv6Adapter.h */, + B7B9417ADC72AFB9DB5C0C63BD184A23 /* OSSIPv6Adapter.m */, + F45376A94E516AF1D7060549269A6A5A /* OSSIPv6PrefixResolver.h */, + 14041B691D7491247310B82D64739506 /* OSSIPv6PrefixResolver.m */, + 7B50A7E8DA5B74A5B380E5D6A332CF25 /* OSSLog.h */, + 1CE3CE3DBC64AB60E3A5818C1BE4EE97 /* OSSLog.m */, + CEF4B9B1F796455AFE7B18763F69EBDE /* OSSLogMacros.h */, + E7FB5DD066A6771B3D6ED75334CFD6EE /* OSSModel.h */, + 872092720724CD156A786F236C00CAEB /* OSSModel.m */, + 4A0CED06B42A21EB241B1DF222855283 /* OSSNetworking.h */, + 20879D9B56A7E684907F75923C3F6EF1 /* OSSNetworking.m */, + 9FF110BC6855F39BA27623F8D6056E68 /* OSSNetworkingRequestDelegate.h */, + 3B6C3FF75906D49816B4A95049FDEE4A /* OSSNetworkingRequestDelegate.m */, + 199E167D37F89FBAB58B59277B052F6E /* OSSNSLogger.h */, + 35274E48FA9B681200EB7E115F96721F /* OSSNSLogger.m */, + 469100BC47C2243AFF98CA27D2EB409D /* OSSPutObjectTaggingRequest.h */, + 83D296A06C346620040962D0D749D156 /* OSSPutObjectTaggingRequest.m */, + 0AF58878DCB0DD0EDCDC248201356A28 /* OSSPutObjectTaggingResult.h */, + FDB766D9288EAB5D81C6D0E89C819D98 /* OSSPutObjectTaggingResult.m */, + E64C0CC4EE8501C605F259E3B887D980 /* OSSPutSymlinkRequest.h */, + 8A0A2D55C1414A8E81DC33C523BA9110 /* OSSPutSymlinkRequest.m */, + D2BD87A3DBDBAC8E670C094233EB262E /* OSSPutSymlinkResult.h */, + 0612DC526A30752E51650E0CA0BEB4B8 /* OSSPutSymlinkResult.m */, + EE6091647D1C566C87CC7254162D681B /* OSSReachability.h */, + 8713EAD8F5F555520F376C1B56C94475 /* OSSReachability.m */, + 9B5A9F8E58D4C563082437381DF998CD /* OSSRequest.h */, + EA78C5CB4CC328A89FAA412536E20940 /* OSSRequest.m */, + F4BFE503E4A73ED6B5425D791B013C99 /* OSSRestoreObjectRequest.h */, + B716F297BF2BB5EC6D457C8F094B3E05 /* OSSRestoreObjectRequest.m */, + 613A2513436703013AE9CEDA1109907D /* OSSRestoreObjectResult.h */, + 3D41F48683FCC1EDA89D903FF0965373 /* OSSRestoreObjectResult.m */, + 2D17F39F57A6545F841645C65D8D7100 /* OSSResult.h */, + 2457FA1E27DA7FD51ABCA23257D94C88 /* OSSResult.m */, + 76678DADF04F439070B40060F80653A3 /* OSSService.h */, + 8987F2680025821384582D94FD0210C3 /* OSSServiceSignature.h */, + 9A6600403FF27849D26DCED372AB99BB /* OSSServiceSignature.m */, + 644954D23769116479DF55829AA34123 /* OSSSignerBase.h */, + 47E10E0D6778A84F4226B56EA9B3EE54 /* OSSSignerBase.m */, + 9BE32627DF4D8D823A089C2E192012DD /* OSSSignerParams.h */, + D61672BC580B7295B72BAA51B46E2C81 /* OSSSignerParams.m */, + 4D50A1EA600F9C9F5DB4BE5C21FA010A /* OSSSignUtils.h */, + 25E296C16D1E5CA8A229C3CE3304F567 /* OSSSignUtils.m */, + 3272B2DBCD538F6D7CE6F08DD40047FF /* OSSTask.h */, + 7AC7367DFD49858857D764C9E8E6D909 /* OSSTask.m */, + B90E60B1CFDBCB3F2F1CE555E8427A14 /* OSSTaskCompletionSource.h */, + F8A8FDF49509F93A2D3C59F31A78EEC8 /* OSSTaskCompletionSource.m */, + F08DF978703E06D1D38711DEEC2B625F /* OSSURLRequestRetryHandler.h */, + 2F4072CC0F5D9B263C667F94F5F71468 /* OSSURLRequestRetryHandler.m */, + 868FA57F94057F8FC61B23A46C8140BE /* OSSUtil.h */, + F13FE25C055C994285E63FB9F737E571 /* OSSUtil.m */, + 836A68AC03CDB3884B92C0C169D41B8B /* OSSV1Signer.h */, + FBCC619F2E5062A11CCA629F5913683C /* OSSV1Signer.m */, + 6E6E8D73033CB0139EAB9E7B7B48B1FD /* OSSV4Signer.h */, + 7BA85FD2B0BC74A86DE67260FEB5932B /* OSSV4Signer.m */, + 6C62CC8D6160F965F50F122A7F6F7EC0 /* OSSXMLDictionary.h */, + 477D50507EA8EB7B547B4A2E1572DC1F /* OSSXMLDictionary.m */, + 8E0CD54C2F55401D8F7A546ACD20087D /* Resources */, + ABBA72B58C4F873C7C56CB9EA3EED514 /* Support Files */, ); - name = Resources; + name = AliyunOSSiOS; + path = AliyunOSSiOS; sourceTree = ""; }; E51ADDC563DC880381CEDB4BA941268B /* Pods-QXLiveDev */ = { @@ -12330,75 +13161,140 @@ path = Base; sourceTree = ""; }; - E65FC8DD82777C6EE17A01B85987652C /* Resources */ = { + E68C03FDD6CCB214B26C8DDBFE0AEFB5 /* Support Files */ = { isa = PBXGroup; children = ( - 166C63775ADC195B9E4AF0274FE7786D /* TZImagePickerController.bundle */, + C232FB3B5A65774E038955D1F9F35716 /* AFNetworking.modulemap */, + E3A7B5C3D308CF01E7D339EF644C71EE /* AFNetworking-dummy.m */, + D5A5E0E611D4F87301C6D2C36A877C13 /* AFNetworking-Info.plist */, + 37F7AF42CD89D99C7C641148A78BEEC3 /* AFNetworking-prefix.pch */, + 1D56A2F383AE52A2E3DF3A6F4B254740 /* AFNetworking-umbrella.h */, + A76F6366ED4DA4215F3553B65CBCEF59 /* AFNetworking.debug.xcconfig */, + 205C8F9018C2B758BAC59F6F06EAB367 /* AFNetworking.release.xcconfig */, ); - name = Resources; + name = "Support Files"; + path = "../Target Support Files/AFNetworking"; sourceTree = ""; }; - E92B58FB1CAA9517FEB7032676C2970D /* Magnifier */ = { + E750AEBE16157ECA4D8B407366EFBBFF /* JXCategoryView */ = { isa = PBXGroup; children = ( - 4ECD239C3C898255314335D24FF27D44 /* LLMagnifier.h */, - CCF6097BE8F93EE153EB8CC734BE0E3B /* LLMagnifierComponent.h */, - 1458BA2690A119C8FEDFB249E566F0AE /* LLMagnifierComponent.m */, - BF63C85D80E158AF3A1E9EB19E7C9D25 /* LLMagnifierInfoView.h */, - AFB0B825E8F65A2DDC5B09B15DAEB88F /* LLMagnifierInfoView.m */, - 647D6F61E66BC6504B5E09D7B5FDFB3A /* LLMagnifierView.h */, - 1498B5F778F353FE200AD032BF24BAB9 /* LLMagnifierView.m */, - 09073B3C4545A83E888D395FB6E2AEA5 /* LLMagnifierViewController.h */, - 4C10EA7251486F3CF046D8F5538ADA9A /* LLMagnifierViewController.m */, - A0EC51D009F30AA4859B94683989F031 /* LLMagnifierWindow.h */, - 065C9ADE9C028B93E849796DCECDEBFA /* LLMagnifierWindow.m */, - 56A5AA47557B91D4C8B1BD6563F0AB1A /* LLWindowManager+Magnifier.h */, - 105B905040346C3D2EBEF1AFBFA9B146 /* LLWindowManager+Magnifier.m */, + D60397114C329033F3EC1FE6C91F841A /* JXCategoryBaseCell.h */, + B42A64C3FD634897BDC5A5415634AD6C /* JXCategoryBaseCell.m */, + 59CBEAB2995EB1847B7FC4FE89A714A7 /* JXCategoryBaseCellModel.h */, + 912D47DD71DFADB72E7CEDD5287EEB2D /* JXCategoryBaseCellModel.m */, + 6112F12A2C44C152B62D6CF04EA3C2A8 /* JXCategoryBaseView.h */, + 7DE8A580BF8985ABA68B8D11064530FB /* JXCategoryBaseView.m */, + 43C3CFE35EC68B8945DD220F8DC627A9 /* JXCategoryCollectionView.h */, + 67D0842501F67645472CB0385474A295 /* JXCategoryCollectionView.m */, + DD1E393A663396E0042545C9810C4128 /* JXCategoryDotCell.h */, + 5005257548F3DFF019EC1E6A56D8DE94 /* JXCategoryDotCell.m */, + D4A89FDEABCA149509D2610849CF63D7 /* JXCategoryDotCellModel.h */, + A2E49E0E30F0374D1869A7E0FEDE0B18 /* JXCategoryDotCellModel.m */, + A1745B555BE6350271185A52CE4044A3 /* JXCategoryDotView.h */, + DE2C013F88A45440FC7DB25E09015410 /* JXCategoryDotView.m */, + ECBBAB4283E101197919F9885D7896FF /* JXCategoryFactory.h */, + 7B8538C92E9A05B81E43BE9E127229AB /* JXCategoryFactory.m */, + E8777A80F3109028701BC6328896A006 /* JXCategoryImageCell.h */, + 18354FADB2DFD827C38F32B5B283B9A4 /* JXCategoryImageCell.m */, + C2BB68A8BBA98BD66780B665DB150779 /* JXCategoryImageCellModel.h */, + ABF88163521CDB75D54016CB498D594B /* JXCategoryImageCellModel.m */, + 9E2B890DB980A1C091EC1EC9B0100DA7 /* JXCategoryImageView.h */, + 3F14C2DF14D0E3CC5631975A85551119 /* JXCategoryImageView.m */, + C9FC6908461B70BB12B08EDE3AEBC72A /* JXCategoryIndicatorBackgroundView.h */, + 5126A4D9B87E984813282B556AF97202 /* JXCategoryIndicatorBackgroundView.m */, + 1C4CB6C1CB8203418CDFE97C2E15EF20 /* JXCategoryIndicatorBallView.h */, + 26368630C638E71A8C20C6B148A0EDFF /* JXCategoryIndicatorBallView.m */, + 256D39F3AAE8F0B4297D2F583CE91DA0 /* JXCategoryIndicatorCell.h */, + 73C7D844511054DD693E1F939A8C33BF /* JXCategoryIndicatorCell.m */, + E047C31AC9937B895EB741CA05F233C9 /* JXCategoryIndicatorCellModel.h */, + 54104EB829695774D39A98E876CD853E /* JXCategoryIndicatorCellModel.m */, + 60F0ACFACE35B256864B519DB9B6FD16 /* JXCategoryIndicatorComponentView.h */, + 8A94570B593AB24C01653192CA3FB3D5 /* JXCategoryIndicatorComponentView.m */, + F41DC36374C12FD0B41A9BD33F9A414F /* JXCategoryIndicatorDotLineView.h */, + 3FE371DA2A6EFDB16C2401A747C6C1B9 /* JXCategoryIndicatorDotLineView.m */, + 76A365B590AD92E43010BC75DDB8A8ED /* JXCategoryIndicatorImageView.h */, + 8815A62C357FCED40FBFA5CC5AD486FD /* JXCategoryIndicatorImageView.m */, + EC29EBA6A2189FCC642AE87C1864EB3C /* JXCategoryIndicatorLineView.h */, + 133CE6640C5C7DFB943F938227BC2556 /* JXCategoryIndicatorLineView.m */, + F58FF61B5A735120E41ED0DF5DB13E37 /* JXCategoryIndicatorParamsModel.h */, + 08FC8C330637E4A26203F5C4F0C8FFBC /* JXCategoryIndicatorParamsModel.m */, + C9EB273B20622E7055FCBC9E9078D4A1 /* JXCategoryIndicatorProtocol.h */, + 1E7586DE1167AFED1753C420B434C34F /* JXCategoryIndicatorRainbowLineView.h */, + 92CCD998EA97097340DB86E4B6424431 /* JXCategoryIndicatorRainbowLineView.m */, + 158012710CADFDCACD7C7479D3F84646 /* JXCategoryIndicatorTriangleView.h */, + FF3945C6F81293E6CA9D3885C41E5616 /* JXCategoryIndicatorTriangleView.m */, + 4132B15C9DAEF46D37E2C2A2CDC99A07 /* JXCategoryIndicatorView.h */, + 61D8691DF4138DD1F4223CB015018521 /* JXCategoryIndicatorView.m */, + 8C6DE3267E526E282214774C6134F2C6 /* JXCategoryListContainerRTLCell.h */, + 7B595D29D87085688B882F34B66276A4 /* JXCategoryListContainerRTLCell.m */, + 7F1CAB64DE99CAFFF7F8C0DCE41285AF /* JXCategoryListContainerView.h */, + 5A6671A763F65A861C237A039C08D398 /* JXCategoryListContainerView.m */, + B6EBDFFAC616F225B0F0B402279D197E /* JXCategoryNumberCell.h */, + 3315DC6134F24DE76DE6F35B8D45D47C /* JXCategoryNumberCell.m */, + 6CE74D1B298989210F5075ED8306D050 /* JXCategoryNumberCellModel.h */, + 4486B7B66827B72035C9C938A6C2F114 /* JXCategoryNumberCellModel.m */, + A43FC8D677FBFD53EFF8F43679E524BE /* JXCategoryNumberView.h */, + CDC68FC5971701721E0F5AF722A2623B /* JXCategoryNumberView.m */, + C0CEB5A1B00EFCEA42EB2B0602CBF8D8 /* JXCategoryTitleCell.h */, + 0F9B1E78486FE006258AEE7EC88B74D9 /* JXCategoryTitleCell.m */, + FA4AF1F2FF95ED8DAF949CF745BE8F04 /* JXCategoryTitleCellModel.h */, + D6E24392E00CCEFC1DE947C1D4BF8B71 /* JXCategoryTitleCellModel.m */, + C687B8148F1910B4B648C64A6CD3D439 /* JXCategoryTitleImageCell.h */, + 44C8CD309D205740AE6E91FC35912EA6 /* JXCategoryTitleImageCell.m */, + 02A1DC10EF0C09312CD645E0AF3D7439 /* JXCategoryTitleImageCellModel.h */, + 202AE6CB23C1D7766483A0092527E90E /* JXCategoryTitleImageCellModel.m */, + E68613DF1CB927FB8EAE99A7C1341972 /* JXCategoryTitleImageView.h */, + 7184B751586747EA07190E5E65F23584 /* JXCategoryTitleImageView.m */, + 513EDB94C0EFD0FB669D4887555BA589 /* JXCategoryTitleVerticalZoomCell.h */, + F25A23DB19B57F2B620D4342E3BC4F17 /* JXCategoryTitleVerticalZoomCell.m */, + BED68C538A19A37E9526D13D95F95CA9 /* JXCategoryTitleVerticalZoomCellModel.h */, + C440992FB5C2BB522A19691CCA778577 /* JXCategoryTitleVerticalZoomCellModel.m */, + 49D97FDA99C133F08F9485B68A70964A /* JXCategoryTitleVerticalZoomView.h */, + CF41A05EADB663B1410C03EDE0207D4F /* JXCategoryTitleVerticalZoomView.m */, + 18041577F16A0143428033EB5F335017 /* JXCategoryTitleView.h */, + 4D50156FF02FF501BE9BE16E890E6F36 /* JXCategoryTitleView.m */, + A3A33854C22C9DED462D690FC5D83E78 /* JXCategoryView.h */, + C721DEC379A32E6A40BB74DDCD48133C /* JXCategoryViewAnimator.h */, + E74F9C60664CBFB20EA9BF1CD45853F6 /* JXCategoryViewAnimator.m */, + 73FB31866D38C5A31179DE08FB3FCDB2 /* JXCategoryViewDefines.h */, + 1738F3FDE9CC0DE7C1813CA3ABF620E9 /* RTLManager.h */, + 697FDC9C6A90677F41687893EF5DA394 /* RTLManager.m */, + E81461CED9E96FB3CBA947397E3AF3CD /* UIColor+JXAdd.h */, + 14BF43BE178C4AA10A056797985328BE /* UIColor+JXAdd.m */, + 6EE990EDDC72C43269D1F60C2017B744 /* Resources */, + A257F2738C74659EF346C24C696C9A33 /* Support Files */, ); - name = Magnifier; + name = JXCategoryView; + path = JXCategoryView; sourceTree = ""; }; - E97A35C241D578809DCCE9901809B17A /* TXIMSDK_Plus_iOS_XCFramework */ = { + E81F32BFCE8A6EB7DE809A95F624AA82 /* VideoAv1CodecDec */ = { isa = PBXGroup; children = ( - 5E585D446BF6A5005F8474777F2F630F /* Frameworks */, - ACF115BF9993C827D10997B5CD83A23A /* Resources */, - 92D5E252C8E32F84C197EBFCD1EAEF85 /* Support Files */, + 86CB9D3F1344DFC34CC511FA39C6070C /* Frameworks */, ); - name = TXIMSDK_Plus_iOS_XCFramework; - path = TXIMSDK_Plus_iOS_XCFramework; + name = VideoAv1CodecDec; sourceTree = ""; }; - EAA123D24320DB79B7509B4D43EFAF70 /* Frameworks */ = { + EA12CF9D57A81D45632DF83C91DCCC3D /* AppInfo */ = { isa = PBXGroup; children = ( - 4BD232EBDA66AE8A6AF77454C5BF3F19 /* AgoraVideoAv1DecoderExtension.xcframework */, + C2EC384853C33474F77B75DE52D2073D /* LLAppInfo.h */, + 3819279E7AF258AC6770FDDDE575D03B /* LLAppInfoComponent.h */, + DEE88D31598BBC877C31F1ED9C43BBD7 /* LLAppInfoComponent.m */, + D2D15502E1716B21DCCC2DDCE7702BD7 /* LLAppInfoHelper.h */, + BC1678DFFE2FD0D0919967D248C3C496 /* LLAppInfoHelper.m */, + DCD9F9EB746F01DEB20BA6A8D41F36C1 /* LLAppInfoViewController.h */, + FCD2A15EFA4C3639EA1F3ACF9FC6C703 /* LLAppInfoViewController.m */, + F28FCFD7EF813D25B30D12F7E698FB24 /* LLAppInfoWindow.h */, + BB719ECE2616F368FFEEB36F18BB403E /* LLAppInfoWindow.m */, + 9914816CFEB1A44C5DD27892F27F701A /* LLWindowManager+AppInfo.h */, + 9307B5FE011D6F6ED5ACC26D6E47C901 /* LLWindowManager+AppInfo.m */, + 9842CBBE1DDEAF850B3443F53051090E /* UIDevice+LL_AppInfo.h */, + 03861350775BC47ED43300CAFCF72276 /* UIDevice+LL_AppInfo.m */, ); - name = Frameworks; - sourceTree = ""; - }; - ED208E689D15441CB0DFF4063D48EF23 /* Crash */ = { - isa = PBXGroup; - children = ( - 5E9888DF58BF1C3626184D210A3E1D7A /* LLCrash.h */, - E7B8735050F4935C5F0EC57A5CAFBBFB /* LLCrashCell.h */, - D5C4D24F13BAF847987F7069AABE82EA /* LLCrashCell.m */, - 8A55DFE8F2E73912C7ECEEE2F781BCD5 /* LLCrashComponent.h */, - 9683F0FA555D901640477496F3D0C083 /* LLCrashComponent.m */, - 4193A35FC3320885BA47232C75963539 /* LLCrashDetailViewController.h */, - 1E0638C21C467AA43795C1ADEE22ADA5 /* LLCrashDetailViewController.m */, - 1178169A4033918B4D8F19C50E1F67E7 /* LLCrashHelper.h */, - CB434051D64FC3A94D524A8D4E99569A /* LLCrashHelper.m */, - 714EDD3BB6957C09011A385F33FF1B02 /* LLCrashModel.h */, - C3646BA96354A02C0099985DF4298174 /* LLCrashModel.m */, - 22B017C7FDB4A324DEF797B894E90BEE /* LLCrashViewController.h */, - 1B3DD5FA7ADF78EBF57830D7902FBF52 /* LLCrashViewController.m */, - 029643B1FDD1E9FA015424F2D2FE96BF /* LLCrashWindow.h */, - DF828F3091B735157EB463BF9A28FE61 /* LLCrashWindow.m */, - 2930EC58D1B8E09552F6807D376C0EE6 /* LLWindowManager+Crash.h */, - F8646204A9026BCB3F61952D8EA7BE6A /* LLWindowManager+Crash.m */, - ); - name = Crash; + name = AppInfo; sourceTree = ""; }; EF6F2F1AD93711F4BFE2A955508BDC18 /* Custom */ = { @@ -12415,14 +13311,6 @@ path = Custom; sourceTree = ""; }; - F139936088EECC5CD81763A65B75D654 /* Frameworks */ = { - isa = PBXGroup; - children = ( - B3D29137092B99EA007C0ADCF4AF2683 /* AgoraAudioBeautyExtension.xcframework */, - ); - name = Frameworks; - sourceTree = ""; - }; F139F64E4697E981BD98ECEDF288CB8E /* Service */ = { isa = PBXGroup; children = ( @@ -12435,26 +13323,17 @@ path = Service; sourceTree = ""; }; - F14C6855D294C2E028F9B89AC823E7AB /* AudioBeauty */ = { + F17EB15AE0FDF45C04E8FE17F9622E3F /* libwebp */ = { isa = PBXGroup; children = ( - F139936088EECC5CD81763A65B75D654 /* Frameworks */, + BAA08C858F9BD84C2B9A1E7B7D33ED33 /* demux */, + BD570E0E5925FE7057F6621D10EE15E4 /* mux */, + 115A917F1DF91569B4A7A94B3F955EC5 /* sharpyuv */, + 709D842465D438651D36B5AAF6FFE006 /* Support Files */, + 7E02DE3E12D2917CA3E6F16ADC906574 /* webp */, ); - name = AudioBeauty; - sourceTree = ""; - }; - F1DEA7C91DA97364DC66B4A96C6B66D7 /* YYModel */ = { - isa = PBXGroup; - children = ( - 5EE798C142A2020443A407DB553EC25C /* NSObject+YYModel.h */, - 6D68728C88CDAB9931092D9444DE4CE3 /* NSObject+YYModel.m */, - 3A0C1642D54AB3CA1AB9E283E62D57EC /* YYClassInfo.h */, - CDCBFE2460C3F5A7DAFF62C702FD0F97 /* YYClassInfo.m */, - 061DF778A675606EC01E9A048E925E98 /* YYModel.h */, - 967B1AC496626D43957E92C215954D95 /* Support Files */, - ); - name = YYModel; - path = YYModel; + name = libwebp; + path = libwebp; sourceTree = ""; }; F1EC581609312EFD95123D94491476BF /* Input */ = { @@ -12479,39 +13358,247 @@ path = Input; sourceTree = ""; }; - F35228AC0385D8934C33112D377973A7 /* Resources */ = { + F2D6475B18DBD3E3D41F43524B3B618F /* Support Files */ = { isa = PBXGroup; children = ( - BE9537E0CA45D429EC0A4072FD7E3B3B /* AlipaySDK.bundle */, - ); - name = Resources; - sourceTree = ""; - }; - F406E9C988EB5794E838B8FA549A5C84 /* Support Files */ = { - isa = PBXGroup; - children = ( - 1947430A08FD5DE906F4FA0E5CA162EE /* AgoraComponetLog-xcframeworks.sh */, - D07CAE0A81A28571633FD8842EDBE8CB /* AgoraComponetLog.debug.xcconfig */, - B4F3B35A05BE5D4CD732462BCF2C1693 /* AgoraComponetLog.release.xcconfig */, + 9705AC856C47F05BEF242A30404BE89E /* QCloudCOSXML.modulemap */, + 14C654A222FC66AA2867F3373E6E4FF8 /* QCloudCOSXML-dummy.m */, + FC6182EF5C7236402D8132D477BB9A59 /* QCloudCOSXML-Info.plist */, + E86CC03A6C42C563C17CD73D44D68651 /* QCloudCOSXML-prefix.pch */, + 4F4F830C97D11D657F4F6538BBE7369A /* QCloudCOSXML-umbrella.h */, + 1BA6958466A32AF9132FFA8AA4FD8B85 /* QCloudCOSXML.debug.xcconfig */, + 72C14EE33E6CEE0E46196F699B3EC5A9 /* QCloudCOSXML.release.xcconfig */, ); name = "Support Files"; - path = "../Target Support Files/AgoraComponetLog"; + path = "../Target Support Files/QCloudCOSXML"; sourceTree = ""; }; - F4D84B580FB23040FC1D46C9309F909E /* Frameworks */ = { + F312879DAA824D20B3304B73F7606068 /* Core */ = { isa = PBXGroup; children = ( - FAF982C18F414CB53BF06E5A272AF33D /* AgoraComponetLog.xcframework */, + 38F54560F4FAB326B5C0AD5AEBB34000 /* LLAnimateView.h */, + BD902CC30B9F9055A5B5A06DC5666750 /* LLAnimateView.m */, + 7749CDC189668907FA85E1CE3762B28F /* LLBaseCollectionViewCell.h */, + 3CD85DC1770975A7D82905376807EEB1 /* LLBaseCollectionViewCell.m */, + DC8A682A33E9730C4383C828C9AF348C /* LLBaseComponentViewController.h */, + E041B3CA8F2D4CB20875751377B3DEB0 /* LLBaseComponentViewController.m */, + 0749B0115A88A6A4235CE775ADE3BC39 /* LLBaseModel.h */, + 5087DCD7D883FD6000FC11CC75BE144F /* LLBaseModel.m */, + 486B3677731399BB8F37EA68AD8802DF /* LLBaseTableViewCell.h */, + 23CBEEFD035534375E98070CD9DE605D /* LLBaseTableViewCell.m */, + 6EDCA7092BC03B9E08248A523C81623F /* LLBaseTableViewController.h */, + C1790E31F6435CEF46A8CA60375DA81A /* LLBaseTableViewController.m */, + 95B6840B1277532F157C0E5E204647E6 /* LLBaseView.h */, + B824EF32F8F9CB34233DB0D1331D0198 /* LLBaseView.m */, + 48ABF582031A3386A3F7AED01D5630E2 /* LLBaseViewController.h */, + 14AF95B74F7BC3A01173E51DA5FF80FA /* LLBaseViewController.m */, + FDBBD150506DF18C3C4A93C10F2BF49A /* LLBaseWindow.h */, + 99878C107A070699FBAB53DE435AEAD8 /* LLBaseWindow.m */, + BC29AB5ED56B3B4F0AF5D8CBE55017F1 /* LLButton.h */, + 001D0AEF9177F128239342BB59CCFEF6 /* LLButton.m */, + 032F2427BF747A216EC0E35C6E3F369E /* LLComponent.h */, + B33ABF35E96ABE37B2B3453BF842EF63 /* LLComponent.m */, + 9180B113E5C06B750956171BB08B097F /* LLComponentDelegate.h */, + CD9D7510313EDF23B2BB3E046E4CA6CE /* LLComponentNavigationController.h */, + 8F4089CEE8BD5BF8B23666F05A0B478F /* LLComponentNavigationController.m */, + 01D5D3B99CED4E0D3A0DC7F0417A3522 /* LLComponentWindow.h */, + 682522F66F395094FCF1508C53C40937 /* LLComponentWindow.m */, + D7957969B37E57230D18413BB653A6B5 /* LLConfig.h */, + BA4C78CE2CF50A328F19C6033C8C4F93 /* LLConfig.m */, + 6D55C665C7E25A52C125DF3DF54BAD92 /* LLConfigHelper.h */, + 4DF037AB8692E8ABBFFE931A9DEB6A71 /* LLConfigHelper.m */, + AAB4BD16A648A317D96D75896A66A041 /* LLConst.h */, + 0C16B37920CE44F2C3A456E2A399E001 /* LLConst.m */, + 4EE2EF091477EDE4329C65586C479C20 /* LLDebug.h */, + 1C6CB13EC3CBC674CF960DABFF97B5E0 /* LLDebugTool.h */, + 8824B0FE89C77E60D2DA94FAAA803D85 /* LLDebugTool.m */, + 6DF71A201F9C7E86BCE095F7751E3E95 /* LLDebugToolMacros.h */, + 09760E5EB41613DDC7A05531DBBDA368 /* LLDetailTitleCell.h */, + 15DCC370CB5257738FC2E7302AB8CFE9 /* LLDetailTitleCell.m */, + FDA44B36E76D3472427B98C7E854A29A /* LLDetailTitleCellView.h */, + 4F155FE321E6C657B174544964510452 /* LLDetailTitleCellView.m */, + C5BF390AA50F37FA3F03682ECD8A3390 /* LLDetailTitleSelectorCell.h */, + A361FF5A23C7458E7F0C160ADC16FBD9 /* LLDetailTitleSelectorCell.m */, + 4E497A4DD0D46E0E5BC8A7A83CEE12FA /* LLDetailTitleSelectorCellView.h */, + 7F0A2C19402A57262BA8DDF54B4CF42C /* LLDetailTitleSelectorCellView.m */, + DE1BE68F23F888A0E7FB47DEA0566D09 /* LLEditTableViewController.h */, + 41D0B4C90B70DFCDBB0DA39579E7BE8E /* LLEditTableViewController.m */, + A42C1E5895862D601588313E8542EBAF /* LLEntryBallView.h */, + 91A7D7FAD9C88D8FADFF64439EACA222 /* LLEntryBallView.m */, + 5948B77899519A175746DD0C6176B637 /* LLEntryBigTitleView.h */, + 66A1B7286800F9153C0B6AAF9A0A3549 /* LLEntryBigTitleView.m */, + CFE2AE2DCDFB03CB52175AB2EC84E409 /* LLEntryStyleModel.h */, + 365C6C6ED6AED64789474E4FCC19775E /* LLEntryStyleModel.m */, + 1FA9E357EBE09B8FB04E0D52A6DA6214 /* LLEntryTitleView.h */, + CD47EF1DD714EF6D0D39B6860EAA1581 /* LLEntryTitleView.m */, + 9ED05F48EEE0C26B237BA5E6E85377DE /* LLEntryView.h */, + 147B4F4D17B7C95671DEA10F9578A4D8 /* LLEntryView.m */, + 69CDB9AD81295D1E902E3BE2C17D5746 /* LLEntryViewController.h */, + 222CF36F5EE052DB6BF78898FE8EC77D /* LLEntryViewController.m */, + D2BB9DF39D8B81853CBE9687B603D089 /* LLEntryWindow.h */, + 0C8A81E9E5FF908407DB6AAF637F7307 /* LLEntryWindow.m */, + 100426633041B94E69C7367D0DC74093 /* LLFactory.h */, + 7495011A0379C00CCF0EE0C173F67644 /* LLFactory.m */, + 20E5C9474158147BFADEC3D36D8234F0 /* LLFilterDatePickerView.h */, + 8A13FEA60D90AB2D3F2F63E56062B2D0 /* LLFilterDatePickerView.m */, + D5BC3CEAB5F801AEBB63F7AA9BD258BC /* LLFilterDateView.h */, + 61F21BBE5CAA353DB16B76CF0B6E2AEA /* LLFilterDateView.m */, + 0A898F55547B6E5B293183969888F9EA /* LLFilterEventView.h */, + 21AC504E3B4C2B470EFC690097F306CE /* LLFilterEventView.m */, + 41BF350BB7AE4DD9930855E4CB7384A5 /* LLFilterFilePickerView.h */, + 90151025C24FE963DFFF64B6DED7B423 /* LLFilterFilePickerView.m */, + A368A614DFEF0A54AD867879AAA5E953 /* LLFilterLabelCell.h */, + F3C4F65C4B3175EE439B83B4E00B7FFC /* LLFilterLabelCell.m */, + F5C402199A7C19DB70EF6165CC811725 /* LLFilterLabelModel.h */, + 2821D8DBECE9A3C19ACBE64E10681516 /* LLFilterLabelModel.m */, + 45F9170B8BFDE56BEA0643989DB74548 /* LLFilterOtherView.h */, + 3A5C00D57F5928FE8EB781CC2C0EA87C /* LLFilterOtherView.m */, + 1E820501571CC869D75B3B906D793C0B /* LLFilterTextFieldCell.h */, + A4E3954F0EE219E2B68B85F4B5B72235 /* LLFilterTextFieldCell.m */, + E761F0F71FD3449DAC91AC2FC0119E53 /* LLFilterTextFieldModel.h */, + 20C4734B2C29C11E89943BF4ED48D831 /* LLFilterTextFieldModel.m */, + 939F642E6D82A2E63F328D05004F525C /* LLFilterView.h */, + C99BD807257F535CA1405079C4548FD5 /* LLFilterView.m */, + 5D405D94057F22C3BE308F2B73D62B94 /* LLFormatterTool.h */, + 7053A1909D5DF7141E0A8CFD4571D63F /* LLFormatterTool.m */, + 1E518B1E5926085DBA4039B9D137A1DD /* LLFunctionComponent.h */, + EAFFA0142D3AF6787B89DBC210C2CA48 /* LLFunctionComponent.m */, + BD199545E7D4B40A1730FD85D3611FB0 /* LLFunctionItemContainerView.h */, + 6CDBF4E8B6B8B8F9CD67DB008689E8B9 /* LLFunctionItemContainerView.m */, + D675818455980FA38020761F6771D3E7 /* LLFunctionItemModel.h */, + 1AA12266A225C8D70CDC90D33EABC8C9 /* LLFunctionItemModel.m */, + 6CF9654FB9FCEBB1F7768D11730F4CBF /* LLFunctionItemView.h */, + F78F91426E25BBB81A7AA64843C1EE73 /* LLFunctionItemView.m */, + E03C7149C55FD86B18A2199051445ED5 /* LLFunctionViewController.h */, + 784353DA37A39F5B40EE64CC6348C2D3 /* LLFunctionViewController.m */, + 718A96947020C5DE11285C5421799D7E /* LLFunctionWindow.h */, + 3E588B994E24E929C3ADFD2384AF7EE0 /* LLFunctionWindow.m */, + 9C7F8C86658AAFEEC1836A349FA1BE73 /* LLImageNameConfig.h */, + 6E9FC5BCB5B8A7E2A87726A2BEEAA102 /* LLInfoView.h */, + F7067B3B5F7C69DBCE90B6EC50BF1147 /* LLInfoView.m */, + 5CAEB5D96592F00F666AB6E47CC47E91 /* LLInternalMacros.h */, + 177252F2A68240CE164B5848F29F2CBA /* LLJsonTool.h */, + DBF1CE0031A290FECB43DFFD0E208746 /* LLJsonTool.m */, + BF20B12E834B2ED83365F8F857203CF1 /* LLLeftTitleCell.h */, + 7711CAB336D62A25FA62660300F75B7A /* LLLeftTitleCell.m */, + 7531481D2D01648B1119B1ECB117B843 /* LLLogDefine.h */, + 9ABFDA5D5519B2CBB9975196E9D4AFA5 /* LLMoveView.h */, + D014ADFEC72D94D1F08EFECCCFB30171 /* LLMoveView.m */, + B3AD45250B6947E772C50E6896E5745D /* LLMoveWindow.h */, + 14096887FCB0C95BE6DFBB7E9875B3B6 /* LLMoveWindow.m */, + 904A8E2DD1D23113769C60C4B8AA0D63 /* LLNavigationController.h */, + A122991B8CCF83B3BC9837E9B9333696 /* LLNavigationController.m */, + DDEF07DE0B86BF944608BA8E72EB3855 /* LLNetworkDefine.h */, + DE2CFA9D9A2F4A02CAF3C1151D76BA55 /* LLNoneCopyTextField.h */, + 5C541EB345AA0147795628FD8E4814B3 /* LLNoneCopyTextField.m */, + BF07F0FE4411608E1B184E1B81320425 /* LLPickerView.h */, + 70E6C8F929E89E6D1E63DFE36986AE01 /* LLPickerView.m */, + A09107184EC47CEA2A18869EC7EBE627 /* LLProxy.h */, + EE85F27CFD896739228842096D35188F /* LLProxy.m */, + 5B765BAD63B4B0446B65B03B06284E0B /* LLRouter.h */, + 937BAE0D7ECAFAC5DF4B1015DADDDDFC /* LLRouter.m */, + 1E43C0ADF881FD3563B72BA5623AB21B /* LLRouter+AppInfo.h */, + C3B410D5394B8F77CA81A9DA8A843E98 /* LLRouter+AppInfo.m */, + C06331A6F143EE9F2A7BBD07E8FF3F8A /* LLRouter+Crash.h */, + 781B957CD910ED3C3FC242928CE4FA0B /* LLRouter+Crash.m */, + 88DCBC3DE4800B8BDA0B6A9F2157250D /* LLRouter+Location.h */, + 2DC75F3F2A316111778CCAFE092D45E1 /* LLRouter+Location.m */, + B0F135764479655C291D5F464098653D /* LLRouter+Log.h */, + 125E2C9F6220164179D4C90638B6195F /* LLRouter+Log.m */, + 2D7C99155B46C46448B59A7EBC17967C /* LLRouter+Network.h */, + CF9F8D38658BCF5191653BC297E28C70 /* LLRouter+Network.m */, + F701FC03FB82A9C98B2E1CD625E02B88 /* LLRouter+Screenshot.h */, + F3C26B5FE38E1E91BCCB9B5BE6270886 /* LLRouter+Screenshot.m */, + 5225D77BA4F9A454E29205329E0C01D4 /* LLRouter+ShortCut.h */, + F99187070AA578DCB648A8A3BE33A49C /* LLRouter+ShortCut.m */, + 1F952366013AD3E5E9BA84A0A2236459 /* LLSettingComponent.h */, + AD6BCF82EECFC175647BF009235EC25B /* LLSettingComponent.m */, + 79D6665A746B7CB75F80D33BD138EFAF /* LLSettingManager.h */, + F4FFF0FF6448B5F686F6A48ABCC817D9 /* LLSettingManager.m */, + 0FD42879AC877B8E2953499A9703793E /* LLSettingViewController.h */, + 59AE9D70D9A19B0A9A979AB9768F21E5 /* LLSettingViewController.m */, + 6825071B8D6EE88F46C7CF6C8D25B734 /* LLSettingWindow.h */, + 1BD7A2EEFD3A74BC35A93A1D846CCD9B /* LLSettingWindow.m */, + 4E3655025FF158E184BED421A2EF13CA /* LLStorageModel.h */, + C005C05F637D2ADE52B405BEF24BB72C /* LLStorageModel.m */, + 48813970F298EDD5DFAA1DBC2D8CF097 /* LLSubTitleTableViewCell.h */, + 822CDEBDC9BEE20B60756CFC3222912B /* LLSubTitleTableViewCell.m */, + 07E12F66F0C74E8FE3A247A5DFFDD0D5 /* LLTableViewSelectableDelegate.h */, + 088A9BB1F55EE2A7D6EEC65D069CDDDF /* LLTableViewSelectableModel.h */, + 1391E316F7838DF2D7B2B48EE51B8B64 /* LLTableViewSelectableModel.m */, + B8D1EBF59A6C0A03F9590D0AA698BCB2 /* LLThemeColor.h */, + 1309C5A556D19DF70F71226558A8775A /* LLThemeColor.m */, + C76A747AF5148D32E2D72F7E037204D8 /* LLThemeManager.h */, + D026878D71D61309F44586E0D3DFD323 /* LLThemeManager.m */, + AF2FAF58CD50FE84E591FC8FD56FF4A5 /* LLTitleCell.h */, + D01197E6C49A9AD7979056EE3756EAA8 /* LLTitleCell.m */, + 9BF1D7415B65F00E54E6FB8A7A71EB1D /* LLTitleCellCategoryModel.h */, + 5348E5E93C5D2E798D8E020D1C450C4B /* LLTitleCellCategoryModel.m */, + B0F30852CD15D1EABA704F90A371FF1A /* LLTitleCellModel.h */, + BB980D9D90D607350408E38B8BBE7208 /* LLTitleCellModel.m */, + B5E71CD21CE2DDBF542958688F951266 /* LLTitleCellView.h */, + 4BE6BE51B3655D97259F6FA6512BF9A7 /* LLTitleCellView.m */, + 83CD502443784E2B833CE52EEE4C49F7 /* LLTitleHeaderView.h */, + 8E42297E0B75C875D6022D94AE3D2CB9 /* LLTitleHeaderView.m */, + 306FBC56F569C750761C853A13D3E573 /* LLTitleSliderCell.h */, + 2EAA503FE1150C4D64D3C0B680244A80 /* LLTitleSliderCell.m */, + 6382036A2DE542F37244F9B2ED5EA292 /* LLTitleSwitchCell.h */, + FF94ECE1BD1A32B1EB0097A1E3CCD910 /* LLTitleSwitchCell.m */, + FBCCAA9179C058685DA8DD825C11AEC2 /* LLTitleSwitchCellView.h */, + 3C4BFE225DAC7F3C4528A80761A0A1D4 /* LLTitleSwitchCellView.m */, + 5ACD2A903B7EDBEB11059E6E059F552D /* LLTitleViewController.h */, + 9B829B7FA319A9242900C26A0F8E1617 /* LLTitleViewController.m */, + 54AEB652E46049D9B75BFF05CB3FBCAB /* LLToastUtils.h */, + BB4A42C5906BCDBC119A793E08C16200 /* LLToastUtils.m */, + 0509301D9D6D3B9FE731E922E1CFFB03 /* LLTool.h */, + 029B62B6D64A7011C7493A65ED7F7869 /* LLTool.m */, + 4CC7230276400BD97B652992D74B90FB /* LLUITableViewLongPressGestureRecognizerDelegate.h */, + 74F23177A9F373D97D957CB188DAB1DE /* LLWindowManager.h */, + 08963A4BE59A9D5620B36B9DD98D7D3E /* LLWindowManager.m */, + 3EE8824ECC4CC90D5F87D9686AA62D9C /* NSArray+LL_Utils.h */, + E1D336009902F5BB7D273BA4AFAE1743 /* NSArray+LL_Utils.m */, + 6115A8D16D865CDF496810AACA0A4B13 /* NSDictionary+LL_Utils.h */, + 54A33472470BAC0F792616DD91D66756 /* NSDictionary+LL_Utils.m */, + B5A7D9BF4FBA4AD9B22E5FBCF274C23D /* NSObject+LL_Runtime.h */, + 5842D6A6D34AB9EC8BDFC6AD6FE2FF4A /* NSObject+LL_Runtime.m */, + D26A701D17EEABC1EF6B5053A3207934 /* NSObject+LL_Utils.h */, + 72EE1CA8526D00772A680BF6836CBBB9 /* NSObject+LL_Utils.m */, + CF28D596AE82B37A33C0FDA2C9F674A4 /* NSString+LL_Utils.h */, + 767C01FFC630B22313EF2E0ED00FD383 /* NSString+LL_Utils.m */, + A5C1F238A245A9334B922ADF86C25F01 /* NSUserDefaults+LL_Utils.h */, + 0DAC3115AB9E9572F6566EA9B791BAD1 /* NSUserDefaults+LL_Utils.m */, + 7B74AFAD09760E4C9FEED9088724194B /* UIButton+LL_Utils.h */, + 3965B84AE43C0F8234D384603B14D8C6 /* UIButton+LL_Utils.m */, + 89CD89D90377A4027ED6E9DA5232715C /* UIColor+LL_Utils.h */, + EB605D949037651D57725E2BED5B6196 /* UIColor+LL_Utils.m */, + DEDE4932D792B0DF7288337D438BD858 /* UIImage+LL_Utils.h */, + 9F9BBADC5F6AAAEDBB32F6A5FD9876AE /* UIImage+LL_Utils.m */, + 36A72A8E9C73A1AFAFBFFC02A5579F23 /* UIResponder+LL_Utils.h */, + F3BFBA7BD94C931B80A10837F5F4A10A /* UIResponder+LL_Utils.m */, + CEEB0214F896A6C53854D4F3BF506498 /* UIView+LL_Utils.h */, + C843365FB508324DFEA1066E0471FA6F /* UIView+LL_Utils.m */, + 95C14D9A7910CDEB22F772FEE9354C42 /* UIViewController+LL_Utils.h */, + 3712540F0027EB218AE464F58A59CC60 /* UIViewController+LL_Utils.m */, + 1905248EEA3CE43D8B0EE5A90773BEF7 /* UIWindow+LL_Utils.h */, + 1E36624477B577760A70F5A7A72FF3F5 /* UIWindow+LL_Utils.m */, + 5BD724ECD44B12E992B2BCD42EADFC79 /* Resources */, ); - name = Frameworks; + name = Core; sourceTree = ""; }; - F5506D04E387E2E86F0DC91FD7FA0EC0 /* Resources */ = { + F51A9CAE56FC8C741E3D46EEC5DC727C /* Support Files */ = { isa = PBXGroup; children = ( - BA55F982A6001CDFC735D703067BBF0C /* PrivacyInfo.xcprivacy */, + 042AAD3E705664FF9CBFA0E0B6517FE4 /* MBProgressHUD.modulemap */, + FBC0A4D8819DED9523982B72E982ECE9 /* MBProgressHUD-dummy.m */, + B39FEB9C855D12863B860088E1C6D012 /* MBProgressHUD-Info.plist */, + 26C6A4EEE3091A88B3DE4245AA8C43E5 /* MBProgressHUD-prefix.pch */, + 6A1AFD93DA14D0C5F1EBD1E60FA950BC /* MBProgressHUD-umbrella.h */, + 1FA30EA3D09058DC2BCC91FEE99C7FFA /* MBProgressHUD.debug.xcconfig */, + FCEE8456B09D143DEBF342B30D156563 /* MBProgressHUD.release.xcconfig */, ); - name = Resources; + name = "Support Files"; + path = "../Target Support Files/MBProgressHUD"; sourceTree = ""; }; F5795CD80D8F4A3854CC57E360FD11F7 /* Development Pods */ = { @@ -12526,23 +13613,63 @@ name = "Development Pods"; sourceTree = ""; }; - F95ABE3088E6634B3DD9603D622E7AB5 /* Resources */ = { + F6BFA5D6E787AF23175EE6ADA4870935 /* AINS */ = { isa = PBXGroup; children = ( - B45A776FEF6D64E82676097687E6E29F /* PrivacyInfo.xcprivacy */, + A6F3A10F34C255D0E3340372160D0E93 /* Frameworks */, + ); + name = AINS; + sourceTree = ""; + }; + F6EC3C128E0CE65C73279163CE27B12D /* WebP */ = { + isa = PBXGroup; + children = ( + 8127F0939751EDB931CDB2C945875403 /* Frameworks */, + ); + name = WebP; + sourceTree = ""; + }; + F7B610366F57989F41855F8D07E11965 /* Core */ = { + isa = PBXGroup; + children = ( + ED860B060332BFFC3AE2F067A2DC9DF0 /* BRPickerAlertView.h */, + B9DA828B683D4E0C716E72D7455447D9 /* BRPickerAlertView.m */, + 5AD3E84946F04BBCF27D92779CED252D /* BRPickerStyle.h */, + 8C557D2F6361E8295AAD89EDEE2AACB4 /* BRPickerStyle.m */, + F8B5C907C3551E990641F7F8B0FC68DF /* BRPickerViewMacro.h */, + BA5A046FB178953580894853399DB5E8 /* NSBundle+BRPickerView.h */, + 494AE1EEC499764B92EB7EE3D53BBD35 /* NSBundle+BRPickerView.m */, + 6DB13129042F8ACB89606A413CE4DC21 /* Resources */, + ); + name = Core; + sourceTree = ""; + }; + F80140007C2D530A1567086C829B4197 /* no-arc */ = { + isa = PBXGroup; + children = ( + 3457584A90D2FC553E77823B19CA85DB /* NSObject+YYAddForARC.h */, + 2BB75F158D508B9FF0D11CD62578EA76 /* NSObject+YYAddForARC.m */, + FEDD5696061F1DE17BF7AC794791280F /* NSThread+YYAdd.h */, + 2D545E17C337F3F6FA8468A5E3C6CCD3 /* NSThread+YYAdd.m */, + ); + name = "no-arc"; + sourceTree = ""; + }; + F979CF3B5FBE72E1AEA8EA671582E91F /* Resources */ = { + isa = PBXGroup; + children = ( + 5690FDD3C5DB21ACD0EBF9996B47FE4A /* PrivacyInfo.xcprivacy */, ); name = Resources; sourceTree = ""; }; - FA5973D33EBE77644BDBD8F1A347D2D6 /* Support Files */ = { + F9C10A8CD30AF9C6A16476871D6465AD /* Base */ = { isa = PBXGroup; children = ( - 45C27F901CBB3B6858D4AE61D68E605E /* WechatOpenSDK-XCFramework-xcframeworks.sh */, - 406FA81F194DE7165BAE5048697FDFCE /* WechatOpenSDK-XCFramework.debug.xcconfig */, - 35CF86C4D78D2DD06F474501907C4F93 /* WechatOpenSDK-XCFramework.release.xcconfig */, + F852A499CE096A863C3E81EC3F590D72 /* BRBaseView.h */, + 18FC96CC58A3760F2BCDB736F8029010 /* BRBaseView.m */, ); - name = "Support Files"; - path = "../Target Support Files/WechatOpenSDK-XCFramework"; + name = Base; sourceTree = ""; }; FA743425FF92EE8EFAAAC687FC5CAE6A /* CommonModel */ = { @@ -12583,86 +13710,6 @@ path = CommonModel; sourceTree = ""; }; - FB2511514839557926DD5A5854DCEE33 /* Support Files */ = { - isa = PBXGroup; - children = ( - 7B3655DC7C72B2B6C45ACE5B6107BCA9 /* AlipaySDK-iOS-xcframeworks.sh */, - 9A515C4744B608C66416D876EA703538 /* AlipaySDK-iOS.debug.xcconfig */, - 5F5D21C60AB1C2F9480977EEB8AB0D5E /* AlipaySDK-iOS.release.xcconfig */, - ); - name = "Support Files"; - path = "../Target Support Files/AlipaySDK-iOS"; - sourceTree = ""; - }; - FB457A0789C1280A955023538721A7E6 /* Core */ = { - isa = PBXGroup; - children = ( - 2AE6456797300B26BBD1634C2AE07F9E /* SVGA.h */, - 48A3E5F0507E66EC1D7CB589FF174650 /* SVGA.m */, - CC078D6CCA0C3AB165D43631D3A2677F /* SVGAAudioEntity.h */, - 84BE16B0E59D1167B51A83D28AE94134 /* SVGAAudioEntity.m */, - 1B669E57FA769FDF71F6D8A261B286AF /* SVGAAudioLayer.h */, - 3F7A1528D4F0591CC5C105BAA48929F8 /* SVGAAudioLayer.m */, - 489D95A5454B6B440EB04C69D5D542BD /* SVGABezierPath.h */, - 0C5C66C53B90DFDE05D50CFFD1E55A6B /* SVGABezierPath.m */, - 38169B7B8DB8DD37C509B90EBAF523A9 /* SVGABitmapLayer.h */, - 9936934BB53FD2E5DE6122B0747DDD32 /* SVGABitmapLayer.m */, - 7ABB8BC7F2F51867BA70320173E3BCF2 /* SVGAContentLayer.h */, - 3589EC62449C82E49971D5A7BC3F6AE9 /* SVGAContentLayer.m */, - 68CBC7D90FFEEA84F40FB2E4BEDD2168 /* SVGAExporter.h */, - 7299AE89B34A909C0A8A75ADAB6673D7 /* SVGAExporter.m */, - DB92A990EE9627C698FCE4FC3A621586 /* SVGAImageView.h */, - A42E4D98A5BAE1FB383572F9C77FEB43 /* SVGAImageView.m */, - EA81271596A1BFD0BB86331927BF78E6 /* SVGAParser.h */, - 905FBB50EB9A3EBAAF0F1DA8438DCF3E /* SVGAParser.m */, - 43A17D602225CFF13C90AB1B4E001E86 /* SVGAPlayer.h */, - 6813AE87A1BEEFE062BEFF23AF8351CD /* SVGAPlayer.m */, - 354C3C21A292F214B8BE56FA99EBCC14 /* SVGAVectorLayer.h */, - 97D657EBD16D63AE0B4CBD9E62451BD1 /* SVGAVectorLayer.m */, - C30C2C75897A9BA655D15BCD83C0AF50 /* SVGAVideoEntity.h */, - 6BC202EE3655B3A683E1A704462493FA /* SVGAVideoEntity.m */, - BB76C8765ED12589358F806A48426A00 /* SVGAVideoSpriteEntity.h */, - 21C9E73417D17027540FBD32658CD01C /* SVGAVideoSpriteEntity.m */, - 0B3FB1F121C2D1AEA313F413197FF936 /* SVGAVideoSpriteFrameEntity.h */, - 8C55F3AB4780A7E3E86F8F8A407A5653 /* SVGAVideoSpriteFrameEntity.m */, - ); - name = Core; - sourceTree = ""; - }; - FDCC87F10865008F1C68A2124D2BE97D /* AgoraComponetLog */ = { - isa = PBXGroup; - children = ( - F4D84B580FB23040FC1D46C9309F909E /* Frameworks */, - F406E9C988EB5794E838B8FA549A5C84 /* Support Files */, - ); - name = AgoraComponetLog; - path = AgoraComponetLog; - sourceTree = ""; - }; - FE016E0FFD13403B81C0496AF80171A8 /* Location */ = { - isa = PBXGroup; - children = ( - F24DA3D31FC3941298E3AE46B6C6B726 /* TZLocationManager.h */, - FA41BE13BA7829AC9DC545A26853A7D1 /* TZLocationManager.m */, - ); - name = Location; - sourceTree = ""; - }; - FE444F0079EDAC32BD7B3B418B72AD9B /* Support Files */ = { - isa = PBXGroup; - children = ( - 81CDFF08F0FDF63F8DDF6B061EDAF8F3 /* YYCategories.modulemap */, - 6D097F8CAC9797189B5DD6C90DC5F326 /* YYCategories-dummy.m */, - 53640BE0F4F9B0E24FF9D101E3F0A3A2 /* YYCategories-Info.plist */, - A7F7DA10FF3C553A3B79311D0F781541 /* YYCategories-prefix.pch */, - 3DB57F5DA26A4F24A3A02393785F74C1 /* YYCategories-umbrella.h */, - 7BCF026C0E29BE36E4189826AD023FAB /* YYCategories.debug.xcconfig */, - C00CF02DCB1EB98C9EBE9A51416346DE /* YYCategories.release.xcconfig */, - ); - name = "Support Files"; - path = "../Target Support Files/YYCategories"; - sourceTree = ""; - }; FFC9942B58349D838568571DE9E6C2E2 /* BaseCell */ = { isa = PBXGroup; children = ( @@ -12712,6 +13759,14 @@ ); runOnlyForDeploymentPostprocessing = 0; }; + 1D4552AFF20E5451177451448BD94755 /* Headers */ = { + isa = PBXHeadersBuildPhase; + buildActionMask = 2147483647; + files = ( + 6A068B7AC9B86601F4A3C14570F765D1 /* Pods-QXLiveDev-umbrella.h in Headers */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; 22C4F6C2D1258108CF5B6E74F03D0EB2 /* Headers */ = { isa = PBXHeadersBuildPhase; buildActionMask = 2147483647; @@ -12810,6 +13865,171 @@ ); runOnlyForDeploymentPostprocessing = 0; }; + 25BCC322F3D542BB1CB19B944874824C /* Headers */ = { + isa = PBXHeadersBuildPhase; + buildActionMask = 2147483647; + files = ( + 09E7156724157A8D17031A8C7EB94C80 /* NSBezierPath+SDRoundedCorners.h in Headers */, + 20C8C3F1EAD912C389E97AED712EEFA5 /* NSButton+WebCache.h in Headers */, + E82AE613AF90BA23E80A1962FB798FCA /* NSData+ImageContentType.h in Headers */, + 9814625D681689E4CF5C6C3D37FB9332 /* NSImage+Compatibility.h in Headers */, + A8F940FE5B7AC6C584CA84D7D4ADD3DE /* SDAnimatedImage.h in Headers */, + 7A24F1359C44ADBDC869ABC02BAD540C /* SDAnimatedImagePlayer.h in Headers */, + 0590068A814D004531EFF9F43F8F4F93 /* SDAnimatedImageRep.h in Headers */, + 4153C3C4CBD7A48F844B69FB74079D7F /* SDAnimatedImageView.h in Headers */, + 5B3692968156948E48EA23BB61E7C726 /* SDAnimatedImageView+WebCache.h in Headers */, + C49335B501A079DED91B3CF58138501A /* SDAssociatedObject.h in Headers */, + 4DCF85817926F4B2DEB088464C9B6A02 /* SDAsyncBlockOperation.h in Headers */, + D494EB43FCBA2144EBF674C3CD7F9E44 /* SDCallbackQueue.h in Headers */, + DBE5B5CAB958533B4B33652684CDF272 /* SDDeviceHelper.h in Headers */, + 3E34CE327F8725563DEED4BEB6D0AD12 /* SDDiskCache.h in Headers */, + 8B6EFE52C4B4B34080EE1633BEBC934D /* SDDisplayLink.h in Headers */, + 901401CBD6B9BD144E814FA22F3D3411 /* SDFileAttributeHelper.h in Headers */, + 8CD440CEEA1E7DFD846146DB717517C0 /* SDGraphicsImageRenderer.h in Headers */, + FC940D3B007646EBE196BC52DF708AA7 /* SDImageAPNGCoder.h in Headers */, + 2C2441428AD5DAE47B2BA3DC36A0B10F /* SDImageAssetManager.h in Headers */, + 9CD0AF4148006DAE5DD426C527C6FFA0 /* SDImageAWebPCoder.h in Headers */, + 6472ABC08E741AA1097C598001B765A7 /* SDImageCache.h in Headers */, + BEA7B3709E49BD3290B9D84229702F02 /* SDImageCacheConfig.h in Headers */, + 88FB6F1FA3935F380184DBA6DB31C414 /* SDImageCacheDefine.h in Headers */, + 66FCF7C5581DFE51C17E25F7DCAB715B /* SDImageCachesManager.h in Headers */, + A305D73E42D1C3551F44C32E85C7AE49 /* SDImageCachesManagerOperation.h in Headers */, + C64003C8DC4309812BD0785EA4795B32 /* SDImageCoder.h in Headers */, + 3DC8B48485EDE12C923A220CA38D6783 /* SDImageCoderHelper.h in Headers */, + FDC027B679C5A1486A728EBB274F8AB8 /* SDImageCodersManager.h in Headers */, + C00618FD63143B34F1331FB7516CD387 /* SDImageFrame.h in Headers */, + F56F43F3E8587CBE40DA6332A187C216 /* SDImageFramePool.h in Headers */, + DFE007BD61F7C0B73FE36F8F3CBB6334 /* SDImageGIFCoder.h in Headers */, + 519257B406D45F20FFE5A2771A7952A0 /* SDImageGraphics.h in Headers */, + 2548383D6BC425131D95CC4A8F6196A9 /* SDImageHEICCoder.h in Headers */, + A3809882E960B7CDBE3B9CD29108DA23 /* SDImageIOAnimatedCoder.h in Headers */, + DB9B62E0186BDA8C3992C014091DACB9 /* SDImageIOAnimatedCoderInternal.h in Headers */, + 0CC0C93586A8F96E35C9949D8B35885F /* SDImageIOCoder.h in Headers */, + DD47C94FA0E8B20E26034BFDA80A9868 /* SDImageLoader.h in Headers */, + 42E900E1ACEB99DE2F7C7527B2DEDC1B /* SDImageLoadersManager.h in Headers */, + D14229A0FFDE21C1D89920A81A76181B /* SDImageTransformer.h in Headers */, + 96FCC37C56CC1961A5B35F223676FFB5 /* SDInternalMacros.h in Headers */, + AFF86B94C6EA4DE28869682020383B80 /* SDMemoryCache.h in Headers */, + 21671B106FE886E6E45802EB0136FBBB /* SDmetamacros.h in Headers */, + 5DB037DE4D97B8898724F9F697DA15AB /* SDWeakProxy.h in Headers */, + 069ECDAFABEE824193CEA4B107114A92 /* SDWebImage.h in Headers */, + 76F0E980C644CADEB2767482361E28C7 /* SDWebImage-umbrella.h in Headers */, + F01FFA48FF6030D9888F00E322D01FC6 /* SDWebImageCacheKeyFilter.h in Headers */, + B8B1C1A5559FA55B49DB43C0D784B5FC /* SDWebImageCacheSerializer.h in Headers */, + AFF7B240A481F97877B7537BA3C596C4 /* SDWebImageCompat.h in Headers */, + 334425FEC5EF9E7A55BDD088F0DAF704 /* SDWebImageDefine.h in Headers */, + B3F4A77948958A0076B6AB317568809F /* SDWebImageDownloader.h in Headers */, + BED98177E97555BBBD0B7F60CA2CA500 /* SDWebImageDownloaderConfig.h in Headers */, + 79B4156E4717561BE76FBFA0D5BD252B /* SDWebImageDownloaderDecryptor.h in Headers */, + 02DE03E3DF22829FE1A08CD0FA2599CF /* SDWebImageDownloaderOperation.h in Headers */, + 781AA5848E2391FE0D3D9B13B58760B8 /* SDWebImageDownloaderRequestModifier.h in Headers */, + E0821A4351C5396FE739D1CAE2FF32A1 /* SDWebImageDownloaderResponseModifier.h in Headers */, + F27E5677CA11FFD90565566F4DA7AEA1 /* SDWebImageError.h in Headers */, + 8E3BCA648DE1E1E1AC6A48248C8715A2 /* SDWebImageIndicator.h in Headers */, + 5AF89DA031A71E3E690FC6C78214207E /* SDWebImageManager.h in Headers */, + 39471F0AFD5C6D374C306AF92B64B1C5 /* SDWebImageOperation.h in Headers */, + 60E449E5ABDBAE7822B6CDC59EDA929B /* SDWebImageOptionsProcessor.h in Headers */, + FC31BA25177C3A8AF59A49EBE8371C25 /* SDWebImagePrefetcher.h in Headers */, + C0450AD379B2CB7A908168F2B0410EC3 /* SDWebImageTransition.h in Headers */, + 76CA3CFB705D6596A384D208F3F7AF7A /* SDWebImageTransitionInternal.h in Headers */, + 109D98A7C3F89B5847696DE4B2797957 /* UIButton+WebCache.h in Headers */, + C13B8A49A99DA057DE5C8CBF3BA51EA0 /* UIColor+SDHexString.h in Headers */, + FB3B07B8E017B657EEBA7F7227B0108E /* UIImage+ExtendedCacheData.h in Headers */, + F6177B58D1C0CFE913B5507D80178D33 /* UIImage+ForceDecode.h in Headers */, + 7447871F0A78341BEF69CD1570BD83DB /* UIImage+GIF.h in Headers */, + 4BBAEC8FBF2B5E2C4D9A3592B64F8BB6 /* UIImage+MemoryCacheCost.h in Headers */, + 66D862484C3FB22D4A71D1180BC11489 /* UIImage+Metadata.h in Headers */, + 9F6F901E05D6A4185A05908AB2782B20 /* UIImage+MultiFormat.h in Headers */, + 001C815094D6B4900DBE37250C9AB4FC /* UIImage+Transform.h in Headers */, + D565A12B54D581CE18443338D4F8BE2C /* UIImageView+HighlightedWebCache.h in Headers */, + E50D5EFDA3478DC752D64CD61747CDDA /* UIImageView+WebCache.h in Headers */, + 3829375B943E8BBBB5D5372DFF8E8D83 /* UIView+WebCache.h in Headers */, + BF26DD4287A51050AEEDFF33A9ADB77A /* UIView+WebCacheOperation.h in Headers */, + CDC44AFBA04BAC64DE991E5829025EC3 /* UIView+WebCacheState.h in Headers */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 2F530FC786492FE57080615C21E9E09C /* Headers */ = { + isa = PBXHeadersBuildPhase; + buildActionMask = 2147483647; + files = ( + 9C8A60DB6F215924FB99FCE372E39C10 /* NSString+RegularExpressionCategory.h in Headers */, + F883C8948D59BDB2E474CCD151A80E98 /* QCloudAbortMultipfartUploadRequest.h in Headers */, + AD7AF9D7203D33772057DA2245765AFD /* QCloudAbstractRequest+Quality.h in Headers */, + 2A20F86E9737C6EEABA93F84D6B3C45D /* QCloudAppendObjectRequest.h in Headers */, + 77C150E5084894BD7E87E60A6802E12F /* QCloudBizHTTPRequest+COSXML.h in Headers */, + C2A1273998888000E8343E3C0CCBA820 /* QCloudCompleteMultipartUploadInfo.h in Headers */, + 2F9A003577735BEAEF4DFEF7854B0E86 /* QCloudCompleteMultipartUploadRequest.h in Headers */, + C85FD4EEAD511606ABB7799A756E7909 /* QCloudCopyObjectResult.h in Headers */, + 11359E2FD06D54A0B955529EA13273D7 /* QCloudCOSStorageClassEnum.h in Headers */, + 62E968DC66E1A0A7031DA9DA2FC73A4C /* QCloudCOSTransferMangerService.h in Headers */, + 74A1D7E7F7B02CDB2AF01FDF5071C294 /* QCloudCOSXML-umbrella.h in Headers */, + 29487A98FDD202926228442180AB230E /* QCloudCOSXMLCopyObjectRequest.h in Headers */, + 7E11E0BBC542CA0449746DB477640364 /* QCloudCOSXMLDownloadObjectRequest.h in Headers */, + 5E1058BF78AA8B0A78CFA379CB1218F3 /* QCloudCOSXMLEndPoint.h in Headers */, + 2BB2E704A7D1993734857D56EEF87417 /* QCloudCOSXMLService.h in Headers */, + 3B0DC0BBB774A59EFA5DAEDDE4E11B4E /* QCloudCOSXMLService+Configuration.h in Headers */, + 98A316DC276C0DE190CA07B074F7F89A /* QCloudCOSXMLService+Private.h in Headers */, + B6897957CFAE31BADA80A435846913D8 /* QCloudCOSXMLService+Quality.h in Headers */, + 06D0B030FAEB10438716F1B1BD719E11 /* QCloudCOSXMLService+Transfer.h in Headers */, + BA8B5D5F70629D43837887B349F98D93 /* QCloudCOSXMLServiceUtilities.h in Headers */, + 14173E380C5C639EB7632270E4EDF7C7 /* QCloudCOSXMLTransfer.h in Headers */, + 4756738C81961577D2EEFDB3452E8F43 /* QCloudCOSXMLUploadObjectRequest.h in Headers */, + 4F559F7F72DC57452290FA625671F8AC /* QCloudCOSXMLUploadObjectRequest_Private.h in Headers */, + 0D0B5E1A61EEBAC06E9B6BA085BDCEBC /* QCloudCOSXMLVersion.h in Headers */, + E23C805AB9C80FC98DA69B788D1E874F /* QCloudGetObjectRequest.h in Headers */, + 510F304193A01CCD2C7488749FE58DEC /* QCloudGetObjectRequest+Custom.h in Headers */, + 3483C52B530F457A8326194085A2BAAE /* QCloudHeadObjectRequest.h in Headers */, + 7583A012358AB4438A81CB42CEE752C4 /* QCloudInitiateMultipartUploadRequest.h in Headers */, + B6C3FB61E9A9E6CF5EBDD17519B0B655 /* QCloudInitiateMultipartUploadResult.h in Headers */, + 0B2C0C6E52131850FFC3AB6938F76696 /* QCloudListMultipartRequest.h in Headers */, + 805CB0D8C5C49452708BC49B1D591B7C /* QCloudListPartsResult.h in Headers */, + 74C05160B5A5A7EF619C6CB6254ABA4D /* QCloudLogManager.h in Headers */, + 7C6FD2D344AA34159D1F899A40BEC6BD /* QCloudMultipartInfo.h in Headers */, + 1025B923CA6A00B538E17E518EFB040F /* QCloudMultipartUploadInitiator.h in Headers */, + 3BC81BF18717D8F25ECD4404976EC7DE /* QCloudMultipartUploadOwner.h in Headers */, + F33976F198574EE625CBDCB0ADDDAF4A /* QCloudMultipartUploadPart.h in Headers */, + 19C76FF43F287D5446E77339B250E6B6 /* QCloudPutObjectCopyRequest.h in Headers */, + A7234DE6C34F7963B730FCD90961EA60 /* QCloudPutObjectRequest.h in Headers */, + 461A4C946BFC3437ED41D5C52DCCB9A3 /* QCloudPutObjectRequest+Custom.h in Headers */, + 63FD6FB771881021CF073F4B6A6A3537 /* QCloudPutObjectRequest+CustomBuild.h in Headers */, + 5B80543908692B4F821DBFFD0F55E747 /* QCloudRequestData+COSXML.h in Headers */, + AF08DCA3AB922FCF7106189567B7871A /* QCloudRequestData+COSXMLVersion.h in Headers */, + CB1D28D0B5A3D8F0040BBA73474A2461 /* QCloudUploadObjectResult.h in Headers */, + 2B6A021FEA88E0BB935BD31578B7DACB /* QCloudUploadPartCopyRequest.h in Headers */, + 3699DFBC140CAAC821CAFE5A8345646E /* QCloudUploadPartRequest.h in Headers */, + 98E93420430FC614A21ECD364D958E64 /* QCloudUploadPartRequest+Custom.h in Headers */, + 520196BF6955092CD5B265B3A8F891FA /* QCloudUploadPartResult.h in Headers */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 365DA3D6EC706FDBFA762EC1A1DB721F /* Headers */ = { + isa = PBXHeadersBuildPhase; + buildActionMask = 2147483647; + files = ( + 90196D0B9A0DD557A3162F94C2608204 /* NSDictionary+TUISafe.h in Headers */, + 735E48D045A2351D2C05AAE959D686F6 /* NSString+TUIUtil.h in Headers */, + 1AB046078A83CDA65C634E3919FD286F /* OfflinePushExtBusinessInfo.h in Headers */, + 3136AA517CA62EDF3813DFE82E748263 /* OfflinePushExtConfigInfo.h in Headers */, + DD7995D9D176010D26E0306C48FBE4D8 /* OfflinePushExtInfo.h in Headers */, + AD0AEAB82B8926418E7E1109EAA53042 /* TUICommonModel.h in Headers */, + B69BC8B912CBBD7C480EF81BD9C7B679 /* TUIConfig.h in Headers */, + 58C3ACB1D3834A3C26B3AFDE311AA643 /* TUICore.h in Headers */, + 3BA7483F7C2CAB47952BF5E4BD68A2F7 /* TUICore-umbrella.h in Headers */, + 5080E9C329C7864A34115144F9AF16B7 /* TUIDarkModel.h in Headers */, + 3165193FCEB8F6E32A86F0171C6EA2B3 /* TUIDefine.h in Headers */, + C8BABE9974BFE9EFBF7E34BD75D8C445 /* TUIGlobalization.h in Headers */, + E40E3E06341C443AA03066373F7DA96A /* TUILogin.h in Headers */, + E503145E00678D86C1299695B2CB4FD0 /* TUIThemeManager.h in Headers */, + 8B5438E5ACF00C67C96CE39C2BB46369 /* TUITool.h in Headers */, + A843C9FDBFB04D2F939AF0E87C538A4A /* TUIWeakProxy.h in Headers */, + 277705D7E7F5048EBE5FE821A39F81E4 /* UIColor+TUIHexColor.h in Headers */, + 4C377BD081E90FA3F09999EE7C07AEE4 /* UIView+TUILayout.h in Headers */, + DC4DBA9A2C5F05CB2927B3748F59E01A /* UIView+TUIToast.h in Headers */, + 0573730A4CBED9C08E82C50578D1E6ED /* UIView+TUIUtil.h in Headers */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; 38515F9B32D16171DF96DE053C2B44F2 /* Headers */ = { isa = PBXHeadersBuildPhase; buildActionMask = 2147483647; @@ -12833,14 +14053,6 @@ ); runOnlyForDeploymentPostprocessing = 0; }; - 3905FF32300455E26DD4652F003E8A8D /* Headers */ = { - isa = PBXHeadersBuildPhase; - buildActionMask = 2147483647; - files = ( - 8B9D2A96A5C441F71C104DAF8D929111 /* Pods-QXLiveDev-umbrella.h in Headers */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; 46297FE7743049F2264389CB8371215F /* Headers */ = { isa = PBXHeadersBuildPhase; buildActionMask = 2147483647; @@ -13313,6 +14525,20 @@ ); runOnlyForDeploymentPostprocessing = 0; }; + 76EE0091A7125F97105F07E1F3864E4D /* Headers */ = { + isa = PBXHeadersBuildPhase; + buildActionMask = 2147483647; + files = ( + D06EBB54DE43BBF5E4CD879B987FF915 /* crypt.h in Headers */, + 44B18784422E263DB239DE4DC05155E8 /* ioapi.h in Headers */, + EECAAE038AE8AA2F6025F7433EC5AB75 /* Minizip.h in Headers */, + 07C58DE9392386C0CBF63F1179A99C25 /* unzip.h in Headers */, + BF412BC028D5066537B28540F39FB4F7 /* zip.h in Headers */, + 34224C5D529358119ABAC3C4CAE6AEE7 /* Zip.h in Headers */, + BB99148AF384D4B1D781BC8B52172CD3 /* Zip-umbrella.h in Headers */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; 7932A1C1B32CB8E58432DD9BACB9A3A9 /* Headers */ = { isa = PBXHeadersBuildPhase; buildActionMask = 2147483647; @@ -13580,6 +14806,187 @@ ); runOnlyForDeploymentPostprocessing = 0; }; + A96E3EFB741E21F92D3B9C63A8E78914 /* Headers */ = { + isa = PBXHeadersBuildPhase; + buildActionMask = 2147483647; + files = ( + D23E84999E4CE1302853099E20E042A7 /* NSDate+QCLOUD.h in Headers */, + D25F11604E5AE45F487C1F8AA909658F /* NSDate+QCloudComapre.h in Headers */, + 482E3AC419EEB9AF9AD03488FCEB05F1 /* NSDate+QCloudInternetDateTime.h in Headers */, + D5832B38617D3B1D319A7566DF7FFD77 /* NSError+QCloudNetworking.h in Headers */, + B4328C00602FF3EA464BFBC18C266BEE /* NSHTTPCookie+QCloudNetworking.h in Headers */, + B3A77F2AC6C8025430A3815F6D6CB440 /* NSMutableData+QCloud_CRC.h in Headers */, + C301C51C5D8076CD04BC223FE69BC623 /* NSObject+HTTPHeadersContainer.h in Headers */, + 0A9F5206A2D928EA62F82C819657C307 /* NSObject+QCloudModel.h in Headers */, + 4F2CCD193D9212160142AB68255F5FD3 /* NSObject+QCloudModelTool.h in Headers */, + 81E7BD591D67EE712D65D5607D5074F0 /* NSString+QCloudSHA.h in Headers */, + 2CDBE668854D8F494BC61BBCFE07A85F /* NSURLRequest+COS.h in Headers */, + AD2CAAFCCF69A952F556C9365349241A /* QCloudAbstractRequest.h in Headers */, + 6BA9664ED6E272AA3A45E3A6273AA1AE /* QCloudAbstractRequest_FakeRequest.h in Headers */, + 8749ABD4FF8CDB3363EEA03AF9C48AFB /* QCloudAuthentationCreator.h in Headers */, + 246E5F3CC4B4CE9C68897415CBE64AE3 /* QCloudAuthentationV4Creator.h in Headers */, + 7C74FAC852066BE12D9272A4152B5A5A /* QCloudAuthentationV5Creator.h in Headers */, + 1D041E2F10BFC8928AF292E41D751185 /* QCloudBizHTTPRequest.h in Headers */, + A7319C0A38A05660801DFC829A8C3689 /* QCloudBundle.h in Headers */, + 6BDA1B0E096052D9E723EA8F9E059128 /* QCloudBundlePath.h in Headers */, + A73EC7E8F57613F289B093884FAF3875 /* QCloudClassInfo.h in Headers */, + B663DA1570F015D53874F12180B0567A /* QCloudClientContext.h in Headers */, + 9B4B8A5E6E654F8B1C96E5BE3BA0DF95 /* QCloudCLSLoggerOutput.h in Headers */, + 38896C7BF06A4ABFAFC6A61ABB916433 /* QCloudConfiguration.h in Headers */, + FBFF8C5EBFDE7C292A723916B8AD99BE /* QCloudConfiguration_Private.h in Headers */, + C34B618A2DC8AE308EAD8451F428A8EF /* QCloudCore.h in Headers */, + 8EF798F7CFE4ED6959A53BCA940EB3A9 /* QCloudCore-umbrella.h in Headers */, + 4531190068B3C7FEE69B4F45ED486200 /* QCloudCoreVersion.h in Headers */, + 70C09375972CB0DAB150A6D09C59192E /* QCloudCRC64.h in Headers */, + C4440B596229BFB085DFAC2DE5E748C4 /* QCloudCredentailFenceQueue.h in Headers */, + 6D86CFCB0E2EE91A6C171A8B087BB145 /* QCloudCredential.h in Headers */, + 696F9EF2E1C5F714476DD9C47455D901 /* QCloudCustomLoader.h in Headers */, + CED5AA1968C3B4E43B905A21C9F3F697 /* QCloudCustomLoaderTask.h in Headers */, + DEF10CCFF33F1C1D9091DE224A74505F /* QCloudCustomLoggerOutput.h in Headers */, + 59AD344A074A7D16E1E4A7E3F902AC54 /* QCloudCustomSession.h in Headers */, + E27637B301110750F6B5192994A67CAF /* QCloudDomain.h in Headers */, + 8D3C1CB7CE9F29D3013C1B856F35383D /* QCloudEncryt.h in Headers */, + 662818BE56B321D0A4DF83266588B2CC /* QCloudEndPoint.h in Headers */, + FBA46D16EF8A59865BDB164B11812BD0 /* QCloudEnv.h in Headers */, + 8ED21F71B07CBB9B9FA5ECF2131A7860 /* QCloudError.h in Headers */, + 94A51470D1D3647BA2C6C8B60AEC34ED /* QCloudFakeRequestOperation.h in Headers */, + 294123664AD33921B6FD6459FB618053 /* QCloudFCUUID.h in Headers */, + 8AAA6CED801F9C2A309560BA692A6879 /* QCloudFileLogger.h in Headers */, + 1C22B241E957CFDBB1D07D3A71036180 /* QCloudFileOffsetBody.h in Headers */, + A54E948A6C110CA478341C95779F4F9C /* QCloudFileOffsetStream.h in Headers */, + F2F63743F33EC060BE27306FB8218E62 /* QCloudFileUtils.h in Headers */, + F00CED9556AF712A0B73938228F91D0B /* QCloudFileZipper.h in Headers */, + 4633D19CB7A248F3662AD25AC6E7383E /* QCloudGCDTimer.h in Headers */, + 5648420D0FC4B05CA8623079BE8A8720 /* QCloudHosts.h in Headers */, + 42858CCB6BA08087924DA97300C4AE06 /* QCloudHTTPBodyPart.h in Headers */, + DB4DFAA9D60FC1A603BABFF348DD740B /* QCloudHttpDNS.h in Headers */, + D3AFA903E4E92064AC2F1320563670F6 /* QCloudHttpMetrics.h in Headers */, + 63385A73A7EDF785A8EEEACD6E598C8D /* QCloudHTTPMultiDataStream.h in Headers */, + 91BC6FBBE87F9E60873ED0DE8D3EB628 /* QCloudHTTPRequest.h in Headers */, + 26AF97DC3A22F159EA7F9DB85BDE57B2 /* QCloudHTTPRequest_RequestID.h in Headers */, + 5843C5CEB4E25CC1D96A73C13BF289AB /* QCloudHTTPRequest_SessionPrivate.h in Headers */, + 2812845AF1D794616E0087581E634778 /* QCloudHTTPRequestDelegate.h in Headers */, + 2E3E19C270C7CA28D22E1DE97A355225 /* QCloudHTTPRequestOperation.h in Headers */, + 563DDB2C3E3ECF0598F49A3B6B007616 /* QCloudHTTPRetryHanlder.h in Headers */, + AD5EE355C3346D64984521C8C756FD53 /* QCloudHTTPSessionManager.h in Headers */, + BB286D5891602B90B68396EDCDABA8F7 /* QCloudHTTPSessionManager_Private.h in Headers */, + 9B222B505118A6DA07A5EC02C94B229D /* QCloudHTTPTaskDelayManager.h in Headers */, + 637DCB79C92036D3EF3C67BB1CD27486 /* QCloudIntelligenceTimeOutAdapter.h in Headers */, + 4BFCB69C67C125EA6C0B10FA9105A2FE /* QCloudLoaderManager.h in Headers */, + 9292ECA0992210219776182988C0BBFA /* QCloudLogger.h in Headers */, + 5BA3D2BD699A01BF3A0E4C464BF5C8B6 /* QCloudLoggerOutput.h in Headers */, + B6CCE1058404DA3053D9E18D214D7E5F /* QCloudLogModel.h in Headers */, + 252AC85DC92E4607118EDDDEB724AA1C /* QCloudMainBundle.h in Headers */, + 80BA622EF5C475DB3565946D7D013258 /* QCloudMediaPath.h in Headers */, + 9F4AF4819E2A6E01E54A3374113FFFA4 /* QCloudModel.h in Headers */, + 881E7CF6C23E6A128A5BB530207A8BCD /* QCloudMultiDelegateProxy.h in Headers */, + DD5E0602F4874AEA1C56FD54B4AEBCD3 /* QCloudNetEnv.h in Headers */, + B9F5ED32289AD39F394E3BC4811B4471 /* QCloudNetProfile.h in Headers */, + E1EDF32BF56C0E4CC75B2E807CA8DB84 /* QCloudNetResponse.h in Headers */, + 4CF7A7454E9437E159596D289400E51E /* QCloudNetworkingAPI.h in Headers */, + 3C05F7E4389A81874862D5F0CEDBF9F1 /* QCloudObjectModel.h in Headers */, + 66BABB3E0EFD4B289D5C6C622DD07095 /* QCloudOperationQueue.h in Headers */, + FCFB3145B34CE84AB55E0CA6DE7E211B /* QCloudPingTester.h in Headers */, + 5F2B5328A669BE4B6D028F19070DEF90 /* QCloudProgrameDefines.h in Headers */, + 4FA971745EC3A2DD2047A1DF5CA4FD9D /* QCloudReachability.h in Headers */, + C8E78F57BF4287B3F93E34C983857ED0 /* QCloudRequestData.h in Headers */, + D356ABD2201283F9B18FDAC9F6205934 /* QCloudRequestOperation.h in Headers */, + 075C3CFB37A49F29F651E393ACB77E58 /* QCloudRequestSerializer.h in Headers */, + 0364A1F6A01A8796595A1E8DD4D5640B /* QCloudResponseSerializer.h in Headers */, + 1438ED8D8F61A48CDF60D2588420E815 /* QCLOUDRestNet.h in Headers */, + CD5CC2EDC5C836AF24F4CC1FD014BB2F /* QCloudSandboxPath.h in Headers */, + 19C2F560E7416DD8339E669039344748 /* QCloudSDKModuleManager.h in Headers */, + A511DD8DC9AACC15C9809C32736022F5 /* QCloudService.h in Headers */, + FD0ADC95B4984384A28CC3EB33872C2A /* QCloudServiceConfiguration.h in Headers */, + 7C77853F95836FCCA3EC0FAE9B551AFB /* QCloudServiceConfiguration+Quality.h in Headers */, + F6658AB5F16568F93C3250BC17BD979C /* QCloudServiceConfiguration_Private.h in Headers */, + A111B75180D308835F93BD080A6590AE /* QCloudSHAPart.h in Headers */, + 958E079650D9C858359AD2D789F0BABE /* QCloudSignature.h in Headers */, + D47FE7A5E310CDD2613B1767417DCED5 /* QCloudSignatureFields.h in Headers */, + 2367C84B8D1F6B0C8F5D345018A071FE /* QCloudSignatureProvider.h in Headers */, + 6A1DEF211A2200E201B39E27EC240571 /* QCloudSimplePing.h in Headers */, + D463E87E283927561C7A9EED0F203A0F /* QCloudSupervisory.h in Headers */, + 1C1981F586580F36AD0A64C5CF544828 /* QCloudSupervisoryRecord.h in Headers */, + 1F4D555FB782C754FB11E8EACD4F54D5 /* QCloudSupervisorySession.h in Headers */, + EB7102F7FE7FDC2D9B6126BB9E8ABEC2 /* QCloudThreadSafeMutableDictionary.h in Headers */, + 54B40BCB356EE7A105A1818CCD3F5E39 /* QCloudUICKeyChainStore.h in Headers */, + 868ACE81DFEC80762903E55F49F3D062 /* QCloudUniversalAdjustablePath.h in Headers */, + F12F5AD177B73B1DD32A87EE8B671C21 /* QCloudUniversalFixedPath.h in Headers */, + 684CED7387E4EB7EA8873FC033966A89 /* QCloudUniversalPath.h in Headers */, + ECFB2EBDD5D06DB5564D7AD1CBC3D94A /* QCloudUniversalPathConstants.h in Headers */, + B1B38E1E4B2C4AE648617267A195E86D /* QCloudUniversalPathFactory.h in Headers */, + 23A64C3370CAFA6B2F283531941DFD0E /* QCloudUploadPartRequestRetryHandler.h in Headers */, + 8E6911F02C8CBEBDBF812F79B9C8676C /* QCloudURLHelper.h in Headers */, + 3B15865BE6E463978317B5AB00580FEE /* QCloudURLSessionTaskData.h in Headers */, + 20BB3C9D99AB44BE4296DC7C6D65F593 /* QCloudURLTools.h in Headers */, + 2F9E90FFAE85AD66A89D697911F7E7B5 /* QCloudWeakProxy.h in Headers */, + 1CFE8430D74AFCAE00AE9BC26D991597 /* QCloudXMLDictionary.h in Headers */, + 74304F2FDD7CA6537E42152D77DC7CFE /* QCloudXMLWriter.h in Headers */, + 4789E7B688EFC2614D1A8B0A97B2FCEE /* QualityDataUploader.h in Headers */, + F0EC049344959BA51A956B69F34C8DE7 /* UIDevice+QCloudFCUUID.h in Headers */, + B5C039EAC61B2F0A9BFDCE16D27A8B37 /* UIImage+QCloudBundle.h in Headers */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + AA1B99AE653AA18EE66D457586982400 /* Headers */ = { + isa = PBXHeadersBuildPhase; + buildActionMask = 2147483647; + files = ( + 03CAF948B22F4E43727DA1099C58D973 /* alphai_dec.h in Headers */, + 316A315BADE052A39A6B2D25346F77E9 /* animi.h in Headers */, + 9A4C1DF662989F02B63E6BEF3781C270 /* backward_references_enc.h in Headers */, + 40A3FAD55D708AA8A903BAE592780B31 /* bit_reader_inl_utils.h in Headers */, + BF0CC843365A169A0C2BEAF63A7DED30 /* bit_reader_utils.h in Headers */, + F09C19B42A1AB6D5C70CDBF95DBB4557 /* bit_writer_utils.h in Headers */, + 8A1555E81D0831CF17469A2F06E76A3F /* color_cache_utils.h in Headers */, + 30DEA4FB597C430C3B209532F85585B8 /* common_dec.h in Headers */, + 65175B123149F1485F7262CC237E114E /* common_sse2.h in Headers */, + 1E97AF0E5440658BC17A2B3658916169 /* common_sse41.h in Headers */, + F40AC8C330D7923CD2F3A046CA528D73 /* cost_enc.h in Headers */, + 479436C23E64305FF468C16180CD5136 /* cpu.h in Headers */, + 16EE019CA76F9E38EA0374860056B703 /* decode.h in Headers */, + 566367A4357560D32586A9A07E8F1AE5 /* demux.h in Headers */, + 20A05486F312C1B722CA644B7DB2D261 /* dsp.h in Headers */, + 784EDFADAD82FAC7DED6D269890CA8B3 /* encode.h in Headers */, + FD2132D091CD6AA660832FB4CC11903D /* endian_inl_utils.h in Headers */, + 985DB73D5EF7319A9D906C0088D4A940 /* filters_utils.h in Headers */, + 4C6C5102E6FBFDDC8CB872E8F4B76EE3 /* format_constants.h in Headers */, + A2353141EEDB62BAD82E51BF0783173C /* histogram_enc.h in Headers */, + 8F66E3AC1D758E5BD60ADA50774A82DB /* huffman_encode_utils.h in Headers */, + F6F805FECE802821700B0B6A4619F93B /* huffman_utils.h in Headers */, + 2BC9958D405FFEC5922D3DCDCCA541B5 /* libwebp-umbrella.h in Headers */, + A77A96B2165EBFD1E0D1F32C9D00DEA9 /* lossless.h in Headers */, + F69AD2D8CF96B87364127158BF47B1BC /* lossless_common.h in Headers */, + E911D374AA95309E0D5E63F403A217F5 /* mips_macro.h in Headers */, + 31764B90A991416D8CFFDB958167B5EB /* msa_macro.h in Headers */, + A39098864124E903903D3D6A5505E7B0 /* mux.h in Headers */, + F7A4E253075E533FA2B4CC2826554BB3 /* mux_types.h in Headers */, + D1C9D5FB78EACEA48B748B3A8D21419C /* muxi.h in Headers */, + 82A08131A4F2B04122FE322F25B1EE74 /* neon.h in Headers */, + 7C29043780C3949F1622F5380B2E2625 /* palette.h in Headers */, + DB9CF46196FC75C6E23A01A5067DE71D /* quant.h in Headers */, + 4B772CFA8555C2FD25F938C3D0252A0F /* quant_levels_dec_utils.h in Headers */, + 9043FDAE4DF53A0EA892A40410FA9461 /* quant_levels_utils.h in Headers */, + 20931126768579145590E20B9C13D2A9 /* random_utils.h in Headers */, + 2F5D66F850E2C1DC3BA55E0D972A6495 /* rescaler_utils.h in Headers */, + BE745203BA5D7A5EB4C3E03DEA392153 /* sharpyuv.h in Headers */, + 05A211C03572D49EC9098ED963EA724D /* sharpyuv_cpu.h in Headers */, + 709737A62E97CE253F789CE99572A618 /* sharpyuv_csp.h in Headers */, + 42E3AF3AA926C4A6A6C273D26D0619E3 /* sharpyuv_dsp.h in Headers */, + 519C35CD6FB6C729363F298E794514DC /* sharpyuv_gamma.h in Headers */, + DA1934F562297877D91B23CEF649D6D0 /* thread_utils.h in Headers */, + 83FC7F5C1CCBB396659301768ADE1ED9 /* types.h in Headers */, + 52A6D06F7140385A38AC33A34CD12B2E /* utils.h in Headers */, + 836068DBC3F27F018522ACA705628DA4 /* vp8_dec.h in Headers */, + 1DBD47E3CBCD2A8998F50A75FE960DEC /* vp8i_dec.h in Headers */, + 5C42BF6B33B35F9CB3A090DF92854689 /* vp8i_enc.h in Headers */, + D4DD670C3F1CAB3306D681F11DE4189F /* vp8li_dec.h in Headers */, + 42F504E018BBA6706DF45785E16C0DAE /* vp8li_enc.h in Headers */, + 729E155AEAF77A9C8400F4B45E3907C9 /* webpi_dec.h in Headers */, + 4D332E74D41BFCDF7A46D96731AEA16B /* yuv.h in Headers */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; AD7543FA02B956BFC334280E763D4CE1 /* Headers */ = { isa = PBXHeadersBuildPhase; buildActionMask = 2147483647; @@ -13593,33 +15000,6 @@ ); runOnlyForDeploymentPostprocessing = 0; }; - B35D4E6BDD617B38FE1B91638D24EC3C /* Headers */ = { - isa = PBXHeadersBuildPhase; - buildActionMask = 2147483647; - files = ( - 16920A7DF362BA6B7BFF6373F9B3B351 /* NSDictionary+TUISafe.h in Headers */, - EEF1B964770FF54D45DCE7660234CE70 /* NSString+TUIUtil.h in Headers */, - FD13C7C20817DCC877E0DEA3B1B5CD93 /* OfflinePushExtBusinessInfo.h in Headers */, - 7283DDCBE48E1E836B1E8D378045760C /* OfflinePushExtConfigInfo.h in Headers */, - 7799D7F71554D3293AF8BF153E20D97A /* OfflinePushExtInfo.h in Headers */, - 5F3FD64E21CEC446689D81BC36F6F3B0 /* TUICommonModel.h in Headers */, - 26B154F96D1D0F6E2C6094FBB25417DB /* TUIConfig.h in Headers */, - 351DEEAFE94ADD9BC5383421BA24028E /* TUICore.h in Headers */, - EA4E72FBA7A916AC0625825DE163F21B /* TUICore-umbrella.h in Headers */, - 08CE50255C337E1B09D84BA4D501F7D1 /* TUIDarkModel.h in Headers */, - E93C5196D1C5FDA70807A260DD7A9284 /* TUIDefine.h in Headers */, - 59511C98EDB03A5A333E82D79CCA4D64 /* TUIGlobalization.h in Headers */, - 0F345665080A245AF1958873611D4DAB /* TUILogin.h in Headers */, - 929E752618885322F0A96DD37017B721 /* TUIThemeManager.h in Headers */, - F970E99804C1DEDC1A830D6D67FC7165 /* TUITool.h in Headers */, - 2FBAC3DA2F1F5310FFC3305B264B5EE8 /* TUIWeakProxy.h in Headers */, - C91AE4BAA1219ABCF49139CD4D6C7A11 /* UIColor+TUIHexColor.h in Headers */, - CAF87D8871E1C5F25634585386CB3F3B /* UIView+TUILayout.h in Headers */, - EE782EF3F3AF6CC8705E638B9CB20E3E /* UIView+TUIToast.h in Headers */, - 6BE57CB764D58E1016C456971D11F1A0 /* UIView+TUIUtil.h in Headers */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; B5D73FBBE3085418AA04A3B4B8D080B8 /* Headers */ = { isa = PBXHeadersBuildPhase; buildActionMask = 2147483647; @@ -13655,104 +15035,6 @@ ); runOnlyForDeploymentPostprocessing = 0; }; - CAAEAEE9E5E391B35DDD1673FB9D3714 /* Headers */ = { - isa = PBXHeadersBuildPhase; - buildActionMask = 2147483647; - files = ( - 2069D3A0935460B9F9FC98F93927B1D7 /* NSBezierPath+SDRoundedCorners.h in Headers */, - 8960A0FF6E0BE4892AB44E75BB5F3BCD /* NSButton+WebCache.h in Headers */, - 78661E688B5C3BE4696C9E89F762BEDD /* NSData+ImageContentType.h in Headers */, - EE06365D1F798C365FB7F8C681EF8D2B /* NSImage+Compatibility.h in Headers */, - 2DDF8B118492FE8D05026C8FB28AA79B /* SDAnimatedImage.h in Headers */, - 81F5EA54407CB720718052C549998704 /* SDAnimatedImagePlayer.h in Headers */, - F1F65C6BC104AEE9121DEE1CDC605AC4 /* SDAnimatedImageRep.h in Headers */, - ABB4322FE068E8DBEC45FCDC1418F01C /* SDAnimatedImageView.h in Headers */, - 565B62FC30AE2F4AD370089DBB936347 /* SDAnimatedImageView+WebCache.h in Headers */, - 6468A0261E6DBC056892B60843E1B1E9 /* SDAssociatedObject.h in Headers */, - CEF1F954E4C761EAAAA1B663918BAB00 /* SDAsyncBlockOperation.h in Headers */, - 92217EA3F86B694BD70BE96E8AB70A66 /* SDCallbackQueue.h in Headers */, - 5FACCF863E68273118733B945DDEE068 /* SDDeviceHelper.h in Headers */, - 2E9739C114AE2A36057E717F0513BB32 /* SDDiskCache.h in Headers */, - 4D600B32B84B759049AD2EB88ADDC5FE /* SDDisplayLink.h in Headers */, - CFC01E70F36F51499407DC16F2A1269D /* SDFileAttributeHelper.h in Headers */, - 3AF01E9F246117B6C7FB0204D4B972D8 /* SDGraphicsImageRenderer.h in Headers */, - E0C5CCC6E19E486A5F376354BF46F224 /* SDImageAPNGCoder.h in Headers */, - 602772B0C8F571BE83997BC91C52A3A6 /* SDImageAssetManager.h in Headers */, - C941EF27D0CDF0FE81BC9A41434DAA87 /* SDImageAWebPCoder.h in Headers */, - E262615839CCD98302C839BE8DDF8AE4 /* SDImageCache.h in Headers */, - E223BF835F00FA8AF8C0461760D82B34 /* SDImageCacheConfig.h in Headers */, - 140FF2A1C69F7BF740C09B69C9530C69 /* SDImageCacheDefine.h in Headers */, - A82C6D22F0644F05ED0987563683EEC6 /* SDImageCachesManager.h in Headers */, - CAFDFD4EC14791A28523BC9170E9306B /* SDImageCachesManagerOperation.h in Headers */, - 76650EBC07D9E790FE57E595745EBBC5 /* SDImageCoder.h in Headers */, - 0F80E5085B1FACBD670029F8B47DAAB2 /* SDImageCoderHelper.h in Headers */, - 4A33DEAEFE6C2069DB251140B9B3C7CD /* SDImageCodersManager.h in Headers */, - 2B563466941B4D57F6692FA3CE839900 /* SDImageFrame.h in Headers */, - 5F2221EEE7C397A1BCC9C3FEB9B4B90B /* SDImageFramePool.h in Headers */, - 90ED1FF0DC2F96996C4B0EE6CD7588B6 /* SDImageGIFCoder.h in Headers */, - 680DFC97031866ED2C3A56134ECE0FA4 /* SDImageGraphics.h in Headers */, - C1E0E86A92953F85268082E2102F22E1 /* SDImageHEICCoder.h in Headers */, - FEFD66606CE72903093718DC2A2EFCFA /* SDImageIOAnimatedCoder.h in Headers */, - 424A157AFFB80C110600C31E89963064 /* SDImageIOAnimatedCoderInternal.h in Headers */, - BBE8F52B274AF0A63061166A01DB8256 /* SDImageIOCoder.h in Headers */, - BBD19F40B97082E748BE5AC44CDAA51C /* SDImageLoader.h in Headers */, - 91C5B60FC8B631895A6165FE473BAFAF /* SDImageLoadersManager.h in Headers */, - AA22C5CAB0EC8FA08492A7F38407BCA5 /* SDImageTransformer.h in Headers */, - 795DE7CEDEB9BC0C081F0DA082089C32 /* SDInternalMacros.h in Headers */, - 1AFDDE174F7DFBE7FB3063086F1F525A /* SDMemoryCache.h in Headers */, - 1B09462282C6957916FA8EF0CDD0D811 /* SDmetamacros.h in Headers */, - 56F6A1268C028620929290D5E63D693D /* SDWeakProxy.h in Headers */, - 80B9438059A8BFCBE5E3940E0DA1EE9A /* SDWebImage.h in Headers */, - DCA6F4165CC98E1F9D014E5F2A2EA401 /* SDWebImage-umbrella.h in Headers */, - 208B003FC8B86A3610F6345B722CB640 /* SDWebImageCacheKeyFilter.h in Headers */, - 2EED77BCEA5962E3F5C6AA01EE470F2E /* SDWebImageCacheSerializer.h in Headers */, - E94DE04E2D28C6E30C60FDED9895C233 /* SDWebImageCompat.h in Headers */, - AF1E836BC84429676750E94613A5CEC5 /* SDWebImageDefine.h in Headers */, - 79516C5BE459042B87FD2E96E2BA9A4D /* SDWebImageDownloader.h in Headers */, - 2C52A40A6CEE5E8E2AA9E848ABF6136F /* SDWebImageDownloaderConfig.h in Headers */, - 9FAC1A110B4EE0BA2D2817068223B25F /* SDWebImageDownloaderDecryptor.h in Headers */, - 55880D2EE4146A4F93B2D6D76E44384B /* SDWebImageDownloaderOperation.h in Headers */, - 45B7CAB165FD8E202588F40FACB9904A /* SDWebImageDownloaderRequestModifier.h in Headers */, - B29D84FBD85EA5AD2217ED780F2EB123 /* SDWebImageDownloaderResponseModifier.h in Headers */, - 033E3949E9602802BAB4714C58B69C79 /* SDWebImageError.h in Headers */, - 2285883E87CB970950E0839D813D6ADA /* SDWebImageIndicator.h in Headers */, - 94A826BE9C24076FDA9F877AFE719599 /* SDWebImageManager.h in Headers */, - ED51021055EDE963F1D7A2379E310741 /* SDWebImageOperation.h in Headers */, - 00D47783A8896A2CB77183AC54B3896A /* SDWebImageOptionsProcessor.h in Headers */, - 73CBC54096E7607E0B642F473731DC67 /* SDWebImagePrefetcher.h in Headers */, - 53ED068F04437D516871C07A0F299165 /* SDWebImageTransition.h in Headers */, - BF1C5E4D2AA16B57E130CB91C11E98CB /* SDWebImageTransitionInternal.h in Headers */, - 526F3C4BF83991DC4B7899DBC5626386 /* UIButton+WebCache.h in Headers */, - 397F166FCB84F8BD4E7407C30D5E6898 /* UIColor+SDHexString.h in Headers */, - 7CF3C3F9FC7E6C2330C242E601655FBC /* UIImage+ExtendedCacheData.h in Headers */, - E318339B816EDB5D0FBBFB4A8BFD0CB8 /* UIImage+ForceDecode.h in Headers */, - 3677B19656F201D0512673A743D00E7D /* UIImage+GIF.h in Headers */, - A965EBDF43C882EEACB64A5D77FA415A /* UIImage+MemoryCacheCost.h in Headers */, - 05451F7FC8A2CC518BE1396FF087AD5F /* UIImage+Metadata.h in Headers */, - 2D26235B8351FA85BF96A35D35FB4838 /* UIImage+MultiFormat.h in Headers */, - F2EF43DEDF5D8BAA926C33DACB402AA7 /* UIImage+Transform.h in Headers */, - 3036356F85FEE0B1B1EFD389C8AB515E /* UIImageView+HighlightedWebCache.h in Headers */, - 592B7BD80BB751BB5EB02A7D2FB5B7EE /* UIImageView+WebCache.h in Headers */, - 91528DD512EE750F441482468677216E /* UIView+WebCache.h in Headers */, - 588C2AB19F06C1678C6C5C20C2EA498F /* UIView+WebCacheOperation.h in Headers */, - D925F5A06F35F862746087D2165FD083 /* UIView+WebCacheState.h in Headers */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; - CD6FA04F24AF00032EC6A9B9DBEA913F /* Headers */ = { - isa = PBXHeadersBuildPhase; - buildActionMask = 2147483647; - files = ( - 57064C5D6C4FC1B8A4F53D9CDE321360 /* crypt.h in Headers */, - 4CE3820956EE3E3F1154149D0C714396 /* ioapi.h in Headers */, - 4EDA035BE71627293C7714C6909D64BE /* Minizip.h in Headers */, - 5C7DC9BDD0273F9AD62077140FA48F4D /* unzip.h in Headers */, - 03A612215C3EBF93073A9828104A7FF6 /* zip.h in Headers */, - 695B0EEC3D048EB572396649F1976F5F /* Zip.h in Headers */, - 378A30C9D95764929720BD11259BD5B9 /* Zip-umbrella.h in Headers */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; CE8A0429AC94A4510B7341047DE45093 /* Headers */ = { isa = PBXHeadersBuildPhase; buildActionMask = 2147483647; @@ -13847,65 +15129,6 @@ ); runOnlyForDeploymentPostprocessing = 0; }; - DD9976A0E4FFD2F163DC43FF8C1A31B0 /* Headers */ = { - isa = PBXHeadersBuildPhase; - buildActionMask = 2147483647; - files = ( - EE9F153A902A6F096CD2514A5169AA7D /* alphai_dec.h in Headers */, - 3640A2A4F954D481ABD8900FDE25B1E6 /* animi.h in Headers */, - 044EF3D31C4DF2E0FC5C1D5D0A8A128A /* backward_references_enc.h in Headers */, - E3A332CEB3CF3E3FFA5B573AE3DCAD1F /* bit_reader_inl_utils.h in Headers */, - 997159B060A73FD93F99C0E647FC98A2 /* bit_reader_utils.h in Headers */, - 7280BB82296D72C49AAD4ACFA64F772E /* bit_writer_utils.h in Headers */, - D2F3BF2EE409D26EB5FF618D490512D4 /* color_cache_utils.h in Headers */, - 1F28BB0791FBFEBE82B4CF09CC87D338 /* common_dec.h in Headers */, - 8DA1FC7709EE16A1676D38961D961EAA /* common_sse2.h in Headers */, - 07F7D99F876DB8E82AB1370D7714DC2F /* common_sse41.h in Headers */, - ED122D25F8E9EDF9989A11085C467908 /* cost_enc.h in Headers */, - F7A283737F48F8FE2A9AA41F40856233 /* cpu.h in Headers */, - BE5CCD74B73B0424352DF4EEF9063080 /* decode.h in Headers */, - D847C10CD159DD855EE0DBBE66D48408 /* demux.h in Headers */, - 9D4A51D6D997BE426F521FC9081F694E /* dsp.h in Headers */, - CF920ABA6E1298340ED5EA7D81D0C19F /* encode.h in Headers */, - 5CD7905E78EDF0CD5984A99DEB31B8C0 /* endian_inl_utils.h in Headers */, - 0843F940A222F1D9369AF3767BF59178 /* filters_utils.h in Headers */, - 68E961806B18B3BEEE20CD23B34F687E /* format_constants.h in Headers */, - DFC923354A112557856EF0AFB0710BA4 /* histogram_enc.h in Headers */, - 55D7C793DA7FD6E1026FE4BA89795A98 /* huffman_encode_utils.h in Headers */, - B719995C3EE0435B860005F73A68089B /* huffman_utils.h in Headers */, - 8CCF16A2A9DDE787996C0A3D5F48D39E /* libwebp-umbrella.h in Headers */, - 47C42F9495BE423806E1D723A9D8CC17 /* lossless.h in Headers */, - 67FE17BE3E8ECC85317FC9C367EB3DFA /* lossless_common.h in Headers */, - C72702DD0F2F6FE820124FF271160DCD /* mips_macro.h in Headers */, - 2F81402A67807E725AFA9A886C6765E1 /* msa_macro.h in Headers */, - A6CD5C47D3F877E525C82A20BD3813AF /* mux.h in Headers */, - 5CC332735380826301402B8544B8D2AE /* mux_types.h in Headers */, - F03DF28D16FBA4D15545844A75AC96BF /* muxi.h in Headers */, - 4BBF9011CBE38EC8789904F8F35B5317 /* neon.h in Headers */, - 1491AA4AD8AF61C2B6E3B9969D7EC301 /* palette.h in Headers */, - 8C8BDCA377F36280B1B2CE49E6EEE848 /* quant.h in Headers */, - CD8FDD682D944B4D894AC40EF97E2655 /* quant_levels_dec_utils.h in Headers */, - B0763E503C83B88F7646562C2F128901 /* quant_levels_utils.h in Headers */, - 731577C503D19D84FD21ECC7883D395B /* random_utils.h in Headers */, - 116ED6B44B17B10CBA76942A7EB155AB /* rescaler_utils.h in Headers */, - 9B4C96950622A3BC33EFAFD7B4597EDF /* sharpyuv.h in Headers */, - 3CFDBADDBDCC0EFB3989B3A5E5F09792 /* sharpyuv_cpu.h in Headers */, - 7ADD5E3EB3BD3AB45E0D82246016B0D9 /* sharpyuv_csp.h in Headers */, - 9C5BE1E41CEECABEC4FD5A887E8F6600 /* sharpyuv_dsp.h in Headers */, - D5B69628A936D4C40FF03CE245E49271 /* sharpyuv_gamma.h in Headers */, - A978F83A9DFDFE430AE04EC1CAB91913 /* thread_utils.h in Headers */, - BA6E8A36E704F9DBF7CE5B28EE03D17D /* types.h in Headers */, - 7421638D009A27ADDB956AD1398C9511 /* utils.h in Headers */, - 4DBF1E78AFA53774720E63DB393629D6 /* vp8_dec.h in Headers */, - 816285A314BBAD7E6256F5090DB117AA /* vp8i_dec.h in Headers */, - 7EE24CA58A3B6C93F8124DCBE6539CE6 /* vp8i_enc.h in Headers */, - 24A189ACF1F33F2119745513768529D8 /* vp8li_dec.h in Headers */, - A8B2175200EA398DB4BD83C9333AF6C2 /* vp8li_enc.h in Headers */, - D9FD34CF0D3C7D72C9EAE86F25B40F04 /* webpi_dec.h in Headers */, - 474EA16BE6E23875E528FF2615F4D829 /* yuv.h in Headers */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; DEC591AFAD2A2282FE8F3ECA08AC82E0 /* Headers */ = { isa = PBXHeadersBuildPhase; buildActionMask = 2147483647; @@ -13926,6 +15149,19 @@ ); runOnlyForDeploymentPostprocessing = 0; }; + E831767D742ACA31C60A40E72B22223C /* Headers */ = { + isa = PBXHeadersBuildPhase; + buildActionMask = 2147483647; + files = ( + 8FD31D60FDFBDF124AE956E9F343D767 /* YYAnimatedImageView.h in Headers */, + 774A8FB37A8425948605300B0B9D9B73 /* YYFrameImage.h in Headers */, + EFC576705CBF094E2A483BDF0840429B /* YYImage.h in Headers */, + 9FFCA26B16410FCB07DAB8A6464358F0 /* YYImage-umbrella.h in Headers */, + B56E8AE0483F69941E175C56B3272CD1 /* YYImageCoder.h in Headers */, + A125CB6BC39EEED37656AFB02A23E90B /* YYSpriteSheetImage.h in Headers */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; EBA2A848DF38725125562E41F023933A /* Headers */ = { isa = PBXHeadersBuildPhase; buildActionMask = 2147483647; @@ -13999,24 +15235,11 @@ ); runOnlyForDeploymentPostprocessing = 0; }; - EDEA55501511ABA5956D6BBD48D5D4CC /* Headers */ = { + FADDF1455A8EF5F7155E270B128525EE /* Headers */ = { isa = PBXHeadersBuildPhase; buildActionMask = 2147483647; files = ( - 7831EA4E9558E4C55E1E297893BA9A3F /* YYAnimatedImageView.h in Headers */, - 141B4B6F021F761781BC9D9F8AAE0F07 /* YYFrameImage.h in Headers */, - 0D09D90479A0C8E3E30E7EE414997DF4 /* YYImage.h in Headers */, - A134C40C1A891D013520258E234C73FD /* YYImage-umbrella.h in Headers */, - E83A52894523FA9BACDD7D8BB4A80927 /* YYImageCoder.h in Headers */, - 735B8CC30A80E18CB300E7593C81E6B8 /* YYSpriteSheetImage.h in Headers */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; - F7BB1E396C9B2F2B7736A9278F316268 /* Headers */ = { - isa = PBXHeadersBuildPhase; - buildActionMask = 2147483647; - files = ( - D6240F67BBF625334F7BD91272F26C4D /* Pods-QXLive-umbrella.h in Headers */, + 4284930B9C2F398EE2D1CA19A9BBABFF /* Pods-QXLive-umbrella.h in Headers */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -14293,11 +15516,11 @@ }; 0409F31E66073F5C1A3BBA08171DD017 /* AgoraLyricsScore-AgoraLyricsScoreBundle */ = { isa = PBXNativeTarget; - buildConfigurationList = 8C0BAD831B34A17F6FFB71416956948A /* Build configuration list for PBXNativeTarget "AgoraLyricsScore-AgoraLyricsScoreBundle" */; + buildConfigurationList = B41BEEAB3F00B8B09935C136F594A6DA /* Build configuration list for PBXNativeTarget "AgoraLyricsScore-AgoraLyricsScoreBundle" */; buildPhases = ( - F1349627DDCBEC07DA9CBEA80DF627C5 /* Sources */, - 841836413845010249A73A861854E1B4 /* Frameworks */, - 59756DC3F8C9AF9FD683D491B73C039A /* Resources */, + EB980A3187F8F6465734E5CA6D03B4B5 /* Sources */, + DD9059797CE5A4DF6B017A6C136F1C95 /* Frameworks */, + ECFFBCE792728F1452B0F6ABE4B7E0E2 /* Resources */, ); buildRules = ( ); @@ -14320,11 +15543,11 @@ buildRules = ( ); dependencies = ( - DCDA2A19C64AB36C522E5F500679226F /* PBXTargetDependency */, - 26FC6B735AA140F35CC9C9041FDB0F4F /* PBXTargetDependency */, - 68B56A356415441BD4DDBFBE09A9A5F9 /* PBXTargetDependency */, - 10BDD6F3B2664290DB1270654C6D9BC1 /* PBXTargetDependency */, - 3286263BA9E581950B5D1F5E4B440759 /* PBXTargetDependency */, + 6A90627116C4E24FF539C71CBBBD45D3 /* PBXTargetDependency */, + 1813D57D1AC26D3521E2F6FD43C3B954 /* PBXTargetDependency */, + B68A6A13F0045607132CFE197044A8F2 /* PBXTargetDependency */, + AE2DC037B2DCA13F5F8C7ABC84CB199F /* PBXTargetDependency */, + E3CB35B2F152CB0D7DC06AC3C2C0150F /* PBXTargetDependency */, ); name = TUIChat; productName = TUIChat; @@ -14333,11 +15556,11 @@ }; 05B2A835D60F78761395189914B88047 /* IQKeyboardManager-IQKeyboardManager */ = { isa = PBXNativeTarget; - buildConfigurationList = 72B4D392929088B061A7C992598E4316 /* Build configuration list for PBXNativeTarget "IQKeyboardManager-IQKeyboardManager" */; + buildConfigurationList = 93735D0870A830B586A0A20D52A24AE9 /* Build configuration list for PBXNativeTarget "IQKeyboardManager-IQKeyboardManager" */; buildPhases = ( - CFD9316A0822FDF71650F97A944E03FB /* Sources */, - B9410652D61E83A0FDE6F30874A9A3DB /* Frameworks */, - A6C4F55D6C1D683FC553753164F0124B /* Resources */, + 737F779A512D3C81EEF3633C638B97C5 /* Sources */, + ACD5E96065991F818F6960A11DAF72F9 /* Frameworks */, + 653A63FC5F7E8EF71E2E0251806BD3B4 /* Resources */, ); buildRules = ( ); @@ -14350,11 +15573,11 @@ }; 16704C6B67439DA959DB043702C75A7A /* JXPagingView-JXPagerView */ = { isa = PBXNativeTarget; - buildConfigurationList = 28AE02157D5B3FCB4C6F1A731FB57565 /* Build configuration list for PBXNativeTarget "JXPagingView-JXPagerView" */; + buildConfigurationList = 5F14CBA40E659BB89722701192DB5E24 /* Build configuration list for PBXNativeTarget "JXPagingView-JXPagerView" */; buildPhases = ( - A874C0D3A5479BA5A91C5A43573F089C /* Sources */, - 6F9AA0BF14F7572C27BCE1BB14E70C60 /* Frameworks */, - 3F165DC54459158F0060C5FB71639AE3 /* Resources */, + E84B37EA55179C77110DBCC45E5D6A0B /* Sources */, + B33F67DB3BA6A07B129E576E2ABBF9C6 /* Frameworks */, + FC7DE992ECFEAFAF59AD57F1D95952B4 /* Resources */, ); buildRules = ( ); @@ -14395,8 +15618,8 @@ buildRules = ( ); dependencies = ( - 8CFBBECCF768367DB18D820E86E00846 /* PBXTargetDependency */, - AC622F05650479738E1F7DB2F7B905C2 /* PBXTargetDependency */, + 9DFAB53C27C5974AEF5A2C2403A523A6 /* PBXTargetDependency */, + 171903DBC8F1F35E602E9AA5715F58B7 /* PBXTargetDependency */, ); name = SDWebImageWebPCoder; productName = SDWebImageWebPCoder; @@ -14405,61 +15628,63 @@ }; 27BBCC9A96380AA1F208DF828383B86B /* Pods-QXLive */ = { isa = PBXNativeTarget; - buildConfigurationList = 59ABA45A9B2B6F413B61E053C1DA3A3A /* Build configuration list for PBXNativeTarget "Pods-QXLive" */; + buildConfigurationList = 3B7DF196EA76D8B2EC90374BE3AF860A /* Build configuration list for PBXNativeTarget "Pods-QXLive" */; buildPhases = ( - F7BB1E396C9B2F2B7736A9278F316268 /* Headers */, - EF3C4CEE7CA86E273B2661A150A7FBE2 /* Sources */, - F12F74007F68939FB7CD54F41274D468 /* Frameworks */, - 91BDF48FE56A2211B8652A86D91D05E2 /* Resources */, + FADDF1455A8EF5F7155E270B128525EE /* Headers */, + B83934B9158E72409BD19B48F7454798 /* Sources */, + 7AF666476C02DD365EBD31D92D01BCF2 /* Frameworks */, + 96B01BC6CC3262E509B53A4367558CF7 /* Resources */, ); buildRules = ( ); dependencies = ( - B1B486C4D98F54C4A07F00874B1D022B /* PBXTargetDependency */, - BAEEBB376D3C5E77A6FD89AAA8F00BE2 /* PBXTargetDependency */, - 88234243A9721313160D7D2F248B58E6 /* PBXTargetDependency */, - DE5ECCC596580813E67F13FEFBB2083E /* PBXTargetDependency */, - 99A324DC5EFBEB8170BE900B0C33A117 /* PBXTargetDependency */, - 1F6A9366D4EE83CF52C84B7D4B4E64EF /* PBXTargetDependency */, - AA9EBB81C2D57BCB0793591EC8D83DC2 /* PBXTargetDependency */, - 573985263318883B752E78AB3EF11C52 /* PBXTargetDependency */, - B2B2DA2EFD7106A86CC98E5CDE8BE36C /* PBXTargetDependency */, - FB6D42186070CED17DA69986F6AB429A /* PBXTargetDependency */, - 8F6C1FA6DFAFBD7D20D6CA3E26796A8E /* PBXTargetDependency */, - 82D326E6CF852898ACFEBB0475E5F555 /* PBXTargetDependency */, - CCFCA9B80D02C66A33B7D8880E0ADFC8 /* PBXTargetDependency */, - CBADAC24F08F71A869A9A3F0F1D1812D /* PBXTargetDependency */, - 3E445545B53CDA6BD7AA5A0F9404283B /* PBXTargetDependency */, - B291E5ABE745CC06865BC935EA2B6E7F /* PBXTargetDependency */, - 77ED5812B5B1F06FC32C50533C13FA54 /* PBXTargetDependency */, - C66A1F6097BD3E1345EA0DF9F4DE083B /* PBXTargetDependency */, - 53C752E0F3D63B8E29234CAAC9C27B0D /* PBXTargetDependency */, - C4AF8EF9863D6DB2A17CA417EEB770CA /* PBXTargetDependency */, - 51B939F7AC7DFB5D27762AE16D29C159 /* PBXTargetDependency */, - BE3455B8A8A069E6540C0968206F0B07 /* PBXTargetDependency */, - 16FA16C16630B799B583D988A9B04BFA /* PBXTargetDependency */, - F27E52BEE9EB0D70576331995651003E /* PBXTargetDependency */, - 38B8435CC0060FE48DE0D75175E4AA42 /* PBXTargetDependency */, - 98DC4F16C3457111C72347828BB53CC3 /* PBXTargetDependency */, - 7C4774BAECBBDABC5C6EA80F7965882A /* PBXTargetDependency */, - 71A72F8980610F669B85137EECF82D7D /* PBXTargetDependency */, - 0FC0B99CC3CB950BB6F4B16B56202393 /* PBXTargetDependency */, - 93C41BA774B2769DB05339C52D49D2A0 /* PBXTargetDependency */, - 51F5FC8E5ABD94B52EBF08D8E7C14A7D /* PBXTargetDependency */, - 7730A07FD2A4FBFAED2853412DD6DC73 /* PBXTargetDependency */, - 41234826F27BF69A03342C1B1CB52182 /* PBXTargetDependency */, - BA7428A80741A41733FFE65836E70F9A /* PBXTargetDependency */, - 2EEF306FAA9FEA75C0F514F063463653 /* PBXTargetDependency */, - 5C20750F7797D7E6F15564D7C570B176 /* PBXTargetDependency */, - A51CD2CCC115A7BD73AF2C5C8DBDE8A1 /* PBXTargetDependency */, - C2F51336278904D3D37E955D676012DB /* PBXTargetDependency */, - 1655D9E965175E364E734FB83F4260E0 /* PBXTargetDependency */, - 4FDB2F22AC033AE3EA4C1408C7E18C86 /* PBXTargetDependency */, - 3C25E096781A5293C6B376F090ADE9FC /* PBXTargetDependency */, - D0A5FDD1F8BB5ACA6C0A7354E6A25BA8 /* PBXTargetDependency */, - 1CF8A812C3A42E6B438A085EE2C7C3C7 /* PBXTargetDependency */, - ACF19ADEAA9C126C953B04447C1F4D00 /* PBXTargetDependency */, - E31CF1E8513010CA06CA3C9CE1AAF2A1 /* PBXTargetDependency */, + 5ABD7C4A4F187C13CD2CDAA15A0DF218 /* PBXTargetDependency */, + 923A404D8B27F34E4C5B3FB103067882 /* PBXTargetDependency */, + 17BA1635C51BAAAB358EAFC3512518F3 /* PBXTargetDependency */, + 5EDA0A484EA0A79566B36C1AF433C5AE /* PBXTargetDependency */, + FCF1A524BA195A1A8E04BB7399C550A4 /* PBXTargetDependency */, + 36B550F180EE67C3BB084B8472F52C34 /* PBXTargetDependency */, + 25A9B294A44C45B94174F8DAAD951EDB /* PBXTargetDependency */, + D7C6D36DA420DEACD49D465BD1D592D5 /* PBXTargetDependency */, + ECC5D0CC6E1FD46A3C5F2DF5E17D3D36 /* PBXTargetDependency */, + 6552C8FB0E7C637E013D60549264FA10 /* PBXTargetDependency */, + B83C71E4C20BCBDF90A214E8BC1DCA19 /* PBXTargetDependency */, + C715EBFE0C4552363AB027B54E5440D6 /* PBXTargetDependency */, + 4821697649B391A5E31EDAE07EC87049 /* PBXTargetDependency */, + AB2C50D4D5AF223EDA2BF3EE7139D83D /* PBXTargetDependency */, + E4F3C97C6731AE940B485385DDD1355F /* PBXTargetDependency */, + EEA4A7B84264455B32834806BE6C3CDF /* PBXTargetDependency */, + D0706D56AF4F4A63FCF9448D60D708DF /* PBXTargetDependency */, + 3E3ED48CDB654ABE91C4FAF75121E60B /* PBXTargetDependency */, + D6EADCB8D483F159AB283267E4AFE1C0 /* PBXTargetDependency */, + 52CC4C731BC324B93D3A12A681DFF965 /* PBXTargetDependency */, + D61FE29C6BF95748BBEA1B93E3896A53 /* PBXTargetDependency */, + F2FCA4761A420D310B5F126303646354 /* PBXTargetDependency */, + 4535F5150135D73572CFB86F07258DA2 /* PBXTargetDependency */, + D53F9A23E2267A99D7664269C460073B /* PBXTargetDependency */, + FBB50E231EB1A9B4056417CC4864EA85 /* PBXTargetDependency */, + D93E0810A5B6CD1E2C28161F302F3B27 /* PBXTargetDependency */, + 7E832E92B1D434FB5134E7AAC28CCE3E /* PBXTargetDependency */, + 9E0735FDCB0FF2E0BC8A3C8A38EB01ED /* PBXTargetDependency */, + 6369BCAC8E24DD40157289EBEE136DB7 /* PBXTargetDependency */, + 682925E0D7E1191AFDD32B31244F6A47 /* PBXTargetDependency */, + F1A003952B367EFB17076A988586FAB7 /* PBXTargetDependency */, + 7985C6E830B277CF3A32275392599AFF /* PBXTargetDependency */, + 234C3409BB6F887B79539E87264FCC62 /* PBXTargetDependency */, + 4AC9BDF20941DF47A16ADD22E63DD392 /* PBXTargetDependency */, + 5FF36054B45C13F17CCB7E10975A6458 /* PBXTargetDependency */, + B9A685320CFFBD9D1995DF27826D4101 /* PBXTargetDependency */, + 8ECD9E9FC888A35814BCE0AC9C5B2506 /* PBXTargetDependency */, + 8D5D981266656AD0FD6FC30B25E3E7EE /* PBXTargetDependency */, + 211D90142327231F14196250FF98FA88 /* PBXTargetDependency */, + C04659742D9B261A7513ABEF8409839E /* PBXTargetDependency */, + A91552D7E3CD63D083565AFD11177DFF /* PBXTargetDependency */, + CB7B11B65400D5AE365A0F57A442A5ED /* PBXTargetDependency */, + 0274C507D279C37859B6195549E6C1E2 /* PBXTargetDependency */, + 03E4C2DB1A52C7DF26AAA743323C8D4B /* PBXTargetDependency */, + DA7F32628634444055D710E99BA8E191 /* PBXTargetDependency */, + 4F314C06F65F2A5BFF9C568D6812C2F8 /* PBXTargetDependency */, + 9CA44088EBF2625880A2BFE1A146146A /* PBXTargetDependency */, ); name = "Pods-QXLive"; productName = Pods_QXLive; @@ -14468,12 +15693,12 @@ }; 31708EE6929C61C0EDA6F5DAE3AF9DB7 /* Zip */ = { isa = PBXNativeTarget; - buildConfigurationList = 341268D384D0835F32C5F7CD0E3662F8 /* Build configuration list for PBXNativeTarget "Zip" */; + buildConfigurationList = D7A94BF3EF8D203CD6E91D9EADB8254A /* Build configuration list for PBXNativeTarget "Zip" */; buildPhases = ( - CD6FA04F24AF00032EC6A9B9DBEA913F /* Headers */, - DBF1BAB4E2CABBC79F6F1B8CFB9B8DD3 /* Sources */, - E6566FC57C2E9D227CD281A47CDB7423 /* Frameworks */, - F47DEF763D57B37DD9CAD808565A4A03 /* Resources */, + 76EE0091A7125F97105F07E1F3864E4D /* Headers */, + 77757D373A136FAE980FBD446A10DDD8 /* Sources */, + 4522EBD73B19EACE720010DBD43F22D3 /* Frameworks */, + CB01FFB0114FCA992B4FB19F431AD8FC /* Resources */, ); buildRules = ( ); @@ -14486,11 +15711,11 @@ }; 331902F14E62290AA86FB37CAAC6ABB0 /* Protobuf-Protobuf_Privacy */ = { isa = PBXNativeTarget; - buildConfigurationList = 15F9E60CFCE67565A4EE1363FB7A926F /* Build configuration list for PBXNativeTarget "Protobuf-Protobuf_Privacy" */; + buildConfigurationList = C7E4C70A91DE2E6E5D04BD1AD35978EB /* Build configuration list for PBXNativeTarget "Protobuf-Protobuf_Privacy" */; buildPhases = ( - 988CD2704666FD3B66203ECDA676C2C5 /* Sources */, - E23935C88FE44DF26353BD17FA88C743 /* Frameworks */, - EC3BF83B2A8B11DC5117B1D21803269B /* Resources */, + DEF5AB2A9A0376BE03937CA56C52D6A7 /* Sources */, + 3B6B9C4C04114CBC65E4DE16B729DB42 /* Frameworks */, + C09B783FCEB00A3079D959E43A61706A /* Resources */, ); buildRules = ( ); @@ -14503,17 +15728,17 @@ }; 3847153A6E5EEFB86565BA840768F429 /* SDWebImage */ = { isa = PBXNativeTarget; - buildConfigurationList = 84D9F8BF501A552E2859DCDE46D624FB /* Build configuration list for PBXNativeTarget "SDWebImage" */; + buildConfigurationList = F12EBC2DDCF87286028B3B288F993E7C /* Build configuration list for PBXNativeTarget "SDWebImage" */; buildPhases = ( - CAAEAEE9E5E391B35DDD1673FB9D3714 /* Headers */, - 076A8B32A1520059D814A34897A042BD /* Sources */, - C12E370FACF8F6E0552EBE564FE75F7A /* Frameworks */, - A548D863535FBE8BDC3893CA193765FB /* Resources */, + 25BCC322F3D542BB1CB19B944874824C /* Headers */, + 19CDFCAAAFB03AFC0E824AAE4E555A8C /* Sources */, + A8BFDB24638B750DBD2FDE82BB376B99 /* Frameworks */, + 168E1F2F2A87901C9DD07C3E3B759F41 /* Resources */, ); buildRules = ( ); dependencies = ( - EA19472D079EF0AEC37DBEEC7A091AE3 /* PBXTargetDependency */, + F6E08EA412EB058D2B0BDB2269909ACC /* PBXTargetDependency */, ); name = SDWebImage; productName = SDWebImage; @@ -14568,9 +15793,9 @@ buildRules = ( ); dependencies = ( - 9D43D1F8A77091239F31D00C3C3DBCD1 /* PBXTargetDependency */, - 1A64EF7198EE4350711B3043A215ED3A /* PBXTargetDependency */, - EE8CF772B56AEF995A011068494FCC1B /* PBXTargetDependency */, + 6F472662982CDA59B51CC7208EBD9775 /* PBXTargetDependency */, + F911C729D1A695931311F73AD23C50B4 /* PBXTargetDependency */, + A22B62056AAD32F9F7BCCE4FAA82C5EB /* PBXTargetDependency */, ); name = AgoraLyricsScore; productName = AgoraLyricsScore; @@ -14589,11 +15814,11 @@ buildRules = ( ); dependencies = ( - B7B3DD77BCA94BE5329F53FDB70E9B0B /* PBXTargetDependency */, - CFA0D547F1D71F371329E7405A2048A1 /* PBXTargetDependency */, - 5264462AA19AE1190DF9D0F5BD73E1D3 /* PBXTargetDependency */, - 608A7EC8D4BC0B99CC158AA005D5AD30 /* PBXTargetDependency */, - 101E7FF53CF907ECCC2E83E9EE214758 /* PBXTargetDependency */, + 72EC8C4D21A0705F5DB6608B067A7413 /* PBXTargetDependency */, + 3290591300D54016E8CCEEB58ADB7EDF /* PBXTargetDependency */, + F9C14FA16D996314C95D812A34277E2A /* PBXTargetDependency */, + 568B01F974AAED1C442404B58FC6EFB7 /* PBXTargetDependency */, + 895AC6C6B982BD094C53C1EDD2057B3F /* PBXTargetDependency */, ); name = TIMCommon; productName = TIMCommon; @@ -14612,7 +15837,7 @@ buildRules = ( ); dependencies = ( - 118BDF09BC8849277F6E44474436527A /* PBXTargetDependency */, + 43FE0F4365B77BAD88F33593A5078848 /* PBXTargetDependency */, ); name = Protobuf; productName = Protobuf; @@ -14621,12 +15846,12 @@ }; 47D2E85A78C25869BB13521D8561A638 /* libwebp */ = { isa = PBXNativeTarget; - buildConfigurationList = ADAF3FC25EBB223F4CFBAFE44FBC402A /* Build configuration list for PBXNativeTarget "libwebp" */; + buildConfigurationList = 4ECC2EFF5CE027825A2F0F52FCF77F95 /* Build configuration list for PBXNativeTarget "libwebp" */; buildPhases = ( - DD9976A0E4FFD2F163DC43FF8C1A31B0 /* Headers */, - 93E29FE2470B676548EA62B5FA04AF9F /* Sources */, - 3A0201408C80ADF43D79ED08233968A9 /* Frameworks */, - 878E1B7EE2E35C593422253173DCD710 /* Resources */, + AA1B99AE653AA18EE66D457586982400 /* Headers */, + 073BAE456090396408CDDF56974C2988 /* Sources */, + 5F23E861BB1A89BC7BFE86250DB3ECC3 /* Frameworks */, + 859F44C5FD4DCA2163CCE913C246128C /* Resources */, ); buildRules = ( ); @@ -14649,8 +15874,8 @@ buildRules = ( ); dependencies = ( - F45EED276ABFD0AA66AA7DB3344AA5FE /* PBXTargetDependency */, - AAF56F2E875459FDC1BFDE3E27F28543 /* PBXTargetDependency */, + AE609A82E972F90891FEC05C429FC496 /* PBXTargetDependency */, + 2031EF710D6ED7E851FDC6A5E7D5CD93 /* PBXTargetDependency */, ); name = YYWebImage; productName = YYWebImage; @@ -14659,61 +15884,63 @@ }; 4AAE1BEBA99B4F05AAA71842C4FD1A10 /* Pods-QXLiveDev */ = { isa = PBXNativeTarget; - buildConfigurationList = B647BBB23FFA73A5FE6DB5DBED1422EA /* Build configuration list for PBXNativeTarget "Pods-QXLiveDev" */; + buildConfigurationList = 865DB28E3ABEBE57251B86BE71EE7F0D /* Build configuration list for PBXNativeTarget "Pods-QXLiveDev" */; buildPhases = ( - 3905FF32300455E26DD4652F003E8A8D /* Headers */, - 92B4378F8248DA4F9A1DEB3399D577D3 /* Sources */, - B964401241CF085A2A5F675DCD7CD95E /* Frameworks */, - 2088C7C104444C38C961D989B124DFA6 /* Resources */, + 1D4552AFF20E5451177451448BD94755 /* Headers */, + 28A36354F1D8CAE31502D822EAF861F3 /* Sources */, + 2161306FDDF6705CF027F67DB548A451 /* Frameworks */, + 44860628692201993878CBC3AE5E69CD /* Resources */, ); buildRules = ( ); dependencies = ( - 0484DA6922970CF52A043808D05D09D4 /* PBXTargetDependency */, - 91C227A53D159AA5B5E6D2A70179BB30 /* PBXTargetDependency */, - 0A9F8DD020B7CB098444E9453A50F869 /* PBXTargetDependency */, - 18A16A172C990453E0185A08EF848467 /* PBXTargetDependency */, - 447972E81EB5003E97CF1DD1D43197B6 /* PBXTargetDependency */, - 8336BA7CBDE0910E293786AC5CD9FF07 /* PBXTargetDependency */, - A821A7DE4EC41E228B5C7B4DE6B5C6ED /* PBXTargetDependency */, - 8343359E03C3C9C1139AF478284184C6 /* PBXTargetDependency */, - CE1D3F343584A1A12D21AF113483A745 /* PBXTargetDependency */, - DBAB4C535D0621ED81853EB68CCC0D2E /* PBXTargetDependency */, - B00FCE2883A43F8EE59940BDFA03D66E /* PBXTargetDependency */, - F46EA35B1B79EFA91DD34A5932F441F2 /* PBXTargetDependency */, - 4CAB83F2E81F92D0E7E425E708E2DE71 /* PBXTargetDependency */, - B761E2BC733C9A44005FB073CD4AC9CF /* PBXTargetDependency */, - B7ADB8506CF2208A4ACA941D2F11C515 /* PBXTargetDependency */, - FED6F9CAAFCC546CBC4558A83025DBEC /* PBXTargetDependency */, - 5ECDBB71F386A0D8D0362B8CFDD2D55E /* PBXTargetDependency */, - 463A030A5AFE3FEA59EEFA031C0B3556 /* PBXTargetDependency */, - 55366F1295F46C948FA98D88C7A10CAB /* PBXTargetDependency */, - 54AD0E713E1948FC20578522270A2474 /* PBXTargetDependency */, - A70349F00232696ABF51877CC07AA4BE /* PBXTargetDependency */, - CFE314598E2CB02CEB1CD959000691F3 /* PBXTargetDependency */, - 7E367DD65096F7587A44D07A68D48252 /* PBXTargetDependency */, - 18E9A65666B679632AEB352AC7CF3E24 /* PBXTargetDependency */, - B0EA52AE39C774CFAA783D5843C8E5FC /* PBXTargetDependency */, - C97134715641D99253A0FFEEBAB457AF /* PBXTargetDependency */, - 33DA32CD306549AFADD4D4B43950931E /* PBXTargetDependency */, - 75AA4484B02D5D9A6DF2621BCE44E70C /* PBXTargetDependency */, - DB7BB75E3E14FC9A9D50FA4BBB5C7767 /* PBXTargetDependency */, - AEB90315997471970DEAAD88CC8D9BDB /* PBXTargetDependency */, - 117B342350619B3DD7A5270B308FFB96 /* PBXTargetDependency */, - EE6643298BDD4FC5269FD94D554644DA /* PBXTargetDependency */, - 9BBAA99E1805A83A9018E0A97CCF09A8 /* PBXTargetDependency */, - 9E61D1E985AFF47B369BFC9D09269D40 /* PBXTargetDependency */, - A85C4C5D61D1BCDF4A763D800F699AC1 /* PBXTargetDependency */, - B26711B6A46158371D4332CC5196AB7E /* PBXTargetDependency */, - ED148E2592B5ECDA017D375455849147 /* PBXTargetDependency */, - 20409ACC44AD7A0A232A7B0B47C7ED85 /* PBXTargetDependency */, - 04B7BE4650B6393F1628D4FCC5EE63F9 /* PBXTargetDependency */, - 4B84009F004BE1604EADF9C1A3B66C9D /* PBXTargetDependency */, - 5700E5937E38508A949CD27CCA46AFA3 /* PBXTargetDependency */, - 0ADC7CB97EF5624025748F3BB7F497CA /* PBXTargetDependency */, - C24B572E4DDB0A526F2BA3D1454EED87 /* PBXTargetDependency */, - A4AB9B27A92D9276917044E76C6259C5 /* PBXTargetDependency */, - 7D4E1BA5DE752520F984AB86D6230F4B /* PBXTargetDependency */, + 0F0FE0E91BDBFD84B9FB2695ED121D34 /* PBXTargetDependency */, + 07A4310B8A1771145C9B4DBC638E545C /* PBXTargetDependency */, + E75BD8CE4713E3D3415C7BF74B136DD4 /* PBXTargetDependency */, + 0F5515890E62FD8972FBFB8CCEE5B0CA /* PBXTargetDependency */, + EFDF87F92966C3B65874FC9D9C57E25C /* PBXTargetDependency */, + 85A427292BEBC99F83BF986EBD657A77 /* PBXTargetDependency */, + AA4F5CEC77C1B56F575BB051F5A15C87 /* PBXTargetDependency */, + 83F1893D230849AF9C307E9CC41D0FBF /* PBXTargetDependency */, + 281C932CBC28A9B910DF273D01E89F35 /* PBXTargetDependency */, + BE8EEA9F02FEBC3CD7286C6B076F7239 /* PBXTargetDependency */, + 19E72E972FCA9EAF607D1019BCF18611 /* PBXTargetDependency */, + 6E13005FFAFC2D4B901B8E01ECB92D5E /* PBXTargetDependency */, + 27F23B13B86E99BE8BE9DF4A364F9369 /* PBXTargetDependency */, + DC5326A15B348F14D2F4DF6E7A4CB513 /* PBXTargetDependency */, + F360729E83AFD49880E3C195EC349655 /* PBXTargetDependency */, + 034925E304C6C07A743186D7AD109962 /* PBXTargetDependency */, + 5C66869334AA1F8FB805CFACD8CCDBEC /* PBXTargetDependency */, + 027A3930BD1AEE9645BE2BB9B22AB21C /* PBXTargetDependency */, + FC9D73AF163198C6AEF3E6088608B833 /* PBXTargetDependency */, + 5518AD7FF2908F6B4F468544B8AAA6B0 /* PBXTargetDependency */, + 8DF96A1B0F7412C8879516D103F3E439 /* PBXTargetDependency */, + 5FD8254F6D846908EFCCE42207E554CC /* PBXTargetDependency */, + 2ECA6FA829B3F580BE7E3C22CB80D093 /* PBXTargetDependency */, + 291F27889AD2EBB1F6A1D55ECA8C9289 /* PBXTargetDependency */, + E2C8D7C257776C86B27EDE2A90A1EB31 /* PBXTargetDependency */, + 4D3B2053DBC41F1D06837CCB0A009136 /* PBXTargetDependency */, + 233148E759A475193A641E82B14D91E9 /* PBXTargetDependency */, + 7E4A5A47EE0061D6199FC35BA9780F47 /* PBXTargetDependency */, + B49EFF3266CBE65FABF0D659F19A9FAB /* PBXTargetDependency */, + C448B7B706D24EE1E7900D826B058BFD /* PBXTargetDependency */, + 8C78BD59EF9ED450FB5163448335C001 /* PBXTargetDependency */, + AAE86F5A624AEDF242FACE275672E717 /* PBXTargetDependency */, + FEB1107B92EF1A5AF2C3DCF7D271B335 /* PBXTargetDependency */, + 7CD62DC58511188F955195A18959B84C /* PBXTargetDependency */, + A2D99EB2EFD20837F6C2055DB2B669DC /* PBXTargetDependency */, + CD7EA43F13F6AC4C32695101DE963AAD /* PBXTargetDependency */, + 5CC7093351DA6D7445112C094EA251C3 /* PBXTargetDependency */, + D3524B9FB35B4CBD08F93E36FD07BD08 /* PBXTargetDependency */, + 7F9887B0799482107B31D33EE751743E /* PBXTargetDependency */, + DAFE8BD73D259D9B06DEDCE36AB1BBBC /* PBXTargetDependency */, + B125397A2465FC702DE4CD68AFBA60B7 /* PBXTargetDependency */, + 8F64DD0C0060BCA30CA76D2F360C2566 /* PBXTargetDependency */, + ED6E20575779E51ECD4362EAB0C9ABFE /* PBXTargetDependency */, + 4A65B842F1B4A217C185E08D0BD43542 /* PBXTargetDependency */, + 762F859D6A487CCABC6D0C980240CA29 /* PBXTargetDependency */, + D1A3342385DBAB8316F8C8934D25EAD2 /* PBXTargetDependency */, + 1CA1CD96CB04E785AF0201739A62A4DA /* PBXTargetDependency */, ); name = "Pods-QXLiveDev"; productName = Pods_QXLiveDev; @@ -14768,7 +15995,7 @@ buildRules = ( ); dependencies = ( - 97A188798BF802266C3662C0FBBA0CEA /* PBXTargetDependency */, + B32A652E0054AD76BE195251A6677D76 /* PBXTargetDependency */, ); name = LLDebugTool; productName = LLDebugTool; @@ -14777,11 +16004,11 @@ }; 5D11A19D6943394EC1DDAB15A39FB827 /* AliyunOSSiOS-AliyunOSSiOS_Privacy */ = { isa = PBXNativeTarget; - buildConfigurationList = 0D5B10EE83B38532B2ECD875E76193BC /* Build configuration list for PBXNativeTarget "AliyunOSSiOS-AliyunOSSiOS_Privacy" */; + buildConfigurationList = 53A43A1CF2266B94FBF551915C989BF9 /* Build configuration list for PBXNativeTarget "AliyunOSSiOS-AliyunOSSiOS_Privacy" */; buildPhases = ( - EA89A9E8C5554E72BEB0B028F87C36A6 /* Sources */, - 2B72A8FCC5B302BF87FAAC2FFB7962AD /* Frameworks */, - 5AF41DCFBADB960631EC76CA2C5F20E3 /* Resources */, + 4523A24A2D323575CE871CCE31BF6695 /* Sources */, + 1419AE2A06E5901877A78D429CCBA2F3 /* Frameworks */, + E82C27A2E08C8630CEC802A226E34B5C /* Resources */, ); buildRules = ( ); @@ -14804,7 +16031,7 @@ buildRules = ( ); dependencies = ( - E2098C996C43C46308990881B96642FA /* PBXTargetDependency */, + F61C086109946FEF4B88BE4ED06757D9 /* PBXTargetDependency */, ); name = MJRefresh; productName = MJRefresh; @@ -14841,10 +16068,10 @@ buildRules = ( ); dependencies = ( - 0F6BA643B29B25295427B33521CAA71C /* PBXTargetDependency */, - A514CD0091E239D18E488DAF5B64B6DD /* PBXTargetDependency */, - 19DD7D9CE8747D1279A1385F3CC6CBFB /* PBXTargetDependency */, - 41750DBDA82F8A741FE22623D833BAEB /* PBXTargetDependency */, + 7F65D68BEE64710492CCA094B0EB3848 /* PBXTargetDependency */, + F3DDEC9D5D1016E0E08F60308529C1DA /* PBXTargetDependency */, + 27C521656956B8DB083764292CF05E5B /* PBXTargetDependency */, + 1F35DA16C9ADCE31FC920B3DCE01F01A /* PBXTargetDependency */, ); name = TUIConversation; productName = TUIConversation; @@ -14853,12 +16080,12 @@ }; 822E44240F2922DAB12018A6B649BD19 /* YYImage */ = { isa = PBXNativeTarget; - buildConfigurationList = 8D31FA4F8E24713E3CAE7286F3D6E8D7 /* Build configuration list for PBXNativeTarget "YYImage" */; + buildConfigurationList = 46D5810AE045F867DFD825B54048DFFE /* Build configuration list for PBXNativeTarget "YYImage" */; buildPhases = ( - EDEA55501511ABA5956D6BBD48D5D4CC /* Headers */, - D87423B200A9FA77B81485D82912CFEF /* Sources */, - 4619979887A737163113E7ED207005B1 /* Frameworks */, - 5783ABBA1C39B9FC0DFBBB46C7183246 /* Resources */, + E831767D742ACA31C60A40E72B22223C /* Headers */, + 00ABBA19B76F8AB8D76ED0CAEF33E7D0 /* Sources */, + F5ED9A87D1BC8805B58C7D8BB2F5B83D /* Frameworks */, + 995E18D1318DDFAB10D4BEC358853D08 /* Resources */, ); buildRules = ( ); @@ -14917,7 +16144,7 @@ buildRules = ( ); dependencies = ( - 3D6F7D84444AABFD379A39FBA4A67944 /* PBXTargetDependency */, + 2756536FB5CD3334C7792804B489BB36 /* PBXTargetDependency */, ); name = FMDB; productName = FMDB; @@ -14936,7 +16163,7 @@ buildRules = ( ); dependencies = ( - F7783B8AE70E78BA8FDF73A85DC0DB36 /* PBXTargetDependency */, + 55D40E065CF188A66C74C69B692D25DD /* PBXTargetDependency */, ); name = JXCategoryView; productName = JXCategoryView; @@ -14945,11 +16172,11 @@ }; 8F36C5664BEF7888A4F179030A11C598 /* TUICore-TUICore_Privacy */ = { isa = PBXNativeTarget; - buildConfigurationList = 28871870DF84FBFA4B8B58FBD87C70D7 /* Build configuration list for PBXNativeTarget "TUICore-TUICore_Privacy" */; + buildConfigurationList = 1435D66241B4C70B47B283D1DF8FE705 /* Build configuration list for PBXNativeTarget "TUICore-TUICore_Privacy" */; buildPhases = ( - 06D68BB2131C26FAD36B80596EBA0358 /* Sources */, - 80A4074CABEB75725F888ED02D97377C /* Frameworks */, - 1AD70F3F36E2BCF3AF71F5C7092D2085 /* Resources */, + 9D893A59E4B307AD20A893F55587505C /* Sources */, + 80C99AC4E4B2851FD010B500C943892A /* Frameworks */, + FE95518B93910A0DD2460DC8079AA5B1 /* Resources */, ); buildRules = ( ); @@ -14962,11 +16189,11 @@ }; 941104F296513E17138328984384286C /* BRPickerView-BRPickerView.Privacy */ = { isa = PBXNativeTarget; - buildConfigurationList = E0873CEA4D5584426700DF2DE260CE20 /* Build configuration list for PBXNativeTarget "BRPickerView-BRPickerView.Privacy" */; + buildConfigurationList = 0ACC4CBD875FE111DB5D540AB979459E /* Build configuration list for PBXNativeTarget "BRPickerView-BRPickerView.Privacy" */; buildPhases = ( - 04466FDCE39DF3EF43A16F902DE99455 /* Sources */, - 0FD283735D5803D17404CE056CEC4386 /* Frameworks */, - B474D41CC8D8A606DF0EB63016C7C1D1 /* Resources */, + D88C9449EC99AAACE085BF56C16A0E08 /* Sources */, + 3595B53316C1B09B01B6BF4EA8B1A69E /* Frameworks */, + A47AF59914FFC83B60B9D54FD2F176E6 /* Resources */, ); buildRules = ( ); @@ -14979,11 +16206,11 @@ }; 94CFBA7D633ECA58DF85C327B035E6A3 /* SDWebImage-SDWebImage */ = { isa = PBXNativeTarget; - buildConfigurationList = 68A4EE4616CF634AA692D09AFD048F66 /* Build configuration list for PBXNativeTarget "SDWebImage-SDWebImage" */; + buildConfigurationList = D34A9C203E9D0E936BDC93BFF22A4CC8 /* Build configuration list for PBXNativeTarget "SDWebImage-SDWebImage" */; buildPhases = ( - C2FBB5C0F8D0B9E6ABA8E3418AAACE16 /* Sources */, - 65EDCAE0663EF9BD948ACFC3D5E3C1A7 /* Frameworks */, - EE4F0A406105BA50A0FB85902C0C3B6C /* Resources */, + 0D4FE37554C5D3677C048557E7EE6A06 /* Sources */, + F756B3E958081B27744890A0A3D616D5 /* Frameworks */, + 5515D834C70A4741CEBEF3932EB06DA0 /* Resources */, ); buildRules = ( ); @@ -14996,11 +16223,11 @@ }; 973B9A51B49701F13767694DCAF5C37D /* FMDB-FMDB_Privacy */ = { isa = PBXNativeTarget; - buildConfigurationList = A9EC1C2489075401A57003AF2B83368B /* Build configuration list for PBXNativeTarget "FMDB-FMDB_Privacy" */; + buildConfigurationList = 7305028F209B88CD2AF1778B74BCD712 /* Build configuration list for PBXNativeTarget "FMDB-FMDB_Privacy" */; buildPhases = ( - 90A123CD0CD89311C260871935CF5E43 /* Sources */, - 4B53258048CB6D1E2681473BC7A7C030 /* Frameworks */, - A79B382EE1DC7AA6A6E52664AF51D49A /* Resources */, + E8B1EC931101F40264286428AFA438D7 /* Sources */, + A2772F16ECAE7BF4187D7983988B3441 /* Frameworks */, + 4AC00B4B87239E8412091927A52CEBC5 /* Resources */, ); buildRules = ( ); @@ -15013,11 +16240,11 @@ }; A3672D206FD781B76503C6F6C0C8191A /* TIMPush-TIMPush_Privacy */ = { isa = PBXNativeTarget; - buildConfigurationList = BAA0546903146D220EABBE3330BC9598 /* Build configuration list for PBXNativeTarget "TIMPush-TIMPush_Privacy" */; + buildConfigurationList = BECA9F4651D85D5F078363669F205EBD /* Build configuration list for PBXNativeTarget "TIMPush-TIMPush_Privacy" */; buildPhases = ( - 10ED9B992BA227505B80947F8A8A25ED /* Sources */, - 25A4467CACB7AF2418E0D38A99FD2F33 /* Frameworks */, - DDBDA8AF6E27ED3DA4B656D07203267D /* Resources */, + 1969BF3DE69F4EF499104FEB18EA081B /* Sources */, + 4AF1303DCE8042DCD606B45AD5EB4A07 /* Frameworks */, + 0014CCD09E7C525C8B62AA6D8EF54C50 /* Resources */, ); buildRules = ( ); @@ -15048,11 +16275,11 @@ }; A9A94B2F47199AE29CDF9CF13F4D95CF /* TIMCommon-TIMCommon_Privacy */ = { isa = PBXNativeTarget; - buildConfigurationList = A2F1C56EB5201FBC5178DCC35AAA3BDC /* Build configuration list for PBXNativeTarget "TIMCommon-TIMCommon_Privacy" */; + buildConfigurationList = 0FC4B30358FC62A913FCE57F62D89FCC /* Build configuration list for PBXNativeTarget "TIMCommon-TIMCommon_Privacy" */; buildPhases = ( - 74F1AA39F89BE393E18B4C3744BA4CFB /* Sources */, - 5275E53CF8D2999DC525B044A715982D /* Frameworks */, - 715D83AD94E86C4EE98663A3116B048F /* Resources */, + DCBC47A6BA03FC4F34C79F9B025B6EEA /* Sources */, + 6B558927A838FE8F7649B25E2E996CF3 /* Frameworks */, + 4BBF3F6F33F700AB80F9DCBDF22D3F46 /* Resources */, ); buildRules = ( ); @@ -15063,13 +16290,32 @@ productReference = 1861D51E6AFECEB294232A4496429A63 /* TIMCommon-TIMCommon_Privacy */; productType = "com.apple.product-type.bundle"; }; + B2155DC9E9B69430B6C78F3E6D06BACF /* QCloudCOSXML */ = { + isa = PBXNativeTarget; + buildConfigurationList = 7F110E487E94247D8026BEF4FE23F914 /* Build configuration list for PBXNativeTarget "QCloudCOSXML" */; + buildPhases = ( + 2F530FC786492FE57080615C21E9E09C /* Headers */, + 376C58E669F87A243D9C6A162C9AEDC6 /* Sources */, + 339D28FD2DBBA8E72D3E59D5CD18A894 /* Frameworks */, + 522739CA55F66573DB2481F3A3A35083 /* Resources */, + ); + buildRules = ( + ); + dependencies = ( + F6C50F6A681C1998883B324282CDB953 /* PBXTargetDependency */, + ); + name = QCloudCOSXML; + productName = QCloudCOSXML; + productReference = 3A29D7C214574D219F6C435101FF52C8 /* QCloudCOSXML */; + productType = "com.apple.product-type.framework"; + }; B26054DF1DEA11585A231AF6D1D80D5E /* MJRefresh-MJRefresh.Privacy */ = { isa = PBXNativeTarget; - buildConfigurationList = 836ABCC1E0E017407DA1A93191A9F6B0 /* Build configuration list for PBXNativeTarget "MJRefresh-MJRefresh.Privacy" */; + buildConfigurationList = 8B2BE83201E0B4503EBF87CF1902468D /* Build configuration list for PBXNativeTarget "MJRefresh-MJRefresh.Privacy" */; buildPhases = ( - 754A2E979481CD144BDC425E95BDB98B /* Sources */, - 98647715ACCD5C88D4CA450B0E616EA7 /* Frameworks */, - FD79E47CD5451C78DE0962B8EF0C6561 /* Resources */, + AB87F6D45D550292DFDB6E8CE46F9F0A /* Sources */, + DDA6E1FF129F94F61CFCA9D21E4BADE7 /* Frameworks */, + 77905F3FFB46A67262C41FE2631E4FF9 /* Resources */, ); buildRules = ( ); @@ -15092,8 +16338,8 @@ buildRules = ( ); dependencies = ( - 4B4953EB567D06F1D0FD1E2247B10762 /* PBXTargetDependency */, - 5C39D8D43C4D5CAA5643C95205502E77 /* PBXTargetDependency */, + 806E61D09977FE9B01DBF600B680E656 /* PBXTargetDependency */, + C209FB4656F4881E77CE617AAA98610D /* PBXTargetDependency */, ); name = YBImageBrowser; productName = YBImageBrowser; @@ -15112,7 +16358,7 @@ buildRules = ( ); dependencies = ( - C5EB2DB11B69F3EEE7CC3D99A942500B /* PBXTargetDependency */, + 5622A87ACF5AFFAB16F84C663971A714 /* PBXTargetDependency */, ); name = AliyunOSSiOS; productName = AliyunOSSiOS; @@ -15131,7 +16377,7 @@ buildRules = ( ); dependencies = ( - 40D18A16DECC29EEC49800AD5DF329EF /* PBXTargetDependency */, + EB961BD51488140C87DE9CEA8B39ED95 /* PBXTargetDependency */, ); name = JXPagingView; productName = JXPagingView; @@ -15150,7 +16396,7 @@ buildRules = ( ); dependencies = ( - EDCDB008A08F678EAE6E13A7143F999B /* PBXTargetDependency */, + 0E19CF3AC0808844692A207C3C31467F /* PBXTargetDependency */, ); name = SDCycleScrollView; productName = SDCycleScrollView; @@ -15187,20 +16433,38 @@ buildRules = ( ); dependencies = ( - 7E311C0A28E1DFAF24F56DD77DD01EAC /* PBXTargetDependency */, + C6A8014E8334B6A1D61A4EEDCE72D1C3 /* PBXTargetDependency */, ); name = BRPickerView; productName = BRPickerView; productReference = 5BA6046B4C2674409C0D5625F45F8769 /* BRPickerView */; productType = "com.apple.product-type.framework"; }; + DBD31C8A3F2371ED732009637E95423D /* QCloudCore */ = { + isa = PBXNativeTarget; + buildConfigurationList = 16C4D9A5BDFC3489398ECE1489D509DE /* Build configuration list for PBXNativeTarget "QCloudCore" */; + buildPhases = ( + A96E3EFB741E21F92D3B9C63A8E78914 /* Headers */, + 769591C34016F3C6CCA9DB2B51CE520A /* Sources */, + 41FEFFB7D7C215E94011815E60B01962 /* Frameworks */, + 6C12446D249BEEE58B54C61B50418DCA /* Resources */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = QCloudCore; + productName = QCloudCore; + productReference = 46692FB12DB27794094D838DF87D563C /* QCloudCore */; + productType = "com.apple.product-type.framework"; + }; E79E29F55A2453370D27112480FCF6A2 /* JXCategoryView-JXCategoryView */ = { isa = PBXNativeTarget; - buildConfigurationList = 25F1CD2EB53DDF0ACDBC41067B3355B1 /* Build configuration list for PBXNativeTarget "JXCategoryView-JXCategoryView" */; + buildConfigurationList = 1A2B7E6ADA8D59E157B819D5BF3E3CFC /* Build configuration list for PBXNativeTarget "JXCategoryView-JXCategoryView" */; buildPhases = ( - C1090B921C215B403A220B614859BBA8 /* Sources */, - E3E807DF4222A7B37FC23EEE3E46AF82 /* Frameworks */, - A3A500526EA5DF8FF1A32BB3E1F57B31 /* Resources */, + F6517C7FFC11F75C107C98C414B0A8F0 /* Sources */, + 2A4777E313373DDD79751D6D345A4F1F /* Frameworks */, + 30BE62DE2A50A66775569C3CB7A540E2 /* Resources */, ); buildRules = ( ); @@ -15213,19 +16477,19 @@ }; EB381B961261861E0643718E562995A8 /* TUICore */ = { isa = PBXNativeTarget; - buildConfigurationList = E9D947F17E88A6D5B34309D8E584ACDA /* Build configuration list for PBXNativeTarget "TUICore" */; + buildConfigurationList = F4C1E56BBDE6C5934926CE4D56FFF4B8 /* Build configuration list for PBXNativeTarget "TUICore" */; buildPhases = ( - B35D4E6BDD617B38FE1B91638D24EC3C /* Headers */, - 33D3453AF917CDFB250D51B03EA44A29 /* Sources */, - AFEAE0B61C501F8D8810779551AAF69A /* Frameworks */, - C50B41D43938343C5870DA70A6439D7C /* Resources */, + 365DA3D6EC706FDBFA762EC1A1DB721F /* Headers */, + 4DA435ED91ACA61165DB82F7428E3574 /* Sources */, + 4A694A7876403B83712D61D097343924 /* Frameworks */, + 30DC3D2E7877CA4E6F137BF386712E31 /* Resources */, ); buildRules = ( ); dependencies = ( - E5F5FD6190222D442F226829CC20D3B4 /* PBXTargetDependency */, - 586DE645ACDF9D868F184549D3DC7127 /* PBXTargetDependency */, - 94E0BDBC47F155EFE604B232FC2878A6 /* PBXTargetDependency */, + 3F70F05AB39A74A56AEC76534759555C /* PBXTargetDependency */, + B0B5C96E3A15A83C8BE36F3774FB5B22 /* PBXTargetDependency */, + AD2FFF19A6632FD7DAFC6592D5DA674E /* PBXTargetDependency */, ); name = TUICore; productName = TUICore; @@ -15244,8 +16508,8 @@ buildRules = ( ); dependencies = ( - 9A54D93F9F9D9B458876C9D8C0D1D2A1 /* PBXTargetDependency */, - 2CC331359034190E24D2B3BEAF05F61F /* PBXTargetDependency */, + 6AD5211C9A49370171B7596343FD1E05 /* PBXTargetDependency */, + D60BD3FD4A6CB1899F9361553BD81A20 /* PBXTargetDependency */, ); name = SVGAPlayer; productName = SVGAPlayer; @@ -15254,11 +16518,11 @@ }; F56DFD738FAB4E4F07F2D2E962EA3946 /* TUIChat-TUIChat_Privacy */ = { isa = PBXNativeTarget; - buildConfigurationList = 80DA5974F673F38ADCCDAD4CDB950D86 /* Build configuration list for PBXNativeTarget "TUIChat-TUIChat_Privacy" */; + buildConfigurationList = C1598DD7C6A66E15E80AC67DBC829A49 /* Build configuration list for PBXNativeTarget "TUIChat-TUIChat_Privacy" */; buildPhases = ( - 57E36F5CA4715A33259C8EAB67CA110F /* Sources */, - D517245CAA823CB67D365EA976E2861E /* Frameworks */, - FE886D4374B403A18E195C4E718A5021 /* Resources */, + 7FC129D0C1F5593192ED60E04CC98D43 /* Sources */, + 0BA811B245ECC2516B34388EE9360011 /* Frameworks */, + A29A9805A9F361D1D0340A34E9832C86 /* Resources */, ); buildRules = ( ); @@ -15289,11 +16553,11 @@ }; F71BF3AB61E6444B3140F0A3A86B2910 /* TXIMSDK_Plus_iOS_XCFramework-TXIMSDK_Plus_iOS_XCFramework_Privacy */ = { isa = PBXNativeTarget; - buildConfigurationList = 4C7EA678FC3C362997760723333D5649 /* Build configuration list for PBXNativeTarget "TXIMSDK_Plus_iOS_XCFramework-TXIMSDK_Plus_iOS_XCFramework_Privacy" */; + buildConfigurationList = 859C77699D4F206C2183A17E0EF58870 /* Build configuration list for PBXNativeTarget "TXIMSDK_Plus_iOS_XCFramework-TXIMSDK_Plus_iOS_XCFramework_Privacy" */; buildPhases = ( - 9FF4BBFF959AA945F1621CBF2440AEEC /* Sources */, - 10741A7E6BE1517B4D829FFBCAA54568 /* Frameworks */, - BF007BCCC6AA183C626752DA384AB750 /* Resources */, + 162291A430ED00568C8529152FED9D3A /* Sources */, + EB594846AD3885B5587BF2BB0CD9787F /* Frameworks */, + 6442C34260252498711A85FADD61C97B /* Resources */, ); buildRules = ( ); @@ -15316,7 +16580,7 @@ buildRules = ( ); dependencies = ( - FEC41391F8DBF72BECF185F47B6D7072 /* PBXTargetDependency */, + F855DCB2F08495A69487133AB25B5D61 /* PBXTargetDependency */, ); name = IQKeyboardManager; productName = IQKeyboardManager; @@ -15325,11 +16589,11 @@ }; FBC036FDFE401149B1CD899239D81CFA /* TUIConversation-TUIConversation_Privacy */ = { isa = PBXNativeTarget; - buildConfigurationList = A4B50B4BCA3F2EB5FF0B9DA9E0CF9421 /* Build configuration list for PBXNativeTarget "TUIConversation-TUIConversation_Privacy" */; + buildConfigurationList = C2B304F373BDF2D993C52384F471DE2E /* Build configuration list for PBXNativeTarget "TUIConversation-TUIConversation_Privacy" */; buildPhases = ( - 32E47C4C90933E2C42C7AB70E467717B /* Sources */, - 28B01114598E7B08454639F84967BC50 /* Frameworks */, - C4FFD5EDAE8B87E7FE8D2014477279A2 /* Resources */, + 4ED1CB6E8F44A93C3B3DEDA28776435E /* Sources */, + 992EADAC268742EFDB0DFA0115044F2E /* Frameworks */, + 049DCDCA15962001161750281372A3E1 /* Resources */, ); buildRules = ( ); @@ -15378,7 +16642,7 @@ mainGroup = CF1408CF629C7361332E53B88F7BD30C; minimizedProjectReferenceProxies = 0; preferredProjectObjectVersion = 77; - productRefGroup = B76695B951E8F27C3142A6A367E5504E /* Products */; + productRefGroup = 0941E2CBC62D38E691709EB01C70B8E6 /* Products */; projectDirPath = ""; projectRoot = ""; targets = ( @@ -15414,6 +16678,8 @@ 4AAE1BEBA99B4F05AAA71842C4FD1A10 /* Pods-QXLiveDev */, 470FE31978DC918618A329D8B55C85FF /* Protobuf */, 331902F14E62290AA86FB37CAAC6ABB0 /* Protobuf-Protobuf_Privacy */, + DBD31C8A3F2371ED732009637E95423D /* QCloudCore */, + B2155DC9E9B69430B6C78F3E6D06BACF /* QCloudCOSXML */, FBF544DF4EBDEAD14CE7D3656AF4A18B /* QGVAPlayer */, 438B238ACC7DF1178D1BCE1A31983146 /* ReactiveObjC */, CBED833AAD6266F3AEFE9BE31C68E094 /* SDCycleScrollView */, @@ -15450,6 +16716,22 @@ /* End PBXProject section */ /* Begin PBXResourcesBuildPhase section */ + 0014CCD09E7C525C8B62AA6D8EF54C50 /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 899D7129D6C4B97F1DAA000540A2AC3C /* PrivacyInfo.xcprivacy in Resources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 049DCDCA15962001161750281372A3E1 /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 227AF40520F47C730178C6B4767D80CF /* PrivacyInfo.xcprivacy in Resources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; 0A7E21C92D31ADB836F86D7666550B19 /* Resources */ = { isa = PBXResourcesBuildPhase; buildActionMask = 2147483647; @@ -15477,18 +16759,11 @@ ); runOnlyForDeploymentPostprocessing = 0; }; - 1AD70F3F36E2BCF3AF71F5C7092D2085 /* Resources */ = { - isa = PBXResourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - D252641B69940EA86733CE91F0DDCE67 /* PrivacyInfo.xcprivacy in Resources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; - 2088C7C104444C38C961D989B124DFA6 /* Resources */ = { + 168E1F2F2A87901C9DD07C3E3B759F41 /* Resources */ = { isa = PBXResourcesBuildPhase; buildActionMask = 2147483647; files = ( + EF9DFC4A31BAC474A118F275D849A8E8 /* SDWebImage-SDWebImage in Resources */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -15499,6 +16774,26 @@ ); runOnlyForDeploymentPostprocessing = 0; }; + 30BE62DE2A50A66775569C3CB7A540E2 /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 31890AFC64545DC6A61BCA0D13B978E9 /* PrivacyInfo.xcprivacy in Resources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 30DC3D2E7877CA4E6F137BF386712E31 /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 5A9448737A60657D405D228E6A3FEDCF /* TUICore.bundle in Resources */, + 79ECF8B86B505DB359090F0072E50CA1 /* TUICore-TUICore_Privacy in Resources */, + 8F5923A37DFFC0F720ED0BC21A6A0FD1 /* TUICoreTheme.bundle in Resources */, + D5FEBFCDCD7FB89ACC62E6295A44B57E /* TUICoreTheme_Minimalist.bundle in Resources */, + FAF3E653CB79FC887BC4307E0B59AC50 /* TUIKitLocalizable.bundle in Resources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; 3404DEDCBB6B6F611FFD8969E4D6805B /* Resources */ = { isa = PBXResourcesBuildPhase; buildActionMask = 2147483647; @@ -15514,11 +16809,10 @@ ); runOnlyForDeploymentPostprocessing = 0; }; - 3F165DC54459158F0060C5FB71639AE3 /* Resources */ = { + 44860628692201993878CBC3AE5E69CD /* Resources */ = { isa = PBXResourcesBuildPhase; buildActionMask = 2147483647; files = ( - 57612336010B567948EEE306D7D0F54A /* PrivacyInfo.xcprivacy in Resources */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -15543,6 +16837,22 @@ ); runOnlyForDeploymentPostprocessing = 0; }; + 4AC00B4B87239E8412091927A52CEBC5 /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 3CAE47C3170A956F0A625C82E7BAC5DA /* PrivacyInfo.xcprivacy in Resources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 4BBF3F6F33F700AB80F9DCBDF22D3F46 /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + C65C4A238E7E047F51DE2A10C770E565 /* PrivacyInfo.xcprivacy in Resources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; 4E7474094427196753B162CC79DE4B1A /* Resources */ = { isa = PBXResourcesBuildPhase; buildActionMask = 2147483647; @@ -15556,26 +16866,18 @@ ); runOnlyForDeploymentPostprocessing = 0; }; - 5783ABBA1C39B9FC0DFBBB46C7183246 /* Resources */ = { + 522739CA55F66573DB2481F3A3A35083 /* Resources */ = { isa = PBXResourcesBuildPhase; buildActionMask = 2147483647; files = ( ); runOnlyForDeploymentPostprocessing = 0; }; - 59756DC3F8C9AF9FD683D491B73C039A /* Resources */ = { + 5515D834C70A4741CEBEF3932EB06DA0 /* Resources */ = { isa = PBXResourcesBuildPhase; buildActionMask = 2147483647; files = ( - D6A56773666C4FC13435EDD44B689518 /* Media.xcassets in Resources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; - 5AF41DCFBADB960631EC76CA2C5F20E3 /* Resources */ = { - isa = PBXResourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - 3874F4CA60580D566C00579B8DED1552 /* PrivacyInfo.xcprivacy in Resources */, + 45A419A1E8A72D7337CE05B749681B21 /* PrivacyInfo.xcprivacy in Resources */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -15602,6 +16904,22 @@ ); runOnlyForDeploymentPostprocessing = 0; }; + 6442C34260252498711A85FADD61C97B /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + D2139D5563E202660CA855B04344D045 /* PrivacyInfo.xcprivacy in Resources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 653A63FC5F7E8EF71E2E0251806BD3B4 /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 284F0367BCC5DC4B79A2F844AE736CC6 /* PrivacyInfo.xcprivacy in Resources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; 68B18CAE9D89E3559204AEEBF86D5F3B /* Resources */ = { isa = PBXResourcesBuildPhase; buildActionMask = 2147483647; @@ -15619,6 +16937,13 @@ ); runOnlyForDeploymentPostprocessing = 0; }; + 6C12446D249BEEE58B54C61B50418DCA /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; 7124FAF4C8B7B082B7D61A9E54835463 /* Resources */ = { isa = PBXResourcesBuildPhase; buildActionMask = 2147483647; @@ -15627,14 +16952,6 @@ ); runOnlyForDeploymentPostprocessing = 0; }; - 715D83AD94E86C4EE98663A3116B048F /* Resources */ = { - isa = PBXResourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - 4435F92DED5194DE28973FAA56D2C000 /* PrivacyInfo.xcprivacy in Resources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; 75F32E74E1E5A8602174C474DD604277 /* Resources */ = { isa = PBXResourcesBuildPhase; buildActionMask = 2147483647; @@ -15642,6 +16959,14 @@ ); runOnlyForDeploymentPostprocessing = 0; }; + 77905F3FFB46A67262C41FE2631E4FF9 /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 2AF03A6ED69ABEA11BC6C3235B2C7A46 /* PrivacyInfo.xcprivacy in Resources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; 7D6AB5C01CBF07E8715A0D001AA2332A /* Resources */ = { isa = PBXResourcesBuildPhase; buildActionMask = 2147483647; @@ -15657,14 +16982,14 @@ ); runOnlyForDeploymentPostprocessing = 0; }; - 8672BC99598F0650424F458BD19A98BF /* Resources */ = { + 859F44C5FD4DCA2163CCE913C246128C /* Resources */ = { isa = PBXResourcesBuildPhase; buildActionMask = 2147483647; files = ( ); runOnlyForDeploymentPostprocessing = 0; }; - 878E1B7EE2E35C593422253173DCD710 /* Resources */ = { + 8672BC99598F0650424F458BD19A98BF /* Resources */ = { isa = PBXResourcesBuildPhase; buildActionMask = 2147483647; files = ( @@ -15678,7 +17003,14 @@ ); runOnlyForDeploymentPostprocessing = 0; }; - 91BDF48FE56A2211B8652A86D91D05E2 /* Resources */ = { + 96B01BC6CC3262E509B53A4367558CF7 /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 995E18D1318DDFAB10D4BEC358853D08 /* Resources */ = { isa = PBXResourcesBuildPhase; buildActionMask = 2147483647; files = ( @@ -15692,43 +17024,19 @@ ); runOnlyForDeploymentPostprocessing = 0; }; - A3A500526EA5DF8FF1A32BB3E1F57B31 /* Resources */ = { + A29A9805A9F361D1D0340A34E9832C86 /* Resources */ = { isa = PBXResourcesBuildPhase; buildActionMask = 2147483647; files = ( - 02E9ACC4782F8EE2D53F5338165BEEB6 /* PrivacyInfo.xcprivacy in Resources */, + E0D98960156C4E881DCCA2EB78D1140F /* PrivacyInfo.xcprivacy in Resources */, ); runOnlyForDeploymentPostprocessing = 0; }; - A548D863535FBE8BDC3893CA193765FB /* Resources */ = { + A47AF59914FFC83B60B9D54FD2F176E6 /* Resources */ = { isa = PBXResourcesBuildPhase; buildActionMask = 2147483647; files = ( - 9902D257E5BF610335380AE1736E0269 /* SDWebImage-SDWebImage in Resources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; - A6C4F55D6C1D683FC553753164F0124B /* Resources */ = { - isa = PBXResourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - E4FE2C52B4BEFEEE261443716020E30B /* PrivacyInfo.xcprivacy in Resources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; - A79B382EE1DC7AA6A6E52664AF51D49A /* Resources */ = { - isa = PBXResourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - 37DF27F7544A7450736F02492C9337DA /* PrivacyInfo.xcprivacy in Resources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; - B474D41CC8D8A606DF0EB63016C7C1D1 /* Resources */ = { - isa = PBXResourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - 98049E03516C7C6C3A276B734C5A19A6 /* PrivacyInfo.xcprivacy in Resources */, + A50D37FB316D9F8AC7CA949924792EC7 /* PrivacyInfo.xcprivacy in Resources */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -15739,31 +17047,18 @@ ); runOnlyForDeploymentPostprocessing = 0; }; - BF007BCCC6AA183C626752DA384AB750 /* Resources */ = { + C09B783FCEB00A3079D959E43A61706A /* Resources */ = { isa = PBXResourcesBuildPhase; buildActionMask = 2147483647; files = ( - 4540A4789762BCFDD9100135BE6D1D0C /* PrivacyInfo.xcprivacy in Resources */, + E458329F778FEC8481E769BCB73813A3 /* PrivacyInfo.xcprivacy in Resources */, ); runOnlyForDeploymentPostprocessing = 0; }; - C4FFD5EDAE8B87E7FE8D2014477279A2 /* Resources */ = { + CB01FFB0114FCA992B4FB19F431AD8FC /* Resources */ = { isa = PBXResourcesBuildPhase; buildActionMask = 2147483647; files = ( - D2C23FE4438D4F8B281D7A420D903ABC /* PrivacyInfo.xcprivacy in Resources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; - C50B41D43938343C5870DA70A6439D7C /* Resources */ = { - isa = PBXResourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - 180A8BFAC72B52E31EDCF19406C20BB2 /* TUICore.bundle in Resources */, - 0EBF06BCC2C4BF223BE887A555D54EC3 /* TUICore-TUICore_Privacy in Resources */, - 5D67CB51613B0B3A068081470855CD5E /* TUICoreTheme.bundle in Resources */, - 6EFF58891A2BDB930E59DDBB53557F9F /* TUICoreTheme_Minimalist.bundle in Resources */, - 7FB7054DA6BF75EE6CEDC4D31817248C /* TUIKitLocalizable.bundle in Resources */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -15789,14 +17084,6 @@ ); runOnlyForDeploymentPostprocessing = 0; }; - DDBDA8AF6E27ED3DA4B656D07203267D /* Resources */ = { - isa = PBXResourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - 9D2B4F63AACD42D296F3AC3B6133D113 /* PrivacyInfo.xcprivacy in Resources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; E664BDFE0B44D742638A43686ACB3008 /* Resources */ = { isa = PBXResourcesBuildPhase; buildActionMask = 2147483647; @@ -15804,11 +17091,11 @@ ); runOnlyForDeploymentPostprocessing = 0; }; - EC3BF83B2A8B11DC5117B1D21803269B /* Resources */ = { + E82C27A2E08C8630CEC802A226E34B5C /* Resources */ = { isa = PBXResourcesBuildPhase; buildActionMask = 2147483647; files = ( - 7EBDFE8DD83691C12230B408D0756732 /* PrivacyInfo.xcprivacy in Resources */, + 0539344547B401F1BEBFE46D6B96B1DD /* PrivacyInfo.xcprivacy in Resources */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -15819,18 +17106,11 @@ ); runOnlyForDeploymentPostprocessing = 0; }; - EE4F0A406105BA50A0FB85902C0C3B6C /* Resources */ = { - isa = PBXResourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - A6E3D156C99FA7723B8BE749C7A6ACE3 /* PrivacyInfo.xcprivacy in Resources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; - F47DEF763D57B37DD9CAD808565A4A03 /* Resources */ = { + ECFFBCE792728F1452B0F6ABE4B7E0E2 /* Resources */ = { isa = PBXResourcesBuildPhase; buildActionMask = 2147483647; files = ( + A2A1537F991F3BB1588DC2DECAA5EA90 /* Media.xcassets in Resources */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -15849,6 +17129,14 @@ ); runOnlyForDeploymentPostprocessing = 0; }; + FC7DE992ECFEAFAF59AD57F1D95952B4 /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 85863FD85FCB4121405CFF13660D260A /* PrivacyInfo.xcprivacy in Resources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; FCBF93A965DD17FF24BCB8637B2F2407 /* Resources */ = { isa = PBXResourcesBuildPhase; buildActionMask = 2147483647; @@ -15858,19 +17146,11 @@ ); runOnlyForDeploymentPostprocessing = 0; }; - FD79E47CD5451C78DE0962B8EF0C6561 /* Resources */ = { + FE95518B93910A0DD2460DC8079AA5B1 /* Resources */ = { isa = PBXResourcesBuildPhase; buildActionMask = 2147483647; files = ( - 28F22032CC388B76B647E674C1D287AB /* PrivacyInfo.xcprivacy in Resources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; - FE886D4374B403A18E195C4E718A5021 /* Resources */ = { - isa = PBXResourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - B79C5211CB9EAD7F0370A3FF5AA52339 /* PrivacyInfo.xcprivacy in Resources */, + E1378EFA6BD8F69AEFE6CD4F92E27C19 /* PrivacyInfo.xcprivacy in Resources */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -15902,6 +17182,23 @@ shellScript = "\"${PODS_ROOT}/Target Support Files/AgoraInfra_iOS/AgoraInfra_iOS-xcframeworks.sh\"\n"; showEnvVarsInLog = 0; }; + 30E6A5903DBDCB0E267C5812402F6798 /* [CP] Copy XCFrameworks */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputFileListPaths = ( + "${PODS_ROOT}/Target Support Files/TXIMSDK_Plus_iOS_XCFramework/TXIMSDK_Plus_iOS_XCFramework-xcframeworks-input-files.xcfilelist", + ); + name = "[CP] Copy XCFrameworks"; + outputFileListPaths = ( + "${PODS_ROOT}/Target Support Files/TXIMSDK_Plus_iOS_XCFramework/TXIMSDK_Plus_iOS_XCFramework-xcframeworks-output-files.xcfilelist", + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "\"${PODS_ROOT}/Target Support Files/TXIMSDK_Plus_iOS_XCFramework/TXIMSDK_Plus_iOS_XCFramework-xcframeworks.sh\"\n"; + showEnvVarsInLog = 0; + }; 4ADCCF1EE25517194697A524ABEDD36C /* [CP] Copy XCFrameworks */ = { isa = PBXShellScriptBuildPhase; buildActionMask = 2147483647; @@ -15936,23 +17233,6 @@ shellScript = "\"${PODS_ROOT}/Target Support Files/WechatOpenSDK-XCFramework/WechatOpenSDK-XCFramework-xcframeworks.sh\"\n"; showEnvVarsInLog = 0; }; - 6C2571307A44E8295C40D0357813B6D0 /* [CP] Copy XCFrameworks */ = { - isa = PBXShellScriptBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - inputFileListPaths = ( - "${PODS_ROOT}/Target Support Files/TXIMSDK_Plus_iOS_XCFramework/TXIMSDK_Plus_iOS_XCFramework-xcframeworks-input-files.xcfilelist", - ); - name = "[CP] Copy XCFrameworks"; - outputFileListPaths = ( - "${PODS_ROOT}/Target Support Files/TXIMSDK_Plus_iOS_XCFramework/TXIMSDK_Plus_iOS_XCFramework-xcframeworks-output-files.xcfilelist", - ); - runOnlyForDeploymentPostprocessing = 0; - shellPath = /bin/sh; - shellScript = "\"${PODS_ROOT}/Target Support Files/TXIMSDK_Plus_iOS_XCFramework/TXIMSDK_Plus_iOS_XCFramework-xcframeworks.sh\"\n"; - showEnvVarsInLog = 0; - }; 71B86DEC6F8764B18A2BFDEACA0FE1AC /* [CP] Copy XCFrameworks */ = { isa = PBXShellScriptBuildPhase; buildActionMask = 2147483647; @@ -16007,10 +17287,16 @@ /* End PBXShellScriptBuildPhase section */ /* Begin PBXSourcesBuildPhase section */ - 04466FDCE39DF3EF43A16F902DE99455 /* Sources */ = { + 00ABBA19B76F8AB8D76ED0CAEF33E7D0 /* Sources */ = { isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; files = ( + D4188C34A75D13E9D8359709949F8A4A /* YYAnimatedImageView.m in Sources */, + 2F9D0961E6C03C7C4D9CACF7759CC8A1 /* YYFrameImage.m in Sources */, + BC4A250A28A829BABA72CC85507993C9 /* YYImage.m in Sources */, + 9E1EEF4810C44B92AE79A7EA1C3D1519 /* YYImage-dummy.m in Sources */, + 439374D38249FBC5F964B12382ACA155 /* YYImageCoder.m in Sources */, + 5D3C21735CE9F0DFFE46955967DDA2A4 /* YYSpriteSheetImage.m in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -16038,90 +17324,134 @@ ); runOnlyForDeploymentPostprocessing = 0; }; - 06D68BB2131C26FAD36B80596EBA0358 /* Sources */ = { + 073BAE456090396408CDDF56974C2988 /* Sources */ = { isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; files = ( - ); - runOnlyForDeploymentPostprocessing = 0; - }; - 076A8B32A1520059D814A34897A042BD /* Sources */ = { - isa = PBXSourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - 90B73A51C14C5AC83914DBAC0974D95F /* NSBezierPath+SDRoundedCorners.m in Sources */, - AF7C9C150875D43D2791D4F66D5F39CD /* NSButton+WebCache.m in Sources */, - 3F6AE60F5078CB1C0F9A7E6E9CCA993C /* NSData+ImageContentType.m in Sources */, - 8CAC36087F1E6B0D8EF57B62C3C81E80 /* NSImage+Compatibility.m in Sources */, - 9BAB90DFB5E11FFE0C0DA393ED67657F /* SDAnimatedImage.m in Sources */, - 14D295950C18090E9B5520366DA0128B /* SDAnimatedImagePlayer.m in Sources */, - DF08A49444CDBFA264E32B32C82C8FC1 /* SDAnimatedImageRep.m in Sources */, - 6BDEFFD3F143FD0BA56CC01A1C4A7997 /* SDAnimatedImageView.m in Sources */, - 7E0CE59DF6CA365A0F8ADF5CB174E68A /* SDAnimatedImageView+WebCache.m in Sources */, - 3935713D38F93BBFDEF445191E42EBB4 /* SDAssociatedObject.m in Sources */, - 8DDF260CCEFB164BCB786069BCC8265D /* SDAsyncBlockOperation.m in Sources */, - 55948AC1957526557F4658B2B70D17A4 /* SDCallbackQueue.m in Sources */, - 3905C185D90999E707BDFC497ABFF6BC /* SDDeviceHelper.m in Sources */, - 6F6B35F54CE65ABE5A576F66DACC1185 /* SDDiskCache.m in Sources */, - BE1233FCB7830D16E97F545E0FEB94F9 /* SDDisplayLink.m in Sources */, - 4204B1334D2E961D1EB3E0AAA0056B43 /* SDFileAttributeHelper.m in Sources */, - 8B3CD70221DCB6E765DC5BFC499B0FB4 /* SDGraphicsImageRenderer.m in Sources */, - 442F711B72745323EBB2775FFC35A7B0 /* SDImageAPNGCoder.m in Sources */, - CA3B70F59C480F8E7E57BB927544A84D /* SDImageAssetManager.m in Sources */, - 9439A1947DB16F74CD265AC1BD8CB25A /* SDImageAWebPCoder.m in Sources */, - E66814F31F70B2A0D7477CCE8B9A38A8 /* SDImageCache.m in Sources */, - 7C7D944BB921B77E15754E3284C83845 /* SDImageCacheConfig.m in Sources */, - 6B337C0F2FC167CD47023BE9BC9DFB9E /* SDImageCacheDefine.m in Sources */, - DD3AFB0A9F60A7A78B811C3B3A8813B8 /* SDImageCachesManager.m in Sources */, - 5AC9D6EF968C2394AB105C4B448309FC /* SDImageCachesManagerOperation.m in Sources */, - A9C93AF46B2CFFCF6CEA58CF1F317800 /* SDImageCoder.m in Sources */, - 32E9EBC31AB1234E68C1343ECE547274 /* SDImageCoderHelper.m in Sources */, - 71F93487767E310ADA5A55204EFD4172 /* SDImageCodersManager.m in Sources */, - 05A1DD44EA26C531351AE28F1AC9AFF4 /* SDImageFrame.m in Sources */, - A982D8F3722564E5E64643BF5415CB88 /* SDImageFramePool.m in Sources */, - 7FE26592B76BBE7D97D50769C37F174C /* SDImageGIFCoder.m in Sources */, - 6362233D4732C85B61C2E66A8B1A2F4F /* SDImageGraphics.m in Sources */, - C4C7B8D764FCFA82C39600ABD2E11BFC /* SDImageHEICCoder.m in Sources */, - 0AE01A7B4911F5F10E97A56F0881F02A /* SDImageIOAnimatedCoder.m in Sources */, - 3A7DAB61445DE650AB6812C5DD7803D4 /* SDImageIOCoder.m in Sources */, - 37698E9A490474D1F5ED3A46A4D27F9D /* SDImageLoader.m in Sources */, - 37B653B4BAD4D59588EDA3D872FBCEFC /* SDImageLoadersManager.m in Sources */, - 6BB87AE4E009ECBDE8D507BDA00B6810 /* SDImageTransformer.m in Sources */, - 27D556E71BF02015E4E6B01749ACB31D /* SDInternalMacros.m in Sources */, - 83E9673775BA0FDBB8FC197A61426861 /* SDMemoryCache.m in Sources */, - 7AA19549B12A020DCD82432CBAE30427 /* SDWeakProxy.m in Sources */, - 1903A0760105E2486B9EAB3AA45257B3 /* SDWebImage-dummy.m in Sources */, - 2B4B0F5722CADFFB78D9DAF97B5BF4AB /* SDWebImageCacheKeyFilter.m in Sources */, - 0F71B4B1E155F99BF17C011EADF71F95 /* SDWebImageCacheSerializer.m in Sources */, - B7E5D975A14EE67EBE9EEEDA62E03FBA /* SDWebImageCompat.m in Sources */, - B1CD2DB19E192179712C064576745A74 /* SDWebImageDefine.m in Sources */, - D8400BA2C1A77AF2653125C0C66AB1E3 /* SDWebImageDownloader.m in Sources */, - FD507DDBA6D51715FF5FDC82F374078E /* SDWebImageDownloaderConfig.m in Sources */, - 764A214486DC26599EDF01D061C2E1DE /* SDWebImageDownloaderDecryptor.m in Sources */, - 6A4316A64CC1FCC9422EFA0CEBB754F4 /* SDWebImageDownloaderOperation.m in Sources */, - B846E213F484806CB8E4F74F2DFA9EFE /* SDWebImageDownloaderRequestModifier.m in Sources */, - 5224E21CD8630A9DD74515EA18739B79 /* SDWebImageDownloaderResponseModifier.m in Sources */, - 1E758825FB8307A4E0FFEF3CD16CEBD7 /* SDWebImageError.m in Sources */, - 6008C8594E2AA2259DA7C27E44AD47AA /* SDWebImageIndicator.m in Sources */, - 51226F634425DCA26735FBC6D5319A9F /* SDWebImageManager.m in Sources */, - 41A5D376FC6FD20F1BE93F098C374242 /* SDWebImageOperation.m in Sources */, - 3ACA20A727BFA6F7488352777B6D0015 /* SDWebImageOptionsProcessor.m in Sources */, - 2FBC3BF80C513F568493D1129256AF49 /* SDWebImagePrefetcher.m in Sources */, - 06C2DCBE28F39C4A651BAE857B1E36CA /* SDWebImageTransition.m in Sources */, - 98522F42D9B3466B2999DD6C9B6E9E87 /* UIButton+WebCache.m in Sources */, - D6E33608F9275BEF1DC53944E502B2C1 /* UIColor+SDHexString.m in Sources */, - B47E3D187CC3C49E085401A8E5663C3B /* UIImage+ExtendedCacheData.m in Sources */, - ADC24851255B750F83E51EB91F110B9D /* UIImage+ForceDecode.m in Sources */, - E06D2DD06570E8A01D5AEDE55D2FD3F8 /* UIImage+GIF.m in Sources */, - EEC9DD1DD8BF3E3B26F112BF4549B6E2 /* UIImage+MemoryCacheCost.m in Sources */, - 49646510A30950028E3B71670EEB7439 /* UIImage+Metadata.m in Sources */, - 281AAC518B477D8402F888A6156C6F10 /* UIImage+MultiFormat.m in Sources */, - 082304C1BACED3CCD06217A48ADA64C9 /* UIImage+Transform.m in Sources */, - BAB0D385B3DBF9F9B4271F46B77F9107 /* UIImageView+HighlightedWebCache.m in Sources */, - 982283A5AC4FEE0303E363644213EE9F /* UIImageView+WebCache.m in Sources */, - 009D17FA056598E9B013B81A52AE4F83 /* UIView+WebCache.m in Sources */, - AF62B6D4FD3FC6994D9BDDEFA0FE91A5 /* UIView+WebCacheOperation.m in Sources */, - 403A6AAA9354BE5A564DE010AAAEF6F7 /* UIView+WebCacheState.m in Sources */, + B38885EBB26FED9673B5405352C93CE9 /* alpha_dec.c in Sources */, + 4A6F2964F297C2A3F4A5D187C4DA8C76 /* alpha_enc.c in Sources */, + 514D3DB18B286DD0F5869019E4184034 /* alpha_processing.c in Sources */, + 753BAB4780145D4FD3E7102F732B1A93 /* alpha_processing_mips_dsp_r2.c in Sources */, + D45B3C5B19F0E4CD3F0DF0AFD71592C2 /* alpha_processing_neon.c in Sources */, + 78C8E87D7106BBCA8EA7C89B608B59F6 /* alpha_processing_sse2.c in Sources */, + 7302081073BB5F70009CCAE3FA849EDB /* alpha_processing_sse41.c in Sources */, + 20457E2CD2C85D05F0E1103073208078 /* analysis_enc.c in Sources */, + F92F0E2EE63DE5B4E9F28F3520245729 /* anim_decode.c in Sources */, + 7ECA113F9E3F371EABDD47DA7458AF8C /* anim_encode.c in Sources */, + 0F2D5DF148EC7E509DA8803303E4D6B0 /* backward_references_cost_enc.c in Sources */, + 73A204F8708E7FE3A157ADEF23C83C6E /* backward_references_enc.c in Sources */, + 5455134C58EA508BC4B4C2F3EA812C04 /* bit_reader_utils.c in Sources */, + 1CF603ECBB53C159F112D436B98F2164 /* bit_writer_utils.c in Sources */, + 6F64E93638A47888B45943CFC35CFC57 /* buffer_dec.c in Sources */, + 40C6547E1BF9D38DAF250AAC9486D97E /* color_cache_utils.c in Sources */, + C4519F3F2E7044EBBFDDB9EDE10F40B6 /* config_enc.c in Sources */, + E1DEBCA4E66E9DAE022DBFE4639E8B27 /* cost.c in Sources */, + F6C7C0A4CA7442704FAEFFD31A9B981C /* cost_enc.c in Sources */, + 6FEF81EACFB8290E4C8D0213007FC4CF /* cost_mips32.c in Sources */, + EBD46A09D2AF1C57BBDB00CBF7D51110 /* cost_mips_dsp_r2.c in Sources */, + E9321CD14430DEA687FC4D9D4890037E /* cost_neon.c in Sources */, + 4BD7EA86C2ABEC23D4BE43CE12BDC1F5 /* cost_sse2.c in Sources */, + 3A4858E0EFCB7326984D3C03F9672C6F /* cpu.c in Sources */, + 485B5F5CCDAEE9F80EBE99D02B17AEAD /* dec.c in Sources */, + 43DCD0A7033099F7F5AEB42423928867 /* dec_clip_tables.c in Sources */, + 2324D454F6A4089B830BD72BBC35411A /* dec_mips32.c in Sources */, + 27D121781BD42F4C5DE18578BB12C74A /* dec_mips_dsp_r2.c in Sources */, + E73324F0702481ABBAAEE654FCC92343 /* dec_msa.c in Sources */, + 2E2536A30BBF28BA8E8B908F6B1B786E /* dec_neon.c in Sources */, + 633F564D1934AF655632B753E13DB7BB /* dec_sse2.c in Sources */, + 5BE3AADFCBDF0EC9A721A12B5BA7F7BD /* dec_sse41.c in Sources */, + 00345A5B548DC8E3DD07540DC32236C5 /* demux.c in Sources */, + C1000310B198CE24E36B2D7B204C29BD /* enc.c in Sources */, + A68865C72552A210385AE93116D82663 /* enc_mips32.c in Sources */, + 5BE284C8540E62459A6546BAC2672F7A /* enc_mips_dsp_r2.c in Sources */, + 3EF8062F5032F38E39BF9663AF5C08C8 /* enc_msa.c in Sources */, + CFBF856DD8047CBB4695FA7A0E3B6D9D /* enc_neon.c in Sources */, + F98C0FF73ED1625FF7A0A9CF93F5113A /* enc_sse2.c in Sources */, + F816C42641A98ADC0559C9E146831FDA /* enc_sse41.c in Sources */, + 6B49D82DA4C3D450785E26F1DB6DA45E /* filter_enc.c in Sources */, + C9208B35E8B25A8E183E0B2BD2D22338 /* filters.c in Sources */, + DFC8844C2ED83658A5E36EF1E22AE837 /* filters_mips_dsp_r2.c in Sources */, + ABBAABCB6652CED048083FF2C67F1447 /* filters_msa.c in Sources */, + A9B2532EBDF8BCFE64D39A9E985FD640 /* filters_neon.c in Sources */, + 2CD337A735536426E53122DD7B9E1A8E /* filters_sse2.c in Sources */, + 208BEDB36FB621C1B663E1C0FC7C1C70 /* filters_utils.c in Sources */, + 21B18C7766AC0DB87C15056676C5D216 /* frame_dec.c in Sources */, + 0CC2B0AC0C555D6A6C4A411A082C96F1 /* frame_enc.c in Sources */, + 03FF888D16C5484DDD1C3ED4A233043C /* histogram_enc.c in Sources */, + EED50F1A1A7B63A59CC1282D44F6F002 /* huffman_encode_utils.c in Sources */, + 2E6EFA9423F2E284B5463C5A6E51F328 /* huffman_utils.c in Sources */, + B2D2F4D2DD6ADA11BF2CB12B759784FB /* idec_dec.c in Sources */, + 28633A871EEF62935F2466AEC155E680 /* io_dec.c in Sources */, + 06E0D3305D7A3F345F208F6B33F570D9 /* iterator_enc.c in Sources */, + D9E4D2D075008EA8CD81B3970254C26B /* libwebp-dummy.m in Sources */, + A9F71C1FA433B0D5A1001A75D559458D /* lossless.c in Sources */, + 77BE4DB71EE170C2EAFFB6BA48797ADA /* lossless_enc.c in Sources */, + 7BF691BF1588EE33E3BF4269C6874E7F /* lossless_enc_mips32.c in Sources */, + 3908B5511F772908C860F6C5DF670946 /* lossless_enc_mips_dsp_r2.c in Sources */, + 1E7A2784DC4E0347AB6BFA4BB92AFBBC /* lossless_enc_msa.c in Sources */, + 1774A298FAFA92BC78E66AC99E59F872 /* lossless_enc_neon.c in Sources */, + 29BA83CA355176B8A2D866426610ABD3 /* lossless_enc_sse2.c in Sources */, + D89AE04754C8E43F07F55412DA18A10F /* lossless_enc_sse41.c in Sources */, + 32027080638708E21A2637CCC12C9483 /* lossless_mips_dsp_r2.c in Sources */, + 0C8086E24034EA24585A0BF2035871F8 /* lossless_msa.c in Sources */, + 6E7883A08CD5E58BBA3D50FA6E30018C /* lossless_neon.c in Sources */, + E327A1FA94610F5FDC1F8DFD07B88198 /* lossless_sse2.c in Sources */, + BDCB50151900EABD7B7F605A2221E6A6 /* lossless_sse41.c in Sources */, + DD2D1DD4464714F133AFA38BF82479B1 /* muxedit.c in Sources */, + CA317E37A91E64AB44A9B1DCD28EAD0F /* muxinternal.c in Sources */, + 0F503BFAD47E6DECA1487D8633D3AC18 /* muxread.c in Sources */, + 6B3E8858A02F2EEB75982ACD5A74F784 /* near_lossless_enc.c in Sources */, + C2331726B6F1BD9CB60DF670990C922D /* palette.c in Sources */, + 8F0A90DEBA76FB530A13FADAC068D1FD /* picture_csp_enc.c in Sources */, + 75EC55920863EB9A75494F58C0027C1F /* picture_enc.c in Sources */, + 1E7E7FD4804A0853A98EB2B394F6EFE8 /* picture_psnr_enc.c in Sources */, + 4A76784AD10E5500AA2812FEB89E6A37 /* picture_rescale_enc.c in Sources */, + 53F9A20C73728D6285A2A2D4BA5634FA /* picture_tools_enc.c in Sources */, + 98CC12887D688588D3FF359BD3327FC5 /* predictor_enc.c in Sources */, + 8B8BB366CCF5D7D783BD63CDEF2D556C /* quant_dec.c in Sources */, + 39EC1C028111A45D156D0CF831CE54DA /* quant_enc.c in Sources */, + 306C9FB5F02CE7B2CEE3B834AFE69B76 /* quant_levels_dec_utils.c in Sources */, + 66DE3FE81338DA9C06C4DDBAE425037E /* quant_levels_utils.c in Sources */, + 87673702A8D8F8E5231C9EE9F443BB9E /* random_utils.c in Sources */, + EF0D3A3BDDCD147B529637209714908E /* rescaler.c in Sources */, + 3BE893FD17F3456A7AEA7DCEB655972E /* rescaler_mips32.c in Sources */, + D6443D7EE6A15E89BEC02695743A0498 /* rescaler_mips_dsp_r2.c in Sources */, + C98125F6BAEE14BCDC62707C78A3EEB3 /* rescaler_msa.c in Sources */, + 90144D396A77EE2730B9637CE86B6C9D /* rescaler_neon.c in Sources */, + E2314C741690AB22910179863B119B6C /* rescaler_sse2.c in Sources */, + 4DFA6C0293B2E2B592B1B4C49E30DD27 /* rescaler_utils.c in Sources */, + CBE2D64D46706FE4863E094E61A98148 /* sharpyuv.c in Sources */, + 5093F74339B8ED2C597067E7037A8919 /* sharpyuv_cpu.c in Sources */, + DD81BA414257A9E0B656780275E1EA0C /* sharpyuv_csp.c in Sources */, + E7F453CBE1650D82A1BE7816D353C39F /* sharpyuv_dsp.c in Sources */, + 8147F7BD9427E1F098DB119B28A5A471 /* sharpyuv_gamma.c in Sources */, + AC66653C82A16808314C853AFB0F3121 /* sharpyuv_neon.c in Sources */, + 20178306661E1BEF7B96CDC1FAC1FB4F /* sharpyuv_sse2.c in Sources */, + B59920B2AF5F01CF2A7189DBCD50B512 /* ssim.c in Sources */, + 184854BDED0C9D6456E0DAB1A8315A87 /* ssim_sse2.c in Sources */, + 46F78953386C12D843D0889F6C9E63D0 /* syntax_enc.c in Sources */, + 04228F05F836E7E0C6809341F18409F8 /* thread_utils.c in Sources */, + DD9CA23E5F01C70B3FBB981941A9024A /* token_enc.c in Sources */, + F321BB2CC17C06BAE8B8E4ADEFB3CAF6 /* tree_dec.c in Sources */, + 4E7B49A5C1D207415A4FFED77174D298 /* tree_enc.c in Sources */, + 10EFBA3D9D9CD9F4FCF6E67989F37640 /* upsampling.c in Sources */, + A9C9D83007FC719DEC2B09C3A3C7516D /* upsampling_mips_dsp_r2.c in Sources */, + 74AA724E12CE5E78D796C3D18B4F81D0 /* upsampling_msa.c in Sources */, + B6B0AD7C9E10927FE301E67352E3DC21 /* upsampling_neon.c in Sources */, + E4FE51F0868EA5D8755ECC0637297462 /* upsampling_sse2.c in Sources */, + 8216CA9FBCBD7F6E477BA8CDE5C89B86 /* upsampling_sse41.c in Sources */, + BBC531D8F4D7B804AAC8C7805052C8E0 /* utils.c in Sources */, + 6FD7C5AF4A486D9E525511FE07CAF8B7 /* vp8_dec.c in Sources */, + 4245F36EC533087433201DF8F2956E4B /* vp8l_dec.c in Sources */, + 6239BB475D99E1C8B765A85E51F458E1 /* vp8l_enc.c in Sources */, + E4925DABB4009B6B908F6589BA4286C1 /* webp_dec.c in Sources */, + 2DBC4BB68901CAE949C825BC6494261A /* webp_enc.c in Sources */, + C3B32B348C3D905678130E8A4E68379C /* yuv.c in Sources */, + 3D2D443511029427C36EF9E477D8D76F /* yuv_mips32.c in Sources */, + 98D89E51CF701AABB4D70B9F0F76FF66 /* yuv_mips_dsp_r2.c in Sources */, + 8EE5E1E0F23A80F01AD7813021D26775 /* yuv_neon.c in Sources */, + 9D9E4EC76B429D267BCC7907727B2436 /* yuv_sse2.c in Sources */, + 68BF13B636A783D4FE92044AD40637D4 /* yuv_sse41.c in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -16137,6 +17467,13 @@ ); runOnlyForDeploymentPostprocessing = 0; }; + 0D4FE37554C5D3677C048557E7EE6A06 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; 0D7D4048DD0DBB804011463AD91B7547 /* Sources */ = { isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; @@ -16175,13 +17512,100 @@ ); runOnlyForDeploymentPostprocessing = 0; }; - 10ED9B992BA227505B80947F8A8A25ED /* Sources */ = { + 162291A430ED00568C8529152FED9D3A /* Sources */ = { isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; files = ( ); runOnlyForDeploymentPostprocessing = 0; }; + 1969BF3DE69F4EF499104FEB18EA081B /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 19CDFCAAAFB03AFC0E824AAE4E555A8C /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 4509D5616BCBACC1F5798EC63412A13B /* NSBezierPath+SDRoundedCorners.m in Sources */, + 19C113E078F6504608AF32089C60D9D3 /* NSButton+WebCache.m in Sources */, + 4D0C286F6CB54066F4AFDFC6DD34ED2B /* NSData+ImageContentType.m in Sources */, + 736C021BF1B69ED50AB6A3C7B441E707 /* NSImage+Compatibility.m in Sources */, + 9B687A9373746BF17EDBEE0400BA1903 /* SDAnimatedImage.m in Sources */, + 78B9C81C32C187933D2D47C5ADB67B12 /* SDAnimatedImagePlayer.m in Sources */, + 6BBA934D523E97B9F3288060F353A9F9 /* SDAnimatedImageRep.m in Sources */, + B66AE656B760A57B2E8E526B998485D3 /* SDAnimatedImageView.m in Sources */, + 35495E4162F16743E4C9794AB114B8A8 /* SDAnimatedImageView+WebCache.m in Sources */, + 627C428536FDE6CDF58F5676D7256A03 /* SDAssociatedObject.m in Sources */, + 5A7CCDEA9EF360782F375A38932833A6 /* SDAsyncBlockOperation.m in Sources */, + 92A1F6C31A0DB18F5BD21A0C245C6813 /* SDCallbackQueue.m in Sources */, + 26F1CAC56EB5D4852ECA337EDC4B237B /* SDDeviceHelper.m in Sources */, + 6BE5013D32EF4E1BD43C55E6A8761F7C /* SDDiskCache.m in Sources */, + ED9D42B2930C719E5024B52682ED0789 /* SDDisplayLink.m in Sources */, + 779682F851CC03633ABFFBA0E8D0EB4F /* SDFileAttributeHelper.m in Sources */, + 331BEB926B46CE13F35535BC53AACEEF /* SDGraphicsImageRenderer.m in Sources */, + B944926565AB468585AE5DDA990ED8C0 /* SDImageAPNGCoder.m in Sources */, + 894144E5A329C4B8EFD207DE8C39C2D7 /* SDImageAssetManager.m in Sources */, + C93B810C1BD066C657F92F5D7C0259A5 /* SDImageAWebPCoder.m in Sources */, + 8989CDE99F6192BC43ECB974BFEAD709 /* SDImageCache.m in Sources */, + 88CAF624D333D3028E6B002A13FE4130 /* SDImageCacheConfig.m in Sources */, + F0D692D34694E2F94D6BBC8C2E5F724A /* SDImageCacheDefine.m in Sources */, + 83B8FD83CDDC4DDB8C30C1A4CE689EDF /* SDImageCachesManager.m in Sources */, + 828D37CD5222A35EEC430A007FF0296D /* SDImageCachesManagerOperation.m in Sources */, + FF37ADC82AF415499378A8618E43C9D3 /* SDImageCoder.m in Sources */, + 6AECCF84CDE47BA91E241CF7E1BC63DC /* SDImageCoderHelper.m in Sources */, + CD6FC480BC8A2D31541403F2009C048D /* SDImageCodersManager.m in Sources */, + F5B66E8046316AC9118A90DDFB0E7014 /* SDImageFrame.m in Sources */, + C015B61E5D792F05226D81D64D69FFAE /* SDImageFramePool.m in Sources */, + 88BEA37AB338316CB588313BCD2C9F56 /* SDImageGIFCoder.m in Sources */, + AEDFE2F717DB7D2664BFAD5F1368FBCE /* SDImageGraphics.m in Sources */, + 3D6265E77CB847CEAEFDFFC230E2E589 /* SDImageHEICCoder.m in Sources */, + 06B034A8AFB8F0E0EB5FB8E502DDB584 /* SDImageIOAnimatedCoder.m in Sources */, + 573EC3884AF3818998A6B2014DD2D845 /* SDImageIOCoder.m in Sources */, + E834A633EB29B25DAE5D9280DEE8F82E /* SDImageLoader.m in Sources */, + 2119E866324CBCDC3F7FBF172EFAA7B1 /* SDImageLoadersManager.m in Sources */, + F0EC2840D29CF34032070BBF07CA3020 /* SDImageTransformer.m in Sources */, + 7D474DE580BC95C375FCFE838E18C18D /* SDInternalMacros.m in Sources */, + C48171E855EFC5FAC19737F709B753FA /* SDMemoryCache.m in Sources */, + 0AF57A4BD4A6B4007E6FD97574A82A96 /* SDWeakProxy.m in Sources */, + 0F5F90CC4FE29470EB1B96247BE2010F /* SDWebImage-dummy.m in Sources */, + 9F9F09EC77469B710932299D23D3AB0D /* SDWebImageCacheKeyFilter.m in Sources */, + 04DA9B183DBDD000F079CBCC78BC8DBD /* SDWebImageCacheSerializer.m in Sources */, + D6DE7937F20ECC267730FE9A0ADFFFB8 /* SDWebImageCompat.m in Sources */, + B0B19262D8D8C50EDA69F1BC57824DE8 /* SDWebImageDefine.m in Sources */, + BF2A55DDFD93A444919121487E00D070 /* SDWebImageDownloader.m in Sources */, + 4FA119DF461BADA8EBC6BBB9592FBBC3 /* SDWebImageDownloaderConfig.m in Sources */, + A76446BBD07801DDA6DED159B4DD48A5 /* SDWebImageDownloaderDecryptor.m in Sources */, + 84C8A618ED329B0D8D6BFE1EF0282631 /* SDWebImageDownloaderOperation.m in Sources */, + 6966C657096D926138408396AFF803BC /* SDWebImageDownloaderRequestModifier.m in Sources */, + BA4B082C97EBEBF8460ECAA73FE9CF7D /* SDWebImageDownloaderResponseModifier.m in Sources */, + 6FE816BA0121CA266A00B3E7D039704A /* SDWebImageError.m in Sources */, + 5C7CCD0361B588E3157821FF7EF6F35B /* SDWebImageIndicator.m in Sources */, + B1D690C99DED873AF5547AF9D075D9CD /* SDWebImageManager.m in Sources */, + 24F4D1D56320CDA5B059665B0A21B8BF /* SDWebImageOperation.m in Sources */, + 71A2319149C6FB9385A5D576E22193BF /* SDWebImageOptionsProcessor.m in Sources */, + C48BD253390E2A3DEC682449B5FAAEF6 /* SDWebImagePrefetcher.m in Sources */, + 2B3E5C42810FCE4769ABB7FB948B5408 /* SDWebImageTransition.m in Sources */, + 5189C7462F13D3C4623EACB225F11906 /* UIButton+WebCache.m in Sources */, + B37AD0C8EFB02339F184D8B0FBF5A986 /* UIColor+SDHexString.m in Sources */, + D6A1CA833E7F300E22EEBF4415A1F907 /* UIImage+ExtendedCacheData.m in Sources */, + 4C56F7AF9878AFF95DAC8F80BC61D4EE /* UIImage+ForceDecode.m in Sources */, + D3A409349A18419F70039B5B20428B17 /* UIImage+GIF.m in Sources */, + D46BE3CAA7C6074F29E49030C4CC1CCC /* UIImage+MemoryCacheCost.m in Sources */, + 8F328AF7CF51A48B354D03439BD9738F /* UIImage+Metadata.m in Sources */, + 655CDE9DECD35A571DC6E6311DDA9D6E /* UIImage+MultiFormat.m in Sources */, + 80F0AD05B7A7033FA782E811A22AFDA5 /* UIImage+Transform.m in Sources */, + DC3DADEFCFAEE070182679C2CDDEA282 /* UIImageView+HighlightedWebCache.m in Sources */, + 341C7DA0D7C8F40C3B9927046FF87DC5 /* UIImageView+WebCache.m in Sources */, + 69F66E539C7611F1602ED11D183B04FA /* UIView+WebCache.m in Sources */, + C9F1E874CACA8E00BE7BCF27AE20FA28 /* UIView+WebCacheOperation.m in Sources */, + 6A633798C2E809315C6B0A370B54F4B8 /* UIView+WebCacheState.m in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; 1E8EA850953728933801A27B24429238 /* Sources */ = { isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; @@ -16217,6 +17641,14 @@ ); runOnlyForDeploymentPostprocessing = 0; }; + 28A36354F1D8CAE31502D822EAF861F3 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + EC56A2C636E183484368C9530AD96873 /* Pods-QXLiveDev-dummy.m in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; 2E063B73E5D1C7B78F48F4BC01E3D98D /* Sources */ = { isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; @@ -16243,36 +17675,54 @@ ); runOnlyForDeploymentPostprocessing = 0; }; - 32E47C4C90933E2C42C7AB70E467717B /* Sources */ = { + 376C58E669F87A243D9C6A162C9AEDC6 /* Sources */ = { isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; files = ( - ); - runOnlyForDeploymentPostprocessing = 0; - }; - 33D3453AF917CDFB250D51B03EA44A29 /* Sources */ = { - isa = PBXSourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - E7501698D047E7A24E21AAD6A9AB192F /* NSDictionary+TUISafe.m in Sources */, - D3BBE0DBD610BF753DFCC37348B3DB31 /* NSString+TUIUtil.m in Sources */, - 261F2F49BE560E275D3C03FD48C7F13C /* OfflinePushExtBusinessInfo.m in Sources */, - 64C810322128A0A80D156EEF3A01D2B8 /* OfflinePushExtConfigInfo.m in Sources */, - 01BDBBF1657820AB1883A41F1D317790 /* OfflinePushExtInfo.m in Sources */, - 6EBDAAC37ECF5FD96EA5BCE641618A87 /* TUICommonModel.m in Sources */, - 6E9768DE32522A9BDAE652A71CB0339D /* TUIConfig.m in Sources */, - ED5ED77D9BD48798DCA60CBA7EFFADC6 /* TUICore.m in Sources */, - C3F72653DB26C2241719B4186E0F7838 /* TUICore-dummy.m in Sources */, - 86F49BC4F7AE18697C2E48352004703B /* TUIDarkModel.m in Sources */, - CB31465DAD412DA0D7B7A8C6E316E05B /* TUIGlobalization.m in Sources */, - 5BC0B1DC5456A78F7CEDE5F1080F83A3 /* TUILogin.m in Sources */, - 506FC884318A57CC927092553C2A7C85 /* TUIThemeManager.m in Sources */, - F499390AC09F53E63C5B03920EB2454C /* TUITool.m in Sources */, - 88A6B3696943C988A1A0A1FE652A14E5 /* TUIWeakProxy.m in Sources */, - 2971489959C0056C86916FC502E3D851 /* UIColor+TUIHexColor.m in Sources */, - 6A9A1609CBC92AB647705495D3B43406 /* UIView+TUILayout.m in Sources */, - 4AF963104FA28596E23535551D37E42A /* UIView+TUIToast.m in Sources */, - AFDF645683D9FE5419BE6CC469A05125 /* UIView+TUIUtil.m in Sources */, + F722D239DE679AF0F954CB8851E41947 /* NSString+RegularExpressionCategory.m in Sources */, + B849E98A7F0418DD1EC781B1A4251B36 /* QCloudAbortMultipfartUploadRequest.m in Sources */, + 8E37D173AEB8FF8ECCA4028F0F8C0788 /* QCloudAbstractRequest+Quality.m in Sources */, + 1ED89740B89EDD77218FC43513F375F6 /* QCloudAppendObjectRequest.m in Sources */, + FD7BEA20AF6E50298AD19A071B673593 /* QCloudBizHTTPRequest+COSXML.m in Sources */, + 41C1B8A8080B53028E5B40176081C73B /* QCloudCompleteMultipartUploadInfo.m in Sources */, + 0CE68F238ABAADB6878BC527B88051B2 /* QCloudCompleteMultipartUploadRequest.m in Sources */, + 2DDF3CEDB408861B01CE914C5D13E789 /* QCloudCopyObjectResult.m in Sources */, + DABF57A5B53FA45117B631F980CDF867 /* QCloudCOSStorageClassEnum.m in Sources */, + E680FD6B25C3AA602215FCB100BDE02C /* QCloudCOSTransferMangerService.m in Sources */, + E37B65C3196913E9D089113CD11CA68E /* QCloudCOSXML-dummy.m in Sources */, + CE6020CF5752BF13A6606167415ED2D6 /* QCloudCOSXMLCopyObjectRequest.m in Sources */, + A61051FD5085BE911E11C29BA0767073 /* QCloudCOSXMLDownloadObjectRequest.m in Sources */, + 483BBAE65CFE0E6411AB0C23156078D7 /* QCloudCOSXMLEndPoint.m in Sources */, + A903401014698F66E1973C62DB4EE14E /* QCloudCOSXMLService.m in Sources */, + 9DE2B9009A83398F51894B2343CF1398 /* QCloudCOSXMLService+Configuration.m in Sources */, + 12FBA667A51EE9A44E03CCA23B297236 /* QCloudCOSXMLService+Quality.m in Sources */, + 726A9E27FE628AF66FEAFB214BA85BBF /* QCloudCOSXMLService+Transfer.m in Sources */, + 7B73CB919AA0330591FFD0DF1B8770C2 /* QCloudCOSXMLServiceUtilities.m in Sources */, + AEB1970A9F2E8A1E79D5789766B5D746 /* QCloudCOSXMLUploadObjectRequest.m in Sources */, + F53DFF249079BF1CEA457F97180940C6 /* QCloudCOSXMLVersion.m in Sources */, + C518F3630293F83E0E4207E1C8EFC583 /* QCloudGetObjectRequest.m in Sources */, + B4CB2561C7A397ECD36C1A8B38EF1FEE /* QCloudGetObjectRequest+Custom.m in Sources */, + A2A1EC90455B7E81F29318699D701A96 /* QCloudHeadObjectRequest.m in Sources */, + 12FC1AF5259F03D79E04DBEAF8693D36 /* QCloudInitiateMultipartUploadRequest.m in Sources */, + FB3159EBD1B38EE74CD17CE8D463A435 /* QCloudInitiateMultipartUploadResult.m in Sources */, + 218D200739200D1CEF369D4CC9439808 /* QCloudListMultipartRequest.m in Sources */, + F42EBEE5DF8456CF7DDC6F2A3B622B37 /* QCloudListPartsResult.m in Sources */, + C68E31E1034EE93D215197020FDACDFD /* QCloudLogManager.m in Sources */, + 3E2841C054E01396AC8172C0ECF48F8E /* QCloudMultipartInfo.m in Sources */, + 7F486EA29353E26957AE695D167A941C /* QCloudMultipartUploadInitiator.m in Sources */, + EEE1520B078C0324661D921CD09ED5CA /* QCloudMultipartUploadOwner.m in Sources */, + 523B6A238431B685597E214FD554FFED /* QCloudMultipartUploadPart.m in Sources */, + E9C7E961F1A373E6CBF9CCAE5C10FAAE /* QCloudPutObjectCopyRequest.m in Sources */, + EE25B4D305D1DB3AB90F651027308F63 /* QCloudPutObjectRequest.m in Sources */, + DE3EACA2934D11E2DFEF31F2244B4E0C /* QCloudPutObjectRequest+Custom.m in Sources */, + 2017B51D3FD025A213FD8964EE2D4828 /* QCloudPutObjectRequest+CustomBuild.m in Sources */, + 825FD86CB211540B93698388809AEAB8 /* QCloudRequestData+COSXML.m in Sources */, + C53CB91443D0025A48F975D083702845 /* QCloudRequestData+COSXMLVersion.m in Sources */, + A8C015843661CCFAB75E09249E383989 /* QCloudUploadObjectResult.m in Sources */, + 9237513CA09A59EE8F568570DBAE5848 /* QCloudUploadPartCopyRequest.m in Sources */, + DD9F71083FFD7FB379C31F8D3842D4E5 /* QCloudUploadPartRequest.m in Sources */, + E0A5AFDFE9F97FA55A692B799AEB5F67 /* QCloudUploadPartRequest+Custom.m in Sources */, + 50904B7D79655D791D8B00B1D5442AC0 /* QCloudUploadPartResult.m in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -16297,6 +17747,46 @@ ); runOnlyForDeploymentPostprocessing = 0; }; + 4523A24A2D323575CE871CCE31BF6695 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 4DA435ED91ACA61165DB82F7428E3574 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + E42F742943BE7C91996D7423B72188D5 /* NSDictionary+TUISafe.m in Sources */, + 8A02EC3931014967AD028122101662D3 /* NSString+TUIUtil.m in Sources */, + 7A9DFE84BCFA04853C75BD52962BFEB2 /* OfflinePushExtBusinessInfo.m in Sources */, + 3932941B7E0E393205EE07EC3D10A258 /* OfflinePushExtConfigInfo.m in Sources */, + C4E30CD02EF74AB9B105196CAEA5480B /* OfflinePushExtInfo.m in Sources */, + DBBF87F6A2EA5A2B1EB7C39AFD2ED326 /* TUICommonModel.m in Sources */, + 4EB5270F18F95C75648C0307F6EE1508 /* TUIConfig.m in Sources */, + D9EB61DAC0CCA13484E7E60F7B180CDF /* TUICore.m in Sources */, + 980563CFDCB4DCC78ADD0ADAA6F1B266 /* TUICore-dummy.m in Sources */, + 7D70F003693D51DA590B150D7F30DD92 /* TUIDarkModel.m in Sources */, + D51C0531CDC53CADBB8BDE3039C500C6 /* TUIGlobalization.m in Sources */, + 9D3B92F0D94D925112147BA2B5989D52 /* TUILogin.m in Sources */, + 6CDF8868E74A81F2E65AC1D71D1BA83F /* TUIThemeManager.m in Sources */, + E1169D91467B115F726B8C3F7F372BC9 /* TUITool.m in Sources */, + 700FA5A022E904AAAC9AE7433005CC9E /* TUIWeakProxy.m in Sources */, + 093AF0B4A65FFDCAF7FA05D926A5FBAB /* UIColor+TUIHexColor.m in Sources */, + 5C9E532874E0E1FD615C302B7C55EA7D /* UIView+TUILayout.m in Sources */, + 9167A6D3D0979512821CBED5B7E80CDE /* UIView+TUIToast.m in Sources */, + 2F5B6ADA86518392F043E7F2E03EDC4A /* UIView+TUIUtil.m in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 4ED1CB6E8F44A93C3B3DEDA28776435E /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; 51734856874874E0CCB9EFBBA0B96F3F /* Sources */ = { isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; @@ -16441,13 +17931,6 @@ ); runOnlyForDeploymentPostprocessing = 0; }; - 57E36F5CA4715A33259C8EAB67CA110F /* Sources */ = { - isa = PBXSourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - runOnlyForDeploymentPostprocessing = 0; - }; 58DDDF246CE81A513A93B0A5955C735E /* Sources */ = { isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; @@ -16707,17 +18190,131 @@ ); runOnlyForDeploymentPostprocessing = 0; }; - 74F1AA39F89BE393E18B4C3744BA4CFB /* Sources */ = { + 737F779A512D3C81EEF3633C638B97C5 /* Sources */ = { isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; files = ( ); runOnlyForDeploymentPostprocessing = 0; }; - 754A2E979481CD144BDC425E95BDB98B /* Sources */ = { + 769591C34016F3C6CCA9DB2B51CE520A /* Sources */ = { isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; files = ( + AE484489CB26D8B326EA5876CFB32F8C /* NSDate+QCLOUD.m in Sources */, + 7C3443D8CCEBB91F3CE43BB19927A73E /* NSDate+QCloudComapre.m in Sources */, + 06309CC6E70311DEDC6A0C3ABBBF87D9 /* NSDate+QCloudInternetDateTime.m in Sources */, + 1B987F2F6A7E8E26E65DB160059FC9B4 /* NSError+QCloudNetworking.m in Sources */, + 3C40BD851654FC3410B06F3884C64CCE /* NSHTTPCookie+QCloudNetworking.m in Sources */, + 56CA0120C203D3FB78ECD1538B417D83 /* NSMutableData+QCloud_CRC.m in Sources */, + EAF653886E9D67BC1008F9CF841B3847 /* NSObject+HTTPHeadersContainer.m in Sources */, + 463244BCC6849C407D1178E87E974FE3 /* NSObject+QCloudModel.m in Sources */, + 676E5598F38CC0C3EC7C858CBDEA3805 /* NSObject+QCloudModelTool.m in Sources */, + C48AD412B798AFB17088E9121E00DFCD /* NSString+QCloudSHA.mm in Sources */, + CAE200584D8C0794A6D61DE008EDB10B /* NSURLRequest+COS.m in Sources */, + A32C1CB2C8090B1CDBD60A3F269E6291 /* QCloudAbstractRequest.m in Sources */, + F7E940FF1267B88A296DBACCAE38249A /* QCloudAuthentationCreator.m in Sources */, + 264D6589824C0F46BBA090CBB223632D /* QCloudAuthentationV4Creator.mm in Sources */, + 675CA4D3EA2E131017A0AE8FBD282FC0 /* QCloudAuthentationV5Creator.m in Sources */, + 4DEBB258BC46688834120D211CE0CD70 /* QCloudBizHTTPRequest.m in Sources */, + D1964F4232AAB4475D9EF6604CE07AB5 /* QCloudBundlePath.m in Sources */, + 9D5A04CAF690C446B6473161B152AB1A /* QCloudClassInfo.m in Sources */, + 2B7826A107770D56D65CCC5F356F702D /* QCloudClientContext.m in Sources */, + 4F44379331638A3F184CFC4CA824EB80 /* QCloudCLSLoggerOutput.m in Sources */, + 7D60D1C5C5458F03C876E7B576E8E55B /* QCloudConfiguration.m in Sources */, + 70815FC79FDB744FFF97A06395448785 /* QCloudCore-dummy.m in Sources */, + 26253C143769404AB816F115EAB4E0BB /* QCloudCoreVersion.m in Sources */, + AFE80E5E82C7D7C65593001FE4874C94 /* QCloudCRC64.c in Sources */, + B2C0455A954995524725927DB7821E85 /* QCloudCredentailFenceQueue.m in Sources */, + F2B8677DF24EDA65C239AFE2496C36B1 /* QCloudCredential.m in Sources */, + B1FC04DAB11A3F5FCBE161B609DE4B3D /* QCloudCustomLoaderTask.m in Sources */, + C52F4CFFB078B8A701A768BF047E2D60 /* QCloudCustomLoggerOutput.m in Sources */, + 6A302204CCB4D93E8652FA6DF6452398 /* QCloudCustomSession.m in Sources */, + 36B1C34DE39F5A7C356552FF38B65528 /* QCloudDomain.m in Sources */, + 02B99127BAED5C8686EEAE82447F697D /* QCloudEncryt.mm in Sources */, + B1DB55B7550449F4EC83E21DF46CD7F8 /* QCloudEndPoint.m in Sources */, + 26864C3A7069851582B5EC7A80F1B991 /* QCloudEnv.m in Sources */, + 0578DCDC4D372FC2891B10CF99316202 /* QCloudError.m in Sources */, + 292A3396ACC110FF8CC96FB0F18523E4 /* QCloudFakeRequestOperation.m in Sources */, + 67202448C80DCC66D4049CE81A261D20 /* QCloudFCUUID.m in Sources */, + 79E6A6FC42C2A50CEE4CB36B5EA0D0D2 /* QCloudFileLogger.m in Sources */, + 8D5ADF0C4F778250335502B86D50AEC3 /* QCloudFileOffsetBody.m in Sources */, + C9015AE4C9EE9D5BC77A83669033624C /* QCloudFileOffsetStream.m in Sources */, + 0B44789CD43ABF50D32D1DD80E7019EB /* QCloudFileUtils.m in Sources */, + D6519183F44ADB60997B301834F04D40 /* QCloudFileZipper.m in Sources */, + B7B92A481B566A1189A28A49F21FCA67 /* QCloudGCDTimer.m in Sources */, + CBACBCFE836FEADE2C187DA67B0439BF /* QCloudHosts.m in Sources */, + EB51356E2301A289B78569FD68BD7887 /* QCloudHTTPBodyPart.m in Sources */, + D22BB080462F464AD8C0DE36F9591D6F /* QCloudHttpDNS.m in Sources */, + 91CA8BFAA373E443FDE4906DD9877D84 /* QCloudHttpMetrics.m in Sources */, + 51026C74401CF5C32D128CEE06FC2975 /* QCloudHTTPMultiDataStream.m in Sources */, + C84B78CB98146FA6F37F6E885B1008B5 /* QCloudHTTPRequest.m in Sources */, + FE1BAEFA244A1BC1D665D253C0D2CEF6 /* QCloudHTTPRequestOperation.m in Sources */, + 9EDFD8CCB090927F7D03EC4DE86FB27F /* QCloudHTTPRetryHanlder.m in Sources */, + 81097748862C2AE658E35C951125B3DB /* QCloudHTTPSessionManager.m in Sources */, + 91CD10FBD253F19CA2D63B8D465F0767 /* QCloudHTTPTaskDelayManager.m in Sources */, + C19E66B928E9ECD90CDCA1CE4D296880 /* QCloudIntelligenceTimeOutAdapter.m in Sources */, + 5ACFF0305272F8D4589AD1D8FB889D2C /* QCloudLoaderManager.m in Sources */, + 82A1FBE72AB977764F33FB333B2FA2AE /* QCloudLogger.m in Sources */, + 5E28C60AE91FADDC0B11C38D4519D073 /* QCloudLoggerOutput.m in Sources */, + DCD8FC989F817A0861574B55DCBF8FDE /* QCloudLogModel.m in Sources */, + F5AB770569E93346F35765953DB91C83 /* QCloudMainBundle.m in Sources */, + B8033ED03DE7D7EB785A2E16A29F1E45 /* QCloudMediaPath.m in Sources */, + 2EF6B6DB15FF65EA643A5C16890D5827 /* QCloudModel.m in Sources */, + 81608BB30CB47A42E441941CC1650FC3 /* QCloudMultiDelegateProxy.m in Sources */, + 69CD1179D1B059FF0689FC46AC24DB7F /* QCloudNetEnv.m in Sources */, + CA969D78DF1470FD1D125F932E7A3C20 /* QCloudNetProfile.m in Sources */, + 2D00040687DD499A5EA73FB89BBCF559 /* QCloudNetResponse.m in Sources */, + 79C800901BA07EACDEE0885D9668670A /* QCloudOperationQueue.m in Sources */, + 47BA6AF3FC0322EF22638A335C527C51 /* QCloudPingTester.m in Sources */, + 15317734C31679B7AFFE227683833769 /* QCloudProgrameDefines.m in Sources */, + B12D095947E105B66A64F1F3C81CD495 /* QCloudReachability.m in Sources */, + 72FAF4A4B46F576A71DA02698201BB66 /* QCloudRequestData.m in Sources */, + 19FFEF3C65FFDF37B24E2997783F8A91 /* QCloudRequestOperation.m in Sources */, + B11D69C8EC231599BD64D86066EBA31D /* QCloudRequestSerializer.m in Sources */, + DCBD59543F4FF13EC5DD8F0D5B1EEADB /* QCloudResponseSerializer.m in Sources */, + BC5C6F9B985EDE983548FD63D7A650F7 /* QCloudSandboxPath.m in Sources */, + C929CEFCE6054964CEDD1180C72C300F /* QCloudSDKModuleManager.m in Sources */, + 0E039D3B4C08F9B0208B997A4C925937 /* QCloudService.m in Sources */, + 7D3AEAF43EC8A509B2110FD1B7768119 /* QCloudServiceConfiguration.m in Sources */, + 608B9353328B129D37B87A64DAE971A5 /* QCloudServiceConfiguration+Quality.m in Sources */, + 0A5DA4F69A145D63C10D667C1410245E /* QCloudSHAPart.m in Sources */, + B703222F1E24985123B3AAEC0A0624C2 /* QCloudSignature.m in Sources */, + 72BA548A669602BC74B7343EA578B093 /* QCloudSignatureFields.m in Sources */, + F27A1770FE0B3EFCC00419ECD21190E0 /* QCloudSimplePing.m in Sources */, + 27391513B13C7BD84784DD548AF04B5A /* QCloudSupervisory.m in Sources */, + 942D6E9F1D1DFB7F64D83EBFC3BA912B /* QCloudSupervisoryRecord.m in Sources */, + AAEB1E829AAA33B5EC656D766E89B767 /* QCloudSupervisorySession.m in Sources */, + 8CCBBA20C7280AF9D8486F2C51A7F830 /* QCloudThreadSafeMutableDictionary.m in Sources */, + A09FFE389B050F8157742F7E34BE9C41 /* QCloudUICKeyChainStore.m in Sources */, + 44F56BFDB1BD2792727E542BF5D24ADD /* QCloudUniversalAdjustablePath.m in Sources */, + 4A616B361623FDB0D094D1B02D73DBC4 /* QCloudUniversalFixedPath.m in Sources */, + 17F4D68ACF34607576312AF772CE41BE /* QCloudUniversalPath.m in Sources */, + 7E4C2F2687D9FE014E75B65EB6984F86 /* QCloudUniversalPathFactory.m in Sources */, + 207767E3C84AFE84909E4E5B68D83361 /* QCloudUploadPartRequestRetryHandler.m in Sources */, + 561E0098F1FDB77F38A0EFEF6B64E53B /* QCloudURLHelper.m in Sources */, + A0C4DC20A0B5362E0E3E7DFB5A26F86E /* QCloudURLSessionTaskData.m in Sources */, + 5B647539436EB4D590054BBD2AEEE373 /* QCloudURLTools.m in Sources */, + 99AC0F90AC1C8CD6FD5E49F8671941F9 /* QCloudWeakProxy.m in Sources */, + E161715043C3A147EA49366F5B017F9F /* QCloudXMLDictionary.m in Sources */, + 3F26AB74F27C242AE5D6481E8E8E2611 /* QCloudXMLWriter.m in Sources */, + 4185D077B27806CFABB2E83654DB63E3 /* QualityDataUploader.m in Sources */, + 1793EBF429D3B819DF85B917A20C3072 /* UIDevice+QCloudFCUUID.m in Sources */, + 74B2FF1F10268B4E26E3D51B4C02C4D0 /* UIImage+QCloudBundle.m in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 77757D373A136FAE980FBD446A10DDD8 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 37406209761E5D4526E6F5815501ECC8 /* ioapi.c in Sources */, + E477E5E8D8CE83B34B17E8681FC353C4 /* QuickZip.swift in Sources */, + AA3DDA0FF81918CB019B91AD590EB186 /* unzip.c in Sources */, + C7402A8F9C17599CAC6011CB02B2DB51 /* zip.c in Sources */, + C65ADC429A24E6E22657BA20719F2013 /* Zip.swift in Sources */, + 6ED9361FA6CA71AFD17110377B365FE5 /* Zip-dummy.m in Sources */, + 01285ABEB9326C59B161E94A330219EC /* ZipUtilities.swift in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -16799,6 +18396,13 @@ ); runOnlyForDeploymentPostprocessing = 0; }; + 7FC129D0C1F5593192ED60E04CC98D43 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; 8265E92BC8AA6944B6F3400EC1C64428 /* Sources */ = { isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; @@ -16909,159 +18513,6 @@ ); runOnlyForDeploymentPostprocessing = 0; }; - 90A123CD0CD89311C260871935CF5E43 /* Sources */ = { - isa = PBXSourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - runOnlyForDeploymentPostprocessing = 0; - }; - 92B4378F8248DA4F9A1DEB3399D577D3 /* Sources */ = { - isa = PBXSourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - 229674D41ADA70329D7F08784D252E69 /* Pods-QXLiveDev-dummy.m in Sources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; - 93E29FE2470B676548EA62B5FA04AF9F /* Sources */ = { - isa = PBXSourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - 07AEAEDEB8A50365A17143861C5FB4A8 /* alpha_dec.c in Sources */, - 90737337CB39EF9E1C91787E8B70B498 /* alpha_enc.c in Sources */, - 11070C99F9B8E0779A87CD5589DC0D06 /* alpha_processing.c in Sources */, - 2B540D96582456222075783FC6C272DD /* alpha_processing_mips_dsp_r2.c in Sources */, - CB1BF26E306EB0BFE27E6A0730F7A672 /* alpha_processing_neon.c in Sources */, - B957506997F25053B7F13CFFE55F5908 /* alpha_processing_sse2.c in Sources */, - AA8300B33346BFAB1E37B95405F535AD /* alpha_processing_sse41.c in Sources */, - CF07EC3AE090DA3A7889F4CCDCAD10C8 /* analysis_enc.c in Sources */, - E2A9527BD973B3F05F1902E21219A134 /* anim_decode.c in Sources */, - A9C9D42351DCF33F4B3857A1C5B5F34B /* anim_encode.c in Sources */, - 92CEDD9FC030A7AB726D6B309F88E510 /* backward_references_cost_enc.c in Sources */, - 4CDCF1EA49430DFAAEAD07828A8B355B /* backward_references_enc.c in Sources */, - 4A96DE78037837FC5DAA2D2E1FA4BAFE /* bit_reader_utils.c in Sources */, - CAE5D4ECC41160F25912BE5C486B5779 /* bit_writer_utils.c in Sources */, - 79EED77497687EF9CF4F840F74005F48 /* buffer_dec.c in Sources */, - CB12CE1C59E8FD2EDD6975AF72D11BE8 /* color_cache_utils.c in Sources */, - 883FD025282A98981CFF7B3DB51DB1D5 /* config_enc.c in Sources */, - 87179D194DDB424A8A72DD7DF4989818 /* cost.c in Sources */, - 78738D8654840AFE9E9A9C8D23098510 /* cost_enc.c in Sources */, - B10ECCC867CF04D8B0919C3C25384F11 /* cost_mips32.c in Sources */, - 00AA2658FFA7BD73E276AF18A85F26CE /* cost_mips_dsp_r2.c in Sources */, - 2461CB32A48BB5BA7C70C6C8899244C2 /* cost_neon.c in Sources */, - 6C4279AEF656A050D9C09AC3D3033A89 /* cost_sse2.c in Sources */, - 87349B0CB0DE766ACAA2C84D1E71A0A4 /* cpu.c in Sources */, - 2558B1799256B29B2D61697399FF5398 /* dec.c in Sources */, - 995E2C2F7FDB86668B21AC0E9B0A2F73 /* dec_clip_tables.c in Sources */, - 336CB4C1BDA002EBACD791D2C9AF8F85 /* dec_mips32.c in Sources */, - 961128FB3001DD0D6ED80F157388F9EB /* dec_mips_dsp_r2.c in Sources */, - AFF20591A873016E33C4AFB4829679CD /* dec_msa.c in Sources */, - 3E3DB961B347DC03E72B8F650E4EA9A8 /* dec_neon.c in Sources */, - 0180FFD87596CE458D6BEAC78D956E58 /* dec_sse2.c in Sources */, - 991A5CAC4B62EADDA985EEBFCD22DAA7 /* dec_sse41.c in Sources */, - 562041D9E34EB4A80420E8C127FB0091 /* demux.c in Sources */, - 1553489FE64B7632055EE648A439FC59 /* enc.c in Sources */, - 82E8BDA9EF4BEAD4E3ED304B73075D1E /* enc_mips32.c in Sources */, - DF678533A1F2B0A8DB7DADDF1085BF50 /* enc_mips_dsp_r2.c in Sources */, - AC1A43C798EF5A45415A5324DF801279 /* enc_msa.c in Sources */, - 8BA0096E3F59F1D52A08143D6FBD9379 /* enc_neon.c in Sources */, - EA409B23FF58B66A5AB37803A2F4E8A8 /* enc_sse2.c in Sources */, - C0AED82731D0B8E2100CA435412520FC /* enc_sse41.c in Sources */, - 003480C3DFC5728A280F394BC0954943 /* filter_enc.c in Sources */, - F569F9010089F10C4D83B6B40798828D /* filters.c in Sources */, - 1EC9C8720D4F501DDA72C288D03DEC4E /* filters_mips_dsp_r2.c in Sources */, - FB5C92CE526B1E0DC5B35C55A4CBFD16 /* filters_msa.c in Sources */, - 67CE08DF5ADD081B9FFF1784C1A1C419 /* filters_neon.c in Sources */, - 7B4EFFC3FF0F777D2016F71F95596D5E /* filters_sse2.c in Sources */, - 98988998FE3C405674F8B420AD13701E /* filters_utils.c in Sources */, - DEBD5474712A0CFD0A2334E42AD174F8 /* frame_dec.c in Sources */, - B8D4B7844F609416726F0B02FCAEA660 /* frame_enc.c in Sources */, - 922506C067B3BECC7F79E5EDC299BE7F /* histogram_enc.c in Sources */, - 2D1EB31BA01EABC37A2C31F6ABD25ED6 /* huffman_encode_utils.c in Sources */, - 5B3FCD8B9966874E440CF638DB0481DD /* huffman_utils.c in Sources */, - 4662CC312ECC1BEF6EA91F5B6C7B15EE /* idec_dec.c in Sources */, - D636521B9C636E6534EE2476C6D48FB7 /* io_dec.c in Sources */, - C63D0B867EAA7235DC7D2830C91C513A /* iterator_enc.c in Sources */, - D4F0509846C2B58E06E1D12205084041 /* libwebp-dummy.m in Sources */, - 04EE234B1FAA2D40166722FCBC308152 /* lossless.c in Sources */, - A7F1684AFC4407027588736BD9DE3244 /* lossless_enc.c in Sources */, - A121EA3502B90DF7EAC99C3041B29376 /* lossless_enc_mips32.c in Sources */, - FE4522093C014032887A2B6E528FE6F9 /* lossless_enc_mips_dsp_r2.c in Sources */, - 1A65647771E890A0F4EE898C97E8801A /* lossless_enc_msa.c in Sources */, - 8B28A31B6D6249395276C820B64925E1 /* lossless_enc_neon.c in Sources */, - B5893E12228197A222E95787636062DE /* lossless_enc_sse2.c in Sources */, - 30B0A360934E282E40ED1408F47A27E2 /* lossless_enc_sse41.c in Sources */, - 4FD3A83E20ED738668A362A6995D6404 /* lossless_mips_dsp_r2.c in Sources */, - 224E376FB4B9CF87202FB02225210161 /* lossless_msa.c in Sources */, - 77AFA0A8A6D40C7B1C03C3BDC21A1272 /* lossless_neon.c in Sources */, - 1B34A1A983BA69178D62EF766FFEA3CB /* lossless_sse2.c in Sources */, - 2ABF8A787AC3C62CECE03540DFBF60DC /* lossless_sse41.c in Sources */, - C957C54E1EB01930C1C51F339F4215EF /* muxedit.c in Sources */, - 8D698B34AFA0C674C5D6125B1ECDE27F /* muxinternal.c in Sources */, - F168226C444665783606189A18B21B63 /* muxread.c in Sources */, - ED7CB6EC6CFC9EE6F928AF112503FC88 /* near_lossless_enc.c in Sources */, - E0FFBB236451FB45A282D149C6F3A0B2 /* palette.c in Sources */, - EA4546A2D4D34D3DCEFAB2F93C479716 /* picture_csp_enc.c in Sources */, - CA400533ABAF7F6923B7B403995755CA /* picture_enc.c in Sources */, - F19D77978F7E75BA6DD6FD7085161A4F /* picture_psnr_enc.c in Sources */, - 0D133E7EBAF3D42A5A6538A79D46BA03 /* picture_rescale_enc.c in Sources */, - 34014A87BB2E5320D87A613DE5FFE2C7 /* picture_tools_enc.c in Sources */, - 2F42596595A31B11953A6E2143126B39 /* predictor_enc.c in Sources */, - 6E8E2BDFC97BEC59728F799294361CB0 /* quant_dec.c in Sources */, - D15D093B9D830AB4A53C31FCF98E1E8D /* quant_enc.c in Sources */, - 9845B3261AE41190829BFB3D9557DBE5 /* quant_levels_dec_utils.c in Sources */, - F5490BF6A3666825BFAF918C46B060DB /* quant_levels_utils.c in Sources */, - 48F72262D21723E25AF109697B3B8406 /* random_utils.c in Sources */, - 4B6B56257FE9E422AA10730DDF5DBD16 /* rescaler.c in Sources */, - 4060BBB124FB12730C079C8E2F6F5FE7 /* rescaler_mips32.c in Sources */, - F123B1150C9E10A34B49E594AC636214 /* rescaler_mips_dsp_r2.c in Sources */, - F4967A9D767B24CE1CFD1D5CB2F3F3F9 /* rescaler_msa.c in Sources */, - B720D88CD6509882A53A6BBBC2B80D2F /* rescaler_neon.c in Sources */, - 8E6D7DB2397E40357B0A5F6C7AAEC10B /* rescaler_sse2.c in Sources */, - BEAF45E532F7B1637D01396A811F74E9 /* rescaler_utils.c in Sources */, - 723113FD5F3D75FF1AB5255336247216 /* sharpyuv.c in Sources */, - 874D4F4333ACAF8A27A9C9BB53CA884B /* sharpyuv_cpu.c in Sources */, - 6DDB4A5993061651E24E7A20D2B98CD0 /* sharpyuv_csp.c in Sources */, - BC69ED49FF4FA7E6C2B88BE29CBAA969 /* sharpyuv_dsp.c in Sources */, - 240EA5A18468CB72158084DB2FB7C218 /* sharpyuv_gamma.c in Sources */, - F9C133B5D9F23EDB5D017B3A95784250 /* sharpyuv_neon.c in Sources */, - 667B4D17270EAAF886DCDE4CFE086815 /* sharpyuv_sse2.c in Sources */, - E3AE19CF14457FA0CAF26CD1D35093F7 /* ssim.c in Sources */, - CF4FEE830556D79EE144EDEBA5FBDD29 /* ssim_sse2.c in Sources */, - E6364916D32C6AE450361124DA48698E /* syntax_enc.c in Sources */, - 3DDA9410826DE547A8E99F2BAEB1C94A /* thread_utils.c in Sources */, - CDC94CD57BAC77297C535FB9ACF180E4 /* token_enc.c in Sources */, - 01CC429C9627CFE6AA836FD1BEC68B55 /* tree_dec.c in Sources */, - 3FE5005F9237F795F8AF7A373FB461F8 /* tree_enc.c in Sources */, - 216F4E6B1B9D42BCC30BE260BC356474 /* upsampling.c in Sources */, - 78335F40E1DCC31801B626729AA17032 /* upsampling_mips_dsp_r2.c in Sources */, - E19F102D6254F7683F96F3AD5AB7CCEF /* upsampling_msa.c in Sources */, - 9D25333E97DC21D53B544ACB025CC27C /* upsampling_neon.c in Sources */, - 77F71350954EFEA1548AD66C2E6EB5FC /* upsampling_sse2.c in Sources */, - 98CF2D6B6F83C011675EA1F335C71E46 /* upsampling_sse41.c in Sources */, - 5BED302AAA762675E755A381AE206B87 /* utils.c in Sources */, - 861DA23D2D71536D7832C1BD0844590B /* vp8_dec.c in Sources */, - 11097FE0793854F03A82BFCAA919BC1E /* vp8l_dec.c in Sources */, - 8EB960488E4E463FC2797EE477659C34 /* vp8l_enc.c in Sources */, - 4EC538C18FE58347BB34E572C98EA57F /* webp_dec.c in Sources */, - B923A9D47DED275F89115F2DB36C08DF /* webp_enc.c in Sources */, - 252A09DAC0974C2C2FF6621698EC9015 /* yuv.c in Sources */, - 371CB877060C909579153AA2635840BD /* yuv_mips32.c in Sources */, - 0B9E6CDDBDBB0D3B723481714B3C6FD0 /* yuv_mips_dsp_r2.c in Sources */, - 2842289FBB6DB34865CD7DD7AEA34ECA /* yuv_neon.c in Sources */, - DF9373C694786CDCBD25B1996B1C73ED /* yuv_sse2.c in Sources */, - 146FAF32A06C6BB449470345F876E000 /* yuv_sse41.c in Sources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; - 988CD2704666FD3B66203ECDA676C2C5 /* Sources */ = { - isa = PBXSourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - runOnlyForDeploymentPostprocessing = 0; - }; 993F4B58FA83029137C85193BD9E8A20 /* Sources */ = { isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; @@ -17129,6 +18580,13 @@ ); runOnlyForDeploymentPostprocessing = 0; }; + 9D893A59E4B307AD20A893F55587505C /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; 9F03A6C166C310270FB3F4AFE9D7573D /* Sources */ = { isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; @@ -17142,13 +18600,6 @@ ); runOnlyForDeploymentPostprocessing = 0; }; - 9FF4BBFF959AA945F1621CBF2440AEEC /* Sources */ = { - isa = PBXSourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - runOnlyForDeploymentPostprocessing = 0; - }; A29E3C9E62E3E86A20CAE1E7632313FC /* Sources */ = { isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; @@ -17158,24 +18609,18 @@ ); runOnlyForDeploymentPostprocessing = 0; }; - A874C0D3A5479BA5A91C5A43573F089C /* Sources */ = { + AB87F6D45D550292DFDB6E8CE46F9F0A /* Sources */ = { isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; files = ( ); runOnlyForDeploymentPostprocessing = 0; }; - C1090B921C215B403A220B614859BBA8 /* Sources */ = { - isa = PBXSourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - runOnlyForDeploymentPostprocessing = 0; - }; - C2FBB5C0F8D0B9E6ABA8E3418AAACE16 /* Sources */ = { + B83934B9158E72409BD19B48F7454798 /* Sources */ = { isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; files = ( + 6C1D20060FEFADC6C5F4FC31729586D1 /* Pods-QXLive-dummy.m in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -17280,13 +18725,6 @@ ); runOnlyForDeploymentPostprocessing = 0; }; - CFD9316A0822FDF71650F97A944E03FB /* Sources */ = { - isa = PBXSourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - runOnlyForDeploymentPostprocessing = 0; - }; D08DDDF416AB9EEE26C8FFEE674F7A12 /* Sources */ = { isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; @@ -17503,16 +18941,10 @@ ); runOnlyForDeploymentPostprocessing = 0; }; - D87423B200A9FA77B81485D82912CFEF /* Sources */ = { + D88C9449EC99AAACE085BF56C16A0E08 /* Sources */ = { isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; files = ( - 1B7CFADD01332020D97DD468BF5DADA8 /* YYAnimatedImageView.m in Sources */, - B1DEACA29333F451154D9AA3ED72B09A /* YYFrameImage.m in Sources */, - 1BA5E248221E2737C0395D4D9BA7232A /* YYImage.m in Sources */, - 60C8DAED3357014E8A529EEA0E268F20 /* YYImage-dummy.m in Sources */, - 1E0719023EC9A4D6E51D34C618762348 /* YYImageCoder.m in Sources */, - 9763CEAE384680E87EE11A8DBD160233 /* YYSpriteSheetImage.m in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -17553,17 +18985,17 @@ ); runOnlyForDeploymentPostprocessing = 0; }; - DBF1BAB4E2CABBC79F6F1B8CFB9B8DD3 /* Sources */ = { + DCBC47A6BA03FC4F34C79F9B025B6EEA /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; + DEF5AB2A9A0376BE03937CA56C52D6A7 /* Sources */ = { isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; files = ( - F804C7AAD40FA603AE71070ABC9679AB /* ioapi.c in Sources */, - 86A6525BB278F85C1608EB39594451DC /* QuickZip.swift in Sources */, - 2601829EB6049C1594CEFD082DCE0A26 /* unzip.c in Sources */, - E12459F4E5C6016E340D85323E3C59A5 /* zip.c in Sources */, - 8FBEE344426CFFB04B968AB974CDE6DB /* Zip.swift in Sources */, - AE1E83D78E910206DAB04D9A019D7992 /* Zip-dummy.m in Sources */, - 01B503E5471AD5173DE109423170F4E9 /* ZipUtilities.swift in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -17599,7 +19031,21 @@ ); runOnlyForDeploymentPostprocessing = 0; }; - EA89A9E8C5554E72BEB0B028F87C36A6 /* Sources */ = { + E84B37EA55179C77110DBCC45E5D6A0B /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; + E8B1EC931101F40264286428AFA438D7 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; + EB980A3187F8F6465734E5CA6D03B4B5 /* Sources */ = { isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; files = ( @@ -17619,15 +19065,7 @@ ); runOnlyForDeploymentPostprocessing = 0; }; - EF3C4CEE7CA86E273B2661A150A7FBE2 /* Sources */ = { - isa = PBXSourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - 0BF46B2653C6B6026D3E625A4282F0F3 /* Pods-QXLive-dummy.m in Sources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; - F1349627DDCBEC07DA9CBEA80DF627C5 /* Sources */ = { + F6517C7FFC11F75C107C98C414B0A8F0 /* Sources */ = { isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; files = ( @@ -17688,825 +19126,838 @@ /* End PBXSourcesBuildPhase section */ /* Begin PBXTargetDependency section */ - 0484DA6922970CF52A043808D05D09D4 /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - name = AFNetworking; - target = 0130B3724283586C0E9D2A112D4F2AA1 /* AFNetworking */; - targetProxy = EA668A66672814C88B3A7B811AF8FD7E /* PBXContainerItemProxy */; - }; - 04B7BE4650B6393F1628D4FCC5EE63F9 /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - name = YYCategories; - target = 4CF4590C80DA0BCFB23334523B614709 /* YYCategories */; - targetProxy = 91D842DB6DB458643F4CC76A61C6DF8F /* PBXContainerItemProxy */; - }; - 0A9F8DD020B7CB098444E9453A50F869 /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - name = AgoraInfra_iOS; - target = 2F7F7AAA1C81C1ECBEECAABE3C3609AC /* AgoraInfra_iOS */; - targetProxy = 04CA5E153E3B5DA89E5F39F725B4A14C /* PBXContainerItemProxy */; - }; - 0ADC7CB97EF5624025748F3BB7F497CA /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - name = YYText; - target = 6F5C17E80BD1B7F60A33F79692330A57 /* YYText */; - targetProxy = AEE1BDA5AC969F1F9ADEAF26F8773FEE /* PBXContainerItemProxy */; - }; - 0F6BA643B29B25295427B33521CAA71C /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - name = ReactiveObjC; - target = 438B238ACC7DF1178D1BCE1A31983146 /* ReactiveObjC */; - targetProxy = A42F0D7DA726BC0032DE2479C2DDF5D7 /* PBXContainerItemProxy */; - }; - 0FC0B99CC3CB950BB6F4B16B56202393 /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - name = TIMPush; - target = 4927495D845F79030185863355F5B96F /* TIMPush */; - targetProxy = 051BB28CF487CB0313CE6D1542E73175 /* PBXContainerItemProxy */; - }; - 101E7FF53CF907ECCC2E83E9EE214758 /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - name = TUICore; - target = EB381B961261861E0643718E562995A8 /* TUICore */; - targetProxy = C7C86951B95F7E3148DF1CA308ED9079 /* PBXContainerItemProxy */; - }; - 10BDD6F3B2664290DB1270654C6D9BC1 /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - name = "TUIChat-TUIChat_Privacy"; - target = F56DFD738FAB4E4F07F2D2E962EA3946 /* TUIChat-TUIChat_Privacy */; - targetProxy = 7B1634DEE4A9C9AD2F56999A0265C9DD /* PBXContainerItemProxy */; - }; - 117B342350619B3DD7A5270B308FFB96 /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - name = TUIConversation; - target = 7E6A8D6108E4537DCBFAFA98674E2A71 /* TUIConversation */; - targetProxy = 2EC380083EED54BB0A220146F55789CA /* PBXContainerItemProxy */; - }; - 118BDF09BC8849277F6E44474436527A /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - name = "Protobuf-Protobuf_Privacy"; - target = 331902F14E62290AA86FB37CAAC6ABB0 /* Protobuf-Protobuf_Privacy */; - targetProxy = 1746C56D63A42BA46AA9CC8E8839FAF9 /* PBXContainerItemProxy */; - }; - 1655D9E965175E364E734FB83F4260E0 /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - name = YYCategories; - target = 4CF4590C80DA0BCFB23334523B614709 /* YYCategories */; - targetProxy = 644267CAE897A723959E81468079E728 /* PBXContainerItemProxy */; - }; - 16FA16C16630B799B583D988A9B04BFA /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - name = SDCycleScrollView; - target = CBED833AAD6266F3AEFE9BE31C68E094 /* SDCycleScrollView */; - targetProxy = 36A197C5137A42049FBCCF80351AA086 /* PBXContainerItemProxy */; - }; - 18A16A172C990453E0185A08EF848467 /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - name = AgoraLyricsScore; - target = 43B293ED3108BC77CE12D6449EF3AA5F /* AgoraLyricsScore */; - targetProxy = 06CFF6FB8F40B3DA5A5F84276DF601EE /* PBXContainerItemProxy */; - }; - 18E9A65666B679632AEB352AC7CF3E24 /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - name = SDWebImage; - target = 3847153A6E5EEFB86565BA840768F429 /* SDWebImage */; - targetProxy = FB32483A8FF3B785A9E1B44263DB1C8B /* PBXContainerItemProxy */; - }; - 19DD7D9CE8747D1279A1385F3CC6CBFB /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - name = "TUIConversation-TUIConversation_Privacy"; - target = FBC036FDFE401149B1CD899239D81CFA /* TUIConversation-TUIConversation_Privacy */; - targetProxy = 69380FD672AD199FDF110DF331496F21 /* PBXContainerItemProxy */; - }; - 1A64EF7198EE4350711B3043A215ED3A /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - name = "AgoraLyricsScore-AgoraLyricsScoreBundle"; - target = 0409F31E66073F5C1A3BBA08171DD017 /* AgoraLyricsScore-AgoraLyricsScoreBundle */; - targetProxy = 05845572ACE764455145EBA401F96B4C /* PBXContainerItemProxy */; - }; - 1CF8A812C3A42E6B438A085EE2C7C3C7 /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - name = YYWebImage; - target = 488E8C830C5A5694EE916251B9ADAADA /* YYWebImage */; - targetProxy = 3B657BE676FC481D8C2DE884DDA541B6 /* PBXContainerItemProxy */; - }; - 1F6A9366D4EE83CF52C84B7D4B4E64EF /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - name = "AlipaySDK-iOS"; - target = 4847ACB1E2799345AA74D9E317048D58 /* AlipaySDK-iOS */; - targetProxy = 31937D9F1D33B30FCFEE16FD37C0C5AF /* PBXContainerItemProxy */; - }; - 20409ACC44AD7A0A232A7B0B47C7ED85 /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - name = YYCache; - target = CFDAE6EB02F58B9A37CADCF439AE6082 /* YYCache */; - targetProxy = 88BB8CAA636A8C30B6D686B2D935A2E4 /* PBXContainerItemProxy */; - }; - 26FC6B735AA140F35CC9C9041FDB0F4F /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - name = SDWebImage; - target = 3847153A6E5EEFB86565BA840768F429 /* SDWebImage */; - targetProxy = 73D24F5B76DDAFC9F6B00541CCEB5F2E /* PBXContainerItemProxy */; - }; - 2CC331359034190E24D2B3BEAF05F61F /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - name = SSZipArchive; - target = F60E38364AFF5E1349FF07415B944396 /* SSZipArchive */; - targetProxy = 41D69BAD4F4611F7D96F7768FC5B88A7 /* PBXContainerItemProxy */; - }; - 2EEF306FAA9FEA75C0F514F063463653 /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - name = TencentCloudHuiyanSDKFace_framework; - target = 5E1A429206107DAD9DA8C2C93A5BAFC5 /* TencentCloudHuiyanSDKFace_framework */; - targetProxy = C3B1079E354838B045730F4643D010C6 /* PBXContainerItemProxy */; - }; - 319E4F2895EDD6FBD6F026DD18192973 /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - name = "TIMPush-TIMPush_Privacy"; - target = A3672D206FD781B76503C6F6C0C8191A /* TIMPush-TIMPush_Privacy */; - targetProxy = 7DB82F05DA6EDED64CC03376602FBA9A /* PBXContainerItemProxy */; - }; - 3286263BA9E581950B5D1F5E4B440759 /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - name = TUICore; - target = EB381B961261861E0643718E562995A8 /* TUICore */; - targetProxy = DB528EC6BD97D016D74AA384AC9B52C3 /* PBXContainerItemProxy */; - }; - 33DA32CD306549AFADD4D4B43950931E /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - name = SVGAPlayer; - target = EF4EFD5BE77B99AACFB0B7ACE03D198F /* SVGAPlayer */; - targetProxy = B3D4328E4EBEB73AB84B872516908F07 /* PBXContainerItemProxy */; - }; - 38B8435CC0060FE48DE0D75175E4AA42 /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - name = SDWebImageWebPCoder; - target = 1953860EA9853AA2BC8022B242F08512 /* SDWebImageWebPCoder */; - targetProxy = D64D314DCE7326E18128C2477AC936DA /* PBXContainerItemProxy */; - }; - 3C25E096781A5293C6B376F090ADE9FC /* PBXTargetDependency */ = { + 0274C507D279C37859B6195549E6C1E2 /* PBXTargetDependency */ = { isa = PBXTargetDependency; name = YYModel; target = 84B44807A12996D487A4A591A481D6A0 /* YYModel */; - targetProxy = 074F9B460B2D9071E8B8ABF81AEF5062 /* PBXContainerItemProxy */; + targetProxy = 24550EF6EEB669CFD077E84C5EED2159 /* PBXContainerItemProxy */; }; - 3D6F7D84444AABFD379A39FBA4A67944 /* PBXTargetDependency */ = { + 027A3930BD1AEE9645BE2BB9B22AB21C /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = MQTTClient; + target = 18D5937A1FF4E1064BDE592E5E9532EA /* MQTTClient */; + targetProxy = 09BC255FC6063AD2A45CD450B7BA0673 /* PBXContainerItemProxy */; + }; + 034925E304C6C07A743186D7AD109962 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = MBProgressHUD; + target = 82B0A41D3031FF27D78E17B0A9A46FB0 /* MBProgressHUD */; + targetProxy = CCD6D29070F83B40E4E5034BB0F6C0E3 /* PBXContainerItemProxy */; + }; + 03E4C2DB1A52C7DF26AAA743323C8D4B /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = YYText; + target = 6F5C17E80BD1B7F60A33F79692330A57 /* YYText */; + targetProxy = 108623F5739E2E3EE52F0E0BB2152C60 /* PBXContainerItemProxy */; + }; + 07A4310B8A1771145C9B4DBC638E545C /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = AgoraComponetLog; + target = 49F1FB331F497E32873611039BAF1C27 /* AgoraComponetLog */; + targetProxy = 3D76DC33B64A38970EDB33D4B270C2BC /* PBXContainerItemProxy */; + }; + 0E19CF3AC0808844692A207C3C31467F /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = SDWebImage; + target = 3847153A6E5EEFB86565BA840768F429 /* SDWebImage */; + targetProxy = 61D46D74EDAD4F83DB0A6A0D0FD6124C /* PBXContainerItemProxy */; + }; + 0F0FE0E91BDBFD84B9FB2695ED121D34 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = AFNetworking; + target = 0130B3724283586C0E9D2A112D4F2AA1 /* AFNetworking */; + targetProxy = D649D6842507D60C5EE3F2B566FB1228 /* PBXContainerItemProxy */; + }; + 0F5515890E62FD8972FBFB8CCEE5B0CA /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = AgoraLyricsScore; + target = 43B293ED3108BC77CE12D6449EF3AA5F /* AgoraLyricsScore */; + targetProxy = 52EB9919A62F3979C12CCBB07021EEBB /* PBXContainerItemProxy */; + }; + 171903DBC8F1F35E602E9AA5715F58B7 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = libwebp; + target = 47D2E85A78C25869BB13521D8561A638 /* libwebp */; + targetProxy = 796D5237F0B25CC172A59C0E55D2A89D /* PBXContainerItemProxy */; + }; + 17BA1635C51BAAAB358EAFC3512518F3 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = AgoraInfra_iOS; + target = 2F7F7AAA1C81C1ECBEECAABE3C3609AC /* AgoraInfra_iOS */; + targetProxy = 3984F2A2E338DFC75AABF982EC317FA6 /* PBXContainerItemProxy */; + }; + 1813D57D1AC26D3521E2F6FD43C3B954 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = SDWebImage; + target = 3847153A6E5EEFB86565BA840768F429 /* SDWebImage */; + targetProxy = 94AC921FAE058EF778BBCA29ABC27740 /* PBXContainerItemProxy */; + }; + 19E72E972FCA9EAF607D1019BCF18611 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = FMDB; + target = 8592E0E389D40AC17881400ADC67ABC0 /* FMDB */; + targetProxy = D9FEA0229D5535DA05BD8CC440924F52 /* PBXContainerItemProxy */; + }; + 1CA1CD96CB04E785AF0201739A62A4DA /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = libwebp; + target = 47D2E85A78C25869BB13521D8561A638 /* libwebp */; + targetProxy = 310E8D091602C594A87258D86026A686 /* PBXContainerItemProxy */; + }; + 1F35DA16C9ADCE31FC920B3DCE01F01A /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = TUICore; + target = EB381B961261861E0643718E562995A8 /* TUICore */; + targetProxy = D6D329189B73CDC29DAAAED592A6FCAA /* PBXContainerItemProxy */; + }; + 2031EF710D6ED7E851FDC6A5E7D5CD93 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = YYImage; + target = 822E44240F2922DAB12018A6B649BD19 /* YYImage */; + targetProxy = A520E99F4820C26F0FCB9919DB466742 /* PBXContainerItemProxy */; + }; + 211D90142327231F14196250FF98FA88 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = YBImageBrowser; + target = B97FC50FB8C4390DDCCA281E85E7AD84 /* YBImageBrowser */; + targetProxy = 159B162B5E46A6E9284F7BC3EEDFD97D /* PBXContainerItemProxy */; + }; + 233148E759A475193A641E82B14D91E9 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = SDWebImageWebPCoder; + target = 1953860EA9853AA2BC8022B242F08512 /* SDWebImageWebPCoder */; + targetProxy = 15AAC6306C4DACCC73B6C5215006F0BD /* PBXContainerItemProxy */; + }; + 234C3409BB6F887B79539E87264FCC62 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = TUIConversation; + target = 7E6A8D6108E4537DCBFAFA98674E2A71 /* TUIConversation */; + targetProxy = 3EDCF4C545B6759DF67D524989807F98 /* PBXContainerItemProxy */; + }; + 25A9B294A44C45B94174F8DAAD951EDB /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = AliyunOSSiOS; + target = C1FD11F5F7EBFF63F845CDF963F73E1A /* AliyunOSSiOS */; + targetProxy = AA6F2C893F10328E2C7F2EF987884F52 /* PBXContainerItemProxy */; + }; + 2756536FB5CD3334C7792804B489BB36 /* PBXTargetDependency */ = { isa = PBXTargetDependency; name = "FMDB-FMDB_Privacy"; target = 973B9A51B49701F13767694DCAF5C37D /* FMDB-FMDB_Privacy */; - targetProxy = E731FC5349CF0D8771140A3C362149F7 /* PBXContainerItemProxy */; + targetProxy = 3861F460E1B6091DC8452D33525D04BB /* PBXContainerItemProxy */; }; - 3E445545B53CDA6BD7AA5A0F9404283B /* PBXTargetDependency */ = { + 27C521656956B8DB083764292CF05E5B /* PBXTargetDependency */ = { isa = PBXTargetDependency; - name = LLDebugTool; - target = 5A3DE9AE6F3A36E1625275AD8CEC43B4 /* LLDebugTool */; - targetProxy = 755D808B8AFE191C142B2266AA4FED9A /* PBXContainerItemProxy */; + name = "TUIConversation-TUIConversation_Privacy"; + target = FBC036FDFE401149B1CD899239D81CFA /* TUIConversation-TUIConversation_Privacy */; + targetProxy = 2C7DF2A99416F4BFF98E997742A2328A /* PBXContainerItemProxy */; }; - 40D18A16DECC29EEC49800AD5DF329EF /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - name = "JXPagingView-JXPagerView"; - target = 16704C6B67439DA959DB043702C75A7A /* JXPagingView-JXPagerView */; - targetProxy = F55FEBB16B313B8383096D3D74CDBACA /* PBXContainerItemProxy */; - }; - 41234826F27BF69A03342C1B1CB52182 /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - name = TXIMSDK_Plus_iOS_XCFramework; - target = BB2154EC919CB4298C80ED396B322C5F /* TXIMSDK_Plus_iOS_XCFramework */; - targetProxy = 644358C1414A29F154EDD1697B268D86 /* PBXContainerItemProxy */; - }; - 41750DBDA82F8A741FE22623D833BAEB /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - name = TUICore; - target = EB381B961261861E0643718E562995A8 /* TUICore */; - targetProxy = 9E9D9604578C41517BAB7E74497166EC /* PBXContainerItemProxy */; - }; - 447972E81EB5003E97CF1DD1D43197B6 /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - name = AgoraRtcEngine_iOS; - target = 183C29DD6DE04D22CA29BAE61F5C530B /* AgoraRtcEngine_iOS */; - targetProxy = 3D21594B69A5DDD7492EB7EA0A3054AF /* PBXContainerItemProxy */; - }; - 463A030A5AFE3FEA59EEFA031C0B3556 /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - name = MQTTClient; - target = 18D5937A1FF4E1064BDE592E5E9532EA /* MQTTClient */; - targetProxy = 9CB8A95ACE84B9DEC8B7CAFA8ED9287B /* PBXContainerItemProxy */; - }; - 4B4953EB567D06F1D0FD1E2247B10762 /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - name = SDWebImage; - target = 3847153A6E5EEFB86565BA840768F429 /* SDWebImage */; - targetProxy = 7E9BE9B294C1348B3EE358E1D3DA19FE /* PBXContainerItemProxy */; - }; - 4B84009F004BE1604EADF9C1A3B66C9D /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - name = YYImage; - target = 822E44240F2922DAB12018A6B649BD19 /* YYImage */; - targetProxy = 0709C5963BB203A7E2B1F78CA9061B51 /* PBXContainerItemProxy */; - }; - 4CAB83F2E81F92D0E7E425E708E2DE71 /* PBXTargetDependency */ = { + 27F23B13B86E99BE8BE9DF4A364F9369 /* PBXTargetDependency */ = { isa = PBXTargetDependency; name = JXCategoryView; target = 8BEAFAA726C1965864B79B4B441AA513 /* JXCategoryView */; - targetProxy = 591E01C5AB1C7E3B012D5ED05309380B /* PBXContainerItemProxy */; + targetProxy = 9F0F3F56088E77C966B91A4F9891CCFA /* PBXContainerItemProxy */; }; - 4FDB2F22AC033AE3EA4C1408C7E18C86 /* PBXTargetDependency */ = { + 281C932CBC28A9B910DF273D01E89F35 /* PBXTargetDependency */ = { isa = PBXTargetDependency; - name = YYImage; - target = 822E44240F2922DAB12018A6B649BD19 /* YYImage */; - targetProxy = E6C8AD52F9E4B836C8907382E6013A48 /* PBXContainerItemProxy */; + name = BRPickerView; + target = D505645C3F99EB1E8B6529D64D2C3E1C /* BRPickerView */; + targetProxy = 3D45E1FB45BC564A44D478DDE8710D22 /* PBXContainerItemProxy */; }; - 51B939F7AC7DFB5D27762AE16D29C159 /* PBXTargetDependency */ = { + 291F27889AD2EBB1F6A1D55ECA8C9289 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = ReactiveObjC; + target = 438B238ACC7DF1178D1BCE1A31983146 /* ReactiveObjC */; + targetProxy = 6B9724217F5575F58C0FABF2B76DFBA4 /* PBXContainerItemProxy */; + }; + 2ECA6FA829B3F580BE7E3C22CB80D093 /* PBXTargetDependency */ = { isa = PBXTargetDependency; name = QGVAPlayer; target = FBF544DF4EBDEAD14CE7D3656AF4A18B /* QGVAPlayer */; - targetProxy = 368EF9A4D30CDB3C2E4987CE592DEC35 /* PBXContainerItemProxy */; + targetProxy = 45C9C7E95BB419E9FDF6CC13F7FB59E2 /* PBXContainerItemProxy */; }; - 51F5FC8E5ABD94B52EBF08D8E7C14A7D /* PBXTargetDependency */ = { + 3290591300D54016E8CCEEB58ADB7EDF /* PBXTargetDependency */ = { isa = PBXTargetDependency; - name = TUIConversation; - target = 7E6A8D6108E4537DCBFAFA98674E2A71 /* TUIConversation */; - targetProxy = 6C722F4BB03C576D4C3586B46BBD19A4 /* PBXContainerItemProxy */; + name = ReactiveObjC; + target = 438B238ACC7DF1178D1BCE1A31983146 /* ReactiveObjC */; + targetProxy = A0CA705AFB83A288989431AA25A90AFB /* PBXContainerItemProxy */; }; - 5264462AA19AE1190DF9D0F5BD73E1D3 /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - name = SDWebImage; - target = 3847153A6E5EEFB86565BA840768F429 /* SDWebImage */; - targetProxy = BC6251474E6E80633EF46AFD5D6CCBB1 /* PBXContainerItemProxy */; - }; - 53C752E0F3D63B8E29234CAAC9C27B0D /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - name = Masonry; - target = 55AF53E6C77A10ED4985E04D74A8878E /* Masonry */; - targetProxy = 3382B7A6C17923D08B6757924B2616EF /* PBXContainerItemProxy */; - }; - 54AD0E713E1948FC20578522270A2474 /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - name = Protobuf; - target = 470FE31978DC918618A329D8B55C85FF /* Protobuf */; - targetProxy = B4E8C3C25B6978DD93F13B6A87382261 /* PBXContainerItemProxy */; - }; - 55366F1295F46C948FA98D88C7A10CAB /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - name = Masonry; - target = 55AF53E6C77A10ED4985E04D74A8878E /* Masonry */; - targetProxy = EC23F0E21FE2C66548BA927F834F0B6D /* PBXContainerItemProxy */; - }; - 5650A50F12305CBDEBA4DC6CBC1A6011 /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - name = "TXIMSDK_Plus_iOS_XCFramework-TXIMSDK_Plus_iOS_XCFramework_Privacy"; - target = F71BF3AB61E6444B3140F0A3A86B2910 /* TXIMSDK_Plus_iOS_XCFramework-TXIMSDK_Plus_iOS_XCFramework_Privacy */; - targetProxy = 4BD12C74C0B105C9026A0A905626AE69 /* PBXContainerItemProxy */; - }; - 5700E5937E38508A949CD27CCA46AFA3 /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - name = YYModel; - target = 84B44807A12996D487A4A591A481D6A0 /* YYModel */; - targetProxy = 93721CD41220C5857DE808B46FC0A65F /* PBXContainerItemProxy */; - }; - 573985263318883B752E78AB3EF11C52 /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - name = AvoidCrash; - target = 3FA1E8E62E0263A4B0CA32E2D30D5BFC /* AvoidCrash */; - targetProxy = B114634FEB52A5B8DC1BDBA277B6E04C /* PBXContainerItemProxy */; - }; - 586DE645ACDF9D868F184549D3DC7127 /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - name = "TUICore-TUICore_Privacy"; - target = 8F36C5664BEF7888A4F179030A11C598 /* TUICore-TUICore_Privacy */; - targetProxy = 3E45D1CF20ACC6F47C861CAA819DA438 /* PBXContainerItemProxy */; - }; - 5C20750F7797D7E6F15564D7C570B176 /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - name = "WechatOpenSDK-XCFramework"; - target = 7F18C31A804695333763EEC303E265D7 /* WechatOpenSDK-XCFramework */; - targetProxy = 0F4B061CFCF6CCA2C46A8A56468B9D98 /* PBXContainerItemProxy */; - }; - 5C39D8D43C4D5CAA5643C95205502E77 /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - name = YYImage; - target = 822E44240F2922DAB12018A6B649BD19 /* YYImage */; - targetProxy = 9DF899C53732ADF731510552260F6ADA /* PBXContainerItemProxy */; - }; - 5ECDBB71F386A0D8D0362B8CFDD2D55E /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - name = MJRefresh; - target = 6868056D761E163D10FDAF8CF1C4D9B8 /* MJRefresh */; - targetProxy = 9E1480ED41A5CCEBE12BEF817FCA8CF5 /* PBXContainerItemProxy */; - }; - 608A7EC8D4BC0B99CC158AA005D5AD30 /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - name = "TIMCommon-TIMCommon_Privacy"; - target = A9A94B2F47199AE29CDF9CF13F4D95CF /* TIMCommon-TIMCommon_Privacy */; - targetProxy = 953B51EB9EAD8770B58B4B07ABB48C48 /* PBXContainerItemProxy */; - }; - 68B56A356415441BD4DDBFBE09A9A5F9 /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - name = TIMCommon; - target = 46196B0F15FB5453681E745A8C1700C8 /* TIMCommon */; - targetProxy = 7AE2F138264E6A7DB8DAC791CC118EF4 /* PBXContainerItemProxy */; - }; - 71A72F8980610F669B85137EECF82D7D /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - name = TIMCommon; - target = 46196B0F15FB5453681E745A8C1700C8 /* TIMCommon */; - targetProxy = 1E22BFF7A33A33EC82742AFD52F1158A /* PBXContainerItemProxy */; - }; - 75AA4484B02D5D9A6DF2621BCE44E70C /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - name = TIMCommon; - target = 46196B0F15FB5453681E745A8C1700C8 /* TIMCommon */; - targetProxy = 7B3306284B22E6E94DF1150E5D6CC8BA /* PBXContainerItemProxy */; - }; - 7730A07FD2A4FBFAED2853412DD6DC73 /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - name = TUICore; - target = EB381B961261861E0643718E562995A8 /* TUICore */; - targetProxy = 3B4A1DE9D442732D9C0D9BA7A6777D64 /* PBXContainerItemProxy */; - }; - 77ED5812B5B1F06FC32C50533C13FA54 /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - name = MJRefresh; - target = 6868056D761E163D10FDAF8CF1C4D9B8 /* MJRefresh */; - targetProxy = D76A4E4C5518751114122060AA2E5792 /* PBXContainerItemProxy */; - }; - 7C4774BAECBBDABC5C6EA80F7965882A /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - name = SVGAPlayer; - target = EF4EFD5BE77B99AACFB0B7ACE03D198F /* SVGAPlayer */; - targetProxy = BAEA004701C70473ADFCE4E48657F9A5 /* PBXContainerItemProxy */; - }; - 7D4E1BA5DE752520F984AB86D6230F4B /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - name = libwebp; - target = 47D2E85A78C25869BB13521D8561A638 /* libwebp */; - targetProxy = 8571BAABD5AE5D246956B42FE60BAD88 /* PBXContainerItemProxy */; - }; - 7E311C0A28E1DFAF24F56DD77DD01EAC /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - name = "BRPickerView-BRPickerView.Privacy"; - target = 941104F296513E17138328984384286C /* BRPickerView-BRPickerView.Privacy */; - targetProxy = FA1467CBC41D83BE77BE1278B2B61E79 /* PBXContainerItemProxy */; - }; - 7E367DD65096F7587A44D07A68D48252 /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - name = SDCycleScrollView; - target = CBED833AAD6266F3AEFE9BE31C68E094 /* SDCycleScrollView */; - targetProxy = 48ACF972B0270AFE3988CC327288AB0C /* PBXContainerItemProxy */; - }; - 82D326E6CF852898ACFEBB0475E5F555 /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - name = IQKeyboardManager; - target = FBA456CB50E371584C11231929A0971E /* IQKeyboardManager */; - targetProxy = 99B6E129773778C1F5B65162B1AE51DA /* PBXContainerItemProxy */; - }; - 8336BA7CBDE0910E293786AC5CD9FF07 /* PBXTargetDependency */ = { + 36B550F180EE67C3BB084B8472F52C34 /* PBXTargetDependency */ = { isa = PBXTargetDependency; name = "AlipaySDK-iOS"; target = 4847ACB1E2799345AA74D9E317048D58 /* AlipaySDK-iOS */; - targetProxy = F357CD4CAA0E8E87EABCB03D0B622102 /* PBXContainerItemProxy */; + targetProxy = 7FB626BD27CD09AC0C07DDEA8F1ACE6B /* PBXContainerItemProxy */; }; - 8343359E03C3C9C1139AF478284184C6 /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - name = AvoidCrash; - target = 3FA1E8E62E0263A4B0CA32E2D30D5BFC /* AvoidCrash */; - targetProxy = 8BEB4624A9BEEEDA7B739274A4CFB8E2 /* PBXContainerItemProxy */; - }; - 88234243A9721313160D7D2F248B58E6 /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - name = AgoraInfra_iOS; - target = 2F7F7AAA1C81C1ECBEECAABE3C3609AC /* AgoraInfra_iOS */; - targetProxy = 680BBA0EA595A4A79BF17CDBA3EE8D07 /* PBXContainerItemProxy */; - }; - 8CFBBECCF768367DB18D820E86E00846 /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - name = SDWebImage; - target = 3847153A6E5EEFB86565BA840768F429 /* SDWebImage */; - targetProxy = 69438CE734BBE1949313E07DEF140583 /* PBXContainerItemProxy */; - }; - 8F6C1FA6DFAFBD7D20D6CA3E26796A8E /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - name = FMDB; - target = 8592E0E389D40AC17881400ADC67ABC0 /* FMDB */; - targetProxy = 366F16D753772708BF0C95B5AB11C7BA /* PBXContainerItemProxy */; - }; - 91C227A53D159AA5B5E6D2A70179BB30 /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - name = AgoraComponetLog; - target = 49F1FB331F497E32873611039BAF1C27 /* AgoraComponetLog */; - targetProxy = C1F2303CB5CA1F1809AE17D91903F0A5 /* PBXContainerItemProxy */; - }; - 93C41BA774B2769DB05339C52D49D2A0 /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - name = TUIChat; - target = 05927177BD6FAFDF573D533A8665C859 /* TUIChat */; - targetProxy = 602F0E9A8A16A6AEC2B4DFFB4557A7D6 /* PBXContainerItemProxy */; - }; - 94E0BDBC47F155EFE604B232FC2878A6 /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - name = TXIMSDK_Plus_iOS_XCFramework; - target = BB2154EC919CB4298C80ED396B322C5F /* TXIMSDK_Plus_iOS_XCFramework */; - targetProxy = B479D51A504EAA57EDACE79055420399 /* PBXContainerItemProxy */; - }; - 97A188798BF802266C3662C0FBBA0CEA /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - name = FMDB; - target = 8592E0E389D40AC17881400ADC67ABC0 /* FMDB */; - targetProxy = 020AA3DAD770EFBBAA9E5897422CBBE0 /* PBXContainerItemProxy */; - }; - 98DC4F16C3457111C72347828BB53CC3 /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - name = SSZipArchive; - target = F60E38364AFF5E1349FF07415B944396 /* SSZipArchive */; - targetProxy = F59C16145EF6FD2A99BFFEC69FAC681F /* PBXContainerItemProxy */; - }; - 99A324DC5EFBEB8170BE900B0C33A117 /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - name = AgoraRtcEngine_iOS; - target = 183C29DD6DE04D22CA29BAE61F5C530B /* AgoraRtcEngine_iOS */; - targetProxy = 5A09BE6F92DF5BF8EBEC72FBE17EC07C /* PBXContainerItemProxy */; - }; - 9A54D93F9F9D9B458876C9D8C0D1D2A1 /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - name = Protobuf; - target = 470FE31978DC918618A329D8B55C85FF /* Protobuf */; - targetProxy = 64CA7C6DA579D3CD5EAE23573E70BBCB /* PBXContainerItemProxy */; - }; - 9BBAA99E1805A83A9018E0A97CCF09A8 /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - name = TXIMSDK_Plus_iOS_XCFramework; - target = BB2154EC919CB4298C80ED396B322C5F /* TXIMSDK_Plus_iOS_XCFramework */; - targetProxy = B198D6EEDBD054EA3CDBD951334AB827 /* PBXContainerItemProxy */; - }; - 9D43D1F8A77091239F31D00C3C3DBCD1 /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - name = AgoraComponetLog; - target = 49F1FB331F497E32873611039BAF1C27 /* AgoraComponetLog */; - targetProxy = C7322B130CDE432E072CA307B7133AA2 /* PBXContainerItemProxy */; - }; - 9E61D1E985AFF47B369BFC9D09269D40 /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - name = TZImagePickerController; - target = A96BBB982D62BB807B5BD10774BE2D07 /* TZImagePickerController */; - targetProxy = FD62F8498F4BB0C047A954EBB37B409F /* PBXContainerItemProxy */; - }; - A4AB9B27A92D9276917044E76C6259C5 /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - name = Zip; - target = 31708EE6929C61C0EDA6F5DAE3AF9DB7 /* Zip */; - targetProxy = 518A0816B64DB277DEEFA7367373AE0D /* PBXContainerItemProxy */; - }; - A4DD8F5AF87062A46C0258D0AFD1111C /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - name = TXIMSDK_Plus_iOS_XCFramework; - target = BB2154EC919CB4298C80ED396B322C5F /* TXIMSDK_Plus_iOS_XCFramework */; - targetProxy = 413D20F8D71F8ED6DAEB51B964236752 /* PBXContainerItemProxy */; - }; - A514CD0091E239D18E488DAF5B64B6DD /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - name = TIMCommon; - target = 46196B0F15FB5453681E745A8C1700C8 /* TIMCommon */; - targetProxy = E5D34CEEAAF928E7446EB3BAE9FEAEB2 /* PBXContainerItemProxy */; - }; - A51CD2CCC115A7BD73AF2C5C8DBDE8A1 /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - name = YBImageBrowser; - target = B97FC50FB8C4390DDCCA281E85E7AD84 /* YBImageBrowser */; - targetProxy = 9F69D42ECBD909A98A28114D67D52D6C /* PBXContainerItemProxy */; - }; - A70349F00232696ABF51877CC07AA4BE /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - name = QGVAPlayer; - target = FBF544DF4EBDEAD14CE7D3656AF4A18B /* QGVAPlayer */; - targetProxy = B8271A7FCF41A52A835AD161BFCFDBCB /* PBXContainerItemProxy */; - }; - A783AE5EE624B38E33AD237A78D74B64 /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - name = AgoraInfra_iOS; - target = 2F7F7AAA1C81C1ECBEECAABE3C3609AC /* AgoraInfra_iOS */; - targetProxy = C282F96096823150EC41B425D2274B74 /* PBXContainerItemProxy */; - }; - A821A7DE4EC41E228B5C7B4DE6B5C6ED /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - name = AliyunOSSiOS; - target = C1FD11F5F7EBFF63F845CDF963F73E1A /* AliyunOSSiOS */; - targetProxy = A05E1F7F9BEEBFFEE330D9B243840D35 /* PBXContainerItemProxy */; - }; - A85C4C5D61D1BCDF4A763D800F699AC1 /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - name = TencentCloudHuiyanSDKFace_framework; - target = 5E1A429206107DAD9DA8C2C93A5BAFC5 /* TencentCloudHuiyanSDKFace_framework */; - targetProxy = CF23EB2333BEEB93D576B2F2D4452258 /* PBXContainerItemProxy */; - }; - AA9EBB81C2D57BCB0793591EC8D83DC2 /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - name = AliyunOSSiOS; - target = C1FD11F5F7EBFF63F845CDF963F73E1A /* AliyunOSSiOS */; - targetProxy = 9173D151DEFE280BF5FA96D30AB247B8 /* PBXContainerItemProxy */; - }; - AAF56F2E875459FDC1BFDE3E27F28543 /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - name = YYImage; - target = 822E44240F2922DAB12018A6B649BD19 /* YYImage */; - targetProxy = EDF92B278F02743922ADD10F68A84829 /* PBXContainerItemProxy */; - }; - AC622F05650479738E1F7DB2F7B905C2 /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - name = libwebp; - target = 47D2E85A78C25869BB13521D8561A638 /* libwebp */; - targetProxy = 50AA0BA3AFFC1AD0A6BC2C8335F1C1FB /* PBXContainerItemProxy */; - }; - ACF19ADEAA9C126C953B04447C1F4D00 /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - name = Zip; - target = 31708EE6929C61C0EDA6F5DAE3AF9DB7 /* Zip */; - targetProxy = DBB622B76CD3ECE6239C40F6001DB8DA /* PBXContainerItemProxy */; - }; - AEB90315997471970DEAAD88CC8D9BDB /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - name = TUIChat; - target = 05927177BD6FAFDF573D533A8665C859 /* TUIChat */; - targetProxy = FDBBC8C0996C0AAA002152BDAB03C61F /* PBXContainerItemProxy */; - }; - B00FCE2883A43F8EE59940BDFA03D66E /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - name = FMDB; - target = 8592E0E389D40AC17881400ADC67ABC0 /* FMDB */; - targetProxy = 1EB449AF21A3A1CD16D5304EDE82774E /* PBXContainerItemProxy */; - }; - B0EA52AE39C774CFAA783D5843C8E5FC /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - name = SDWebImageWebPCoder; - target = 1953860EA9853AA2BC8022B242F08512 /* SDWebImageWebPCoder */; - targetProxy = D2D562F7290C2A4FEA87EAF9D2FB9165 /* PBXContainerItemProxy */; - }; - B1B486C4D98F54C4A07F00874B1D022B /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - name = AFNetworking; - target = 0130B3724283586C0E9D2A112D4F2AA1 /* AFNetworking */; - targetProxy = 7178AF8598196103A827A4116F759AEF /* PBXContainerItemProxy */; - }; - B26711B6A46158371D4332CC5196AB7E /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - name = "WechatOpenSDK-XCFramework"; - target = 7F18C31A804695333763EEC303E265D7 /* WechatOpenSDK-XCFramework */; - targetProxy = 3721EF2D1883E75794FE471ABCE02315 /* PBXContainerItemProxy */; - }; - B291E5ABE745CC06865BC935EA2B6E7F /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - name = MBProgressHUD; - target = 82B0A41D3031FF27D78E17B0A9A46FB0 /* MBProgressHUD */; - targetProxy = C5F98D87822A2C16E7A3A7EAC58DFC4E /* PBXContainerItemProxy */; - }; - B2B2DA2EFD7106A86CC98E5CDE8BE36C /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - name = BRPickerView; - target = D505645C3F99EB1E8B6529D64D2C3E1C /* BRPickerView */; - targetProxy = 4CA647D61A9FB939ACE2F0C1ACDBDDD3 /* PBXContainerItemProxy */; - }; - B761E2BC733C9A44005FB073CD4AC9CF /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - name = JXPagingView; - target = C4E1020AF425614337737213AA26DBD5 /* JXPagingView */; - targetProxy = 15BE9C5C6D144C4B882D6B996DE0C843 /* PBXContainerItemProxy */; - }; - B7ADB8506CF2208A4ACA941D2F11C515 /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - name = LLDebugTool; - target = 5A3DE9AE6F3A36E1625275AD8CEC43B4 /* LLDebugTool */; - targetProxy = B4B028383B099533841EA4B134558D96 /* PBXContainerItemProxy */; - }; - B7B3DD77BCA94BE5329F53FDB70E9B0B /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - name = Masonry; - target = 55AF53E6C77A10ED4985E04D74A8878E /* Masonry */; - targetProxy = 22E7850C6CB71E1B93A91AFD1B8D7865 /* PBXContainerItemProxy */; - }; - BA7428A80741A41733FFE65836E70F9A /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - name = TZImagePickerController; - target = A96BBB982D62BB807B5BD10774BE2D07 /* TZImagePickerController */; - targetProxy = 85EB59969C08A6ACCDD736472A493802 /* PBXContainerItemProxy */; - }; - BAEEBB376D3C5E77A6FD89AAA8F00BE2 /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - name = AgoraComponetLog; - target = 49F1FB331F497E32873611039BAF1C27 /* AgoraComponetLog */; - targetProxy = 51A9DAC7AA11125F42EB14AF2D3B62A3 /* PBXContainerItemProxy */; - }; - BE3455B8A8A069E6540C0968206F0B07 /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - name = ReactiveObjC; - target = 438B238ACC7DF1178D1BCE1A31983146 /* ReactiveObjC */; - targetProxy = 4A950B9A6DB9601D53D6163B57BD0DB2 /* PBXContainerItemProxy */; - }; - C24B572E4DDB0A526F2BA3D1454EED87 /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - name = YYWebImage; - target = 488E8C830C5A5694EE916251B9ADAADA /* YYWebImage */; - targetProxy = C5A526947E4B0CD83375DC7959F92395 /* PBXContainerItemProxy */; - }; - C2F51336278904D3D37E955D676012DB /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - name = YYCache; - target = CFDAE6EB02F58B9A37CADCF439AE6082 /* YYCache */; - targetProxy = F18D5B5CDBE5433D69E97784EB610414 /* PBXContainerItemProxy */; - }; - C4AF8EF9863D6DB2A17CA417EEB770CA /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - name = Protobuf; - target = 470FE31978DC918618A329D8B55C85FF /* Protobuf */; - targetProxy = 9B9E488A674B5E081D2C307B3C975F20 /* PBXContainerItemProxy */; - }; - C5EB2DB11B69F3EEE7CC3D99A942500B /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - name = "AliyunOSSiOS-AliyunOSSiOS_Privacy"; - target = 5D11A19D6943394EC1DDAB15A39FB827 /* AliyunOSSiOS-AliyunOSSiOS_Privacy */; - targetProxy = 9A8DA57BF3201A9FA6E843196B6EFDB3 /* PBXContainerItemProxy */; - }; - C66A1F6097BD3E1345EA0DF9F4DE083B /* PBXTargetDependency */ = { + 3E3ED48CDB654ABE91C4FAF75121E60B /* PBXTargetDependency */ = { isa = PBXTargetDependency; name = MQTTClient; target = 18D5937A1FF4E1064BDE592E5E9532EA /* MQTTClient */; - targetProxy = 247AE5EBE93E7B333DD744D6330A6D02 /* PBXContainerItemProxy */; + targetProxy = A30CD380CB2DF1855F4C05204D761FEC /* PBXContainerItemProxy */; }; - C97134715641D99253A0FFEEBAB457AF /* PBXTargetDependency */ = { + 3F70F05AB39A74A56AEC76534759555C /* PBXTargetDependency */ = { isa = PBXTargetDependency; - name = SSZipArchive; - target = F60E38364AFF5E1349FF07415B944396 /* SSZipArchive */; - targetProxy = 9CA232270A4F54E89F0EA4554DF61E40 /* PBXContainerItemProxy */; + name = SDWebImage; + target = 3847153A6E5EEFB86565BA840768F429 /* SDWebImage */; + targetProxy = 82A242C2FD08D660440BA3C9A869ABF5 /* PBXContainerItemProxy */; }; - CBADAC24F08F71A869A9A3F0F1D1812D /* PBXTargetDependency */ = { + 43FE0F4365B77BAD88F33593A5078848 /* PBXTargetDependency */ = { isa = PBXTargetDependency; - name = JXPagingView; - target = C4E1020AF425614337737213AA26DBD5 /* JXPagingView */; - targetProxy = 51AEF2EBA7D06130C7538E4D34EEF376 /* PBXContainerItemProxy */; + name = "Protobuf-Protobuf_Privacy"; + target = 331902F14E62290AA86FB37CAAC6ABB0 /* Protobuf-Protobuf_Privacy */; + targetProxy = D59B4BF3F2CBFA99CE8C380C304FE4E3 /* PBXContainerItemProxy */; }; - CCFCA9B80D02C66A33B7D8880E0ADFC8 /* PBXTargetDependency */ = { + 4535F5150135D73572CFB86F07258DA2 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = QGVAPlayer; + target = FBF544DF4EBDEAD14CE7D3656AF4A18B /* QGVAPlayer */; + targetProxy = 501FD2611F90677E2656783AFD5A3672 /* PBXContainerItemProxy */; + }; + 4821697649B391A5E31EDAE07EC87049 /* PBXTargetDependency */ = { isa = PBXTargetDependency; name = JXCategoryView; target = 8BEAFAA726C1965864B79B4B441AA513 /* JXCategoryView */; - targetProxy = 8508702D6C46FD7EF82F22EAEEBD8D8C /* PBXContainerItemProxy */; + targetProxy = 04DABAA35D35B88C47152374F21BD7EC /* PBXContainerItemProxy */; }; - CE1D3F343584A1A12D21AF113483A745 /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - name = BRPickerView; - target = D505645C3F99EB1E8B6529D64D2C3E1C /* BRPickerView */; - targetProxy = 4EE4F5FC108E1DFB15C0370D75D5A22A /* PBXContainerItemProxy */; - }; - CFA0D547F1D71F371329E7405A2048A1 /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - name = ReactiveObjC; - target = 438B238ACC7DF1178D1BCE1A31983146 /* ReactiveObjC */; - targetProxy = 59711CAD7D54759472BC0BCD241BF328 /* PBXContainerItemProxy */; - }; - CFE314598E2CB02CEB1CD959000691F3 /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - name = ReactiveObjC; - target = 438B238ACC7DF1178D1BCE1A31983146 /* ReactiveObjC */; - targetProxy = 8396B7EEFBA03BC691544BC22CB25B1F /* PBXContainerItemProxy */; - }; - D0A5FDD1F8BB5ACA6C0A7354E6A25BA8 /* PBXTargetDependency */ = { + 4A65B842F1B4A217C185E08D0BD43542 /* PBXTargetDependency */ = { isa = PBXTargetDependency; name = YYText; target = 6F5C17E80BD1B7F60A33F79692330A57 /* YYText */; - targetProxy = AE196FDD36DD11299524588DD478C0A0 /* PBXContainerItemProxy */; + targetProxy = 6EB558D513B879598E51C0F9F64B6EE0 /* PBXContainerItemProxy */; }; - DB7BB75E3E14FC9A9D50FA4BBB5C7767 /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - name = TIMPush; - target = 4927495D845F79030185863355F5B96F /* TIMPush */; - targetProxy = C9BF3ED2D4D7072FCB102D99E84E41C4 /* PBXContainerItemProxy */; - }; - DBAB4C535D0621ED81853EB68CCC0D2E /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - name = Bugly; - target = 4A68CFD979D413A619DF631BB121D98F /* Bugly */; - targetProxy = DEC69336680DDEBD1D013230513F182B /* PBXContainerItemProxy */; - }; - DCDA2A19C64AB36C522E5F500679226F /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - name = ReactiveObjC; - target = 438B238ACC7DF1178D1BCE1A31983146 /* ReactiveObjC */; - targetProxy = AE19CD62F443333E738E35938CEF351E /* PBXContainerItemProxy */; - }; - DE5ECCC596580813E67F13FEFBB2083E /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - name = AgoraLyricsScore; - target = 43B293ED3108BC77CE12D6449EF3AA5F /* AgoraLyricsScore */; - targetProxy = 5FECA706195D5FB18464B389B138D065 /* PBXContainerItemProxy */; - }; - E2098C996C43C46308990881B96642FA /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - name = "MJRefresh-MJRefresh.Privacy"; - target = B26054DF1DEA11585A231AF6D1D80D5E /* MJRefresh-MJRefresh.Privacy */; - targetProxy = 78AAB5E778453647E3F52ABB85E559D7 /* PBXContainerItemProxy */; - }; - E31CF1E8513010CA06CA3C9CE1AAF2A1 /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - name = libwebp; - target = 47D2E85A78C25869BB13521D8561A638 /* libwebp */; - targetProxy = 1E9E3EAFA3B9007384E01748EDDB88F2 /* PBXContainerItemProxy */; - }; - E5F5FD6190222D442F226829CC20D3B4 /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - name = SDWebImage; - target = 3847153A6E5EEFB86565BA840768F429 /* SDWebImage */; - targetProxy = 01093F9EF5718532279A0BAB5B82A7C0 /* PBXContainerItemProxy */; - }; - EA19472D079EF0AEC37DBEEC7A091AE3 /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - name = "SDWebImage-SDWebImage"; - target = 94CFBA7D633ECA58DF85C327B035E6A3 /* SDWebImage-SDWebImage */; - targetProxy = 86B044B10A905DBD0B6539A644E09702 /* PBXContainerItemProxy */; - }; - ED148E2592B5ECDA017D375455849147 /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - name = YBImageBrowser; - target = B97FC50FB8C4390DDCCA281E85E7AD84 /* YBImageBrowser */; - targetProxy = 1031B8FFCAC4AD17629B6C340BC5352A /* PBXContainerItemProxy */; - }; - EDCDB008A08F678EAE6E13A7143F999B /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - name = SDWebImage; - target = 3847153A6E5EEFB86565BA840768F429 /* SDWebImage */; - targetProxy = 61B9AB47565D0C40B1DACAD49D3BCC2E /* PBXContainerItemProxy */; - }; - EE6643298BDD4FC5269FD94D554644DA /* PBXTargetDependency */ = { + 4AC9BDF20941DF47A16ADD22E63DD392 /* PBXTargetDependency */ = { isa = PBXTargetDependency; name = TUICore; target = EB381B961261861E0643718E562995A8 /* TUICore */; - targetProxy = AA28C343E95101F8EF08F4A2A51E8C5A /* PBXContainerItemProxy */; + targetProxy = 3DA5736C9D9C98245361FB63B57F5CF2 /* PBXContainerItemProxy */; }; - EE8CF772B56AEF995A011068494FCC1B /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - name = Zip; - target = 31708EE6929C61C0EDA6F5DAE3AF9DB7 /* Zip */; - targetProxy = 212053B25B14060E02A9DC614D1C34D5 /* PBXContainerItemProxy */; - }; - F27E52BEE9EB0D70576331995651003E /* PBXTargetDependency */ = { + 4D3B2053DBC41F1D06837CCB0A009136 /* PBXTargetDependency */ = { isa = PBXTargetDependency; name = SDWebImage; target = 3847153A6E5EEFB86565BA840768F429 /* SDWebImage */; - targetProxy = 1FC484B818464FAB3E6E74E141013C16 /* PBXContainerItemProxy */; + targetProxy = B047959F7DFF5AB101284FD51A05F538 /* PBXContainerItemProxy */; }; - F45EED276ABFD0AA66AA7DB3344AA5FE /* PBXTargetDependency */ = { + 4F314C06F65F2A5BFF9C568D6812C2F8 /* PBXTargetDependency */ = { isa = PBXTargetDependency; - name = YYCache; - target = CFDAE6EB02F58B9A37CADCF439AE6082 /* YYCache */; - targetProxy = DB360EB8C09C6A33CD833E5145C89291 /* PBXContainerItemProxy */; + name = Zip; + target = 31708EE6929C61C0EDA6F5DAE3AF9DB7 /* Zip */; + targetProxy = A21200E15CFA9DE8BEE6021B398C2441 /* PBXContainerItemProxy */; }; - F46EA35B1B79EFA91DD34A5932F441F2 /* PBXTargetDependency */ = { + 52CC4C731BC324B93D3A12A681DFF965 /* PBXTargetDependency */ = { isa = PBXTargetDependency; - name = IQKeyboardManager; - target = FBA456CB50E371584C11231929A0971E /* IQKeyboardManager */; - targetProxy = 0775D6958DA34F8924379FD0E8A20B09 /* PBXContainerItemProxy */; + name = Protobuf; + target = 470FE31978DC918618A329D8B55C85FF /* Protobuf */; + targetProxy = 02F6311EAFAEFC38331D481A0FAE0C3B /* PBXContainerItemProxy */; }; - F7783B8AE70E78BA8FDF73A85DC0DB36 /* PBXTargetDependency */ = { + 5364DABCD79D6C21B15F9FF6E181C7C2 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = TXIMSDK_Plus_iOS_XCFramework; + target = BB2154EC919CB4298C80ED396B322C5F /* TXIMSDK_Plus_iOS_XCFramework */; + targetProxy = AACEEBFE9082FD3F762B5BF07BC66668 /* PBXContainerItemProxy */; + }; + 5518AD7FF2908F6B4F468544B8AAA6B0 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = Protobuf; + target = 470FE31978DC918618A329D8B55C85FF /* Protobuf */; + targetProxy = 3CD0EF4C5259194763E690E53C221A2B /* PBXContainerItemProxy */; + }; + 55D40E065CF188A66C74C69B692D25DD /* PBXTargetDependency */ = { isa = PBXTargetDependency; name = "JXCategoryView-JXCategoryView"; target = E79E29F55A2453370D27112480FCF6A2 /* JXCategoryView-JXCategoryView */; - targetProxy = C1CA5D4215AE0632430CEF269224177C /* PBXContainerItemProxy */; + targetProxy = 0CB6AEAEC6651B4A2747C9FAFF7E62A9 /* PBXContainerItemProxy */; }; - FB6D42186070CED17DA69986F6AB429A /* PBXTargetDependency */ = { + 5622A87ACF5AFFAB16F84C663971A714 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = "AliyunOSSiOS-AliyunOSSiOS_Privacy"; + target = 5D11A19D6943394EC1DDAB15A39FB827 /* AliyunOSSiOS-AliyunOSSiOS_Privacy */; + targetProxy = B7DE55517B61AEE736981DA1AA0164E0 /* PBXContainerItemProxy */; + }; + 568B01F974AAED1C442404B58FC6EFB7 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = "TIMCommon-TIMCommon_Privacy"; + target = A9A94B2F47199AE29CDF9CF13F4D95CF /* TIMCommon-TIMCommon_Privacy */; + targetProxy = E3D2CC3BC36AAD3C0174E7C3C0603480 /* PBXContainerItemProxy */; + }; + 5ABD7C4A4F187C13CD2CDAA15A0DF218 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = AFNetworking; + target = 0130B3724283586C0E9D2A112D4F2AA1 /* AFNetworking */; + targetProxy = 0029DCEA4AC4C88C5DDE7545C7812128 /* PBXContainerItemProxy */; + }; + 5C66869334AA1F8FB805CFACD8CCDBEC /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = MJRefresh; + target = 6868056D761E163D10FDAF8CF1C4D9B8 /* MJRefresh */; + targetProxy = 9293289AEDC21A818C527958E375C15D /* PBXContainerItemProxy */; + }; + 5CC7093351DA6D7445112C094EA251C3 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = TencentCloudHuiyanSDKFace_framework; + target = 5E1A429206107DAD9DA8C2C93A5BAFC5 /* TencentCloudHuiyanSDKFace_framework */; + targetProxy = 3D51294011CC41FA02FF2849C353E2A0 /* PBXContainerItemProxy */; + }; + 5EDA0A484EA0A79566B36C1AF433C5AE /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = AgoraLyricsScore; + target = 43B293ED3108BC77CE12D6449EF3AA5F /* AgoraLyricsScore */; + targetProxy = 49CC4658896CF5872EBA36EABC8C3098 /* PBXContainerItemProxy */; + }; + 5FD8254F6D846908EFCCE42207E554CC /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = QCloudCore; + target = DBD31C8A3F2371ED732009637E95423D /* QCloudCore */; + targetProxy = AF7847F1777DF2A310767328A6D6F837 /* PBXContainerItemProxy */; + }; + 5FF36054B45C13F17CCB7E10975A6458 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = TXIMSDK_Plus_iOS_XCFramework; + target = BB2154EC919CB4298C80ED396B322C5F /* TXIMSDK_Plus_iOS_XCFramework */; + targetProxy = 2EB0896D7C53E6E57D4A8D604F821CB1 /* PBXContainerItemProxy */; + }; + 6369BCAC8E24DD40157289EBEE136DB7 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = SVGAPlayer; + target = EF4EFD5BE77B99AACFB0B7ACE03D198F /* SVGAPlayer */; + targetProxy = E30C4774CCD17478759E1471E55E1293 /* PBXContainerItemProxy */; + }; + 6552C8FB0E7C637E013D60549264FA10 /* PBXTargetDependency */ = { isa = PBXTargetDependency; name = Bugly; target = 4A68CFD979D413A619DF631BB121D98F /* Bugly */; - targetProxy = 4360F4CC351B3B59561A829929671EFE /* PBXContainerItemProxy */; + targetProxy = A0B5A23982AE8343659A22CBF7543D8E /* PBXContainerItemProxy */; }; - FEC41391F8DBF72BECF185F47B6D7072 /* PBXTargetDependency */ = { + 682925E0D7E1191AFDD32B31244F6A47 /* PBXTargetDependency */ = { isa = PBXTargetDependency; - name = "IQKeyboardManager-IQKeyboardManager"; - target = 05B2A835D60F78761395189914B88047 /* IQKeyboardManager-IQKeyboardManager */; - targetProxy = 97BA0FD6BCF59AC47BA59DC4136DD2C6 /* PBXContainerItemProxy */; + name = TIMCommon; + target = 46196B0F15FB5453681E745A8C1700C8 /* TIMCommon */; + targetProxy = FB4CE9736CBDAF6975EDAA4E0781E4A9 /* PBXContainerItemProxy */; }; - FED6F9CAAFCC546CBC4558A83025DBEC /* PBXTargetDependency */ = { + 6A90627116C4E24FF539C71CBBBD45D3 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = ReactiveObjC; + target = 438B238ACC7DF1178D1BCE1A31983146 /* ReactiveObjC */; + targetProxy = 1D5E043B52D2F4553BBC41EE9CDA6495 /* PBXContainerItemProxy */; + }; + 6AD5211C9A49370171B7596343FD1E05 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = Protobuf; + target = 470FE31978DC918618A329D8B55C85FF /* Protobuf */; + targetProxy = 679696E6F73A37D2F4D883C3233EB704 /* PBXContainerItemProxy */; + }; + 6E13005FFAFC2D4B901B8E01ECB92D5E /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = IQKeyboardManager; + target = FBA456CB50E371584C11231929A0971E /* IQKeyboardManager */; + targetProxy = 64AB6FC47DE5C3BCE3AB43F9F11D23A9 /* PBXContainerItemProxy */; + }; + 6F472662982CDA59B51CC7208EBD9775 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = AgoraComponetLog; + target = 49F1FB331F497E32873611039BAF1C27 /* AgoraComponetLog */; + targetProxy = 8A1D6514AA1BCEFE43C58F427F04CD47 /* PBXContainerItemProxy */; + }; + 72EC8C4D21A0705F5DB6608B067A7413 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = Masonry; + target = 55AF53E6C77A10ED4985E04D74A8878E /* Masonry */; + targetProxy = C7B5F25C9AD4E697541DAE41932D09CD /* PBXContainerItemProxy */; + }; + 762F859D6A487CCABC6D0C980240CA29 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = YYWebImage; + target = 488E8C830C5A5694EE916251B9ADAADA /* YYWebImage */; + targetProxy = D019DC9BA0A67304C2FCFED19766511A /* PBXContainerItemProxy */; + }; + 7985C6E830B277CF3A32275392599AFF /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = TUIChat; + target = 05927177BD6FAFDF573D533A8665C859 /* TUIChat */; + targetProxy = 480A87FA39770E9196796FB6EFE15F46 /* PBXContainerItemProxy */; + }; + 7CD62DC58511188F955195A18959B84C /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = TUICore; + target = EB381B961261861E0643718E562995A8 /* TUICore */; + targetProxy = C3D139DEB51FED1DBEE1535CADA37B24 /* PBXContainerItemProxy */; + }; + 7DD0EA943F8CD743D13C000DA9DBE791 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = AgoraInfra_iOS; + target = 2F7F7AAA1C81C1ECBEECAABE3C3609AC /* AgoraInfra_iOS */; + targetProxy = B3AD63BCFBE1E5DF8B85D2F368E49FCA /* PBXContainerItemProxy */; + }; + 7E4A5A47EE0061D6199FC35BA9780F47 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = SSZipArchive; + target = F60E38364AFF5E1349FF07415B944396 /* SSZipArchive */; + targetProxy = 7C2BDCF1DE010557B9D78050BE8C21B6 /* PBXContainerItemProxy */; + }; + 7E832E92B1D434FB5134E7AAC28CCE3E /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = SDWebImageWebPCoder; + target = 1953860EA9853AA2BC8022B242F08512 /* SDWebImageWebPCoder */; + targetProxy = A8823BF30F6E0DD84F79DEE760D3FE24 /* PBXContainerItemProxy */; + }; + 7F65D68BEE64710492CCA094B0EB3848 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = ReactiveObjC; + target = 438B238ACC7DF1178D1BCE1A31983146 /* ReactiveObjC */; + targetProxy = C1FD4CF95EE51B508128C889D813DD5F /* PBXContainerItemProxy */; + }; + 7F9887B0799482107B31D33EE751743E /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = YBImageBrowser; + target = B97FC50FB8C4390DDCCA281E85E7AD84 /* YBImageBrowser */; + targetProxy = F80CDFA97DFB7F2F0A7D242C6F722FB4 /* PBXContainerItemProxy */; + }; + 806E61D09977FE9B01DBF600B680E656 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = SDWebImage; + target = 3847153A6E5EEFB86565BA840768F429 /* SDWebImage */; + targetProxy = 5E7BD4CBFF52513F2165C47BF7B13F0D /* PBXContainerItemProxy */; + }; + 83F1893D230849AF9C307E9CC41D0FBF /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = AvoidCrash; + target = 3FA1E8E62E0263A4B0CA32E2D30D5BFC /* AvoidCrash */; + targetProxy = 37C19017C031E834BDF333968302D1D2 /* PBXContainerItemProxy */; + }; + 85A427292BEBC99F83BF986EBD657A77 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = "AlipaySDK-iOS"; + target = 4847ACB1E2799345AA74D9E317048D58 /* AlipaySDK-iOS */; + targetProxy = 732EE6B42CAE5FD65F332A7817CE0BE0 /* PBXContainerItemProxy */; + }; + 895AC6C6B982BD094C53C1EDD2057B3F /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = TUICore; + target = EB381B961261861E0643718E562995A8 /* TUICore */; + targetProxy = CABFC33BF0F819F399EDD67ACF107B36 /* PBXContainerItemProxy */; + }; + 8C78BD59EF9ED450FB5163448335C001 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = TIMPush; + target = 4927495D845F79030185863355F5B96F /* TIMPush */; + targetProxy = 1281264C00145AC68F1F17C3C57DF63D /* PBXContainerItemProxy */; + }; + 8D5D981266656AD0FD6FC30B25E3E7EE /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = "WechatOpenSDK-XCFramework"; + target = 7F18C31A804695333763EEC303E265D7 /* WechatOpenSDK-XCFramework */; + targetProxy = 09AAB4E5693870EA6C09BC124338463D /* PBXContainerItemProxy */; + }; + 8DF96A1B0F7412C8879516D103F3E439 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = QCloudCOSXML; + target = B2155DC9E9B69430B6C78F3E6D06BACF /* QCloudCOSXML */; + targetProxy = EAA732F4DFAB772C8DFF53A9F3E4B3D8 /* PBXContainerItemProxy */; + }; + 8ECD9E9FC888A35814BCE0AC9C5B2506 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = TencentCloudHuiyanSDKFace_framework; + target = 5E1A429206107DAD9DA8C2C93A5BAFC5 /* TencentCloudHuiyanSDKFace_framework */; + targetProxy = 237A2C43FD43EFA1B999B025652DDE9C /* PBXContainerItemProxy */; + }; + 8F64DD0C0060BCA30CA76D2F360C2566 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = YYImage; + target = 822E44240F2922DAB12018A6B649BD19 /* YYImage */; + targetProxy = 028557861E402973F8077C9376E7CBC3 /* PBXContainerItemProxy */; + }; + 923A404D8B27F34E4C5B3FB103067882 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = AgoraComponetLog; + target = 49F1FB331F497E32873611039BAF1C27 /* AgoraComponetLog */; + targetProxy = 4AAE1FC807145DC21418D6028197EF7B /* PBXContainerItemProxy */; + }; + 93C32D3DD3C94BD8E2298593899D8D49 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = "TIMPush-TIMPush_Privacy"; + target = A3672D206FD781B76503C6F6C0C8191A /* TIMPush-TIMPush_Privacy */; + targetProxy = 96D867B7C5AE3119C286CD14E2631376 /* PBXContainerItemProxy */; + }; + 9CA44088EBF2625880A2BFE1A146146A /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = libwebp; + target = 47D2E85A78C25869BB13521D8561A638 /* libwebp */; + targetProxy = 32798F602FF0B7FFA6DC2B02A6531C23 /* PBXContainerItemProxy */; + }; + 9DFAB53C27C5974AEF5A2C2403A523A6 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = SDWebImage; + target = 3847153A6E5EEFB86565BA840768F429 /* SDWebImage */; + targetProxy = 91F6915B9C2691E207F50667D0C6CC64 /* PBXContainerItemProxy */; + }; + 9E0735FDCB0FF2E0BC8A3C8A38EB01ED /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = SSZipArchive; + target = F60E38364AFF5E1349FF07415B944396 /* SSZipArchive */; + targetProxy = 3A15BE3BA831AB6D82AF832865D3660D /* PBXContainerItemProxy */; + }; + A22B62056AAD32F9F7BCCE4FAA82C5EB /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = Zip; + target = 31708EE6929C61C0EDA6F5DAE3AF9DB7 /* Zip */; + targetProxy = 1C578EC7E8798F8C9B3105C93F8EF2BC /* PBXContainerItemProxy */; + }; + A2D99EB2EFD20837F6C2055DB2B669DC /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = TXIMSDK_Plus_iOS_XCFramework; + target = BB2154EC919CB4298C80ED396B322C5F /* TXIMSDK_Plus_iOS_XCFramework */; + targetProxy = E8B3BF8E10AA744AECDE61C270366A34 /* PBXContainerItemProxy */; + }; + A91552D7E3CD63D083565AFD11177DFF /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = YYCategories; + target = 4CF4590C80DA0BCFB23334523B614709 /* YYCategories */; + targetProxy = 020891F66636A97959E12CCF051160CD /* PBXContainerItemProxy */; + }; + AA4F5CEC77C1B56F575BB051F5A15C87 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = AliyunOSSiOS; + target = C1FD11F5F7EBFF63F845CDF963F73E1A /* AliyunOSSiOS */; + targetProxy = 41094FC104272DEC00E861120E8F0F7A /* PBXContainerItemProxy */; + }; + AAE86F5A624AEDF242FACE275672E717 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = TUIChat; + target = 05927177BD6FAFDF573D533A8665C859 /* TUIChat */; + targetProxy = ECE45EFCD3202BFFD3B36C1DC4898AF0 /* PBXContainerItemProxy */; + }; + AB2C50D4D5AF223EDA2BF3EE7139D83D /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = JXPagingView; + target = C4E1020AF425614337737213AA26DBD5 /* JXPagingView */; + targetProxy = 59FFFE0EA691487F70851399F4DE2172 /* PBXContainerItemProxy */; + }; + AD2FFF19A6632FD7DAFC6592D5DA674E /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = TXIMSDK_Plus_iOS_XCFramework; + target = BB2154EC919CB4298C80ED396B322C5F /* TXIMSDK_Plus_iOS_XCFramework */; + targetProxy = 88E30E6E51B37F5BD260E3376D6FA658 /* PBXContainerItemProxy */; + }; + AE2DC037B2DCA13F5F8C7ABC84CB199F /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = "TUIChat-TUIChat_Privacy"; + target = F56DFD738FAB4E4F07F2D2E962EA3946 /* TUIChat-TUIChat_Privacy */; + targetProxy = FBA10CBC55CE9D39CC04D596F3363C16 /* PBXContainerItemProxy */; + }; + AE609A82E972F90891FEC05C429FC496 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = YYCache; + target = CFDAE6EB02F58B9A37CADCF439AE6082 /* YYCache */; + targetProxy = 0652AD0FEB33FFA21855D67268259526 /* PBXContainerItemProxy */; + }; + B0B5C96E3A15A83C8BE36F3774FB5B22 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = "TUICore-TUICore_Privacy"; + target = 8F36C5664BEF7888A4F179030A11C598 /* TUICore-TUICore_Privacy */; + targetProxy = 28F10095BD55DDB900D01FB05E0CC845 /* PBXContainerItemProxy */; + }; + B125397A2465FC702DE4CD68AFBA60B7 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = YYCategories; + target = 4CF4590C80DA0BCFB23334523B614709 /* YYCategories */; + targetProxy = 74A5CF175C93FFF5139D6B689616E8CB /* PBXContainerItemProxy */; + }; + B32A652E0054AD76BE195251A6677D76 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = FMDB; + target = 8592E0E389D40AC17881400ADC67ABC0 /* FMDB */; + targetProxy = 9BF107EA92F565EFA85837758B1E142C /* PBXContainerItemProxy */; + }; + B49EFF3266CBE65FABF0D659F19A9FAB /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = SVGAPlayer; + target = EF4EFD5BE77B99AACFB0B7ACE03D198F /* SVGAPlayer */; + targetProxy = BBE3140C15182EB5C795C43E74778A6B /* PBXContainerItemProxy */; + }; + B68A6A13F0045607132CFE197044A8F2 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = TIMCommon; + target = 46196B0F15FB5453681E745A8C1700C8 /* TIMCommon */; + targetProxy = 9575AD4B351933C5F7CF2F49DCC4E628 /* PBXContainerItemProxy */; + }; + B83C71E4C20BCBDF90A214E8BC1DCA19 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = FMDB; + target = 8592E0E389D40AC17881400ADC67ABC0 /* FMDB */; + targetProxy = 576D780D64039138ADFE2DE8A0E8D0A4 /* PBXContainerItemProxy */; + }; + B9A685320CFFBD9D1995DF27826D4101 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = TZImagePickerController; + target = A96BBB982D62BB807B5BD10774BE2D07 /* TZImagePickerController */; + targetProxy = D09A5E2E9F2D1F46DBCFAA557C7B589E /* PBXContainerItemProxy */; + }; + BE8EEA9F02FEBC3CD7286C6B076F7239 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = Bugly; + target = 4A68CFD979D413A619DF631BB121D98F /* Bugly */; + targetProxy = C336193CEF49DBBA2913F599EC1F0E53 /* PBXContainerItemProxy */; + }; + C04659742D9B261A7513ABEF8409839E /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = YYCache; + target = CFDAE6EB02F58B9A37CADCF439AE6082 /* YYCache */; + targetProxy = 6B0EECF76C24E4F2A0AE6FFA51CFCB05 /* PBXContainerItemProxy */; + }; + C209FB4656F4881E77CE617AAA98610D /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = YYImage; + target = 822E44240F2922DAB12018A6B649BD19 /* YYImage */; + targetProxy = 4442227DC45815DC3B0E2DA7A2A25EF8 /* PBXContainerItemProxy */; + }; + C448B7B706D24EE1E7900D826B058BFD /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = TIMCommon; + target = 46196B0F15FB5453681E745A8C1700C8 /* TIMCommon */; + targetProxy = ADFF61EAF4459FB2F5F4CBE6F28D765A /* PBXContainerItemProxy */; + }; + C6A8014E8334B6A1D61A4EEDCE72D1C3 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = "BRPickerView-BRPickerView.Privacy"; + target = 941104F296513E17138328984384286C /* BRPickerView-BRPickerView.Privacy */; + targetProxy = DEAD0FBD5C5AC5D71ABED4B71B26FED2 /* PBXContainerItemProxy */; + }; + C715EBFE0C4552363AB027B54E5440D6 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = IQKeyboardManager; + target = FBA456CB50E371584C11231929A0971E /* IQKeyboardManager */; + targetProxy = DAFF3B41501CABEEA3D82BDFDA35DDC8 /* PBXContainerItemProxy */; + }; + CB7B11B65400D5AE365A0F57A442A5ED /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = YYImage; + target = 822E44240F2922DAB12018A6B649BD19 /* YYImage */; + targetProxy = 500760E24363ECDF7890F0D69D11C3AD /* PBXContainerItemProxy */; + }; + CD7EA43F13F6AC4C32695101DE963AAD /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = TZImagePickerController; + target = A96BBB982D62BB807B5BD10774BE2D07 /* TZImagePickerController */; + targetProxy = E078D03B34BAFFFE0E9EDF2CED1A0A1B /* PBXContainerItemProxy */; + }; + D0706D56AF4F4A63FCF9448D60D708DF /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = MJRefresh; + target = 6868056D761E163D10FDAF8CF1C4D9B8 /* MJRefresh */; + targetProxy = EBE0D2A69DD9DAA83E86F9CED91EEAF1 /* PBXContainerItemProxy */; + }; + D1A3342385DBAB8316F8C8934D25EAD2 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = Zip; + target = 31708EE6929C61C0EDA6F5DAE3AF9DB7 /* Zip */; + targetProxy = 75E27EAD9B648921F61C9ABBA4CBEFAE /* PBXContainerItemProxy */; + }; + D3524B9FB35B4CBD08F93E36FD07BD08 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = "WechatOpenSDK-XCFramework"; + target = 7F18C31A804695333763EEC303E265D7 /* WechatOpenSDK-XCFramework */; + targetProxy = 3157F3A5741DB4A4370ECDCE9A21D4B5 /* PBXContainerItemProxy */; + }; + D53F9A23E2267A99D7664269C460073B /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = ReactiveObjC; + target = 438B238ACC7DF1178D1BCE1A31983146 /* ReactiveObjC */; + targetProxy = 63D08DF051D6CDA4F8FA805DA51355C3 /* PBXContainerItemProxy */; + }; + D60BD3FD4A6CB1899F9361553BD81A20 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = SSZipArchive; + target = F60E38364AFF5E1349FF07415B944396 /* SSZipArchive */; + targetProxy = DD0704D52564443ADE2B9640A285A131 /* PBXContainerItemProxy */; + }; + D61FE29C6BF95748BBEA1B93E3896A53 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = QCloudCOSXML; + target = B2155DC9E9B69430B6C78F3E6D06BACF /* QCloudCOSXML */; + targetProxy = 4BE456AF0CDEEE4AE5F8320B05C84875 /* PBXContainerItemProxy */; + }; + D6EADCB8D483F159AB283267E4AFE1C0 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = Masonry; + target = 55AF53E6C77A10ED4985E04D74A8878E /* Masonry */; + targetProxy = B3451F3E8C4912090BA5B338CCCDA977 /* PBXContainerItemProxy */; + }; + D7C6D36DA420DEACD49D465BD1D592D5 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = AvoidCrash; + target = 3FA1E8E62E0263A4B0CA32E2D30D5BFC /* AvoidCrash */; + targetProxy = 1D4028B5653790FD7C1664A8F8B44706 /* PBXContainerItemProxy */; + }; + D93E0810A5B6CD1E2C28161F302F3B27 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = SDWebImage; + target = 3847153A6E5EEFB86565BA840768F429 /* SDWebImage */; + targetProxy = ED19FEE3F2B1CD87A7363CB415741848 /* PBXContainerItemProxy */; + }; + DA7F32628634444055D710E99BA8E191 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = YYWebImage; + target = 488E8C830C5A5694EE916251B9ADAADA /* YYWebImage */; + targetProxy = 5CA7DA26B29C599B586021D786100313 /* PBXContainerItemProxy */; + }; + DAFE8BD73D259D9B06DEDCE36AB1BBBC /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = YYCache; + target = CFDAE6EB02F58B9A37CADCF439AE6082 /* YYCache */; + targetProxy = E279B3C8C18063C1DF056DF766D02ED1 /* PBXContainerItemProxy */; + }; + DC5326A15B348F14D2F4DF6E7A4CB513 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = JXPagingView; + target = C4E1020AF425614337737213AA26DBD5 /* JXPagingView */; + targetProxy = 6D3AF90D318A9DEA4591D1395A8C1367 /* PBXContainerItemProxy */; + }; + E2C8D7C257776C86B27EDE2A90A1EB31 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = SDCycleScrollView; + target = CBED833AAD6266F3AEFE9BE31C68E094 /* SDCycleScrollView */; + targetProxy = D182EB0D4EE294BF10C6D707A0D39024 /* PBXContainerItemProxy */; + }; + E3CB35B2F152CB0D7DC06AC3C2C0150F /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = TUICore; + target = EB381B961261861E0643718E562995A8 /* TUICore */; + targetProxy = 628121684B04DE0EBD44BA2B43690247 /* PBXContainerItemProxy */; + }; + E4F3C97C6731AE940B485385DDD1355F /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = LLDebugTool; + target = 5A3DE9AE6F3A36E1625275AD8CEC43B4 /* LLDebugTool */; + targetProxy = 4F31066B4A5C6619D5880F4069EEFE98 /* PBXContainerItemProxy */; + }; + E75BD8CE4713E3D3415C7BF74B136DD4 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = AgoraInfra_iOS; + target = 2F7F7AAA1C81C1ECBEECAABE3C3609AC /* AgoraInfra_iOS */; + targetProxy = 5C9AC1DB7EA0D2557EE7343EEFFB9FD4 /* PBXContainerItemProxy */; + }; + EB961BD51488140C87DE9CEA8B39ED95 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = "JXPagingView-JXPagerView"; + target = 16704C6B67439DA959DB043702C75A7A /* JXPagingView-JXPagerView */; + targetProxy = 50A7C44D30473B9AF60C176F2D361614 /* PBXContainerItemProxy */; + }; + ECC5D0CC6E1FD46A3C5F2DF5E17D3D36 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = BRPickerView; + target = D505645C3F99EB1E8B6529D64D2C3E1C /* BRPickerView */; + targetProxy = E46BC07786369083D70505B105235C8B /* PBXContainerItemProxy */; + }; + ED6E20575779E51ECD4362EAB0C9ABFE /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = YYModel; + target = 84B44807A12996D487A4A591A481D6A0 /* YYModel */; + targetProxy = 84E3A5308B439C1EFA044ECD8B9A38C8 /* PBXContainerItemProxy */; + }; + EEA4A7B84264455B32834806BE6C3CDF /* PBXTargetDependency */ = { isa = PBXTargetDependency; name = MBProgressHUD; target = 82B0A41D3031FF27D78E17B0A9A46FB0 /* MBProgressHUD */; - targetProxy = 41548FCEEAFED71596646284E6CD6165 /* PBXContainerItemProxy */; + targetProxy = DE4E655A959E1598CC8F2579E98B08A4 /* PBXContainerItemProxy */; + }; + EFDF87F92966C3B65874FC9D9C57E25C /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = AgoraRtcEngine_iOS; + target = 183C29DD6DE04D22CA29BAE61F5C530B /* AgoraRtcEngine_iOS */; + targetProxy = A174F9D7A404D2D8F73E0D0E6028BD63 /* PBXContainerItemProxy */; + }; + F1A003952B367EFB17076A988586FAB7 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = TIMPush; + target = 4927495D845F79030185863355F5B96F /* TIMPush */; + targetProxy = 80EC13B5260679E745963371D6ECF68E /* PBXContainerItemProxy */; + }; + F2FCA4761A420D310B5F126303646354 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = QCloudCore; + target = DBD31C8A3F2371ED732009637E95423D /* QCloudCore */; + targetProxy = 0952E0D150ED3103EF4A7CFA1C5804E8 /* PBXContainerItemProxy */; + }; + F360729E83AFD49880E3C195EC349655 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = LLDebugTool; + target = 5A3DE9AE6F3A36E1625275AD8CEC43B4 /* LLDebugTool */; + targetProxy = 2BD935484349F98B50BCD16507C92672 /* PBXContainerItemProxy */; + }; + F3DDEC9D5D1016E0E08F60308529C1DA /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = TIMCommon; + target = 46196B0F15FB5453681E745A8C1700C8 /* TIMCommon */; + targetProxy = 1F2591DAB90FBBADED218A0035E01B6A /* PBXContainerItemProxy */; + }; + F61C086109946FEF4B88BE4ED06757D9 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = "MJRefresh-MJRefresh.Privacy"; + target = B26054DF1DEA11585A231AF6D1D80D5E /* MJRefresh-MJRefresh.Privacy */; + targetProxy = 714338FADA42542BEAAF434CA9D7016E /* PBXContainerItemProxy */; + }; + F6C50F6A681C1998883B324282CDB953 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = QCloudCore; + target = DBD31C8A3F2371ED732009637E95423D /* QCloudCore */; + targetProxy = F3A7BF69C0DED3C741059EA4574310A0 /* PBXContainerItemProxy */; + }; + F6E08EA412EB058D2B0BDB2269909ACC /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = "SDWebImage-SDWebImage"; + target = 94CFBA7D633ECA58DF85C327B035E6A3 /* SDWebImage-SDWebImage */; + targetProxy = 8F908A2F824D8F80641268B41277AB4A /* PBXContainerItemProxy */; + }; + F855DCB2F08495A69487133AB25B5D61 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = "IQKeyboardManager-IQKeyboardManager"; + target = 05B2A835D60F78761395189914B88047 /* IQKeyboardManager-IQKeyboardManager */; + targetProxy = 07CC761A63DA4D49464DFF756E5D24E4 /* PBXContainerItemProxy */; + }; + F911C729D1A695931311F73AD23C50B4 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = "AgoraLyricsScore-AgoraLyricsScoreBundle"; + target = 0409F31E66073F5C1A3BBA08171DD017 /* AgoraLyricsScore-AgoraLyricsScoreBundle */; + targetProxy = 45EC9278BFD02DA63B5A3B2772FE32DA /* PBXContainerItemProxy */; + }; + F9C14FA16D996314C95D812A34277E2A /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = SDWebImage; + target = 3847153A6E5EEFB86565BA840768F429 /* SDWebImage */; + targetProxy = 4CB767C2134601903D4C00B2322B6FDA /* PBXContainerItemProxy */; + }; + FBB50E231EB1A9B4056417CC4864EA85 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = SDCycleScrollView; + target = CBED833AAD6266F3AEFE9BE31C68E094 /* SDCycleScrollView */; + targetProxy = CAFEE185BB6C4D90077FFB8B75ABAA8F /* PBXContainerItemProxy */; + }; + FC37B04DACD3EC54B63B172959948082 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = "TXIMSDK_Plus_iOS_XCFramework-TXIMSDK_Plus_iOS_XCFramework_Privacy"; + target = F71BF3AB61E6444B3140F0A3A86B2910 /* TXIMSDK_Plus_iOS_XCFramework-TXIMSDK_Plus_iOS_XCFramework_Privacy */; + targetProxy = 0B5E6DAAC9C3B97218B31CCDCC2AEC32 /* PBXContainerItemProxy */; + }; + FC9D73AF163198C6AEF3E6088608B833 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = Masonry; + target = 55AF53E6C77A10ED4985E04D74A8878E /* Masonry */; + targetProxy = 5459B75ABEE9F255EB0293FAEB3A9F42 /* PBXContainerItemProxy */; + }; + FCF1A524BA195A1A8E04BB7399C550A4 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = AgoraRtcEngine_iOS; + target = 183C29DD6DE04D22CA29BAE61F5C530B /* AgoraRtcEngine_iOS */; + targetProxy = 41A43E1AC329881F60B7766205E64985 /* PBXContainerItemProxy */; + }; + FEB1107B92EF1A5AF2C3DCF7D271B335 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = TUIConversation; + target = 7E6A8D6108E4537DCBFAFA98674E2A71 /* TUIConversation */; + targetProxy = EB3D1E6F410C807E454A09E9D8738B0E /* PBXContainerItemProxy */; }; /* End PBXTargetDependency section */ /* Begin XCBuildConfiguration section */ - 015062357906C4315DA04129844CAC9F /* Release */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = 022A531397C9F020E81FB203A4CF5AA8 /* BRPickerView.release.xcconfig */; - buildSettings = { - CODE_SIGNING_ALLOWED = NO; - CONFIGURATION_BUILD_DIR = "$(BUILD_DIR)/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)/BRPickerView"; - IBSC_MODULE = BRPickerView; - INFOPLIST_FILE = "Target Support Files/BRPickerView/ResourceBundle-BRPickerView.Privacy-BRPickerView-Info.plist"; - IPHONEOS_DEPLOYMENT_TARGET = 9.0; - PRODUCT_NAME = BRPickerView.Privacy; - SDKROOT = iphoneos; - SKIP_INSTALL = YES; - TARGETED_DEVICE_FAMILY = "1,2"; - WRAPPER_EXTENSION = bundle; - }; - name = Release; - }; - 032198A9C208329F1C27325DD32233FB /* Debug */ = { + 02037E21114487605FF35B356BE57D8E /* Debug */ = { isa = XCBuildConfiguration; baseConfigurationReference = 5D788B07075A4FD166F5F45AC14AC33C /* TIMCommon.debug.xcconfig */; buildSettings = { @@ -18525,7 +19976,7 @@ }; 03BDE2119EC57C1CFA55739556BCBBC2 /* Debug */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 987F50B8EC7D4A5A1CA1D8518129FDFD /* LLDebugTool.debug.xcconfig */; + baseConfigurationReference = EBDFCC8623E4DB819943C76047E711CA /* LLDebugTool.debug.xcconfig */; buildSettings = { "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; @@ -18579,26 +20030,9 @@ }; name = Debug; }; - 0795B532A493BAB0EF01FC3ACBF35EB8 /* Debug */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = DA73079D48B0F03AB6E8813303F0D692 /* Protobuf.debug.xcconfig */; - buildSettings = { - CODE_SIGNING_ALLOWED = NO; - CONFIGURATION_BUILD_DIR = "$(BUILD_DIR)/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)/Protobuf"; - IBSC_MODULE = Protobuf; - INFOPLIST_FILE = "Target Support Files/Protobuf/ResourceBundle-Protobuf_Privacy-Protobuf-Info.plist"; - IPHONEOS_DEPLOYMENT_TARGET = 10.0; - PRODUCT_NAME = Protobuf_Privacy; - SDKROOT = iphoneos; - SKIP_INSTALL = YES; - TARGETED_DEVICE_FAMILY = "1,2"; - WRAPPER_EXTENSION = bundle; - }; - name = Debug; - }; 083439C5D4C996FED69AEC218D24AA6C /* Release */ = { isa = XCBuildConfiguration; - baseConfigurationReference = C20969D5F396CD4CAB6E9EDA39EC279F /* LLDebugTool.release.xcconfig */; + baseConfigurationReference = 7407A1FCF518A0D31B1F5CF0AC98CB66 /* LLDebugTool.release.xcconfig */; buildSettings = { "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; @@ -18637,7 +20071,7 @@ }; 0B43BC701B216FA78FFAF5D583ADA4C5 /* Debug */ = { isa = XCBuildConfiguration; - baseConfigurationReference = D07CAE0A81A28571633FD8842EDBE8CB /* AgoraComponetLog.debug.xcconfig */; + baseConfigurationReference = BB22CF2535044A0A5C300D31ECF18D68 /* AgoraComponetLog.debug.xcconfig */; buildSettings = { ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor; @@ -18654,7 +20088,7 @@ }; 0CB96FC9A1A1E7D68149A5F7980A0F3E /* Release */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 2F4308A38596D866AEC25B61D2C87543 /* MJRefresh.release.xcconfig */; + baseConfigurationReference = AE650260687E865E28534C92B50333AC /* MJRefresh.release.xcconfig */; buildSettings = { CLANG_ENABLE_OBJC_WEAK = NO; "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; @@ -18692,49 +20126,26 @@ }; name = Release; }; - 0D57A3B9AF147E7EAAF07548BC300423 /* Release */ = { + 104167F4652B5708F20ACF851F366EC2 /* Release */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 664D85C77511FBEB1896EFC975EA5903 /* Pods-QXLiveDev.release.xcconfig */; + baseConfigurationReference = 313EBD1ED4CF3BFF7D35A23B739B12D3 /* IQKeyboardManager.release.xcconfig */; buildSettings = { - ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = NO; - CLANG_ENABLE_OBJC_WEAK = NO; - "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; - "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; - "CODE_SIGN_IDENTITY[sdk=watchos*]" = ""; - CURRENT_PROJECT_VERSION = 1; - DEFINES_MODULE = YES; - DYLIB_COMPATIBILITY_VERSION = 1; - DYLIB_CURRENT_VERSION = 1; - DYLIB_INSTALL_NAME_BASE = "@rpath"; - ENABLE_MODULE_VERIFIER = NO; - ENABLE_USER_SCRIPT_SANDBOXING = NO; - INFOPLIST_FILE = "Target Support Files/Pods-QXLiveDev/Pods-QXLiveDev-Info.plist"; - INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; - IPHONEOS_DEPLOYMENT_TARGET = 13.0; - LD_RUNPATH_SEARCH_PATHS = ( - "$(inherited)", - "@executable_path/Frameworks", - "@loader_path/Frameworks", - ); - MACH_O_TYPE = staticlib; - MODULEMAP_FILE = "Target Support Files/Pods-QXLiveDev/Pods-QXLiveDev.modulemap"; - OTHER_LDFLAGS = ""; - OTHER_LIBTOOLFLAGS = ""; - PODS_ROOT = "$(SRCROOT)"; - PRODUCT_BUNDLE_IDENTIFIER = "org.cocoapods.${PRODUCT_NAME:rfc1034identifier}"; - PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)"; + CODE_SIGNING_ALLOWED = NO; + CONFIGURATION_BUILD_DIR = "$(BUILD_DIR)/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)/IQKeyboardManager"; + IBSC_MODULE = IQKeyboardManager; + INFOPLIST_FILE = "Target Support Files/IQKeyboardManager/ResourceBundle-IQKeyboardManager-IQKeyboardManager-Info.plist"; + IPHONEOS_DEPLOYMENT_TARGET = 11.0; + PRODUCT_NAME = IQKeyboardManager; SDKROOT = iphoneos; SKIP_INSTALL = YES; TARGETED_DEVICE_FAMILY = "1,2"; - VALIDATE_PRODUCT = YES; - VERSIONING_SYSTEM = "apple-generic"; - VERSION_INFO_PREFIX = ""; + WRAPPER_EXTENSION = bundle; }; name = Release; }; 157AD3B723F05789883502A3BA33D47E /* Debug */ = { isa = XCBuildConfiguration; - baseConfigurationReference = C9671D5694D2FCBEADA969DC5D078145 /* YYCache.debug.xcconfig */; + baseConfigurationReference = BE6A723E1647D64586473167B3B8811F /* YYCache.debug.xcconfig */; buildSettings = { "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; @@ -18811,7 +20222,7 @@ }; 1678969C8124CD86F0021F161770508F /* Release */ = { isa = XCBuildConfiguration; - baseConfigurationReference = F0EB163B760EC1D361AAEBDEE607BDA1 /* TIMPush.release.xcconfig */; + baseConfigurationReference = AE8AA30C86BACC4D9D753D8DC071E34C /* TIMPush.release.xcconfig */; buildSettings = { ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor; @@ -18849,7 +20260,7 @@ }; 19692950CCBFDC007F68A84421AE2F21 /* Release */ = { isa = XCBuildConfiguration; - baseConfigurationReference = D493A05AE3999CBA727F95D6D0981C65 /* SDCycleScrollView.release.xcconfig */; + baseConfigurationReference = 2237A6209697E17B9F9540A670A6BE23 /* SDCycleScrollView.release.xcconfig */; buildSettings = { "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; @@ -18886,26 +20297,9 @@ }; name = Release; }; - 1C1F22E72A5F34ABB9B2CAFC2DEF0C85 /* Debug */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = 08B8980434FBD4317A7A907D8F0BA6EB /* TUICore.debug.xcconfig */; - buildSettings = { - CODE_SIGNING_ALLOWED = NO; - CONFIGURATION_BUILD_DIR = "$(BUILD_DIR)/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)/TUICore"; - IBSC_MODULE = TUICore; - INFOPLIST_FILE = "Target Support Files/TUICore/ResourceBundle-TUICore_Privacy-TUICore-Info.plist"; - IPHONEOS_DEPLOYMENT_TARGET = 9.0; - PRODUCT_NAME = TUICore_Privacy; - SDKROOT = iphoneos; - SKIP_INSTALL = YES; - TARGETED_DEVICE_FAMILY = "1,2"; - WRAPPER_EXTENSION = bundle; - }; - name = Debug; - }; 1C693228969B071FB6AB7D13D32515F0 /* Debug */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 04C1501BE84465D65722FF50DE813C49 /* BRPickerView.debug.xcconfig */; + baseConfigurationReference = 59A03BE22CDD449090BAC7B02AF796E4 /* BRPickerView.debug.xcconfig */; buildSettings = { "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; @@ -18941,26 +20335,9 @@ }; name = Debug; }; - 1C77503C05F674AD8A47CA0FBDF91656 /* Debug */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = C879FEB44DB34C3BA3BE82553CB57D91 /* TIMPush.debug.xcconfig */; - buildSettings = { - CODE_SIGNING_ALLOWED = NO; - CONFIGURATION_BUILD_DIR = "$(BUILD_DIR)/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)/TIMPush"; - IBSC_MODULE = TIMPush; - INFOPLIST_FILE = "Target Support Files/TIMPush/ResourceBundle-TIMPush_Privacy-TIMPush-Info.plist"; - IPHONEOS_DEPLOYMENT_TARGET = 10.0; - PRODUCT_NAME = TIMPush_Privacy; - SDKROOT = iphoneos; - SKIP_INSTALL = YES; - TARGETED_DEVICE_FAMILY = "1,2"; - WRAPPER_EXTENSION = bundle; - }; - name = Debug; - }; 1E8E445D79AADEC279F1DEB05B19EDDC /* Debug */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 976E1C74975814DB018A48C7B6007B82 /* SSZipArchive.debug.xcconfig */; + baseConfigurationReference = 0AF9691CBD931F8DB1AB89D3DC087C3D /* SSZipArchive.debug.xcconfig */; buildSettings = { "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; @@ -18997,7 +20374,7 @@ }; 1F0FA002C3966D33754A571BF47D33DF /* Release */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 05A955183D3132502ACEA19704DED8DF /* YYCache.release.xcconfig */; + baseConfigurationReference = 67920ED57D0F6DF210C68AB499BFD9D5 /* YYCache.release.xcconfig */; buildSettings = { "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; @@ -19034,26 +20411,9 @@ }; name = Release; }; - 1FAA7CA679DAD66BFA9E7150F30B165A /* Debug */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = 0A069424C6F4B84840CB9A263F727E07 /* TXIMSDK_Plus_iOS_XCFramework.debug.xcconfig */; - buildSettings = { - CODE_SIGNING_ALLOWED = NO; - CONFIGURATION_BUILD_DIR = "$(BUILD_DIR)/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)/TXIMSDK_Plus_iOS_XCFramework"; - IBSC_MODULE = TXIMSDK_Plus_iOS_XCFramework; - INFOPLIST_FILE = "Target Support Files/TXIMSDK_Plus_iOS_XCFramework/ResourceBundle-TXIMSDK_Plus_iOS_XCFramework_Privacy-TXIMSDK_Plus_iOS_XCFramework-Info.plist"; - IPHONEOS_DEPLOYMENT_TARGET = 8.0; - PRODUCT_NAME = TXIMSDK_Plus_iOS_XCFramework_Privacy; - SDKROOT = iphoneos; - SKIP_INSTALL = YES; - TARGETED_DEVICE_FAMILY = "1,2"; - WRAPPER_EXTENSION = bundle; - }; - name = Debug; - }; 2137AC0766C8BAB16F1C60E41783F2E1 /* Debug */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 27920C8907D0C4BA0EE35D12FCA02C15 /* YYWebImage.debug.xcconfig */; + baseConfigurationReference = D3B5ABAAD3C55CA06C58BC87CEED0469 /* YYWebImage.debug.xcconfig */; buildSettings = { "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; @@ -19091,7 +20451,7 @@ }; 219D2EE2B523B90DFC9201EF68C6DE8A /* Debug */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 467428FA1052A78F712E8319CC5186C5 /* SDWebImageWebPCoder.debug.xcconfig */; + baseConfigurationReference = 98B77E03C826D52220B2151CB7FF4B08 /* SDWebImageWebPCoder.debug.xcconfig */; buildSettings = { "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; @@ -19127,105 +20487,43 @@ }; name = Debug; }; - 22A999E3C3DC88485A6B1C6CDDED0BE9 /* Release */ = { + 23E2D6B789479D155207EA63E44945EC /* Debug */ = { isa = XCBuildConfiguration; - baseConfigurationReference = F372B39EE831B089CBFC2E8A71C0AE92 /* YYImage.release.xcconfig */; - buildSettings = { - "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; - "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; - "CODE_SIGN_IDENTITY[sdk=watchos*]" = ""; - CURRENT_PROJECT_VERSION = 1; - DEFINES_MODULE = YES; - DYLIB_COMPATIBILITY_VERSION = 1; - DYLIB_CURRENT_VERSION = 1; - DYLIB_INSTALL_NAME_BASE = "@rpath"; - ENABLE_MODULE_VERIFIER = NO; - ENABLE_USER_SCRIPT_SANDBOXING = NO; - GCC_PREFIX_HEADER = "Target Support Files/YYImage/YYImage-prefix.pch"; - GENERATE_INFOPLIST_FILE = NO; - INFOPLIST_FILE = "Target Support Files/YYImage/YYImage-Info.plist"; - INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; - IPHONEOS_DEPLOYMENT_TARGET = 8.0; - LD_RUNPATH_SEARCH_PATHS = ( - "$(inherited)", - "@executable_path/Frameworks", - "@loader_path/Frameworks", - ); - MODULEMAP_FILE = "Target Support Files/YYImage/YYImage.modulemap"; - PRODUCT_MODULE_NAME = YYImage; - PRODUCT_NAME = YYImage; - SDKROOT = iphoneos; - SKIP_INSTALL = YES; - SWIFT_ACTIVE_COMPILATION_CONDITIONS = "$(inherited) "; - SWIFT_INSTALL_OBJC_HEADER = YES; - SWIFT_VERSION = 6.0; - TARGETED_DEVICE_FAMILY = "1,2"; - VALIDATE_PRODUCT = YES; - VERSIONING_SYSTEM = "apple-generic"; - VERSION_INFO_PREFIX = ""; - }; - name = Release; - }; - 2337ACC38393E07C21C0AC096224C9C2 /* Release */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = 2598910578FE259E665B3B0E83B7BDF0 /* Pods-QXLive.release.xcconfig */; - buildSettings = { - ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = NO; - CLANG_ENABLE_OBJC_WEAK = NO; - "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; - "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; - "CODE_SIGN_IDENTITY[sdk=watchos*]" = ""; - CURRENT_PROJECT_VERSION = 1; - DEFINES_MODULE = YES; - DYLIB_COMPATIBILITY_VERSION = 1; - DYLIB_CURRENT_VERSION = 1; - DYLIB_INSTALL_NAME_BASE = "@rpath"; - ENABLE_MODULE_VERIFIER = NO; - ENABLE_USER_SCRIPT_SANDBOXING = NO; - INFOPLIST_FILE = "Target Support Files/Pods-QXLive/Pods-QXLive-Info.plist"; - INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; - IPHONEOS_DEPLOYMENT_TARGET = 13.0; - LD_RUNPATH_SEARCH_PATHS = ( - "$(inherited)", - "@executable_path/Frameworks", - "@loader_path/Frameworks", - ); - MACH_O_TYPE = staticlib; - MODULEMAP_FILE = "Target Support Files/Pods-QXLive/Pods-QXLive.modulemap"; - OTHER_LDFLAGS = ""; - OTHER_LIBTOOLFLAGS = ""; - PODS_ROOT = "$(SRCROOT)"; - PRODUCT_BUNDLE_IDENTIFIER = "org.cocoapods.${PRODUCT_NAME:rfc1034identifier}"; - PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)"; - SDKROOT = iphoneos; - SKIP_INSTALL = YES; - TARGETED_DEVICE_FAMILY = "1,2"; - VALIDATE_PRODUCT = YES; - VERSIONING_SYSTEM = "apple-generic"; - VERSION_INFO_PREFIX = ""; - }; - name = Release; - }; - 2451B18F949FB9FF83E0B4A81C1B1549 /* Release */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = 2F4308A38596D866AEC25B61D2C87543 /* MJRefresh.release.xcconfig */; + baseConfigurationReference = 95A438E9583EC9367114459DB27631A0 /* Protobuf.debug.xcconfig */; buildSettings = { CODE_SIGNING_ALLOWED = NO; - CONFIGURATION_BUILD_DIR = "$(BUILD_DIR)/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)/MJRefresh"; - IBSC_MODULE = MJRefresh; - INFOPLIST_FILE = "Target Support Files/MJRefresh/ResourceBundle-MJRefresh.Privacy-MJRefresh-Info.plist"; - IPHONEOS_DEPLOYMENT_TARGET = 12.0; - PRODUCT_NAME = MJRefresh.Privacy; + CONFIGURATION_BUILD_DIR = "$(BUILD_DIR)/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)/Protobuf"; + IBSC_MODULE = Protobuf; + INFOPLIST_FILE = "Target Support Files/Protobuf/ResourceBundle-Protobuf_Privacy-Protobuf-Info.plist"; + IPHONEOS_DEPLOYMENT_TARGET = 10.0; + PRODUCT_NAME = Protobuf_Privacy; SDKROOT = iphoneos; SKIP_INSTALL = YES; TARGETED_DEVICE_FAMILY = "1,2"; WRAPPER_EXTENSION = bundle; }; - name = Release; + name = Debug; + }; + 2597D69161B42065B2E3BAF216B70020 /* Debug */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = D2801E753F234D986E6D64E5D447003D /* TXIMSDK_Plus_iOS_XCFramework.debug.xcconfig */; + buildSettings = { + ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; + ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor; + ENABLE_USER_SCRIPT_SANDBOXING = NO; + IPHONEOS_DEPLOYMENT_TARGET = 8.0; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + ); + SDKROOT = iphoneos; + TARGETED_DEVICE_FAMILY = "1,2"; + }; + name = Debug; }; 25A27C398D81477D5DF96E17EC9F105B /* Debug */ = { isa = XCBuildConfiguration; - baseConfigurationReference = DA73079D48B0F03AB6E8813303F0D692 /* Protobuf.debug.xcconfig */; + baseConfigurationReference = 95A438E9583EC9367114459DB27631A0 /* Protobuf.debug.xcconfig */; buildSettings = { CLANG_ENABLE_OBJC_WEAK = NO; "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; @@ -19264,7 +20562,7 @@ }; 267970A6C5D6696A2AC2F1B9636787A1 /* Release */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 2A1C4AEBC25A44A0C2A4DA887A5B9F40 /* Masonry.release.xcconfig */; + baseConfigurationReference = 1DA7140D48E0E3E591B0673604CC5DB4 /* Masonry.release.xcconfig */; buildSettings = { "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; @@ -19339,16 +20637,33 @@ }; name = Debug; }; - 2AB902796D845E31DB0B43203C6A8476 /* Debug */ = { + 294A09187F51E11BB1BAC9CDFD480342 /* Release */ = { isa = XCBuildConfiguration; - baseConfigurationReference = C30F1C9697667478B08748F74E2E61C6 /* MJRefresh.debug.xcconfig */; + baseConfigurationReference = BAD3D4F05D735E651C44225EEBA0ED08 /* FMDB.release.xcconfig */; buildSettings = { CODE_SIGNING_ALLOWED = NO; - CONFIGURATION_BUILD_DIR = "$(BUILD_DIR)/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)/MJRefresh"; - IBSC_MODULE = MJRefresh; - INFOPLIST_FILE = "Target Support Files/MJRefresh/ResourceBundle-MJRefresh.Privacy-MJRefresh-Info.plist"; + CONFIGURATION_BUILD_DIR = "$(BUILD_DIR)/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)/FMDB"; + IBSC_MODULE = FMDB; + INFOPLIST_FILE = "Target Support Files/FMDB/ResourceBundle-FMDB_Privacy-FMDB-Info.plist"; IPHONEOS_DEPLOYMENT_TARGET = 12.0; - PRODUCT_NAME = MJRefresh.Privacy; + PRODUCT_NAME = FMDB_Privacy; + SDKROOT = iphoneos; + SKIP_INSTALL = YES; + TARGETED_DEVICE_FAMILY = "1,2"; + WRAPPER_EXTENSION = bundle; + }; + name = Release; + }; + 2BA35A296644B72F1BE336372D9D2396 /* Debug */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = A16C101E68E8852784429648C2CCACE5 /* TUIConversation.debug.xcconfig */; + buildSettings = { + CODE_SIGNING_ALLOWED = NO; + CONFIGURATION_BUILD_DIR = "$(BUILD_DIR)/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)/TUIConversation"; + IBSC_MODULE = TUIConversation; + INFOPLIST_FILE = "Target Support Files/TUIConversation/ResourceBundle-TUIConversation_Privacy-TUIConversation-Info.plist"; + IPHONEOS_DEPLOYMENT_TARGET = 9.0; + PRODUCT_NAME = TUIConversation_Privacy; SDKROOT = iphoneos; SKIP_INSTALL = YES; TARGETED_DEVICE_FAMILY = "1,2"; @@ -19356,9 +20671,43 @@ }; name = Debug; }; + 2C620414DB25D50501760CBC361F53C3 /* Debug */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 12EF51BACC197258B8B67C383A336E35 /* FMDB.debug.xcconfig */; + buildSettings = { + CODE_SIGNING_ALLOWED = NO; + CONFIGURATION_BUILD_DIR = "$(BUILD_DIR)/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)/FMDB"; + IBSC_MODULE = FMDB; + INFOPLIST_FILE = "Target Support Files/FMDB/ResourceBundle-FMDB_Privacy-FMDB-Info.plist"; + IPHONEOS_DEPLOYMENT_TARGET = 12.0; + PRODUCT_NAME = FMDB_Privacy; + SDKROOT = iphoneos; + SKIP_INSTALL = YES; + TARGETED_DEVICE_FAMILY = "1,2"; + WRAPPER_EXTENSION = bundle; + }; + name = Debug; + }; + 2C638F91A3689A1E4542E7F0FA79BB18 /* Release */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 09F10D3C43B69141D421137BE6F58F62 /* AgoraLyricsScore.release.xcconfig */; + buildSettings = { + CODE_SIGNING_ALLOWED = NO; + CONFIGURATION_BUILD_DIR = "$(BUILD_DIR)/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)/AgoraLyricsScore"; + IBSC_MODULE = AgoraLyricsScore; + INFOPLIST_FILE = "Target Support Files/AgoraLyricsScore/ResourceBundle-AgoraLyricsScoreBundle-AgoraLyricsScore-Info.plist"; + IPHONEOS_DEPLOYMENT_TARGET = 10.0; + PRODUCT_NAME = AgoraLyricsScoreBundle; + SDKROOT = iphoneos; + SKIP_INSTALL = YES; + TARGETED_DEVICE_FAMILY = "1,2"; + WRAPPER_EXTENSION = bundle; + }; + name = Release; + }; 2D8D89F01134CC947F970AF6312F2F26 /* Release */ = { isa = XCBuildConfiguration; - baseConfigurationReference = F8BC2B200445EF43137B596CD0CE9B46 /* MQTTClient.release.xcconfig */; + baseConfigurationReference = 1854DC9D55B17DD70F4C7058C19FF2F9 /* MQTTClient.release.xcconfig */; buildSettings = { "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; @@ -19434,16 +20783,16 @@ }; name = Release; }; - 2FA1F5031B97E52A065147AE0BCE2F4B /* Release */ = { + 2EC1B80752E7AA23E38E5137488BCAF2 /* Release */ = { isa = XCBuildConfiguration; - baseConfigurationReference = C092C466730A789FFD1F47D57E1CBE1A /* AgoraLyricsScore.release.xcconfig */; + baseConfigurationReference = 8C32E95A497E8AB16BA4B503703866D7 /* TUIChat.release.xcconfig */; buildSettings = { CODE_SIGNING_ALLOWED = NO; - CONFIGURATION_BUILD_DIR = "$(BUILD_DIR)/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)/AgoraLyricsScore"; - IBSC_MODULE = AgoraLyricsScore; - INFOPLIST_FILE = "Target Support Files/AgoraLyricsScore/ResourceBundle-AgoraLyricsScoreBundle-AgoraLyricsScore-Info.plist"; - IPHONEOS_DEPLOYMENT_TARGET = 10.0; - PRODUCT_NAME = AgoraLyricsScoreBundle; + CONFIGURATION_BUILD_DIR = "$(BUILD_DIR)/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)/TUIChat"; + IBSC_MODULE = TUIChat; + INFOPLIST_FILE = "Target Support Files/TUIChat/ResourceBundle-TUIChat_Privacy-TUIChat-Info.plist"; + IPHONEOS_DEPLOYMENT_TARGET = 9.0; + PRODUCT_NAME = TUIChat_Privacy; SDKROOT = iphoneos; SKIP_INSTALL = YES; TARGETED_DEVICE_FAMILY = "1,2"; @@ -19451,124 +20800,60 @@ }; name = Release; }; - 33D93A6DE5EF42B6F1229FDFCEE0A067 /* Debug */ = { + 2EFB8C7F8143E536A73F2168CC5FC150 /* Debug */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 908009E78A2E56530859FF690E873087 /* Pods-QXLiveDev.debug.xcconfig */; + baseConfigurationReference = D2801E753F234D986E6D64E5D447003D /* TXIMSDK_Plus_iOS_XCFramework.debug.xcconfig */; buildSettings = { - ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = NO; - CLANG_ENABLE_OBJC_WEAK = NO; - "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; - "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; - "CODE_SIGN_IDENTITY[sdk=watchos*]" = ""; - CURRENT_PROJECT_VERSION = 1; - DEFINES_MODULE = YES; - DYLIB_COMPATIBILITY_VERSION = 1; - DYLIB_CURRENT_VERSION = 1; - DYLIB_INSTALL_NAME_BASE = "@rpath"; - ENABLE_MODULE_VERIFIER = NO; - ENABLE_USER_SCRIPT_SANDBOXING = NO; - INFOPLIST_FILE = "Target Support Files/Pods-QXLiveDev/Pods-QXLiveDev-Info.plist"; - INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; - IPHONEOS_DEPLOYMENT_TARGET = 13.0; - LD_RUNPATH_SEARCH_PATHS = ( - "$(inherited)", - "@executable_path/Frameworks", - "@loader_path/Frameworks", - ); - MACH_O_TYPE = staticlib; - MODULEMAP_FILE = "Target Support Files/Pods-QXLiveDev/Pods-QXLiveDev.modulemap"; - OTHER_LDFLAGS = ""; - OTHER_LIBTOOLFLAGS = ""; - PODS_ROOT = "$(SRCROOT)"; - PRODUCT_BUNDLE_IDENTIFIER = "org.cocoapods.${PRODUCT_NAME:rfc1034identifier}"; - PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)"; - SDKROOT = iphoneos; - SKIP_INSTALL = YES; - TARGETED_DEVICE_FAMILY = "1,2"; - VERSIONING_SYSTEM = "apple-generic"; - VERSION_INFO_PREFIX = ""; - }; - name = Debug; - }; - 341C83D013F1F121459AEA3C20FD2D63 /* Debug */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = 60F947CE04A1A0FCF25A9B0C51989DAB /* libwebp.debug.xcconfig */; - buildSettings = { - "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; - "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; - "CODE_SIGN_IDENTITY[sdk=watchos*]" = ""; - CURRENT_PROJECT_VERSION = 1; - DEFINES_MODULE = YES; - DYLIB_COMPATIBILITY_VERSION = 1; - DYLIB_CURRENT_VERSION = 1; - DYLIB_INSTALL_NAME_BASE = "@rpath"; - ENABLE_MODULE_VERIFIER = NO; - ENABLE_USER_SCRIPT_SANDBOXING = NO; - GCC_PREFIX_HEADER = "Target Support Files/libwebp/libwebp-prefix.pch"; - GENERATE_INFOPLIST_FILE = NO; - INFOPLIST_FILE = "Target Support Files/libwebp/libwebp-Info.plist"; - INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; - IPHONEOS_DEPLOYMENT_TARGET = 9.0; - LD_RUNPATH_SEARCH_PATHS = ( - "$(inherited)", - "@executable_path/Frameworks", - "@loader_path/Frameworks", - ); - MODULEMAP_FILE = "Target Support Files/libwebp/libwebp.modulemap"; - PRODUCT_MODULE_NAME = libwebp; - PRODUCT_NAME = libwebp; - SDKROOT = iphoneos; - SKIP_INSTALL = YES; - SWIFT_ACTIVE_COMPILATION_CONDITIONS = "$(inherited) "; - SWIFT_INSTALL_OBJC_HEADER = YES; - SWIFT_VERSION = 6.0; - TARGETED_DEVICE_FAMILY = "1,2"; - VERSIONING_SYSTEM = "apple-generic"; - VERSION_INFO_PREFIX = ""; - }; - name = Debug; - }; - 3472F36EB0C50B655448DDD52333803A /* Debug */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = 3B21B1E28B47B3F45DC3D0F3DF148E5A /* YYImage.debug.xcconfig */; - buildSettings = { - "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; - "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; - "CODE_SIGN_IDENTITY[sdk=watchos*]" = ""; - CURRENT_PROJECT_VERSION = 1; - DEFINES_MODULE = YES; - DYLIB_COMPATIBILITY_VERSION = 1; - DYLIB_CURRENT_VERSION = 1; - DYLIB_INSTALL_NAME_BASE = "@rpath"; - ENABLE_MODULE_VERIFIER = NO; - ENABLE_USER_SCRIPT_SANDBOXING = NO; - GCC_PREFIX_HEADER = "Target Support Files/YYImage/YYImage-prefix.pch"; - GENERATE_INFOPLIST_FILE = NO; - INFOPLIST_FILE = "Target Support Files/YYImage/YYImage-Info.plist"; - INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; + CODE_SIGNING_ALLOWED = NO; + CONFIGURATION_BUILD_DIR = "$(BUILD_DIR)/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)/TXIMSDK_Plus_iOS_XCFramework"; + IBSC_MODULE = TXIMSDK_Plus_iOS_XCFramework; + INFOPLIST_FILE = "Target Support Files/TXIMSDK_Plus_iOS_XCFramework/ResourceBundle-TXIMSDK_Plus_iOS_XCFramework_Privacy-TXIMSDK_Plus_iOS_XCFramework-Info.plist"; IPHONEOS_DEPLOYMENT_TARGET = 8.0; - LD_RUNPATH_SEARCH_PATHS = ( - "$(inherited)", - "@executable_path/Frameworks", - "@loader_path/Frameworks", - ); - MODULEMAP_FILE = "Target Support Files/YYImage/YYImage.modulemap"; - PRODUCT_MODULE_NAME = YYImage; - PRODUCT_NAME = YYImage; + PRODUCT_NAME = TXIMSDK_Plus_iOS_XCFramework_Privacy; SDKROOT = iphoneos; SKIP_INSTALL = YES; - SWIFT_ACTIVE_COMPILATION_CONDITIONS = "$(inherited) "; - SWIFT_INSTALL_OBJC_HEADER = YES; - SWIFT_VERSION = 6.0; TARGETED_DEVICE_FAMILY = "1,2"; - VERSIONING_SYSTEM = "apple-generic"; - VERSION_INFO_PREFIX = ""; + WRAPPER_EXTENSION = bundle; }; name = Debug; }; + 31DDC0651A46A7EA631308EBF7BF08E6 /* Release */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 94329B7AE8EE695E7D6F6A2D1247E7BA /* TIMCommon.release.xcconfig */; + buildSettings = { + CODE_SIGNING_ALLOWED = NO; + CONFIGURATION_BUILD_DIR = "$(BUILD_DIR)/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)/TIMCommon"; + IBSC_MODULE = TIMCommon; + INFOPLIST_FILE = "Target Support Files/TIMCommon/ResourceBundle-TIMCommon_Privacy-TIMCommon-Info.plist"; + IPHONEOS_DEPLOYMENT_TARGET = 9.0; + PRODUCT_NAME = TIMCommon_Privacy; + SDKROOT = iphoneos; + SKIP_INSTALL = YES; + TARGETED_DEVICE_FAMILY = "1,2"; + WRAPPER_EXTENSION = bundle; + }; + name = Release; + }; + 3333B2B90091F1E981F85852F642FE7A /* Release */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = AE650260687E865E28534C92B50333AC /* MJRefresh.release.xcconfig */; + buildSettings = { + CODE_SIGNING_ALLOWED = NO; + CONFIGURATION_BUILD_DIR = "$(BUILD_DIR)/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)/MJRefresh"; + IBSC_MODULE = MJRefresh; + INFOPLIST_FILE = "Target Support Files/MJRefresh/ResourceBundle-MJRefresh.Privacy-MJRefresh-Info.plist"; + IPHONEOS_DEPLOYMENT_TARGET = 12.0; + PRODUCT_NAME = MJRefresh.Privacy; + SDKROOT = iphoneos; + SKIP_INSTALL = YES; + TARGETED_DEVICE_FAMILY = "1,2"; + WRAPPER_EXTENSION = bundle; + }; + name = Release; + }; 350E12629FD1D6B3E0746492F3FEB034 /* Release */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 33B0F4ACEB466D6A47F4B5CF98C4455C /* SSZipArchive.release.xcconfig */; + baseConfigurationReference = 330637CF749ED5BCC479A9632969669E /* SSZipArchive.release.xcconfig */; buildSettings = { "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; @@ -19604,47 +20889,9 @@ }; name = Release; }; - 3D0E17C6103BBEC9720939F42A51951D /* Debug */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = FFEF18EDBCF6E79CDD6B64AFFAA12AB1 /* SDWebImage.debug.xcconfig */; - buildSettings = { - "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; - "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; - "CODE_SIGN_IDENTITY[sdk=watchos*]" = ""; - CURRENT_PROJECT_VERSION = 1; - DEFINES_MODULE = YES; - DYLIB_COMPATIBILITY_VERSION = 1; - DYLIB_CURRENT_VERSION = 1; - DYLIB_INSTALL_NAME_BASE = "@rpath"; - ENABLE_MODULE_VERIFIER = NO; - ENABLE_USER_SCRIPT_SANDBOXING = NO; - GCC_PREFIX_HEADER = "Target Support Files/SDWebImage/SDWebImage-prefix.pch"; - GENERATE_INFOPLIST_FILE = NO; - INFOPLIST_FILE = "Target Support Files/SDWebImage/SDWebImage-Info.plist"; - INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; - IPHONEOS_DEPLOYMENT_TARGET = 9.0; - LD_RUNPATH_SEARCH_PATHS = ( - "$(inherited)", - "@executable_path/Frameworks", - "@loader_path/Frameworks", - ); - MODULEMAP_FILE = "Target Support Files/SDWebImage/SDWebImage.modulemap"; - PRODUCT_MODULE_NAME = SDWebImage; - PRODUCT_NAME = SDWebImage; - SDKROOT = iphoneos; - SKIP_INSTALL = YES; - SWIFT_ACTIVE_COMPILATION_CONDITIONS = "$(inherited) "; - SWIFT_INSTALL_OBJC_HEADER = YES; - SWIFT_VERSION = 6.0; - TARGETED_DEVICE_FAMILY = "1,2"; - VERSIONING_SYSTEM = "apple-generic"; - VERSION_INFO_PREFIX = ""; - }; - name = Debug; - }; 3D3ACDCEF836B8110E914244F80048B2 /* Release */ = { isa = XCBuildConfiguration; - baseConfigurationReference = A12FD923FF1E9906937EB9FA94FC7708 /* QGVAPlayer.release.xcconfig */; + baseConfigurationReference = C403756DA5134716BB05DDA42C6AAC80 /* QGVAPlayer.release.xcconfig */; buildSettings = { "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; @@ -19681,16 +20928,16 @@ }; name = Release; }; - 419CA29EFAECAAA2E27D55BB0CD453E1 /* Debug */ = { + 3EB87D26940C35F0C7324D3792EBCAF1 /* Debug */ = { isa = XCBuildConfiguration; - baseConfigurationReference = A16C101E68E8852784429648C2CCACE5 /* TUIConversation.debug.xcconfig */; + baseConfigurationReference = 59A03BE22CDD449090BAC7B02AF796E4 /* BRPickerView.debug.xcconfig */; buildSettings = { CODE_SIGNING_ALLOWED = NO; - CONFIGURATION_BUILD_DIR = "$(BUILD_DIR)/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)/TUIConversation"; - IBSC_MODULE = TUIConversation; - INFOPLIST_FILE = "Target Support Files/TUIConversation/ResourceBundle-TUIConversation_Privacy-TUIConversation-Info.plist"; + CONFIGURATION_BUILD_DIR = "$(BUILD_DIR)/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)/BRPickerView"; + IBSC_MODULE = BRPickerView; + INFOPLIST_FILE = "Target Support Files/BRPickerView/ResourceBundle-BRPickerView.Privacy-BRPickerView-Info.plist"; IPHONEOS_DEPLOYMENT_TARGET = 9.0; - PRODUCT_NAME = TUIConversation_Privacy; + PRODUCT_NAME = BRPickerView.Privacy; SDKROOT = iphoneos; SKIP_INSTALL = YES; TARGETED_DEVICE_FAMILY = "1,2"; @@ -19698,9 +20945,89 @@ }; name = Debug; }; + 405D13F98F3C459D8EF908E82895EA01 /* Release */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 2598910578FE259E665B3B0E83B7BDF0 /* Pods-QXLive.release.xcconfig */; + buildSettings = { + ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = NO; + CLANG_ENABLE_OBJC_WEAK = NO; + "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; + "CODE_SIGN_IDENTITY[sdk=watchos*]" = ""; + CURRENT_PROJECT_VERSION = 1; + DEFINES_MODULE = YES; + DYLIB_COMPATIBILITY_VERSION = 1; + DYLIB_CURRENT_VERSION = 1; + DYLIB_INSTALL_NAME_BASE = "@rpath"; + ENABLE_MODULE_VERIFIER = NO; + ENABLE_USER_SCRIPT_SANDBOXING = NO; + INFOPLIST_FILE = "Target Support Files/Pods-QXLive/Pods-QXLive-Info.plist"; + INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; + IPHONEOS_DEPLOYMENT_TARGET = 13.0; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + "@loader_path/Frameworks", + ); + MACH_O_TYPE = staticlib; + MODULEMAP_FILE = "Target Support Files/Pods-QXLive/Pods-QXLive.modulemap"; + OTHER_LDFLAGS = ""; + OTHER_LIBTOOLFLAGS = ""; + PODS_ROOT = "$(SRCROOT)"; + PRODUCT_BUNDLE_IDENTIFIER = "org.cocoapods.${PRODUCT_NAME:rfc1034identifier}"; + PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)"; + SDKROOT = iphoneos; + SKIP_INSTALL = YES; + TARGETED_DEVICE_FAMILY = "1,2"; + VALIDATE_PRODUCT = YES; + VERSIONING_SYSTEM = "apple-generic"; + VERSION_INFO_PREFIX = ""; + }; + name = Release; + }; + 40D82CC4C57426F7C71662EEB8CAF656 /* Debug */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 9ADEC0611E7F3F1C59D7EC77A23F7069 /* QCloudCore.debug.xcconfig */; + buildSettings = { + CLANG_ENABLE_OBJC_WEAK = NO; + "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; + "CODE_SIGN_IDENTITY[sdk=watchos*]" = ""; + CURRENT_PROJECT_VERSION = 1; + DEFINES_MODULE = YES; + DYLIB_COMPATIBILITY_VERSION = 1; + DYLIB_CURRENT_VERSION = 1; + DYLIB_INSTALL_NAME_BASE = "@rpath"; + ENABLE_MODULE_VERIFIER = NO; + ENABLE_USER_SCRIPT_SANDBOXING = NO; + GCC_PREFIX_HEADER = "Target Support Files/QCloudCore/QCloudCore-prefix.pch"; + GENERATE_INFOPLIST_FILE = NO; + INFOPLIST_FILE = "Target Support Files/QCloudCore/QCloudCore-Info.plist"; + INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; + IPHONEOS_DEPLOYMENT_TARGET = 10.0; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + "@loader_path/Frameworks", + ); + MACH_O_TYPE = staticlib; + MODULEMAP_FILE = "Target Support Files/QCloudCore/QCloudCore.modulemap"; + PRODUCT_MODULE_NAME = QCloudCore; + PRODUCT_NAME = QCloudCore; + SDKROOT = iphoneos; + SKIP_INSTALL = YES; + SWIFT_ACTIVE_COMPILATION_CONDITIONS = "$(inherited) "; + SWIFT_INSTALL_OBJC_HEADER = YES; + SWIFT_VERSION = 6.0; + TARGETED_DEVICE_FAMILY = "1,2"; + VERSIONING_SYSTEM = "apple-generic"; + VERSION_INFO_PREFIX = ""; + }; + name = Debug; + }; 4207C7867D01E9E26FACDD9D109CB0F5 /* Release */ = { isa = XCBuildConfiguration; - baseConfigurationReference = D0022808E8F77EC0E79CEBA82472AEED /* ReactiveObjC.release.xcconfig */; + baseConfigurationReference = 17B18416AEC94C55CE635A96FB102FE8 /* ReactiveObjC.release.xcconfig */; buildSettings = { "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; @@ -19739,7 +21066,7 @@ }; 47EB7EF5E217071BCD11FDCDA7ECAC71 /* Release */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 071E4EF09DD730FFF592072C5C5D143D /* TZImagePickerController.release.xcconfig */; + baseConfigurationReference = 6605C6E24318FF0858D7894465B8CF34 /* TZImagePickerController.release.xcconfig */; buildSettings = { CLANG_ENABLE_OBJC_WEAK = NO; "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; @@ -19779,7 +21106,7 @@ }; 4A0431E366ADCB49D398F730A3D0C643 /* Release */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 636C9F5B94ABEC692A8C134264864AA7 /* AliyunOSSiOS.release.xcconfig */; + baseConfigurationReference = BBED4ABD03D03C415C1D40EC5AC793E5 /* AliyunOSSiOS.release.xcconfig */; buildSettings = { "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; @@ -19818,7 +21145,7 @@ }; 4E360AE1EFE027A9AD482ECFAE5047F6 /* Debug */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 852AC4C1BA73FFFBEAEE96511FA5BC41 /* SVGAPlayer.debug.xcconfig */; + baseConfigurationReference = 1C9EA99F55198372B00D4B1CE72A7626 /* SVGAPlayer.debug.xcconfig */; buildSettings = { "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; @@ -19854,27 +21181,9 @@ }; name = Debug; }; - 4F20476D5E5DBF2024DE21558AABF2B2 /* Release */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = 9AF4ED464D26156395288C7B3BEDD9C9 /* TXIMSDK_Plus_iOS_XCFramework.release.xcconfig */; - buildSettings = { - ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; - ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor; - ENABLE_USER_SCRIPT_SANDBOXING = NO; - IPHONEOS_DEPLOYMENT_TARGET = 8.0; - LD_RUNPATH_SEARCH_PATHS = ( - "$(inherited)", - "@executable_path/Frameworks", - ); - SDKROOT = iphoneos; - TARGETED_DEVICE_FAMILY = "1,2"; - VALIDATE_PRODUCT = YES; - }; - name = Release; - }; 4F5CAB3FA5EB7F503755F2DC53932918 /* Debug */ = { isa = XCBuildConfiguration; - baseConfigurationReference = E85F7903A9D040C24E56355B875D47B3 /* QGVAPlayer.debug.xcconfig */; + baseConfigurationReference = 4CCA4F8DFC3F22B6C5141EFD47D97E52 /* QGVAPlayer.debug.xcconfig */; buildSettings = { "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; @@ -19912,7 +21221,7 @@ }; 4F8995B0191EF2D17550067988349E73 /* Release */ = { isa = XCBuildConfiguration; - baseConfigurationReference = C00CF02DCB1EB98C9EBE9A51416346DE /* YYCategories.release.xcconfig */; + baseConfigurationReference = 4CC90FF57114835B548772BD7118CB20 /* YYCategories.release.xcconfig */; buildSettings = { "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; @@ -19949,43 +21258,9 @@ }; name = Release; }; - 5029857C3FE5C86C54D4B840BEE48335 /* Release */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = 9AF4ED464D26156395288C7B3BEDD9C9 /* TXIMSDK_Plus_iOS_XCFramework.release.xcconfig */; - buildSettings = { - CODE_SIGNING_ALLOWED = NO; - CONFIGURATION_BUILD_DIR = "$(BUILD_DIR)/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)/TXIMSDK_Plus_iOS_XCFramework"; - IBSC_MODULE = TXIMSDK_Plus_iOS_XCFramework; - INFOPLIST_FILE = "Target Support Files/TXIMSDK_Plus_iOS_XCFramework/ResourceBundle-TXIMSDK_Plus_iOS_XCFramework_Privacy-TXIMSDK_Plus_iOS_XCFramework-Info.plist"; - IPHONEOS_DEPLOYMENT_TARGET = 8.0; - PRODUCT_NAME = TXIMSDK_Plus_iOS_XCFramework_Privacy; - SDKROOT = iphoneos; - SKIP_INSTALL = YES; - TARGETED_DEVICE_FAMILY = "1,2"; - WRAPPER_EXTENSION = bundle; - }; - name = Release; - }; - 524898AAAEB0AC26A4673D4F21CD96BD /* Debug */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = 04C1501BE84465D65722FF50DE813C49 /* BRPickerView.debug.xcconfig */; - buildSettings = { - CODE_SIGNING_ALLOWED = NO; - CONFIGURATION_BUILD_DIR = "$(BUILD_DIR)/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)/BRPickerView"; - IBSC_MODULE = BRPickerView; - INFOPLIST_FILE = "Target Support Files/BRPickerView/ResourceBundle-BRPickerView.Privacy-BRPickerView-Info.plist"; - IPHONEOS_DEPLOYMENT_TARGET = 9.0; - PRODUCT_NAME = BRPickerView.Privacy; - SDKROOT = iphoneos; - SKIP_INSTALL = YES; - TARGETED_DEVICE_FAMILY = "1,2"; - WRAPPER_EXTENSION = bundle; - }; - name = Debug; - }; 534BB71A4E5DAF70350E7FAE8D6263DB /* Debug */ = { isa = XCBuildConfiguration; - baseConfigurationReference = BA5624B6B53B6AAE7EBD213B04A574C6 /* IQKeyboardManager.debug.xcconfig */; + baseConfigurationReference = BFDA70797D499F688CDA9F293694C161 /* IQKeyboardManager.debug.xcconfig */; buildSettings = { CLANG_ENABLE_OBJC_WEAK = NO; "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; @@ -20024,7 +21299,7 @@ }; 5383719DA2FBC48A2ED49DA76DD9F94A /* Release */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 35CF86C4D78D2DD06F474501907C4F93 /* WechatOpenSDK-XCFramework.release.xcconfig */; + baseConfigurationReference = 3B1425FAA83B90D2C942C81713A82E18 /* WechatOpenSDK-XCFramework.release.xcconfig */; buildSettings = { ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor; @@ -20042,7 +21317,7 @@ }; 545B9496B9E51A77A34A98211B32488E /* Debug */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 093B228B53556FE1FC8ED75A574A849B /* AgoraRtcEngine_iOS.debug.xcconfig */; + baseConfigurationReference = C0680D056BC1F5302787A2199A803C1E /* AgoraRtcEngine_iOS.debug.xcconfig */; buildSettings = { ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor; @@ -20059,7 +21334,7 @@ }; 5875A0FB74E706B59A42589A5DD2E6E7 /* Debug */ = { isa = XCBuildConfiguration; - baseConfigurationReference = C30F1C9697667478B08748F74E2E61C6 /* MJRefresh.debug.xcconfig */; + baseConfigurationReference = 539E81F9AA4C78794DAC997EB95A5DAC /* MJRefresh.debug.xcconfig */; buildSettings = { CLANG_ENABLE_OBJC_WEAK = NO; "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; @@ -20096,6 +21371,23 @@ }; name = Debug; }; + 58CAF94879C9C69652D20D6EB5D14027 /* Debug */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 59C4B857C3564ECB2A07D79D96916AC2 /* JXCategoryView.debug.xcconfig */; + buildSettings = { + CODE_SIGNING_ALLOWED = NO; + CONFIGURATION_BUILD_DIR = "$(BUILD_DIR)/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)/JXCategoryView"; + IBSC_MODULE = JXCategoryView; + INFOPLIST_FILE = "Target Support Files/JXCategoryView/ResourceBundle-JXCategoryView-JXCategoryView-Info.plist"; + IPHONEOS_DEPLOYMENT_TARGET = 9.0; + PRODUCT_NAME = JXCategoryView; + SDKROOT = iphoneos; + SKIP_INSTALL = YES; + TARGETED_DEVICE_FAMILY = "1,2"; + WRAPPER_EXTENSION = bundle; + }; + name = Debug; + }; 5C6146B03B0A0A02DAAC174FADB1308F /* Debug */ = { isa = XCBuildConfiguration; baseConfigurationReference = A16C101E68E8852784429648C2CCACE5 /* TUIConversation.debug.xcconfig */; @@ -20134,7 +21426,24 @@ }; name = Debug; }; - 5D2621D05AC3624BB06B093AAA894648 /* Debug */ = { + 5DD6BCF0C401D803A36970BF689C2A58 /* Release */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 52389EA2AA61742DE2714261023D6EA7 /* TUIConversation.release.xcconfig */; + buildSettings = { + CODE_SIGNING_ALLOWED = NO; + CONFIGURATION_BUILD_DIR = "$(BUILD_DIR)/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)/TUIConversation"; + IBSC_MODULE = TUIConversation; + INFOPLIST_FILE = "Target Support Files/TUIConversation/ResourceBundle-TUIConversation_Privacy-TUIConversation-Info.plist"; + IPHONEOS_DEPLOYMENT_TARGET = 9.0; + PRODUCT_NAME = TUIConversation_Privacy; + SDKROOT = iphoneos; + SKIP_INSTALL = YES; + TARGETED_DEVICE_FAMILY = "1,2"; + WRAPPER_EXTENSION = bundle; + }; + name = Release; + }; + 618438564A27D3B38D9DDC50CD4F0F87 /* Debug */ = { isa = XCBuildConfiguration; baseConfigurationReference = CD816C1AB0BAE69BA4F0703D10DE6EC1 /* Pods-QXLive.debug.xcconfig */; buildSettings = { @@ -20173,82 +21482,9 @@ }; name = Debug; }; - 5DCB87DA558C85EB806D171A393782FA /* Release */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = 94329B7AE8EE695E7D6F6A2D1247E7BA /* TIMCommon.release.xcconfig */; - buildSettings = { - CODE_SIGNING_ALLOWED = NO; - CONFIGURATION_BUILD_DIR = "$(BUILD_DIR)/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)/TIMCommon"; - IBSC_MODULE = TIMCommon; - INFOPLIST_FILE = "Target Support Files/TIMCommon/ResourceBundle-TIMCommon_Privacy-TIMCommon-Info.plist"; - IPHONEOS_DEPLOYMENT_TARGET = 9.0; - PRODUCT_NAME = TIMCommon_Privacy; - SDKROOT = iphoneos; - SKIP_INSTALL = YES; - TARGETED_DEVICE_FAMILY = "1,2"; - WRAPPER_EXTENSION = bundle; - }; - name = Release; - }; - 5E44DC8BC8619F31A02738D6E9278C58 /* Debug */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = 9DA99233A2841983A6D535D521B82607 /* JXPagingView.debug.xcconfig */; - buildSettings = { - CODE_SIGNING_ALLOWED = NO; - CONFIGURATION_BUILD_DIR = "$(BUILD_DIR)/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)/JXPagingView"; - IBSC_MODULE = JXPagingView; - INFOPLIST_FILE = "Target Support Files/JXPagingView/ResourceBundle-JXPagerView-JXPagingView-Info.plist"; - IPHONEOS_DEPLOYMENT_TARGET = 8.0; - PRODUCT_NAME = JXPagerView; - SDKROOT = iphoneos; - SKIP_INSTALL = YES; - TARGETED_DEVICE_FAMILY = "1,2"; - WRAPPER_EXTENSION = bundle; - }; - name = Debug; - }; - 6558A5BDC2DB9A7A41F282203F8F4B1B /* Release */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = 60EB43759A795C970FFCF4CA4505C9DB /* libwebp.release.xcconfig */; - buildSettings = { - "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; - "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; - "CODE_SIGN_IDENTITY[sdk=watchos*]" = ""; - CURRENT_PROJECT_VERSION = 1; - DEFINES_MODULE = YES; - DYLIB_COMPATIBILITY_VERSION = 1; - DYLIB_CURRENT_VERSION = 1; - DYLIB_INSTALL_NAME_BASE = "@rpath"; - ENABLE_MODULE_VERIFIER = NO; - ENABLE_USER_SCRIPT_SANDBOXING = NO; - GCC_PREFIX_HEADER = "Target Support Files/libwebp/libwebp-prefix.pch"; - GENERATE_INFOPLIST_FILE = NO; - INFOPLIST_FILE = "Target Support Files/libwebp/libwebp-Info.plist"; - INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; - IPHONEOS_DEPLOYMENT_TARGET = 9.0; - LD_RUNPATH_SEARCH_PATHS = ( - "$(inherited)", - "@executable_path/Frameworks", - "@loader_path/Frameworks", - ); - MODULEMAP_FILE = "Target Support Files/libwebp/libwebp.modulemap"; - PRODUCT_MODULE_NAME = libwebp; - PRODUCT_NAME = libwebp; - SDKROOT = iphoneos; - SKIP_INSTALL = YES; - SWIFT_ACTIVE_COMPILATION_CONDITIONS = "$(inherited) "; - SWIFT_INSTALL_OBJC_HEADER = YES; - SWIFT_VERSION = 6.0; - TARGETED_DEVICE_FAMILY = "1,2"; - VALIDATE_PRODUCT = YES; - VERSIONING_SYSTEM = "apple-generic"; - VERSION_INFO_PREFIX = ""; - }; - name = Release; - }; 67C644A7554018C7665368AC72B08558 /* Release */ = { isa = XCBuildConfiguration; - baseConfigurationReference = AACC3831A9F835FDBDFD8EFE21B2E9FC /* YYModel.release.xcconfig */; + baseConfigurationReference = AB3029B1D6DB78EC56E31AD669C7D921 /* YYModel.release.xcconfig */; buildSettings = { "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; @@ -20285,16 +21521,54 @@ }; name = Release; }; - 6A7E1C39B6BBD1684864CE140BE955BE /* Debug */ = { + 68BF93CBCB8EE8C46333B6C6B18BF253 /* Debug */ = { isa = XCBuildConfiguration; - baseConfigurationReference = F025B9C3846DE7CDEB581BE526815DBE /* TUIChat.debug.xcconfig */; + baseConfigurationReference = 1716232139CC5201D57DB0BC972C8EA4 /* SDWebImage.debug.xcconfig */; + buildSettings = { + "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; + "CODE_SIGN_IDENTITY[sdk=watchos*]" = ""; + CURRENT_PROJECT_VERSION = 1; + DEFINES_MODULE = YES; + DYLIB_COMPATIBILITY_VERSION = 1; + DYLIB_CURRENT_VERSION = 1; + DYLIB_INSTALL_NAME_BASE = "@rpath"; + ENABLE_MODULE_VERIFIER = NO; + ENABLE_USER_SCRIPT_SANDBOXING = NO; + GCC_PREFIX_HEADER = "Target Support Files/SDWebImage/SDWebImage-prefix.pch"; + GENERATE_INFOPLIST_FILE = NO; + INFOPLIST_FILE = "Target Support Files/SDWebImage/SDWebImage-Info.plist"; + INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; + IPHONEOS_DEPLOYMENT_TARGET = 9.0; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + "@loader_path/Frameworks", + ); + MODULEMAP_FILE = "Target Support Files/SDWebImage/SDWebImage.modulemap"; + PRODUCT_MODULE_NAME = SDWebImage; + PRODUCT_NAME = SDWebImage; + SDKROOT = iphoneos; + SKIP_INSTALL = YES; + SWIFT_ACTIVE_COMPILATION_CONDITIONS = "$(inherited) "; + SWIFT_INSTALL_OBJC_HEADER = YES; + SWIFT_VERSION = 6.0; + TARGETED_DEVICE_FAMILY = "1,2"; + VERSIONING_SYSTEM = "apple-generic"; + VERSION_INFO_PREFIX = ""; + }; + name = Debug; + }; + 6A47EFE7A53A45FC640E2B558E71AD1A /* Debug */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 1B1917C3258642FD33C8DEDAA318364B /* TIMPush.debug.xcconfig */; buildSettings = { CODE_SIGNING_ALLOWED = NO; - CONFIGURATION_BUILD_DIR = "$(BUILD_DIR)/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)/TUIChat"; - IBSC_MODULE = TUIChat; - INFOPLIST_FILE = "Target Support Files/TUIChat/ResourceBundle-TUIChat_Privacy-TUIChat-Info.plist"; - IPHONEOS_DEPLOYMENT_TARGET = 9.0; - PRODUCT_NAME = TUIChat_Privacy; + CONFIGURATION_BUILD_DIR = "$(BUILD_DIR)/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)/TIMPush"; + IBSC_MODULE = TIMPush; + INFOPLIST_FILE = "Target Support Files/TIMPush/ResourceBundle-TIMPush_Privacy-TIMPush-Info.plist"; + IPHONEOS_DEPLOYMENT_TARGET = 10.0; + PRODUCT_NAME = TIMPush_Privacy; SDKROOT = iphoneos; SKIP_INSTALL = YES; TARGETED_DEVICE_FAMILY = "1,2"; @@ -20302,9 +21576,9 @@ }; name = Debug; }; - 6DF8FCB016CAC5FAFEB2931E3A8B84A6 /* Release */ = { + 6EB738E968E0C2EC395011A8FA5DB0C8 /* Debug */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 67AB58A2792880BE86602F974D60E7CE /* SDWebImage.release.xcconfig */; + baseConfigurationReference = 1716232139CC5201D57DB0BC972C8EA4 /* SDWebImage.debug.xcconfig */; buildSettings = { CODE_SIGNING_ALLOWED = NO; CONFIGURATION_BUILD_DIR = "$(BUILD_DIR)/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)/SDWebImage"; @@ -20317,18 +21591,57 @@ TARGETED_DEVICE_FAMILY = "1,2"; WRAPPER_EXTENSION = bundle; }; + name = Debug; + }; + 6ECAF81B9775A5CAF3C6CC8935A3A88C /* Release */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = A42A1CA22BD05C7F9BBAF079E7453AB0 /* TUICore.release.xcconfig */; + buildSettings = { + "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; + "CODE_SIGN_IDENTITY[sdk=watchos*]" = ""; + CURRENT_PROJECT_VERSION = 1; + DEFINES_MODULE = YES; + DYLIB_COMPATIBILITY_VERSION = 1; + DYLIB_CURRENT_VERSION = 1; + DYLIB_INSTALL_NAME_BASE = "@rpath"; + ENABLE_MODULE_VERIFIER = NO; + ENABLE_USER_SCRIPT_SANDBOXING = NO; + GCC_PREFIX_HEADER = "Target Support Files/TUICore/TUICore-prefix.pch"; + GENERATE_INFOPLIST_FILE = NO; + INFOPLIST_FILE = "Target Support Files/TUICore/TUICore-Info.plist"; + INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; + IPHONEOS_DEPLOYMENT_TARGET = 9.0; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + "@loader_path/Frameworks", + ); + MODULEMAP_FILE = "Target Support Files/TUICore/TUICore.modulemap"; + PRODUCT_MODULE_NAME = TUICore; + PRODUCT_NAME = TUICore; + SDKROOT = iphoneos; + SKIP_INSTALL = YES; + SWIFT_ACTIVE_COMPILATION_CONDITIONS = "$(inherited) "; + SWIFT_INSTALL_OBJC_HEADER = YES; + SWIFT_VERSION = 6.0; + TARGETED_DEVICE_FAMILY = "1,2"; + VALIDATE_PRODUCT = YES; + VERSIONING_SYSTEM = "apple-generic"; + VERSION_INFO_PREFIX = ""; + }; name = Release; }; - 6ED6DF26C85BB82C0E0C2486DBC0A4D6 /* Debug */ = { + 6ED52B1E9E63E3D1B1E47B9AC06D6C43 /* Debug */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 8C473D3FC6BBA942718C67FBF8311A4E /* FMDB.debug.xcconfig */; + baseConfigurationReference = 539E81F9AA4C78794DAC997EB95A5DAC /* MJRefresh.debug.xcconfig */; buildSettings = { CODE_SIGNING_ALLOWED = NO; - CONFIGURATION_BUILD_DIR = "$(BUILD_DIR)/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)/FMDB"; - IBSC_MODULE = FMDB; - INFOPLIST_FILE = "Target Support Files/FMDB/ResourceBundle-FMDB_Privacy-FMDB-Info.plist"; + CONFIGURATION_BUILD_DIR = "$(BUILD_DIR)/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)/MJRefresh"; + IBSC_MODULE = MJRefresh; + INFOPLIST_FILE = "Target Support Files/MJRefresh/ResourceBundle-MJRefresh.Privacy-MJRefresh-Info.plist"; IPHONEOS_DEPLOYMENT_TARGET = 12.0; - PRODUCT_NAME = FMDB_Privacy; + PRODUCT_NAME = MJRefresh.Privacy; SDKROOT = iphoneos; SKIP_INSTALL = YES; TARGETED_DEVICE_FAMILY = "1,2"; @@ -20374,9 +21687,26 @@ }; name = Debug; }; + 7020DD66DCCCC837D759400FAA31ED80 /* Debug */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = D65D99444B13FC496E51863A885FCD36 /* AliyunOSSiOS.debug.xcconfig */; + buildSettings = { + CODE_SIGNING_ALLOWED = NO; + CONFIGURATION_BUILD_DIR = "$(BUILD_DIR)/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)/AliyunOSSiOS"; + IBSC_MODULE = AliyunOSSiOS; + INFOPLIST_FILE = "Target Support Files/AliyunOSSiOS/ResourceBundle-AliyunOSSiOS_Privacy-AliyunOSSiOS-Info.plist"; + IPHONEOS_DEPLOYMENT_TARGET = 8.0; + PRODUCT_NAME = AliyunOSSiOS_Privacy; + SDKROOT = iphoneos; + SKIP_INSTALL = YES; + TARGETED_DEVICE_FAMILY = "1,2"; + WRAPPER_EXTENSION = bundle; + }; + name = Debug; + }; 70BF112E5F536AEB62EF0D8F077AA540 /* Release */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 0EA505AAD149644608E5E9EFC567CC5F /* IQKeyboardManager.release.xcconfig */; + baseConfigurationReference = 313EBD1ED4CF3BFF7D35A23B739B12D3 /* IQKeyboardManager.release.xcconfig */; buildSettings = { CLANG_ENABLE_OBJC_WEAK = NO; "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; @@ -20416,7 +21746,7 @@ }; 71031C5041F3E3D01C1B1A72B406E872 /* Release */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 3F9FFFF7EC51D7F650C770A05053DAC6 /* JXCategoryView.release.xcconfig */; + baseConfigurationReference = A41A5AA1AD11BD944B85AC3E47517917 /* JXCategoryView.release.xcconfig */; buildSettings = { "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; @@ -20453,9 +21783,65 @@ }; name = Release; }; + 710DDAC728A34158036D21E6BE3AD7B9 /* Release */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = A5D179DB9964E71DC78558EB224BD05A /* libwebp.release.xcconfig */; + buildSettings = { + "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; + "CODE_SIGN_IDENTITY[sdk=watchos*]" = ""; + CURRENT_PROJECT_VERSION = 1; + DEFINES_MODULE = YES; + DYLIB_COMPATIBILITY_VERSION = 1; + DYLIB_CURRENT_VERSION = 1; + DYLIB_INSTALL_NAME_BASE = "@rpath"; + ENABLE_MODULE_VERIFIER = NO; + ENABLE_USER_SCRIPT_SANDBOXING = NO; + GCC_PREFIX_HEADER = "Target Support Files/libwebp/libwebp-prefix.pch"; + GENERATE_INFOPLIST_FILE = NO; + INFOPLIST_FILE = "Target Support Files/libwebp/libwebp-Info.plist"; + INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; + IPHONEOS_DEPLOYMENT_TARGET = 9.0; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + "@loader_path/Frameworks", + ); + MODULEMAP_FILE = "Target Support Files/libwebp/libwebp.modulemap"; + PRODUCT_MODULE_NAME = libwebp; + PRODUCT_NAME = libwebp; + SDKROOT = iphoneos; + SKIP_INSTALL = YES; + SWIFT_ACTIVE_COMPILATION_CONDITIONS = "$(inherited) "; + SWIFT_INSTALL_OBJC_HEADER = YES; + SWIFT_VERSION = 6.0; + TARGETED_DEVICE_FAMILY = "1,2"; + VALIDATE_PRODUCT = YES; + VERSIONING_SYSTEM = "apple-generic"; + VERSION_INFO_PREFIX = ""; + }; + name = Release; + }; + 74575D5E5D65766EA7CF99100DA32242 /* Release */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = A42A1CA22BD05C7F9BBAF079E7453AB0 /* TUICore.release.xcconfig */; + buildSettings = { + CODE_SIGNING_ALLOWED = NO; + CONFIGURATION_BUILD_DIR = "$(BUILD_DIR)/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)/TUICore"; + IBSC_MODULE = TUICore; + INFOPLIST_FILE = "Target Support Files/TUICore/ResourceBundle-TUICore_Privacy-TUICore-Info.plist"; + IPHONEOS_DEPLOYMENT_TARGET = 9.0; + PRODUCT_NAME = TUICore_Privacy; + SDKROOT = iphoneos; + SKIP_INSTALL = YES; + TARGETED_DEVICE_FAMILY = "1,2"; + WRAPPER_EXTENSION = bundle; + }; + name = Release; + }; 756F907690626ED4FCC34A2A8E6006D8 /* Debug */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 7EA94F3C2C7CC7E913C8AB4303563598 /* TZImagePickerController.debug.xcconfig */; + baseConfigurationReference = 35CC6DBCAD38C47C3CD1ED1C276F2416 /* TZImagePickerController.debug.xcconfig */; buildSettings = { CLANG_ENABLE_OBJC_WEAK = NO; "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; @@ -20492,9 +21878,26 @@ }; name = Debug; }; + 766A1D893BB12FD5A56DDD3CC3995926 /* Debug */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = BFDA70797D499F688CDA9F293694C161 /* IQKeyboardManager.debug.xcconfig */; + buildSettings = { + CODE_SIGNING_ALLOWED = NO; + CONFIGURATION_BUILD_DIR = "$(BUILD_DIR)/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)/IQKeyboardManager"; + IBSC_MODULE = IQKeyboardManager; + INFOPLIST_FILE = "Target Support Files/IQKeyboardManager/ResourceBundle-IQKeyboardManager-IQKeyboardManager-Info.plist"; + IPHONEOS_DEPLOYMENT_TARGET = 11.0; + PRODUCT_NAME = IQKeyboardManager; + SDKROOT = iphoneos; + SKIP_INSTALL = YES; + TARGETED_DEVICE_FAMILY = "1,2"; + WRAPPER_EXTENSION = bundle; + }; + name = Debug; + }; 7785EDBCBB3FE950CE62F130A5C60B68 /* Debug */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 44FA33DCAC56187B31EF9632388CC99F /* YBImageBrowser.debug.xcconfig */; + baseConfigurationReference = B7079B92C39DEFCD1A9B3BB71454276B /* YBImageBrowser.debug.xcconfig */; buildSettings = { "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; @@ -20530,43 +21933,49 @@ }; name = Debug; }; - 7877FBA9F638470359352E381F88B68D /* Release */ = { + 7E5EA1F7298FC11FF3BC210F782ADBFE /* Release */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 3F9FFFF7EC51D7F650C770A05053DAC6 /* JXCategoryView.release.xcconfig */; + baseConfigurationReference = 664D85C77511FBEB1896EFC975EA5903 /* Pods-QXLiveDev.release.xcconfig */; buildSettings = { - CODE_SIGNING_ALLOWED = NO; - CONFIGURATION_BUILD_DIR = "$(BUILD_DIR)/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)/JXCategoryView"; - IBSC_MODULE = JXCategoryView; - INFOPLIST_FILE = "Target Support Files/JXCategoryView/ResourceBundle-JXCategoryView-JXCategoryView-Info.plist"; - IPHONEOS_DEPLOYMENT_TARGET = 9.0; - PRODUCT_NAME = JXCategoryView; + ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = NO; + CLANG_ENABLE_OBJC_WEAK = NO; + "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; + "CODE_SIGN_IDENTITY[sdk=watchos*]" = ""; + CURRENT_PROJECT_VERSION = 1; + DEFINES_MODULE = YES; + DYLIB_COMPATIBILITY_VERSION = 1; + DYLIB_CURRENT_VERSION = 1; + DYLIB_INSTALL_NAME_BASE = "@rpath"; + ENABLE_MODULE_VERIFIER = NO; + ENABLE_USER_SCRIPT_SANDBOXING = NO; + INFOPLIST_FILE = "Target Support Files/Pods-QXLiveDev/Pods-QXLiveDev-Info.plist"; + INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; + IPHONEOS_DEPLOYMENT_TARGET = 13.0; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + "@loader_path/Frameworks", + ); + MACH_O_TYPE = staticlib; + MODULEMAP_FILE = "Target Support Files/Pods-QXLiveDev/Pods-QXLiveDev.modulemap"; + OTHER_LDFLAGS = ""; + OTHER_LIBTOOLFLAGS = ""; + PODS_ROOT = "$(SRCROOT)"; + PRODUCT_BUNDLE_IDENTIFIER = "org.cocoapods.${PRODUCT_NAME:rfc1034identifier}"; + PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)"; SDKROOT = iphoneos; SKIP_INSTALL = YES; TARGETED_DEVICE_FAMILY = "1,2"; - WRAPPER_EXTENSION = bundle; - }; - name = Release; - }; - 7D4D4B52A8E16F644DCDA002970B1279 /* Release */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = 899FE2DF1ECBAD93868B2D343027EDB0 /* JXPagingView.release.xcconfig */; - buildSettings = { - CODE_SIGNING_ALLOWED = NO; - CONFIGURATION_BUILD_DIR = "$(BUILD_DIR)/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)/JXPagingView"; - IBSC_MODULE = JXPagingView; - INFOPLIST_FILE = "Target Support Files/JXPagingView/ResourceBundle-JXPagerView-JXPagingView-Info.plist"; - IPHONEOS_DEPLOYMENT_TARGET = 8.0; - PRODUCT_NAME = JXPagerView; - SDKROOT = iphoneos; - SKIP_INSTALL = YES; - TARGETED_DEVICE_FAMILY = "1,2"; - WRAPPER_EXTENSION = bundle; + VALIDATE_PRODUCT = YES; + VERSIONING_SYSTEM = "apple-generic"; + VERSION_INFO_PREFIX = ""; }; name = Release; }; 7EC038224EEF87F50A58769981D5BCC2 /* Release */ = { isa = XCBuildConfiguration; - baseConfigurationReference = A94B1CD664D156ABF8E1DA51098D41F0 /* SDWebImageWebPCoder.release.xcconfig */; + baseConfigurationReference = 0B9FD6341D534FEF98CCCFFCDF7A0E88 /* SDWebImageWebPCoder.release.xcconfig */; buildSettings = { "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; @@ -20603,26 +22012,44 @@ }; name = Release; }; - 824845F60357F8F89B884D70719D3C0A /* Debug */ = { + 7F5BC36B4DC8E342557AC19AABE9A2D0 /* Release */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 3D01AD22FEDC8002233D7AACEDC04EAD /* AgoraLyricsScore.debug.xcconfig */; + baseConfigurationReference = 82EDBFCB86E34D5A2FCACD707617CD6C /* TXIMSDK_Plus_iOS_XCFramework.release.xcconfig */; + buildSettings = { + ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; + ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor; + ENABLE_USER_SCRIPT_SANDBOXING = NO; + IPHONEOS_DEPLOYMENT_TARGET = 8.0; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + ); + SDKROOT = iphoneos; + TARGETED_DEVICE_FAMILY = "1,2"; + VALIDATE_PRODUCT = YES; + }; + name = Release; + }; + 84C8DF8D453FE6D806C16104D042D102 /* Release */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 82EDBFCB86E34D5A2FCACD707617CD6C /* TXIMSDK_Plus_iOS_XCFramework.release.xcconfig */; buildSettings = { CODE_SIGNING_ALLOWED = NO; - CONFIGURATION_BUILD_DIR = "$(BUILD_DIR)/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)/AgoraLyricsScore"; - IBSC_MODULE = AgoraLyricsScore; - INFOPLIST_FILE = "Target Support Files/AgoraLyricsScore/ResourceBundle-AgoraLyricsScoreBundle-AgoraLyricsScore-Info.plist"; - IPHONEOS_DEPLOYMENT_TARGET = 10.0; - PRODUCT_NAME = AgoraLyricsScoreBundle; + CONFIGURATION_BUILD_DIR = "$(BUILD_DIR)/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)/TXIMSDK_Plus_iOS_XCFramework"; + IBSC_MODULE = TXIMSDK_Plus_iOS_XCFramework; + INFOPLIST_FILE = "Target Support Files/TXIMSDK_Plus_iOS_XCFramework/ResourceBundle-TXIMSDK_Plus_iOS_XCFramework_Privacy-TXIMSDK_Plus_iOS_XCFramework-Info.plist"; + IPHONEOS_DEPLOYMENT_TARGET = 8.0; + PRODUCT_NAME = TXIMSDK_Plus_iOS_XCFramework_Privacy; SDKROOT = iphoneos; SKIP_INSTALL = YES; TARGETED_DEVICE_FAMILY = "1,2"; WRAPPER_EXTENSION = bundle; }; - name = Debug; + name = Release; }; 869A260EDB31DBC8F1FD513756A77A93 /* Debug */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 9DA99233A2841983A6D535D521B82607 /* JXPagingView.debug.xcconfig */; + baseConfigurationReference = E7B283DA7D9438642D048CC661511A97 /* JXPagingView.debug.xcconfig */; buildSettings = { "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; @@ -20658,43 +22085,9 @@ }; name = Debug; }; - 86F6B9D4F8A93B65E4AA7F61E119A12C /* Debug */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = FFEF18EDBCF6E79CDD6B64AFFAA12AB1 /* SDWebImage.debug.xcconfig */; - buildSettings = { - CODE_SIGNING_ALLOWED = NO; - CONFIGURATION_BUILD_DIR = "$(BUILD_DIR)/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)/SDWebImage"; - IBSC_MODULE = SDWebImage; - INFOPLIST_FILE = "Target Support Files/SDWebImage/ResourceBundle-SDWebImage-SDWebImage-Info.plist"; - IPHONEOS_DEPLOYMENT_TARGET = 9.0; - PRODUCT_NAME = SDWebImage; - SDKROOT = iphoneos; - SKIP_INSTALL = YES; - TARGETED_DEVICE_FAMILY = "1,2"; - WRAPPER_EXTENSION = bundle; - }; - name = Debug; - }; - 88E09F45E3F13EB815FF3C15104EB452 /* Debug */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = 0A069424C6F4B84840CB9A263F727E07 /* TXIMSDK_Plus_iOS_XCFramework.debug.xcconfig */; - buildSettings = { - ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; - ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor; - ENABLE_USER_SCRIPT_SANDBOXING = NO; - IPHONEOS_DEPLOYMENT_TARGET = 8.0; - LD_RUNPATH_SEARCH_PATHS = ( - "$(inherited)", - "@executable_path/Frameworks", - ); - SDKROOT = iphoneos; - TARGETED_DEVICE_FAMILY = "1,2"; - }; - name = Debug; - }; 8CCEF5CDC87623E7F7DF7D5DEC68D05C /* Release */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 5446AE4B6075291D7EE3AB7F5B6B413F /* YBImageBrowser.release.xcconfig */; + baseConfigurationReference = 2F83F23B35D00B822AF31BD714997BEB /* YBImageBrowser.release.xcconfig */; buildSettings = { "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; @@ -20733,7 +22126,7 @@ }; 8CF365DB376266354BE3C2F0CFDF7911 /* Debug */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 57F9EC351586A7953002865F92E275B8 /* AvoidCrash.debug.xcconfig */; + baseConfigurationReference = 9CE8517167832C532F4FDBCA7725C55F /* AvoidCrash.debug.xcconfig */; buildSettings = { "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; @@ -20837,7 +22230,7 @@ }; 8EAC2F834160F0D756B3363236E0940A /* Release */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 899FE2DF1ECBAD93868B2D343027EDB0 /* JXPagingView.release.xcconfig */; + baseConfigurationReference = 7A1A711047C1AC34798F807FBF6686D5 /* JXPagingView.release.xcconfig */; buildSettings = { "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; @@ -20874,9 +22267,26 @@ }; name = Release; }; + 8F3CAF6025768468623101C0632DE609 /* Release */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = BBED4ABD03D03C415C1D40EC5AC793E5 /* AliyunOSSiOS.release.xcconfig */; + buildSettings = { + CODE_SIGNING_ALLOWED = NO; + CONFIGURATION_BUILD_DIR = "$(BUILD_DIR)/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)/AliyunOSSiOS"; + IBSC_MODULE = AliyunOSSiOS; + INFOPLIST_FILE = "Target Support Files/AliyunOSSiOS/ResourceBundle-AliyunOSSiOS_Privacy-AliyunOSSiOS-Info.plist"; + IPHONEOS_DEPLOYMENT_TARGET = 8.0; + PRODUCT_NAME = AliyunOSSiOS_Privacy; + SDKROOT = iphoneos; + SKIP_INSTALL = YES; + TARGETED_DEVICE_FAMILY = "1,2"; + WRAPPER_EXTENSION = bundle; + }; + name = Release; + }; 93C71E1F76112E7F505400C89E9B542A /* Release */ = { isa = XCBuildConfiguration; - baseConfigurationReference = B4F3B35A05BE5D4CD732462BCF2C1693 /* AgoraComponetLog.release.xcconfig */; + baseConfigurationReference = 4A0A2AFC2983CAE9A4C3F9AD7BDFC509 /* AgoraComponetLog.release.xcconfig */; buildSettings = { ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor; @@ -20892,9 +22302,26 @@ }; name = Release; }; + 9677C6AC24892F1E22AAFC0A32FFD2D9 /* Release */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = E16A9E6B2A5EABBCE1CDCF06E8F746DE /* BRPickerView.release.xcconfig */; + buildSettings = { + CODE_SIGNING_ALLOWED = NO; + CONFIGURATION_BUILD_DIR = "$(BUILD_DIR)/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)/BRPickerView"; + IBSC_MODULE = BRPickerView; + INFOPLIST_FILE = "Target Support Files/BRPickerView/ResourceBundle-BRPickerView.Privacy-BRPickerView-Info.plist"; + IPHONEOS_DEPLOYMENT_TARGET = 9.0; + PRODUCT_NAME = BRPickerView.Privacy; + SDKROOT = iphoneos; + SKIP_INSTALL = YES; + TARGETED_DEVICE_FAMILY = "1,2"; + WRAPPER_EXTENSION = bundle; + }; + name = Release; + }; 969861391FAC68926A0CF81DC6AE44F2 /* Release */ = { isa = XCBuildConfiguration; - baseConfigurationReference = A0B57D07E7AB462B22BDA1116D07A080 /* MBProgressHUD.release.xcconfig */; + baseConfigurationReference = FCEE8456B09D143DEBF342B30D156563 /* MBProgressHUD.release.xcconfig */; buildSettings = { "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; @@ -20933,7 +22360,7 @@ }; 96AEC0A2903613DE2B8681DEFE4DB1FD /* Debug */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 52CDD0ECDD400E2BE3EDE37210B136B2 /* AFNetworking.debug.xcconfig */; + baseConfigurationReference = A76F6366ED4DA4215F3553B65CBCEF59 /* AFNetworking.debug.xcconfig */; buildSettings = { "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; @@ -20971,7 +22398,7 @@ }; 96E00501AFF5E3A12E3D66EB073A434A /* Debug */ = { isa = XCBuildConfiguration; - baseConfigurationReference = F5704A411736ACCF7E7E2DBBC9FBF3B9 /* MBProgressHUD.debug.xcconfig */; + baseConfigurationReference = 1FA30EA3D09058DC2BCC91FEE99C7FFA /* MBProgressHUD.debug.xcconfig */; buildSettings = { "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; @@ -21009,7 +22436,7 @@ }; 975A682B9A582A47EF2DF0D0B6F45BCD /* Debug */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 3D01AD22FEDC8002233D7AACEDC04EAD /* AgoraLyricsScore.debug.xcconfig */; + baseConfigurationReference = C31B61ADA03ADABA7F4258EBE5C98C07 /* AgoraLyricsScore.debug.xcconfig */; buildSettings = { CLANG_ENABLE_OBJC_WEAK = NO; "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; @@ -21047,7 +22474,7 @@ }; 9AD5E60BD0AA375CFB3E4E55B7CB4DA5 /* Release */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 5A8FEE35372F6C7BF718AF877C4EC862 /* YYWebImage.release.xcconfig */; + baseConfigurationReference = 848C0FBEC76DA925072947778D53BC60 /* YYWebImage.release.xcconfig */; buildSettings = { "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; @@ -21086,7 +22513,7 @@ }; 9AEF799A5A3210A1E2D13675012143E2 /* Debug */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 408670745C8873E55EC5F55520BA2000 /* SDCycleScrollView.debug.xcconfig */; + baseConfigurationReference = F500827AAC3CB2AC9F44844805366550 /* SDCycleScrollView.debug.xcconfig */; buildSettings = { "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; @@ -21124,7 +22551,7 @@ }; 9BBB129FD3541FAAE578FFD9E30B7B01 /* Debug */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 8C473D3FC6BBA942718C67FBF8311A4E /* FMDB.debug.xcconfig */; + baseConfigurationReference = 12EF51BACC197258B8B67C383A336E35 /* FMDB.debug.xcconfig */; buildSettings = { CLANG_ENABLE_OBJC_WEAK = NO; "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; @@ -21161,26 +22588,9 @@ }; name = Debug; }; - 9CA0D79C1615BE686E90408F8F4FBD9C /* Release */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = 636C9F5B94ABEC692A8C134264864AA7 /* AliyunOSSiOS.release.xcconfig */; - buildSettings = { - CODE_SIGNING_ALLOWED = NO; - CONFIGURATION_BUILD_DIR = "$(BUILD_DIR)/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)/AliyunOSSiOS"; - IBSC_MODULE = AliyunOSSiOS; - INFOPLIST_FILE = "Target Support Files/AliyunOSSiOS/ResourceBundle-AliyunOSSiOS_Privacy-AliyunOSSiOS-Info.plist"; - IPHONEOS_DEPLOYMENT_TARGET = 8.0; - PRODUCT_NAME = AliyunOSSiOS_Privacy; - SDKROOT = iphoneos; - SKIP_INSTALL = YES; - TARGETED_DEVICE_FAMILY = "1,2"; - WRAPPER_EXTENSION = bundle; - }; - name = Release; - }; 9CDD6C0B552ED299157F8FBA805D287B /* Debug */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 9A515C4744B608C66416D876EA703538 /* AlipaySDK-iOS.debug.xcconfig */; + baseConfigurationReference = EEDFB1859D92A1C8BAE471FFE88FE3E2 /* AlipaySDK-iOS.debug.xcconfig */; buildSettings = { ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor; @@ -21196,23 +22606,6 @@ }; name = Debug; }; - 9DBBA8F641FD255A9FB574A10216D57A /* Release */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = 5584457FB4113FFF04D74B2039E39415 /* FMDB.release.xcconfig */; - buildSettings = { - CODE_SIGNING_ALLOWED = NO; - CONFIGURATION_BUILD_DIR = "$(BUILD_DIR)/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)/FMDB"; - IBSC_MODULE = FMDB; - INFOPLIST_FILE = "Target Support Files/FMDB/ResourceBundle-FMDB_Privacy-FMDB-Info.plist"; - IPHONEOS_DEPLOYMENT_TARGET = 12.0; - PRODUCT_NAME = FMDB_Privacy; - SDKROOT = iphoneos; - SKIP_INSTALL = YES; - TARGETED_DEVICE_FAMILY = "1,2"; - WRAPPER_EXTENSION = bundle; - }; - name = Release; - }; 9E406C6AAF85E580207CD97B0044DEAB /* Release */ = { isa = XCBuildConfiguration; buildSettings = { @@ -21277,7 +22670,7 @@ }; 9F84D925093362E29A484E2C87EE2D57 /* Debug */ = { isa = XCBuildConfiguration; - baseConfigurationReference = BEF43A731E4D94C78C75166E669E9FA8 /* ReactiveObjC.debug.xcconfig */; + baseConfigurationReference = C75290354B7314C4F02110B9D20632B3 /* ReactiveObjC.debug.xcconfig */; buildSettings = { "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; @@ -21313,26 +22706,9 @@ }; name = Debug; }; - A256FD744381939DFB25AD1B4DAAAE9D /* Debug */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = BA5624B6B53B6AAE7EBD213B04A574C6 /* IQKeyboardManager.debug.xcconfig */; - buildSettings = { - CODE_SIGNING_ALLOWED = NO; - CONFIGURATION_BUILD_DIR = "$(BUILD_DIR)/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)/IQKeyboardManager"; - IBSC_MODULE = IQKeyboardManager; - INFOPLIST_FILE = "Target Support Files/IQKeyboardManager/ResourceBundle-IQKeyboardManager-IQKeyboardManager-Info.plist"; - IPHONEOS_DEPLOYMENT_TARGET = 11.0; - PRODUCT_NAME = IQKeyboardManager; - SDKROOT = iphoneos; - SKIP_INSTALL = YES; - TARGETED_DEVICE_FAMILY = "1,2"; - WRAPPER_EXTENSION = bundle; - }; - name = Debug; - }; A3F4ED188F5185A5299CE0B00D737DAF /* Release */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 6F825A5E4F039EA8BBB916AF2C6CBDBB /* AvoidCrash.release.xcconfig */; + baseConfigurationReference = 607DD143B7FE0F2FAC3B4835F05C6F0F /* AvoidCrash.release.xcconfig */; buildSettings = { "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; @@ -21369,26 +22745,9 @@ }; name = Release; }; - A4ACF51A23A734A13F4E12B16BEC0D98 /* Release */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = 3BFEFA0A0B3119C90493AACB2952A551 /* Protobuf.release.xcconfig */; - buildSettings = { - CODE_SIGNING_ALLOWED = NO; - CONFIGURATION_BUILD_DIR = "$(BUILD_DIR)/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)/Protobuf"; - IBSC_MODULE = Protobuf; - INFOPLIST_FILE = "Target Support Files/Protobuf/ResourceBundle-Protobuf_Privacy-Protobuf-Info.plist"; - IPHONEOS_DEPLOYMENT_TARGET = 10.0; - PRODUCT_NAME = Protobuf_Privacy; - SDKROOT = iphoneos; - SKIP_INSTALL = YES; - TARGETED_DEVICE_FAMILY = "1,2"; - WRAPPER_EXTENSION = bundle; - }; - name = Release; - }; A74234DAAD938BE3BF6B471A9EE45A38 /* Release */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 990CF0C3878613AF2E60F2C9AA606405 /* AgoraInfra_iOS.release.xcconfig */; + baseConfigurationReference = A1159FCDCF090CD964DB7D1980C51BC1 /* AgoraInfra_iOS.release.xcconfig */; buildSettings = { ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor; @@ -21443,9 +22802,65 @@ }; name = Release; }; + A8BC0B09AC8F109F0F84367C44070F7E /* Release */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 50CB953D9D3B4F72E9ED204CAD506CAC /* SDWebImage.release.xcconfig */; + buildSettings = { + "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; + "CODE_SIGN_IDENTITY[sdk=watchos*]" = ""; + CURRENT_PROJECT_VERSION = 1; + DEFINES_MODULE = YES; + DYLIB_COMPATIBILITY_VERSION = 1; + DYLIB_CURRENT_VERSION = 1; + DYLIB_INSTALL_NAME_BASE = "@rpath"; + ENABLE_MODULE_VERIFIER = NO; + ENABLE_USER_SCRIPT_SANDBOXING = NO; + GCC_PREFIX_HEADER = "Target Support Files/SDWebImage/SDWebImage-prefix.pch"; + GENERATE_INFOPLIST_FILE = NO; + INFOPLIST_FILE = "Target Support Files/SDWebImage/SDWebImage-Info.plist"; + INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; + IPHONEOS_DEPLOYMENT_TARGET = 9.0; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + "@loader_path/Frameworks", + ); + MODULEMAP_FILE = "Target Support Files/SDWebImage/SDWebImage.modulemap"; + PRODUCT_MODULE_NAME = SDWebImage; + PRODUCT_NAME = SDWebImage; + SDKROOT = iphoneos; + SKIP_INSTALL = YES; + SWIFT_ACTIVE_COMPILATION_CONDITIONS = "$(inherited) "; + SWIFT_INSTALL_OBJC_HEADER = YES; + SWIFT_VERSION = 6.0; + TARGETED_DEVICE_FAMILY = "1,2"; + VALIDATE_PRODUCT = YES; + VERSIONING_SYSTEM = "apple-generic"; + VERSION_INFO_PREFIX = ""; + }; + name = Release; + }; + AC18D2E8028F22D4235BB2EBA2BF44A4 /* Debug */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = C31B61ADA03ADABA7F4258EBE5C98C07 /* AgoraLyricsScore.debug.xcconfig */; + buildSettings = { + CODE_SIGNING_ALLOWED = NO; + CONFIGURATION_BUILD_DIR = "$(BUILD_DIR)/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)/AgoraLyricsScore"; + IBSC_MODULE = AgoraLyricsScore; + INFOPLIST_FILE = "Target Support Files/AgoraLyricsScore/ResourceBundle-AgoraLyricsScoreBundle-AgoraLyricsScore-Info.plist"; + IPHONEOS_DEPLOYMENT_TARGET = 10.0; + PRODUCT_NAME = AgoraLyricsScoreBundle; + SDKROOT = iphoneos; + SKIP_INSTALL = YES; + TARGETED_DEVICE_FAMILY = "1,2"; + WRAPPER_EXTENSION = bundle; + }; + name = Debug; + }; AFC894E0E244EF0FBFC14CF792FC5B00 /* Release */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 5584457FB4113FFF04D74B2039E39415 /* FMDB.release.xcconfig */; + baseConfigurationReference = BAD3D4F05D735E651C44225EEBA0ED08 /* FMDB.release.xcconfig */; buildSettings = { CLANG_ENABLE_OBJC_WEAK = NO; "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; @@ -21483,9 +22898,26 @@ }; name = Release; }; + B1B3599F31F59F467A4482C3F0C5B721 /* Release */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = A41A5AA1AD11BD944B85AC3E47517917 /* JXCategoryView.release.xcconfig */; + buildSettings = { + CODE_SIGNING_ALLOWED = NO; + CONFIGURATION_BUILD_DIR = "$(BUILD_DIR)/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)/JXCategoryView"; + IBSC_MODULE = JXCategoryView; + INFOPLIST_FILE = "Target Support Files/JXCategoryView/ResourceBundle-JXCategoryView-JXCategoryView-Info.plist"; + IPHONEOS_DEPLOYMENT_TARGET = 9.0; + PRODUCT_NAME = JXCategoryView; + SDKROOT = iphoneos; + SKIP_INSTALL = YES; + TARGETED_DEVICE_FAMILY = "1,2"; + WRAPPER_EXTENSION = bundle; + }; + name = Release; + }; B26FBB655ABB114E4C0D589843814D6C /* Release */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 3A55E0B8409973D29041C0DF40B38366 /* Bugly.release.xcconfig */; + baseConfigurationReference = F3739706ADBC95382D973991D343B376 /* Bugly.release.xcconfig */; buildSettings = { ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor; @@ -21501,9 +22933,66 @@ }; name = Release; }; - B6923FAE9718C8463F5244248338454C /* Release */ = { + B5D4772C54F0324BFE436F88A3EB0D88 /* Debug */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 67AB58A2792880BE86602F974D60E7CE /* SDWebImage.release.xcconfig */; + baseConfigurationReference = 1BA6958466A32AF9132FFA8AA4FD8B85 /* QCloudCOSXML.debug.xcconfig */; + buildSettings = { + CLANG_ENABLE_OBJC_WEAK = NO; + "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; + "CODE_SIGN_IDENTITY[sdk=watchos*]" = ""; + CURRENT_PROJECT_VERSION = 1; + DEFINES_MODULE = YES; + DYLIB_COMPATIBILITY_VERSION = 1; + DYLIB_CURRENT_VERSION = 1; + DYLIB_INSTALL_NAME_BASE = "@rpath"; + ENABLE_MODULE_VERIFIER = NO; + ENABLE_USER_SCRIPT_SANDBOXING = NO; + GCC_PREFIX_HEADER = "Target Support Files/QCloudCOSXML/QCloudCOSXML-prefix.pch"; + GENERATE_INFOPLIST_FILE = NO; + INFOPLIST_FILE = "Target Support Files/QCloudCOSXML/QCloudCOSXML-Info.plist"; + INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; + IPHONEOS_DEPLOYMENT_TARGET = 10.0; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + "@loader_path/Frameworks", + ); + MACH_O_TYPE = staticlib; + MODULEMAP_FILE = "Target Support Files/QCloudCOSXML/QCloudCOSXML.modulemap"; + PRODUCT_MODULE_NAME = QCloudCOSXML; + PRODUCT_NAME = QCloudCOSXML; + SDKROOT = iphoneos; + SKIP_INSTALL = YES; + SWIFT_ACTIVE_COMPILATION_CONDITIONS = "$(inherited) "; + SWIFT_INSTALL_OBJC_HEADER = YES; + SWIFT_VERSION = 6.0; + TARGETED_DEVICE_FAMILY = "1,2"; + VERSIONING_SYSTEM = "apple-generic"; + VERSION_INFO_PREFIX = ""; + }; + name = Debug; + }; + B6BC07B528C69B7C23148E08C0710847 /* Release */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = AE8AA30C86BACC4D9D753D8DC071E34C /* TIMPush.release.xcconfig */; + buildSettings = { + CODE_SIGNING_ALLOWED = NO; + CONFIGURATION_BUILD_DIR = "$(BUILD_DIR)/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)/TIMPush"; + IBSC_MODULE = TIMPush; + INFOPLIST_FILE = "Target Support Files/TIMPush/ResourceBundle-TIMPush_Privacy-TIMPush-Info.plist"; + IPHONEOS_DEPLOYMENT_TARGET = 10.0; + PRODUCT_NAME = TIMPush_Privacy; + SDKROOT = iphoneos; + SKIP_INSTALL = YES; + TARGETED_DEVICE_FAMILY = "1,2"; + WRAPPER_EXTENSION = bundle; + }; + name = Release; + }; + B72310E92B5165D8FA770245E1EC1D0C /* Debug */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 01088A799B966110B896C4DBFCFAD1DA /* libwebp.debug.xcconfig */; buildSettings = { "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; @@ -21515,9 +23004,9 @@ DYLIB_INSTALL_NAME_BASE = "@rpath"; ENABLE_MODULE_VERIFIER = NO; ENABLE_USER_SCRIPT_SANDBOXING = NO; - GCC_PREFIX_HEADER = "Target Support Files/SDWebImage/SDWebImage-prefix.pch"; + GCC_PREFIX_HEADER = "Target Support Files/libwebp/libwebp-prefix.pch"; GENERATE_INFOPLIST_FILE = NO; - INFOPLIST_FILE = "Target Support Files/SDWebImage/SDWebImage-Info.plist"; + INFOPLIST_FILE = "Target Support Files/libwebp/libwebp-Info.plist"; INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; IPHONEOS_DEPLOYMENT_TARGET = 9.0; LD_RUNPATH_SEARCH_PATHS = ( @@ -21525,24 +23014,23 @@ "@executable_path/Frameworks", "@loader_path/Frameworks", ); - MODULEMAP_FILE = "Target Support Files/SDWebImage/SDWebImage.modulemap"; - PRODUCT_MODULE_NAME = SDWebImage; - PRODUCT_NAME = SDWebImage; + MODULEMAP_FILE = "Target Support Files/libwebp/libwebp.modulemap"; + PRODUCT_MODULE_NAME = libwebp; + PRODUCT_NAME = libwebp; SDKROOT = iphoneos; SKIP_INSTALL = YES; SWIFT_ACTIVE_COMPILATION_CONDITIONS = "$(inherited) "; SWIFT_INSTALL_OBJC_HEADER = YES; SWIFT_VERSION = 6.0; TARGETED_DEVICE_FAMILY = "1,2"; - VALIDATE_PRODUCT = YES; VERSIONING_SYSTEM = "apple-generic"; VERSION_INFO_PREFIX = ""; }; - name = Release; + name = Debug; }; B7A6028027E95FBB5EDF5846B95A9A24 /* Release */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 3BFEFA0A0B3119C90493AACB2952A551 /* Protobuf.release.xcconfig */; + baseConfigurationReference = 26A118A10758C5A28B5E4AB39FD11B59 /* Protobuf.release.xcconfig */; buildSettings = { CLANG_ENABLE_OBJC_WEAK = NO; "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; @@ -21582,7 +23070,7 @@ }; B8B5A47853C35F8E0FBD67DE7C329285 /* Release */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 3C734EC7A0E414C42093EC41F3868F98 /* SVGAPlayer.release.xcconfig */; + baseConfigurationReference = 51C23DC3DC29A2A612B6B0E41DD47F7D /* SVGAPlayer.release.xcconfig */; buildSettings = { "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; @@ -21619,9 +23107,26 @@ }; name = Release; }; + BA073712E852AD8DB7BF0A0051543FF7 /* Release */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 26A118A10758C5A28B5E4AB39FD11B59 /* Protobuf.release.xcconfig */; + buildSettings = { + CODE_SIGNING_ALLOWED = NO; + CONFIGURATION_BUILD_DIR = "$(BUILD_DIR)/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)/Protobuf"; + IBSC_MODULE = Protobuf; + INFOPLIST_FILE = "Target Support Files/Protobuf/ResourceBundle-Protobuf_Privacy-Protobuf-Info.plist"; + IPHONEOS_DEPLOYMENT_TARGET = 10.0; + PRODUCT_NAME = Protobuf_Privacy; + SDKROOT = iphoneos; + SKIP_INSTALL = YES; + TARGETED_DEVICE_FAMILY = "1,2"; + WRAPPER_EXTENSION = bundle; + }; + name = Release; + }; BB67D059BA4EAD9069DB2938FD26AF18 /* Debug */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 87F007D7254F77303B8C3A176B722D97 /* YYText.debug.xcconfig */; + baseConfigurationReference = BFC84236DC6934E20BF769B2B51E459B /* YYText.debug.xcconfig */; buildSettings = { "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; @@ -21659,7 +23164,7 @@ }; BC123DCB4005E49912F8C0C2077797A5 /* Release */ = { isa = XCBuildConfiguration; - baseConfigurationReference = AFFF1B74E371CF5161810F6C59C355AD /* YYText.release.xcconfig */; + baseConfigurationReference = 6AF6640AB2CCFE42C07F6501E2493172 /* YYText.release.xcconfig */; buildSettings = { "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; @@ -21696,7 +23201,404 @@ }; name = Release; }; - C06B4C9A3222C4FE6AFC907FD3EE5451 /* Debug */ = { + C065C676FC6C7559167BE21DDAF9410C /* Release */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 72C14EE33E6CEE0E46196F699B3EC5A9 /* QCloudCOSXML.release.xcconfig */; + buildSettings = { + CLANG_ENABLE_OBJC_WEAK = NO; + "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; + "CODE_SIGN_IDENTITY[sdk=watchos*]" = ""; + CURRENT_PROJECT_VERSION = 1; + DEFINES_MODULE = YES; + DYLIB_COMPATIBILITY_VERSION = 1; + DYLIB_CURRENT_VERSION = 1; + DYLIB_INSTALL_NAME_BASE = "@rpath"; + ENABLE_MODULE_VERIFIER = NO; + ENABLE_USER_SCRIPT_SANDBOXING = NO; + GCC_PREFIX_HEADER = "Target Support Files/QCloudCOSXML/QCloudCOSXML-prefix.pch"; + GENERATE_INFOPLIST_FILE = NO; + INFOPLIST_FILE = "Target Support Files/QCloudCOSXML/QCloudCOSXML-Info.plist"; + INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; + IPHONEOS_DEPLOYMENT_TARGET = 10.0; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + "@loader_path/Frameworks", + ); + MACH_O_TYPE = staticlib; + MODULEMAP_FILE = "Target Support Files/QCloudCOSXML/QCloudCOSXML.modulemap"; + PRODUCT_MODULE_NAME = QCloudCOSXML; + PRODUCT_NAME = QCloudCOSXML; + SDKROOT = iphoneos; + SKIP_INSTALL = YES; + SWIFT_ACTIVE_COMPILATION_CONDITIONS = "$(inherited) "; + SWIFT_INSTALL_OBJC_HEADER = YES; + SWIFT_VERSION = 6.0; + TARGETED_DEVICE_FAMILY = "1,2"; + VALIDATE_PRODUCT = YES; + VERSIONING_SYSTEM = "apple-generic"; + VERSION_INFO_PREFIX = ""; + }; + name = Release; + }; + C092799E5D2673B43C45CB166BF09301 /* Debug */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 94DE8F7BB4C72D62AD40BF89FD749202 /* Masonry.debug.xcconfig */; + buildSettings = { + "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; + "CODE_SIGN_IDENTITY[sdk=watchos*]" = ""; + CURRENT_PROJECT_VERSION = 1; + DEFINES_MODULE = YES; + DYLIB_COMPATIBILITY_VERSION = 1; + DYLIB_CURRENT_VERSION = 1; + DYLIB_INSTALL_NAME_BASE = "@rpath"; + ENABLE_MODULE_VERIFIER = NO; + ENABLE_USER_SCRIPT_SANDBOXING = NO; + GCC_PREFIX_HEADER = "Target Support Files/Masonry/Masonry-prefix.pch"; + GENERATE_INFOPLIST_FILE = NO; + INFOPLIST_FILE = "Target Support Files/Masonry/Masonry-Info.plist"; + INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; + IPHONEOS_DEPLOYMENT_TARGET = 8.0; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + "@loader_path/Frameworks", + ); + MODULEMAP_FILE = "Target Support Files/Masonry/Masonry.modulemap"; + PRODUCT_MODULE_NAME = Masonry; + PRODUCT_NAME = Masonry; + SDKROOT = iphoneos; + SKIP_INSTALL = YES; + SWIFT_ACTIVE_COMPILATION_CONDITIONS = "$(inherited) "; + SWIFT_INSTALL_OBJC_HEADER = YES; + SWIFT_VERSION = 6.0; + TARGETED_DEVICE_FAMILY = "1,2"; + VERSIONING_SYSTEM = "apple-generic"; + VERSION_INFO_PREFIX = ""; + }; + name = Debug; + }; + C09886D2BBE105EF5E35246747EE4072 /* Debug */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = E7B283DA7D9438642D048CC661511A97 /* JXPagingView.debug.xcconfig */; + buildSettings = { + CODE_SIGNING_ALLOWED = NO; + CONFIGURATION_BUILD_DIR = "$(BUILD_DIR)/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)/JXPagingView"; + IBSC_MODULE = JXPagingView; + INFOPLIST_FILE = "Target Support Files/JXPagingView/ResourceBundle-JXPagerView-JXPagingView-Info.plist"; + IPHONEOS_DEPLOYMENT_TARGET = 8.0; + PRODUCT_NAME = JXPagerView; + SDKROOT = iphoneos; + SKIP_INSTALL = YES; + TARGETED_DEVICE_FAMILY = "1,2"; + WRAPPER_EXTENSION = bundle; + }; + name = Debug; + }; + C8F6C5C39B987046CC3E93C607C1032B /* Debug */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 908009E78A2E56530859FF690E873087 /* Pods-QXLiveDev.debug.xcconfig */; + buildSettings = { + ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = NO; + CLANG_ENABLE_OBJC_WEAK = NO; + "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; + "CODE_SIGN_IDENTITY[sdk=watchos*]" = ""; + CURRENT_PROJECT_VERSION = 1; + DEFINES_MODULE = YES; + DYLIB_COMPATIBILITY_VERSION = 1; + DYLIB_CURRENT_VERSION = 1; + DYLIB_INSTALL_NAME_BASE = "@rpath"; + ENABLE_MODULE_VERIFIER = NO; + ENABLE_USER_SCRIPT_SANDBOXING = NO; + INFOPLIST_FILE = "Target Support Files/Pods-QXLiveDev/Pods-QXLiveDev-Info.plist"; + INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; + IPHONEOS_DEPLOYMENT_TARGET = 13.0; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + "@loader_path/Frameworks", + ); + MACH_O_TYPE = staticlib; + MODULEMAP_FILE = "Target Support Files/Pods-QXLiveDev/Pods-QXLiveDev.modulemap"; + OTHER_LDFLAGS = ""; + OTHER_LIBTOOLFLAGS = ""; + PODS_ROOT = "$(SRCROOT)"; + PRODUCT_BUNDLE_IDENTIFIER = "org.cocoapods.${PRODUCT_NAME:rfc1034identifier}"; + PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)"; + SDKROOT = iphoneos; + SKIP_INSTALL = YES; + TARGETED_DEVICE_FAMILY = "1,2"; + VERSIONING_SYSTEM = "apple-generic"; + VERSION_INFO_PREFIX = ""; + }; + name = Debug; + }; + C9AC4CE27457B447194297AFF1FFEB28 /* Debug */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 08B8980434FBD4317A7A907D8F0BA6EB /* TUICore.debug.xcconfig */; + buildSettings = { + CODE_SIGNING_ALLOWED = NO; + CONFIGURATION_BUILD_DIR = "$(BUILD_DIR)/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)/TUICore"; + IBSC_MODULE = TUICore; + INFOPLIST_FILE = "Target Support Files/TUICore/ResourceBundle-TUICore_Privacy-TUICore-Info.plist"; + IPHONEOS_DEPLOYMENT_TARGET = 9.0; + PRODUCT_NAME = TUICore_Privacy; + SDKROOT = iphoneos; + SKIP_INSTALL = YES; + TARGETED_DEVICE_FAMILY = "1,2"; + WRAPPER_EXTENSION = bundle; + }; + name = Debug; + }; + C9C694F92A168790383093D47B4EC5BB /* Debug */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 59C4B857C3564ECB2A07D79D96916AC2 /* JXCategoryView.debug.xcconfig */; + buildSettings = { + "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; + "CODE_SIGN_IDENTITY[sdk=watchos*]" = ""; + CURRENT_PROJECT_VERSION = 1; + DEFINES_MODULE = YES; + DYLIB_COMPATIBILITY_VERSION = 1; + DYLIB_CURRENT_VERSION = 1; + DYLIB_INSTALL_NAME_BASE = "@rpath"; + ENABLE_MODULE_VERIFIER = NO; + ENABLE_USER_SCRIPT_SANDBOXING = NO; + GCC_PREFIX_HEADER = "Target Support Files/JXCategoryView/JXCategoryView-prefix.pch"; + GENERATE_INFOPLIST_FILE = NO; + INFOPLIST_FILE = "Target Support Files/JXCategoryView/JXCategoryView-Info.plist"; + INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; + IPHONEOS_DEPLOYMENT_TARGET = 9.0; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + "@loader_path/Frameworks", + ); + MODULEMAP_FILE = "Target Support Files/JXCategoryView/JXCategoryView.modulemap"; + PRODUCT_MODULE_NAME = JXCategoryView; + PRODUCT_NAME = JXCategoryView; + SDKROOT = iphoneos; + SKIP_INSTALL = YES; + SWIFT_ACTIVE_COMPILATION_CONDITIONS = "$(inherited) "; + SWIFT_INSTALL_OBJC_HEADER = YES; + SWIFT_VERSION = 6.0; + TARGETED_DEVICE_FAMILY = "1,2"; + VERSIONING_SYSTEM = "apple-generic"; + VERSION_INFO_PREFIX = ""; + }; + name = Debug; + }; + CA0B9CA9AAAB1FFE9BA350CD8DE3DD0B /* Debug */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = F025B9C3846DE7CDEB581BE526815DBE /* TUIChat.debug.xcconfig */; + buildSettings = { + CODE_SIGNING_ALLOWED = NO; + CONFIGURATION_BUILD_DIR = "$(BUILD_DIR)/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)/TUIChat"; + IBSC_MODULE = TUIChat; + INFOPLIST_FILE = "Target Support Files/TUIChat/ResourceBundle-TUIChat_Privacy-TUIChat-Info.plist"; + IPHONEOS_DEPLOYMENT_TARGET = 9.0; + PRODUCT_NAME = TUIChat_Privacy; + SDKROOT = iphoneos; + SKIP_INSTALL = YES; + TARGETED_DEVICE_FAMILY = "1,2"; + WRAPPER_EXTENSION = bundle; + }; + name = Debug; + }; + CBAFED52B4B51F600FAF2141BA449F2E /* Debug */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 24D778ECA14E184A4CF72F4BB4E7D79B /* Bugly.debug.xcconfig */; + buildSettings = { + ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; + ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor; + ENABLE_USER_SCRIPT_SANDBOXING = NO; + IPHONEOS_DEPLOYMENT_TARGET = 8.0; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + ); + SDKROOT = iphoneos; + TARGETED_DEVICE_FAMILY = "1,2"; + }; + name = Debug; + }; + CE945A7AEE40E96B1C5B27C8D3E72599 /* Debug */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = F117D94CCC6911AB906A6757E7290E6A /* YYImage.debug.xcconfig */; + buildSettings = { + "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; + "CODE_SIGN_IDENTITY[sdk=watchos*]" = ""; + CURRENT_PROJECT_VERSION = 1; + DEFINES_MODULE = YES; + DYLIB_COMPATIBILITY_VERSION = 1; + DYLIB_CURRENT_VERSION = 1; + DYLIB_INSTALL_NAME_BASE = "@rpath"; + ENABLE_MODULE_VERIFIER = NO; + ENABLE_USER_SCRIPT_SANDBOXING = NO; + GCC_PREFIX_HEADER = "Target Support Files/YYImage/YYImage-prefix.pch"; + GENERATE_INFOPLIST_FILE = NO; + INFOPLIST_FILE = "Target Support Files/YYImage/YYImage-Info.plist"; + INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; + IPHONEOS_DEPLOYMENT_TARGET = 8.0; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + "@loader_path/Frameworks", + ); + MODULEMAP_FILE = "Target Support Files/YYImage/YYImage.modulemap"; + PRODUCT_MODULE_NAME = YYImage; + PRODUCT_NAME = YYImage; + SDKROOT = iphoneos; + SKIP_INSTALL = YES; + SWIFT_ACTIVE_COMPILATION_CONDITIONS = "$(inherited) "; + SWIFT_INSTALL_OBJC_HEADER = YES; + SWIFT_VERSION = 6.0; + TARGETED_DEVICE_FAMILY = "1,2"; + VERSIONING_SYSTEM = "apple-generic"; + VERSION_INFO_PREFIX = ""; + }; + name = Debug; + }; + D0BA3F9EF558559FA1C19DCAC1C84649 /* Debug */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = B72A03F02CCB8306A16F5545921CFE99 /* AgoraInfra_iOS.debug.xcconfig */; + buildSettings = { + ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; + ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor; + ENABLE_USER_SCRIPT_SANDBOXING = NO; + IPHONEOS_DEPLOYMENT_TARGET = 8.0; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + ); + SDKROOT = iphoneos; + TARGETED_DEVICE_FAMILY = "1,2"; + }; + name = Debug; + }; + D1B014751DD59BA0428C740F5A2F4D11 /* Release */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 578EBAD6008013CBDC078739E7461D08 /* YYImage.release.xcconfig */; + buildSettings = { + "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; + "CODE_SIGN_IDENTITY[sdk=watchos*]" = ""; + CURRENT_PROJECT_VERSION = 1; + DEFINES_MODULE = YES; + DYLIB_COMPATIBILITY_VERSION = 1; + DYLIB_CURRENT_VERSION = 1; + DYLIB_INSTALL_NAME_BASE = "@rpath"; + ENABLE_MODULE_VERIFIER = NO; + ENABLE_USER_SCRIPT_SANDBOXING = NO; + GCC_PREFIX_HEADER = "Target Support Files/YYImage/YYImage-prefix.pch"; + GENERATE_INFOPLIST_FILE = NO; + INFOPLIST_FILE = "Target Support Files/YYImage/YYImage-Info.plist"; + INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; + IPHONEOS_DEPLOYMENT_TARGET = 8.0; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + "@loader_path/Frameworks", + ); + MODULEMAP_FILE = "Target Support Files/YYImage/YYImage.modulemap"; + PRODUCT_MODULE_NAME = YYImage; + PRODUCT_NAME = YYImage; + SDKROOT = iphoneos; + SKIP_INSTALL = YES; + SWIFT_ACTIVE_COMPILATION_CONDITIONS = "$(inherited) "; + SWIFT_INSTALL_OBJC_HEADER = YES; + SWIFT_VERSION = 6.0; + TARGETED_DEVICE_FAMILY = "1,2"; + VALIDATE_PRODUCT = YES; + VERSIONING_SYSTEM = "apple-generic"; + VERSION_INFO_PREFIX = ""; + }; + name = Release; + }; + D366302C8292A495077037FC7752DD36 /* Release */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = A16D3E962028F954BA527E95B4340C14 /* QCloudCore.release.xcconfig */; + buildSettings = { + CLANG_ENABLE_OBJC_WEAK = NO; + "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; + "CODE_SIGN_IDENTITY[sdk=watchos*]" = ""; + CURRENT_PROJECT_VERSION = 1; + DEFINES_MODULE = YES; + DYLIB_COMPATIBILITY_VERSION = 1; + DYLIB_CURRENT_VERSION = 1; + DYLIB_INSTALL_NAME_BASE = "@rpath"; + ENABLE_MODULE_VERIFIER = NO; + ENABLE_USER_SCRIPT_SANDBOXING = NO; + GCC_PREFIX_HEADER = "Target Support Files/QCloudCore/QCloudCore-prefix.pch"; + GENERATE_INFOPLIST_FILE = NO; + INFOPLIST_FILE = "Target Support Files/QCloudCore/QCloudCore-Info.plist"; + INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; + IPHONEOS_DEPLOYMENT_TARGET = 10.0; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + "@loader_path/Frameworks", + ); + MACH_O_TYPE = staticlib; + MODULEMAP_FILE = "Target Support Files/QCloudCore/QCloudCore.modulemap"; + PRODUCT_MODULE_NAME = QCloudCore; + PRODUCT_NAME = QCloudCore; + SDKROOT = iphoneos; + SKIP_INSTALL = YES; + SWIFT_ACTIVE_COMPILATION_CONDITIONS = "$(inherited) "; + SWIFT_INSTALL_OBJC_HEADER = YES; + SWIFT_VERSION = 6.0; + TARGETED_DEVICE_FAMILY = "1,2"; + VALIDATE_PRODUCT = YES; + VERSIONING_SYSTEM = "apple-generic"; + VERSION_INFO_PREFIX = ""; + }; + name = Release; + }; + D68AB84870B8EB2A69D10E815ACE5370 /* Debug */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = C5AE11E7C369B0D007F232374528F4E4 /* Zip.debug.xcconfig */; + buildSettings = { + "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; + "CODE_SIGN_IDENTITY[sdk=watchos*]" = ""; + CURRENT_PROJECT_VERSION = 1; + DEFINES_MODULE = YES; + DYLIB_COMPATIBILITY_VERSION = 1; + DYLIB_CURRENT_VERSION = 1; + DYLIB_INSTALL_NAME_BASE = "@rpath"; + ENABLE_MODULE_VERIFIER = NO; + ENABLE_USER_SCRIPT_SANDBOXING = NO; + GCC_PREFIX_HEADER = "Target Support Files/Zip/Zip-prefix.pch"; + GENERATE_INFOPLIST_FILE = NO; + INFOPLIST_FILE = "Target Support Files/Zip/Zip-Info.plist"; + INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; + IPHONEOS_DEPLOYMENT_TARGET = 9.0; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + "@loader_path/Frameworks", + ); + MODULEMAP_FILE = "Target Support Files/Zip/Zip.modulemap"; + PRODUCT_MODULE_NAME = Zip; + PRODUCT_NAME = Zip; + SDKROOT = iphoneos; + SKIP_INSTALL = YES; + SWIFT_ACTIVE_COMPILATION_CONDITIONS = "$(inherited) "; + SWIFT_INSTALL_OBJC_HEADER = YES; + SWIFT_VERSION = 5.3; + TARGETED_DEVICE_FAMILY = "1,2"; + VERSIONING_SYSTEM = "apple-generic"; + VERSION_INFO_PREFIX = ""; + }; + name = Debug; + }; + D6CCB7A2CF8342C02A10D3036DFEDF09 /* Debug */ = { isa = XCBuildConfiguration; baseConfigurationReference = 08B8980434FBD4317A7A907D8F0BA6EB /* TUICore.debug.xcconfig */; buildSettings = { @@ -21734,54 +23636,16 @@ }; name = Debug; }; - C092799E5D2673B43C45CB166BF09301 /* Debug */ = { + D70C6145A0BFD74F7DD18953FF39EBA6 /* Release */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 9B356D121CC77A3AA2DF9D74CCE27FD2 /* Masonry.debug.xcconfig */; - buildSettings = { - "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; - "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; - "CODE_SIGN_IDENTITY[sdk=watchos*]" = ""; - CURRENT_PROJECT_VERSION = 1; - DEFINES_MODULE = YES; - DYLIB_COMPATIBILITY_VERSION = 1; - DYLIB_CURRENT_VERSION = 1; - DYLIB_INSTALL_NAME_BASE = "@rpath"; - ENABLE_MODULE_VERIFIER = NO; - ENABLE_USER_SCRIPT_SANDBOXING = NO; - GCC_PREFIX_HEADER = "Target Support Files/Masonry/Masonry-prefix.pch"; - GENERATE_INFOPLIST_FILE = NO; - INFOPLIST_FILE = "Target Support Files/Masonry/Masonry-Info.plist"; - INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; - IPHONEOS_DEPLOYMENT_TARGET = 8.0; - LD_RUNPATH_SEARCH_PATHS = ( - "$(inherited)", - "@executable_path/Frameworks", - "@loader_path/Frameworks", - ); - MODULEMAP_FILE = "Target Support Files/Masonry/Masonry.modulemap"; - PRODUCT_MODULE_NAME = Masonry; - PRODUCT_NAME = Masonry; - SDKROOT = iphoneos; - SKIP_INSTALL = YES; - SWIFT_ACTIVE_COMPILATION_CONDITIONS = "$(inherited) "; - SWIFT_INSTALL_OBJC_HEADER = YES; - SWIFT_VERSION = 6.0; - TARGETED_DEVICE_FAMILY = "1,2"; - VERSIONING_SYSTEM = "apple-generic"; - VERSION_INFO_PREFIX = ""; - }; - name = Debug; - }; - C87A7F768892A5C47CA039660F4E2FBF /* Release */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = A42A1CA22BD05C7F9BBAF079E7453AB0 /* TUICore.release.xcconfig */; + baseConfigurationReference = 50CB953D9D3B4F72E9ED204CAD506CAC /* SDWebImage.release.xcconfig */; buildSettings = { CODE_SIGNING_ALLOWED = NO; - CONFIGURATION_BUILD_DIR = "$(BUILD_DIR)/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)/TUICore"; - IBSC_MODULE = TUICore; - INFOPLIST_FILE = "Target Support Files/TUICore/ResourceBundle-TUICore_Privacy-TUICore-Info.plist"; + CONFIGURATION_BUILD_DIR = "$(BUILD_DIR)/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)/SDWebImage"; + IBSC_MODULE = SDWebImage; + INFOPLIST_FILE = "Target Support Files/SDWebImage/ResourceBundle-SDWebImage-SDWebImage-Info.plist"; IPHONEOS_DEPLOYMENT_TARGET = 9.0; - PRODUCT_NAME = TUICore_Privacy; + PRODUCT_NAME = SDWebImage; SDKROOT = iphoneos; SKIP_INSTALL = YES; TARGETED_DEVICE_FAMILY = "1,2"; @@ -21789,193 +23653,9 @@ }; name = Release; }; - C9C694F92A168790383093D47B4EC5BB /* Debug */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = 69B248D555D8BD61F0BE46A285DFCDF8 /* JXCategoryView.debug.xcconfig */; - buildSettings = { - "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; - "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; - "CODE_SIGN_IDENTITY[sdk=watchos*]" = ""; - CURRENT_PROJECT_VERSION = 1; - DEFINES_MODULE = YES; - DYLIB_COMPATIBILITY_VERSION = 1; - DYLIB_CURRENT_VERSION = 1; - DYLIB_INSTALL_NAME_BASE = "@rpath"; - ENABLE_MODULE_VERIFIER = NO; - ENABLE_USER_SCRIPT_SANDBOXING = NO; - GCC_PREFIX_HEADER = "Target Support Files/JXCategoryView/JXCategoryView-prefix.pch"; - GENERATE_INFOPLIST_FILE = NO; - INFOPLIST_FILE = "Target Support Files/JXCategoryView/JXCategoryView-Info.plist"; - INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; - IPHONEOS_DEPLOYMENT_TARGET = 9.0; - LD_RUNPATH_SEARCH_PATHS = ( - "$(inherited)", - "@executable_path/Frameworks", - "@loader_path/Frameworks", - ); - MODULEMAP_FILE = "Target Support Files/JXCategoryView/JXCategoryView.modulemap"; - PRODUCT_MODULE_NAME = JXCategoryView; - PRODUCT_NAME = JXCategoryView; - SDKROOT = iphoneos; - SKIP_INSTALL = YES; - SWIFT_ACTIVE_COMPILATION_CONDITIONS = "$(inherited) "; - SWIFT_INSTALL_OBJC_HEADER = YES; - SWIFT_VERSION = 6.0; - TARGETED_DEVICE_FAMILY = "1,2"; - VERSIONING_SYSTEM = "apple-generic"; - VERSION_INFO_PREFIX = ""; - }; - name = Debug; - }; - CBAFED52B4B51F600FAF2141BA449F2E /* Debug */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = 03C70B2B7D74D31A1BC510EC918BEA1F /* Bugly.debug.xcconfig */; - buildSettings = { - ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; - ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor; - ENABLE_USER_SCRIPT_SANDBOXING = NO; - IPHONEOS_DEPLOYMENT_TARGET = 8.0; - LD_RUNPATH_SEARCH_PATHS = ( - "$(inherited)", - "@executable_path/Frameworks", - ); - SDKROOT = iphoneos; - TARGETED_DEVICE_FAMILY = "1,2"; - }; - name = Debug; - }; - D0BA3F9EF558559FA1C19DCAC1C84649 /* Debug */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = B0A10B59E6C7E6F20746AE945EB76364 /* AgoraInfra_iOS.debug.xcconfig */; - buildSettings = { - ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; - ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor; - ENABLE_USER_SCRIPT_SANDBOXING = NO; - IPHONEOS_DEPLOYMENT_TARGET = 8.0; - LD_RUNPATH_SEARCH_PATHS = ( - "$(inherited)", - "@executable_path/Frameworks", - ); - SDKROOT = iphoneos; - TARGETED_DEVICE_FAMILY = "1,2"; - }; - name = Debug; - }; - D0D638D3863000DD93F6189FC44B5A41 /* Release */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = 5547EBD2D22EB59AEB027AC63B1BF4D7 /* Zip.release.xcconfig */; - buildSettings = { - "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; - "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; - "CODE_SIGN_IDENTITY[sdk=watchos*]" = ""; - CURRENT_PROJECT_VERSION = 1; - DEFINES_MODULE = YES; - DYLIB_COMPATIBILITY_VERSION = 1; - DYLIB_CURRENT_VERSION = 1; - DYLIB_INSTALL_NAME_BASE = "@rpath"; - ENABLE_MODULE_VERIFIER = NO; - ENABLE_USER_SCRIPT_SANDBOXING = NO; - GCC_PREFIX_HEADER = "Target Support Files/Zip/Zip-prefix.pch"; - GENERATE_INFOPLIST_FILE = NO; - INFOPLIST_FILE = "Target Support Files/Zip/Zip-Info.plist"; - INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; - IPHONEOS_DEPLOYMENT_TARGET = 9.0; - LD_RUNPATH_SEARCH_PATHS = ( - "$(inherited)", - "@executable_path/Frameworks", - "@loader_path/Frameworks", - ); - MODULEMAP_FILE = "Target Support Files/Zip/Zip.modulemap"; - PRODUCT_MODULE_NAME = Zip; - PRODUCT_NAME = Zip; - SDKROOT = iphoneos; - SKIP_INSTALL = YES; - SWIFT_ACTIVE_COMPILATION_CONDITIONS = "$(inherited) "; - SWIFT_INSTALL_OBJC_HEADER = YES; - SWIFT_VERSION = 5.3; - TARGETED_DEVICE_FAMILY = "1,2"; - VALIDATE_PRODUCT = YES; - VERSIONING_SYSTEM = "apple-generic"; - VERSION_INFO_PREFIX = ""; - }; - name = Release; - }; - D3FEBC664FB11A429661DECA38B4E587 /* Release */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = 52389EA2AA61742DE2714261023D6EA7 /* TUIConversation.release.xcconfig */; - buildSettings = { - CODE_SIGNING_ALLOWED = NO; - CONFIGURATION_BUILD_DIR = "$(BUILD_DIR)/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)/TUIConversation"; - IBSC_MODULE = TUIConversation; - INFOPLIST_FILE = "Target Support Files/TUIConversation/ResourceBundle-TUIConversation_Privacy-TUIConversation-Info.plist"; - IPHONEOS_DEPLOYMENT_TARGET = 9.0; - PRODUCT_NAME = TUIConversation_Privacy; - SDKROOT = iphoneos; - SKIP_INSTALL = YES; - TARGETED_DEVICE_FAMILY = "1,2"; - WRAPPER_EXTENSION = bundle; - }; - name = Release; - }; - D65F938C80C7C7B754E095252741E4C8 /* Release */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = 8C32E95A497E8AB16BA4B503703866D7 /* TUIChat.release.xcconfig */; - buildSettings = { - CODE_SIGNING_ALLOWED = NO; - CONFIGURATION_BUILD_DIR = "$(BUILD_DIR)/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)/TUIChat"; - IBSC_MODULE = TUIChat; - INFOPLIST_FILE = "Target Support Files/TUIChat/ResourceBundle-TUIChat_Privacy-TUIChat-Info.plist"; - IPHONEOS_DEPLOYMENT_TARGET = 9.0; - PRODUCT_NAME = TUIChat_Privacy; - SDKROOT = iphoneos; - SKIP_INSTALL = YES; - TARGETED_DEVICE_FAMILY = "1,2"; - WRAPPER_EXTENSION = bundle; - }; - name = Release; - }; - D66337374751C44802032CA7E50BDD7D /* Release */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = A42A1CA22BD05C7F9BBAF079E7453AB0 /* TUICore.release.xcconfig */; - buildSettings = { - "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; - "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; - "CODE_SIGN_IDENTITY[sdk=watchos*]" = ""; - CURRENT_PROJECT_VERSION = 1; - DEFINES_MODULE = YES; - DYLIB_COMPATIBILITY_VERSION = 1; - DYLIB_CURRENT_VERSION = 1; - DYLIB_INSTALL_NAME_BASE = "@rpath"; - ENABLE_MODULE_VERIFIER = NO; - ENABLE_USER_SCRIPT_SANDBOXING = NO; - GCC_PREFIX_HEADER = "Target Support Files/TUICore/TUICore-prefix.pch"; - GENERATE_INFOPLIST_FILE = NO; - INFOPLIST_FILE = "Target Support Files/TUICore/TUICore-Info.plist"; - INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; - IPHONEOS_DEPLOYMENT_TARGET = 9.0; - LD_RUNPATH_SEARCH_PATHS = ( - "$(inherited)", - "@executable_path/Frameworks", - "@loader_path/Frameworks", - ); - MODULEMAP_FILE = "Target Support Files/TUICore/TUICore.modulemap"; - PRODUCT_MODULE_NAME = TUICore; - PRODUCT_NAME = TUICore; - SDKROOT = iphoneos; - SKIP_INSTALL = YES; - SWIFT_ACTIVE_COMPILATION_CONDITIONS = "$(inherited) "; - SWIFT_INSTALL_OBJC_HEADER = YES; - SWIFT_VERSION = 6.0; - TARGETED_DEVICE_FAMILY = "1,2"; - VALIDATE_PRODUCT = YES; - VERSIONING_SYSTEM = "apple-generic"; - VERSION_INFO_PREFIX = ""; - }; - name = Release; - }; D997E4194A96734A6FE02CB6A11F2EA5 /* Release */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 9E66D537394401356ED601BF475AC11F /* AgoraRtcEngine_iOS.release.xcconfig */; + baseConfigurationReference = A7578387B59E97B28BF7094AD41541A8 /* AgoraRtcEngine_iOS.release.xcconfig */; buildSettings = { ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor; @@ -21991,64 +23671,9 @@ }; name = Release; }; - DB29E07AE1426C69B65CA4E482884875 /* Debug */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = B1821A84FEEDC79CEFFCF904DEB92F3E /* AliyunOSSiOS.debug.xcconfig */; - buildSettings = { - CODE_SIGNING_ALLOWED = NO; - CONFIGURATION_BUILD_DIR = "$(BUILD_DIR)/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)/AliyunOSSiOS"; - IBSC_MODULE = AliyunOSSiOS; - INFOPLIST_FILE = "Target Support Files/AliyunOSSiOS/ResourceBundle-AliyunOSSiOS_Privacy-AliyunOSSiOS-Info.plist"; - IPHONEOS_DEPLOYMENT_TARGET = 8.0; - PRODUCT_NAME = AliyunOSSiOS_Privacy; - SDKROOT = iphoneos; - SKIP_INSTALL = YES; - TARGETED_DEVICE_FAMILY = "1,2"; - WRAPPER_EXTENSION = bundle; - }; - name = Debug; - }; - DE1514DC0D3271598EB72881941EB0B7 /* Debug */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = 2FDDD201C2A98C3CA6DDCC3F69B3AAE3 /* Zip.debug.xcconfig */; - buildSettings = { - "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; - "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; - "CODE_SIGN_IDENTITY[sdk=watchos*]" = ""; - CURRENT_PROJECT_VERSION = 1; - DEFINES_MODULE = YES; - DYLIB_COMPATIBILITY_VERSION = 1; - DYLIB_CURRENT_VERSION = 1; - DYLIB_INSTALL_NAME_BASE = "@rpath"; - ENABLE_MODULE_VERIFIER = NO; - ENABLE_USER_SCRIPT_SANDBOXING = NO; - GCC_PREFIX_HEADER = "Target Support Files/Zip/Zip-prefix.pch"; - GENERATE_INFOPLIST_FILE = NO; - INFOPLIST_FILE = "Target Support Files/Zip/Zip-Info.plist"; - INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; - IPHONEOS_DEPLOYMENT_TARGET = 9.0; - LD_RUNPATH_SEARCH_PATHS = ( - "$(inherited)", - "@executable_path/Frameworks", - "@loader_path/Frameworks", - ); - MODULEMAP_FILE = "Target Support Files/Zip/Zip.modulemap"; - PRODUCT_MODULE_NAME = Zip; - PRODUCT_NAME = Zip; - SDKROOT = iphoneos; - SKIP_INSTALL = YES; - SWIFT_ACTIVE_COMPILATION_CONDITIONS = "$(inherited) "; - SWIFT_INSTALL_OBJC_HEADER = YES; - SWIFT_VERSION = 5.3; - TARGETED_DEVICE_FAMILY = "1,2"; - VERSIONING_SYSTEM = "apple-generic"; - VERSION_INFO_PREFIX = ""; - }; - name = Debug; - }; E10BB363A46FC692042AB6F61A9F36FC /* Debug */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 406FA81F194DE7165BAE5048697FDFCE /* WechatOpenSDK-XCFramework.debug.xcconfig */; + baseConfigurationReference = 91403F1E5C0272749E2C99D64AFD32CE /* WechatOpenSDK-XCFramework.debug.xcconfig */; buildSettings = { ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor; @@ -22063,26 +23688,9 @@ }; name = Debug; }; - E21856EA54EE6F4C2CB5622965FD1960 /* Release */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = F0EB163B760EC1D361AAEBDEE607BDA1 /* TIMPush.release.xcconfig */; - buildSettings = { - CODE_SIGNING_ALLOWED = NO; - CONFIGURATION_BUILD_DIR = "$(BUILD_DIR)/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)/TIMPush"; - IBSC_MODULE = TIMPush; - INFOPLIST_FILE = "Target Support Files/TIMPush/ResourceBundle-TIMPush_Privacy-TIMPush-Info.plist"; - IPHONEOS_DEPLOYMENT_TARGET = 10.0; - PRODUCT_NAME = TIMPush_Privacy; - SDKROOT = iphoneos; - SKIP_INSTALL = YES; - TARGETED_DEVICE_FAMILY = "1,2"; - WRAPPER_EXTENSION = bundle; - }; - name = Release; - }; E30681762B80C188BE057874118FD967 /* Release */ = { isa = XCBuildConfiguration; - baseConfigurationReference = C092C466730A789FFD1F47D57E1CBE1A /* AgoraLyricsScore.release.xcconfig */; + baseConfigurationReference = 09F10D3C43B69141D421137BE6F58F62 /* AgoraLyricsScore.release.xcconfig */; buildSettings = { CLANG_ENABLE_OBJC_WEAK = NO; "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; @@ -22121,7 +23729,7 @@ }; E78233C4E6A77582C1DC7C147101B880 /* Release */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 022A531397C9F020E81FB203A4CF5AA8 /* BRPickerView.release.xcconfig */; + baseConfigurationReference = E16A9E6B2A5EABBCE1CDCF06E8F746DE /* BRPickerView.release.xcconfig */; buildSettings = { "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; @@ -22160,7 +23768,7 @@ }; E91506D294B540BFE4198EAAA83F048E /* Release */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 36C65C27CD686409B0FA655E55D45F58 /* AFNetworking.release.xcconfig */; + baseConfigurationReference = 205C8F9018C2B758BAC59F6F06EAB367 /* AFNetworking.release.xcconfig */; buildSettings = { "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; @@ -22197,26 +23805,48 @@ }; name = Release; }; - ED025C5BBE362AD07C7D7081DFC2CE9A /* Debug */ = { + EB6157844373AB800AC42004C48F6A9F /* Release */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 69B248D555D8BD61F0BE46A285DFCDF8 /* JXCategoryView.debug.xcconfig */; + baseConfigurationReference = 4F9C556BDAA7116AA9A7D61C98AC802E /* Zip.release.xcconfig */; buildSettings = { - CODE_SIGNING_ALLOWED = NO; - CONFIGURATION_BUILD_DIR = "$(BUILD_DIR)/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)/JXCategoryView"; - IBSC_MODULE = JXCategoryView; - INFOPLIST_FILE = "Target Support Files/JXCategoryView/ResourceBundle-JXCategoryView-JXCategoryView-Info.plist"; + "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; + "CODE_SIGN_IDENTITY[sdk=watchos*]" = ""; + CURRENT_PROJECT_VERSION = 1; + DEFINES_MODULE = YES; + DYLIB_COMPATIBILITY_VERSION = 1; + DYLIB_CURRENT_VERSION = 1; + DYLIB_INSTALL_NAME_BASE = "@rpath"; + ENABLE_MODULE_VERIFIER = NO; + ENABLE_USER_SCRIPT_SANDBOXING = NO; + GCC_PREFIX_HEADER = "Target Support Files/Zip/Zip-prefix.pch"; + GENERATE_INFOPLIST_FILE = NO; + INFOPLIST_FILE = "Target Support Files/Zip/Zip-Info.plist"; + INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; IPHONEOS_DEPLOYMENT_TARGET = 9.0; - PRODUCT_NAME = JXCategoryView; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + "@loader_path/Frameworks", + ); + MODULEMAP_FILE = "Target Support Files/Zip/Zip.modulemap"; + PRODUCT_MODULE_NAME = Zip; + PRODUCT_NAME = Zip; SDKROOT = iphoneos; SKIP_INSTALL = YES; + SWIFT_ACTIVE_COMPILATION_CONDITIONS = "$(inherited) "; + SWIFT_INSTALL_OBJC_HEADER = YES; + SWIFT_VERSION = 5.3; TARGETED_DEVICE_FAMILY = "1,2"; - WRAPPER_EXTENSION = bundle; + VALIDATE_PRODUCT = YES; + VERSIONING_SYSTEM = "apple-generic"; + VERSION_INFO_PREFIX = ""; }; - name = Debug; + name = Release; }; EF8BB15BBC433D5629793439BF61B8BC /* Debug */ = { isa = XCBuildConfiguration; - baseConfigurationReference = B1821A84FEEDC79CEFFCF904DEB92F3E /* AliyunOSSiOS.debug.xcconfig */; + baseConfigurationReference = D65D99444B13FC496E51863A885FCD36 /* AliyunOSSiOS.debug.xcconfig */; buildSettings = { "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; @@ -22254,7 +23884,7 @@ }; F0DF435DD28ADCD806B012E9F042CF07 /* Debug */ = { isa = XCBuildConfiguration; - baseConfigurationReference = CA999F84D449AF8557864931035A1ED2 /* YYModel.debug.xcconfig */; + baseConfigurationReference = 8972D87C24A6C41D7E422C17EA620436 /* YYModel.debug.xcconfig */; buildSettings = { "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; @@ -22290,9 +23920,26 @@ }; name = Debug; }; + F0E5F1668E7517721C0615CB3A90B2A0 /* Release */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 7A1A711047C1AC34798F807FBF6686D5 /* JXPagingView.release.xcconfig */; + buildSettings = { + CODE_SIGNING_ALLOWED = NO; + CONFIGURATION_BUILD_DIR = "$(BUILD_DIR)/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)/JXPagingView"; + IBSC_MODULE = JXPagingView; + INFOPLIST_FILE = "Target Support Files/JXPagingView/ResourceBundle-JXPagerView-JXPagingView-Info.plist"; + IPHONEOS_DEPLOYMENT_TARGET = 8.0; + PRODUCT_NAME = JXPagerView; + SDKROOT = iphoneos; + SKIP_INSTALL = YES; + TARGETED_DEVICE_FAMILY = "1,2"; + WRAPPER_EXTENSION = bundle; + }; + name = Release; + }; F3B8CEB8BC4AE8F3179B0A85BA8F6624 /* Debug */ = { isa = XCBuildConfiguration; - baseConfigurationReference = C879FEB44DB34C3BA3BE82553CB57D91 /* TIMPush.debug.xcconfig */; + baseConfigurationReference = 1B1917C3258642FD33C8DEDAA318364B /* TIMPush.debug.xcconfig */; buildSettings = { ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor; @@ -22308,26 +23955,9 @@ }; name = Debug; }; - F507AF3602EDE0F6DB5BB77FC40800BA /* Release */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = 0EA505AAD149644608E5E9EFC567CC5F /* IQKeyboardManager.release.xcconfig */; - buildSettings = { - CODE_SIGNING_ALLOWED = NO; - CONFIGURATION_BUILD_DIR = "$(BUILD_DIR)/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)/IQKeyboardManager"; - IBSC_MODULE = IQKeyboardManager; - INFOPLIST_FILE = "Target Support Files/IQKeyboardManager/ResourceBundle-IQKeyboardManager-IQKeyboardManager-Info.plist"; - IPHONEOS_DEPLOYMENT_TARGET = 11.0; - PRODUCT_NAME = IQKeyboardManager; - SDKROOT = iphoneos; - SKIP_INSTALL = YES; - TARGETED_DEVICE_FAMILY = "1,2"; - WRAPPER_EXTENSION = bundle; - }; - name = Release; - }; FC47B2B7FAEC115D227EE81539ED8586 /* Release */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 5F5D21C60AB1C2F9480977EEB8AB0D5E /* AlipaySDK-iOS.release.xcconfig */; + baseConfigurationReference = 29FBCC92D682EDD34E9423145A579B6D /* AlipaySDK-iOS.release.xcconfig */; buildSettings = { ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor; @@ -22346,7 +23976,7 @@ }; FDF98D3A1890B6E17513641D6ED71D78 /* Debug */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 7BCF026C0E29BE36E4189826AD023FAB /* YYCategories.debug.xcconfig */; + baseConfigurationReference = BF2A6DB2A4233FAB516EFE04517C9E1D /* YYCategories.debug.xcconfig */; buildSettings = { "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; @@ -22384,7 +24014,7 @@ }; FEB245EC07BE7CD095CEB3FC3BE2918C /* Debug */ = { isa = XCBuildConfiguration; - baseConfigurationReference = E90A28716F427BD6432A990D0FCB4854 /* MQTTClient.debug.xcconfig */; + baseConfigurationReference = 7714E976693EA99BE59000205D302755 /* MQTTClient.debug.xcconfig */; buildSettings = { "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; @@ -22432,20 +24062,47 @@ defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; }; - 0D5B10EE83B38532B2ECD875E76193BC /* Build configuration list for PBXNativeTarget "AliyunOSSiOS-AliyunOSSiOS_Privacy" */ = { + 0ACC4CBD875FE111DB5D540AB979459E /* Build configuration list for PBXNativeTarget "BRPickerView-BRPickerView.Privacy" */ = { isa = XCConfigurationList; buildConfigurations = ( - DB29E07AE1426C69B65CA4E482884875 /* Debug */, - 9CA0D79C1615BE686E90408F8F4FBD9C /* Release */, + 3EB87D26940C35F0C7324D3792EBCAF1 /* Debug */, + 9677C6AC24892F1E22AAFC0A32FFD2D9 /* Release */, ); defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; }; - 15F9E60CFCE67565A4EE1363FB7A926F /* Build configuration list for PBXNativeTarget "Protobuf-Protobuf_Privacy" */ = { + 0FC4B30358FC62A913FCE57F62D89FCC /* Build configuration list for PBXNativeTarget "TIMCommon-TIMCommon_Privacy" */ = { isa = XCConfigurationList; buildConfigurations = ( - 0795B532A493BAB0EF01FC3ACBF35EB8 /* Debug */, - A4ACF51A23A734A13F4E12B16BEC0D98 /* Release */, + 02037E21114487605FF35B356BE57D8E /* Debug */, + 31DDC0651A46A7EA631308EBF7BF08E6 /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + 1435D66241B4C70B47B283D1DF8FE705 /* Build configuration list for PBXNativeTarget "TUICore-TUICore_Privacy" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + C9AC4CE27457B447194297AFF1FFEB28 /* Debug */, + 74575D5E5D65766EA7CF99100DA32242 /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + 16C4D9A5BDFC3489398ECE1489D509DE /* Build configuration list for PBXNativeTarget "QCloudCore" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 40D82CC4C57426F7C71662EEB8CAF656 /* Debug */, + D366302C8292A495077037FC7752DD36 /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + 1A2B7E6ADA8D59E157B819D5BF3E3CFC /* Build configuration list for PBXNativeTarget "JXCategoryView-JXCategoryView" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 58CAF94879C9C69652D20D6EB5D14027 /* Debug */, + B1B3599F31F59F467A4482C3F0C5B721 /* Release */, ); defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; @@ -22459,33 +24116,6 @@ defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; }; - 25F1CD2EB53DDF0ACDBC41067B3355B1 /* Build configuration list for PBXNativeTarget "JXCategoryView-JXCategoryView" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - ED025C5BBE362AD07C7D7081DFC2CE9A /* Debug */, - 7877FBA9F638470359352E381F88B68D /* Release */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; - 28871870DF84FBFA4B8B58FBD87C70D7 /* Build configuration list for PBXNativeTarget "TUICore-TUICore_Privacy" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - 1C1F22E72A5F34ABB9B2CAFC2DEF0C85 /* Debug */, - C87A7F768892A5C47CA039660F4E2FBF /* Release */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; - 28AE02157D5B3FCB4C6F1A731FB57565 /* Build configuration list for PBXNativeTarget "JXPagingView-JXPagerView" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - 5E44DC8BC8619F31A02738D6E9278C58 /* Debug */, - 7D4D4B52A8E16F644DCDA002970B1279 /* Release */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; 29BB59B7B51BC6194771995E3356CF70 /* Build configuration list for PBXNativeTarget "MJRefresh" */ = { isa = XCConfigurationList; buildConfigurations = ( @@ -22495,15 +24125,6 @@ defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; }; - 341268D384D0835F32C5F7CD0E3662F8 /* Build configuration list for PBXNativeTarget "Zip" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - DE1514DC0D3271598EB72881941EB0B7 /* Debug */, - D0D638D3863000DD93F6189FC44B5A41 /* Release */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; 383075535D59A025369A5062BC1518BF /* Build configuration list for PBXAggregateTarget "TIMPush" */ = { isa = XCConfigurationList; buildConfigurations = ( @@ -22522,6 +24143,24 @@ defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; }; + 3B7DF196EA76D8B2EC90374BE3AF860A /* Build configuration list for PBXNativeTarget "Pods-QXLive" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 618438564A27D3B38D9DDC50CD4F0F87 /* Debug */, + 405D13F98F3C459D8EF908E82895EA01 /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + 46D5810AE045F867DFD825B54048DFFE /* Build configuration list for PBXNativeTarget "YYImage" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + CE945A7AEE40E96B1C5B27C8D3E72599 /* Debug */, + D1B014751DD59BA0428C740F5A2F4D11 /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; 4821239608C13582E20E6DA73FD5F1F9 /* Build configuration list for PBXProject "Pods" */ = { isa = XCConfigurationList; buildConfigurations = ( @@ -22540,15 +24179,6 @@ defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; }; - 4C7EA678FC3C362997760723333D5649 /* Build configuration list for PBXNativeTarget "TXIMSDK_Plus_iOS_XCFramework-TXIMSDK_Plus_iOS_XCFramework_Privacy" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - 1FAA7CA679DAD66BFA9E7150F30B165A /* Debug */, - 5029857C3FE5C86C54D4B840BEE48335 /* Release */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; 4E86C95B2CC48E329293EC1606BA231C /* Build configuration list for PBXNativeTarget "SSZipArchive" */ = { isa = XCConfigurationList; buildConfigurations = ( @@ -22558,11 +24188,29 @@ defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; }; - 59ABA45A9B2B6F413B61E053C1DA3A3A /* Build configuration list for PBXNativeTarget "Pods-QXLive" */ = { + 4ECC2EFF5CE027825A2F0F52FCF77F95 /* Build configuration list for PBXNativeTarget "libwebp" */ = { isa = XCConfigurationList; buildConfigurations = ( - 5D2621D05AC3624BB06B093AAA894648 /* Debug */, - 2337ACC38393E07C21C0AC096224C9C2 /* Release */, + B72310E92B5165D8FA770245E1EC1D0C /* Debug */, + 710DDAC728A34158036D21E6BE3AD7B9 /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + 53A43A1CF2266B94FBF551915C989BF9 /* Build configuration list for PBXNativeTarget "AliyunOSSiOS-AliyunOSSiOS_Privacy" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 7020DD66DCCCC837D759400FAA31ED80 /* Debug */, + 8F3CAF6025768468623101C0632DE609 /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + 5F14CBA40E659BB89722701192DB5E24 /* Build configuration list for PBXNativeTarget "JXPagingView-JXPagerView" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + C09886D2BBE105EF5E35246747EE4072 /* Debug */, + F0E5F1668E7517721C0615CB3A90B2A0 /* Release */, ); defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; @@ -22576,15 +24224,6 @@ defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; }; - 68A4EE4616CF634AA692D09AFD048F66 /* Build configuration list for PBXNativeTarget "SDWebImage-SDWebImage" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - 86F6B9D4F8A93B65E4AA7F61E119A12C /* Debug */, - 6DF8FCB016CAC5FAFEB2931E3A8B84A6 /* Release */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; 6AC986F8353D7D8FD502D9D6E938C5AA /* Build configuration list for PBXAggregateTarget "AgoraInfra_iOS" */ = { isa = XCConfigurationList; buildConfigurations = ( @@ -22603,11 +24242,11 @@ defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; }; - 72B4D392929088B061A7C992598E4316 /* Build configuration list for PBXNativeTarget "IQKeyboardManager-IQKeyboardManager" */ = { + 7305028F209B88CD2AF1778B74BCD712 /* Build configuration list for PBXNativeTarget "FMDB-FMDB_Privacy" */ = { isa = XCConfigurationList; buildConfigurations = ( - A256FD744381939DFB25AD1B4DAAAE9D /* Debug */, - F507AF3602EDE0F6DB5BB77FC40800BA /* Release */, + 2C620414DB25D50501760CBC361F53C3 /* Debug */, + 294A09187F51E11BB1BAC9CDFD480342 /* Release */, ); defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; @@ -22621,15 +24260,6 @@ defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; }; - 789642115AD8DCE6541EFACF2F474CD0 /* Build configuration list for PBXAggregateTarget "TXIMSDK_Plus_iOS_XCFramework" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - 88E09F45E3F13EB815FF3C15104EB452 /* Debug */, - 4F20476D5E5DBF2024DE21558AABF2B2 /* Release */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; 7CEB2E47380AD51987AA02ECD4DFBCD9 /* Build configuration list for PBXNativeTarget "AFNetworking" */ = { isa = XCConfigurationList; buildConfigurations = ( @@ -22657,29 +24287,29 @@ defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; }; - 80DA5974F673F38ADCCDAD4CDB950D86 /* Build configuration list for PBXNativeTarget "TUIChat-TUIChat_Privacy" */ = { + 7F110E487E94247D8026BEF4FE23F914 /* Build configuration list for PBXNativeTarget "QCloudCOSXML" */ = { isa = XCConfigurationList; buildConfigurations = ( - 6A7E1C39B6BBD1684864CE140BE955BE /* Debug */, - D65F938C80C7C7B754E095252741E4C8 /* Release */, + B5D4772C54F0324BFE436F88A3EB0D88 /* Debug */, + C065C676FC6C7559167BE21DDAF9410C /* Release */, ); defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; }; - 836ABCC1E0E017407DA1A93191A9F6B0 /* Build configuration list for PBXNativeTarget "MJRefresh-MJRefresh.Privacy" */ = { + 859C77699D4F206C2183A17E0EF58870 /* Build configuration list for PBXNativeTarget "TXIMSDK_Plus_iOS_XCFramework-TXIMSDK_Plus_iOS_XCFramework_Privacy" */ = { isa = XCConfigurationList; buildConfigurations = ( - 2AB902796D845E31DB0B43203C6A8476 /* Debug */, - 2451B18F949FB9FF83E0B4A81C1B1549 /* Release */, + 2EFB8C7F8143E536A73F2168CC5FC150 /* Debug */, + 84C8DF8D453FE6D806C16104D042D102 /* Release */, ); defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; }; - 84D9F8BF501A552E2859DCDE46D624FB /* Build configuration list for PBXNativeTarget "SDWebImage" */ = { + 865DB28E3ABEBE57251B86BE71EE7F0D /* Build configuration list for PBXNativeTarget "Pods-QXLiveDev" */ = { isa = XCConfigurationList; buildConfigurations = ( - 3D0E17C6103BBEC9720939F42A51951D /* Debug */, - B6923FAE9718C8463F5244248338454C /* Release */, + C8F6C5C39B987046CC3E93C607C1032B /* Debug */, + 7E5EA1F7298FC11FF3BC210F782ADBFE /* Release */, ); defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; @@ -22693,20 +24323,20 @@ defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; }; - 8C0BAD831B34A17F6FFB71416956948A /* Build configuration list for PBXNativeTarget "AgoraLyricsScore-AgoraLyricsScoreBundle" */ = { + 8B2BE83201E0B4503EBF87CF1902468D /* Build configuration list for PBXNativeTarget "MJRefresh-MJRefresh.Privacy" */ = { isa = XCConfigurationList; buildConfigurations = ( - 824845F60357F8F89B884D70719D3C0A /* Debug */, - 2FA1F5031B97E52A065147AE0BCE2F4B /* Release */, + 6ED52B1E9E63E3D1B1E47B9AC06D6C43 /* Debug */, + 3333B2B90091F1E981F85852F642FE7A /* Release */, ); defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; }; - 8D31FA4F8E24713E3CAE7286F3D6E8D7 /* Build configuration list for PBXNativeTarget "YYImage" */ = { + 93735D0870A830B586A0A20D52A24AE9 /* Build configuration list for PBXNativeTarget "IQKeyboardManager-IQKeyboardManager" */ = { isa = XCConfigurationList; buildConfigurations = ( - 3472F36EB0C50B655448DDD52333803A /* Debug */, - 22A999E3C3DC88485A6B1C6CDDED0BE9 /* Release */, + 766A1D893BB12FD5A56DDD3CC3995926 /* Debug */, + 104167F4652B5708F20ACF851F366EC2 /* Release */, ); defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; @@ -22765,20 +24395,11 @@ defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; }; - A2F1C56EB5201FBC5178DCC35AAA3BDC /* Build configuration list for PBXNativeTarget "TIMCommon-TIMCommon_Privacy" */ = { + A4FE0284AED92AD478DAE26325262701 /* Build configuration list for PBXAggregateTarget "TXIMSDK_Plus_iOS_XCFramework" */ = { isa = XCConfigurationList; buildConfigurations = ( - 032198A9C208329F1C27325DD32233FB /* Debug */, - 5DCB87DA558C85EB806D171A393782FA /* Release */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; - A4B50B4BCA3F2EB5FF0B9DA9E0CF9421 /* Build configuration list for PBXNativeTarget "TUIConversation-TUIConversation_Privacy" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - 419CA29EFAECAAA2E27D55BB0CD453E1 /* Debug */, - D3FEBC664FB11A429661DECA38B4E587 /* Release */, + 2597D69161B42065B2E3BAF216B70020 /* Debug */, + 7F5BC36B4DC8E342557AC19AABE9A2D0 /* Release */, ); defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; @@ -22801,15 +24422,6 @@ defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; }; - A9EC1C2489075401A57003AF2B83368B /* Build configuration list for PBXNativeTarget "FMDB-FMDB_Privacy" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - 6ED6DF26C85BB82C0E0C2486DBC0A4D6 /* Debug */, - 9DBBA8F641FD255A9FB574A10216D57A /* Release */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; AAA1F8799DB68036C3BE983C05FAA2C7 /* Build configuration list for PBXNativeTarget "Masonry" */ = { isa = XCConfigurationList; buildConfigurations = ( @@ -22819,11 +24431,11 @@ defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; }; - ADAF3FC25EBB223F4CFBAFE44FBC402A /* Build configuration list for PBXNativeTarget "libwebp" */ = { + B41BEEAB3F00B8B09935C136F594A6DA /* Build configuration list for PBXNativeTarget "AgoraLyricsScore-AgoraLyricsScoreBundle" */ = { isa = XCConfigurationList; buildConfigurations = ( - 341C83D013F1F121459AEA3C20FD2D63 /* Debug */, - 6558A5BDC2DB9A7A41F282203F8F4B1B /* Release */, + AC18D2E8028F22D4235BB2EBA2BF44A4 /* Debug */, + 2C638F91A3689A1E4542E7F0FA79BB18 /* Release */, ); defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; @@ -22837,15 +24449,6 @@ defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; }; - B647BBB23FFA73A5FE6DB5DBED1422EA /* Build configuration list for PBXNativeTarget "Pods-QXLiveDev" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - 33D93A6DE5EF42B6F1229FDFCEE0A067 /* Debug */, - 0D57A3B9AF147E7EAAF07548BC300423 /* Release */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; B9F86344B5957E4C1017F4920EB95061 /* Build configuration list for PBXNativeTarget "QGVAPlayer" */ = { isa = XCConfigurationList; buildConfigurations = ( @@ -22855,15 +24458,6 @@ defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; }; - BAA0546903146D220EABBE3330BC9598 /* Build configuration list for PBXNativeTarget "TIMPush-TIMPush_Privacy" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - 1C77503C05F674AD8A47CA0FBDF91656 /* Debug */, - E21856EA54EE6F4C2CB5622965FD1960 /* Release */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; BBE82E620FFBF722661B5E3106274FCD /* Build configuration list for PBXNativeTarget "TUIConversation" */ = { isa = XCConfigurationList; buildConfigurations = ( @@ -22873,6 +24467,42 @@ defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; }; + BECA9F4651D85D5F078363669F205EBD /* Build configuration list for PBXNativeTarget "TIMPush-TIMPush_Privacy" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 6A47EFE7A53A45FC640E2B558E71AD1A /* Debug */, + B6BC07B528C69B7C23148E08C0710847 /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + C1598DD7C6A66E15E80AC67DBC829A49 /* Build configuration list for PBXNativeTarget "TUIChat-TUIChat_Privacy" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + CA0B9CA9AAAB1FFE9BA350CD8DE3DD0B /* Debug */, + 2EC1B80752E7AA23E38E5137488BCAF2 /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + C2B304F373BDF2D993C52384F471DE2E /* Build configuration list for PBXNativeTarget "TUIConversation-TUIConversation_Privacy" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 2BA35A296644B72F1BE336372D9D2396 /* Debug */, + 5DD6BCF0C401D803A36970BF689C2A58 /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + C7E4C70A91DE2E6E5D04BD1AD35978EB /* Build configuration list for PBXNativeTarget "Protobuf-Protobuf_Privacy" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 23E2D6B789479D155207EA63E44945EC /* Debug */, + BA073712E852AD8DB7BF0A0051543FF7 /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; CE823E10C9526ECE56EE608321BED34E /* Build configuration list for PBXNativeTarget "Protobuf" */ = { isa = XCConfigurationList; buildConfigurations = ( @@ -22900,6 +24530,15 @@ defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; }; + D34A9C203E9D0E936BDC93BFF22A4CC8 /* Build configuration list for PBXNativeTarget "SDWebImage-SDWebImage" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 6EB738E968E0C2EC395011A8FA5DB0C8 /* Debug */, + D70C6145A0BFD74F7DD18953FF39EBA6 /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; D508D1CAA0017AF1AAE213E8D2D8E700 /* Build configuration list for PBXNativeTarget "YBImageBrowser" */ = { isa = XCConfigurationList; buildConfigurations = ( @@ -22909,6 +24548,15 @@ defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; }; + D7A94BF3EF8D203CD6E91D9EADB8254A /* Build configuration list for PBXNativeTarget "Zip" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + D68AB84870B8EB2A69D10E815ACE5370 /* Debug */, + EB6157844373AB800AC42004C48F6A9F /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; DB4C55F70CF73736D3687A2E620AC793 /* Build configuration list for PBXNativeTarget "JXCategoryView" */ = { isa = XCConfigurationList; buildConfigurations = ( @@ -22927,15 +24575,6 @@ defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; }; - E0873CEA4D5584426700DF2DE260CE20 /* Build configuration list for PBXNativeTarget "BRPickerView-BRPickerView.Privacy" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - 524898AAAEB0AC26A4673D4F21CD96BD /* Debug */, - 015062357906C4315DA04129844CAC9F /* Release */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; E907D3A67B1FFCEC2EC6307E9994C996 /* Build configuration list for PBXNativeTarget "AliyunOSSiOS" */ = { isa = XCConfigurationList; buildConfigurations = ( @@ -22945,15 +24584,6 @@ defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; }; - E9D947F17E88A6D5B34309D8E584ACDA /* Build configuration list for PBXNativeTarget "TUICore" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - C06B4C9A3222C4FE6AFC907FD3EE5451 /* Debug */, - D66337374751C44802032CA7E50BDD7D /* Release */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; F0341CDF40267B6C9EA8B9011314A72F /* Build configuration list for PBXNativeTarget "FMDB" */ = { isa = XCConfigurationList; buildConfigurations = ( @@ -22963,6 +24593,15 @@ defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; }; + F12EBC2DDCF87286028B3B288F993E7C /* Build configuration list for PBXNativeTarget "SDWebImage" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 68BF93CBCB8EE8C46333B6C6B18BF253 /* Debug */, + A8BC0B09AC8F109F0F84367C44070F7E /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; F1F0A47108C3E4C1160665FF5E949A7E /* Build configuration list for PBXNativeTarget "YYCache" */ = { isa = XCConfigurationList; buildConfigurations = ( @@ -22990,6 +24629,15 @@ defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; }; + F4C1E56BBDE6C5934926CE4D56FFF4B8 /* Build configuration list for PBXNativeTarget "TUICore" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + D6CCB7A2CF8342C02A10D3036DFEDF09 /* Debug */, + 6ECAF81B9775A5CAF3C6CC8935A3A88C /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; F8FAC4DDB805794DD57CC8F6F19F01E1 /* Build configuration list for PBXNativeTarget "YYCategories" */ = { isa = XCConfigurationList; buildConfigurations = ( diff --git a/Pods/QCloudCOSXML/QCloudCOSXML/Classes/Base/NSString+RegularExpressionCategory.h b/Pods/QCloudCOSXML/QCloudCOSXML/Classes/Base/NSString+RegularExpressionCategory.h new file mode 100644 index 0000000..1a7d54f --- /dev/null +++ b/Pods/QCloudCOSXML/QCloudCOSXML/Classes/Base/NSString+RegularExpressionCategory.h @@ -0,0 +1,12 @@ +// +// NSString+RegularExpressionCategory.h +// QCloudCOSXML +// +// Created by erichmzhang(张恒铭) on 29/06/2018. +// + +#import + +@interface NSString (RegularExpressionCategory) +- (BOOL)matchesRegularExpression:(NSString *)regularExpression; +@end diff --git a/Pods/QCloudCOSXML/QCloudCOSXML/Classes/Base/NSString+RegularExpressionCategory.m b/Pods/QCloudCOSXML/QCloudCOSXML/Classes/Base/NSString+RegularExpressionCategory.m new file mode 100644 index 0000000..008fcbc --- /dev/null +++ b/Pods/QCloudCOSXML/QCloudCOSXML/Classes/Base/NSString+RegularExpressionCategory.m @@ -0,0 +1,15 @@ +// +// NSString+RegularExpressionCategory.m +// QCloudCOSXML +// +// Created by erichmzhang(张恒铭) on 29/06/2018. +// + +#import "NSString+RegularExpressionCategory.h" + +@implementation NSString (RegularExpressionCategory) +- (BOOL)matchesRegularExpression:(NSString *)regularExpression { + NSPredicate *predicate = [NSPredicate predicateWithFormat:@"SELF MATCHES %@", regularExpression]; + return [predicate evaluateWithObject:self]; +} +@end diff --git a/Pods/QCloudCOSXML/QCloudCOSXML/Classes/Base/QCloudAbstractRequest+Quality.h b/Pods/QCloudCOSXML/QCloudCOSXML/Classes/Base/QCloudAbstractRequest+Quality.h new file mode 100644 index 0000000..a62d262 --- /dev/null +++ b/Pods/QCloudCOSXML/QCloudCOSXML/Classes/Base/QCloudAbstractRequest+Quality.h @@ -0,0 +1,16 @@ +// +// QCloudAbstractRequest+Quality.h +// QCloudCOSXML +// +// Created by erichmzhang(张恒铭) on 2018/8/24. +// + +#import + +NS_ASSUME_NONNULL_BEGIN + +@interface QCloudAbstractRequest (Quality) + +@end + +NS_ASSUME_NONNULL_END diff --git a/Pods/QCloudCOSXML/QCloudCOSXML/Classes/Base/QCloudAbstractRequest+Quality.m b/Pods/QCloudCOSXML/QCloudCOSXML/Classes/Base/QCloudAbstractRequest+Quality.m new file mode 100644 index 0000000..de786ae --- /dev/null +++ b/Pods/QCloudCOSXML/QCloudCOSXML/Classes/Base/QCloudAbstractRequest+Quality.m @@ -0,0 +1,46 @@ +// +// QCloudAbstractRequest+Quality.m +// QCloudCOSXML +// +// Created by erichmzhang(张恒铭) on 2018/8/24. +// + +#import "QCloudAbstractRequest+Quality.h" +#import +#import +#import "QCloudCOSXMLVersion.h" +#import "QCloudCOSXMLService+Quality.h" + +@interface QCloudAbstractRequest () +@end + +@implementation QCloudAbstractRequest (Quality) ++ (void)load { + static dispatch_once_t onceToken; + dispatch_once(&onceToken, ^{ + [self exchangeImplementation]; + }); +} + ++ (void)exchangeImplementation { + Class class = [self class]; + Method originNotifyErrorMethod = class_getInstanceMethod(class, @selector(__notifyError:)); + Method swizzedNotifyErrorMethod = class_getInstanceMethod(class, @selector(__quality__notifyError:)); + Method originNotifySuccessMethod = class_getInstanceMethod(class, @selector(__notifySuccess:)); + Method swizzedNotifySuccessMethod = class_getInstanceMethod(class, @selector(__quality__notifySuccess:)); + + method_exchangeImplementations(originNotifyErrorMethod, swizzedNotifyErrorMethod); + method_exchangeImplementations(originNotifySuccessMethod, swizzedNotifySuccessMethod); +} + +- (void)__quality__notifyError:(NSError *)error { + [self __quality__notifyError:error]; + [QualityDataUploader trackSDKRequestFailWithRequest:self error:error params:[QCloudCOSXMLService commonParams:kQCloudDataAppReleaseKey]]; +} + +- (void)__quality__notifySuccess:(id)object { + [self __quality__notifySuccess:object]; + [QualityDataUploader trackSDKRequestSuccessWithRequest:self params:[QCloudCOSXMLService commonParams:kQCloudDataAppReleaseKey]]; +} + +@end diff --git a/Pods/QCloudCOSXML/QCloudCOSXML/Classes/Base/QCloudBizHTTPRequest+COSXML.h b/Pods/QCloudCOSXML/QCloudCOSXML/Classes/Base/QCloudBizHTTPRequest+COSXML.h new file mode 100644 index 0000000..a05a32a --- /dev/null +++ b/Pods/QCloudCOSXML/QCloudCOSXML/Classes/Base/QCloudBizHTTPRequest+COSXML.h @@ -0,0 +1,16 @@ +// +// QCloudBizHTTPRequest+COSXML.h +// QCloudCOSXML +// +// Created by garenwang on 2025/3/28. +// + +#import + +NS_ASSUME_NONNULL_BEGIN + +@interface QCloudBizHTTPRequest (COSXML) + +@end + +NS_ASSUME_NONNULL_END diff --git a/Pods/QCloudCOSXML/QCloudCOSXML/Classes/Base/QCloudBizHTTPRequest+COSXML.m b/Pods/QCloudCOSXML/QCloudCOSXML/Classes/Base/QCloudBizHTTPRequest+COSXML.m new file mode 100644 index 0000000..1eec6d3 --- /dev/null +++ b/Pods/QCloudCOSXML/QCloudCOSXML/Classes/Base/QCloudBizHTTPRequest+COSXML.m @@ -0,0 +1,132 @@ +// +// QCloudBizHTTPRequest+COSXML.m +// QCloudCOSXML +// +// Created by garenwang on 2025/3/28. +// + +#import "QCloudBizHTTPRequest+COSXML.h" +#import +#import "QCloudCOSXMLEndPoint.h" +@implementation QCloudBizHTTPRequest (COSXML) + ++ (void)load{ + static dispatch_once_t onceToken; + dispatch_once(&onceToken, ^{ + Class class = [self class]; + + SEL originalSelector = @selector(buildRequestData:); + SEL swizzledSelector = @selector(cos_buildRequestData:); + + Method originalMethod = class_getInstanceMethod(class, originalSelector); + Method swizzledMethod = class_getInstanceMethod(class, swizzledSelector); + + BOOL didAddMethod + = class_addMethod(class, originalSelector, method_getImplementation(swizzledMethod), method_getTypeEncoding(swizzledMethod)); + if (didAddMethod) { + class_replaceMethod(class, swizzledSelector, method_getImplementation(originalMethod), method_getTypeEncoding(originalMethod)); + } else { + method_exchangeImplementations(originalMethod, swizzledMethod); + } + }); +} + +- (BOOL)cos_buildRequestData:(NSError *__autoreleasing *)error{ + BOOL ret = [self cos_buildRequestData:error]; + + if (!ret) { + return ret; + } + if (self.runOnService.configuration.networkStrategy != QCloudRequestNetworkStrategyDefault){ + NSString * bucket = nil; + if ([self respondsToSelector:@selector(bucket)]) { + bucket = [self performSelector:@selector(bucket)]; + }else if ([self respondsToSelector:@selector(bucketName)]) { + bucket = [self performSelector:@selector(bucketName)]; + }else if ([self respondsToSelector:@selector(BucketName)]) { + bucket = [self performSelector:@selector(BucketName)]; + } + + NSString * appId = self.runOnService.configuration.appID; + + NSString * regionName = self.regionName; + if (!regionName) { + regionName = self.runOnService.configuration.endpoint.regionName; + } + BOOL useHTTPS = self.runOnService.configuration.endpoint.useHTTPS; + if (self.endpoint) { + useHTTPS = self.endpoint.useHTTPS; + } + + if (self.requestRetry) { + if (self.runOnService.configuration.networkStrategy == QCloudRequestNetworkStrategyConservative){ + if (self.networkType != QCloudRequestNetworkNone) { + self.enableQuic = self.networkType == QCloudRequestNetworkQuic; + }else { + self.enableQuic = self.runOnService.configuration.enableQuic; + } + if (self.endpoint) { + self.requestData.endpoint = self.endpoint; + }else{ + self.requestData.endpoint = self.runOnService.configuration.endpoint; + } + + }else if (self.runOnService.configuration.networkStrategy == QCloudRequestNetworkStrategyAggressive){ + self.enableQuic = NO; + QCloudCOSXMLEndPoint * endpoint = [[QCloudCOSXMLEndPoint alloc]init]; + endpoint.useHTTPS = useHTTPS; + endpoint.regionName = regionName; + self.requestData.endpoint = endpoint; + } + }else{ + if (self.runOnService.configuration.networkStrategy == QCloudRequestNetworkStrategyConservative){ + self.enableQuic = NO; + QCloudCOSXMLEndPoint * endpoint = [[QCloudCOSXMLEndPoint alloc]init]; + endpoint.useHTTPS = useHTTPS; + endpoint.regionName = regionName; + self.requestData.endpoint = endpoint; + }else if (self.runOnService.configuration.networkStrategy == QCloudRequestNetworkStrategyAggressive){ + + if (self.networkType != QCloudRequestNetworkNone) { + self.enableQuic = self.networkType == QCloudRequestNetworkQuic; + }else { + self.enableQuic = self.runOnService.configuration.enableQuic; + } + + if (self.endpoint) { + self.requestData.endpoint = self.endpoint; + }else{ + self.requestData.endpoint = self.runOnService.configuration.endpoint; + } + } + } + + self.requestData.bucket = bucket; + self.requestData.appId = appId; + self.requestData.region = regionName; + } + QCloudLogDebugP(@"HTTP",@"buildRequestData——当前策略:%@,是否已重试:%@", QCloudNetworkSituationToString(self.runOnService.configuration.networkStrategy),self.requestRetry?@"是":@"否"); + return YES; +} + +- (void)notifyError:(NSError *)error { + QCloudRequestFinishBlock finishBlock = self.finishBlock; + BOOL is4XX = error.code >= 400 && error.code <500; + QCloudLogDebugP(@"HTTP",@"notifyError——当前策略:%@,是否已重试:%@", QCloudNetworkSituationToString(self.runOnService.configuration.networkStrategy),self.requestRetry?@"是":@"否"); + + if (is4XX || self.runOnService.configuration.networkStrategy == QCloudRequestNetworkStrategyDefault || + self.requestRetry ) { + [super notifyError:error]; + }else{ + [self.retryPolicy reset]; + [self.requestData clean]; + [self setValue:@(NO) forKey:@"isRetry"]; + self.retryCount = 0; + self.requestRetry = YES; + self.finishBlock = finishBlock; + [self.runOnService requestFinishWithRequestId:self.requestID]; + self.priority = QCloudAbstractRequestPriorityHigh; + [self.runOnService performRequest:self]; + } +} +@end diff --git a/Pods/QCloudCOSXML/QCloudCOSXML/Classes/Base/QCloudCOSXMLEndPoint.h b/Pods/QCloudCOSXML/QCloudCOSXML/Classes/Base/QCloudCOSXMLEndPoint.h new file mode 100644 index 0000000..d8daca1 --- /dev/null +++ b/Pods/QCloudCOSXML/QCloudCOSXML/Classes/Base/QCloudCOSXMLEndPoint.h @@ -0,0 +1,43 @@ +// +// QCloudCOSXMLEndPoint.h +// Pods +// +// Created by Dong Zhao on 2017/8/22. +// +// + +#import +#pragma clang diagnostic push +#pragma clang diagnostic ignored "-Wobjc-property-synthesis" + +/** + QCloudServiceConfiguration 类的 endpoint 参数 + */ + +@interface QCloudCOSXMLEndPoint : QCloudEndPoint +/** + * 服务地域名称,可用的服务地域名称请查看官网https://www.qcloud.com/document/product/436/6224 + * 中提供的地域,这里填入官网里提供的地域简称,例如ap-beijing等。 + */ +@property (nonatomic, copy) QCloudRegion regionName; +@property (nonatomic, assign) BOOL isPrefixURL; +/** + 服务的基础名称, 默认值为: myqcloud.com + */ +@property (nonatomic, copy) QCloudServiceName serviceName; + +/** + 自定义域名:http://bucketname.suffix + 未指定该参数,该存储桶host为 http://bucketname.**** + 指定该参数为testsuffix,该存储桶host为 http://bucketname.testsuffix.**** +*/ +@property (nonatomic, copy) NSString *suffix; +///** +// 是否切换到旧域名 +// */ +//@property (nonatomic, assign) BOOL enableOldDomain; +- (NSURL *)serverURLWithProductName:(NSString *)productName AppID:(NSString *)appID regionName:(NSString *)regionName; + +@end + +#pragma clang diagnostic pop diff --git a/Pods/QCloudCOSXML/QCloudCOSXML/Classes/Base/QCloudCOSXMLEndPoint.m b/Pods/QCloudCOSXML/QCloudCOSXML/Classes/Base/QCloudCOSXMLEndPoint.m new file mode 100644 index 0000000..c986f51 --- /dev/null +++ b/Pods/QCloudCOSXML/QCloudCOSXML/Classes/Base/QCloudCOSXMLEndPoint.m @@ -0,0 +1,137 @@ +// +// QCloudCOSXMLEndPoint.m +// Pods +// +// Created by Dong Zhao on 2017/8/22. +// +// + +#import "QCloudCOSXMLEndPoint.h" +#import "NSString+RegularExpressionCategory.h" +@implementation QCloudCOSXMLEndPoint + +- (instancetype)init { + self = [super init]; + if (!self) { + return self; + } + _isPrefixURL = YES; + _serviceName = @"myqcloud.com"; + return self; +} + +//-(void)setEnableOldDomain:(BOOL)enableOldDomain{ +// _enableOldDomain = enableOldDomain; +// if(_enableOldDomain){ +// _serviceName = @"myqcloud.com"; +// +// }else{ +// _serviceName = @"tencentcos.cn"; +// } +//} +- (NSString *)formattedBucket:(NSString *)bucket withAPPID:(NSString *)APPID { + NSInteger subfixLength = APPID.length + 1; + if (bucket.length <= subfixLength) { + return bucket; + } + NSString *APPIDSubfix = [NSString stringWithFormat:@"-%@", APPID]; + if (APPIDSubfix) { + NSString *subfixString = [bucket substringWithRange:NSMakeRange(bucket.length - subfixLength, subfixLength)]; + if ([subfixString isEqualToString:APPIDSubfix]) { + return [bucket substringWithRange:NSMakeRange(0, bucket.length - subfixLength)]; + } + } else { + if (!APPID) { + @throw [NSException exceptionWithName:kQCloudNetworkDomain + reason:[NSString stringWithFormat:@"您没有配置AppID就使用了服务%@", self.class] + userInfo:nil]; + } + } + + // should not reach here + return bucket; +} + +- (NSURL *)serverURLWithBucket:(NSString *)bucket appID:(NSString *)appID regionName:(NSString *)regionName { + if (self.serverURLLiteral) { + return self.serverURLLiteral; + } + + NSString *scheme = @"https"; + if (!self.useHTTPS) { + scheme = @"http"; + } + static NSString *regularExpression = @"[a-zA-Z0-9.-]*"; + BOOL isLegal = [bucket matchesRegularExpression:regularExpression]; + NSAssert(isLegal, @"bucket name contains illegal character! It can only contains a-z, A-Z, 0-9, '.' and '-' "); + if (!isLegal) { + QCloudLogDebugE(@"Service",@"bucket %@ contains illeagal character, building service url pregress returns immediately", bucket); + return nil; + } + NSString *formattedBucketName = [self formattedBucket:bucket withAPPID:appID]; + if (appID) { + formattedBucketName = [NSString stringWithFormat:@"%@-%@", formattedBucketName, appID]; + } + NSString *regionNametmp = nil; + if (regionName) { + regionNametmp = regionName; + } else { + regionNametmp = self.regionName; + } + + if ([self.serviceName isEqualToString:@"myqcloud.com"]) { + NSParameterAssert(regionNametmp); + static NSString *regularExpression = @"[a-zA-Z0-9.-]*"; + BOOL isLegal = [regionNametmp matchesRegularExpression:regularExpression]; + NSAssert(isLegal, @"Region name contains illegal character! It can only contains a-z, A-Z, 0-9, '.' and '-' "); + if (!isLegal) { + QCloudLogDebugE(@"Service",@"Region %@ contains illeagal character, setter returns immediately", regionName); + return nil; + } + } + + NSURL *serverURL; + + serverURL = [NSURL URLWithString:[NSString stringWithFormat:@"%@://%@.cos.%@.%@", scheme, formattedBucketName, regionNametmp, self.serviceName]]; + if (!self.isPrefixURL) { + serverURL = + [NSURL URLWithString:[NSString stringWithFormat:@"%@://%@.cos.%@/%@", scheme, regionNametmp, self.serviceName, formattedBucketName]]; + } + if (self.suffix) { + serverURL = [NSURL URLWithString:[NSString stringWithFormat:@"%@://%@.%@", scheme, formattedBucketName, self.suffix]]; + if (!self.isPrefixURL) { + serverURL = [NSURL URLWithString:[NSString stringWithFormat:@"%@://%@/%@", scheme, self.suffix, formattedBucketName]]; + } + } + QCloudLogDebugP(@"Service",@"serverURL: %@", serverURL); + return serverURL; +} + +- (void)setIsPrefixURL:(BOOL)isPrefixURL { + _isPrefixURL = isPrefixURL; +} +- (void)setRegionName:(QCloudRegion)regionName { + // Region 仅允许由 a-z, A-Z, 0-9, 英文句号. 和 - 构成。 + if ([self.serviceName isEqualToString:@"myqcloud.com"]) { + NSParameterAssert(regionName); + static NSString *regularExpression = @"[a-zA-Z0-9.-]*"; + BOOL isLegal = [regionName matchesRegularExpression:regularExpression]; + NSAssert(isLegal, @"Region name contains illegal character! It can only contains a-z, A-Z, 0-9, '.' and '-' "); + if (!isLegal) { + QCloudLogDebugE(@"Service",@"Region %@ contains illeagal character, setter returns immediately", regionName); + return; + } + } + + _regionName = regionName; +} +- (id)copyWithZone:(NSZone *)zone { + QCloudCOSXMLEndPoint *endpoint = [super copyWithZone:nil]; + endpoint.regionName = self.regionName; + endpoint.serviceName = self.serviceName; + endpoint.isPrefixURL = self.isPrefixURL; + endpoint.suffix = self.suffix; +// endpoint.enableOldDomain = self.enableOldDomain; + return endpoint; +} +@end diff --git a/Pods/QCloudCOSXML/QCloudCOSXML/Classes/Base/QCloudCOSXMLService+Configuration.h b/Pods/QCloudCOSXML/QCloudCOSXML/Classes/Base/QCloudCOSXMLService+Configuration.h new file mode 100644 index 0000000..1334770 --- /dev/null +++ b/Pods/QCloudCOSXML/QCloudCOSXML/Classes/Base/QCloudCOSXMLService+Configuration.h @@ -0,0 +1,37 @@ +// +// QCloudCOSXMLService.h +// QCloudCOSXMLService +// +// Created by tencent +// +// +// ██████╗ ██████╗██╗ ██████╗ ██╗ ██╗██████╗ ████████╗███████╗██████╗ ███╗ ███╗██╗███╗ ██╗ █████╗ ██╗ ██╗ █████╗ +// ██████╗ +// ██╔═══██╗██╔════╝██║ ██╔═══██╗██║ ██║██╔══██╗ ╚══██╔══╝██╔════╝██╔══██╗████╗ ████║██║████╗ ██║██╔══██╗██║ ██║ ██╔══██╗██╔══██╗ +// ██║ ██║██║ ██║ ██║ ██║██║ ██║██║ ██║ ██║ █████╗ ██████╔╝██╔████╔██║██║██╔██╗ ██║███████║██║ ██║ ███████║██████╔╝ +// ██║▄▄ ██║██║ ██║ ██║ ██║██║ ██║██║ ██║ ██║ ██╔══╝ ██╔══██╗██║╚██╔╝██║██║██║╚██╗██║██╔══██║██║ ██║ ██╔══██║██╔══██╗ +// ╚██████╔╝╚██████╗███████╗╚██████╔╝╚██████╔╝██████╔╝ ██║ ███████╗██║ ██║██║ ╚═╝ ██║██║██║ ╚████║██║ ██║███████╗ ███████╗██║ +// ██║██████╔╝ +// ╚══▀▀═╝ ╚═════╝╚══════╝ ╚═════╝ ╚═════╝ ╚═════╝ ╚═╝ ╚══════╝╚═╝ ╚═╝╚═╝ ╚═╝╚═╝╚═╝ ╚═══╝╚═╝ ╚═╝╚══════╝ ╚══════╝╚═╝ ╚═╝╚═════╝ +// +// +// _ __ _ _ +// (_) / _| | | | | +// ___ ___ _ ____ ___ ___ ___ | |_ ___ _ __ __| | _____ _____| | ___ _ __ ___ _ +// __ ___ +// / __|/ _ \ '__\ \ / / |/ __/ _ \ | _/ _ \| '__| / _` |/ _ \ \ / / _ \ |/ _ \| '_ \ / _ \ +// '__/ __| +// \__ \ __/ | \ V /| | (_| __/ | || (_) | | | (_| | __/\ V / __/ | (_) | |_) | __/ +// | \__ +// |___/\___|_| \_/ |_|\___\___| |_| \___/|_| \__,_|\___| \_/ \___|_|\___/| .__/ +// \___|_| |___/ +// ______ ______ ______ ______ ______ ______ ______ ______ | | +// |______|______|______|______|______|______|______|______| |_| +// + +#import +#import +#import "QCloudCOSXMLService.h" +@interface QCloudCOSXMLService (Configuration) + +@end diff --git a/Pods/QCloudCOSXML/QCloudCOSXML/Classes/Base/QCloudCOSXMLService+Configuration.m b/Pods/QCloudCOSXML/QCloudCOSXML/Classes/Base/QCloudCOSXMLService+Configuration.m new file mode 100644 index 0000000..3ecc727 --- /dev/null +++ b/Pods/QCloudCOSXML/QCloudCOSXML/Classes/Base/QCloudCOSXMLService+Configuration.m @@ -0,0 +1,53 @@ +// +// COSXML.m +// COSXML +// +// Created by tencent +// Copyright (c) 2015年 tencent. All rights reserved. +// +// ██████╗ ██████╗██╗ ██████╗ ██╗ ██╗██████╗ ████████╗███████╗██████╗ ███╗ ███╗██╗███╗ ██╗ █████╗ ██╗ ██╗ █████╗ +// ██████╗ +// ██╔═══██╗██╔════╝██║ ██╔═══██╗██║ ██║██╔══██╗ ╚══██╔══╝██╔════╝██╔══██╗████╗ ████║██║████╗ ██║██╔══██╗██║ ██║ ██╔══██╗██╔══██╗ +// ██║ ██║██║ ██║ ██║ ██║██║ ██║██║ ██║ ██║ █████╗ ██████╔╝██╔████╔██║██║██╔██╗ ██║███████║██║ ██║ ███████║██████╔╝ +// ██║▄▄ ██║██║ ██║ ██║ ██║██║ ██║██║ ██║ ██║ ██╔══╝ ██╔══██╗██║╚██╔╝██║██║██║╚██╗██║██╔══██║██║ ██║ ██╔══██║██╔══██╗ +// ╚██████╔╝╚██████╗███████╗╚██████╔╝╚██████╔╝██████╔╝ ██║ ███████╗██║ ██║██║ ╚═╝ ██║██║██║ ╚████║██║ ██║███████╗ ███████╗██║ +// ██║██████╔╝ +// ╚══▀▀═╝ ╚═════╝╚══════╝ ╚═════╝ ╚═════╝ ╚═════╝ ╚═╝ ╚══════╝╚═╝ ╚═╝╚═╝ ╚═╝╚═╝╚═╝ ╚═══╝╚═╝ ╚═╝╚══════╝ ╚══════╝╚═╝ ╚═╝╚═════╝ +// +// +// _ __ _ _ +// (_) / _| | | | | +// ___ ___ _ ____ ___ ___ ___ | |_ ___ _ __ __| | _____ _____| | ___ _ __ ___ _ +// __ ___ +// / __|/ _ \ '__\ \ / / |/ __/ _ \ | _/ _ \| '__| / _` |/ _ \ \ / / _ \ |/ _ \| '_ \ / _ \ +// '__/ __| +// \__ \ __/ | \ V /| | (_| __/ | || (_) | | | (_| | __/\ V / __/ | (_) | |_) | __/ +// | \__ +// |___/\___|_| \_/ |_|\___\___| |_| \___/|_| \__,_|\___| \_/ \___|_|\___/| .__/ +// \___|_| |___/ +// ______ ______ ______ ______ ______ ______ ______ ______ | | +// |______|______|______|______|______|______|______|______| |_| +// + +#import "QCloudCOSXMLService+Configuration.h" +#import +#import +#import "QCloudCOSXMLService+Private.h" + +@implementation QCloudCOSXMLService (Configuration) +- (instancetype)initWithConfiguration:(QCloudServiceConfiguration *)configuration { + configuration = [configuration copy]; + self = [super initWithConfiguration:configuration]; + if (!self) { + return self; + } + return self; +} + +- (void)loadAuthorizationForBiz:(QCloudBizHTTPRequest *)bizRequest + urlRequest:(NSMutableURLRequest *)urlrequest + compelete:(QCloudHTTPAuthentationContinueBlock)cotinueBlock { + [self loadCOSXMLAuthorizationForBiz:bizRequest urlRequest:urlrequest compelete:cotinueBlock]; +} + +@end diff --git a/Pods/QCloudCOSXML/QCloudCOSXML/Classes/Base/QCloudCOSXMLService+Private.h b/Pods/QCloudCOSXML/QCloudCOSXML/Classes/Base/QCloudCOSXMLService+Private.h new file mode 100644 index 0000000..0201fdb --- /dev/null +++ b/Pods/QCloudCOSXML/QCloudCOSXML/Classes/Base/QCloudCOSXMLService+Private.h @@ -0,0 +1,12 @@ + +// +// QCloudCOSXMLService+Private.h +// Pods +// +// Created by Dong Zhao on 2017/4/11. +// +// + +@interface QCloudCOSXMLService () + +@end diff --git a/Pods/QCloudCOSXML/QCloudCOSXML/Classes/Base/QCloudCOSXMLService+Quality.h b/Pods/QCloudCOSXML/QCloudCOSXML/Classes/Base/QCloudCOSXMLService+Quality.h new file mode 100644 index 0000000..d35f73f --- /dev/null +++ b/Pods/QCloudCOSXML/QCloudCOSXML/Classes/Base/QCloudCOSXMLService+Quality.h @@ -0,0 +1,15 @@ +// +// QCloudCOSXML+Quality.h +// QCloudCOSXML +// +// Created by erichmzhang(张恒铭) on 2018/8/23. +// + +#import +#import "QCloudCOSXMLService.h" + +extern NSString *const kQCloudDataAppReleaseKey; + +@interface QCloudCOSXMLService (Quality) ++(NSMutableDictionary *)commonParams:(NSString *)appKey; +@end diff --git a/Pods/QCloudCOSXML/QCloudCOSXML/Classes/Base/QCloudCOSXMLService+Quality.m b/Pods/QCloudCOSXML/QCloudCOSXML/Classes/Base/QCloudCOSXMLService+Quality.m new file mode 100644 index 0000000..7ec5fed --- /dev/null +++ b/Pods/QCloudCOSXML/QCloudCOSXML/Classes/Base/QCloudCOSXMLService+Quality.m @@ -0,0 +1,66 @@ +// +// QCloudCOSXML+Quality.m +// QCloudCOSXML +// +// Created by erichmzhang(张恒铭) on 2018/8/23. +// +#define kQAUploadStrategy @(2) +#import "QCloudCOSXMLService+Quality.h" +#import + +#import +#import +#import "QCloudCOSXMLVersion.h" +#import +#import +#import + +NSString *const kQCloudDataAppReleaseKey = @"0IOS05O9HW7A9XPI"; + +@implementation QCloudCOSXMLService (Quality) + ++ (void)load { + static dispatch_once_t onceToken; + dispatch_once(&onceToken, ^{ + [self changeImplementation]; + }); +} + ++ (void)changeImplementation { + Class class = object_getClass((id)self); + Method originMethod = class_getClassMethod(class, @selector(registerDefaultCOSXMLWithConfiguration:)); + Method replacedMethod = class_getClassMethod(class, @selector(Quality_registerDefaultCOSXMLWithConfiguration:)); + method_exchangeImplementations(originMethod, replacedMethod); +} + ++ (QCloudCOSXMLService *)Quality_registerDefaultCOSXMLWithConfiguration:(QCloudServiceConfiguration *)configuration { + id result = [self Quality_registerDefaultCOSXMLWithConfiguration:configuration]; + if(!configuration.disableSetupBeacon){ + [self initMTA:configuration]; + } + return result; +} + ++ (void)initMTA:(QCloudServiceConfiguration *)configuration { + +#if defined(DEBUG) && DEBUG +#else + NSMutableDictionary * commonParams = [self commonParams:nil]; + commonParams[@"sdk_bridge"] = configuration.bridge?:@""; + [QualityDataUploader initCommonParams:commonParams]; + [QualityDataUploader trackBaseInfoToTrachCommonParams:commonParams]; + [QualityDataUploader startWithAppkey:kQCloudDataAppReleaseKey]; +#endif +} + ++(NSMutableDictionary *)commonParams:(NSString *)appKey{ + NSMutableDictionary * params = [NSMutableDictionary new]; + if (appKey) { + params[kQCloudRequestAppkeyKey] = appKey; + } + params[@"pName"] = @"cos"; + params[@"sdkVersion"] = QCloudCOSXMLModuleVersion; + params[@"sdkVersionName"] = @(QCloudCOSXMLModuleVersionNumber); + return params; +} +@end diff --git a/Pods/QCloudCOSXML/QCloudCOSXML/Classes/Base/QCloudCOSXMLService.h b/Pods/QCloudCOSXML/QCloudCOSXML/Classes/Base/QCloudCOSXMLService.h new file mode 100644 index 0000000..d56f2c2 --- /dev/null +++ b/Pods/QCloudCOSXML/QCloudCOSXML/Classes/Base/QCloudCOSXMLService.h @@ -0,0 +1,125 @@ +// +// QCloudCOSXMLService.h +// QCloudCOSXMLService +// +// Created by tencent +// +// +// ██████╗ ██████╗██╗ ██████╗ ██╗ ██╗██████╗ ████████╗███████╗██████╗ ███╗ ███╗██╗███╗ ██╗ █████╗ ██╗ ██╗ █████╗ +// ██████╗ +// ██╔═══██╗██╔════╝██║ ██╔═══██╗██║ ██║██╔══██╗ ╚══██╔══╝██╔════╝██╔══██╗████╗ ████║██║████╗ ██║██╔══██╗██║ ██║ ██╔══██╗██╔══██╗ +// ██║ ██║██║ ██║ ██║ ██║██║ ██║██║ ██║ ██║ █████╗ ██████╔╝██╔████╔██║██║██╔██╗ ██║███████║██║ ██║ ███████║██████╔╝ +// ██║▄▄ ██║██║ ██║ ██║ ██║██║ ██║██║ ██║ ██║ ██╔══╝ ██╔══██╗██║╚██╔╝██║██║██║╚██╗██║██╔══██║██║ ██║ ██╔══██║██╔══██╗ +// ╚██████╔╝╚██████╗███████╗╚██████╔╝╚██████╔╝██████╔╝ ██║ ███████╗██║ ██║██║ ╚═╝ ██║██║██║ ╚████║██║ ██║███████╗ ███████╗██║ +// ██║██████╔╝ +// ╚══▀▀═╝ ╚═════╝╚══════╝ ╚═════╝ ╚═════╝ ╚═════╝ ╚═╝ ╚══════╝╚═╝ ╚═╝╚═╝ ╚═╝╚═╝╚═╝ ╚═══╝╚═╝ ╚═╝╚══════╝ ╚══════╝╚═╝ ╚═╝╚═════╝ +// +// +// _ __ _ _ +// (_) / _| | | | | +// ___ ___ _ ____ ___ ___ ___ | |_ ___ _ __ __| | _____ _____| | ___ _ __ ___ _ +// __ ___ +// / __|/ _ \ '__\ \ / / |/ __/ _ \ | _/ _ \| '__| / _` |/ _ \ \ / / _ \ |/ _ \| '_ \ / _ \ +// '__/ __| +// \__ \ __/ | \ V /| | (_| __/ | || (_) | | | (_| | __/\ V / __/ | (_) | |_) | __/ +// | \__ +// |___/\___|_| \_/ |_|\___\___| |_| \___/|_| \__,_|\___| \_/ \___|_|\___/| .__/ +// \___|_| |___/ +// ______ ______ ______ ______ ______ ______ ______ ______ | | +// |______|______|______|______|______|______|______|______| |_| +// + +#import +#import +#import + +NS_ASSUME_NONNULL_BEGIN + +/** + QCloudCOSXMLService 是对所有接口请求发起的封装;通过QCloudCOSXMLService实例来发起网络请求 + + 详情请查看:https://cloud.tencent.com/document/product/436/11280 + + + 配置QCloudCOSXMLService + 1:实例化 QCloudServiceConfiguration 对象: + + QCloudServiceConfiguration* configuration = [QCloudServiceConfiguration new]; + configuration.appID = @"APPID" //腾讯云账号的 APPID; + + 2:实例化 QCloudCOSXMLService 对象: + + + (QCloudCOSXMLService*) registerDefaultCOSXMLWithConfiguration + :(QCloudServiceConfiguration*)configuration; + + 3:实例化 QCloudCOSTransferManagerService 对象: + + + (QCloudCOSTransferMangerService*) registerDefaultCOSTransferMangerWithConfiguration + :(QCloudServiceConfiguration*)configuration; + + 使用步骤: + + 1:实例并初始化好要使用的request; + + 2:使用[QCloudCOSXMLService defaultCOSXML] 获取到 QCloudCOSXMLService实例; + + 3:调用对应发起请求的方法:如get****,post****,put****,delete****, + + */ + +@interface QCloudCOSXMLService : QCloudService +#pragma hidden super selectors +- (int)performRequest:(QCloudBizHTTPRequest *)httpRequst NS_UNAVAILABLE; +- (int)performRequest:(QCloudBizHTTPRequest *)httpRequst withFinishBlock:(QCloudRequestFinishBlock)block NS_UNAVAILABLE; + +#pragma Factory +/** + 获取默认的cosxml服务 + */ ++ (QCloudCOSXMLService *)defaultCOSXML; + +/// 获取指定key的cosxml服务 +/// @param key 要获取的cosxml服务对应的key ++ (QCloudCOSXMLService *)cosxmlServiceForKey:(NSString *)key; +#pragma hidden super selectors + +/// 注册默认的cosxml服务 +/// @param configuration cosxml服务对应的配置信息,一旦配置之后无法修改 ++ (QCloudCOSXMLService *)registerDefaultCOSXMLWithConfiguration:(QCloudServiceConfiguration *)configuration; + +/// 注册特定key的cosxml服务 +/// @param configuration cosxml对应的配置信息 +/// @param key 该cosxml对应的key ++ (QCloudCOSXMLService *)registerCOSXMLWithConfiguration:(QCloudServiceConfiguration *)configuration withKey:(NSString *)key; + +/// 检查是否存在key对应的service ++ (BOOL)hasCosxmlServiceForKey:(NSString *)key; ++ (BOOL)hasServiceForKey:(NSString *)key __attribute__((deprecated("该方法过期,请用hasCosxmlServiceForKey:替换"))); + +/// 删除可以对应的service ++ (void)removeCosxmlServiceWithKey:(NSString *)key; ++ (void)removeCOSXMLWithKey:(NSString *)key __attribute__((deprecated("该方法过期,请用removeCosxmlServiceWithKey:替换"))); + + +/** +根据Bukcet, Object来生成可以直接访问的URL。如果您的Bucket是私有读的话,那么访问的时候需要带上签名, + 反之则不需要。 + + +需要注意的是,如果通过该接口来生成带签名的URL的话,因为签名可能是在服务器生成的,该方法是同步方法, + 可能因为网络请求阻塞,建议不要在主线程里调用。 + +此外, 传入的Object需要是URLEncode后的结果。 + + @param bucket 存储桶 + @param object 存储对象, 请传入URL Encode后的结果 + @param withAuthorization 是否需要签名,如果是私有读的Bucket,那么该URL需要带上签名才能访问 + @return object URL + */ +- (NSString *)getURLWithBucket:(NSString *)bucket + object:(NSString *)object + withAuthorization:(BOOL)withAuthorization + regionName:(NSString *)regionName; + +@end +NS_ASSUME_NONNULL_END diff --git a/Pods/QCloudCOSXML/QCloudCOSXML/Classes/Base/QCloudCOSXMLService.m b/Pods/QCloudCOSXML/QCloudCOSXML/Classes/Base/QCloudCOSXMLService.m new file mode 100644 index 0000000..630edac --- /dev/null +++ b/Pods/QCloudCOSXML/QCloudCOSXML/Classes/Base/QCloudCOSXMLService.m @@ -0,0 +1,139 @@ +// +// COSXML.m +// COSXML +// +// Created by tencent +// Copyright (c) 2015年 tencent. All rights reserved. +// +// ██████╗ ██████╗██╗ ██████╗ ██╗ ██╗██████╗ ████████╗███████╗██████╗ ███╗ ███╗██╗███╗ ██╗ █████╗ ██╗ ██╗ █████╗ +// ██████╗ +// ██╔═══██╗██╔════╝██║ ██╔═══██╗██║ ██║██╔══██╗ ╚══██╔══╝██╔════╝██╔══██╗████╗ ████║██║████╗ ██║██╔══██╗██║ ██║ ██╔══██╗██╔══██╗ +// ██║ ██║██║ ██║ ██║ ██║██║ ██║██║ ██║ ██║ █████╗ ██████╔╝██╔████╔██║██║██╔██╗ ██║███████║██║ ██║ ███████║██████╔╝ +// ██║▄▄ ██║██║ ██║ ██║ ██║██║ ██║██║ ██║ ██║ ██╔══╝ ██╔══██╗██║╚██╔╝██║██║██║╚██╗██║██╔══██║██║ ██║ ██╔══██║██╔══██╗ +// ╚██████╔╝╚██████╗███████╗╚██████╔╝╚██████╔╝██████╔╝ ██║ ███████╗██║ ██║██║ ╚═╝ ██║██║██║ ╚████║██║ ██║███████╗ ███████╗██║ +// ██║██████╔╝ +// ╚══▀▀═╝ ╚═════╝╚══════╝ ╚═════╝ ╚═════╝ ╚═════╝ ╚═╝ ╚══════╝╚═╝ ╚═╝╚═╝ ╚═╝╚═╝╚═╝ ╚═══╝╚═╝ ╚═╝╚══════╝ ╚══════╝╚═╝ ╚═╝╚═════╝ +// +// +// _ __ _ _ +// (_) / _| | | | | +// ___ ___ _ ____ ___ ___ ___ | |_ ___ _ __ __| | _____ _____| | ___ _ __ ___ _ +// __ ___ +// / __|/ _ \ '__\ \ / / |/ __/ _ \ | _/ _ \| '__| / _` |/ _ \ \ / / _ \ |/ _ \| '_ \ / _ \ +// '__/ __| +// \__ \ __/ | \ V /| | (_| __/ | || (_) | | | (_| | __/\ V / __/ | (_) | |_) | __/ +// | \__ +// |___/\___|_| \_/ |_|\___\___| |_| \___/|_| \__,_|\___| \_/ \___|_|\___/| .__/ +// \___|_| |___/ +// ______ ______ ______ ______ ______ ______ ______ ______ | | +// |______|______|______|______|______|______|______|______| |_| +// + +#import "QCloudCOSXMLService.h" +#import "QCloudCOSXMLService+Configuration.h" +#import "QCloudCOSXMLService+Private.h" +QCloudThreadSafeMutableDictionary *QCloudCOSXMLServiceCache() { + static QCloudThreadSafeMutableDictionary *CloudcosxmlService = nil; + static dispatch_once_t onceToken; + dispatch_once(&onceToken, ^{ + CloudcosxmlService = [QCloudThreadSafeMutableDictionary new]; + }); + return CloudcosxmlService; +} +@implementation QCloudCOSXMLService +static QCloudCOSXMLService *COSXMLService = nil; + ++ (QCloudCOSXMLService *)defaultCOSXML { + @synchronized(self) { + if (!COSXMLService) { + @throw [NSException exceptionWithName:QCloudErrorDomain reason:@"您没有配置默认的OCR服务配置,请配置之后再调用该方法" userInfo:nil]; + } + return COSXMLService; + } +} + ++ (QCloudCOSXMLService *)registerDefaultCOSXMLWithConfiguration:(QCloudServiceConfiguration *)configuration { + @synchronized(self) { + if(!COSXMLService){ + COSXMLService = [[QCloudCOSXMLService alloc] initWithConfiguration:configuration]; + if (!configuration.isCloseShareLog) { + #if TARGET_OS_IOS + if (NSClassFromString(@"QCloudLogManager")) { + Class clazz = NSClassFromString(@"QCloudLogManager"); + [clazz performSelector:@selector(sharedInstance)]; + } + #endif + } + } + } + return COSXMLService; +} + ++ (QCloudCOSXMLService *)cosxmlServiceForKey:(NSString *)key { + QCloudCOSXMLService *cosxmlService = [QCloudCOSXMLServiceCache() objectForKey:key]; + if (!cosxmlService) { + @throw [NSException exceptionWithName:QCloudErrorDomain + reason:[NSString stringWithFormat:@"您没有配置Key为%@的OCR服务配置,请配置之后再调用该方法", key] + userInfo:nil]; + } + return cosxmlService; +} + ++ (QCloudCOSXMLService *)registerCOSXMLWithConfiguration:(QCloudServiceConfiguration *)configuration withKey:(NSString *)key; +{ + QCloudCOSXMLService *cosxmlService = [QCloudCOSXMLServiceCache() objectForKey:key]; + if(!cosxmlService){ + cosxmlService = [[QCloudCOSXMLService alloc] initWithConfiguration:configuration]; + [QCloudCOSXMLServiceCache() setObject:cosxmlService forKey:key]; + } + return cosxmlService; +} +- (NSString *)getURLWithBucket:(NSString *)bucket + object:(NSString *)object + withAuthorization:(BOOL)withAuthorization + regionName:(NSString *)regionName { + NSParameterAssert(bucket); + NSParameterAssert(object); + __block NSMutableString *resultURL = [[NSMutableString alloc] init]; + NSString *bucketURL = [[self.configuration.endpoint serverURLWithBucket:bucket appID:self.configuration.appID + regionName:regionName] absoluteString]; + [resultURL appendString:bucketURL]; + [resultURL appendFormat:@"/%@", object]; + if (withAuthorization) { + dispatch_semaphore_t semaphore = dispatch_semaphore_create(0); + NSMutableURLRequest *fakeURLRequest = [[NSMutableURLRequest alloc] init]; + [fakeURLRequest setHTTPMethod:@"GET"]; + [fakeURLRequest setURL:[NSURL URLWithString:resultURL]]; + [self.configuration.signatureProvider signatureWithFields:nil + request:nil + urlRequest:fakeURLRequest + compelete:^(QCloudSignature *signature, NSError *error) { + NSString *sign = signature.signature; + sign = QCloudURLEncodeUTF8(sign); + [resultURL appendFormat:@"?sign=%@", sign]; + dispatch_semaphore_signal(semaphore); + }]; + dispatch_semaphore_wait(semaphore, dispatch_time(DISPATCH_TIME_NOW, 5 * NSEC_PER_SEC)); + } + return [resultURL copy]; +} + ++ (BOOL)hasCosxmlServiceForKey:(NSString *)key { + if (nil == [QCloudCOSXMLServiceCache() objectForKey:key]) { + return NO; + } else { + return YES; + } +} ++ (BOOL)hasServiceForKey:(NSString *)key{ + return [QCloudCOSXMLService hasCosxmlServiceForKey:key]; +} + ++ (void)removeCosxmlServiceWithKey:(NSString *)key { + [QCloudCOSXMLServiceCache() removeObjectForKey:key]; +} ++ (void)removeCOSXMLWithKey:(NSString *)key{ + [self removeCosxmlServiceWithKey:key]; +} + +@end diff --git a/Pods/QCloudCOSXML/QCloudCOSXML/Classes/Base/QCloudCOSXMLServiceUtilities.h b/Pods/QCloudCOSXML/QCloudCOSXML/Classes/Base/QCloudCOSXMLServiceUtilities.h new file mode 100644 index 0000000..224872c --- /dev/null +++ b/Pods/QCloudCOSXML/QCloudCOSXML/Classes/Base/QCloudCOSXMLServiceUtilities.h @@ -0,0 +1,12 @@ +// +// QCloudCOSXMLServiceUtilities.h +// Pods +// +// Created by Dong Zhao on 2017/5/26. +// +// + +#import +#import +FOUNDATION_EXTERN NSString *QCloudCOSXMLObjectLocation(QCloudEndPoint *endpoint, NSString *appID, NSString *bucket, NSString *object, + NSString *regionName); diff --git a/Pods/QCloudCOSXML/QCloudCOSXML/Classes/Base/QCloudCOSXMLServiceUtilities.m b/Pods/QCloudCOSXML/QCloudCOSXML/Classes/Base/QCloudCOSXMLServiceUtilities.m new file mode 100644 index 0000000..47b70d7 --- /dev/null +++ b/Pods/QCloudCOSXML/QCloudCOSXML/Classes/Base/QCloudCOSXMLServiceUtilities.m @@ -0,0 +1,15 @@ +// +// QCloudCOSXMLServiceUtilities.m +// Pods +// +// Created by Dong Zhao on 2017/5/26. +// +// + +#import "QCloudCOSXMLServiceUtilities.h" +#import + +NSString *QCloudCOSXMLObjectLocation(QCloudEndPoint *endpoint, NSString *appID, NSString *bucket, NSString *object, NSString *regionName) { + NSURL *url = [endpoint serverURLWithBucket:bucket appID:appID regionName:regionName]; + return [url URLByAppendingPathComponent:object].absoluteString; +} diff --git a/Pods/QCloudCOSXML/QCloudCOSXML/Classes/Base/QCloudLogManager.h b/Pods/QCloudCOSXML/QCloudCOSXML/Classes/Base/QCloudLogManager.h new file mode 100644 index 0000000..65aaff5 --- /dev/null +++ b/Pods/QCloudCOSXML/QCloudCOSXML/Classes/Base/QCloudLogManager.h @@ -0,0 +1,39 @@ +// +// QCloudLogManager.h +// QCloudCOSXML +// +// Created by erichmzhang(张恒铭) on 2018/10/8. +// + +#import + +NS_ASSUME_NONNULL_BEGIN +#if TARGET_OS_IOS +@interface QCloudLogTableViewController : UIViewController +- (instancetype)initWithLog:(NSArray *)logContent; +@end +#endif +/** + QCloudCOSXML 日志管理类 + */ +@interface QCloudLogManager : NSObject +/** + 是否显示日志信息 + */ +@property (nonatomic, assign) BOOL shouldShowLog; ++ (instancetype)sharedInstance; +- (void)showLogs; +/** + 已经产生的日志 + */ +- (NSArray *)currentLogs; + +/** + 根据日志路径读取日志 + @params path 日志路径 + */ +- (NSString *)readLog:(NSString *)path; +- (BOOL)shouldShowLog; +@end + +NS_ASSUME_NONNULL_END diff --git a/Pods/QCloudCOSXML/QCloudCOSXML/Classes/Base/QCloudLogManager.m b/Pods/QCloudCOSXML/QCloudCOSXML/Classes/Base/QCloudLogManager.m new file mode 100644 index 0000000..0ff0b58 --- /dev/null +++ b/Pods/QCloudCOSXML/QCloudCOSXML/Classes/Base/QCloudLogManager.m @@ -0,0 +1,208 @@ +// +// QCloudLogManager.m +// QCloudCOSXML +// +// Created by erichmzhang(张恒铭) on 2018/10/8. +// + +#import "QCloudLogManager.h" + +#import +#if TARGET_OS_IOS +#import + +@interface QCloudLogDetailViewController : UIViewController +- (instancetype)initWithLogPath:(NSString *)logPath LogContent:(NSString *)logContent; +@property (nonatomic, strong) NSString *logContent; +@property (nonatomic, strong) NSString *logPath; +@property (nonatomic, strong) UITextView *textView; +@end + +@implementation QCloudLogDetailViewController + +- (void)viewDidLoad { + [super viewDidLoad]; + UIBarButtonItem *barButtonItem = [[UIBarButtonItem alloc] initWithTitle:@"发送" + style:UIBarButtonItemStylePlain + target:self + action:@selector(onHandleShareLog)]; + self.navigationItem.rightBarButtonItem = barButtonItem; + self.textView = [[UITextView alloc] initWithFrame:self.view.frame]; + [self.view addSubview:self.textView]; +} + +- (instancetype)initWithLogPath:(NSString *)logPath LogContent:(NSString *)logContent { + self = [super init]; + self.logContent = logContent; + self.logPath = logPath; + return self; +} + +- (void)onHandleShareLog { + NSURL *url = [NSURL fileURLWithPath:self.logPath]; + NSArray *activityItems = @[ url ]; + UIActivityViewController *activityVC = [[UIActivityViewController alloc] initWithActivityItems:activityItems applicationActivities:nil]; + [self presentViewController:activityVC animated:YES completion:nil]; +} + +- (void)viewDidAppear:(BOOL)animated { + [super viewDidAppear:animated]; + self.textView.text = self.logContent; +} + +@end +@interface QCloudLogTableViewController () +@property (nonatomic, strong) UITableView *tableView; +@property (nonatomic, strong) NSArray *logsDirecotryArray; +@end + +@implementation QCloudLogTableViewController + +- (void)viewDidLoad { + [super viewDidLoad]; + self.tableView = [[UITableView alloc] initWithFrame:self.view.bounds]; + self.tableView.delegate = self; + self.tableView.dataSource = self; + [self.view addSubview:self.tableView]; +} + +- (void)viewDidAppear:(BOOL)animated { + [super viewDidAppear:animated]; + [self.tableView reloadData]; +} + +- (instancetype)initWithLog:(NSArray *)logContent { + self = [super init]; + self.logsDirecotryArray = logContent; + return self; +} + +#pragma mark - TableViewDelegate +- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView { + return 1; +} + +- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section { + return self.logsDirecotryArray.count; +} + +- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath { + UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:@"reuse-cell"]; + if (cell == nil) { + cell = [[UITableViewCell alloc] init]; + } + cell.textLabel.text = self.logsDirecotryArray[indexPath.row]; + return cell; +} + +- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath { + [tableView deselectRowAtIndexPath:indexPath animated:YES]; + // shoud detail view + NSString *logPath = [[QCloudLogger sharedLogger].logDirctoryPath stringByAppendingPathComponent:self.logsDirecotryArray[indexPath.row]]; + NSData *logData = [[NSFileManager defaultManager] contentsAtPath:logPath]; + NSString *logContent = [[NSString alloc] initWithData:logData encoding:NSUTF8StringEncoding]; + QCloudLogDetailViewController *viewController = [[QCloudLogDetailViewController alloc] initWithLogPath:logPath LogContent:logContent]; + [self.navigationController pushViewController:viewController animated:YES]; +} + +@end + +@implementation QCloudLogManager ++ (instancetype)sharedInstance { + static QCloudLogManager *instance; + static dispatch_once_t onceToken; + dispatch_once(&onceToken, ^{ + instance = [[QCloudLogManager alloc] init]; + }); + return instance; +} + +- (instancetype)init { + self = [super init]; + + [[NSNotificationCenter defaultCenter] addObserver:self + selector:@selector(onHandleDidFinishLaunching:) + name:UIApplicationDidFinishLaunchingNotification + object:nil]; + return self; +} + +- (void)dealloc { + [[NSNotificationCenter defaultCenter] removeObserver:self]; +} +- (void)onHandleDidFinishLaunching:(NSNotification *)notification { + if (!self.shouldShowLog) { + return; + } + // 如果剪贴板没有数据则不进行读取,减少ios14 剪贴板弹框次数 + if ([UIDevice currentDevice].systemVersion.floatValue >= 10.0) { + if (![[UIPasteboard generalPasteboard] hasStrings]) { + return; + } + } + dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{ + NSString *currentPasteBoardContent = [UIPasteboard generalPasteboard].string; + if ([currentPasteBoardContent isEqualToString:@"##qcloud-cos-log-ispct##"]) { + [UIPasteboard generalPasteboard].string = @""; + dispatch_async(dispatch_get_main_queue(), ^{ + [self handleShowLogs]; + }); + } + }); +} + +- (NSArray *)currentLogs { + NSString *directoryPath = [QCloudLogger sharedLogger].logDirctoryPath; + NSArray *content = [[NSFileManager defaultManager] contentsOfDirectoryAtPath:directoryPath error:nil]; + return content; +} + +- (NSString *)readLog:(NSString *)path { + NSData *content = [[NSFileManager defaultManager] contentsAtPath:path]; + return [[NSString alloc] initWithData:content encoding:NSUTF8StringEncoding]; +} + +- (void)handleShowLogs { + UIAlertController *alertController = [UIAlertController alertControllerWithTitle:@"提示" + message:@"确定显示log" + preferredStyle:UIAlertControllerStyleAlert]; + UIAlertAction *actionEnsure = [UIAlertAction actionWithTitle:@"确定" + style:UIAlertActionStyleDestructive + handler:^(UIAlertAction *action) { + [self showLogs]; + }]; + UIAlertAction *actionCancel = [UIAlertAction actionWithTitle:@"取消" style:UIAlertActionStyleDefault handler:nil]; + [alertController addAction:actionEnsure]; + [alertController addAction:actionCancel]; + UIViewController *currentViewController = [self currentViewController]; + [currentViewController presentViewController:alertController animated:YES completion:nil]; +} +- (void)showLogs { + NSArray *currentLogPath = [self currentLogs]; + UIViewController *currentViewController = [self currentViewController]; + QCloudLogTableViewController *tableViewController = [[QCloudLogTableViewController alloc] initWithLog:currentLogPath]; + if ([currentViewController isKindOfClass:UINavigationController.class]) { + [((UINavigationController *)currentViewController) pushViewController:tableViewController animated:YES]; + } else { + UINavigationController *nav = [[UINavigationController alloc] initWithRootViewController:tableViewController]; + [currentViewController presentViewController:nav animated:YES completion:nil]; + } +} +- (UIViewController *)currentViewController { + UIWindow *keyWindow = [UIApplication sharedApplication].keyWindow; + UIViewController *vc = keyWindow.rootViewController; + while (vc.presentedViewController) { + vc = vc.presentedViewController; + + if ([vc isKindOfClass:[UINavigationController class]]) { + vc = [(UINavigationController *)vc visibleViewController]; + } else if ([vc isKindOfClass:[UITabBarController class]]) { + vc = [(UITabBarController *)vc selectedViewController]; + } + } + return vc; +} + +@end + +#endif diff --git a/Pods/QCloudCOSXML/QCloudCOSXML/Classes/Base/QCloudRequestData+COSXML.h b/Pods/QCloudCOSXML/QCloudCOSXML/Classes/Base/QCloudRequestData+COSXML.h new file mode 100644 index 0000000..5fa8f7b --- /dev/null +++ b/Pods/QCloudCOSXML/QCloudCOSXML/Classes/Base/QCloudRequestData+COSXML.h @@ -0,0 +1,16 @@ +// +// QCloudRequestData+COSXML.h +// QCloudCOSXML +// +// Created by garenwang on 2025/3/31. +// + +#import + +NS_ASSUME_NONNULL_BEGIN + +@interface QCloudRequestData (COSXML) + +@end + +NS_ASSUME_NONNULL_END diff --git a/Pods/QCloudCOSXML/QCloudCOSXML/Classes/Base/QCloudRequestData+COSXML.m b/Pods/QCloudCOSXML/QCloudCOSXML/Classes/Base/QCloudRequestData+COSXML.m new file mode 100644 index 0000000..5fdfc3f --- /dev/null +++ b/Pods/QCloudCOSXML/QCloudCOSXML/Classes/Base/QCloudRequestData+COSXML.m @@ -0,0 +1,46 @@ +// +// QCloudRequestData+COSXML.m +// QCloudCOSXML +// +// Created by garenwang on 2025/3/31. +// + +#import "QCloudRequestData+COSXML.h" + +@implementation QCloudRequestData (COSXML) + ++ (void)load{ + static dispatch_once_t onceToken; + dispatch_once(&onceToken, ^{ + Class class = [self class]; + + SEL originalSelector = @selector(setValue:forHTTPHeaderField:); + SEL swizzledSelector = @selector(cos_setValue:forHTTPHeaderField:); + + Method originalMethod = class_getInstanceMethod(class, originalSelector); + Method swizzledMethod = class_getInstanceMethod(class, swizzledSelector); + + BOOL didAddMethod + = class_addMethod(class, originalSelector, method_getImplementation(swizzledMethod), method_getTypeEncoding(swizzledMethod)); + if (didAddMethod) { + class_replaceMethod(class, swizzledSelector, method_getImplementation(originalMethod), method_getTypeEncoding(originalMethod)); + } else { + method_exchangeImplementations(originalMethod, swizzledMethod); + } + }); +} + +- (void)cos_setValue:(nonnull id)value forHTTPHeaderField:(nonnull NSString *)field { + if ([field.lowercaseString isEqualToString:@"host"] && self.serverURL) { + NSURL * url = [NSURL URLWithString:self.serverURL]; + if ([url.host isEqual:value] || !url.host) { + [self cos_setValue:value forHTTPHeaderField:field]; + }else{ + [self cos_setValue:url.host forHTTPHeaderField:field]; + } + }else{ + [self cos_setValue:value forHTTPHeaderField:field]; + } +} + +@end diff --git a/Pods/QCloudCOSXML/QCloudCOSXML/Classes/Base/QCloudRequestData+COSXMLVersion.h b/Pods/QCloudCOSXML/QCloudCOSXML/Classes/Base/QCloudRequestData+COSXMLVersion.h new file mode 100644 index 0000000..6d62fac --- /dev/null +++ b/Pods/QCloudCOSXML/QCloudCOSXML/Classes/Base/QCloudRequestData+COSXMLVersion.h @@ -0,0 +1,12 @@ +// +// QCloudRequestData+COSXMLVersion.h +// QCloudCOSXML +// +// Created by erichmzhang(张恒铭) on 22/01/2018. +// + +#import + +@interface QCloudRequestData (COSXMLVersion) + +@end diff --git a/Pods/QCloudCOSXML/QCloudCOSXML/Classes/Base/QCloudRequestData+COSXMLVersion.m b/Pods/QCloudCOSXML/QCloudCOSXML/Classes/Base/QCloudRequestData+COSXMLVersion.m new file mode 100644 index 0000000..fef21c7 --- /dev/null +++ b/Pods/QCloudCOSXML/QCloudCOSXML/Classes/Base/QCloudRequestData+COSXMLVersion.m @@ -0,0 +1,51 @@ +// + +#import "QCloudRequestData+COSXMLVersion.h" +#import + +static NSString *const kCOSXMLModuleName = @"QCloudCOSXML"; +@implementation QCloudRequestData (COSXMLVersion) ++ (void)load { + static dispatch_once_t onceToken; + dispatch_once(&onceToken, ^{ + Class class = [self class]; + + SEL originalSelector = @selector(loadDefaultHTTPHeaders); + SEL swizzledSelector = @selector(swizzle_loadDefaultHTTPHeaders); + + Method originalMethod = class_getInstanceMethod(class, originalSelector); + Method swizzledMethod = class_getInstanceMethod(class, swizzledSelector); + + BOOL didAddMethod + = class_addMethod(class, originalSelector, method_getImplementation(swizzledMethod), method_getTypeEncoding(swizzledMethod)); + + if (didAddMethod) { + class_replaceMethod(class, swizzledSelector, method_getImplementation(originalMethod), method_getTypeEncoding(originalMethod)); + } else { + method_exchangeImplementations(originalMethod, swizzledMethod); + } + }); +} + +- (void)swizzle_loadDefaultHTTPHeaders { + [self swizzle_loadDefaultHTTPHeaders]; + static NSDictionary *httpHeaders; + static dispatch_once_t onceToken; + dispatch_once(&onceToken, ^{ + __block NSString *versionString; + NSArray *modules = [[QCloudSDKModuleManager shareInstance] allModules]; + [modules enumerateObjectsUsingBlock:^(id _Nonnull obj, NSUInteger idx, BOOL *_Nonnull stop) { + QCloudSDKModule *module = obj; + if ([module.name isEqualToString:kCOSXMLModuleName]) { + versionString = module.version; + *stop = YES; + } + }]; + NSString *userAgent = [NSString stringWithFormat:@"cos-xml-ios-sdk-v%@", versionString]; + httpHeaders = @ { @"Connection" : @"keep-alive", HTTPHeaderUserAgent : userAgent }; + }); + [httpHeaders enumerateKeysAndObjectsUsingBlock:^(id _Nonnull key, id _Nonnull obj, BOOL *_Nonnull stop) { + [self setValue:obj forHTTPHeaderField:key]; + }]; +} +@end diff --git a/Pods/QCloudCOSXML/QCloudCOSXML/Classes/QCloudCOSXMLVersion.h b/Pods/QCloudCOSXML/QCloudCOSXML/Classes/QCloudCOSXMLVersion.h new file mode 100644 index 0000000..3715122 --- /dev/null +++ b/Pods/QCloudCOSXML/QCloudCOSXML/Classes/QCloudCOSXMLVersion.h @@ -0,0 +1,15 @@ +// +// QCloud Terminal Lab --- service for developers +// +#import + +#ifndef QCloudCOSXMLModuleVersion_h +#define QCloudCOSXMLModuleVersion_h +#define QCloudCOSXMLModuleVersionNumber 605000 +//dependency + +// +FOUNDATION_EXTERN NSString * const QCloudCOSXMLModuleVersion; +FOUNDATION_EXTERN NSString * const QCloudCOSXMLModuleName; + +#endif diff --git a/Pods/QCloudCOSXML/QCloudCOSXML/Classes/QCloudCOSXMLVersion.m b/Pods/QCloudCOSXML/QCloudCOSXML/Classes/QCloudCOSXMLVersion.m new file mode 100644 index 0000000..b921a2c --- /dev/null +++ b/Pods/QCloudCOSXML/QCloudCOSXML/Classes/QCloudCOSXMLVersion.m @@ -0,0 +1,29 @@ +#import "QCloudCOSXMLVersion.h" +NSString * const QCloudCOSXMLModuleVersion = @"6.5.0"; +NSString * const QCloudCOSXMLModuleName = @"QCloudCOSXML"; +@interface QCloudQCloudCOSXMLLoad : NSObject +@end + +@implementation QCloudQCloudCOSXMLLoad ++ (void) load +{ + Class cla = NSClassFromString(@"QCloudSDKModuleManager"); + if (cla) { + NSMutableDictionary* module = [@{ + @"name" : QCloudCOSXMLModuleName, + @"version" : QCloudCOSXMLModuleVersion + } mutableCopy]; + + NSString* buglyID = @""; + if (buglyID.length > 0) { + module[@"crashID"] = buglyID; + } + +#pragma clang diagnostic push +#pragma clang diagnostic ignored "-Wundeclared-selector" + id share = [cla performSelector:@selector(shareInstance)]; + [share performSelector:@selector(registerModuleByJSON:) withObject:module]; +#pragma clang diagnostic pop + } +} +@end diff --git a/Pods/QCloudCOSXML/QCloudCOSXML/Classes/Transfer/QCloudCOSTransferMangerService.h b/Pods/QCloudCOSXML/QCloudCOSXML/Classes/Transfer/QCloudCOSTransferMangerService.h new file mode 100644 index 0000000..7b472c3 --- /dev/null +++ b/Pods/QCloudCOSXML/QCloudCOSXML/Classes/Transfer/QCloudCOSTransferMangerService.h @@ -0,0 +1,65 @@ +// +// QCloudCOSTransferMangerService.h +// QCloudCOSTransferMangerService +// +// Created by tencent +// +// +// ██████╗ ██████╗██╗ ██████╗ ██╗ ██╗██████╗ ████████╗███████╗██████╗ ███╗ ███╗██╗███╗ ██╗ █████╗ ██╗ ██╗ █████╗ +// ██████╗ +// ██╔═══██╗██╔════╝██║ ██╔═══██╗██║ ██║██╔══██╗ ╚══██╔══╝██╔════╝██╔══██╗████╗ ████║██║████╗ ██║██╔══██╗██║ ██║ ██╔══██╗██╔══██╗ +// ██║ ██║██║ ██║ ██║ ██║██║ ██║██║ ██║ ██║ █████╗ ██████╔╝██╔████╔██║██║██╔██╗ ██║███████║██║ ██║ ███████║██████╔╝ +// ██║▄▄ ██║██║ ██║ ██║ ██║██║ ██║██║ ██║ ██║ ██╔══╝ ██╔══██╗██║╚██╔╝██║██║██║╚██╗██║██╔══██║██║ ██║ ██╔══██║██╔══██╗ +// ╚██████╔╝╚██████╗███████╗╚██████╔╝╚██████╔╝██████╔╝ ██║ ███████╗██║ ██║██║ ╚═╝ ██║██║██║ ╚████║██║ ██║███████╗ ███████╗██║ +// ██║██████╔╝ +// ╚══▀▀═╝ ╚═════╝╚══════╝ ╚═════╝ ╚═════╝ ╚═════╝ ╚═╝ ╚══════╝╚═╝ ╚═╝╚═╝ ╚═╝╚═╝╚═╝ ╚═══╝╚═╝ ╚═╝╚══════╝ ╚══════╝╚═╝ ╚═╝╚═════╝ +// +// +// _ __ _ _ +// (_) / _| | | | | +// ___ ___ _ ____ ___ ___ ___ | |_ ___ _ __ __| | _____ _____| | ___ _ __ ___ _ +// __ ___ +// / __|/ _ \ '__\ \ / / |/ __/ _ \ | _/ _ \| '__| / _` |/ _ \ \ / / _ \ |/ _ \| '_ \ / _ \ +// '__/ __| +// \__ \ __/ | \ V /| | (_| __/ | || (_) | | | (_| | __/\ V / __/ | (_) | |_) | __/ +// | \__ +// |___/\___|_| \_/ |_|\___\___| |_| \___/|_| \__,_|\___| \_/ \___|_|\___/| .__/ +// \___|_| |___/ +// ______ ______ ______ ______ ______ ______ ______ ______ | | +// |______|______|______|______|______|______|______|______| |_| +// + +#import +#import + +@class QCloudCOSXMLService; +@class QCloudCOSXMLUploadObjectRequest; +@class QCloudCOSXMLCopyObjectRequest; +@class QCloudCOSXMLDownloadObjectRequest; +NS_ASSUME_NONNULL_BEGIN +@interface QCloudCOSTransferMangerService : QCloudService + +@property (nonatomic, strong, readonly) QCloudCOSXMLService *cosService; + +#pragma hidden super selectors +- (int)performRequest:(QCloudBizHTTPRequest *)httpRequst NS_UNAVAILABLE; +- (int)performRequest:(QCloudBizHTTPRequest *)httpRequst withFinishBlock:(QCloudRequestFinishBlock)block NS_UNAVAILABLE; + +#pragma Factory ++ (QCloudCOSTransferMangerService *)defaultCOSTransferManager; ++ (QCloudCOSTransferMangerService *)costransfermangerServiceForKey:(NSString *)key; ++ (QCloudCOSTransferMangerService *)registerDefaultCOSTransferMangerWithConfiguration:(QCloudServiceConfiguration *)configuration; ++ (QCloudCOSTransferMangerService *)registerCOSTransferMangerWithConfiguration:(QCloudServiceConfiguration *)configuration withKey:(NSString *)key; + +- (void)UploadObject:(QCloudCOSXMLUploadObjectRequest *)upload; +- (void)CopyObject:(QCloudCOSXMLCopyObjectRequest *)copy; +- (void)DownloadObject:(QCloudCOSXMLDownloadObjectRequest *)get; + + +/// 是否注册了该key对应的服务 ++ (BOOL)hasTransferMangerServiceForKey:(NSString *)key; + +/// 删除key对应的服务 ++ (void)removeTransferMangerServiceWithKey:(NSString *)key; +@end +NS_ASSUME_NONNULL_END diff --git a/Pods/QCloudCOSXML/QCloudCOSXML/Classes/Transfer/QCloudCOSTransferMangerService.m b/Pods/QCloudCOSXML/QCloudCOSXML/Classes/Transfer/QCloudCOSTransferMangerService.m new file mode 100644 index 0000000..2183a86 --- /dev/null +++ b/Pods/QCloudCOSXML/QCloudCOSXML/Classes/Transfer/QCloudCOSTransferMangerService.m @@ -0,0 +1,158 @@ +// +// COSTransferManger.m +// COSTransferManger +// +// Created by tencent +// Copyright (c) 2015年 tencent. All rights reserved. +// +// ██████╗ ██████╗██╗ ██████╗ ██╗ ██╗██████╗ ████████╗███████╗██████╗ ███╗ ███╗██╗███╗ ██╗ █████╗ ██╗ ██╗ █████╗ +// ██████╗ +// ██╔═══██╗██╔════╝██║ ██╔═══██╗██║ ██║██╔══██╗ ╚══██╔══╝██╔════╝██╔══██╗████╗ ████║██║████╗ ██║██╔══██╗██║ ██║ ██╔══██╗██╔══██╗ +// ██║ ██║██║ ██║ ██║ ██║██║ ██║██║ ██║ ██║ █████╗ ██████╔╝██╔████╔██║██║██╔██╗ ██║███████║██║ ██║ ███████║██████╔╝ +// ██║▄▄ ██║██║ ██║ ██║ ██║██║ ██║██║ ██║ ██║ ██╔══╝ ██╔══██╗██║╚██╔╝██║██║██║╚██╗██║██╔══██║██║ ██║ ██╔══██║██╔══██╗ +// ╚██████╔╝╚██████╗███████╗╚██████╔╝╚██████╔╝██████╔╝ ██║ ███████╗██║ ██║██║ ╚═╝ ██║██║██║ ╚████║██║ ██║███████╗ ███████╗██║ +// ██║██████╔╝ +// ╚══▀▀═╝ ╚═════╝╚══════╝ ╚═════╝ ╚═════╝ ╚═════╝ ╚═╝ ╚══════╝╚═╝ ╚═╝╚═╝ ╚═╝╚═╝╚═╝ ╚═══╝╚═╝ ╚═╝╚══════╝ ╚══════╝╚═╝ ╚═╝╚═════╝ +// +// +// _ __ _ _ +// (_) / _| | | | | +// ___ ___ _ ____ ___ ___ ___ | |_ ___ _ __ __| | _____ _____| | ___ _ __ ___ _ +// __ ___ +// / __|/ _ \ '__\ \ / / |/ __/ _ \ | _/ _ \| '__| / _` |/ _ \ \ / / _ \ |/ _ \| '_ \ / _ \ +// '__/ __| +// \__ \ __/ | \ V /| | (_| __/ | || (_) | | | (_| | __/\ V / __/ | (_) | |_) | __/ +// | \__ +// |___/\___|_| \_/ |_|\___\___| |_| \___/|_| \__,_|\___| \_/ \___|_|\___/| .__/ +// \___|_| |___/ +// ______ ______ ______ ______ ______ ______ ______ ______ | | +// |______|______|______|______|______|______|______|______| |_| +// + +#import "QCloudCOSTransferMangerService.h" +#import +#import + +#import "QCloudPutObjectRequest.h" +#import "QCloudInitiateMultipartUploadRequest.h" +#import "QCloudUploadPartRequest.h" +#import "QCloudCompleteMultipartUploadRequest.h" +#import "QCloudCOSXMLService.h" +#import "QCloudCOSXMLUploadObjectRequest.h" +#import "QCloudCOSXMLUploadObjectRequest_Private.h" +#import "QCloudCOSXMLDownloadObjectRequest.h" +#import "QCloudCOSXMLCopyObjectRequest.h" +QCloudThreadSafeMutableDictionary *QCloudCOSTransferMangerServiceCache() { + static QCloudThreadSafeMutableDictionary *CloudcostransfermangerService = nil; + static dispatch_once_t onceToken; + dispatch_once(&onceToken, ^{ + CloudcostransfermangerService = [QCloudThreadSafeMutableDictionary new]; + }); + return CloudcostransfermangerService; +} + +@interface QCloudCOSTransferMangerService () +@property (nonatomic, strong, readonly) QCloudOperationQueue *uploadFileQueue; +@end + +@implementation QCloudCOSTransferMangerService +static QCloudCOSTransferMangerService *COSTransferMangerService = nil; + ++ (QCloudCOSTransferMangerService *)defaultCOSTransferManager { + @synchronized(self) { + if (!COSTransferMangerService) { + @throw [NSException exceptionWithName:QCloudErrorDomain reason:@"您没有配置默认的OCR服务配置,请配置之后再调用该方法" userInfo:nil]; + } + return COSTransferMangerService; + } +} + ++ (QCloudCOSTransferMangerService *)registerDefaultCOSTransferMangerWithConfiguration:(QCloudServiceConfiguration *)configuration { + @synchronized(self) { + if(!COSTransferMangerService){ + COSTransferMangerService = [[QCloudCOSTransferMangerService alloc] initWithConfiguration:configuration]; + } + } + return COSTransferMangerService; +} + ++ (QCloudCOSTransferMangerService *)costransfermangerServiceForKey:(NSString *)key { + QCloudCOSTransferMangerService *costransfermangerService = [QCloudCOSTransferMangerServiceCache() objectForKey:key]; + if (!costransfermangerService) { + @throw [NSException exceptionWithName:QCloudErrorDomain + reason:[NSString stringWithFormat:@"您没有配置Key为%@的OCR服务配置,请配置之后再调用该方法", key] + userInfo:nil]; + } + return costransfermangerService; +} + ++ (QCloudCOSTransferMangerService *)registerCOSTransferMangerWithConfiguration:(QCloudServiceConfiguration *)configuration withKey:(NSString *)key; +{ + QCloudCOSTransferMangerService * costransfermangerService = [QCloudCOSTransferMangerServiceCache() objectForKey:key]; + if(!costransfermangerService){ + costransfermangerService = [[QCloudCOSTransferMangerService alloc] initWithConfiguration:configuration]; + [QCloudCOSTransferMangerServiceCache() setObject:costransfermangerService forKey:key]; + } + return costransfermangerService; +} + +- (instancetype)initWithConfiguration:(QCloudServiceConfiguration *)configuration { + self = [super initWithConfiguration:configuration]; + if (!self) { + return self; + } + _cosService = [[QCloudCOSXMLService alloc] initWithConfiguration:configuration]; + _uploadFileQueue = [QCloudOperationQueue new]; + _uploadFileQueue.maxConcurrentCountLimit = [QCloudHTTPSessionManager shareClient].maxConcurrentCountLimit; + _uploadFileQueue.customConcurrentCount = [QCloudHTTPSessionManager shareClient].customConcurrentCount; + return self; +} + +- (void)UploadObject:(QCloudCOSXMLUploadObjectRequest *)request { + request.transferManager = self; + if (request.networkType != QCloudRequestNetworkNone) { + request.enableQuic = request.networkType == QCloudRequestNetworkQuic; + }else{ + request.enableQuic = self.configuration.enableQuic; + } + QCloudLogDebugP(@"Upload",@"UploadObject set transferManager %@", request.transferManager); + QCloudFakeRequestOperation *operation = [[QCloudFakeRequestOperation alloc] initWithRequest:request]; + [self.uploadFileQueue addOpreation:operation]; +} + +- (void)CopyObject:(QCloudCOSXMLCopyObjectRequest *)request { + request.transferManager = self; + if (request.networkType != QCloudRequestNetworkNone) { + request.enableQuic = request.networkType == QCloudRequestNetworkQuic; + }else{ + request.enableQuic = self.configuration.enableQuic; + } + QCloudFakeRequestOperation *operation = [[QCloudFakeRequestOperation alloc] initWithRequest:request]; + [self.uploadFileQueue addOpreation:operation]; +} + +- (void)DownloadObject:(QCloudCOSXMLDownloadObjectRequest *)request { + request.transferManager = self; + if (request.networkType != QCloudRequestNetworkNone) { + request.enableQuic = request.networkType == QCloudRequestNetworkQuic; + }else{ + request.enableQuic = self.configuration.enableQuic; + } + QCloudFakeRequestOperation *operation = [[QCloudFakeRequestOperation alloc] initWithRequest:request]; + [self.uploadFileQueue addOpreation:operation]; +} +#pragma mark - UIApplicationDelegate interceptor + ++ (BOOL)hasTransferMangerServiceForKey:(NSString *)key { + if (nil == [QCloudCOSTransferMangerServiceCache() objectForKey:key]) { + return NO; + } else { + return YES; + } +} + ++ (void)removeTransferMangerServiceWithKey:(NSString *)key { + [QCloudCOSTransferMangerServiceCache() removeObjectForKey:key]; +} + +@end diff --git a/Pods/QCloudCOSXML/QCloudCOSXML/Classes/Transfer/QCloudCOSXMLService+Transfer.h b/Pods/QCloudCOSXML/QCloudCOSXML/Classes/Transfer/QCloudCOSXMLService+Transfer.h new file mode 100644 index 0000000..050c6f4 --- /dev/null +++ b/Pods/QCloudCOSXML/QCloudCOSXML/Classes/Transfer/QCloudCOSXMLService+Transfer.h @@ -0,0 +1,400 @@ +// +// QCloudCOSXMLService+Transfer.h +// QCloudCOSXML +// +// Created by erichmzhang(张恒铭) on 07/12/2017. +// + +#import +#import "QCloudCOSXMLService.h" +@class QCloudPutObjectRequest; +@class QCloudGetObjectRequest; +@class QCloudInitiateMultipartUploadRequest; +@class QCloudUploadPartRequest; +@class QCloudListMultipartRequest; +@class QCloudCompleteMultipartUploadRequest; +@class QCloudAbortMultipfartUploadRequest; +@class QCloudHeadObjectRequest; +@class QCloudPutObjectCopyRequest; +@class QCloudUploadPartCopyRequest; +@class QCloudPutObjectWatermarkRequest; + +NS_ASSUME_NONNULL_BEGIN +@interface QCloudCOSXMLService (Transfer) +/** + 简单上传的方法. + + 简单上传主要适用于在单个请求中上传一个小于 5 GB 大小的对象. 对于大于 5 GB 的对象(或者在高带宽或弱网络环境中) + 优先使用分片上传的方式 (https://cloud.tencent.com/document/product/436/14112). + + 关于简单上传的具体描述,请查看 https://cloud.tencent.com/document/product/436/14113. + + 关于简单上传接口的具体描述,请查看 https://cloud.tencent.com/document/product/436/7749. + + cos iOS SDK 中简单上传请求的方法具体步骤如下: + + 1. 实例化 QCloudPutObjectRequest,填入需要的参数。 + + 2. 调用 QCloudCOSXMLService 对象中的 PutObject 方法发出请求。 + + 3. 从回调的 finishBlock 中的 outputObject 获取具体内容。 + + ### 示例 + + @code + + QCloudPutObjectRequest* put = [QCloudPutObjectRequest new]; + put.object = @"object-name"; + put.bucket = @"bucket-12345678"; + put.body = [@"testFileContent" dataUsingEncoding:NSUTF8StringEncoding]; + [put setFinishBlock:^(id outputObject, NSError *error) { + //完成回调 + if (nil == error) { + //成功 + } + }]; + [[QCloudCOSXMLService defaultCOSXML] PutObject:put]; + + */ +- (void)PutObject:(QCloudPutObjectRequest *)request; + +/** + 下载 COS 对象的方法. + + 可以直接发起 GET 请求获取 COS 中完整的对象数据, 或者在 GET 请求 中传入 Range 请求头部获取对象的部分内容. + 获取COS 对象的同时,对象的元数据将会作为 HTTP 响应头部随对象内容一同返回,COS 支持GET + 请求时 使用 URL 参数的方式覆盖响应的部分元数据值,例如覆盖 Content-iDisposition 的响应值. + + 关于获取 COS 对象的具体描述,请查看 https://cloud.tencent.com/document/product/436/14115. + + 关于获取 COS 对象的接口描述,请查看 https://cloud.tencent.com/document/product/436/7753. + + cos iOS SDK 中获取 COS 对象请求的方法具体步骤如下: + + 1. 实例化 QCloudGetObjectRequest,填入需要的参数。 + + 2. 调用 QCloudCOSXMLService 对象中的 GetObject 方法发出请求。 + + 3. 从回调的 finishBlock 中的 outputObject 获取具体内容。 + + ### 示例 + + @code + + QCloudGetObjectRequest* request = [[QCloudGetObjectRequest alloc] init]; + request.bucket = @"bucketName"; //存储桶名称(cos v5 的 bucket格式为:xxx-appid, 如 test-1253960454) + request.object = @"objectName";; + [request setFinishBlock:^(id outputObject, NSError *error) { + //additional actions after finishing + }]; + [[QCloudCOSXMLService defaultCOSXML] GetObject:request]; + + */ +- (void)GetObject:(QCloudGetObjectRequest *)request; + +/** + 初始化分块上传的方法. + + 使用分块上传对象时,首先要进行初始化分片上传操作,获取对应分块上传的 uploadId,用于后续上传操 作. + 分块上传适合于在弱网络或高带宽环境下上传较大的对象.SDK 支持自行切分对象并分别调用uploadPart(UploadPartRequest) + 或者uploadPartAsync(UploadPartRequest, CosXmlResultListener)上传各 个分块. + + 关于分块上传的描述,请查看 https://cloud.tencent.com/document/product/436/14112. + + 关于初始化分块上传的描述,请查看 https://cloud.tencent.com/document/product/436/7746. + + cos iOS SDK 中初始化分块上传请求的方法具体步骤如下: + + 1. 实例化 QCloudInitiateMultipartUploadRequest,填入需要的参数。 + + 2. 调用 QCloudCOSXMLService 对象中的 InitiateMultipartUpload 方法发出请求。 + + 3. 从回调的 finishBlock 中的获取具体内容。 + + ### 示例 + + @code + + QCloudInitiateMultipartUploadRequest* initrequest = [QCloudInitiateMultipartUploadRequest new]; + initrequest.bucket = @"bucketName"; //存储桶名称(cos v5 的 bucket格式为:xxx-appid, 如 test-1253960454) + initrequest.object = @"objectName" + + __block QCloudInitiateMultipartUploadResult* initResult; + [initrequest setFinishBlock:^(QCloudInitiateMultipartUploadResult* outputObject, NSError *error) { + initResult = outputObject; + }]; + [[QCloudCOSXMLService defaultCOSXML] InitiateMultipartUpload:initrequest]; + + + */ + +- (void)InitiateMultipartUpload:(QCloudInitiateMultipartUploadRequest *)request; + +/** + 上传一个分片块的方法. + + 使用分块上传时,可将对象切分成一个个分块的方式上传到 COS,每个分块上传需要携带分块号(partNumber) + 和 uploadId(initMultipartUpload(InitMultipartUploadRequest)), 每个分块大小为 1 MB 到 5 GB , + 最后一个分块可以小于 1 MB, 若传入 uploadId 和 partNumber都相同, 后传入的块将覆盖之前传入的块,且支持乱序上传. + + 关于分块上传的描述,请查看 https://cloud.tencent.com/document/product/436/14112. + + 关于上传一个对象的分块接口的描述,请查看 https://cloud.tencent.com/document/product/436/7750. + + cos iOS SDK 中上传一个对象某个分片块请求的方法具体步骤如下: + + 1. 实例化 QCloudUploadPartRequest,填入需要的参数。 + + 2. 调用 QCloudCOSXMLService 对象中的 UploadPart 方法发出请求。 + + 3. 从回调的 finishBlock 中的 QCloudUploadPartResult 获取具体内容。 + + ### 示例 + + @code + + QCloudUploadPartRequest *partRequest = [QCloudUploadPartRequest new]; + partRequest.bucket = @"bucketName"; + partRequest.object = @"object"; + partRequest.uploadId = @"uploadId"; //标识本次分块上传的 ID; + 使用 Initiate Multipart Upload 接口初始化分片上传时会得到一个 uploadId,该 ID 不但唯一标识这一分块数据, + 也标识了这分块数据在整个文件内的相对位置 + partRequest.partNumber = 1; //标识本次分块上传的编号 + [partRequest setFinishBlock:^(QCloudUploadPartResult * _Nonnull result, NSError * _Nonnull error) { + }]; + [[QCloudCOSXMLService defaultCOSXML]UploadPart:partRequest]; + + */ +- (void)UploadPart:(QCloudUploadPartRequest *)request; +/** + 查询特定分块上传中的已上传的块的方法. + + COS 支持查询特定分块上传中的已上传的块, 即可以 罗列出指定 UploadId 所属的所有已上传成功的分块. 因此,基于此可以完成续传功能. + + 关于分块上传的描述,请查看 https://cloud.tencent.com/document/product/436/14112, + + 关于查询特定分块上传中的已上传块接口的描述,请查看 https://cloud.tencent.com/document/product/436/7747. + + cos iOS SDK 中查询特定分块上传中的已上传块请求的方法具体步骤如下: + + 1. 实例化 QCloudListMultipartRequest,填入需要的参数。 + + 2. 调用 QCloudCOSXMLService 对象中的 ListMultipart 方法发出请求。 + + 3. 从回调的 finishBlock 中的 QCloudListPartsResult 获取具体内容。 + + ### 示例 + + @code + + QCloudListMultipartRequest* request = [[QCloudListMultipartRequest alloc] init]; + request.bucket = @"bucketName"; //存储桶名称(cos v5 的 bucket格式为:xxx-appid, 如 test-1253960454) + request.object = @"objectName"; + request.uploadId = @"uploadID"; + [request setFinishBlock:^(QCloudListPartsResult * _Nonnull result, NSError * _Nonnull error) { + //additional actions after finishing + }]; + [[QCloudCOSXMLService defaultCOSXML] ListMultipart:request]; + + */ +- (void)ListMultipart:(QCloudListMultipartRequest *)request; + +/** + 完成整个分块上传的方法. + + 当使用分块上传(uploadPart(UploadPartRequest))完对象的所有块以后,必须调用该 + completeMultiUpload(CompleteMultiUploadRequest) 或者 + completeMultiUploadAsync(CompleteMultiUploadRequest, CosXmlResultListener) + 来完成整个文件的分块上传.且在该请求的 Body 中需要给出每一个块的 PartNumber 和 ETag,用来校验块的准 确性. + + 分块上传适合于在弱网络或高带宽环境下上传较大的对象.SDK 支持自行切分对象并分别调用uploadPart(UploadPartRequest)上传各 个分块. + + 关于分块上传的描述,请查看 https://cloud.tencent.com/document/product/436/14112. + + 关于完成整个分片上传接口的描述,请查看 https://cloud.tencent.com/document/product/436/7742. + + cos iOS SDK 中完成整个分块上传请求的同步方法具体步骤如下: + + 1. 实例化 QCloudCompleteMultipartUploadRequest,填入需要的参数。 + + 2. 调用 QCloudCOSXMLService 对象中的 CompleteMultipartUpload 方法发出请求。 + + 3. 从回调的 finishBlock 中的 QCloudUploadObjectResult 获取具体内容。 + + ### 示例 + + @code + + QCloudCompleteMultipartUploadRequest *completeRequst = [QCloudCompleteMultipartUploadRequest new]; + completeRequst.bucket = @"bucketName"; + completeRequst.object = @"objectName"; + completeRequst.uploadId = @"uploadId"; //本次分片上传的UploadID + [completeRequst setFinishBlock:^(QCloudUploadObjectResult * _Nonnull result, NSError * _Nonnull error) { + + }]; + [[QCloudCOSXMLService defaultCOSXML] CompleteMultipartUpload:completeRequst]; + + */ +- (void)CompleteMultipartUpload:(QCloudCompleteMultipartUploadRequest *)request; +/** + 舍弃一个分块上传且删除已上传的分片块的方法. + + COS 支持舍弃一个分块上传且删除已上传的分片块. 注意,已上传但是未终止的分片块会占用存储空间进 + 而产生存储费用.因此,建议及时完成分块上传 或者舍弃分块上传. + + 关于分块上传的具体描述,请查看 https://cloud.tencent.com/document/product/436/14112. + + 关于舍弃一个分块上传且删除已上传的分片块接口的描述,请查看 https://cloud.tencent.com/document/product/436/7740. + + cos iOS SDK 中舍弃一个分块上传且删除已上传的分片块请求的方法具体步骤如下: + + 1. 实例化 QCloudAbortMultipfartUploadRequest,填入需要的参数。 + + 2. 调用 QCloudCOSXMLService 对象中的 AbortMultipfartUpload 方法发出请求。 + + 3. 从回调的 finishBlock 中的 outputObject 获取具体内容。 + + ### 示例 + + @code + + QCloudAbortMultipfartUploadRequest *abortRequest = [QCloudAbortMultipfartUploadRequest new]; + abortRequest.bucket = @"bucketName"; ////存储桶名称(cos v5 的 bucket格式为:xxx-appid, 如 test-1253960454) + abortRequest.object = [[QCloudCOSXMLTestUtility sharedInstance]createCanbeDeleteTestObject]; + abortRequest.uploadId = @"uploadId"; + [abortRequest setFinishBlock:^(id outputObject, NSError *error) { + //additional actions after finishing + }]; + [[QCloudCOSXMLService defaultCOSXML]AbortMultipfartUpload:abortRequest]; + + */ +- (void)AbortMultipfartUpload:(QCloudAbortMultipfartUploadRequest *)request; +/** + 获取 COS 对象的元数据信息(meta data)的方法. + + 获取 COS 对象的元数据信息,需要与 Get 的权限一致.且请求是不返回消息体的.若请求中需要设置 + If-Modified-Since 头部,则统一采用 GMT(RFC822) 时间格式,例如:Tue, 22 Oct 2017 01:35:21 GMT. + 如果对象不存在,则 返回404. + + 关于获取 COS 对象的元数据信息接口的具体描述,请查看https://cloud.tencent.com/document/product/436/7745. + + cos iOS SDK 中获取 COS 对象的元数据信息的方法具体步骤如下: + + 1. 实例化 QCloudHeadObjectRequest,填入需要的参数。 + + 2. 调用 QCloudCOSXMLService 对象中的 HeadObject 方法发出请求。 + + 3. 从回调的 finishBlock 中的获取具体内容。 + + ### 示例 + + @code + + QCloudHeadObjectRequest* headerRequest = [QCloudHeadObjectRequest new]; + //存储桶名称(cos v5 的 bucket格式为:xxx-appid, 如 test-1253960454) + headerRequest.bucket = @"bucketName"; + headerRequest.object = @"objectName"; + __block id resultError; + [headerRequest setFinishBlock:^(NSDictionary* result, NSError *error) { + resultError = error; + }]; + + [[QCloudCOSXMLService defaultCOSXML] HeadObject:headerRequest]; + + */ +- (void)HeadObject:(QCloudHeadObjectRequest *)request; +/** + 简单复制对象的方法. + + COS 中复制对象可以完成如下功能: + + 创建一个新的对象副本. + + 复制对象并更名,删除原始对象,实现重命名 + + 修改对象的存储类型,在复制时选择相同的源和目标对象键,修改存储类型. + + 在不同的腾讯云 COS 地域复制对象. + + 修改对象的元数据,在复制时选择相同的源和目标对象键,并修改其中的元数据,复制对象时,默认将继承原对象的元数据, + 但创建日期将会按新对象的时间计算. + + 当复制的对象小于等于 5 GB ,可以使用简单复制(https://cloud.tencent.com/document/product/436/14117). + + 当复制对象超过 5 GB 时,必须使用分块复制(https://cloud.tencent.com/document/product/436/14118 ) 来实现复制. + + 关于简单复制接口的具体描述,请查看https://cloud.tencent.com/document/product/436/10881. + + cos iOS SDK 中简单复制对象的方法具体步骤如下: + + 1. 实例化 QCloudPutObjectCopyRequest,填入需要的参数。 + + 2. 调用 QCloudCOSXMLService 对象中的 PutObjectCopy 方法发出请求。 + + 3. 从回调的 finishBlock 中的 QCloudCopyObjectResult 获取具体内容。 + + ### 示例 + + @code + + QCloudPutObjectCopyRequest* request = [[QCloudPutObjectCopyRequest alloc] init]; + request.bucket = @"bucketName"; + request.object = @"objectName"; + request.objectCopySource = @"objectCopySource"; + + [request setFinishBlock:^(QCloudCopyObjectResult* result, NSError* error) { + }]; + [[QCloudCOSXMLService defaultCOSXML] PutObjectCopy:request]; + + */ +- (void)PutObjectCopy:(QCloudPutObjectCopyRequest *)request; + +/** + 分块复制的方法. + + COS 中复制对象可以完成如下功能: + + 创建一个新的对象副本. + + 复制对象并更名,删除原始对象,实现重命名 + + 修改对象的存储类型,在复制时选择相同的源和目标对象键,修改存储类型. + + 在不同的腾讯云 COS 地域复制对象. + + 修改对象的元数据,在复制时选择相同的源和目标对象键,并修改其中的元数据,复制对象时,默认将继承原对象的元数据, + 但创建日期将会按新对象的时间计算. + + 当复制的对象小于等于 5 GB ,可以使用简单复制(https://cloud.tencent.com/document/product/436/14117). + + 当复制对象超过 5 GB 时,必须使用分块复制(https://cloud.tencent.com/document/product/436/14118 ) 来实现复制. + + 关于分块复制接口的具体描述,请查看https://cloud.tencent.com/document/product/436/8287. + + cos iOS SDK 中分块复制的方法具体步骤如下: + + 1. 实例化 QCloudUploadPartCopyRequest,填入需要的参数。 + + 2. 调用 QCloudCOSXMLService 对象中的 UploadPartCopy 方法发出请求。 + + 3. 从回调的 finishBlock 中的 QCloudCopyObjectResult 获取具体内容。 + + ### 示例 + + @code + + QCloudUploadPartCopyRequest* request = [[QCloudUploadPartCopyRequest alloc] init]; + request.bucket = @"bucketName"; + request.object = @"objectName"; + request.source = @"objectCopySource"; // 源文件 URL 路径,可以通过 versionid 子资源指定历史版本 + request.uploadID = @"uploadID"; // 在初始化分块上传的响应中,会返回一个唯一的描述符(upload ID) + request.partNumber = 1; // 标志当前分块的序号 + [request setFinishBlock:^(QCloudCopyObjectResult* result, NSError* error) { + }]; + [[QCloudCOSXMLService defaultCOSXML]UploadPartCopy:request]; + + */ +- (void)UploadPartCopy:(QCloudUploadPartCopyRequest *)request; + +@end +NS_ASSUME_NONNULL_END diff --git a/Pods/QCloudCOSXML/QCloudCOSXML/Classes/Transfer/QCloudCOSXMLService+Transfer.m b/Pods/QCloudCOSXML/QCloudCOSXML/Classes/Transfer/QCloudCOSXMLService+Transfer.m new file mode 100644 index 0000000..539c221 --- /dev/null +++ b/Pods/QCloudCOSXML/QCloudCOSXML/Classes/Transfer/QCloudCOSXMLService+Transfer.m @@ -0,0 +1,59 @@ +// +// QCloudCOSXMLService+Transfer.m +// QCloudCOSXML +// +// Created by erichmzhang(张恒铭) on 07/12/2017. +// + +#import "QCloudCOSXMLService+Transfer.h" +#import "QCloudPutObjectRequest.h" +#import "QCloudGetObjectRequest.h" +#import "QCloudInitiateMultipartUploadRequest.h" +#import "QCloudUploadPartRequest.h" +#import "QCloudCompleteMultipartUploadRequest.h" +#import "QCloudAbortMultipfartUploadRequest.h" +#import "QCloudListMultipartRequest.h" +#import "QCloudHeadObjectRequest.h" +#import "QCloudUploadPartCopyRequest.h" +#import "QCloudPutObjectCopyRequest.h" + + +@implementation QCloudCOSXMLService (Transfer) + +- (void)PutObject:(QCloudPutObjectRequest *)request { + [super performRequest:request]; +} + +- (void)GetObject:(QCloudGetObjectRequest *)request { + [super performRequest:request]; +} + +- (void)InitiateMultipartUpload:(QCloudInitiateMultipartUploadRequest *)request { + [super performRequest:request]; +} + +- (void)UploadPart:(QCloudUploadPartRequest *)request { + [super performRequest:request]; +} + +- (void)CompleteMultipartUpload:(QCloudCompleteMultipartUploadRequest *)request { + [super performRequest:request]; +} + +- (void)AbortMultipfartUpload:(QCloudAbortMultipfartUploadRequest *)request { + [super performRequest:request]; +} + +- (void)ListMultipart:(QCloudListMultipartRequest *)request { + [super performRequest:request]; +} +- (void)HeadObject:(QCloudHeadObjectRequest *)request { + [super performRequest:request]; +} +- (void)PutObjectCopy:(QCloudPutObjectCopyRequest *)request { + [super performRequest:request]; +} +- (void)UploadPartCopy:(QCloudUploadPartCopyRequest *)request { + [super performRequest:request]; +} +@end diff --git a/Pods/QCloudCOSXML/QCloudCOSXML/Classes/Transfer/QCloudCOSXMLTransfer.h b/Pods/QCloudCOSXML/QCloudCOSXML/Classes/Transfer/QCloudCOSXMLTransfer.h new file mode 100644 index 0000000..5cabe7e --- /dev/null +++ b/Pods/QCloudCOSXML/QCloudCOSXML/Classes/Transfer/QCloudCOSXMLTransfer.h @@ -0,0 +1,29 @@ +// +// QCloudCOSXMLTransfe.h +// QCloudCOSXML +// +// Created by erichmzhang(张恒铭) on 08/12/2017. +// + +#ifndef QCloudCOSXMLTransfe_h +#define QCloudCOSXMLTransfe_h + +#import "QCloudCOSXMLEndPoint.h" +#import "QCloudCOSXMLService+Transfer.h" +#import "QCloudCOSTransferMangerService.h" + +#import "QCloudCOSXMLUploadObjectRequest.h" +#import "QCloudCOSXMLUploadObjectRequest_Private.h" +#import "QCloudPutObjectRequest.h" +#import "QCloudGetObjectRequest.h" +#import "QCloudInitiateMultipartUploadRequest.h" +#import "QCloudUploadPartRequest.h" +#import "QCloudCompleteMultipartUploadRequest.h" +#import "QCloudAbortMultipfartUploadRequest.h" +#import "QCloudListMultipartRequest.h" +#import "QCloudHeadObjectRequest.h" +#import "QCloudPutObjectCopyRequest.h" +#import "QCloudUploadPartCopyRequest.h" + + +#endif /* QCloudCOSXMLTransfe_h */ diff --git a/Pods/QCloudCOSXML/QCloudCOSXML/Classes/Transfer/enum/QCloudCOSStorageClassEnum.h b/Pods/QCloudCOSXML/QCloudCOSXML/Classes/Transfer/enum/QCloudCOSStorageClassEnum.h new file mode 100644 index 0000000..b6891fb --- /dev/null +++ b/Pods/QCloudCOSXML/QCloudCOSXML/Classes/Transfer/enum/QCloudCOSStorageClassEnum.h @@ -0,0 +1,56 @@ +// +// COSStorageClass.h +// COSStorageClass +// +// Created by tencent +// Copyright (c) 2015年 tencent. All rights reserved. +// +// ██████╗ ██████╗██╗ ██████╗ ██╗ ██╗██████╗ ████████╗███████╗██████╗ ███╗ ███╗██╗███╗ ██╗ █████╗ ██╗ ██╗ █████╗ +// ██████╗ +// ██╔═══██╗██╔════╝██║ ██╔═══██╗██║ ██║██╔══██╗ ╚══██╔══╝██╔════╝██╔══██╗████╗ ████║██║████╗ ██║██╔══██╗██║ ██║ ██╔══██╗██╔══██╗ +// ██║ ██║██║ ██║ ██║ ██║██║ ██║██║ ██║ ██║ █████╗ ██████╔╝██╔████╔██║██║██╔██╗ ██║███████║██║ ██║ ███████║██████╔╝ +// ██║▄▄ ██║██║ ██║ ██║ ██║██║ ██║██║ ██║ ██║ ██╔══╝ ██╔══██╗██║╚██╔╝██║██║██║╚██╗██║██╔══██║██║ ██║ ██╔══██║██╔══██╗ +// ╚██████╔╝╚██████╗███████╗╚██████╔╝╚██████╔╝██████╔╝ ██║ ███████╗██║ ██║██║ ╚═╝ ██║██║██║ ╚████║██║ ██║███████╗ ███████╗██║ +// ██║██████╔╝ +// ╚══▀▀═╝ ╚═════╝╚══════╝ ╚═════╝ ╚═════╝ ╚═════╝ ╚═╝ ╚══════╝╚═╝ ╚═╝╚═╝ ╚═╝╚═╝╚═╝ ╚═══╝╚═╝ ╚═╝╚══════╝ ╚══════╝╚═╝ ╚═╝╚═════╝ +// +// +// _ __ _ _ +// (_) / _| | | | | +// ___ ___ _ ____ ___ ___ ___ | |_ ___ _ __ __| | _____ _____| | ___ _ __ ___ _ +// __ ___ +// / __|/ _ \ '__\ \ / / |/ __/ _ \ | _/ _ \| '__| / _` |/ _ \ \ / / _ \ |/ _ \| '_ \ / _ \ +// '__/ __| +// \__ \ __/ | \ V /| | (_| __/ | || (_) | | | (_| | __/\ V / __/ | (_) | |_) | __/ +// | \__ +// |___/\___|_| \_/ |_|\___\___| |_| \___/|_| \__,_|\___| \_/ \___|_|\___/| .__/ +// \___|_| |___/ +// ______ ______ ______ ______ ______ ______ ______ ______ | | +// |______|______|______|______|______|______|______|______| |_| +// + +#import +NS_ASSUME_NONNULL_BEGIN +/** + 存储类型枚举 + */ +typedef NS_ENUM(NSInteger, QCloudCOSStorageClass) { + + QCloudCOSStorageStandard = 0, + QCloudCOSStorageStandardIA = 1, + QCloudCOSStorageARCHIVE = 2, + QCloudCOSStorageMAZ_Standard = 3, + QCloudCOSStorageMAZ_StandardIA = 4, + //智能分层 + QCloudCOSStorageINTELLIGENT_TIERING = 5, + //多AZ智能分层 + QCloudCOSStorageMAZ_INTELLIGENT_TIERING = 6, + //深度归档 + QCloudCOSStorageDEEP_ARCHIVE = 7, + QCloudCOSStorageCOLD = 8, + QCloudCOSStorageMAZ_COLD = 9, +}; + +FOUNDATION_EXTERN QCloudCOSStorageClass QCloudCOSStorageClassDumpFromString(NSString *key); +FOUNDATION_EXTERN NSString *QCloudCOSStorageClassTransferToString(QCloudCOSStorageClass type); +NS_ASSUME_NONNULL_END diff --git a/Pods/QCloudCOSXML/QCloudCOSXML/Classes/Transfer/enum/QCloudCOSStorageClassEnum.m b/Pods/QCloudCOSXML/QCloudCOSXML/Classes/Transfer/enum/QCloudCOSStorageClassEnum.m new file mode 100644 index 0000000..d678821 --- /dev/null +++ b/Pods/QCloudCOSXML/QCloudCOSXML/Classes/Transfer/enum/QCloudCOSStorageClassEnum.m @@ -0,0 +1,71 @@ +// +// COSStorageClass.h +// COSStorageClass +// +// Created by tencent +// Copyright (c) 2015年 tencent. All rights reserved. +// + +#import "QCloudCOSStorageClassEnum.h" + +QCloudCOSStorageClass QCloudCOSStorageClassDumpFromString(NSString *key) { + if (NO) { + } else if ([key isEqualToString:@"STANDARD"]) { + return QCloudCOSStorageStandard; + } else if ([key isEqualToString:@"STANDARD_IA"]) { + return QCloudCOSStorageStandardIA; + } else if ([key isEqualToString:@"ARCHIVE"]) { + return QCloudCOSStorageARCHIVE; + } else if ([key isEqualToString:@"MAZ_STANDARD"]) { + return QCloudCOSStorageMAZ_Standard; + } else if ([key isEqualToString:@"MAZ_STANDARD_IA"]) { + return QCloudCOSStorageMAZ_StandardIA; + } else if ([key isEqualToString:@"INTELLIGENT_TIERING"]) { + return QCloudCOSStorageINTELLIGENT_TIERING; + } else if ([key isEqualToString:@"MAZ_INTELLIGENT_TIERING"]) { + return QCloudCOSStorageMAZ_INTELLIGENT_TIERING; + } else if ([key isEqualToString:@"DEEP_ARCHIVE"]) { + return QCloudCOSStorageDEEP_ARCHIVE; + } else if ([key isEqualToString:@"COLD"]) { + return QCloudCOSStorageCOLD; + } else if ([key isEqualToString:@"MAZ_COLD"]) { + return QCloudCOSStorageMAZ_COLD; + } + return 0; +} +NSString *QCloudCOSStorageClassTransferToString(QCloudCOSStorageClass type) { + switch (type) { + case QCloudCOSStorageStandard: { + return @"STANDARD"; + } + case QCloudCOSStorageStandardIA: { + return @"STANDARD_IA"; + } + case QCloudCOSStorageARCHIVE: { + return @"ARCHIVE"; + } + case QCloudCOSStorageMAZ_Standard: { + return @"MAZ_STANDARD"; + } + case QCloudCOSStorageMAZ_StandardIA: { + return @"MAZ_STANDARD_IA"; + } + case QCloudCOSStorageINTELLIGENT_TIERING: { + return @"INTELLIGENT_TIERING"; + } + case QCloudCOSStorageMAZ_INTELLIGENT_TIERING: { + return @"MAZ_INTELLIGENT_TIERING"; + } + case QCloudCOSStorageDEEP_ARCHIVE: { + return @"DEEP_ARCHIVE"; + } + case QCloudCOSStorageCOLD: { + return @"COLD"; + } + case QCloudCOSStorageMAZ_COLD: { + return @"MAZ_COLD"; + } + default: + return nil; + } +} diff --git a/Pods/QCloudCOSXML/QCloudCOSXML/Classes/Transfer/model/QCloudCompleteMultipartUploadInfo.h b/Pods/QCloudCOSXML/QCloudCOSXML/Classes/Transfer/model/QCloudCompleteMultipartUploadInfo.h new file mode 100644 index 0000000..d7415ea --- /dev/null +++ b/Pods/QCloudCOSXML/QCloudCOSXML/Classes/Transfer/model/QCloudCompleteMultipartUploadInfo.h @@ -0,0 +1,46 @@ +// +// QCloudCompleteMultipartUploadInfo.h +// QCloudCompleteMultipartUploadInfo +// +// Created by tencent +// Copyright (c) 2015年 tencent. All rights reserved. +// +// ██████╗ ██████╗██╗ ██████╗ ██╗ ██╗██████╗ ████████╗███████╗██████╗ ███╗ ███╗██╗███╗ ██╗ █████╗ ██╗ ██╗ █████╗ +// ██████╗ +// ██╔═══██╗██╔════╝██║ ██╔═══██╗██║ ██║██╔══██╗ ╚══██╔══╝██╔════╝██╔══██╗████╗ ████║██║████╗ ██║██╔══██╗██║ ██║ ██╔══██╗██╔══██╗ +// ██║ ██║██║ ██║ ██║ ██║██║ ██║██║ ██║ ██║ █████╗ ██████╔╝██╔████╔██║██║██╔██╗ ██║███████║██║ ██║ ███████║██████╔╝ +// ██║▄▄ ██║██║ ██║ ██║ ██║██║ ██║██║ ██║ ██║ ██╔══╝ ██╔══██╗██║╚██╔╝██║██║██║╚██╗██║██╔══██║██║ ██║ ██╔══██║██╔══██╗ +// ╚██████╔╝╚██████╗███████╗╚██████╔╝╚██████╔╝██████╔╝ ██║ ███████╗██║ ██║██║ ╚═╝ ██║██║██║ ╚████║██║ ██║███████╗ ███████╗██║ +// ██║██████╔╝ +// ╚══▀▀═╝ ╚═════╝╚══════╝ ╚═════╝ ╚═════╝ ╚═════╝ ╚═╝ ╚══════╝╚═╝ ╚═╝╚═╝ ╚═╝╚═╝╚═╝ ╚═══╝╚═╝ ╚═╝╚══════╝ ╚══════╝╚═╝ ╚═╝╚═════╝ +// +// +// _ __ _ _ +// (_) / _| | | | | +// ___ ___ _ ____ ___ ___ ___ | |_ ___ _ __ __| | _____ _____| | ___ _ __ ___ _ +// __ ___ +// / __|/ _ \ '__\ \ / / |/ __/ _ \ | _/ _ \| '__| / _` |/ _ \ \ / / _ \ |/ _ \| '_ \ / _ \ +// '__/ __| +// \__ \ __/ | \ V /| | (_| __/ | || (_) | | | (_| | __/\ V / __/ | (_) | |_) | __/ +// | \__ +// |___/\___|_| \_/ |_|\___\___| |_| \___/|_| \__,_|\___| \_/ \___|_|\___/| .__/ +// \___|_| |___/ +// ______ ______ ______ ______ ______ ______ ______ ______ | | +// |______|______|______|______|______|______|______|______| |_| +// + +#import +#import +#import "QCloudMultipartInfo.h" + +NS_ASSUME_NONNULL_BEGIN +/** +完成分片上传的信息 +*/ +@interface QCloudCompleteMultipartUploadInfo : NSObject +/** +用来说明本次分块上传中每个块的信息 +*/ +@property (strong, nonatomic) NSArray *parts; +@end +NS_ASSUME_NONNULL_END diff --git a/Pods/QCloudCOSXML/QCloudCOSXML/Classes/Transfer/model/QCloudCompleteMultipartUploadInfo.m b/Pods/QCloudCOSXML/QCloudCOSXML/Classes/Transfer/model/QCloudCompleteMultipartUploadInfo.m new file mode 100644 index 0000000..8f9957c --- /dev/null +++ b/Pods/QCloudCOSXML/QCloudCOSXML/Classes/Transfer/model/QCloudCompleteMultipartUploadInfo.m @@ -0,0 +1,82 @@ +// +// QCloudCompleteMultipartUploadInfo.m +// QCloudCompleteMultipartUploadInfo +// +// Created by tencent +// Copyright (c) 2015年 tencent. All rights reserved. +// +// ██████╗ ██████╗██╗ ██████╗ ██╗ ██╗██████╗ ████████╗███████╗██████╗ ███╗ ███╗██╗███╗ ██╗ █████╗ ██╗ ██╗ █████╗ +// ██████╗ +// ██╔═══██╗██╔════╝██║ ██╔═══██╗██║ ██║██╔══██╗ ╚══██╔══╝██╔════╝██╔══██╗████╗ ████║██║████╗ ██║██╔══██╗██║ ██║ ██╔══██╗██╔══██╗ +// ██║ ██║██║ ██║ ██║ ██║██║ ██║██║ ██║ ██║ █████╗ ██████╔╝██╔████╔██║██║██╔██╗ ██║███████║██║ ██║ ███████║██████╔╝ +// ██║▄▄ ██║██║ ██║ ██║ ██║██║ ██║██║ ██║ ██║ ██╔══╝ ██╔══██╗██║╚██╔╝██║██║██║╚██╗██║██╔══██║██║ ██║ ██╔══██║██╔══██╗ +// ╚██████╔╝╚██████╗███████╗╚██████╔╝╚██████╔╝██████╔╝ ██║ ███████╗██║ ██║██║ ╚═╝ ██║██║██║ ╚████║██║ ██║███████╗ ███████╗██║ +// ██║██████╔╝ +// ╚══▀▀═╝ ╚═════╝╚══════╝ ╚═════╝ ╚═════╝ ╚═════╝ ╚═╝ ╚══════╝╚═╝ ╚═╝╚═╝ ╚═╝╚═╝╚═╝ ╚═══╝╚═╝ ╚═╝╚══════╝ ╚══════╝╚═╝ ╚═╝╚═════╝ +// +// +// _ __ _ _ +// (_) / _| | | | | +// ___ ___ _ ____ ___ ___ ___ | |_ ___ _ __ __| | _____ _____| | ___ _ __ ___ _ +// __ ___ +// / __|/ _ \ '__\ \ / / |/ __/ _ \ | _/ _ \| '__| / _` |/ _ \ \ / / _ \ |/ _ \| '_ \ / _ \ +// '__/ __| +// \__ \ __/ | \ V /| | (_| __/ | || (_) | | | (_| | __/\ V / __/ | (_) | |_) | __/ +// | \__ +// |___/\___|_| \_/ |_|\___\___| |_| \___/|_| \__,_|\___| \_/ \___|_|\___/| .__/ +// \___|_| |___/ +// ______ ______ ______ ______ ______ ______ ______ ______ | | +// |______|______|______|______|______|______|______|______| |_| +// + +#import "QCloudCompleteMultipartUploadInfo.h" + +#import "QCloudMultipartInfo.h" + +NS_ASSUME_NONNULL_BEGIN +@implementation QCloudCompleteMultipartUploadInfo + ++ (NSDictionary *)modelContainerPropertyGenericClass { + return @{ + @"parts" : [QCloudMultipartInfo class], + }; +} + ++ (NSDictionary *)modelCustomPropertyMapper { + return @{ + @"parts" : @"Part", + }; +} + +- (BOOL)modelCustomTransformToDictionary:(NSMutableDictionary *)dic { + return YES; +} + +- (NSDictionary *)modelCustomWillTransformFromDictionary:(NSDictionary *)dic { + if (!dic) { + return dic; + } + NSMutableDictionary *transfromDic = [NSMutableDictionary dictionaryWithDictionary:dic]; + NSArray *transformArrayKeypaths = @[ + @"Part", + ]; + + for (NSString *keyPath in transformArrayKeypaths) { + id object = [dic valueForKeyPath:keyPath]; + if (!object) { + continue; + } + if ([object isKindOfClass:[NSNull class]]) { + continue; + } + if (![object isKindOfClass:[NSArray class]]) { + [transfromDic setValue:@[ object ] forKeyPath:keyPath]; + } + } + + return transfromDic; +} + +@end + +NS_ASSUME_NONNULL_END diff --git a/Pods/QCloudCOSXML/QCloudCOSXML/Classes/Transfer/model/QCloudCopyObjectResult.h b/Pods/QCloudCOSXML/QCloudCOSXML/Classes/Transfer/model/QCloudCopyObjectResult.h new file mode 100644 index 0000000..fa9eaf2 --- /dev/null +++ b/Pods/QCloudCOSXML/QCloudCOSXML/Classes/Transfer/model/QCloudCopyObjectResult.h @@ -0,0 +1,54 @@ +// +// QCloudCopyObjectResult.h +// QCloudCopyObjectResult +// +// Created by tencent +// Copyright (c) 2015年 tencent. All rights reserved. +// +// ██████╗ ██████╗██╗ ██████╗ ██╗ ██╗██████╗ ████████╗███████╗██████╗ ███╗ ███╗██╗███╗ ██╗ █████╗ ██╗ ██╗ █████╗ +// ██████╗ +// ██╔═══██╗██╔════╝██║ ██╔═══██╗██║ ██║██╔══██╗ ╚══██╔══╝██╔════╝██╔══██╗████╗ ████║██║████╗ ██║██╔══██╗██║ ██║ ██╔══██╗██╔══██╗ +// ██║ ██║██║ ██║ ██║ ██║██║ ██║██║ ██║ ██║ █████╗ ██████╔╝██╔████╔██║██║██╔██╗ ██║███████║██║ ██║ ███████║██████╔╝ +// ██║▄▄ ██║██║ ██║ ██║ ██║██║ ██║██║ ██║ ██║ ██╔══╝ ██╔══██╗██║╚██╔╝██║██║██║╚██╗██║██╔══██║██║ ██║ ██╔══██║██╔══██╗ +// ╚██████╔╝╚██████╗███████╗╚██████╔╝╚██████╔╝██████╔╝ ██║ ███████╗██║ ██║██║ ╚═╝ ██║██║██║ ╚████║██║ ██║███████╗ ███████╗██║ +// ██║██████╔╝ +// ╚══▀▀═╝ ╚═════╝╚══════╝ ╚═════╝ ╚═════╝ ╚═════╝ ╚═╝ ╚══════╝╚═╝ ╚═╝╚═╝ ╚═╝╚═╝╚═╝ ╚═══╝╚═╝ ╚═╝╚══════╝ ╚══════╝╚═╝ ╚═╝╚═════╝ +// +// +// _ __ _ _ +// (_) / _| | | | | +// ___ ___ _ ____ ___ ___ ___ | |_ ___ _ __ __| | _____ _____| | ___ _ __ ___ _ +// __ ___ +// / __|/ _ \ '__\ \ / / |/ __/ _ \ | _/ _ \| '__| / _` |/ _ \ \ / / _ \ |/ _ \| '_ \ / _ \ +// '__/ __| +// \__ \ __/ | \ V /| | (_| __/ | || (_) | | | (_| | __/\ V / __/ | (_) | |_) | __/ +// | \__ +// |___/\___|_| \_/ |_|\___\___| |_| \___/|_| \__,_|\___| \_/ \___|_|\___/| .__/ +// \___|_| |___/ +// ______ ______ ______ ______ ______ ______ ______ ______ | | +// |______|______|______|______|______|______|______|______| |_| +// + +#import +#import + +NS_ASSUME_NONNULL_BEGIN + +/** + 文件复制完成返回结果 + */ +@interface QCloudCopyObjectResult : NSObject +/* +文件的 SHA-1 算法校验值。ETag 的值可以用于检查 Object 的内容是否发生变化。 +*/ +@property (strong, nonatomic) NSString *eTag; +/* +文件的最后修改时间,GMT格式 +*/ +@property (strong, nonatomic) NSString *lastModified; +/** +对象对应的Version ID(在开启了多版本的情况才有) +*/ +@property (strong, nonatomic) NSString *versionID; +@end +NS_ASSUME_NONNULL_END diff --git a/Pods/QCloudCOSXML/QCloudCOSXML/Classes/Transfer/model/QCloudCopyObjectResult.m b/Pods/QCloudCOSXML/QCloudCOSXML/Classes/Transfer/model/QCloudCopyObjectResult.m new file mode 100644 index 0000000..10d96f2 --- /dev/null +++ b/Pods/QCloudCOSXML/QCloudCOSXML/Classes/Transfer/model/QCloudCopyObjectResult.m @@ -0,0 +1,60 @@ +// +// QCloudCopyObjectResult.m +// QCloudCopyObjectResult +// +// Created by tencent +// Copyright (c) 2015年 tencent. All rights reserved. +// +// ██████╗ ██████╗██╗ ██████╗ ██╗ ██╗██████╗ ████████╗███████╗██████╗ ███╗ ███╗██╗███╗ ██╗ █████╗ ██╗ ██╗ █████╗ +// ██████╗ +// ██╔═══██╗██╔════╝██║ ██╔═══██╗██║ ██║██╔══██╗ ╚══██╔══╝██╔════╝██╔══██╗████╗ ████║██║████╗ ██║██╔══██╗██║ ██║ ██╔══██╗██╔══██╗ +// ██║ ██║██║ ██║ ██║ ██║██║ ██║██║ ██║ ██║ █████╗ ██████╔╝██╔████╔██║██║██╔██╗ ██║███████║██║ ██║ ███████║██████╔╝ +// ██║▄▄ ██║██║ ██║ ██║ ██║██║ ██║██║ ██║ ██║ ██╔══╝ ██╔══██╗██║╚██╔╝██║██║██║╚██╗██║██╔══██║██║ ██║ ██╔══██║██╔══██╗ +// ╚██████╔╝╚██████╗███████╗╚██████╔╝╚██████╔╝██████╔╝ ██║ ███████╗██║ ██║██║ ╚═╝ ██║██║██║ ╚████║██║ ██║███████╗ ███████╗██║ +// ██║██████╔╝ +// ╚══▀▀═╝ ╚═════╝╚══════╝ ╚═════╝ ╚═════╝ ╚═════╝ ╚═╝ ╚══════╝╚═╝ ╚═╝╚═╝ ╚═╝╚═╝╚═╝ ╚═══╝╚═╝ ╚═╝╚══════╝ ╚══════╝╚═╝ ╚═╝╚═════╝ +// +// +// _ __ _ _ +// (_) / _| | | | | +// ___ ___ _ ____ ___ ___ ___ | |_ ___ _ __ __| | _____ _____| | ___ _ __ ___ _ +// __ ___ +// / __|/ _ \ '__\ \ / / |/ __/ _ \ | _/ _ \| '__| / _` |/ _ \ \ / / _ \ |/ _ \| '_ \ / _ \ +// '__/ __| +// \__ \ __/ | \ V /| | (_| __/ | || (_) | | | (_| | __/\ V / __/ | (_) | |_) | __/ +// | \__ +// |___/\___|_| \_/ |_|\___\___| |_| \___/|_| \__,_|\___| \_/ \___|_|\___/| .__/ +// \___|_| |___/ +// ______ ______ ______ ______ ______ ______ ______ ______ | | +// |______|______|______|______|______|______|______|______| |_| +// + +#import "QCloudCopyObjectResult.h" + +NS_ASSUME_NONNULL_BEGIN +@implementation QCloudCopyObjectResult + ++ (NSDictionary *)modelCustomPropertyMapper { + return @{ + @"eTag" : @"ETag", + @"lastModified" : @"LastModified", + @"versionID" : @"x-cos-version-id", + }; +} + +- (BOOL)modelCustomTransformToDictionary:(NSMutableDictionary *)dic { + return YES; +} + +- (NSDictionary *)modelCustomWillTransformFromDictionary:(NSDictionary *)dic { + if (!dic) { + return dic; + } + NSMutableDictionary *transfromDic = [NSMutableDictionary dictionaryWithDictionary:dic]; + + return transfromDic; +} + +@end + +NS_ASSUME_NONNULL_END diff --git a/Pods/QCloudCOSXML/QCloudCOSXML/Classes/Transfer/model/QCloudInitiateMultipartUploadResult.h b/Pods/QCloudCOSXML/QCloudCOSXML/Classes/Transfer/model/QCloudInitiateMultipartUploadResult.h new file mode 100644 index 0000000..177a5ad --- /dev/null +++ b/Pods/QCloudCOSXML/QCloudCOSXML/Classes/Transfer/model/QCloudInitiateMultipartUploadResult.h @@ -0,0 +1,53 @@ +// +// QCloudInitiateMultipartUploadResult.h +// QCloudInitiateMultipartUploadResult +// +// Created by tencent +// Copyright (c) 2015年 tencent. All rights reserved. +// +// ██████╗ ██████╗██╗ ██████╗ ██╗ ██╗██████╗ ████████╗███████╗██████╗ ███╗ ███╗██╗███╗ ██╗ █████╗ ██╗ ██╗ █████╗ +// ██████╗ +// ██╔═══██╗██╔════╝██║ ██╔═══██╗██║ ██║██╔══██╗ ╚══██╔══╝██╔════╝██╔══██╗████╗ ████║██║████╗ ██║██╔══██╗██║ ██║ ██╔══██╗██╔══██╗ +// ██║ ██║██║ ██║ ██║ ██║██║ ██║██║ ██║ ██║ █████╗ ██████╔╝██╔████╔██║██║██╔██╗ ██║███████║██║ ██║ ███████║██████╔╝ +// ██║▄▄ ██║██║ ██║ ██║ ██║██║ ██║██║ ██║ ██║ ██╔══╝ ██╔══██╗██║╚██╔╝██║██║██║╚██╗██║██╔══██║██║ ██║ ██╔══██║██╔══██╗ +// ╚██████╔╝╚██████╗███████╗╚██████╔╝╚██████╔╝██████╔╝ ██║ ███████╗██║ ██║██║ ╚═╝ ██║██║██║ ╚████║██║ ██║███████╗ ███████╗██║ +// ██║██████╔╝ +// ╚══▀▀═╝ ╚═════╝╚══════╝ ╚═════╝ ╚═════╝ ╚═════╝ ╚═╝ ╚══════╝╚═╝ ╚═╝╚═╝ ╚═╝╚═╝╚═╝ ╚═══╝╚═╝ ╚═╝╚══════╝ ╚══════╝╚═╝ ╚═╝╚═════╝ +// +// +// _ __ _ _ +// (_) / _| | | | | +// ___ ___ _ ____ ___ ___ ___ | |_ ___ _ __ __| | _____ _____| | ___ _ __ ___ _ +// __ ___ +// / __|/ _ \ '__\ \ / / |/ __/ _ \ | _/ _ \| '__| / _` |/ _ \ \ / / _ \ |/ _ \| '_ \ / _ \ +// '__/ __| +// \__ \ __/ | \ V /| | (_| __/ | || (_) | | | (_| | __/\ V / __/ | (_) | |_) | __/ +// | \__ +// |___/\___|_| \_/ |_|\___\___| |_| \___/|_| \__,_|\___| \_/ \___|_|\___/| .__/ +// \___|_| |___/ +// ______ ______ ______ ______ ______ ______ ______ ______ | | +// |______|______|______|______|______|______|______|______| |_| +// + +#import +#import + +NS_ASSUME_NONNULL_BEGIN +/** + 初始化分块上传结果信息 + */ +@interface QCloudInitiateMultipartUploadResult : NSObject +/** +存储桶名 +*/ +@property (strong, nonatomic) NSString *bucket; +/** +对象的名称 +*/ +@property (strong, nonatomic) NSString *key; +/** +在后续上传中使用的ID +*/ +@property (strong, nonatomic) NSString *uploadId; +@end +NS_ASSUME_NONNULL_END diff --git a/Pods/QCloudCOSXML/QCloudCOSXML/Classes/Transfer/model/QCloudInitiateMultipartUploadResult.m b/Pods/QCloudCOSXML/QCloudCOSXML/Classes/Transfer/model/QCloudInitiateMultipartUploadResult.m new file mode 100644 index 0000000..5b95ce8 --- /dev/null +++ b/Pods/QCloudCOSXML/QCloudCOSXML/Classes/Transfer/model/QCloudInitiateMultipartUploadResult.m @@ -0,0 +1,60 @@ +// +// QCloudInitiateMultipartUploadResult.m +// QCloudInitiateMultipartUploadResult +// +// Created by tencent +// Copyright (c) 2015年 tencent. All rights reserved. +// +// ██████╗ ██████╗██╗ ██████╗ ██╗ ██╗██████╗ ████████╗███████╗██████╗ ███╗ ███╗██╗███╗ ██╗ █████╗ ██╗ ██╗ █████╗ +// ██████╗ +// ██╔═══██╗██╔════╝██║ ██╔═══██╗██║ ██║██╔══██╗ ╚══██╔══╝██╔════╝██╔══██╗████╗ ████║██║████╗ ██║██╔══██╗██║ ██║ ██╔══██╗██╔══██╗ +// ██║ ██║██║ ██║ ██║ ██║██║ ██║██║ ██║ ██║ █████╗ ██████╔╝██╔████╔██║██║██╔██╗ ██║███████║██║ ██║ ███████║██████╔╝ +// ██║▄▄ ██║██║ ██║ ██║ ██║██║ ██║██║ ██║ ██║ ██╔══╝ ██╔══██╗██║╚██╔╝██║██║██║╚██╗██║██╔══██║██║ ██║ ██╔══██║██╔══██╗ +// ╚██████╔╝╚██████╗███████╗╚██████╔╝╚██████╔╝██████╔╝ ██║ ███████╗██║ ██║██║ ╚═╝ ██║██║██║ ╚████║██║ ██║███████╗ ███████╗██║ +// ██║██████╔╝ +// ╚══▀▀═╝ ╚═════╝╚══════╝ ╚═════╝ ╚═════╝ ╚═════╝ ╚═╝ ╚══════╝╚═╝ ╚═╝╚═╝ ╚═╝╚═╝╚═╝ ╚═══╝╚═╝ ╚═╝╚══════╝ ╚══════╝╚═╝ ╚═╝╚═════╝ +// +// +// _ __ _ _ +// (_) / _| | | | | +// ___ ___ _ ____ ___ ___ ___ | |_ ___ _ __ __| | _____ _____| | ___ _ __ ___ _ +// __ ___ +// / __|/ _ \ '__\ \ / / |/ __/ _ \ | _/ _ \| '__| / _` |/ _ \ \ / / _ \ |/ _ \| '_ \ / _ \ +// '__/ __| +// \__ \ __/ | \ V /| | (_| __/ | || (_) | | | (_| | __/\ V / __/ | (_) | |_) | __/ +// | \__ +// |___/\___|_| \_/ |_|\___\___| |_| \___/|_| \__,_|\___| \_/ \___|_|\___/| .__/ +// \___|_| |___/ +// ______ ______ ______ ______ ______ ______ ______ ______ | | +// |______|______|______|______|______|______|______|______| |_| +// + +#import "QCloudInitiateMultipartUploadResult.h" + +NS_ASSUME_NONNULL_BEGIN +@implementation QCloudInitiateMultipartUploadResult + ++ (NSDictionary *)modelCustomPropertyMapper { + return @{ + @"bucket" : @"Bucket", + @"key" : @"Key", + @"uploadId" : @"UploadId", + }; +} + +- (BOOL)modelCustomTransformToDictionary:(NSMutableDictionary *)dic { + return YES; +} + +- (NSDictionary *)modelCustomWillTransformFromDictionary:(NSDictionary *)dic { + if (!dic) { + return dic; + } + NSMutableDictionary *transfromDic = [NSMutableDictionary dictionaryWithDictionary:dic]; + + return transfromDic; +} + +@end + +NS_ASSUME_NONNULL_END diff --git a/Pods/QCloudCOSXML/QCloudCOSXML/Classes/Transfer/model/QCloudListPartsResult.h b/Pods/QCloudCOSXML/QCloudCOSXML/Classes/Transfer/model/QCloudListPartsResult.h new file mode 100644 index 0000000..7296411 --- /dev/null +++ b/Pods/QCloudCOSXML/QCloudCOSXML/Classes/Transfer/model/QCloudListPartsResult.h @@ -0,0 +1,93 @@ +// +// QCloudListPartsResult.h +// QCloudListPartsResult +// +// Created by tencent +// Copyright (c) 2015年 tencent. All rights reserved. +// +// ██████╗ ██████╗██╗ ██████╗ ██╗ ██╗██████╗ ████████╗███████╗██████╗ ███╗ ███╗██╗███╗ ██╗ █████╗ ██╗ ██╗ █████╗ +// ██████╗ +// ██╔═══██╗██╔════╝██║ ██╔═══██╗██║ ██║██╔══██╗ ╚══██╔══╝██╔════╝██╔══██╗████╗ ████║██║████╗ ██║██╔══██╗██║ ██║ ██╔══██╗██╔══██╗ +// ██║ ██║██║ ██║ ██║ ██║██║ ██║██║ ██║ ██║ █████╗ ██████╔╝██╔████╔██║██║██╔██╗ ██║███████║██║ ██║ ███████║██████╔╝ +// ██║▄▄ ██║██║ ██║ ██║ ██║██║ ██║██║ ██║ ██║ ██╔══╝ ██╔══██╗██║╚██╔╝██║██║██║╚██╗██║██╔══██║██║ ██║ ██╔══██║██╔══██╗ +// ╚██████╔╝╚██████╗███████╗╚██████╔╝╚██████╔╝██████╔╝ ██║ ███████╗██║ ██║██║ ╚═╝ ██║██║██║ ╚████║██║ ██║███████╗ ███████╗██║ +// ██║██████╔╝ +// ╚══▀▀═╝ ╚═════╝╚══════╝ ╚═════╝ ╚═════╝ ╚═════╝ ╚═╝ ╚══════╝╚═╝ ╚═╝╚═╝ ╚═╝╚═╝╚═╝ ╚═══╝╚═╝ ╚═╝╚══════╝ ╚══════╝╚═╝ ╚═╝╚═════╝ +// +// +// _ __ _ _ +// (_) / _| | | | | +// ___ ___ _ ____ ___ ___ ___ | |_ ___ _ __ __| | _____ _____| | ___ _ __ ___ _ +// __ ___ +// / __|/ _ \ '__\ \ / / |/ __/ _ \ | _/ _ \| '__| / _` |/ _ \ \ / / _ \ |/ _ \| '_ \ / _ \ +// '__/ __| +// \__ \ __/ | \ V /| | (_| __/ | || (_) | | | (_| | __/\ V / __/ | (_) | |_) | __/ +// | \__ +// |___/\___|_| \_/ |_|\___\___| |_| \___/|_| \__,_|\___| \_/ \___|_|\___/| .__/ +// \___|_| |___/ +// ______ ______ ______ ______ ______ ______ ______ ______ | | +// |______|______|______|______|______|______|______|______| |_| +// + +#import +#import +#import "QCloudCOSStorageClassEnum.h" +#import "QCloudMultipartUploadInitiator.h" +#import "QCloudMultipartUploadOwner.h" +#import "QCloudMultipartUploadPart.h" + +NS_ASSUME_NONNULL_BEGIN +/** + 分块上传中已经上传的数据块 + */ +@interface QCloudListPartsResult : NSObject +/** +存储桶名 +*/ +@property (strong, nonatomic) NSString *bucket; +/** +规定返回值的编码格式 +*/ +@property (strong, nonatomic) NSString *encodingType; +/** +对象的名称 +*/ +@property (strong, nonatomic) NSString *key; +/** +标识本次分块上传的uploadId +*/ +@property (strong, nonatomic) NSString *uploadId; +/** +用来表示这些分块的存储级别 +*/ +@property (assign, nonatomic) QCloudCOSStorageClass storageClass; +/** +默认以 UTF-8 二进制顺序列出条目,所有列出条目从 marker 开始 +*/ +@property (strong, nonatomic) NSString *partNumberMarker; +/** +假如返回条目被截断,则返回 NextMarker 就是下一个条目的起点 +*/ +@property (strong, nonatomic) NSString *nextNumberMarker; +/** +单次返回的最大条目数 +*/ +@property (strong, nonatomic) NSString *maxParts; +/** +返回条目是否被截断 +*/ +@property (assign, nonatomic) BOOL isTruncated; +/** +用来标识本次上传发起者的信息 +*/ +@property (strong, nonatomic) QCloudMultipartUploadInitiator *initiator; +/** +用来标识这些分块所有者的信息 +*/ +@property (strong, nonatomic) QCloudMultipartUploadOwner *owner; +/** +用来表示每一个块的信息 +*/ +@property (strong, nonatomic) NSArray *parts; +@end +NS_ASSUME_NONNULL_END diff --git a/Pods/QCloudCOSXML/QCloudCOSXML/Classes/Transfer/model/QCloudListPartsResult.m b/Pods/QCloudCOSXML/QCloudCOSXML/Classes/Transfer/model/QCloudListPartsResult.m new file mode 100644 index 0000000..a6b149e --- /dev/null +++ b/Pods/QCloudCOSXML/QCloudCOSXML/Classes/Transfer/model/QCloudListPartsResult.m @@ -0,0 +1,108 @@ +// +// QCloudListPartsResult.m +// QCloudListPartsResult +// +// Created by tencent +// Copyright (c) 2015年 tencent. All rights reserved. +// +// ██████╗ ██████╗██╗ ██████╗ ██╗ ██╗██████╗ ████████╗███████╗██████╗ ███╗ ███╗██╗███╗ ██╗ █████╗ ██╗ ██╗ █████╗ +// ██████╗ +// ██╔═══██╗██╔════╝██║ ██╔═══██╗██║ ██║██╔══██╗ ╚══██╔══╝██╔════╝██╔══██╗████╗ ████║██║████╗ ██║██╔══██╗██║ ██║ ██╔══██╗██╔══██╗ +// ██║ ██║██║ ██║ ██║ ██║██║ ██║██║ ██║ ██║ █████╗ ██████╔╝██╔████╔██║██║██╔██╗ ██║███████║██║ ██║ ███████║██████╔╝ +// ██║▄▄ ██║██║ ██║ ██║ ██║██║ ██║██║ ██║ ██║ ██╔══╝ ██╔══██╗██║╚██╔╝██║██║██║╚██╗██║██╔══██║██║ ██║ ██╔══██║██╔══██╗ +// ╚██████╔╝╚██████╗███████╗╚██████╔╝╚██████╔╝██████╔╝ ██║ ███████╗██║ ██║██║ ╚═╝ ██║██║██║ ╚████║██║ ██║███████╗ ███████╗██║ +// ██║██████╔╝ +// ╚══▀▀═╝ ╚═════╝╚══════╝ ╚═════╝ ╚═════╝ ╚═════╝ ╚═╝ ╚══════╝╚═╝ ╚═╝╚═╝ ╚═╝╚═╝╚═╝ ╚═══╝╚═╝ ╚═╝╚══════╝ ╚══════╝╚═╝ ╚═╝╚═════╝ +// +// +// _ __ _ _ +// (_) / _| | | | | +// ___ ___ _ ____ ___ ___ ___ | |_ ___ _ __ __| | _____ _____| | ___ _ __ ___ _ +// __ ___ +// / __|/ _ \ '__\ \ / / |/ __/ _ \ | _/ _ \| '__| / _` |/ _ \ \ / / _ \ |/ _ \| '_ \ / _ \ +// '__/ __| +// \__ \ __/ | \ V /| | (_| __/ | || (_) | | | (_| | __/\ V / __/ | (_) | |_) | __/ +// | \__ +// |___/\___|_| \_/ |_|\___\___| |_| \___/|_| \__,_|\___| \_/ \___|_|\___/| .__/ +// \___|_| |___/ +// ______ ______ ______ ______ ______ ______ ______ ______ | | +// |______|______|______|______|______|______|______|______| |_| +// + +#import "QCloudListPartsResult.h" + +#import "QCloudMultipartUploadInitiator.h" +#import "QCloudMultipartUploadOwner.h" +#import "QCloudMultipartUploadPart.h" + +NS_ASSUME_NONNULL_BEGIN +@implementation QCloudListPartsResult + ++ (NSDictionary *)modelContainerPropertyGenericClass { + return @{ + @"parts" : [QCloudMultipartUploadPart class], + }; +} + ++ (NSDictionary *)modelCustomPropertyMapper { + return @{ + @"bucket" : @"Bucket", + @"encodingType" : @"Encoding-type", + @"key" : @"Key", + @"uploadId" : @"UploadID", + @"storageClass" : @"StorageClass", + @"partNumberMarker" : @"PartNumberMarker", + @"nextNumberMarker" : @"NextPartNumberMarker", + @"maxParts" : @"MaxParts", + @"isTruncated" : @"IsTruncated", + @"initiator" : @"Initiator", + @"owner" : @"Owner", + @"parts" : @"Part", + }; +} + +- (BOOL)modelCustomTransformToDictionary:(NSMutableDictionary *)dic { + NSNumber *storageClass = dic[@"StorageClass"]; + if (storageClass) { + NSString *value = QCloudCOSStorageClassTransferToString([storageClass intValue]); + if (value) { + dic[@"StorageClass"] = value; + } + } + + return YES; +} + +- (NSDictionary *)modelCustomWillTransformFromDictionary:(NSDictionary *)dic { + if (!dic) { + return dic; + } + NSMutableDictionary *transfromDic = [NSMutableDictionary dictionaryWithDictionary:dic]; + NSArray *transformArrayKeypaths = @[ + @"Part", + ]; + + for (NSString *keyPath in transformArrayKeypaths) { + id object = [dic valueForKeyPath:keyPath]; + if (!object) { + continue; + } + if ([object isKindOfClass:[NSNull class]]) { + continue; + } + if (![object isKindOfClass:[NSArray class]]) { + [transfromDic setValue:@[ object ] forKeyPath:keyPath]; + } + } + + NSString *storageClass = transfromDic[@"StorageClass"]; + if (storageClass && [storageClass isKindOfClass:[NSString class]] && storageClass.length > 0) { + NSInteger value = QCloudCOSStorageClassDumpFromString(storageClass); + transfromDic[@"StorageClass"] = @(value); + } + return transfromDic; +} + +@end + +NS_ASSUME_NONNULL_END diff --git a/Pods/QCloudCOSXML/QCloudCOSXML/Classes/Transfer/model/QCloudMultipartInfo.h b/Pods/QCloudCOSXML/QCloudCOSXML/Classes/Transfer/model/QCloudMultipartInfo.h new file mode 100644 index 0000000..0a9df90 --- /dev/null +++ b/Pods/QCloudCOSXML/QCloudCOSXML/Classes/Transfer/model/QCloudMultipartInfo.h @@ -0,0 +1,49 @@ +// +// QCloudMultipartInfo.h +// QCloudMultipartInfo +// +// Created by tencent +// Copyright (c) 2015年 tencent. All rights reserved. +// +// ██████╗ ██████╗██╗ ██████╗ ██╗ ██╗██████╗ ████████╗███████╗██████╗ ███╗ ███╗██╗███╗ ██╗ █████╗ ██╗ ██╗ █████╗ +// ██████╗ +// ██╔═══██╗██╔════╝██║ ██╔═══██╗██║ ██║██╔══██╗ ╚══██╔══╝██╔════╝██╔══██╗████╗ ████║██║████╗ ██║██╔══██╗██║ ██║ ██╔══██╗██╔══██╗ +// ██║ ██║██║ ██║ ██║ ██║██║ ██║██║ ██║ ██║ █████╗ ██████╔╝██╔████╔██║██║██╔██╗ ██║███████║██║ ██║ ███████║██████╔╝ +// ██║▄▄ ██║██║ ██║ ██║ ██║██║ ██║██║ ██║ ██║ ██╔══╝ ██╔══██╗██║╚██╔╝██║██║██║╚██╗██║██╔══██║██║ ██║ ██╔══██║██╔══██╗ +// ╚██████╔╝╚██████╗███████╗╚██████╔╝╚██████╔╝██████╔╝ ██║ ███████╗██║ ██║██║ ╚═╝ ██║██║██║ ╚████║██║ ██║███████╗ ███████╗██║ +// ██║██████╔╝ +// ╚══▀▀═╝ ╚═════╝╚══════╝ ╚═════╝ ╚═════╝ ╚═════╝ ╚═╝ ╚══════╝╚═╝ ╚═╝╚═╝ ╚═╝╚═╝╚═╝ ╚═══╝╚═╝ ╚═╝╚══════╝ ╚══════╝╚═╝ ╚═╝╚═════╝ +// +// +// _ __ _ _ +// (_) / _| | | | | +// ___ ___ _ ____ ___ ___ ___ | |_ ___ _ __ __| | _____ _____| | ___ _ __ ___ _ +// __ ___ +// / __|/ _ \ '__\ \ / / |/ __/ _ \ | _/ _ \| '__| / _` |/ _ \ \ / / _ \ |/ _ \| '_ \ / _ \ +// '__/ __| +// \__ \ __/ | \ V /| | (_| __/ | || (_) | | | (_| | __/\ V / __/ | (_) | |_) | __/ +// | \__ +// |___/\___|_| \_/ |_|\___\___| |_| \___/|_| \__,_|\___| \_/ \___|_|\___/| .__/ +// \___|_| |___/ +// ______ ______ ______ ______ ______ ______ ______ ______ | | +// |______|______|______|______|______|______|______|______| |_| +// + +#import +#import + +NS_ASSUME_NONNULL_BEGIN +/** + 分块上传中每一个数据块信息 + */ +@interface QCloudMultipartInfo : NSObject +/** +块编号 +*/ +@property (strong, nonatomic) NSString *partNumber; +/** +每个块文件的MD5算法校验值 +*/ +@property (strong, nonatomic) NSString *eTag; +@end +NS_ASSUME_NONNULL_END diff --git a/Pods/QCloudCOSXML/QCloudCOSXML/Classes/Transfer/model/QCloudMultipartInfo.m b/Pods/QCloudCOSXML/QCloudCOSXML/Classes/Transfer/model/QCloudMultipartInfo.m new file mode 100644 index 0000000..66decf7 --- /dev/null +++ b/Pods/QCloudCOSXML/QCloudCOSXML/Classes/Transfer/model/QCloudMultipartInfo.m @@ -0,0 +1,59 @@ +// +// QCloudMultipartInfo.m +// QCloudMultipartInfo +// +// Created by tencent +// Copyright (c) 2015年 tencent. All rights reserved. +// +// ██████╗ ██████╗██╗ ██████╗ ██╗ ██╗██████╗ ████████╗███████╗██████╗ ███╗ ███╗██╗███╗ ██╗ █████╗ ██╗ ██╗ █████╗ +// ██████╗ +// ██╔═══██╗██╔════╝██║ ██╔═══██╗██║ ██║██╔══██╗ ╚══██╔══╝██╔════╝██╔══██╗████╗ ████║██║████╗ ██║██╔══██╗██║ ██║ ██╔══██╗██╔══██╗ +// ██║ ██║██║ ██║ ██║ ██║██║ ██║██║ ██║ ██║ █████╗ ██████╔╝██╔████╔██║██║██╔██╗ ██║███████║██║ ██║ ███████║██████╔╝ +// ██║▄▄ ██║██║ ██║ ██║ ██║██║ ██║██║ ██║ ██║ ██╔══╝ ██╔══██╗██║╚██╔╝██║██║██║╚██╗██║██╔══██║██║ ██║ ██╔══██║██╔══██╗ +// ╚██████╔╝╚██████╗███████╗╚██████╔╝╚██████╔╝██████╔╝ ██║ ███████╗██║ ██║██║ ╚═╝ ██║██║██║ ╚████║██║ ██║███████╗ ███████╗██║ +// ██║██████╔╝ +// ╚══▀▀═╝ ╚═════╝╚══════╝ ╚═════╝ ╚═════╝ ╚═════╝ ╚═╝ ╚══════╝╚═╝ ╚═╝╚═╝ ╚═╝╚═╝╚═╝ ╚═══╝╚═╝ ╚═╝╚══════╝ ╚══════╝╚═╝ ╚═╝╚═════╝ +// +// +// _ __ _ _ +// (_) / _| | | | | +// ___ ___ _ ____ ___ ___ ___ | |_ ___ _ __ __| | _____ _____| | ___ _ __ ___ _ +// __ ___ +// / __|/ _ \ '__\ \ / / |/ __/ _ \ | _/ _ \| '__| / _` |/ _ \ \ / / _ \ |/ _ \| '_ \ / _ \ +// '__/ __| +// \__ \ __/ | \ V /| | (_| __/ | || (_) | | | (_| | __/\ V / __/ | (_) | |_) | __/ +// | \__ +// |___/\___|_| \_/ |_|\___\___| |_| \___/|_| \__,_|\___| \_/ \___|_|\___/| .__/ +// \___|_| |___/ +// ______ ______ ______ ______ ______ ______ ______ ______ | | +// |______|______|______|______|______|______|______|______| |_| +// + +#import "QCloudMultipartInfo.h" + +NS_ASSUME_NONNULL_BEGIN +@implementation QCloudMultipartInfo + ++ (NSDictionary *)modelCustomPropertyMapper { + return @{ + @"partNumber" : @"PartNumber", + @"eTag" : @"ETag", + }; +} + +- (BOOL)modelCustomTransformToDictionary:(NSMutableDictionary *)dic { + return YES; +} + +- (NSDictionary *)modelCustomWillTransformFromDictionary:(NSDictionary *)dic { + if (!dic) { + return dic; + } + NSMutableDictionary *transfromDic = [NSMutableDictionary dictionaryWithDictionary:dic]; + + return transfromDic; +} + +@end + +NS_ASSUME_NONNULL_END diff --git a/Pods/QCloudCOSXML/QCloudCOSXML/Classes/Transfer/model/QCloudMultipartUploadInitiator.h b/Pods/QCloudCOSXML/QCloudCOSXML/Classes/Transfer/model/QCloudMultipartUploadInitiator.h new file mode 100644 index 0000000..22bac9b --- /dev/null +++ b/Pods/QCloudCOSXML/QCloudCOSXML/Classes/Transfer/model/QCloudMultipartUploadInitiator.h @@ -0,0 +1,51 @@ +// +// QCloudMultipartUploadInitiator.h +// QCloudMultipartUploadInitiator +// +// Created by tencent +// Copyright (c) 2015年 tencent. All rights reserved. +// +// ██████╗ ██████╗██╗ ██████╗ ██╗ ██╗██████╗ ████████╗███████╗██████╗ ███╗ ███╗██╗███╗ ██╗ █████╗ ██╗ ██╗ █████╗ +// ██████╗ +// ██╔═══██╗██╔════╝██║ ██╔═══██╗██║ ██║██╔══██╗ ╚══██╔══╝██╔════╝██╔══██╗████╗ ████║██║████╗ ██║██╔══██╗██║ ██║ ██╔══██╗██╔══██╗ +// ██║ ██║██║ ██║ ██║ ██║██║ ██║██║ ██║ ██║ █████╗ ██████╔╝██╔████╔██║██║██╔██╗ ██║███████║██║ ██║ ███████║██████╔╝ +// ██║▄▄ ██║██║ ██║ ██║ ██║██║ ██║██║ ██║ ██║ ██╔══╝ ██╔══██╗██║╚██╔╝██║██║██║╚██╗██║██╔══██║██║ ██║ ██╔══██║██╔══██╗ +// ╚██████╔╝╚██████╗███████╗╚██████╔╝╚██████╔╝██████╔╝ ██║ ███████╗██║ ██║██║ ╚═╝ ██║██║██║ ╚████║██║ ██║███████╗ ███████╗██║ +// ██║██████╔╝ +// ╚══▀▀═╝ ╚═════╝╚══════╝ ╚═════╝ ╚═════╝ ╚═════╝ ╚═╝ ╚══════╝╚═╝ ╚═╝╚═╝ ╚═╝╚═╝╚═╝ ╚═══╝╚═╝ ╚═╝╚══════╝ ╚══════╝╚═╝ ╚═╝╚═════╝ +// +// +// _ __ _ _ +// (_) / _| | | | | +// ___ ___ _ ____ ___ ___ ___ | |_ ___ _ __ __| | _____ _____| | ___ _ __ ___ _ +// __ ___ +// / __|/ _ \ '__\ \ / / |/ __/ _ \ | _/ _ \| '__| / _` |/ _ \ \ / / _ \ |/ _ \| '_ \ / _ \ +// '__/ __| +// \__ \ __/ | \ V /| | (_| __/ | || (_) | | | (_| | __/\ V / __/ | (_) | |_) | __/ +// | \__ +// |___/\___|_| \_/ |_|\___\___| |_| \___/|_| \__,_|\___| \_/ \___|_|\___/| .__/ +// \___|_| |___/ +// ______ ______ ______ ______ ______ ______ ______ ______ | | +// |______|______|______|______|______|______|______|______| |_| +// + +#import +#import + +NS_ASSUME_NONNULL_BEGIN +/** + 用来表示这些分块所有者的信息。 + */ +@interface QCloudMultipartUploadInitiator : NSObject + +/** +创建者的一个唯一标识 +*/ +@property (strong, nonatomic) NSString *identifier; + +/** +创建者的用户名描述。 +*/ +@property (strong, nonatomic) NSString *displayName; +@end +NS_ASSUME_NONNULL_END diff --git a/Pods/QCloudCOSXML/QCloudCOSXML/Classes/Transfer/model/QCloudMultipartUploadInitiator.m b/Pods/QCloudCOSXML/QCloudCOSXML/Classes/Transfer/model/QCloudMultipartUploadInitiator.m new file mode 100644 index 0000000..a47c94b --- /dev/null +++ b/Pods/QCloudCOSXML/QCloudCOSXML/Classes/Transfer/model/QCloudMultipartUploadInitiator.m @@ -0,0 +1,59 @@ +// +// QCloudMultipartUploadInitiator.m +// QCloudMultipartUploadInitiator +// +// Created by tencent +// Copyright (c) 2015年 tencent. All rights reserved. +// +// ██████╗ ██████╗██╗ ██████╗ ██╗ ██╗██████╗ ████████╗███████╗██████╗ ███╗ ███╗██╗███╗ ██╗ █████╗ ██╗ ██╗ █████╗ +// ██████╗ +// ██╔═══██╗██╔════╝██║ ██╔═══██╗██║ ██║██╔══██╗ ╚══██╔══╝██╔════╝██╔══██╗████╗ ████║██║████╗ ██║██╔══██╗██║ ██║ ██╔══██╗██╔══██╗ +// ██║ ██║██║ ██║ ██║ ██║██║ ██║██║ ██║ ██║ █████╗ ██████╔╝██╔████╔██║██║██╔██╗ ██║███████║██║ ██║ ███████║██████╔╝ +// ██║▄▄ ██║██║ ██║ ██║ ██║██║ ██║██║ ██║ ██║ ██╔══╝ ██╔══██╗██║╚██╔╝██║██║██║╚██╗██║██╔══██║██║ ██║ ██╔══██║██╔══██╗ +// ╚██████╔╝╚██████╗███████╗╚██████╔╝╚██████╔╝██████╔╝ ██║ ███████╗██║ ██║██║ ╚═╝ ██║██║██║ ╚████║██║ ██║███████╗ ███████╗██║ +// ██║██████╔╝ +// ╚══▀▀═╝ ╚═════╝╚══════╝ ╚═════╝ ╚═════╝ ╚═════╝ ╚═╝ ╚══════╝╚═╝ ╚═╝╚═╝ ╚═╝╚═╝╚═╝ ╚═══╝╚═╝ ╚═╝╚══════╝ ╚══════╝╚═╝ ╚═╝╚═════╝ +// +// +// _ __ _ _ +// (_) / _| | | | | +// ___ ___ _ ____ ___ ___ ___ | |_ ___ _ __ __| | _____ _____| | ___ _ __ ___ _ +// __ ___ +// / __|/ _ \ '__\ \ / / |/ __/ _ \ | _/ _ \| '__| / _` |/ _ \ \ / / _ \ |/ _ \| '_ \ / _ \ +// '__/ __| +// \__ \ __/ | \ V /| | (_| __/ | || (_) | | | (_| | __/\ V / __/ | (_) | |_) | __/ +// | \__ +// |___/\___|_| \_/ |_|\___\___| |_| \___/|_| \__,_|\___| \_/ \___|_|\___/| .__/ +// \___|_| |___/ +// ______ ______ ______ ______ ______ ______ ______ ______ | | +// |______|______|______|______|______|______|______|______| |_| +// + +#import "QCloudMultipartUploadInitiator.h" + +NS_ASSUME_NONNULL_BEGIN +@implementation QCloudMultipartUploadInitiator + ++ (NSDictionary *)modelCustomPropertyMapper { + return @{ + @"identifier" : @"ID", + @"displayName" : @"DisplayName", + }; +} + +- (BOOL)modelCustomTransformToDictionary:(NSMutableDictionary *)dic { + return YES; +} + +- (NSDictionary *)modelCustomWillTransformFromDictionary:(NSDictionary *)dic { + if (!dic) { + return dic; + } + NSMutableDictionary *transfromDic = [NSMutableDictionary dictionaryWithDictionary:dic]; + + return transfromDic; +} + +@end + +NS_ASSUME_NONNULL_END diff --git a/Pods/QCloudCOSXML/QCloudCOSXML/Classes/Transfer/model/QCloudMultipartUploadOwner.h b/Pods/QCloudCOSXML/QCloudCOSXML/Classes/Transfer/model/QCloudMultipartUploadOwner.h new file mode 100644 index 0000000..cb44c51 --- /dev/null +++ b/Pods/QCloudCOSXML/QCloudCOSXML/Classes/Transfer/model/QCloudMultipartUploadOwner.h @@ -0,0 +1,51 @@ +// +// QCloudMultipartUploadOwner.h +// QCloudMultipartUploadOwner +// +// Created by tencent +// Copyright (c) 2015年 tencent. All rights reserved. +// +// ██████╗ ██████╗██╗ ██████╗ ██╗ ██╗██████╗ ████████╗███████╗██████╗ ███╗ ███╗██╗███╗ ██╗ █████╗ ██╗ ██╗ █████╗ +// ██████╗ +// ██╔═══██╗██╔════╝██║ ██╔═══██╗██║ ██║██╔══██╗ ╚══██╔══╝██╔════╝██╔══██╗████╗ ████║██║████╗ ██║██╔══██╗██║ ██║ ██╔══██╗██╔══██╗ +// ██║ ██║██║ ██║ ██║ ██║██║ ██║██║ ██║ ██║ █████╗ ██████╔╝██╔████╔██║██║██╔██╗ ██║███████║██║ ██║ ███████║██████╔╝ +// ██║▄▄ ██║██║ ██║ ██║ ██║██║ ██║██║ ██║ ██║ ██╔══╝ ██╔══██╗██║╚██╔╝██║██║██║╚██╗██║██╔══██║██║ ██║ ██╔══██║██╔══██╗ +// ╚██████╔╝╚██████╗███████╗╚██████╔╝╚██████╔╝██████╔╝ ██║ ███████╗██║ ██║██║ ╚═╝ ██║██║██║ ╚████║██║ ██║███████╗ ███████╗██║ +// ██║██████╔╝ +// ╚══▀▀═╝ ╚═════╝╚══════╝ ╚═════╝ ╚═════╝ ╚═════╝ ╚═╝ ╚══════╝╚═╝ ╚═╝╚═╝ ╚═╝╚═╝╚═╝ ╚═══╝╚═╝ ╚═╝╚══════╝ ╚══════╝╚═╝ ╚═╝╚═════╝ +// +// +// _ __ _ _ +// (_) / _| | | | | +// ___ ___ _ ____ ___ ___ ___ | |_ ___ _ __ __| | _____ _____| | ___ _ __ ___ _ +// __ ___ +// / __|/ _ \ '__\ \ / / |/ __/ _ \ | _/ _ \| '__| / _` |/ _ \ \ / / _ \ |/ _ \| '_ \ / _ \ +// '__/ __| +// \__ \ __/ | \ V /| | (_| __/ | || (_) | | | (_| | __/\ V / __/ | (_) | |_) | __/ +// | \__ +// |___/\___|_| \_/ |_|\___\___| |_| \___/|_| \__,_|\___| \_/ \___|_|\___/| .__/ +// \___|_| |___/ +// ______ ______ ______ ______ ______ ______ ______ ______ | | +// |______|______|______|______|______|______|______|______| |_| +// + +#import +#import + +NS_ASSUME_NONNULL_BEGIN +/** + 用来表示这些分块所有者的信息。 + */ +@interface QCloudMultipartUploadOwner : NSObject + +/** + 创建者的一个唯一标识 + */ +@property (strong, nonatomic) NSString *identifier; + +/** + 创建者的用户名描述。 + */ +@property (strong, nonatomic) NSString *displayName; +@end +NS_ASSUME_NONNULL_END diff --git a/Pods/QCloudCOSXML/QCloudCOSXML/Classes/Transfer/model/QCloudMultipartUploadOwner.m b/Pods/QCloudCOSXML/QCloudCOSXML/Classes/Transfer/model/QCloudMultipartUploadOwner.m new file mode 100644 index 0000000..4b57bd6 --- /dev/null +++ b/Pods/QCloudCOSXML/QCloudCOSXML/Classes/Transfer/model/QCloudMultipartUploadOwner.m @@ -0,0 +1,59 @@ +// +// QCloudMultipartUploadOwner.m +// QCloudMultipartUploadOwner +// +// Created by tencent +// Copyright (c) 2015年 tencent. All rights reserved. +// +// ██████╗ ██████╗██╗ ██████╗ ██╗ ██╗██████╗ ████████╗███████╗██████╗ ███╗ ███╗██╗███╗ ██╗ █████╗ ██╗ ██╗ █████╗ +// ██████╗ +// ██╔═══██╗██╔════╝██║ ██╔═══██╗██║ ██║██╔══██╗ ╚══██╔══╝██╔════╝██╔══██╗████╗ ████║██║████╗ ██║██╔══██╗██║ ██║ ██╔══██╗██╔══██╗ +// ██║ ██║██║ ██║ ██║ ██║██║ ██║██║ ██║ ██║ █████╗ ██████╔╝██╔████╔██║██║██╔██╗ ██║███████║██║ ██║ ███████║██████╔╝ +// ██║▄▄ ██║██║ ██║ ██║ ██║██║ ██║██║ ██║ ██║ ██╔══╝ ██╔══██╗██║╚██╔╝██║██║██║╚██╗██║██╔══██║██║ ██║ ██╔══██║██╔══██╗ +// ╚██████╔╝╚██████╗███████╗╚██████╔╝╚██████╔╝██████╔╝ ██║ ███████╗██║ ██║██║ ╚═╝ ██║██║██║ ╚████║██║ ██║███████╗ ███████╗██║ +// ██║██████╔╝ +// ╚══▀▀═╝ ╚═════╝╚══════╝ ╚═════╝ ╚═════╝ ╚═════╝ ╚═╝ ╚══════╝╚═╝ ╚═╝╚═╝ ╚═╝╚═╝╚═╝ ╚═══╝╚═╝ ╚═╝╚══════╝ ╚══════╝╚═╝ ╚═╝╚═════╝ +// +// +// _ __ _ _ +// (_) / _| | | | | +// ___ ___ _ ____ ___ ___ ___ | |_ ___ _ __ __| | _____ _____| | ___ _ __ ___ _ +// __ ___ +// / __|/ _ \ '__\ \ / / |/ __/ _ \ | _/ _ \| '__| / _` |/ _ \ \ / / _ \ |/ _ \| '_ \ / _ \ +// '__/ __| +// \__ \ __/ | \ V /| | (_| __/ | || (_) | | | (_| | __/\ V / __/ | (_) | |_) | __/ +// | \__ +// |___/\___|_| \_/ |_|\___\___| |_| \___/|_| \__,_|\___| \_/ \___|_|\___/| .__/ +// \___|_| |___/ +// ______ ______ ______ ______ ______ ______ ______ ______ | | +// |______|______|______|______|______|______|______|______| |_| +// + +#import "QCloudMultipartUploadOwner.h" + +NS_ASSUME_NONNULL_BEGIN +@implementation QCloudMultipartUploadOwner + ++ (NSDictionary *)modelCustomPropertyMapper { + return @{ + @"identifier" : @"ID", + @"displayName" : @"DisplayName", + }; +} + +- (BOOL)modelCustomTransformToDictionary:(NSMutableDictionary *)dic { + return YES; +} + +- (NSDictionary *)modelCustomWillTransformFromDictionary:(NSDictionary *)dic { + if (!dic) { + return dic; + } + NSMutableDictionary *transfromDic = [NSMutableDictionary dictionaryWithDictionary:dic]; + + return transfromDic; +} + +@end + +NS_ASSUME_NONNULL_END diff --git a/Pods/QCloudCOSXML/QCloudCOSXML/Classes/Transfer/model/QCloudMultipartUploadPart.h b/Pods/QCloudCOSXML/QCloudCOSXML/Classes/Transfer/model/QCloudMultipartUploadPart.h new file mode 100644 index 0000000..388841f --- /dev/null +++ b/Pods/QCloudCOSXML/QCloudCOSXML/Classes/Transfer/model/QCloudMultipartUploadPart.h @@ -0,0 +1,57 @@ +// +// QCloudMultipartUploadPart.h +// QCloudMultipartUploadPart +// +// Created by tencent +// Copyright (c) 2015年 tencent. All rights reserved. +// +// ██████╗ ██████╗██╗ ██████╗ ██╗ ██╗██████╗ ████████╗███████╗██████╗ ███╗ ███╗██╗███╗ ██╗ █████╗ ██╗ ██╗ █████╗ +// ██████╗ +// ██╔═══██╗██╔════╝██║ ██╔═══██╗██║ ██║██╔══██╗ ╚══██╔══╝██╔════╝██╔══██╗████╗ ████║██║████╗ ██║██╔══██╗██║ ██║ ██╔══██╗██╔══██╗ +// ██║ ██║██║ ██║ ██║ ██║██║ ██║██║ ██║ ██║ █████╗ ██████╔╝██╔████╔██║██║██╔██╗ ██║███████║██║ ██║ ███████║██████╔╝ +// ██║▄▄ ██║██║ ██║ ██║ ██║██║ ██║██║ ██║ ██║ ██╔══╝ ██╔══██╗██║╚██╔╝██║██║██║╚██╗██║██╔══██║██║ ██║ ██╔══██║██╔══██╗ +// ╚██████╔╝╚██████╗███████╗╚██████╔╝╚██████╔╝██████╔╝ ██║ ███████╗██║ ██║██║ ╚═╝ ██║██║██║ ╚████║██║ ██║███████╗ ███████╗██║ +// ██║██████╔╝ +// ╚══▀▀═╝ ╚═════╝╚══════╝ ╚═════╝ ╚═════╝ ╚═════╝ ╚═╝ ╚══════╝╚═╝ ╚═╝╚═╝ ╚═╝╚═╝╚═╝ ╚═══╝╚═╝ ╚═╝╚══════╝ ╚══════╝╚═╝ ╚═╝╚═════╝ +// +// +// _ __ _ _ +// (_) / _| | | | | +// ___ ___ _ ____ ___ ___ ___ | |_ ___ _ __ __| | _____ _____| | ___ _ __ ___ _ +// __ ___ +// / __|/ _ \ '__\ \ / / |/ __/ _ \ | _/ _ \| '__| / _` |/ _ \ \ / / _ \ |/ _ \| '_ \ / _ \ +// '__/ __| +// \__ \ __/ | \ V /| | (_| __/ | || (_) | | | (_| | __/\ V / __/ | (_) | |_) | __/ +// | \__ +// |___/\___|_| \_/ |_|\___\___| |_| \___/|_| \__,_|\___| \_/ \___|_|\___/| .__/ +// \___|_| |___/ +// ______ ______ ______ ______ ______ ______ ______ ______ | | +// |______|______|______|______|______|______|______|______| |_| +// + +#import +#import + +NS_ASSUME_NONNULL_BEGIN +/** + 查询特定上传分块中已上传的分块返回结果的元数据信息 + */ +@interface QCloudMultipartUploadPart : NSObject +/** +块的编号 +*/ +@property (strong, nonatomic) NSString *partNumber; +/** +块的最后修改时间 +*/ +@property (strong, nonatomic) NSString *lastModified; +/** +对象的SHA-1算法校验值 +*/ +@property (strong, nonatomic) NSString *eTag; +/** +块大小,单位byte +*/ +@property (assign, nonatomic) int64_t size; +@end +NS_ASSUME_NONNULL_END diff --git a/Pods/QCloudCOSXML/QCloudCOSXML/Classes/Transfer/model/QCloudMultipartUploadPart.m b/Pods/QCloudCOSXML/QCloudCOSXML/Classes/Transfer/model/QCloudMultipartUploadPart.m new file mode 100644 index 0000000..462df11 --- /dev/null +++ b/Pods/QCloudCOSXML/QCloudCOSXML/Classes/Transfer/model/QCloudMultipartUploadPart.m @@ -0,0 +1,61 @@ +// +// QCloudMultipartUploadPart.m +// QCloudMultipartUploadPart +// +// Created by tencent +// Copyright (c) 2015年 tencent. All rights reserved. +// +// ██████╗ ██████╗██╗ ██████╗ ██╗ ██╗██████╗ ████████╗███████╗██████╗ ███╗ ███╗██╗███╗ ██╗ █████╗ ██╗ ██╗ █████╗ +// ██████╗ +// ██╔═══██╗██╔════╝██║ ██╔═══██╗██║ ██║██╔══██╗ ╚══██╔══╝██╔════╝██╔══██╗████╗ ████║██║████╗ ██║██╔══██╗██║ ██║ ██╔══██╗██╔══██╗ +// ██║ ██║██║ ██║ ██║ ██║██║ ██║██║ ██║ ██║ █████╗ ██████╔╝██╔████╔██║██║██╔██╗ ██║███████║██║ ██║ ███████║██████╔╝ +// ██║▄▄ ██║██║ ██║ ██║ ██║██║ ██║██║ ██║ ██║ ██╔══╝ ██╔══██╗██║╚██╔╝██║██║██║╚██╗██║██╔══██║██║ ██║ ██╔══██║██╔══██╗ +// ╚██████╔╝╚██████╗███████╗╚██████╔╝╚██████╔╝██████╔╝ ██║ ███████╗██║ ██║██║ ╚═╝ ██║██║██║ ╚████║██║ ██║███████╗ ███████╗██║ +// ██║██████╔╝ +// ╚══▀▀═╝ ╚═════╝╚══════╝ ╚═════╝ ╚═════╝ ╚═════╝ ╚═╝ ╚══════╝╚═╝ ╚═╝╚═╝ ╚═╝╚═╝╚═╝ ╚═══╝╚═╝ ╚═╝╚══════╝ ╚══════╝╚═╝ ╚═╝╚═════╝ +// +// +// _ __ _ _ +// (_) / _| | | | | +// ___ ___ _ ____ ___ ___ ___ | |_ ___ _ __ __| | _____ _____| | ___ _ __ ___ _ +// __ ___ +// / __|/ _ \ '__\ \ / / |/ __/ _ \ | _/ _ \| '__| / _` |/ _ \ \ / / _ \ |/ _ \| '_ \ / _ \ +// '__/ __| +// \__ \ __/ | \ V /| | (_| __/ | || (_) | | | (_| | __/\ V / __/ | (_) | |_) | __/ +// | \__ +// |___/\___|_| \_/ |_|\___\___| |_| \___/|_| \__,_|\___| \_/ \___|_|\___/| .__/ +// \___|_| |___/ +// ______ ______ ______ ______ ______ ______ ______ ______ | | +// |______|______|______|______|______|______|______|______| |_| +// + +#import "QCloudMultipartUploadPart.h" + +NS_ASSUME_NONNULL_BEGIN +@implementation QCloudMultipartUploadPart + ++ (NSDictionary *)modelCustomPropertyMapper { + return @{ + @"partNumber" : @"PartNumber", + @"lastModified" : @"LastModified", + @"eTag" : @"ETag", + @"size" : @"Size", + }; +} + +- (BOOL)modelCustomTransformToDictionary:(NSMutableDictionary *)dic { + return YES; +} + +- (NSDictionary *)modelCustomWillTransformFromDictionary:(NSDictionary *)dic { + if (!dic) { + return dic; + } + NSMutableDictionary *transfromDic = [NSMutableDictionary dictionaryWithDictionary:dic]; + + return transfromDic; +} + +@end + +NS_ASSUME_NONNULL_END diff --git a/Pods/QCloudCOSXML/QCloudCOSXML/Classes/Transfer/model/QCloudUploadObjectResult.h b/Pods/QCloudCOSXML/QCloudCOSXML/Classes/Transfer/model/QCloudUploadObjectResult.h new file mode 100644 index 0000000..accdbcc --- /dev/null +++ b/Pods/QCloudCOSXML/QCloudCOSXML/Classes/Transfer/model/QCloudUploadObjectResult.h @@ -0,0 +1,89 @@ +// +// QCloudUploadObjectResult.h +// QCloudUploadObjectResult +// +// Created by tencent +// Copyright (c) 2015年 tencent. All rights reserved. +// +// ██████╗ ██████╗██╗ ██████╗ ██╗ ██╗██████╗ ████████╗███████╗██████╗ ███╗ ███╗██╗███╗ ██╗ █████╗ ██╗ ██╗ █████╗ +// ██████╗ +// ██╔═══██╗██╔════╝██║ ██╔═══██╗██║ ██║██╔══██╗ ╚══██╔══╝██╔════╝██╔══██╗████╗ ████║██║████╗ ██║██╔══██╗██║ ██║ ██╔══██╗██╔══██╗ +// ██║ ██║██║ ██║ ██║ ██║██║ ██║██║ ██║ ██║ █████╗ ██████╔╝██╔████╔██║██║██╔██╗ ██║███████║██║ ██║ ███████║██████╔╝ +// ██║▄▄ ██║██║ ██║ ██║ ██║██║ ██║██║ ██║ ██║ ██╔══╝ ██╔══██╗██║╚██╔╝██║██║██║╚██╗██║██╔══██║██║ ██║ ██╔══██║██╔══██╗ +// ╚██████╔╝╚██████╗███████╗╚██████╔╝╚██████╔╝██████╔╝ ██║ ███████╗██║ ██║██║ ╚═╝ ██║██║██║ ╚████║██║ ██║███████╗ ███████╗██║ +// ██║██████╔╝ +// ╚══▀▀═╝ ╚═════╝╚══════╝ ╚═════╝ ╚═════╝ ╚═════╝ ╚═╝ ╚══════╝╚═╝ ╚═╝╚═╝ ╚═╝╚═╝╚═╝ ╚═══╝╚═╝ ╚═╝╚══════╝ ╚══════╝╚═╝ ╚═╝╚═════╝ +// +// +// _ __ _ _ +// (_) / _| | | | | +// ___ ___ _ ____ ___ ___ ___ | |_ ___ _ __ __| | _____ _____| | ___ _ __ ___ _ +// __ ___ +// / __|/ _ \ '__\ \ / / |/ __/ _ \ | _/ _ \| '__| / _` |/ _ \ \ / / _ \ |/ _ \| '_ \ / _ \ +// '__/ __| +// \__ \ __/ | \ V /| | (_| __/ | || (_) | | | (_| | __/\ V / __/ | (_) | |_) | __/ +// | \__ +// |___/\___|_| \_/ |_|\___\___| |_| \___/|_| \__,_|\___| \_/ \___|_|\___/| .__/ +// \___|_| |___/ +// ______ ______ ______ ______ ______ ______ ______ ______ | | +// |______|______|______|______|______|______|______|______| |_| +// + +#import +#import + +NS_ASSUME_NONNULL_BEGIN + +@interface QCloudUploadCallbackError : NSObject +@property (strong, nonatomic) NSString *Code; + +@property (strong, nonatomic) NSString *Message; +@end + +@interface QCloudUploadCallbackResult : NSObject +@property (strong, nonatomic) NSString *Status; + +@property (strong, nonatomic) QCloudUploadCallbackError *Error; + +@property (strong, nonatomic) NSString *CallbackBody; + +@end + + +/** + 完成分块上传返回结果信息 + */ +@interface QCloudUploadObjectResult : NSObject +/** +创建对象的外网访问域名 +*/ +@property (strong, nonatomic) NSString *location; +/** +分快上传的目标存储桶名 +*/ +@property (strong, nonatomic) NSString *bucket; +/** +对象名 +*/ +@property (strong, nonatomic) NSString *key; +/** +合并后文件的MD5算法校验值 +*/ +@property (strong, nonatomic) NSString *eTag; +/** +对象对应的Version ID(在开启了多版本的情况才有) +*/ +@property (strong, nonatomic) NSString *versionID; + +/** +文件大小 +*/ +@property (assign, nonatomic) NSInteger size; + +@property (strong, nonatomic) QCloudUploadCallbackResult *CallbackResult; + +@end + + + +NS_ASSUME_NONNULL_END diff --git a/Pods/QCloudCOSXML/QCloudCOSXML/Classes/Transfer/model/QCloudUploadObjectResult.m b/Pods/QCloudCOSXML/QCloudCOSXML/Classes/Transfer/model/QCloudUploadObjectResult.m new file mode 100644 index 0000000..0cb93cf --- /dev/null +++ b/Pods/QCloudCOSXML/QCloudCOSXML/Classes/Transfer/model/QCloudUploadObjectResult.m @@ -0,0 +1,79 @@ +// +// QCloudUploadObjectResult.m +// QCloudUploadObjectResult +// +// Created by tencent +// Copyright (c) 2015年 tencent. All rights reserved. +// +// ██████╗ ██████╗██╗ ██████╗ ██╗ ██╗██████╗ ████████╗███████╗██████╗ ███╗ ███╗██╗███╗ ██╗ █████╗ ██╗ ██╗ █████╗ +// ██████╗ +// ██╔═══██╗██╔════╝██║ ██╔═══██╗██║ ██║██╔══██╗ ╚══██╔══╝██╔════╝██╔══██╗████╗ ████║██║████╗ ██║██╔══██╗██║ ██║ ██╔══██╗██╔══██╗ +// ██║ ██║██║ ██║ ██║ ██║██║ ██║██║ ██║ ██║ █████╗ ██████╔╝██╔████╔██║██║██╔██╗ ██║███████║██║ ██║ ███████║██████╔╝ +// ██║▄▄ ██║██║ ██║ ██║ ██║██║ ██║██║ ██║ ██║ ██╔══╝ ██╔══██╗██║╚██╔╝██║██║██║╚██╗██║██╔══██║██║ ██║ ██╔══██║██╔══██╗ +// ╚██████╔╝╚██████╗███████╗╚██████╔╝╚██████╔╝██████╔╝ ██║ ███████╗██║ ██║██║ ╚═╝ ██║██║██║ ╚████║██║ ██║███████╗ ███████╗██║ +// ██║██████╔╝ +// ╚══▀▀═╝ ╚═════╝╚══════╝ ╚═════╝ ╚═════╝ ╚═════╝ ╚═╝ ╚══════╝╚═╝ ╚═╝╚═╝ ╚═╝╚═╝╚═╝ ╚═══╝╚═╝ ╚═╝╚══════╝ ╚══════╝╚═╝ ╚═╝╚═════╝ +// +// +// _ __ _ _ +// (_) / _| | | | | +// ___ ___ _ ____ ___ ___ ___ | |_ ___ _ __ __| | _____ _____| | ___ _ __ ___ _ +// __ ___ +// / __|/ _ \ '__\ \ / / |/ __/ _ \ | _/ _ \| '__| / _` |/ _ \ \ / / _ \ |/ _ \| '_ \ / _ \ +// '__/ __| +// \__ \ __/ | \ V /| | (_| __/ | || (_) | | | (_| | __/\ V / __/ | (_) | |_) | __/ +// | \__ +// |___/\___|_| \_/ |_|\___\___| |_| \___/|_| \__,_|\___| \_/ \___|_|\___/| .__/ +// \___|_| |___/ +// ______ ______ ______ ______ ______ ______ ______ ______ | | +// |______|______|______|______|______|______|______|______| |_| +// + +#import "QCloudUploadObjectResult.h" + +NS_ASSUME_NONNULL_BEGIN + +@implementation QCloudUploadCallbackError + +@end + +@implementation QCloudUploadCallbackResult ++ (NSDictionary *)modelContainerPropertyGenericClass { + return @{ + @"Error" : [QCloudUploadCallbackError class], + }; +} +@end +@implementation QCloudUploadObjectResult + ++ (NSDictionary *)modelContainerPropertyGenericClass { + return @{ + @"CallbackResult" : [QCloudUploadCallbackResult class], + }; +} + ++ (NSDictionary *)modelCustomPropertyMapper { + return @{ + @"location" : @"Location", + @"bucket" : @"Bucket", + @"key" : @"Key", + @"eTag" : @"ETag", + }; +} + +- (BOOL)modelCustomTransformToDictionary:(NSMutableDictionary *)dic { + return YES; +} + +- (NSDictionary *)modelCustomWillTransformFromDictionary:(NSDictionary *)dic { + if (!dic) { + return dic; + } + NSMutableDictionary *transfromDic = [NSMutableDictionary dictionaryWithDictionary:dic]; + + return transfromDic; +} + +@end + +NS_ASSUME_NONNULL_END diff --git a/Pods/QCloudCOSXML/QCloudCOSXML/Classes/Transfer/model/QCloudUploadPartResult.h b/Pods/QCloudCOSXML/QCloudCOSXML/Classes/Transfer/model/QCloudUploadPartResult.h new file mode 100644 index 0000000..92d5cb0 --- /dev/null +++ b/Pods/QCloudCOSXML/QCloudCOSXML/Classes/Transfer/model/QCloudUploadPartResult.h @@ -0,0 +1,45 @@ +// +// QCloudUploadPartResult.h +// QCloudUploadPartResult +// +// Created by tencent +// Copyright (c) 2015年 tencent. All rights reserved. +// +// ██████╗ ██████╗██╗ ██████╗ ██╗ ██╗██████╗ ████████╗███████╗██████╗ ███╗ ███╗██╗███╗ ██╗ █████╗ ██╗ ██╗ █████╗ +// ██████╗ +// ██╔═══██╗██╔════╝██║ ██╔═══██╗██║ ██║██╔══██╗ ╚══██╔══╝██╔════╝██╔══██╗████╗ ████║██║████╗ ██║██╔══██╗██║ ██║ ██╔══██╗██╔══██╗ +// ██║ ██║██║ ██║ ██║ ██║██║ ██║██║ ██║ ██║ █████╗ ██████╔╝██╔████╔██║██║██╔██╗ ██║███████║██║ ██║ ███████║██████╔╝ +// ██║▄▄ ██║██║ ██║ ██║ ██║██║ ██║██║ ██║ ██║ ██╔══╝ ██╔══██╗██║╚██╔╝██║██║██║╚██╗██║██╔══██║██║ ██║ ██╔══██║██╔══██╗ +// ╚██████╔╝╚██████╗███████╗╚██████╔╝╚██████╔╝██████╔╝ ██║ ███████╗██║ ██║██║ ╚═╝ ██║██║██║ ╚████║██║ ██║███████╗ ███████╗██║ +// ██║██████╔╝ +// ╚══▀▀═╝ ╚═════╝╚══════╝ ╚═════╝ ╚═════╝ ╚═════╝ ╚═╝ ╚══════╝╚═╝ ╚═╝╚═╝ ╚═╝╚═╝╚═╝ ╚═══╝╚═╝ ╚═╝╚══════╝ ╚══════╝╚═╝ ╚═╝╚═════╝ +// +// +// _ __ _ _ +// (_) / _| | | | | +// ___ ___ _ ____ ___ ___ ___ | |_ ___ _ __ __| | _____ _____| | ___ _ __ ___ _ +// __ ___ +// / __|/ _ \ '__\ \ / / |/ __/ _ \ | _/ _ \| '__| / _` |/ _ \ \ / / _ \ |/ _ \| '_ \ / _ \ +// '__/ __| +// \__ \ __/ | \ V /| | (_| __/ | || (_) | | | (_| | __/\ V / __/ | (_) | |_) | __/ +// | \__ +// |___/\___|_| \_/ |_|\___\___| |_| \___/|_| \__,_|\___| \_/ \___|_|\___/| .__/ +// \___|_| |___/ +// ______ ______ ______ ______ ______ ______ ______ ______ | | +// |______|______|______|______|______|______|______|______| |_| +// + +#import + +NS_ASSUME_NONNULL_BEGIN +/** + 完成一个分块上传返回结果 +*/ +@interface QCloudUploadPartResult : NSObject + +/** + 文件的 etag + */ +@property (strong, nonatomic) NSString *eTag; +@end +NS_ASSUME_NONNULL_END diff --git a/Pods/QCloudCOSXML/QCloudCOSXML/Classes/Transfer/model/QCloudUploadPartResult.m b/Pods/QCloudCOSXML/QCloudCOSXML/Classes/Transfer/model/QCloudUploadPartResult.m new file mode 100644 index 0000000..cf7d171 --- /dev/null +++ b/Pods/QCloudCOSXML/QCloudCOSXML/Classes/Transfer/model/QCloudUploadPartResult.m @@ -0,0 +1,58 @@ +// +// QCloudUploadPartResult.m +// QCloudUploadPartResult +// +// Created by tencent +// Copyright (c) 2015年 tencent. All rights reserved. +// +// ██████╗ ██████╗██╗ ██████╗ ██╗ ██╗██████╗ ████████╗███████╗██████╗ ███╗ ███╗██╗███╗ ██╗ █████╗ ██╗ ██╗ █████╗ +// ██████╗ +// ██╔═══██╗██╔════╝██║ ██╔═══██╗██║ ██║██╔══██╗ ╚══██╔══╝██╔════╝██╔══██╗████╗ ████║██║████╗ ██║██╔══██╗██║ ██║ ██╔══██╗██╔══██╗ +// ██║ ██║██║ ██║ ██║ ██║██║ ██║██║ ██║ ██║ █████╗ ██████╔╝██╔████╔██║██║██╔██╗ ██║███████║██║ ██║ ███████║██████╔╝ +// ██║▄▄ ██║██║ ██║ ██║ ██║██║ ██║██║ ██║ ██║ ██╔══╝ ██╔══██╗██║╚██╔╝██║██║██║╚██╗██║██╔══██║██║ ██║ ██╔══██║██╔══██╗ +// ╚██████╔╝╚██████╗███████╗╚██████╔╝╚██████╔╝██████╔╝ ██║ ███████╗██║ ██║██║ ╚═╝ ██║██║██║ ╚████║██║ ██║███████╗ ███████╗██║ +// ██║██████╔╝ +// ╚══▀▀═╝ ╚═════╝╚══════╝ ╚═════╝ ╚═════╝ ╚═════╝ ╚═╝ ╚══════╝╚═╝ ╚═╝╚═╝ ╚═╝╚═╝╚═╝ ╚═══╝╚═╝ ╚═╝╚══════╝ ╚══════╝╚═╝ ╚═╝╚═════╝ +// +// +// _ __ _ _ +// (_) / _| | | | | +// ___ ___ _ ____ ___ ___ ___ | |_ ___ _ __ __| | _____ _____| | ___ _ __ ___ _ +// __ ___ +// / __|/ _ \ '__\ \ / / |/ __/ _ \ | _/ _ \| '__| / _` |/ _ \ \ / / _ \ |/ _ \| '_ \ / _ \ +// '__/ __| +// \__ \ __/ | \ V /| | (_| __/ | || (_) | | | (_| | __/\ V / __/ | (_) | |_) | __/ +// | \__ +// |___/\___|_| \_/ |_|\___\___| |_| \___/|_| \__,_|\___| \_/ \___|_|\___/| .__/ +// \___|_| |___/ +// ______ ______ ______ ______ ______ ______ ______ ______ | | +// |______|______|______|______|______|______|______|______| |_| +// + +#import "QCloudUploadPartResult.h" + +NS_ASSUME_NONNULL_BEGIN +@implementation QCloudUploadPartResult + ++ (NSDictionary *)modelCustomPropertyMapper { + return @{ + @"eTag" : @"Etag", + }; +} + +- (BOOL)modelCustomTransformToDictionary:(NSMutableDictionary *)dic { + return YES; +} + +- (NSDictionary *)modelCustomWillTransformFromDictionary:(NSDictionary *)dic { + if (!dic) { + return dic; + } + NSMutableDictionary *transfromDic = [NSMutableDictionary dictionaryWithDictionary:dic]; + + return transfromDic; +} + +@end + +NS_ASSUME_NONNULL_END diff --git a/Pods/QCloudCOSXML/QCloudCOSXML/Classes/Transfer/request/QCloudAbortMultipfartUploadRequest.h b/Pods/QCloudCOSXML/QCloudCOSXML/Classes/Transfer/request/QCloudAbortMultipfartUploadRequest.h new file mode 100644 index 0000000..db23e8c --- /dev/null +++ b/Pods/QCloudCOSXML/QCloudCOSXML/Classes/Transfer/request/QCloudAbortMultipfartUploadRequest.h @@ -0,0 +1,75 @@ +// +// AbortMultipfartUpload.h +// AbortMultipfartUpload +// +// Created by tencent +// Copyright (c) 2015年 tencent. All rights reserved. +// +// ██████╗ ██████╗██╗ ██████╗ ██╗ ██╗██████╗ ████████╗███████╗██████╗ ███╗ ███╗██╗███╗ ██╗ █████╗ ██╗ ██╗ █████╗ +// ██████╗ +// ██╔═══██╗██╔════╝██║ ██╔═══██╗██║ ██║██╔══██╗ ╚══██╔══╝██╔════╝██╔══██╗████╗ ████║██║████╗ ██║██╔══██╗██║ ██║ ██╔══██╗██╔══██╗ +// ██║ ██║██║ ██║ ██║ ██║██║ ██║██║ ██║ ██║ █████╗ ██████╔╝██╔████╔██║██║██╔██╗ ██║███████║██║ ██║ ███████║██████╔╝ +// ██║▄▄ ██║██║ ██║ ██║ ██║██║ ██║██║ ██║ ██║ ██╔══╝ ██╔══██╗██║╚██╔╝██║██║██║╚██╗██║██╔══██║██║ ██║ ██╔══██║██╔══██╗ +// ╚██████╔╝╚██████╗███████╗╚██████╔╝╚██████╔╝██████╔╝ ██║ ███████╗██║ ██║██║ ╚═╝ ██║██║██║ ╚████║██║ ██║███████╗ ███████╗██║ +// ██║██████╔╝ +// ╚══▀▀═╝ ╚═════╝╚══════╝ ╚═════╝ ╚═════╝ ╚═════╝ ╚═╝ ╚══════╝╚═╝ ╚═╝╚═╝ ╚═╝╚═╝╚═╝ ╚═══╝╚═╝ ╚═╝╚══════╝ ╚══════╝╚═╝ ╚═╝╚═════╝ +// +// +// _ __ _ _ +// (_) / _| | | | | +// ___ ___ _ ____ ___ ___ ___ | |_ ___ _ __ __| | _____ _____| | ___ _ __ ___ _ +// __ ___ +// / __|/ _ \ '__\ \ / / |/ __/ _ \ | _/ _ \| '__| / _` |/ _ \ \ / / _ \ |/ _ \| '_ \ / _ \ +// '__/ __| +// \__ \ __/ | \ V /| | (_| __/ | || (_) | | | (_| | __/\ V / __/ | (_) | |_) | __/ +// | \__ +// |___/\___|_| \_/ |_|\___\___| |_| \___/|_| \__,_|\___| \_/ \___|_|\___/| .__/ +// \___|_| |___/ +// ______ ______ ______ ______ ______ ______ ______ ______ | | +// |______|______|______|______|______|______|______|______| |_| +// + +#import +#import +NS_ASSUME_NONNULL_BEGIN +/** + + 舍弃一个分块上传且删除已上传的分片块的方法. + + ### 功能描述 + + COS 支持舍弃一个分块上传且删除已上传的分片块. 注意,已上传但是未终止的分片块会占用存储空间进 + 而产生存储费用.因此,建议及时完成分块上传 或者舍弃分块上传. + + 关于舍弃一个分块上传且删除已上传的分片块接口的描述,请查看 https://cloud.tencent.com/document/product/436/7740. + +### 示例 + + @code + + QCloudAbortMultipfartUploadRequest *abortRequest = [QCloudAbortMultipfartUploadRequest new]; + abortRequest.bucket = @"bucketName"; //存储桶名称(cos v5 的 bucket格式为:xxx-appid, 如 test-1253960454) + abortRequest.object = [[QCloudCOSXMLTestUtility sharedInstance]createCanbeDeleteTestObject]; + abortRequest.uploadId = @"uploadId"; + [abortRequest setFinishBlock:^(id outputObject, NSError *error) { + //additional actions after finishing + }]; + [[QCloudCOSXMLService defaultCOSXML]AbortMultipfartUpload:abortRequest]; + +*/ +@interface QCloudAbortMultipfartUploadRequest : QCloudBizHTTPRequest +/** +对象名 +*/ +@property (strong, nonatomic) NSString *object; +/** +存储桶名 +*/ +@property (strong, nonatomic) NSString *bucket; +/** +本次分片上传的UploadId +*/ +@property (strong, nonatomic) NSString *uploadId; + +@end +NS_ASSUME_NONNULL_END diff --git a/Pods/QCloudCOSXML/QCloudCOSXML/Classes/Transfer/request/QCloudAbortMultipfartUploadRequest.m b/Pods/QCloudCOSXML/QCloudCOSXML/Classes/Transfer/request/QCloudAbortMultipfartUploadRequest.m new file mode 100644 index 0000000..c5da080 --- /dev/null +++ b/Pods/QCloudCOSXML/QCloudCOSXML/Classes/Transfer/request/QCloudAbortMultipfartUploadRequest.m @@ -0,0 +1,134 @@ +// +// AbortMultipfartUpload.m +// AbortMultipfartUpload +// +// Created by tencent +// Copyright (c) 2015年 tencent. All rights reserved. +// +// ██████╗ ██████╗██╗ ██████╗ ██╗ ██╗██████╗ ████████╗███████╗██████╗ ███╗ ███╗██╗███╗ ██╗ █████╗ ██╗ ██╗ █████╗ +// ██████╗ +// ██╔═══██╗██╔════╝██║ ██╔═══██╗██║ ██║██╔══██╗ ╚══██╔══╝██╔════╝██╔══██╗████╗ ████║██║████╗ ██║██╔══██╗██║ ██║ ██╔══██╗██╔══██╗ +// ██║ ██║██║ ██║ ██║ ██║██║ ██║██║ ██║ ██║ █████╗ ██████╔╝██╔████╔██║██║██╔██╗ ██║███████║██║ ██║ ███████║██████╔╝ +// ██║▄▄ ██║██║ ██║ ██║ ██║██║ ██║██║ ██║ ██║ ██╔══╝ ██╔══██╗██║╚██╔╝██║██║██║╚██╗██║██╔══██║██║ ██║ ██╔══██║██╔══██╗ +// ╚██████╔╝╚██████╗███████╗╚██████╔╝╚██████╔╝██████╔╝ ██║ ███████╗██║ ██║██║ ╚═╝ ██║██║██║ ╚████║██║ ██║███████╗ ███████╗██║ +// ██║██████╔╝ +// ╚══▀▀═╝ ╚═════╝╚══════╝ ╚═════╝ ╚═════╝ ╚═════╝ ╚═╝ ╚══════╝╚═╝ ╚═╝╚═╝ ╚═╝╚═╝╚═╝ ╚═══╝╚═╝ ╚═╝╚══════╝ ╚══════╝╚═╝ ╚═╝╚═════╝ +// +// +// _ __ _ _ +// (_) / _| | | | | +// ___ ___ _ ____ ___ ___ ___ | |_ ___ _ __ __| | _____ _____| | ___ _ __ ___ _ +// __ ___ +// / __|/ _ \ '__\ \ / / |/ __/ _ \ | _/ _ \| '__| / _` |/ _ \ \ / / _ \ |/ _ \| '_ \ / _ \ +// '__/ __| +// \__ \ __/ | \ V /| | (_| __/ | || (_) | | | (_| | __/\ V / __/ | (_) | |_) | __/ +// | \__ +// |___/\___|_| \_/ |_|\___\___| |_| \___/|_| \__,_|\___| \_/ \___|_|\___/| .__/ +// \___|_| |___/ +// ______ ______ ______ ______ ______ ______ ______ ______ | | +// |______|______|______|______|______|______|______|______| |_| +// + +#import "QCloudAbortMultipfartUploadRequest.h" +#import +#import +#import + +NS_ASSUME_NONNULL_BEGIN +@implementation QCloudAbortMultipfartUploadRequest +- (void)dealloc { +} +- (instancetype)init { + self = [super init]; + if (!self) { + return nil; + } + return self; +} +- (void)configureReuqestSerializer:(QCloudRequestSerializer *)requestSerializer responseSerializer:(QCloudResponseSerializer *)responseSerializer { + NSArray *customRequestSerilizers = @[ + QCloudURLFuseSimple, + QCloudURLFuseWithURLEncodeParamters, + ]; + + NSArray *responseSerializers = @[ + QCloudAcceptRespnseCodeBlock([NSSet setWithObjects:@(200), @(201), @(202), @(203), @(204), @(205), @(206), @(207), @(208), @(226), nil], nil), + + ]; + [requestSerializer setSerializerBlocks:customRequestSerilizers]; + [responseSerializer setSerializerBlocks:responseSerializers]; + + requestSerializer.HTTPMethod = @"delete"; +} + +- (BOOL)buildRequestData:(NSError *__autoreleasing *)error { + if (![super buildRequestData:error]) { + return NO; + } + if (!self.object || ([self.object isKindOfClass:NSString.class] && ((NSString *)self.object).length == 0)) { + if (error != NULL) { + *error = [NSError + qcloud_errorWithCode:QCloudNetworkErrorCodeParamterInvalid + message:[NSString stringWithFormat: + @"InvalidArgument:paramter[object] is invalid (nil), it must have some value. please check it"]]; + return NO; + } + } + if (!self.bucket || ([self.bucket isKindOfClass:NSString.class] && ((NSString *)self.bucket).length == 0)) { + if (error != NULL) { + *error = [NSError + qcloud_errorWithCode:QCloudNetworkErrorCodeParamterInvalid + message:[NSString stringWithFormat: + @"InvalidArgument:paramter[bucket] is invalid (nil), it must have some value. please check it"]]; + return NO; + } + } + NSURL *__serverURL = [self.runOnService.configuration.endpoint serverURLWithBucket:self.bucket + appID:self.runOnService.configuration.appID + regionName:self.regionName]; + self.requestData.serverURL = __serverURL.absoluteString; + [self.requestData setValue:__serverURL.host forHTTPHeaderField:@"Host"]; + if (!self.uploadId || ([self.uploadId isKindOfClass:NSString.class] && ((NSString *)self.uploadId).length == 0)) { + if (error != NULL) { + *error = [NSError + qcloud_errorWithCode:QCloudNetworkErrorCodeParamterInvalid + message:[NSString stringWithFormat: + @"InvalidArgument:paramter[uploadId] is invalid (nil), it must have some value. please check it"]]; + return NO; + } + } + [self.requestData setParameter:self.uploadId withKey:@"UploadId"]; + NSMutableArray *__pathComponents = [NSMutableArray arrayWithArray:self.requestData.URIComponents]; + if (self.object) + [__pathComponents addObject:self.object]; + self.requestData.URIComponents = __pathComponents; + return YES; +} + +- (QCloudSignatureFields *)signatureFields { + QCloudSignatureFields *fileds = [QCloudSignatureFields new]; + + return fileds; +} +- (NSArray *)scopesArray { + NSMutableArray *array = [NSMutableArray array]; + [array addObject:[self getScopeWithAction:@"name/cos:InitiateMultipartUpload"]]; + [array addObject:[self getScopeWithAction:@"name/cos:ListParts"]]; + [array addObject:[self getScopeWithAction:@"name/cos:UploadPart"]]; + [array addObject:[self getScopeWithAction:@"name/cos:CompleteMultipartUpload"]]; + [array addObject:[self getScopeWithAction:@"name/cos:AbortMultipartUpload"]]; + return [array copy]; +} +- (NSMutableDictionary *)getScopeWithAction:(NSString *)action { + NSMutableDictionary *dic = [NSMutableDictionary dictionary]; + NSArray *separatetmpArray = [self.requestData.serverURL componentsSeparatedByString:@"://"]; + NSString *str = separatetmpArray[1]; + NSArray *separateArray = [str componentsSeparatedByString:@"."]; + dic[@"bucket"] = separateArray[0]; + dic[@"region"] = self.runOnService.configuration.endpoint.regionName; + dic[@"prefix"] = self.object; + dic[@"action"] = action; + return dic; +} +@end +NS_ASSUME_NONNULL_END diff --git a/Pods/QCloudCOSXML/QCloudCOSXML/Classes/Transfer/request/QCloudAppendObjectRequest.h b/Pods/QCloudCOSXML/QCloudCOSXML/Classes/Transfer/request/QCloudAppendObjectRequest.h new file mode 100644 index 0000000..c90d4dd --- /dev/null +++ b/Pods/QCloudCOSXML/QCloudCOSXML/Classes/Transfer/request/QCloudAppendObjectRequest.h @@ -0,0 +1,95 @@ +// +// AppendObject.h +// AppendObject +// +// Created by tencent +// Copyright (c) 2015年 tencent. All rights reserved. +// +// ██████╗ ██████╗██╗ ██████╗ ██╗ ██╗██████╗ ████████╗███████╗██████╗ ███╗ ███╗██╗███╗ ██╗ █████╗ ██╗ ██╗ █████╗ ██████╗ +// ██╔═══██╗██╔════╝██║ ██╔═══██╗██║ ██║██╔══██╗ ╚══██╔══╝██╔════╝██╔══██╗████╗ ████║██║████╗ ██║██╔══██╗██║ ██║ ██╔══██╗██╔══██╗ +// ██║ ██║██║ ██║ ██║ ██║██║ ██║██║ ██║ ██║ █████╗ ██████╔╝██╔████╔██║██║██╔██╗ ██║███████║██║ ██║ ███████║██████╔╝ +// ██║▄▄ ██║██║ ██║ ██║ ██║██║ ██║██║ ██║ ██║ ██╔══╝ ██╔══██╗██║╚██╔╝██║██║██║╚██╗██║██╔══██║██║ ██║ ██╔══██║██╔══██╗ +// ╚██████╔╝╚██████╗███████╗╚██████╔╝╚██████╔╝██████╔╝ ██║ ███████╗██║ ██║██║ ╚═╝ ██║██║██║ ╚████║██║ ██║███████╗ ███████╗██║ ██║██████╔╝ +// ╚══▀▀═╝ ╚═════╝╚══════╝ ╚═════╝ ╚═════╝ ╚═════╝ ╚═╝ ╚══════╝╚═╝ ╚═╝╚═╝ ╚═╝╚═╝╚═╝ ╚═══╝╚═╝ ╚═╝╚══════╝ ╚══════╝╚═╝ ╚═╝╚═════╝ +// +// +// _ __ _ _ +// (_) / _| | | | | +// ___ ___ _ ____ ___ ___ ___ | |_ ___ _ __ __| | _____ _____| | ___ _ __ ___ _ __ ___ +// / __|/ _ \ '__\ \ / / |/ __/ _ \ | _/ _ \| '__| / _` |/ _ \ \ / / _ \ |/ _ \| '_ \ / _ \ '__/ __| +// \__ \ __/ | \ V /| | (_| __/ | || (_) | | | (_| | __/\ V / __/ | (_) | |_) | __/ | \__ +// |___/\___|_| \_/ |_|\___\___| |_| \___/|_| \__,_|\___| \_/ \___|_|\___/| .__/ \___|_| |___/ +// ______ ______ ______ ______ ______ ______ ______ ______ | | +// |______|______|______|______|______|______|______|______| |_| +// + + + +#import +#import +#import "QCloudCOSStorageClassEnum.h" +NS_ASSUME_NONNULL_BEGIN +/** +功能描述: + APPEND Object 接口请求可以将一个对象以分块追加的方式上传至指定存储桶中。对象首次使用 APPEND Object 接口上传时,该对象的属性自动为 appendable ,使用其他接口上传时则属性自动为 normal (如果该对象已存在则属性会被覆盖为 normal),可以使用 GET Object 或 HEAD Object 接口获取 x-cos-object-type 响应头来判断对象属性。对象属性为 appendable 时才能使用本接口追加上传。 + + 追加上传的对象,每个分块大小默认最大为5GB,无最小限制,同时通过追加方式产生的对象大小不得超过5GB。如果 Position 的值和当前对象的长度不致,COS 将返回409错误。如果追加一个 normal 属性的文件,COS 将返回409 ObjectNotAppendable。 +*/ +@interface QCloudAppendObjectRequest : QCloudBizHTTPRequest +@property (nonatomic, strong) BodyType body; +/** +位置 +*/ +@property (assign, nonatomic) int64_t position; +/** +存储桶名 +*/ +@property (strong, nonatomic) NSString *bucket; +/** +对象名 +*/ +@property (strong, nonatomic) NSString *object; +/** +RFC 2616 中定义的缓存策略,将作为 Object 元数据返回 +*/ +@property (strong, nonatomic) NSString *cacheControl; +/** +RFC 2616 中定义的文件名称,将作为 Object 元数据返回 +*/ +@property (strong, nonatomic) NSString *contentDisposition; +/** +当使用 Expect: 100-continue 时,在收到服务端确认后,才会发送请求内容 +*/ +@property (strong, nonatomic) NSString *expect; +/** +RFC 2616 中定义的过期时间,将作为 Object 元数据返回 +*/ +@property (strong, nonatomic) NSString *expires; +@property (strong, nonatomic) NSString *contentSHA1; +@property (assign, nonatomic) QCloudCOSStorageClass storageClass; +/** +定义 Object 的 ACL 属性。有效值:private,public-read-write,public-read;默认值:private +*/ +@property (strong, nonatomic) NSString *accessControlList; +/** +赋予被授权者读的权限。格式:x-cos-grant-read: id=" ",id=" "; +当需要给子账户授权时,id="qcs::cam::uin/:uin/", +当需要给根账户授权时,id="qcs::cam::uin/:uin/" +*/ +@property (strong, nonatomic) NSString *grantRead; +/** +赋予被授权者写的权限。格式:x-cos-grant-write: id=" ",id=" "; +当需要给子账户授权时,id="qcs::cam::uin/:uin/", +当需要给根账户授权时,id="qcs::cam::uin/:uin/" +*/ +@property (strong, nonatomic) NSString *grantWrite; +/** +赋予被授权者读写权限。格式:x-cos-grant-full-control: id=" ",id=" "; +当需要给子账户授权时,id="qcs::cam::uin/:uin/", +当需要给根账户授权时,id="qcs::cam::uin/:uin/" +*/ +@property (strong, nonatomic) NSString *grantFullControl; + + +@end +NS_ASSUME_NONNULL_END diff --git a/Pods/QCloudCOSXML/QCloudCOSXML/Classes/Transfer/request/QCloudAppendObjectRequest.m b/Pods/QCloudCOSXML/QCloudCOSXML/Classes/Transfer/request/QCloudAppendObjectRequest.m new file mode 100644 index 0000000..9ce7a2f --- /dev/null +++ b/Pods/QCloudCOSXML/QCloudCOSXML/Classes/Transfer/request/QCloudAppendObjectRequest.m @@ -0,0 +1,142 @@ +// +// AppendObject.m +// AppendObject +// +// Created by tencent +// Copyright (c) 2015年 tencent. All rights reserved. +// +// ██████╗ ██████╗██╗ ██████╗ ██╗ ██╗██████╗ ████████╗███████╗██████╗ ███╗ ███╗██╗███╗ ██╗ █████╗ ██╗ ██╗ █████╗ ██████╗ +// ██╔═══██╗██╔════╝██║ ██╔═══██╗██║ ██║██╔══██╗ ╚══██╔══╝██╔════╝██╔══██╗████╗ ████║██║████╗ ██║██╔══██╗██║ ██║ ██╔══██╗██╔══██╗ +// ██║ ██║██║ ██║ ██║ ██║██║ ██║██║ ██║ ██║ █████╗ ██████╔╝██╔████╔██║██║██╔██╗ ██║███████║██║ ██║ ███████║██████╔╝ +// ██║▄▄ ██║██║ ██║ ██║ ██║██║ ██║██║ ██║ ██║ ██╔══╝ ██╔══██╗██║╚██╔╝██║██║██║╚██╗██║██╔══██║██║ ██║ ██╔══██║██╔══██╗ +// ╚██████╔╝╚██████╗███████╗╚██████╔╝╚██████╔╝██████╔╝ ██║ ███████╗██║ ██║██║ ╚═╝ ██║██║██║ ╚████║██║ ██║███████╗ ███████╗██║ ██║██████╔╝ +// ╚══▀▀═╝ ╚═════╝╚══════╝ ╚═════╝ ╚═════╝ ╚═════╝ ╚═╝ ╚══════╝╚═╝ ╚═╝╚═╝ ╚═╝╚═╝╚═╝ ╚═══╝╚═╝ ╚═╝╚══════╝ ╚══════╝╚═╝ ╚═╝╚═════╝ +// +// +// _ __ _ _ +// (_) / _| | | | | +// ___ ___ _ ____ ___ ___ ___ | |_ ___ _ __ __| | _____ _____| | ___ _ __ ___ _ __ ___ +// / __|/ _ \ '__\ \ / / |/ __/ _ \ | _/ _ \| '__| / _` |/ _ \ \ / / _ \ |/ _ \| '_ \ / _ \ '__/ __| +// \__ \ __/ | \ V /| | (_| __/ | || (_) | | | (_| | __/\ V / __/ | (_) | |_) | __/ | \__ +// |___/\___|_| \_/ |_|\___\___| |_| \___/|_| \__,_|\___| \_/ \___|_|\___/| .__/ \___|_| |___/ +// ______ ______ ______ ______ ______ ______ ______ ______ | | +// |______|______|______|______|______|______|______|______| |_| +// + + + + + + + + +#import "QCloudAppendObjectRequest.h" +#import +#import +#import + + +NS_ASSUME_NONNULL_BEGIN +@implementation QCloudAppendObjectRequest +- (void) dealloc +{ +} +- (instancetype) init +{ + self = [super init]; + if (!self) { + return nil; + } + return self; +} +- (void) configureReuqestSerializer:(QCloudRequestSerializer *)requestSerializer responseSerializer:(QCloudResponseSerializer *)responseSerializer +{ + + NSArray* customRequestSerilizers = @[ + QCloudURLFuseURIMethodASURLParamters, + QCloudURLFuseWithURLEncodeParamters, + ]; + + NSArray* responseSerializers = @[ + QCloudAcceptRespnseCodeBlock([NSSet setWithObjects:@(200), @(201), @(202), @(203), @(204), @(205), @(206), @(207), @(208), @(226), nil], nil), + + QCloudResponseAppendHeadersSerializerBlock, + ]; + [requestSerializer setSerializerBlocks:customRequestSerilizers]; + [responseSerializer setSerializerBlocks:responseSerializers]; + + requestSerializer.HTTPMethod = @"post"; +} + + + +- (BOOL) buildRequestData:(NSError *__autoreleasing *)error +{ + if (![super buildRequestData:error]) { + return NO; + } + [self.requestData setNumberParamter:@(self.position) withKey:@"position"]; + self.requestData.URIMethod = @"append"; + if (!self.bucket || ([self.bucket isKindOfClass:NSString.class] && ((NSString*)self.bucket).length == 0)) { + if (error != NULL) { + *error = [NSError qcloud_errorWithCode:QCloudNetworkErrorCodeParamterInvalid message:[NSString stringWithFormat:@"paramter[bucket] is invalid (nil), it must have some value. please check it"]]; + return NO; + } + } + + NSURL *__serverURL = [self.runOnService.configuration.endpoint serverURLWithBucket:self.bucket + appID:self.runOnService.configuration.appID + regionName:self.regionName]; + + self.requestData.serverURL = __serverURL.absoluteString; + [self.requestData setValue:__serverURL.host forHTTPHeaderField:@"Host"]; + if (!self.object || ([self.object isKindOfClass:NSString.class] && ((NSString*)self.object).length == 0)) { + if (error != NULL) { + *error = [NSError qcloud_errorWithCode:QCloudNetworkErrorCodeParamterInvalid message:[NSString stringWithFormat:@"paramter[object] is invalid (nil), it must have some value. please check it"]]; + return NO; + } + } + if (self.cacheControl) { + [self.requestData setValue:self.cacheControl forHTTPHeaderField:@"Cache-Control"]; + } + if (self.contentDisposition) { + [self.requestData setValue:self.contentDisposition forHTTPHeaderField:@"Content-Disposition"]; + } + if (self.expect) { + [self.requestData setValue:self.expect forHTTPHeaderField:@"Expect"]; + } + if (self.expires) { + [self.requestData setValue:self.expires forHTTPHeaderField:@"Expires"]; + } + if (self.contentSHA1) { + [self.requestData setValue:self.contentSHA1 forHTTPHeaderField:@"x-cos-content-sha1"]; + } + [self.requestData setValue:QCloudCOSStorageClassTransferToString(self.storageClass) forHTTPHeaderField:@"x-cos-storage-class"]; + if (self.accessControlList) { + [self.requestData setValue:self.accessControlList forHTTPHeaderField:@"x-cos-acl"]; + } + if (self.grantRead) { + [self.requestData setValue:self.grantRead forHTTPHeaderField:@"x-cos-grant-read"]; + } + if (self.grantWrite) { + [self.requestData setValue:self.grantWrite forHTTPHeaderField:@"x-cos-grant-write"]; + } + if (self.grantFullControl) { + [self.requestData setValue:self.grantFullControl forHTTPHeaderField:@"x-cos-grant-full-control"]; + } + NSMutableArray* __pathComponents = [NSMutableArray arrayWithArray:self.requestData.URIComponents]; + if(self.object) [__pathComponents addObject:self.object]; + self.requestData.URIComponents = __pathComponents; + self.requestData.directBody = self.body; + return YES; +} + +- (QCloudSignatureFields*) signatureFields +{ + QCloudSignatureFields* fileds = [QCloudSignatureFields new]; + + return fileds; +} + +@end +NS_ASSUME_NONNULL_END diff --git a/Pods/QCloudCOSXML/QCloudCOSXML/Classes/Transfer/request/QCloudCOSXMLCopyObjectRequest.h b/Pods/QCloudCOSXML/QCloudCOSXML/Classes/Transfer/request/QCloudCOSXMLCopyObjectRequest.h new file mode 100644 index 0000000..2a205bd --- /dev/null +++ b/Pods/QCloudCOSXML/QCloudCOSXML/Classes/Transfer/request/QCloudCOSXMLCopyObjectRequest.h @@ -0,0 +1,156 @@ +// +// QCloudCOSXMLCopyObjectRequest.h +// QCloudCOSXML +// +// Created by erichmzhang(张恒铭) on 16/11/2017. +// +#import +#import +#import "QCloudCOSStorageClassEnum.h" +#import "QCloudCopyObjectResult.h" +#import "QCloudCOSTransferMangerService.h" +NS_ASSUME_NONNULL_BEGIN +typedef void (^CopyProgressBlock)(int64_t partsSent, int64_t totalPartsExpectedToSent); +typedef void (^RequestsMetricArrayBlock)(NSMutableArray *_Nullable requstMetricArray); + +/** + 复制对象 + + 1:先初始化一个 QCloudCOSXMLCopyObjectRequest 对象 + + 2:然后调用 QCloudCOSTransferMangerService 的 CopyObject 方法即可。 + + 注意对于比较大的文件,将会使用分块复制的方式进行复制。这个过程对于用户是没有感知的。 + + ### 示例 + + @code + + QCloudCOSXMLCopyObjectRequest* request = [[QCloudCOSXMLCopyObjectRequest alloc] init]; + request.bucket = @"examplebucket-1250000000";//目的 \,需要是公有读或者在当前账号有权限 + request.object = @"exampleobject";//目的文件名称 + //文件来源 \,需要是公有读或者在当前账号有权限 + request.sourceBucket = @"sourcebucket-1250000000"; + request.sourceObject = @"sourceObject";//源文件名称 + request.sourceAPPID = @"1250000000";//源文件的 APPID + request.sourceRegion= @"COS_REGION";//来源的地域 + + [request setFinishBlock:^(QCloudCopyObjectResult* result, NSError* error) { + //可以从 outputObject 中获取 response 中 etag 或者自定义头部等信息 + }]; + + //注意如果是跨地域复制,这里使用的 transferManager 所在的 region 必须为目标桶所在的 region + [[QCloudCOSTransferMangerService defaultCOSTransferManager] CopyObject:request]; + + */ + +@interface QCloudCOSXMLCopyObjectRequest : QCloudAbstractRequest +/** + 对象名 + */ +@property (strong, nonatomic) NSString *object; +/** + 存储桶名 + */ +@property (strong, nonatomic) NSString *bucket; + +/** + 复制的源文件所在Bucket + */ +@property (nonatomic, copy) NSString *sourceBucket; + +/** + 复制的源文件的对象名,key + */ +@property (nonatomic, copy) NSString *sourceObject; + +/** + 复制的源文件的appID + */ +@property (nonatomic, copy) NSString *sourceAPPID; + +/** + 复制的源文件所在的区域。 + */ +@property (nonatomic, copy) NSString *sourceRegion; +/** + 源文件的版本ID + */ +@property (nonatomic, copy) NSString *sourceObjectVersionID; +/** + 是否拷贝元数据,枚举值:Copy, Replaced,默认值 Copy。假如标记为 Copy,忽略 Header + 中的用户元数据信息直接复制;假如标记为 Replaced,按 Header 信息修改元数据。当目标路径和原路径一致 + ,即用户试图修改元数据时,必须为 Replaced + */ +@property (strong, nonatomic) NSString *metadataDirective; +/** + 当 Object 在指定时间后被修改,则执行操作,否则返回 412。可与 x-cos-copy-source-If-None-Match + 一起使用,与其他条件联合使用返回冲突。 + */ +@property (strong, nonatomic) NSString *objectCopyIfModifiedSince; +/** + 当 Object 在指定时间后未被修改,则执行操作,否则返回 412。可与 x-cos-copy-source-If-Match + 一起使用,与其他条件联合使用返回冲突。 + */ +@property (strong, nonatomic) NSString *objectCopyIfUnmodifiedSince; +/** + 当 Object 的 Etag 和给定一致时,则执行操作,否则返回 412。可与x-cos-copy-source-If-Unmodified-Since + 一起使用,与其他条件联合使用返回冲突。 + */ +@property (strong, nonatomic) NSString *objectCopyIfMatch; +/** + 当 Object 的 Etag 和给定不一致时,则执行操作,否则返回 412。可与 x-cos-copy-source-If-Modified-Since + 一起使用,与其他条件联合使用返回冲突。 + */ +@property (strong, nonatomic) NSString *objectCopyIfNoneMatch; +/** + Object 的存储级别 + */ +@property (assign, nonatomic) QCloudCOSStorageClass storageClass; +/** + 定义 Object 的 ACL 属性。有效值:private,public-read-write,public-read;默认值:private + */ +@property (strong, nonatomic) NSString *accessControlList; +/** + 赋予被授权者读的权限。格式:id=" ",id=" "; + 当需要给子账户授权时,id="qcs::cam::uin/\:uin/\", + 当需要给根账户授权时,id="qcs::cam::uin/\:uin/\" + */ +@property (strong, nonatomic) NSString *grantRead; +/** + 赋予被授权者写的权限。格式:id=" ",id=" "; + 当需要给子账户授权时,id="qcs::cam::uin/\:uin/\", + 当需要给根账户授权时,id="qcs::cam::uin/\:uin/\" + */ +@property (strong, nonatomic) NSString *grantWrite; +/** + 赋予被授权者读写权限。格式: id=" ",id=" " ; + 当需要给子账户授权时,id="qcs::cam::uin/\:uin/\", + 当需要给根账户授权时,id="qcs::cam::uin/\:uin/\" + */ +@property (strong, nonatomic) NSString *grantFullControl; + +@property (nonatomic, weak) QCloudCOSTransferMangerService *transferManager; +/* + 在进行HTTP请求的时候,可以通过设置该参数来设置自定义的一些头部信息。 + 通常情况下,携带特定的额外HTTP头部可以使用某项功能,如果是这类需求,可以通过设置该属性来实现。 + */ +@property (strong, nonatomic) NSMutableDictionary *customHeaders; +@property (strong, nonatomic) NSString *regionName; +/** + 在对大文件进行复制的过程中,会通过分片的方式进行复制。从该进度回调里可以获取当前已经复制了多少分片。 + + @param copyProgressBlock 进度回调block + */ +- (void)setCopyProgressBlock:(void (^)(int64_t partsSent, int64_t totalPartsExpectedToSent))copyProgressBlock; +@property (nonatomic, copy) RequestsMetricArrayBlock requstsMetricArrayBlock; + +/** + Copy操作完成后的回调 + + @param QCloudRequestFinishBlock 完成回调 + */ +- (void)setFinishBlock:(void (^_Nullable)(QCloudCopyObjectResult *_Nullable result, NSError *_Nullable error))QCloudRequestFinishBlock; +- (void)setCOSServerSideEncyptionWithCustomerKey:(NSString *)customerKey; +@end +NS_ASSUME_NONNULL_END diff --git a/Pods/QCloudCOSXML/QCloudCOSXML/Classes/Transfer/request/QCloudCOSXMLCopyObjectRequest.m b/Pods/QCloudCOSXML/QCloudCOSXML/Classes/Transfer/request/QCloudCOSXMLCopyObjectRequest.m new file mode 100644 index 0000000..ee6f97d --- /dev/null +++ b/Pods/QCloudCOSXML/QCloudCOSXML/Classes/Transfer/request/QCloudCOSXMLCopyObjectRequest.m @@ -0,0 +1,358 @@ + +// +// QCloudCOSXMLCopyObjectRequest.m +// QCloudCOSXML +// +// Created by erichmzhang(张恒铭) on 16/11/2017. +// + +#import "QCloudCOSXMLCopyObjectRequest.h" +#import "QCloudCOSXMLService.h" +#import "QCloudPutObjectRequest.h" +#import "QCloudCOSXMLService+Transfer.h" + +#import "QCloudMultipartInfo.h" +#import "QCloudCOSXMLTransfer.h" +#import "QCloudCompleteMultipartUploadRequest.h" +#import "QCloudCompleteMultipartUploadInfo.h" +#import "QCloudHeadObjectRequest.h" +#import +static NSString *const kTempServiceKey = @"tempServiceKey"; +static NSString *const kContentLengthKey = @"Content-Length"; +static NSString *const kLastModifiedKey = @"Last-Modified"; +static const int64_t kMultipartThreshold = 5242880; +static const int64_t kCopySliceLength = 5242880; + +@interface QCloudCOSXMLCopyObjectRequest () +@property (nonatomic, assign) int64_t fileSize; +@property (nonatomic, assign) int64_t sliceCount; +@property (nonatomic, strong) dispatch_source_t dispatchSource; +@property (nonatomic, copy) NSString *uploadID; +@property (nonatomic, strong) NSMutableArray *uploadParts; +@property (nonatomic, copy) NSString *lastModified; +@property (nonatomic, copy) CopyProgressBlock copyProgressBlock; +@property (strong, nonatomic) NSMutableArray *requstMetricArray; +@end + +@implementation QCloudCOSXMLCopyObjectRequest + +- (instancetype)init { + self = [super init]; + if (!self) { + return nil; + } + _customHeaders = [NSMutableDictionary dictionary]; + _requstMetricArray = [NSMutableArray array]; + _fileSize = 0; + _sliceCount = 0; + return self; +} + +- (void)fakeStart { + QCloudHeadObjectRequest *headObjectRequest = [[QCloudHeadObjectRequest alloc] init]; + NSMutableDictionary *customHeaders = [NSMutableDictionary dictionary]; + if (self.customHeaders) { + if ([self.customHeaders objectForKey:@"x-cos-copy-source-server-side-encryption-customer-algorithm"]) { + customHeaders[@"x-cos-server-side-encryption-customer-algorithm"] + = self.customHeaders[@"x-cos-copy-source-server-side-encryption-customer-algorithm"]; + } + if ([self.customHeaders objectForKey:@"x-cos-copy-source-server-side-encryption-customer-key"]) { + customHeaders[@"x-cos-server-side-encryption-customer-key"] + = self.customHeaders[@"x-cos-copy-source-server-side-encryption-customer-key"]; + } + if ([self.customHeaders objectForKey:@"x-cos-copy-source-server-side-encryption-customer-key-MD5"]) { + customHeaders[@"x-cos-server-side-encryption-customer-key-MD5"] + = self.customHeaders[@"x-cos-copy-source-server-side-encryption-customer-key-MD5"]; + } + } + + headObjectRequest.customHeaders = [customHeaders mutableCopy]; + headObjectRequest.bucket = self.sourceBucket; + headObjectRequest.payload = self.payload; + headObjectRequest.regionName = self.sourceRegion; + headObjectRequest.priority = self.priority; + headObjectRequest.enableQuic = self.enableQuic; + headObjectRequest.endpoint = self.endpoint; + headObjectRequest.networkType = self.networkType; + headObjectRequest.object = self.sourceObject; + headObjectRequest.ifModifiedSince = self.objectCopyIfModifiedSince; + __weak typeof(headObjectRequest) weakRequest = headObjectRequest; + __weak typeof(self) weakSelf = self; + [headObjectRequest setFinishBlock:^(id outputObject, NSError *error) { + __strong typeof(weakSelf) strongSelf = weakSelf; + __strong typeof(weakRequest) strongRequst = weakRequest; + [strongSelf.requstMetricArray addObject:@ { [NSString stringWithFormat:@"%@", strongRequst] : weakRequest.benchMarkMan.tastMetrics }]; + if (error) { + if (self.finishBlock) { + self.finishBlock(nil, error); + } + } else { + NSDictionary *resultDictionray = (NSDictionary *)outputObject; + int64_t fileSize = [resultDictionray[kContentLengthKey] longLongValue]; + weakSelf.lastModified = resultDictionray[kLastModifiedKey]; + if (fileSize > kMultipartThreshold) { + weakSelf.sliceCount = fileSize / kCopySliceLength; + if (fileSize % kCopySliceLength != 0) { + weakSelf.sliceCount++; + } + weakSelf.fileSize = fileSize; + [weakSelf multipleCopy]; + } else { + [weakSelf simpleCopy]; + } + } + }]; + QCloudCOSXMLService *service = [self tempService]; + [service HeadObject:headObjectRequest]; +} + +- (void)simpleCopy { + QCloudPutObjectCopyRequest *request = [[QCloudPutObjectCopyRequest alloc] init]; + request.priority = self.priority; + request.enableQuic = self.enableQuic; + request.endpoint = self.endpoint; + request.networkType = self.networkType; + request.customHeaders = [self.customHeaders mutableCopy]; + request.regionName = self.regionName; + request.bucket = self.bucket; + request.object = self.object; + request.objectCopyIfMatch = self.objectCopyIfMatch; + request.objectCopyIfNoneMatch = self.objectCopyIfNoneMatch; + request.objectCopyIfModifiedSince = self.objectCopyIfModifiedSince; + request.objectCopyIfUnmodifiedSince = self.objectCopyIfUnmodifiedSince; + request.accessControlList = self.accessControlList; + request.grantRead = self.grantRead; + request.grantWrite = self.grantWrite; + request.grantFullControl = self.grantFullControl; + request.payload = self.payload; + QCloudCOSXMLService *service = [self tempService]; + __weak typeof(request) weakRequest = request; + __weak typeof(self) weakSelf = self; + [request setFinishBlock:^(QCloudCopyObjectResult *_Nonnull result, NSError *_Nonnull error) { + __strong typeof(weakSelf) strongSelf = weakSelf; + __strong typeof(weakRequest) strongRequst = weakRequest; + [strongSelf.requstMetricArray addObject:@ { [NSString stringWithFormat:@"%@", strongRequst] : weakRequest.benchMarkMan.tastMetrics }]; + + if (self.requstsMetricArrayBlock) { + self.requstsMetricArrayBlock(self.requstMetricArray); + } + self.finishBlock(result, error); + }]; + NSMutableString *objectCopySource = [NSMutableString string]; + NSString *serviceURL = + [service.configuration.endpoint serverURLWithBucket:self.sourceBucket appID:self.sourceAPPID regionName:self.sourceRegion].absoluteString; + [objectCopySource appendString:[serviceURL componentsSeparatedByString:@"://"][1]]; + if (self.sourceObjectVersionID.length) { + [objectCopySource appendFormat:@"/%@/%@", QCloudPercentEscapedStringFromString(self.sourceObject), self.sourceObjectVersionID]; + } else { + [objectCopySource appendFormat:@"/%@", QCloudPercentEscapedStringFromString(self.sourceObject)]; + } + request.objectCopySource = objectCopySource; + QCloudLogDebugP(@"Copy",@"Object copy source url %@", objectCopySource); + [self.transferManager.cosService PutObjectCopy:request]; +} + +- (void)multipleCopy { + QCloudInitiateMultipartUploadRequest *initMultipartUploadRequest = [[QCloudInitiateMultipartUploadRequest alloc] init]; + initMultipartUploadRequest.bucket = self.bucket; + initMultipartUploadRequest.priority = self.priority; + initMultipartUploadRequest.enableQuic = self.enableQuic; + initMultipartUploadRequest.endpoint = self.endpoint; + initMultipartUploadRequest.networkType = self.networkType; + initMultipartUploadRequest.regionName = self.regionName; + initMultipartUploadRequest.payload = self.payload; + initMultipartUploadRequest.object = self.object; + initMultipartUploadRequest.customHeaders = [self.customHeaders mutableCopy]; + __weak typeof(self) weakSelf = self; + __weak typeof(initMultipartUploadRequest) weakRequest = initMultipartUploadRequest; + [initMultipartUploadRequest setFinishBlock:^(QCloudInitiateMultipartUploadResult *result, NSError *error) { + __strong typeof(weakSelf) strongSelf = weakSelf; + __strong typeof(weakRequest) strongRequst = weakRequest; + [strongSelf.requstMetricArray addObject:@ { [NSString stringWithFormat:@"%@", strongRequst] : weakRequest.benchMarkMan.tastMetrics }]; + + if (nil == error) { + weakSelf.uploadID = result.uploadId; + [weakSelf uploadCopyParts]; + } else { + if (weakSelf.finishBlock) { + weakSelf.finishBlock(nil, error); + } + } + }]; + + [self.transferManager.cosService InitiateMultipartUpload:initMultipartUploadRequest]; +} + +- (void)uploadCopyParts { + QCloudCOSXMLService *service = [self tempService]; + __weak typeof(self) weakSelf = self; + self.dispatchSource = dispatch_source_create(DISPATCH_SOURCE_TYPE_DATA_ADD, 0, 0, dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_HIGH, 0)); + __block int64_t totalComplete = 0; + dispatch_source_set_event_handler(self.dispatchSource, ^{ + NSUInteger value = dispatch_source_get_data(weakSelf.dispatchSource); + totalComplete += value; + if (weakSelf.copyProgressBlock) { + weakSelf.copyProgressBlock(totalComplete, weakSelf.sliceCount); + } + if (totalComplete == self.sliceCount) { + [weakSelf finishUploadParts]; + dispatch_source_cancel(weakSelf.dispatchSource); + } + }); + dispatch_resume(self.dispatchSource); + for (int64_t i = 0; i * kCopySliceLength < self.fileSize; i++) { + @autoreleasepool { + QCloudUploadPartCopyRequest *request = [[QCloudUploadPartCopyRequest alloc] init]; + request.enableQuic = self.enableQuic; + request.endpoint = self.endpoint; + request.networkType = self.networkType; + request.bucket = self.bucket; + request.customHeaders = [self.customHeaders mutableCopy]; + request.payload = self.payload; + request.object = self.object; + request.regionName = self.regionName; + NSMutableString *objectCopySource = [NSMutableString string]; + NSString *serviceURL = [service.configuration.endpoint serverURLWithBucket:self.sourceBucket + appID:self.sourceAPPID + regionName:self.sourceRegion] + .absoluteString; + [objectCopySource appendString:[serviceURL componentsSeparatedByString:@"://"][1]]; + if (self.sourceObjectVersionID.length) { + [objectCopySource appendFormat:@"/%@/%@", QCloudPercentEscapedStringFromString(self.sourceObject), self.sourceObjectVersionID]; + } else { + [objectCopySource appendFormat:@"/%@", QCloudPercentEscapedStringFromString(self.sourceObject)]; + } + request.source = objectCopySource; + request.uploadID = self.uploadID; + request.partNumber = i + 1; + request.priority = QCloudAbstractRequestPriorityLow; + int64_t currentOffset = i * kCopySliceLength; + int64_t sliceLength = MIN(self.fileSize - currentOffset, kCopySliceLength); + request.sourceRange = [self copySourceRangeWithFirst:currentOffset last:sliceLength + currentOffset - 1]; + __weak typeof(request) weakRequest = request; + __weak typeof(self) weakSelf = self; + [request setFinishBlock:^(QCloudCopyObjectResult *result, NSError *error) { + __strong typeof(weakSelf) strongSelf = weakSelf; + __strong typeof(weakRequest) strongRequst = weakRequest; + [strongSelf.requstMetricArray addObject:@ { [NSString stringWithFormat:@"%@", strongRequst] : weakRequest.benchMarkMan.tastMetrics }]; + if (error) { + [weakSelf onError:error]; + [weakSelf cancel]; + } else { + QCloudMultipartInfo *info = [[QCloudMultipartInfo alloc] init]; + info.eTag = result.eTag; + info.partNumber = [@(i + 1) stringValue]; + [weakSelf markPartFinish:info]; + + dispatch_source_merge_data(weakSelf.dispatchSource, 1); + } + }]; + + [self.transferManager.cosService UploadPartCopy:request]; + } + } +} + +- (void)cancel { +} + +- (void)finishUploadParts { + QCloudCompleteMultipartUploadRequest *request = [[QCloudCompleteMultipartUploadRequest alloc] init]; + request.bucket = self.bucket; + request.object = self.object; + request.regionName = self.regionName; + request.payload = self.payload; + request.uploadId = self.uploadID; + request.priority = self.priority; + request.enableQuic = self.enableQuic; + request.endpoint = self.endpoint; + request.networkType = self.networkType; + QCloudCompleteMultipartUploadInfo *info = [[QCloudCompleteMultipartUploadInfo alloc] init]; + [self.uploadParts sortUsingComparator:^NSComparisonResult(QCloudMultipartInfo *obj1, QCloudMultipartInfo *obj2) { + if (obj1.partNumber.longLongValue > obj2.partNumber.longLongValue) { + return NSOrderedDescending; + } else { + return NSOrderedAscending; + } + }]; + info.parts = self.uploadParts; + request.parts = info; + __weak typeof(request) weakRequest = request; + __weak typeof(self) weakSelf = self; + [request setFinishBlock:^(QCloudUploadObjectResult *result, NSError *error) { + __strong typeof(weakSelf) strongSelf = weakSelf; + __strong typeof(weakRequest) strongRequst = weakRequest; + [strongSelf.requstMetricArray addObject:@ { [NSString stringWithFormat:@"%@", strongRequst] : weakRequest.benchMarkMan.tastMetrics }]; + + if (self.requstsMetricArrayBlock) { + self.requstsMetricArrayBlock(self.requstMetricArray); + } + if (nil == error) { + QCloudCopyObjectResult *copyResult = [[QCloudCopyObjectResult alloc] init]; + copyResult.eTag = result.eTag; + copyResult.lastModified = self.lastModified; + if (weakSelf.finishBlock) { + weakSelf.finishBlock(copyResult, error); + } + } else { + if (weakSelf.finishBlock) { + weakSelf.finishBlock(nil, error); + } + } + }]; + [self.transferManager.cosService CompleteMultipartUpload:request]; +} + +- (QCloudCOSXMLService *)tempService { + static dispatch_once_t onceToken; + static QCloudCOSXMLService *service; + dispatch_once(&onceToken, ^{ + QCloudServiceConfiguration *configuration = [QCloudServiceConfiguration new]; + configuration.signatureProvider = self.transferManager.configuration.signatureProvider; + configuration.appID = self.sourceAPPID; + configuration.endpoint.useHTTPS = self.transferManager.configuration.endpoint.useHTTPS; + QCloudCOSXMLEndPoint *endpoint = [[QCloudCOSXMLEndPoint alloc] init]; + endpoint.regionName = self.sourceRegion; + endpoint.serviceName = self.transferManager.configuration.endpoint.serviceName; + endpoint.useHTTPS = self.transferManager.configuration.endpoint.useHTTPS; + configuration.endpoint = endpoint; + service = [QCloudCOSXMLService registerCOSXMLWithConfiguration:configuration withKey:kTempServiceKey]; + }); + return service; +} + +- (void)setFinishBlock:(void (^)(QCloudCopyObjectResult *_Nullable result, NSError *_Nullable error))QCloudRequestFinishBlock { + [super setFinishBlock:QCloudRequestFinishBlock]; +} + +- (NSString *)copySourceRangeWithFirst:(int64_t)first last:(int64_t)last { + NSString *result = [NSString stringWithFormat:@"bytes=%lld-%lld", first, last]; + return result; +} + +- (void)markPartFinish:(QCloudMultipartInfo *)info { + if (!info) { + return; + } + [self.uploadParts addObject:info]; +} + +- (NSMutableArray *)uploadParts { + if (!_uploadParts) { + _uploadParts = [NSMutableArray array]; + } + return _uploadParts; +} +- (void)setCopyProgressBlock:(void (^)(int64_t, int64_t))copyProgressBlock { + _copyProgressBlock = copyProgressBlock; +} +- (void)setCOSServerSideEncyptionWithCustomerKey:(NSString *)customerKey { + NSData *data = [customerKey dataUsingEncoding:NSUTF8StringEncoding]; + NSString *excryptAES256Key = [data base64EncodedStringWithOptions:0]; // base64格式的字符串 + NSString *base64md5key = QCloudEncrytNSDataMD5Base64(data); + self.customHeaders[@"x-cos-copy-source-server-side-encryption-customer-algorithm"] = @"AES256"; + self.customHeaders[@"x-cos-copy-source-server-side-encryption-customer-key"] = excryptAES256Key; + self.customHeaders[@"x-cos-copy-source-server-side-encryption-customer-key-MD5"] = base64md5key; +} + +@end diff --git a/Pods/QCloudCOSXML/QCloudCOSXML/Classes/Transfer/request/QCloudCOSXMLDownloadObjectRequest.h b/Pods/QCloudCOSXML/QCloudCOSXML/Classes/Transfer/request/QCloudCOSXMLDownloadObjectRequest.h new file mode 100644 index 0000000..7fde1f0 --- /dev/null +++ b/Pods/QCloudCOSXML/QCloudCOSXML/Classes/Transfer/request/QCloudCOSXMLDownloadObjectRequest.h @@ -0,0 +1,144 @@ +// +// QCloudCOSXMLDownloadObjectRequest.h +// Pods-QCloudCOSXMLDemo +// +// Created by karisli(李雪) on 2018/8/23. +// + +#import + +@class QCloudCOSTransferMangerService; + +/** + ### 示例 + + @code + + QCloudCOSXMLDownloadObjectRequest * request = [QCloudCOSXMLDownloadObjectRequest new]; + request.bucket = @"bucket"; + request.object = @"object"; + request.enableQuic = YES; + request.localCacheDownloadOffset = 本地已下载的文件大小 + [request setFinishBlock:^(id _Nullable outputObject, NSError * _Nullable error) { + + + }]; + [[QCloudCOSTransferMangerService costransfermangerServiceForKey:ServiceKey] + DownloadObject:request]; + */ +@interface QCloudCOSXMLDownloadObjectRequest : QCloudAbstractRequest + +/** + 设置响应头部中的 Content-Type参数 + */ +@property (strong, nonatomic) NSString *responseContentType; +/** + 设置响应头部中的Content-Language参数 + */ +@property (strong, nonatomic) NSString *responseContentLanguage; +/** + 设置响应头部中的Content-Expires参数 + */ +@property (strong, nonatomic) NSString *responseContentExpires; +/** + 设置响应头部中的Cache-Control参数 + */ +@property (strong, nonatomic) NSString *responseCacheControl; +/** + 设置响应头部中的 Content-Disposition 参数。 + */ +@property (strong, nonatomic) NSString *responseContentDisposition; +/** + 设置响应头部中的 Content-Encoding 参数。 + */ +@property (strong, nonatomic) NSString *responseContentEncoding; +/** + RFC 2616 中定义的指定文件下载范围,以字节(bytes)为单位 + */ +@property (strong, nonatomic) NSString *range; +/** + 如果文件修改时间晚于指定时间,才返回文件内容。否则返回 412 (not modified) + */ +@property (strong, nonatomic) NSString *ifModifiedSince; +/** + 如果文件修改时间早于或等于指定时间,才返回文件内容。否则返回 412 (precondition failed) + */ +@property (strong, nonatomic) NSString *ifUnmodifiedModifiedSince; +/** + 当 ETag 与指定的内容一致,才返回文件。否则返回 412 (precondition failed) + */ +@property (strong, nonatomic) NSString *ifMatch; +/** + 当 ETag 与指定的内容不一致,才返回文件。否则返回 304 (not modified) + */ +@property (strong, nonatomic) NSString *ifNoneMatch; + +/** + 对象名 + */ +@property (strong, nonatomic) NSString *object; +/** + 存储桶名 + */ +@property (strong, nonatomic) NSString *bucket; + +/** + 桶所在地域 +*/ +@property (strong, nonatomic) NSString *regionName; + +/** +该选项设置为YES后,在下载完成后会比对COS上储存的文件MD5和下载到本地的文件MD5,如果MD5有差异的话会返回-340013错误码。 +目前默认关闭。 +*/ +@property (assign, nonatomic) BOOL enableMD5Verification; + +/** +指定 Object 的 VersionID (在开启多版本的情况下) +*/ +@property (strong, nonatomic) NSString *versionID; + +/** + 如果存在改参数,则数据会下载到改路径指名的地址下面,而不会写入内存中。 + */ +@property (nonatomic, strong) NSURL *downloadingURL; + +/** + 本地已经下载的数据偏移量,如果使用则会从改位置开始下载,如果不使用,则从头开始下载,如果您使用了Range参数,则需要注意改参数。 + */ +@property (nonatomic, assign) int64_t localCacheDownloadOffset; +@property (nonatomic, weak) QCloudCOSTransferMangerService *transferManager; +/* + 在进行HTTP请求的时候,可以通过设置该参数来设置自定义的一些头部信息。 + 通常情况下,携带特定的额外HTTP头部可以使用某项功能,如果是这类需求,可以通过设置该属性来实现。 + */ +@property (strong, nonatomic) NSMutableDictionary *customHeaders; +/** + 指定是否使用分块及续传下载,默认为 FALSE。 + */ +@property (assign, nonatomic)BOOL resumableDownload; +/** + 使用分块及续传下载时,指定任务记录文件的路径 + */ +@property (strong, nonatomic) NSString *resumableTaskFile; + +/** + 续传时,是否将续传前的进度并入进度回调中。默认 NO + 例如,下载一个 100m文件,已经下载20m,续传是: + 设置NO:则进度将会从0走到80。 + 设置YES:则进度将会从20走到100。 + */ +@property (assign, nonatomic) BOOL resumeLocalProcess; + +/// 是否使用路径检查,true为开启,false为关闭,默认为true;。 +@property (assign, nonatomic) BOOL objectKeySimplifyCheck; + +/// 是否开启crc64校验,默认开启。 +@property (assign, nonatomic) BOOL enablePartCrc64; + +//针对本次下载行流量控制的限速值,必须为数字,单位默认为 bit/s。限速值设置范围为819200 - 838860800,即100KB/s - 100MB/s,如果超出该范围将返回400错误 +@property (nonatomic, assign) NSInteger trafficLimit; +- (void)setCOSServerSideEncyption; +- (void)setCOSServerSideEncyptionWithCustomerKey:(NSString *)customerKey; + +@end diff --git a/Pods/QCloudCOSXML/QCloudCOSXML/Classes/Transfer/request/QCloudCOSXMLDownloadObjectRequest.m b/Pods/QCloudCOSXML/QCloudCOSXML/Classes/Transfer/request/QCloudCOSXMLDownloadObjectRequest.m new file mode 100644 index 0000000..efb654b --- /dev/null +++ b/Pods/QCloudCOSXML/QCloudCOSXML/Classes/Transfer/request/QCloudCOSXMLDownloadObjectRequest.m @@ -0,0 +1,470 @@ +// +// QCloudCOSXMLDownloadObjectRequest.m +// Pods-QCloudCOSXMLDemo +// +// Created by karisli(李雪) on 2018/8/23. +// + +#import "QCloudCOSXMLDownloadObjectRequest.h" +#import "QCloudGetObjectRequest.h" +#import "QCloudGetObjectRequest+Custom.h" +#import "QCloudCOSTransferMangerService.h" +#import "QCloudCOSXMLService+Transfer.h" +#import "QCloudHeadObjectRequest.h" +#import +#pragma clang diagnostic push +#pragma clang diagnostic ignored "-Wundeclared-selector" + +#define CRC64PartLength 10 * 1024 * 1024 + +@interface QCloudCOSXMLDownloadObjectRequest() +@property (nonatomic,assign)NSInteger retryCount; +//存储所有的下载请求 +@property (nonatomic, strong) NSPointerArray *requestCacheArray; +@property (nonatomic, strong) dispatch_source_t queueSource; +@property (nonatomic, strong) NSURL *_Nonnull downloadingTempURL; +@property (nonatomic,strong)NSMutableDictionary * partCrc64Map; +@property (nonatomic,strong)dispatch_queue_t crcQueue; +@property (nonatomic,assign)NSInteger crc64Start; +@property (nonatomic,assign)NSInteger crc64Complete; +@property (nonatomic,strong)NSString * partCrc64Filepath; +@end + +@implementation QCloudCOSXMLDownloadObjectRequest +#pragma clang diagnostic pop +- (void)dealloc { + QCloudLogInfoP(@"Download",@"QCloudCOSXMLDownloadObjectRequest = %@ dealloc", self); + if (NULL != _queueSource) { + dispatch_source_cancel(_queueSource); + } +} +- (instancetype)init { + self = [super init]; + if (!self) { + return nil; + } + self.enablePartCrc64 = YES; + self.objectKeySimplifyCheck = YES; + _customHeaders = [NSMutableDictionary dictionary]; + _partCrc64Map = [NSMutableDictionary new]; + _requestCacheArray = [NSPointerArray weakObjectsPointerArray]; + _crcQueue = dispatch_queue_create("com.qcloud.crc64.queue", DISPATCH_QUEUE_SERIAL); + return self; +} +- (void)fakeStart { + if(!self.resumableDownload){ + [self startGetObject]; + return; + }else{ + if(!self.resumableTaskFile){ + if(!self.downloadingURL){ + NSError *error = [NSError qcloud_errorWithCode:QCloudNetworkErrorCodeParamterInvalid + message:@"InvalidArgument:您输入的downloadingURL不合法,请检查后使用!!"]; + if(self.finishBlock){ + self.finishBlock(nil, error); + return; + } + } + self.resumableTaskFile = [NSString stringWithFormat:@"%@.cosresumabletask",self.downloadingURL.relativePath]; + + } + QCloudHeadObjectRequest *headReq = [QCloudHeadObjectRequest new]; + headReq.bucket = self.bucket; + headReq.payload = self.payload; + headReq.regionName = self.regionName; + headReq.object = self.object; + headReq.enableQuic = self.enableQuic; + headReq.endpoint = self.endpoint; + headReq.networkType = self.networkType; + [headReq setFinishBlock:^(id _Nullable outputObject, NSError * _Nullable error) { + if(error){ + self.finishBlock(outputObject, error); + return; + + } + BOOL exist = [[NSFileManager defaultManager] fileExistsAtPath:self.resumableTaskFile]; + NSMutableDictionary *lowercaseStringDic = [NSMutableDictionary dictionary]; + [(NSDictionary*)outputObject enumerateKeysAndObjectsUsingBlock:^(NSString *key, id _Nonnull obj, BOOL * _Nonnull stop) { + [lowercaseStringDic setValue:obj forKey:key.lowercaseString]; + }]; + if (!exist) { + [[NSFileManager defaultManager] createFileAtPath:self.resumableTaskFile contents:[NSData data] attributes:nil]; + NSMutableDictionary *dic = [NSMutableDictionary dictionary]; + [dic setValue:lowercaseStringDic[@"last-modified"] forKey:@"lastModified"]; + [dic setValue:lowercaseStringDic[@"content-length"] forKey:@"contentLength"]; + [dic setValue:lowercaseStringDic[@"etag"] forKey:@"etag"]; + [dic setValue:lowercaseStringDic[@"x-cos-hash-crc64ecma"] forKey:@"crc64ecma"]; + NSError *parseError; + if(dic){ + NSData *info =[NSJSONSerialization dataWithJSONObject:[dic copy] options:NSJSONWritingPrettyPrinted error:&parseError]; + NSError *writeDataError; + [info writeToFile:self.resumableTaskFile options:0 error:&writeDataError]; + } + }else{ + NSData *jsonData = [[NSData alloc] initWithContentsOfFile:self.resumableTaskFile]; + if(jsonData){ + NSDictionary *dic = [NSJSONSerialization JSONObjectWithData:jsonData options:kNilOptions error:nil]; + + //如果文件发生改变 + if(![dic[@"contentLength"] isEqualToString:lowercaseStringDic[@"content-length"]] || + ![dic[@"lastModified"] isEqualToString:lowercaseStringDic[@"last-modified"]] || + ![dic[@"etag"] isEqualToString:lowercaseStringDic[@"etag"]] || + ![dic[@"crc64ecma"] isEqualToString:lowercaseStringDic[@"x-cos-hash-crc64ecma"]]){ + QCloudRemoveFileByPath(self.resumableTaskFile); + if (self.enablePartCrc64) { + self.partCrc64Map = [NSMutableDictionary new]; + self.crc64Start = 0; + self.crc64Complete = 0; + } + [[NSFileManager defaultManager] createFileAtPath:self.resumableTaskFile contents:[NSData data] attributes:nil]; + NSMutableDictionary *dic = [NSMutableDictionary dictionary]; + [dic setValue:lowercaseStringDic[@"last-modified"] forKey:@"lastModified"]; + [dic setValue:lowercaseStringDic[@"content-length"] forKey:@"contentLength"]; + [dic setValue:lowercaseStringDic[@"etag"] forKey:@"etag"]; + [dic setValue:lowercaseStringDic[@"x-cos-hash-crc64ecma"] forKey:@"crc64ecma"]; + + NSError *parseError; + NSData *info =[NSJSONSerialization dataWithJSONObject:[dic copy] options:NSJSONWritingPrettyPrinted error:&parseError]; + NSError *writeDataError; + [info writeToFile:self.resumableTaskFile options:0 error:&writeDataError]; + } else{ + NSArray *tasks = dic[@"downloadedBlocks"]; + self.localCacheDownloadOffset = [(NSString *)tasks.lastObject[@"to"] integerValue]; + } + } + } + + [self startGetObject]; + + }]; + [self.transferManager.cosService HeadObject:headReq]; + + } +} + +-(void)calculateCrc64:(NSURL *)filePath fileSize:(long long)fileSize{ + if (!filePath) { + return; + } + if (!QCloudFileExist(filePath.path)) { + return; + } + NSFileHandle *handler = [NSFileHandle fileHandleForReadingAtPath:filePath.path]; + [handler seekToFileOffset:self.crc64Complete]; + if (fileSize == 0) { + fileSize = QCloudFileSize(filePath.path); + } + NSInteger readLength = fileSize - self.crc64Complete > CRC64PartLength ?CRC64PartLength:fileSize - self.crc64Complete; + if (readLength == 0) { + return; + } + NSData *data = [handler readDataOfLength:readLength]; + NSString * range = [NSString stringWithFormat:@"%ld-%ld",self.crc64Complete,self.crc64Complete + readLength]; + uint64_t crc64 = [[data mutableCopy] qcloud_crc64]; + [self.partCrc64Map setObject:@(crc64) forKey:range]; + QCloudLogDebugN(@"CRC64", @"calculateCrc64,partRang:%@,crc64:%ld",range,crc64); + NSData *info =[NSJSONSerialization dataWithJSONObject:[self.partCrc64Map copy] options:NSJSONWritingPrettyPrinted error:nil]; + [info writeToFile:self.partCrc64Filepath options:0 error:nil]; +} + +-(uint64_t)mergePartCrc64{ + NSArray *sortedKeys = [self.partCrc64Map.allKeys sortedArrayUsingComparator:^NSComparisonResult(NSString *key1, NSString *key2) { + NSInteger start1 = [[[key1 componentsSeparatedByString:@"-"] firstObject] integerValue]; + NSInteger start2 = [[[key2 componentsSeparatedByString:@"-"] firstObject] integerValue]; + return [@(start1) compare:@(start2)]; + }]; + + __block uint64_t mergedCRC = 0; + + [sortedKeys enumerateObjectsUsingBlock:^(NSString *key, NSUInteger idx, BOOL *stop) { + NSArray *components = [key componentsSeparatedByString:@"-"]; + if (components.count != 2) return; + + NSInteger start = [components[0] integerValue]; + NSInteger end = [components[1] integerValue]; + NSNumber *crcValue = self.partCrc64Map[key]; + + uint64_t chunkLength = (uint64_t)(end - start); + + mergedCRC = [[NSMutableData new] qcloud_crc64ForCombineCRC1:mergedCRC CRC2:[crcValue unsignedLongLongValue] length:chunkLength]; + }]; + + return mergedCRC; +} + +- (uint64_t)crc64ForFileAtPath:(NSString *)filePath + chunkSize:(size_t)chunkSize + length:(size_t)length{ + // 1. 打开文件 + NSFileHandle *fileHandle = [NSFileHandle fileHandleForReadingAtPath:filePath]; + if (!fileHandle) { + return 0; + } + + // 2. 获取文件大小 + unsigned long long fileSize = QCloudFileSize(filePath); + if (length > 0) { + fileSize = length; + } + + // 3. 初始化CRC和偏移量 + uint64_t combinedCRC = 0; + unsigned long long offset = 0; + + @try { + while (offset < fileSize) { + @autoreleasepool { + // 4. 读取数据块 + NSUInteger remaining = (NSUInteger)(fileSize - offset); + NSUInteger readLength = MIN(remaining, chunkSize); + [fileHandle seekToFileOffset:offset]; + NSData *chunk = [fileHandle readDataOfLength:readLength]; + if (chunk.length == 0) break; + + // 5. 计算当前块CRC + NSMutableData *mutableChunk = [chunk mutableCopy]; + uint64_t chunkCRC = [mutableChunk qcloud_crc64]; + + // 6. 合并CRC + if (offset == 0) { + combinedCRC = chunkCRC; + } else { + combinedCRC = [mutableChunk qcloud_crc64ForCombineCRC1:combinedCRC + CRC2:chunkCRC + length:chunk.length]; + } + + offset += chunk.length; + } + } + } @catch (NSException *exception) { + return 0; + } @finally { + [fileHandle closeFile]; + } + return combinedCRC; +} + +-(void)loadLocalCrc64{ + self.crc64Start = self.localCacheDownloadOffset; + self.crc64Complete = self.crc64Start; +} + +- (void)startGetObject { + if (self.enablePartCrc64) { + self.partCrc64Filepath = [NSString stringWithFormat:@"%@.partcrc64",self.downloadingURL.relativePath]; + } + QCloudLogInfoP(@"Download",@"begin download object:%@,localCacheDownloadOffset=%ld", self.object, self.localCacheDownloadOffset); + QCloudGetObjectRequest *request = [QCloudGetObjectRequest new]; + request.objectKeySimplifyCheck = self.objectKeySimplifyCheck; + request.trafficLimit = self.trafficLimit; + request.payload = self.payload; + request.customHeaders = [self.customHeaders mutableCopy]; + request.downloadingURL = self.downloadingURL; + self.downloadingTempURL = request.downloadingTempURL; + + if (self.enablePartCrc64 && self.localCacheDownloadOffset > 0) { + if (QCloudFileExist(self.partCrc64Filepath)) { + NSData *jsonData = [[NSData alloc] initWithContentsOfFile:self.partCrc64Filepath]; + if(jsonData){ + self.partCrc64Map = [[NSJSONSerialization JSONObjectWithData:jsonData options:kNilOptions error:nil] mutableCopy]; + uint64_t saveCrc64 = [self mergePartCrc64]; + + NSArray *sortedKeys = [self.partCrc64Map.allKeys sortedArrayUsingComparator:^NSComparisonResult(NSString *key1, NSString *key2) { + NSInteger start1 = [[[key1 componentsSeparatedByString:@"-"] firstObject] integerValue]; + NSInteger start2 = [[[key2 componentsSeparatedByString:@"-"] firstObject] integerValue]; + return [@(start1) compare:@(start2)]; + }]; + uint64_t length = [sortedKeys.lastObject componentsSeparatedByString:@"-"].lastObject.integerValue; + uint64_t localCrc64 = [self crc64ForFileAtPath:self.downloadingTempURL.path chunkSize:CRC64PartLength length:length]; + if (localCrc64 != saveCrc64) { + QCloudRemoveFileByPath(self.resumableTaskFile); + QCloudRemoveFileByPath(self.partCrc64Filepath); + self.crc64Start = 0; + self.crc64Complete = 0; + self.partCrc64Map = [NSMutableDictionary new]; + self.localCacheDownloadOffset = 0; + QCloudRemoveFileByPath(self.downloadingTempURL.relativePath); + }else{ + [self loadLocalCrc64]; + } + }else{ + [self loadLocalCrc64]; + } + }else{ + [self loadLocalCrc64]; + } + } + + request.localCacheDownloadOffset = self.localCacheDownloadOffset; + request.regionName = self.regionName; + request.enableMD5Verification = self.enableMD5Verification; + request.versionID = self.versionID; + __block int64_t currentTotalBytesDownload = 0; + __weak typeof(self) weakSelf = self; + [request setDownProcessBlock:^(int64_t bytesDownload, int64_t totalBytesDownload, int64_t totalBytesExpectedToDownload) { + __strong typeof(weakSelf) strongSelf = self; + if (!strongSelf) return; + currentTotalBytesDownload = totalBytesDownload; + int64_t _localCacheDownloadOffset = 0; + if (strongSelf.resumeLocalProcess) { + _localCacheDownloadOffset = strongSelf.localCacheDownloadOffset; + } + if(strongSelf.downProcessBlock){ + strongSelf.downProcessBlock(bytesDownload, totalBytesDownload + _localCacheDownloadOffset, totalBytesExpectedToDownload + _localCacheDownloadOffset); + } + if (self.enablePartCrc64) { + const int64_t effectiveTotalDownload = totalBytesDownload + strongSelf.localCacheDownloadOffset; + if (effectiveTotalDownload - strongSelf.crc64Start >= CRC64PartLength) { + strongSelf.crc64Start += CRC64PartLength; + dispatch_async(strongSelf.crcQueue, ^{ + [strongSelf calculateCrc64:strongSelf.downloadingTempURL fileSize:0]; + @synchronized(strongSelf) { + strongSelf.crc64Complete = strongSelf.crc64Start; + } + }); + } + } + }]; + [request setFinishBlock:^(id _Nullable outputObject, NSError * _Nullable error) { + __strong typeof(weakSelf) strongSelf = self; + if(strongSelf.resumableDownload){ + //如果下载失败了:保存当前的下载长度,便于下次续传 + NSData *jsonData = [[NSData alloc] initWithContentsOfFile:self.resumableTaskFile]; + NSMutableDictionary *dic = [NSMutableDictionary dictionary]; + if(jsonData){ + dic = [[NSJSONSerialization JSONObjectWithData:jsonData options:kNilOptions error:nil] mutableCopy]; + if (dic == nil) { + dic = [NSMutableDictionary dictionary]; + } + } + + if(error){ + if (self.enablePartCrc64) { + [self calculateCrc64:self.downloadingTempURL fileSize:currentTotalBytesDownload + strongSelf.localCacheDownloadOffset]; + } + NSMutableArray *tasks = [dic[@"downloadedBlocks"] mutableCopy]; + if(!tasks){ + tasks = [NSMutableArray array]; + } + NSString *fromStr = [NSString stringWithFormat:@"%lld",strongSelf.localCacheDownloadOffset]; + NSString *toStr = [NSString stringWithFormat:@"%lld",currentTotalBytesDownload + strongSelf.localCacheDownloadOffset]; + [tasks addObject:@{@"from":fromStr,@"to":toStr}]; + [dic setValue: [tasks copy] forKey:@"downloadedBlocks"]; + NSError *parseError; + NSData *info =[NSJSONSerialization dataWithJSONObject:[dic copy] options:NSJSONWritingPrettyPrinted error:&parseError]; + NSError *writeDataError; + if(info && !parseError){ + [info writeToFile:strongSelf.resumableTaskFile options:0 error:&writeDataError]; + } + + if(writeDataError){ + error = writeDataError; + } + if(self.finishBlock && error.code != QCloudNetworkErrorCodeCanceled){ + strongSelf.finishBlock(outputObject, error); + } + }else{ + //下载完成之后如果没有crc64,删除记录文件 + if(!dic[@"crc64ecma"]){ + QCloudRemoveFileByPath(strongSelf.resumableTaskFile); + QCloudRemoveFileByPath(strongSelf.partCrc64Filepath); + if(self.finishBlock){ + strongSelf.finishBlock(outputObject, error); + } + return; + } + QCloudRemoveFileByPath(strongSelf.resumableTaskFile); + uint64_t localCrc64; + if (self.enablePartCrc64 == YES) { + [self calculateCrc64:self.downloadingURL fileSize:0]; + localCrc64 = [self mergePartCrc64]; + + NSString *localCrc64Str = [NSString stringWithFormat:@"%llu",localCrc64]; + QCloudRemoveFileByPath(strongSelf.partCrc64Filepath); + if(![localCrc64Str isEqualToString:dic[@"crc64ecma"]]){ + //下载完成之后如果crc64不一致,删除记录文件和已经下载的文件,重新开始下载 + self.crc64Start = 0; + self.crc64Complete = 0; + self.partCrc64Map = [NSMutableDictionary new]; + self.localCacheDownloadOffset = 0; + if (self.retryCount >= 3) { + NSString * message = [NSString stringWithFormat:@"本地文件与远端文件不一致,请重新下载:远端CRC64 值:%@, 本地文件 CRC64值:%@", + dic[@"crc64ecma"], localCrc64Str]; + strongSelf.finishBlock(nil, [NSError errorWithDomain:kQCloudNetworkDomain code:QCloudNetworkErrorCodeNotMatch userInfo:@{NSLocalizedDescriptionKey:message}]); + return; + }else{ + QCloudRemoveFileByPath(strongSelf.downloadingURL.relativePath); + self.retryCount ++; + [self fakeStart]; + } + return; + } + } + if(self.finishBlock){ + strongSelf.finishBlock(outputObject, error); + } + } + }else{ + if(self.finishBlock){ + strongSelf.finishBlock(outputObject, error); + } + } + + }]; + + + request.responseContentType = self.responseContentType; + request.responseContentLanguage = self.responseContentLanguage; + request.responseContentExpires = self.responseContentExpires; + request.responseCacheControl = self.responseCacheControl; + request.responseContentDisposition = self.responseContentDisposition; + request.responseContentEncoding = self.responseContentEncoding; + request.range = self.range; + request.ifModifiedSince = self.ifModifiedSince; + request.ifUnmodifiedModifiedSince = self.ifUnmodifiedModifiedSince; + request.ifMatch = self.ifMatch; + request.ifNoneMatch = self.ifNoneMatch; + request.object = self.object; + request.bucket = self.bucket; + request.enableQuic = self.enableQuic; + request.endpoint = self.endpoint; + request.networkType = self.networkType; + [self.transferManager.cosService GetObject:request]; + [self.requestCacheArray addPointer:(__bridge void *_Nullable)(request)]; +} + + + +-(void)cancel{ + [self.requestCacheArray addPointer:(__bridge void *_Nullable)([NSObject new])]; + [self.requestCacheArray compact]; + if (NULL != _queueSource) { + dispatch_source_cancel(_queueSource); + } + + NSMutableArray *cancelledRequestIDs = [NSMutableArray array]; + NSPointerArray *tmpRequestCacheArray = [self.requestCacheArray copy]; + for (QCloudHTTPRequest *request in tmpRequestCacheArray) { + if (request != nil) { + [cancelledRequestIDs addObject:[NSNumber numberWithLongLong:request.requestID]]; + [request cancel]; + } + } + + [[QCloudHTTPSessionManager shareClient] cancelRequestsWithID:cancelledRequestIDs]; + [super cancel]; +} +- (void)setCOSServerSideEncyption { + self.customHeaders[@"x-cos-server-side-encryption"] = @"AES256"; +} + +- (void)setCOSServerSideEncyptionWithCustomerKey:(NSString *)customerKey { + NSData *data = [customerKey dataUsingEncoding:NSUTF8StringEncoding]; + NSString *excryptAES256Key = [data base64EncodedStringWithOptions:0]; // base64格式的字符串 + NSString *base64md5key = QCloudEncrytNSDataMD5Base64(data); + self.customHeaders[@"x-cos-server-side-encryption-customer-algorithm"] = @"AES256"; + self.customHeaders[@"x-cos-server-side-encryption-customer-key"] = excryptAES256Key; + self.customHeaders[@"x-cos-server-side-encryption-customer-key-MD5"] = base64md5key; +} +@end diff --git a/Pods/QCloudCOSXML/QCloudCOSXML/Classes/Transfer/request/QCloudCOSXMLUploadObjectRequest.h b/Pods/QCloudCOSXML/QCloudCOSXML/Classes/Transfer/request/QCloudCOSXMLUploadObjectRequest.h new file mode 100644 index 0000000..518c0eb --- /dev/null +++ b/Pods/QCloudCOSXML/QCloudCOSXML/Classes/Transfer/request/QCloudCOSXMLUploadObjectRequest.h @@ -0,0 +1,172 @@ +// +// QCloudCOSXMLUploadObjectRequest.h +// Pods +// +// Created by Dong Zhao on 2017/5/23. +// +// + +#import +#import "QCloudCOSStorageClassEnum.h" +NS_ASSUME_NONNULL_BEGIN +FOUNDATION_EXTERN NSString *_Nullable const QCloudUploadResumeDataKey; + +typedef NSData *QCloudCOSXMLUploadObjectResumeData; + +@class QCloudUploadObjectResult; +@class QCloudInitiateMultipartUploadResult; +@class QCloudCOSXMLUploadObjectRequest; +typedef void (^InitMultipleUploadFinishBlock)(QCloudInitiateMultipartUploadResult *_Nullable multipleUploadInitResult, + QCloudCOSXMLUploadObjectResumeData _Nullable resumeData); +typedef void (^RequestsMetricArrayBlock)(NSMutableArray *_Nullable requstMetricArray); +/** + COSXML上传对象接口。在上传小于1MB的文件时,通过该request来上传的话,会生成一个简单上传putObjectRequset, + 将整个对象直接上传。 + + 如果上传的对象大小大于1MB时,我们会在内部进行分片上传的处理,将文件切分成数个1MB大小的块, + 然后通过并行分快上传的方式进行上传。 + + ### 示例 + + @code + + QCloudCOSXMLUploadObjectRequest* put = [QCloudCOSXMLUploadObjectRequest new]; + NSURL* url = @"文件的URL"; + put.object = @"文件名.jpg"; + put.bucket = @"bucket名"; + put.body = url; + [put setSendProcessBlock:^(int64_t bytesSent, int64_t totalBytesSent, int64_t totalBytesExpectedToSend) { + NSLog(@"upload %lld totalSend %lld aim %lld", bytesSent, totalBytesSent, totalBytesExpectedToSend); + }]; + [put setFinishBlock:^(id outputObject, NSError *error) { + + }]; + [[QCloudCOSTransferMangerService defaultCOSTRANSFERMANGER] UploadObject:put]; + + */ +@interface QCloudCOSXMLUploadObjectRequest : QCloudAbstractRequest +//自定义分片大小 +@property (nonatomic, assign) NSUInteger sliceSize; +//自定义分片阈值 +@property (nonatomic, assign) NSInteger mutilThreshold; +@property (nonatomic, assign) QCloudAbstractRequestPriority uploadPriority; +/** + 上传文件(对象)的文件名,也是对象的key,请注意文件名中不可以含有问号即"?"字符 + */ +@property (strong, nonatomic) NSString *object; +@property (strong, nonatomic) QCloudHTTPRetryHanlder *_Nullable retryHandler; +/** + 存储桶名称 + */ +@property (strong, nonatomic) NSString *bucket; + +/** + 需要上传的对象内容。可以传入NSData*或者NSURL*类型的变量 + */ +@property (strong, nonatomic) BodyType body; + +/** +RFC 2616 中定义用于指示资源的MIME类型,将作为 Object 元数据保存 +*/ +@property (strong, nonatomic) NSString *contentType; +/** + RFC 2616 中定义的缓存策略,将作为 Object 元数据保存 + */ +@property (strong, nonatomic) NSString *cacheControl; + +/** + RFC 2616 中定义的文件名称,将作为 Object 元数据保存 + */ +@property (strong, nonatomic) NSString *contentDisposition; + +/** + 当使用 Expect: 100-continue 时,在收到服务端确认后,才会发送请求内容 + */ +@property (strong, nonatomic) NSString *expect; + +/** + RFC 2616 中定义的过期时间,将作为 Object 元数据保存 + */ +@property (strong, nonatomic) NSString *expires; + +@property (strong, nonatomic) NSString *contentSHA1; +//针对本次上传进行流量控制的限速值,必须为数字,单位默认为 bit/s。限速值设置范围为819200 - 838860800,即100KB/s - 100MB/s,如果超出该范围将返回400错误 +@property (nonatomic, assign) NSInteger trafficLimit; + +/** + 对象的存储级别 + */ +@property (assign, nonatomic) QCloudCOSStorageClass storageClass; + +/** + 定义 Object 的 ACL(Access Control List) 属性。有效值:private,public-read-write,public-read,默认值:private + */ +@property (strong, nonatomic) NSString *accessControlList; + +/** + 赋予被授权者读的权限。格式:id=" ",id=" "; + 当需要给子账户授权时,id="qcs::cam::uin/\:uin/\", + 当需要给根账户授权时,id="qcs::cam::uin/\:uin/\" + */ +@property (strong, nonatomic) NSString *grantRead; + +/** + 赋予被授权者读写权限。格式: id=" ",id=" " ; + 当需要给子账户授权时,id="qcs::cam::uin/\:uin/\", + 当需要给根账户授权时,id="qcs::cam::uin/\:uin/\" + */ +@property (strong, nonatomic) NSString *grantFullControl; + +/** + 表明该请求是否已经被中断 + */ +@property (assign, atomic, readonly) BOOL aborted; + +/** + 如果该request产生了分片上传的请求,那么在分片上传初始化完成后,会通过这个block来回调, + 可以在该回调block中获取分片完成后的bucket, key, uploadID,以及用于后续上传失败后恢复上传的ResumeData。 + */ +@property (nonatomic, copy) InitMultipleUploadFinishBlock initMultipleUploadFinishBlock; +@property (nonatomic, copy) RequestsMetricArrayBlock requstsMetricArrayBlock; + +/** + 是否在上传完成以后,将 COS 返回的文件MD5与本地文件算出来的md5进行校验。默认开启,如果校验出错, + 文件仍然会被上传到 COS, 不过我们会在本地抛出校验失败的error。 + */ +@property (nonatomic, assign) BOOL enableMD5Verification __attribute__((deprecated("该属性已过期,请用enableVerification替换"))); +/** + 是否在上传完成以后,将 COS 返回的文件MD5与本地文件算出来的md5进行校验。默认开启,如果校验出错, + 文件仍然会被上传到 COS, 不过我们会在本地抛出校验失败的error。 + */ +@property (nonatomic, assign) BOOL enableVerification; + +/** + 在进行HTTP请求的时候,可以通过设置该参数来设置自定义的一些头部信息。 + 通常情况下,携带特定的额外HTTP头部可以使用某项功能,如果是这类需求,可以通过设置该属性来实现。 + */ +@property (strong, nonatomic) NSMutableDictionary *_Nullable customHeaders; +@property (strong, nonatomic) NSString *_Nullable regionName; +@property (assign, nonatomic) bool uploadBodyIsCompleted; +/** + 上传完成后会通过该block回调。若error为空,可视为成功。 + + @param QCloudRequestFinishBlock 上传完成后的回调 + */ +- (void)setFinishBlock:(void (^_Nullable)(QCloudUploadObjectResult *_Nullable result, NSError *_Nullable error))QCloudRequestFinishBlock; + +#pragma resume +/** + 在初始化分片上传完成以后会回调的block中获取 resumeData,通过 resumeData 生成一个分片上传的请求; + */ ++ (instancetype)requestWithRequestData:(QCloudCOSXMLUploadObjectResumeData _Nullable)resumeData; +/** + 主动调用取消,并且产生 resumetData + */ +- (QCloudCOSXMLUploadObjectResumeData)cancelByProductingResumeData:(NSError *__autoreleasing *)error; + +- (void)abort:(QCloudRequestFinishBlock _Nullable)finishBlock; +- (void)setCOSServerSideEncyption; +- (void)setCOSServerSideEncyptionWithCustomerKey:(NSString *_Nonnull)customerKey; +- (void)setCOSServerSideEncyptionWithKMSCustomKey:(NSString *_Nonnull)customerKey jsonStr:(NSString *_Nonnull)jsonStr; +@end +NS_ASSUME_NONNULL_END diff --git a/Pods/QCloudCOSXML/QCloudCOSXML/Classes/Transfer/request/QCloudCOSXMLUploadObjectRequest.m b/Pods/QCloudCOSXML/QCloudCOSXML/Classes/Transfer/request/QCloudCOSXMLUploadObjectRequest.m new file mode 100644 index 0000000..18dee52 --- /dev/null +++ b/Pods/QCloudCOSXML/QCloudCOSXML/Classes/Transfer/request/QCloudCOSXMLUploadObjectRequest.m @@ -0,0 +1,898 @@ +// +// QCloudCOSXMLUploadObjectRequest.m +// Pods +// +// Created by Dong Zhao on 2017/5/23. +// +// + +#import "QCloudCOSXMLUploadObjectRequest.h" +#import "QCloudPutObjectRequest.h" +#import "QCloudCOSXMLService+Transfer.h" +#import "QCloudInitiateMultipartUploadRequest.h" +#import "QCloudUploadPartRequest.h" +#import "QCloudCompleteMultipartUploadRequest.h" +#import "QCloudMultipartInfo.h" +#import "QCloudCompleteMultipartUploadInfo.h" +#import "QCloudCOSXMLUploadObjectRequest_Private.h" +#import "QCloudListMultipartRequest.h" +#import "QCloudCOSXMLServiceUtilities.h" +#import "QCloudCOSTransferMangerService.h" +#import "QCloudAbortMultipfartUploadRequest.h" +#import +#import +#import +#import +#import +#import +#import "QCloudCOSTransferMangerService.h" +#import "QCloudPutObjectRequest+Custom.h" +#import +#import +#import +static NSUInteger kQCloudCOSXMLUploadLengthLimit = 1 * 1024 * 1024; +static NSUInteger kQCloudCOSXMLUploadSliceLength = 1 * 1024 * 1024; +static NSUInteger kQCloudCOSXMLMD5Length = 32; +static NSUInteger kQCloudCOSXMLSha1Length = 40; +@interface QCloudCOSXMlResumeUploadInfo : NSObject +@property (nonatomic, strong) NSString *localPath; +@property (strong, nonatomic) NSString *object; +@property (strong, nonatomic) NSString *bucket; + +@end + +@implementation QCloudCOSXMlResumeUploadInfo +@end + +NSString *const QCloudUploadResumeDataKey = @"__QCloudUploadResumeDataKey__"; + +@interface QCloudCOSXMLUploadObjectRequest () { + NSRecursiveLock *_recursiveLock; + NSRecursiveLock *_progressLock; + NSUInteger uploadedSize; + //标记下标,从0开始 + NSUInteger startPartNumber; + BOOL isChange; +} +@property (nonatomic, assign) int64_t totalBytesSent; +@property (nonatomic, assign) NSUInteger dataContentLength; +@property (nonatomic, strong) dispatch_source_t queueSource; +//存储所有的分片 +@property (nonatomic, strong) NSMutableArray *uploadParts; +@property (nonatomic, strong) NSString *uploadId; +@property (nonatomic, strong) NSPointerArray *requestCacheArray; +@property (strong, nonatomic) NSMutableArray *requstMetricArray; +@end + +@implementation QCloudCOSXMLUploadObjectRequest + +- (void)dealloc { + QCloudLogInfoP(@"Upload",@"QCloudCOSXMLUploadObjectRequest = %@ dealloc", self); + if (NULL != _queueSource) { + dispatch_source_cancel(_queueSource); + } +} ++ (NSDictionary *)modelContainerPropertyGenericClass { + return @{ + @"uploadParts" : [QCloudMultipartInfo class], + }; +} + +- (instancetype)init { + self = [super init]; + if (!self) { + return self; + } + _uploadBodyIsCompleted = YES; + _requestCacheArray = [NSPointerArray weakObjectsPointerArray]; + _customHeaders = [NSMutableDictionary dictionary]; + _aborted = NO; + _recursiveLock = [NSRecursiveLock new]; + _progressLock = [NSRecursiveLock new]; + _requstMetricArray = [NSMutableArray array]; + _mutilThreshold = kQCloudCOSXMLUploadLengthLimit; + _enableMD5Verification = YES; + _enableVerification = YES; + _retryHandler = [QCloudHTTPRetryHanlder defaultRetryHandler]; + startPartNumber = -1; + self.priority = QCloudAbstractRequestPriorityHigh; + return self; +} + +- (void)setEnableVerification:(BOOL)enableVerification{ + _enableVerification = enableVerification; + _enableMD5Verification = enableVerification; +} + +- (NSDictionary *)modelCustomWillTransformFromDictionary:(NSDictionary *)dictionary { + NSMutableDictionary *dict = [dictionary mutableCopy]; + if ([dictionary valueForKey:@"body"]) { + NSDictionary *universalPathDict = [dictionary valueForKey:@"body"]; + QCloudUniversalPathType type = [[universalPathDict valueForKey:@"type"] integerValue]; + NSString *originURL = [universalPathDict valueForKey:@"originURL"]; + QCloudUniversalPath *path; + switch (type) { + case QCLOUD_UNIVERSAL_PATH_TYPE_FIXED: + path = [[QCloudUniversalFixedPath alloc] initWithStrippedURL:originURL]; + break; + case QCLOUD_UNIVERSAL_PATH_TYPE_ADJUSTABLE: + path = [[QCloudUniversalAdjustablePath alloc] initWithStrippedURL:originURL]; + break; + case QCLOUD_UNIVERSAL_PATH_TYPE_SANDBOX: + path = [[QCloudSandboxPath alloc] initWithStrippedURL:originURL]; + break; + case QCLOUD_UNIVERSAL_PATH_TYPE_BUNDLE: + path = [[QCloudBundlePath alloc] initWithStrippedURL:originURL]; + break; + case QCLOUD_UNIVERSAL_PATH_TYPE_MEDIA: + path = [[QCloudMediaPath alloc] initWithStrippedURL:originURL]; + break; + default: + break; + } + [dict setValue:path forKey:@"body"]; + } + + return [dict copy]; +} + +- (void)continueMultiUpload:(QCloudListPartsResult *)existParts { + _uploadParts = [NSMutableArray new]; + NSArray *allParts = [self getFileLocalUploadParts]; + NSMutableDictionary *existMap = [NSMutableDictionary new]; + for (QCloudMultipartUploadPart *part in existParts.parts) { + [existMap setObject:part forKey:part.partNumber]; + } + QCloudLogDebugP(@"Upload",@"SERVER EXIST PARTS %@", [existParts qcloud_modelToJSONString]); + + NSMutableArray *restParts = [NSMutableArray new]; + for (QCloudFileOffsetBody *offsetBody in allParts) { + NSString *key = [@(offsetBody.index + 1) stringValue]; + QCloudMultipartUploadPart *part = [existMap objectForKey:key]; + + if (!part) { + [restParts addObject:offsetBody]; + } else { + if (part.size != offsetBody.sliceLength) { + isChange = YES; + break; + } + QCloudMultipartInfo *info = [QCloudMultipartInfo new]; + info.eTag = part.eTag; + info.partNumber = part.partNumber; + [_uploadParts addObject:info]; + } + } + + if (!isChange) { + if (restParts.count == 0) { + [self finishUpload:self.uploadId]; + } else { + [self uploadOffsetBodys:restParts]; + } + } else { + //重新分片 + [self getContinueInfo:existParts.parts]; + if (uploadedSize == self.dataContentLength) { + [self finishUpload:self.uploadId]; + } else { + //开始分片 + [self uploadOffsetBodys:[self getFileLocalUploadParts]]; + } + } +} + +- (void)getContinueInfo:(NSArray *)existParts { + _uploadParts = [NSMutableArray new]; + int i = 1; + QCloudMultipartUploadPart *part = existParts[0]; + QCloudMultipartInfo *info = [QCloudMultipartInfo new]; + info.eTag = part.eTag; + info.partNumber = part.partNumber; + if ([info.partNumber integerValue] != 1) { + return; + } + + for (i = 0; i < existParts.count; i++) { + QCloudMultipartUploadPart *part1 = existParts[i]; + QCloudMultipartInfo *info1 = [QCloudMultipartInfo new]; + info1.eTag = part1.eTag; + info1.partNumber = part1.partNumber; + uploadedSize += part1.size; + [_uploadParts addObject:info1]; + if (i == existParts.count - 1) { + break; + } + QCloudMultipartUploadPart *part2 = existParts[i + 1]; + if (([part1.partNumber integerValue] + 1) != [part2.partNumber integerValue]) { + break; + } + } + startPartNumber = _uploadParts.count; + + QCloudLogDebugP(@"Upload",@"resume startPartNumber = offset = %ld %ld", startPartNumber, uploadedSize); +} + +-(void)listParts:(QCloudListPartsResult *)input finish:(void (^_Nullable)(QCloudListPartsResult *_Nullable, NSError *_Nullable))finishBlock{ + QCloudListMultipartRequest *request = [QCloudListMultipartRequest new]; + request.timeoutInterval = self.timeoutInterval; + request.enableQuic = self.enableQuic; + request.endpoint = self.endpoint; + request.networkType = self.networkType; + request.payload = self.payload; + request.object = self.object; + request.regionName = self.regionName; + request.bucket = self.bucket; + request.uploadId = self.uploadId; + request.partNumberMarker = input.nextNumberMarker; + request.retryPolicy.delegate = self; + __weak typeof(request) weakRequest = request; + __weak typeof(self) weakSelf = self; + [request setFinishBlock:^(QCloudListPartsResult *_Nonnull result, NSError *_Nonnull error) { + __strong typeof(weakSelf) strongSelf = weakSelf; + __strong typeof(weakRequest) strongRequst = weakRequest; + [strongSelf.requstMetricArray addObject:@ { [NSString stringWithFormat:@"%@", strongRequst] : weakRequest.benchMarkMan.tastMetrics }]; + if (input && input.parts.count > 0 && result && result.parts) { + NSMutableArray * tempParts = input.parts.mutableCopy; + [tempParts addObjectsFromArray:result.parts]; + result.parts = tempParts.copy; + } + if (result.nextNumberMarker) { + [self listParts:result finish:finishBlock]; + }else{ + finishBlock(result,error); + } + }]; + + [self.transferManager.cosService ListMultipart:request]; +} + +- (void)resumeUpload { + __weak typeof(self) weakSelf = self; + [self listParts:nil finish:^(QCloudListPartsResult * _Nullable result, NSError * _Nullable error) { + __strong typeof(weakSelf) strongSelf = weakSelf; + [weakSelf continueMultiUpload:result]; + }]; +} +- (void)fakeStart { + [self.benchMarkMan benginWithKey:kTaskTookTime]; + if (self.uploadId) { + startPartNumber = 0; + uploadedSize = 0; + + [self resumeUpload]; + return; + } + self.totalBytesSent = 0; + + if ([self.body isKindOfClass:[NSData class]]) { + NSData * body = self.body; + if(body.length == 0 && self.transferManager.cosService.configuration.disableUploadZeroData){ + NSError *error = [NSError qcloud_errorWithCode:QCloudNetworkErrorCodeParamterInvalid + message:@"QCloudCOSXMLUploadObjectRequest:InvalidArgument:您输入的body(Data)为空并且不允许上传空文件"]; + [self onError:error]; + [self cancel]; + return; + } + [self startSimpleUpload]; + } else if ([self.body isKindOfClass:[NSURL class]]) { + NSURL *url = (NSURL *)self.body; + if (!QCloudFileExist(url.relativePath)) { + NSError *error = [NSError qcloud_errorWithCode:QCloudNetworkErrorCodeParamterInvalid message:@"指定的上传路径不存在"]; + [self onError:error]; + [self cancel]; + return; + } + self.dataContentLength = QCloudFileSize(url.path); + if(_mutilThreshold _mutilThreshold) { + //开始分片上传的时候,上传的起始位置是0 + uploadedSize = 0; + startPartNumber = 0; + [self startMultiUpload]; + } else { + if(self.dataContentLength == 0 && self.transferManager.cosService.configuration.disableUploadZeroData){ + NSError *error = [NSError qcloud_errorWithCode:QCloudNetworkErrorCodeParamterInvalid + message:[NSString stringWithFormat:@"QCloudCOSXMLUploadObjectRequest:InvalidArgument:您输入的body(NSURL:%@)为空并且不允许上传空文件",self.body]]; + [self onError:error]; + [self cancel]; + return; + } + [self startSimpleUpload]; + } + } else { + @throw [NSException exceptionWithName:QCloudErrorDomain + reason:@"不支持设置该类型的body,支持的类型为NSData、QCloudFileOffsetBody" + userInfo:@{}]; + } +} +- (void)startSimpleUpload { + QCloudPutObjectRequest *request = [QCloudPutObjectRequest new]; + request.priority = self.uploadPriority; + request.enableQuic = self.enableQuic; + request.endpoint = self.endpoint; + request.networkType = self.networkType; + request.regionName = self.regionName; + request.trafficLimit = self.trafficLimit; + request.payload = self.payload; + __weak typeof(self) weakSelf = self; + __weak typeof(request) weakRequest = request; + request.retryPolicy.delegate = self; + request.timeoutInterval = self.timeoutInterval; + request.contentType = self.contentType; + request.finishBlock = ^(id outputObject, NSError *error) { + __strong typeof(weakRequest) strongRequst = weakRequest; + [weakSelf.requstMetricArray addObject:@{ [NSString stringWithFormat:@"%@", strongRequst] : weakRequest.benchMarkMan.tastMetrics }]; + if (self.requstsMetricArrayBlock) { + self.requstsMetricArrayBlock(weakSelf.requstMetricArray); + } + if (error) { + [weakSelf onError:error]; + [self cancel]; + } else { + QCloudUploadObjectResult *result = [QCloudUploadObjectResult new]; + if (outputObject[@"x-cos-version-id"]) { + result.versionID = outputObject[@"x-cos-version-id"]; + } + + result.key = weakSelf.object; + result.bucket = weakSelf.bucket; + result.eTag = ((NSDictionary *)outputObject)[@"Etag"]; + result.location + = QCloudCOSXMLObjectLocation(weakSelf.transferManager.configuration.endpoint, weakSelf.transferManager.configuration.appID, + weakSelf.bucket, weakSelf.object, self.regionName); + result.__originHTTPURLResponse__ = [outputObject __originHTTPURLResponse__]; + result.__originHTTPResponseData__ = [outputObject __originHTTPResponseData__]; + if ([outputObject __originHTTPResponseData__]) { + NSData * data = [outputObject __originHTTPResponseData__]; + NSHTTPURLResponse * response = [outputObject __originHTTPURLResponse__]; + if (response.statusCode == 200) { + NSString *callbackBody = [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding]; + QCloudUploadCallbackResult * callbackResult = [QCloudUploadCallbackResult new]; + callbackResult.CallbackBody = callbackBody; + callbackResult.Status = @(response.statusCode).stringValue; + result.CallbackResult = callbackResult; + } + + if (response.statusCode == 203 && [response.allHeaderFields[@"Content-Type"] isEqualToString:@"application/xml"]) { + NSError * error; + QCloudXMLDictionaryParser *parser = [QCloudXMLDictionaryParser new]; + NSDictionary *params = [parser dictionaryWithData:data]; + if (!error && params) { + QCloudUploadCallbackResult * callbackResult = [QCloudUploadCallbackResult new]; + callbackResult.Status = @(response.statusCode).stringValue; + QCloudUploadCallbackError * Error = [QCloudUploadCallbackError new]; + Error.Code = params[@"Code"]; + Error.Message = params[@"Message"]; + callbackResult.Error = Error; + result.CallbackResult = callbackResult; + } + } + } + [weakSelf onSuccess:result]; + } + }; + request.bucket = self.bucket; + request.object = self.object; + request.priority = self.uploadPriority; + request.body = self.body; + request.cacheControl = self.cacheControl; + request.contentDisposition = self.contentDisposition; + request.expect = self.expect; + request.expires = self.expires; + request.contentSHA1 = self.contentSHA1; + request.storageClass = self.storageClass; + request.accessControlList = self.accessControlList; + request.grantRead = self.grantRead; + request.grantFullControl = self.grantFullControl; + request.sendProcessBlock = self.sendProcessBlock; + request.delegate = self.delegate; + request.retryPolicy.delegate = self; + request.customHeaders = [self.customHeaders mutableCopy]; + [self.requestCacheArray addPointer:(__bridge void *_Nullable)(request)]; + [self.transferManager.cosService PutObject:request]; +} + +- (void)startMultiUpload { + _uploadParts = [NSMutableArray new]; + QCloudInitiateMultipartUploadRequest *uploadRequet = [QCloudInitiateMultipartUploadRequest new]; + uploadRequet.timeoutInterval = self.timeoutInterval; + uploadRequet.payload = self.payload; + uploadRequet.enableQuic = self.enableQuic; + uploadRequet.endpoint = self.endpoint; + uploadRequet.networkType = self.networkType; + uploadRequet.bucket = self.bucket; + uploadRequet.regionName = self.regionName; + uploadRequet.object = self.object; + uploadRequet.cacheControl = self.cacheControl; + uploadRequet.contentDisposition = self.contentDisposition; + uploadRequet.expect = self.expect; + uploadRequet.expires = self.expires; + uploadRequet.contentSHA1 = self.contentSHA1; + uploadRequet.storageClass = self.storageClass; + uploadRequet.accessControlList = self.accessControlList; + uploadRequet.grantRead = self.grantRead; + uploadRequet.grantFullControl = self.grantFullControl; + uploadRequet.contentType = self.contentType; + + uploadRequet.customHeaders = [self.customHeaders mutableCopy]; + uploadRequet.retryPolicy.delegate = self; + __weak typeof(uploadRequet) weakRequest = uploadRequet; + __weak typeof(self) weakSelf = self; + + [uploadRequet setFinishBlock:^(QCloudInitiateMultipartUploadResult *_Nonnull result, NSError *_Nonnull error) { + __strong typeof(weakSelf) strongSelf = weakSelf; + __strong typeof(weakRequest) strongRequst = weakRequest; + [strongSelf.requstMetricArray addObject:@ { [NSString stringWithFormat:@"%@", strongRequst] : weakRequest.benchMarkMan.tastMetrics }]; + + if (error) { + [weakSelf onError:error]; + } else { + if (weakSelf.initMultipleUploadFinishBlock) { + self.uploadId = result.uploadId; + QCloudCOSXMLUploadObjectResumeData resumeData = [self productingReqsumeData:nil]; + if (self.initMultipleUploadFinishBlock) { + self.initMultipleUploadFinishBlock(result, resumeData); + } + } + [weakSelf uploadMultiParts:result]; + } + }]; + + [self.requestCacheArray addPointer:(__bridge void *_Nullable)(uploadRequet)]; + [self.transferManager.cosService InitiateMultipartUpload:uploadRequet]; +} + +- (NSArray *)getFileLocalUploadParts { + NSMutableArray *allParts = [NSMutableArray new]; + if (self.canceled) { + return nil; + } + NSURL *url = (NSURL *)self.body; + if([self.body isKindOfClass:NSURL.class]){ + self.dataContentLength = QCloudFileSize(url.relativePath); + } + int64_t restContentLength = self.dataContentLength - uploadedSize; + //便宜的起始位置 + int64_t offset = uploadedSize; + for (int i = startPartNumber;; i++) { + int64_t slice = 0; + NSUInteger maxSlice = ceil(self.dataContentLength * 1.0 / (10000)); + NSUInteger uploadSliceLength = self.sliceSize > 10 ? self.sliceSize : kQCloudCOSXMLUploadSliceLength; + uploadSliceLength = self.dataContentLength * 1.0 / uploadSliceLength > 10000 ? maxSlice : uploadSliceLength; + if (restContentLength >= uploadSliceLength) { + slice = uploadSliceLength; + } else { + slice = restContentLength; + } + if (!_uploadBodyIsCompleted && slice < kQCloudCOSXMLUploadSliceLength) { + break; + } + QCloudFileOffsetBody *body = [[QCloudFileOffsetBody alloc] initWithFile:url offset:offset slice:slice]; + [allParts addObject:body]; + offset += slice; + body.index = i; + restContentLength -= slice; + if (restContentLength <= 0) { + break; + } + } + + return allParts; +} + +- (void)appendUploadBytesSent:(int64_t)bytesSent { + [_progressLock lock]; + _totalBytesSent += bytesSent; + [self notifySendProgressBytesSend:bytesSent totalBytesSend:_totalBytesSent totalBytesExpectedToSend:_dataContentLength]; + [_progressLock unlock]; +} + +- (void)uploadOffsetBodys:(NSArray *)allParts { + // rest already upload size + int64_t totalTempBytesSend = 0; + for (QCloudFileOffsetBody *body in allParts) { + totalTempBytesSend += body.sliceLength; + } + _totalBytesSent = _dataContentLength - totalTempBytesSend; + [self.benchMarkMan directSetValue:@(totalTempBytesSend) forKey:kTotalSize]; + // + __weak typeof(self) weakSelf = self; + _queueSource = dispatch_source_create(DISPATCH_SOURCE_TYPE_DATA_ADD, 0, 0, dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_HIGH, 0)); + __block int totalComplete = 0; + dispatch_source_set_event_handler(_queueSource, ^{ + if (weakSelf.queueSource) { + NSUInteger value = dispatch_source_get_data(weakSelf.queueSource); + @synchronized(weakSelf) { + totalComplete += value; + } + if (totalComplete == allParts.count) { + if (NULL != weakSelf.queueSource) { + dispatch_source_cancel(weakSelf.queueSource); + } + [weakSelf finishUpload:weakSelf.uploadId]; + } + } + }); + dispatch_resume(_queueSource); + for (int i = 0; i < allParts.count; i++) { + __block QCloudFileOffsetBody *body = allParts[i]; + + //如果自身被取消,终止c创建新的uploadPartRequest + if (self.canceled) { + QCloudLogDebugP(@"Upload",@"请求被取消,终止创建新的uploadPartRequest"); + break; + } + QCloudUploadPartRequest *request = [QCloudUploadPartRequest new]; + request.enableQuic = self.enableQuic; + request.endpoint = self.endpoint; + request.networkType = self.networkType; + request.payload = self.payload; + request.bucket = self.bucket; + request.trafficLimit = self.trafficLimit; + request.timeoutInterval = self.timeoutInterval; + request.regionName = self.regionName; + request.object = self.object; + request.priority = self.uploadPriority; + request.partNumber = (int)body.index + 1; + request.uploadId = self.uploadId; + request.customHeaders = [self.customHeaders mutableCopy]; + request.body = body; + request.retryPolicy.delegate = self; + __weak typeof(request) weakRequest = request; + __block int64_t partBytesSent = 0; + int64_t partSize = body.sliceLength; + + [request setSendProcessBlock:^(int64_t bytesSent, int64_t totalBytesSent, int64_t totalBytesExpectedToSend) { + BOOL isRetry = weakRequest.isRetry; + if(!weakRequest.enableQuic || !isRetry){ + int64_t restSize = totalBytesExpectedToSend - partSize; + if (restSize - partBytesSent <= 0) { + [weakSelf appendUploadBytesSent:bytesSent]; + } else { + partBytesSent += bytesSent; + if (restSize - partBytesSent <= 0) { + [weakSelf appendUploadBytesSent:partBytesSent - restSize]; + } + } + } + }]; + [request setFinishBlock:^(QCloudUploadPartResult *outputObject, NSError *error) { + QCloudLogInfoP(@"Upload",@"收到一个part %d的响应 %@;是否重试:%@", (i + 1), outputObject.eTag, weakRequest.isRetry?@"是":@"否"); + if (!weakSelf) { + return; + } + __strong typeof(weakSelf) strongSelf = weakSelf; + __strong typeof(weakRequest) strongRequst = weakRequest; + + @synchronized (self) { + [strongSelf.requstMetricArray addObject:@{ [NSString stringWithFormat:@"%@", strongRequst] : weakRequest.benchMarkMan.tastMetrics }]; + } + + if (error && error.code != QCloudNetworkErrorCodeCanceled) { + NSError *transferError = [weakSelf tranformErrorToResume:error]; + __strong typeof(weakSelf) strongSelf = weakSelf; + [weakSelf onError:transferError]; + if (!self.canceled) { + [strongSelf cancel]; + } + }else if(error && error.code == QCloudNetworkErrorCodeCanceled){ + if (!self.canceled) { + [strongSelf cancel]; + } + } else { + if (self.enableMD5Verification || self.enableVerification) { + if (outputObject.eTag.length == (kQCloudCOSXMLMD5Length + 2)) { + NSString *MD5FromeETag = [outputObject.eTag substringWithRange:NSMakeRange(1, outputObject.eTag.length - 2)]; + NSString *localMD5String = [QCloudEncrytFileOffsetMD5(body.fileURL.path, body.offset, body.sliceLength) lowercaseString]; + if (![MD5FromeETag isEqualToString:localMD5String]) { + NSMutableString *errorMessageString = [[NSMutableString alloc] init]; + [errorMessageString + appendFormat:@"DataIntegrityError分片:上传过程中MD5校验与本地不一致,请检查本地文件在上传过程中是否发生了变化," + @"建议调用删除接口将COS上的文件删除并重新上传,本地计算的 MD5 值:%@, 返回的 ETag值:%@", + localMD5String, MD5FromeETag]; + if ([outputObject __originHTTPURLResponse__] && + [[outputObject __originHTTPURLResponse__].allHeaderFields valueForKey:@"x-cos-request-id"] != nil) { + NSString *requestID = [[outputObject __originHTTPURLResponse__].allHeaderFields valueForKey:@"x-cos-request-id"]; + [errorMessageString appendFormat:@", Request id:%@", requestID]; + } + NSError *error = [NSError qcloud_errorWithCode:QCloudNetworkErrorCodeNotMatch message:errorMessageString]; + + [weakSelf onError:error]; + [weakSelf cancel]; + return; + } + } + } + + QCloudMultipartInfo *info = [QCloudMultipartInfo new]; + info.eTag = outputObject.eTag; + info.partNumber = [@(body.index + 1) stringValue]; + [weakSelf markPartFinish:info]; + dispatch_source_merge_data(weakSelf.queueSource, 1); + } + }]; + + [self.requestCacheArray addPointer:(__bridge void *_Nullable)(request)]; + [self.transferManager.cosService UploadPart:request]; + } +} + +- (NSError *)tranformErrorToResume:(NSError *)error { + NSMutableDictionary *dic = [NSMutableDictionary dictionary]; + [dic addEntriesFromDictionary:error.userInfo]; + QCloudCOSXMLUploadObjectResumeData resumeData = [self productingReqsumeData:NULL]; + if (resumeData) { + dic[QCloudUploadResumeDataKey] = resumeData; + } + + NSError *transferError = [NSError errorWithDomain:error.domain code:error.code userInfo:dic]; + transferError.__originHTTPURLResponse__ = error.__originHTTPURLResponse__; + transferError.__originHTTPResponseData__ = error.__originHTTPResponseData__; + return transferError; +} +- (void)uploadMultiParts:(QCloudInitiateMultipartUploadResult *)result { + self.uploadId = result.uploadId; + NSArray *allParts = [self getFileLocalUploadParts]; + [self uploadOffsetBodys:allParts]; + +} + +- (void)markPartFinish:(QCloudMultipartInfo *)info { + if (!info) { + return; + } + [_recursiveLock lock]; + [_uploadParts addObject:info]; + [_recursiveLock unlock]; +} + +- (void)onError:(NSError *)error { + if (!self.aborted) { + NSError *transferError = [self tranformErrorToResume:error]; + [super onError:transferError]; + } else { + [super onError:error]; + } +} + +- (void)finishUpload:(NSString *)uploadId { + NSURL *url = (NSURL *)self.body; + if(self.canceled){ + return; + } + if(!self.uploadBodyIsCompleted){ + NSError *error = [NSError qcloud_errorWithCode:QCloudNetworkErrorCodeImCompleteData + message:@"DataIntegrityError分片:文件大小与原始文件大小不一致,请检查文件在上传的过程中是否发生改变"]; + [self onError:error]; + return; + } + QCloudCompleteMultipartUploadRequest *complete = [QCloudCompleteMultipartUploadRequest new]; + complete.enableQuic = self.enableQuic; + complete.endpoint = self.endpoint; + complete.networkType = self.networkType; + complete.payload = self.payload; + complete.object = self.object; + complete.bucket = self.bucket; + complete.uploadId = self.uploadId; + complete.regionName = self.regionName; + complete.customHeaders = [self.customHeaders mutableCopy]; + complete.retryPolicy.delegate = self; + complete.timeoutInterval = self.timeoutInterval; + QCloudCompleteMultipartUploadInfo *info = [QCloudCompleteMultipartUploadInfo new]; + [self.uploadParts sortUsingComparator:^NSComparisonResult(QCloudMultipartInfo *_Nonnull obj1, QCloudMultipartInfo *_Nonnull obj2) { + int a = obj1.partNumber.intValue; + int b = obj2.partNumber.intValue; + + if (a < b) { + return NSOrderedAscending; + } else { + return NSOrderedDescending; + } + }]; + + info.parts = self.uploadParts; + complete.parts = info; + + __weak typeof(self) weakSelf = self; + __weak typeof(complete) weakRequest = complete; + [complete setFinishBlock:^(QCloudUploadObjectResult *outputObject, NSError *error) { + __strong typeof(weakSelf) strongSelf = weakSelf; + __strong typeof(weakRequest) strongRequst = weakRequest; + [strongSelf.requstMetricArray addObject:@ { [NSString stringWithFormat:@"%@", strongRequst] : weakRequest.benchMarkMan.tastMetrics }]; + + if (self.requstsMetricArrayBlock) { + self.requstsMetricArrayBlock(weakSelf.requstMetricArray); + } + if (error) { + [weakSelf onError:error]; + } else { + if (nil != outputObject.location) { + outputObject.location + = QCloudFormattHTTPURL(outputObject.location, weakSelf.transferManager.cosService.configuration.endpoint.useHTTPS); + } + + if (outputObject.CallbackResult && outputObject.CallbackResult.CallbackBody) { + NSString * callBackBody = outputObject.CallbackResult.CallbackBody; + NSData *data = [[NSData alloc] initWithBase64EncodedString:callBackBody options:0]; + NSString *decodedString = [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding]; + outputObject.CallbackResult.CallbackBody = decodedString; + } + + [weakSelf onSuccess:outputObject]; + } + }]; + + [self.requestCacheArray addPointer:(__bridge void *_Nullable)(complete)]; + [self.transferManager.cosService CompleteMultipartUpload:complete]; +} + +// ++ (instancetype)requestWithRequestData:(QCloudCOSXMLUploadObjectResumeData _Nullable)resumeData { + QCloudCOSXMLUploadObjectRequest *request = [QCloudCOSXMLUploadObjectRequest qcloud_modelWithJSON:resumeData]; + QCloudLogDebugP(@"Upload",@"[PROCESS]Generating request from resume data, body is %@", request.body); + QCloudUniversalPath *path = request.body; + // fileURLWithPath会再次编码,所以需要一次解码 + NSString *bodyUrl = QCloudURLDecodeUTF8([path fileURL].absoluteString); + request.body = [NSURL URLWithString:bodyUrl]; + + QCloudLogDebugP(@"Upload",@"[PROCESS]Path after transfering is %@", request.body); + + return request; +} + +- (void)cancel { + + @synchronized (self) { + [self.requestCacheArray addPointer:(__bridge void *_Nullable)([NSObject new])]; + [self.requestCacheArray compact]; + } + + if (NULL != _queueSource) { + dispatch_source_cancel(_queueSource); + } + + NSMutableArray *cancelledRequestIDs = [NSMutableArray array]; + NSPointerArray *tmpRequestCacheArray = [self.requestCacheArray copy]; + for (QCloudHTTPRequest *request in tmpRequestCacheArray) { + if (request != nil && [request respondsToSelector:@selector(requestID)]) { + [cancelledRequestIDs addObject:[NSNumber numberWithLongLong:request.requestID]]; + } + } + + [[QCloudHTTPSessionManager shareClient] cancelRequestsWithID:cancelledRequestIDs]; + [super cancel]; +} + +- (QCloudCOSXMLUploadObjectResumeData)cancelByProductingResumeData:(NSError *__autoreleasing *)error { + QCloudLogDebugP(@"Upload",@"cancelByProductingResumeData begin"); + [self.requestCacheArray addPointer:(__bridge void *_Nullable)([NSObject new])]; + [self.requestCacheArray compact]; + //先判断是不是有请求禁止取消 + NSPointerArray *tmpRequestCacheArray = [self.requestCacheArray copy]; + // QCloudLogDebug(@"cancel 开始遍历 :[%ld]",tmpRequestCacheArray); + for (QCloudHTTPRequest *request in tmpRequestCacheArray.allObjects) { + if (request.forbidCancelled) { + if (NULL != error) { + *error = [NSError qcloud_errorWithCode:QCloudNetworkErrorUnsupportOperationError + message:@"UnsupportOperation:无法暂停当前的上传请求,因为complete请求已经发出"]; + } + return nil; + } + } + //将自己的状态标记为cancel + dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_HIGH, 0), ^{ + [self cancel]; + }); + return [self productingReqsumeData:error]; +} ++ (nullable NSArray *)modelPropertyBlacklist { + return @[ @"delegate" ]; +} + +- (QCloudCOSXMLUploadObjectResumeData)productingReqsumeData:(NSError *__autoreleasing *)error { + if (_dataContentLength <= _mutilThreshold) { + if (NULL != error) { + *error = [NSError qcloud_errorWithCode:QCloudNetworkErrorUnsupportOperationError + message:@"UnsupportOperation:无法暂停当前的上传请求,因为使用的是单次上传"]; + } + return nil; + } + if (![self.body isKindOfClass:[NSURL class]]) { + if (NULL != error) { + *error = [NSError qcloud_errorWithCode:QCloudNetworkErrorUnsupportOperationError + message:@"UnsupportOperation:无法暂停当前的上传请求,因为使用的是非持久化存储上传"]; + } + return nil; + } + if ([self finished]) { + if (NULL != error) { + *error = [NSError qcloud_errorWithCode:QCloudNetworkErrorCodeAlreadyFinish + message:@"AlreadyFinished:无法暂停当前的上传请求,因为该请求已经结束"]; + } + return nil; + } + [_recursiveLock lock]; + NSURL *url = (NSURL *)self.body; + QCloudUniversalPath *universalPath = [QCloudUniversalPathFactory universalPathWithURL:url]; + self.body = universalPath; + NSData *info = [self qcloud_modelToJSONData]; + QCloudLogDebugP(@"Upload",@"RESUME data %@", info); + self.body = url; + [_recursiveLock unlock]; + return info; +} + +- (void)abort:(QCloudRequestFinishBlock _Nullable)finishBlock { + if (self.finished) { + NSError *error = [NSError qcloud_errorWithCode:QCloudNetworkErrorUnsupportOperationError message:@"取消失败,任务已经完成"]; + if (finishBlock) { + finishBlock(nil, error); + } + } else { + if (self.uploadId) { + QCloudAbortMultipfartUploadRequest *abortRequest = [QCloudAbortMultipfartUploadRequest new]; + abortRequest.enableQuic = self.enableQuic; + abortRequest.endpoint = self.endpoint; + abortRequest.networkType = self.networkType; + abortRequest.customHeaders = [self.customHeaders mutableCopy]; + abortRequest.object = self.object; + abortRequest.regionName = self.regionName; + abortRequest.bucket = self.bucket; + abortRequest.uploadId = self.uploadId; + abortRequest.finishBlock = finishBlock; + abortRequest.timeoutInterval = self.timeoutInterval; + self.uploadId = nil; + [self.transferManager.cosService AbortMultipfartUpload:abortRequest]; + } else { + if (finishBlock) { + finishBlock(@{}, nil); + } + } + } + _aborted = YES; + [self cancel]; +} +- (void)setCOSServerSideEncyption { + self.enableMD5Verification = NO; + self.customHeaders[@"x-cos-server-side-encryption"] = @"AES256"; +} +- (void)setCOSServerSideEncyptionWithCustomerKey:(NSString *)customerKey { + self.enableMD5Verification = NO; + NSData *data = [customerKey dataUsingEncoding:NSUTF8StringEncoding]; + NSString *excryptAES256Key = [data base64EncodedStringWithOptions:0]; // base64格式的字符串 + NSString *base64md5key = QCloudEncrytNSDataMD5Base64(data); + self.customHeaders[@"x-cos-server-side-encryption-customer-algorithm"] = @"AES256"; + self.customHeaders[@"x-cos-server-side-encryption-customer-key"] = excryptAES256Key; + self.customHeaders[@"x-cos-server-side-encryption-customer-key-MD5"] = base64md5key; +} + +- (void)setCOSServerSideEncyptionWithKMSCustomKey:(NSString *)customerKey jsonStr:(NSString *)jsonStr { + self.enableMD5Verification = NO; + self.customHeaders[@"x-cos-server-side-encryption"] = @"cos/kms"; + if (customerKey) { + self.customHeaders[@"x-cos-server-side-encryption-cos-kms-key-id"] = customerKey; + } + if (jsonStr) { + //先将string转换成data + NSData *data = [jsonStr dataUsingEncoding:NSUTF8StringEncoding]; + self.customHeaders[@"x-cos-server-side-encryption-context"] = [data base64EncodedStringWithOptions:0]; + } +} +- (BOOL)shouldRetry:(QCloudURLSessionTaskData *)task error:(NSError *)error { + if ([self.retryHandler.delegate respondsToSelector:@selector(shouldRetry:error:)]) { + return [self.retryHandler.delegate shouldRetry:task error:error]; + } + return YES; +} +- (void)setFinishBlock:(void (^_Nullable)(QCloudUploadObjectResult *_Nullable, NSError *_Nullable))QCloudRequestFinishBlock { + [super setFinishBlock:QCloudRequestFinishBlock]; +} +@end diff --git a/Pods/QCloudCOSXML/QCloudCOSXML/Classes/Transfer/request/QCloudCOSXMLUploadObjectRequest_Private.h b/Pods/QCloudCOSXML/QCloudCOSXML/Classes/Transfer/request/QCloudCOSXMLUploadObjectRequest_Private.h new file mode 100644 index 0000000..e253c00 --- /dev/null +++ b/Pods/QCloudCOSXML/QCloudCOSXML/Classes/Transfer/request/QCloudCOSXMLUploadObjectRequest_Private.h @@ -0,0 +1,14 @@ +// +// QCloudCOSXMLUploadObjectRequest_Private.h +// Pods +// +// Created by Dong Zhao on 2017/5/26. +// +// + +#import "QCloudCOSXMLUploadObjectRequest.h" + +@class QCloudCOSTransferMangerService; +@interface QCloudCOSXMLUploadObjectRequest () +@property (nonatomic, weak) QCloudCOSTransferMangerService *transferManager; +@end diff --git a/Pods/QCloudCOSXML/QCloudCOSXML/Classes/Transfer/request/QCloudCompleteMultipartUploadRequest.h b/Pods/QCloudCOSXML/QCloudCOSXML/Classes/Transfer/request/QCloudCompleteMultipartUploadRequest.h new file mode 100644 index 0000000..5796f2e --- /dev/null +++ b/Pods/QCloudCOSXML/QCloudCOSXML/Classes/Transfer/request/QCloudCompleteMultipartUploadRequest.h @@ -0,0 +1,117 @@ +// +// CompleteMultipartUpload.h +// CompleteMultipartUpload +// +// Created by tencent +// Copyright (c) 2015年 tencent. All rights reserved. +// +// ██████╗ ██████╗██╗ ██████╗ ██╗ ██╗██████╗ ████████╗███████╗██████╗ ███╗ ███╗██╗███╗ ██╗ █████╗ ██╗ ██╗ █████╗ +// ██████╗ +// ██╔═══██╗██╔════╝██║ ██╔═══██╗██║ ██║██╔══██╗ ╚══██╔══╝██╔════╝██╔══██╗████╗ ████║██║████╗ ██║██╔══██╗██║ ██║ ██╔══██╗██╔══██╗ +// ██║ ██║██║ ██║ ██║ ██║██║ ██║██║ ██║ ██║ █████╗ ██████╔╝██╔████╔██║██║██╔██╗ ██║███████║██║ ██║ ███████║██████╔╝ +// ██║▄▄ ██║██║ ██║ ██║ ██║██║ ██║██║ ██║ ██║ ██╔══╝ ██╔══██╗██║╚██╔╝██║██║██║╚██╗██║██╔══██║██║ ██║ ██╔══██║██╔══██╗ +// ╚██████╔╝╚██████╗███████╗╚██████╔╝╚██████╔╝██████╔╝ ██║ ███████╗██║ ██║██║ ╚═╝ ██║██║██║ ╚████║██║ ██║███████╗ ███████╗██║ +// ██║██████╔╝ +// ╚══▀▀═╝ ╚═════╝╚══════╝ ╚═════╝ ╚═════╝ ╚═════╝ ╚═╝ ╚══════╝╚═╝ ╚═╝╚═╝ ╚═╝╚═╝╚═╝ ╚═══╝╚═╝ ╚═╝╚══════╝ ╚══════╝╚═╝ ╚═╝╚═════╝ +// +// +// _ __ _ _ +// (_) / _| | | | | +// ___ ___ _ ____ ___ ___ ___ | |_ ___ _ __ __| | _____ _____| | ___ _ __ ___ _ +// __ ___ +// / __|/ _ \ '__\ \ / / |/ __/ _ \ | _/ _ \| '__| / _` |/ _ \ \ / / _ \ |/ _ \| '_ \ / _ \ +// '__/ __| +// \__ \ __/ | \ V /| | (_| __/ | || (_) | | | (_| | __/\ V / __/ | (_) | |_) | __/ +// | \__ +// |___/\___|_| \_/ |_|\___\___| |_| \___/|_| \__,_|\___| \_/ \___|_|\___/| .__/ +// \___|_| |___/ +// ______ ______ ______ ______ ______ ______ ______ ______ | | +// |______|______|______|______|______|______|______|______| |_| +// + +#import +#import +#import "QCloudUploadObjectResult.h" +@class QCloudCompleteMultipartUploadInfo; +NS_ASSUME_NONNULL_BEGIN +/** + + 完成整个分块上传的方法. + + ### 功能描述 + + 当使用分块上传(uploadPart(UploadPartRequest))完对象的所有块以后, + 必须调用该 completeMultiUpload(CompleteMultiUploadRequest) + 或者 completeMultiUploadAsync(CompleteMultiUploadRequest, CosXmlResultListener) + 来完成整个文件的分块上传.且在该请求的 Body 中需要给出每一个块的 PartNumber 和 ETag, + 用来校验块的准确性. + + 分块上传适合于在弱网络或高带宽环境下上传较大的对象.SDK 支持自行切分对象并分别调用 + uploadPart(UploadPartRequest)上传各 个分块. + + 关于完成整个分片上传接口的描述,请查看 https://cloud.tencent.com/document/product/436/7742. + + +### 示例 + + @code + + QCloudCompleteMultipartUploadRequest *completeRequst = [QCloudCompleteMultipartUploadRequest new]; + + // 对象键,是对象在 COS 上的完整路径,如果带目录的话,格式为 "dir1/object1" + completeRequst.object = @"exampleobject"; + + // 存储桶名称,格式为 BucketName-APPID + completeRequst.bucket = @"examplebucket-1250000000"; + + // 本次要查询的分块上传的 uploadId,可从初始化分块上传的请求结果 QCloudInitiateMultipartUploadResult 中得到 + completeRequst.uploadId = uploadId; + + // 已上传分块的信息 + QCloudCompleteMultipartUploadInfo *partInfo = [QCloudCompleteMultipartUploadInfo new]; + NSMutableArray * parts = [self.parts mutableCopy]; + + // 对已上传的块进行排序 + [parts sortUsingComparator:^NSComparisonResult(QCloudMultipartInfo* _Nonnull obj1, + QCloudMultipartInfo* _Nonnull obj2) { + int a = obj1.partNumber.intValue; + int b = obj2.partNumber.intValue; + + if (a < b) { + return NSOrderedAscending; + } else { + return NSOrderedDescending; + } + }]; + partInfo.parts = [parts copy]; + completeRequst.parts = partInfo; + + [completeRequst setFinishBlock:^(QCloudUploadObjectResult * _Nonnull result, + NSError * _Nonnull error) { + // 从 result 中获取上传结果 + }]; + + [[QCloudCOSXMLService defaultCOSXML] CompleteMultipartUpload:completeRequst]; + +*/ +@interface QCloudCompleteMultipartUploadRequest : QCloudBizHTTPRequest +/** +对象名 +*/ +@property (strong, nonatomic) NSString *object; +/** +存储桶名 +*/ +@property (strong, nonatomic) NSString *bucket; +/** +本次分片上传的UploadID +*/ +@property (strong, nonatomic) NSString *uploadId; +/** +完成分片上传的信息 +*/ +@property (strong, nonatomic) QCloudCompleteMultipartUploadInfo *parts; + +- (void)setFinishBlock:(void (^_Nullable)(QCloudUploadObjectResult *_Nullable result, NSError *_Nullable error))QCloudRequestFinishBlock; +@end +NS_ASSUME_NONNULL_END diff --git a/Pods/QCloudCOSXML/QCloudCOSXML/Classes/Transfer/request/QCloudCompleteMultipartUploadRequest.m b/Pods/QCloudCOSXML/QCloudCOSXML/Classes/Transfer/request/QCloudCompleteMultipartUploadRequest.m new file mode 100644 index 0000000..cbd10ba --- /dev/null +++ b/Pods/QCloudCOSXML/QCloudCOSXML/Classes/Transfer/request/QCloudCompleteMultipartUploadRequest.m @@ -0,0 +1,158 @@ +// +// CompleteMultipartUpload.m +// CompleteMultipartUpload +// +// Created by tencent +// Copyright (c) 2015年 tencent. All rights reserved. +// +// ██████╗ ██████╗██╗ ██████╗ ██╗ ██╗██████╗ ████████╗███████╗██████╗ ███╗ ███╗██╗███╗ ██╗ █████╗ ██╗ ██╗ █████╗ +// ██████╗ +// ██╔═══██╗██╔════╝██║ ██╔═══██╗██║ ██║██╔══██╗ ╚══██╔══╝██╔════╝██╔══██╗████╗ ████║██║████╗ ██║██╔══██╗██║ ██║ ██╔══██╗██╔══██╗ +// ██║ ██║██║ ██║ ██║ ██║██║ ██║██║ ██║ ██║ █████╗ ██████╔╝██╔████╔██║██║██╔██╗ ██║███████║██║ ██║ ███████║██████╔╝ +// ██║▄▄ ██║██║ ██║ ██║ ██║██║ ██║██║ ██║ ██║ ██╔══╝ ██╔══██╗██║╚██╔╝██║██║██║╚██╗██║██╔══██║██║ ██║ ██╔══██║██╔══██╗ +// ╚██████╔╝╚██████╗███████╗╚██████╔╝╚██████╔╝██████╔╝ ██║ ███████╗██║ ██║██║ ╚═╝ ██║██║██║ ╚████║██║ ██║███████╗ ███████╗██║ +// ██║██████╔╝ +// ╚══▀▀═╝ ╚═════╝╚══════╝ ╚═════╝ ╚═════╝ ╚═════╝ ╚═╝ ╚══════╝╚═╝ ╚═╝╚═╝ ╚═╝╚═╝╚═╝ ╚═══╝╚═╝ ╚═╝╚══════╝ ╚══════╝╚═╝ ╚═╝╚═════╝ +// +// +// _ __ _ _ +// (_) / _| | | | | +// ___ ___ _ ____ ___ ___ ___ | |_ ___ _ __ __| | _____ _____| | ___ _ __ ___ _ +// __ ___ +// / __|/ _ \ '__\ \ / / |/ __/ _ \ | _/ _ \| '__| / _` |/ _ \ \ / / _ \ |/ _ \| '_ \ / _ \ +// '__/ __| +// \__ \ __/ | \ V /| | (_| __/ | || (_) | | | (_| | __/\ V / __/ | (_) | |_) | __/ +// | \__ +// |___/\___|_| \_/ |_|\___\___| |_| \___/|_| \__,_|\___| \_/ \___|_|\___/| .__/ +// \___|_| |___/ +// ______ ______ ______ ______ ______ ______ ______ ______ | | +// |______|______|______|______|______|______|______|______| |_| +// + +#import "QCloudCompleteMultipartUploadRequest.h" +#import +#import +#import +#import "QCloudUploadObjectResult.h" +#import "QCloudCompleteMultipartUploadInfo.h" + +NS_ASSUME_NONNULL_BEGIN +@implementation QCloudCompleteMultipartUploadRequest +- (void)dealloc { +} +- (instancetype)init { + self = [super init]; + if (!self) { + return nil; + } + return self; +} +- (void)configureReuqestSerializer:(QCloudRequestSerializer *)requestSerializer responseSerializer:(QCloudResponseSerializer *)responseSerializer { + NSArray *customRequestSerilizers = @[ + QCloudURLFuseSimple, + QCloudURLFuseWithXMLParamters, + ]; + + NSArray *responseSerializers = @[ + QCloudAcceptRespnseCodeBlock([NSSet setWithObjects:@(200), @(201), @(202), @(203), @(204), @(205), @(206), @(207), @(208), @(226), nil], nil), + QCloudResponseXMLSerializerBlock, + + QCloudResponseObjectSerilizerBlock([QCloudUploadObjectResult class]) + ]; + [requestSerializer setSerializerBlocks:customRequestSerilizers]; + [responseSerializer setSerializerBlocks:responseSerializers]; + + requestSerializer.HTTPMethod = @"post"; +} + +- (BOOL)buildRequestData:(NSError *__autoreleasing *)error { + if (![super buildRequestData:error]) { + return NO; + } + if (!self.object || ([self.object isKindOfClass:NSString.class] && ((NSString *)self.object).length == 0)) { + if (error != NULL) { + *error = [NSError + qcloud_errorWithCode:QCloudNetworkErrorCodeParamterInvalid + message:[NSString stringWithFormat: + @"InvalidArgument:paramter[object] is invalid (nil), it must have some value. please check it"]]; + return NO; + } + } + if (!self.bucket || ([self.bucket isKindOfClass:NSString.class] && ((NSString *)self.bucket).length == 0)) { + if (error != NULL) { + *error = [NSError + qcloud_errorWithCode:QCloudNetworkErrorCodeParamterInvalid + message:[NSString stringWithFormat: + @"InvalidArgument:paramter[bucket] is invalid (nil), it must have some value. please check it"]]; + return NO; + } + } + NSURL *__serverURL = [self.runOnService.configuration.endpoint serverURLWithBucket:self.bucket + appID:self.runOnService.configuration.appID + regionName:self.regionName]; + self.requestData.serverURL = __serverURL.absoluteString; + [self.requestData setValue:__serverURL.host forHTTPHeaderField:@"Host"]; + if (!self.uploadId || ([self.uploadId isKindOfClass:NSString.class] && ((NSString *)self.uploadId).length == 0)) { + if (error != NULL) { + *error = [NSError + qcloud_errorWithCode:QCloudNetworkErrorCodeParamterInvalid + message:[NSString stringWithFormat: + @"InvalidArgument:paramter[uploadId] is invalid (nil), it must have some value. please check it"]]; + return NO; + } + } + [self.requestData setQueryStringParamter:self.uploadId withKey:@"uploadId"]; + if (!self.parts) { + if (error != NULL) { + *error = [NSError + qcloud_errorWithCode:QCloudNetworkErrorCodeParamterInvalid + message:[NSString stringWithFormat: + @"InvalidArgument:paramter[parts] is invalid (nil), it must have some value. please check it"]]; + return NO; + } + } + [self.requestData setParameter:[self.parts qcloud_modelToJSONObject] withKey:@"CompleteMultipartUpload"]; + NSMutableArray *__pathComponents = [NSMutableArray arrayWithArray:self.requestData.URIComponents]; + if (self.object) + [__pathComponents addObject:self.object]; + self.requestData.URIComponents = __pathComponents; + for (NSString *key in self.customHeaders.allKeys.copy) { + [self.requestData setValue:self.customHeaders[key] forHTTPHeaderField:key]; + } + return YES; +} +- (void)setFinishBlock:(void (^_Nullable)(QCloudUploadObjectResult *_Nullable result, NSError *__nullableerror))QCloudRequestFinishBlock { + [super setFinishBlock:QCloudRequestFinishBlock]; +} + +- (QCloudSignatureFields *)signatureFields { + QCloudSignatureFields *fileds = [QCloudSignatureFields new]; + + return fileds; +} +- (NSArray *)scopesArray { + NSMutableArray *array = [NSMutableArray array]; + [array addObject:[self getScopeWithAction:@"name/cos:InitiateMultipartUpload"]]; + [array addObject:[self getScopeWithAction:@"name/cos:ListParts"]]; + [array addObject:[self getScopeWithAction:@"name/cos:UploadPart"]]; + [array addObject:[self getScopeWithAction:@"name/cos:CompleteMultipartUpload"]]; + [array addObject:[self getScopeWithAction:@"name/cos:AbortMultipartUpload"]]; + return [array copy]; +} +- (NSMutableDictionary *)getScopeWithAction:(NSString *)action { + NSMutableDictionary *dic = [NSMutableDictionary dictionary]; + NSArray *separatetmpArray = [self.requestData.serverURL componentsSeparatedByString:@"://"]; + NSString *str = separatetmpArray[1]; + NSArray *separateArray = [str componentsSeparatedByString:@"."]; + dic[@"bucket"] = separateArray[0]; + dic[@"region"] = self.runOnService.configuration.endpoint.regionName; + dic[@"prefix"] = self.object; + dic[@"action"] = action; + return dic; +} + +- (void)configTaskResume { + self.forbidCancelled = YES; +} +@end +NS_ASSUME_NONNULL_END diff --git a/Pods/QCloudCOSXML/QCloudCOSXML/Classes/Transfer/request/QCloudGetObjectRequest+Custom.h b/Pods/QCloudCOSXML/QCloudCOSXML/Classes/Transfer/request/QCloudGetObjectRequest+Custom.h new file mode 100644 index 0000000..e1d91ab --- /dev/null +++ b/Pods/QCloudCOSXML/QCloudCOSXML/Classes/Transfer/request/QCloudGetObjectRequest+Custom.h @@ -0,0 +1,43 @@ +// +// QCloudGetObjectService.h +// QCloudGetObjectService +// +// Created by tencent +// +// +// ██████╗ ██████╗██╗ ██████╗ ██╗ ██╗██████╗ ████████╗███████╗██████╗ ███╗ ███╗██╗███╗ ██╗ █████╗ ██╗ ██╗ █████╗ +// ██████╗ +// ██╔═══██╗██╔════╝██║ ██╔═══██╗██║ ██║██╔══██╗ ╚══██╔══╝██╔════╝██╔══██╗████╗ ████║██║████╗ ██║██╔══██╗██║ ██║ ██╔══██╗██╔══██╗ +// ██║ ██║██║ ██║ ██║ ██║██║ ██║██║ ██║ ██║ █████╗ ██████╔╝██╔████╔██║██║██╔██╗ ██║███████║██║ ██║ ███████║██████╔╝ +// ██║▄▄ ██║██║ ██║ ██║ ██║██║ ██║██║ ██║ ██║ ██╔══╝ ██╔══██╗██║╚██╔╝██║██║██║╚██╗██║██╔══██║██║ ██║ ██╔══██║██╔══██╗ +// ╚██████╔╝╚██████╗███████╗╚██████╔╝╚██████╔╝██████╔╝ ██║ ███████╗██║ ██║██║ ╚═╝ ██║██║██║ ╚████║██║ ██║███████╗ ███████╗██║ +// ██║██████╔╝ +// ╚══▀▀═╝ ╚═════╝╚══════╝ ╚═════╝ ╚═════╝ ╚═════╝ ╚═╝ ╚══════╝╚═╝ ╚═╝╚═╝ ╚═╝╚═╝╚═╝ ╚═══╝╚═╝ ╚═╝╚══════╝ ╚══════╝╚═╝ ╚═╝╚═════╝ +// +// +// _ __ _ _ +// (_) / _| | | | | +// ___ ___ _ ____ ___ ___ ___ | |_ ___ _ __ __| | _____ _____| | ___ _ __ ___ _ +// __ ___ +// / __|/ _ \ '__\ \ / / |/ __/ _ \ | _/ _ \| '__| / _` |/ _ \ \ / / _ \ |/ _ \| '_ \ / _ \ +// '__/ __| +// \__ \ __/ | \ V /| | (_| __/ | || (_) | | | (_| | __/\ V / __/ | (_) | |_) | __/ +// | \__ +// |___/\___|_| \_/ |_|\___\___| |_| \___/|_| \__,_|\___| \_/ \___|_|\___/| .__/ +// \___|_| |___/ +// ______ ______ ______ ______ ______ ______ ______ ______ | | +// |______|______|______|______|______|______|______|______| |_| +// + +#import +#import "QCloudGetObjectRequest.h" +@interface QCloudGetObjectRequest (Custom) + +/** + 该选项设置为YES后,在下载完成后会比对COS上储存的文件MD5和下载到本地的文件MD5, + 如果MD5有差异的话会返回-340013错误码。 + 目前默认关闭。 + */ +@property (nonatomic, assign) BOOL enableMD5Verification; + +@end diff --git a/Pods/QCloudCOSXML/QCloudCOSXML/Classes/Transfer/request/QCloudGetObjectRequest+Custom.m b/Pods/QCloudCOSXML/QCloudCOSXML/Classes/Transfer/request/QCloudGetObjectRequest+Custom.m new file mode 100644 index 0000000..65e6133 --- /dev/null +++ b/Pods/QCloudCOSXML/QCloudCOSXML/Classes/Transfer/request/QCloudGetObjectRequest+Custom.m @@ -0,0 +1,98 @@ +// +// GetObject.m +// GetObject +// +// Created by tencent +// Copyright (c) 2015年 tencent. All rights reserved. +// +// ██████╗ ██████╗██╗ ██████╗ ██╗ ██╗██████╗ ████████╗███████╗██████╗ ███╗ ███╗██╗███╗ ██╗ █████╗ ██╗ ██╗ █████╗ +// ██████╗ +// ██╔═══██╗██╔════╝██║ ██╔═══██╗██║ ██║██╔══██╗ ╚══██╔══╝██╔════╝██╔══██╗████╗ ████║██║████╗ ██║██╔══██╗██║ ██║ ██╔══██╗██╔══██╗ +// ██║ ██║██║ ██║ ██║ ██║██║ ██║██║ ██║ ██║ █████╗ ██████╔╝██╔████╔██║██║██╔██╗ ██║███████║██║ ██║ ███████║██████╔╝ +// ██║▄▄ ██║██║ ██║ ██║ ██║██║ ██║██║ ██║ ██║ ██╔══╝ ██╔══██╗██║╚██╔╝██║██║██║╚██╗██║██╔══██║██║ ██║ ██╔══██║██╔══██╗ +// ╚██████╔╝╚██████╗███████╗╚██████╔╝╚██████╔╝██████╔╝ ██║ ███████╗██║ ██║██║ ╚═╝ ██║██║██║ ╚████║██║ ██║███████╗ ███████╗██║ +// ██║██████╔╝ +// ╚══▀▀═╝ ╚═════╝╚══════╝ ╚═════╝ ╚═════╝ ╚═════╝ ╚═╝ ╚══════╝╚═╝ ╚═╝╚═╝ ╚═╝╚═╝╚═╝ ╚═══╝╚═╝ ╚═╝╚══════╝ ╚══════╝╚═╝ ╚═╝╚═════╝ +// +// +// _ __ _ _ +// (_) / _| | | | | +// ___ ___ _ ____ ___ ___ ___ | |_ ___ _ __ __| | _____ _____| | ___ _ __ ___ _ +// __ ___ +// / __|/ _ \ '__\ \ / / |/ __/ _ \ | _/ _ \| '__| / _` |/ _ \ \ / / _ \ |/ _ \| '_ \ / _ \ +// '__/ __| +// \__ \ __/ | \ V /| | (_| __/ | || (_) | | | (_| | __/\ V / __/ | (_) | |_) | __/ +// | \__ +// |___/\___|_| \_/ |_|\___\___| |_| \___/|_| \__,_|\___| \_/ \___|_|\___/| .__/ +// \___|_| |___/ +// ______ ______ ______ ______ ______ ______ ______ ______ | | +// |______|______|______|______|______|______|______|______| |_| +// + +#import "QCloudGetObjectRequest+Custom.h" +#import +#import +@interface QCloudBizHTTPRequest () +- (void)__notifySuccess:(id)object; +@end + +@implementation QCloudGetObjectRequest (Custom) +- (void)__notifySuccess:(id)object { + if (!self.enableMD5Verification || ((NSObject *)object).__originHTTPURLResponse__ == nil) { + [super __notifySuccess:object]; + return; + } + + NSString *MD5FromETag = [((NSObject *)object).__originHTTPURLResponse__ allHeaderFields][@"Etag"]; + if (MD5FromETag) { + if ([[MD5FromETag substringWithRange:NSMakeRange(0, 1)] isEqualToString:@"W"]) { + NSRange range = NSMakeRange(3, MD5FromETag.length - 4); + MD5FromETag = [MD5FromETag substringWithRange:range]; + } else { + MD5FromETag = [MD5FromETag substringWithRange:NSMakeRange(1, MD5FromETag.length - 2)]; + } + } + if ([MD5FromETag containsString:@"-"]) { + [super __notifySuccess:object]; + return; + } + NSString *localMD5String; + if (self.downloadingTempURL) { + localMD5String = [QCloudEncrytFileMD5(self.downloadingTempURL.path) lowercaseString]; + } else { + if ([object isKindOfClass:[NSData class]]) { + localMD5String = [QCloudEncrytNSDataMD5(object) lowercaseString]; + } + } + NSError *resultError; + if (![localMD5String isEqualToString:MD5FromETag]) { + NSMutableString *errorMessageString = [[NSMutableString alloc] init]; + [errorMessageString + appendFormat:@"DataIntegrityError:下载过程中MD5校验与本地不一致,建议删除文件重新下载, 本地计算的 MD5 值:%@, 返回的 ETag值:%@", + localMD5String, MD5FromETag]; + if ([((NSObject *)object).__originHTTPURLResponse__ allHeaderFields][@"x-cos-request-id"] != nil) { + NSString *requestID = [((NSObject *)object).__originHTTPURLResponse__ allHeaderFields][@"x-cos-request-id"]; + [errorMessageString appendFormat:@", Request id:%@", requestID]; + } + resultError = [NSError qcloud_errorWithCode:QCloudNetworkErrorCodeNotMatch message:errorMessageString]; + } + dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_HIGH, 0), ^{ + self.finishBlock(object, resultError); + }); + + if ([self.delegate respondsToSelector:@selector(QCloudHTTPRequestDidFinished:succeedWithObject:)]) { + [self.delegate QCloudHTTPRequestDidFinished:self succeedWithObject:object]; + } +} + +- (BOOL)enableMD5Verification { + NSNumber *number = objc_getAssociatedObject(self, @selector(enableMD5Verification)); + return [number boolValue]; +} + +- (void)setEnableMD5Verification:(BOOL)enableMD5Verification { + NSNumber *number = [NSNumber numberWithBool:enableMD5Verification]; + objc_setAssociatedObject(self, @selector(enableMD5Verification), number, OBJC_ASSOCIATION_RETAIN_NONATOMIC); +} + +@end diff --git a/Pods/QCloudCOSXML/QCloudCOSXML/Classes/Transfer/request/QCloudGetObjectRequest.h b/Pods/QCloudCOSXML/QCloudCOSXML/Classes/Transfer/request/QCloudGetObjectRequest.h new file mode 100644 index 0000000..5adb8e7 --- /dev/null +++ b/Pods/QCloudCOSXML/QCloudCOSXML/Classes/Transfer/request/QCloudGetObjectRequest.h @@ -0,0 +1,149 @@ +// +// GetObject.h +// GetObject +// +// Created by tencent +// Copyright (c) 2015年 tencent. All rights reserved. +// +// ██████╗ ██████╗██╗ ██████╗ ██╗ ██╗██████╗ ████████╗███████╗██████╗ ███╗ ███╗██╗███╗ ██╗ █████╗ ██╗ ██╗ █████╗ +// ██████╗ +// ██╔═══██╗██╔════╝██║ ██╔═══██╗██║ ██║██╔══██╗ ╚══██╔══╝██╔════╝██╔══██╗████╗ ████║██║████╗ ██║██╔══██╗██║ ██║ ██╔══██╗██╔══██╗ +// ██║ ██║██║ ██║ ██║ ██║██║ ██║██║ ██║ ██║ █████╗ ██████╔╝██╔████╔██║██║██╔██╗ ██║███████║██║ ██║ ███████║██████╔╝ +// ██║▄▄ ██║██║ ██║ ██║ ██║██║ ██║██║ ██║ ██║ ██╔══╝ ██╔══██╗██║╚██╔╝██║██║██║╚██╗██║██╔══██║██║ ██║ ██╔══██║██╔══██╗ +// ╚██████╔╝╚██████╗███████╗╚██████╔╝╚██████╔╝██████╔╝ ██║ ███████╗██║ ██║██║ ╚═╝ ██║██║██║ ╚████║██║ ██║███████╗ ███████╗██║ +// ██║██████╔╝ +// ╚══▀▀═╝ ╚═════╝╚══════╝ ╚═════╝ ╚═════╝ ╚═════╝ ╚═╝ ╚══════╝╚═╝ ╚═╝╚═╝ ╚═╝╚═╝╚═╝ ╚═══╝╚═╝ ╚═╝╚══════╝ ╚══════╝╚═╝ ╚═╝╚═════╝ +// +// +// _ __ _ _ +// (_) / _| | | | | +// ___ ___ _ ____ ___ ___ ___ | |_ ___ _ __ __| | _____ _____| | ___ _ __ ___ _ +// __ ___ +// / __|/ _ \ '__\ \ / / |/ __/ _ \ | _/ _ \| '__| / _` |/ _ \ \ / / _ \ |/ _ \| '_ \ / _ \ +// '__/ __| +// \__ \ __/ | \ V /| | (_| __/ | || (_) | | | (_| | __/\ V / __/ | (_) | |_) | __/ +// | \__ +// |___/\___|_| \_/ |_|\___\___| |_| \___/|_| \__,_|\___| \_/ \___|_|\___/| .__/ +// \___|_| |___/ +// ______ ______ ______ ______ ______ ______ ______ ______ | | +// |______|______|______|______|______|______|______|______| |_| +// + +#import +#import +NS_ASSUME_NONNULL_BEGIN +/** + + 下载 COS 对象的方法. + + ### 功能描述 + + 可以直接发起 GET 请求获取 COS 中完整的对象数据, 或者在 GET 请求 中传入 Range 请求头部获取对象的部分内容. + + 获取COS 对象的同时,对象的元数据将会作为 HTTP 响应头部随对象内容一同返回,COS 支持GET + 请求时 使用 URL 参数的方式覆盖响应的部分元数据值,例如覆盖 Content-iDisposition 的响应值. + + 关于获取 COS 对象的接口描述,请查看 https://cloud.tencent.com/document/product/436/7753. + +### 示例 + + @code + + QCloudGetObjectRequest* request = [QCloudGetObjectRequest new]; + + // 设置下载的路径 URL,如果设置了,文件将会被下载到指定路径中 + // 如果未设置该参数,那么文件将会被下载至内存里,存放在在 finishBlock 的 outputObject 里 + request.downloadingURL = [NSURL URLWithString:QCloudTempFilePathWithExtension(@"downding")]; + + // 对象键,是对象在 COS 上的完整路径,如果带目录的话,格式为 "dir1/object1" + request.object = @"exampleobject"; + + // 存储桶名称,格式为 BucketName-APPID + request.bucket = @"examplebucket-1250000000"; + + [request setFinishBlock:^(id outputObject, NSError *error) { + // 可以从 outputObject 中获取 response 中 etag 或者自定义头部等信息 + NSDictionary* info = (NSDictionary *) outputObject; + }]; + [request setDownProcessBlock:^(int64_t bytesDownload, int64_t totalBytesDownload, + int64_t totalBytesExpectedToDownload) { + + // 下载过程中的进度 + // bytesDownload 一次下载的字节数, + // totalBytesDownload 总过接受的字节数 + // totalBytesExpectedToDownload 文件一共多少字节 + + }]; + + [[QCloudCOSXMLService defaultCOSXML] GetObject:request]; + +*/ +@interface QCloudGetObjectRequest : QCloudBizHTTPRequest +/** +设置响应头部中的 Content-Type参数 +*/ +@property (strong, nonatomic) NSString *responseContentType; +/** +设置响应头部中的Content-Language参数 +*/ +@property (strong, nonatomic) NSString *responseContentLanguage; +/** +设置响应头部中的Content-Expires参数 +*/ +@property (strong, nonatomic) NSString *responseContentExpires; +/** +设置响应头部中的Cache-Control参数 +*/ +@property (strong, nonatomic) NSString *responseCacheControl; +/** +设置响应头部中的 Content-Disposition 参数。 +*/ +@property (strong, nonatomic) NSString *responseContentDisposition; +/** +设置响应头部中的 Content-Encoding 参数。 +*/ +@property (strong, nonatomic) NSString *responseContentEncoding; +/** +RFC 2616 中定义的指定文件下载范围,以字节(bytes)为单位 +*/ +@property (strong, nonatomic) NSString *range; +/** +如果文件修改时间晚于指定时间,才返回文件内容。否则返回 412 (not modified) +*/ +@property (strong, nonatomic) NSString *ifModifiedSince; +/** +如果文件修改时间早于或等于指定时间,才返回文件内容。否则返回 412 (precondition failed) +*/ +@property (strong, nonatomic) NSString *ifUnmodifiedModifiedSince; +/** +当 ETag 与指定的内容一致,才返回文件。否则返回 412 (precondition failed) +*/ +@property (strong, nonatomic) NSString *ifMatch; +/** +当 ETag 与指定的内容不一致,才返回文件。否则返回 304 (not modified) +*/ +@property (strong, nonatomic) NSString *ifNoneMatch; +/** +指定 Object 的 VersionID (在开启多版本的情况下) +*/ +@property (strong, nonatomic) NSString *versionID; +/** +对象名 +*/ +@property (strong, nonatomic) NSString *object; + +/** +存储桶名 +*/ +@property (strong, nonatomic) NSString *bucket; +/** +给图片添加盲水印 +*/ +@property (strong, nonatomic) NSString *watermarkRule; +//针对本次下载行流量控制的限速值,必须为数字,单位默认为 bit/s。限速值设置范围为819200 - 838860800,即100KB/s - 100MB/s,如果超出该范围将返回400错误 +@property (nonatomic, assign) NSInteger trafficLimit; + +- (void)setFinishBlock:(void (^_Nullable)(id _Nullable result, NSError *_Nullable error))finishBlock; + +@end +NS_ASSUME_NONNULL_END diff --git a/Pods/QCloudCOSXML/QCloudCOSXML/Classes/Transfer/request/QCloudGetObjectRequest.m b/Pods/QCloudCOSXML/QCloudCOSXML/Classes/Transfer/request/QCloudGetObjectRequest.m new file mode 100644 index 0000000..0d961d4 --- /dev/null +++ b/Pods/QCloudCOSXML/QCloudCOSXML/Classes/Transfer/request/QCloudGetObjectRequest.m @@ -0,0 +1,208 @@ +// +// GetObject.m +// GetObject +// +// Created by tencent +// Copyright (c) 2015年 tencent. All rights reserved. +// +// ██████╗ ██████╗██╗ ██████╗ ██╗ ██╗██████╗ ████████╗███████╗██████╗ ███╗ ███╗██╗███╗ ██╗ █████╗ ██╗ ██╗ █████╗ +// ██████╗ +// ██╔═══██╗██╔════╝██║ ██╔═══██╗██║ ██║██╔══██╗ ╚══██╔══╝██╔════╝██╔══██╗████╗ ████║██║████╗ ██║██╔══██╗██║ ██║ ██╔══██╗██╔══██╗ +// ██║ ██║██║ ██║ ██║ ██║██║ ██║██║ ██║ ██║ █████╗ ██████╔╝██╔████╔██║██║██╔██╗ ██║███████║██║ ██║ ███████║██████╔╝ +// ██║▄▄ ██║██║ ██║ ██║ ██║██║ ██║██║ ██║ ██║ ██╔══╝ ██╔══██╗██║╚██╔╝██║██║██║╚██╗██║██╔══██║██║ ██║ ██╔══██║██╔══██╗ +// ╚██████╔╝╚██████╗███████╗╚██████╔╝╚██████╔╝██████╔╝ ██║ ███████╗██║ ██║██║ ╚═╝ ██║██║██║ ╚████║██║ ██║███████╗ ███████╗██║ +// ██║██████╔╝ +// ╚══▀▀═╝ ╚═════╝╚══════╝ ╚═════╝ ╚═════╝ ╚═════╝ ╚═╝ ╚══════╝╚═╝ ╚═╝╚═╝ ╚═╝╚═╝╚═╝ ╚═══╝╚═╝ ╚═╝╚══════╝ ╚══════╝╚═╝ ╚═╝╚═════╝ +// +// +// _ __ _ _ +// (_) / _| | | | | +// ___ ___ _ ____ ___ ___ ___ | |_ ___ _ __ __| | _____ _____| | ___ _ __ ___ _ +// __ ___ +// / __|/ _ \ '__\ \ / / |/ __/ _ \ | _/ _ \| '__| / _` |/ _ \ \ / / _ \ |/ _ \| '_ \ / _ \ +// '__/ __| +// \__ \ __/ | \ V /| | (_| __/ | || (_) | | | (_| | __/\ V / __/ | (_) | |_) | __/ +// | \__ +// |___/\___|_| \_/ |_|\___\___| |_| \___/|_| \__,_|\___| \_/ \___|_|\___/| .__/ +// \___|_| |___/ +// ______ ______ ______ ______ ______ ______ ______ ______ | | +// |______|______|______|______|______|______|______|______| |_| +// + +#import "QCloudGetObjectRequest.h" +#import +#import +#import +#import "QCloudGetObjectRequest+Custom.h" + +NS_ASSUME_NONNULL_BEGIN +@implementation QCloudGetObjectRequest +- (void)dealloc { +} +- (instancetype)init { + self = [super init]; + if (!self) { + return nil; + } + self.objectKeySimplifyCheck = YES; + return self; +} +- (void)configureReuqestSerializer:(QCloudRequestSerializer *)requestSerializer responseSerializer:(QCloudResponseSerializer *)responseSerializer { + NSArray *customRequestSerilizers = @[ QCloudURLFuseSimple, QCloudURLFuseWithURLEncodeParamters ]; + + NSArray *responseSerializers = @[ + QCloudAcceptRespnseCodeBlock([NSSet setWithObjects:@(200), @(201), @(202), @(203), @(204), @(205), @(206), @(207), @(208), @(226), nil], nil), + + QCloudResponseAppendHeadersSerializerBlock, + ]; + [requestSerializer setSerializerBlocks:customRequestSerilizers]; + [responseSerializer setSerializerBlocks:responseSerializers]; + + requestSerializer.HTTPMethod = @"get"; +} + +- (BOOL)buildRequestData:(NSError *__autoreleasing *)error { + if (![super buildRequestData:error]) { + return NO; + } + if (!self.object || ([self.object isKindOfClass:NSString.class] && ((NSString *)self.object).length == 0)) { + if (error != NULL) { + *error = [NSError + qcloud_errorWithCode:QCloudNetworkErrorCodeParamterInvalid + message:[NSString stringWithFormat: + @"InvalidArgument:paramter[object] is invalid (nil), it must have some value. please check it"]]; + return NO; + } + } + + if (self.objectKeySimplifyCheck && [[self simplifyPath:self.object] isEqualToString:@"/"]) { + if (error != NULL) { + *error = [NSError + qcloud_errorWithCode:QCloudNetworkErrorCodeParamterInvalid + message:[NSString stringWithFormat: + @"The Getobject Key is illegal"]]; + return NO; + } + } + + if (!self.bucket || ([self.bucket isKindOfClass:NSString.class] && ((NSString *)self.bucket).length == 0)) { + if (error != NULL) { + *error = [NSError + qcloud_errorWithCode:QCloudNetworkErrorCodeParamterInvalid + message:[NSString stringWithFormat: + @"InvalidArgument:paramter[bucket] is invalid (nil), it must have some value. please check it"]]; + return NO; + } + } + + if (self.responseContentType) { + [self.requestData setValue:self.responseContentType forHTTPHeaderField:@"response-content-type"]; + } + if (self.responseContentLanguage) { + [self.requestData setValue:self.responseContentLanguage forHTTPHeaderField:@"response-content-language"]; + } + if (self.responseContentExpires) { + [self.requestData setValue:self.responseContentExpires forHTTPHeaderField:@"response-expires"]; + } + if (self.responseCacheControl) { + [self.requestData setValue:self.responseCacheControl forHTTPHeaderField:@"response-cache-control"]; + } + if (self.responseContentDisposition) { + [self.requestData setValue:self.responseContentDisposition forHTTPHeaderField:@"response-content-disposition"]; + } + if (self.responseContentEncoding) { + [self.requestData setValue:self.responseContentEncoding forHTTPHeaderField:@"response-content-encoding"]; + } + if (self.localCacheDownloadOffset) { + self.range = [NSString stringWithFormat:@"bytes=%lld-", self.localCacheDownloadOffset]; + } + if (self.range) { + [self.requestData setValue:self.range forHTTPHeaderField:@"Range"]; + } + if (self.ifModifiedSince) { + [self.requestData setValue:self.ifModifiedSince forHTTPHeaderField:@"If-Modified-Since"]; + } + if (self.ifUnmodifiedModifiedSince) { + [self.requestData setValue:self.ifUnmodifiedModifiedSince forHTTPHeaderField:@"If-Unmodified-Since"]; + } + if (self.ifMatch) { + [self.requestData setValue:self.ifMatch forHTTPHeaderField:@"If-Match"]; + } + if (self.ifNoneMatch) { + [self.requestData setValue:self.ifNoneMatch forHTTPHeaderField:@"If-None-Match"]; + } + if (self.versionID) { + [self.requestData setParameter:self.versionID withKey:@"versionId"]; + } + if (self.trafficLimit) { + [self.requestData setValue:@(self.trafficLimit).stringValue forHTTPHeaderField:@"x-cos-traffic-limit"]; + } + + if(![self.customHeaders isKindOfClass:NSMutableDictionary.class]){ + self.customHeaders = self.customHeaders.mutableCopy; + } + [self.customHeaders setObject:@"no-cache" forKey:@"Cache-Control"]; + + NSURL *__serverURL = [self.runOnService.configuration.endpoint serverURLWithBucket:self.bucket + appID:self.runOnService.configuration.appID + regionName:self.regionName]; + self.requestData.serverURL = __serverURL.absoluteString; + [self.requestData setValue:__serverURL.host forHTTPHeaderField:@"Host"]; + NSMutableArray *__pathComponents = [NSMutableArray arrayWithArray:self.requestData.URIComponents]; + if (self.object) + [__pathComponents addObject:self.object]; + self.requestData.URIComponents = __pathComponents; + + if (self.watermarkRule) { + [self.requestData setQueryStringParamter:@"" withKey:self.watermarkRule]; + } + + + + if (![self customBuildRequestData:error]) + return NO; + for (NSString *key in self.customHeaders.allKeys.copy) { + [self.requestData setValue:self.customHeaders[key] forHTTPHeaderField:key]; + } + return YES; +} + +- (QCloudSignatureFields *)signatureFields { + QCloudSignatureFields *fileds = [QCloudSignatureFields new]; + + return fileds; +} + +- (void)setFinishBlock:(void (^_Nullable)(id _Nullable result, NSError *_Nullable error))finishBlock { + + if (finishBlock) { + QCloudWeakSelf(self); + [super setFinishBlock:^(id outputObject, NSError *error) { + QCloudStrongSelf(self); + NSError * lError; + if (QCloudFileExist(strongself.downloadingTempURL.relativePath) && !error) { + if (QCloudFileExist(strongself.downloadingURL.relativePath)) { + QCloudRemoveFileByPath(strongself.downloadingURL.relativePath); + } + QCloudMoveFile(strongself.downloadingTempURL.relativePath, strongself.downloadingURL.relativePath, &lError); + } + finishBlock(outputObject,error); + }]; + } +} +- (NSArray *)scopesArray { + NSMutableDictionary *dic = [NSMutableDictionary dictionary]; + NSArray *separatetmpArray = [self.requestData.serverURL componentsSeparatedByString:@"://"]; + NSString *str = separatetmpArray[1]; + NSArray *separateArray = [str componentsSeparatedByString:@"."]; + dic[@"bucket"] = separateArray[0]; + dic[@"region"] = self.runOnService.configuration.endpoint.regionName; + dic[@"prefix"] = self.object; + dic[@"action"] = @"name/cos:GetObject"; + NSMutableArray *array = [NSMutableArray array]; + [array addObject:dic]; + return [array copy]; +} + +@end +NS_ASSUME_NONNULL_END diff --git a/Pods/QCloudCOSXML/QCloudCOSXML/Classes/Transfer/request/QCloudHeadObjectRequest.h b/Pods/QCloudCOSXML/QCloudCOSXML/Classes/Transfer/request/QCloudHeadObjectRequest.h new file mode 100644 index 0000000..bdb3b56 --- /dev/null +++ b/Pods/QCloudCOSXML/QCloudCOSXML/Classes/Transfer/request/QCloudHeadObjectRequest.h @@ -0,0 +1,85 @@ +// +// HeadObject.h +// HeadObject +// +// Created by tencent +// Copyright (c) 2015年 tencent. All rights reserved. +// +// ██████╗ ██████╗██╗ ██████╗ ██╗ ██╗██████╗ ████████╗███████╗██████╗ ███╗ ███╗██╗███╗ ██╗ █████╗ ██╗ ██╗ █████╗ +// ██████╗ +// ██╔═══██╗██╔════╝██║ ██╔═══██╗██║ ██║██╔══██╗ ╚══██╔══╝██╔════╝██╔══██╗████╗ ████║██║████╗ ██║██╔══██╗██║ ██║ ██╔══██╗██╔══██╗ +// ██║ ██║██║ ██║ ██║ ██║██║ ██║██║ ██║ ██║ █████╗ ██████╔╝██╔████╔██║██║██╔██╗ ██║███████║██║ ██║ ███████║██████╔╝ +// ██║▄▄ ██║██║ ██║ ██║ ██║██║ ██║██║ ██║ ██║ ██╔══╝ ██╔══██╗██║╚██╔╝██║██║██║╚██╗██║██╔══██║██║ ██║ ██╔══██║██╔══██╗ +// ╚██████╔╝╚██████╗███████╗╚██████╔╝╚██████╔╝██████╔╝ ██║ ███████╗██║ ██║██║ ╚═╝ ██║██║██║ ╚████║██║ ██║███████╗ ███████╗██║ +// ██║██████╔╝ +// ╚══▀▀═╝ ╚═════╝╚══════╝ ╚═════╝ ╚═════╝ ╚═════╝ ╚═╝ ╚══════╝╚═╝ ╚═╝╚═╝ ╚═╝╚═╝╚═╝ ╚═══╝╚═╝ ╚═╝╚══════╝ ╚══════╝╚═╝ ╚═╝╚═════╝ +// +// +// _ __ _ _ +// (_) / _| | | | | +// ___ ___ _ ____ ___ ___ ___ | |_ ___ _ __ __| | _____ _____| | ___ _ __ ___ _ +// __ ___ +// / __|/ _ \ '__\ \ / / |/ __/ _ \ | _/ _ \| '__| / _` |/ _ \ \ / / _ \ |/ _ \| '_ \ / _ \ +// '__/ __| +// \__ \ __/ | \ V /| | (_| __/ | || (_) | | | (_| | __/\ V / __/ | (_) | |_) | __/ +// | \__ +// |___/\___|_| \_/ |_|\___\___| |_| \___/|_| \__,_|\___| \_/ \___|_|\___/| .__/ +// \___|_| |___/ +// ______ ______ ______ ______ ______ ______ ______ ______ | | +// |______|______|______|______|______|______|______|______| |_| +// + +#import +#import +NS_ASSUME_NONNULL_BEGIN +/** + + 获取 COS 对象的元数据信息(meta data)的方法. + + ### 功能描述 + + 获取 COS 对象的元数据信息,需要与 Get 的权限一致.且请求是不返回消息体的.若请求中需要设置If-Modified-Since 头部, + 则统一采用 GMT(RFC822) 时间格式,例如:Tue, 22 Oct 2017 01:35:21 GMT.如果对象不存在,则 返回404. + + 关于获取 COS 对象的元数据信息接口的具体描述,请查看https://cloud.tencent.com/document/product/436/7745. + + ### 示例 + + @code + + QCloudHeadObjectRequest* headerRequest = [QCloudHeadObjectRequest new]; + + // 对象键,是对象在 COS 上的完整路径,如果带目录的话,格式为 "dir1/object1" + headerRequest.object = @"exampleobject"; + + // versionId 当启用版本控制时,指定要查询的版本 ID,如不指定则查询对象的最新版本 + headerRequest.versionID = @"versionID"; + + // 存储桶名称,格式为 BucketName-APPID + headerRequest.bucket = @"examplebucket-1250000000"; + + [headerRequest setFinishBlock:^(NSDictionary* result, NSError *error) { + // result 返回具体信息 + + }]; + + [[QCloudCOSXMLService defaultCOSXML] HeadObject:headerRequest]; + +*/ +@interface QCloudHeadObjectRequest : QCloudBizHTTPRequest +/** +对象的key +*/ +@property (strong, nonatomic) NSString *object; +/** +存储桶名 +*/ +@property (strong, nonatomic) NSString *bucket; +/** +如果HEAD指定版本的Object,请在该参数中指定versionID(在开启了多版本的情况才有) +*/ +@property (strong, nonatomic) NSString *versionID; +@property (strong, nonatomic) NSString *ifModifiedSince; + +@end +NS_ASSUME_NONNULL_END diff --git a/Pods/QCloudCOSXML/QCloudCOSXML/Classes/Transfer/request/QCloudHeadObjectRequest.m b/Pods/QCloudCOSXML/QCloudCOSXML/Classes/Transfer/request/QCloudHeadObjectRequest.m new file mode 100644 index 0000000..a397b72 --- /dev/null +++ b/Pods/QCloudCOSXML/QCloudCOSXML/Classes/Transfer/request/QCloudHeadObjectRequest.m @@ -0,0 +1,126 @@ +// +// HeadObject.m +// HeadObject +// +// Created by tencent +// Copyright (c) 2015年 tencent. All rights reserved. +// +// ██████╗ ██████╗██╗ ██████╗ ██╗ ██╗██████╗ ████████╗███████╗██████╗ ███╗ ███╗██╗███╗ ██╗ █████╗ ██╗ ██╗ █████╗ +// ██████╗ +// ██╔═══██╗██╔════╝██║ ██╔═══██╗██║ ██║██╔══██╗ ╚══██╔══╝██╔════╝██╔══██╗████╗ ████║██║████╗ ██║██╔══██╗██║ ██║ ██╔══██╗██╔══██╗ +// ██║ ██║██║ ██║ ██║ ██║██║ ██║██║ ██║ ██║ █████╗ ██████╔╝██╔████╔██║██║██╔██╗ ██║███████║██║ ██║ ███████║██████╔╝ +// ██║▄▄ ██║██║ ██║ ██║ ██║██║ ██║██║ ██║ ██║ ██╔══╝ ██╔══██╗██║╚██╔╝██║██║██║╚██╗██║██╔══██║██║ ██║ ██╔══██║██╔══██╗ +// ╚██████╔╝╚██████╗███████╗╚██████╔╝╚██████╔╝██████╔╝ ██║ ███████╗██║ ██║██║ ╚═╝ ██║██║██║ ╚████║██║ ██║███████╗ ███████╗██║ +// ██║██████╔╝ +// ╚══▀▀═╝ ╚═════╝╚══════╝ ╚═════╝ ╚═════╝ ╚═════╝ ╚═╝ ╚══════╝╚═╝ ╚═╝╚═╝ ╚═╝╚═╝╚═╝ ╚═══╝╚═╝ ╚═╝╚══════╝ ╚══════╝╚═╝ ╚═╝╚═════╝ +// +// +// _ __ _ _ +// (_) / _| | | | | +// ___ ___ _ ____ ___ ___ ___ | |_ ___ _ __ __| | _____ _____| | ___ _ __ ___ _ +// __ ___ +// / __|/ _ \ '__\ \ / / |/ __/ _ \ | _/ _ \| '__| / _` |/ _ \ \ / / _ \ |/ _ \| '_ \ / _ \ +// '__/ __| +// \__ \ __/ | \ V /| | (_| __/ | || (_) | | | (_| | __/\ V / __/ | (_) | |_) | __/ +// | \__ +// |___/\___|_| \_/ |_|\___\___| |_| \___/|_| \__,_|\___| \_/ \___|_|\___/| .__/ +// \___|_| |___/ +// ______ ______ ______ ______ ______ ______ ______ ______ | | +// |______|______|______|______|______|______|______|______| |_| +// + +#import "QCloudHeadObjectRequest.h" +#import +#import +#import + +NS_ASSUME_NONNULL_BEGIN +@implementation QCloudHeadObjectRequest +- (void)dealloc { +} +- (instancetype)init { + self = [super init]; + if (!self) { + return nil; + } + return self; +} +- (void)configureReuqestSerializer:(QCloudRequestSerializer *)requestSerializer responseSerializer:(QCloudResponseSerializer *)responseSerializer { + NSArray *customRequestSerilizers = @[ + QCloudURLFuseSimple, + QCloudURLFuseWithURLEncodeParamters, + ]; + + NSArray *responseSerializers = @[ + QCloudAcceptRespnseCodeBlock([NSSet setWithObjects:@(200), @(201), @(202), @(203), @(204), @(205), @(206), @(207), @(208), @(226), nil], nil), + + QCloudResponseAppendHeadersSerializerBlock, + ]; + [requestSerializer setSerializerBlocks:customRequestSerilizers]; + [responseSerializer setSerializerBlocks:responseSerializers]; + + requestSerializer.HTTPMethod = @"head"; +} + +- (BOOL)buildRequestData:(NSError *__autoreleasing *)error { + if (![super buildRequestData:error]) { + return NO; + } + if (!self.bucket || ([self.bucket isKindOfClass:NSString.class] && ((NSString *)self.bucket).length == 0)) { + if (error != NULL) { + *error = [NSError + qcloud_errorWithCode:QCloudNetworkErrorCodeParamterInvalid + message:[NSString stringWithFormat: + @"InvalidArgument:paramter[bucket] is invalid (nil), it must have some value. please check it"]]; + return NO; + } + } + if (!self.object || ([self.object isKindOfClass:NSString.class] && ((NSString *)self.object).length == 0)) { + if (error != NULL) { + *error = [NSError + qcloud_errorWithCode:QCloudNetworkErrorCodeParamterInvalid + message:[NSString stringWithFormat: + @"InvalidArgument:paramter[object] is invalid (nil), it must have some value. please check it"]]; + return NO; + } + } + NSURL *__serverURL = [self.runOnService.configuration.endpoint serverURLWithBucket:self.bucket + appID:self.runOnService.configuration.appID + regionName:self.regionName]; + self.requestData.serverURL = __serverURL.absoluteString; + [self.requestData setValue:__serverURL.host forHTTPHeaderField:@"Host"]; + [self.requestData setParameter:self.versionID withKey:@"versionId"]; + if (self.ifModifiedSince) { + [self.requestData setValue:self.ifModifiedSince forHTTPHeaderField:@"If-Modified-Since"]; + } + NSMutableArray *__pathComponents = [NSMutableArray arrayWithArray:self.requestData.URIComponents]; + if (self.object) + [__pathComponents addObject:self.object]; + self.requestData.URIComponents = __pathComponents; + for (NSString *key in self.customHeaders.allKeys.copy) { + [self.requestData setValue:self.customHeaders[key] forHTTPHeaderField:key]; + } + return YES; +} + +- (QCloudSignatureFields *)signatureFields { + QCloudSignatureFields *fileds = [QCloudSignatureFields new]; + + return fileds; +} +- (NSArray *)scopesArray { + NSMutableDictionary *dic = [NSMutableDictionary dictionary]; + NSArray *separatetmpArray = [self.requestData.serverURL componentsSeparatedByString:@"://"]; + NSString *str = separatetmpArray[1]; + NSArray *separateArray = [str componentsSeparatedByString:@"."]; + dic[@"bucket"] = separateArray[0]; + dic[@"region"] = self.runOnService.configuration.endpoint.regionName; + dic[@"prefix"] = self.object; + dic[@"action"] = @"name/cos:HeadObject"; + NSMutableArray *array = [NSMutableArray array]; + [array addObject:dic]; + return [array copy]; +} + +@end +NS_ASSUME_NONNULL_END diff --git a/Pods/QCloudCOSXML/QCloudCOSXML/Classes/Transfer/request/QCloudInitiateMultipartUploadRequest.h b/Pods/QCloudCOSXML/QCloudCOSXML/Classes/Transfer/request/QCloudInitiateMultipartUploadRequest.h new file mode 100644 index 0000000..f98d3b4 --- /dev/null +++ b/Pods/QCloudCOSXML/QCloudCOSXML/Classes/Transfer/request/QCloudInitiateMultipartUploadRequest.h @@ -0,0 +1,148 @@ +// +// InitiateMultipartUpload.h +// InitiateMultipartUpload +// +// Created by tencent +// Copyright (c) 2015年 tencent. All rights reserved. +// +// ██████╗ ██████╗██╗ ██████╗ ██╗ ██╗██████╗ ████████╗███████╗██████╗ ███╗ ███╗██╗███╗ ██╗ █████╗ ██╗ ██╗ █████╗ +// ██████╗ +// ██╔═══██╗██╔════╝██║ ██╔═══██╗██║ ██║██╔══██╗ ╚══██╔══╝██╔════╝██╔══██╗████╗ ████║██║████╗ ██║██╔══██╗██║ ██║ ██╔══██╗██╔══██╗ +// ██║ ██║██║ ██║ ██║ ██║██║ ██║██║ ██║ ██║ █████╗ ██████╔╝██╔████╔██║██║██╔██╗ ██║███████║██║ ██║ ███████║██████╔╝ +// ██║▄▄ ██║██║ ██║ ██║ ██║██║ ██║██║ ██║ ██║ ██╔══╝ ██╔══██╗██║╚██╔╝██║██║██║╚██╗██║██╔══██║██║ ██║ ██╔══██║██╔══██╗ +// ╚██████╔╝╚██████╗███████╗╚██████╔╝╚██████╔╝██████╔╝ ██║ ███████╗██║ ██║██║ ╚═╝ ██║██║██║ ╚████║██║ ██║███████╗ ███████╗██║ +// ██║██████╔╝ +// ╚══▀▀═╝ ╚═════╝╚══════╝ ╚═════╝ ╚═════╝ ╚═════╝ ╚═╝ ╚══════╝╚═╝ ╚═╝╚═╝ ╚═╝╚═╝╚═╝ ╚═══╝╚═╝ ╚═╝╚══════╝ ╚══════╝╚═╝ ╚═╝╚═════╝ +// +// +// _ __ _ _ +// (_) / _| | | | | +// ___ ___ _ ____ ___ ___ ___ | |_ ___ _ __ __| | _____ _____| | ___ _ __ ___ _ +// __ ___ +// / __|/ _ \ '__\ \ / / |/ __/ _ \ | _/ _ \| '__| / _` |/ _ \ \ / / _ \ |/ _ \| '_ \ / _ \ +// '__/ __| +// \__ \ __/ | \ V /| | (_| __/ | || (_) | | | (_| | __/\ V / __/ | (_) | |_) | __/ +// | \__ +// |___/\___|_| \_/ |_|\___\___| |_| \___/|_| \__,_|\___| \_/ \___|_|\___/| .__/ +// \___|_| |___/ +// ______ ______ ______ ______ ______ ______ ______ ______ | | +// |______|______|______|______|______|______|______|______| |_| +// + +#import +#import +#import "QCloudInitiateMultipartUploadResult.h" +#import "QCloudCOSStorageClassEnum.h" +NS_ASSUME_NONNULL_BEGIN +/** + 初始化分块上传的方法. + + ### 功能描述 + + 使用分块上传对象时,首先要进行初始化分片上传操作,获取对应分块上传的 uploadId,用于后续上传操 作. + 分块上传适合于在弱网络或高带宽环境下上传较大的对象。 + + SDK 支持自行切分对象并分别调用uploadPart(UploadPartRequest) + 或者uploadPartAsync(UploadPartRequest, CosXmlResultListener)上传各 个分块. + + 关于初始化分块上传的描述,请查看 https://cloud.tencent.com/document/product/436/7746. + + +### 示例 + + @code + + QCloudInitiateMultipartUploadRequest* initRequest = [QCloudInitiateMultipartUploadRequest new]; + + // 存储桶名称,格式为 BucketName-APPID + initRequest.bucket = @"examplebucket-1250000000"; + + // 对象键,是对象在 COS 上的完整路径,如果带目录的话,格式为 "dir1/object1" + initRequest.object = @"exampleobject"; + + // 将作为对象的元数据返回 + initRequest.cacheControl = @"cacheControl"; + + initRequest.contentDisposition = @"contentDisposition"; + + // 定义 Object 的 ACL 属性。有效值:private,public-read-write,public-read;默认值:private + initRequest.accessControlList = @"public"; + + // 赋予被授权者读的权限。 + initRequest.grantRead = @"grantRead"; + + // 赋予被授权者写的权限 + initRequest.grantWrite = @"grantWrite"; + + // 赋予被授权者读写权限。 grantFullControl == grantWrite + grantRead + initRequest.grantFullControl = @"grantFullControl"; + + [initRequest setFinishBlock:^(QCloudInitiateMultipartUploadResult* outputObject, + NSError *error) { + // 获取分块上传的 uploadId,后续的上传都需要这个 ID,请保存以备后续使用 + self->uploadId = outputObject.uploadId; + + }]; + + [[QCloudCOSXMLService defaultCOSXML] InitiateMultipartUpload:initRequest]; + + +*/ +@interface QCloudInitiateMultipartUploadRequest : QCloudBizHTTPRequest +/** +对象的名称 +*/ +@property (strong, nonatomic) NSString *object; +/** +存储桶名 +*/ +@property (strong, nonatomic) NSString *bucket; +/** +RFC 2616 中定义的缓存策略,将作为对象的元数据返回 +*/ +@property (strong, nonatomic) NSString *cacheControl; +/** +RFC 2616 中定义的文件名称,将作为 Object 元数据保存 +*/ +@property (strong, nonatomic) NSString *contentDisposition; +@property (strong, nonatomic) NSString *expect; +/** +RFC 2616 中定义的文件名称,将作为 Object 元数据保存。 +*/ +@property (strong, nonatomic) NSString *expires; +@property (strong, nonatomic) NSString *contentSHA1; + +@property (strong, nonatomic) NSString *contentType; +/** +设置 Object 的存储级别 +*/ +@property (assign, nonatomic) QCloudCOSStorageClass storageClass; +/** +定义 Object 的 ACL 属性。有效值:private,public-read-write,public-read;默认值:private +*/ +@property (strong, nonatomic) NSString *accessControlList; +/** +赋予被授权者读的权限。格式:x-cos-grant-read: id=" ",id=" "; +当需要给子账户授权时,id="qcs::cam::uin/\:uin/\", +当需要给根账户授权时,id="qcs::cam::uin/\:uin/\" +其中,\为根账户的uin,而\为子账户的uin,使用时替换 +*/ +@property (strong, nonatomic) NSString *grantRead; +/** +赋予被授权者写的权限。格式:x-cos-grant-write: id=" ",id=" "; +当需要给子账户授权时,id="qcs::cam::uin/\:uin/\", +当需要给根账户授权时,id="qcs::cam::uin/\:uin/\" +其中,\为根账户的uin,而\为子账户的uin,使用时替换 +*/ +@property (strong, nonatomic) NSString *grantWrite; +/** +赋予被授权者读写权限。格式: id=" ",id=" " ; +当需要给子账户授权时,id="qcs::cam::uin/\:uin/\", +当需要给根账户授权时,id="qcs::cam::uin/\:uin/\" +其中,\为根账户的uin,而\为子账户的uin,使用时替换 +*/ +@property (strong, nonatomic) NSString *grantFullControl; + +- (void)setFinishBlock:(void (^_Nullable)(QCloudInitiateMultipartUploadResult *_Nullable result, NSError *_Nullable error))QCloudRequestFinishBlock; +@end +NS_ASSUME_NONNULL_END diff --git a/Pods/QCloudCOSXML/QCloudCOSXML/Classes/Transfer/request/QCloudInitiateMultipartUploadRequest.m b/Pods/QCloudCOSXML/QCloudCOSXML/Classes/Transfer/request/QCloudInitiateMultipartUploadRequest.m new file mode 100644 index 0000000..d89d6d8 --- /dev/null +++ b/Pods/QCloudCOSXML/QCloudCOSXML/Classes/Transfer/request/QCloudInitiateMultipartUploadRequest.m @@ -0,0 +1,172 @@ +// +// InitiateMultipartUpload.m +// InitiateMultipartUpload +// +// Created by tencent +// Copyright (c) 2015年 tencent. All rights reserved. +// +// ██████╗ ██████╗██╗ ██████╗ ██╗ ██╗██████╗ ████████╗███████╗██████╗ ███╗ ███╗██╗███╗ ██╗ █████╗ ██╗ ██╗ █████╗ +// ██████╗ +// ██╔═══██╗██╔════╝██║ ██╔═══██╗██║ ██║██╔══██╗ ╚══██╔══╝██╔════╝██╔══██╗████╗ ████║██║████╗ ██║██╔══██╗██║ ██║ ██╔══██╗██╔══██╗ +// ██║ ██║██║ ██║ ██║ ██║██║ ██║██║ ██║ ██║ █████╗ ██████╔╝██╔████╔██║██║██╔██╗ ██║███████║██║ ██║ ███████║██████╔╝ +// ██║▄▄ ██║██║ ██║ ██║ ██║██║ ██║██║ ██║ ██║ ██╔══╝ ██╔══██╗██║╚██╔╝██║██║██║╚██╗██║██╔══██║██║ ██║ ██╔══██║██╔══██╗ +// ╚██████╔╝╚██████╗███████╗╚██████╔╝╚██████╔╝██████╔╝ ██║ ███████╗██║ ██║██║ ╚═╝ ██║██║██║ ╚████║██║ ██║███████╗ ███████╗██║ +// ██║██████╔╝ +// ╚══▀▀═╝ ╚═════╝╚══════╝ ╚═════╝ ╚═════╝ ╚═════╝ ╚═╝ ╚══════╝╚═╝ ╚═╝╚═╝ ╚═╝╚═╝╚═╝ ╚═══╝╚═╝ ╚═╝╚══════╝ ╚══════╝╚═╝ ╚═╝╚═════╝ +// +// +// _ __ _ _ +// (_) / _| | | | | +// ___ ___ _ ____ ___ ___ ___ | |_ ___ _ __ __| | _____ _____| | ___ _ __ ___ _ +// __ ___ +// / __|/ _ \ '__\ \ / / |/ __/ _ \ | _/ _ \| '__| / _` |/ _ \ \ / / _ \ |/ _ \| '_ \ / _ \ +// '__/ __| +// \__ \ __/ | \ V /| | (_| __/ | || (_) | | | (_| | __/\ V / __/ | (_) | |_) | __/ +// | \__ +// |___/\___|_| \_/ |_|\___\___| |_| \___/|_| \__,_|\___| \_/ \___|_|\___/| .__/ +// \___|_| |___/ +// ______ ______ ______ ______ ______ ______ ______ ______ | | +// |______|______|______|______|______|______|______|______| |_| +// + +#import "QCloudInitiateMultipartUploadRequest.h" +#import +#import +#import +#import "QCloudInitiateMultipartUploadResult.h" +NS_ASSUME_NONNULL_BEGIN +@implementation QCloudInitiateMultipartUploadRequest +- (void)dealloc { +} +- (instancetype)init { + self = [super init]; + if (!self) { + return nil; + } + return self; +} +- (void)configureReuqestSerializer:(QCloudRequestSerializer *)requestSerializer responseSerializer:(QCloudResponseSerializer *)responseSerializer { + NSArray *customRequestSerilizers = @[ + QCloudURLFuseURIMethodASURLParamters, + ]; + + NSArray *responseSerializers = @[ + QCloudAcceptRespnseCodeBlock([NSSet setWithObjects:@(200), @(201), @(202), @(203), @(204), @(205), @(206), @(207), @(208), @(226), nil], nil), + QCloudResponseXMLSerializerBlock, + + QCloudResponseObjectSerilizerBlock([QCloudInitiateMultipartUploadResult class]) + ]; + [requestSerializer setSerializerBlocks:customRequestSerilizers]; + [responseSerializer setSerializerBlocks:responseSerializers]; + + requestSerializer.HTTPMethod = @"post"; +} + +- (BOOL)buildRequestData:(NSError *__autoreleasing *)error { + if (![super buildRequestData:error]) { + return NO; + } + if (!self.object || ([self.object isKindOfClass:NSString.class] && ((NSString *)self.object).length == 0)) { + if (error != NULL) { + *error = [NSError + qcloud_errorWithCode:QCloudNetworkErrorCodeParamterInvalid + message:[NSString stringWithFormat: + @"InvalidArgument:paramter[object] is invalid (nil), it must have some value. please check it"]]; + return NO; + } + } + if (!self.bucket || ([self.bucket isKindOfClass:NSString.class] && ((NSString *)self.bucket).length == 0)) { + if (error != NULL) { + *error = [NSError + qcloud_errorWithCode:QCloudNetworkErrorCodeParamterInvalid + message:[NSString stringWithFormat: + @"InvalidArgument:paramter[bucket] is invalid (nil), it must have some value. please check it"]]; + return NO; + } + } else { + } + NSURL *__serverURL = [self.runOnService.configuration.endpoint serverURLWithBucket:self.bucket + appID:self.runOnService.configuration.appID + regionName:self.regionName]; + self.requestData.serverURL = __serverURL.absoluteString; + [self.requestData setValue:__serverURL.host forHTTPHeaderField:@"Host"]; + if (self.cacheControl) { + [self.requestData setValue:self.cacheControl forHTTPHeaderField:@"Cache-Control"]; + } + if (self.contentDisposition) { + [self.requestData setValue:self.contentDisposition forHTTPHeaderField:@"Content-Disposition"]; + } + if (self.expect) { + [self.requestData setValue:self.expect forHTTPHeaderField:@"Expect"]; + } + if (self.expires) { + [self.requestData setValue:self.expires forHTTPHeaderField:@"Expires"]; + } + if (self.contentSHA1) { + [self.requestData setValue:self.contentSHA1 forHTTPHeaderField:@"x-cos-content-sha1"]; + } + + if (self.contentType) { + [self.requestData setValue:self.contentType forHTTPHeaderField:@"Content-Type"]; + }else{ + NSString *miniType = detemineFileMemeType(nil, self.object); + [self.requestData setValue:miniType forHTTPHeaderField:@"Content-Type"]; + } + + if (self.storageClass) { + [self.requestData setValue:QCloudCOSStorageClassTransferToString(self.storageClass) forHTTPHeaderField:@"x-cos-storage-class"]; + } + + if (self.accessControlList) { + [self.requestData setValue:self.accessControlList forHTTPHeaderField:@"x-cos-acl"]; + } + if (self.grantRead) { + [self.requestData setValue:self.grantRead forHTTPHeaderField:@"x-cos-grant-read"]; + } + if (self.grantWrite) { + [self.requestData setValue:self.grantWrite forHTTPHeaderField:@"x-cos-grant-write"]; + } + if (self.grantFullControl) { + [self.requestData setValue:self.grantFullControl forHTTPHeaderField:@"x-cos-grant-full-control"]; + } + self.requestData.URIMethod = @"uploads"; + NSMutableArray *__pathComponents = [NSMutableArray arrayWithArray:self.requestData.URIComponents]; + if (self.object) + [__pathComponents addObject:self.object]; + self.requestData.URIComponents = __pathComponents; + for (NSString *key in self.customHeaders.allKeys.copy) { + [self.requestData setValue:self.customHeaders[key] forHTTPHeaderField:key]; + } + return YES; +} +- (void)setFinishBlock:(void (^_Nullable)(QCloudInitiateMultipartUploadResult *_Nullable result, NSError *_Nullable error))QCloudRequestFinishBlock { + [super setFinishBlock:QCloudRequestFinishBlock]; +} + +- (QCloudSignatureFields *)signatureFields { + QCloudSignatureFields *fileds = [QCloudSignatureFields new]; + + return fileds; +} +- (NSArray *)scopesArray { + NSMutableArray *array = [NSMutableArray array]; + [array addObject:[self getScopeWithAction:@"name/cos:InitiateMultipartUpload"]]; + [array addObject:[self getScopeWithAction:@"name/cos:ListParts"]]; + [array addObject:[self getScopeWithAction:@"name/cos:UploadPart"]]; + [array addObject:[self getScopeWithAction:@"name/cos:CompleteMultipartUpload"]]; + [array addObject:[self getScopeWithAction:@"name/cos:AbortMultipartUpload"]]; + return [array copy]; +} +- (NSMutableDictionary *)getScopeWithAction:(NSString *)action { + NSMutableDictionary *dic = [NSMutableDictionary dictionary]; + NSArray *separatetmpArray = [self.requestData.serverURL componentsSeparatedByString:@"://"]; + NSString *str = separatetmpArray[1]; + NSArray *separateArray = [str componentsSeparatedByString:@"."]; + dic[@"bucket"] = separateArray[0]; + dic[@"region"] = self.runOnService.configuration.endpoint.regionName; + dic[@"prefix"] = self.object; + dic[@"action"] = action; + return dic; +} +@end +NS_ASSUME_NONNULL_END diff --git a/Pods/QCloudCOSXML/QCloudCOSXML/Classes/Transfer/request/QCloudListMultipartRequest.h b/Pods/QCloudCOSXML/QCloudCOSXML/Classes/Transfer/request/QCloudListMultipartRequest.h new file mode 100644 index 0000000..31e0011 --- /dev/null +++ b/Pods/QCloudCOSXML/QCloudCOSXML/Classes/Transfer/request/QCloudListMultipartRequest.h @@ -0,0 +1,97 @@ +// +// ListMultipart.h +// ListMultipart +// +// Created by tencent +// Copyright (c) 2015年 tencent. All rights reserved. +// +// ██████╗ ██████╗██╗ ██████╗ ██╗ ██╗██████╗ ████████╗███████╗██████╗ ███╗ ███╗██╗███╗ ██╗ █████╗ ██╗ ██╗ █████╗ +// ██████╗ +// ██╔═══██╗██╔════╝██║ ██╔═══██╗██║ ██║██╔══██╗ ╚══██╔══╝██╔════╝██╔══██╗████╗ ████║██║████╗ ██║██╔══██╗██║ ██║ ██╔══██╗██╔══██╗ +// ██║ ██║██║ ██║ ██║ ██║██║ ██║██║ ██║ ██║ █████╗ ██████╔╝██╔████╔██║██║██╔██╗ ██║███████║██║ ██║ ███████║██████╔╝ +// ██║▄▄ ██║██║ ██║ ██║ ██║██║ ██║██║ ██║ ██║ ██╔══╝ ██╔══██╗██║╚██╔╝██║██║██║╚██╗██║██╔══██║██║ ██║ ██╔══██║██╔══██╗ +// ╚██████╔╝╚██████╗███████╗╚██████╔╝╚██████╔╝██████╔╝ ██║ ███████╗██║ ██║██║ ╚═╝ ██║██║██║ ╚████║██║ ██║███████╗ ███████╗██║ +// ██║██████╔╝ +// ╚══▀▀═╝ ╚═════╝╚══════╝ ╚═════╝ ╚═════╝ ╚═════╝ ╚═╝ ╚══════╝╚═╝ ╚═╝╚═╝ ╚═╝╚═╝╚═╝ ╚═══╝╚═╝ ╚═╝╚══════╝ ╚══════╝╚═╝ ╚═╝╚═════╝ +// +// +// _ __ _ _ +// (_) / _| | | | | +// ___ ___ _ ____ ___ ___ ___ | |_ ___ _ __ __| | _____ _____| | ___ _ __ ___ _ +// __ ___ +// / __|/ _ \ '__\ \ / / |/ __/ _ \ | _/ _ \| '__| / _` |/ _ \ \ / / _ \ |/ _ \| '_ \ / _ \ +// '__/ __| +// \__ \ __/ | \ V /| | (_| __/ | || (_) | | | (_| | __/\ V / __/ | (_) | |_) | __/ +// | \__ +// |___/\___|_| \_/ |_|\___\___| |_| \___/|_| \__,_|\___| \_/ \___|_|\___/| .__/ +// \___|_| |___/ +// ______ ______ ______ ______ ______ ______ ______ ______ | | +// |______|______|______|______|______|______|______|______| |_| +// + +#import +#import +#import "QCloudListPartsResult.h" +NS_ASSUME_NONNULL_BEGIN +/** + + 查询特定分块上传中的已上传的块的方法. + + ### 功能描述 + +COS 支持查询特定分块上传中的已上传的块, 即可以 罗列出指定 UploadId 所属的所有已上传成功的分块. + 因此,基于此可以完成续传功能. + +关于查询特定分块上传中的已上传块接口的描述,请查看 https://cloud.tencent.com/document/product/436/7747. + +### 示例 + + @code + + QCloudListBucketMultipartUploadsRequest* uploads = [QCloudListBucketMultipartUploadsRequest new]; + + // 存储桶名称,格式为 BucketName-APPID + uploads.bucket = @"examplebucket-1250000000"; + + // 设置最大返回的 multipart 数量,合法取值从 1 到 1000 + uploads.maxUploads = 100; + + [uploads setFinishBlock:^(QCloudListMultipartUploadsResult* result, + NSError *error) { + // 可以从 result 中返回分块信息 + // 进行中的分块上传对象 + NSArray *uploads = result.uploads; + }]; + + [[QCloudCOSXMLService defaultCOSXML] ListBucketMultipartUploads:uploads]; + +*/ +@interface QCloudListMultipartRequest : QCloudBizHTTPRequest +/** +对象的名称 +*/ +@property (strong, nonatomic) NSString *object; +/** +存储桶名 +*/ +@property (strong, nonatomic) NSString *bucket; +/** +标识本次分块上传的uploadId +*/ +@property (strong, nonatomic) NSString *uploadId; +/** +单次返回最大的条目数量,默认 1000 +*/ +@property (strong, nonatomic) NSString *maxPartsCount; +/** +默认以 UTF-8 二进制顺序列出条目,所有列出条目从 marker 开始 +*/ +@property (strong, nonatomic) NSString *partNumberMarker; +/** +规定返回值的编码方式 +*/ +@property (strong, nonatomic) NSString *encodingType; + +- (void)setFinishBlock:(void (^_Nullable)(QCloudListPartsResult *_Nullable result, NSError *_Nullable error))QCloudRequestFinishBlock; +@end +NS_ASSUME_NONNULL_END diff --git a/Pods/QCloudCOSXML/QCloudCOSXML/Classes/Transfer/request/QCloudListMultipartRequest.m b/Pods/QCloudCOSXML/QCloudCOSXML/Classes/Transfer/request/QCloudListMultipartRequest.m new file mode 100644 index 0000000..d3f24ba --- /dev/null +++ b/Pods/QCloudCOSXML/QCloudCOSXML/Classes/Transfer/request/QCloudListMultipartRequest.m @@ -0,0 +1,152 @@ +// +// ListMultipart.m +// ListMultipart +// +// Created by tencent +// Copyright (c) 2015年 tencent. All rights reserved. +// +// ██████╗ ██████╗██╗ ██████╗ ██╗ ██╗██████╗ ████████╗███████╗██████╗ ███╗ ███╗██╗███╗ ██╗ █████╗ ██╗ ██╗ █████╗ +// ██████╗ +// ██╔═══██╗██╔════╝██║ ██╔═══██╗██║ ██║██╔══██╗ ╚══██╔══╝██╔════╝██╔══██╗████╗ ████║██║████╗ ██║██╔══██╗██║ ██║ ██╔══██╗██╔══██╗ +// ██║ ██║██║ ██║ ██║ ██║██║ ██║██║ ██║ ██║ █████╗ ██████╔╝██╔████╔██║██║██╔██╗ ██║███████║██║ ██║ ███████║██████╔╝ +// ██║▄▄ ██║██║ ██║ ██║ ██║██║ ██║██║ ██║ ██║ ██╔══╝ ██╔══██╗██║╚██╔╝██║██║██║╚██╗██║██╔══██║██║ ██║ ██╔══██║██╔══██╗ +// ╚██████╔╝╚██████╗███████╗╚██████╔╝╚██████╔╝██████╔╝ ██║ ███████╗██║ ██║██║ ╚═╝ ██║██║██║ ╚████║██║ ██║███████╗ ███████╗██║ +// ██║██████╔╝ +// ╚══▀▀═╝ ╚═════╝╚══════╝ ╚═════╝ ╚═════╝ ╚═════╝ ╚═╝ ╚══════╝╚═╝ ╚═╝╚═╝ ╚═╝╚═╝╚═╝ ╚═══╝╚═╝ ╚═╝╚══════╝ ╚══════╝╚═╝ ╚═╝╚═════╝ +// +// +// _ __ _ _ +// (_) / _| | | | | +// ___ ___ _ ____ ___ ___ ___ | |_ ___ _ __ __| | _____ _____| | ___ _ __ ___ _ +// __ ___ +// / __|/ _ \ '__\ \ / / |/ __/ _ \ | _/ _ \| '__| / _` |/ _ \ \ / / _ \ |/ _ \| '_ \ / _ \ +// '__/ __| +// \__ \ __/ | \ V /| | (_| __/ | || (_) | | | (_| | __/\ V / __/ | (_) | |_) | __/ +// | \__ +// |___/\___|_| \_/ |_|\___\___| |_| \___/|_| \__,_|\___| \_/ \___|_|\___/| .__/ +// \___|_| |___/ +// ______ ______ ______ ______ ______ ______ ______ ______ | | +// |______|______|______|______|______|______|______|______| |_| +// + +#import "QCloudListMultipartRequest.h" +#import +#import +#import +#import "QCloudListPartsResult.h" + +NS_ASSUME_NONNULL_BEGIN +@implementation QCloudListMultipartRequest +- (void)dealloc { +} +- (instancetype)init { + self = [super init]; + if (!self) { + return nil; + } + return self; +} +- (void)configureReuqestSerializer:(QCloudRequestSerializer *)requestSerializer responseSerializer:(QCloudResponseSerializer *)responseSerializer { + NSArray *customRequestSerilizers = @[ + QCloudURLFuseSimple, + QCloudURLFuseWithURLEncodeParamters, + ]; + + NSArray *responseSerializers = @[ + QCloudAcceptRespnseCodeBlock([NSSet setWithObjects:@(200), @(201), @(202), @(203), @(204), @(205), @(206), @(207), @(208), @(226), nil], nil), + QCloudResponseXMLSerializerBlock, + + QCloudResponseAppendHeadersSerializerBlock, + + QCloudResponseObjectSerilizerBlock([QCloudListPartsResult class]) + ]; + [requestSerializer setSerializerBlocks:customRequestSerilizers]; + [responseSerializer setSerializerBlocks:responseSerializers]; + + requestSerializer.HTTPMethod = @"get"; +} + +- (BOOL)buildRequestData:(NSError *__autoreleasing *)error { + if (![super buildRequestData:error]) { + return NO; + } + if (!self.object || ([self.object isKindOfClass:NSString.class] && ((NSString *)self.object).length == 0)) { + if (error != NULL) { + *error = [NSError + qcloud_errorWithCode:QCloudNetworkErrorCodeParamterInvalid + message:[NSString stringWithFormat: + @"InvalidArgument:paramter[object] is invalid (nil), it must have some value. please check it"]]; + return NO; + } + } + if (!self.bucket || ([self.bucket isKindOfClass:NSString.class] && ((NSString *)self.bucket).length == 0)) { + if (error != NULL) { + *error = [NSError + qcloud_errorWithCode:QCloudNetworkErrorCodeParamterInvalid + message:[NSString stringWithFormat: + @"InvalidArgument:paramter[bucket] is invalid (nil), it must have some value. please check it"]]; + return NO; + } + } + NSURL *__serverURL = [self.runOnService.configuration.endpoint serverURLWithBucket:self.bucket + appID:self.runOnService.configuration.appID + regionName:self.regionName]; + self.requestData.serverURL = __serverURL.absoluteString; + [self.requestData setValue:__serverURL.host forHTTPHeaderField:@"Host"]; + if (!self.uploadId || ([self.uploadId isKindOfClass:NSString.class] && ((NSString *)self.uploadId).length == 0)) { + if (error != NULL) { + *error = [NSError + qcloud_errorWithCode:QCloudNetworkErrorCodeParamterInvalid + message:[NSString stringWithFormat: + @"InvalidArgument:paramter[uploadId] is invalid (nil), it must have some value. please check it"]]; + return NO; + } + } + [self.requestData setParameter:self.uploadId withKey:@"uploadId"]; + if (self.maxPartsCount) { + [self.requestData setParameter:self.maxPartsCount withKey:@"max-parts"]; + } + if (self.partNumberMarker) { + [self.requestData setParameter:self.partNumberMarker withKey:@"part-number-marker"]; + } + if (self.encodingType) { + [self.requestData setParameter:self.encodingType withKey:@"Encoding-Type"]; + } + NSMutableArray *__pathComponents = [NSMutableArray arrayWithArray:self.requestData.URIComponents]; + if (self.object) + [__pathComponents addObject:self.object]; + self.requestData.URIComponents = __pathComponents; + return YES; +} + +- (void)setFinishBlock:(void (^_Nullable)(QCloudListPartsResult *_Nullable, NSError *_Nullable))QCloudRequestFinishBlock { + [super setFinishBlock:QCloudRequestFinishBlock]; +} + +- (QCloudSignatureFields *)signatureFields { + QCloudSignatureFields *fileds = [QCloudSignatureFields new]; + + return fileds; +} +- (NSArray *)scopesArray { + NSMutableArray *array = [NSMutableArray array]; + [array addObject:[self getScopeWithAction:@"name/cos:InitiateMultipartUpload"]]; + [array addObject:[self getScopeWithAction:@"name/cos:ListParts"]]; + [array addObject:[self getScopeWithAction:@"name/cos:UploadPart"]]; + [array addObject:[self getScopeWithAction:@"name/cos:CompleteMultipartUpload"]]; + [array addObject:[self getScopeWithAction:@"name/cos:AbortMultipartUpload"]]; + return [array copy]; +} +- (NSMutableDictionary *)getScopeWithAction:(NSString *)action { + NSMutableDictionary *dic = [NSMutableDictionary dictionary]; + NSArray *separatetmpArray = [self.requestData.serverURL componentsSeparatedByString:@"://"]; + NSString *str = separatetmpArray[1]; + NSArray *separateArray = [str componentsSeparatedByString:@"."]; + dic[@"bucket"] = separateArray[0]; + dic[@"region"] = self.runOnService.configuration.endpoint.regionName; + dic[@"prefix"] = self.object; + dic[@"action"] = action; + return dic; +} +@end +NS_ASSUME_NONNULL_END diff --git a/Pods/QCloudCOSXML/QCloudCOSXML/Classes/Transfer/request/QCloudPutObjectCopyRequest.h b/Pods/QCloudCOSXML/QCloudCOSXML/Classes/Transfer/request/QCloudPutObjectCopyRequest.h new file mode 100644 index 0000000..11d0c34 --- /dev/null +++ b/Pods/QCloudCOSXML/QCloudCOSXML/Classes/Transfer/request/QCloudPutObjectCopyRequest.h @@ -0,0 +1,165 @@ +// +// PutObjectCopy.h +// PutObjectCopy +// +// Created by tencent +// Copyright (c) 2015年 tencent. All rights reserved. +// +// ██████╗ ██████╗██╗ ██████╗ ██╗ ██╗██████╗ ████████╗███████╗██████╗ ███╗ ███╗██╗███╗ ██╗ █████╗ ██╗ ██╗ █████╗ +// ██████╗ +// ██╔═══██╗██╔════╝██║ ██╔═══██╗██║ ██║██╔══██╗ ╚══██╔══╝██╔════╝██╔══██╗████╗ ████║██║████╗ ██║██╔══██╗██║ ██║ ██╔══██╗██╔══██╗ +// ██║ ██║██║ ██║ ██║ ██║██║ ██║██║ ██║ ██║ █████╗ ██████╔╝██╔████╔██║██║██╔██╗ ██║███████║██║ ██║ ███████║██████╔╝ +// ██║▄▄ ██║██║ ██║ ██║ ██║██║ ██║██║ ██║ ██║ ██╔══╝ ██╔══██╗██║╚██╔╝██║██║██║╚██╗██║██╔══██║██║ ██║ ██╔══██║██╔══██╗ +// ╚██████╔╝╚██████╗███████╗╚██████╔╝╚██████╔╝██████╔╝ ██║ ███████╗██║ ██║██║ ╚═╝ ██║██║██║ ╚████║██║ ██║███████╗ ███████╗██║ +// ██║██████╔╝ +// ╚══▀▀═╝ ╚═════╝╚══════╝ ╚═════╝ ╚═════╝ ╚═════╝ ╚═╝ ╚══════╝╚═╝ ╚═╝╚═╝ ╚═╝╚═╝╚═╝ ╚═══╝╚═╝ ╚═╝╚══════╝ ╚══════╝╚═╝ ╚═╝╚═════╝ +// +// +// _ __ _ _ +// (_) / _| | | | | +// ___ ___ _ ____ ___ ___ ___ | |_ ___ _ __ __| | _____ _____| | ___ _ __ ___ _ +// __ ___ +// / __|/ _ \ '__\ \ / / |/ __/ _ \ | _/ _ \| '__| / _` |/ _ \ \ / / _ \ |/ _ \| '_ \ / _ \ +// '__/ __| +// \__ \ __/ | \ V /| | (_| __/ | || (_) | | | (_| | __/\ V / __/ | (_) | |_) | __/ +// | \__ +// |___/\___|_| \_/ |_|\___\___| |_| \___/|_| \__,_|\___| \_/ \___|_|\___/| .__/ +// \___|_| |___/ +// ______ ______ ______ ______ ______ ______ ______ ______ | | +// |______|______|______|______|______|______|______|______| |_| +// + +#import +#import +#import "QCloudCopyObjectResult.h" +#import "QCloudCOSStorageClassEnum.h" +NS_ASSUME_NONNULL_BEGIN +/** + 简单复制对象的方法. + + ### 功能描述 + + COS 中复制对象可以完成如下功能: + + 创建一个新的对象副本. + + 复制对象并更名,删除原始对象,实现重命名 + + 修改对象的存储类型,在复制时选择相同的源和目标对象键,修改存储类型. + + 在不同的腾讯云 COS 地域复制对象. + + 修改对象的元数据,在复制时选择相同的源和目标对象键,并修改其中的元数据,复制对象时,默认将继承原对象的元数据, + 但创建日期将会按新对象的时间计算. + + 当复制的对象小于等于 5 GB ,可以使用简单复制(https://cloud.tencent.com/document/product/436/14117). + + 当复制对象超过 5 GB 时,必须使用分块复制(https://cloud.tencent.com/document/product/436/14118 ) 来实现复制. + + 关于简单复制接口的具体描述,请查看https://cloud.tencent.com/document/product/436/10881. + + ### 示例 + + @code + + QCloudPutObjectCopyRequest* request = [[QCloudPutObjectCopyRequest alloc] init]; + + // 存储桶名称,格式为 BucketName-APPID + request.bucket = @"examplebucket-1250000000"; + + // 对象键,是对象在 COS 上的完整路径,如果带目录的话,格式为 "dir1/object1" + request.object = @"exampleobject"; + + // 是否拷贝元数据,枚举值:Copy,Replaced,默认值 Copy。 + // 假如标记为 Copy,忽略 Header 中的用户元数据信息直接复制 + // 假如标记为 Replaced,按 Header 信息修改元数据。当目标路径和原路径一致,即用户试图修改元数据时,必须为 Replaced + request.metadataDirective = @"Copy"; + + // 定义 Object 的 ACL 属性,有效值:private,public-read,default。 + // 默认值:default(继承 Bucket 权限)。 + // 注意:当前访问策略条目限制为1000条,如果您无需进行 Object ACL 控制,请填 default + // 或者此项不进行设置,默认继承 Bucket 权限。 + request.accessControlList = @"default"; + + // 源对象所在的路径 + request.objectCopySource = + @"sourcebucket-1250000000.cos.ap-guangzhou.myqcloud.com/sourceObject"; + + // 指定源文件的 versionID,只有开启或开启后暂停的存储桶,才会响应此参数 + request.versionID = @"objectVersion1"; + + [request setFinishBlock:^(QCloudCopyObjectResult * _Nonnull result, + NSError * _Nonnull error) { + // result 返回具体信息 + + }]; + [[QCloudCOSXMLService defaultCOSXML] PutObjectCopy:request]; + +*/ +@interface QCloudPutObjectCopyRequest : QCloudBizHTTPRequest +/** +对象名 +*/ +@property (strong, nonatomic) NSString *object; +/** +存储桶名 +*/ +@property (strong, nonatomic) NSString *bucket; +/** +源文件 URL 路径,可以通过 versionid 子资源指定历史版本 +*/ +@property (strong, nonatomic) NSString *objectCopySource; +/** +是否拷贝元数据,枚举值:Copy, Replaced,默认值 Copy。假如标记为 Copy,忽略 Header 中的用户元数据信息直接复制; + 假如标记为 Replaced,按 Header 信息修改元数据。当目标路径和原路径一致,即用户试图修改元数据时,必须为 Replaced +*/ +@property (strong, nonatomic) NSString *metadataDirective; +/** +当 Object 在指定时间后被修改,则执行操作,否则返回 412。可与 x-cos-copy-source-If-None-Match 一起使用, + 与其他条件联合使用返回冲突。 +*/ +@property (strong, nonatomic) NSString *objectCopyIfModifiedSince; +/** +当 Object 在指定时间后未被修改,则执行操作,否则返回 412。可与 x-cos-copy-source-If-Match 一起使用, + 与其他条件联合使用返回冲突。 +*/ +@property (strong, nonatomic) NSString *objectCopyIfUnmodifiedSince; +/** +当 Object 的 Etag 和给定一致时,则执行操作,否则返回 412。可与x-cos-copy-source-If-Unmodified-Since 一起使用, + 与其他条件联合使用返回冲突。 +*/ +@property (strong, nonatomic) NSString *objectCopyIfMatch; +/** +当 Object 的 Etag 和给定不一致时,则执行操作,否则返回 412。可与 x-cos-copy-source-If-Modified-Since 一起使用, + 与其他条件联合使用返回冲突。 +*/ +@property (strong, nonatomic) NSString *objectCopyIfNoneMatch; +/** +对象的存储级别,枚举值:STANDARD(QCloudCOSStorageStandard),STANDARD_IA(QCloudCOSStorageStandardIA)。 + 默认值:STANDARD(QCloudCOSStorageStandard) +*/ +@property (assign, nonatomic) QCloudCOSStorageClass storageClass; +/** + 定义 Object 的 ACL 属性。有效值:private,public-read-write,public-read;默认值:private +*/ +@property (strong, nonatomic) NSString *accessControlList; +/** + 赋予被授权者读的权限。格式:x-cos-grant-read: id="[OwnerUin]" +*/ +@property (strong, nonatomic) NSString *grantRead; +/** + 赋予被授权者写的权限。格式:x-cos-grant-write: id="[OwnerUin]"; +*/ +@property (strong, nonatomic) NSString *grantWrite; +/** + 赋予被授权者读写权限。格式:x-cos-grant-full-control: id="[OwnerUin]" +*/ +@property (strong, nonatomic) NSString *grantFullControl; +/** + 指定源文件的versionID,只有开启或开启后暂停的存储桶,才会响应此参数 + */ +@property (strong, nonatomic) NSString *versionID; + +- (void)setFinishBlock:(void (^_Nullable)(QCloudCopyObjectResult *_Nullable result, NSError *_Nullable error))QCloudRequestFinishBlock; +@end +NS_ASSUME_NONNULL_END diff --git a/Pods/QCloudCOSXML/QCloudCOSXML/Classes/Transfer/request/QCloudPutObjectCopyRequest.m b/Pods/QCloudCOSXML/QCloudCOSXML/Classes/Transfer/request/QCloudPutObjectCopyRequest.m new file mode 100644 index 0000000..4cf536d --- /dev/null +++ b/Pods/QCloudCOSXML/QCloudCOSXML/Classes/Transfer/request/QCloudPutObjectCopyRequest.m @@ -0,0 +1,185 @@ +// +// PutObjectCopy.m +// PutObjectCopy +// +// Created by tencent +// Copyright (c) 2015年 tencent. All rights reserved. +// +// ██████╗ ██████╗██╗ ██████╗ ██╗ ██╗██████╗ ████████╗███████╗██████╗ ███╗ ███╗██╗███╗ ██╗ █████╗ ██╗ ██╗ █████╗ +// ██████╗ +// ██╔═══██╗██╔════╝██║ ██╔═══██╗██║ ██║██╔══██╗ ╚══██╔══╝██╔════╝██╔══██╗████╗ ████║██║████╗ ██║██╔══██╗██║ ██║ ██╔══██╗██╔══██╗ +// ██║ ██║██║ ██║ ██║ ██║██║ ██║██║ ██║ ██║ █████╗ ██████╔╝██╔████╔██║██║██╔██╗ ██║███████║██║ ██║ ███████║██████╔╝ +// ██║▄▄ ██║██║ ██║ ██║ ██║██║ ██║██║ ██║ ██║ ██╔══╝ ██╔══██╗██║╚██╔╝██║██║██║╚██╗██║██╔══██║██║ ██║ ██╔══██║██╔══██╗ +// ╚██████╔╝╚██████╗███████╗╚██████╔╝╚██████╔╝██████╔╝ ██║ ███████╗██║ ██║██║ ╚═╝ ██║██║██║ ╚████║██║ ██║███████╗ ███████╗██║ +// ██║██████╔╝ +// ╚══▀▀═╝ ╚═════╝╚══════╝ ╚═════╝ ╚═════╝ ╚═════╝ ╚═╝ ╚══════╝╚═╝ ╚═╝╚═╝ ╚═╝╚═╝╚═╝ ╚═══╝╚═╝ ╚═╝╚══════╝ ╚══════╝╚═╝ ╚═╝╚═════╝ +// +// +// _ __ _ _ +// (_) / _| | | | | +// ___ ___ _ ____ ___ ___ ___ | |_ ___ _ __ __| | _____ _____| | ___ _ __ ___ _ +// __ ___ +// / __|/ _ \ '__\ \ / / |/ __/ _ \ | _/ _ \| '__| / _` |/ _ \ \ / / _ \ |/ _ \| '_ \ / _ \ +// '__/ __| +// \__ \ __/ | \ V /| | (_| __/ | || (_) | | | (_| | __/\ V / __/ | (_) | |_) | __/ +// | \__ +// |___/\___|_| \_/ |_|\___\___| |_| \___/|_| \__,_|\___| \_/ \___|_|\___/| .__/ +// \___|_| |___/ +// ______ ______ ______ ______ ______ ______ ______ ______ | | +// |______|______|______|______|______|______|______|______| |_| +// + +#import "QCloudPutObjectCopyRequest.h" +#import +#import +#import +#import "QCloudCopyObjectResult.h" + +NS_ASSUME_NONNULL_BEGIN +@implementation QCloudPutObjectCopyRequest +- (void)dealloc { +} +- (instancetype)init { + self = [super init]; + if (!self) { + return nil; + } + return self; +} +- (void)configureReuqestSerializer:(QCloudRequestSerializer *)requestSerializer responseSerializer:(QCloudResponseSerializer *)responseSerializer { + NSArray *customRequestSerilizers = @[ + QCloudURLFuseSimple, + QCloudURLFuseWithXMLParamters, + ]; + + NSArray *responseSerializers = @[ + QCloudAcceptRespnseCodeBlock([NSSet setWithObjects:@(200), @(201), @(202), @(203), @(204), @(205), @(206), @(207), @(208), @(226), nil], nil), + QCloudResponseXMLSerializerBlock, + + QCloudResponseAppendHeadersSerializerBlock, + + QCloudResponseObjectSerilizerBlock([QCloudCopyObjectResult class]) + ]; + [requestSerializer setSerializerBlocks:customRequestSerilizers]; + [responseSerializer setSerializerBlocks:responseSerializers]; + + requestSerializer.HTTPMethod = @"PUT"; +} + +- (BOOL)buildRequestData:(NSError *__autoreleasing *)error { + if (![super buildRequestData:error]) { + return NO; + } + if (!self.object || ([self.object isKindOfClass:NSString.class] && ((NSString *)self.object).length == 0)) { + if (error != NULL) { + *error = [NSError + qcloud_errorWithCode:QCloudNetworkErrorCodeParamterInvalid + message:[NSString stringWithFormat: + @"InvalidArgument:paramter[object] is invalid (nil), it must have some value. please check it"]]; + return NO; + } + } + if (!self.bucket || ([self.bucket isKindOfClass:NSString.class] && ((NSString *)self.bucket).length == 0)) { + if (error != NULL) { + *error = [NSError + qcloud_errorWithCode:QCloudNetworkErrorCodeParamterInvalid + message:[NSString stringWithFormat: + @"InvalidArgument:paramter[bucket] is invalid (nil), it must have some value. please check it"]]; + return NO; + } + } + NSURL *__serverURL = [self.runOnService.configuration.endpoint serverURLWithBucket:self.bucket + appID:self.runOnService.configuration.appID + regionName:self.regionName]; + self.requestData.serverURL = __serverURL.absoluteString; + [self.requestData setValue:__serverURL.host forHTTPHeaderField:@"Host"]; + if (self.objectCopySource) { + [self.requestData setValue:self.objectCopySource forHTTPHeaderField:@"x-cos-copy-source"]; + } + if (self.metadataDirective) { + [self.requestData setValue:self.metadataDirective forHTTPHeaderField:@"x-cos-metadata-directive"]; + } + if (self.objectCopyIfModifiedSince) { + [self.requestData setValue:self.objectCopyIfModifiedSince forHTTPHeaderField:@"x-cos-copy-source-If-Modified-Since"]; + } + if (self.objectCopyIfUnmodifiedSince) { + [self.requestData setValue:self.objectCopyIfUnmodifiedSince forHTTPHeaderField:@"x-cos-copy-source-If-Unmodified-Since"]; + } + if (self.objectCopyIfMatch) { + [self.requestData setValue:self.objectCopyIfMatch forHTTPHeaderField:@"x-cos-copy-source-If-Match"]; + } + if (self.objectCopyIfNoneMatch) { + [self.requestData setValue:self.objectCopyIfNoneMatch forHTTPHeaderField:@"x-cos-copy-source-If-None-Match"]; + } + if (self.storageClass) { + [self.requestData setValue:QCloudCOSStorageClassTransferToString(self.storageClass) forHTTPHeaderField:@"x-cos-storage-class"]; + } + if (self.accessControlList) { + [self.requestData setValue:self.accessControlList forHTTPHeaderField:@"x-cos-acl"]; + } + if (self.grantRead) { + [self.requestData setValue:self.grantRead forHTTPHeaderField:@"x-cos-grant-read"]; + } + if (self.grantWrite) { + [self.requestData setValue:self.grantWrite forHTTPHeaderField:@"x-cos-grant-write"]; + } + if (self.grantFullControl) { + [self.requestData setValue:self.grantFullControl forHTTPHeaderField:@"x-cos-grant-full-control"]; + } + if (self.versionID) { + [self.requestData setValue:self.versionID forHTTPHeaderField:@"x-cos-version-id"]; + } + NSMutableArray *__pathComponents = [NSMutableArray arrayWithArray:self.requestData.URIComponents]; + if (self.object) + [__pathComponents addObject:self.object]; + self.requestData.URIComponents = __pathComponents; + for (NSString *key in self.customHeaders.allKeys.copy) { + [self.requestData setValue:self.customHeaders[key] forHTTPHeaderField:key]; + } + return YES; +} + +- (void)setFinishBlock:(void (^_Nullable)(QCloudCopyObjectResult *_Nullable, NSError *_Nullable))QCloudRequestFinishBlock { + [super setFinishBlock:QCloudRequestFinishBlock]; +} + +- (QCloudSignatureFields *)signatureFields { + QCloudSignatureFields *fileds = [QCloudSignatureFields new]; + + return fileds; +} +- (NSArray *)scopesArray { + NSMutableDictionary *orginDic = [NSMutableDictionary dictionary]; + NSArray *tmpstrsArr = [self.objectCopySource componentsSeparatedByString:@"/"]; + NSString *path = @""; + for (int i = 1; i < tmpstrsArr.count; i++) { + if (i == tmpstrsArr.count - 1) { + path = [path stringByAppendingString:tmpstrsArr[i]]; + } else { + path = [path stringByAppendingString:tmpstrsArr[i]]; + path = [path stringByAppendingString:@"/"]; + } + } + NSArray *hostsArray = [tmpstrsArr[1] componentsSeparatedByString:@"."]; + orginDic[@"bucket"] = hostsArray[0]; + orginDic[@"region"] = hostsArray[2]; + orginDic[@"prefix"] = path; + orginDic[@"action"] = @"name/cos:GetObject"; + + NSMutableDictionary *desDic = [NSMutableDictionary dictionary]; + NSArray *separatetmpArray = [self.requestData.serverURL componentsSeparatedByString:@"://"]; + NSString *str = separatetmpArray[1]; + NSArray *separateArray = [str componentsSeparatedByString:@"."]; + desDic[@"bucket"] = separateArray[0]; + desDic[@"region"] = self.runOnService.configuration.endpoint.regionName; + desDic[@"prefix"] = self.object; + desDic[@"action"] = @"name/cos:PutObject"; + + NSMutableArray *array = [NSMutableArray array]; + [array addObject:orginDic]; + [array addObject:desDic]; + return [array copy]; +} + +@end +NS_ASSUME_NONNULL_END diff --git a/Pods/QCloudCOSXML/QCloudCOSXML/Classes/Transfer/request/QCloudPutObjectRequest+Custom.h b/Pods/QCloudCOSXML/QCloudCOSXML/Classes/Transfer/request/QCloudPutObjectRequest+Custom.h new file mode 100644 index 0000000..8d2df11 --- /dev/null +++ b/Pods/QCloudCOSXML/QCloudCOSXML/Classes/Transfer/request/QCloudPutObjectRequest+Custom.h @@ -0,0 +1,12 @@ +// +// QCloudPutObjectRequest+Custom.h +// Pods-QCloudCOSXMLDemo +// +// Created by karisli(李雪) on 2018/8/14. +// + +#import +#import "QCloudPutObjectRequest.h" +@interface QCloudPutObjectRequest (Custom) +- (void)setCOSServerSideEncyptionWithKMSCustomKey:(NSString *)customerKey jsonStr:(NSString *)jsonStr; +@end diff --git a/Pods/QCloudCOSXML/QCloudCOSXML/Classes/Transfer/request/QCloudPutObjectRequest+Custom.m b/Pods/QCloudCOSXML/QCloudCOSXML/Classes/Transfer/request/QCloudPutObjectRequest+Custom.m new file mode 100644 index 0000000..576be33 --- /dev/null +++ b/Pods/QCloudCOSXML/QCloudCOSXML/Classes/Transfer/request/QCloudPutObjectRequest+Custom.m @@ -0,0 +1,32 @@ +// +// QCloudPutObjectRequest+Custom.m +// Pods-QCloudCOSXMLDemo +// +// Created by karisli(李雪) on 2018/8/14. +// + +#import "QCloudPutObjectRequest+Custom.h" +#import +#import +@interface QCloudBizHTTPRequest () +@end + +@implementation QCloudPutObjectRequest (Custom) + +- (void)setCOSServerSideEncyptionWithCustomerKey:(NSString *)customerKey { + [super setCOSServerSideEncyptionWithCustomerKey:customerKey]; +} +- (void)setCOSServerSideEncyptionWithKMSCustomKey:(NSString *)customerKey jsonStr:(NSString *)jsonStr { + ; + self.customHeaders[@"x-cos-server-side-encryption"] = @"cos/kms"; + if (customerKey) { + self.customHeaders[@"x-cos-server-side-encryption-cos-kms-key-id"] = customerKey; + } + if (jsonStr) { + //先将string转换成data + NSData *data = [jsonStr dataUsingEncoding:NSUTF8StringEncoding]; + self.customHeaders[@"x-cos-server-side-encryption-context"] = [data base64EncodedStringWithOptions:0]; + } +} + +@end diff --git a/Pods/QCloudCOSXML/QCloudCOSXML/Classes/Transfer/request/QCloudPutObjectRequest+CustomBuild.h b/Pods/QCloudCOSXML/QCloudCOSXML/Classes/Transfer/request/QCloudPutObjectRequest+CustomBuild.h new file mode 100644 index 0000000..8c4e799 --- /dev/null +++ b/Pods/QCloudCOSXML/QCloudCOSXML/Classes/Transfer/request/QCloudPutObjectRequest+CustomBuild.h @@ -0,0 +1,13 @@ +// +// QCloudPutObjectRequest+CustomBuild.h +// Pods +// +// Created by Dong Zhao on 2017/5/26. +// +// + +#import "QCloudPutObjectRequest.h" + +@interface QCloudPutObjectRequest (CustomBuild) + +@end diff --git a/Pods/QCloudCOSXML/QCloudCOSXML/Classes/Transfer/request/QCloudPutObjectRequest+CustomBuild.m b/Pods/QCloudCOSXML/QCloudCOSXML/Classes/Transfer/request/QCloudPutObjectRequest+CustomBuild.m new file mode 100644 index 0000000..090b5ce --- /dev/null +++ b/Pods/QCloudCOSXML/QCloudCOSXML/Classes/Transfer/request/QCloudPutObjectRequest+CustomBuild.m @@ -0,0 +1,16 @@ +// +// QCloudPutObjectRequest+CustomBuild.m +// Pods +// +// Created by Dong Zhao on 2017/5/26. +// +// + +#import "QCloudPutObjectRequest+CustomBuild.h" + +@implementation QCloudPutObjectRequest (CustomBuild) +- (void)onSuccess:(NSDictionary *)object { + [super onSuccess:object]; +} + +@end diff --git a/Pods/QCloudCOSXML/QCloudCOSXML/Classes/Transfer/request/QCloudPutObjectRequest.h b/Pods/QCloudCOSXML/QCloudCOSXML/Classes/Transfer/request/QCloudPutObjectRequest.h new file mode 100644 index 0000000..79d16f4 --- /dev/null +++ b/Pods/QCloudCOSXML/QCloudCOSXML/Classes/Transfer/request/QCloudPutObjectRequest.h @@ -0,0 +1,134 @@ +// +// PutObject.h +// PutObject +// +// Created by tencent +// Copyright (c) 2015年 tencent. All rights reserved. +// +// ██████╗ ██████╗██╗ ██████╗ ██╗ ██╗██████╗ ████████╗███████╗██████╗ ███╗ ███╗██╗███╗ ██╗ █████╗ ██╗ ██╗ █████╗ +// ██████╗ +// ██╔═══██╗██╔════╝██║ ██╔═══██╗██║ ██║██╔══██╗ ╚══██╔══╝██╔════╝██╔══██╗████╗ ████║██║████╗ ██║██╔══██╗██║ ██║ ██╔══██╗██╔══██╗ +// ██║ ██║██║ ██║ ██║ ██║██║ ██║██║ ██║ ██║ █████╗ ██████╔╝██╔████╔██║██║██╔██╗ ██║███████║██║ ██║ ███████║██████╔╝ +// ██║▄▄ ██║██║ ██║ ██║ ██║██║ ██║██║ ██║ ██║ ██╔══╝ ██╔══██╗██║╚██╔╝██║██║██║╚██╗██║██╔══██║██║ ██║ ██╔══██║██╔══██╗ +// ╚██████╔╝╚██████╗███████╗╚██████╔╝╚██████╔╝██████╔╝ ██║ ███████╗██║ ██║██║ ╚═╝ ██║██║██║ ╚████║██║ ██║███████╗ ███████╗██║ +// ██║██████╔╝ +// ╚══▀▀═╝ ╚═════╝╚══════╝ ╚═════╝ ╚═════╝ ╚═════╝ ╚═╝ ╚══════╝╚═╝ ╚═╝╚═╝ ╚═╝╚═╝╚═╝ ╚═══╝╚═╝ ╚═╝╚══════╝ ╚══════╝╚═╝ ╚═╝╚═════╝ +// +// +// _ __ _ _ +// (_) / _| | | | | +// ___ ___ _ ____ ___ ___ ___ | |_ ___ _ __ __| | _____ _____| | ___ _ __ ___ _ +// __ ___ +// / __|/ _ \ '__\ \ / / |/ __/ _ \ | _/ _ \| '__| / _` |/ _ \ \ / / _ \ |/ _ \| '_ \ / _ \ +// '__/ __| +// \__ \ __/ | \ V /| | (_| __/ | || (_) | | | (_| | __/\ V / __/ | (_) | |_) | __/ +// | \__ +// |___/\___|_| \_/ |_|\___\___| |_| \___/|_| \__,_|\___| \_/ \___|_|\___/| .__/ +// \___|_| |___/ +// ______ ______ ______ ______ ______ ______ ______ ______ | | +// |______|______|______|______|______|______|______|______| |_| +// + +#import +#import +#import "QCloudCOSStorageClassEnum.h" +NS_ASSUME_NONNULL_BEGIN +/** + + 简单上传的方法. + + ### 功能描述 + + 简单上传主要适用于在单个请求中上传一个小于 5 GB 大小的对象. 对于大于 5 GB 的对象(或者在高带宽或弱网络环境中 + )优先使用分片上传的方式 (https://cloud.tencent.com/document/product/436/14112) + + 关于简单上传接口的具体描述,请查看 https://cloud.tencent.com/document/product/436/7749 + +### 示例 + + @code + + QCloudPutObjectRequest* put = [QCloudPutObjectRequest new]; + + // 存储桶名称,格式为 BucketName-APPID + put.bucket = @"examplebucket-1250000000"; + + // 对象键,是对象在 COS 上的完整路径,如果带目录的话,格式为 "dir1/object1" + put.object = @"exampleobject"; + + put.body = [@"testFileContent" dataUsingEncoding:NSUTF8StringEncoding]; + + [put setFinishBlock:^(id outputObject, NSError *error) { + + // outputObject 包含所有的响应 http 头部 + NSDictionary* info = (NSDictionary *) outputObject; + }]; + + [[QCloudCOSXMLService defaultCOSXML] PutObject:put]; + +*/ +@interface QCloudPutObjectRequest : QCloudBizHTTPRequest +@property (nonatomic, strong) BodyType body; +/** + 对象 名称 +*/ +@property (strong, nonatomic) NSString *object; +/** + 存储桶 名称 +*/ +@property (strong, nonatomic) NSString *bucket; +/** +RFC 2616 中定义的缓存策略,将作为 Object 元数据保存 +*/ +@property (strong, nonatomic) NSString *cacheControl; +/** +RFC 2616 中定义用于指示资源的MIME类型,将作为 Object 元数据保存 +*/ +@property (strong, nonatomic) NSString *contentType; +/** +RFC 2616 中定义的文件名称,将作为 Object 元数据保存 +*/ +@property (strong, nonatomic) NSString *contentDisposition; +/** +当使用 Expect: 100-continue 时,在收到服务端确认后,才会发送请求内容 +*/ +@property (strong, nonatomic) NSString *expect; +/** +RFC 2616 中定义的过期时间,将作为 Object 元数据保存 +*/ +@property (strong, nonatomic) NSString *expires; +@property (strong, nonatomic) NSString *contentSHA1; +/** +对象的存储级别,枚举值:STANDARD(QCloudCOSStorageStandard),STANDARD_IA(QCloudCOSStorageStandardIA) + ,ARCHIVE(QCloudCOSStorageARCHIVE)。默认值:STANDARD(QCloudCOSStorageStandard) +*/ +@property (assign, nonatomic) QCloudCOSStorageClass storageClass; +/** +定义 Object 的 ACL 属性。有效值:private,public-read-write,public-read;默认值:private +*/ +@property (strong, nonatomic) NSString *accessControlList; +/** + 赋予被授权者读的权限。格式:id="OwnerUin"; + +*/ +@property (strong, nonatomic) NSString *grantRead; +/** +赋予被授权者写的权限。格式:id="OwnerUin"; + +*/ +@property (strong, nonatomic) NSString *grantWrite; +/** +赋予被授权者读写权限。格式: id="OwnerUin"; + +*/ +@property (strong, nonatomic) NSString *grantFullControl; +/** +指定对象对应的Version ID(在开启了多版本的情况才有) +*/ +@property (strong, nonatomic) NSString *versionID; + +//针对本次上传进行流量控制的限速值,必须为数字,单位默认为 bit/s。限速值设置范围为819200 - 838860800,即100KB/s - 100MB/s,如果超出该范围将返回400错误 +@property (nonatomic, assign) NSInteger trafficLimit; + +@end +NS_ASSUME_NONNULL_END diff --git a/Pods/QCloudCOSXML/QCloudCOSXML/Classes/Transfer/request/QCloudPutObjectRequest.m b/Pods/QCloudCOSXML/QCloudCOSXML/Classes/Transfer/request/QCloudPutObjectRequest.m new file mode 100644 index 0000000..76d5742 --- /dev/null +++ b/Pods/QCloudCOSXML/QCloudCOSXML/Classes/Transfer/request/QCloudPutObjectRequest.m @@ -0,0 +1,177 @@ +// +// PutObject.m +// PutObject +// +// Created by tencent +// Copyright (c) 2015年 tencent. All rights reserved. +// +// ██████╗ ██████╗██╗ ██████╗ ██╗ ██╗██████╗ ████████╗███████╗██████╗ ███╗ ███╗██╗███╗ ██╗ █████╗ ██╗ ██╗ █████╗ +// ██████╗ +// ██╔═══██╗██╔════╝██║ ██╔═══██╗██║ ██║██╔══██╗ ╚══██╔══╝██╔════╝██╔══██╗████╗ ████║██║████╗ ██║██╔══██╗██║ ██║ ██╔══██╗██╔══██╗ +// ██║ ██║██║ ██║ ██║ ██║██║ ██║██║ ██║ ██║ █████╗ ██████╔╝██╔████╔██║██║██╔██╗ ██║███████║██║ ██║ ███████║██████╔╝ +// ██║▄▄ ██║██║ ██║ ██║ ██║██║ ██║██║ ██║ ██║ ██╔══╝ ██╔══██╗██║╚██╔╝██║██║██║╚██╗██║██╔══██║██║ ██║ ██╔══██║██╔══██╗ +// ╚██████╔╝╚██████╗███████╗╚██████╔╝╚██████╔╝██████╔╝ ██║ ███████╗██║ ██║██║ ╚═╝ ██║██║██║ ╚████║██║ ██║███████╗ ███████╗██║ +// ██║██████╔╝ +// ╚══▀▀═╝ ╚═════╝╚══════╝ ╚═════╝ ╚═════╝ ╚═════╝ ╚═╝ ╚══════╝╚═╝ ╚═╝╚═╝ ╚═╝╚═╝╚═╝ ╚═══╝╚═╝ ╚═╝╚══════╝ ╚══════╝╚═╝ ╚═╝╚═════╝ +// +// +// _ __ _ _ +// (_) / _| | | | | +// ___ ___ _ ____ ___ ___ ___ | |_ ___ _ __ __| | _____ _____| | ___ _ __ ___ _ +// __ ___ +// / __|/ _ \ '__\ \ / / |/ __/ _ \ | _/ _ \| '__| / _` |/ _ \ \ / / _ \ |/ _ \| '_ \ / _ \ +// '__/ __| +// \__ \ __/ | \ V /| | (_| __/ | || (_) | | | (_| | __/\ V / __/ | (_) | |_) | __/ +// | \__ +// |___/\___|_| \_/ |_|\___\___| |_| \___/|_| \__,_|\___| \_/ \___|_|\___/| .__/ +// \___|_| |___/ +// ______ ______ ______ ______ ______ ______ ______ ______ | | +// |______|______|______|______|______|______|______|______| |_| +// + +#import "QCloudPutObjectRequest.h" +#import +#import +#import +#import "QCloudPutObjectRequest+Custom.h" +#import +NS_ASSUME_NONNULL_BEGIN +@implementation QCloudPutObjectRequest +- (void)dealloc { +} +- (instancetype)init { + self = [super init]; + if (!self) { + return nil; + } + return self; +} +- (void)configureReuqestSerializer:(QCloudRequestSerializer *)requestSerializer responseSerializer:(QCloudResponseSerializer *)responseSerializer { + NSArray *customRequestSerilizers = @[ + QCloudURLFuseSimple, + QCloudURLFuseContentMD5Base64StyleHeaders, + ]; + + NSArray *responseSerializers = @[ + QCloudAcceptRespnseCodeBlock([NSSet setWithObjects:@(200), @(201), @(202), @(203), @(204), @(205), @(206), @(207), @(208), @(226), nil], nil), + + QCloudResponseAppendHeadersSerializerBlock, + ]; + [requestSerializer setSerializerBlocks:customRequestSerilizers]; + [responseSerializer setSerializerBlocks:responseSerializers]; + + requestSerializer.HTTPMethod = @"put"; +} + +- (BOOL)buildRequestData:(NSError *__autoreleasing *)error { + if (![super buildRequestData:error]) { + return NO; + } + if (!self.object || ([self.object isKindOfClass:NSString.class] && ((NSString *)self.object).length == 0)) { + if (error != NULL) { + *error = [NSError + qcloud_errorWithCode:QCloudNetworkErrorCodeParamterInvalid + message:[NSString stringWithFormat: + @"InvalidArgument:paramter[object] is invalid (nil), it must have some value. please check it"]]; + return NO; + } + } + if (!self.bucket || ([self.bucket isKindOfClass:NSString.class] && ((NSString *)self.bucket).length == 0)) { + if (error != NULL) { + *error = [NSError + qcloud_errorWithCode:QCloudNetworkErrorCodeParamterInvalid + message:[NSString stringWithFormat: + @"InvalidArgument:paramter[bucket] is invalid (nil), it must have some value. please check it"]]; + return NO; + } + } + NSURL *__serverURL = [self.runOnService.configuration.endpoint serverURLWithBucket:self.bucket + appID:self.runOnService.configuration.appID + regionName:self.regionName]; + self.requestData.serverURL = __serverURL.absoluteString; + [self.requestData setValue:__serverURL.host forHTTPHeaderField:@"Host"]; + if (self.contentType) { + [self.requestData setValue:self.contentType forHTTPHeaderField:@"Content-Type"]; + } + if (![self.requestData valueForHttpKey:@"Content-Type"]) { + if ([self.body isKindOfClass:[NSURL class]]) { + NSString *miniType = detemineFileMemeType(self.body, self.object); + [self.requestData setValue:miniType forHTTPHeaderField:@"Content-Type"]; + }else{ + NSString *miniType = detemineFileMemeType(nil, self.object); + [self.requestData setValue:miniType forHTTPHeaderField:@"Content-Type"]; + } + } + if (self.cacheControl) { + [self.requestData setValue:self.cacheControl forHTTPHeaderField:@"Cache-Control"]; + } + if (self.contentDisposition) { + [self.requestData setValue:self.contentDisposition forHTTPHeaderField:@"Content-Disposition"]; + } + if (self.expect) { + [self.requestData setValue:self.expect forHTTPHeaderField:@"Expect"]; + } + if (self.expires) { + [self.requestData setValue:self.expires forHTTPHeaderField:@"Expires"]; + } + if (self.contentSHA1) { + [self.requestData setValue:self.contentSHA1 forHTTPHeaderField:@"x-cos-content-sha1"]; + } + if (self.storageClass) { + [self.requestData setValue:QCloudCOSStorageClassTransferToString(self.storageClass) forHTTPHeaderField:@"x-cos-storage-class"]; + } + if (self.accessControlList) { + [self.requestData setValue:self.accessControlList forHTTPHeaderField:@"x-cos-acl"]; + } + if (self.grantRead) { + [self.requestData setValue:self.grantRead forHTTPHeaderField:@"x-cos-grant-read"]; + } + if (self.grantWrite) { + [self.requestData setValue:self.grantWrite forHTTPHeaderField:@"x-cos-grant-write"]; + } + if (self.grantFullControl) { + [self.requestData setValue:self.grantFullControl forHTTPHeaderField:@"x-cos-grant-full-control"]; + } + if (self.versionID) { + [self.requestData setValue:self.versionID forHTTPHeaderField:@"x-cos-version-id"]; + } + if (self.trafficLimit) { + [self.requestData setValue:@(self.trafficLimit).stringValue forHTTPHeaderField:@"x-cos-traffic-limit"]; + } + NSMutableArray *__pathComponents = [NSMutableArray arrayWithArray:self.requestData.URIComponents]; + if (self.object) + [__pathComponents addObject:self.object]; + self.requestData.URIComponents = __pathComponents; + self.requestData.directBody = self.body; + for (NSString *key in self.customHeaders.allKeys.copy) { + [self.requestData setValue:self.customHeaders[key] forHTTPHeaderField:key]; + } + return YES; +} + +- (BOOL)prepareInvokeURLRequest:(NSMutableURLRequest *)urlRequest error:(NSError *__autoreleasing _Nullable *)error{ + NSLog(@"%@",urlRequest.URL); + return [super prepareInvokeURLRequest:urlRequest error:error]; +} + +- (QCloudSignatureFields *)signatureFields { + QCloudSignatureFields *fileds = [QCloudSignatureFields new]; + + return fileds; +} +- (NSArray *)scopesArray { + NSMutableDictionary *dic = [NSMutableDictionary dictionary]; + NSArray *separatetmpArray = [self.requestData.serverURL componentsSeparatedByString:@"://"]; + NSString *str = separatetmpArray[1]; + NSArray *separateArray = [str componentsSeparatedByString:@"."]; + dic[@"bucket"] = separateArray[0]; + dic[@"region"] = self.runOnService.configuration.endpoint.regionName; + dic[@"prefix"] = self.object; + dic[@"action"] = @"name/cos:PutObject"; + NSMutableArray *array = [NSMutableArray array]; + [array addObject:dic]; + return [array copy]; +} + +@end +NS_ASSUME_NONNULL_END diff --git a/Pods/QCloudCOSXML/QCloudCOSXML/Classes/Transfer/request/QCloudUploadPartCopyRequest.h b/Pods/QCloudCOSXML/QCloudCOSXML/Classes/Transfer/request/QCloudUploadPartCopyRequest.h new file mode 100644 index 0000000..6b1dc8b --- /dev/null +++ b/Pods/QCloudCOSXML/QCloudCOSXML/Classes/Transfer/request/QCloudUploadPartCopyRequest.h @@ -0,0 +1,148 @@ +// +// UploadPartCopy.h +// UploadPartCopy +// +// Created by tencent +// Copyright (c) 2015年 tencent. All rights reserved. +// +// ██████╗ ██████╗██╗ ██████╗ ██╗ ██╗██████╗ ████████╗███████╗██████╗ ███╗ ███╗██╗███╗ ██╗ █████╗ ██╗ ██╗ █████╗ +// ██████╗ +// ██╔═══██╗██╔════╝██║ ██╔═══██╗██║ ██║██╔══██╗ ╚══██╔══╝██╔════╝██╔══██╗████╗ ████║██║████╗ ██║██╔══██╗██║ ██║ ██╔══██╗██╔══██╗ +// ██║ ██║██║ ██║ ██║ ██║██║ ██║██║ ██║ ██║ █████╗ ██████╔╝██╔████╔██║██║██╔██╗ ██║███████║██║ ██║ ███████║██████╔╝ +// ██║▄▄ ██║██║ ██║ ██║ ██║██║ ██║██║ ██║ ██║ ██╔══╝ ██╔══██╗██║╚██╔╝██║██║██║╚██╗██║██╔══██║██║ ██║ ██╔══██║██╔══██╗ +// ╚██████╔╝╚██████╗███████╗╚██████╔╝╚██████╔╝██████╔╝ ██║ ███████╗██║ ██║██║ ╚═╝ ██║██║██║ ╚████║██║ ██║███████╗ ███████╗██║ +// ██║██████╔╝ +// ╚══▀▀═╝ ╚═════╝╚══════╝ ╚═════╝ ╚═════╝ ╚═════╝ ╚═╝ ╚══════╝╚═╝ ╚═╝╚═╝ ╚═╝╚═╝╚═╝ ╚═══╝╚═╝ ╚═╝╚══════╝ ╚══════╝╚═╝ ╚═╝╚═════╝ +// +// +// _ __ _ _ +// (_) / _| | | | | +// ___ ___ _ ____ ___ ___ ___ | |_ ___ _ __ __| | _____ _____| | ___ _ __ ___ _ +// __ ___ +// / __|/ _ \ '__\ \ / / |/ __/ _ \ | _/ _ \| '__| / _` |/ _ \ \ / / _ \ |/ _ \| '_ \ / _ \ +// '__/ __| +// \__ \ __/ | \ V /| | (_| __/ | || (_) | | | (_| | __/\ V / __/ | (_) | |_) | __/ +// | \__ +// |___/\___|_| \_/ |_|\___\___| |_| \___/|_| \__,_|\___| \_/ \___|_|\___/| .__/ +// \___|_| |___/ +// ______ ______ ______ ______ ______ ______ ______ ______ | | +// |______|______|______|______|______|______|______|______| |_| +// + +#import +#import +#import "QCloudCopyObjectResult.h" +NS_ASSUME_NONNULL_BEGIN +/** + 分块复制的方法. + + ### 功能描述 + + COS 中复制对象可以完成如下功能: + + 创建一个新的对象副本. + + 复制对象并更名,删除原始对象,实现重命名 + + 修改对象的存储类型,在复制时选择相同的源和目标对象键,修改存储类型. + + 在不同的腾讯云 COS 地域复制对象. + + 修改对象的元数据,在复制时选择相同的源和目标对象键,并修改其中的元数据,复制对象时,默认将继承原对象的元数据, + 但创建日期将会按新对象的时间计算. + + 当复制的对象小于等于 5 GB ,可以使用简单复制(https://cloud.tencent.com/document/product/436/14117). + + 当复制对象超过 5 GB 时,必须使用分块复制(https://cloud.tencent.com/document/product/436/14118 ) 来实现复制. + + 关于分块复制接口的具体描述,请查看https://cloud.tencent.com/document/product/436/8287. + +### 示例 + + @code + + QCloudUploadPartCopyRequest* request = [[QCloudUploadPartCopyRequest alloc] init]; + + // 存储桶名称,格式为 BucketName-APPID + request.bucket = @"examplebucket-1250000000"; + + // 对象键,是对象在 COS 上的完整路径,如果带目录的话,格式为 "dir1/object1" + request.object = @"exampleobject"; + + // 源文件 URL 路径,可以通过 versionid 子资源指定历史版本 + request.source = @"sourcebucket-1250000000.cos.ap-guangzhou.myqcloud.com/sourceObject"; + + // 在初始化分块上传的响应中,会返回一个唯一的描述符(upload ID) + request.uploadID = uploadId; + + // 标志当前分块的序号 + request.partNumber = 1; + + [request setFinishBlock:^(QCloudCopyObjectResult* result, NSError* error) { + QCloudMultipartInfo *part = [QCloudMultipartInfo new]; + + // 获取所复制分块的 etag + part.eTag = result.eTag; + part.partNumber = @"1"; + // 保存起来用于最后完成上传时使用 + self.parts=@[part]; + + }]; + + [[QCloudCOSXMLService defaultCOSXML]UploadPartCopy:request]; + +*/ +@interface QCloudUploadPartCopyRequest : QCloudBizHTTPRequest +/** + 存储桶名称 + */ +@property (strong, nonatomic) NSString *bucket; +/** + 对象名 + */ +@property (strong, nonatomic) NSString *object; +/** + 在初始化分块上传的响应中,会返回一个唯一的描述符(upload ID) + */ +@property (strong, nonatomic) NSString *uploadID; +/** + 标志当前分块的序号 + */ +@property (assign, nonatomic) int64_t partNumber; +/** + 源文件 URL 路径,可以通过 versionid 子资源指定历史版本 + */ +@property (strong, nonatomic) NSString *source; +/** + 源文件的字节范围,范围值必须使用 bytes=first-last 格式,first 和 last 都是基于 0 开始的偏移量。 + 例如 bytes=0-9 表示你希望拷贝源文件的开头10个字节的数据,如果不指定,则表示拷贝整个文件。 + */ +@property (strong, nonatomic) NSString *sourceRange; +/** + 当 Object 在指定时间后被修改,则执行操作,否则返回 412。 + 可与 x-cos-copy-source-If-None-Match 一起使用,与其他条件联合使用返回冲突。 + */ +@property (strong, nonatomic) NSString *sourceIfModifiedSince; +/** + 当 Object 在指定时间后未被修改,则执行操作,否则返回 412。 + 可与 x-cos-copy-source-If-Match 一起使用,与其他条件联合使用返回冲突。 + */ +@property (strong, nonatomic) NSString *sourceIfUnmodifiedSince; +/** + 当 Object 的 Etag 和给定一致时,则执行操作,否则返回 412。 + 可与x-cos-copy-source-If-Unmodified-Since 一起使用,与其他条件联合使用返回冲突。 + */ +@property (strong, nonatomic) NSString *sourceIfMatch; +/** + 当 Object 的 Etag 和给定不一致时,则执行操作,否则返回 412。 + 可与 x-cos-copy-source-If-Modified-Since 一起使用,与其他条件联合使用返回冲突。 + */ +@property (strong, nonatomic) NSString *sourceIfNoneMatch; +/** + 指定 Object 的 Version ID (在开启了多版本的情况下) + */ +@property (strong, nonatomic) NSString *versionID; + +- (void)setFinishBlock:(void (^_Nullable)(QCloudCopyObjectResult *_Nullable result, NSError *_Nullable error))QCloudRequestFinishBlock; +@end +NS_ASSUME_NONNULL_END diff --git a/Pods/QCloudCOSXML/QCloudCOSXML/Classes/Transfer/request/QCloudUploadPartCopyRequest.m b/Pods/QCloudCOSXML/QCloudCOSXML/Classes/Transfer/request/QCloudUploadPartCopyRequest.m new file mode 100644 index 0000000..50db20f --- /dev/null +++ b/Pods/QCloudCOSXML/QCloudCOSXML/Classes/Transfer/request/QCloudUploadPartCopyRequest.m @@ -0,0 +1,188 @@ +// +// UploadPartCopy.m +// UploadPartCopy +// +// Created by tencent +// Copyright (c) 2015年 tencent. All rights reserved. +// +// ██████╗ ██████╗██╗ ██████╗ ██╗ ██╗██████╗ ████████╗███████╗██████╗ ███╗ ███╗██╗███╗ ██╗ █████╗ ██╗ ██╗ █████╗ +// ██████╗ +// ██╔═══██╗██╔════╝██║ ██╔═══██╗██║ ██║██╔══██╗ ╚══██╔══╝██╔════╝██╔══██╗████╗ ████║██║████╗ ██║██╔══██╗██║ ██║ ██╔══██╗██╔══██╗ +// ██║ ██║██║ ██║ ██║ ██║██║ ██║██║ ██║ ██║ █████╗ ██████╔╝██╔████╔██║██║██╔██╗ ██║███████║██║ ██║ ███████║██████╔╝ +// ██║▄▄ ██║██║ ██║ ██║ ██║██║ ██║██║ ██║ ██║ ██╔══╝ ██╔══██╗██║╚██╔╝██║██║██║╚██╗██║██╔══██║██║ ██║ ██╔══██║██╔══██╗ +// ╚██████╔╝╚██████╗███████╗╚██████╔╝╚██████╔╝██████╔╝ ██║ ███████╗██║ ██║██║ ╚═╝ ██║██║██║ ╚████║██║ ██║███████╗ ███████╗██║ +// ██║██████╔╝ +// ╚══▀▀═╝ ╚═════╝╚══════╝ ╚═════╝ ╚═════╝ ╚═════╝ ╚═╝ ╚══════╝╚═╝ ╚═╝╚═╝ ╚═╝╚═╝╚═╝ ╚═══╝╚═╝ ╚═╝╚══════╝ ╚══════╝╚═╝ ╚═╝╚═════╝ +// +// +// _ __ _ _ +// (_) / _| | | | | +// ___ ___ _ ____ ___ ___ ___ | |_ ___ _ __ __| | _____ _____| | ___ _ __ ___ _ +// __ ___ +// / __|/ _ \ '__\ \ / / |/ __/ _ \ | _/ _ \| '__| / _` |/ _ \ \ / / _ \ |/ _ \| '_ \ / _ \ +// '__/ __| +// \__ \ __/ | \ V /| | (_| __/ | || (_) | | | (_| | __/\ V / __/ | (_) | |_) | __/ +// | \__ +// |___/\___|_| \_/ |_|\___\___| |_| \___/|_| \__,_|\___| \_/ \___|_|\___/| .__/ +// \___|_| |___/ +// ______ ______ ______ ______ ______ ______ ______ ______ | | +// |______|______|______|______|______|______|______|______| |_| +// + +#import "QCloudUploadPartCopyRequest.h" +#import +#import +#import +#import "QCloudCopyObjectResult.h" + +NS_ASSUME_NONNULL_BEGIN +@implementation QCloudUploadPartCopyRequest +- (void)dealloc { +} +- (instancetype)init { + self = [super init]; + if (!self) { + return nil; + } + return self; +} +- (void)configureReuqestSerializer:(QCloudRequestSerializer *)requestSerializer responseSerializer:(QCloudResponseSerializer *)responseSerializer { + NSArray *customRequestSerilizers = @[ + QCloudURLFuseURIMethodASURLParamters, + QCloudURLFuseWithURLEncodeParamters, + ]; + + NSArray *responseSerializers = @[ + QCloudAcceptRespnseCodeBlock([NSSet setWithObjects:@(200), @(201), @(202), @(203), @(204), @(205), @(206), @(207), @(208), @(226), nil], nil), + QCloudResponseXMLSerializerBlock, + + QCloudResponseAppendHeadersSerializerBlock, + + QCloudResponseObjectSerilizerBlock([QCloudCopyObjectResult class]) + ]; + [requestSerializer setSerializerBlocks:customRequestSerilizers]; + [responseSerializer setSerializerBlocks:responseSerializers]; + + requestSerializer.HTTPMethod = @"PUT"; +} + +- (BOOL)buildRequestData:(NSError *__autoreleasing *)error { + if (![super buildRequestData:error]) { + return NO; + } + if (!self.bucket || ([self.bucket isKindOfClass:NSString.class] && ((NSString *)self.bucket).length == 0)) { + if (error != NULL) { + *error = [NSError + qcloud_errorWithCode:QCloudNetworkErrorCodeParamterInvalid + message:[NSString stringWithFormat: + @"InvalidArgument:paramter[bucket] is invalid (nil), it must have some value. please check it"]]; + return NO; + } + } + NSURL *__serverURL = [self.runOnService.configuration.endpoint serverURLWithBucket:self.bucket + appID:self.runOnService.configuration.appID + regionName:self.regionName]; + self.requestData.serverURL = __serverURL.absoluteString; + [self.requestData setValue:__serverURL.host forHTTPHeaderField:@"Host"]; + if (!self.object || ([self.object isKindOfClass:NSString.class] && ((NSString *)self.object).length == 0)) { + if (error != NULL) { + *error = [NSError + qcloud_errorWithCode:QCloudNetworkErrorCodeParamterInvalid + message:[NSString stringWithFormat: + @"InvalidArgument:paramter[object] is invalid (nil), it must have some value. please check it"]]; + return NO; + } + } + [self.requestData setParameter:self.uploadID withKey:@"UploadId"]; + [self.requestData setNumberParamter:@(self.partNumber) withKey:@"partNumber"]; + if (!self.source || ([self.source isKindOfClass:NSString.class] && ((NSString *)self.source).length == 0)) { + if (error != NULL) { + *error = [NSError + qcloud_errorWithCode:QCloudNetworkErrorCodeParamterInvalid + message:[NSString stringWithFormat: + @"InvalidArgument:paramter[source] is invalid (nil), it must have some value. please check it"]]; + return NO; + } + } + if (self.source) { + [self.requestData setValue:self.source forHTTPHeaderField:@"x-cos-copy-source"]; + } + if (self.sourceRange) { + [self.requestData setValue:self.sourceRange forHTTPHeaderField:@"x-cos-copy-source-range"]; + } + if (self.sourceIfModifiedSince) { + [self.requestData setValue:self.sourceIfModifiedSince forHTTPHeaderField:@"x-cos-copy-source-If-Modified-Since"]; + } + if (self.sourceIfUnmodifiedSince) { + [self.requestData setValue:self.sourceIfUnmodifiedSince forHTTPHeaderField:@"x-cos-copy-source-If-Unmodified-Since"]; + } + if (self.sourceIfMatch) { + [self.requestData setValue:self.sourceIfMatch forHTTPHeaderField:@"x-cos-copy-source-If-Match"]; + } + if (self.sourceIfNoneMatch) { + [self.requestData setValue:self.sourceIfNoneMatch forHTTPHeaderField:@"x-cos-copy-source-If-None-Match"]; + } + if (self.versionID) { + [self.requestData setValue:self.versionID forHTTPHeaderField:@"x-cos-version-id"]; + } + NSMutableArray *__pathComponents = [NSMutableArray arrayWithArray:self.requestData.URIComponents]; + if (self.object) + [__pathComponents addObject:self.object]; + self.requestData.URIComponents = __pathComponents; + for (NSString *key in self.customHeaders.allKeys.copy) { + [self.requestData setValue:self.customHeaders[key] forHTTPHeaderField:key]; + } + return YES; +} +- (void)setFinishBlock:(void (^_Nullable)(QCloudCopyObjectResult *_Nullable result, NSError *_Nullable error))QCloudRequestFinishBlock { + [super setFinishBlock:QCloudRequestFinishBlock]; +} + +- (QCloudSignatureFields *)signatureFields { + QCloudSignatureFields *fileds = [QCloudSignatureFields new]; + + return fileds; +} + +- (NSArray *)scopesArray { + NSMutableArray *array = [NSMutableArray array]; + NSMutableDictionary *dic = [NSMutableDictionary new]; + NSArray *tmpstrsArr = [self.source componentsSeparatedByString:@"/"]; + NSString *path = @""; + for (int i = 1; i < tmpstrsArr.count; i++) { + if (i == tmpstrsArr.count - 1) { + path = [path stringByAppendingString:tmpstrsArr[i]]; + } else { + path = [path stringByAppendingString:tmpstrsArr[i]]; + path = [path stringByAppendingString:@"/"]; + } + } + NSArray *hostsArray = [tmpstrsArr[0] componentsSeparatedByString:@"."]; + dic[@"bucket"] = hostsArray[0]; + dic[@"region"] = hostsArray[2]; + dic[@"prefix"] = path; + dic[@"action"] = @"name/cos:GetObject"; + [array addObject:dic]; + + [array addObject:[self getScopeWithAction:@"name/cos:InitiateMultipartUpload"]]; + [array addObject:[self getScopeWithAction:@"name/cos:ListParts"]]; + [array addObject:[self getScopeWithAction:@"name/cos:PutObject"]]; + [array addObject:[self getScopeWithAction:@"name/cos:CompleteMultipartUpload"]]; + [array addObject:[self getScopeWithAction:@"name/cos:AbortMultipartUpload"]]; + + return [array copy]; +} +- (NSMutableDictionary *)getScopeWithAction:(NSString *)action { + NSMutableDictionary *dic = [NSMutableDictionary dictionary]; + NSArray *separatetmpArray = [self.requestData.serverURL componentsSeparatedByString:@"://"]; + NSString *str = separatetmpArray[1]; + NSArray *separateArray = [str componentsSeparatedByString:@"."]; + dic[@"bucket"] = separateArray[0]; + dic[@"region"] = self.runOnService.configuration.endpoint.regionName; + dic[@"prefix"] = self.object; + dic[@"action"] = action; + return dic; +} + +@end +NS_ASSUME_NONNULL_END diff --git a/Pods/QCloudCOSXML/QCloudCOSXML/Classes/Transfer/request/QCloudUploadPartRequest+Custom.h b/Pods/QCloudCOSXML/QCloudCOSXML/Classes/Transfer/request/QCloudUploadPartRequest+Custom.h new file mode 100644 index 0000000..836cbdb --- /dev/null +++ b/Pods/QCloudCOSXML/QCloudCOSXML/Classes/Transfer/request/QCloudUploadPartRequest+Custom.h @@ -0,0 +1,36 @@ +// +// QCloudUploadPartService.h +// QCloudUploadPartService +// +// Created by tencent +// +// +// ██████╗ ██████╗██╗ ██████╗ ██╗ ██╗██████╗ ████████╗███████╗██████╗ ███╗ ███╗██╗███╗ ██╗ █████╗ ██╗ ██╗ █████╗ +// ██████╗ +// ██╔═══██╗██╔════╝██║ ██╔═══██╗██║ ██║██╔══██╗ ╚══██╔══╝██╔════╝██╔══██╗████╗ ████║██║████╗ ██║██╔══██╗██║ ██║ ██╔══██╗██╔══██╗ +// ██║ ██║██║ ██║ ██║ ██║██║ ██║██║ ██║ ██║ █████╗ ██████╔╝██╔████╔██║██║██╔██╗ ██║███████║██║ ██║ ███████║██████╔╝ +// ██║▄▄ ██║██║ ██║ ██║ ██║██║ ██║██║ ██║ ██║ ██╔══╝ ██╔══██╗██║╚██╔╝██║██║██║╚██╗██║██╔══██║██║ ██║ ██╔══██║██╔══██╗ +// ╚██████╔╝╚██████╗███████╗╚██████╔╝╚██████╔╝██████╔╝ ██║ ███████╗██║ ██║██║ ╚═╝ ██║██║██║ ╚████║██║ ██║███████╗ ███████╗██║ +// ██║██████╔╝ +// ╚══▀▀═╝ ╚═════╝╚══════╝ ╚═════╝ ╚═════╝ ╚═════╝ ╚═╝ ╚══════╝╚═╝ ╚═╝╚═╝ ╚═╝╚═╝╚═╝ ╚═══╝╚═╝ ╚═╝╚══════╝ ╚══════╝╚═╝ ╚═╝╚═════╝ +// +// +// _ __ _ _ +// (_) / _| | | | | +// ___ ___ _ ____ ___ ___ ___ | |_ ___ _ __ __| | _____ _____| | ___ _ __ ___ _ +// __ ___ +// / __|/ _ \ '__\ \ / / |/ __/ _ \ | _/ _ \| '__| / _` |/ _ \ \ / / _ \ |/ _ \| '_ \ / _ \ +// '__/ __| +// \__ \ __/ | \ V /| | (_| __/ | || (_) | | | (_| | __/\ V / __/ | (_) | |_) | __/ +// | \__ +// |___/\___|_| \_/ |_|\___\___| |_| \___/|_| \__,_|\___| \_/ \___|_|\___/| .__/ +// \___|_| |___/ +// ______ ______ ______ ______ ______ ______ ______ ______ | | +// |______|______|______|______|______|______|______|______| |_| +// + +#import +#import "QCloudUploadPartRequest.h" +@interface QCloudUploadPartRequest (Custom) +- (BOOL)customBuildRequestData:(NSError *__autoreleasing *)error; +@end diff --git a/Pods/QCloudCOSXML/QCloudCOSXML/Classes/Transfer/request/QCloudUploadPartRequest+Custom.m b/Pods/QCloudCOSXML/QCloudCOSXML/Classes/Transfer/request/QCloudUploadPartRequest+Custom.m new file mode 100644 index 0000000..dfb2257 --- /dev/null +++ b/Pods/QCloudCOSXML/QCloudCOSXML/Classes/Transfer/request/QCloudUploadPartRequest+Custom.m @@ -0,0 +1,41 @@ +// +// UploadPart.m +// UploadPart +// +// Created by tencent +// Copyright (c) 2015年 tencent. All rights reserved. +// +// ██████╗ ██████╗██╗ ██████╗ ██╗ ██╗██████╗ ████████╗███████╗██████╗ ███╗ ███╗██╗███╗ ██╗ █████╗ ██╗ ██╗ █████╗ +// ██████╗ +// ██╔═══██╗██╔════╝██║ ██╔═══██╗██║ ██║██╔══██╗ ╚══██╔══╝██╔════╝██╔══██╗████╗ ████║██║████╗ ██║██╔══██╗██║ ██║ ██╔══██╗██╔══██╗ +// ██║ ██║██║ ██║ ██║ ██║██║ ██║██║ ██║ ██║ █████╗ ██████╔╝██╔████╔██║██║██╔██╗ ██║███████║██║ ██║ ███████║██████╔╝ +// ██║▄▄ ██║██║ ██║ ██║ ██║██║ ██║██║ ██║ ██║ ██╔══╝ ██╔══██╗██║╚██╔╝██║██║██║╚██╗██║██╔══██║██║ ██║ ██╔══██║██╔══██╗ +// ╚██████╔╝╚██████╗███████╗╚██████╔╝╚██████╔╝██████╔╝ ██║ ███████╗██║ ██║██║ ╚═╝ ██║██║██║ ╚████║██║ ██║███████╗ ███████╗██║ +// ██║██████╔╝ +// ╚══▀▀═╝ ╚═════╝╚══════╝ ╚═════╝ ╚═════╝ ╚═════╝ ╚═╝ ╚══════╝╚═╝ ╚═╝╚═╝ ╚═╝╚═╝╚═╝ ╚═══╝╚═╝ ╚═╝╚══════╝ ╚══════╝╚═╝ ╚═╝╚═════╝ +// +// +// _ __ _ _ +// (_) / _| | | | | +// ___ ___ _ ____ ___ ___ ___ | |_ ___ _ __ __| | _____ _____| | ___ _ __ ___ _ +// __ ___ +// / __|/ _ \ '__\ \ / / |/ __/ _ \ | _/ _ \| '__| / _` |/ _ \ \ / / _ \ |/ _ \| '_ \ / _ \ +// '__/ __| +// \__ \ __/ | \ V /| | (_| __/ | || (_) | | | (_| | __/\ V / __/ | (_) | |_) | __/ +// | \__ +// |___/\___|_| \_/ |_|\___\___| |_| \___/|_| \__,_|\___| \_/ \___|_|\___/| .__/ +// \___|_| |___/ +// ______ ______ ______ ______ ______ ______ ______ ______ | | +// |______|______|______|______|______|______|______|______| |_| +// + +#import "QCloudUploadPartRequest+Custom.h" + +@implementation QCloudUploadPartRequest (Custom) +- (BOOL)customBuildRequestData:(NSError *__autoreleasing *)error { + if (![super customBuildRequestData:error]) { + return NO; + } + return YES; +} +@end diff --git a/Pods/QCloudCOSXML/QCloudCOSXML/Classes/Transfer/request/QCloudUploadPartRequest.h b/Pods/QCloudCOSXML/QCloudCOSXML/Classes/Transfer/request/QCloudUploadPartRequest.h new file mode 100644 index 0000000..b96bf77 --- /dev/null +++ b/Pods/QCloudCOSXML/QCloudCOSXML/Classes/Transfer/request/QCloudUploadPartRequest.h @@ -0,0 +1,105 @@ +// +// UploadPart.h +// UploadPart +// +// Created by tencent +// Copyright (c) 2015年 tencent. All rights reserved. +// +// ██████╗ ██████╗██╗ ██████╗ ██╗ ██╗██████╗ ████████╗███████╗██████╗ ███╗ ███╗██╗███╗ ██╗ █████╗ ██╗ ██╗ █████╗ +// ██████╗ +// ██╔═══██╗██╔════╝██║ ██╔═══██╗██║ ██║██╔══██╗ ╚══██╔══╝██╔════╝██╔══██╗████╗ ████║██║████╗ ██║██╔══██╗██║ ██║ ██╔══██╗██╔══██╗ +// ██║ ██║██║ ██║ ██║ ██║██║ ██║██║ ██║ ██║ █████╗ ██████╔╝██╔████╔██║██║██╔██╗ ██║███████║██║ ██║ ███████║██████╔╝ +// ██║▄▄ ██║██║ ██║ ██║ ██║██║ ██║██║ ██║ ██║ ██╔══╝ ██╔══██╗██║╚██╔╝██║██║██║╚██╗██║██╔══██║██║ ██║ ██╔══██║██╔══██╗ +// ╚██████╔╝╚██████╗███████╗╚██████╔╝╚██████╔╝██████╔╝ ██║ ███████╗██║ ██║██║ ╚═╝ ██║██║██║ ╚████║██║ ██║███████╗ ███████╗██║ +// ██║██████╔╝ +// ╚══▀▀═╝ ╚═════╝╚══════╝ ╚═════╝ ╚═════╝ ╚═════╝ ╚═╝ ╚══════╝╚═╝ ╚═╝╚═╝ ╚═╝╚═╝╚═╝ ╚═══╝╚═╝ ╚═╝╚══════╝ ╚══════╝╚═╝ ╚═╝╚═════╝ +// +// +// _ __ _ _ +// (_) / _| | | | | +// ___ ___ _ ____ ___ ___ ___ | |_ ___ _ __ __| | _____ _____| | ___ _ __ ___ _ +// __ ___ +// / __|/ _ \ '__\ \ / / |/ __/ _ \ | _/ _ \| '__| / _` |/ _ \ \ / / _ \ |/ _ \| '_ \ / _ \ +// '__/ __| +// \__ \ __/ | \ V /| | (_| __/ | || (_) | | | (_| | __/\ V / __/ | (_) | |_) | __/ +// | \__ +// |___/\___|_| \_/ |_|\___\___| |_| \___/|_| \__,_|\___| \_/ \___|_|\___/| .__/ +// \___|_| |___/ +// ______ ______ ______ ______ ______ ______ ______ ______ | | +// |______|______|______|______|______|______|______|______| |_| +// + +#import +#import +#import "QCloudUploadPartResult.h" +NS_ASSUME_NONNULL_BEGIN +/** + + 分块上传文件的方法。 + + ### 功能描述 + + Upload Part 接口请求实现将对象按照分块的方式上传到 COS。最多支持10000分块,每个分块大小为1MB - 5GB,最后一个分块可以小于1MB。 + + 关于分块上传文件的接口的描述,请查看 https://cloud.tencent.com/document/product/436/7750. + + ### 示例 + + @code + + QCloudUploadPartRequest* request = [QCloudUploadPartRequest new]; + request.bucket = @"examplebucket-1250000000"; + request.object = @"exampleobject"; + request.partNumber = 1; + //标识本次分块上传的 ID;使用 Initiate Multipart Upload 接口初始化分块上传时会得到一个 uploadId + //该 ID 不但唯一标识这一分块数据,也标识了这分块数据在整个文件内的相对位置 + request.uploadId = @"exampleUploadId"; + //上传的数据:支持 NSData*,NSURL(本地 URL) 和 QCloudFileOffsetBody * 三种类型 + request.body = [@"testFileContent" dataUsingEncoding:NSUTF8StringEncoding]; + + [request setSendProcessBlock:^(int64_t bytesSent, + int64_t totalBytesSent, + int64_t totalBytesExpectedToSend) { + //上传进度信息 + }]; + [request setFinishBlock:^(QCloudUploadPartResult* outputObject, NSError *error) { + QCloudMultipartInfo *part = [QCloudMultipartInfo new]; + //获取所上传分块的 etag + part.eTag = outputObject.eTag; + part.partNumber = @"1"; + // 保存起来用于最好完成上传时使用 + self.parts = @[part]; + }]; + + [[QCloudCOSXMLService defaultCOSXML] UploadPart:request]; + +*/ +@interface QCloudUploadPartRequest : QCloudBizHTTPRequest +@property (nonatomic, strong) BodyType body; +/** +对象的名称 +*/ +@property (strong, nonatomic) NSString *object; +/** +存储桶名 +*/ +@property (strong, nonatomic) NSString *bucket; +/** +标识本次分块上传的编号 +*/ +@property (assign, nonatomic) int partNumber; +/** +标识本次分块上传的 ID; +使用 Initiate Multipart Upload 接口初始化分片上传时会得到一个 uploadId, + 该 ID 不但唯一标识这一分块数据,也标识了这分块数据在整个文件内的相对位置 +*/ +@property (strong, nonatomic) NSString *uploadId; +@property (strong, nonatomic) NSString *contentSHA1; +@property (strong, nonatomic) NSString *expect; + +//针对本次上传进行流量控制的限速值,必须为数字,单位默认为 bit/s。限速值设置范围为819200 - 838860800,即100KB/s - 100MB/s,如果超出该范围将返回400错误 +@property (nonatomic, assign) NSInteger trafficLimit; + +- (void)setFinishBlock:(void (^_Nullable)(QCloudUploadPartResult *_Nullable result, NSError *_Nullable error))QCloudRequestFinishBlock; +@end +NS_ASSUME_NONNULL_END diff --git a/Pods/QCloudCOSXML/QCloudCOSXML/Classes/Transfer/request/QCloudUploadPartRequest.m b/Pods/QCloudCOSXML/QCloudCOSXML/Classes/Transfer/request/QCloudUploadPartRequest.m new file mode 100644 index 0000000..0a039c4 --- /dev/null +++ b/Pods/QCloudCOSXML/QCloudCOSXML/Classes/Transfer/request/QCloudUploadPartRequest.m @@ -0,0 +1,160 @@ +// +// UploadPart.m +// UploadPart +// +// Created by tencent +// Copyright (c) 2015年 tencent. All rights reserved. +// +// ██████╗ ██████╗██╗ ██████╗ ██╗ ██╗██████╗ ████████╗███████╗██████╗ ███╗ ███╗██╗███╗ ██╗ █████╗ ██╗ ██╗ █████╗ +// ██████╗ +// ██╔═══██╗██╔════╝██║ ██╔═══██╗██║ ██║██╔══██╗ ╚══██╔══╝██╔════╝██╔══██╗████╗ ████║██║████╗ ██║██╔══██╗██║ ██║ ██╔══██╗██╔══██╗ +// ██║ ██║██║ ██║ ██║ ██║██║ ██║██║ ██║ ██║ █████╗ ██████╔╝██╔████╔██║██║██╔██╗ ██║███████║██║ ██║ ███████║██████╔╝ +// ██║▄▄ ██║██║ ██║ ██║ ██║██║ ██║██║ ██║ ██║ ██╔══╝ ██╔══██╗██║╚██╔╝██║██║██║╚██╗██║██╔══██║██║ ██║ ██╔══██║██╔══██╗ +// ╚██████╔╝╚██████╗███████╗╚██████╔╝╚██████╔╝██████╔╝ ██║ ███████╗██║ ██║██║ ╚═╝ ██║██║██║ ╚████║██║ ██║███████╗ ███████╗██║ +// ██║██████╔╝ +// ╚══▀▀═╝ ╚═════╝╚══════╝ ╚═════╝ ╚═════╝ ╚═════╝ ╚═╝ ╚══════╝╚═╝ ╚═╝╚═╝ ╚═╝╚═╝╚═╝ ╚═══╝╚═╝ ╚═╝╚══════╝ ╚══════╝╚═╝ ╚═╝╚═════╝ +// +// +// _ __ _ _ +// (_) / _| | | | | +// ___ ___ _ ____ ___ ___ ___ | |_ ___ _ __ __| | _____ _____| | ___ _ __ ___ _ +// __ ___ +// / __|/ _ \ '__\ \ / / |/ __/ _ \ | _/ _ \| '__| / _` |/ _ \ \ / / _ \ |/ _ \| '_ \ / _ \ +// '__/ __| +// \__ \ __/ | \ V /| | (_| __/ | || (_) | | | (_| | __/\ V / __/ | (_) | |_) | __/ +// | \__ +// |___/\___|_| \_/ |_|\___\___| |_| \___/|_| \__,_|\___| \_/ \___|_|\___/| .__/ +// \___|_| |___/ +// ______ ______ ______ ______ ______ ______ ______ ______ | | +// |______|______|______|______|______|______|______|______| |_| +// + +#import "QCloudUploadPartRequest.h" +#import +#import +#import +#import "QCloudUploadPartRequest+Custom.h" +#import "QCloudUploadPartResult.h" + +NS_ASSUME_NONNULL_BEGIN +@implementation QCloudUploadPartRequest +- (void)dealloc { +} +- (instancetype)init { + self = [super init]; + if (!self) { + return nil; + } + return self; +} +- (void)configureReuqestSerializer:(QCloudRequestSerializer *)requestSerializer responseSerializer:(QCloudResponseSerializer *)responseSerializer { + NSArray *customRequestSerilizers = @[ + QCloudURLFuseSimple, + QCloudURLFuseWithURLEncodeParamters, + QCloudURLFuseContentMD5Base64StyleHeaders, + ]; + + NSArray *responseSerializers = @[ + QCloudAcceptRespnseCodeBlock([NSSet setWithObjects:@(200), @(201), @(202), @(203), @(204), @(205), @(206), @(207), @(208), @(226), nil], nil), + + QCloudResponseAppendHeadersSerializerBlock, + + QCloudResponseObjectSerilizerBlock([QCloudUploadPartResult class]) + ]; + [requestSerializer setSerializerBlocks:customRequestSerilizers]; + [responseSerializer setSerializerBlocks:responseSerializers]; + + requestSerializer.HTTPMethod = @"put"; +} + +- (BOOL)buildRequestData:(NSError *__autoreleasing *)error { + if (![super buildRequestData:error]) { + return NO; + } + if (!self.object || ([self.object isKindOfClass:NSString.class] && ((NSString *)self.object).length == 0)) { + if (error != NULL) { + *error = [NSError + qcloud_errorWithCode:QCloudNetworkErrorCodeParamterInvalid + message:[NSString stringWithFormat: + @"InvalidArgument:paramter[object] is invalid (nil), it must have some value. please check it"]]; + return NO; + } + } + if (!self.bucket || ([self.bucket isKindOfClass:NSString.class] && ((NSString *)self.bucket).length == 0)) { + if (error != NULL) { + *error = [NSError + qcloud_errorWithCode:QCloudNetworkErrorCodeParamterInvalid + message:[NSString stringWithFormat: + @"InvalidArgument:paramter[bucket] is invalid (nil), it must have some value. please check it"]]; + return NO; + } + } + NSURL *__serverURL = [self.runOnService.configuration.endpoint serverURLWithBucket:self.bucket + appID:self.runOnService.configuration.appID + regionName:self.regionName]; + self.requestData.serverURL = __serverURL.absoluteString; + [self.requestData setValue:__serverURL.host forHTTPHeaderField:@"Host"]; + [self.requestData setNumberParamter:@(self.partNumber) withKey:@"partNumber"]; + if (!self.uploadId || ([self.uploadId isKindOfClass:NSString.class] && ((NSString *)self.uploadId).length == 0)) { + if (error != NULL) { + *error = [NSError + qcloud_errorWithCode:QCloudNetworkErrorCodeParamterInvalid + message:[NSString stringWithFormat: + @"InvalidArgument:paramter[uploadId] is invalid (nil), it must have some value. please check it"]]; + return NO; + } + } + [self.requestData setParameter:self.uploadId withKey:@"uploadId"]; + if (self.contentSHA1) { + [self.requestData setValue:self.contentSHA1 forHTTPHeaderField:@"x-cos-content-sha1"]; + } + if (self.expect) { + [self.requestData setValue:self.expect forHTTPHeaderField:@"Expect"]; + } + if (self.trafficLimit) { + [self.requestData setValue:@(self.trafficLimit).stringValue forHTTPHeaderField:@"x-cos-traffic-limit"]; + } + NSMutableArray *__pathComponents = [NSMutableArray arrayWithArray:self.requestData.URIComponents]; + if (self.object) + [__pathComponents addObject:self.object]; + self.requestData.URIComponents = __pathComponents; + if (![self customBuildRequestData:error]) + return NO; + self.requestData.directBody = self.body; + for (NSString *key in self.customHeaders.allKeys.copy) { + [self.requestData setValue:self.customHeaders[key] forHTTPHeaderField:key]; + } + return YES; +} +- (void)setFinishBlock:(void (^_Nullable)(QCloudUploadPartResult *_Nullable result, NSError *_Nullable error))QCloudRequestFinishBlock { + [super setFinishBlock:QCloudRequestFinishBlock]; +} + +- (QCloudSignatureFields *)signatureFields { + QCloudSignatureFields *fileds = [QCloudSignatureFields new]; + + return fileds; +} +- (NSArray *)scopesArray { + NSMutableArray *array = [NSMutableArray array]; + [array addObject:[self getScopeWithAction:@"name/cos:InitiateMultipartUpload"]]; + [array addObject:[self getScopeWithAction:@"name/cos:ListParts"]]; + [array addObject:[self getScopeWithAction:@"name/cos:UploadPart"]]; + [array addObject:[self getScopeWithAction:@"name/cos:CompleteMultipartUpload"]]; + [array addObject:[self getScopeWithAction:@"name/cos:AbortMultipartUpload"]]; + return [array copy]; +} +- (NSMutableDictionary *)getScopeWithAction:(NSString *)action { + NSMutableDictionary *dic = [NSMutableDictionary dictionary]; + NSArray *separatetmpArray = [self.requestData.serverURL componentsSeparatedByString:@"://"]; + NSString *str = separatetmpArray[1]; + NSArray *separateArray = [str componentsSeparatedByString:@"."]; + dic[@"bucket"] = separateArray[0]; + dic[@"region"] = self.runOnService.configuration.endpoint.regionName; + dic[@"prefix"] = self.object; + dic[@"action"] = action; + return dic; +} + +@end +NS_ASSUME_NONNULL_END diff --git a/Pods/QCloudCOSXML/README.md b/Pods/QCloudCOSXML/README.md new file mode 100644 index 0000000..75de6cb --- /dev/null +++ b/Pods/QCloudCOSXML/README.md @@ -0,0 +1,126 @@ +# 腾讯云 存储SDK for iOS + +![XCTest](https://github.com/tencentyun/qcloud-sdk-ios/workflows/XCTest/badge.svg) + +## 前言 +您可以在新建项目,配置好SDK或者在已有的项目中集成进SDK,或者先运行下Demo感受下SDK是如何运作的。下载Demo体验请前点击[Demo下载地址](https://github.com/tencentyun/qcloud-sdk-ios-samples.git)。 + +使用我们的SDK前,您需要配置好开发环境: +- Xcode 7 或更新的版本 +- 运行环境为 iOS 8 以上 + +本仓库中只包含了SDK的代码和docset格式的文档。如果需要更多的信息可以浏览腾讯云官网。具体SDK的文档在对应目录下的REAME.md中。 +## 产品列表 +当前仓库内提供的产品有: +- 基于 COS JSON API 封装的 SDK +- 基于 COS XML API 封装的 SDK + +## xcframework 支持 +提供xcframework打包脚本,可以自行打包。 +克隆本仓库到本地。 +执行以下命令: +``` +chmod +x xcframework_build.sh +source xcframework_build.sh +``` +### framework 说明: +* QCloudCore.xcframework 和 QCloudCOSXML.xcframework 为COS SDK核心组件,必须添加到项目中。 +* QCloudTrack.xcframework、COSBeaconAPI_Base.xcframework.zip、QimeiSDK.xcframework.zip 为日志上报组件,与 COS 上传下载功能无关,可选使用。 + +执行结束后,可在仓库根目录看到 xcframework文件夹。 + +## 集成SDK +您可以通过Cocoapods集成、下载源代码或者使用我们打包好的动态库来进行SDK的集成工作。在这里我们推荐您使用Cocoapods的方式来进行集成。在您的podfile中加入需要集成的库即可。 +如果需要使用基于XML封装的SDK: +``` +pod 'QCloudCOSXML' +``` +如果需要使用基于V4封装的,重构后的SDK: +``` +pod 'QCloudNewCOSV4' +``` +其他的具体的集成方式进入该SDK所在的文件夹中,查看README可以详见具体库的文档。 + +## 接口说明 + +SDK 包含的 COS 接口说明请查看官网的 [iOS 接口文档](https://cloud.tencent.com/document/product/436/11280)。 + +## 文档集成 +我们提供了docset格式的文档,在仓库的Documents目录中,或者可以从release中下载。您可以直接使用Dash来打开。也可以将文档集成到Xcode中去。 +### 集成文档到Xcode +您只需要docset格式的文档移动至 ~/Library/Developer/Shared/Documentation/DocSets文件夹中,然后重启Xcode即可将文档安装至Xcode中。安装成功后可以在Xcode的Help-Documentation and API Reference中查看。您也可以使用命令行完成这一过程 +``` + $ cd docset所在路径 +``` +``` + $ mkdir -p ~/Library/Developer/Shared/Documentation/DocSets +``` +``` + $ mv com.tencent.qcloudcosxml.ios.docset ~/Library/Developer/Shared/Documentation/DocSets +``` + +## iOS9适配 +我们的SDK是运行在HTTP上的。由于iOS9之后苹果引入App Transport Security (ATS)特性,集成SDK的APP需要一些额外的步骤来适配iOS9和以上的系统。 + +在集成SDK的APP的info.plist中需要添加如下代码: +``` +NSAppTransportSecurity + + NSExceptionDomains + + myqcloud.com + + NSIncludesSubdomains + + NSTemporaryExceptionAllowsInsecureHTTPLoads + + + + +``` + +## 日志 +默认情况下,SDK内部的日志并不会直接输出到控制台中。在Debug等情况下需要查看日志的话,可以设置对应的环境变量开启。开启的具体方式为:在Xcode左上角选择点击当前的target-Edit Scheme-在Enviriments Variables中填入QCloudLogLevel这个环境变量,如果需要输出所有debug信息,那么将值设置为6。 +![](http://picturebad-1253653367.coscd.myqcloud.com/134C210F-6682-4BDF-A801-E146263150D0.png) + +为了方便排查问题以及查看SDK日志,在app启动时会检测剪贴板字符串是否为“##qcloud-cos-log-ispct##”,如果是(不会对字符串本身进行任何操作),则会弹出日志alert,进行日志查看以及上传; +也可以手动关闭此功能 + +``` +[QCloudLogManager sharedInstance].shouldShowLog = NO; +``` + + +## 代码块 Code Snippet +为了提升用户体验和减少出错的概率,对于一些常见的接口我们提供了 XCode 中可以使用的代码块,将这些代码块集成进 XCode 以后,可以直接调用代码块来填充代码,减少重复的工作量。 + +集成方式: 将 CodeSnippets 文件夹下,所需要的代码块文件(以.codesnippet结尾)复制到以下文件夹中(可以在Finder里按 Command+Shift+G,填入路径跳转) +``` +~/Library/Developer/Xcode/UserData/CodeSnippets +``` + +集成后,重启 XCode ,并且输入快捷方式(例如 cos ),即可弹出对应的填充选项,直接填充完成该操作所需的基本代码, 按回车直接填充。 +![](http://imagebad-1253653367.cosgz.myqcloud.com/code-snippet.png ) +## License +Tencent Cloud SDK for iOS and samples are released under the MIT license. +~~~ +Copyright (c) 2017 腾讯云 + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. +~~~ diff --git a/Pods/QCloudCore/QCloudCore/Classes/Base/Bolts-Promise/QCloudThreadSafeMutableDictionary.h b/Pods/QCloudCore/QCloudCore/Classes/Base/Bolts-Promise/QCloudThreadSafeMutableDictionary.h new file mode 100644 index 0000000..bb1ad4f --- /dev/null +++ b/Pods/QCloudCore/QCloudCore/Classes/Base/Bolts-Promise/QCloudThreadSafeMutableDictionary.h @@ -0,0 +1,18 @@ +// +// QCloudThreadSafeMutableDictionary.h +// Pods +// +// Created by Dong Zhao on 2017/3/31. +// +// + +#import + +@interface QCloudThreadSafeMutableDictionary : NSObject +- (id)objectForKey:(id)aKey; +- (void)removeObjectForKey:(id)aKey; +- (void)removeObject:(id)object; +- (void)setObject:(id)anObject forKey:(id)aKey; +- (NSArray *)allKeys; +- (NSArray *)allValues; +@end diff --git a/Pods/QCloudCore/QCloudCore/Classes/Base/Bolts-Promise/QCloudThreadSafeMutableDictionary.m b/Pods/QCloudCore/QCloudCore/Classes/Base/Bolts-Promise/QCloudThreadSafeMutableDictionary.m new file mode 100644 index 0000000..065ad33 --- /dev/null +++ b/Pods/QCloudCore/QCloudCore/Classes/Base/Bolts-Promise/QCloudThreadSafeMutableDictionary.m @@ -0,0 +1,78 @@ +// +// QCloudThreadSafeMutableDictionary.m +// Pods +// +// Created by Dong Zhao on 2017/3/31. +// +// + +#import "QCloudThreadSafeMutableDictionary.h" + +@interface QCloudThreadSafeMutableDictionary () + +@property (nonatomic, strong) NSMutableDictionary *dictionary; +@property (nonatomic, strong) dispatch_queue_t dispatchQueue; + +@end + +@implementation QCloudThreadSafeMutableDictionary + +- (instancetype)init { + if (self = [super init]) { + _dictionary = [NSMutableDictionary new]; + _dispatchQueue = dispatch_queue_create("com.tencent.qcloud.safedicationary", DISPATCH_QUEUE_SERIAL); + } + + return self; +} + +- (id)objectForKey:(id)aKey { + __block id returnObject = nil; + + dispatch_sync(self.dispatchQueue, ^{ + returnObject = [self.dictionary objectForKey:aKey]; + }); + + return returnObject; +} + +- (void)removeObjectForKey:(id)aKey { + dispatch_sync(self.dispatchQueue, ^{ + [self.dictionary removeObjectForKey:aKey]; + }); +} + +- (void)setObject:(id)anObject forKey:(id)aKey { + dispatch_sync(self.dispatchQueue, ^{ + [self.dictionary setObject:anObject forKey:aKey]; + }); +} + +- (NSArray *)allKeys { + __block NSArray *allKeys = nil; + dispatch_sync(self.dispatchQueue, ^{ + allKeys = [self.dictionary allKeys]; + }); + return allKeys; +} + +- (NSArray *)allValues { + __block NSArray *allValues = nil; + dispatch_sync(self.dispatchQueue, ^{ + allValues = [self.dictionary allValues]; + }); + return allValues; +} + +- (void)removeObject:(id)object { + dispatch_sync(self.dispatchQueue, ^{ + for (NSString *key in self.dictionary) { + if (object == self.dictionary[key]) { + [self.dictionary removeObjectForKey:key]; + break; + } + } + }); +} + +@end diff --git a/Pods/QCloudCore/QCloudCore/Classes/Base/CustomLoader/QCloudCustomLoader.h b/Pods/QCloudCore/QCloudCore/Classes/Base/CustomLoader/QCloudCustomLoader.h new file mode 100644 index 0000000..9d5d750 --- /dev/null +++ b/Pods/QCloudCore/QCloudCore/Classes/Base/CustomLoader/QCloudCustomLoader.h @@ -0,0 +1,23 @@ +// +// QCloudCustomLoader.h +// Pods +// +// Created by garenwang on 2024/12/30. +// + +#import +#import "QCloudCustomSession.h" +#import "QCloudCustomLoaderTask.h" +#import "QCloudHTTPRequest.h" +NS_ASSUME_NONNULL_BEGIN + +@protocol QCloudCustomLoader + +-(QCloudCustomSession *)session; + +-(BOOL)enable:(QCloudHTTPRequest *)httpRequest; + +@end + +NS_ASSUME_NONNULL_END + diff --git a/Pods/QCloudCore/QCloudCore/Classes/Base/CustomLoader/QCloudCustomLoaderTask.h b/Pods/QCloudCore/QCloudCore/Classes/Base/CustomLoader/QCloudCustomLoaderTask.h new file mode 100644 index 0000000..c0c4d1f --- /dev/null +++ b/Pods/QCloudCore/QCloudCore/Classes/Base/CustomLoader/QCloudCustomLoaderTask.h @@ -0,0 +1,35 @@ +// +// QCloudCustomLoaderTask.h +// Pods-QCloudCOSXMLDemo +// +// Created by garenwang on 2024/12/26. +// + +#import +@class QCloudCustomSession; +NS_ASSUME_NONNULL_BEGIN + +@interface QCloudCustomLoaderTask : NSURLSessionDataTask + +@property (nullable, readwrite, copy) NSHTTPURLResponse *response; +@property (nullable, readwrite, copy) NSURLRequest *currentRequest; +@property (nullable, readwrite, copy) NSURLRequest *originalRequest; +@property (atomic, assign) int64_t countOfBytesSent; +@property (atomic, assign) int64_t countOfBytesExpectedToSend; +/// 子类实现,用于构建自定义task。 +/// - Parameters: +/// - httpRequest: SDK 构建好的 NSMutableURLRequest示例对象。 +/// - fromFile: 上传文件的本地路径,只有上传文件格式为文件路径时才有值。 +/// - session: 自定义session ,QCloudCustomSession的子类实例。 +- (instancetype)initWithHTTPRequest:(NSMutableURLRequest *)httpRequest + fromFile:(NSURL *)fromFile + session:(QCloudCustomSession *)session; + +/// 子类实现,用于开启任务。 +-(void)resume; + +/// 子类实现,用于取消当前任务。 +- (void)cancel; +@end + +NS_ASSUME_NONNULL_END diff --git a/Pods/QCloudCore/QCloudCore/Classes/Base/CustomLoader/QCloudCustomLoaderTask.m b/Pods/QCloudCore/QCloudCore/Classes/Base/CustomLoader/QCloudCustomLoaderTask.m new file mode 100644 index 0000000..ffadf4c --- /dev/null +++ b/Pods/QCloudCore/QCloudCore/Classes/Base/CustomLoader/QCloudCustomLoaderTask.m @@ -0,0 +1,37 @@ +// +// QCloudCustomLoaderTask.m +// Pods-QCloudCOSXMLDemo +// +// Created by garenwang on 2024/12/26. +// + +#import "QCloudCustomLoaderTask.h" +#import "QCloudCustomSession.h" +#import "QCloudError.h" + +@interface QCloudCustomLoaderTask () +@property (nonatomic,strong)NSMutableURLRequest * httpRequest; +@property (nonatomic,strong)QCloudCustomSession * session; +@end + +@implementation QCloudCustomLoaderTask +@synthesize response = _response; +@synthesize originalRequest = _originalRequest; +@synthesize currentRequest = _currentRequest; +@synthesize countOfBytesSent = _countOfBytesSent; +@synthesize countOfBytesExpectedToSend = _countOfBytesExpectedToSend; + + +- (instancetype)initWithHTTPRequest:(NSMutableURLRequest *)httpRequest + fromFile:(NSURL *)fromFile + session:(QCloudCustomSession *)session{ + @throw [NSException exceptionWithName:QCloudErrorDomain reason:@"请在子类中实现" userInfo:nil]; +} + +-(void)resume{ + @throw [NSException exceptionWithName:QCloudErrorDomain reason:@"请在子类中实现" userInfo:nil]; +} +- (void)cancel{ + @throw [NSException exceptionWithName:QCloudErrorDomain reason:@"请在子类中实现" userInfo:nil]; +} +@end diff --git a/Pods/QCloudCore/QCloudCore/Classes/Base/CustomLoader/QCloudCustomSession.h b/Pods/QCloudCore/QCloudCore/Classes/Base/CustomLoader/QCloudCustomSession.h new file mode 100644 index 0000000..f3d41df --- /dev/null +++ b/Pods/QCloudCore/QCloudCore/Classes/Base/CustomLoader/QCloudCustomSession.h @@ -0,0 +1,91 @@ +// +// QCloudCustomSession.h +// Pods-QCloudCOSXMLDemo +// +// Created by garenwang on 2024/12/26. +// + +#import + +@class QCloudCustomLoaderTask; +NS_ASSUME_NONNULL_BEGIN + + +@interface QCloudCustomSession : NSURLSession +@property (nonatomic, + weak)idcustomDelegate; + +/// 需要子类实现,由COS SDK 进行回调。 +/// - Parameters: +/// - request: SDK 传出来的请求实例。 +/// - fromFile: 以文件路径进行上传时的本地文件路径。 +-(QCloudCustomLoaderTask *)taskWithRequset:(NSMutableURLRequest *)request + fromFile:(NSURL *)fromFile; + + +/// 以下方法无需子类实现。供业务层调用,用于将自定义网络相应数据传给COS SDK。 +/******************************************************************************/ + +/// 处理数据任务接收到响应时的情况 +/// - Parameters: +/// - task: 自定义Task QCloudCustomLoaderTask子类 +/// - response:请求响应数据 +/// - completionHandler: 完成回调 +- (void)customTask:(QCloudCustomLoaderTask *)task didReceiveResponse:(NSURLResponse *)response + completionHandler:(void (^)(NSURLSessionResponseDisposition))completionHandler; + + +/// 监控上传任务的进度 +/// - Parameters: +/// - task: 自定义Task QCloudCustomLoaderTask子类 +/// - bytesSent: 当前发送数据 +/// - totalBytesSent: 总共发送数据 +/// - totalBytesExpectedToSend: 总共待发送数据 +- (void)customTask:(QCloudCustomLoaderTask *)task didSendBodyData:(int64_t)bytesSent + totalBytesSent:(int64_t)totalBytesSent +totalBytesExpectedToSend:(int64_t)totalBytesExpectedToSend; + + +/// 接受到数据 +/// - Parameters: +/// - task: 自定义Task QCloudCustomLoaderTask子类 +/// - data: 接受到的数据 +- (void)customTask:(QCloudCustomLoaderTask *)task didReceiveData:(NSData *)data; + + +/// 任务完成 +/// - Parameters: +/// - task: 自定义Task QCloudCustomLoaderTask子类 +/// - error: 错误信息, SDK内会根据error 中的错误信息判断是否需要重试。 +- (void)customTask:(QCloudCustomLoaderTask *)task didCompleteWithError:(NSError *)error; + + +/// 处理身份验证 +/// - Parameters: +/// - task: 自定义Task QCloudCustomLoaderTask子类 +/// - challenge: NSURLAuthenticationChallenge +/// - completionHandler: 完成回调 +- (void)customTask:(QCloudCustomLoaderTask *)task didReceiveChallenge:(NSURLAuthenticationChallenge *_Nonnull)challenge + completionHandler:(void (^_Nonnull)(NSURLSessionAuthChallengeDisposition disposition, + NSURLCredential *_Nullable credential))completionHandler; + + +/// 收集性能参数 +/// - Parameters: +/// - task: 自定义Task QCloudCustomLoaderTask子类 +/// - metrics: NSURLSessionTaskMetrics 请求性能参数 +- (void)customTask:(QCloudCustomLoaderTask *)task didFinishCollectingMetrics:(NSURLSessionTaskMetrics *)metrics API_AVAILABLE(ios(10.0)); + + +/// 处理重定向 +/// - Parameters: +/// - task: 自定义Task QCloudCustomLoaderTask子类 +/// - response: 请求响应 +/// - request: 重定向的请求 +/// - completionHandler: 完成回调 +- (void)customTask:(QCloudCustomLoaderTask *)task willPerformHTTPRedirection:(NSHTTPURLResponse *)response + newRequest:(NSURLRequest *)request + completionHandler:(void (^)(NSURLRequest * _Nullable))completionHandler; +@end + +NS_ASSUME_NONNULL_END diff --git a/Pods/QCloudCore/QCloudCore/Classes/Base/CustomLoader/QCloudCustomSession.m b/Pods/QCloudCore/QCloudCore/Classes/Base/CustomLoader/QCloudCustomSession.m new file mode 100644 index 0000000..161a336 --- /dev/null +++ b/Pods/QCloudCore/QCloudCore/Classes/Base/CustomLoader/QCloudCustomSession.m @@ -0,0 +1,67 @@ +// +// QCloudCustomSession.m +// Pods-QCloudCOSXMLDemo +// +// Created by garenwang on 2024/12/26. +// + +#import "QCloudCustomSession.h" +#import "QCloudCustomLoaderTask.h" +#import "QCloudError.h" +@implementation QCloudCustomSession + +-(QCloudCustomLoaderTask *)taskWithRequset:(NSMutableURLRequest *)request + fromFile:(NSURL *)fromFile{ + @throw [NSException exceptionWithName:QCloudErrorDomain reason:@"请在子类中实现" userInfo:nil]; +} + +- (void)customTask:(QCloudCustomLoaderTask *)task didReceiveResponse:(NSURLResponse *)response + completionHandler:(void (^)(NSURLSessionResponseDisposition))completionHandler{ + if ([self.customDelegate respondsToSelector:@selector(URLSession:dataTask:didReceiveResponse:completionHandler:)]) { + task.response = (NSHTTPURLResponse *)response; + [self.customDelegate URLSession:self dataTask:task didReceiveResponse:response completionHandler:completionHandler]; + } +} + +- (void)customTask:(QCloudCustomLoaderTask *)task didSendBodyData:(int64_t)bytesSent + totalBytesSent:(int64_t)totalBytesSent totalBytesExpectedToSend:(int64_t)totalBytesExpectedToSend{ + if ([self.customDelegate respondsToSelector:@selector(URLSession:task:didSendBodyData:totalBytesSent:totalBytesExpectedToSend:)]) { + [self.customDelegate URLSession:self task:task didSendBodyData:bytesSent totalBytesSent:totalBytesSent totalBytesExpectedToSend:totalBytesExpectedToSend]; + } +} + +- (void)customTask:(QCloudCustomLoaderTask *)task didReceiveData:(NSData *)data{ + if ([self.customDelegate respondsToSelector:@selector(URLSession:dataTask:didReceiveData:)]) { + [self.customDelegate URLSession:self dataTask:task didReceiveData:data]; + } +} + +- (void)customTask:(QCloudCustomLoaderTask *)task didCompleteWithError:(NSError *)error{ + if ([self.customDelegate respondsToSelector:@selector(URLSession:task:didCompleteWithError:)]) { + [self.customDelegate URLSession:self task:task didCompleteWithError:error]; + } +} + +- (void)customTask:(QCloudCustomLoaderTask *)task didReceiveChallenge:(NSURLAuthenticationChallenge *_Nonnull)challenge + completionHandler:(void (^_Nonnull)(NSURLSessionAuthChallengeDisposition disposition, + NSURLCredential *_Nullable credential))completionHandler{ + if ([self.customDelegate respondsToSelector:@selector(URLSession:task:didReceiveChallenge:completionHandler:)]) { + [self.customDelegate URLSession:self task:task didReceiveChallenge:challenge completionHandler:completionHandler]; + } +} + +- (void)customTask:(QCloudCustomLoaderTask *)task didFinishCollectingMetrics:(NSURLSessionTaskMetrics *)metrics API_AVAILABLE(ios(10.0)){ + if ([self.customDelegate respondsToSelector:@selector(URLSession:task:didFinishCollectingMetrics:)]) { + [self.customDelegate URLSession:self task:task didFinishCollectingMetrics:metrics]; + } +} + +- (void)customTask:(QCloudCustomLoaderTask *)task willPerformHTTPRedirection:(NSHTTPURLResponse *)response + newRequest:(NSURLRequest *)request + completionHandler:(void (^)(NSURLRequest * _Nullable))completionHandler{ + if ([self.customDelegate respondsToSelector:@selector(URLSession:task:willPerformHTTPRedirection:newRequest:completionHandler:)]) { + task.currentRequest = request; + [self.customDelegate URLSession:self task:task willPerformHTTPRedirection:response newRequest:request completionHandler:completionHandler]; + } +} +@end diff --git a/Pods/QCloudCore/QCloudCore/Classes/Base/CustomLoader/QCloudLoaderManager.h b/Pods/QCloudCore/QCloudCore/Classes/Base/CustomLoader/QCloudLoaderManager.h new file mode 100644 index 0000000..a9bddef --- /dev/null +++ b/Pods/QCloudCore/QCloudCore/Classes/Base/CustomLoader/QCloudLoaderManager.h @@ -0,0 +1,27 @@ +// +// QCloudLoaderManager.h +// Pods-QCloudCOSXMLDemo +// +// Created by garenwang on 2024/12/27. +// + +#import +#import "QCloudCustomSession.h" +#import "QCloudCustomLoader.h" +NS_ASSUME_NONNULL_BEGIN + + +@interface QCloudLoaderManager :NSObject + +@property (nonatomic,assign)BOOL enable; + +@property (atomic,strong,readonly)NSMutableArray > * loaders; + +- (void)addLoader:(id )loader; + ++ (QCloudLoaderManager *)manager; + +-(id )getAvailableLoader:(QCloudHTTPRequest *)httpRequest; +@end + +NS_ASSUME_NONNULL_END diff --git a/Pods/QCloudCore/QCloudCore/Classes/Base/CustomLoader/QCloudLoaderManager.m b/Pods/QCloudCore/QCloudCore/Classes/Base/CustomLoader/QCloudLoaderManager.m new file mode 100644 index 0000000..9325443 --- /dev/null +++ b/Pods/QCloudCore/QCloudCore/Classes/Base/CustomLoader/QCloudLoaderManager.m @@ -0,0 +1,52 @@ +// +// QCloudLoaderManager.m +// Pods-QCloudCOSXMLDemo +// +// Created by garenwang on 2024/12/27. +// + +#import "QCloudLoaderManager.h" +#import "QCloudHTTPRequest.h" +#import "QCloudHTTPSessionManager.h" +@interface QCloudLoaderManager() +@property (atomic,strong)NSMutableArray > * loaders; +@end + +@implementation QCloudLoaderManager + ++ (QCloudLoaderManager *)manager { + static QCloudLoaderManager *manager = nil; + static dispatch_once_t onceToken; + dispatch_once(&onceToken, ^{ + manager = [[QCloudLoaderManager alloc] init]; + + }); + return manager; +} + +- (instancetype)init +{ + self = [super init]; + if (self) { + self.loaders = [NSMutableArray new]; + } + return self; +} + +-(id )getAvailableLoader:(QCloudHTTPRequest *)httpRequest{ + for (int i = 0; i < self.loaders.count; i ++) { + if ([self.loaders[i] enable:httpRequest]) { + return self.loaders[i]; + } + } + return nil; +} + +-(void)addLoader:(id )loader{ + @synchronized (self) { + loader.session.customDelegate = [QCloudHTTPSessionManager shareClient]; + [self.loaders addObject:loader]; + } +} + +@end diff --git a/Pods/QCloudCore/QCloudCore/Classes/Base/DateTools/NSDate+QCloudComapre.h b/Pods/QCloudCore/QCloudCore/Classes/Base/DateTools/NSDate+QCloudComapre.h new file mode 100644 index 0000000..f0cfe40 --- /dev/null +++ b/Pods/QCloudCore/QCloudCore/Classes/Base/DateTools/NSDate+QCloudComapre.h @@ -0,0 +1,29 @@ +// +// NSDate+QCloudComapre.h +// Pods +// +// Created by Dong Zhao on 2017/4/5. +// +// + +#import + +@interface NSDate (QCloudComapre) +- (BOOL)qcloud_isEarlierThan:(NSDate *)date; +/** + * Returns a YES if receiver is later than provided comparison date, otherwise returns NO + * + * @param date NSDate - Provided date for comparison + * + * @return BOOL representing comparison result + */ +- (BOOL)qcloud_isLaterThan:(NSDate *)date; +/** + * Returns a YES if receiver is earlier than or equal to the provided comparison date, otherwise returns NO + * + * @param date NSDate - Provided date for comparison + * + * @return BOOL representing comparison result + */ +- (BOOL)qcloud_isEarlierThanOrEqualTo:(NSDate *)date; +@end diff --git a/Pods/QCloudCore/QCloudCore/Classes/Base/DateTools/NSDate+QCloudComapre.m b/Pods/QCloudCore/QCloudCore/Classes/Base/DateTools/NSDate+QCloudComapre.m new file mode 100644 index 0000000..265b34e --- /dev/null +++ b/Pods/QCloudCore/QCloudCore/Classes/Base/DateTools/NSDate+QCloudComapre.m @@ -0,0 +1,55 @@ +// +// NSDate+QCloudComapre.m +// Pods +// +// Created by Dong Zhao on 2017/4/5. +// +// + +#import "NSDate+QCloudComapre.h" + +@implementation NSDate (QCloudComapre) +#pragma mark Comparators +/** + * Returns a YES if receiver is earlier than provided comparison date, otherwise returns NO + * + * @param date NSDate - Provided date for comparison + * + * @return BOOL representing comparison result + */ +- (BOOL)qcloud_isEarlierThan:(NSDate *)date { + if (self.timeIntervalSince1970 < date.timeIntervalSince1970) { + return YES; + } + return NO; +} + +/** + * Returns a YES if receiver is later than provided comparison date, otherwise returns NO + * + * @param date NSDate - Provided date for comparison + * + * @return BOOL representing comparison result + */ +- (BOOL)qcloud_isLaterThan:(NSDate *)date { + if (self.timeIntervalSince1970 > date.timeIntervalSince1970) { + return YES; + } + return NO; +} + +/** + * Returns a YES if receiver is earlier than or equal to the provided comparison date, otherwise returns NO + * + * @param date NSDate - Provided date for comparison + * + * @return BOOL representing comparison result + */ +- (BOOL)qcloud_isEarlierThanOrEqualTo:(NSDate *)date { + if (self.timeIntervalSince1970 <= date.timeIntervalSince1970) { + return YES; + } + return NO; +} + +@end diff --git a/Pods/QCloudCore/QCloudCore/Classes/Base/FCUUID/QCloudFCUUID.h b/Pods/QCloudCore/QCloudCore/Classes/Base/FCUUID/QCloudFCUUID.h new file mode 100644 index 0000000..c65efc7 --- /dev/null +++ b/Pods/QCloudCore/QCloudCore/Classes/Base/FCUUID/QCloudFCUUID.h @@ -0,0 +1,57 @@ +// +// QCloudFCUUID.h +// +// Created by Fabio Caccamo on 26/06/14. +// Copyright © 2016 Fabio Caccamo. All rights reserved. +// + +#import + +extern NSString *const QCloudFCUUIDsOfUserDevicesDidChangeNotification; + +@interface QCloudFCUUID : NSObject { + NSMutableDictionary *_uuidForKey; + NSString *_uuidForSession; + NSString *_uuidForInstallation; + NSString *_uuidForVendor; + NSString *_uuidForDevice; + NSString *_uuidsOfUserDevices; + BOOL _uuidsOfUserDevices_iCloudAvailable; +} +/** + 每次运行应用都会变 + */ ++ (NSString *)uuid; +/** + changes each time (no persistent), but allows to keep in memory more temporary uuids + */ ++ (NSString *)uuidForKey:(id)key; +/** + 每次运行应用都会变 + */ ++ (NSString *)uuidForSession; +/** + 重新安装的时候会变 + */ ++ (NSString *)uuidForInstallation; +/** + 卸载后重装会变 + */ ++ (NSString *)uuidForVendor; +/** + 抹掉iPhone的时候才会变,适合做唯一标识 + */ ++ (NSString *)uuidForDevice; ++ (NSString *)uuidForDeviceMigratingValue:(NSString *)value commitMigration:(BOOL)commitMigration; ++ (NSString *)uuidForDeviceMigratingValueForKey:(NSString *)key commitMigration:(BOOL)commitMigration; ++ (NSString *)uuidForDeviceMigratingValueForKey:(NSString *)key service:(NSString *)service commitMigration:(BOOL)commitMigration; ++ (NSString *)uuidForDeviceMigratingValueForKey:(NSString *)key + service:(NSString *)service + accessGroup:(NSString *)accessGroup + commitMigration:(BOOL)commitMigration; ++ (NSArray *)uuidsOfUserDevices; ++ (NSArray *)uuidsOfUserDevicesExcludingCurrentDevice; + ++ (BOOL)uuidValueIsValid:(NSString *)uuidValue; + +@end diff --git a/Pods/QCloudCore/QCloudCore/Classes/Base/FCUUID/QCloudFCUUID.m b/Pods/QCloudCore/QCloudCore/Classes/Base/FCUUID/QCloudFCUUID.m new file mode 100644 index 0000000..f272286 --- /dev/null +++ b/Pods/QCloudCore/QCloudCore/Classes/Base/FCUUID/QCloudFCUUID.m @@ -0,0 +1,427 @@ +// +// QCloudFCUUID.m +// +// Created by Fabio Caccamo on 26/06/14. +// Copyright © 2016 Fabio Caccamo. All rights reserved. +// + +#import "QCloudFCUUID.h" +#import "QCloudUICKeyChainStore.h" +#if TARGET_OS_IOS +#import +#endif +@implementation QCloudFCUUID + +NSString *const QCloudFCUUIDsOfUserDevicesDidChangeNotification = @"QCloudFCUUIDsOfUserDevicesDidChangeNotification"; + +static NSString *const _uuidForInstallationKey = @"fc_uuidForInstallation"; +static NSString *const _uuidForDeviceKey = @"fc_uuidForDevice"; +static NSString *const _uuidsOfUserDevicesKey = @"fc_uuidsOfUserDevices"; +static NSString *const _uuidsOfUserDevicesToggleKey = @"fc_uuidsOfUserDevicesToggle"; + ++ (QCloudFCUUID *)sharedInstance { + static QCloudFCUUID *instance = nil; + static dispatch_once_t token; + + dispatch_once(&token, ^{ + instance = [[self alloc] init]; + }); + + return instance; +} + +- (instancetype)init { + self = [super init]; + + if (self) { + [self uuidsOfUserDevices_iCloudInit]; + } + + return self; +} + +- (NSString *)_getOrCreateValueForKey:(NSString *)key + defaultValue:(NSString *)defaultValue + userDefaults:(BOOL)userDefaults + keychain:(BOOL)keychain + service:(NSString *)service + accessGroup:(NSString *)accessGroup + synchronizable:(BOOL)synchronizable { + NSString *value = [self _getValueForKey:key userDefaults:userDefaults keychain:keychain service:service accessGroup:accessGroup]; + + if (!value) { + value = defaultValue; + } + + if (!value) { + value = [self uuid]; + } + + [self _setValue:value + forKey:key + userDefaults:userDefaults + keychain:keychain + service:service + accessGroup:accessGroup + synchronizable:synchronizable]; + + return value; +} + +- (NSString *)_getValueForKey:(NSString *)key + userDefaults:(BOOL)userDefaults + keychain:(BOOL)keychain + service:(NSString *)service + accessGroup:(NSString *)accessGroup { + NSString *value = nil; + + if (!value && keychain) { + value = [QCloudUICKeyChainStore stringForKey:key service:service accessGroup:accessGroup]; + } + + if (!value && userDefaults) { + value = [[NSUserDefaults standardUserDefaults] stringForKey:key]; + } + + return value; +} + +- (void)_setValue:(NSString *)value + forKey:(NSString *)key + userDefaults:(BOOL)userDefaults + keychain:(BOOL)keychain + service:(NSString *)service + accessGroup:(NSString *)accessGroup + synchronizable:(BOOL)synchronizable { + if (value && userDefaults) { + [[NSUserDefaults standardUserDefaults] setObject:value forKey:key]; + [[NSUserDefaults standardUserDefaults] synchronize]; + } + + if (value && keychain) { + QCloudUICKeyChainStore *keychain = [QCloudUICKeyChainStore keyChainStoreWithService:service accessGroup:accessGroup]; + [keychain setSynchronizable:synchronizable]; + [keychain setString:value forKey:key]; + } +} + +- (NSString *)uuid { + // also known as qcloud_uuid/universallyUniqueIdentifier + + CFUUIDRef uuidRef = CFUUIDCreate(NULL); + CFStringRef uuidStringRef = CFUUIDCreateString(NULL, uuidRef); + CFRelease(uuidRef); + + NSString *uuidValue = (__bridge_transfer NSString *)uuidStringRef; + uuidValue = [uuidValue lowercaseString]; + uuidValue = [uuidValue stringByReplacingOccurrencesOfString:@"-" withString:@""]; + return uuidValue; +} + +- (NSString *)uuidForKey:(id)key { + if (_uuidForKey == nil) { + _uuidForKey = [[NSMutableDictionary alloc] init]; + } + + NSString *uuidValue = [_uuidForKey objectForKey:key]; + + if (uuidValue == nil) { + uuidValue = [self uuid]; + + [_uuidForKey setObject:uuidValue forKey:key]; + } + + return uuidValue; +} + +- (NSString *)uuidForSession { + if (_uuidForSession == nil) { + _uuidForSession = [self uuid]; + } + + return _uuidForSession; +} + +- (NSString *)uuidForInstallation { + if (_uuidForInstallation == nil) { + _uuidForInstallation = [self _getOrCreateValueForKey:_uuidForInstallationKey + defaultValue:nil + userDefaults:YES + keychain:NO + service:nil + accessGroup:nil + synchronizable:NO]; + } + + return _uuidForInstallation; +} + +- (NSString *)uuidForVendor { + if (_uuidForVendor == nil) { +#if TARGET_OS_IOS + _uuidForVendor = [[[[[UIDevice currentDevice] identifierForVendor] UUIDString] lowercaseString] stringByReplacingOccurrencesOfString:@"-" + withString:@""]; + +#elif TARGET_OS_MAC + _uuidForVendor = @"0000"; +#endif + } + + return _uuidForVendor; +} + +- (void)uuidForDevice_updateWithValue:(NSString *)value { + _uuidForDevice = [NSString stringWithString:value]; + [self _setValue:_uuidForDevice forKey:_uuidForDeviceKey userDefaults:YES keychain:YES service:nil accessGroup:nil synchronizable:NO]; +} + +- (NSString *)uuidForDevice { + // also known as udid/uniqueDeviceIdentifier but this doesn't persists to system reset + + if (_uuidForDevice == nil) { + _uuidForDevice = [self _getOrCreateValueForKey:_uuidForDeviceKey + defaultValue:nil + userDefaults:YES + keychain:YES + service:nil + accessGroup:nil + synchronizable:NO]; + } + + return _uuidForDevice; +} + +- (NSString *)uuidForDeviceMigratingValue:(NSString *)value commitMigration:(BOOL)commitMigration { + if ([self uuidValueIsValid:value]) { + NSString *oldValue = [self uuidForDevice]; + NSString *newValue = [NSString stringWithString:value]; + + if ([oldValue isEqualToString:newValue]) { + return oldValue; + } + + if (commitMigration) { + [self uuidForDevice_updateWithValue:newValue]; + + NSMutableOrderedSet *uuidsOfUserDevicesSet = [[NSMutableOrderedSet alloc] initWithArray:[self uuidsOfUserDevices]]; + [uuidsOfUserDevicesSet addObject:newValue]; + [uuidsOfUserDevicesSet removeObject:oldValue]; + + [self uuidsOfUserDevices_updateWithValue:[uuidsOfUserDevicesSet array]]; + [self uuidsOfUserDevices_iCloudSync]; + + return [self uuidForDevice]; + } else { + return oldValue; + } + } else { + [NSException raise:@"Invalid qcloud_uuid to migrate" format:@"qcloud_uuid value should be a string of 32 or 36 characters."]; + + return nil; + } +} + +- (NSString *)uuidForDeviceMigratingValueForKey:(NSString *)key commitMigration:(BOOL)commitMigration { + return [self uuidForDeviceMigratingValueForKey:key service:nil accessGroup:nil commitMigration:commitMigration]; +} + +- (NSString *)uuidForDeviceMigratingValueForKey:(NSString *)key service:(NSString *)service commitMigration:(BOOL)commitMigration { + return [self uuidForDeviceMigratingValueForKey:key service:service accessGroup:nil commitMigration:commitMigration]; +} + +- (NSString *)uuidForDeviceMigratingValueForKey:(NSString *)key + service:(NSString *)service + accessGroup:(NSString *)accessGroup + commitMigration:(BOOL)commitMigration { + NSString *uuidToMigrate = [self _getValueForKey:key userDefaults:YES keychain:YES service:service accessGroup:accessGroup]; + + return [self uuidForDeviceMigratingValue:uuidToMigrate commitMigration:commitMigration]; +} + +- (void)uuidsOfUserDevices_iCloudInit { + _uuidsOfUserDevices_iCloudAvailable = NO; + + if (NSClassFromString(@"NSUbiquitousKeyValueStore")) { + NSUbiquitousKeyValueStore *iCloud = [NSUbiquitousKeyValueStore defaultStore]; + + if (iCloud) { + _uuidsOfUserDevices_iCloudAvailable = YES; + + [[NSNotificationCenter defaultCenter] addObserver:self + selector:@selector(uuidsOfUserDevices_iCloudChange:) + name:NSUbiquitousKeyValueStoreDidChangeExternallyNotification + object:nil]; + + [self uuidsOfUserDevices_iCloudSync]; + } else { + // NSLog(@"iCloud not available"); + } + } else { + // NSLog(@"iOS < 5"); + } +} + +- (void)uuidsOfUserDevices_iCloudSync { + if (_uuidsOfUserDevices_iCloudAvailable) { + NSUbiquitousKeyValueStore *iCloud = [NSUbiquitousKeyValueStore defaultStore]; + + // if keychain contains more device identifiers than icloud, maybe that icloud has been empty, so re-write these identifiers to iCloud + for (NSString *uuidOfUserDevice in [self uuidsOfUserDevices]) { + NSString *uuidOfUserDeviceAsKey = [NSString stringWithFormat:@"%@_%@", _uuidForDeviceKey, uuidOfUserDevice]; + + if (![[iCloud stringForKey:uuidOfUserDeviceAsKey] isEqualToString:uuidOfUserDevice]) { + [iCloud setString:uuidOfUserDevice forKey:uuidOfUserDeviceAsKey]; + } + } + + // toggle a boolean value to force notification on other devices, useful for debug + [iCloud setBool:![iCloud boolForKey:_uuidsOfUserDevicesToggleKey] forKey:_uuidsOfUserDevicesToggleKey]; + [iCloud synchronize]; + } +} + +- (void)uuidsOfUserDevices_iCloudChange:(NSNotification *)notification { + if (_uuidsOfUserDevices_iCloudAvailable) { + NSMutableOrderedSet *uuidsSet = [[NSMutableOrderedSet alloc] initWithArray:[self uuidsOfUserDevices]]; + NSInteger uuidsCount = [uuidsSet count]; + + NSUbiquitousKeyValueStore *iCloud = [NSUbiquitousKeyValueStore defaultStore]; + NSDictionary *iCloudDict = [iCloud dictionaryRepresentation]; + + // NSLog(@"uuidsOfUserDevicesSync: %@", iCloudDict); + + [iCloudDict enumerateKeysAndObjectsUsingBlock:^(id key, id obj, BOOL *stop) { + NSString *uuidKey = (NSString *)key; + + if ([uuidKey rangeOfString:_uuidForDeviceKey].location == 0) { + if ([obj isKindOfClass:[NSString class]]) { + NSString *uuidValue = (NSString *)obj; + + if ([uuidKey rangeOfString:uuidValue].location != NSNotFound && [self uuidValueIsValid:uuidValue]) { + // NSLog(@"qcloud_uuid: %@", uuidValue); + + [uuidsSet addObject:uuidValue]; + } else { + // NSLog(@"invalid qcloud_uuid"); + } + } + } + }]; + + if ([uuidsSet count] > uuidsCount) { + [self uuidsOfUserDevices_updateWithValue:[uuidsSet array]]; + + NSDictionary *userInfo = [NSDictionary dictionaryWithObject:[self uuidsOfUserDevices] forKey:@"uuidsOfUserDevices"]; + [[NSNotificationCenter defaultCenter] postNotificationName:QCloudFCUUIDsOfUserDevicesDidChangeNotification object:self userInfo:userInfo]; + } + } +} + +- (void)uuidsOfUserDevices_updateWithValue:(NSArray *)value { + _uuidsOfUserDevices = [value componentsJoinedByString:@"|"]; + [self _setValue:_uuidsOfUserDevices forKey:_uuidsOfUserDevicesKey userDefaults:YES keychain:YES service:nil accessGroup:nil synchronizable:YES]; +} + +- (NSArray *)uuidsOfUserDevices { + if (_uuidsOfUserDevices == nil) { + _uuidsOfUserDevices = [self _getOrCreateValueForKey:_uuidsOfUserDevicesKey + defaultValue:[self uuidForDevice] + userDefaults:YES + keychain:YES + service:nil + accessGroup:nil + synchronizable:YES]; + } + + return [_uuidsOfUserDevices componentsSeparatedByString:@"|"]; +} + +- (NSArray *)uuidsOfUserDevicesExcludingCurrentDevice { + NSMutableArray *uuids = [NSMutableArray arrayWithArray:[self uuidsOfUserDevices]]; + [uuids removeObject:[self uuidForDevice]]; + return [NSArray arrayWithArray:uuids]; +} + +- (BOOL)uuidValueIsValid:(NSString *)uuidValue { + if (uuidValue != nil) { + NSString *uuidPattern = @"^[0-9a-f]{32}|[0-9a-f]{8}-([0-9a-f]{4}-){3}[0-9a-f]{12}$"; + NSRegularExpression *uuidRegExp = [NSRegularExpression regularExpressionWithPattern:uuidPattern + options:NSRegularExpressionCaseInsensitive + error:nil]; + + NSRange uuidValueRange = NSMakeRange(0, [uuidValue length]); + NSRange uuidMatchRange = [uuidRegExp rangeOfFirstMatchInString:uuidValue options:0 range:uuidValueRange]; + NSString *uuidMatchValue; + + if (!NSEqualRanges(uuidMatchRange, NSMakeRange(NSNotFound, 0))) { + uuidMatchValue = [uuidValue substringWithRange:uuidMatchRange]; + + if ([uuidMatchValue isEqualToString:uuidValue]) { + return YES; + } else { + return NO; + } + } else { + return NO; + } + } else { + return NO; + } +} + ++ (NSString *)uuid { + return [[self sharedInstance] uuid]; +} + ++ (NSString *)uuidForKey:(id)key { + return [[self sharedInstance] uuidForKey:key]; +} + ++ (NSString *)uuidForSession { + return [[self sharedInstance] uuidForSession]; +} + ++ (NSString *)uuidForInstallation { + return [[self sharedInstance] uuidForInstallation]; +} + ++ (NSString *)uuidForVendor { + return [[self sharedInstance] uuidForVendor]; +} + ++ (NSString *)uuidForDevice { + return [[self sharedInstance] uuidForDevice]; +} + ++ (NSString *)uuidForDeviceMigratingValue:(NSString *)value commitMigration:(BOOL)commitMigration { + return [[self sharedInstance] uuidForDeviceMigratingValue:value commitMigration:commitMigration]; +} + ++ (NSString *)uuidForDeviceMigratingValueForKey:(NSString *)key commitMigration:(BOOL)commitMigration { + return [[self sharedInstance] uuidForDeviceMigratingValueForKey:key service:nil accessGroup:nil commitMigration:commitMigration]; +} + ++ (NSString *)uuidForDeviceMigratingValueForKey:(NSString *)key service:(NSString *)service commitMigration:(BOOL)commitMigration { + return [[self sharedInstance] uuidForDeviceMigratingValueForKey:key service:service accessGroup:nil commitMigration:commitMigration]; +} + ++ (NSString *)uuidForDeviceMigratingValueForKey:(NSString *)key + service:(NSString *)service + accessGroup:(NSString *)accessGroup + commitMigration:(BOOL)commitMigration { + return [[self sharedInstance] uuidForDeviceMigratingValueForKey:key service:service accessGroup:accessGroup commitMigration:commitMigration]; +} + ++ (NSArray *)uuidsOfUserDevices { + return [[self sharedInstance] uuidsOfUserDevices]; +} + ++ (NSArray *)uuidsOfUserDevicesExcludingCurrentDevice { + return [[self sharedInstance] uuidsOfUserDevicesExcludingCurrentDevice]; +} + ++ (BOOL)uuidValueIsValid:(NSString *)uuidValue { + return [[self sharedInstance] uuidValueIsValid:uuidValue]; +} + +@end diff --git a/Pods/QCloudCore/QCloudCore/Classes/Base/FCUUID/UIDevice+QCloudFCUUID.h b/Pods/QCloudCore/QCloudCore/Classes/Base/FCUUID/UIDevice+QCloudFCUUID.h new file mode 100644 index 0000000..a0fc2ca --- /dev/null +++ b/Pods/QCloudCore/QCloudCore/Classes/Base/FCUUID/UIDevice+QCloudFCUUID.h @@ -0,0 +1,17 @@ +// +// UIDevice+QCloudFCUUID.h +// +// Created by Fabio Caccamo on 19/11/15. +// Copyright © 2015 Fabio Caccamo. All rights reserved. +// + +#if TARGET_OS_IOS +#import +#import "QCloudFCUUID.h" + +@interface UIDevice (QCloudFCUUID) + +- (NSString *)qcloud_uuid; + +@end +#endif diff --git a/Pods/QCloudCore/QCloudCore/Classes/Base/FCUUID/UIDevice+QCloudFCUUID.m b/Pods/QCloudCore/QCloudCore/Classes/Base/FCUUID/UIDevice+QCloudFCUUID.m new file mode 100644 index 0000000..5706ec2 --- /dev/null +++ b/Pods/QCloudCore/QCloudCore/Classes/Base/FCUUID/UIDevice+QCloudFCUUID.m @@ -0,0 +1,17 @@ +// +// UIDevice+QCloudFCUUID.m +// +// Created by Fabio Caccamo on 19/11/15. +// Copyright © 2015 Fabio Caccamo. All rights reserved. +// +#if TARGET_OS_IOS +#import "UIDevice+QCloudFCUUID.h" + +@implementation UIDevice (QCloudFCUUID) + +- (NSString *)qcloud_uuid { + return [QCloudFCUUID uuidForDevice]; +} + +@end +#endif diff --git a/Pods/QCloudCore/QCloudCore/Classes/Base/Logger/Encryt/QCloudEncryt.h b/Pods/QCloudCore/QCloudCore/Classes/Base/Logger/Encryt/QCloudEncryt.h new file mode 100644 index 0000000..ad8e31c --- /dev/null +++ b/Pods/QCloudCore/QCloudCore/Classes/Base/Logger/Encryt/QCloudEncryt.h @@ -0,0 +1,19 @@ +// +// QCloudEncryt.h +// Pods +// +// Created by Dong Zhao on 2017/6/6. +// +// + +#import + +FOUNDATION_EXTERN NSString *QCloudEncrytNSDataMD5Base64(NSData *data); +FOUNDATION_EXPORT NSString *QCloudEncrytNSDataMD5(NSData *data); +FOUNDATION_EXTERN NSString *QCloudEncrytFileMD5Base64(NSString *filePath); +FOUNDATION_EXTERN NSString *QCloudEncrytFileMD5(NSString *filePath); +FOUNDATION_EXTERN NSString *QCloudEncrytFileOffsetMD5Base64(NSString *filePath, int64_t offset, int64_t siliceLength); +FOUNDATION_EXTERN NSString *QCloudEncrytFileOffsetMD5(NSString *filePath, int64_t offset, int64_t siliceLength); +FOUNDATION_EXTERN NSString *QCloudEncrytMD5String(NSString *originString); +FOUNDATION_EXTERN NSString *QCloudHmacSha1Encrypt(NSString *data, NSString *key); +FOUNDATION_EXTERN NSData *QCloudHmacEncrypt(NSString *data, NSString *key); diff --git a/Pods/QCloudCore/QCloudCore/Classes/Base/Logger/Encryt/QCloudEncryt.mm b/Pods/QCloudCore/QCloudCore/Classes/Base/Logger/Encryt/QCloudEncryt.mm new file mode 100644 index 0000000..68010b7 --- /dev/null +++ b/Pods/QCloudCore/QCloudCore/Classes/Base/Logger/Encryt/QCloudEncryt.mm @@ -0,0 +1,216 @@ +// +// QCloudEncryt.m +// Pods +// +// Created by Dong Zhao on 2017/6/6. +// +// + +#import "QCloudEncryt.h" +#import +#import +#import "QCloudFileUtils.h" +#import +#include +#include + +@interface NSData(MD5Related) +- (NSString*)qcloud_MD5String; +@end + +@implementation NSData(MD5Related) +- (NSString*) qcloud_MD5String { + if (!self) { + return nil; + } + const unsigned char* buf = (const unsigned char*)self.bytes; + NSMutableString* mutableString = [[NSMutableString alloc] init]; + for (int i = 0; i < self.length; i++) { + [mutableString appendFormat:@"%02lX",(NSUInteger)buf[i]]; + } + return [mutableString copy]; +} + +@end + +NSString* QCloudEncrytNSDataMD5Base64(NSData* data) +{ + if (!data) { + return nil; + } + + unsigned char result[CC_MD5_DIGEST_LENGTH]; + CC_MD5( data.bytes, (CC_LONG)data.length, result ); // This is the md5 call + NSData* md5data = [NSData dataWithBytes:result length:CC_MD5_DIGEST_LENGTH]; + return [md5data base64EncodedStringWithOptions:0]; +} + + + +NSData* _internalEncrytFileMD5(NSString* filePath) { + if (!QCloudFileExist(filePath)) { + return nil; + } + NSFileHandle *handle = [NSFileHandle fileHandleForReadingAtPath:filePath]; + if(!handle) + { + return nil; + } + + CC_MD5_CTX md5; + CC_MD5_Init(&md5); + BOOL done = NO; + static NSUInteger MD5_CHUNK = 1024*16; + while (!done) + { + @autoreleasepool { + NSData *fileData = [handle readDataOfLength:MD5_CHUNK]; + CC_MD5_Update(&md5, [fileData bytes], (CC_LONG)[fileData length]); + if([fileData length] == 0) + done = YES; + } + } + + unsigned char digest[CC_MD5_DIGEST_LENGTH]; + CC_MD5_Final(digest, &md5); + [handle closeFile]; + NSData* md5data = [NSData dataWithBytes:digest length:CC_MD5_DIGEST_LENGTH]; + return md5data; +} + +NSString* QCloudEncrytFileMD5Base64(NSString* filePath) { + NSData* md5Data = _internalEncrytFileMD5(filePath); + if (!md5Data) { + return nil; + } + return [md5Data base64EncodedStringWithOptions:0]; +} + + + +NSData* _internalEncrytNSDataMD5(NSData* data) { + if (!data) { + return nil; + } + unsigned char result[CC_MD5_DIGEST_LENGTH]; + CC_MD5( data.bytes, (CC_LONG)data.length, result ); // This is the md5 call + NSData* md5data = [NSData dataWithBytes:result length:CC_MD5_DIGEST_LENGTH]; + return md5data; +} + + NSString* QCloudEncrytNSDataMD5(NSData* data) { + NSData* md5data = _internalEncrytNSDataMD5(data); + if (!md5data) { + return nil; + } + return [md5data qcloud_MD5String]; +} + + NSString* QCloudEncrytFileMD5(NSString* filePath) { + NSData* md5data = _internalEncrytFileMD5(filePath); + return [md5data qcloud_MD5String]; +} + + +NSData* _internalEncrytFileOffsetMD5(NSString* filePath, int64_t offset , int64_t siliceLength) { + if (!QCloudFileExist(filePath)) { + return nil; + } + NSFileHandle *handle = [NSFileHandle fileHandleForReadingAtPath:filePath]; + if(!handle) + { + return nil; + } + if (QCloudFileSize(filePath) < offset+siliceLength) { + return nil; + } + [handle seekToFileOffset:offset]; + CC_MD5_CTX md5; + CC_MD5_Init(&md5); + BOOL done = NO; + + NSUInteger totalReadCount = 0; + static NSUInteger MD5_CHUNK = 1024*16; + while (!done) + { + if (totalReadCount >= siliceLength) { + break; + } + NSUInteger willReadLength = MIN(MD5_CHUNK, siliceLength-totalReadCount); + if (willReadLength == 0) { + break; + } + NSData *fileData = [handle readDataOfLength:willReadLength]; + if (fileData.length == 0) { + break; + } + totalReadCount += fileData.length; + CC_MD5_Update(&md5, [fileData bytes], (CC_LONG)[fileData length]); + } + + unsigned char digest[CC_MD5_DIGEST_LENGTH]; + CC_MD5_Final(digest, &md5); + [handle closeFile]; + NSData* md5data = [NSData dataWithBytes:digest length:CC_MD5_DIGEST_LENGTH]; + return md5data; +} + +NSString* QCloudEncrytFileOffsetMD5Base64(NSString* filePath, int64_t offset , int64_t siliceLength) { + NSData* md5Data = _internalEncrytFileOffsetMD5(filePath, offset, siliceLength); + if (!md5Data) { + return nil; + } + return [md5Data base64EncodedStringWithOptions:0]; +} + + +NSString* QCloudEncrytFileOffsetMD5(NSString* filePath, int64_t offset , int64_t siliceLength) { + NSData* md5Data = _internalEncrytFileOffsetMD5(filePath, offset, siliceLength); + if (!md5Data) { + return nil; + } + return [md5Data qcloud_MD5String]; +} + + +NSString* QCloudEncrytMD5String(NSString* originString) { + const char *cStr = [originString UTF8String]; + unsigned char result[CC_MD5_DIGEST_LENGTH]; + CC_MD5( cStr, (CC_LONG)strlen(cStr), result ); + + return [NSString stringWithFormat: + @"%02X%02X%02X%02X%02X%02X%02X%02X%02X%02X%02X%02X%02X%02X%02X%02X", + result[0], result[1], result[2], result[3], + result[4], result[5], result[6], result[7], + result[8], result[9], result[10], result[11], + result[12], result[13], result[14], result[15] + ]; +} + + +NSString* QCloudHmacSha1Encrypt(NSString *data , NSString* key) +{ + const char *cKey = [key cStringUsingEncoding:NSASCIIStringEncoding]; + const char *cData = [data cStringUsingEncoding:NSASCIIStringEncoding]; + + unsigned char cHMAC[CC_SHA1_DIGEST_LENGTH]; + + CCHmac(kCCHmacAlgSHA1, cKey, strlen(cKey), cData, strlen(cData), cHMAC); + NSData *HMACData = [[NSData alloc] initWithBytes:cHMAC + length:sizeof(cHMAC)]; + NSString *HMAC = [NSMutableString stringWithCapacity:HMACData.length * 2]; + for (int i = 0; i < HMACData.length; ++i) + HMAC = [HMAC stringByAppendingFormat:@"%02lx", (unsigned long)cHMAC[i]]; + + return HMAC; +} + +NSData* QCloudHmacEncrypt(NSString *data ,NSString *key){ + + const char *cKey = [key cStringUsingEncoding:NSASCIIStringEncoding]; + const char *cData = [data cStringUsingEncoding:NSASCIIStringEncoding]; + unsigned char cHMAC[CC_SHA1_DIGEST_LENGTH]; + CCHmac(kCCHmacAlgSHA1, cKey, strlen(cKey), cData, strlen(cData), cHMAC); + NSData *hmac = [[NSData alloc] initWithBytes:cHMAC length:sizeof(cHMAC)]; + return hmac; +} diff --git a/Pods/QCloudCore/QCloudCore/Classes/Base/Logger/QCloudCLSLoggerOutput.h b/Pods/QCloudCore/QCloudCore/Classes/Base/Logger/QCloudCLSLoggerOutput.h new file mode 100644 index 0000000..9dd99b8 --- /dev/null +++ b/Pods/QCloudCore/QCloudCore/Classes/Base/Logger/QCloudCLSLoggerOutput.h @@ -0,0 +1,22 @@ +// +// QCloudCLSLoggerOutput.h +// QCloudCore +// +// Created by garenwang on 2025/4/7. +// + +#import +NS_ASSUME_NONNULL_BEGIN + +@interface QCloudCLSLoggerOutput : QCloudLoggerOutput + +@property (nonatomic,strong,readonly)id clsService; +- (instancetype)initWithTopicId:(NSString *)topicId endpoint:(NSString *)endPoint; + +- (void)setupPermanentCredentialsSecretId:(NSString *)secretId secretKey:(NSString *)secretKey; + +- (void)setupCredentialsRefreshBlock:(QCloudCredential * _Nonnull (^)(void))refreshBlock; + +@end + +NS_ASSUME_NONNULL_END diff --git a/Pods/QCloudCore/QCloudCore/Classes/Base/Logger/QCloudCLSLoggerOutput.m b/Pods/QCloudCore/QCloudCore/Classes/Base/Logger/QCloudCLSLoggerOutput.m new file mode 100644 index 0000000..d2a878f --- /dev/null +++ b/Pods/QCloudCore/QCloudCore/Classes/Base/Logger/QCloudCLSLoggerOutput.m @@ -0,0 +1,141 @@ +// +// QCloudCLSLoggerOutput.m +// QCloudCore +// +// Created by garenwang on 2025/4/7. +// + +#import "QCloudCLSLoggerOutput.h" +#import "QCloudLogModel.h" +#import "NSDate+QCloud.h" +NSString * const QCloudTrackCosSdkLog = @"qcloud_track_cos_sdk_log"; +@interface QCloudCLSLoggerOutput () +@property (nonatomic,strong)id clsService; +@property (nonatomic, strong) dispatch_queue_t buildQueue; + +@end + + +@implementation QCloudCLSLoggerOutput +- (instancetype)initWithTopicId:(NSString *)topicId endpoint:(NSString *)endPoint { + if (self = [super init]) { + Class trackServiceClass = NSClassFromString(@"QCloudCLSTrackService"); + if (trackServiceClass) { + SEL initSelector = NSSelectorFromString(@"initWithTopicId:endpoint:"); + if ([trackServiceClass instancesRespondToSelector:initSelector]) { + _clsService = [[trackServiceClass alloc] performSelector:initSelector withObject:topicId withObject:endPoint]; + } + } + _buildQueue = dispatch_queue_create("com.tencent.qcloud.logger.cls.build", DISPATCH_QUEUE_SERIAL); + } + return self; +} + + +- (void)setupPermanentCredentialsSecretId:(NSString *)secretId secretKey:(NSString *)secretKey { // id 参数 + Class cla = NSClassFromString(@"QCloudClsSessionCredentials"); + if (!cla) { + return; + } + id credentials = [[cla alloc]init]; + // 或更安全的版本(检查属性是否存在) + SEL secretIdSelector = NSSelectorFromString(@"setSecretId:"); + if ([credentials respondsToSelector:secretIdSelector]) { + [credentials setValue:secretId forKey:@"secretId"]; + } + + SEL secretKeySelector = NSSelectorFromString(@"setSecretKey:"); + if ([credentials respondsToSelector:secretKeySelector]) { + [credentials setValue:secretKey forKey:@"secretKey"]; + } + + SEL selector = NSSelectorFromString(@"setupPermanentCredentials:"); + if ([_clsService respondsToSelector:selector]) { +#pragma clang diagnostic push +#pragma clang diagnostic ignored "-Warc-performSelector-leaks" + [_clsService performSelector:selector withObject:credentials]; +#pragma clang diagnostic pop + } +} + +- (void)setupCredentialsRefreshBlock:(QCloudCredential * _Nonnull (^)(void))refreshBlock { + dispatch_async(dispatch_get_global_queue(0, 0), ^{ + if (refreshBlock) { + SEL selector = NSSelectorFromString(@"setupCredentialsRefreshBlock:"); + if ([_clsService respondsToSelector:selector]) { + #pragma clang diagnostic push + #pragma clang diagnostic ignored "-Warc-performSelector-leaks" + [_clsService performSelector:selector withObject:^id _Nonnull{ + + QCloudCredential *credential = refreshBlock(); + if (!credential) { + return nil; + } + Class cla = NSClassFromString(@"QCloudClsSessionCredentials"); + if (!cla) { + return nil; + } + id credentials = [[cla alloc]init]; + // 或更安全的版本(检查属性是否存在) + SEL secretIdSelector = NSSelectorFromString(@"setSecretId:"); + if ([credentials respondsToSelector:secretIdSelector]) { + [credentials setValue:credential.secretID forKey:@"secretId"]; + } + + SEL secretKeySelector = NSSelectorFromString(@"setSecretKey:"); + if ([credentials respondsToSelector:secretKeySelector]) { + [credentials setValue:credential.secretKey forKey:@"secretKey"]; + } + + SEL tokenSelector = NSSelectorFromString(@"setToken:"); + if ([credentials respondsToSelector:tokenSelector]) { + [credentials setValue:credential.token forKey:@"token"]; + } + + SEL expiredTimeSelector = NSSelectorFromString(@"setExpiredTime:"); + if ([credentials respondsToSelector:expiredTimeSelector]) { + [credentials setValue:@([credential.expirationDate timeIntervalSince1970]) forKey:@"expiredTime"]; + } + + return credentials; + }]; + #pragma clang diagnostic pop + } + } + }); +} + +- (void)appendLog:(QCloudLogModel * (^)(void))logCreate { + QCloudWeakSelf(self); + dispatch_async(_buildQueue, ^{ + QCloudStrongSelf(self); + QCloudLogModel *log = logCreate(); + if (log.level <= [QCloudLogger sharedLogger].logClsLevel) { + NSMutableDictionary *params = [NSMutableDictionary new]; + params[@"level"] = [QCloudLogModel descriptionForLogLevel:log.level]?:@""; + params[@"category"] = [QCloudLogModel descriptionForLogCategory:log.category]?:@""; + params[@"timestamp"] = @([log.date timeIntervalSince1970]).stringValue?:@""; + params[@"threadName"] = log.threadName?:@""; + params[@"tag"] = log.tag?:@""; + params[@"message"] = log.message?:@""; + params[@"deviceID"] = QCloudLogger.sharedLogger.deviceID?:@""; + params[@"deviceModel"] = QCloudLogger.sharedLogger.deviceModel?:@""; + params[@"appVersion"] = QCloudLogger.sharedLogger.appVersion?:@""; + [QCloudLogger.sharedLogger.extendInfo enumerateKeysAndObjectsUsingBlock:^(id _Nonnull key, id _Nonnull obj, BOOL * _Nonnull stop) { + if (obj && key) { + [params setObject:obj forKey:key]; + } + }]; + + // 动态调用 reportWithEventCode:params: + SEL selector = NSSelectorFromString(@"reportWithEventCode:params:"); + if ([strongself.clsService respondsToSelector:selector]) { +#pragma clang diagnostic push +#pragma clang diagnostic ignored "-Warc-performSelector-leaks" + [strongself.clsService performSelector:selector withObject:QCloudTrackCosSdkLog withObject:params]; +#pragma clang diagnostic pop + } + } + }); +} +@end diff --git a/Pods/QCloudCore/QCloudCore/Classes/Base/Logger/QCloudCustomLoggerOutput.h b/Pods/QCloudCore/QCloudCore/Classes/Base/Logger/QCloudCustomLoggerOutput.h new file mode 100644 index 0000000..e02c666 --- /dev/null +++ b/Pods/QCloudCore/QCloudCore/Classes/Base/Logger/QCloudCustomLoggerOutput.h @@ -0,0 +1,16 @@ +// +// QCloudCustomLoggerOutput.h +// QCloudCore +// +// Created by garenwang on 2025/4/11. +// + +#import +NS_ASSUME_NONNULL_BEGIN + +typedef void(^QCloudCustomLoggerOutputCallBack)(QCloudLogModel * model,NSDictionary *extendInfo); +@interface QCloudCustomLoggerOutput : QCloudLoggerOutput +@property (nonatomic,strong)QCloudCustomLoggerOutputCallBack callback; +@end + +NS_ASSUME_NONNULL_END diff --git a/Pods/QCloudCore/QCloudCore/Classes/Base/Logger/QCloudCustomLoggerOutput.m b/Pods/QCloudCore/QCloudCore/Classes/Base/Logger/QCloudCustomLoggerOutput.m new file mode 100644 index 0000000..fc3f31b --- /dev/null +++ b/Pods/QCloudCore/QCloudCore/Classes/Base/Logger/QCloudCustomLoggerOutput.m @@ -0,0 +1,45 @@ +// +// QCloudCustomLoggerOutput.m +// QCloudCore +// +// Created by garenwang on 2025/4/11. +// + +#import "QCloudCustomLoggerOutput.h" + +@interface QCloudCustomLoggerOutput () +@property(strong,nonatomic)dispatch_queue_t buildQueue; +@end + +@implementation QCloudCustomLoggerOutput + +- (instancetype)init +{ + self = [super init]; + if (self) { + _buildQueue = dispatch_queue_create("com.tencent.qcloud.logger.cls.build", DISPATCH_QUEUE_SERIAL); + } + return self; +} + +- (void)appendLog:(QCloudLogModel * (^)(void))logCreate { + QCloudWeakSelf(self); + dispatch_async(_buildQueue, ^{ + QCloudStrongSelf(self); + QCloudLogModel *log = logCreate(); + NSMutableDictionary *params = QCloudLogger.sharedLogger.extendInfo?QCloudLogger.sharedLogger.extendInfo.mutableCopy:[NSMutableDictionary new]; + if (QCloudLogger.sharedLogger.deviceID) { + params[@"deviceID"] = QCloudLogger.sharedLogger.deviceID; + } + if (QCloudLogger.sharedLogger.deviceModel) { + params[@"deviceModel"] = QCloudLogger.sharedLogger.deviceModel; + } + if (QCloudLogger.sharedLogger.appVersion) { + params[@"appVersion"] = QCloudLogger.sharedLogger.appVersion; + } + if (self.callback) { + self.callback(log,params); + } + }); +} +@end diff --git a/Pods/QCloudCore/QCloudCore/Classes/Base/Logger/QCloudFileLogger.h b/Pods/QCloudCore/QCloudCore/Classes/Base/Logger/QCloudFileLogger.h new file mode 100644 index 0000000..7b134ef --- /dev/null +++ b/Pods/QCloudCore/QCloudCore/Classes/Base/Logger/QCloudFileLogger.h @@ -0,0 +1,24 @@ +// +// QCloudFileLogger.h +// Pods +// +// Created by Dong Zhao on 2017/3/15. +// +// + +#import +#import "QCloudLoggerOutput.h" +@class QCloudFileLogger; +@protocol QCloudFileLoggerDelegate +- (void)fileLoggerDidFull:(QCloudFileLogger *)logger; +@end + +@class QCloudLogModel; +@interface QCloudFileLogger : QCloudLoggerOutput +@property (nonatomic, weak) id delegate; +@property (nonatomic, strong, readonly) NSString *path; +@property (nonatomic, assign, readonly) uint64_t maxSize; +@property (nonatomic, assign, readonly) uint64_t currentSize; +@property (nonatomic, assign, readonly) BOOL isFull; +- (instancetype)initWithPath:(NSString *)path maxSize:(uint64_t)maxSize; +@end diff --git a/Pods/QCloudCore/QCloudCore/Classes/Base/Logger/QCloudFileLogger.m b/Pods/QCloudCore/QCloudCore/Classes/Base/Logger/QCloudFileLogger.m new file mode 100644 index 0000000..2ee67fe --- /dev/null +++ b/Pods/QCloudCore/QCloudCore/Classes/Base/Logger/QCloudFileLogger.m @@ -0,0 +1,188 @@ +// +// QCloudFileLogger.m +// Pods +// +// Created by Dong Zhao on 2017/3/15. +// +// + +#import "QCloudFileLogger.h" +#import "QCloudLogModel.h" +#import "QCloudFileUtils.h" +#import "QCloudLogger.h" +#import +#if TARGET_OS_IOS +#import +#endif + +#import "QCloudSDKModuleManager.h" +#import "NSObject+QCloudModel.h" +#import +@interface QCloudFileLogger () { + dispatch_source_t _timer; +} +@property (nonatomic, strong) dispatch_queue_t buildQueue; +@property (nonatomic, strong) NSFileHandle *fileHandler; +@property (nonatomic, strong) NSMutableData *sliceData; +@property (nonatomic, assign) uint64_t sliceSize; +@end + +@implementation QCloudFileLogger +@synthesize currentSize = _currentSize; +- (void)commonInit { + _buildQueue = dispatch_queue_create("com.tencent.qcloud.logger.build", DISPATCH_QUEUE_SERIAL); + // + _sliceSize = 200 * 1024; + _timer = dispatch_source_create(DISPATCH_SOURCE_TYPE_TIMER, 0, 0, _buildQueue); + dispatch_source_set_timer(_timer, DISPATCH_TIME_NOW, 10 * NSEC_PER_SEC, 0); + dispatch_source_set_event_handler(_timer, ^{ + [self writeCliceDataToFile]; + }); + _sliceData = [NSMutableData dataWithCapacity:(NSUInteger)_sliceSize]; +} +- (void)dealloc { + [self writeCliceDataToFile]; + [_fileHandler closeFile]; + dispatch_source_cancel(_timer); +} +- (instancetype)initWithPath:(NSString *)path maxSize:(uint64_t)maxSize { + self = [super init]; + if (!self) { + return self; + } + [self commonInit]; + _maxSize = maxSize; + _path = path; + _currentSize = QCloudFileSize(path); + if (!QCloudFileExist(path)) { + [[NSFileManager defaultManager] createFileAtPath:path contents:[NSData data] attributes:nil]; + NSArray *allModules = [[QCloudSDKModuleManager shareInstance] allModules]; + NSData *modulestring = [allModules qcloud_modelToJSONData]; + [_sliceData appendData:modulestring]; + } + dispatch_resume(_timer); + _fileHandler = [NSFileHandle fileHandleForWritingAtPath:path]; + [_fileHandler seekToEndOfFile]; +#if TARGET_OS_IOS + [[NSNotificationCenter defaultCenter] addObserver:self + selector:@selector(flushAllFiles) + name:UIApplicationDidReceiveMemoryWarningNotification + object:nil]; + [[NSNotificationCenter defaultCenter] addObserver:self + selector:@selector(flushAllFiles) + name:UIApplicationWillResignActiveNotification + object:nil]; + [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(flushAllFiles) name:UIApplicationWillTerminateNotification object:nil]; + [[NSNotificationCenter defaultCenter] addObserver:self + selector:@selector(flushAllFiles) + name:UIApplicationDidEnterBackgroundNotification + object:nil]; + // +#elif TARGET_OS_MAC + [[NSNotificationCenter defaultCenter] addObserver:self + selector:@selector(flushAllFiles) + name:NSApplicationWillResignActiveNotification + object:nil]; + [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(flushAllFiles) name:NSApplicationWillTerminateNotification object:nil]; + [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(flushAllFiles) name:NSApplicationWillHideNotification object:nil]; +#endif + return self; +} + +- (void)flushAllFiles { + dispatch_async(_buildQueue, ^{ + [self writeCliceDataToFile]; + }); +} + +- (void)writeCliceDataToFile { + if (_sliceData.length) { + @try { + if ([QCloudLogger sharedLogger].aesKey.length>0 && [QCloudLogger sharedLogger].aesIv.length>0) { + [self appendEncryptedLogToFile:_sliceData key:[QCloudLogger sharedLogger].aesKey iv:[QCloudLogger sharedLogger].aesIv]; + }else{ + [_fileHandler writeData:_sliceData]; + } + _sliceData = [NSMutableData dataWithCapacity:(NSUInteger)_sliceSize]; + } @catch (NSException *exception) { + NSLog(@"no space left on device"); + } + + } +} + +- (void)appendLog:(QCloudLogModel * (^)(void))logCreate { + dispatch_async(_buildQueue, ^{ + QCloudLogModel *log = logCreate(); + if (log.level <= [QCloudLogger sharedLogger].logFileLevel) { + NSString *message = [NSString stringWithFormat:@"%@\n", [log fileDescription]]; + NSData *data = [message dataUsingEncoding:NSUTF8StringEncoding]; + self->_currentSize += data.length; + [self->_sliceData appendData:data]; + // + if (self.currentSize >= self.maxSize) { + [self writeCliceDataToFile]; + if ([self.delegate respondsToSelector:@selector(fileLoggerDidFull:)]) { + [self.delegate fileLoggerDidFull:self]; + } + } else { + if (self->_sliceData.length >= self->_sliceSize) { + [self writeCliceDataToFile]; + } + } + } + }); +} + +- (BOOL)isFull { + return self.currentSize >= self.maxSize; +} + +// 加密单条日志并追加到文件 +- (BOOL)appendEncryptedLogToFile:(NSData *)messageData key:(NSData *)key iv:(NSData *)iv { + NSData *encryptedData = [self encryptData:messageData key:key iv:iv]; + if (!encryptedData) return NO; + if (_fileHandler) { + // 写入长度头(4字节大端序) + uint32_t length = (uint32_t)encryptedData.length; + uint32_t lengthBE = htonl(length); + [_fileHandler writeData:[NSData dataWithBytes:&lengthBE length:sizeof(lengthBE)]]; + + // 写入密文 + [_fileHandler writeData:encryptedData]; + return YES; + } + return NO; +} +#pragma mark - 加解密核心 +- (NSData *)encryptData:(NSData *)data key:(NSData *)key iv:(NSData *)iv{ + return [self cryptData:data operation:kCCEncrypt key:key iv:iv]; +} + +- (NSData *)cryptData:(NSData *)data operation:(CCOperation)op key:(NSData *)key iv:(NSData *)iv { + size_t bufferSize = data.length + kCCBlockSizeAES128; + void *buffer = malloc(bufferSize); + + size_t numBytesProcessed = 0; + CCCryptorStatus status = CCCrypt(op, + kCCAlgorithmAES, + kCCOptionPKCS7Padding, + key.bytes, + kCCKeySizeAES256, + iv.bytes, + data.bytes, + data.length, + buffer, + bufferSize, + &numBytesProcessed); + + if (status == kCCSuccess) { + return [NSData dataWithBytesNoCopy:buffer length:numBytesProcessed]; + }else{ + NSLog(@"警告:日志加密失败"); + } + free(buffer); + return nil; +} + +@end diff --git a/Pods/QCloudCore/QCloudCore/Classes/Base/Logger/QCloudFileZipper.h b/Pods/QCloudCore/QCloudCore/Classes/Base/Logger/QCloudFileZipper.h new file mode 100644 index 0000000..f1d73a0 --- /dev/null +++ b/Pods/QCloudCore/QCloudCore/Classes/Base/Logger/QCloudFileZipper.h @@ -0,0 +1,14 @@ +// +// QCloudFileZipper.h +// Pods +// +// Created by Dong Zhao on 2017/3/15. +// +// + +#import + +@interface QCloudFileZipper : NSObject +- (instancetype)initWithInputFilePath:(NSString *)path; +- (BOOL)outputToPath:(NSString *)path; +@end diff --git a/Pods/QCloudCore/QCloudCore/Classes/Base/Logger/QCloudFileZipper.m b/Pods/QCloudCore/QCloudCore/Classes/Base/Logger/QCloudFileZipper.m new file mode 100644 index 0000000..ae2bfae --- /dev/null +++ b/Pods/QCloudCore/QCloudCore/Classes/Base/Logger/QCloudFileZipper.m @@ -0,0 +1,28 @@ +// +// QCloudFileZipper.m +// Pods +// +// Created by Dong Zhao on 2017/3/15. +// +// + +#import "QCloudFileZipper.h" + +@interface QCloudFileZipper () +@property (nonatomic, strong) NSString *inputPath; +@end + +@implementation QCloudFileZipper +- (instancetype)initWithInputFilePath:(NSString *)path { + self = [super init]; + if (!self) { + return self; + } + _inputPath = path; + return self; +} + +- (BOOL)outputToPath:(NSString *)path { + return YES; +} +@end diff --git a/Pods/QCloudCore/QCloudCore/Classes/Base/Logger/QCloudLogModel.h b/Pods/QCloudCore/QCloudCore/Classes/Base/Logger/QCloudLogModel.h new file mode 100644 index 0000000..0584d72 --- /dev/null +++ b/Pods/QCloudCore/QCloudCore/Classes/Base/Logger/QCloudLogModel.h @@ -0,0 +1,103 @@ +// +// QCloudLogModel.h +// Pods +// +// Created by Dong Zhao on 2017/3/15. +// +// + +#import +/** + `QCloudLogLevel` enum specifies different levels of logging that could be used to limit or display more messages in logs. + */ +typedef NS_ENUM(uint8_t, QCloudLogLevel) { + /** + Log level that disables all logging. + */ + QCloudLogLevelNone = 1, + /** + Log level that if set is going to output error messages to the log. + */ + QCloudLogLevelError = 2, + /** + Log level that if set is going to output the following messages to log: + - Errors + - Warnings + */ + QCloudLogLevelWarning = 3, + /** + Log level that if set is going to output the following messages to log: + - Errors + - Warnings + - Informational messages + */ + QCloudLogLevelInfo = 4, + /** + Log level that if set is going to output the following messages to log: + - Errors + - Warnings + - Informational messages + - Debug messages + */ + + QCloudLogLevelDebug = 5, + /** + Log level that if set is going to output the following messages to log: + - Errors + - Warnings + - Informational messages + - Debug messages + - Verbose + */ + QCloudLogLevelVerbose = 6, + +}; + +typedef NS_ENUM(uint8_t, QCloudLogCategory) { + QCloudLogCategoryNone, + /** + 操作过程日志(如上传分片开始、网络请求发起) + */ + QCloudLogCategoryProcess, + /** + 操作结果日志(如上传成功、下载失败) + */ + QCloudLogCategoryResult, + /** + 网络层日志(如请求、响应、http性能) + */ + QCloudLogCategoryNetwork, + /** + 网络探测日志(如网络连接导致失败时的探测) + */ + QCloudLogCategoryProbe, + /** + 错误堆栈日志(如异常捕获) + */ + QCloudLogCategoryError, +}; + +@interface QCloudLogModel : NSObject +@property (nonatomic, assign) QCloudLogLevel level; +@property (nonatomic, strong) NSString *message; +@property (nonatomic, assign) QCloudLogCategory category; +@property (nonatomic, strong) NSString *tag; + +@property (nonatomic, strong) NSDate *date; +@property (nonatomic, strong) NSString *file; +@property (nonatomic, assign) int line; +@property (nonatomic, assign) BOOL simpleLog; +@property (nonatomic, strong) NSString *funciton; +@property (nonatomic, strong) NSString *threadName; + +/** + 生成用于写文件的Log信息 + + @return 写入文件的Log信息 + */ +- (NSString *)fileDescription; + ++ (NSString *)descriptionForLogCategory:(QCloudLogCategory)logCategory; + ++ (NSString *)descriptionForLogLevel:(QCloudLogLevel)logLevel; +@end diff --git a/Pods/QCloudCore/QCloudCore/Classes/Base/Logger/QCloudLogModel.m b/Pods/QCloudCore/QCloudCore/Classes/Base/Logger/QCloudLogModel.m new file mode 100644 index 0000000..ea12049 --- /dev/null +++ b/Pods/QCloudCore/QCloudCore/Classes/Base/Logger/QCloudLogModel.m @@ -0,0 +1,168 @@ +// +// QCloudLogModel.m +// Pods +// +// Created by Dong Zhao on 2017/3/15. +// +// + +#import "QCloudLogModel.h" +#import "NSDate+QCLOUD.h" +#import "QCloudLogger.h" +#import "NSObject+QCloudModel.h" +@implementation QCloudLogModel +///-------------------------------------- +#pragma mark - Logging Messages +///-------------------------------------- ++ (NSString *)descriptionForLogLevel:(QCloudLogLevel)logLevel { + NSString *description = nil; + switch (logLevel) { + case QCloudLogLevelNone: + break; + case QCloudLogLevelDebug: + description = @"Debug"; + break; + case QCloudLogLevelError: + description = @"Error"; + break; + case QCloudLogLevelWarning: + description = @"Warning"; + break; + case QCloudLogLevelInfo: + description = @"Info"; + break; + case QCloudLogLevelVerbose: + description = @"Verbose"; + break; + } + return description; +} + ++ (NSString *)descriptionForLogCategory:(QCloudLogCategory)logCategory { + NSString *description = nil; + switch (logCategory) { + case QCloudLogCategoryNone: + description = @""; + break; + case QCloudLogCategoryProcess: + description = @"PROCESS"; + break; + case QCloudLogCategoryResult: + description = @"RESULT"; + break; + case QCloudLogCategoryNetwork: + description = @"NETWORK"; + break; + case QCloudLogCategoryProbe: + description = @"PROBE"; + break; + case QCloudLogCategoryError: + description = @"ERROR"; + break; + } + return description; +} + +- (NSString *)debugDescription { + static BOOL willOutputColor = NO; + static dispatch_once_t onceToken; + dispatch_once(&onceToken, ^{ + char *xcodeColor = getenv("XcodeColors"); + if (xcodeColor && (strcmp(xcodeColor, "YES") == 0)) { + willOutputColor = YES; + setenv("XcodeColors", "YES", 0); + } + }); + + NSString * extInfo = @""; + if ([QCloudLogger sharedLogger].extendInfo && !self.simpleLog) { + extInfo = [NSString stringWithFormat:@",extendInfo=%@",[[QCloudLogger sharedLogger].extendInfo qcloud_modelToJSONString]]; + extInfo = [NSString stringWithFormat:@",appVersion=%@,deviceModel=%@,deviceID=%@",[QCloudLogger sharedLogger].appVersion,[QCloudLogger sharedLogger].deviceModel,[QCloudLogger sharedLogger].deviceID]; + self.message = [self.message stringByAppendingString:extInfo]; + } + + NSString *description; + if (self.simpleLog) { + description = [NSMutableString stringWithFormat:@"%@ %@[%@][%@]%@", [NSDate qcloud_stringFromDate_24:self.date],self.tag,[QCloudLogModel descriptionForLogCategory:self.category],self.threadName,self.message]; + }else if (willOutputColor) { + description = [NSMutableString stringWithFormat:@"%@%@/%@[%@][%@ %@]%@%@",[QCloudLogModel consoleLogColorWithLevel:self.level], [QCloudLogModel descriptionForLogLevel:self.level],[NSDate qcloud_stringFromDate_24:self.date],self.threadName,[QCloudLogModel descriptionForLogCategory:self.category],self.tag,[QCloudLogModel consoleLogColorWithLevel:self.level],self.message]; + + } else { + description = [NSMutableString stringWithFormat:@"%@/%@[%@][%@ %@]%@", [QCloudLogModel descriptionForLogLevel:self.level],[NSDate qcloud_stringFromDate_24:self.date],self.threadName,[QCloudLogModel descriptionForLogCategory:self.category],self.tag,self.message]; + } + return description; +} + ++ (NSString *)consoleLogColorWithLevel:(QCloudLogLevel)level { + switch (level) { + case QCloudLogLevelInfo: + return @"🔷"; + case QCloudLogLevelNone: + return @""; + case QCloudLogLevelDebug: + return @"◾️ "; + case QCloudLogLevelError: + return @"🛑"; + case QCloudLogLevelWarning: + return @"🔶"; + default: + break; + } + return @""; +} + ++ (NSString *)consoleRestLogColorWithLevel:(QCloudLogLevel)level { + switch (level) { + case QCloudLogLevelInfo: + return @"\033[fg0,0,0;\033[bg255,255,255;"; + case QCloudLogLevelNone: + return @"\033[fg0,0,0;\033[bg255,255,255;"; + case QCloudLogLevelDebug: + return @"\033[fg0,0,0;\033[bg255,255,255;"; + case QCloudLogLevelError: + return @"\033[fg0,0,0;\033[bg200,0,0;"; + case QCloudLogLevelWarning: + return @"\033[fg0,0,0;\033[bg100,100,100;"; + default: + break; + } + return @""; +} +- (NSString *)fileLogColorWithLevel:(QCloudLogLevel)level { + switch (level) { + case QCloudLogLevelInfo: + return @"\e[38;5;38;82m"; + case QCloudLogLevelNone: + return @"\e[0m"; + case QCloudLogLevelDebug: + return @"\e[30;48;5;50m"; + case QCloudLogLevelError: + return @"\e[41;41;41;256m"; + case QCloudLogLevelWarning: + return @"\e[38;5;251;203m"; + default: + break; + } + return @""; +} +- (NSString *)fileDescription { + NSString *color = [self fileLogColorWithLevel:self.level]; + NSMutableString *log = [NSMutableString new]; + [log appendString:color]; + [log appendFormat:@"[%@]", self.date]; + [log appendFormat:@"[%@]", [QCloudLogModel descriptionForLogLevel:self.level]]; + [log appendString:@"\e[0m"]; + if (self.file.length) { + [log appendFormat:@"[%@]", [self.file componentsSeparatedByString:@"/"].lastObject]; + } + if (self.funciton.length) { + [log appendFormat:@"[%@]", self.funciton]; + } + if (self.line > 0) { + [log appendFormat:@"[%d]", self.line]; + } + [log appendString:self.message]; + return log; +} + +@end diff --git a/Pods/QCloudCore/QCloudCore/Classes/Base/Logger/QCloudLogger.h b/Pods/QCloudCore/QCloudCore/Classes/Base/Logger/QCloudLogger.h new file mode 100644 index 0000000..e77a0c0 --- /dev/null +++ b/Pods/QCloudCore/QCloudCore/Classes/Base/Logger/QCloudLogger.h @@ -0,0 +1,154 @@ +// +// QCloudLogger.h +// Pods +// +// Created by Dong Zhao on 2017/3/14. +// +// + +#import +#import "QCloudLogModel.h" +#import "QCloudLoggerOutput.h" + +#define QCloudLog(level, c, t, frmt, ...) \ + [[QCloudLogger sharedLogger] logMessageWithLevel:level category:c tag:t cmd:__PRETTY_FUNCTION__ line:__LINE__ file:__FILE__ format:(frmt), ##__VA_ARGS__] + +#define QCloudLogError(frmt, ...) QCloudLog(QCloudLogLevelError, QCloudLogCategoryNone, @"", (frmt), ##__VA_ARGS__) + +#define QCloudLogWarning(frmt, ...) QCloudLog(QCloudLogLevelWarning, QCloudLogCategoryNone, @"", (frmt), ##__VA_ARGS__) + +#define QCloudLogInfo(frmt, ...) QCloudLog(QCloudLogLevelInfo, QCloudLogCategoryNone, @"", (frmt), ##__VA_ARGS__) + +#define QCloudLogDebug(frmt, ...) QCloudLog(QCloudLogLevelDebug, QCloudLogCategoryNone, @"", (frmt), ##__VA_ARGS__) + +#define QCloudLogVerbose(frmt, ...) QCloudLog(QCloudLogLevelVerbose, QCloudLogCategoryNone, @"", (frmt), ##__VA_ARGS__) + + +#define QCloudLogErrorP(tag,frmt, ...) QCloudLog(QCloudLogLevelError,QCloudLogCategoryProcess,tag, (frmt), ##__VA_ARGS__) + +#define QCloudLogWarningP(tag,frmt, ...) QCloudLog(QCloudLogLevelWarning,QCloudLogCategoryProcess,tag, (frmt), ##__VA_ARGS__) + +#define QCloudLogInfoP(tag,frmt, ...) QCloudLog(QCloudLogLevelInfo,QCloudLogCategoryProcess,tag, (frmt), ##__VA_ARGS__) + +#define QCloudLogDebugP(tag,frmt, ...) QCloudLog(QCloudLogLevelDebug,QCloudLogCategoryProcess,tag, (frmt), ##__VA_ARGS__) + +#define QCloudLogVerboseP(tag,frmt, ...) QCloudLog(QCloudLogLevelVerbose,QCloudLogCategoryProcess,tag, (frmt), ##__VA_ARGS__) + + +#define QCloudLogErrorR(tag,frmt, ...) QCloudLog(QCloudLogLevelError,QCloudLogCategoryResult,tag, (frmt), ##__VA_ARGS__) + +#define QCloudLogWarningR(tag,frmt, ...) QCloudLog(QCloudLogLevelWarning,QCloudLogCategoryResult,tag, (frmt), ##__VA_ARGS__) + +#define QCloudLogInfoR(tag,frmt, ...) QCloudLog(QCloudLogLevelInfo,QCloudLogCategoryResult,tag, (frmt), ##__VA_ARGS__) + +#define QCloudLogDebugR(tag,frmt, ...) QCloudLog(QCloudLogLevelDebug,QCloudLogCategoryResult,tag, (frmt), ##__VA_ARGS__) + +#define QCloudLogVerboseR(tag,frmt, ...) QCloudLog(QCloudLogLevelVerbose,QCloudLogCategoryResult,tag, (frmt), ##__VA_ARGS__) + + +#define QCloudLogErrorN(tag,frmt, ...) QCloudLog(QCloudLogLevelError,QCloudLogCategoryNetwork,tag, (frmt), ##__VA_ARGS__) + +#define QCloudLogWarningN(tag,frmt, ...) QCloudLog(QCloudLogLevelWarning,QCloudLogCategoryNetwork,tag, (frmt), ##__VA_ARGS__) + +#define QCloudLogInfoN(tag,frmt, ...) QCloudLog(QCloudLogLevelInfo,QCloudLogCategoryNetwork,tag, (frmt), ##__VA_ARGS__) + +#define QCloudLogDebugN(tag,frmt, ...) QCloudLog(QCloudLogLevelDebug,QCloudLogCategoryNetwork,tag, (frmt), ##__VA_ARGS__) + +#define QCloudLogVerboseN(tag,frmt, ...) QCloudLog(QCloudLogLevelVerbose,QCloudLogCategoryNetwork,tag, (frmt), ##__VA_ARGS__) + + +#define QCloudLogErrorPB(tag,frmt, ...) QCloudLog(QCloudLogLevelError,QCloudLogCategoryProbe,tag, (frmt), ##__VA_ARGS__) + +#define QCloudLogWarningPB(tag,frmt, ...) QCloudLog(QCloudLogLevelWarning,QCloudLogCategoryProbe,tag, (frmt), ##__VA_ARGS__) + +#define QCloudLogInfoPB(tag,frmt, ...) QCloudLog(QCloudLogLevelInfo,QCloudLogCategoryProbe,tag, (frmt), ##__VA_ARGS__) + +#define QCloudLogDebugPB(tag,frmt, ...) QCloudLog(QCloudLogLevelDebug,QCloudLogCategoryProbe,tag, (frmt), ##__VA_ARGS__) + +#define QCloudLogVerbosePB(tag,frmt, ...) QCloudLog(QCloudLogLevelVerbose,QCloudLogCategoryProbe,tag, (frmt), ##__VA_ARGS__) + + +#define QCloudLogErrorE(tag,frmt, ...) QCloudLog(QCloudLogLevelError,QCloudLogCategoryError,tag, (frmt), ##__VA_ARGS__) + +#define QCloudLogWarningE(tag,frmt, ...) QCloudLog(QCloudLogLevelWarning,QCloudLogCategoryError,tag, (frmt), ##__VA_ARGS__) + +#define QCloudLogInfoE(tag,frmt, ...) QCloudLog(QCloudLogLevelInfo,QCloudLogCategoryError,tag, (frmt), ##__VA_ARGS__) + +#define QCloudLogDebugE(tag,frmt, ...) QCloudLog(QCloudLogLevelDebug,QCloudLogCategoryError,tag, (frmt), ##__VA_ARGS__) + +#define QCloudLogVerboseE(tag,frmt, ...) QCloudLog(QCloudLogLevelVerbose,QCloudLogCategoryError,tag, (frmt), ##__VA_ARGS__) + + +#define QCloudLogException(exception) \ + QCloudLogError(@"",@"Caught \"%@\" with reason \"%@\"%@", exception.name, exception, \ + [exception callStackSymbols] ? [NSString stringWithFormat:@":\n%@.", [exception callStackSymbols]] : @"") + +#define QCloudLogTrance() QCloudLog(QCloudLogLevelDebug,QCloudLogCategoryNone,@"", @"%@", [NSThread callStackSymbols]) + +@interface QCloudLogger : NSObject + + +/// 日志加密Key,不指定则不加密日志。 +@property (nonatomic, strong) NSData *aesKey; + +/// 日志加密IV,不指定则不加密日志。 +@property (nonatomic, strong) NSData *aesIv; + +/// 扩展信息,用于日志上报 +@property (nonatomic, strong) NSDictionary *extendInfo; + +/// 设备ID +@property (nonatomic, strong) NSString *deviceID; + +/// 机型 +@property (nonatomic, strong) NSString *deviceModel; + +/// APP版本 +@property (nonatomic, strong) NSString *appVersion; + +/// 控制台输出的日志级别 +@property (nonatomic, assign) QCloudLogLevel logLevel; + +@property (nonatomic, assign) QCloudLogLevel logFileLevel; + +@property (nonatomic, assign) QCloudLogLevel logClsLevel; + +/// 本地日志路径 +@property (nonatomic, strong, readonly) NSString *logDirctoryPath; + +@property (nonatomic, assign) uint64_t maxStoarageSize; + +/// 日志保存天数 +@property (nonatomic, assign) float keepDays; + +///-------------------------------------- +#pragma mark - Shared Logger +///-------------------------------------- + +/** + A shared instance of `QCloudLogger` that should be used for all logging. + + @return An shared singleton instance of `QCloudLogger`. + */ ++ (instancetype)sharedLogger; + +///-------------------------------------- +#pragma mark - Logging Messages +///-------------------------------------- + +- (void)logMessageWithLevel:(QCloudLogLevel)level category:(QCloudLogCategory)category tag:(NSString *)tag cmd:(const char *)commandInfo line:(int)line file:(const char *)file format:(NSString *)format, ...; + +/** + 增加一个输出源 + + @param output 输出源 + */ +- (void)addLogger:(QCloudLoggerOutput *)output; + +/** + 删除一个输出源 + + @param output 删除一个输出源 + */ +- (void)removeLogger:(QCloudLoggerOutput *)output; +@end diff --git a/Pods/QCloudCore/QCloudCore/Classes/Base/Logger/QCloudLogger.m b/Pods/QCloudCore/QCloudCore/Classes/Base/Logger/QCloudLogger.m new file mode 100644 index 0000000..ffbb53c --- /dev/null +++ b/Pods/QCloudCore/QCloudCore/Classes/Base/Logger/QCloudLogger.m @@ -0,0 +1,274 @@ +// +// QCloudLogger.m +// Pods +// +// Created by Dong Zhao on 2017/3/14. +// +// + +#import "QCloudLogger.h" +#import "QCloudLogModel.h" +#import "QCloudFileUtils.h" +#import +#import +#import "QCloudFileLogger.h" +#import "NSDate+QCLOUD.h" +#if TARGET_OS_IOS +#import +#endif + +#define QCloudEachLogFileSize 10 * 1024 * 1024 + +@interface NSDate (QCloudEasy) + +@end + +@implementation NSDate (QCloudEasy) + +- (NSString *)qcloud_string { + time_t pubdate = [self timeIntervalSince1970]; + struct tm *cTime = localtime(&pubdate); + return [NSString stringWithFormat:@"%d-%02d-%02d-%02d-%02d-%02d", 1900 + cTime->tm_year, 1 + cTime->tm_mon, cTime->tm_mday, cTime->tm_hour, + cTime->tm_min, cTime->tm_sec]; +} + ++ (NSString *)qcloud_todayString { + time_t pubdate = [[NSDate date] timeIntervalSince1970]; + struct tm *cTime = localtime(&pubdate); + return [NSString stringWithFormat:@"%d-%02d-%02d", 1900 + cTime->tm_year, 1 + cTime->tm_mon, cTime->tm_mday]; +} + ++ (NSDate *)qcloud_dateWithString:(NSString *)str { + struct tm sometime; + const char *formatString = "%Y-%m-%d"; + (void)strptime_l([str UTF8String], formatString, &sometime, NULL); + return [NSDate dateWithTimeIntervalSince1970:mktime(&sometime)]; +} + +@end + +NSString *const kQCloudLogExtension = @"log"; +@interface QCloudLogger () +@property (nonatomic, strong) QCloudFileLogger *currentFileLogger; +@end + +@implementation QCloudLogger { + NSMutableArray *_loggerOutputs; +} + ++ (instancetype)sharedLogger { + static QCloudLogger *logger = nil; + static dispatch_once_t onceToken; + dispatch_once(&onceToken, ^{ + logger = [QCloudLogger new]; + char *level = getenv("QCloudLogLevel"); + if (NULL != level && strlen(level) > 0) { + int logLevel = atoi(level); + if (logLevel >= QCloudLogLevelNone && logLevel <= QCloudLogLevelVerbose) { + logger.logLevel = logLevel; + } else { + logger.logLevel = QCloudLogLevelVerbose; + } + } else { + logger.logLevel = QCloudLogLevelVerbose; + } + }); + logger.logFileLevel = QCloudLogLevelVerbose; + logger.logClsLevel = QCloudLogLevelVerbose; + return logger; +} + +- (NSDictionary *)extendInfo{ + if (![_extendInfo objectForKey:@"qcloud_platform"]) { + NSMutableDictionary *mextendInfo = _extendInfo?[_extendInfo mutableCopy]:[NSMutableDictionary new]; + [mextendInfo setObject:@"iOS" forKey:@"qcloud_platform"]; + _extendInfo = mextendInfo.copy; + } + return _extendInfo; +} + +-(NSMutableArray *)loggerOutputs{ + if (!_loggerOutputs) { + _loggerOutputs = [NSMutableArray new]; + _currentFileLogger = [[QCloudFileLogger alloc] initWithPath:[self avilableLogFilePath] maxSize:QCloudEachLogFileSize]; + _currentFileLogger.delegate = self; + [_loggerOutputs addObject:_currentFileLogger]; + } + return _loggerOutputs; +} + +- (instancetype)init { + self = [super init]; + if (!self) { + return self; + } + + _maxStoarageSize = 70 * 1024 * 1024; + _keepDays = 3; + // +#if TARGET_OS_IOS + [[NSNotificationCenter defaultCenter] addObserver:self + selector:@selector(tryCleanLogs) + name:UIApplicationWillResignActiveNotification + object:nil]; + [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(tryCleanLogs) name:UIApplicationWillTerminateNotification object:nil]; + [[NSNotificationCenter defaultCenter] addObserver:self + selector:@selector(tryCleanLogs) + name:UIApplicationDidEnterBackgroundNotification + object:nil]; +#elif TARGET_OS_MAC + [[NSNotificationCenter defaultCenter] addObserver:self + selector:@selector(tryCleanLogs) + name:NSApplicationWillResignActiveNotification + object:nil]; + [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(tryCleanLogs) name:NSApplicationWillTerminateNotification object:nil]; + [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(tryCleanLogs) name:NSApplicationWillHideNotification object:nil]; + +#endif + return self; +} + +- (NSArray *)allLogFiles { + NSString *logDir = self.logDirctoryPath; + NSDirectoryEnumerator *enumertor = [[NSFileManager defaultManager] enumeratorAtPath:logDir]; + NSString *file = nil; + NSMutableArray *files = [NSMutableArray new]; + while (file = [enumertor nextObject]) { + if ([file.pathExtension isEqualToString:kQCloudLogExtension]) { + [files addObject:file]; + } + } + return files; +} + +- (void)fileLoggerDidFull:(QCloudFileLogger *)logger { + if (logger != _currentFileLogger) { + return; + } + NSString *nextLogPath = [self avilableLogFilePath]; + if (_currentFileLogger.isFull) { + QCloudFileLogger *fileLogger = [[QCloudFileLogger alloc] initWithPath:nextLogPath maxSize:QCloudEachLogFileSize]; + fileLogger.delegate = self; + _currentFileLogger = fileLogger; + } +} + +- (NSString *)avilableLogFilePath { + NSArray *allLogFiles = [self allLogFiles]; + allLogFiles = [allLogFiles sortedArrayUsingComparator:^NSComparisonResult(id _Nonnull obj1, id _Nonnull obj2) { + return [obj1 compare:obj2]; + }]; + NSString *lastLog = allLogFiles.lastObject; + NSString *todayLogPrefix = [NSDate qcloud_todayString]; + NSString *readyLogName = [[NSDate date] qcloud_string]; + NSString *logName = nil; + + NSString *lastLogPath = nil; + if ([QCloudLogger sharedLogger].aesKey.length &&[QCloudLogger sharedLogger].aesKey.length) { + readyLogName = [readyLogName stringByAppendingString:@"_encrypt"]; + if (![lastLog containsString:@"encrypt"]) { + lastLog = nil; + } + }else{ + if ([lastLog containsString:@"encrypt"]) { + lastLog = nil; + } + } + if (lastLog) { + lastLogPath = QCloudPathJoin(self.logDirctoryPath, lastLog); + } + if (!lastLog) { + logName = [readyLogName stringByAppendingPathExtension:kQCloudLogExtension]; + } else { + if ([lastLog hasPrefix:todayLogPrefix]) { + if (QCloudFileSize(lastLogPath) >= QCloudEachLogFileSize) { + logName = [readyLogName stringByAppendingPathExtension:kQCloudLogExtension]; + } else { + logName = lastLog; + } + } else { + logName = [readyLogName stringByAppendingPathExtension:kQCloudLogExtension]; + } + } + return QCloudPathJoin(self.logDirctoryPath, logName); +} + +- (void)tryCleanLogs { + NSArray *allLogFiles = [self allLogFiles]; + allLogFiles = [allLogFiles sortedArrayUsingComparator:^NSComparisonResult(id _Nonnull obj1, id _Nonnull obj2) { + return [obj2 compare:obj1]; + }]; + + NSString *logDir = self.logDirctoryPath; + uint64_t totalSize = 0; + NSString *agoDateString = [[NSDate dateWithTimeIntervalSinceNow:-self.keepDays * 24 * 60 * 60] qcloud_string]; + + for (NSString *logName in allLogFiles) { + NSString *path = QCloudPathJoin(logDir, logName); + totalSize += QCloudFileSize(path); + NSString *dateString = [[logName stringByDeletingPathExtension] componentsSeparatedByString:@"_"].firstObject; + + if (totalSize > self.maxStoarageSize || [dateString compare:agoDateString] == NSOrderedAscending) { + QCloudRemoveFileByPath(path); + } + } +} + +- (NSString *)logDirctoryPath { + NSString *path = QCloudPathJoin(QCloudPathJoin(QCloudPathJoin(QCloudApplicationLibaryPath(), @"Caches"), @"qcloud"), @"logs"); + QCloudEnsurePathExist(path); + return path; +} + +- (void)logMessageWithLevel:(QCloudLogLevel)level + category:(QCloudLogCategory)category + tag:(NSString *)tag + cmd:(const char *)cmd + line:(int)line + file:(const char *)file + format:(NSString *)format, ... NS_FORMAT_FUNCTION(7, 8) { + if (level == QCloudLogLevelNone || !format) { + return; + } + va_list args; + va_start(args, format); + NSString *message = [[NSString alloc] initWithFormat:format arguments:args]; + QCloudLogModel * (^CreateLog)(void) = ^(void) { + QCloudLogModel *log = [QCloudLogModel new]; + log.message = message; + log.date = [NSDate localDate]; + log.level = level; + log.funciton = [NSString stringWithCString:cmd encoding:NSUTF8StringEncoding]; + log.file = [NSString stringWithCString:file encoding:NSUTF8StringEncoding]; + log.line = line; + log.category = category; + log.tag = tag; + if ([NSThread currentThread].name.length>0) { + log.threadName = [NSThread currentThread].name; + }else { + log.threadName = [NSThread isMainThread]?@"main thread":@"child thread"; + } + return log; + }; + if (level <= self.logLevel) { + QCloudLogModel *model = CreateLog(); + model.simpleLog = YES; + NSLog(@"%@", [model debugDescription]); + } + for (QCloudLoggerOutput *output in self.loggerOutputs) { + [output appendLog:CreateLog]; + } + va_end(args); +} + +- (void)addLogger:(QCloudLoggerOutput *)output { + if (!output) { + return; + } + [self.loggerOutputs addObject:output]; +} + +- (void)removeLogger:(QCloudLoggerOutput *)output { + [self.loggerOutputs removeObject:output]; +} +@end diff --git a/Pods/QCloudCore/QCloudCore/Classes/Base/Logger/QCloudLoggerOutput.h b/Pods/QCloudCore/QCloudCore/Classes/Base/Logger/QCloudLoggerOutput.h new file mode 100644 index 0000000..63c0686 --- /dev/null +++ b/Pods/QCloudCore/QCloudCore/Classes/Base/Logger/QCloudLoggerOutput.h @@ -0,0 +1,13 @@ +// +// QCloudLoggerOutput.h +// QCloudCore +// +// Created by Dong Zhao on 2018/5/29. +// + +#import +#import "QCloudLogModel.h" +@class QCloudLogModel; +@interface QCloudLoggerOutput : NSObject +- (void)appendLog:(QCloudLogModel * (^)(void))logCreate; +@end diff --git a/Pods/QCloudCore/QCloudCore/Classes/Base/Logger/QCloudLoggerOutput.m b/Pods/QCloudCore/QCloudCore/Classes/Base/Logger/QCloudLoggerOutput.m new file mode 100644 index 0000000..84b6546 --- /dev/null +++ b/Pods/QCloudCore/QCloudCore/Classes/Base/Logger/QCloudLoggerOutput.m @@ -0,0 +1,15 @@ +// +// QCloudLoggerOutput.m +// QCloudCore +// +// Created by Dong Zhao on 2018/5/29. +// + +#import "QCloudLoggerOutput.h" +#import "QCloudLogger.h" +@implementation QCloudLoggerOutput + +- (void)appendLog:(QCloudLogModel * (^)(void))logCreate { + [NSException exceptionWithName:@"com.qcloud.logger" reason:@"You must implementation this method in subclass of QCloudLoggerOutput" userInfo:nil]; +} +@end diff --git a/Pods/QCloudCore/QCloudCore/Classes/Base/ObjectFack/QCloudMultiDelegateProxy.h b/Pods/QCloudCore/QCloudCore/Classes/Base/ObjectFack/QCloudMultiDelegateProxy.h new file mode 100644 index 0000000..296442d --- /dev/null +++ b/Pods/QCloudCore/QCloudCore/Classes/Base/ObjectFack/QCloudMultiDelegateProxy.h @@ -0,0 +1,28 @@ +// +// QCloudMultiDelegateProxy.h +// TACAuthorization +// +// Created by Dong Zhao on 2017/12/11. +// + +#import + +/** + 解决delegate多次转发的问题,通常情况下绝大部分SDK的delegate为一个属性,也就是说只能接受一个delegate,但是当SDK容纳了非常多的场景逻辑的时候,这个时候实现delegate协议的地方就非常臃肿难以拆分。所以设计了这个基础机制,可以将delegate向多个多想转发消息。这是一个1对多的转发代理。 + */ +@interface QCloudMultiDelegateProxy : NSObject + +/** + 添加一个接受转发的委托 + @note 在内部对该对象为弱应用,不用担心会产生内存问题。同时在编程的时候,也不要认为我们会持有该对象。 + @param delegate 接受转发的对象 + */ +- (void)addDelegate:(Type)delegate; + +/** + 删除一个接受转发的委托 + + @param delegate 将要被删除的对象 + */ +- (void)removeDelegate:(Type)delegate; +@end diff --git a/Pods/QCloudCore/QCloudCore/Classes/Base/ObjectFack/QCloudMultiDelegateProxy.m b/Pods/QCloudCore/QCloudCore/Classes/Base/ObjectFack/QCloudMultiDelegateProxy.m new file mode 100644 index 0000000..6e7d178 --- /dev/null +++ b/Pods/QCloudCore/QCloudCore/Classes/Base/ObjectFack/QCloudMultiDelegateProxy.m @@ -0,0 +1,106 @@ +// +// QCloudMultiDelegateProxy.m +// TACAuthorization +// +// Created by Dong Zhao on 2017/12/11. +// + +#import "QCloudMultiDelegateProxy.h" +@interface QCloudMultiDelegateProxy () +@property (nonatomic, strong) NSRecursiveLock *lock; +@property (nonatomic, strong) NSPointerArray *delegates; +@end +@implementation QCloudMultiDelegateProxy +- (instancetype)init { + self = [super init]; + if (!self) { + return self; + } + _delegates = [NSPointerArray pointerArrayWithOptions:NSPointerFunctionsWeakMemory]; + return self; +} + +- (void)addDelegate:(id)delegate { + [_lock lock]; + NSUInteger index = NSNotFound; + for (NSUInteger i = 0; i < _delegates.count; i++) { + id d = [_delegates pointerAtIndex:i]; + if (d == delegate) { + index = i; + } + } + if (index == NSNotFound) { + [_delegates addPointer:(void *)delegate]; + } + [_delegates compact]; + [_lock unlock]; +} + +- (void)removeDelegate:(id)delegate { + [_lock lock]; + NSUInteger index = NSNotFound; + for (NSUInteger i = 0; i < _delegates.count; i++) { + id d = [_delegates pointerAtIndex:i]; + if (d == delegate) { + index = i; + } + } + if (index != NSNotFound) { + [_delegates removePointerAtIndex:index]; + } + [_delegates compact]; + + [_lock unlock]; +} + +- (id)forwardingTargetForSelector:(SEL)sel { + return self; +} + +- (NSInvocation *)_copyInvocation:(NSInvocation *)invocation { + NSInvocation *copy = [NSInvocation invocationWithMethodSignature:[invocation methodSignature]]; + NSUInteger argCount = [[invocation methodSignature] numberOfArguments]; + + for (int i = 0; i < argCount; i++) { + char buffer[sizeof(intmax_t)]; + [invocation getArgument:(void *)&buffer atIndex:i]; + [copy setArgument:(void *)&buffer atIndex:i]; + } + + return copy; +} + +- (void)forwardInvocation:(NSInvocation *)invocation { + [_delegates compact]; + for (NSUInteger index = 0; index < _delegates.count; index++) { + id object = [_delegates pointerAtIndex:index]; + if ([object respondsToSelector:invocation.selector]) { + NSInvocation *invocationCopy = [self _copyInvocation:invocation]; + [invocationCopy invokeWithTarget:object]; + } + } +} + +- (NSMethodSignature *)methodSignatureForSelector:(SEL)sel { + [_delegates compact]; + for (NSUInteger index = 0; index < _delegates.count; index++) { + id object = [_delegates pointerAtIndex:index]; + if (object) { + id result = [object methodSignatureForSelector:sel]; + return result; + } + } + return nil; +} + +- (BOOL)respondsToSelector:(SEL)aSelector { + [_delegates compact]; + for (NSUInteger index = 0; index < _delegates.count; index++) { + id object = [_delegates pointerAtIndex:index]; + if ([object respondsToSelector:aSelector]) { + return YES; + } + } + return NO; +} +@end diff --git a/Pods/QCloudCore/QCloudCore/Classes/Base/ObjectFack/QCloudWeakProxy.h b/Pods/QCloudCore/QCloudCore/Classes/Base/ObjectFack/QCloudWeakProxy.h new file mode 100644 index 0000000..4aa63cf --- /dev/null +++ b/Pods/QCloudCore/QCloudCore/Classes/Base/ObjectFack/QCloudWeakProxy.h @@ -0,0 +1,35 @@ +// +// QCloudWeakProxy.h +// Pods +// +// Created by QCloudTernimalLab on 2016/11/16. +// +// + +#import +NS_ASSUME_NONNULL_BEGIN +@interface QCloudWeakProxy : NSProxy +/** + The proxy target. + */ +@property (nullable, nonatomic, weak, readonly) id target; + +/** + Creates a new weak proxy for target. + + @param target Target object. + + @return A new proxy object. + */ +- (instancetype)initWithTarget:(id)target; + +/** + Creates a new weak proxy for target. + + @param target Target object. + + @return A new proxy object. + */ ++ (instancetype)proxyWithTarget:(id)target; +@end +NS_ASSUME_NONNULL_END diff --git a/Pods/QCloudCore/QCloudCore/Classes/Base/ObjectFack/QCloudWeakProxy.m b/Pods/QCloudCore/QCloudCore/Classes/Base/ObjectFack/QCloudWeakProxy.m new file mode 100755 index 0000000..f2295e5 --- /dev/null +++ b/Pods/QCloudCore/QCloudCore/Classes/Base/ObjectFack/QCloudWeakProxy.m @@ -0,0 +1,88 @@ +// +// QCloudWeakProxy.m +// Pods +// +// Created by QCloudTernimalLab on 2016/11/16. +// +// + +#import "QCloudWeakProxy.h" + +@implementation QCloudWeakProxy +- (instancetype)initWithTarget:(id)target { + _target = target; + return self; +} + ++ (instancetype)proxyWithTarget:(id)target { + if ([target isKindOfClass:[QCloudWeakProxy class]]) { + return target; + } + return [[QCloudWeakProxy alloc] initWithTarget:target]; +} + +- (id)forwardingTargetForSelector:(SEL)selector { + return _target; +} + +/** + 防止crash:因为target是weak,随时会被释放如果target被释放了,又去调用了其他的方法快消息转发就会返回nil,这个时候就会进入慢消息转发,如果慢消息转发没实现,就会crash + + */ +- (void)forwardInvocation:(NSInvocation *)invocation { + void *null = NULL; + [invocation setReturnValue:&null]; +} + +- (NSMethodSignature *)methodSignatureForSelector:(SEL)selector { + return [NSObject instanceMethodSignatureForSelector:@selector(init)]; +} + +- (BOOL)respondsToSelector:(SEL)aSelector { + return [_target respondsToSelector:aSelector]; +} + +- (BOOL)isEqual:(id)object { + return [_target isEqual:object]; +} + +- (NSUInteger)hash { + return [_target hash]; +} + +- (Class)superclass { + return [_target superclass]; +} + +- (Class)class { + return [_target class]; +} + +- (BOOL)isKindOfClass:(Class)aClass { + if (aClass == [QCloudWeakProxy class]) { + return YES; + } + return [_target isKindOfClass:aClass]; +} + +- (BOOL)isMemberOfClass:(Class)aClass { + return [_target isMemberOfClass:aClass]; +} + +- (BOOL)conformsToProtocol:(Protocol *)aProtocol { + return [_target conformsToProtocol:aProtocol]; +} + +- (BOOL)isProxy { + return YES; +} + +- (NSString *)description { + return [_target description]; +} + +- (NSString *)debugDescription { + return [_target debugDescription]; +} + +@end diff --git a/Pods/QCloudCore/QCloudCore/Classes/Base/PathUtilities/QCloudBundlePath.h b/Pods/QCloudCore/QCloudCore/Classes/Base/PathUtilities/QCloudBundlePath.h new file mode 100644 index 0000000..b07f2b7 --- /dev/null +++ b/Pods/QCloudCore/QCloudCore/Classes/Base/PathUtilities/QCloudBundlePath.h @@ -0,0 +1,16 @@ +// +// QCloudBundlePath.h +// QCloudCore +// +// Created by erichmzhang(张恒铭) on 2018/7/20. +// + +#import "QCloudUniversalAdjustablePath.h" + +NS_ASSUME_NONNULL_BEGIN + +@interface QCloudBundlePath : QCloudUniversalAdjustablePath + +@end + +NS_ASSUME_NONNULL_END diff --git a/Pods/QCloudCore/QCloudCore/Classes/Base/PathUtilities/QCloudBundlePath.m b/Pods/QCloudCore/QCloudCore/Classes/Base/PathUtilities/QCloudBundlePath.m new file mode 100644 index 0000000..d907c99 --- /dev/null +++ b/Pods/QCloudCore/QCloudCore/Classes/Base/PathUtilities/QCloudBundlePath.m @@ -0,0 +1,12 @@ +// +// QCloudBundlePath.m +// QCloudCore +// +// Created by erichmzhang(张恒铭) on 2018/7/20. +// + +#import "QCloudBundlePath.h" + +@implementation QCloudBundlePath + +@end diff --git a/Pods/QCloudCore/QCloudCore/Classes/Base/PathUtilities/QCloudMediaPath.h b/Pods/QCloudCore/QCloudCore/Classes/Base/PathUtilities/QCloudMediaPath.h new file mode 100644 index 0000000..cb088c4 --- /dev/null +++ b/Pods/QCloudCore/QCloudCore/Classes/Base/PathUtilities/QCloudMediaPath.h @@ -0,0 +1,16 @@ +// +// QCloudMediaPath.h +// QCloudCore +// +// Created by erichmzhang(张恒铭) on 2018/7/20. +// + +#import "QCloudUniversalFixedPath.h" + +NS_ASSUME_NONNULL_BEGIN + +@interface QCloudMediaPath : QCloudUniversalFixedPath + +@end + +NS_ASSUME_NONNULL_END diff --git a/Pods/QCloudCore/QCloudCore/Classes/Base/PathUtilities/QCloudMediaPath.m b/Pods/QCloudCore/QCloudCore/Classes/Base/PathUtilities/QCloudMediaPath.m new file mode 100644 index 0000000..488445b --- /dev/null +++ b/Pods/QCloudCore/QCloudCore/Classes/Base/PathUtilities/QCloudMediaPath.m @@ -0,0 +1,12 @@ +// +// QCloudMediaPath.m +// QCloudCore +// +// Created by erichmzhang(张恒铭) on 2018/7/20. +// + +#import "QCloudMediaPath.h" + +@implementation QCloudMediaPath + +@end diff --git a/Pods/QCloudCore/QCloudCore/Classes/Base/PathUtilities/QCloudSandboxPath.h b/Pods/QCloudCore/QCloudCore/Classes/Base/PathUtilities/QCloudSandboxPath.h new file mode 100644 index 0000000..bc50bae --- /dev/null +++ b/Pods/QCloudCore/QCloudCore/Classes/Base/PathUtilities/QCloudSandboxPath.h @@ -0,0 +1,16 @@ +// +// QCloudSandboxPath.h +// QCloudCore +// +// Created by erichmzhang(张恒铭) on 2018/7/20. +// + +#import "QCloudUniversalAdjustablePath.h" + +NS_ASSUME_NONNULL_BEGIN + +@interface QCloudSandboxPath : QCloudUniversalAdjustablePath + +@end + +NS_ASSUME_NONNULL_END diff --git a/Pods/QCloudCore/QCloudCore/Classes/Base/PathUtilities/QCloudSandboxPath.m b/Pods/QCloudCore/QCloudCore/Classes/Base/PathUtilities/QCloudSandboxPath.m new file mode 100644 index 0000000..d753a99 --- /dev/null +++ b/Pods/QCloudCore/QCloudCore/Classes/Base/PathUtilities/QCloudSandboxPath.m @@ -0,0 +1,15 @@ +// +// QCloudSandboxPath.m +// QCloudCore +// +// Created by erichmzhang(张恒铭) on 2018/7/20. +// + +#import "QCloudSandboxPath.h" +#import "QCloudFileUtils.h" +@implementation QCloudSandboxPath +- (NSURL *)fileURL { + NSString *restoredPath = QCloudGenerateLocalPath(self.originURL); + return [NSURL fileURLWithPath:restoredPath]; +} +@end diff --git a/Pods/QCloudCore/QCloudCore/Classes/Base/PathUtilities/QCloudUniversalAdjustablePath.h b/Pods/QCloudCore/QCloudCore/Classes/Base/PathUtilities/QCloudUniversalAdjustablePath.h new file mode 100644 index 0000000..bed485e --- /dev/null +++ b/Pods/QCloudCore/QCloudCore/Classes/Base/PathUtilities/QCloudUniversalAdjustablePath.h @@ -0,0 +1,16 @@ +// +// QCloudUniversalAdjustablePath.h +// QCloudCore +// +// Created by erichmzhang(张恒铭) on 2018/7/20. +// + +#import +#import "QCloudUniversalPath.h" +NS_ASSUME_NONNULL_BEGIN + +@interface QCloudUniversalAdjustablePath : QCloudUniversalPath + +@end + +NS_ASSUME_NONNULL_END diff --git a/Pods/QCloudCore/QCloudCore/Classes/Base/PathUtilities/QCloudUniversalAdjustablePath.m b/Pods/QCloudCore/QCloudCore/Classes/Base/PathUtilities/QCloudUniversalAdjustablePath.m new file mode 100644 index 0000000..a94d005 --- /dev/null +++ b/Pods/QCloudCore/QCloudCore/Classes/Base/PathUtilities/QCloudUniversalAdjustablePath.m @@ -0,0 +1,12 @@ +// +// QCloudUniversalAdjustablePath.m +// QCloudCore +// +// Created by erichmzhang(张恒铭) on 2018/7/20. +// + +#import "QCloudUniversalAdjustablePath.h" + +@implementation QCloudUniversalAdjustablePath + +@end diff --git a/Pods/QCloudCore/QCloudCore/Classes/Base/PathUtilities/QCloudUniversalFixedPath.h b/Pods/QCloudCore/QCloudCore/Classes/Base/PathUtilities/QCloudUniversalFixedPath.h new file mode 100644 index 0000000..3fce025 --- /dev/null +++ b/Pods/QCloudCore/QCloudCore/Classes/Base/PathUtilities/QCloudUniversalFixedPath.h @@ -0,0 +1,16 @@ +// +// QCloudUniversalFixedPath.h +// QCloudCore +// +// Created by erichmzhang(张恒铭) on 2018/7/20. +// + +#import +#import "QCloudUniversalPath.h" +NS_ASSUME_NONNULL_BEGIN + +@interface QCloudUniversalFixedPath : QCloudUniversalPath + +@end + +NS_ASSUME_NONNULL_END diff --git a/Pods/QCloudCore/QCloudCore/Classes/Base/PathUtilities/QCloudUniversalFixedPath.m b/Pods/QCloudCore/QCloudCore/Classes/Base/PathUtilities/QCloudUniversalFixedPath.m new file mode 100644 index 0000000..84c02c2 --- /dev/null +++ b/Pods/QCloudCore/QCloudCore/Classes/Base/PathUtilities/QCloudUniversalFixedPath.m @@ -0,0 +1,18 @@ +// +// QCloudUniversalFixedPath.m +// QCloudCore +// +// Created by erichmzhang(张恒铭) on 2018/7/20. +// + +#import "QCloudUniversalFixedPath.h" + +@implementation QCloudUniversalFixedPath +- (NSURL *)fileURL { + if ([self.originURL hasPrefix:@"file:///"]) { + return [NSURL URLWithString:self.originURL]; + }else{ + return [NSURL fileURLWithPath:self.originURL]; + } +} +@end diff --git a/Pods/QCloudCore/QCloudCore/Classes/Base/PathUtilities/QCloudUniversalPath.h b/Pods/QCloudCore/QCloudCore/Classes/Base/PathUtilities/QCloudUniversalPath.h new file mode 100644 index 0000000..cdc24f6 --- /dev/null +++ b/Pods/QCloudCore/QCloudCore/Classes/Base/PathUtilities/QCloudUniversalPath.h @@ -0,0 +1,21 @@ +// +// QCloudUniversalPath.h +// QCloudCore +// +// Created by erichmzhang(张恒铭) on 2018/7/20. +// + +#import +#import "QCloudUniversalPathConstants.h" +NS_ASSUME_NONNULL_BEGIN + +@interface QCloudUniversalPath : NSObject + +@property (nonatomic, strong) NSString *originURL; +@property (nonatomic, assign) QCloudUniversalPathType type; +- (NSURL *)fileURL; +- (instancetype)initWithStrippedURL:(NSString *)strippedURL; + +@end + +NS_ASSUME_NONNULL_END diff --git a/Pods/QCloudCore/QCloudCore/Classes/Base/PathUtilities/QCloudUniversalPath.m b/Pods/QCloudCore/QCloudCore/Classes/Base/PathUtilities/QCloudUniversalPath.m new file mode 100644 index 0000000..3e2218c --- /dev/null +++ b/Pods/QCloudCore/QCloudCore/Classes/Base/PathUtilities/QCloudUniversalPath.m @@ -0,0 +1,22 @@ +// +// QCloudUniversalPath.m +// QCloudCore +// +// Created by erichmzhang(张恒铭) on 2018/7/20. +// + +#import "QCloudUniversalPath.h" +#import + +@implementation QCloudUniversalPath +- (instancetype)initWithStrippedURL:(NSString *)strippedURL { + self = [super init]; + _originURL = strippedURL; + return self; +} +- (NSURL *)fileURL { + @throw [NSException exceptionWithName:QCloudErrorDomain + reason:[NSString stringWithFormat:@"不支持该路径下的文件续传:%@", _originURL] + userInfo:nil]; +} +@end diff --git a/Pods/QCloudCore/QCloudCore/Classes/Base/PathUtilities/QCloudUniversalPathConstants.h b/Pods/QCloudCore/QCloudCore/Classes/Base/PathUtilities/QCloudUniversalPathConstants.h new file mode 100644 index 0000000..8c21dd3 --- /dev/null +++ b/Pods/QCloudCore/QCloudCore/Classes/Base/PathUtilities/QCloudUniversalPathConstants.h @@ -0,0 +1,18 @@ +// +// QCloudUniversalPathConstants.h +// QCloudCore +// +// Created by erichmzhang(张恒铭) on 2018/7/21. +// + +#ifndef QCloudUniversalPathConstants_h +#define QCloudUniversalPathConstants_h +typedef NS_ENUM(NSInteger, QCloudUniversalPathType) { + QCLOUD_UNIVERSAL_PATH_TYPE_FIXED, + QCLOUD_UNIVERSAL_PATH_TYPE_ADJUSTABLE, + QCLOUD_UNIVERSAL_PATH_TYPE_BUNDLE, + QCLOUD_UNIVERSAL_PATH_TYPE_MEDIA, + QCLOUD_UNIVERSAL_PATH_TYPE_SANDBOX +}; + +#endif /* QCloudUniversalPathConstants_h */ diff --git a/Pods/QCloudCore/QCloudCore/Classes/Base/PathUtilities/QCloudUniversalPathFactory.h b/Pods/QCloudCore/QCloudCore/Classes/Base/PathUtilities/QCloudUniversalPathFactory.h new file mode 100644 index 0000000..b62ac82 --- /dev/null +++ b/Pods/QCloudCore/QCloudCore/Classes/Base/PathUtilities/QCloudUniversalPathFactory.h @@ -0,0 +1,18 @@ +// +// QCloudUniversalPathFactory.h +// QCloudCore +// +// Created by erichmzhang(张恒铭) on 2018/7/20. +// + +#import +#import "QCloudUniversalPath.h" +NS_ASSUME_NONNULL_BEGIN + +@interface QCloudUniversalPathFactory : NSObject + ++ (QCloudUniversalPath *)universalPathWithURL:(NSURL *)url; + +@end + +NS_ASSUME_NONNULL_END diff --git a/Pods/QCloudCore/QCloudCore/Classes/Base/PathUtilities/QCloudUniversalPathFactory.m b/Pods/QCloudCore/QCloudCore/Classes/Base/PathUtilities/QCloudUniversalPathFactory.m new file mode 100644 index 0000000..c38e726 --- /dev/null +++ b/Pods/QCloudCore/QCloudCore/Classes/Base/PathUtilities/QCloudUniversalPathFactory.m @@ -0,0 +1,69 @@ +// +// QCloudUniversalPathFactory.m +// QCloudCore +// +// Created by erichmzhang(张恒铭) on 2018/7/20. +// + +#import "QCloudUniversalPathFactory.h" +#import "QCloudMediaPath.h" +#import "QCloudSandboxPath.h" +#import "QCloudBundlePath.h" +#import "QCloudFileUtils.h" + +NSString *const kMediaURLPrefix = @"/var/mobile/Media/DCIM"; +#define kBundlePath [NSBundle mainBundle].bundlePath +@interface NSString (UniversalPathExtension) + +@end + +@implementation NSString (UniversalPathExtension) + +- (BOOL)isBundlePath { + return [self containsString:kBundlePath]; +} + +- (BOOL)isSandboxPath { + return [self containsString:QCloudApplicationDirectory()]; +} + +- (BOOL)isMediaPath { + return [self containsString:kMediaURLPrefix]; +} +@end + +@implementation QCloudUniversalPathFactory ++ (QCloudUniversalPath *)universalPathWithURL:(NSURL *)url { + QCloudUniversalPath *result; + NSString *strippedURL; + NSString *absoluteString = url.absoluteString; + if (!url && ![url isKindOfClass:NSURL.class]) { + QCloudLogDebugE(@"Utils",@"Nil paramater url!"); + return nil; + } + if ([absoluteString isMediaPath]) { + strippedURL = absoluteString; + result = [[QCloudMediaPath alloc] initWithStrippedURL:strippedURL]; + result.type = QCLOUD_UNIVERSAL_PATH_TYPE_MEDIA; + } else if ([absoluteString isBundlePath]) { + NSRange range = [absoluteString rangeOfString:kBundlePath]; + strippedURL = [absoluteString substringFromIndex:range.location + range.length]; + result = [[QCloudBundlePath alloc] initWithStrippedURL:strippedURL]; + result.type = QCLOUD_UNIVERSAL_PATH_TYPE_BUNDLE; + } else if ([absoluteString isSandboxPath]) { + // sandbox + NSRange range = [absoluteString rangeOfString:QCloudApplicationDirectory()]; + strippedURL = [absoluteString substringFromIndex:range.location + range.length]; + result = [[QCloudSandboxPath alloc] initWithStrippedURL:strippedURL]; + result.type = QCLOUD_UNIVERSAL_PATH_TYPE_SANDBOX; + } else { + // Unknown, not stripped + strippedURL = absoluteString; + result = [[QCloudUniversalFixedPath alloc] initWithStrippedURL:strippedURL]; + result.type = QCLOUD_UNIVERSAL_PATH_TYPE_FIXED; + } + QCloudLogDebugP(@"Utils",@"Origin URL is %@ , stripped URL is %@", absoluteString, strippedURL); + return result; +} + +@end diff --git a/Pods/QCloudCore/QCloudCore/Classes/Base/QCLOUDFileUtils/QCloudFileUtils.h b/Pods/QCloudCore/QCloudCore/Classes/Base/QCLOUDFileUtils/QCloudFileUtils.h new file mode 100644 index 0000000..ff28a0b --- /dev/null +++ b/Pods/QCloudCore/QCloudCore/Classes/Base/QCLOUDFileUtils/QCloudFileUtils.h @@ -0,0 +1,48 @@ +// +// QCloudFileUtils.h +// Pods +// +// Created by stonedong on 16/3/6. +// +// + +#import +#import "QCloudSHAPart.h" +#ifndef __QCloudFileUtils +#define __QCloudFileUtils +#pragma clang diagnostic push +#pragma clang diagnostic ignored "-Wstrict-prototypes" + +#define NSShareFileManager [NSFileManager defaultManager] +FOUNDATION_EXTERN void QCloudEnsurePathExist(NSString *path); +FOUNDATION_EXTERN NSString *QCloudDocumentsPath(); +FOUNDATION_EXTERN NSString *QCloudDocumentsSubPath(NSString *name); +FOUNDATION_EXTERN NSString *QCloudSettingsFilePath(); +FOUNDATION_EXTERN NSString *QCloudAppendPath(); +FOUNDATION_EXTERN NSString *QCloudMKTempDirectory(); +FOUNDATION_EXTERN NSString *QCloudPathJoin(NSString *a, NSString *b); +FOUNDATION_EXTERN NSString *QCloudTempDir(); +FOUNDATION_EXTERN NSString *QCloudTempFilePathWithExtension(NSString *extension); +FOUNDATION_EXTERN NSString *QCloudCacheDir(); +FOUNDATION_EXTERN void QCloudRemoveFileByPath(NSString *path); +FOUNDATION_EXTERN NSString *QCloudFileInSubPath(NSString *subPath, NSString *fileName); +FOUNDATION_EXTERN BOOL QCloudFileExist(NSString *path); +FOUNDATION_EXTERN BOOL QCloudMoveFile(NSString *originPath, NSString *aimPath, NSError *__autoreleasing *error); + +FOUNDATION_EXTERN NSString *QCloudDocumentsTempFilePathWithExcentsion(NSString *extension); +FOUNDATION_EXTERN NSString *QCloudApplicationDocumentsPath(); +FOUNDATION_EXTERN NSString *QCloudApplicationLibaryPath(); +FOUNDATION_EXTERN NSString *QCloudApplicationTempPath(); +FOUNDATION_EXTERN NSString *QCloudApplicationDirectory(); +FOUNDATION_EXTERN NSString *QCloudFilteLocalPath(NSString *originPath); +FOUNDATION_EXTERN NSString *QCloudGenerateLocalPath(NSString *pathCompents); +FOUNDATION_EXTERN NSURL *QCloudMediaURL(NSString *path); +FOUNDATION_EXTERN NSString *QCloudDocumentsTempPath(); +FOUNDATION_EXTERN NSString *QCloudDocumentsTempFile(NSString *fileName, NSString *extension); +FOUNDATION_EXTERN uint64_t QCloudFileSize(NSString *path); +FOUNDATION_EXTERN uint64_t QCloudDirectorySize(NSString *path, NSFileManager *fileManager); +FOUNDATION_EXTERN NSArray *QCloudIncreaseFileSHAData(NSString *path, uint64_t sliceSize); + +FOUNDATION_EXTERN NSString *detemineFileMemeType(NSURL *filePathURL, NSString *fileName); +#pragma clang diagnostic pop +#endif diff --git a/Pods/QCloudCore/QCloudCore/Classes/Base/QCLOUDFileUtils/QCloudFileUtils.m b/Pods/QCloudCore/QCloudCore/Classes/Base/QCLOUDFileUtils/QCloudFileUtils.m new file mode 100644 index 0000000..692a973 --- /dev/null +++ b/Pods/QCloudCore/QCloudCore/Classes/Base/QCLOUDFileUtils/QCloudFileUtils.m @@ -0,0 +1,1020 @@ +// +// QCloudFileUtils.m +// Pods +// +// Created by stonedong on 16/3/6. +// +// + +#import "QCloudFileUtils.h" +#import +#import +#import "QCloudSHAPart.h" + +void QCloudEnsurePathExist(NSString *path) { + NSCParameterAssert(path); + BOOL exist = [NSShareFileManager fileExistsAtPath:path]; + if (!exist) { + NSError *error = nil; + [NSShareFileManager createDirectoryAtPath:path withIntermediateDirectories:YES attributes:nil error:&error]; + } +} + +BOOL QCloudFileExist(NSString *path) { + return [NSShareFileManager fileExistsAtPath:path]; +} + +NSString *QCloudApplicationDocumentsPath(void) { + static NSString *documentsPath = nil; + static dispatch_once_t onceToken; + dispatch_once(&onceToken, ^{ + NSArray *urls = [NSShareFileManager URLsForDirectory:NSDocumentDirectory inDomains:NSUserDomainMask]; + NSURL *url = urls[0]; + documentsPath = [url path]; + }); + return documentsPath; +} + +NSString *QCloudApplicationLibaryPath(void) { + static NSString *documentsPath = nil; + static dispatch_once_t onceToken; + dispatch_once(&onceToken, ^{ + NSArray *urls = [NSShareFileManager URLsForDirectory:NSLibraryDirectory inDomains:NSUserDomainMask]; + NSURL *url = urls[0]; + documentsPath = [url path]; + }); + return documentsPath; +} + +NSString *QCloudApplicationDirectory(void) { + static NSString *documentsPath = nil; + static dispatch_once_t onceToken; + dispatch_once(&onceToken, ^{ + NSArray *urls = [NSShareFileManager URLsForDirectory:NSLibraryDirectory inDomains:NSUserDomainMask]; + NSURL *url = urls[0]; + documentsPath = [url path]; + documentsPath = [documentsPath stringByDeletingLastPathComponent]; + }); + return documentsPath; +} +NSString *QCloudApplicationTempPath(void) { + return NSTemporaryDirectory(); +} +NSString *QCloudCacheDir(void) { + NSArray *paths = NSSearchPathForDirectoriesInDomains(NSCachesDirectory, NSUserDomainMask, YES); + NSString *cachePath = [paths objectAtIndex:0]; + return cachePath; +} + +NSString *QCloudDocumentsPath(void) { + static NSString *documentsPath = nil; + static dispatch_once_t onceToken; + dispatch_once(&onceToken, ^{ + NSArray *urls = [NSShareFileManager URLsForDirectory:NSDocumentDirectory inDomains:NSUserDomainMask]; + NSURL *url = urls[0]; + documentsPath = [url path]; + documentsPath = [documentsPath stringByAppendingPathComponent:@"MainData"]; + QCloudEnsurePathExist(documentsPath); + }); + return documentsPath; +} + +NSString *QCloudSettingsFilePath(void) { + return [QCloudDocumentsPath() stringByAppendingPathComponent:@"settings.plist"]; +} + +NSString *QCloudAppendPath(NSString *parentPath, NSString *sub) { + NSString *str = [parentPath stringByAppendingPathComponent:sub]; + QCloudEnsurePathExist(str); + return str; +} + +NSString *QCloudTempDir(void) { + return NSTemporaryDirectory(); +} + +NSString *QCloudMKTempDirectory(void) { + NSString *path = [[NSUUID UUID] UUIDString]; + return QCloudAppendPath(QCloudTempDir(), path); +} + +NSString *QCloudDocumentsSubPath(NSString *str) { + return QCloudAppendPath(QCloudDocumentsPath(), str); +} + +NSString *QCloudPathJoin(NSString *base, NSString *component) { + NSCParameterAssert(component); + if ([base hasSuffix:@"/"]) { + if ([component hasPrefix:@"/"] && base.length) { + return [[base substringToIndex:base.length - 1] stringByAppendingString:component]; + } else { + return [base stringByAppendingString:component]; + } + } else { + if (component.length) { + if ([component hasPrefix:@"/"]) { + return [base stringByAppendingFormat:@"%@", component]; + } else { + return [base stringByAppendingFormat:@"/%@", component]; + } + } else { + return base; + } + } +} + +NSString *QCloudTempFilePathWithExtension(NSString *extension) { + NSString *fileName = [NSUUID UUID].UUIDString; + NSString *path = QCloudTempDir(); + path = [path stringByAppendingPathComponent:fileName]; + path = [path stringByAppendingPathExtension:extension]; + return path; +} + +NSString *QCloudDocumentsTempPath(void) { + NSString *path = QCloudPathJoin(QCloudDocumentsPath(), @"temp"); + QCloudEnsurePathExist(path); + return path; +} + +NSString *QCloudDocumentsTempFile(NSString *fileName, NSString *extension) { + NSString *path = QCloudDocumentsPath(); + path = [path stringByAppendingPathComponent:fileName]; + if (extension) { + path = [path stringByAppendingPathExtension:extension]; + } + return path; +} + +NSString *QCloudDocumentsTempFilePathWithExcentsion(NSString *extension) { + NSString *fileName = [NSUUID UUID].UUIDString; + NSString *path = QCloudDocumentsPath(); + path = [path stringByAppendingPathComponent:fileName]; + if (extension) { + path = [path stringByAppendingPathExtension:extension]; + } + return path; +} +void QCloudRemoveFileByPath(NSString *path) { + NSError *error = nil; + [[NSFileManager defaultManager] removeItemAtPath:path error:&error]; +} + +NSString *QCloudFileInSubPath(NSString *subPath, NSString *fileName) { + NSString *sp = QCloudDocumentsSubPath(subPath); + QCloudEnsurePathExist(sp); + return [sp stringByAppendingPathComponent:fileName]; +} + +BOOL QCloudMoveFile(NSString *originPath, NSString *aimPath, NSError *__autoreleasing *error) { + return [[NSFileManager defaultManager] moveItemAtPath:originPath toPath:aimPath error:error]; +} + +uint64_t QCloudDirectorySize(NSString *path, NSFileManager *fileManager) { + BOOL isDirectory = NO; + BOOL exist = [fileManager fileExistsAtPath:path isDirectory:&isDirectory]; + if (!exist) { + return 0; + } + + if (!isDirectory) { + return 0; + } + + uint64_t totalSize = 0; + + NSDirectoryEnumerator *itor = [fileManager enumeratorAtPath:path]; + NSString *file; + while (file = [itor nextObject]) { + BOOL isD; + BOOL isE; + NSString *checkPath = [path stringByAppendingPathComponent:file]; + isE = [fileManager fileExistsAtPath:checkPath isDirectory:&isD]; + if (isE && !isD) { + NSError *error; + NSDictionary *attributes = [fileManager attributesOfItemAtPath:checkPath error:&error]; + if (!error && attributes) { + totalSize += [attributes fileSize]; + } + } + } + return totalSize; +} + +NSString *QCloudFilteLocalPath(NSString *originPath) { + if (!originPath || originPath.length < QCloudApplicationDirectory().length) { + return originPath; + } + NSRange range = [originPath rangeOfString:QCloudApplicationDirectory()]; + if (range.location != NSNotFound) { + return [originPath substringFromIndex:range.location + range.length]; + } + return originPath; +} + +NSString *QCloudGenerateLocalPath(NSString *pathCompents) { + return [QCloudApplicationDirectory() stringByAppendingPathComponent:pathCompents]; +} + +NSURL *QCloudMediaURL(NSString *path) { + if ([path hasPrefix:@"http"]) { + return [NSURL URLWithString:path]; + } else { + return [NSURL fileURLWithPath:QCloudGenerateLocalPath(path)]; + } +} + +uint64_t QCloudFileSize(NSString *path) { + if (path.length == 0) { + return 0; + } + BOOL isDirectory = NO; + if ([[NSFileManager defaultManager] fileExistsAtPath:path isDirectory:&isDirectory]) { + if (isDirectory) { + return 0; + } + NSDictionary *attribute = [[NSFileManager defaultManager] attributesOfItemAtPath:path error:nil]; + return [attribute fileSize]; + } + return 0; +} + +NSArray *QCloudIncreaseFileSHAData(NSString *path, uint64_t sliceSize) { + NSURL *fileURL = [NSURL fileURLWithPath:path]; + + if (fileURL == nil) { + return nil; + } + sliceSize = MIN(QCloudFileSize(path), sliceSize); + if (sliceSize == 0) { + return nil; + } +#ifdef DEBUG + CFTimeInterval beginTime = CFAbsoluteTimeGetCurrent(); +#endif + NSInputStream *stream = [NSInputStream inputStreamWithURL:fileURL]; + [stream open]; + NSMutableArray *arr = [NSMutableArray new]; + CC_SHA1_CTX sha; + CC_SHA1_Init(&sha); + BOOL done = NO; + int64_t totalData = 0; + int64_t offset = 0; + while (!done) { + @autoreleasepool { + if (![stream hasBytesAvailable]) { + [stream close]; + break; + } + uint64_t partNeedLoad = sliceSize; + uint64_t partLength = 0; + while (partNeedLoad > 0 && [stream hasBytesAvailable]) { +#define READ_SLICE_SIZE 1024 * 10 + uint8_t *buffer = malloc(READ_SLICE_SIZE * sizeof(uint8_t)); + memset(buffer, 0, READ_SLICE_SIZE); + NSUInteger willReadMaxLength = (NSUInteger)MIN(READ_SLICE_SIZE, partNeedLoad); + NSInteger readLength = [stream read:buffer maxLength:willReadMaxLength]; + if (readLength <= 0) { + free(buffer); + break; + } + CC_SHA1_Update(&sha, buffer, (unsigned int)readLength); + partNeedLoad -= readLength; + partLength += readLength; + free(buffer); + } + if (partLength == 0) { + done = YES; + break; + } + QCloudSHAPart *part = [[QCloudSHAPart alloc] init]; + part.offset = offset; + part.datalen = partLength; + offset += partLength; + totalData += partLength; + unsigned char *digest = (unsigned char *)&sha.h0; + NSString *result = [NSString stringWithFormat:@"%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x", + digest[0], digest[1], digest[2], digest[3], digest[4], digest[5], digest[6], digest[7], + digest[8], digest[9], digest[10], digest[11], digest[12], digest[13], digest[14], + digest[15], digest[16], digest[17], digest[18], digest[19]]; + part.datasha = result; + [arr addObject:part]; + } + } + unsigned char digest[CC_SHA1_DIGEST_LENGTH]; + CC_SHA1_Final(digest, &sha); + + NSString *result = + [NSString stringWithFormat:@"%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x", digest[0], digest[1], + digest[2], digest[3], digest[4], digest[5], digest[6], digest[7], digest[8], digest[9], digest[10], digest[11], + digest[12], digest[13], digest[14], digest[15], digest[16], digest[17], digest[18], digest[19]]; + QCloudSHAPart *part = [[QCloudSHAPart alloc] init]; + part.offset = 0; + part.datalen = totalData; + part.datasha = result; + [arr addObject:part]; +#ifdef DEBUG + NSLog(@"sh1 time is %f", CFAbsoluteTimeGetCurrent() - beginTime); +#endif + return arr; +} + +NSString *detemineFileMemeType(NSURL *filePathURL, NSString *fileName) { + NSDictionary *mimeMap = @ { + @"aw" : @"application/applixware", + @"atom" : @"application/atom+xml", + @"atomcat" : @"application/atomcat+xml", + @"atomsvc" : @"application/atomsvc+xml", + @"ccxml" : @"application/ccxml+xml", + @"cdmia" : @"application/cdmi-capability", + @"cdmic" : @"application/cdmi-container", + @"cdmid" : @"application/cdmi-domain", + @"cdmio" : @"application/cdmi-object", + @"cdmiq" : @"application/cdmi-queue", + @"cu" : @"application/cu-seeme", + @"davmount" : @"application/davmount+xml", + @"dssc" : @"application/dssc+der", + @"xdssc" : @"application/dssc+xml", + @"es" : @"application/ecmascript", + @"emma" : @"application/emma+xml", + @"epub" : @"application/epub+zip", + @"exi" : @"application/exi", + @"pfr" : @"application/font-tdpfr", + @"stk" : @"application/hyperstudio", + @"ipfix" : @"application/ipfix", + @"jar" : @"application/java-archive", + @"ser" : @"application/java-serialized-object", + @"class" : @"application/java-vm", + @"js" : @"application/javascript", + @"json" : @"application/json", + @"hqx" : @"application/mac-binhex40", + @"cpt" : @"application/mac-compactpro", + @"mads" : @"application/mads+xml", + @"mrc" : @"application/marc", + @"mrcx" : @"application/marcxml+xml", + @"ma" : @"application/mathematica", + @"mathml" : @"application/mathml+xml", + @"mbox" : @"application/mbox", + @"mscml" : @"application/mediaservercontrol+xml", + @"meta4" : @"application/metalink4+xml", + @"mets" : @"application/mets+xml", + @"mods" : @"application/mods+xml", + @"m21" : @"application/mp21", + @"doc" : @"application/msword", + @"mxf" : @"application/mxf", + @"bin" : @"application/octet-stream", + @"oda" : @"application/oda", + @"opf" : @"application/oebps-package+xml", + @"ogx" : @"application/ogg", + @"onetoc" : @"application/onenote", + @"xer" : @"application/patch-ops-error+xml", + @"pdf" : @"application/pdf", + @"pgp" : @"application/pgp-signature", + @"prf" : @"application/pics-rules", + @"p10" : @"application/pkcs10", + @"p7m" : @"application/pkcs7-mime", + @"p7s" : @"application/pkcs7-signature", + @"p8" : @"application/pkcs8", + @"ac" : @"application/pkix-attr-cert", + @"cer" : @"application/pkix-cert", + @"crl" : @"application/pkix-crl", + @"pkipath" : @"application/pkix-pkipath", + @"pki" : @"application/pkixcmp", + @"pls" : @"application/pls+xml", + @"ai" : @"application/postscript", + @"cww" : @"application/prs.cww", + @"pskcxml" : @"application/pskc+xml", + @"rdf" : @"application/rdf+xml", + @"rif" : @"application/reginfo+xml", + @"rnc" : @"application/relax-ng-compact-syntax", + @"rl" : @"application/resource-lists+xml", + @"rld" : @"application/resource-lists-diff+xml", + @"rs" : @"application/rls-services+xml", + @"rsd" : @"application/rsd+xml", + @"rss" : @"application/rss+xml", + @"rtf" : @"application/rtf", + @"sbml" : @"application/sbml+xml", + @"scq" : @"application/scvp-cv-request", + @"scs" : @"application/scvp-cv-response", + @"spq" : @"application/scvp-vp-request", + @"spp" : @"application/scvp-vp-response", + @"sdp" : @"application/sdp", + @"setpay" : @"application/set-payment-initiation", + @"setreg" : @"application/set-registration-initiation", + @"shf" : @"application/shf+xml", + @"smi" : @"application/smil+xml", + @"rq" : @"application/sparql-query", + @"srx" : @"application/sparql-results+xml", + @"gram" : @"application/srgs", + @"grxml" : @"application/srgs+xml", + @"sru" : @"application/sru+xml", + @"ssml" : @"application/ssml+xml", + @"tei" : @"application/tei+xml", + @"tfi" : @"application/thraud+xml", + @"tsd" : @"application/timestamped-data", + @"plb" : @"application/vnd.3gpp.pic-bw-large", + @"psb" : @"application/vnd.3gpp.pic-bw-small", + @"pvb" : @"application/vnd.3gpp.pic-bw-var", + @"tcap" : @"application/vnd.3gpp2.tcap", + @"pwn" : @"application/vnd.3m.post-it-notes", + @"aso" : @"application/vnd.accpac.simply.aso", + @"imp" : @"application/vnd.accpac.simply.imp", + @"acu" : @"application/vnd.acucobol", + @"atc" : @"application/vnd.acucorp", + @"air" : @"application/vnd.adobe.air-application-installer-package+zip", + @"fxp" : @"application/vnd.adobe.fxp", + @"xdp" : @"application/vnd.adobe.xdp+xml", + @"xfdf" : @"application/vnd.adobe.xfdf", + @"ahead" : @"application/vnd.ahead.space", + @"azf" : @"application/vnd.airzip.filesecure.azf", + @"azs" : @"application/vnd.airzip.filesecure.azs", + @"azw" : @"application/vnd.amazon.ebook", + @"acc" : @"application/vnd.americandynamics.acc", + @"ami" : @"application/vnd.amiga.ami", + @"apk" : @"application/vnd.android.package-archive", + @"cii" : @"application/vnd.anser-web-certificate-issue-initiation", + @"fti" : @"application/vnd.anser-web-funds-transfer-initiation", + @"atx" : @"application/vnd.antix.game-component", + @"mpkg" : @"application/vnd.apple.installer+xml", + @"m3u8" : @"application/vnd.apple.mpegurl", + @"swi" : @"application/vnd.aristanetworks.swi", + @"aep" : @"application/vnd.audiograph", + @"mpm" : @"application/vnd.blueice.multipass", + @"bmi" : @"application/vnd.bmi", + @"rep" : @"application/vnd.businessobjects", + @"cdxml" : @"application/vnd.chemdraw+xml", + @"mmd" : @"application/vnd.chipnuts.karaoke-mmd", + @"cdy" : @"application/vnd.cinderella", + @"cla" : @"application/vnd.claymore", + @"rp9" : @"application/vnd.cloanto.rp9", + @"c4g" : @"application/vnd.clonk.c4group", + @"c11amc" : @"application/vnd.cluetrust.cartomobile-config", + @"c11amz" : @"application/vnd.cluetrust.cartomobile-config-pkg", + @"csp" : @"application/vnd.commonspace", + @"cdbcmsg" : @"application/vnd.contact.cmsg", + @"cmc" : @"application/vnd.cosmocaller", + @"clkx" : @"application/vnd.crick.clicker", + @"clkk" : @"application/vnd.crick.clicker.keyboard", + @"clkp" : @"application/vnd.crick.clicker.palette", + @"clkt" : @"application/vnd.crick.clicker.template", + @"clkw" : @"application/vnd.crick.clicker.wordbank", + @"wbs" : @"application/vnd.criticaltools.wbs+xml", + @"pml" : @"application/vnd.ctc-posml", + @"ppd" : @"application/vnd.cups-ppd", + @"car" : @"application/vnd.curl.car", + @"pcurl" : @"application/vnd.curl.pcurl", + @"rdz" : @"application/vnd.data-vision.rdz", + @"fe_launch" : @"application/vnd.denovo.fcselayout-link", + @"dna" : @"application/vnd.dna", + @"mlp" : @"application/vnd.dolby.mlp", + @"dpg" : @"application/vnd.dpgraph", + @"dfac" : @"application/vnd.dreamfactory", + @"ait" : @"application/vnd.dvb.ait", + @"svc" : @"application/vnd.dvb.service", + @"geo" : @"application/vnd.dynageo", + @"mag" : @"application/vnd.ecowin.chart", + @"nml" : @"application/vnd.enliven", + @"esf" : @"application/vnd.epson.esf", + @"msf" : @"application/vnd.epson.msf", + @"qam" : @"application/vnd.epson.quickanime", + @"slt" : @"application/vnd.epson.salt", + @"ssf" : @"application/vnd.epson.ssf", + @"es3" : @"application/vnd.eszigno3+xml", + @"ez2" : @"application/vnd.ezpix-album", + @"ez3" : @"application/vnd.ezpix-package", + @"fdf" : @"application/vnd.fdf", + @"seed" : @"application/vnd.fdsn.seed", + @"gph" : @"application/vnd.flographit", + @"ftc" : @"application/vnd.fluxtime.clip", + @"fm" : @"application/vnd.framemaker", + @"fnc" : @"application/vnd.frogans.fnc", + @"ltf" : @"application/vnd.frogans.ltf", + @"fsc" : @"application/vnd.fsc.weblaunch", + @"oas" : @"application/vnd.fujitsu.oasys", + @"oa2" : @"application/vnd.fujitsu.oasys2", + @"oa3" : @"application/vnd.fujitsu.oasys3", + @"fg5" : @"application/vnd.fujitsu.oasysgp", + @"bh2" : @"application/vnd.fujitsu.oasysprs", + @"ddd" : @"application/vnd.fujixerox.ddd", + @"xdw" : @"application/vnd.fujixerox.docuworks", + @"xbd" : @"application/vnd.fujixerox.docuworks.binder", + @"fzs" : @"application/vnd.fuzzysheet", + @"txd" : @"application/vnd.genomatix.tuxedo", + @"ggb" : @"application/vnd.geogebra.file", + @"ggt" : @"application/vnd.geogebra.tool", + @"gex" : @"application/vnd.geometry-explorer", + @"gxt" : @"application/vnd.geonext", + @"g2w" : @"application/vnd.geoplan", + @"g3w" : @"application/vnd.geospace", + @"gmx" : @"application/vnd.gmx", + @"kml" : @"application/vnd.google-earth.kml+xml", + @"kmz" : @"application/vnd.google-earth.kmz", + @"gqf" : @"application/vnd.grafeq", + @"gac" : @"application/vnd.groove-account", + @"ghf" : @"application/vnd.groove-help", + @"gim" : @"application/vnd.groove-identity-message", + @"grv" : @"application/vnd.groove-injector", + @"gtm" : @"application/vnd.groove-tool-message", + @"tpl" : @"application/vnd.groove-tool-template", + @"vcg" : @"application/vnd.groove-vcard", + @"hal" : @"application/vnd.hal+xml", + @"zmm" : @"application/vnd.handheld-entertainment+xml", + @"hbci" : @"application/vnd.hbci", + @"les" : @"application/vnd.hhe.lesson-player", + @"hpgl" : @"application/vnd.hp-hpgl", + @"hpid" : @"application/vnd.hp-hpid", + @"hps" : @"application/vnd.hp-hps", + @"jlt" : @"application/vnd.hp-jlyt", + @"pcl" : @"application/vnd.hp-pcl", + @"pclxl" : @"application/vnd.hp-pclxl", + @"sfd-hdstx" : @"application/vnd.hydrostatix.sof-data", + @"x3d" : @"application/vnd.hzn-3d-crossword", + @"mpy" : @"application/vnd.ibm.minipay", + @"afp" : @"application/vnd.ibm.modcap", + @"irm" : @"application/vnd.ibm.rights-management", + @"sc" : @"application/vnd.ibm.secure-container", + @"icc" : @"application/vnd.iccprofile", + @"igl" : @"application/vnd.igloader", + @"ivp" : @"application/vnd.immervision-ivp", + @"ivu" : @"application/vnd.immervision-ivu", + @"igm" : @"application/vnd.insors.igm", + @"xpw" : @"application/vnd.intercon.formnet", + @"i2g" : @"application/vnd.intergeo", + @"qbo" : @"application/vnd.intu.qbo", + @"qfx" : @"application/vnd.intu.qfx", + @"rcprofile" : @"application/vnd.ipunplugged.rcprofile", + @"irp" : @"application/vnd.irepository.package+xml", + @"xpr" : @"application/vnd.is-xpr", + @"fcs" : @"application/vnd.isac.fcs", + @"jam" : @"application/vnd.jam", + @"rms" : @"application/vnd.jcp.javame.midlet-rms", + @"jisp" : @"application/vnd.jisp", + @"joda" : @"application/vnd.joost.joda-archive", + @"ktz" : @"application/vnd.kahootz", + @"karbon" : @"application/vnd.kde.karbon", + @"chrt" : @"application/vnd.kde.kchart", + @"kfo" : @"application/vnd.kde.kformula", + @"flw" : @"application/vnd.kde.kivio", + @"kon" : @"application/vnd.kde.kontour", + @"kpr" : @"application/vnd.kde.kpresenter", + @"ksp" : @"application/vnd.kde.kspread", + @"kwd" : @"application/vnd.kde.kword", + @"htke" : @"application/vnd.kenameaapp", + @"kia" : @"application/vnd.kidspiration", + @"kne" : @"application/vnd.kinar", + @"skp" : @"application/vnd.koan", + @"sse" : @"application/vnd.kodak-descriptor", + @"lasxml" : @"application/vnd.las.las+xml", + @"lbd" : @"application/vnd.llamagraphics.life-balance.desktop", + @"lbe" : @"application/vnd.llamagraphics.life-balance.exchange+xml", + @"123" : @"application/vnd.lotus-1-2-3", + @"apr" : @"application/vnd.lotus-approach", + @"pre" : @"application/vnd.lotus-freelance", + @"nsf" : @"application/vnd.lotus-notes", + @"org" : @"application/vnd.lotus-organizer", + @"scm" : @"application/vnd.lotus-screencam", + @"lwp" : @"application/vnd.lotus-wordpro", + @"portpkg" : @"application/vnd.macports.portpkg", + @"mcd" : @"application/vnd.mcd", + @"mc1" : @"application/vnd.medcalcdata", + @"cdkey" : @"application/vnd.mediastation.cdkey", + @"mwf" : @"application/vnd.mfer", + @"mfm" : @"application/vnd.mfmp", + @"flo" : @"application/vnd.micrografx.flo", + @"igx" : @"application/vnd.micrografx.igx", + @"mif" : @"application/vnd.mif", + @"daf" : @"application/vnd.mobius.daf", + @"dis" : @"application/vnd.mobius.dis", + @"mbk" : @"application/vnd.mobius.mbk", + @"mqy" : @"application/vnd.mobius.mqy", + @"msl" : @"application/vnd.mobius.msl", + @"plc" : @"application/vnd.mobius.plc", + @"txf" : @"application/vnd.mobius.txf", + @"mpn" : @"application/vnd.mophun.application", + @"mpc" : @"application/vnd.mophun.certificate", + @"xul" : @"application/vnd.mozilla.xul+xml", + @"cil" : @"application/vnd.ms-artgalry", + @"cab" : @"application/vnd.ms-cab-compressed", + @"xls" : @"application/vnd.ms-excel", + @"xlam" : @"application/vnd.ms-excel.addin.macroenabled.12", + @"xlsb" : @"application/vnd.ms-excel.sheet.binary.macroenabled.12", + @"xlsm" : @"application/vnd.ms-excel.sheet.macroenabled.12", + @"xltm" : @"application/vnd.ms-excel.template.macroenabled.12", + @"eot" : @"application/vnd.ms-fontobject", + @"chm" : @"application/vnd.ms-htmlhelp", + @"ims" : @"application/vnd.ms-ims", + @"lrm" : @"application/vnd.ms-lrm", + @"thmx" : @"application/vnd.ms-officetheme", + @"cat" : @"application/vnd.ms-pki.seccat", + @"stl" : @"application/vnd.ms-pki.stl", + @"ppt" : @"application/vnd.ms-powerpoint", + @"ppam" : @"application/vnd.ms-powerpoint.addin.macroenabled.12", + @"pptm" : @"application/vnd.ms-powerpoint.presentation.macroenabled.12", + @"sldm" : @"application/vnd.ms-powerpoint.slide.macroenabled.12", + @"ppsm" : @"application/vnd.ms-powerpoint.slideshow.macroenabled.12", + @"potm" : @"application/vnd.ms-powerpoint.template.macroenabled.12", + @"mpp" : @"application/vnd.ms-project", + @"docm" : @"application/vnd.ms-word.document.macroenabled.12", + @"dotm" : @"application/vnd.ms-word.template.macroenabled.12", + @"wps" : @"application/vnd.ms-works", + @"wpl" : @"application/vnd.ms-wpl", + @"xps" : @"application/vnd.ms-xpsdocument", + @"mseq" : @"application/vnd.mseq", + @"mus" : @"application/vnd.musician", + @"msty" : @"application/vnd.muvee.style", + @"nlu" : @"application/vnd.neurolanguage.nlu", + @"nnd" : @"application/vnd.noblenet-directory", + @"nns" : @"application/vnd.noblenet-sealer", + @"nnw" : @"application/vnd.noblenet-web", + @"ngdat" : @"application/vnd.nokia.n-gage.data", + @"n-gage" : @"application/vnd.nokia.n-gage.symbian.install", + @"rpst" : @"application/vnd.nokia.radio-preset", + @"rpss" : @"application/vnd.nokia.radio-presets", + @"edm" : @"application/vnd.novadigm.edm", + @"edx" : @"application/vnd.novadigm.edx", + @"ext" : @"application/vnd.novadigm.ext", + @"odc" : @"application/vnd.oasis.opendocument.chart", + @"otc" : @"application/vnd.oasis.opendocument.chart-template", + @"odb" : @"application/vnd.oasis.opendocument.database", + @"odf" : @"application/vnd.oasis.opendocument.formula", + @"odft" : @"application/vnd.oasis.opendocument.formula-template", + @"odg" : @"application/vnd.oasis.opendocument.graphics", + @"otg" : @"application/vnd.oasis.opendocument.graphics-template", + @"odi" : @"application/vnd.oasis.opendocument.image", + @"oti" : @"application/vnd.oasis.opendocument.image-template", + @"odp" : @"application/vnd.oasis.opendocument.presentation", + @"otp" : @"application/vnd.oasis.opendocument.presentation-template", + @"ods" : @"application/vnd.oasis.opendocument.spreadsheet", + @"ots" : @"application/vnd.oasis.opendocument.spreadsheet-template", + @"odt" : @"application/vnd.oasis.opendocument.text", + @"odm" : @"application/vnd.oasis.opendocument.text-master", + @"ott" : @"application/vnd.oasis.opendocument.text-template", + @"oth" : @"application/vnd.oasis.opendocument.text-web", + @"xo" : @"application/vnd.olpc-sugar", + @"dd2" : @"application/vnd.oma.dd2+xml", + @"oxt" : @"application/vnd.openofficeorg.extension", + @"pptx" : @"application/vnd.openxmlformats-officedocument.presentationml.presentation", + @"sldx" : @"application/vnd.openxmlformats-officedocument.presentationml.slide", + @"ppsx" : @"application/vnd.openxmlformats-officedocument.presentationml.slideshow", + @"potx" : @"application/vnd.openxmlformats-officedocument.presentationml.template", + @"xlsx" : @"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet", + @"xltx" : @"application/vnd.openxmlformats-officedocument.spreadsheetml.template", + @"docx" : @"application/vnd.openxmlformats-officedocument.wordprocessingml.document", + @"dotx" : @"application/vnd.openxmlformats-officedocument.wordprocessingml.template", + @"mgp" : @"application/vnd.osgeo.mapguide.package", + @"dp" : @"application/vnd.osgi.dp", + @"pdb" : @"application/vnd.palm", + @"paw" : @"application/vnd.pawaafile", + @"str" : @"application/vnd.pg.format", + @"ei6" : @"application/vnd.pg.osasli", + @"efif" : @"application/vnd.picsel", + @"wg" : @"application/vnd.pmi.widget", + @"plf" : @"application/vnd.pocketlearn", + @"pbd" : @"application/vnd.powerbuilder6", + @"box" : @"application/vnd.previewsystems.box", + @"mgz" : @"application/vnd.proteus.magazine", + @"qps" : @"application/vnd.publishare-delta-tree", + @"ptid" : @"application/vnd.pvi.ptid1", + @"qxd" : @"application/vnd.quark.quarkxpress", + @"bed" : @"application/vnd.realvnc.bed", + @"mxl" : @"application/vnd.recordare.musicxml", + @"musicxml" : @"application/vnd.recordare.musicxml+xml", + @"cryptonote" : @"application/vnd.rig.cryptonote", + @"cod" : @"application/vnd.rim.cod", + @"rm" : @"application/vnd.rn-realmedia", + @"link66" : @"application/vnd.route66.link66+xml", + @"st" : @"application/vnd.sailingtracker.track", + @"see" : @"application/vnd.seemail", + @"sema" : @"application/vnd.sema", + @"semd" : @"application/vnd.semd", + @"semf" : @"application/vnd.semf", + @"ifm" : @"application/vnd.shana.informed.formdata", + @"itp" : @"application/vnd.shana.informed.formtemplate", + @"iif" : @"application/vnd.shana.informed.interchange", + @"ipk" : @"application/vnd.shana.informed.package", + @"twd" : @"application/vnd.simtech-mindmapper", + @"mmf" : @"application/vnd.smaf", + @"teacher" : @"application/vnd.smart.teacher", + @"sdkm" : @"application/vnd.solent.sdkm+xml", + @"dxp" : @"application/vnd.spotfire.dxp", + @"sfs" : @"application/vnd.spotfire.sfs", + @"sdc" : @"application/vnd.stardivision.calc", + @"sda" : @"application/vnd.stardivision.draw", + @"sdd" : @"application/vnd.stardivision.impress", + @"smf" : @"application/vnd.stardivision.math", + @"sdw" : @"application/vnd.stardivision.writer", + @"sgl" : @"application/vnd.stardivision.writer-global", + @"sm" : @"application/vnd.stepmania.stepchart", + @"sxc" : @"application/vnd.sun.xml.calc", + @"stc" : @"application/vnd.sun.xml.calc.template", + @"sxd" : @"application/vnd.sun.xml.draw", + @"std" : @"application/vnd.sun.xml.draw.template", + @"sxi" : @"application/vnd.sun.xml.impress", + @"sti" : @"application/vnd.sun.xml.impress.template", + @"sxm" : @"application/vnd.sun.xml.math", + @"sxw" : @"application/vnd.sun.xml.writer", + @"sxg" : @"application/vnd.sun.xml.writer.global", + @"stw" : @"application/vnd.sun.xml.writer.template", + @"sus" : @"application/vnd.sus-calendar", + @"svd" : @"application/vnd.svd", + @"sis" : @"application/vnd.symbian.install", + @"xsm" : @"application/vnd.syncml+xml", + @"bdm" : @"application/vnd.syncml.dm+wbxml", + @"xdm" : @"application/vnd.syncml.dm+xml", + @"tao" : @"application/vnd.tao.intent-module-archive", + @"tmo" : @"application/vnd.tmobile-livetv", + @"tpt" : @"application/vnd.trid.tpt", + @"mxs" : @"application/vnd.triscape.mxs", + @"tra" : @"application/vnd.trueapp", + @"ufd" : @"application/vnd.ufdl", + @"utz" : @"application/vnd.uiq.theme", + @"umj" : @"application/vnd.umajin", + @"unityweb" : @"application/vnd.unity", + @"uoml" : @"application/vnd.uoml+xml", + @"vcx" : @"application/vnd.vcx", + @"vsd" : @"application/vnd.visio", + @"vis" : @"application/vnd.visionary", + @"vsf" : @"application/vnd.vsf", + @"wbxml" : @"application/vnd.wap.wbxml", + @"wmlc" : @"application/vnd.wap.wmlc", + @"wmlsc" : @"application/vnd.wap.wmlscriptc", + @"wtb" : @"application/vnd.webturbo", + @"nbp" : @"application/vnd.wolfram.player", + @"wpd" : @"application/vnd.wordperfect", + @"wqd" : @"application/vnd.wqd", + @"stf" : @"application/vnd.wt.stf", + @"xar" : @"application/vnd.xara", + @"xfdl" : @"application/vnd.xfdl", + @"hvd" : @"application/vnd.yamaha.hv-dic", + @"hvs" : @"application/vnd.yamaha.hv-script", + @"hvp" : @"application/vnd.yamaha.hv-voice", + @"osf" : @"application/vnd.yamaha.openscoreformat", + @"osfpvg" : @"application/vnd.yamaha.openscoreformat.osfpvg+xml", + @"saf" : @"application/vnd.yamaha.smaf-audio", + @"spf" : @"application/vnd.yamaha.smaf-phrase", + @"cmp" : @"application/vnd.yellowriver-custom-menu", + @"zir" : @"application/vnd.zul", + @"zaz" : @"application/vnd.zzazz.deck+xml", + @"vxml" : @"application/voicexml+xml", + @"wgt" : @"application/widget", + @"hlp" : @"application/winhlp", + @"wsdl" : @"application/wsdl+xml", + @"wspolicy" : @"application/wspolicy+xml", + @"7z" : @"application/x-7z-compressed", + @"abw" : @"application/x-abiword", + @"ace" : @"application/x-ace-compressed", + @"aab" : @"application/x-authorware-bin", + @"aam" : @"application/x-authorware-map", + @"aas" : @"application/x-authorware-seg", + @"bcpio" : @"application/x-bcpio", + @"torrent" : @"application/x-bittorrent", + @"bz" : @"application/x-bzip", + @"bz2" : @"application/x-bzip2", + @"vcd" : @"application/x-cdlink", + @"chat" : @"application/x-chat", + @"pgn" : @"application/x-chess-pgn", + @"cpio" : @"application/x-cpio", + @"csh" : @"application/x-csh", + @"deb" : @"application/x-debian-package", + @"dir" : @"application/x-director", + @"wad" : @"application/x-doom", + @"ncx" : @"application/x-dtbncx+xml", + @"dtb" : @"application/x-dtbook+xml", + @"res" : @"application/x-dtbresource+xml", + @"dvi" : @"application/x-dvi", + @"bdf" : @"application/x-font-bdf", + @"gsf" : @"application/x-font-ghostscript", + @"psf" : @"application/x-font-linux-psf", + @"otf" : @"application/x-font-otf", + @"pcf" : @"application/x-font-pcf", + @"snf" : @"application/x-font-snf", + @"ttf" : @"application/x-font-ttf", + @"pfa" : @"application/x-font-type1", + @"woff" : @"application/x-font-woff", + @"spl" : @"application/x-futuresplash", + @"gnumeric" : @"application/x-gnumeric", + @"gtar" : @"application/x-gtar", + @"hdf" : @"application/x-hdf", + @"jnlp" : @"application/x-java-jnlp-file", + @"latex" : @"application/x-latex", + @"prc" : @"application/x-mobipocket-ebook", + @"application" : @"application/x-ms-application", + @"wmd" : @"application/x-ms-wmd", + @"wmz" : @"application/x-ms-wmz", + @"xbap" : @"application/x-ms-xbap", + @"mdb" : @"application/x-msaccess", + @"obd" : @"application/x-msbinder", + @"crd" : @"application/x-mscardfile", + @"clp" : @"application/x-msclip", + @"exe" : @"application/x-msdownload", + @"mvb" : @"application/x-msmediaview", + @"wmf" : @"application/x-msmetafile", + @"mny" : @"application/x-msmoney", + @"pub" : @"application/x-mspublisher", + @"scd" : @"application/x-msschedule", + @"trm" : @"application/x-msterminal", + @"wri" : @"application/x-mswrite", + @"nc" : @"application/x-netcdf", + @"p12" : @"application/x-pkcs12", + @"p7b" : @"application/x-pkcs7-certificates", + @"p7r" : @"application/x-pkcs7-certreqresp", + @"rar" : @"application/x-rar-compressed", + @"sh" : @"application/x-sh", + @"shar" : @"application/x-shar", + @"swf" : @"application/x-shockwave-flash", + @"xap" : @"application/x-silverlight-app", + @"sit" : @"application/x-stuffit", + @"sitx" : @"application/x-stuffitx", + @"sv4cpio" : @"application/x-sv4cpio", + @"sv4crc" : @"application/x-sv4crc", + @"tar" : @"application/x-tar", + @"tcl" : @"application/x-tcl", + @"tex" : @"application/x-tex", + @"tfm" : @"application/x-tex-tfm", + @"texinfo" : @"application/x-texinfo", + @"ustar" : @"application/x-ustar", + @"src" : @"application/x-wais-source", + @"der" : @"application/x-x509-ca-cert", + @"fig" : @"application/x-xfig", + @"xpi" : @"application/x-xpinstall", + @"xdf" : @"application/xcap-diff+xml", + @"xenc" : @"application/xenc+xml", + @"xhtml" : @"application/xhtml+xml", + @"xml" : @"application/xml", + @"dtd" : @"application/xml-dtd", + @"xop" : @"application/xop+xml", + @"xslt" : @"application/xslt+xml", + @"xspf" : @"application/xspf+xml", + @"mxml" : @"application/xv+xml", + @"yang" : @"application/yang", + @"yin" : @"application/yin+xml", + @"zip" : @"application/zip", + @"adp" : @"audio/adpcm", + @"au" : @"audio/basic", + @"mid" : @"audio/midi", + @"mp4a" : @"audio/mp4", + @"mpga" : @"audio/mpeg", + @"oga" : @"audio/ogg", + @"uva" : @"audio/vnd.dece.audio", + @"eol" : @"audio/vnd.digital-winds", + @"dra" : @"audio/vnd.dra", + @"dts" : @"audio/vnd.dts", + @"dtshd" : @"audio/vnd.dts.hd", + @"lvp" : @"audio/vnd.lucent.voice", + @"pya" : @"audio/vnd.ms-playready.media.pya", + @"ecelp4800" : @"audio/vnd.nuera.ecelp4800", + @"ecelp7470" : @"audio/vnd.nuera.ecelp7470", + @"ecelp9600" : @"audio/vnd.nuera.ecelp9600", + @"rip" : @"audio/vnd.rip", + @"weba" : @"audio/webm", + @"aac" : @"audio/x-aac", + @"aif" : @"audio/x-aiff", + @"m3u" : @"audio/x-mpegurl", + @"wax" : @"audio/x-ms-wax", + @"wma" : @"audio/x-ms-wma", + @"ram" : @"audio/x-pn-realaudio", + @"rmp" : @"audio/x-pn-realaudio-plugin", + @"wav" : @"audio/x-wav", + @"cdx" : @"chemical/x-cdx", + @"cif" : @"chemical/x-cif", + @"cmdf" : @"chemical/x-cmdf", + @"cml" : @"chemical/x-cml", + @"csml" : @"chemical/x-csml", + @"xyz" : @"chemical/x-xyz", + @"bmp" : @"image/bmp", + @"cgm" : @"image/cgm", + @"g3" : @"image/g3fax", + @"gif" : @"image/gif", + @"ief" : @"image/ief", + @"jpeg" : @"image/jpeg", + @"jpg" : @"image/jpeg", + @"ktx" : @"image/ktx", + @"png" : @"image/png", + @"btif" : @"image/prs.btif", + @"svg" : @"image/svg+xml", + @"tiff" : @"image/tiff", + @"psd" : @"image/vnd.adobe.photoshop", + @"uvi" : @"image/vnd.dece.graphic", + @"sub" : @"image/vnd.dvb.subtitle", + @"djvu" : @"image/vnd.djvu", + @"dwg" : @"image/vnd.dwg", + @"dxf" : @"image/vnd.dxf", + @"fbs" : @"image/vnd.fastbidsheet", + @"fpx" : @"image/vnd.fpx", + @"fst" : @"image/vnd.fst", + @"mmr" : @"image/vnd.fujixerox.edmics-mmr", + @"rlc" : @"image/vnd.fujixerox.edmics-rlc", + @"mdi" : @"image/vnd.ms-modi", + @"npx" : @"image/vnd.net-fpx", + @"wbmp" : @"image/vnd.wap.wbmp", + @"xif" : @"image/vnd.xiff", + @"webp" : @"image/webp", + @"ras" : @"image/x-cmu-raster", + @"cmx" : @"image/x-cmx", + @"fh" : @"image/x-freehand", + @"ico" : @"image/x-icon", + @"pcx" : @"image/x-pcx", + @"pic" : @"image/x-pict", + @"pnm" : @"image/x-portable-anymap", + @"pbm" : @"image/x-portable-bitmap", + @"pgm" : @"image/x-portable-graymap", + @"ppm" : @"image/x-portable-pixmap", + @"rgb" : @"image/x-rgb", + @"xbm" : @"image/x-xbitmap", + @"xpm" : @"image/x-xpixmap", + @"xwd" : @"image/x-xwindowdump", + @"eml" : @"message/rfc822", + @"igs" : @"model/iges", + @"msh" : @"model/mesh", + @"dae" : @"model/vnd.collada+xml", + @"dwf" : @"model/vnd.dwf", + @"gdl" : @"model/vnd.gdl", + @"gtw" : @"model/vnd.gtw", + @"mts" : @"model/vnd.mts", + @"vtu" : @"model/vnd.vtu", + @"wrl" : @"model/vrml", + @"ics" : @"text/calendar", + @"css" : @"text/css", + @"csv" : @"text/csv", + @"html" : @"text/html", + @"n3" : @"text/n3", + @"txt" : @"text/plain", + @"dsc" : @"text/prs.lines.tag", + @"rtx" : @"text/richtext", + @"sgml" : @"text/sgml", + @"tsv" : @"text/tab-separated-values", + @"t" : @"text/troff", + @"ttl" : @"text/turtle", + @"uri" : @"text/uri-list", + @"curl" : @"text/vnd.curl", + @"dcurl" : @"text/vnd.curl.dcurl", + @"scurl" : @"text/vnd.curl.scurl", + @"mcurl" : @"text/vnd.curl.mcurl", + @"fly" : @"text/vnd.fly", + @"flx" : @"text/vnd.fmi.flexstor", + @"gv" : @"text/vnd.graphviz", + @"3dml" : @"text/vnd.in3d.3dml", + @"spot" : @"text/vnd.in3d.spot", + @"jad" : @"text/vnd.sun.j2me.app-descriptor", + @"wml" : @"text/vnd.wap.wml", + @"wmls" : @"text/vnd.wap.wmlscript", + @"s" : @"text/x-asm", + @"c" : @"text/x-c", + @"f" : @"text/x-fortran", + @"p" : @"text/x-pascal", + @"java" : @"text/x-java-source", + @"etx" : @"text/x-setext", + @"uu" : @"text/x-uuencode", + @"vcs" : @"text/x-vcalendar", + @"vcf" : @"text/x-vcard", + @"3gp" : @"video/3gpp", + @"3g2" : @"video/3gpp2", + @"h261" : @"video/h261", + @"h263" : @"video/h263", + @"h264" : @"video/h264", + @"jpgv" : @"video/jpeg", + @"jpm" : @"video/jpm", + @"mj2" : @"video/mj2", + @"mp4" : @"video/mp4", + @"mpeg" : @"video/mpeg", + @"ogv" : @"video/ogg", + @"qt" : @"video/quicktime", + @"uvh" : @"video/vnd.dece.hd", + @"uvm" : @"video/vnd.dece.mobile", + @"uvp" : @"video/vnd.dece.pd", + @"uvs" : @"video/vnd.dece.sd", + @"uvv" : @"video/vnd.dece.video", + @"fvt" : @"video/vnd.fvt", + @"mxu" : @"video/vnd.mpegurl", + @"pyv" : @"video/vnd.ms-playready.media.pyv", + @"uvu" : @"video/vnd.uvvu.mp4", + @"viv" : @"video/vnd.vivo", + @"webm" : @"video/webm", + @"f4v" : @"video/x-f4v", + @"fli" : @"video/x-fli", + @"flv" : @"video/x-flv", + @"m4v" : @"video/x-m4v", + @"asf" : @"video/x-ms-asf", + @"wm" : @"video/x-ms-wm", + @"wmv" : @"video/x-ms-wmv", + @"wmx" : @"video/x-ms-wmx", + @"wvx" : @"video/x-ms-wvx", + @"avi" : @"video/x-msvideo", + @"movie" : @"video/x-sgi-movie", + @"ice" : @"x-conference/x-cooltalk", + @"par " : @"text/plain-bas", + @"yaml" : @"text/yaml" + }; + NSString *pathExtension; + if (filePathURL) { + pathExtension = filePathURL.pathExtension; + } + if (!(pathExtension.length) && fileName) { + pathExtension = fileName.pathExtension; + } + if (!pathExtension) { + return @"application/octet-stream"; + } + NSString *mineType = mimeMap[pathExtension.lowercaseString]; + return mineType ? mineType : @"application/octet-stream"; +} diff --git a/Pods/QCloudCore/QCloudCore/Classes/Base/QCLOUDFileUtils/QCloudModel.h b/Pods/QCloudCore/QCloudCore/Classes/Base/QCLOUDFileUtils/QCloudModel.h new file mode 100644 index 0000000..a993a91 --- /dev/null +++ b/Pods/QCloudCore/QCloudCore/Classes/Base/QCLOUDFileUtils/QCloudModel.h @@ -0,0 +1,13 @@ +// +// QCloudModel.h +// Pods +// +// Created by Dong Zhao on 2017/3/8. +// +// + +#import + +@interface QCloudModel : NSObject + +@end diff --git a/Pods/QCloudCore/QCloudCore/Classes/Base/QCLOUDFileUtils/QCloudModel.m b/Pods/QCloudCore/QCloudCore/Classes/Base/QCLOUDFileUtils/QCloudModel.m new file mode 100644 index 0000000..da38782 --- /dev/null +++ b/Pods/QCloudCore/QCloudCore/Classes/Base/QCLOUDFileUtils/QCloudModel.m @@ -0,0 +1,13 @@ +// +// QCloudModel.m +// Pods +// +// Created by Dong Zhao on 2017/3/8. +// +// + +#import "QCloudModel.h" + +@implementation QCloudModel + +@end diff --git a/Pods/QCloudCore/QCloudCore/Classes/Base/QCLOUDFileUtils/QCloudSHAPart.h b/Pods/QCloudCore/QCloudCore/Classes/Base/QCLOUDFileUtils/QCloudSHAPart.h new file mode 100644 index 0000000..eab7de0 --- /dev/null +++ b/Pods/QCloudCore/QCloudCore/Classes/Base/QCLOUDFileUtils/QCloudSHAPart.h @@ -0,0 +1,26 @@ +// +// QCloudSHAPart.h +// Pods +// +// Created by Dong Zhao on 2017/3/8. +// +// + +#import "QCloudModel.h" +@interface QCloudSHAPart : QCloudModel + +/** + sha值 + */ +@property (nonatomic, strong) NSString *datasha; + +/** + offset + */ +@property (nonatomic, assign) uint64_t offset; + +/** + 长度 + */ +@property (nonatomic, assign) uint64_t datalen; +@end diff --git a/Pods/QCloudCore/QCloudCore/Classes/Base/QCLOUDFileUtils/QCloudSHAPart.m b/Pods/QCloudCore/QCloudCore/Classes/Base/QCLOUDFileUtils/QCloudSHAPart.m new file mode 100644 index 0000000..55e07ff --- /dev/null +++ b/Pods/QCloudCore/QCloudCore/Classes/Base/QCLOUDFileUtils/QCloudSHAPart.m @@ -0,0 +1,13 @@ +// +// QCloudSHAPart.m +// Pods +// +// Created by Dong Zhao on 2017/3/8. +// +// + +#import "QCloudSHAPart.h" + +@implementation QCloudSHAPart + +@end diff --git a/Pods/QCloudCore/QCloudCore/Classes/Base/QCLOUDObjectModel/NSObject+QCloudModel.h b/Pods/QCloudCore/QCloudCore/Classes/Base/QCLOUDObjectModel/NSObject+QCloudModel.h new file mode 100644 index 0000000..4794db4 --- /dev/null +++ b/Pods/QCloudCore/QCloudCore/Classes/Base/QCLOUDObjectModel/NSObject+QCloudModel.h @@ -0,0 +1,320 @@ +// +// NSObject+QCloudModel.h +// QCloudModel +// +// Created by ibireme on 15/5/10. +// Copyright (c) 2015 ibireme. +// +// This source code is licensed under the MIT-style license found in the +// LICENSE file in the root directory of this source tree. +// + +#import + +NS_ASSUME_NONNULL_BEGIN + +/** + Provide some data-model method: + + * Convert json to any object, or convert any object to json. + * Set object properties with a key-value dictionary (like KVC). + * Implementations of `NSCoding`, `NSCopying`, `-hash` and `-isEqual:`. + + See `QCloudModel` protocol for custom methods. + + + + */ +@interface NSObject (QCloudModel) + +/** + Creates and returns a new instance of the receiver from a json. + This method is thread-safe. + + @param json A json object in `NSDictionary`, `NSString` or `NSData`. + + @return A new instance created from the json, or nil if an error occurs. + */ ++ (nullable instancetype)qcloud_modelWithJSON:(id)json; + +/** + Creates and returns a new instance of the receiver from a key-value dictionary. + This method is thread-safe. + + @param dictionary A key-value dictionary mapped to the instance's properties. + Any invalid key-value pair in dictionary will be ignored. + + @return A new instance created from the dictionary, or nil if an error occurs. + + @discussion The key in `dictionary` will mapped to the reciever's property name, + and the value will set to the property. If the value's type does not match the + property, this method will try to convert the value based on these rules: + + `NSString` or `NSNumber` -> c number, such as BOOL, int, long, float, NSUInteger... + `NSString` -> NSDate, parsed with format "yyyy-MM-dd'T'HH:mm:ssZ", "yyyy-MM-dd HH:mm:ss" or "yyyy-MM-dd". + `NSString` -> NSURL. + `NSValue` -> struct or union, such as CGRect, CGSize, ... + `NSString` -> SEL, Class. + */ ++ (nullable instancetype)qcloud_modelWithDictionary:(NSDictionary *)dictionary; + +/** + Set the receiver's properties with a json object. + + @discussion Any invalid data in json will be ignored. + + @param json A json object of `NSDictionary`, `NSString` or `NSData`, mapped to the + receiver's properties. + + @return Whether succeed. + */ +- (BOOL)qcloud_modelSetWithJSON:(id)json; + +/** + Set the receiver's properties with a key-value dictionary. + + @param dic A key-value dictionary mapped to the receiver's properties. + Any invalid key-value pair in dictionary will be ignored. + + @discussion The key in `dictionary` will mapped to the reciever's property name, + and the value will set to the property. If the value's type doesn't match the + property, this method will try to convert the value based on these rules: + + `NSString`, `NSNumber` -> c number, such as BOOL, int, long, float, NSUInteger... + `NSString` -> NSDate, parsed with format "yyyy-MM-dd'T'HH:mm:ssZ", "yyyy-MM-dd HH:mm:ss" or "yyyy-MM-dd". + `NSString` -> NSURL. + `NSValue` -> struct or union, such as CGRect, CGSize, ... + `NSString` -> SEL, Class. + + @return Whether succeed. + */ +- (BOOL)qcloud_modelSetWithDictionary:(NSDictionary *)dic; + +/** + Generate a json object from the receiver's properties. + + @return A json object in `NSDictionary` or `NSArray`, or nil if an error occurs. + See [NSJSONSerialization isValidJSONObject] for more information. + + @discussion Any of the invalid property is ignored. + If the reciver is `NSArray`, `NSDictionary` or `NSSet`, it just convert + the inner object to json object. + */ +- (nullable id)qcloud_modelToJSONObject; + +/** + Generate a json string's data from the receiver's properties. + + @return A json string's data, or nil if an error occurs. + + @discussion Any of the invalid property is ignored. + If the reciver is `NSArray`, `NSDictionary` or `NSSet`, it will also convert the + inner object to json string. + */ +- (nullable NSData *)qcloud_modelToJSONData; + +/** + Generate a json string from the receiver's properties. + + @return A json string, or nil if an error occurs. + + @discussion Any of the invalid property is ignored. + If the reciver is `NSArray`, `NSDictionary` or `NSSet`, it will also convert the + inner object to json string. + */ +- (nullable NSString *)qcloud_modelToJSONString; + +/** + Copy a instance with the receiver's properties. + + @return A copied instance, or nil if an error occurs. + */ +- (nullable id)qcloud_modelCopy; + +/** + Encode the receiver's properties to a coder. + + @param aCoder An archiver object. + */ +- (void)qcloud_modelEncodeWithCoder:(NSCoder *)aCoder; + +/** + Decode the receiver's properties from a decoder. + + @param aDecoder An archiver object. + + @return self + */ +- (id)qcloud_modelInitWithCoder:(NSCoder *)aDecoder; + +/** + Get a hash code with the receiver's properties. + + @return Hash code. + */ +- (NSUInteger)qcloud_modelHash; + +/** + Compares the receiver with another object for equality, based on properties. + + @param model Another object. + + @return `YES` if the reciever is equal to the object, otherwise `NO`. + */ +- (BOOL)qcloud_modelIsEqual:(id)model; + +/** + Description method for debugging purposes based on properties. + + @return A string that describes the contents of the receiver. + */ +- (NSString *)qcloud_modelDescription; + +@end + +/** + Provide some data-model method for NSArray. + */ +@interface NSArray (QCloudModel) + +/** + Creates and returns an array from a json-array. + This method is thread-safe. + + @param cls The instance's class in array. + @param json A json array of `NSArray`, `NSString` or `NSData`. + Example: [{"name","Mary"},{name:"Joe"}] + + @return A array, or nil if an error occurs. + */ ++ (nullable NSArray *)qcloud_modelArrayWithClass:(Class)cls json:(id)json; + +@end + +/** + Provide some data-model method for NSDictionary. + */ +@interface NSDictionary (QCloudModel) + +/** + Creates and returns a dictionary from a json. + This method is thread-safe. + + @param cls The value instance's class in dictionary. + @param json A json dictionary of `NSDictionary`, `NSString` or `NSData`. + Example: {"user1":{"name","Mary"}, "user2": {name:"Joe"}} + + @return A dictionary, or nil if an error occurs. + */ ++ (nullable NSDictionary *)qcloud_modelDictionaryWithClass:(Class)cls json:(id)json; +@end + +/** + If the default model transform does not fit to your model class, implement one or + more method in this protocol to change the default key-value transform process. + There's no need to add '' to your class header. + */ +@protocol QCloudModel +@optional + +/** + Custom property mapper. + + @discussion If the key in JSON/Dictionary does not match to the model's property name, + implements this method and returns the additional mapper. + + + @return A custom mapper for properties. + */ ++ (nullable NSDictionary *)modelCustomPropertyMapper; + +/** + The generic class mapper for container properties. + + @discussion If the property is a container object, such as NSArray/NSSet/NSDictionary, + implements this method and returns a property->class mapper, tells which kind of + object will be add to the array/set/dictionary. + + @return A class mapper. + */ ++ (nullable NSDictionary *)modelContainerPropertyGenericClass; + +/** + If you need to create instances of different classes during json->object transform, + use the method to choose custom class based on dictionary data. + + @discussion If the model implements this method, it will be called to determine resulting class + during `+modelWithJSON:`, `+modelWithDictionary:`, conveting object of properties of parent objects + (both singular and containers via `+modelContainerPropertyGenericClass`). + + + @param dictionary The json/kv dictionary. + + @return Class to create from this dictionary, `nil` to use current class. + + */ ++ (nullable Class)modelCustomClassForDictionary:(NSDictionary *)dictionary; + +/** + All the properties in blacklist will be ignored in model transform process. + Returns nil to ignore this feature. + + @return An array of property's name. + */ ++ (nullable NSArray *)modelPropertyBlacklist; + +/** + If a property is not in the whitelist, it will be ignored in model transform process. + Returns nil to ignore this feature. + + @return An array of property's name. + */ ++ (nullable NSArray *)modelPropertyWhitelist; + +/** + This method's behavior is similar to `- (BOOL)modelCustomTransformFromDictionary:(NSDictionary *)dic;`, + but be called before the model transform. + + @discussion If the model implements this method, it will be called before + `+modelWithJSON:`, `+modelWithDictionary:`, `-modelSetWithJSON:` and `-modelSetWithDictionary:`. + If this method returns nil, the transform process will ignore this model. + + @param dic The json/kv dictionary. + + @return Returns the modified dictionary, or nil to ignore this model. + */ +- (NSDictionary *)modelCustomWillTransformFromDictionary:(NSDictionary *)dic; + +/** + If the default json-to-model transform does not fit to your model object, implement + this method to do additional process. You can also use this method to validate the + model's properties. + + @discussion If the model implements this method, it will be called at the end of + `+modelWithJSON:`, `+modelWithDictionary:`, `-modelSetWithJSON:` and `-modelSetWithDictionary:`. + If this method returns NO, the transform process will ignore this model. + + @param dic The json/kv dictionary. + + @return Returns YES if the model is valid, or NO to ignore this model. + */ +- (BOOL)modelCustomTransformFromDictionary:(NSDictionary *)dic; + +/** + If the default model-to-json transform does not fit to your model class, implement + this method to do additional process. You can also use this method to validate the + json dictionary. + + @discussion If the model implements this method, it will be called at the end of + `-modelToJSONObject` and `-modelToJSONString`. + If this method returns NO, the transform process will ignore this json dictionary. + + @param dic The json dictionary. + + @return Returns YES if the model is valid, or NO to ignore this model. + */ +- (BOOL)modelCustomTransformToDictionary:(NSMutableDictionary *)dic; + +@end + +NS_ASSUME_NONNULL_END diff --git a/Pods/QCloudCore/QCloudCore/Classes/Base/QCLOUDObjectModel/NSObject+QCloudModel.m b/Pods/QCloudCore/QCloudCore/Classes/Base/QCLOUDObjectModel/NSObject+QCloudModel.m new file mode 100644 index 0000000..bbfa742 --- /dev/null +++ b/Pods/QCloudCore/QCloudCore/Classes/Base/QCLOUDObjectModel/NSObject+QCloudModel.m @@ -0,0 +1,2002 @@ +// +// NSObject+QCloudModel.m +// QCloudModel +// +// Created by ibireme on 15/5/10. +// Copyright (c) 2015 ibireme. +// +// This source code is licensed under the MIT-style license found in the +// LICENSE file in the root directory of this source tree. +// + +#import "NSObject+QCloudModel.h" +#import "QCloudClassInfo.h" +#import + +#define force_inline __inline__ __attribute__((always_inline)) + +/// Foundation Class Type +typedef NS_ENUM(NSUInteger, QCloudEncodingNSType) { + QCloudEncodingTypeNSUnknown = 0, + QCloudEncodingTypeNSString, + QCloudEncodingTypeNSMutableString, + QCloudEncodingTypeNSValue, + QCloudEncodingTypeNSNumber, + QCloudEncodingTypeNSDecimalNumber, + QCloudEncodingTypeNSData, + QCloudEncodingTypeNSMutableData, + QCloudEncodingTypeNSDate, + QCloudEncodingTypeNSURL, + QCloudEncodingTypeNSArray, + QCloudEncodingTypeNSMutableArray, + QCloudEncodingTypeNSDictionary, + QCloudEncodingTypeNSMutableDictionary, + QCloudEncodingTypeNSSet, + QCloudEncodingTypeNSMutableSet, +}; + +/// Get the Foundation class type from property info. +static force_inline QCloudEncodingNSType QCloudClassGetNSType(Class cls) { + if (!cls) + return QCloudEncodingTypeNSUnknown; + if ([cls isSubclassOfClass:[NSMutableString class]]) + return QCloudEncodingTypeNSMutableString; + if ([cls isSubclassOfClass:[NSString class]]) + return QCloudEncodingTypeNSString; + if ([cls isSubclassOfClass:[NSDecimalNumber class]]) + return QCloudEncodingTypeNSDecimalNumber; + if ([cls isSubclassOfClass:[NSNumber class]]) + return QCloudEncodingTypeNSNumber; + if ([cls isSubclassOfClass:[NSValue class]]) + return QCloudEncodingTypeNSValue; + if ([cls isSubclassOfClass:[NSMutableData class]]) + return QCloudEncodingTypeNSMutableData; + if ([cls isSubclassOfClass:[NSData class]]) + return QCloudEncodingTypeNSData; + if ([cls isSubclassOfClass:[NSDate class]]) + return QCloudEncodingTypeNSDate; + if ([cls isSubclassOfClass:[NSURL class]]) + return QCloudEncodingTypeNSURL; + if ([cls isSubclassOfClass:[NSMutableArray class]]) + return QCloudEncodingTypeNSMutableArray; + if ([cls isSubclassOfClass:[NSArray class]]) + return QCloudEncodingTypeNSArray; + if ([cls isSubclassOfClass:[NSMutableDictionary class]]) + return QCloudEncodingTypeNSMutableDictionary; + if ([cls isSubclassOfClass:[NSDictionary class]]) + return QCloudEncodingTypeNSDictionary; + if ([cls isSubclassOfClass:[NSMutableSet class]]) + return QCloudEncodingTypeNSMutableSet; + if ([cls isSubclassOfClass:[NSSet class]]) + return QCloudEncodingTypeNSSet; + return QCloudEncodingTypeNSUnknown; +} + +/// Whether the type is c number. +static force_inline BOOL QCloudEncodingTypeIsCNumber(QCloudEncodingType type) { + switch (type & QCloudEncodingTypeMask) { + case QCloudEncodingTypeBool: + case QCloudEncodingTypeInt8: + case QCloudEncodingTypeUInt8: + case QCloudEncodingTypeInt16: + case QCloudEncodingTypeUInt16: + case QCloudEncodingTypeInt32: + case QCloudEncodingTypeUInt32: + case QCloudEncodingTypeInt64: + case QCloudEncodingTypeUInt64: + case QCloudEncodingTypeFloat: + case QCloudEncodingTypeDouble: + case QCloudEncodingTypeLongDouble: + return YES; + default: + return NO; + } +} + +/// Parse a number value from 'id'. +static force_inline NSNumber *QCloudNSNumberCreateFromID(__unsafe_unretained id value) { + static NSCharacterSet *dot; + static NSDictionary *dic; + static dispatch_once_t onceToken; + dispatch_once(&onceToken, ^{ + dot = [NSCharacterSet characterSetWithRange:NSMakeRange('.', 1)]; + dic = @{ + @"TRUE" : @(YES), + @"True" : @(YES), + @"true" : @(YES), + @"FALSE" : @(NO), + @"False" : @(NO), + @"false" : @(NO), + @"YES" : @(YES), + @"Yes" : @(YES), + @"yes" : @(YES), + @"NO" : @(NO), + @"No" : @(NO), + @"no" : @(NO), + @"NIL" : (id)kCFNull, + @"Nil" : (id)kCFNull, + @"nil" : (id)kCFNull, + @"NULL" : (id)kCFNull, + @"Null" : (id)kCFNull, + @"null" : (id)kCFNull, + @"(NULL)" : (id)kCFNull, + @"(Null)" : (id)kCFNull, + @"(null)" : (id)kCFNull, + @"" : (id)kCFNull, + @"" : (id)kCFNull, + @"" : (id)kCFNull + }; + }); + + if (!value || value == (id)kCFNull) + return nil; + if ([value isKindOfClass:[NSNumber class]]) + return value; + if ([value isKindOfClass:[NSString class]]) { + NSNumber *num = dic[value]; + if (num != nil) { + if (num == (id)kCFNull) + return nil; + return num; + } + if ([(NSString *)value rangeOfCharacterFromSet:dot].location != NSNotFound) { + const char *cstring = ((NSString *)value).UTF8String; + if (!cstring) + return nil; + double num = atof(cstring); + if (isnan(num) || isinf(num)) + return nil; + return @(num); + } else { + const char *cstring = ((NSString *)value).UTF8String; + if (!cstring) + return nil; + return @(atoll(cstring)); + } + } + return nil; +} + +/// Parse string to date. +static force_inline NSDate *QCloudNSDateFromString(__unsafe_unretained NSString *string) { + typedef NSDate * (^QCloudNSDateParseBlock)(NSString *string); +#define kParserNum 34 + static QCloudNSDateParseBlock blocks[kParserNum + 1] = { 0 }; + static dispatch_once_t onceToken; + dispatch_once(&onceToken, ^{ + { + /* + 2014-01-20 // Google + */ + NSDateFormatter *formatter = [[NSDateFormatter alloc] init]; + formatter.locale = [[NSLocale alloc] initWithLocaleIdentifier:@"en_US_POSIX"]; + formatter.timeZone = [NSTimeZone timeZoneForSecondsFromGMT:0]; + formatter.dateFormat = @"yyyy-MM-dd"; + blocks[10] = ^(NSString *string) { + return [formatter dateFromString:string]; }; +} + +{ + /* + 2014-01-20 12:24:48 + 2014-01-20T12:24:48 // Google + 2014-01-20 12:24:48.000 + 2014-01-20T12:24:48.000 + */ + NSDateFormatter *formatter1 = [[NSDateFormatter alloc] init]; + formatter1.locale = [[NSLocale alloc] initWithLocaleIdentifier:@"en_US_POSIX"]; + formatter1.timeZone = [NSTimeZone timeZoneForSecondsFromGMT:0]; + formatter1.dateFormat = @"yyyy-MM-dd'T'HH:mm:ss"; + + NSDateFormatter *formatter2 = [[NSDateFormatter alloc] init]; + formatter2.locale = [[NSLocale alloc] initWithLocaleIdentifier:@"en_US_POSIX"]; + formatter2.timeZone = [NSTimeZone timeZoneForSecondsFromGMT:0]; + formatter2.dateFormat = @"yyyy-MM-dd HH:mm:ss"; + + NSDateFormatter *formatter3 = [[NSDateFormatter alloc] init]; + formatter3.locale = [[NSLocale alloc] initWithLocaleIdentifier:@"en_US_POSIX"]; + formatter3.timeZone = [NSTimeZone timeZoneForSecondsFromGMT:0]; + formatter3.dateFormat = @"yyyy-MM-dd'T'HH:mm:ss.SSS"; + + NSDateFormatter *formatter4 = [[NSDateFormatter alloc] init]; + formatter4.locale = [[NSLocale alloc] initWithLocaleIdentifier:@"en_US_POSIX"]; + formatter4.timeZone = [NSTimeZone timeZoneForSecondsFromGMT:0]; + formatter4.dateFormat = @"yyyy-MM-dd HH:mm:ss.SSS"; + + blocks[19] = ^(NSString *string) { + if ([string characterAtIndex:10] == 'T') { + return [formatter1 dateFromString:string]; + } else { + return [formatter2 dateFromString:string]; + } + }; + + blocks[23] = ^(NSString *string) { + if ([string characterAtIndex:10] == 'T') { + return [formatter3 dateFromString:string]; + } else { + return [formatter4 dateFromString:string]; + } + }; +} + +{ + /* + 2014-01-20T12:24:48Z // Github, Apple + 2014-01-20T12:24:48+0800 // Facebook + 2014-01-20T12:24:48+12:00 // Google + 2014-01-20T12:24:48.000Z + 2014-01-20T12:24:48.000+0800 + 2014-01-20T12:24:48.000+12:00 + */ + NSDateFormatter *formatter = [NSDateFormatter new]; + formatter.locale = [[NSLocale alloc] initWithLocaleIdentifier:@"en_US_POSIX"]; + formatter.dateFormat = @"yyyy-MM-dd'T'HH:mm:ssZ"; + + NSDateFormatter *formatter2 = [NSDateFormatter new]; + formatter2.locale = [[NSLocale alloc] initWithLocaleIdentifier:@"en_US_POSIX"]; + formatter2.dateFormat = @"yyyy-MM-dd'T'HH:mm:ss.SSSZ"; + + blocks[20] = ^(NSString *string) { + return [formatter dateFromString:string]; + }; + blocks[24] = ^(NSString *string) { + return [formatter dateFromString:string] ?: [formatter2 dateFromString:string]; + }; + blocks[25] = ^(NSString *string) { + return [formatter dateFromString:string]; + }; + blocks[28] = ^(NSString *string) { + return [formatter2 dateFromString:string]; + }; + blocks[29] = ^(NSString *string) { + return [formatter2 dateFromString:string]; + }; +} + +{ + /* + Fri Sep 04 00:12:21 +0800 2015 // Weibo, Twitter + Fri Sep 04 00:12:21.000 +0800 2015 + */ + NSDateFormatter *formatter = [NSDateFormatter new]; + formatter.locale = [[NSLocale alloc] initWithLocaleIdentifier:@"en_US_POSIX"]; + formatter.dateFormat = @"EEE MMM dd HH:mm:ss Z yyyy"; + + NSDateFormatter *formatter2 = [NSDateFormatter new]; + formatter2.locale = [[NSLocale alloc] initWithLocaleIdentifier:@"en_US_POSIX"]; + formatter2.dateFormat = @"EEE MMM dd HH:mm:ss.SSS Z yyyy"; + + blocks[30] = ^(NSString *string) { + return [formatter dateFromString:string]; + }; + blocks[34] = ^(NSString *string) { + return [formatter2 dateFromString:string]; + }; +} +}); +if (!string) + return nil; +if (string.length > kParserNum) + return nil; +QCloudNSDateParseBlock parser = blocks[string.length]; +if (!parser) + return nil; +return parser(string); +#undef kParserNum +} + +/// Get the 'NSBlock' class. +static force_inline Class QCloudNSBlockClass() { + static Class cls; + static dispatch_once_t onceToken; + dispatch_once(&onceToken, ^{ + void (^block)(void) = ^{ + }; + cls = ((NSObject *)block).class; + while (class_getSuperclass(cls) != [NSObject class]) { + cls = class_getSuperclass(cls); + } + }); + return cls; // current is "NSBlock" +} + +/** + Get the ISO date formatter. + + ISO8601 format example: + 2010-07-09T16:13:30+12:00 + 2011-01-11T11:11:11+0000 + 2011-01-26T19:06:43Z + + length: 20/24/25 + */ +static force_inline NSDateFormatter *QCloudISODateFormatter() { + static NSDateFormatter *formatter = nil; + static dispatch_once_t onceToken; + dispatch_once(&onceToken, ^{ + formatter = [[NSDateFormatter alloc] init]; + formatter.locale = [[NSLocale alloc] initWithLocaleIdentifier:@"en_US_POSIX"]; + formatter.dateFormat = @"yyyy-MM-dd'T'HH:mm:ssZ"; + }); + return formatter; +} + +/// Get the value with key paths from dictionary +/// The dic should be NSDictionary, and the keyPath should not be nil. +static force_inline id QCloudValueForKeyPath(__unsafe_unretained NSDictionary *dic, __unsafe_unretained NSArray *keyPaths) { + id value = nil; + for (NSUInteger i = 0, max = keyPaths.count; i < max; i++) { + value = dic[keyPaths[i]]; + if (i + 1 < max) { + if ([value isKindOfClass:[NSDictionary class]]) { + dic = value; + } else { + return nil; + } + } + } + return value; +} + +/// Get the value with multi key (or key path) from dictionary +/// The dic should be NSDictionary +static force_inline id QCloudValueForMultiKeys(__unsafe_unretained NSDictionary *dic, __unsafe_unretained NSArray *multiKeys) { + id value = nil; + for (NSString *key in multiKeys) { + if ([key isKindOfClass:[NSString class]]) { + value = dic[key]; + if (value) + break; + } else { + value = QCloudValueForKeyPath(dic, (NSArray *)key); + if (value) + break; + } + } + return value; +} + +/// A property info in object model. +@interface _QCloudModelPropertyMeta : NSObject { +@package + NSString *_name; ///< property's name + QCloudEncodingType _type; ///< property's type + QCloudEncodingNSType _nsType; ///< property's Foundation type + BOOL _isCNumber; ///< is c number type + Class _cls; ///< property's class, or nil + Class _genericCls; ///< container's generic class, or nil if threr's no generic class + SEL _getter; ///< getter, or nil if the instances cannot respond + SEL _setter; ///< setter, or nil if the instances cannot respond + BOOL _isKVCCompatible; ///< YES if it can access with key-value coding + BOOL _isStructAvailableForKeyedArchiver; ///< YES if the struct can encoded with keyed archiver/unarchiver + BOOL _hasCustomClassFromDictionary; ///< class/generic class implements +modelCustomClassForDictionary: + + /* + property->key: _mappedToKey:key _mappedToKeyPath:nil _mappedToKeyArray:nil + property->keyPath: _mappedToKey:keyPath _mappedToKeyPath:keyPath(array) _mappedToKeyArray:nil + property->keys: _mappedToKey:keys[0] _mappedToKeyPath:nil/keyPath _mappedToKeyArray:keys(array) + */ + NSString *_mappedToKey; ///< the key mapped to + NSArray *_mappedToKeyPath; ///< the key path mapped to (nil if the name is not key path) + NSArray *_mappedToKeyArray; ///< the key(NSString) or keyPath(NSArray) array (nil if not mapped to multiple keys) + QCloudClassPropertyInfo *_info; ///< property's info + _QCloudModelPropertyMeta *_next; ///< next meta if there are multiple properties mapped to the same key. +} +@end + +@implementation _QCloudModelPropertyMeta ++ (instancetype)metaWithClassInfo:(QCloudClassInfo *)classInfo propertyInfo:(QCloudClassPropertyInfo *)propertyInfo generic:(Class)generic { + // support pseudo generic class with protocol name + if (!generic && propertyInfo.protocols) { + for (NSString *protocol in propertyInfo.protocols) { + Class cls = objc_getClass(protocol.UTF8String); + if (cls) { + generic = cls; + break; + } + } + } + + _QCloudModelPropertyMeta *meta = [self new]; + meta->_name = propertyInfo.name; + meta->_type = propertyInfo.type; + meta->_info = propertyInfo; + meta->_genericCls = generic; + + if ((meta->_type & QCloudEncodingTypeMask) == QCloudEncodingTypeObject) { + meta->_nsType = QCloudClassGetNSType(propertyInfo.cls); + } else { + meta->_isCNumber = QCloudEncodingTypeIsCNumber(meta->_type); + } + if ((meta->_type & QCloudEncodingTypeMask) == QCloudEncodingTypeStruct) { + /* + It seems that NSKeyedUnarchiver cannot decode NSValue except these structs: + */ + static NSSet *types = nil; + static dispatch_once_t onceToken; + dispatch_once(&onceToken, ^{ + NSMutableSet *set = [NSMutableSet new]; + // 32 bit + [set addObject:@"{CGSize=ff}"]; + [set addObject:@"{CGPoint=ff}"]; + [set addObject:@"{CGRect={CGPoint=ff}{CGSize=ff}}"]; + [set addObject:@"{CGAffineTransform=ffffff}"]; + [set addObject:@"{UIEdgeInsets=ffff}"]; + [set addObject:@"{UIOffset=ff}"]; + // 64 bit + [set addObject:@"{CGSize=dd}"]; + [set addObject:@"{CGPoint=dd}"]; + [set addObject:@"{CGRect={CGPoint=dd}{CGSize=dd}}"]; + [set addObject:@"{CGAffineTransform=dddddd}"]; + [set addObject:@"{UIEdgeInsets=dddd}"]; + [set addObject:@"{UIOffset=dd}"]; + types = set; + }); + if ([types containsObject:propertyInfo.typeEncoding]) { + meta->_isStructAvailableForKeyedArchiver = YES; + } + } + meta->_cls = propertyInfo.cls; + + if (generic) { + meta->_hasCustomClassFromDictionary = [generic respondsToSelector:@selector(modelCustomClassForDictionary:)]; + } else if (meta->_cls && meta->_nsType == QCloudEncodingTypeNSUnknown) { + meta->_hasCustomClassFromDictionary = [meta->_cls respondsToSelector:@selector(modelCustomClassForDictionary:)]; + } + + if (propertyInfo.getter) { + if ([classInfo.cls instancesRespondToSelector:propertyInfo.getter]) { + meta->_getter = propertyInfo.getter; + } + } + if (propertyInfo.setter) { + if ([classInfo.cls instancesRespondToSelector:propertyInfo.setter]) { + meta->_setter = propertyInfo.setter; + } + } + + if (meta->_getter && meta->_setter) { + /* + KVC invalid type: + long double + pointer (such as SEL/CoreFoundation object) + */ + switch (meta->_type & QCloudEncodingTypeMask) { + case QCloudEncodingTypeBool: + case QCloudEncodingTypeInt8: + case QCloudEncodingTypeUInt8: + case QCloudEncodingTypeInt16: + case QCloudEncodingTypeUInt16: + case QCloudEncodingTypeInt32: + case QCloudEncodingTypeUInt32: + case QCloudEncodingTypeInt64: + case QCloudEncodingTypeUInt64: + case QCloudEncodingTypeFloat: + case QCloudEncodingTypeDouble: + case QCloudEncodingTypeObject: + case QCloudEncodingTypeClass: + case QCloudEncodingTypeBlock: + case QCloudEncodingTypeStruct: + case QCloudEncodingTypeUnion: { + meta->_isKVCCompatible = YES; + } break; + default: + break; + } + } + + return meta; +} +@end + +/// A class info in object model. +@interface _QCloudModelMeta : NSObject { +@package + QCloudClassInfo *_classInfo; + /// Key:mapped key and key path, Value:_QCloudModelPropertyMeta. + NSDictionary *_mapper; + /// Array<_QCloudModelPropertyMeta>, all property meta of this model. + NSArray *_allPropertyMetas; + /// Array<_QCloudModelPropertyMeta>, property meta which is mapped to a key path. + NSArray *_keyPathPropertyMetas; + /// Array<_QCloudModelPropertyMeta>, property meta which is mapped to multi keys. + NSArray *_multiKeysPropertyMetas; + /// The number of mapped key (and key path), same to _mapper.count. + NSUInteger _keyMappedCount; + /// Model class type. + QCloudEncodingNSType _nsType; + + BOOL _hasCustomWillTransformFromDictionary; + BOOL _hasCustomTransformFromDictionary; + BOOL _hasCustomTransformToDictionary; + BOOL _hasCustomClassFromDictionary; +} +@end + +@implementation _QCloudModelMeta +- (instancetype)initWithClass:(Class)cls { + QCloudClassInfo *classInfo = [QCloudClassInfo classInfoWithClass:cls]; + if (!classInfo) + return nil; + self = [super init]; + + // Get black list + NSSet *blacklist = nil; + if ([cls respondsToSelector:@selector(modelPropertyBlacklist)]) { + NSArray *properties = [(id)cls modelPropertyBlacklist]; + if (properties) { + blacklist = [NSSet setWithArray:properties]; + } + } + + // Get white list + NSSet *whitelist = nil; + if ([cls respondsToSelector:@selector(modelPropertyWhitelist)]) { + NSArray *properties = [(id)cls modelPropertyWhitelist]; + if (properties) { + whitelist = [NSSet setWithArray:properties]; + } + } + + // Get container property's generic class + NSDictionary *genericMapper = nil; + if ([cls respondsToSelector:@selector(modelContainerPropertyGenericClass)]) { + genericMapper = [(id)cls modelContainerPropertyGenericClass]; + if (genericMapper) { + NSMutableDictionary *tmp = [NSMutableDictionary new]; + [genericMapper enumerateKeysAndObjectsUsingBlock:^(id key, id obj, BOOL *stop) { + if (![key isKindOfClass:[NSString class]]) + return; + Class meta = object_getClass(obj); + if (!meta) + return; + if (class_isMetaClass(meta)) { + tmp[key] = obj; + } else if ([obj isKindOfClass:[NSString class]]) { + Class cls = NSClassFromString(obj); + if (cls) { + tmp[key] = cls; + } + } + }]; + genericMapper = tmp; + } + } + + // Create all property metas. + NSMutableDictionary *allPropertyMetas = [NSMutableDictionary new]; + QCloudClassInfo *curClassInfo = classInfo; + while (curClassInfo && curClassInfo.superCls != nil) { // recursive parse super class, but ignore root class (NSObject/NSProxy) + for (QCloudClassPropertyInfo *propertyInfo in curClassInfo.propertyInfos.allValues) { + if (!propertyInfo.name) + continue; + if (blacklist && [blacklist containsObject:propertyInfo.name]) + continue; + if (whitelist && ![whitelist containsObject:propertyInfo.name]) + continue; + _QCloudModelPropertyMeta *meta = [_QCloudModelPropertyMeta metaWithClassInfo:classInfo + propertyInfo:propertyInfo + generic:genericMapper[propertyInfo.name]]; + if (!meta || !meta->_name) + continue; + if (!meta->_getter || !meta->_setter) + continue; + if (allPropertyMetas[meta->_name]) + continue; + allPropertyMetas[meta->_name] = meta; + } + curClassInfo = curClassInfo.superClassInfo; + } + if (allPropertyMetas.count) + _allPropertyMetas = allPropertyMetas.allValues.copy; + + // create mapper + NSMutableDictionary *mapper = [NSMutableDictionary new]; + NSMutableArray *keyPathPropertyMetas = [NSMutableArray new]; + NSMutableArray *multiKeysPropertyMetas = [NSMutableArray new]; + + if ([cls respondsToSelector:@selector(modelCustomPropertyMapper)]) { + NSDictionary *customMapper = [(id)cls modelCustomPropertyMapper]; + [customMapper enumerateKeysAndObjectsUsingBlock:^(NSString *propertyName, NSString *mappedToKey, BOOL *stop) { + _QCloudModelPropertyMeta *propertyMeta = allPropertyMetas[propertyName]; + if (!propertyMeta) + return; + [allPropertyMetas removeObjectForKey:propertyName]; + + if ([mappedToKey isKindOfClass:[NSString class]]) { + if (mappedToKey.length == 0) + return; + + propertyMeta->_mappedToKey = mappedToKey; + NSArray *keyPath = [mappedToKey componentsSeparatedByString:@"."]; + for (NSString *onePath in keyPath) { + if (onePath.length == 0) { + NSMutableArray *tmp = keyPath.mutableCopy; + [tmp removeObject:@""]; + keyPath = tmp; + break; + } + } + if (keyPath.count > 1) { + propertyMeta->_mappedToKeyPath = keyPath; + [keyPathPropertyMetas addObject:propertyMeta]; + } + propertyMeta->_next = mapper[mappedToKey] ?: nil; + mapper[mappedToKey] = propertyMeta; + + } else if ([mappedToKey isKindOfClass:[NSArray class]]) { + NSMutableArray *mappedToKeyArray = [NSMutableArray new]; + for (NSString *oneKey in ((NSArray *)mappedToKey)) { + if (![oneKey isKindOfClass:[NSString class]]) + continue; + if (oneKey.length == 0) + continue; + + NSArray *keyPath = [oneKey componentsSeparatedByString:@"."]; + if (keyPath.count > 1) { + [mappedToKeyArray addObject:keyPath]; + } else { + [mappedToKeyArray addObject:oneKey]; + } + + if (!propertyMeta->_mappedToKey) { + propertyMeta->_mappedToKey = oneKey; + propertyMeta->_mappedToKeyPath = keyPath.count > 1 ? keyPath : nil; + } + } + if (!propertyMeta->_mappedToKey) + return; + + propertyMeta->_mappedToKeyArray = mappedToKeyArray; + [multiKeysPropertyMetas addObject:propertyMeta]; + + propertyMeta->_next = mapper[mappedToKey] ?: nil; + mapper[mappedToKey] = propertyMeta; + } + }]; + } + + [allPropertyMetas enumerateKeysAndObjectsUsingBlock:^(NSString *name, _QCloudModelPropertyMeta *propertyMeta, BOOL *stop) { + propertyMeta->_mappedToKey = name; + propertyMeta->_next = mapper[name] ?: nil; + mapper[name] = propertyMeta; + }]; + + if (mapper.count) + _mapper = mapper; + if (keyPathPropertyMetas) + _keyPathPropertyMetas = keyPathPropertyMetas; + if (multiKeysPropertyMetas) + _multiKeysPropertyMetas = multiKeysPropertyMetas; + + _classInfo = classInfo; + _keyMappedCount = _allPropertyMetas.count; + _nsType = QCloudClassGetNSType(cls); + _hasCustomWillTransformFromDictionary = ([cls instancesRespondToSelector:@selector(modelCustomWillTransformFromDictionary:)]); + _hasCustomTransformFromDictionary = ([cls instancesRespondToSelector:@selector(modelCustomTransformFromDictionary:)]); + _hasCustomTransformToDictionary = ([cls instancesRespondToSelector:@selector(modelCustomTransformToDictionary:)]); + _hasCustomClassFromDictionary = ([cls respondsToSelector:@selector(modelCustomClassForDictionary:)]); + + return self; +} + +/// Returns the cached model class meta ++ (instancetype)metaWithClass:(Class)cls { + if (!cls) + return nil; + static CFMutableDictionaryRef cache; + static dispatch_once_t onceToken; + static dispatch_semaphore_t lock; + dispatch_once(&onceToken, ^{ + cache = CFDictionaryCreateMutable(CFAllocatorGetDefault(), 0, &kCFTypeDictionaryKeyCallBacks, &kCFTypeDictionaryValueCallBacks); + lock = dispatch_semaphore_create(1); + }); + dispatch_semaphore_wait(lock, DISPATCH_TIME_FOREVER); + _QCloudModelMeta *meta = CFDictionaryGetValue(cache, (__bridge const void *)(cls)); + dispatch_semaphore_signal(lock); + if (!meta || meta->_classInfo.needUpdate) { + meta = [[_QCloudModelMeta alloc] initWithClass:cls]; + if (meta) { + dispatch_semaphore_wait(lock, DISPATCH_TIME_FOREVER); + CFDictionarySetValue(cache, (__bridge const void *)(cls), (__bridge const void *)(meta)); + dispatch_semaphore_signal(lock); + } + } + return meta; +} + +@end + +/** + Get number from property. + @discussion Caller should hold strong reference to the parameters before this function returns. + @param model Should not be nil. + @param meta Should not be nil, meta.isCNumber should be YES, meta.getter should not be nil. + @return A number object, or nil if failed. + */ +static force_inline NSNumber *qcloudModelCreateNumberFromProperty(__unsafe_unretained id model, __unsafe_unretained _QCloudModelPropertyMeta *meta) { + switch (meta->_type & QCloudEncodingTypeMask) { + case QCloudEncodingTypeBool: { + return @(((bool (*)(id, SEL))(void *)objc_msgSend)((id)model, meta->_getter)); + } + case QCloudEncodingTypeInt8: { + return @(((int8_t(*)(id, SEL))(void *)objc_msgSend)((id)model, meta->_getter)); + } + case QCloudEncodingTypeUInt8: { + return @(((uint8_t(*)(id, SEL))(void *)objc_msgSend)((id)model, meta->_getter)); + } + case QCloudEncodingTypeInt16: { + return @(((int16_t(*)(id, SEL))(void *)objc_msgSend)((id)model, meta->_getter)); + } + case QCloudEncodingTypeUInt16: { + return @(((uint16_t(*)(id, SEL))(void *)objc_msgSend)((id)model, meta->_getter)); + } + case QCloudEncodingTypeInt32: { + return @(((int32_t(*)(id, SEL))(void *)objc_msgSend)((id)model, meta->_getter)); + } + case QCloudEncodingTypeUInt32: { + return @(((uint32_t(*)(id, SEL))(void *)objc_msgSend)((id)model, meta->_getter)); + } + case QCloudEncodingTypeInt64: { + return @(((int64_t(*)(id, SEL))(void *)objc_msgSend)((id)model, meta->_getter)); + } + case QCloudEncodingTypeUInt64: { + return @(((uint64_t(*)(id, SEL))(void *)objc_msgSend)((id)model, meta->_getter)); + } + case QCloudEncodingTypeFloat: { + float num = ((float (*)(id, SEL))(void *)objc_msgSend)((id)model, meta->_getter); + if (isnan(num) || isinf(num)) + return nil; + return @(num); + } + case QCloudEncodingTypeDouble: { + double num = ((double (*)(id, SEL))(void *)objc_msgSend)((id)model, meta->_getter); + if (isnan(num) || isinf(num)) + return nil; + return @(num); + } + case QCloudEncodingTypeLongDouble: { + double num = ((long double (*)(id, SEL))(void *)objc_msgSend)((id)model, meta->_getter); + if (isnan(num) || isinf(num)) + return nil; + return @(num); + } + default: + return nil; + } +} + +/** + Set number to property. + @discussion Caller should hold strong reference to the parameters before this function returns. + @param model Should not be nil. + @param num Can be nil. + @param meta Should not be nil, meta.isCNumber should be YES, meta.setter should not be nil. + */ +static force_inline void qcloudModelSetNumberToProperty(__unsafe_unretained id model, __unsafe_unretained NSNumber *num, + __unsafe_unretained _QCloudModelPropertyMeta *meta) { + switch (meta->_type & QCloudEncodingTypeMask) { + case QCloudEncodingTypeBool: { + ((void (*)(id, SEL, bool))(void *)objc_msgSend)((id)model, meta->_setter, num.boolValue); + } break; + case QCloudEncodingTypeInt8: { + ((void (*)(id, SEL, int8_t))(void *)objc_msgSend)((id)model, meta->_setter, (int8_t)num.charValue); + } break; + case QCloudEncodingTypeUInt8: { + ((void (*)(id, SEL, uint8_t))(void *)objc_msgSend)((id)model, meta->_setter, (uint8_t)num.unsignedCharValue); + } break; + case QCloudEncodingTypeInt16: { + ((void (*)(id, SEL, int16_t))(void *)objc_msgSend)((id)model, meta->_setter, (int16_t)num.shortValue); + } break; + case QCloudEncodingTypeUInt16: { + ((void (*)(id, SEL, uint16_t))(void *)objc_msgSend)((id)model, meta->_setter, (uint16_t)num.unsignedShortValue); + } break; + case QCloudEncodingTypeInt32: { + ((void (*)(id, SEL, int32_t))(void *)objc_msgSend)((id)model, meta->_setter, (int32_t)num.intValue); + } break; + case QCloudEncodingTypeUInt32: { + ((void (*)(id, SEL, uint32_t))(void *)objc_msgSend)((id)model, meta->_setter, (uint32_t)num.unsignedIntValue); + } break; + case QCloudEncodingTypeInt64: { + if ([num isKindOfClass:[NSDecimalNumber class]]) { + ((void (*)(id, SEL, int64_t))(void *)objc_msgSend)((id)model, meta->_setter, (int64_t)num.stringValue.longLongValue); + } else { + ((void (*)(id, SEL, uint64_t))(void *)objc_msgSend)((id)model, meta->_setter, (uint64_t)num.longLongValue); + } + } break; + case QCloudEncodingTypeUInt64: { + if ([num isKindOfClass:[NSDecimalNumber class]]) { + ((void (*)(id, SEL, int64_t))(void *)objc_msgSend)((id)model, meta->_setter, (int64_t)num.stringValue.longLongValue); + } else { + ((void (*)(id, SEL, uint64_t))(void *)objc_msgSend)((id)model, meta->_setter, (uint64_t)num.unsignedLongLongValue); + } + } break; + case QCloudEncodingTypeFloat: { + float f = num.floatValue; + if (isnan(f) || isinf(f)) + f = 0; + ((void (*)(id, SEL, float))(void *)objc_msgSend)((id)model, meta->_setter, f); + } break; + case QCloudEncodingTypeDouble: { + double d = num.doubleValue; + if (isnan(d) || isinf(d)) + d = 0; + ((void (*)(id, SEL, double))(void *)objc_msgSend)((id)model, meta->_setter, d); + } break; + case QCloudEncodingTypeLongDouble: { + long double d = num.doubleValue; + if (isnan(d) || isinf(d)) + d = 0; + ((void (*)(id, SEL, long double))(void *)objc_msgSend)((id)model, meta->_setter, (long double)d); + } // break; commented for code coverage in next line + default: + break; + } +} + +/** + Set value to model with a property meta. + + @discussion Caller should hold strong reference to the parameters before this function returns. + + @param model Should not be nil. + @param value Should not be nil, but can be NSNull. + @param meta Should not be nil, and meta->_setter should not be nil. + */ +static void qcloudModelSetValueForProperty(__unsafe_unretained id model, __unsafe_unretained id value, __unsafe_unretained _QCloudModelPropertyMeta *meta) { + if (meta->_isCNumber) { + NSNumber *num = QCloudNSNumberCreateFromID(value); + qcloudModelSetNumberToProperty(model, num, meta); + if (num != nil) + [num class]; // hold the number + } else if (meta->_nsType) { + if (value == (id)kCFNull) { + ((void (*)(id, SEL, id))(void *)objc_msgSend)((id)model, meta->_setter, (id)nil); + } else { + switch (meta->_nsType) { + case QCloudEncodingTypeNSString: + case QCloudEncodingTypeNSMutableString: { + if ([value isKindOfClass:[NSString class]]) { + if (meta->_nsType == QCloudEncodingTypeNSString) { + ((void (*)(id, SEL, id))(void *)objc_msgSend)((id)model, meta->_setter, value); + } else { + ((void (*)(id, SEL, id))(void *)objc_msgSend)((id)model, meta->_setter, ((NSString *)value).mutableCopy); + } + } else if ([value isKindOfClass:[NSNumber class]]) { + ((void (*)(id, SEL, id))(void *)objc_msgSend)((id)model, meta->_setter, + (meta->_nsType == QCloudEncodingTypeNSString) + ? ((NSNumber *)value).stringValue + : ((NSNumber *)value).stringValue.mutableCopy); + } else if ([value isKindOfClass:[NSData class]]) { + NSMutableString *string = [[NSMutableString alloc] initWithData:value encoding:NSUTF8StringEncoding]; + ((void (*)(id, SEL, id))(void *)objc_msgSend)((id)model, meta->_setter, string); + } else if ([value isKindOfClass:[NSURL class]]) { + ((void (*)(id, SEL, id))(void *)objc_msgSend)((id)model, meta->_setter, + (meta->_nsType == QCloudEncodingTypeNSString) + ? ((NSURL *)value).absoluteString + : ((NSURL *)value).absoluteString.mutableCopy); + } else if ([value isKindOfClass:[NSAttributedString class]]) { + ((void (*)(id, SEL, id))(void *)objc_msgSend)((id)model, meta->_setter, + (meta->_nsType == QCloudEncodingTypeNSString) + ? ((NSAttributedString *)value).string + : ((NSAttributedString *)value).string.mutableCopy); + } + } break; + + case QCloudEncodingTypeNSValue: + case QCloudEncodingTypeNSNumber: + case QCloudEncodingTypeNSDecimalNumber: { + if (meta->_nsType == QCloudEncodingTypeNSNumber) { + ((void (*)(id, SEL, id))(void *)objc_msgSend)((id)model, meta->_setter, QCloudNSNumberCreateFromID(value)); + } else if (meta->_nsType == QCloudEncodingTypeNSDecimalNumber) { + if ([value isKindOfClass:[NSDecimalNumber class]]) { + ((void (*)(id, SEL, id))(void *)objc_msgSend)((id)model, meta->_setter, value); + } else if ([value isKindOfClass:[NSNumber class]]) { + NSDecimalNumber *decNum = [NSDecimalNumber decimalNumberWithDecimal:[((NSNumber *)value) decimalValue]]; + ((void (*)(id, SEL, id))(void *)objc_msgSend)((id)model, meta->_setter, decNum); + } else if ([value isKindOfClass:[NSString class]]) { + NSDecimalNumber *decNum = [NSDecimalNumber decimalNumberWithString:value]; + NSDecimal dec = decNum.decimalValue; + if (dec._length == 0 && dec._isNegative) { + decNum = nil; // NaN + } + ((void (*)(id, SEL, id))(void *)objc_msgSend)((id)model, meta->_setter, decNum); + } + } else { // QCloudEncodingTypeNSValue + if ([value isKindOfClass:[NSValue class]]) { + ((void (*)(id, SEL, id))(void *)objc_msgSend)((id)model, meta->_setter, value); + } + } + } break; + + case QCloudEncodingTypeNSData: + case QCloudEncodingTypeNSMutableData: { + if ([value isKindOfClass:[NSData class]]) { + if (meta->_nsType == QCloudEncodingTypeNSData) { + ((void (*)(id, SEL, id))(void *)objc_msgSend)((id)model, meta->_setter, value); + } else { + NSMutableData *data = ((NSData *)value).mutableCopy; + ((void (*)(id, SEL, id))(void *)objc_msgSend)((id)model, meta->_setter, data); + } + } else if ([value isKindOfClass:[NSString class]]) { + NSData *data = [(NSString *)value dataUsingEncoding:NSUTF8StringEncoding]; + if (meta->_nsType == QCloudEncodingTypeNSMutableData) { + data = ((NSData *)data).mutableCopy; + } + ((void (*)(id, SEL, id))(void *)objc_msgSend)((id)model, meta->_setter, data); + } + } break; + + case QCloudEncodingTypeNSDate: { + if ([value isKindOfClass:[NSDate class]]) { + ((void (*)(id, SEL, id))(void *)objc_msgSend)((id)model, meta->_setter, value); + } else if ([value isKindOfClass:[NSString class]]) { + ((void (*)(id, SEL, id))(void *)objc_msgSend)((id)model, meta->_setter, QCloudNSDateFromString(value)); + } + } break; + + case QCloudEncodingTypeNSURL: { + if ([value isKindOfClass:[NSURL class]]) { + ((void (*)(id, SEL, id))(void *)objc_msgSend)((id)model, meta->_setter, value); + } else if ([value isKindOfClass:[NSString class]]) { + NSCharacterSet *set = [NSCharacterSet whitespaceAndNewlineCharacterSet]; + NSString *str = [value stringByTrimmingCharactersInSet:set]; + if (str.length == 0) { + ((void (*)(id, SEL, id))(void *)objc_msgSend)((id)model, meta->_setter, nil); + } else { + ((void (*)(id, SEL, id))(void *)objc_msgSend)((id)model, meta->_setter, [[NSURL alloc] initWithString:str]); + } + } + } break; + + case QCloudEncodingTypeNSArray: + case QCloudEncodingTypeNSMutableArray: { + if (meta->_genericCls) { + NSArray *valueArr = nil; + if ([value isKindOfClass:[NSArray class]]) + valueArr = value; + else if ([value isKindOfClass:[NSSet class]]) + valueArr = ((NSSet *)value).allObjects; + if (valueArr) { + NSMutableArray *objectArr = [NSMutableArray new]; + for (id one in valueArr) { + if ([one isKindOfClass:meta->_genericCls]) { + [objectArr addObject:one]; + } else if ([one isKindOfClass:[NSDictionary class]]) { + Class cls = meta->_genericCls; + if (meta->_hasCustomClassFromDictionary) { + cls = [cls modelCustomClassForDictionary:one]; + if (!cls) + cls = meta->_genericCls; // for xcode code coverage + } + NSObject *newOne = [cls new]; + [newOne qcloud_modelSetWithDictionary:one]; + if (newOne) + [objectArr addObject:newOne]; + } + } + ((void (*)(id, SEL, id))(void *)objc_msgSend)((id)model, meta->_setter, objectArr); + } + } else { + if ([value isKindOfClass:[NSArray class]]) { + if (meta->_nsType == QCloudEncodingTypeNSArray) { + ((void (*)(id, SEL, id))(void *)objc_msgSend)((id)model, meta->_setter, value); + } else { + ((void (*)(id, SEL, id))(void *)objc_msgSend)((id)model, meta->_setter, ((NSArray *)value).mutableCopy); + } + } else if ([value isKindOfClass:[NSSet class]]) { + if (meta->_nsType == QCloudEncodingTypeNSArray) { + ((void (*)(id, SEL, id))(void *)objc_msgSend)((id)model, meta->_setter, ((NSSet *)value).allObjects); + } else { + ((void (*)(id, SEL, id))(void *)objc_msgSend)((id)model, meta->_setter, ((NSSet *)value).allObjects.mutableCopy); + } + } + } + } break; + + case QCloudEncodingTypeNSDictionary: + case QCloudEncodingTypeNSMutableDictionary: { + if ([value isKindOfClass:[NSDictionary class]]) { + if (meta->_genericCls) { + NSMutableDictionary *dic = [NSMutableDictionary new]; + [((NSDictionary *)value) enumerateKeysAndObjectsUsingBlock:^(NSString *oneKey, id oneValue, BOOL *stop) { + if ([oneValue isKindOfClass:[NSDictionary class]]) { + Class cls = meta->_genericCls; + if (meta->_hasCustomClassFromDictionary) { + cls = [cls modelCustomClassForDictionary:oneValue]; + if (!cls) + cls = meta->_genericCls; // for xcode code coverage + } + NSObject *newOne = [cls new]; + [newOne qcloud_modelSetWithDictionary:(id)oneValue]; + if (newOne) + dic[oneKey] = newOne; + } + }]; + ((void (*)(id, SEL, id))(void *)objc_msgSend)((id)model, meta->_setter, dic); + } else { + if (meta->_nsType == QCloudEncodingTypeNSDictionary) { + ((void (*)(id, SEL, id))(void *)objc_msgSend)((id)model, meta->_setter, value); + } else { + ((void (*)(id, SEL, id))(void *)objc_msgSend)((id)model, meta->_setter, ((NSDictionary *)value).mutableCopy); + } + } + } + } break; + + case QCloudEncodingTypeNSSet: + case QCloudEncodingTypeNSMutableSet: { + NSSet *valueSet = nil; + if ([value isKindOfClass:[NSArray class]]) + valueSet = [NSMutableSet setWithArray:value]; + else if ([value isKindOfClass:[NSSet class]]) + valueSet = ((NSSet *)value); + + if (meta->_genericCls) { + NSMutableSet *set = [NSMutableSet new]; + for (id one in valueSet) { + if ([one isKindOfClass:meta->_genericCls]) { + [set addObject:one]; + } else if ([one isKindOfClass:[NSDictionary class]]) { + Class cls = meta->_genericCls; + if (meta->_hasCustomClassFromDictionary) { + cls = [cls modelCustomClassForDictionary:one]; + if (!cls) + cls = meta->_genericCls; // for xcode code coverage + } + NSObject *newOne = [cls new]; + [newOne qcloud_modelSetWithDictionary:one]; + if (newOne) + [set addObject:newOne]; + } + } + ((void (*)(id, SEL, id))(void *)objc_msgSend)((id)model, meta->_setter, set); + } else { + if (meta->_nsType == QCloudEncodingTypeNSSet) { + ((void (*)(id, SEL, id))(void *)objc_msgSend)((id)model, meta->_setter, valueSet); + } else { + ((void (*)(id, SEL, id))(void *)objc_msgSend)((id)model, meta->_setter, ((NSSet *)valueSet).mutableCopy); + } + } + } // break; commented for code coverage in next line + + default: + break; + } + } + } else { + BOOL isNull = (value == (id)kCFNull); + switch (meta->_type & QCloudEncodingTypeMask) { + case QCloudEncodingTypeObject: { + if (isNull) { + ((void (*)(id, SEL, id))(void *)objc_msgSend)((id)model, meta->_setter, (id)nil); + } else if ([value isKindOfClass:meta->_cls] || !meta->_cls) { + ((void (*)(id, SEL, id))(void *)objc_msgSend)((id)model, meta->_setter, (id)value); + } else if ([value isKindOfClass:[NSDictionary class]]) { + NSObject *one = nil; + if (meta->_getter) { + one = ((id(*)(id, SEL))(void *)objc_msgSend)((id)model, meta->_getter); + } + if (one) { + [one qcloud_modelSetWithDictionary:value]; + } else { + Class cls = meta->_cls; + if (meta->_hasCustomClassFromDictionary) { + cls = [cls modelCustomClassForDictionary:value]; + if (!cls) + cls = meta->_genericCls; // for xcode code coverage + } + one = [cls new]; + [one qcloud_modelSetWithDictionary:value]; + ((void (*)(id, SEL, id))(void *)objc_msgSend)((id)model, meta->_setter, (id)one); + } + } + } break; + + case QCloudEncodingTypeClass: { + if (isNull) { + ((void (*)(id, SEL, Class))(void *)objc_msgSend)((id)model, meta->_setter, (Class)NULL); + } else { + Class cls = nil; + if ([value isKindOfClass:[NSString class]]) { + cls = NSClassFromString(value); + if (cls) { + ((void (*)(id, SEL, Class))(void *)objc_msgSend)((id)model, meta->_setter, (Class)cls); + } + } else { + cls = object_getClass(value); + if (cls) { + if (class_isMetaClass(cls)) { + ((void (*)(id, SEL, Class))(void *)objc_msgSend)((id)model, meta->_setter, (Class)value); + } + } + } + } + } break; + + case QCloudEncodingTypeSEL: { + if (isNull) { + ((void (*)(id, SEL, SEL))(void *)objc_msgSend)((id)model, meta->_setter, (SEL)NULL); + } else if ([value isKindOfClass:[NSString class]]) { + SEL sel = NSSelectorFromString(value); + if (sel) + ((void (*)(id, SEL, SEL))(void *)objc_msgSend)((id)model, meta->_setter, (SEL)sel); + } + } break; + + case QCloudEncodingTypeBlock: { + if (isNull) { + ((void (*)(id, SEL, void (^)(void)))(void *)objc_msgSend)((id)model, meta->_setter, (void (^)(void))NULL); + } else if ([value isKindOfClass:QCloudNSBlockClass()]) { + ((void (*)(id, SEL, void (^)(void)))(void *)objc_msgSend)((id)model, meta->_setter, (void (^)(void))value); + } + } break; + + case QCloudEncodingTypeStruct: + case QCloudEncodingTypeUnion: + case QCloudEncodingTypeCArray: { + if ([value isKindOfClass:[NSValue class]]) { + const char *valueType = ((NSValue *)value).objCType; + const char *metaType = meta->_info.typeEncoding.UTF8String; + if (valueType && metaType && strcmp(valueType, metaType) == 0) { + [model setValue:value forKey:meta->_name]; + } + } + } break; + + case QCloudEncodingTypePointer: + case QCloudEncodingTypeCString: { + if (isNull) { + ((void (*)(id, SEL, void *))(void *)objc_msgSend)((id)model, meta->_setter, (void *)NULL); + } else if ([value isKindOfClass:[NSValue class]]) { + NSValue *nsValue = value; + if (nsValue.objCType && strcmp(nsValue.objCType, "^v") == 0) { + ((void (*)(id, SEL, void *))(void *)objc_msgSend)((id)model, meta->_setter, nsValue.pointerValue); + } + } + } // break; commented for code coverage in next line + + default: + break; + } + } +} + +typedef struct { + void *modelMeta; ///< _QCloudModelMeta + void *model; ///< id (self) + void *dictionary; ///< NSDictionary (json) +} ModelSetContext; + +/** + Apply function for dictionary, to set the key-value pair to model. + + @param _key should not be nil, NSString. + @param _value should not be nil. + @param _context _context.modelMeta and _context.model should not be nil. + */ +static void qcloudModelSetWithDictionaryFunction(const void *_key, const void *_value, void *_context) { + ModelSetContext *context = _context; + __unsafe_unretained _QCloudModelMeta *meta = (__bridge _QCloudModelMeta *)(context->modelMeta); + __unsafe_unretained _QCloudModelPropertyMeta *propertyMeta = [meta->_mapper objectForKey:(__bridge id)(_key)]; + __unsafe_unretained id model = (__bridge id)(context->model); + while (propertyMeta) { + if (propertyMeta->_setter) { + qcloudModelSetValueForProperty(model, (__bridge __unsafe_unretained id)_value, propertyMeta); + } + propertyMeta = propertyMeta->_next; + }; +} + +/** + Apply function for model property meta, to set dictionary to model. + + @param _propertyMeta should not be nil, _QCloudModelPropertyMeta. + @param _context _context.model and _context.dictionary should not be nil. + */ +static void qcloudModelSetWithPropertyMetaArrayFunction(const void *_propertyMeta, void *_context) { + ModelSetContext *context = _context; + __unsafe_unretained NSDictionary *dictionary = (__bridge NSDictionary *)(context->dictionary); + __unsafe_unretained _QCloudModelPropertyMeta *propertyMeta = (__bridge _QCloudModelPropertyMeta *)(_propertyMeta); + if (!propertyMeta->_setter) + return; + id value = nil; + + if (propertyMeta->_mappedToKeyArray) { + value = QCloudValueForMultiKeys(dictionary, propertyMeta->_mappedToKeyArray); + } else if (propertyMeta->_mappedToKeyPath) { + value = QCloudValueForKeyPath(dictionary, propertyMeta->_mappedToKeyPath); + } else { + value = [dictionary objectForKey:propertyMeta->_mappedToKey]; + } + + if (value) { + __unsafe_unretained id model = (__bridge id)(context->model); + qcloudModelSetValueForProperty(model, value, propertyMeta); + } +} + +/** + Returns a valid JSON object (NSArray/NSDictionary/NSString/NSNumber/NSNull), + or nil if an error occurs. + + @param model Model, can be nil. + @return JSON object, nil if an error occurs. + */ +static id qcloud_ModelToJSONObjectRecursive(NSObject *model) { + if (!model || model == (id)kCFNull) + return model; + if ([model isKindOfClass:[NSString class]]) + return model; + if ([model isKindOfClass:[NSNumber class]]) + return model; + if ([model isKindOfClass:[NSDictionary class]]) { + if ([NSJSONSerialization isValidJSONObject:model]) + return model; + NSMutableDictionary *newDic = [NSMutableDictionary new]; + [((NSDictionary *)model) enumerateKeysAndObjectsUsingBlock:^(NSString *key, id obj, BOOL *stop) { + NSString *stringKey = [key isKindOfClass:[NSString class]] ? key : key.description; + if (!stringKey) + return; + id jsonObj = qcloud_ModelToJSONObjectRecursive(obj); + if (!jsonObj) + jsonObj = (id)kCFNull; + newDic[stringKey] = jsonObj; + }]; + return newDic; + } + if ([model isKindOfClass:[NSSet class]]) { + NSArray *array = ((NSSet *)model).allObjects; + if ([NSJSONSerialization isValidJSONObject:array]) + return array; + NSMutableArray *newArray = [NSMutableArray new]; + for (id obj in array) { + if ([obj isKindOfClass:[NSString class]] || [obj isKindOfClass:[NSNumber class]]) { + [newArray addObject:obj]; + } else { + id jsonObj = qcloud_ModelToJSONObjectRecursive(obj); + if (jsonObj && jsonObj != (id)kCFNull) + [newArray addObject:jsonObj]; + } + } + return newArray; + } + if ([model isKindOfClass:[NSArray class]]) { + if ([NSJSONSerialization isValidJSONObject:model]) + return model; + NSMutableArray *newArray = [NSMutableArray new]; +// for (id obj in (NSArray *)model) { +// if ([obj isKindOfClass:[NSString class]] || [obj isKindOfClass:[NSNumber class]]) { +// [newArray addObject:obj]; +// } else { +// id jsonObj = qcloud_ModelToJSONObjectRecursive(obj); +// if (jsonObj && jsonObj != (id)kCFNull) +// [newArray addObject:jsonObj]; +// } +// } + NSArray * array = (NSArray *)model; + for (int i = 0; i < array.count; i ++ ) { + id obj = [array objectAtIndex:i]; + if ([obj isKindOfClass:[NSString class]] || [obj isKindOfClass:[NSNumber class]]) { + [newArray addObject:obj]; + } else { + id jsonObj = qcloud_ModelToJSONObjectRecursive(obj); + if (jsonObj && jsonObj != (id)kCFNull) + [newArray addObject:jsonObj]; + } + } + return newArray; + } + if ([model isKindOfClass:[NSURL class]]) + return ((NSURL *)model).absoluteString; + if ([model isKindOfClass:[NSAttributedString class]]) + return ((NSAttributedString *)model).string; + if ([model isKindOfClass:[NSDate class]]) + return [QCloudISODateFormatter() stringFromDate:(id)model]; + if ([model isKindOfClass:[NSData class]]) + return nil; + + _QCloudModelMeta *modelMeta = [_QCloudModelMeta metaWithClass:[model class]]; + if (!modelMeta || modelMeta->_keyMappedCount == 0) + return nil; + NSMutableDictionary *result = [[NSMutableDictionary alloc] initWithCapacity:64]; + __unsafe_unretained NSMutableDictionary *dic = result; // avoid retain and release in block + [modelMeta->_mapper enumerateKeysAndObjectsUsingBlock:^(NSString *propertyMappedKey, _QCloudModelPropertyMeta *propertyMeta, BOOL *stop) { + if ([propertyMappedKey isEqualToString:@"retryHandler"]) { + return; + } + if (!propertyMeta->_getter) + return; + + id value = nil; + if (propertyMeta->_isCNumber) { + value = qcloudModelCreateNumberFromProperty(model, propertyMeta); + } else if (propertyMeta->_nsType) { + id v = ((id(*)(id, SEL))(void *)objc_msgSend)((id)model, propertyMeta->_getter); + value = qcloud_ModelToJSONObjectRecursive(v); + } else { + switch (propertyMeta->_type & QCloudEncodingTypeMask) { + case QCloudEncodingTypeObject: { + id v = ((id(*)(id, SEL))(void *)objc_msgSend)((id)model, propertyMeta->_getter); + value = qcloud_ModelToJSONObjectRecursive(v); + if (value == (id)kCFNull) + value = nil; + } break; + case QCloudEncodingTypeClass: { + Class v = ((Class(*)(id, SEL))(void *)objc_msgSend)((id)model, propertyMeta->_getter); + value = v ? NSStringFromClass(v) : nil; + } break; + case QCloudEncodingTypeSEL: { + SEL v = ((SEL(*)(id, SEL))(void *)objc_msgSend)((id)model, propertyMeta->_getter); + value = v ? NSStringFromSelector(v) : nil; + } break; + default: + break; + } + } + if (!value) + return; + + if (propertyMeta->_mappedToKeyPath) { + NSMutableDictionary *superDic = dic; + NSMutableDictionary *subDic = nil; + for (NSUInteger i = 0, max = propertyMeta->_mappedToKeyPath.count; i < max; i++) { + NSString *key = propertyMeta->_mappedToKeyPath[i]; + if (i + 1 == max) { // end + if (!superDic[key]) + superDic[key] = value; + break; + } + + subDic = superDic[key]; + if (subDic) { + if ([subDic isKindOfClass:[NSDictionary class]]) { + subDic = subDic.mutableCopy; + superDic[key] = subDic; + } else { + break; + } + } else { + subDic = [NSMutableDictionary new]; + superDic[key] = subDic; + } + superDic = subDic; + subDic = nil; + } + } else { + if (!dic[propertyMeta->_mappedToKey]) { + dic[propertyMeta->_mappedToKey] = value; + } + } + }]; + + if (modelMeta->_hasCustomTransformToDictionary) { + BOOL suc = [((id)model) modelCustomTransformToDictionary:dic]; + if (!suc) + return nil; + } + return result; +} + +/// Add indent to string (exclude first line) +static NSMutableString *qcloudModelDescriptionAddIndent(NSMutableString *desc, NSUInteger indent) { + for (NSUInteger i = 0, max = desc.length; i < max; i++) { + unichar c = [desc characterAtIndex:i]; + if (c == '\n') { + for (NSUInteger j = 0; j < indent; j++) { + [desc insertString:@" " atIndex:i + 1]; + } + i += indent * 4; + max += indent * 4; + } + } + return desc; +} + +/// Generaate a description string +static NSString *qcloudModelDescription(NSObject *model) { + static const int kDescMaxLength = 100; + if (!model) + return @""; + if (model == (id)kCFNull) + return @""; + if (![model isKindOfClass:[NSObject class]]) + return [NSString stringWithFormat:@"%@", model]; + + _QCloudModelMeta *modelMeta = [_QCloudModelMeta metaWithClass:model.class]; + switch (modelMeta->_nsType) { + case QCloudEncodingTypeNSString: + case QCloudEncodingTypeNSMutableString: { + return [NSString stringWithFormat:@"\"%@\"", model]; + } + + case QCloudEncodingTypeNSValue: + case QCloudEncodingTypeNSData: + case QCloudEncodingTypeNSMutableData: { + NSString *tmp = model.description; + if (tmp.length > kDescMaxLength) { + tmp = [tmp substringToIndex:kDescMaxLength]; + tmp = [tmp stringByAppendingString:@"..."]; + } + return tmp; + } + + case QCloudEncodingTypeNSNumber: + case QCloudEncodingTypeNSDecimalNumber: + case QCloudEncodingTypeNSDate: + case QCloudEncodingTypeNSURL: { + return [NSString stringWithFormat:@"%@", model]; + } + + case QCloudEncodingTypeNSSet: + case QCloudEncodingTypeNSMutableSet: { + model = ((NSSet *)model).allObjects; + } // no break + + case QCloudEncodingTypeNSArray: + case QCloudEncodingTypeNSMutableArray: { + NSArray *array = (id)model; + NSMutableString *desc = [NSMutableString new]; + if (array.count == 0) { + return [desc stringByAppendingString:@"[]"]; + } else { + [desc appendFormat:@"[\n"]; + for (NSUInteger i = 0, max = array.count; i < max; i++) { + NSObject *obj = array[i]; + [desc appendString:@" "]; + [desc appendString:qcloudModelDescriptionAddIndent(qcloudModelDescription(obj).mutableCopy, 1)]; + [desc appendString:(i + 1 == max) ? @"\n" : @";\n"]; + } + [desc appendString:@"]"]; + return desc; + } + } + case QCloudEncodingTypeNSDictionary: + case QCloudEncodingTypeNSMutableDictionary: { + NSDictionary *dic = (id)model; + NSMutableString *desc = [NSMutableString new]; + if (dic.count == 0) { + return [desc stringByAppendingString:@"{}"]; + } else { + NSArray *keys = dic.allKeys; + + [desc appendFormat:@"{\n"]; + for (NSUInteger i = 0, max = keys.count; i < max; i++) { + NSString *key = keys[i]; + NSObject *value = dic[key]; + [desc appendString:@" "]; + [desc appendFormat:@"%@ = %@", key, qcloudModelDescriptionAddIndent(qcloudModelDescription(value).mutableCopy, 1)]; + [desc appendString:(i + 1 == max) ? @"\n" : @";\n"]; + } + [desc appendString:@"}"]; + } + return desc; + } + + default: { + NSMutableString *desc = [NSMutableString new]; + [desc appendFormat:@"<%@: %p>", model.class, model]; + if (modelMeta->_allPropertyMetas.count == 0) + return desc; + + // sort property names + NSArray *properties = [modelMeta->_allPropertyMetas + sortedArrayUsingComparator:^NSComparisonResult(_QCloudModelPropertyMeta *p1, _QCloudModelPropertyMeta *p2) { + return [p1->_name compare:p2->_name]; + }]; + + [desc appendFormat:@" {\n"]; + for (NSUInteger i = 0, max = properties.count; i < max; i++) { + _QCloudModelPropertyMeta *property = properties[i]; + NSString *propertyDesc; + if (property->_isCNumber) { + NSNumber *num = qcloudModelCreateNumberFromProperty(model, property); + propertyDesc = num.stringValue; + } else { + switch (property->_type & QCloudEncodingTypeMask) { + case QCloudEncodingTypeObject: { + id v = ((id(*)(id, SEL))(void *)objc_msgSend)((id)model, property->_getter); + propertyDesc = qcloudModelDescription(v); + if (!propertyDesc) + propertyDesc = @""; + } break; + case QCloudEncodingTypeClass: { + id v = ((id(*)(id, SEL))(void *)objc_msgSend)((id)model, property->_getter); + propertyDesc = ((NSObject *)v).description; + if (!propertyDesc) + propertyDesc = @""; + } break; + case QCloudEncodingTypeSEL: { + SEL sel = ((SEL(*)(id, SEL))(void *)objc_msgSend)((id)model, property->_getter); + if (sel) + propertyDesc = NSStringFromSelector(sel); + else + propertyDesc = @""; + } break; + case QCloudEncodingTypeBlock: { + id block = ((id(*)(id, SEL))(void *)objc_msgSend)((id)model, property->_getter); + propertyDesc = block ? ((NSObject *)block).description : @""; + } break; + case QCloudEncodingTypeCArray: + case QCloudEncodingTypeCString: + case QCloudEncodingTypePointer: { + void *pointer = ((void *(*)(id, SEL))(void *)objc_msgSend)((id)model, property->_getter); + propertyDesc = [NSString stringWithFormat:@"%p", pointer]; + } break; + case QCloudEncodingTypeStruct: + case QCloudEncodingTypeUnion: { + NSValue *value = [model valueForKey:property->_name]; + propertyDesc = value ? value.description : @"{unknown}"; + } break; + default: + propertyDesc = @""; + } + } + + propertyDesc = qcloudModelDescriptionAddIndent(propertyDesc.mutableCopy, 1); + [desc appendFormat:@" %@ = %@", property->_name, propertyDesc]; + [desc appendString:(i + 1 == max) ? @"\n" : @";\n"]; + } + [desc appendFormat:@"}"]; + return desc; + } + } +} + +@implementation NSObject (QCloudModel) + ++ (NSDictionary *)_qcloud_dictionaryWithJSON:(id)json { + if (!json || json == (id)kCFNull) + return nil; + NSDictionary *dic = nil; + NSData *jsonData = nil; + if ([json isKindOfClass:[NSDictionary class]]) { + dic = json; + } else if ([json isKindOfClass:[NSString class]]) { + jsonData = [(NSString *)json dataUsingEncoding:NSUTF8StringEncoding]; + } else if ([json isKindOfClass:[NSData class]]) { + jsonData = json; + } + if (jsonData) { + dic = [NSJSONSerialization JSONObjectWithData:jsonData options:kNilOptions error:NULL]; + if (![dic isKindOfClass:[NSDictionary class]]) + dic = nil; + } + return dic; +} + ++ (instancetype)qcloud_modelWithJSON:(id)json { + NSDictionary *dic = [self _qcloud_dictionaryWithJSON:json]; + return [self qcloud_modelWithDictionary:dic]; +} + ++ (instancetype)qcloud_modelWithDictionary:(NSDictionary *)dictionary { + if (!dictionary || dictionary == (id)kCFNull) + return nil; + if (![dictionary isKindOfClass:[NSDictionary class]]) + return nil; + + Class cls = [self class]; + _QCloudModelMeta *modelMeta = [_QCloudModelMeta metaWithClass:cls]; + if (modelMeta->_hasCustomClassFromDictionary) { + cls = [cls modelCustomClassForDictionary:dictionary] ?: cls; + } + + NSObject *one = [cls new]; + if ([one qcloud_modelSetWithDictionary:dictionary]) + return one; + return nil; +} + +- (BOOL)qcloud_modelSetWithJSON:(id)json { + NSDictionary *dic = [NSObject _qcloud_dictionaryWithJSON:json]; + return [self qcloud_modelSetWithDictionary:dic]; +} + +- (BOOL)qcloud_modelSetWithDictionary:(NSDictionary *)dic { + if (!dic || dic == (id)kCFNull) + return NO; + if (![dic isKindOfClass:[NSDictionary class]]) + return NO; + + _QCloudModelMeta *modelMeta = [_QCloudModelMeta metaWithClass:object_getClass(self)]; + if (modelMeta->_keyMappedCount == 0) + return NO; + + if (modelMeta->_hasCustomWillTransformFromDictionary) { + dic = [((id)self) modelCustomWillTransformFromDictionary:dic]; + if (![dic isKindOfClass:[NSDictionary class]]) + return NO; + } + + ModelSetContext context = { 0 }; + context.modelMeta = (__bridge void *)(modelMeta); + context.model = (__bridge void *)(self); + context.dictionary = (__bridge void *)(dic); + + if (modelMeta->_keyMappedCount >= CFDictionaryGetCount((CFDictionaryRef)dic)) { + CFDictionaryApplyFunction((CFDictionaryRef)dic, qcloudModelSetWithDictionaryFunction, &context); + if (modelMeta->_keyPathPropertyMetas) { + CFArrayApplyFunction((CFArrayRef)modelMeta->_keyPathPropertyMetas, + CFRangeMake(0, CFArrayGetCount((CFArrayRef)modelMeta->_keyPathPropertyMetas)), qcloudModelSetWithPropertyMetaArrayFunction, + &context); + } + if (modelMeta->_multiKeysPropertyMetas) { + CFArrayApplyFunction((CFArrayRef)modelMeta->_multiKeysPropertyMetas, + CFRangeMake(0, CFArrayGetCount((CFArrayRef)modelMeta->_multiKeysPropertyMetas)), + qcloudModelSetWithPropertyMetaArrayFunction, &context); + } + } else { + CFArrayApplyFunction((CFArrayRef)modelMeta->_allPropertyMetas, CFRangeMake(0, modelMeta->_keyMappedCount), + qcloudModelSetWithPropertyMetaArrayFunction, &context); + } + + if (modelMeta->_hasCustomTransformFromDictionary) { + return [((id)self) modelCustomTransformFromDictionary:dic]; + } + return YES; +} + +- (id)qcloud_modelToJSONObject { + /* + Apple said: + The top level object is an NSArray or NSDictionary. + All objects are instances of NSString, NSNumber, NSArray, NSDictionary, or NSNull. + All dictionary keys are instances of NSString. + Numbers are not NaN or infinity. + */ + id jsonObject = qcloud_ModelToJSONObjectRecursive(self); + if ([jsonObject isKindOfClass:[NSArray class]]) + return jsonObject; + if ([jsonObject isKindOfClass:[NSDictionary class]]) + return jsonObject; + return nil; +} + +- (NSData *)qcloud_modelToJSONData { + id jsonObject = [self qcloud_modelToJSONObject]; + if (!jsonObject) + return nil; + + @try { + return [NSJSONSerialization dataWithJSONObject:jsonObject options:0 error:NULL]; + } @catch (NSException *exception) { + return nil; + } + +} + +- (NSString *)qcloud_modelToJSONString { + NSData *jsonData = [self qcloud_modelToJSONData]; + if (jsonData.length == 0) + return nil; + return [[NSString alloc] initWithData:jsonData encoding:NSUTF8StringEncoding]; +} + +- (id)qcloud_modelCopy { + if (self == (id)kCFNull) + return self; + _QCloudModelMeta *modelMeta = [_QCloudModelMeta metaWithClass:self.class]; + if (modelMeta->_nsType) + return [self copy]; + + NSObject *one = [self.class new]; + for (_QCloudModelPropertyMeta *propertyMeta in modelMeta->_allPropertyMetas) { + if (!propertyMeta->_getter || !propertyMeta->_setter) + continue; + + if (propertyMeta->_isCNumber) { + switch (propertyMeta->_type & QCloudEncodingTypeMask) { + case QCloudEncodingTypeBool: { + bool num = ((bool (*)(id, SEL))(void *)objc_msgSend)((id)self, propertyMeta->_getter); + ((void (*)(id, SEL, bool))(void *)objc_msgSend)((id)one, propertyMeta->_setter, num); + } break; + case QCloudEncodingTypeInt8: + case QCloudEncodingTypeUInt8: { + uint8_t num = ((bool (*)(id, SEL))(void *)objc_msgSend)((id)self, propertyMeta->_getter); + ((void (*)(id, SEL, uint8_t))(void *)objc_msgSend)((id)one, propertyMeta->_setter, num); + } break; + case QCloudEncodingTypeInt16: + case QCloudEncodingTypeUInt16: { + uint16_t num = ((uint16_t(*)(id, SEL))(void *)objc_msgSend)((id)self, propertyMeta->_getter); + ((void (*)(id, SEL, uint16_t))(void *)objc_msgSend)((id)one, propertyMeta->_setter, num); + } break; + case QCloudEncodingTypeInt32: + case QCloudEncodingTypeUInt32: { + uint32_t num = ((uint32_t(*)(id, SEL))(void *)objc_msgSend)((id)self, propertyMeta->_getter); + ((void (*)(id, SEL, uint32_t))(void *)objc_msgSend)((id)one, propertyMeta->_setter, num); + } break; + case QCloudEncodingTypeInt64: + case QCloudEncodingTypeUInt64: { + uint64_t num = ((uint64_t(*)(id, SEL))(void *)objc_msgSend)((id)self, propertyMeta->_getter); + ((void (*)(id, SEL, uint64_t))(void *)objc_msgSend)((id)one, propertyMeta->_setter, num); + } break; + case QCloudEncodingTypeFloat: { + float num = ((float (*)(id, SEL))(void *)objc_msgSend)((id)self, propertyMeta->_getter); + ((void (*)(id, SEL, float))(void *)objc_msgSend)((id)one, propertyMeta->_setter, num); + } break; + case QCloudEncodingTypeDouble: { + double num = ((double (*)(id, SEL))(void *)objc_msgSend)((id)self, propertyMeta->_getter); + ((void (*)(id, SEL, double))(void *)objc_msgSend)((id)one, propertyMeta->_setter, num); + } break; + case QCloudEncodingTypeLongDouble: { + long double num = ((long double (*)(id, SEL))(void *)objc_msgSend)((id)self, propertyMeta->_getter); + ((void (*)(id, SEL, long double))(void *)objc_msgSend)((id)one, propertyMeta->_setter, num); + } // break; commented for code coverage in next line + default: + break; + } + } else { + switch (propertyMeta->_type & QCloudEncodingTypeMask) { + case QCloudEncodingTypeObject: + case QCloudEncodingTypeClass: + case QCloudEncodingTypeBlock: { + id value = ((id(*)(id, SEL))(void *)objc_msgSend)((id)self, propertyMeta->_getter); + ((void (*)(id, SEL, id))(void *)objc_msgSend)((id)one, propertyMeta->_setter, value); + } break; + case QCloudEncodingTypeSEL: + case QCloudEncodingTypePointer: + case QCloudEncodingTypeCString: { + size_t value = ((size_t(*)(id, SEL))(void *)objc_msgSend)((id)self, propertyMeta->_getter); + ((void (*)(id, SEL, size_t))(void *)objc_msgSend)((id)one, propertyMeta->_setter, value); + } break; + case QCloudEncodingTypeStruct: + case QCloudEncodingTypeUnion: { + @try { + NSValue *value = [self valueForKey:NSStringFromSelector(propertyMeta->_getter)]; + if (value) { + [one setValue:value forKey:propertyMeta->_name]; + } + } @catch (NSException *exception) { + } + } // break; commented for code coverage in next line + default: + break; + } + } + } + return one; +} + +- (void)qcloud_modelEncodeWithCoder:(NSCoder *)aCoder { + if (!aCoder) + return; + if (self == (id)kCFNull) { + [((id)self) encodeWithCoder:aCoder]; + return; + } + + _QCloudModelMeta *modelMeta = [_QCloudModelMeta metaWithClass:self.class]; + if (modelMeta->_nsType) { + [((id)self) encodeWithCoder:aCoder]; + return; + } + + for (_QCloudModelPropertyMeta *propertyMeta in modelMeta->_allPropertyMetas) { + if (!propertyMeta->_getter) + return; + + if (propertyMeta->_isCNumber) { + NSNumber *value = qcloudModelCreateNumberFromProperty(self, propertyMeta); + if (value != nil) + [aCoder encodeObject:value forKey:propertyMeta->_name]; + } else { + switch (propertyMeta->_type & QCloudEncodingTypeMask) { + case QCloudEncodingTypeObject: { + id value = ((id(*)(id, SEL))(void *)objc_msgSend)((id)self, propertyMeta->_getter); + if (value && (propertyMeta->_nsType || [value respondsToSelector:@selector(encodeWithCoder:)])) { + if ([value isKindOfClass:[NSValue class]]) { + if ([value isKindOfClass:[NSNumber class]]) { + [aCoder encodeObject:value forKey:propertyMeta->_name]; + } + } else { + [aCoder encodeObject:value forKey:propertyMeta->_name]; + } + } + } break; + case QCloudEncodingTypeSEL: { + SEL value = ((SEL(*)(id, SEL))(void *)objc_msgSend)((id)self, propertyMeta->_getter); + if (value) { + NSString *str = NSStringFromSelector(value); + [aCoder encodeObject:str forKey:propertyMeta->_name]; + } + } break; + case QCloudEncodingTypeStruct: + case QCloudEncodingTypeUnion: { + if (propertyMeta->_isKVCCompatible && propertyMeta->_isStructAvailableForKeyedArchiver) { + @try { + NSValue *value = [self valueForKey:NSStringFromSelector(propertyMeta->_getter)]; + [aCoder encodeObject:value forKey:propertyMeta->_name]; + } @catch (NSException *exception) { + } + } + } break; + + default: + break; + } + } + } +} + +- (id)qcloud_modelInitWithCoder:(NSCoder *)aDecoder { + if (!aDecoder) + return self; + if (self == (id)kCFNull) + return self; + _QCloudModelMeta *modelMeta = [_QCloudModelMeta metaWithClass:self.class]; + if (modelMeta->_nsType) + return self; + + for (_QCloudModelPropertyMeta *propertyMeta in modelMeta->_allPropertyMetas) { + if (!propertyMeta->_setter) + continue; + + if (propertyMeta->_isCNumber) { + NSNumber *value = [aDecoder decodeObjectForKey:propertyMeta->_name]; + if ([value isKindOfClass:[NSNumber class]]) { + qcloudModelSetNumberToProperty(self, value, propertyMeta); + [value class]; + } + } else { + QCloudEncodingType type = propertyMeta->_type & QCloudEncodingTypeMask; + switch (type) { + case QCloudEncodingTypeObject: { + id value = [aDecoder decodeObjectForKey:propertyMeta->_name]; + ((void (*)(id, SEL, id))(void *)objc_msgSend)((id)self, propertyMeta->_setter, value); + } break; + case QCloudEncodingTypeSEL: { + NSString *str = [aDecoder decodeObjectForKey:propertyMeta->_name]; + if ([str isKindOfClass:[NSString class]]) { + SEL sel = NSSelectorFromString(str); + ((void (*)(id, SEL, SEL))(void *)objc_msgSend)((id)self, propertyMeta->_setter, sel); + } + } break; + case QCloudEncodingTypeStruct: + case QCloudEncodingTypeUnion: { + if (propertyMeta->_isKVCCompatible) { + @try { + NSValue *value = [aDecoder decodeObjectForKey:propertyMeta->_name]; + if (value) + [self setValue:value forKey:propertyMeta->_name]; + } @catch (NSException *exception) { + } + } + } break; + + default: + break; + } + } + } + return self; +} + +- (NSUInteger)qcloud_modelHash { + if (self == (id)kCFNull) + return [self hash]; + _QCloudModelMeta *modelMeta = [_QCloudModelMeta metaWithClass:self.class]; + if (modelMeta->_nsType) + return [self hash]; + + NSUInteger value = 0; + NSUInteger count = 0; + for (_QCloudModelPropertyMeta *propertyMeta in modelMeta->_allPropertyMetas) { + if (!propertyMeta->_isKVCCompatible) + continue; + value ^= [[self valueForKey:NSStringFromSelector(propertyMeta->_getter)] hash]; + count++; + } + if (count == 0) + value = (long)((__bridge void *)self); + return value; +} + +- (BOOL)qcloud_modelIsEqual:(id)model { + if (self == model) + return YES; + if (![model isMemberOfClass:self.class]) + return NO; + _QCloudModelMeta *modelMeta = [_QCloudModelMeta metaWithClass:self.class]; + if (modelMeta->_nsType) + return [self isEqual:model]; + if ([self hash] != [model hash]) + return NO; + + for (_QCloudModelPropertyMeta *propertyMeta in modelMeta->_allPropertyMetas) { + if (!propertyMeta->_isKVCCompatible) + continue; + id this = [self valueForKey:NSStringFromSelector(propertyMeta->_getter)]; + id that = [model valueForKey:NSStringFromSelector(propertyMeta->_getter)]; + if (this == that) + continue; + if (this == nil || that == nil) + return NO; + if (![this isEqual:that]) + return NO; + } + return YES; +} + +- (NSString *)qcloud_modelDescription { + return qcloudModelDescription(self); +} + +@end + +@implementation NSArray (QCloudModel) + ++ (NSArray *)qcloud_modelArrayWithClass:(Class)cls json:(id)json { + if (!json) + return nil; + NSArray *arr = nil; + NSData *jsonData = nil; + if ([json isKindOfClass:[NSArray class]]) { + arr = json; + } else if ([json isKindOfClass:[NSString class]]) { + jsonData = [(NSString *)json dataUsingEncoding:NSUTF8StringEncoding]; + } else if ([json isKindOfClass:[NSData class]]) { + jsonData = json; + } + if (jsonData) { + arr = [NSJSONSerialization JSONObjectWithData:jsonData options:kNilOptions error:NULL]; + if (![arr isKindOfClass:[NSArray class]]) + arr = nil; + } + return [self qcloud_modelArrayWithClass:cls array:arr]; +} + ++ (NSArray *)qcloud_modelArrayWithClass:(Class)cls array:(NSArray *)arr { + if (!cls || !arr) + return nil; + NSMutableArray *result = [NSMutableArray new]; + for (NSDictionary *dic in arr) { + if (![dic isKindOfClass:[NSDictionary class]]) + continue; + NSObject *obj = [cls qcloud_modelWithDictionary:dic]; + if (obj) + [result addObject:obj]; + } + return result; +} + +@end + +@implementation NSDictionary (QCloudModel) + ++ (NSDictionary *)qcloud_modelDictionaryWithClass:(Class)cls json:(id)json { + if (!json) + return nil; + NSDictionary *dic = nil; + NSData *jsonData = nil; + if ([json isKindOfClass:[NSDictionary class]]) { + dic = json; + } else if ([json isKindOfClass:[NSString class]]) { + jsonData = [(NSString *)json dataUsingEncoding:NSUTF8StringEncoding]; + } else if ([json isKindOfClass:[NSData class]]) { + jsonData = json; + } + if (jsonData) { + dic = [NSJSONSerialization JSONObjectWithData:jsonData options:kNilOptions error:NULL]; + if (![dic isKindOfClass:[NSDictionary class]]) + dic = nil; + } + return [self qcloud_modelDictionaryWithClass:cls dictionary:dic]; +} + ++ (NSDictionary *)qcloud_modelDictionaryWithClass:(Class)cls dictionary:(NSDictionary *)dic { + if (!cls || !dic) + return nil; + NSMutableDictionary *result = [NSMutableDictionary new]; + for (NSString *key in dic.allKeys) { + if (![key isKindOfClass:[NSString class]]) + continue; + NSObject *obj = [cls qcloud_modelWithDictionary:dic[key]]; + if (obj) + result[key] = obj; + } + return result; +} + +@end diff --git a/Pods/QCloudCore/QCloudCore/Classes/Base/QCLOUDObjectModel/NSObject+QCloudModelTool.h b/Pods/QCloudCore/QCloudCore/Classes/Base/QCLOUDObjectModel/NSObject+QCloudModelTool.h new file mode 100644 index 0000000..6fdc0cb --- /dev/null +++ b/Pods/QCloudCore/QCloudCore/Classes/Base/QCLOUDObjectModel/NSObject+QCloudModelTool.h @@ -0,0 +1,16 @@ +// +// NSObject+QCloudModelTool.h +// QCloudCore +// +// Created by karisli(李雪) on 2021/8/2. +// + +#import + +NS_ASSUME_NONNULL_BEGIN + +@interface NSObject (QCloudModelTool) ++ (NSArray *)jsonsToModelsWithJsons:(NSArray *)jsons; +@end + +NS_ASSUME_NONNULL_END diff --git a/Pods/QCloudCore/QCloudCore/Classes/Base/QCLOUDObjectModel/NSObject+QCloudModelTool.m b/Pods/QCloudCore/QCloudCore/Classes/Base/QCLOUDObjectModel/NSObject+QCloudModelTool.m new file mode 100644 index 0000000..eecd42d --- /dev/null +++ b/Pods/QCloudCore/QCloudCore/Classes/Base/QCLOUDObjectModel/NSObject+QCloudModelTool.m @@ -0,0 +1,21 @@ +// +// NSObject+QCloudModelTool.m +// QCloudCore +// +// Created by karisli(李雪) on 2021/8/2. +// + +#import "NSObject+QCloudModelTool.h" +#import "NSObject+QCloudModel.h" +@implementation NSObject (QCloudModelTool) ++ (NSArray *)jsonsToModelsWithJsons:(NSArray *)jsons { + NSMutableArray *models = [NSMutableArray array]; + for (NSDictionary *json in jsons) { + id model = [[self class] qcloud_modelWithDictionary:json]; + if (model) { + [models addObject:model]; + } + } + return models; +} +@end diff --git a/Pods/QCloudCore/QCloudCore/Classes/Base/QCLOUDObjectModel/QCloudClassInfo.h b/Pods/QCloudCore/QCloudCore/Classes/Base/QCLOUDObjectModel/QCloudClassInfo.h new file mode 100644 index 0000000..f69725a --- /dev/null +++ b/Pods/QCloudCore/QCloudCore/Classes/Base/QCLOUDObjectModel/QCloudClassInfo.h @@ -0,0 +1,196 @@ +// +// QCloudClassInfo.h +// QCloudModel +// +// Created by ibireme on 15/5/9. +// Copyright (c) 2015 ibireme. +// +// This source code is licensed under the MIT-style license found in the +// LICENSE file in the root directory of this source tree. +// + +#import +#import + +NS_ASSUME_NONNULL_BEGIN + +/** + Type encoding's type. + */ +typedef NS_OPTIONS(NSUInteger, QCloudEncodingType) { + QCloudEncodingTypeMask = 0xFF, ///< mask of type value + QCloudEncodingTypeUnknown = 0, ///< unknown + QCloudEncodingTypeVoid = 1, ///< void + QCloudEncodingTypeBool = 2, ///< bool + QCloudEncodingTypeInt8 = 3, ///< char / BOOL + QCloudEncodingTypeUInt8 = 4, ///< unsigned char + QCloudEncodingTypeInt16 = 5, ///< short + QCloudEncodingTypeUInt16 = 6, ///< unsigned short + QCloudEncodingTypeInt32 = 7, ///< int + QCloudEncodingTypeUInt32 = 8, ///< unsigned int + QCloudEncodingTypeInt64 = 9, ///< long long + QCloudEncodingTypeUInt64 = 10, ///< unsigned long long + QCloudEncodingTypeFloat = 11, ///< float + QCloudEncodingTypeDouble = 12, ///< double + QCloudEncodingTypeLongDouble = 13, ///< long double + QCloudEncodingTypeObject = 14, ///< id + QCloudEncodingTypeClass = 15, ///< Class + QCloudEncodingTypeSEL = 16, ///< SEL + QCloudEncodingTypeBlock = 17, ///< block + QCloudEncodingTypePointer = 18, ///< void* + QCloudEncodingTypeStruct = 19, ///< struct + QCloudEncodingTypeUnion = 20, ///< union + QCloudEncodingTypeCString = 21, ///< char* + QCloudEncodingTypeCArray = 22, ///< char[10] (for example) + + QCloudEncodingTypeQualifierMask = 0xFF00, ///< mask of qualifier + QCloudEncodingTypeQualifierConst = 1 << 8, ///< const + QCloudEncodingTypeQualifierIn = 1 << 9, ///< in + QCloudEncodingTypeQualifierInout = 1 << 10, ///< inout + QCloudEncodingTypeQualifierOut = 1 << 11, ///< out + QCloudEncodingTypeQualifierBycopy = 1 << 12, ///< bycopy + QCloudEncodingTypeQualifierByref = 1 << 13, ///< byref + QCloudEncodingTypeQualifierOneway = 1 << 14, ///< oneway + + QCloudEncodingTypePropertyMask = 0xFF0000, ///< mask of property + QCloudEncodingTypePropertyReadonly = 1 << 16, ///< readonly + QCloudEncodingTypePropertyCopy = 1 << 17, ///< copy + QCloudEncodingTypePropertyRetain = 1 << 18, ///< retain + QCloudEncodingTypePropertyNonatomic = 1 << 19, ///< nonatomic + QCloudEncodingTypePropertyWeak = 1 << 20, ///< weak + QCloudEncodingTypePropertyCustomGetter = 1 << 21, ///< getter= + QCloudEncodingTypePropertyCustomSetter = 1 << 22, ///< setter= + QCloudEncodingTypePropertyDynamic = 1 << 23, ///< @dynamic +}; + +/** + Get the type from a Type-Encoding string. + + @discussion See also: + https://developer.apple.com/library/mac/documentation/Cocoa/Conceptual/ObjCRuntimeGuide/Articles/ocrtTypeEncodings.html + https://developer.apple.com/library/mac/documentation/Cocoa/Conceptual/ObjCRuntimeGuide/Articles/ocrtPropertyIntrospection.html + + @param typeEncoding A Type-Encoding string. + @return The encoding type. + */ +QCloudEncodingType QCloudEncodingGetType(const char *typeEncoding); + +/** + Instance variable information. + */ +@interface QCloudClassIvarInfo : NSObject +@property (nonatomic, assign, readonly) Ivar ivar; ///< ivar opaque struct +@property (nonatomic, strong, readonly) NSString *name; ///< Ivar's name +@property (nonatomic, assign, readonly) ptrdiff_t offset; ///< Ivar's offset +@property (nonatomic, strong, readonly) NSString *typeEncoding; ///< Ivar's type encoding +@property (nonatomic, assign, readonly) QCloudEncodingType type; ///< Ivar's type + +/** + Creates and returns an ivar info object. + + @param ivar ivar opaque struct + @return A new object, or nil if an error occurs. + */ +- (instancetype)initWithIvar:(Ivar)ivar; +@end + +/** + Method information. + */ +@interface QCloudClassMethodInfo : NSObject +@property (nonatomic, assign, readonly) Method method; ///< method opaque struct +@property (nonatomic, strong, readonly) NSString *name; ///< method name +@property (nonatomic, assign, readonly) SEL sel; ///< method's selector +@property (nonatomic, assign, readonly) IMP imp; ///< method's implementation +@property (nonatomic, strong, readonly) NSString *typeEncoding; ///< method's parameter and return types +@property (nonatomic, strong, readonly) NSString *returnTypeEncoding; ///< return value's type +@property (nullable, nonatomic, strong, readonly) NSArray *argumentTypeEncodings; ///< array of arguments' type + +/** + Creates and returns a method info object. + + @param method method opaque struct + @return A new object, or nil if an error occurs. + */ +- (instancetype)initWithMethod:(Method)method; +@end + +/** + Property information. + */ +@interface QCloudClassPropertyInfo : NSObject +@property (nonatomic, assign, readonly) objc_property_t property ; ///< property's opaque struct +@property (nonatomic, strong, readonly) NSString *name; ///< property's name +@property (nonatomic, assign, readonly) QCloudEncodingType type; ///< property's type +@property (nonatomic, strong, readonly) NSString *typeEncoding; ///< property's encoding value +@property (nonatomic, strong, readonly) NSString *ivarName; ///< property's ivar name +@property (nullable, nonatomic, assign, readonly) Class cls; ///< may be nil +@property (nullable, nonatomic, strong, readonly) NSArray *protocols; ///< may nil +@property (nonatomic, assign, readonly) SEL getter; ///< getter (nonnull) +@property (nonatomic, assign, readonly) SEL setter; ///< setter (nonnull) + +/** + Creates and returns a property info object. + + @param property property opaque struct + @return A new object, or nil if an error occurs. + */ +- (instancetype)initWithProperty:(objc_property_t)property; +@end + +/** + Class information for a class. + */ +@interface QCloudClassInfo : NSObject +@property (nonatomic, assign, readonly) Class cls; ///< class object +@property (nullable, nonatomic, assign, readonly) Class superCls; ///< super class object +@property (nullable, nonatomic, assign, readonly) Class metaCls; ///< class's meta class object +@property (nonatomic, readonly) BOOL isMeta; ///< whether this class is meta class +@property (nonatomic, strong, readonly) NSString *name; ///< class name +@property (nullable, nonatomic, strong, readonly) QCloudClassInfo *superClassInfo; ///< super class's class info +@property (nullable, nonatomic, strong, readonly) NSDictionary *ivarInfos; ///< ivars +@property (nullable, nonatomic, strong, readonly) NSDictionary *methodInfos; ///< methods +@property (nullable, nonatomic, strong, readonly) NSDictionary *propertyInfos; ///< properties + +/** + If the class is changed (for example: you add a method to this class with + 'class_addMethod()'), you should call this method to refresh the class info cache. + + After called this method, `needUpdate` will returns `YES`, and you should call + 'classInfoWithClass' or 'classInfoWithClassName' to get the updated class info. + */ +- (void)setNeedUpdate; + +/** + If this method returns `YES`, you should stop using this instance and call + `classInfoWithClass` or `classInfoWithClassName` to get the updated class info. + + @return Whether this class info need update. + */ +- (BOOL)needUpdate; + +/** + Get the class info of a specified Class. + + @discussion This method will cache the class info and super-class info + at the first access to the Class. This method is thread-safe. + + @param cls A class. + @return A class info, or nil if an error occurs. + */ ++ (nullable instancetype)classInfoWithClass:(Class)cls; + +/** + Get the class info of a specified Class. + + @discussion This method will cache the class info and super-class info + at the first access to the Class. This method is thread-safe. + + @param className A class name. + @return A class info, or nil if an error occurs. + */ ++ (nullable instancetype)classInfoWithClassName:(NSString *)className; + +@end + +NS_ASSUME_NONNULL_END diff --git a/Pods/QCloudCore/QCloudCore/Classes/Base/QCLOUDObjectModel/QCloudClassInfo.m b/Pods/QCloudCore/QCloudCore/Classes/Base/QCLOUDObjectModel/QCloudClassInfo.m new file mode 100644 index 0000000..bb00b3d --- /dev/null +++ b/Pods/QCloudCore/QCloudCore/Classes/Base/QCLOUDObjectModel/QCloudClassInfo.m @@ -0,0 +1,407 @@ +// +// QCloudClassInfo.m +// QCloudModel +// +// Created by ibireme on 15/5/9. +// Copyright (c) 2015 ibireme. +// +// This source code is licensed under the MIT-style license found in the +// LICENSE file in the root directory of this source tree. +// + +#import "QCloudClassInfo.h" +#import + +QCloudEncodingType QCloudEncodingGetType(const char *typeEncoding) { + char *type = (char *)typeEncoding; + if (!type) + return QCloudEncodingTypeUnknown; + size_t len = strlen(type); + if (len == 0) + return QCloudEncodingTypeUnknown; + + QCloudEncodingType qualifier = 0; + bool prefix = true; + while (prefix) { + switch (*type) { + case 'r': { + qualifier |= QCloudEncodingTypeQualifierConst; + type++; + } break; + case 'n': { + qualifier |= QCloudEncodingTypeQualifierIn; + type++; + } break; + case 'N': { + qualifier |= QCloudEncodingTypeQualifierInout; + type++; + } break; + case 'o': { + qualifier |= QCloudEncodingTypeQualifierOut; + type++; + } break; + case 'O': { + qualifier |= QCloudEncodingTypeQualifierBycopy; + type++; + } break; + case 'R': { + qualifier |= QCloudEncodingTypeQualifierByref; + type++; + } break; + case 'V': { + qualifier |= QCloudEncodingTypeQualifierOneway; + type++; + } break; + default: { + prefix = false; + } break; + } + } + + len = strlen(type); + if (len == 0) + return QCloudEncodingTypeUnknown | qualifier; + + switch (*type) { + case 'v': + return QCloudEncodingTypeVoid | qualifier; + case 'B': + return QCloudEncodingTypeBool | qualifier; + case 'c': + return QCloudEncodingTypeInt8 | qualifier; + case 'C': + return QCloudEncodingTypeUInt8 | qualifier; + case 's': + return QCloudEncodingTypeInt16 | qualifier; + case 'S': + return QCloudEncodingTypeUInt16 | qualifier; + case 'i': + return QCloudEncodingTypeInt32 | qualifier; + case 'I': + return QCloudEncodingTypeUInt32 | qualifier; + case 'l': + return QCloudEncodingTypeInt32 | qualifier; + case 'L': + return QCloudEncodingTypeUInt32 | qualifier; + case 'q': + return QCloudEncodingTypeInt64 | qualifier; + case 'Q': + return QCloudEncodingTypeUInt64 | qualifier; + case 'f': + return QCloudEncodingTypeFloat | qualifier; + case 'd': + return QCloudEncodingTypeDouble | qualifier; + case 'D': + return QCloudEncodingTypeLongDouble | qualifier; + case '#': + return QCloudEncodingTypeClass | qualifier; + case ':': + return QCloudEncodingTypeSEL | qualifier; + case '*': + return QCloudEncodingTypeCString | qualifier; + case '^': + return QCloudEncodingTypePointer | qualifier; + case '[': + return QCloudEncodingTypeCArray | qualifier; + case '(': + return QCloudEncodingTypeUnion | qualifier; + case '{': + return QCloudEncodingTypeStruct | qualifier; + case '@': { + if (len == 2 && *(type + 1) == '?') + return QCloudEncodingTypeBlock | qualifier; + else + return QCloudEncodingTypeObject | qualifier; + } + default: + return QCloudEncodingTypeUnknown | qualifier; + } +} + +@implementation QCloudClassIvarInfo + +- (instancetype)initWithIvar:(Ivar)ivar { + if (!ivar) + return nil; + self = [super init]; + _ivar = ivar; + const char *name = ivar_getName(ivar); + if (name) { + _name = [NSString stringWithUTF8String:name]; + } + _offset = ivar_getOffset(ivar); + const char *typeEncoding = ivar_getTypeEncoding(ivar); + if (typeEncoding) { + _typeEncoding = [NSString stringWithUTF8String:typeEncoding]; + _type = QCloudEncodingGetType(typeEncoding); + } + return self; +} + +@end + +@implementation QCloudClassMethodInfo + +- (instancetype)initWithMethod:(Method)method { + if (!method) + return nil; + self = [super init]; + _method = method; + _sel = method_getName(method); + _imp = method_getImplementation(method); + const char *name = sel_getName(_sel); + if (name) { + _name = [NSString stringWithUTF8String:name]; + } + const char *typeEncoding = method_getTypeEncoding(method); + if (typeEncoding) { + _typeEncoding = [NSString stringWithUTF8String:typeEncoding]; + } + char *returnType = method_copyReturnType(method); + if (returnType) { + _returnTypeEncoding = [NSString stringWithUTF8String:returnType]; + free(returnType); + } + unsigned int argumentCount = method_getNumberOfArguments(method); + if (argumentCount > 0) { + NSMutableArray *argumentTypes = [NSMutableArray new]; + for (unsigned int i = 0; i < argumentCount; i++) { + char *argumentType = method_copyArgumentType(method, i); + NSString *type = argumentType ? [NSString stringWithUTF8String:argumentType] : nil; + [argumentTypes addObject:type ? type : @""]; + if (argumentType) + free(argumentType); + } + _argumentTypeEncodings = argumentTypes; + } + return self; +} + +@end + +@implementation QCloudClassPropertyInfo + +- (instancetype)initWithProperty:(objc_property_t)property { + if (!property) + return nil; + self = [super init]; + _property = property; + const char *name = property_getName(property); + if (name) { + _name = [NSString stringWithUTF8String:name]; + } + + QCloudEncodingType type = 0; + unsigned int attrCount; + objc_property_attribute_t *attrs = property_copyAttributeList(property, &attrCount); + for (unsigned int i = 0; i < attrCount; i++) { + switch (attrs[i].name[0]) { + case 'T': { // Type encoding + if (attrs[i].value) { + _typeEncoding = [NSString stringWithUTF8String:attrs[i].value]; + type = QCloudEncodingGetType(attrs[i].value); + + if ((type & QCloudEncodingTypeMask) == QCloudEncodingTypeObject && _typeEncoding.length) { + NSScanner *scanner = [NSScanner scannerWithString:_typeEncoding]; + if (![scanner scanString:@"@\"" intoString:NULL]) + continue; + + NSString *clsName = nil; + if ([scanner scanUpToCharactersFromSet:[NSCharacterSet characterSetWithCharactersInString:@"\"<"] intoString:&clsName]) { + if (clsName.length) + _cls = objc_getClass(clsName.UTF8String); + } + + NSMutableArray *protocols = nil; + while ([scanner scanString:@"<" intoString:NULL]) { + NSString *protocol = nil; + if ([scanner scanUpToString:@">" intoString:&protocol]) { + if (protocol.length) { + if (!protocols) + protocols = [NSMutableArray new]; + [protocols addObject:protocol]; + } + } + [scanner scanString:@">" intoString:NULL]; + } + _protocols = protocols; + } + } + } break; + case 'V': { // Instance variable + if (attrs[i].value) { + _ivarName = [NSString stringWithUTF8String:attrs[i].value]; + } + } break; + case 'R': { + type |= QCloudEncodingTypePropertyReadonly; + } break; + case 'C': { + type |= QCloudEncodingTypePropertyCopy; + } break; + case '&': { + type |= QCloudEncodingTypePropertyRetain; + } break; + case 'N': { + type |= QCloudEncodingTypePropertyNonatomic; + } break; + case 'D': { + type |= QCloudEncodingTypePropertyDynamic; + } break; + case 'W': { + type |= QCloudEncodingTypePropertyWeak; + } break; + case 'G': { + type |= QCloudEncodingTypePropertyCustomGetter; + if (attrs[i].value) { + _getter = NSSelectorFromString([NSString stringWithUTF8String:attrs[i].value]); + } + } break; + case 'S': { + type |= QCloudEncodingTypePropertyCustomSetter; + if (attrs[i].value) { + _setter = NSSelectorFromString([NSString stringWithUTF8String:attrs[i].value]); + } + } // break; commented for code coverage in next line + default: + break; + } + } + if (attrs) { + free(attrs); + attrs = NULL; + } + + _type = type; + if (_name.length) { + if (!_getter) { + _getter = NSSelectorFromString(_name); + } + if (!_setter && _name.length) { + _setter = NSSelectorFromString( + [NSString stringWithFormat:@"set%@%@:", [_name substringToIndex:1].uppercaseString, [_name substringFromIndex:1]]); + } + } + return self; +} + +@end + +@implementation QCloudClassInfo { + BOOL _needUpdate; +} + +- (instancetype)initWithClass:(Class)cls { + if (!cls) + return nil; + self = [super init]; + _cls = cls; + _superCls = class_getSuperclass(cls); + _isMeta = class_isMetaClass(cls); + if (!_isMeta) { + _metaCls = objc_getMetaClass(class_getName(cls)); + } + _name = NSStringFromClass(cls); + [self _update]; + + _superClassInfo = [self.class classInfoWithClass:_superCls]; + return self; +} + +- (void)_update { + _ivarInfos = nil; + _methodInfos = nil; + _propertyInfos = nil; + + Class cls = self.cls; + unsigned int methodCount = 0; + Method *methods = class_copyMethodList(cls, &methodCount); + if (methods) { + NSMutableDictionary *methodInfos = [NSMutableDictionary new]; + _methodInfos = methodInfos; + for (unsigned int i = 0; i < methodCount; i++) { + QCloudClassMethodInfo *info = [[QCloudClassMethodInfo alloc] initWithMethod:methods[i]]; + if (info.name) + methodInfos[info.name] = info; + } + free(methods); + } + unsigned int propertyCount = 0; + objc_property_t *properties = class_copyPropertyList(cls, &propertyCount); + if (properties) { + NSMutableDictionary *propertyInfos = [NSMutableDictionary new]; + _propertyInfos = propertyInfos; + for (unsigned int i = 0; i < propertyCount; i++) { + QCloudClassPropertyInfo *info = [[QCloudClassPropertyInfo alloc] initWithProperty:properties[i]]; + if (info.name) + propertyInfos[info.name] = info; + } + free(properties); + } + + unsigned int ivarCount = 0; + Ivar *ivars = class_copyIvarList(cls, &ivarCount); + if (ivars) { + NSMutableDictionary *ivarInfos = [NSMutableDictionary new]; + _ivarInfos = ivarInfos; + for (unsigned int i = 0; i < ivarCount; i++) { + QCloudClassIvarInfo *info = [[QCloudClassIvarInfo alloc] initWithIvar:ivars[i]]; + if (info.name) + ivarInfos[info.name] = info; + } + free(ivars); + } + + if (!_ivarInfos) + _ivarInfos = @{}; + if (!_methodInfos) + _methodInfos = @{}; + if (!_propertyInfos) + _propertyInfos = @{}; + + _needUpdate = NO; +} + +- (void)setNeedUpdate { + _needUpdate = YES; +} + +- (BOOL)needUpdate { + return _needUpdate; +} + ++ (instancetype)classInfoWithClass:(Class)cls { + if (!cls) + return nil; + static CFMutableDictionaryRef classCache; + static CFMutableDictionaryRef metaCache; + static dispatch_once_t onceToken; + static dispatch_semaphore_t lock; + dispatch_once(&onceToken, ^{ + classCache = CFDictionaryCreateMutable(CFAllocatorGetDefault(), 0, &kCFTypeDictionaryKeyCallBacks, &kCFTypeDictionaryValueCallBacks); + metaCache = CFDictionaryCreateMutable(CFAllocatorGetDefault(), 0, &kCFTypeDictionaryKeyCallBacks, &kCFTypeDictionaryValueCallBacks); + lock = dispatch_semaphore_create(1); + }); + dispatch_semaphore_wait(lock, DISPATCH_TIME_FOREVER); + QCloudClassInfo *info = CFDictionaryGetValue(class_isMetaClass(cls) ? metaCache : classCache, (__bridge const void *)(cls)); + if (info && info->_needUpdate) { + [info _update]; + } + dispatch_semaphore_signal(lock); + if (!info) { + info = [[QCloudClassInfo alloc] initWithClass:cls]; + if (info) { + dispatch_semaphore_wait(lock, DISPATCH_TIME_FOREVER); + CFDictionarySetValue(info.isMeta ? metaCache : classCache, (__bridge const void *)(cls), (__bridge const void *)(info)); + dispatch_semaphore_signal(lock); + } + } + return info; +} + ++ (instancetype)classInfoWithClassName:(NSString *)className { + Class cls = NSClassFromString(className); + return [self classInfoWithClass:cls]; +} + +@end diff --git a/Pods/QCloudCore/QCloudCore/Classes/Base/QCLOUDObjectModel/QCloudObjectModel.h b/Pods/QCloudCore/QCloudCore/Classes/Base/QCLOUDObjectModel/QCloudObjectModel.h new file mode 100755 index 0000000..0505c39 --- /dev/null +++ b/Pods/QCloudCore/QCloudCore/Classes/Base/QCLOUDObjectModel/QCloudObjectModel.h @@ -0,0 +1,22 @@ +// +// QCloudModel.h +// QCloudModel +// +// Created by ibireme on 15/5/10. +// Copyright (c) 2015 ibireme. +// +// This source code is licensed under the MIT-style license found in the +// LICENSE file in the root directory of this source tree. +// + +#import + +#if __has_include() +FOUNDATION_EXPORT double QCloudModelVersionNumber; +FOUNDATION_EXPORT const unsigned char QCloudModelVersionString[]; +#import +#import +#else +#import "NSObject+QCloudModel.h" +#import "QCloudClassInfo.h" +#endif diff --git a/Pods/QCloudCore/QCloudCore/Classes/Base/QCLOUDProgramDefines/QCloudProgrameDefines.h b/Pods/QCloudCore/QCloudCore/Classes/Base/QCLOUDProgramDefines/QCloudProgrameDefines.h new file mode 100644 index 0000000..bbe4c16 --- /dev/null +++ b/Pods/QCloudCore/QCloudCore/Classes/Base/QCLOUDProgramDefines/QCloudProgrameDefines.h @@ -0,0 +1,98 @@ +// +// DZProgrameDefines.h +// TimeUI +// +// Created by Stone Dong on 14-1-21. +// Copyright (c) 2014年 Stone Dong. All rights reserved. +// + +#import +#pragma clang diagnostic push +#pragma clang diagnostic ignored "-Wstrict-prototypes" + +#define DEFINE_PROPERTY_KEY(key) static void const kPK##key = &kPK##key + +/** + * 定义字符串 + */ +#define DEFINE_NSString(str) static NSString *const kDZ##str = @"" #str; + +#define DEFINE_NSStringValue(str, value) static NSString *const kDZ##str = @"" #value; + +#define DEFINE_NOTIFICATION_MESSAGE(str) static NSString *const kDZNotification_##str = @"" #str; + +#define DEFINE_PROPERTY_READONLY(mnmKind, type, name) @property (nonatomic, mnmKind, readonly) type name + +#define DEFINE_PROPERTY(mnmKind, type, name) @property (nonatomic, mnmKind) type name +#define DEFINE_PROPERTY_ASSIGN(type, name) DEFINE_PROPERTY(assign, type, name) +#define DEFINE_PROPERTY_ASSIGN_Float(name) DEFINE_PROPERTY_ASSIGN(float, name) +#define DEFINE_PROPERTY_ASSIGN_INT64(name) DEFINE_PROPERTY_ASSIGN(int64_t, name) +#define DEFINE_PROPERTY_ASSIGN_INT32(name) DEFINE_PROPERTY_ASSIGN(int32_t, name) +#define DEFINE_PROPERTY_ASSIGN_INT16(name) DEFINE_PROPERTY_ASSIGN(int16_t, name) +#define DEFINE_PROPERTY_ASSIGN_INT8(name) DEFINE_PROPERTY_ASSIGN(int8_t, name) +#define DEFINE_PROPERTY_ASSIGN_Double(name) DEFINE_PROPERTY_ASSIGN(double, name) +#define DEFINE_PROPERTY_ASSIGN_BOOL(name) DEFINE_PROPERTY_ASSIGN(BOOL, name) + +#define DEFINE_PROPERTY_STRONG_READONLY(type, name) DEFINE_PROPERTY_READONLY(strong, type, name) + +#define DEFINE_PROPERTY_STRONG(type, name) DEFINE_PROPERTY(strong, type, name) +#define DEFINE_PROPERTY_STRONG_UILabel(name) DEFINE_PROPERTY_STRONG(UILabel *, name) +#define DEFINE_PROPERTY_STRONG_NSString(name) DEFINE_PROPERTY_STRONG(NSString *, name) + +#define DEFINE_PROPERTY_STRONG_NSDate(name) DEFINE_PROPERTY_STRONG(NSDate *, name) +#define DEFINE_PROPERTY_STRONG_NSArray(name) DEFINE_PROPERTY_STRONG(NSArray *, name) +#define DEFINE_PROPERTY_STRONG_UIImageView(name) DEFINE_PROPERTY_STRONG(UIImageView *, name) +#define DEFINE_PROPERTY_STRONG_UIButton(name) DEFINE_PROPERTY_STRONG(UIButton *, name) + +#define DEFINE_PROPERTY_WEAK(type, name) DEFINE_PROPERTY(weak, type, name) + +#define DEFINE_DZ_EXTERN_STRING(key) extern NSString *const key; +#define INIT_DZ_EXTERN_STRING(key, value) NSString *const key = @"" #value; + +#define DZ_CheckObjcetClass(object, cla) [object isKindOfClass:[cla class]] + +/** + 数据类型的转化 + */ + +#define DZ_STR_2_URL(str) (([str hasPrefix:@"http"] || !str) ? [NSURL URLWithString:str] : [NSURL fileURLWithPath:str]) +#define DZ_NUM_2_STR(num) [@(num) stringValue] + +// Notification defaults + +#define DZExternObserverMessage(msg) \ + void DZAddObserverFor##msg(NSObject *ob, SEL selector); \ + void DZRemoveObserverFor##msg(NSObject *ob); \ + void DZPost##msg(NSDictionary *dic); + +#define DZObserverMessage(message) \ + void DZAddObserverFor##message(NSObject *ob, SEL selector) { \ + [[NSNotificationCenter defaultCenter] addObserver:ob selector:selector name:@"" #message object:nil]; \ + } \ + \ + void DZRemoveObserverFor##message(NSObject *ob) { \ + [[NSNotificationCenter defaultCenter] removeObserver:ob name:@"" #message object:nil]; \ + } \ + \ + void DZPost##message(NSDictionary *dic) { \ + [[NSNotificationCenter defaultCenter] postNotificationName:@"" #message object:nil userInfo:dic]; \ + } + +FOUNDATION_EXTERN void DZEnsureMainThread(void (^mainSafeBlock)()); + +#define DZEnsureMainThreadBegin DZEnsureMainThread(^{ +#define DZEnsureMainThreadEnd \ + }); + +//定义block中使用的变量 + +#define QCloudWeakSelf(type) __weak typeof(type) weak##type = type +#define QCloudStrongSelf(type) __strong typeof(weak##type) strong##type = weak##type + +#pragma mark---- + +#define bQCloudSystemVersion(min, max) \ + ([UIDevice currentDevice].systemVersion.doubleValue >= min) && ([UIDevice currentDevice].systemVersion.doubleValue <= max) +#define bQCloudSystemVersion8 bQCloudSystemVersion(8.0, 8.999) + +#pragma clang diagnostic pop diff --git a/Pods/QCloudCore/QCloudCore/Classes/Base/QCLOUDProgramDefines/QCloudProgrameDefines.m b/Pods/QCloudCore/QCloudCore/Classes/Base/QCLOUDProgramDefines/QCloudProgrameDefines.m new file mode 100644 index 0000000..19f4951 --- /dev/null +++ b/Pods/QCloudCore/QCloudCore/Classes/Base/QCLOUDProgramDefines/QCloudProgrameDefines.m @@ -0,0 +1,21 @@ +// +// DZProgramDefines.m +// TimeUI +// +// Created by Stone Dong on 14-1-21. +// Copyright (c) 2014年 Stone Dong. All rights reserved. +// + +#import "QCloudProgrameDefines.h" +#import + +void DZEnsureMainThread(void (^mainSafeBlock)(void)) { + if (mainSafeBlock == NULL) { + return; + } + if ([NSThread isMainThread]) { + mainSafeBlock(); + } else { + dispatch_sync(dispatch_get_main_queue(), mainSafeBlock); + } +} diff --git a/Pods/QCloudCore/QCloudCore/Classes/Base/QCLOUDRestNet/API/QCloudNetworkingAPI.h b/Pods/QCloudCore/QCloudCore/Classes/Base/QCLOUDRestNet/API/QCloudNetworkingAPI.h new file mode 100644 index 0000000..6b9d41b --- /dev/null +++ b/Pods/QCloudCore/QCloudCore/Classes/Base/QCLOUDRestNet/API/QCloudNetworkingAPI.h @@ -0,0 +1,32 @@ +// +// QCloudNetworkingAPI.h +// QCloudTernimalLab_CommonLogic +// +// Created by tencent on 5/12/16. +// Copyright © 2016 QCloudTernimalLab. All rights reserved. +// + +#import +#import "QCloudHTTPRequestDelegate.h" + +extern NSString *const kQCloudRestNetURLUsageNotification; + +@interface NSDictionary (QCloudRestNetUsage) +- (NSURL *)bdwt_RestNetCoreUsagedURL; +@end + +@class QCloudHTTPRequest; +@class QCloudRequestOperation; +@protocol QCloudNetworkingAPI +/** + 最大并发的网络线程数量 + */ +@property (atomic, assign) int32_t maxConcurrencyTask; ++ (NSObject *)shareClient; +- (int)performRequest:(QCloudHTTPRequest *)httpRequst; +- (int)performRequest:(QCloudHTTPRequest *)httpRequst withFinishBlock:(QCloudRequestFinishBlock)block; +- (void)cancelRequestWithID:(int)requestID; +- (void)cancelAllRequest; +- (void)cancelRequestsWithID:(NSArray *)requestIDs; +- (void)executeRestHTTPReqeust:(QCloudHTTPRequest *)httpRequest; +@end diff --git a/Pods/QCloudCore/QCloudCore/Classes/Base/QCLOUDRestNet/CoreRequest/NSHTTPCookie+QCloudNetworking.h b/Pods/QCloudCore/QCloudCore/Classes/Base/QCLOUDRestNet/CoreRequest/NSHTTPCookie+QCloudNetworking.h new file mode 100644 index 0000000..9d00ebe --- /dev/null +++ b/Pods/QCloudCore/QCloudCore/Classes/Base/QCLOUDRestNet/CoreRequest/NSHTTPCookie+QCloudNetworking.h @@ -0,0 +1,14 @@ +// +// NSHTTPCookie+QCloudNetworking.h +// QCloudNetworking +// +// Created by tencent on 15/9/29. +// Copyright © 2015年 QCloudTernimalLab. All rights reserved. +// + +#import + +FOUNDATION_EXTERN NSArray *QCloudFuseAndUpdateCookiesArray(NSArray *source, NSArray *aim); +@interface NSHTTPCookie (QCloudNetworking) +- (BOOL)isEqualToQCloudCookie:(NSHTTPCookie *)c; +@end diff --git a/Pods/QCloudCore/QCloudCore/Classes/Base/QCLOUDRestNet/CoreRequest/NSHTTPCookie+QCloudNetworking.m b/Pods/QCloudCore/QCloudCore/Classes/Base/QCLOUDRestNet/CoreRequest/NSHTTPCookie+QCloudNetworking.m new file mode 100644 index 0000000..6a2a724 --- /dev/null +++ b/Pods/QCloudCore/QCloudCore/Classes/Base/QCLOUDRestNet/CoreRequest/NSHTTPCookie+QCloudNetworking.m @@ -0,0 +1,43 @@ +// +// NSHTTPCookie+QCloudNetworking.m +// QCloudNetworking +// +// Created by tencent on 15/9/29. +// Copyright © 2015年 QCloudTernimalLab. All rights reserved. +// + +#import "NSHTTPCookie+QCloudNetworking.h" + +NSArray *QCloudFuseAndUpdateCookiesArray(NSArray *source, NSArray *aim) { + NSMutableArray *aimArray = [NSMutableArray new]; + if (source.count) { + [aimArray addObjectsFromArray:source]; + } + for (NSHTTPCookie *s in source) { + if (![aimArray containsObject:s]) { + [aimArray addObject:s]; + } + } + return aimArray; +} + +@implementation NSHTTPCookie (QCloudNetworking) +- (BOOL)isEqualToQCloudCookie:(NSHTTPCookie *)c { + if (![c.name isEqualToString:self.name]) { + return NO; + } + if (![c.value isEqualToString:self.value]) { + return NO; + } + if (![c.path isEqualToString:self.path]) { + return NO; + } + + NSString *maxDomain = c.domain.length > self.domain.length ? c.domain : self.domain; + NSString *minDomain = c.domain.length < self.domain.length ? c.domain : self.domain; + if ([maxDomain hasSuffix:minDomain]) { + return YES; + } + return NO; +} +@end diff --git a/Pods/QCloudCore/QCloudCore/Classes/Base/QCLOUDRestNet/CoreRequest/QCloudAbstractRequest.h b/Pods/QCloudCore/QCloudCore/Classes/Base/QCLOUDRestNet/CoreRequest/QCloudAbstractRequest.h new file mode 100644 index 0000000..8d950c4 --- /dev/null +++ b/Pods/QCloudCore/QCloudCore/Classes/Base/QCLOUDRestNet/CoreRequest/QCloudAbstractRequest.h @@ -0,0 +1,134 @@ +// +// QCloudAbstractRequest.h +// Pods +// +// Created by Dong Zhao on 2017/3/10. +// +// + +#import +#import "QCloudHTTPRequestDelegate.h" +#import "QCloudHttpMetrics.h" +#import "QCloudCredential.h" +#import "QCloudEndPoint.h" +#import "QCloudSignature.h" +typedef double QCloudAbstractRequestPriority; + +#define QCloudAbstractRequestPriorityHigh 3.0 +#define QCloudAbstractRequestPriorityNormal 2.0 +#define QCloudAbstractRequestPriorityLow 1.0 +#define QCloudAbstractRequestPriorityBackground 0.0 +typedef void (^QCloudRequestSendProcessBlock)(int64_t bytesSent, int64_t totalBytesSent, int64_t totalBytesExpectedToSend); +typedef void (^QCloudRequestDownProcessBlock)(int64_t bytesDownload, int64_t totalBytesDownload, int64_t totalBytesExpectedToDownload); +typedef void (^QCloudRequestDownProcessWithDataBlock)(int64_t bytesDownload, int64_t totalBytesDownload, int64_t totalBytesExpectedToDownload, + NSData * _Nullable receivedData); + +typedef NS_ENUM(NSUInteger, QCloudRequestNetworkType) { + QCloudRequestNetworkNone = 0, + QCloudRequestNetworkHttp, + QCloudRequestNetworkQuic, +}; +/** + 请求的抽象基类,该类封装了用于进行request-response模式数据请求的通用属性和接口。包括发起请求,相应结果,优先级处理,性能监控能常见特性。 + */ +@interface QCloudAbstractRequest : NSObject { +@protected + int64_t _requestID; +} +/** + 签名信息的回调接口,该委托必须实现。签名是腾讯云进行服务时进行用户身份校验的关键手段,同时也保障了用户访问的安全性。该委托中通过函数回调来提供签名信息。 + */ + +/** + 指定接口级请求域名 + */ +@property (nonatomic, strong, nullable) QCloudEndPoint * endpoint; + +/// 用于外部指定网络请求使用何种协议。默认QCloudRequestNetworkHttp。优先级高于config.enableQuic。 +@property (nonatomic, assign)QCloudRequestNetworkType networkType; + +/// sdk 内部使用,外部设置无效。 +@property (nonatomic, assign) BOOL enableQuic; +@property (atomic, assign) BOOL forbidCancelled; +@property (atomic, assign) BOOL requestRetry; +@property (atomic, assign, readonly) BOOL canceled; +@property (nonatomic, assign, readonly) int64_t requestID; +@property (nonatomic, assign) QCloudAbstractRequestPriority priority; +@property (nonatomic, strong, readonly) QCloudHttpMetrics *_Nullable benchMarkMan; +@property (atomic, assign, readonly) BOOL finished; +@property (nonatomic, assign) NSTimeInterval timeoutInterval; +/** + 用于业务中携带与request关联的参数,不参与SDK内部逻辑与网络请求; + */ +@property (nonatomic, strong ,nullable) NSDictionary * payload; + +/** + 设置接口级参与签头部和参数。 + + 默认下方所有字段参与签名,无需设置,若指定某个字段不参与签名,则将相应的字段删除,然后将数组赋值给shouldSignedList即可。 + @[@"Cache-Control", @"Content-Disposition", @"Content-Encoding", @"Content-Length", @"Content-MD5", @"Content-Type", @"Expect", @"Expires", @"If-Match" , @"If-Modified-Since" , @"If-None-Match" , @"If-Unmodified-Since" , @"Origin" , @"Range" , @"transfer-encoding" ,@"Host",@"Pic-Operations",@"ci-process"] + + 示例: + 1、指定Host不参与签名(删除数组中的@"Host")。 + shouldSignedList = @[@"Cache-Control", @"Content-Disposition", @"Content-Encoding", @"Content-Length", @"Content-MD5", @"Content-Type", @"Expect", @"Expires", @"If-Match" , @"If-Modified-Since" , @"If-None-Match" , @"If-Unmodified-Since" , @"Origin" , @"Range" , @"transfer-encoding" ,@"Pic-Operations",@"ci-process"]; + + 2、指定所有字段都不参与签名。 + shouldSignedList = @[]; + */ +@property (nonatomic, strong, nullable) NSArray *shouldSignedList; +@property (nonatomic, strong, nullable) QCloudCredential * credential; + +@property (nonatomic, strong, nullable) QCloudSignature * signature; +/** + 协议执行结果向外通知的委托(delegate)主要包括成功和失败两种情况。与Block方式并存,当两者都设置的时候都会通知。 + */ +@property (nonatomic, weak) id _Nullable delegate; +/** + 协议执行结果向外通知的Block,与delegate方式并存,当两者都设置的时候都会通知。 + */ +@property (nonatomic, strong) QCloudRequestFinishBlock _Nullable finishBlock; + +@property (nonatomic, strong) QCloudRequestSendProcessBlock _Nullable sendProcessBlock; + +@property (nonatomic, strong) QCloudRequestDownProcessBlock _Nullable downProcessBlock; + +@property (nonatomic, strong) QCloudRequestDownProcessWithDataBlock _Nullable downProcessWithDataBlock; +- (void)setFinishBlock:(void (^_Nullable)(id _Nullable outputObject, NSError *_Nullable error))QCloudRequestFinishBlock; +- (void)setDownProcessBlock:(void (^_Nullable)(int64_t bytesDownload, int64_t totalBytesDownload, + int64_t totalBytesExpectedToDownload))downloadProcessBlock; +- (void)setDownProcessWithDataBlock:(void (^_Nullable)(int64_t bytesDownload, int64_t totalBytesDownload, + + int64_t totalBytesExpectedToDownload, NSData * _Nullable receiveData))downloadProcessWithDataBlock; + +- (void)setSendProcessBlock:(void (^_Nullable)(int64_t bytesSent, int64_t totalBytesSent, int64_t totalBytesExpectedToSend))sendProcessBlock; + +/** + 请求过程出错,进行处理。默认只处理HTTP协议层错误信息。并进行delegate的通知。 + @param error 请求过程出错信息,默认只处理HTTP层错误信息 + */ +- (void)onError:(NSError *_Nonnull)error; + +/** + 请求过程成功,并获取到了数据,进行处理。并进行delegate的通知。 + @param object 获取到的数据,经过responseserilizer处理的后的数据。 + */ +- (void)onSuccess:(id _Nonnull)object; + +- (void)notifySuccess:(id _Nonnull)object; +- (void)notifyError:(NSError *_Nonnull)error; +- (void)notifyDownloadProgressBytesDownload:(int64_t)bytesDownload + totalBytesDownload:(int64_t)totalBytesDownload + totalBytesExpectedToDownload:(int64_t)totalBytesExpectedToDownload; + +- (void)notifyDownloadProgressBytesDownload:(int64_t)bytesDownload + totalBytesDownload:(int64_t)totalBytesDownload + totalBytesExpectedToDownload:(int64_t)totalBytesExpectedToDownload + receivedData:(NSData *_Nullable)data; + +- (void)notifySendProgressBytesSend:(int64_t)bytesSend + totalBytesSend:(int64_t)totalBytesSend + totalBytesExpectedToSend:(int64_t)totalBytesExpectedToSend; +- (void)cancel; +- (void)waitForComplete; +- (void)configTaskResume; +@end diff --git a/Pods/QCloudCore/QCloudCore/Classes/Base/QCLOUDRestNet/CoreRequest/QCloudAbstractRequest.m b/Pods/QCloudCore/QCloudCore/Classes/Base/QCLOUDRestNet/CoreRequest/QCloudAbstractRequest.m new file mode 100644 index 0000000..ec85f85 --- /dev/null +++ b/Pods/QCloudCore/QCloudCore/Classes/Base/QCLOUDRestNet/CoreRequest/QCloudAbstractRequest.m @@ -0,0 +1,240 @@ +// +// QCloudAbstractRequest.m +// Pods +// +// Created by Dong Zhao on 2017/3/10. +// +// + +#import "QCloudAbstractRequest.h" +#import "QCloudLogger.h" +#import "QCloudNetEnv.h" +#import "NSError+QCloudNetworking.h" +__attribute__((noinline)) void cosWarnBlockingOperationOnMainThread(void) { + NSLog(@"Warning: A long-running operation is being executed on the main thread. \n" + " Break on warnBlockingOperationOnMainThread() to debug."); +} +@interface QCloudAbstractRequest () +@property (nonatomic, strong) NSObject *lock; +@property (nonatomic, strong) NSCondition *condition; + +@end +@implementation QCloudAbstractRequest +@synthesize requestID = _requestID; + +- (instancetype)init { + self = [super init]; + if (!self) { + return self; + } + _lock = [[NSObject alloc] init]; + _condition = [[NSCondition alloc] init]; + _benchMarkMan = [QCloudHttpMetrics new]; + _priority = QCloudAbstractRequestPriorityHigh; + static int64_t requestID = 3333; + _requestID = (++ requestID) * 1000 + arc4random_uniform(1000); + _finished = NO; + + return self; +} + +- (void)__notifyError:(NSError *)error { + [self.condition broadcast]; + // [self.benchMarkMan benginWithKey:kRNBenchmarkLogicOnly]; + if ([self.delegate respondsToSelector:@selector(QCloudHTTPRequestDidFinished:failed:)]) { + [self.delegate QCloudHTTPRequestDidFinished:self failed:error]; + } + if (self.finishBlock) { + self.finishBlock(nil, error); + } + self.finishBlock = nil; + // [self.benchMarkMan markFinishWithKey:kRNBenchmarkLogicOnly]; +} +- (void)notifyError:(NSError *)error { + if (![NSThread isMainThread]) { + [self __notifyError:error]; + } else { + [self performSelectorInBackground:@selector(__notifyError:) withObject:error]; + } +} + +- (void)onError:(NSError *)error { + @synchronized(self) { + if (_finished) { + return; + } + _finished = YES; + } + [self.benchMarkMan markFinishWithKey:kTaskTookTime]; + [self notifyError:error]; + if (self.requestRetry) { + _finished = NO; + }else{ + _finished = YES; + } + QCloudLogErrorE(@"",@"[%@][%lld]当前网络环境为%d 请求失败%@", [self class], self.requestID, QCloudNetworkShareEnv.currentNetStatus, error); + QCloudLogInfoN(@"",@"[%@][%lld]性能监控 %@", [self class], self.requestID, [self.benchMarkMan readablityDescription]); +} + +- (void)__notifySuccess:(id)object { + [self.condition broadcast]; + if ([self.delegate respondsToSelector:@selector(QCloudHTTPRequestDidFinished:succeedWithObject:)]) { + [self.delegate QCloudHTTPRequestDidFinished:self succeedWithObject:object]; + } + dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_HIGH, 0), ^{ + if (self.finishBlock) { + self.finishBlock(object, nil); + } + self.finishBlock = nil; + }); +} + +- (void)notifySuccess:(id)object { + if (![NSThread isMainThread]) { + [self __notifySuccess:object]; + } else { + [self performSelectorInBackground:@selector(__notifySuccess:) withObject:object]; + } +} + +- (void)onSuccess:(id)object { + @synchronized(self) { + if (_finished) { + return; + } + _finished = YES; + } + [self.benchMarkMan markFinishWithKey:kTaskTookTime]; + [self notifySuccess:object]; + if (self.requestRetry) { + _finished = NO; + }else{ + _finished = YES; + } + QCloudLogInfoN(@"",@"[%@][%lld]性能监控\n%@", [self class], self.requestID, [self.benchMarkMan readablityDescription]); +} + +- (void)cancel { + @synchronized(self) { + _canceled = YES; + } + NSError *cancelError = [NSError qcloud_errorWithCode:QCloudNetworkErrorCodeCanceled message:@"UserCancelled:The request is canceled"]; + [self onError:cancelError]; +} + +- (void)notifyDownloadProgressBytesDownload:(int64_t)bytesDownload + totalBytesDownload:(int64_t)totalBytesDownload + totalBytesExpectedToDownload:(int64_t)totalBytesExpectedToDownload { + if (self.canceled) { + return; + } + if (self.downProcessBlock) { + self.downProcessBlock(bytesDownload, totalBytesDownload, totalBytesExpectedToDownload); + } + if ([self.delegate respondsToSelector:@selector(QCloudHTTPRequest:bytesDownload:totalBytesDownload:totalBytesExpectedToDownload:)]) { + [self.delegate QCloudHTTPRequest:self + bytesDownload:bytesDownload + totalBytesDownload:totalBytesDownload + totalBytesExpectedToDownload:totalBytesExpectedToDownload]; + } +} + +- (void)notifyDownloadProgressBytesDownload:(int64_t)bytesDownload + totalBytesDownload:(int64_t)totalBytesDownload + totalBytesExpectedToDownload:(int64_t)totalBytesExpectedToDownload + receivedData:(NSData *)data { + [self notifyDownloadProgressBytesDownload:bytesDownload + totalBytesDownload:totalBytesDownload + totalBytesExpectedToDownload:totalBytesExpectedToDownload]; + + if (self.downProcessWithDataBlock) { + self.downProcessWithDataBlock(bytesDownload, totalBytesDownload, totalBytesExpectedToDownload, data); + } + if ([self.delegate respondsToSelector:@selector(QCloudHTTPRequest:bytesDownload:totalBytesDownload:totalBytesExpectedToDownload:receiveData:)]) { + [self.delegate QCloudHTTPRequest:self + bytesDownload:bytesDownload + totalBytesDownload:totalBytesDownload + totalBytesExpectedToDownload:totalBytesExpectedToDownload + receiveData:data]; + } +} + +- (void)notifySendProgressBytesSend:(int64_t)bytesSend + totalBytesSend:(int64_t)totalBytesSend + totalBytesExpectedToSend:(int64_t)totalBytesExpectedToSend { + if (self.canceled) { + return; + } + if (self.sendProcessBlock) { + self.sendProcessBlock(bytesSend, totalBytesSend, totalBytesExpectedToSend); + } + if ([self.delegate respondsToSelector:@selector(QCloudHTTPRequest:sendBytes:totalBytesSent:totalBytesExpectedToSend:)]) { + [self.delegate QCloudHTTPRequest:self sendBytes:bytesSend totalBytesSent:totalBytesSend totalBytesExpectedToSend:totalBytesExpectedToSend]; + } +} + +- (void)waitForComplete { + if ([NSThread isMainThread]) { + cosWarnBlockingOperationOnMainThread(); + } + @synchronized(self.lock) { + if (self.finished) { + return; + } + [self.condition lock]; + } + while (!self.finished) { + [self.condition wait]; + } + [self.condition unlock]; +} + +- (void)setCredential:(QCloudCredential *)credential{ + + NSMutableDictionary * _payload = self.payload.mutableCopy; + if (!_payload) { + _payload = [NSMutableDictionary new]; + } + if (credential) { + [_payload setObject:credential forKey:@"QCloudCredential"]; + } + self.payload = _payload.copy; +} + +- (QCloudCredential *)credential{ + return [self.payload objectForKey:@"QCloudCredential"]; +} + +- (void)setShouldSignedList:(NSArray *)shouldSignedList{ + NSMutableDictionary * _payload = self.payload.mutableCopy; + if (!_payload) { + _payload = [NSMutableDictionary new]; + } + if (shouldSignedList) { + [_payload setObject:shouldSignedList forKey:@"shouldSignedList"]; + } + self.payload = _payload.copy; +} + +- (NSArray *)shouldSignedList{ + return [self.payload objectForKey:@"shouldSignedList"]; +} + +- (void)setSignature:(QCloudSignature *)signature{ + NSMutableDictionary * _payload = self.payload.mutableCopy; + if (!_payload) { + _payload = [NSMutableDictionary new]; + } + if (signature) { + [_payload setObject:signature forKey:@"signature"]; + } + self.payload = _payload.copy; +} + +- (QCloudSignature *)signature{ + return [self.payload objectForKey:@"signature"]; +} + +- (void)configTaskResume { +} +@end diff --git a/Pods/QCloudCore/QCloudCore/Classes/Base/QCLOUDRestNet/CoreRequest/QCloudHTTPRequest.h b/Pods/QCloudCore/QCloudCore/Classes/Base/QCLOUDRestNet/CoreRequest/QCloudHTTPRequest.h new file mode 100644 index 0000000..0c8d6a3 --- /dev/null +++ b/Pods/QCloudCore/QCloudCore/Classes/Base/QCLOUDRestNet/CoreRequest/QCloudHTTPRequest.h @@ -0,0 +1,148 @@ +// +// QCloudHTTPRequest.h +// QCloudNetworking +// +// Created by tencent on 15/9/25. +// Copyright © 2015年 QCloudTernimalLab. All rights reserved. +// + +#import +#import "QCloudRequestData.h" +#import "QCloudRequestSerializer.h" +#import "QCloudResponseSerializer.h" +#import "QCloudHTTPRequestDelegate.h" +#import "QCloudAbstractRequest.h" +@class QCloudHTTPRetryHanlder; +@class QCloudHTTPSessionManager; +@class QCloudService; + +typedef void (^QCloudHTTPRequestConfigure)(QCloudRequestSerializer *_Nonnull requestSerializer, + QCloudResponseSerializer *_Nonnull responseSerializer); + +/** + network base request + */ +@interface QCloudHTTPRequest : QCloudAbstractRequest { +@protected + QCloudRequestData *_requestData; + QCloudRequestSerializer *_requestSerializer; + QCloudResponseSerializer *_responseSerializer; + QCloudHTTPRetryHanlder *_retryHandler; + NSString *_serverDomain; +} +@property (nonatomic, strong, readonly) QCloudRequestSerializer *_Nonnull requestSerializer; +@property (nonatomic, strong, readonly) QCloudRequestData *_Nonnull requestData; +@property (nonatomic, strong, readonly) QCloudResponseSerializer *_Nonnull responseSerializer; +@property (nonatomic, strong, readonly) NSURLRequest *_Nullable urlRequest; + +/// sdk内部管理,业务测无需设置。 +@property (nonatomic, assign, readonly) BOOL isRetry; +@property (nonatomic, assign) NSInteger retryCount; + +/** + 该任务所处的服务 + */ +@property (nonatomic, weak) QCloudService *_Nullable runOnService; + +/** + 如果存在改参数,则数据会下载到改路径指名的地址下面,而不会写入内存中。 + */ +@property (nonatomic, strong) NSURL *_Nonnull downloadingURL; + +@property (nonatomic, strong , readonly) NSURL *_Nonnull downloadingTempURL; + +/** + 本地已经下载的数据偏移量,如果使用则会从改位置开始下载,如果不使用,则从头开始下载,如果您使用了Range参数,则需要注意改参数。 + */ +@property (nonatomic, assign) int64_t localCacheDownloadOffset; +/** + 在特殊网络错误下,进行重试的策略,默认是不进行重试。可通过集成QCloudHTTPRetryHandler来自定义重试的出发条件和重试策略。 + */ +@property (nonatomic, strong, readonly) QCloudHTTPRetryHanlder *_Nullable retryPolicy; + +/** + 服务器返回数据,当服务器有返回数据的时候,该字段有值,其他时候该字段无意义 + */ +@property (nonatomic, strong, readonly) NSData *_Nullable responseData; + +/** + 服务器响应结构,当服务器有返回数据的时候,该字段有值,其他时候该字段无意义 + */ +@property (nonatomic, strong, readonly) NSHTTPURLResponse *_Nullable httpURLResponse; + +/** + 当系统调用结束,并且出错的情况下,使用该字段表示错误信息,注意:只有在错误的情况下,该字段才会有数据 + */ +@property (nonatomic, strong, readonly) NSError *_Nullable httpURLError; + +/** + 用来配置协议中HTTP的请求参数和解析 + */ +@property (nonatomic, strong) QCloudHTTPRequestConfigure _Nonnull configureBlock; + +/** + 当前的ConfiureBlock为空的时候,会调用该函数加载配置函数。 + */ +- (void)loadConfigureBlock; + +- (void)setConfigureBlock:(void (^_Nonnull)(QCloudRequestSerializer *_Nonnull requestSerializer, + QCloudResponseSerializer *_Nonnull responseSerializer))configBlock; + +/** + 构架RequestData,加载自定义的参数 + */ +- (BOOL)buildRequestData:(NSError *_Nullable __autoreleasing *_Nullable)error; + +/** + 构建真实网络请求需要的NSURLRequest + + @param error 当出错的时候,表示出错信息 + @return 用于构建真实网络请求的NSURLRequest + */ +- (NSURLRequest *_Nullable)buildURLRequest:(NSError *_Nullable __autoreleasing *_Nullable)error; + +@end + +#define SUPER_BUILD_REUQSET_DATA \ + if (![super buildRequestData:error]) \ + return NO; + +@interface QCloudHTTPRequest (SubClass) + +/** + 将要开始发送请求的时候,将会调用该接口通知子类 + */ +- (void)willStart; + +/** + 加载错误重试策略,只有在第一次调用retryPolicy并且其值为空的时候会调用该方法来加载重试策略。子类可以重载该方法返回自己的重试策略。父类的默认行为是返回一个不进行重试的策略。 + */ +- (void)loadRetryPolicy; + +- (void)setConfigureBlock:(void (^_Nonnull)(QCloudRequestSerializer *_Nonnull requestSerializer, + QCloudResponseSerializer *_Nonnull responseSerializer))confBlock; + +- (BOOL)prepareInvokeURLRequest:(NSMutableURLRequest *_Nonnull)urlRequest error:(NSError *_Nullable __autoreleasing *_Nullable)error; +@end + +@class RNAsyncBenchMark; + +#pragma deal with response +@interface QCloudHTTPRequest () + +/** + 服务器返回response的时候处理,可以在这里做处理看是否接受后序的数据 + + @param response 服务器返回的response(主要包含头部) + @return NSURLSessionResponseDisposition + */ +- (NSURLSessionResponseDisposition)reciveResponse:(NSURLResponse *_Nullable)response; + +- (void)onReviveErrorResponse:(NSURLResponse *_Nullable)prsponse error:(NSError *_Nullable)error; +- (void)onReciveRespone:(NSURLResponse *_Nullable)response data:(NSData *_Nullable)data; + +-(BOOL)needChangeHost; + ++(BOOL)needChangeHost:(NSString *_Nullable)host; + +@end diff --git a/Pods/QCloudCore/QCloudCore/Classes/Base/QCLOUDRestNet/CoreRequest/QCloudHTTPRequest.m b/Pods/QCloudCore/QCloudCore/Classes/Base/QCLOUDRestNet/CoreRequest/QCloudHTTPRequest.m new file mode 100644 index 0000000..bb5ca4d --- /dev/null +++ b/Pods/QCloudCore/QCloudCore/Classes/Base/QCLOUDRestNet/CoreRequest/QCloudHTTPRequest.m @@ -0,0 +1,271 @@ +// +// QCloudHTTPRequest.m +// QCloudNetworking +// +// Created by tencent on 15/9/25. +// Copyright © 2015年 QCloudTernimalLab. All rights reserved. +// + +#import "QCloudHTTPRequest.h" +#import "QCloudRequestData.h" +#import "QCloudRequestSerializer.h" +#import "QCloudHTTPRetryHanlder.h" +#import "QCloudNetEnv.h" +#import "QCloudHttpDNS.h" +#import "QCloudIntelligenceTimeOutAdapter.h" +#import "QCloudHTTPRequest_RequestID.h" +#import "QCloudHttpMetrics.h" +#import "QCloudLogger.h" +#import "QCloudObjectModel.h" +#import "QCloudSupervisory.h" +#import "QCloudHTTPSessionManager.h" +#import "NSError+QCloudNetworking.h" +#import "QCLOUDRestNet.h" +#import "QCloudService.h" + +#import "NSDate+QCLOUD.h" +#import "NSDate+QCloudInternetDateTime.h" +#import "NSObject+HTTPHeadersContainer.h" +@interface QCloudHTTPRequest () { + BOOL _requesting; +} +@property (atomic, assign) BOOL isCancel; +@property (nonatomic, strong, readonly) NSMutableURLRequest *cachedURLRequest; +@property (nonatomic, strong, readonly) NSError *cachedURLRequestBuildError; +@property (nonatomic, strong) NSURLRequest *_Nullable urlRequest; + +@end + +@implementation QCloudHTTPRequest +@synthesize httpURLResponse = _httpURLResponse; +@synthesize httpURLError = _httpURLError; + +- (void)__baseCommonInit { + _requestData = [QCloudRequestData new]; + _requestSerializer = [QCloudRequestSerializer new]; + _responseSerializer = [QCloudResponseSerializer new]; + _requesting = NO; + _requestSerializer.timeoutInterval = [QCloudIntelligenceTimeOutAdapter recommendTimeOut]; + // if request is download request ,timeoutInterval = 30 + if (self.downloadingURL) { + _requestSerializer.timeoutInterval = 30; + } + _isCancel = NO; +} + +- (NSHTTPURLResponse *)httpURLResponse { + return _httpURLResponse; +} +- (instancetype)init { + self = [super init]; + if (!self) { + return self; + } + [self __baseCommonInit]; + return self; +} + +- (void)notifyError:(NSError *)error { + [super notifyError:error]; + [[QCloudSupervisory supervisory] recordRequest:self error:error]; +} + +- (void)notifySuccess:(id)object { + [super notifySuccess:object]; + [[QCloudSupervisory supervisory] recordRequest:self error:nil]; +} + +- (void)loadConfigureBlock { + [self setConfigureBlock:^(QCloudRequestSerializer *requestSerializer, QCloudResponseSerializer *responseSerializer) { + requestSerializer.HTTPMethod = HTTPMethodGET; + [requestSerializer setSerializerBlocks:@[ QCloudURLFuseSimple ]]; + // + [responseSerializer setSerializerBlocks:@[ QCloudAcceptRespnseCodeBlock([NSSet setWithObject:@(200)], nil) ]]; + }]; +} + +- (QCloudHTTPRequestConfigure)configureBlock { + if (!_configureBlock) { + [self loadConfigureBlock]; + } + return _configureBlock; +} + +- (void)willStart { + QCloudLogDebugP(@"HTTP",@"[%llu] Will Start", self.requestID); +} + +- (void)loadRetryPolicy { + _retryHandler = [QCloudHTTPRetryHanlder defaultRetryHandler]; +} +- (QCloudHTTPRetryHanlder *)retryPolicy { + if (!_retryHandler) { + [self loadRetryPolicy]; + } + return _retryHandler; +} + +- (BOOL)buildRequestData:(NSError *__autoreleasing *)error { + __block QCloudRequestSerializer *reqSerializer = self.requestSerializer; + __block QCloudResponseSerializer *rspSerializer = self.responseSerializer; + if (self.configureBlock) { + self.configureBlock(reqSerializer, rspSerializer); + } + return YES; +} + +- (void)clearBuildCache { + _cachedURLRequest = nil; + _cachedURLRequestBuildError = nil; +} + +- (NSURL *)downloadingTempURL{ + if(_downloadingURL){ + return [NSURL URLWithString:[NSString stringWithFormat:@"%@.downloading",_downloadingURL.absoluteString]]; + }else{ + return nil; + } +} + +- (NSURLRequest *)buildURLRequest:(NSError *__autoreleasing *)error { + if (![self buildRequestData:error]) { + return nil; + } + + if (self.isRetry) { + [self.requestData setValue:@"true" forHTTPHeaderField:@"x-cos-sdk-retry"]; + } + + [self.benchMarkMan benginWithKey:kCalculateMD5STookTime]; + NSURLRequest *request = [self.requestSerializer requestWithData:self.requestData error:error]; + if ([request.allHTTPHeaderFields objectForKey:@"Content-MD5"]) { + [self.benchMarkMan markFinishWithKey:kCalculateMD5STookTime]; + } + + if (*error) { + QCloudLogErrorE(@"",@"[%@][%lld]序列化失败", self.class, self.requestID); + return nil; + } + QCloudLogDebugP(@"HTTP",@"SendingRequest [%lld]\n%@\n%@ \nrequest content:%@", self.requestID, request, request.allHTTPHeaderFields, + [[NSString alloc] initWithData:request.HTTPBody encoding:NSUTF8StringEncoding]); + self.urlRequest = request; + return request; +} + +- (void)onReviveErrorResponse:(NSURLResponse *)response error:(NSError *)error { + _httpURLResponse = (NSHTTPURLResponse *)response; + _httpURLError = error; + if (NSURLErrorCancelled == error.code && [NSURLErrorDomain isEqualToString:error.domain]) { + error = [NSError qcloud_errorWithCode:QCloudNetworkErrorCodeCanceled message:@"UserCancelled:The request is canceled" infos:@{kQCloudErrorDetailCode:@(NSURLErrorCancelled)}]; + } + _httpURLError.__originHTTPURLResponse__ = _httpURLResponse; + error.__originHTTPURLResponse__ = _httpURLResponse; + [self onError:error]; +} +- (void)onReciveRespone:(NSHTTPURLResponse *)response data:(NSData *)data { + _responseData = data; + _httpURLResponse = response; +// // +// { +// NSUInteger headerLength = 0; +// NSDictionary *allHeaders = nil; +// if ([response respondsToSelector:@selector(allHeaderFields)]) { +// allHeaders = [response allHeaderFields]; +// } +// if (allHeaders) { +// if (response.allHeaderFields) { +// NSData *headerData = [NSJSONSerialization dataWithJSONObject:allHeaders options:0 error:0]; +// headerLength = headerData.length; +// } +// } +// } + NSString *dateStr = [[response allHeaderFields] objectForKey:@"Date"]; + NSDate *serverTime = nil; + NSDate *deviceTime = [NSDate date]; + if ([dateStr length] > 0) { + serverTime = [NSDate qcloud_dateFromRFC822String:dateStr]; + } else { + // The response header does not have the 'Date' field. + // This should not happen. + QCloudLogErrorE(@"",@"Date header does not exist. Not able to fix the time"); + } + + NSTimeInterval skewTime = 0; + if (serverTime) { + skewTime = [deviceTime timeIntervalSinceDate:serverTime]; + } + // If the time difference between the device and the server is large, fix device time + QCloudLogDebugP(@"HTTP",@"skewTime: %f", skewTime); + if (skewTime >= 1 * 60) { + [NSDate qcloud_setTimeDeviation:skewTime]; + } + NSError *localError; + id outputObject = [self.responseSerializer decodeWithWithResponse:response data:data error:&localError]; + if (localError) { + localError.__originHTTPURLResponse__ = response; + localError.__originHTTPResponseData__ = data; + QCloudLogErrorE(@"HTTP",@"[%@][%lld] %@", [self class], self.requestID, localError); + if ([self isFixTime:localError]) { + [NSDate qcloud_setTimeDeviation:skewTime]; + } + [self onError:localError]; + } else { + QCloudLogDebugP(@"HTTP",@"[%@][%lld] RESPONSE \n%@ ", [self class], self.requestID, [outputObject qcloud_modelToJSONString]); + [outputObject set__originHTTPURLResponse__:response]; + [outputObject set__originHTTPResponseData__:data]; + [self onSuccess:outputObject]; + } +} + +// Error code to be fix +- (BOOL)isFixTime:(NSError *)error { + if ([error.userInfo[@"Code"] isEqualToString:@"RequestTimeTooSkewed"] + || ([error.userInfo[@"Code"] isEqualToString:@"AccessDenied"] || [error.userInfo[@"Message"] isEqualToString:@"Request has expired"])) { + return YES; + } + return NO; +} +- (BOOL)prepareInvokeURLRequest:(NSMutableURLRequest *)urlRequest error:(NSError *__autoreleasing *)error { + return YES; +} + +- (void)cancel { + [super cancel]; + [[QCloudHTTPSessionManager shareClient] cancelRequestWithID:(int)self.requestID]; +} + +- (NSURLSessionResponseDisposition)reciveResponse:(NSURLResponse *)response { + return NSURLSessionResponseAllow; +} + +-(BOOL)needChangeHost{ + NSString * host = self.urlRequest.URL.host; + return [QCloudHTTPRequest needChangeHost:host]; +} + ++(BOOL)needChangeHost:(NSString *)host{ + if(!host){ + return NO; + } + if([host rangeOfString:@".cos.accelerate.myqcloud.com"].length > 0){ + return NO; + } + + if([host rangeOfString:@"service.cos.myqcloud.com"].length > 0){ + return NO; + } + if([host rangeOfString:@".myqcloud.com"].length > 0 && [host rangeOfString:@"cos."].length > 0 && [host rangeOfString:@".cos."].length == 0){ + return NO; + } + + if([host rangeOfString:@".myqcloud.com"].length > 0 && [host rangeOfString:@".cos."].length > 0){ + return YES; + } + return NO; +} + +- (void)setEndpoint:(QCloudEndPoint *)endpoint{ + super.endpoint = endpoint; + self.requestData.endpoint = endpoint; +} +@end diff --git a/Pods/QCloudCore/QCloudCore/Classes/Base/QCLOUDRestNet/CoreRequest/QCloudHTTPRequestDelegate.h b/Pods/QCloudCore/QCloudCore/Classes/Base/QCLOUDRestNet/CoreRequest/QCloudHTTPRequestDelegate.h new file mode 100644 index 0000000..591ea73 --- /dev/null +++ b/Pods/QCloudCore/QCloudCore/Classes/Base/QCLOUDRestNet/CoreRequest/QCloudHTTPRequestDelegate.h @@ -0,0 +1,32 @@ +// +// QCloudHTTPRequestDelegate.h +// QCloudNetworking +// +// Created by tencent on 15/9/30. +// Copyright © 2015年 QCloudTernimalLab. All rights reserved. +// + +#import + +typedef void (^QCloudRequestFinishBlock)(id outputObject, NSError *error); + +@class QCloudAbstractRequest; +@protocol QCloudHTTPRequestDelegate +@optional +- (void)QCloudHTTPRequestDidFinished:(QCloudAbstractRequest *)request succeedWithObject:(id)object; +- (void)QCloudHTTPRequestDidFinished:(QCloudAbstractRequest *)request failed:(NSError *)object; +- (void)QCloudHTTPRequest:(QCloudAbstractRequest *)request + sendBytes:(int64_t)bytesSent + totalBytesSent:(int64_t)totalBytesSent + totalBytesExpectedToSend:(int64_t)totalBytesExpectedToSend; +- (void)QCloudHTTPRequest:(QCloudAbstractRequest *)request + bytesDownload:(int64_t)bytesDownload + totalBytesDownload:(int64_t)totalBytesDownload + totalBytesExpectedToDownload:(int64_t)totalBytesExpectedToDownload; + +- (void)QCloudHTTPRequest:(QCloudAbstractRequest *)request + bytesDownload:(int64_t)bytesDownload + totalBytesDownload:(int64_t)totalBytesDownload + totalBytesExpectedToDownload:(int64_t)totalBytesExpectedToDownload + receiveData:(NSData *)data; +@end diff --git a/Pods/QCloudCore/QCloudCore/Classes/Base/QCLOUDRestNet/CoreRequest/QCloudHTTPRequest_RequestID.h b/Pods/QCloudCore/QCloudCore/Classes/Base/QCLOUDRestNet/CoreRequest/QCloudHTTPRequest_RequestID.h new file mode 100644 index 0000000..a2530f0 --- /dev/null +++ b/Pods/QCloudCore/QCloudCore/Classes/Base/QCLOUDRestNet/CoreRequest/QCloudHTTPRequest_RequestID.h @@ -0,0 +1,12 @@ +// +// QCloudHTTPRequest_RequestID.h +// QCloudTernimalLab_CommonLogic +// +// Created by tencent on 5/23/16. +// Copyright © 2016 QCloudTernimalLab. All rights reserved. +// + +#import "QCloudHTTPRequest.h" + +@interface QCloudHTTPRequest () +@end diff --git a/Pods/QCloudCore/QCloudCore/Classes/Base/QCLOUDRestNet/CoreRequest/QCloudRequestData.h b/Pods/QCloudCore/QCloudCore/Classes/Base/QCLOUDRestNet/CoreRequest/QCloudRequestData.h new file mode 100644 index 0000000..908aac7 --- /dev/null +++ b/Pods/QCloudCore/QCloudCore/Classes/Base/QCLOUDRestNet/CoreRequest/QCloudRequestData.h @@ -0,0 +1,190 @@ +// +// QCloudRequestData.h +// QCloudNetworking +// +// Created by tencent on 15/9/24. +// Copyright © 2015年 QCloudTernimalLab. All rights reserved. +// + +#import + +#import "QCloudHTTPMultiDataStream.h" +#import "QCloudEndPoint.h" +NS_ASSUME_NONNULL_BEGIN +extern NSString *const HTTPHeaderUserAgent; +extern NSString *const emergencyHost; + +/** + 网络请求参数的容器类 + */ + +@interface QCloudRequestData : NSObject + +@property (nonatomic, strong, readonly) NSDictionary *queryParamters; + +/** + 指定接口级请求域名 + */ +@property (nonatomic, strong, nullable) QCloudEndPoint * endpoint; +/** + 数据的编码格式 + */ +@property (nonatomic, assign) NSStringEncoding stringEncoding; +/** + 服务器地址 + */ +@property (strong, nonatomic ,nullable) NSString *serverURL; + +@property (strong, nonatomic ,nullable) NSString *bucket; + +@property (strong, nonatomic ,nullable) NSString *appId; + +@property (strong, nonatomic ,nullable) NSString *region; + +/// 重试时是否需要更换域名 +@property (assign, nonatomic) BOOL needChangeHost; + +/** + * 统一资源标识符,用来标识调用的具体的资源地址 + */ +@property (nonatomic, strong,nullable) NSString *URIMethod; + +/** + 如果URIMethod不足以表示所有的命令字的时候,可以在改字段中按照顺序添加URI分片,将会按照顺序组装起来。 + */ +@property (nonatomic, strong,nullable) NSArray *URIComponents; +/** + HTTP headers参数,用来配置Request + */ +@property (nonatomic, strong, nonnull, readonly) NSDictionary *httpHeaders; + +/** + 所有的参数,填充在这里面的参数为不需要添加在HTTPHeaders里面的参数 + */ +@property (nonnull, strong, nonatomic, readonly) NSDictionary *allParamters; + +/** + 使用multipart/form-data上传数据时所需要的数据流,默认为空,只有当添加了form data后该字段才有值 + */ +@property (nonatomic, strong, readonly, nullable) QCloudHTTPMultiDataStream *multiDataStream; + +@property (nullable, strong) NSString *boundary; +/** + 请求中要使用到的Cookies + */ +@property (nonatomic, strong, nullable, readonly) NSArray *cookies; + +@property (nullable, strong) BodyType directBody; + +/** + 清除所有参数 + */ +- (void)clean; + +/** + 添加类型为NSString的参数 + @param paramter 添加的参数 + @param key 关键字 + */ +- (void)setParameter:(nonnull id)paramter withKey:(nonnull NSString *)key; + +/** + 添加类型为NSNumber的请求参数 + @param paramter 添加的参数 + @param key 参数对应的关键字 + */ +- (void)setNumberParamter:(nonnull NSNumber *)paramter withKey:(nonnull NSString *)key; + +- (void)setQueryStringParamter:(nonnull NSString *)paramter withKey:(nonnull NSString *)key; +/** + 通过指定的Key获取 + @param key 参数的Key + @return 获取到的参数值 + */ + +- (id)paramterForKey:(NSString *)key; +/** + 添加HTTP header中的信息 + 其中User-Agent等有默认信息 + @param value 要添加的信息 + @param field 对应的关键字 + */ +- (void)setValue:(nonnull id)value forHTTPHeaderField:(nonnull NSString *)field; +- (NSString *)valueForHttpKey:(NSString *)key; +/** + 通过URL Paramater字符串的方式来添加参数 + @param paramters 参数字符串,按照xx=xx&xx=xx的形式 + */ +- (void)setParamatersWithString:(nonnull NSString *)paramters; + +/** + 通过字典的形式添加参数 + @param paramters 参数字典容器 + */ +- (void)setParametersInDictionary:(nonnull NSDictionary *)paramters; + +/** + 删除指定Key的Header + @param key 要删除的Header + */ +- (void)removeHTTPHeaderForKey:(NSString *)key; +/** + 手动添加Cookie + @param domain 域 + @param path 路径 + @param name 名称 + @param value 值 + */ +- (void)addCookieWithDomain:(nonnull NSString *)domain path:(nonnull NSString *)path name:(nonnull NSString *)name value:(nonnull id)value; + +/** + 通过KeyValue形式添加FormData的参数 + + @param key key + @param value value + @return 是否添加成功 + */ +- (BOOL)appendFormDataKey:(NSString *)key value:(NSString *)value; + +/** + 添加文件内容部分 + + @param fileURL URL + @param name 文件名 + @param fileName 文件名 + @param mimeType mimeType + @param paramerts 头部参数 + @param error error + @return 成功与否 + */ +- (BOOL)appendPartWithFileURL:(nonnull NSURL *)fileURL + name:(nonnull NSString *)name + fileName:(nonnull NSString *)fileName + mimeType:(nonnull NSString *)mimeType + headerParamters:(nullable NSDictionary *)paramerts + error:(NSError *_Nullable __autoreleasing *)error; + +/** + 添加分片文件内容部分 + + @param fileURL url + @param name name + @param fileName fileName + @param offset offset + @param sliceLength sliceLength + @param mimeType mimeType + @param paramerts parameters + @param error error + @return 成功与否 + */ +- (BOOL)appendPartWithFileURL:(nonnull NSURL *)fileURL + name:(nonnull NSString *)name + fileName:(nonnull NSString *)fileName + offset:(int64_t)offset + sliceLength:(int)sliceLength + mimeType:(nonnull NSString *)mimeType + headerParamters:(nullable NSDictionary *)paramerts + error:(NSError *_Nullable __autoreleasing *)error; + +@end +NS_ASSUME_NONNULL_END diff --git a/Pods/QCloudCore/QCloudCore/Classes/Base/QCLOUDRestNet/CoreRequest/QCloudRequestData.m b/Pods/QCloudCore/QCloudCore/Classes/Base/QCLOUDRestNet/CoreRequest/QCloudRequestData.m new file mode 100644 index 0000000..6c64df9 --- /dev/null +++ b/Pods/QCloudCore/QCloudCore/Classes/Base/QCLOUDRestNet/CoreRequest/QCloudRequestData.m @@ -0,0 +1,390 @@ +// +// QCloudRequestData.m +// QCloudNetworking +// +// Created by tencent on 15/9/24. +// Copyright © 2015年 QCloudTernimalLab. All rights reserved. +// + +#import "QCloudRequestData.h" +#import "NSError+QCloudNetworking.h" +#import "QCloudHTTPBodyPart.h" +#if TARGET_OS_IOS +#import +#endif + +#define String_ENSURE_NOT_NIL_PARAMTER(p) \ + if (p == nil) \ + return nil; +#define ENSURE_NOT_NIL_PARAMTER(p) \ + if (p == nil) \ + return; +#define B_ENSURE_NOT_NIL_PARAMTER(p) \ + if (p == nil) \ + return NO; + + + +NSDictionary *QCloudURLDecodePatamters(NSString *str) { + NSRange rangeOfQ = [str rangeOfString:@"?"]; + NSString *subStr = str; + if (rangeOfQ.location != NSNotFound) { + subStr = [str substringFromIndex:rangeOfQ.location + rangeOfQ.length]; + } + NSArray *coms = [subStr componentsSeparatedByString:@"&"]; + if (coms.count == 0) { + return nil; + } + + NSMutableDictionary *paramters = [NSMutableDictionary new]; + for (NSString *s in coms) { + NSArray *kv = [s componentsSeparatedByString:@"="]; + if (kv.count != 2) { + continue; + } + NSString *key = kv[0]; + NSString *value = kv[1]; + paramters[key] = value; + } + return paramters; +} + +NSString *const HTTPHeaderUserAgent = @"User-Agent"; +NSString *const emergencyHost = @"tencentcos.cn"; + +@interface QCloudRequestData () { + NSMutableDictionary *_paramters; + NSMutableDictionary *_httpHeaders; + NSMutableDictionary *_queryParamters; +} +@end + +@implementation QCloudRequestData +@synthesize multiDataStream = _multiDataStream; +- (void)loadDefaultHTTPHeaders { + static NSDictionary *httpHeaders; + static dispatch_once_t onceToken; + dispatch_once(&onceToken, ^{ +#if TARGET_OS_IOS + NSString *userAgent = + [NSString stringWithFormat:@"%@/%@ (%@; iOS %@; Scale/%0.2f)", + [[NSBundle mainBundle] infoDictionary][(__bridge NSString *)kCFBundleExecutableKey] + ?: [[NSBundle mainBundle] infoDictionary][(__bridge NSString *)kCFBundleIdentifierKey], + [[NSBundle mainBundle] infoDictionary][@"CFBundleShortVersionString"] + ?: [[NSBundle mainBundle] infoDictionary][(__bridge NSString *)kCFBundleVersionKey], + [[UIDevice currentDevice] model], [[UIDevice currentDevice] systemVersion], [[UIScreen mainScreen] scale]]; +#elif TARGET_OS_MAC + NSString* userAgent = @"Test-Mac-Agent"; +#endif + httpHeaders = @ { @"Connection" : @"keep-alive", HTTPHeaderUserAgent : userAgent }; + }); + _httpHeaders = [httpHeaders mutableCopy]; +} +- (void)__dataCommonInit { + _paramters = [NSMutableDictionary new]; + _cookies = [NSMutableArray new]; + _stringEncoding = NSUTF8StringEncoding; + _queryParamters = [NSMutableDictionary new]; + [self loadDefaultHTTPHeaders]; +} +- (id)init { + self = [super init]; + if (!self) { + return self; + } + [self __dataCommonInit]; + return self; +} + +- (NSDictionary *)queryParamters { + return [_queryParamters copy]; +} + +- (NSString *)URIMethod { + if (!_URIMethod) { + return @""; + } else { + return _URIMethod; + } +} +- (NSDictionary *)allParamters { + return [_paramters copy]; +} + +- (void)setParameter:(nonnull id)paramter withKey:(nonnull NSString *)key { +#ifdef DEBUG + NSParameterAssert(key); +#else + ENSURE_NOT_NIL_PARAMTER(paramter); +#endif + if (!paramter || [paramter isKindOfClass:[NSNull class]]) { + return; + } + _paramters[key] = paramter; +} + +- (void)setNumberParamter:(nonnull NSNumber *)paramter withKey:(nonnull NSString *)key { + [self setParameter:[paramter stringValue] withKey:key]; +} + +- (void)setQueryStringParamter:(nonnull NSString *)paramter withKey:(nonnull NSString *)key { + NSParameterAssert(key); + if (!paramter || [paramter isKindOfClass:[NSNull class]]) { + paramter = @""; + } + if (![paramter isKindOfClass:[NSString class]]) { + paramter = [NSString stringWithFormat:@"%@", paramter]; + } + _queryParamters[key] = paramter; +} + +- (void)setValue:(nonnull id)value forHTTPHeaderField:(nonnull NSString *)field { +#ifdef DEBUG + NSParameterAssert(field); +#else + ENSURE_NOT_NIL_PARAMTER(field); +#endif + [_httpHeaders setValue:value forKey:field]; +} + +- (NSString *)valueForHttpKey:(NSString *)key { +#ifdef DEBUG + NSParameterAssert(key); +#else + String_ENSURE_NOT_NIL_PARAMTER(key); +#endif + return [_httpHeaders valueForKey:key]; +} + +- (void)addCookieWithDomain:(NSString *)domain path:(NSString *)path name:(NSString *)name value:(id)value { +#ifdef DEBUG + NSParameterAssert(domain); + NSParameterAssert(path); + NSParameterAssert(name); + NSParameterAssert(value); +#else + ENSURE_NOT_NIL_PARAMTER(domain); + ENSURE_NOT_NIL_PARAMTER(path); + ENSURE_NOT_NIL_PARAMTER(name); + ENSURE_NOT_NIL_PARAMTER(value); +#endif + NSDictionary *info = @{ NSHTTPCookieValue : value, NSHTTPCookieName : name, NSHTTPCookieDomain : domain, NSHTTPCookiePath : path }; + + NSHTTPCookie *cookie = [NSHTTPCookie cookieWithProperties:info]; + + NSMutableArray *cookies = [self.cookies mutableCopy]; + NSInteger index = NSNotFound; + + for (int i = 0; i < cookies.count; i++) { + NSHTTPCookie *c = cookies[i]; + if ([c.domain isEqualToString:cookie.domain] && [c.path isEqualToString:cookie.path] && [c.name isEqualToString:cookie.name]) { + index = i; + } + } + + if (index != NSNotFound) { + [cookies replaceObjectAtIndex:index withObject:cookie]; + } else { + [cookies addObject:cookie]; + } + _cookies = cookies; +} + +- (void)setParamatersWithString:(NSString *)paramters { + NSDictionary *dic = QCloudURLDecodePatamters(paramters); + NSAssert(dic, @"paramters 字符串解析出现问题,没有成功解析出字典"); + if (dic) { + for (NSString *key in dic.allKeys) { + [self setParameter:dic[key] withKey:key]; + } + } +} + +- (void)setParametersInDictionary:(NSDictionary *)paramters { + if (paramters) { + for (NSString *key in paramters.allKeys) { + [self setParameter:paramters[key] withKey:key]; + } + } +} + +- (QCloudHTTPMultiDataStream *)multiDataStream { + if (!_multiDataStream) { + _multiDataStream = [[QCloudHTTPMultiDataStream alloc] initWithStringEncoding:_stringEncoding]; + _multiDataStream.stringEncoding = _stringEncoding; + } + return _multiDataStream; +} + +- (BOOL)appendFormDataKey:(NSString *)key value:(NSString *)value { +#ifdef DEBUG + NSParameterAssert(key); + NSParameterAssert(value); +#else + B_ENSURE_NOT_NIL_PARAMTER(key); + B_ENSURE_NOT_NIL_PARAMTER(value); +#endif + if (![value isKindOfClass:[NSString class]]) { + value = [NSString stringWithFormat:@"%@", value]; + } + QCloudHTTPBodyPart *part = [[QCloudHTTPBodyPart alloc] initWithData:[value dataUsingEncoding:NSUTF8StringEncoding]]; + [part setValue:[NSString stringWithFormat:@"form-data; name=\"%@\"", key] forHeaderKey:@"Content-Disposition"]; + [[self multiDataStream] appendBodyPart:part]; + return YES; +} +- (BOOL)appendPartWithFileURL:(nonnull NSURL *)fileURL + name:(nonnull NSString *)name + fileName:(nonnull NSString *)fileName + mimeType:(nonnull NSString *)mimeType + headerParamters:(nullable NSDictionary *)paramerts + error:(NSError *_Nullable __autoreleasing *)error; +{ +#ifdef DEBUG + NSParameterAssert(fileURL); + NSParameterAssert(name); + NSParameterAssert(fileName); + NSParameterAssert(mimeType); +#else + B_ENSURE_NOT_NIL_PARAMTER(fileURL); + B_ENSURE_NOT_NIL_PARAMTER(name); + B_ENSURE_NOT_NIL_PARAMTER(fileName); + B_ENSURE_NOT_NIL_PARAMTER(mimeType); +#endif + + if (![fileURL isFileURL]) { + if (error) { + *error = [NSError qcloud_errorWithCode:NSURLErrorBadURL + message:NSLocalizedStringFromTable(@"Expected URL to be a file URL", @"QCloudNetworking", nil)]; + } + + return NO; + } else if ([fileURL checkResourceIsReachableAndReturnError:error] == NO) { + if (error) { + *error = [NSError qcloud_errorWithCode:NSURLErrorBadURL message:[NSString stringWithFormat:@"File URL not reachable. %@", fileURL]]; + } + return NO; + } + + NSDictionary *fileAttributes = [[NSFileManager defaultManager] attributesOfItemAtPath:[fileURL path] error:error]; + if (!fileAttributes) { + return NO; + } + + QCloudHTTPBodyPart *part = [[QCloudHTTPBodyPart alloc] initWithURL:fileURL withContentLength:[fileAttributes[NSFileSize] unsignedLongLongValue]]; + + [part setValue:[NSString stringWithFormat:@"form-data; name=\"%@\"; filename=\"%@\"", name, fileName] forHeaderKey:@"Content-Disposition"]; + + [part setHeaderValueWithMap:paramerts]; + [part setValue:mimeType forHeaderKey:@"Content-Type"]; + + [[self multiDataStream] appendBodyPart:part]; + + return YES; +} + +- (BOOL)appendPartWithFileURL:(nonnull NSURL *)fileURL + name:(nonnull NSString *)name + fileName:(nonnull NSString *)fileName + offset:(int64_t)offset + sliceLength:(int)sliceLength + mimeType:(nonnull NSString *)mimeType + headerParamters:(nullable NSDictionary *)paramerts + error:(NSError *_Nullable __autoreleasing *)error { +#ifdef DEBUG + NSParameterAssert(fileURL); + NSParameterAssert(name); + NSParameterAssert(fileName); + NSParameterAssert(mimeType); +#else + B_ENSURE_NOT_NIL_PARAMTER(fileURL); + B_ENSURE_NOT_NIL_PARAMTER(name); + B_ENSURE_NOT_NIL_PARAMTER(fileName); + B_ENSURE_NOT_NIL_PARAMTER(mimeType); +#endif + + if (![fileURL isFileURL]) { + if (error) { + *error = [NSError qcloud_errorWithCode:NSURLErrorBadURL + message:NSLocalizedStringFromTable(@"Expected URL to be a file URL", @"QCloudNetworking", nil)]; + } + + return NO; + } else if ([fileURL checkResourceIsReachableAndReturnError:error] == NO) { + if (error) { + *error = [NSError qcloud_errorWithCode:NSURLErrorBadURL message:[NSString stringWithFormat:@"File URL not reachable. %@", fileURL]]; + } + return NO; + } + + NSDictionary *fileAttributes = [[NSFileManager defaultManager] attributesOfItemAtPath:[fileURL path] error:error]; + if (!fileAttributes) { + return NO; + } + + QCloudHTTPBodyPart *part = [[QCloudHTTPBodyPart alloc] initWithURL:fileURL offetSet:offset withContentLength:sliceLength]; + [part setValue:[NSString stringWithFormat:@"form-data; name=\"%@\"; filename=\"%@\"", name, fileName] forHeaderKey:@"Content-Disposition"]; + + [part setHeaderValueWithMap:paramerts]; + [part setValue:mimeType forHeaderKey:@"Content-Type"]; + + [[self multiDataStream] appendBodyPart:part]; + + return YES; +} + +- (void)setStringEncoding:(NSStringEncoding)stringEncoding { + _stringEncoding = stringEncoding; + _multiDataStream.stringEncoding = stringEncoding; +} + +- (id)paramterForKey:(NSString *)key { + return [_paramters objectForKey:key]; +} + +- (void)removeHTTPHeaderForKey:(NSString *)key { + if (!key) { + return; + } + [_httpHeaders removeObjectForKey:key]; +} + +- (void)clean { + _queryParamters = nil; + self.stringEncoding = NSUTF8StringEncoding; + _serverURL = nil; + _URIMethod = nil; + _URIComponents = nil; + _httpHeaders = nil; + _paramters = nil; + _multiDataStream = nil; + _boundary = nil; + _cookies = nil; + _directBody = nil; + [self __dataCommonInit]; +} + +- (NSString *)description { + NSMutableString *str = [NSMutableString new]; + if (self.httpHeaders.count) { + [str appendFormat:@"[HEADERS] \n%@\n", self.httpHeaders]; + } + if (self.allParamters.count) { + [str appendFormat:@"[PARAMTERS] \n%@\n", self.allParamters]; + } + if (self.multiDataStream.hasData) { + [str appendFormat:@"[MULTIDATA] \n%@\n", self.multiDataStream]; + } + return str; +} + +- (void)setServerURL:(NSString *)serverURL{ + if (self.endpoint) { + _serverURL = [self.endpoint serverURLWithBucket:self.bucket appID:self.appId regionName:self.region].absoluteString; + }else if(self.needChangeHost){ + _serverURL = [serverURL stringByReplacingOccurrencesOfString:@"myqcloud.com" withString:emergencyHost]; + }else{ + _serverURL = serverURL; + } +} + +@end diff --git a/Pods/QCloudCore/QCloudCore/Classes/Base/QCLOUDRestNet/CoreRequest/Serializer/QCloudRequestSerializer.h b/Pods/QCloudCore/QCloudCore/Classes/Base/QCLOUDRestNet/CoreRequest/Serializer/QCloudRequestSerializer.h new file mode 100644 index 0000000..bb8cbd1 --- /dev/null +++ b/Pods/QCloudCore/QCloudCore/Classes/Base/QCLOUDRestNet/CoreRequest/Serializer/QCloudRequestSerializer.h @@ -0,0 +1,129 @@ +// +// QCloudRequestSerializer.h +// QCloudNetworking +// +// Created by tencent on 15/9/23. +// Copyright © 2015年 QCloudTernimalLab. All rights reserved. +// + +#import +@class QCloudRequestData; +NS_ASSUME_NONNULL_BEGIN +FOUNDATION_EXTERN NSString *QCloudStrigngURLEncode(NSString *string, NSStringEncoding stringEncoding); +FOUNDATION_EXTERN NSString *QCloudURLEncodeParamters(NSDictionary *dic, BOOL willUrlEncoding, NSStringEncoding stringEncoding); +FOUNDATION_EXTERN NSString *QCloudURLEncodeUTF8(NSString *string); +FOUNDATION_EXTERN NSString *QCloudURLDecodeUTF8(NSString *string); +FOUNDATION_EXTERN NSString *QCloudNSURLEncode(NSString *url); +FOUNDATION_EXTERN NSDictionary *QCloudURLReadQuery(NSURL *url); +/** + HTTP POST 方法 + */ +extern NSString *const HTTPMethodPOST; +/** + HTTP GET方法 + */ +extern NSString *const HTTPMethodGET; + +extern NSString *const HTTPHeaderHOST; + +@class QCloudRequestData; + +typedef NSMutableURLRequest *_Nullable (^QCloudRequestSerializerBlock)(NSMutableURLRequest *request, QCloudRequestData *data, + NSError *__autoreleasing *error); + +/** + 进行Request参数拼装的类,此类可以配置HTTP相关的一些参数,也可以配置协议相关的一些参数 + */ +@interface QCloudRequestSerializer : NSObject +@property (nonnull, nonatomic, strong) NSString *HTTPMethod; +@property (nonatomic, assign) BOOL useCookies; +@property (nonatomic, assign) NSURLRequestCachePolicy cachePolicy; +/** + 是否开启HTTPS验证,默认为YES + */ +@property (nonatomic, assign) BOOL shouldAuthentication; + +/** + 是否处理cookies + */ +@property (nonatomic, assign) BOOL HTTPShouldHandleCookies; + +/** + 是否开启pipeline功能 + */ +@property (nonatomic, assign) BOOL HTTPShouldUsePipelining; + +@property (nonatomic, assign) NSURLRequestNetworkServiceType networkServiceType; + +@property (nonatomic, assign) NSTimeInterval timeoutInterval; + +/** + 设置根据requestData对请求的URL进行拼装的功能 + */ +@property (nonatomic, strong, nullable) NSArray *serializerBlocks; + +/** + 是否开启GZIP压缩Response + */ +@property (nonatomic, assign) BOOL allowCompressedResponse; + +/** + 是否使用HTTPDNSPrefetch功能获取到IP + */ +@property (nonatomic, assign) BOOL HTTPDNSPrefetch; + +- (NSMutableURLRequest *_Nullable)requestWithData:(QCloudRequestData *)data error:(NSError *__autoreleasing *)error; + +@end + +/** + 按照Get请求拼参的方式,将所有参数和URL拼接到URL中,并获得URLRequet + */ +extern _Nonnull QCloudRequestSerializerBlock QCloudURLAssembleWithParamters; +/** + 只拼接ServerURL和MethodURL部分,组成一个URL,并获得URLRequest + */ +extern _Nonnull QCloudRequestSerializerBlock QCloudURLFuseSimple; +/** + 在URL尾部按照?xx=xx&y=y的方式将所有参数拼接,并获得URLRequest, @note 使用该方法将不会对Value进行URLEncode + */ +extern _Nonnull QCloudRequestSerializerBlock QCloudURLFuseWithParamters; +/** + 在URL尾部按照?xx=xx&y=y的方式将所有参数拼接,并获得URLRequest, @note 使用该方法将会对Value进行URLEncode + */ +extern _Nonnull QCloudRequestSerializerBlock QCloudURLFuseWithURLEncodeParamters; +/** + 将所有参数按照xx=x&y=sdf的格式拼接在包体中,并返回响应URLRequest + */ +extern _Nonnull QCloudRequestSerializerBlock QCloudURLSerilizerURLEncodingBody; +/** + 清除所有的头部参数 + */ +extern _Nonnull QCloudRequestSerializerBlock QCloudURLCleanAllHeader; + +/** + 将所有body参数按照JSON方式拼接到HTTPBody中,并设置content-type为application/json + */ +extern _Nonnull QCloudRequestSerializerBlock QCloudURLFuseWithJSONParamters; + +extern _Nonnull QCloudRequestSerializerBlock QCloudFuseMultiFormData; + +/** + 按照formdata方式将参数拼入到formdata中 + */ +extern _Nonnull QCloudRequestSerializerBlock QCloudFuseParamtersASMultiData; + +/** + 将一个KeyValueMap品入URL之中 + */ +extern _Nonnull QCloudRequestSerializerBlock QCloudURLSerilizerAppendURLParamters(NSDictionary *keyValueMaps); + +/** + 将requestData的URIMethod字段按照URL Paramters的形式拼装入url中 + */ +extern _Nonnull QCloudRequestSerializerBlock QCloudURLFuseURIMethodASURLParamters; + +extern _Nonnull QCloudRequestSerializerBlock QCloudURLFuseWithXMLParamters; + +extern _Nonnull QCloudRequestSerializerBlock QCloudURLFuseContentMD5Base64StyleHeaders; +NS_ASSUME_NONNULL_END diff --git a/Pods/QCloudCore/QCloudCore/Classes/Base/QCLOUDRestNet/CoreRequest/Serializer/QCloudRequestSerializer.m b/Pods/QCloudCore/QCloudCore/Classes/Base/QCLOUDRestNet/CoreRequest/Serializer/QCloudRequestSerializer.m new file mode 100644 index 0000000..3aff8ef --- /dev/null +++ b/Pods/QCloudCore/QCloudCore/Classes/Base/QCLOUDRestNet/CoreRequest/Serializer/QCloudRequestSerializer.m @@ -0,0 +1,535 @@ +// +// QCloudRequestSerializer.m +// QCloudNetworking +// +// Created by tencent on 15/9/23. +// Copyright © 2015年 QCloudTernimalLab. All rights reserved. +// +#import "QCloudRequestSerializer.h" +#import "QCloudRequestData.h" +#import "NSHTTPCookie+QCloudNetworking.h" +#import +#import +#import "QCloudReachability.h" +#import "QCloudHTTPBodyPart.h" +#import "QCloudLogger.h" +#import "QCloudFileUtils.h" +#import "QCloudWeakProxy.h" +#import "QCloudXMLDictionary.h" +#import "QCloudEncryt.h" +#import "QCloudFileOffsetBody.h" +#import "QCloudURLHelper.h" +NSString *const HTTPMethodPOST = @"POST"; +NSString *const HTTPMethodGET = @"GET"; +NSString *const HTTPHeaderHOST = @"HOST"; +NSString *const HTTPHeaderContentType = @"Content-Type"; +NSString *const HTTPHeaderContentTypeURLEncode = @"application/x-www-form-urlencoded; charset=utf-8"; + +inline NSString *QCloudEnuserNoneNullString(NSString *str) { + if (!str) { + return @""; + } else { + return str; + } +} + +NSString *QCloudStrigngURLEncode(NSString *string, NSStringEncoding stringEncoding) { + NSString *escaped_value = (NSString *)CFBridgingRelease(CFURLCreateStringByAddingPercentEscapes( + NULL, (CFStringRef)string, NULL, CFSTR(":/?#[]@!$ &'()*+,;=\"<>%{}|\\^`"), CFStringConvertNSStringEncodingToEncoding(stringEncoding))); + if (escaped_value) { + return escaped_value; + } + return @""; +} + +NSString *QCloudStrigngURLEncodeWithoutSpecials(NSString *string, NSStringEncoding stringEncoding) { + NSString *escaped_value = (NSString *)CFBridgingRelease(CFURLCreateStringByAddingPercentEscapes( + NULL, (CFStringRef)string, NULL, CFSTR("?#[]@!$ &'()*+,;=\"<>%{}|\\^~`"), CFStringConvertNSStringEncodingToEncoding(stringEncoding))); + if (escaped_value) { + return escaped_value; + } + return @""; +} + +NSString *QCloudStringURLDecode(NSString *string, NSStringEncoding encoding) { + NSString *decoded = [string stringByReplacingPercentEscapesUsingEncoding:encoding]; + return decoded; +} + +NSString *QCloudURLEncodeUTF8(NSString *string) { + return QCloudStrigngURLEncode(string, NSUTF8StringEncoding); +} + +NSString *QCloudURLDecodeUTF8(NSString *string) { + return QCloudStringURLDecode(string, NSUTF8StringEncoding); +} + +NSString *QCloudNSURLEncode(NSString *url) { + url = url.lowercaseString; + NSArray *schemes = @[ @"http://", @"https://" ]; + for (NSString *scheme in schemes) { + if ([url hasPrefix:scheme]) { + url = [url substringFromIndex:scheme.length]; + url = [NSString stringWithFormat:@"%@%@", scheme, QCloudStrigngURLEncodeWithoutSpecials(url, NSUTF8StringEncoding)]; + break; + } + } + return url; +} + +NSString *QCloudEncodeURL(NSString *url) { + BOOL hasSubfix = [url hasSuffix:@"/"]; + NSString *http = @"http://"; + NSString *https = @"https://"; + NSString *prefix = @""; + if ([url.lowercaseString hasPrefix:http]) { + url = [url substringFromIndex:http.length]; + prefix = http; + } else if ([url.lowercaseString hasPrefix:https]) { + url = [url substringFromIndex:https.length]; + prefix = https; + } + NSArray *compnents = [url componentsSeparatedByString:@"/"]; + NSString *path = prefix; + for (NSString *component in compnents) { + path = QCloudPathJoin(path, QCloudStrigngURLEncode(component, NSUTF8StringEncoding)); + } + if (hasSubfix) { + path = QCloudPathJoin(path, @"/"); + } + return path; +} + +NSDictionary *QCloudURLReadQuery(NSURL *url) { + NSString *query = url.query; + if (!query) { + return @ {}; + } + NSMutableDictionary *queryDic = [NSMutableDictionary new]; + NSArray *keyvalues = [query componentsSeparatedByString:@"&"]; + for (NSString *kv in keyvalues) { + if (!kv.length) { + continue; + } + NSArray *vs = [kv componentsSeparatedByString:@"="]; + if (vs.count == 2) { + if(vs.lastObject.length>0){ + queryDic[QCloudStringURLDecode(vs[0], NSUTF8StringEncoding)] = QCloudStringURLDecode(vs[1], NSUTF8StringEncoding); + } + } else if (vs.count == 1) { + queryDic[QCloudStringURLDecode(vs.firstObject, NSUTF8StringEncoding)] = @""; + } + } + return queryDic; +} + +NSString *QCloudURLEncodeParamters(NSDictionary *dic, BOOL willUrlEncoding, NSStringEncoding stringEncoding) { + NSArray *allKeys = dic.allKeys; + allKeys = [allKeys sortedArrayUsingComparator:^NSComparisonResult(id _Nonnull obj1, id _Nonnull obj2) { + return [obj1 compare:obj2]; + }]; + NSMutableString *path = [NSMutableString new]; + for (int i = 0; i < allKeys.count; i++) { + if (i > 0) { + [path appendString:@"&"]; + } + NSString *key = allKeys[i]; + NSString *value = dic[key]; + if (willUrlEncoding) { + key = QCloudStrigngURLEncode(key, stringEncoding); + value = QCloudStrigngURLEncode(value, stringEncoding); + } + + NSString *segement = [NSString stringWithFormat:@"%@=%@", key, value]; + [path appendString:segement]; + } + return [path copy]; +} + +NSString *QCloudURLAppendParamters(NSString *base, NSString *paramters) { + if (paramters.length == 0) { + return base; + } + if ([paramters hasPrefix:@"?"]) { + paramters = [paramters substringFromIndex:1]; + } + + NSRange range = [base rangeOfString:@"?"]; + if (range.location != NSNotFound) { + if ([base hasSuffix:@"?"]) { + return [NSString stringWithFormat:@"%@%@", base, paramters]; + } else { + if ([base hasSuffix:@"&"]) { + return [NSString stringWithFormat:@"%@%@", base, paramters]; + } else { + return [NSString stringWithFormat:@"%@&%@", base, paramters]; + } + } + } else { + return [NSString stringWithFormat:@"%@?%@", base, paramters]; + } +} + +QCloudRequestSerializerBlock QCloudURLAssembleWithParamters + = ^(NSMutableURLRequest *request, QCloudRequestData *data, NSError *__autoreleasing *error) { + NSString *path = QCloudPathJoin(data.serverURL, data.URIMethod); + path = QCloudURLAppendParamters(path, QCloudURLEncodeParamters(data.allParamters, NO, data.stringEncoding)); + NSURL *url = [NSURL URLWithString:path]; + NSMutableURLRequest *urlRequest = [[NSMutableURLRequest alloc] initWithURL:url]; + return urlRequest; + }; + +QCloudRequestSerializerBlock QCloudFuseParamtersASMultiData + = ^(NSMutableURLRequest *request, QCloudRequestData *data, NSError *__autoreleasing *error) { + NSArray *keys = data.allParamters.allKeys; + for (NSString *key in keys) { + NSString *value = data.allParamters[key]; + NSCAssert([value isKindOfClass:[NSString class]], @"请传入NSString类型的Value Key:%@ Value:%@", key, value); + NSData *indata = [value dataUsingEncoding:data.stringEncoding]; + QCloudHTTPBodyPart *part = [[QCloudHTTPBodyPart alloc] initWithData:indata]; + [part setValue:[NSString stringWithFormat:@"form-data; name=\"%@\"", key] forHeaderKey:@"Content-Disposition"]; + [data.multiDataStream insertBodyPart:part]; + } + + return request; + }; + +QCloudRequestSerializerBlock QCloudFuseMultiFormData = ^(NSMutableURLRequest *request, QCloudRequestData *data, NSError *__autoreleasing *error) { + if (data.multiDataStream.hasData) { + [data.multiDataStream setInitialAndFinalBoundaries]; + [request setHTTPBodyStream:(NSInputStream *)[QCloudWeakProxy proxyWithTarget:data.multiDataStream]]; + + [request setValue:[NSString stringWithFormat:@"multipart/form-data; boundary=%@", data.multiDataStream.boundary] + forHTTPHeaderField:@"Content-Type"]; + [request setValue:[NSString stringWithFormat:@"%llu", [data.multiDataStream contentLength]] forHTTPHeaderField:@"Content-Length"]; + } + + return request; +}; + +NSString *QCloudURLFuseAllPathComponents(NSArray *componets) { + NSString *path = @""; + for (NSString *com in componets) { + if (com.length > 0) { + path = QCloudPathJoin(path, com); + } + } + path = QCloudPercentEscapedStringFromString(path); + return path; +} + +QCloudRequestSerializerBlock QCloudURLFuseSimple = ^(NSMutableURLRequest *request, QCloudRequestData *data, NSError *__autoreleasing *error) { + NSMutableArray *coms = [NSMutableArray new]; + if (data.URIMethod.length) { + [coms addObject:data.URIMethod]; + } + if (data.URIComponents.count) { + [coms addObjectsFromArray:data.URIComponents]; + } + NSString *path = QCloudURLFuseAllPathComponents(coms); + path = QCloudPathJoin(data.serverURL, path); + NSURL *url = [NSURL URLWithString:path]; + if (nil == url) { + url = [NSURL URLWithString:QCloudURLEncodeUTF8(path)]; + } + NSMutableURLRequest *urlRequest = [[NSMutableURLRequest alloc] initWithURL:url]; + return urlRequest; +}; + +QCloudRequestSerializerBlock QCloudURLFuseWithParamters = ^(NSMutableURLRequest *request, QCloudRequestData *data, NSError *__autoreleasing *error) { + NSString *path = QCloudPathJoin(data.serverURL, data.URIMethod); + path = QCloudURLAppendParamters(path, QCloudURLEncodeParamters(data.allParamters, NO, data.stringEncoding)); + NSURL *url = [NSURL URLWithString:path]; + NSMutableURLRequest *urlRequest = [[NSMutableURLRequest alloc] initWithURL:url]; + return urlRequest; +}; + +QCloudRequestSerializerBlock QCloudURLFuseWithJSONParamters + = ^(NSMutableURLRequest *request, QCloudRequestData *data, NSError *__autoreleasing *error) { + NSData *jsonData = [NSJSONSerialization dataWithJSONObject:data.allParamters options:NSJSONWritingPrettyPrinted error:error]; + if (*error) { + return (NSMutableURLRequest *)nil; + } + [request setValue:[NSString stringWithFormat:@"application/json"] forHTTPHeaderField:@"Content-Type"]; + [request setValue:[@([jsonData length]) stringValue] forHTTPHeaderField:@"Content-Length"]; + [request setHTTPBody:jsonData]; + return request; + }; + +QCloudRequestSerializerBlock QCloudURLFuseWithXMLParamters + = ^(NSMutableURLRequest *request, QCloudRequestData *data, NSError *__autoreleasing *error) { + if (data.allParamters.count) { + NSString *str = [data.allParamters qcxml_XMLString]; + [request setValue:[NSString stringWithFormat:@"application/xml"] forHTTPHeaderField:@"Content-Type"]; + NSData *bodyData = [str dataUsingEncoding:NSUTF8StringEncoding]; + [request setValue:[@([bodyData length]) stringValue] forHTTPHeaderField:@"Content-Length"]; + [request setHTTPBody:bodyData]; + } + return request; + }; + +QCloudRequestSerializerBlock QCloudURLFuseWithURLEncodeParamters + = ^(NSMutableURLRequest *request, QCloudRequestData *data, NSError *__autoreleasing *error) { + NSString *urlStr = nil; + if (request.URL.absoluteString.length > 0) { + urlStr = request.URL.absoluteString; + } else { + urlStr = QCloudPathJoin(data.serverURL, data.URIMethod); + } + urlStr = QCloudURLAppendParamters(urlStr, QCloudURLEncodeParamters(data.allParamters, YES, data.stringEncoding)); + NSURL *url = [NSURL URLWithString:urlStr]; + NSMutableURLRequest *urlRequest = [[NSMutableURLRequest alloc] initWithURL:url]; + return urlRequest; + }; + +QCloudRequestSerializerBlock QCloudURLFuseURIMethodASURLParamters + = ^(NSMutableURLRequest *request, QCloudRequestData *data, NSError *__autoreleasing *error) { + NSString *urlStr = nil; + if (request.URL.absoluteString.length > 0) { + urlStr = request.URL.absoluteString; + } else { + urlStr = data.serverURL; + NSMutableArray *coms = [NSMutableArray new]; + if (data.URIComponents.count) { + [coms addObjectsFromArray:data.URIComponents]; + } + NSString *path = QCloudURLFuseAllPathComponents(coms); + urlStr = QCloudPathJoin(urlStr, path); + } + + NSMutableDictionary *methodParamters = [NSMutableDictionary new]; + if (data.URIMethod) { + methodParamters[data.URIMethod] = @""; + urlStr = QCloudURLAppendParamters(urlStr, QCloudURLEncodeParamters(methodParamters, YES, data.stringEncoding)); + if (urlStr.length && [urlStr hasSuffix:@"="]) { + urlStr = [urlStr substringToIndex:urlStr.length - 1]; + } + } + NSURL *url = [NSURL URLWithString:urlStr]; + if (!request) { + request = [[NSMutableURLRequest alloc] initWithURL:url]; + } else { + [request setURL:url]; + } + return request; + }; + +QCloudRequestSerializerBlock QCloudURLFuseContentMD5Base64StyleHeaders + = ^(NSMutableURLRequest *request, QCloudRequestData *data, NSError *__autoreleasing *error) { + if (request.HTTPBody) { + NSData *data = request.HTTPBody; + NSString *md5 = QCloudEncrytNSDataMD5Base64(data); + if (md5) { + [request setValue:md5 forHTTPHeaderField:@"Content-MD5"]; + } + } else if (data.directBody) { + if ([data.directBody isKindOfClass:[NSData class]]) { + NSData *md5data = data.directBody; + NSString *md5 = QCloudEncrytNSDataMD5Base64(md5data); + if (md5) { + [request setValue:md5 forHTTPHeaderField:@"Content-MD5"]; + } + } else if ([data.directBody isKindOfClass:[NSURL class]]) { + NSString *md5 = QCloudEncrytFileMD5Base64([(NSURL *)data.directBody path]); + if (md5) { + [request setValue:md5 forHTTPHeaderField:@"Content-MD5"]; + } + } else if ([data.directBody isKindOfClass:[QCloudFileOffsetBody class]]) { + QCloudFileOffsetBody *body = (QCloudFileOffsetBody *)data.directBody; + NSString *md5 = QCloudEncrytFileOffsetMD5Base64(body.fileURL.path, body.offset, body.sliceLength); + if (md5) { + [request setValue:md5 forHTTPHeaderField:@"Content-MD5"]; + } + } + } + return request; + }; + +QCloudRequestSerializerBlock QCloudURLSerilizerHTTPHeaderParamters + = ^(NSMutableURLRequest *request, QCloudRequestData *data, NSError *__autoreleasing *error) { + NSDictionary *allParamters = data.allParamters; + NSArray *allKeys = allParamters.allKeys; + for (NSString *key in allKeys) { + [request setValue:allParamters[key] forHTTPHeaderField:key]; + } + return request; + }; + +QCloudRequestSerializerBlock QCloudURLSerilizerAppendURLParamters(NSDictionary *keyValueMaps) { + return ^(NSMutableURLRequest *request, QCloudRequestData *data, NSError *__autoreleasing *error) { + NSString *urlStr = nil; + if (request.URL.absoluteString.length > 0) { + urlStr = request.URL.absoluteString; + } else { + urlStr = QCloudPathJoin(data.serverURL, data.URIMethod); + } + urlStr = QCloudURLAppendParamters(urlStr, QCloudURLEncodeParamters(keyValueMaps, YES, data.stringEncoding)); + if (urlStr.length && [urlStr hasSuffix:@"="]) { + urlStr = [urlStr substringToIndex:urlStr.length - 1]; + } + NSURL *url = [NSURL URLWithString:urlStr]; + NSMutableURLRequest *urlRequest; + if (request) { + urlRequest = [request mutableCopy]; + [urlRequest setURL:url]; + } else { + urlRequest = [[NSMutableURLRequest alloc] initWithURL:url]; + } + return urlRequest; + }; +} + +QCloudRequestSerializerBlock QCloudURLSerilizerURLEncodingBody + = ^(NSMutableURLRequest *request, QCloudRequestData *data, NSError *__autoreleasing *error) { + NSDictionary *allParamters = data.allParamters; + NSString *content = QCloudURLEncodeParamters(allParamters, YES, data.stringEncoding); + NSData *contentData = [content dataUsingEncoding:data.stringEncoding]; + [request setHTTPBody:contentData]; + [request setValue:HTTPHeaderContentTypeURLEncode forHTTPHeaderField:HTTPHeaderContentType]; + [request setValue:[@(contentData.length) stringValue] forHTTPHeaderField:@"Content-Length"]; + return request; + }; + +QCloudRequestSerializerBlock QCloudURLCleanAllHeader = ^(NSMutableURLRequest *request, QCloudRequestData *data, NSError *__autoreleasing *error) { + [request setValue:nil forHTTPHeaderField:@"Accept-Encoding"]; + [request setValue:nil forHTTPHeaderField:@"Connection"]; + [request setValue:nil forHTTPHeaderField:@"Cookie"]; + [request setValue:@"" forHTTPHeaderField:HTTPHeaderUserAgent]; + return request; +}; + +static NSArray *QCloudHTTPReqeustSerializerObservedKeyPath() { + static NSArray *paths = nil; + static dispatch_once_t onceToken; + dispatch_once(&onceToken, ^{ + paths = @[ + NSStringFromSelector(@selector(allowsCellularAccess)), NSStringFromSelector(@selector(cachePolicy)), + NSStringFromSelector(@selector(HTTPShouldSetCookies)), NSStringFromSelector(@selector(HTTPShouldUsePipelining)), + NSStringFromSelector(@selector(networkServiceType)), NSStringFromSelector(@selector(timeoutInterval)) + ]; + }); + return paths; +} + +static void *QCloudHTTPRequestSerializerObserverContext = &QCloudHTTPRequestSerializerObserverContext; + +@interface QCloudRequestSerializer () { + NSMutableSet *_mutableChangedPaths; + NSDictionary *_defaultHTTPHeaders; +} +@end + +@implementation QCloudRequestSerializer +@synthesize shouldAuthentication = _shouldAuthentication; +- (void)dealloc { + for (NSString *selector in QCloudHTTPReqeustSerializerObservedKeyPath()) { + if ([self respondsToSelector:NSSelectorFromString(selector)]) { + @try { + [self removeObserver:self forKeyPath:selector]; + } @catch (NSException *exception) { + QCloudLogDebugE(@"Utils",@"没有该观察者"); + } + } + } +} + +- (void)__commonInit { + // + _mutableChangedPaths = [NSMutableSet new]; + for (NSString *keyPath in QCloudHTTPReqeustSerializerObservedKeyPath()) { + if ([self respondsToSelector:NSSelectorFromString(keyPath)]) { + [self addObserver:self forKeyPath:keyPath options:NSKeyValueObservingOptionNew context:QCloudHTTPRequestSerializerObserverContext]; + } + } + // + _HTTPMethod = HTTPMethodGET; + _allowCompressedResponse = NO; + _serializerBlocks = @[ QCloudURLFuseWithParamters ]; + _HTTPDNSPrefetch = YES; + _useCookies = YES; + _shouldAuthentication = YES; +} + +- (instancetype)init { + self = [super init]; + if (!self) { + return self; + } + [self __commonInit]; + return self; +} + +- (void)observeValueForKeyPath:(NSString *)keyPath ofObject:(id)object change:(NSDictionary *)change context:(void *)context { + if (context == QCloudHTTPRequestSerializerObserverContext) { + if ([change[NSKeyValueChangeNewKey] isEqual:[NSNull null]]) { + [_mutableChangedPaths removeObject:keyPath]; + } else { + [_mutableChangedPaths addObject:keyPath]; + } + } +} + +- (NSMutableURLRequest *)requestWithData:(QCloudRequestData *)data error:(NSError *__autoreleasing *)error { + NSMutableURLRequest *request = [NSMutableURLRequest new]; + request.cachePolicy = self.cachePolicy; + request.timeoutInterval = self.timeoutInterval; + + NSAssert(self.serializerBlocks.count != 0, @"没有添加任何的序列化匿名函数,请检查配置!!!"); + NSError *localError; + for (QCloudRequestSerializerBlock sBlock in self.serializerBlocks) { + request = sBlock(request, data, &localError); + + if (localError != nil) { + if (error != NULL) { + *error = localError; + } + return nil; + } + } + + if (!request || *error) { + if (error != NULL) { + *error = [NSError errorWithDomain:@"com.tencent.qcloud.error" + code:-1112 + userInfo:@{ NSLocalizedDescriptionKey : @"对request进行配置的时候出错,请检查所有的配置Block" }]; + } + return nil; + } + request.HTTPMethod = self.HTTPMethod; + // + for (NSString *keyPath in QCloudHTTPReqeustSerializerObservedKeyPath()) { + if ([_mutableChangedPaths containsObject:keyPath]) { + [request setValue:[self valueForKey:keyPath] forKey:keyPath]; + } + } + // + if (data.queryParamters.count > 0) { + NSURL *url = request.URL; + NSString *urlString = url.absoluteString; + urlString = QCloudURLAppendParamters(urlString, QCloudURLEncodeParamters(data.queryParamters, YES, data.stringEncoding)); + url = [NSURL URLWithString:urlString]; + [request setURL:url]; + } + // + // http headers + if (self.allowCompressedResponse) { + [data setValue:@"gzip" forHTTPHeaderField:@"Content-Encoding"]; + } + // + NSDictionary *headers = [data.httpHeaders copy]; + NSArray *allKeys = headers.allKeys; + for (NSString *key in allKeys) { + [request setValue:headers[key] forHTTPHeaderField:key]; + } + + if (_useCookies && request.URL) { + // Cokies填充 + NSArray *cookies = [[NSHTTPCookieStorage sharedHTTPCookieStorage] cookiesForURL:[request.URL absoluteURL]]; + cookies = QCloudFuseAndUpdateCookiesArray(data.cookies, cookies); + NSDictionary *cookiesInfos = [NSHTTPCookie requestHeaderFieldsWithCookies:cookies]; + [request setAllHTTPHeaderFields:cookiesInfos]; + } + return request; +} + +@end diff --git a/Pods/QCloudCore/QCloudCore/Classes/Base/QCLOUDRestNet/CoreRequest/Serializer/QCloudResponseSerializer.h b/Pods/QCloudCore/QCloudCore/Classes/Base/QCLOUDRestNet/CoreRequest/Serializer/QCloudResponseSerializer.h new file mode 100644 index 0000000..2a61b30 --- /dev/null +++ b/Pods/QCloudCore/QCloudCore/Classes/Base/QCLOUDRestNet/CoreRequest/Serializer/QCloudResponseSerializer.h @@ -0,0 +1,22 @@ +// +// QCloudResponseSerializer.h +// QCloudNetworking +// +// Created by tencent on 15/9/25. +// Copyright © 2015年 QCloudTernimalLab. All rights reserved. +// + +#import +typedef id (^QCloudResponseSerializerBlock)(NSHTTPURLResponse *response, id inputData, NSError *__autoreleasing *error); + +@interface QCloudResponseSerializer : NSObject +@property (nonatomic, assign) BOOL waitForBodyData; +@property (nonatomic, strong) NSArray *serializerBlocks; +- (id)decodeWithWithResponse:(NSHTTPURLResponse *)response data:(NSData *)data error:(NSError *__autoreleasing *)error; +@end + +FOUNDATION_EXTERN QCloudResponseSerializerBlock QCloudAcceptRespnseCodeBlock(NSSet *acceptCode, Class errorModel); +FOUNDATION_EXTERN QCloudResponseSerializerBlock QCloudResponseXMLSerializerBlock; +FOUNDATION_EXTERN QCloudResponseSerializerBlock QCloudResponseJSONSerilizerBlock; +FOUNDATION_EXTERN QCloudResponseSerializerBlock QCloudResponseAppendHeadersSerializerBlock; +FOUNDATION_EXTERN QCloudResponseSerializerBlock QCloudResponseDataAppendHeadersSerializerBlock; diff --git a/Pods/QCloudCore/QCloudCore/Classes/Base/QCLOUDRestNet/CoreRequest/Serializer/QCloudResponseSerializer.m b/Pods/QCloudCore/QCloudCore/Classes/Base/QCLOUDRestNet/CoreRequest/Serializer/QCloudResponseSerializer.m new file mode 100644 index 0000000..5cd7fed --- /dev/null +++ b/Pods/QCloudCore/QCloudCore/Classes/Base/QCLOUDRestNet/CoreRequest/Serializer/QCloudResponseSerializer.m @@ -0,0 +1,193 @@ +// +// QCloudResponseSerializer.m +// QCloudNetworking +// +// Created by tencent on 15/9/25. +// Copyright © 2015年 QCloudTernimalLab. All rights reserved. +// + +#import "QCloudResponseSerializer.h" +#import "QCloudLogger.h" +#import "NSError+QCloudNetworking.h" +#import "QCloudObjectModel.h" +#import "QCloudXMLDictionary.h" + +typedef id (^QCloudResponseSerializerBlock)(NSHTTPURLResponse *response, id inputData, NSError *__autoreleasing *error); + +QCloudResponseSerializerBlock QCloudResponseXMLSerializerBlock = ^(NSHTTPURLResponse *response, id inputData, NSError *__autoreleasing *error) { + + if (![inputData isKindOfClass:[NSData class]]) { + if (NULL != error) { + *error = [NSError qcloud_errorWithCode:QCloudNetworkErrorCodeResponseDataTypeInvalid + message:[NSString stringWithFormat:@"ServerError:XML解析器读入的数据不是NSData"]]; + } + return (id)nil; + } + if ([(NSData *)inputData length] == 0) { + NSDictionary *emptyDictionary = [[NSDictionary alloc] init]; + return (id)emptyDictionary; + } + +#ifdef DEBUG +#endif + QCloudXMLDictionaryParser *parser = [QCloudXMLDictionaryParser new]; + + NSDictionary *output = [parser dictionaryWithData:inputData]; + + if (!output) { + if (NULL != error) { + *error = [NSError qcloud_errorWithCode:QCloudNetworkErrorCodeResponseDataTypeInvalid + message:[NSString stringWithFormat:@"ServerError:尝试解析XML类型数据出错:\n%@", + [[NSString alloc] initWithData:inputData + encoding:NSUTF8StringEncoding]]]; + } + return (id)nil; + } + if (output[@"Code"] && [output[@"__name"] isEqualToString:@"Error"]) { + *error = [NSError qcloud_errorWithCode:500 + message:[NSString stringWithFormat:output[@"Code"], [[NSString alloc] initWithData:inputData + encoding:NSUTF8StringEncoding]]]; + return (id)nil; + } + QCloudLogDebugR(@"HTTP",@"原始数据:%@", output); + return (id)output; +}; + +QCloudResponseSerializerBlock QCloudResponseAppendHeadersSerializerBlock + = ^(NSHTTPURLResponse *response, id inputData, NSError *__autoreleasing *error) { + NSMutableDictionary *allDatas = [NSMutableDictionary new]; + if ([inputData isKindOfClass:[NSDictionary class]]) { + [allDatas addEntriesFromDictionary:(NSDictionary *)inputData]; + } + [allDatas addEntriesFromDictionary:response.allHeaderFields]; + + return (id)allDatas; + }; + +QCloudResponseSerializerBlock QCloudResponseDataAppendHeadersSerializerBlock + = ^(NSHTTPURLResponse *response, id inputData, NSError *__autoreleasing *error) { + NSMutableDictionary *allDatas = [NSMutableDictionary new]; + if ([inputData isKindOfClass:[NSDictionary class]]) { + [allDatas addEntriesFromDictionary:(NSDictionary *)inputData]; + } else { + if (inputData != nil) { + [allDatas setObject:inputData forKey:@"data"]; + } + } + [allDatas addEntriesFromDictionary:response.allHeaderFields]; + + return (id)allDatas; + }; + +QCloudResponseSerializerBlock QCloudAcceptRespnseCodeBlock(NSSet *acceptCode, Class errorModel) { + return ^(NSHTTPURLResponse *response, id inputData, NSError *__autoreleasing *error) { + void (^LoadDefaultError)(void) = ^() { + NSString *errorMessage = [[NSString alloc] initWithData:inputData encoding:NSUTF8StringEncoding]; + errorMessage = errorMessage ?: [NSString stringWithFormat:@"不接受该HTTP StatusCode %ld", (long)response.statusCode]; + if (error != NULL) { + *error = [NSError qcloud_errorWithCode:(int)response.statusCode message:errorMessage]; + } + }; + if ([acceptCode containsObject:@(response.statusCode)]) { + return inputData; + } else { + NSString *contentType = [response.allHeaderFields objectForKey:@"Content-Type"]; + NSDictionary *userInfo = nil; + if (contentType) { + if ([contentType.lowercaseString containsString:@"application/json"]) { + NSError *localError = nil; + NSDictionary *map = [NSJSONSerialization JSONObjectWithData:inputData options:0 error:&localError]; + if (localError) { + LoadDefaultError(); + } else { + userInfo = map; + } + } else if ([contentType.lowercaseString containsString:@"application/xml"]) { + QCloudXMLDictionaryParser *parser = [QCloudXMLDictionaryParser new]; + NSDictionary *output = [parser dictionaryWithData:inputData]; + if (output) { + userInfo = output; + } + } + } + + if (userInfo) { + if (!errorModel) { + if (error != NULL) { + *error = [NSError errorWithDomain:kQCloudNetworkDomain code:response.statusCode userInfo:userInfo]; + } + return (id)nil; + } + if ([errorModel respondsToSelector:@selector(toError:)]) { + if (error != NULL) { + *error = [errorModel toError:userInfo]; + } + } else { + LoadDefaultError(); + } + } + if ((error != NULL) && !(*error)) { + LoadDefaultError(); + } + return (id)nil; + } + }; +} + +QCloudResponseSerializerBlock QCloudResponseJSONSerilizerBlock = ^(NSHTTPURLResponse *response, id inputData, NSError *__autoreleasing *error) { + if (![inputData isKindOfClass:[NSData class]]) { + if (error != NULL) { + *error = [NSError errorWithDomain:@"com.tencent.networking" + code:-1404 + userInfo:@{ NSLocalizedDescriptionKey : @"数据非法,请传入合法数据" }]; + } + return (id)nil; + } + NSDictionary *jsonObject = [NSJSONSerialization JSONObjectWithData:inputData options:0 error:error]; + if (*error || !jsonObject) { + NSString *str = [[NSString alloc] initWithData:inputData encoding:NSUTF8StringEncoding]; + QCloudLogErrorE(@"HTTP",@"response data is %@", str); + return (id)nil; + } + QCloudLogDebugR(@"HTTP",@"GET JSON : \n %@", jsonObject); + return (id)(jsonObject); +}; + +@interface QCloudResponseSerializer () { + NSMutableArray *_serializerBlocks; +} +@end + +@implementation QCloudResponseSerializer + +- (void)__responseCommonInit { + _serializerBlocks = [NSMutableArray new]; + [_serializerBlocks addObject:QCloudAcceptRespnseCodeBlock([NSSet setWithArray:@[ @(200) ]], nil)]; + [_serializerBlocks addObject:QCloudResponseJSONSerilizerBlock]; + _waitForBodyData = YES; +} +- (instancetype)init { + self = [super init]; + if (!self) { + return self; + } + [self __responseCommonInit]; + return self; +} + +- (id)decodeWithWithResponse:(NSHTTPURLResponse *)response data:(NSData *)data error:(NSError *__autoreleasing *)error { + NSError *localError; + id output = data; + for (QCloudResponseSerializerBlock block in _serializerBlocks) { + output = block(response, output, &localError); + if (localError) { + if (error != NULL) { + *error = localError; + } + return nil; + } + } + return output; +} + +@end diff --git a/Pods/QCloudCore/QCloudCore/Classes/Base/QCLOUDRestNet/CoreRequest/Serializer/QCloudURLHelper.h b/Pods/QCloudCore/QCloudCore/Classes/Base/QCLOUDRestNet/CoreRequest/Serializer/QCloudURLHelper.h new file mode 100644 index 0000000..74276dd --- /dev/null +++ b/Pods/QCloudCore/QCloudCore/Classes/Base/QCLOUDRestNet/CoreRequest/Serializer/QCloudURLHelper.h @@ -0,0 +1,11 @@ +// +// QCloudURLHelper.h +// Pods +// +// Created by Dong Zhao on 2017/9/7. +// +// + +#import + +FOUNDATION_EXTERN NSString *QCloudPercentEscapedStringFromString(NSString *string); diff --git a/Pods/QCloudCore/QCloudCore/Classes/Base/QCLOUDRestNet/CoreRequest/Serializer/QCloudURLHelper.m b/Pods/QCloudCore/QCloudCore/Classes/Base/QCLOUDRestNet/CoreRequest/Serializer/QCloudURLHelper.m new file mode 100644 index 0000000..1c215e8 --- /dev/null +++ b/Pods/QCloudCore/QCloudCore/Classes/Base/QCLOUDRestNet/CoreRequest/Serializer/QCloudURLHelper.m @@ -0,0 +1,42 @@ +// +// QCloudURLHelper.m +// Pods +// +// Created by Dong Zhao on 2017/9/7. +// +// + +#import "QCloudURLHelper.h" + +NSString *QCloudPercentEscapedStringFromString(NSString *string) { + static NSString *const kAFCharactersGeneralDelimitersToEncode = @":#[]@"; // does not include "?" or "/" due to RFC 3986 - Section 3.4 + static NSString *const kAFCharactersSubDelimitersToEncode = @"?!$&'()*+,;="; + + NSMutableCharacterSet *allowedCharacterSet = [[NSCharacterSet URLQueryAllowedCharacterSet] mutableCopy]; + [allowedCharacterSet + removeCharactersInString:[kAFCharactersGeneralDelimitersToEncode stringByAppendingString:kAFCharactersSubDelimitersToEncode]]; + + // FIXME: https://github.com/AFNetworking/AFNetworking/pull/3028 + // return [string stringByAddingPercentEncodingWithAllowedCharacters:allowedCharacterSet]; + + static NSUInteger const batchSize = 50; + + NSUInteger index = 0; + NSMutableString *escaped = @"".mutableCopy; + + while (index < string.length) { + NSUInteger length = MIN(string.length - index, batchSize); + NSRange range = NSMakeRange(index, length); + + // To avoid breaking up character sequences such as 👴🏻👮🏽 + range = [string rangeOfComposedCharacterSequencesForRange:range]; + + NSString *substring = [string substringWithRange:range]; + NSString *encoded = [substring stringByAddingPercentEncodingWithAllowedCharacters:allowedCharacterSet]; + [escaped appendString:encoded]; + + index += range.length; + } + + return escaped; +} diff --git a/Pods/QCloudCore/QCloudCore/Classes/Base/QCLOUDRestNet/CoreRequest/Serializer/XML/XMLDictionary/Reader/QCloudXMLDictionary.h b/Pods/QCloudCore/QCloudCore/Classes/Base/QCLOUDRestNet/CoreRequest/Serializer/XML/XMLDictionary/Reader/QCloudXMLDictionary.h new file mode 100644 index 0000000..2c0a0b1 --- /dev/null +++ b/Pods/QCloudCore/QCloudCore/Classes/Base/QCLOUDRestNet/CoreRequest/Serializer/XML/XMLDictionary/Reader/QCloudXMLDictionary.h @@ -0,0 +1,107 @@ +// +// QCloudXMLDictionary.h +// +// Version 1.4.1 +// +// Created by Nick Lockwood on 15/11/2010. +// Copyright 2010 Charcoal Design. All rights reserved. +// +// Get the latest version of QCloudXMLDictionary from here: +// +// https://github.com/nicklockwood/QCloudXMLDictionary +// +// This software is provided 'as-is', without any express or implied +// warranty. In no event will the authors be held liable for any damages +// arising from the use of this software. +// +// Permission is granted to anyone to use this software for any purpose, +// including commercial applications, and to alter it and redistribute it +// freely, subject to the following restrictions: +// +// 1. The origin of this software must not be misrepresented; you must not +// claim that you wrote the original software. If you use this software +// in a product, an acknowledgment in the product documentation would be +// appreciated but is not required. +// +// 2. Altered source versions must be plainly marked as such, and must not be +// misrepresented as being the original software. +// +// 3. This notice may not be removed or altered from any source distribution. +// + +#import +#pragma GCC diagnostic push +#pragma GCC diagnostic ignored "-Wobjc-missing-property-synthesis" + +NS_ASSUME_NONNULL_BEGIN + +typedef NS_ENUM(NSInteger, QCloudXMLDictionaryAttributesMode) { + QCloudXMLDictionaryAttributesModePrefixed = 0, // default + QCloudXMLDictionaryAttributesModeDictionary, + QCloudXMLDictionaryAttributesModeUnprefixed, + QCloudXMLDictionaryAttributesModeDiscard +}; + +typedef NS_ENUM(NSInteger, QCloudXMLDictionaryNodeNameMode) { + QCloudXMLDictionaryNodeNameModeRootOnly = 0, // default + QCloudXMLDictionaryNodeNameModeAlways, + QCloudXMLDictionaryNodeNameModeNever +}; + +static NSString *const QCloudXMLDictionaryAttributesKey = @"__attributes"; +static NSString *const QCloudXMLDictionaryCommentsKey = @"__comments"; +static NSString *const QCloudXMLDictionaryTextKey = @"__text"; +static NSString *const QCloudXMLDictionaryNodeNameKey = @"__name"; +static NSString *const QCloudXMLDictionaryAttributePrefix = @"_"; + +@interface QCloudXMLDictionaryParser : NSObject + ++ (QCloudXMLDictionaryParser *)sharedInstance; + +@property (nonatomic, assign) BOOL collapseTextNodes; // defaults to YES +@property (nonatomic, assign) BOOL stripEmptyNodes; // defaults to YES +@property (nonatomic, assign) BOOL trimWhiteSpace; // defaults to YES +@property (nonatomic, assign) BOOL alwaysUseArrays; // defaults to NO +@property (nonatomic, assign) BOOL preserveComments; // defaults to NO +@property (nonatomic, assign) BOOL wrapRootNode; // defaults to NO + +@property (nonatomic, assign) QCloudXMLDictionaryAttributesMode attributesMode; +@property (nonatomic, assign) QCloudXMLDictionaryNodeNameMode nodeNameMode; + +- (nullable NSDictionary *)dictionaryWithParser:(NSXMLParser *)parser; +- (nullable NSDictionary *)dictionaryWithData:(NSData *)data; +- (nullable NSDictionary *)dictionaryWithString:(NSString *)string; +- (nullable NSDictionary *)dictionaryWithFile:(NSString *)path; + +@end + +@interface NSDictionary (QCloudXMLDictionary) + ++ (nullable NSDictionary *)qcxml_dictionaryWithXMLParser:(NSXMLParser *)parser; ++ (nullable NSDictionary *)qcxml_dictionaryWithXMLData:(NSData *)data; ++ (nullable NSDictionary *)qcxml_dictionaryWithXMLString:(NSString *)string; ++ (nullable NSDictionary *)qcxml_dictionaryWithXMLFile:(NSString *)path; + +@property (nonatomic, readonly, copy, nullable) NSDictionary *qcxml_attributes; +@property (nonatomic, readonly, copy, nullable) NSDictionary *qcxml_childNodes; +@property (nonatomic, readonly, copy, nullable) NSArray *qcxml_comments; +@property (nonatomic, readonly, copy, nullable) NSString *qcxml_nodeName; +@property (nonatomic, readonly, copy, nullable) NSString *qcxml_innerText; +@property (nonatomic, readonly, copy) NSString *qcxml_innerXML; +@property (nonatomic, readonly, copy) NSString *qcxml_XMLString; + +- (nullable NSArray *)qcxml_arrayValueForKeyPath:(NSString *)keyPath; +- (nullable NSString *)qcxml_stringValueForKeyPath:(NSString *)keyPath; +- (nullable NSDictionary *)qcxml_dictionaryValueForKeyPath:(NSString *)keyPath; + +@end + +@interface NSString (QCloudXMLDictionary) + +@property (nonatomic, readonly, copy) NSString *QCXMLEncodedString; + +@end + +NS_ASSUME_NONNULL_END + +#pragma GCC diagnostic pop diff --git a/Pods/QCloudCore/QCloudCore/Classes/Base/QCLOUDRestNet/CoreRequest/Serializer/XML/XMLDictionary/Reader/QCloudXMLDictionary.m b/Pods/QCloudCore/QCloudCore/Classes/Base/QCLOUDRestNet/CoreRequest/Serializer/XML/XMLDictionary/Reader/QCloudXMLDictionary.m new file mode 100644 index 0000000..8f2f00a --- /dev/null +++ b/Pods/QCloudCore/QCloudCore/Classes/Base/QCLOUDRestNet/CoreRequest/Serializer/XML/XMLDictionary/Reader/QCloudXMLDictionary.m @@ -0,0 +1,450 @@ +// +// QCloudXMLDictionary.m +// +// Version 1.4.1 +// +// Created by Nick Lockwood on 15/11/2010. +// Copyright 2010 Charcoal Design. All rights reserved. +// +// Get the latest version of QCloudXMLDictionary from here: +// +// https://github.com/nicklockwood/QCloudXMLDictionary +// +// This software is provided 'as-is', without any express or implied +// warranty. In no event will the authors be held liable for any damages +// arising from the use of this software. +// +// Permission is granted to anyone to use this software for any purpose, +// including commercial applications, and to alter it and redistribute it +// freely, subject to the following restrictions: +// +// 1. The origin of this software must not be misrepresented; you must not +// claim that you wrote the original software. If you use this software +// in a product, an acknowledgment in the product documentation would be +// appreciated but is not required. +// +// 2. Altered source versions must be plainly marked as such, and must not be +// misrepresented as being the original software. +// +// 3. This notice may not be removed or altered from any source distribution. +// + +#import "QCloudXMLDictionary.h" + +#pragma GCC diagnostic ignored "-Wobjc-missing-property-synthesis" +#pragma GCC diagnostic ignored "-Wpartial-availability" +#pragma GCC diagnostic ignored "-Wdirect-ivar-access" +#pragma GCC diagnostic ignored "-Wformat-non-iso" +#pragma GCC diagnostic ignored "-Wgnu" + +#import +#if !__has_feature(objc_arc) +#error This class requires automatic reference counting +#endif + +@interface QCloudXMLDictionaryParser () + +@property (nonatomic, strong) NSMutableDictionary *root; +@property (nonatomic, strong) NSMutableArray *stack; +@property (nonatomic, strong) NSMutableString *text; + +@end + +@implementation QCloudXMLDictionaryParser + ++ (QCloudXMLDictionaryParser *)sharedInstance { + static dispatch_once_t once; + static QCloudXMLDictionaryParser *sharedInstance; + dispatch_once(&once, ^{ + sharedInstance = [[QCloudXMLDictionaryParser alloc] init]; + }); + return sharedInstance; +} + +- (instancetype)init { + if ((self = [super init])) { + _collapseTextNodes = YES; + _stripEmptyNodes = YES; + _trimWhiteSpace = YES; + _alwaysUseArrays = NO; + _preserveComments = NO; + _wrapRootNode = NO; + } + return self; +} + +- (id)copyWithZone:(NSZone *)zone { + QCloudXMLDictionaryParser *copy = [[[self class] allocWithZone:zone] init]; + copy.collapseTextNodes = _collapseTextNodes; + copy.stripEmptyNodes = _stripEmptyNodes; + copy.trimWhiteSpace = _trimWhiteSpace; + copy.alwaysUseArrays = _alwaysUseArrays; + copy.preserveComments = _preserveComments; + copy.attributesMode = _attributesMode; + copy.nodeNameMode = _nodeNameMode; + copy.wrapRootNode = _wrapRootNode; + return copy; +} + +- (NSDictionary *)dictionaryWithParser:(NSXMLParser *)parser { + parser.delegate = self; + [parser parse]; + id result = _root; + _root = nil; + _stack = nil; + _text = nil; + return result; +} + +- (NSDictionary *)dictionaryWithData:(NSData *)data { + NSXMLParser *parser = [[NSXMLParser alloc] initWithData:data]; + [parser setShouldResolveExternalEntities:NO]; + return [self dictionaryWithParser:parser]; +} + +- (NSDictionary *)dictionaryWithString:(NSString *)string { + NSData *data = [string dataUsingEncoding:NSUTF8StringEncoding]; + return [self dictionaryWithData:data]; +} + +- (NSDictionary *)dictionaryWithFile:(NSString *)path { + NSData *data = [NSData dataWithContentsOfFile:path]; + return [self dictionaryWithData:data]; +} + ++ (NSString *)XMLStringForNode:(id)node withNodeName:(NSString *)nodeName { + if ([node isKindOfClass:[NSArray class]]) { + NSMutableArray *nodes = [NSMutableArray arrayWithCapacity:[node count]]; + for (id individualNode in node) { + [nodes addObject:[self XMLStringForNode:individualNode withNodeName:nodeName]]; + } + return [nodes componentsJoinedByString:@"\n"]; + } else if ([node isKindOfClass:[NSDictionary class]]) { + NSDictionary *attributes = [(NSDictionary *)node qcxml_attributes]; + NSMutableString *attributeString = [NSMutableString string]; + [attributes enumerateKeysAndObjectsUsingBlock:^(NSString *key, NSString *value, __unused BOOL *stop) { + [attributeString appendFormat:@" %@=\"%@\"", key.description.QCXMLEncodedString, value.description.QCXMLEncodedString]; + }]; + + NSString *innerXML = [node qcxml_innerXML]; + if (innerXML.length) { + return [NSString stringWithFormat:@"<%1$@%2$@>%3$@", nodeName, attributeString, innerXML]; + } else { + return [NSString stringWithFormat:@"<%@%@/>", nodeName, attributeString]; + } + } else { + return [NSString stringWithFormat:@"<%1$@>%2$@", nodeName, [node description].QCXMLEncodedString]; + } +} + +- (void)endText { + if (_trimWhiteSpace) { + _text = [[_text stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceAndNewlineCharacterSet]] mutableCopy]; + } + if (_text.length) { + NSMutableDictionary *top = _stack.lastObject; + id existing = top[QCloudXMLDictionaryTextKey]; + if ([existing isKindOfClass:[NSArray class]]) { + [existing addObject:_text]; + } else if (existing) { + top[QCloudXMLDictionaryTextKey] = [@[ existing, _text ] mutableCopy]; + } else { + top[QCloudXMLDictionaryTextKey] = _text; + } + } + _text = nil; +} + +- (void)addText:(NSString *)text { + if (!_text) { + _text = [NSMutableString stringWithString:text]; + } else { + [_text appendString:text]; + } +} + +- (void)parser:(__unused NSXMLParser *)parser + didStartElement:(NSString *)elementName + namespaceURI:(__unused NSString *)namespaceURI + qualifiedName:(__unused NSString *)qName + attributes:(NSDictionary *)attributeDict { + if ([elementName isEqualToString:@"CommonPrefixes"] || [elementName isEqualToString:@"Key"]) { + self.trimWhiteSpace = NO; + } + [self endText]; + + NSMutableDictionary *node = [NSMutableDictionary dictionary]; + switch (_nodeNameMode) { + case QCloudXMLDictionaryNodeNameModeRootOnly: { + if (!_root) { + node[QCloudXMLDictionaryNodeNameKey] = elementName; + } + break; + } + case QCloudXMLDictionaryNodeNameModeAlways: { + node[QCloudXMLDictionaryNodeNameKey] = elementName; + break; + } + case QCloudXMLDictionaryNodeNameModeNever: { + break; + } + } + + if (attributeDict.count) { + switch (_attributesMode) { + case QCloudXMLDictionaryAttributesModePrefixed: { + for (NSString *key in attributeDict) { + node[[QCloudXMLDictionaryAttributePrefix stringByAppendingString:key]] = attributeDict[key]; + } + break; + } + case QCloudXMLDictionaryAttributesModeDictionary: { + node[QCloudXMLDictionaryAttributesKey] = attributeDict; + break; + } + case QCloudXMLDictionaryAttributesModeUnprefixed: { + [node addEntriesFromDictionary:attributeDict]; + break; + } + case QCloudXMLDictionaryAttributesModeDiscard: { + break; + } + } + } + + if (!_root) { + _root = node; + _stack = [NSMutableArray arrayWithObject:node]; + if (_wrapRootNode) { + _root = [NSMutableDictionary dictionaryWithObject:_root forKey:elementName]; + [_stack insertObject:_root atIndex:0]; + } + } else { + NSMutableDictionary *top = _stack.lastObject; + id existing = top[elementName]; + if ([existing isKindOfClass:[NSArray class]]) { + [(NSMutableArray *)existing addObject:node]; + } else if (existing) { + top[elementName] = [@[ existing, node ] mutableCopy]; + } else if (_alwaysUseArrays) { + top[elementName] = [NSMutableArray arrayWithObject:node]; + } else { + top[elementName] = node; + } + [_stack addObject:node]; + } +} + +- (NSString *)nameForNode:(NSDictionary *)node inDictionary:(NSDictionary *)dict { + if (node.qcxml_nodeName) { + return node.qcxml_nodeName; + } else { + for (NSString *name in dict) { + id object = dict[name]; + if (object == node) { + return name; + } else if ([object isKindOfClass:[NSArray class]] && [(NSArray *)object containsObject:node]) { + return name; + } + } + } + return nil; +} + +- (void)parser:(__unused NSXMLParser *)parser + didEndElement:(__unused NSString *)elementName + namespaceURI:(__unused NSString *)namespaceURI + qualifiedName:(__unused NSString *)qName { + [self endText]; + + NSMutableDictionary *top = _stack.lastObject; + [_stack removeLastObject]; + + if (!top.qcxml_attributes && !top.qcxml_childNodes && !top.qcxml_comments) { + NSMutableDictionary *newTop = _stack.lastObject; + NSString *nodeName = [self nameForNode:top inDictionary:newTop]; + if (nodeName) { + id parentNode = newTop[nodeName]; + NSString *innerText = top.qcxml_innerText; + if (innerText && _collapseTextNodes) { + if ([parentNode isKindOfClass:[NSArray class]]) { + parentNode[[parentNode count] - 1] = innerText; + } else { + newTop[nodeName] = innerText; + } + } else if (!innerText) { + if (_stripEmptyNodes) { + if ([parentNode isKindOfClass:[NSArray class]]) { + [(NSMutableArray *)parentNode removeLastObject]; + } else { + [newTop removeObjectForKey:nodeName]; + } + } else if (!_collapseTextNodes) { + top[QCloudXMLDictionaryTextKey] = @""; + } + } + } + } +} + +- (void)parser:(__unused NSXMLParser *)parser foundCharacters:(NSString *)string { + [self addText:string]; +} + +- (void)parser:(__unused NSXMLParser *)parser foundCDATA:(NSData *)CDATABlock { + [self addText:[[NSString alloc] initWithData:CDATABlock encoding:NSUTF8StringEncoding]]; +} + +- (void)parser:(__unused NSXMLParser *)parser foundComment:(NSString *)comment { + if (_preserveComments) { + NSMutableDictionary *top = _stack.lastObject; + NSMutableArray *comments = top[QCloudXMLDictionaryCommentsKey]; + if (!comments) { + comments = [@[ comment ] mutableCopy]; + top[QCloudXMLDictionaryCommentsKey] = comments; + } else { + [comments addObject:comment]; + } + } +} + +@end + +@implementation NSDictionary (QCloudXMLDictionary) + ++ (NSDictionary *)qcxml_dictionaryWithXMLParser:(NSXMLParser *)parser { + return [[[QCloudXMLDictionaryParser sharedInstance] copy] dictionaryWithParser:parser]; +} + ++ (NSDictionary *)qcxml_dictionaryWithXMLData:(NSData *)data { + return [[[QCloudXMLDictionaryParser sharedInstance] copy] dictionaryWithData:data]; +} + ++ (NSDictionary *)qcxml_dictionaryWithXMLString:(NSString *)string { + return [[[QCloudXMLDictionaryParser sharedInstance] copy] dictionaryWithString:string]; +} + ++ (NSDictionary *)qcxml_dictionaryWithXMLFile:(NSString *)path { + return [[[QCloudXMLDictionaryParser sharedInstance] copy] dictionaryWithFile:path]; +} + +- (nullable NSDictionary *)qcxml_attributes { + NSDictionary *attributes = self[QCloudXMLDictionaryAttributesKey]; + if (attributes) { + return attributes.count ? attributes : nil; + } else { + NSMutableDictionary *filteredDict = [NSMutableDictionary dictionaryWithDictionary:self]; + [filteredDict removeObjectsForKeys:@[ QCloudXMLDictionaryCommentsKey, QCloudXMLDictionaryTextKey, QCloudXMLDictionaryNodeNameKey ]]; + for (NSString *key in filteredDict.allKeys) { + [filteredDict removeObjectForKey:key]; + if ([key hasPrefix:QCloudXMLDictionaryAttributePrefix]) { + filteredDict[[key substringFromIndex:QCloudXMLDictionaryAttributePrefix.length]] = self[key]; + } + } + return filteredDict.count ? filteredDict : nil; + } + return nil; +} + +- (nullable NSDictionary *)qcxml_childNodes { + NSMutableDictionary *filteredDict = [self mutableCopy]; + [filteredDict removeObjectsForKeys:@[ + QCloudXMLDictionaryAttributesKey, QCloudXMLDictionaryCommentsKey, QCloudXMLDictionaryTextKey, QCloudXMLDictionaryNodeNameKey + ]]; + for (NSString *key in filteredDict.allKeys) { + if ([key hasPrefix:QCloudXMLDictionaryAttributePrefix]) { + [filteredDict removeObjectForKey:key]; + } + } + return filteredDict.count ? filteredDict : nil; +} + +- (nullable NSArray *)qcxml_comments { + return self[QCloudXMLDictionaryCommentsKey]; +} + +- (nullable NSString *)qcxml_nodeName { + return self[QCloudXMLDictionaryNodeNameKey]; +} + +- (id)qcxml_innerText { + id text = self[QCloudXMLDictionaryTextKey]; + if ([text isKindOfClass:[NSArray class]]) { + return [text componentsJoinedByString:@"\n"]; + } else { + return text; + } +} + +- (NSString *)qcxml_innerXML { + NSMutableArray *nodes = [NSMutableArray array]; + + for (NSString *comment in [self qcxml_comments]) { + [nodes addObject:[NSString stringWithFormat:@"", [comment QCXMLEncodedString]]]; + } + + NSDictionary *childNodes = [self qcxml_childNodes]; + for (NSString *key in childNodes) { + [nodes addObject:[QCloudXMLDictionaryParser XMLStringForNode:childNodes[key] withNodeName:key]]; + } + + NSString *text = [self qcxml_innerText]; + if (text) { + [nodes addObject:[text QCXMLEncodedString]]; + } + + return [nodes componentsJoinedByString:@"\n"]; +} + +- (NSString *)qcxml_XMLString { + if (self.count == 1 && ![self qcxml_nodeName]) { + // ignore outermost dictionary + return [self qcxml_innerXML]; + } else { + return [QCloudXMLDictionaryParser XMLStringForNode:self withNodeName:[self qcxml_nodeName] ?: @"root"]; + } +} + +- (nullable NSArray *)qcxml_arrayValueForKeyPath:(NSString *)keyPath { + id value = [self valueForKeyPath:keyPath]; + if (value && ![value isKindOfClass:[NSArray class]]) { + return @[ value ]; + } + return value; +} + +- (nullable NSString *)qcxml_stringValueForKeyPath:(NSString *)keyPath { + id value = [self valueForKeyPath:keyPath]; + if ([value isKindOfClass:[NSArray class]]) { + value = ((NSArray *)value).firstObject; + } + if ([value isKindOfClass:[NSDictionary class]]) { + return [(NSDictionary *)value qcxml_innerText]; + } + return value; +} + +- (nullable NSDictionary *)qcxml_dictionaryValueForKeyPath:(NSString *)keyPath { + id value = [self valueForKeyPath:keyPath]; + if ([value isKindOfClass:[NSArray class]]) { + value = [value count] ? value[0] : nil; + } + if ([value isKindOfClass:[NSString class]]) { + return @{ QCloudXMLDictionaryTextKey : value }; + } + return value; +} + +@end + +@implementation NSString (QCloudXMLDictionary) + +- (NSString *)QCXMLEncodedString { + return [[[[[self stringByReplacingOccurrencesOfString:@"&" withString:@"&"] stringByReplacingOccurrencesOfString:@"<" withString:@"<"] + stringByReplacingOccurrencesOfString:@">" + withString:@">"] stringByReplacingOccurrencesOfString:@"\"" + withString:@"""] stringByReplacingOccurrencesOfString:@"\'" + withString:@"'"]; +} + +@end diff --git a/Pods/QCloudCore/QCloudCore/Classes/Base/QCLOUDRestNet/CoreRequest/Serializer/XML/XMLDictionary/Writer/QCloudXMLWriter.h b/Pods/QCloudCore/QCloudCore/Classes/Base/QCLOUDRestNet/CoreRequest/Serializer/XML/XMLDictionary/Writer/QCloudXMLWriter.h new file mode 100644 index 0000000..bd7f59b --- /dev/null +++ b/Pods/QCloudCore/QCloudCore/Classes/Base/QCLOUDRestNet/CoreRequest/Serializer/XML/XMLDictionary/Writer/QCloudXMLWriter.h @@ -0,0 +1,148 @@ +/*************************************************************************** + * + * XMLWriter: An XML stream writer for iOS. + * This file is part of the XSWI library - https://skjolber.github.io/xswi + * + * Copyright (C) 2010 by Thomas Rørvik Skjølberg + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN + * THE SOFTWARE. + ****************************************************************************/ + +#import + +// xml stream writer +@protocol QCloudXMLStreamWriter + +- (void)writeStartDocument; +- (void)writeStartDocumentWithVersion:(NSString *)version; +- (void)writeStartDocumentWithEncodingAndVersion:(NSString *)encoding version:(NSString *)version; + +- (void)writeStartElement:(NSString *)localName; + +- (void)writeEndElement; // automatic end element (mirrors previous start element at the same level) +- (void)writeEndElement:(NSString *)localName; + +- (void)writeEmptyElement:(NSString *)localName; + +- (void)writeEndDocument; // write any remaining end elements + +- (void)writeAttribute:(NSString *)localName value:(NSString *)value; + +- (void)writeCharacters:(NSString *)text; +- (void)writeComment:(NSString *)comment; +- (void)writeProcessingInstruction:(NSString *)target data:(NSString *)data; +- (void)writeCData:(NSString *)cdata; + +// return the written xml string buffer +- (NSMutableString *)toString; +// return the written xml as data, set to the encoding used in the writeStartDocumentWithEncodingAndVersion method (UTF-8 per default) +- (NSData *)toData; + +// flush the buffers, if any +- (void)flush; +// close the writer and buffers, if any +- (void)close; + +- (void)setPrettyPrinting:(NSString *)indentation withLineBreak:(NSString *)lineBreak; + +@end + +// xml stream writer with namespace support +@protocol NSXMLStreamWriter + +- (void)writeStartElementWithNamespace:(NSString *)namespaceURI localName:(NSString *)localName; +- (void)writeEndElementWithNamespace:(NSString *)namespaceURI localName:(NSString *)localName; +- (void)writeEmptyElementWithNamespace:(NSString *)namespaceURI localName:(NSString *)localName; + +- (void)writeAttributeWithNamespace:(NSString *)namespaceURI localName:(NSString *)localName value:(NSString *)value; + +// set a namespace and prefix +- (void)setPrefix:(NSString *)prefix namespaceURI:(NSString *)namespaceURI; +// write (and set) a namespace and prefix +- (void)writeNamespace:(NSString *)prefix namespaceURI:(NSString *)namespaceURI; + +// set the default namespace (empty prefix) +- (void)setDefaultNamespace:(NSString *)namespaceURI; +// write (and set) the default namespace +- (void)writeDefaultNamespace:(NSString *)namespaceURI; + +- (NSString *)getPrefix:(NSString *)namespaceURI; +- (NSString *)getNamespaceURI:(NSString *)prefix; + +@end + +@interface QCloudXMLWriter : NSObject { + // the current output buffer + NSMutableString *writer; + + // the target encoding + NSString *encoding; + + // the number current levels + int level; + // is the element open, i.e. the end bracket has not been written yet + BOOL openElement; + // does the element contain characters, cdata, comments + BOOL emptyElement; + + // the element stack. one per element level + NSMutableArray *elementLocalNames; + NSMutableArray *elementNamespaceURIs; + + // the namespace array. zero or more namespace attributes can be defined per element level + NSMutableArray *namespaceURIs; + // the namespace count. one per element level + NSMutableArray *namespaceCounts; + // the namespaces which have been written to the stream + NSMutableArray *namespaceWritten; + + // mapping of namespace URI to prefix and visa versa. Corresponds in size to the namespaceURIs array. + NSMutableDictionary *namespaceURIPrefixMap; + NSMutableDictionary *prefixNamespaceURIMap; + + // tag indentation + NSString *indentation; + // line break + NSString *lineBreak; + + // if true, then write elements without children as instead of + BOOL automaticEmptyElements; +} + +@property (nonatomic, retain, readwrite) NSString *indentation; +@property (nonatomic, retain, readwrite) NSString *lineBreak; +@property (nonatomic, assign, readwrite) BOOL automaticEmptyElements; +@property (nonatomic, readonly) int level; + +// helpful for formatting, special needs +// write linebreak, if any +- (void)writeLinebreak; +// write indentation, if any +- (void)writeIndentation; +// write end of start element, so that the start tag is complete +- (void)writeCloseStartElement; + +// write any outstanding namespace declaration attributes in a start element +- (void)writeNamespaceAttributes; +// write escaped text to the stream +- (void)writeEscape:(NSString *)value; +// wrote unescaped text to the stream +- (void)write:(NSString *)value; + +@end diff --git a/Pods/QCloudCore/QCloudCore/Classes/Base/QCLOUDRestNet/CoreRequest/Serializer/XML/XMLDictionary/Writer/QCloudXMLWriter.m b/Pods/QCloudCore/QCloudCore/Classes/Base/QCLOUDRestNet/CoreRequest/Serializer/XML/XMLDictionary/Writer/QCloudXMLWriter.m new file mode 100644 index 0000000..1235364 --- /dev/null +++ b/Pods/QCloudCore/QCloudCore/Classes/Base/QCLOUDRestNet/CoreRequest/Serializer/XML/XMLDictionary/Writer/QCloudXMLWriter.m @@ -0,0 +1,760 @@ +/*************************************************************************** + * + * XMLWriter: An XML stream writer for iOS. + * This file is part of the XSWI library - https://skjolber.github.io/xswi + * + * Copyright (C) 2010 by Thomas Rørvik Skjølberg + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN + * THE SOFTWARE. + ****************************************************************************/ + +#import "QCloudXMLWriter.h" + +#define NSBOOL(_X_) ((_X_) ? (id)kCFBooleanTrue : (id)kCFBooleanFalse) + +@interface QCloudXMLWriter (UtilityMethods) +// methods for internal use only +// pop the namespace stack, removing any namespaces which become out-of-scope +- (void)popNamespaceStack; +// push the namespace stack, denoting the namespaces whihch are in-scope +- (void)pushNamespaceStack; + +// add namespace and local name to the top of the element stack +- (void)pushElementStack:(NSString *)namespaceURI localName:(NSString *)localName; +// remove the top member of the element stack +- (void)popElementStack; + +// write close element, optionally as empty element +- (void)writeCloseElement:(BOOL)empty; +// write namespace attribute to stream +- (void)writeNamespaceToStream:(NSString *)prefix namespaceURI:(NSString *)namespaceURI; +// write a length of text to the stream with escaping +- (void)writeEscapeCharacters:(const UniChar *)characters length:(NSUInteger)length; +@end + +static NSString *const EMPTY_STRING = @""; +static NSString *const XML_NAMESPACE_URI = @"http://www.w3.org/XML/1998/namespace"; +static NSString *const XML_NAMESPACE_URI_PREFIX = @"xml"; +static NSString *const XMLNS_NAMESPACE_URI = @"http://www.w3.org/2000/xmlns/"; +static NSString *const XMLNS_NAMESPACE_URI_PREFIX = @"xmlns"; +static NSString *const XSI_NAMESPACE_URI = @"http://www.w3.org/2001/XMLSchema/"; +static NSString *const XSI_NAMESPACE_URI_PREFIX = @"xsi"; + +@implementation QCloudXMLWriter + +@synthesize automaticEmptyElements, indentation, lineBreak, level; + +- (QCloudXMLWriter *)init { + self = [super init]; + if (self != nil) { + // intialize variables + writer = [[NSMutableString alloc] init]; + level = 0; + openElement = NO; + emptyElement = NO; + + elementLocalNames = [[NSMutableArray alloc] init]; + elementNamespaceURIs = [[NSMutableArray alloc] init]; + + namespaceURIs = [[NSMutableArray alloc] init]; + namespaceCounts = [[NSMutableArray alloc] init]; + namespaceWritten = [[NSMutableArray alloc] init]; + + namespaceURIPrefixMap = [[NSMutableDictionary alloc] init]; + prefixNamespaceURIMap = [[NSMutableDictionary alloc] init]; + + // load default custom behaviour + automaticEmptyElements = YES; + + // setup default xml namespaces. assume both are previously known. + [namespaceCounts addObject:[NSNumber numberWithInt:2]]; + [self setPrefix:XML_NAMESPACE_URI_PREFIX namespaceURI:XML_NAMESPACE_URI]; + [self setPrefix:XMLNS_NAMESPACE_URI_PREFIX namespaceURI:XMLNS_NAMESPACE_URI]; + } + return self; +} + +- (void)pushNamespaceStack { + // step namespace count - add the current namespace count + NSNumber *previousCount = [namespaceCounts lastObject]; + if ([namespaceURIs count] == [previousCount unsignedIntegerValue]) { + // the count is still the same + [namespaceCounts addObject:previousCount]; + } else { + // the count has changed, save the it + NSNumber *count = [NSNumber numberWithInt:(int)[namespaceURIs count]]; + + [namespaceCounts addObject:count]; + } +} + +- (void)writeNamespaceAttributes { + if (openElement) { + // write namespace attributes in the namespace stack + NSNumber *previousCount = [namespaceCounts lastObject]; + for (NSUInteger i = [previousCount unsignedIntegerValue]; i < [namespaceURIs count]; i++) { + // did we already write this namespace? + id written = [namespaceWritten objectAtIndex:i]; + if (written == NSBOOL(NO)) { + // write namespace + NSString *namespaceURI = [namespaceURIs objectAtIndex:i]; + NSString *prefix = [namespaceURIPrefixMap objectForKey:namespaceURI]; + + [self writeNamespaceToStream:prefix namespaceURI:namespaceURI]; + + [namespaceWritten replaceObjectAtIndex:i withObject:NSBOOL(YES)]; + } else { + // already written namespace + } + } + } else { + @throw([NSException exceptionWithName:@"XMLWriterException" reason:@"No open start element" userInfo:NULL]); + } +} + +- (void)popNamespaceStack { + // step namespaces one level down + if ([namespaceCounts lastObject] != [namespaceCounts objectAtIndex:([namespaceCounts count] - 2)]) { + // remove namespaces which now are out of scope, i.e. between the current and the previus count + NSNumber *previousCount = [namespaceCounts lastObject]; + NSNumber *currentCount = [namespaceCounts objectAtIndex:([namespaceCounts count] - 2)]; + for (NSUInteger i = [previousCount unsignedIntegerValue] - 1; i >= [currentCount unsignedIntegerValue]; i--) { + NSString *removedNamespaceURI = [namespaceURIs objectAtIndex:i]; + NSString *removedPrefix = [namespaceURIPrefixMap objectForKey:removedNamespaceURI]; + + [prefixNamespaceURIMap removeObjectForKey:removedPrefix]; + [namespaceURIPrefixMap removeObjectForKey:removedNamespaceURI]; + + [namespaceURIs removeLastObject]; + + [namespaceWritten removeLastObject]; + } + } else { + // not necessary to remove any namespaces + } + [namespaceCounts removeLastObject]; +} + +- (void)setPrefix:(NSString *)prefix namespaceURI:(NSString *)namespaceURI { + if (!namespaceURI) { + // raise exception + @throw([NSException exceptionWithName:@"XMLWriterException" reason:@"Namespace cannot be NULL" userInfo:NULL]); + } + if (!prefix) { + // raise exception + @throw([NSException exceptionWithName:@"XMLWriterException" reason:@"Prefix cannot be NULL" userInfo:NULL]); + } + if ([namespaceURIPrefixMap objectForKey:namespaceURI]) { + // raise exception + @throw([NSException exceptionWithName:@"XMLWriterException" + reason:[NSString stringWithFormat:@"Name namespace %@ has already been set", namespaceURI] + userInfo:NULL]); + } + if ([prefixNamespaceURIMap objectForKey:prefix]) { + // raise exception + if ([prefix length]) { + @throw([NSException exceptionWithName:@"XMLWriterException" + reason:[NSString stringWithFormat:@"Prefix %@ has already been set", prefix] + userInfo:NULL]); + } else { + @throw([NSException exceptionWithName:@"XMLWriterException" reason:@"Default namespace has already been set" userInfo:NULL]); + } + } + + // increase the namespaces and add prefix mapping + [namespaceURIs addObject:namespaceURI]; + [namespaceURIPrefixMap setObject:prefix forKey:namespaceURI]; + [prefixNamespaceURIMap setObject:namespaceURI forKey:prefix]; + + if (openElement) { // write the namespace now + [self writeNamespaceToStream:prefix namespaceURI:namespaceURI]; + + [namespaceWritten addObject:NSBOOL(YES)]; + } else { + // write the namespace as the next start element is closed + [namespaceWritten addObject:NSBOOL(NO)]; + } +} + +- (NSString *)getPrefix:(NSString *)namespaceURI { + return [namespaceURIPrefixMap objectForKey:namespaceURI]; +} + +- (void)pushElementStack:(NSString *)namespaceURI localName:(NSString *)localName { + // save for end elements + [elementLocalNames addObject:localName]; + if (namespaceURI) { + [elementNamespaceURIs addObject:namespaceURI]; + } else { + [elementNamespaceURIs addObject:EMPTY_STRING]; + } +} + +- (void)popElementStack { + // remove element traces + [elementNamespaceURIs removeLastObject]; + [elementLocalNames removeLastObject]; +} + +- (void)writeStartDocument { + [self writeStartDocumentWithEncodingAndVersion:NULL version:NULL]; +} + +- (void)writeStartDocumentWithVersion:(NSString *)version { + [self writeStartDocumentWithEncodingAndVersion:NULL version:version]; +} + +- (void)writeStartDocumentWithEncodingAndVersion:(NSString *)aEncoding version:(NSString *)version { + if ([writer length] != 0) { + // raise exception - Starting document which is not empty + @throw([NSException exceptionWithName:@"XMLWriterException" reason:@"Document has already been started" userInfo:NULL]); + } else { + [self write:@""]; + } +} + +- (void)writeEndDocument { + while (level > 0) { + [self writeEndElement]; + } +} + +- (void)writeStartElement:(NSString *)localName { + [self writeStartElementWithNamespace:NULL localName:localName]; +} + +- (void)writeCloseStartElement { + if (openElement) { + [self writeCloseElement:NO]; + } else { + // raise exception + @throw([NSException exceptionWithName:@"XMLWriterException" reason:@"No open start element" userInfo:NULL]); + } +} + +- (void)writeCloseElement:(BOOL)empty { + [self writeNamespaceAttributes]; + [self pushNamespaceStack]; + + if (empty) { + [self write:@" />"]; + } else { + [self write:@">"]; + } + + openElement = NO; +} + +- (void)writeEndElement:(NSString *)localName { + [self writeEndElementWithNamespace:NULL localName:localName]; +} + +- (void)writeEndElement { + if (openElement && automaticEmptyElements) { + // go for + [self writeCloseElement:YES]; // write empty end element + + [self popNamespaceStack]; + [self popElementStack]; + + emptyElement = YES; + openElement = NO; + + level -= 1; + } else { + NSString *namespaceURI = [elementNamespaceURIs lastObject]; + NSString *localName = [elementLocalNames lastObject]; + + if (namespaceURI == EMPTY_STRING) { + [self writeEndElementWithNamespace:NULL localName:localName]; + } else { + [self writeEndElementWithNamespace:namespaceURI localName:localName]; + } + } +} + +- (void)writeStartElementWithNamespace:(NSString *)namespaceURI localName:(NSString *)localName { + if (openElement) { + [self writeCloseElement:NO]; + } + + [self writeLinebreak]; + [self writeIndentation]; + + [self write:@"<"]; + if (namespaceURI) { + NSString *prefix = [namespaceURIPrefixMap objectForKey:namespaceURI]; + + if (!prefix) { + // raise exception + @throw([NSException exceptionWithName:@"XMLWriterException" + reason:[NSString stringWithFormat:@"Unknown namespace URI %@", namespaceURI] + userInfo:NULL]); + } + + if ([prefix length]) { + [self write:prefix]; + [self write:@":"]; + } + } + [self write:localName]; + + [self pushElementStack:namespaceURI localName:localName]; + + openElement = YES; + emptyElement = YES; + level += 1; +} + +- (void)writeEndElementWithNamespace:(NSString *)namespaceURI localName:(NSString *)localName { + if (level <= 0) { + // raise exception + @throw([NSException exceptionWithName:@"XMLWriterException" reason:@"Cannot write more end elements than start elements." userInfo:NULL]); + } + + level -= 1; + + if (openElement) { + // go for + [self writeCloseElement:NO]; + } else { + if (emptyElement) { + // go for linebreak + indentation + + [self writeLinebreak]; + [self writeIndentation]; + } else { + // go for characters + } + } + + // write standard end element + [self write:@""]; + + [self popNamespaceStack]; + [self popElementStack]; + + emptyElement = YES; + openElement = NO; +} + +- (void)writeEmptyElement:(NSString *)localName { + if (openElement) { + [self writeCloseElement:NO]; + } + + [self writeLinebreak]; + [self writeIndentation]; + + [self write:@"<"]; + [self write:localName]; + [self write:@" />"]; + + emptyElement = YES; + openElement = NO; +} + +- (void)writeEmptyElementWithNamespace:(NSString *)namespaceURI localName:(NSString *)localName { + if (openElement) { + [self writeCloseElement:NO]; + } + + [self writeLinebreak]; + [self writeIndentation]; + + [self write:@"<"]; + + if (namespaceURI) { + NSString *prefix = [namespaceURIPrefixMap objectForKey:namespaceURI]; + + if (!prefix) { + // raise exception + @throw([NSException exceptionWithName:@"XMLWriterException" + reason:[NSString stringWithFormat:@"Unknown namespace URI %@", namespaceURI] + userInfo:NULL]); + } + + if ([prefix length]) { + [self write:prefix]; + [self write:@":"]; + } + } + + [self write:localName]; + [self write:@" />"]; + + emptyElement = YES; + openElement = NO; +} + +- (void)writeAttribute:(NSString *)localName value:(NSString *)value { + [self writeAttributeWithNamespace:NULL localName:localName value:value]; +} + +- (void)writeAttributeWithNamespace:(NSString *)namespaceURI localName:(NSString *)localName value:(NSString *)value { + if (openElement) { + [self write:@" "]; + + if (namespaceURI) { + NSString *prefix = [namespaceURIPrefixMap objectForKey:namespaceURI]; + if (!prefix) { + // raise exception + @throw([NSException exceptionWithName:@"XMLWriterException" + reason:[NSString stringWithFormat:@"Unknown namespace URI %@", namespaceURI] + userInfo:NULL]); + } + + if ([prefix length]) { + [self write:prefix]; + [self write:@":"]; + } + } + [self write:localName]; + [self write:@"=\""]; + [self writeEscape:value]; + [self write:@"\""]; + } else { + // raise expection + @throw([NSException exceptionWithName:@"XMLWriterException" reason:@"No open start element" userInfo:NULL]); + } +} + +- (void)setDefaultNamespace:(NSString *)namespaceURI { + [self setPrefix:EMPTY_STRING namespaceURI:namespaceURI]; +} + +- (void)writeNamespace:(NSString *)prefix namespaceURI:(NSString *)namespaceURI { + if (openElement) { + [self setPrefix:prefix namespaceURI:namespaceURI]; + } else { + // raise exception + @throw([NSException exceptionWithName:@"XMLWriterException" reason:@"No open start element" userInfo:NULL]); + } +} + +- (void)writeDefaultNamespace:(NSString *)namespaceURI { + [self writeNamespace:EMPTY_STRING namespaceURI:namespaceURI]; +} + +- (NSString *)getNamespaceURI:(NSString *)prefix { + return [prefixNamespaceURIMap objectForKey:prefix]; +} + +- (void)writeNamespaceToStream:(NSString *)prefix namespaceURI:(NSString *)namespaceURI { + if (openElement) { // write the namespace now + [self write:@" "]; + + NSString *xmlnsPrefix = [self getPrefix:XMLNS_NAMESPACE_URI]; + if (!xmlnsPrefix) { + // raise exception + @throw([NSException exceptionWithName:@"XMLWriterException" + reason:[NSString stringWithFormat:@"Cannot declare namespace without namespace %@", XMLNS_NAMESPACE_URI] + userInfo:NULL]); + } + + [self write:xmlnsPrefix]; // xmlns + if ([prefix length]) { + // write xmlns:prefix="namespaceURI" attribute + + [self write:@":"]; // colon + [self write:prefix]; // prefix + } else { + // write xmlns="namespaceURI" attribute + } + [self write:@"=\""]; + [self writeEscape:namespaceURI]; + [self write:@"\""]; + } else { + @throw([NSException exceptionWithName:@"XMLWriterException" reason:@"No open start element" userInfo:NULL]); + } +} + +- (void)writeCharacters:(NSString *)text { + if (openElement) { + [self writeCloseElement:NO]; + } + + [self writeEscape:text]; + + emptyElement = NO; +} + +- (void)writeComment:(NSString *)comment { + if (openElement) { + [self writeCloseElement:NO]; + } + [self write:@""]; + + emptyElement = NO; +} + +- (void)writeProcessingInstruction:(NSString *)target data:(NSString *)data { + if (openElement) { + [self writeCloseElement:NO]; + } + [self write:@""]; + + emptyElement = NO; +} + +- (void)writeCData:(NSString *)cdata { + if (openElement) { + [self writeCloseElement:NO]; + } + [self write:@""]; + + emptyElement = NO; +} + +- (void)write:(NSString *)value { + [writer appendString:value]; +} + +- (void)writeEscape:(NSString *)value { + if (!value) { + return; + } + + const UniChar *characters = CFStringGetCharactersPtr((CFStringRef)value); + + if (characters) { + // main flow + [self writeEscapeCharacters:characters length:[value length]]; + } else { + // we need to read/copy the characters for some reason, from the docs of CFStringGetCharactersPtr: + // A pointer to a buffer of Unicode character or NULL if the internal storage of the CFString does not allow this to be returned efficiently. + // Whether or not this function returns a valid pointer or NULL depends on many factors, all of which depend on how the string was created and + // its properties. In addition, the function result might change between different releases and on different platforms. So do not count on + // receiving a non- NULL result from this function under any circumstances (except when the object is created with + // CFStringCreateMutableWithExternalCharactersNoCopy). + + // we dont need the whole data length at once + NSMutableData *data = [NSMutableData dataWithLength:256 * sizeof(UniChar)]; + + if (!data) { + // raise exception - no more memory + @throw([NSException exceptionWithName:@"XMLWriterException" + reason:[NSString stringWithFormat:@"Could not allocate data buffer of %i unicode characters", 256] + userInfo:NULL]); + } + + NSUInteger count = 0; + do { + NSUInteger length; + if (count + 256 < [value length]) { + length = 256; + } else { + length = [value length] - count; + } + + [value getCharacters:[data mutableBytes] range:NSMakeRange(count, length)]; + + [self writeEscapeCharacters:[data bytes] length:length]; + + count += length; + } while (count < [value length]); + + // buffers autorelease + } +} + +- (void)writeEscapeCharacters:(const UniChar *)characters length:(NSUInteger)length { + NSUInteger rangeStart = 0; + CFIndex rangeLength = 0; + + for (NSUInteger i = 0; i < length; i++) { + UniChar c = characters[i]; + if (c <= 0xd7ff) { + if (c >= 0x20) { + switch (c) { + case 34: { + // write range if any + if (rangeLength) { + CFStringAppendCharacters((CFMutableStringRef)writer, characters + rangeStart, rangeLength); + } + [self write:@"""]; + + break; + } + // quot + case 38: { + // write range if any + if (rangeLength) { + CFStringAppendCharacters((CFMutableStringRef)writer, characters + rangeStart, rangeLength); + } + [self write:@"&"]; + + break; + } + // amp; + case 60: { + // write range if any + if (rangeLength) { + CFStringAppendCharacters((CFMutableStringRef)writer, characters + rangeStart, rangeLength); + } + + [self write:@"<"]; + + break; + } + // lt; + case 62: { + // write range if any + if (rangeLength) { + CFStringAppendCharacters((CFMutableStringRef)writer, characters + rangeStart, rangeLength); + } + + [self write:@">"]; + + break; + } + // gt; + default: { + // valid + rangeLength++; + + // note: we dont need to escape char 39 for ' because we use double quotes exclusively + + continue; + } + } + + // set range start to next + rangeLength = 0; + rangeStart = i + 1; + + } else { + if (c == '\n' || c == '\r' || c == '\t') { + // valid; + rangeLength++; + + continue; + } else { + // invalid, skip + } + } + } else if (c <= 0xFFFD) { + // valid + rangeLength++; + + continue; + } else { + // invalid, skip + } + + // write range if any + if (rangeLength) { + CFStringAppendCharacters((CFMutableStringRef)writer, characters + rangeStart, rangeLength); + } + + // set range start to next + rangeLength = 0; + rangeStart = i + 1; + } + + // write range if any + if (rangeLength) { + // main flow will probably write all characters here + CFStringAppendCharacters((CFMutableStringRef)writer, characters + rangeStart, rangeLength); + } +} + +- (void)writeLinebreak { + if (lineBreak) { + [self write:lineBreak]; + } +} + +- (void)writeIndentation { + if (indentation) { + for (int i = 0; i < level; i++) { + [self write:indentation]; + } + } +} + +- (void)flush { + // do nothing +} + +- (void)close { + // do nothing +} + +- (NSMutableString *)toString { + return writer; +} + +- (NSData *)toData { + if (encoding) { + return [writer dataUsingEncoding:CFStringConvertEncodingToNSStringEncoding(CFStringConvertIANACharSetNameToEncoding((CFStringRef)encoding)) + allowLossyConversion:NO]; + } else { + return [writer dataUsingEncoding:NSUTF8StringEncoding allowLossyConversion:NO]; + } +} + +- (void)setPrettyPrinting:(NSString *)aIndentation withLineBreak:(NSString *)aLineBreak { + self.indentation = aIndentation; + self.lineBreak = aLineBreak; +} + +@end diff --git a/Pods/QCloudCore/QCloudCore/Classes/Base/QCLOUDRestNet/DNSCache/QCloudDomain.h b/Pods/QCloudCore/QCloudCore/Classes/Base/QCLOUDRestNet/DNSCache/QCloudDomain.h new file mode 100644 index 0000000..163c026 --- /dev/null +++ b/Pods/QCloudCore/QCloudCore/Classes/Base/QCLOUDRestNet/DNSCache/QCloudDomain.h @@ -0,0 +1,16 @@ +// +// QCloudDomain.h +// TestHttps +// +// Created by tencent on 16/2/17. +// Copyright © 2016年 dzpqzb. All rights reserved. +// + +#import + +@interface QCloudDomain : NSObject +@property (nonatomic, strong, readonly) NSString *domain; ++ (instancetype)new UNAVAILABLE_ATTRIBUTE; +- (instancetype)init UNAVAILABLE_ATTRIBUTE; +- (instancetype)initWithDomain:(NSString *)domain; +@end diff --git a/Pods/QCloudCore/QCloudCore/Classes/Base/QCLOUDRestNet/DNSCache/QCloudDomain.m b/Pods/QCloudCore/QCloudCore/Classes/Base/QCLOUDRestNet/DNSCache/QCloudDomain.m new file mode 100644 index 0000000..9af0fc8 --- /dev/null +++ b/Pods/QCloudCore/QCloudCore/Classes/Base/QCLOUDRestNet/DNSCache/QCloudDomain.m @@ -0,0 +1,20 @@ +// +// QCloudDomain.m +// TestHttps +// +// Created by tencent on 16/2/17. +// Copyright © 2016年 dzpqzb. All rights reserved. +// + +#import "QCloudDomain.h" + +@implementation QCloudDomain +- (instancetype)initWithDomain:(NSString *)domain { + self = [super init]; + if (!self) { + return self; + } + _domain = domain; + return self; +} +@end diff --git a/Pods/QCloudCore/QCloudCore/Classes/Base/QCLOUDRestNet/DNSCache/QCloudHosts.h b/Pods/QCloudCore/QCloudCore/Classes/Base/QCLOUDRestNet/DNSCache/QCloudHosts.h new file mode 100644 index 0000000..fbb9271 --- /dev/null +++ b/Pods/QCloudCore/QCloudCore/Classes/Base/QCLOUDRestNet/DNSCache/QCloudHosts.h @@ -0,0 +1,16 @@ +// +// QCloudHosts.h +// TestHttps +// +// Created by tencent on 16/2/17. +// Copyright © 2016年 dzpqzb. All rights reserved. +// + +#import + +@interface QCloudHosts : NSObject +- (void)putDomain:(NSString *)domain ip:(NSString *)ip; +- (NSArray *)queryIPForDomain:(NSString *)domain; +- (BOOL)checkContainsIP:(NSString *)ip; +- (void)clean; +@end diff --git a/Pods/QCloudCore/QCloudCore/Classes/Base/QCLOUDRestNet/DNSCache/QCloudHosts.m b/Pods/QCloudCore/QCloudCore/Classes/Base/QCLOUDRestNet/DNSCache/QCloudHosts.m new file mode 100644 index 0000000..6573552 --- /dev/null +++ b/Pods/QCloudCore/QCloudCore/Classes/Base/QCLOUDRestNet/DNSCache/QCloudHosts.m @@ -0,0 +1,85 @@ +// +// QCloudHosts.m +// TestHttps +// +// Created by tencent on 16/2/17. +// Copyright © 2016年 dzpqzb. All rights reserved. +// + +#import "QCloudHosts.h" +#import "QCloudDomain.h" +@implementation QCloudHosts { + NSMutableDictionary *_cache; + dispatch_queue_t _hostChangeQueue; +} + +- (instancetype)init { + self = [super init]; + if (!self) { + return self; + } + _hostChangeQueue = dispatch_queue_create("com.tencent.qcloud.host.resolve", DISPATCH_QUEUE_CONCURRENT); + _cache = [NSMutableDictionary new]; + return self; +} + +- (void)putDomain:(NSString *)domain ip:(NSString *)ip { +#ifdef DEBUG + NSParameterAssert(domain); + NSParameterAssert(ip); +#else + if (!domain) { + return; + } + if (!ip) { + return; + } +#endif + dispatch_barrier_async(_hostChangeQueue, ^{ + NSMutableArray *array = [self->_cache objectForKey:domain]; + if (!array) { + array = [NSMutableArray new]; + } + if (![array containsObject:ip]) { + [array addObject:ip]; + } + self->_cache[domain] = array; + }); +} + +- (NSArray *)queryIPForDomain:(NSString *)domain { + __block NSArray *array = nil; + dispatch_sync(_hostChangeQueue, ^(void) { + array = [[self->_cache objectForKey:domain] copy]; + }); + return array; +} + +- (BOOL)checkContainsIP:(NSString *)ip { + if (!ip) { + return NO; + } + __block BOOL contained = NO; + dispatch_sync(_hostChangeQueue, ^{ + for (NSArray *array in self->_cache.allValues) { + for (NSString *cachedIP in array) { + if ([cachedIP isEqualToString:ip]) { + contained = YES; + break; + } + } + if (contained) { + break; + } + } + }); + return contained; +} + +- (void)clean { + dispatch_barrier_async(_hostChangeQueue, ^{ + [self->_cache removeAllObjects]; + }); +} + +@end diff --git a/Pods/QCloudCore/QCloudCore/Classes/Base/QCLOUDRestNet/DNSCache/QCloudHttpDNS.h b/Pods/QCloudCore/QCloudCore/Classes/Base/QCLOUDRestNet/DNSCache/QCloudHttpDNS.h new file mode 100644 index 0000000..f4a2dbc --- /dev/null +++ b/Pods/QCloudCore/QCloudCore/Classes/Base/QCLOUDRestNet/DNSCache/QCloudHttpDNS.h @@ -0,0 +1,78 @@ +// +// QCloudHttpDNS.h +// TestHttps +// +// Created by tencent on 16/2/17. +// Copyright © 2016年 dzpqzb. All rights reserved. +// + +#import + +extern NSString *const kQCloudHttpDNSCacheReady; +extern NSString *const kQCloudHttpDNSHost; + +@class QCloudHosts; + +@protocol QCloudHTTPDNSProtocol +@required + +/** + 解析domain,返回对应的ip地址。注意ip地址需要是有效的形式(xxx.xxx.xxx.xxx)否则会导致出错 + + @param domain 需要解析的域名 + @return ip地址 + */ +- (NSString *)resolveDomain:(NSString *)domain; +@end + +@interface QCloudHttpDNS : NSObject +@property (nonatomic, strong, readonly) QCloudHosts *hosts; + +/** + 实现自定义解析ip的代理,当在记录里查询不到对应的host时,会向代理去再次请求解析。 + */ +@property (nonatomic, weak) id delegate; ++ (instancetype)shareDNS; +/** + 对于跟定的域名进行DNS缓存操作 + @param domain 需要缓存IP的域名 + @param error 如果过程出错,该字段表示错误信息 + @return 是否解析DNS成功 + */ +- (BOOL)resolveDomain:(NSString *)domain error:(NSError **)error; + +/** + 对于URLRequest进行IP重定向,如果改URLRequest原始指向的URL中的host对应的IP已经被解析了,则进行重定向操作,如果没有直接返回原始URLReqest + @param request 需要被重定向的URLRequest + @return 如果改URLRequest原始指向的URL中的host对应的IP已经被解析了,则进行重定向操作,如果没有直接返回原始URLReqest + */ +- (NSMutableURLRequest *)resolveURLRequestIfCan:(NSMutableURLRequest *)request; + +/** + 判断一个IP是否是被解析出来,且被信任的 + @param ip 需要进行判断的IP + @return 是否被信任 + */ +- (BOOL)isTrustIP:(NSString *)ip; + +/** + 手动添加一条hosts记录 + + @param ip ip地址 + @param domain 域名 + */ +- (void)setIp:(NSString *)ip forDomain:(NSString *)domain; + +- (NSString *)queryIPForHost:(NSString *)host; + +- (NSArray *)queryIPsForHost:(NSString *)host; + +/** + Ping IP列表尝试拿到一个可用的IP + */ +- (NSString *)findHealthyIpFor:(NSString *)host; +/** + 获取host对应的ip列表 +*/ +- (void)prepareFetchIPListForHost:(NSString *)host port:(NSString *)port; +@end diff --git a/Pods/QCloudCore/QCloudCore/Classes/Base/QCLOUDRestNet/DNSCache/QCloudHttpDNS.m b/Pods/QCloudCore/QCloudCore/Classes/Base/QCLOUDRestNet/DNSCache/QCloudHttpDNS.m new file mode 100644 index 0000000..ec4fa87 --- /dev/null +++ b/Pods/QCloudCore/QCloudCore/Classes/Base/QCLOUDRestNet/DNSCache/QCloudHttpDNS.m @@ -0,0 +1,271 @@ +// +// QCloudHttpDNS.m +// TestHttps +// +// Created by tencent on 16/2/17. +// Copyright © 2016年 dzpqzb. All rights reserved. +// + +#import "QCloudHttpDNS.h" +#import "QCloudHosts.h" +#import "QCloudLogger.h" +#import "NSError+QCloudNetworking.h" +#import "QCloudPingTester.h" +#include +#include +#include +#include +#import "QCloudThreadSafeMutableDictionary.h" +#pragma GCC diagnostic push +#pragma GCC diagnostic ignored "-Wdeprecated-declarations" +#define IP_ADDR_IPv4 @"&&ipv4" +#define IP_ADDR_IPv6 @"&&ipv6" +NSString *const kQCloudHttpDNSCacheReady = @"kQCloudHttpDNSCacheReady"; +NSString *const kQCloudHttpDNSHost = @"host"; + +BOOL QCloudCheckIPVaild(NSString *ip) { + return YES; +} +@interface QCloudHttpDNS () +@property (nonatomic, strong) NSMutableArray *pingTesters; +@end + +@implementation QCloudHttpDNS { + QCloudHosts *_hosts; + QCloudThreadSafeMutableDictionary *_ipHostMap; + ; +} ++ (instancetype)shareDNS { + static QCloudHttpDNS *dns = nil; + static dispatch_once_t onceToken; + dispatch_once(&onceToken, ^{ + dns = [QCloudHttpDNS new]; + }); + return dns; +} + +- (QCloudHosts *)hosts { + return _hosts; +} +- (instancetype)init { + self = [super init]; + if (!self) { + return self; + } + _hosts = [[QCloudHosts alloc] init]; + _ipHostMap = [[QCloudThreadSafeMutableDictionary alloc] init]; + _pingTesters = [NSMutableArray array]; + return self; +} + +- (BOOL)resolveDomain:(NSString *)domain error:(NSError **)error { + NSString *ip; + if (self.delegate && [self.delegate respondsToSelector:@selector(resolveDomain:)]) { + ip = [self.delegate resolveDomain:domain]; + } + if (!ip) { + QCloudLogDebugE(@"HTTP",@"Cannot resolve domain %@", domain); + if (NULL != error) { + *error = [NSError qcloud_errorWithCode:kCFURLErrorDNSLookupFailed + message:[NSString stringWithFormat:@"NetworkException:无法解析域名 %@", domain]]; + } + return NO; + } + + if (QCloudCheckIPVaild(ip)) { + [_hosts putDomain:domain ip:[ip stringByTrimmingCharactersInSet:[NSCharacterSet characterSetWithCharactersInString:@" "]]]; + } + [[NSNotificationCenter defaultCenter] postNotificationName:kQCloudHttpDNSCacheReady object:nil userInfo:@{ kQCloudHttpDNSHost : domain }]; + return YES; +} + +- (NSString *)queryIPForHost:(NSString *)host { + NSArray *hosts = [_hosts queryIPForDomain:host]; + // always use the last(lastest) one + if (hosts.count) { + return hosts.lastObject; + } + return nil; +} + +- (NSArray *)queryIPsForHost:(NSString *)host { + NSArray *ips = [_ipHostMap objectForKey:host]; + NSMutableArray * ipStrs = [NSMutableArray new]; + for (NSString *ip in ips) { + [ipStrs addObject:[NSString stringWithFormat:@"%@/%@",host,ip]]; + } + return ipStrs.copy; +} + +- (NSMutableURLRequest *)resolveURLRequestIfCan:(NSMutableURLRequest *)request { + if (!request) { + return request; + } + NSString *host = request.URL.host; + NSString *ip = [self queryIPForHost:host]; + // Give it second chance to reslove domain by itself + if (!ip) { + NSError *resolveError; + [self resolveDomain:request.URL.host error:&resolveError]; + } + ip = [self queryIPForHost:host]; + + if (!ip) { + return request; + } + NSString *url = request.URL.absoluteString; + NSRange range = [url rangeOfString:host]; + NSString *originHost = request.URL.host; + if (range.location != NSNotFound && range.length > 0) { + url = [url stringByReplacingOccurrencesOfString:host withString:ip options:0 range:range]; + NSMutableURLRequest *mReq = [request mutableCopy]; + mReq.URL = [NSURL URLWithString:url]; + [mReq setValue:originHost forHTTPHeaderField:@"Host"]; + return mReq; + } else { + return request; + } +} + +- (void)setIp:(NSString *)ip forDomain:(NSString *)domain { + if (QCloudCheckIPVaild(ip)) { + [_hosts putDomain:domain ip:ip]; + } +} + +- (BOOL)isTrustIP:(NSString *)ip { + NSString *regex = @"\\b(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\b"; + NSPredicate *predictate = [NSPredicate predicateWithFormat:@"SELF MATCHES %@", regex]; + BOOL containsIP = [predictate evaluateWithObject:ip]; + if (!containsIP) { + return NO; + } + + return [_hosts checkContainsIP:ip]; +} + +- (NSString *)findHealthyIpFor:(NSString *)host { + NSArray *ipList = [_ipHostMap objectForKey:host]; + if (ipList.count) { + dispatch_semaphore_t sema = dispatch_semaphore_create(0); + [self pingIp:ipList.lastObject host:host fulfil:sema]; + dispatch_wait(sema, DISPATCH_TIME_FOREVER); + return [self queryIPForHost:host]; + } + return nil; +} + +- (void)pingIp:(NSString *)ip host:(NSString *)host fulfil:(dispatch_semaphore_t)sema { + dispatch_async(dispatch_get_main_queue(), ^{ + NSString *ipAdd; + if ([ip hasSuffix:IP_ADDR_IPv4]) { + ipAdd = [ip stringByReplacingOccurrencesOfString:IP_ADDR_IPv4 withString:@""]; + } else if ([ip hasSuffix:IP_ADDR_IPv6]) { + ipAdd = [ip stringByReplacingOccurrencesOfString:IP_ADDR_IPv6 withString:@""]; + } + QCloudPingTester *pingTester = [[QCloudPingTester alloc] initWithIp:ipAdd host:host fulfil:sema]; + pingTester.delegate = self; + [self->_pingTesters addObject:pingTester]; + [pingTester startPing]; + }); +} + +- (void)pingTester:(QCloudPingTester *)pingTester didPingSucccessWithTime:(float)time withError:(NSError *)error { + if (!error) { + QCloudLogInfoPB(@"HTTP",@"ping的延迟是--->%f", time); + [pingTester stopPing]; + [self setIp:pingTester.ip forDomain:pingTester.host]; + dispatch_semaphore_signal(pingTester.sema); + } else { + QCloudLogInfoPB(@"HTTP",@"网络不通过ip[%@]", pingTester.ip); + [pingTester stopPing]; + NSMutableArray *ipList = [[_ipHostMap objectForKey:pingTester.host] mutableCopy]; + if (ipList.count) { + [ipList removeLastObject]; + } + [_ipHostMap setObject:ipList forKey:pingTester.host]; + if (ipList.count) { + [self pingIp:ipList.lastObject host:pingTester.host fulfil:pingTester.sema]; + } else { + dispatch_semaphore_signal(pingTester.sema); + } + } + [_pingTesters removeObject:pingTester]; +} + +- (void)prepareFetchIPListForHost:(NSString *)host port:(NSString *)port { + NSArray *list = [_ipHostMap objectForKey:host]; + if (![_ipHostMap objectForKey:host] || !list.count) { + list = getIPListFromToHost(host.UTF8String, port.UTF8String); + if (list) { + [_ipHostMap setObject:list forKey:host]; + } + } +} + +NSArray *getIPListFromToHost(const char *mHost, const char *mPort) { + NSMutableArray *ipList = [NSMutableArray array]; + if (nil == mHost) + return NULL; + const char *newChar = "No"; + //返回的结构体信息链表 + struct addrinfo *res0; + // 配置需要返回的结构体信息组成 + struct addrinfo hints; + // 返回的地址信息 + struct addrinfo *res; + int n; + + // 置空结构体 + memset(&hints, 0, sizeof(hints)); + + hints.ai_flags = AI_DEFAULT; + hints.ai_family = PF_UNSPEC; + hints.ai_socktype = SOCK_STREAM; + + if ((n = getaddrinfo(mHost, "http", &hints, &res0)) != 0) { + QCloudLogInfoPB(@"HTTP",@"getaddrinfo error: %s", gai_strerror(n)); + return NULL; + } + + struct sockaddr_in6 *addr6; + struct sockaddr_in *addr; + NSString *NewStr = NULL; + char ipbuf[32]; + for (res = res0; res; res = res->ai_next) { + if (res->ai_family == AF_INET6) { + addr6 = (struct sockaddr_in6 *)res->ai_addr; + newChar = inet_ntop(AF_INET6, &addr6->sin6_addr, ipbuf, sizeof(ipbuf)); + if(newChar == NULL){ + continue; + } + NSString *TempA = [[NSString alloc] initWithCString:(const char *)newChar encoding:NSASCIIStringEncoding]; + NSString *TempB = [NSString stringWithUTF8String:IP_ADDR_IPv6.UTF8String]; + + NewStr = [TempA stringByAppendingString:TempB]; + + } else { + addr = (struct sockaddr_in *)res->ai_addr; + newChar = inet_ntop(AF_INET, &addr->sin_addr, ipbuf, sizeof(ipbuf)); + if(newChar == NULL){ + continue; + } + NSString *TempA = [[NSString alloc] initWithCString:(const char *)newChar encoding:NSASCIIStringEncoding]; + NSString *TempB = [NSString stringWithUTF8String:IP_ADDR_IPv4.UTF8String]; + + NewStr = [TempA stringByAppendingString:TempB]; + } + + [ipList addObject:NewStr]; + QCloudLogInfoPB(@"HTTP",@"host[%s] ipList:%@", mHost, ipList); + } + + if(res0!=NULL){ + freeaddrinfo(res0); + } + + return ipList; +} +@end + +#pragma GCC diagnostic pop diff --git a/Pods/QCloudCore/QCloudCore/Classes/Base/QCLOUDRestNet/DNSCache/QCloudPingTester.h b/Pods/QCloudCore/QCloudCore/Classes/Base/QCLOUDRestNet/DNSCache/QCloudPingTester.h new file mode 100644 index 0000000..f2462cc --- /dev/null +++ b/Pods/QCloudCore/QCloudCore/Classes/Base/QCLOUDRestNet/DNSCache/QCloudPingTester.h @@ -0,0 +1,40 @@ + +// +// WHPingTester.h +// BigVPN +// +// Created by wanghe on 2017/5/11. +// Copyright © 2017年 wanghe. All rights reserved. +// + +#import +#import "QCloudSimplePing.h" +@class QCloudPingTester; +@protocol WHPingDelegate +@optional +- (void)pingTester:(QCloudPingTester *)pingTest didPingSucccessWithTime:(float)time withError:(NSError *)error; +@end + +@interface QCloudPingTester : NSObject +@property (nonatomic, weak, readwrite) id delegate; +@property (nonatomic, readonly) NSString *ip; +@property (nonatomic, readonly) NSString *host; +@property (nonatomic) dispatch_semaphore_t sema; +- (instancetype)init NS_UNAVAILABLE; +- (instancetype)initWithIp:(NSString *)ip host:(NSString *)host fulfil:(dispatch_semaphore_t)sema NS_DESIGNATED_INITIALIZER; + +- (void)startPing; +- (void)stopPing; +@end + +typedef NS_ENUM(NSUInteger, WHPingStatus) { + WHPingStatusSending = 0 << 0, + WHPingStatusTimeout = 1 << 1, + WHPingStatusSended = 2 << 2, +}; + +@interface QCloudPingItem : NSObject +//@property(nonatomic, assign) WHPingStatus status; +@property (nonatomic, assign) uint16_t sequence; + +@end diff --git a/Pods/QCloudCore/QCloudCore/Classes/Base/QCLOUDRestNet/DNSCache/QCloudPingTester.m b/Pods/QCloudCore/QCloudCore/Classes/Base/QCLOUDRestNet/DNSCache/QCloudPingTester.m new file mode 100644 index 0000000..5cc743d --- /dev/null +++ b/Pods/QCloudCore/QCloudCore/Classes/Base/QCLOUDRestNet/DNSCache/QCloudPingTester.m @@ -0,0 +1,108 @@ + + +// +// WHPingTester.m +// BigVPN +// +// Created by wanghe on 2017/5/11. +// Copyright © 2017年 wanghe. All rights reserved. +// + +#import "QCloudPingTester.h" +#import "QCloudCore.h" +@interface QCloudPingTester () { + NSTimer *_timer; + NSDate *_beginDate; +} +@property (nonatomic, strong) QCloudSimplePing *simplePing; +@property (nonatomic) NSString *ip; +@property (nonatomic) NSString *host; +@property (nonatomic, strong) NSMutableArray *pingItems; +@end + +@implementation QCloudPingTester + +- (instancetype)initWithIp:(NSString *)ip host:(NSString *)host fulfil:(dispatch_semaphore_t)sema { + if (self = [super init]) { + self.ip = ip; + self.host = host; + self.sema = sema; + self.simplePing = [[QCloudSimplePing alloc] initWithHostName:ip]; + self.simplePing.delegate = self; + self.simplePing.addressStyle = SimplePingAddressStyleAny; + + self.pingItems = [NSMutableArray new]; + } + return self; +} + +- (void)startPing { + [self.simplePing start]; +} + +- (void)stopPing { + [_timer invalidate]; + _timer = nil; + [self.simplePing stop]; +} + +- (void)actionTimer { + _timer = [NSTimer scheduledTimerWithTimeInterval:1 target:self selector:@selector(sendPingData) userInfo:nil repeats:YES]; +} + +- (void)sendPingData { + [self.simplePing sendPingWithData:nil]; +} + +#pragma mark Ping Delegate +- (void)simplePing:(QCloudSimplePing *)pinger didStartWithAddress:(NSData *)address { + [self actionTimer]; +} + +- (void)simplePing:(QCloudSimplePing *)pinger didFailWithError:(NSError *)error { + QCloudLogError(@"[ERROR]ping失败,error: %@", error); +} + +- (void)simplePing:(QCloudSimplePing *)pinger didSendPacket:(NSData *)packet sequenceNumber:(uint16_t)sequenceNumber { + QCloudPingItem *item = [QCloudPingItem new]; + item.sequence = sequenceNumber; + [self.pingItems addObject:item]; + + _beginDate = [NSDate date]; + dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(1.5 * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{ + if ([self.pingItems containsObject:item]) { + QCloudLogError(@"[ERROR]超时---->"); + [self.pingItems removeObject:item]; + if (self.delegate != nil && [self.delegate respondsToSelector:@selector(pingTester:didPingSucccessWithTime:withError:)]) { + [self.delegate pingTester:self didPingSucccessWithTime:0 withError:[NSError errorWithDomain:NSURLErrorDomain code:111 userInfo:nil]]; + } + } + }); +} +- (void)simplePing:(QCloudSimplePing *)pinger didFailToSendPacket:(NSData *)packet sequenceNumber:(uint16_t)sequenceNumber error:(NSError *)error { + QCloudLogError(@"[ERROR]发包失败:%@", error); + if (self.delegate != nil && [self.delegate respondsToSelector:@selector(pingTester:didPingSucccessWithTime:withError:)]) { + [self.delegate pingTester:self didPingSucccessWithTime:0 withError:error]; + } +} + +- (void)simplePing:(QCloudSimplePing *)pinger didReceivePingResponsePacket:(NSData *)packet sequenceNumber:(uint16_t)sequenceNumber { + float delayTime = [[NSDate date] timeIntervalSinceDate:_beginDate] * 1000; + [self.pingItems enumerateObjectsUsingBlock:^(QCloudPingItem *_Nonnull obj, NSUInteger idx, BOOL *_Nonnull stop) { + if (obj.sequence == sequenceNumber) { + [self.pingItems removeObject:obj]; + } + }]; + if (self.delegate != nil && [self.delegate respondsToSelector:@selector(pingTester:didPingSucccessWithTime:withError:)]) { + [self.delegate pingTester:self didPingSucccessWithTime:delayTime withError:nil]; + } +} + +- (void)simplePing:(QCloudSimplePing *)pinger didReceiveUnexpectedPacket:(NSData *)packet { +} + +@end + +@implementation QCloudPingItem + +@end diff --git a/Pods/QCloudCore/QCloudCore/Classes/Base/QCLOUDRestNet/DNSCache/QCloudSimplePing.h b/Pods/QCloudCore/QCloudCore/Classes/Base/QCLOUDRestNet/DNSCache/QCloudSimplePing.h new file mode 100644 index 0000000..91f06ca --- /dev/null +++ b/Pods/QCloudCore/QCloudCore/Classes/Base/QCLOUDRestNet/DNSCache/QCloudSimplePing.h @@ -0,0 +1,275 @@ + + +/* + Copyright (C) 2016 Apple Inc. All Rights Reserved. + See LICENSE.txt for this sample’s licensing information + + Abstract: + An object wrapper around the low-level BSD Sockets ping function. + */ + +@import Foundation; + +#include // for __Check_Compile_Time +#include + +NS_ASSUME_NONNULL_BEGIN + +@protocol SimplePingDelegate; + +/*! Controls the IP address version used by SimplePing instances. + */ + +typedef NS_ENUM(NSInteger, SimplePingAddressStyle) { + SimplePingAddressStyleAny, ///< Use the first IPv4 or IPv6 address found; the default. + SimplePingAddressStyleICMPv4, ///< Use the first IPv4 address found. + SimplePingAddressStyleICMPv6 ///< Use the first IPv6 address found. +}; + +/*! An object wrapper around the low-level BSD Sockets ping function. + * \details To use the class create an instance, set the delegate and call `-start` + * to start the instance on the current run loop. If things go well you'll soon get the + * `-simplePing:didStartWithAddress:` delegate callback. From there you can can call + * `-sendPingWithData:` to send a ping and you'll receive the + * `-simplePing:didReceivePingResponsePacket:sequenceNumber:` and + * `-simplePing:didReceiveUnexpectedPacket:` delegate callbacks as ICMP packets arrive. + * + * The class can be used from any thread but the use of any single instance must be + * confined to a specific thread and that thread must run its run loop. + */ + +@interface QCloudSimplePing : NSObject + +- (instancetype)init NS_UNAVAILABLE; + +/*! Initialise the object to ping the specified host. + * \param hostName The DNS name of the host to ping; an IPv4 or IPv6 address in string form will + * work here. + * \returns The initialised object. + */ + +- (instancetype)initWithHostName:(NSString *)hostName NS_DESIGNATED_INITIALIZER; + +/*! A copy of the value passed to `-initWithHostName:`. + */ + +@property (nonatomic, copy, readonly) NSString *hostName; + +/*! The delegate for this object. + * \details Delegate callbacks are schedule in the default run loop mode of the run loop of the + * thread that calls `-start`. + */ + +@property (nonatomic, weak, readwrite, nullable) id delegate; + +/*! Controls the IP address version used by the object. + * \details You should set this value before starting the object. + */ + +@property (nonatomic, assign, readwrite) SimplePingAddressStyle addressStyle; + +/*! The address being pinged. + * \details The contents of the NSData is a (struct sockaddr) of some form. The + * value is nil while the object is stopped and remains nil on start until + * `-simplePing:didStartWithAddress:` is called. + */ + +@property (nonatomic, copy, readonly, nullable) NSData *hostAddress; + +/*! The address family for `hostAddress`, or `AF_UNSPEC` if that's nil. + */ + +@property (nonatomic, assign, readonly) sa_family_t hostAddressFamily; + +/*! The identifier used by pings by this object. + * \details When you create an instance of this object it generates a random identifier + * that it uses to identify its own pings. + */ + +@property (nonatomic, assign, readonly) uint16_t identifier; + +/*! The next sequence number to be used by this object. + * \details This value starts at zero and increments each time you send a ping (safely + * wrapping back to zero if necessary). The sequence number is included in the ping, + * allowing you to match up requests and responses, and thus calculate ping times and + * so on. + */ + +@property (nonatomic, assign, readonly) uint16_t nextSequenceNumber; + +/*! Starts the object. + * \details You should set up the delegate and any ping parameters before calling this. + * + * If things go well you'll soon get the `-simplePing:didStartWithAddress:` delegate + * callback, at which point you can start sending pings (via `-sendPingWithData:`) and + * will start receiving ICMP packets (either ping responses, via the + * `-simplePing:didReceivePingResponsePacket:sequenceNumber:` delegate callback, or + * unsolicited ICMP packets, via the `-simplePing:didReceiveUnexpectedPacket:` delegate + * callback). + * + * If the object fails to start, typically because `hostName` doesn't resolve, you'll get + * the `-simplePing:didFailWithError:` delegate callback. + * + * It is not correct to start an already started object. + */ + +- (void)start; + +/*! Sends a ping packet containing the specified data. + * \details Sends an actual ping. + * + * The object must be started when you call this method and, on starting the object, you must + * wait for the `-simplePing:didStartWithAddress:` delegate callback before calling it. + * \param data Some data to include in the ping packet, after the ICMP header, or nil if you + * want the packet to include a standard 56 byte payload (resulting in a standard 64 byte + * ping). + */ + +- (void)sendPingWithData:(nullable NSData *)data; + +/*! Stops the object. + * \details You should call this when you're done pinging. + * + * It's safe to call this on an object that's stopped. + */ + +- (void)stop; + +@end + +/*! A delegate protocol for the SimplePing class. + */ + +@protocol SimplePingDelegate + +@optional + +/*! A SimplePing delegate callback, called once the object has started up. + * \details This is called shortly after you start the object to tell you that the + * object has successfully started. On receiving this callback, you can call + * `-sendPingWithData:` to send pings. + * + * If the object didn't start, `-simplePing:didFailWithError:` is called instead. + * \param pinger The object issuing the callback. + * \param address The address that's being pinged; at the time this delegate callback + * is made, this will have the same value as the `hostAddress` property. + */ + +- (void)simplePing:(QCloudSimplePing *)pinger didStartWithAddress:(NSData *)address; + +/*! A SimplePing delegate callback, called if the object fails to start up. + * \details This is called shortly after you start the object to tell you that the + * object has failed to start. The most likely cause of failure is a problem + * resolving `hostName`. + * + * By the time this callback is called, the object has stopped (that is, you don't + * need to call `-stop` yourself). + * \param pinger The object issuing the callback. + * \param error Describes the failure. + */ + +- (void)simplePing:(QCloudSimplePing *)pinger didFailWithError:(NSError *)error; + +/*! A SimplePing delegate callback, called when the object has successfully sent a ping packet. + * \details Each call to `-sendPingWithData:` will result in either a + * `-simplePing:didSendPacket:sequenceNumber:` delegate callback or a + * `-simplePing:didFailToSendPacket:sequenceNumber:error:` delegate callback (unless you + * stop the object before you get the callback). These callbacks are currently delivered + * synchronously from within `-sendPingWithData:`, but this synchronous behaviour is not + * considered API. + * \param pinger The object issuing the callback. + * \param packet The packet that was sent; this includes the ICMP header (`ICMPHeader`) and the + * data you passed to `-sendPingWithData:` but does not include any IP-level headers. + * \param sequenceNumber The ICMP sequence number of that packet. + */ + +- (void)simplePing:(QCloudSimplePing *)pinger didSendPacket:(NSData *)packet sequenceNumber:(uint16_t)sequenceNumber; + +/*! A SimplePing delegate callback, called when the object fails to send a ping packet. + * \details Each call to `-sendPingWithData:` will result in either a + * `-simplePing:didSendPacket:sequenceNumber:` delegate callback or a + * `-simplePing:didFailToSendPacket:sequenceNumber:error:` delegate callback (unless you + * stop the object before you get the callback). These callbacks are currently delivered + * synchronously from within `-sendPingWithData:`, but this synchronous behaviour is not + * considered API. + * \param pinger The object issuing the callback. + * \param packet The packet that was not sent; see `-simplePing:didSendPacket:sequenceNumber:` + * for details. + * \param sequenceNumber The ICMP sequence number of that packet. + * \param error Describes the failure. + */ + +- (void)simplePing:(QCloudSimplePing *)pinger didFailToSendPacket:(NSData *)packet sequenceNumber:(uint16_t)sequenceNumber error:(NSError *)error; + +/*! A SimplePing delegate callback, called when the object receives a ping response. + * \details If the object receives an ping response that matches a ping request that it + * sent, it informs the delegate via this callback. Matching is primarily done based on + * the ICMP identifier, although other criteria are used as well. + * \param pinger The object issuing the callback. + * \param packet The packet received; this includes the ICMP header (`ICMPHeader`) and any data that + * follows that in the ICMP message but does not include any IP-level headers. + * \param sequenceNumber The ICMP sequence number of that packet. + */ + +- (void)simplePing:(QCloudSimplePing *)pinger didReceivePingResponsePacket:(NSData *)packet sequenceNumber:(uint16_t)sequenceNumber; + +/*! A SimplePing delegate callback, called when the object receives an unmatched ICMP message. + * \details If the object receives an ICMP message that does not match a ping request that it + * sent, it informs the delegate via this callback. The nature of ICMP handling in a + * BSD kernel makes this a common event because, when an ICMP message arrives, it is + * delivered to all ICMP sockets. + * + * IMPORTANT: This callback is especially common when using IPv6 because IPv6 uses ICMP + * for important network management functions. For example, IPv6 routers periodically + * send out Router Advertisement (RA) packets via Neighbor Discovery Protocol (NDP), which + * is implemented on top of ICMP. + * + * For more on matching, see the discussion associated with + * `-simplePing:didReceivePingResponsePacket:sequenceNumber:`. + * \param pinger The object issuing the callback. + * \param packet The packet received; this includes the ICMP header (`ICMPHeader`) and any data that + * follows that in the ICMP message but does not include any IP-level headers. + */ + +- (void)simplePing:(QCloudSimplePing *)pinger didReceiveUnexpectedPacket:(NSData *)packet; + +@end + +#pragma mark * ICMP On-The-Wire Format + +/*! Describes the on-the-wire header format for an ICMP ping. + * \details This defines the header structure of ping packets on the wire. Both IPv4 and + * IPv6 use the same basic structure. + * + * This is declared in the header because clients of SimplePing might want to use + * it parse received ping packets. + */ + +struct ICMPHeader { + uint8_t type; + uint8_t code; + uint16_t checksum; + uint16_t identifier; + uint16_t sequenceNumber; + // data... +}; +typedef struct ICMPHeader ICMPHeader; + +__Check_Compile_Time(sizeof(ICMPHeader) == 8); +__Check_Compile_Time(offsetof(ICMPHeader, type) == 0); +__Check_Compile_Time(offsetof(ICMPHeader, code) == 1); +__Check_Compile_Time(offsetof(ICMPHeader, checksum) == 2); +__Check_Compile_Time(offsetof(ICMPHeader, identifier) == 4); +__Check_Compile_Time(offsetof(ICMPHeader, sequenceNumber) == 6); + +enum { + ICMPv4TypeEchoRequest = 8, ///< The ICMP `type` for a ping request; in this case `code` is always 0. + ICMPv4TypeEchoReply = 0 ///< The ICMP `type` for a ping response; in this case `code` is always 0. +}; + +enum { + ICMPv6TypeEchoRequest = 128, ///< The ICMP `type` for a ping request; in this case `code` is always 0. + ICMPv6TypeEchoReply = 129 ///< The ICMP `type` for a ping response; in this case `code` is always 0. +}; + +NS_ASSUME_NONNULL_END diff --git a/Pods/QCloudCore/QCloudCore/Classes/Base/QCLOUDRestNet/DNSCache/QCloudSimplePing.m b/Pods/QCloudCore/QCloudCore/Classes/Base/QCLOUDRestNet/DNSCache/QCloudSimplePing.m new file mode 100644 index 0000000..214bd59 --- /dev/null +++ b/Pods/QCloudCore/QCloudCore/Classes/Base/QCLOUDRestNet/DNSCache/QCloudSimplePing.m @@ -0,0 +1,788 @@ + + +#import "QCloudSimplePing.h" + +#include +#include +#include + +#pragma mark * IPv4 and ICMPv4 On-The-Wire Format + +/*! Describes the on-the-wire header format for an IPv4 packet. + * \details This defines the header structure of IPv4 packets on the wire. We need + * this in order to skip this header in the IPv4 case, where the kernel passes + * it to us for no obvious reason. + */ + +struct IPv4Header { + uint8_t versionAndHeaderLength; + uint8_t differentiatedServices; + uint16_t totalLength; + uint16_t identification; + uint16_t flagsAndFragmentOffset; + uint8_t timeToLive; + uint8_t protocol; + uint16_t headerChecksum; + uint8_t sourceAddress[4]; + uint8_t destinationAddress[4]; + // options... + // data... +}; +typedef struct IPv4Header IPv4Header; + +__Check_Compile_Time(sizeof(IPv4Header) == 20); +__Check_Compile_Time(offsetof(IPv4Header, versionAndHeaderLength) == 0); +__Check_Compile_Time(offsetof(IPv4Header, differentiatedServices) == 1); +__Check_Compile_Time(offsetof(IPv4Header, totalLength) == 2); +__Check_Compile_Time(offsetof(IPv4Header, identification) == 4); +__Check_Compile_Time(offsetof(IPv4Header, flagsAndFragmentOffset) == 6); +__Check_Compile_Time(offsetof(IPv4Header, timeToLive) == 8); +__Check_Compile_Time(offsetof(IPv4Header, protocol) == 9); +__Check_Compile_Time(offsetof(IPv4Header, headerChecksum) == 10); +__Check_Compile_Time(offsetof(IPv4Header, sourceAddress) == 12); +__Check_Compile_Time(offsetof(IPv4Header, destinationAddress) == 16); + +/*! Calculates an IP checksum. + * \details This is the standard BSD checksum code, modified to use modern types. + * \param buffer A pointer to the data to checksum. + * \param bufferLen The length of that data. + * \returns The checksum value, in network byte order. + */ + +static uint16_t in_cksum(const void *buffer, size_t bufferLen) { + // + size_t bytesLeft; + int32_t sum; + const uint16_t *cursor; + union { + uint16_t us; + uint8_t uc[2]; + } last; + uint16_t answer; + + bytesLeft = bufferLen; + sum = 0; + cursor = buffer; + + /* + * Our algorithm is simple, using a 32 bit accumulator (sum), we add + * sequential 16 bit words to it, and at the end, fold back all the + * carry bits from the top 16 bits into the lower 16 bits. + */ + while (bytesLeft > 1) { + sum += *cursor; + cursor += 1; + bytesLeft -= 2; + } + + /* mop up an odd byte, if necessary */ + if (bytesLeft == 1) { + last.uc[0] = *(const uint8_t *)cursor; + last.uc[1] = 0; + sum += last.us; + } + + /* add back carry outs from top 16 bits to low 16 bits */ + sum = (sum >> 16) + (sum & 0xffff); /* add hi 16 to low 16 */ + sum += (sum >> 16); /* add carry */ + answer = (uint16_t)~sum; /* truncate to 16 bits */ + + return answer; +} + +#pragma mark * SimplePing + +@interface QCloudSimplePing () + +// read/write versions of public properties + +@property (nonatomic, copy, readwrite, nullable) NSData *hostAddress; +@property (nonatomic, assign, readwrite) uint16_t nextSequenceNumber; + +// private properties + +/*! True if nextSequenceNumber has wrapped from 65535 to 0. + */ + +@property (nonatomic, assign, readwrite) BOOL nextSequenceNumberHasWrapped; + +/*! A host object for name-to-address resolution. + */ + +@property (nonatomic, strong, readwrite, nullable) CFHostRef host __attribute__((NSObject)); + +/*! A socket object for ICMP send and receive. + */ + +@property (nonatomic, strong, readwrite, nullable) CFSocketRef socket __attribute__((NSObject)); + +@end + +@implementation QCloudSimplePing + +- (instancetype)initWithHostName:(NSString *)hostName { + NSParameterAssert(hostName != nil); + self = [super init]; + if (self != nil) { + self->_hostName = [hostName copy]; + self->_identifier = (uint16_t)arc4random(); + } + return self; +} + +- (void)dealloc { + [self stop]; + // Double check that -stop took care of _host and _socket. + assert(self->_host == NULL); + assert(self->_socket == NULL); +} + +- (sa_family_t)hostAddressFamily { + sa_family_t result; + + result = AF_UNSPEC; + if ((self.hostAddress != nil) && (self.hostAddress.length >= sizeof(struct sockaddr))) { + result = ((const struct sockaddr *)self.hostAddress.bytes)->sa_family; + } + return result; +} + +/*! Shuts down the pinger object and tell the delegate about the error. + * \param error Describes the failure. + */ + +- (void)didFailWithError:(NSError *)error { + id strongDelegate; + + assert(error != nil); + + // We retain ourselves temporarily because it's common for the delegate method + // to release its last reference to us, which causes -dealloc to be called here. + // If we then reference self on the return path, things go badly. I don't think + // that happens currently, but I've got into the habit of doing this as a + // defensive measure. + + CFAutorelease(CFBridgingRetain(self)); + + [self stop]; + strongDelegate = self.delegate; + if ((strongDelegate != nil) && [strongDelegate respondsToSelector:@selector(simplePing:didFailWithError:)]) { + [strongDelegate simplePing:self didFailWithError:error]; + } +} + +/*! Shuts down the pinger object and tell the delegate about the error. + * \details This converts the CFStreamError to an NSError and then call through to + * -didFailWithError: to do the real work. + * \param streamError Describes the failure. + */ + +- (void)didFailWithHostStreamError:(CFStreamError)streamError { + NSDictionary *userInfo; + NSError *error; + + if (streamError.domain == kCFStreamErrorDomainNetDB) { + userInfo = @{ (id)kCFGetAddrInfoFailureKey : @(streamError.error) }; + } else { + userInfo = nil; + } + error = [NSError errorWithDomain:(NSString *)kCFErrorDomainCFNetwork code:kCFHostErrorUnknown userInfo:userInfo]; + + [self didFailWithError:error]; +} + +/*! Builds a ping packet from the supplied parameters. + * \param type The packet type, which is different for IPv4 and IPv6. + * \param payload Data to place after the ICMP header. + * \param requiresChecksum Determines whether a checksum is calculated (IPv4) or not (IPv6). + * \returns A ping packet suitable to be passed to the kernel. + */ + +- (NSData *)pingPacketWithType:(uint8_t)type payload:(NSData *)payload requiresChecksum:(BOOL)requiresChecksum { + NSMutableData *packet; + ICMPHeader *icmpPtr; + + packet = [NSMutableData dataWithLength:sizeof(*icmpPtr) + payload.length]; + if (packet == nil) { + return nil; + } + + icmpPtr = packet.mutableBytes; + icmpPtr->type = type; + icmpPtr->code = 0; + icmpPtr->checksum = 0; + icmpPtr->identifier = OSSwapHostToBigInt16(self.identifier); + icmpPtr->sequenceNumber = OSSwapHostToBigInt16(self.nextSequenceNumber); + memcpy(&icmpPtr[1], [payload bytes], [payload length]); + + if (requiresChecksum) { + // The IP checksum routine returns a 16-bit number that's already in correct byte order + // (due to wacky 1's complement maths), so we just put it into the packet as a 16-bit unit. + + icmpPtr->checksum = in_cksum(packet.bytes, packet.length); + } + + return packet; +} + +- (void)sendPingWithData:(NSData *)data { + int err; + NSData *payload; + NSData *packet; + ssize_t bytesSent; + id strongDelegate; + + // data may be nil +// NSParameterAssert(self.hostAddress != nil); // gotta wait for -simplePing:didStartWithAddress: + + if (self.hostAddress == nil) { + return; + } + // Construct the ping packet. + + payload = data; + if (payload == nil) { + payload = [[NSString stringWithFormat:@"%28zd bottles of beer on the wall", (ssize_t)99 - (size_t)(self.nextSequenceNumber % 100)] + dataUsingEncoding:NSASCIIStringEncoding]; + assert(payload != nil); + + // Our dummy payload is sized so that the resulting ICMP packet, including the ICMPHeader, is + // 64-bytes, which makes it easier to recognise our packets on the wire. + + assert([payload length] == 56); + } + + switch (self.hostAddressFamily) { + case AF_INET: { + packet = [self pingPacketWithType:ICMPv4TypeEchoRequest payload:payload requiresChecksum:YES]; + } break; + case AF_INET6: { + packet = [self pingPacketWithType:ICMPv6TypeEchoRequest payload:payload requiresChecksum:NO]; + } break; + default: { + return; + } break; + } +// assert(packet != nil); + if (packet == nil) { + return; + } + + // Send the packet. + + if (self.socket == NULL) { + bytesSent = -1; + err = EBADF; + } else { + bytesSent + = sendto(CFSocketGetNative(self.socket), packet.bytes, packet.length, 0, self.hostAddress.bytes, (socklen_t)self.hostAddress.length); + err = 0; + if (bytesSent < 0) { + err = errno; + } + } + + // Handle the results of the send. + + strongDelegate = self.delegate; + if ((bytesSent > 0) && (((NSUInteger)bytesSent) == packet.length)) { + // Complete success. Tell the client. + + if ((strongDelegate != nil) && [strongDelegate respondsToSelector:@selector(simplePing:didSendPacket:sequenceNumber:)]) { + [strongDelegate simplePing:self didSendPacket:packet sequenceNumber:self.nextSequenceNumber]; + } + } else { + NSError *error; + + // Some sort of failure. Tell the client. + + if (err == 0) { + err = ENOBUFS; // This is not a hugely descriptor error, alas. + } + error = [NSError errorWithDomain:NSPOSIXErrorDomain code:err userInfo:nil]; + if ((strongDelegate != nil) && [strongDelegate respondsToSelector:@selector(simplePing:didFailToSendPacket:sequenceNumber:error:)]) { + [strongDelegate simplePing:self didFailToSendPacket:packet sequenceNumber:self.nextSequenceNumber error:error]; + } + } + + self.nextSequenceNumber += 1; + if (self.nextSequenceNumber == 0) { + self.nextSequenceNumberHasWrapped = YES; + } +} + +/*! Calculates the offset of the ICMP header within an IPv4 packet. + * \details In the IPv4 case the kernel returns us a buffer that includes the + * IPv4 header. We're not interested in that, so we have to skip over it. + * This code does a rough check of the IPv4 header and, if it looks OK, + * returns the offset of the ICMP header. + * \param packet The IPv4 packet, as returned to us by the kernel. + * \returns The offset of the ICMP header, or NSNotFound. + */ + ++ (NSUInteger)icmpHeaderOffsetInIPv4Packet:(NSData *)packet { + // Returns the offset of the ICMPv4Header within an IP packet. + NSUInteger result; + const struct IPv4Header *ipPtr; + size_t ipHeaderLength; + + result = NSNotFound; + if (packet.length >= (sizeof(IPv4Header) + sizeof(ICMPHeader))) { + ipPtr = (const IPv4Header *)packet.bytes; + if (((ipPtr->versionAndHeaderLength & 0xF0) == 0x40) && // IPv4 + (ipPtr->protocol == IPPROTO_ICMP)) { + ipHeaderLength = (ipPtr->versionAndHeaderLength & 0x0F) * sizeof(uint32_t); + if (packet.length >= (ipHeaderLength + sizeof(ICMPHeader))) { + result = ipHeaderLength; + } + } + } + return result; +} + +/*! Checks whether the specified sequence number is one we sent. + * \param sequenceNumber The incoming sequence number. + * \returns YES if the sequence number looks like one we sent. + */ + +- (BOOL)validateSequenceNumber:(uint16_t)sequenceNumber { + if (self.nextSequenceNumberHasWrapped) { + // If the sequence numbers have wrapped that we can't reliably check + // whether this is a sequence number we sent. Rather, we check to see + // whether the sequence number is within the last 120 sequence numbers + // we sent. Note that the uint16_t subtraction here does the right + // thing regardless of the wrapping. + // + // Why 120? Well, if we send one ping per second, 120 is 2 minutes, which + // is the standard "max time a packet can bounce around the Internet" value. + return ((uint16_t)(self.nextSequenceNumber - sequenceNumber)) < (uint16_t)120; + } else { + return sequenceNumber < self.nextSequenceNumber; + } +} + +/*! Checks whether an incoming IPv4 packet looks like a ping response. + * \details This routine modifies this `packet` data! It does this for two reasons: + * + * * It needs to zero out the `checksum` field of the ICMPHeader in order to do + * its checksum calculation. + * + * * It removes the IPv4 header from the front of the packet. + * \param packet The IPv4 packet, as returned to us by the kernel. + * \param sequenceNumberPtr A pointer to a place to start the ICMP sequence number. + * \returns YES if the packet looks like a reasonable IPv4 ping response. + */ + +- (BOOL)validatePing4ResponsePacket:(NSMutableData *)packet sequenceNumber:(uint16_t *)sequenceNumberPtr { + BOOL result; + NSUInteger icmpHeaderOffset; + ICMPHeader *icmpPtr; + uint16_t receivedChecksum; + uint16_t calculatedChecksum; + + result = NO; + + icmpHeaderOffset = [[self class] icmpHeaderOffsetInIPv4Packet:packet]; + if (icmpHeaderOffset != NSNotFound) { + icmpPtr = (struct ICMPHeader *)(((uint8_t *)packet.mutableBytes) + icmpHeaderOffset); + + receivedChecksum = icmpPtr->checksum; + icmpPtr->checksum = 0; + calculatedChecksum = in_cksum(icmpPtr, packet.length - icmpHeaderOffset); + icmpPtr->checksum = receivedChecksum; + + if (receivedChecksum == calculatedChecksum) { + if ((icmpPtr->type == ICMPv4TypeEchoReply) && (icmpPtr->code == 0)) { + if (OSSwapBigToHostInt16(icmpPtr->identifier) == self.identifier) { + uint16_t sequenceNumber; + + sequenceNumber = OSSwapBigToHostInt16(icmpPtr->sequenceNumber); + if ([self validateSequenceNumber:sequenceNumber]) { + // Remove the IPv4 header off the front of the data we received, leaving us with + // just the ICMP header and the ping payload. + [packet replaceBytesInRange:NSMakeRange(0, icmpHeaderOffset) withBytes:NULL length:0]; + + *sequenceNumberPtr = sequenceNumber; + result = YES; + } + } + } + } + } + + return result; +} + +/*! Checks whether an incoming IPv6 packet looks like a ping response. + * \param packet The IPv6 packet, as returned to us by the kernel; note that this routine + * could modify this data but does not need to in the IPv6 case. + * \param sequenceNumberPtr A pointer to a place to start the ICMP sequence number. + * \returns YES if the packet looks like a reasonable IPv4 ping response. + */ + +- (BOOL)validatePing6ResponsePacket:(NSMutableData *)packet sequenceNumber:(uint16_t *)sequenceNumberPtr { + BOOL result; + const ICMPHeader *icmpPtr; + + result = NO; + + if (packet.length >= sizeof(*icmpPtr)) { + icmpPtr = packet.bytes; + + // In the IPv6 case we don't check the checksum because that's hard (we need to + // cook up an IPv6 pseudo header and we don't have the ingredients) and unnecessary + // (the kernel has already done this check). + + if ((icmpPtr->type == ICMPv6TypeEchoReply) && (icmpPtr->code == 0)) { + if (OSSwapBigToHostInt16(icmpPtr->identifier) == self.identifier) { + uint16_t sequenceNumber; + + sequenceNumber = OSSwapBigToHostInt16(icmpPtr->sequenceNumber); + if ([self validateSequenceNumber:sequenceNumber]) { + *sequenceNumberPtr = sequenceNumber; + result = YES; + } + } + } + } + return result; +} + +/*! Checks whether an incoming packet looks like a ping response. + * \param packet The packet, as returned to us by the kernel; note that may end up modifying + * this data. + * \param sequenceNumberPtr A pointer to a place to start the ICMP sequence number. + * \returns YES if the packet looks like a reasonable IPv4 ping response. + */ + +- (BOOL)validatePingResponsePacket:(NSMutableData *)packet sequenceNumber:(uint16_t *)sequenceNumberPtr { + BOOL result; + + switch (self.hostAddressFamily) { + case AF_INET: { + result = [self validatePing4ResponsePacket:packet sequenceNumber:sequenceNumberPtr]; + } break; + case AF_INET6: { + result = [self validatePing6ResponsePacket:packet sequenceNumber:sequenceNumberPtr]; + } break; + default: { +// assert(NO); + result = NO; + } break; + } + return result; +} + +/*! Reads data from the ICMP socket. + * \details Called by the socket handling code (SocketReadCallback) to process an ICMP + * message waiting on the socket. + */ + +- (void)readData { + int err; + struct sockaddr_storage addr; + socklen_t addrLen; + ssize_t bytesRead; + void *buffer; + enum { kBufferSize = 65535 }; + + // 65535 is the maximum IP packet size, which seems like a reasonable bound + // here (plus it's what uses). + + buffer = malloc(kBufferSize); +// assert(buffer != NULL); + if (buffer == NULL) { + return; + } + + // Actually read the data. We use recvfrom(), and thus get back the source address, + // but we don't actually do anything with it. It would be trivial to pass it to + // the delegate but we don't need it in this example. + + addrLen = sizeof(addr); + bytesRead = recvfrom(CFSocketGetNative(self.socket), buffer, kBufferSize, 0, (struct sockaddr *)&addr, &addrLen); + err = 0; + if (bytesRead < 0) { + err = errno; + } + + // Process the data we read. + + if (bytesRead > 0) { + NSMutableData *packet; + id strongDelegate; + uint16_t sequenceNumber; + + packet = [NSMutableData dataWithBytes:buffer length:(NSUInteger)bytesRead]; +// assert(packet != nil); + if (packet == nil) { + return; + } + + // We got some data, pass it up to our client. + + strongDelegate = self.delegate; + if ([self validatePingResponsePacket:packet sequenceNumber:&sequenceNumber]) { + if ((strongDelegate != nil) && [strongDelegate respondsToSelector:@selector(simplePing:didReceivePingResponsePacket:sequenceNumber:)]) { + [strongDelegate simplePing:self didReceivePingResponsePacket:packet sequenceNumber:sequenceNumber]; + } + } else { + if ((strongDelegate != nil) && [strongDelegate respondsToSelector:@selector(simplePing:didReceiveUnexpectedPacket:)]) { + [strongDelegate simplePing:self didReceiveUnexpectedPacket:packet]; + } + } + } else { + // We failed to read the data, so shut everything down. + + if (err == 0) { + err = EPIPE; + } + [self didFailWithError:[NSError errorWithDomain:NSPOSIXErrorDomain code:err userInfo:nil]]; + } + + free(buffer); + + // Note that we don't loop back trying to read more data. Rather, we just + // let CFSocket call us again. +} + +/*! The callback for our CFSocket object. + * \details This simply routes the call to our `-readData` method. + * \param s See the documentation for CFSocketCallBack. + * \param type See the documentation for CFSocketCallBack. + * \param address See the documentation for CFSocketCallBack. + * \param data See the documentation for CFSocketCallBack. + * \param info See the documentation for CFSocketCallBack; this is actually a pointer to the + * 'owning' object. + */ + +static void SocketReadCallback(CFSocketRef s, CFSocketCallBackType type, CFDataRef address, const void *data, void *info) { + // This C routine is called by CFSocket when there's data waiting on our + // ICMP socket. It just redirects the call to Objective-C code. + QCloudSimplePing *obj; + + obj = (__bridge QCloudSimplePing *)info; + assert([obj isKindOfClass:[QCloudSimplePing class]]); + +#pragma unused(s) + assert(s == obj.socket); +#pragma unused(type) + assert(type == kCFSocketReadCallBack); +#pragma unused(address) + assert(address == nil); +#pragma unused(data) + assert(data == nil); + + [obj readData]; +} + +/*! Starts the send and receive infrastructure. + * \details This is called once we've successfully resolved `hostName` in to + * `hostAddress`. It's responsible for setting up the socket for sending and + * receiving pings. + */ + +- (void)startWithHostAddress { + int err; + int fd; + +// assert(self.hostAddress != nil); + if (self.hostAddress == nil) { + return; + } + + // Open the socket. + + fd = -1; + err = 0; + switch (self.hostAddressFamily) { + case AF_INET: { + fd = socket(AF_INET, SOCK_DGRAM, IPPROTO_ICMP); + if (fd < 0) { + err = errno; + } + } break; + case AF_INET6: { + fd = socket(AF_INET6, SOCK_DGRAM, IPPROTO_ICMPV6); + if (fd < 0) { + err = errno; + } + } break; + default: { + err = EPROTONOSUPPORT; + } break; + } + + if (err != 0) { + [self didFailWithError:[NSError errorWithDomain:NSPOSIXErrorDomain code:err userInfo:nil]]; + } else { + CFSocketContext context = { 0, (__bridge void *)(self), NULL, NULL, NULL }; + CFRunLoopSourceRef rls; + id strongDelegate; + + // Wrap it in a CFSocket and schedule it on the runloop. + + self.socket = (CFSocketRef)CFAutorelease(CFSocketCreateWithNative(NULL, fd, kCFSocketReadCallBack, SocketReadCallback, &context)); + assert(self.socket != NULL); + + // The socket will now take care of cleaning up our file descriptor. + + assert(CFSocketGetSocketFlags(self.socket) & kCFSocketCloseOnInvalidate); + fd = -1; + + rls = CFSocketCreateRunLoopSource(NULL, self.socket, 0); + assert(rls != NULL); + + CFRunLoopAddSource(CFRunLoopGetCurrent(), rls, kCFRunLoopDefaultMode); + + CFRelease(rls); + + strongDelegate = self.delegate; + if ((strongDelegate != nil) && [strongDelegate respondsToSelector:@selector(simplePing:didStartWithAddress:)]) { + [strongDelegate simplePing:self didStartWithAddress:self.hostAddress]; + } + } + assert(fd == -1); +} + +/*! Processes the results of our name-to-address resolution. + * \details Called by our CFHost resolution callback (HostResolveCallback) when host + * resolution is complete. We just latch the first appropriate address and kick + * off the send and receive infrastructure. + */ + +- (void)hostResolutionDone { + Boolean resolved; + NSArray *addresses; + + // Find the first appropriate address. + + addresses = (__bridge NSArray *)CFHostGetAddressing(self.host, &resolved); + if (resolved && (addresses != nil)) { + resolved = false; + for (NSData *address in addresses) { + const struct sockaddr *addrPtr; + + addrPtr = (const struct sockaddr *)address.bytes; + if (address.length >= sizeof(struct sockaddr)) { + switch (addrPtr->sa_family) { + case AF_INET: { + if (self.addressStyle != SimplePingAddressStyleICMPv6) { + self.hostAddress = address; + resolved = true; + } + } break; + case AF_INET6: { + if (self.addressStyle != SimplePingAddressStyleICMPv4) { + self.hostAddress = address; + resolved = true; + } + } break; + } + } + if (resolved) { + break; + } + } + } + + // We're done resolving, so shut that down. + + [self stopHostResolution]; + + // If all is OK, start the send and receive infrastructure, otherwise stop. + + if (resolved) { + [self startWithHostAddress]; + } else { + [self didFailWithError:[NSError errorWithDomain:(NSString *)kCFErrorDomainCFNetwork code:kCFHostErrorHostNotFound userInfo:nil]]; + } +} + +/*! The callback for our CFHost object. + * \details This simply routes the call to our `-hostResolutionDone` or + * `-didFailWithHostStreamError:` methods. + * \param theHost See the documentation for CFHostClientCallBack. + * \param typeInfo See the documentation for CFHostClientCallBack. + * \param error See the documentation for CFHostClientCallBack. + * \param info See the documentation for CFHostClientCallBack; this is actually a pointer to + * the 'owning' object. + */ + +static void HostResolveCallback(CFHostRef theHost, CFHostInfoType typeInfo, const CFStreamError *error, void *info) { + // This C routine is called by CFHost when the host resolution is complete. + // It just redirects the call to the appropriate Objective-C method. + QCloudSimplePing *obj; + + obj = (__bridge QCloudSimplePing *)info; + assert([obj isKindOfClass:[QCloudSimplePing class]]); + +#pragma unused(theHost) + assert(theHost == obj.host); +#pragma unused(typeInfo) + assert(typeInfo == kCFHostAddresses); + + if ((error != NULL) && (error->domain != 0)) { + [obj didFailWithHostStreamError:*error]; + } else { + [obj hostResolutionDone]; + } +} + +- (void)start { + Boolean success; + CFHostClientContext context = { 0, (__bridge void *)(self), NULL, NULL, NULL }; + CFStreamError streamError; + + assert(self.host == NULL); + assert(self.hostAddress == nil); + + self.host = (CFHostRef)CFAutorelease(CFHostCreateWithName(NULL, (__bridge CFStringRef)self.hostName)); +// assert(self.host != NULL); + if (self.host == NULL) { + return; + } + + CFHostSetClient(self.host, HostResolveCallback, &context); + + CFHostScheduleWithRunLoop(self.host, CFRunLoopGetCurrent(), kCFRunLoopDefaultMode); + + success = CFHostStartInfoResolution(self.host, kCFHostAddresses, &streamError); + if (!success) { + [self didFailWithHostStreamError:streamError]; + } +} + +/*! Stops the name-to-address resolution infrastructure. + */ + +- (void)stopHostResolution { + // Shut down the CFHost. + if (self.host != NULL) { + CFHostSetClient(self.host, NULL, NULL); + CFHostUnscheduleFromRunLoop(self.host, CFRunLoopGetCurrent(), kCFRunLoopDefaultMode); + self.host = NULL; + } +} + +/*! Stops the send and receive infrastructure. + */ + +- (void)stopSocket { + if (self.socket != NULL) { + CFSocketInvalidate(self.socket); + self.socket = NULL; + } +} + +- (void)stop { + [self stopHostResolution]; + [self stopSocket]; + + // Junk the host address on stop. If the client calls -start again, we'll + // re-resolve the host name. + + self.hostAddress = NULL; +} + +@end diff --git a/Pods/QCloudCore/QCloudCore/Classes/Base/QCLOUDRestNet/DataForm/QCloudFileOffsetBody.h b/Pods/QCloudCore/QCloudCore/Classes/Base/QCLOUDRestNet/DataForm/QCloudFileOffsetBody.h new file mode 100644 index 0000000..5e128bb --- /dev/null +++ b/Pods/QCloudCore/QCloudCore/Classes/Base/QCLOUDRestNet/DataForm/QCloudFileOffsetBody.h @@ -0,0 +1,17 @@ +// +// QCloudFileOffsetBody.h +// Pods +// +// Created by Dong Zhao on 2017/5/23. +// +// + +#import + +@interface QCloudFileOffsetBody : NSObject +@property (nonatomic, strong, readonly) NSURL *fileURL; +@property (nonatomic, assign, readonly) NSUInteger offset; +@property (nonatomic, assign, readonly) NSUInteger sliceLength; +@property (nonatomic, assign) NSUInteger index; +- (instancetype)initWithFile:(NSURL *)fileURL offset:(NSUInteger)offset slice:(NSUInteger)slice; +@end diff --git a/Pods/QCloudCore/QCloudCore/Classes/Base/QCLOUDRestNet/DataForm/QCloudFileOffsetBody.m b/Pods/QCloudCore/QCloudCore/Classes/Base/QCLOUDRestNet/DataForm/QCloudFileOffsetBody.m new file mode 100644 index 0000000..fb39ebe --- /dev/null +++ b/Pods/QCloudCore/QCloudCore/Classes/Base/QCLOUDRestNet/DataForm/QCloudFileOffsetBody.m @@ -0,0 +1,23 @@ +// +// QCloudFileOffsetBody.m +// Pods +// +// Created by Dong Zhao on 2017/5/23. +// +// + +#import "QCloudFileOffsetBody.h" + +@implementation QCloudFileOffsetBody +- (instancetype)initWithFile:(NSURL *)fileURL offset:(NSUInteger)offset slice:(NSUInteger)slice { + self = [super init]; + if (!self) { + return self; + } + _fileURL = fileURL; + _offset = offset; + _sliceLength = slice; + return self; +} + +@end diff --git a/Pods/QCloudCore/QCloudCore/Classes/Base/QCLOUDRestNet/DataForm/QCloudFileOffsetStream.h b/Pods/QCloudCore/QCloudCore/Classes/Base/QCLOUDRestNet/DataForm/QCloudFileOffsetStream.h new file mode 100644 index 0000000..87969e2 --- /dev/null +++ b/Pods/QCloudCore/QCloudCore/Classes/Base/QCLOUDRestNet/DataForm/QCloudFileOffsetStream.h @@ -0,0 +1,19 @@ +// +// QCloudFileOffsetStream.h +// Pods +// +// Created by Dong Zhao on 2017/5/22. +// +// + +#import + +@interface QCloudFileOffsetStream : NSInputStream +@property (nonatomic, assign) NSUInteger offset; +@property (nonatomic, assign) NSUInteger sliceLength; +- (instancetype)initWithFileAtPath:(NSString *)path NS_UNAVAILABLE; +- (instancetype)initWithData:(NSData *)data NS_UNAVAILABLE; +- (instancetype)initWithURL:(NSURL *)url NS_UNAVAILABLE; + +- (instancetype)initWithFileAtPath:(NSString *)path offset:(NSUInteger)offset slice:(NSUInteger)sliceLength; +@end diff --git a/Pods/QCloudCore/QCloudCore/Classes/Base/QCLOUDRestNet/DataForm/QCloudFileOffsetStream.m b/Pods/QCloudCore/QCloudCore/Classes/Base/QCLOUDRestNet/DataForm/QCloudFileOffsetStream.m new file mode 100644 index 0000000..2a9443b --- /dev/null +++ b/Pods/QCloudCore/QCloudCore/Classes/Base/QCLOUDRestNet/DataForm/QCloudFileOffsetStream.m @@ -0,0 +1,127 @@ +// +// QCloudFileOffsetStream.m +// Pods +// +// Created by Dong Zhao on 2017/5/22. +// +// + +#import "QCloudFileOffsetStream.h" +#import "QCloudFileUtils.h" +@interface NSStream () +@property (readwrite) NSStreamStatus streamStatus; +@property (readwrite, copy) NSError *streamError; +@end + +@interface NSInputStream () +- (void)open; +- (void)close; +@end +@interface QCloudFileOffsetStream () +@property (nonatomic, assign) NSUInteger contentLength; +@property (nonatomic, assign) NSUInteger readLength; +@property (nonatomic, assign) NSStreamStatus status; +@property (nonatomic, strong) NSFileHandle *fileReadHandler; +@property (nonatomic, strong) NSString *path; +@end + +@implementation QCloudFileOffsetStream +@synthesize streamError; +@synthesize streamStatus; + +- (instancetype)initWithFileAtPath:(NSString *)path offset:(NSUInteger)offset slice:(NSUInteger)sliceLength { + self = [super init]; + if (!self) { + return nil; + } + _offset = offset; + _sliceLength = sliceLength; + _contentLength = QCloudFileSize(path); + _path = path; + return self; +} + +- (void)open { + _fileReadHandler = [NSFileHandle fileHandleForReadingAtPath:self.path]; + [_fileReadHandler seekToFileOffset:_offset]; + self.status = NSStreamStatusOpen; + _readLength = 0; +} + +- (NSInteger)read:(uint8_t *)buffer maxLength:(NSUInteger)len { + if (self.status == NSStreamStatusClosed) { + return 0; + } + NSUInteger ureadLength = _sliceLength - _readLength; + NSUInteger willReadLength = MIN(ureadLength, len); + if (willReadLength <= 0) { + return 0; + } + NSData *data = [_fileReadHandler readDataOfLength:willReadLength]; + memcpy(buffer, [data bytes], willReadLength); + _readLength += willReadLength; + return willReadLength; +} + +- (NSError *)streamError { + return nil; +} + +- (NSStreamStatus)streamStatus { + if (![self hasBytesAvailable]) { + self.status = NSStreamStatusAtEnd; + } + return self.status; +} + +- (void)close { + [_fileReadHandler closeFile]; + _fileReadHandler = nil; + self.status = NSStreamStatusClosed; + _readLength = 0; +} +- (BOOL)getBuffer:(uint8_t *_Nullable *_Nonnull)buffer length:(NSUInteger *)len { + return NO; +} +- (BOOL)hasBytesAvailable { + if (_offset + _readLength >= _contentLength) { + return NO; + } + if (_readLength >= _sliceLength) { + return NO; + } + if (_offset + _readLength < _sliceLength) { + return YES; + } + return NO; +} + +- (id)propertyForKey:(__unused NSString *)key { + return nil; +} + +- (BOOL)setProperty:(__unused id)property forKey:(__unused NSString *)key { + return NO; +} + +- (void)scheduleInRunLoop:(__unused NSRunLoop *)aRunLoop forMode:(__unused NSString *)mode { +} + +- (void)removeFromRunLoop:(__unused NSRunLoop *)aRunLoop forMode:(__unused NSString *)mode { +} + +#pragma mark - Undocumented CFReadStream Bridged Methods + +- (void)_scheduleInCFRunLoop:(__unused CFRunLoopRef)aRunLoop forMode:(__unused CFStringRef)aMode { +} + +- (void)_unscheduleFromCFRunLoop:(__unused CFRunLoopRef)aRunLoop forMode:(__unused CFStringRef)aMode { +} + +- (BOOL)_setCFClientFlags:(__unused CFOptionFlags)inFlags + callback:(__unused CFReadStreamClientCallBack)inCallback + context:(__unused CFStreamClientContext *)inContext { + return NO; +} + +@end diff --git a/Pods/QCloudCore/QCloudCore/Classes/Base/QCLOUDRestNet/DataForm/QCloudHTTPBodyPart.h b/Pods/QCloudCore/QCloudCore/Classes/Base/QCLOUDRestNet/DataForm/QCloudHTTPBodyPart.h new file mode 100644 index 0000000..c1bc398 --- /dev/null +++ b/Pods/QCloudCore/QCloudCore/Classes/Base/QCLOUDRestNet/DataForm/QCloudHTTPBodyPart.h @@ -0,0 +1,32 @@ +// +// QCloudHTTPBodyPart.h +// QCloudNetworking +// +// Created by tencent on 16/2/18. +// Copyright © 2016年 QCloudTernimalLab. All rights reserved. +// + +#import + +@interface QCloudHTTPBodyPart : NSObject + +@property (nonatomic, assign) NSStringEncoding stringEncoding; +@property (nonatomic, copy) NSString *boundary; +@property (nonatomic, assign) BOOL hasInitialBoundary; +@property (nonatomic, assign) BOOL hasFinalBoundary; + +@property (nonatomic, assign, readonly) BOOL hasBytesAvailable; +@property (nonatomic, assign, readonly) unsigned long long contentLength; +@property (nonatomic, readonly, strong) NSError *streamError; ++ (instancetype)new UNAVAILABLE_ATTRIBUTE; +- (instancetype)init UNAVAILABLE_ATTRIBUTE; + +- (instancetype)initWithData:(NSData *)data; +- (instancetype)initWithURL:(NSURL *)url withContentLength:(unsigned long long)length; +- (instancetype)initWithURL:(NSURL *)url offetSet:(uint64_t)offset withContentLength:(unsigned long long)length; + +- (void)setHeaderValueWithMap:(NSDictionary *)dictionary; +- (void)setValue:(id)value forHeaderKey:(NSString *)key; + +- (NSInteger)read:(uint8_t *)buffer maxLength:(NSUInteger)length; +@end diff --git a/Pods/QCloudCore/QCloudCore/Classes/Base/QCLOUDRestNet/DataForm/QCloudHTTPBodyPart.m b/Pods/QCloudCore/QCloudCore/Classes/Base/QCLOUDRestNet/DataForm/QCloudHTTPBodyPart.m new file mode 100644 index 0000000..fef6d4f --- /dev/null +++ b/Pods/QCloudCore/QCloudCore/Classes/Base/QCLOUDRestNet/DataForm/QCloudHTTPBodyPart.m @@ -0,0 +1,322 @@ +// +// QCloudHTTPBodyPart.m +// QCloudNetworking +// +// Created by tencent on 16/2/18. +// Copyright © 2016年 QCloudTernimalLab. All rights reserved. +// + +#import "QCloudHTTPBodyPart.h" + +static NSString *const kQCloudMultipartFormCRLF = @"\r\n"; +static NSString *QCloudMultiPartFormInitialBoundary(NSString *boundary) { + return [NSString stringWithFormat:@"--%@%@", boundary, kQCloudMultipartFormCRLF]; +} + +static inline NSString *QCloudMultipartFormEncapsulationBoundary(NSString *boundary) { + return [NSString stringWithFormat:@"%@--%@%@", kQCloudMultipartFormCRLF, boundary, kQCloudMultipartFormCRLF]; +} + +static inline NSString *QCloudMultipartFormFinalBoundary(NSString *boundary) { + return [NSString stringWithFormat:@"%@--%@--%@", kQCloudMultipartFormCRLF, boundary, kQCloudMultipartFormCRLF]; +} + +typedef OBJC_ENUM(NSInteger, QCloudHTTPPartReadStatus) { QCloudHTTPPartReadEncapsulationBoundary = 1, QCloudHTTPPartReadHeader = 2, + QCloudHTTPPartReadBody = 3, QCloudHTTPPartReadFinalBoundary = 4 }; + +@interface QCloudHTTPBodyPart () +@property (nonatomic, strong) NSData *streamData; +@property (nonatomic, strong) NSURL *streamURL; +@property (nonatomic, strong) NSMutableDictionary *headers; +@end + +@implementation QCloudHTTPBodyPart { + QCloudHTTPPartReadStatus _readStatus; + NSInputStream *_inputStream; + NSMutableDictionary *_headers; + NSData *_encapsulationData; + NSData *_headerData; + NSData *_finalData; + unsigned long long _bodyLength; + // + unsigned long long _readBodyLength; + unsigned long long _phaseReadOffset; + // + NSNumber *_fileOffset; + // +} + +- (void)dealloc { +} +- (void)commonInit { + _stringEncoding = NSUTF8StringEncoding; + _headers = [NSMutableDictionary new]; + [self transitionToNextStatus]; +} + +- (instancetype)init { + self = [super init]; + if (!self) { + return self; + } + [self commonInit]; + return self; +} + +- (instancetype)initWithData:(NSData *)data { + self = [super init]; + if (!self) { + return self; + } + _bodyLength = data.length; + [self commonInit]; + _inputStream = [[NSInputStream alloc] initWithData:data]; + _streamData = data; + return self; +} +- (instancetype)initWithURL:(NSURL *)url withContentLength:(unsigned long long)length { + self = [super init]; + if (!self) { + return self; + } + [self commonInit]; + _bodyLength = length; + _inputStream = [[NSInputStream alloc] initWithURL:url]; + _streamURL = url; + return self; +} + +- (instancetype)initWithURL:(NSURL *)url offetSet:(uint64_t)offset withContentLength:(unsigned long long)length { + self = [self initWithURL:url withContentLength:length]; + if (!self) { + return self; + } + _fileOffset = @(offset); + return self; +} + +- (BOOL)hasBytesAvailable { + // Allows `read:maxLength:` to be called again if `AFMultipartFormFinalBoundary` doesn't fit into the available buffer + if (_readStatus == QCloudHTTPPartReadFinalBoundary) { + return YES; + } + +#pragma clang diagnostic push +#pragma clang diagnostic ignored "-Wcovered-switch-default" + switch (_inputStream.streamStatus) { + case NSStreamStatusNotOpen: + case NSStreamStatusOpening: + case NSStreamStatusOpen: + case NSStreamStatusReading: + case NSStreamStatusWriting: + return YES; + case NSStreamStatusAtEnd: + case NSStreamStatusClosed: + case NSStreamStatusError: + default: + return NO; + } +#pragma clang diagnostic pop +} + +- (void)setValue:(id)value forHeaderKey:(NSString *)key { + NSAssert(_readStatus == QCloudHTTPPartReadEncapsulationBoundary, @"can't modify bodypart when reading it"); + NSParameterAssert(value); + NSParameterAssert(key); + _headers[key] = value; +} + +- (void)setHasInitialBoundary:(BOOL)hasInitialBoundary { + NSAssert(_readStatus == QCloudHTTPPartReadEncapsulationBoundary, @"can't modify bodypart when reading it"); + _hasInitialBoundary = hasInitialBoundary; +} + +- (void)setHasFinalBoundary:(BOOL)hasFinalBoundary { + NSAssert(_readStatus == QCloudHTTPPartReadEncapsulationBoundary, @"can't modify bodypart when reading it"); + _hasFinalBoundary = hasFinalBoundary; +} + +- (NSString *)stringForHeaders { + NSMutableString *headerString = [NSMutableString string]; + for (NSString *field in [_headers allKeys]) { + [headerString appendString:[NSString stringWithFormat:@"%@: %@%@", field, [_headers valueForKey:field], kQCloudMultipartFormCRLF]]; + } + [headerString appendString:kQCloudMultipartFormCRLF]; + return [NSString stringWithString:headerString]; +} + +- (NSData *)headersData { + _headerData = [[self stringForHeaders] dataUsingEncoding:self.stringEncoding]; + return _headerData; +} + +- (NSData *)encapsulationBoundaryData { + _encapsulationData = + [([self hasInitialBoundary] ? QCloudMultiPartFormInitialBoundary(self.boundary) + : QCloudMultipartFormEncapsulationBoundary(self.boundary)) dataUsingEncoding:self.stringEncoding]; + return _encapsulationData; +} + +- (NSData *)finalBoundaryData { + _finalData = ([self hasFinalBoundary] ? [QCloudMultipartFormFinalBoundary(self.boundary) dataUsingEncoding:self.stringEncoding] : [NSData data]); + return _finalData; +} + +- (unsigned long long)contentLength { + unsigned long long contentLength = 0; + contentLength += [self encapsulationBoundaryData].length; + contentLength += [self headersData].length; + contentLength += _bodyLength; + contentLength += [self finalBoundaryData].length; + return contentLength; +} +- (NSInteger)read:(uint8_t *)buffer maxLength:(NSUInteger)length; +{ + NSUInteger bytesReadLength = 0; + if (_readStatus == QCloudHTTPPartReadEncapsulationBoundary) { + bytesReadLength += [self readData:[self encapsulationBoundaryData] intoBuffer:buffer maxLength:length]; + } + + if (bytesReadLength >= length) { + return bytesReadLength; + } + + if (_readStatus == QCloudHTTPPartReadHeader) { + bytesReadLength += [self readData:[self headersData] intoBuffer:&buffer[bytesReadLength] maxLength:(length - bytesReadLength)]; + } + + if (bytesReadLength >= length) { + return bytesReadLength; + } + + if (_readStatus == QCloudHTTPPartReadBody) { + NSInteger bodyReadLength = 0; + NSUInteger currentStepMaxRead = length - bytesReadLength; + NSUInteger bodyMaxRead = 0; + if (_bodyLength > _readBodyLength) { + bodyMaxRead = (NSUInteger)(_bodyLength - _readBodyLength); + } + NSUInteger willReadMaxLength = MIN(currentStepMaxRead, bodyMaxRead); + bodyReadLength = [_inputStream read:&buffer[bytesReadLength] maxLength:willReadMaxLength]; + if (bodyReadLength == -1) { + return -1; + } else { + _readBodyLength += bodyReadLength; + bytesReadLength += bodyReadLength; + if ([_inputStream streamStatus] >= NSStreamStatusAtEnd || _readBodyLength == _bodyLength) { + [self transitionToNextStatus]; + } + } + } + + if (bytesReadLength >= length) { + return bytesReadLength; + } + if (_readStatus == QCloudHTTPPartReadFinalBoundary) { + bytesReadLength += [self readData:[self finalBoundaryData] intoBuffer:&buffer[bytesReadLength] maxLength:length - bytesReadLength]; + } + + return bytesReadLength; +} + +- (NSInteger)readData:(NSData *)data intoBuffer:(uint8_t *)buffer maxLength:(NSUInteger)length { +#pragma clang diagnostic push +#pragma clang diagnostic ignored "-Wgnu" + NSRange range = NSMakeRange((NSUInteger)_phaseReadOffset, MIN([data length] - ((NSUInteger)_phaseReadOffset), length)); + [data getBytes:buffer range:range]; +#pragma clang diagnostic pop + + _phaseReadOffset += range.length; + + if (((NSUInteger)_phaseReadOffset) >= [data length]) { + [self transitionToNextStatus]; + } + + return (NSInteger)range.length; +} + +- (void)transitionToNextStatus { + // if (![[NSThread currentThread] isMainThread]) { + // [self transitionToNextStatus]; + // return; + // } + + switch (_readStatus) { + case QCloudHTTPPartReadEncapsulationBoundary: { + _readStatus = QCloudHTTPPartReadHeader; + break; + } + case QCloudHTTPPartReadHeader: { + [_inputStream scheduleInRunLoop:[NSRunLoop currentRunLoop] forMode:NSRunLoopCommonModes]; + [_inputStream open]; + if (_fileOffset != nil) { + [_inputStream setProperty:_fileOffset forKey:NSStreamFileCurrentOffsetKey]; + } + _readBodyLength = 0; + _readStatus = QCloudHTTPPartReadBody; + break; + } + + case QCloudHTTPPartReadBody: { + [_inputStream removeFromRunLoop:[NSRunLoop currentRunLoop] forMode:NSRunLoopCommonModes]; + [_inputStream close]; + _readStatus = QCloudHTTPPartReadFinalBoundary; + break; + } + case QCloudHTTPPartReadFinalBoundary: + default: + _readStatus = QCloudHTTPPartReadEncapsulationBoundary; + break; + } + _phaseReadOffset = 0; +} + +- (NSError *)streamError { + return _inputStream.streamError; +} + +- (void)setHeaderValueWithMap:(NSDictionary *)dictionary { + for (NSString *key in dictionary.allKeys) { + [self setValue:dictionary[key] forHeaderKey:key]; + } +} + +- (BOOL)isEqual:(QCloudHTTPBodyPart *)object { + if (![object isKindOfClass:[QCloudHTTPBodyPart class]]) { + return NO; + } + if ((self.streamData || self.streamData) && ![self.streamData isEqualToData:object.streamData]) { + return NO; + } + if ((self.streamURL || object.streamURL) && + [self.streamURL.absoluteString caseInsensitiveCompare:object.streamURL.absoluteString] != NSOrderedSame) { + return NO; + } + if (self.stringEncoding != object.stringEncoding) { + return NO; + } + if ((object.boundary || self.boundary) && ![self.boundary isEqualToString:self.self.boundary]) { + return NO; + } + if (_headers.count != object.headers.count) { + return NO; + } + if (![self.headers isEqualToDictionary:object.headers]) { + return NO; + } + return YES; +} +#ifdef DEBUG +- (NSString *)description { + NSMutableString *str = [NSMutableString new]; + [str appendFormat:@"[FORM DATA PART] %@\n %@ \n ", [super description], _headers]; + if (self.streamURL) { + [str appendFormat:@"[URL]:%@", self.streamURL]; + } + if (self.streamData) { + [str appendFormat:@"[Data]:%lu", (unsigned long)self.streamData.length]; + } + return str; +} +#endif +@end diff --git a/Pods/QCloudCore/QCloudCore/Classes/Base/QCLOUDRestNet/DataForm/QCloudHTTPMultiDataStream.h b/Pods/QCloudCore/QCloudCore/Classes/Base/QCLOUDRestNet/DataForm/QCloudHTTPMultiDataStream.h new file mode 100644 index 0000000..8c05f89 --- /dev/null +++ b/Pods/QCloudCore/QCloudCore/Classes/Base/QCLOUDRestNet/DataForm/QCloudHTTPMultiDataStream.h @@ -0,0 +1,21 @@ +// +// QCloudHTTPMultiDataStream.h +// QCloudNetworking +// +// Created by tencent on 16/2/18. +// Copyright © 2016年 QCloudTernimalLab. All rights reserved. +// + +#import + +@class QCloudHTTPBodyPart; +@interface QCloudHTTPMultiDataStream : NSInputStream +@property (nonatomic, assign) NSStringEncoding stringEncoding; +@property (nonatomic, assign, readonly) BOOL hasData; +@property (nonatomic, assign, readonly) unsigned long long contentLength; +@property (nonatomic, strong) NSString *boundary; +- (instancetype)initWithStringEncoding:(NSStringEncoding)encoding; +- (void)setInitialAndFinalBoundaries; +- (void)appendBodyPart:(QCloudHTTPBodyPart *)bodyPart; +- (void)insertBodyPart:(QCloudHTTPBodyPart *)bodyPart; +@end diff --git a/Pods/QCloudCore/QCloudCore/Classes/Base/QCLOUDRestNet/DataForm/QCloudHTTPMultiDataStream.m b/Pods/QCloudCore/QCloudCore/Classes/Base/QCLOUDRestNet/DataForm/QCloudHTTPMultiDataStream.m new file mode 100644 index 0000000..7473189 --- /dev/null +++ b/Pods/QCloudCore/QCloudCore/Classes/Base/QCLOUDRestNet/DataForm/QCloudHTTPMultiDataStream.m @@ -0,0 +1,201 @@ +// +// QCloudHTTPMultiDataStream.m +// QCloudNetworking +// +// Created by tencent on 16/2/18. +// Copyright © 2016年 QCloudTernimalLab. All rights reserved. +// + +#import "QCloudHTTPMultiDataStream.h" +#import "QCloudHTTPBodyPart.h" +static NSString *QCloudCreateMultipartFormBoundary() { + return [NSString stringWithFormat:@"Boundary+%08X%08X", arc4random(), arc4random()]; +} +@interface NSStream () +@property (readwrite) NSStreamStatus streamStatus; +@property (readwrite, copy) NSError *streamError; +@end + +@implementation QCloudHTTPMultiDataStream { + NSMutableArray *_bodyParts; + QCloudHTTPBodyPart *_currentHTTPBodyPart; + NSEnumerator *_partEnumerator; +} + +#pragma clang diagnostic push +#pragma clang diagnostic ignored "-Wimplicit-atomic-properties" +@synthesize streamStatus; +@synthesize streamError; +#pragma clang diagnostic pop + +- (void)dealloc { +} +- (instancetype)init { + self = [super init]; + if (!self) { + return self; + } + _stringEncoding = NSUTF8StringEncoding; + _bodyParts = [NSMutableArray new]; + _boundary = QCloudCreateMultipartFormBoundary(); + return self; +} + +- (instancetype)initWithStringEncoding:(NSStringEncoding)encoding { + self = [self init]; + if (!self) { + return self; + } + _stringEncoding = encoding; + return self; +} + +- (BOOL)hasData { + return _bodyParts.count ? YES : NO; +} + +- (void)setStringEncoding:(NSStringEncoding)stringEncoding { + _stringEncoding = stringEncoding; + for (QCloudHTTPBodyPart *p in _bodyParts) { + p.stringEncoding = stringEncoding; + } +} +- (void)appendBodyPart:(QCloudHTTPBodyPart *)bodyPart { + NSParameterAssert(bodyPart); + bodyPart.stringEncoding = self.stringEncoding; + bodyPart.boundary = self.boundary; + if ([_bodyParts containsObject:bodyPart]) { + return; + } + [_bodyParts addObject:bodyPart]; +} + +- (void)insertBodyPart:(QCloudHTTPBodyPart *)bodyPart { + NSParameterAssert(bodyPart); + bodyPart.stringEncoding = self.stringEncoding; + bodyPart.boundary = self.boundary; + if ([_bodyParts containsObject:bodyPart]) { + return; + } + [_bodyParts insertObject:bodyPart atIndex:0]; +} +- (void)setInitialAndFinalBoundaries { + if ([_bodyParts count] > 0) { + for (QCloudHTTPBodyPart *bodyPart in _bodyParts) { + bodyPart.hasInitialBoundary = NO; + bodyPart.hasFinalBoundary = NO; + } + + [[_bodyParts firstObject] setHasInitialBoundary:YES]; + [[_bodyParts lastObject] setHasFinalBoundary:YES]; + } +} + +- (BOOL)isEmpty { + return [_bodyParts count] == 0; +} + +#pragma mark - NSInputStream + +- (NSInteger)read:(uint8_t *)buffer maxLength:(NSUInteger)length { + if ([self streamStatus] == NSStreamStatusClosed) { + return 0; + } + + NSInteger totalNumberOfBytesRead = 0; + +#pragma clang diagnostic push +#pragma clang diagnostic ignored "-Wgnu" + while ((NSUInteger)totalNumberOfBytesRead < length) { + if (!_currentHTTPBodyPart || ![_currentHTTPBodyPart hasBytesAvailable]) { + if (!(_currentHTTPBodyPart = [_partEnumerator nextObject])) { + break; + } + } else { + NSUInteger maxLength = length - (NSUInteger)totalNumberOfBytesRead; + NSInteger numberOfBytesRead = [_currentHTTPBodyPart read:&buffer[totalNumberOfBytesRead] maxLength:maxLength]; + if (numberOfBytesRead == -1) { + self.streamError = _currentHTTPBodyPart.streamError; + break; + } else { + totalNumberOfBytesRead += numberOfBytesRead; + } + } + } +#pragma clang diagnostic pop + + return totalNumberOfBytesRead; +} + +- (BOOL)getBuffer:(__unused uint8_t **)buffer length:(__unused NSUInteger *)len { + return NO; +} + +- (BOOL)hasBytesAvailable { + return [self streamStatus] == NSStreamStatusOpen; +} + +#pragma mark - NSStream + +- (void)open { + if (self.streamStatus == NSStreamStatusOpen) { + return; + } + + self.streamStatus = NSStreamStatusOpen; + + [self setInitialAndFinalBoundaries]; + _partEnumerator = [_bodyParts objectEnumerator]; +} + +- (void)close { + self.streamStatus = NSStreamStatusClosed; +} + +- (id)propertyForKey:(__unused NSString *)key { + return nil; +} + +- (BOOL)setProperty:(__unused id)property forKey:(__unused NSString *)key { + return NO; +} + +- (void)scheduleInRunLoop:(__unused NSRunLoop *)aRunLoop forMode:(__unused NSString *)mode { +} + +- (void)removeFromRunLoop:(__unused NSRunLoop *)aRunLoop forMode:(__unused NSString *)mode { +} + +- (unsigned long long)contentLength { + unsigned long long length = 0; + for (QCloudHTTPBodyPart *bodyPart in _bodyParts) { + length += [bodyPart contentLength]; + } + return length; +} + +#pragma mark - Undocumented CFReadStream Bridged Methods + +- (void)_scheduleInCFRunLoop:(__unused CFRunLoopRef)aRunLoop forMode:(__unused CFStringRef)aMode { +} + +- (void)_unscheduleFromCFRunLoop:(__unused CFRunLoopRef)aRunLoop forMode:(__unused CFStringRef)aMode { +} + +- (BOOL)_setCFClientFlags:(__unused CFOptionFlags)inFlags + callback:(__unused CFReadStreamClientCallBack)inCallback + context:(__unused CFStreamClientContext *)inContext { + return NO; +} + +#ifdef DEBUG + +- (NSString *)description { + NSMutableString *str = [NSMutableString new]; + for (QCloudHTTPBodyPart *part in _bodyParts) { + [str appendFormat:@"%@\n", part]; + } + return str; +} +#endif +@end diff --git a/Pods/QCloudCore/QCloudCore/Classes/Base/QCLOUDRestNet/Error/NSError+QCloudNetworking.h b/Pods/QCloudCore/QCloudCore/Classes/Base/QCLOUDRestNet/Error/NSError+QCloudNetworking.h new file mode 100644 index 0000000..1bf9dba --- /dev/null +++ b/Pods/QCloudCore/QCloudCore/Classes/Base/QCLOUDRestNet/Error/NSError+QCloudNetworking.h @@ -0,0 +1,62 @@ +// +// NSError+QCloudNetworking.h +// QCloudNetworking +// +// Created by tencent on 16/2/19. +// Copyright © 2016年 QCloudTernimalLab. All rights reserved. +// + +#import + +/** + 腾讯云SDK网络层本地客户端自定义错误 + + - QCloudNetworkErrorCodeDecodeError: 网络数据解析出错,比如一个json接口的数据,按照约定服务器应该返回json类型数据,结果返回了html数据。 + - QCloudNetworkErrorCodeParamterInvalid: + 数据拼装过程参数非法,比如一个接受NSString类型的数据,你传了一个NSDictionary类型。又比如一个约束了最大值为2的参数,传入了值3. + - QCloudNetworkErrorCodeResponseDataTypeInvalid: 网络层返回的数据类型错误,比如约定为JSON的接口,返回了html数据 + */ + +typedef NS_ENUM(int, QCloudNetworkErrorCode) { + // InvalidArgument 参数错误 + QCloudNetworkErrorCodeParamterInvalid = 10000, + // InvalidCredentials 获取签名错误 + QCloudNetworkErrorCodeCredentialNotReady = 10001, + // 10004 UnsupportOperation: 无法支持的操作 + QCloudNetworkErrorUnsupportOperationError = 10004, + //数据完整性校验失败 + QCloudNetworkErrorCodeNotMatch = 20004, + //文件没有上传完成 + QCloudNetworkErrorCodeImCompleteData = 20005, + // UserCancelled 用户取消 + QCloudNetworkErrorCodeCanceled = 30000, + // AlreadyFinished 任务已完成 + QCloudNetworkErrorCodeAlreadyFinish = 30001, + + /** + 服务端错误 + */ + // ServerError 服务器返回了不合法的数据 + QCloudNetworkErrorCodeResponseDataTypeInvalid = 40000, + QCloudNetworkErrorCodeDomainInvalid = 50000, +}; + +@protocol QCloudNetworkError ++ (NSError *)toError:(NSDictionary *)userInfo; +@end + +@interface QCloudCommonNetworkError : NSObject +@property (nonatomic, assign) int code; +@property (nonatomic, strong) NSString *message; +@property (nonatomic, strong) NSString *request_id; +@end + +FOUNDATION_EXTERN NSString *const kQCloudNetworkDomain; +FOUNDATION_EXTERN NSString *const kQCloudNetworkErrorObject; +FOUNDATION_EXTERN NSString *const kQCloudErrorDetailCode; +@interface NSError (QCloudNetworking) ++ (NSError *)qcloud_errorWithCode:(int)code message:(NSString *)message infos:(NSDictionary *)infos; ++ (NSError *)qcloud_errorWithCode:(int)code message:(NSString *)message; ++ (BOOL)isNetworkErrorAndRecoverable:(NSError *)error; ++ (NSString *)qcloud_networkErrorCodeTransferToString:(QCloudNetworkErrorCode)code; +@end diff --git a/Pods/QCloudCore/QCloudCore/Classes/Base/QCLOUDRestNet/Error/NSError+QCloudNetworking.m b/Pods/QCloudCore/QCloudCore/Classes/Base/QCLOUDRestNet/Error/NSError+QCloudNetworking.m new file mode 100644 index 0000000..30e522e --- /dev/null +++ b/Pods/QCloudCore/QCloudCore/Classes/Base/QCLOUDRestNet/Error/NSError+QCloudNetworking.m @@ -0,0 +1,136 @@ +// +// NSError+QCloudNetworking.m +// QCloudNetworking +// +// Created by tencent on 16/2/19. +// Copyright © 2016年 QCloudTernimalLab. All rights reserved. +// + +#import "NSError+QCloudNetworking.h" +#import "NSObject+QCloudModel.h" +NSString *const kQCloudNetworkDomain = @"com.tencent.qcloud.networking"; +NSString *const kQCloudNetworkErrorObject = @"kQCloudNetworkErrorObject"; +NSString *const kQCloudErrorDetailCode = @"kQCloudErrorDetailCode"; + +@implementation NSError (QCloudNetworking) + ++ (NSError *)qcloud_errorWithCode:(int)code message:(NSString *)message infos:(NSDictionary *)infos{ + message = message ? message : @"未知错误!"; + NSMutableDictionary *paramaters = [NSMutableDictionary dictionary]; + paramaters[NSLocalizedDescriptionKey] = message; + for (NSString *key in infos.allKeys) { + paramaters[key] = infos[key]; + } + NSError *error = [NSError errorWithDomain:kQCloudNetworkDomain code:code userInfo:[paramaters copy]]; + return error; +} + ++ (NSError *)qcloud_errorWithCode:(int)code message:(NSString *)message { + message = message ? message : @"未知错误!"; + NSError *error = [NSError errorWithDomain:kQCloudNetworkDomain code:code userInfo:@{ NSLocalizedDescriptionKey : message }]; + return error; +} + ++ (BOOL)isNetworkErrorAndRecoverable:(NSError *)error { + if ([error.domain isEqualToString:NSURLErrorDomain]) { + switch (error.code) { + case NSURLErrorCancelled: + case NSURLErrorBadURL: + case NSURLErrorNotConnectedToInternet: + case NSURLErrorSecureConnectionFailed: + case NSURLErrorServerCertificateHasBadDate: + case NSURLErrorServerCertificateUntrusted: + case NSURLErrorServerCertificateHasUnknownRoot: + case NSURLErrorServerCertificateNotYetValid: + case NSURLErrorClientCertificateRejected: + case NSURLErrorClientCertificateRequired: + case NSURLErrorCannotLoadFromNetwork: + return NO; + case NSURLErrorCannotConnectToHost: + default: + return YES; + } + } + if ([error.domain isEqualToString:kQCloudNetworkDomain]) { + if (error.userInfo && error.userInfo[@"Code"]) { + NSString *serverCode = error.userInfo[@"Code"]; + if ([serverCode isEqualToString:@"InvalidDigest"] || [serverCode isEqualToString:@"BadDigest"] || + [serverCode isEqualToString:@"InvalidSHA1Digest"] || [serverCode isEqualToString:@"RequestTimeOut"]) { + return YES; + } + } + } + + return NO; +} + +//// InvalidArgument 参数错误 +//QCloudNetworkErrorCodeParamterInvalid = 10000, +//// InvalidCredentials 获取签名错误 +//QCloudNetworkErrorCodeCredentialNotReady = 10001, +//// 10004 UnsupportOperation: 无法支持的操作 +//QCloudNetworkErrorUnsupportOperationError = 10004, +////数据完整性校验失败 +//QCloudNetworkErrorCodeNotMatch = 20004, +////文件没有上传完成 +//QCloudNetworkErrorCodeImCompleteData = 20005, +//// UserCancelled 用户取消 +//QCloudNetworkErrorCodeCanceled = 30000, +//// AlreadyFinished 任务已完成 +//QCloudNetworkErrorCodeAlreadyFinish = 30001, +// +///** +// 服务端错误 +// */ +//// ServerError 服务器返回了不合法的数据 +//QCloudNetworkErrorCodeResponseDataTypeInvalid = 40000, + ++(NSString *)qcloud_networkErrorCodeTransferToString:(QCloudNetworkErrorCode)code{ + switch (code) { + case QCloudNetworkErrorCodeParamterInvalid: + return @"InvalidArgument"; + break; + case QCloudNetworkErrorCodeCredentialNotReady: + return @"InvalidCredentials"; + break; + case QCloudNetworkErrorUnsupportOperationError: + return @"UnsupportOperation"; + break; + case QCloudNetworkErrorCodeNotMatch: + return @"CodeNotMatch"; + break; + case QCloudNetworkErrorCodeImCompleteData: + return @"IncompleteData"; + case QCloudNetworkErrorCodeCanceled: + return @"UserCancelled"; + break; + case QCloudNetworkErrorCodeAlreadyFinish: + return @"AlreadyFinished"; + break; + default: + break; + } + return @""; +} +@end + +@implementation QCloudCommonNetworkError + ++ (NSError *)toError:(NSDictionary *)userInfo { + NSNumber *code = [userInfo objectForKey:@"code"]; + if (code == nil) { + return [NSError qcloud_errorWithCode:QCloudNetworkErrorUnsupportOperationError message:@"内容错误,无法从返回的错误信息中解析内容"]; + } + int errorCode = (int)[code intValue]; + NSMutableDictionary *info = [NSMutableDictionary new]; + QCloudCommonNetworkError *object = [self qcloud_modelWithDictionary:userInfo]; + + NSString *message = object.message ?: @"未知错误!"; + info[NSLocalizedDescriptionKey] = message; + NSError *error = [NSError errorWithDomain:kQCloudNetworkDomain + code:errorCode + userInfo:@{ NSLocalizedDescriptionKey : message, kQCloudNetworkErrorObject : object }]; + return error; +} + +@end diff --git a/Pods/QCloudCore/QCloudCore/Classes/Base/QCLOUDRestNet/Operations/QCloudFakeRequestOperation.h b/Pods/QCloudCore/QCloudCore/Classes/Base/QCLOUDRestNet/Operations/QCloudFakeRequestOperation.h new file mode 100644 index 0000000..ce2c7ed --- /dev/null +++ b/Pods/QCloudCore/QCloudCore/Classes/Base/QCLOUDRestNet/Operations/QCloudFakeRequestOperation.h @@ -0,0 +1,13 @@ +// +// QCloudFakeRequestOperation.h +// Pods +// +// Created by Dong Zhao on 2017/6/21. +// +// + +#import "QCloudRequestOperation.h" + +@interface QCloudFakeRequestOperation : QCloudRequestOperation + +@end diff --git a/Pods/QCloudCore/QCloudCore/Classes/Base/QCLOUDRestNet/Operations/QCloudFakeRequestOperation.m b/Pods/QCloudCore/QCloudCore/Classes/Base/QCLOUDRestNet/Operations/QCloudFakeRequestOperation.m new file mode 100644 index 0000000..08c8350 --- /dev/null +++ b/Pods/QCloudCore/QCloudCore/Classes/Base/QCLOUDRestNet/Operations/QCloudFakeRequestOperation.m @@ -0,0 +1,29 @@ +// +// QCloudFakeRequestOperation.m +// Pods +// +// Created by Dong Zhao on 2017/6/21. +// +// + +#import "QCloudFakeRequestOperation.h" +#import "QCloudAbstractRequest_FakeRequest.h" +@implementation QCloudFakeRequestOperation +- (void)main { + @autoreleasepool { + QCloudRequestFinishBlock originFinishBlock = self.request.finishBlock; + + __weak typeof(self) weakSelf = self; + [self.request setFinishBlock:^(id outputObject, NSError *error) { + if ([weakSelf.delagte respondsToSelector:@selector(requestOperationFinish:)]) { + [weakSelf.delagte requestOperationFinish:weakSelf]; + } + if (originFinishBlock) { + originFinishBlock(outputObject, error); + } + }]; + [self.request fakeStart]; + } +} + +@end diff --git a/Pods/QCloudCore/QCloudCore/Classes/Base/QCLOUDRestNet/Operations/QCloudHTTPRequestOperation.h b/Pods/QCloudCore/QCloudCore/Classes/Base/QCLOUDRestNet/Operations/QCloudHTTPRequestOperation.h new file mode 100644 index 0000000..0aacbb9 --- /dev/null +++ b/Pods/QCloudCore/QCloudCore/Classes/Base/QCLOUDRestNet/Operations/QCloudHTTPRequestOperation.h @@ -0,0 +1,13 @@ +// +// QCloudHTTPRequestOperation.h +// Pods +// +// Created by Dong Zhao on 2017/4/14. +// +// + +#import "QCloudRequestOperation.h" +@class QCloudHTTPSessionManager; +@interface QCloudHTTPRequestOperation : QCloudRequestOperation +@property (nonatomic, weak) QCloudHTTPSessionManager *sessionManager; +@end diff --git a/Pods/QCloudCore/QCloudCore/Classes/Base/QCLOUDRestNet/Operations/QCloudHTTPRequestOperation.m b/Pods/QCloudCore/QCloudCore/Classes/Base/QCLOUDRestNet/Operations/QCloudHTTPRequestOperation.m new file mode 100644 index 0000000..554cf0b --- /dev/null +++ b/Pods/QCloudCore/QCloudCore/Classes/Base/QCLOUDRestNet/Operations/QCloudHTTPRequestOperation.m @@ -0,0 +1,68 @@ +// +// QCloudHTTPRequestOperation.m +// Pods +// +// Created by Dong Zhao on 2017/4/14. +// +// + +#import "QCloudHTTPRequestOperation.h" +#import "QCloudHTTPRequest.h" +#import "QCloudNetEnv.h" +#import "QCloudHttpDNS.h" +#import "QCloudHTTPSessionManager_Private.h" +#import "QCloudHTTPSessionManager.h" +#import "QCloudURLSessionTaskData.h" +#import "QCloudHTTPRetryHanlder.h" +#import "QCloudLogger.h" +#import "NSError+QCloudNetworking.h" +#import +#import "QCloudFileUtils.h" +#import "NSError+QCloudNetworking.h" +#import "QCloudFileOffsetBody.h" +#import "NSError+QCloudNetworking.h" + +@interface QCloudHTTPRequestOperation () +@property (nonatomic, strong, readonly) QCloudHTTPRequest *httpRequest; +@property (nonatomic, strong) NSString *tempFilePath; +@end + +@implementation QCloudHTTPRequestOperation + +- (void)dealloc { + QCloudRemoveFileByPath(self.tempFilePath); +} +- (QCloudHTTPRequest *)httpRequest { + return (QCloudHTTPRequest *)self.request; +} + +- (void)main { + @autoreleasepool { + QCloudRequestFinishBlock originFinishBlock = self.httpRequest.finishBlock; + if (self.httpRequest.canceled) { + QCloudRemoveFileByPath(self.tempFilePath); + if ([self.delagte respondsToSelector:@selector(requestOperationFinish:)]) { + [self.delagte requestOperationFinish:self]; + } + if (originFinishBlock) { + NSError *cancel = [NSError qcloud_errorWithCode:QCloudNetworkErrorCodeCanceled message:@"UserCancelled:已经取消了,不再执行"]; + originFinishBlock(nil, cancel); + } + return; + } + __weak typeof(self) weakSelf = self; + [self.httpRequest setFinishBlock:^(id outputObject, NSError *error) { + QCloudRemoveFileByPath(weakSelf.tempFilePath); + if ([weakSelf.delagte respondsToSelector:@selector(requestOperationFinish:)]) { + [weakSelf.delagte requestOperationFinish:weakSelf]; + } + if (originFinishBlock) { + originFinishBlock(outputObject, error); + } + }]; + + QCloudLogDebugP(@"HTTP",@"开始执行一个请求:%lld", self.httpRequest.requestID); + [[QCloudHTTPSessionManager shareClient] executeRestHTTPReqeust:self.httpRequest]; + } +} +@end diff --git a/Pods/QCloudCore/QCloudCore/Classes/Base/QCLOUDRestNet/Operations/QCloudHTTPSessionManager_Private.h b/Pods/QCloudCore/QCloudCore/Classes/Base/QCLOUDRestNet/Operations/QCloudHTTPSessionManager_Private.h new file mode 100644 index 0000000..6b928e2 --- /dev/null +++ b/Pods/QCloudCore/QCloudCore/Classes/Base/QCLOUDRestNet/Operations/QCloudHTTPSessionManager_Private.h @@ -0,0 +1,14 @@ +// +// QCloudHTTPSessionManager_Private.h +// Pods +// +// Created by Dong Zhao on 2017/3/10. +// +// + +#import "QCLOUDRestNet.h" +@class QCloudURLSessionTaskData; +@interface QCloudHTTPSessionManager () +@property (nonatomic, strong, readonly) NSURLSession *session; +- (void)cacheTask:(NSURLSessionTask *)task data:(QCloudURLSessionTaskData *)data forSEQ:(int)seq; +@end diff --git a/Pods/QCloudCore/QCloudCore/Classes/Base/QCLOUDRestNet/Operations/QCloudOperationQueue.h b/Pods/QCloudCore/QCloudCore/Classes/Base/QCLOUDRestNet/Operations/QCloudOperationQueue.h new file mode 100644 index 0000000..3328fef --- /dev/null +++ b/Pods/QCloudCore/QCloudCore/Classes/Base/QCLOUDRestNet/Operations/QCloudOperationQueue.h @@ -0,0 +1,21 @@ +// +// QCloudOperationQueue.h +// Pods +// +// Created by Dong Zhao on 2017/3/10. +// +// + +#import +#import "QCloudRequestOperation.h" + +@interface QCloudOperationQueue : NSObject +@property (nonatomic, assign) int maxConcurrentCountLimit; +@property (nonatomic, assign) int customConcurrentCount; +- (void)addOpreation:(QCloudRequestOperation *)operation; +- (void)cancel:(QCloudRequestOperation *)operation; +- (void)cancelByRequestID:(int64_t)requestID; +- (void)cancelByRequestIDs:(NSArray *)requestIDs; +- (void)cancelAllOperation; +- (void)requestOperationFinishWithRequestId:(int64_t)requestID; +@end diff --git a/Pods/QCloudCore/QCloudCore/Classes/Base/QCLOUDRestNet/Operations/QCloudOperationQueue.m b/Pods/QCloudCore/QCloudCore/Classes/Base/QCLOUDRestNet/Operations/QCloudOperationQueue.m new file mode 100644 index 0000000..a4e730f --- /dev/null +++ b/Pods/QCloudCore/QCloudCore/Classes/Base/QCLOUDRestNet/Operations/QCloudOperationQueue.m @@ -0,0 +1,270 @@ +// +// QCloudOperationQueue.m +// Pods +// +// Created by Dong Zhao on 2017/3/10. +// +// + +#import "QCloudOperationQueue.h" +#import "QCloudRequestOperation.h" +#import "QCloudLogger.h" +#import "QCloudAbstractRequest.h" +#import "QCloudHTTPRequest.h" +#import "QCloudNetEnv.h" +#import "QCloudNetProfile.h" +static const NSInteger kDefaultCouncurrentCount = 4; +static const NSInteger kWeakNetworkConcurrentCount = 1; + +@interface QCloudOperationQueue () { + NSRecursiveLock *_dataLock; + NSMutableArray *_runningOperationArray; + NSMutableArray *_highPerfomanceRequest; + NSMutableArray *_lowPerformanceRequest; + NSMutableArray *_normalPerformanceRequest; + NSMutableArray *_backgroundPerformanceRequest; +} +@property (nonatomic, assign) NSInteger uploadSpeedReachThresholdTimes; +@property (nonatomic, assign) int maxConcurrentCount; +@end + +@implementation QCloudOperationQueue + +- (instancetype)init { + self = [super init]; + if (!self) { + return self; + } + _dataLock = [NSRecursiveLock new]; + _runningOperationArray = [NSMutableArray new]; + _highPerfomanceRequest = [NSMutableArray array]; + _normalPerformanceRequest = [NSMutableArray array]; + _lowPerformanceRequest = [NSMutableArray array]; + _backgroundPerformanceRequest = [NSMutableArray array]; + _maxConcurrentCount = kWeakNetworkConcurrentCount; + _uploadSpeedReachThresholdTimes = 0; + [[NSNotificationCenter defaultCenter] addObserver:self + selector:@selector(onHandleNetworkSituationChange:) + name:kNetworkSituationChangeKey + object:nil]; + + [[NSNotificationCenter defaultCenter] addObserver:self + selector:@selector(onHandleNetworkUploadSpeedUpadte:) + name:kQCloudNetProfileUploadSpeedUpdate + object:nil]; + + return self; +} + +- (void)dealloc { + [[NSNotificationCenter defaultCenter] removeObserver:self]; +} + +- (void)addOpreation:(QCloudRequestOperation *)operation { + [_dataLock lock]; + if (operation.request.priority > QCloudAbstractRequestPriorityNormal) { + [_highPerfomanceRequest addObject:operation]; + } else if (operation.request.priority > QCloudAbstractRequestPriorityLow) { + [_normalPerformanceRequest addObject:operation]; + } else if (operation.request.priority > QCloudAbstractRequestPriorityBackground) { + [_lowPerformanceRequest addObject:operation]; + } else { + [_backgroundPerformanceRequest addObject:operation]; + } + [_dataLock unlock]; + QCloudLogVerboseP(@"HTTP",@"[%@][%lld]请求已经缓存到队列中", [operation.request class], [operation.request requestID]); + // dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_HIGH, 0), ^{ + [self tryStartAnyOperation]; + // }); +} + +- (void)tryStartAnyOperation { + [_dataLock lock]; + int concurrentCount = self.customConcurrentCount ? self.customConcurrentCount : self.maxConcurrentCount; + + void (^ExeOperation)(QCloudRequestOperation *operation) = ^(QCloudRequestOperation *operation) { + operation.delagte = self; + QCloudLogVerboseP(@"HTTP",@"[%@][%lld]请求从队列中取出,开始执行", [operation.request class], [operation.request requestID]); + [self->_runningOperationArray addObject:operation]; + [operation execute]; + }; + + if (_highPerfomanceRequest.count || _normalPerformanceRequest.count || _lowPerformanceRequest.count || _backgroundPerformanceRequest.count) { + for (QCloudRequestOperation *op in [_highPerfomanceRequest copy]) { + ExeOperation(op); + [_highPerfomanceRequest removeObject:op]; + } + QCloudLogDebugP(@"HTTP",@"Current max concurrent count is %i", concurrentCount); + if (_runningOperationArray.count < concurrentCount) { + if (_normalPerformanceRequest.count) { + QCloudRequestOperation *operation = _normalPerformanceRequest.firstObject; + ExeOperation(operation); + [_normalPerformanceRequest removeObject:operation]; + } else if (_lowPerformanceRequest.count) { + QCloudRequestOperation *operation = _lowPerformanceRequest.firstObject; + ExeOperation(operation); + [_lowPerformanceRequest removeObject:operation]; + } else if (_backgroundPerformanceRequest.count) { + QCloudRequestOperation *operation = _backgroundPerformanceRequest.firstObject; + ExeOperation(operation); + [_backgroundPerformanceRequest removeObject:operation]; + } + } + } + [_dataLock unlock]; +} + +- (void)requestOperationFinish:(QCloudRequestOperation *)operation { + [_dataLock lock]; + [_runningOperationArray removeObject:operation]; + [_dataLock unlock]; + [self tryStartAnyOperation]; + QCloudLogVerboseP(@"HTTP",@"[%@][%lld]执行完毕", [operation.request class], [operation.request requestID]); +} + +- (void)requestOperationFinishWithRequestId:(int64_t)requestID { + for (QCloudRequestOperation *request in _runningOperationArray) { + if (request.request.requestID == requestID) { + [self requestOperationFinish:request]; + break; + } + } +} + +- (void)cancel:(QCloudRequestOperation *)operation { + QCloudLogDebugP(@"HTTP",@"[%llu] cancelled by operation", operation.request.requestID); + [_dataLock lock]; + [_runningOperationArray removeObject:operation]; + if (operation.request.priority == QCloudAbstractRequestPriorityHigh) { + [_highPerfomanceRequest removeObject:operation]; + } else if (operation.request.priority == QCloudAbstractRequestPriorityNormal) { + [_normalPerformanceRequest removeObject:operation]; + } else if (operation.request.priority == QCloudAbstractRequestPriorityLow) { + [_lowPerformanceRequest removeObject:operation]; + } else { + [_backgroundPerformanceRequest removeObject:operation]; + } + [_dataLock unlock]; + [self tryStartAnyOperation]; +} + +- (void)cancelByRequestID:(int64_t)requestID { + QCloudLogDebugP(@"HTTP",@"[%llu] cancelled by request id ", requestID); + [_dataLock lock]; + [self removeRequestInQueue:requestID]; + [self tryStartAnyOperation]; + [_dataLock unlock]; +} + +- (void)removeRequestInQueue:(int64_t)requestID { + @autoreleasepool { + void (^RemoveOperation)(NSMutableArray *array) = ^(NSMutableArray *array) { + for (QCloudRequestOperation *request in [array copy]) { + if (request.request.requestID == requestID) { + [array removeObject:request]; + QCloudLogDebugP(@"HTTP",@"[%llu] request removed successes!", requestID); + } + } + }; + RemoveOperation(_runningOperationArray); + RemoveOperation(_highPerfomanceRequest); + RemoveOperation(_lowPerformanceRequest); + RemoveOperation(_normalPerformanceRequest); + RemoveOperation(_backgroundPerformanceRequest); + } +} + +-(void)cancelAllOperation{ + @autoreleasepool { + void (^CancelOperation)(NSMutableArray *array) = ^(NSMutableArray *array) { + for (QCloudRequestOperation *request in [array copy]) { + [request.request cancel]; + } + }; + CancelOperation(_runningOperationArray); + CancelOperation(_highPerfomanceRequest); + CancelOperation(_lowPerformanceRequest); + CancelOperation(_normalPerformanceRequest); + CancelOperation(_backgroundPerformanceRequest); + } +} + +- (void)cancelByRequestIDs:(NSArray *)requestIDs { + [_dataLock lock]; + for (NSNumber *requestID in requestIDs) { + [self removeRequestInQueue:[requestID longLongValue]]; + } + [_dataLock unlock]; + [self tryStartAnyOperation]; +} + +- (void)onHandleNetworkSituationChange:(NSNotification *)notification { + NSString *descriptionString; + QCloudNetworkSituation networkSituation = (QCloudNetworkSituation)[notification.object integerValue]; + switch (networkSituation) { + case QCloudNetworkSituationWeakNetwork: + self.maxConcurrentCount = kWeakNetworkConcurrentCount; + descriptionString = @"弱网络"; + [self resetConcurrentCount]; + break; + case QCloudNetworkSituationGreatNetork: + self.maxConcurrentCount = kDefaultCouncurrentCount; + descriptionString = @"良好网络"; + default: + break; + } + QCloudLogDebugP(@"HTTP",@"网络环境发生变化,当前的网络环境为:%@", descriptionString); +} + +- (void)onHandleNetworkUploadSpeedUpadte:(NSNotification *)notification { + int concurrentCount = self.customConcurrentCount ? self.customConcurrentCount : self.maxConcurrentCount; + NSArray *speedLevelsArray = [notification.object copy]; + int64_t uploadSpeedIn30S = 0; + for (QCloudNetProfileLevel *level in speedLevelsArray) { + if (level.interval == 30) { + uploadSpeedIn30S = level.uploadSpped; + } + } + int64_t currentUploadSpeedPerOperation = uploadSpeedIn30S / concurrentCount; + //若每个任务速度大于250KB/s + static const int64_t increaseConcurrentCountThreashold = 250 * 1024; + static const int64_t decreaseConcurrentCountThreashold = 100 * 1024; +// NSLog(@"Current network speed per operation = %lu KB/S, uploadSpeedIn30S = %llu KB/s, max concurrent count =%lu",currentUploadSpeedPerOperation/(1024),uploadSpeedIn30S/1024,self.maxConcurrentCount); + if (currentUploadSpeedPerOperation > increaseConcurrentCountThreashold) { + self.uploadSpeedReachThresholdTimes++; + } else if (currentUploadSpeedPerOperation < decreaseConcurrentCountThreashold) { + self.uploadSpeedReachThresholdTimes--; + } else { + self.uploadSpeedReachThresholdTimes = 0; + } + if (self.uploadSpeedReachThresholdTimes > 5) { + [self incresetConcurrentCount]; + self.uploadSpeedReachThresholdTimes = 0; + }else if (self.uploadSpeedReachThresholdTimes < -5){ + [self decreaseConcurrentCount]; + self.uploadSpeedReachThresholdTimes = 0; + } +} + +- (void)incresetConcurrentCount { + int tempLimit = self.maxConcurrentCountLimit?self.maxConcurrentCountLimit:kDefaultCouncurrentCount; + if (self.maxConcurrentCount < tempLimit) { + QCloudLogDebugP(@"HTTP",@"concurernt count increased! previous concurrent count is %i ", self.maxConcurrentCount); + self.maxConcurrentCount++; + } + return; +} + +- (void)decreaseConcurrentCount { + if (self.maxConcurrentCount > kWeakNetworkConcurrentCount) { + QCloudLogDebugP(@"HTTP",@"concurernt count decreased! previous concurrent count is %i ", self.maxConcurrentCount); + self.maxConcurrentCount--; + } + return; +} + +- (void)resetConcurrentCount { + QCloudLogDebugP(@"HTTP",@"Max concurrent count has beed reset!"); + self.maxConcurrentCount = 1; +} +@end diff --git a/Pods/QCloudCore/QCloudCore/Classes/Base/QCLOUDRestNet/Operations/QCloudRequestOperation.h b/Pods/QCloudCore/QCloudCore/Classes/Base/QCLOUDRestNet/Operations/QCloudRequestOperation.h new file mode 100644 index 0000000..6f4b6ef --- /dev/null +++ b/Pods/QCloudCore/QCloudCore/Classes/Base/QCLOUDRestNet/Operations/QCloudRequestOperation.h @@ -0,0 +1,25 @@ +// +// QCloudRequestOperation.h +// Pods +// +// Created by Dong Zhao on 2017/3/10. +// +// + +#import + +@class QCloudAbstractRequest; + +@class QCloudRequestOperation; +@protocol QCloudRequestOperationDelegate +- (void)requestOperationFinish:(QCloudRequestOperation *)operation; +@end +@interface QCloudRequestOperation : NSObject +@property (nonatomic, weak) id delagte; +@property (nonatomic, strong, readonly) QCloudAbstractRequest *request; ++ (instancetype)new NS_UNAVAILABLE; +- (instancetype)init NS_UNAVAILABLE; +- (instancetype)initWithRequest:(QCloudAbstractRequest *)request NS_DESIGNATED_INITIALIZER; +- (void)execute; +- (void)main; +@end diff --git a/Pods/QCloudCore/QCloudCore/Classes/Base/QCLOUDRestNet/Operations/QCloudRequestOperation.m b/Pods/QCloudCore/QCloudCore/Classes/Base/QCLOUDRestNet/Operations/QCloudRequestOperation.m new file mode 100644 index 0000000..ea74eef --- /dev/null +++ b/Pods/QCloudCore/QCloudCore/Classes/Base/QCLOUDRestNet/Operations/QCloudRequestOperation.m @@ -0,0 +1,59 @@ +// +// QCloudRequestOperation.m +// Pods +// +// Created by Dong Zhao on 2017/3/10. +// +// + +#import "QCloudRequestOperation.h" +#import "QCloudHTTPRequest.h" +#import "QCloudNetEnv.h" +#import "QCloudHttpDNS.h" +#import "QCloudHTTPSessionManager_Private.h" +#import "QCloudHTTPSessionManager.h" +#import "QCloudURLSessionTaskData.h" +#import "QCloudHTTPRetryHanlder.h" +#import "QCloudLogger.h" +#import +@interface QCloudRequestOperation () +@property (nonatomic, strong, readonly) QCloudHTTPRequest *httpRequest; +@end +@implementation QCloudRequestOperation +@synthesize request = _request; +- (instancetype)initWithRequest:(QCloudAbstractRequest *)request { + self = [super init]; + if (!self) { + return self; + } + _request = request; + return self; +} + +- (QCloudHTTPRequest *)httpRequest { + return (QCloudHTTPRequest *)_request; +} + +- (void)execute { + dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_HIGH, 0), ^{ + [self main]; + }); +} + +- (void)prepareExecute { +} + +- (NSComparisonResult)compare:(QCloudRequestOperation *)operation { + if (self.request.priority < operation.request.priority) { + return NSOrderedAscending; + } else if (self.request.priority > operation.request.priority) { + return NSOrderedDescending; + } else { + return NSOrderedSame; + } +} + +- (void)main { + @throw [NSException exceptionWithName:@"com.tencent.qcloud" reason:@"您必须实现Main函数才能使用Operation方法" userInfo:nil]; +} +@end diff --git a/Pods/QCloudCore/QCloudCore/Classes/Base/QCLOUDRestNet/Profile/QCloudHttpMetrics.h b/Pods/QCloudCore/QCloudCore/Classes/Base/QCLOUDRestNet/Profile/QCloudHttpMetrics.h new file mode 100644 index 0000000..93e6c20 --- /dev/null +++ b/Pods/QCloudCore/QCloudCore/Classes/Base/QCLOUDRestNet/Profile/QCloudHttpMetrics.h @@ -0,0 +1,39 @@ +// +// QCloudHttpMetrics.h +// QCloudTernimalLab_CommonLogic +// +// Created by tencent on 5/27/16. +// Copyright © 2016 QCloudTernimalLab. All rights reserved. +// + +#import + +extern NSString *const kTaskTookTime; // kRNBenchmarkRTT; +extern NSString *const kCalculateMD5STookTime; +extern NSString *const kSignRequestTookTime; + +extern NSString *const kTotalSize; +extern NSString *const kDnsLookupTookTime; // kRNBenchmarkDNSLoopupTime +extern NSString *const kConnectTookTime; // kRNBenchmarkConnectionTime; +extern NSString *const kSecureConnectTookTime; // kRNBenchmarkSecureConnectionTime; + +extern NSString *const kWriteRequestBodyTookTime; //从发送第一个字节到发送完毕,kRNBenchmarkUploadTime +extern NSString *const kReadResponseHeaderTookTime; // kRNBenchmarkServerTime; +extern NSString *const kReadResponseBodyTookTime; // kRNBenchmarkDownploadTime; + +extern NSString *const kLocalAddress; +extern NSString *const kLocalPort; +extern NSString *const kRemoteAddress; +extern NSString *const kRemotePort; +extern NSString *const kHost; +@interface QCloudHttpMetrics : NSObject +- (void)benginWithKey:(NSString *)key; +- (void)markFinishWithKey:(NSString *)key; +- (void)directSetCost:(double)cost forKey:(NSString *)key; +- (void)directSetValue:(id)value forKey:(NSString *)key; + +- (double)costTimeForKey:(NSString *)key; +- (NSString *)objectForKey:(NSString *)key; +- (NSDictionary *)tastMetrics; +- (NSString *)readablityDescription; +@end diff --git a/Pods/QCloudCore/QCloudCore/Classes/Base/QCLOUDRestNet/Profile/QCloudHttpMetrics.m b/Pods/QCloudCore/QCloudCore/Classes/Base/QCLOUDRestNet/Profile/QCloudHttpMetrics.m new file mode 100644 index 0000000..496eca6 --- /dev/null +++ b/Pods/QCloudCore/QCloudCore/Classes/Base/QCLOUDRestNet/Profile/QCloudHttpMetrics.m @@ -0,0 +1,156 @@ +// +// QCloudHttpMetrics.m +// QCloudTernimalLab_CommonLogic +// +// Created by tencent on 5/27/16. +// Copyright © 2016 QCloudTernimalLab. All rights reserved. +// + +#import "QCloudHttpMetrics.h" + +NSString *const kTaskTookTime = @"kTaskTookTime"; +NSString *const kCalculateMD5STookTime = @"kCalculateMD5STookTime"; +NSString *const kSignRequestTookTime = @"kSignRequestTookTime"; +NSString *const kTotalSize = @"kTotalSize"; +NSString *const kDnsLookupTookTime = @"kDnsLookupTookTime"; +NSString *const kConnectTookTime = @"kConnectTookTime"; +NSString *const kSecureConnectTookTime = @"kSecureConnectTookTime"; +NSString *const kWriteRequestBodyTookTime = @"kWriteRequestBodyTookTime"; +NSString *const kReadResponseHeaderTookTime = @"kReadResponseHeaderTookTime"; +NSString *const kReadResponseBodyTookTime = @"kReadResponseBodyTookTime"; + +NSString *const kLocalAddress = @"kLocalAddress"; +NSString *const kLocalPort = @"kLocalPort"; +NSString *const kRemoteAddress = @"kRemoteAddress"; +NSString *const kRemotePort = @"kRemotePort"; +NSString *const kHost = @"kHost"; +@interface QCloudHttpMetrics () { + NSMutableDictionary *_beginCache; + NSMutableDictionary *_benchMarkCache; +} +@end + +@implementation QCloudHttpMetrics +- (instancetype)init { + self = [super init]; + if (!self) { + return self; + } + _beginCache = [NSMutableDictionary new]; + _benchMarkCache = [NSMutableDictionary new]; + return self; +} +- (void)benginWithKey:(NSString *)key { + if (!key) { + return; + } + @synchronized(self) { + _beginCache[key] = @(CFAbsoluteTimeGetCurrent()); + } +} + +- (void)markFinishWithKey:(NSString *)key { + if (!key) { + return; + } + @synchronized(self) { + double begin = [_beginCache[key] doubleValue]; + double value = CFAbsoluteTimeGetCurrent() - begin; + value = floor(value * 10000) / 10000; + _benchMarkCache[key] = @(value); + } +} + +- (void)directSetCost:(double)cost forKey:(NSString *)key { + if (!key) { + return; + } + @synchronized(self) { + _benchMarkCache[key] = @(cost); + } +} +- (void)directSetValue:(NSString *)value forKey:(NSString *)key { + if (!key) { + return; + } + @synchronized(self) { + _benchMarkCache[key] = value; + } +} +- (NSDictionary *)tastMetrics { + return _benchMarkCache; +} +- (double)costTimeForKey:(NSString *)key { + if (!key) { + return 0; + } + @synchronized(self) { + NSNumber *cost = _benchMarkCache[key]; + return [cost doubleValue]; + } +} + +- (NSString *)objectForKey:(NSString *)key { + if (!key) { + return @""; + } + @synchronized(self) { + return _benchMarkCache[key]; + } +} + +- (NSString *)readablityString:(NSString *)key { + if ([key isEqualToString:kTaskTookTime]) { + return @"整体请求耗时"; + } else if ([key isEqualToString:kReadResponseBodyTookTime]) { + return @"下行行传输耗时"; + } else if ([key isEqualToString:kWriteRequestBodyTookTime]) { + return @"上行传输耗时"; + } else if ([key isEqualToString:kReadResponseHeaderTookTime]) { + return @"服务器耗时"; + } else if ([key isEqualToString:kConnectTookTime]) { + return @"建立连接耗时"; + } else if ([key isEqualToString:kSecureConnectTookTime]) { + return @"建立安全连接"; + } else if ([key isEqualToString:kDnsLookupTookTime]) { + return @"DNS解析耗时"; + } else if ([key isEqualToString:kCalculateMD5STookTime]) { + return @"计算MD5耗时"; + } else if ([key isEqualToString:kSignRequestTookTime]) { + return @"获取签名耗时"; + } + return key; +} + +- (NSString *)readablityDescription { + NSDictionary *benchmark = nil; + @synchronized(self) { + benchmark = [_benchMarkCache copy]; + } + + NSMutableString *readStr = [NSMutableString new]; + + [readStr appendString:@"\n参数项\t\t\t消耗\n"]; + for (NSString *key in benchmark.allKeys) { + [readStr appendFormat:@"%@\t\t\t%f\n", [self readablityString:key], [benchmark[key] floatValue]]; + } + return readStr; +} + +- (NSString *)description { + NSString *desp = @""; + @try { + @synchronized(self) { + NSData *data = [NSJSONSerialization dataWithJSONObject:_benchMarkCache options:0 error:nil]; + if (!data) { + return @"{}"; + } + desp = [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding]; + } + } @catch (NSException *exception) { + desp = @""; + } @finally { + return desp; + } +} +@end diff --git a/Pods/QCloudCore/QCloudCore/Classes/Base/QCLOUDRestNet/Profile/QCloudNetProfile.h b/Pods/QCloudCore/QCloudCore/Classes/Base/QCLOUDRestNet/Profile/QCloudNetProfile.h new file mode 100644 index 0000000..d0eedb5 --- /dev/null +++ b/Pods/QCloudCore/QCloudCore/Classes/Base/QCLOUDRestNet/Profile/QCloudNetProfile.h @@ -0,0 +1,25 @@ +// +// QCloudNetProfile.h +// Pods +// +// Created by Dong Zhao on 2017/3/22. +// +// + +#import +#define kQCloudNetProfileUploadSpeedUpdate @"kQCloudNetProfileUploadSpeedUpdate" +@interface QCloudNetProfile : NSObject ++ (QCloudNetProfile *)shareProfile; +- (void)checkSpeed; +- (void)pointDownload:(int64_t)bytes; +- (void)pointUpload:(int64_t)bytes; +@end + +@interface QCloudNetProfileLevel : NSObject { + NSMutableArray *_downloadPoints; + NSMutableArray *_uploadPoints; +} +@property (atomic, assign, readonly) int64_t downloadSpeed; +@property (atomic, assign, readonly) int64_t uploadSpped; +@property (atomic, assign) NSTimeInterval interval; +@end diff --git a/Pods/QCloudCore/QCloudCore/Classes/Base/QCLOUDRestNet/Profile/QCloudNetProfile.m b/Pods/QCloudCore/QCloudCore/Classes/Base/QCLOUDRestNet/Profile/QCloudNetProfile.m new file mode 100644 index 0000000..bf135b5 --- /dev/null +++ b/Pods/QCloudCore/QCloudCore/Classes/Base/QCLOUDRestNet/Profile/QCloudNetProfile.m @@ -0,0 +1,183 @@ +// +// QCloudNetProfile.m +// Pods +// +// Created by Dong Zhao on 2017/3/22. +// +// + +#import "QCloudNetProfile.h" +#import "QCloudLogger.h" +@interface QCloudNetProfilePoint : NSObject +@property (nonatomic, assign) int64_t uploadBytes; +@property (nonatomic, assign) int64_t downloadBytes; +@property (atomic, assign) NSTimeInterval pointTime; +@end + +@implementation QCloudNetProfilePoint + +@end + +@implementation QCloudNetProfileLevel +- (instancetype)initWithInterval:(NSTimeInterval)interval { + self = [super init]; + if (!self) { + return self; + } + _interval = interval; + _downloadPoints = [NSMutableArray new]; + _uploadPoints = [NSMutableArray new]; + return self; +} + +- (void)pointDownload:(QCloudNetProfilePoint *)downloadPoint { + CFTimeInterval current = CFAbsoluteTimeGetCurrent(); + for (QCloudNetProfilePoint *point in [_downloadPoints copy]) { + if (current - point.pointTime > self.interval) { + [_downloadPoints removeObject:point]; + } + } + [_downloadPoints addObject:downloadPoint]; +} + +- (int64_t)downloadSpeed { + CFTimeInterval current = CFAbsoluteTimeGetCurrent(); + for (QCloudNetProfilePoint *point in [_downloadPoints copy]) { + if (current - point.pointTime > self.interval) { + [_downloadPoints removeObject:point]; + } + } + if (_downloadPoints.count == 0) { + return 0; + } + QCloudNetProfilePoint *beginPoint = _downloadPoints.firstObject; + QCloudNetProfilePoint *lastPoint = _downloadPoints.lastObject; + NSTimeInterval time = lastPoint.pointTime - beginPoint.pointTime; + if (time == 0) { + time = 0.5; + } + int64_t total = 0; + for (QCloudNetProfilePoint *point in _downloadPoints) { + total += point.downloadBytes; + } + return total / time; +} + +- (int64_t)uploadSpped { + CFTimeInterval current = CFAbsoluteTimeGetCurrent(); + for (QCloudNetProfilePoint *point in [_uploadPoints copy]) { + if (current - point.pointTime > self.interval) { + [_uploadPoints removeObject:point]; + } + } + if (_uploadPoints.count == 0) { + return 0; + } + QCloudNetProfilePoint *beginPoint = _uploadPoints.firstObject; + QCloudNetProfilePoint *lastPoint = _uploadPoints.lastObject; + NSTimeInterval time = lastPoint.pointTime - beginPoint.pointTime; + if (time == 0) { + time = 0.5; + } + int64_t total = 0; + for (QCloudNetProfilePoint *point in _uploadPoints) { + total += point.uploadBytes; + } + return total / time; +} +- (void)pointUpload:(QCloudNetProfilePoint *)downloadPoint { + CFTimeInterval current = CFAbsoluteTimeGetCurrent(); + for (QCloudNetProfilePoint *point in [_uploadPoints copy]) { + if (current - point.pointTime > self.interval) { + [_uploadPoints removeObject:point]; + } + } + [_uploadPoints addObject:downloadPoint]; +} + +@end + +typedef NS_ENUM(NSInteger, QCloudNetSpeedLevel) { QCloudNetSpeedLevel1s, QCloudNetSpeedLevel1m, QCloudNetSpeedLevel30m }; + +@interface QCloudNetProfile () { + CFTimeInterval _checkPointInterval; + dispatch_source_t _timer; + // + NSMutableArray *_sppedLevels; + // + CFTimeInterval _lastCheckPointTimeInterval; + dispatch_queue_t _readWriteQueue; +} + +@end +@implementation QCloudNetProfile + ++ (QCloudNetProfile *)shareProfile { + static QCloudNetProfile *profile; + static dispatch_once_t onceToken; + dispatch_once(&onceToken, ^{ + profile = [QCloudNetProfile new]; + }); + return profile; +} + +- (void)checkSpeed { + dispatch_sync(_readWriteQueue, ^{ + for (QCloudNetProfileLevel *level in self->_sppedLevels) { + QCloudLogDebugN(@"",@"%f download spped %lld bytes/s", level.interval, level.downloadSpeed); + QCloudLogDebugN(@"",@"%f upload speed %lld bytes/s", level.interval, level.uploadSpped); + } + }); +} +- (instancetype)init { + self = [super init]; + if (!self) { + return self; + } + //#ifdef DEBUG + // _timer = dispatch_source_create(DISPATCH_SOURCE_TYPE_TIMER, 0, 0, dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_HIGH, 0)); + // _checkPointInterval = 0.5; + // + // if (_timer) { + // __weak typeof(self) weakSelf = self; + // dispatch_source_set_timer(_timer, dispatch_time(DISPATCH_TIME_NOW,_checkPointInterval * NSEC_PER_SEC ), _checkPointInterval * + // NSEC_PER_SEC, (1ull * NSEC_PER_SEC) / 10.0); dispatch_source_set_event_handler(_timer, ^{ + // [weakSelf checkSpeed]; + // }); + // dispatch_resume(_timer); + // } + //#endif + // + _readWriteQueue = dispatch_queue_create("com.tencent.network.profile.level", DISPATCH_QUEUE_CONCURRENT); + _sppedLevels = [NSMutableArray new]; + [_sppedLevels addObject:[[QCloudNetProfileLevel alloc] initWithInterval:1]]; + [_sppedLevels addObject:[[QCloudNetProfileLevel alloc] initWithInterval:30]]; + [_sppedLevels addObject:[[QCloudNetProfileLevel alloc] initWithInterval:60]]; + return self; +} + +- (void)pointDownload:(int64_t)bytes { + dispatch_barrier_async(_readWriteQueue, ^{ + for (QCloudNetProfileLevel *level in self->_sppedLevels) { + QCloudNetProfilePoint *point = [QCloudNetProfilePoint new]; + point.pointTime = CFAbsoluteTimeGetCurrent(); + point.downloadBytes = bytes; + [level pointDownload:point]; + } + [[NSNotificationCenter defaultCenter] postNotificationName:kQCloudNetProfileUploadSpeedUpdate object:self->_sppedLevels]; + }); +} + +- (void)pointUpload:(int64_t)bytes { + dispatch_barrier_async(_readWriteQueue, ^{ + for (QCloudNetProfileLevel *level in self->_sppedLevels) { + QCloudNetProfilePoint *point = [QCloudNetProfilePoint new]; + point.pointTime = CFAbsoluteTimeGetCurrent(); + point.uploadBytes = bytes; + [level pointUpload:point]; + } + [[NSNotificationCenter defaultCenter] postNotificationName:kQCloudNetProfileUploadSpeedUpdate object:self->_sppedLevels]; + }); +} + +@end diff --git a/Pods/QCloudCore/QCloudCore/Classes/Base/QCLOUDRestNet/QCLOUDRestNet.h b/Pods/QCloudCore/QCloudCore/Classes/Base/QCLOUDRestNet/QCLOUDRestNet.h new file mode 100644 index 0000000..5864529 --- /dev/null +++ b/Pods/QCloudCore/QCloudCore/Classes/Base/QCLOUDRestNet/QCLOUDRestNet.h @@ -0,0 +1,28 @@ +// +// RestNet.h +// RestNet +// +// Created by tencent on 6/1/16. +// Copyright © 2016 QCloudTernimalLab. All rights reserved. +// + +#ifndef RestNet_h +#define RestNet_h + +#import "QCloudNetworkingAPI.h" +#import "QCloudEnv.h" +#import "QCloudHTTPSessionManager.h" +#import "QCloudHTTPRequest.h" +#import "QCloudHTTPRequestDelegate.h" +#import "QCloudRequestData.h" +#import "QCloudRequestSerializer.h" +#import "QCloudResponseSerializer.h" +#import "NSError+QCloudNetworking.h" +#import "QCloudHttpDNS.h" +#import "QCloudHosts.h" +#import "QCloudService.h" +#import "QCloudNetResponse.h" +#import "QCloudServiceConfiguration.h" +#import "QCloudURLTools.h" + +#endif /* RestNet_h */ diff --git a/Pods/QCloudCore/QCloudCore/Classes/Base/QCLOUDRestNet/QCloudEnv/QCloudEnv.h b/Pods/QCloudCore/QCloudCore/Classes/Base/QCLOUDRestNet/QCloudEnv/QCloudEnv.h new file mode 100644 index 0000000..85cc354 --- /dev/null +++ b/Pods/QCloudCore/QCloudCore/Classes/Base/QCLOUDRestNet/QCloudEnv/QCloudEnv.h @@ -0,0 +1,38 @@ +// +// QCloudEnv.h +// QCloudTernimalLab_CommonLogic +// +// Created by tencent on 16/2/26. +// Copyright © 2016年 QCloudTernimalLab. All rights reserved. +// + +#import + +typedef NS_ENUM(NSUInteger, QCloudEnviroment) { + QCloudNormalEnviroment = 0, + QCloudDebugEnviroment = 1, + QCloudTestEnviroment = 2, +}; +/** + 判断当前是否是正式环境 + */ +#define IS_QCloud_NORMAL_ENV __IS_QCloud_NORMAL_ENV() +/** + 判断当前是否是测试环境 + */ +#define IS_QCloud_TEST_ENV __IS_QCloud_TEST_ENV() + +/** + * 判断当前是否是开发环境 + */ +#define IS_QCloud_DEBUG_ENV __IS_QCloud_DEBUG_ENV() + +FOUNDATION_EXTERN BOOL __IS_QCloud_NORMAL_ENV(void); +FOUNDATION_EXTERN BOOL __IS_QCloud_TEST_ENV(void); +FOUNDATION_EXTERN BOOL __IS_QCloud_DEBUG_ENV(void); + +/** + 切换网络环境 + @param env 网络环境 + */ +void QCloudChangeGlobalEnviroment(QCloudEnviroment env); diff --git a/Pods/QCloudCore/QCloudCore/Classes/Base/QCLOUDRestNet/QCloudEnv/QCloudEnv.m b/Pods/QCloudCore/QCloudCore/Classes/Base/QCLOUDRestNet/QCloudEnv/QCloudEnv.m new file mode 100644 index 0000000..d28228c --- /dev/null +++ b/Pods/QCloudCore/QCloudCore/Classes/Base/QCLOUDRestNet/QCloudEnv/QCloudEnv.m @@ -0,0 +1,36 @@ +// +// QCloudEnv.m +// QCloudTernimalLab_CommonLogic +// +// Created by tencent on 16/2/26. +// Copyright © 2016年 QCloudTernimalLab. All rights reserved. +// + +#import "QCloudEnv.h" + +static QCloudEnviroment QCloudGlobalEnviroment = QCloudNormalEnviroment; + +void QCloudChangeGlobalEnviroment(QCloudEnviroment env) { + QCloudGlobalEnviroment = env; +} + +BOOL __IS_QCloud_NORMAL_ENV() { + if (QCloudGlobalEnviroment == QCloudNormalEnviroment) { + return YES; + } + return NO; +} + +BOOL __IS_QCloud_TEST_ENV() { + if (QCloudGlobalEnviroment == QCloudTestEnviroment) { + return YES; + } + return NO; +} + +BOOL __IS_QCloud_DEBUG_ENV() { + if (QCloudGlobalEnviroment == QCloudDebugEnviroment) { + return YES; + } + return NO; +} diff --git a/Pods/QCloudCore/QCloudCore/Classes/Base/QCLOUDRestNet/QCloudSecret/NSString+QCloudSHA.h b/Pods/QCloudCore/QCloudCore/Classes/Base/QCLOUDRestNet/QCloudSecret/NSString+QCloudSHA.h new file mode 100644 index 0000000..1e24b36 --- /dev/null +++ b/Pods/QCloudCore/QCloudCore/Classes/Base/QCLOUDRestNet/QCloudSecret/NSString+QCloudSHA.h @@ -0,0 +1,15 @@ +// +// NSString+QCloudSHA.h +// Pods +// +// Created by Dong Zhao on 2017/5/2. +// +// + +#import + +@interface NSString (QCloudSHA) +- (NSString *)qcloud_sha1; ++ (NSString *)qcloudHMACHexsha1:(NSString *)data secret:(NSString *)key; ++ (NSData *)qcloudHmacSha1Data:(NSString *)data secret:(NSString *)key; +@end diff --git a/Pods/QCloudCore/QCloudCore/Classes/Base/QCLOUDRestNet/QCloudSecret/NSString+QCloudSHA.mm b/Pods/QCloudCore/QCloudCore/Classes/Base/QCLOUDRestNet/QCloudSecret/NSString+QCloudSHA.mm new file mode 100644 index 0000000..5105649 --- /dev/null +++ b/Pods/QCloudCore/QCloudCore/Classes/Base/QCLOUDRestNet/QCloudSecret/NSString+QCloudSHA.mm @@ -0,0 +1,74 @@ +// +// NSString+QCloudSHA.m +// Pods +// +// Created by Dong Zhao on 2017/5/2. +// +// + +#import "NSString+QCloudSHA.h" +#import +#import +#import +#include +#include +@implementation NSString (QCloudSHA) +- (NSString *)qcloud_sha1 +{ + NSData *data = [self dataUsingEncoding:NSUTF8StringEncoding]; + uint8_t digest[CC_SHA1_DIGEST_LENGTH]; + + CC_SHA1(data.bytes,(CC_LONG) data.length, digest); + + NSMutableString *output = [NSMutableString stringWithCapacity:CC_SHA1_DIGEST_LENGTH * 2]; + + for (int i = 0; i < CC_SHA1_DIGEST_LENGTH; i++) + { + [output appendFormat:@"%02x", digest[i]]; + } + + return output; +} + ++ (NSData *)qcloudHmacSha1Data:(NSString *)data secret:(NSString *)key +{ + const char *cKey = [key cStringUsingEncoding:NSASCIIStringEncoding]; + const char *cData = [data cStringUsingEncoding:NSASCIIStringEncoding]; + + unsigned char cHMAC[CC_SHA1_DIGEST_LENGTH]; + + CCHmac(kCCHmacAlgSHA1, cKey, strlen(cKey), cData, strlen(cData), cHMAC); + + std::string hmac((char*)cHMAC, CC_SHA1_DIGEST_LENGTH); + + NSData *HMAC = [[NSData alloc] initWithBytes:cHMAC length:sizeof(cHMAC)]; + return HMAC; +} + + ++ (NSString *)qcloudHMACHexsha1:(NSString *)data secret:(NSString *)key { + + const char *cKey = [key cStringUsingEncoding:NSASCIIStringEncoding]; + const char *cData = [data cStringUsingEncoding:NSASCIIStringEncoding]; + + unsigned char cHMAC[CC_SHA1_DIGEST_LENGTH]; + + CCHmac(kCCHmacAlgSHA1, cKey, strlen(cKey), cData, strlen(cData), cHMAC); + + NSData *HMAC = [[NSData alloc] initWithBytes:cHMAC length:sizeof(cHMAC)]; + const unsigned char *dataBuffer = (const unsigned char *)[HMAC bytes]; + + if (!dataBuffer) { + return [NSString string]; + } + + NSUInteger dataLength = [HMAC length]; + NSMutableString *hexString = [NSMutableString stringWithCapacity:(dataLength * 2)]; + + for (int i = 0; i < dataLength; ++i) { + [hexString appendFormat:@"%02x", (unsigned int)dataBuffer[i]]; + } + + return [NSString stringWithString:hexString]; +} +@end diff --git a/Pods/QCloudCore/QCloudCore/Classes/Base/QCLOUDRestNet/Retry/QCloudHTTPRetryHanlder.h b/Pods/QCloudCore/QCloudCore/Classes/Base/QCLOUDRestNet/Retry/QCloudHTTPRetryHanlder.h new file mode 100644 index 0000000..8e19905 --- /dev/null +++ b/Pods/QCloudCore/QCloudCore/Classes/Base/QCLOUDRestNet/Retry/QCloudHTTPRetryHanlder.h @@ -0,0 +1,60 @@ +// +// QCloudHTTPRetryHanlder.h +// QCloudNetworking +// +// Created by tencent on 16/2/24. +// Copyright © 2016年 QCloudTernimalLab. All rights reserved. +// + +#import +#import "QCloudURLSessionTaskData.h" +typedef void (^QCloudHTTPRetryFunction)(void); +@protocol QCloudHttpRetryHandlerProtocol + +- (BOOL)shouldRetry:(QCloudURLSessionTaskData *)task error:(NSError *)error; + +@end + +// 配置全局重试策略。 +// 开启: openConfig = YES; 并设置 maxCount & sleepStep。 +// 关闭: openConfig = NO; +@interface QCloudHTTPRetryConfig : NSObject + +@property (nonatomic, assign) NSInteger maxCount; + +@property (nonatomic, assign) NSTimeInterval sleepStep; + +// 默认未开启,使用 QCloudHTTPRetryHanlder 中的 maxCount&sleepStep。 +@property (nonatomic, assign) BOOL openConfig; + ++ (QCloudHTTPRetryConfig *)globalRetryConfig; + +@end + +@interface QCloudHTTPRetryHanlder : NSObject { +@protected + NSSet *_errorCode; +} ++ (QCloudHTTPRetryHanlder *)defaultRetryHandler; + +@property (nonatomic, weak) id delegate; + +// 默认使用 QCloudHTTPRetryConfig.maxCount; 默认值 3 +@property (nonatomic, assign) NSInteger maxCount; +/** + sleeptime = sleepStep * 1^2 , + */ +// 默认使用 QCloudHTTPRetryConfig.sleepStep; 默认值 1 +@property (nonatomic, assign) NSTimeInterval sleepStep; +- (instancetype)initWithMaxCount:(NSInteger)maxCount sleepTime:(NSTimeInterval)sleepStep; + +/** + try to exe fuction if it can be retry + @param function the function to exe when satify the args + @param error the error occur , it contains the args that will be used to judge retrying + @return if it can be retry then return YES, otherwise return NO; + */ +- (BOOL)retryFunction:(QCloudHTTPRetryFunction)function whenError:(NSError *)error; + +- (void)reset; +@end diff --git a/Pods/QCloudCore/QCloudCore/Classes/Base/QCLOUDRestNet/Retry/QCloudHTTPRetryHanlder.m b/Pods/QCloudCore/QCloudCore/Classes/Base/QCLOUDRestNet/Retry/QCloudHTTPRetryHanlder.m new file mode 100644 index 0000000..cf94a15 --- /dev/null +++ b/Pods/QCloudCore/QCloudCore/Classes/Base/QCLOUDRestNet/Retry/QCloudHTTPRetryHanlder.m @@ -0,0 +1,111 @@ +// +// QCloudHTTPRetryHanlder.m +// QCloudNetworking +// +// Created by tencent on 16/2/24. +// Copyright © 2016年 QCloudTernimalLab. All rights reserved. +// + +#import "QCloudHTTPRetryHanlder.h" +#import "QCloudNetEnv.h" +#import "QCloudLogger.h" +#import "NSError+QCloudNetworking.h" + +@implementation QCloudHTTPRetryConfig + ++ (QCloudHTTPRetryConfig *)globalRetryConfig{ + static QCloudHTTPRetryConfig * config = nil; + static dispatch_once_t onceToken; + dispatch_once(&onceToken, ^{ + config = [[QCloudHTTPRetryConfig alloc]init]; + }); + return config; +} + +- (instancetype)init{ + if(self = [super init]){ + _maxCount = 0; + _sleepStep = 0; + } + return self; +} + +@end + +@interface QCloudHTTPRetryHanlder () +@end + +@implementation QCloudHTTPRetryHanlder { + int _currentTryCount; + // NSSet* _errorRetryCode; + QCloudHTTPRetryFunction _retryFunction; +} + ++ (QCloudHTTPRetryHanlder *)defaultRetryHandler { + return [[QCloudHTTPRetryHanlder alloc] initWithMaxCount:3 sleepTime:1]; +} +- (instancetype)initWithMaxCount:(NSInteger)maxCount sleepTime:(NSTimeInterval)sleepStep { + self = [super init]; + if (!self) { + return self; + } + _sleepStep = sleepStep; + _maxCount = maxCount; + [self reset]; + return self; +} + +- (void)reset { + _currentTryCount = 0; +} + +- (BOOL)retryFunction:(QCloudHTTPRetryFunction)function whenError:(NSError *)error; +{ + QCloudLogTrance(); + if (!function) { + return NO; + } + if (![self canRetryWhenError:error]) { + return NO; + } + if (function) { + function(); + } + _currentTryCount++; + return YES; +} + +- (BOOL)canRetryWhenError:(NSError *)error { + if ([error.domain isEqualToString:NSURLErrorDomain]) { + if (error.code == NSURLErrorTimedOut) { + [[NSNotificationCenter defaultCenter] postNotificationName:kNetworkSituationChangeKey object:@(QCloudNetworkSituationWeakNetwork)]; + } + } + + if (_currentTryCount >= self.maxCount) { + QCloudLogDebugP(@"HTTP",@"超过了最大重试次数,不再重试"); + return NO; + } + + if(error.code == QCloudNetworkErrorCodeDomainInvalid){ + return YES; + } + + return [NSError isNetworkErrorAndRecoverable:error] || ([error.domain isEqualToString:kQCloudNetworkDomain] && error.code >= 500); +} + +- (NSInteger)maxCount{ + if(QCloudHTTPRetryConfig.globalRetryConfig.openConfig){ + return QCloudHTTPRetryConfig.globalRetryConfig.maxCount; + } + return _maxCount; +} + +- (NSTimeInterval)sleepStep{ + if(QCloudHTTPRetryConfig.globalRetryConfig.openConfig){ + return QCloudHTTPRetryConfig.globalRetryConfig.sleepStep; + } + return _sleepStep; +} + +@end diff --git a/Pods/QCloudCore/QCloudCore/Classes/Base/QCLOUDRestNet/Retry/QCloudHTTPTaskDelayManager.h b/Pods/QCloudCore/QCloudCore/Classes/Base/QCLOUDRestNet/Retry/QCloudHTTPTaskDelayManager.h new file mode 100644 index 0000000..c18d62e --- /dev/null +++ b/Pods/QCloudCore/QCloudCore/Classes/Base/QCLOUDRestNet/Retry/QCloudHTTPTaskDelayManager.h @@ -0,0 +1,24 @@ +// +// QCloudHTTPTaskDelayManager.h +// CLSLogger +// +// Created by wjielai on 2020/4/29. +// + +#import + +NS_ASSUME_NONNULL_BEGIN + +@interface QCloudHTTPTaskDelayManager : NSObject + +- (instancetype)initWithStart:(NSInteger)startBackoff max:(NSInteger)maxBackoff; + +- (void)reset; + +- (void)increase; + +- (NSInteger)getDelay; + +@end + +NS_ASSUME_NONNULL_END diff --git a/Pods/QCloudCore/QCloudCore/Classes/Base/QCLOUDRestNet/Retry/QCloudHTTPTaskDelayManager.m b/Pods/QCloudCore/QCloudCore/Classes/Base/QCLOUDRestNet/Retry/QCloudHTTPTaskDelayManager.m new file mode 100644 index 0000000..240b133 --- /dev/null +++ b/Pods/QCloudCore/QCloudCore/Classes/Base/QCLOUDRestNet/Retry/QCloudHTTPTaskDelayManager.m @@ -0,0 +1,45 @@ +// +// QCloudHTTPTaskDelayManager.m +// CLSLogger +// +// Created by wjielai on 2020/4/29. +// + +#import "QCloudHTTPTaskDelayManager.h" + +@implementation QCloudHTTPTaskDelayManager { + NSInteger initDelay; + NSInteger maxDelay; + NSInteger currentDelay; +} + +- (instancetype)initWithStart:(NSInteger)startBackoff max:(NSInteger)maxBackoff { + self = [super init]; + if (self) { + initDelay = startBackoff; + maxDelay = maxBackoff; + currentDelay = 0; + } + return self; +} + +- (void)reset { + @synchronized(self) { + currentDelay = 0; + } +} + +- (void)increase { + @synchronized(self) { + NSInteger cd = currentDelay; + currentDelay = MIN(MAX(cd * 2, initDelay), maxDelay); + } +} + +- (NSInteger)getDelay { + @synchronized(self) { + return currentDelay; + } +} + +@end diff --git a/Pods/QCloudCore/QCloudCore/Classes/Base/QCLOUDRestNet/Retry/QCloudUploadPartRequestRetryHandler.h b/Pods/QCloudCore/QCloudCore/Classes/Base/QCLOUDRestNet/Retry/QCloudUploadPartRequestRetryHandler.h new file mode 100644 index 0000000..f4a2e77 --- /dev/null +++ b/Pods/QCloudCore/QCloudCore/Classes/Base/QCLOUDRestNet/Retry/QCloudUploadPartRequestRetryHandler.h @@ -0,0 +1,11 @@ +// +// UploadPartRequestRetryHandler.h +// Pods +// +// Created by erichmzhang(张恒铭) on 2017/7/21. +// +// +#import "QCloudHTTPRetryHanlder.h" +@interface QCloudUploadPartRequestRetryHandler : QCloudHTTPRetryHanlder + +@end diff --git a/Pods/QCloudCore/QCloudCore/Classes/Base/QCLOUDRestNet/Retry/QCloudUploadPartRequestRetryHandler.m b/Pods/QCloudCore/QCloudCore/Classes/Base/QCLOUDRestNet/Retry/QCloudUploadPartRequestRetryHandler.m new file mode 100644 index 0000000..c04ee60 --- /dev/null +++ b/Pods/QCloudCore/QCloudCore/Classes/Base/QCLOUDRestNet/Retry/QCloudUploadPartRequestRetryHandler.m @@ -0,0 +1,19 @@ +// +// UploadPartRequestRetryHandler.m +// Pods +// +// Created by erichmzhang(张恒铭) on 2017/7/21. +// +// + +#import "QCloudUploadPartRequestRetryHandler.h" + +@implementation QCloudUploadPartRequestRetryHandler + +- (instancetype)initWithMaxCount:(NSInteger)maxCount sleepTime:(NSTimeInterval)sleepStep { + self = [super initWithMaxCount:maxCount sleepTime:sleepStep]; + _errorCode = [NSSet setWithObjects:@(kCFURLErrorTimedOut), @(kCFURLErrorNetworkConnectionLost), @(kCFURLErrorNotConnectedToInternet), + @(kCFURLErrorCannotConnectToHost), nil]; + return self; +} +@end diff --git a/Pods/QCloudCore/QCloudCore/Classes/Base/QCLOUDRestNet/SessionSupport/NSObject+HTTPHeadersContainer.h b/Pods/QCloudCore/QCloudCore/Classes/Base/QCLOUDRestNet/SessionSupport/NSObject+HTTPHeadersContainer.h new file mode 100644 index 0000000..3efa1d1 --- /dev/null +++ b/Pods/QCloudCore/QCloudCore/Classes/Base/QCLOUDRestNet/SessionSupport/NSObject+HTTPHeadersContainer.h @@ -0,0 +1,14 @@ +// +// NSObject+HTTPHeadersContainer.h +// QCloudCore +// +// Created by Dong Zhao on 2017/11/28. +// + +#import + +@interface NSObject (HTTPHeadersContainer) +@property (nonatomic, strong) NSHTTPURLResponse *__originHTTPURLResponse__; + +@property (nonatomic, strong) NSData *__originHTTPResponseData__; +@end diff --git a/Pods/QCloudCore/QCloudCore/Classes/Base/QCLOUDRestNet/SessionSupport/NSObject+HTTPHeadersContainer.m b/Pods/QCloudCore/QCloudCore/Classes/Base/QCLOUDRestNet/SessionSupport/NSObject+HTTPHeadersContainer.m new file mode 100644 index 0000000..3f21f2e --- /dev/null +++ b/Pods/QCloudCore/QCloudCore/Classes/Base/QCLOUDRestNet/SessionSupport/NSObject+HTTPHeadersContainer.m @@ -0,0 +1,30 @@ +// +// NSObject+HTTPHeadersContainer.m +// QCloudCore +// +// Created by Dong Zhao on 2017/11/28. +// + +#import "NSObject+HTTPHeadersContainer.h" +#import + +static void *kQCloudOriginHTTPHeaders = &kQCloudOriginHTTPHeaders; +@implementation NSObject (HTTPHeadersContainer) + +- (void)set__originHTTPURLResponse__:(NSHTTPURLResponse *)__originHTTPURLResponse__ { + objc_setAssociatedObject(self, kQCloudOriginHTTPHeaders, __originHTTPURLResponse__, OBJC_ASSOCIATION_RETAIN_NONATOMIC); +} + +- (NSHTTPURLResponse *)__originHTTPURLResponse__ { + return objc_getAssociatedObject(self, kQCloudOriginHTTPHeaders); +} + +- (void)set__originHTTPResponseData__:(NSData *)__originHTTPResponseData__ { + objc_setAssociatedObject(self, @selector(set__originHTTPResponseData__:), __originHTTPResponseData__, OBJC_ASSOCIATION_RETAIN_NONATOMIC); +} + +- (NSData *)__originHTTPResponseData__ { + return objc_getAssociatedObject(self, @selector(set__originHTTPResponseData__:)); +} + +@end diff --git a/Pods/QCloudCore/QCloudCore/Classes/Base/QCLOUDRestNet/SessionSupport/QCloudHTTPRequest_SessionPrivate.h b/Pods/QCloudCore/QCloudCore/Classes/Base/QCLOUDRestNet/SessionSupport/QCloudHTTPRequest_SessionPrivate.h new file mode 100644 index 0000000..c690102 --- /dev/null +++ b/Pods/QCloudCore/QCloudCore/Classes/Base/QCLOUDRestNet/SessionSupport/QCloudHTTPRequest_SessionPrivate.h @@ -0,0 +1,12 @@ +// +// QCloudHTTPRequest_SessionPrivate.h +// QCloudTernimalLab_CommonLogic +// +// Created by tencent on 5/12/16. +// Copyright © 2016 QCloudTernimalLab. All rights reserved. +// + +#import "QCloudHTTPRequest.h" + +@interface QCloudHTTPRequest () +@end diff --git a/Pods/QCloudCore/QCloudCore/Classes/Base/QCLOUDRestNet/SessionSupport/QCloudHTTPSessionManager.h b/Pods/QCloudCore/QCloudCore/Classes/Base/QCLOUDRestNet/SessionSupport/QCloudHTTPSessionManager.h new file mode 100644 index 0000000..8e3d006 --- /dev/null +++ b/Pods/QCloudCore/QCloudCore/Classes/Base/QCLOUDRestNet/SessionSupport/QCloudHTTPSessionManager.h @@ -0,0 +1,28 @@ +// +// QCloudHTTPSessionManager.ha +// QCloudTernimalLab_CommonLogic +// +// Created by tencent on 16/3/30. +// Copyright © 2016年 QCloudTernimalLab. All rights reserved. +// + +#import +#import "QCloudNetworkingAPI.h" + +@class QCloudOperationQueue; +@class QCloudThreadSafeMutableDictionary; +typedef void (^QCloudURLSessionDidFinishEventsForBackgroundURLSessionBlock)(void); + +@interface QCloudHTTPSessionManager : NSObject +@property (nonatomic, strong) NSURLSessionConfiguration *configuration; + +@property (copy, nonatomic) QCloudURLSessionDidFinishEventsForBackgroundURLSessionBlock didFinishEventsForBackgroundURLSession; +FOUNDATION_EXTERN QCloudThreadSafeMutableDictionary *cloudBackGroundSessionManagersCache; ++ (QCloudHTTPSessionManager *)shareClient; +@property (nonatomic, assign) int customConcurrentCount; + +@property (nonatomic, assign) int maxConcurrentCountLimit; + +- (void)requestOperationFinishWithRequestId:(int64_t)requestID; + +@end diff --git a/Pods/QCloudCore/QCloudCore/Classes/Base/QCLOUDRestNet/SessionSupport/QCloudHTTPSessionManager.m b/Pods/QCloudCore/QCloudCore/Classes/Base/QCLOUDRestNet/SessionSupport/QCloudHTTPSessionManager.m new file mode 100644 index 0000000..345cc72 --- /dev/null +++ b/Pods/QCloudCore/QCloudCore/Classes/Base/QCLOUDRestNet/SessionSupport/QCloudHTTPSessionManager.m @@ -0,0 +1,734 @@ +// +// QCloudHTTPSessionManager.m +// QCloudTernimalLab_CommonLogic +// +// Created by tencent on 16/3/30. +// Copyright © 2016年 QCloudTernimalLab. All rights reserved. +// + +#import "QCloudHTTPSessionManager.h" +#import "QCloudHTTPRequest.h" +#import "QCloudEnv.h" +#import "QCloudHttpDNS.h" +#import "QCloudHTTPRetryHanlder.h" +#import "QCloudURLSessionTaskData.h" +#import +#import "QCloudHTTPRequest_RequestID.h" +#import "QCloudHttpMetrics.h" +#import "QCloudNetEnv.h" +#import "QCloudHTTPRequestOperation.h" +#import "QCloudLogger.h" +#import "QCloudNetProfile.h" +#import "QCloudOperationQueue.h" +#import "NSError+QCloudNetworking.h" +#import "QCloudFileUtils.h" +#import "QCloudFileOffsetBody.h" +#import "QCloudRequestData.h" +#import "QCloudService.h" +#import "UIDevice+QCloudFCUUID.h" +#import "QCloudThreadSafeMutableDictionary.h" +#import "QCloudWeakProxy.h" +#import "QCloudLoaderManager.h" +#ifndef __IPHONE_13_0 +#define __IPHONE_13_0 130000 +#endif + +NSString *TaskDataKey(int64_t identifier) { + return [NSString stringWithFormat:@"data-%lld", identifier]; +} + +NSString *TaskMapKey(NSURLSessionTask *task) { + return [NSString stringWithFormat:@"%p", (void *)task]; +} +NSString *const kQCloudRestNetURLUsageNotification = @"kQCloudRestNetURLUsageNotification"; + +QCloudThreadSafeMutableDictionary *cloudBackGroundSessionManagersCache; +QCloudThreadSafeMutableDictionary *QCloudBackgroundSessionManagerCache(void) { + static dispatch_once_t onceToken; + dispatch_once(&onceToken, ^{ + cloudBackGroundSessionManagersCache = [QCloudThreadSafeMutableDictionary new]; + }); + return cloudBackGroundSessionManagersCache; +} + +@implementation NSDictionary (QCloudRestNetUsage) +- (NSURL *)bdwt_RestNetCoreUsagedURL { + return self[@"url"]; +} + +@end + +@interface QCloudHTTPSessionManager () { + NSMutableDictionary *_taskQueue; +} +@property (nonatomic, strong) NSOperationQueue *sessionTaskQueue; +; +@property (nonatomic, strong) NSURLSession *session; +@property (nonatomic, strong) dispatch_queue_t buildDataQueue; +@property (nonatomic, strong) QCloudOperationQueue *operationQueue; +@property (nonatomic, strong) id quicSession; +@end + +@implementation QCloudHTTPSessionManager +@synthesize maxConcurrencyTask = _maxConcurrencyTask; + ++ (QCloudHTTPSessionManager *)shareClient { + static QCloudHTTPSessionManager *client = nil; + static dispatch_once_t onceToken; + dispatch_once(&onceToken, ^{ + client = [[QCloudHTTPSessionManager alloc] initWithConfigruation:[NSURLSessionConfiguration defaultSessionConfiguration]]; + [QCloudNetEnv shareEnv]; + }); + return client; +} + +- (instancetype)initWithConfigruation:(NSURLSessionConfiguration *)configuration { + self = [super init]; + if (!self) { + return self; + } + + // for restful request-response using the default session configuration ,and the most import thing is that you must not set the timeout for + // session configuration + _configuration = configuration; + _sessionTaskQueue = [[NSOperationQueue alloc] init]; + _session = [NSURLSession sessionWithConfiguration:_configuration delegate:self delegateQueue:_sessionTaskQueue]; + Class cls = NSClassFromString(@"QCloudQuicSession"); + if (cls) { + SEL createQuicSessionSelector = NSSelectorFromString(@"quicSessionDelegate:"); + if ([cls respondsToSelector:createQuicSessionSelector]) { + IMP imp = [cls methodForSelector:createQuicSessionSelector]; + id (*func)(id, SEL, id) = (void *)imp; + _quicSession = func(cls, createQuicSessionSelector, self); + } + } else { + QCloudLogDebugE(@"HTTP",@"quicSession is nil"); + } + + _buildDataQueue = dispatch_queue_create("com.tencent.qcloud.build.data", NULL); + _taskQueue = [NSMutableDictionary new]; + _operationQueue = [QCloudOperationQueue new]; + return self; +} + +- (void)setCustomConcurrentCount:(int)customConcurrentCount { + _customConcurrentCount = customConcurrentCount; + _operationQueue.customConcurrentCount = customConcurrentCount; +} + +- (void)setMaxConcurrentCountLimit:(int)maxConcurrentCountLimit{ + _maxConcurrentCountLimit = maxConcurrentCountLimit; + _operationQueue.maxConcurrentCountLimit = maxConcurrentCountLimit; +} + +- (void)setMaxConcurrencyTask:(int32_t)maxConcurrencyTask { + if (_maxConcurrencyTask != maxConcurrencyTask) { + _maxConcurrencyTask = maxConcurrencyTask; + _sessionTaskQueue.maxConcurrentOperationCount = maxConcurrencyTask; + } +} + +- (void)cacheTask:(NSURLSessionTask *)task data:(QCloudURLSessionTaskData *)data forSEQ:(int)seq { + if (!task) { + return; + } + @synchronized(self) { + [_taskQueue setObject:@(seq) forKey:TaskMapKey(task)]; + [_taskQueue setObject:task forKey:@(seq)]; + [_taskQueue setObject:data forKey:TaskDataKey(seq)]; + } +} + +- (NSURLSessionTask *)taskForSEQ:(int)seq { + @synchronized(self) { + return [_taskQueue objectForKey:@(seq)]; + } +} +- (QCloudURLSessionTaskData *)taskDataForTask:(NSURLSessionTask *)task { + @synchronized(self) { + int seq = [_taskQueue[TaskMapKey(task)] intValue]; + return [_taskQueue objectForKey:TaskDataKey(seq)]; + } +} +- (int)seqForTask:(NSURLSessionTask *)task { + @synchronized(self) { + return [_taskQueue[TaskMapKey(task)] intValue]; + } +} + +- (void)removeTaskForSEQ:(int)seq { + @synchronized(self) { + NSURLSessionTask *task = _taskQueue[@(seq)]; + [_taskQueue removeObjectForKey:@(seq)]; + [_taskQueue removeObjectForKey:TaskDataKey(seq)]; + if (task) { + [_taskQueue removeObjectForKey:TaskMapKey(task)]; + } + } + [_operationQueue cancelByRequestID:seq]; +} + +- (void)removeTask:(NSURLSessionTask *)task { + @synchronized(self) { + int seq = [_taskQueue[TaskMapKey(task)] intValue]; + [_taskQueue removeObjectForKey:@(seq)]; + [_taskQueue removeObjectForKey:TaskDataKey(seq)]; + [_taskQueue removeObjectForKey:TaskMapKey(task)]; + } +} + +- (int)performRequest:(QCloudHTTPRequest *)httpRequst withFinishBlock:(QCloudRequestFinishBlock)block { + httpRequst.finishBlock = block; + return [self performRequest:httpRequst]; +} + +- (int)performRequest:(QCloudHTTPRequest *)request { + + QCloudHTTPRequestOperation *operation = [[QCloudHTTPRequestOperation alloc] initWithRequest:request]; + operation.sessionManager = self; + [_operationQueue addOpreation:operation]; + return (int)request.requestID; +} + +- (void)requestOperationFinishWithRequestId:(int64_t)requestID{ + [_operationQueue requestOperationFinishWithRequestId:requestID]; +} + +#if TARGET_OS_IOS +// only work at iOS 10 and up +- (void)URLSession:(NSURLSession *)session + task:(NSURLSessionTask *)task + didFinishCollectingMetrics:(NSURLSessionTaskMetrics *)metrics API_AVAILABLE(ios(10.0)) { + QCloudURLSessionTaskData *taskData = [self taskDataForTask:task]; + // NSAssert(taskData, @"无法获取缓存的TaskData,请检查主动Cache的地方"); + NSURLSessionTaskTransactionMetrics *networkMetrics = nil; + for (NSURLSessionTaskTransactionMetrics *m in metrics.transactionMetrics) { + if (m.resourceFetchType == NSURLSessionTaskMetricsResourceFetchTypeNetworkLoad) { + networkMetrics = m; + } else if (m.resourceFetchType == NSURLSessionTaskMetricsResourceFetchTypeLocalCache) { + } + } + + if (networkMetrics) { + if (!networkMetrics.reusedConnection) { + [taskData.httpRequest.benchMarkMan directSetCost:[networkMetrics.connectEndDate timeIntervalSinceDate:networkMetrics.connectStartDate] + forKey:kConnectTookTime]; + if ([taskData.httpRequest.requestData.serverURL.lowercaseString hasPrefix:@"https"]) { + [taskData.httpRequest.benchMarkMan + directSetCost:[networkMetrics.secureConnectionEndDate timeIntervalSinceDate:networkMetrics.secureConnectionStartDate] + forKey:kSecureConnectTookTime]; + } + [taskData.httpRequest.benchMarkMan + directSetCost:[networkMetrics.domainLookupEndDate timeIntervalSinceDate:networkMetrics.domainLookupStartDate] + forKey:kDnsLookupTookTime]; + } + #if __IPHONE_OS_VERSION_MAX_ALLOWED >= __IPHONE_13_0 + if (@available(iOS 13.0, *)) { + [taskData.httpRequest.benchMarkMan directSetValue:networkMetrics.localPort forKey:kLocalPort]; + [taskData.httpRequest.benchMarkMan directSetValue:networkMetrics.remoteAddress forKey:kRemoteAddress]; + [taskData.httpRequest.benchMarkMan directSetValue:networkMetrics.remotePort forKey:kRemotePort]; + } + + #endif + } +} + +- (void)URLSession:(NSURLSession *)session task:(NSURLSessionTask *)task willPerformHTTPRedirection:(NSHTTPURLResponse *)response newRequest:(NSURLRequest *)request completionHandler:(void (^)(NSURLRequest * _Nullable))completionHandler{ + + QCloudURLSessionTaskData *taskData = [self taskDataForTask:task]; + if (!taskData.httpRequest.runOnService.configuration.enableGlobalRedirection) { + completionHandler(nil); + return; + } + if(![taskData.httpRequest needChangeHost] || taskData.httpRequest.runOnService.configuration.disableChangeHost == YES || [response.allHeaderFields.allKeys containsObject:@"x-cos-request-id"] || [request.URL.absoluteURL.host rangeOfString:@"tencentcos.cn"].length > 0){ + completionHandler(request); + }else{ + completionHandler(nil); + NSError *error = [NSError errorWithDomain:request.URL.host code:QCloudNetworkErrorCodeDomainInvalid userInfo:@{NSLocalizedDescriptionKey: @""}]; + [task cancel]; + [self URLSession:session task:task didCompleteWithError:error]; + } +} +#endif +- (void)URLSession:(NSURLSession *)session + dataTask:(NSURLSessionDataTask *)dataTask + didReceiveResponse:(NSURLResponse *)response + completionHandler:(void (^)(NSURLSessionResponseDisposition))completionHandler { + QCloudLogDebugR(@"HTTP",@"didReceiveResponse: %@", response); + QCloudURLSessionTaskData *taskData = [self taskDataForTask:dataTask]; + [taskData.httpRequest.benchMarkMan benginWithKey:kReadResponseHeaderTookTime]; + taskData.response = (NSHTTPURLResponse *)response; + NSURLSessionResponseDisposition disp = [taskData.httpRequest reciveResponse:response]; + if (taskData.httpRequest.downloadingURL) { + // if http statue is not found will forbidden write to file + if (taskData.response.statusCode >= 400) { + taskData.forbidenWirteToFile = YES; + } + } + if (completionHandler) { + completionHandler(disp); + } +} +- (void)URLSession:(NSURLSession *)session + task:(NSURLSessionTask *)task + didSendBodyData:(int64_t)bytesSent + totalBytesSent:(int64_t)totalBytesSent + totalBytesExpectedToSend:(int64_t)totalBytesExpectedToSend { + QCloudURLSessionTaskData *taskData = [self taskDataForTask:task]; + if (totalBytesSent <= 32768) { + [taskData.httpRequest.benchMarkMan benginWithKey:kWriteRequestBodyTookTime]; + } + if (taskData.httpRequest.sendProcessBlock) { + [taskData.httpRequest notifySendProgressBytesSend:bytesSent totalBytesSend:totalBytesSent totalBytesExpectedToSend:totalBytesExpectedToSend]; + } + [[QCloudNetProfile shareProfile] pointUpload:bytesSent]; + if (totalBytesSent == totalBytesExpectedToSend) { + [taskData.httpRequest.benchMarkMan markFinishWithKey:kWriteRequestBodyTookTime]; + } +} + +- (void)URLSession:(NSURLSession *)session dataTask:(NSURLSessionDataTask *)dataTask didReceiveData:(NSData *)data { + QCloudURLSessionTaskData *taskData = [self taskDataForTask:dataTask]; + if (taskData.totalRecivedLength == 0) { + [taskData.httpRequest.benchMarkMan markFinishWithKey:kReadResponseHeaderTookTime]; + [taskData.httpRequest.benchMarkMan benginWithKey:kReadResponseBodyTookTime]; + } + if (taskData.response.statusCode >= 400) { + // should not write data or callback + [taskData appendData:data]; + if (taskData.data.length >= [taskData.response.allHeaderFields[@"Content-Length"] longLongValue]) { + if (taskData.httpRequest.requestData.directBody) { + // 上传任务 + taskData.isTaskCancelledByStatusCodeCheck = YES; + [dataTask cancel]; + } + } + } else { + [taskData appendData:data]; + if (taskData.httpRequest) { + [taskData.httpRequest notifyDownloadProgressBytesDownload:(int64_t)data.length + totalBytesDownload:(int64_t)taskData.totalRecivedLength + totalBytesExpectedToDownload:(int64_t)[dataTask.response expectedContentLength] + receivedData:data]; + } + [[QCloudNetProfile shareProfile] pointDownload:data.length]; + } +} + +- (void)URLSession:(NSURLSession *)session task:(NSURLSessionTask *)task didCompleteWithError:(NSError *)error { + QCloudLogInfoR(@"HTTP",@"任务完成的回调 didCompleteWithError response = %@ error = %@", task.response, error); + [[NSNotificationCenter defaultCenter] + postNotificationName:kQCloudRestNetURLUsageNotification + object:nil + userInfo:@{ + @"url" : task.originalRequest.URL ? task.originalRequest.URL + : [NSURL URLWithString:@"https://nullurl.error.com.tencent.qcloud.network"] + + }]; + + QCloudURLSessionTaskData *taskData = [self taskDataForTask:task]; + NSURL *hostURL = [NSURL URLWithString:taskData.httpRequest.requestData.serverURL]; + [taskData.httpRequest.benchMarkMan markFinishWithKey:kReadResponseBodyTookTime]; + if (!taskData) { + return; + } + + if((((taskData.response.statusCode / 100 != 2) && (taskData.response.statusCode / 100 != 4) && [hostURL.host rangeOfString:@"tencentcos.cn"].length == 0 && ![taskData.response.allHeaderFields.allKeys containsObject:@"x-cos-request-id"]) && + [taskData.httpRequest needChangeHost] && + taskData.httpRequest.runOnService.configuration.disableChangeHost == NO) || (taskData.response.statusCode / 100 == 5)){ + error = [NSError errorWithDomain:hostURL.host code:QCloudNetworkErrorCodeDomainInvalid userInfo:@{NSLocalizedDescriptionKey: @""}]; + taskData.isTaskCancelledByStatusCodeCheck = NO; + } + + int seq = [self seqForTask:task]; + __weak typeof(self) weakSelf = self; + if (!taskData.isTaskCancelledByStatusCodeCheck && error) { + QCloudLogErrorE(@"HTTP",@"Network Error %@", error); + void (^EndRetryFunc)(void) = ^(void) { + [taskData.httpRequest onReviveErrorResponse:task.response error:error]; + [weakSelf removeTask:task]; + }; + + if (!taskData.retryHandler) { + EndRetryFunc(); + } else { + if ([taskData.retryHandler.delegate respondsToSelector:@selector(shouldRetry:error:)]) { + BOOL isRetry = [taskData.retryHandler.delegate shouldRetry:taskData error:error]; + if (!isRetry) { + EndRetryFunc(); + return; + } + } + if (![taskData.retryHandler + retryFunction:^{ + QCloudLogDebugP(@"HTTP",@"[%i] 错误,开始重试", seq); + if (error.code == -1003) { + [[QCloudHttpDNS shareDNS] findHealthyIpFor:hostURL.host]; + } + + QCloudURLSessionTaskData *taskData = [weakSelf taskDataForTask:task]; + if (taskData.httpRequest.sendProcessBlock) { + int64_t countOfBytesSent = 0; + if ([task respondsToSelector:@selector(countOfBytesSent)]) { + countOfBytesSent = task.countOfBytesSent; + } + int64_t countOfBytesExpectedToSend = 0; + if ([task respondsToSelector:@selector(countOfBytesExpectedToSend)]) { + countOfBytesExpectedToSend = task.countOfBytesExpectedToSend; + } + [taskData.httpRequest notifySendProgressBytesSend:-(countOfBytesSent) + totalBytesSend:countOfBytesSent + totalBytesExpectedToSend:countOfBytesExpectedToSend]; + } + QCloudHTTPRequest *httpRequset = taskData.httpRequest; + [taskData restData]; + [weakSelf removeTask:task]; + [httpRequset.requestData clean]; + if (QCloudFileExist(httpRequset.downloadingTempURL.path)) { + httpRequset.localCacheDownloadOffset = QCloudFileSize(httpRequset.downloadingTempURL.path); + } + if (taskData.response.statusCode / 100 == 5) { + httpRequset.requestData.needChangeHost = [httpRequset needChangeHost] && !httpRequset.runOnService.configuration.disableChangeHost && ![taskData.response.allHeaderFields.allKeys containsObject:@"x-cos-request-id"]; + }else{ + httpRequset.requestData.needChangeHost = [httpRequset needChangeHost] && !httpRequset.runOnService.configuration.disableChangeHost; + } + + [httpRequset setValue:@(YES) forKey:@"isRetry"]; + httpRequset.retryCount = taskData.httpRequest.retryCount + 1; + [weakSelf executeRestHTTPReqeust:httpRequset]; + } + whenError:error]) { + EndRetryFunc(); + } + } + + } else { + NSString *port = [task.currentRequest.URL.scheme isEqualToString:@"https"] ? @"443" : @"8080"; + [[QCloudHttpDNS shareDNS] prepareFetchIPListForHost:hostURL.host port:port]; + [taskData.httpRequest onReciveRespone:task.response data:taskData.data]; + [self removeTask:task]; + } +} + +- (void)URLSession:(NSURLSession *_Nonnull)session + task:(NSURLSessionTask *_Nonnull)task + didReceiveChallenge:(NSURLAuthenticationChallenge *_Nonnull)challenge + completionHandler:(void (^_Nonnull)(NSURLSessionAuthChallengeDisposition disposition, NSURLCredential *_Nullable credential))completionHandler { + QCloudURLSessionTaskData *taskData = [self taskDataForTask:task]; + + NSURLSessionAuthChallengeDisposition disposition = NSURLSessionAuthChallengePerformDefaultHandling; + NSURLCredential *credential = nil; + if ([challenge.protectionSpace.authenticationMethod isEqualToString:NSURLAuthenticationMethodServerTrust]) { + if (!IS_QCloud_NORMAL_ENV || !taskData.httpRequest.requestSerializer.shouldAuthentication || taskData.httpRequest.runOnService.configuration.disableGlobalAuthentication) { + SecTrustRef serverTrust = challenge.protectionSpace.serverTrust; + credential = [NSURLCredential credentialForTrust:serverTrust]; + disposition = NSURLSessionAuthChallengeUseCredential; + } else { + SecTrustRef serverTrust = challenge.protectionSpace.serverTrust; + if ([[QCloudHttpDNS shareDNS] isTrustIP:task.currentRequest.URL.host]) { + NSMutableArray *policies = [NSMutableArray array]; + [policies addObject:(__bridge_transfer id)SecPolicyCreateBasicX509()]; + SecTrustSetPolicies(serverTrust, (__bridge CFArrayRef)policies); + } + SecTrustResultType rType; + OSStatus status = SecTrustEvaluate(serverTrust, &rType); + if (status == errSecSuccess && (rType == kSecTrustResultProceed || rType == kSecTrustResultUnspecified)) { + credential = [NSURLCredential credentialForTrust:serverTrust]; + disposition = NSURLSessionAuthChallengeUseCredential; + } else { + disposition = NSURLSessionAuthChallengeCancelAuthenticationChallenge; + } + } + } else if ([challenge.protectionSpace.authenticationMethod isEqualToString:NSURLAuthenticationMethodClientCertificate]) { + if (taskData.httpRequest.runOnService.configuration.clientCertificateData) { + CFDataRef inP12Data = (__bridge CFDataRef)taskData.httpRequest.runOnService.configuration.clientCertificateData; + SecIdentityRef identity = NULL; + SecTrustRef trust = NULL; + OSStatus status = noErr; + + const void *keys[] = { kSecImportExportPassphrase }; + const void *values[] = { (__bridge CFStringRef)taskData.httpRequest.runOnService.configuration.password }; + CFDictionaryRef options = CFDictionaryCreate(NULL, keys, values, 1, NULL, NULL); + + CFArrayRef items = NULL; + status = SecPKCS12Import(inP12Data, options, &items); + + if (status != errSecSuccess || items == NULL || CFArrayGetCount(items) == 0) { + NSLog(@"SecPKCS12Import 错误: %d", (int)status); + if (options) CFRelease(options); + if (items) CFRelease(items); + disposition = NSURLSessionAuthChallengePerformDefaultHandling; + completionHandler(disposition, credential); + return; + } + + CFDictionaryRef identityDict = CFArrayGetValueAtIndex(items, 0); + identity = (SecIdentityRef)CFRetain(CFDictionaryGetValue(identityDict, kSecImportItemIdentity)); + trust = (SecTrustRef)CFRetain(CFDictionaryGetValue(identityDict, kSecImportItemTrust)); + + if (options) CFRelease(options); + if (items) CFRelease(items); + + if (status == errSecSuccess && identity != NULL) { + SecCertificateRef certificate = NULL; + OSStatus certStatus = SecIdentityCopyCertificate(identity, &certificate); + + if (certStatus != errSecSuccess || certificate == NULL) { + NSLog(@"SecIdentityCopyCertificate 错误: %d", (int)certStatus); + disposition = NSURLSessionAuthChallengePerformDefaultHandling; + completionHandler(disposition, credential); + return; + } + + const void *certs[] = { certificate }; + CFArrayRef certArray = CFArrayCreate(NULL, certs, 1, NULL); + credential = [NSURLCredential credentialWithIdentity:identity + certificates:(__bridge NSArray *)certArray + persistence:NSURLCredentialPersistenceForSession]; + + if (certArray) CFRelease(certArray); + if (certificate) CFRelease(certificate); + if (trust) CFRelease(trust); + + disposition = NSURLSessionAuthChallengeUseCredential; + } else { + NSLog(@"身份解析失败: %d", (int)status); + disposition = NSURLSessionAuthChallengePerformDefaultHandling; + } + } else { + disposition = NSURLSessionAuthChallengePerformDefaultHandling; + } + } else { + disposition = NSURLSessionAuthChallengePerformDefaultHandling; + } + + if (completionHandler) { + completionHandler(disposition, credential); + } +} + +- (void)cancelRequestWithID:(int)requestID { + NSURLSessionTask *task = [self taskForSEQ:requestID]; + [task cancel]; + [self removeTaskForSEQ:requestID]; +} + +- (void)cancelRequestsWithID:(NSArray *)requestIDs { + [self.operationQueue cancelByRequestIDs:requestIDs]; + for (NSNumber *requestID in requestIDs) { + [self cancelRequestWithID:[requestID intValue]]; + } +} + +- (void)cancelAllRequest { + [self.operationQueue cancelAllOperation]; +// @synchronized(self) { +// NSEnumerator *enumertor = [_taskQueue objectEnumerator]; +// NSURLSessionTask *task = nil; +// while (task = [enumertor nextObject]) { +// if ([task respondsToSelector:@selector(cancel)]) { +// [task cancel]; +// } +// +// if ([task isKindOfClass:[NSNumber class]]) { +// [self.operationQueue cancelByRequestID:((NSNumber *)task).integerValue]; +// } +// } +// [_taskQueue removeAllObjects]; +// } +} + +- (void)executeRestHTTPReqeust:(QCloudHTTPRequest *)httpRequest { + [httpRequest.benchMarkMan benginWithKey:kTaskTookTime]; + [httpRequest willStart]; + + NSError *error; + NSMutableURLRequest *urlRequest = [[httpRequest buildURLRequest:&error] mutableCopy]; + if (httpRequest.timeoutInterval) { + urlRequest.timeoutInterval = httpRequest.timeoutInterval; + } + if (error) { + [httpRequest onError:error]; + return; + } + NSMutableURLRequest *transformRequest = urlRequest; + if (httpRequest.requestSerializer.HTTPDNSPrefetch && !httpRequest.runOnService.configuration.disableGlobalHTTPDNSPrefetch) { + transformRequest = [[QCloudHttpDNS shareDNS] resolveURLRequestIfCan:urlRequest]; + if (error) { + QCloudLogErrorE(@"HTTP",@"DNS转存请求失败%@", error); + } + } + + QCloudURLSessionTaskData *taskData = nil; + if (httpRequest.downloadingTempURL) { + NSError *localError; + if (!QCloudFileExist(httpRequest.downloadingTempURL.path)) { + [[NSFileManager defaultManager] createFileAtPath:httpRequest.downloadingTempURL.path contents:nil attributes:nil]; + } + NSFileHandle *handler = [NSFileHandle fileHandleForWritingToURL:httpRequest.downloadingTempURL error:&localError]; + if (localError) { + [httpRequest onError:localError]; + return; + } else { + [handler seekToFileOffset:httpRequest.localCacheDownloadOffset]; + taskData = [[QCloudURLSessionTaskData alloc] initWithDowndingFileHandler:handler]; + } + } else { + taskData = [[QCloudURLSessionTaskData alloc] init]; + } + + NSError *directError; + + NSURL *uploadFileURL = nil; + + if (httpRequest.requestData.directBody) { + NSMutableURLRequest *mutableRequest = [transformRequest mutableCopy]; + id body = httpRequest.requestData.directBody; + if ([body isKindOfClass:[NSData class]]) { + NSData *data = (NSData *)body; + [mutableRequest setHTTPBody:data]; + [mutableRequest setValue:[@([data length]) stringValue] forHTTPHeaderField:@"Content-Length"]; + if(data.length == 0 && httpRequest.runOnService.configuration.disableUploadZeroData){ + directError = [NSError qcloud_errorWithCode:QCloudNetworkErrorCodeParamterInvalid + message:[NSString stringWithFormat:@"InvalidArgument:您输入的body(Data)为空并且不允许上传空文件,是否为SDK内部重试:%@",httpRequest.isRetry ? @"是" : @"否"]]; + } + } else if ([body isKindOfClass:[NSURL class]]) { + NSURL *fileURL = (NSURL *)body; + if (![fileURL isFileURL]) { + directError = [NSError qcloud_errorWithCode:QCloudNetworkErrorCodeParamterInvalid + message:@"InvalidArgument:您输入的body的URL不是本地URL,请检查后使用!!"]; + } + NSUInteger fileSize = QCloudFileSize(fileURL.path); + [mutableRequest setValue:[@(fileSize) stringValue] forHTTPHeaderField:@"Content-Length"]; + uploadFileURL = fileURL; + if(directError == nil && fileSize == 0 && httpRequest.runOnService.configuration.disableUploadZeroData){ + directError = [NSError qcloud_errorWithCode:QCloudNetworkErrorCodeParamterInvalid + message:[NSString stringWithFormat:@"InvalidArgument:您输入的body(NSURL:%@)为空并且不允许上传空文件,是否为SDK内部重试:%@",fileURL, httpRequest.isRetry ? @"是" : @"否"]]; + } + } else if ([body isKindOfClass:[QCloudFileOffsetBody class]]) { + QCloudFileOffsetBody *fileBody = (QCloudFileOffsetBody *)body; + if (![fileBody.fileURL isFileURL]) { + directError = [NSError qcloud_errorWithCode:QCloudNetworkErrorCodeParamterInvalid + message:@"InvalidArgument:您输入的body的URL不是本地URL,请检查后使用!!"]; + } + + NSFileHandle *handler = [NSFileHandle fileHandleForReadingAtPath:fileBody.fileURL.path]; + [handler seekToFileOffset:fileBody.offset]; + NSData *data = [handler readDataOfLength:fileBody.sliceLength]; + NSString *tempFile = taskData.uploadTempFilePath; + if ([data writeToFile:tempFile options:0 error:&directError]) { + [mutableRequest setValue:[@(fileBody.sliceLength) stringValue] forHTTPHeaderField:@"Content-Length"]; + [handler closeFile]; + uploadFileURL = [NSURL fileURLWithPath:tempFile]; + QCloudLogDebugP(@"HTTP",@"uploadTempFilePath length = %lld", QCloudFileSize(tempFile)); + } + + } else { + @throw [NSException exceptionWithName:kQCloudNetworkDomain + reason:@"不支持设置该类型的body,支持的类型为NSData、QCloudFileOffsetBody、NSURL" + userInfo:@{}]; + } + transformRequest = mutableRequest; + } + if (directError) { + [httpRequest onError:directError]; + return; + } + + // 准备发送请求,最后一次机会修改将要发送的HTTP请求 + NSError *parepareError; + [httpRequest.benchMarkMan benginWithKey:kSignRequestTookTime]; + if (![httpRequest prepareInvokeURLRequest:transformRequest error:&parepareError]) { + [httpRequest onError:parepareError]; + return; + } + [httpRequest.benchMarkMan markFinishWithKey:kSignRequestTookTime]; + if (nil == transformRequest) { + NSError *error = [NSError qcloud_errorWithCode:QCloudNetworkErrorUnsupportOperationError message:@"构建Request时候出错,出现空的Request"]; + [httpRequest onError:error]; + return; + } + NSURLSessionDataTask *task = nil; + id quicTask = nil; + id loader = [[QCloudLoaderManager manager] getAvailableLoader:httpRequest]; + if ([QCloudLoaderManager manager].enable && loader) { + task = [loader.session taskWithRequset:transformRequest fromFile:uploadFileURL]; + }else if (!httpRequest.enableQuic) { + //如果是文件上传 + if (uploadFileURL) { + task = [self.session uploadTaskWithRequest:transformRequest fromFile:uploadFileURL]; + } else { + task = [self.session dataTaskWithRequest:transformRequest]; + } + } else { + Class cls = NSClassFromString(@"QCloudQuicDataTask"); + if (!cls) { + @throw [NSException exceptionWithName:NSArgumentDomain reason:@"No Quic framework is found." userInfo:nil]; + } + + NSString *host = transformRequest.URL.host; + NSString *ipAddr; + if ([[QCloudHttpDNS shareDNS] isTrustIP:host]) { + ipAddr = host; + host = transformRequest.allHTTPHeaderFields[@"Host"]; + } else { + ipAddr = [[QCloudHttpDNS shareDNS] queryIPForHost:host]; + } + if (!ipAddr) { + // 查询 可用的 ip 地址tc + [[QCloudHttpDNS shareDNS] prepareFetchIPListForHost:host port:@"443"]; + ipAddr = [[QCloudHttpDNS shareDNS] findHealthyIpFor:host]; + } +// if (!ipAddr) { +// @throw [NSException exceptionWithName:NSURLErrorDomain reason:@"No Available IP Address for QUIC." userInfo:nil]; +// } + + NSMutableDictionary *dic = [NSMutableDictionary dictionaryWithDictionary:transformRequest.allHTTPHeaderFields]; + + + dic[@"quicHost"] = host; + if(ipAddr) dic[@"quicIP"] = ipAddr; + if (uploadFileURL) { + dic[@"body"] = uploadFileURL; + } else if (httpRequest.requestData.directBody) { + dic[@"body"] = httpRequest.requestData.directBody; + } else { + dic[@"body"] = [NSNull null]; + } + + SEL createQuicTaskSelector = NSSelectorFromString(@"quicDataTaskWithRequst:infos:"); + if ([_quicSession respondsToSelector:createQuicTaskSelector]) { + IMP imp = [_quicSession methodForSelector:createQuicTaskSelector]; + id (*func)(id, SEL, NSMutableURLRequest *, NSDictionary *) = (void *)imp; + quicTask = func(_quicSession, createQuicTaskSelector, transformRequest, dic); + } + } + + QCloudLogDebugP(@"HTTP",@"transferHttpHeader %@", transformRequest.allHTTPHeaderFields); + taskData.httpRequest = httpRequest; + QCloudHTTPRetryHanlder *retryHandler = httpRequest.retryPolicy; + taskData.retryHandler = retryHandler; + if (task) { + [self cacheTask:task data:taskData forSEQ:(int)httpRequest.requestID]; + } else { + [self cacheTask:quicTask data:taskData forSEQ:(int)httpRequest.requestID]; + } + [httpRequest configTaskResume]; + [httpRequest.benchMarkMan directSetValue:transformRequest.URL.host forKey:kHost]; + //先创建task,在启动 + SEL quicStartSelector = NSSelectorFromString(@"start"); + if (quicTask && [quicTask respondsToSelector:quicStartSelector]) { + IMP imp = [quicTask methodForSelector:quicStartSelector]; + void (*func)(id, SEL) = (void *)imp; + func(quicTask, quicStartSelector); + + } else { + [task resume]; + } +} + +- (void)dealloc { + [cloudBackGroundSessionManagersCache removeObject:self]; +} + +@end diff --git a/Pods/QCloudCore/QCloudCore/Classes/Base/QCLOUDRestNet/SessionSupport/QCloudURLSessionTaskData.h b/Pods/QCloudCore/QCloudCore/Classes/Base/QCLOUDRestNet/SessionSupport/QCloudURLSessionTaskData.h new file mode 100644 index 0000000..8f14030 --- /dev/null +++ b/Pods/QCloudCore/QCloudCore/Classes/Base/QCLOUDRestNet/SessionSupport/QCloudURLSessionTaskData.h @@ -0,0 +1,29 @@ +// +// QCloudURLSessionTaskData.h +// QCloudTernimalLab_CommonLogic +// +// Created by tencent on 5/12/16. +// Copyright © 2016 QCloudTernimalLab. All rights reserved. +// + +#import + +@class QCloudHTTPRetryHanlder; +@class QCloudHTTPRequest; + +@interface QCloudURLSessionTaskData : NSObject +@property (nonatomic, assign) int identifier; +@property (nonatomic, strong) QCloudHTTPRetryHanlder *retryHandler; +@property (nonatomic, strong) QCloudHTTPRequest *httpRequest; +@property (nonatomic, assign, readonly) NSUInteger totalRecivedLength; +@property (nonatomic, strong, readonly) NSData *data; +@property (nonatomic, strong) NSHTTPURLResponse *response; +@property (nonatomic, assign) BOOL isTaskCancelledByStatusCodeCheck; +@property (nonatomic, strong, readonly) NSString *uploadTempFilePath; +@property (nonatomic, assign) BOOL forbidenWirteToFile; +- (instancetype)init; +- (instancetype)initWithDowndingFileHandler:(NSFileHandle *)fileHandler; +- (void)restData; +- (void)appendData:(NSData *)data; +- (void)closeWrite; +@end diff --git a/Pods/QCloudCore/QCloudCore/Classes/Base/QCLOUDRestNet/SessionSupport/QCloudURLSessionTaskData.m b/Pods/QCloudCore/QCloudCore/Classes/Base/QCLOUDRestNet/SessionSupport/QCloudURLSessionTaskData.m new file mode 100644 index 0000000..b34bb9d --- /dev/null +++ b/Pods/QCloudCore/QCloudCore/Classes/Base/QCLOUDRestNet/SessionSupport/QCloudURLSessionTaskData.m @@ -0,0 +1,99 @@ +// +// QCloudURLSessionTaskData.m +// QCloudTernimalLab_CommonLogic +// +// Created by tencent on 5/12/16. +// Copyright © 2016 QCloudTernimalLab. All rights reserved. +// + +#import "QCloudURLSessionTaskData.h" +#import "QCloudHTTPRetryHanlder.h" +#import +#import "QCloudFileUtils.h" +#import "QCloudLogger.h" +@interface QCloudURLSessionTaskData () { + NSMutableData *_cacheData; + NSFileHandle *_writeFileHandler; + int64_t _initDataLength; +} +@end + +@implementation QCloudURLSessionTaskData +@synthesize uploadTempFilePath = _uploadTempFilePath; +- (void)dealloc { + if (self.uploadTempFilePath) { + QCloudRemoveFileByPath(self.uploadTempFilePath); + } + if (_writeFileHandler) { + [_writeFileHandler closeFile]; + } +} + +- (void)closeWrite { + if (_writeFileHandler) { + [_writeFileHandler closeFile]; + } +} +- (instancetype)init { + self = [super init]; + if (!self) { + return self; + } + _cacheData = [NSMutableData new]; + return self; +} + +- (instancetype)initWithDowndingFileHandler:(NSFileHandle *)fileHandler { + self = [self init]; + if (!self) { + return self; + } + _cacheData = [NSMutableData new]; + _writeFileHandler = fileHandler; + _initDataLength = _writeFileHandler.offsetInFile; + _forbidenWirteToFile = NO; + return self; +} + +- (NSString *)uploadTempFilePath { + if (!_uploadTempFilePath) { + _uploadTempFilePath = QCloudTempFilePathWithExtension(@"uploadpart"); + } + return _uploadTempFilePath; +} +- (NSUInteger)totalRecivedLength { + if (_writeFileHandler) { + return [_writeFileHandler offsetInFile] - _initDataLength; + } else { + return _cacheData.length; + } +} + +- (void)restData { + if (_writeFileHandler) { + [_writeFileHandler seekToFileOffset:0]; + } else { + _cacheData = [NSMutableData new]; + } +} + +- (NSData *)data { + return [_cacheData copy]; +} + +- (void)appendData:(NSData *)data { + if (_writeFileHandler && !_forbidenWirteToFile) { + @synchronized(_writeFileHandler) { + @try { + [_writeFileHandler writeData:data]; + } @catch (NSException *exception) { + QCloudLogDebugE(@"Utils",@"no space left on device"); + } + } + } else { + @synchronized(_cacheData) { + [_cacheData appendData:data]; + } + } +} +@end diff --git a/Pods/QCloudCore/QCloudCore/Classes/Base/QCLOUDRestNet/TimeOutAdapter/QCloudIntelligenceTimeOutAdapter.h b/Pods/QCloudCore/QCloudCore/Classes/Base/QCLOUDRestNet/TimeOutAdapter/QCloudIntelligenceTimeOutAdapter.h new file mode 100644 index 0000000..0a83991 --- /dev/null +++ b/Pods/QCloudCore/QCloudCore/Classes/Base/QCLOUDRestNet/TimeOutAdapter/QCloudIntelligenceTimeOutAdapter.h @@ -0,0 +1,13 @@ +// +// QCloudIntelligenceTimeOutAdapter.h +// QCloudTernimalLab_CommonLogic +// +// Created by tencent on 5/23/16. +// Copyright © 2016 QCloudTernimalLab. All rights reserved. +// + +#import + +@interface QCloudIntelligenceTimeOutAdapter : NSObject ++ (double)recommendTimeOut; +@end diff --git a/Pods/QCloudCore/QCloudCore/Classes/Base/QCLOUDRestNet/TimeOutAdapter/QCloudIntelligenceTimeOutAdapter.m b/Pods/QCloudCore/QCloudCore/Classes/Base/QCLOUDRestNet/TimeOutAdapter/QCloudIntelligenceTimeOutAdapter.m new file mode 100644 index 0000000..284c0d9 --- /dev/null +++ b/Pods/QCloudCore/QCloudCore/Classes/Base/QCLOUDRestNet/TimeOutAdapter/QCloudIntelligenceTimeOutAdapter.m @@ -0,0 +1,20 @@ +// +// QCloudIntelligenceTimeOutAdapter.m +// QCloudTernimalLab_CommonLogic +// +// Created by tencent on 5/23/16. +// Copyright © 2016 QCloudTernimalLab. All rights reserved. +// + +#import "QCloudIntelligenceTimeOutAdapter.h" +#import "QCloudNetEnv.h" + +@implementation QCloudIntelligenceTimeOutAdapter ++ (double)recommendTimeOut { + if ([QCloudNetEnv shareEnv].currentNetStatus == QCloudReachableViaWiFi) { + return 30; + } else { + return 60; + } +} +@end diff --git a/Pods/QCloudCore/QCloudCore/Classes/Base/QCLOUDRestNet/URLTools/QCloudURLTools.h b/Pods/QCloudCore/QCloudCore/Classes/Base/QCLOUDRestNet/URLTools/QCloudURLTools.h new file mode 100644 index 0000000..61ffd84 --- /dev/null +++ b/Pods/QCloudCore/QCloudCore/Classes/Base/QCLOUDRestNet/URLTools/QCloudURLTools.h @@ -0,0 +1,13 @@ +// +// QCloudURLTools.h +// QCloudCore +// +// Created by Dong Zhao on 2017/11/28. +// + +#import + +FOUNDATION_EXTERN NSString *const QCloudHTTPScheme; +FOUNDATION_EXTERN NSString *const QCloudHTTPSScheme; + +FOUNDATION_EXTERN NSString *QCloudFormattHTTPURL(NSString *originURL, BOOL useHTTPS); diff --git a/Pods/QCloudCore/QCloudCore/Classes/Base/QCLOUDRestNet/URLTools/QCloudURLTools.m b/Pods/QCloudCore/QCloudCore/Classes/Base/QCLOUDRestNet/URLTools/QCloudURLTools.m new file mode 100644 index 0000000..e4f4ac8 --- /dev/null +++ b/Pods/QCloudCore/QCloudCore/Classes/Base/QCLOUDRestNet/URLTools/QCloudURLTools.m @@ -0,0 +1,27 @@ +// +// QCloudURLTools.m +// QCloudCore +// +// Created by Dong Zhao on 2017/11/28. +// + +#import "QCloudURLTools.h" +NSString *const QCloudHTTPScheme = @"http://"; +NSString *const QCloudHTTPSScheme = @"https://"; + +NSString *QCloudFormattHTTPURL(NSString *originURL, BOOL useHTTPS) { + if (!originURL) { + return nil; + } + NSString *schema = useHTTPS ? QCloudHTTPSScheme : QCloudHTTPScheme; + NSString *origin = originURL; + if ([originURL.lowercaseString hasPrefix:schema.lowercaseString]) { + return originURL; + } + if ([origin.lowercaseString hasPrefix:QCloudHTTPScheme]) { + origin = [origin substringFromIndex:QCloudHTTPScheme.length]; + } else if ([origin.lowercaseString hasPrefix:QCloudHTTPSScheme]) { + origin = [origin substringFromIndex:QCloudHTTPSScheme.length]; + } + return [schema stringByAppendingString:origin]; +} diff --git a/Pods/QCloudCore/QCloudCore/Classes/Base/QCLOUDRestNet/reachability/QCloudNetEnv.h b/Pods/QCloudCore/QCloudCore/Classes/Base/QCLOUDRestNet/reachability/QCloudNetEnv.h new file mode 100644 index 0000000..092d9fc --- /dev/null +++ b/Pods/QCloudCore/QCloudCore/Classes/Base/QCLOUDRestNet/reachability/QCloudNetEnv.h @@ -0,0 +1,37 @@ +// +// QCloudNetEnv.h +// QCloudTernimalLab_CommonLogic +// +// Created by tencent on 16/3/24. +// Copyright © 2016年 QCloudTernimalLab. All rights reserved. +// + +#import + +#define QCloudNetworkShareEnv [QCloudNetEnv shareEnv] + +typedef NS_ENUM(NSInteger, QCloudNetworkStatus) { + QCloudNotReachable = 0, + QCloudReachableViaWiFi = 2, + QCloudReachableViaWWAN = 1, +}; + +#define kNetworkSituationChangeKey @"kNetworkSituationChangeKey" +/** + 表明当前网络的情况,是弱网络或者网络情况良好 + + - QCloudNetworkSituationWeakNetwork: 当前是弱网络,延迟和丢包率较高 + - QCloudNetworkSituationGreatNetork: 当前网络较好,可以适当增加并发数 + */ +typedef NS_ENUM(NSInteger, QCloudNetworkSituation) { QCloudNetworkSituationWeakNetwork = 0, QCloudNetworkSituationGreatNetork = 1 }; + +extern NSString *const kQCloudNetEnvChangedNotification; +NSString *QCloudNetworkSituationToString(QCloudNetworkStatus situation); +@interface QCloudNetEnv : NSObject ++ (instancetype)shareEnv; +@property (nonatomic, assign, readonly) QCloudNetworkStatus currentNetStatus; +- (BOOL)isReachableViaWifi; +- (BOOL)isReachableVia2g3g4g; +- (BOOL)isReachable; + +@end diff --git a/Pods/QCloudCore/QCloudCore/Classes/Base/QCLOUDRestNet/reachability/QCloudNetEnv.m b/Pods/QCloudCore/QCloudCore/Classes/Base/QCLOUDRestNet/reachability/QCloudNetEnv.m new file mode 100644 index 0000000..a796090 --- /dev/null +++ b/Pods/QCloudCore/QCloudCore/Classes/Base/QCLOUDRestNet/reachability/QCloudNetEnv.m @@ -0,0 +1,110 @@ +// +// QCloudNetEnv.m +// QCloudTernimalLab_CommonLogic +// +// Created by tencent on 16/3/24. +// Copyright © 2016年 QCloudTernimalLab. All rights reserved. +// + +#import "QCloudNetEnv.h" +#import "QCloudReachability.h" + +NSString *const kQCloudNetEnvChangedNotification = @"kQCloudNetEnvChangedNotification"; + +NSString *QCloudNetworkSituationToString(QCloudNetworkStatus situation) { + switch (situation) { + case QCloudReachableViaWiFi: + return @"WIFI"; + break; + case QCloudReachableViaWWAN: + return @"WWAN"; + break; + default: + return @"NONE"; + break; + } + return @"NONE"; +} +@implementation QCloudNetEnv { + QCloudReachability *_reachAbility; + BOOL _isInit; +} +@synthesize currentNetStatus = _currentNetStatus; +- (void)dealloc { + [_reachAbility stopNotifier]; +} ++ (instancetype)shareEnv { + static QCloudNetEnv *env = nil; + static dispatch_once_t onceToken; + dispatch_once(&onceToken, ^{ + env = [QCloudNetEnv new]; + }); + return env; +} + +- (instancetype)init { + self = [super init]; + if (!self) { + return self; + } + [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(networChanged:) name:kQCloudReachabilityChangedNotification object:nil]; + _reachAbility = [QCloudReachability reachabilityWithHostname:@"www.tencent.com"]; + [_reachAbility startNotifier]; + _isInit = NO; + return self; +} + +- (void)networChanged:(NSNotification *)nc { + id object = nc.object; + if (object != _reachAbility) { + return; + } + switch (_reachAbility.currentReachabilityStatus) { + case NotReachable: + _currentNetStatus = QCloudNotReachable; + break; + case ReachableViaWiFi: + _currentNetStatus = QCloudReachableViaWiFi; + break; + case ReachableViaWWAN: + _currentNetStatus = QCloudReachableViaWWAN; + break; + default: + _currentNetStatus = QCloudReachableViaWiFi; + break; + } + if (!_isInit) { + _isInit = YES; + } + [[NSNotificationCenter defaultCenter] postNotificationName:kQCloudNetEnvChangedNotification object:self]; +} + +- (QCloudNetworkStatus)currentNetStatus { + if (!_isInit) { + if ([self isReachableViaWifi]) { + _currentNetStatus = QCloudReachableViaWiFi; + } else if ([self isReachableVia2g3g4g]) { + _currentNetStatus = QCloudReachableViaWWAN; + } else if (![_reachAbility isReachable]) { + _currentNetStatus = QCloudNotReachable; + } else { + _currentNetStatus = QCloudReachableViaWiFi; + } + _isInit = YES; + } + return _currentNetStatus; +} + +- (BOOL)isReachableViaWifi { + return [_reachAbility isReachableViaWiFi]; +} + +- (BOOL)isReachableVia2g3g4g { + return [_reachAbility isReachableViaWWAN]; +} + +- (BOOL)isReachable { + return [_reachAbility isReachable]; +} + +@end diff --git a/Pods/QCloudCore/QCloudCore/Classes/Base/QCLOUDRestNet/reachability/QCloudReachability.h b/Pods/QCloudCore/QCloudCore/Classes/Base/QCLOUDRestNet/reachability/QCloudReachability.h new file mode 100644 index 0000000..fa6efc5 --- /dev/null +++ b/Pods/QCloudCore/QCloudCore/Classes/Base/QCLOUDRestNet/reachability/QCloudReachability.h @@ -0,0 +1,101 @@ +/* + Copyright (c) 2011, Tony Million. + All rights reserved. + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are met: + + 1. Redistributions of source code must retain the above copyright notice, this + list of conditions and the following disclaimer. + + 2. Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following disclaimer in the documentation + and/or other materials provided with the distribution. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE + LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + POSSIBILITY OF SUCH DAMAGE. + */ + +#import +#import + +//! Project version number for MacOSReachability. +FOUNDATION_EXPORT double QCloudReachabilityVersionNumber; + +//! Project version string for MacOSReachability. +FOUNDATION_EXPORT const unsigned char QCloudReachabilityVersionString[]; + +/** + * Create NS_ENUM macro if it does not exist on the targeted version of iOS or OS X. + * @see http://nshipster.com/ns_enum-ns_options/ + **/ +#ifndef NS_ENUM +#define NS_ENUM(_type, _name) \ + enum _name : _type _name; \ + enum _name : _type +#endif + +extern NSString *const kQCloudReachabilityChangedNotification; + +typedef NS_ENUM(NSInteger, NetworkStatus) { + // Apple NetworkStatus Compatible Names. + NotReachable = 0, + ReachableViaWiFi = 2, + ReachableViaWWAN = 1 +}; + +@class QCloudReachability; + +typedef void (^QCloudNetworkReachable)(QCloudReachability *reachability); +typedef void (^QCloudNetworkUnreachable)(QCloudReachability *reachability); +typedef void (^QCloudNetworkReachability)(QCloudReachability *reachability, SCNetworkConnectionFlags flags); + +@interface QCloudReachability : NSObject + +@property (nonatomic, copy) QCloudNetworkReachable reachableBlock; +@property (nonatomic, copy) QCloudNetworkUnreachable unreachableBlock; +@property (nonatomic, copy) QCloudNetworkReachability reachabilityBlock; + +@property (nonatomic, assign) BOOL reachableOnWWAN; + ++ (instancetype)reachabilityWithHostname:(NSString *)hostname; +// This is identical to the function above, but is here to maintain +// compatibility with Apples original code. (see .m) ++ (instancetype)reachabilityWithHostName:(NSString *)hostname; ++ (instancetype)reachabilityForInternetConnection; ++ (instancetype)reachabilityWithAddress:(void *)hostAddress; ++ (instancetype)reachabilityForLocalWiFi; + +- (instancetype)initWithReachabilityRef:(SCNetworkReachabilityRef)ref; + +- (BOOL)startNotifier; +- (void)stopNotifier; + +- (BOOL)isReachable; +- (BOOL)isReachableViaWWAN; +- (BOOL)isReachableViaWiFi; + +// WWAN may be available, but not active until a connection has been established. +// WiFi may require a connection for VPN on Demand. +- (BOOL)isConnectionRequired; // Identical DDG variant. +- (BOOL)connectionRequired; // Apple's routine. +// Dynamic, on demand connection? +- (BOOL)isConnectionOnDemand; +// Is user intervention required? +- (BOOL)isInterventionRequired; + +- (NetworkStatus)currentReachabilityStatus; +- (SCNetworkReachabilityFlags)reachabilityFlags; +- (NSString *)currentReachabilityString; +- (NSString *)currentReachabilityFlags; + +@end diff --git a/Pods/QCloudCore/QCloudCore/Classes/Base/QCLOUDRestNet/reachability/QCloudReachability.m b/Pods/QCloudCore/QCloudCore/Classes/Base/QCLOUDRestNet/reachability/QCloudReachability.m new file mode 100644 index 0000000..eb64548 --- /dev/null +++ b/Pods/QCloudCore/QCloudCore/Classes/Base/QCLOUDRestNet/reachability/QCloudReachability.m @@ -0,0 +1,407 @@ +/* + Copyright (c) 2011, Tony Million. + All rights reserved. + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are met: + + 1. Redistributions of source code must retain the above copyright notice, this + list of conditions and the following disclaimer. + + 2. Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following disclaimer in the documentation + and/or other materials provided with the distribution. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE + LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + POSSIBILITY OF SUCH DAMAGE. + */ + +#import "QCloudReachability.h" + +#import +#import +#import +#import +#import +#import + +NSString *const kQCloudReachabilityChangedNotification = @"kReachabilityChangedNotification"; + +@interface QCloudReachability () + +@property (nonatomic, assign) SCNetworkReachabilityRef reachabilityRef; +@property (nonatomic, strong) dispatch_queue_t reachabilitySerialQueue; +@property (nonatomic, strong) id reachabilityObject; + +- (void)reachabilityChanged:(SCNetworkReachabilityFlags)flags; +- (BOOL)isReachableWithFlags:(SCNetworkReachabilityFlags)flags; + +@end + +static NSString *reachabilityFlags(SCNetworkReachabilityFlags flags) { + return [NSString stringWithFormat:@"%c%c %c%c%c%c%c%c%c", +#if TARGET_OS_IPHONE + (flags & kSCNetworkReachabilityFlagsIsWWAN) ? 'W' : '-', +#else + 'X', +#endif + (flags & kSCNetworkReachabilityFlagsReachable) ? 'R' : '-', + (flags & kSCNetworkReachabilityFlagsConnectionRequired) ? 'c' : '-', + (flags & kSCNetworkReachabilityFlagsTransientConnection) ? 't' : '-', + (flags & kSCNetworkReachabilityFlagsInterventionRequired) ? 'i' : '-', + (flags & kSCNetworkReachabilityFlagsConnectionOnTraffic) ? 'C' : '-', + (flags & kSCNetworkReachabilityFlagsConnectionOnDemand) ? 'D' : '-', + (flags & kSCNetworkReachabilityFlagsIsLocalAddress) ? 'l' : '-', + (flags & kSCNetworkReachabilityFlagsIsDirect) ? 'd' : '-']; +} + +// Start listening for reachability notifications on the current run loop +static void TMReachabilityCallback(SCNetworkReachabilityRef target, SCNetworkReachabilityFlags flags, void *info) { +#pragma unused(target) + + QCloudReachability *reachability = ((__bridge QCloudReachability *)info); + + // We probably don't need an autoreleasepool here, as GCD docs state each queue has its own autorelease pool, + // but what the heck eh? + @autoreleasepool { + [reachability reachabilityChanged:flags]; + } +} + +@implementation QCloudReachability + +#pragma mark - Class Constructor Methods + ++ (instancetype)reachabilityWithHostName:(NSString *)hostname { + return [QCloudReachability reachabilityWithHostname:hostname]; +} + ++ (instancetype)reachabilityWithHostname:(NSString *)hostname { + SCNetworkReachabilityRef ref = SCNetworkReachabilityCreateWithName(NULL, [hostname UTF8String]); + if (ref) { + id reachability = [[self alloc] initWithReachabilityRef:ref]; + + return reachability; + } + + return nil; +} + ++ (instancetype)reachabilityWithAddress:(void *)hostAddress { + SCNetworkReachabilityRef ref = SCNetworkReachabilityCreateWithAddress(kCFAllocatorDefault, (const struct sockaddr *)hostAddress); + if (ref) { + id reachability = [[self alloc] initWithReachabilityRef:ref]; + + return reachability; + } + + return nil; +} + ++ (instancetype)reachabilityForInternetConnection { + struct sockaddr_in zeroAddress; + bzero(&zeroAddress, sizeof(zeroAddress)); + zeroAddress.sin_len = sizeof(zeroAddress); + zeroAddress.sin_family = AF_INET; + + return [self reachabilityWithAddress:&zeroAddress]; +} + ++ (instancetype)reachabilityForLocalWiFi { + struct sockaddr_in localWifiAddress; + bzero(&localWifiAddress, sizeof(localWifiAddress)); + localWifiAddress.sin_len = sizeof(localWifiAddress); + localWifiAddress.sin_family = AF_INET; + // IN_LINKLOCALNETNUM is defined in as 169.254.0.0 + localWifiAddress.sin_addr.s_addr = htonl(IN_LINKLOCALNETNUM); + + return [self reachabilityWithAddress:&localWifiAddress]; +} + +// Initialization methods + +- (instancetype)initWithReachabilityRef:(SCNetworkReachabilityRef)ref { + self = [super init]; + if (self != nil) { + self.reachableOnWWAN = YES; + self.reachabilityRef = ref; + + // We need to create a serial queue. + // We allocate this once for the lifetime of the notifier. + + self.reachabilitySerialQueue = dispatch_queue_create("com.tonymillion.reachability", NULL); + } + + return self; +} + +- (void)dealloc { + [self stopNotifier]; + + if (self.reachabilityRef) { + CFRelease(self.reachabilityRef); + self.reachabilityRef = nil; + } + + self.reachableBlock = nil; + self.unreachableBlock = nil; + self.reachabilityBlock = nil; + self.reachabilitySerialQueue = nil; +} + +#pragma mark - Notifier Methods + +// Notifier +// NOTE: This uses GCD to trigger the blocks - they *WILL NOT* be called on THE MAIN THREAD +// - In other words DO NOT DO ANY UI UPDATES IN THE BLOCKS. +// INSTEAD USE dispatch_async(dispatch_get_main_queue(), ^{UISTUFF}) (or dispatch_sync if you want) + +- (BOOL)startNotifier { + // allow start notifier to be called multiple times + if (self.reachabilityObject && (self.reachabilityObject == self)) { + return YES; + } + + SCNetworkReachabilityContext context = { 0, NULL, NULL, NULL, NULL }; + context.info = (__bridge void *)self; + + if (SCNetworkReachabilitySetCallback(self.reachabilityRef, TMReachabilityCallback, &context)) { + // Set it as our reachability queue, which will retain the queue + if (SCNetworkReachabilitySetDispatchQueue(self.reachabilityRef, self.reachabilitySerialQueue)) { + // this should do a retain on ourself, so as long as we're in notifier mode we shouldn't disappear out from under ourselves + // woah + self.reachabilityObject = self; + return YES; + } else { +#ifdef DEBUG + NSLog(@"SCNetworkReachabilitySetDispatchQueue() failed: %s", SCErrorString(SCError())); +#endif + + // UH OH - FAILURE - stop any callbacks! + SCNetworkReachabilitySetCallback(self.reachabilityRef, NULL, NULL); + } + } else { +#ifdef DEBUG + NSLog(@"SCNetworkReachabilitySetCallback() failed: %s", SCErrorString(SCError())); +#endif + } + + // if we get here we fail at the internet + self.reachabilityObject = nil; + return NO; +} + +- (void)stopNotifier { + // First stop, any callbacks! + SCNetworkReachabilitySetCallback(self.reachabilityRef, NULL, NULL); + + // Unregister target from the GCD serial dispatch queue. + SCNetworkReachabilitySetDispatchQueue(self.reachabilityRef, NULL); + + self.reachabilityObject = nil; +} + +#pragma mark - reachability tests + +// This is for the case where you flick the airplane mode; +// you end up getting something like this: +// QCloudReachability: WR ct----- +// QCloudReachability: -- ------- +// QCloudReachability: WR ct----- +// QCloudReachability: -- ------- +// We treat this as 4 UNREACHABLE triggers - really apple should do better than this + +#define testcase (kSCNetworkReachabilityFlagsConnectionRequired | kSCNetworkReachabilityFlagsTransientConnection) + +- (BOOL)isReachableWithFlags:(SCNetworkReachabilityFlags)flags { + BOOL connectionUP = YES; + + if (!(flags & kSCNetworkReachabilityFlagsReachable)) + connectionUP = NO; + + if ((flags & testcase) == testcase) + connectionUP = NO; + +#if TARGET_OS_IPHONE + if (flags & kSCNetworkReachabilityFlagsIsWWAN) { + // We're on 3G. + if (!self.reachableOnWWAN) { + // We don't want to connect when on 3G. + connectionUP = NO; + } + } +#endif + + return connectionUP; +} + +- (BOOL)isReachable { + SCNetworkReachabilityFlags flags; + + if (!SCNetworkReachabilityGetFlags(self.reachabilityRef, &flags)) + return NO; + + return [self isReachableWithFlags:flags]; +} + +- (BOOL)isReachableViaWWAN { +#if TARGET_OS_IPHONE + + SCNetworkReachabilityFlags flags = 0; + + if (SCNetworkReachabilityGetFlags(self.reachabilityRef, &flags)) { + // Check we're REACHABLE + if (flags & kSCNetworkReachabilityFlagsReachable) { + // Now, check we're on WWAN + if (flags & kSCNetworkReachabilityFlagsIsWWAN) { + return YES; + } + } + } +#endif + + return NO; +} + +- (BOOL)isReachableViaWiFi { + SCNetworkReachabilityFlags flags = 0; + + if (SCNetworkReachabilityGetFlags(self.reachabilityRef, &flags)) { + // Check we're reachable + if ((flags & kSCNetworkReachabilityFlagsReachable)) { +#if TARGET_OS_IPHONE + // Check we're NOT on WWAN + if ((flags & kSCNetworkReachabilityFlagsIsWWAN)) { + return NO; + } +#endif + return YES; + } + } + + return NO; +} + +// WWAN may be available, but not active until a connection has been established. +// WiFi may require a connection for VPN on Demand. +- (BOOL)isConnectionRequired { + return [self connectionRequired]; +} + +- (BOOL)connectionRequired { + SCNetworkReachabilityFlags flags; + + if (SCNetworkReachabilityGetFlags(self.reachabilityRef, &flags)) { + return (flags & kSCNetworkReachabilityFlagsConnectionRequired); + } + + return NO; +} + +// Dynamic, on demand connection? +- (BOOL)isConnectionOnDemand { + SCNetworkReachabilityFlags flags; + + if (SCNetworkReachabilityGetFlags(self.reachabilityRef, &flags)) { + return ((flags & kSCNetworkReachabilityFlagsConnectionRequired) + && (flags & (kSCNetworkReachabilityFlagsConnectionOnTraffic | kSCNetworkReachabilityFlagsConnectionOnDemand))); + } + + return NO; +} + +// Is user intervention required? +- (BOOL)isInterventionRequired { + SCNetworkReachabilityFlags flags; + + if (SCNetworkReachabilityGetFlags(self.reachabilityRef, &flags)) { + return ((flags & kSCNetworkReachabilityFlagsConnectionRequired) && (flags & kSCNetworkReachabilityFlagsInterventionRequired)); + } + + return NO; +} + +#pragma mark - reachability status stuff + +- (NetworkStatus)currentReachabilityStatus { + if ([self isReachable]) { + if ([self isReachableViaWiFi]) + return ReachableViaWiFi; + +#if TARGET_OS_IPHONE + return ReachableViaWWAN; +#endif + } + + return NotReachable; +} + +- (SCNetworkReachabilityFlags)reachabilityFlags { + SCNetworkReachabilityFlags flags = 0; + + if (SCNetworkReachabilityGetFlags(self.reachabilityRef, &flags)) { + return flags; + } + + return 0; +} + +- (NSString *)currentReachabilityString { + NetworkStatus temp = [self currentReachabilityStatus]; + + if (temp == ReachableViaWWAN) { + // Updated for the fact that we have CDMA phones now! + return NSLocalizedString(@"Cellular", @""); + } + if (temp == ReachableViaWiFi) { + return NSLocalizedString(@"WiFi", @""); + } + + return NSLocalizedString(@"No Connection", @""); +} + +- (NSString *)currentReachabilityFlags { + return reachabilityFlags([self reachabilityFlags]); +} + +#pragma mark - Callback function calls this method + +- (void)reachabilityChanged:(SCNetworkReachabilityFlags)flags { + if ([self isReachableWithFlags:flags]) { + if (self.reachableBlock) { + self.reachableBlock(self); + } + } else { + if (self.unreachableBlock) { + self.unreachableBlock(self); + } + } + + if (self.reachabilityBlock) { + self.reachabilityBlock(self, flags); + } + + // this makes sure the change notification happens on the MAIN THREAD + dispatch_async(dispatch_get_main_queue(), ^{ + [[NSNotificationCenter defaultCenter] postNotificationName:kQCloudReachabilityChangedNotification object:self]; + }); +} + +#pragma mark - Debug Description + +- (NSString *)description { + NSString *description = + [NSString stringWithFormat:@"<%@: %#x (%@)>", NSStringFromClass([self class]), (unsigned int)self, [self currentReachabilityFlags]]; + return description; +} + +@end diff --git a/Pods/QCloudCore/QCloudCore/Classes/Base/QCloudBase/QualityAssurance/QCloudServiceConfiguration+Quality.h b/Pods/QCloudCore/QCloudCore/Classes/Base/QCloudBase/QualityAssurance/QCloudServiceConfiguration+Quality.h new file mode 100644 index 0000000..b1c1177 --- /dev/null +++ b/Pods/QCloudCore/QCloudCore/Classes/Base/QCloudBase/QualityAssurance/QCloudServiceConfiguration+Quality.h @@ -0,0 +1,17 @@ +// +// QCloudServiceConfiguration+Quality.h +// QCloudCore +// +// Created by karisli(李雪) on 2022/1/18. +// + +#import + +NS_ASSUME_NONNULL_BEGIN + +@interface QCloudServiceConfiguration (Quality) + +@property (nonatomic, assign) BOOL disableSetupBeacon; +@end + +NS_ASSUME_NONNULL_END diff --git a/Pods/QCloudCore/QCloudCore/Classes/Base/QCloudBase/QualityAssurance/QCloudServiceConfiguration+Quality.m b/Pods/QCloudCore/QCloudCore/Classes/Base/QCloudBase/QualityAssurance/QCloudServiceConfiguration+Quality.m new file mode 100644 index 0000000..10f9873 --- /dev/null +++ b/Pods/QCloudCore/QCloudCore/Classes/Base/QCloudBase/QualityAssurance/QCloudServiceConfiguration+Quality.m @@ -0,0 +1,20 @@ +// +// QCloudServiceConfiguration+Quality.m +// QCloudCore +// +// Created by karisli(李雪) on 2022/1/18. +// + +#import "QCloudServiceConfiguration+Quality.h" +#import +@implementation QCloudServiceConfiguration (Quality) +NSString *const disableSetupBeaconKey = @"disableBeaconKey"; + +-(void)setDisableSetupBeacon:(BOOL)disableSetupBeacon{ + objc_setAssociatedObject(self, &disableSetupBeaconKey, [NSNumber numberWithBool:disableSetupBeacon], OBJC_ASSOCIATION_ASSIGN); +} +-(BOOL)disableSetupBeacon{ + //因为在set方法中转成了number类型,所以这里需要转成Bool类型 + return [objc_getAssociatedObject(self, &disableSetupBeaconKey) boolValue]; +} +@end diff --git a/Pods/QCloudCore/QCloudCore/Classes/Base/QCloudBundle/QCloudBundle.h b/Pods/QCloudCore/QCloudCore/Classes/Base/QCloudBundle/QCloudBundle.h new file mode 100644 index 0000000..57750c0 --- /dev/null +++ b/Pods/QCloudCore/QCloudCore/Classes/Base/QCloudBundle/QCloudBundle.h @@ -0,0 +1,12 @@ +// +// QCloudBundle.h +// Pods +// +// Created by Dong Zhao on 2017/3/20. +// +// + +#import + +#import "QCloudMainBundle.h" +#import "UIImage+QCloudBundle.h" diff --git a/Pods/QCloudCore/QCloudCore/Classes/Base/QCloudBundle/QCloudMainBundle.h b/Pods/QCloudCore/QCloudCore/Classes/Base/QCloudBundle/QCloudMainBundle.h new file mode 100644 index 0000000..b6eb40f --- /dev/null +++ b/Pods/QCloudCore/QCloudCore/Classes/Base/QCloudBundle/QCloudMainBundle.h @@ -0,0 +1,13 @@ +// +// QCloudMainBundle.h +// Pods +// +// Created by Dong Zhao on 2017/3/20. +// +// + +#import +#pragma clang diagnostic push +#pragma clang diagnostic ignored "-Wstrict-prototypes" +FOUNDATION_EXTERN NSBundle *QCloudMainBundle(); +#pragma clang diagnostic pop diff --git a/Pods/QCloudCore/QCloudCore/Classes/Base/QCloudBundle/QCloudMainBundle.m b/Pods/QCloudCore/QCloudCore/Classes/Base/QCloudBundle/QCloudMainBundle.m new file mode 100644 index 0000000..0b83fbd --- /dev/null +++ b/Pods/QCloudCore/QCloudCore/Classes/Base/QCloudBundle/QCloudMainBundle.m @@ -0,0 +1,19 @@ +// +// QCloudMainBundle.m +// Pods +// +// Created by Dong Zhao on 2017/3/20. +// +// + +#import "QCloudMainBundle.h" + +NSBundle *QCloudMainBundle(void) { + static NSBundle *bundle = nil; + static dispatch_once_t onceToken; + dispatch_once(&onceToken, ^{ + NSString *path = [[NSBundle mainBundle] pathForResource:@"QCloudBundle" ofType:@"bundle"]; + bundle = [NSBundle bundleWithPath:path]; + }); + return bundle; +} diff --git a/Pods/QCloudCore/QCloudCore/Classes/Base/QCloudBundle/UIImage+QCloudBundle.h b/Pods/QCloudCore/QCloudCore/Classes/Base/QCloudBundle/UIImage+QCloudBundle.h new file mode 100644 index 0000000..c4ab5a1 --- /dev/null +++ b/Pods/QCloudCore/QCloudCore/Classes/Base/QCloudBundle/UIImage+QCloudBundle.h @@ -0,0 +1,17 @@ +// +// UIImage+QCloudBunle.h +// Pods +// +// Created by Dong Zhao on 2017/3/20. +// +// +#if TARGET_OS_IOS +#import + +#define QCloudImageNamed(name, cla) [UIImage qcloudImageNamed:@"" #name class:cla] +#define QCloudImageNamedInSelfBundle(name) [UIImage qcloudImageNamed:@"" #name class:self.class] + +@interface UIImage (QCloudBunle) ++ (UIImage *)qcloudImageNamed:(NSString *)name class:(Class)cla; +@end +#endif diff --git a/Pods/QCloudCore/QCloudCore/Classes/Base/QCloudBundle/UIImage+QCloudBundle.m b/Pods/QCloudCore/QCloudCore/Classes/Base/QCloudBundle/UIImage+QCloudBundle.m new file mode 100644 index 0000000..03ab7ad --- /dev/null +++ b/Pods/QCloudCore/QCloudCore/Classes/Base/QCloudBundle/UIImage+QCloudBundle.m @@ -0,0 +1,24 @@ +// +// UIImage+QCloudBunle.m +// Pods +// +// Created by Dong Zhao on 2017/3/20. +// +// +#if TARGET_OS_IOS + +#import "UIImage+QCloudBundle.h" +#import "QCloudMainBundle.h" +@implementation UIImage (QCloudBunle) + ++ (UIImage *)qcloudImageNamed:(NSString *)name class:(Class)cla { + NSBundle *bundle = QCloudMainBundle(); + if (!bundle) { + NSString *path = [[NSBundle bundleForClass:cla] pathForResource:@"QCloudBundle" ofType:@"bundle"]; + bundle = [NSBundle bundleWithPath:path]; + } + return [UIImage imageNamed:name inBundle:bundle compatibleWithTraitCollection:nil]; +} + +@end +#endif diff --git a/Pods/QCloudCore/QCloudCore/Classes/Base/QCloudCategory/NSDate+QCLOUD.h b/Pods/QCloudCore/QCloudCore/Classes/Base/QCloudCategory/NSDate+QCLOUD.h new file mode 100644 index 0000000..ef5fc9f --- /dev/null +++ b/Pods/QCloudCore/QCloudCore/Classes/Base/QCloudCategory/NSDate+QCLOUD.h @@ -0,0 +1,22 @@ +// +// NSDate+QCLOUD.h +// QCloudCore +// +// Created by karisli(李雪) on 2018/12/18. +// + +#import + +NS_ASSUME_NONNULL_BEGIN + +@interface NSDate (QCLOUD) ++ (NSDate *)qcloud_calibrateTime; ++ (void)qcloud_setTimeDeviation:(NSTimeInterval)timeDeviation; ++ (NSTimeInterval)qcloud_getTimeDeviation; ++ (NSString *)qcloud_stringFromDate:(NSDate *)date; ++ (NSString *)qcloud_stringFromDate_24:(NSDate *)date; ++ (NSString *)qcloud_stringFromDate_24SSS:(NSDate *)date; ++ (NSDate *)localDate; +@end + +NS_ASSUME_NONNULL_END diff --git a/Pods/QCloudCore/QCloudCore/Classes/Base/QCloudCategory/NSDate+QCLOUD.m b/Pods/QCloudCore/QCloudCore/Classes/Base/QCloudCategory/NSDate+QCLOUD.m new file mode 100644 index 0000000..1e1bd43 --- /dev/null +++ b/Pods/QCloudCore/QCloudCore/Classes/Base/QCloudCategory/NSDate+QCLOUD.m @@ -0,0 +1,51 @@ +// +// NSDate+QCLOUD.m +// QCloudCore +// +// Created by karisli(李雪) on 2018/12/18. +// + +#import "NSDate+QCLOUD.h" +#import "QCloudLogger.h" +static NSTimeInterval _timeDeviation = 0.0; +@implementation NSDate (QCLOUD) ++ (NSDate *)qcloud_calibrateTime { + QCloudLogDebugP(@"Utils",@"fix skew time %@", [self qcloud_stringFromDate:[[NSDate date] dateByAddingTimeInterval:-1 * _timeDeviation]]); + return [[NSDate date] dateByAddingTimeInterval:-1 * _timeDeviation]; +} ++ (void)qcloud_setTimeDeviation:(NSTimeInterval)timeDeviation { + @synchronized(self) { + _timeDeviation = timeDeviation; + } +} ++ (NSTimeInterval)qcloud_getTimeDeviation { + @synchronized(self) { + return _timeDeviation; + } +} ++ (NSString *)qcloud_stringFromDate:(NSDate *)date { + NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init]; //创建一个日期格式化器 + dateFormatter.dateFormat = @"yyyy-MM-dd hh:mm:ss"; //指定转date得日期格式化形式 + return [dateFormatter stringFromDate:date]; // 2015-11-20 +} + ++ (NSString *)qcloud_stringFromDate_24:(NSDate *)date { + NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init]; //创建一个日期格式化器 + dateFormatter.dateFormat = @"yyyy-MM-dd HH:mm:ss"; //指定转date得日期格式化形式 + return [dateFormatter stringFromDate:date]; // 2015-11-20 +} + ++ (NSString *)qcloud_stringFromDate_24SSS:(NSDate *)date { + NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init]; //创建一个日期格式化器 + dateFormatter.dateFormat = @"yyyy-MM-dd HH:mm:ss.SSS"; //指定转date得日期格式化形式 + return [dateFormatter stringFromDate:date]; // 2015-11-20 +} + ++ (NSDate *)localDate { + NSDate *date = [NSDate date]; + NSTimeZone *zone = [NSTimeZone systemTimeZone]; + NSInteger interval = [zone secondsFromGMTForDate:date]; + NSDate *localeDate = [date dateByAddingTimeInterval:interval]; + return localeDate; +} +@end diff --git a/Pods/QCloudCore/QCloudCore/Classes/Base/QCloudCategory/NSDate+QCloudInternetDateTime.h b/Pods/QCloudCore/QCloudCore/Classes/Base/QCloudCategory/NSDate+QCloudInternetDateTime.h new file mode 100644 index 0000000..ea335fd --- /dev/null +++ b/Pods/QCloudCore/QCloudCore/Classes/Base/QCloudCategory/NSDate+QCloudInternetDateTime.h @@ -0,0 +1,26 @@ +// +// NSDate+QCloudInternetDateTime.h +// MWFeedParser +// +// Created by Michael Waterfall on 07/10/2010. +// Copyright 2010 Michael Waterfall. All rights reserved. +// + +#import + +// Formatting hints +typedef enum { QCloudDateFormatHintNone, QCloudDateFormatHintRFC822, QCloudDateFormatHintRFC3339 } DateFormatHint; + +// A category to parse internet date & time strings +@interface NSDate (QCloudInternetDateTime) + +// Get date from RFC3339 or RFC822 string +// - A format/specification hint can be used to speed up, +// otherwise both will be attempted in order to get a date ++ (NSDate *)qcloud_dateFromInternetDateTimeString:(NSString *)dateString formatHint:(DateFormatHint)hint; + +// Get date from a string using a specific date specification ++ (NSDate *)qcloud_dateFromRFC3339String:(NSString *)dateString; ++ (NSDate *)qcloud_dateFromRFC822String:(NSString *)dateString; + +@end diff --git a/Pods/QCloudCore/QCloudCore/Classes/Base/QCloudCategory/NSDate+QCloudInternetDateTime.m b/Pods/QCloudCore/QCloudCore/Classes/Base/QCloudCategory/NSDate+QCloudInternetDateTime.m new file mode 100644 index 0000000..6c87883 --- /dev/null +++ b/Pods/QCloudCore/QCloudCore/Classes/Base/QCloudCategory/NSDate+QCloudInternetDateTime.m @@ -0,0 +1,142 @@ +// +// NSDate+QCloudInternetDateTime.m +// MWFeedParser +// +// Created by Michael Waterfall on 07/10/2010. +// Copyright 2010 Michael Waterfall. All rights reserved. +// + +#import "NSDate+QCloudInternetDateTime.h" +#import "QCloudLogger.h" +// Always keep the formatter around as they're expensive to instantiate +static NSDateFormatter *_internetDateTimeFormatter = nil; + +// Good info on internet dates here: +// http://developer.apple.com/iphone/library/qa/qa2010/qa1480.html +@implementation NSDate (QCloudInternetDateTime) + +// Instantiate single date formatter ++ (NSDateFormatter *)qcloud_internetDateTimeFormatter { + @synchronized(self) { + if (!_internetDateTimeFormatter) { + NSLocale *en_US_POSIX = [[NSLocale alloc] initWithLocaleIdentifier:@"en_US_POSIX"]; + _internetDateTimeFormatter = [[NSDateFormatter alloc] init]; + [_internetDateTimeFormatter setLocale:en_US_POSIX]; + [_internetDateTimeFormatter setTimeZone:[NSTimeZone timeZoneForSecondsFromGMT:0]]; + } + } + return _internetDateTimeFormatter; +} + +// Get a date from a string - hint can be used to speed up ++ (NSDate *)qcloud_dateFromInternetDateTimeString:(NSString *)dateString formatHint:(DateFormatHint)hint { + // Keep dateString around a while (for thread-safety) + NSDate *date = nil; + if (dateString) { + if (hint != QCloudDateFormatHintRFC3339) { + // Try RFC822 first + date = [NSDate qcloud_dateFromRFC822String:dateString]; + if (!date) + date = [NSDate qcloud_dateFromRFC3339String:dateString]; + } else { + // Try RFC3339 first + date = [NSDate qcloud_dateFromRFC3339String:dateString]; + if (!date) + date = [NSDate qcloud_dateFromRFC822String:dateString]; + } + } + // Finished with date string + return date; +} + +// See http://www.faqs.org/rfcs/rfc822.html ++ (NSDate *)qcloud_dateFromRFC822String:(NSString *)dateString { + // Keep dateString around a while (for thread-safety) + NSDate *date = nil; + if (dateString) { + NSDateFormatter *dateFormatter = [NSDate qcloud_internetDateTimeFormatter]; + @synchronized(dateFormatter) { + // Process + NSString *RFC822String = [[NSString stringWithString:dateString] uppercaseString]; + if ([RFC822String rangeOfString:@","].location != NSNotFound) { + if (!date) { // Sun, 19 May 2002 15:21:36 GMT + [dateFormatter setDateFormat:@"EEE, d MMM yyyy HH:mm:ss zzz"]; + date = [dateFormatter dateFromString:RFC822String]; + } + if (!date) { // Sun, 19 May 2002 15:21 GMT + [dateFormatter setDateFormat:@"EEE, d MMM yyyy HH:mm zzz"]; + date = [dateFormatter dateFromString:RFC822String]; + } + if (!date) { // Sun, 19 May 2002 15:21:36 + [dateFormatter setDateFormat:@"EEE, d MMM yyyy HH:mm:ss"]; + date = [dateFormatter dateFromString:RFC822String]; + } + if (!date) { // Sun, 19 May 2002 15:21 + [dateFormatter setDateFormat:@"EEE, d MMM yyyy HH:mm"]; + date = [dateFormatter dateFromString:RFC822String]; + } + } else { + if (!date) { // 19 May 2002 15:21:36 GMT + [dateFormatter setDateFormat:@"d MMM yyyy HH:mm:ss zzz"]; + date = [dateFormatter dateFromString:RFC822String]; + } + if (!date) { // 19 May 2002 15:21 GMT + [dateFormatter setDateFormat:@"d MMM yyyy HH:mm zzz"]; + date = [dateFormatter dateFromString:RFC822String]; + } + if (!date) { // 19 May 2002 15:21:36 + [dateFormatter setDateFormat:@"d MMM yyyy HH:mm:ss"]; + date = [dateFormatter dateFromString:RFC822String]; + } + if (!date) { // 19 May 2002 15:21 + [dateFormatter setDateFormat:@"d MMM yyyy HH:mm"]; + date = [dateFormatter dateFromString:RFC822String]; + } + } + if (!date) + QCloudLogDebugE(@"Utils",@"Could not parse RFC822 date: \"%@\" Possible invalid format.", dateString); + } + } + // Finished with date string + return date; +} + +// See http://www.faqs.org/rfcs/rfc3339.html ++ (NSDate *)qcloud_dateFromRFC3339String:(NSString *)dateString { + // Keep dateString around a while (for thread-safety) + NSDate *date = nil; + if (dateString) { + NSDateFormatter *dateFormatter = [NSDate qcloud_internetDateTimeFormatter]; + @synchronized(dateFormatter) { + // Process date + NSString *RFC3339String = [[NSString stringWithString:dateString] uppercaseString]; + RFC3339String = [RFC3339String stringByReplacingOccurrencesOfString:@"Z" withString:@"-0000"]; + // Remove colon in timezone as it breaks NSDateFormatter in iOS 4+. + // - see https://devforums.apple.com/thread/45837 + if (RFC3339String.length > 20) { + RFC3339String = [RFC3339String stringByReplacingOccurrencesOfString:@":" + withString:@"" + options:0 + range:NSMakeRange(20, RFC3339String.length - 20)]; + } + if (!date) { // 1996-12-19T16:39:57-0800 + [dateFormatter setDateFormat:@"yyyy'-'MM'-'dd'T'HH':'mm':'ssZZZ"]; + date = [dateFormatter dateFromString:RFC3339String]; + } + if (!date) { // 1937-01-01T12:00:27.87+0020 + [dateFormatter setDateFormat:@"yyyy'-'MM'-'dd'T'HH':'mm':'ss.SSSZZZ"]; + date = [dateFormatter dateFromString:RFC3339String]; + } + if (!date) { // 1937-01-01T12:00:27 + [dateFormatter setDateFormat:@"yyyy'-'MM'-'dd'T'HH':'mm':'ss"]; + date = [dateFormatter dateFromString:RFC3339String]; + } + if (!date) + QCloudLogDebugE(@"Utils",@"Could not parse RFC3339 date: \"%@\" Possible invalid format.", dateString); + } + } + // Finished with date string + return date; +} + +@end diff --git a/Pods/QCloudCore/QCloudCore/Classes/Base/QCloudCategory/NSMutableData+QCloud_CRC.h b/Pods/QCloudCore/QCloudCore/Classes/Base/QCloudCategory/NSMutableData+QCloud_CRC.h new file mode 100644 index 0000000..a769da1 --- /dev/null +++ b/Pods/QCloudCore/QCloudCore/Classes/Base/QCloudCategory/NSMutableData+QCloud_CRC.h @@ -0,0 +1,17 @@ +// +// NSMutableData+Qcloud_CRC.h +// AOPKit +// +// Created by karisli(李雪) on 2020/7/1. +// + +#import + +NS_ASSUME_NONNULL_BEGIN + +@interface NSMutableData (QCloud_CRC) +- (uint64_t)qcloud_crc64; +- (uint64_t)qcloud_crc64ForCombineCRC1:(uint64_t)crc1 CRC2:(uint64_t)crc2 length:(size_t)len2; +@end + +NS_ASSUME_NONNULL_END diff --git a/Pods/QCloudCore/QCloudCore/Classes/Base/QCloudCategory/NSMutableData+QCloud_CRC.m b/Pods/QCloudCore/QCloudCore/Classes/Base/QCloudCategory/NSMutableData+QCloud_CRC.m new file mode 100644 index 0000000..5d8b05c --- /dev/null +++ b/Pods/QCloudCore/QCloudCore/Classes/Base/QCloudCategory/NSMutableData+QCloud_CRC.m @@ -0,0 +1,18 @@ +// +// NSMutableData+Qcloud_CRC.m +// AOPKit +// +// Created by karisli(李雪) on 2020/7/1. +// + +#import "NSMutableData+QCloud_CRC.h" +#include "QCloudCRC64.h" +@implementation NSMutableData (QCloud_CRC) +- (uint64_t)qcloud_crc64 { + return qcloud_aos_crc64(0, self.mutableBytes, self.length); +} + +- (uint64_t)qcloud_crc64ForCombineCRC1:(uint64_t)crc1 CRC2:(uint64_t)crc2 length:(size_t)len2 { + return qcloud_aos_crc64_combine(crc1, crc2, len2); +} +@end diff --git a/Pods/QCloudCore/QCloudCore/Classes/Base/QCloudCategory/QCloudCRC64.c b/Pods/QCloudCore/QCloudCore/Classes/Base/QCloudCategory/QCloudCRC64.c new file mode 100755 index 0000000..34acf8d --- /dev/null +++ b/Pods/QCloudCore/QCloudCore/Classes/Base/QCloudCategory/QCloudCRC64.c @@ -0,0 +1,289 @@ +/* qcloud_aos_crc64.c -- compute CRC-64 + * Copyright (C) 2013 Mark Adler + * Version 1.4 16 Dec 2013 Mark Adler + */ + +/* + This software is provided 'as-is', without any express or implied + warranty. In no event will the author be held liable for any damages + arising from the use of this software. + + Permission is granted to anyone to use this software for any purpose, + including commercial applications, and to alter it and redistribute it + freely, subject to the following restrictions: + + 1. The origin of this software must not be misrepresented; you must not + claim that you wrote the original software. If you use this software + in a product, an acknowledgment in the product documentation would be + appreciated but is not required. + 2. Altered source versions must be plainly marked as such, and must not be + misrepresented as being the original software. + 3. This notice may not be removed or altered from any source distribution. + + Mark Adler + madler@alumni.caltech.edu + */ + +/* Compute CRC-64 in the manner of xz, using the ECMA-182 polynomial, + bit-reversed, with one's complement pre and post processing. Provide a + means to combine separately computed CRC-64's. */ + +/* Version history: + 1.0 13 Dec 2013 First version + 1.1 13 Dec 2013 Fix comments in test code + 1.2 14 Dec 2013 Determine endianess at run time + 1.3 15 Dec 2013 Add eight-byte processing for big endian as well + Make use of the pthread library optional + 1.4 16 Dec 2013 Make once variable volatile for limited thread protection + */ + +#include "QCloudCRC64.h" +#include + +/* 64-bit CRC polynomial with these coefficients, but reversed: + 64, 62, 57, 55, 54, 53, 52, 47, 46, 45, 40, 39, 38, 37, 35, 33, 32, + 31, 29, 27, 24, 23, 22, 21, 19, 17, 13, 12, 10, 9, 7, 4, 1, 0 */ +#define POLY 0xc96c5795d7870f42 + +/* Tables for CRC calculation -- filled in by initialization functions that are + called once. These could be replaced by constant tables generated in the + same way. There are two tables, one for each endianess. Since these are + static, i.e. local, one should be compiled out of existence if the compiler + can evaluate the endianess check in crc64() at compile time. */ +static uint64_t crc64_little_table[8][256]; +static uint64_t crc64_big_table[8][256]; + +/* Fill in the CRC-64 constants table. */ +static void crc64_init(uint64_t table[][256]) +{ + unsigned n, k; + uint64_t crc; + + /* generate CRC-64's for all single byte sequences */ + for (n = 0; n < 256; n++) { + crc = n; + for (k = 0; k < 8; k++) + crc = crc & 1 ? POLY ^ (crc >> 1) : crc >> 1; + table[0][n] = crc; + } + + /* generate CRC-64's for those followed by 1 to 7 zeros */ + for (n = 0; n < 256; n++) { + crc = table[0][n]; + for (k = 1; k < 8; k++) { + crc = table[0][crc & 0xff] ^ (crc >> 8); + table[k][n] = crc; + } + } +} + +/* This function is called once to initialize the CRC-64 table for use on a + little-endian architecture. */ +static void crc64_little_init(void) +{ + crc64_init(crc64_little_table); +} + +/* Reverse the bytes in a 64-bit word. */ +static inline uint64_t rev8(uint64_t a) +{ + uint64_t m; + + m = 0xff00ff00ff00ff; + a = ((a >> 8) & m) | (a & m) << 8; + m = 0xffff0000ffff; + a = ((a >> 16) & m) | (a & m) << 16; + return a >> 32 | a << 32; +} + +/* This function is called once to initialize the CRC-64 table for use on a + big-endian architecture. */ +static void crc64_big_init(void) +{ + unsigned k, n; + + crc64_init(crc64_big_table); + for (k = 0; k < 8; k++) + for (n = 0; n < 256; n++) + crc64_big_table[k][n] = rev8(crc64_big_table[k][n]); +} + +/* Run the init() function exactly once. If pthread.h is not included, then + this macro will use a simple static state variable for the purpose, which is + not thread-safe. The init function must be of the type void init(void). */ +#ifdef PTHREAD_ONCE_INIT +# define ONCE(init) \ + do { \ + static pthread_once_t once = PTHREAD_ONCE_INIT; \ + pthread_once(&once, init); \ + } while (0) +#else +# define ONCE(init) \ + do { \ + static volatile int once = 1; \ + if (once) { \ + if (once++ == 1) { \ + init(); \ + once = 0; \ + } \ + else \ + while (once) \ + ; \ + } \ + } while (0) +#endif + +/* Calculate a CRC-64 eight bytes at a time on a little-endian architecture. */ +static inline uint64_t crc64_little(uint64_t crc, void *buf, size_t len) +{ + unsigned char *next = buf; + + ONCE(crc64_little_init); + crc = ~crc; + while (len && ((uintptr_t)next & 7) != 0) { + crc = crc64_little_table[0][(crc ^ *next++) & 0xff] ^ (crc >> 8); + len--; + } + while (len >= 8) { + crc ^= *(uint64_t *)next; + crc = crc64_little_table[7][crc & 0xff] ^ + crc64_little_table[6][(crc >> 8) & 0xff] ^ + crc64_little_table[5][(crc >> 16) & 0xff] ^ + crc64_little_table[4][(crc >> 24) & 0xff] ^ + crc64_little_table[3][(crc >> 32) & 0xff] ^ + crc64_little_table[2][(crc >> 40) & 0xff] ^ + crc64_little_table[1][(crc >> 48) & 0xff] ^ + crc64_little_table[0][crc >> 56]; + next += 8; + len -= 8; + } + while (len) { + crc = crc64_little_table[0][(crc ^ *next++) & 0xff] ^ (crc >> 8); + len--; + } + return ~crc; +} + +/* Calculate a CRC-64 eight bytes at a time on a big-endian architecture. */ +static inline uint64_t crc64_big(uint64_t crc, void *buf, size_t len) +{ + unsigned char *next = buf; + + ONCE(crc64_big_init); + crc = ~rev8(crc); + while (len && ((uintptr_t)next & 7) != 0) { + crc = crc64_big_table[0][(crc >> 56) ^ *next++] ^ (crc << 8); + len--; + } + while (len >= 8) { + crc ^= *(uint64_t *)next; + crc = crc64_big_table[0][crc & 0xff] ^ + crc64_big_table[1][(crc >> 8) & 0xff] ^ + crc64_big_table[2][(crc >> 16) & 0xff] ^ + crc64_big_table[3][(crc >> 24) & 0xff] ^ + crc64_big_table[4][(crc >> 32) & 0xff] ^ + crc64_big_table[5][(crc >> 40) & 0xff] ^ + crc64_big_table[6][(crc >> 48) & 0xff] ^ + crc64_big_table[7][crc >> 56]; + next += 8; + len -= 8; + } + while (len) { + crc = crc64_big_table[0][(crc >> 56) ^ *next++] ^ (crc << 8); + len--; + } + return ~rev8(crc); +} + +/* Return the CRC-64 of buf[0..len-1] with initial crc, processing eight bytes + at a time. This selects one of two routines depending on the endianess of + the architecture. A good optimizing compiler will determine the endianess + at compile time if it can, and get rid of the unused code and table. If the + endianess can be changed at run time, then this code will handle that as + well, initializing and using two tables, if called upon to do so. */ +uint64_t qcloud_aos_crc64(uint64_t crc, void *buf, size_t len) +{ + uint64_t n = 1; + + return *(char *)&n ? crc64_little(crc, buf, len) : + crc64_big(crc, buf, len); +} + +#define GF2_DIM 64 /* dimension of GF(2) vectors (length of CRC) */ + +static uint64_t gf2_matrix_times(uint64_t *mat, uint64_t vec) +{ + uint64_t sum; + + sum = 0; + while (vec) { + if (vec & 1) + sum ^= *mat; + vec >>= 1; + mat++; + } + return sum; +} + +static void gf2_matrix_square(uint64_t *square, uint64_t *mat) +{ + unsigned n; + + for (n = 0; n < GF2_DIM; n++) + square[n] = gf2_matrix_times(mat, mat[n]); +} + +/* Return the CRC-64 of two sequential blocks, where crc1 is the CRC-64 of the + first block, crc2 is the CRC-64 of the second block, and len2 is the length + of the second block. */ +uint64_t qcloud_aos_crc64_combine(uint64_t crc1, uint64_t crc2, uintmax_t len2) +{ + unsigned n; + uint64_t row; + uint64_t even[GF2_DIM]; /* even-power-of-two zeros operator */ + uint64_t odd[GF2_DIM]; /* odd-power-of-two zeros operator */ + + /* degenerate case */ + if (len2 == 0) + return crc1; + + /* put operator for one zero bit in odd */ + odd[0] = POLY; /* CRC-64 polynomial */ + row = 1; + for (n = 1; n < GF2_DIM; n++) { + odd[n] = row; + row <<= 1; + } + + /* put operator for two zero bits in even */ + gf2_matrix_square(even, odd); + + /* put operator for four zero bits in odd */ + gf2_matrix_square(odd, even); + + /* apply len2 zeros to crc1 (first square will put the operator for one + zero byte, eight zero bits, in even) */ + do { + /* apply zeros operator for this bit of len2 */ + gf2_matrix_square(even, odd); + if (len2 & 1) + crc1 = gf2_matrix_times(even, crc1); + len2 >>= 1; + + /* if no more bits set, then done */ + if (len2 == 0) + break; + + /* another iteration of the loop with odd and even swapped */ + gf2_matrix_square(odd, even); + if (len2 & 1) + crc1 = gf2_matrix_times(odd, crc1); + len2 >>= 1; + + /* if no more bits set, then done */ + } while (len2 != 0); + + /* return combined crc */ + crc1 ^= crc2; + return crc1; +} diff --git a/Pods/QCloudCore/QCloudCore/Classes/Base/QCloudCategory/QCloudCRC64.h b/Pods/QCloudCore/QCloudCore/Classes/Base/QCloudCategory/QCloudCRC64.h new file mode 100755 index 0000000..510ab6e --- /dev/null +++ b/Pods/QCloudCore/QCloudCore/Classes/Base/QCloudCategory/QCloudCRC64.h @@ -0,0 +1,11 @@ +#ifndef LIBAOS_CRC_H +#define LIBAOS_CRC_H + +#include <_types/_uintmax_t.h> +#include <_types/_uint64_t.h> +#include + +uint64_t qcloud_aos_crc64(uint64_t crc, void *buf, size_t len); +uint64_t qcloud_aos_crc64_combine(uint64_t crc1, uint64_t crc2, uintmax_t len2); + +#endif diff --git a/Pods/QCloudCore/QCloudCore/Classes/Base/QCloudClientBase/Authentation/NSURLRequest+COS.h b/Pods/QCloudCore/QCloudCore/Classes/Base/QCloudClientBase/Authentation/NSURLRequest+COS.h new file mode 100644 index 0000000..0fd2f18 --- /dev/null +++ b/Pods/QCloudCore/QCloudCore/Classes/Base/QCloudClientBase/Authentation/NSURLRequest+COS.h @@ -0,0 +1,16 @@ +// +// NSMutableURLRequest+COS.h +// QCloudCore +// +// Created by garenwang on 2025/4/24. +// + +#import + +NS_ASSUME_NONNULL_BEGIN + +@interface NSURLRequest (COS) +@property (nonatomic, strong) NSArray *shouldSignedList; +@end + +NS_ASSUME_NONNULL_END diff --git a/Pods/QCloudCore/QCloudCore/Classes/Base/QCloudClientBase/Authentation/NSURLRequest+COS.m b/Pods/QCloudCore/QCloudCore/Classes/Base/QCloudClientBase/Authentation/NSURLRequest+COS.m new file mode 100644 index 0000000..a674e30 --- /dev/null +++ b/Pods/QCloudCore/QCloudCore/Classes/Base/QCloudClientBase/Authentation/NSURLRequest+COS.m @@ -0,0 +1,18 @@ +// +// NSMutableURLRequest+COS.m +// QCloudCore +// +// Created by garenwang on 2025/4/24. +// + +#import "NSURLRequest+COS.h" +#import +@implementation NSURLRequest (COS) +- (void)setShouldSignedList:(NSArray *)shouldSignedList{ + objc_setAssociatedObject(self, @"shouldSignedList", shouldSignedList, OBJC_ASSOCIATION_RETAIN_NONATOMIC); +} + +- (NSArray *)shouldSignedList{ + return objc_getAssociatedObject(self, @"shouldSignedList"); +} +@end diff --git a/Pods/QCloudCore/QCloudCore/Classes/Base/QCloudClientBase/Authentation/QCloudAuthentationCreator.h b/Pods/QCloudCore/QCloudCore/Classes/Base/QCloudClientBase/Authentation/QCloudAuthentationCreator.h new file mode 100644 index 0000000..77ea0e7 --- /dev/null +++ b/Pods/QCloudCore/QCloudCore/Classes/Base/QCloudClientBase/Authentation/QCloudAuthentationCreator.h @@ -0,0 +1,51 @@ +// +// QCloudAuthentationCreator.h +// Pods +// +// Created by Dong Zhao on 2017/5/2. +// +// + +#import +@class QCloudCredential; +@class QCloudSignature; +@class QCloudHTTPRequest; +@class QCloudSignatureFields; + +/** + 签名创建器。通过一个密钥将创建一个网络请求的签名。 + + ### 示例 + + @code + + QCloudCredential* credential = [QCloudCredential new]; + credential.secretID = @"secretID"; + credential.secretKey = @"secretKey"; + QCloudAuthentationV5Creator* creator = [[QCloudAuthentationV5Creator alloc] initWithCredential:credential]; + QCloudSignature* signature = [creator signatureForData:urlRequst]; + + */ +@interface QCloudAuthentationCreator : NSObject + +/** + 密钥 + */ +@property (nonatomic, strong, readonly, nonnull) QCloudCredential *credential; + +/** + 初始化签名创建器。 + + @param credential 密钥 + @return 签名创建器 + */ +- (instancetype _Nullable )initWithCredential:(QCloudCredential *_Nullable)credential; + +/** + 创建一个网络请求的签名。 + + @param signData 将要签名的网络请求(类型不固定) + @return 一个合法的签名 + */ +- (QCloudSignature *_Nullable)signatureForData:(id _Nullable)signData; +@end diff --git a/Pods/QCloudCore/QCloudCore/Classes/Base/QCloudClientBase/Authentation/QCloudAuthentationCreator.m b/Pods/QCloudCore/QCloudCore/Classes/Base/QCloudClientBase/Authentation/QCloudAuthentationCreator.m new file mode 100644 index 0000000..302bc4f --- /dev/null +++ b/Pods/QCloudCore/QCloudCore/Classes/Base/QCloudClientBase/Authentation/QCloudAuthentationCreator.m @@ -0,0 +1,23 @@ +// +// QCloudAuthentationCreator.m +// Pods +// +// Created by Dong Zhao on 2017/5/2. +// +// + +#import "QCloudAuthentationCreator.h" +#import "QCloudError.h" +@implementation QCloudAuthentationCreator +- (instancetype)initWithCredential:(QCloudCredential *)credential { + self = [super init]; + if (!self) { + return self; + } + _credential = credential; + return self; +} +- (QCloudSignature *)signatureForData:(id)signData { + @throw [NSException exceptionWithName:QCloudErrorDomain reason:@"请在子类中实现该函数" userInfo:nil]; +} +@end diff --git a/Pods/QCloudCore/QCloudCore/Classes/Base/QCloudClientBase/Authentation/QCloudAuthentationV4Creator.h b/Pods/QCloudCore/QCloudCore/Classes/Base/QCloudClientBase/Authentation/QCloudAuthentationV4Creator.h new file mode 100644 index 0000000..c4402d9 --- /dev/null +++ b/Pods/QCloudCore/QCloudCore/Classes/Base/QCloudClientBase/Authentation/QCloudAuthentationV4Creator.h @@ -0,0 +1,16 @@ +// +// QCloudAuthentationV4Creator.h +// Pods +// +// Created by Dong Zhao on 2017/5/17. +// +// + +#import "QCloudAuthentationCreator.h" + +/** + COS V4版本签名创建器 + */ +@interface QCloudAuthentationV4Creator : QCloudAuthentationCreator +- (QCloudSignature *)signatureForData:(QCloudSignatureFields *)fields; +@end diff --git a/Pods/QCloudCore/QCloudCore/Classes/Base/QCloudClientBase/Authentation/QCloudAuthentationV4Creator.mm b/Pods/QCloudCore/QCloudCore/Classes/Base/QCloudClientBase/Authentation/QCloudAuthentationV4Creator.mm new file mode 100644 index 0000000..1ae00f4 --- /dev/null +++ b/Pods/QCloudCore/QCloudCore/Classes/Base/QCloudClientBase/Authentation/QCloudAuthentationV4Creator.mm @@ -0,0 +1,109 @@ +// +// QCloudAuthentationV4Creator.m +// Pods +// +// Created by Dong Zhao on 2017/5/17. +// +// + +#import "QCloudAuthentationV4Creator.h" +#import "QCloudSignatureFields.h" +#import "QCloudCredential.h" +#import "QCloudSignature.h" +#import "QCloudCredential.h" +#import "QCloudSignatureFields.h" +#import "QCloudHTTPRequest.h" +#import "QCloudRequestSerializer.h" +#import "NSString+QCloudSHA.h" +#import +#import +#import +#import +#include +#include + +@implementation QCloudAuthentationV4Creator + + +- (std::string)qcloudHmacSha1Data:(NSString *)data secret:(NSString *)key +{ + const char *cKey = [key cStringUsingEncoding:NSASCIIStringEncoding]; + const char *cData = [data cStringUsingEncoding:NSASCIIStringEncoding]; + + unsigned char cHMAC[CC_SHA1_DIGEST_LENGTH]; + + CCHmac(kCCHmacAlgSHA1, cKey, strlen(cKey), cData, strlen(cData), cHMAC); + + std::string hmac((char*)cHMAC, CC_SHA1_DIGEST_LENGTH); + return hmac; +} + +- (std::string) base64:(std::string)plainText +{ + static const char b64_table[65] = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"; + + const std::size_t plainTextLen = plainText.size(); + std::string retval((((plainTextLen + 2) / 3) * 4), '='); + std::size_t outpos = 0; + int bits_collected = 0; + unsigned int accumulator = 0; + const std::string::const_iterator plainTextEnd = plainText.end(); + + for (std::string::const_iterator i = plainText.begin(); i != plainTextEnd; ++i) { + accumulator = (accumulator << 8) | (*i & 0xffu); + bits_collected += 8; + while (bits_collected >= 6) { + bits_collected -= 6; + retval[outpos++] = b64_table[(accumulator >> bits_collected) & 0x3fu]; + } + } + + if (bits_collected > 0) { + assert(bits_collected < 6); + accumulator <<= 6 - bits_collected; + retval[outpos++] = b64_table[accumulator & 0x3fu]; + } + assert(outpos >= (retval.size() - 2)); + assert(outpos <= retval.size()); + return retval; +} + +- (QCloudSignature*) signatureForData:(QCloudSignatureFields*)fields +{ + NSMutableString* origin = [NSMutableString new]; + void(^Append)(NSString* key, NSString* value) = ^(NSString* key, NSString* value) { + if (origin.length > 0) { + [origin appendString:@"&"]; + } + if (value.length > 0) { + [origin appendFormat:@"%@=%@",key,value]; + } else { + [origin appendFormat:@"%@=", key]; + } + }; + Append(@"a",fields.appID); + Append(@"k", self.credential.secretID); + + int64_t current= (int)[[NSDate date] timeIntervalSince1970]; + int64_t expiredTime = current+60*60*24; + + Append(@"e", [@(expiredTime) stringValue]); + Append(@"t", [@(current) stringValue]); + + uint32_t random = rand(); + Append(@"r", [@(random) stringValue]); + if (fields.once) { + Append(@"f", fields.filed); + } else { + Append(@"f",@""); + } + Append(@"b", fields.bucket); + std::string signeddata = [self qcloudHmacSha1Data:origin secret:self.credential.secretKey]; + std::string originString((char*)(origin.UTF8String), origin.length); + signeddata = signeddata + originString; + std::string base64 = [self base64:signeddata]; + NSString* sign = [NSString stringWithUTF8String:base64.c_str()]; + return [QCloudSignature signatureWith1Day:sign]; +} + +@end diff --git a/Pods/QCloudCore/QCloudCore/Classes/Base/QCloudClientBase/Authentation/QCloudAuthentationV5Creator.h b/Pods/QCloudCore/QCloudCore/Classes/Base/QCloudClientBase/Authentation/QCloudAuthentationV5Creator.h new file mode 100644 index 0000000..4f636a9 --- /dev/null +++ b/Pods/QCloudCore/QCloudCore/Classes/Base/QCloudClientBase/Authentation/QCloudAuthentationV5Creator.h @@ -0,0 +1,36 @@ +// +// QCloudAuthentationV5Creator.h +// Pods +// +// Created by Dong Zhao on 2017/8/31. +// +// + +#import "QCloudAuthentationCreator.h" + +/** + COS V5 (XML)版本签名创建器。强烈不推荐在线上版本中使用。请使用服务器获取签名的模式来使用签名。如果您使用改类,请配合临时密钥CAM服务使用。 + + @note 强烈不推荐在线上版本中使用。请使用服务器获取签名的模式来使用签名。如果您使用改类,请配合临时密钥CAM服务使用。 + + ### 示例 + + @code + + QCloudCredential* credential = [QCloudCredential new]; + credential.secretID = kSecretIDCSP; + credential.secretKey = kSecretKeyCSP; + credential.expirationDate = [NSDate dateWithTimeIntervalSince1970:1504183628]; + QCloudAuthentationV5Creator* creator = [[QCloudAuthentationV5Creator alloc] initWithCredential:credential]; + QCloudSignature* signature = [creator signatureForData:urlRequst]; + + */ +@class QCloudHTTPRequest; +@interface QCloudAuthentationV5Creator : QCloudAuthentationCreator +@property (nonatomic, strong) NSString *tokenHeaderName; +/** + 自定义需要签名的属性列表:如果不传使用sdk默认的签名规则,设置为@[]表示不签任何头部和参数 + */ +@property (nonatomic, strong) NSArray *shouldSignedList; +- (QCloudSignature *)signatureForData:(NSMutableURLRequest *)signData; +@end diff --git a/Pods/QCloudCore/QCloudCore/Classes/Base/QCloudClientBase/Authentation/QCloudAuthentationV5Creator.m b/Pods/QCloudCore/QCloudCore/Classes/Base/QCloudClientBase/Authentation/QCloudAuthentationV5Creator.m new file mode 100644 index 0000000..ef83daa --- /dev/null +++ b/Pods/QCloudCore/QCloudCore/Classes/Base/QCloudClientBase/Authentation/QCloudAuthentationV5Creator.m @@ -0,0 +1,234 @@ +// +// QCloudAuthentationV5Creator.m +// Pods +// +// Created by Dong Zhao on 2017/8/31. +// +// + +#import "QCloudAuthentationV5Creator.h" +#import "QCloudSignature.h" +#import "QCloudCredential.h" +#import "QCloudSignatureFields.h" +#import "QCloudHTTPRequest.h" +#import "QCloudRequestSerializer.h" +#import "NSString+QCloudSHA.h" +#import +#import "QCloudLogger.h" +#import "QCloudURLHelper.h" +#import "NSDate+QCLOUD.h" +#import "QCloudError.h" +#import "NSURLRequest+COS.h" +#define DEFAULT_TOKEN_HEADER_NAME @"x-cos-security-token" + +@implementation NSDictionary (HeaderFilter) +- (NSDictionary *)filteHeaders; +{ + NSMutableDictionary *signedHeaders = [[NSMutableDictionary alloc] init]; + __block const NSArray *shouldSignedHeaderList = + @[@"Cache-Control", @"Content-Disposition", @"Content-Encoding", @"Content-Length", @"Content-MD5", @"Content-Type", @"Expect", @"Expires", @"If-Match" , @"If-Modified-Since" , @"If-None-Match" , @"If-Unmodified-Since" , @"Origin" , @"Range" , @"transfer-encoding" ,@"Host",@"Pic-Operations",@"ci-process"]; + [self enumerateKeysAndObjectsUsingBlock:^(id _Nonnull key, id _Nonnull obj, BOOL *_Nonnull stop) { + //签名的Headers列表:x开头的(x-cos-之类的),content-length,content-MD5 + BOOL shouldSigned = NO; + for (NSString *header in [shouldSignedHeaderList copy]) { + if ([header isEqualToString:((NSString *)key)]) { + shouldSigned = YES; + } + } + NSArray *headerSeperatedArray = [key componentsSeparatedByString:@"-"]; + if ([headerSeperatedArray firstObject] && [headerSeperatedArray.firstObject isEqualToString:@"x"]) { + shouldSigned = YES; + } + if (shouldSigned) { + signedHeaders[key] = obj; + } + }]; + return [signedHeaders copy]; +} +@end + +@implementation NSURL (QCloudExtension) + +/** + 返回 COS 签名中用到的 path , 。如果没有path时,为 / + + 例如 + 1. URL 为: http://test-123456.cos.ap-shanghai.myqcloud.com?delimiter=%2F&max-keys=1000&prefix=test%2F + + path为 / + + 2. URL为: http://test-123456.cos.ap-shanghai.myqcloud.com/test + path 为 test + + 3. URL为: http://test-123456.cos.ap-shanghai.myqcloud.com/test/ + path 为 test/ + + + @return COS签名中定义的 path + */ + +- (NSString *)qcloud_path { + NSString *path = QCloudPercentEscapedStringFromString(self.path); + // absoluteString in NSURL is URLEncoded + NSRange pathRange = [self.absoluteString rangeOfString:path]; + NSUInteger URLLength = self.absoluteString.length; + if (pathRange.location == NSNotFound) { + return self.path; + } + NSUInteger pathLocation = pathRange.location + pathRange.length; + if (pathLocation >= URLLength) { + return self.path; + } + if ([self.absoluteString characterAtIndex:(pathLocation)] == '/') { + path = [self.path stringByAppendingString:@"/"]; + return path; + } + + return self.path; +} + +@end + +@implementation QCloudAuthentationV5Creator + +- (QCloudSignature *)signatureForData:(NSMutableURLRequest *)urlrequest { + if (!self.credential.secretID.length) { + QCloudLogErrorE(@"Signature", @"请检查 secretID 是否为空"); + return nil; + } + if (!self.credential.secretKey.length) { + QCloudLogErrorE(@"Signature", @"请检查 secretKey 是否为空"); + return nil; + } + + if ([self.credential.secretID hasPrefix:@" "] || [self.credential.secretID hasPrefix:@" "] ) { + QCloudLogErrorE(@"Signature", @"请检查 secretID 是否合法"); + return nil; + } + if ([self.credential.secretKey hasPrefix:@" "] || [self.credential.secretKey hasPrefix:@" "] ) { + QCloudLogErrorE(@"Signature", @"请检查 secretID 是否合法"); + return nil; + } + + if (self.credential.token) { + NSString *tokenHeaderName = self.tokenHeaderName != nil ? self.tokenHeaderName : DEFAULT_TOKEN_HEADER_NAME; + [urlrequest setValue:self.credential.token forHTTPHeaderField:tokenHeaderName]; + } + if (([urlrequest.HTTPMethod isEqualToString:@"DELETE"]||[urlrequest.HTTPMethod isEqualToString:@"PUT"]||[urlrequest.HTTPMethod isEqualToString:@"POST"]) && ![urlrequest.allHTTPHeaderFields.allKeys containsObject:@"Content-Length"] ) { + [urlrequest setValue:@"0" forHTTPHeaderField:@"Content-Length"]; + } + int64_t nowInterval = 0; + if (self.credential.startDate) { + nowInterval = [self.credential.startDate timeIntervalSince1970]; + } else { + nowInterval = [[NSDate date] timeIntervalSince1970]; + } + QCloudLogDebugP(@"Signature",@"local time is %ld", [[NSDate date] timeIntervalSince1970]); + // 默认一个签名为10分钟有效,防止签名时间过长,导致泄露 + NSTimeInterval experationInterVal = nowInterval + 10 * 60; + if (self.credential.expirationDate) { + experationInterVal = [self.credential.expirationDate timeIntervalSince1970]; + } + NSString *signTime = [NSString stringWithFormat:@"%lld;%lld", (int64_t)nowInterval, (int64_t)experationInterVal]; + NSDictionary *headers = [[urlrequest allHTTPHeaderFields] filteHeaders]; + NSDictionary *urlParamters = QCloudURLReadQuery(urlrequest.URL); + NSArray * shouldSignedList = self.shouldSignedList; + if (urlrequest.shouldSignedList) { + shouldSignedList = urlrequest.shouldSignedList; + } + if (shouldSignedList) { + NSMutableDictionary *shouldSignedHeaderDic = [NSMutableDictionary dictionary]; + NSMutableDictionary *shouldSignedParamsDic = [NSMutableDictionary dictionary]; + for (NSString *key in shouldSignedList) { + if ([headers objectForKey:key]) { + shouldSignedHeaderDic[key] = [headers objectForKey:key]; + } else if ([urlParamters objectForKey:key]) { + shouldSignedParamsDic[key] = [urlParamters objectForKey:key]; + } + } + headers = [shouldSignedHeaderDic copy]; + urlParamters = [shouldSignedParamsDic copy]; + } + NSDictionary * (^LowcaseDictionary)(NSDictionary *origin) = ^(NSDictionary *origin) { + NSMutableDictionary *aim = [NSMutableDictionary new]; + NSArray *allKeys = origin.allKeys; + + for (NSString *key in allKeys) { + NSString *transKey = key; + if (![key isKindOfClass:[NSString class]]) { + transKey = [NSString stringWithFormat:@"%@", key]; + } + NSString *value = origin[key]; + aim[transKey.lowercaseString] = value; + } + return [aim copy]; + }; + + // 11第一步生成signKey + NSString *signKey = [NSString qcloudHMACHexsha1:signTime secret:self.credential.secretKey]; + // Step2 构成FormatString + NSString *headerFormat = QCloudURLEncodeParamters(LowcaseDictionary(headers), YES, NSUTF8StringEncoding); +// NSString *urlFormat = QCloudURLEncodeParamters(LowcaseDictionary(urlParamters), YES, NSUTF8StringEncoding); + NSString *urlFormat = QCloudURLEncodeParamters(LowcaseDictionary(urlParamters), YES, NSUTF8StringEncoding); + + NSMutableString *formatString = [NSMutableString new]; + + void (^AppendFormatString)(NSString *) = ^(NSString *part) { + [formatString appendFormat:@"%@\n", part]; + }; + + AppendFormatString(urlrequest.HTTPMethod.lowercaseString); + NSString *path = urlrequest.URL.qcloud_path; + if (path.length == 0) { + path = @"/"; + } + AppendFormatString(path); + AppendFormatString(urlFormat); + AppendFormatString(headerFormat); + + NSString *formatStringSHA = [formatString qcloud_sha1]; + QCloudLogDebugP(@"Signature",@"format string is %@", formatString); + // step 3 计算StringToSign + + NSString *stringToSign = [NSString stringWithFormat:@"%@\n%@\n%@\n", @"sha1", signTime, formatStringSHA]; + QCloudLogDebugP(@"Signature",@"StringToSign is %@", stringToSign); + // step 4 计算签名 + + NSString *signatureStr = [NSString qcloudHMACHexsha1:stringToSign secret:signKey]; + + // step 5 构造Authorization + + NSString * (^DumpAllKeys)(NSDictionary *) = ^(NSDictionary *info) { + NSArray *keys = info.allKeys; + + NSMutableArray *redirectKeys = [NSMutableArray new]; + for (NSString *key in keys) { + [redirectKeys addObject:key.lowercaseString]; + } + [redirectKeys sortUsingComparator:^NSComparisonResult(id _Nonnull obj1, id _Nonnull obj2) { + return [obj1 compare:obj2]; + }]; + + NSString *keyString = @""; + for (int i = 0; i < redirectKeys.count; i++) { + keyString = [keyString stringByAppendingString:redirectKeys[i]]; + if (i < (int)redirectKeys.count - 1) { + keyString = [keyString stringByAppendingString:@";"]; + } + } + return keyString; + }; + + // key有效期 + NSString *keyTime = signTime; + NSString *authoration = + [NSString stringWithFormat:@"q-sign-algorithm=sha1&q-ak=%@&q-sign-time=%@&q-key-time=%@&q-header-list=%@&q-url-param-list=%@&q-signature=%@", + self.credential.secretID, signTime, keyTime, DumpAllKeys(headers), DumpAllKeys(urlParamters), signatureStr]; + QCloudLogDebugP(@"Signature",@"authoration is %@", authoration); + + QCloudSignature *signature = [QCloudSignature signatureWith1Day:authoration]; + signature.token = self.credential.token; + return signature; +} + +@end diff --git a/Pods/QCloudCore/QCloudCore/Classes/Base/QCloudClientBase/Authentation/QCloudCredentailFenceQueue.h b/Pods/QCloudCore/QCloudCore/Classes/Base/QCloudClientBase/Authentation/QCloudCredentailFenceQueue.h new file mode 100644 index 0000000..9a0b5dc --- /dev/null +++ b/Pods/QCloudCore/QCloudCore/Classes/Base/QCloudClientBase/Authentation/QCloudCredentailFenceQueue.h @@ -0,0 +1,79 @@ +// +// QCloudCredentailFenceQueue.h +// Pods +// +// Created by Dong Zhao on 2017/8/31. +// +// + +#import + +@class QCloudAuthentationCreator; +@class QCloudCredentailFenceQueue; + +typedef void (^QCloudCredentailFenceQueueContinue)(QCloudAuthentationCreator *creator, NSError *error); + +/** +1:QCloudCredentailFenceQueue 提供了栅栏机制,也就是说您使用 QCloudCredentailFenceQueue +获取签名的话,所有需要获取签名的请求会等待签名完成后再执行,免去了自己管理异步过程。 使用 QCloudCredentailFenceQueue,我们需要先生成一个实例。 + +2:然后调用 QCloudCredentailFenceQueue 的类需要遵循 QCloudCredentailFenceQueueDelegate 并实现协议内定义的方法: + +3:当通过 QCloudCredentailFenceQueue 去获取签名时,所有需要签名的 SDK 里的请求都会等待该协议定义的方法内拿到了签名所需的参数并生成有效的签名后执行。 +*/ +@protocol QCloudCredentailFenceQueueDelegate + +/** + 获取一个有效的密钥,该密钥可以为临时密钥(推荐),也可以是永久密钥(十分不推荐!!在终端存储是非常不安全的。)。并将获取结果传给调用方。 + + @param queue 获取密钥的调用方 + @param continueBlock 用来通知获取结果的block + */ +- (void)fenceQueue:(QCloudCredentailFenceQueue *)queue requestCreatorWithContinue:(QCloudCredentailFenceQueueContinue)continueBlock; + +@end + +/** + 使用类似栅栏的机制,更新秘钥。可以是临时密钥,也可以是永久密钥。在没有合法密钥的时候,所有的请求会阻塞在队列里面。直到获取到一个合法密钥,或者获取出错。 + + ### 示例 + + @code + + - (void) fenceQueue:(QCloudCredentailFenceQueue *)queue requestCreatorWithContinue:(QCloudCredentailFenceQueueContinue)continueBlock + { + QCloudCredential* credential = [QCloudCredential new]; + credential.secretID = @"secretID"; + credential.secretKey = @"secretKey"; + //签名过期时间 + credential.expirationDate = [NSDate dateWithTimeIntervalSince1970:1504183628]; + credential.token = @"token"; + QCloudAuthentationV5Creator* creator = [[QCloudAuthentationV5Creator alloc] initWithCredential:credential]; + continueBlock(creator, nil); + } + */ +@interface QCloudCredentailFenceQueue : NSObject + +/** + 执行委托 + */ +@property (nonatomic, weak) id delegate; + +/** + 获取新的密钥的超时时间。如果您在超时时间内没有返回任何结果数据,则将会将认为获取任务失败。失败后,将会通知所有需要签名的调用方:失败。 + @default 120s + */ +@property (nonatomic, assign) NSTimeInterval timeout; + +/** + 当前获得的密钥 + */ +@property (nonatomic, strong, readonly) QCloudAuthentationCreator *authentationCreator; + +/** + 执行一个需要密钥的方法,如果密钥存在则直接传给Block。如果不存在,则会触发栅栏机制。该请求被缓存在队列中,同时触发请求密钥(如果可以)。直到请求到密钥或者请求密钥失败。 + + @param action 一个需要密钥的方法 + */ +- (void)performAction:(void (^)(QCloudAuthentationCreator *creator, NSError *error))action; +@end diff --git a/Pods/QCloudCore/QCloudCore/Classes/Base/QCloudClientBase/Authentation/QCloudCredentailFenceQueue.m b/Pods/QCloudCore/QCloudCore/Classes/Base/QCloudClientBase/Authentation/QCloudCredentailFenceQueue.m new file mode 100644 index 0000000..9d06106 --- /dev/null +++ b/Pods/QCloudCore/QCloudCore/Classes/Base/QCloudClientBase/Authentation/QCloudCredentailFenceQueue.m @@ -0,0 +1,126 @@ +// +// QCloudCredentailFenceQueue.m +// Pods +// +// Created by Dong Zhao on 2017/8/31. +// +// + +#import "QCloudCredentailFenceQueue.h" +#import "QCloudAuthentationCreator.h" +#import "QCloudCredential.h" +#import "QCloudError.h" +#import "NSError+QCloudNetworking.h" +#import "QCloudWeakProxy.h" + +typedef void (^__QCloudFenceActionBlock)(QCloudAuthentationCreator *, NSError *); + +@interface QCloudCredentailFenceQueue () +@property (nonatomic, strong) NSMutableArray *actionCache; +@property (nonatomic, strong) NSRecursiveLock *lock; +@property (atomic, strong) NSTimer *rquestTimer; +@end + +@implementation QCloudCredentailFenceQueue + +- (instancetype)init { + self = [super init]; + if (!self) { + return self; + } + _timeout = 2 * 60; + _lock = [NSRecursiveLock new]; + _actionCache = [NSMutableArray new]; + return self; +} + +- (BOOL)fenceDataVaild { + if (!self.authentationCreator) { + return NO; + } + return self.authentationCreator.credential.valid; +} + +- (void)performAction:(void (^)(QCloudAuthentationCreator *, NSError *))action { + NSParameterAssert(action); + if (!_delegate) { + @throw + [NSException exceptionWithName:QCloudErrorDomain + reason:@"当前的QCloudCredentailFenceQueue的delegate为空,请设置之后在使用。如果不设置,将会导致程序线程死锁!!" + userInfo:nil]; + } + [_lock lock]; + if ([self fenceDataVaild]) { + action(self.authentationCreator, nil); + } else { + [_actionCache addObject:action]; + [self requestFenceData]; + } + [_lock unlock]; +} + +- (void)onTimeout { + dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_HIGH, 0), ^{ + [self invalidTimeoutTimter]; + NSError *error = [NSError qcloud_errorWithCode:QCloudNetworkErrorCodeCredentialNotReady message:@"InvalidCredentials:获取签名错误"]; + [self postError:error]; + }); +} + +- (void)invalidTimeoutTimter { + [self.rquestTimer invalidate]; + self.rquestTimer = nil; +} + +- (void)requestFenceData { + if (self.rquestTimer) { + return; + } + __weak typeof(self) weakSelf = self; + NSTimer *timer = [[NSTimer alloc] initWithFireDate:[NSDate dateWithTimeIntervalSinceNow:self.timeout] + interval:0 + target:[QCloudWeakProxy proxyWithTarget:self] + selector:@selector(onTimeout) + userInfo:nil + repeats:NO]; + [[NSRunLoop mainRunLoop] addTimer:timer forMode:NSDefaultRunLoopMode]; + self.rquestTimer = timer; + [self.delegate fenceQueue:self + requestCreatorWithContinue:^(QCloudAuthentationCreator *creator, NSError *error) { + [weakSelf recive:creator error:error]; + }]; +} + +- (void)postError:(NSError *)error { + [_lock lock]; + NSArray *actions = [_actionCache copy]; + [_actionCache removeAllObjects]; + [_lock unlock]; + for (__QCloudFenceActionBlock action in actions) { + action(nil, error); + } +} + +- (void)postCreator:(QCloudAuthentationCreator *)creator { + [_lock lock]; + NSArray *actions = [_actionCache copy]; + [_actionCache removeAllObjects]; + [_lock unlock]; + for (__QCloudFenceActionBlock action in actions) { + action(creator, nil); + } +} + +// if If authentationCreator is not nil ,check the validity of the Date +- (void)recive:(QCloudAuthentationCreator *)creator error:(NSError *)error { + [self invalidTimeoutTimter]; + [_lock lock]; + _authentationCreator = creator; + [_lock unlock]; + if (error) { + [self postError:error]; + } else if (creator.credential) { + [self postCreator:creator]; + } +} +@end diff --git a/Pods/QCloudCore/QCloudCore/Classes/Base/QCloudClientBase/Authentation/QCloudCredential.h b/Pods/QCloudCore/QCloudCore/Classes/Base/QCloudClientBase/Authentation/QCloudCredential.h new file mode 100644 index 0000000..6d80aba --- /dev/null +++ b/Pods/QCloudCore/QCloudCore/Classes/Base/QCloudClientBase/Authentation/QCloudCredential.h @@ -0,0 +1,53 @@ +// +// QCloudCredential.h +// Pods +// +// Created by Dong Zhao on 2017/5/2. +// +// + +#import + +/** +将secretKey secretID 封装然后用于生成签名 +### 示例 + + @code + + QCloudCredential* credential = [QCloudCredential new]; + credential.secretID = kSecretIDCSP; + credential.secretKey = kSecretKeyCSP; + +*/ +@interface QCloudCredential : NSObject + +/** + 开发者拥有的项目身份识别 ID,用以身份认证 + */ +@property (nonatomic, strong) NSString *secretID; + +/** +开发者拥有的项目身份密钥。可以为永久密钥,也可以是临时密钥(参考CAM系统)。 + */ +@property (nonatomic, strong) NSString *secretKey; + +/** + 签名有效期的起始时间。默认是设备的本地时间,如果传入起始时间,那么将以起始时间去计算签名。 + */ +@property (nonatomic, strong) NSDate *startDate; + +/** + 签名有效期截止的时间。没有设置的话,默认是起始时间加十分钟。 + */ +@property (nonatomic, strong) NSDate *expirationDate; + +/** + 改签名是否有效。 + */ +@property (nonatomic, assign, readonly) BOOL valid; + +/** + 当您使用了CAM系统获取临时密钥的时候,请设置改值,代表回话的ID。 + */ +@property (nonatomic, strong) NSString *token; +@end diff --git a/Pods/QCloudCore/QCloudCore/Classes/Base/QCloudClientBase/Authentation/QCloudCredential.m b/Pods/QCloudCore/QCloudCore/Classes/Base/QCloudClientBase/Authentation/QCloudCredential.m new file mode 100644 index 0000000..82bbec3 --- /dev/null +++ b/Pods/QCloudCore/QCloudCore/Classes/Base/QCloudClientBase/Authentation/QCloudCredential.m @@ -0,0 +1,29 @@ +// +// QCloudCredential.m +// Pods +// +// Created by Dong Zhao on 2017/5/2. +// +// + +#import "QCloudCredential.h" +#import "NSDate+QCLOUD.h" +@implementation QCloudCredential + +/** + Use the time after fix to compare,avoid time skew caused by Device + */ +- (BOOL)valid { + if (!self.expirationDate) { + return YES; + } + NSDate *date = [NSDate date]; + if ([NSDate qcloud_getTimeDeviation]) { + date = [NSDate qcloud_calibrateTime]; + } + if ([date compare:self.expirationDate] == NSOrderedDescending) { + return NO; + } + return YES; +} +@end diff --git a/Pods/QCloudCore/QCloudCore/Classes/Base/QCloudClientBase/Authentation/QCloudSignature.h b/Pods/QCloudCore/QCloudCore/Classes/Base/QCloudClientBase/Authentation/QCloudSignature.h new file mode 100644 index 0000000..e3f04f8 --- /dev/null +++ b/Pods/QCloudCore/QCloudCore/Classes/Base/QCloudClientBase/Authentation/QCloudSignature.h @@ -0,0 +1,59 @@ +// +// QCloudSignature.h +// Pods +// +// Created by Dong Zhao on 2017/4/5. +// +// + +#import + +/** + 访问腾讯云的服务需要对请求进行签名,以确定访问的用户身份,同时也保障访问的安全性。该类为腾讯云签名的抽象类。他代表了一个用于访问腾讯云服务的签名信息。需要您注意的是,签名信息是有有效期的。而您在创建签名信息的时候,也请您赋值相应的有效期。这个有效期在您进行签名的时候已经指定了,请确保此处的有效期和您进行签名的时候保持一致。否则将会产生不能访问腾讯云服务的问题。 + */ +@interface QCloudSignature : NSObject +@property (nonatomic, strong) NSString *token; + +/** + 签名字符串,经过签名算法计算之后的字符串。 + */ +@property (nonatomic, strong) NSString *signature; + +/** + 签名过期时间,最长为1个月(30天)当您传入大于30天的数值的时候,会自动降级到30天 + */ +@property (nonatomic, strong) NSDate *expiration; + +/** + 创建一个有效期为一天的签名 + + @param signature 签名字符串 + @return 一个有效期为一天的签名 + */ ++ (QCloudSignature *)signatureWith1Day:(NSString *)signature; + +/** + 创建一个有效期为七天的签名 + + @param signature 签名字符串 + @return 一个有效期为七天的签名 + */ ++ (QCloudSignature *)signatureWith7Day:(NSString *)signature; + +/** + 创建一个有效期为30天的签名。我们认为一个签名超过一个月将会带来安全性问题,因而建议您的签名有效期保持在30天以下。 + + @param signature 签名字符串 + @return 一个有效期为30天的签名 + */ ++ (QCloudSignature *)signatureWithMaxExpiration:(NSString *)signature; + +/** + 通过签名字符串和过期日期创建一个签名信息。签名是一个有有效期的概念,在有效期内签名有效,代表请求可以访问腾讯云的服务。当签名过了有效期之后,则不可以访问腾讯云的服务。同时我们会向您请求一个新的签名。 + + @param signature 签名字符串,通过secretID和secretKey进行签名后的字符串 + @param expiration 签名过期日期,当过了改日期之后,该签名失效 + @return 一个包含签名字符串并在指定日期实效的签名 + */ +- (instancetype)initWithSignature:(NSString *)signature expiration:(NSDate *)expiration; +@end diff --git a/Pods/QCloudCore/QCloudCore/Classes/Base/QCloudClientBase/Authentation/QCloudSignature.m b/Pods/QCloudCore/QCloudCore/Classes/Base/QCloudClientBase/Authentation/QCloudSignature.m new file mode 100644 index 0000000..5e5ab4e --- /dev/null +++ b/Pods/QCloudCore/QCloudCore/Classes/Base/QCloudClientBase/Authentation/QCloudSignature.m @@ -0,0 +1,37 @@ +// +// QCloudSignature.m +// Pods +// +// Created by Dong Zhao on 2017/4/5. +// +// + +#import "QCloudSignature.h" +#import "NSDate+QCloudComapre.h" +#define QCloudSignatureExpiration(days) [NSDate dateWithTimeIntervalSinceNow:(days)*60 * 60 * 24] +#define QCloudSignatureMaxExpiration QCloudSignatureExpiration(30) + +@implementation QCloudSignature ++ (QCloudSignature *)signatureWith1Day:(NSString *)signature { + return [[self alloc] initWithSignature:signature expiration:QCloudSignatureExpiration(1)]; +} ++ (QCloudSignature *)signatureWith7Day:(NSString *)signature { + return [[self alloc] initWithSignature:signature expiration:QCloudSignatureExpiration(7)]; +} ++ (QCloudSignature *)signatureWithMaxExpiration:(NSString *)signature { + return [[self alloc] initWithSignature:signature expiration:QCloudSignatureExpiration(7)]; +} + +- (instancetype)initWithSignature:(NSString *)signature expiration:(NSDate *)expiration { + self = [super init]; + if (!self) { + return self; + } + _signature = signature; + if ([expiration qcloud_isLaterThan:QCloudSignatureMaxExpiration]) { + expiration = QCloudSignatureMaxExpiration; + } + _expiration = expiration; + return self; +} +@end diff --git a/Pods/QCloudCore/QCloudCore/Classes/Base/QCloudClientBase/Authentation/QCloudSignatureFields.h b/Pods/QCloudCore/QCloudCore/Classes/Base/QCloudClientBase/Authentation/QCloudSignatureFields.h new file mode 100644 index 0000000..e806f3b --- /dev/null +++ b/Pods/QCloudCore/QCloudCore/Classes/Base/QCloudClientBase/Authentation/QCloudSignatureFields.h @@ -0,0 +1,39 @@ +// +// QCloudSignatureFields.h +// Pods +// +// Created by Dong Zhao on 2017/4/21. +// +// + +#import +/** +获取签名所需信息 +*/ +@interface QCloudSignatureFields : NSObject + +/** + 用户appid + */ +@property (nonatomic, strong) NSString *appID; +/** + 桶名称 + */ +@property (nonatomic, strong) NSString *bucket; +@property (nonatomic, strong, readonly) NSString *filed; + +/** + 路径 + */ +@property (nonatomic, strong) NSString *directory; + +/** + 文件名 + */ +@property (nonatomic, strong) NSString *fileName; + +/** + 是否需要一次性签名,默认为No + */ +@property (nonatomic, assign) BOOL once; +@end diff --git a/Pods/QCloudCore/QCloudCore/Classes/Base/QCloudClientBase/Authentation/QCloudSignatureFields.m b/Pods/QCloudCore/QCloudCore/Classes/Base/QCloudClientBase/Authentation/QCloudSignatureFields.m new file mode 100644 index 0000000..6c287a9 --- /dev/null +++ b/Pods/QCloudCore/QCloudCore/Classes/Base/QCloudClientBase/Authentation/QCloudSignatureFields.m @@ -0,0 +1,39 @@ +// +// QCloudSignatureFields.m +// Pods +// +// Created by Dong Zhao on 2017/4/21. +// +// + +#import "QCloudSignatureFields.h" +#import "QCloudFileUtils.h" +#import "QCLOUDRestNet.h" +@implementation QCloudSignatureFields +- (instancetype)init { + self = [super init]; + if (!self) { + return self; + } + _once = NO; + return self; +} +- (NSString *)filed { + NSString *filed = @"/"; + if (self.appID.length) { + filed = QCloudPathJoin(filed, self.appID); + } + if (self.bucket.length) { + filed = QCloudPathJoin(filed, self.bucket); + } + if (self.directory.length) { + filed = QCloudPathJoin(filed, self.directory); + filed = QCloudPathJoin(filed, @"/"); + } + if (self.fileName.length) { + filed = QCloudPathJoin(filed, self.fileName); + } + filed = QCloudStrigngURLEncode(filed, NSUTF8StringEncoding); + return filed; +} +@end diff --git a/Pods/QCloudCore/QCloudCore/Classes/Base/QCloudClientBase/Authentation/QCloudSignatureProvider.h b/Pods/QCloudCore/QCloudCore/Classes/Base/QCloudClientBase/Authentation/QCloudSignatureProvider.h new file mode 100644 index 0000000..fce2001 --- /dev/null +++ b/Pods/QCloudCore/QCloudCore/Classes/Base/QCloudClientBase/Authentation/QCloudSignatureProvider.h @@ -0,0 +1,38 @@ +// +// QCloudSignatureProvider.h +// Pods +// +// Created by Dong Zhao on 2017/3/31. +// +// + +#import +#import "QCloudSignature.h" +#import "QCloudSignatureFields.h" + +typedef void (^QCloudHTTPAuthentationContinueBlock)(QCloudSignature *signature, NSError *error); + +@class QCloudPath; +@class QCloudBizHTTPRequest; +@class QCloudSignatureFields; + +/** +生成签名 +SDK 中的请求需要用到签名,以确认访问的用户的身份,也保障了访问的安全性。当签名不正确时,大部分 COS 的服务将无法访问并且返回403错误。在 SDK +中可以生成签名,每个请求会向 QCloudServiceConfiguration 对象中的signatureProvider 对象来请求生成签名。我们可以将负责生成签名的对象在一开始赋值给 +signatureProvider,该生成签名的对象需要遵循 QCloudSignatureProvider 协议,并实现生成签名的方法: +*/ +@protocol QCloudSignatureProvider + +/** + 访问腾讯云的服务需要对请求进行签名,以确定访问的用户身份,同时也保障访问的安全性。该函数返回一个基于Bolts-Task的结构,里面包裹着您对请求完成的签名。该函数使用了promise机制,更多信息请参考Bolts的设计。比如您自己搭建了一个用于签名的服务器,然后通过服务器来进行签名: + + 这里使用Bolts的promise机制时考虑到,您的请求签名过程可能是一个网络过程。该过程将会非常涉及到异步操作,而promise机制可以极大的简化异步编程的复杂度。此处请您一定确保调用task的`setResult`方法或者`setError`方法。将您请求的结果通知到我们,否则后续的请求过程将无法继续。 + @param fileds 进行签名的关键字段 + @param request 需要进行签名的请求 + */ +- (void)signatureWithFields:(QCloudSignatureFields *)fileds + request:(QCloudBizHTTPRequest *)request + urlRequest:(NSMutableURLRequest *)urlRequst + compelete:(QCloudHTTPAuthentationContinueBlock)continueBlock; +@end diff --git a/Pods/QCloudCore/QCloudCore/Classes/Base/QCloudClientBase/Authentation/QCloudUICKeyChainStore.h b/Pods/QCloudCore/QCloudCore/Classes/Base/QCloudClientBase/Authentation/QCloudUICKeyChainStore.h new file mode 100644 index 0000000..4d65b73 --- /dev/null +++ b/Pods/QCloudCore/QCloudCore/Classes/Base/QCloudClientBase/Authentation/QCloudUICKeyChainStore.h @@ -0,0 +1,371 @@ +// +// QCloudUICKeyChainStore.h +// QCloudUICKeyChainStore +// +// Created by Kishikawa Katsumi on 11/11/20. +// Copyright (c) 2011 Kishikawa Katsumi. All rights reserved. +// + +#import + +#if !__has_feature(nullability) +#define NS_ASSUME_NONNULL_BEGIN +#define NS_ASSUME_NONNULL_END +#define nullable +#define nonnull +#define null_unspecified +#define null_resettable +#define __nullable +#define __nonnull +#define __null_unspecified +#endif + +#if __has_extension(objc_generics) +#define QCloudUIC_KEY_TYPE +#define QCloudUIC_CREDENTIAL_TYPE *> +#else +#define QCloudUIC_KEY_TYPE +#define QCloudUIC_CREDENTIAL_TYPE +#endif + +NS_ASSUME_NONNULL_BEGIN + +extern NSString *const QCloudUICKeyChainStoreErrorDomain; + +typedef NS_ENUM(NSInteger, QCloudUICKeyChainStoreErrorCode) { + QCloudUICKeyChainStoreErrorInvalidArguments = 1, +}; + +typedef NS_ENUM(NSInteger, QCloudUICKeyChainStoreItemClass) { + QCloudUICKeyChainStoreItemClassGenericPassword = 1, + QCloudUICKeyChainStoreItemClassInternetPassword, +}; + +typedef NS_ENUM(NSInteger, QCloudUICKeyChainStoreProtocolType) { + QCloudUICKeyChainStoreProtocolTypeFTP = 1, + QCloudUICKeyChainStoreProtocolTypeFTPAccount, + QCloudUICKeyChainStoreProtocolTypeHTTP, + QCloudUICKeyChainStoreProtocolTypeIRC, + QCloudUICKeyChainStoreProtocolTypeNNTP, + QCloudUICKeyChainStoreProtocolTypePOP3, + QCloudUICKeyChainStoreProtocolTypeSMTP, + QCloudUICKeyChainStoreProtocolTypeSOCKS, + QCloudUICKeyChainStoreProtocolTypeIMAP, + QCloudUICKeyChainStoreProtocolTypeLDAP, + QCloudUICKeyChainStoreProtocolTypeAppleTalk, + QCloudUICKeyChainStoreProtocolTypeAFP, + QCloudUICKeyChainStoreProtocolTypeTelnet, + QCloudUICKeyChainStoreProtocolTypeSSH, + QCloudUICKeyChainStoreProtocolTypeFTPS, + QCloudUICKeyChainStoreProtocolTypeHTTPS, + QCloudUICKeyChainStoreProtocolTypeHTTPProxy, + QCloudUICKeyChainStoreProtocolTypeHTTPSProxy, + QCloudUICKeyChainStoreProtocolTypeFTPProxy, + QCloudUICKeyChainStoreProtocolTypeSMB, + QCloudUICKeyChainStoreProtocolTypeRTSP, + QCloudUICKeyChainStoreProtocolTypeRTSPProxy, + QCloudUICKeyChainStoreProtocolTypeDAAP, + QCloudUICKeyChainStoreProtocolTypeEPPC, + QCloudUICKeyChainStoreProtocolTypeNNTPS, + QCloudUICKeyChainStoreProtocolTypeLDAPS, + QCloudUICKeyChainStoreProtocolTypeTelnetS, + QCloudUICKeyChainStoreProtocolTypeIRCS, + QCloudUICKeyChainStoreProtocolTypePOP3S, +}; + +typedef NS_ENUM(NSInteger, QCloudUICKeyChainStoreAuthenticationType) { + QCloudUICKeyChainStoreAuthenticationTypeNTLM = 1, + QCloudUICKeyChainStoreAuthenticationTypeMSN, + QCloudUICKeyChainStoreAuthenticationTypeDPA, + QCloudUICKeyChainStoreAuthenticationTypeRPA, + QCloudUICKeyChainStoreAuthenticationTypeHTTPBasic, + QCloudUICKeyChainStoreAuthenticationTypeHTTPDigest, + QCloudUICKeyChainStoreAuthenticationTypeHTMLForm, + QCloudUICKeyChainStoreAuthenticationTypeDefault, +}; + +typedef NS_ENUM(NSInteger, QCloudUICKeyChainStoreAccessibility) { + QCloudUICKeyChainStoreAccessibilityWhenUnlocked = 1, + QCloudUICKeyChainStoreAccessibilityAfterFirstUnlock, + QCloudUICKeyChainStoreAccessibilityAlways, + QCloudUICKeyChainStoreAccessibilityWhenPasscodeSetThisDeviceOnly __OSX_AVAILABLE_STARTING(__MAC_10_10, __IPHONE_8_0), + QCloudUICKeyChainStoreAccessibilityWhenUnlockedThisDeviceOnly, + QCloudUICKeyChainStoreAccessibilityAfterFirstUnlockThisDeviceOnly, + QCloudUICKeyChainStoreAccessibilityAlwaysThisDeviceOnly, +} __OSX_AVAILABLE_STARTING(__MAC_10_9, __IPHONE_4_0); + +typedef NS_ENUM(unsigned long, QCloudUICKeyChainStoreAuthenticationPolicy) { + QCloudUICKeyChainStoreAuthenticationPolicyUserPresence = 1 << 0, + QCloudUICKeyChainStoreAuthenticationPolicyTouchIDAny NS_ENUM_AVAILABLE(10_12_1, 9_0) = 1u << 1, + QCloudUICKeyChainStoreAuthenticationPolicyTouchIDCurrentSet NS_ENUM_AVAILABLE(10_12_1, 9_0) = 1u << 3, + QCloudUICKeyChainStoreAuthenticationPolicyDevicePasscode NS_ENUM_AVAILABLE(10_11, 9_0) = 1u << 4, + QCloudUICKeyChainStoreAuthenticationPolicyControlOr NS_ENUM_AVAILABLE(10_12_1, 9_0) = 1u << 14, + QCloudUICKeyChainStoreAuthenticationPolicyControlAnd NS_ENUM_AVAILABLE(10_12_1, 9_0) = 1u << 15, + QCloudUICKeyChainStoreAuthenticationPolicyPrivateKeyUsage NS_ENUM_AVAILABLE(10_12_1, 9_0) = 1u << 30, + QCloudUICKeyChainStoreAuthenticationPolicyApplicationPassword NS_ENUM_AVAILABLE(10_12_1, 9_0) = 1u << 31, +} __OSX_AVAILABLE_STARTING(__MAC_10_10, __IPHONE_8_0); + +@interface QCloudUICKeyChainStore : NSObject + +@property (nonatomic, readonly) QCloudUICKeyChainStoreItemClass itemClass; + +@property (nonatomic, readonly, nullable) NSString *service; +@property (nonatomic, readonly, nullable) NSString *accessGroup; + +@property (nonatomic, readonly, nullable) NSURL *server; +@property (nonatomic, readonly) QCloudUICKeyChainStoreProtocolType protocolType; +@property (nonatomic, readonly) QCloudUICKeyChainStoreAuthenticationType authenticationType; + +@property (nonatomic) QCloudUICKeyChainStoreAccessibility accessibility; +@property (nonatomic, readonly) QCloudUICKeyChainStoreAuthenticationPolicy authenticationPolicy __OSX_AVAILABLE_STARTING(__MAC_10_10, __IPHONE_8_0); +@property (nonatomic) BOOL useAuthenticationUI; + +@property (nonatomic) BOOL synchronizable; + +@property (nonatomic, nullable) NSString *authenticationPrompt __OSX_AVAILABLE_STARTING(__MAC_NA, __IPHONE_8_0); + +@property (nonatomic, readonly, nullable) NSArray QCloudUIC_KEY_TYPE *allKeys; +@property (nonatomic, readonly, nullable) NSArray *allItems; + ++ (NSString *)defaultService; ++ (void)setDefaultService:(NSString *)defaultService; + ++ (QCloudUICKeyChainStore *)keyChainStore; ++ (QCloudUICKeyChainStore *)keyChainStoreWithService:(nullable NSString *)service; ++ (QCloudUICKeyChainStore *)keyChainStoreWithService:(nullable NSString *)service accessGroup:(nullable NSString *)accessGroup; + ++ (QCloudUICKeyChainStore *)keyChainStoreWithServer:(NSURL *)server protocolType:(QCloudUICKeyChainStoreProtocolType)protocolType; ++ (QCloudUICKeyChainStore *)keyChainStoreWithServer:(NSURL *)server + protocolType:(QCloudUICKeyChainStoreProtocolType)protocolType + authenticationType:(QCloudUICKeyChainStoreAuthenticationType)authenticationType; + +- (instancetype)init; +- (instancetype)initWithService:(nullable NSString *)service; +- (instancetype)initWithService:(nullable NSString *)service accessGroup:(nullable NSString *)accessGroup; + +- (instancetype)initWithServer:(NSURL *)server protocolType:(QCloudUICKeyChainStoreProtocolType)protocolType; +- (instancetype)initWithServer:(NSURL *)server + protocolType:(QCloudUICKeyChainStoreProtocolType)protocolType + authenticationType:(QCloudUICKeyChainStoreAuthenticationType)authenticationType; + ++ (nullable NSString *)stringForKey:(NSString *)key; ++ (nullable NSString *)stringForKey:(NSString *)key service:(nullable NSString *)service; ++ (nullable NSString *)stringForKey:(NSString *)key service:(nullable NSString *)service accessGroup:(nullable NSString *)accessGroup; ++ (BOOL)setString:(nullable NSString *)value forKey:(NSString *)key; ++ (BOOL)setString:(nullable NSString *)value forKey:(NSString *)key service:(nullable NSString *)service; ++ (BOOL)setString:(nullable NSString *)value forKey:(NSString *)key service:(nullable NSString *)service accessGroup:(nullable NSString *)accessGroup; + ++ (nullable NSData *)dataForKey:(NSString *)key; ++ (nullable NSData *)dataForKey:(NSString *)key service:(nullable NSString *)service; ++ (nullable NSData *)dataForKey:(NSString *)key service:(nullable NSString *)service accessGroup:(nullable NSString *)accessGroup; ++ (BOOL)setData:(nullable NSData *)data forKey:(NSString *)key; ++ (BOOL)setData:(nullable NSData *)data forKey:(NSString *)key service:(nullable NSString *)service; ++ (BOOL)setData:(nullable NSData *)data forKey:(NSString *)key service:(nullable NSString *)service accessGroup:(nullable NSString *)accessGroup; + +- (BOOL)contains:(nullable NSString *)key; + +- (BOOL)setString:(nullable NSString *)string forKey:(nullable NSString *)key; +- (BOOL)setString:(nullable NSString *)string forKey:(nullable NSString *)key label:(nullable NSString *)label comment:(nullable NSString *)comment; +- (nullable NSString *)stringForKey:(NSString *)key; + +- (BOOL)setData:(nullable NSData *)data forKey:(NSString *)key; +- (BOOL)setData:(nullable NSData *)data forKey:(NSString *)key label:(nullable NSString *)label comment:(nullable NSString *)comment; +- (nullable NSData *)dataForKey:(NSString *)key; + ++ (BOOL)removeItemForKey:(NSString *)key; ++ (BOOL)removeItemForKey:(NSString *)key service:(nullable NSString *)service; ++ (BOOL)removeItemForKey:(NSString *)key service:(nullable NSString *)service accessGroup:(nullable NSString *)accessGroup; + ++ (BOOL)removeAllItems; ++ (BOOL)removeAllItemsForService:(nullable NSString *)service; ++ (BOOL)removeAllItemsForService:(nullable NSString *)service accessGroup:(nullable NSString *)accessGroup; + +- (BOOL)removeItemForKey:(NSString *)key; + +- (BOOL)removeAllItems; + +- (nullable NSString *)objectForKeyedSubscript:(NSString *)key; +- (void)setObject:(nullable NSString *)obj forKeyedSubscript:(NSString *)key; + ++ (nullable NSArray QCloudUIC_KEY_TYPE *)allKeysWithItemClass:(QCloudUICKeyChainStoreItemClass)itemClass; +- (nullable NSArray QCloudUIC_KEY_TYPE *)allKeys; + ++ (nullable NSArray *)allItemsWithItemClass:(QCloudUICKeyChainStoreItemClass)itemClass; +- (nullable NSArray *)allItems; + +- (void)setAccessibility:(QCloudUICKeyChainStoreAccessibility)accessibility + authenticationPolicy:(QCloudUICKeyChainStoreAuthenticationPolicy)authenticationPolicy __OSX_AVAILABLE_STARTING(__MAC_10_10, __IPHONE_8_0); + +#if TARGET_OS_IOS +- (void)sharedPasswordWithCompletion:(nullable void (^)(NSString *__nullable account, NSString *__nullable password, + NSError *__nullable error))completion; +- (void)sharedPasswordForAccount:(NSString *)account + completion:(nullable void (^)(NSString *__nullable password, NSError *__nullable error))completion; + +- (void)setSharedPassword:(nullable NSString *)password + forAccount:(NSString *)account + completion:(nullable void (^)(NSError *__nullable error))completion; +- (void)removeSharedPasswordForAccount:(NSString *)account completion:(nullable void (^)(NSError *__nullable error))completion; + ++ (void)requestSharedWebCredentialWithCompletion:(nullable void (^)(NSArray QCloudUIC_CREDENTIAL_TYPE *credentials, + NSError *__nullable error))completion; ++ (void)requestSharedWebCredentialForDomain:(nullable NSString *)domain + account:(nullable NSString *)account + completion:(nullable void (^)(NSArray QCloudUIC_CREDENTIAL_TYPE *credentials, NSError *__nullable error))completion; + ++ (NSString *)generatePassword; +#endif + +@end + +@interface QCloudUICKeyChainStore (ErrorHandling) + ++ (nullable NSString *)stringForKey:(NSString *)key error:(NSError *__nullable __autoreleasing *__nullable)error; ++ (nullable NSString *)stringForKey:(NSString *)key service:(nullable NSString *)service error:(NSError *__nullable __autoreleasing *__nullable)error; ++ (nullable NSString *)stringForKey:(NSString *)key + service:(nullable NSString *)service + accessGroup:(nullable NSString *)accessGroup + error:(NSError *__nullable __autoreleasing *__nullable)error; + ++ (BOOL)setString:(nullable NSString *)value forKey:(NSString *)key error:(NSError *__nullable __autoreleasing *__nullable)error; ++ (BOOL)setString:(nullable NSString *)value + forKey:(NSString *)key + service:(nullable NSString *)service + error:(NSError *__nullable __autoreleasing *__nullable)error; ++ (BOOL)setString:(nullable NSString *)value + forKey:(NSString *)key + service:(nullable NSString *)service + accessGroup:(nullable NSString *)accessGroup + error:(NSError *__nullable __autoreleasing *__nullable)error; + ++ (nullable NSData *)dataForKey:(NSString *)key error:(NSError *__nullable __autoreleasing *__nullable)error; ++ (nullable NSData *)dataForKey:(NSString *)key service:(nullable NSString *)service error:(NSError *__nullable __autoreleasing *__nullable)error; ++ (nullable NSData *)dataForKey:(NSString *)key + service:(nullable NSString *)service + accessGroup:(nullable NSString *)accessGroup + error:(NSError *__nullable __autoreleasing *__nullable)error; + ++ (BOOL)setData:(nullable NSData *)data forKey:(NSString *)key error:(NSError *__nullable __autoreleasing *__nullable)error; ++ (BOOL)setData:(nullable NSData *)data + forKey:(NSString *)key + service:(nullable NSString *)service + error:(NSError *__nullable __autoreleasing *__nullable)error; ++ (BOOL)setData:(nullable NSData *)data + forKey:(NSString *)key + service:(nullable NSString *)service + accessGroup:(nullable NSString *)accessGroup + error:(NSError *__nullable __autoreleasing *__nullable)error; + +- (BOOL)setString:(nullable NSString *)string forKey:(NSString *)key error:(NSError *__nullable __autoreleasing *__nullable)error; +- (BOOL)setString:(nullable NSString *)string + forKey:(NSString *)key + label:(nullable NSString *)label + comment:(nullable NSString *)comment + error:(NSError *__nullable __autoreleasing *__nullable)error; + +- (BOOL)setData:(nullable NSData *)data forKey:(NSString *)key error:(NSError *__nullable __autoreleasing *__nullable)error; +- (BOOL)setData:(nullable NSData *)data + forKey:(NSString *)key + label:(nullable NSString *)label + comment:(nullable NSString *)comment + error:(NSError *__nullable __autoreleasing *__nullable)error; + +- (nullable NSString *)stringForKey:(NSString *)key error:(NSError *__nullable __autoreleasing *__nullable)error; +- (nullable NSData *)dataForKey:(NSString *)key error:(NSError *__nullable __autoreleasing *__nullable)error; + ++ (BOOL)removeItemForKey:(NSString *)key error:(NSError *__nullable __autoreleasing *__nullable)error; ++ (BOOL)removeItemForKey:(NSString *)key service:(nullable NSString *)service error:(NSError *__nullable __autoreleasing *__nullable)error; ++ (BOOL)removeItemForKey:(NSString *)key + service:(nullable NSString *)service + accessGroup:(nullable NSString *)accessGroup + error:(NSError *__nullable __autoreleasing *__nullable)error; + ++ (BOOL)removeAllItemsWithError:(NSError *__nullable __autoreleasing *__nullable)error; ++ (BOOL)removeAllItemsForService:(nullable NSString *)service error:(NSError *__nullable __autoreleasing *__nullable)error; ++ (BOOL)removeAllItemsForService:(nullable NSString *)service + accessGroup:(nullable NSString *)accessGroup + error:(NSError *__nullable __autoreleasing *__nullable)error; + +- (BOOL)removeItemForKey:(NSString *)key error:(NSError *__nullable __autoreleasing *__nullable)error; +- (BOOL)removeAllItemsWithError:(NSError *__nullable __autoreleasing *__nullable)error; + +@end + +@interface QCloudUICKeyChainStore (ForwardCompatibility) + ++ (BOOL)setString:(nullable NSString *)value forKey:(NSString *)key genericAttribute:(nullable id)genericAttribute; ++ (BOOL)setString:(nullable NSString *)value + forKey:(NSString *)key + genericAttribute:(nullable id)genericAttribute + error:(NSError *__nullable __autoreleasing *__nullable)error; + ++ (BOOL)setString:(nullable NSString *)value + forKey:(NSString *)key + service:(nullable NSString *)service + genericAttribute:(nullable id)genericAttribute; ++ (BOOL)setString:(nullable NSString *)value + forKey:(NSString *)key + service:(nullable NSString *)service + genericAttribute:(nullable id)genericAttribute + error:(NSError *__nullable __autoreleasing *__nullable)error; + ++ (BOOL)setString:(nullable NSString *)value + forKey:(NSString *)key + service:(nullable NSString *)service + accessGroup:(nullable NSString *)accessGroup + genericAttribute:(nullable id)genericAttribute; ++ (BOOL)setString:(nullable NSString *)value + forKey:(NSString *)key + service:(nullable NSString *)service + accessGroup:(nullable NSString *)accessGroup + genericAttribute:(nullable id)genericAttribute + error:(NSError *__nullable __autoreleasing *__nullable)error; + ++ (BOOL)setData:(nullable NSData *)data forKey:(NSString *)key genericAttribute:(nullable id)genericAttribute; ++ (BOOL)setData:(nullable NSData *)data + forKey:(NSString *)key + genericAttribute:(nullable id)genericAttribute + error:(NSError *__nullable __autoreleasing *__nullable)error; + ++ (BOOL)setData:(nullable NSData *)data forKey:(NSString *)key service:(nullable NSString *)service genericAttribute:(nullable id)genericAttribute; ++ (BOOL)setData:(nullable NSData *)data + forKey:(NSString *)key + service:(nullable NSString *)service + genericAttribute:(nullable id)genericAttribute + error:(NSError *__nullable __autoreleasing *__nullable)error; + ++ (BOOL)setData:(nullable NSData *)data + forKey:(NSString *)key + service:(nullable NSString *)service + accessGroup:(nullable NSString *)accessGroup + genericAttribute:(nullable id)genericAttribute; ++ (BOOL)setData:(nullable NSData *)data + forKey:(NSString *)key + service:(nullable NSString *)service + accessGroup:(nullable NSString *)accessGroup + genericAttribute:(nullable id)genericAttribute + error:(NSError *__nullable __autoreleasing *__nullable)error; + +- (BOOL)setString:(nullable NSString *)string forKey:(NSString *)key genericAttribute:(nullable id)genericAttribute; +- (BOOL)setString:(nullable NSString *)string + forKey:(NSString *)key + genericAttribute:(nullable id)genericAttribute + error:(NSError *__nullable __autoreleasing *__nullable)error; + +- (BOOL)setData:(nullable NSData *)data forKey:(NSString *)key genericAttribute:(nullable id)genericAttribute; +- (BOOL)setData:(nullable NSData *)data + forKey:(NSString *)key + genericAttribute:(nullable id)genericAttribute + error:(NSError *__nullable __autoreleasing *__nullable)error; + +@end + +@interface QCloudUICKeyChainStore (Deprecation) + +- (void)synchronize __attribute__((deprecated("calling this method is no longer required"))); +- (BOOL)synchronizeWithError:(NSError *__nullable __autoreleasing *__nullable)error + __attribute__((deprecated("calling this method is no longer required"))); + +@end + +NS_ASSUME_NONNULL_END diff --git a/Pods/QCloudCore/QCloudCore/Classes/Base/QCloudClientBase/Authentation/QCloudUICKeyChainStore.m b/Pods/QCloudCore/QCloudCore/Classes/Base/QCloudClientBase/Authentation/QCloudUICKeyChainStore.m new file mode 100644 index 0000000..cda9a05 --- /dev/null +++ b/Pods/QCloudCore/QCloudCore/Classes/Base/QCloudClientBase/Authentation/QCloudUICKeyChainStore.m @@ -0,0 +1,1364 @@ +// +// QCloudUICKeyChainStore.m +// QCloudUICKeyChainStore +// +// Created by Kishikawa Katsumi on 11/11/20. +// Copyright (c) 2011 Kishikawa Katsumi. All rights reserved. +// + +#import "QCloudUICKeyChainStore.h" + +NSString *const QCloudUICKeyChainStoreErrorDomain = @"com.kishikawakatsumi.uickeychainstore"; +static NSString *_defaultService; + +@interface QCloudUICKeyChainStore () + +@end + +@implementation QCloudUICKeyChainStore + ++ (NSString *)defaultService { + if (!_defaultService) { + _defaultService = [[NSBundle mainBundle] bundleIdentifier] ?: @""; + } + + return _defaultService; +} + ++ (void)setDefaultService:(NSString *)defaultService { + _defaultService = defaultService; +} + +#pragma mark - + ++ (QCloudUICKeyChainStore *)keyChainStore { + return [[self alloc] initWithService:nil accessGroup:nil]; +} + ++ (QCloudUICKeyChainStore *)keyChainStoreWithService:(NSString *)service { + return [[self alloc] initWithService:service accessGroup:nil]; +} + ++ (QCloudUICKeyChainStore *)keyChainStoreWithService:(NSString *)service accessGroup:(NSString *)accessGroup { + return [[self alloc] initWithService:service accessGroup:accessGroup]; +} + +#pragma mark - + ++ (QCloudUICKeyChainStore *)keyChainStoreWithServer:(NSURL *)server protocolType:(QCloudUICKeyChainStoreProtocolType)protocolType { + return [[self alloc] initWithServer:server protocolType:protocolType authenticationType:QCloudUICKeyChainStoreAuthenticationTypeDefault]; +} + ++ (QCloudUICKeyChainStore *)keyChainStoreWithServer:(NSURL *)server + protocolType:(QCloudUICKeyChainStoreProtocolType)protocolType + authenticationType:(QCloudUICKeyChainStoreAuthenticationType)authenticationType { + return [[self alloc] initWithServer:server protocolType:protocolType authenticationType:authenticationType]; +} + +#pragma mark - + +- (instancetype)init { + return [self initWithService:[self.class defaultService] accessGroup:nil]; +} + +- (instancetype)initWithService:(NSString *)service { + return [self initWithService:service accessGroup:nil]; +} + +- (instancetype)initWithService:(NSString *)service accessGroup:(NSString *)accessGroup { + self = [super init]; + if (self) { + _itemClass = QCloudUICKeyChainStoreItemClassGenericPassword; + + if (!service) { + service = [self.class defaultService]; + } + _service = service.copy; + _accessGroup = accessGroup.copy; + [self commonInit]; + } + + return self; +} + +#pragma mark - + +- (instancetype)initWithServer:(NSURL *)server protocolType:(QCloudUICKeyChainStoreProtocolType)protocolType { + return [self initWithServer:server protocolType:protocolType authenticationType:QCloudUICKeyChainStoreAuthenticationTypeDefault]; +} + +- (instancetype)initWithServer:(NSURL *)server + protocolType:(QCloudUICKeyChainStoreProtocolType)protocolType + authenticationType:(QCloudUICKeyChainStoreAuthenticationType)authenticationType { + self = [super init]; + if (self) { + _itemClass = QCloudUICKeyChainStoreItemClassInternetPassword; + + _server = server.copy; + _protocolType = protocolType; + _authenticationType = authenticationType; + + [self commonInit]; + } + + return self; +} + +#pragma mark - + +- (void)commonInit { + _accessibility = QCloudUICKeyChainStoreAccessibilityAfterFirstUnlock; + _useAuthenticationUI = YES; +} + +#pragma mark - + ++ (NSString *)stringForKey:(NSString *)key { + return [self stringForKey:key service:nil accessGroup:nil error:nil]; +} + ++ (NSString *)stringForKey:(NSString *)key error:(NSError *__autoreleasing *)error { + return [self stringForKey:key service:nil accessGroup:nil error:error]; +} + ++ (NSString *)stringForKey:(NSString *)key service:(NSString *)service { + return [self stringForKey:key service:service accessGroup:nil error:nil]; +} + ++ (NSString *)stringForKey:(NSString *)key service:(NSString *)service error:(NSError *__autoreleasing *)error { + return [self stringForKey:key service:service accessGroup:nil error:error]; +} + ++ (NSString *)stringForKey:(NSString *)key service:(NSString *)service accessGroup:(NSString *)accessGroup { + return [self stringForKey:key service:service accessGroup:accessGroup error:nil]; +} + ++ (NSString *)stringForKey:(NSString *)key service:(NSString *)service accessGroup:(NSString *)accessGroup error:(NSError *__autoreleasing *)error { + if (!key) { + NSError *e = [self argumentError:NSLocalizedString(@"the key must not to be nil", nil)]; + if (error) { + *error = e; + } + return nil; + } + if (!service) { + service = [self defaultService]; + } + + QCloudUICKeyChainStore *keychain = [QCloudUICKeyChainStore keyChainStoreWithService:service accessGroup:accessGroup]; + return [keychain stringForKey:key error:error]; +} + +#pragma mark - + ++ (BOOL)setString:(NSString *)value forKey:(NSString *)key { + return [self setString:value forKey:key service:nil accessGroup:nil genericAttribute:nil error:nil]; +} + ++ (BOOL)setString:(NSString *)value forKey:(NSString *)key error:(NSError *__autoreleasing *)error { + return [self setString:value forKey:key service:nil accessGroup:nil genericAttribute:nil error:error]; +} + ++ (BOOL)setString:(NSString *)value forKey:(NSString *)key genericAttribute:(id)genericAttribute { + return [self setString:value forKey:key service:nil accessGroup:nil genericAttribute:genericAttribute error:nil]; +} + ++ (BOOL)setString:(NSString *)value forKey:(NSString *)key genericAttribute:(id)genericAttribute error:(NSError *__autoreleasing *)error { + return [self setString:value forKey:key service:nil accessGroup:nil genericAttribute:genericAttribute error:error]; +} + ++ (BOOL)setString:(NSString *)value forKey:(NSString *)key service:(NSString *)service { + return [self setString:value forKey:key service:service accessGroup:nil genericAttribute:nil error:nil]; +} + ++ (BOOL)setString:(NSString *)value forKey:(NSString *)key service:(NSString *)service error:(NSError *__autoreleasing *)error { + return [self setString:value forKey:key service:service accessGroup:nil genericAttribute:nil error:error]; +} + ++ (BOOL)setString:(NSString *)value forKey:(NSString *)key service:(NSString *)service genericAttribute:(id)genericAttribute { + return [self setString:value forKey:key service:service accessGroup:nil genericAttribute:genericAttribute error:nil]; +} + ++ (BOOL)setString:(NSString *)value + forKey:(NSString *)key + service:(NSString *)service + genericAttribute:(id)genericAttribute + error:(NSError *__autoreleasing *)error { + return [self setString:value forKey:key service:service accessGroup:nil genericAttribute:genericAttribute error:error]; +} + ++ (BOOL)setString:(NSString *)value forKey:(NSString *)key service:(NSString *)service accessGroup:(NSString *)accessGroup { + return [self setString:value forKey:key service:service accessGroup:accessGroup genericAttribute:nil error:nil]; +} + ++ (BOOL)setString:(NSString *)value + forKey:(NSString *)key + service:(NSString *)service + accessGroup:(NSString *)accessGroup + error:(NSError *__autoreleasing *)error { + return [self setString:value forKey:key service:service accessGroup:accessGroup genericAttribute:nil error:error]; +} + ++ (BOOL)setString:(NSString *)value + forKey:(NSString *)key + service:(NSString *)service + accessGroup:(NSString *)accessGroup + genericAttribute:(id)genericAttribute { + return [self setString:value forKey:key service:service accessGroup:accessGroup genericAttribute:genericAttribute error:nil]; +} + ++ (BOOL)setString:(NSString *)value + forKey:(NSString *)key + service:(NSString *)service + accessGroup:(NSString *)accessGroup + genericAttribute:(id)genericAttribute + error:(NSError *__autoreleasing *)error { + if (!value) { + return [self removeItemForKey:key service:service accessGroup:accessGroup error:error]; + } + NSData *data = [value dataUsingEncoding:NSUTF8StringEncoding]; + if (data) { + return [self setData:data forKey:key service:service accessGroup:accessGroup genericAttribute:genericAttribute error:error]; + } + NSError *e = [self conversionError:NSLocalizedString(@"failed to convert string to data", nil)]; + if (error) { + *error = e; + } + return NO; +} + +#pragma mark - + ++ (NSData *)dataForKey:(NSString *)key { + return [self dataForKey:key service:nil accessGroup:nil error:nil]; +} + ++ (NSData *)dataForKey:(NSString *)key error:(NSError *__autoreleasing *)error { + return [self dataForKey:key service:nil accessGroup:nil error:error]; +} + ++ (NSData *)dataForKey:(NSString *)key service:(NSString *)service { + return [self dataForKey:key service:service accessGroup:nil error:nil]; +} + ++ (NSData *)dataForKey:(NSString *)key service:(NSString *)service error:(NSError *__autoreleasing *)error { + return [self dataForKey:key service:service accessGroup:nil error:error]; +} + ++ (NSData *)dataForKey:(NSString *)key service:(NSString *)service accessGroup:(NSString *)accessGroup { + return [self dataForKey:key service:service accessGroup:accessGroup error:nil]; +} + ++ (NSData *)dataForKey:(NSString *)key service:(NSString *)service accessGroup:(NSString *)accessGroup error:(NSError *__autoreleasing *)error { + if (!key) { + NSError *e = [self argumentError:NSLocalizedString(@"the key must not to be nil", nil)]; + if (error) { + *error = e; + } + return nil; + } + if (!service) { + service = [self defaultService]; + } + + QCloudUICKeyChainStore *keychain = [QCloudUICKeyChainStore keyChainStoreWithService:service accessGroup:accessGroup]; + return [keychain dataForKey:key error:error]; +} + +#pragma mark - + ++ (BOOL)setData:(NSData *)data forKey:(NSString *)key { + return [self setData:data forKey:key service:nil accessGroup:nil genericAttribute:nil error:nil]; +} + ++ (BOOL)setData:(NSData *)data forKey:(NSString *)key error:(NSError *__autoreleasing *)error { + return [self setData:data forKey:key service:nil accessGroup:nil genericAttribute:nil error:error]; +} + ++ (BOOL)setData:(NSData *)data forKey:(NSString *)key genericAttribute:(id)genericAttribute { + return [self setData:data forKey:key service:nil accessGroup:nil genericAttribute:genericAttribute error:nil]; +} + ++ (BOOL)setData:(NSData *)data forKey:(NSString *)key genericAttribute:(id)genericAttribute error:(NSError *__autoreleasing *)error { + return [self setData:data forKey:key service:nil accessGroup:nil genericAttribute:genericAttribute error:error]; +} + ++ (BOOL)setData:(NSData *)data forKey:(NSString *)key service:(NSString *)service { + return [self setData:data forKey:key service:service accessGroup:nil genericAttribute:nil error:nil]; +} + ++ (BOOL)setData:(NSData *)data forKey:(NSString *)key service:(NSString *)service error:(NSError *__autoreleasing *)error { + return [self setData:data forKey:key service:service accessGroup:nil genericAttribute:nil error:error]; +} + ++ (BOOL)setData:(NSData *)data forKey:(NSString *)key service:(NSString *)service genericAttribute:(id)genericAttribute { + return [self setData:data forKey:key service:service accessGroup:nil genericAttribute:genericAttribute error:nil]; +} + ++ (BOOL)setData:(NSData *)data + forKey:(NSString *)key + service:(NSString *)service + genericAttribute:(id)genericAttribute + error:(NSError *__autoreleasing *)error { + return [self setData:data forKey:key service:service accessGroup:nil genericAttribute:genericAttribute error:error]; +} + ++ (BOOL)setData:(NSData *)data forKey:(NSString *)key service:(NSString *)service accessGroup:(NSString *)accessGroup { + return [self setData:data forKey:key service:service accessGroup:accessGroup genericAttribute:nil error:nil]; +} + ++ (BOOL)setData:(NSData *)data + forKey:(NSString *)key + service:(NSString *)service + accessGroup:(NSString *)accessGroup + error:(NSError *__autoreleasing *)error { + return [self setData:data forKey:key service:service accessGroup:accessGroup genericAttribute:nil error:error]; +} + ++ (BOOL)setData:(NSData *)data + forKey:(NSString *)key + service:(NSString *)service + accessGroup:(NSString *)accessGroup + genericAttribute:(id)genericAttribute { + return [self setData:data forKey:key service:service accessGroup:accessGroup genericAttribute:genericAttribute error:nil]; +} + ++ (BOOL)setData:(NSData *)data + forKey:(NSString *)key + service:(NSString *)service + accessGroup:(NSString *)accessGroup + genericAttribute:(id)genericAttribute + error:(NSError *__autoreleasing *)error { + if (!key) { + NSError *e = [self argumentError:NSLocalizedString(@"the key must not to be nil", nil)]; + if (error) { + *error = e; + } + return NO; + } + if (!service) { + service = [self defaultService]; + } + + QCloudUICKeyChainStore *keychain = [QCloudUICKeyChainStore keyChainStoreWithService:service accessGroup:accessGroup]; + return [keychain setData:data forKey:key genericAttribute:genericAttribute]; +} + +#pragma mark - + +- (BOOL)contains:(NSString *)key { + NSMutableDictionary *query = [self query]; + query[(__bridge __strong id)kSecAttrAccount] = key; + + OSStatus status = SecItemCopyMatching((__bridge CFDictionaryRef)query, NULL); + return status == errSecSuccess || status == errSecInteractionNotAllowed; +} + +#pragma mark - + +- (NSString *)stringForKey:(id)key { + return [self stringForKey:key error:nil]; +} + +- (NSString *)stringForKey:(id)key error:(NSError *__autoreleasing *)error { + NSData *data = [self dataForKey:key error:error]; + if (data) { + NSString *string = [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding]; + if (string) { + return string; + } + NSError *e = [self.class conversionError:NSLocalizedString(@"failed to convert data to string", nil)]; + if (error) { + *error = e; + } + return nil; + } + + return nil; +} + +#pragma mark - + +- (BOOL)setString:(NSString *)string forKey:(NSString *)key { + return [self setString:string forKey:key genericAttribute:nil label:nil comment:nil error:nil]; +} + +- (BOOL)setString:(NSString *)string forKey:(NSString *)key error:(NSError *__autoreleasing *)error { + return [self setString:string forKey:key genericAttribute:nil label:nil comment:nil error:error]; +} + +- (BOOL)setString:(NSString *)string forKey:(NSString *)key genericAttribute:(id)genericAttribute { + return [self setString:string forKey:key genericAttribute:genericAttribute label:nil comment:nil error:nil]; +} + +- (BOOL)setString:(NSString *)string forKey:(NSString *)key genericAttribute:(id)genericAttribute error:(NSError *__autoreleasing *)error { + return [self setString:string forKey:key genericAttribute:genericAttribute label:nil comment:nil error:error]; +} + +- (BOOL)setString:(NSString *)string forKey:(NSString *)key label:(NSString *)label comment:(NSString *)comment { + return [self setString:string forKey:key genericAttribute:nil label:label comment:comment error:nil]; +} + +- (BOOL)setString:(NSString *)string + forKey:(NSString *)key + label:(NSString *)label + comment:(NSString *)comment + error:(NSError *__autoreleasing *)error { + return [self setString:string forKey:key genericAttribute:nil label:label comment:comment error:error]; +} + +- (BOOL)setString:(NSString *)string + forKey:(NSString *)key + genericAttribute:(id)genericAttribute + label:(NSString *)label + comment:(NSString *)comment + error:(NSError *__autoreleasing *)error { + if (!string) { + return [self removeItemForKey:key error:error]; + } + NSData *data = [string dataUsingEncoding:NSUTF8StringEncoding]; + if (data) { + return [self setData:data forKey:key genericAttribute:genericAttribute label:label comment:comment error:error]; + } + NSError *e = [self.class conversionError:NSLocalizedString(@"failed to convert string to data", nil)]; + if (error) { + *error = e; + } + return NO; +} + +#pragma mark - + +- (NSData *)dataForKey:(NSString *)key { + return [self dataForKey:key error:nil]; +} + +- (NSData *)dataForKey:(NSString *)key error:(NSError *__autoreleasing *)error { + NSMutableDictionary *query = [self query]; + query[(__bridge __strong id)kSecMatchLimit] = (__bridge id)kSecMatchLimitOne; + query[(__bridge __strong id)kSecReturnData] = (__bridge id)kCFBooleanTrue; + + query[(__bridge __strong id)kSecAttrAccount] = key; + + CFTypeRef data = nil; + OSStatus status = SecItemCopyMatching((__bridge CFDictionaryRef)query, &data); + + if (status == errSecSuccess) { + NSData *ret = [NSData dataWithData:(__bridge NSData *)data]; + if (data) { + CFRelease(data); + return ret; + } else { + NSError *e = [self.class unexpectedError:NSLocalizedString(@"Unexpected error has occurred.", nil)]; + if (error) { + *error = e; + } + return nil; + } + } else if (status == errSecItemNotFound) { + return nil; + } + + NSError *e = [self.class securityError:status]; + if (error) { + *error = e; + } + return nil; +} + +#pragma mark - + +- (BOOL)setData:(NSData *)data forKey:(NSString *)key { + return [self setData:data forKey:key genericAttribute:nil label:nil comment:nil error:nil]; +} + +- (BOOL)setData:(NSData *)data forKey:(NSString *)key error:(NSError *__autoreleasing *)error { + return [self setData:data forKey:key genericAttribute:nil label:nil comment:nil error:error]; +} + +- (BOOL)setData:(NSData *)data forKey:(NSString *)key genericAttribute:(id)genericAttribute { + return [self setData:data forKey:key genericAttribute:genericAttribute label:nil comment:nil error:nil]; +} + +- (BOOL)setData:(NSData *)data forKey:(NSString *)key genericAttribute:(id)genericAttribute error:(NSError *__autoreleasing *)error { + return [self setData:data forKey:key genericAttribute:genericAttribute label:nil comment:nil error:error]; +} + +- (BOOL)setData:(NSData *)data forKey:(NSString *)key label:(NSString *)label comment:(NSString *)comment { + return [self setData:data forKey:key genericAttribute:nil label:label comment:comment error:nil]; +} + +- (BOOL)setData:(NSData *)data forKey:(NSString *)key label:(NSString *)label comment:(NSString *)comment error:(NSError *__autoreleasing *)error { + return [self setData:data forKey:key genericAttribute:nil label:label comment:comment error:error]; +} + +- (BOOL)setData:(NSData *)data + forKey:(NSString *)key + genericAttribute:(id)genericAttribute + label:(NSString *)label + comment:(NSString *)comment + error:(NSError *__autoreleasing *)error { + if (!key) { + NSError *e = [self.class argumentError:NSLocalizedString(@"the key must not to be nil", nil)]; + if (error) { + *error = e; + } + return NO; + } + if (!data) { + return [self removeItemForKey:key error:error]; + } + + NSMutableDictionary *query = [self query]; + query[(__bridge __strong id)kSecAttrAccount] = key; +#if TARGET_OS_IOS + if (floor(NSFoundationVersionNumber) > floor(1144.17)) { // iOS 9+ + query[(__bridge __strong id)kSecUseAuthenticationUI] = (__bridge id)kSecUseAuthenticationUIFail; +#if __IPHONE_OS_VERSION_MIN_REQUIRED < __IPHONE_9_0 + } else if (floor(NSFoundationVersionNumber) > floor(1047.25)) { // iOS 8+ + query[(__bridge __strong id)kSecUseNoAuthenticationUI] = (__bridge id)kCFBooleanTrue; +#endif + } +#elif TARGET_OS_WATCH || TARGET_OS_TV + query[(__bridge __strong id)kSecUseAuthenticationUI] = (__bridge id)kSecUseAuthenticationUIFail; +#endif + + OSStatus status = SecItemCopyMatching((__bridge CFDictionaryRef)query, NULL); + if (status == errSecSuccess || status == errSecInteractionNotAllowed) { + query = [self query]; + query[(__bridge __strong id)kSecAttrAccount] = key; + + NSError *unexpectedError = nil; + NSMutableDictionary *attributes = [self attributesWithKey:nil value:data error:&unexpectedError]; + + if (genericAttribute) { + attributes[(__bridge __strong id)kSecAttrGeneric] = genericAttribute; + } + if (label) { + attributes[(__bridge __strong id)kSecAttrLabel] = label; + } + if (comment) { + attributes[(__bridge __strong id)kSecAttrComment] = comment; + } + + if (unexpectedError) { + NSLog(@"error: [%@] %@", @(unexpectedError.code), NSLocalizedString(@"Unexpected error has occurred.", nil)); + if (error) { + *error = unexpectedError; + } + return NO; + } else { + if (status == errSecInteractionNotAllowed && floor(NSFoundationVersionNumber) <= floor(1140.11)) { // iOS 8.0.x + if ([self removeItemForKey:key error:error]) { + return [self setData:data forKey:key label:label comment:comment error:error]; + } + } else { + status = SecItemUpdate((__bridge CFDictionaryRef)query, (__bridge CFDictionaryRef)attributes); + } + if (status != errSecSuccess) { + NSError *e = [self.class securityError:status]; + if (error) { + *error = e; + } + return NO; + } + } + } else if (status == errSecItemNotFound) { + NSError *unexpectedError = nil; + NSMutableDictionary *attributes = [self attributesWithKey:key value:data error:&unexpectedError]; + + if (genericAttribute) { + attributes[(__bridge __strong id)kSecAttrGeneric] = genericAttribute; + } + if (label) { + attributes[(__bridge __strong id)kSecAttrLabel] = label; + } + if (comment) { + attributes[(__bridge __strong id)kSecAttrComment] = comment; + } + + if (unexpectedError) { + NSLog(@"error: [%@] %@", @(unexpectedError.code), NSLocalizedString(@"Unexpected error has occurred.", nil)); + if (error) { + *error = unexpectedError; + } + return NO; + } else { + status = SecItemAdd((__bridge CFDictionaryRef)attributes, NULL); + if (status != errSecSuccess) { + NSError *e = [self.class securityError:status]; + if (error) { + *error = e; + } + return NO; + } + } + } else { + NSError *e = [self.class securityError:status]; + if (error) { + *error = e; + } + return NO; + } + + return YES; +} + +#pragma mark - + ++ (BOOL)removeItemForKey:(NSString *)key { + return [self removeItemForKey:key service:nil accessGroup:nil error:nil]; +} + ++ (BOOL)removeItemForKey:(NSString *)key error:(NSError *__autoreleasing *)error { + return [self removeItemForKey:key service:nil accessGroup:nil error:error]; +} + ++ (BOOL)removeItemForKey:(NSString *)key service:(NSString *)service { + return [self removeItemForKey:key service:service accessGroup:nil error:nil]; +} + ++ (BOOL)removeItemForKey:(NSString *)key service:(NSString *)service error:(NSError *__autoreleasing *)error { + return [self removeItemForKey:key service:service accessGroup:nil error:error]; +} + ++ (BOOL)removeItemForKey:(NSString *)key service:(NSString *)service accessGroup:(NSString *)accessGroup { + return [self removeItemForKey:key service:service accessGroup:accessGroup error:nil]; +} + ++ (BOOL)removeItemForKey:(NSString *)key service:(NSString *)service accessGroup:(NSString *)accessGroup error:(NSError *__autoreleasing *)error { + if (!key) { + NSError *e = [self.class argumentError:NSLocalizedString(@"the key must not to be nil", nil)]; + if (error) { + *error = e; + } + return NO; + } + if (!service) { + service = [self defaultService]; + } + + QCloudUICKeyChainStore *keychain = [QCloudUICKeyChainStore keyChainStoreWithService:service accessGroup:accessGroup]; + return [keychain removeItemForKey:key error:error]; +} + +#pragma mark - + ++ (BOOL)removeAllItems { + return [self removeAllItemsForService:nil accessGroup:nil error:nil]; +} + ++ (BOOL)removeAllItemsWithError:(NSError *__autoreleasing *)error { + return [self removeAllItemsForService:nil accessGroup:nil error:error]; +} + ++ (BOOL)removeAllItemsForService:(NSString *)service { + return [self removeAllItemsForService:service accessGroup:nil error:nil]; +} + ++ (BOOL)removeAllItemsForService:(NSString *)service error:(NSError *__autoreleasing *)error { + return [self removeAllItemsForService:service accessGroup:nil error:error]; +} + ++ (BOOL)removeAllItemsForService:(NSString *)service accessGroup:(NSString *)accessGroup { + return [self removeAllItemsForService:service accessGroup:accessGroup error:nil]; +} + ++ (BOOL)removeAllItemsForService:(NSString *)service accessGroup:(NSString *)accessGroup error:(NSError *__autoreleasing *)error { + QCloudUICKeyChainStore *keychain = [QCloudUICKeyChainStore keyChainStoreWithService:service accessGroup:accessGroup]; + return [keychain removeAllItemsWithError:error]; +} + +#pragma mark - + +- (BOOL)removeItemForKey:(NSString *)key { + return [self removeItemForKey:key error:nil]; +} + +- (BOOL)removeItemForKey:(NSString *)key error:(NSError *__autoreleasing *)error { + NSMutableDictionary *query = [self query]; + query[(__bridge __strong id)kSecAttrAccount] = key; + + OSStatus status = SecItemDelete((__bridge CFDictionaryRef)query); + if (status != errSecSuccess && status != errSecItemNotFound) { + NSError *e = [self.class securityError:status]; + if (error) { + *error = e; + } + return NO; + } + + return YES; +} + +#pragma mark - + +- (BOOL)removeAllItems { + return [self removeAllItemsWithError:nil]; +} + +- (BOOL)removeAllItemsWithError:(NSError *__autoreleasing *)error { + NSMutableDictionary *query = [self query]; +#if !TARGET_OS_IPHONE + query[(__bridge id)kSecMatchLimit] = (__bridge id)kSecMatchLimitAll; +#endif + + OSStatus status = SecItemDelete((__bridge CFDictionaryRef)query); + if (status != errSecSuccess && status != errSecItemNotFound) { + NSError *e = [self.class securityError:status]; + if (error) { + *error = e; + } + return NO; + } + + return YES; +} + +#pragma mark - + +- (NSString *)objectForKeyedSubscript:(NSString *)key { + return [self stringForKey:key]; +} + +- (void)setObject:(NSString *)obj forKeyedSubscript:(NSString *)key { + if (!obj) { + [self removeItemForKey:key]; + } else { + [self setString:obj forKey:key]; + } +} + +#pragma mark - + +- (NSArray QCloudUIC_KEY_TYPE *)allKeys { + NSArray *items = [self.class prettify:[self itemClassObject] items:[self items]]; + NSMutableArray *keys = [[NSMutableArray alloc] init]; + for (NSDictionary *item in items) { + NSString *key = item[@"key"]; + if (key) { + [keys addObject:key]; + } + } + return keys.copy; +} + ++ (NSArray QCloudUIC_KEY_TYPE *)allKeysWithItemClass:(QCloudUICKeyChainStoreItemClass)itemClass { + CFTypeRef itemClassObject = kSecClassGenericPassword; + if (itemClass == QCloudUICKeyChainStoreItemClassGenericPassword) { + itemClassObject = kSecClassGenericPassword; + } else if (itemClass == QCloudUICKeyChainStoreItemClassInternetPassword) { + itemClassObject = kSecClassInternetPassword; + } + + NSMutableDictionary *query = [[NSMutableDictionary alloc] init]; + query[(__bridge __strong id)kSecClass] = (__bridge id)itemClassObject; + query[(__bridge __strong id)kSecMatchLimit] = (__bridge id)kSecMatchLimitAll; + query[(__bridge __strong id)kSecReturnAttributes] = (__bridge id)kCFBooleanTrue; + + CFArrayRef result = nil; + CFDictionaryRef cfquery = (CFDictionaryRef)CFBridgingRetain(query); + OSStatus status = SecItemCopyMatching(cfquery, (CFTypeRef *)&result); + CFRelease(cfquery); + + if (status == errSecSuccess) { + NSArray *items = [self prettify:itemClassObject items:(__bridge NSArray *)result]; + NSMutableArray *keys = [[NSMutableArray alloc] init]; + for (NSDictionary *item in items) { + if (itemClassObject == kSecClassGenericPassword) { + [keys addObject:@{ @"service" : item[@"service"] ?: @"", @"key" : item[@"key"] ?: @"" }]; + } else if (itemClassObject == kSecClassInternetPassword) { + [keys addObject:@{ @"server" : item[@"service"] ?: @"", @"key" : item[@"key"] ?: @"" }]; + } + } + return keys.copy; + } else if (status == errSecItemNotFound) { + return @[]; + } + + return nil; +} + ++ (NSArray *)allItemsWithItemClass:(QCloudUICKeyChainStoreItemClass)itemClass { + CFTypeRef itemClassObject = kSecClassGenericPassword; + if (itemClass == QCloudUICKeyChainStoreItemClassGenericPassword) { + itemClassObject = kSecClassGenericPassword; + } else if (itemClass == QCloudUICKeyChainStoreItemClassInternetPassword) { + itemClassObject = kSecClassInternetPassword; + } + + NSMutableDictionary *query = [[NSMutableDictionary alloc] init]; + query[(__bridge __strong id)kSecClass] = (__bridge id)itemClassObject; + query[(__bridge __strong id)kSecMatchLimit] = (__bridge id)kSecMatchLimitAll; + query[(__bridge __strong id)kSecReturnAttributes] = (__bridge id)kCFBooleanTrue; +#if TARGET_OS_IPHONE + query[(__bridge __strong id)kSecReturnData] = (__bridge id)kCFBooleanTrue; +#endif + + CFArrayRef result = nil; + CFDictionaryRef cfquery = (CFDictionaryRef)CFBridgingRetain(query); + OSStatus status = SecItemCopyMatching(cfquery, (CFTypeRef *)&result); + CFRelease(cfquery); + + if (status == errSecSuccess) { + return [self prettify:itemClassObject items:(__bridge NSArray *)result]; + } else if (status == errSecItemNotFound) { + return @[]; + } + + return nil; +} + +- (NSArray *)allItems { + return [self.class prettify:[self itemClassObject] items:[self items]]; +} + +- (NSArray *)items { + NSMutableDictionary *query = [self query]; + query[(__bridge __strong id)kSecMatchLimit] = (__bridge id)kSecMatchLimitAll; + query[(__bridge __strong id)kSecReturnAttributes] = (__bridge id)kCFBooleanTrue; +#if TARGET_OS_IPHONE + query[(__bridge __strong id)kSecReturnData] = (__bridge id)kCFBooleanTrue; +#endif + + CFArrayRef result = nil; + OSStatus status = SecItemCopyMatching((__bridge CFDictionaryRef)query, (CFTypeRef *)&result); + + if (status == errSecSuccess) { + return CFBridgingRelease(result); + } else if (status == errSecItemNotFound) { + return @[]; + } + + return nil; +} + ++ (NSArray *)prettify:(CFTypeRef)itemClass items:(NSArray *)items { + NSMutableArray *prettified = [[NSMutableArray alloc] init]; + + for (NSDictionary *attributes in items) { + NSMutableDictionary *item = [[NSMutableDictionary alloc] init]; + if (itemClass == kSecClassGenericPassword) { + item[@"class"] = @"GenericPassword"; + id service = attributes[(__bridge id)kSecAttrService]; + if (service) { + item[@"service"] = service; + } + id accessGroup = attributes[(__bridge id)kSecAttrAccessGroup]; + if (accessGroup) { + item[@"accessGroup"] = accessGroup; + } + } else if (itemClass == kSecClassInternetPassword) { + item[@"class"] = @"InternetPassword"; + id server = attributes[(__bridge id)kSecAttrServer]; + if (server) { + item[@"server"] = server; + } + id protocolType = attributes[(__bridge id)kSecAttrProtocol]; + if (protocolType) { + item[@"protocol"] = protocolType; + } + id authenticationType = attributes[(__bridge id)kSecAttrAuthenticationType]; + if (authenticationType) { + item[@"authenticationType"] = authenticationType; + } + } + id key = attributes[(__bridge id)kSecAttrAccount]; + if (key) { + item[@"key"] = key; + } + NSData *data = attributes[(__bridge id)kSecValueData]; + NSString *string = [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding]; + if (string) { + item[@"value"] = string; + } else { + item[@"value"] = data; + } + + id accessible = attributes[(__bridge id)kSecAttrAccessible]; + if (accessible) { + item[@"accessibility"] = accessible; + } + + if (floor(NSFoundationVersionNumber) > floor(993.00)) { // iOS 7+ + id synchronizable = attributes[(__bridge id)kSecAttrSynchronizable]; + if (synchronizable) { + item[@"synchronizable"] = synchronizable; + } + } + + [prettified addObject:item]; + } + + return prettified.copy; +} + +#pragma mark - + +- (void)setSynchronizable:(BOOL)synchronizable { + _synchronizable = synchronizable; + if (_authenticationPolicy) { + NSLog(@"%@", @"Cannot specify both an authenticationPolicy and a synchronizable"); + } +} + +- (void)setAccessibility:(QCloudUICKeyChainStoreAccessibility)accessibility + authenticationPolicy:(QCloudUICKeyChainStoreAuthenticationPolicy)authenticationPolicy { + _accessibility = accessibility; + _authenticationPolicy = authenticationPolicy; + if (_synchronizable) { + NSLog(@"%@", @"Cannot specify both an authenticationPolicy and a synchronizable"); + } +} + +#pragma mark - + +#if TARGET_OS_IOS +- (void)sharedPasswordWithCompletion:(void (^)(NSString *account, NSString *password, NSError *error))completion { + NSString *domain = self.server.host; + if (domain.length > 0) { + [self.class requestSharedWebCredentialForDomain:domain + account:nil + completion:^(NSArray *credentials, NSError *error) { + NSDictionary *credential = credentials.firstObject; + if (credential) { + NSString *account = credential[@"account"]; + NSString *password = credential[@"password"]; + if (completion) { + completion(account, password, error); + } + } else { + if (completion) { + completion(nil, nil, error); + } + } + }]; + } else { + NSError *error = + [self.class argumentError:NSLocalizedString(@"the server property must not to be nil, should use 'keyChainStoreWithServer:protocolType:' " + @"initializer to instantiate keychain store", + nil)]; + if (completion) { + completion(nil, nil, error); + } + } +} + +- (void)sharedPasswordForAccount:(NSString *)account completion:(void (^)(NSString *password, NSError *error))completion { + NSString *domain = self.server.host; + if (domain.length > 0) { + [self.class requestSharedWebCredentialForDomain:domain + account:account + completion:^(NSArray *credentials, NSError *error) { + NSDictionary *credential = credentials.firstObject; + if (credential) { + NSString *password = credential[@"password"]; + if (completion) { + completion(password, error); + } + } else { + if (completion) { + completion(nil, error); + } + } + }]; + } else { + NSError *error = + [self.class argumentError:NSLocalizedString(@"the server property must not to be nil, should use 'keyChainStoreWithServer:protocolType:' " + @"initializer to instantiate keychain store", + nil)]; + if (completion) { + completion(nil, error); + } + } +} + +- (void)setSharedPassword:(NSString *)password forAccount:(NSString *)account completion:(void (^)(NSError *error))completion { + NSString *domain = self.server.host; + if (domain.length > 0) { + SecAddSharedWebCredential((__bridge CFStringRef)domain, (__bridge CFStringRef)account, (__bridge CFStringRef)password, ^(CFErrorRef error) { + if (completion) { + completion((__bridge NSError *)error); + } + }); + } else { + NSError *error = + [self.class argumentError:NSLocalizedString(@"the server property must not to be nil, should use 'keyChainStoreWithServer:protocolType:' " + @"initializer to instantiate keychain store", + nil)]; + if (completion) { + completion(error); + } + } +} + +- (void)removeSharedPasswordForAccount:(NSString *)account completion:(void (^)(NSError *error))completion { + [self setSharedPassword:nil forAccount:account completion:completion]; +} + ++ (void)requestSharedWebCredentialWithCompletion:(void (^)(NSArray QCloudUIC_CREDENTIAL_TYPE *credentials, NSError *error))completion { + [self requestSharedWebCredentialForDomain:nil account:nil completion:completion]; +} + ++ (void)requestSharedWebCredentialForDomain:(NSString *)domain + account:(NSString *)account + completion:(void (^)(NSArray QCloudUIC_CREDENTIAL_TYPE *credentials, NSError *error))completion { + SecRequestSharedWebCredential((__bridge CFStringRef)domain, (__bridge CFStringRef)account, ^(CFArrayRef credentials, CFErrorRef error) { + if (error) { + NSError *e = (__bridge NSError *)error; + if (e.code != errSecItemNotFound) { + NSLog(@"error: [%@] %@", @(e.code), e.localizedDescription); + } + } + + NSMutableArray *sharedCredentials = [[NSMutableArray alloc] init]; + for (NSDictionary *credential in (__bridge NSArray *)credentials) { + NSMutableDictionary *sharedCredential = [[NSMutableDictionary alloc] init]; + NSString *server = credential[(__bridge __strong id)kSecAttrServer]; + if (server) { + sharedCredential[@"server"] = server; + } + NSString *account = credential[(__bridge __strong id)kSecAttrAccount]; + if (account) { + sharedCredential[@"account"] = account; + } + NSString *password = credential[(__bridge __strong id)kSecSharedPassword]; + if (password) { + sharedCredential[@"password"] = password; + } + [sharedCredentials addObject:sharedCredential]; + } + + if (completion) { + completion(sharedCredentials.copy, (__bridge NSError *)error); + } + }); +} + ++ (NSString *)generatePassword { + return (NSString *)CFBridgingRelease(SecCreateSharedWebCredentialPassword()); +} + +#endif + +#pragma mark - + +- (NSString *)description { + NSArray *items = [self allItems]; + if (items.count == 0) { + return @"()"; + } + NSMutableString *description = [[NSMutableString alloc] initWithString:@"(\n"]; + for (NSDictionary *item in items) { + [description appendFormat:@" %@", item]; + } + [description appendString:@")"]; + return description.copy; +} + +- (NSString *)debugDescription { + return [NSString stringWithFormat:@"%@", [self items]]; +} + +#pragma mark - + +- (NSMutableDictionary *)query { + NSMutableDictionary *query = [[NSMutableDictionary alloc] init]; + + CFTypeRef itemClass = [self itemClassObject]; + query[(__bridge __strong id)kSecClass] = (__bridge id)itemClass; + if (floor(NSFoundationVersionNumber) > floor(993.00)) { // iOS 7+ (NSFoundationVersionNumber_iOS_6_1) + query[(__bridge __strong id)kSecAttrSynchronizable] = (__bridge id)kSecAttrSynchronizableAny; + } + + if (itemClass == kSecClassGenericPassword) { + query[(__bridge __strong id)(kSecAttrService)] = _service; +#if !TARGET_OS_SIMULATOR + if (_accessGroup) { + query[(__bridge __strong id)kSecAttrAccessGroup] = _accessGroup; + } +#endif + } else { + if (_server.host) { + query[(__bridge __strong id)kSecAttrServer] = _server.host; + } + if (_server.port != nil) { + query[(__bridge __strong id)kSecAttrPort] = _server.port; + } + CFTypeRef protocolTypeObject = [self protocolTypeObject]; + if (protocolTypeObject) { + query[(__bridge __strong id)kSecAttrProtocol] = (__bridge id)protocolTypeObject; + } + CFTypeRef authenticationTypeObject = [self authenticationTypeObject]; + if (authenticationTypeObject) { + query[(__bridge __strong id)kSecAttrAuthenticationType] = (__bridge id)authenticationTypeObject; + } + } + +#if TARGET_OS_IOS + if (_authenticationPrompt) { + if (floor(NSFoundationVersionNumber) > floor(1047.25)) { // iOS 8+ (NSFoundationVersionNumber_iOS_7_1) + query[(__bridge __strong id)kSecUseOperationPrompt] = _authenticationPrompt; + } else { + NSLog(@"%@", @"Unavailable 'authenticationPrompt' attribute on iOS versions prior to 8.0."); + } + } +#endif + + if (!_useAuthenticationUI) { +#if TARGET_OS_IOS + if (floor(NSFoundationVersionNumber) > floor(1144.17)) { // iOS 9+ + query[(__bridge __strong id)kSecUseAuthenticationUI] = (__bridge id)kSecUseAuthenticationUIFail; +#if __IPHONE_OS_VERSION_MIN_REQUIRED < __IPHONE_9_0 + } else if (floor(NSFoundationVersionNumber) > floor(1047.25)) { // iOS 8+ + query[(__bridge __strong id)kSecUseNoAuthenticationUI] = (__bridge id)kCFBooleanTrue; +#endif + } +#elif TARGET_OS_WATCH || TARGET_OS_TV + query[(__bridge __strong id)kSecUseAuthenticationUI] = (__bridge id)kSecUseAuthenticationUIFail; +#endif + } + + return query; +} + +- (NSMutableDictionary *)attributesWithKey:(NSString *)key value:(NSData *)value error:(NSError *__autoreleasing *)error { + NSMutableDictionary *attributes; + + if (key) { + attributes = [self query]; + attributes[(__bridge __strong id)kSecAttrAccount] = key; + } else { + attributes = [[NSMutableDictionary alloc] init]; + } + + attributes[(__bridge __strong id)kSecValueData] = value; + +#if TARGET_OS_IOS + double iOS_7_1_or_10_9_2 = 1047.25; // NSFoundationVersionNumber_iOS_7_1 +#else + double iOS_7_1_or_10_9_2 = 1056.13; // NSFoundationVersionNumber10_9_2 +#endif + CFTypeRef accessibilityObject = [self accessibilityObject]; + if (_authenticationPolicy && accessibilityObject) { + if (floor(NSFoundationVersionNumber) > floor(iOS_7_1_or_10_9_2)) { // iOS 8+ or OS X 10.10+ + CFErrorRef securityError = NULL; + SecAccessControlRef accessControl = SecAccessControlCreateWithFlags(kCFAllocatorDefault, accessibilityObject, + (SecAccessControlCreateFlags)_authenticationPolicy, &securityError); + if (securityError) { + NSError *e = (__bridge NSError *)securityError; + NSLog(@"error: [%@] %@", @(e.code), e.localizedDescription); + if (error) { + *error = e; + CFRelease(accessControl); + return nil; + } + } + if (!accessControl) { + NSString *message = NSLocalizedString(@"Unexpected error has occurred.", nil); + NSError *e = [self.class unexpectedError:message]; + if (error) { + *error = e; + } + return nil; + } + attributes[(__bridge __strong id)kSecAttrAccessControl] = (__bridge_transfer id)accessControl; + } else { +#if TARGET_OS_IOS + NSLog(@"%@", @"Unavailable 'Touch ID integration' on iOS versions prior to 8.0."); +#else + NSLog(@"%@", @"Unavailable 'Touch ID integration' on OS X versions prior to 10.10."); +#endif + } + } else { + if (floor(NSFoundationVersionNumber) <= floor(iOS_7_1_or_10_9_2) + && _accessibility == QCloudUICKeyChainStoreAccessibilityWhenPasscodeSetThisDeviceOnly) { +#if TARGET_OS_IOS + NSLog(@"%@", @"Unavailable 'QCloudUICKeyChainStoreAccessibilityWhenPasscodeSetThisDeviceOnly' attribute on iOS versions prior to 8.0."); +#else + NSLog(@"%@", + @"Unavailable 'QCloudUICKeyChainStoreAccessibilityWhenPasscodeSetThisDeviceOnly' attribute on OS X versions prior to 10.10."); +#endif + } else { + if (accessibilityObject) { + attributes[(__bridge __strong id)kSecAttrAccessible] = (__bridge id)accessibilityObject; + } + } + } + + if (floor(NSFoundationVersionNumber) > floor(993.00)) { // iOS 7+ + attributes[(__bridge __strong id)kSecAttrSynchronizable] = @(_synchronizable); + } + + return attributes; +} + +#pragma mark - + +- (CFTypeRef)itemClassObject { + switch (_itemClass) { + case QCloudUICKeyChainStoreItemClassGenericPassword: + return kSecClassGenericPassword; + case QCloudUICKeyChainStoreItemClassInternetPassword: + return kSecClassInternetPassword; + default: + return nil; + } +} + +- (CFTypeRef)protocolTypeObject { + switch (_protocolType) { + case QCloudUICKeyChainStoreProtocolTypeFTP: + return kSecAttrProtocolFTP; + case QCloudUICKeyChainStoreProtocolTypeFTPAccount: + return kSecAttrProtocolFTPAccount; + case QCloudUICKeyChainStoreProtocolTypeHTTP: + return kSecAttrProtocolHTTP; + case QCloudUICKeyChainStoreProtocolTypeIRC: + return kSecAttrProtocolIRC; + case QCloudUICKeyChainStoreProtocolTypeNNTP: + return kSecAttrProtocolNNTP; + case QCloudUICKeyChainStoreProtocolTypePOP3: + return kSecAttrProtocolPOP3; + case QCloudUICKeyChainStoreProtocolTypeSMTP: + return kSecAttrProtocolSMTP; + case QCloudUICKeyChainStoreProtocolTypeSOCKS: + return kSecAttrProtocolSOCKS; + case QCloudUICKeyChainStoreProtocolTypeIMAP: + return kSecAttrProtocolIMAP; + case QCloudUICKeyChainStoreProtocolTypeLDAP: + return kSecAttrProtocolLDAP; + case QCloudUICKeyChainStoreProtocolTypeAppleTalk: + return kSecAttrProtocolAppleTalk; + case QCloudUICKeyChainStoreProtocolTypeAFP: + return kSecAttrProtocolAFP; + case QCloudUICKeyChainStoreProtocolTypeTelnet: + return kSecAttrProtocolTelnet; + case QCloudUICKeyChainStoreProtocolTypeSSH: + return kSecAttrProtocolSSH; + case QCloudUICKeyChainStoreProtocolTypeFTPS: + return kSecAttrProtocolFTPS; + case QCloudUICKeyChainStoreProtocolTypeHTTPS: + return kSecAttrProtocolHTTPS; + case QCloudUICKeyChainStoreProtocolTypeHTTPProxy: + return kSecAttrProtocolHTTPProxy; + case QCloudUICKeyChainStoreProtocolTypeHTTPSProxy: + return kSecAttrProtocolHTTPSProxy; + case QCloudUICKeyChainStoreProtocolTypeFTPProxy: + return kSecAttrProtocolFTPProxy; + case QCloudUICKeyChainStoreProtocolTypeSMB: + return kSecAttrProtocolSMB; + case QCloudUICKeyChainStoreProtocolTypeRTSP: + return kSecAttrProtocolRTSP; + case QCloudUICKeyChainStoreProtocolTypeRTSPProxy: + return kSecAttrProtocolRTSPProxy; + case QCloudUICKeyChainStoreProtocolTypeDAAP: + return kSecAttrProtocolDAAP; + case QCloudUICKeyChainStoreProtocolTypeEPPC: + return kSecAttrProtocolEPPC; + case QCloudUICKeyChainStoreProtocolTypeNNTPS: + return kSecAttrProtocolNNTPS; + case QCloudUICKeyChainStoreProtocolTypeLDAPS: + return kSecAttrProtocolLDAPS; + case QCloudUICKeyChainStoreProtocolTypeTelnetS: + return kSecAttrProtocolTelnetS; + case QCloudUICKeyChainStoreProtocolTypeIRCS: + return kSecAttrProtocolIRCS; + case QCloudUICKeyChainStoreProtocolTypePOP3S: + return kSecAttrProtocolPOP3S; + default: + return nil; + } +} + +- (CFTypeRef)authenticationTypeObject { + switch (_authenticationType) { + case QCloudUICKeyChainStoreAuthenticationTypeNTLM: + return kSecAttrAuthenticationTypeNTLM; + case QCloudUICKeyChainStoreAuthenticationTypeMSN: + return kSecAttrAuthenticationTypeMSN; + case QCloudUICKeyChainStoreAuthenticationTypeDPA: + return kSecAttrAuthenticationTypeDPA; + case QCloudUICKeyChainStoreAuthenticationTypeRPA: + return kSecAttrAuthenticationTypeRPA; + case QCloudUICKeyChainStoreAuthenticationTypeHTTPBasic: + return kSecAttrAuthenticationTypeHTTPBasic; + case QCloudUICKeyChainStoreAuthenticationTypeHTTPDigest: + return kSecAttrAuthenticationTypeHTTPDigest; + case QCloudUICKeyChainStoreAuthenticationTypeHTMLForm: + return kSecAttrAuthenticationTypeHTMLForm; + case QCloudUICKeyChainStoreAuthenticationTypeDefault: + return kSecAttrAuthenticationTypeDefault; + default: + return nil; + } +} + +- (CFTypeRef)accessibilityObject { + switch (_accessibility) { + case QCloudUICKeyChainStoreAccessibilityWhenUnlocked: + return kSecAttrAccessibleWhenUnlocked; + case QCloudUICKeyChainStoreAccessibilityAfterFirstUnlock: + return kSecAttrAccessibleAfterFirstUnlock; + case QCloudUICKeyChainStoreAccessibilityAlways: + return kSecAttrAccessibleAlways; + case QCloudUICKeyChainStoreAccessibilityWhenPasscodeSetThisDeviceOnly: + return kSecAttrAccessibleWhenPasscodeSetThisDeviceOnly; + case QCloudUICKeyChainStoreAccessibilityWhenUnlockedThisDeviceOnly: + return kSecAttrAccessibleWhenUnlockedThisDeviceOnly; + case QCloudUICKeyChainStoreAccessibilityAfterFirstUnlockThisDeviceOnly: + return kSecAttrAccessibleAfterFirstUnlockThisDeviceOnly; + case QCloudUICKeyChainStoreAccessibilityAlwaysThisDeviceOnly: + return kSecAttrAccessibleAlwaysThisDeviceOnly; + default: + return nil; + } +} + ++ (NSError *)argumentError:(NSString *)message { + NSError *error = [NSError errorWithDomain:QCloudUICKeyChainStoreErrorDomain + code:QCloudUICKeyChainStoreErrorInvalidArguments + userInfo:@{ NSLocalizedDescriptionKey : message }]; + NSLog(@"error: [%@] %@", @(error.code), error.localizedDescription); + return error; +} + ++ (NSError *)conversionError:(NSString *)message { + NSError *error = [NSError errorWithDomain:QCloudUICKeyChainStoreErrorDomain code:-67594 userInfo:@{ NSLocalizedDescriptionKey : message }]; + NSLog(@"error: [%@] %@", @(error.code), error.localizedDescription); + return error; +} + ++ (NSError *)securityError:(OSStatus)status { + NSString *message = @"Security error has occurred."; +#if TARGET_OS_MAC && !TARGET_OS_IPHONE + CFStringRef description = SecCopyErrorMessageString(status, NULL); + if (description) { + message = (__bridge_transfer NSString *)description; + } +#endif + NSError *error = [NSError errorWithDomain:QCloudUICKeyChainStoreErrorDomain code:status userInfo:@{ NSLocalizedDescriptionKey : message }]; + NSLog(@"OSStatus error: [%@] %@", @(error.code), error.localizedDescription); + return error; +} + ++ (NSError *)unexpectedError:(NSString *)message { + NSError *error = [NSError errorWithDomain:QCloudUICKeyChainStoreErrorDomain code:-99999 userInfo:@{ NSLocalizedDescriptionKey : message }]; + NSLog(@"error: [%@] %@", @(error.code), error.localizedDescription); + return error; +} + +@end + +@implementation QCloudUICKeyChainStore (Deprecation) + +- (void)synchronize { + // Deprecated, calling this method is no longer required +} + +- (BOOL)synchronizeWithError:(NSError *__autoreleasing *)error { + // Deprecated, calling this method is no longer required + return true; +} + +@end diff --git a/Pods/QCloudCore/QCloudCore/Classes/Base/QCloudClientBase/QCloudClientContext.h b/Pods/QCloudCore/QCloudCore/Classes/Base/QCloudClientBase/QCloudClientContext.h new file mode 100644 index 0000000..0863085 --- /dev/null +++ b/Pods/QCloudCore/QCloudCore/Classes/Base/QCloudClientBase/QCloudClientContext.h @@ -0,0 +1,44 @@ +// +// QCloudClientContext.h +// Pods +// +// Created by Dong Zhao on 2017/3/31. +// +// + +#import +FOUNDATION_EXPORT NSString *const QCloudClientContextVersion; +FOUNDATION_EXPORT NSString *const QCloudClientContextHeader; +FOUNDATION_EXPORT NSString *const QCloudClientContextHeaderEncoding; +@interface QCloudClientContext : NSObject +#pragma mark - App Details +@property (nonatomic, strong, readonly) NSString *installationId; +@property (nonatomic, strong) NSString *appVersion; +@property (nonatomic, strong) NSString *appBuild; +@property (nonatomic, strong) NSString *appPackageName; +@property (nonatomic, strong) NSString *appName; + +#pragma mark - Device Details +@property (nonatomic, strong) NSString *devicePlatformVersion; +@property (nonatomic, strong) NSString *devicePlatform; +@property (nonatomic, strong) NSString *deviceManufacturer; +@property (nonatomic, strong) NSString *deviceModel; +@property (nonatomic, strong) NSString *deviceModelVersion; +@property (nonatomic, strong) NSString *deviceLocale; + +#pragma mark - Custom Attributes +@property (nonatomic, strong) NSDictionary *customAttributes; + +#pragma mark - Service Details +@property (nonatomic, strong, readonly) NSDictionary *serviceDetails; + +- (instancetype)init; + +- (NSDictionary *)dictionaryRepresentation; + +- (NSString *)JSONString; + +- (NSString *)base64EncodedJSONString; + +- (void)setDetails:(id)details forService:(NSString *)service; +@end diff --git a/Pods/QCloudCore/QCloudCore/Classes/Base/QCloudClientBase/QCloudClientContext.m b/Pods/QCloudCore/QCloudCore/Classes/Base/QCloudClientBase/QCloudClientContext.m new file mode 100644 index 0000000..efd9343 --- /dev/null +++ b/Pods/QCloudCore/QCloudCore/Classes/Base/QCloudClientBase/QCloudClientContext.m @@ -0,0 +1,192 @@ +// +// QCloudClientContext.m +// Pods +// +// Created by Dong Zhao on 2017/3/31. +// +// + +#import "QCloudClientContext.h" +#import "QCloudUICKeyChainStore.h" +#import +#import +#import "QCloudLogger.h" +#if TARGET_OS_IOS +#import +#endif + +// Public constants +NSString *const QCloudClientContextVersion = @"1.0"; +NSString *const QCloudClientContextHeader = @"x-qcloud-Client-Context"; +NSString *const QCloudClientContextHeaderEncoding = @"x-qcloud-Client-Context-Encoding"; + +// Private constants +static NSString *const QCloudClientContextUnknown = @"Unknown"; +static NSString *const QCloudClientContextKeychainService = @"com.qcloud.ClientContext"; +static NSString *const QCloudClientContextKeychainInstallationIdKey = @"com.qcloud.QCloudClientContextKeychainInstallationIdKey"; +@implementation QCloudClientContext +#pragma mark - Public methods +#if TARGET_OS_IOS + +- (instancetype)init { + if (self = [super init]) { + QCloudUICKeyChainStore *keychain = [QCloudUICKeyChainStore keyChainStoreWithService:QCloudClientContextKeychainService]; + _installationId = [keychain stringForKey:QCloudClientContextKeychainInstallationIdKey]; + if (!_installationId) { + static dispatch_once_t onceToken; + dispatch_once(&onceToken, ^{ + [keychain setString:[[NSUUID UUID] UUIDString] forKey:QCloudClientContextKeychainInstallationIdKey]; + }); + _installationId = [keychain stringForKey:QCloudClientContextKeychainInstallationIdKey]; + } + if (_installationId == nil) { + QCloudLogErrorE(@"",@"Failed to generate installation_id"); + } + + NSString *appVersion = [[[NSBundle mainBundle] infoDictionary] objectForKey:@"CFBundleShortVersionString"]; + NSString *appBuild = [[[NSBundle mainBundle] infoDictionary] objectForKey:@"CFBundleVersion"]; + NSString *appPackageName = [[[NSBundle mainBundle] infoDictionary] objectForKey:@"CFBundleIdentifier"]; + NSString *appName = [[[NSBundle mainBundle] infoDictionary] objectForKey:@"CFBundleDisplayName"]; + + // App details + _appVersion = appVersion ? appVersion : QCloudClientContextUnknown; + _appBuild = appBuild ? appBuild : QCloudClientContextUnknown; + _appPackageName = appPackageName ? appPackageName : QCloudClientContextUnknown; + _appName = appName ? appName : QCloudClientContextUnknown; + + // Device Details + UIDevice *currentDevice = [UIDevice currentDevice]; + NSString *autoUpdatingLoaleIdentifier = [[NSLocale autoupdatingCurrentLocale] localeIdentifier]; + _devicePlatform = [currentDevice systemName] ? [currentDevice systemName] : QCloudClientContextUnknown; + _deviceModel = [currentDevice model] ? [currentDevice model] : QCloudClientContextUnknown; + _deviceModelVersion = [self deviceModelVersionCode] ? [self deviceModelVersionCode] : QCloudClientContextUnknown; + _devicePlatformVersion = [currentDevice systemVersion] ? [currentDevice systemVersion] : QCloudClientContextUnknown; + _deviceManufacturer = @"apple"; + _deviceLocale = autoUpdatingLoaleIdentifier ? autoUpdatingLoaleIdentifier : QCloudClientContextUnknown; + + _customAttributes = @{}; + _serviceDetails = [NSMutableDictionary new]; + } + + return self; +} + +- (NSDictionary *)dictionaryRepresentation { + NSDictionary *clientDetails = @{ + @"installation_id" : self.installationId ? self.installationId : @"UNKNOWN_INSTALLATION_ID", + @"app_package_name" : self.appPackageName, + @"app_version_name" : self.appVersion, + @"app_version_code" : self.appBuild, + @"app_title" : self.appName + }; + + NSDictionary *deviceDetails = @{ + @"model" : self.deviceModel, + @"model_version" : self.deviceModelVersion, + @"make" : self.deviceManufacturer, + @"platform" : self.devicePlatform, + @"platform_version" : self.devicePlatformVersion, + @"locale" : self.deviceLocale + }; + + NSDictionary *clientContext = @{ + @"version" : QCloudClientContextVersion, + @"client" : clientDetails, + @"env" : deviceDetails, + @"custom" : self.customAttributes, + @"services" : self.serviceDetails + }; + + return clientContext; +} + +- (NSString *)JSONString { + NSDictionary *JSONObject = [self dictionaryRepresentation]; + NSError *error = nil; + NSData *JSONData = [NSJSONSerialization dataWithJSONObject:JSONObject options:kNilOptions error:&error]; + if (!JSONData) { + QCloudLogErrorE(@"",@"Failed to serialize JSON Data. [%@]", error); + return @""; + } + + return [[NSString alloc] initWithData:JSONData encoding:NSUTF8StringEncoding]; +} + +- (NSString *)base64EncodedJSONString { + return [[[self JSONString] dataUsingEncoding:NSUTF8StringEncoding] base64EncodedStringWithOptions:kNilOptions]; +} + +- (void)setDetails:(id)details forService:(NSString *)service { + if (service) { + [self.serviceDetails setValue:details forKey:service]; + } else { + QCloudLogErrorE(@"",@"[ERROR]'service' cannot be nil."); + } +} + +- (NSString *)description { + return [NSString stringWithFormat:@"%@", [self dictionaryRepresentation]]; +} + +#pragma mark - Getter and setters + +- (void)setAppVersion:(NSString *)appVersion { + _appVersion = appVersion ? appVersion : QCloudClientContextUnknown; +} + +- (void)setAppBuild:(NSString *)appBuild { + _appBuild = appBuild ? appBuild : QCloudClientContextUnknown; +} + +- (void)setAppPackageName:(NSString *)appPackageName { + _appPackageName = appPackageName ? appPackageName : QCloudClientContextUnknown; +} + +- (void)setAppName:(NSString *)appName { + _appName = appName ? appName : QCloudClientContextUnknown; +} + +- (void)setDevicePlatformVersion:(NSString *)devicePlatformVersion { + _devicePlatformVersion = devicePlatformVersion ? devicePlatformVersion : QCloudClientContextUnknown; +} + +- (void)setDevicePlatform:(NSString *)devicePlatform { + _devicePlatform = devicePlatform ? devicePlatform : QCloudClientContextUnknown; +} + +- (void)setDeviceManufacturer:(NSString *)deviceManufacturer { + _deviceManufacturer = deviceManufacturer ? deviceManufacturer : QCloudClientContextUnknown; +} + +- (void)setDeviceModel:(NSString *)deviceModel { + _deviceModel = deviceModel ? deviceModel : QCloudClientContextUnknown; +} + +- (void)setDeviceModelVersion:(NSString *)deviceModelVersion { + _deviceModelVersion = deviceModelVersion ? deviceModelVersion : QCloudClientContextUnknown; +} + +- (void)setDeviceLocale:(NSString *)deviceLocale { + _deviceLocale = deviceLocale ? deviceLocale : QCloudClientContextUnknown; +} + +#pragma mark - Internal + +// For model translations see http://theiphonewiki.com/wiki/Models +- (NSString *)deviceModelVersionCode { + int mib[2]; + size_t len; + char *machine; + + mib[0] = CTL_HW; + mib[1] = HW_MACHINE; + sysctl(mib, 2, NULL, &len, NULL, 0); + machine = malloc(len); + sysctl(mib, 2, machine, &len, NULL, 0); + + NSString *modelVersionCode = [NSString stringWithCString:machine encoding:NSASCIIStringEncoding]; + free(machine); + return modelVersionCode; +} +#endif +@end diff --git a/Pods/QCloudCore/QCloudCore/Classes/Base/QCloudClientBase/Request/QCloudAbstractRequest_FakeRequest.h b/Pods/QCloudCore/QCloudCore/Classes/Base/QCloudClientBase/Request/QCloudAbstractRequest_FakeRequest.h new file mode 100644 index 0000000..bde001c --- /dev/null +++ b/Pods/QCloudCore/QCloudCore/Classes/Base/QCloudClientBase/Request/QCloudAbstractRequest_FakeRequest.h @@ -0,0 +1,17 @@ +// +// QCloudAbstractRequest_FakeRequest.h +// Pods +// +// Created by Dong Zhao on 2017/6/21. +// +// + +#import "QCloudAbstractRequest.h" + +@interface QCloudAbstractRequest () + +/** + 伪装一个请求开发 + */ +- (void)fakeStart; +@end diff --git a/Pods/QCloudCore/QCloudCore/Classes/Base/QCloudClientBase/Request/QCloudBizHTTPRequest.h b/Pods/QCloudCore/QCloudCore/Classes/Base/QCloudClientBase/Request/QCloudBizHTTPRequest.h new file mode 100644 index 0000000..1a34710 --- /dev/null +++ b/Pods/QCloudCore/QCloudCore/Classes/Base/QCloudClientBase/Request/QCloudBizHTTPRequest.h @@ -0,0 +1,74 @@ +// +// QCloudBizHTTPRequest.h +// Pods +// +// Created by Dong Zhao on 2017/3/13. +// +// + +#import "QCloudHTTPRequest.h" +#import "QCloudSignatureProvider.h" +@class QCloudTask; +@class QCloudSignatureFields; +@class QCloudSignature; + +NS_ASSUME_NONNULL_BEGIN + +/** + * 将服务器返回数据解析成制定的class + */ + +extern _Nonnull QCloudResponseSerializerBlock QCloudResponseObjectSerilizerBlock(Class modelClass); + +/** + * 根据特定的response模式解析其中的数据 + */ +extern _Nonnull QCloudResponseSerializerBlock QCloudResponseCOSNormalRSPSerilizerBlock; + +@class QCloudServiceConfiguration; +@interface QCloudBizHTTPRequest : QCloudHTTPRequest + +// 若 request中设置了 redential ,则回调该代理方法。 +@property (nonatomic, strong) id signatureProvider; + +/// 是否禁用路径检查,默认不禁用。 +@property (assign, nonatomic) BOOL objectKeySimplifyCheck; + +/* + 在进行HTTP请求的时候,可以通过设置该参数来设置自定义的一些头部信息。 + 通常情况下,携带特定的额外HTTP头部可以使用某项功能,如果是这类需求,可以通过设置该属性来实现。 + */ +@property (strong, nonatomic) NSMutableDictionary *customHeaders; +@property (strong, nonatomic) NSString *regionName; +@property (copy, nonatomic) NSArray *scopesArray; +/** + 通过指定该属性可以设置签名串是放在请求头部还是url中,默认为NO,签名串放在请求头部。 + */ +@property (nonatomic, assign) BOOL isSignedInURL; +/** + 请求序列化的过程 + + @return 请求序列化的过程 + */ +- (NSArray *_Nonnull)customResponseSerializers; + +/** + 返回反序列化过程 + + @return 返回反序列化过程 + */ +- (NSArray *)customRequestSerizliers; + +- (void)configureReuqestSerializer:(QCloudRequestSerializer *)requestSerializer responseSerializer:(QCloudResponseSerializer *)responseSerializer; + +- (BOOL)customBuildRequestData:(NSError *__autoreleasing *)error; + +- (QCloudSignatureFields *)signatureFields; + +- (void)loadQCloudSignature; +- (void)setCOSServerSideEncyption; +- (void)setCOSServerSideEncyptionWithCustomerKey:(NSString *)customerKey; +- (NSString *)simplifyPath:(NSString *)path; +@end + +NS_ASSUME_NONNULL_END diff --git a/Pods/QCloudCore/QCloudCore/Classes/Base/QCloudClientBase/Request/QCloudBizHTTPRequest.m b/Pods/QCloudCore/QCloudCore/Classes/Base/QCloudClientBase/Request/QCloudBizHTTPRequest.m new file mode 100644 index 0000000..4d15bb7 --- /dev/null +++ b/Pods/QCloudCore/QCloudCore/Classes/Base/QCloudClientBase/Request/QCloudBizHTTPRequest.m @@ -0,0 +1,298 @@ +// +// QCloudBizHTTPRequest.m +// Pods +// +// Created by Dong Zhao on 2017/3/13. +// +// + +#import "QCloudBizHTTPRequest.h" +#import "QCloudServiceConfiguration.h" + +#import "NSError+QCloudNetworking.h" +#import "QCloudNetResponse.h" +#import "QCloudObjectModel.h" +#import "QCloudSignatureFields.h" +#import "QCloudHTTPSessionManager.h" +#import "QCloudService.h" +#import +#import +#import "NSObject+QCloudModelTool.h" +#import "QCloudLogger.h" +#import "QCloudAuthentationV5Creator.h" +#import "NSURLRequest+COS.h" +NS_ASSUME_NONNULL_BEGIN + +QCloudResponseSerializerBlock QCloudResponseObjectSerilizerBlock(Class modelClass) { + return ^(NSHTTPURLResponse *response, id inputData, NSError *__autoreleasing *error) { + if([inputData isKindOfClass:[NSDictionary class]]){ + return [modelClass qcloud_modelWithDictionary:inputData]; + } + if([inputData isKindOfClass:[NSArray class]]){ + id array = [modelClass jsonsToModelsWithJsons:inputData]; + return array; + + } + + if (error != NULL) { + *error = [NSError qcloud_errorWithCode:QCloudNetworkErrorCodeResponseDataTypeInvalid + message:[NSString stringWithFormat:@"ServerError:希望获得字典类型数据,但是得到%@", [inputData class]]]; + + } + return (id)nil; + + + }; +} + + +QCloudResponseSerializerBlock QCloudResponseCOSNormalRSPSerilizerBlock + = ^(NSHTTPURLResponse *response, id inputData, NSError *__autoreleasing *error) { + NSError *localError; + QCloudNetResponse *transformData = QCloudResponseObjectSerilizerBlock([QCloudNetResponse class])(response, inputData, &localError); + if (localError) { + if (error != NULL) { + *error = localError; + } + return (id)nil; + } + if (![transformData isKindOfClass:[QCloudNetResponse class]]) { + if (error != NULL) { + *error = [NSError + qcloud_errorWithCode:QCloudNetworkErrorCodeResponseDataTypeInvalid + message:[NSString stringWithFormat:@"ServerError:希望获得QCloudNetResponse类型数据,但是得到%@", inputData]]; + } + return (id)nil; + } + if (transformData.code != 0) { + if (error != NULL) { + *error = [NSError qcloud_errorWithCode:transformData.code message:transformData.message]; + } + return (id)nil; + } + return (id)(transformData.data); + }; + +@interface QCloudBizHTTPRequest () +@property (nonatomic,assign)NSInteger semp_flag; +@property (nonatomic,strong,nullable)dispatch_semaphore_t semaphore; +@end + + +@implementation QCloudBizHTTPRequest + +- (instancetype)init { + self = [super init]; + if (self) { + _customHeaders = [NSMutableDictionary dictionary]; + } + return self; +} +- (void)loadConfigureBlock { + __weak typeof(self) weakSelf = self; + [self setConfigureBlock:^(QCloudRequestSerializer *requestSerializer, QCloudResponseSerializer *responseSerializer) { + [weakSelf configureReuqestSerializer:requestSerializer responseSerializer:responseSerializer]; + }]; +} + +- (void)configureReuqestSerializer:(QCloudRequestSerializer *)requestSerializer responseSerializer:(QCloudResponseSerializer *)responseSerializer { + _customHeaders = [NSMutableDictionary dictionary]; + [requestSerializer setSerializerBlocks:[self customRequestSerizliers]]; + [responseSerializer setSerializerBlocks:[self customResponseSerializers]]; +} +- (NSArray *)customResponseSerializers { + return @[]; +} + +- (NSArray *)customRequestSerizliers { + return @[]; +} + +- (BOOL)buildRequestData:(NSError *__autoreleasing *)error { + BOOL ret = [super buildRequestData:error]; + if (!ret) { + return ret; + } + + return YES; +} +- (BOOL)customBuildRequestData:(NSError *__autoreleasing *)error { + return YES; +} + +- (QCloudSignatureFields *)signatureFields { + return [QCloudSignatureFields new]; +} + +- (BOOL)prepareInvokeURLRequest:(NSMutableURLRequest *)urlRequest error:(NSError *__autoreleasing *)error { + + if (self.signature && self.signature.signature.length > 0) { + QCloudLogDebugP(@"Signature",@"本次请求使用单次签名signature:%@",self.signature.signature); + QCloudSignature *signature = self.signature; + if (!self.isSignedInURL) { + [urlRequest setValue:signature.signature forHTTPHeaderField:@"Authorization"]; + } else { + NSString *urlStr; + NSRange rangeOfQ = [urlStr rangeOfString:@"?"]; + if (rangeOfQ.location == NSNotFound) { + urlStr = [NSString stringWithFormat:@"%@?%@", urlRequest.URL.absoluteString, signature.signature]; + } else { + urlStr = [NSString stringWithFormat:@"%@&%@", urlRequest.URL.absoluteString, signature.signature]; + } + if (signature.token) { + urlStr = [NSString stringWithFormat:@"%@&x-cos-security-token=%@", urlStr, signature.token]; + } + urlRequest.URL = [[NSURL URLWithString:urlStr] copy]; + } + return YES; + } + + if (self.credential && self.credential.secretID.length > 0 && self.credential.secretKey.length > 0) { + if (self.credential.token) { + QCloudLogDebugP(@"Signature",@"本次请求使用单次临时密钥:%@,secretID:%@",urlRequest.URL.absoluteString,self.credential.secretID); + }else{ + QCloudLogDebugP(@"Signature",@"本次请求使用永久密钥:%@,secretID:%@",urlRequest.URL.absoluteString,self.credential.secretID); + } + + QCloudAuthentationV5Creator *creator = [[QCloudAuthentationV5Creator alloc] initWithCredential:self.credential]; + urlRequest.shouldSignedList = self.shouldSignedList; + QCloudSignature *signature = [creator signatureForData:(NSMutableURLRequest *)urlRequest]; + if (!self.isSignedInURL) { + [urlRequest setValue:signature.signature forHTTPHeaderField:@"Authorization"]; + } else { + NSString *urlStr; + NSRange rangeOfQ = [urlStr rangeOfString:@"?"]; + if (rangeOfQ.location == NSNotFound) { + urlStr = [NSString stringWithFormat:@"%@?%@", urlRequest.URL.absoluteString, signature.signature]; + } else { + urlStr = [NSString stringWithFormat:@"%@&%@", urlRequest.URL.absoluteString, signature.signature]; + } + if (signature.token) { + urlStr = [NSString stringWithFormat:@"%@&x-cos-security-token=%@", urlStr, signature.token]; + } + urlRequest.URL = [[NSURL URLWithString:urlStr] copy]; + } + return YES; + } + + if(!self.signatureProvider){ + QCloudLogDebugP(@"Signature",@"本次请求使用匿名上传:%@",urlRequest.URL.absoluteString); + return YES; + } + + self.semaphore = dispatch_semaphore_create(0); + self.semp_flag = 1; + __block NSError *localError; + __block BOOL isSigned; + + dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_HIGH, 0), ^{ + urlRequest.shouldSignedList = self.shouldSignedList; + [self.signatureProvider + signatureWithFields:self.signatureFields + request:self + urlRequest:urlRequest + compelete:^(QCloudSignature *signature, NSError *error) { + QCloudLogDebugP(@"Signature",@"本次请求使用临时密钥上传:%@,signature:%@",urlRequest.URL.absoluteString,signature.signature); + if (error) { + localError = error; + } else { + if (signature.signature) { + if (!self.isSignedInURL) { + [urlRequest setValue:signature.signature forHTTPHeaderField:@"Authorization"]; + } else { + NSString *urlStr; + NSRange rangeOfQ = [urlStr rangeOfString:@"?"]; + if (rangeOfQ.location == NSNotFound) { + urlStr = [NSString stringWithFormat:@"%@?%@", urlRequest.URL.absoluteString, signature.signature]; + } else { + urlStr = [NSString stringWithFormat:@"%@&%@", urlRequest.URL.absoluteString, signature.signature]; + } + if (signature.token) { + urlStr = [NSString stringWithFormat:@"%@&x-cos-security-token=%@", urlStr, signature.token]; + } + urlRequest.URL = [[NSURL URLWithString:urlStr] copy]; + } + isSigned = YES; + } else { + // null authorization + } + } + dispatch_semaphore_signal(self.semaphore); + self.semp_flag = 2; + }]; + }); + + if (self.semp_flag == 1) { + dispatch_semaphore_wait(self.semaphore, dispatch_time(DISPATCH_TIME_NOW, 15 * NSEC_PER_SEC)); + } + + + if (localError) { + if (NULL != error) { + *error = localError; + } + return NO; + } else if (!isSigned) { + if (NULL != error) { + *error = [NSError + qcloud_errorWithCode:QCloudNetworkErrorCodeCredentialNotReady + message:nil + infos:@{ + @"Description" : + @"InvalidCredentials:获取签名超时,请检查是否实现签名回调,签名回调是否有调用,并且在最后是否有调用 ContinueBlock 传入签名" + }]; + } + return NO; + } else { + return YES; + } +} +- (void)loadQCloudSignature { +} +NSString *EncrytNSDataMD5Base64(NSData *data) { + if (!data) { + return nil; + } + + unsigned char result[CC_MD5_DIGEST_LENGTH]; + CC_MD5(data.bytes, (CC_LONG)data.length, result); // This is the md5 call + NSData *md5data = [NSData dataWithBytes:result length:CC_MD5_DIGEST_LENGTH]; + return [md5data base64EncodedStringWithOptions:0]; +} + +- (void)dealloc{ + if (self.semp_flag == 1) { + dispatch_semaphore_signal(self.semaphore); + } +} + +- (void)setCOSServerSideEncyption { + self.customHeaders[@"x-cos-server-side-encryption"] = @"AES256"; +} + +- (void)setCOSServerSideEncyptionWithCustomerKey:(NSString *)customerKey { + NSData *data = [customerKey dataUsingEncoding:NSUTF8StringEncoding]; + NSString *excryptAES256Key = [data base64EncodedStringWithOptions:0]; // base64格式的字符串 + NSString *base64md5key = EncrytNSDataMD5Base64(data); + self.customHeaders[@"x-cos-server-side-encryption-customer-algorithm"] = @"AES256"; + self.customHeaders[@"x-cos-server-side-encryption-customer-key"] = excryptAES256Key; + self.customHeaders[@"x-cos-server-side-encryption-customer-key-MD5"] = base64md5key; +} + +- (NSString *)simplifyPath:(NSString *)path { + NSArray *names = [path componentsSeparatedByString:@"/"]; + NSMutableArray *stack = [NSMutableArray array]; + for (NSString *name in names) { + if ([name isEqualToString:@".."]) { + if (stack.count > 0) { + [stack removeLastObject]; + } + } else if (name.length > 0 && ![name isEqualToString:@"."]) { + [stack addObject:name]; + } + } + return [@"/" stringByAppendingString:[stack componentsJoinedByString:@"/"]]; +} +@end + +NS_ASSUME_NONNULL_END diff --git a/Pods/QCloudCore/QCloudCore/Classes/Base/QCloudClientBase/Request/QCloudNetResponse.h b/Pods/QCloudCore/QCloudCore/Classes/Base/QCloudClientBase/Request/QCloudNetResponse.h new file mode 100644 index 0000000..5f30260 --- /dev/null +++ b/Pods/QCloudCore/QCloudCore/Classes/Base/QCloudClientBase/Request/QCloudNetResponse.h @@ -0,0 +1,35 @@ +// +// QCloudNetResponse.h +// Pods +// +// Created by Dong Zhao on 2017/3/9. +// +// + +#import "QCloudModel.h" + +/** + COS 服务返回数据的通用模型 + */ +@interface QCloudNetResponse : QCloudModel + +/** + 业务逻辑结果代码,非0为错误代码 + */ +@property (nonatomic, assign) int code; + +/** + 用于追踪本次请求的id + */ +@property (nonatomic, strong) NSString *request_id; + +/** + 请求的数据内容 + */ +@property (nonatomic, strong) NSDictionary *data; + +/** + 描述了改次请求结果的信息 + */ +@property (nonatomic, strong) NSString *message; +@end diff --git a/Pods/QCloudCore/QCloudCore/Classes/Base/QCloudClientBase/Request/QCloudNetResponse.m b/Pods/QCloudCore/QCloudCore/Classes/Base/QCloudClientBase/Request/QCloudNetResponse.m new file mode 100644 index 0000000..584bb42 --- /dev/null +++ b/Pods/QCloudCore/QCloudCore/Classes/Base/QCloudClientBase/Request/QCloudNetResponse.m @@ -0,0 +1,13 @@ +// +// QCloudNetResponse.m +// Pods +// +// Created by Dong Zhao on 2017/3/9. +// +// + +#import "QCloudNetResponse.h" + +@implementation QCloudNetResponse + +@end diff --git a/Pods/QCloudCore/QCloudCore/Classes/Base/QCloudClientBase/Service/QCloudConfiguration.h b/Pods/QCloudCore/QCloudCore/Classes/Base/QCloudClientBase/Service/QCloudConfiguration.h new file mode 100644 index 0000000..7c65d7b --- /dev/null +++ b/Pods/QCloudCore/QCloudCore/Classes/Base/QCloudClientBase/Service/QCloudConfiguration.h @@ -0,0 +1,67 @@ +// +// QCloudCommenService.h +// Pods +// +// Created by karisli(李雪) on 2021/7/14. +// + +#import + + +NS_ASSUME_NONNULL_BEGIN + +typedef NS_ENUM(NSUInteger, QCloudRequestNetworkStrategy) { + /** + * 默认策略,即无策略。 + */ + QCloudRequestNetworkStrategyDefault = 0, + /** + * 激进策略 + */ + QCloudRequestNetworkStrategyAggressive, + /** + * 保守策略 + */ + QCloudRequestNetworkStrategyConservative, +}; + +NSString * QCloudRequestNetworkStrategyToString(QCloudRequestNetworkStrategy strategy); + +@interface QCloudConfiguration : NSObject + +/** + 是否关闭分享Log日志的功能 + */ +@property (nonatomic, assign) BOOL isCloseShareLog; + +@property (nonatomic, assign) NSTimeInterval timeoutInterval; + +@property (nonatomic, assign) BOOL enableQuic; + +/// 是否允许重定向 默认不允许 +@property (nonatomic, assign) BOOL enableGlobalRedirection; + +// 禁用主备域名切换。默认不禁用。NO:不禁用 YES:禁用 +@property (nonatomic, assign) BOOL disableChangeHost; + +/// 是否禁止上传空文件 NO 不禁止。YES 禁止 +@property (nonatomic, assign) BOOL disableUploadZeroData; + + +/// 是否全局禁用HTTPDNSPrefetch功能获取到IP。 +@property (nonatomic, assign) BOOL disableGlobalHTTPDNSPrefetch; + +/// 是否全局禁用HTTPS验证,默认为NO 不禁用。 +@property (nonatomic, assign) BOOL disableGlobalAuthentication; + +@property (nonatomic, assign) QCloudRequestNetworkStrategy networkStrategy; + +/// 配置sdk双向认证,设置客户端证书 +@property (nonatomic,strong)NSData *clientCertificateData; + +/// 配置sdk双向认证,设置客户端证书密码 +@property (nonatomic,strong)NSString *password; + +@end + +NS_ASSUME_NONNULL_END diff --git a/Pods/QCloudCore/QCloudCore/Classes/Base/QCloudClientBase/Service/QCloudConfiguration.m b/Pods/QCloudCore/QCloudCore/Classes/Base/QCloudClientBase/Service/QCloudConfiguration.m new file mode 100644 index 0000000..de5298c --- /dev/null +++ b/Pods/QCloudCore/QCloudCore/Classes/Base/QCloudClientBase/Service/QCloudConfiguration.m @@ -0,0 +1,34 @@ +// +// QCloudCommenService.m +// Pods +// +// Created by karisli(李雪) on 2021/7/14. +// + +#import "QCloudConfiguration.h" +#import "QCloudConfiguration_Private.h" + +NSString * QCloudRequestNetworkStrategyToString(QCloudRequestNetworkStrategy strategy){ + + if (strategy == QCloudRequestNetworkStrategyAggressive) { + return @"Aggressive"; + } + + if (strategy == QCloudRequestNetworkStrategyConservative) { + return @"Conservative"; + } + return nil; +} + +@implementation QCloudConfiguration +- (NSString *)userAgent { + NSString * (^UserAgent)(NSString *productKey) = ^(NSString *productKey) { + return [NSString stringWithFormat:@"%@-%@", productKey, self.productVersion]; + }; + if (self.userAgentProductKey.length && self.productVersion.length) { + return UserAgent(self.userAgentProductKey); + } else { + return nil; + } +} +@end diff --git a/Pods/QCloudCore/QCloudCore/Classes/Base/QCloudClientBase/Service/QCloudConfiguration_Private.h b/Pods/QCloudCore/QCloudCore/Classes/Base/QCloudClientBase/Service/QCloudConfiguration_Private.h new file mode 100644 index 0000000..57cc7b4 --- /dev/null +++ b/Pods/QCloudCore/QCloudCore/Classes/Base/QCloudClientBase/Service/QCloudConfiguration_Private.h @@ -0,0 +1,17 @@ +// +// QCloudConfiguration_Private.h +// Pods +// +// Created by Dong Zhao on 2017/4/11. +// +// + +#import "QCloudServiceConfiguration.h" +#import "QCloudEndPoint.h" + +@interface QCloudConfiguration () +@property (nonatomic, strong, readonly) NSString *userAgent; +@property (nonatomic, strong) NSString *userAgentProductKey; +@property (nonatomic, strong) NSString *productVersion; +@property (nonatomic, strong) NSString *bridge; +@end diff --git a/Pods/QCloudCore/QCloudCore/Classes/Base/QCloudClientBase/Service/QCloudEndPoint.h b/Pods/QCloudCore/QCloudCore/Classes/Base/QCloudClientBase/Service/QCloudEndPoint.h new file mode 100644 index 0000000..0569148 --- /dev/null +++ b/Pods/QCloudCore/QCloudCore/Classes/Base/QCloudClientBase/Service/QCloudEndPoint.h @@ -0,0 +1,60 @@ +// +// QCloudEndPoint.h +// Pods +// +// Created by Dong Zhao on 2017/3/31. +// +// + +#import +typedef NSString *QCloudRegion; +typedef NSString *QCloudServiceName; + +/** + QCloud 云服务的服务器地址,如果您继承该类,并且添加了自定义的参数,请一定要实现NSCopying协议 + QCloudServiceConfiguration 类种毕传参数 endpoint; + 表示您的服务所在的区域 + + */ +@interface QCloudEndPoint : NSObject { +@protected + QCloudRegion _regionName; + QCloudServiceName _serviceName; + NSURL *_serverURLLiteral; +} +/** + 是否启动HTTPS安全连接 + @default NO + */ +@property (nonatomic, assign) BOOL useHTTPS; +/** + 服务园区名称 + */ +@property (nonatomic, copy) QCloudRegion regionName; +/** + 服务的基础名称 + */ +@property (nonatomic, copy) QCloudServiceName serviceName; + +/** + 字面URL地址,改地址将作为一个字面量直接返回。 + */ +@property (nonatomic, strong, readonly) NSURL *serverURLLiteral; + +/** + 通过一个包含字面URL地址的变量初始化endpoint + + @param url 字面URL地址 + @return endpoint实例 + */ +- (instancetype)initWithLiteralURL:(NSURL *)url; + +/** + 通过存储桶名称和用户的appid构建服务地址 + + @param bucket 存储桶名称 + @param appID appid + @return 对指称的用户的存储桶提供服务的服务器地址 + */ +- (NSURL *)serverURLWithBucket:(NSString *)bucket appID:(NSString *)appID regionName:(NSString *)regionName; +@end diff --git a/Pods/QCloudCore/QCloudCore/Classes/Base/QCloudClientBase/Service/QCloudEndPoint.m b/Pods/QCloudCore/QCloudCore/Classes/Base/QCloudClientBase/Service/QCloudEndPoint.m new file mode 100644 index 0000000..fac767b --- /dev/null +++ b/Pods/QCloudCore/QCloudCore/Classes/Base/QCloudClientBase/Service/QCloudEndPoint.m @@ -0,0 +1,71 @@ +// +// QCloudEndPoint.m +// Pods +// +// Created by Dong Zhao on 2017/3/31. +// +// + +#import "QCloudEndPoint.h" +#import "QCloudError.h" +#import "QCloudURLTools.h" + +@interface QCloudEndPoint () +@property (nonatomic, strong) NSURL *serverURLLiteral; +@end + +@implementation QCloudEndPoint +- (instancetype)init { + self = [super init]; + if (!self) { + return self; + } + _useHTTPS = YES; + return self; +} +- (instancetype)initWithLiteralURL:(NSURL *)url { + self = [super init]; + if (!self) { + return self; + } + _serverURLLiteral = url; + if ([_serverURLLiteral.absoluteString.lowercaseString hasPrefix:QCloudHTTPSScheme]) { + _useHTTPS = YES; + } else { + _useHTTPS = NO; + } + return self; +} + +- (NSURL *)serverURLLiteral { + if (!_serverURLLiteral) { + return nil; + } + NSString *url = _serverURLLiteral.absoluteString; + if ([url.lowercaseString hasPrefix:QCloudHTTPSScheme]) { + url = [url substringFromIndex:QCloudHTTPSScheme.length]; + } else if ([url.lowercaseString hasPrefix:QCloudHTTPScheme]) { + url = [url substringFromIndex:QCloudHTTPScheme.length]; + } + if (self.useHTTPS) { + url = [QCloudHTTPSScheme stringByAppendingString:url]; + } else { + url = [QCloudHTTPScheme stringByAppendingString:url]; + } + return [NSURL URLWithString:url]; +} + +- (NSURL *)serverURLWithBucket:(NSString *)bucket appID:(NSString *)appID regionName:(NSString *)regionName { + NSString *msg = @"请在子类中实现该方法,在父类中该方法不关心具体业务的拼装!!!"; + @throw [NSException exceptionWithName:QCloudErrorDomain reason:msg userInfo:@{ NSLocalizedDescriptionKey : msg }]; +} + +- (instancetype)copyWithZone:(NSZone *)zone { + QCloudEndPoint *endpoint = [[[self class] allocWithZone:zone] init]; + endpoint.useHTTPS = self.useHTTPS; + endpoint.serviceName = self.serviceName; + endpoint.regionName = self.regionName; + endpoint.serverURLLiteral = _serverURLLiteral; + return endpoint; +} +@end diff --git a/Pods/QCloudCore/QCloudCore/Classes/Base/QCloudClientBase/Service/QCloudError.h b/Pods/QCloudCore/QCloudCore/Classes/Base/QCloudClientBase/Service/QCloudError.h new file mode 100644 index 0000000..43c52a2 --- /dev/null +++ b/Pods/QCloudCore/QCloudCore/Classes/Base/QCloudClientBase/Service/QCloudError.h @@ -0,0 +1,10 @@ +// +// QCloudError.h +// Pods +// +// Created by Dong Zhao on 2017/3/31. +// +// + +#import +FOUNDATION_EXTERN NSString *const QCloudErrorDomain; diff --git a/Pods/QCloudCore/QCloudCore/Classes/Base/QCloudClientBase/Service/QCloudError.m b/Pods/QCloudCore/QCloudCore/Classes/Base/QCloudClientBase/Service/QCloudError.m new file mode 100644 index 0000000..9248b7a --- /dev/null +++ b/Pods/QCloudCore/QCloudCore/Classes/Base/QCloudClientBase/Service/QCloudError.m @@ -0,0 +1,10 @@ +// +// QCloudError.m +// Pods +// +// Created by Dong Zhao on 2017/3/31. +// +// + +#import "QCloudError.h" +NSString *const QCloudErrorDomain = @"com.tencent.qcloud.error"; diff --git a/Pods/QCloudCore/QCloudCore/Classes/Base/QCloudClientBase/Service/QCloudService.h b/Pods/QCloudCore/QCloudCore/Classes/Base/QCloudClientBase/Service/QCloudService.h new file mode 100644 index 0000000..934fd4c --- /dev/null +++ b/Pods/QCloudCore/QCloudCore/Classes/Base/QCloudClientBase/Service/QCloudService.h @@ -0,0 +1,76 @@ +// +// QCloudService.h +// Pods +// +// Created by Dong Zhao on 2017/3/13. +// +// + +#import +#import "QCloudServiceConfiguration.h" +#import "QCloudBizHTTPRequest.h" +@class QCloudSignature; +@class QCloudHTTPSessionManager; +NS_ASSUME_NONNULL_BEGIN + +@class QCloudHTTPRequest; +@class QCloudSignatureFields; +@class UIApplication; +@interface QCloudService : NSObject { +@protected + QCloudServiceConfiguration *_configuration; +} +/** + 改服务的配置信息,您可以通过在初始化接口中设置改参数来控制服务的行为。该属性为只读,只能在初始化中配置一次。后序的修改会无效。 + */ +@property (nonatomic, strong, readonly) QCloudServiceConfiguration *configuration; + +/** + 当前服务所运行的HTTP Session Manager。一般情况下,所有服务都运行在统一的全局单例上面。 + */ +@property (nonatomic, strong, readonly) QCloudHTTPSessionManager *sessionManager; +/** + 通过服务配置信息初始化服务 + + @param configuration 服务配置信息 + @return QCloudService实例 + */ +- (instancetype)initWithConfiguration:(QCloudServiceConfiguration *)configuration; +// + +/** + 执行一个HTTP的请求,您必须在外部将该请求构建好之后,才能调用该接口去执行请求。该接口不接受nil。 + + @param httpRequst http请求 + @return 请求的序列号 + */ +- (int)performRequest:(QCloudBizHTTPRequest *)httpRequst; + +/** + 执行一个HTTP的请求,您必须在外部将该请求构建好之后,才能调用该接口去执行请求。该接口不接受nil。 + + + @param httpRequst http请求 + @param block 执行结果回调 + @return 请求的序列号 + */ +- (int)performRequest:(QCloudBizHTTPRequest *)httpRequst withFinishBlock:(QCloudRequestFinishBlock)block; +#pragma mark---权限相关函数 +- (void)loadCOSXMLAuthorizationForBiz:(QCloudBizHTTPRequest *)request + urlRequest:(NSURLRequest *)urlrequest + compelete:(QCloudHTTPAuthentationContinueBlock)cotinueBlock; +- (void)loadCOSV4AuthorizationForBiz:(QCloudBizHTTPRequest *)request + urlRequest:(NSURLRequest *)urlrequest + compelete:(QCloudHTTPAuthentationContinueBlock)cotinueBlock; + +- (void)loadAuthorizationForBiz:(QCloudBizHTTPRequest *)bizRequest + urlRequest:(NSMutableURLRequest *)urlrequest + compelete:(QCloudHTTPAuthentationContinueBlock)cotinueBlock; +// +- (BOOL)fillCommonParamtersForRequest:(QCloudBizHTTPRequest *)request error:(NSError *__autoreleasing *)error; + +- (QCloudSignatureFields *)signatureFiledsForRequest:(QCloudBizHTTPRequest *)request; + +-(void)requestFinishWithRequestId:(int64_t)requestID; +@end +NS_ASSUME_NONNULL_END diff --git a/Pods/QCloudCore/QCloudCore/Classes/Base/QCloudClientBase/Service/QCloudService.m b/Pods/QCloudCore/QCloudCore/Classes/Base/QCloudClientBase/Service/QCloudService.m new file mode 100644 index 0000000..044d5d7 --- /dev/null +++ b/Pods/QCloudCore/QCloudCore/Classes/Base/QCloudClientBase/Service/QCloudService.m @@ -0,0 +1,197 @@ +// +// QCloudService.m +// Pods +// +// Created by Dong Zhao on 2017/3/13. +// +// + +#import "QCloudService.h" +#import "QCloudHTTPSessionManager.h" +#import "QCloudConfiguration_Private.h" +#import "NSError+QCloudNetworking.h" +#import "QCloudLogger.h" +#import +@interface QCloudService () { + NSMutableDictionary *_signatureCache; + dispatch_queue_t _writeReadQueue; + NSMutableDictionary *_requestingSignatureFileds; +} +@property (nonatomic, strong) NSString *backgroundTransmitIdentifier; +@end + +@implementation QCloudService + +- (instancetype)initWithCommenConfiguration:(QCloudServiceConfiguration *)configuration { + self = [super init]; + if (!self) { + return self; + } + + _configuration = configuration; + return self; +} + + +- (instancetype)initWithConfiguration:(QCloudServiceConfiguration *)configuration { + self = [super init]; + if (!self) { + return self; + } + configuration = [configuration copy]; + if (!configuration.endpoint) { + @throw [NSException exceptionWithName:QCloudErrorDomain + reason:[NSString stringWithFormat:@"您没有配置EndPoint就使用了服务%@", self.class] + userInfo:nil]; + } + +// if (![configuration.signatureProvider conformsToProtocol:NSProtocolFromString(@"QCloudSignatureProvider")]) { +// @throw +// [NSException exceptionWithName:QCloudErrorDomain +// reason:[NSString stringWithFormat:@"您没有配置signatureProvider或者没有实现对应的方法就使用了服务%@", self.class] +// userInfo:nil]; +// } + + _configuration = configuration; + _signatureCache = [NSMutableDictionary new]; + _requestingSignatureFileds = [NSMutableDictionary new]; + _writeReadQueue = dispatch_queue_create("com.tencent.qcloud.service.lock", DISPATCH_QUEUE_CONCURRENT); + return self; +} + + + +- (QCloudSignatureFields *)signatureFiledsForRequest:(QCloudBizHTTPRequest *)request { + QCloudSignatureFields *fileds = [request signatureFields]; + fileds.appID = self.configuration.appID; + return fileds; +} + +- (QCloudSignature *)authoriztionForFileds:(QCloudSignatureFields *)fields { + __block QCloudSignature *auth; + dispatch_sync(_writeReadQueue, ^{ + auth = self->_signatureCache[fields.filed]; + }); + if ([auth.expiration compare:[NSDate date]] == NSOrderedAscending) { + auth = nil; + [self cacheSignature:nil forFields:fields]; + } + return auth; +} + +- (void)cacheSignature:(QCloudSignature *)signature forFields:(QCloudSignatureFields *)fields { + if (fields.filed.length == 0) { + return; + } + + dispatch_barrier_async(_writeReadQueue, ^{ + if (!signature) { + [self->_signatureCache removeObjectForKey:fields.filed]; + } else { + self->_signatureCache[fields.filed] = signature; + } + }); +} + +- (QCloudHTTPSessionManager *)sessionManager { + return [QCloudHTTPSessionManager shareClient]; +} + +- (void)loadCOSV4AuthorizationForBiz:(QCloudBizHTTPRequest *)request + urlRequest:(NSURLRequest *)urlrequest + compelete:(QCloudHTTPAuthentationContinueBlock)cotinueBlock { + NSAssert([self.configuration.signatureProvider respondsToSelector:@selector(signatureWithFields:request:urlRequest:compelete:)], + @"您没有提供用于签名的委托者,请设置后再调用API"); + request.runOnService = self; + QCloudSignatureFields *fileds = [self signatureFiledsForRequest:request]; + [self.configuration.signatureProvider signatureWithFields:fileds + request:request + urlRequest:(NSMutableURLRequest *)urlrequest + compelete:cotinueBlock]; +} + +- (void)loadCOSXMLAuthorizationForBiz:(QCloudBizHTTPRequest *)request + urlRequest:(NSURLRequest *)urlrequest + compelete:(QCloudHTTPAuthentationContinueBlock)cotinueBlock { + NSAssert([self.configuration.signatureProvider respondsToSelector:@selector(signatureWithFields:request:urlRequest:compelete:)], + @"您没有提供用于签名的委托者,请设置后再调用API"); + request.runOnService = self; + QCloudSignatureFields *fileds = [self signatureFiledsForRequest:request]; + [self.configuration.signatureProvider signatureWithFields:fileds + request:request + urlRequest:(NSMutableURLRequest *)urlrequest + compelete:cotinueBlock]; +} + +- (BOOL)fillCommonParamtersForRequest:(QCloudBizHTTPRequest *)request error:(NSError *_Nullable __autoreleasing *)error { + request.runOnService = self; + request.signatureProvider = self.configuration.signatureProvider; + if (self.configuration.userAgent.length) { + [request.requestData setValue:self.configuration.userAgent forHTTPHeaderField:HTTPHeaderUserAgent]; + } + return YES; +} + +- (void)loadAuthorizationForBiz:(QCloudBizHTTPRequest *)bizRequest + urlRequest:(NSMutableURLRequest *)urlrequest + compelete:(QCloudHTTPAuthentationContinueBlock)cotinueBlock { + if (cotinueBlock) { + cotinueBlock(nil, nil); + } +} +- (int)performRequest:(QCloudBizHTTPRequest *)httpRequst { + if(httpRequst.timeoutInterval == 0){ + httpRequst.timeoutInterval = self.configuration.timeoutInterval; + } + if (!httpRequst.requestRetry) { + if (httpRequst.networkType != QCloudRequestNetworkNone) { + httpRequst.enableQuic = httpRequst.networkType == QCloudRequestNetworkQuic; + }else{ + httpRequst.enableQuic = self.configuration.enableQuic; + } + } + + dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_HIGH, 0), ^{ + NSError *error; + [self fillCommonParamtersForRequest:httpRequst error:&error]; + if (error) { + [httpRequst onError:error]; + return; + } + + [[QCloudHTTPSessionManager shareClient] performRequest:httpRequst]; + }); + + return (int)httpRequst.requestID; +} + +-(void)requestFinishWithRequestId:(int64_t)requestID{ + [[QCloudHTTPSessionManager shareClient] requestOperationFinishWithRequestId:requestID]; +} + +- (int)performRequest:(QCloudBizHTTPRequest *)httpRequst withFinishBlock:(QCloudRequestFinishBlock)block { + if(httpRequst.timeoutInterval == 0){ + httpRequst.timeoutInterval = self.configuration.timeoutInterval; + } + + if (!httpRequst.requestRetry) { + if (httpRequst.networkType != QCloudRequestNetworkNone) { + httpRequst.enableQuic = httpRequst.networkType == QCloudRequestNetworkQuic; + }else{ + httpRequst.enableQuic = self.configuration.enableQuic; + } + } + + dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_HIGH, 0), ^{ + NSError *error; + [self fillCommonParamtersForRequest:httpRequst error:&error]; + if (error) { + [httpRequst onError:error]; + return; + } + [[QCloudHTTPSessionManager shareClient] performRequest:httpRequst withFinishBlock:block]; + }); + return (int)httpRequst.requestID; +} + +@end diff --git a/Pods/QCloudCore/QCloudCore/Classes/Base/QCloudClientBase/Service/QCloudServiceConfiguration.h b/Pods/QCloudCore/QCloudCore/Classes/Base/QCloudClientBase/Service/QCloudServiceConfiguration.h new file mode 100644 index 0000000..0f4eb15 --- /dev/null +++ b/Pods/QCloudCore/QCloudCore/Classes/Base/QCloudClientBase/Service/QCloudServiceConfiguration.h @@ -0,0 +1,47 @@ +// +// QCloudServiceConfiguration.h +// Pods +// +// Created by Dong Zhao on 2017/3/13. +// +// + +#import +#import "QCloudSignatureProvider.h" +#import "QCloudEndPoint.h" +#import "QCloudConfiguration.h" +/** + QCloud中服务类的配置信息,用于实例化 QCloudCOSXMLService 以及 QCloudCOSTransferManagerService + 具体使用:https://cloud.tencent.com/document/product/436/11280 + + ### 示例 + + @code + + QCloudServiceConfiguration* configuration = [[QCloudCOSXMLService defaultCOSXML].configuration copy]; + + configuration.endpoint.regionName = @"regionName"; + [QCloudCOSTransferMangerService registerCOSTransferMangerWithConfiguration:configuration withKey:@"regionName"]; + + [QCloudCOSXMLService registerCOSXMLWithConfiguration:configuration withKey:@"regionName"]; + + */ +@interface QCloudServiceConfiguration : QCloudConfiguration + +/** + 签名信息的回调接口,该委托必须实现。签名是腾讯云进行服务时进行用户身份校验的关键手段,同时也保障了用户访问的安全性。该委托中通过函数回调来提供签名信息。 + */ +@property (nonatomic, strong) id signatureProvider; + +/** + 您的AppID + */ +@property (nonatomic, strong) NSString *appID; + +/** + 您的服务所在的区域,请您一定要设置该参数! + */ +@property (nonatomic, strong) QCloudEndPoint *endpoint; + + +@end diff --git a/Pods/QCloudCore/QCloudCore/Classes/Base/QCloudClientBase/Service/QCloudServiceConfiguration.m b/Pods/QCloudCore/QCloudCore/Classes/Base/QCloudClientBase/Service/QCloudServiceConfiguration.m new file mode 100644 index 0000000..a5916c6 --- /dev/null +++ b/Pods/QCloudCore/QCloudCore/Classes/Base/QCloudClientBase/Service/QCloudServiceConfiguration.m @@ -0,0 +1,42 @@ +// +// QCloudServiceConfiguration.m +// Pods +// +// Created by Dong Zhao on 2017/3/13. +// +// + +#import "QCloudServiceConfiguration.h" +#import "QCloudConfiguration_Private.h" +#import "QCloudServiceConfiguration+Quality.h" +#if TARGET_OS_IOS +#import +#endif + +static NSString *const QCloudServiceConfigurationUnknown = @"Unknown"; + +@implementation QCloudServiceConfiguration + + +- (instancetype)copyWithZone:(NSZone *)zone { + QCloudServiceConfiguration *config = [[QCloudServiceConfiguration allocWithZone:zone] init]; + config.signatureProvider = self.signatureProvider; + config.appID = self.appID; + config.userAgentProductKey = self.userAgentProductKey; + config.endpoint = [self.endpoint copy]; + config.productVersion = self.productVersion; + config.isCloseShareLog = self.isCloseShareLog; + config.disableUploadZeroData = self.disableUploadZeroData; + config.timeoutInterval = self.timeoutInterval; + config.enableQuic = self.enableQuic; + config.disableSetupBeacon = self.disableSetupBeacon; + config.disableChangeHost = self.disableChangeHost; + config.bridge = self.bridge; + config.disableGlobalAuthentication = self.disableGlobalAuthentication; + config.disableGlobalHTTPDNSPrefetch = self.disableGlobalHTTPDNSPrefetch; + config.networkStrategy = self.networkStrategy; + config.clientCertificateData = self.clientCertificateData; + config.password = self.password; + return config; +} +@end diff --git a/Pods/QCloudCore/QCloudCore/Classes/Base/QCloudClientBase/Service/QCloudServiceConfiguration_Private.h b/Pods/QCloudCore/QCloudCore/Classes/Base/QCloudClientBase/Service/QCloudServiceConfiguration_Private.h new file mode 100644 index 0000000..d3702a8 --- /dev/null +++ b/Pods/QCloudCore/QCloudCore/Classes/Base/QCloudClientBase/Service/QCloudServiceConfiguration_Private.h @@ -0,0 +1,8 @@ +// +// QCloudServiceConfiguration_Private.h +// Pods +// +// Created by garenwang on 2022/4/19. +// + +#import "QCloudConfiguration_Private.h" diff --git a/Pods/QCloudCore/QCloudCore/Classes/Base/QCloudCore.h b/Pods/QCloudCore/QCloudCore/Classes/Base/QCloudCore.h new file mode 100644 index 0000000..675dde3 --- /dev/null +++ b/Pods/QCloudCore/QCloudCore/Classes/Base/QCloudCore.h @@ -0,0 +1,47 @@ +// +// QCloudCore.h +// Pods +// +// Created by Dong Zhao on 2017/3/29. +// +// + +#ifndef QCloudCore_h +#define QCloudCore_h + +#import "QCLOUDRestNet.h" +#import "QCloudLogger.h" +#import "QCloudBundle.h" +#import "QCloudServiceConfiguration.h" +#import "QCloudServiceConfiguration+Quality.h" +#import "QCloudService.h" +#import "QCloudFileUtils.h" +#import "QCloudEndPoint.h" +#import "QCloudProgrameDefines.h" +#import "QCloudObjectModel.h" +#import "QCloudRequestOperation.h" +#import "QCloudOperationQueue.h" +#import "QCloudAuthentationV4Creator.h" +#import "QCloudCredential.h" +#import "QCloudXMLDictionary.h" +#import "QCloudXMLWriter.h" +#import "QCloudFileOffsetStream.h" +#import "QCloudFileOffsetBody.h" +#import "QCloudNetEnv.h" +#import "QCloudSDKModuleManager.h" +#import "QCloudAbstractRequest_FakeRequest.h" +#import "QCloudFakeRequestOperation.h" +#import "QCloudEncryt.h" +#import "QCloudWeakProxy.h" +#import "QCloudClientContext.h" +#import "QCloudAuthentationV5Creator.h" +#import "QCloudAuthentationV4Creator.h" +#import "QCloudCredentailFenceQueue.h" +#import "QCloudMultiDelegateProxy.h" +#import "QCloudThreadSafeMutableDictionary.h" +#import "QCloudError.h" +#import "UIDevice+QCloudFCUUID.h" +#import "QCloudGCDTimer.h" +#import "NSObject+HTTPHeadersContainer.h" +#import "NSObject+QCloudModelTool.h" +#endif /* QCloudCore_h */ diff --git a/Pods/QCloudCore/QCloudCore/Classes/Base/QCloudCoreVersion.h b/Pods/QCloudCore/QCloudCore/Classes/Base/QCloudCoreVersion.h new file mode 100644 index 0000000..72f3b8f --- /dev/null +++ b/Pods/QCloudCore/QCloudCore/Classes/Base/QCloudCoreVersion.h @@ -0,0 +1,16 @@ +// +// QCloud Terminal Lab --- service for developers +// +#import + +#ifndef QCloudCoreModuleVersion_h +#define QCloudCoreModuleVersion_h +#define QCloudCoreModuleVersionNumber 605000 + +//dependency + +// +FOUNDATION_EXTERN NSString * const QCloudCoreModuleVersion; +FOUNDATION_EXTERN NSString * const QCloudCoreModuleName; + +#endif diff --git a/Pods/QCloudCore/QCloudCore/Classes/Base/QCloudCoreVersion.m b/Pods/QCloudCore/QCloudCore/Classes/Base/QCloudCoreVersion.m new file mode 100644 index 0000000..7c378d7 --- /dev/null +++ b/Pods/QCloudCore/QCloudCore/Classes/Base/QCloudCoreVersion.m @@ -0,0 +1,29 @@ +#import "QCloudCoreVersion.h" +NSString * const QCloudCoreModuleVersion = @"6.5.0"; +NSString * const QCloudCoreModuleName = @"QCloudCore"; +@interface QCloudQCloudCoreLoad : NSObject +@end + +@implementation QCloudQCloudCoreLoad ++ (void) load +{ + Class cla = NSClassFromString(@"QCloudSDKModuleManager"); + if (cla) { + NSMutableDictionary* module = [@{ + @"name" : QCloudCoreModuleName, + @"version" : QCloudCoreModuleVersion + } mutableCopy]; + + NSString* buglyID = @""; + if (buglyID.length > 0) { + module[@"crashID"] = buglyID; + } + +#pragma clang diagnostic push +#pragma clang diagnostic ignored "-Wundeclared-selector" + id share = [cla performSelector:@selector(shareInstance)]; + [share performSelector:@selector(registerModuleByJSON:) withObject:module]; +#pragma clang diagnostic pop + } +} +@end diff --git a/Pods/QCloudCore/QCloudCore/Classes/Base/QCloudGCDTimer.h b/Pods/QCloudCore/QCloudCore/Classes/Base/QCloudGCDTimer.h new file mode 100644 index 0000000..6d047fe --- /dev/null +++ b/Pods/QCloudCore/QCloudCore/Classes/Base/QCloudGCDTimer.h @@ -0,0 +1,56 @@ +// +// QCloudGCDTimer.h +// AOPKit +// +// Created by karisli(李雪) on 2021/8/2. +// + +#import + +NS_ASSUME_NONNULL_BEGIN + +@interface QCloudGCDTimer : NSObject + +/** + Block方式的定时器 + + @param task 任务(这里使用block) + @param start 开始时间 + @param interval 间隔 + @param repeats 时候否重复调用 + @param async 是否子线程 + @return 定时器标识(最终取消定时器是需要根据此标识取消的) + */ ++ (NSString* _Nullable)timerTask:(void(^)(void))task + start:(NSTimeInterval) start + interval:(NSTimeInterval) interval + repeats:(BOOL) repeats + async:(BOOL)async; + +/** + Target方式的定时器 + + @param target 目标对象(这里使用方法) + @param selector 调用方法 + @param start 开始时间 + @param interval 间隔 + @param repeats 是否重复调用 + @param async 是否子线程 + @return 定时其标识(最终取消定时器是需要根据此标识取消的) + */ ++ (NSString* _Nullable)timerTask:(id)target + selector:(SEL)selector + start:(NSTimeInterval)start + interval:(NSTimeInterval)interval + repeats:(BOOL)repeats + async:(BOOL)async; + +/** + 取消定时器 + + @param timerName 定时器标识 + */ ++(void)canelTimer:(NSString*) timerName; + +NS_ASSUME_NONNULL_END +@end diff --git a/Pods/QCloudCore/QCloudCore/Classes/Base/QCloudGCDTimer.m b/Pods/QCloudCore/QCloudCore/Classes/Base/QCloudGCDTimer.m new file mode 100644 index 0000000..ed99423 --- /dev/null +++ b/Pods/QCloudCore/QCloudCore/Classes/Base/QCloudGCDTimer.m @@ -0,0 +1,127 @@ +// +// QCloudGCDTimer.m +// AOPKit +// +// Created by karisli(李雪) on 2021/8/2. +// + +#import "QCloudGCDTimer.h" +NS_ASSUME_NONNULL_BEGIN +@implementation QCloudGCDTimer + +static NSMutableDictionary *timers_; +dispatch_semaphore_t semaphore_; + +/** + load 与 initialize区别,这里选用initialize + */ ++(void)initialize{ + + //GCD一次性函数 + static dispatch_once_t onceToken; + dispatch_once(&onceToken, ^{ + timers_ = [NSMutableDictionary dictionary]; + semaphore_ = dispatch_semaphore_create(1); + }); +} + ++ (NSString* _Nullable)timerTask:(void(^)(void))task + start:(NSTimeInterval) start + interval:(NSTimeInterval) interval + repeats:(BOOL) repeats + async:(BOOL)async{ + + /** + 对参数做一些限制 + 1.如果task不存在,那就没有执行的必要(!task) + 2.开始时间必须大于当前时间 + 3.当需要重复执行时,重复间隔时间必须 >0 + 以上条件必须满足,定时器才算是比较合理,否则没必要执行 + */ + if (!task || start < 0 || (interval <= 0 && repeats)) { + + return nil; + } + //if (!task || start < 0 || (interval <= 0 && repeats)) return nil; (上面的代码有人可能会写成这样,都一样,这是if的语法,里面只有一行时候可以省略{},其他的没区别) + + /** + 队列 + asyc:YES 全局队列 dispatch_get_global_queue(0, 0) 可以简单理解为其他线程(非主线程) + asyc:NO 主队列 dispatch_get_main_queue() 可以理解为主线程 + */ + dispatch_queue_t queue = async ? dispatch_get_global_queue(0, 0) : dispatch_get_main_queue(); + + /** + 创建定时器 dispatch_source_t timer + */ + dispatch_source_t timer = dispatch_source_create(DISPATCH_SOURCE_TYPE_TIMER, 0, 0, queue); + + dispatch_semaphore_wait(semaphore_, DISPATCH_TIME_FOREVER); + // 定时器的唯一标识 + NSString *timerName = [NSString stringWithFormat:@"%zd", timers_.count]; + // 存放到字典中 + timers_[timerName] = timer; + dispatch_semaphore_signal(semaphore_); + + dispatch_source_set_timer(timer, dispatch_time(DISPATCH_TIME_NOW, start * NSEC_PER_SEC), interval * NSEC_PER_SEC, 0); + dispatch_source_set_event_handler(timer, ^{ + //定时任务 + task(); + //如果不需要重复,执行一次即可 + if (!repeats) { + + [self canelTimer:timerName]; + } + }); + //启动定时器 + dispatch_resume(timer); + + return timerName; +} + ++ (NSString* _Nullable)timerTask:(id)target + selector:(SEL)selector + start:(NSTimeInterval)start + interval:(NSTimeInterval)interval + repeats:(BOOL)repeats + async:(BOOL)async{ + + if (!target || !selector) return nil; + + return [self timerTask:^{ + + if ([target respondsToSelector:selector]) { + //(这是消除警告的处理) +#pragma clang diagnostic push +#pragma clang diagnostic ignored "-Warc-performSelector-leaks" + [target performSelector:selector]; +#pragma clang diagnostic pop + } + + } start:start interval:interval repeats:repeats async:async]; + + + +} + ++(void)canelTimer:(NSString*) timerName{ + + if (timerName.length == 0) { + + return; + } + + dispatch_semaphore_wait(semaphore_, DISPATCH_TIME_FOREVER); + + dispatch_source_t timer = timers_[timerName]; + if (timer) { + dispatch_source_cancel(timer); + [timers_ removeObjectForKey:timerName]; + } + + dispatch_semaphore_signal(semaphore_); + +} + +@end +NS_ASSUME_NONNULL_END diff --git a/Pods/QCloudCore/QCloudCore/Classes/Base/QualityAssurance/QualityDataUploader.h b/Pods/QCloudCore/QCloudCore/Classes/Base/QualityAssurance/QualityDataUploader.h new file mode 100644 index 0000000..2ebe3e4 --- /dev/null +++ b/Pods/QCloudCore/QCloudCore/Classes/Base/QualityAssurance/QualityDataUploader.h @@ -0,0 +1,46 @@ +// +// QualityDataUploader.h +// QCloudCOSXML +// +// Created by erichmzhang(张恒铭) on 2018/8/23. +// + +#import +@class QCloudAbstractRequest; +#pragma mark -error key +extern NSString *const kQCloudQualityErrorCodeKey; +extern NSString *const kQCloudQualityErrorTypeServerName; +extern NSString *const kQCloudQualityErrorTypeClientName; +extern NSString *const kQCloudQualityErrorMessageKey; +extern NSString *const kQCloudQualityErrorNameKey; +extern NSString *const kQCloudQualityServiceNameKey; +extern NSString *const kQCloudQualityErrorStatusCodeKey; +extern NSString *const kQCloudQualityErrorTypeKey; +extern NSString *const kQCloudQualityErrorIDKey; +extern NSString *const kQCloudRequestAppkeyKey; + +@interface QualityDataUploader : NSObject + +/// 初始化公共参数 ++(void)initCommonParams:(NSMutableDictionary * )commonParams; + +/// 设置sdk 上报灯塔 appkey +/// - Parameter appkey: 灯塔appkey ++ (void)startWithAppkey:(NSString *)appkey; + + +/// SDK 内部使用,上报请求成功信息 ++ (void)trackSDKRequestSuccessWithRequest:(QCloudAbstractRequest *)request params:(NSMutableDictionary * )commonParams; + +/// SDK 内部使用,上报请求失败信息 ++ (void)trackSDKRequestFailWithRequest:(QCloudAbstractRequest *)request error:(NSError *)error params:(NSMutableDictionary * )commonParams; + +/// 使用 SDK 内默认 TrackService 上报数据 ++ (void)trackNormalEventWithKey:(NSString *)key props:(NSDictionary *)props; + +/// 指定 TrackService 上报数据 ++ (void)trackNormalEventWithKey:(NSString *)key serviceKey:(NSString *)serviceKey props:(NSDictionary *)props; + +/// SDK 内使用 上报基础数据 ++ (void)trackBaseInfoToTrachCommonParams:(NSMutableDictionary * )commonParams; +@end diff --git a/Pods/QCloudCore/QCloudCore/Classes/Base/QualityAssurance/QualityDataUploader.m b/Pods/QCloudCore/QCloudCore/Classes/Base/QualityAssurance/QualityDataUploader.m new file mode 100644 index 0000000..961644f --- /dev/null +++ b/Pods/QCloudCore/QCloudCore/Classes/Base/QualityAssurance/QualityDataUploader.m @@ -0,0 +1,494 @@ +// +// QualityDataUploader.m +// QCloudCOSXML +// +// Created by erichmzhang(张恒铭) on 2018/8/23. +// + +#import "QualityDataUploader.h" +#import +#import +#import +#import +#import "QCloudCoreVersion.h" +#import "NSError+QCloudNetworking.h" +#import "QCloudConfiguration_Private.h" + +#define SuppressPerformSelectorLeakWarning(Stuff) \ + do { \ + _Pragma("clang diagnostic push") _Pragma("clang diagnostic ignored \"-Warc-performSelector-leaks\"") Stuff; \ + _Pragma("clang diagnostic pop") \ + } while (0) + +#define kUploadEvents \ +@[ @"QCloudPutObjectRequest", @"QCloudInitiateMultipartUploadRequest", @"QCloudUploadPartRequest", @"QCloudCompleteMultipartUploadRequest" ,@"QCloudSMHUploadPartRequest" ,@"QCloudSMHPutObjectRequest",@"QCloudSMHCompleteUploadRequest"] +#define kDownloadEvents @[ @"QCloudGetObjectRequest" , @"QCloudSMHDownloadFileRequest" ] +#define kCopyEvents \ + @[ \ + @"QCloudCOSXMLCopyObjectRequest",@"QCloudInitiateMultipartUploadRequest", @"QCloudPutObjectCopyRequest", @"QCloudUploadPartCopyRequest", \ + @"QCloudCompleteMultipartUploadRequest" \ + ] + +#define kAdvancedEvents @[ @"QCloudCOSSMHUploadObjectRequest",@"QCloudCOSXMLUploadObjectRequest", @"QCloudCOSXMLCopyObjectRequest" ] + +//NSString *const kQCloudUploadAppDebugKey = @"LOGDEBUGKEY00247"; // 废弃 +// +//NSString *const kQCloudUploadAppReleaseKey = @"0AND0VEVB24UBGDU"; // 废弃 + + +NSString *const KQCloudServiceBaseInfoKey = @"qcloud_track_sd_sdk_start"; +#pragma mark -commen key +NSString *const kQCloudQualityBundleIDKey = @"boundle_id"; +NSString *const kQCloudQualityAppNameKey = @"app_name"; +NSString *const kQCloudQualityNetworkTypeKey = @"network_type"; +NSString *const kQCloudQualityResultKey = @"request_result"; +NSString *const kQCloudQualityTookTimeKey = @"http_took_time"; +NSString *const kQCloudQualityRegionKey = @"region"; +NSString *const kQCloudQualityAuthSourceKey = @"auth_source"; +NSString *const kQCloudQualityRequestNameKey = @"name"; +NSString *const kQCloudSizeKey = @"size"; + +#pragma mark -error key + NSString *const kQCloudQualityErrorCodeKey = @"error_code"; +NSString *const kQCloudQualityHTTPErrorCodeKey = @"error_http_code"; + NSString *const kQCloudQualityErrorMessageKey = @"error_message"; + NSString *const kQCloudQualityErrorNameKey = @"error_name"; + NSString *const kQCloudQualityErrorRequestNameKey = @"request_name"; + NSString *const kQCloudQualityErrorStatusCodeKey = @"error_status_code"; + NSString *const kQCloudQualityErrorTypeKey = @"error_type"; + NSString *const kQCloudQualityErrorIDKey = @"error_request_id"; +NSString *const kQCloudQualityErrorCodeServerName = @"Server"; +NSString *const kQCloudQualityErrorCodeClientName = @"Client"; +#pragma mark -error base + NSString *const kQCloudQualityAccelerateKey = @"accelerate"; // Y || N + NSString *const kQCloudQualityRequestHostKey = @"host"; +NSString *const kQCloudQualityRequestPathKey = @"request_path"; + NSString *const kQCloudQualityRequestHttpConnectKey = @"http_connect"; + NSString *const kQCloudQualityHTTPDNSKey = @"http_dns"; + NSString *const kQCloudQualityHTTPFullKey = @"http_full"; + NSString *const kQCloudQualityHTTPMD5Key = @"http_md5"; + NSString *const kQCloudQualityHTTPReadResponseBodyTookTimeKey = @"http_read_body"; + NSString *const kQCloudQualityHTTPReadResponseHeaderTookTimeKey = @"http_read_header"; + NSString *const kQCloudQualitySecureConnectTookTimeKey = @"http_secure_connect"; + NSString *const kQCloudQualityHTTPIpKey = @"http_connect_ip"; + NSString *const kQCloudQualityHTTPSPeedKey = @"http_speed"; + NSString *const kQCloudQualitySignRequestTookTimeKey = @"http_sign"; + +#pragma mark -event key + NSString *const kQCloudBaseEventCode = @"base_service"; + NSString *const kQCloudUploadEventCode = @"_upload"; + NSString *const kQCloudDownloadEventCode = @"_download"; + NSString *const kQCloudCopyEventCode = @"cos_copy"; + NSString *const kQCloudOtherEventCode = @"cos_error"; +#pragma mark - download + + NSString *const kQCloudRequestSuccessKey = @"Success"; + NSString *const kQCloudRequestFailureKey = @"Failure"; +NSString *const kQCloudRequestAppkeyKey = @"appKey"; + +static NSString * productName = @""; +static NSString * sdkVersion = @""; +static NSNumber * sdkVersionName = @""; +static NSString * appKey = @""; +static NSString * sdkBridge = @""; + +@implementation NSError (QualityDataUploader) + +- (NSDictionary *)toUploadEventParamters { + NSDictionary *userinfoDic = self.userInfo; + NSString *errorCode = [NSError qcloud_networkErrorCodeTransferToString:(QCloudNetworkErrorCode)self.code]; + NSString *requestID = @""; + NSString *error_name = kQCloudQualityErrorCodeClientName; + NSString *errorMsg = userinfoDic[NSLocalizedDescriptionKey]; + NSInteger httpCode = 0; + if (userinfoDic) { + if (userinfoDic[@"Code"]) { + errorCode = userinfoDic[@"Code"]; + requestID = userinfoDic[@"RequestId"]; + error_name = kQCloudQualityErrorCodeServerName; + errorMsg = userinfoDic[@"Message"]; + } + + if (userinfoDic[@"code"]) { + errorCode = userinfoDic[@"code"]; + requestID = @""; + errorMsg = userinfoDic[@"message"]; + } + } + + NSHTTPURLResponse * response = [self __originHTTPURLResponse__]; + if (response) { + httpCode = response.statusCode; + } + + if([self.domain isEqualToString:kQCloudNetworkDomain] && self.code == QCloudNetworkErrorCodeResponseDataTypeInvalid){ + error_name = kQCloudQualityErrorCodeServerName; + } + + return + @{ kQCloudQualityErrorStatusCodeKey : [NSString stringWithFormat:@"%ld", (long)self.code], + kQCloudQualityErrorCodeKey : errorCode ? errorCode : @"" , + kQCloudQualityErrorTypeKey : error_name?error_name : @"", + kQCloudQualityErrorIDKey : requestID?requestID : @"", + kQCloudQualityErrorMessageKey : errorMsg?errorMsg:@"", + kQCloudQualityHTTPErrorCodeKey:@(httpCode).stringValue + }; +} + +@end + + +@implementation QCloudHttpMetrics (QualityDataUploader) + +- (NSDictionary *)toUploadEventParamters { + NSMutableDictionary *params = [NSMutableDictionary dictionary]; + + params[kQCloudQualityRequestHostKey] = [self objectForKey:kHost]; + params[kQCloudQualityRequestHttpConnectKey] = @([self costTimeForKey:kConnectTookTime]); + params[kQCloudQualityHTTPDNSKey] = @([self costTimeForKey:kDnsLookupTookTime]); + params[kQCloudQualityHTTPFullKey] = @([self costTimeForKey:kTaskTookTime]); + params[kQCloudQualityHTTPMD5Key] = @([self costTimeForKey:kCalculateMD5STookTime]); + params[kQCloudQualityHTTPReadResponseBodyTookTimeKey] = @([self costTimeForKey:kReadResponseBodyTookTime]); + params[kQCloudQualityTookTimeKey] = @([self costTimeForKey:kTaskTookTime]); + params[kQCloudQualitySecureConnectTookTimeKey] = @([self costTimeForKey:kSecureConnectTookTime]); + params[kQCloudQualityHTTPIpKey] = [self objectForKey:kRemoteAddress]; + params[kQCloudQualitySignRequestTookTimeKey] = @([self costTimeForKey:kSignRequestTookTime]); + params[kQCloudQualityHTTPReadResponseHeaderTookTimeKey] = @([self costTimeForKey:kReadResponseHeaderTookTime]); + params[kQCloudSizeKey] =[self objectForKey:kTotalSize]; + if ([self costTimeForKey:kTaskTookTime] > 0) { + params[kQCloudQualityHTTPSPeedKey] = @(([self objectForKey:kTotalSize].integerValue / 1024) / [self costTimeForKey:kTaskTookTime]); + } + return params; +} + +@end +@implementation NSString (Quality) ++ (NSString *)stringWithClass:(Class)cls { + return [NSString stringWithFormat:@"%@", cls]; +} +@end + +@implementation QualityDataUploader + ++ (void)startWithAppkey:(NSString *)appkey { + Class cls = NSClassFromString(@"QCloudTrackService"); + Class beaconCls = NSClassFromString(@"QCloudBeaconTrackService"); + if (cls && beaconCls) { + SuppressPerformSelectorLeakWarning( + // 注册数据上报service + id report = [cls performSelector:NSSelectorFromString(@"singleService")]; + id beaconService = [beaconCls performSelector:NSSelectorFromString(@"new")]; + [beaconService performSelector:NSSelectorFromString(@"updateBeaconKey:") withObject:appkey]; + [report performSelector:NSSelectorFromString(@"addTrackService:serviceKey:") withObject:beaconService withObject:[self qcloud_trackSDKEventKey]]; + + ); + + } else { + QCloudLogDebugE(@"Pod",@"please pod QCloudTrack"); + } +} + ++ (void)trackBaseInfoToTrachCommonParams:(NSMutableDictionary * )commonParams{ + [self initCommonParams:commonParams]; + NSString * productName = commonParams[@"pName"]; + NSString * sdkVersion = commonParams[@"sdkVersion"]; + NSString * sdkVersionName = commonParams[@"sdkVersionName"]; + NSString * sdk_bridge = commonParams[@"sdk_bridge"]; + sdkBridge = sdk_bridge; + Class cls = NSClassFromString(@"QCloudTrackService"); + if (cls) { + + Class clsClass = NSClassFromString(@"QCloudCLSTrackService"); + NSDictionary * paramter = @{ + @"sdk_name":productName.lowercaseString?:@"cos", // sdk名称, + @"sdk_version_code":sdkVersion?:@"", // sdk版本号, + @"sdk_version_name":sdkVersionName?:@"", // sdk版本名称, + @"sdk_bridge":sdk_bridge?:@"", // 桥接名称, + @"cls_report":clsClass != nil?@"true":@"false" + }; + id instance = [cls performSelector:NSSelectorFromString(@"singleService")]; + SEL selector = NSSelectorFromString(@"reportSimpleDataWithEventParams:"); + + + if ([instance respondsToSelector:selector]) { + NSMethodSignature *methodSignature = [instance methodSignatureForSelector:selector]; + NSInvocation *invocation = [NSInvocation invocationWithMethodSignature:methodSignature]; + [invocation setSelector:selector]; + [invocation setArgument:¶mter atIndex:2]; + [invocation invokeWithTarget:instance]; + } + } +} + ++ (void)trackNormalEventWithKey:(NSString *)key props:(NSDictionary *)props { + [self trackNormalEventWithKey:key serviceKey:nil props:props]; +} + ++ (void)trackNormalEventWithKey:(NSString *)key serviceKey:(NSString *)serviceKey props:(NSDictionary *)props { + + NSString * appKey = props[kQCloudRequestAppkeyKey]; + NSMutableDictionary * params = [NSMutableDictionary dictionaryWithDictionary:props]; + [params removeObjectForKey:kQCloudRequestAppkeyKey]; + + [self startReportWithEventKey:key serviceKey:serviceKey paramters:params]; +} + +//上报成功的事件:需要排除掉uploadPart、uploadPartCopy等请求,在其对应的高级接口成功的回调中上报 ++ (void)trackSDKRequestSuccessWithRequest:(QCloudAbstractRequest *)request params:(NSMutableDictionary * )commonParams{ + + if(![NSStringFromClass(request.class) hasPrefix:@"QCloud"]) + return; + + [self initCommonParams:commonParams]; + NSMutableDictionary *paramas = commonParams?:[NSMutableDictionary dictionary]; + paramas[kQCloudQualityResultKey] = kQCloudRequestSuccessKey; + paramas[kQCloudQualityErrorRequestNameKey] = [self getServiceNameFromClass:request.class]; + [self internalUploadRequest:request event:[self qcloud_trackSDKEventKey] withParamter:paramas]; +} + ++(void)initCommonParams:(NSMutableDictionary * )commonParams{ + productName = commonParams[@"pName"]; + sdkVersion = commonParams[@"sdkVersion"]; + sdkVersionName = commonParams[@"sdkVersionName"]; + appKey = commonParams[kQCloudRequestAppkeyKey]; +} + ++(NSDictionary *)getRequestURLInfo:(QCloudAbstractRequest *)request{ + NSMutableDictionary * urlInfo = [NSMutableDictionary new]; + if ([request isKindOfClass:QCloudBizHTTPRequest.class]) { + QCloudBizHTTPRequest * bizRequest = (QCloudBizHTTPRequest *)request; + NSString * regionName = bizRequest.regionName?:bizRequest.runOnService.configuration.endpoint.regionName; + + NSString * accelerate = [bizRequest.urlRequest.URL.absoluteString containsString:@"accelerate"] ? @"true" : @"false"; + + NSString * bucket = @""; + if ([bizRequest respondsToSelector:@selector(bucket)] && [bizRequest valueForKey:@"bucket"]) { + bucket = [bizRequest valueForKey:@"bucket"]; + } + + if ([bizRequest respondsToSelector:@selector(bucketName)] && [bizRequest valueForKey:@"bucketName"]) { + bucket = [bizRequest valueForKey:@"bucketName"]; + } + + urlInfo[@"region"] = regionName?:@""; + urlInfo[@"bucket"] = bucket; + urlInfo[@"accelerate"] = accelerate; + urlInfo[@"http_method"] = bizRequest.urlRequest.HTTPMethod?:@""; + urlInfo[@"url"] = bizRequest.urlRequest.URL.absoluteString?:@""; + urlInfo[@"host"] = bizRequest.urlRequest.URL.host?:@""; + urlInfo[@"request_path"] = bizRequest.urlRequest.URL.absoluteString?:@""; + urlInfo[@"network_protocol"] = bizRequest.enableQuic?@"QUIC":(bizRequest.runOnService.configuration.endpoint.useHTTPS ? @"HTTPS":@"HTTP"); + urlInfo[@"cos_config_quic"] = bizRequest.runOnService.configuration.enableQuic?@"true":@"false"; + if (bizRequest.runOnService.configuration.networkStrategy != QCloudRequestNetworkStrategyDefault) { + urlInfo[@"cos_config_network_switch_strategy"] = QCloudRequestNetworkStrategyToString(bizRequest.runOnService.configuration.networkStrategy); + urlInfo[@"cos_config_network_is_switch"] = bizRequest.requestRetry?@"true":@"false"; + } + if (bizRequest.endpoint.serverURLLiteral) { + urlInfo[@"cos_config_host"] = bizRequest.endpoint.serverURLLiteral; + }else if(bizRequest.runOnService.configuration.endpoint.serverURLLiteral){ + urlInfo[@"cos_config_host"] = bizRequest.runOnService.configuration.endpoint.serverURLLiteral; + } + + urlInfo[@"http_retry_times"] = @(bizRequest.retryCount).stringValue; + urlInfo[@"http_dns_ips"] = [[[QCloudHttpDNS shareDNS] queryIPsForHost:bizRequest.urlRequest.URL.host] componentsJoinedByString:@","]?:@""; + } + if (sdkBridge) { + urlInfo[@"sdk_bridge"] = sdkBridge; + } + + return urlInfo.copy; +} +//上报失败的事件,需要上报网络性能,错误码 ++ (void)trackSDKRequestFailWithRequest:(QCloudAbstractRequest *)request error:(NSError *)error params:(NSMutableDictionary * )commonParams{ + + if(![NSStringFromClass(request.class) hasPrefix:@"QCloud"]) + return; + + [self initCommonParams:commonParams]; + + NSMutableDictionary *mutableDicParams = [[error toUploadEventParamters] mutableCopy]; + + [mutableDicParams addEntriesFromDictionary:commonParams]; + //上报错误信息 + for (NSString *key in [error toUploadEventParamters].allKeys) { + [mutableDicParams setObject:[[error toUploadEventParamters] objectForKey:key] forKey:key]; + } + if([request isKindOfClass:[QCloudHTTPRequest class]]){ + @try { + QCloudHTTPRequest *httpReq = (QCloudHTTPRequest*)request; + mutableDicParams[kQCloudQualityAuthSourceKey] = httpReq.runOnService.configuration.endpoint.serverURLLiteral? [httpReq.urlRequest.allHTTPHeaderFields valueForKey:@"User-Agent"]:[[[NSBundle mainBundle] infoDictionary] objectForKey:@"CFBundleIdentifier"]; + + mutableDicParams[@"user_agent"] = [httpReq.urlRequest.allHTTPHeaderFields valueForKey:@"User-Agent"]? [httpReq.urlRequest.allHTTPHeaderFields valueForKey:@"User-Agent"]:[[[NSBundle mainBundle] infoDictionary] objectForKey:@"CFBundleIdentifier"]; + + if(httpReq.runOnService.configuration.bridge != nil){ + mutableDicParams[@"bridge"] = httpReq.runOnService.configuration.bridge; + } + } @catch (NSException *exception) { + return; + } @finally { + + } + } + mutableDicParams[kQCloudQualityErrorRequestNameKey] = [self getServiceNameFromClass:request.class]; + mutableDicParams[kQCloudQualityResultKey] = kQCloudRequestFailureKey; + [self internalUploadRequest:request event:[self qcloud_trackSDKEventKey] withParamter:mutableDicParams]; +} + + ++ (void)internalUploadRequest:(QCloudAbstractRequest *)request event:(NSString *)eventKey withParamter:(NSMutableDictionary *)paramter { + + NSDictionary * requestInfo = [self getRequestURLInfo:request]; + [paramter addEntriesFromDictionary:requestInfo]; + //服务名称 + paramter[kQCloudQualityRequestNameKey] = [self getServiceNameFromClass:[request class]]; + //传输性能 + for (NSString *key in [request.benchMarkMan toUploadEventParamters].allKeys) { + [paramter setObject:[[request.benchMarkMan toUploadEventParamters] objectForKey:key] forKey:key]; + } + //地域 + if([request isKindOfClass:[QCloudHTTPRequest class]]){ + @try { + QCloudHTTPRequest *httpReq = (QCloudHTTPRequest*)request; + paramter[kQCloudQualityRegionKey] = httpReq.runOnService.configuration.endpoint.regionName; + paramter[kQCloudQualityRequestPathKey] = httpReq.urlRequest.URL.path; + + paramter[kQCloudQualityAuthSourceKey] = httpReq.runOnService.configuration.endpoint.serverURLLiteral? [httpReq.urlRequest.allHTTPHeaderFields valueForKey:@"User-Agent"]:[[[NSBundle mainBundle] infoDictionary] objectForKey:@"CFBundleIdentifier"]; + + paramter[@"user_agent"] = [httpReq.urlRequest.allHTTPHeaderFields valueForKey:@"User-Agent"]? [httpReq.urlRequest.allHTTPHeaderFields valueForKey:@"User-Agent"]:[[[NSBundle mainBundle] infoDictionary] objectForKey:@"CFBundleIdentifier"]; + + if(httpReq.runOnService.configuration.bridge != nil){ + paramter[@"bridge"] = httpReq.runOnService.configuration.bridge; + } + } @catch (NSException *exception) { + return; + } @finally { + + } + }else if ([request respondsToSelector:@selector(transferManager)]){ + NSObject * service = [request performSelector:@selector(transferManager)]; + if([service respondsToSelector:@selector(configuration)]){ + QCloudServiceConfiguration * config = [service performSelector:@selector(configuration)]; + if(config.bridge != nil){ + paramter[@"bridge"] = config.bridge; + } + } + } + + Class clsClass = NSClassFromString(@"QCloudCLSTrackService"); + NSDictionary * baseInfo = @{ + @"sdk_name":productName.lowercaseString?:@"cos", // sdk名称, + @"sdk_version_code":sdkVersion?:@"", // sdk版本号, + @"sdk_version_name":sdkVersionName?:@"", // sdk版本名称, + @"cls_report":clsClass != nil?@"true":@"false" + }; + [paramter addEntriesFromDictionary:baseInfo]; + [self startReportSDKWithEventKey:eventKey paramters:paramter]; +} + ++ (void)startReportSDKWithEventKey:(NSString *)eventKey paramters:(NSMutableDictionary *)paramter { + // sdk版本 + paramter[[NSString stringWithFormat:@"%@sdk_version",[productName lowercaseString]]] = sdkVersion; + paramter[[NSString stringWithFormat:@"%@sdk_version_code",[productName lowercaseString]]] = sdkVersionName; + //包名 + paramter[kQCloudQualityBundleIDKey] = [[[NSBundle mainBundle] infoDictionary] objectForKey:@"CFBundleIdentifier"]; + //app名 + paramter[kQCloudQualityAppNameKey] = [[[NSBundle mainBundle] infoDictionary] objectForKey:@"CFBundleName"]; + //当前网络状况 + paramter[kQCloudQualityNetworkTypeKey] = QCloudNetworkSituationToString([QCloudNetEnv shareEnv].currentNetStatus); +#if defined(DEBUG) && DEBUG +#else + [self startReportWithEventKey:eventKey serviceKey:nil paramters:[paramter copy]]; +#endif +} + ++ (void)startReportWithEventKey:(NSString *)eventKey serviceKey:(NSString *)serviceKey paramters:(NSDictionary *)paramter { + + + Class cls = NSClassFromString(@"QCloudTrackService"); + if (cls) { + id instance = [cls performSelector:NSSelectorFromString(@"singleService")]; + SEL selector = NSSelectorFromString(@"reportWithEventCode:params:serviceKey:"); + + if ([instance respondsToSelector:selector]) { + if (!serviceKey) { + serviceKey = [self qcloud_trackSDKEventKey]; + } + NSMethodSignature *methodSignature = [instance methodSignatureForSelector:selector]; + NSInvocation *invocation = [NSInvocation invocationWithMethodSignature:methodSignature]; + [invocation setSelector:selector]; + [invocation setArgument:&eventKey atIndex:2]; + [invocation setArgument:¶mter atIndex:3]; + [invocation setArgument:&serviceKey atIndex:4]; + [invocation invokeWithTarget:instance]; + } + } +} + +//可以传多个参数的方法 ++ (id)invokeClassMethod:(id)obj sel:(SEL)selector withObjects:(NSArray *)objects { + id returnValue; + + // 方法签名 + NSMethodSignature *signature = [obj methodSignatureForSelector:selector]; + if (signature == nil) { + return returnValue; + } + + NSInvocation *invocation = [NSInvocation invocationWithMethodSignature:signature]; + if (signature.numberOfArguments < 1) { + return returnValue; + } + + invocation.target = obj; + invocation.selector = selector; + + // 设置参数 + NSInteger paramsCount = signature.numberOfArguments - 2; // 除self、_cmd以外的参数个数 + paramsCount = MIN(paramsCount, objects.count); + for (NSInteger i = 0; i < paramsCount; i++) { + id object = objects[i]; + if ([object isKindOfClass:[NSNull class]]) + continue; + [invocation setArgument:&object atIndex:i + 2]; + } + + // 调用方法 + [invocation invoke]; + + // 获取返回值 + if (signature.methodReturnLength) { + [invocation getReturnValue:&returnValue]; + } + + return returnValue; +} + +#pragma mark - utils + + +//获取上报的EventKey ++ (NSString *)qcloud_trackSDKEventKey{ + return [NSString stringWithFormat:@"qcloud_track_%@_sdk",productName.lowercaseString]; +} + ++ (BOOL)isErrorInsterested:(NSError *)error { + return [NSError isNetworkErrorAndRecoverable:error]; +} ++ (NSString *)getServiceNameFromClass:(Class )request{ + NSString *serviceName = NSStringFromClass([request class]) ; + if([serviceName isEqualToString:[NSString stringWithFormat:@"QCloudCOS%@UploadObjectRequest",[productName uppercaseString]]]){ + return @"UploadTask"; + } + if([serviceName isEqualToString:@"QCloudCOSXMLCopyObjectRequest"]){ + return @"CopyTask"; + } + if([serviceName isEqualToString:@"QCloudGetObjectRequest"] || [serviceName isEqualToString:@"QCloudSMHDownloadFileRequest"]){ + return @"DownloadTask"; + } + if ([serviceName hasPrefix:@"QCloud"]) { + return [serviceName stringByReplacingOccurrencesOfString:@"QCloud" withString:@""]; + } + return @""; +} + +@end diff --git a/Pods/QCloudCore/QCloudCore/Classes/Base/Supervisory/QCloudSDKModuleManager.h b/Pods/QCloudCore/QCloudCore/Classes/Base/Supervisory/QCloudSDKModuleManager.h new file mode 100644 index 0000000..b045ee0 --- /dev/null +++ b/Pods/QCloudCore/QCloudCore/Classes/Base/Supervisory/QCloudSDKModuleManager.h @@ -0,0 +1,22 @@ +// +// QCloudSDKModuleManager.h +// Pods +// +// Created by Dong Zhao on 2017/5/26. +// +// + +#import + +@interface QCloudSDKModule : NSObject +@property (nonatomic, strong) NSString *version; +@property (nonatomic, strong) NSString *name; +@property (nonatomic, strong) NSString *crashID; +@end + +@interface QCloudSDKModuleManager : NSObject +@property (nonatomic, strong, readonly) NSArray *allModules; ++ (QCloudSDKModuleManager *)shareInstance; +- (void)registerModule:(QCloudSDKModule *)module; +- (void)registerModuleByJSON:(NSDictionary *)json; +@end diff --git a/Pods/QCloudCore/QCloudCore/Classes/Base/Supervisory/QCloudSDKModuleManager.m b/Pods/QCloudCore/QCloudCore/Classes/Base/Supervisory/QCloudSDKModuleManager.m new file mode 100644 index 0000000..cd44fc9 --- /dev/null +++ b/Pods/QCloudCore/QCloudCore/Classes/Base/Supervisory/QCloudSDKModuleManager.m @@ -0,0 +1,67 @@ +// +// QCloudSDKModuleManager.m +// Pods +// +// Created by Dong Zhao on 2017/5/26. +// +// + +#import "QCloudSDKModuleManager.h" +#import "QCloudObjectModel.h" +@interface QCloudSDKModuleManager () { + NSMutableArray *_modules; +} +@property (nonatomic, strong) dispatch_queue_t dispatchQueue; +@end + +@implementation QCloudSDKModuleManager ++ (QCloudSDKModuleManager *)shareInstance { + static QCloudSDKModuleManager *share = nil; + static dispatch_once_t onceToken; + dispatch_once(&onceToken, ^{ + share = [QCloudSDKModuleManager new]; + }); + return share; +} + +- (instancetype)init { + self = [super init]; + if (!self) { + return self; + } + _dispatchQueue = dispatch_queue_create("com.tencent.qcloud.sdkmodulemanager", DISPATCH_QUEUE_SERIAL); + _modules = [NSMutableArray new]; + return self; +} + +- (NSArray *)allModules { + return [_modules copy]; +} + +- (void)registerModule:(QCloudSDKModule *)module { + if (!module) { + return; + } + @synchronized(self) { + [_modules addObject:module]; + } +} + +- (void)registerModuleByJSON:(NSDictionary *)json { + if (!json.count) { + return; + } + dispatch_async(self.dispatchQueue, ^{ + QCloudSDKModule *module = [QCloudSDKModule qcloud_modelWithJSON:json]; + if (!module) { + return; + } + [self registerModule:module]; + }); +} + +@end + +@implementation QCloudSDKModule + +@end diff --git a/Pods/QCloudCore/QCloudCore/Classes/Base/Supervisory/QCloudSupervisory.h b/Pods/QCloudCore/QCloudCore/Classes/Base/Supervisory/QCloudSupervisory.h new file mode 100644 index 0000000..2b1b642 --- /dev/null +++ b/Pods/QCloudCore/QCloudCore/Classes/Base/Supervisory/QCloudSupervisory.h @@ -0,0 +1,15 @@ +// +// QCloudSupervisory.h +// Pods +// +// Created by Dong Zhao on 2017/4/7. +// +// + +#import +@class QCloudHTTPRequest; +@interface QCloudSupervisory : NSObject ++ (QCloudSupervisory *)supervisory; + +- (void)recordRequest:(QCloudHTTPRequest *)request error:(NSError *)error; +@end diff --git a/Pods/QCloudCore/QCloudCore/Classes/Base/Supervisory/QCloudSupervisory.m b/Pods/QCloudCore/QCloudCore/Classes/Base/Supervisory/QCloudSupervisory.m new file mode 100644 index 0000000..98b3f16 --- /dev/null +++ b/Pods/QCloudCore/QCloudCore/Classes/Base/Supervisory/QCloudSupervisory.m @@ -0,0 +1,227 @@ +// +// QCloudSupervisory.m +// Pods +// +// Created by Dong Zhao on 2017/4/7. +// +// + +#import "QCloudSupervisory.h" +#import "QCloudSupervisorySession.h" +#import "QcloudObjectModel.h" +#import "QCloudSupervisoryRecord.h" +#import "QCloudHTTPRequest.h" +#import "QCloudFileUtils.h" +#import "QCloudBizHTTPRequest.h" +#import "QCloudLogger.h" +#import +#import +#if TARGET_OS_IOS +#import +#endif + +@interface QCloudSupervisory () { + QCloudSupervisorySession *_activeSession; + dispatch_queue_t _readWriteQueue; + NSMutableDictionary *_hostIps; +} +@property (nonatomic, strong, readonly) NSString *supervisoryLogFilePath; +@property (atomic, assign) BOOL uploading; +@end + +@implementation QCloudSupervisory ++ (QCloudSupervisory *)supervisory { + static QCloudSupervisory *share = nil; + static dispatch_once_t onceToken; + dispatch_once(&onceToken, ^{ + share = [QCloudSupervisory new]; + }); + return share; +} + +- (instancetype)init { + self = [super init]; + if (!self) { + return self; + } + _hostIps = [NSMutableDictionary new]; + _readWriteQueue = dispatch_queue_create("com.tencent.supervisory.log", DISPATCH_QUEUE_CONCURRENT); +#if TARGET_OS_IOS + [[NSNotificationCenter defaultCenter] addObserver:self + selector:@selector(handleEnterForground) + name:UIApplicationDidBecomeActiveNotification + object:nil]; + [[NSNotificationCenter defaultCenter] addObserver:self + selector:@selector(handleEnterBackground) + name:UIApplicationWillResignActiveNotification + object:nil]; + [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(handleTerminal) name:UIApplicationWillTerminateNotification object:nil]; +#endif + [self alternateActiveSession]; + [self handleEnterForground]; + _uploading = NO; + return self; +} + +- (NSString *)supervisoryLogFilePath { + NSString *path = QCloudApplicationLibaryPath(); + path = QCloudPathJoin(path, @"Caches"); + path = QCloudPathJoin(path, @"com.tencent.qcloud.supervisory"); + QCloudEnsurePathExist(path); + NSString *filePath = QCloudPathJoin(path, @"supervisory.log"); + if (![[NSFileManager defaultManager] fileExistsAtPath:filePath]) { + [[NSFileManager defaultManager] createFileAtPath:filePath contents:[NSData data] attributes:nil]; + } + return filePath; +} + +- (void)handleTerminal { + [self alternateActiveSession]; +} + +- (void)handleEnterForground { + dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(30 * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{ + [self tryUpload]; + }); +} + +- (void)handleEnterBackground { + [self alternateActiveSession]; +} + +- (void)alternateActiveSession { + if (!_activeSession) { + _activeSession = [[QCloudSupervisorySession alloc] init]; + } else { + __block QCloudSupervisorySession *oldSession; + dispatch_barrier_async(_readWriteQueue, ^{ + oldSession = self->_activeSession; + [self->_activeSession markFinish]; + self->_activeSession = [[QCloudSupervisorySession alloc] init]; + self->_activeSession.ips = [self->_hostIps copy]; + [self flushSession:oldSession]; + }); + } +} + +- (void)record:(QCloudSupervisoryRecord *)record { + // deal lock warning by ericcheung + dispatch_barrier_sync(_readWriteQueue, ^{ + if (!_activeSession) { + [self alternateActiveSession]; + } + [_activeSession appendRecord:record]; + }); +} + +- (void)recordRequest:(QCloudHTTPRequest *)request error:(NSError *)error { + dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_HIGH, 0), ^{ + QCloudSupervisoryNetworkRecord *record = [QCloudSupervisoryNetworkRecord new]; + record.taskTookTime = [request.benchMarkMan costTimeForKey:kTaskTookTime]; + record.calculateMD5STookTime = [request.benchMarkMan costTimeForKey:kCalculateMD5STookTime]; + record.signRequestTookTime = [request.benchMarkMan costTimeForKey:kSignRequestTookTime]; + record.dnsLookupTookTime = [request.benchMarkMan costTimeForKey:kDnsLookupTookTime]; + record.connectTookTime = [request.benchMarkMan costTimeForKey:kConnectTookTime]; + record.secureConnectTookTime = [request.benchMarkMan costTimeForKey:kSecureConnectTookTime]; + record.writeRequestBodyTookTime = [request.benchMarkMan costTimeForKey:kWriteRequestBodyTookTime]; + record.readResponseHeaderTookTime = [request.benchMarkMan costTimeForKey:kReadResponseHeaderTookTime]; + record.readResponseBodyTookTime = [request.benchMarkMan costTimeForKey:kReadResponseBodyTookTime]; + NSString *host = nil; + for (NSString *key in request.requestData.httpHeaders.allKeys) { + if ([key.lowercaseString isEqualToString:@"host"]) { + host = request.requestData.httpHeaders[key]; + } + } + [self tryMonitorIPForHost:host]; + if (!host) { + host = request.requestData.serverURL; + } + record.service = host; + + NSString *method = request.requestData.URIMethod; + if (method.length == 0) { + method = request.requestData.allParamters[@"op"]; + } + record.method = method; + record.networkStatus = [QCloudNetEnv shareEnv].currentNetStatus; + if (error) { + record.errorCode = (int)error.code; + record.errorMessage = error.localizedDescription; + } + record.userAgent = [request.requestData.httpHeaders objectForKey:HTTPHeaderUserAgent]; + + [self record:record]; + }); +} + +- (void)flushSession:(QCloudSupervisorySession *)session { + if (session.records.count == 0) { + return; + } + NSMutableData *data = [[session qcloud_modelToJSONData] mutableCopy]; + if (data) { + NSFileHandle *fileHandler = [NSFileHandle fileHandleForWritingAtPath:self.supervisoryLogFilePath]; + [data appendData:[@"\n#sss884hjksdhfjasdf\n" dataUsingEncoding:NSUTF8StringEncoding]]; + [fileHandler seekToEndOfFile]; + @try { + [fileHandler writeData:data]; + } @catch (NSException *exception) { + QCloudLogDebugE(@"Utils",@"no space left on device"); + } + } +} + +- (void)tryUpload { + if (self.uploading) { + return; + } + if (QCloudFileSize(self.supervisoryLogFilePath) > 500 * 1024) { + [self forceUploadLogs]; + } +} +- (void)forceUploadLogs { + self.uploading = YES; +} +- (void)deleteOldLog { + dispatch_barrier_sync(_readWriteQueue, ^{ + QCloudRemoveFileByPath(self.supervisoryLogFilePath); + }); +} + +- (void)tryMonitorIPForHost:(NSString *)host { + if (!host) { + return; + } + + dispatch_async(_readWriteQueue, ^{ + NSString *existIPs = self->_hostIps[host]; + if (!existIPs) { + dispatch_barrier_async(self->_readWriteQueue, ^{ + [self lookupDnsIp:host]; + }); + } + }); +} +- (void)lookupDnsIp:(NSString *)host { + Boolean result; + CFHostRef hostRef; + NSArray *addresses; + NSString *hostname = @"apple.com"; + hostRef = CFHostCreateWithName(kCFAllocatorDefault, (__bridge CFStringRef)hostname); + result = CFHostStartInfoResolution(hostRef, kCFHostAddresses, NULL); // pass an error instead of NULL here to find out why it failed + if (result == TRUE) { + addresses = (__bridge NSArray *)CFHostGetAddressing(hostRef, &result); + NSMutableArray *ips = [NSMutableArray new]; + for (NSString *obj in addresses) { + NSString *strDNS = [NSString stringWithUTF8String:inet_ntoa(*((__bridge struct in_addr *)obj))]; + [ips addObject:strDNS]; + } + NSArray *dnsips = [[NSSet setWithArray:ips] allObjects]; + _hostIps[host] = dnsips; + _activeSession.ips = [_hostIps copy]; + } else { + QCloudLogDebugE(@"Utils",@"Not resolved"); + } + CFRelease(hostRef); +} +@end diff --git a/Pods/QCloudCore/QCloudCore/Classes/Base/Supervisory/QCloudSupervisoryRecord.h b/Pods/QCloudCore/QCloudCore/Classes/Base/Supervisory/QCloudSupervisoryRecord.h new file mode 100644 index 0000000..0b1ed40 --- /dev/null +++ b/Pods/QCloudCore/QCloudCore/Classes/Base/Supervisory/QCloudSupervisoryRecord.h @@ -0,0 +1,36 @@ +// +// QCloudSupervisoryRecord.h +// Pods +// +// Created by Dong Zhao on 2017/4/7. +// +// + +#import +#import "QCloudNetEnv.h" + +typedef NS_ENUM(NSInteger, QCloudSupervisoryRecordType) { QCloudSupervisoryRecordTypeNetwork }; + +@interface QCloudSupervisoryRecord : NSObject +@property (nonatomic, strong) NSDate *logDate; +@property (nonatomic, assign) QCloudSupervisoryRecordType type; +@end + +@interface QCloudSupervisoryNetworkRecord : QCloudSupervisoryRecord +@property (nonatomic, assign) NSTimeInterval taskTookTime; +@property (nonatomic, assign) NSTimeInterval calculateMD5STookTime; +@property (nonatomic, assign) NSTimeInterval signRequestTookTime; +@property (nonatomic, assign) NSTimeInterval dnsLookupTookTime; +@property (nonatomic, assign) NSTimeInterval connectTookTime; +@property (nonatomic, assign) NSTimeInterval secureConnectTookTime; +@property (nonatomic, assign) NSTimeInterval writeRequestBodyTookTime; +@property (nonatomic, assign) NSTimeInterval readResponseHeaderTookTime; +@property (nonatomic, assign) NSTimeInterval readResponseBodyTookTime; + +@property (nonatomic, strong) NSString *service; +@property (nonatomic, strong) NSString *method; +@property (nonatomic, assign) int errorCode; +@property (nonatomic, strong) NSString *errorMessage; +@property (nonatomic, assign) QCloudNetworkStatus networkStatus; +@property (nonatomic, strong) NSString *userAgent; +@end diff --git a/Pods/QCloudCore/QCloudCore/Classes/Base/Supervisory/QCloudSupervisoryRecord.m b/Pods/QCloudCore/QCloudCore/Classes/Base/Supervisory/QCloudSupervisoryRecord.m new file mode 100644 index 0000000..0f23340 --- /dev/null +++ b/Pods/QCloudCore/QCloudCore/Classes/Base/Supervisory/QCloudSupervisoryRecord.m @@ -0,0 +1,30 @@ +// +// QCloudSupervisoryRecord.m +// Pods +// +// Created by Dong Zhao on 2017/4/7. +// +// + +#import "QCloudSupervisoryRecord.h" + +@implementation QCloudSupervisoryRecord +- (instancetype)init { + self = [super init]; + if (!self) { + return self; + } + _logDate = [NSDate date]; + return self; +} +@end + +@implementation QCloudSupervisoryNetworkRecord +- (instancetype)init { + self = [super init]; + if (self) { + self.type = QCloudSupervisoryRecordTypeNetwork; + } + return self; +} +@end diff --git a/Pods/QCloudCore/QCloudCore/Classes/Base/Supervisory/QCloudSupervisorySession.h b/Pods/QCloudCore/QCloudCore/Classes/Base/Supervisory/QCloudSupervisorySession.h new file mode 100644 index 0000000..cdfc751 --- /dev/null +++ b/Pods/QCloudCore/QCloudCore/Classes/Base/Supervisory/QCloudSupervisorySession.h @@ -0,0 +1,23 @@ +// +// QCloudSupervisorySession.h +// Pods +// +// Created by Dong Zhao on 2017/4/7. +// +// + +#import + +@class QCloudSupervisoryRecord; +@interface QCloudSupervisorySession : NSObject +@property (nonatomic, strong) NSString *traceIdentifier; +@property (nonatomic, strong) NSString *deviceUUID; +@property (nonatomic, strong) NSDate *beginDate; +@property (nonatomic, strong) NSDate *endDate; +@property (nonatomic, strong) NSArray *records; +@property (nonatomic, strong) NSDictionary *ips; ++ (instancetype)new NS_UNAVAILABLE; +- (instancetype)init; +- (void)appendRecord:(QCloudSupervisoryRecord *)record; +- (void)markFinish; +@end diff --git a/Pods/QCloudCore/QCloudCore/Classes/Base/Supervisory/QCloudSupervisorySession.m b/Pods/QCloudCore/QCloudCore/Classes/Base/Supervisory/QCloudSupervisorySession.m new file mode 100644 index 0000000..7bc036e --- /dev/null +++ b/Pods/QCloudCore/QCloudCore/Classes/Base/Supervisory/QCloudSupervisorySession.m @@ -0,0 +1,47 @@ +// +// QCloudSupervisorySession.m +// Pods +// +// Created by Dong Zhao on 2017/4/7. +// +// + +#import "QCloudSupervisorySession.h" +#import "QCloudFCUUID.h" + +@interface QCloudSupervisorySession () { + NSMutableArray *_recordArray; +} +@end + +@implementation QCloudSupervisorySession +@synthesize traceIdentifier = _traceIdentifier; +@synthesize beginDate = _beginDate; + +- (instancetype)init { + self = [super init]; + if (!self) { + return self; + } + _beginDate = [NSDate date]; + _recordArray = [NSMutableArray new]; + _traceIdentifier = [[NSUUID UUID] UUIDString]; + return self; +} + +- (void)markFinish { + _endDate = [NSDate date]; +} + +- (void)appendRecord:(QCloudSupervisoryRecord *)record { + if (!record) { + return; + } + [_recordArray addObject:record]; +} + +- (NSArray *)records { + return [_recordArray copy]; +} + +@end diff --git a/Pods/QCloudCore/README.md b/Pods/QCloudCore/README.md new file mode 100644 index 0000000..75de6cb --- /dev/null +++ b/Pods/QCloudCore/README.md @@ -0,0 +1,126 @@ +# 腾讯云 存储SDK for iOS + +![XCTest](https://github.com/tencentyun/qcloud-sdk-ios/workflows/XCTest/badge.svg) + +## 前言 +您可以在新建项目,配置好SDK或者在已有的项目中集成进SDK,或者先运行下Demo感受下SDK是如何运作的。下载Demo体验请前点击[Demo下载地址](https://github.com/tencentyun/qcloud-sdk-ios-samples.git)。 + +使用我们的SDK前,您需要配置好开发环境: +- Xcode 7 或更新的版本 +- 运行环境为 iOS 8 以上 + +本仓库中只包含了SDK的代码和docset格式的文档。如果需要更多的信息可以浏览腾讯云官网。具体SDK的文档在对应目录下的REAME.md中。 +## 产品列表 +当前仓库内提供的产品有: +- 基于 COS JSON API 封装的 SDK +- 基于 COS XML API 封装的 SDK + +## xcframework 支持 +提供xcframework打包脚本,可以自行打包。 +克隆本仓库到本地。 +执行以下命令: +``` +chmod +x xcframework_build.sh +source xcframework_build.sh +``` +### framework 说明: +* QCloudCore.xcframework 和 QCloudCOSXML.xcframework 为COS SDK核心组件,必须添加到项目中。 +* QCloudTrack.xcframework、COSBeaconAPI_Base.xcframework.zip、QimeiSDK.xcframework.zip 为日志上报组件,与 COS 上传下载功能无关,可选使用。 + +执行结束后,可在仓库根目录看到 xcframework文件夹。 + +## 集成SDK +您可以通过Cocoapods集成、下载源代码或者使用我们打包好的动态库来进行SDK的集成工作。在这里我们推荐您使用Cocoapods的方式来进行集成。在您的podfile中加入需要集成的库即可。 +如果需要使用基于XML封装的SDK: +``` +pod 'QCloudCOSXML' +``` +如果需要使用基于V4封装的,重构后的SDK: +``` +pod 'QCloudNewCOSV4' +``` +其他的具体的集成方式进入该SDK所在的文件夹中,查看README可以详见具体库的文档。 + +## 接口说明 + +SDK 包含的 COS 接口说明请查看官网的 [iOS 接口文档](https://cloud.tencent.com/document/product/436/11280)。 + +## 文档集成 +我们提供了docset格式的文档,在仓库的Documents目录中,或者可以从release中下载。您可以直接使用Dash来打开。也可以将文档集成到Xcode中去。 +### 集成文档到Xcode +您只需要docset格式的文档移动至 ~/Library/Developer/Shared/Documentation/DocSets文件夹中,然后重启Xcode即可将文档安装至Xcode中。安装成功后可以在Xcode的Help-Documentation and API Reference中查看。您也可以使用命令行完成这一过程 +``` + $ cd docset所在路径 +``` +``` + $ mkdir -p ~/Library/Developer/Shared/Documentation/DocSets +``` +``` + $ mv com.tencent.qcloudcosxml.ios.docset ~/Library/Developer/Shared/Documentation/DocSets +``` + +## iOS9适配 +我们的SDK是运行在HTTP上的。由于iOS9之后苹果引入App Transport Security (ATS)特性,集成SDK的APP需要一些额外的步骤来适配iOS9和以上的系统。 + +在集成SDK的APP的info.plist中需要添加如下代码: +``` +NSAppTransportSecurity + + NSExceptionDomains + + myqcloud.com + + NSIncludesSubdomains + + NSTemporaryExceptionAllowsInsecureHTTPLoads + + + + +``` + +## 日志 +默认情况下,SDK内部的日志并不会直接输出到控制台中。在Debug等情况下需要查看日志的话,可以设置对应的环境变量开启。开启的具体方式为:在Xcode左上角选择点击当前的target-Edit Scheme-在Enviriments Variables中填入QCloudLogLevel这个环境变量,如果需要输出所有debug信息,那么将值设置为6。 +![](http://picturebad-1253653367.coscd.myqcloud.com/134C210F-6682-4BDF-A801-E146263150D0.png) + +为了方便排查问题以及查看SDK日志,在app启动时会检测剪贴板字符串是否为“##qcloud-cos-log-ispct##”,如果是(不会对字符串本身进行任何操作),则会弹出日志alert,进行日志查看以及上传; +也可以手动关闭此功能 + +``` +[QCloudLogManager sharedInstance].shouldShowLog = NO; +``` + + +## 代码块 Code Snippet +为了提升用户体验和减少出错的概率,对于一些常见的接口我们提供了 XCode 中可以使用的代码块,将这些代码块集成进 XCode 以后,可以直接调用代码块来填充代码,减少重复的工作量。 + +集成方式: 将 CodeSnippets 文件夹下,所需要的代码块文件(以.codesnippet结尾)复制到以下文件夹中(可以在Finder里按 Command+Shift+G,填入路径跳转) +``` +~/Library/Developer/Xcode/UserData/CodeSnippets +``` + +集成后,重启 XCode ,并且输入快捷方式(例如 cos ),即可弹出对应的填充选项,直接填充完成该操作所需的基本代码, 按回车直接填充。 +![](http://imagebad-1253653367.cosgz.myqcloud.com/code-snippet.png ) +## License +Tencent Cloud SDK for iOS and samples are released under the MIT license. +~~~ +Copyright (c) 2017 腾讯云 + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. +~~~ diff --git a/Pods/Target Support Files/Pods-QXLive/Pods-QXLive.debug.xcconfig b/Pods/Target Support Files/Pods-QXLive/Pods-QXLive.debug.xcconfig index a91a721..3f1cc4f 100644 --- a/Pods/Target Support Files/Pods-QXLive/Pods-QXLive.debug.xcconfig +++ b/Pods/Target Support Files/Pods-QXLive/Pods-QXLive.debug.xcconfig @@ -2,13 +2,13 @@ ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = NO DEFINES_MODULE = YES EXCLUDED_ARCHS[sdk=iphonesimulator*] = arm64 -FRAMEWORK_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/AFNetworking" "${PODS_CONFIGURATION_BUILD_DIR}/AgoraLyricsScore" "${PODS_CONFIGURATION_BUILD_DIR}/AliyunOSSiOS" "${PODS_CONFIGURATION_BUILD_DIR}/AvoidCrash" "${PODS_CONFIGURATION_BUILD_DIR}/BRPickerView" "${PODS_CONFIGURATION_BUILD_DIR}/FMDB" "${PODS_CONFIGURATION_BUILD_DIR}/IQKeyboardManager" "${PODS_CONFIGURATION_BUILD_DIR}/JXCategoryView" "${PODS_CONFIGURATION_BUILD_DIR}/JXPagingView" "${PODS_CONFIGURATION_BUILD_DIR}/LLDebugTool" "${PODS_CONFIGURATION_BUILD_DIR}/MBProgressHUD" "${PODS_CONFIGURATION_BUILD_DIR}/MJRefresh" "${PODS_CONFIGURATION_BUILD_DIR}/MQTTClient" "${PODS_CONFIGURATION_BUILD_DIR}/Masonry" "${PODS_CONFIGURATION_BUILD_DIR}/Protobuf" "${PODS_CONFIGURATION_BUILD_DIR}/QGVAPlayer" "${PODS_CONFIGURATION_BUILD_DIR}/ReactiveObjC" "${PODS_CONFIGURATION_BUILD_DIR}/SDCycleScrollView" "${PODS_CONFIGURATION_BUILD_DIR}/SDWebImage" "${PODS_CONFIGURATION_BUILD_DIR}/SDWebImageWebPCoder" "${PODS_CONFIGURATION_BUILD_DIR}/SSZipArchive" "${PODS_CONFIGURATION_BUILD_DIR}/SVGAPlayer" "${PODS_CONFIGURATION_BUILD_DIR}/TIMCommon" "${PODS_CONFIGURATION_BUILD_DIR}/TUIChat" "${PODS_CONFIGURATION_BUILD_DIR}/TUIConversation" "${PODS_CONFIGURATION_BUILD_DIR}/TUICore" "${PODS_CONFIGURATION_BUILD_DIR}/TZImagePickerController" "${PODS_CONFIGURATION_BUILD_DIR}/YBImageBrowser" "${PODS_CONFIGURATION_BUILD_DIR}/YYCache" "${PODS_CONFIGURATION_BUILD_DIR}/YYCategories" "${PODS_CONFIGURATION_BUILD_DIR}/YYImage" "${PODS_CONFIGURATION_BUILD_DIR}/YYModel" "${PODS_CONFIGURATION_BUILD_DIR}/YYText" "${PODS_CONFIGURATION_BUILD_DIR}/YYWebImage" "${PODS_CONFIGURATION_BUILD_DIR}/Zip" "${PODS_CONFIGURATION_BUILD_DIR}/libwebp" "${PODS_ROOT}/../TencentCloudHuiyanSDKFace_framework/Libs" "${PODS_ROOT}/AgoraComponetLog" "${PODS_ROOT}/AgoraInfra_iOS" "${PODS_ROOT}/AgoraRtcEngine_iOS" "${PODS_ROOT}/AlipaySDK-iOS" "${PODS_ROOT}/Bugly" "${PODS_ROOT}/TIMPush" "${PODS_ROOT}/TXIMSDK_Plus_iOS_XCFramework" "${PODS_ROOT}/WechatOpenSDK-XCFramework" "${PODS_ROOT}/YYImage/Vendor" "${PODS_XCFRAMEWORKS_BUILD_DIR}/AgoraComponetLog" "${PODS_XCFRAMEWORKS_BUILD_DIR}/AgoraInfra_iOS" "${PODS_XCFRAMEWORKS_BUILD_DIR}/AgoraRtcEngine_iOS/AIAEC" "${PODS_XCFRAMEWORKS_BUILD_DIR}/AgoraRtcEngine_iOS/AIAECLL" "${PODS_XCFRAMEWORKS_BUILD_DIR}/AgoraRtcEngine_iOS/AINS" "${PODS_XCFRAMEWORKS_BUILD_DIR}/AgoraRtcEngine_iOS/AINSLL" "${PODS_XCFRAMEWORKS_BUILD_DIR}/AgoraRtcEngine_iOS/AudioBeauty" "${PODS_XCFRAMEWORKS_BUILD_DIR}/AgoraRtcEngine_iOS/ClearVision" "${PODS_XCFRAMEWORKS_BUILD_DIR}/AgoraRtcEngine_iOS/ContentInspect" "${PODS_XCFRAMEWORKS_BUILD_DIR}/AgoraRtcEngine_iOS/FaceCapture" "${PODS_XCFRAMEWORKS_BUILD_DIR}/AgoraRtcEngine_iOS/FaceDetection" "${PODS_XCFRAMEWORKS_BUILD_DIR}/AgoraRtcEngine_iOS/LipSync" "${PODS_XCFRAMEWORKS_BUILD_DIR}/AgoraRtcEngine_iOS/ReplayKit" "${PODS_XCFRAMEWORKS_BUILD_DIR}/AgoraRtcEngine_iOS/RtcBasic" "${PODS_XCFRAMEWORKS_BUILD_DIR}/AgoraRtcEngine_iOS/SpatialAudio" "${PODS_XCFRAMEWORKS_BUILD_DIR}/AgoraRtcEngine_iOS/VQA" "${PODS_XCFRAMEWORKS_BUILD_DIR}/AgoraRtcEngine_iOS/VideoAv1CodecDec" "${PODS_XCFRAMEWORKS_BUILD_DIR}/AgoraRtcEngine_iOS/VideoAv1CodecEnc" "${PODS_XCFRAMEWORKS_BUILD_DIR}/AgoraRtcEngine_iOS/VideoCodecDec" "${PODS_XCFRAMEWORKS_BUILD_DIR}/AgoraRtcEngine_iOS/VideoCodecEnc" "${PODS_XCFRAMEWORKS_BUILD_DIR}/AgoraRtcEngine_iOS/VirtualBackground" "${PODS_XCFRAMEWORKS_BUILD_DIR}/AlipaySDK-iOS" "${PODS_XCFRAMEWORKS_BUILD_DIR}/TIMPush" "${PODS_XCFRAMEWORKS_BUILD_DIR}/TXIMSDK_Plus_iOS_XCFramework" +FRAMEWORK_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/AFNetworking" "${PODS_CONFIGURATION_BUILD_DIR}/AgoraLyricsScore" "${PODS_CONFIGURATION_BUILD_DIR}/AliyunOSSiOS" "${PODS_CONFIGURATION_BUILD_DIR}/AvoidCrash" "${PODS_CONFIGURATION_BUILD_DIR}/BRPickerView" "${PODS_CONFIGURATION_BUILD_DIR}/FMDB" "${PODS_CONFIGURATION_BUILD_DIR}/IQKeyboardManager" "${PODS_CONFIGURATION_BUILD_DIR}/JXCategoryView" "${PODS_CONFIGURATION_BUILD_DIR}/JXPagingView" "${PODS_CONFIGURATION_BUILD_DIR}/LLDebugTool" "${PODS_CONFIGURATION_BUILD_DIR}/MBProgressHUD" "${PODS_CONFIGURATION_BUILD_DIR}/MJRefresh" "${PODS_CONFIGURATION_BUILD_DIR}/MQTTClient" "${PODS_CONFIGURATION_BUILD_DIR}/Masonry" "${PODS_CONFIGURATION_BUILD_DIR}/Protobuf" "${PODS_CONFIGURATION_BUILD_DIR}/QCloudCOSXML" "${PODS_CONFIGURATION_BUILD_DIR}/QCloudCore" "${PODS_CONFIGURATION_BUILD_DIR}/QGVAPlayer" "${PODS_CONFIGURATION_BUILD_DIR}/ReactiveObjC" "${PODS_CONFIGURATION_BUILD_DIR}/SDCycleScrollView" "${PODS_CONFIGURATION_BUILD_DIR}/SDWebImage" "${PODS_CONFIGURATION_BUILD_DIR}/SDWebImageWebPCoder" "${PODS_CONFIGURATION_BUILD_DIR}/SSZipArchive" "${PODS_CONFIGURATION_BUILD_DIR}/SVGAPlayer" "${PODS_CONFIGURATION_BUILD_DIR}/TIMCommon" "${PODS_CONFIGURATION_BUILD_DIR}/TUIChat" "${PODS_CONFIGURATION_BUILD_DIR}/TUIConversation" "${PODS_CONFIGURATION_BUILD_DIR}/TUICore" "${PODS_CONFIGURATION_BUILD_DIR}/TZImagePickerController" "${PODS_CONFIGURATION_BUILD_DIR}/YBImageBrowser" "${PODS_CONFIGURATION_BUILD_DIR}/YYCache" "${PODS_CONFIGURATION_BUILD_DIR}/YYCategories" "${PODS_CONFIGURATION_BUILD_DIR}/YYImage" "${PODS_CONFIGURATION_BUILD_DIR}/YYModel" "${PODS_CONFIGURATION_BUILD_DIR}/YYText" "${PODS_CONFIGURATION_BUILD_DIR}/YYWebImage" "${PODS_CONFIGURATION_BUILD_DIR}/Zip" "${PODS_CONFIGURATION_BUILD_DIR}/libwebp" "${PODS_ROOT}/../TencentCloudHuiyanSDKFace_framework/Libs" "${PODS_ROOT}/AgoraComponetLog" "${PODS_ROOT}/AgoraInfra_iOS" "${PODS_ROOT}/AgoraRtcEngine_iOS" "${PODS_ROOT}/AlipaySDK-iOS" "${PODS_ROOT}/Bugly" "${PODS_ROOT}/TIMPush" "${PODS_ROOT}/TXIMSDK_Plus_iOS_XCFramework" "${PODS_ROOT}/WechatOpenSDK-XCFramework" "${PODS_ROOT}/YYImage/Vendor" "${PODS_XCFRAMEWORKS_BUILD_DIR}/AgoraComponetLog" "${PODS_XCFRAMEWORKS_BUILD_DIR}/AgoraInfra_iOS" "${PODS_XCFRAMEWORKS_BUILD_DIR}/AgoraRtcEngine_iOS/AIAEC" "${PODS_XCFRAMEWORKS_BUILD_DIR}/AgoraRtcEngine_iOS/AIAECLL" "${PODS_XCFRAMEWORKS_BUILD_DIR}/AgoraRtcEngine_iOS/AINS" "${PODS_XCFRAMEWORKS_BUILD_DIR}/AgoraRtcEngine_iOS/AINSLL" "${PODS_XCFRAMEWORKS_BUILD_DIR}/AgoraRtcEngine_iOS/AudioBeauty" "${PODS_XCFRAMEWORKS_BUILD_DIR}/AgoraRtcEngine_iOS/ClearVision" "${PODS_XCFRAMEWORKS_BUILD_DIR}/AgoraRtcEngine_iOS/ContentInspect" "${PODS_XCFRAMEWORKS_BUILD_DIR}/AgoraRtcEngine_iOS/FaceCapture" "${PODS_XCFRAMEWORKS_BUILD_DIR}/AgoraRtcEngine_iOS/FaceDetection" "${PODS_XCFRAMEWORKS_BUILD_DIR}/AgoraRtcEngine_iOS/LipSync" "${PODS_XCFRAMEWORKS_BUILD_DIR}/AgoraRtcEngine_iOS/ReplayKit" "${PODS_XCFRAMEWORKS_BUILD_DIR}/AgoraRtcEngine_iOS/RtcBasic" "${PODS_XCFRAMEWORKS_BUILD_DIR}/AgoraRtcEngine_iOS/SpatialAudio" "${PODS_XCFRAMEWORKS_BUILD_DIR}/AgoraRtcEngine_iOS/VQA" "${PODS_XCFRAMEWORKS_BUILD_DIR}/AgoraRtcEngine_iOS/VideoAv1CodecDec" "${PODS_XCFRAMEWORKS_BUILD_DIR}/AgoraRtcEngine_iOS/VideoAv1CodecEnc" "${PODS_XCFRAMEWORKS_BUILD_DIR}/AgoraRtcEngine_iOS/VideoCodecDec" "${PODS_XCFRAMEWORKS_BUILD_DIR}/AgoraRtcEngine_iOS/VideoCodecEnc" "${PODS_XCFRAMEWORKS_BUILD_DIR}/AgoraRtcEngine_iOS/VirtualBackground" "${PODS_XCFRAMEWORKS_BUILD_DIR}/AlipaySDK-iOS" "${PODS_XCFRAMEWORKS_BUILD_DIR}/TIMPush" "${PODS_XCFRAMEWORKS_BUILD_DIR}/TXIMSDK_Plus_iOS_XCFramework" GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 $(inherited) GPB_USE_PROTOBUF_FRAMEWORK_IMPORTS=1 $(inherited) SD_WEBP=1 -HEADER_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/AFNetworking/AFNetworking.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/AgoraLyricsScore/AgoraLyricsScore.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/AliyunOSSiOS/AliyunOSSiOS.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/AvoidCrash/AvoidCrash.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/BRPickerView/BRPickerView.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/FMDB/FMDB.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/IQKeyboardManager/IQKeyboardManager.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/JXCategoryView/JXCategoryView.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/JXPagingView/JXPagingView.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/LLDebugTool/LLDebugTool.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/MBProgressHUD/MBProgressHUD.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/MJRefresh/MJRefresh.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/MQTTClient/MQTTClient.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/Masonry/Masonry.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/Protobuf/Protobuf.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/QGVAPlayer/QGVAPlayer.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/ReactiveObjC/ReactiveObjC.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/SDCycleScrollView/SDCycleScrollView.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/SDWebImage/SDWebImage.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/SDWebImageWebPCoder/SDWebImageWebPCoder.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/SSZipArchive/SSZipArchive.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/SVGAPlayer/SVGAPlayer.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/TIMCommon/TIMCommon.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/TUIChat/TUIChat.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/TUIConversation/TUIConversation.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/TUICore/TUICore.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/TZImagePickerController/TZImagePickerController.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/YBImageBrowser/YBImageBrowser.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/YYCache/YYCache.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/YYCategories/YYCategories.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/YYImage/YYImage.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/YYModel/YYModel.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/YYText/YYText.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/YYWebImage/YYWebImage.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/Zip/Zip.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/libwebp/libwebp.framework/Headers" "${PODS_XCFRAMEWORKS_BUILD_DIR}/WechatOpenSDK-XCFramework/Headers" **/TIMPush.xcframework/ios-arm64/TIMPush.framework/Headers/*.h +HEADER_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/AFNetworking/AFNetworking.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/AgoraLyricsScore/AgoraLyricsScore.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/AliyunOSSiOS/AliyunOSSiOS.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/AvoidCrash/AvoidCrash.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/BRPickerView/BRPickerView.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/FMDB/FMDB.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/IQKeyboardManager/IQKeyboardManager.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/JXCategoryView/JXCategoryView.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/JXPagingView/JXPagingView.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/LLDebugTool/LLDebugTool.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/MBProgressHUD/MBProgressHUD.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/MJRefresh/MJRefresh.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/MQTTClient/MQTTClient.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/Masonry/Masonry.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/Protobuf/Protobuf.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/QCloudCOSXML/QCloudCOSXML.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/QCloudCore/QCloudCore.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/QGVAPlayer/QGVAPlayer.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/ReactiveObjC/ReactiveObjC.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/SDCycleScrollView/SDCycleScrollView.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/SDWebImage/SDWebImage.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/SDWebImageWebPCoder/SDWebImageWebPCoder.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/SSZipArchive/SSZipArchive.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/SVGAPlayer/SVGAPlayer.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/TIMCommon/TIMCommon.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/TUIChat/TUIChat.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/TUIConversation/TUIConversation.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/TUICore/TUICore.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/TZImagePickerController/TZImagePickerController.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/YBImageBrowser/YBImageBrowser.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/YYCache/YYCache.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/YYCategories/YYCategories.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/YYImage/YYImage.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/YYModel/YYModel.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/YYText/YYText.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/YYWebImage/YYWebImage.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/Zip/Zip.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/libwebp/libwebp.framework/Headers" "${PODS_XCFRAMEWORKS_BUILD_DIR}/WechatOpenSDK-XCFramework/Headers" **/TIMPush.xcframework/ios-arm64/TIMPush.framework/Headers/*.h LD_RUNPATH_SEARCH_PATHS = $(inherited) /usr/lib/swift '@executable_path/Frameworks' '@loader_path/Frameworks' LIBRARY_SEARCH_PATHS = $(inherited) "${PODS_XCFRAMEWORKS_BUILD_DIR}/WechatOpenSDK-XCFramework" "${TOOLCHAIN_DIR}/usr/lib/swift/${PLATFORM_NAME}" /usr/lib/swift -OTHER_LDFLAGS = $(inherited) -ObjC -l"WechatOpenSDK" -l"c++" -l"iconv" -l"resolv" -l"sqlite3" -l"sqlite3.0" -l"z" -framework "AFNetworking" -framework "AVFoundation" -framework "AVKit" -framework "Accelerate" -framework "AgoraAiEchoCancellationExtension" -framework "AgoraAiEchoCancellationLLExtension" -framework "AgoraAiNoiseSuppressionExtension" -framework "AgoraAiNoiseSuppressionLLExtension" -framework "AgoraAudioBeautyExtension" -framework "AgoraClearVisionExtension" -framework "AgoraComponetLog" -framework "AgoraContentInspectExtension" -framework "AgoraFaceCaptureExtension" -framework "AgoraFaceDetectionExtension" -framework "AgoraLipSyncExtension" -framework "AgoraLyricsScore" -framework "AgoraReplayKitExtension" -framework "AgoraRtcKit" -framework "AgoraSoundTouch" -framework "AgoraSpatialAudioExtension" -framework "AgoraVideoAv1DecoderExtension" -framework "AgoraVideoAv1EncoderExtension" -framework "AgoraVideoDecoderExtension" -framework "AgoraVideoEncoderExtension" -framework "AgoraVideoQualityAnalyzerExtension" -framework "AgoraVideoSegmentationExtension" -framework "Agorafdkaac" -framework "Agoraffmpeg" -framework "AlipaySDK" -framework "AliyunOSSiOS" -framework "AssetsLibrary" -framework "AvoidCrash" -framework "BRPickerView" -framework "Bugly" -framework "CFNetwork" -framework "CoreFoundation" -framework "CoreGraphics" -framework "CoreImage" -framework "CoreLocation" -framework "CoreMedia" -framework "CoreMotion" -framework "CoreTelephony" -framework "CoreText" -framework "CoreVideo" -framework "FMDB" -framework "Foundation" -framework "IQKeyboardManager" -framework "ImSDK_Plus" -framework "ImageIO" -framework "JXCategoryView" -framework "JXPagingView" -framework "LLDebugTool" -framework "MBProgressHUD" -framework "MJRefresh" -framework "MQTTClient" -framework "MapKit" -framework "Masonry" -framework "MediaPlayer" -framework "Metal" -framework "MetalKit" -framework "MobileCoreServices" -framework "Photos" -framework "PhotosUI" -framework "Protobuf" -framework "QGVAPlayer" -framework "QuartzCore" -framework "QuickLook" -framework "ReactiveObjC" -framework "SDCycleScrollView" -framework "SDWebImage" -framework "SDWebImageWebPCoder" -framework "SSZipArchive" -framework "SVGAPlayer" -framework "Security" -framework "SystemConfiguration" -framework "TIMCommon" -framework "TIMPush" -framework "TUIChat" -framework "TUIConversation" -framework "TUICore" -framework "TZImagePickerController" -framework "TencentCloudHuiyanSDKFace" -framework "TuringShieldCamRisk" -framework "UIKit" -framework "VideoToolbox" -framework "WebKit" -framework "YBImageBrowser" -framework "YTCommonLiveness" -framework "YTCv" -framework "YTFaceAlignmentTinyLiveness" -framework "YTFaceDetectorLiveness" -framework "YTFaceLiveReflect" -framework "YTFaceTrackerLiveness" -framework "YTPoseDetector" -framework "YYCache" -framework "YYCategories" -framework "YYImage" -framework "YYModel" -framework "YYText" -framework "YYWebImage" -framework "YtSDKKitFrameworkTool" -framework "Zip" -framework "aosl" -framework "libwebp" -framework "tnnliveness" -framework "video_dec" -framework "video_enc" -weak_framework "AgoraAiEchoCancellationExtension" -weak_framework "AgoraAiEchoCancellationLLExtension" -weak_framework "AgoraAiNoiseSuppressionExtension" -weak_framework "AgoraAiNoiseSuppressionLLExtension" -weak_framework "AgoraAudioBeautyExtension" -weak_framework "AgoraClearVisionExtension" -weak_framework "AgoraContentInspectExtension" -weak_framework "AgoraFaceCaptureExtension" -weak_framework "AgoraFaceDetectionExtension" -weak_framework "AgoraLipSyncExtension" -weak_framework "AgoraReplayKitExtension" -weak_framework "AgoraRtcKit" -weak_framework "AgoraSoundTouch" -weak_framework "AgoraSpatialAudioExtension" -weak_framework "AgoraVideoAv1DecoderExtension" -weak_framework "AgoraVideoAv1EncoderExtension" -weak_framework "AgoraVideoDecoderExtension" -weak_framework "AgoraVideoEncoderExtension" -weak_framework "AgoraVideoQualityAnalyzerExtension" -weak_framework "AgoraVideoSegmentationExtension" -weak_framework "Agorafdkaac" -weak_framework "Agoraffmpeg" -weak_framework "video_dec" -weak_framework "video_enc" -OTHER_MODULE_VERIFIER_FLAGS = $(inherited) "-F${PODS_CONFIGURATION_BUILD_DIR}/AFNetworking" "-F${PODS_CONFIGURATION_BUILD_DIR}/AgoraComponetLog" "-F${PODS_CONFIGURATION_BUILD_DIR}/AgoraInfra_iOS" "-F${PODS_CONFIGURATION_BUILD_DIR}/AgoraLyricsScore" "-F${PODS_CONFIGURATION_BUILD_DIR}/AgoraRtcEngine_iOS" "-F${PODS_CONFIGURATION_BUILD_DIR}/AlipaySDK-iOS" "-F${PODS_CONFIGURATION_BUILD_DIR}/AliyunOSSiOS" "-F${PODS_CONFIGURATION_BUILD_DIR}/AvoidCrash" "-F${PODS_CONFIGURATION_BUILD_DIR}/BRPickerView" "-F${PODS_CONFIGURATION_BUILD_DIR}/Bugly" "-F${PODS_CONFIGURATION_BUILD_DIR}/FMDB" "-F${PODS_CONFIGURATION_BUILD_DIR}/IQKeyboardManager" "-F${PODS_CONFIGURATION_BUILD_DIR}/JXCategoryView" "-F${PODS_CONFIGURATION_BUILD_DIR}/JXPagingView" "-F${PODS_CONFIGURATION_BUILD_DIR}/LLDebugTool" "-F${PODS_CONFIGURATION_BUILD_DIR}/MBProgressHUD" "-F${PODS_CONFIGURATION_BUILD_DIR}/MJRefresh" "-F${PODS_CONFIGURATION_BUILD_DIR}/MQTTClient" "-F${PODS_CONFIGURATION_BUILD_DIR}/Masonry" "-F${PODS_CONFIGURATION_BUILD_DIR}/Protobuf" "-F${PODS_CONFIGURATION_BUILD_DIR}/QGVAPlayer" "-F${PODS_CONFIGURATION_BUILD_DIR}/ReactiveObjC" "-F${PODS_CONFIGURATION_BUILD_DIR}/SDCycleScrollView" "-F${PODS_CONFIGURATION_BUILD_DIR}/SDWebImage" "-F${PODS_CONFIGURATION_BUILD_DIR}/SDWebImageWebPCoder" "-F${PODS_CONFIGURATION_BUILD_DIR}/SSZipArchive" "-F${PODS_CONFIGURATION_BUILD_DIR}/SVGAPlayer" "-F${PODS_CONFIGURATION_BUILD_DIR}/TIMCommon" "-F${PODS_CONFIGURATION_BUILD_DIR}/TIMPush" "-F${PODS_CONFIGURATION_BUILD_DIR}/TUIChat" "-F${PODS_CONFIGURATION_BUILD_DIR}/TUIConversation" "-F${PODS_CONFIGURATION_BUILD_DIR}/TUICore" "-F${PODS_CONFIGURATION_BUILD_DIR}/TXIMSDK_Plus_iOS_XCFramework" "-F${PODS_CONFIGURATION_BUILD_DIR}/TZImagePickerController" "-F${PODS_CONFIGURATION_BUILD_DIR}/TencentCloudHuiyanSDKFace_framework" "-F${PODS_CONFIGURATION_BUILD_DIR}/WechatOpenSDK-XCFramework" "-F${PODS_CONFIGURATION_BUILD_DIR}/YBImageBrowser" "-F${PODS_CONFIGURATION_BUILD_DIR}/YYCache" "-F${PODS_CONFIGURATION_BUILD_DIR}/YYCategories" "-F${PODS_CONFIGURATION_BUILD_DIR}/YYImage" "-F${PODS_CONFIGURATION_BUILD_DIR}/YYModel" "-F${PODS_CONFIGURATION_BUILD_DIR}/YYText" "-F${PODS_CONFIGURATION_BUILD_DIR}/YYWebImage" "-F${PODS_CONFIGURATION_BUILD_DIR}/Zip" "-F${PODS_CONFIGURATION_BUILD_DIR}/libwebp" +OTHER_LDFLAGS = $(inherited) -ObjC -l"WechatOpenSDK" -l"c++" -l"iconv" -l"resolv" -l"sqlite3" -l"sqlite3.0" -l"z" -framework "AFNetworking" -framework "AVFoundation" -framework "AVKit" -framework "Accelerate" -framework "AgoraAiEchoCancellationExtension" -framework "AgoraAiEchoCancellationLLExtension" -framework "AgoraAiNoiseSuppressionExtension" -framework "AgoraAiNoiseSuppressionLLExtension" -framework "AgoraAudioBeautyExtension" -framework "AgoraClearVisionExtension" -framework "AgoraComponetLog" -framework "AgoraContentInspectExtension" -framework "AgoraFaceCaptureExtension" -framework "AgoraFaceDetectionExtension" -framework "AgoraLipSyncExtension" -framework "AgoraLyricsScore" -framework "AgoraReplayKitExtension" -framework "AgoraRtcKit" -framework "AgoraSoundTouch" -framework "AgoraSpatialAudioExtension" -framework "AgoraVideoAv1DecoderExtension" -framework "AgoraVideoAv1EncoderExtension" -framework "AgoraVideoDecoderExtension" -framework "AgoraVideoEncoderExtension" -framework "AgoraVideoQualityAnalyzerExtension" -framework "AgoraVideoSegmentationExtension" -framework "Agorafdkaac" -framework "Agoraffmpeg" -framework "AlipaySDK" -framework "AliyunOSSiOS" -framework "AssetsLibrary" -framework "AvoidCrash" -framework "BRPickerView" -framework "Bugly" -framework "CFNetwork" -framework "CoreFoundation" -framework "CoreGraphics" -framework "CoreImage" -framework "CoreLocation" -framework "CoreMedia" -framework "CoreMotion" -framework "CoreTelephony" -framework "CoreText" -framework "CoreVideo" -framework "FMDB" -framework "Foundation" -framework "IQKeyboardManager" -framework "ImSDK_Plus" -framework "ImageIO" -framework "JXCategoryView" -framework "JXPagingView" -framework "LLDebugTool" -framework "MBProgressHUD" -framework "MJRefresh" -framework "MQTTClient" -framework "MapKit" -framework "Masonry" -framework "MediaPlayer" -framework "Metal" -framework "MetalKit" -framework "MobileCoreServices" -framework "Photos" -framework "PhotosUI" -framework "Protobuf" -framework "QCloudCOSXML" -framework "QCloudCore" -framework "QGVAPlayer" -framework "QuartzCore" -framework "QuickLook" -framework "ReactiveObjC" -framework "SDCycleScrollView" -framework "SDWebImage" -framework "SDWebImageWebPCoder" -framework "SSZipArchive" -framework "SVGAPlayer" -framework "Security" -framework "SystemConfiguration" -framework "TIMCommon" -framework "TIMPush" -framework "TUIChat" -framework "TUIConversation" -framework "TUICore" -framework "TZImagePickerController" -framework "TencentCloudHuiyanSDKFace" -framework "TuringShieldCamRisk" -framework "UIKit" -framework "VideoToolbox" -framework "WebKit" -framework "YBImageBrowser" -framework "YTCommonLiveness" -framework "YTCv" -framework "YTFaceAlignmentTinyLiveness" -framework "YTFaceDetectorLiveness" -framework "YTFaceLiveReflect" -framework "YTFaceTrackerLiveness" -framework "YTPoseDetector" -framework "YYCache" -framework "YYCategories" -framework "YYImage" -framework "YYModel" -framework "YYText" -framework "YYWebImage" -framework "YtSDKKitFrameworkTool" -framework "Zip" -framework "aosl" -framework "libwebp" -framework "tnnliveness" -framework "video_dec" -framework "video_enc" -weak_framework "AgoraAiEchoCancellationExtension" -weak_framework "AgoraAiEchoCancellationLLExtension" -weak_framework "AgoraAiNoiseSuppressionExtension" -weak_framework "AgoraAiNoiseSuppressionLLExtension" -weak_framework "AgoraAudioBeautyExtension" -weak_framework "AgoraClearVisionExtension" -weak_framework "AgoraContentInspectExtension" -weak_framework "AgoraFaceCaptureExtension" -weak_framework "AgoraFaceDetectionExtension" -weak_framework "AgoraLipSyncExtension" -weak_framework "AgoraReplayKitExtension" -weak_framework "AgoraRtcKit" -weak_framework "AgoraSoundTouch" -weak_framework "AgoraSpatialAudioExtension" -weak_framework "AgoraVideoAv1DecoderExtension" -weak_framework "AgoraVideoAv1EncoderExtension" -weak_framework "AgoraVideoDecoderExtension" -weak_framework "AgoraVideoEncoderExtension" -weak_framework "AgoraVideoQualityAnalyzerExtension" -weak_framework "AgoraVideoSegmentationExtension" -weak_framework "Agorafdkaac" -weak_framework "Agoraffmpeg" -weak_framework "video_dec" -weak_framework "video_enc" +OTHER_MODULE_VERIFIER_FLAGS = $(inherited) "-F${PODS_CONFIGURATION_BUILD_DIR}/AFNetworking" "-F${PODS_CONFIGURATION_BUILD_DIR}/AgoraComponetLog" "-F${PODS_CONFIGURATION_BUILD_DIR}/AgoraInfra_iOS" "-F${PODS_CONFIGURATION_BUILD_DIR}/AgoraLyricsScore" "-F${PODS_CONFIGURATION_BUILD_DIR}/AgoraRtcEngine_iOS" "-F${PODS_CONFIGURATION_BUILD_DIR}/AlipaySDK-iOS" "-F${PODS_CONFIGURATION_BUILD_DIR}/AliyunOSSiOS" "-F${PODS_CONFIGURATION_BUILD_DIR}/AvoidCrash" "-F${PODS_CONFIGURATION_BUILD_DIR}/BRPickerView" "-F${PODS_CONFIGURATION_BUILD_DIR}/Bugly" "-F${PODS_CONFIGURATION_BUILD_DIR}/FMDB" "-F${PODS_CONFIGURATION_BUILD_DIR}/IQKeyboardManager" "-F${PODS_CONFIGURATION_BUILD_DIR}/JXCategoryView" "-F${PODS_CONFIGURATION_BUILD_DIR}/JXPagingView" "-F${PODS_CONFIGURATION_BUILD_DIR}/LLDebugTool" "-F${PODS_CONFIGURATION_BUILD_DIR}/MBProgressHUD" "-F${PODS_CONFIGURATION_BUILD_DIR}/MJRefresh" "-F${PODS_CONFIGURATION_BUILD_DIR}/MQTTClient" "-F${PODS_CONFIGURATION_BUILD_DIR}/Masonry" "-F${PODS_CONFIGURATION_BUILD_DIR}/Protobuf" "-F${PODS_CONFIGURATION_BUILD_DIR}/QCloudCOSXML" "-F${PODS_CONFIGURATION_BUILD_DIR}/QCloudCore" "-F${PODS_CONFIGURATION_BUILD_DIR}/QGVAPlayer" "-F${PODS_CONFIGURATION_BUILD_DIR}/ReactiveObjC" "-F${PODS_CONFIGURATION_BUILD_DIR}/SDCycleScrollView" "-F${PODS_CONFIGURATION_BUILD_DIR}/SDWebImage" "-F${PODS_CONFIGURATION_BUILD_DIR}/SDWebImageWebPCoder" "-F${PODS_CONFIGURATION_BUILD_DIR}/SSZipArchive" "-F${PODS_CONFIGURATION_BUILD_DIR}/SVGAPlayer" "-F${PODS_CONFIGURATION_BUILD_DIR}/TIMCommon" "-F${PODS_CONFIGURATION_BUILD_DIR}/TIMPush" "-F${PODS_CONFIGURATION_BUILD_DIR}/TUIChat" "-F${PODS_CONFIGURATION_BUILD_DIR}/TUIConversation" "-F${PODS_CONFIGURATION_BUILD_DIR}/TUICore" "-F${PODS_CONFIGURATION_BUILD_DIR}/TXIMSDK_Plus_iOS_XCFramework" "-F${PODS_CONFIGURATION_BUILD_DIR}/TZImagePickerController" "-F${PODS_CONFIGURATION_BUILD_DIR}/TencentCloudHuiyanSDKFace_framework" "-F${PODS_CONFIGURATION_BUILD_DIR}/WechatOpenSDK-XCFramework" "-F${PODS_CONFIGURATION_BUILD_DIR}/YBImageBrowser" "-F${PODS_CONFIGURATION_BUILD_DIR}/YYCache" "-F${PODS_CONFIGURATION_BUILD_DIR}/YYCategories" "-F${PODS_CONFIGURATION_BUILD_DIR}/YYImage" "-F${PODS_CONFIGURATION_BUILD_DIR}/YYModel" "-F${PODS_CONFIGURATION_BUILD_DIR}/YYText" "-F${PODS_CONFIGURATION_BUILD_DIR}/YYWebImage" "-F${PODS_CONFIGURATION_BUILD_DIR}/Zip" "-F${PODS_CONFIGURATION_BUILD_DIR}/libwebp" OTHER_SWIFT_FLAGS = $(inherited) -D COCOAPODS PODS_BUILD_DIR = ${BUILD_DIR} PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) diff --git a/Pods/Target Support Files/Pods-QXLive/Pods-QXLive.release.xcconfig b/Pods/Target Support Files/Pods-QXLive/Pods-QXLive.release.xcconfig index e2c77a3..b5d1e40 100644 --- a/Pods/Target Support Files/Pods-QXLive/Pods-QXLive.release.xcconfig +++ b/Pods/Target Support Files/Pods-QXLive/Pods-QXLive.release.xcconfig @@ -2,13 +2,13 @@ ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = NO DEFINES_MODULE = YES EXCLUDED_ARCHS[sdk=iphonesimulator*] = arm64 -FRAMEWORK_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/AFNetworking" "${PODS_CONFIGURATION_BUILD_DIR}/AgoraLyricsScore" "${PODS_CONFIGURATION_BUILD_DIR}/AliyunOSSiOS" "${PODS_CONFIGURATION_BUILD_DIR}/AvoidCrash" "${PODS_CONFIGURATION_BUILD_DIR}/BRPickerView" "${PODS_CONFIGURATION_BUILD_DIR}/FMDB" "${PODS_CONFIGURATION_BUILD_DIR}/IQKeyboardManager" "${PODS_CONFIGURATION_BUILD_DIR}/JXCategoryView" "${PODS_CONFIGURATION_BUILD_DIR}/JXPagingView" "${PODS_CONFIGURATION_BUILD_DIR}/MBProgressHUD" "${PODS_CONFIGURATION_BUILD_DIR}/MJRefresh" "${PODS_CONFIGURATION_BUILD_DIR}/MQTTClient" "${PODS_CONFIGURATION_BUILD_DIR}/Masonry" "${PODS_CONFIGURATION_BUILD_DIR}/Protobuf" "${PODS_CONFIGURATION_BUILD_DIR}/QGVAPlayer" "${PODS_CONFIGURATION_BUILD_DIR}/ReactiveObjC" "${PODS_CONFIGURATION_BUILD_DIR}/SDCycleScrollView" "${PODS_CONFIGURATION_BUILD_DIR}/SDWebImage" "${PODS_CONFIGURATION_BUILD_DIR}/SDWebImageWebPCoder" "${PODS_CONFIGURATION_BUILD_DIR}/SSZipArchive" "${PODS_CONFIGURATION_BUILD_DIR}/SVGAPlayer" "${PODS_CONFIGURATION_BUILD_DIR}/TIMCommon" "${PODS_CONFIGURATION_BUILD_DIR}/TUIChat" "${PODS_CONFIGURATION_BUILD_DIR}/TUIConversation" "${PODS_CONFIGURATION_BUILD_DIR}/TUICore" "${PODS_CONFIGURATION_BUILD_DIR}/TZImagePickerController" "${PODS_CONFIGURATION_BUILD_DIR}/YBImageBrowser" "${PODS_CONFIGURATION_BUILD_DIR}/YYCache" "${PODS_CONFIGURATION_BUILD_DIR}/YYCategories" "${PODS_CONFIGURATION_BUILD_DIR}/YYImage" "${PODS_CONFIGURATION_BUILD_DIR}/YYModel" "${PODS_CONFIGURATION_BUILD_DIR}/YYText" "${PODS_CONFIGURATION_BUILD_DIR}/YYWebImage" "${PODS_CONFIGURATION_BUILD_DIR}/Zip" "${PODS_CONFIGURATION_BUILD_DIR}/libwebp" "${PODS_ROOT}/../TencentCloudHuiyanSDKFace_framework/Libs" "${PODS_ROOT}/AgoraComponetLog" "${PODS_ROOT}/AgoraInfra_iOS" "${PODS_ROOT}/AgoraRtcEngine_iOS" "${PODS_ROOT}/AlipaySDK-iOS" "${PODS_ROOT}/Bugly" "${PODS_ROOT}/TIMPush" "${PODS_ROOT}/TXIMSDK_Plus_iOS_XCFramework" "${PODS_ROOT}/WechatOpenSDK-XCFramework" "${PODS_ROOT}/YYImage/Vendor" "${PODS_XCFRAMEWORKS_BUILD_DIR}/AgoraComponetLog" "${PODS_XCFRAMEWORKS_BUILD_DIR}/AgoraInfra_iOS" "${PODS_XCFRAMEWORKS_BUILD_DIR}/AgoraRtcEngine_iOS/AIAEC" "${PODS_XCFRAMEWORKS_BUILD_DIR}/AgoraRtcEngine_iOS/AIAECLL" "${PODS_XCFRAMEWORKS_BUILD_DIR}/AgoraRtcEngine_iOS/AINS" "${PODS_XCFRAMEWORKS_BUILD_DIR}/AgoraRtcEngine_iOS/AINSLL" "${PODS_XCFRAMEWORKS_BUILD_DIR}/AgoraRtcEngine_iOS/AudioBeauty" "${PODS_XCFRAMEWORKS_BUILD_DIR}/AgoraRtcEngine_iOS/ClearVision" "${PODS_XCFRAMEWORKS_BUILD_DIR}/AgoraRtcEngine_iOS/ContentInspect" "${PODS_XCFRAMEWORKS_BUILD_DIR}/AgoraRtcEngine_iOS/FaceCapture" "${PODS_XCFRAMEWORKS_BUILD_DIR}/AgoraRtcEngine_iOS/FaceDetection" "${PODS_XCFRAMEWORKS_BUILD_DIR}/AgoraRtcEngine_iOS/LipSync" "${PODS_XCFRAMEWORKS_BUILD_DIR}/AgoraRtcEngine_iOS/ReplayKit" "${PODS_XCFRAMEWORKS_BUILD_DIR}/AgoraRtcEngine_iOS/RtcBasic" "${PODS_XCFRAMEWORKS_BUILD_DIR}/AgoraRtcEngine_iOS/SpatialAudio" "${PODS_XCFRAMEWORKS_BUILD_DIR}/AgoraRtcEngine_iOS/VQA" "${PODS_XCFRAMEWORKS_BUILD_DIR}/AgoraRtcEngine_iOS/VideoAv1CodecDec" "${PODS_XCFRAMEWORKS_BUILD_DIR}/AgoraRtcEngine_iOS/VideoAv1CodecEnc" "${PODS_XCFRAMEWORKS_BUILD_DIR}/AgoraRtcEngine_iOS/VideoCodecDec" "${PODS_XCFRAMEWORKS_BUILD_DIR}/AgoraRtcEngine_iOS/VideoCodecEnc" "${PODS_XCFRAMEWORKS_BUILD_DIR}/AgoraRtcEngine_iOS/VirtualBackground" "${PODS_XCFRAMEWORKS_BUILD_DIR}/AlipaySDK-iOS" "${PODS_XCFRAMEWORKS_BUILD_DIR}/TIMPush" "${PODS_XCFRAMEWORKS_BUILD_DIR}/TXIMSDK_Plus_iOS_XCFramework" +FRAMEWORK_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/AFNetworking" "${PODS_CONFIGURATION_BUILD_DIR}/AgoraLyricsScore" "${PODS_CONFIGURATION_BUILD_DIR}/AliyunOSSiOS" "${PODS_CONFIGURATION_BUILD_DIR}/AvoidCrash" "${PODS_CONFIGURATION_BUILD_DIR}/BRPickerView" "${PODS_CONFIGURATION_BUILD_DIR}/FMDB" "${PODS_CONFIGURATION_BUILD_DIR}/IQKeyboardManager" "${PODS_CONFIGURATION_BUILD_DIR}/JXCategoryView" "${PODS_CONFIGURATION_BUILD_DIR}/JXPagingView" "${PODS_CONFIGURATION_BUILD_DIR}/MBProgressHUD" "${PODS_CONFIGURATION_BUILD_DIR}/MJRefresh" "${PODS_CONFIGURATION_BUILD_DIR}/MQTTClient" "${PODS_CONFIGURATION_BUILD_DIR}/Masonry" "${PODS_CONFIGURATION_BUILD_DIR}/Protobuf" "${PODS_CONFIGURATION_BUILD_DIR}/QCloudCOSXML" "${PODS_CONFIGURATION_BUILD_DIR}/QCloudCore" "${PODS_CONFIGURATION_BUILD_DIR}/QGVAPlayer" "${PODS_CONFIGURATION_BUILD_DIR}/ReactiveObjC" "${PODS_CONFIGURATION_BUILD_DIR}/SDCycleScrollView" "${PODS_CONFIGURATION_BUILD_DIR}/SDWebImage" "${PODS_CONFIGURATION_BUILD_DIR}/SDWebImageWebPCoder" "${PODS_CONFIGURATION_BUILD_DIR}/SSZipArchive" "${PODS_CONFIGURATION_BUILD_DIR}/SVGAPlayer" "${PODS_CONFIGURATION_BUILD_DIR}/TIMCommon" "${PODS_CONFIGURATION_BUILD_DIR}/TUIChat" "${PODS_CONFIGURATION_BUILD_DIR}/TUIConversation" "${PODS_CONFIGURATION_BUILD_DIR}/TUICore" "${PODS_CONFIGURATION_BUILD_DIR}/TZImagePickerController" "${PODS_CONFIGURATION_BUILD_DIR}/YBImageBrowser" "${PODS_CONFIGURATION_BUILD_DIR}/YYCache" "${PODS_CONFIGURATION_BUILD_DIR}/YYCategories" "${PODS_CONFIGURATION_BUILD_DIR}/YYImage" "${PODS_CONFIGURATION_BUILD_DIR}/YYModel" "${PODS_CONFIGURATION_BUILD_DIR}/YYText" "${PODS_CONFIGURATION_BUILD_DIR}/YYWebImage" "${PODS_CONFIGURATION_BUILD_DIR}/Zip" "${PODS_CONFIGURATION_BUILD_DIR}/libwebp" "${PODS_ROOT}/../TencentCloudHuiyanSDKFace_framework/Libs" "${PODS_ROOT}/AgoraComponetLog" "${PODS_ROOT}/AgoraInfra_iOS" "${PODS_ROOT}/AgoraRtcEngine_iOS" "${PODS_ROOT}/AlipaySDK-iOS" "${PODS_ROOT}/Bugly" "${PODS_ROOT}/TIMPush" "${PODS_ROOT}/TXIMSDK_Plus_iOS_XCFramework" "${PODS_ROOT}/WechatOpenSDK-XCFramework" "${PODS_ROOT}/YYImage/Vendor" "${PODS_XCFRAMEWORKS_BUILD_DIR}/AgoraComponetLog" "${PODS_XCFRAMEWORKS_BUILD_DIR}/AgoraInfra_iOS" "${PODS_XCFRAMEWORKS_BUILD_DIR}/AgoraRtcEngine_iOS/AIAEC" "${PODS_XCFRAMEWORKS_BUILD_DIR}/AgoraRtcEngine_iOS/AIAECLL" "${PODS_XCFRAMEWORKS_BUILD_DIR}/AgoraRtcEngine_iOS/AINS" "${PODS_XCFRAMEWORKS_BUILD_DIR}/AgoraRtcEngine_iOS/AINSLL" "${PODS_XCFRAMEWORKS_BUILD_DIR}/AgoraRtcEngine_iOS/AudioBeauty" "${PODS_XCFRAMEWORKS_BUILD_DIR}/AgoraRtcEngine_iOS/ClearVision" "${PODS_XCFRAMEWORKS_BUILD_DIR}/AgoraRtcEngine_iOS/ContentInspect" "${PODS_XCFRAMEWORKS_BUILD_DIR}/AgoraRtcEngine_iOS/FaceCapture" "${PODS_XCFRAMEWORKS_BUILD_DIR}/AgoraRtcEngine_iOS/FaceDetection" "${PODS_XCFRAMEWORKS_BUILD_DIR}/AgoraRtcEngine_iOS/LipSync" "${PODS_XCFRAMEWORKS_BUILD_DIR}/AgoraRtcEngine_iOS/ReplayKit" "${PODS_XCFRAMEWORKS_BUILD_DIR}/AgoraRtcEngine_iOS/RtcBasic" "${PODS_XCFRAMEWORKS_BUILD_DIR}/AgoraRtcEngine_iOS/SpatialAudio" "${PODS_XCFRAMEWORKS_BUILD_DIR}/AgoraRtcEngine_iOS/VQA" "${PODS_XCFRAMEWORKS_BUILD_DIR}/AgoraRtcEngine_iOS/VideoAv1CodecDec" "${PODS_XCFRAMEWORKS_BUILD_DIR}/AgoraRtcEngine_iOS/VideoAv1CodecEnc" "${PODS_XCFRAMEWORKS_BUILD_DIR}/AgoraRtcEngine_iOS/VideoCodecDec" "${PODS_XCFRAMEWORKS_BUILD_DIR}/AgoraRtcEngine_iOS/VideoCodecEnc" "${PODS_XCFRAMEWORKS_BUILD_DIR}/AgoraRtcEngine_iOS/VirtualBackground" "${PODS_XCFRAMEWORKS_BUILD_DIR}/AlipaySDK-iOS" "${PODS_XCFRAMEWORKS_BUILD_DIR}/TIMPush" "${PODS_XCFRAMEWORKS_BUILD_DIR}/TXIMSDK_Plus_iOS_XCFramework" GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 $(inherited) GPB_USE_PROTOBUF_FRAMEWORK_IMPORTS=1 $(inherited) SD_WEBP=1 -HEADER_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/AFNetworking/AFNetworking.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/AgoraLyricsScore/AgoraLyricsScore.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/AliyunOSSiOS/AliyunOSSiOS.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/AvoidCrash/AvoidCrash.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/BRPickerView/BRPickerView.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/FMDB/FMDB.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/IQKeyboardManager/IQKeyboardManager.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/JXCategoryView/JXCategoryView.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/JXPagingView/JXPagingView.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/MBProgressHUD/MBProgressHUD.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/MJRefresh/MJRefresh.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/MQTTClient/MQTTClient.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/Masonry/Masonry.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/Protobuf/Protobuf.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/QGVAPlayer/QGVAPlayer.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/ReactiveObjC/ReactiveObjC.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/SDCycleScrollView/SDCycleScrollView.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/SDWebImage/SDWebImage.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/SDWebImageWebPCoder/SDWebImageWebPCoder.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/SSZipArchive/SSZipArchive.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/SVGAPlayer/SVGAPlayer.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/TIMCommon/TIMCommon.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/TUIChat/TUIChat.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/TUIConversation/TUIConversation.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/TUICore/TUICore.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/TZImagePickerController/TZImagePickerController.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/YBImageBrowser/YBImageBrowser.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/YYCache/YYCache.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/YYCategories/YYCategories.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/YYImage/YYImage.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/YYModel/YYModel.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/YYText/YYText.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/YYWebImage/YYWebImage.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/Zip/Zip.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/libwebp/libwebp.framework/Headers" "${PODS_XCFRAMEWORKS_BUILD_DIR}/WechatOpenSDK-XCFramework/Headers" **/TIMPush.xcframework/ios-arm64/TIMPush.framework/Headers/*.h +HEADER_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/AFNetworking/AFNetworking.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/AgoraLyricsScore/AgoraLyricsScore.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/AliyunOSSiOS/AliyunOSSiOS.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/AvoidCrash/AvoidCrash.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/BRPickerView/BRPickerView.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/FMDB/FMDB.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/IQKeyboardManager/IQKeyboardManager.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/JXCategoryView/JXCategoryView.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/JXPagingView/JXPagingView.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/MBProgressHUD/MBProgressHUD.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/MJRefresh/MJRefresh.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/MQTTClient/MQTTClient.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/Masonry/Masonry.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/Protobuf/Protobuf.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/QCloudCOSXML/QCloudCOSXML.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/QCloudCore/QCloudCore.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/QGVAPlayer/QGVAPlayer.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/ReactiveObjC/ReactiveObjC.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/SDCycleScrollView/SDCycleScrollView.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/SDWebImage/SDWebImage.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/SDWebImageWebPCoder/SDWebImageWebPCoder.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/SSZipArchive/SSZipArchive.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/SVGAPlayer/SVGAPlayer.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/TIMCommon/TIMCommon.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/TUIChat/TUIChat.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/TUIConversation/TUIConversation.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/TUICore/TUICore.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/TZImagePickerController/TZImagePickerController.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/YBImageBrowser/YBImageBrowser.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/YYCache/YYCache.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/YYCategories/YYCategories.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/YYImage/YYImage.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/YYModel/YYModel.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/YYText/YYText.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/YYWebImage/YYWebImage.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/Zip/Zip.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/libwebp/libwebp.framework/Headers" "${PODS_XCFRAMEWORKS_BUILD_DIR}/WechatOpenSDK-XCFramework/Headers" **/TIMPush.xcframework/ios-arm64/TIMPush.framework/Headers/*.h LD_RUNPATH_SEARCH_PATHS = $(inherited) /usr/lib/swift '@executable_path/Frameworks' '@loader_path/Frameworks' LIBRARY_SEARCH_PATHS = $(inherited) "${PODS_XCFRAMEWORKS_BUILD_DIR}/WechatOpenSDK-XCFramework" "${TOOLCHAIN_DIR}/usr/lib/swift/${PLATFORM_NAME}" /usr/lib/swift -OTHER_LDFLAGS = $(inherited) -ObjC -l"WechatOpenSDK" -l"c++" -l"iconv" -l"resolv" -l"sqlite3" -l"sqlite3.0" -l"z" -framework "AFNetworking" -framework "AVFoundation" -framework "Accelerate" -framework "AgoraAiEchoCancellationExtension" -framework "AgoraAiEchoCancellationLLExtension" -framework "AgoraAiNoiseSuppressionExtension" -framework "AgoraAiNoiseSuppressionLLExtension" -framework "AgoraAudioBeautyExtension" -framework "AgoraClearVisionExtension" -framework "AgoraComponetLog" -framework "AgoraContentInspectExtension" -framework "AgoraFaceCaptureExtension" -framework "AgoraFaceDetectionExtension" -framework "AgoraLipSyncExtension" -framework "AgoraLyricsScore" -framework "AgoraReplayKitExtension" -framework "AgoraRtcKit" -framework "AgoraSoundTouch" -framework "AgoraSpatialAudioExtension" -framework "AgoraVideoAv1DecoderExtension" -framework "AgoraVideoAv1EncoderExtension" -framework "AgoraVideoDecoderExtension" -framework "AgoraVideoEncoderExtension" -framework "AgoraVideoQualityAnalyzerExtension" -framework "AgoraVideoSegmentationExtension" -framework "Agorafdkaac" -framework "Agoraffmpeg" -framework "AlipaySDK" -framework "AliyunOSSiOS" -framework "AssetsLibrary" -framework "AvoidCrash" -framework "BRPickerView" -framework "Bugly" -framework "CFNetwork" -framework "CoreFoundation" -framework "CoreGraphics" -framework "CoreImage" -framework "CoreMedia" -framework "CoreMotion" -framework "CoreTelephony" -framework "CoreText" -framework "CoreVideo" -framework "FMDB" -framework "Foundation" -framework "IQKeyboardManager" -framework "ImSDK_Plus" -framework "ImageIO" -framework "JXCategoryView" -framework "JXPagingView" -framework "MBProgressHUD" -framework "MJRefresh" -framework "MQTTClient" -framework "Masonry" -framework "MediaPlayer" -framework "Metal" -framework "MetalKit" -framework "MobileCoreServices" -framework "Photos" -framework "PhotosUI" -framework "Protobuf" -framework "QGVAPlayer" -framework "QuartzCore" -framework "ReactiveObjC" -framework "SDCycleScrollView" -framework "SDWebImage" -framework "SDWebImageWebPCoder" -framework "SSZipArchive" -framework "SVGAPlayer" -framework "Security" -framework "SystemConfiguration" -framework "TIMCommon" -framework "TIMPush" -framework "TUIChat" -framework "TUIConversation" -framework "TUICore" -framework "TZImagePickerController" -framework "TencentCloudHuiyanSDKFace" -framework "TuringShieldCamRisk" -framework "UIKit" -framework "VideoToolbox" -framework "WebKit" -framework "YBImageBrowser" -framework "YTCommonLiveness" -framework "YTCv" -framework "YTFaceAlignmentTinyLiveness" -framework "YTFaceDetectorLiveness" -framework "YTFaceLiveReflect" -framework "YTFaceTrackerLiveness" -framework "YTPoseDetector" -framework "YYCache" -framework "YYCategories" -framework "YYImage" -framework "YYModel" -framework "YYText" -framework "YYWebImage" -framework "YtSDKKitFrameworkTool" -framework "Zip" -framework "aosl" -framework "libwebp" -framework "tnnliveness" -framework "video_dec" -framework "video_enc" -weak_framework "AgoraAiEchoCancellationExtension" -weak_framework "AgoraAiEchoCancellationLLExtension" -weak_framework "AgoraAiNoiseSuppressionExtension" -weak_framework "AgoraAiNoiseSuppressionLLExtension" -weak_framework "AgoraAudioBeautyExtension" -weak_framework "AgoraClearVisionExtension" -weak_framework "AgoraContentInspectExtension" -weak_framework "AgoraFaceCaptureExtension" -weak_framework "AgoraFaceDetectionExtension" -weak_framework "AgoraLipSyncExtension" -weak_framework "AgoraReplayKitExtension" -weak_framework "AgoraRtcKit" -weak_framework "AgoraSoundTouch" -weak_framework "AgoraSpatialAudioExtension" -weak_framework "AgoraVideoAv1DecoderExtension" -weak_framework "AgoraVideoAv1EncoderExtension" -weak_framework "AgoraVideoDecoderExtension" -weak_framework "AgoraVideoEncoderExtension" -weak_framework "AgoraVideoQualityAnalyzerExtension" -weak_framework "AgoraVideoSegmentationExtension" -weak_framework "Agorafdkaac" -weak_framework "Agoraffmpeg" -weak_framework "video_dec" -weak_framework "video_enc" -OTHER_MODULE_VERIFIER_FLAGS = $(inherited) "-F${PODS_CONFIGURATION_BUILD_DIR}/AFNetworking" "-F${PODS_CONFIGURATION_BUILD_DIR}/AgoraComponetLog" "-F${PODS_CONFIGURATION_BUILD_DIR}/AgoraInfra_iOS" "-F${PODS_CONFIGURATION_BUILD_DIR}/AgoraLyricsScore" "-F${PODS_CONFIGURATION_BUILD_DIR}/AgoraRtcEngine_iOS" "-F${PODS_CONFIGURATION_BUILD_DIR}/AlipaySDK-iOS" "-F${PODS_CONFIGURATION_BUILD_DIR}/AliyunOSSiOS" "-F${PODS_CONFIGURATION_BUILD_DIR}/AvoidCrash" "-F${PODS_CONFIGURATION_BUILD_DIR}/BRPickerView" "-F${PODS_CONFIGURATION_BUILD_DIR}/Bugly" "-F${PODS_CONFIGURATION_BUILD_DIR}/FMDB" "-F${PODS_CONFIGURATION_BUILD_DIR}/IQKeyboardManager" "-F${PODS_CONFIGURATION_BUILD_DIR}/JXCategoryView" "-F${PODS_CONFIGURATION_BUILD_DIR}/JXPagingView" "-F${PODS_CONFIGURATION_BUILD_DIR}/MBProgressHUD" "-F${PODS_CONFIGURATION_BUILD_DIR}/MJRefresh" "-F${PODS_CONFIGURATION_BUILD_DIR}/MQTTClient" "-F${PODS_CONFIGURATION_BUILD_DIR}/Masonry" "-F${PODS_CONFIGURATION_BUILD_DIR}/Protobuf" "-F${PODS_CONFIGURATION_BUILD_DIR}/QGVAPlayer" "-F${PODS_CONFIGURATION_BUILD_DIR}/ReactiveObjC" "-F${PODS_CONFIGURATION_BUILD_DIR}/SDCycleScrollView" "-F${PODS_CONFIGURATION_BUILD_DIR}/SDWebImage" "-F${PODS_CONFIGURATION_BUILD_DIR}/SDWebImageWebPCoder" "-F${PODS_CONFIGURATION_BUILD_DIR}/SSZipArchive" "-F${PODS_CONFIGURATION_BUILD_DIR}/SVGAPlayer" "-F${PODS_CONFIGURATION_BUILD_DIR}/TIMCommon" "-F${PODS_CONFIGURATION_BUILD_DIR}/TIMPush" "-F${PODS_CONFIGURATION_BUILD_DIR}/TUIChat" "-F${PODS_CONFIGURATION_BUILD_DIR}/TUIConversation" "-F${PODS_CONFIGURATION_BUILD_DIR}/TUICore" "-F${PODS_CONFIGURATION_BUILD_DIR}/TXIMSDK_Plus_iOS_XCFramework" "-F${PODS_CONFIGURATION_BUILD_DIR}/TZImagePickerController" "-F${PODS_CONFIGURATION_BUILD_DIR}/TencentCloudHuiyanSDKFace_framework" "-F${PODS_CONFIGURATION_BUILD_DIR}/WechatOpenSDK-XCFramework" "-F${PODS_CONFIGURATION_BUILD_DIR}/YBImageBrowser" "-F${PODS_CONFIGURATION_BUILD_DIR}/YYCache" "-F${PODS_CONFIGURATION_BUILD_DIR}/YYCategories" "-F${PODS_CONFIGURATION_BUILD_DIR}/YYImage" "-F${PODS_CONFIGURATION_BUILD_DIR}/YYModel" "-F${PODS_CONFIGURATION_BUILD_DIR}/YYText" "-F${PODS_CONFIGURATION_BUILD_DIR}/YYWebImage" "-F${PODS_CONFIGURATION_BUILD_DIR}/Zip" "-F${PODS_CONFIGURATION_BUILD_DIR}/libwebp" +OTHER_LDFLAGS = $(inherited) -ObjC -l"WechatOpenSDK" -l"c++" -l"iconv" -l"resolv" -l"sqlite3" -l"sqlite3.0" -l"z" -framework "AFNetworking" -framework "AVFoundation" -framework "Accelerate" -framework "AgoraAiEchoCancellationExtension" -framework "AgoraAiEchoCancellationLLExtension" -framework "AgoraAiNoiseSuppressionExtension" -framework "AgoraAiNoiseSuppressionLLExtension" -framework "AgoraAudioBeautyExtension" -framework "AgoraClearVisionExtension" -framework "AgoraComponetLog" -framework "AgoraContentInspectExtension" -framework "AgoraFaceCaptureExtension" -framework "AgoraFaceDetectionExtension" -framework "AgoraLipSyncExtension" -framework "AgoraLyricsScore" -framework "AgoraReplayKitExtension" -framework "AgoraRtcKit" -framework "AgoraSoundTouch" -framework "AgoraSpatialAudioExtension" -framework "AgoraVideoAv1DecoderExtension" -framework "AgoraVideoAv1EncoderExtension" -framework "AgoraVideoDecoderExtension" -framework "AgoraVideoEncoderExtension" -framework "AgoraVideoQualityAnalyzerExtension" -framework "AgoraVideoSegmentationExtension" -framework "Agorafdkaac" -framework "Agoraffmpeg" -framework "AlipaySDK" -framework "AliyunOSSiOS" -framework "AssetsLibrary" -framework "AvoidCrash" -framework "BRPickerView" -framework "Bugly" -framework "CFNetwork" -framework "CoreFoundation" -framework "CoreGraphics" -framework "CoreImage" -framework "CoreMedia" -framework "CoreMotion" -framework "CoreTelephony" -framework "CoreText" -framework "CoreVideo" -framework "FMDB" -framework "Foundation" -framework "IQKeyboardManager" -framework "ImSDK_Plus" -framework "ImageIO" -framework "JXCategoryView" -framework "JXPagingView" -framework "MBProgressHUD" -framework "MJRefresh" -framework "MQTTClient" -framework "Masonry" -framework "MediaPlayer" -framework "Metal" -framework "MetalKit" -framework "MobileCoreServices" -framework "Photos" -framework "PhotosUI" -framework "Protobuf" -framework "QCloudCOSXML" -framework "QCloudCore" -framework "QGVAPlayer" -framework "QuartzCore" -framework "ReactiveObjC" -framework "SDCycleScrollView" -framework "SDWebImage" -framework "SDWebImageWebPCoder" -framework "SSZipArchive" -framework "SVGAPlayer" -framework "Security" -framework "SystemConfiguration" -framework "TIMCommon" -framework "TIMPush" -framework "TUIChat" -framework "TUIConversation" -framework "TUICore" -framework "TZImagePickerController" -framework "TencentCloudHuiyanSDKFace" -framework "TuringShieldCamRisk" -framework "UIKit" -framework "VideoToolbox" -framework "WebKit" -framework "YBImageBrowser" -framework "YTCommonLiveness" -framework "YTCv" -framework "YTFaceAlignmentTinyLiveness" -framework "YTFaceDetectorLiveness" -framework "YTFaceLiveReflect" -framework "YTFaceTrackerLiveness" -framework "YTPoseDetector" -framework "YYCache" -framework "YYCategories" -framework "YYImage" -framework "YYModel" -framework "YYText" -framework "YYWebImage" -framework "YtSDKKitFrameworkTool" -framework "Zip" -framework "aosl" -framework "libwebp" -framework "tnnliveness" -framework "video_dec" -framework "video_enc" -weak_framework "AgoraAiEchoCancellationExtension" -weak_framework "AgoraAiEchoCancellationLLExtension" -weak_framework "AgoraAiNoiseSuppressionExtension" -weak_framework "AgoraAiNoiseSuppressionLLExtension" -weak_framework "AgoraAudioBeautyExtension" -weak_framework "AgoraClearVisionExtension" -weak_framework "AgoraContentInspectExtension" -weak_framework "AgoraFaceCaptureExtension" -weak_framework "AgoraFaceDetectionExtension" -weak_framework "AgoraLipSyncExtension" -weak_framework "AgoraReplayKitExtension" -weak_framework "AgoraRtcKit" -weak_framework "AgoraSoundTouch" -weak_framework "AgoraSpatialAudioExtension" -weak_framework "AgoraVideoAv1DecoderExtension" -weak_framework "AgoraVideoAv1EncoderExtension" -weak_framework "AgoraVideoDecoderExtension" -weak_framework "AgoraVideoEncoderExtension" -weak_framework "AgoraVideoQualityAnalyzerExtension" -weak_framework "AgoraVideoSegmentationExtension" -weak_framework "Agorafdkaac" -weak_framework "Agoraffmpeg" -weak_framework "video_dec" -weak_framework "video_enc" +OTHER_MODULE_VERIFIER_FLAGS = $(inherited) "-F${PODS_CONFIGURATION_BUILD_DIR}/AFNetworking" "-F${PODS_CONFIGURATION_BUILD_DIR}/AgoraComponetLog" "-F${PODS_CONFIGURATION_BUILD_DIR}/AgoraInfra_iOS" "-F${PODS_CONFIGURATION_BUILD_DIR}/AgoraLyricsScore" "-F${PODS_CONFIGURATION_BUILD_DIR}/AgoraRtcEngine_iOS" "-F${PODS_CONFIGURATION_BUILD_DIR}/AlipaySDK-iOS" "-F${PODS_CONFIGURATION_BUILD_DIR}/AliyunOSSiOS" "-F${PODS_CONFIGURATION_BUILD_DIR}/AvoidCrash" "-F${PODS_CONFIGURATION_BUILD_DIR}/BRPickerView" "-F${PODS_CONFIGURATION_BUILD_DIR}/Bugly" "-F${PODS_CONFIGURATION_BUILD_DIR}/FMDB" "-F${PODS_CONFIGURATION_BUILD_DIR}/IQKeyboardManager" "-F${PODS_CONFIGURATION_BUILD_DIR}/JXCategoryView" "-F${PODS_CONFIGURATION_BUILD_DIR}/JXPagingView" "-F${PODS_CONFIGURATION_BUILD_DIR}/MBProgressHUD" "-F${PODS_CONFIGURATION_BUILD_DIR}/MJRefresh" "-F${PODS_CONFIGURATION_BUILD_DIR}/MQTTClient" "-F${PODS_CONFIGURATION_BUILD_DIR}/Masonry" "-F${PODS_CONFIGURATION_BUILD_DIR}/Protobuf" "-F${PODS_CONFIGURATION_BUILD_DIR}/QCloudCOSXML" "-F${PODS_CONFIGURATION_BUILD_DIR}/QCloudCore" "-F${PODS_CONFIGURATION_BUILD_DIR}/QGVAPlayer" "-F${PODS_CONFIGURATION_BUILD_DIR}/ReactiveObjC" "-F${PODS_CONFIGURATION_BUILD_DIR}/SDCycleScrollView" "-F${PODS_CONFIGURATION_BUILD_DIR}/SDWebImage" "-F${PODS_CONFIGURATION_BUILD_DIR}/SDWebImageWebPCoder" "-F${PODS_CONFIGURATION_BUILD_DIR}/SSZipArchive" "-F${PODS_CONFIGURATION_BUILD_DIR}/SVGAPlayer" "-F${PODS_CONFIGURATION_BUILD_DIR}/TIMCommon" "-F${PODS_CONFIGURATION_BUILD_DIR}/TIMPush" "-F${PODS_CONFIGURATION_BUILD_DIR}/TUIChat" "-F${PODS_CONFIGURATION_BUILD_DIR}/TUIConversation" "-F${PODS_CONFIGURATION_BUILD_DIR}/TUICore" "-F${PODS_CONFIGURATION_BUILD_DIR}/TXIMSDK_Plus_iOS_XCFramework" "-F${PODS_CONFIGURATION_BUILD_DIR}/TZImagePickerController" "-F${PODS_CONFIGURATION_BUILD_DIR}/TencentCloudHuiyanSDKFace_framework" "-F${PODS_CONFIGURATION_BUILD_DIR}/WechatOpenSDK-XCFramework" "-F${PODS_CONFIGURATION_BUILD_DIR}/YBImageBrowser" "-F${PODS_CONFIGURATION_BUILD_DIR}/YYCache" "-F${PODS_CONFIGURATION_BUILD_DIR}/YYCategories" "-F${PODS_CONFIGURATION_BUILD_DIR}/YYImage" "-F${PODS_CONFIGURATION_BUILD_DIR}/YYModel" "-F${PODS_CONFIGURATION_BUILD_DIR}/YYText" "-F${PODS_CONFIGURATION_BUILD_DIR}/YYWebImage" "-F${PODS_CONFIGURATION_BUILD_DIR}/Zip" "-F${PODS_CONFIGURATION_BUILD_DIR}/libwebp" OTHER_SWIFT_FLAGS = $(inherited) -D COCOAPODS PODS_BUILD_DIR = ${BUILD_DIR} PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) diff --git a/Pods/Target Support Files/Pods-QXLiveDev/Pods-QXLiveDev.debug.xcconfig b/Pods/Target Support Files/Pods-QXLiveDev/Pods-QXLiveDev.debug.xcconfig index a91a721..3f1cc4f 100644 --- a/Pods/Target Support Files/Pods-QXLiveDev/Pods-QXLiveDev.debug.xcconfig +++ b/Pods/Target Support Files/Pods-QXLiveDev/Pods-QXLiveDev.debug.xcconfig @@ -2,13 +2,13 @@ ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = NO DEFINES_MODULE = YES EXCLUDED_ARCHS[sdk=iphonesimulator*] = arm64 -FRAMEWORK_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/AFNetworking" "${PODS_CONFIGURATION_BUILD_DIR}/AgoraLyricsScore" "${PODS_CONFIGURATION_BUILD_DIR}/AliyunOSSiOS" "${PODS_CONFIGURATION_BUILD_DIR}/AvoidCrash" "${PODS_CONFIGURATION_BUILD_DIR}/BRPickerView" "${PODS_CONFIGURATION_BUILD_DIR}/FMDB" "${PODS_CONFIGURATION_BUILD_DIR}/IQKeyboardManager" "${PODS_CONFIGURATION_BUILD_DIR}/JXCategoryView" "${PODS_CONFIGURATION_BUILD_DIR}/JXPagingView" "${PODS_CONFIGURATION_BUILD_DIR}/LLDebugTool" "${PODS_CONFIGURATION_BUILD_DIR}/MBProgressHUD" "${PODS_CONFIGURATION_BUILD_DIR}/MJRefresh" "${PODS_CONFIGURATION_BUILD_DIR}/MQTTClient" "${PODS_CONFIGURATION_BUILD_DIR}/Masonry" "${PODS_CONFIGURATION_BUILD_DIR}/Protobuf" "${PODS_CONFIGURATION_BUILD_DIR}/QGVAPlayer" "${PODS_CONFIGURATION_BUILD_DIR}/ReactiveObjC" "${PODS_CONFIGURATION_BUILD_DIR}/SDCycleScrollView" "${PODS_CONFIGURATION_BUILD_DIR}/SDWebImage" "${PODS_CONFIGURATION_BUILD_DIR}/SDWebImageWebPCoder" "${PODS_CONFIGURATION_BUILD_DIR}/SSZipArchive" "${PODS_CONFIGURATION_BUILD_DIR}/SVGAPlayer" "${PODS_CONFIGURATION_BUILD_DIR}/TIMCommon" "${PODS_CONFIGURATION_BUILD_DIR}/TUIChat" "${PODS_CONFIGURATION_BUILD_DIR}/TUIConversation" "${PODS_CONFIGURATION_BUILD_DIR}/TUICore" "${PODS_CONFIGURATION_BUILD_DIR}/TZImagePickerController" "${PODS_CONFIGURATION_BUILD_DIR}/YBImageBrowser" "${PODS_CONFIGURATION_BUILD_DIR}/YYCache" "${PODS_CONFIGURATION_BUILD_DIR}/YYCategories" "${PODS_CONFIGURATION_BUILD_DIR}/YYImage" "${PODS_CONFIGURATION_BUILD_DIR}/YYModel" "${PODS_CONFIGURATION_BUILD_DIR}/YYText" "${PODS_CONFIGURATION_BUILD_DIR}/YYWebImage" "${PODS_CONFIGURATION_BUILD_DIR}/Zip" "${PODS_CONFIGURATION_BUILD_DIR}/libwebp" "${PODS_ROOT}/../TencentCloudHuiyanSDKFace_framework/Libs" "${PODS_ROOT}/AgoraComponetLog" "${PODS_ROOT}/AgoraInfra_iOS" "${PODS_ROOT}/AgoraRtcEngine_iOS" "${PODS_ROOT}/AlipaySDK-iOS" "${PODS_ROOT}/Bugly" "${PODS_ROOT}/TIMPush" "${PODS_ROOT}/TXIMSDK_Plus_iOS_XCFramework" "${PODS_ROOT}/WechatOpenSDK-XCFramework" "${PODS_ROOT}/YYImage/Vendor" "${PODS_XCFRAMEWORKS_BUILD_DIR}/AgoraComponetLog" "${PODS_XCFRAMEWORKS_BUILD_DIR}/AgoraInfra_iOS" "${PODS_XCFRAMEWORKS_BUILD_DIR}/AgoraRtcEngine_iOS/AIAEC" "${PODS_XCFRAMEWORKS_BUILD_DIR}/AgoraRtcEngine_iOS/AIAECLL" "${PODS_XCFRAMEWORKS_BUILD_DIR}/AgoraRtcEngine_iOS/AINS" "${PODS_XCFRAMEWORKS_BUILD_DIR}/AgoraRtcEngine_iOS/AINSLL" "${PODS_XCFRAMEWORKS_BUILD_DIR}/AgoraRtcEngine_iOS/AudioBeauty" "${PODS_XCFRAMEWORKS_BUILD_DIR}/AgoraRtcEngine_iOS/ClearVision" "${PODS_XCFRAMEWORKS_BUILD_DIR}/AgoraRtcEngine_iOS/ContentInspect" "${PODS_XCFRAMEWORKS_BUILD_DIR}/AgoraRtcEngine_iOS/FaceCapture" "${PODS_XCFRAMEWORKS_BUILD_DIR}/AgoraRtcEngine_iOS/FaceDetection" "${PODS_XCFRAMEWORKS_BUILD_DIR}/AgoraRtcEngine_iOS/LipSync" "${PODS_XCFRAMEWORKS_BUILD_DIR}/AgoraRtcEngine_iOS/ReplayKit" "${PODS_XCFRAMEWORKS_BUILD_DIR}/AgoraRtcEngine_iOS/RtcBasic" "${PODS_XCFRAMEWORKS_BUILD_DIR}/AgoraRtcEngine_iOS/SpatialAudio" "${PODS_XCFRAMEWORKS_BUILD_DIR}/AgoraRtcEngine_iOS/VQA" "${PODS_XCFRAMEWORKS_BUILD_DIR}/AgoraRtcEngine_iOS/VideoAv1CodecDec" "${PODS_XCFRAMEWORKS_BUILD_DIR}/AgoraRtcEngine_iOS/VideoAv1CodecEnc" "${PODS_XCFRAMEWORKS_BUILD_DIR}/AgoraRtcEngine_iOS/VideoCodecDec" "${PODS_XCFRAMEWORKS_BUILD_DIR}/AgoraRtcEngine_iOS/VideoCodecEnc" "${PODS_XCFRAMEWORKS_BUILD_DIR}/AgoraRtcEngine_iOS/VirtualBackground" "${PODS_XCFRAMEWORKS_BUILD_DIR}/AlipaySDK-iOS" "${PODS_XCFRAMEWORKS_BUILD_DIR}/TIMPush" "${PODS_XCFRAMEWORKS_BUILD_DIR}/TXIMSDK_Plus_iOS_XCFramework" +FRAMEWORK_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/AFNetworking" "${PODS_CONFIGURATION_BUILD_DIR}/AgoraLyricsScore" "${PODS_CONFIGURATION_BUILD_DIR}/AliyunOSSiOS" "${PODS_CONFIGURATION_BUILD_DIR}/AvoidCrash" "${PODS_CONFIGURATION_BUILD_DIR}/BRPickerView" "${PODS_CONFIGURATION_BUILD_DIR}/FMDB" "${PODS_CONFIGURATION_BUILD_DIR}/IQKeyboardManager" "${PODS_CONFIGURATION_BUILD_DIR}/JXCategoryView" "${PODS_CONFIGURATION_BUILD_DIR}/JXPagingView" "${PODS_CONFIGURATION_BUILD_DIR}/LLDebugTool" "${PODS_CONFIGURATION_BUILD_DIR}/MBProgressHUD" "${PODS_CONFIGURATION_BUILD_DIR}/MJRefresh" "${PODS_CONFIGURATION_BUILD_DIR}/MQTTClient" "${PODS_CONFIGURATION_BUILD_DIR}/Masonry" "${PODS_CONFIGURATION_BUILD_DIR}/Protobuf" "${PODS_CONFIGURATION_BUILD_DIR}/QCloudCOSXML" "${PODS_CONFIGURATION_BUILD_DIR}/QCloudCore" "${PODS_CONFIGURATION_BUILD_DIR}/QGVAPlayer" "${PODS_CONFIGURATION_BUILD_DIR}/ReactiveObjC" "${PODS_CONFIGURATION_BUILD_DIR}/SDCycleScrollView" "${PODS_CONFIGURATION_BUILD_DIR}/SDWebImage" "${PODS_CONFIGURATION_BUILD_DIR}/SDWebImageWebPCoder" "${PODS_CONFIGURATION_BUILD_DIR}/SSZipArchive" "${PODS_CONFIGURATION_BUILD_DIR}/SVGAPlayer" "${PODS_CONFIGURATION_BUILD_DIR}/TIMCommon" "${PODS_CONFIGURATION_BUILD_DIR}/TUIChat" "${PODS_CONFIGURATION_BUILD_DIR}/TUIConversation" "${PODS_CONFIGURATION_BUILD_DIR}/TUICore" "${PODS_CONFIGURATION_BUILD_DIR}/TZImagePickerController" "${PODS_CONFIGURATION_BUILD_DIR}/YBImageBrowser" "${PODS_CONFIGURATION_BUILD_DIR}/YYCache" "${PODS_CONFIGURATION_BUILD_DIR}/YYCategories" "${PODS_CONFIGURATION_BUILD_DIR}/YYImage" "${PODS_CONFIGURATION_BUILD_DIR}/YYModel" "${PODS_CONFIGURATION_BUILD_DIR}/YYText" "${PODS_CONFIGURATION_BUILD_DIR}/YYWebImage" "${PODS_CONFIGURATION_BUILD_DIR}/Zip" "${PODS_CONFIGURATION_BUILD_DIR}/libwebp" "${PODS_ROOT}/../TencentCloudHuiyanSDKFace_framework/Libs" "${PODS_ROOT}/AgoraComponetLog" "${PODS_ROOT}/AgoraInfra_iOS" "${PODS_ROOT}/AgoraRtcEngine_iOS" "${PODS_ROOT}/AlipaySDK-iOS" "${PODS_ROOT}/Bugly" "${PODS_ROOT}/TIMPush" "${PODS_ROOT}/TXIMSDK_Plus_iOS_XCFramework" "${PODS_ROOT}/WechatOpenSDK-XCFramework" "${PODS_ROOT}/YYImage/Vendor" "${PODS_XCFRAMEWORKS_BUILD_DIR}/AgoraComponetLog" "${PODS_XCFRAMEWORKS_BUILD_DIR}/AgoraInfra_iOS" "${PODS_XCFRAMEWORKS_BUILD_DIR}/AgoraRtcEngine_iOS/AIAEC" "${PODS_XCFRAMEWORKS_BUILD_DIR}/AgoraRtcEngine_iOS/AIAECLL" "${PODS_XCFRAMEWORKS_BUILD_DIR}/AgoraRtcEngine_iOS/AINS" "${PODS_XCFRAMEWORKS_BUILD_DIR}/AgoraRtcEngine_iOS/AINSLL" "${PODS_XCFRAMEWORKS_BUILD_DIR}/AgoraRtcEngine_iOS/AudioBeauty" "${PODS_XCFRAMEWORKS_BUILD_DIR}/AgoraRtcEngine_iOS/ClearVision" "${PODS_XCFRAMEWORKS_BUILD_DIR}/AgoraRtcEngine_iOS/ContentInspect" "${PODS_XCFRAMEWORKS_BUILD_DIR}/AgoraRtcEngine_iOS/FaceCapture" "${PODS_XCFRAMEWORKS_BUILD_DIR}/AgoraRtcEngine_iOS/FaceDetection" "${PODS_XCFRAMEWORKS_BUILD_DIR}/AgoraRtcEngine_iOS/LipSync" "${PODS_XCFRAMEWORKS_BUILD_DIR}/AgoraRtcEngine_iOS/ReplayKit" "${PODS_XCFRAMEWORKS_BUILD_DIR}/AgoraRtcEngine_iOS/RtcBasic" "${PODS_XCFRAMEWORKS_BUILD_DIR}/AgoraRtcEngine_iOS/SpatialAudio" "${PODS_XCFRAMEWORKS_BUILD_DIR}/AgoraRtcEngine_iOS/VQA" "${PODS_XCFRAMEWORKS_BUILD_DIR}/AgoraRtcEngine_iOS/VideoAv1CodecDec" "${PODS_XCFRAMEWORKS_BUILD_DIR}/AgoraRtcEngine_iOS/VideoAv1CodecEnc" "${PODS_XCFRAMEWORKS_BUILD_DIR}/AgoraRtcEngine_iOS/VideoCodecDec" "${PODS_XCFRAMEWORKS_BUILD_DIR}/AgoraRtcEngine_iOS/VideoCodecEnc" "${PODS_XCFRAMEWORKS_BUILD_DIR}/AgoraRtcEngine_iOS/VirtualBackground" "${PODS_XCFRAMEWORKS_BUILD_DIR}/AlipaySDK-iOS" "${PODS_XCFRAMEWORKS_BUILD_DIR}/TIMPush" "${PODS_XCFRAMEWORKS_BUILD_DIR}/TXIMSDK_Plus_iOS_XCFramework" GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 $(inherited) GPB_USE_PROTOBUF_FRAMEWORK_IMPORTS=1 $(inherited) SD_WEBP=1 -HEADER_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/AFNetworking/AFNetworking.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/AgoraLyricsScore/AgoraLyricsScore.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/AliyunOSSiOS/AliyunOSSiOS.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/AvoidCrash/AvoidCrash.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/BRPickerView/BRPickerView.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/FMDB/FMDB.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/IQKeyboardManager/IQKeyboardManager.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/JXCategoryView/JXCategoryView.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/JXPagingView/JXPagingView.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/LLDebugTool/LLDebugTool.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/MBProgressHUD/MBProgressHUD.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/MJRefresh/MJRefresh.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/MQTTClient/MQTTClient.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/Masonry/Masonry.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/Protobuf/Protobuf.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/QGVAPlayer/QGVAPlayer.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/ReactiveObjC/ReactiveObjC.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/SDCycleScrollView/SDCycleScrollView.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/SDWebImage/SDWebImage.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/SDWebImageWebPCoder/SDWebImageWebPCoder.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/SSZipArchive/SSZipArchive.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/SVGAPlayer/SVGAPlayer.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/TIMCommon/TIMCommon.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/TUIChat/TUIChat.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/TUIConversation/TUIConversation.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/TUICore/TUICore.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/TZImagePickerController/TZImagePickerController.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/YBImageBrowser/YBImageBrowser.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/YYCache/YYCache.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/YYCategories/YYCategories.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/YYImage/YYImage.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/YYModel/YYModel.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/YYText/YYText.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/YYWebImage/YYWebImage.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/Zip/Zip.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/libwebp/libwebp.framework/Headers" "${PODS_XCFRAMEWORKS_BUILD_DIR}/WechatOpenSDK-XCFramework/Headers" **/TIMPush.xcframework/ios-arm64/TIMPush.framework/Headers/*.h +HEADER_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/AFNetworking/AFNetworking.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/AgoraLyricsScore/AgoraLyricsScore.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/AliyunOSSiOS/AliyunOSSiOS.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/AvoidCrash/AvoidCrash.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/BRPickerView/BRPickerView.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/FMDB/FMDB.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/IQKeyboardManager/IQKeyboardManager.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/JXCategoryView/JXCategoryView.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/JXPagingView/JXPagingView.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/LLDebugTool/LLDebugTool.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/MBProgressHUD/MBProgressHUD.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/MJRefresh/MJRefresh.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/MQTTClient/MQTTClient.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/Masonry/Masonry.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/Protobuf/Protobuf.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/QCloudCOSXML/QCloudCOSXML.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/QCloudCore/QCloudCore.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/QGVAPlayer/QGVAPlayer.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/ReactiveObjC/ReactiveObjC.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/SDCycleScrollView/SDCycleScrollView.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/SDWebImage/SDWebImage.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/SDWebImageWebPCoder/SDWebImageWebPCoder.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/SSZipArchive/SSZipArchive.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/SVGAPlayer/SVGAPlayer.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/TIMCommon/TIMCommon.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/TUIChat/TUIChat.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/TUIConversation/TUIConversation.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/TUICore/TUICore.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/TZImagePickerController/TZImagePickerController.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/YBImageBrowser/YBImageBrowser.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/YYCache/YYCache.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/YYCategories/YYCategories.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/YYImage/YYImage.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/YYModel/YYModel.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/YYText/YYText.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/YYWebImage/YYWebImage.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/Zip/Zip.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/libwebp/libwebp.framework/Headers" "${PODS_XCFRAMEWORKS_BUILD_DIR}/WechatOpenSDK-XCFramework/Headers" **/TIMPush.xcframework/ios-arm64/TIMPush.framework/Headers/*.h LD_RUNPATH_SEARCH_PATHS = $(inherited) /usr/lib/swift '@executable_path/Frameworks' '@loader_path/Frameworks' LIBRARY_SEARCH_PATHS = $(inherited) "${PODS_XCFRAMEWORKS_BUILD_DIR}/WechatOpenSDK-XCFramework" "${TOOLCHAIN_DIR}/usr/lib/swift/${PLATFORM_NAME}" /usr/lib/swift -OTHER_LDFLAGS = $(inherited) -ObjC -l"WechatOpenSDK" -l"c++" -l"iconv" -l"resolv" -l"sqlite3" -l"sqlite3.0" -l"z" -framework "AFNetworking" -framework "AVFoundation" -framework "AVKit" -framework "Accelerate" -framework "AgoraAiEchoCancellationExtension" -framework "AgoraAiEchoCancellationLLExtension" -framework "AgoraAiNoiseSuppressionExtension" -framework "AgoraAiNoiseSuppressionLLExtension" -framework "AgoraAudioBeautyExtension" -framework "AgoraClearVisionExtension" -framework "AgoraComponetLog" -framework "AgoraContentInspectExtension" -framework "AgoraFaceCaptureExtension" -framework "AgoraFaceDetectionExtension" -framework "AgoraLipSyncExtension" -framework "AgoraLyricsScore" -framework "AgoraReplayKitExtension" -framework "AgoraRtcKit" -framework "AgoraSoundTouch" -framework "AgoraSpatialAudioExtension" -framework "AgoraVideoAv1DecoderExtension" -framework "AgoraVideoAv1EncoderExtension" -framework "AgoraVideoDecoderExtension" -framework "AgoraVideoEncoderExtension" -framework "AgoraVideoQualityAnalyzerExtension" -framework "AgoraVideoSegmentationExtension" -framework "Agorafdkaac" -framework "Agoraffmpeg" -framework "AlipaySDK" -framework "AliyunOSSiOS" -framework "AssetsLibrary" -framework "AvoidCrash" -framework "BRPickerView" -framework "Bugly" -framework "CFNetwork" -framework "CoreFoundation" -framework "CoreGraphics" -framework "CoreImage" -framework "CoreLocation" -framework "CoreMedia" -framework "CoreMotion" -framework "CoreTelephony" -framework "CoreText" -framework "CoreVideo" -framework "FMDB" -framework "Foundation" -framework "IQKeyboardManager" -framework "ImSDK_Plus" -framework "ImageIO" -framework "JXCategoryView" -framework "JXPagingView" -framework "LLDebugTool" -framework "MBProgressHUD" -framework "MJRefresh" -framework "MQTTClient" -framework "MapKit" -framework "Masonry" -framework "MediaPlayer" -framework "Metal" -framework "MetalKit" -framework "MobileCoreServices" -framework "Photos" -framework "PhotosUI" -framework "Protobuf" -framework "QGVAPlayer" -framework "QuartzCore" -framework "QuickLook" -framework "ReactiveObjC" -framework "SDCycleScrollView" -framework "SDWebImage" -framework "SDWebImageWebPCoder" -framework "SSZipArchive" -framework "SVGAPlayer" -framework "Security" -framework "SystemConfiguration" -framework "TIMCommon" -framework "TIMPush" -framework "TUIChat" -framework "TUIConversation" -framework "TUICore" -framework "TZImagePickerController" -framework "TencentCloudHuiyanSDKFace" -framework "TuringShieldCamRisk" -framework "UIKit" -framework "VideoToolbox" -framework "WebKit" -framework "YBImageBrowser" -framework "YTCommonLiveness" -framework "YTCv" -framework "YTFaceAlignmentTinyLiveness" -framework "YTFaceDetectorLiveness" -framework "YTFaceLiveReflect" -framework "YTFaceTrackerLiveness" -framework "YTPoseDetector" -framework "YYCache" -framework "YYCategories" -framework "YYImage" -framework "YYModel" -framework "YYText" -framework "YYWebImage" -framework "YtSDKKitFrameworkTool" -framework "Zip" -framework "aosl" -framework "libwebp" -framework "tnnliveness" -framework "video_dec" -framework "video_enc" -weak_framework "AgoraAiEchoCancellationExtension" -weak_framework "AgoraAiEchoCancellationLLExtension" -weak_framework "AgoraAiNoiseSuppressionExtension" -weak_framework "AgoraAiNoiseSuppressionLLExtension" -weak_framework "AgoraAudioBeautyExtension" -weak_framework "AgoraClearVisionExtension" -weak_framework "AgoraContentInspectExtension" -weak_framework "AgoraFaceCaptureExtension" -weak_framework "AgoraFaceDetectionExtension" -weak_framework "AgoraLipSyncExtension" -weak_framework "AgoraReplayKitExtension" -weak_framework "AgoraRtcKit" -weak_framework "AgoraSoundTouch" -weak_framework "AgoraSpatialAudioExtension" -weak_framework "AgoraVideoAv1DecoderExtension" -weak_framework "AgoraVideoAv1EncoderExtension" -weak_framework "AgoraVideoDecoderExtension" -weak_framework "AgoraVideoEncoderExtension" -weak_framework "AgoraVideoQualityAnalyzerExtension" -weak_framework "AgoraVideoSegmentationExtension" -weak_framework "Agorafdkaac" -weak_framework "Agoraffmpeg" -weak_framework "video_dec" -weak_framework "video_enc" -OTHER_MODULE_VERIFIER_FLAGS = $(inherited) "-F${PODS_CONFIGURATION_BUILD_DIR}/AFNetworking" "-F${PODS_CONFIGURATION_BUILD_DIR}/AgoraComponetLog" "-F${PODS_CONFIGURATION_BUILD_DIR}/AgoraInfra_iOS" "-F${PODS_CONFIGURATION_BUILD_DIR}/AgoraLyricsScore" "-F${PODS_CONFIGURATION_BUILD_DIR}/AgoraRtcEngine_iOS" "-F${PODS_CONFIGURATION_BUILD_DIR}/AlipaySDK-iOS" "-F${PODS_CONFIGURATION_BUILD_DIR}/AliyunOSSiOS" "-F${PODS_CONFIGURATION_BUILD_DIR}/AvoidCrash" "-F${PODS_CONFIGURATION_BUILD_DIR}/BRPickerView" "-F${PODS_CONFIGURATION_BUILD_DIR}/Bugly" "-F${PODS_CONFIGURATION_BUILD_DIR}/FMDB" "-F${PODS_CONFIGURATION_BUILD_DIR}/IQKeyboardManager" "-F${PODS_CONFIGURATION_BUILD_DIR}/JXCategoryView" "-F${PODS_CONFIGURATION_BUILD_DIR}/JXPagingView" "-F${PODS_CONFIGURATION_BUILD_DIR}/LLDebugTool" "-F${PODS_CONFIGURATION_BUILD_DIR}/MBProgressHUD" "-F${PODS_CONFIGURATION_BUILD_DIR}/MJRefresh" "-F${PODS_CONFIGURATION_BUILD_DIR}/MQTTClient" "-F${PODS_CONFIGURATION_BUILD_DIR}/Masonry" "-F${PODS_CONFIGURATION_BUILD_DIR}/Protobuf" "-F${PODS_CONFIGURATION_BUILD_DIR}/QGVAPlayer" "-F${PODS_CONFIGURATION_BUILD_DIR}/ReactiveObjC" "-F${PODS_CONFIGURATION_BUILD_DIR}/SDCycleScrollView" "-F${PODS_CONFIGURATION_BUILD_DIR}/SDWebImage" "-F${PODS_CONFIGURATION_BUILD_DIR}/SDWebImageWebPCoder" "-F${PODS_CONFIGURATION_BUILD_DIR}/SSZipArchive" "-F${PODS_CONFIGURATION_BUILD_DIR}/SVGAPlayer" "-F${PODS_CONFIGURATION_BUILD_DIR}/TIMCommon" "-F${PODS_CONFIGURATION_BUILD_DIR}/TIMPush" "-F${PODS_CONFIGURATION_BUILD_DIR}/TUIChat" "-F${PODS_CONFIGURATION_BUILD_DIR}/TUIConversation" "-F${PODS_CONFIGURATION_BUILD_DIR}/TUICore" "-F${PODS_CONFIGURATION_BUILD_DIR}/TXIMSDK_Plus_iOS_XCFramework" "-F${PODS_CONFIGURATION_BUILD_DIR}/TZImagePickerController" "-F${PODS_CONFIGURATION_BUILD_DIR}/TencentCloudHuiyanSDKFace_framework" "-F${PODS_CONFIGURATION_BUILD_DIR}/WechatOpenSDK-XCFramework" "-F${PODS_CONFIGURATION_BUILD_DIR}/YBImageBrowser" "-F${PODS_CONFIGURATION_BUILD_DIR}/YYCache" "-F${PODS_CONFIGURATION_BUILD_DIR}/YYCategories" "-F${PODS_CONFIGURATION_BUILD_DIR}/YYImage" "-F${PODS_CONFIGURATION_BUILD_DIR}/YYModel" "-F${PODS_CONFIGURATION_BUILD_DIR}/YYText" "-F${PODS_CONFIGURATION_BUILD_DIR}/YYWebImage" "-F${PODS_CONFIGURATION_BUILD_DIR}/Zip" "-F${PODS_CONFIGURATION_BUILD_DIR}/libwebp" +OTHER_LDFLAGS = $(inherited) -ObjC -l"WechatOpenSDK" -l"c++" -l"iconv" -l"resolv" -l"sqlite3" -l"sqlite3.0" -l"z" -framework "AFNetworking" -framework "AVFoundation" -framework "AVKit" -framework "Accelerate" -framework "AgoraAiEchoCancellationExtension" -framework "AgoraAiEchoCancellationLLExtension" -framework "AgoraAiNoiseSuppressionExtension" -framework "AgoraAiNoiseSuppressionLLExtension" -framework "AgoraAudioBeautyExtension" -framework "AgoraClearVisionExtension" -framework "AgoraComponetLog" -framework "AgoraContentInspectExtension" -framework "AgoraFaceCaptureExtension" -framework "AgoraFaceDetectionExtension" -framework "AgoraLipSyncExtension" -framework "AgoraLyricsScore" -framework "AgoraReplayKitExtension" -framework "AgoraRtcKit" -framework "AgoraSoundTouch" -framework "AgoraSpatialAudioExtension" -framework "AgoraVideoAv1DecoderExtension" -framework "AgoraVideoAv1EncoderExtension" -framework "AgoraVideoDecoderExtension" -framework "AgoraVideoEncoderExtension" -framework "AgoraVideoQualityAnalyzerExtension" -framework "AgoraVideoSegmentationExtension" -framework "Agorafdkaac" -framework "Agoraffmpeg" -framework "AlipaySDK" -framework "AliyunOSSiOS" -framework "AssetsLibrary" -framework "AvoidCrash" -framework "BRPickerView" -framework "Bugly" -framework "CFNetwork" -framework "CoreFoundation" -framework "CoreGraphics" -framework "CoreImage" -framework "CoreLocation" -framework "CoreMedia" -framework "CoreMotion" -framework "CoreTelephony" -framework "CoreText" -framework "CoreVideo" -framework "FMDB" -framework "Foundation" -framework "IQKeyboardManager" -framework "ImSDK_Plus" -framework "ImageIO" -framework "JXCategoryView" -framework "JXPagingView" -framework "LLDebugTool" -framework "MBProgressHUD" -framework "MJRefresh" -framework "MQTTClient" -framework "MapKit" -framework "Masonry" -framework "MediaPlayer" -framework "Metal" -framework "MetalKit" -framework "MobileCoreServices" -framework "Photos" -framework "PhotosUI" -framework "Protobuf" -framework "QCloudCOSXML" -framework "QCloudCore" -framework "QGVAPlayer" -framework "QuartzCore" -framework "QuickLook" -framework "ReactiveObjC" -framework "SDCycleScrollView" -framework "SDWebImage" -framework "SDWebImageWebPCoder" -framework "SSZipArchive" -framework "SVGAPlayer" -framework "Security" -framework "SystemConfiguration" -framework "TIMCommon" -framework "TIMPush" -framework "TUIChat" -framework "TUIConversation" -framework "TUICore" -framework "TZImagePickerController" -framework "TencentCloudHuiyanSDKFace" -framework "TuringShieldCamRisk" -framework "UIKit" -framework "VideoToolbox" -framework "WebKit" -framework "YBImageBrowser" -framework "YTCommonLiveness" -framework "YTCv" -framework "YTFaceAlignmentTinyLiveness" -framework "YTFaceDetectorLiveness" -framework "YTFaceLiveReflect" -framework "YTFaceTrackerLiveness" -framework "YTPoseDetector" -framework "YYCache" -framework "YYCategories" -framework "YYImage" -framework "YYModel" -framework "YYText" -framework "YYWebImage" -framework "YtSDKKitFrameworkTool" -framework "Zip" -framework "aosl" -framework "libwebp" -framework "tnnliveness" -framework "video_dec" -framework "video_enc" -weak_framework "AgoraAiEchoCancellationExtension" -weak_framework "AgoraAiEchoCancellationLLExtension" -weak_framework "AgoraAiNoiseSuppressionExtension" -weak_framework "AgoraAiNoiseSuppressionLLExtension" -weak_framework "AgoraAudioBeautyExtension" -weak_framework "AgoraClearVisionExtension" -weak_framework "AgoraContentInspectExtension" -weak_framework "AgoraFaceCaptureExtension" -weak_framework "AgoraFaceDetectionExtension" -weak_framework "AgoraLipSyncExtension" -weak_framework "AgoraReplayKitExtension" -weak_framework "AgoraRtcKit" -weak_framework "AgoraSoundTouch" -weak_framework "AgoraSpatialAudioExtension" -weak_framework "AgoraVideoAv1DecoderExtension" -weak_framework "AgoraVideoAv1EncoderExtension" -weak_framework "AgoraVideoDecoderExtension" -weak_framework "AgoraVideoEncoderExtension" -weak_framework "AgoraVideoQualityAnalyzerExtension" -weak_framework "AgoraVideoSegmentationExtension" -weak_framework "Agorafdkaac" -weak_framework "Agoraffmpeg" -weak_framework "video_dec" -weak_framework "video_enc" +OTHER_MODULE_VERIFIER_FLAGS = $(inherited) "-F${PODS_CONFIGURATION_BUILD_DIR}/AFNetworking" "-F${PODS_CONFIGURATION_BUILD_DIR}/AgoraComponetLog" "-F${PODS_CONFIGURATION_BUILD_DIR}/AgoraInfra_iOS" "-F${PODS_CONFIGURATION_BUILD_DIR}/AgoraLyricsScore" "-F${PODS_CONFIGURATION_BUILD_DIR}/AgoraRtcEngine_iOS" "-F${PODS_CONFIGURATION_BUILD_DIR}/AlipaySDK-iOS" "-F${PODS_CONFIGURATION_BUILD_DIR}/AliyunOSSiOS" "-F${PODS_CONFIGURATION_BUILD_DIR}/AvoidCrash" "-F${PODS_CONFIGURATION_BUILD_DIR}/BRPickerView" "-F${PODS_CONFIGURATION_BUILD_DIR}/Bugly" "-F${PODS_CONFIGURATION_BUILD_DIR}/FMDB" "-F${PODS_CONFIGURATION_BUILD_DIR}/IQKeyboardManager" "-F${PODS_CONFIGURATION_BUILD_DIR}/JXCategoryView" "-F${PODS_CONFIGURATION_BUILD_DIR}/JXPagingView" "-F${PODS_CONFIGURATION_BUILD_DIR}/LLDebugTool" "-F${PODS_CONFIGURATION_BUILD_DIR}/MBProgressHUD" "-F${PODS_CONFIGURATION_BUILD_DIR}/MJRefresh" "-F${PODS_CONFIGURATION_BUILD_DIR}/MQTTClient" "-F${PODS_CONFIGURATION_BUILD_DIR}/Masonry" "-F${PODS_CONFIGURATION_BUILD_DIR}/Protobuf" "-F${PODS_CONFIGURATION_BUILD_DIR}/QCloudCOSXML" "-F${PODS_CONFIGURATION_BUILD_DIR}/QCloudCore" "-F${PODS_CONFIGURATION_BUILD_DIR}/QGVAPlayer" "-F${PODS_CONFIGURATION_BUILD_DIR}/ReactiveObjC" "-F${PODS_CONFIGURATION_BUILD_DIR}/SDCycleScrollView" "-F${PODS_CONFIGURATION_BUILD_DIR}/SDWebImage" "-F${PODS_CONFIGURATION_BUILD_DIR}/SDWebImageWebPCoder" "-F${PODS_CONFIGURATION_BUILD_DIR}/SSZipArchive" "-F${PODS_CONFIGURATION_BUILD_DIR}/SVGAPlayer" "-F${PODS_CONFIGURATION_BUILD_DIR}/TIMCommon" "-F${PODS_CONFIGURATION_BUILD_DIR}/TIMPush" "-F${PODS_CONFIGURATION_BUILD_DIR}/TUIChat" "-F${PODS_CONFIGURATION_BUILD_DIR}/TUIConversation" "-F${PODS_CONFIGURATION_BUILD_DIR}/TUICore" "-F${PODS_CONFIGURATION_BUILD_DIR}/TXIMSDK_Plus_iOS_XCFramework" "-F${PODS_CONFIGURATION_BUILD_DIR}/TZImagePickerController" "-F${PODS_CONFIGURATION_BUILD_DIR}/TencentCloudHuiyanSDKFace_framework" "-F${PODS_CONFIGURATION_BUILD_DIR}/WechatOpenSDK-XCFramework" "-F${PODS_CONFIGURATION_BUILD_DIR}/YBImageBrowser" "-F${PODS_CONFIGURATION_BUILD_DIR}/YYCache" "-F${PODS_CONFIGURATION_BUILD_DIR}/YYCategories" "-F${PODS_CONFIGURATION_BUILD_DIR}/YYImage" "-F${PODS_CONFIGURATION_BUILD_DIR}/YYModel" "-F${PODS_CONFIGURATION_BUILD_DIR}/YYText" "-F${PODS_CONFIGURATION_BUILD_DIR}/YYWebImage" "-F${PODS_CONFIGURATION_BUILD_DIR}/Zip" "-F${PODS_CONFIGURATION_BUILD_DIR}/libwebp" OTHER_SWIFT_FLAGS = $(inherited) -D COCOAPODS PODS_BUILD_DIR = ${BUILD_DIR} PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) diff --git a/Pods/Target Support Files/Pods-QXLiveDev/Pods-QXLiveDev.release.xcconfig b/Pods/Target Support Files/Pods-QXLiveDev/Pods-QXLiveDev.release.xcconfig index e2c77a3..b5d1e40 100644 --- a/Pods/Target Support Files/Pods-QXLiveDev/Pods-QXLiveDev.release.xcconfig +++ b/Pods/Target Support Files/Pods-QXLiveDev/Pods-QXLiveDev.release.xcconfig @@ -2,13 +2,13 @@ ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = NO DEFINES_MODULE = YES EXCLUDED_ARCHS[sdk=iphonesimulator*] = arm64 -FRAMEWORK_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/AFNetworking" "${PODS_CONFIGURATION_BUILD_DIR}/AgoraLyricsScore" "${PODS_CONFIGURATION_BUILD_DIR}/AliyunOSSiOS" "${PODS_CONFIGURATION_BUILD_DIR}/AvoidCrash" "${PODS_CONFIGURATION_BUILD_DIR}/BRPickerView" "${PODS_CONFIGURATION_BUILD_DIR}/FMDB" "${PODS_CONFIGURATION_BUILD_DIR}/IQKeyboardManager" "${PODS_CONFIGURATION_BUILD_DIR}/JXCategoryView" "${PODS_CONFIGURATION_BUILD_DIR}/JXPagingView" "${PODS_CONFIGURATION_BUILD_DIR}/MBProgressHUD" "${PODS_CONFIGURATION_BUILD_DIR}/MJRefresh" "${PODS_CONFIGURATION_BUILD_DIR}/MQTTClient" "${PODS_CONFIGURATION_BUILD_DIR}/Masonry" "${PODS_CONFIGURATION_BUILD_DIR}/Protobuf" "${PODS_CONFIGURATION_BUILD_DIR}/QGVAPlayer" "${PODS_CONFIGURATION_BUILD_DIR}/ReactiveObjC" "${PODS_CONFIGURATION_BUILD_DIR}/SDCycleScrollView" "${PODS_CONFIGURATION_BUILD_DIR}/SDWebImage" "${PODS_CONFIGURATION_BUILD_DIR}/SDWebImageWebPCoder" "${PODS_CONFIGURATION_BUILD_DIR}/SSZipArchive" "${PODS_CONFIGURATION_BUILD_DIR}/SVGAPlayer" "${PODS_CONFIGURATION_BUILD_DIR}/TIMCommon" "${PODS_CONFIGURATION_BUILD_DIR}/TUIChat" "${PODS_CONFIGURATION_BUILD_DIR}/TUIConversation" "${PODS_CONFIGURATION_BUILD_DIR}/TUICore" "${PODS_CONFIGURATION_BUILD_DIR}/TZImagePickerController" "${PODS_CONFIGURATION_BUILD_DIR}/YBImageBrowser" "${PODS_CONFIGURATION_BUILD_DIR}/YYCache" "${PODS_CONFIGURATION_BUILD_DIR}/YYCategories" "${PODS_CONFIGURATION_BUILD_DIR}/YYImage" "${PODS_CONFIGURATION_BUILD_DIR}/YYModel" "${PODS_CONFIGURATION_BUILD_DIR}/YYText" "${PODS_CONFIGURATION_BUILD_DIR}/YYWebImage" "${PODS_CONFIGURATION_BUILD_DIR}/Zip" "${PODS_CONFIGURATION_BUILD_DIR}/libwebp" "${PODS_ROOT}/../TencentCloudHuiyanSDKFace_framework/Libs" "${PODS_ROOT}/AgoraComponetLog" "${PODS_ROOT}/AgoraInfra_iOS" "${PODS_ROOT}/AgoraRtcEngine_iOS" "${PODS_ROOT}/AlipaySDK-iOS" "${PODS_ROOT}/Bugly" "${PODS_ROOT}/TIMPush" "${PODS_ROOT}/TXIMSDK_Plus_iOS_XCFramework" "${PODS_ROOT}/WechatOpenSDK-XCFramework" "${PODS_ROOT}/YYImage/Vendor" "${PODS_XCFRAMEWORKS_BUILD_DIR}/AgoraComponetLog" "${PODS_XCFRAMEWORKS_BUILD_DIR}/AgoraInfra_iOS" "${PODS_XCFRAMEWORKS_BUILD_DIR}/AgoraRtcEngine_iOS/AIAEC" "${PODS_XCFRAMEWORKS_BUILD_DIR}/AgoraRtcEngine_iOS/AIAECLL" "${PODS_XCFRAMEWORKS_BUILD_DIR}/AgoraRtcEngine_iOS/AINS" "${PODS_XCFRAMEWORKS_BUILD_DIR}/AgoraRtcEngine_iOS/AINSLL" "${PODS_XCFRAMEWORKS_BUILD_DIR}/AgoraRtcEngine_iOS/AudioBeauty" "${PODS_XCFRAMEWORKS_BUILD_DIR}/AgoraRtcEngine_iOS/ClearVision" "${PODS_XCFRAMEWORKS_BUILD_DIR}/AgoraRtcEngine_iOS/ContentInspect" "${PODS_XCFRAMEWORKS_BUILD_DIR}/AgoraRtcEngine_iOS/FaceCapture" "${PODS_XCFRAMEWORKS_BUILD_DIR}/AgoraRtcEngine_iOS/FaceDetection" "${PODS_XCFRAMEWORKS_BUILD_DIR}/AgoraRtcEngine_iOS/LipSync" "${PODS_XCFRAMEWORKS_BUILD_DIR}/AgoraRtcEngine_iOS/ReplayKit" "${PODS_XCFRAMEWORKS_BUILD_DIR}/AgoraRtcEngine_iOS/RtcBasic" "${PODS_XCFRAMEWORKS_BUILD_DIR}/AgoraRtcEngine_iOS/SpatialAudio" "${PODS_XCFRAMEWORKS_BUILD_DIR}/AgoraRtcEngine_iOS/VQA" "${PODS_XCFRAMEWORKS_BUILD_DIR}/AgoraRtcEngine_iOS/VideoAv1CodecDec" "${PODS_XCFRAMEWORKS_BUILD_DIR}/AgoraRtcEngine_iOS/VideoAv1CodecEnc" "${PODS_XCFRAMEWORKS_BUILD_DIR}/AgoraRtcEngine_iOS/VideoCodecDec" "${PODS_XCFRAMEWORKS_BUILD_DIR}/AgoraRtcEngine_iOS/VideoCodecEnc" "${PODS_XCFRAMEWORKS_BUILD_DIR}/AgoraRtcEngine_iOS/VirtualBackground" "${PODS_XCFRAMEWORKS_BUILD_DIR}/AlipaySDK-iOS" "${PODS_XCFRAMEWORKS_BUILD_DIR}/TIMPush" "${PODS_XCFRAMEWORKS_BUILD_DIR}/TXIMSDK_Plus_iOS_XCFramework" +FRAMEWORK_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/AFNetworking" "${PODS_CONFIGURATION_BUILD_DIR}/AgoraLyricsScore" "${PODS_CONFIGURATION_BUILD_DIR}/AliyunOSSiOS" "${PODS_CONFIGURATION_BUILD_DIR}/AvoidCrash" "${PODS_CONFIGURATION_BUILD_DIR}/BRPickerView" "${PODS_CONFIGURATION_BUILD_DIR}/FMDB" "${PODS_CONFIGURATION_BUILD_DIR}/IQKeyboardManager" "${PODS_CONFIGURATION_BUILD_DIR}/JXCategoryView" "${PODS_CONFIGURATION_BUILD_DIR}/JXPagingView" "${PODS_CONFIGURATION_BUILD_DIR}/MBProgressHUD" "${PODS_CONFIGURATION_BUILD_DIR}/MJRefresh" "${PODS_CONFIGURATION_BUILD_DIR}/MQTTClient" "${PODS_CONFIGURATION_BUILD_DIR}/Masonry" "${PODS_CONFIGURATION_BUILD_DIR}/Protobuf" "${PODS_CONFIGURATION_BUILD_DIR}/QCloudCOSXML" "${PODS_CONFIGURATION_BUILD_DIR}/QCloudCore" "${PODS_CONFIGURATION_BUILD_DIR}/QGVAPlayer" "${PODS_CONFIGURATION_BUILD_DIR}/ReactiveObjC" "${PODS_CONFIGURATION_BUILD_DIR}/SDCycleScrollView" "${PODS_CONFIGURATION_BUILD_DIR}/SDWebImage" "${PODS_CONFIGURATION_BUILD_DIR}/SDWebImageWebPCoder" "${PODS_CONFIGURATION_BUILD_DIR}/SSZipArchive" "${PODS_CONFIGURATION_BUILD_DIR}/SVGAPlayer" "${PODS_CONFIGURATION_BUILD_DIR}/TIMCommon" "${PODS_CONFIGURATION_BUILD_DIR}/TUIChat" "${PODS_CONFIGURATION_BUILD_DIR}/TUIConversation" "${PODS_CONFIGURATION_BUILD_DIR}/TUICore" "${PODS_CONFIGURATION_BUILD_DIR}/TZImagePickerController" "${PODS_CONFIGURATION_BUILD_DIR}/YBImageBrowser" "${PODS_CONFIGURATION_BUILD_DIR}/YYCache" "${PODS_CONFIGURATION_BUILD_DIR}/YYCategories" "${PODS_CONFIGURATION_BUILD_DIR}/YYImage" "${PODS_CONFIGURATION_BUILD_DIR}/YYModel" "${PODS_CONFIGURATION_BUILD_DIR}/YYText" "${PODS_CONFIGURATION_BUILD_DIR}/YYWebImage" "${PODS_CONFIGURATION_BUILD_DIR}/Zip" "${PODS_CONFIGURATION_BUILD_DIR}/libwebp" "${PODS_ROOT}/../TencentCloudHuiyanSDKFace_framework/Libs" "${PODS_ROOT}/AgoraComponetLog" "${PODS_ROOT}/AgoraInfra_iOS" "${PODS_ROOT}/AgoraRtcEngine_iOS" "${PODS_ROOT}/AlipaySDK-iOS" "${PODS_ROOT}/Bugly" "${PODS_ROOT}/TIMPush" "${PODS_ROOT}/TXIMSDK_Plus_iOS_XCFramework" "${PODS_ROOT}/WechatOpenSDK-XCFramework" "${PODS_ROOT}/YYImage/Vendor" "${PODS_XCFRAMEWORKS_BUILD_DIR}/AgoraComponetLog" "${PODS_XCFRAMEWORKS_BUILD_DIR}/AgoraInfra_iOS" "${PODS_XCFRAMEWORKS_BUILD_DIR}/AgoraRtcEngine_iOS/AIAEC" "${PODS_XCFRAMEWORKS_BUILD_DIR}/AgoraRtcEngine_iOS/AIAECLL" "${PODS_XCFRAMEWORKS_BUILD_DIR}/AgoraRtcEngine_iOS/AINS" "${PODS_XCFRAMEWORKS_BUILD_DIR}/AgoraRtcEngine_iOS/AINSLL" "${PODS_XCFRAMEWORKS_BUILD_DIR}/AgoraRtcEngine_iOS/AudioBeauty" "${PODS_XCFRAMEWORKS_BUILD_DIR}/AgoraRtcEngine_iOS/ClearVision" "${PODS_XCFRAMEWORKS_BUILD_DIR}/AgoraRtcEngine_iOS/ContentInspect" "${PODS_XCFRAMEWORKS_BUILD_DIR}/AgoraRtcEngine_iOS/FaceCapture" "${PODS_XCFRAMEWORKS_BUILD_DIR}/AgoraRtcEngine_iOS/FaceDetection" "${PODS_XCFRAMEWORKS_BUILD_DIR}/AgoraRtcEngine_iOS/LipSync" "${PODS_XCFRAMEWORKS_BUILD_DIR}/AgoraRtcEngine_iOS/ReplayKit" "${PODS_XCFRAMEWORKS_BUILD_DIR}/AgoraRtcEngine_iOS/RtcBasic" "${PODS_XCFRAMEWORKS_BUILD_DIR}/AgoraRtcEngine_iOS/SpatialAudio" "${PODS_XCFRAMEWORKS_BUILD_DIR}/AgoraRtcEngine_iOS/VQA" "${PODS_XCFRAMEWORKS_BUILD_DIR}/AgoraRtcEngine_iOS/VideoAv1CodecDec" "${PODS_XCFRAMEWORKS_BUILD_DIR}/AgoraRtcEngine_iOS/VideoAv1CodecEnc" "${PODS_XCFRAMEWORKS_BUILD_DIR}/AgoraRtcEngine_iOS/VideoCodecDec" "${PODS_XCFRAMEWORKS_BUILD_DIR}/AgoraRtcEngine_iOS/VideoCodecEnc" "${PODS_XCFRAMEWORKS_BUILD_DIR}/AgoraRtcEngine_iOS/VirtualBackground" "${PODS_XCFRAMEWORKS_BUILD_DIR}/AlipaySDK-iOS" "${PODS_XCFRAMEWORKS_BUILD_DIR}/TIMPush" "${PODS_XCFRAMEWORKS_BUILD_DIR}/TXIMSDK_Plus_iOS_XCFramework" GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 $(inherited) GPB_USE_PROTOBUF_FRAMEWORK_IMPORTS=1 $(inherited) SD_WEBP=1 -HEADER_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/AFNetworking/AFNetworking.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/AgoraLyricsScore/AgoraLyricsScore.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/AliyunOSSiOS/AliyunOSSiOS.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/AvoidCrash/AvoidCrash.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/BRPickerView/BRPickerView.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/FMDB/FMDB.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/IQKeyboardManager/IQKeyboardManager.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/JXCategoryView/JXCategoryView.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/JXPagingView/JXPagingView.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/MBProgressHUD/MBProgressHUD.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/MJRefresh/MJRefresh.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/MQTTClient/MQTTClient.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/Masonry/Masonry.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/Protobuf/Protobuf.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/QGVAPlayer/QGVAPlayer.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/ReactiveObjC/ReactiveObjC.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/SDCycleScrollView/SDCycleScrollView.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/SDWebImage/SDWebImage.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/SDWebImageWebPCoder/SDWebImageWebPCoder.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/SSZipArchive/SSZipArchive.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/SVGAPlayer/SVGAPlayer.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/TIMCommon/TIMCommon.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/TUIChat/TUIChat.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/TUIConversation/TUIConversation.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/TUICore/TUICore.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/TZImagePickerController/TZImagePickerController.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/YBImageBrowser/YBImageBrowser.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/YYCache/YYCache.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/YYCategories/YYCategories.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/YYImage/YYImage.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/YYModel/YYModel.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/YYText/YYText.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/YYWebImage/YYWebImage.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/Zip/Zip.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/libwebp/libwebp.framework/Headers" "${PODS_XCFRAMEWORKS_BUILD_DIR}/WechatOpenSDK-XCFramework/Headers" **/TIMPush.xcframework/ios-arm64/TIMPush.framework/Headers/*.h +HEADER_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/AFNetworking/AFNetworking.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/AgoraLyricsScore/AgoraLyricsScore.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/AliyunOSSiOS/AliyunOSSiOS.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/AvoidCrash/AvoidCrash.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/BRPickerView/BRPickerView.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/FMDB/FMDB.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/IQKeyboardManager/IQKeyboardManager.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/JXCategoryView/JXCategoryView.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/JXPagingView/JXPagingView.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/MBProgressHUD/MBProgressHUD.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/MJRefresh/MJRefresh.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/MQTTClient/MQTTClient.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/Masonry/Masonry.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/Protobuf/Protobuf.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/QCloudCOSXML/QCloudCOSXML.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/QCloudCore/QCloudCore.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/QGVAPlayer/QGVAPlayer.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/ReactiveObjC/ReactiveObjC.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/SDCycleScrollView/SDCycleScrollView.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/SDWebImage/SDWebImage.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/SDWebImageWebPCoder/SDWebImageWebPCoder.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/SSZipArchive/SSZipArchive.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/SVGAPlayer/SVGAPlayer.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/TIMCommon/TIMCommon.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/TUIChat/TUIChat.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/TUIConversation/TUIConversation.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/TUICore/TUICore.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/TZImagePickerController/TZImagePickerController.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/YBImageBrowser/YBImageBrowser.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/YYCache/YYCache.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/YYCategories/YYCategories.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/YYImage/YYImage.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/YYModel/YYModel.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/YYText/YYText.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/YYWebImage/YYWebImage.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/Zip/Zip.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/libwebp/libwebp.framework/Headers" "${PODS_XCFRAMEWORKS_BUILD_DIR}/WechatOpenSDK-XCFramework/Headers" **/TIMPush.xcframework/ios-arm64/TIMPush.framework/Headers/*.h LD_RUNPATH_SEARCH_PATHS = $(inherited) /usr/lib/swift '@executable_path/Frameworks' '@loader_path/Frameworks' LIBRARY_SEARCH_PATHS = $(inherited) "${PODS_XCFRAMEWORKS_BUILD_DIR}/WechatOpenSDK-XCFramework" "${TOOLCHAIN_DIR}/usr/lib/swift/${PLATFORM_NAME}" /usr/lib/swift -OTHER_LDFLAGS = $(inherited) -ObjC -l"WechatOpenSDK" -l"c++" -l"iconv" -l"resolv" -l"sqlite3" -l"sqlite3.0" -l"z" -framework "AFNetworking" -framework "AVFoundation" -framework "Accelerate" -framework "AgoraAiEchoCancellationExtension" -framework "AgoraAiEchoCancellationLLExtension" -framework "AgoraAiNoiseSuppressionExtension" -framework "AgoraAiNoiseSuppressionLLExtension" -framework "AgoraAudioBeautyExtension" -framework "AgoraClearVisionExtension" -framework "AgoraComponetLog" -framework "AgoraContentInspectExtension" -framework "AgoraFaceCaptureExtension" -framework "AgoraFaceDetectionExtension" -framework "AgoraLipSyncExtension" -framework "AgoraLyricsScore" -framework "AgoraReplayKitExtension" -framework "AgoraRtcKit" -framework "AgoraSoundTouch" -framework "AgoraSpatialAudioExtension" -framework "AgoraVideoAv1DecoderExtension" -framework "AgoraVideoAv1EncoderExtension" -framework "AgoraVideoDecoderExtension" -framework "AgoraVideoEncoderExtension" -framework "AgoraVideoQualityAnalyzerExtension" -framework "AgoraVideoSegmentationExtension" -framework "Agorafdkaac" -framework "Agoraffmpeg" -framework "AlipaySDK" -framework "AliyunOSSiOS" -framework "AssetsLibrary" -framework "AvoidCrash" -framework "BRPickerView" -framework "Bugly" -framework "CFNetwork" -framework "CoreFoundation" -framework "CoreGraphics" -framework "CoreImage" -framework "CoreMedia" -framework "CoreMotion" -framework "CoreTelephony" -framework "CoreText" -framework "CoreVideo" -framework "FMDB" -framework "Foundation" -framework "IQKeyboardManager" -framework "ImSDK_Plus" -framework "ImageIO" -framework "JXCategoryView" -framework "JXPagingView" -framework "MBProgressHUD" -framework "MJRefresh" -framework "MQTTClient" -framework "Masonry" -framework "MediaPlayer" -framework "Metal" -framework "MetalKit" -framework "MobileCoreServices" -framework "Photos" -framework "PhotosUI" -framework "Protobuf" -framework "QGVAPlayer" -framework "QuartzCore" -framework "ReactiveObjC" -framework "SDCycleScrollView" -framework "SDWebImage" -framework "SDWebImageWebPCoder" -framework "SSZipArchive" -framework "SVGAPlayer" -framework "Security" -framework "SystemConfiguration" -framework "TIMCommon" -framework "TIMPush" -framework "TUIChat" -framework "TUIConversation" -framework "TUICore" -framework "TZImagePickerController" -framework "TencentCloudHuiyanSDKFace" -framework "TuringShieldCamRisk" -framework "UIKit" -framework "VideoToolbox" -framework "WebKit" -framework "YBImageBrowser" -framework "YTCommonLiveness" -framework "YTCv" -framework "YTFaceAlignmentTinyLiveness" -framework "YTFaceDetectorLiveness" -framework "YTFaceLiveReflect" -framework "YTFaceTrackerLiveness" -framework "YTPoseDetector" -framework "YYCache" -framework "YYCategories" -framework "YYImage" -framework "YYModel" -framework "YYText" -framework "YYWebImage" -framework "YtSDKKitFrameworkTool" -framework "Zip" -framework "aosl" -framework "libwebp" -framework "tnnliveness" -framework "video_dec" -framework "video_enc" -weak_framework "AgoraAiEchoCancellationExtension" -weak_framework "AgoraAiEchoCancellationLLExtension" -weak_framework "AgoraAiNoiseSuppressionExtension" -weak_framework "AgoraAiNoiseSuppressionLLExtension" -weak_framework "AgoraAudioBeautyExtension" -weak_framework "AgoraClearVisionExtension" -weak_framework "AgoraContentInspectExtension" -weak_framework "AgoraFaceCaptureExtension" -weak_framework "AgoraFaceDetectionExtension" -weak_framework "AgoraLipSyncExtension" -weak_framework "AgoraReplayKitExtension" -weak_framework "AgoraRtcKit" -weak_framework "AgoraSoundTouch" -weak_framework "AgoraSpatialAudioExtension" -weak_framework "AgoraVideoAv1DecoderExtension" -weak_framework "AgoraVideoAv1EncoderExtension" -weak_framework "AgoraVideoDecoderExtension" -weak_framework "AgoraVideoEncoderExtension" -weak_framework "AgoraVideoQualityAnalyzerExtension" -weak_framework "AgoraVideoSegmentationExtension" -weak_framework "Agorafdkaac" -weak_framework "Agoraffmpeg" -weak_framework "video_dec" -weak_framework "video_enc" -OTHER_MODULE_VERIFIER_FLAGS = $(inherited) "-F${PODS_CONFIGURATION_BUILD_DIR}/AFNetworking" "-F${PODS_CONFIGURATION_BUILD_DIR}/AgoraComponetLog" "-F${PODS_CONFIGURATION_BUILD_DIR}/AgoraInfra_iOS" "-F${PODS_CONFIGURATION_BUILD_DIR}/AgoraLyricsScore" "-F${PODS_CONFIGURATION_BUILD_DIR}/AgoraRtcEngine_iOS" "-F${PODS_CONFIGURATION_BUILD_DIR}/AlipaySDK-iOS" "-F${PODS_CONFIGURATION_BUILD_DIR}/AliyunOSSiOS" "-F${PODS_CONFIGURATION_BUILD_DIR}/AvoidCrash" "-F${PODS_CONFIGURATION_BUILD_DIR}/BRPickerView" "-F${PODS_CONFIGURATION_BUILD_DIR}/Bugly" "-F${PODS_CONFIGURATION_BUILD_DIR}/FMDB" "-F${PODS_CONFIGURATION_BUILD_DIR}/IQKeyboardManager" "-F${PODS_CONFIGURATION_BUILD_DIR}/JXCategoryView" "-F${PODS_CONFIGURATION_BUILD_DIR}/JXPagingView" "-F${PODS_CONFIGURATION_BUILD_DIR}/MBProgressHUD" "-F${PODS_CONFIGURATION_BUILD_DIR}/MJRefresh" "-F${PODS_CONFIGURATION_BUILD_DIR}/MQTTClient" "-F${PODS_CONFIGURATION_BUILD_DIR}/Masonry" "-F${PODS_CONFIGURATION_BUILD_DIR}/Protobuf" "-F${PODS_CONFIGURATION_BUILD_DIR}/QGVAPlayer" "-F${PODS_CONFIGURATION_BUILD_DIR}/ReactiveObjC" "-F${PODS_CONFIGURATION_BUILD_DIR}/SDCycleScrollView" "-F${PODS_CONFIGURATION_BUILD_DIR}/SDWebImage" "-F${PODS_CONFIGURATION_BUILD_DIR}/SDWebImageWebPCoder" "-F${PODS_CONFIGURATION_BUILD_DIR}/SSZipArchive" "-F${PODS_CONFIGURATION_BUILD_DIR}/SVGAPlayer" "-F${PODS_CONFIGURATION_BUILD_DIR}/TIMCommon" "-F${PODS_CONFIGURATION_BUILD_DIR}/TIMPush" "-F${PODS_CONFIGURATION_BUILD_DIR}/TUIChat" "-F${PODS_CONFIGURATION_BUILD_DIR}/TUIConversation" "-F${PODS_CONFIGURATION_BUILD_DIR}/TUICore" "-F${PODS_CONFIGURATION_BUILD_DIR}/TXIMSDK_Plus_iOS_XCFramework" "-F${PODS_CONFIGURATION_BUILD_DIR}/TZImagePickerController" "-F${PODS_CONFIGURATION_BUILD_DIR}/TencentCloudHuiyanSDKFace_framework" "-F${PODS_CONFIGURATION_BUILD_DIR}/WechatOpenSDK-XCFramework" "-F${PODS_CONFIGURATION_BUILD_DIR}/YBImageBrowser" "-F${PODS_CONFIGURATION_BUILD_DIR}/YYCache" "-F${PODS_CONFIGURATION_BUILD_DIR}/YYCategories" "-F${PODS_CONFIGURATION_BUILD_DIR}/YYImage" "-F${PODS_CONFIGURATION_BUILD_DIR}/YYModel" "-F${PODS_CONFIGURATION_BUILD_DIR}/YYText" "-F${PODS_CONFIGURATION_BUILD_DIR}/YYWebImage" "-F${PODS_CONFIGURATION_BUILD_DIR}/Zip" "-F${PODS_CONFIGURATION_BUILD_DIR}/libwebp" +OTHER_LDFLAGS = $(inherited) -ObjC -l"WechatOpenSDK" -l"c++" -l"iconv" -l"resolv" -l"sqlite3" -l"sqlite3.0" -l"z" -framework "AFNetworking" -framework "AVFoundation" -framework "Accelerate" -framework "AgoraAiEchoCancellationExtension" -framework "AgoraAiEchoCancellationLLExtension" -framework "AgoraAiNoiseSuppressionExtension" -framework "AgoraAiNoiseSuppressionLLExtension" -framework "AgoraAudioBeautyExtension" -framework "AgoraClearVisionExtension" -framework "AgoraComponetLog" -framework "AgoraContentInspectExtension" -framework "AgoraFaceCaptureExtension" -framework "AgoraFaceDetectionExtension" -framework "AgoraLipSyncExtension" -framework "AgoraLyricsScore" -framework "AgoraReplayKitExtension" -framework "AgoraRtcKit" -framework "AgoraSoundTouch" -framework "AgoraSpatialAudioExtension" -framework "AgoraVideoAv1DecoderExtension" -framework "AgoraVideoAv1EncoderExtension" -framework "AgoraVideoDecoderExtension" -framework "AgoraVideoEncoderExtension" -framework "AgoraVideoQualityAnalyzerExtension" -framework "AgoraVideoSegmentationExtension" -framework "Agorafdkaac" -framework "Agoraffmpeg" -framework "AlipaySDK" -framework "AliyunOSSiOS" -framework "AssetsLibrary" -framework "AvoidCrash" -framework "BRPickerView" -framework "Bugly" -framework "CFNetwork" -framework "CoreFoundation" -framework "CoreGraphics" -framework "CoreImage" -framework "CoreMedia" -framework "CoreMotion" -framework "CoreTelephony" -framework "CoreText" -framework "CoreVideo" -framework "FMDB" -framework "Foundation" -framework "IQKeyboardManager" -framework "ImSDK_Plus" -framework "ImageIO" -framework "JXCategoryView" -framework "JXPagingView" -framework "MBProgressHUD" -framework "MJRefresh" -framework "MQTTClient" -framework "Masonry" -framework "MediaPlayer" -framework "Metal" -framework "MetalKit" -framework "MobileCoreServices" -framework "Photos" -framework "PhotosUI" -framework "Protobuf" -framework "QCloudCOSXML" -framework "QCloudCore" -framework "QGVAPlayer" -framework "QuartzCore" -framework "ReactiveObjC" -framework "SDCycleScrollView" -framework "SDWebImage" -framework "SDWebImageWebPCoder" -framework "SSZipArchive" -framework "SVGAPlayer" -framework "Security" -framework "SystemConfiguration" -framework "TIMCommon" -framework "TIMPush" -framework "TUIChat" -framework "TUIConversation" -framework "TUICore" -framework "TZImagePickerController" -framework "TencentCloudHuiyanSDKFace" -framework "TuringShieldCamRisk" -framework "UIKit" -framework "VideoToolbox" -framework "WebKit" -framework "YBImageBrowser" -framework "YTCommonLiveness" -framework "YTCv" -framework "YTFaceAlignmentTinyLiveness" -framework "YTFaceDetectorLiveness" -framework "YTFaceLiveReflect" -framework "YTFaceTrackerLiveness" -framework "YTPoseDetector" -framework "YYCache" -framework "YYCategories" -framework "YYImage" -framework "YYModel" -framework "YYText" -framework "YYWebImage" -framework "YtSDKKitFrameworkTool" -framework "Zip" -framework "aosl" -framework "libwebp" -framework "tnnliveness" -framework "video_dec" -framework "video_enc" -weak_framework "AgoraAiEchoCancellationExtension" -weak_framework "AgoraAiEchoCancellationLLExtension" -weak_framework "AgoraAiNoiseSuppressionExtension" -weak_framework "AgoraAiNoiseSuppressionLLExtension" -weak_framework "AgoraAudioBeautyExtension" -weak_framework "AgoraClearVisionExtension" -weak_framework "AgoraContentInspectExtension" -weak_framework "AgoraFaceCaptureExtension" -weak_framework "AgoraFaceDetectionExtension" -weak_framework "AgoraLipSyncExtension" -weak_framework "AgoraReplayKitExtension" -weak_framework "AgoraRtcKit" -weak_framework "AgoraSoundTouch" -weak_framework "AgoraSpatialAudioExtension" -weak_framework "AgoraVideoAv1DecoderExtension" -weak_framework "AgoraVideoAv1EncoderExtension" -weak_framework "AgoraVideoDecoderExtension" -weak_framework "AgoraVideoEncoderExtension" -weak_framework "AgoraVideoQualityAnalyzerExtension" -weak_framework "AgoraVideoSegmentationExtension" -weak_framework "Agorafdkaac" -weak_framework "Agoraffmpeg" -weak_framework "video_dec" -weak_framework "video_enc" +OTHER_MODULE_VERIFIER_FLAGS = $(inherited) "-F${PODS_CONFIGURATION_BUILD_DIR}/AFNetworking" "-F${PODS_CONFIGURATION_BUILD_DIR}/AgoraComponetLog" "-F${PODS_CONFIGURATION_BUILD_DIR}/AgoraInfra_iOS" "-F${PODS_CONFIGURATION_BUILD_DIR}/AgoraLyricsScore" "-F${PODS_CONFIGURATION_BUILD_DIR}/AgoraRtcEngine_iOS" "-F${PODS_CONFIGURATION_BUILD_DIR}/AlipaySDK-iOS" "-F${PODS_CONFIGURATION_BUILD_DIR}/AliyunOSSiOS" "-F${PODS_CONFIGURATION_BUILD_DIR}/AvoidCrash" "-F${PODS_CONFIGURATION_BUILD_DIR}/BRPickerView" "-F${PODS_CONFIGURATION_BUILD_DIR}/Bugly" "-F${PODS_CONFIGURATION_BUILD_DIR}/FMDB" "-F${PODS_CONFIGURATION_BUILD_DIR}/IQKeyboardManager" "-F${PODS_CONFIGURATION_BUILD_DIR}/JXCategoryView" "-F${PODS_CONFIGURATION_BUILD_DIR}/JXPagingView" "-F${PODS_CONFIGURATION_BUILD_DIR}/MBProgressHUD" "-F${PODS_CONFIGURATION_BUILD_DIR}/MJRefresh" "-F${PODS_CONFIGURATION_BUILD_DIR}/MQTTClient" "-F${PODS_CONFIGURATION_BUILD_DIR}/Masonry" "-F${PODS_CONFIGURATION_BUILD_DIR}/Protobuf" "-F${PODS_CONFIGURATION_BUILD_DIR}/QCloudCOSXML" "-F${PODS_CONFIGURATION_BUILD_DIR}/QCloudCore" "-F${PODS_CONFIGURATION_BUILD_DIR}/QGVAPlayer" "-F${PODS_CONFIGURATION_BUILD_DIR}/ReactiveObjC" "-F${PODS_CONFIGURATION_BUILD_DIR}/SDCycleScrollView" "-F${PODS_CONFIGURATION_BUILD_DIR}/SDWebImage" "-F${PODS_CONFIGURATION_BUILD_DIR}/SDWebImageWebPCoder" "-F${PODS_CONFIGURATION_BUILD_DIR}/SSZipArchive" "-F${PODS_CONFIGURATION_BUILD_DIR}/SVGAPlayer" "-F${PODS_CONFIGURATION_BUILD_DIR}/TIMCommon" "-F${PODS_CONFIGURATION_BUILD_DIR}/TIMPush" "-F${PODS_CONFIGURATION_BUILD_DIR}/TUIChat" "-F${PODS_CONFIGURATION_BUILD_DIR}/TUIConversation" "-F${PODS_CONFIGURATION_BUILD_DIR}/TUICore" "-F${PODS_CONFIGURATION_BUILD_DIR}/TXIMSDK_Plus_iOS_XCFramework" "-F${PODS_CONFIGURATION_BUILD_DIR}/TZImagePickerController" "-F${PODS_CONFIGURATION_BUILD_DIR}/TencentCloudHuiyanSDKFace_framework" "-F${PODS_CONFIGURATION_BUILD_DIR}/WechatOpenSDK-XCFramework" "-F${PODS_CONFIGURATION_BUILD_DIR}/YBImageBrowser" "-F${PODS_CONFIGURATION_BUILD_DIR}/YYCache" "-F${PODS_CONFIGURATION_BUILD_DIR}/YYCategories" "-F${PODS_CONFIGURATION_BUILD_DIR}/YYImage" "-F${PODS_CONFIGURATION_BUILD_DIR}/YYModel" "-F${PODS_CONFIGURATION_BUILD_DIR}/YYText" "-F${PODS_CONFIGURATION_BUILD_DIR}/YYWebImage" "-F${PODS_CONFIGURATION_BUILD_DIR}/Zip" "-F${PODS_CONFIGURATION_BUILD_DIR}/libwebp" OTHER_SWIFT_FLAGS = $(inherited) -D COCOAPODS PODS_BUILD_DIR = ${BUILD_DIR} PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) diff --git a/Pods/Target Support Files/QCloudCOSXML/QCloudCOSXML-Info.plist b/Pods/Target Support Files/QCloudCOSXML/QCloudCOSXML-Info.plist new file mode 100644 index 0000000..ff0337d --- /dev/null +++ b/Pods/Target Support Files/QCloudCOSXML/QCloudCOSXML-Info.plist @@ -0,0 +1,26 @@ + + + + + CFBundleDevelopmentRegion + ${PODS_DEVELOPMENT_LANGUAGE} + CFBundleExecutable + ${EXECUTABLE_NAME} + CFBundleIdentifier + ${PRODUCT_BUNDLE_IDENTIFIER} + CFBundleInfoDictionaryVersion + 6.0 + CFBundleName + ${PRODUCT_NAME} + CFBundlePackageType + FMWK + CFBundleShortVersionString + 6.5.0 + CFBundleSignature + ???? + CFBundleVersion + ${CURRENT_PROJECT_VERSION} + NSPrincipalClass + + + diff --git a/Pods/Target Support Files/QCloudCOSXML/QCloudCOSXML-dummy.m b/Pods/Target Support Files/QCloudCOSXML/QCloudCOSXML-dummy.m new file mode 100644 index 0000000..005ee9e --- /dev/null +++ b/Pods/Target Support Files/QCloudCOSXML/QCloudCOSXML-dummy.m @@ -0,0 +1,5 @@ +#import +@interface PodsDummy_QCloudCOSXML : NSObject +@end +@implementation PodsDummy_QCloudCOSXML +@end diff --git a/Pods/Target Support Files/QCloudCOSXML/QCloudCOSXML-prefix.pch b/Pods/Target Support Files/QCloudCOSXML/QCloudCOSXML-prefix.pch new file mode 100644 index 0000000..beb2a24 --- /dev/null +++ b/Pods/Target Support Files/QCloudCOSXML/QCloudCOSXML-prefix.pch @@ -0,0 +1,12 @@ +#ifdef __OBJC__ +#import +#else +#ifndef FOUNDATION_EXPORT +#if defined(__cplusplus) +#define FOUNDATION_EXPORT extern "C" +#else +#define FOUNDATION_EXPORT extern +#endif +#endif +#endif + diff --git a/Pods/Target Support Files/QCloudCOSXML/QCloudCOSXML-umbrella.h b/Pods/Target Support Files/QCloudCOSXML/QCloudCOSXML-umbrella.h new file mode 100644 index 0000000..59d5e5b --- /dev/null +++ b/Pods/Target Support Files/QCloudCOSXML/QCloudCOSXML-umbrella.h @@ -0,0 +1,62 @@ +#ifdef __OBJC__ +#import +#else +#ifndef FOUNDATION_EXPORT +#if defined(__cplusplus) +#define FOUNDATION_EXPORT extern "C" +#else +#define FOUNDATION_EXPORT extern +#endif +#endif +#endif + +#import "QCloudCOSXMLVersion.h" +#import "QCloudCOSStorageClassEnum.h" +#import "QCloudCompleteMultipartUploadInfo.h" +#import "QCloudCopyObjectResult.h" +#import "QCloudInitiateMultipartUploadResult.h" +#import "QCloudListPartsResult.h" +#import "QCloudMultipartInfo.h" +#import "QCloudMultipartUploadInitiator.h" +#import "QCloudMultipartUploadOwner.h" +#import "QCloudMultipartUploadPart.h" +#import "QCloudUploadObjectResult.h" +#import "QCloudUploadPartResult.h" +#import "QCloudCOSTransferMangerService.h" +#import "QCloudCOSXMLService+Transfer.h" +#import "QCloudCOSXMLTransfer.h" +#import "QCloudAbortMultipfartUploadRequest.h" +#import "QCloudAppendObjectRequest.h" +#import "QCloudCompleteMultipartUploadRequest.h" +#import "QCloudCOSXMLCopyObjectRequest.h" +#import "QCloudCOSXMLDownloadObjectRequest.h" +#import "QCloudCOSXMLUploadObjectRequest.h" +#import "QCloudCOSXMLUploadObjectRequest_Private.h" +#import "QCloudGetObjectRequest+Custom.h" +#import "QCloudGetObjectRequest.h" +#import "QCloudHeadObjectRequest.h" +#import "QCloudInitiateMultipartUploadRequest.h" +#import "QCloudListMultipartRequest.h" +#import "QCloudPutObjectCopyRequest.h" +#import "QCloudPutObjectRequest+Custom.h" +#import "QCloudPutObjectRequest+CustomBuild.h" +#import "QCloudPutObjectRequest.h" +#import "QCloudUploadPartCopyRequest.h" +#import "QCloudUploadPartRequest+Custom.h" +#import "QCloudUploadPartRequest.h" +#import "NSString+RegularExpressionCategory.h" +#import "QCloudAbstractRequest+Quality.h" +#import "QCloudBizHTTPRequest+COSXML.h" +#import "QCloudCOSXMLEndPoint.h" +#import "QCloudCOSXMLService+Configuration.h" +#import "QCloudCOSXMLService+Private.h" +#import "QCloudCOSXMLService+Quality.h" +#import "QCloudCOSXMLService.h" +#import "QCloudCOSXMLServiceUtilities.h" +#import "QCloudLogManager.h" +#import "QCloudRequestData+COSXML.h" +#import "QCloudRequestData+COSXMLVersion.h" + +FOUNDATION_EXPORT double QCloudCOSXMLVersionNumber; +FOUNDATION_EXPORT const unsigned char QCloudCOSXMLVersionString[]; + diff --git a/Pods/Target Support Files/QCloudCOSXML/QCloudCOSXML.debug.xcconfig b/Pods/Target Support Files/QCloudCOSXML/QCloudCOSXML.debug.xcconfig new file mode 100644 index 0000000..1f57bec --- /dev/null +++ b/Pods/Target Support Files/QCloudCOSXML/QCloudCOSXML.debug.xcconfig @@ -0,0 +1,14 @@ +CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = NO +CONFIGURATION_BUILD_DIR = ${PODS_CONFIGURATION_BUILD_DIR}/QCloudCOSXML +EXCLUDED_ARCHS[sdk=iphonesimulator*] = arm64 +FRAMEWORK_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/QCloudCore" +GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 +PODS_BUILD_DIR = ${BUILD_DIR} +PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) +PODS_DEVELOPMENT_LANGUAGE = ${DEVELOPMENT_LANGUAGE} +PODS_ROOT = ${SRCROOT} +PODS_TARGET_SRCROOT = ${PODS_ROOT}/QCloudCOSXML +PODS_XCFRAMEWORKS_BUILD_DIR = $(PODS_CONFIGURATION_BUILD_DIR)/XCFrameworkIntermediates +PRODUCT_BUNDLE_IDENTIFIER = org.cocoapods.${PRODUCT_NAME:rfc1034identifier} +SKIP_INSTALL = YES +USE_RECURSIVE_SCRIPT_INPUTS_IN_SCRIPT_PHASES = YES diff --git a/Pods/Target Support Files/QCloudCOSXML/QCloudCOSXML.modulemap b/Pods/Target Support Files/QCloudCOSXML/QCloudCOSXML.modulemap new file mode 100644 index 0000000..0f81ba6 --- /dev/null +++ b/Pods/Target Support Files/QCloudCOSXML/QCloudCOSXML.modulemap @@ -0,0 +1,6 @@ +framework module QCloudCOSXML { + umbrella header "QCloudCOSXML-umbrella.h" + + export * + module * { export * } +} diff --git a/Pods/Target Support Files/QCloudCOSXML/QCloudCOSXML.release.xcconfig b/Pods/Target Support Files/QCloudCOSXML/QCloudCOSXML.release.xcconfig new file mode 100644 index 0000000..1f57bec --- /dev/null +++ b/Pods/Target Support Files/QCloudCOSXML/QCloudCOSXML.release.xcconfig @@ -0,0 +1,14 @@ +CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = NO +CONFIGURATION_BUILD_DIR = ${PODS_CONFIGURATION_BUILD_DIR}/QCloudCOSXML +EXCLUDED_ARCHS[sdk=iphonesimulator*] = arm64 +FRAMEWORK_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/QCloudCore" +GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 +PODS_BUILD_DIR = ${BUILD_DIR} +PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) +PODS_DEVELOPMENT_LANGUAGE = ${DEVELOPMENT_LANGUAGE} +PODS_ROOT = ${SRCROOT} +PODS_TARGET_SRCROOT = ${PODS_ROOT}/QCloudCOSXML +PODS_XCFRAMEWORKS_BUILD_DIR = $(PODS_CONFIGURATION_BUILD_DIR)/XCFrameworkIntermediates +PRODUCT_BUNDLE_IDENTIFIER = org.cocoapods.${PRODUCT_NAME:rfc1034identifier} +SKIP_INSTALL = YES +USE_RECURSIVE_SCRIPT_INPUTS_IN_SCRIPT_PHASES = YES diff --git a/Pods/Target Support Files/QCloudCore/QCloudCore-Info.plist b/Pods/Target Support Files/QCloudCore/QCloudCore-Info.plist new file mode 100644 index 0000000..ff0337d --- /dev/null +++ b/Pods/Target Support Files/QCloudCore/QCloudCore-Info.plist @@ -0,0 +1,26 @@ + + + + + CFBundleDevelopmentRegion + ${PODS_DEVELOPMENT_LANGUAGE} + CFBundleExecutable + ${EXECUTABLE_NAME} + CFBundleIdentifier + ${PRODUCT_BUNDLE_IDENTIFIER} + CFBundleInfoDictionaryVersion + 6.0 + CFBundleName + ${PRODUCT_NAME} + CFBundlePackageType + FMWK + CFBundleShortVersionString + 6.5.0 + CFBundleSignature + ???? + CFBundleVersion + ${CURRENT_PROJECT_VERSION} + NSPrincipalClass + + + diff --git a/Pods/Target Support Files/QCloudCore/QCloudCore-dummy.m b/Pods/Target Support Files/QCloudCore/QCloudCore-dummy.m new file mode 100644 index 0000000..2e511bd --- /dev/null +++ b/Pods/Target Support Files/QCloudCore/QCloudCore-dummy.m @@ -0,0 +1,5 @@ +#import +@interface PodsDummy_QCloudCore : NSObject +@end +@implementation PodsDummy_QCloudCore +@end diff --git a/Pods/Target Support Files/QCloudCore/QCloudCore-prefix.pch b/Pods/Target Support Files/QCloudCore/QCloudCore-prefix.pch new file mode 100644 index 0000000..beb2a24 --- /dev/null +++ b/Pods/Target Support Files/QCloudCore/QCloudCore-prefix.pch @@ -0,0 +1,12 @@ +#ifdef __OBJC__ +#import +#else +#ifndef FOUNDATION_EXPORT +#if defined(__cplusplus) +#define FOUNDATION_EXPORT extern "C" +#else +#define FOUNDATION_EXPORT extern +#endif +#endif +#endif + diff --git a/Pods/Target Support Files/QCloudCore/QCloudCore-umbrella.h b/Pods/Target Support Files/QCloudCore/QCloudCore-umbrella.h new file mode 100644 index 0000000..c28c9fe --- /dev/null +++ b/Pods/Target Support Files/QCloudCore/QCloudCore-umbrella.h @@ -0,0 +1,130 @@ +#ifdef __OBJC__ +#import +#else +#ifndef FOUNDATION_EXPORT +#if defined(__cplusplus) +#define FOUNDATION_EXPORT extern "C" +#else +#define FOUNDATION_EXPORT extern +#endif +#endif +#endif + +#import "QCloudThreadSafeMutableDictionary.h" +#import "QCloudCustomLoader.h" +#import "QCloudCustomLoaderTask.h" +#import "QCloudCustomSession.h" +#import "QCloudLoaderManager.h" +#import "NSDate+QCloudComapre.h" +#import "QCloudFCUUID.h" +#import "UIDevice+QCloudFCUUID.h" +#import "QCloudEncryt.h" +#import "QCloudCLSLoggerOutput.h" +#import "QCloudCustomLoggerOutput.h" +#import "QCloudFileLogger.h" +#import "QCloudFileZipper.h" +#import "QCloudLogger.h" +#import "QCloudLoggerOutput.h" +#import "QCloudLogModel.h" +#import "QCloudMultiDelegateProxy.h" +#import "QCloudWeakProxy.h" +#import "QCloudBundlePath.h" +#import "QCloudMediaPath.h" +#import "QCloudSandboxPath.h" +#import "QCloudUniversalAdjustablePath.h" +#import "QCloudUniversalFixedPath.h" +#import "QCloudUniversalPath.h" +#import "QCloudUniversalPathConstants.h" +#import "QCloudUniversalPathFactory.h" +#import "QCloudServiceConfiguration+Quality.h" +#import "QCloudBundle.h" +#import "QCloudMainBundle.h" +#import "UIImage+QCloudBundle.h" +#import "NSDate+QCLOUD.h" +#import "NSDate+QCloudInternetDateTime.h" +#import "NSMutableData+QCloud_CRC.h" +#import "QCloudCRC64.h" +#import "NSURLRequest+COS.h" +#import "QCloudAuthentationCreator.h" +#import "QCloudAuthentationV4Creator.h" +#import "QCloudAuthentationV5Creator.h" +#import "QCloudCredentailFenceQueue.h" +#import "QCloudCredential.h" +#import "QCloudSignature.h" +#import "QCloudSignatureFields.h" +#import "QCloudSignatureProvider.h" +#import "QCloudUICKeyChainStore.h" +#import "QCloudClientContext.h" +#import "QCloudAbstractRequest_FakeRequest.h" +#import "QCloudBizHTTPRequest.h" +#import "QCloudNetResponse.h" +#import "QCloudConfiguration.h" +#import "QCloudConfiguration_Private.h" +#import "QCloudEndPoint.h" +#import "QCloudError.h" +#import "QCloudService.h" +#import "QCloudServiceConfiguration.h" +#import "QCloudServiceConfiguration_Private.h" +#import "QCloudCore.h" +#import "QCloudCoreVersion.h" +#import "QCloudFileUtils.h" +#import "QCloudModel.h" +#import "QCloudSHAPart.h" +#import "QCloudGCDTimer.h" +#import "NSObject+QCloudModel.h" +#import "NSObject+QCloudModelTool.h" +#import "QCloudClassInfo.h" +#import "QCloudObjectModel.h" +#import "QCloudProgrameDefines.h" +#import "QCloudNetworkingAPI.h" +#import "NSHTTPCookie+QCloudNetworking.h" +#import "QCloudAbstractRequest.h" +#import "QCloudHTTPRequest.h" +#import "QCloudHTTPRequestDelegate.h" +#import "QCloudHTTPRequest_RequestID.h" +#import "QCloudRequestData.h" +#import "QCloudRequestSerializer.h" +#import "QCloudResponseSerializer.h" +#import "QCloudURLHelper.h" +#import "QCloudXMLDictionary.h" +#import "QCloudXMLWriter.h" +#import "QCloudFileOffsetBody.h" +#import "QCloudFileOffsetStream.h" +#import "QCloudHTTPBodyPart.h" +#import "QCloudHTTPMultiDataStream.h" +#import "QCloudDomain.h" +#import "QCloudHosts.h" +#import "QCloudHttpDNS.h" +#import "QCloudPingTester.h" +#import "QCloudSimplePing.h" +#import "NSError+QCloudNetworking.h" +#import "QCloudFakeRequestOperation.h" +#import "QCloudHTTPRequestOperation.h" +#import "QCloudHTTPSessionManager_Private.h" +#import "QCloudOperationQueue.h" +#import "QCloudRequestOperation.h" +#import "QCloudHttpMetrics.h" +#import "QCloudNetProfile.h" +#import "QCloudEnv.h" +#import "QCLOUDRestNet.h" +#import "NSString+QCloudSHA.h" +#import "QCloudNetEnv.h" +#import "QCloudReachability.h" +#import "QCloudHTTPRetryHanlder.h" +#import "QCloudHTTPTaskDelayManager.h" +#import "QCloudUploadPartRequestRetryHandler.h" +#import "NSObject+HTTPHeadersContainer.h" +#import "QCloudHTTPRequest_SessionPrivate.h" +#import "QCloudHTTPSessionManager.h" +#import "QCloudURLSessionTaskData.h" +#import "QCloudIntelligenceTimeOutAdapter.h" +#import "QCloudURLTools.h" +#import "QualityDataUploader.h" +#import "QCloudSDKModuleManager.h" +#import "QCloudSupervisory.h" +#import "QCloudSupervisoryRecord.h" +#import "QCloudSupervisorySession.h" + +FOUNDATION_EXPORT double QCloudCoreVersionNumber; +FOUNDATION_EXPORT const unsigned char QCloudCoreVersionString[]; + diff --git a/Pods/Target Support Files/QCloudCore/QCloudCore.debug.xcconfig b/Pods/Target Support Files/QCloudCore/QCloudCore.debug.xcconfig new file mode 100644 index 0000000..a372a7b --- /dev/null +++ b/Pods/Target Support Files/QCloudCore/QCloudCore.debug.xcconfig @@ -0,0 +1,13 @@ +CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = NO +CONFIGURATION_BUILD_DIR = ${PODS_CONFIGURATION_BUILD_DIR}/QCloudCore +EXCLUDED_ARCHS[sdk=iphonesimulator*] = arm64 +GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 +PODS_BUILD_DIR = ${BUILD_DIR} +PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) +PODS_DEVELOPMENT_LANGUAGE = ${DEVELOPMENT_LANGUAGE} +PODS_ROOT = ${SRCROOT} +PODS_TARGET_SRCROOT = ${PODS_ROOT}/QCloudCore +PODS_XCFRAMEWORKS_BUILD_DIR = $(PODS_CONFIGURATION_BUILD_DIR)/XCFrameworkIntermediates +PRODUCT_BUNDLE_IDENTIFIER = org.cocoapods.${PRODUCT_NAME:rfc1034identifier} +SKIP_INSTALL = YES +USE_RECURSIVE_SCRIPT_INPUTS_IN_SCRIPT_PHASES = YES diff --git a/Pods/Target Support Files/QCloudCore/QCloudCore.modulemap b/Pods/Target Support Files/QCloudCore/QCloudCore.modulemap new file mode 100644 index 0000000..8b4b100 --- /dev/null +++ b/Pods/Target Support Files/QCloudCore/QCloudCore.modulemap @@ -0,0 +1,6 @@ +framework module QCloudCore { + umbrella header "QCloudCore-umbrella.h" + + export * + module * { export * } +} diff --git a/Pods/Target Support Files/QCloudCore/QCloudCore.release.xcconfig b/Pods/Target Support Files/QCloudCore/QCloudCore.release.xcconfig new file mode 100644 index 0000000..a372a7b --- /dev/null +++ b/Pods/Target Support Files/QCloudCore/QCloudCore.release.xcconfig @@ -0,0 +1,13 @@ +CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = NO +CONFIGURATION_BUILD_DIR = ${PODS_CONFIGURATION_BUILD_DIR}/QCloudCore +EXCLUDED_ARCHS[sdk=iphonesimulator*] = arm64 +GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 +PODS_BUILD_DIR = ${BUILD_DIR} +PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) +PODS_DEVELOPMENT_LANGUAGE = ${DEVELOPMENT_LANGUAGE} +PODS_ROOT = ${SRCROOT} +PODS_TARGET_SRCROOT = ${PODS_ROOT}/QCloudCore +PODS_XCFRAMEWORKS_BUILD_DIR = $(PODS_CONFIGURATION_BUILD_DIR)/XCFrameworkIntermediates +PRODUCT_BUNDLE_IDENTIFIER = org.cocoapods.${PRODUCT_NAME:rfc1034identifier} +SKIP_INSTALL = YES +USE_RECURSIVE_SCRIPT_INPUTS_IN_SCRIPT_PHASES = YES diff --git a/QXLive/HomePage(声播)/Controlller/QXHomeViewController.m b/QXLive/HomePage(声播)/Controlller/QXHomeViewController.m index e0a821c..8f5b463 100644 --- a/QXLive/HomePage(声播)/Controlller/QXHomeViewController.m +++ b/QXLive/HomePage(声播)/Controlller/QXHomeViewController.m @@ -79,12 +79,12 @@ }else{ [self updateBgImage:@"app_home_bg"]; } - UIImageView *logoImageView = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"mi_di"]]; + UIImageView *logoImageView = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"yusheng"]]; [self.view addSubview:logoImageView]; [logoImageView mas_makeConstraints:^(MASConstraintMaker *make) { make.left.mas_equalTo(16); make.top.mas_equalTo(kSafeAreaTop +8); - make.width.mas_equalTo(66); + make.width.mas_equalTo(110); make.height.mas_equalTo(32); }]; diff --git a/QXLive/Login(登录)/Controlller/QXFillUserInfoViewController.m b/QXLive/Login(登录)/Controlller/QXFillUserInfoViewController.m index 172ca27..4859aff 100755 --- a/QXLive/Login(登录)/Controlller/QXFillUserInfoViewController.m +++ b/QXLive/Login(登录)/Controlller/QXFillUserInfoViewController.m @@ -171,23 +171,38 @@ } NSMutableArray *files = [[NSMutableArray alloc] initWithObjects:fileData, nil]; - NSString *fileBasePath = IMG_FILE_BASE_PATH;// 默认图片上传 - NSString *fileName = [NSString stringWithFormat:@"%@%@/%@.%@",fileBasePath,[[QXOSSManager sharedInstance] currentDate],[NSUUID UUID].UUIDString,contentType]; - NSMutableArray *fileNames = [[NSMutableArray alloc] initWithObjects:fileName, nil]; +// NSString *fileBasePath = IMG_FILE_BASE_PATH;// 默认图片上传 +// NSString *fileName = [NSString stringWithFormat:@"%@%@/%@.%@",fileBasePath,[[QXOSSManager sharedInstance] currentDate],[NSUUID UUID].UUIDString,contentType]; +// NSMutableArray *fileNames = [[NSMutableArray alloc] initWithObjects:fileName, nil]; +// __weak typeof(self)weakSelf = self; +// showLoadingInView(self.view); +// [[QXOSSManager sharedInstance] uploadFile:files withObjectKey:fileNames isAsync:YES complete:^(NSArray *names, UploadImageState state) { +// dispatch_async(dispatch_get_main_queue(), ^{ +// hideLoadingInView(weakSelf.view); +// }); +// if (state == UploadImageSuccess) { +// NSString *fileName = [names lastObject]; +// NSString *fileUrl =[NSString stringWithFormat:@"https://%@.%@/%@",OSS_BUCKET_NAME,OSSEndPoint,fileName]; +// weakSelf.avartar = fileUrl; +// [weakSelf.headerBtn sd_setImageWithURL:[NSURL URLWithString:fileUrl] forState:(UIControlStateNormal)]; +// weakSelf.isPhoto = YES; +// }else{ +// showToastInView(QXText(@"文件上传失败,请重新尝试"), self.view); +// } +// }]; __weak typeof(self)weakSelf = self; showLoadingInView(self.view); - [[QXOSSManager sharedInstance] uploadFile:files withObjectKey:fileNames isAsync:YES complete:^(NSArray *names, UploadImageState state) { + NSString *fileName = [NSString stringWithFormat:@"%@.%@",[[QXCOSUploadManager shareManager] currentDate],contentType]; + [[QXCOSUploadManager shareManager] uploadFile:files withObjectKey:@[fileName] isAsync:YES complete:^(NSArray * _Nonnull names, QXCOSUploadImageState state) { + QXLOG(@"uploadstate --- %ld ---url---%@",state,names); dispatch_async(dispatch_get_main_queue(), ^{ hideLoadingInView(weakSelf.view); }); - if (state == UploadImageSuccess) { - NSString *fileName = [names lastObject]; - NSString *fileUrl =[NSString stringWithFormat:@"https://%@.%@/%@",OSS_BUCKET_NAME,OSSEndPoint,fileName]; - weakSelf.avartar = fileUrl; - [weakSelf.headerBtn sd_setImageWithURL:[NSURL URLWithString:fileUrl] forState:(UIControlStateNormal)]; - weakSelf.isPhoto = YES; + if (state == QXCOSUploadImageSuccess) { + weakSelf.avartar = names.firstObject; + [weakSelf.headerBtn sd_setImageWithURL:[NSURL URLWithString:weakSelf.avartar] forState:(UIControlStateNormal)]; }else{ - showToastInView(QXText(@"文件上传失败,请重新尝试"), self.view); + showToastInView(QXText(@"文件上传失败,请重新尝试"), weakSelf.view); } }]; } diff --git a/QXLive/Login(登录)/Model/QXLoginModel.h b/QXLive/Login(登录)/Model/QXLoginModel.h index eb6012b..85fe6c6 100644 --- a/QXLive/Login(登录)/Model/QXLoginModel.h +++ b/QXLive/Login(登录)/Model/QXLoginModel.h @@ -34,6 +34,8 @@ NS_ASSUME_NONNULL_BEGIN @property (nonatomic,assign)NSInteger auth; /// 装扮 @property (nonatomic,strong)NSString *dress; +/// 聊天气泡 +@property (nonatomic,strong)NSString *chat_bubble; /// 各种卡片 @property (nonatomic,strong)NSArray *icon; /// 1 能聊天 0不能聊天 diff --git a/QXLive/Manager/QXRoomMessageManager.h b/QXLive/Manager/QXRoomMessageManager.h index a6125ef..97c37ce 100644 --- a/QXLive/Manager/QXRoomMessageManager.h +++ b/QXLive/Manager/QXRoomMessageManager.h @@ -22,6 +22,8 @@ typedef NS_ENUM(NSInteger) { QXRoomMessageTypeMuteLocalAudio = 126, /// 基础文本消息类型 QXRoomMessageTypeText = 1, + /// 基础表情类型 + QXRoomMessageTypeEmoji = 2, /// 系统消息 QXRoomMessageTypeSystem = 1000, /// 用户进入房间 @@ -278,6 +280,8 @@ NS_ASSUME_NONNULL_BEGIN -(void)quitGroupWithRoomId:(NSString*)roomId; -(void)sendChatMessage:(NSString *)message messageType:(QXRoomMessageType)messageType needInsertMessage:(BOOL)needInsertMessage; +/// 发送表情 +-(void)sendChatEmoji:(QXEmojiModel *)emoji; -(void)sendC2CMessage:(NSString *)message messageType:(QXRoomMessageType)messageType userId:(NSString*)userId; @end diff --git a/QXLive/Manager/QXRoomMessageManager.m b/QXLive/Manager/QXRoomMessageManager.m index 945b783..ee7ca54 100644 --- a/QXLive/Manager/QXRoomMessageManager.m +++ b/QXLive/Manager/QXRoomMessageManager.m @@ -718,6 +718,12 @@ userInfo.uid = userModel.user_id.longLongValue; userInfo.volume = 0; [[NSNotificationCenter defaultCenter] postNotificationName:noticeUserSpeak object:userInfo]; + }else if (meesageType == QXRoomMessageTypeEmoji) { + QXRoomChatListModel *model = [QXRoomChatListModel yy_modelWithJSON:msg.Text]; + model.messageType = QXRoomChatMessageTypeEmoji; + if (self.delegate && [self.delegate respondsToSelector:@selector(didInsertMessge:)]) { + [self.delegate didInsertMessge:model]; + } } } @@ -733,6 +739,7 @@ @"nickname":[QXGlobal shareGlobal].loginModel.nickname?[QXGlobal shareGlobal].loginModel.nickname:@"", @"avatar":[QXGlobal shareGlobal].loginModel.avatar?[QXGlobal shareGlobal].loginModel.avatar:@"", @"icon":[QXGlobal shareGlobal].loginModel.icon?[QXGlobal shareGlobal].loginModel.icon:@"", + @"chat_bubble":[QXGlobal shareGlobal].loginModel.chat_bubble?:@"", }, @"text":message } @@ -745,6 +752,7 @@ userInfo.nickname = [QXGlobal shareGlobal].loginModel.nickname; userInfo.user_id = [QXGlobal shareGlobal].loginModel.user_id; userInfo.icon = [QXGlobal shareGlobal].loginModel.icon; + userInfo.chat_bubble = [QXGlobal shareGlobal].loginModel.chat_bubble; model.FromUserInfo = userInfo; model.messageType = QXRoomChatMessageTypeChat; if (self.delegate && [self.delegate respondsToSelector:@selector(didInsertMessge:)]) { @@ -761,7 +769,47 @@ } - +-(void)sendChatEmoji:(QXEmojiModel *)emoji{ + NSDictionary *dict = @{ + @"RoomId":self.roomId?self.roomId:@"", + @"MsgType":[NSNumber numberWithInteger:QXRoomMessageTypeEmoji], + @"Text":@{ + @"FromUserInfo":@{ + @"user_id":[QXGlobal shareGlobal].loginModel.user_id?[QXGlobal shareGlobal].loginModel.user_id:@"", + @"nickname":[QXGlobal shareGlobal].loginModel.nickname?[QXGlobal shareGlobal].loginModel.nickname:@"", + @"avatar":[QXGlobal shareGlobal].loginModel.avatar?[QXGlobal shareGlobal].loginModel.avatar:@"", + @"icon":[QXGlobal shareGlobal].loginModel.icon?[QXGlobal shareGlobal].loginModel.icon:@"", + @"chat_bubble":[QXGlobal shareGlobal].loginModel.chat_bubble?:@"", + }, + @"emoji":@{ + @"image":emoji.image?:@"", + @"animate_image":emoji.animate_image?:@"" + }, + @"text":@"" + } + }; + QXRoomChatListModel *model = [[QXRoomChatListModel alloc] init]; + model.text = @""; + QXUserHomeModel *userInfo = [[QXUserHomeModel alloc] init]; + userInfo.avatar = [QXGlobal shareGlobal].loginModel.avatar; + userInfo.nickname = [QXGlobal shareGlobal].loginModel.nickname; + userInfo.user_id = [QXGlobal shareGlobal].loginModel.user_id; + userInfo.icon = [QXGlobal shareGlobal].loginModel.icon; + userInfo.chat_bubble = [QXGlobal shareGlobal].loginModel.chat_bubble; + model.FromUserInfo = userInfo; + model.messageType = QXRoomChatMessageTypeEmoji; + model.emoji = emoji; + if (self.delegate && [self.delegate respondsToSelector:@selector(didInsertMessge:)]) { + [self.delegate didInsertMessge:model]; + } + NSString *jsonStr = [dict jsonStringEncoded]; + NSData *data =[jsonStr dataUsingEncoding:NSUTF8StringEncoding]; + [[V2TIMManager sharedInstance] sendGroupCustomMessage:data to:self.groupId priority:V2TIM_PRIORITY_NORMAL succ:^{ + QXLOG(@"发送自定义消息成功"); + } fail:^(int code, NSString * _Nullable desc) { + QXLOG(@"发送自定义消息失败"); + }]; +} -(void)sendC2CMessage:(NSString *)message messageType:(QXRoomMessageType)messageType userId:(NSString *)userId{ NSDictionary *dict = @{ @@ -769,10 +817,11 @@ @"MsgType":[NSNumber numberWithInteger:messageType], @"Text":@{ @"FromUserInfo":@{ - @"user_id":[QXGlobal shareGlobal].loginModel.user_id?[QXGlobal shareGlobal].loginModel.user_id:@"", - @"nickname":[QXGlobal shareGlobal].loginModel.nickname?[QXGlobal shareGlobal].loginModel.nickname:@"", - @"avatar":[QXGlobal shareGlobal].loginModel.avatar?[QXGlobal shareGlobal].loginModel.avatar:@"", - @"icon":[QXGlobal shareGlobal].loginModel.icon?[QXGlobal shareGlobal].loginModel.icon:@"", + @"user_id":[QXGlobal shareGlobal].loginModel.user_id?:@"", + @"nickname":[QXGlobal shareGlobal].loginModel.nickname?:@"", + @"avatar":[QXGlobal shareGlobal].loginModel.avatar?:@"", + @"icon":[QXGlobal shareGlobal].loginModel.icon?:@"", + @"chat_bubble":[QXGlobal shareGlobal].loginModel.chat_bubble?:@"", }, @"text":message } diff --git a/QXLive/Mine(音域)/Controller/个人主页/QXCreatPhotosViewController.m b/QXLive/Mine(音域)/Controller/个人主页/QXCreatPhotosViewController.m index 28a8fc9..5eb1a6d 100644 --- a/QXLive/Mine(音域)/Controller/个人主页/QXCreatPhotosViewController.m +++ b/QXLive/Mine(音域)/Controller/个人主页/QXCreatPhotosViewController.m @@ -214,20 +214,35 @@ } NSMutableArray *files = [[NSMutableArray alloc] initWithObjects:fileData, nil]; - NSString *fileBasePath = IMG_FILE_BASE_PATH;// 默认图片上传 - NSString *fileName = [NSString stringWithFormat:@"%@%@/%@.%@",fileBasePath,[[QXOSSManager sharedInstance] currentDate],[NSUUID UUID].UUIDString,contentType]; - NSMutableArray *fileNames = [[NSMutableArray alloc] initWithObjects:fileName, nil]; +// NSString *fileBasePath = IMG_FILE_BASE_PATH;// 默认图片上传 +// NSString *fileName = [NSString stringWithFormat:@"%@%@/%@.%@",fileBasePath,[[QXOSSManager sharedInstance] currentDate],[NSUUID UUID].UUIDString,contentType]; +// NSMutableArray *fileNames = [[NSMutableArray alloc] initWithObjects:fileName, nil]; +// __weak typeof(self)weakSelf = self; +// showLoadingInView(self.view); +// [[QXOSSManager sharedInstance] uploadFile:files withObjectKey:fileNames isAsync:YES complete:^(NSArray *names, UploadImageState state) { +// dispatch_async(dispatch_get_main_queue(), ^{ +// hideLoadingInView(weakSelf.view); +// }); +// if (state == UploadImageSuccess) { +// NSString *fileName = [names lastObject]; +// NSString *fileUrl =[NSString stringWithFormat:@"https://%@.%@/%@",OSS_BUCKET_NAME,OSSEndPoint,fileName]; +// weakSelf.avartar = fileUrl; +// [weakSelf.selectedBtn sd_setImageWithURL:[NSURL URLWithString:fileUrl] forState:(UIControlStateNormal)]; +// }else{ +// showToastInView(QXText(@"文件上传失败,请重新尝试"), weakSelf.view); +// } +// }]; + __weak typeof(self)weakSelf = self; showLoadingInView(self.view); - [[QXOSSManager sharedInstance] uploadFile:files withObjectKey:fileNames isAsync:YES complete:^(NSArray *names, UploadImageState state) { + NSString *fileName = [NSString stringWithFormat:@"%@.%@",[[QXCOSUploadManager shareManager] currentDate],contentType]; + [[QXCOSUploadManager shareManager] uploadFile:files withObjectKey:@[fileName] isAsync:YES complete:^(NSArray * _Nonnull names, QXCOSUploadImageState state) { dispatch_async(dispatch_get_main_queue(), ^{ hideLoadingInView(weakSelf.view); }); - if (state == UploadImageSuccess) { - NSString *fileName = [names lastObject]; - NSString *fileUrl =[NSString stringWithFormat:@"https://%@.%@/%@",OSS_BUCKET_NAME,OSSEndPoint,fileName]; - weakSelf.avartar = fileUrl; - [weakSelf.selectedBtn sd_setImageWithURL:[NSURL URLWithString:fileUrl] forState:(UIControlStateNormal)]; + if (state == QXCOSUploadImageSuccess) { + weakSelf.avartar = names.firstObject; + [weakSelf.selectedBtn sd_setImageWithURL:[NSURL URLWithString:weakSelf.avartar] forState:(UIControlStateNormal)]; }else{ showToastInView(QXText(@"文件上传失败,请重新尝试"), weakSelf.view); } diff --git a/QXLive/Mine(音域)/Controller/个人主页/QXPhotosDetailVC.m b/QXLive/Mine(音域)/Controller/个人主页/QXPhotosDetailVC.m index 837fa77..9478970 100644 --- a/QXLive/Mine(音域)/Controller/个人主页/QXPhotosDetailVC.m +++ b/QXLive/Mine(音域)/Controller/个人主页/QXPhotosDetailVC.m @@ -386,19 +386,38 @@ [self presentViewController:imagePickerVc animated:YES completion:nil]; } - (void)OSSUploadPhoto{ +// __weak typeof(self)weakSelf = self; +// showLoadingInView(self.view); +// [[QXOSSManager sharedInstance] activityUploadFile:self.uploadArray withObjectKey:self.keyArray isAsync:YES complete:^(NSArray *names, UploadImageState state) { +// dispatch_async_and_wait(dispatch_get_main_queue(), ^{ +// [weakSelf.urlArray removeAllObjects]; +// hideLoadingInView(weakSelf.view); +// if (state == UploadImageSuccess) { +// showToast(QXText(@"上传成功")); +// for (int i = 0; i < names.count; i++) { +// NSString *name = names[i]; +// NSString *fileUrl =[NSString stringWithFormat:@"https://%@.%@/%@",OSS_BUCKET_NAME,OSSEndPoint,name]; +// [weakSelf.urlArray addObject:fileUrl]; +// } +// [weakSelf uploadImages]; +// }else{ +// showToast(QXText(@"上传失败")); +// } +// }); +// }]; __weak typeof(self)weakSelf = self; showLoadingInView(self.view); - [[QXOSSManager sharedInstance] activityUploadFile:self.uploadArray withObjectKey:self.keyArray isAsync:YES complete:^(NSArray *names, UploadImageState state) { - dispatch_async_and_wait(dispatch_get_main_queue(), ^{ - [weakSelf.urlArray removeAllObjects]; + [[QXCOSUploadManager shareManager] activityUploadFile:self.uploadArray withObjectKey:self.keyArray isAsync:YES complete:^(NSArray * _Nonnull names, QXCOSUploadImageState state) { + dispatch_async(dispatch_get_main_queue(), ^{ hideLoadingInView(weakSelf.view); - if (state == UploadImageSuccess) { - showToast(QXText(@"上传成功")); + [weakSelf.urlArray removeAllObjects]; + if (state == QXCOSUploadImageSuccess) { for (int i = 0; i < names.count; i++) { NSString *name = names[i]; - NSString *fileUrl =[NSString stringWithFormat:@"https://%@.%@/%@",OSS_BUCKET_NAME,OSSEndPoint,name]; - [weakSelf.urlArray addObject:fileUrl]; + // NSString *fileUrl =[NSString stringWithFormat:@"https://%@.%@/%@",OSS_BUCKET_NAME,OSSEndPoint,name]; + [weakSelf.urlArray addObject:name]; } + showToast(QXText(@"上传成功")); [weakSelf uploadImages]; }else{ showToast(QXText(@"上传失败")); @@ -423,8 +442,10 @@ }]; } - (NSString *)imagePathWithKey:(NSString *)keyPath { - NSString *fileBasePath = IMG_FILE_BASE_PATH; - return [NSString stringWithFormat:@"%@%@/%@.%@",fileBasePath,[[QXOSSManager sharedInstance] currentDate],[NSUUID UUID].UUIDString,keyPath]; +// NSString *fileBasePath = IMG_FILE_BASE_PATH; +// return [NSString stringWithFormat:@"%@%@/%@.%@",fileBasePath,[[QXOSSManager sharedInstance] currentDate],[NSUUID UUID].UUIDString,keyPath]; + NSString *fileName = [NSString stringWithFormat:@"%@.%@",[[QXCOSUploadManager shareManager] currentDate],keyPath]; + return fileName; } -(NSMutableArray *)valueArray{ diff --git a/QXLive/Mine(音域)/Controller/个性装扮/QXDressSubViewController.m b/QXLive/Mine(音域)/Controller/个性装扮/QXDressSubViewController.m index 4b4de79..8b3f91f 100644 --- a/QXLive/Mine(音域)/Controller/个性装扮/QXDressSubViewController.m +++ b/QXLive/Mine(音域)/Controller/个性装扮/QXDressSubViewController.m @@ -107,8 +107,11 @@ [QXMineNetwork setUserDressIsCancel:isCancel udid:model.udid type:self.model.id successBlock:^(NSDictionary * _Nonnull dict) { if (weakSelf.model.id.intValue == 1) { [QXGlobal shareGlobal].loginModel.dress = model.play_image; - [[QXGlobal shareGlobal] updateUserInfoWithMolde:[QXGlobal shareGlobal].loginModel]; } + if (weakSelf.model.id.intValue == 9) { + [QXGlobal shareGlobal].loginModel.chat_bubble = model.base_image; + } + [[QXGlobal shareGlobal] updateUserInfoWithMolde:[QXGlobal shareGlobal].loginModel]; showToast(@"设置成功"); } failBlock:^(NSError * _Nonnull error, NSString * _Nonnull msg) { showToast(msg); diff --git a/QXLive/Mine(音域)/Controller/我的房间/QXCreateRoomViewController.m b/QXLive/Mine(音域)/Controller/我的房间/QXCreateRoomViewController.m index f0a21bc..c7975c4 100755 --- a/QXLive/Mine(音域)/Controller/我的房间/QXCreateRoomViewController.m +++ b/QXLive/Mine(音域)/Controller/我的房间/QXCreateRoomViewController.m @@ -13,6 +13,7 @@ #import "UIImage+QX.h" #import "QXTimer.h" #import "QXMineNetwork.h" +#import "QXCOSUploadManager.h" @interface QXCreateRoomViewController () @property (nonatomic,strong) UILabel *roomCoverLabel; @@ -260,26 +261,33 @@ QXLOG(@"资源加载错误"); return; } - if (fileData.length > 1024*1024 && [contentType isEqualToString:IMG_FILE_BASE_PATH]) { - QXLOG(@"请不要上传超过1M的头像"); - return; - } NSMutableArray *files = [[NSMutableArray alloc] initWithObjects:fileData, nil]; - NSString *fileBasePath = IMG_FILE_BASE_PATH;// 默认图片上传 - NSString *fileName = [NSString stringWithFormat:@"%@%@/%@.%@",fileBasePath,[[QXOSSManager sharedInstance] currentDate],[NSUUID UUID].UUIDString,contentType]; - NSMutableArray *fileNames = [[NSMutableArray alloc] initWithObjects:fileName, nil]; +// NSString *fileBasePath = IMG_FILE_BASE_PATH;// 默认图片上传 +// NSString *fileName = [NSString stringWithFormat:@"%@%@/%@.%@",fileBasePath,[[QXOSSManager sharedInstance] currentDate],[NSUUID UUID].UUIDString,contentType]; +// NSMutableArray *fileNames = [[NSMutableArray alloc] initWithObjects:fileName, nil]; +// __weak typeof(self)weakSelf = self; +// [QXProjectTools showLoadingInView:self.view]; +// [[QXOSSManager sharedInstance] uploadFile:files withObjectKey:fileNames isAsync:YES complete:^(NSArray *names, UploadImageState state) { +// dispatch_async(dispatch_get_main_queue(), ^{ +// [QXProjectTools hideLoadingInView:self.view]; +// }); +// if (state == UploadImageSuccess) { +// NSString *fileName = [names lastObject]; +// NSString *fileUrl =[NSString stringWithFormat:@"https://%@.%@/%@",OSS_BUCKET_NAME,OSSEndPoint,fileName]; +// weakSelf.roomCoverUrl = fileUrl; +// [weakSelf.roomImageView sd_setImageWithURL:[NSURL URLWithString:fileUrl] placeholderImage:[UIImage imageNamed:@"mine_room_cover_add"]]; +// }else{ +// QXLOG(@"文件上传失败,请重新尝试"); +// } +// }]; __weak typeof(self)weakSelf = self; - [QXProjectTools showLoadingInView:self.view]; - [[QXOSSManager sharedInstance] uploadFile:files withObjectKey:fileNames isAsync:YES complete:^(NSArray *names, UploadImageState state) { - dispatch_async(dispatch_get_main_queue(), ^{ - [QXProjectTools hideLoadingInView:self.view]; - }); - if (state == UploadImageSuccess) { - NSString *fileName = [names lastObject]; - NSString *fileUrl =[NSString stringWithFormat:@"https://%@.%@/%@",OSS_BUCKET_NAME,OSSEndPoint,fileName]; - weakSelf.roomCoverUrl = fileUrl; - [weakSelf.roomImageView sd_setImageWithURL:[NSURL URLWithString:fileUrl] placeholderImage:[UIImage imageNamed:@"mine_room_cover_add"]]; + NSString *fileName = [NSString stringWithFormat:@"%@.%@",[[QXCOSUploadManager shareManager] currentDate],contentType]; + [[QXCOSUploadManager shareManager] uploadFile:files withObjectKey:@[fileName] isAsync:YES complete:^(NSArray * _Nonnull names, QXCOSUploadImageState state) { + QXLOG(@"uploadstate --- %ld ---url---%@",state,names); + if (state == QXCOSUploadImageSuccess) { + weakSelf.roomCoverUrl = names.firstObject; + [weakSelf.roomImageView sd_setImageWithURL:[NSURL URLWithString:weakSelf.roomCoverUrl] placeholderImage:[UIImage imageNamed:@"mine_room_cover_add"]]; }else{ QXLOG(@"文件上传失败,请重新尝试"); } diff --git a/QXLive/Mine(音域)/Model/QXUserModel.h b/QXLive/Mine(音域)/Model/QXUserModel.h index 4cbd8e2..332e16b 100644 --- a/QXLive/Mine(音域)/Model/QXUserModel.h +++ b/QXLive/Mine(音域)/Model/QXUserModel.h @@ -33,6 +33,8 @@ NS_ASSUME_NONNULL_BEGIN @property (nonatomic,strong)NSString *charm_level; /// 装扮 @property (nonatomic,strong)NSString *dress; +/// 聊天气泡 +@property (nonatomic,strong)NSString *chat_bubble; /// 是否已实名 1 已实名 0 未实名 @property (nonatomic,strong)NSString *auth; /// 是否使用靓号 0未使用 1 已使用 @@ -64,6 +66,8 @@ NS_ASSUME_NONNULL_BEGIN @property (nonatomic,strong)NSString *sex; /// 装扮 @property (nonatomic,strong)NSString *dress; +/// 聊天气泡 +@property (nonatomic,strong)NSString *chat_bubble; /// ip @property (nonatomic,strong)NSString *loginip; /// 昵称 diff --git a/QXLive/Mine(音域)/Services/QXMineNetwork.h b/QXLive/Mine(音域)/Services/QXMineNetwork.h index 4a6739b..291b4f6 100644 --- a/QXLive/Mine(音域)/Services/QXMineNetwork.h +++ b/QXLive/Mine(音域)/Services/QXMineNetwork.h @@ -24,6 +24,7 @@ #import "QXRoomUserCharmModel.h" #import "QXRoomHourRankModel.h" #import "QXRedPacketModel.h" +#import "QXEmojiTypeModel.h" NS_ASSUME_NONNULL_BEGIN @@ -1135,6 +1136,25 @@ NS_ASSUME_NONNULL_BEGIN room_id:(NSString*)room_id successBlock:(void (^)(NSDictionary* dict))successBlock failBlock:(void (^)(NSError * error, NSString * msg))failBlock; + + + +/** + 表情类型列表 + */ ++(void)roomEmojiTypeListSuccessBlock:(void (^)(NSArray * list))successBlock + failBlock:(void (^)(NSError * error, NSString * msg))failBlock; + + + +/** + 表情列表 + */ ++(void)roomEmojiListWithTypeId:(NSString*)type_id + pid:(NSString*)pid + successBlock:(void (^)(NSArray * list))successBlock + failBlock:(void (^)(NSError * error, NSString * msg))failBlock; + @end diff --git a/QXLive/Mine(音域)/Services/QXMineNetwork.m b/QXLive/Mine(音域)/Services/QXMineNetwork.m index 76c9f2e..3207cc2 100644 --- a/QXLive/Mine(音域)/Services/QXMineNetwork.m +++ b/QXLive/Mine(音域)/Services/QXMineNetwork.m @@ -17,6 +17,7 @@ [QXGlobal shareGlobal].loginModel.icon = userModel.icon; [QXGlobal shareGlobal].loginModel.dress = userModel.dress; [QXGlobal shareGlobal].loginModel.auth = userModel.auth.intValue; + [QXGlobal shareGlobal].loginModel.chat_bubble = userModel.chat_bubble; [[QXGlobal shareGlobal] updateUserInfoWithMolde:[QXGlobal shareGlobal].loginModel]; [[NSUserDefaults standardUserDefaults] setInteger:userModel.is_can_chat forKey:kIsCanChat]; [[NSUserDefaults standardUserDefaults] setObject:userModel.can_chat_money forKey:kIsCanChatMoney]; @@ -2209,4 +2210,42 @@ failBlock(error,msg); }]; } + +/** + 表情类型列表 + */ ++(void)roomEmojiTypeListSuccessBlock:(void (^)(NSArray * list))successBlock + failBlock:(void (^)(NSError * error, NSString * msg))failBlock{ + [[QXRequset shareInstance] getWithUrl:QXRoomEmoji parameters:@{} needCache:NO success:^(id responseObject) { + if (successBlock) { + NSArray*list = [NSArray yy_modelArrayWithClass:[QXEmojiTypeModel class] json:responseObject[@"data"]]; + successBlock(list); + } + } fail:^(NSError *error, NSString *msg, NSURLSessionDataTask *task) { + failBlock(error,msg); + }]; +} + + + +/** + 表情列表 + */ ++(void)roomEmojiListWithTypeId:(NSString*)type_id + pid:(NSString*)pid + successBlock:(void (^)(NSArray * list))successBlock + failBlock:(void (^)(NSError * error, NSString * msg))failBlock{ + NSDictionary *parameters =@{ + @"type_id":type_id?type_id:@"", +// @"pid":pid?pid:@"" + }; + [[QXRequset shareInstance] getWithUrl:QXRoomEmojiList parameters:parameters needCache:NO success:^(id responseObject) { + if (successBlock) { + NSArray*list = [NSArray yy_modelArrayWithClass:[QXEmojiModel class] json:responseObject[@"data"]]; + successBlock(list); + } + } fail:^(NSError *error, NSString *msg, NSURLSessionDataTask *task) { + failBlock(error,msg); + }]; +} @end diff --git a/QXLive/Mine(音域)/View/编辑/QXUserInfoEditFooterView.m b/QXLive/Mine(音域)/View/编辑/QXUserInfoEditFooterView.m index 4e411a8..6e4a458 100644 --- a/QXLive/Mine(音域)/View/编辑/QXUserInfoEditFooterView.m +++ b/QXLive/Mine(音域)/View/编辑/QXUserInfoEditFooterView.m @@ -206,9 +206,53 @@ [self.viewController presentViewController:imagePickerVc animated:YES completion:nil]; } - (void)OSSUploadPhoto{ +// __weak typeof(self)weakSelf = self; +// showLoadingInView(self.viewController.view); +// [[QXOSSManager sharedInstance] activityUploadFile:self.dataArray withObjectKey:self.keyArray isAsync:YES complete:^(NSArray *names, UploadImageState state) { +// dispatch_async_and_wait(dispatch_get_main_queue(), ^{ +// hideLoadingInView(weakSelf.viewController.view); +// if (state == UploadImageSuccess) { +// showToast(QXText(@"上传成功")); +// if (self.imgs == nil) { +// [weakSelf.urlArray removeAllObjects]; +// if (names.count < self.maxCount) { +// for (NSString*fileName in names) { +// NSString *fileUrl =[NSString stringWithFormat:@"https://%@.%@/%@",OSS_BUCKET_NAME,OSSEndPoint,fileName]; +// [weakSelf.urlArray addObject:fileUrl]; +// } +// [weakSelf.urlArray addObject:@"mine_room_cover_add"]; +// }else if (names.count == self.maxCount){ +// for (NSString*fileName in names) { +// NSString *fileUrl =[NSString stringWithFormat:@"https://%@.%@/%@",OSS_BUCKET_NAME,OSSEndPoint,fileName]; +// [weakSelf.urlArray addObject:fileUrl]; +// } +// }else{ +// for (int i = 0; i < self.maxCount; i++) { +// NSString *name = names[i]; +// NSString *fileUrl =[NSString stringWithFormat:@"https://%@.%@/%@",OSS_BUCKET_NAME,OSSEndPoint,name]; +// [weakSelf.urlArray addObject:fileUrl]; +// } +// } +// [weakSelf uploadImgs]; +// }else{ +// NSMutableArray *arr = [NSMutableArray array]; +// for (NSString*fileName in names) { +// NSString *fileUrl =[NSString stringWithFormat:@"https://%@.%@/%@",OSS_BUCKET_NAME,OSSEndPoint,fileName]; +// [weakSelf.urlArray insertObject:fileUrl atIndex:0]; +// [arr addObject:fileUrl]; +// } +// [weakSelf uploadImgs:arr]; +// } +// +// }else{ +// showToast(QXText(@"上传失败")); +// } +// }); +// }]; + __weak typeof(self)weakSelf = self; showLoadingInView(self.viewController.view); - [[QXOSSManager sharedInstance] activityUploadFile:self.dataArray withObjectKey:self.keyArray isAsync:YES complete:^(NSArray *names, UploadImageState state) { + [[QXCOSUploadManager shareManager] activityUploadFile:self.dataArray withObjectKey:self.keyArray isAsync:YES complete:^(NSArray * _Nonnull names, QXCOSUploadImageState state) { dispatch_async_and_wait(dispatch_get_main_queue(), ^{ hideLoadingInView(weakSelf.viewController.view); if (state == UploadImageSuccess) { @@ -217,29 +261,29 @@ [weakSelf.urlArray removeAllObjects]; if (names.count < self.maxCount) { for (NSString*fileName in names) { - NSString *fileUrl =[NSString stringWithFormat:@"https://%@.%@/%@",OSS_BUCKET_NAME,OSSEndPoint,fileName]; - [weakSelf.urlArray addObject:fileUrl]; +// NSString *fileUrl =[NSString stringWithFormat:@"https://%@.%@/%@",OSS_BUCKET_NAME,OSSEndPoint,fileName]; + [weakSelf.urlArray addObject:fileName]; } [weakSelf.urlArray addObject:@"mine_room_cover_add"]; }else if (names.count == self.maxCount){ for (NSString*fileName in names) { - NSString *fileUrl =[NSString stringWithFormat:@"https://%@.%@/%@",OSS_BUCKET_NAME,OSSEndPoint,fileName]; - [weakSelf.urlArray addObject:fileUrl]; +// NSString *fileUrl =[NSString stringWithFormat:@"https://%@.%@/%@",OSS_BUCKET_NAME,OSSEndPoint,fileName]; + [weakSelf.urlArray addObject:fileName]; } }else{ for (int i = 0; i < self.maxCount; i++) { NSString *name = names[i]; - NSString *fileUrl =[NSString stringWithFormat:@"https://%@.%@/%@",OSS_BUCKET_NAME,OSSEndPoint,name]; - [weakSelf.urlArray addObject:fileUrl]; +// NSString *fileUrl =[NSString stringWithFormat:@"https://%@.%@/%@",OSS_BUCKET_NAME,OSSEndPoint,name]; + [weakSelf.urlArray addObject:name]; } } [weakSelf uploadImgs]; }else{ NSMutableArray *arr = [NSMutableArray array]; for (NSString*fileName in names) { - NSString *fileUrl =[NSString stringWithFormat:@"https://%@.%@/%@",OSS_BUCKET_NAME,OSSEndPoint,fileName]; - [weakSelf.urlArray insertObject:fileUrl atIndex:0]; - [arr addObject:fileUrl]; +// NSString *fileUrl =[NSString stringWithFormat:@"https://%@.%@/%@",OSS_BUCKET_NAME,OSSEndPoint,fileName]; + [weakSelf.urlArray insertObject:fileName atIndex:0]; + [arr addObject:fileName]; } [weakSelf uploadImgs:arr]; } @@ -251,8 +295,10 @@ }]; } - (NSString *)imagePathWithKey:(NSString *)keyPath { - NSString *fileBasePath = IMG_FILE_BASE_PATH; - return [NSString stringWithFormat:@"%@%@/%@.%@",fileBasePath,[[QXOSSManager sharedInstance] currentDate],[NSUUID UUID].UUIDString,keyPath]; +// NSString *fileBasePath = IMG_FILE_BASE_PATH; +// return [NSString stringWithFormat:@"%@%@/%@.%@",fileBasePath,[[QXOSSManager sharedInstance] currentDate],[NSUUID UUID].UUIDString,keyPath]; + NSString *fileName = [NSString stringWithFormat:@"%@.%@",[[QXCOSUploadManager shareManager] currentDate],keyPath]; + return fileName; } diff --git a/QXLive/Mine(音域)/View/编辑/QXUserInfoEditHeaderView.m b/QXLive/Mine(音域)/View/编辑/QXUserInfoEditHeaderView.m index 7b71405..0fecfc5 100644 --- a/QXLive/Mine(音域)/View/编辑/QXUserInfoEditHeaderView.m +++ b/QXLive/Mine(音域)/View/编辑/QXUserInfoEditHeaderView.m @@ -122,22 +122,33 @@ } NSMutableArray *files = [[NSMutableArray alloc] initWithObjects:fileData, nil]; - NSString *fileBasePath = IMG_FILE_BASE_PATH;// 默认图片上传 - NSString *fileName = [NSString stringWithFormat:@"%@%@/%@.%@",fileBasePath,[[QXOSSManager sharedInstance] currentDate],[NSUUID UUID].UUIDString,contentType]; - NSMutableArray *fileNames = [[NSMutableArray alloc] initWithObjects:fileName, nil]; +// NSString *fileBasePath = IMG_FILE_BASE_PATH;// 默认图片上传 +// NSString *fileName = [NSString stringWithFormat:@"%@%@/%@.%@",fileBasePath,[[QXOSSManager sharedInstance] currentDate],[NSUUID UUID].UUIDString,contentType]; +// NSMutableArray *fileNames = [[NSMutableArray alloc] initWithObjects:fileName, nil]; +// __weak typeof(self)weakSelf = self; +// showLoadingInView(self.viewController.view); +// [[QXOSSManager sharedInstance] uploadFile:files withObjectKey:fileNames isAsync:YES complete:^(NSArray *names, UploadImageState state) { +// dispatch_async(dispatch_get_main_queue(), ^{ +// hideLoadingInView(weakSelf.viewController.view); +// }); +// if (state == UploadImageSuccess) { +// NSString *fileName = [names lastObject]; +// NSString *fileUrl =[NSString stringWithFormat:@"https://%@.%@/%@",OSS_BUCKET_NAME,OSSEndPoint,fileName]; +// weakSelf.avartar = fileUrl; +// [weakSelf chamgeAvatar]; +// }else{ +// showToastInView(QXText(@"文件上传失败,请重新尝试"), weakSelf.viewController.view); +// } +// }]; __weak typeof(self)weakSelf = self; - showLoadingInView(self.viewController.view); - [[QXOSSManager sharedInstance] uploadFile:files withObjectKey:fileNames isAsync:YES complete:^(NSArray *names, UploadImageState state) { - dispatch_async(dispatch_get_main_queue(), ^{ - hideLoadingInView(weakSelf.viewController.view); - }); - if (state == UploadImageSuccess) { - NSString *fileName = [names lastObject]; - NSString *fileUrl =[NSString stringWithFormat:@"https://%@.%@/%@",OSS_BUCKET_NAME,OSSEndPoint,fileName]; - weakSelf.avartar = fileUrl; + NSString *fileName = [NSString stringWithFormat:@"%@.%@",[[QXCOSUploadManager shareManager] currentDate],contentType]; + [[QXCOSUploadManager shareManager] uploadFile:files withObjectKey:@[fileName] isAsync:YES complete:^(NSArray * _Nonnull names, QXCOSUploadImageState state) { + QXLOG(@"uploadstate --- %ld ---url---%@",state,names); + if (state == QXCOSUploadImageSuccess) { + weakSelf.avartar = names.firstObject; [weakSelf chamgeAvatar]; }else{ - showToastInView(QXText(@"文件上传失败,请重新尝试"), weakSelf.viewController.view); + QXLOG(@"文件上传失败,请重新尝试"); } }]; } diff --git a/QXLive/Other/Assets.xcassets/AppIcon.appiconset/iPadApp_76pt.png b/QXLive/Other/Assets.xcassets/AppIcon.appiconset/iPadApp_76pt.png index f530f1b480c0d4a126239741c8548aa9c69dfe28..cee5aeecca367a932711734377790663445af257 100644 GIT binary patch literal 7465 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 literal 11955 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 bK~w_(>+==Ft0I7700000NkvXXu0mjf_ns91 literal 39653 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 Ef=K(^H2?qr literal 3905 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 P00000NkvXXu0mjfwOV!E diff --git a/QXLive/Other/Assets.xcassets/AppIcon.appiconset/iPadProApp_83.5pt@2x.png b/QXLive/Other/Assets.xcassets/AppIcon.appiconset/iPadProApp_83.5pt@2x.png index e5be181e49af9d36b86d04a134dae00901ee8903..aef0bf45a92964fb93d5f14dec7936f3f8021dae 100644 GIT binary patch literal 25208 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 z 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 literal 46577 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

Sj;N!`4@)H> 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 FV1kXstttQj diff --git a/QXLive/Other/Assets.xcassets/AppIcon.appiconset/iPadSpootlight5_29pt.png b/QXLive/Other/Assets.xcassets/AppIcon.appiconset/iPadSpootlight5_29pt.png index 11862c784298b54a95a8dd7819d731f7cd6f393b..c071754d7fdf7af15ac83539229799e39dd5cd48 100644 GIT binary patch delta 1750 zcmV;{1}XWG66Fn$BYy^(Nkl7G3AQNBbT_i_npdd}>Saw|%^}pAS-% z4}PWU=YPeIL{b$HNFxCWQDcxA6GcVE0jJgp6(Wk7g2b3Og98WzCyJt-pcTQEf}ym1 z@80d&w|$Q&lQDX8*4_J_VXbraKIdF3d;DY>er~y(J?0V_S$}kyz8EaH>J6%!pJfOc01 z3Hf#W+u@`girThYXT)N&2bSS%bfrq*42^?5E&vnwC;WNik&s!2ti}BuLI6X!7ObMrg8H5R!+*t-QdrFia8kxlR70oXiU2)5 zFmo28U%`2>d%6(UFBzHf#fS+5{WwAIlo{}fO#vGrryE~K=)uPj0(}E-Y;43e3mUi|Y-A-TVD7?A?8^>pw=}_; zGfnoOct1Q_cfjsyN7uWn5%K~Z;h)e}=*45c6ujD2fDiT*qGjtyOguCngS|;45;w)l z!+DcZiGhCv2g4uh!ILi=T(z*7{Twz3VPFZ9t$(9*em~wg1{Edw5Q@u%SDdOY3I2-&?8-L=(78drgiPz&ttPPFg%8ljeEbRB5I;X_S0aI^_F zbAPKjbO9h?=nxba7ow!3khTcLYKdTJ0bG=vgZ=}2%qaymG*wkA;N8&(|Kb{WRy>5R zoo}Q5xk`Ms^#S-^+6Lj#f^eFBFlrewHPfa|!M*n^L3Q0;?S%}j3ayYwFAsx@3h(oI&%~NsFi0Qp66|S}yHuXcK4I#`;1d0wB5|6cOAH@}y zUkq=oDg%DM505{77n*n74o~|srh^;GIR;3$7i2hj(eYufR4t*og&rSXTRJ%G;eU9` z!m3pdAP^XZ0|(mRiD3k|$~9{q!6jvFK09<7y}2y z;Qe=AgwGd)^UMB^O&@-SKz+b}53hi9H!j*P?xpr`%>()PoGy6?kyZ%YW@H2gksu9WMfu)9+3Vt?>Aw{m$E zwr~3qG2Aqxa$?=8wHB%_Vi=qVK%wMPazgMGI!b`C(C%d2pP; zfd0VjC0%%Won9i*re3F>(cl5P1^LGT8ER zf21c{m{-+}=2jiq*V<0Ik)mrXI;Sr@48m0s+K<9URcXu1FFK3}Zc^4nM3K!e4zVxSg-*m{JBl*=UI zozil8$2%n_4aKBMA5)#^X%7M`aGGH<}=5s?Rvgt<~PwwcDXiLpA%kb=q zbf9GxWZz8S$EDG>KTp$%iq`FU8>4gTAP4V+{JbHGKT|Bi6&2MAX{}WAm*ZEWf4N$p sz%Kv*0RR7}Gy$Ce000I_L_t&o01F2;c2rismH+?%07*qoM6N<$g6GdvhX4Qo delta 2310 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 Ef=K(^H2?qr literal 3905 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 P00000NkvXXu0mjfwOV!E diff --git a/QXLive/Other/Assets.xcassets/AppIcon.appiconset/iPadSpootlight7_40pt@2x.png b/QXLive/Other/Assets.xcassets/AppIcon.appiconset/iPadSpootlight7_40pt@2x.png index d190fc9a768e3e6ff1353a04bd2f531f11ce321f..c5e3b8b728468b263f2755e500869a0b7c574031 100644 GIT binary patch literal 8120 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 St2E~T0000P(jON8P=kI! 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 m|1-;cUH||921!IgR09B@s^6z!^hHJh0000 diff --git a/QXLive/Other/Assets.xcassets/AppIcon.appiconset/iPhoneApp_60pt@2x.png b/QXLive/Other/Assets.xcassets/AppIcon.appiconset/iPhoneApp_60pt@2x.png index 86411c51e71e94a5bec1c4dcc4d07c68389d6da2..41f1fb61d1b9bb49e4e67c297c19c0df0d960ff7 100644 GIT binary patch literal 14706 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 AV*mgE literal 26170 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 Su&Mh10000=vn~F>&z6$#Go|^!&y?~( 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 Ef=K(^H2?qr literal 3905 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 P00000NkvXXu0mjfwOV!E diff --git a/QXLive/Other/Assets.xcassets/AppIcon.appiconset/iPhoneNotification_20pt@3x.png b/QXLive/Other/Assets.xcassets/AppIcon.appiconset/iPhoneNotification_20pt@3x.png index 63dfa060fbd17fab107deb3fa0ae515709bffb1a..6492c2fdd5d25bd31afa42441f575e05cd62ecd9 100644 GIT binary patch literal 5133 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 EfE%!a&a&OG<#C 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 IM6N<$f@sxiK>z>% diff --git a/QXLive/Other/Assets.xcassets/AppIcon.appiconset/iPhoneSpootlight7_40pt@2x.png b/QXLive/Other/Assets.xcassets/AppIcon.appiconset/iPhoneSpootlight7_40pt@2x.png index d190fc9a768e3e6ff1353a04bd2f531f11ce321f..c5e3b8b728468b263f2755e500869a0b7c574031 100644 GIT binary patch literal 8120 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 St2E~T0000P(jON8P=kI! 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 m|1-;cUH||921!IgR09B@s^6z!^hHJh0000 diff --git a/QXLive/Other/Assets.xcassets/AppIcon.appiconset/iPhoneSpootlight7_40pt@3x.png b/QXLive/Other/Assets.xcassets/AppIcon.appiconset/iPhoneSpootlight7_40pt@3x.png index 86411c51e71e94a5bec1c4dcc4d07c68389d6da2..41f1fb61d1b9bb49e4e67c297c19c0df0d960ff7 100644 GIT binary patch literal 14706 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 AV*mgE literal 26170 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 dNklRCe#A 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 W9HrvU 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 z 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

(m#WcIhi%4C&;6A*tF~rNijM=5foF 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%0ANGG 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 oV ziaLgjVI3pT54wmZOM)$cX+EA{9uVeZ!q@$9&B!s3{4*Ib0|p>3w4jKr75tNVFe@Y| z6$M@_mSJZu3WlHwO!T181Gv`|cZu*906aU2VPL?OV2a&?`?evH{f2Pz&vR;2T|VQ^ zvzsP7fR3Oaw7B&M*M|n_Sq;qmWcphndCnw0rCrgI~u>2e6zfUb@J~?fM@IyX5h6$7Y3C#UWavH zQS5^Pq6Wl^OK+QC^OrV~zRO-{0Y%V4Bo&;}&$7-h3ztDKYn+e9ij(^qA#_K;b*pT- zu60{+sarW(O#L@h9)E^C)(CdWxOzR5c$*+fdsb-du*PT;3x~GavF)Va$-m)AE+6mM z+8YE~R0)T3yD3N}evUC!F4!&DrvZ5eX>OHm)|uu*80Ui@x}5AAB>us}qs*h9f$()Z zb8iF2-9fToSCcE>$7b0^+l}Ny5x~JvDU?g+kymsA1l$yueVbR#pgUuhcqN zlZ30Zt1Qh{B-w1(r3n!sN`dMUrmjFY!fOMgeTye18bUhZfJ2%?50ikx#`&m9aQh zYSM!1eIc|3BNjUCE;D8B&kGYC0%@O%<}+wV{R|P``OkP1&`L}G8>P+MhfbLN zKodOFkiAk!pT23-~c)948@QB4#!ydSH7Ob8@9lwpVylirASVUQ)LZQ-hepzCmF9U2kJ+JlmdKyAiUX>h6y*b;yso z6+0bK3P03;1p8P&ecYXSY!q(Mc+79x-nwaY+v|k(!k~7l+TA$O+U4qvMq+U`#^r6T zJkLiSZ)Yxts}}wMv2DOdo8B7zmhRDpzSF_mDKC<>ohDm1@+3m?g_XCY`4vE$0O*qd zcO?J3{r6V@U!a}@aPsdj1^hPv{D)lpiQN^AKBF(c{pVgMZo-EPJNm8S?cxoa*mAf) zm$7c>l&@{ZhTX9%b>u-DU7K81O=ZDo@<6xL))}qcjXu+q&EQB$_NkTQjHkw>zXOdF zO0^P;^1}LP9Zxi7zZ0fKPxd=(q=o6U!12g4hw2vq%H#T8`2_&F@Nw_p+V)}?7OXey zW26qo6w-@jBgbc^!m%TqcEj5wP$om+e8m9UAnDN0aTU)5b_ zW-tjKM9CGryd)0;rKs3c7AuUDU?^!Xm6CLw%91kGQTx{6a-8uj0&Dn>V_`42q!-YZBHO zDNx}i%LZbW)WN0BlPvJH^rXl>ej0Rgy9>o$a`G=H`cC+bmi+sV`T4oUXvzMXx~-k$ z>$AcF2o#odBWf|@|GK{Z+!Oc^&pP0)~_caX2xR3&xqI@77=Ry1fNh~ zbuk4LOKwZpW}um|1LZPPKcKx=#9f8?2Z^C{;6;@3d6dMzCI8~>zj8u=7(c6ee86)D zgnUEscrFZ!3;nj-j$)4#TTw-~;o6Rm;?U}?b=lH2|3~OX=!WW%Mh@nU)i@X*=YF`y z_pHkg9}Eqyx6fL}<#f5w*{AL4Mt+p#crc;(=Ek2A=}XA6Bci`&M-#qm?0gUu?PX`r_-0aVAktq}m?{^rV3Q2Z8)A1esa?2k`$Q zfE@n20sdMb|5EF{|w3G#v!xJbX<*d|nrs2v6l?BIS zUBTOAgT>^Nk!;ct-xQMUP(^t$ZCCN7%ECr=~Aw{k=x`;t( zcEUE%dnV>wpZ691qkT@`{rSFs$3OF|asOHK*N?oQ03Y9L{_tK8?|)C+|Ngt~etWO` z_n-9e>5FEr^LfpuIse%rk$d{Nhu$dk=e`qE9uwDICH`Ob-h;t)9Ld%^A!S}uRb6do z-tPbZbNi-E)%7M*!hREF&jt_mY!%qg}5B z&1?7lUVg%F*vGe>BZ=(c>sLK|`lLr-{`mNy!q_UPIf5-St^!dASwt4O9(dzY+o!2+@*_#41(r*edTmR%v&Kr;$3kZ|tuTmVwaul7dw&CKW%kk)v znK=dQwk1}Ih0)^4F}+V4jI33jm?}Pb>+&Gmzo28Rl^rAQ*~Cs!O>5VUbTYy$4efYP=J8x)nm|OQ+&2&K{l*8(#dlf!HK@lWhebUkH2~{fOFG2``{v-f|^S) zHz_HX#x|0wbgA6-wmFyXh#bM?i@~Imet#{%R17q8&`BQ%pBadpDsSL(O`Z+@Y&H3t zK_@TJ$%Z}x$$*!!!3TP)Bj7@9fkBobc*DHWJd%uZ=LdJWT!-x)YKwi%ni}2LwEK?K z`XxrY`N>XT#~gvmYw^awR)Ab?gi?veKu3GyBd|}X?lm_0RSfK`wrI4u{8F~gj<-Of zbaTvd@JV%k!G%IP0Y#SSR7#t?phNK160Ef4Yll&V!A&eZ?f&CMWzx zLvT%&pZuF9_7c}^C;#%B0KnJp{93>rPdV^$v88Gh3534qU^r1vEMo&ccVgf5s!5$(q9%-Z6PRzg?NHp5b< z=D!!t#T@k`e`CF^NIh1U$~4EpW!m*Yca_~Jw4pkMSyy|q!96+ozY>p-XV#5^7aP6~ zGe#KswdY!MwW5ToI|hUT=}uwI`X#0 zu?(z{@gq5ze@eXWt1HWf-**4g4*R+t7ZBLORXRw54Xd2s`6!~WgLaW7oxab6&QmNTetTPz=WU|j-(oc~R3?Ai4v0W=dh{kD( zD;DdGk#)>;8kE-A56UV-mT{SALe;NVh#TcR?aFeN|LjUDs}K zhvF{9f_tI3wMcPyx8m+Dh2mPA0EOc2?oN^79^BnMC+~m8cayt}T5nl7O^VX^>5bb(9k@k^LCE~+enxm3UD6VIt9I_a4J+}JU3 z6mspqKYupWoUebU{C-0bfH5L&t6MrCtHS#was1tmrmZWC8kP@kMl0GXxYvT}c*MnE zDeuV9Ux1BwfmD@~lYl~FAi+7oxZc4rbCQXrjwyf7G+x2Xc#RtH_+D_!ac%v5P+VFZDnDtK@jHkTD2ui{QT)6o?C?a+LS7&~N0obM}8GsTs zjR>7$yy!2O>EIvcT}rTGp|-A%y6cQe5U7W-7y?2@PJ;Ns1&xN#a6*H+WMEH<|H}v7 zE04n}MhW_Y0`pOdT7Olc-sbxK!>gO+{a?(`*JrluU` zS4aL&T61rdUf2?NGzBDvB(2}edDguHkglo6|6u`9-{s(vVPJ@i$1F;e@ddy5z1IBf zngJ>SI;xWa`$yb+pX)ZYqNDy04KSl9MyA8vn7T*)u=%*)eC;l3^Skg3eM#TCr{ag^ zibHyJ&78`ogXYC#h+&g7Pa_-NzmJdncr&P(>>e4m2^BoXozHkKq`uv;bNAy^AMF2n zxJmPghI$OrWlp*xNlb1}RE9RNwJ)HbYb{lzDx6OysS;@L+7_0$3hP}Q3SDtj(aMR~ z@Ax<{i<2*}tadnFyNqO!K?8ezeG+xI?=ef?yT|YK1Z*^TR|dP9*C?kZJq2z|z}aNJV2#!F z1m^Uyo|-Yrn8Fl6InF|`n6pu3dgH)hSS-H6CV?yhUxZ7o#u9b@EKUu1O;-78n>A5N z+`mD+*E3tuwAGL^s_%|^iB%QE?1hO?5#Kz=iXeDhYQ>(0{EX&eT7hDzg41y>d+7MU z4Kyr0Kgt4nH0toy?>z5-`gJtZu83cIvrh%H;Dk$~>&H3P<}os0#n z-*rBCk2~hqmsscj9l(m2=cY0j|6aX#9fWLGvEK1p(kr&BAYdD1pp00eysOEdB^g0k zyIV{)Ltz0!0gQ0QTaHq%YwtKVb0}j|+eUt;GcW%Sepv5!MpcqUYYOAuF~*X0BP*#% zKMD571-JOMCI!?DsGU!a>$y;ZL?dT$XnPEIiN1RhoyR{x=gN**;<)@LJZ=;qYImMd zfNpw;mfbSwE(DWF2^QY$2Q-96>HP-j6?&mT;hBr8G&f4aEdTw7GUEC+j)uumETAo`x5)21TXE)q6u7V*- zEMS0FNj2n#$M*?Q?8{G$DjMpPJ{_iIhx$^dv>*6|$spb)SwJHlF7J7S|Kcy_!k^z0 zj5{QBBw03iHi4{6;I|mPvcwtv4XP!$FIi=tJo=fRxtrod`h*{QM&oy=Cfhg(1ZN2b69BNU{iNeVCqTCcNUsm9K zfJ>$k%;T6mtJ8L_BY*?u5~fuNz~MTcqkByX0IeTvq(kpG2p&|?nN1FzU!YcH(4D#$ zefHd2_^0o@I)r?@u?msGWb7BlhZ0=nv2=LfF=VP@9ceYdbs5_|w^HdOdd`)6Gg29L zMyT})@VpD^60G#yYfHu~cXAm-R%MyK0;!yf4svGlH+qI5)i-|OI-v1@tiglYDck>U zSHPML5p30pi9zFJ6RC|lcUs#8TIEitu~^1;rR2W{Vz^o3^R&l!lgBA!lQqfsyhKpT zTHD%FA(3=c`o{`xu(*yUu_`w&H9NNm9`*t#!6omaEC^-+SeA~NitRf1HT*|nCerN3 zx=uL%RATGq3;}2}7MdCV^0|U)b9e0>}PDH}APjwykL&g^s{xNL8#_B|gb#0z9^=7uTlHbkP zpXpdI#Bvmf)xZ6~P_46x)U z0{-vgknFBU5*PS}MGFal+mzwb6QaNF{CRmE`cwJKPYhcIqJL5{x-bakcG=>(Cr-Bk zZlcZ;*va0?)gbtqp$?UGXvv8t(~_o_-d9%`Qk*V3^`vjm*xnp^qZFk#4Hk{h&du@T z|Aqj|1i&XOGCk2d$fe;E>3;*M8zv$7@l(hyQCk;!qoJpvm!BGJ*U$Muz117Nx%Jgc zmgAj9rk16wA1yAF_*qw{9Eil;s{*{YRy%iG-5=jJ+ygJXzzru5&DiBNT(-2VXGnpc zD%NGb%kQ~ys{OCaZLE)omR>GY>}yD%GLdhJWkTY{&p&iL`yEleBzhdt9v@&{!-Gtg zJ(QRp@2VxxA(}zmkOQOLyFlDaTJZplAZVO3Y;JOwH*z@sxGDLs{n#JlstwV#bL@M! z{OdASma8%18S9@%9O~-M3S2^)<7-WzBKcn)5w#uO1*?{BEYMKsvi196TC?qT<3WVA zL;B;+4}0b=LOX?}+3w+g6r}^^ypb?~Zvl5uH&6g+4=yaZNW|OR2rtc)J8JDWOx_-Q zO663K+NJg9^N4Sk{6Qg^O31@0tqp^iC^~|p0*6dZ6HOUWbl&iqv=*(2gs|lu=^iW= zCuf33YWeD)G&|Ym>8O=|ERCR17mgA%1xZ(}r^1p()oKjYDQJdKZx?b`bE7#NAF|zp z`*sgulMKu~#Eu(k(M5DDkG4aGR2`Rn`uzwzYVcgtSV&}IdxTALOxedjXPWpI%NaH> z;MmB)bA30Zf%!zGwUE_u+E7-2(6n)nH$j9f+({N!>65Kc=_(M-!GN|Hp~~AmFF_<6RDBcgOsWDERPl%EG4F49)I{>1xiw9uuos_$sJ=o3e5z}O3Y9$ zdBh~2Q#XLm#J(fN8Zf|$S@Zzy{fPI9%I|ZcEJQy6Cky+*7C2=)xWK3PT5-wqT=~A$ ze|<(MrK)4_G+p6k$#c7~zX;WwlF--&Q&H0YF(&F|!;Q);Kj_6{i*kA2q<+a2S*UjW z1%4@>+P%uV7=M0CeWJMaDd5IkzpwYU7PoBtWA@R*o#K~lkhkh}w*xh{gI;(3_i|%w zlaIW`q$8~$ey!W4C=iLe=BmAh@@|$*{wt)%y}+@>$L@6G%)cHwl}LMm_%u6_5C~uW zVPhqltkXwB_ZjU;KGgm+x)WfJ_66DvGT1L;Z<1KosHOGe0c{Yj?@iHrWzdy9OrQbO zA-7gI7^}WUyGMySSFp>6a6h+)0_bLiN;+rTl{=Sz%sup05JbD9@XlgjQhsSFp1=Ot z!1FaVl+t>oQyh$3$&*I(WCvQW6WZThoxrcH($r*YK8miIRd=v+;vZ~YNBvIYbaSWM zF}ex^u+@rv;knicTvyjhYYjX81g?6mOmCM@QlO#l&m8qwA)Fndsl!Ah^%u$7=l4r_ zrH9H+MO-O-aC$o2r4#|1&~We~W=zF&{jl^ zu)?Nj91y$^uY)=q8S%KVWRtB!Wsf^#DS2Y0cnp;{0|f4>(d_ctP(77@l!U+wUqOk? z4zcQPHKD4iqv%CE)FFXmO{B6&^2e&=x3uXD3nr}ovbaCKv(ixB&7{$eWiFH`O13P! z8SV4=&-}mYL`6Yusv>W6xF7puN3{XGVyb_fkG_3>UK1PMrs-x8U9l8$HOQ`r>^=mTFiKY6VUOIpG zPVNytGFJ{h`|wIK@KEc~0beJeh!8?m%X0d{IxIseDo1APtly9gIJBQwidJCRy`YZ^ zX1)+U-jeP**>CW5i)yTm&08{T_qYAqWdLh$Z+b5<0rpa(qQ*j6*Nc@11IPze%P2!QldQ!OA|kO5#(OWm#o)k6o!Thu}E`SZX;8BQkd*n*vweuf53+4 zNr?&0rNVxqx|zQc*iUVp^OujTCN9Lg8yKt&;gZWESqw26MJ+Sy(UM7LqSaXUu^mV6 z{6N>X@uxu_cCe2xoa^|tZ`h}KF~J_yI^;M4J1I1udOvH)OJY1(TO=^&kyP;=hy0aC29+_t%k67%sq~?R)VEQa>{nqB($4{jI+hWd`1reX`shzmN0jkuZnb0dEPB?+OrzFL_7zV-Ac7p-XBmW2&z zY$<6O<(kXKgW|1+I>(@WHAYqI3j?e&*JSTKN*@INPNJP51_KfT2dX<^@^%P+4NnREIXH6cg1J$A)ZEg8 zekX2b_PJ95A{J-)CDyb~tF(7s70z4r%lVkg`h3B0}$?q$Ks1IRWy z=4m323wHb-OW<$;(x6A^h6Zg@6#nRRy9>A<_PlU6r|wDq@ZPoy@*O76@o8SQrWAa_ z0MH~f7WA*B#R?>9rTzPrD6I$)et;iaX%JUq=RS&Sn?nqmKe0w9iAEs2F2YI?FT zh-EJkgwO5K>rJ%3UWu#Rn3xe>S9U+%mg2Gf90Uejwj}H%;{tA-p_vpf49;uU!3jV% zeWx!}Lu<3s;rI?G$Tth=>e~Q2pu-g0|D zfzFX(P5t^#5U3}{w7R!ycHm6|X8w{Pot11shJwC~yrKOh5pBQQC zcWtUIHN;6I9tw7`iNgXgyG}j=-rV2oXrd%5>Rm5O^n-CcQUSN z_nN1YwooGoHk^RIn1ivR3=}U!sUEGJPa(f!y zoC?}1#25>yjVd|x!Lre)F@@Eb;1s-rXEJ)ExFK7?@AZFtv#&dnOO%%DK1_T8B3TVB?2SiZKJm{{Aj%$xIrC!fK2)xTd zI@0!n*;sEeQcu&lSYFF6wl{slcP=GXdS>P3YMQFedJfIU&!vu#@qcSHL#GUFOX%}v zMJsr9Rcm&cgq=RNb7$JNXZBZXe8qKyB)%>y`&F8Y6+chG~YA4M01 z#?g^0cZ(V zi`A}@%Q&~AYU~$Tzt<~u?yyiIvJ&9)@N>2Mc(aBr4)c~dQoRPk&)ly-Ou z$CSaq%Hv2{AOVuZZ24U~LGlhu730ti(+h7kuN6^Gas#j`2LCEiJhvrU6`DmK zU`m^&BQZ|_V`0BNs`c$xs@$_$P@`bFLEAc8d&3q^QBdP>)4h;`hx*XTdC`g?6vPI& z2DN39sx&s+`?mJ_7Gd4(Exe1eFCw$J8Hy{%Rf4!5MEX_bgOH(h zrBDx!pgayV_y#MtB(2R`)j;NT4-9yG&ZBWr1YGV0`oIAUj8{1o+X^J1aCFig`Di<~ za&Y0&M7av^76`HxN_%VA$!)sl81OUXQ|nHC>Vpx8U5{g$GxGXv=t36pul&TCfvg_Z zNZjC3!m7D&U+|0D4X+|zj>T%8CK3Xiq3o6u%43Q@JCT2Ivi6msLr@86#^`l5LL7Ltoo+f*(GTQ*O6q%`7?{(nV;k%#v z(|#sssYdR+@oSpU*Es`)qTT6vOT%lk)z-&aK%#_~X$ftAD+XkS7=@zaCL_~1nMXqL}^O&g6u z`T6yeknz=%EeEl(i%XDfxlla&^pQTL|7XVt7n6+u+!{6MuEb4Qltm07_98pA(a~rD z6!GY^oTd0kPv^mcwK?qK>XsH)G#6NiskY+SZfI$u02Yz>^*p`ZPo@DbTA~vwORW!R z9$5$q4A=1(LxUtEh~~P*F3FZz&aH9w@pDp|WTQ%1rI;tZv`Q4edQ%3=8(JIX_*!xW zt1Cl}PGj@AqwR-?Z%Uf7IFJ8UyD@acHz^?N5+%EtR&Xn35?dvk(bW_RDKFivAL<1p-${L@O&sP%n4gpI*)zD6qS8leHa5iLeUcM>T7l}>S{hpI?zUR z@%7#tFw(ru@0CSTh?Q{ENTKkJ=dB(ySM+4WAB}NfWh(G>e{`i$Y-EQL*081XkZ4lkWo`RjziJ2bmEu9(>7(naMKdg_Ec#$HXIc z#D{kZ;$rlowwiHeH9ZmSm%Uje^g=zxt1Gxww%(9e&N;{8Y#%_rLvg-8x6VI3PD5kN z@V?6|ap!}#rPnvp9JQtuNlN-U8GwRBSooo}iF+Z24T8g_*T3jWs!V?VNr>5Q!%5nU z3+W6Yx+L?XONy9S%GoyKw~uX($qLh#f9wc zH_ZdnL-qAR{W*!Z1GebB4Z!DKIfY8bRgE6qj5Whh>^190;Xd$MYmoe6JScrd6pwgAH17jU-8EgJgK;VBv4p>F{gm| zuSE|(rMySI&IVCk(xc%7$v(SDzm?>tFUBo)5p;-H7J{jmsTzd!D7+321d~Hf86;Bo z;&Tn!9Li#33v9ML1>{nNG!}e|7R1?^Owkr(qhAg!hNc%xk#6Z1gR&a7c9$0OxX0_( zh?^De%1)(LdC{UeYpSc*<@m>WM6%Qe=+_I3M?pGDTB#7`RmfH|#pLjsxWf`Xk@cD%{P0I@}r%%!6@itV% zy;FTsL*dG@uh4)ituMAI(P$`r{NRL~l}41^(YnOm*uM2=@uMO7tq@IdLyYSm_KTa} z>Z@tBeLjv6OQZ$C}B-gEYi_R_w&=vBsBN9ed0LQU;u!++g2i za%Xhsvo>oi+N`*2RITDxdb_mI;D*)MB5l_%I5JZ9ViI|4xZeru7B3J7OaGuVvRU5> z-;d=btwecN%|3}!hP~kk>rJ1_V zFysi0D9cL4gWKr&KNGY+v6V_@;KA8FyG4zaf1Rzb3FTzA8^kzdgXcrbs9xsPW20$0 z291FvTuPKA4qz>VxyI5@1elnOO8Q5R%V+PK+L+%+lvK>a#$*bdM^}-w8V6rgE*TYg zYnM08zS74I!j)dVl7rp}lU}otzaP}$K8qEnP^tr)De_$ljh@XHJHIDUnEgT>f|FrVSsGq!0?xibV^1)aV_~^ZOe}}U%%)=FWGra zxe8P_Bn3{C_#Tmhqce`LjQP$O3w$sbJpDG#2zZ!5%~A=wgHu%tb``=4a!0`QX zKrSGi4&tb>L44u%ivNrTRT4nFilK1GJ%O0_3$~~d?1yMtf!y~O>o(lLq{Hpv_e*Jd z7|bH5KFRw@^!^3DCl@k6+e2w9G4-Vd=8<0f^>zXkRA56 z7d=+jhvMA5X5{S%EhhF0w+`@8&pRc?b4Y{H*RKIIn>;X=CFDD)qvW^OJINX8Z1G2LkQ8PqTiBk6aI*xn*-fnK)w^t!wSIi2hwwZp%|P*W4+Sc4p%C zB=n~+{_8!eUjcUh&rf&CPEw13rf(%_fJvYRmPH8bg3#B*L7cqZ0iHDwX)H)BWHOWLd-joR70nrN3< zy*2TGk|T0Rm+UV_d(n**q!nYbk!#R%&%(#}KK7%eSp9iPR&Xd(-1iN^Tl>uYG=%~{ zB;!Z9{7M1_)Wr4%wfu`j0US}C#f?=1ItsVn5qrp4uh;qVDr7r26C8E<{MyTAg`5Zl z*FdgcsB$GSw6h{sX+64h*&NQ8wxxSwmzaJ;BQCAG6z}6^SxEAW5sk60f2NkhuS4T8 zZGxNMUpdRE$}Y=yARMY9JL>zo(d&?wz`}50k$AxFE8fSN+fBQZIcYT6DZk0Dbr=$dPDdeeUzP>?hek>k$;dBi!N)nNr0DfGQDq<$2vrQ>ye#NRO~W3h;zd-H2T2JoY=qa?aR>=j(bve~0!g{SI?{A7`ZO$wND_6!>Nqx^4KbCS7>`O)0 zd!eg8bzw~y6epse{(uUR(DsY7Y+ONxY;xJUx!ZpxWKkX!moVWeCu z6s7SvI>D)L2-Ut=S~&IN@Tr0;igt5JEul6#vC)wMNcpZ7H0S;W1E6-&o!1PZk=4ot zT&hL;9(&2c8AhZ)xIP46h1bKPp=xrI|I8{sLz67)ur2|X{rF)PwLr=^7yA{i6uTvM zUdpULrFbZ{@~989(M0c$Qd`g`Du08YadQf;$B$Ar24gZNO4!@BMa=AY4QSBFR})`0{m1>~r3MR0DE2cN@d)NSf!*ptHSNAeT$u3>GtB7XIV46QM+xW?iiaNL|K zhR$5Y#z5}`%m7Q3`b=LD{lyRF#??cAyC$xc81bWi#x5zO(eeQ)qlaYcCzcQBH&g6` z#+ERP8w~2o+2Y(o^<2YQvRO&AK^>OsQ!E`S_xmzgaam)tZ2Y6E&I^x*-=M!9n6Z(l zO(GBY?gO`prj#uzJI)74hacI6tm~1>zK>^lGSycDsHULD!sPzsMjn8-Ng2xgbPI__ z#f4FPkIxBs`!=bE=jpl98IS?RM@}G~LRVnH{EKA3wET4jpyg$%+eWk#T0Oe{Rt!Z! z>g)dA;sZcLkIaBK48U`6iqY`rs9U3YK0pfr5{d`?BUHQj}5BI}{A zAPj%C^*8!cL_XkbsfK_wNt)xVr4U#|r1dlbFM6c40i-bRQbbgTw)pmRmN}(I5{k=_ ziFzN0+Jt+o4;6;Po;khTC;qO{w_k*>OO6*1FyL3*?LC*T?me&u2pqb3r6|iCLHGjS71dBvj51k~yG#b^DT^VzTklZYI-aWf=ps<~rwp z!a!VTJLm^&BQ*5BhNZFZQf?mCo%V0?qkEkoR1-c1k2PzjG>VLGp0xGNIlW0WZ7Cw? zCM37T<^fvQahI?z(BM|yb5_VobS*{WPknx$b+zZgX;c}U&l#kIFNce9>re}k%7!wk zA~TjA*L^6z4zFb9aBy08bJj8IKcu%WIbcfrq$-E9(57dpTAG5Sl9sCX#&yV*fabZx zd!5Q|yb^&Xl051R6kksH@vWJyYO!TL@YXel)S{ANJv+vFI73jVmQd-8+xfw9+wG_C zL87ne`*%vEHPNevXBwrgG_Uw`a;ijD$Gqqq zR#v*sR@)~v^)TzTqTi8QZ8i{)ZRHm2B*o}-00r?YXY`> zBG$su&3A^s?z`N2+K=m)!|_GpSykZ%GTxAh84E`6CKrC|CaI)j%&U46C$}EYUR26Q z5~){h6Hu*4`{wT|m!y+jcGQKrXL$uGy1{8izUpkebb1(>h1StMg{e>kERs~GBuL^e zq@VDJ+-r4{5Am5c2=a9bCbv&a=0AO$kg|_BsS8dJZvxz?aRpWG*YKDAo=Q&_*`YB^ z(zKH1zZnbX+=IkWoqui1IMFiid1YuN`sQEuYnH;N3<70v{IbtEir=g7iBmH%9^#^5SzI2}>SYr-gBM ztz=xMnQ!nRt$j19#JAs#0du$}x?j&=f)pkP)2gT4@lwLK8 z*xz>?H4NkRSK|f0Qud}Pp$S+LASONYgMJc zeI{)C!&vhj?vl&Ty+b>Km6C_i*nF>w_DQZ4|HA_8^+{SoOtLS~qN4G$W4Z?R+$T)5 z#I{5}f5d~qD@HzOVI@47+|ti3ibwt$HsFKupYj~~41Fj2ifSyOE1RUCn06GDqU-TIdUxJbYu{g31 zUrt~yyvMdsg7}2oy^tI`&$?9Zp;9rJ8bK&|-PcX%q=Y7Tf9b1h-y%vv-Pak-Db}Qq z&;(cD1e2(|iP*M|H{mz9@n-3E{wJd{ZCQPV;g4)FZ;{Lh000!3yBNw7p%Uk{7R1Voj>Zg0}50XH0&#y?G7WRFw@UO`E{8DtFPzJBP zA$dvm7?GwRVc6)8TbvQoq@9&TV?VgcJ~T*V$>qgDsi&s`Qt#9Ab~SRm?8?V_%fva) z{F#v6y|3B$=D92lwY8OI4*#iMkXNV492cl9m!IZOen;6T6TK+bIaw*og9##(%5$Ruoc_ z1BUgQxcg!IE8FeDsgSbH(Kx5)c^0(yq^|d?Lon$iZ2XaAyT#l7I;?L>)cT z2BAKJDD615K~b8cchSEPjR0KZha1ZDATL(uN@j12?Ps%N4=3`m`?$HgGk<%o%ezmg zzQIM+jOml19lW#3es=8oJ7K~P!Ci^Dx4ta1&)m81vuVL1MBE5(`&CYj;;mGQs$PGR zKq$?Fc;;YiVQXyq$m8{hU+g2{+Ih>l2x+PoLymuxkd^tc%e$UpUEWrL#x+>u?A?FF z3QMA13AD+5`PmrlHP_M@F55Y}WQBltI?19~jXR46+!QdjdQY`FjDvH}!u^bClOgTy ze0J7)=+=Aa)4u#N_s{*HWOcvJHH;dav5?qpe0xkQz;;i!o+%|N4?zmmPQME7O0X)f z4ViF6PfWPVE$#b0ES@>}-MySl=!#-n+anoB@tbeEHX^s#;HQ|E11_p@HB681AEHjm zqdnNA&kx(a4fkm5D7j{M6rEJ58I3h{>JK;VwRx1Erk?v09$&Fq*oHkVbP5e-r?)C4 z`vLxX*ch@IWvq!7_#PHSGHsBgTp6StSgHJh&`g`aQ!X8 zR1G)XIk5Q&sh@U5_=#||*$anqT7E5Oj(v-^yI|RcW1{DCkj(vXBHix$dZPX*yiR zLP9Ir3~l-LOr(ODOtOot)+DRpJHHW5H!8Tfj->-!bO$nS3Dd2o(ky`9Eb^5VHcm!B z(YEXzy$suTY>zcemyNpHW~=@mUgN4RJGz|p(3g;jWbK?u!;h5sT3di4; z`Xy>N08Wo-a%`cD3HTsG4xNqM_pFVN&_(dEVw(>d_`4YffkWwrxwtq}0xvr{0`PF& zS;;bp7`puuHaIda-;<9Y?oVvre?$T#XK4Wso4nY0)$(JmkSa$Qp)p6mA>ghP1i$DA zg9l8CL0Mvc;--+7@`26kDuSqG0XByw;KdU3+pCYCq$2~i3ObMyZZUI@#!NKw`%z`x z4YgXjel4;?`95e1J!E`pr5Q@N&q3ZrA!VraFzLvb@ICMGfjtl;{3@$ED97$&6zE6Z z8G2C@*MzTDCF?Ehf)iIE6@3I4U$4FJS?b zlfS=t&c));Xwq4HPgbMxovS+5c4Ak^$`ao*f4236jxoI6c$fVb|FXW(ux$IpvZI4@ zHzE_9i$`N_tk&D98zSfF0dZQZ!2Y(y=!@l2xoR`N$-LT0QOvjmNTqJ!qON}YD-)Ze zABvu@P$><;VDp&65y4;p>D5A1^IN#X#QvYPcvYK@Wj5RK`h;ICv@wq8;qgqr|Hec8 zRou%YoFZ?~jlK(p1ggIbMCeg^5k|R86%U6xR#5<6SR$|Z05HQFK6E&9_#*^KbtHsj zOL|`VGCIbHM2i7Bnp5t)P4({@;ohHWjZ{}t zQrlG6?!VFhN);&c=7%55TR?#GBOdvEKC_}iv>APmzZ192U$VLaggvGO zggV^!!=3HK`SUDw7xY>^$Pg0zU}D9^&r!{l$#6Z$IULa#_mNvFE2M}`V8t*HJx=v| z;H<=MZf=?i(kmbOXwUVF81ANZesFgp$Ys)7?&6Vc)lP{`u)G67C*fy)h(rC@b2u`d z++R~O%5jf(l8JP}?4lZuqt(NTb6t@a%Uez(g?jrt$*&Ae{cWn~yx-1xx)@g8Sh8>7 zyt#TtMMtUuKO=A8A|JJq+yfy{kBAf$mQ)LXR!Fi2c|r}TZ~+KUh=3H?pd(hmjj}wIMO_S~kr(Le%V@cbAyk`k{sMJ%B^z7_jJ8!{xWo29 z&0vY}uZ`4TKuelT%S}Kmds?$MmxQc_gEqTUc}dJB{R%@u z!_Z)T+m_F8ef}rhb@CpU$bRFz+)>B&;JtT=H`sPEm3nV+T5-i6UP(S>yXG45*8XdG zr4`uV-2OQ9PuGKptxH8g=p5BBW@ z2872Ubjb0EC~TKGGC;5AGAy{8*Vu;NpNL^E7XMg0%CTlm-(nXF*`@v_?*uc`5p#M; zaK-vGU*rYdQy%G9Kk;TitFNWE22U%O;)SSShd5x?Ud@}nCvVcUl{n=<$H&Z4f6UtL zGt^L6|409DjeSVlF50tJ@3qcO0GLKPfXvH?o`o@Q+&Q_SA29Ab-RomqDjc&Veklwz z2uZ#~@auauyfS4sL34A)%2g_t_=ossB_hT+uatP{Pl~k72C{}xxDR%jpN!yYlS&;0 znba6ye$txd@CqZqvDaa1<{9_`@vp9CVUqZ_PS$7#(4~^0+6bE`A z2ZEMvQr2Z(im{j|w{R~h#UTGgAWpe~4OnF2qm&oE?6U>lC#SQ44Hvl1qM!uP?Fjv& z1Ha$Z@wC@8UcYl6l$1(b+1+uDjk2bEq3>`3?7Vkxt!m(UQq%|M{)dNe5g=EqtEX#P zqk!|*jQ#qoTrJ2YIKFxp3|j&Xr&<%laU4r|^?On@oBaH{R^F)pU#+@n>-1C&S(-UR zxdB59;@5@tG)TMHr8kxc82j;=`)@$XFw)+a!7H)P+s08&%eW0_ql>(1rkM|)8fnfB zZ&nnRlRJ{9$L*bTOb-^RGRQ_Ro@W=g!oX(OZsK72!+1ux0rvLENQ2i$~|vNP*M zb*gvNnyd9fND#CT_Hb^ERLvi9ru3?8K6!|H6Q>wHw(OS1WHD(46wd4zl5B-9NrlOk zXEirC9;J$;uH(#>w|v^17XwB>eX95wEhBI|k&y7e&8O?lXOo`Q{7ox2>$b~fyY%Z9 z3rQ0JOX?eQ=iu>3=5f!85ul#k5Hf*?GSY=f*TE>4GvVTs=;3=}~HCjW^LV zj2;@YO08=@1vHd1pj&2b4Ju(BdB*$@A5smPn7yIx(hWB z*2`xLilO-TKpYZ+bx(=l*VL+k0K;jv@2!&i0ra{4Jr8xKx}N4pRfbnQ);%KvH}(Yf z%U@@YsN#>Pm{)ri1lDUd(;l3@6RiKvGC6HAsac6VUUJG%KZ-Wb{B@8K z_PgpPpt{ZagiDQ_Aal@8TCGxsoo^-s7e?EvtiCV2Km&z$P9;bv;l}s|lsrMzx+tgE zlQvRRO-$9j!EAU&moSG5)3ig%<|-}p_xDf9Ov`5PX{$%qrP3!vtZS(`LyrrRQz8>? z%nB{rXmK^DRV?-S(z&7qhBXemI5|o~}3#6*bt- z>JG2_KVvnmlmni850(}ANb;fFzL{41%h64bcMC2vqOcjS8bqtsjK)aUO!pf_H%Wt$@IwqH;&B$rv^K-*i{zA zqO`#_2*fY53$L&`{xA(maF=ehmIiF&p~2~7CUb{zo)BOt-&ccxNr*!?rf!HEhE%SPk^PlmluV(AYas@ApG&b=JSp^AROKTit*3MgA}I+k?zcLktsfrJS=e8 zeEq{>4!)5lEGzcGk~fri*Rom056%Cl44%0nSR9*4vu%Re|`RJhvSp(B}sGh8*st5W~8FFh>% z9iQ}eK;Iy;g;A1~cl1Nupr@3eGDlmNvc9CNSL4JpsE@mJDNU~m-nu=^ox(AX=nLF) z1OAMSV~NmM9S&H(?~#+4J`vzeFhJ6)eFtg}3Na-duQsV(9@3@o9Qyd!#y|XLqxThiu9Er#*=l1$wowl1yYi5*^N%XK zM)nWH@y2d^>?dS(Cqa*wH<~=1@|XD_#!;T6&=bw5v*0!EkUx_WQ*^FzP+}T70yb}o z6;m{Ce#`LUOS724FJD5T4}EH6fxTTmA5~9^{#j6L>PsZ~=cIo2@9RCy8`tSPmYL69 zg3b*MfGFBYzj}9wpHklGkLvt-m7Ui>)ir3O!yowTW4&wTo8VI0INE~30{K&I`z2VY z9UvpT@6k{GGc$yfg?*p6l1+P{Ho}L8 zMgj#90AdDSQ2gfJlln0}N>-<2boSPpe)VUVdIV=>Q5E0PzyL0>jtzhKVv=P(q;2g? z$sZG>HtoT8>Mmb-vv<8kteW73#HGxqMAEcegi$hFD&@Pi=08d`Rk|(6_lOnj@+Zj2 zO8HMoX41nD^l4&ypj)5iST5bZ-PA2z;D{Czp#xxxE5YbK_(9WO;x|M;O1?heE)?JE zN;+0tiA;{h(c}h3DJf#wLHr@t@+jJ4Q4$dXU3UL-TnA4G5O9mUT0~wB-PJ$U#v+o& z+Jp6>IEyh11A3z(4nl^D_+Hq4o*HVgh>I8qz0Sc*fNR?mOf#AOuE+H7galP>DyAcq z5TIa?HGKy{Mn_utN+GRyBjeef;!pHjopv#~7hrco;al}WH&`je4ZD)rXH zW_EFWh&YyDpmtG9-~E#nEFgK<%TAZQBJstp8M!VO>S?+V=s+XMI%9> zzPxRa1gBE*P7~_>i0N^;rbU#V2HbqzA-Sx- zB;;joAxq=M^I?GCiF5$#DfL=9&;9L*CRFwz_t<}W)v*tUy$ClJRKN$!d>*8 zy6glnFEzIx5~jE9NeCd*2jU{zX;!oN{#>BmuBW4S0Flb6WD?+Mge%~*$3h#8K@j30 zkk5ol@)QG|Iy8RF2`Ij7C?FXWCao6Oq0ib{s32VEr)-kmKVv=@0`Cano3n;_`{(@* z{wFwJxDuQGOwi_Ii;Qda)mQSs+|9D3;nsWJfwh};;gs=n*O?B@flrsQ1a&{bjn$ue zCPsNRDd$>ChrcJ3<_-z(OTHPeptS2FF(M3r2>BIK)R&n19nFV$knx@gBeT7DP-1FW zOb^Ih6mVEm(n%b0s38NKQ>JPJe;eX771@QBfI=c|Ch4%OgG7oa%MxR*hhG;#TnAR1 zrF71DPxTX=FL^>b^Fa7ty**q`Hb0Nr!?5BoIr{4yDE{r*geBpO9-}f3+qX*~ePx6C zy%bUZz3U{)o&)pFyAmWf%cV5u+;e_${^{Xesw+S#=kl(`df(AV@6sP5W)>R9?j0`u zJ3OkE+v!V9d;x8?VdOO4O;**}7B_jHPQT~(k&K)2IzRVM&I-S3FP6iG%E7qa;)_Zf z!$EK6KRy*L;u%+8d2fOmCfL0G*9!gLT@)1e3aiF}d>H)h40(z7BwgXlJODgL9EgK{ zDDG=}fh*pu)beB=w`GP0Z+LLKKpb^MbVvb^PzePT1*7tUh*lLSenNw~k#hRFt1$x6 z?F`F7xA5TK%sj9w>JYqXAL73n3w(6tc&44I@W{eqPdI2!uxpmQ+l=ID=SgTR8Caxo zLWV$1_r)h?R{$}r)2$1}KpWn=`|SPfU#cuCW1Qdvi3Y@4c}%E}Vwvqr z^12&ZMOpSaI9XgL6I%wW%xxKiCh_hN6Ukkx9Q!%Fyjhdwk2NoaMZ73npJQr9_i+kx zk<)=m7MUnttpbZ_Vqk^hT~d4;OZDE!C6~;TItE!Q`XMMF!qN7Lt@$6#al4=efuPrB z50dMt=#*b@O<__)d|^+a*tN{~?124aaZKXuRA=;XsftZsj+b?ZSA#x&L0}ycBw9P7 z=;PYa>|PJmuo+ztdOZ5ru^_WCv9$Sj&e3{B#K#t0@#DpQW}D5xsShm8HRE4c>PLRR zmJIVXEH?Sq7C-7NKB~$BA_Z0r*=U2|tGRSd;I_)yt>Eg}E3h{=RiM(JSAGRZ4i~%d9{&^Y`(5D~Bnyvs<8j9~G;R(Qp8c4(W z9iNBeb+>}9t0T56_Z6%V#4PcZPsF^};UgjzI3)E8AV6&tj}C1++(;3im$5Xtr*=P1 zr0{$fOD_5EL%ccvK6CCfW+((gf{#7=CFA#&Re&1{a{M9-zppyBIiH`UJB%S{3>c}i z2#=28r~Dx1<fO}f41(dALf%Nl+43&%2pAS+5T2l8um3(}`X6R|_ zSllS^a&~0EvOW&#Gt#*9UoDy4S>(jiKB-pXprFB_otITn%BFlc-)txC-3;OcXdn<3 z3B{rB0f0YY>G_mIuns9xTOG@9J2I4lqyaQ1Uxs!1XPQZhJ2_x)|E|!ulInt=LR*qI z8aD-C-fAB>j?(B-=hJn@IFk-omtKT?kITh#Z0-2(fF4hPs$qS3cAGV^7W@LyVbF+g zMuRFB~&Lho#qQ&;Pqcw=)>0 zsG&IYH{GtRuOqWkeg0Cq!k&H#$RVziqY*d882y7s0d0)#q+F zA11%^As7MD_!IP$)O>#Y^O`4O1#oJeW!`3x6B2&zPs5Fv^3PwrPy~~7R5P4k^@r9g zAua|szr8Y>X1`%EEOt__GkQj*_)lI_y5>Zc9=8$5r<<2cbw)%AiYWeP+NDBg$)xgY zE{bsezPfM6;!KG@iFcmxoJ~UBkcdvZ4MMM8TKkR2Szc6?3~KdETLgQ?187#dXa)6L zJU*lo{bqHf@PQ%;IR6Iby;eZ{x|JcvH;Y~(7s4~G@Gb4U>3A^cxhuxlS@kEINs8Ib zuaB|bSBh&JhW?#}pMe-MQk_1zJ+-?*nm;VMF@ADs<*4s&`mgP>AMQu^)pgEm)XNJ0 z`1&~?<=o@6VY}OCBScLinb~OYd@KJ_s>Z794K`>FQTaSZ*40t_VJWQ4TG$0G%FYIk z4=(Y>rzVk;H$bmm>d?lTXDw~D!7*+R+kN|QQfa*!Ue~YR`CM1jt{kRGed}BtG27EE zs(g1rD)ky=WbY{w_8h_yLP21A;Q3~mfwJtKtXCX0kWzoT6^JGztG5anOpR?+CDT%I|#LCNGr|ij@bWi56tvUFQVm2R&p_ ztRvmGs}gGW_Wq4c&C@w+9#2zfGk;OdHD`M9H^zNL_=qKrrPQm{;mO{YfFw62nn#=Jc#rR?1Pdl?2iYPM2B8vTt%hNh{3g)!X{gJt-S#hrUZY|fRb!51CsQ6)fjJ`v^BDhgsKNpD<_ zO>#w6NL6-AOGDaF%m7tic7iL@q2VzzIX?XtPFQh7DX=?2SK6xXYU9fHuR?#goZtA9 zP^BQ#ezdUzZyBB?Y#Hx~*?iw#ZcR5}^F89$$Ne3%s4s2i^wDlD7PYo;NW44{;8)|@ zC$UIgxkIRWOo36oRfPUxfoZDGfx^+9iuPDzivnzC8|~={RgxQy6JcT>we|NCBz{FF z`v@1>pb{i}@PE4ihOGew(c;;z5vw$)&m=AOF$)8^rZp32ghN^HWV6;!WeEw)T^&Mp z(E!i4wG^sd7EZEK?-Zt|U>DjWEITx>{xoJCO_c1SyLQCk?)10O4bJ-7py@4szJQYSN+$bod9!q2rO|1#r|5qCa(cRWj~x9917Q0(SF zGwe1duo;FXL!PfHjsnMZNbh2uN`BIhen(Gr^X=u8!lO*k zIkW<0a;yeAVEY1OL*4^nkgfoEj~8-}0|k8V!5~AmwYb2#BPsI6FS+qYZyVn`H97M` z;`ypfkbz%Zmb$;UHP)s`&A2%>TsA9gN7{iEUkv}AKb@>-dNO=6?BVTi`yJt?1p6q? zSp0_OP~AVygf-+@R+cBp_U*IWtVS@O*`Ij)xOX@6d1>>_?532r!>5;llPe{L-|JTx zh~AtpH3W5E<@FM=cS|iPKI!;wuDy+~+l|Io-jW8T<{Z9gNJ2b3%_72L0Q#GFnr!h9 z8csU6$wI7)i&Sb;Rw_ReBnA_ThhA?RQK&V`Kk8`x4dKXYeU~eAyswpasfA&!`Mn=@ z!2gsa+3Eu|CEw3@TgnQou=GIWmPrC!HD2jVyn$xG6B0p zZ;04Mz2`)^3(Hs00Dk9RMCcj5 zddfOC8s3(^)cFI`HLdxJY4(p6p$uEzq{d~7jTLOMo<0Z89G{jSK6L*5t2!H1;ZgF( zJzAWKWiiX%N97&nPzfU=c0L_6>I#uUG;pJk47WK|%XvYG7L&pj>b*IKkf5sb+~RYr zOWR&^@5R@))30qU!37&t)a^<*5-bIl23yvNSVm3;g8m_qmk=Amj`juI43wZFx)mCv z%Mh3pbfLWu3^Hu1LFCTa)xcYa5mspo8i*Y#Aav<2EHLkh{p)#bxv6yc$9O#&ms`!w z__DhNk5}w^8H9XkN60`LB7(OXklqLJF;1l>6E`^b=!@@Ix}@A zAB1+w=Jo1K$==uW>+djRPt%2nyeH>l3mf1G#&B`G0Al^sfpKOgF=SmS53=s6U-k$q z2`Q}s2JoeO*y}_A%M@J}Zr8>zypWW}bi8rY+;-hCO~ri_0?w5~+txwNEPcflc*#gZi&=Y(xJ@<9icf zQeKAxte(Ro2(!lrCZrY%xeK|~=zigYMj@E6LY>2ARo~{Vv~9Tc^c{=nrNhA6J<00E#Row;`0HT>^%klNJkgr%I-t*20>u^;FeOV*%+WaQ zwp2(C%J9jeE^K7GnjVo$^bXtrp z+{)|in%HQ4bN9UH5A+Hs;2Dyq16(|zY$D&l0TOOh%~pEtWK1dNM%WrkV`!3i=IO6C zne(5Soc6+~_t1mKb8-hah&#WF+6rvFDnkv}v0YIuIBr^kpl z;<#yz0&%9$3sv(Bz<K$UU<3|;T@_vqDJf{DE4qf~np@Qh^MLM(NM)e}ty!=8 zveM$0X)1GORYxy26m}F~5!ry7X!tk>WC9xxdJ2S>_X!Q&{Bg9e`}&#Bl|qBI{!gfS zVps42;tGUs1Px?cMqW1WPFkA&?#9c&i7{I`@616yQGS}Kk9TLG!1 zz+F|DO8Z}o^;PET07vxdbo!WsW2N@fg5q1IEYbqiCx=!{j+#x^t-ZZA3Pt-?uD}r^ zo=llf^-VcTB3m0gyc_LdENtGDsNh1D12(yU{l6=MaHl;+yU*I8k_NyH{RRgd-?qTd zvMNwYikx%(W9dE1n&GgIJFlX$>SMEsSKp+9So;C+@B;juIs-ON6YU>%Qv5U$b{t3; z0>q+-!n#=isAj@k&eM)q<#2S40%D4TA1`R)giv=>B_7jEEGv5_sGHXL_x-^5*^;*HBzQ!)~dHWl!PT&%$lQL>3LI1Y)Z|cpR|2!C8N4fHm7f~!^Gqx8N zETMRh+EPgI(HBbB{W|^)L)hlzn`gf;-=}=ry+*$0(Eq%8+1aNHjW`TAXU!X$j@M}W zUTu_6c&Mhb{x8QzzGSI2NC1e#28Ut}X7SK2AWt5H2yJD6*eiB^_2q&NP~$m6VWM-# z5p5@`b^II(;ms52)csYwBudcH^U}eBte*fQWMDu0b*aFq@l_UORuUr{<2&7z#5EE(=O1WW>m)rG`SU2Wnb zs^Cj3K{?m>zmW!pXL3DYlsE(d;K!HgaqFPrc$4a_1-`00h?29t4EMedLI}D#!P|Bz zbkhN+?dO8+Ewke~IBGtE%TWu0)o2`92XTlJ7y`2vMUbw7_38f(A%RJ_+e?m&p6TfJ zC-j42Ed-nhq8!UGfdBD@OldM)B8cWc=!8Z0e&q`TQeLpYPa!Ei+3HUZG;+21xphO< z3sWx8{W9RoO(qzLPV&}f240%1NlMJ%oEyY|{rc$ry7Wq3&y4T5|0y3;|eec-lt|w(pQpGi(?j&v{s;;ik~Q+BVsK~D{9P@U zca!k|EEYfLU7jcr-CEYq1Dp&7EYZxc}_+^P3~A$4~ZOes>m)8thHh`iPXXjy1!Ibo{@hb zSzfYGS8&y6Lp$dWxIP=iHqPBElNO9O@RFJ|$X=ZL)U&C2H!Stphx%U4drXgkd-c(b zb{XpP>3&VMH&u6$_6QDgZ!%767=8K3XNJ8uFSFWI+4kIjO)vT4C)VUSTrNUe%RI$G zpskz4ZMsVEUy1T;Lq$yQlJF9QiFQ8k!*b|ZX~B82eD6|hMRkkTg2LcP@8m<8aE z?+Wh%Wqa*BPGt29AkT(%Le3(5DVJexjq6PY4$soG52%qxwR*%>66#KYPWJVNG%4=G z%+N*6Umwe4OKm+J(_Ey_fR&3iE9woWcqnSciz?#16Y|mS&$eS1#bfL}{F5aGxhqA~9hKSZ8v3+Wy-vc-PpIqseLCgLCMm#1U{*KVd&Tcpyn68x8yIiMKKR8^F<4ZT0kyIoi6)syU%=Az=;w z8tm@V#!cbX^eUK)XQH~kf%pEtvL{^r$Ie;5Lcv&G5`I1HacuO|jVp5WNwAO;ztBcf z%n=(CTHKK+u60=L9n6AE_0J9)?;=LVLHwpX0wkvk$>pjV;4zoSFp+~Wc7&WhODt%K zkS>PnZl)A6JQ}CIes_!4auD#S9bX&(@cHpXwYFdl72F#cx>LbR3rl>=P76~XoJ(a% zn1?qk;`G`P_}Bd4LVtISIz$tzu9tH&gnUd7@voUjvh3osa>r&7ckjgr z&Ewarhv1*!_y^}#I5=!8imXznk~Z)ccKSW7NgA2I0%vX&L!4^{7uV!_x5^Dd4yDY6 z`*NQ&3)$Xrq7stxXj!~j`-V1_k+3<#UL8w54Irf2(oT>}$iT}wWTOz5m^B}om9fQr zoAh9RVuIW3T*kGz;?miC$FXr)tV#gn%M#J(SoQa~BxT}Tr^xR*(>^FA)e}1#)lYM( zqdWOMHa=AD^PaZB0oD1zf7B>HJ@EV4PpILX;#$tlZMrh$mlljw{a_@=*!I?RIYN4) z({M9(3-LO*ax3QAIe6D~KjU?F%=&ld645q$($;`xDS?n|@c>Zi@RAI0B;>z_*AbNwY*@YBMD^g{2rNZGZndwcZm z?Q}fdK#;?IgBdwdhrj73r%H|#kT>$_@Xkj&p>X%17jA7;o0Z|RZ&IanVx#MqJ_YY+ zkFL9U$Qc=?;j|NZm?xZ+L+ka+qchg9PR$wbvwZyY8xGRr@Y%c{+(98&~l5t z^*{Cmb;@iXn5=X96Hd>{<42ISgGUS8e~fO}v84FWgO<;3#U7qWVv9UsHMp1kDe2@t6Sb2kX)ZJu#@t6>vpZC7T^EumesFL;KhCuaG&+B z4J|%1e+m_BH#`ly-k!ZT=MGE>wmeeI3HiR9Q^ow@!r(;?%g;HzFP`(?6lG+!qf{Ib z@8i|`3~qYLhp6k!g#=jMmrhVEnA^IW2~j$uirhuS=X-V^Ua*<|yf>f)K03?IvSAmD zV+zv3uK99O)f02jHZgaUb`lLS_+{$QrrNRu%R+ugeC6TmR#0e@e~B_Maa<^XkO{Ma)${V4J=5HH{V;i=6QkV*-3fEJ1qh zu{+>D@L#htDuGLWS(y;Z#QMs2f=Lu2Uzl%6wX@i7x z@py8bh^mqxS%6>P@I~+>4cwuJ;CqRa*=;XrHbZ{oSq)7Mv8r1?k;(~vJkfr3Wy(Ye z#x&>-mIXOQBpGgNor$|jhCMIqi8Sp08TxQPB(6E1U3!%EZme?vLz_JWxlz6Y;mR>E zKnvVeCVwmF+18YYzkt(Yav%h)`7-pAY4cKvHapKMetbIRNKcm$Y21KZ7)i6YrJc~I z!oUma>l*+SWs@$L{$#1atN*?yi>+8sCHnYz(LE9N$84lO*ncnpUV&qhVFN(-w!&CN zAnWOn-ak2ktJc|>^_$#|jexbDcJQ`^MwPjGo2_40BKYA*VlYK^;X9#h`j(qv6awSW z1b6$J1o|v_vxEw$4_#<0m~!ew8Tl_Dt~>jFg$+vQ=BRRk|C=NzEp+nsj;`&C{NnK~ zRxz3>y}|O%S@UutqNAX;{QC2sT9!eN{7A>53mb)p^Zd*4GDXj_SiZXd{BE*8ZnN&{ z)iUrsptvC|Jq9c_Egl1YT20<^-!1~o^vS-X11n@GEGXlx_a|GXJ+l^SSZ#aCTUG73 zPFNq2n|3f^`@uJNJg1GwTcMZvDOUq|&##3|N12m7OP^|juk@Wy#VrmcCymF)sVc1~ zOO1S6OmXA}I;MZ#N|wJIV6j?o=1&=U`-td3U7L60jf`oF2j|zPB|rkDwe4&o5mM{( z5qZ0VMj0{ti;gEi0<~+(F=EmZsvB$k**e@1h|@mLIc!%RRS$vR+r*>h(sv335GfJJ zgLLCb;tnGcC}6GF;;;LQ$FIXBnb*>;g!2q>US z{+^X6?{Ax_^<=~4gK3+U4Km?}%3gSPhOOm5_in&2d{vB%`A~nefn3Lw5*tyM{Jzb2 zh4`%GMKILkqj$Sde6m%Z0*&^K@~0m~N?TTT321yPIMvuD!3P#=f2H{+v<-Y?HJd1F z6^-tJ;>GyGfyCZNui5{S?0{E=f4z~ta?8)Zv11vAb(k{{&D+>vcQZ9(R`*lCeW=#D zN^d7FRb*K7W*DaNoI|94VcUPRBX&`3FQ+z^t&``OfC5C$wgatK>>;oOyP_r+>i^YH&Aw-&{V@g;s+~L=~8fC zZz|HC=6x+$E}@iC$v($yXLtDho7HM{W`g|DG2L&JF6lV}H-=yC84 z#0XLl#j%of*-kX(%L#?>M??HC-uxQ?N#EX~z!C^%NIpzGgfNZ=r-}!-Ev9i1>Ld_V z92=Ax9H7IsV-3k9#~;^+ivAa53X!EdHEh!{n3{!S?gi{2ld$4*$c#82Tt*UPND zB>>kM{WQcWEB!?gzWlF*fwE5iTM^sM2RjS>7HvmshZ4FM|5}WlUO++@W(RQG;CNPx zYtvx-G_Zt5sUG3bWXqunLB@T=O1Uux)%IMoj|C}uDF#xv-%LsbOERu7!g@1S`+%8u z^^h}!4iPdTR3E5N&R*1AWQd z=nrv*!3V4F&R-FE?`;72N~K*du%nHK8`;>}aYb|Sf?oBa{VWv^wjdvcce~M@ewdFa zQj*yy?EJ&o)TE=NS5Tu>zcGQi-Ly@asD@eM1ZJI^PL=cB=Q~%3mbGiv2U<+}EaP`U zf0vMCDa&uo4Y=Ynf<809Qd>#3%{3E{Z1Nhvbjq;(?-{ciX<^mF??S~0p8gT+bNA9c z)>+3YAF0}cFOe10;nKn~%r4eu;G-`U@1AeJUrlF9$T3>ppE-I_n!H`@WVqP*OV6cQ z|K5(&a>ZoE4%gQLqXN`1V^07Zx2ayyhEqhP&X1hL0kg#9< z5n2GRNGU~2g*`umfnVln-6NjD>52G#VWeUV!$TbGZBN++&!tF;qyWsuB1)sh)>NrE zXd^}v^`H52K3=pQoVv;3p-PgRiVC-wxfa8>q-3y{YzxLs72^}X>UMRr`!hvEr8_3O z+|KbP6zv6SQlt#UDh~ztniL=l#IC*K0KYjK@rY9% z?yn+SvN4;)2S7UqxqIi_3>^%M+zJv;hEz-t9adM&y#2w=d0Q@7!&%3JQd+QyzLL3{E&WH)75WqBG zI5jZLbn(LQ6c2G73$($!qy;V&qKGG;@C>xn%Fd@#R5|~qdxU;dD0gInY+TXq%B$4s z?-!CGTgS8hSu*#$uS8uUVz|BL-(M8%j=cFQ^ZM(Y=BfAXf8P`)i8xlPRzt0V{QQf% z{P$*Yc)9U13^H>}3mV+{D~-G(4!PB{d`!M(8?Kx8a8Zrl`zb+$9ra~God?Ziajw0L zhie4`fWwRPk+34)QlIZ7lHD~koddocM}7!pK+hdnKlKuMD|=RVvF30B`UAy>tC!$r1oy|H(i_n;q2Zy=>+-({G znCG?`2zOtS=}`LJg0cXozMnDH&&URsk`?SFvke~aZp5)6I~JmgYcmJkv)h`=)x&$NkY}p6L6#?%+Ko=C6=-O%XXQ8`ZmUJ-y{}Rp%Nt)KDYjnR0%B zJ9l3*#&3XHE#c4Zq#ya0OXtckcW)ES9hz?K={c=6L2X87#35^i2)A|D1T<6lX8Y+S=&VZWDfsrJ7>%J0!C~I0UVv|D zpGQJEA$~-8K{th(x9aD`J?&bg#zJjzP;?qGyj@+M5*g98>2?+z78rTLMsds=p>6|u zUWrUENb-P}41g3y8y`{oTkP*}iA$4p{|#jyk+`ZOfE`?mj=&k(xLpy?rlc@_Z}i18 zQq@k&Q|^(y|1fSJ`gjy|{v03xB+zyRv>2e#L^`$}Kq&DZhqHJ8`qHd~fmlu18!3K|*s*rPguWE9{h@we zvw|r)>=GV@1rNi~j$1~6^wo>2S9dwdNB1aZ$nClQBZ5Cm)Lsp`Xzk@h(c0ex*mVqf zk<=%8{54aQK0JBlOdsPA_BL3BO8#-cQvle+(MbT77if#Jdl;zF-3C4Qk$=448iPKf z+rC0DyH;~ld%sy?9=wW@B1%2Cyyd&zZV>EC;aa3C!^BNhNezt}4<69Zid$)MLn=%c zT!q|T%DK7?$hOY^noX0)!tPjE?X)=;=T7`#kqAa!qiMXIj?PnE=960z^To}6=#Zz2 zS>Bhr33|~H1POp9vsmeo{-!#Vf0xkDLC2E_=b*RN%>wcK=d>S9NE#*M-T@FLBd4NI zkyn&g9wXkIf}|Y2*w^oM*$*WPk43u@Q@xs6<6toD0twB%v#;;8RBAg5yq{3@^N)qh z+aKHt#wRUgC*1O47czfB$p!Zi4z*62->e4*g{SMCXV&=Z-&aaBI9JrmF1S)yq%29b zR%tHd2?~ks0r<^J$W>s*W!2pnQ5ki1lIi0`_`5q^xTqND<)o-_7B9i|fY?-&R%&od zJ`{G;KOKqaL8k8>S`}98LHlM(j@Zo7ypA|ZI0h>>y)#OJE3LL50y6_X`$h-5CNl!8 zXam(=)xQQi*7tbTv1bL2;3xmJR+Hp#lPpvvUbKq(0*9nN}N$~UsA?@`s zJo0+F(l>scI1uvfb|YBx{*5Y{em7d5PZx%}T3OVQ&1}0XUk73|7aq1hJx16)$$%gH zshVtS3)3frUu7Ruv_IVbDqL0DcD)k}Fwv_lmlLp2BGyR_CSbRX8)%t)! zIV>EI-5RKaXJ@ysa}v&bW|y@WNZbvXe4b|%IvIO*5oV_KioZ=Bb5QO&zVpy(;n?Ir zUqF3d^58tUT-*-BHYVG`b+Ui_r`tdsJ;M$WLgr^0cqSD)J^m5maVEOj5Yb1#s^52c z<{P9BW9V$1Rh!=-1iRQFiXQ{(i?wvgV5lzQd~^?Pi?Rfh8kK!G>FU7|?uL7Gc{df$ zID7APaSx)U>L;l@%mihQIKKPjPv`?n6X*sWZ9StE2`t3LnX=NDim=-wJ45WQSe)!Q1B%APW*t>;i?ql^3wbX zo9myX#gw+v;TA`r(8s-){b5IwUp7p2EJH$X4c*6MOUoD2g(CZ(@JQaK+Wfgf(Cdo7 zZESFObFX-$-fM*Mj`8@O)G?x8IL3KS(qKrhO&}_>!1ef4UxnCJu6x-O*t&dHAtu$! zI-GB9nILt`%9$+y-Eeb(<=C@t3s-is?T zlPb1*F6lKKflAcchp~Z9S@L zB$J}7aQ5LL$4sdPHwz<_I+xjC^d2lA&UrSYXjJlYz*lxxo>Ox%FKbf|Ij;D}PYZN2 z5I&q?YR`1lxJ0F~OefgpRQoKx5m^AJsfucE-UB+8?Ccr$GaoaZUt~s{(_6pv#S?!w{ZZ-6I!0}m_1KEBP z>Fbay!zZ1p#0JlF3EuyV+n{~kp@WGZ>nfZ)o~As4+$tj>x8dg4Bb@-$ENBnU%Q(QT zm2N2N;Q!iAUR}NAQL8iGre-WRB%eD;5kp!`N!^ftIbq}ES$|Z{I!=B5;NKNu z>_eN*l$E0Rk;6c{c7-qkNO zY&*b68qQ`Jg7c9h6;a)c0!-QwVRfN3-b!|c)6;=hO*#l6@dohbx7M+L@9KDQWTKB#^ZH9N$YBL?8S}`&KT2vcKxVB?SP45y7WJ zdJuk`^Ctr!gGeZZ^yKq>n57a&vubn?NbD>M-UHhNwc7$lHdBMemtV?xaE7s78ir8| z7B|s<6k=uqGW;~uWhoQe)t4HNe)8MDpV~1X;Kh2R2Xx3-2>D2(xK(&JYaPt3p0oz- zJ@v0qQnuX^-+1_@>inDnZREr`su<`ny3?Bg=nM9-1vGD!DlIQ~Td zT~maB_OUxKFJ!mi5&9B8c|zXLBbspZpF)tm_ce-tV-w~GB#ks%vu!LE@Adr>N%Y+G z<4{M_x~>dO^~sN&{63M9#PUlU_`R&DP@qO|r~8J*n?A095+u(dN={#`1eB%*4M*cW z0SFx#i~aVSz_C}=Q5Z3IA3-UlT3`jq^;3IV?>!QZ;n|=Y@a;RX;Xu8Rf&bR)-usR_ zJYbAb*AbjF7dN968&`z|!y5(tkYx^CO>}b(fvX(4^Tm^!)me`#%f7CwS;(wG^6*oE zCH-pcWk2}lJ795XE&Dcp8}aT6?QiyLJ(!sM-{@)fctZ-h!4I zwfBs+_TF29mey9A+O_u%B6;#Vj_3a-M_%1W#^=87>pHJ<$d7etm1L$K%S=u^zRAsl z2`c9}A47d(EdK&v+Ixk&M!VEeVb*6TDGTVfOYcfMUHpYr)&j@7Uv;Ntl6^0_`s;Mh zX@0u&3*85{8Tu?;nQT4jveAGqn3>DdNo+Cv8RHuoZ>Turn2Gn-;C@Uy&}{mLFQXZe zgEJ-+|IT7dm*5n@_p9}93Ls=tfeL#!j=E6b2GW)sXZ{uIO@#pVBSeBwyNDiTC{A^` z90WWnJFMQJ^~PKELw)V*v%evM4QR7?;H^60A}F!-*US&&H`KDP9;mAuRd-Y@XkTY8 z<#lynu{qtQ2r+XBF|PH%Wq_h0wQYTUdEnMjJ&Nxk9#HA?3lQ(LrT1|Mmaqp)kAeWe z*c>c6_7)4EKw)3rtUL_IuFay(5wbu4=KPB&1aR;B3h+x|`1&?aw8vsAI|G6d>nUKH z%%&Dzfp&8o?6ZGX2F$8}c#BuenfeF9#uo-fKd)%(*QWbqHSCi*SkI z@|C}zJ#PP=n*4+9y*jR$B=@?C+_Wu82DDE6(FSy)>;3Uo)t9*Fc${A+G=z&9bz4mB zgVjkh6rTrJUJS>V+EU6v9`{B`8HHS|;2uuE+M7*HPCzF!<#yAC*j&aY>7v$G!KU4Y z9qlKpW3gJm|MovtbAli3_~U=k2IwT5=Ndn_GIcNcH#UQmLz|rLC^&Iio63|OvIy=V z4I|G>>n~k#*9G5o?;o$O2qy^EL`rK+2@hJOQl?2i`*pURIK+ekGaZZ!bk^H>la@xA zVu9VHZr1SfH!9BloA=I@ zX`JmFX+Bbsqtn9rv67l4SrwL<0KJ=Slixy7YwtE{3Apkz9+k#3ao;mlbeh^3(R6Ta zziO)9^%s|)89bky@{Wia&m5_5T6SJDkaqAjF|)m^L@Sl;(>Gj_KB9Jd+`_YvH+xeN z!+)4L@<3WJarrp?r(D0-5CDn8DV$)%!UvB#XNW zwT7*Rxx~A~d&Og`AJ33c{0x9MwZNpc)s>vreGHls`5nIZ$8Y}0@=^lvFPE?_CpLJi zh5?$j#~m1Pl;p7oH=uR0h%D8!`NLI$4sX$NQuzEwQv8{h;0(Grlv=^I`E_+IG*msklJ3SI%6TV0*iI92dgkGf_s#K=3zO`N?eA`t)xz31x2tHt?y1rfkt1)NY2Hi-!3 zgk~+kzV1ebcBZ3a(VT$#(9|()0QxfTOz60ku-gdz1WNT!b|;n-TETIW08_xjlAUc} zFK@G7wcA-nL8xurRVAr(?5d{~+g$A<;A58fpPgi0!IEwRELR@Lvrwg8t8Wd5^Y9;_ zm{j#|lcH1Cilt^mH4s%pDoh z$?UfOwK5IlHQm|Izi*uTLvSNXwHRlLJEGg9ZH4bPLSYE_)c^3-2txJ zb;c1CaXcC%MbjCf$>_C+$AfaU(KmsZItyblhaXHmSh+c#I*awrKToCyDVPKgMxCa) z7iu6d6frayZ`EXzA8-*JVz+3d^O9yJOH#ARTK`+gtM@yF`K@xs1)H#y#M!1X8qccq zY!>U5XYFs*Fw5BcG_TiqRydjRc2~*68e_~oV}4&lK+ahGZJ@AYlo{%*efAoEPp(7m zr<<4&+2N7W;dSIqU5sVbn%G#M&F$oj%S~RJw2nKpOP?mJg0v=-e;_L_#LU-T>u=4U z>Qv^*QJcLzBUDb-3@XSer}>Kl(U)>b1w7l$F5ZVHg$${K7!&A{)Ga@7nN>O5>YEy= zpT2eN=@fO+Q{(d<;&m|Sm}}A(|56_h_)p@4d!T9_p)bB$J9w`?De2NV+;+L~6V?b% zVqgK^dm}L6V$3%1xlLs|{MRLzNb?^5qrkdqv_xeaNy;E&f8Il$FfTmON56nu>2Ooh z+A6Z_G(!3Sw}2~{Q_T?Zj{xI0H*$NuP(zfDtm_K={vq}I!6l!kJYH+#jqKE&jrINp z@_X4aw}!NWHMIX~BP2;o2S=3tyVWsoB8yppuRRQFtEmq*`sm72Au~Dmex^NbfwZ-g z{b0+hNvmj1+4N2R_{55GXr)%_{4u~S#20D8ILovD+;0*R@DFed(N}m&1uZaLbu-=; zD{47f6L~^^GQkF;o=&Lk=p^07)VQPYGs!<~v!AUAp#p zJ8L3Cv{^&Pm@wkLm&ZM~BY{~f@D-iqlz+o>M=-chwPkl?ll!_ibW0{JxQnFHHss++ zuzB^Y<0Qc8_dcKB%;y`R)*$Vvd|#zbCXZ2^K>A~6X&(OJEAOw_pG`XkxjHs~oqL2yueZk>0N+$ovIr4L=GIY|8x|r@s9{S+ET; zRkGk{q_de0Q$VY-I4+W+h5RB21#x~7EVz1q-f3z00J5lzkRz1g=J1OwBpzENnsL~q zL+o9OzfXSw_O=}H?0PL2K^zw}owXncy$tZHvz39u3xWn#qG2R9yBX>;9i0o9$f@5Y z+KbOUuN{~$GRuEzCWmcIZZ5dZn6x)+kbctlyB{d7M?Ts5!pMHLn1*hYWwY}oAMmd zZ>!15_W4V~IofXZM8fi8WZD_n>=jUzt>FLxJ+%G}Xg&%=>2bM=K0id_2|V1-W~ztU5m*EWPe$t}v6 zeT2W~C$xX@P<*h}K0_xNv-8(|8vOEcf z_Gl#Y9{ew`Bf?LCNuSrZoyLm9t=Q`D+Une50eTl^xNMsx6A6FU#T{{pGa+#2fk4p5V@iIf)y!Q86mf7T=ouV?ofj9my-9aaHJ5LQk!5Jvbc?0K<Q19xuyw)NqaQsRnu*7efH^3##pN5^NC2-Gv*cF$9eKkMH{B}@weCTe-D^ebFjE7 z?8L*5nJXa|Xv;3!@U8==!nJ)4HBKtVI4(=2jqJhancHZ$h|A$ckem!{x_^>6vsD|o zDCql)Cd}^yd8a|QZB_2_Mt}K?C==8w`Vgf3YQyJAYN^y$mw)hI;gU%eV6jf)>e@jc zw#SI85t?{k$1QUp(TfHuSFIP>uH$qe|_TNSWxwm5!D@nvUAaRoYW`%TuT4d0Fq~2_&wa zS79#I13fF!HyCQc87ZsJd&~HI*l&vX8#^r-SLWE2=*p3^X8}U&?AdNEf+JX3{Hy-v zK(>(g(7s4VREB1-)+X5Rxu+}h0*(xN#vSPMU4eUFzJK+=hvivz!tq2QM&q(uK5ucb zQSh?$!XHZW{>gww9#d?i?+1@lT=TWmSEh2s2lun03Nj&0V`ZG+6vB{0gT@ubZ`M7_ zUFTj&OdqZ6j&``lF5TLz`?weH#%Fc3d>faFOz@E2aC^=oC^m(DJKAXw$I==x>XE8j zQndU%av0oPX6t550>(N!+79*`Y5{0Df$K(5Oy~yQXsk7Bh(RK3Egc>{qV54FOLO>C zz)VCQ)QB@=A3-YKJ6$Njg~EfgB+&>mV+l0?=OVop9<3J0ukXhbxzS~pqyNJKNDR^_ zQ4O9M8pp?}j2B9;g}qD85ERteXH4617+D^V6Kyz$K3JL)K&cqwL21>Lq%zp~7IBaU zTNNk42vF4y*zxde!v$l~v%!qC52FZHkp-i#sx9$Dz@}l$awklSQe#t_jX46)leSOP zZ33#lbuWY&quj#61tcs-XK-7u^tnxS9wYU_qg>PLf1 zU%}v=8H{LI5t?Y2>`#+RGJ8Uze;gE0>NO z_AH>BS{~p3z98&JAm>bICmHQxOk3G27)^!a^efO@7Ar>z=vNZRSp7rGgfF8}Id&;C z0)sc$mcs9xq6nB!yyDe~jn;|>j$vQJ!+hXs+Kx<$;#3I>o+xMVxx!*AHxx|Z$ zrPbj}p}TCNzL(LTZizVJru>(1#p z0ycpX_QBf9XVn6~W#%+DuDR%*xoma;t~^csyEq09|}c>uMGq5B8#kA%ME zB3)!pk%4@;>a?X9d3-C@a+>dn*s;f}mowK?>CF>45u~hlP;Z9lI z+4^)Xt5kpXWi~7zH|czuxIL-KI->6BIu>;K&i@%z986qz!f&g+x=Avc=jvoc;~kCm z(r3$M)egsKAC6Xv8!KhEt09&@_;fH&&@I&~Y&@KlqnZ`FBBp;Sa4lZ0TkvzHJwhY{ z5%!>-34R!-Q{eZ?toGpzaru?oe$BLDz9TVQ$~C%Yc&+8_R>ZhhajWi#pS?TdmoIOf z;(H_jRHT_#wZ-o$TI_IskGTxu%#*n#!|#J~xBnQ@XxiSDzn=>7VAn0-Q-~pB7AuecO8<%)^GHz zNOjV3MrXPZVx;d&CdMyeWS+JE{RLsm!mShtGR1KCNf6^f4w<9eXLuf!RW{#dXJ*td zS)S>0%lGxUJRqABw?NC_1N#eY1Y>QRGhk7}aT^$JXprYHoz?8YoH2W}@PdU{e^%sd zb#V%6G@FKcz`QWUkf-`q1td|Yx%1T6o^hS`!D3i@wPc*OFHiDr3s}`OL7EuITa~S z2}q+9HjYOkHtW8u7F?$k0E9ccyG92sHcQ9_W{1Y$ZXkqAL|X?|-)zv)wBX zNHNhXG-`vO*{oH|#}8h@wV^^_rhcv-1TRhwBF$s+4orDP@cIS$lys74LYiDOL#;aO2=1A?sN zZXmG5%Px8Mr8#+^J2wu6VvDBL29Q@uLs;>Y!S>Nkb}=>PAC@;{h^w65soVIUzlvKf z_#Hml>mvrY6Df%^G`0Bx^?UiaZXqs;HgtX2JR$;ybqolMsM7GKt~oJUpb1+evr z9&bxaD{j znEZdZjCr`QUd8fW{8`cWRG6NP)Yv(rUCAsrlZK@3$ z2ObQVohnOCM)HqZ>zzB--O6t?T{XQ{| zgm2By4f?ir0_nm-xdC3P!ca<9yb$m`&OKm<>7cdjpKOqGe@=pQE&_-w$ z!iQvdQt(%5rTYDN^>5}%Nyi?XdtR?m(Ohr3Cf!5T%5SwF=!i+%O=dXxXh~BUO-(_h z#I>;K+v3l%_p0{udvM(NUMGJpe>R6h0rc!lyz9!8B?srkLMKWLCC{i9b&mt^D?J$^ zZz5`IfUaVS_D<7W3wVb?s-!j(1%u z5lSp9w7WI&_#mE@2$wtR!HNGU<|FKo32n{d3o9@$<8ZeOx{L!MJ*zB&3pXYIH&MLC zO%v*m|K3RAQXKkl5E(aMogW}HodnoXW8^$y-M_(Y!8+cQkab$(a6Is+A`Z7UWNCd6 zIOM$Z<%M1U{*^%3gc8 zwLVcCF%qV9{I5MFBIeqDO!`Rr_!NZP_r<}DzQ<{=)MR}X|a0qp+PaxPp8$@kqHKqy0W6L)BJp>_}{_e=(wPBTYz$5w9ryqj1j0Z=dZ z7xS*rPy6OK10^5?XTnpqdc#lvnA;VbE*mJM$Ro^uB&DGK(ypgsm}P%?w)vUPR_jik zeVj*D*&Rz`3Eyn|D*xdr!3+Dn_EOd}yf6|Ie_!@N9^p?@eIo`K&&gfsOs9n1&rK=d>~#|EYNUJV+=D^x+VToN(<-?Tr+O$(zmc^zQ7{I&Ao; zeQ?a^JK$p1A2b6MmN}x0;E1Y`RgFwDjy>%N{lRlPS1jM@_1W=RXwasZ&6~AGFf!`={Odj&PwY^+IWy?rg4cc)X8M;Re zGjJ}Q79J`05J`+4&JsHQVa+FnS7OHD1>~jfy~xsNkiJ{0#(eH?s|e<2e&LKm-GQQm zGve+qkhNbN9voqQpM1+GCjFto|Fq?^$mBJuM-i{>Tk4IKSP9hT^|;91@SOvQgJQ=U zpHE@jncm8*yTK_?Utxs2Hb3MOhP;T(rtL<0s=aC0W0PU8V-~~oNxdzUdq}^v^K1Is z<&BaD@`abA72=$#Qu=iOJ@Nkkv+P@Psb!66eg2 zXl?|82VkggqAw1j|4cGKzH`qeWAC1U4UIAe3BwG1>LY$c5_OA)U%m~debs=l!N^t93fa!rJ=C5po*5c5 zYo_R_Q>w<&8to*DZi=Xaer-l4rFnT5dIhsl>~QyK0|DnuIB~m-wa^|P1}8rmrShbA zeCuF5_*Gntpjl+yGyWQH_8jF#pEu>x8#VTMcw5a!nDom($=PFN*j}}7W1e1eM5vOv z9_!k2ty>@F3+mx!mni6>EX4K9KLz$)=;-!NEY)Y-v*&VQ?7i762UtnT0k(J@V6(It zFi>z=O1yFzH8xz3;+{l}v=-ej;og+hh|cuY z)^P09$kkHTka{xc`7kA zOn!Yr7D~_Df&XO2qO@F z8}V_5K~M~B5Pq7@+NF2y)^>Lrg10hJ*18!l;QPoHRYst{KU~v>-{?Q|50U;y=+AnM zo;}j^(KCdd&{g(z$*GDoA`BPavc_>yOoJMY+)OuI4(RhB2p;)+iAO9fsISQIFLL`4 z-TenS=XF6ZrG$mHc-_O1vBI}q2eALc0ulyHB3?ZznXJa${EmZ5ADW;AZLt=$i4kSPOaq;q2O^Jj%>Ko@>;ryo<*g3% z1Uk<-%tGk6?Q(a7(VQ=W2*R#E7kq{IuL>AV)d(eW#@5V1Z5IK@Jv=P$Q6&P&!lGu) z-%R;a$cG9&nVem0EGP243Ga#II`14Ut2zEluvxpY`D-)`j>ebk(7RoaPOq`}Wy#Wd zyXIt$MdwvxPa>+Z7b&ioUHc_;g2K*L=>4l%?0!N!8fU5Y6N~z0h&@j*`D%&2xi&#> zXsd_b=23bpo8KQXY_eGJhTiGjOlJ)KEjzM&t{>v_Eg#k zM%v7yCG_SZS|;2OT#;2?`Bx1tEIzE19%)2`c5ijJ;^O=88S${7(AtUNLC}*Mex|H3 zFm^WnKF4>@^4ucy+9G-^BYuq6Fh1S<51tpRcOK<4{2uV5yeR=r@Dy*f79XA;_zD#* zi)LAVjY?y=4DAzt=l543JY)vgv{Ptc;e~b+_F)k{yd=a?_U`tbW|s9g9}6MRdllMr z?F8&_YE7-^{qXdQETV3a)e)2s1Fc`V4a6}4ok?rW4>wn-9@p*m1PgVjz97S)Q|fJ3(3^}HPi^|Fkq zKR6mS794pa>{Wvb=IIP~x>LmVkBpR+mcW-Oe4*L{g`NsbeJjh1Xdk(~b(y|io~ehk zPwj@yMXknU)u(%!iHrN;5)MBGv*`up2@z~px5_W$ZKk(|t{CTs2kB0%**L0qnseTn z*qdO8ZfppRI?g}a4FyQ`h27c56*qmD)V*=YQmQUtX>Jz#>P?$r^fCVN)CUv(mozL3 z)1y;8@+^CW_UH5r@bvnLWLpUXQ5LI|)m4RjcB=@tWp_$AA(rAo|B<46&TUftshd9- zv;6)|ZK3}3n`H=~uLp7Zh^0Rh0KJ-}WZW^5f}9v#q%)xyNKvNBtJ>_yDNB9f^$Oyh z^=N`{6K(+Gfl)xzXg!6t0P9MF;sJzIET=CX5UP0M<^{q)=4tUYoj;QP=f%N}^wxRi0kXmcdHBw6W{LV^E5=z>f?ZodEBJ$p2<|&OytDe7P|BQ}_OGWegcrU+eacr-rYYlPwW=lQUQTAZPFBHJPFMtpArDRI_s z(2%~S)upIpfN@O|Jc(=D1t`;RQ`+}-Ag4^x4Vn_ONofE-|lFUzfi2G-6)pbMa^nAXO z2kHv-_qr=z+mLMs{{_)Wb62b4+n!N3Z+P2$8<$4foAWOt;+Bs45_!pD$i_%K`F6A@ zS-o0MlXesF@5PVjFN@fLR*r3!f2cQ`Wr1UpY`LYkyRlBHqh~??1*yiw>@VmP=~eaW zP1GSAeTVHzhH2uMHVsSVgqIw(-6IrcrAafif=Il%7tVhaSIf0XjrF*>YyxS|@1?wt z%q!yO(JQ2XD^{u{&Gx9=;KV&n+sFT1Q*IIdcb&;2K;NMfc&Hhpnw0P(Nz%qhez!QC zg*c(2>j_IGVircD&sceXO3)OYaN&N1+Cq06O5Yp!RxdR&dtA7|6QfwBdm4+i`Am5T zB6}U3WJ>?*i0aMZn?3Cx>@178S09mutU^OU44(oeh)B^m^uM?pmv^p%D-Wn7BC8Zz zlZbox4xjg`r3fL`x!aNT7#RY(WISPc(Ny8BxwwjB4cR=zI1DgA`+$gJ6!;$5PnhZZ z!paYiH5w^@|FscSp$8UsgKKBiQ-EsbYeyTyN$hq6a%%hrcqPfIfMxh=d9s^=VniAc zR1^N~9xQl@4fjBoIam3Wn)kJt2|xHiDPQl_I%nZY@CaK+0!?^oO# zLdA}UD2*;>X1+vIsd1K}%%P77x>1a_<8n+sHgrK#6{+$R=xsvWCZVS_4`5t-m5bBL z9b|NJ8+NjBz-)a(e)rG1!`$etBH}u!&>Tb2c;Q+CW%f^r^6{RA#cRg^_lQK8co>!| z2MF`8H^_sAe5X0ayY;IPFRiky6e14YXvW>Z8#7r8gfdTn2V`$qb0k;altrLdmn3|# z5LQv1Fc7fIg`XXwvoJZXh5B$$fwF!+ztOQ8?$cz@-L~qw^M(_!M+L|L9nUI+*6b@_ zO7}x)DFL9n5WLkrTz8Q1zwUsQu9lsm7U#!{gus;Xpg8*o>3jgnkUc38H-yhxmSguG zT;f`SCw?P;y$>PIfypAlv%E)`^Q>AncN0&|PTvzU@70yB+w?NwM-9aN6;1vI8%c9) zoZqG4hU%{%Pmm9yUa(-;5e>>mSy zCI^7WhV>t>T!)s^c(&q%a-8aCp{4_9+r{XnA&{`#7N>>(S}o-|{>=ABpVSr$D}>fy z$s`!m!Mr^1q#4J5S-SD^#X*P2!8MoEMl0^Q52REEWhnz}=R4HK@S_(3ch}pwIEFI~ zUg#q!;Oga`+{wiGdk3=FRVKv zWJ`!)iv#FxP6;5zL^&yKW$U1uy7{$-C{D=kg^w|r^z4~#tRK400@JU}{Z~vR{1o)l zIe=DKV%jH`{iZ>a>wcVDf|q&5)UE$+ea0A2M<(su6t$7Q?^yNaXHZi80xT83cjOi* z2Au7OD7krrdAb%y@(0ImX;rLADq^0>I^4=Yw z&>ERNBe$dfSzP~cTAa!yxx_+ougGJ;3gpF(?%~$XL=2d?qG0LWnBq&`=np5!dh0<> zV3|{UZElT_&3D(oP-!`N&wOXnwyY#4e=OQl2G=ck-hXcP?TcE~6`(@5(pZyTH;@LR(-3L5@W`#j1~EPaA=+NQxK4?iTdHiy3F z+e zjNAlzY2o2e`!#Mr+$k?0+#8IUo;`?o=uY`;OXvG`svO&{F-bBu-v>)m4P# zfT?vLRD1wsW_QDyxzbiIf-GpZFEBMH?QlW7c3&C9(f#yQbXaU6?ILbOy^)rbcy4d! z|F&H-&LD%oqlC4|3krdLTw7AYsrrvFCqn1Ckzf41=HdAWV%Ad1`@Oj9!6+QtY`v>t zeQ-42=n?`Wx_zt%x^a$g%P9f;4jUIpV|q#;V;hd`)EHde5%NQ1-%?fe3H8(+@9|EM zGI-I+GWabEQCNA7YB2r9oj+QHzQi%?Ir5g}qMq@&JY#B(B*{s)k1SyrLZd2bY^#t9 z&h1{y*jgeGG@oFN&5`}xd1vLw0z}{O1GF5UwnCGjzcU`n=L1?}Y5-3yU`6lv?wb))TfCX2TR6q^VEO+7|PvH|7~lDp@j+FOJgpG?fF}aLWjj-;F(kZD;mlIIkMGA?O*E%B0XjHKw{&avQhvz`$2!o|GkDPC-1szrXhA5to>~xr>M)(x_zFMJE?DN zZjw1?Ny2dFbMrJ5_dBA?JU9W(+5i-UO+kb_*p6|H!S}3LU|H$;s0D8-vXC^u;^(>==|%9sN*H!2jU8CKmOblPHProi z{^SF#NnmbD+d^(iRd)2|+#tT{MpgSJI5z2^m7!@{)NgCf|cqL$otU`bAAH{iNY>{qpk}-3|#ja`5TtXJQf?@AGV;qnCq_w>Y7~dM^62dF)z3-=MxoCLKWURcEhI#-?-^T8NX zzo--?J;M>CjcNUdkgvi~Y%d0fL!sLs#XF^s7?EB;Ph43FK25sQI&!KfSZ5J$NJ|*y zstqvLkq9kbKKQ~~>wS`tTNrsX&*)0j9~eHU0aqZo4fK*z+$60fv0xX4{~s1Ge_;b9 zSBE}rnePKLp_SPI@;tU_k$JYa9VHFjFKzT)w%=d+!|X01;T*jQcaonL-MsoTJ#@C* zXx(sNfePupmD}>B%8Ay)L{_9>Gl`tcpa;ARVH2S+C|5I~GR5DnfoQOO&ncYiM@RWI z3lzgf$tPVGg8mi+!kJ5Utd2O4k2?{AuXgIo)-;1*G8m9pkhK;5F??mbHhK(SK=inb zsMX&sPEq{+GiwJS`ps7GM@>SC&$1}e{Pr!9@SFegf{%3eOzf>VCY9W8i1t3QystiN zq+a%A<$rgSiJuJMimo?k?;c;@O-mnhYrI`A6YOTEJK6gr*o}GdcqOE4+ShV-{Vu~K z7)#tabrxl0!s<(C%cQmvQuNW~cI(0JzEJAJpkLTY04Di#Q;aJ@f)Wx&d=o_k@epT~ zLnP&k`w^4<8A$`7SDK3|UQ0vckzb%S+kXkAO1fi@63aQs0tDM&PM&0p!eCqCdRzTH zXrdnz>TsKvm{eVd%W71(!0I7Qmv1gG4G|`pWa(^D_Eb&!KT4w5cv#xYS6}%kjX_vu zn|2(t=pT-CFhgK-O!WRfB2;;$hy+2(BILJWWq@&p$PpBaRuTO?36CFx58EeTA4j2% z6bdLVqp<9dRpmN_%9iYP5VJRDo$PJ5Rkv(n94)@!P@>hzzQht)&;w=Y@fe@NvfG?x z(38{Uwd`YAYAVsT7rp06OLRTN>&hAi4pY@)q>xLUgN~` zihp=l%w7){YE;?W|3~@JzbP@7`bWXKj5W4jn6R2m3y-?igMNNCZn){|i|8?j4_(5U z++P$!rWLDVJ^c3g{PsS{O`Q`y_a+~;XZ#1Eb5PywChJvl+Ah%i+&(n_H@$i%e#jS*84~_d;8OPowE+%GDXw_31b|^pBnVrv?<~ zO5QB$X`WW~X03QcSG2XwKK@QH==g<>zp)R5lA)c+WT=X)_P3RiVLlY*TVFW1?Dv+m zRcsRX=x8;XJy{E*{#cQ+ph{9@$dT%kfg$2S82s|ZRCSvl? zp?su6P@bR|RfV^6S_GtPkJ|CA8#)2rKK4o^kb5wdv+#-KLh&@^7=qFy@uNG5Ie$U- z%xk7EN-n4{HzBE}IhVn!TBx8RY|LiK1RSs};}%`AW(^(TM`cFf{H16zs!8!56IfGHN-M4(Ei; z^;p>AK-7&c!m$1!-jS;m$Fn9OH_EX_V~w05wP*~#K^&Ix13rEqb*z~n@ zI=wX7>keX*+ZYv8^ayR63Yd4$ga(WeV&gpnhEVd(GooD^^u7s4`JSCXr|OE~HyXkk&bCmwSqzA;z6$^>=m|(+75G zrCMP)!3Z(m=iMuJQ2g`F)7b2O`u^uL#lF*-g3RNO+BY&|O+gHE=gX_-oD;=&`*nVd zpCVJJgqj3~8BsNY-}#SL$$YOaU*3cux~(*k;9!gfyFdHZo8cOny?}h$l(Fy*mSAWG zyPrLyZvT9pvyPo9gei#FF@L%*AQ>Mu{+3y16W&bFEI#g!=G}ou31MOnIMd$qgI7J? zWz#AcbWg7MszZbIh?zFN?i=@_h7o z^FK>(TO(^2sEkizy7Gg6^uPa(A$=xRlHV+ww!LTUJA7n3U)C;I@NQ+LyWe~8?w8rm zPICb{b!qOq&4iPdkW~k@;@wM|`F;K2O=exX$4qu0Sa#{tboZyt=T2N{zE$IMV+ z`Qop#jv5T-c24CD&Zd1qpEhgBBFDUVz=6Q0R%UjrpGe>6fUjp5dK$8bVt_e0@Wa|Vkq zc>895N%~A{CkUe0Ac?cbX_748{SNXkm7#p#LX{y7ZgN}DK{Turc1d?@{Y~qn0>^B5 z@-8AD<^b*DA$McktmSb2VI*K;&yOK!$Sv0X72wD0 zLp3}z9CY8#iX+wFK)+`w-Jt@+?3pShU2^iZfAv{arcOgoZjMch6&{7-ONtbRd zTIpxHh!{QhRW?9o_ON5DX6o6gOU*C=#drhpYf!LA=M`gnN| z$R*ss2G57$y_5eTF6X&)Nrt&}TXDd@C2M)=V3#BvE3sqAzT?Z@`wI54GM*CuMTr#c zm;0OZ_5ACtdvi40l07T2b?YwhK8Y4--*_DVCvWFn5!*p`>o1;#_Zl8|xo#iqR}_x8 z6=tyOpQw96m2il}nRzIVQ{#Ip&7$sirYx?uwW}QiEBFBNt~l8%`=jr`{~*s;^&LU9 zw?yw5vssJcl#+xvp=B8^i8bPJ!PoHb!@a+88a!4BrtP+G{3odsiYlx+qs^NXnQ>@* z+Jx4x22PA5m8KOu5(5?$lKQ+_1FHj_@_S?5aeDslMj#7wy|6jPH%<$sWVPGIO!alk zJk?7|-_!zYG?VrX4(5YZUb;+P7>fxC@zj(!Zx5P#YK5wA2M~nFIUio@^2)gyIioSW zr5@v3xgQyYwr?IxA}%xLPnnLqwhN68vfotg>b%?TXU#@^r!|`fN;(vQpDKDG5>imW52_1_oT; zd}Y&Uhe;GRS$e9C?Io2l4N>>Ele?~YH&B!&OZ+kJ&nic|*}Fu3x2~7N{e5Sj!yFF7 zRagFmuy<7MbxMn|SmCc*t#p>HdFZ>X;>{`7YA25WAwpM~@*iDAnfXhE*oY#7@Fl_= z@iB?V-!%+&|W-H-bZ(=n{fFu zCLYNW9E^v&R7UiL>QDlUK}Yk{t-0o%5BD`xb@HM7i_1R#1FBgi<2G*eKEqC+f4Shv zrPaJP<_p206G5Tp=PFB5+<~dh<2ON%78Q#_l2*z~I=La^rY&~n&c@uJMN;KpdlQPp zdP06KwWd);gafE1LhxU$4T-9-o(%24u-iA$_ z_tB~pI=d#gFdzS;2*fH&G{|9`d$KgDyYM$!tLw|3_`}Gd&x%s9^4lYv35<=Ao`fCT2%NZ)9$e{GtJbFG0*s#&#cC~0zli1L_tu8kS(-VWZhlFx$#*;* zdGHg5=69{TVp{%AV-+hx(RqTHXb`d>)DS020lHr*sDTp6am3w%keNZ$q&6p@7P~7e z5Xu^MayV0%=^2ADZX@n<)$*|>jhzdq4R#wP3GsZ%~<#qh1@+>JEO;p<5al72Vhzxjau zQ~+SbdDa2i)c|lyAE|ZtO0KflSDKj!l~u0{ed<3BK{B48;4PsTL>&0fGZ4IfYRklmiOVs+uEB0n91o+gH!+r z%UehbZx$X875mTx+0cZ?Tbg%FznvIC$MpfhM1yxfj_nsude7 z+C7VeUEUKa>94fi-To_eERN~G{~^&5V?5;F%~2`6$!T$YXlFbtVi#j)5Mp%9q4hoHG1<_DCPWa%FgH)Ce^IB} zTgX-_KVL8)9Cc1FRkM{lEwZ%R%;aQe=KkZYl!~bvq%fa-ZmTv*CFq$`X#Y2+PZ2x5 z?%Wom5?(9KJ6lT&Z~;Xh{3_yQZv1*V;YH%K9Np2<@=I>>4WIVOW2T-WRguFjgX%Q0 zU8lBPX^G}QVP=W%6Tuhu#jZQ56&`JY!_rx|4NeFOO_sPU4D;oO;(Id|Uo^95ZTC-O zh^<-ClSYer9q@jJbVvEV$TLfaO#xY?HU1O*zD|ng4CLnx2x(;h$}50GY+c*AITql} zc!Gnd$N_bQPZ^M5HDLw8*=VSY}gz1rQcktOdF}q3BeFTjGb}`Tv)Z z@e%0Zq?*X$UG55}3ntCyd~xzA=7Vw|=|UeHrQ!c!0bdeV)F+}^Z1cw<|5@=3&Mom< zg-q#_u{i$I@MpGN__#7Sr|%lLFWTdOm8-;b((+jp&o^wfPQ=9}{Q9P_@(EEnLPHLW zDXz}Q+nKLr#=+~PP(_mAm&n1@Hb9*PSYEeV6ZE$sqvWZ?W?KF36=4uKgzVC+H()sr z|HNkH!*zj`0u|bx8@T%Rd*dsZb4YE&;iFD%MowkA=Z77Z;l$?Q^x=HrA=g#F_K$gZ zMImc0`kU!B?f6q+^e$ZbTV>-Up7<{kgf2u16zOvCW&ODE|6WOLgH#;Ya12_ndERb3 za&3T_BLxJ;ZSsQ(U`gJIm^v$|fo$Ps1(p!bR&1Ui5k?4t5`v&{6kIdRn8NN^0hR~@ zr9%y@*xXTh*IpX|)*%2&K%WtS@!zFn#)8>Q4M5Eo^r0np%=GpyEaZ+CX4=2kf$h&0 z1uyrz`@DI_FNk5x4UTT8NeShxL_2kKFQ*_{8UGAF2>Tp_pkGXLJ4pyBP6z~AiD!wb~aY<8v-ylS05@;4?R8V-&NA!48r?#oHq5ka#x_X zMc}qJV(@sAI3edcF0OpB5EUykUi*oi8-L#5L?krr>opy}PGi2O9#Szh_OCVaX8g!< z!RU~lHP1Tyjpy^$7y8$1&MqZ?=G*0k8VFR=Sd8{dhYC+L#zr#feNIlxe$9BU4gNox z&NGnB|Lx*I2t~|Nn^Lp(7PDHjYPR+&irUm3F^V6xx7yU+dkd|i_7;2Z6?-R7{x6;v zd3)!6aVPipI@dX$bGX@&Bi^Mbe4f7O75I==>&1b!P)FpfRhI4L@YMJi@f8%={6sz{ zK!>y=Br+UHasHb=lT+;X_D?DN}OR5MW=x(h8o0OH77jz3r zpBfSNuUdY;92;=hme0Q_sKbNbi_dUfq*>?xZ*ONU7ZtZ+W#9LCib7Jl?C7oRkm1fr zG^V}TYl!CBuWk-8ade;R=>VCfm^txz=c7>2sl**ji))RC*V9KhSMq+OFA1Qrgq>oW zbQh1n*z-L49VUR;|5?4R8%9NZKPbkNm1IKyMn<-_gh=F&}m>Hv&TNYs{5eF{^9I4QIvYQ7vwy zc3t5-vErtNe8%j|-7!4c*N3i@gs({2#W5=8Ss2%!rS#xP&y09!*iVS>MR!9tn+Rte zh+dIsBm$CmYz1sYvET$OeU9jOTz{^NWtMSj^7ZUk*TCD{QIAyY-^JLbw<1I(BMS{gH;< zt_ku_cm^fCR$`?_Civ6b#*TrY^l{&6Q7wnDsI}#yW7^S;K4kCh-^c%2T?0?HeHz{OMR_kQ0UL5HxkA1d?y>tv%lzl62^QynRgJ*~%t^@$1oK zgj(u>&}wGnp7c!V)g5?jdH160O47la(}`OKa-oAqRKr|9ELIT=x$@w;lb{P+Dqqz`~OgN@Fr5s~+!mT$U5QFy|BdE2m*z ze)M|mAG5E&$(8(a`Yd`uW>7sib+6sJ;4k#F1r|1*xvzlM+M1E*_*C!@$2?b@-|O$g zDjUs@evj1=WrbMrZ#ZX?_A`T)EYVcQM2`onO_3TA|4Q>1cl`5+DWX*Bm>ulM;`Eh^ z$lW_MP7&@1l&0$iBG%P1u!M%dOYarM2JDUvSF9Kh42e#CYBBmwr8ZkFhMSj$m{w*$ z6e|!BSEu>$PIGyh7L5Rhir{A}1J!t9I4iC_D*IO|Z*p?~ku&U%gp%qE2*_w$KxA_q zD07J>VnZhlWnq);AA)W)ZjzdfQLw zg?Cfw1IIa#_>cqiNoP~QOeKL0v`3%=>46;r9<3k0XpefYVC`aL?J$lS?y2FE9!7=! zjV#Qb6Q#MLwF`H>Hz3vVbcJo);4Z1(CkIbD^{u;D?NI;?qqu3VF`oO+$_jQc^%48r zM2K{zU?*?WjZ-d$Idb=~<+?~#z*0QtZ48HS7|cZxO$EHyqH3SFYNPIF`lg?-q?=FV zH7wsz1*kn`zlh5_+jP^Y6o(FnbJj$A&}zI|ICD3TFT`Jg=;H7HQ}GEXz5E;9hL+@R zukpE|euY0)p~XWo{?+9&PbL35XICK~6RS{?2$qK`T^w& zC{Bi&A!1=u8$>b`k4Rtc0Hn#X`YO)kX;*TDZ74il*j=$miJ+ajtzF|!S1LEDsx{-wW%zAf2DY19K#}w~Xqv@LFU{m1SkWw*=;?zyh1QV``h<#7F3=sD%s zFKf{RGU4HjhlB1Fj82=WW7d^=%m`tb^Ay5rj*=nOPLtA^8G-5^irdNmgt09A+a$jY z$W7e&3*--KjOv!Ist%9g-oJ+OZ19u8%TIreB#3uvv~_Cvj2Vb_Dw^;<-|l$DSG?1$ zSE7_GuEt;{;UY41()*d5VRE4N`0Z;RhBc?J2Zef>w9qVv8?WSgl?yg^zkzujnPj4G z?h^W-VdQ+zFSLjM07UJa_2SVkF`ck@)Uw4!u zT)|Xs+f%_<9)cegKi0*5*TaBh(dsM~)Gl%wp8V>uu^-Y5bZN(VO=*uk%pjkYA0jfd zE*Fv>Y}-$r$o$USy<*8KjF3wh^#Xkh+1rO{F5KmpufxNm4Me#age&;o+B~XLMJzDxcNrlmCY*NG&fm=9SClS`ceqgk$Wi{gn!xX zZZA4cw`j0S=#P%g$(|0A>5)7hN(tQ$Z20FS?YZTjMx=d;Viw2fW|g7JXngcv?KQ&w z36R;6JN2$`9p>_o<5<U01dH`X%GjMCD*b-Z{}~BJfr&6@@6M!aGO17j>b?bYQo7+sj+nTc~pI+6IFP0`|BWYk)ih zaiajZNXX{yX;J_t5cRJICWpxgMKzuiKOWLxPUx<^!Z_3gR-20b_X-1XWROv;yFk2F z?exjOlpF6}w~bk&)0F!gk+Er&64`x#@^vwW>_77rvPM9MZAgMw+|S z5Pn@TWj}buN5gb82){-K$?U)}0-(NZtIMk$P<2c|2h%O+!?Ue+$dS0HQLOgoY(mfz z@YsL67ZSu>^Ry|NAOb|Xgy)F75h;xQw+%0qPVYV-Lkj$hZdn{#zO^@U0asVEtX4v= z-=ZUwpldWKM-EfgG{NXDG8g)t43h=R{-%Kypht#(lOFb7tNJYj-dT_eOTx9o3Q>=0+{Zb*wJZ;>Z#nl;2X(LI>v>w86ZvArQ&eAVfZ*v zOqaGn^-GNLW#iHZ=gM!MrCY#2GOVOgfu14gWN<{Yon{g)aB6iLr_+iS#oMthlQ$<8tJn zbq^wZI1g?ESR+4%n3H43liL(cWbz%eT0s@p%yeQJTMAKFf9ns(EJ{x}m(N`CPhuQ! ztIWO=^ZK#a?EWmsf*EgS1F4hmFhwjQ*#L0zN;u;?Oh6j|jM+hDA-@}~M_mHHZF+HKKQIZ9i~jD= zV-Nu-cynAt*r_09W?0W)KXJghI{DjLQn zl;1%TyIV{JGdETAE(mw_g&ScXNF3cY`EwQL9f{v5 zB;ohUAsav3dcB7;4>`!~3RBtb;^TH1ora_HOd^Hf`_IOX*?I86ig+{Ri559y-lvrbvbr5k-Q|G}53C zk0ifr|M`}9V=_uHzqmgS19l5?KYa}L!dx>ne%ueoMOGvCJxLI&#J8poXxJl){?7UY ziA4&a3?l>deAQ{-5 zsy+<^putV(0iP0hN67;C6v)#3H<+dSO#ro-e`93biaJ2D^HW#rbYBEU@Ro26!_9CG zI_xXLvWRw4Uk+QL8(`SRPilon#-k*IWhK#Ys+&v*rXO1KV{n{-J;-7PuA#0B_YB1` z)_`(G)qcy@Ctynv)~<(~EFhmc>=7v2SB)?{MMCi6Y?$)|w_NWNHl7M@ho-NLeb_Jt z=jd7}j7>PvHfZ4a|6GLtXewIq7-GDo41xw>p@JV1#ET_m+VhZwy&Z)gROsw_bC~F{ za-MT^-wRnee40=CTS;PKT1A<3<6StNIA@0c$ll!sjzs0A6g#K8a|@fw8S*Qx_>X&< zTJI%G>OTb+wX&|djO>m=Z`Q*O5zp}eJC)KH#7!L<$#bq=+4whWy1L6)k(NR$VJk7z zkruJ-ilu2si){tHq4%4nZ{Y1FXUV6MXEO3ch1-???>*7}P5@!5OdHwH+rDMcUeUwbuU z+R0zN3m>vaAyf}nJ3?3W7EKlV!Rm+EBNeV=2Ts}(QO6pfSi)*!8E)vnobnUZllcDT zce$v3Hb2>c@Pn3`ja)*U5MGam1$jSG-Hg6}c@j-BIv(#&qjgyTa7ON+M1ZP@#x>QM{;I>h3n(&qiUNGwohs&T}+fc&#QadMpp0 zJ#~}4*!<&Oma|6p8nhRP1!cpaH8PyTnRU5AnJmgCw>piwhgFY{`sDFSTl+dcWd}JW zy~IT9=;=z*AmZr5P70gP43=ZSyk<2qRrpqfj ztRp`7GrDO?E`HISL9&gV;UG%lvd7S=i&0l*JcZKr-QF^cZVe=Ep1N0Dnu~o4ULmh> ztn10Lo$?|Dc>lUBb@=BWWrw-TND9az^_;ni>K;Io7GIlU=sh8{C}p5DXbCPJ*m6z= zV8N(DZ|~5Z2Xm;)3v|A9{S1X4jGD;_m>yKexa9)CP;&S(7_$H4*xjC?&<0$Y05!ze zGU_yM6{dx}F3be{R}JX6G(NCCxIyn!rhh^n4$rs%s(*C>O28<*zznV{bqsU?gKOzX z9rLTi#xGs7!^%GhU5P}1@I^(G=mFln@2op;7m*G*ohOH&If4EGpxd+OfkZ$QI;aY{ z;{s%eo}zQO+jxLcrnwV%Y8>FdK)O5@3@vZA+xz1S?Ng*YS&2G;#gxWIbfRkygr9sv zvI~}Z8K1lT#`~YUb)!~S2V)>C0ajjZt&YCX2h9K0q)#59%AX6d{{_{60Y5FTFxG(XWh-lRy6agcu=TgUyEqtaq0wm!C@g6nB^i~9(UH*lHu+$2 zFe(mhfPKl{d1RPsbZCC8m5_Iue<_CcWf3^|&cDH;aqWk(0VdU@S5ECx$z)5dm zojHna>((aT9HIK8BO}vMI>RJR$DVdjd>-_bNF!&_i7m0%ajX(jNqJt(pwjY`#Jd~g zx;M*(r?t2uIo-!r8f zrN5PpRFk0*wL!QG_7#0ll%sRn_>GgT_6hUr)-h{E5~X*WoSoGLye|yA(%`uBIiy+h z+|vXvrtu43Z{v2nH$^X93mqaTdhsE$@G{`lT{(a;WbMf^(3=e>D#cU(ho|bvN;U3M zbm7Z1#bR{C8Y>Cgcq03*u$vHS?ShFX`{`^8sF1|u(4?Q~bQ z9UD9hrCVd>3d~pJqMs(mjsPpp&~P(T7A&ppeN&uvbk~fzY5z|5YA$LPv?fKdzI zzar7>(8k;jv*Q@#RHs{{0vqHHOQaIvN=f`yqk@R+8H<|v4i#bLKS}gA+K+e_c4S-I zVDjTUcw}MBC&`Ko=6=9Tx-(LB2itE--*?(C)S??a+suqj&gfs_#buk6__|b{l(V6G zmUv(fTIHv($%Am+HbyfTi!jc?pI@cFjFU3^b@wl2x$Jqskxt>w-gfgy8jy9Jx&3)X))3ti?^< z$2Bgp%fnzhwEqZ*(oH=l;`e)4u6=TpL7kmJGK@yiAU7URsj7v~9bDLJ z6&~k%{v$iwA%3e5Fhnob?b7Fr5EZu7rb9*C6*Q}m5aXo!nB5gffXrL(#_a`p8fjjm zv^}k0z6hz1v)CtbG+~mEF#yyZi(($KlCG7u&cXj?u_}DgUM;DLPO(+|%<0~nvw7rq z@Ox~Kc6KcyWRfXbJ?qQ)wyud}?RxXL1^#pB%{x5i9ro}EX4QP-TVE``)Opc2{QT?K z?vg9<+=l-j^~$_4zh3{OIib};i@N55RPJm+SfwBmEaIoIES@M1 zb(1(aDZL?o;qoh8Ic>`P{x0@g02vYAvitqSbI)bk=EmQ9HNGv(_1 zLiX@8`XGZ1xGTDc(*e`E?+%;uxZ%S5A~JnLM_!>FC7A9g@v6@-H?055w9{Q0&2@$x z2c>i`QlRAS*B*_)# zBoE4AZ#FGB@L)gg{n3{jkGGWW+me2H|oa{up&b7{2O+6#o7ual8)p|HE9 zod8wUdK!t^)tr6@6i9ge3VD@N6X@;xpQtGt%>!uG@hkmjnaY0k!x8@vMxttCfpc3_ zU#v4&{zk4g7w3LVV6^{>+PwYe%pla&KP@#qE-r07s$4PRc0g|{>L;|V-AX=UxBH1K zbzjTsUgFrgB`URan=QqbnL+Q`LABJ|u*uKPjb1%O`;X8^KND|zaM-4qg`3rcFQpD` zg%o+FoweKI&j8NhyNoH}&Fm7&Z(D^@bRy5bB|RVT7p48>i{;atu$Pmc6ZLO164+h1 zb=KLLf~K(H5zC>XFNYE_5PLdk4JRI;bgSABpT?E5xpjB3MEFAVpM9h_)iW;(TC+fA zVRdIpj0@u1hbmuS-;IiW_n*`!jefsiB1WzSn$hA1+4-tbtFSTAX%WqS57#Kq8?+R0iqS-}B><8Dt}Fhb z#R(Oq>+xEXG7YBY*unK5UQKF~mRQUTJ|vR1lDMwby-d9ahe_hh&u(YWrNnke*5>oN z$vzB+#{D%u&fUR^5-xGT;ZroXSPgr?aDA80`vLGxAIVGDsH2Q&gfMA6Qb9l)b*z^v zrlmT8x(C^&<;=IIU4ANogy^kSLawK>*)ah1G8mQG#)9y~Tzlqo_oS+Sx)qoR3=$!c zb*5LwAjLq#jKoYyHFycw0J4gFCxA}o5-_nIdW6hg9pGc|8KmURju-PPit!=Yo0|Q7 zd(XwKMtHvzib6X9=6)+<9rVEwS#e|*@GmhLv7xo56!9e3F3vTLAu z{BFPEPs9G!2<2u3O^^Kvs2O(G?mxL^3lkHs5MVvH_}e+SsJbnXjE;+XkeqEezCpelxLm6$?*6k`IPW;tUI-@f_hCt%@~t$tqPGClF#`RMO+wrw;dUC$C?p_4fVSO2Rw)D@-4&lja1Wx$3s znh`S(D<&7S5;e^J()ggVNcX$zN}swNVr#=}(T`4J?tkcsGNUP=nAiVN);t1OIoy^K z7?}C4KMU4D{-#e6jlZ!W8K`4Y3BxkLRK)Q8anJ#Js`{ls`|rvau2FBnV5E@cP%Y?4 zAV+x7*R3sXE;F0zX`?StNbtpXeD`d0q}?ugEj1AC`G@Y228>)aMT_Ds8j)tcJz1VS z1;UIsVuxNMv2mZJ6~v#X^Atw2TrwY(5B6v~O5|$?t2gCwQ=O6jeiJcL^zgAp>m^3q zV?*%65o0!stg9@Mtd1+*+poaf%-X`0Fm>8D1OuYREdIc**Sz&rHBG#y z$cVSOKfm7l9E0!BuXh*UCn=yfP98AaPA}vqYbfPWM|-RxQpgkQ^S56FFR*e~6caUQ zK_;O+Mk18m6&Q2>dyYj;!70ZuPKgB3(Q2yDiWrc2BY}hJEi@=p!u&>=HED(Rq+_HU z;2NQ`RMx4Sc!4zBU0(Uvo~@}%$1!YxYf=EO`;|YM$aKDl))Pz)f&qR6NC$OB`XHHa z${KXe8qyo$4m!l+WIDXKW&MmWk_Kbxpg^?6vApS*e zhv19w<73aD*ibTB#&u@R6JYm?BeFGXQcUqZeA`^6sT5fcx`W8BgL$$->p3)R{d^99 zw!?A%iaGrF4ye#^(;*V2Czz=_tBkpkIXImwsp*ItK(zkjYST_O)7ooF+^`zkFZyt% zE{Nwbw&C)fBP@Sk`}c>B41Qx*MXABoM&q;t@7_%=<}gP;%Yr1h@BCe?3I;WNnk{xWDAIZ-?w8iNzlVm6E&S18LkUPnRhozSzjo#qFY8xW z2Kx+(esQa4F2~85<5`O7gUvd8JTcHY#`p?Kd^smtw!q49*Z7rQ!PuSN*3+g%ZB18Z zspPDdP^Rc4-C_1_F{8%T|K@Mn!C1WUSQ@;^E{|N_f_#6kyt)9(FJ1a;JNJ@%cIUrE z3i>U-b#Xnf{Iw;KnAY?r7$nj`?G)8aI(PHw)}~9!ja$ZLFIlK81|BVPF`QQ$dKI;( z|3KAV0__``HXR6m^v~zdnW&s%4Zjzw^hO7{S1h*c7oz8-$0uv+us)V8eB>%~j1{4) zXae3xjA(RYaCXqvfVbOERg*TafYOhPm@D^z$pdn^A1NCK$Kg9ilhX(Aieyhwkt!N1 zv8&DW!@?~!8oaeedp0jHx~Qvlsyl13rd*fNxjCL3%ngFk1|AJW@|KNWez zZOI1UGhu;laikMC__gw8x)RgoEN}7fPx!=dDLX`SU28rd7@jf%u)EQbx>4v~Vgwgj z2VtT@0MqJPi(ivse*i2A$T-G6Ih`*FD`od<_64eWUmKwDLT=xBCY|~t zOr8qGSR5qq;+k{zCKP;;gv0qDFqT>JS+VH2Y_%Y1=Dtc0vH9Z7+@?p3Tind&-BB3} zx@x?rR8@Te$*}vc(DErdul>P7#*iAXsc$?7va4qj@zP=`d z2&G7=Y=)l9@7X5NLbKBj@S^D7^jusNY$jvQ#H?reS*_FQP}>q;xZkRosawl+fhzqX z+~P2YKM*Y^t(N;VIFI@0x_B&``=8Ecr?N`7dzZ(~1=Rf*84p!Ic5;5;iu?DT;p^FD z`s|M25k_Da49}9yje(2-z?n$z{jwUiBGu(?JiTJ>k?0JV^*L zix?5Ih{#_8(83&BEGvcz5~I#1{0)qxE-cB<1-DjiXl?(e>;t{n__eVaD8#-&JF|HG zEz{8M32}{DQ&1l@o=S$?8HtX4+8T&qafrCBWC+l)?u2=RyTje?R0PrEIv#M)GE?&m z3dtnlscz$DkaI9mZDPLtFL(ZlabO1b{*yPMU*U8-lb@kz@L5J|Z4YRfecnSB(S&D4 z#^%Hax+@cHkJ%CGcc$2BjsQ0R%b?^$7dZV+fsa(ye zNPDqpO^GP`t4IH)m-BC)?wVX1<`C1pTLbU=lQ8myrR%KO z%0|8|rS6k8sA_oX z8pBMTzM!_f$x~Fg?plWCQoUcEX9Y`S#<*~f`8>e1y`8~C6puI;LgG*`vUC2-*j?o9 zzaC+ofqzzKQ&U}+UIhOZ#qWpPXJ|?Rz7=w+JwXsA0N`HZoJoUrQrW^9uLre?a-H5y38}A?OdI1UD z|1hBrYgc4eGIWT0>SrrPr68)?h@i)?+-@0>+mm4NDl@@H$HK>e(#MnwWQrT|O9Aq# zQ>5By2G*&I3aIq!FY+5nV~mUz{&V(||7F{Y`_PCbSZ))^?z15Iuv?m0GTI-5DhD3; zh1)8&XoQ~&UZ;iuPqIX{^6So4&o#V_i0@1T>Qc(jE;4)*7;dzZCtfj{ePs`TbYJJ5 zPvdtU61GX6UxN&!kacpMQPQAJT@i+R$Y&BuKl|f2Maac4ThmDf?OFpPUnJnC%b;vu ztH&B6=Lbx-KSAnnXRS5uJ$!Y=lI9_{#lWmOgZ^*T!@D2`mvbL!J8nvrZx3nkTO$ia zMX`v&73oz`E5ns8PkZgs95t>Zh}WE;y@kZE+HfA0@(@;I)yth2fg$?#ecVMF`MVM) ztA%G$(^uuNl)k(Cm?5ctGDM8U<8-yp&g)U_0e8vt*3|`;)WXUm?>ZiShJRLA!)!Zf zK;3__6}fxwHNU?`MYny{9yIK-9dn?OheYzXWx9L{c;VE?8XhBXC@GqvCdV2YKQR8iim;2Z zeIE!S(m1=H=w~j6`nAW}-txOMOmC_$6Ca+-9p?ySpWOuV_}-!Oh+cL-Ja5C{Cpv!r zAp&b9dyo6)rCobtE4o&9L1KP^`vH($+m_%gYnyT%Ub9lADWttyp24jzJP#bI_S|D!8w=aymyzao7c?M;tlo{jEwj}0=~;!z8! zv$@-b8R`SEYP323!7sfoef{~XyrI!@W#ipLA31k$P+SAI^NTc+X3GEo-uwZrN zzFC$X#eQTTPt-8~;l#CT!A_WHPm~9zwJrqq3_QEI8j0~Kb(sng95K&+}BW%6TW`4aeEXQF zBp>l=*s)$*&MVAge%+Y~3NUz$caQhTTRmNwi=TiQ5&P%6aK;lZ?n`24jiyh)EATJ8 zD#aCn64%04aMrZq_i%_9rJOH@&qb1W91&f|xIWl$h|%&u7s@lFxDWmL|5|`W&6v?V z&RcH_O4pg#Zr(E%iu&G}CaO=F8|fZbQ{G0G zQBmptXVWz7P_|wU)oii2*2=ikcSu2lZ3V6+e5zT&9&sN{Z$D}Uk|0D~hc&0IDw0kI z^71dvlFO4HTjO8enoho+BTX3Qs8WaXkpz5vS|lkuUvF@qIw!jMWyi4 zHQzRPUsdeLI$#Su&U|VT63h$d(~)>j`mSN<(ChoxB!fPOrn-FVra6T5k4QP;xY87Z z2_B&ixcyg)WyzwHzpB5r^WR`Kn``7t**umDEBwVuTcDgW7*WG1!#p^D*1J>FM8YuS z!?$}YHs?5++HQZ8q_0`4UBlI~9GUlPR)9_?6kdhS-8k3?eW8d}xMCOiP(nvNljv(? zPG{95XecTTL9-Rg#59>zSMH&6Ehr4D`Wh`rMplEo>MCQS*wcL$&R`LwFC zLr5r{&wp_eE^5aDKreyOOzIB+y?*1Yw`=J_clCl6`AC}y!Xu1#S^Whu`$~f9ifS@N z&SK#!y?x&8))t4rZUj)a^#LmXa?KzT4R1jyjU+0$kghFb_jL8JrnjRuPGBqC6D}vK zJNy{v^0RL4jBDS%e%8g^*KR!IhheRn`l9(zJ%S&g82PaNXKKUI<`X_TuenU5n$b&Q zt%z=zKc;M!zjndO6SIbM4RO!~v655BBjgomnHz^D45!B0SLlYmo7|_{J8w|4vo}!y?P=G=4v6oxQ~(iPSsz_a%!&PvU@r z*PB-~-FRe5X$Gi{Fxem*k{ivvPDsUv_le zaA_9D3NqC(4G%uaTqlQLQAzC7Y8)X_xu6h^&mw}}SR zXd#yptMwUODieBeEx_;9gOwq+1)i}pZbT$@u%JLgsQcgi4o;+4`(4|=z1)3a{e)ybD z>a*sLr4ydPJrDP1*0VD{;Ux}HMN7-V)HAzgV@{tZVf`MgJNL9XP2%5Uk9xBqHEr3I{xl2Q9Xt9^dlI=dnv!5vNuXaHt|+Xc={R9Wfbh_e#XY_7Bdee?!PvsK8O| zrpBCj~mpm-9Mr`n=^hn zuKuIYZx`0y68SdJ>ac(sBSaL1{Yv(~YD_U%ww4%1zcuD@MN0ClM9gGeAPTs@_s)#> zDEQMnc}7QTBBxUZzzt($4?k{Xk-jtd({d;Jm*tZH5EyP|Y>99UrVpa6>)#11os6#Q z=Q-pQ!<(-mc#i9xn_?X|er#49qu#gnXBX#ToyG0hcz^myaxl0FVMufM%rB-qYd>?O zqw02*yTH3S5kcrDd~S$F=5JLx#4;gTmOOVx(L@COQn5^fmCWZd$*v3iGt`uMb#+>i!SxdmQWom%3QPPCac_OXB0&?E~hJ(fGM) z%~>CD^&MpbuN4PMw;!WuP$!uFph?O!>>XRv)Bg-``(%I(LDn<<)WHpN0%=LSqGF9> zPAMzY-QcFhJ?+g&nM?1rhRa@m*qenj(w|=Qnm@>-H0}S2UpVaFE!C)uRrA?-cMqAc zk)7skFk*95_ndU<fnZfLqRAmHRN^d9N6tKAHTJC56m%8ltNL=c*LclcV+t7zD5 zg@jILEyVKN=BXjN^sxqKhYUb;QEMU9733)z6Npd?LJ-(V}+cpXhS?<4ft6Ir)wAo>~gSWX)$&<KQMt>QYaj;QujUyDD* zGiWVmUTj-g#X1O-u`-oHKHI5ad7mc823Ro}@_gcQ1wH}MfYww9DpC;z3LtnaJzXVX z#2`lNOKew8^EI$mU8jyt-D@WRIzf0;bE*$QatFGokIHt2pH4UpXJ|n!x~tW=;%fiF z%YM^%mX%r@qc>qg_^(hnfgE*O{a-CfI~g4or}P5BLOqu+wnQaBb0oLT5}4Q2@F6?^ z^Wf<(b~gagDn!|=Ym(auW=QTIvzF8PTM-Pc3MX(9M|U@n!O4>Zm_T7>ZZtst4~H+u z`H66g_E-`%y+^|X9gM!Tg=nRuiOP@DwK%@x#-C^V-c~m47wV23ac+E>Sx#&ATv^&0 z-aWqi$Ou0*lKK>910aXKJ5g+%W`bMN3&i#K*xrrnJ87_j&imK}VR@^QlJUZW4aU1X z-#(&~upsIS6@B@O0pHi{R#uPiQq%gsJCwPl3utR-^g-Z+BBgmMN%QnJvKzt6(jCDI=nkbq%#vf zMmd0U@rPe%hNJ4o4OgKTrrGm4vVnhd!#+w?+%BRTJQf5XTq@!0#pA=zj8Wts`&~fmv1xqbE6*erdrbm7vud7_@Q5+i`fCB zj!nMd*47KGx;3Q-F6Z`8`t9?_p3JHDXV-YX5%MupYT*<8%``J?mBah2tctzqU6P~g z_J%n<+x8G^4(l+#Po44#^&uG_M}3q^YaQTl-x0JWa*1X&d*ge^nBEa#Jl3Ia@NYxR z0U}ZRpR~@VoDOg?t6%}AgtTz`gDT5tZFFPow-PTYXN~4hgwz*9uSSst#tRqBDBx2Y zv)R=tK#Yo*rlDtd0tY9fpY-OUR(jz+_UvZD-ME&~MR8@X<#1-ZP)o+lqHW`m)TX)z zhoC`ldsH7Zd91P=9@^G?`w%*E4<*|}_WN!_eG49|ou*NTc2}tLA0mAyWce(LA#mmC z6t;I_iY!~qg-$HPkRLr!ILIf;<)8jLE{c(x@N*cu2jS=z^@Fz9ozrYatA>d{RZIJI{Gn6cANFMe{ zKz+?|@uw`Ga0OXU7a2I7ubbx*i1Zb(`p9;nV6j_gZ)~O{(e31ZV$oCOII`5R_ULtF z5huhPYc*Vt#mD?@AUUimo*DjzqNJmATmLpX(jke^&xob$gjQmj#$PY{cK~(PB79$W zM@yUW`A>Uo{{@e?eL$%8eABEZ4A=~x22jx@do^n}Z(9%X+c_M0DmD@Mo$gmur*X(k zf11&ixOec^>B{TKOE`>ra-%xL756m;mW}!(yq+cL9-98o{jI*n$%b|cmtIa!zpouT z{>t?qgBYI>f}B9i&S$HF$4L)QU^MlixV>;oc2!wJM#{sJN&NO^_os|v3-T3oRQ&9C z|8igKKY1MOCmrcM=jydhJ8)GCEzy$otN7bh+jZHov7<4+V?nNd>XrTBkngsO-lMBQ zRYwa3KYhxL#n*BvPz*{$BfX;<76uzuicezZ2Tq)nr}Yc^R<$V0>UxLa;n|9;4T>eU zLsfU7DL?Lebiwz*v5m)fsVU7`yV>iyZN-bJ_nS55^ThAVnnEG(tQ!v7aISDLi;D;! z_$~usR1dRvRM`e@7kznO9rTA7>QEK;>3L8c-%VKs98vCAufF)nrVs1%^F6iq1NOe_ zI8oy*OStAJtNtnqhT3Y@dU9)U32tv9)G`)`W-HO%wA;N}by4IU)c)<*RyY4Xl@OER zzliJdf3)t4*BEtAvfGR?vO1389@`#SKm<)63~&cz1OPo+Ji>)i2Q z>+#7f=j6Qma*<})-ONX_vff9E*Kn~AIFR>a0suIbX~^b z0U*ymWSB~qKz+*}V`QJ?tNl`0P;lm_L^({e44_`!o%L&ek)s#InE*y5RT5$`zLFQ1 zk+^&+04ba`AWLZf7u?$)_K)8p!;`oVxL__ZyhHrO z!&_L$$ETTclk-<|Xl@fqdA|Iq2t4;nt;W>k08fU)KEC*=O28kDx@;0{+4yHFl@_}C zJ)Z#sKRKtk^vrG*;=KBs$o;7ZoZY366-L@JwEf&%F)N7mQlU}VT>U8}Onr{yz6Ou3 zZVuZIoRljQ9&^EP_$Nu&hW>5bnD6U9LkMcAl$nkH*8*5>DJ9aw??(d=A+(ZBdEsTj z9$MR;>`(dn@c?4Hz{~YF`+o{82i;X~jJPtDVh-u?-l1!4F1{azsjG&f;V3(HinLeT z71MLv4g}!Z{+}78Xj)Txem?ahT_ZS*RuHwAyI556^4n}0W6AN^wwZ44{bY=HG0 zHW6j#DgS^N&y%o*F))9EYQ)IXYqc{@F_rfp(De88sctr870O8oQ%$pGQ5xZMF@Qze zejHq^cY$XR>>ly|W6Zh{FBsdLR$sSLu)M%>J*tV|udN+~Yfi~TOOZeu)wFxXN~|CQ zHU@X>t6j7j7G}_0%nKh{4?S-1WVnw1f5$yIGMYg$_LxTYhZ2>SmSpu<=^wMdeI(RU z$-LHi$G*!iO`NAhByBYJkx;kE?$0B=y=4o4`TnIm;uE%!BRWu%5=H!>(=4rn|2!)J z_r8UU0qv!B1BH%|WB7c=D*RuPaCG?krTSIebLhvPc~xI&rZCcJt^1%w%YH+~P!Q_O z0(zOJ27qTBN|Vb&*vhl)D4E@@!R9vqb_ZVcg2--mD^yPUqs&XltOkJ}C_2vx36aU=@WM$$bk43>4O13<&aYO+3|v1!g+Wj>m?+^(`X!Rv z2jxIR89X#^A*mhJi~>JZ&$XdWn+;G`%h%}G!{0z)pyS^K!x9|SNi~|NaL?4O*PFK0 z?w#AqN3bCGGZ6qLrPX<>Aw^hXm>&4bKG%X2u+kQHn*5tcBG>_R&^6=)jOD=$(4M0r zZVU2^b6lh|V}Q|_(cESU9I~>@A;(X9R^+tyL@%SIS%b@g(TrtugXiZ1^p4nqkB{ukpXmlX{)jg0h-D(7*#P#*CtQEU-g;4 z%~=-?b(q*zmKqC+X?&ONODa<8+*80{d;3jaE`K;~@p~$NEne2udi^ww`>bw@WH$$) zfrD=q9@QoJ3-8nvQLVkcE+Gl;U$Q1qTM5n*zLG4 zStu%K4wCPa^gU>>60Am5G4sx+-XObV<~Y@|0f;#OX%7F!0vq~$f?>utc#RMT3k?EI zF=)cAUki>E<%wMjR7M@^U)5Zgqw!`f8-E$Nh|4i~R{Q6r2pD!ddjF56uMTVS``;f8 z;sivbL+S2rkd#J68brE5x8>{%)=gAx^RTUMdux05>}d4nFMU{E z-3Go(2c?5HNj%JHFQ2N+C;PvOq=jyEXV2vK@0<3A;>0C>*2+QqU@YNJ|Bd}(T!ggQ zg;N{W|B^BJ`8I$Hx1XDuo4q_!FOQK6oDukC)&-F&QS!EL=*ESqZ>W*u?VN#8b~64U zNt_(q%aIJExV&a-Ez8bH$WbVU)s4U!w6?t?^P%T-Hj2<=0Eya-(1sDNfaj+j_Z~D_ zmQ7PdUk6l%E_OQ>gSGG`A%S@}TVGHH_pq7ocNHJw-OZiu7|W{Q$=^;hd&>}W%WCIX zF_Lbw-;_6+ zZ&~ol{V;RA#owDkaXZN;mDDJup^(}aQe?S3zo2XJh_YCk@tM##BR%{Tc_G%iYv&I( zs5HC2!R4D+KEqfQgHV*o?ruBtoMfLFKg~iBTZzxdW=m zC652C71W%$JNm-vL6A9f6YCO4zzI0XCH6e%xOvRUN0|8vs*-@Og!A`FChA#aOa!hi z0kH}(4?Y7QwORDuOKPhpQZM1KaAKspd1OlD5>CX1UT8gIeGF1!0F0byX|Ln$lEf1J*t! z={7f&&w6!wb#-Aj!fAfIWgur1^ z7!oTqKXmJ%jZdvgY(qZzEFWCp8ZbSG;gxeF9DAt6_QeY%nB6Z+n&xAY0@`lAY=^hL zEs&LB<9ZfVd{RRdg*d)OP({9KX?FU+tqk~LEa-|qt9Nn~ z;vmK&32&8 zV>E@!Q=WZzr}Q0uH5x(qONKiaIQaWdZh$$ma7l&%B4EfO18&$- zGatDm)X^L7=T*&h^=p@8OHLdL%gC;G7*o&s=4E3|`@^55!ygy`Mahj!+ z%Pr(zSKGoDvrYyFh!3{XM-xOCny=%=3d9 z^9~uH?aBENt*|D>&cAj(#Z;|b{*86*f0pW;k173)8@H3xaE??`#|ul=kjn9vgg=!f z#qfgUbLos%MNZ4=9o~Zm!Xeue-?n0gT>q5MC&^qwZ`|7^If9Eb-i#-=Nrw_Bp@CSP zp(W-AbFK5Yr35|VGJ|uE%cNODe#b*9LnB`vFDcA!clKY3nL^$U$0KhgXNw10^1qC- zEPM9w826wA+B=-Z;~)OK`>Z(U-?_c9xpi2^!+fFO_f?K|^EDJ%b7I-v^^cx=Er=bVy?mG4#(i#m zF8|F+F=tf)OA(3)QT2hFEm~;FceS35si#S})gx2n&H8YeYAFs+a~78c{)7kocTEpi zX}7M@$l>OVT2)CvzI3Wyxo`VV=f4{Xi=t(H>1h39{qwQctIuLY@FBSVqAjmgs!Psr zN$@S%%GD}s=xg6QP4fT2=k=Pbel}r5jem@D(p&xBk=MgRaLti__4>dHoQ2l*Lanjk zpf4E*KTEPbw{lf|YWpAvae4rI{y{h0wqkC{S~001E12DU{BHF_3~mHY#PJ_AyX&RQ zuL$1j)4j`(*){&d6OR`weotLxqH$(zOCMe-KGS?d{zI%Mrl7Aoi@{4OjR~%#-UZI; zufKN6VVHj?Hh5eQS;=>UCGa1I~59e$k1r-)(`s!8f}Ox!QjezTn!wfjmw2 z#UTCEg89pP1$QSN#qjUDSKADrI!<59f+_jnup`-Pd$%K^kr-t1Lq8MboovWM$dSsj zFPEQeE1Q6Q`<^Izq2rtuB(;ZhYCCpzzl&MjA%#hpG4m@LySJu0>L?^0ylNWr@MXA6 zpxa$6^b&o(R4mM+Cz?Q|U{?N(K5shP#Qo=p#zg8***A2W3v5M8HwJ^fQcY&_g-tAG zP5cp!#jAXGZPQq#R~#teYy54rg1rwe9H@+Ojm8A%Qz?=MzCMF=8eOn%o+G3J%tGU{ zWk-S{3G)}yXyxe}(H>Q!@maI@54WEGoxVHxW+$oGSggQckDxP>bt1A)_{!*$=v>Z?twbu|r1Vp6VPTG}O-|YKC zYvkQa8j8gXF5~Rq(Vb@hr=Y;+dH-eAFBgyYBxC#Sw;YdBmbCxENq8FCm$q+rI_@xF&`D?8@r4mLiLV}jMVb7& zl40K4&J|O+B&8!j6+4UltSIx^DfyK+rafq6j;!`BzNiP^iguMvl8pEG@iy@_*^KD7 zcL5ypG}E2*6{Isoa-@!ra6L5UjjdC%xs8_tjptE$uYM@h3dEKY_nsDi?o@uzaQ=|4ZZcKKnFrm z+}9&Ng;Vg;SK?8zD=C9f*HPEDs7bXUn$KR8+j+`(%Xb;RUwH8Cs-7$N;A_kK(LHCo zXaDxNubv_rDrth=|DhmkZ&w2ZIN`zZ=rP6Dz(~)iwa%!AbMdooU4RDwKBRBU5URQZ z0=P9BO_5b{cCN9`2U^ZY?$ZO1(-_n`BS<_NgtJIAmm%)TST{0e2M6)i@e`Yn(>$GQ=lNvE>V1^u>Gf+JvIY?yT_Y^k&+lU z#0-k8l2UK0(i0%JP8voUISPqDjsqhDmH`uzfFd-YD4a|xtQi^}ehvhnHUn%>*U`mO zl7R3XLa1OMcPEb5*ct%QPwVK8>x8F-y<~?YyEd@*naS}zaPe2hohbo}@Qn_q->Q)( zA@Ll%UdqiBC4_zLcgYI!ieu(?qF)LCg5WnN@L68PQ_bfV?ddLjmhC_HnHD zY4u^>{i4Nxem;@yF^3v-^IrHy#Asv?*85!Zf~AFJh0ZB4=`-+Bm`R4h%l13r-l<w zqAvJP6`v{g5YSit^X&OuH6;DYzU2LrLbm3p$fFjI9|qm6ecxLc-RmvAv|m2^>hj)+ z=Utr2i&-z==LMc$EyN2f{X?4x+M>z5=dIGr}nR{hW}dYL)S?eXH))5$tO^Tx}8J=Gm8y)@-+0vyz=L-uwdoFp6@-b58hFXU5~Q z`J$X$BcOPgydfl%_d}UN!qxsGQ0WCQ80Fo>24kW2- zz_lX^axCW^S&a>AxN22m6g{YMWEz*s{I#FpY7xNVRsGquRC5#p#A85mL?S5rdlN<@ z&{UC}7vt!Cj4|p;vEXbZM0pJmxKnwGq>9W4CxG{ehvUIHCF(FJyme2=1~P}N8MQm! zjOy3NcgFtY(i;6`4FIpiIIc5OBPub=04dDKbHNC_5^TM#s5fB}_t5EZ>FM??iQaN^ z4imISACmM1(DpQV%BS2QIbkzNiHAi}l0lYvdZbqPq7LyiT_ey}5m}VS*==V~be)H_ zA4w?s=DwSGs2(wh>x_N)%T+Hmh`}`X>UE<=jd}1(FTM`R4_k#C($qLls)6=nbIEl5 zEe6%Bt?=fH<>*k-iANU!1}B^RKN$$#=j_&0^}qK2qbDx=L-3Qj z70qUruy&FEq`IF7p{sZK<s ztx{)F!h-w2XIKx4XYvIRYAw(Tn4YpF!%f+EeycCP`P*^Rnt8*%_SLH9{-gOSfvx|r z8Ys}CFNEIIhAxVYnMZ3v%J_W1Kd-fRvvIDI^<$IPSaqBHW!PB5p|p8?T!d<|TAoDv zJGDP##eMJGnJa%ZoFput&7{x0Fsom5pp%T&8+xz^Qo9Yg4HDDV1IvnH!kRWlvIL!G z5EMP?EAib-2?4#g29vS{A+AS%mc9ksE)Gqm^E0sjIC-`5J9u-;vj)+ap=di9QFV1_ zQj6jRFgKH&nJ)v*JOLIEI7lG;kuSFdU>e#mN&3BOKa!;=dG7l2s3O+z6npSyo$;y( zAOKNRh2RQdS4VH|Z)Fhi&)3@ypT-4cQL+;UX4Se?A?}OkNv`tUzCtX;vUs3yobT*> z;uySrp~p0FlyOreoZTSII>|Wl%6dXQvXcOM4`-B&UaiBK0|Vq9!uzzaxKRWioYf#4 zFA^KAtO*4Au(B6kc<>|aw*-RNH#JEJMF1mtYnJhw!{NsE*k!Xu1SeCu75&c|2XLw? z1hH8@6Ir=^qL<%6JRci18dvVnTSZ4DF7iY|^1DlD+P0lt&konH6JGbz=>h%rquBZO z*C&5-oEhxB`K-G6|o#F2BAIro!;+q7uYm0;Pl#3_LCj%-|_NC>q4jQR2wcl#j zfxPy^{_{Tb)voq7X(iMQ|1=nRo$1z@LrvdNDoW|waqt`dD#-r5y_Cu5+B z>*(z8??f`f7&(|+jvEiG6$N-yBQ9U%as9VL?zY!OIE1K5d_X_BIi!Yyt<%E^LJ|3y zAUxz>XuPNGcO)!wbI!8_!YG77ix(+8-36b8-aXY{RtjuYup`zF?U5iKX_6otJWOZ5 zZ-S+e1mypH7buVzl~im_j0ctn>(FVbAY_@f-QfphLPj{5AX+F8$CpNjo=BbN3-eZY zUEmN6lTc?J=PTuwP{Mzd6#FEV>-Y~YT?zE0`Zsz@B!Q1ky;`5<2nw}_;ylcKM)&hZ zglvS}#h$G{JHL!nvWR&3K<)LAvyLQ#U))9xuf_5@_uheVb|F>?O0>$LL&Yc-)JI|n zIphiSlv8Oy=O1bn%yP5A$^Nu^5rTrY@ zWB01v^NB&gWT1*y2W)y2L7fZpz~H9#(Nw%AND`T&5@Fs25=~kZyRd(FJgaNvJD6O| zB`db`RmPLtepA;f^ToLx>zc^8SG51|a3DKofI&EW{Sog0rQm{CPVO44#Y$R# zP}?g^J#5ssVAjy}r{D9&n~6WPU59*Db4G9G#vZ0?ACGZY zqcWe*3ttvG^>bf&evxAcstl`4ej^M32EOVH61dC?ooZHn597LPacz0RuGn-y5Uh3F3Qna9Tx>Z?wo#FaReQ-kN9g1e{o zX~%n~&K|qt7Mu}C0-lapdr`s}L4+Gkj_@8z?+=@TwdW?6H84!^&S*pnj@M0vA{>^>oigYHoDgt@fOAB8W)lERirR%gmKjT! zxWvJ{J-$x!QLHw8+ksh3g90V)@+x5AZs^x7pJ*@GJ^xXzHXHBQiGQHYjPh3*5cvl+ z8xrOMp>1BcPBU;NMl`Xc+VxaA__`Uaq`0Q-xVKDRk5UXSAh!L6TBGBlH6+2gU-`d8 z;6HOEX!fFH!QI;Rv$B-Tv8-jdw3?v1V-Ov`{;uOnuGufn&I~5I?(B3s)3W4X1i#+m z-t|ig->1_O94G<=DbLA73$Ji4zOHa(c7IQ87a~`gRQzKpEhlW5EsekHeR_*k%h!Sl zd6vM-2!gTD5uxfZF@@~nW^dGEcd>q8q###F+&N`LLDl9aFu1)O`(k*R{Wfh`HRAA? zK6)^|O#@zLmlq)=EFQhR>NK6wjd}UK;o%8R9pUPilLfy6GRV^!PNf=G_FmqE5T0Mg zyV|1F*WMPchu)2Jf*N!u9K5!bQuKtnS?^xi#G>gzuu+@LwV>}$Pp~-0TrxV1) z?a}G_3haaEDZ5|O9+wM}=I55`4)kw6UzPeu_C}cg{&1}enB+4rS5H=|_uC8iW@FVI z6Ar;E&SdPh6ZXvTNAz<_zfDV~O*)LED*`Yoer0z91xuALO1QdiR|4FRx!zKBbItb* z7|w4R&kw!jdgVU5tMWF{2<4(NHkVZ*OnE05YR~zRAQ>g|&0$i22lB|ST}8k&uHO+D zEGKOdxp16BulOlG)DbKv%^bFHby=W7r{nn-F-WSQfVT{QfNYc>nBJ;z4 z>~o4R4v;~@Vxs5)`pl5-3~XWe@DvSLL#0SVo&phc0b5{1JM`k%kbqqGUc+ z9E9||=KkEWzr|O0jwEa6Q2*#c1L$^({PvaTRBMw)56Egy>52bEhn37`KqxZ!4r))h zaF9w`#H9#~@dP-r!nxgX<$$MN^#Rx%C|1zxpCq6W=j@y@PBGBa1rI()d6o#>i9lVg zdD&A&%v549HVxy2u|9|YhXue^AvjQdlwhy4G6+D|mLjnTNYjTC;)YAW@kk$%>soMZ zn6<2>W;a!US|wJ^KH;m=>4q`JVhSAL_-%~mE??*6Y`P@Z4AY`F zNfsOz`Gk;Nn>r%NoOh%bu*faa+Mq-c2_HN6t%nGKK;_>#b_ckZ#Pue4H1h-MKjSV& zql{s7vZ4Q|7$wJNfYs<_zvFoy>>CI!6w1`f*){{B{;EXcRaX zsU-g0nHlap^X@39bh8kw7Cxo2Hm(tuBJ4-@DzMSnw+r00O23s`)o2_C;kK$@P<|T4 zPgSFzD@W9)+QGbN?WiSw_W8EzNH}hJPut)B@TGMXA9KY&C2I3=zuSitYVAj-hU%Q3 zm(S5+If0!7a7;f&G!)M)RkDMLVq%m3?0i-#iA+O7)g-ZX74uK43co&Fh(Io$CdaLC zi(5y+$2D4oDK{!1u(`pC@O5(5OR zjFen(TU`D8N2ZEqmwtU+lvB%$$_;JDe7};MstXh(g$?mPQcm(Msb1oa;&SJDv8L&W z)K|G&zHG2boEW2w+_B61gh5eubH-NF`X5^jzd@_( z7Ok16m%G7OhoAUIt(QN8l^4_qE_5;9%Ve0uHYo0h3eC^W>RU5Irc%9kw8V@ki95QC z+&UIE=mj?km9SNu;GGs12t#Jwz>Qpl+!TYtDASBW1d#%HGJYb>l!tT3{?pK>WQzt!esR#R$if;KP(wc8H^)hbssfx zP0N+B{Gsv*4Z8{*{T&}3eE@S}{Wl`p*dINQqc(-SeyXQw3(#Lecx`C(@btR9RNT$i^Q`gcp-RT!@V;bxj{LoMX>-0FA85#c=;q`Lx-3{*b>I5fK!cN?p-&fV3>@HuC zhzdJK{)If>bkxYQ+X2n%(K1Q@eA4w%F6RPX(8{;U)Scs!0$mn|=9fvEytPi*4SYtv zVOwR#bj7||$h3`|dT}dsxd+{^IR4&Nj*z6w48E6R(qP?8wKl#@8Q)Rdb*xtCSzQg) zUGr@H?jLVj`fwxhvuL^p;>EMzX2Jcv-O!8eFmf<=|Carx@Y7TAwA4AdB_U>e!%7B2 zg$7%BgKAbWlf?s>1A2fP`tpCfj!lGIUw=b>gu7T`cqq}7ogP>8RFiID!2J`4efo_qh(5ano)88Og8z z3{HP^)^CIEyM1PiNtNyY?Z`cg(-U`thONPtZZ z&rPlUuUeI}HQ?OKgG%o7LhdPY{^r~JQT(*EN4cnGJ-4L^)D_t&<07~gx=>I3MmO@< zCdTtsqIMjPN7-w^t#hT~x;w?fGq$||%=LAIZQw2h_v|~?4H!EaNrVd4_#+4+M-{^r zl!=j4fQ_Hn-QB^ec+VQmO+NuPGJ;VWfA1tI~wz zA5A|y49|8(S=Fe zk$>E6oT#gdSM}x+yjndI&6dEyZ-yN05T}PUa7fdOfe(+8Bd!wL?>P$t@A~2d#ebWc zNOYhYsp%YfR=>?^jh1Xi3k{W1Hm3-*L7!f~mkhc)QS0>ovu58~A$d9U&fxK+cmb{G zVXtJ#pRI?d_*TWE7G3xT6p%1iN)R%$|6wr0L3V$eb8!x(fpG&% zZBW^5(JBsMXKF~;mY<+Si#l~pOE^JfZEEP_2k+>+rl3yj-UR5}L7mGj0c!v36zlV+ zD!gA2VH>u1WS(9TFkH)jI3^k(=_)0m?QPieiHScYc%(F0BUx{sVcS_Ky?o_IYuBFh zP26BbtL1pbuwCZc4HrZ%!>!=q7>Z19`hAkwo78~kDD9n8OQH_>V5k2G&3ha47P`+% zO0L^u)%p1;o?yfT-l$&5w8(zN9(4W%jkBC;vYmT+e0D5x%-8l-&v>@5dA~z--ZZds zA*J{A)G7m+HAo%nw$Wu@=mkrU2*YzTU-|Sfe5bTgXx;;JMZTE85i_vv`KGU3B zpXL0k=nRyuBU@*xz{3CYQIhYc@5z8o1}|b0iFsV#;DYq=dVZb|Wr@-dWyNCVs@-Cz zA25Y+H_)C_28?A!M%h(|iS}z&P-UyYh}!D%yG_wK#N%h1enlXm`nF!0deS6zoA$r; z--?8@tS7E7UHkq1apabqe->mCQ*}9cAagz-^LN+-$wtWa5VxmY)DdA+BSPi2`n@Vb zWAD4t^iCE2;5A}pdRF3qYeb2tDljKUv03nlRS$<-IAlXy1TFmm>HcZ2H8A$>V`{JL zhAj94=7(?=cAngF-l60Xzi%bf=+>0BbsVx6WcQHvd1{3~iGNp%?y>Jps^{p!=#VDW zoDPKoYI%^YjFqxMMqge_2~UtlmNiG{73wh1s-ZZ&Vk=`{Fn>8KRdz+&_mlfFM91iY ze##313^RTU(+f?>aGp9few5h#=w_WNtL}BUXQ}R*E_=l;%Q9lno3G^yT^N36C~a5j z^=MVsKukM(q%MTS0q}z9qvcrLr5-z5;44}{4qlp$^DEN#?4pU!ZhrjzzGeyMb6K)C=%aRMts^ z=ps!GhQ{k*H}Xtyqmr__nMA3m*dNJ(cZrSA6NHgarXfijY!H1kcIJLX;PRMtY>N^` zc#LZ&>cG&`HI`^+;jEE4+KE66DuBWyko6Q-gPvaIcSijV5t-kZLD2M^j(pYb0ti4F zGq34DyDKs@(8gGG@TO;=t}YLs+d^H@X!I9@=cTmO)#nWn*x&K|>JRq#Eci^_S)ZP8 zrOxSv7$%E~F~1~NklfcOYU#@ncPX$bEla7>P`ESnOn1hr%0a`bQl)b?`7~NNyfgN2 z0~uC5PliLH-u%(%tpjsz!x?n%w7%Jt^38Z!t}KNz1YKedMbDyG{;VPP(WexMn5#|7 z63-d0vJ^?#i}C11m3mdEYqPDT%j?ch-Yv!2&ZBE$KNz#^R$Vi^Xvd3JIbvufr`&(f z@e#1{H2~;On(s0ShMPmLmOr)G8^GG^%@0GujQ2C{Rnp$R?yF|_g|z=s@Vzvdc%}0# z7cdnu1o_+{Om93?s$=dv`>|YqQ1FO;$mq=l=^9g4iXTnz#)^H}OP*ZXk)s-~U~m=Dte$+dBrZN4`QI7^SKdg$9ORQC~EpZG=dl+n! z`!ET{a6$mz!|}2j^W2`ca_gTI_kI=pzRtn@AOSQVlABZMH~MP$k)3kGY0WgeTLJ9n zI%@L1DKJT0ob>ipMzPnFi8_^-WP%4$J;sg4#X(4v=kXo$K$m?ecLOmiRoah0dP1PH zo<1cY?P81Q@xZ`%UupW_ND`q8Az-7WN~kQo%f_Kba+^tyMw7?`x8NuNMfr-gC`=AP z2&GIaRtXmEhOwi@!uRGP564X`(0*N?i&4dxaM-q|qX)pk3oU5WpS6iaAMm)n20;L9 zMhif7!!US~G$^u1KE{#f@~PoXrUsY3_M-*A_l5IHDwtP4*4=$51BzQcNnWTmlytpu zqU@gz5$$(arGJPHrX2UyvL8O5zjEbM91^-n8bl~?h<69=o5mw@L4I}WyMh}F6h29` zr6cp?j=e!cXk0rv+f47}VIqnDD5#wtkly7FGSKF;!|uht27mIXT$hZKZhFp_bHe)> z1+K!g>s<$3=#yh=ith_LPMk#}4|iMHDwAEZ$Hkb(a(uji zI-qy71sqrW)GNElds>JBjvM;?P*%zMdY1#xNCE`{+70@FfGInyvesE-RI0U74@GV` z?uKI8jqQcy=7C97ebUjUL^~1g>u=S^nQwI#zAJq5DmWlQb`#dOM-njQsZR}B6 zVM?}Rw(h$z?l{qaf)pfnmdk1KKUG~Aiz`Z8)m#|+ zyikOd|JahYVAu>(gM7YFju!becpEEt{JOKh$zC*3n7;A1V)BuuX&IR2KhH<7CK=7! z=*hm3@r|bl5t#at&_t5V#aWzU$|#%YT!Na%DljsJlW8O7@l){m(>Dh!&-#;e2(aZP z6t#$drjOQNMUmaSYI5Aw4}?L1k?Y83k^rmu-;i3ZIZ1#53zpFeslmqZ0RI@y|HA@C zbR$Jkzc5(DLevUH51=l?+!VYh7M7Yz(7P!5JUun_mTj@6Pow2o&dna zrr~&oi%3EwsTw}LinvWwasW$esq`=~FG#c^j(@#d-8wn+GlCzmplSVY;9foQVn81R z*t$N(8RxdL3Abb9IIx-9y-1WSKdTTD|I$g}h11@dc$n;)k<5C|!3=voay!!E;h6p$iL1GzEB^TWv%whENrQ8+~E+r?VkO5 zE=TAdv{I^gxFi0kY>hUL8d%1-{grbdds-?W>Ph5UlLd3!rDqeW>)ssOuQ^bZ1fXtF z3n&lJPyp-hddSMnTEzI8J{keH>uq3#GdDc zj8Ea$e#v^otK;FgU>_=Lv83`jE7x30RQruSjLX8&p_5;*;jAhYwEfIiVBV>f{MC8cc&hf)`#HX$#+nA^A&NMaRslwYE3-Zp|AhrVzjnG8uL+-UQFf?ZKI_~h#Wx}b5e`!;vM}h znjYt<+13pys$@)~Pn%R)cMEt{7O7K0X@5b)olB^NJpk1ISf$93=_3~d1LtFo+Vfp? z=wQ(TiqZv5LOSkNqUY92BEEy#62W%AWbO%}v`g60eD?rWr?=I_Ua1#@{#OV+MqOpt ziK``nJpuUJMw>l5*47wm7{}LSs(G8yt_t0HUS}6*8eJFGg|qI;-dC`bV6m=??8-2s z5~c`y{a0Xa4F{f!`kul3p9~xG{^!HMuK73husQ+pQ6%YEDTz8yhw5c3(FhKb0C!Z} zPQK=_+-<&JDzEs5!nsM0pw8WoT?>|^7B+0Lnku(#RR+WD$9g56uT1!T2^z6;;(JAF z@$TXui53jT+#cR_Tq<|@O}$NMvA1r=qf;**1f~8~?FqnEUjx{x4r95K8c@3c2Al~G zYY6y9ng+aQ7Vc1-dMMI3(Cw6e-C7AP3go_ar4+m$3tnz|YeOaYBxlypitxR*_OW9R zGxy~ePhXtu!&b4wI@93eYzEz__aJOm=$jnsn6{uOZ3(iSYkXo6#TXQj>;HDe{fZ~y zQ2bZ_?~}I|A}1>vWhHTYCuhawn^7bZ0{eB`A~u$K@=TNy{#$+1c7tgA_l4H_#}WUe zn<{24;wx&mJJRxGPV=V!X}+15u;DnfPkH7x!02oY_^vDkBwl8*!GbA(%|RR|V-^}P zo?2eC9F0#YVFPZGy#rJKhz%X7dQr*w_o-Yg;iy!{#nwiZcV098FmgRO-|K~7fqo<% zlG;cd;dX@;9#D$41|n>TA!%qGq#yu;uZ(8K-Q_|CTtu*5_2Xj*En*>7-Y>?G_joCy zV;C0nb@VV~tQi#wyT&_TqFuiw?PfNKO?4X>vk-g`mbh_cNgB-q7Wkl|NM;j zqT0c#8{0i~{Tr>iV(!zLg3Y?w!i4UBW<8286J?}`W)3b{#_wP5txn3nnnU!X2x(63 z5u8ZQ-0;HfIZC+oX~fqz#a9^EXyaP3O$0e})!b%OD(NN%HF0IA+kg0oW_ZsFW{gLp zbX&#Qz{p*oB0PNLUTGuS)z#gsK3kAZbpOVZ(Cw8uo&2kRdHYZc1xWnDw?VPz4_)hY zwEhVPyk@DswJ$_(CxXZPw|JK1so07;IvZwkfksfhdPz^lzw2w{>jU*n7k$aa=WR~T zz~PP8X!YC*Fdn}1Da_CqKyqI=zsKx464b`D!6Dqwou7!4*I5MuHS=e{Uq`U zi7eJKzGR+XmPJ2;3l>~Ps99(UVn{47c+DscXkOsmIPX|&_%?hSGKN6pP`9IwKhxs~ zc9M8KBqXm2y75J@huh&{dn0GviE8h3shgPr64oUHPnGh#MWJ0l0QsgmfL@ukMEzfv zfY*1otr?w1FD_ipdahYT;6D3LjYJ;N`E3O!$?cle zB7%^M2zSTz!h^QoF$b!W)xMh=k0)Zr*{&P9oGq_eC#RZrX9kYD$MYYL z*@#{)*zjsiuY}&s;mPI;j9)KK+Xa0OHsh&MB;lhf-y-;Bo8aT#Ju8!`mjDr8Gem`PHM3%gbjd0YmqSqetwaut1Lp!?z)r5sx8#-bk|3;pYtpzC#RBX`^(h(q+j`J zgl4IsOPiqLSN7xn7nB!)f>~e##QvZknZffdQcHq2M{$}POC@FfBiZdCp+L=2j5($0zaMWyN`rOl4k#U@-y|9ki$AN^R8Wsfvj=7V z9sRTNY0-dZH7*!Dv^%w)d2H6$(=i-toH)MlaSLjJ5g_MozV;)clvI+&Wv1r0i$w1;{s|6cF!tvs!Y{uG+SBZs)YR?N&}8U@ zzaCJ}U5aw0-4uCp*ZjB9P)}nk<|6fSd$bgM<15{j)`@dQbZQ^I;fZBoa-v~CfbBBA z&6Fqm)jfI{po9#DC|oz~D?i>mKJ6bsa24*v2J9h53dCW=Dokxa{r2*PA0_Y3N*wWn z!?#-Fm@q@?|FuVIuZmvnTIkh2Fg@O+^QJ8*?i*2={B0miYpTwZ@%%^Yr4!qJa__Dk zu|d*N<8J}*sN06m;6M$KuFUzZ=WpAdfK<)$qq^cHx)I_LoRrCPRg)&MMTfLwxs6B3 zuow%- znBNfBr>6OTYAF8u-;frk1+N&1i@wT!U~!xaUmx>4Fh;#7ZpMgBu}l2J7h&4Zq2IQG z9!gqx=MH?fc?*125hX2xQ9InryAPi5w|bphQ`72`0|tf{3}a9BWAo17Ed7*JPvYoL zLG<3i#~!f@Mu$O4Ui7-jwF?h!Z%Ei=2J)|he@i2b`s0}0(CeQfB~iHHf-6?07P<0G+%W3$R;?HdP#bq4#j_p zHTB)le@M=H^)dRrCHfeWwgPMmlMu_Jjd*Q?MP@Nb2+lHqcolIuW08!p*6g@rCZ9)H zFCeVZqFAW<3`0eOPfH5h|Wzw&3AoiwLlmy_62qcB=@&F4Yt(S>~ zzUr*uvJimjn@IrT=~{EFMN7+&o>Jb8HD1etmS-?SDCCY44wzw z{foOXwi~KD%t+DY`R=(fqKhM5UywQ1^JE6}J_YYCFX@ma?@ECvMXN`E%Q}id(0JPp z1-FB7lEH2r*6bbMmm2!V?L1%Ble6>fjPgx}&)@0%;lP!A%@q%>gwfl`O-Ot+J4=_% zwGPHnAc7ee{w%zWLBntY^`Q|2fHNS#;{&#zjD`HM!=QvD1cV2{zL1>)Jn&iE0q?P& zYeM-DcyrAhNhDKM$tpjW8fj$AgXuPNUsq0{wiR7P3y-qXwRV?v@tQWY;%FIa7zbZ{ z9Q|l%_4`#<%~B8Z#xJDo*F7EC*UtOM+}E263vK#^Z;!OI>>Ppvynm&%6zG@$=^u&W zrN$8o?Qs_M{i)q5^f>{O$n3aqT>0W3v zh3qtJ%E2>(1w0jhlV$or#oxUn`q4l6^Kd!$lj<{7@u}(VU|0@by%!$N#3MAjjexo!bQg3SuExH zDCX>_efYe0X9xcw3^28ZhwZqaZI0H6wmbngH$VWOK^HLgAQ<;c0yh*7unYipNG)vK z@Hq>l6?*8^Br;rB9wNv!ffcak3c{@Vv>-#zqXl?kfb~V=w+`|jWDGM!)+gDaOyece> zI7*_STk@!W@(3*Z6d&F(roQ%%Bhs7F21y8&T~xrsLI{*cI%}j|M0H((Q>1LX{o&^# zR-t#`?Q0qWgpBUi>PeYoI2TIgczd;gU2GEhNfSi+r}sGC`wW2o#gl_?Y|w zkBei|=dt?iOMT`iEP2LwN_+J9X=H}jYSG8Hg9a8e6%{+Ct&^8mUMK7j8-?MjESHMr zDO|WhpsQ-g6hE7Y)}YBZW+Li#ajQxcbe=id&5dii6nu#Sk@$yqv$Us$>r614+GW^7 z8U{bu?La`)iXxi$VN-CL1^c)Kjn|0fjZ!Gc%rbd@1@bj>#o3 zY(!wnd0N@u>@k0)@sMbFs^miHE4Lq}pg@(@$5?tatTetW&~BxQDOI<{M_Rwdsj&?j zG{*YT%OmQ{Y>%4wE;_jK9|@gk_EwY_;{CbU9G&+{SalFTO#j50aOL$X^s;C}{h3H0 zLfes`BXk&MJTMrYjA-ud_6GHEK3q8pnVeD2n z&^H}EJZG#r@jDOR83Rr(+c1b9oCGkHeXOA1|Fs$^@yPSb6Dl9B)%?qRltH;<;a$4V z6bIdM#9Ok_-&1$!gN>v7-LYlewd`8j)3-dMsye7qU2M`@6SBqap<4MxHoa!Vn`0+ZG=tqN@wKXl8u=! zGu=h(la!R~DxrI2!m2%7zmzGqR1bJA90;d!IqS#nwS=Fll(H}eEylDY`7*^(R$^kO z_DS@6M2q-vPS4mZw8l@pkejqI=!;e~ovh-wK7EU(2)gL-QTQp&I@k@JFl;T*yocqg z-s6xsh9$yJ1p{Ai79OBNZB z9U#K=g3brZ)c-E2$`kIgm>~#~8If1=v%f>riDu~!L31ypefSFE3f)d zPanLZC*Oep75bPK3j6;DOhL20Z19auJqS@|!PbxN`z?K2H<#8q>M`z|}mx z=96O?yX2WxN3$L&;7hTni&pp$i%{A6$J)S}|93;LQWjyjc`a-n~ z8_>gwyFcZUFcuz&kt}5x&6F^$VQ10Wf@g2mAdQ=3mJ^ z0Y420|6*Kj09^kTaQ)krjsL}Q{>$0_kf2j-0&oN1Kx7S$#IHvrE1?*;WM1^#yh zF1UWUApCa4_4fe(ga05V_0g*oOJ|ei0WWS!cv2=oO0O*r{ZUE%wKfbi-W(M-T zT~pli)9_K2jG5Z_qV1jgBT!R610H5KMa!NZMquM87+jeW1Hqk zr5_4MW9N0!yfQR?1Y$g$x1-5I*tW`ASqgc)LgNz5m68dgG_FfrsZqF-Y1A^yu`}Gl zoWXRlNEWI>;C&n$s;L?|WE6(0?BqF`WOveG6gtx|cKIVtW$cpQ8=F<{b!pl6hS5cG z|6T_-UOkO7ADOx7ig<2xV>HGf!+U4lT2m5A3;K+&TP0uGZ18fCdNZ#Kj-amjNUSwq ztU^t7I9t2oYW!ZGN)Q6LUKXtM;fS$4L^M(n;~#*>BGaX0n=y$ z0Qv@iz)$df1Aq;^KGpZeU-t<={fFZTqDI*WZ4$_y8wbWs1Y;cIhJtYuz#p%=fqD6D zytz4ez|j>V7O-k+)CeTw!4(?$H(^wO(3z~uv|-c`0Y)idMvCJq-5nS6f)%y3ejP9j5jjdA^Ex{16fZHC+QmUJTj$S<)XI$l$J+fT#66z zuMzV=LDeFxM#_(<(V*9HbeJ)VRagjS<_{aZQ5t_*DvM6{Y$-a@Zyq^2(Z5udy@1Yu$pa^ex$qWtK~XVc?s< zfenR`I*bwmY=U9h1fbM103;r4$c=#P1j?lo%*^e?gKW@Pw&XRA;6QQ`41mi-1<7ge zO?l$s6mTjY{E@E{i(>Kvb!HsH;D<!oi1=vM&#&bO%A0Pt@BTyf?G!1*s1ob@e$v;pv< zPyRFX4S;{>R{)5g&hc*n{Bnuk0N^G-_$?s(&KoN?|NKzh*lar3ml_+;46s2pB2!a? zKY~uqM;dZ7O^OUQy&$B^GUwGeC!0K$Uc8#@%tLmB8glUwFEGjEFDi&2;$U39VLcjT7QTIa7E~(j2t@+j~!EwWMXlHt~ zw2}GIDSG1_Dus*Ko98pKJ2d4(&Y#gDe9BVZYz;Fn?QgXEEsaGJEZIaFAQ};X4|ABtzfwjRA$^ox>35}l zg#8*RK3qq+kq70OipPgb)Ke~7mvM6gjw|PoaUoCq#<4(qBclD4F$$gZ39=EOS{+x$ z2{3M+NTzv$>tG2O*FtM$a6Q-6eC-ApuR-QPUa;ROC*WXHFDf0WzOL_bzlOBa|3blQ z>erW_;_LeBn*pY4e;xpC62NKV^SvW^<~aojf!8vDm2&Xtqa&Vm*nDb}12r~XttsuA zr9ZcHS-y?Y;Kpls#}~>kiEl>m*|(~h5&JL9olAb;iAC=@s*3xEoLj%~<1H8I7Xlob9@5V& z>}-$>wn%AT@>@PhSDSZV=GrmE`=sQ~TRYZVOsHU^?$)^{ac9s@vt~uReapH_z8O6V zcjt(1o99-{QC8Mf@|zK(vfF%27X23IMxa|Rix{sg80#r(E%}Z7qwj`|s~!-qGlZwR zahl3DJ_i$g^5Pjt4KIu@qC*B>HdB)fQkVhWJR?zqWDX2xL~RJbh+h#*6I5J53H z6dwV=Wds>y=--KNOiqF03*rCUz%vH@Zv*y%H zncx?}5cEF{{6wn%X`qJwt3#KW|2+cyOiEY+ejZ@tB{#+ZVYIh@8EoW1KH*=aGX&T_ z0sM=U5XC)+FbN4V~o?n-XG@a z$wISbZv`7TMlLH+HT*tNLH}>Vysv{Bwjt!dYp6TWTJd- z4qx!O_iKdk9r1nyUk&IWn+y(h=za=TQvOw= ztf1ZU*(@tR1KNF&TeWg>JSL5T)tIz%Zp&^KbnfOO>b3YJKJ?Q{JlU+l{q~-6o(@0d z?J#Sa?D1XL?x?X&?yorVuNC!}NqP9a?UX)x?sCx9Wd$XB*OBAQoSADj<{;bkQo2ls z;t7+a$>rD!rF>gh7%l~hxs=W&3SCO%Q=-(hc-rdW0-kt?5C;8&@#T>Ko7V`AhXJq? zjDU$J*yw@?g7I~Q0L3se2}YeGjkC_oob?lVr?hoyie(55Iot+_)F3+AndC(F(^zny z7|(4r7G`!doQ)Nyg62j90uEjTr?gYN#B098X~4iW8@PtUzzqOn+fSVA87DUX9O3Eu zOi*{GEdO_d`r88f8aOuqpa%29fS`tzjcj0}KLeXwAG6U7)MEq-ai2&n$&GfhaY|m) z7{h!c0BqVLhO+r*vklph8k=qqqJnrK@@(R%n~y0=jl3H830F4mTL_5FzHG!_(^!1M z&!j@CO*PJ8(7a9apR)e(Foo>k|{=nR#uXoaA!a5a?Boqr3ky6XU2*Y1q@X&#dV-&vgBaTF$R{C z)+s`xn~<-tVW_$kF;=@_D3xLf;#a_1j?L_f@@_Gc^0?c*<@nHeaTRZ`VM-eK{ET;8 zr?2Vq9dP| (}I)F|s$syH?vKbSHF#>cuYsz6cupnF?!TdKxikmal%C}@VXE09U0 z%5gG{Y8jS@()yfzGOhLFcwDD4X5@{v8x2cvxc^Xq{a&xY;Jw)f9`iHHy)$Hj79f=fA=yg?^j9wqvjrXAjg7K;e zh*WyMLc#_f1BEAolnpHiBOraIW&qU_3}ysv%#6N7;?2lA08mE5iDtQI(s{G3v5;i$ zqp^c=oEjt#;@u9=c!cVs2^>6SJJ~t_(8daAJcq&kX|K8jaA};<50v9%FoA0moBtC| z1Dkxo*zo)3|D^i#U${Kuaeyne(-gMankHvq_ASx+EfP+x5Txjx|ae)t|%?_60JbHp>5 zTpZcy$ihq~O^eG`qN{o;O`rh@&pO5`G;kPKN&qSHkC72b?mFb#Ktsf=M(oUDv=>Oq zL!w)7d%sDv76Lqf>4%LUGXoD8Z3Ge?iX)IshjbZ9v_X<@B5Q`8mqA6x0yr-1H7rr; z7JOcZ(t*6j9HTp4a_9`3texa_X;NP-H#>gX zJD1}biwH`7V)Oq65Yh%fcuziJC@fdmAdTXPW^nBCJl>+T-BRz>b>~&!M()}_jvI#Z zuMlk~VLcu-UE#Wn#*m*q(>tAByU%{YD+NA$ew_h3%~q=J5I-P+o^5BDcEqer>+vk^ zD-QfY@28F=uTW$&WL*!(O}mbg|2vq>?nCpJd*i$#3}zVv`2nyKjLj_gNp_@?4N+!B zJu&cgmCbJ;=tLO+@@58&&5XpHC&Q!7gJSuC_9bFd4~#O#4y7%}(0KF%ra0t{^+_i? zf#bP71=O2GibT!kV{i!0wL~b!=8eC>xL(4v0dT@;c*4nqXPmeRaMHH`v;lDCSepPZ z&luGFm)`);C(GIZ@J7|3=0C8(9l<6SL|~&Eb;jm)f_d|6Y<$h-#-`V3>vGWqFs4-) zI2LTNDR70U@fO&WkG#fg^g);-xE(0Z&3kOtDVN_Z{Cox2{DXEv^u0nULsresBNBly00=)5mij9BC>stV7{`L0&gg=;<8vu4@ zo-=uV`fs{f9lRGmn`2o>Sc+apVy&>t?B)-+($>nsef(V^?sA&d*B!y?b*RT!tO~}T zR+gpzXr7psS5lEw{?(8MepnTx8oJG{(_$TVdC!aw*D{M%47vlaELsuD+3t95J)Jtk z%b~tblGU({JFK={9owqr4HbO8#yjTwiW>p-uK-Zob7+sW$Bu6?`pi15@+beD<_|R6 zaW_3M>#k5oZmuJ~ts);Cua)Cd%6e~yS6PSN;F#w4gj6BDrW{I}}W(HGpJq!S0W^hWG z8D)e?&M^oxV;q7!#AjOarA%^xq1;~l2tYBToP3rSwq}N?CskYr0ND^MZ{)K~bS^hQ zenvlmen`}^Tr$EOhQa4Nz-*vv#t8$20knXHNFhq#I`Hkp0Aus$Umwp@pC}V{0ifpc zg~>-yrawA3{*M8r&is!MLV7_q3C6J{9t|p;0ROKDdGEN5Xa@7TEYfI8{*S1)(T`)v z)==7s{{v90nSaU?<-k}k=P>fgCXd~gYh)SHyS)LFWn?}45BCk!&0&;Vw&&V|4Zf~{ zU_NF%UK{@(0sMNgK28}WDEe%URw0~1OZ=&1&G+7)S&g4+ZCZKt6xWj9FVoFid3UaV z!?Ow$hn?Y~ap$==cW1bND>MD-z^hNF`=UPbO7Z!c8|xVV;Gcf)|0}+Z3i<F2>Hv@MlKUMBem3Lf{o&vV+hb6@JMjZ#vo6TirYhwUZfn}C3qmYNoL>)ZwkiD6~%;+ls5FwCdtQ!K?DG+#~^28)h z1MHa)br=Tfjq5rL1``Z149I{#PW;5d{HUe%cy3*ew(gOnD@o%0VJE%^SLR#TQNY70 zG~?3U585{Ml2hTt4IgvrUc+v~-nx#>L|H7~Ga787%vJK6POdaR7pH}Q@6mZ(3X2(g z>_lntH%q64Z)Ug+32?I+R}}5 z2ULxlzK+&mQoFp?_|xC-)y%jy_0^h>X#jrOuRr*Q_;vpf^i}`wc%y40KpOzh3_6S$ zG|3XwtRI1Kct=J1WTu>i5lNB=jT5&;6pK-5BKsN?ZyfTCSVq`zb5$-kQy2OZaIPUr zB+3%eBy}?PrAPvSY(7-qvN}Z)veiyn<=EwY#J815@r0JHl*vXYWpBmz=55+_UMKkq zn{%oS6uZQxGnKL>DG!AdO4+OMeYqP}jcR0-(NNzbdW|(u%n@YtBq!W@!>Fn0iQ}Gm z^!kiBoLTpBwNApiS=98{M9V{GE~PJFO%DaFoi!JsmKS5bmQByig}jSp@w^v|6EQQu z_@YXfFo-_^gFs&60_F{?(Z}d!0LL)Hf+m@nK|XF{hJ{`2Z-8vwC+q0vV^Zlrn~`OS z$e=vyN-AD99;1kf6vT{8-HW;Z< z?ie^`46{fXgzu1@;%GPbxG|IK6>ygLYJ(dr$QNbCrkP=FesrVM8&nWZ~ z6+^KSWoSI1A=R}LCZieW9z5xx#|KZmTpW*lVZ99~mt1^_U2ycI9Kt0`7E+S+rIJ53NNL(eU7z33zz?TamI|i;lihY9K0ze=rWM>z-P6)GyODG*cR1 z?}Vh(8y87zfC+5$%}y{;hj@W{jxmBU*uc^du*{Q+7pOCfW004PqvWY~nNx)^xNTu$ zW^kD(VTI1+X-pLZfVL*qFOdKM5CBO;K~#VZ01SvQjty>W<}xR=kzEEjcF-jH0hziz z<)YB3f`&+Sh|V?v)bI=X27utrzrkofB#1Yo%&_=rh(?<&T{g<^QSw+mH=+AU4x$zE zOVUkx1!^0AtQYa3KG05B+UGj4^5g#0E$srO+eh{homnmfGwmINWi3m|c39a9ORFSN z&4fY!l1vT>{<@aLhll~ZO+n&-|0szwU8jB4F=X};6{587tovW+wZ?dp_IZp}c~LSQ z6=W7gF9bB|II^3lu;St+@WG*LIVX#E0M) z+-Hv806@@x`KRCe*EnqeAir1-&M`!Bgo3}pdcqqvYwG?dm9+@B6TaPWIk2^XZD|Bfc<`}9?M#ml2zy1il&A6tyrrL=e0Vb#`i_t zNf4O%q&|bGj>7{7mI|EM++f&bWzQFk#0Q|&1sPTUfT;s0*K))Ig^eX^zh~O*h zcI?;EDt%AvUb|+jL(YwekB-+!u_`)}`-pF=phw4R3jX$9#7 z+Ph2?h`!IF&QU(%O6@|^i;er)m?Yvc`*SsJU!M{4vvKI<{YbclE0*pD4^-{q~Rh+8NFmbRtb zc`2QlpCm5umeZRT@_CQEy5{0Eg>L@uaMG>OGmk?XU_A+5$)jpn%} zpG%sfH+i6R*3vGpDcvQUrRRXh(!VJLYH>Zr+E2IPT7Z9J`CG0{d4s=Y-mc5nThP{% z{g$q)h?!BjT)O#tE1U({8te(^Q}a`bSn^5KB71Ty{NEx+PFfXO4YO4jbzeUf=JmKx z-DEr0;bxrAz~IO-~|J!&%OH?8>GPsKxadYd_tF8;`RxM&c70v)1EL(ZMu*o5GG@t0s;4 zF$a%Tk4?qWaofDKFZoTcer02J-Om1a=&;_(@vvWO80#n(i9C-{RWMsMWiz*_{p)cy zu4%IK7)j@Rk|z-s4^Zs?@wmyYzL^ys=D5U-p~$v3K>i*DwY0h@X?_~9Ei``;s6`DuUno|^&X*ZpNzVxESt*c7bm zsjLp#_C5hso{J$v`QtFtnSq2!AXZ4j+oUkoqGv1|Wp@KUSK9EHyGtOB zi88BngbDO9nwj`a4e+rUOtH+M#$N#Kz%h)*NjHwoAiYUG+8KjIc+*ceNS8sMD5oOJ z+dgl713*5);LX1pd^Y`1vrif~0S1`HCvFH(Zv+OTzs1@>iv2(3Ra6xb3`Rkz=f=Z;HL9n^ubzYu z)YRN7)G8A^wj$&;SfitFj+5!ASYax=9DlTyK4TO{M(ZlXQU7_7!1|(W@*(ukogvm|8g-J4U5(}eXjiFJ{ zC;DIT!Tt?!k*w1lmM${}po ztm+h8ST&dwy*YaAJhF@hAM~GAT`Gl!B|L-XEBN4TPpV~+@jxxjc#8xS+?!)cV0?u# zZNIRGXmEh-RKnq1=Vqd{$$vTp8cvQ-tLzRzjlXa!h~^uD)m z+i^PL+Y0~ac&!{qWp7ZUUzegzAHPA~BIOOXRg718!*4@fhvc}9IE|^?2o+V6bsYbR z&pp%ao!;8AJTk{tExmbq?H0LqIQE+M+AV5%B|)>EwF}!(Lo;5>??4U@r$mIm)1bhq z#(e2jW9;CV4YL~bK(Ub@L3ZylPc78j~%wWFHb{&vrc&Z2_8Iqy$pe3E2?uTS~|8-8#6<6rzoh`$05 zK)nZ6Uru|kEmI$0h-7{?cPeC7@DF1fK^vkY={lGGNQ(dQ{ht+h>3oFV7yMPdK2_z7yu1vrI@Q+-zFqf}wJ~MBv!3*y0jGz;>zC17 zh}TcMBSW*o-s{}`{-&8_N0o12TF<#2Z$fdKv689j|8?M)`S=K#^ z+6?qR!bh&aj%!+**5h4e^*Z<3jmdXAjGk?#BVNm-C2J>GO1pjkjUH2LbAIh9uH{`` zmA8@f*0X9y1&^`Vk{^X{$-G4Y9XUEoTB{0DJ`x zglH3rBR#2^!N{8#6k8-xBiVra&?QqNPk^;R&3l6W>%KtQRbWFe-a$S#`wZZ==J|Mv zfeh16$xqUWyQQBj|D@b&KPeT<(nwV=Z#^!&KVSA{(OacA7KP?*DHWYZyQH?XGvq6q z?U?bAX*7NNa`#znEmJ_a5#)w?D|pm3=NDDWbDgaoCyy0z(yo(TwKT#U^1rue*5P?; z|9VWj-oxYFHs;-N+vrgio6}*z`tSRKzSjRO@7W&+{lUNQnEh)u`|n6kL_TPr*&CFv z$diS^rhzyO1@Ska#S%(0Gh;+6MWCPnb+mCA_Wo$alu?L#wt6r-7)n}_H$8UcRnWI|Ow+x=574;p~unCfG5!>6_;vx+Cr_ zQ{@$I*}aDTR^A6sb)3Sjyrbb8Fseo9Np;hX26sPa_Y|<#hV|@q*=@g(V?))ICixp* z4C1mHK*lUmZ?bKGH_~jZXOxY##?Y&H2HikAXzaYgnL;AUi~=4c5}J`A%#6c1C;$|T zx=6vXVDNEj=ACCP;5Z26Ro7LNQ1dVNr~e$AV&?i7Zai${Dn<%|N2O>E^^g{t%2yQb z%Bi^svwC(#n0ekk@RT|UjKZ39xsfSFf2xCZ->kPb(9{XNlO*9A>hyk+c6m&;d1Sq4 z)1VNxOKVFDw^w47*Pv@H#3Y(UMwHw<+f9pggQli7KJoCEiJiqpP zA}ws2^IKR|0v6+vOnt!GA|20Cmlzc_qap|%wWc|iozPTLC|wDPZXYW2wpG(Yxkg34 zK9P>%JPdP6j7{I z$lNQ@T!&~(k*{5*QQA1mMJQChX+cNPLj31stGVr+#NF<46nYZ&+O5V?0HHSEMXW_# zW5p6~7i|mAl2ks7dz)*z?2SVI*Rr~^aJPDBOrt_wOnRyhQ&3GnIK+Uwq`FHYt z%vWyFz(zVa&zC*&$dEsIktj1LhDk;on?C`kf`yJ!TPFSZJNmXP_(fDvf3xM(p*!7cR?Q%-S*>|3GS#vVKn<&0;I{i!%AFha9=cg@$r7pP7#_6WPhVL$w@xsg1M~(S?c6C0q##XQ+7qAsCt>A_#SuF3Rte8D;N8#%;9W}p75%=aja_RC!?#-S3 zA4z*_>9t$bcDLgq(w|DOnD#=@Jssm?(`3!pO)~?J1o3=rNdh(1YPv-oYO2+6I~ZW3 z;xi2LfdL*yul8ijqQH!le%{E7w*jWHS+pmO{ss(F3^Rl5KwGf!k1&860lBs-b%Mr{ z3r4+Bo)MD(FzonQH-5y!cSj+~l-DS6nXJ~)D7}6U^;#bS)HTI%JmFCe4h--=mG zW_As#C0Q63g2v@Mw1l?rflySE*}C{RHp}|Q&@$fM(53HGO{{YoALq)tN`5o)Bg*Jb zwpq!jtV^oLqhS}bR-B={E*z~!vqDqyg*dSXDs2S5H(Dc9s&7eRj(A>b=aTt)&2wNU~#o4ez6(2T$f` zIsfAi{JUS0BlA1ri^flHyk5ITia)LBzvG-gtBdvLy#T5_BA%gl7!~{*07({kF22TW zs-ai%%sZ8iklgi*OSzhF**evj@LaT!Oh9hxyW~l^CQt-Yh$eaTp^)Q1pajJz zZ9OMzlbmGp=&{)hP$>_`I~<@Y=rbDrS*NzE?)iGpn*X`#=IGPD54~BQ8yr{~_kZov z+tv4WnO=L%9vxp#$B&Nr$asezXWf^+GgEiGdsacg^eBc z=|G5@@$8^PO}BWb13-R+WJGMv{|r1XTz^X-bA1H1|;KjLg1#rmGOiCgHw*x z*ozq5%~%U_45Y(g7(@v(%ISl>Kh|;xEg|0^HN^*njXYjYEw9JeG1IWL^&GhU(`$D- z(tQ@;J~w%FmEL8fXgg7uA8G!JFt^$6xil7)z71(Jr!DWMrrlE5n<0AcvyMJG^Jze2 zf&1%Tg!;4sJC?rw_Rrcn*K!~G>E8VP&ZT9^-<$b}-y`$yeJ&_-m;90WL|@%R&t%!$ zhi?$V^auX}zT)c~8-DP$nHJ+AmvKO*9=oU^q4CA4+*p$MC&TdER=T*GsE^k@r0RnEncsD7Hr2L$1hwKwIMyCBQ=f;@Uxl0jKB~n zyKo~wnPV^-5~M*gQV?+yAj&nyFd$L`*zALizY%zPLf|-XLqHn<^1B+?`~!g$8H{NT zFpSM$X5az+m`+XPbttG6JW75ZAZun)C0YXwC!fre$VvPP`lv5OO zeW=$uk>KV}ml31LF2Q3b9*OE2&OjGcC6K*+(2z%34c-&<$YZjbhe}vA*i^21bt$ru zu3hFws=UG|m@|29na;HAuA_=k`1a;BzqsI8oZGaKojP+8e#X3yoBA3n+~dxue*Vt_~TnXsd5A0 z`kosB@$3Ew+5q4NK4Z*s%Z)Ohs%Qag36q|${D~vc6BEhmA-(=sO?g8qxByRL*!)q& z1$2`O9bD9Io@ z9yemp#f&FLfCD>z=r{WAaLcB2&+KkG=Dj0`T!dRmWi#fvW!%y?)?P7Nrd_f|Jo!ny z2I)U3a$&DrM7^#|tJj`;pR@g;u!!kF`6Bzub7_WW?wOp$7564bUUD`ujw}t#`Ql7J zvjHZk5hrCA4p6S9UDU_aE$M(sMxM=n+yr=nJwHL40YRGp+$6Xv9t=~{XppbcQ3W%D z4TeE5(gaFjX#Hpngh@BXrf9CApgL;3axkUma-Q}zr6?VGH`8(H6(D(JqP#*Li^@z8 zKSBaw6p-;7nBF`fP^6HixK8tXcH{o&H_=wF~lJidy~{dWbNyY3$~lFe$I2I4Zn=LQ?0 z(EzgvARj?1Ga3khnsmW81K6Bn{OUhHNzgdMoBsh2^=|<1jfN=4^KSrX6TkqP!Wf@0 z#)yqSFfjLt5H+dEn~CG#K}TZ+;k97ar zpn2F16L(l!n>D#RrBjcMOuZIAX|xZ$Ibu{@zlKL6cP*;NIbM@CjAzeZO{XYyS3kvZ z>)e<@%j_|-8?|_nm4fbn$S;#lk}_GzdnMbaDF`2)#bDcOReNiG$1^B(HOFcwiwT7? zJ=c^ql>Fp#fGg778>OzP9*=SBTt4>GXtIwv;=3*uI58{b1e1YJU@kUD7iQpI~ z$_4U4RPqsg6LJ!0D;;B9Wmmyt46MzO>YxoWSaWECxhuKmm~Bfw%QBU&#-w`!OyC9v zuP+=1fEyRkk9g5P5qeARwR`l`k3Jqd>p7AppyBnGR z{r&6xeEkGpZ}lqxK@GqD+dmDhG3CqA&5>zN`=+-t;~qOWsx-g><5*`@L2t7F#Vu1KHW$mh~g zMz5VhbuC4gk)kcJr^w`z^l1hV0W@CZ7Uc9Hz3WgOqb6;-YO8u4of^2=v`mT=mxJvK*kK~0UdrDNgr!4;g z*MTtMdjumm4vYc9XeSE#N+u|;Q|e=`9CwW}_9>&X;XD*esAJ7#**{a&DSU_PAbi8x zzd{(ef#I7B+Sobqh8PIlWCB?p6UV`gqqeQbo9?x7JzjI}wOjLl1^J?+g#e4kEXJS8 zm_r_;c8giqEd*=c0c)BbdFV0Pu(6HR$Zl)TX_gHNdbFM*)X3f)vsK_2^&V!ek}A>K zf_0{>qIG)RWA?yItD!1IHB{AWt14ZIRl7Q7JuZXP{2trdw^fkG^HXiT7}pzK^?2d% zDgxE2*PkbT;LIjJHTdys{@?MFeZF>u_oVNs|Be-?;pe7$(CZb4-G}lpgxd!{Z=L4R zqc5~Tf*eKbFftRQkEvvl5v4unF~-Quz2@Q^Ulh~RDUEnw_9KDdLNS65#*;sHQ0#P+ zZZNdX+RSE}U`WB|9BW;iMk9Uc1quV2=8B z`&ZXbeu9@Go#2BTr_rfl*U-&GvqAFT$}63aOuI?;$+X+?pkdCJ>A`T>eYR{lcBa{= zhZcbfw#Tz=qaZ?C+m!a2_u7?7HkV{mSw>m%dunOgrrgx|^HHYDOkI-TPi*?s{|Q%b z4BxR~{E|@f{|zp~x5W3jut62n{Hv+Hut|=1PhEs`J-D2r{bh{t;~3*o>bS9RanOD! zF!PgdMzR@Wyhm)Be}tIK-1Yzf5CBO;K~$RZ3;nJmqE50I*w9~}s1q1RepjbIaD50h z|EvW>pe-E#3t-&fps(AL(#Cx?Zi4Z+uG=;#j$$PQ(!e^jF(E2=os=t9U`*l4jho>3 zj*UMz00wRVaB~N|&McVs#|bcD0CXP!>5N@JmaH>P!$>3);wYU1sX&r-nNqZQ^xAC( zX)6_4XlrjvN8gc|d>W!j>0Gi%M54@!3X-)j>d5eDnN%{pi^W_fM`11q1euCI z0^7LT%(f%9)Q_sG%$#FpTIxn##Rw8)D*hqZ%*+f*NZeX5TI!IQAif1gYKgmKdV4S2 zGFA@Txc0aFN4<^Q3L^u;C#;R`*qzBZJ_6R)R`YPkcnb{g>P&rb+v7kC*Ky3Pnl$IFQ4yQxQv{GCcOiNp2Z4vn)(B=SV}p4>CXVYYckr z8m=x{%w-{Pv*s!1u4&V_5@w$)_Ov|tlV=u2Bl88xvOB1;`PZla_JsJAac%$@HvsG_ zHs#y^IDJd{JuYlG&xAGsgfpAW-0WXY@6p6Sd5L6~{pR$?6hl;?Z?eCzvA&Ev6aM_8h|x zxN?0QC7)#@eNVd@h3{xL$-*cr{eFPt4&@uZ$CU^~q~9S7(*}U9GkCqhYY+eWr18cv z-bqG!-?8wNKq$h+KU&FmQM{EQxQ<3fFuM=ePHy6-HH%TM&>5p}2cs-I%qLSiYAPf? zo03jO>5?9Z}td?($#Z$@z;!$ zpw>yYhT66smwu(Ltc5l{H`3B1@)8Phw071?tm#U5JCBMHO3M~6n~bDaK)>!M3ZB^L zzvC78lJsjrU+?GZRp4tHn|}m-13;Ss+`RT*37}7)n?SO9NFTTcqJ@#>EHDwJQqD0@ z+I28=m)+9ne$QpBLedJ`k`*p(cEf2y)s8huwan9q%U=shK%m zJ0k0@rLnRL--UpcHT)=T9xeB#;Uk4dk{@;r&Nz$#kB$F9AlDp|!6;KT^UnuPRVM1>NPY7%Zul$5K`0uuV#U}C_ zBL51&4^ZQ;hFXpLrD)2}RvJ^$JnEP%jXBy5OGbP{$EdgL!}J>Zt8&77W%sg{=1VW-YSE`#(T&(K6o@jsQE9W z##^{HtjDECsVn)?hVLup!@Ec88CF8}I&|4}8LbqO#AS%Y$2Y!7pGnf?;k|SU6R+$P zryft5CN~A5dN$y=|Ja$eKX74re|1xk<~5nr&W&?9kkETBkJf+MO4p7zR>~wL&tZ8K zfn%IPuwqw=d-)iC-vL*B1K>yU?-8zi{R;XO0R5_feCj;axK3M- zY2FY~3f~TQ=5Z(M3)N}X40go#Z2~s4bPGG@*Se@J*`xDz$CF{_Tx8mXBk?|!Z`Z{B z$LOM1Sr0^f2xLGmqJiPGS*BO|FYztc zd>e`-#82~CQ;~0yeZw{WhOr9pItE@(hpsI*0KjV=NCRo)p8(!Fo8W!3sn7nET>v*4 zTql~L`(KX(-2Uk_Ydu0kOW4e~H0(^2&LV@&=jZix`gWR)TSy-Jo>On4dt$$m z&zqI}CW#vN$boh1ee6w*<$+|C>ubcUQoPBq_lms6?a^Mt-ipfQQFUtEiNNQ7y*@y{ z&(BZ(!xw<#OFDdophjOC0pROb&?o-`mmeuz38+E~dB;td!YnNB143w0`Adt(ZqH?OKjkp4xi&gOfYxzFyZ(&E~p( zE=4xxv{v_`2e|Lldh@(1k_r;o^zhSmHC@XZykwQoqAzUPL)_XwvSa2@fUd`2lJ&wFLE<9PI`_-w~}J1|G!21(#O7JSo! zpXP8Q0@{4=drS3V$4^|v+F@^$+W+qHp2Y3a?@o=ic$K^=(et%ruDJ75rHoN*N0vo^ zg&@Z4JRkG!O!5Y1Yb&@We`HDfa#YsUaILQ9bz1eU74;ZcyX6dqH~DE!s4w&4^`{k! z)2PMucr_b+S9O)5uBAIi6$g3^;_DB*k^dI)_xj%>1bxb{2LBs+=+l3027sUP%hopv zjPi}+hI;gD*fm6M-rN9?COc#**@&i4+Es;=5gjJcuyK~J&`{kky8klY%9%^m12prS zK3zuh2&0P_f$H5elAl1|yN+AFy9;VmaVtl|WfaL*7zI5{au5;RrJP8~yYjx%U11td zV~sn@=<-v(jGggc%luZ|A=fMVfFi~)Vg$y_HHZon?K-kgrZeZ1VZ_|6O_iE%6@tS03~$2#z7iT9o&y+lWff4T7Le0N!8ztqE>0!M~Bf zH+$Rw2);SNGH)JQy^M8Z&AQfV?Q7XIz8!P2ZE&rG4YQd@DQAL%gSB{-e0&TVF!Jd8 zX-%^XKk>2@7pd1tAlQCvgeHmFexn#*Y zJ+e0IQD0Z1nuVS$c`bTudu()_>X^N?ti@mW*9le}T3uiAf&3mdUB8>BNEB{kz2FL?uC=O_JY{Lk5!P1xD-W7-9A*9=YEQGmlxa5IDFRys{MM3qkgtqfW3RhQDs{xl?q9+ombQ`OFqZ)inL_ zxG?GyyOYk00K1rhO6`y194MWf9Nkfk*7~1 zf#Nx6kxMYzMSxrZD|lekVdF|F)@Evt)%xbVThqk=DekH%KzNf|{h#@|gQA z1e3Z}#c^FvJ*Iy&B-1z=<_)XQOLT9|TkFt0!-oX9k*zbwz3Xrz`*F1jiwJtv((463 zNe^tsv;lBoBX(h9bYTO2W}~ELT=eV>{ChU-!jCvV5n1*`nZRc4?2zs~F64zMdq4TQ zpKJ)lAug0n_<_FP(r!b(F=3F>yxE;ov8dk8h~~dD!8cfJyo3Ip!JtN5 z_zqV#=2v|KfQ|dr@t(4bAISfJKzZOj>Xdx6OLC60+-YGK7&q|#4$KieCqL~O_-2nA zV1XN9;D#8w?-bnm6DGfcorF6%+i72z`|DmFvzFO7%Xd2=NXoiz<1~$Q~pA08m|juxLJ**wB%<--2+wHX?!4A z)3qUNh&qe=^O_x*bHleGYQGG$4BuiE(-TBjsz#0N7t%)1hHqES*D|V0tjEgRl1biz z?J=$bJbG;&9j_|)(+@wRwZ3~XbdmIlwmu;x_(^0ap|7Ep<6fRGTtS%G^HX%ib8sho zc!%r2Cfhdv^au97WdkmJ2YnKMW;1?a({xU_Xv_xc!e&bHIp~w^q+ft~_a#-F2Ci(( zuBrLIvN^k|No0*-V6B`72EHr`C$1S`PX>F!2u=&aD0`;v*(fvG2pkvoqn*pl?T}-- z@0z`(c%+PP1O)e`Oq65E9U3PnegpvK0PW(~uttq`La8^!qpuO0G3X0{_N9N#D~{1l zaZ8=XLMa2+9w*j6B(QXUC%1U_tNS`DvoRN&1?ig|f%jhEy%%`RBfdp!&Rg_5>b~Rs z`W<2uPs)2JY=QS%sYm{M1Iz~p-v|!cj1V+=PD=OL8hp~U5nZ#9TzYO+VT5s^GRUUm zz_VA1@IZ2~n1wq9JhlpaU7eQubu+Z1H}fu6qWylU9kNHd%+TYtZPT2}wu@_{-)mIl z;dh^6J-gl9VUO?P>CYn^IPFQ^lcsq|9-V}RbcU?W>M}^V5F+764yI0$*?R2mjRkk6-`idyesWTyb`k;->fbxTBv~wbSj>u^ij6OKtPU zDGhG%Jpp=bfL#x=zK~e_ywSQoJk7%cE>;Fu$zf{>R6qA#lPb*ap|w5g`>7tcy`pp_ zWK@pl#)O-W4ZAVMCt#X2HtOiLYq<8_GA-9Xw@ix`p=SSTu@S$p0X};Z{R2Na7t$x_ z!;d)EI8oLE`6auTQ;O&Gd&c~hpRj*TyyIphHwV0V;U*>`$m{XHPp}^c*mtDgkbXG;?|83hBjN<$WB?BoKh680DU?&?EKz}NZDA;O zkwf0B*93hVfu9EXCezmleC)+<3H(4_c%P_vqV??peZydZ@8KI1zWMMif^Tr}6D2;z zVch&sZq-Jp8j?3Z)|=0I!RqmjQr9LohTIYB)l82Tvo^{71+QO|cC4e7&!aA*HD~6+ zrR_Y{j*-XPVSmW9N>&XOx*?+Yf%9dw*75ooQdVo-Wv`HZ5pp3&1+B@Gx|`%HC(7q` z=!J;SwcgD0xm^wZRln=c=kdT#`TdUoJ_A9v-AP8ncGb1C9*^!_Orx?YpyukKD!I#g zPA$JN=rX{}d^T9xHYHm=QMZxZBkpO=+(D-pT3jD)6|ogXzQT%4sVe!=yeS;D+sqN) z?Z}h%Mh+|9`Pt~zxBv~&Xnq$nWox>R>N;^8=ld$tW{ef#7@GQtk8$}7Luops%t)fB zm#r`gAHyiuy^(r-d+l0v9Pw?%>y;_5&};v2yPRB9pOBus0l(T;xbRa+-vD56nqGj_h{s-p!mf)wL{xxX5V4e`XK^ZvfSRa|0XD(j zaI*=HG~0=8*%dnZDh}aIJLxGyIw6nOXkp_qI97A+eDcYBn?7Oqe}xli3CU_Cy*2{m zLu&u$3Fh%Z#a#gI5C%R z0BC`XsR?|7pH>SnFC#BlrgLrAsF<6g2-9mFBS=8<*2g^U?Um@Oub6D{{-?)R6=d|- z*EX6@My=}~D+0XoJd;dO{>+5YXLe0X+a7)vugBq-O-vWhKG`Z<(omY`MiwQn@#7IQ z#PclrRM1R(_h5{tJ1$?jM&7#WY*1j7M^%)`zXAyZMClL z^p%+~3nYOs6Lt>dC)_aCHJ`x81MRgY862)3iZ85Nj2h!TDS#B?PtGz?{Sg=kpJb=H zBDbtgeq*o|#wf3#dq!BTg)V*=%*?slr=^`F!rZr~=DEj1Mk++O6-+iwNO;3pCf(~* z#d6jMka8ZB<)s9T5^g6UDL zFe4gvqpoIHf}IR34aNo>o<&Q4CFw;mN z%!Klv!;E7dqnUixFdB)WQF_l3{GJ{FI}t3_Z>%qQ?|+TJW_@b>i>98BmAU*qf;alK zsVGi-qbacY5Bf%deM?)u0rgFWcL11|H5kFcn;!9%HFW0ev@?clf#Uh0?9=msqU(}4 zXz1e`lVTwZooB@tNyzZxb(-2Q2sNh;j-|GX@;^7D$CvuFyJzVk>MqgFg!0Aa&z zU8P!tbqi?}-pu0lroal2Ee^#J3ef>pk>WkKJjX{x5j+=Fhz_yMc(I~GaTm@xW!A^EIv5(|Dte+S)Q?eb$ ztV|Agba>rivahUpf;aHh)6P8UawV3MxyK_%vs|-5%+e51(UwxtJ{Ie`5G21+Uh+vj zBUzv6O!?^ty=AT1WksfqDY?o|RAx%{$WewV`8sB)EBV^4HQsCAit!K`8)&aZC-Qj0 zm7fmAZvb!uVE7&{Y&x_Fpg*KHefq!l>Hhzsy|C1uPd~yjBr00`g54S?Y*=GO+m z6MQp*FN$#^AlBzoZa(y+cP(FJ6I~&rduB3Su^+_)b9kR-FusJyviEvNzaPxaUA6k`>fgV)TQt2R%u&ZJkqh$ncX zPI;j1s6qn#yq?6;7nO-=}W?Kn**a_wf_|(|d>qDfoDtgKs8XKBsYG;CuQJ+63UH zg8tS(urC2V#=#vD8y86R;7xv(um2B7+g*Nn4aU3^b3>gCJI%7W)3U_KFQd5JPr!7a zq4|@{kZIHCPa|BeMYHrrPqr1WT=eg_2_u3 z6Sy(I8|p>aM%`H?D$IQ(N$}=h&+&YI2jAED@AiKOT={$+eu#hk4}3lj&kP|SlKhA+ z>nwShtYFJ*OSckk6l(_K;1NvwMIbN0tqez|ax3;NeO+TczU5!&*QRkGWWINbEdA_} zy!}~@Sw6VNwM$SJ*|uv-Yu{tzwF%eqdVDPFr}wVsQ;&0nwY(l@y9RBUwqy<0=Hu*$ zZ!3q(6m*V|n&MT;H}yg2v;$7ebV48vYznT!7r3$!zYJgFa{BK7XYWrG-PV;XL3DwX zwCB-2=l%buz1Q`6sLZac?5tyZPeQL1ASe(7Nl?xvUz&Qi}A{pGF zZY=tQYDg5qaA16*tF4k4@QO~@0xbJ_e$`3mbRY$%29ANH1^<^0%{8Gn0PY;xXu>rHM|(CY zaWHkIN6x2l5D?}j;gkBR%@z;B(N3+=R_$WOsMD+DV8-^VX1?Uw5wyyg%m;mhrGZF6 zpZ{euS#W0H?714gPSMYDr_P%dT$SUi)mWH^0*TtPd!hpW{>T2fYM=n$UiIfa*jD}T z0nbE$B?P#d0NsnFgQ~QZhEbx4H$x>`CN1i)?zxwqTqO>3go$eej|Eqq)XAALid%1=x?>O8fIfIbMMe ztM{Tu8Py}S3NPF<2*1GxR|#d;gNXqJDZB#o6#=je0IZ7ApPitkjw+gu;w&vLVldZq z0e5RF?hYHS`feCZZy3;OrQKHD{~+DaAhcO>HG5D`+udq?+m)tA{X(QAWlLM_vqMAM z?L&ixzBncU+yxz_kBX&O!%=^~$$7Wh_krJo#zEBt`M|KE#tG&IJNFnJxz;g`C3t>V z0^q)Zdm@+^Q1Zel(V({l;#&lT(vc=KEQ|PKi{{TQTmox9Z{QwU$Sy7$VCw)S9O#q9 z$ZTTi@94Ry6>R8%&;pjh+OXsUr@I1}6!5&4cqZin9udli*%IUzA}=ol>b!#Iy$ZSr zF#qS~yF+gkQ(#5yRCMe=y(o;Oya2|S;K;E|iRE;&Tkr=ZTJ1!gBx@ekS;_}fC$*9* zGm`+#c>j`v>h9=veD@uQ8r*|zLVFW~!HsO0THt>5bt zWXNsKq-xXpkTtZ@{!lj+>SV<&Oo-TuaHI+>coet~x}kE$M>ja$ZYb6@<17z5*_!NN-w|794(3wdK>t@D^?i$#qVUoHVt*_XD+7J8 zKb8sKDOK4JPSJ4|**LCPPAQH3v7F*d=yT&s)ui=Ad{`BeK&tenAZh(Z1q`}9AErGY z+V_qt^6rv>d6xj->fc+d1V9Ylv$9e9nTY|FIRag;;=dW6`lGH#CK&E%=LY*GtP*I-Pm{*mENwz*1f-}7ezpy7(Y5&-haT{@VLEfA*%bAR2bGGrmq z6Nni0{#Gp)y^*h_dZZ;~%9@bJ)g?w6*G5>7-B1IQFShcpgbdG(=CMWd)WUsX`E`S4 zApy{IfxrE@AbB0zBam)-y3%-=WN`N_aMQqDGysEt*E;ah1sVrC7g#`lu~a?B(vUm; z1KXk2bxjm9+QFQnuRKw`<3p&uWpE4Ma22X~06KVzloc=t`6%)e6C7mQ(btk?nZ9qW3GEMX!~9gam+BknbOPGCvV2g$Eu3-e0Zn znswfL^@D)AhM-iPST`UH+Whe*9$rgJf z$x$r<7YWm)SV|~L$WF22jKm5XC4Wh?Da<_)F{k~EHvOrY{*o&vh?+V_!vSE8a2;^? z(}z~Xfy!EO`b8AjzjD*`(|quQvZ3zSc5EH7NlX}s$~R#^oM>cx(j|cZyOFR(aflPHtrjsYI?5om54+WvKWhYeTb?F|41_Gyq`tTVt5bm~w&hv{gsVcN&v_=r`6vU=%xsZf0{rcXDrcjo?qG4jdCzZI;^Km7K?6) zM>v+zQP9AhHUh1K&JQRF!$7=wXyBLta173yFB>#^1Aqa2Qv>^r0m=+`w`jQXFF2M5 zkgtCOfCv7PelP)m4S?1G4NIFVmBi8(FDlK?4D4BJs=s8ze2_ErQNcOyDNq8yaW%@_ z&`$;Md`N8r(DI?xz=u}S5D^mtY{!-VSn3S`uQv*uzPi(vyeQHfsROVfcUiC}Y*Rxm z(n-{*7$jk5sdNcg`YSMrBrJ(qzZetPIN0W9-P#qOW7JWA#v#P6USFb+!-Wue4yC9= z$o8SXt4Wv8HCGjq69z)j=74C&VMt-iiI-)vi6SJVQC0n#7Xy2(Jy~kh;vfSzM^Bt{ zfPncwyUsYflCFg`QoE^l&O!e~V>D=*7v3+|dO0`8L*|u`u$?8Aol? zC&im#SP9 zk|I@ww61oC33BLlp;+A4@+~U*i41Fe?vL;qp)-u-C!3q~IP)cInrOIzS~cu+atYSz zD{Q58HkY=NF`oPfu_D8vJFgYlSNfFdEb2=c&Q$+dcFyGP$!gL=lGclg7a59D#}K`p zdrAPb@Qw)pKCtf{699Z@e{XLYu-_98cx#_BJP+GS0z`~>C95O?%gEC_;=Q?N@P7l@ z+q)gzmk;uV_j{fnzQ0$6#~3nHY!s~E8nIB!VwN4?7+_hj%~jr(tM4sW;k6oXZvfcp zzhm%TgNA$!SNO-+D9Bg9uQCVe;VS?Q8rjxLGktN_&U|C+1J^pN{__Qi60N}Y(@8EJ zUs~@xsr9>-4-D~ZvUpH_}>Np1Vv*60Ut?G*} z*8kX2R`MG(qz$o!dtx8$=_>&4q5(DzXdTefC+A?7F>3zEYizN!MqziDk3%hC8xf_C zU=k04Ikp9OKk-cPc_tG*uXhXNV}Re6kMK=`mJhQ6X}kb%zytZ1NU#KebT>Ha&kd!r z=CE_AHJS&^ABuvpl$6$y|EW{R=}9|u7o19X=Bh3z=vlI6PY;#j?F9LXebIr`Zm5e* zkj7Z54j1~ZzG63$8WB=uX{QgzzjGoKVV_F;jJlsOGS`=indi0xhUdnDhMDfDr&EjR zzf?(D&mbUt?_5_G@9&4ypn-4f%gQ@ z2lhQbDE5pj1$`&~qq(-={Jptjpr0oI6wC_@=-UXjJ2WhbclHT~JJ?!*hrKl)oDu!6RYE~)k;zr)whzOQV}zlJAvlyey2B|7~Jn~;r9;+ZviL)!27Bf z^n-u50C?R9QeR--4RheP(r0?Vvox#v0kb z<7u~Me1l2t8o7Ml?%0NfR>GO}<&9r~`QBaNgZIIA2Iue1E#7!vd}|+he|%1$`(-`C zck>mP-*ZL&)`I>$^?%UT9y@qF#9MSR^lY(JHNHg4Ox1#V-um4o&@c$LSMwE=Kf3U0 z{uhVsS3;}vEH{RR!Fr%=NuNf8Erafjf^G)+E%i2c4$X}Nry7j~+yE44IhIpf+E;ac z7nnp6dK-gAPd%xU`gxL~PPnA6MC;hAihq4hji+hDN!7V{-N43k~gY8#|IvmiiOcldADDP|5p|x1<6e zf_V@0%>zbgBkhrWLTsnyJ^O?k-s5;cGe%N%$Z94fvr-O8H$`UZwGzaXP#$GaZF+O5y$&4gLUt( z7|`Dlyl43*=m-AbpSgn1RerYN72GqCs$clWmZ}#FE_74D+wq)QoMPh`*}^c78p1KQ z*BUyPji@J<3x0T>j~*=(pZb4Yw=6FhpkEO;ydUbG_`tyb32$wRXSUaXvdts)-BYi0 z-a<(Ry_T;BZQ1u#34ml!tUCI>FuXzcY@-1j0~1@B=jR{u9@sGWZyB)byZKut07B63 zuo(pV4HVc9pkRN1AY<~+&Q{zl!9Y8*$27b6uT!n~>&D2L-2_VW_! zd!<#7WGq!LA@;|z#8aXfzwH=@f)#Ehz7cKZeATnpI*@uaCnL)O`MZKOjZ{SiI-#zp z5a?OrN1XR9?d>?hybsxT`=2cM_YC?2p5eU`0lasC4<=y361;bJ7i?GbdIyz)UvsmO z$`(Y^?)iG9aF~OkM@#_x!301+cmv=LZ_O1SfVXB;x`%MQzdH6Muvt-?i!kPOkcGIjnM;f5vt-s;tUdxsFHhnE$Nq{Z^uw`Jswbg&e zz`p|%0-F?hKUe-Y#FkJpVWY&t9qnB^@FRz@hO^`Y7aqZZ5v~kmfAU+%$m6D%O2|0H zl99l~bZ;Pm!D|Fr_@yy8Ws;Gc;$ zw46AB1u}TH1$r~T)$+}28TER(v2%z301yC4L_t(+NaMpYgLdzDp(?=Veem!b0uMO6 z5%9=*2l6RVV114&|BifCDgkg6bb|B10n>HvaR3Q+I^`uQ{wPzyWi0VfTjMA0;@FNe zIUeAca-8O6se+{fX<1LlA=w0RUaTZb(#6*D7LowVM^*ZlwM}y@TL`kXd~uvXig76` z;m7@0iCbhEln%~0aED|5C|N0{k*q<5TKSFWLC~$^r&^R&uh_;=Pvlxx>LU)ir|As< zTr<$;D*ryN_-7?}-}1a)SptCfb2N}Iix%ZxgqS%f*%j2BLlARtWLkzB@;N~MO#$7X z{LuLo(ZtvPRoWW>?L8k(x$@ONg>{lv(2AAGu0Tq9lPYH-X^pDI?w~yF>g%Cvq^62+ zifomEjH!1zqt7&#M3(wzRG+8oGv@FVodelHV=&%y-un79`#|=j#-xqd5z7fH3*8e^ zLvlahAsKVJ=lU`=M>l_l4LO(EN$cw4BzP`8D+u3n8G6rEst-n`AI%N#hj$2H0pJRL z`^yQGw%jFvTz%a>KhZB-ML{OAX~s) zIB@7_l>p$P-iE>YhO74aaXt&+72Gokupzb)4D8j{w!iKVK{La071psiD z4$OnV(KcfPxMpsI6Mfwnu;y<{Wf zxGQv>&6gR&GhG!P*0CfuT+4aAXn^YmjtKy#;GMz0y#c`B--3I+0WiQ8F8*%J5Oq7EZq_a7n$=zonfG(a^x4O^S1GTUD~aI4gIKt7W_wdfo@^ ze*|bA5rY2*mH}X}4<-eM;0R~rFw=6)1i&5fM1)m;t^9|#07UEF0I;tB zY^d3FU~%N8;Cos$)vx+AC;IU(@uB~lI^Uc4`oGHW8$P_ouK?JSSTD~?!B~Mr#=;g3 zY@uV3RFXXV2i>9w&_H`WPq*L$9# zWTQkokF}q#r8Jg|rq}P41laT5x93CZhr7gkqc;HVSUxcDe?(aQ=Y6sjp1XD^-4nia=-FIv05sRm{(HX7152&` zD*+%dfL9>DRY@qIH!#582qhYm0GkLV3Y1J}rPmSw4vH~2<>1uAwGPYE;BeBP#w%{^acw^{){>yDx=w@hIMngA!m0)}0anwt~NbQ>kD+CIS9n z(4XULfu^qwFaaQ4&~E@R0f1e@bG-p*3ynknOo#Gc?KIT#m93;y`h*QQ5yUkE_dDXD zhXwwv+K=#Uhlb?<>W^R&z;Q*52~W5kpe$cHXh+hq+bOcg+FU6&x>Q!m57}KhbHlFR zz2%N`@JO-V*m>u_S9^4&Jf6C%Hni|E7GO*F9ic6js;|d<5}-z3Za;6==s55+hbpk=K;QY~_rfH= zkM;?FZT=ws?4WwU_suh2+IzgYD}3;Y%^!I%QrlDY((p>ODftoo6yZ~3M~+Mrev+AK z2hyJ3%9+%$rTW9W`Jx%~anT+_}aq1W?UvmYj0{)Ae(*U=PG z+El%kZy?XRwQB(d=z50MiaA|G%jfEr!SsefdJM|9U(vsszhyukQ7jpl_w+9gEm!;P zyZQW#bo~5tJ7+fa*@?zsbkUGhMML3FvLiBQhuereAS^N*xL2?qgktR^;i%+%<>^ll zpXke}b5%GQ3Z&BpaHK+s2}{PsBcyyS8(QtZaBzC7KyLy(kfH^P2Y@E*SD5(KU* zV|!GRmk9*#Zr~*!ZcMCiXkOqv&;}c4*^0wCi{^PHnyGmX_3DLbm1jhq;WHXsujUX|lHlkNe0Sn+&l zu^;e@0sRw${R8yle!dUvC36^it}$^csn&6sz(KV&ZC9dMN2)iiTW7MH>r2?O>Xel3 znmy~DH|TfXTwnP_`JD-XZ<{~yjY)t|svhvYea1_Bhc`ZbDgl7WGec$tEdTWrGv@ER zsHJ$(l3ul?imC(>rc-1SHMP}&xj~~=!x{MI?2Zr984MnwV$R3Hd6}{=pG#*LWNNTD zywpZoC-b5#dDd)e^sV7t<3q~3!iIu>I3@rDMxuMSWAgD53fABFuo%9d&!C?7t&j{T z)Em+aObT?t{~PaR2GZY}N9wyL?uZ-ezalO|0)RGAIG>RJ@ep#$sm1nz?@%i;c0|Yd zQUbsh=C**IftxGG1c1Ya32WwM5dwL1rL)pj=a~f9e06?NrpyID?NHdD&6wLKas7yuDdSvI^#_G5%2}CaS39)^SveTzR$W;!K040W8 zU`2a&9twJTUrzO7#_&v6!J{E*AUkLb`D$B7sBjI1wvN|p11JG-+d=`nd)UA+n0E~9 zE%?vhCQv&j1R{^#K#+`*2-F28=Rmc!?w^Y<9QN**cSTvZBRPUeRNlAYt{J%Bq7VLg z|6Z!Y-2+^hk}TX6JtZRDol5*8)5CP z)3;Xam-C;&Z$8J9X|{XKQA;dQ^LzpQ9TGr6Htf}tW4b5jTp0X9cdo72mNP=J zb4U#Lmmw`}4b{jw-c$VrS(qS8clhzZKq-q?tONd>SPt>fblTZTSt+~W2Z?yIX!1fQW{{Mf7 zKL@Y`K%)ocE9k8OigJp=KHTbJow}DcO^Pt!i}EVf;ow|=TC3qGA+T7zNlsWTc)9?G z%y9!UUjq228H!+Y{Z>*OX-nEpGQ6aGp}*G0!t6Qc;GA195W6+VSYJ^}{VE%&9ST>= z7JQ;OO2}DdGD3Z+jM|@tXs1%Y*I+mwN&ec-I z4FKxDc4+vSDtnxAxYogf4Triv4Na)y9&^=A;#h8qB432quW>{~+GHug5+(&II#T1Q z?o3o&8HrCeq@*3GE_SWmP7&8}N?loHyV7taThX-1YFF%CPn0U5R1zQB<`vY(KtC^I62MBzsQ-BjP#)Cfb`78egXUkLDcvpy5KVn4L=zm~oST69 z#z6OHhn+j!#X3?}xX`A4-8*475eDw=ioyRa!tVy?_X1|%*hl!Ldjo*?l%(W@GDoC}V-Dhz zIp?^af|$+)-ZR2OkrdLVO@1sz6F5HdanDDn@m?H4FXcCE^4_910KjCSFT4S;7fpRk z65xU^NQPqBMzi+uI-E24KoRl|>48RaKMK_c=$#x;M~#x+Xfk3B8jY zyY8BZe|u(A^#;HT69C^gPteN$Ut1;t5`1G_UjcaKL-(7z<_g)4`l*fnaEq$yN{Ur6 z4)_L*W$~5l1BIu^4ip{HIKuX)&Hs}7s|_zHT9u`Az%!PT z0B`Lx1N~=&;6KQ{QU0xcWZjOPyb|q@339!W8z>F-vH2e^Sj^cYPOEg?hc%G==osE zy-9lY01FyUku9j}Nv^N`f{Kg_D@>Q>p{J#~(t4%-BSeatdw+_(1>zBgj}QSmp{~HW z{%Z9#4vyClF8H{`ReN{aazUGj2>=H4HE#gm3xi!jNdqPkKwaQ{fVaitM&!Vm;SN)O z<-XEAAUqzYdZMiBZh0!ZHvpKpg}Y@E;9(vv?`P7$-2lArdp*GOGXQp9Zb@r67OeV< z9v&Xy%i`m)mHAR?I!6aP2aefGr4#6iPH0x5pl)^p#3oC$e?sx}uzl#%J2{OPFC9bp=z}3#0BL;lP<%3v~tmBcaeWAUA1C zt7`AfC0@Ct^n(w{e{KH2Uz7od+;b#Tdo(JDKggb6@~w% z#1qE6<`A59c7B%O6XqtKrpJwY%>Z*J^Y)AfBi0dNT6hKPw36Sj$DXD*I0pZoQK)AW z91{THD**Rc3i@ApKP%%4UR&WAN+i5-rRlvryaDjxE+AW;HvPg0U_ghdfu+>4S)?lqrL)9WqKWsP4W)S~(H73r!L%K7EC&jH_eM6rta-BcHTv|F z#RP!UwRGLWF?e@+{a<+6!ZE0~1i;rFTn=0L-vV0sk9g+AXuknK#qkY*BL?EC&J%Zp z<|v||Uv=pq>?XnmBL(oyEj$yq;eQo)WIcn++g!PGcku3-P-gOiCFjMSKU*5%TvUyR ztVe8Xk^s&fVIYcRvY}bL$fLymHz0`s01yC4L_t(PPZ=g-cDxlVv+_T$vv5pD&W{M6 z;$D8fPFtPssdFqFb1_OSXv)M293=6csHC92-_Ha9yne_p!0(^Aq935&0DySJYstf8 zOjUMh>dafXx1`2Z7nTi`xsow0sL)+AW6@1JqJifVpMb7Z{g5cQ#Y_8uZ<{apzWHkS z)_!F>;JfI2@YdG}ezcGHLEaZWt-dwacy||ku-;I=%k2NFSvv#2)y$pZ%qg<9lXWUz z(Z}-TH(pVg;;VJ4XuMYVC-d>%!3RC9oWJv7?X9`PE3f??&12VoVp)kO!v{va?*FbJ zoez*7mVmr~*F&J9W8R~n(rLb?;rXB#0oD&_fI&OzK;ch)L-K&ahJy8m)+Dbk1 z3gGRJ!8!;RUfJi0`?iCvzFQsG^0O;|e4;5Ze{vR_+xPwT-*R)6US9!_ekBAr?a=Tw z4FzCCbM#+mSVpKVsI5|9_sQF-dVHk^wS1N8{vK@ql!N{~4$YdWcf1I=^|u&ZV}fWZ zOOOod;kqVc%VBR=UNmq_CP2vqy-A=XLI)^8@XQ;Jfe*&|ih=src1k$hZ-VTOdZdpk zr?>F{$CMx)9%Ms3>`R=q*-t=H*Emyp-qy{_Zg4w*H#_h26#yjzt^s})z}_ghXCh$+ zj(tu^1c3<%r$hqv*>4FnSpQcV-+C=e63*sjiR&lzyRn_0GYez8pF=reG=;hO93RiC z^@I_h=16hAQg6htp$)yR&+FXtp~pY+@jAf!2L|?n+PtQ*U0B%w5j{_jf*ZzVgQVW23JM{DHqVf8wug2h}@#V`9J(1YIKFg%9tq%?%R( zm)KX|c)fh>kk&iW?_TIw3N?P#@^!javUgHvE>3ac6xlNmV^Uqw$EEWy_Q!Hkd(u%f zl=T1pRnH;p`Jnc}1m8Qa^EbQRpSocGnI+ML757)(6Ke6+JmIZn@}PNS`2el_fA9fr z&xgUiB5h3#ZL3&=;?XG*OIi;G54Dbu1i3}`z*{BS8(_oFFALuJd1b-<7jR|%fZbO> zD6Z7AZ<{0mTK!NT^)Z)<_R^u@bF6D=6jOf_^dm$jG)D2o&7Mw*#!) z!CARwsd|S$b^v)n8QivjbWqpy?2ZRGrVOPI52J_LkmJY}$L-Mq{A__^K)?im-Ua|a zW4vQ9&(9e&5A5g7)g9nj7dTO{e(@N1^K=XSDt;F4(m|{BqcFI0 zsa|&B^DUK+=(1M zx6L2;#^C=OgZ?4D;u{kH-&?&Q@C@<3wD)-9P5XmS#UH$xd*0YP%?pLR7v|Z-A$cgLhVmQ!Drd8vRRNV%Soe9?mY)p+J%8G`KO7s zi$p!*h){b8;$7lVzZp_x1~oi0;-#*rQf2I4>#}51aIQSB>koH{4_@bQ?E_xhC%iV# zu(DOT7L;!v@!C8>`jk|#1VD3zJtJ&od_C>PA;i+NBCwd<#3KxtMugCt4mH$W!7_}- zX+XngZr?8yZ^)`5?rT(~9kag9Q?#Pblg*hA3qbQC^0H*j`%} z^y&UprLu~t>`=9hl6dZOiRWk0R`?>;bGo%O{oNd^KuhL}##ZqiSM$M@eSGDOri1H) ze`u4KpoP>Ck39~$)3**_WZ!{X_zTUTHJ!B0~@`C`F$WAQInRI zesVm#=UY~l31IJ-S#9|6&jf&XTn%gV z{;4O7EAB-Ja4aHN{gllmejH^W9>k-B0UbYw@E28SCb%3Mh){1tM><0x8v()6!S)%H zcPfHT?K{F`!STh3V0G<~B{He{OdWF1{5nFPW*|c1@>fv(tQaXxt)`a5xM5I#$%D`9 z98B=}C)QIi*+-fOuV;G$fcHU98LE+17Pe_#dXOT`0os$Wu+?!*D3K#V(jCs}u#aTN z11H3`l>kCPy}pv0f-xL+L7SKZ%{gi#s5TI^S9gL&v>uK%fkkoa`n1CL&ZpW}y#dfB zZvZd>U~d9+rIG>Pl>pd$fqqlq2YFw31Mc4d;8UybpIVC+R}nR?D3I18?YOcV^k5b% zHAT@S_FBG@o{}s-z$2?Z$YcGirR)ls(m3xbg{=F~EXW=@(^{$}t*1Pv)l;o~-TbrN zY04L+*VluC;_0a0JO+`O5IQEnE4y=i6Br$(iukPBGEk3i z0Brf0wdH5n_6r#NgTeg_;&=3w4EW-h1aM3M0GoT**9nwZXf7SxmS_|Eo!^l%DBYm- zISttmK1cglYiYbC+CVZo7)y30Rkp_4qRz2M9VIoK*6XClT-3oW(ECbgj`p!XmLrB~ zf*vre_Xt^&i@Q&o*l1v(Ozo%jg4jZLL86W{HHDF`xh7oe;4T{Ah8H}8dH1}5>wYUh z!G8?)V<}p|&VFwIlIh<7$XrXumew=2+NKku?Et!tCVMN~jDCot#1oLt%$Y%FVX&Vd^og`MqLS+Ti}HR9#%!HBV*j2u;*aJMuk9^1)_%eF_KA4pL;pSA7#O@a7ufU0>!&=6#!e{x39>;n8MG1dwh_y_ zTGm>=l9fu?aFZ)3I4`YwzAOD^s_(oGR%#35$eqmFmC9z>j@5arT<6S*;+>Xq!JD?{ z()XSZR`0yd-}(f=GxQdKg8$c+^;LL+5&*C5Bi`BvgS`RZu6YmH@d2=dY3RT=ra=xA6=APWENRG0l&cvvKDN^0t@)r)tOGXFRi(ye|7%8cT^* zCtWXD)>opIk5h^BINDi!u2s_WsiJF>4>%UwGkNE^a?&CE(m$_pFWfN^aLvInS&$_F zNGxp9eIUE+dXGIWR=P58cjR*63*=;Rw$QttRI*Xf;wHw|6nHVgi^HFTCzIz*({r-- zeDW-UD}f5~g%94eKP)J?f)W5P3=DqoVP0*Q5e%L-Po|c5mRdXf&0PuDTH0Rz5&K{P)g> zs}El9vZGh@b-fC@UwGaxtmM68O$oc-G`#mjXgrQ{EU@Ueyxn(9S13Za&}^JNUot<5 zmWxaZ+&8y?1@3X>o}WS6B3$@kKlPDUf%=9)`bN*F)MbG>KcC!=HnsrsB#_Nn@bhob z-%zgYz&fXd4S=^}O#gjik2^v4DY7S+4Wjvdl5K9G?;l`4deHcU!HsPE4d(3=rlC0M z&pfxKJECEw?ZA5%Vtr83!`K$jjyI0$2JV(O7bXLoei%@A+@h~rdjqE*7`$gm;BEsb zad6qd{`&Jf3kJlPk^=d?itkcy7ZFcgOgor(iNfWJFUxB#KE=l+zhFol5mnM2RA~kcu|!Y1N*W2@py*g zje0eMvEG;Fj_m>|sRlyro`Rk?UOo7Spnc0gzg(_ifx zW5C}&<0Zr7ihc9U>yjYLW8zvVn;2Gu0E@=Az9Qjumr03_#g0_OxNJ6KU z1={?aYIY9HHA1h~4}yRFGXED~I|qGdUn}}tx!*7ez-fh&2uda>slcfRrv!HEs&Ncw z_=_seZSNF)r^v?fN_LG54=O=E`I(v#}1(Z^c>00KsaS+8Em*meqKGm zHw;1=-nI}t9OZHIBO)+-(AYKF~2 zOSW|n5TJ&-q+|-}A3=FCuGaC%de5ick7kPx2Jo+3%~w$Woq@x*_7CJ=9SH3|p#C52 z6JB^jer@mY##P04KA9_ckv`u$HZpuXA&xcC!0Ag`Gu47@iQAJXuvovzMnosAXE32_ z!lotT0smxEVD-37Iu|6x5;0&EaX_eTP*5kKuqdL@2?-;`Z9WoGsp_1Aa|B$e`$*bY zSLR*NE4Bzx$P|9Nffc)T<)xT9q;ef;vf%i9cP;MS1wLF@{eNq2d2KPt);{7z*IWCA z^H-|7n=>9PE`Ifz`NCPUnAwrp$Q< zL*!X19l)spZ&6U7u3y$~?R)zUTFKu&IqVqJ?-<;V0sAihj=_I~{dnIKC=0ZFR^+XV zdL0@i7xa190yR^DWB=Si5Hd7q78%-me-st>`njclvt3A3Ip7dIXaIPW|>az}6A~kc?!dqouNf^UgVNJM?I%!hteb zbCW&G9s0~P*!%{52mMpsao54JueLcqZ69 zuQLN5lKc?i)&3{0{tJ3rK(F@mIx8mHq(7o$|3LGsjv)#=2AgQYfLPU#lrUf}x;G|D zPAJMo_O8_Q+uVy;LKCq2i2B4wNG?S~THTf?DGC(&Jw5ci*=p5M0sEde+;?VN-xwUc z4Bi0v6Mt<|{DE(qKk%J_$B*`rfyDz}7^J*XPVyhjy6%}!@aKN@N|T!n&UfutcFl27 zkR3A(Z*Pk_a|Hz(K2?&|bJ?U_$##&CUEx4kSNkcl>8QGTt=(F_RilndV|h6Cop(Xo zp*ytMsT-~uI<{=8T1GBg=IW_l*CTJDdu;K+2bT{fJ5Om=8nPpBk>Fc{lW{c zznAtIhNdfHJ1JjTe`$h>*lg&>)*-wBuwhI~D9{(U`ak&X0MV2Hc-{a{ zguX7I9}m>m0Co;2BmkUqomrOLx<*wI*<)EH6q(Yg?CP$+N4btmW%pU6Y%f0p!RJx% zvkH73Rq(GQKmdaj1^Ue+6z~V|L%<0SP|^VIishEN8{+W!ZjIuua}2R0lOy8R)#K;C zu_dgLEtVa7KgviSm0}b|9R)%y-$>N=ehgF$8Y7{e(2u#Nlq;#av|i?3rbZp14EtrN zA%~=dA@!466$XvPcIb}{CjUHp1Qx|D^x5T2o!rP3_N;_WO(C?nmy8I!cX%cM^eR8} z2EaXodtO7H*OuXl?E}K5C6!6}glDo^uyKmMQ)DN7EOiw8 zF0mD9)v|@rxB{(cERnuSN82I08Bt{`7F5M=aCWsafRQ?FBq--8~qQ_ z9k%@Z+S~)J-Z157nDjRM9OLwZw?v#ff7uNsDI9>LS(^K_dv!h6zo4MRp40NSR8E}_ zC0_CWv!gU$CEDL&p3d#~ne|PcgIPz`{AE)wKel}A(<;7R=hy0fY4u-k0WbjoK|I3a z7LW{OanbM|CS`|_I5%wLg!@gd33Gp?Lpq{KV?;x3gx!c4#PhSt^D`?1{=8{70in&C zzhj#StN)Ks3CBRj@usdMf<22;CAX1T(!!Sau`^f-$vv!r)L77djr6GuBdokPw1e! z=fhP3djnwq#H0YPH6{S`6#$rgi_iV@pR4{1+Vj~S-EvpjXjbwc$u748JfC_!m%lup zfcMxi5D^%Va8**lLckUuyg9$S9X_;5=`QikmC84FgI9YK;0`ZL3jAmv@qd5I_3jQ!>XK>6|7Yn%lb;xG40e7r^>;9Mkbr; z{6>NfCN_+VtZ=QZce{)X2^fZ9EHz3R6&`gYH|h0)bdn&$(Nw`*Ltmt>qt z)dn4RIX!PjzO)pNKoc|tUczYjeA+V6%%Rz9_X@rhyw_mE=e!MreFFn_1^)tXKZt?5 z^mBMH&=#jF)cN^lG?k*OjA&uL$wwYyHW2>gd#HWl-UFYg{hwB~KVjsj9QRXXCtc15 zleZ@Y|JCt3&Oq@T$%tw;+_l7}!A8yUJ*1tlvWO;*~jSJ+pKJlZXEkNE%53BG246-#&XDka`VZII>uJPcsfwu`mvjY_T>xcWc zOfc{I6?zY=s~zzb!`1s|V9P|b5&|WKfP#Mo{d!YCUmf_e9sY)Z`pAQu z7N86y%V$q7T>@40@vQ1N`<;rPV8uzNrLfJdJP-T2R_7zE?zES5SCdfA_^> zYXHj*4E(nO69L;COd3c|^7^m)q>IyIZx(23Y!Ht2&bdk76i&AjH0azmu*qrD^cmPZ zYBOC@bcA#+mbatIbWS2|O&R6a$fUfIPur#Xl(IhLVJ_qp#b3BuMYX(zL za-_#s*0X#2S^=d{08Snu_UPv{9}s7PM|-E>dAVVOGabbn0}0ANt>^kabf zS^yIOh)@!s1JoxTy#>GofM){0ONY>KxaOZqBH1)cLP9#Js-SKJ9uxgImfZtoEJb4N zAa@|jZKrwF2ZCdO&gV$)?w~+k2*Er*NZg~*`Zk|gy+L#aP)<1TdA3cD0xYLsNvoy& zK;r@!^wxpl;0NRbxI`t17NZXT>>Ed7kxaBJ5{0BkXRj4NHojTaMn_K1zAiXnqcmhjHqDX7kmflz2KBJW`KEXL0j-X@@+J-h+nE$H7d z*dKsF|1L%BXR>PX*TKOXXCrm96EI&Z8kC5uK8(*-?LOajH*} zUp;~-q*9=Q;`z|^vHN`6gieu#V+}b9^Zts4W$WNJ#3c##20#m^AfLg1`o9N&ZNWYA zhO7htlLcS`09yyN4xl)s*B$HBiE_nblIWc2?_IVE$LI9nz`%wH05lAS2zvt{mhKUK z+wsGNZFKN#d)5y~-vE$KB><@30x#MM6GulK(QS@(Ze6P@L~zi*j!<2Mp@+Q!u4=)^ z=wc<5&b)A;!FpGzFFH|2SywM*oHjKS;%4oz)7XU2`i#BVp0^Nr+#=_^o>&UURX4eP#Vs-Tj;9pB{fv9`^A7JtdJh%N5gZqH~hx%f92-N>mg}(4HWh0v7(n z6S2U`ZgH|GZn00LkTW^mcQ-tSJI=jc{Xbg*pkyt#eq`HoI=yT0VFA$vS1T_WwA|pe zy~7IwqVEjmzjto{=q-S6G4St${y%V_g}P*3^g1hfTYe zQf+7H_bQ6VE_IQPyA8n4XwT13&jqEhg8#tJ@B~`%cS+klqE85@FM+-S;2i@ccS9Xl z0GI%ve(-q!To}M8SR%{9=4_G|m3c zjpb}^^|8tg=Laiq2YwfdesAp&tEht5RJIKC^)`ym%UjlYPJ2Eqf$&dk^Sri_b##br z@_GAR06v)6R{;1hW#@7OK)NF^{U?^Z*XM-LcBV7bwYPT8o43Wd3N;GcjK;aXX|Yq%e(xEvc!S0zC;-&hg0||_CEa;Dr!?mTqsMR@ zcy93nJsg|v+;NvYX4gDdZg{TTCb+|^j97E2%>XfQHXb zEunSc%X2Q@f(z}wAPW~Vxxd=;KP_O6ng$M1?w(LV=u`#ujYXEyT za4b`>S+(WYMc%GbvYN@s)l8~D$~b14CkfB!O}f_2j2w#4G2*eZ$G?M*KiA=8v4e2vx0qR!9I`8<&L)!mKVGS z?|2-x2k3|#>(A+O^tD&g*ZWG}RjL#xBfau_HGKsNdOjFPy){>OWq|&|;Os~Hh#&0} zzPDfSZA0iyg7z!EvHVVaYyY&my=AcZgFGFqkM*q7TM6H}IxC$@Bv`OWTkl;WK=v)r ze&$RJG zJkstxaZ5jx2)M%DT|oZXIpT*y&6<6u=mKollZTaJ-+1DRY(q`f@|<6*q&u(kIl%V3 z+i>ck;9o&D^BUOj^GU(`mdWIcFCM$+4ytoierF)fNUGPEK5>$V&bcoMQVF+1%$;S6YvJrySZ^ z*;>Bn)3Igg-2Pd%kM+59OqO)58B@>OSAzDU-Ha!24)+x-s{~f-8)~0y6~~uww`5QN z&jf%|fUo}@KyL*I&s*TjF5r0w$GRiUvCm5Kx*I;MDha@cSvcyF>aI}rXq-a_jTfi2 zNF;OBM#tg@qXH~<$&c@Acy~kG5_iNy27YKde(-@MVySw7C*70o$#eLs0d;_xb<$xa zgFo7Uy8`&E0X_#oAD;4s&!^z?X@CPDfPb-Mb#c?AL@Y7~hBfMgM8A)xN>3P6j!?W( zB)vsy)C2QLBkc?IuuoVDRXSq>WNF8uAy3`J;U_8?yD*+(35U9Rp2XM0@(; zd874KYBf6e2sQpY;Nj=5;lcxk`j zg?#!B{}0v!g3cG7gJz4#hBuy@Z|=r?`Jhkok6|ru;2OhlY&y(BPgNtLCr(tvH|nae zF_H-c&x0a_miC?>4g@`C7wpn(NN-`!7)k(W#a=7<+s7`*kKf6+Am7810#=6w|4IPp z$NhRddF&`F`OQ6Ni3tVi<)uXG?%f9pnVM@j&h9jvS7Nw5}An ztIihU69!BoM6g39%{J@(7W=bO^D0u$x27V&0;F?|nzg((zOs;O*~tWeyKcA$-NHR? zi4B|reFgn0zwW~S9H4rnF$sW&EpXccmo41ZK~rd;DVKoNsx6hVI(MdTs-#wSA%acY z(it{Fx>IM`UQ;(&J)5+Y+QRc0(Ys5QS42zz+_TPLj=?-95)p^M{*nDd1fC}-h>Lsx zlLJnC(j}b?68Ws*-8K1Wlh3A}02fD4OaM59zgUJ=+^19xDtSOEv-iyOW%P-+zO=FH7KQV zgp@Gg9yTW&S__@#T_}3VRd38E%qM#3rFAR+!B-TlF5=fW1kGE9!u3f4~gLgBV&KY zvYv-?kBz-f{l?Y!R|a@5%>x7UNBn4?h%flgVD207ovZqWLV#~?0V5Y=Vz6^v%lkK%}#-S_q~0s@(VjA z1XK#vAKwfRA3xW&EVn8tuQv(wMgcD|-r#7`Vfe>mj~>G=$k|9r>ydU$S*xd(Z;cOg zym1bYPtcrD(s!g-q9LnFVMNxIHs!bZEZ(%EqApp%Smc7R#FzG;a-3^rYxz>Y z*49fl1~g8L=2}>*`(%FFF6j`t=uhH!QZ1?IX|;UuTr<0Jpw}?0^!ij0hTW@MQX!aN zU$NGw>`Fsx9o)_VSNz<%-M}%ZcMR?g3i!3^FLZT$;lnAD08qPo0|0shU`rhh5$7@) zfT&5cSS|C2DilRV#6`|irnr}tl@^}QB5*svT@YH8=Le)?Fz2*V&sBc+NS=s?q%NA; zV}wKiKOmVr@P>QJF{oo5(hIKca@9E4q-{PYdkg+~?5u16`|x%wBUsHg^@tQp)g$_0 zMnYbegmRvVwk|JWqI*Pkb}qRQJta)(o0m#8us#^{pux`iZS0G@h{r_7XhUVZe)tRv z3(|SsSipV<4<2Xm+(-cMfvE@2i@qM|q8%U|dZPgTk`IBj<7FS+Us~@-c~Ka8fs{)X z+79twp>vXy%BVic$PV=jpe1B~E^F5`70~y5bAz7ilY*{aJ_sVkQgwp}mH^m5um4-% ze|rff0&vCSc0u~+4FHo|*imt3zh}(bY3203000mGNkl`yMspqi1# z2XC(L?uvokE$j_|_7UG(t^PlAW&bPjC;F9t1^J^Sz@NrriGWexANa=L@VfIT=`+gw+r$a{J*f>BWnlVFa28s zJzpwAoiEK3&y@#)=Zm{#@UQdbIyqk&&ZPWjF+SNz9ByI}hSZ5xk+HLti4$#?c!93f#B+ywPg^#aDk=^=I&JLBC2O^nv|=(HZ>j_?fj8C@($I zrv!i!4265Ryy)P%@{@~x@QIyTS|YNxTF<|79#*n1`%$UT<$QU2#?mRWGirZ&SLwVd zIZ?}3lC7oH+8E7!t$}0sYR-ug4+q1o%3>{Fe)B1rmBDI#Vm=l>!AL&7mIS>4zyyH4 z0^k(X>n#8!0T}2zK?#7b3^-M)t>B;iV6p(WEgxcAfU8x9sie+q3dWQJL%A=druBnd zsW!=Z%G3^IWr5?h=fVqwHvq0#-Vk?$g7!z24++#>i;zTMMuvK%Q(ywXG0|YJkMnpq zemE1p5B}v_L}_+#I7A44;%2nSh6Wj+JqhD2Fpue0QHdv9hymFzfH$zh~d6c<=;@&^ThSMsqI||{65^40oJa= z1O9YK7~7$C8+O~a~tr+p#Fdx%G~le-?CI)xMuqX zO4PhNCTn;M--&RHb=)s`jtHs;?ECW}v_EFrW8TBLw|6@xBLpQPgbj4A3b32q@LWda zU*VonCrNXI@9S?70(O4B^gr6i&jkAcK0ZHKdCRm`#Et5J(PO{L1PazSOjb)@d+A|; z`wpSJV7sq(w6q=TD(PF(m3(diFK^hC;h*+zdf;xl>!zz^_P z7rlcgEe9+Jm5dPNA`i%KdL_?#q|cQweL)W>W1zfbtRDSdC_VdqTq$S0A8%LpT^Z=| zJwSFMg1tartaCLU=6mGV80w%O;PWOc{)4>d_&w>K<-t!LGmT3t^(w*Rn*3uW9btprMW2$uS84DN)PXC zPRURO@H-w02KeZp)&2-vvhQLGCm#J4fcPaRG(3LP14o4&NJ%Zt)G3qpNnzOwu#LQ%un_wrM&{rww08%*WIVe z$k&zMSTdSCWqgu-u8!6VCqCF(lgnEmcAA^!oDY-p)znMSI@RRhwxs~Y=M@a1FZu8 zYme<6@!+w0@?43}0n#FdeeuWrwv^lIJNwk3Md#1{~J^4FbVT-;%bK z?7g}vKTG;bv|iDg3VEmOvTGQHp3|r)U%8`wZU>=3<3JwNYIp_$Sz|_irYlo2Zk{4L z);6Zh9@CC}if4-6iLEYX^(7NAxaL+{Ij_L1FNx1{R%geZ3Rdb%MXX+FU`~Cd3NsgX zbNV9BpsW;_^kpb-&y)6WN+TNw$DrOR@YkCIdNV+83FLU<2b2C6f$P@zK{=QXhw0CU z)NWeG?B66OP0b3^~pJIYScWB;mB$|Cgm-vV3+0~jn?(8xg3F|)6)1_-!^#{;}e z@yIrTC-@Fv3HL-@0#}V4`wiqFUB5v9wj;b~lo`mgZF*u!9vD)6(i?O_`oKQWHv{{u zR9k+R0gfq!XInVXBrimLDrJXbqi@mYRi&p6PrnVU({FDeZ9->17bZi#zN9bI2Tvb8 z$LR04s?X!5M1#MEx8ulb1AKskjxmn>^NCzqPsk@$hr#)rjYHp1X1xP*^25G^&9zpJ zmn>Lv4o(5Qf_er0TG79~fV;f}1bxrHgS)@!pH?E*;NSZx6G>8ZjlRkp}Saa=8 zy4K1Z_-Xji2(=Xo$E;(0;t_)Kx&2r+a(hmWXZF@JX#C)f^~3ELP+sB9UE@tF=j}ZM zP$dAK7?28G0-*iEp#EzQ1^?eIxc!5)3=Gu!WI$IByp%VYq>O=cEc5=n9TNmOo$U}v zf2H4J^Z~l;kayCbLEjf98xHuvIq0$Z0{gK&l_`Bx|C;$jxe?D7&iNPeJ>!Le|Bv#G{g1@=64p2yKMI<;eJH&X}4gDtQKo9|i+Cy!@8 zw;-HCc(6;i9_eddkI97?uEN0VM#M9iSC@eZPLgXM^1Xm;eAS zo*Co|Us#Tyexd6lpOOYU2LHm=5&)c4CatBPQ=Gcc)j0;6G?g7`svyf$*ML5y&m~-G zJt6axbr?IReR*9vgq)tXYkf{-RF_Jl3yrif4u{ z{etP3;ZxU{*u0&rnwfTbS%=PP*`NFW2o{)2VPiE zS?!i|rC88wpDYVJQQZPtP$fr&1!n17U@3P~Q1i;7+}}|rUFZbWPdGsjt$NtiTL4_) zclX=y!-0A5&o-Xervw1`aM8lGRM60-;It4EZr9O8Sqso(zR>kkB+#eZWSQP*cDi$+ zC(6chie3G}RR1bE=Z4QRo&cX!!9@-@1`h5DTJiU|MZg_AlK|c^$YcUQUmLKX+c5ym z;MooV?IU6dkWXNr)Vo5%eOZy|OD|>xxt8V;Y5X`o>l79B3>H^1r64Vy}_5-1A zdMv1>-o8|wN0rV zFd}Ex#bY>-9yC(kzC-gO^aNH?M%780+Z-IwHh_Y9t?ujB{T28t32=8|i2!@mUo`eP z@`%?p&74~6o8;ge4DW_ycO6))-fW!QNv~it$@XkHvLX*MqI6`Wycz9TIp~x=VL&vO zhLloEawUZCm+yH~-McM5cw>F%jrEOz`gS0=O zB!Hm{^1pTEcjNhrH0U-y2JfS?lZmpi{7(7^gW&xS^I^o3%hBd{A*T=8^fmgNmXafW zbTB=vTRD&)`tpN)0be13mFS=0ZOG!Lmm(D|J5mK>3eYz*`&_Jjpd&xv}WHq~L zQKIp1Ex`N-nhQQETml;=nYVXEc)lVPeS(4{lfmiIM2OJ9mPtqz#${;m7^ zxkv}A`We0MZ7k@l8gDpSwRmFJ@JH!YzVoE5-sOh)jqSr z@eOyuo27$C|1__H%`Mxba>_)BH`1nLI{K1Z9a|`>tw;I7GYLBWlKa{>Sd{@IQtw+a`@HM>ch zqv8X=RtLwDz{)>I4bItKwE{p|0*9miB<83|0Lus;69C{G+pF*VkWb$LVDJwE15Wn{ z&qP27;Q2xBp4b+x16T@1S6=`?-Vyi^Kwc1DFx{QJ+5=Dz<$VXR1p5!*!vqBBR2iWk zz^j0bk9;aEppNp=m--|>*!BeNd*a|j;2pNpamW6Y7V4hkNddOu*=OK`lgge(+p;fk z%-)g|ckup};IU&8ApBULjwi1R@VbD*Px+IXDdZ0LoDjmzG4((xh#WePsm&>z>!YoF zm?X__QDBNI_GhJYBydB^`{8Z_r#Ao?buzT9!mZ;9(yS$8y3f? zr}TL_tzslTBG_EoZqzkTD9RK(De?u?`B-LHgFv^hWP7NA{XUV zek;*UM<<*0E1;I#2+>Yg{$MHIDzslX{x1j#kWl{UXoHe-leWbl+FvQ3pyx|y^2hK6 zFYR-OCzeF>$Yb(gcx&!i-tjoy@OWJ@_`k&7Z3zbdu7xMSV;g{(zry)h;Lgv>z)~j* z^8CIg|rd=}y$LP&vrtG+!@x=C$zOf%C8vKdkCErW5$@Be4UyC*h zx@!3fqGuuL!@ovR=^Po!mY8akFYugQ?U@ypZ?p@8Quoxs&-}}plAOjW=4myHJ&B#9 zx+u1WVKhA>LRnkxPi(7fxYK#Nad4Ln+|34#2>>_o6#y^+;O_VVrLO?&8lZLHqZc3@ z4uF7j{w*t%=~|1f%0V|$x5kEqhZ@w1;GBWaHe9TNts3(~-tj};aW$DM{~$brVsAnJ z1D}By7&`{C9h3+F7^s3YLTv%8_aLumljwLo%MlV;y+IJs>l(?#Rs2}q!6Vj7CHpl- z<6+&(oR4Fs9gQdW_e7n9CpdOLi%0Sjq~3*V000mGNkl8{)We|h^_y)j^wl{!X5G;Pj&5xZbkc?@HZk@;MY7|cJxMS=c zA>-hJlrH$Tf!nqK69Dcytokbn00#fKyMRhd1~38O^g96JZ8~|=lGcr2yTs*hF-KfmMzh@jhA}Fqq<6du57Nz%TlZM(tm)5z9MjF zQ!NA1^4jb1Z8 z%E%fajW6dnnsyO-yODFL4`V*3q6Z%)?9G5f>8;HVa7!4lZj?U9BH1i!ol8-EB}0u>W|rmM_XuF#^cLszpXh#d!b)i`TKdiV!9lUk?unRgM4fn zVAH~Fc?@?gpkMA+(66#b3#e~L9tQg26^uq%NKexM(v9xVmuHb&9Ya#krKE*{9vtzP z>#J5#E7_7M)<5390EzI%@y zSKBYR^4@=6|JlRpTDgz)LMgf3gXd~LL48UNNWXm@fcG8w0Q+0=)|h~FUModV`m2?# zQ6zOH zt)HlNPP}NQKrE2v)c%ydUvcj^%RF>S_!$TV^hyrc4+d`G^j5(0&VDxlETOjtSlXKe zMW1dYrNL+p zehUX@oY46$%&=5dMCcD6UO1E4(MgFX^az;3-(o7lkYhDGLTeb&f z!XCR4(r;B=bDo|umQ!Sl6GnxNgWEZ1b>H2!aF1Jn!9JJ-Q0Z8AUv_Y8y9f5&ZJ@US zoPIAriG!B10t-0piiQS6J==sI2@8)U^rC#^b9Fgm*EU@|kETo7Aun0D(i`e#aNt#; zk=dt;p_uwp6jVf#*kWB}(8ZacQ`|%vq7w*w^m*7@Z1vOM$rhPNG@abZuIED_s~nf! zwvA}mj%ZmQ0~Y)@)F!kng;-~)hbw|lJM5D~31XE!>$WJUvXczXhY9NHo@F=}NVa+` z!+dv=69ol0VoD7AMIKVv5>a5a+teC?gy0jkX7%0_>5KKwh83Cu!5ZaVR9Wsl6LrCd z-pZ#rLkAqedyv!0KNA4h@g8-#fm6VLvjc7~;qETrRKM5);%OV`e&rlxxj}!iRJ{is zj|Z=(4J*_%B&4mP&Xj?5n&6qiO_eE-@9dkL6V9nP*O!kcv!(6>Y1lG)uFr_;cG4;= zNr^`o@>Muc!IJ76+emv=Cxx$-aEv$Qt=fc6q-cErZ>{^Jwpx~gMY0?Ea#prV@Z6xpJY-;6jnzI2X< zZim*KY~c8N?5D;tMgJW}rDO9Mew;GqQ)Fw$@-uAI`clQG0~JvvaA2w(Yc1bF^RKDZ zOv5Q-IYqWKBhn}EGY|~q-4!cb-3NnwG+kv_Q}5s3MoG7HcL@lBfTYshNF&|d3`T=e zBB6AHbTq%Y4$BucZherq98T9N0M8`sK8fem2U>0#4?IBE2Fr6Fu>bPY z4|QcumTBU)Z@uU!?=1dhtM&MU;*~y){N|-Tr8FC8)GERdGZ*tXv-MeZ^uc-C?5zZ7 zKE(!DuiZc)i2ze6fD)F(hl-D9bq{+E;)~k%io*;wb|D8%MtJh2!ROwKsv{ewufl<- z8uN%Ei)(D;(J4~@w_AUe<}w7$DZcy9^Er5aklrMh{fZ&H!ZhAhXv&=?&;h2;I>4JN_bY)BKoN2Kyz-pSdfDq*~m zF^49iD$qLow)Wqn>$qKkXGWU;krbnS84gftvpNcFyc_?#$uWUL5UGz?lg+(31+f&H zx-6#5;=jyxfxe!0l$zHj2j?|&5*1^`F%Luw*&8Mmv32K}E;)94H7RGDTMrgY#W6cX z3zO9vVC;AX!v8Guq5gNx=w&Ym6t`O(36TqubK4VvJIR%SC@z}-A*{yy$feQQHKi#d zCH*jqy30D2F3Fc?3=MUk{l&| z+xJkY3bqsX97g-uq)R^5cjZ-FDffmzBzUcP9A9x|7|~a)U$s*w{ZH$By7knIYfSKu z@!8zn^Dlslu82e#O#g)hQ6`gj)CS)UAAO=mVPTJ_;UWoxOACWhG0<`(N*mq3Iy8JY z`Rg-uuku~`CfS5nXnKd-ucu5Q`{QGKjmhL*oor86OUF5nVJ$y^0_8*(t6BunpEPr$ z5QN@1xpq`fa5H*h zKHe|{=NT+W$RmNNOw~%^wZWbA>jkRvpaZAhCb);#W7;|`@W`doNNwLY+O?Uk)bB#b zSoLZnQ;_1v7ERke^*~{;cSr*xkW9PfgXO80kHKxHY=(W2I*(+>_I)Pe*L!*-%2E9J zKUDeUWK0NcdJE!Md9Pi7a`@6S{xv)+EjjdfEbjVpOg zL?kE6nnm*9K(V02G>YXPQ4!|&ryJdk{;yqNhTLOJ#Zc-{fXeVhhc#xC}8ud9oUyg_XCa&su*Kik5$CHKOluTdEoYT9&OF#}1~_w!~^h=mR!O2xWg9PM`)A9m$FaF_hq1 zpTbF{ZZOX`9=%ib(sZtvb8eIwd&01>L>`R-SKt zy`xt|t_N6VYpjZkJedEc-g# ztlhh6ufasb7H8%_+us6et9n~{Ckjh_!i72~x1*Rx1`EN80`$&YCfjh4B=R3FVkWq0 zVv1+oe-0Y-X%HlQyax^jo1-Imu<{zy{sy*kpSnvISDeCq2_JFWPRB8fOZ-R`PtC8z zRWmZ-*9NwXdl~_I{9IZ{f_8~dnhTK*CN&{-7p8^s`D-}F zEcTtm3> zBWA)HW@7GAoOVgztXOMPiAfI=k%#?G$4t<_0eb^ri_R`_4q`|^$Q4qN;i*{r*e18l zMDvZb;@k@eozz=8Q*;0`u2yJ7axB(@c2{71N%5CXLoFd$MZv4 zMx`)o(f)UNfw1|wLK~)DSWuFNd3{X@z1~(YRo_i8!!(T}#>=*H4{^$f9pxW_HADEM z?|UYLOV#=)tv3zdXEhNPs}BCz->y;Kr4qdid;h}%&YE(jBt=s7R37s?DJ@RpZB6K0 z`7bND|S2 zo0UcvrPu3;G+7H200C^ui0NHg-@svHB@$cqlg59KT5QywV-zK46*KSrsDGIDCJKq* z4iYKq3>#>bTz2KAxa3p|&?g8i+Kj_eSyS>m!*WiEjuRhW3G}2~mQa`Ufs?3`8RvPA z718!6yBuE;G@G5OzWjm6hD8;8EGQ7tCQj#>S)1x(ybg<22p(|F0h&6J$-y_<2NJ=R zNZ;xl)U$_z|KOXAi#SD@06%Q#uYM#NKl6c3+}$Grf|f;f;fRDtOjfoWLBOUxJf+%V zvx}LnBVN(DcmD8aZI|NM+g}!Lby+(_Fh2+hY8qazkZpvCWgDwIX#tqlQ)&iV~F z2s{wve{v#wO;o_4*M#VnYty+vLA}8^wm0n-wTsA!9)E-V5xs=*~{2^;Z!+?L?^uWYXK z_C)EZC0Ht(;{B;x^q021AzZp8u!*{xDDPZqQ`tKOwY!Y|?t`pc5kPZWPtAT z%`i*_-j~e;_z5{iB>t~~Xt@R2*Z9NSqd(&a+hP~-6;_o9HfsEyQ3&RU@B@FY!p1$W zRJ(twD;jv25w+ zDOeWTXo9@cXFrY$DE&8i?LGtDX?EBN!feLwu34hwmpGX27J`4>`zwU~9D3+B_@9lZ zvOQ-exi*)K8+rZ2y+dRi_j+tX9bGklhLaj>n&gxUCm-2&wW>Rf->NHe z=(C}dkOgt)EzgRojW>(})^v`En=#v7S0XhZa+f$-DuMQ)*M!r|RgbivJJ=+^3C5yr z+4kF)EjeW^?Y^?Tr-w*O-$VtJQ1$2~q@*NWhzF}SjmMN|T8MZ0iw2VNayq=!PsucG zGb!l%v7m8M*%?9tUS|A+GA?BKWm)KiG;;B5p{J4zO(OdlP8MHUnKKDKe~1($!78n~ zRjaPhJ@@wZH+*II4(en2;u^2G5xsLot;-pCK8|}6E3rC^MUvDpT`G2Cmuw<_UrY?= z3iaqf!PD6RKJ4lP+MECB4m_UKRtOpX9<%S~u{8ghwK#aB=ru$0eR#AX{(|YSEQN`o ziB+fl@3#LKkHH3#e5q2quR(owl;+4Br^w8xGFNty)zBVWs|5_d#;V=kCuq=c2WR($ ztXO7mG>V5IV_`6@W1T#?V|;Pww+zN;cIjIhsftehPQxJO^j4#uOr5oRwNs*fJ~C5h zquJd|72mRM$~OM^?n-{NswBHF1)ho{E{=T+y)&dY5w zJ{vXc9A0Q_(O0479_iaGjDw{l+d7xlDvm{7Qo*+?FwFH`&||Q8F>%mKQy|7|ANOa` z=c!#YgL)O6#cf!LqZHWP_a!(gGlYp5ppT-)#gu`YYi>0+6^bu6?oNT36|+(FuB5Iz zHnG@Yl9o|;pQ0&@rxF$YB-|CAKu>KZXXM1?``tbP8$p{bO|l~&=DuEBRt)d5gC1gFbJDM}_{XiT{!5K1*o)p=nzL`EqG~y-k+N32>%BSLHNBu>6 zGG>z@_sG1x8aG&%b<~Ki8?;4hMB0!IcS_G{CzGf^P*ELAJo`J?FSYt&4W2J%#bT01 z|6h1T`Bf+z$MB}1q{^7yMW#g$)oxxyT2ok_ymGaV5d!k7xI7{bd~$*_aiZtwKA|%K zXI~_Td=-iO)4|wV8)BHeU{~|lhZ!$z;mQ}XQA(XppP&70X^;Y&*nx_59?B&kmT)nJ-4whQ&pK{T|DbXGY z83A3YTQ(R|n|d6x>{8;f+`6+2Yi!l0GV&DW+OIVuS`1>B%2I4YrTD4^lP$?#?`}Fn zV9pjIw-!|D{9f6H8oAHLlRsK&dIR^11OLT4yeg#;X0apg7j7WLz_C~$ItzYlRJO@L zD9Gb7chs&@gSZ~-|}gTuu$6)-s?oxDp* zi>$&He~gpTGylw^PG(4<=iN#S{QhOIwO1pdR~ZZ6LB)Z2V9+(gQZ|c{5nGU#k?37` zm{$2>jfqz=E9RpY;8?Y^T%*Q4$$OhnkB4;A7ze%FPBU9Vht$K7BZ>quu_F1ue1)Ps zVm+>8CIWg-a3Tc}iLAKK!RSaVLZcj)(C=Hd3Q?)jqn-2A2Na6@sY-xPy;Xqyr^!cN zK8o@|Et|KUtw!nw-{%h$ab#qLnytcG7RcDC8M&mH>7lwri=r+`^& zmOXj(h!6cC()yij+= ziQ!*zF#-W|c=zeBi}Q?Q-wmI%QMOiLMXzuC1TEnd;p_x36xP_nPa@q7c{UZX`ki^- z8+xzb7u=wT{t&AiuQAP=7qxBrE6Ruvdre>aH!5s#Ojvb@PhF&IYVJ&Bge(9VGc)5V z<%F$DQTB8ORe!4>`YiFiyPu=>j>8o4-2)@j{mvayxU1&_Q@Fiqr+Yed&JibwRBW1c zgLw*oHzM(`i|yPR1W-bTpaVVR0T=s%NEyaxDFNm>9A5Pc?u9p5K5jew70Clf$lRFm zcjk^B3^5GHNFVialX{H7z(tz z-=(OPH!}&dAMbt=>@SYp{1*S>alE%2Ed>^8td&{5xx**n-~HoJd4&G5D54RT!W0^W za{YSVKHQ}0am@%2rb#a`J_nHV))i@1WJdo5kYEEQETvRX^8fn5y!7sob@}+sUDWs; zoI#*XRKTFyyr)b0W_B?z6X$@SV9r#)#(r3W?Mt1kBCE|L1v=`g9>pIWb+Y3Fy#On# zMECmk3Lzc_$KqGn^dfG^W^aI)N{(@#oum7Eb~`P9ucwXMHR>$ftla+So^j1IXAo^q zLFKu8&GV!0 zXLl#KpEG=?dxDS0b@k=VK+vC#{73_WXEFf=uQB;4(j>t8UR}i|M}jpyV)fR)_TD4T zHBZj>JgT%08xs4mz>V5)CeZae(BNK09Mqe-2WE~Rm~0WUE^%}PlpjiHswsE2Wo!;r%e;|-EV3P_<2JQ+}}0Yw@IV%@sd zpuG9Zl0b5R`#hm_*2VptVMAmp>p*tRLFVH65?r=~ySxnD+TFmO(p zRomV!xF>xb?KZcd5?@39_nY8N+FHt0dy6Sgz+l(I&`01^T-kvL>R%FJ0YhbIz&h{O zb-PxbnJPW<=Cr_j^$uJ^QT#EKgusOj_S-tD`@81N!&bT(7V@Q3)Wdo=+y!WJag~0s zwW(A0dqNNwp^}0ge>=4ircL=HotVpLv)Q@#2r>?lMeO(Ba`@T&hdIhjb0>w)sM(Ln ze5#j1&tkKM-7az3mmJ%19v`xgI+el8I1FU`INQ*VC(g%@Yi53tVzWwKL5bMX-zq+t zXv|nEet#j|B=?S+D9!02{~s0r)n}$+4Xu7I`@82a#vKd{ zU2^$=wckx^0@s8PfK*IK_E(8qOqwt6mN%jcbE>fR2T*PrA=~aNpVMEz9jbE3+QlZ( zMjO=~3vkvUU_(7*CWn=$Ziand`+EHNK;F6&mxV5_<)Kw36`8J^zU$qH*B*<{?sQ)0x^j_p+V~3JL2q1M3 z_b~0M>U#R>hyqKEr>TY*Gr3xJKWCvsAj72Pb?pk>Ih|*UM@dknZbr#9tCz3BdCMr^ z7Sk_MV(eygYYhZz=gUsN5~k)kf#Xa-PW*LKcf3GX=5(RkjU=e%j%p29WnqkTAPMnG z$B9)VpNo1U^+|pmc`+%7rNoe{G*^C~$cFL{n{bMS?BkA4Zz9i=>}3IVV~OHUPJSg_ zO_UbG>Xwu;tN7Ly&g*&bLFP33vy3})c~+>39DX!ULbk{`Qhxy*m@To=UAt`MYal0S zikMljW2=GJy#3YO%tFSh%G;FRg`!SmHOu9j3_tqmk{Ymn`G%mw}19A39FtRxj|EsS8{j?@C4zT8eC&46r$cpOF<4?E_6>N5*iQOC`MdPI$Q zOvG3TO-h!sP0Dwg9IBAbLwG%hr2TO`)9>lolaH~nhsp#Xa`t-rpJkyK`!|b-ti<48 zC=-bE*+4$6^T@ec_sKWYKK#D{#$QsrAyT11+*0PB#pFlbGVO1I_*~lQ0`h=fLBKT> zgz(x_{27oil82;63ci}-l=TVdX;3>oe&|qfPD`cembN(+Xu%biLi@6G05C6nrVI?|a8 zlmqxUINu_$$P*^KAAnn7u`vpdy;v|f484FyXvLz$Wf`3_Zjq6LlIb}eT{-q6OKSD3 z(E*{|w#OH80;>fgf<$fUZ#;iS-ZVHrYDyI@V=bv3Ty~A{ZM9>PyKiLia@W@iW>2<@ z7OTL}g;eEbPk7^7dufh**G)zObkS=;NN?fzb zC@DEl=u;=5;xD4(-C~8fPtexHU5kbkRg6tM;`cTvK}X|o8(Knyo2*OJtpPra5`jqg z)-xplDB$fMAwPZv>{tqm67#;#!r5Ppvy>=MN+o>}(m;Ogo-XteHJP(serTfcu+HU} zSdY^wI#83V1(e|q_MT>&VEdHydy-h>6S0)_G?l(t)hbc2@ao)oOkrFOQRek4-UJh^ z{hT072aS*W%ND%NiyHC+G8h6qGIT%w4UI3Hd<)6(2L6TjW>1uK7MF-fuhA8;&3i6O za6CNnihH*qA)vUMY;*`r_N9E(J`JqWyZ}@n^*{&cfgrQKqqkmT8qskqLpIE|%DN=? zsOXS?PVrPo$CytTU2O=iT002yFIhE*gsv#+X=ozwIY$|GAn*g_SP;z4X78Dzi^Xoa zrEs%^`-A~`Ua-CS6}%q-8&qX_bKTk+5`<|;JifqhQ>%A?F3>8morth-PQ7|bnCl5SnGn>{4#x+YI1*=6;YtukKTS; z>@M#ov-5oFelKpTR$P*K=`6pu==;~&ULFn+Hxu(FFg0ayX7m!j3R8-g)E`?B@^8DO z)u|<3F-TM{ey>~2xOBy$P;S@OImbTJ8sp!5G;@<|249@je^-3pIomYzoat^&P1>!%Z(_Ds2x{0*>GKZ^N1>SJgVFr{qBZN>#DgE?w<%O6STG! zAt`h)t0Nk|Z|k4uB<$SWItEk273Q8#F-|7Ixc_|?!ZD`*k}8g<@7`WY0U9YG|6Q96 z%t!!o4C@5je+p=$Yphr{?=t5fjH_Y0k++V{n(SpL;Ge;)x6<5;51A8&@{*f;Y-4!H zu&Vm&j`I__wnaNHToNwhKAH^YitmX~YuTycbqNQPxDIcB&uJVoV8+7o_cxc24+WCu z;4UUc^CySc2z?@P^P5{;^>L^Y71(X--^xWmtmovOh|sI<3-Vag8;5j{Eae3Z=|Ge- z=dmIAZ7&!1@%ITqd*tzv#-3L+)G(uYbNK8=c;N=pQ!0+Q9)?4ZR`7Gx^i^l%!u-_w zWWY0a@kGS6_w^G|HV01OKSg*izW&}q_U1hsbrPyk4zXOZ9@h}8ob8pm$wYV^zP;mf zJ#Rj|aV6`n9Cwvs&DSJgOY|)H4mx*6!&7h*cl+n9RC}WDmZ;k0WZfR(Ff?7}f3~p8 zqg&9Tu};g17<|G{?$ule(PEBXt2l#}9XZL?wGJbZ+6ay{K@#Xln8J**^9INU>^f4C zYHo;_$1)AV$rD>j}K*5hcYkvJ@sq?FZ{#u}HfT9^~>NSOtFxGU{+au@~gMG*7$g;J$ zh`aS32(u`fVU2SXuA#aB{XW@bd3@QC&Tacy5@AI9+%{pQ9?tkMcs$MdyNBVr3zApv)kH6X;J7=;Pz0Ec)DS1m_K0A`}*uHDm)&Ob< z$bQe?n$u+{2@SaxB}{e3x`e{#C}2lH?d#&ODw_K{_z4B<34Tk0_^1j!M2E#*2bmin zzJ?1vxjb-5mSNzwZtrR|kC9m(HmaEJMKN>woY&(XQ?Sg$Pic~(55Z!ZB zTaTYQdAZ!BO0TDYvHr`8Z5?GK3H3Fqn@mo7$AC`f%wn`xu^U%DF1C^HB+F5s5jhi) zn<@I4BWaXLJgosx zHwnM;vvG0jOdOA&m11kO*nV-W9+cTA>V)Ig=e#>3zSx@_KqaP_{< z5yU^9yS{0_%#sui{2NE({`}!*V>hh*B(hCN|F^0@1o`NiaB6HKeDBVyT-__&b?m3c zuwcpuwb6GbXt7rfHmZd@W3fKQ^zfsB(XV2K;Td~jjn)G8W62ewx({5yb0}#6pBh3h z0Qcz|hISyDw%XU=xJ*ET=d*H>^UQimJLvhw-APdA#?}(rwHNRob^Go(>PaVySIKd7 z~f{ogX+gN7VW+>g7$K}a|6ezfd^3uKt7^rYj zNqbOyA}q$U(-u|u^-P^dz4Sw))%%*e;cs~mgDN!x}!ez zL@`QD!t2U1Oq`<7A-Jgf7_(3|;CT>qQyeyScHi{hGkOAlnxg}DL7=LrC8O)&%&%Z4 zP;d`CXC&y-_|c@j7}kf}<&B8Njp%wBM)QCtcl4R<4w$Q(GKEqnSoEx~6It*8a}c+I zc1@IHKYku)BE0X7j5rHP$s;{+a;%M$P)@qWvsRaKu(TmbuHefkKbBWyl71mOvK!0I z83>mgmG=b46?WxS&$O!HiT)yTBpK@n8Ah3`#Z@oiu$;PcpTkdWp!5_-p7tXM&nHTw zB_44g|IX7x(CSm+i|F3A=`*Riac>Y~1o*^?@}MVd-GbIJpfD0hbJ`g>nq(=S7bF?y zcF)n-Ohs3uVt-nN?OGG=l60gTTZR zCb-pb>I8I%A}So=$ibaw|Dd~7#qh<2a*3}H6xbbd%v$_*sAM%XSO97F2w4{^3%h{r zXD7Wg*>&9(`sLZ@5V}T80n&OC&)QJ8uUS`K0kunLusmMhoOO620)xJzQ3FXh18r{B zTxL2nf@&h;!e0_r`+JOw=UfTN8$aKQmlki8@I@D5gf_jnG<^#5R+0K27VsmWSM9RB zVyrs123^+IFYjZ6m;J*fZ^piH<>=z1ZF2ZZ%fsuDe_r;mu#9N_F*HL2{tbu4;fno4 zoOR$AR?dKS*b?ruDQI0b3$TuK5|6X?S>}_zh7_0^(UHrs3hgiebzM=X1*-fqxb7P& z%-q%1+tduIP`TJmC{IAN&P2=d)9qE*&c#&}DAqD_E1pbz(5s@r!rxByMP6h~Z_F`WekpU{ZvngK zt3BR2nQ!HG(#G>=cjFvS3V;GCgO%IT`w|Nt zDpDq}5*8FnEwm%1Ertbfh(+b11N##T@&%^k)6^?-`JrI`?@Evamd*jVAyr=^vt%2s7@~oTB1jW zY5l>D6LA7~FKf}l2EEF&^Z5-XY@he24+#D6JB+YJUy1Ag;=zBEeh0<_4D`Jx4E0bprBUtG-g z0})%^pJz{UM@QRJ3LUu!vxR&hQ}dUXuK_yxFG#7=6^xKTNfUH{Ka#|Mmu&Z5d!gwB zuID1hf^!Zy-5_zma!Q@$l8@iANHn|qDO$w!4^I|T6|eZ|sDq#ZM4 zXuV2}&WWdzY@+78qIt!vGF*8!Dyznzml}*GdKwY=Ofy-n% zJ;mNabG4rOrXn+)yd{xp@F1dUlBdri6Ka!s&wu{TmBma*Ek3h1G(xh%#=L9d-Kgmu z7Q3+ZsKGclicHK4J`{BRXpY+fJcrNg0y?+W;7cY`Wr$5pVxIuW3p^M9h5S+l_mPAX zL(XUrWD09Ht$!J+Iyi&9K?cn32}3vh<&lbwSWDCO_~yf^L`Ov69-@8w58LOQCR8gW zH#=)TOrtUs3}JeC^KUn*9L2FQewQ^nj*oh@-xnQit@Y1ZpT67-&M0OXlEpqC$4ctX zE5>q&HJ4d~+}#=Ri&q}T%QzOai*tC-g?lPdDh1kSy%54L>187cc@Uy_>L);A2@s3q zQBiBhlzu-A?Um3FU9_-u!WiO52!ch%~zyC+YHrAr0|wZ}bUEs=TG7cmCtv{rGCTElTc5k^g8dlK8o; z(gLq)CIIE8j&@C@>Y31WCTI!q5`zz~rn5H3G90u@vXLxlcl`4ha~tirdoi*1Yi$+K z_5C+p*$yXRWKBSpPe`0RI7}o%#*4xRDp(;)SW(?a?!n)&V1lbKj6}^US-G+lv)B1l z|B7h#&JDo0-|s8p3hAyUt(CgaMMn~svs9dl9LIHDs+|9O9T4dlKK1WJT`>PcwkpW9 zn7H&MvO>HLI`wr%N3f$Em$oay8|jr)`rCC@Tcl|uhh#NVYoM?kKeEU(!Uq|H9U)sd zu0H(iZ_g+0_*t`e`*L^k=3umg`tcr~e6AUABK~O7CA2rPms329N!U7uD|?L#B)&;n-9Xx(%a>MvhO zWCGR&dFHw#yhm?{EqW~zWYL%RJ&Mzd=M+(xF;skTB@i6L8eLa5CW0Cgl?V7dL9A2F zUrEMH_w80ot=Nd0=d&*MXB0nE+73EPVEp>#&peRDw_D#dmhkgZSz*wS_}ulM3)fRa z#aS%qIuC?9tIe&5A1T}o4SCo+?LVHW`0RrVK#+lp+w3+O)>BLQ`)L0rWTC%zgWGK!x+70~_`MlGjuq1<3|8#uR zgBwMDqJYg3ZO^cDqOPn##EJJeCjrDGovQ@@8>3h{jF?9hW%TT1Y1$tIHd-ADD{VYt z`H`inWP1``kjKQO{l4vZRPs+jC_YR@~PU;Cdx^=|S{ z-0biG>!QGXi@h!yrx+-|nwVJ5(z7%_zIuaJfjb7v^-lbE-aFQS!(Z)<^?o)%=Cs)K^lm!Zuha;NV*@##dg9@9PAt)i$HS%F(gOdVr zlK4qH3Hpfd6&!Z4E{{q8c;11;5&%Suu}Z>_L_m7JZPnIUs)qhJ;~9T~(fDPFsP=oj zUlB$b8t+5GqK5NA64hiTBLfJ(GnLi(gkt9^DP%!Ll72YaGgiSw4|t1HKI=|~F|4o@ zDKwD;3VZf7M6}B=6b)5be~WVXS{nM*?cfVtvZ(*duA?rR|8w?j0n5!#7y20 z5-AFu2AcKRqg-L^W1`$k`+R^TdSPL}Fi{Zlwo@WbHq$S6kb6~bycikw2~Up7xxe;0 zj{_N#`u_||hg~JpQUl$t5BPb+EYMiF69^6RnOlS@Js-)UQ3gC&>Z<7O#XlRxSMqnB zVSR>(rHMVue@>-8)qENB_!C_IcWrH7#Kr!@z?s3lZ*(@=Q`L~^+7U7g;(`okd?iPI zKLneM$plL4o(%u_kbD=$UVBWQXI|bFmD48&_g(pjilY#LPs*s^?KbiL(@GSGK1r94 za@*tglu$dHFB_#WL~D%{M=VDf4d<25Gbqf9wHuf#TKFjtWAQCWnF3z87(+rjg^SH2 zGjQK;^Z2L=AI@M+K+E7cAm^88y$d@*JR{lf$EtSjak=h+i$vo=T>DqSI;RW3>Y(|B z6vt-;fP)7EW_iQmnS{a3KUIov-hkrNu*e7qVvE8>Emq2>3B>xGlZ@Am|640!(*bcrIFe()dCs|C2QQZ7<2l^Ew z3OEr0z$wM{gsi(*an}EMNKxk;j!#&*FG31D!kkJOF@v=Kb%*#zN`{p35tx{@hEGSV zUrnQ%gT^s4UX7K}VV={ZhIP_XK>_CC1Y#*&{P{`fXgWtX6!(Z^?4Z^&-4_)mg+#Yo9qaj%aD~J6+Ue5#_^RM#)R^LGmcFxy_zKcnO@|Z$;+j4;I zye=WAaFM9dC2e^S#QGdfwuHc>b+ ziYdD}tHU!Awo6{p*9f-atQdXMqVhpoz`H*j;mL5N!kO$hMl0|1gGor~9NJk8uXCwn zjJm3R-~@fAnX4oKIBW=d0eq^fXtNOoKQ7a3#P=j!G@p8K0F8H7tbjG9Ph+5kgWH?r zx-hR_cxQgCM%Y*$5=aYE2{itGlpW_+?^IhNW(9h&TsxTetM@6Pj;2PQNF`j#ZEsDhWIHK*tll-He zVh^zGG9`R_{=<4G%Suiy(t6j|Bmv|X;_@KFrCqLgfP+KT%>7Go2mE*E z$7H~JyLTguWdha`*2+IhlF%WcC-sjFzHK$u>t(0?r|8?@v+mOJGc!#3*ig{!Et*<)*0Kr`&2c(V#a7CY1J zz>bUzi;S_Mc~yatvDE9YJNSp~(aMV$8{d9;9csZ@1=<)`zZUC_5N%!7os^k?-XNZTI2^f7-msHFpes)8H zg!qR%2ek=4DWXiHbn;0A2LV~{xnZn};;+a>01ROR0f^XLj#mU zi{5VsYx1@VY8BLktU<`{hLnP#Nc;)_qAI8Ib>6fc`rLDklJBlNCALvE{AtTbM#_Im zm;_}iWNr|2AnTBQflTV39eF+{0Ow-{1A7#iixsW!cgv+yFN*v&7%&}|?HAjrVJp#@ z`+C+e?igVMQLL}I_tzV$3M$)HGc^mvGy|7zbo9~ zZQp~9=DQOZnvb&~>Brf;)1-_$%J+X$w-WVTbF!c4vQ>sA>3W$Rc-Y+<5|{;t7kmP6 zpPBb%nP#m8Z%kx3Y~O*XEh=g5`iJ0K#TDO`B&dBJai3H6n=&l`m%(OK+y$wCC=&QZ zZI?6gU%X``{R3`R15;!eF;Sl2#llN17Q~5vZJ6L|X?-U_2LRLVi>=SrHjI3Q`L~F% z9}{oNm2%cmY)iltXJ>m#$}3q}y8mGTggx&<=?@KMHFG+diPH$`?Qd33Jx{La#X){v z!0JAloK=VjM-rn8BxNS(g8U4>E5f$2w8UVmta^n$wQ~5Ev4!YIV<~A7A{@p`x024V z#IhnsS&X@&--{H!MT)g*dOIb-Aj?F`hef}(la_-P$jS>Vmvldx_I0fl1$&}q+UC1yisr$^VuJd<4xflR3zCGO|hJ1ATlHnmOXGRU}r^Z_u~CY~@laDthG$ zO?5`Zw8V1%_OJY>dB1DS*CDKdqqy;iT#s$n^mI>fZ;0@QuvrZpK5h5$>z0kZ6DGZu zj`e1kzl1JP#-w6gzVC``qVR`%IUeKC@=DO~t9*Fy*tp0%I-L(3q+h)hH<79C8Da|( zT~DW|6JOTvJ_UH;X{nVQqu3-%u*%WiAN~&0Z8enD&eq?)RJptytpB~6A-h&4IQJ-E z)VAVmocPvOm0*D&BgqO3%=Z-g9v6Oye6C+}m+Y-`g5HZh1b4AUkrY|FUZ~6lRV+SX zKC|YA%f9vbp8fsR$3R&)6F!$oeOl`DwT1w3Z6+0`VP@z*VVG+e+$RbZWmZnKLHs6ZCQcR578 z$RU2{&>8f`h!YgA;3PZOU3xg`Jkyn_g&=oHa-1>}ys|JS!2!oAwDxW@sxh7Px)(l| zd>W86U$&2d*>rImEOn3stor9DgCJCR$_HU1W# zZnmgnw(>@}KqO78Llk!G5fX@8AWVi8?f$XV?eoAs`K}HcQA4y*0;8q0{=wMWJ4D!ZU zM|zvIT1IFHDXqxwZ~Uz9ky*5lNub(lrPm-B;*A1F#T)lOuR8ixi%mx-aefBQBa8>< zZzGcM>Xr(LXFTU8{MA3b^W%Q@P(Luy`nkL3VU(1@Ih41D^-*=sbAlDs%5LNI?FiKu z&#a1^mRkdHhd+1|h%nq_KlBX0e`3$D(u(j^~&UVSXv(w?Go@2zSWvE3Te= zJ!87~*96oO+7EFByXsJ|0h72cu87GEJZC1z3lK1Qwx-{Fv|1&1emT$c&{WY z>hjfd5ajge!W%$G2G7pnYM?HC5da1g2=w!iYCSxp6GtIy zUpj(eVi z){3F71_tAG=8b=r?Mk*pQ_nN7wg3XLb=8S>eu@;LuSNWE_??hwFC*!ni!31tKzMYP zE|t5%53k|=d|6BJ-A||gp33|Xzg_H(e)yGx3>j{`Mf-+S|0J^*T%n2jX`NdOJ?C&P z(B@6gwr!)IOpnh22Gh+NhM}91AqSKg8s?e=V>58==-tjXX?1ox87@4!8fke3yO{?l z$YPLO1^gBkm#A#p+iWdZ`8x@3r<=bH4PCp*V+Dhv=k8&mnyV5Em) zwNCXzUdQ6A8<>*4XY#yTnC?bn&_1;BXxjTd@oVCJs`y7~Wj9-+mP@yT!2BR}f~SR^!y7>PED9)p3{rc05t<0dUUMGt2JAP{q%C|* z8=B{Fg9xR*VFDS$R13ALM{yuhl6n_*X3{q#$V!qO_{*~6&-S1@o$5#2sK)iGSMA37 z8}WdGq}>f3+nCz4R^HlGSPnx{M;N*^ud1Q*Fl%{~nrp`=mQSfv!h)Tvc6U@Y)6J{0 zG+T;~E^mgLgUYiSgXC0}b!XU|FpT(Goss}NOaQ%?JBch)YBd*=uo;-e?;||&;OJF3 zTDjMAbu7)~NVWzmPJ&VCu?~}YgLBO|`bH+wbwXLvle^5Z;2ZPCHSq=NlD*DIhNo{+ zJ@Co#maW0UC;fptLofII$?#_t0{K5dz3Nc;F{o`vSm{eX$Q=g`F3P`|ih<5Fe5%cduvX8wwZ*IzD z0SGi|)|!ufZ2_HZowB{W?XuTrpYs_%L&%Qt|6zLZ&^W+ZfD#&(WnFL_(x%8y!*- z(l7z(mhJ}WPHE{H-R#-#IgbCEz4{*eZg1}Eyw2-$owq~vuPf1bo>|wmo2mmW&MBcGb|FO=q&*ONCbd%s_8fDPJjO&2 zQm0J7a;I1e`Ef$kq?AW~i94s;A-P>KesCrNRx#ndoKmA_XPq(_cT!<@I(1Iy?pfdr z4DSSopNp8w?V_d$$FoYZOyqrs{yNV3rD*F+juxc7EhQiLb(QvBF2-Hh-J_$4m3j>1FKJEBd!q?mh6h#7I)6Yj?^bqL{ZI(e8T|Wk`qG^u zb9)Gju&1&4nd9e}xQq4?IAEo8$OE_F@EDf}zj19><&L6z=WB@~-R$Rodb;D3^}Tb- zU&oxfGe65Kmqn47#oRhvpKtU^`PS8%p|(#XuJ6K86n`+J*f}ncgEK-|?zOW6e6w3t z$Ig~ZAH28dBcmVBi2HKpWy5t{3ZL-&_KfCk}8dcK`o+qPCJz<~Wd0n8C|D%cv z2GMnSLbCzdYq1D{63*b{S^2#4KVVD_bv$$2<^lh!gx~UDu_M_SWqd9sdlCLm>4#|L zCL_1g`|`F1Yyb5P;-)hl`ZC3~U%YMic;CJ|8v^nxO@_TH%i{Z~Y4j|ZXnzQAGvt=uI`bN4I z^q}`q1^XQI(B6Vxel0oY0M+;aEy@*TO~648VksZsqkU{DIEa!$HSK7TrTS6x9l-k=9|H|_oS(SpIJDV1MVh) zC9h4cUIc5{f1bhT-C(+Q(}V}{3|0~(GdyaSQ;Vq|;t2L~t$1rHV91>590N4XYbTmZ zbOJUsP!7`eQLj5bpzkxv*4T}wn{K=Ft*F6hPSo|px$Y{G{sVxpU_4{-VWPIJ{1C8d z^3H^?k)iRLAVe0F5&Z=0D}%Kw%IsHm*zb#FB*7K$pxGx^W*wl0(HaP4O5Se4P}2b1 zH}bm!no*9WGN?-6v%g#%nvi?L>HKE_K6`BXiA@kWIYjn@{xM+A2SEdsYE<}WUf+7k zUGe0D9>dx@K-FuCt+StqG*IJ3`v1HDfN${)1F*s*5o(bsK{V>BzXs)qOQq4jiRB94 z_n(FaK;!V|zKl6Bip0Hv{;ByTYDtq~o1^JXB5B4r0GX^Y>PVG#DFws*TymyOFvD=y zzft=3phj?6u+V~4#x`lwPx)+HoSy}7ut>8}8H6!^g)6NDcwrq{6ui|CE9gM9=Njad zE%6~ftb<*J!xwC^0i29WBL6kB*`5kQyWi3=M2eNck!ZFG@GX4+7WCMt?ZI{VwWy70cf!G`#x0HoSb5 zukEMS>O(FKGA96vv6U0Rw7?9wXZ0*v?vP~((%CpqJ2}+yf9RN7*FdyQG!xyI7fr(k zqDc6ShVhCoTKVOR-Ea!KeH3Erv`K8w9BpD$o)aN|uOB1YrJ2EFm0sohum3={y!MFf z9xh-5(}=xjcb21=eTT;P;(0Oq91B$Se*y`Gg1&}~D8GouFZtyXWsxyaW-HtOd9J+xc-T%Dbsjn3O9NxP?ZxM)GU=bFNngFE1>?p7jzcetEGpGSZVlj{n173XsBHGE6A16KDq z@K!m1^>14E?Bf@w5Ly=UY z9?*1*LanF^PS#0h#%Bv5GrJcY#)jSB0)%uLF1|X5V}`H2f@e6+T^WXN(E$`$Nc9;NAMYziS7|Bt zpL{ZTdS3(vjJ_eg_CXdi(9+-PPtRHpv@-|?zF=h}65(WDls<|AWKBORmJX4ogFdqW z+e-y`&S%8|w;160c2C5jts9KR;Mp~-j!z{H2ynYaoa6@d9?u7wr~eDuGdF;s{5eyb zYo9C#7G!rhz2g9hTQ}h!y^$4As4HG_|3|LQPs{YQtrziMcz^dJW?hV zZI5B5s(Ur6V^?3@4lg?qDqtY~0>2 z_MmFO(FxIUYZi$b{bZ!p_wZC5{29Cj4!a^M`3+-UiPG>&YR?An8e0>%iAJ z|EURF65LEc{fQy~_ne4X2x{Z};>*{MOGR9J-}dbY=#<~Z%9!U8SiLD!rxa;9u%KO% zl*JBuhCbr@tZB+?qm!SPw-P0_n@xm{Dz_rDr7-t_0PWW4+fUyJal!efModK-2fi^l6VZ2x80R8@6^bC(OTCz z@t`V%AKx>=QUECuP~*WG!HqO9>d9$;fAy>RWV^}aacTnD@)&|bvu4H;}TKNp`u zzBXggF{^Or?`N?Mtna(+8sJ5+E9AzpZiW^nHn;aM@@&~rV#nqpi@Dv=PvBl$tct4k zcTw~7#l`jhh}2_6r3b2sZy67Hb2u||+p@5Kg(Gfq6>M_ImqXe*H$cd>`@l@!dZgZX;t7*T8eV@YWYt~0S zbUiKn`2c?ceb8a5>!Vj&h}y~8MPL^D8f2CK1c)i71KE}_G4D(pupqLsoFbIu9nzjB z%+j6xY`BME=8&%ef3ff^vY2i%0AgqSSHq+#orfF6?lZqtJ`L4Skijsj$G2lD-a*pFi!mKL=y4j_LJfG00~D5%T`X+>9ZPauJbQO+3XeYGpMY7D}7AnR~==Kf3l`oam>T;zP;D?MjRI#y#86) zHD~>KK*F8HUoEbvl1Hayrw40)32I~kgYSc*4S3bq1|0vr-<6zZTAqQ*ov(z<%I^_s zf_1-Ay4NOwR0htnVFsvqR%@)3KJYvZ0=HkDbzI`AE5D<)+D1pq=C3S;N5?wcD8|wa z_>Ra9%$)=V`DG-+i*oH-=<3Nn{7~DuNiPaX2<4`l9-ZFT`7KM?<*@CWTgV5t#Y4l}5P$3)O zv4JlDWkxmyazZ`Y5}?k^oluGwLItR8YzYH~zwPgIhg63*Tuej*eCbB-?}SC9Pcfk#fbrD|OKMLr z*WuNPSQx|rh+D&hfxDo#3cL?{yQ7XA*mJmn>9*h-77DWfaBFwCa5O9M0!;v|YOoJx zn^|*QSlmtNWiB^7MS;iRGK$f2Hv(#ysW(6^wFPJ=b4GJrK91HlZXDSdBAQAKb7z;4q2M;ff2!uqQ(y-#9t-mg?ok!9dwk*%JiSbIP>q zSTZq-$tk4eaiQ>zxS3UJ~4}Qfrqmu|=AU^qa0F)p` zG(yf24FA9uA#P(Reby&(?*LNM=$EAN0TKU-by_Pf``GsWbkf|Uu-X5sqh7W79aHmi zuUY7EB$oHfuwXrL-yC&6mq5ifu7ypwJ&Y|6yTfdZ2baqc_xED(4b3`Q3%~VWG^z+M@{%0#}sYu z7Y@k=SO2!5< zyimT6`MY4{-LS^Tzqy8I^6*+85lZ0IUVaV6MPhlU6B+GMHO4UxV1D-Bo>OIn^4Lfd z?i>(_(9y;4StUc3N5WC@7VrjH|7ezy#MMySZL<+S37E6 zj_OL%MbcW%g4?bb0kP|r`SoU7yGNPgi7YeDubeox>+jQ#iMs3b=&#=B)m6DgK9|v5 zTdD)ushe;F=P$cEl!Hl?Lm(y^Xuw7icu4^M=P49ktt3Fs6C+*bh&9LWOZeby1XHY^kf!0$qtxZcfU#rO z@?mP~vn~lbLPgO1D*(%DWO&|~LFJ=&Qf1_qm!#^BnuLDx#yR6%Us%2SfAGJN#`8IN z{v5wHl?$lZY^Z;7+Z*BJIOGd~W4vPl41sQZeiOyA4akW=Fh}3O;i`$`QIPRHr$Kjv zP70XUrfl70xJ?CF%b@buv`}HWk)k4XNs9&j0*piw;m)Wu`Nw8rw$eZu5Qk=-0CV)O z*QTNw% z@5PXa<|xNH!83=chQnH&!^?(KpKE@|->!@pXx^IZlL0#PU`$aqd?%gfWqHo3T-fJP z)d4~d+Aih!xK3Fghn?Riao#Sj-2$Li9xvkc4SKJYnD7=43-%YL z6ZU3kjk|*QDyG&O%YK1k06QLVndZO1ikI|2%~+Lp0D69>4fk9u{-HM*pK`#YF*LsS zA1vGKMjq$@(*%HJcuZ;6JMPIrCP4{|)nh>HBa#4aR&9r>4XA(o0haWzKAkwMK295|Mg(9~Q=Tt~(GZqzMwoJ!3n$(1l^oLd#y z8?mZFO|dYBXz&%dMp{8|iYFvNXhJBa&amStdj)rhjI1ND`cpgls^r7{n3J*ILs2)( zrB-Sffm5t(N*t(_q9_Qc9Ec9bVE4U4Wu%~^q4#F)H7+)V zmO1Bjq@GsPTz&%v;>rEdTo*emrztzx{OnaQUGm`eX?nYV|97R3kd~|&pp}`KK>luC zh2v{WLX{R~o|S+9?;Ybj^)kh`MO$ZTKa*B#39`k1DqbiLTN5Uj>SjYzdND^D2>O1t z(&BDib3svE8ZU9549Q*dO;E86b}wvtx*?s3p@&{iwg1HML^x!6a3 zTKDGlQgVurLQ2|*T3Ke%@$_77S7`|6{M{ivNJ3L)S~EO%lTmhA931zwNf6PI{rpU` zDo@9CZzA4GS7NBxtJ>83==TmJ&MNH`?H~Ag6>CPLvbsy(g>r7wQSn`u<7>KhuTel` zS7R-1afa@L-LfvN$I258;{eT-&{Fb!K^*v%_@XWjeB<(ul5zdtgqU|CY?)qm{dm#X zo8XkAbl@%RcO2?~cNk;CeJ$Ss*SR`ZF(_j_9C*vxVj#&&oSFXQ_fD3p#D_J-{1*dl z#uR-^@pNR!<3xQpkz~@JF%^u!}!Fg zwz!F0{d907Wzs)2r0b4Y7^MCamc`4NQea)bdC}seXlb3<< z$S%Hi@s&e?JO~Y>YS)i>6rPH@@;ax)JI_?S6MI+B$da_zRo)`1=y2F%Tx?DzZB5mCq0zr)0gDP+@gQcu_-$689ue>|(Hy2zzj-0*fXo%m=2 zCjl4gNVa~=+>N%%d;cWm@6Tg~=W9PBWEiSL2cCF^apI212VmWrs{voEa`Yi&^FyLj zgI|FQzEc!*i?N2C?e}PqCig0JU1y_J=yXCp-wqoU3-#@N>ieZP@*CJS$*Mr$qQALX z@zkOnq&-KsOs~z}zVvl_Y6jrAww4u$+%>;T3=l2zD!WQ>dM8piC{8kjlkh5vYKCv5tuDQ79IljGnZEOJOGNm}6_SC_rN!rl2%Gh?EbMw_I zfF%z_dv>9HaRrtyC3-f%ie?Mo)Aelz0_$uGTNWyyA$z)1^!rW5$ zkOJ;=)3@QNlSQ)b-N6zJayNpxqLlK2xA{V2IBz#;vI)C#f(UMIU)Ekm1(;lKc)#Nd zWGrmOogFl~2<_axC*$4a3uGSF{~-Qo@#K{ZMS|u;D=R`gPJ=W|lc#pUo$yfTx`vAJ zM0$*hOn}ac6o@m{U4&T`d35*8EzZ8o^ zB{WxW*|@$?I~~_m=>ur1_~8mOJTERL_EiGTDo~vlhwf{M9K~=**eVnW7bM8YxQ|6h z9TUw}f#Bw5vInW{IEYf__N|9y4?sn#-}{P-Zb7pMkqoxm-EO6qyrJ*v3yO5FY@>du ze!+SBE0~!(Dfi zJI7UNri%Z0iydY8_GC=M5N`nzRDXcJJvIF`d#8I5b@$A#OfR!iL*!#nIOo!BiSDaY;SCa78F zXJKGhFn#Jrn}W@`BKB zAHv?aiiNNbw91eTkSzK*#tKr;!~;b7ej_nD($OB3q;-Tq@cxIasMe5ZvOOOV z{@XmfPTo?%;0B=n_jN2xvnud&P~Y=wQn(Mx+YY+mZ4VN$GBpMZ#cpuelO!VD>zjSt ztbZ^PKr3jqFR>D2K8*I=YkP8gzDX{Pf6Evd=h}Nt_njwp)-FJdW{cp)-soL~i?dBk zBgg9B%G@ExLHoM2r^XG5e7rxaW_xuNi&J9XXMf#Q+1t9IUCztJtKswWWOSINAQcrU za=)k*Up(XvwM-w>nlJ-8u4kJ&d&a%do z>--T5RcEx=yt1GU6yrH(>Zd;6_#~DQnRmuskT1chDejmRiI_1XxV|x84E3Yx=e(94 z&?SM4(5hqOxbcW%_ibgMJI_hpaL$b?t8Gka&~;1@z@OKxEB^^3Ik!5-Gn2vIBGI?_ z^QQ-A8$y*m5U{yFW2bxoGyv+Lh5!bU0oKEkHc+wmGu)S%ei z)M;Sq+%XU3`|KYS#37=qhB|ehUrT%Tek=81aUrbwCgf>*lPT(a%t7tSqh_XUVf!exNr?$9nPW%G@ zhuU5l*Z)3L$4(YU?~`sftx5d+Rt-EPu3h|8rrjx?&6Dj-n3kiBZYD@!FY|dt6WZT4 z<==jYE=tLJ7@67dFLdE`i`E*<;QiJ0K6vE3IbYP0_IHKkfxAy6s^pO$YwEMjj%J}{ zv={i=8Uuk`h23};e*M4t0?5k^peCu@82y0E!)=Tm$M?XT7`6TFq#bLA6MFva#zd z-jaW{-wYiN>govs!>~iJBb6`?o?V4FFtZaFDqnzQ(n1TAeJeCnh#Ekj6)OAO1kDE4 z+-oCo>NRT{@6ufQ*rn(mzTWv@f5ADQRUwh&G&nc-!x9Hz2GvfN5#&{v$xZX~>IQrc z*o!K&M5Eh%C}zp22eo@+aoiCuWt~?H71=vazXn8eLutFL_h)P4^f!HQqaQunKU`V$ zb&V@AM5_8fuN5zw6vlevrfL{ToOx>#eZ`E>8B9!4-Cif%pjy|6ZA$*B{gUTn*`Cg; z?jyej*At5DnSBy&mw_l*?wmuucM1=h#P53wCX5^PiOeh(M)uhZ*_06K8CoxsxGnw^ zM`J(R9hn5`$c;^XUVL+n?I9<%!-^J?5iG>F|>_{RJ$N&3*_QjKzvTur+0a3@{>WzjqPqWUj^~i!NCq@b2 zn-84>Xsmz~faeZ)fyY0djH~L$yb+|!bagBCDnnve0m+a0FvJJPgH z7B#|+oF`yj2td({a8<97Aq}XAxh#&k$|!OLhR3OLnea1v5~O}cLAQs1tZeo&eWo}C z@A_uO)^GqUH9~}t4L`t`s{t`3+!Sj8WOM8P$^x{(V&JdVEE5aH@w^?6B)8PmXC#q% z(>tDPU+X>p3TuZYdHg#Uk802`z<7gy{+ zI;{+|Hw;9|oe2fII`^0cAh|9M^?Z1ls?Msk*7?-yq%%~gizV|aeg=k<0e6t-ahP>q z+%3`}mCOXqSUzw~-K=5UOSkc34N1gQDp0=tpBL~OW=&?y04%c=;~XKE-a@^iv%K$U zB{O*;J|!>OO>xVuReNC~w*`-^ZFKj63+_c^P|Y&MDUiRE0f{#Fvod_NuiI~3CeYf^ zYtiS9BuAkwK4GUHwa7leQ(Yuw`|~+!l@s4J%PA5z_5m|_lnE`bXS*<%xunWz`S9Q* zKg#bB;{Sl&?9TAQF!wpv&sc4GOLh?Xx?}rz<`Nl5g4t&8aQDdug6Z`vy>5t7b19eX zCqx#P66X@<7KdnFtkve1K5$v9IG^!P>^;hqFICQ{G$boRcN@=Xgim-gwie+oekva! zxi?bCXEVfN^r+X^i#>7^AACUo&;Wpysc=cRzAh2JCp{>aIym@U_J6@B@IC0L7s1+%dsxhlkLjHycs{EA4J`ssSwBQQmwrF zOcK%8t)7^~L`seLDen0G!qCISfB#9rzf8upc>^l3*c{KNCft*7V8ipTyIAktn$|_5 z_B9o7b2ufFf`1@GsDAP!fKnmKSmKbN+9r#Q_1kbq=c18?Vxw?|yclOljSvxn=3Oyg|i@-S(caobXurP7W!l>Ed2t(urFT!~iNL%#Hy1y5fMM zAekD_DjALX*+>$N+u+C~AeA-hI%N7XLswbY@TJLjG~t3ONPHM>a!3Jat`5)K<}bxd ze{0i$zrjH7Bi&bMWv{;0gKVqe^%`~b=1>7QWR)QS(1QiZgD5ePTk04paI3yNt|BZ8 zwsU8Q5Zu%gY#NOrO(gkCazGL$4V_!qt}}uWwi_xlp{Ya4+Kso?iPCdY8nJC&e;0Gg zMlYEFCABeTX^9n=*B?`7h;tHO_&SeWg}t&Q-IT>4TBcdO49^=Do;s@Z4C}dD1vQ_< zsVke=7^eOkrZmpFZaC$8Kf_$Ms3ADOMYlv36u+58B6gZ$CS_gb^L6*DVmcR361QIY zqHWic=P zQq+CBKXgmf6|wDc{qA88aOos49{FK-F!lweeQ{hG|>bE@M z@GpMZ@nSrT%%5JP0C&?(_0Y=lWnhJ<;SDytRr{7;9OlNviFqbr{7TyA#LZy;h~r)Y zdW#z>Bvl|v)2Ho*8z|O8mbGy~d9mz8nj^J?YOWDPMDY5ttm&{+swU zG_pyTGe|{v>#~cW3w&i@DKvY^Bs(u5cs9-XNtsL8;vt z$43PGZup)5b*HDa3_^$9r%1h&eB((^XM!txg0KFN{?NVn4r3V4HtbFJ1)lyak=9+wSKXYmUqa7~a`t>bFUn;e_$Eo~Yz0-> z6){vuvbVF$vF)(o$S5xcy0Uo1#khnCd%5bk_9uU2JJUWAzU4R!JQ&g8#!olj1&6!MDSbr8v&c0m&8;*hM5Z^H>AU!;WSF_?}}1H zIhwy!kHDhk?NyZ?0T)~WtKja^zA`jflj?s4*Y=BqdD~|egC!72h&?z~L24kTv_d2gW?-abhOD}V2MFH*q$Rje zJBd}~*amug(ktNa?il_8F`PAlrv}QhAR`vgmU%HN#+$<>?vFW*!A*6h&EbDk^}{QK z5s0QOW{a9g044V;4-HT1otFP5ql42G-inRfu8YG$GN`kpBj7JpIN8nA;%alz3 zrT1tHdeXV&r|gOc#y4f)d-?W;sK2r{JF;Z4vffX_echj;lFWNQu39v@y=jn0OdRUO zod%GLsS65LMaP#Ur|(aK%rF~$Fk9^J*l^l^_yv40`{@y)pJVkQD^P6u{B!!d;a=k3 zJ#-uk^(*^Cm|udL$H;bGs{3hHMP*V&+VA6~{X*!mNw*J_E1AGml8ApRWdqHvM2yM`=)+E8C>MMbL!F!bad#7^DuoxKPhmycAiJv9zu5CTP+iKdqpyiIN%dEnbz@5rcSjm3 z0NaZeQ|Gqt%NAu{PSjQ}=m2$iO^iU~p@Ss^5CcZWb*4kc>uG_izO2ddtIy<2G)`k@ zzFl329<4`kGgN%|JcYm=(jvZ=Gl1?>Z;M)JOB?`1bY*#D+aRcY+l#w`YNNsEk3_~E zdEHt5s()UVA9qS>{rfY*%+!vSZx~SBM=yxX4R-tZJsp6<<@80e%*B-JAtjq7sCVbx zgUd}o3A4012FCc%*B@a9Z`DA=K!M7x(p-9y7Y(kj_TL*>EGu7#_Nu+(^{=n`#mUM` z5Pvz~Bg7_rs5&3tDcC?#8d1ne0%qAG>3R*(RGAVLDB_!WMbiJR!KeFv$+XW{8n|l5 zr|#E#xyD6rtt9omyJ`!W#hhVRIYfFXR--ykYeX?SN;N3jT!}A#@p-2|ab7iFdEA+= zX-~`*bc(J>uDaOh2=1l02*}E!-~tRD4dGf3AEUZIC)zWD0x%SHyqgBCiKCmUPh7o#_MBvaO__6@hjAH+!F@5#!+Y=AxHWdu> za;ttvz1x7Ge$$JM$3Gqb*R8GWjVL-*y842ELA*iazSS=q{JR%hfAVIYG(h`*$s>Q` zTSsV7x~tjFPuOLaHs~$?7Htv@N|59*j_0zg2{Rf_jk>y}3%-^;687ri19d*X`e)!ywK2H;4D_ z`Y&*q!d^O(l`OxEocPiC61NGu%1JkKPd2N^8C*#^^_GrW8u~%C1u|X!Ll<%bvvO;} zEyKC4Sw9BW+9EiCWrOp?1enCq?vT z>5nP_WtDb{V4jy7Z(#RSb%DALgNQ@h=6VMK{X+a?+xmX%xDm4*k*=fdN|9Od6p(Vn z;J;zIif-p}1wI6DRh%yl%dKEUUddTeM#Twt_5-af0|13%(sSd(*ROq=7uWK)#ikI24J@x_u$?xfd{ zjm8O?R>WL9Vb*lm@A4>qu0(%UX^BWzxXs%oiU$JLKHm`f`;Y9F*&`=O-8^8P zjpV&zen_U|&h|vS<=CdfpK))$)V~d*znWTmzGJCHM3ZRg4SXE&!cvW%E04}Q1-0dX zZF>$oaWT5@evup2TwYf35|ZT;l*MHX>yi@V5rJUp%(A5Ozst7cIT3#MqIY3bo+nMZWh6u&bTAIcG}G_ z@+F*hK{D=?vqfjzn!25N6MwAFWE#{34Po?Xt<(HTc z`pG{@9~|+*$>yIY8t%fXx^8WoMtzuYR+|9sihVS7SH6APL>xTXw^N+W0Ny(p%cSZ`6U@^{Dv|-{5k?=p5b|gC&OP1=N|7v0y$UlJmDlkCITYBQJ;lp>X z`h%}--Heo9D2sr|tIEUX7cZnTIXvI)1ildMDBwo->b2~+EXd5rq*qeDe-}dQKKtA~ zr~py&AnbE(BvUvB%M&OokfGH>y6gbG=*vY45NE1vAEdjGKPu}jLM-OjI1UwdGo^G% zCqY`;jUQ8d?`ub_)P4(oWKx?5%@DXxrp%BZ%m4C(em_}>W{Api@bEZswyJWPmMmsS zHo$+x#S_vk)Rg;Lk#yE>x2_k>=pcVYx|3?jv|Gx<;rm>ctyuVUEIaN6<7fBy2O@f0 z1XOY3GvkhgCn2q`==>ek!zE=R>NK3_rC4$ZJsfwGT)_-wnz5rOv3s}3h(<;ku0Ny9 z^piJuZ%DD15)OsxNmPP^p$7VFs{iu>O8t6_p=&9(o5I3qH~Bx!d^LOL4FTYwRoP04 z^jXYtoH`ea*_H7%EI4>8UI!XSj5o~YFKnFx(AQr>leK~M?6|n)M!ormzZII4uw`1$ zUrJC_M!Ex%A-F!ve;+IA9&%*FVU~FT*4Ig1Ic8D*E=(5e>k6$OpIg>JOuKj|nfeYX(p`d-$4T8mp+l zq^!g3<7esHhlE^rZ*bt~T>@Xk?87{AHu5c85(6BW0>`D zmc(Q4@}KjZ$@u0WfDqwTBWs6A3wz&5=r(J16Ln$5qC#6wy>wm5-d@8Em2*CPqeiiCsu_*^MmU*f%J+Hw zh;g}!DkYTW9_KLqyBp_nK^v%gBON?gY0YgGePEnwkNT$BS1?DWhD(80gdtFS9}52- zC*+^aksSG_+(aW~Uqss4PWrPW(;I4^IV$G`;1|m}+{rG8NixOx?z zl4lxSQYAjLt@Z(Y4@S+6;NGv7Rmk~^{PDN=q>$ZyO<&0Ccb{8@>i_y#^@-RVkjQ>5 z1MH~yvtrlWeU%tK3W0&)bm%NIIH1$%{jJ*WdG(b0Z79(;a^~wc?w_xArN4AiiUpp= zbAjajlZDGON2hClEsacikQenQ6xi9oX3sJ#1G7~B?6RkDCwmZ8yhEYM>5@Z=(k)VS z_@oZ(3$Xc^KIU@LBj)n*PH}@6ZU!@Sa|c{A0Xj;=Vxyioz10lT&}AcLV;NH1+8g;b zSe?7^dv)mTz?&Ynq`fW4Tg!og^k;trU=9PRyFq8jCOa~QSssD;coYPuUV!6~^c z9-cwb+_vfe}k;1TE>apr*s<4L-SAma)rw( zFZQj+Kwl&X5M{+dkjmZ68UAxOxHaHs_bV?WrDem)e0EzC%RA0QuyEjq`5A{&hYoFG zo^q?7%DoQ%<}S?BAIKe(_y{=FHBZVuwhNK499()MA&OPrFN}TZ)o(V7w5;66UOZQH-NVdHCO5*TA6C)@Xm__HMEnV4JDV|fFt{+Hw9hu z^-ZS(!Rk6+>NRDmnd=`WO;W&`Y3)DAzhLAe9QKGnE5CopD-^}#Dx{q2Q_5DNcBL@$ zzz?lesI2mXX;@pWPbqQ*U2u=87c^E5>7DQmpF#B5!(K;6`E@o&jbB{YoUvhZk#$G_ zkD@S^eJ~%(1@eR=Ps%;qHL^D}gcZJw?A@P23z^$Hu@lzz`MFj%M>HK0jQI(KgO}Jl zzTOQ-egEQl;Z)a~#nuhG7w#=WU3M+kssIki7-(HL)Zs3>gR~ozgyGb^Uis~)#9o5G z53(Du-!E3;5yznFQ7k`#1AfF>vR%NPE#yR-++(+iazDJhDZ!ZLlINjtt870tmk>m? z3H1?Ju0Y)^%`BrTYU@yU=Ev`$=!`#vm(97^XpKIv#x1GY^()2Qzz0F zXNx00ix%sBubAmR1Cs!!@=);r$g^yKOVNP0j3PrGXIY{H(W@yO8LGJ-lX}$5q2Xdsi=s^ zFvcPM%m;NyPc(pd-!*2d)lVi(15-~*234Cd zcZQa}rIjsPl31v`N{$;@djFF+I^w$ElVtd4Q-&0Yi{0xQtV}GKHWd<_K|MUnng`SH z5WSsAw-Cv{F-NnCi_ocv4D(|gI67pb0?#+M^@m)Ge)3B}A>DhN+v80<5)uy>I@c_6 zsr)K+e<0B!&v%P#d)TV(vU?$cPyxg;TButqTIX!tBr!?f9uFXHM84{obwV_M30Gh3 zv~cN>yb)otv;QP}n1+2UGEC=xXjqKOf-NmH(a&C_d)C1R z=o7HlGJy0F#8q`m(LGiA-e!^?zR>UXoXC1K*>k;X)38GuXHT8(QU^bzsl>kreJw&T zdjA8yOa%{|n{afnLW!OR&c!D|5n3=2#Q&4YSUdZKp0@C@$Cp2#CUw5MmY0* bIx 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