gitextract_bk3gpcyp/ ├── Podfile ├── Pods/ │ ├── Appirater/ │ │ ├── Appirater.h │ │ ├── Appirater.m │ │ ├── AppiraterDelegate.h │ │ ├── README.md │ │ ├── ar.lproj/ │ │ │ └── AppiraterLocalizable.strings │ │ ├── ca.lproj/ │ │ │ └── AppiraterLocalizable.strings │ │ ├── cs.lproj/ │ │ │ └── AppiraterLocalizable.strings │ │ ├── da.lproj/ │ │ │ └── AppiraterLocalizable.strings │ │ ├── de.lproj/ │ │ │ └── AppiraterLocalizable.strings │ │ ├── el.lproj/ │ │ │ └── AppiraterLocalizable.strings │ │ ├── en.lproj/ │ │ │ └── AppiraterLocalizable.strings │ │ ├── es.lproj/ │ │ │ └── AppiraterLocalizable.strings │ │ ├── fa.lproj/ │ │ │ └── AppiraterLocalizable.strings │ │ ├── fi.lproj/ │ │ │ └── AppiraterLocalizable.strings │ │ ├── fr.lproj/ │ │ │ └── AppiraterLocalizable.strings │ │ ├── he.lproj/ │ │ │ └── AppiraterLocalizable.strings │ │ ├── hu.lproj/ │ │ │ └── AppiraterLocalizable.strings │ │ ├── hy.lproj/ │ │ │ └── AppiraterLocalizable.strings │ │ ├── id.lproj/ │ │ │ └── AppiraterLocalizable.strings │ │ ├── it.lproj/ │ │ │ └── AppiraterLocalizable.strings │ │ ├── ja.lproj/ │ │ │ └── AppiraterLocalizable.strings │ │ ├── ko.lproj/ │ │ │ └── AppiraterLocalizable.strings │ │ ├── ms.lproj/ │ │ │ └── AppiraterLocalizable.strings │ │ ├── nb.lproj/ │ │ │ └── AppiraterLocalizable.strings │ │ ├── nl.lproj/ │ │ │ └── AppiraterLocalizable.strings │ │ ├── pl.lproj/ │ │ │ └── AppiraterLocalizable.strings │ │ ├── pt-BR.lproj/ │ │ │ └── AppiraterLocalizable.strings │ │ ├── pt.lproj/ │ │ │ └── AppiraterLocalizable.strings │ │ ├── ro.lproj/ │ │ │ └── AppiraterLocalizable.strings │ │ ├── ru.lproj/ │ │ │ └── AppiraterLocalizable.strings │ │ ├── sk.lproj/ │ │ │ └── AppiraterLocalizable.strings │ │ ├── sv.lproj/ │ │ │ └── AppiraterLocalizable.strings │ │ ├── th.lproj/ │ │ │ └── AppiraterLocalizable.strings │ │ ├── tr.lproj/ │ │ │ └── AppiraterLocalizable.strings │ │ ├── uk.lproj/ │ │ │ └── AppiraterLocalizable.strings │ │ ├── vi.lproj/ │ │ │ └── AppiraterLocalizable.strings │ │ ├── zh-Hans.lproj/ │ │ │ └── AppiraterLocalizable.strings │ │ └── zh-Hant.lproj/ │ │ └── AppiraterLocalizable.strings │ ├── Firebase/ │ │ ├── CoreOnly/ │ │ │ └── Sources/ │ │ │ ├── Firebase.h │ │ │ └── module.modulemap │ │ ├── LICENSE │ │ └── README.md │ ├── FirebaseAnalytics/ │ │ └── Frameworks/ │ │ └── FirebaseAnalytics.xcframework/ │ │ ├── Info.plist │ │ ├── ios-arm64_armv7/ │ │ │ └── FirebaseAnalytics.framework/ │ │ │ ├── FirebaseAnalytics │ │ │ ├── Headers/ │ │ │ │ ├── FIRAnalytics+AppDelegate.h │ │ │ │ ├── FIRAnalytics+Consent.h │ │ │ │ ├── FIRAnalytics.h │ │ │ │ ├── FIREventNames.h │ │ │ │ ├── FIRParameterNames.h │ │ │ │ ├── FIRUserPropertyNames.h │ │ │ │ └── FirebaseAnalytics.h │ │ │ ├── Info.plist │ │ │ └── Modules/ │ │ │ └── module.modulemap │ │ └── ios-arm64_i386_x86_64-simulator/ │ │ └── FirebaseAnalytics.framework/ │ │ ├── FirebaseAnalytics │ │ ├── Headers/ │ │ │ ├── FIRAnalytics+AppDelegate.h │ │ │ ├── FIRAnalytics+Consent.h │ │ │ ├── FIRAnalytics.h │ │ │ ├── FIREventNames.h │ │ │ ├── FIRParameterNames.h │ │ │ ├── FIRUserPropertyNames.h │ │ │ └── FirebaseAnalytics.h │ │ ├── Info.plist │ │ └── Modules/ │ │ └── module.modulemap │ ├── FirebaseCore/ │ │ ├── FirebaseCore/ │ │ │ └── Sources/ │ │ │ ├── FIRAnalyticsConfiguration.h │ │ │ ├── FIRAnalyticsConfiguration.m │ │ │ ├── FIRApp.m │ │ │ ├── FIRAppAssociationRegistration.h │ │ │ ├── FIRAppAssociationRegistration.m │ │ │ ├── FIRBundleUtil.h │ │ │ ├── FIRBundleUtil.m │ │ │ ├── FIRComponent.m │ │ │ ├── FIRComponentContainer.m │ │ │ ├── FIRComponentContainerInternal.h │ │ │ ├── FIRComponentType.m │ │ │ ├── FIRConfiguration.m │ │ │ ├── FIRConfigurationInternal.h │ │ │ ├── FIRCoreDiagnosticsConnector.m │ │ │ ├── FIRDependency.m │ │ │ ├── FIRDiagnosticsData.h │ │ │ ├── FIRDiagnosticsData.m │ │ │ ├── FIRFirebaseUserAgent.h │ │ │ ├── FIRFirebaseUserAgent.m │ │ │ ├── FIRHeartbeatInfo.m │ │ │ ├── FIRLogger.m │ │ │ ├── FIROptions.m │ │ │ ├── FIRVersion.m │ │ │ ├── Private/ │ │ │ │ ├── FIRAppInternal.h │ │ │ │ ├── FIRComponent.h │ │ │ │ ├── FIRComponentContainer.h │ │ │ │ ├── FIRComponentType.h │ │ │ │ ├── FIRCoreDiagnosticsConnector.h │ │ │ │ ├── FIRDependency.h │ │ │ │ ├── FIRHeartbeatInfo.h │ │ │ │ ├── FIRLibrary.h │ │ │ │ ├── FIRLogger.h │ │ │ │ ├── FIROptionsInternal.h │ │ │ │ └── FirebaseCoreInternal.h │ │ │ └── Public/ │ │ │ └── FirebaseCore/ │ │ │ ├── FIRApp.h │ │ │ ├── FIRConfiguration.h │ │ │ ├── FIRLoggerLevel.h │ │ │ ├── FIROptions.h │ │ │ ├── FIRVersion.h │ │ │ └── FirebaseCore.h │ │ ├── Interop/ │ │ │ └── CoreDiagnostics/ │ │ │ └── Public/ │ │ │ ├── FIRCoreDiagnosticsData.h │ │ │ └── FIRCoreDiagnosticsInterop.h │ │ ├── LICENSE │ │ └── README.md │ ├── FirebaseCoreDiagnostics/ │ │ ├── Firebase/ │ │ │ └── CoreDiagnostics/ │ │ │ └── FIRCDLibrary/ │ │ │ ├── FIRCoreDiagnostics.m │ │ │ ├── Protogen/ │ │ │ │ └── nanopb/ │ │ │ │ ├── firebasecore.nanopb.c │ │ │ │ └── firebasecore.nanopb.h │ │ │ └── Public/ │ │ │ └── FIRCoreDiagnostics.h │ │ ├── Interop/ │ │ │ └── CoreDiagnostics/ │ │ │ └── Public/ │ │ │ ├── FIRCoreDiagnosticsData.h │ │ │ └── FIRCoreDiagnosticsInterop.h │ │ ├── LICENSE │ │ └── README.md │ ├── FirebaseInstallations/ │ │ ├── FirebaseCore/ │ │ │ └── Sources/ │ │ │ └── Private/ │ │ │ ├── FIRAppInternal.h │ │ │ ├── FIRComponent.h │ │ │ ├── FIRComponentContainer.h │ │ │ ├── FIRComponentType.h │ │ │ ├── FIRCoreDiagnosticsConnector.h │ │ │ ├── FIRDependency.h │ │ │ ├── FIRHeartbeatInfo.h │ │ │ ├── FIRLibrary.h │ │ │ ├── FIRLogger.h │ │ │ ├── FIROptionsInternal.h │ │ │ └── FirebaseCoreInternal.h │ │ ├── FirebaseInstallations/ │ │ │ └── Source/ │ │ │ └── Library/ │ │ │ ├── Errors/ │ │ │ │ ├── FIRInstallationsErrorUtil.h │ │ │ │ ├── FIRInstallationsErrorUtil.m │ │ │ │ ├── FIRInstallationsHTTPError.h │ │ │ │ └── FIRInstallationsHTTPError.m │ │ │ ├── FIRInstallations.m │ │ │ ├── FIRInstallationsAuthTokenResult.m │ │ │ ├── FIRInstallationsAuthTokenResultInternal.h │ │ │ ├── FIRInstallationsItem.h │ │ │ ├── FIRInstallationsItem.m │ │ │ ├── FIRInstallationsLogger.h │ │ │ ├── FIRInstallationsLogger.m │ │ │ ├── IIDMigration/ │ │ │ │ ├── FIRInstallationsIIDStore.h │ │ │ │ ├── FIRInstallationsIIDStore.m │ │ │ │ ├── FIRInstallationsIIDTokenStore.h │ │ │ │ └── FIRInstallationsIIDTokenStore.m │ │ │ ├── InstallationsAPI/ │ │ │ │ ├── FIRInstallationsAPIService.h │ │ │ │ ├── FIRInstallationsAPIService.m │ │ │ │ ├── FIRInstallationsItem+RegisterInstallationAPI.h │ │ │ │ └── FIRInstallationsItem+RegisterInstallationAPI.m │ │ │ ├── InstallationsIDController/ │ │ │ │ ├── FIRCurrentDateProvider.h │ │ │ │ ├── FIRCurrentDateProvider.m │ │ │ │ ├── FIRInstallationsBackoffController.h │ │ │ │ ├── FIRInstallationsBackoffController.m │ │ │ │ ├── FIRInstallationsIDController.h │ │ │ │ ├── FIRInstallationsIDController.m │ │ │ │ ├── FIRInstallationsSingleOperationPromiseCache.h │ │ │ │ ├── FIRInstallationsSingleOperationPromiseCache.m │ │ │ │ └── FIRInstallationsStatus.h │ │ │ ├── InstallationsStore/ │ │ │ │ ├── FIRInstallationsStore.h │ │ │ │ ├── FIRInstallationsStore.m │ │ │ │ ├── FIRInstallationsStoredAuthToken.h │ │ │ │ ├── FIRInstallationsStoredAuthToken.m │ │ │ │ ├── FIRInstallationsStoredItem.h │ │ │ │ └── FIRInstallationsStoredItem.m │ │ │ ├── Private/ │ │ │ │ └── FirebaseInstallationsInternal.h │ │ │ └── Public/ │ │ │ └── FirebaseInstallations/ │ │ │ ├── FIRInstallations.h │ │ │ ├── FIRInstallationsAuthTokenResult.h │ │ │ ├── FIRInstallationsErrors.h │ │ │ └── FirebaseInstallations.h │ │ ├── LICENSE │ │ └── README.md │ ├── GoogleAppMeasurement/ │ │ └── Frameworks/ │ │ └── GoogleAppMeasurement.xcframework/ │ │ ├── Info.plist │ │ ├── ios-arm64_armv7/ │ │ │ └── GoogleAppMeasurement.framework/ │ │ │ ├── GoogleAppMeasurement │ │ │ ├── Info.plist │ │ │ └── Modules/ │ │ │ └── module.modulemap │ │ └── ios-arm64_i386_x86_64-simulator/ │ │ └── GoogleAppMeasurement.framework/ │ │ ├── GoogleAppMeasurement │ │ ├── Info.plist │ │ └── Modules/ │ │ └── module.modulemap │ ├── GoogleDataTransport/ │ │ ├── GoogleDataTransport/ │ │ │ ├── GDTCCTLibrary/ │ │ │ │ ├── GDTCCTCompressionHelper.m │ │ │ │ ├── GDTCCTNanopbHelpers.m │ │ │ │ ├── GDTCCTUploadOperation.m │ │ │ │ ├── GDTCCTUploader.m │ │ │ │ ├── GDTCOREvent+GDTCCTSupport.m │ │ │ │ ├── Private/ │ │ │ │ │ ├── GDTCCTCompressionHelper.h │ │ │ │ │ ├── GDTCCTNanopbHelpers.h │ │ │ │ │ ├── GDTCCTUploadOperation.h │ │ │ │ │ └── GDTCCTUploader.h │ │ │ │ ├── Protogen/ │ │ │ │ │ └── nanopb/ │ │ │ │ │ ├── cct.nanopb.c │ │ │ │ │ └── cct.nanopb.h │ │ │ │ └── Public/ │ │ │ │ └── GDTCOREvent+GDTCCTSupport.h │ │ │ └── GDTCORLibrary/ │ │ │ ├── GDTCORAssert.m │ │ │ ├── GDTCORClock.m │ │ │ ├── GDTCORConsoleLogger.m │ │ │ ├── GDTCORDirectorySizeTracker.m │ │ │ ├── GDTCOREndpoints.m │ │ │ ├── GDTCOREvent.m │ │ │ ├── GDTCORFlatFileStorage+Promises.m │ │ │ ├── GDTCORFlatFileStorage.m │ │ │ ├── GDTCORLifecycle.m │ │ │ ├── GDTCORPlatform.m │ │ │ ├── GDTCORReachability.m │ │ │ ├── GDTCORRegistrar.m │ │ │ ├── GDTCORStorageEventSelector.m │ │ │ ├── GDTCORTransformer.m │ │ │ ├── GDTCORTransport.m │ │ │ ├── GDTCORUploadBatch.m │ │ │ ├── GDTCORUploadCoordinator.m │ │ │ ├── Internal/ │ │ │ │ ├── GDTCORAssert.h │ │ │ │ ├── GDTCORDirectorySizeTracker.h │ │ │ │ ├── GDTCORLifecycle.h │ │ │ │ ├── GDTCORPlatform.h │ │ │ │ ├── GDTCORReachability.h │ │ │ │ ├── GDTCORRegistrar.h │ │ │ │ ├── GDTCORStorageEventSelector.h │ │ │ │ ├── GDTCORStorageProtocol.h │ │ │ │ └── GDTCORUploader.h │ │ │ ├── Private/ │ │ │ │ ├── GDTCOREndpoints_Private.h │ │ │ │ ├── GDTCOREvent_Private.h │ │ │ │ ├── GDTCORFlatFileStorage+Promises.h │ │ │ │ ├── GDTCORFlatFileStorage.h │ │ │ │ ├── GDTCORReachability_Private.h │ │ │ │ ├── GDTCORRegistrar_Private.h │ │ │ │ ├── GDTCORTransformer.h │ │ │ │ ├── GDTCORTransformer_Private.h │ │ │ │ ├── GDTCORTransport_Private.h │ │ │ │ ├── GDTCORUploadBatch.h │ │ │ │ └── GDTCORUploadCoordinator.h │ │ │ └── Public/ │ │ │ └── GoogleDataTransport/ │ │ │ ├── GDTCORClock.h │ │ │ ├── GDTCORConsoleLogger.h │ │ │ ├── GDTCOREndpoints.h │ │ │ ├── GDTCOREvent.h │ │ │ ├── GDTCOREventDataObject.h │ │ │ ├── GDTCOREventTransformer.h │ │ │ ├── GDTCORTargets.h │ │ │ ├── GDTCORTransport.h │ │ │ └── GoogleDataTransport.h │ │ ├── LICENSE │ │ └── README.md │ ├── GoogleUtilities/ │ │ ├── GoogleUtilities/ │ │ │ ├── AppDelegateSwizzler/ │ │ │ │ ├── GULAppDelegateSwizzler.m │ │ │ │ ├── GULSceneDelegateSwizzler.m │ │ │ │ ├── Internal/ │ │ │ │ │ ├── GULAppDelegateSwizzler_Private.h │ │ │ │ │ └── GULSceneDelegateSwizzler_Private.h │ │ │ │ └── Public/ │ │ │ │ └── GoogleUtilities/ │ │ │ │ ├── GULAppDelegateSwizzler.h │ │ │ │ ├── GULApplication.h │ │ │ │ └── GULSceneDelegateSwizzler.h │ │ │ ├── Common/ │ │ │ │ └── GULLoggerCodes.h │ │ │ ├── Environment/ │ │ │ │ ├── GULHeartbeatDateStorage.m │ │ │ │ ├── GULHeartbeatDateStorageUserDefaults.m │ │ │ │ ├── GULSecureCoding.m │ │ │ │ ├── Public/ │ │ │ │ │ └── GoogleUtilities/ │ │ │ │ │ ├── GULAppEnvironmentUtil.h │ │ │ │ │ ├── GULHeartbeatDateStorable.h │ │ │ │ │ ├── GULHeartbeatDateStorage.h │ │ │ │ │ ├── GULHeartbeatDateStorageUserDefaults.h │ │ │ │ │ ├── GULKeychainStorage.h │ │ │ │ │ ├── GULKeychainUtils.h │ │ │ │ │ ├── GULSecureCoding.h │ │ │ │ │ ├── GULURLSessionDataResponse.h │ │ │ │ │ └── NSURLSession+GULPromises.h │ │ │ │ ├── SecureStorage/ │ │ │ │ │ ├── GULKeychainStorage.m │ │ │ │ │ └── GULKeychainUtils.m │ │ │ │ ├── URLSessionPromiseWrapper/ │ │ │ │ │ ├── GULURLSessionDataResponse.m │ │ │ │ │ └── NSURLSession+GULPromises.m │ │ │ │ └── third_party/ │ │ │ │ └── GULAppEnvironmentUtil.m │ │ │ ├── Logger/ │ │ │ │ ├── GULLogger.m │ │ │ │ └── Public/ │ │ │ │ └── GoogleUtilities/ │ │ │ │ ├── GULLogger.h │ │ │ │ └── GULLoggerLevel.h │ │ │ ├── MethodSwizzler/ │ │ │ │ ├── GULSwizzler.m │ │ │ │ └── Public/ │ │ │ │ └── GoogleUtilities/ │ │ │ │ ├── GULOriginalIMPConvenienceMacros.h │ │ │ │ └── GULSwizzler.h │ │ │ ├── NSData+zlib/ │ │ │ │ ├── GULNSData+zlib.m │ │ │ │ └── Public/ │ │ │ │ └── GoogleUtilities/ │ │ │ │ └── GULNSData+zlib.h │ │ │ ├── Network/ │ │ │ │ ├── GULMutableDictionary.m │ │ │ │ ├── GULNetwork.m │ │ │ │ ├── GULNetworkConstants.m │ │ │ │ ├── GULNetworkInternal.h │ │ │ │ ├── GULNetworkURLSession.m │ │ │ │ └── Public/ │ │ │ │ └── GoogleUtilities/ │ │ │ │ ├── GULMutableDictionary.h │ │ │ │ ├── GULNetwork.h │ │ │ │ ├── GULNetworkConstants.h │ │ │ │ ├── GULNetworkLoggerProtocol.h │ │ │ │ ├── GULNetworkMessageCode.h │ │ │ │ └── GULNetworkURLSession.h │ │ │ ├── Reachability/ │ │ │ │ ├── GULReachabilityChecker+Internal.h │ │ │ │ ├── GULReachabilityChecker.m │ │ │ │ ├── GULReachabilityMessageCode.h │ │ │ │ └── Public/ │ │ │ │ └── GoogleUtilities/ │ │ │ │ └── GULReachabilityChecker.h │ │ │ └── UserDefaults/ │ │ │ ├── GULUserDefaults.m │ │ │ └── Public/ │ │ │ └── GoogleUtilities/ │ │ │ └── GULUserDefaults.h │ │ ├── LICENSE │ │ └── README.md │ ├── Pods.xcodeproj/ │ │ ├── project.pbxproj │ │ └── xcuserdata/ │ │ └── afrazsiddiqui.xcuserdatad/ │ │ └── xcschemes/ │ │ ├── Appirater-Appirater.xcscheme │ │ ├── Appirater.xcscheme │ │ ├── Firebase.xcscheme │ │ ├── FirebaseAnalytics.xcscheme │ │ ├── FirebaseCore.xcscheme │ │ ├── FirebaseCoreDiagnostics.xcscheme │ │ ├── FirebaseInstallations.xcscheme │ │ ├── GoogleAppMeasurement.xcscheme │ │ ├── GoogleDataTransport.xcscheme │ │ ├── GoogleUtilities.xcscheme │ │ ├── Pods-Spotify.xcscheme │ │ ├── PromisesObjC.xcscheme │ │ ├── SDWebImage.xcscheme │ │ ├── nanopb.xcscheme │ │ └── xcschememanagement.plist │ ├── PromisesObjC/ │ │ ├── LICENSE │ │ ├── README.md │ │ └── Sources/ │ │ └── FBLPromises/ │ │ ├── FBLPromise+All.m │ │ ├── FBLPromise+Always.m │ │ ├── FBLPromise+Any.m │ │ ├── FBLPromise+Async.m │ │ ├── FBLPromise+Await.m │ │ ├── FBLPromise+Catch.m │ │ ├── FBLPromise+Delay.m │ │ ├── FBLPromise+Do.m │ │ ├── FBLPromise+Race.m │ │ ├── FBLPromise+Recover.m │ │ ├── FBLPromise+Reduce.m │ │ ├── FBLPromise+Retry.m │ │ ├── FBLPromise+Testing.m │ │ ├── FBLPromise+Then.m │ │ ├── FBLPromise+Timeout.m │ │ ├── FBLPromise+Validate.m │ │ ├── FBLPromise+Wrap.m │ │ ├── FBLPromise.m │ │ ├── FBLPromiseError.m │ │ └── include/ │ │ ├── FBLPromise+All.h │ │ ├── FBLPromise+Always.h │ │ ├── FBLPromise+Any.h │ │ ├── FBLPromise+Async.h │ │ ├── FBLPromise+Await.h │ │ ├── FBLPromise+Catch.h │ │ ├── FBLPromise+Delay.h │ │ ├── FBLPromise+Do.h │ │ ├── FBLPromise+Race.h │ │ ├── FBLPromise+Recover.h │ │ ├── FBLPromise+Reduce.h │ │ ├── FBLPromise+Retry.h │ │ ├── FBLPromise+Testing.h │ │ ├── FBLPromise+Then.h │ │ ├── FBLPromise+Timeout.h │ │ ├── FBLPromise+Validate.h │ │ ├── FBLPromise+Wrap.h │ │ ├── FBLPromise.h │ │ ├── FBLPromiseError.h │ │ ├── FBLPromisePrivate.h │ │ └── FBLPromises.h │ ├── SDWebImage/ │ │ ├── LICENSE │ │ ├── README.md │ │ ├── SDWebImage/ │ │ │ ├── Core/ │ │ │ │ ├── NSButton+WebCache.h │ │ │ │ ├── NSButton+WebCache.m │ │ │ │ ├── NSData+ImageContentType.h │ │ │ │ ├── NSData+ImageContentType.m │ │ │ │ ├── NSImage+Compatibility.h │ │ │ │ ├── NSImage+Compatibility.m │ │ │ │ ├── SDAnimatedImage.h │ │ │ │ ├── SDAnimatedImage.m │ │ │ │ ├── SDAnimatedImagePlayer.h │ │ │ │ ├── SDAnimatedImagePlayer.m │ │ │ │ ├── SDAnimatedImageRep.h │ │ │ │ ├── SDAnimatedImageRep.m │ │ │ │ ├── SDAnimatedImageView+WebCache.h │ │ │ │ ├── SDAnimatedImageView+WebCache.m │ │ │ │ ├── SDAnimatedImageView.h │ │ │ │ ├── SDAnimatedImageView.m │ │ │ │ ├── SDDiskCache.h │ │ │ │ ├── SDDiskCache.m │ │ │ │ ├── SDGraphicsImageRenderer.h │ │ │ │ ├── SDGraphicsImageRenderer.m │ │ │ │ ├── SDImageAPNGCoder.h │ │ │ │ ├── SDImageAPNGCoder.m │ │ │ │ ├── SDImageAWebPCoder.h │ │ │ │ ├── SDImageAWebPCoder.m │ │ │ │ ├── SDImageCache.h │ │ │ │ ├── SDImageCache.m │ │ │ │ ├── SDImageCacheConfig.h │ │ │ │ ├── SDImageCacheConfig.m │ │ │ │ ├── SDImageCacheDefine.h │ │ │ │ ├── SDImageCacheDefine.m │ │ │ │ ├── SDImageCachesManager.h │ │ │ │ ├── SDImageCachesManager.m │ │ │ │ ├── SDImageCoder.h │ │ │ │ ├── SDImageCoder.m │ │ │ │ ├── SDImageCoderHelper.h │ │ │ │ ├── SDImageCoderHelper.m │ │ │ │ ├── SDImageCodersManager.h │ │ │ │ ├── SDImageCodersManager.m │ │ │ │ ├── SDImageFrame.h │ │ │ │ ├── SDImageFrame.m │ │ │ │ ├── SDImageGIFCoder.h │ │ │ │ ├── SDImageGIFCoder.m │ │ │ │ ├── SDImageGraphics.h │ │ │ │ ├── SDImageGraphics.m │ │ │ │ ├── SDImageHEICCoder.h │ │ │ │ ├── SDImageHEICCoder.m │ │ │ │ ├── SDImageIOAnimatedCoder.h │ │ │ │ ├── SDImageIOAnimatedCoder.m │ │ │ │ ├── SDImageIOCoder.h │ │ │ │ ├── SDImageIOCoder.m │ │ │ │ ├── SDImageLoader.h │ │ │ │ ├── SDImageLoader.m │ │ │ │ ├── SDImageLoadersManager.h │ │ │ │ ├── SDImageLoadersManager.m │ │ │ │ ├── SDImageTransformer.h │ │ │ │ ├── SDImageTransformer.m │ │ │ │ ├── SDMemoryCache.h │ │ │ │ ├── SDMemoryCache.m │ │ │ │ ├── SDWebImageCacheKeyFilter.h │ │ │ │ ├── SDWebImageCacheKeyFilter.m │ │ │ │ ├── SDWebImageCacheSerializer.h │ │ │ │ ├── SDWebImageCacheSerializer.m │ │ │ │ ├── SDWebImageCompat.h │ │ │ │ ├── SDWebImageCompat.m │ │ │ │ ├── SDWebImageDefine.h │ │ │ │ ├── SDWebImageDefine.m │ │ │ │ ├── SDWebImageDownloader.h │ │ │ │ ├── SDWebImageDownloader.m │ │ │ │ ├── SDWebImageDownloaderConfig.h │ │ │ │ ├── SDWebImageDownloaderConfig.m │ │ │ │ ├── SDWebImageDownloaderDecryptor.h │ │ │ │ ├── SDWebImageDownloaderDecryptor.m │ │ │ │ ├── SDWebImageDownloaderOperation.h │ │ │ │ ├── SDWebImageDownloaderOperation.m │ │ │ │ ├── SDWebImageDownloaderRequestModifier.h │ │ │ │ ├── SDWebImageDownloaderRequestModifier.m │ │ │ │ ├── SDWebImageDownloaderResponseModifier.h │ │ │ │ ├── SDWebImageDownloaderResponseModifier.m │ │ │ │ ├── SDWebImageError.h │ │ │ │ ├── SDWebImageError.m │ │ │ │ ├── SDWebImageIndicator.h │ │ │ │ ├── SDWebImageIndicator.m │ │ │ │ ├── SDWebImageManager.h │ │ │ │ ├── SDWebImageManager.m │ │ │ │ ├── SDWebImageOperation.h │ │ │ │ ├── SDWebImageOperation.m │ │ │ │ ├── SDWebImageOptionsProcessor.h │ │ │ │ ├── SDWebImageOptionsProcessor.m │ │ │ │ ├── SDWebImagePrefetcher.h │ │ │ │ ├── SDWebImagePrefetcher.m │ │ │ │ ├── SDWebImageTransition.h │ │ │ │ ├── SDWebImageTransition.m │ │ │ │ ├── UIButton+WebCache.h │ │ │ │ ├── UIButton+WebCache.m │ │ │ │ ├── UIImage+ExtendedCacheData.h │ │ │ │ ├── UIImage+ExtendedCacheData.m │ │ │ │ ├── UIImage+ForceDecode.h │ │ │ │ ├── UIImage+ForceDecode.m │ │ │ │ ├── UIImage+GIF.h │ │ │ │ ├── UIImage+GIF.m │ │ │ │ ├── UIImage+MemoryCacheCost.h │ │ │ │ ├── UIImage+MemoryCacheCost.m │ │ │ │ ├── UIImage+Metadata.h │ │ │ │ ├── UIImage+Metadata.m │ │ │ │ ├── UIImage+MultiFormat.h │ │ │ │ ├── UIImage+MultiFormat.m │ │ │ │ ├── UIImage+Transform.h │ │ │ │ ├── UIImage+Transform.m │ │ │ │ ├── UIImageView+HighlightedWebCache.h │ │ │ │ ├── UIImageView+HighlightedWebCache.m │ │ │ │ ├── UIImageView+WebCache.h │ │ │ │ ├── UIImageView+WebCache.m │ │ │ │ ├── UIView+WebCache.h │ │ │ │ ├── UIView+WebCache.m │ │ │ │ ├── UIView+WebCacheOperation.h │ │ │ │ └── UIView+WebCacheOperation.m │ │ │ └── Private/ │ │ │ ├── NSBezierPath+SDRoundedCorners.h │ │ │ ├── NSBezierPath+SDRoundedCorners.m │ │ │ ├── SDAssociatedObject.h │ │ │ ├── SDAssociatedObject.m │ │ │ ├── SDAsyncBlockOperation.h │ │ │ ├── SDAsyncBlockOperation.m │ │ │ ├── SDDeviceHelper.h │ │ │ ├── SDDeviceHelper.m │ │ │ ├── SDDisplayLink.h │ │ │ ├── SDDisplayLink.m │ │ │ ├── SDFileAttributeHelper.h │ │ │ ├── SDFileAttributeHelper.m │ │ │ ├── SDImageAssetManager.h │ │ │ ├── SDImageAssetManager.m │ │ │ ├── SDImageCachesManagerOperation.h │ │ │ ├── SDImageCachesManagerOperation.m │ │ │ ├── SDImageIOAnimatedCoderInternal.h │ │ │ ├── SDInternalMacros.h │ │ │ ├── SDInternalMacros.m │ │ │ ├── SDWeakProxy.h │ │ │ ├── SDWeakProxy.m │ │ │ ├── SDWebImageTransitionInternal.h │ │ │ ├── SDmetamacros.h │ │ │ ├── UIColor+SDHexString.h │ │ │ └── UIColor+SDHexString.m │ │ └── WebImage/ │ │ └── SDWebImage.h │ ├── Target Support Files/ │ │ ├── Appirater/ │ │ │ ├── Appirater-Info.plist │ │ │ ├── Appirater-dummy.m │ │ │ ├── Appirater-prefix.pch │ │ │ ├── Appirater-umbrella.h │ │ │ ├── Appirater.debug.xcconfig │ │ │ ├── Appirater.modulemap │ │ │ ├── Appirater.release.xcconfig │ │ │ └── ResourceBundle-Appirater-Appirater-Info.plist │ │ ├── Firebase/ │ │ │ ├── Firebase.debug.xcconfig │ │ │ └── Firebase.release.xcconfig │ │ ├── FirebaseAnalytics/ │ │ │ ├── FirebaseAnalytics-xcframeworks-input-files.xcfilelist │ │ │ ├── FirebaseAnalytics-xcframeworks-output-files.xcfilelist │ │ │ ├── FirebaseAnalytics-xcframeworks.sh │ │ │ ├── FirebaseAnalytics.debug.xcconfig │ │ │ └── FirebaseAnalytics.release.xcconfig │ │ ├── FirebaseCore/ │ │ │ ├── FirebaseCore-Info.plist │ │ │ ├── FirebaseCore-dummy.m │ │ │ ├── FirebaseCore-umbrella.h │ │ │ ├── FirebaseCore.debug.xcconfig │ │ │ ├── FirebaseCore.modulemap │ │ │ └── FirebaseCore.release.xcconfig │ │ ├── FirebaseCoreDiagnostics/ │ │ │ ├── FirebaseCoreDiagnostics-Info.plist │ │ │ ├── FirebaseCoreDiagnostics-dummy.m │ │ │ ├── FirebaseCoreDiagnostics-umbrella.h │ │ │ ├── FirebaseCoreDiagnostics.debug.xcconfig │ │ │ ├── FirebaseCoreDiagnostics.modulemap │ │ │ └── FirebaseCoreDiagnostics.release.xcconfig │ │ ├── FirebaseInstallations/ │ │ │ ├── FirebaseInstallations-Info.plist │ │ │ ├── FirebaseInstallations-dummy.m │ │ │ ├── FirebaseInstallations-umbrella.h │ │ │ ├── FirebaseInstallations.debug.xcconfig │ │ │ ├── FirebaseInstallations.modulemap │ │ │ └── FirebaseInstallations.release.xcconfig │ │ ├── GoogleAppMeasurement/ │ │ │ ├── GoogleAppMeasurement-xcframeworks-input-files.xcfilelist │ │ │ ├── GoogleAppMeasurement-xcframeworks-output-files.xcfilelist │ │ │ ├── GoogleAppMeasurement-xcframeworks.sh │ │ │ ├── GoogleAppMeasurement.debug.xcconfig │ │ │ └── GoogleAppMeasurement.release.xcconfig │ │ ├── GoogleDataTransport/ │ │ │ ├── GoogleDataTransport-Info.plist │ │ │ ├── GoogleDataTransport-dummy.m │ │ │ ├── GoogleDataTransport-umbrella.h │ │ │ ├── GoogleDataTransport.debug.xcconfig │ │ │ ├── GoogleDataTransport.modulemap │ │ │ └── GoogleDataTransport.release.xcconfig │ │ ├── GoogleUtilities/ │ │ │ ├── GoogleUtilities-Info.plist │ │ │ ├── GoogleUtilities-dummy.m │ │ │ ├── GoogleUtilities-umbrella.h │ │ │ ├── GoogleUtilities.debug.xcconfig │ │ │ ├── GoogleUtilities.modulemap │ │ │ └── GoogleUtilities.release.xcconfig │ │ ├── Pods-Spotify/ │ │ │ ├── Pods-Spotify-Info.plist │ │ │ ├── Pods-Spotify-acknowledgements.markdown │ │ │ ├── Pods-Spotify-acknowledgements.plist │ │ │ ├── Pods-Spotify-dummy.m │ │ │ ├── Pods-Spotify-frameworks-Debug-input-files.xcfilelist │ │ │ ├── Pods-Spotify-frameworks-Debug-output-files.xcfilelist │ │ │ ├── Pods-Spotify-frameworks-Release-input-files.xcfilelist │ │ │ ├── Pods-Spotify-frameworks-Release-output-files.xcfilelist │ │ │ ├── Pods-Spotify-frameworks.sh │ │ │ ├── Pods-Spotify-umbrella.h │ │ │ ├── Pods-Spotify.debug.xcconfig │ │ │ ├── Pods-Spotify.modulemap │ │ │ └── Pods-Spotify.release.xcconfig │ │ ├── PromisesObjC/ │ │ │ ├── PromisesObjC-Info.plist │ │ │ ├── PromisesObjC-dummy.m │ │ │ ├── PromisesObjC-umbrella.h │ │ │ ├── PromisesObjC.debug.xcconfig │ │ │ ├── PromisesObjC.modulemap │ │ │ └── PromisesObjC.release.xcconfig │ │ ├── SDWebImage/ │ │ │ ├── SDWebImage-Info.plist │ │ │ ├── SDWebImage-dummy.m │ │ │ ├── SDWebImage-prefix.pch │ │ │ ├── SDWebImage-umbrella.h │ │ │ ├── SDWebImage.debug.xcconfig │ │ │ ├── SDWebImage.modulemap │ │ │ └── SDWebImage.release.xcconfig │ │ └── nanopb/ │ │ ├── nanopb-Info.plist │ │ ├── nanopb-dummy.m │ │ ├── nanopb-prefix.pch │ │ ├── nanopb-umbrella.h │ │ ├── nanopb.debug.xcconfig │ │ ├── nanopb.modulemap │ │ └── nanopb.release.xcconfig │ └── nanopb/ │ ├── LICENSE.txt │ ├── README.md │ ├── pb.h │ ├── pb_common.c │ ├── pb_common.h │ ├── pb_decode.c │ ├── pb_decode.h │ ├── pb_encode.c │ └── pb_encode.h ├── README.md ├── Spotify/ │ ├── Controllers/ │ │ ├── Core/ │ │ │ ├── HomeViewController.swift │ │ │ ├── LibraryViewController.swift │ │ │ ├── SearchViewController.swift │ │ │ └── TabBarViewController.swift │ │ └── Other/ │ │ ├── AlbumViewController.swift │ │ ├── AuthViewController.swift │ │ ├── CategoryViewController.swift │ │ ├── Library/ │ │ │ ├── LibraryAlbumsViewController.swift │ │ │ └── LibraryPlaylistsViewController.swift │ │ ├── PlayerViewController.swift │ │ ├── PlaylistViewController.swift │ │ ├── ProfileViewController.swift │ │ ├── SearchResultsViewController.swift │ │ ├── SettingsViewController.swift │ │ └── WelcomeViewController.swift │ ├── Info.plist │ ├── Managers/ │ │ ├── APICaller.swift │ │ ├── AuthManager.swift │ │ └── HapticsManager.swift │ ├── Models/ │ │ ├── APIImage.swift │ │ ├── AlbumDetailsResponse.swift │ │ ├── AllCategoriesResponse.swift │ │ ├── Artist.swift │ │ ├── AudioTrack.swift │ │ ├── AuthResponse.swift │ │ ├── FeaturedPlaylistsResponse.swift │ │ ├── LibraryAlbumsResponse.swift │ │ ├── LibraryPlaylistsResponse.swift │ │ ├── NewReleasesResponse.swift │ │ ├── Playlist.swift │ │ ├── PlaylistDetailsResponse.swift │ │ ├── RecommendationsResponse.swift │ │ ├── RecommendedGenresResponse.swift │ │ ├── SearchResult.swift │ │ ├── SearchResultResponse.swift │ │ ├── SettingsModels.swift │ │ └── UserProfile.swift │ ├── Presenter/ │ │ └── PlaybackPresenter.swift │ ├── Resources/ │ │ ├── AppDelegate.swift │ │ ├── Assets.xcassets/ │ │ │ ├── AccentColor.colorset/ │ │ │ │ └── Contents.json │ │ │ ├── AppIcon.appiconset/ │ │ │ │ └── Contents.json │ │ │ ├── Contents.json │ │ │ ├── albums_background.imageset/ │ │ │ │ └── Contents.json │ │ │ └── logo.imageset/ │ │ │ └── Contents.json │ │ ├── Extensions.swift │ │ └── SceneDelegate.swift │ ├── ViewModels/ │ │ ├── AlbumCollectionViewCellViewModel.swift │ │ ├── CategoryCollectionViewCellViewModel.swift │ │ ├── FeaturedPlaylistCellViewModel.swift │ │ ├── NewReleasesCellViewModel.swift │ │ ├── PlaylistHeaderViewViewModel.swift │ │ ├── RecommendedTrackCellViewModel.swift │ │ ├── SearchResultDefaultTableViewCellViewModel.swift │ │ └── SearchResultSubtitleTableViewCellViewModel.swift │ └── Views/ │ ├── ActionLabelView.swift │ ├── AlbumTrackCollectionViewCell.swift │ ├── Base.lproj/ │ │ └── LaunchScreen.storyboard │ ├── Browse/ │ │ ├── FeaturedPlaylistCollectionViewCell.swift │ │ ├── NewReleaseCollectionViewCell.swift │ │ └── RecommendedTrackCollectionViewCell.swift │ ├── GenreCollectionViewCell.swift │ ├── LibraryToggleView.swift │ ├── PlayerControlsView.swift │ ├── PlaylistHeaderCollectionReusableView.swift │ ├── SearchResultCells/ │ │ ├── SearchResultDefaultTableViewCell.swift │ │ └── SearchResultSubtitleTableViewCell.swift │ └── TitleHeaderCollectionReusableView.swift ├── Spotify.xcodeproj/ │ ├── project.pbxproj │ ├── project.xcworkspace/ │ │ ├── contents.xcworkspacedata │ │ └── xcshareddata/ │ │ └── IDEWorkspaceChecks.plist │ └── xcuserdata/ │ └── afrazsiddiqui.xcuserdatad/ │ ├── xcdebugger/ │ │ └── Breakpoints_v2.xcbkptlist │ └── xcschemes/ │ └── xcschememanagement.plist ├── Spotify.xcworkspace/ │ ├── contents.xcworkspacedata │ ├── xcshareddata/ │ │ └── IDEWorkspaceChecks.plist │ └── xcuserdata/ │ └── afrazsiddiqui.xcuserdatad/ │ ├── UserInterfaceState.xcuserstate │ └── xcdebugger/ │ └── Breakpoints_v2.xcbkptlist ├── SpotifyTests/ │ └── SpotifyTests.swift ├── codemagic.yaml └── codemagic.yml