diff --git a/Hammerspoon.xcodeproj/project.pbxproj b/Hammerspoon.xcodeproj/project.pbxproj index b68269c1f..227a104da 100644 --- a/Hammerspoon.xcodeproj/project.pbxproj +++ b/Hammerspoon.xcodeproj/project.pbxproj @@ -5999,7 +5999,7 @@ isa = PBXProject; attributes = { CLASSPREFIX = HS; - LastUpgradeCheck = 1100; + LastUpgradeCheck = 1220; ORGANIZATIONNAME = Hammerspoon; TargetAttributes = { 4F20B5281C1F1C5B00F52437 = { @@ -9027,7 +9027,7 @@ "\"$(SDK_DIR)\"/usr/include/libxml2", ); INFOPLIST_FILE = "Hammerspoon/Hammerspoon-Info.plist"; - MARKETING_VERSION = 0.9.81; + MARKETING_VERSION = 0.9.82; PRODUCT_BUNDLE_IDENTIFIER = "org.hammerspoon.${PRODUCT_NAME:rfc1034identifier}"; PRODUCT_NAME = Hammerspoon; SDKROOT = macosx; @@ -22624,7 +22624,7 @@ "\"$(SDK_DIR)\"/usr/include/libxml2", ); INFOPLIST_FILE = "Hammerspoon/Hammerspoon-Info.plist"; - MARKETING_VERSION = 0.9.81; + MARKETING_VERSION = 0.9.82; PRODUCT_BUNDLE_IDENTIFIER = "org.hammerspoon.${PRODUCT_NAME:rfc1034identifier}"; PRODUCT_NAME = Hammerspoon; SDKROOT = macosx; @@ -22658,7 +22658,7 @@ "\"$(SDK_DIR)\"/usr/include/libxml2", ); INFOPLIST_FILE = "Hammerspoon/Hammerspoon-Info.plist"; - MARKETING_VERSION = 0.9.81; + MARKETING_VERSION = 0.9.82; OTHER_CODE_SIGN_FLAGS = ""; PRODUCT_BUNDLE_IDENTIFIER = "org.hammerspoon.${PRODUCT_NAME:rfc1034identifier}"; PRODUCT_NAME = Hammerspoon; diff --git a/Hammerspoon.xcworkspace/xcshareddata/xcschemes/Hammerspoon.xcscheme b/Hammerspoon.xcworkspace/xcshareddata/xcschemes/Hammerspoon.xcscheme index 4b1fa720f..f34dfe724 100644 --- a/Hammerspoon.xcworkspace/xcshareddata/xcschemes/Hammerspoon.xcscheme +++ b/Hammerspoon.xcworkspace/xcshareddata/xcschemes/Hammerspoon.xcscheme @@ -1,6 +1,6 @@ CFBundleVersion - 5611 + 5613 LSApplicationCategoryType public.app-category.developer-tools LSMinimumSystemVersion diff --git a/LuaSkin/LuaSkin.xcodeproj/project.pbxproj b/LuaSkin/LuaSkin.xcodeproj/project.pbxproj index f6fc32c3e..cb7006016 100644 --- a/LuaSkin/LuaSkin.xcodeproj/project.pbxproj +++ b/LuaSkin/LuaSkin.xcodeproj/project.pbxproj @@ -490,7 +490,7 @@ 4FEF59461B29CE06002344A7 /* Project object */ = { isa = PBXProject; attributes = { - LastUpgradeCheck = 1100; + LastUpgradeCheck = 1220; ORGANIZATIONNAME = Hammerspoon; TargetAttributes = { 4FEF594E1B29CE06002344A7 = { diff --git a/LuaSkin/LuaSkin.xcodeproj/xcshareddata/xcschemes/LuaSkin.xcscheme b/LuaSkin/LuaSkin.xcodeproj/xcshareddata/xcschemes/LuaSkin.xcscheme index 92b4ac870..a4e0ac97b 100644 --- a/LuaSkin/LuaSkin.xcodeproj/xcshareddata/xcschemes/LuaSkin.xcscheme +++ b/LuaSkin/LuaSkin.xcodeproj/xcshareddata/xcschemes/LuaSkin.xcscheme @@ -1,6 +1,6 @@ 'https://github.com/CommandPost/CocoaHTTPServer.git' pod 'PocketSocket/Client', '1.0.1' pod 'Sentry', :git => 'https://github.com/getsentry/sentry-cocoa.git', :tag => '6.0.8' -pod 'Sparkle', '1.23.0', :configurations => ['Release'] +pod 'Sparkle', '1.24.0', :configurations => ['Release'] pod 'MIKMIDI', '1.7.1' pod 'SocketRocket', '0.5.1' pod 'ORSSerialPort', '2.1.0' diff --git a/Podfile.lock b/Podfile.lock index a6d0a80e0..f4a6101e8 100644 --- a/Podfile.lock +++ b/Podfile.lock @@ -16,7 +16,7 @@ PODS: - Sentry/Core (= 6.0.8) - Sentry/Core (6.0.8) - SocketRocket (0.5.1) - - Sparkle (1.23.0) + - Sparkle (1.24.0) DEPENDENCIES: - ASCIImage (= 1.0.0) @@ -28,7 +28,7 @@ DEPENDENCIES: - PocketSocket/Client (= 1.0.1) - Sentry (from `https://github.com/getsentry/sentry-cocoa.git`, tag `6.0.8`) - SocketRocket (= 0.5.1) - - Sparkle (= 1.23.0) + - Sparkle (= 1.24.0) SPEC REPOS: https://github.com/CocoaPods/Specs.git: @@ -66,8 +66,8 @@ SPEC CHECKSUMS: PocketSocket: 9c6867d66fb4f962af96b9b07f4b45bb561b2c2a Sentry: 6ab9f44a413dec7ebf5e82b166048afb5f60b895 SocketRocket: d57c7159b83c3c6655745cd15302aa24b6bae531 - Sparkle: 55b1a87ba69d56913375a281546b7c82dec95bb0 + Sparkle: 270cd27377bf04e9c128af06e3a22d0f572d6ee3 -PODFILE CHECKSUM: 3b058dd07cf936b857e4f9a25f915644f2e45eb3 +PODFILE CHECKSUM: 3e7bc00ff952f577eee3462ad34b7803aadb92f9 COCOAPODS: 1.10.0 diff --git a/Pods/Headers/Private/Sentry/SentryClient+Private.h b/Pods/Headers/Private/Sentry/SentryClient+Private.h new file mode 120000 index 000000000..36ce2d5d0 --- /dev/null +++ b/Pods/Headers/Private/Sentry/SentryClient+Private.h @@ -0,0 +1 @@ +../../../Sentry/Sources/Sentry/include/SentryClient+Private.h \ No newline at end of file diff --git a/Pods/Headers/Private/Sentry/SentryDispatchQueueWrapper.h b/Pods/Headers/Private/Sentry/SentryDispatchQueueWrapper.h new file mode 120000 index 000000000..c284c93ef --- /dev/null +++ b/Pods/Headers/Private/Sentry/SentryDispatchQueueWrapper.h @@ -0,0 +1 @@ +../../../Sentry/Sources/Sentry/include/SentryDispatchQueueWrapper.h \ No newline at end of file diff --git a/Pods/Headers/Private/Sentry/SentryFrameRemover.h b/Pods/Headers/Private/Sentry/SentryFrameRemover.h new file mode 120000 index 000000000..b75789048 --- /dev/null +++ b/Pods/Headers/Private/Sentry/SentryFrameRemover.h @@ -0,0 +1 @@ +../../../Sentry/Sources/Sentry/include/SentryFrameRemover.h \ No newline at end of file diff --git a/Pods/Headers/Private/Sentry/SentryHub+Private.h b/Pods/Headers/Private/Sentry/SentryHub+Private.h new file mode 120000 index 000000000..893a2d089 --- /dev/null +++ b/Pods/Headers/Private/Sentry/SentryHub+Private.h @@ -0,0 +1 @@ +../../../Sentry/Sources/Sentry/include/SentryHub+Private.h \ No newline at end of file diff --git a/Pods/Headers/Private/Sentry/SentryId.h b/Pods/Headers/Private/Sentry/SentryId.h new file mode 120000 index 000000000..2a27ba06f --- /dev/null +++ b/Pods/Headers/Private/Sentry/SentryId.h @@ -0,0 +1 @@ +../../../Sentry/Sources/Sentry/Public/SentryId.h \ No newline at end of file diff --git a/Pods/Headers/Private/Sentry/SentryMessage.h b/Pods/Headers/Private/Sentry/SentryMessage.h new file mode 120000 index 000000000..598f02e7f --- /dev/null +++ b/Pods/Headers/Private/Sentry/SentryMessage.h @@ -0,0 +1 @@ +../../../Sentry/Sources/Sentry/Public/SentryMessage.h \ No newline at end of file diff --git a/Pods/Headers/Private/Sentry/SentryMigrateSessionInit.h b/Pods/Headers/Private/Sentry/SentryMigrateSessionInit.h new file mode 120000 index 000000000..bb2dddbc0 --- /dev/null +++ b/Pods/Headers/Private/Sentry/SentryMigrateSessionInit.h @@ -0,0 +1 @@ +../../../Sentry/Sources/Sentry/include/SentryMigrateSessionInit.h \ No newline at end of file diff --git a/Pods/Headers/Private/Sentry/SentrySDK+Private.h b/Pods/Headers/Private/Sentry/SentrySDK+Private.h new file mode 120000 index 000000000..992a40025 --- /dev/null +++ b/Pods/Headers/Private/Sentry/SentrySDK+Private.h @@ -0,0 +1 @@ +../../../Sentry/Sources/Sentry/include/SentrySDK+Private.h \ No newline at end of file diff --git a/Pods/Headers/Private/Sentry/SentrySession+Private.h b/Pods/Headers/Private/Sentry/SentrySession+Private.h new file mode 120000 index 000000000..85792f3df --- /dev/null +++ b/Pods/Headers/Private/Sentry/SentrySession+Private.h @@ -0,0 +1 @@ +../../../Sentry/Sources/Sentry/include/SentrySession+Private.h \ No newline at end of file diff --git a/Pods/Headers/Private/Sentry/SentrySessionCrashedHandler.h b/Pods/Headers/Private/Sentry/SentrySessionCrashedHandler.h new file mode 120000 index 000000000..644d9ab0a --- /dev/null +++ b/Pods/Headers/Private/Sentry/SentrySessionCrashedHandler.h @@ -0,0 +1 @@ +../../../Sentry/Sources/Sentry/include/SentrySessionCrashedHandler.h \ No newline at end of file diff --git a/Pods/Headers/Private/Sentry/SentryUserFeedback.h b/Pods/Headers/Private/Sentry/SentryUserFeedback.h new file mode 120000 index 000000000..101673ab2 --- /dev/null +++ b/Pods/Headers/Private/Sentry/SentryUserFeedback.h @@ -0,0 +1 @@ +../../../Sentry/Sources/Sentry/Public/SentryUserFeedback.h \ No newline at end of file diff --git a/Pods/Headers/Public/Sentry/SentryId.h b/Pods/Headers/Public/Sentry/SentryId.h new file mode 120000 index 000000000..2a27ba06f --- /dev/null +++ b/Pods/Headers/Public/Sentry/SentryId.h @@ -0,0 +1 @@ +../../../Sentry/Sources/Sentry/Public/SentryId.h \ No newline at end of file diff --git a/Pods/Headers/Public/Sentry/SentryMessage.h b/Pods/Headers/Public/Sentry/SentryMessage.h new file mode 120000 index 000000000..598f02e7f --- /dev/null +++ b/Pods/Headers/Public/Sentry/SentryMessage.h @@ -0,0 +1 @@ +../../../Sentry/Sources/Sentry/Public/SentryMessage.h \ No newline at end of file diff --git a/Pods/Headers/Public/Sentry/SentryUserFeedback.h b/Pods/Headers/Public/Sentry/SentryUserFeedback.h new file mode 120000 index 000000000..101673ab2 --- /dev/null +++ b/Pods/Headers/Public/Sentry/SentryUserFeedback.h @@ -0,0 +1 @@ +../../../Sentry/Sources/Sentry/Public/SentryUserFeedback.h \ No newline at end of file diff --git a/Pods/Manifest.lock b/Pods/Manifest.lock index a6d0a80e0..f4a6101e8 100644 --- a/Pods/Manifest.lock +++ b/Pods/Manifest.lock @@ -16,7 +16,7 @@ PODS: - Sentry/Core (= 6.0.8) - Sentry/Core (6.0.8) - SocketRocket (0.5.1) - - Sparkle (1.23.0) + - Sparkle (1.24.0) DEPENDENCIES: - ASCIImage (= 1.0.0) @@ -28,7 +28,7 @@ DEPENDENCIES: - PocketSocket/Client (= 1.0.1) - Sentry (from `https://github.com/getsentry/sentry-cocoa.git`, tag `6.0.8`) - SocketRocket (= 0.5.1) - - Sparkle (= 1.23.0) + - Sparkle (= 1.24.0) SPEC REPOS: https://github.com/CocoaPods/Specs.git: @@ -66,8 +66,8 @@ SPEC CHECKSUMS: PocketSocket: 9c6867d66fb4f962af96b9b07f4b45bb561b2c2a Sentry: 6ab9f44a413dec7ebf5e82b166048afb5f60b895 SocketRocket: d57c7159b83c3c6655745cd15302aa24b6bae531 - Sparkle: 55b1a87ba69d56913375a281546b7c82dec95bb0 + Sparkle: 270cd27377bf04e9c128af06e3a22d0f572d6ee3 -PODFILE CHECKSUM: 3b058dd07cf936b857e4f9a25f915644f2e45eb3 +PODFILE CHECKSUM: 3e7bc00ff952f577eee3462ad34b7803aadb92f9 COCOAPODS: 1.10.0 diff --git a/Pods/Pods.xcodeproj/project.pbxproj b/Pods/Pods.xcodeproj/project.pbxproj index cedeb5454..5dafb657d 100644 --- a/Pods/Pods.xcodeproj/project.pbxproj +++ b/Pods/Pods.xcodeproj/project.pbxproj @@ -9,8 +9,9 @@ /* Begin PBXAggregateTarget section */ ED77B4B88587C894E85C361023D67C53 /* Sparkle */ = { isa = PBXAggregateTarget; - buildConfigurationList = DFD76CF3BA88B1E29302E27ACFBF9960 /* Build configuration list for PBXAggregateTarget "Sparkle" */; + buildConfigurationList = 328F2DB001265813043B82D818B21AC9 /* Build configuration list for PBXAggregateTarget "Sparkle" */; buildPhases = ( + 780ADEB704B4468F55D513CE1AD96CAA /* [CP] Copy dSYMs */, ); dependencies = ( ); @@ -655,14 +656,12 @@ /* Begin PBXFileReference section */ 00C4FEB31B4CE3CFE550972D5C49BD48 /* MIKMIDIControlChangeEvent.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = MIKMIDIControlChangeEvent.m; path = Source/MIKMIDIControlChangeEvent.m; sourceTree = ""; }; 00C846D71E0D99457C24385D0F947864 /* SentrySwizzle.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SentrySwizzle.h; path = Sources/Sentry/include/SentrySwizzle.h; sourceTree = ""; }; - 00D3437B627D724BDD84E0BF879EE4D6 /* SPUDownloadData.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SPUDownloadData.h; path = Sparkle.framework/Versions/A/Headers/SPUDownloadData.h; sourceTree = ""; }; 0115C3C00C175D77422084DD0542CE6F /* libSentry.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; name = libSentry.a; path = libSentry.a; sourceTree = BUILT_PRODUCTS_DIR; }; 01E2215B2C88C775BC8501576E844989 /* SentryException.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SentryException.h; path = Sources/Sentry/Public/SentryException.h; sourceTree = ""; }; 01F008DF2CE5D1BBDCE566B2100E3582 /* PSWebSocketBuffer.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = PSWebSocketBuffer.m; path = PocketSocket/PSWebSocketBuffer.m; sourceTree = ""; }; 02228A0CB653CB01A5E6701EE38E8B92 /* CocoaAsyncSocket.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = CocoaAsyncSocket.release.xcconfig; sourceTree = ""; }; 02489FB24CF5C91C7EC0FDD481B1557D /* PSWebSocket.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = PSWebSocket.m; path = PocketSocket/PSWebSocket.m; sourceTree = ""; }; 025F7623E9C83A2A504F766891F94B62 /* CocoaHTTPServer-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "CocoaHTTPServer-prefix.pch"; sourceTree = ""; }; - 02C116D8076D117DEAFB3B2EE9887AAE /* Sparkle.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = Sparkle.debug.xcconfig; sourceTree = ""; }; 02E04B5F6154E09C5086CFA3E50F1CEA /* Sentry.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = Sentry.debug.xcconfig; sourceTree = ""; }; 034271569313F42B67B9E57AC5965D01 /* SentryCrashInstallation+Private.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "SentryCrashInstallation+Private.h"; path = "Sources/SentryCrash/Installations/SentryCrashInstallation+Private.h"; sourceTree = ""; }; 03A0FCC504CE7BC5B67BB98C0ACC3D0D /* DDLegacyMacros.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = DDLegacyMacros.h; path = Classes/DDLegacyMacros.h; sourceTree = ""; }; @@ -674,14 +673,15 @@ 052B7D7FBEC874A50FFD87400719CC94 /* SentryCrashMonitor_MachException.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SentryCrashMonitor_MachException.h; path = Sources/SentryCrash/Recording/Monitors/SentryCrashMonitor_MachException.h; sourceTree = ""; }; 057C4FC404A8A889201BBB5E844FE5B5 /* MIKMIDIEvent.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = MIKMIDIEvent.m; path = Source/MIKMIDIEvent.m; sourceTree = ""; }; 05B8C2269FECFB2BB44DE8DA25F384F4 /* SentryCrashReportVersion.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SentryCrashReportVersion.h; path = Sources/SentryCrash/Recording/SentryCrashReportVersion.h; sourceTree = ""; }; + 05BEC41D23246339CE9179DDFD50AA8D /* Sparkle-copy-dsyms.sh */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.script.sh; path = "Sparkle-copy-dsyms.sh"; sourceTree = ""; }; 05EE545F36074F31C978B3F69FCA60FC /* DAVResponse.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = DAVResponse.m; path = Extensions/WebDAV/DAVResponse.m; sourceTree = ""; }; - 060A0D0E03ABB94E50FA8C6C0C602C09 /* SUUpdaterDelegate.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SUUpdaterDelegate.h; path = Sparkle.framework/Versions/A/Headers/SUUpdaterDelegate.h; sourceTree = ""; }; 060CF9D64023A3C2D757FF038D0B76A4 /* HTTPFileResponse.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = HTTPFileResponse.h; path = Core/Responses/HTTPFileResponse.h; sourceTree = ""; }; 064F53D31653B8AF6A12A56B457446F7 /* ASCIImage.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = ASCIImage.debug.xcconfig; sourceTree = ""; }; 06D6106CB19A48D76E8B5D51A035315E /* SentryCrashMonitor_System.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SentryCrashMonitor_System.h; path = Sources/SentryCrash/Recording/Monitors/SentryCrashMonitor_System.h; sourceTree = ""; }; 06DFC30233FC0813CCCE5236C6D6C5F9 /* SentryCrashStackCursor.c */ = {isa = PBXFileReference; includeInIndex = 1; name = SentryCrashStackCursor.c; path = Sources/SentryCrash/Recording/Tools/SentryCrashStackCursor.c; sourceTree = ""; }; 0798728EDC471EDAAEA7E90C448C26AF /* Pods-Hammerspoon-frameworks.sh */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.script.sh; path = "Pods-Hammerspoon-frameworks.sh"; sourceTree = ""; }; 07D48A04C9702F7BB1AC887881D943AD /* MIKMIDISystemMessageCommand.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = MIKMIDISystemMessageCommand.m; path = Source/MIKMIDISystemMessageCommand.m; sourceTree = ""; }; + 0836672D58D18C6F966026E1A436AADD /* Sparkle.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = Sparkle.release.xcconfig; sourceTree = ""; }; 08B408E77D7C21EE5A7907CCBB03684B /* SentryBreadcrumb.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SentryBreadcrumb.m; path = Sources/Sentry/SentryBreadcrumb.m; sourceTree = ""; }; 0965E2711C99E75F3BD05FAEE038153D /* MIKMIDIPrivateUtilities.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = MIKMIDIPrivateUtilities.m; path = Source/MIKMIDIPrivateUtilities.m; sourceTree = ""; }; 0A11205E85D6753DBA983C72C37E9560 /* MIKMIDIMapping.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = MIKMIDIMapping.m; path = Source/MIKMIDIMapping.m; sourceTree = ""; }; @@ -707,15 +707,16 @@ 10C7659D9E34426FC53094558C2616DB /* DELETEResponse.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = DELETEResponse.h; path = Extensions/WebDAV/DELETEResponse.h; sourceTree = ""; }; 11A90B0E31D5A974DAE5311C5396A721 /* MIKMIDIMetaTextEvent.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = MIKMIDIMetaTextEvent.h; path = Source/MIKMIDIMetaTextEvent.h; sourceTree = ""; }; 11E95474BFCB6B1910E84B4856D97C8D /* MIKMIDIPrivateUtilities.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = MIKMIDIPrivateUtilities.h; path = Source/MIKMIDIPrivateUtilities.h; sourceTree = ""; }; + 123B18CD67659EBB6FA0EF8BC1DDDA28 /* SPUDownloadData.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SPUDownloadData.h; path = Sparkle.framework/Versions/A/Headers/SPUDownloadData.h; sourceTree = ""; }; 1250166C81BDB500B30858C73A15A2F6 /* SentryCrashDefaultMachineContextWrapper.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SentryCrashDefaultMachineContextWrapper.m; path = Sources/Sentry/SentryCrashDefaultMachineContextWrapper.m; sourceTree = ""; }; 125C9B9117870C9B205E9E4BA2626E1B /* SentryCrashInstallation.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SentryCrashInstallation.m; path = Sources/SentryCrash/Installations/SentryCrashInstallation.m; sourceTree = ""; }; 1263843A182B71199393FC8D3078EABF /* MIKMIDIClock.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = MIKMIDIClock.m; path = Source/MIKMIDIClock.m; sourceTree = ""; }; 12B22CF2FA2F08877BD22E80483FB437 /* SentryHttpTransport.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SentryHttpTransport.h; path = Sources/Sentry/include/SentryHttpTransport.h; sourceTree = ""; }; + 12DECF5B6ED26958764B8718B8831773 /* SPUDownloaderDeprecated.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SPUDownloaderDeprecated.h; path = Sparkle.framework/Versions/A/Headers/SPUDownloaderDeprecated.h; sourceTree = ""; }; 12F32A1090946E51B3BF7B6376BEEE30 /* SentryCrashMonitor_AppState.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SentryCrashMonitor_AppState.h; path = Sources/SentryCrash/Recording/Monitors/SentryCrashMonitor_AppState.h; sourceTree = ""; }; 13835BF3E4EDCE232893E70F2B7B24A8 /* MIKMIDICommandScheduler.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = MIKMIDICommandScheduler.h; path = Source/MIKMIDICommandScheduler.h; sourceTree = ""; }; 139FA2AE2DB00B0B0ED3481C292CA0CF /* MIKMIDIMappingItem.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = MIKMIDIMappingItem.h; path = Source/MIKMIDIMappingItem.h; sourceTree = ""; }; 13AC452CC0E4AC2BDA5DBC1A139FA9C7 /* SentryCrashMonitor_Signal.c */ = {isa = PBXFileReference; includeInIndex = 1; name = SentryCrashMonitor_Signal.c; path = Sources/SentryCrash/Recording/Monitors/SentryCrashMonitor_Signal.c; sourceTree = ""; }; - 13ADF270E516C389C122F78BBBA1D326 /* SUAppcast.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SUAppcast.h; path = Sparkle.framework/Versions/A/Headers/SUAppcast.h; sourceTree = ""; }; 13F354019A4308F958101C0F8014C674 /* MIKMIDINoteOnCommand.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = MIKMIDINoteOnCommand.h; path = Source/MIKMIDINoteOnCommand.h; sourceTree = ""; }; 14508C8A479C7ED4831CA8597B888608 /* DDLoggerNames.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = DDLoggerNames.h; path = Classes/DDLoggerNames.h; sourceTree = ""; }; 149526656630CDAB5A11A2A8F2C04DB1 /* SentryInstallation.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SentryInstallation.m; path = Sources/Sentry/SentryInstallation.m; sourceTree = ""; }; @@ -724,7 +725,6 @@ 15BE9B458A4361182DDB8BF955D8EB98 /* MIKMIDINoteEvent.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = MIKMIDINoteEvent.m; path = Source/MIKMIDINoteEvent.m; sourceTree = ""; }; 15EF7143A05C0CB381A3910AE6AABB84 /* SentryCrashExceptionApplication.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SentryCrashExceptionApplication.m; path = Sources/Sentry/SentryCrashExceptionApplication.m; sourceTree = ""; }; 16478F4CC35B4621DDC4EF793B156ACE /* SentryEnvelopeItemType.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SentryEnvelopeItemType.h; path = Sources/Sentry/Public/SentryEnvelopeItemType.h; sourceTree = ""; }; - 1650E1041A9EDEA04AE0A8FDD285B934 /* SUVersionComparisonProtocol.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SUVersionComparisonProtocol.h; path = Sparkle.framework/Versions/A/Headers/SUVersionComparisonProtocol.h; sourceTree = ""; }; 167F00BE737B0F21EDF2AE73CCEB6592 /* MIKMIDIPlayer.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = MIKMIDIPlayer.h; path = Source/MIKMIDIPlayer.h; sourceTree = ""; }; 177016FF6DD9906F932D20544B8257F2 /* MIKMIDIObject.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = MIKMIDIObject.h; path = Source/MIKMIDIObject.h; sourceTree = ""; }; 178CA1528DEEAF4B45A2CE8CDB6A561A /* MIKMIDIMapping.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = MIKMIDIMapping.h; path = Source/MIKMIDIMapping.h; sourceTree = ""; }; @@ -761,9 +761,9 @@ 26C0F31DA05B1CDDB0120077216F448C /* SentryCrashInstallation.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SentryCrashInstallation.h; path = Sources/SentryCrash/Installations/SentryCrashInstallation.h; sourceTree = ""; }; 2795256F1D1461674EA55F16E16D1F83 /* PSWebSocketDriver.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = PSWebSocketDriver.h; path = PocketSocket/PSWebSocketDriver.h; sourceTree = ""; }; 27A1681329C8DA67D0F04EEE2A181A18 /* MIKMIDIDevice.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = MIKMIDIDevice.h; path = Source/MIKMIDIDevice.h; sourceTree = ""; }; + 27F50B7DC3B7217252E77C4CC8781F28 /* SPUDownloader.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SPUDownloader.h; path = Sparkle.framework/Versions/A/Headers/SPUDownloader.h; sourceTree = ""; }; 28A9DFFAA2A16CADC2713271974E9B64 /* CocoaLumberjack.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = CocoaLumberjack.debug.xcconfig; sourceTree = ""; }; 28D4F516F8D7D671A1E55ECF6DF17F9E /* SentryAutoBreadcrumbTrackingIntegration.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SentryAutoBreadcrumbTrackingIntegration.h; path = Sources/Sentry/include/SentryAutoBreadcrumbTrackingIntegration.h; sourceTree = ""; }; - 29B4457265F8BC1DA745D76A30697024 /* SPUDownloaderDeprecated.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SPUDownloaderDeprecated.h; path = Sparkle.framework/Versions/A/Headers/SPUDownloaderDeprecated.h; sourceTree = ""; }; 2A7C34A4C510C42A0AE051149159DF15 /* MIKMIDIConnectionManager.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = MIKMIDIConnectionManager.m; path = Source/MIKMIDIConnectionManager.m; sourceTree = ""; }; 2B315162B0839865AF02382BE4213D34 /* MIKMIDIPolyphonicKeyPressureCommand.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = MIKMIDIPolyphonicKeyPressureCommand.h; path = Source/MIKMIDIPolyphonicKeyPressureCommand.h; sourceTree = ""; }; 2B5CE2994634E922C8DA21327DCFCD97 /* MIKMIDIMetaSequenceEvent.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = MIKMIDIMetaSequenceEvent.h; path = Source/MIKMIDIMetaSequenceEvent.h; sourceTree = ""; }; @@ -773,10 +773,10 @@ 2CA68ADCB84D374D91CE45CB28BDD0F8 /* SentryCrashCPU_arm.c */ = {isa = PBXFileReference; includeInIndex = 1; name = SentryCrashCPU_arm.c; path = Sources/SentryCrash/Recording/Tools/SentryCrashCPU_arm.c; sourceTree = ""; }; 2E72E7A96F07543628BF53DA11F5EBC4 /* MultipartFormDataParser.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = MultipartFormDataParser.m; path = Core/Mime/MultipartFormDataParser.m; sourceTree = ""; }; 2F02AE4B6F59B0B7AC30AC3C1D554FB2 /* DDTTYLogger.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = DDTTYLogger.m; path = Classes/DDTTYLogger.m; sourceTree = ""; }; + 2F7519A63C32DC48508C751FC7C85121 /* SUCodeSigningVerifier.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SUCodeSigningVerifier.h; path = Sparkle.framework/Versions/A/Headers/SUCodeSigningVerifier.h; sourceTree = ""; }; 2F81B128A47A275CAC99E8D10C9C73FB /* Pods-Hammerspoon.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-Hammerspoon.debug.xcconfig"; sourceTree = ""; }; 30226F950823C2CAB1C1C54FDB45BA05 /* SentryRateLimitParser.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SentryRateLimitParser.h; path = Sources/Sentry/include/SentryRateLimitParser.h; sourceTree = ""; }; 306FC221AA50A05BA2398B9DA525E2BB /* SentryHttpTransport.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SentryHttpTransport.m; path = Sources/Sentry/SentryHttpTransport.m; sourceTree = ""; }; - 30B180C4BBFFD743F3145B1056AF287C /* SUVersionDisplayProtocol.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SUVersionDisplayProtocol.h; path = Sparkle.framework/Versions/A/Headers/SUVersionDisplayProtocol.h; sourceTree = ""; }; 30F6625ED708A7B0DBCA5F78F9BCC6F4 /* SentryCrashMonitor.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SentryCrashMonitor.h; path = Sources/SentryCrash/Recording/Monitors/SentryCrashMonitor.h; sourceTree = ""; }; 3156C208E101CC8F0C6036113262E6BB /* SentryFrame.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SentryFrame.h; path = Sources/Sentry/Public/SentryFrame.h; sourceTree = ""; }; 31591D4841F7E6EC3E3977A97C6675E2 /* MIKMIDIMetaCopyrightEvent.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = MIKMIDIMetaCopyrightEvent.h; path = Source/MIKMIDIMetaCopyrightEvent.h; sourceTree = ""; }; @@ -785,12 +785,14 @@ 32A4F26B93BCCD69F1793CA1457FDCF7 /* SentryDispatchQueueWrapper.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SentryDispatchQueueWrapper.h; path = Sources/Sentry/include/SentryDispatchQueueWrapper.h; sourceTree = ""; }; 3311A41507E77273D4B17F92CCA50E49 /* SentryCurrentDateProvider.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SentryCurrentDateProvider.h; path = Sources/Sentry/include/SentryCurrentDateProvider.h; sourceTree = ""; }; 33238150DF01BB05F263FBD0E4FF262A /* MIKMIDIMetaTimeSignatureEvent.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = MIKMIDIMetaTimeSignatureEvent.h; path = Source/MIKMIDIMetaTimeSignatureEvent.h; sourceTree = ""; }; + 33A3575E80F9F08158CBC39F39E5F6CD /* Sparkle.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = Sparkle.debug.xcconfig; sourceTree = ""; }; 354B03DEE01600976E0B3FCA41B8FC52 /* MIKMIDIMappingManager.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = MIKMIDIMappingManager.m; path = Source/MIKMIDIMappingManager.m; sourceTree = ""; }; 374E650160CCB0349714DDE1D3F54FE5 /* MIKMIDIMetaInstrumentNameEvent.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = MIKMIDIMetaInstrumentNameEvent.h; path = Source/MIKMIDIMetaInstrumentNameEvent.h; sourceTree = ""; }; - 3775062EA9B11468E4EE300687762286 /* SUStandardVersionComparator.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SUStandardVersionComparator.h; path = Sparkle.framework/Versions/A/Headers/SUStandardVersionComparator.h; sourceTree = ""; }; 37E00894052687F2D9D61AB69CDC83A3 /* SentryCrashCachedData.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SentryCrashCachedData.h; path = Sources/SentryCrash/Recording/SentryCrashCachedData.h; sourceTree = ""; }; 37E85B595EED617EBAA8EAD7ACA923DB /* MIKMIDIClientDestinationEndpoint.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = MIKMIDIClientDestinationEndpoint.h; path = Source/MIKMIDIClientDestinationEndpoint.h; sourceTree = ""; }; 3831BCF9E331AFF79899BA7929EEECCA /* SentryCrashStackCursor_MachineContext.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SentryCrashStackCursor_MachineContext.h; path = Sources/SentryCrash/Recording/Tools/SentryCrashStackCursor_MachineContext.h; sourceTree = ""; }; + 38E5882F194EBD99FA23E24A61AB02FB /* Sparkle.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = Sparkle.h; path = Sparkle.framework/Versions/A/Headers/Sparkle.h; sourceTree = ""; }; + 38F8DB188CB203B43FDAC8049DB523FD /* SPUDownloaderSession.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SPUDownloaderSession.h; path = Sparkle.framework/Versions/A/Headers/SPUDownloaderSession.h; sourceTree = ""; }; 39E49C6EF13FAFE31AFA96966AAD7634 /* SentryCrashDefaultBinaryImageProvider.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SentryCrashDefaultBinaryImageProvider.m; path = Sources/Sentry/SentryCrashDefaultBinaryImageProvider.m; sourceTree = ""; }; 3BA266492720AC07389AAED513355D3F /* HTTPAsyncFileResponse.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = HTTPAsyncFileResponse.h; path = Core/Responses/HTTPAsyncFileResponse.h; sourceTree = ""; }; 3BF55749F186813977C71DC4AD0C087D /* PSWebSocketNetworkThread.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = PSWebSocketNetworkThread.m; path = PocketSocket/PSWebSocketNetworkThread.m; sourceTree = ""; }; @@ -821,10 +823,8 @@ 4781088119AB84EBA60794776F216001 /* WebSocket.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = WebSocket.h; path = Core/WebSocket.h; sourceTree = ""; }; 47966EDD37E1874011AE926D2B675569 /* SentryBreadcrumbTracker.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SentryBreadcrumbTracker.m; path = Sources/Sentry/SentryBreadcrumbTracker.m; sourceTree = ""; }; 47A4DBC01BBA09DC007C04C6EEE88F30 /* PUTResponse.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = PUTResponse.h; path = Extensions/WebDAV/PUTResponse.h; sourceTree = ""; }; - 47D51B75630F92290BE8F020F6EE42A4 /* Sparkle.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = Sparkle.release.xcconfig; sourceTree = ""; }; 48A5C70BE26C362A859A18BEC2C2940B /* PARImage+ASCIIInput.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "PARImage+ASCIIInput.h"; path = "Core/PARImage+ASCIIInput.h"; sourceTree = ""; }; 48FFCE75039A1494D532E40100558025 /* MIKMIDIMappableResponder.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = MIKMIDIMappableResponder.h; path = Source/MIKMIDIMappableResponder.h; sourceTree = ""; }; - 4908029F4154C12F02FCC9A1AEFF8649 /* SPUDownloaderSession.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SPUDownloaderSession.h; path = Sparkle.framework/Versions/A/Headers/SPUDownloaderSession.h; sourceTree = ""; }; 4926F0E05A8808152EDA973FCF0502DB /* MIKMIDIMetaTextEvent.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = MIKMIDIMetaTextEvent.m; path = Source/MIKMIDIMetaTextEvent.m; sourceTree = ""; }; 498A88A51550BA015A854B6C40F5C6DA /* MIKMIDIMetaCuePointEvent.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = MIKMIDIMetaCuePointEvent.m; path = Source/MIKMIDIMetaCuePointEvent.m; sourceTree = ""; }; 4A55788DE02C31D37FF609074AC76BE9 /* ORSSerialRequest.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = ORSSerialRequest.m; path = Source/ORSSerialRequest.m; sourceTree = ""; }; @@ -835,7 +835,6 @@ 4D3033A418072858A51CB35AF4A707DD /* SentryDefines.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SentryDefines.h; path = Sources/Sentry/Public/SentryDefines.h; sourceTree = ""; }; 4D349FBCC2AB03DEFCC8FEEF0F17C099 /* MIKMIDIErrors.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = MIKMIDIErrors.m; path = Source/MIKMIDIErrors.m; sourceTree = ""; }; 4E1880B34A178A5686932E4EEE90007B /* SentryThread.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SentryThread.h; path = Sources/Sentry/Public/SentryThread.h; sourceTree = ""; }; - 4E1F135B24AC20288B67E15AA80C3492 /* Sparkle.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = Sparkle.h; path = Sparkle.framework/Versions/A/Headers/Sparkle.h; sourceTree = ""; }; 4E68EF3B03F0763BAE30851758BCF5B7 /* ORSSerialPort-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "ORSSerialPort-prefix.pch"; sourceTree = ""; }; 4ED571925FC9DD3FDB09BFD93D5CE284 /* GCDAsyncSocket.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = GCDAsyncSocket.h; path = Source/GCD/GCDAsyncSocket.h; sourceTree = ""; }; 4EEF052644BD14AECC343AFF573B83DB /* SentryEnvelope.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SentryEnvelope.m; path = Sources/Sentry/SentryEnvelope.m; sourceTree = ""; }; @@ -864,6 +863,7 @@ 59C3061803F177FC5F53147BEC4ED702 /* SentryCrashStackCursor_SelfThread.c */ = {isa = PBXFileReference; includeInIndex = 1; name = SentryCrashStackCursor_SelfThread.c; path = Sources/SentryCrash/Recording/Tools/SentryCrashStackCursor_SelfThread.c; sourceTree = ""; }; 5A19BDEBD7AF4595E9D2E6376FA57D55 /* Pods-Hammerspoon-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "Pods-Hammerspoon-dummy.m"; sourceTree = ""; }; 5A3D4579F183862DD4197C7911704AC9 /* CocoaLumberjack.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = CocoaLumberjack.release.xcconfig; sourceTree = ""; }; + 5ACD2C3CFBE3D41F50035A80A91605DB /* SPUURLRequest.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SPUURLRequest.h; path = Sparkle.framework/Versions/A/Headers/SPUURLRequest.h; sourceTree = ""; }; 5AE4F09DE3BDD5F38C36D2A6029DE027 /* MIKMIDIPort.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = MIKMIDIPort.h; path = Source/MIKMIDIPort.h; sourceTree = ""; }; 5AE6E884BB40BE7738ACF66165DFB47F /* MIKMIDIMetaLyricEvent.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = MIKMIDIMetaLyricEvent.h; path = Source/MIKMIDIMetaLyricEvent.h; sourceTree = ""; }; 5BB136840BFF2AC7A9AFE275F5A7106F /* MIKMIDIChannelPressureEvent.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = MIKMIDIChannelPressureEvent.m; path = Source/MIKMIDIChannelPressureEvent.m; sourceTree = ""; }; @@ -879,7 +879,6 @@ 6145FE621E9F02BEEB9787F4221F3222 /* SentryCrashAdapter.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SentryCrashAdapter.h; path = Sources/Sentry/include/SentryCrashAdapter.h; sourceTree = ""; }; 6183A392143C88EB4F6195A7ED9FE7C0 /* SentryCrashCString.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SentryCrashCString.h; path = Sources/SentryCrash/Reporting/Tools/SentryCrashCString.h; sourceTree = ""; }; 61B9AF9D90DCB9F79C55515488657187 /* MIKMIDIChannelPressureCommand.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = MIKMIDIChannelPressureCommand.h; path = Source/MIKMIDIChannelPressureCommand.h; sourceTree = ""; }; - 623702AA316E59F35102ABEC5D669675 /* Sparkle.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; path = Sparkle.framework; sourceTree = ""; }; 6277489DA18B39FBECC76288760C9896 /* MIKMIDI-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "MIKMIDI-prefix.pch"; sourceTree = ""; }; 6496B163623018F917FEB25B60077206 /* CLIColor.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = CLIColor.h; path = Classes/CLI/CLIColor.h; sourceTree = ""; }; 653A66C50B18C78A3E3FAFFFF17CC35D /* SentryRequestOperation.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SentryRequestOperation.h; path = Sources/Sentry/include/SentryRequestOperation.h; sourceTree = ""; }; @@ -895,7 +894,6 @@ 68B0C4FC2D149E88B3CA00CCE6678580 /* DDLog+LOGV.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "DDLog+LOGV.h"; path = "Classes/DDLog+LOGV.h"; sourceTree = ""; }; 6925AA2DCEB9AF3284488F1B69860E2A /* NSUIApplication+MIKMIDI.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "NSUIApplication+MIKMIDI.m"; path = "Source/NSUIApplication+MIKMIDI.m"; sourceTree = ""; }; 697F67EAA2C628764A292D8016BDB2AA /* MIKMIDIClientSourceEndpoint.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = MIKMIDIClientSourceEndpoint.m; path = Source/MIKMIDIClientSourceEndpoint.m; sourceTree = ""; }; - 69A4D570D8E3A40AA893BF8854D827D3 /* SUCodeSigningVerifier.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SUCodeSigningVerifier.h; path = Sparkle.framework/Versions/A/Headers/SUCodeSigningVerifier.h; sourceTree = ""; }; 69C5A6C63A1B45D07C6F5625CF5DBC33 /* SentryBreadcrumb.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SentryBreadcrumb.h; path = Sources/Sentry/Public/SentryBreadcrumb.h; sourceTree = ""; }; 69CB308993DFD7BCFCBB20C08105E3AB /* DDASLLogger.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = DDASLLogger.m; path = Classes/DDASLLogger.m; sourceTree = ""; }; 6A66CCEBF896C6E0353995D13C1AE56A /* SentryCrashThread.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SentryCrashThread.h; path = Sources/SentryCrash/Recording/Tools/SentryCrashThread.h; sourceTree = ""; }; @@ -906,7 +904,6 @@ 6CBEFE4F9E22AFDC6347A739BB35FF8C /* libCocoaAsyncSocket.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; name = libCocoaAsyncSocket.a; path = libCocoaAsyncSocket.a; sourceTree = BUILT_PRODUCTS_DIR; }; 6D898746CE052E9A4710856F511C9EE7 /* MIKMIDITrack.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = MIKMIDITrack.m; path = Source/MIKMIDITrack.m; sourceTree = ""; }; 6D967E83D8084111348D069A23B8526D /* MIKMIDIMetaInstrumentNameEvent.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = MIKMIDIMetaInstrumentNameEvent.m; path = Source/MIKMIDIMetaInstrumentNameEvent.m; sourceTree = ""; }; - 6E64DC9A33F85869D2E51AE16D0F3BC6 /* SPUDownloaderProtocol.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SPUDownloaderProtocol.h; path = Sparkle.framework/Versions/A/Headers/SPUDownloaderProtocol.h; sourceTree = ""; }; 6E6B1347331B83A492CF96183CF86707 /* MIKMIDIChannelEvent.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = MIKMIDIChannelEvent.m; path = Source/MIKMIDIChannelEvent.m; sourceTree = ""; }; 6F80881E230D12103C5287B49AD4F0E5 /* DDMultiFormatter.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = DDMultiFormatter.m; path = Classes/Extensions/DDMultiFormatter.m; sourceTree = ""; }; 716FF6D92518795C5E438AFBED0180B0 /* SentryFrame.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SentryFrame.m; path = Sources/Sentry/SentryFrame.m; sourceTree = ""; }; @@ -920,10 +917,12 @@ 733A8E596ABE27C71B6E1B10E05FB4F9 /* MIKMIDIConnectionManager.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = MIKMIDIConnectionManager.h; path = Source/MIKMIDIConnectionManager.h; sourceTree = ""; }; 7365E2524DA67B632D8C05726B7431AA /* SentryBreadcrumbTracker.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SentryBreadcrumbTracker.h; path = Sources/Sentry/include/SentryBreadcrumbTracker.h; sourceTree = ""; }; 7373D0B982765E3B48C0EFF423FB48C3 /* SentrySdkInfo.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SentrySdkInfo.m; path = Sources/Sentry/SentrySdkInfo.m; sourceTree = ""; }; + 738A0B93CC70F6CF8777F3893AB2CFA3 /* SUStandardVersionComparator.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SUStandardVersionComparator.h; path = Sparkle.framework/Versions/A/Headers/SUStandardVersionComparator.h; sourceTree = ""; }; 73D6BCD99FD2399767BF832781C23E4C /* MIKMIDIObject_SubclassMethods.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = MIKMIDIObject_SubclassMethods.h; path = Source/MIKMIDIObject_SubclassMethods.h; sourceTree = ""; }; 73F1D6A961DDAA8C6C19E1BB8C9323BB /* PSWebSocketNetworkThread.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = PSWebSocketNetworkThread.h; path = PocketSocket/PSWebSocketNetworkThread.h; sourceTree = ""; }; 74A7BD4007D0D33E1CE7B23963EF54D8 /* PSWebSocket.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = PSWebSocket.h; path = PocketSocket/PSWebSocket.h; sourceTree = ""; }; 74C0A3A6C4D720CE86642405C5F703E1 /* SentryStacktrace.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SentryStacktrace.m; path = Sources/Sentry/SentryStacktrace.m; sourceTree = ""; }; + 752D57D16D4E6FB7EEB83A05A17AA1BA /* SUUpdaterDelegate.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SUUpdaterDelegate.h; path = Sparkle.framework/Versions/A/Headers/SUUpdaterDelegate.h; sourceTree = ""; }; 753171F28ACABEC38BCCC5670860B359 /* SentryAutoSessionTrackingIntegration.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SentryAutoSessionTrackingIntegration.h; path = Sources/Sentry/include/SentryAutoSessionTrackingIntegration.h; sourceTree = ""; }; 756F797A7B76D65E005A9DF4D6062E52 /* SentryGlobalEventProcessor.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SentryGlobalEventProcessor.m; path = Sources/Sentry/SentryGlobalEventProcessor.m; sourceTree = ""; }; 76000F1F87A39CA40001DBDFA9861D90 /* SentryCrashMonitor_Deadlock.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SentryCrashMonitor_Deadlock.m; path = Sources/SentryCrash/Recording/Monitors/SentryCrashMonitor_Deadlock.m; sourceTree = ""; }; @@ -933,10 +932,10 @@ 77947DE782472B879FDCCDCB0CC7C7EB /* SentryCrashDefaultMachineContextWrapper.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SentryCrashDefaultMachineContextWrapper.h; path = Sources/Sentry/include/SentryCrashDefaultMachineContextWrapper.h; sourceTree = ""; }; 77A9405D13CA80FC037C3663844CE9F3 /* ORSSerialPortManager.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = ORSSerialPortManager.h; path = Source/ORSSerialPortManager.h; sourceTree = ""; }; 77F6ACCC15A443E38DC637CF162446FC /* SentryRateLimitCategory.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SentryRateLimitCategory.h; path = Sources/Sentry/include/SentryRateLimitCategory.h; sourceTree = ""; }; - 78037ACF51AEE26EBAAC0CF289BA0851 /* SUExport.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SUExport.h; path = Sparkle.framework/Versions/A/Headers/SUExport.h; sourceTree = ""; }; 787C8FAA564D595020D78CFCA6F85F0C /* ORSSerialRequest.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = ORSSerialRequest.h; path = Source/ORSSerialRequest.h; sourceTree = ""; }; 78AF728A5F84D2EF76BF633F04DE5725 /* MIKMIDISourceEndpoint.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = MIKMIDISourceEndpoint.h; path = Source/MIKMIDISourceEndpoint.h; sourceTree = ""; }; 78B831CA8CB1F2982F12FF8BA611EF47 /* SentryCrashMonitor_Zombie.c */ = {isa = PBXFileReference; includeInIndex = 1; name = SentryCrashMonitor_Zombie.c; path = Sources/SentryCrash/Recording/Monitors/SentryCrashMonitor_Zombie.c; sourceTree = ""; }; + 79253D32EF7E6CB101354495A47DCAA4 /* SPUDownloaderProtocol.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SPUDownloaderProtocol.h; path = Sparkle.framework/Versions/A/Headers/SPUDownloaderProtocol.h; sourceTree = ""; }; 79545C7112C720A3165521D2DE458095 /* DDAssertMacros.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = DDAssertMacros.h; path = Classes/DDAssertMacros.h; sourceTree = ""; }; 79BA6523E92CB5B6283D78C5012FE57C /* MIKMIDIOutputPort.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = MIKMIDIOutputPort.h; path = Source/MIKMIDIOutputPort.h; sourceTree = ""; }; 7C0AF92C715A217203CD26774EEEB174 /* SentryInstallation.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SentryInstallation.h; path = Sources/Sentry/include/SentryInstallation.h; sourceTree = ""; }; @@ -981,6 +980,7 @@ 90C06302A186140C7307C401D15A8470 /* GCDAsyncSocket.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = GCDAsyncSocket.m; path = Source/GCD/GCDAsyncSocket.m; sourceTree = ""; }; 90E76444BC2399E00011F2E425065DEE /* SentryCrashMonitorType.c */ = {isa = PBXFileReference; includeInIndex = 1; name = SentryCrashMonitorType.c; path = Sources/SentryCrash/Recording/Monitors/SentryCrashMonitorType.c; sourceTree = ""; }; 915BD123E6469D70AB2CA0A7269C1654 /* MIKMIDIMetaEvent.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = MIKMIDIMetaEvent.m; path = Source/MIKMIDIMetaEvent.m; sourceTree = ""; }; + 9218FE54483E379579D0FCF4DE94998F /* Sparkle.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; path = Sparkle.framework; sourceTree = ""; }; 923147A207EAB19044E3838897DC0A84 /* SentryCrashDynamicLinker.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SentryCrashDynamicLinker.h; path = Sources/SentryCrash/Recording/Tools/SentryCrashDynamicLinker.h; sourceTree = ""; }; 92688B3ACE7483E991BAD00CC64651AD /* SentrySerialization.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SentrySerialization.h; path = Sources/Sentry/include/SentrySerialization.h; sourceTree = ""; }; 9274167FE7BF37A2C1930A76F31792E6 /* SocketRocket-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "SocketRocket-prefix.pch"; sourceTree = ""; }; @@ -1002,6 +1002,7 @@ 9A39E6F696F0A227B807D867464D4730 /* MIKMIDIClock.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = MIKMIDIClock.h; path = Source/MIKMIDIClock.h; sourceTree = ""; }; 9A6B2B7586270F8F9F85C68728DA00AD /* SentryCrashMach.c */ = {isa = PBXFileReference; includeInIndex = 1; name = SentryCrashMach.c; path = Sources/SentryCrash/Recording/Tools/SentryCrashMach.c; sourceTree = ""; }; 9AB98A534DFE17DF6723E4F96A1BDCF4 /* DDLogMacros.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = DDLogMacros.h; path = Classes/DDLogMacros.h; sourceTree = ""; }; + 9AE5CE42F64E1CCD82C82DE820DF1178 /* SUExport.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SUExport.h; path = Sparkle.framework/Versions/A/Headers/SUExport.h; sourceTree = ""; }; 9AE812BE2503E356CFE41A44BC2A97E0 /* PSWebSocketBuffer.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = PSWebSocketBuffer.h; path = PocketSocket/PSWebSocketBuffer.h; sourceTree = ""; }; 9AF0FB7B60963D84916F36CBC13CCCC2 /* SentryNSURLRequest.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SentryNSURLRequest.m; path = Sources/Sentry/SentryNSURLRequest.m; sourceTree = ""; }; 9B32177B9C4697370A21CD65054CC9CF /* SentrySdkInfo.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SentrySdkInfo.h; path = Sources/Sentry/Public/SentrySdkInfo.h; sourceTree = ""; }; @@ -1023,6 +1024,7 @@ A1898164894BD62573460587C9368502 /* SentryDebugMeta.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SentryDebugMeta.m; path = Sources/Sentry/SentryDebugMeta.m; sourceTree = ""; }; A1D9AA65FFEA2E21BE9B4D61C9E321A3 /* SentryCrashIntegration.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SentryCrashIntegration.h; path = Sources/Sentry/include/SentryCrashIntegration.h; sourceTree = ""; }; A1E18C0A97B860987FCEE27A68D3172F /* SentryRateLimits.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SentryRateLimits.h; path = Sources/Sentry/include/SentryRateLimits.h; sourceTree = ""; }; + A257901CC0107E690F2CD5DF48C70394 /* SUVersionComparisonProtocol.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SUVersionComparisonProtocol.h; path = Sparkle.framework/Versions/A/Headers/SUVersionComparisonProtocol.h; sourceTree = ""; }; A2D61651B3102F1DFA688E621233A00C /* MIKMIDIPrivate.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = MIKMIDIPrivate.h; path = Source/MIKMIDIPrivate.h; sourceTree = ""; }; A32F16F76AACFD549D42379C41B4B1D2 /* SentryMessage.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SentryMessage.h; path = Sources/Sentry/Public/SentryMessage.h; sourceTree = ""; }; A39D7E2D45C8293DFE98315FC09EC072 /* ASCIImage.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = ASCIImage.release.xcconfig; sourceTree = ""; }; @@ -1062,7 +1064,6 @@ B1D62AA6904056F8A2D23D11A98AF17D /* SentryCrashUUIDConversion.c */ = {isa = PBXFileReference; includeInIndex = 1; name = SentryCrashUUIDConversion.c; path = Sources/SentryCrash/Recording/Tools/SentryCrashUUIDConversion.c; sourceTree = ""; }; B1EDEE2EFC397D9CE9410A0A853E8F4E /* SentryMigrateSessionInit.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SentryMigrateSessionInit.h; path = Sources/Sentry/include/SentryMigrateSessionInit.h; sourceTree = ""; }; B20CB359C11D2F66C566E81020720B30 /* SentryFileManager.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SentryFileManager.m; path = Sources/Sentry/SentryFileManager.m; sourceTree = ""; }; - B26F6B4951E476B54DCC70EBD4522D33 /* SUErrors.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SUErrors.h; path = Sparkle.framework/Versions/A/Headers/SUErrors.h; sourceTree = ""; }; B29F023DBB16DBF7133D864C5A0F00C6 /* MIKMIDIMetaCuePointEvent.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = MIKMIDIMetaCuePointEvent.h; path = Source/MIKMIDIMetaCuePointEvent.h; sourceTree = ""; }; B2B12856B4DD1853AFD7CB2F1D34A9D8 /* HTTPConnection.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = HTTPConnection.h; path = Core/HTTPConnection.h; sourceTree = ""; }; B2DF3C578B67652E9A314620ECCD0F95 /* MIKMIDIEntity.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = MIKMIDIEntity.m; path = Source/MIKMIDIEntity.m; sourceTree = ""; }; @@ -1071,11 +1072,9 @@ B43CE827A9E17EAEB0EFBD3B029764EB /* Pods-Hammerspoon.profile.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-Hammerspoon.profile.xcconfig"; sourceTree = ""; }; B44D327E399A5346DE7363A074B74864 /* MIKMIDIChannelVoiceCommand_SubclassMethods.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = MIKMIDIChannelVoiceCommand_SubclassMethods.h; path = Source/MIKMIDIChannelVoiceCommand_SubclassMethods.h; sourceTree = ""; }; B45F3923BFC9B5725D683898E748497C /* SentryCrashDynamicLinker.c */ = {isa = PBXFileReference; includeInIndex = 1; name = SentryCrashDynamicLinker.c; path = Sources/SentryCrash/Recording/Tools/SentryCrashDynamicLinker.c; sourceTree = ""; }; - B4D1EDE0A735EBA8D99BA78A51141CEE /* SPUDownloader.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SPUDownloader.h; path = Sparkle.framework/Versions/A/Headers/SPUDownloader.h; sourceTree = ""; }; B4E2C45C3EDE5DE9BFDFAF42D6EAC242 /* SentryCrashReportStore.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SentryCrashReportStore.h; path = Sources/SentryCrash/Recording/SentryCrashReportStore.h; sourceTree = ""; }; B56B658A8F179CF95877BEBBAB0A8259 /* SentryRateLimitCategoryMapper.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SentryRateLimitCategoryMapper.m; path = Sources/Sentry/SentryRateLimitCategoryMapper.m; sourceTree = ""; }; B5E519ED5590E4BE2CD5D8A0D43B8495 /* DDContextFilterLogFormatter.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = DDContextFilterLogFormatter.m; path = Classes/Extensions/DDContextFilterLogFormatter.m; sourceTree = ""; }; - B5E5817B1B7FCF7188C9B0BA7AB5E1CC /* SUAppcastItem.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SUAppcastItem.h; path = Sparkle.framework/Versions/A/Headers/SUAppcastItem.h; sourceTree = ""; }; B607BBC42F0BA2520193960A4F2E7F57 /* MIKMIDIChannelPressureEvent.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = MIKMIDIChannelPressureEvent.h; path = Source/MIKMIDIChannelPressureEvent.h; sourceTree = ""; }; B7A5DE5D125ABB42DC882D03737F37E0 /* DDASLLogCapture.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = DDASLLogCapture.h; path = Classes/DDASLLogCapture.h; sourceTree = ""; }; B7AD1518E635F9E9ED65E473EEE2B71F /* PSWebSocketDriver.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = PSWebSocketDriver.m; path = PocketSocket/PSWebSocketDriver.m; sourceTree = ""; }; @@ -1092,6 +1091,7 @@ BB69801C47515378344F744723E5949E /* PSWebSocketTypes.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = PSWebSocketTypes.h; path = PocketSocket/PSWebSocketTypes.h; sourceTree = ""; }; BBE0CAF8F0FADD5F7787D7F468CACDD5 /* MIKMIDIDeviceManager.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = MIKMIDIDeviceManager.h; path = Source/MIKMIDIDeviceManager.h; sourceTree = ""; }; BC11446AE74CEFF69FE52E8CE2F88C5F /* DDLog.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = DDLog.m; path = Classes/DDLog.m; sourceTree = ""; }; + BC2E3F4A27306FE4324E4CD5BC17D3EA /* SUVersionDisplayProtocol.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SUVersionDisplayProtocol.h; path = Sparkle.framework/Versions/A/Headers/SUVersionDisplayProtocol.h; sourceTree = ""; }; BC725B0E6E491A3E8E80AD4FC35D42EF /* SentryCrashMachineContext_Apple.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SentryCrashMachineContext_Apple.h; path = Sources/SentryCrash/Recording/Tools/SentryCrashMachineContext_Apple.h; sourceTree = ""; }; BD445B9FF1C24F9437D572706AC639A6 /* SentryDebugMeta.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SentryDebugMeta.h; path = Sources/Sentry/Public/SentryDebugMeta.h; sourceTree = ""; }; BDC14C33C30E648F8A4C559385774192 /* SentrySessionCrashedHandler.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SentrySessionCrashedHandler.h; path = Sources/Sentry/include/SentrySessionCrashedHandler.h; sourceTree = ""; }; @@ -1110,8 +1110,8 @@ C20AEEE1D558EAB164BE4010F87616AE /* SentryHttpDateParser.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SentryHttpDateParser.m; path = Sources/Sentry/SentryHttpDateParser.m; sourceTree = ""; }; C2392D6C978ACE9EC1A3251D9005DF22 /* MIKMIDISequencer+MIKMIDIPrivate.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "MIKMIDISequencer+MIKMIDIPrivate.h"; path = "Source/MIKMIDISequencer+MIKMIDIPrivate.h"; sourceTree = ""; }; C261436D14052AE3C35F240BCD155CAC /* libCocoaLumberjack.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; name = libCocoaLumberjack.a; path = libCocoaLumberjack.a; sourceTree = BUILT_PRODUCTS_DIR; }; + C27DE450F145CBC169C5F5EB519E0C88 /* SUErrors.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SUErrors.h; path = Sparkle.framework/Versions/A/Headers/SUErrors.h; sourceTree = ""; }; C28A12CECF3C062D0ED074F36EED83EC /* DAVResponse.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = DAVResponse.h; path = Extensions/WebDAV/DAVResponse.h; sourceTree = ""; }; - C35BE31FF8E3F61D974AC382C84CFE88 /* SPUURLRequest.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SPUURLRequest.h; path = Sparkle.framework/Versions/A/Headers/SPUURLRequest.h; sourceTree = ""; }; C3D9B3EFBF7D474EDAF2E3FBE6C13B42 /* NSString+SentryUnsignedLongLongValue.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "NSString+SentryUnsignedLongLongValue.m"; path = "Sources/Sentry/NSString+SentryUnsignedLongLongValue.m"; sourceTree = ""; }; C4839A675F93FB053727455A8A00FABC /* SentryCrashCPU_arm64.c */ = {isa = PBXFileReference; includeInIndex = 1; name = SentryCrashCPU_arm64.c; path = Sources/SentryCrash/Recording/Tools/SentryCrashCPU_arm64.c; sourceTree = ""; }; C51D88DE985EDAFD29C974BE93F6C2F4 /* SentryCrashReportConverter.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SentryCrashReportConverter.m; path = Sources/Sentry/SentryCrashReportConverter.m; sourceTree = ""; }; @@ -1146,8 +1146,8 @@ CECFDF6E8481DFA3CA70C935CE6D27E8 /* MIKMIDIMetronome.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = MIKMIDIMetronome.h; path = Source/MIKMIDIMetronome.h; sourceTree = ""; }; CEF1C9D419042047EBD03AF52FB27690 /* SentryClient.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SentryClient.m; path = Sources/Sentry/SentryClient.m; sourceTree = ""; }; D01BA06D8E6D7A4DFEBDA343DE5757C3 /* Pods-Hammerspoon-acknowledgements.markdown */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text; path = "Pods-Hammerspoon-acknowledgements.markdown"; sourceTree = ""; }; - D0C338C307953F9D58B86A0FD2022CC9 /* SPUDownloaderDelegate.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SPUDownloaderDelegate.h; path = Sparkle.framework/Versions/A/Headers/SPUDownloaderDelegate.h; sourceTree = ""; }; D1A1FB7C650A2F3A4EB6395938879495 /* libPocketSocket.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; name = libPocketSocket.a; path = libPocketSocket.a; sourceTree = BUILT_PRODUCTS_DIR; }; + D1B52446B6FDAA032877E1614B464D16 /* SPUDownloaderDelegate.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SPUDownloaderDelegate.h; path = Sparkle.framework/Versions/A/Headers/SPUDownloaderDelegate.h; sourceTree = ""; }; D1EBEFEE289E243C1290210DF6CE68A1 /* Sentry.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = Sentry.h; path = Sources/Sentry/Public/Sentry.h; sourceTree = ""; }; D299E648E41E48AD2EAD7394B90BFC96 /* MIKMIDIUtilities.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = MIKMIDIUtilities.m; path = Source/MIKMIDIUtilities.m; sourceTree = ""; }; D2B4227E51BC9826BCE57AE2C1E699C4 /* MIKMIDIProgramChangeEvent.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = MIKMIDIProgramChangeEvent.h; path = Source/MIKMIDIProgramChangeEvent.h; sourceTree = ""; }; @@ -1165,7 +1165,7 @@ D8EA8CE8F894AA08ECA1D2F0F121F959 /* HTTPServer.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = HTTPServer.h; path = Core/HTTPServer.h; sourceTree = ""; }; D903D07169408659FFC133F9B7F9EAC8 /* PSWebSocketDeflater.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = PSWebSocketDeflater.h; path = PocketSocket/PSWebSocketDeflater.h; sourceTree = ""; }; D961234B59D3BA1075EB2BB735E91BBF /* MIKMIDIDevice.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = MIKMIDIDevice.m; path = Source/MIKMIDIDevice.m; sourceTree = ""; }; - D9A77F6FB7E44328A22A1CA1BA4C5540 /* SUUpdater.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SUUpdater.h; path = Sparkle.framework/Versions/A/Headers/SUUpdater.h; sourceTree = ""; }; + DA08DFE818E77BD2ACA8B51EAAA3FACB /* SUAppcast.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SUAppcast.h; path = Sparkle.framework/Versions/A/Headers/SUAppcast.h; sourceTree = ""; }; DA8062FCF70FC056F74430B10C2A4C9F /* HTTPRedirectResponse.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = HTTPRedirectResponse.h; path = Core/Responses/HTTPRedirectResponse.h; sourceTree = ""; }; DAC898F7B44137AACA13AAEA6E74643B /* PSWebSocketInflater.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = PSWebSocketInflater.h; path = PocketSocket/PSWebSocketInflater.h; sourceTree = ""; }; DB35405A5B86B728B196735FF2BA3490 /* SentryRequestOperation.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SentryRequestOperation.m; path = Sources/Sentry/SentryRequestOperation.m; sourceTree = ""; }; @@ -1186,6 +1186,7 @@ E0FBAC22F0F37C38A11B698148050BE1 /* MIKMIDIPolyphonicKeyPressureEvent.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = MIKMIDIPolyphonicKeyPressureEvent.m; path = Source/MIKMIDIPolyphonicKeyPressureEvent.m; sourceTree = ""; }; E152FACE854A6B93EF445FB5E3104EE3 /* MIKMIDIPitchBendChangeCommand.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = MIKMIDIPitchBendChangeCommand.h; path = Source/MIKMIDIPitchBendChangeCommand.h; sourceTree = ""; }; E1699C1E2BCBC8B647C8DD964E08DB8F /* MIKMIDISystemMessageCommand.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = MIKMIDISystemMessageCommand.h; path = Source/MIKMIDISystemMessageCommand.h; sourceTree = ""; }; + E2CC78DC72FCF4C3A8B3FF67896A3C23 /* SUUpdater.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SUUpdater.h; path = Sparkle.framework/Versions/A/Headers/SUUpdater.h; sourceTree = ""; }; E2D23A965BF85D4B440A034D95C8700B /* SentryCrashInstallationReporter.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SentryCrashInstallationReporter.m; path = Sources/Sentry/SentryCrashInstallationReporter.m; sourceTree = ""; }; E32392067D82F01833ADC9F0E72D6CE8 /* SentryEvent.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SentryEvent.h; path = Sources/Sentry/Public/SentryEvent.h; sourceTree = ""; }; E3D68E1393A63F3CADF4FE6C75BFF850 /* SentryCrashString.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SentryCrashString.h; path = Sources/SentryCrash/Recording/Tools/SentryCrashString.h; sourceTree = ""; }; @@ -1251,6 +1252,7 @@ FAFD2163724225A0DE2E6AA232750152 /* MIKMIDIEndpointSynthesizer.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = MIKMIDIEndpointSynthesizer.m; path = Source/MIKMIDIEndpointSynthesizer.m; sourceTree = ""; }; FB6F6CC4B74C23B6F44FAA45F311644C /* MIKMIDIChannelVoiceCommand.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = MIKMIDIChannelVoiceCommand.m; path = Source/MIKMIDIChannelVoiceCommand.m; sourceTree = ""; }; FB921E304A7C72AA12EEBCE97D176912 /* SentryMechanism.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SentryMechanism.h; path = Sources/Sentry/Public/SentryMechanism.h; sourceTree = ""; }; + FBD2BAFAEF5141C2F2436CBFB59DED0B /* SUAppcastItem.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SUAppcastItem.h; path = Sparkle.framework/Versions/A/Headers/SUAppcastItem.h; sourceTree = ""; }; FC374DF77E0F81EE16EBDFA241017BA7 /* MIKMIDI.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = MIKMIDI.h; path = Source/MIKMIDI.h; sourceTree = ""; }; FC654E7B7E7D58DE62D45C321A827D0C /* SentryHttpDateParser.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SentryHttpDateParser.h; path = Sources/Sentry/include/SentryHttpDateParser.h; sourceTree = ""; }; FC9DB86742A5E4D951A9265769E6210B /* SentryCrashMonitor_Signal.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SentryCrashMonitor_Signal.h; path = Sources/SentryCrash/Recording/Monitors/SentryCrashMonitor_Signal.h; sourceTree = ""; }; @@ -1605,6 +1607,34 @@ path = CocoaAsyncSocket; sourceTree = ""; }; + 360F715AEBA3533DAE9A4132CD24F1DA /* Sparkle */ = { + isa = PBXGroup; + children = ( + 38E5882F194EBD99FA23E24A61AB02FB /* Sparkle.h */, + 123B18CD67659EBB6FA0EF8BC1DDDA28 /* SPUDownloadData.h */, + 27F50B7DC3B7217252E77C4CC8781F28 /* SPUDownloader.h */, + D1B52446B6FDAA032877E1614B464D16 /* SPUDownloaderDelegate.h */, + 12DECF5B6ED26958764B8718B8831773 /* SPUDownloaderDeprecated.h */, + 79253D32EF7E6CB101354495A47DCAA4 /* SPUDownloaderProtocol.h */, + 38F8DB188CB203B43FDAC8049DB523FD /* SPUDownloaderSession.h */, + 5ACD2C3CFBE3D41F50035A80A91605DB /* SPUURLRequest.h */, + DA08DFE818E77BD2ACA8B51EAAA3FACB /* SUAppcast.h */, + FBD2BAFAEF5141C2F2436CBFB59DED0B /* SUAppcastItem.h */, + 2F7519A63C32DC48508C751FC7C85121 /* SUCodeSigningVerifier.h */, + C27DE450F145CBC169C5F5EB519E0C88 /* SUErrors.h */, + 9AE5CE42F64E1CCD82C82DE820DF1178 /* SUExport.h */, + 738A0B93CC70F6CF8777F3893AB2CFA3 /* SUStandardVersionComparator.h */, + E2CC78DC72FCF4C3A8B3FF67896A3C23 /* SUUpdater.h */, + 752D57D16D4E6FB7EEB83A05A17AA1BA /* SUUpdaterDelegate.h */, + A257901CC0107E690F2CD5DF48C70394 /* SUVersionComparisonProtocol.h */, + BC2E3F4A27306FE4324E4CD5BC17D3EA /* SUVersionDisplayProtocol.h */, + CFAC30A935FD1CB66EB58898522601B0 /* Frameworks */, + E4F8F31C00904A862762B322F7709549 /* Support Files */, + ); + name = Sparkle; + path = Sparkle; + sourceTree = ""; + }; 4E78EDF262079C7BFF1981504DC59497 /* Products */ = { isa = PBXGroup; children = ( @@ -1729,14 +1759,6 @@ path = CocoaHTTPServer; sourceTree = ""; }; - 8F1DB1618F59F0F66CDC050CBBE5DCEB /* Frameworks */ = { - isa = PBXGroup; - children = ( - 623702AA316E59F35102ABEC5D669675 /* Sparkle.framework */, - ); - name = Frameworks; - sourceTree = ""; - }; 9B821AE22152C7E86C96436E75FDF817 /* CocoaLumberjack */ = { isa = PBXGroup; children = ( @@ -1759,7 +1781,7 @@ CF4D4DA17090664E848C1637C9402EBC /* PocketSocket */, D5B3B44BA00552343CFF1CB342FF96AD /* Sentry */, 0CC663B2D6880CB1998C7BD6AA5818D8 /* SocketRocket */, - D7B401E9D8554D25CBF304E1E5397746 /* Sparkle */, + 360F715AEBA3533DAE9A4132CD24F1DA /* Sparkle */, ); name = Pods; sourceTree = ""; @@ -2096,6 +2118,14 @@ name = Core; sourceTree = ""; }; + CFAC30A935FD1CB66EB58898522601B0 /* Frameworks */ = { + isa = PBXGroup; + children = ( + 9218FE54483E379579D0FCF4DE94998F /* Sparkle.framework */, + ); + name = Frameworks; + sourceTree = ""; + }; D5B3B44BA00552343CFF1CB342FF96AD /* Sentry */ = { isa = PBXGroup; children = ( @@ -2106,39 +2136,22 @@ path = Sentry; sourceTree = ""; }; - D7B401E9D8554D25CBF304E1E5397746 /* Sparkle */ = { + D89477F20FB1DE18A04690586D7808C4 /* Frameworks */ = { isa = PBXGroup; children = ( - 4E1F135B24AC20288B67E15AA80C3492 /* Sparkle.h */, - 00D3437B627D724BDD84E0BF879EE4D6 /* SPUDownloadData.h */, - B4D1EDE0A735EBA8D99BA78A51141CEE /* SPUDownloader.h */, - D0C338C307953F9D58B86A0FD2022CC9 /* SPUDownloaderDelegate.h */, - 29B4457265F8BC1DA745D76A30697024 /* SPUDownloaderDeprecated.h */, - 6E64DC9A33F85869D2E51AE16D0F3BC6 /* SPUDownloaderProtocol.h */, - 4908029F4154C12F02FCC9A1AEFF8649 /* SPUDownloaderSession.h */, - C35BE31FF8E3F61D974AC382C84CFE88 /* SPUURLRequest.h */, - 13ADF270E516C389C122F78BBBA1D326 /* SUAppcast.h */, - B5E5817B1B7FCF7188C9B0BA7AB5E1CC /* SUAppcastItem.h */, - 69A4D570D8E3A40AA893BF8854D827D3 /* SUCodeSigningVerifier.h */, - B26F6B4951E476B54DCC70EBD4522D33 /* SUErrors.h */, - 78037ACF51AEE26EBAAC0CF289BA0851 /* SUExport.h */, - 3775062EA9B11468E4EE300687762286 /* SUStandardVersionComparator.h */, - D9A77F6FB7E44328A22A1CA1BA4C5540 /* SUUpdater.h */, - 060A0D0E03ABB94E50FA8C6C0C602C09 /* SUUpdaterDelegate.h */, - 1650E1041A9EDEA04AE0A8FDD285B934 /* SUVersionComparisonProtocol.h */, - 30B180C4BBFFD743F3145B1056AF287C /* SUVersionDisplayProtocol.h */, - 8F1DB1618F59F0F66CDC050CBBE5DCEB /* Frameworks */, - F5F40F7681AB681E80F484EDB9BA0567 /* Support Files */, ); - name = Sparkle; - path = Sparkle; + name = Frameworks; sourceTree = ""; }; - D89477F20FB1DE18A04690586D7808C4 /* Frameworks */ = { + E4F8F31C00904A862762B322F7709549 /* Support Files */ = { isa = PBXGroup; children = ( + 05BEC41D23246339CE9179DDFD50AA8D /* Sparkle-copy-dsyms.sh */, + 33A3575E80F9F08158CBC39F39E5F6CD /* Sparkle.debug.xcconfig */, + 0836672D58D18C6F966026E1A436AADD /* Sparkle.release.xcconfig */, ); - name = Frameworks; + name = "Support Files"; + path = "../Target Support Files/Sparkle"; sourceTree = ""; }; EBFCCC49DCB731EC44973D838DBE82BE /* Core */ = { @@ -2180,16 +2193,6 @@ name = Core; sourceTree = ""; }; - F5F40F7681AB681E80F484EDB9BA0567 /* Support Files */ = { - isa = PBXGroup; - children = ( - 02C116D8076D117DEAFB3B2EE9887AAE /* Sparkle.debug.xcconfig */, - 47D51B75630F92290BE8F020F6EE42A4 /* Sparkle.release.xcconfig */, - ); - name = "Support Files"; - path = "../Target Support Files/Sparkle"; - sourceTree = ""; - }; F776E104A32FB5B177EC0638482422AC /* Support Files */ = { isa = PBXGroup; children = ( @@ -2803,6 +2806,26 @@ }; /* End PBXProject section */ +/* Begin PBXShellScriptBuildPhase section */ + 780ADEB704B4468F55D513CE1AD96CAA /* [CP] Copy dSYMs */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputPaths = ( + "${PODS_ROOT}/Sparkle/Sparkle.framework.dSYM", + ); + name = "[CP] Copy dSYMs"; + outputPaths = ( + "${DWARF_DSYM_FOLDER_PATH}/Sparkle.framework.dSYM", + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "\"${PODS_ROOT}/Target Support Files/Sparkle/Sparkle-copy-dsyms.sh\"\n"; + showEnvVarsInLog = 0; + }; +/* End PBXShellScriptBuildPhase section */ + /* Begin PBXSourcesBuildPhase section */ 21D5556C46C4ED843C9A39CE5A7F86EB /* Sources */ = { isa = PBXSourcesBuildPhase; @@ -3202,6 +3225,21 @@ /* End PBXTargetDependency section */ /* Begin XCBuildConfiguration section */ + 022D14DDFCE6D227323B8C8004309697 /* Release */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 0836672D58D18C6F966026E1A436AADD /* Sparkle.release.xcconfig */; + buildSettings = { + ARCHS = "$(ARCHS_STANDARD_64_BIT)"; + ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; + ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor; + COMBINE_HIDPI_IMAGES = YES; + ENABLE_NS_ASSERTIONS = YES; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/../Frameworks"; + MACOSX_DEPLOYMENT_TARGET = 10.7; + SDKROOT = macosx; + }; + name = Release; + }; 055F60BCDA584C80EF007D099ECA1645 /* Release */ = { isa = XCBuildConfiguration; baseConfigurationReference = 198E8058F30E51A812F12E7B731A9928 /* SocketRocket.release.xcconfig */; @@ -3252,6 +3290,21 @@ }; name = Profile; }; + 15FCA2F257DC1E622B9805F231480F5F /* Debug */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 33A3575E80F9F08158CBC39F39E5F6CD /* Sparkle.debug.xcconfig */; + buildSettings = { + ARCHS = "$(ARCHS_STANDARD_64_BIT)"; + ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; + ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor; + COMBINE_HIDPI_IMAGES = YES; + ENABLE_NS_ASSERTIONS = YES; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/../Frameworks"; + MACOSX_DEPLOYMENT_TARGET = 10.7; + SDKROOT = macosx; + }; + name = Debug; + }; 18218EF705BFEC834722BFDE994BEA9B /* Release */ = { isa = XCBuildConfiguration; baseConfigurationReference = 94235A1A9E91430837971044CC882B2C /* Pods-Hammerspoon.release.xcconfig */; @@ -3323,21 +3376,6 @@ }; name = Debug; }; - 299AE472AB4EBE11DF63C46EE86CD47A /* Profile */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = 02C116D8076D117DEAFB3B2EE9887AAE /* Sparkle.debug.xcconfig */; - buildSettings = { - ARCHS = "$(ARCHS_STANDARD_64_BIT)"; - ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; - ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor; - COMBINE_HIDPI_IMAGES = YES; - ENABLE_NS_ASSERTIONS = YES; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/../Frameworks"; - MACOSX_DEPLOYMENT_TARGET = 10.7; - SDKROOT = macosx; - }; - name = Profile; - }; 2F0CC3EB54F799A58836EB675080AEF9 /* Release */ = { isa = XCBuildConfiguration; baseConfigurationReference = A39D7E2D45C8293DFE98315FC09EC072 /* ASCIImage.release.xcconfig */; @@ -3411,21 +3449,6 @@ }; name = Profile; }; - 3590A396226FDAD2BECC212B96C62F30 /* Debug */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = 02C116D8076D117DEAFB3B2EE9887AAE /* Sparkle.debug.xcconfig */; - buildSettings = { - ARCHS = "$(ARCHS_STANDARD_64_BIT)"; - ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; - ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor; - COMBINE_HIDPI_IMAGES = YES; - ENABLE_NS_ASSERTIONS = YES; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/../Frameworks"; - MACOSX_DEPLOYMENT_TARGET = 10.7; - SDKROOT = macosx; - }; - name = Debug; - }; 3663C91FB9033DA79A504686FDC7E225 /* Profile */ = { isa = XCBuildConfiguration; baseConfigurationReference = D483045BE7752B62E39D67E0464609BE /* CocoaAsyncSocket.debug.xcconfig */; @@ -3499,21 +3522,6 @@ }; name = Debug; }; - 45CA9DA9C3A5FACBB88571022AB5124D /* Release */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = 47D51B75630F92290BE8F020F6EE42A4 /* Sparkle.release.xcconfig */; - buildSettings = { - ARCHS = "$(ARCHS_STANDARD_64_BIT)"; - ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; - ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor; - COMBINE_HIDPI_IMAGES = YES; - ENABLE_NS_ASSERTIONS = YES; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/../Frameworks"; - MACOSX_DEPLOYMENT_TARGET = 10.7; - SDKROOT = macosx; - }; - name = Release; - }; 45D4CF3F7F174694C1263B400AD96B13 /* Release */ = { isa = XCBuildConfiguration; baseConfigurationReference = 0EB4146143CA61CB5EB3C775A28B0F0F /* CocoaHTTPServer.release.xcconfig */; @@ -4048,6 +4056,21 @@ }; name = Debug; }; + DC1C5D2570C9146E6F896F06A6DE0CF6 /* Profile */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 33A3575E80F9F08158CBC39F39E5F6CD /* Sparkle.debug.xcconfig */; + buildSettings = { + ARCHS = "$(ARCHS_STANDARD_64_BIT)"; + ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; + ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor; + COMBINE_HIDPI_IMAGES = YES; + ENABLE_NS_ASSERTIONS = YES; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/../Frameworks"; + MACOSX_DEPLOYMENT_TARGET = 10.7; + SDKROOT = macosx; + }; + name = Profile; + }; DC1F550CDF3521CDCDA6C8870724E111 /* Profile */ = { isa = XCBuildConfiguration; baseConfigurationReference = 442361CD96EE25D40D407C816744CC49 /* PocketSocket.debug.xcconfig */; @@ -4193,6 +4216,16 @@ defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; }; + 328F2DB001265813043B82D818B21AC9 /* Build configuration list for PBXAggregateTarget "Sparkle" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 15FCA2F257DC1E622B9805F231480F5F /* Debug */, + DC1C5D2570C9146E6F896F06A6DE0CF6 /* Profile */, + 022D14DDFCE6D227323B8C8004309697 /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; 475510415BC7A039C9AF0C1C6E44616D /* Build configuration list for PBXNativeTarget "ORSSerialPort" */ = { isa = XCConfigurationList; buildConfigurations = ( @@ -4283,16 +4316,6 @@ defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; }; - DFD76CF3BA88B1E29302E27ACFBF9960 /* Build configuration list for PBXAggregateTarget "Sparkle" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - 3590A396226FDAD2BECC212B96C62F30 /* Debug */, - 299AE472AB4EBE11DF63C46EE86CD47A /* Profile */, - 45CA9DA9C3A5FACBB88571022AB5124D /* Release */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; /* End XCConfigurationList section */ }; rootObject = BFDFE7DC352907FC980B868725387E98 /* Project object */; diff --git a/Pods/Sentry/Sources/Sentry/Public/Sentry.h b/Pods/Sentry/Sources/Sentry/Public/Sentry.h new file mode 100644 index 000000000..06f57c5af --- /dev/null +++ b/Pods/Sentry/Sources/Sentry/Public/Sentry.h @@ -0,0 +1,35 @@ +#import + +//! Project version number for Sentry. +FOUNDATION_EXPORT double SentryVersionNumber; + +//! Project version string for Sentry. +FOUNDATION_EXPORT const unsigned char SentryVersionString[]; + +#import "SentryBreadcrumb.h" +#import "SentryClient.h" +#import "SentryCrashExceptionApplication.h" +#import "SentryDebugMeta.h" +#import "SentryDefines.h" +#import "SentryDsn.h" +#import "SentryEnvelope.h" +#import "SentryEnvelopeItemType.h" +#import "SentryError.h" +#import "SentryEvent.h" +#import "SentryException.h" +#import "SentryFrame.h" +#import "SentryHub.h" +#import "SentryId.h" +#import "SentryIntegrationProtocol.h" +#import "SentryMechanism.h" +#import "SentryMessage.h" +#import "SentryOptions.h" +#import "SentrySDK.h" +#import "SentryScope.h" +#import "SentrySdkInfo.h" +#import "SentrySerializable.h" +#import "SentrySession.h" +#import "SentryStacktrace.h" +#import "SentryThread.h" +#import "SentryUser.h" +#import "SentryUserFeedback.h" diff --git a/Pods/Sentry/Sources/Sentry/Public/SentryBreadcrumb.h b/Pods/Sentry/Sources/Sentry/Public/SentryBreadcrumb.h new file mode 100644 index 000000000..0fa5034f6 --- /dev/null +++ b/Pods/Sentry/Sources/Sentry/Public/SentryBreadcrumb.h @@ -0,0 +1,63 @@ +#import + +#import "SentryDefines.h" +#import "SentrySerializable.h" + +NS_ASSUME_NONNULL_BEGIN + +NS_SWIFT_NAME(Breadcrumb) +@interface SentryBreadcrumb : NSObject + +/** + * Level of breadcrumb + */ +@property (nonatomic) SentryLevel level; + +/** + * Category of bookmark, can be any string + */ +@property (nonatomic, copy) NSString *category; + +/** + * NSDate when the breadcrumb happened + */ +@property (nonatomic, strong) NSDate *_Nullable timestamp; + +/** + * Type of breadcrumb, can be e.g.: http, empty, user, navigation + * This will be used as icon of the breadcrumb + */ +@property (nonatomic, copy) NSString *_Nullable type; + +/** + * Message for the breadcrumb + */ +@property (nonatomic, copy) NSString *_Nullable message; + +/** + * Arbitrary additional data that will be sent with the breadcrumb + */ +@property (nonatomic, strong) NSDictionary *_Nullable data; + +/** + * Initializer for SentryBreadcrumb + * + * @param level SentryLevel + * @param category String + * @return SentryBreadcrumb + */ +- (instancetype)initWithLevel:(SentryLevel)level category:(NSString *)category; +- (instancetype)init; ++ (instancetype)new NS_UNAVAILABLE; + +- (NSDictionary *)serialize; + +- (BOOL)isEqual:(id _Nullable)other; + +- (BOOL)isEqualToBreadcrumb:(SentryBreadcrumb *)breadcrumb; + +- (NSUInteger)hash; + +@end + +NS_ASSUME_NONNULL_END diff --git a/Pods/Sentry/Sources/Sentry/Public/SentryClient.h b/Pods/Sentry/Sources/Sentry/Public/SentryClient.h new file mode 100644 index 000000000..d6e09f48a --- /dev/null +++ b/Pods/Sentry/Sources/Sentry/Public/SentryClient.h @@ -0,0 +1,123 @@ +#import + +#import "SentryDefines.h" + +@class SentryOptions, SentrySession, SentryEvent, SentryEnvelope, SentryScope, SentryFileManager, + SentryId, SentryUserFeedback; + +NS_ASSUME_NONNULL_BEGIN + +NS_SWIFT_NAME(Client) +@interface SentryClient : NSObject +SENTRY_NO_INIT + +@property (nonatomic, strong) SentryOptions *options; + +/** + * Initializes a SentryClient. Pass in an dictionary of options. + * + * @param options Options dictionary + * @return SentryClient + */ +- (_Nullable instancetype)initWithOptions:(SentryOptions *)options; + +/** + * Captures a manually created event and sends it to Sentry. + * + * @param event The event to send to Sentry. + * + * @return The SentryId of the event or SentryId.empty if the event is not sent. + */ +- (SentryId *)captureEvent:(SentryEvent *)event NS_SWIFT_NAME(capture(event:)); + +/** + * Captures a manually created event and sends it to Sentry. + * + * @param event The event to send to Sentry. + * @param scope The scope containing event metadata. + * + * @return The SentryId of the event or SentryId.empty if the event is not sent. + */ +- (SentryId *)captureEvent:(SentryEvent *)event + withScope:(SentryScope *)scope NS_SWIFT_NAME(capture(event:scope:)); + +/** + * Captures an error event and sends it to Sentry. + * + * @param error The error to send to Sentry. + * + * @return The SentryId of the event or SentryId.empty if the event is not sent. + */ +- (SentryId *)captureError:(NSError *)error NS_SWIFT_NAME(capture(error:)); + +/** + * Captures an error event and sends it to Sentry. + * + * @param error The error to send to Sentry. + * @param scope The scope containing event metadata. + * + * @return The SentryId of the event or SentryId.empty if the event is not sent. + */ +- (SentryId *)captureError:(NSError *)error + withScope:(SentryScope *)scope NS_SWIFT_NAME(capture(error:scope:)); + +/** + * Captures an exception event and sends it to Sentry. + * + * @param exception The exception to send to Sentry. + * + * @return The SentryId of the event or SentryId.empty if the event is not sent. + */ +- (SentryId *)captureException:(NSException *)exception NS_SWIFT_NAME(capture(exception:)); + +/** + * Captures an exception event and sends it to Sentry. + * + * @param exception The exception to send to Sentry. + * @param scope The scope containing event metadata. + * + * @return The SentryId of the event or SentryId.empty if the event is not sent. + */ +- (SentryId *)captureException:(NSException *)exception + withScope:(SentryScope *)scope NS_SWIFT_NAME(capture(exception:scope:)); + +/** + * Captures a message event and sends it to Sentry. + * + * @param message The message to send to Sentry. + * + * @return The SentryId of the event or SentryId.empty if the event is not sent. + */ +- (SentryId *)captureMessage:(NSString *)message NS_SWIFT_NAME(capture(message:)); + +/** + * Captures a message event and sends it to Sentry. + * + * @param message The message to send to Sentry. + * @param scope The scope containing event metadata. + * + * @return The SentryId of the event or SentryId.empty if the event is not sent. + */ +- (SentryId *)captureMessage:(NSString *)message + withScope:(SentryScope *)scope NS_SWIFT_NAME(capture(message:scope:)); + +/** + * Captures a manually created user feedback and sends it to Sentry. + * + * @param userFeedback The user feedback to send to Sentry. + */ +- (void)captureUserFeedback:(SentryUserFeedback *)userFeedback + NS_SWIFT_NAME(capture(userFeedback:)); + +- (void)captureSession:(SentrySession *)session NS_SWIFT_NAME(capture(session:)); + +- (void)captureEnvelope:(SentryEnvelope *)envelope NS_SWIFT_NAME(capture(envelope:)); + +/** + * Needed by hybrid SDKs as react-native to synchronously store an envelope to disk. + */ +- (void)storeEnvelope:(SentryEnvelope *)envelope; + +@end + +NS_ASSUME_NONNULL_END diff --git a/Pods/Sentry/Sources/Sentry/Public/SentryCrashExceptionApplication.h b/Pods/Sentry/Sources/Sentry/Public/SentryCrashExceptionApplication.h new file mode 100644 index 000000000..c70ecaf87 --- /dev/null +++ b/Pods/Sentry/Sources/Sentry/Public/SentryCrashExceptionApplication.h @@ -0,0 +1,14 @@ +// Don't move Foundation.h. We need it here in order to have +// TargetConditionals.h automatically imported. This is needed +// so that `#if TARGET_OS_OSX` is working fine. If we move +// this the SDK breaks for MacOS. +#import + +#if TARGET_OS_OSX +# import +@interface SentryCrashExceptionApplication : NSApplication +#else +@interface SentryCrashExceptionApplication : NSObject +#endif + +@end diff --git a/Pods/Sentry/Sources/Sentry/Public/SentryDebugMeta.h b/Pods/Sentry/Sources/Sentry/Public/SentryDebugMeta.h new file mode 100644 index 000000000..304a33d6a --- /dev/null +++ b/Pods/Sentry/Sources/Sentry/Public/SentryDebugMeta.h @@ -0,0 +1,45 @@ +#import + +#import "SentrySerializable.h" + +NS_ASSUME_NONNULL_BEGIN + +NS_SWIFT_NAME(DebugMeta) +@interface SentryDebugMeta : NSObject + +/** + * UUID of image + */ +@property (nonatomic, copy) NSString *_Nullable uuid; + +/** + * Type of debug meta, mostly just apple + */ +@property (nonatomic, copy) NSString *_Nullable type; + +/** + * Name of the image + */ +@property (nonatomic, copy) NSString *_Nullable name; + +/** + * Image size + */ +@property (nonatomic, copy) NSNumber *_Nullable imageSize; + +/** + * Image address + */ +@property (nonatomic, copy) NSString *_Nullable imageAddress; + +/** + * Image vm address + */ +@property (nonatomic, copy) NSString *_Nullable imageVmAddress; + +- (instancetype)init; ++ (instancetype)new NS_UNAVAILABLE; + +@end + +NS_ASSUME_NONNULL_END diff --git a/Pods/Sentry/Sources/Sentry/Public/SentryDefines.h b/Pods/Sentry/Sources/Sentry/Public/SentryDefines.h new file mode 100644 index 000000000..ad33eeb08 --- /dev/null +++ b/Pods/Sentry/Sources/Sentry/Public/SentryDefines.h @@ -0,0 +1,95 @@ +#import + +#ifdef __cplusplus +# define SENTRY_EXTERN extern "C" __attribute__((visibility("default"))) +#else +# define SENTRY_EXTERN extern __attribute__((visibility("default"))) +#endif + +#if TARGET_OS_IOS || TARGET_OS_TV +# define SENTRY_HAS_UIDEVICE 1 +#else +# define SENTRY_HAS_UIDEVICE 0 +#endif + +#if SENTRY_HAS_UIDEVICE +# define SENTRY_HAS_UIKIT 1 +#else +# define SENTRY_HAS_UIKIT 0 +#endif + +#define SENTRY_NO_INIT \ + -(instancetype)init NS_UNAVAILABLE; \ + +(instancetype) new NS_UNAVAILABLE; + +@class SentryEvent, SentryBreadcrumb; + +/** + * Block used for returning after a request finished + */ +typedef void (^SentryRequestFinished)(NSError *_Nullable error); + +/** + * Block used for request operation finished, shouldDiscardEvent is YES if event + * should be deleted regardless if an error ocured or not + */ +typedef void (^SentryRequestOperationFinished)( + NSHTTPURLResponse *_Nullable response, NSError *_Nullable error); +/** + * Block can be used to mutate a breadcrumb before it's added to the scope. + * To avoid adding the breadcrumb altogether, return nil instead. + */ +typedef SentryBreadcrumb *_Nullable (^SentryBeforeBreadcrumbCallback)( + SentryBreadcrumb *_Nonnull breadcrumb); + +/** + * Block can be used to mutate event before its send. + * To avoid sending the event altogether, return nil instead. + */ +typedef SentryEvent *_Nullable (^SentryBeforeSendEventCallback)(SentryEvent *_Nonnull event); + +/** + * Block can be used to determine if an event should be queued and stored + * locally. It will be tried to send again after next successful send. Note that + * this will only be called once the event is created and send manully. Once it + * has been queued once it will be discarded if it fails again. + */ +typedef BOOL (^SentryShouldQueueEvent)( + NSHTTPURLResponse *_Nullable response, NSError *_Nullable error); +/** + * Loglevel + */ +typedef NS_ENUM(NSInteger, SentryLogLevel) { + kSentryLogLevelNone = 1, + kSentryLogLevelError, + kSentryLogLevelDebug, + kSentryLogLevelVerbose +}; + +/** + * Sentry level + */ +typedef NS_ENUM(NSUInteger, SentryLevel) { + // Defaults to None which doesn't get serialized + kSentryLevelNone = 0, + // Goes from Debug to Fatal so possible to: (level > Info) { .. } + kSentryLevelDebug = 1, + kSentryLevelInfo = 2, + kSentryLevelWarning = 3, + kSentryLevelError = 4, + kSentryLevelFatal = 5, +}; + +/** + * Static internal helper to convert enum to string + */ +static NSString *_Nonnull const SentryLevelNames[] = { + @"none", + @"debug", + @"info", + @"warning", + @"error", + @"fatal", +}; + +static NSUInteger const defaultMaxBreadcrumbs = 100; diff --git a/Pods/Sentry/Sources/Sentry/Public/SentryDsn.h b/Pods/Sentry/Sources/Sentry/Public/SentryDsn.h new file mode 100644 index 000000000..1b48571b3 --- /dev/null +++ b/Pods/Sentry/Sources/Sentry/Public/SentryDsn.h @@ -0,0 +1,19 @@ +#import + +NS_ASSUME_NONNULL_BEGIN + +@interface SentryDsn : NSObject + +@property (nonatomic, strong, readonly) NSURL *url; + +- (_Nullable instancetype)initWithString:(NSString *)dsnString + didFailWithError:(NSError *_Nullable *_Nullable)error; + +- (NSString *)getHash; + +- (NSURL *)getStoreEndpoint; +- (NSURL *)getEnvelopeEndpoint; + +@end + +NS_ASSUME_NONNULL_END diff --git a/Pods/Sentry/Sources/Sentry/Public/SentryEnvelope.h b/Pods/Sentry/Sources/Sentry/Public/SentryEnvelope.h new file mode 100644 index 000000000..8ca72e538 --- /dev/null +++ b/Pods/Sentry/Sources/Sentry/Public/SentryEnvelope.h @@ -0,0 +1,127 @@ +#import + +#import "SentryDefines.h" + +@class SentryEvent, SentrySession, SentrySdkInfo, SentryId, SentryUserFeedback; + +NS_ASSUME_NONNULL_BEGIN + +@interface SentryEnvelopeHeader : NSObject +SENTRY_NO_INIT + +/** + * Initializes an SentryEnvelopeHeader object with the specified eventId. + * + * Sets the sdkInfo from SentryMeta. + * + * @param eventId The identifier of the event. Can be nil if no event in the envelope or attachment + * related to event. + */ +- (instancetype)initWithId:(SentryId *_Nullable)eventId; + +/** + * Initializes an SentryEnvelopeHeader object with the specified eventId and skdInfo. + * + * It is recommended to use initWithId:eventId: because it sets the sdkInfo for you. + * + * @param eventId The identifier of the event. Can be nil if no event in the envelope or attachment + * related to event. + * @param sdkInfo sdkInfo Describes the Sentry SDK. Can be nil for backwards compatibility. New + * instances should always provide a version. + */ +- (instancetype)initWithId:(SentryId *_Nullable)eventId + andSdkInfo:(SentrySdkInfo *_Nullable)sdkInfo NS_DESIGNATED_INITIALIZER; + +/** + * The event identifier, if available. + * An event id exist if the envelope contains an event of items within it are + * related. i.e Attachments + */ +@property (nonatomic, readonly, copy) SentryId *_Nullable eventId; + +@property (nonatomic, readonly, copy) SentrySdkInfo *_Nullable sdkInfo; + +@end + +@interface SentryEnvelopeItemHeader : NSObject +SENTRY_NO_INIT + +- (instancetype)initWithType:(NSString *)type length:(NSUInteger)length NS_DESIGNATED_INITIALIZER; + +/** + * The type of the envelope item. + */ +@property (nonatomic, readonly, copy) NSString *type; +@property (nonatomic, readonly) NSUInteger length; + +@end + +@interface SentryEnvelopeItem : NSObject +SENTRY_NO_INIT + +- (instancetype)initWithEvent:(SentryEvent *)event; +- (instancetype)initWithSession:(SentrySession *)session; +- (instancetype)initWithUserFeedback:(SentryUserFeedback *)userFeedback; +- (instancetype)initWithHeader:(SentryEnvelopeItemHeader *)header + data:(NSData *)data NS_DESIGNATED_INITIALIZER; + +/** + * The envelope item header. + */ +@property (nonatomic, readonly, strong) SentryEnvelopeItemHeader *header; + +/** + * The envelope payload. + */ +@property (nonatomic, readonly, strong) NSData *data; + +@end + +@interface SentryEnvelope : NSObject +SENTRY_NO_INIT + +// If no event, or no data related to event, id will be null +- (instancetype)initWithId:(SentryId *_Nullable)id singleItem:(SentryEnvelopeItem *)item; + +- (instancetype)initWithHeader:(SentryEnvelopeHeader *)header singleItem:(SentryEnvelopeItem *)item; + +// If no event, or no data related to event, id will be null +- (instancetype)initWithId:(SentryId *_Nullable)id items:(NSArray *)items; + +/** + * Initializes a SentryEnvelope with a single session. + * @param session to init the envelope with. + * @return an initialized SentryEnvelope + */ +- (instancetype)initWithSession:(SentrySession *)session; + +/** + * Initializes a SentryEnvelope with a list of sessions. + * Can be used when an operations that starts a session closes an ongoing + * session + * @param sessions to init the envelope with. + * @return an initialized SentryEnvelope + */ +- (instancetype)initWithSessions:(NSArray *)sessions; + +- (instancetype)initWithHeader:(SentryEnvelopeHeader *)header + items:(NSArray *)items NS_DESIGNATED_INITIALIZER; + +// Convenience init for a single event +- (instancetype)initWithEvent:(SentryEvent *)event; + +- (instancetype)initWithUserFeedback:(SentryUserFeedback *)userFeedback; + +/** + * The envelope header. + */ +@property (nonatomic, readonly, strong) SentryEnvelopeHeader *header; + +/** + * The envelope items. + */ +@property (nonatomic, readonly, strong) NSArray *items; + +@end + +NS_ASSUME_NONNULL_END diff --git a/Pods/Sentry/Sources/Sentry/Public/SentryEnvelopeItemType.h b/Pods/Sentry/Sources/Sentry/Public/SentryEnvelopeItemType.h new file mode 100644 index 000000000..d642c9b18 --- /dev/null +++ b/Pods/Sentry/Sources/Sentry/Public/SentryEnvelopeItemType.h @@ -0,0 +1,5 @@ +static NSString *const SentryEnvelopeItemTypeEvent = @"event"; +static NSString *const SentryEnvelopeItemTypeSession = @"session"; +static NSString *const SentryEnvelopeItemTypeUserFeedback = @"user_report"; +static NSString *const SentryEnvelopeItemTypeTransaction = @"transaction"; +static NSString *const SentryEnvelopeItemTypeAttachment = @"attachment"; diff --git a/Pods/Sentry/Sources/Sentry/Public/SentryError.h b/Pods/Sentry/Sources/Sentry/Public/SentryError.h new file mode 100644 index 000000000..a2f545223 --- /dev/null +++ b/Pods/Sentry/Sources/Sentry/Public/SentryError.h @@ -0,0 +1,23 @@ +#import + +#import "SentryDefines.h" + +NS_ASSUME_NONNULL_BEGIN + +typedef NS_ENUM(NSInteger, SentryError) { + kSentryErrorUnknownError = -1, + kSentryErrorInvalidDsnError = 100, + kSentryErrorSentryCrashNotInstalledError = 101, + kSentryErrorInvalidCrashReportError = 102, + kSentryErrorCompressionError = 103, + kSentryErrorJsonConversionError = 104, + kSentryErrorCouldNotFindDirectory = 105, + kSentryErrorRequestError = 106, + kSentryErrorEventNotSent = 107, +}; + +SENTRY_EXTERN NSError *_Nullable NSErrorFromSentryError(SentryError error, NSString *description); + +SENTRY_EXTERN NSString *const SentryErrorDomain; + +NS_ASSUME_NONNULL_END diff --git a/Pods/Sentry/Sources/Sentry/Public/SentryEvent.h b/Pods/Sentry/Sources/Sentry/Public/SentryEvent.h new file mode 100644 index 000000000..946ca64f1 --- /dev/null +++ b/Pods/Sentry/Sources/Sentry/Public/SentryEvent.h @@ -0,0 +1,169 @@ +#import + +#import "SentryDefines.h" +#import "SentrySerializable.h" + +NS_ASSUME_NONNULL_BEGIN + +@class SentryThread, SentryException, SentryStacktrace, SentryUser, SentryDebugMeta, SentryContext, + SentryBreadcrumb, SentryId, SentryMessage; + +NS_SWIFT_NAME(Event) +@interface SentryEvent : NSObject + +/** + * This will be set by the initializer. + */ +@property (nonatomic, strong) SentryId *eventId; + +/** + * Message of the event + */ +@property (nonatomic, strong) SentryMessage *message; + +/** + * NSDate of when the event occured + */ +@property (nonatomic, strong) NSDate *timestamp; + +/** + * NSDate of when the event started, mostly useful if event type transaction + */ +@property (nonatomic, strong) NSDate *_Nullable startTimestamp; + +/** + * SentryLevel of the event + */ +@property (nonatomic) enum SentryLevel level; + +/** + * Platform this will be used for symbolicating on the server should be "cocoa" + */ +@property (nonatomic, copy) NSString *platform; + +/** + * Define the logger name + */ +@property (nonatomic, copy) NSString *_Nullable logger; + +/** + * Define the server name + */ +@property (nonatomic, copy) NSString *_Nullable serverName; + +/** + * This property will be filled before the event is sent. Do not change it + * otherwise you know what you are doing. + */ +@property (nonatomic, copy) NSString *_Nullable releaseName; + +/** + * This property will be filled before the event is sent. Do not change it + * otherwise you know what you are doing. + */ +@property (nonatomic, copy) NSString *_Nullable dist; + +/** + * The environment used for this event + */ +@property (nonatomic, copy) NSString *_Nullable environment; + +/** + * The current transaction (state) on the crash + */ +@property (nonatomic, copy) NSString *_Nullable transaction; + +/** + * The type of the event, null, default or transaction + */ +@property (nonatomic, copy) NSString *_Nullable type; + +/** + * Arbitrary key:value (string:string ) data that will be shown with the event + */ +@property (nonatomic, strong) NSDictionary *_Nullable tags; + +/** + * Arbitrary additional information that will be sent with the event + */ +@property (nonatomic, strong) NSDictionary *_Nullable extra; + +/** + * Information about the sdk can be something like this. This will be set for + * you Don't touch it if you not know what you are doing. + * + * { + * version: "6.0.1", + * name: "sentry.cocoa", + * integrations: [ + * "react-native" + * ] + * } + */ +@property (nonatomic, strong) NSDictionary *_Nullable sdk; + +/** + * Modules of the event + */ +@property (nonatomic, strong) NSDictionary *_Nullable modules; + +/** + * Set the fingerprint of an event to determine the grouping + */ +@property (nonatomic, strong) NSArray *_Nullable fingerprint; + +/** + * Set the SentryUser for the event + */ +@property (nonatomic, strong) SentryUser *_Nullable user; + +/** + * This object contains meta information, will be set automatically overwrite + * only if you know what you are doing + */ +@property (nonatomic, strong) + NSDictionary *> *_Nullable context; + +/** + * Contains SentryThread if an crash occurred of it's an user reported exception + */ +@property (nonatomic, strong) NSArray *_Nullable threads; + +/** + * General information about the SentryException, usually there is only one + * exception in the array + */ +@property (nonatomic, strong) NSArray *_Nullable exceptions; + +/** + * Separate SentryStacktrace that can be sent with the event, besides threads + */ +@property (nonatomic, strong) SentryStacktrace *_Nullable stacktrace; + +/** + * Containing images loaded during runtime + */ +@property (nonatomic, strong) NSArray *_Nullable debugMeta; + +/** + * This contains all breadcrumbs available at the time when the event + * occurred/will be sent + */ +@property (nonatomic, strong) NSArray *_Nullable breadcrumbs; + +/** + * Init an SentryEvent will set all needed fields by default + * @return SentryEvent + */ +- (instancetype)init; + +/** + * Init an SentryEvent will set all needed fields by default + * @param level SentryLevel + * @return SentryEvent + */ +- (instancetype)initWithLevel:(enum SentryLevel)level NS_DESIGNATED_INITIALIZER; + +@end + +NS_ASSUME_NONNULL_END diff --git a/Pods/Sentry/Sources/Sentry/Public/SentryException.h b/Pods/Sentry/Sources/Sentry/Public/SentryException.h new file mode 100644 index 000000000..6df9463b8 --- /dev/null +++ b/Pods/Sentry/Sources/Sentry/Public/SentryException.h @@ -0,0 +1,54 @@ +#import + +#import "SentryDefines.h" +#import "SentrySerializable.h" + +NS_ASSUME_NONNULL_BEGIN + +@class SentryThread, SentryMechanism; + +NS_SWIFT_NAME(Exception) +@interface SentryException : NSObject +SENTRY_NO_INIT + +/** + * The name of the exception + */ +@property (nonatomic, copy) NSString *value; + +/** + * Type of the exception + */ +@property (nonatomic, copy) NSString *type; + +/** + * Additional information about the exception + */ +@property (nonatomic, strong) SentryMechanism *_Nullable mechanism; + +/** + * Can be set to define the module + */ +@property (nonatomic, copy) NSString *_Nullable module; + +/** + * Determines if the exception was reported by a user BOOL + */ +@property (nonatomic, copy) NSNumber *_Nullable userReported; + +/** + * SentryThread of the SentryException + */ +@property (nonatomic, strong) SentryThread *_Nullable thread; + +/** + * Initialize an SentryException with value and type + * @param value String + * @param type String + * @return SentryException + */ +- (instancetype)initWithValue:(NSString *)value type:(NSString *)type; + +@end + +NS_ASSUME_NONNULL_END diff --git a/Pods/Sentry/Sources/Sentry/Public/SentryFrame.h b/Pods/Sentry/Sources/Sentry/Public/SentryFrame.h new file mode 100644 index 000000000..6dcb46f4f --- /dev/null +++ b/Pods/Sentry/Sources/Sentry/Public/SentryFrame.h @@ -0,0 +1,71 @@ +#import + +#import "SentrySerializable.h" + +NS_ASSUME_NONNULL_BEGIN + +NS_SWIFT_NAME(Frame) +@interface SentryFrame : NSObject + +/** + * SymbolAddress of the frame + */ +@property (nonatomic, copy) NSString *_Nullable symbolAddress; + +/** + * Filename is used only for reporting JS frames + */ +@property (nonatomic, copy) NSString *_Nullable fileName; + +/** + * Function name of the frame + */ +@property (nonatomic, copy) NSString *_Nullable function; + +/** + * Module of the frame, mostly unused + */ +@property (nonatomic, copy) NSString *_Nullable module; + +/** + * Corresponding package + */ +@property (nonatomic, copy) NSString *_Nullable package; + +/** + * ImageAddress if the image related to the frame + */ +@property (nonatomic, copy) NSString *_Nullable imageAddress; + +/** + * Set the platform for the individual frame, will use platform of the event. + * Mostly used for react native crashes. + */ +@property (nonatomic, copy) NSString *_Nullable platform; + +/** + * InstructionAddress of the frame + */ +@property (nonatomic, copy) NSString *_Nullable instructionAddress; + +/** + * User for react native, will be ignored for cocoa frames + */ +@property (nonatomic, copy) NSNumber *_Nullable lineNumber; + +/** + * User for react native, will be ignored for cocoa frames + */ +@property (nonatomic, copy) NSNumber *_Nullable columnNumber; + +/** + * Determines if the Frame is inApp or not + */ +@property (nonatomic, copy) NSNumber *_Nullable inApp; + +- (instancetype)init; ++ (instancetype)new NS_UNAVAILABLE; + +@end + +NS_ASSUME_NONNULL_END diff --git a/Pods/Sentry/Sources/Sentry/Public/SentryHub.h b/Pods/Sentry/Sources/Sentry/Public/SentryHub.h new file mode 100644 index 000000000..241001530 --- /dev/null +++ b/Pods/Sentry/Sources/Sentry/Public/SentryHub.h @@ -0,0 +1,157 @@ +#import "SentryDefines.h" +#import "SentryIntegrationProtocol.h" + +@class SentryEvent, SentryClient, SentryScope, SentrySession, SentryUser, SentryBreadcrumb, + SentryId, SentryUserFeedback; + +NS_ASSUME_NONNULL_BEGIN +@interface SentryHub : NSObject +SENTRY_NO_INIT + +- (instancetype)initWithClient:(SentryClient *_Nullable)client + andScope:(SentryScope *_Nullable)scope; + +// Since there's no scope stack, single hub instance, experimenting with holding +// session here. +@property (nonatomic, readonly, strong) SentrySession *_Nullable session; + +- (void)startSession; +- (void)endSessionWithTimestamp:(NSDate *)timestamp; +- (void)closeCachedSessionWithTimestamp:(NSDate *_Nullable)timestamp; + +@property (nonatomic, strong) + NSMutableArray *> *installedIntegrations; + +/** + * Captures a manually created event and sends it to Sentry. + * + * @param event The event to send to Sentry. + * + * @return The SentryId of the event or SentryId.empty if the event is not sent. + */ +- (SentryId *)captureEvent:(SentryEvent *)event NS_SWIFT_NAME(capture(event:)); + +/** + * Captures a manually created event and sends it to Sentry. + * + * @param event The event to send to Sentry. + * @param scope The scope containing event metadata. + * + * @return The SentryId of the event or SentryId.empty if the event is not sent. + */ +- (SentryId *)captureEvent:(SentryEvent *)event + withScope:(SentryScope *)scope NS_SWIFT_NAME(capture(event:scope:)); + +/** + * Captures an error event and sends it to Sentry. + * + * @param error The error to send to Sentry. + * + * @return The SentryId of the event or SentryId.empty if the event is not sent. + */ +- (SentryId *)captureError:(NSError *)error NS_SWIFT_NAME(capture(error:)); + +/** + * Captures an error event and sends it to Sentry. + * + * @param error The error to send to Sentry. + * @param scope The scope containing event metadata. + * + * @return The SentryId of the event or SentryId.empty if the event is not sent. + */ +- (SentryId *)captureError:(NSError *)error + withScope:(SentryScope *)scope NS_SWIFT_NAME(capture(error:scope:)); + +/** + * Captures an exception event and sends it to Sentry. + * + * @param exception The exception to send to Sentry. + * + * @return The SentryId of the event or SentryId.empty if the event is not sent. + */ +- (SentryId *)captureException:(NSException *)exception NS_SWIFT_NAME(capture(exception:)); + +/** + * Captures an exception event and sends it to Sentry. + * + * @param exception The exception to send to Sentry. + * @param scope The scope containing event metadata. + * + * @return The SentryId of the event or SentryId.empty if the event is not sent. + */ +- (SentryId *)captureException:(NSException *)exception + withScope:(SentryScope *)scope NS_SWIFT_NAME(capture(exception:scope:)); + +/** + * Captures a message event and sends it to Sentry. + * + * @param message The message to send to Sentry. + * + * @return The SentryId of the event or SentryId.empty if the event is not sent. + */ +- (SentryId *)captureMessage:(NSString *)message NS_SWIFT_NAME(capture(message:)); + +/** + * Captures a message event and sends it to Sentry. + * + * @param message The message to send to Sentry. + * @param scope The scope containing event metadata. + * + * @return The SentryId of the event or SentryId.empty if the event is not sent. + */ +- (SentryId *)captureMessage:(NSString *)message + withScope:(SentryScope *)scope NS_SWIFT_NAME(capture(message:scope:)); + +/** + * Captures a manually created user feedback and sends it to Sentry. + * + * @param userFeedback The user feedback to send to Sentry. + */ +- (void)captureUserFeedback:(SentryUserFeedback *)userFeedback + NS_SWIFT_NAME(capture(userFeedback:)); + +/** + * Invokes the callback with a mutable reference to the scope for modifications. + */ +- (void)configureScope:(void (^)(SentryScope *scope))callback; + +/** + * Adds a breadcrumb to the current scope. + */ +- (void)addBreadcrumb:(SentryBreadcrumb *)crumb; + +/** + * Returns a client if there is a bound client on the Hub. + */ +- (SentryClient *_Nullable)getClient; + +/** + * Returns a scope either the current or new. + */ +- (SentryScope *)getScope; + +/** + * Binds a different client to the hub. + */ +- (void)bindClient:(SentryClient *_Nullable)client; + +/** + * Checks if integration is activated for bound client and returns it. + */ +- (id _Nullable)getIntegration:(NSString *)integrationName; + +/** + * Checks if a specific Integration (`integrationClass`) has been installed. + * @return BOOL If instance of `integrationClass` exists within + * `SentryHub.installedIntegrations`. + */ +- (BOOL)isIntegrationInstalled:(Class)integrationClass; + +/** + * Set global user -> thus will be sent with every event + */ +- (void)setUser:(SentryUser *_Nullable)user; + +@end + +NS_ASSUME_NONNULL_END diff --git a/Pods/Sentry/Sources/Sentry/Public/SentryId.h b/Pods/Sentry/Sources/Sentry/Public/SentryId.h new file mode 100644 index 000000000..dba269d2e --- /dev/null +++ b/Pods/Sentry/Sources/Sentry/Public/SentryId.h @@ -0,0 +1,46 @@ +#import + +NS_ASSUME_NONNULL_BEGIN + +/** + * A wrapper around UUID. + * UUIDs are declared as either 32 character hexadecimal strings without dashes + * "12c2d058d58442709aa2eca08bf20986", or 36 character strings with dashes + * "12c2d058-d584-4270-9aa2-eca08bf20986". It is recommended to omit dashes and use UUID v4 in all + * cases. + */ +@interface SentryId : NSObject + +/** + * Creates a SentryId with a random SentryId. + */ +- (instancetype)init; + +/** + * Creates a SentryId with the given UUID. + */ +- (instancetype)initWithUUID:(NSUUID *)uuid; + +/** + * Creates a SentryId from a 32 character hexadecimal string without dashes such as + * "12c2d058d58442709aa2eca08bf20986" or a 36 character hexadecimal string such as such as + * "12c2d058-d584-4270-9aa2-eca08bf20986". + * + * @return SentryId.empty for invalid strings. + */ +- (instancetype)initWithUUIDString:(NSString *)string; + +/** + * Returns a 32 lowercase character hexadecimal string description of the SentryId, such as + * "12c2d058d58442709aa2eca08bf20986". + */ +@property (readonly, copy) NSString *sentryIdString; + +/** + * A SentryId with an empty UUID "00000000000000000000000000000000". + */ +@property (class, nonatomic, readonly, strong) SentryId *empty; + +@end + +NS_ASSUME_NONNULL_END diff --git a/Pods/Sentry/Sources/Sentry/Public/SentryIntegrationProtocol.h b/Pods/Sentry/Sources/Sentry/Public/SentryIntegrationProtocol.h new file mode 100644 index 000000000..4080d59a3 --- /dev/null +++ b/Pods/Sentry/Sources/Sentry/Public/SentryIntegrationProtocol.h @@ -0,0 +1,17 @@ +#import + +#import "SentryDefines.h" +#import "SentryOptions.h" + +NS_ASSUME_NONNULL_BEGIN + +@protocol SentryIntegrationProtocol + +/** + * installs the integration and returns YES if successful. + */ +- (void)installWithOptions:(SentryOptions *)options; + +@end + +NS_ASSUME_NONNULL_END diff --git a/Pods/Sentry/Sources/Sentry/Public/SentryMechanism.h b/Pods/Sentry/Sources/Sentry/Public/SentryMechanism.h new file mode 100644 index 000000000..b87537fa0 --- /dev/null +++ b/Pods/Sentry/Sources/Sentry/Public/SentryMechanism.h @@ -0,0 +1,57 @@ +#import + +#import "SentryDefines.h" +#import "SentrySerializable.h" + +NS_ASSUME_NONNULL_BEGIN + +NS_SWIFT_NAME(Mechanism) +@interface SentryMechanism : NSObject +SENTRY_NO_INIT + +/** + * A unique identifier of this mechanism determining rendering and processing + * of the mechanism data + */ +@property (nonatomic, copy) NSString *type; + +/** + * Human readable description of the error mechanism and a possible + * hint on how to solve this error + */ +@property (nonatomic, copy) NSString *_Nullable desc; + +/** + * Arbitrary extra data that might help the user understand the error thrown by + * this mechanism + */ +@property (nonatomic, strong) NSDictionary *_Nullable data; + +/** + * Flag indicating whether the exception has been handled by the user + * (e.g. via ``try..catch``) + */ +@property (nonatomic, copy) NSNumber *_Nullable handled; + +/** + * Fully qualified URL to an online help resource, possible + * interpolated with error parameters + */ +@property (nonatomic, copy) NSString *_Nullable helpLink; + +/** + * Information from the operating system or runtime on the exception + * mechanism + */ +@property (nonatomic, strong) NSDictionary *_Nullable meta; + +/** + * Initialize an SentryMechanism with a type + * @param type String + * @return SentryMechanism + */ +- (instancetype)initWithType:(NSString *)type; + +@end + +NS_ASSUME_NONNULL_END diff --git a/Pods/Sentry/Sources/Sentry/Public/SentryMessage.h b/Pods/Sentry/Sources/Sentry/Public/SentryMessage.h new file mode 100644 index 000000000..bd61581b3 --- /dev/null +++ b/Pods/Sentry/Sources/Sentry/Public/SentryMessage.h @@ -0,0 +1,43 @@ +#import "SentryDefines.h" +#import "SentrySerializable.h" +#import + +NS_ASSUME_NONNULL_BEGIN + +/** + * Carries a log message that describes an event or error. Optionally, it can carry a format string + * and structured parameters. This can help to group similar messages into the same issue. + * + * For more info checkout: https://develop.sentry.dev/sdk/event-payloads/message/ + */ +@interface SentryMessage : NSObject +SENTRY_NO_INIT + +/** + * Returns a SentyMessage with setting formatted. + * + * @param formatted The fully formatted message. If missing, Sentry will try to interpolate the + * message. It must not exceed 8192 characters. Longer messages will be truncated. + */ +- (instancetype)initWithFormatted:(NSString *)formatted; + +/** + * The fully formatted message. If missing, Sentry will try to interpolate the message. It must not + * exceed 8192 characters. Longer messages will be truncated. + */ +@property (nonatomic, readonly, copy) NSString *formatted; + +/** + * The raw message string (uninterpolated). It must not exceed 8192 characters. Longer messages will + * be truncated. + */ +@property (nonatomic, copy) NSString *_Nullable message; + +/** + * A list of formatting parameters for the raw message. + */ +@property (nonatomic, strong) NSArray *_Nullable params; + +@end + +NS_ASSUME_NONNULL_END diff --git a/Pods/Sentry/Sources/Sentry/Public/SentryOptions.h b/Pods/Sentry/Sources/Sentry/Public/SentryOptions.h new file mode 100644 index 000000000..d608c743a --- /dev/null +++ b/Pods/Sentry/Sources/Sentry/Public/SentryOptions.h @@ -0,0 +1,119 @@ +#import "SentryDefines.h" + +NS_ASSUME_NONNULL_BEGIN + +@class SentryDsn; + +NS_SWIFT_NAME(Options) +@interface SentryOptions : NSObject + +/** + * Init SentryOptions. + * @param options Options dictionary + * @return SentryOptions + */ +- (_Nullable instancetype)initWithDict:(NSDictionary *)options + didFailWithError:(NSError *_Nullable *_Nullable)error; + +/** + * The DSN tells the SDK where to send the events to. If this value is not provided, the SDK will + * not send any events. + */ +@property (nonatomic, strong) NSString *_Nullable dsn; + +/** + * The parsed internal DSN. + */ +@property (nonatomic, strong) SentryDsn *_Nullable parsedDsn; + +/** + * debug [mode] sets a more verbose log level. Default is NO. If set to YES + * sentry prints more log messages to the console. + */ +@property (nonatomic, assign) BOOL debug; + +/** + DEPRECATED: use debug bool instead (debug = YES maps to logLevel + kSentryLogLevelError, debug = NO maps to loglevel kSentryLogLevelError). thus + kSentryLogLevelNone and kSentryLogLevelDebug will be dropped entirely. defines + the log level of sentry log (console output). + */ +@property (nonatomic, assign) SentryLogLevel logLevel; + +/** + * This property will be filled before the event is sent. + */ +@property (nonatomic, copy) NSString *_Nullable releaseName; + +/** + * This property will be filled before the event is sent. + */ +@property (nonatomic, copy) NSString *_Nullable dist; + +/** + * The environment used for this event + */ +@property (nonatomic, copy) NSString *_Nullable environment; + +/** + * Specifies wether this SDK should send events to Sentry. If set to NO events will be + * dropped in the client and not sent to Sentry. Default is YES. + */ +@property (nonatomic, assign) BOOL enabled; + +/** + * How many breadcrumbs do you want to keep in memory? + * Default is 100. + */ +@property (nonatomic, assign) NSUInteger maxBreadcrumbs; + +/** + * This block can be used to modify the event before it will be serialized and + * sent + */ +@property (nonatomic, copy) SentryBeforeSendEventCallback _Nullable beforeSend; + +/** + * This block can be used to modify the event before it will be serialized and + * sent + */ +@property (nonatomic, copy) SentryBeforeBreadcrumbCallback _Nullable beforeBreadcrumb; + +/** + * Array of integrations to install. + */ +@property (nonatomic, copy) NSArray *_Nullable integrations; + +/** + * Array of default integrations. Will be used if integrations are nil + */ ++ (NSArray *)defaultIntegrations; + +/** + * Defines the sample rate of SentryClient, should be a float between 0.0 + * and 1.0. valid settings are 0.0 - 1.0 and nil + */ +@property (nonatomic, copy) NSNumber *_Nullable sampleRate; + +/** + * Whether to enable automatic session tracking or not. Default is YES. + */ +@property (nonatomic, assign) BOOL enableAutoSessionTracking; + +/** + * The interval to end a session if the App goes to the background. + */ +@property (nonatomic, assign) NSUInteger sessionTrackingIntervalMillis; + +/** + * When enabled, stack traces are automatically attached to all messages logged. Stack traces are + * always attached to exceptions but when this is set stack traces are also sent with messages. + * Stack traces are only attached for the current thread. + * + * This feature is disabled by default. + */ +@property (nonatomic, assign) BOOL attachStacktrace; + +@end + +NS_ASSUME_NONNULL_END diff --git a/Pods/Sentry/Sources/Sentry/Public/SentrySDK.h b/Pods/Sentry/Sources/Sentry/Public/SentrySDK.h new file mode 100644 index 000000000..0fa88747c --- /dev/null +++ b/Pods/Sentry/Sources/Sentry/Public/SentrySDK.h @@ -0,0 +1,222 @@ +#import + +#import "SentryDefines.h" + +@class SentryHub, SentryOptions, SentryEvent, SentryBreadcrumb, SentryScope, SentryUser, SentryId, + SentryUserFeedback; + +NS_ASSUME_NONNULL_BEGIN + +// NS_SWIFT_NAME(SDK) +/** + "static api" for easy access to most common sentry sdk features + + try `SentryHub` for advanced features + */ +@interface SentrySDK : NSObject +SENTRY_NO_INIT + +/** + * Returns current hub + */ ++ (SentryHub *)currentHub; + +/** + * This forces a crash, useful to test the SentryCrash integration + */ ++ (void)crash; + +/** + * Sets current hub + */ ++ (void)setCurrentHub:(SentryHub *)hub; + +/** + * Inits and configures Sentry (SentryHub, SentryClient) and sets up all integrations. + */ ++ (void)startWithOptions:(NSDictionary *)optionsDict NS_SWIFT_NAME(start(options:)); + +/** + * Inits and configures Sentry (SentryHub, SentryClient) and sets up all integrations. + */ ++ (void)startWithOptionsObject:(SentryOptions *)options NS_SWIFT_NAME(start(options:)); + +/** + * Inits and configures Sentry (SentryHub, SentryClient) and sets up all integrations. Make sure to + * set a valid DSN otherwise. + */ ++ (void)startWithConfigureOptions:(void (^)(SentryOptions *options))configureOptions + NS_SWIFT_NAME(start(configureOptions:)); + +/** + * Captures a manually created event and sends it to Sentry. + * + * @param event The event to send to Sentry. + * + * @return The SentryId of the event or SentryId.empty if the event is not sent. + */ ++ (SentryId *)captureEvent:(SentryEvent *)event NS_SWIFT_NAME(capture(event:)); + +/** + * Captures a manually created event and sends it to Sentry. Only the data in this scope object will + * be added to the event. The global scope will be ignored. + * + * @param event The event to send to Sentry. + * @param scope The scope containing event metadata. + * + * @return The SentryId of the event or SentryId.empty if the event is not sent. + */ ++ (SentryId *)captureEvent:(SentryEvent *)event + withScope:(SentryScope *)scope NS_SWIFT_NAME(capture(event:scope:)); + +/** + * Captures a manually created event and sends it to Sentry. Maintains the global scope but mutates + * scope data for only this call. + * + * @param event The event to send to Sentry. + * @param block The block mutating the scope only for this call. + * + * @return The SentryId of the event or SentryId.empty if the event is not sent. + */ ++ (SentryId *)captureEvent:(SentryEvent *)event + withScopeBlock:(void (^)(SentryScope *scope))block NS_SWIFT_NAME(capture(event:block:)); + +/** + * Captures an error event and sends it to Sentry. + * + * @param error The error to send to Sentry. + * + * @return The SentryId of the event or SentryId.empty if the event is not sent. + */ ++ (SentryId *)captureError:(NSError *)error NS_SWIFT_NAME(capture(error:)); + +/** + * Captures an error event and sends it to Sentry. Only the data in this scope object will be added + * to the event. The global scope will be ignored. + * + * @param error The error to send to Sentry. + * @param scope The scope containing event metadata. + * + * @return The SentryId of the event or SentryId.empty if the event is not sent. + */ ++ (SentryId *)captureError:(NSError *)error + withScope:(SentryScope *)scope NS_SWIFT_NAME(capture(error:scope:)); + +/** + * Captures an error event and sends it to Sentry. Maintains the global scope but mutates scope data + * for only this call. + * + * @param error The error to send to Sentry. + * @param block The block mutating the scope only for this call. + * + * @return The SentryId of the event or SentryId.empty if the event is not sent. + */ ++ (SentryId *)captureError:(NSError *)error + withScopeBlock:(void (^)(SentryScope *scope))block NS_SWIFT_NAME(capture(error:block:)); + +/** + * Captures an exception event and sends it to Sentry. + * + * @param exception The exception to send to Sentry. + * + * @return The SentryId of the event or SentryId.empty if the event is not sent. + */ ++ (SentryId *)captureException:(NSException *)exception NS_SWIFT_NAME(capture(exception:)); + +/** + * Captures an exception event and sends it to Sentry. Only the data in this scope object will be + * added to the event. The global scope will be ignored. + * + * @param exception The exception to send to Sentry. + * @param scope The scope containing event metadata. + * + * @return The SentryId of the event or SentryId.empty if the event is not sent. + */ ++ (SentryId *)captureException:(NSException *)exception + withScope:(SentryScope *)scope NS_SWIFT_NAME(capture(exception:scope:)); + +/** + * Captures an exception event and sends it to Sentry. Maintains the global scope but mutates scope + * data for only this call. + * + * @param exception The exception to send to Sentry. + * @param block The block mutating the scope only for this call. + * + * @return The SentryId of the event or SentryId.empty if the event is not sent. + */ ++ (SentryId *)captureException:(NSException *)exception + withScopeBlock:(void (^)(SentryScope *scope))block + NS_SWIFT_NAME(capture(exception:block:)); + +/** + * Captures a message event and sends it to Sentry. + * + * @param message The message to send to Sentry. + * + * @return The SentryId of the event or SentryId.empty if the event is not sent. + */ ++ (SentryId *)captureMessage:(NSString *)message NS_SWIFT_NAME(capture(message:)); + +/** + * Captures a message event and sends it to Sentry. Only the data in this scope object will be added + * to the event. The global scope will be ignored. + * + * @param message The message to send to Sentry. + * @param scope The scope containing event metadata. + * + * @return The SentryId of the event or SentryId.empty if the event is not sent. + */ ++ (SentryId *)captureMessage:(NSString *)message + withScope:(SentryScope *)scope NS_SWIFT_NAME(capture(message:scope:)); + +/** + * Captures a message event and sends it to Sentry. Maintains the global scope but mutates scope + * data for only this call. + * + * @param message The message to send to Sentry. + * @param block The block mutating the scope only for this call. + * + * @return The SentryId of the event or SentryId.empty if the event is not sent. + */ ++ (SentryId *)captureMessage:(NSString *)message + withScopeBlock:(void (^)(SentryScope *scope))block + NS_SWIFT_NAME(capture(message:block:)); + +/** + * Captures a manually created user feedback and sends it to Sentry. + * + * @param userFeedback The user feedback to send to Sentry. + */ ++ (void)captureUserFeedback:(SentryUserFeedback *)userFeedback + NS_SWIFT_NAME(capture(userFeedback:)); + +/** + * Adds a SentryBreadcrumb to the current Scope on the `currentHub`. + * If the total number of breadcrumbs exceeds the `max_breadcrumbs` setting, the + * oldest breadcrumb is removed. + */ ++ (void)addBreadcrumb:(SentryBreadcrumb *)crumb NS_SWIFT_NAME(addBreadcrumb(crumb:)); + +//- `configure_scope(callback)`: Calls a callback with a scope object that can +// be reconfigured. This is used to attach contextual data for future events in +// the same scope. ++ (void)configureScope:(void (^)(SentryScope *scope))callback; + +/** + * Set logLevel for the current client default kSentryLogLevelError + */ +@property (nonatomic, class) SentryLogLevel logLevel; + +/** + * Checks if the last program execution terminated with a crash. + */ +@property (nonatomic, class, readonly) BOOL crashedLastRun; + +/** + * Set global user -> thus will be sent with every event + */ ++ (void)setUser:(SentryUser *_Nullable)user; + +@end + +NS_ASSUME_NONNULL_END diff --git a/Pods/Sentry/Sources/Sentry/Public/SentryScope.h b/Pods/Sentry/Sources/Sentry/Public/SentryScope.h new file mode 100644 index 000000000..f69d94976 --- /dev/null +++ b/Pods/Sentry/Sources/Sentry/Public/SentryScope.h @@ -0,0 +1,121 @@ +#import "SentryDefines.h" +#import "SentrySerializable.h" + +@class SentryUser, SentrySession, SentryOptions, SentryBreadcrumb; + +NS_ASSUME_NONNULL_BEGIN + +NS_SWIFT_NAME(Scope) +@interface SentryScope : NSObject + +- (instancetype)initWithMaxBreadcrumbs:(NSInteger)maxBreadcrumbs NS_DESIGNATED_INITIALIZER; +- (instancetype)init; +- (instancetype)initWithScope:(SentryScope *)scope; + +/** + * Set global user -> thus will be sent with every event + */ +- (void)setUser:(SentryUser *_Nullable)user; + +/** + * Set a global tag. Tags are searchable key/value string pairs attached to + * every event. + */ +- (void)setTagValue:(NSString *)value forKey:(NSString *)key NS_SWIFT_NAME(setTag(value:key:)); + +/** + * Remove the tag for the specified key. + */ +- (void)removeTagForKey:(NSString *)key NS_SWIFT_NAME(removeTag(key:)); + +/** + * Set global tags. Tags are searchable key/value string pairs attached to every + * event. + */ +- (void)setTags:(NSDictionary *_Nullable)tags; + +/** + * Set global extra -> these will be sent with every event + */ +- (void)setExtras:(NSDictionary *_Nullable)extras; + +/** + * Set global extra -> these will be sent with every event + */ +- (void)setExtraValue:(id _Nullable)value + forKey:(NSString *)key NS_SWIFT_NAME(setExtra(value:key:)); + +/** + * Remove the extra for the specified key. + */ +- (void)removeExtraForKey:(NSString *)key NS_SWIFT_NAME(removeExtra(key:)); + +/** + * Set dist in the scope + */ +- (void)setDist:(NSString *_Nullable)dist; + +/** + * Set environment in the scope + */ +- (void)setEnvironment:(NSString *_Nullable)environment; + +/** + * Sets the fingerprint in the scope + */ +- (void)setFingerprint:(NSArray *_Nullable)fingerprint; + +/** + * Sets the level in the scope + */ +- (void)setLevel:(enum SentryLevel)level; + +/** + * Add a breadcrumb to the scope + */ +- (void)addBreadcrumb:(SentryBreadcrumb *)crumb; + +/** + * Clears all breadcrumbs in the scope + */ +- (void)clearBreadcrumbs; + +/** + * Serializes the Scope to JSON + */ +- (NSDictionary *)serialize; + +/** + * Adds the Scope to the event + */ +- (SentryEvent *__nullable)applyToEvent:(SentryEvent *)event + maxBreadcrumb:(NSUInteger)maxBreadcrumbs; + +- (void)applyToSession:(SentrySession *)session; + +/** + * Sets context values which will overwrite SentryEvent.context when event is + * "enrichted" with scope before sending event. + */ +- (void)setContextValue:(NSDictionary *)value + forKey:(NSString *)key NS_SWIFT_NAME(setContext(value:key:)); + +/** + * Remove the context for the specified key. + */ +- (void)removeContextForKey:(NSString *)key NS_SWIFT_NAME(removeContext(key:)); + +/** + * Clears the current Scope + */ +- (void)clear; + +- (BOOL)isEqual:(id _Nullable)other; + +- (BOOL)isEqualToScope:(SentryScope *)scope; + +- (NSUInteger)hash; + +@end + +NS_ASSUME_NONNULL_END diff --git a/Pods/Sentry/Sources/Sentry/Public/SentrySdkInfo.h b/Pods/Sentry/Sources/Sentry/Public/SentrySdkInfo.h new file mode 100644 index 000000000..3c8af3f2c --- /dev/null +++ b/Pods/Sentry/Sources/Sentry/Public/SentrySdkInfo.h @@ -0,0 +1,38 @@ +#import "SentrySerializable.h" +#import + +NS_ASSUME_NONNULL_BEGIN + +/** + * Describes the Sentry SDK and its configuration used to capture and transmit an event. + * + * Both name and version are required. + * + * For more info checkout: https://develop.sentry.dev/sdk/event-payloads/sdk/ + */ +@interface SentrySdkInfo : NSObject +SENTRY_NO_INIT + +/** + * The name of the SDK. + * + * Examples: sentry.cocoa, sentry.cocoa.vapor, ... + */ +@property (nonatomic, readonly, copy) NSString *name; + +/** + * The version of the SDK. It should have the Semantic Versioning format MAJOR.MINOR.PATCH, without + * any prefix (no v or anything else in front of the major version number). + * + * Examples: 0.1.0, 1.0.0, 2.0.0-beta0 + */ +@property (nonatomic, readonly, copy) NSString *version; + +- (instancetype)initWithName:(NSString *)name + andVersion:(NSString *)version NS_DESIGNATED_INITIALIZER; + +- (instancetype)initWithDict:(NSDictionary *)dict; + +@end + +NS_ASSUME_NONNULL_END diff --git a/Pods/Sentry/Sources/Sentry/Public/SentrySerializable.h b/Pods/Sentry/Sources/Sentry/Public/SentrySerializable.h new file mode 100644 index 000000000..d9dcadb4a --- /dev/null +++ b/Pods/Sentry/Sources/Sentry/Public/SentrySerializable.h @@ -0,0 +1,14 @@ +#import + +#import "SentryDefines.h" + +NS_ASSUME_NONNULL_BEGIN + +@protocol SentrySerializable +SENTRY_NO_INIT + +- (NSDictionary *)serialize; + +@end + +NS_ASSUME_NONNULL_END diff --git a/Pods/Sentry/Sources/Sentry/Public/SentrySession.h b/Pods/Sentry/Sources/Sentry/Public/SentrySession.h new file mode 100644 index 000000000..a52db0dc1 --- /dev/null +++ b/Pods/Sentry/Sources/Sentry/Public/SentrySession.h @@ -0,0 +1,47 @@ +#import "SentryDefines.h" + +@class SentryUser; + +NS_ASSUME_NONNULL_BEGIN + +typedef NS_ENUM(NSUInteger, SentrySessionStatus) { + kSentrySessionStatusOk = 0, + kSentrySessionStatusExited = 1, + kSentrySessionStatusCrashed = 2, + kSentrySessionStatusAbnormal = 3, +}; + +@interface SentrySession : NSObject +SENTRY_NO_INIT + +- (instancetype)initWithReleaseName:(NSString *)releaseName; +- (instancetype)initWithJSONObject:(NSDictionary *)jsonObject; + +- (void)endSessionExitedWithTimestamp:(NSDate *)timestamp; +- (void)endSessionCrashedWithTimestamp:(NSDate *)timestamp; +- (void)endSessionAbnormalWithTimestamp:(NSDate *)timestamp; + +- (void)incrementErrors; + +@property (nonatomic, readonly, strong) NSUUID *sessionId; +@property (nonatomic, readonly, strong) NSDate *started; +@property (nonatomic, readonly) enum SentrySessionStatus status; +@property (nonatomic, readonly) NSUInteger errors; +@property (nonatomic, readonly) NSUInteger sequence; +@property (nonatomic, readonly, strong) NSString *distinctId; +/** + We can't use init because it overlaps with NSObject.init + */ +@property (nonatomic, readonly, copy) NSNumber *_Nullable flagInit; +@property (nonatomic, readonly, strong) NSDate *_Nullable timestamp; +@property (nonatomic, readonly, strong) NSNumber *_Nullable duration; + +@property (nonatomic, readonly, copy) NSString *_Nullable releaseName; +@property (nonatomic, copy) NSString *_Nullable environment; +@property (nonatomic, copy) SentryUser *_Nullable user; + +- (NSDictionary *)serialize; + +@end + +NS_ASSUME_NONNULL_END diff --git a/Pods/Sentry/Sources/Sentry/Public/SentryStacktrace.h b/Pods/Sentry/Sources/Sentry/Public/SentryStacktrace.h new file mode 100644 index 000000000..e8c67d83f --- /dev/null +++ b/Pods/Sentry/Sources/Sentry/Public/SentryStacktrace.h @@ -0,0 +1,41 @@ +#import + +#import "SentryDefines.h" +#import "SentrySerializable.h" + +NS_ASSUME_NONNULL_BEGIN + +@class SentryFrame; + +NS_SWIFT_NAME(Stacktrace) +@interface SentryStacktrace : NSObject +SENTRY_NO_INIT + +/** + * Array of all SentryFrame in the stacktrace + */ +@property (nonatomic, strong) NSArray *frames; + +/** + * Registers of the thread for additional information used on the server + */ +@property (nonatomic, strong) NSDictionary *registers; + +/** + * Initialize a SentryStacktrace with frames and registers + * @param frames NSArray + * @param registers NSArray + * @return SentryStacktrace + */ +- (instancetype)initWithFrames:(NSArray *)frames + registers:(NSDictionary *)registers; + +/** + * This will be called internally, is used to remove duplicated frames for + * certain crashes. + */ +- (void)fixDuplicateFrames; + +@end + +NS_ASSUME_NONNULL_END diff --git a/Pods/Sentry/Sources/Sentry/Public/SentryThread.h b/Pods/Sentry/Sources/Sentry/Public/SentryThread.h new file mode 100644 index 000000000..7546e419e --- /dev/null +++ b/Pods/Sentry/Sources/Sentry/Public/SentryThread.h @@ -0,0 +1,46 @@ +#import "SentryDefines.h" +#import "SentrySerializable.h" + +NS_ASSUME_NONNULL_BEGIN + +@class SentryStacktrace; + +NS_SWIFT_NAME(Thread) +@interface SentryThread : NSObject +SENTRY_NO_INIT + +/** + * Number of the thread + */ +@property (nonatomic, copy) NSNumber *threadId; + +/** + * Name (if available) of the thread + */ +@property (nonatomic, copy) NSString *_Nullable name; + +/** + * SentryStacktrace of the SentryThread + */ +@property (nonatomic, strong) SentryStacktrace *_Nullable stacktrace; + +/** + * Did this thread crash? + */ +@property (nonatomic, copy) NSNumber *_Nullable crashed; + +/** + * Was it the current thread. + */ +@property (nonatomic, copy) NSNumber *_Nullable current; + +/** + * Initializes a SentryThread with its id + * @param threadId NSNumber + * @return SentryThread + */ +- (instancetype)initWithThreadId:(NSNumber *)threadId; + +@end + +NS_ASSUME_NONNULL_END diff --git a/Pods/Sentry/Sources/Sentry/Public/SentryUser.h b/Pods/Sentry/Sources/Sentry/Public/SentryUser.h new file mode 100644 index 000000000..15244e25a --- /dev/null +++ b/Pods/Sentry/Sources/Sentry/Public/SentryUser.h @@ -0,0 +1,52 @@ +#import "SentryDefines.h" +#import "SentrySerializable.h" + +NS_ASSUME_NONNULL_BEGIN + +NS_SWIFT_NAME(User) +@interface SentryUser : NSObject + +/** + * Optional: Id of the user + */ +@property (nonatomic, copy) NSString *userId; + +/** + * Optional: Email of the user + */ +@property (nonatomic, copy) NSString *_Nullable email; + +/** + * Optional: Username + */ +@property (nonatomic, copy) NSString *_Nullable username; + +/** + * Optional: IP Address + */ +@property (nonatomic, copy) NSString *_Nullable ipAddress; + +/** + * Optional: Additional data + */ +@property (nonatomic, strong) NSDictionary *_Nullable data; + +/** + * Initializes a SentryUser with the id + * @param userId NSString + * @return SentryUser + */ +- (instancetype)initWithUserId:(NSString *)userId; + +- (instancetype)init; ++ (instancetype)new NS_UNAVAILABLE; + +- (BOOL)isEqual:(id _Nullable)other; + +- (BOOL)isEqualToUser:(SentryUser *)user; + +- (NSUInteger)hash; + +@end + +NS_ASSUME_NONNULL_END diff --git a/Pods/Sentry/Sources/Sentry/Public/SentryUserFeedback.h b/Pods/Sentry/Sources/Sentry/Public/SentryUserFeedback.h new file mode 100644 index 000000000..1878c369e --- /dev/null +++ b/Pods/Sentry/Sources/Sentry/Public/SentryUserFeedback.h @@ -0,0 +1,44 @@ +#import "SentryDefines.h" +#import "SentrySerializable.h" + +NS_ASSUME_NONNULL_BEGIN + +@class SentryId; + +/** + * Adds additional information about what happened to an event. + */ +NS_SWIFT_NAME(UserFeedback) +@interface SentryUserFeedback : NSObject +SENTRY_NO_INIT + +/** + * Initializes SentryUserFeedback and sets the required eventId. + * + * @param eventId The eventId of the event to which the user feedback is associated. + */ +- (instancetype)initWithEventId:(SentryId *)eventId; + +/** + * The eventId of the event to which the user feedback is associated. + */ +@property (readonly, nonatomic, strong) SentryId *eventId; + +/** + * The name of the user. + */ +@property (nonatomic, copy) NSString *name; + +/** + * The email of the user. + */ +@property (nonatomic, copy) NSString *email; + +/** + * Comments of the user about what happened. + */ +@property (nonatomic, copy) NSString *comments; + +@end + +NS_ASSUME_NONNULL_END diff --git a/Pods/Sentry/Sources/Sentry/SentryDispatchQueueWrapper.m b/Pods/Sentry/Sources/Sentry/SentryDispatchQueueWrapper.m new file mode 100644 index 000000000..33b1ef8b4 --- /dev/null +++ b/Pods/Sentry/Sources/Sentry/SentryDispatchQueueWrapper.m @@ -0,0 +1,19 @@ +#import "SentryDispatchQueueWrapper.h" +#import + +NS_ASSUME_NONNULL_BEGIN + +@implementation SentryDispatchQueueWrapper + +- (void)dispatchAsyncWithBlock:(void (^)(void))block +{ + dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0ul), block); +} + +- (void)dispatchOnce:(dispatch_once_t *)predicate block:(void (^)(void))block +{ + dispatch_once(predicate, block); +} +@end + +NS_ASSUME_NONNULL_END diff --git a/Pods/Sentry/Sources/Sentry/SentryFrameRemover.m b/Pods/Sentry/Sources/Sentry/SentryFrameRemover.m new file mode 100644 index 000000000..0724384f7 --- /dev/null +++ b/Pods/Sentry/Sources/Sentry/SentryFrameRemover.m @@ -0,0 +1,27 @@ +#import "SentryFrameRemover.h" +#import "SentryFrame.h" +#import + +@implementation SentryFrameRemover + +- (NSArray *)removeNonSdkFrames:(NSArray *)frames +{ + // When including Sentry via the Swift Package Manager the package is the same as the + // application that includes Sentry. Therefore removing frames with a package containing + // "sentry" doesn't work. We could instead look into the function name, but then we risk + // removing functions that are not from this SDK and contain "sentry", which would lead to a + // loss of frames on the stacktrace. Therefore we don't remove any frames. + NSUInteger indexOfFirstNonSentryFrame = [frames indexOfObjectPassingTest:^BOOL( + SentryFrame *_Nonnull obj, NSUInteger idx, BOOL *_Nonnull stop) { + return ![[obj.package lowercaseString] containsString:@"sentry"]; + }]; + + if (indexOfFirstNonSentryFrame == NSNotFound) { + return frames; + } else { + return [frames subarrayWithRange:NSMakeRange(indexOfFirstNonSentryFrame, + frames.count - indexOfFirstNonSentryFrame)]; + } +} + +@end diff --git a/Pods/Sentry/Sources/Sentry/SentryId.m b/Pods/Sentry/Sources/Sentry/SentryId.m new file mode 100644 index 000000000..618054200 --- /dev/null +++ b/Pods/Sentry/Sources/Sentry/SentryId.m @@ -0,0 +1,95 @@ +#import "SentryId.h" +#import + +NS_ASSUME_NONNULL_BEGIN + +static NSString *const emptyUUIDString = @"00000000-0000-0000-0000-000000000000"; + +@interface +SentryId () + +@property (nonatomic, strong) NSUUID *uuid; + +@end + +@implementation SentryId + +static SentryId *_empty = nil; + +- (instancetype)init +{ + return [self initWithUUID:[NSUUID UUID]]; +} + +- (instancetype)initWithUUID:(NSUUID *)uuid +{ + if (self = [super init]) { + self.uuid = uuid; + } + return self; +} + +- (instancetype)initWithUUIDString:(NSString *)string +{ + NSUUID *uuid; + if (string.length == 36) { + uuid = [[NSUUID alloc] initWithUUIDString:string]; + } else if (string.length == 32) { + NSMutableString *mutableString = [[NSMutableString alloc] initWithString:string]; + [mutableString insertString:@"-" atIndex:8]; + [mutableString insertString:@"-" atIndex:13]; + [mutableString insertString:@"-" atIndex:18]; + [mutableString insertString:@"-" atIndex:23]; + + uuid = [[NSUUID alloc] initWithUUIDString:mutableString]; + } + + if (nil != uuid) { + return [self initWithUUID:uuid]; + } else { + return [self initWithUUIDString:emptyUUIDString]; + } +} + +- (NSString *)sentryIdString; +{ + NSString *sentryIdString = [self.uuid.UUIDString stringByReplacingOccurrencesOfString:@"-" + withString:@""]; + return [sentryIdString lowercaseString]; +} + +- (NSString *)description +{ + return [self sentryIdString]; +} + +- (BOOL)isEqual:(id _Nullable)object +{ + if (object == self) { + return YES; + } + if ([self class] != [object class]) { + return NO; + } + + SentryId *otherSentryID = (SentryId *)object; + + return [self.uuid isEqual:otherSentryID.uuid]; +} + +- (NSUInteger)hash +{ + return [self.uuid hash]; +} + ++ (SentryId *)empty +{ + if (nil == _empty) { + _empty = [[SentryId alloc] initWithUUIDString:emptyUUIDString]; + } + return _empty; +} + +@end + +NS_ASSUME_NONNULL_END diff --git a/Pods/Sentry/Sources/Sentry/SentryMessage.m b/Pods/Sentry/Sources/Sentry/SentryMessage.m new file mode 100644 index 000000000..c4aa518c1 --- /dev/null +++ b/Pods/Sentry/Sources/Sentry/SentryMessage.m @@ -0,0 +1,44 @@ +#import "SentryMessage.h" +#import + +NS_ASSUME_NONNULL_BEGIN + +const NSUInteger MAX_STRING_LENGTH = 8192; + +@implementation SentryMessage + +- (instancetype)initWithFormatted:(NSString *)formatted +{ + if (self = [super init]) { + if (nil != formatted && formatted.length > MAX_STRING_LENGTH) { + _formatted = [formatted substringToIndex:MAX_STRING_LENGTH]; + } else { + _formatted = formatted; + } + } + return self; +} + +- (void)setMessage:(NSString *_Nullable)message +{ + if (nil != message && message.length > MAX_STRING_LENGTH) { + _message = [message substringToIndex:MAX_STRING_LENGTH]; + } else { + _message = message; + } +} + +- (NSDictionary *)serialize +{ + NSMutableDictionary *serializedData = [[NSMutableDictionary alloc] init]; + + [serializedData setValue:self.formatted forKey:@"formatted"]; + [serializedData setValue:self.message forKey:@"message"]; + [serializedData setValue:self.params forKey:@"params"]; + + return serializedData; +} + +@end + +NS_ASSUME_NONNULL_END diff --git a/Pods/Sentry/Sources/Sentry/SentryMigrateSessionInit.m b/Pods/Sentry/Sources/Sentry/SentryMigrateSessionInit.m new file mode 100644 index 000000000..748fc6ea6 --- /dev/null +++ b/Pods/Sentry/Sources/Sentry/SentryMigrateSessionInit.m @@ -0,0 +1,130 @@ +#import + +#import "SentryEnvelope.h" +#import "SentryEnvelopeItemType.h" +#import "SentryLog.h" +#import "SentryMigrateSessionInit.h" +#import "SentrySerialization.h" +#import "SentrySession+Private.h" + +NS_ASSUME_NONNULL_BEGIN + +@implementation SentryMigrateSessionInit + ++ (void)migrateSessionInit:(NSString *)envelopeFilePath + envelopesDirPath:(NSString *)envelopesDirPath + envelopeFilePaths:(NSArray *)envelopeFilePaths; +{ + NSData *envelopeData = [[NSFileManager defaultManager] contentsAtPath:envelopeFilePath]; + SentryEnvelope *envelope = [SentrySerialization envelopeWithData:envelopeData]; + if (nil == envelope) { + return; + } + + for (SentryEnvelopeItem *item in envelope.items) { + if ([item.header.type isEqualToString:SentryEnvelopeItemTypeSession]) { + SentrySession *session = [SentrySerialization sessionWithData:item.data]; + if (nil != session && [session.flagInit boolValue]) { + [self setInitFlagOnNextEnvelopeWithSameSessionId:session + envelopesDirPath:envelopesDirPath + envelopeFilePaths:envelopeFilePaths]; + } + } + } +} + ++ (void)setInitFlagOnNextEnvelopeWithSameSessionId:(SentrySession *)session + envelopesDirPath:(NSString *)envelopesDirPath + envelopeFilePaths:(NSArray *)envelopeFilePaths +{ + NSFileManager *fileManager = [NSFileManager defaultManager]; + + for (NSString *envelopeFilePath in envelopeFilePaths) { + NSString *envelopePath = [envelopesDirPath stringByAppendingPathComponent:envelopeFilePath]; + NSData *envelopeData = [fileManager contentsAtPath:envelopePath]; + + // Some error occured while getting the envelopeData + if (nil == envelopeData) { + continue; + } + + SentryEnvelope *envelope = [SentrySerialization envelopeWithData:envelopeData]; + + if (nil != envelope) { + BOOL didSetInitFlag = [self setInitFlagIfContainsSameSessionId:session.sessionId + envelope:envelope + envelopeFilePath:envelopePath]; + + if (didSetInitFlag) { + break; + } + } + } +} + ++ (BOOL)setInitFlagIfContainsSameSessionId:(NSUUID *)sessionId + envelope:(SentryEnvelope *)envelope + envelopeFilePath:(NSString *)envelopeFilePath +{ + for (SentryEnvelopeItem *item in envelope.items) { + if ([item.header.type isEqualToString:SentryEnvelopeItemTypeSession]) { + SentrySession *localSession = [SentrySerialization sessionWithData:item.data]; + + if (nil != localSession && [localSession.sessionId isEqual:sessionId]) { + [localSession setFlagInit]; + + [self storeSessionInit:envelope session:localSession path:envelopeFilePath]; + return YES; + } + } + } + + return NO; +} + ++ (void)storeSessionInit:(SentryEnvelope *)originalEnvelope + session:(SentrySession *)session + path:(NSString *)envelopeFilePath +{ + NSArray *envelopeItemsWithUpdatedSession = + [self replaceSessionEnvelopeItem:session onEnvelope:originalEnvelope]; + SentryEnvelope *envelopeWithInitFlag = + [[SentryEnvelope alloc] initWithHeader:originalEnvelope.header + items:envelopeItemsWithUpdatedSession]; + + NSError *error; + NSData *envelopeWithInitFlagData = [SentrySerialization dataWithEnvelope:envelopeWithInitFlag + error:&error]; + [envelopeWithInitFlagData writeToFile:envelopeFilePath + options:NSDataWritingAtomic + error:&error]; + + if (nil != error) { + [SentryLog + logWithMessage:[NSString stringWithFormat:@"Could not migrate session init, because " + @"storing the updated envelope failed: %@", + error.description] + andLevel:kSentryLogLevelError]; + } +} + ++ (NSArray *)replaceSessionEnvelopeItem:(SentrySession *)session + onEnvelope:(SentryEnvelope *)envelope +{ + NSPredicate *noSessionEnvelopeItems = + [NSPredicate predicateWithBlock:^BOOL(id object, NSDictionary *bindings) { + SentryEnvelopeItem *item = object; + return ![item.header.type isEqualToString:SentryEnvelopeItemTypeSession]; + }]; + NSMutableArray *itemsWithoutSession + = (NSMutableArray *)[[envelope.items + filteredArrayUsingPredicate:noSessionEnvelopeItems] mutableCopy]; + + SentryEnvelopeItem *sessionEnvelopeItem = [[SentryEnvelopeItem alloc] initWithSession:session]; + [itemsWithoutSession addObject:sessionEnvelopeItem]; + return itemsWithoutSession; +} + +@end + +NS_ASSUME_NONNULL_END diff --git a/Pods/Sentry/Sources/Sentry/SentrySessionCrashedHandler.m b/Pods/Sentry/Sources/Sentry/SentrySessionCrashedHandler.m new file mode 100644 index 000000000..ad5ab2056 --- /dev/null +++ b/Pods/Sentry/Sources/Sentry/SentrySessionCrashedHandler.m @@ -0,0 +1,52 @@ +#import "SentrySessionCrashedHandler.h" +#import "SentryClient+Private.h" +#import "SentryClient.h" +#import "SentryCrashAdapter.h" +#import "SentryCurrentDate.h" +#import "SentryDispatchQueueWrapper.h" +#import "SentryFileManager.h" +#import "SentryHub.h" +#import "SentrySDK.h" +#import "SentrySession.h" + +@interface +SentrySessionCrashedHandler () + +@property (nonatomic, strong) SentryCrashAdapter *crashWrapper; + +@end + +@implementation SentrySessionCrashedHandler + +- (instancetype)initWithCrashWrapper:(SentryCrashAdapter *)crashWrapper +{ + self = [self init]; + self.crashWrapper = crashWrapper; + + return self; +} + +- (void)endCurrentSessionAsCrashedWhenCrashed +{ + if (self.crashWrapper.crashedLastLaunch) { + SentryFileManager *fileManager = [[[SentrySDK currentHub] getClient] fileManager]; + + if (nil == fileManager) { + return; + } + + SentrySession *session = [fileManager readCurrentSession]; + if (nil == session) { + return; + } + + NSDate *timeSinceLastCrash = [[SentryCurrentDate date] + dateByAddingTimeInterval:-self.crashWrapper.activeDurationSinceLastCrash]; + + [session endSessionCrashedWithTimestamp:timeSinceLastCrash]; + [fileManager storeCrashedSession:session]; + [fileManager deleteCurrentSession]; + } +} + +@end diff --git a/Pods/Sentry/Sources/Sentry/SentryUserFeedback.m b/Pods/Sentry/Sources/Sentry/SentryUserFeedback.m new file mode 100644 index 000000000..521adcaa7 --- /dev/null +++ b/Pods/Sentry/Sources/Sentry/SentryUserFeedback.m @@ -0,0 +1,27 @@ +#import "SentryUserFeedback.h" +#import "SentryId.h" +#import + +@implementation SentryUserFeedback + +- (instancetype)initWithEventId:(SentryId *)eventId +{ + if (self = [super init]) { + _eventId = eventId; + } + return self; +} + +- (NSDictionary *)serialize +{ + NSMutableDictionary *data = [[NSMutableDictionary alloc] init]; + + [data setValue:self.eventId.sentryIdString forKey:@"event_id"]; + [data setValue:self.email forKey:@"email"]; + [data setValue:self.name forKey:@"name"]; + [data setValue:self.comments forKey:@"comments"]; + + return data; +} + +@end diff --git a/Pods/Sentry/Sources/Sentry/include/NSArray+SentrySanitize.h b/Pods/Sentry/Sources/Sentry/include/NSArray+SentrySanitize.h new file mode 100644 index 000000000..517fd0fed --- /dev/null +++ b/Pods/Sentry/Sources/Sentry/include/NSArray+SentrySanitize.h @@ -0,0 +1,11 @@ +#import + +NS_ASSUME_NONNULL_BEGIN + +@interface NSArray (SentrySanitize) + +- (NSArray *)sentry_sanitize; + +@end + +NS_ASSUME_NONNULL_END diff --git a/Pods/Sentry/Sources/Sentry/include/SentryClient+Private.h b/Pods/Sentry/Sources/Sentry/include/SentryClient+Private.h new file mode 100644 index 000000000..a02b7729c --- /dev/null +++ b/Pods/Sentry/Sources/Sentry/include/SentryClient+Private.h @@ -0,0 +1,26 @@ +#import "SentryClient.h" +#import + +@class SentryId; + +NS_ASSUME_NONNULL_BEGIN + +@interface SentryClient (Private) + +- (SentryFileManager *)fileManager; + +- (SentryId *)captureError:(NSError *)error + withSession:(SentrySession *)session + withScope:(SentryScope *)scope; + +- (SentryId *)captureException:(NSException *)exception + withSession:(SentrySession *)session + withScope:(SentryScope *)scope; + +- (SentryId *)captureEvent:(SentryEvent *)event + withSession:(SentrySession *)session + withScope:(SentryScope *)scope; + +@end + +NS_ASSUME_NONNULL_END diff --git a/Pods/Sentry/Sources/Sentry/include/SentryDispatchQueueWrapper.h b/Pods/Sentry/Sources/Sentry/include/SentryDispatchQueueWrapper.h new file mode 100644 index 000000000..803e44b65 --- /dev/null +++ b/Pods/Sentry/Sources/Sentry/include/SentryDispatchQueueWrapper.h @@ -0,0 +1,16 @@ +#import + +NS_ASSUME_NONNULL_BEGIN + +/** + * A wrapper around DispatchQueue functions for testability. + */ +@interface SentryDispatchQueueWrapper : NSObject + +- (void)dispatchAsyncWithBlock:(void (^)(void))block; + +- (void)dispatchOnce:(dispatch_once_t *)predicate block:(void (^)(void))block; + +@end + +NS_ASSUME_NONNULL_END diff --git a/Pods/Sentry/Sources/Sentry/include/SentryFrameRemover.h b/Pods/Sentry/Sources/Sentry/include/SentryFrameRemover.h new file mode 100644 index 000000000..5302958d9 --- /dev/null +++ b/Pods/Sentry/Sources/Sentry/include/SentryFrameRemover.h @@ -0,0 +1,16 @@ +#import + +@class SentryFrame; + +NS_ASSUME_NONNULL_BEGIN + +@interface SentryFrameRemover : NSObject + +/** + * Removes Sentry SDK frames until a frame from a different package is found. + */ +- (NSArray *)removeNonSdkFrames:(NSArray *)frames; + +@end + +NS_ASSUME_NONNULL_END diff --git a/Pods/Sentry/Sources/Sentry/include/SentryHub+Private.h b/Pods/Sentry/Sources/Sentry/include/SentryHub+Private.h new file mode 100644 index 000000000..699c09115 --- /dev/null +++ b/Pods/Sentry/Sources/Sentry/include/SentryHub+Private.h @@ -0,0 +1,13 @@ +#import "SentryHub.h" + +@class SentryId, SentryScope; + +NS_ASSUME_NONNULL_BEGIN + +@interface SentryHub (Private) + +- (void)captureCrashEvent:(SentryEvent *)event; + +@end + +NS_ASSUME_NONNULL_END diff --git a/Pods/Sentry/Sources/Sentry/include/SentryMigrateSessionInit.h b/Pods/Sentry/Sources/Sentry/include/SentryMigrateSessionInit.h new file mode 100644 index 000000000..383218686 --- /dev/null +++ b/Pods/Sentry/Sources/Sentry/include/SentryMigrateSessionInit.h @@ -0,0 +1,35 @@ +#import + +@class SentryEnvelope; + +NS_ASSUME_NONNULL_BEGIN + +/** + * For proper statistics in release health, we need to make sure we don't send session updates + without sending a session init first. In other words, we can't drop a session init. The +  SentryFileManager deletes an envelope once the maximum amount of envelopes is stored. When this + happens and the envelope to delete contains a session init we look for the next envelope containing + a session update for the same session. If such a session envelope is found we migrate the init + flag. If none is found we delete the envelope. We don't migrate other envelope items as events. + */ +@interface SentryMigrateSessionInit : NSObject +SENTRY_NO_INIT + +/** + * Checks if the envelope of the passed file path contains an envelope item with a session init. If + * it does it iterates over all envelopes and looks for a session with the same session id. If such + * a session is found the init flag is set to YES, the envelope is updated with keeping other + * envelope items and headers, and the updated envelope is stored to the disk keeping its path. + * + * @param envelopeFilePath The path of the envelope that was deleted. + * @param envelopesDirPath The path of the directory where the envelopes are stored. + * @param envelopeFilePaths An array containing the file paths of envelopes to check if they contain + * a session init. + */ ++ (void)migrateSessionInit:(NSString *)envelopeFilePath + envelopesDirPath:(NSString *)envelopesDirPath + envelopeFilePaths:(NSArray *)envelopeFilePaths; + +@end + +NS_ASSUME_NONNULL_END diff --git a/Pods/Sentry/Sources/Sentry/include/SentrySDK+Private.h b/Pods/Sentry/Sources/Sentry/include/SentrySDK+Private.h new file mode 100644 index 000000000..fd5b6db00 --- /dev/null +++ b/Pods/Sentry/Sources/Sentry/include/SentrySDK+Private.h @@ -0,0 +1,13 @@ +#import "SentrySDK.h" + +@class SentryId; + +NS_ASSUME_NONNULL_BEGIN + +@interface SentrySDK (Private) + ++ (void)captureCrashEvent:(SentryEvent *)event; + +@end + +NS_ASSUME_NONNULL_END diff --git a/Pods/Sentry/Sources/Sentry/include/SentrySession+Private.h b/Pods/Sentry/Sources/Sentry/include/SentrySession+Private.h new file mode 100644 index 000000000..012d89065 --- /dev/null +++ b/Pods/Sentry/Sources/Sentry/include/SentrySession+Private.h @@ -0,0 +1,12 @@ +#import "SentrySession.h" +#import + +NS_ASSUME_NONNULL_BEGIN + +@interface SentrySession (Private) + +- (void)setFlagInit; + +@end + +NS_ASSUME_NONNULL_END diff --git a/Pods/Sentry/Sources/Sentry/include/SentrySessionCrashedHandler.h b/Pods/Sentry/Sources/Sentry/include/SentrySessionCrashedHandler.h new file mode 100644 index 000000000..cff0806a0 --- /dev/null +++ b/Pods/Sentry/Sources/Sentry/include/SentrySessionCrashedHandler.h @@ -0,0 +1,16 @@ +#import + +@class SentryCrashAdapter, SentryDispatchQueueWrapper; + +@interface SentrySessionCrashedHandler : NSObject + +- (instancetype)initWithCrashWrapper:(SentryCrashAdapter *)crashWrapper; + +/** + * When a crash happened the current session is ended as crashed, stored at a different + * location and the current session is deleted. Checkout SentryHub where most of the session logic + * is implemented for more details about sessions. + */ +- (void)endCurrentSessionAsCrashedWhenCrashed; + +@end diff --git a/Pods/Sentry/Sources/Sentry/include/SentryStacktraceBuilder.h b/Pods/Sentry/Sources/Sentry/include/SentryStacktraceBuilder.h new file mode 100644 index 000000000..ad3611702 --- /dev/null +++ b/Pods/Sentry/Sources/Sentry/include/SentryStacktraceBuilder.h @@ -0,0 +1,25 @@ +#import "SentryDefines.h" +#import + +@class SentryStacktrace, SentryFrameRemover; + +NS_ASSUME_NONNULL_BEGIN + +/** Uses SentryCrash internally to retrieve the stacktrace. + */ +@interface SentryStacktraceBuilder : NSObject +SENTRY_NO_INIT + +- (id)initWithSentryFrameRemover:(SentryFrameRemover *)frameRemover; + +/** + * Builds the stacktrace for the current thread removing frames from the SentrySDK until frames from + * a different package are found. When including Sentry via the Swift Package Manager the package is + * the same as the application that includes Sentry. In this case the full stacktrace is returned + * without skipping frames. + */ +- (SentryStacktrace *)buildStacktraceForCurrentThread; + +@end + +NS_ASSUME_NONNULL_END diff --git a/Pods/Sentry/Sources/Sentry/include/SentrySystemEventsBreadcrumbs.h b/Pods/Sentry/Sources/Sentry/include/SentrySystemEventsBreadcrumbs.h new file mode 100644 index 000000000..52c5ed511 --- /dev/null +++ b/Pods/Sentry/Sources/Sentry/include/SentrySystemEventsBreadcrumbs.h @@ -0,0 +1,15 @@ +#import + +#if TARGET_OS_IOS +# import +#endif + +@interface SentrySystemEventsBreadcrumbs : NSObject + +- (void)start; + +#if TARGET_OS_IOS +- (void)start:(UIDevice *)currentDevice; +#endif + +@end diff --git a/Pods/Sentry/Sources/SentryCrash/Recording/Tools/SentryCrashUUIDConversion.c b/Pods/Sentry/Sources/SentryCrash/Recording/Tools/SentryCrashUUIDConversion.c new file mode 100644 index 000000000..98018b645 --- /dev/null +++ b/Pods/Sentry/Sources/SentryCrash/Recording/Tools/SentryCrashUUIDConversion.c @@ -0,0 +1,34 @@ +#include "SentryCrashUUIDConversion.h" + +void +sentrycrashdl_convertBinaryImageUUID(const unsigned char *src, char *dst) +{ + const char g_hexNybbles[] + = { '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'A', 'B', 'C', 'D', 'E', 'F' }; + + for (int i = 0; i < 4; i++) { + *dst++ = g_hexNybbles[(*src >> 4) & 15]; + *dst++ = g_hexNybbles[(*src++) & 15]; + } + *dst++ = '-'; + for (int i = 0; i < 2; i++) { + *dst++ = g_hexNybbles[(*src >> 4) & 15]; + *dst++ = g_hexNybbles[(*src++) & 15]; + } + *dst++ = '-'; + for (int i = 0; i < 2; i++) { + *dst++ = g_hexNybbles[(*src >> 4) & 15]; + *dst++ = g_hexNybbles[(*src++) & 15]; + } + *dst++ = '-'; + for (int i = 0; i < 2; i++) { + *dst++ = g_hexNybbles[(*src >> 4) & 15]; + *dst++ = g_hexNybbles[(*src++) & 15]; + } + *dst++ = '-'; + for (int i = 0; i < 6; i++) { + *dst++ = g_hexNybbles[(*src >> 4) & 15]; + *dst++ = g_hexNybbles[(*src++) & 15]; + } + *dst++ = '\0'; +} diff --git a/Pods/Sparkle/Sparkle.framework/Versions/A/Headers/SUUpdaterDelegate.h b/Pods/Sparkle/Sparkle.framework/Versions/A/Headers/SUUpdaterDelegate.h index ea8197b52..ec844d046 100644 --- a/Pods/Sparkle/Sparkle.framework/Versions/A/Headers/SUUpdaterDelegate.h +++ b/Pods/Sparkle/Sparkle.framework/Versions/A/Headers/SUUpdaterDelegate.h @@ -36,7 +36,7 @@ SU_EXPORT extern NSString *const SUUpdaterAppcastItemNotificationKey; SU_EXPORT extern NSString *const SUUpdaterAppcastNotificationKey; // ----------------------------------------------------------------------------- -// SUUpdater Delegate: +// SUUpdater Delegate: // ----------------------------------------------------------------------------- /*! diff --git a/Pods/Sparkle/Sparkle.framework/Versions/A/Headers/Sparkle.h b/Pods/Sparkle/Sparkle.framework/Versions/A/Headers/Sparkle.h index 5ae2e6a6d..1085d419e 100644 --- a/Pods/Sparkle/Sparkle.framework/Versions/A/Headers/Sparkle.h +++ b/Pods/Sparkle/Sparkle.framework/Versions/A/Headers/Sparkle.h @@ -12,6 +12,10 @@ // This list should include the shared headers. It doesn't matter if some of them aren't shared (unless // there are name-space collisions) so we can list all of them to start with: +#pragma clang diagnostic push +// Do not use <> style includes since 2.x has two frameworks that need to work: Sparkle and SparkleCore +#pragma clang diagnostic ignored "-Wquoted-include-in-framework-header" + #import "SUAppcast.h" #import "SUAppcastItem.h" #import "SUStandardVersionComparator.h" @@ -30,4 +34,6 @@ #import "SPUURLRequest.h" #import "SUCodeSigningVerifier.h" +#pragma clang diagnostic pop + #endif diff --git a/Pods/Sparkle/Sparkle.framework/Versions/A/Resources/Autoupdate.app/Contents/Info.plist b/Pods/Sparkle/Sparkle.framework/Versions/A/Resources/Autoupdate.app/Contents/Info.plist index 86abd3b38..676181f9f 100644 --- a/Pods/Sparkle/Sparkle.framework/Versions/A/Resources/Autoupdate.app/Contents/Info.plist +++ b/Pods/Sparkle/Sparkle.framework/Versions/A/Resources/Autoupdate.app/Contents/Info.plist @@ -3,7 +3,7 @@ BuildMachineOSBuild - 19E224g + 20B28 CFBundleDevelopmentRegion English CFBundleExecutable @@ -17,7 +17,7 @@ CFBundlePackageType APPL CFBundleShortVersionString - 1.23.0 34-g962878b84 + 1.24.0 a-67-g0e162c98 CFBundleSignature ???? CFBundleSupportedPlatforms @@ -25,21 +25,23 @@ MacOSX CFBundleVersion - 1.23.0 + 1.24.0 DTCompiler com.apple.compilers.llvm.clang.1_0 DTPlatformBuild - 11B44 + 12C5020f + DTPlatformName + macosx DTPlatformVersion - GM + 11.1 DTSDKBuild - 19B68e + 20C5048g DTSDKName - macosx10.15 + macosx11.1 DTXcode - 1120 + 1230 DTXcodeBuild - 11B44 + 12C5020f LSBackgroundOnly 1 LSMinimumSystemVersion diff --git a/Pods/Sparkle/Sparkle.framework/Versions/A/Resources/Autoupdate.app/Contents/MacOS/Autoupdate b/Pods/Sparkle/Sparkle.framework/Versions/A/Resources/Autoupdate.app/Contents/MacOS/Autoupdate index 2394ea872..164511d4f 100755 Binary files a/Pods/Sparkle/Sparkle.framework/Versions/A/Resources/Autoupdate.app/Contents/MacOS/Autoupdate and b/Pods/Sparkle/Sparkle.framework/Versions/A/Resources/Autoupdate.app/Contents/MacOS/Autoupdate differ diff --git a/Pods/Sparkle/Sparkle.framework/Versions/A/Resources/Autoupdate.app/Contents/MacOS/fileop b/Pods/Sparkle/Sparkle.framework/Versions/A/Resources/Autoupdate.app/Contents/MacOS/fileop index e93ea8ffd..29dae8a10 100755 Binary files a/Pods/Sparkle/Sparkle.framework/Versions/A/Resources/Autoupdate.app/Contents/MacOS/fileop and b/Pods/Sparkle/Sparkle.framework/Versions/A/Resources/Autoupdate.app/Contents/MacOS/fileop differ diff --git a/Pods/Sparkle/Sparkle.framework/Versions/A/Resources/Autoupdate.app/Contents/Resources/SUStatus.nib b/Pods/Sparkle/Sparkle.framework/Versions/A/Resources/Autoupdate.app/Contents/Resources/SUStatus.nib index 0db550896..f9c39a032 100644 Binary files a/Pods/Sparkle/Sparkle.framework/Versions/A/Resources/Autoupdate.app/Contents/Resources/SUStatus.nib and b/Pods/Sparkle/Sparkle.framework/Versions/A/Resources/Autoupdate.app/Contents/Resources/SUStatus.nib differ diff --git a/Pods/Sparkle/Sparkle.framework/Versions/A/Resources/Autoupdate.app/Contents/Resources/cs.lproj/Sparkle.strings b/Pods/Sparkle/Sparkle.framework/Versions/A/Resources/Autoupdate.app/Contents/Resources/cs.lproj/Sparkle.strings index 1464f3493..02e077cf5 100644 Binary files a/Pods/Sparkle/Sparkle.framework/Versions/A/Resources/Autoupdate.app/Contents/Resources/cs.lproj/Sparkle.strings and b/Pods/Sparkle/Sparkle.framework/Versions/A/Resources/Autoupdate.app/Contents/Resources/cs.lproj/Sparkle.strings differ diff --git a/Pods/Sparkle/Sparkle.framework/Versions/A/Resources/Autoupdate.app/Contents/Resources/en.lproj/Sparkle.strings b/Pods/Sparkle/Sparkle.framework/Versions/A/Resources/Autoupdate.app/Contents/Resources/en.lproj/Sparkle.strings index 49ed0dfe2..1d70063c3 100644 Binary files a/Pods/Sparkle/Sparkle.framework/Versions/A/Resources/Autoupdate.app/Contents/Resources/en.lproj/Sparkle.strings and b/Pods/Sparkle/Sparkle.framework/Versions/A/Resources/Autoupdate.app/Contents/Resources/en.lproj/Sparkle.strings differ diff --git a/Pods/Sparkle/Sparkle.framework/Versions/A/Resources/Autoupdate.app/Contents/Resources/hr.lproj/Sparkle.strings b/Pods/Sparkle/Sparkle.framework/Versions/A/Resources/Autoupdate.app/Contents/Resources/hr.lproj/Sparkle.strings index fe6543556..ab8fe1a3e 100644 Binary files a/Pods/Sparkle/Sparkle.framework/Versions/A/Resources/Autoupdate.app/Contents/Resources/hr.lproj/Sparkle.strings and b/Pods/Sparkle/Sparkle.framework/Versions/A/Resources/Autoupdate.app/Contents/Resources/hr.lproj/Sparkle.strings differ diff --git a/Pods/Sparkle/Sparkle.framework/Versions/A/Resources/Autoupdate.app/Contents/Resources/zh_CN.lproj/Sparkle.strings b/Pods/Sparkle/Sparkle.framework/Versions/A/Resources/Autoupdate.app/Contents/Resources/zh_CN.lproj/Sparkle.strings index 7e808f8a8..71cf325f2 100644 Binary files a/Pods/Sparkle/Sparkle.framework/Versions/A/Resources/Autoupdate.app/Contents/Resources/zh_CN.lproj/Sparkle.strings and b/Pods/Sparkle/Sparkle.framework/Versions/A/Resources/Autoupdate.app/Contents/Resources/zh_CN.lproj/Sparkle.strings differ diff --git a/Pods/Sparkle/Sparkle.framework/Versions/A/Resources/Autoupdate.app/Contents/_CodeSignature/CodeResources b/Pods/Sparkle/Sparkle.framework/Versions/A/Resources/Autoupdate.app/Contents/_CodeSignature/CodeResources index f973ea763..bb4125f0f 100644 --- a/Pods/Sparkle/Sparkle.framework/Versions/A/Resources/Autoupdate.app/Contents/_CodeSignature/CodeResources +++ b/Pods/Sparkle/Sparkle.framework/Versions/A/Resources/Autoupdate.app/Contents/_CodeSignature/CodeResources @@ -10,7 +10,7 @@ Resources/SUStatus.nib - +3Tn7V2+cRw0Aw2VoWT1DNAPpkE= + ECVWRExfxyDt5uvKRD+70wc9J6s= Resources/ar.lproj/Sparkle.strings @@ -34,7 +34,7 @@ hash - OjCfTDR+NbVLvirUPiJKJF6UiS0= + bY3rkqi/NJtXtjpK3FbV2o0gxbQ= optional @@ -70,7 +70,7 @@ hash - i3TNbMzmKR52wTyfnD/bkZ12elE= + cHZov5FaqzfNhnBo0XdRuTMT4SY= optional @@ -115,7 +115,7 @@ hash - vyI2nHyZlhhSXXrQGoflg8oB9Ig= + 7LLOVs76ioMwEDV8Gah+6sV/5No= optional @@ -286,7 +286,7 @@ hash - 0vdFowZuJ1qLE3rDgG3BZ9SlNRw= + OnR96Z9tB0noODRSYssSs63+zGA= optional @@ -307,10 +307,10 @@ cdhash - l83be2L4QWdF+9aGGionW8fJ3mI= + JwkAFJqL9xY1mTI+1Kki3oSFsik= requirement - cdhash H"76e6c5ec7f970ac4171b4da783e82f1a66e9008d" or cdhash H"97cddb7b62f8416745fbd6861a2a275bc7c9de62" + cdhash H"d5bc45cc18a448c02d5c4dd6859a64524a5b8a85" or cdhash H"270900149a8bf7163599323ed4a922de8485b229" or cdhash H"1b27242b81a5a51561703e2bb8a5e01acac436e9" or cdhash H"ead0c4c63eafc5d32327f0dbf958b7bd0993ec75" Resources/AppIcon.icns @@ -327,11 +327,11 @@ hash - +3Tn7V2+cRw0Aw2VoWT1DNAPpkE= + ECVWRExfxyDt5uvKRD+70wc9J6s= hash2 - 5qy5Hmt7D8O4gK4CkA7/lWikR3cX9ZSe6yTyluAeOh8= + AtY9YmPv7cUlbFWP2vCyVdi3/M+XQn98wOlrIES2Dgk= Resources/ar.lproj/Sparkle.strings @@ -364,11 +364,11 @@ hash - OjCfTDR+NbVLvirUPiJKJF6UiS0= + bY3rkqi/NJtXtjpK3FbV2o0gxbQ= hash2 - 06z1nY8VfM4M1SdHCc1jqewmP5Ue0g3mPDcNbeDVNIM= + RfJgT2b3STcLu71+1iU9ZcSXbfwMWG1EE1C7Wrf3xBk= optional @@ -416,11 +416,11 @@ hash - i3TNbMzmKR52wTyfnD/bkZ12elE= + cHZov5FaqzfNhnBo0XdRuTMT4SY= hash2 - Xl/5yA/K9T7cscvPi/4/lWUtjJlIvO+esCF4SRaguz4= + 39CdfZZ1CQQz1Gd1+Ukxo2JHl0XESoc/cqWKF091WUk= optional @@ -481,11 +481,11 @@ hash - vyI2nHyZlhhSXXrQGoflg8oB9Ig= + 7LLOVs76ioMwEDV8Gah+6sV/5No= hash2 - I1njQLVyH2bFsJecQOLDAB9N8q8niH7u+hqzxRqqerA= + TwklhrooHTXgV6Q9fbvvAB3mPIh7qDbEsNtUzo2fQuU= optional @@ -728,11 +728,11 @@ hash - 0vdFowZuJ1qLE3rDgG3BZ9SlNRw= + OnR96Z9tB0noODRSYssSs63+zGA= hash2 - ecJXF6vvj1f80iCr+Gk52cTyumQrea6H0NpOjwbbLiE= + zvMbFdgVGI0ls9vIRT+sie7dj2g1UjQu7iS+pOgyBo4= optional diff --git a/Pods/Sparkle/Sparkle.framework/Versions/A/Resources/Info.plist b/Pods/Sparkle/Sparkle.framework/Versions/A/Resources/Info.plist index 0336a8301..8786d4875 100644 --- a/Pods/Sparkle/Sparkle.framework/Versions/A/Resources/Info.plist +++ b/Pods/Sparkle/Sparkle.framework/Versions/A/Resources/Info.plist @@ -3,7 +3,7 @@ BuildMachineOSBuild - 19E224g + 20B28 CFBundleDevelopmentRegion en CFBundleExecutable @@ -17,7 +17,7 @@ CFBundlePackageType FMWK CFBundleShortVersionString - 1.23.0 34-g962878b84 + 1.24.0 a-67-g0e162c98 CFBundleSignature ???? CFBundleSupportedPlatforms @@ -25,21 +25,23 @@ MacOSX CFBundleVersion - 1.23.0 + 1.24.0 DTCompiler com.apple.compilers.llvm.clang.1_0 DTPlatformBuild - 11B44 + 12C5020f + DTPlatformName + macosx DTPlatformVersion - GM + 11.1 DTSDKBuild - 19B68e + 20C5048g DTSDKName - macosx10.15 + macosx11.1 DTXcode - 1120 + 1230 DTXcodeBuild - 11B44 + 12C5020f LSMinimumSystemVersion 10.7 diff --git a/Pods/Sparkle/Sparkle.framework/Versions/A/Resources/SUStatus.nib b/Pods/Sparkle/Sparkle.framework/Versions/A/Resources/SUStatus.nib index 0db550896..f9c39a032 100644 Binary files a/Pods/Sparkle/Sparkle.framework/Versions/A/Resources/SUStatus.nib and b/Pods/Sparkle/Sparkle.framework/Versions/A/Resources/SUStatus.nib differ diff --git a/Pods/Sparkle/Sparkle.framework/Versions/A/Resources/ar.lproj/SUAutomaticUpdateAlert.nib b/Pods/Sparkle/Sparkle.framework/Versions/A/Resources/ar.lproj/SUAutomaticUpdateAlert.nib index 37662d76a..65f118ac4 100644 Binary files a/Pods/Sparkle/Sparkle.framework/Versions/A/Resources/ar.lproj/SUAutomaticUpdateAlert.nib and b/Pods/Sparkle/Sparkle.framework/Versions/A/Resources/ar.lproj/SUAutomaticUpdateAlert.nib differ diff --git a/Pods/Sparkle/Sparkle.framework/Versions/A/Resources/ar.lproj/SUUpdateAlert.nib b/Pods/Sparkle/Sparkle.framework/Versions/A/Resources/ar.lproj/SUUpdateAlert.nib index 5b92ee10e..44b6741d1 100644 Binary files a/Pods/Sparkle/Sparkle.framework/Versions/A/Resources/ar.lproj/SUUpdateAlert.nib and b/Pods/Sparkle/Sparkle.framework/Versions/A/Resources/ar.lproj/SUUpdateAlert.nib differ diff --git a/Pods/Sparkle/Sparkle.framework/Versions/A/Resources/ar.lproj/SUUpdatePermissionPrompt.nib b/Pods/Sparkle/Sparkle.framework/Versions/A/Resources/ar.lproj/SUUpdatePermissionPrompt.nib index a328d26a8..4f215f099 100644 Binary files a/Pods/Sparkle/Sparkle.framework/Versions/A/Resources/ar.lproj/SUUpdatePermissionPrompt.nib and b/Pods/Sparkle/Sparkle.framework/Versions/A/Resources/ar.lproj/SUUpdatePermissionPrompt.nib differ diff --git a/Pods/Sparkle/Sparkle.framework/Versions/A/Resources/cs.lproj/SUAutomaticUpdateAlert.nib b/Pods/Sparkle/Sparkle.framework/Versions/A/Resources/cs.lproj/SUAutomaticUpdateAlert.nib index 8d76772d2..103886fe7 100644 Binary files a/Pods/Sparkle/Sparkle.framework/Versions/A/Resources/cs.lproj/SUAutomaticUpdateAlert.nib and b/Pods/Sparkle/Sparkle.framework/Versions/A/Resources/cs.lproj/SUAutomaticUpdateAlert.nib differ diff --git a/Pods/Sparkle/Sparkle.framework/Versions/A/Resources/cs.lproj/SUUpdateAlert.nib b/Pods/Sparkle/Sparkle.framework/Versions/A/Resources/cs.lproj/SUUpdateAlert.nib index 6d50f65ab..68e44511d 100644 Binary files a/Pods/Sparkle/Sparkle.framework/Versions/A/Resources/cs.lproj/SUUpdateAlert.nib and b/Pods/Sparkle/Sparkle.framework/Versions/A/Resources/cs.lproj/SUUpdateAlert.nib differ diff --git a/Pods/Sparkle/Sparkle.framework/Versions/A/Resources/cs.lproj/SUUpdatePermissionPrompt.nib b/Pods/Sparkle/Sparkle.framework/Versions/A/Resources/cs.lproj/SUUpdatePermissionPrompt.nib index fd17b58c5..465e87dda 100644 Binary files a/Pods/Sparkle/Sparkle.framework/Versions/A/Resources/cs.lproj/SUUpdatePermissionPrompt.nib and b/Pods/Sparkle/Sparkle.framework/Versions/A/Resources/cs.lproj/SUUpdatePermissionPrompt.nib differ diff --git a/Pods/Sparkle/Sparkle.framework/Versions/A/Resources/cs.lproj/Sparkle.strings b/Pods/Sparkle/Sparkle.framework/Versions/A/Resources/cs.lproj/Sparkle.strings index 1464f3493..02e077cf5 100644 Binary files a/Pods/Sparkle/Sparkle.framework/Versions/A/Resources/cs.lproj/Sparkle.strings and b/Pods/Sparkle/Sparkle.framework/Versions/A/Resources/cs.lproj/Sparkle.strings differ diff --git a/Pods/Sparkle/Sparkle.framework/Versions/A/Resources/da.lproj/SUAutomaticUpdateAlert.nib b/Pods/Sparkle/Sparkle.framework/Versions/A/Resources/da.lproj/SUAutomaticUpdateAlert.nib index 8a7558750..d22bba56d 100644 Binary files a/Pods/Sparkle/Sparkle.framework/Versions/A/Resources/da.lproj/SUAutomaticUpdateAlert.nib and b/Pods/Sparkle/Sparkle.framework/Versions/A/Resources/da.lproj/SUAutomaticUpdateAlert.nib differ diff --git a/Pods/Sparkle/Sparkle.framework/Versions/A/Resources/da.lproj/SUUpdateAlert.nib b/Pods/Sparkle/Sparkle.framework/Versions/A/Resources/da.lproj/SUUpdateAlert.nib index 6e0336e1f..dc1aa3fa1 100644 Binary files a/Pods/Sparkle/Sparkle.framework/Versions/A/Resources/da.lproj/SUUpdateAlert.nib and b/Pods/Sparkle/Sparkle.framework/Versions/A/Resources/da.lproj/SUUpdateAlert.nib differ diff --git a/Pods/Sparkle/Sparkle.framework/Versions/A/Resources/da.lproj/SUUpdatePermissionPrompt.nib b/Pods/Sparkle/Sparkle.framework/Versions/A/Resources/da.lproj/SUUpdatePermissionPrompt.nib index 1e5dd16a0..3515d02ce 100644 Binary files a/Pods/Sparkle/Sparkle.framework/Versions/A/Resources/da.lproj/SUUpdatePermissionPrompt.nib and b/Pods/Sparkle/Sparkle.framework/Versions/A/Resources/da.lproj/SUUpdatePermissionPrompt.nib differ diff --git a/Pods/Sparkle/Sparkle.framework/Versions/A/Resources/de.lproj/SUAutomaticUpdateAlert.nib b/Pods/Sparkle/Sparkle.framework/Versions/A/Resources/de.lproj/SUAutomaticUpdateAlert.nib index 7d3186df5..cf6264295 100644 Binary files a/Pods/Sparkle/Sparkle.framework/Versions/A/Resources/de.lproj/SUAutomaticUpdateAlert.nib and b/Pods/Sparkle/Sparkle.framework/Versions/A/Resources/de.lproj/SUAutomaticUpdateAlert.nib differ diff --git a/Pods/Sparkle/Sparkle.framework/Versions/A/Resources/de.lproj/SUUpdateAlert.nib b/Pods/Sparkle/Sparkle.framework/Versions/A/Resources/de.lproj/SUUpdateAlert.nib index 993a696ab..258734439 100644 Binary files a/Pods/Sparkle/Sparkle.framework/Versions/A/Resources/de.lproj/SUUpdateAlert.nib and b/Pods/Sparkle/Sparkle.framework/Versions/A/Resources/de.lproj/SUUpdateAlert.nib differ diff --git a/Pods/Sparkle/Sparkle.framework/Versions/A/Resources/de.lproj/SUUpdatePermissionPrompt.nib b/Pods/Sparkle/Sparkle.framework/Versions/A/Resources/de.lproj/SUUpdatePermissionPrompt.nib index a28251c79..37c880524 100644 Binary files a/Pods/Sparkle/Sparkle.framework/Versions/A/Resources/de.lproj/SUUpdatePermissionPrompt.nib and b/Pods/Sparkle/Sparkle.framework/Versions/A/Resources/de.lproj/SUUpdatePermissionPrompt.nib differ diff --git a/Pods/Sparkle/Sparkle.framework/Versions/A/Resources/el.lproj/SUAutomaticUpdateAlert.nib b/Pods/Sparkle/Sparkle.framework/Versions/A/Resources/el.lproj/SUAutomaticUpdateAlert.nib index a5f23c8ca..ddcb7b3ae 100644 Binary files a/Pods/Sparkle/Sparkle.framework/Versions/A/Resources/el.lproj/SUAutomaticUpdateAlert.nib and b/Pods/Sparkle/Sparkle.framework/Versions/A/Resources/el.lproj/SUAutomaticUpdateAlert.nib differ diff --git a/Pods/Sparkle/Sparkle.framework/Versions/A/Resources/el.lproj/SUUpdateAlert.nib b/Pods/Sparkle/Sparkle.framework/Versions/A/Resources/el.lproj/SUUpdateAlert.nib index 5c0cacac4..0085ef14f 100644 Binary files a/Pods/Sparkle/Sparkle.framework/Versions/A/Resources/el.lproj/SUUpdateAlert.nib and b/Pods/Sparkle/Sparkle.framework/Versions/A/Resources/el.lproj/SUUpdateAlert.nib differ diff --git a/Pods/Sparkle/Sparkle.framework/Versions/A/Resources/el.lproj/SUUpdatePermissionPrompt.nib b/Pods/Sparkle/Sparkle.framework/Versions/A/Resources/el.lproj/SUUpdatePermissionPrompt.nib index b4b0879da..8668aa87f 100644 Binary files a/Pods/Sparkle/Sparkle.framework/Versions/A/Resources/el.lproj/SUUpdatePermissionPrompt.nib and b/Pods/Sparkle/Sparkle.framework/Versions/A/Resources/el.lproj/SUUpdatePermissionPrompt.nib differ diff --git a/Pods/Sparkle/Sparkle.framework/Versions/A/Resources/en.lproj/SUAutomaticUpdateAlert.nib b/Pods/Sparkle/Sparkle.framework/Versions/A/Resources/en.lproj/SUAutomaticUpdateAlert.nib index 643cfbfae..c5732e8fe 100644 Binary files a/Pods/Sparkle/Sparkle.framework/Versions/A/Resources/en.lproj/SUAutomaticUpdateAlert.nib and b/Pods/Sparkle/Sparkle.framework/Versions/A/Resources/en.lproj/SUAutomaticUpdateAlert.nib differ diff --git a/Pods/Sparkle/Sparkle.framework/Versions/A/Resources/en.lproj/SUUpdateAlert.nib b/Pods/Sparkle/Sparkle.framework/Versions/A/Resources/en.lproj/SUUpdateAlert.nib index 89f7db4e7..352a9a84e 100644 Binary files a/Pods/Sparkle/Sparkle.framework/Versions/A/Resources/en.lproj/SUUpdateAlert.nib and b/Pods/Sparkle/Sparkle.framework/Versions/A/Resources/en.lproj/SUUpdateAlert.nib differ diff --git a/Pods/Sparkle/Sparkle.framework/Versions/A/Resources/en.lproj/SUUpdatePermissionPrompt.nib b/Pods/Sparkle/Sparkle.framework/Versions/A/Resources/en.lproj/SUUpdatePermissionPrompt.nib index 85a98b851..8ef47f956 100644 Binary files a/Pods/Sparkle/Sparkle.framework/Versions/A/Resources/en.lproj/SUUpdatePermissionPrompt.nib and b/Pods/Sparkle/Sparkle.framework/Versions/A/Resources/en.lproj/SUUpdatePermissionPrompt.nib differ diff --git a/Pods/Sparkle/Sparkle.framework/Versions/A/Resources/en.lproj/Sparkle.strings b/Pods/Sparkle/Sparkle.framework/Versions/A/Resources/en.lproj/Sparkle.strings index 49ed0dfe2..1d70063c3 100644 Binary files a/Pods/Sparkle/Sparkle.framework/Versions/A/Resources/en.lproj/Sparkle.strings and b/Pods/Sparkle/Sparkle.framework/Versions/A/Resources/en.lproj/Sparkle.strings differ diff --git a/Pods/Sparkle/Sparkle.framework/Versions/A/Resources/es.lproj/SUAutomaticUpdateAlert.nib b/Pods/Sparkle/Sparkle.framework/Versions/A/Resources/es.lproj/SUAutomaticUpdateAlert.nib index 250bf1b6d..01694b254 100644 Binary files a/Pods/Sparkle/Sparkle.framework/Versions/A/Resources/es.lproj/SUAutomaticUpdateAlert.nib and b/Pods/Sparkle/Sparkle.framework/Versions/A/Resources/es.lproj/SUAutomaticUpdateAlert.nib differ diff --git a/Pods/Sparkle/Sparkle.framework/Versions/A/Resources/es.lproj/SUUpdateAlert.nib b/Pods/Sparkle/Sparkle.framework/Versions/A/Resources/es.lproj/SUUpdateAlert.nib index 9e3ad130f..9216cb743 100644 Binary files a/Pods/Sparkle/Sparkle.framework/Versions/A/Resources/es.lproj/SUUpdateAlert.nib and b/Pods/Sparkle/Sparkle.framework/Versions/A/Resources/es.lproj/SUUpdateAlert.nib differ diff --git a/Pods/Sparkle/Sparkle.framework/Versions/A/Resources/es.lproj/SUUpdatePermissionPrompt.nib b/Pods/Sparkle/Sparkle.framework/Versions/A/Resources/es.lproj/SUUpdatePermissionPrompt.nib index 01a7fe611..49fce2082 100644 Binary files a/Pods/Sparkle/Sparkle.framework/Versions/A/Resources/es.lproj/SUUpdatePermissionPrompt.nib and b/Pods/Sparkle/Sparkle.framework/Versions/A/Resources/es.lproj/SUUpdatePermissionPrompt.nib differ diff --git a/Pods/Sparkle/Sparkle.framework/Versions/A/Resources/fi.lproj/SUAutomaticUpdateAlert.nib b/Pods/Sparkle/Sparkle.framework/Versions/A/Resources/fi.lproj/SUAutomaticUpdateAlert.nib index 29475743f..86011659a 100644 Binary files a/Pods/Sparkle/Sparkle.framework/Versions/A/Resources/fi.lproj/SUAutomaticUpdateAlert.nib and b/Pods/Sparkle/Sparkle.framework/Versions/A/Resources/fi.lproj/SUAutomaticUpdateAlert.nib differ diff --git a/Pods/Sparkle/Sparkle.framework/Versions/A/Resources/fi.lproj/SUUpdateAlert.nib b/Pods/Sparkle/Sparkle.framework/Versions/A/Resources/fi.lproj/SUUpdateAlert.nib index 0eb20b901..795d05d36 100644 Binary files a/Pods/Sparkle/Sparkle.framework/Versions/A/Resources/fi.lproj/SUUpdateAlert.nib and b/Pods/Sparkle/Sparkle.framework/Versions/A/Resources/fi.lproj/SUUpdateAlert.nib differ diff --git a/Pods/Sparkle/Sparkle.framework/Versions/A/Resources/fi.lproj/SUUpdatePermissionPrompt.nib b/Pods/Sparkle/Sparkle.framework/Versions/A/Resources/fi.lproj/SUUpdatePermissionPrompt.nib index af32dda28..5cb6f89c5 100644 Binary files a/Pods/Sparkle/Sparkle.framework/Versions/A/Resources/fi.lproj/SUUpdatePermissionPrompt.nib and b/Pods/Sparkle/Sparkle.framework/Versions/A/Resources/fi.lproj/SUUpdatePermissionPrompt.nib differ diff --git a/Pods/Sparkle/Sparkle.framework/Versions/A/Resources/fr.lproj/SUAutomaticUpdateAlert.nib b/Pods/Sparkle/Sparkle.framework/Versions/A/Resources/fr.lproj/SUAutomaticUpdateAlert.nib index 6da162892..74c1e5a33 100644 Binary files a/Pods/Sparkle/Sparkle.framework/Versions/A/Resources/fr.lproj/SUAutomaticUpdateAlert.nib and b/Pods/Sparkle/Sparkle.framework/Versions/A/Resources/fr.lproj/SUAutomaticUpdateAlert.nib differ diff --git a/Pods/Sparkle/Sparkle.framework/Versions/A/Resources/fr.lproj/SUUpdateAlert.nib b/Pods/Sparkle/Sparkle.framework/Versions/A/Resources/fr.lproj/SUUpdateAlert.nib index 80a7ea9fe..dea32c6da 100644 Binary files a/Pods/Sparkle/Sparkle.framework/Versions/A/Resources/fr.lproj/SUUpdateAlert.nib and b/Pods/Sparkle/Sparkle.framework/Versions/A/Resources/fr.lproj/SUUpdateAlert.nib differ diff --git a/Pods/Sparkle/Sparkle.framework/Versions/A/Resources/fr.lproj/SUUpdatePermissionPrompt.nib b/Pods/Sparkle/Sparkle.framework/Versions/A/Resources/fr.lproj/SUUpdatePermissionPrompt.nib index b34645762..06a9205bc 100644 Binary files a/Pods/Sparkle/Sparkle.framework/Versions/A/Resources/fr.lproj/SUUpdatePermissionPrompt.nib and b/Pods/Sparkle/Sparkle.framework/Versions/A/Resources/fr.lproj/SUUpdatePermissionPrompt.nib differ diff --git a/Pods/Sparkle/Sparkle.framework/Versions/A/Resources/hr.lproj/SUAutomaticUpdateAlert.nib b/Pods/Sparkle/Sparkle.framework/Versions/A/Resources/hr.lproj/SUAutomaticUpdateAlert.nib index 30c68d7d7..12476cc00 100644 Binary files a/Pods/Sparkle/Sparkle.framework/Versions/A/Resources/hr.lproj/SUAutomaticUpdateAlert.nib and b/Pods/Sparkle/Sparkle.framework/Versions/A/Resources/hr.lproj/SUAutomaticUpdateAlert.nib differ diff --git a/Pods/Sparkle/Sparkle.framework/Versions/A/Resources/hr.lproj/SUUpdateAlert.nib b/Pods/Sparkle/Sparkle.framework/Versions/A/Resources/hr.lproj/SUUpdateAlert.nib index 8693cbc3a..60659fe7c 100644 Binary files a/Pods/Sparkle/Sparkle.framework/Versions/A/Resources/hr.lproj/SUUpdateAlert.nib and b/Pods/Sparkle/Sparkle.framework/Versions/A/Resources/hr.lproj/SUUpdateAlert.nib differ diff --git a/Pods/Sparkle/Sparkle.framework/Versions/A/Resources/hr.lproj/SUUpdatePermissionPrompt.nib b/Pods/Sparkle/Sparkle.framework/Versions/A/Resources/hr.lproj/SUUpdatePermissionPrompt.nib index 43c993948..3837f8afb 100644 Binary files a/Pods/Sparkle/Sparkle.framework/Versions/A/Resources/hr.lproj/SUUpdatePermissionPrompt.nib and b/Pods/Sparkle/Sparkle.framework/Versions/A/Resources/hr.lproj/SUUpdatePermissionPrompt.nib differ diff --git a/Pods/Sparkle/Sparkle.framework/Versions/A/Resources/hr.lproj/Sparkle.strings b/Pods/Sparkle/Sparkle.framework/Versions/A/Resources/hr.lproj/Sparkle.strings index fe6543556..ab8fe1a3e 100644 Binary files a/Pods/Sparkle/Sparkle.framework/Versions/A/Resources/hr.lproj/Sparkle.strings and b/Pods/Sparkle/Sparkle.framework/Versions/A/Resources/hr.lproj/Sparkle.strings differ diff --git a/Pods/Sparkle/Sparkle.framework/Versions/A/Resources/hu.lproj/SUAutomaticUpdateAlert.nib b/Pods/Sparkle/Sparkle.framework/Versions/A/Resources/hu.lproj/SUAutomaticUpdateAlert.nib index 9ac3a7296..dd46e650d 100644 Binary files a/Pods/Sparkle/Sparkle.framework/Versions/A/Resources/hu.lproj/SUAutomaticUpdateAlert.nib and b/Pods/Sparkle/Sparkle.framework/Versions/A/Resources/hu.lproj/SUAutomaticUpdateAlert.nib differ diff --git a/Pods/Sparkle/Sparkle.framework/Versions/A/Resources/hu.lproj/SUUpdateAlert.nib b/Pods/Sparkle/Sparkle.framework/Versions/A/Resources/hu.lproj/SUUpdateAlert.nib index fa26f7071..b2400c732 100644 Binary files a/Pods/Sparkle/Sparkle.framework/Versions/A/Resources/hu.lproj/SUUpdateAlert.nib and b/Pods/Sparkle/Sparkle.framework/Versions/A/Resources/hu.lproj/SUUpdateAlert.nib differ diff --git a/Pods/Sparkle/Sparkle.framework/Versions/A/Resources/hu.lproj/SUUpdatePermissionPrompt.nib b/Pods/Sparkle/Sparkle.framework/Versions/A/Resources/hu.lproj/SUUpdatePermissionPrompt.nib index 5366d6cc7..a4791c6b8 100644 Binary files a/Pods/Sparkle/Sparkle.framework/Versions/A/Resources/hu.lproj/SUUpdatePermissionPrompt.nib and b/Pods/Sparkle/Sparkle.framework/Versions/A/Resources/hu.lproj/SUUpdatePermissionPrompt.nib differ diff --git a/Pods/Sparkle/Sparkle.framework/Versions/A/Resources/is.lproj/SUAutomaticUpdateAlert.nib b/Pods/Sparkle/Sparkle.framework/Versions/A/Resources/is.lproj/SUAutomaticUpdateAlert.nib index 768beb950..2e2c6025b 100644 Binary files a/Pods/Sparkle/Sparkle.framework/Versions/A/Resources/is.lproj/SUAutomaticUpdateAlert.nib and b/Pods/Sparkle/Sparkle.framework/Versions/A/Resources/is.lproj/SUAutomaticUpdateAlert.nib differ diff --git a/Pods/Sparkle/Sparkle.framework/Versions/A/Resources/is.lproj/SUUpdateAlert.nib b/Pods/Sparkle/Sparkle.framework/Versions/A/Resources/is.lproj/SUUpdateAlert.nib index 2c5015432..43990e174 100644 Binary files a/Pods/Sparkle/Sparkle.framework/Versions/A/Resources/is.lproj/SUUpdateAlert.nib and b/Pods/Sparkle/Sparkle.framework/Versions/A/Resources/is.lproj/SUUpdateAlert.nib differ diff --git a/Pods/Sparkle/Sparkle.framework/Versions/A/Resources/is.lproj/SUUpdatePermissionPrompt.nib b/Pods/Sparkle/Sparkle.framework/Versions/A/Resources/is.lproj/SUUpdatePermissionPrompt.nib index 8d9071575..00c3b4cf2 100644 Binary files a/Pods/Sparkle/Sparkle.framework/Versions/A/Resources/is.lproj/SUUpdatePermissionPrompt.nib and b/Pods/Sparkle/Sparkle.framework/Versions/A/Resources/is.lproj/SUUpdatePermissionPrompt.nib differ diff --git a/Pods/Sparkle/Sparkle.framework/Versions/A/Resources/it.lproj/SUAutomaticUpdateAlert.nib b/Pods/Sparkle/Sparkle.framework/Versions/A/Resources/it.lproj/SUAutomaticUpdateAlert.nib index 5329daf83..fb389d236 100644 Binary files a/Pods/Sparkle/Sparkle.framework/Versions/A/Resources/it.lproj/SUAutomaticUpdateAlert.nib and b/Pods/Sparkle/Sparkle.framework/Versions/A/Resources/it.lproj/SUAutomaticUpdateAlert.nib differ diff --git a/Pods/Sparkle/Sparkle.framework/Versions/A/Resources/it.lproj/SUUpdateAlert.nib b/Pods/Sparkle/Sparkle.framework/Versions/A/Resources/it.lproj/SUUpdateAlert.nib index 9f34c0f02..7eea1a8d8 100644 Binary files a/Pods/Sparkle/Sparkle.framework/Versions/A/Resources/it.lproj/SUUpdateAlert.nib and b/Pods/Sparkle/Sparkle.framework/Versions/A/Resources/it.lproj/SUUpdateAlert.nib differ diff --git a/Pods/Sparkle/Sparkle.framework/Versions/A/Resources/it.lproj/SUUpdatePermissionPrompt.nib b/Pods/Sparkle/Sparkle.framework/Versions/A/Resources/it.lproj/SUUpdatePermissionPrompt.nib index df99d5952..966065f66 100644 Binary files a/Pods/Sparkle/Sparkle.framework/Versions/A/Resources/it.lproj/SUUpdatePermissionPrompt.nib and b/Pods/Sparkle/Sparkle.framework/Versions/A/Resources/it.lproj/SUUpdatePermissionPrompt.nib differ diff --git a/Pods/Sparkle/Sparkle.framework/Versions/A/Resources/ja.lproj/SUAutomaticUpdateAlert.nib b/Pods/Sparkle/Sparkle.framework/Versions/A/Resources/ja.lproj/SUAutomaticUpdateAlert.nib index 359fdd3b1..9200a22c0 100644 Binary files a/Pods/Sparkle/Sparkle.framework/Versions/A/Resources/ja.lproj/SUAutomaticUpdateAlert.nib and b/Pods/Sparkle/Sparkle.framework/Versions/A/Resources/ja.lproj/SUAutomaticUpdateAlert.nib differ diff --git a/Pods/Sparkle/Sparkle.framework/Versions/A/Resources/ja.lproj/SUUpdateAlert.nib b/Pods/Sparkle/Sparkle.framework/Versions/A/Resources/ja.lproj/SUUpdateAlert.nib index ee645583c..abe1d0bf3 100644 Binary files a/Pods/Sparkle/Sparkle.framework/Versions/A/Resources/ja.lproj/SUUpdateAlert.nib and b/Pods/Sparkle/Sparkle.framework/Versions/A/Resources/ja.lproj/SUUpdateAlert.nib differ diff --git a/Pods/Sparkle/Sparkle.framework/Versions/A/Resources/ja.lproj/SUUpdatePermissionPrompt.nib b/Pods/Sparkle/Sparkle.framework/Versions/A/Resources/ja.lproj/SUUpdatePermissionPrompt.nib index c05c936f1..6ec0cbdf0 100644 Binary files a/Pods/Sparkle/Sparkle.framework/Versions/A/Resources/ja.lproj/SUUpdatePermissionPrompt.nib and b/Pods/Sparkle/Sparkle.framework/Versions/A/Resources/ja.lproj/SUUpdatePermissionPrompt.nib differ diff --git a/Pods/Sparkle/Sparkle.framework/Versions/A/Resources/ko.lproj/SUAutomaticUpdateAlert.nib b/Pods/Sparkle/Sparkle.framework/Versions/A/Resources/ko.lproj/SUAutomaticUpdateAlert.nib index 3df405258..b29426766 100644 Binary files a/Pods/Sparkle/Sparkle.framework/Versions/A/Resources/ko.lproj/SUAutomaticUpdateAlert.nib and b/Pods/Sparkle/Sparkle.framework/Versions/A/Resources/ko.lproj/SUAutomaticUpdateAlert.nib differ diff --git a/Pods/Sparkle/Sparkle.framework/Versions/A/Resources/ko.lproj/SUUpdateAlert.nib b/Pods/Sparkle/Sparkle.framework/Versions/A/Resources/ko.lproj/SUUpdateAlert.nib index 24d7c6fc4..d5e01aded 100644 Binary files a/Pods/Sparkle/Sparkle.framework/Versions/A/Resources/ko.lproj/SUUpdateAlert.nib and b/Pods/Sparkle/Sparkle.framework/Versions/A/Resources/ko.lproj/SUUpdateAlert.nib differ diff --git a/Pods/Sparkle/Sparkle.framework/Versions/A/Resources/ko.lproj/SUUpdatePermissionPrompt.nib b/Pods/Sparkle/Sparkle.framework/Versions/A/Resources/ko.lproj/SUUpdatePermissionPrompt.nib index 6131a89f5..db6622c94 100644 Binary files a/Pods/Sparkle/Sparkle.framework/Versions/A/Resources/ko.lproj/SUUpdatePermissionPrompt.nib and b/Pods/Sparkle/Sparkle.framework/Versions/A/Resources/ko.lproj/SUUpdatePermissionPrompt.nib differ diff --git a/Pods/Sparkle/Sparkle.framework/Versions/A/Resources/nb.lproj/SUAutomaticUpdateAlert.nib b/Pods/Sparkle/Sparkle.framework/Versions/A/Resources/nb.lproj/SUAutomaticUpdateAlert.nib index 8afc9a794..cbc7a9fdd 100644 Binary files a/Pods/Sparkle/Sparkle.framework/Versions/A/Resources/nb.lproj/SUAutomaticUpdateAlert.nib and b/Pods/Sparkle/Sparkle.framework/Versions/A/Resources/nb.lproj/SUAutomaticUpdateAlert.nib differ diff --git a/Pods/Sparkle/Sparkle.framework/Versions/A/Resources/nb.lproj/SUUpdateAlert.nib b/Pods/Sparkle/Sparkle.framework/Versions/A/Resources/nb.lproj/SUUpdateAlert.nib index 464fe83cf..3a875f2bd 100644 Binary files a/Pods/Sparkle/Sparkle.framework/Versions/A/Resources/nb.lproj/SUUpdateAlert.nib and b/Pods/Sparkle/Sparkle.framework/Versions/A/Resources/nb.lproj/SUUpdateAlert.nib differ diff --git a/Pods/Sparkle/Sparkle.framework/Versions/A/Resources/nb.lproj/SUUpdatePermissionPrompt.nib b/Pods/Sparkle/Sparkle.framework/Versions/A/Resources/nb.lproj/SUUpdatePermissionPrompt.nib index 1d8c21a40..9dc8dc710 100644 Binary files a/Pods/Sparkle/Sparkle.framework/Versions/A/Resources/nb.lproj/SUUpdatePermissionPrompt.nib and b/Pods/Sparkle/Sparkle.framework/Versions/A/Resources/nb.lproj/SUUpdatePermissionPrompt.nib differ diff --git a/Pods/Sparkle/Sparkle.framework/Versions/A/Resources/nl.lproj/SUAutomaticUpdateAlert.nib b/Pods/Sparkle/Sparkle.framework/Versions/A/Resources/nl.lproj/SUAutomaticUpdateAlert.nib index 6c19e84ea..96e672b3d 100644 Binary files a/Pods/Sparkle/Sparkle.framework/Versions/A/Resources/nl.lproj/SUAutomaticUpdateAlert.nib and b/Pods/Sparkle/Sparkle.framework/Versions/A/Resources/nl.lproj/SUAutomaticUpdateAlert.nib differ diff --git a/Pods/Sparkle/Sparkle.framework/Versions/A/Resources/nl.lproj/SUUpdateAlert.nib b/Pods/Sparkle/Sparkle.framework/Versions/A/Resources/nl.lproj/SUUpdateAlert.nib index 72ec70976..ccec5f8f5 100644 Binary files a/Pods/Sparkle/Sparkle.framework/Versions/A/Resources/nl.lproj/SUUpdateAlert.nib and b/Pods/Sparkle/Sparkle.framework/Versions/A/Resources/nl.lproj/SUUpdateAlert.nib differ diff --git a/Pods/Sparkle/Sparkle.framework/Versions/A/Resources/nl.lproj/SUUpdatePermissionPrompt.nib b/Pods/Sparkle/Sparkle.framework/Versions/A/Resources/nl.lproj/SUUpdatePermissionPrompt.nib index 2745a9693..2b64274f0 100644 Binary files a/Pods/Sparkle/Sparkle.framework/Versions/A/Resources/nl.lproj/SUUpdatePermissionPrompt.nib and b/Pods/Sparkle/Sparkle.framework/Versions/A/Resources/nl.lproj/SUUpdatePermissionPrompt.nib differ diff --git a/Pods/Sparkle/Sparkle.framework/Versions/A/Resources/pl.lproj/SUAutomaticUpdateAlert.nib b/Pods/Sparkle/Sparkle.framework/Versions/A/Resources/pl.lproj/SUAutomaticUpdateAlert.nib index 7fb38ae22..aa19d7e3f 100644 Binary files a/Pods/Sparkle/Sparkle.framework/Versions/A/Resources/pl.lproj/SUAutomaticUpdateAlert.nib and b/Pods/Sparkle/Sparkle.framework/Versions/A/Resources/pl.lproj/SUAutomaticUpdateAlert.nib differ diff --git a/Pods/Sparkle/Sparkle.framework/Versions/A/Resources/pl.lproj/SUUpdateAlert.nib b/Pods/Sparkle/Sparkle.framework/Versions/A/Resources/pl.lproj/SUUpdateAlert.nib index 7770c8748..4fcb4eecd 100644 Binary files a/Pods/Sparkle/Sparkle.framework/Versions/A/Resources/pl.lproj/SUUpdateAlert.nib and b/Pods/Sparkle/Sparkle.framework/Versions/A/Resources/pl.lproj/SUUpdateAlert.nib differ diff --git a/Pods/Sparkle/Sparkle.framework/Versions/A/Resources/pl.lproj/SUUpdatePermissionPrompt.nib b/Pods/Sparkle/Sparkle.framework/Versions/A/Resources/pl.lproj/SUUpdatePermissionPrompt.nib index c3cc61aa6..aced373c6 100644 Binary files a/Pods/Sparkle/Sparkle.framework/Versions/A/Resources/pl.lproj/SUUpdatePermissionPrompt.nib and b/Pods/Sparkle/Sparkle.framework/Versions/A/Resources/pl.lproj/SUUpdatePermissionPrompt.nib differ diff --git a/Pods/Sparkle/Sparkle.framework/Versions/A/Resources/pt_BR.lproj/SUAutomaticUpdateAlert.nib b/Pods/Sparkle/Sparkle.framework/Versions/A/Resources/pt_BR.lproj/SUAutomaticUpdateAlert.nib index 0aceaddbb..0e8fdc60e 100644 Binary files a/Pods/Sparkle/Sparkle.framework/Versions/A/Resources/pt_BR.lproj/SUAutomaticUpdateAlert.nib and b/Pods/Sparkle/Sparkle.framework/Versions/A/Resources/pt_BR.lproj/SUAutomaticUpdateAlert.nib differ diff --git a/Pods/Sparkle/Sparkle.framework/Versions/A/Resources/pt_BR.lproj/SUUpdateAlert.nib b/Pods/Sparkle/Sparkle.framework/Versions/A/Resources/pt_BR.lproj/SUUpdateAlert.nib index 39e170301..0a8994379 100644 Binary files a/Pods/Sparkle/Sparkle.framework/Versions/A/Resources/pt_BR.lproj/SUUpdateAlert.nib and b/Pods/Sparkle/Sparkle.framework/Versions/A/Resources/pt_BR.lproj/SUUpdateAlert.nib differ diff --git a/Pods/Sparkle/Sparkle.framework/Versions/A/Resources/pt_BR.lproj/SUUpdatePermissionPrompt.nib b/Pods/Sparkle/Sparkle.framework/Versions/A/Resources/pt_BR.lproj/SUUpdatePermissionPrompt.nib index 878210dda..c9bd57830 100644 Binary files a/Pods/Sparkle/Sparkle.framework/Versions/A/Resources/pt_BR.lproj/SUUpdatePermissionPrompt.nib and b/Pods/Sparkle/Sparkle.framework/Versions/A/Resources/pt_BR.lproj/SUUpdatePermissionPrompt.nib differ diff --git a/Pods/Sparkle/Sparkle.framework/Versions/A/Resources/pt_PT.lproj/SUAutomaticUpdateAlert.nib b/Pods/Sparkle/Sparkle.framework/Versions/A/Resources/pt_PT.lproj/SUAutomaticUpdateAlert.nib index 713f39bd0..7056ce7b7 100644 Binary files a/Pods/Sparkle/Sparkle.framework/Versions/A/Resources/pt_PT.lproj/SUAutomaticUpdateAlert.nib and b/Pods/Sparkle/Sparkle.framework/Versions/A/Resources/pt_PT.lproj/SUAutomaticUpdateAlert.nib differ diff --git a/Pods/Sparkle/Sparkle.framework/Versions/A/Resources/pt_PT.lproj/SUUpdateAlert.nib b/Pods/Sparkle/Sparkle.framework/Versions/A/Resources/pt_PT.lproj/SUUpdateAlert.nib index 4ac653cb1..d77700f05 100644 Binary files a/Pods/Sparkle/Sparkle.framework/Versions/A/Resources/pt_PT.lproj/SUUpdateAlert.nib and b/Pods/Sparkle/Sparkle.framework/Versions/A/Resources/pt_PT.lproj/SUUpdateAlert.nib differ diff --git a/Pods/Sparkle/Sparkle.framework/Versions/A/Resources/pt_PT.lproj/SUUpdatePermissionPrompt.nib b/Pods/Sparkle/Sparkle.framework/Versions/A/Resources/pt_PT.lproj/SUUpdatePermissionPrompt.nib index 5d62dc878..554151eb6 100644 Binary files a/Pods/Sparkle/Sparkle.framework/Versions/A/Resources/pt_PT.lproj/SUUpdatePermissionPrompt.nib and b/Pods/Sparkle/Sparkle.framework/Versions/A/Resources/pt_PT.lproj/SUUpdatePermissionPrompt.nib differ diff --git a/Pods/Sparkle/Sparkle.framework/Versions/A/Resources/ro.lproj/SUAutomaticUpdateAlert.nib b/Pods/Sparkle/Sparkle.framework/Versions/A/Resources/ro.lproj/SUAutomaticUpdateAlert.nib index a35c2719e..c5907ff1d 100644 Binary files a/Pods/Sparkle/Sparkle.framework/Versions/A/Resources/ro.lproj/SUAutomaticUpdateAlert.nib and b/Pods/Sparkle/Sparkle.framework/Versions/A/Resources/ro.lproj/SUAutomaticUpdateAlert.nib differ diff --git a/Pods/Sparkle/Sparkle.framework/Versions/A/Resources/ro.lproj/SUUpdateAlert.nib b/Pods/Sparkle/Sparkle.framework/Versions/A/Resources/ro.lproj/SUUpdateAlert.nib index 5cd107ed9..9e45a85c1 100644 Binary files a/Pods/Sparkle/Sparkle.framework/Versions/A/Resources/ro.lproj/SUUpdateAlert.nib and b/Pods/Sparkle/Sparkle.framework/Versions/A/Resources/ro.lproj/SUUpdateAlert.nib differ diff --git a/Pods/Sparkle/Sparkle.framework/Versions/A/Resources/ro.lproj/SUUpdatePermissionPrompt.nib b/Pods/Sparkle/Sparkle.framework/Versions/A/Resources/ro.lproj/SUUpdatePermissionPrompt.nib index bd546ca26..56c269037 100644 Binary files a/Pods/Sparkle/Sparkle.framework/Versions/A/Resources/ro.lproj/SUUpdatePermissionPrompt.nib and b/Pods/Sparkle/Sparkle.framework/Versions/A/Resources/ro.lproj/SUUpdatePermissionPrompt.nib differ diff --git a/Pods/Sparkle/Sparkle.framework/Versions/A/Resources/ru.lproj/SUAutomaticUpdateAlert.nib b/Pods/Sparkle/Sparkle.framework/Versions/A/Resources/ru.lproj/SUAutomaticUpdateAlert.nib index 488f5d85f..9889fb2d3 100644 Binary files a/Pods/Sparkle/Sparkle.framework/Versions/A/Resources/ru.lproj/SUAutomaticUpdateAlert.nib and b/Pods/Sparkle/Sparkle.framework/Versions/A/Resources/ru.lproj/SUAutomaticUpdateAlert.nib differ diff --git a/Pods/Sparkle/Sparkle.framework/Versions/A/Resources/ru.lproj/SUUpdateAlert.nib b/Pods/Sparkle/Sparkle.framework/Versions/A/Resources/ru.lproj/SUUpdateAlert.nib index c4967d123..4743f8f9f 100644 Binary files a/Pods/Sparkle/Sparkle.framework/Versions/A/Resources/ru.lproj/SUUpdateAlert.nib and b/Pods/Sparkle/Sparkle.framework/Versions/A/Resources/ru.lproj/SUUpdateAlert.nib differ diff --git a/Pods/Sparkle/Sparkle.framework/Versions/A/Resources/ru.lproj/SUUpdatePermissionPrompt.nib b/Pods/Sparkle/Sparkle.framework/Versions/A/Resources/ru.lproj/SUUpdatePermissionPrompt.nib index 5ab495b31..e0d48aa4f 100644 Binary files a/Pods/Sparkle/Sparkle.framework/Versions/A/Resources/ru.lproj/SUUpdatePermissionPrompt.nib and b/Pods/Sparkle/Sparkle.framework/Versions/A/Resources/ru.lproj/SUUpdatePermissionPrompt.nib differ diff --git a/Pods/Sparkle/Sparkle.framework/Versions/A/Resources/sk.lproj/SUAutomaticUpdateAlert.nib b/Pods/Sparkle/Sparkle.framework/Versions/A/Resources/sk.lproj/SUAutomaticUpdateAlert.nib index 4d3100100..912d1dd95 100644 Binary files a/Pods/Sparkle/Sparkle.framework/Versions/A/Resources/sk.lproj/SUAutomaticUpdateAlert.nib and b/Pods/Sparkle/Sparkle.framework/Versions/A/Resources/sk.lproj/SUAutomaticUpdateAlert.nib differ diff --git a/Pods/Sparkle/Sparkle.framework/Versions/A/Resources/sk.lproj/SUUpdateAlert.nib b/Pods/Sparkle/Sparkle.framework/Versions/A/Resources/sk.lproj/SUUpdateAlert.nib index 19b6d829d..0aa042e4d 100644 Binary files a/Pods/Sparkle/Sparkle.framework/Versions/A/Resources/sk.lproj/SUUpdateAlert.nib and b/Pods/Sparkle/Sparkle.framework/Versions/A/Resources/sk.lproj/SUUpdateAlert.nib differ diff --git a/Pods/Sparkle/Sparkle.framework/Versions/A/Resources/sk.lproj/SUUpdatePermissionPrompt.nib b/Pods/Sparkle/Sparkle.framework/Versions/A/Resources/sk.lproj/SUUpdatePermissionPrompt.nib index f1773f7f4..a7119055c 100644 Binary files a/Pods/Sparkle/Sparkle.framework/Versions/A/Resources/sk.lproj/SUUpdatePermissionPrompt.nib and b/Pods/Sparkle/Sparkle.framework/Versions/A/Resources/sk.lproj/SUUpdatePermissionPrompt.nib differ diff --git a/Pods/Sparkle/Sparkle.framework/Versions/A/Resources/sl.lproj/SUAutomaticUpdateAlert.nib b/Pods/Sparkle/Sparkle.framework/Versions/A/Resources/sl.lproj/SUAutomaticUpdateAlert.nib index 1696cb9b1..745260237 100644 Binary files a/Pods/Sparkle/Sparkle.framework/Versions/A/Resources/sl.lproj/SUAutomaticUpdateAlert.nib and b/Pods/Sparkle/Sparkle.framework/Versions/A/Resources/sl.lproj/SUAutomaticUpdateAlert.nib differ diff --git a/Pods/Sparkle/Sparkle.framework/Versions/A/Resources/sl.lproj/SUUpdateAlert.nib b/Pods/Sparkle/Sparkle.framework/Versions/A/Resources/sl.lproj/SUUpdateAlert.nib index 7d28633df..96b5964ad 100644 Binary files a/Pods/Sparkle/Sparkle.framework/Versions/A/Resources/sl.lproj/SUUpdateAlert.nib and b/Pods/Sparkle/Sparkle.framework/Versions/A/Resources/sl.lproj/SUUpdateAlert.nib differ diff --git a/Pods/Sparkle/Sparkle.framework/Versions/A/Resources/sl.lproj/SUUpdatePermissionPrompt.nib b/Pods/Sparkle/Sparkle.framework/Versions/A/Resources/sl.lproj/SUUpdatePermissionPrompt.nib index cf882d0e5..12fcd8c12 100644 Binary files a/Pods/Sparkle/Sparkle.framework/Versions/A/Resources/sl.lproj/SUUpdatePermissionPrompt.nib and b/Pods/Sparkle/Sparkle.framework/Versions/A/Resources/sl.lproj/SUUpdatePermissionPrompt.nib differ diff --git a/Pods/Sparkle/Sparkle.framework/Versions/A/Resources/sv.lproj/SUAutomaticUpdateAlert.nib b/Pods/Sparkle/Sparkle.framework/Versions/A/Resources/sv.lproj/SUAutomaticUpdateAlert.nib index 823cdeb8c..ae7ceb14e 100644 Binary files a/Pods/Sparkle/Sparkle.framework/Versions/A/Resources/sv.lproj/SUAutomaticUpdateAlert.nib and b/Pods/Sparkle/Sparkle.framework/Versions/A/Resources/sv.lproj/SUAutomaticUpdateAlert.nib differ diff --git a/Pods/Sparkle/Sparkle.framework/Versions/A/Resources/sv.lproj/SUUpdateAlert.nib b/Pods/Sparkle/Sparkle.framework/Versions/A/Resources/sv.lproj/SUUpdateAlert.nib index a2eb4446e..07518c343 100644 Binary files a/Pods/Sparkle/Sparkle.framework/Versions/A/Resources/sv.lproj/SUUpdateAlert.nib and b/Pods/Sparkle/Sparkle.framework/Versions/A/Resources/sv.lproj/SUUpdateAlert.nib differ diff --git a/Pods/Sparkle/Sparkle.framework/Versions/A/Resources/sv.lproj/SUUpdatePermissionPrompt.nib b/Pods/Sparkle/Sparkle.framework/Versions/A/Resources/sv.lproj/SUUpdatePermissionPrompt.nib index 303cccb88..6d16cc67f 100644 Binary files a/Pods/Sparkle/Sparkle.framework/Versions/A/Resources/sv.lproj/SUUpdatePermissionPrompt.nib and b/Pods/Sparkle/Sparkle.framework/Versions/A/Resources/sv.lproj/SUUpdatePermissionPrompt.nib differ diff --git a/Pods/Sparkle/Sparkle.framework/Versions/A/Resources/th.lproj/SUAutomaticUpdateAlert.nib b/Pods/Sparkle/Sparkle.framework/Versions/A/Resources/th.lproj/SUAutomaticUpdateAlert.nib index a1a98b92b..0ee49a1f4 100644 Binary files a/Pods/Sparkle/Sparkle.framework/Versions/A/Resources/th.lproj/SUAutomaticUpdateAlert.nib and b/Pods/Sparkle/Sparkle.framework/Versions/A/Resources/th.lproj/SUAutomaticUpdateAlert.nib differ diff --git a/Pods/Sparkle/Sparkle.framework/Versions/A/Resources/th.lproj/SUUpdateAlert.nib b/Pods/Sparkle/Sparkle.framework/Versions/A/Resources/th.lproj/SUUpdateAlert.nib index 9122cfadd..5241b1f23 100644 Binary files a/Pods/Sparkle/Sparkle.framework/Versions/A/Resources/th.lproj/SUUpdateAlert.nib and b/Pods/Sparkle/Sparkle.framework/Versions/A/Resources/th.lproj/SUUpdateAlert.nib differ diff --git a/Pods/Sparkle/Sparkle.framework/Versions/A/Resources/th.lproj/SUUpdatePermissionPrompt.nib b/Pods/Sparkle/Sparkle.framework/Versions/A/Resources/th.lproj/SUUpdatePermissionPrompt.nib index 5f6434149..d66c6ff00 100644 Binary files a/Pods/Sparkle/Sparkle.framework/Versions/A/Resources/th.lproj/SUUpdatePermissionPrompt.nib and b/Pods/Sparkle/Sparkle.framework/Versions/A/Resources/th.lproj/SUUpdatePermissionPrompt.nib differ diff --git a/Pods/Sparkle/Sparkle.framework/Versions/A/Resources/tr.lproj/SUAutomaticUpdateAlert.nib b/Pods/Sparkle/Sparkle.framework/Versions/A/Resources/tr.lproj/SUAutomaticUpdateAlert.nib index c1173aa47..24605f177 100644 Binary files a/Pods/Sparkle/Sparkle.framework/Versions/A/Resources/tr.lproj/SUAutomaticUpdateAlert.nib and b/Pods/Sparkle/Sparkle.framework/Versions/A/Resources/tr.lproj/SUAutomaticUpdateAlert.nib differ diff --git a/Pods/Sparkle/Sparkle.framework/Versions/A/Resources/tr.lproj/SUUpdateAlert.nib b/Pods/Sparkle/Sparkle.framework/Versions/A/Resources/tr.lproj/SUUpdateAlert.nib index 4784b3295..e722b695b 100644 Binary files a/Pods/Sparkle/Sparkle.framework/Versions/A/Resources/tr.lproj/SUUpdateAlert.nib and b/Pods/Sparkle/Sparkle.framework/Versions/A/Resources/tr.lproj/SUUpdateAlert.nib differ diff --git a/Pods/Sparkle/Sparkle.framework/Versions/A/Resources/tr.lproj/SUUpdatePermissionPrompt.nib b/Pods/Sparkle/Sparkle.framework/Versions/A/Resources/tr.lproj/SUUpdatePermissionPrompt.nib index e76fe0533..5c8a7d84f 100644 Binary files a/Pods/Sparkle/Sparkle.framework/Versions/A/Resources/tr.lproj/SUUpdatePermissionPrompt.nib and b/Pods/Sparkle/Sparkle.framework/Versions/A/Resources/tr.lproj/SUUpdatePermissionPrompt.nib differ diff --git a/Pods/Sparkle/Sparkle.framework/Versions/A/Resources/uk.lproj/SUAutomaticUpdateAlert.nib b/Pods/Sparkle/Sparkle.framework/Versions/A/Resources/uk.lproj/SUAutomaticUpdateAlert.nib index e610aae0b..dd540a60d 100644 Binary files a/Pods/Sparkle/Sparkle.framework/Versions/A/Resources/uk.lproj/SUAutomaticUpdateAlert.nib and b/Pods/Sparkle/Sparkle.framework/Versions/A/Resources/uk.lproj/SUAutomaticUpdateAlert.nib differ diff --git a/Pods/Sparkle/Sparkle.framework/Versions/A/Resources/uk.lproj/SUUpdateAlert.nib b/Pods/Sparkle/Sparkle.framework/Versions/A/Resources/uk.lproj/SUUpdateAlert.nib index 6d353b7ab..8ebec67dc 100644 Binary files a/Pods/Sparkle/Sparkle.framework/Versions/A/Resources/uk.lproj/SUUpdateAlert.nib and b/Pods/Sparkle/Sparkle.framework/Versions/A/Resources/uk.lproj/SUUpdateAlert.nib differ diff --git a/Pods/Sparkle/Sparkle.framework/Versions/A/Resources/uk.lproj/SUUpdatePermissionPrompt.nib b/Pods/Sparkle/Sparkle.framework/Versions/A/Resources/uk.lproj/SUUpdatePermissionPrompt.nib index 0c9ab54d6..dd31811c0 100644 Binary files a/Pods/Sparkle/Sparkle.framework/Versions/A/Resources/uk.lproj/SUUpdatePermissionPrompt.nib and b/Pods/Sparkle/Sparkle.framework/Versions/A/Resources/uk.lproj/SUUpdatePermissionPrompt.nib differ diff --git a/Pods/Sparkle/Sparkle.framework/Versions/A/Resources/zh_CN.lproj/SUAutomaticUpdateAlert.nib b/Pods/Sparkle/Sparkle.framework/Versions/A/Resources/zh_CN.lproj/SUAutomaticUpdateAlert.nib index d92714048..1cb9d7074 100644 Binary files a/Pods/Sparkle/Sparkle.framework/Versions/A/Resources/zh_CN.lproj/SUAutomaticUpdateAlert.nib and b/Pods/Sparkle/Sparkle.framework/Versions/A/Resources/zh_CN.lproj/SUAutomaticUpdateAlert.nib differ diff --git a/Pods/Sparkle/Sparkle.framework/Versions/A/Resources/zh_CN.lproj/SUUpdateAlert.nib b/Pods/Sparkle/Sparkle.framework/Versions/A/Resources/zh_CN.lproj/SUUpdateAlert.nib index 77cd12278..2c066da9d 100644 Binary files a/Pods/Sparkle/Sparkle.framework/Versions/A/Resources/zh_CN.lproj/SUUpdateAlert.nib and b/Pods/Sparkle/Sparkle.framework/Versions/A/Resources/zh_CN.lproj/SUUpdateAlert.nib differ diff --git a/Pods/Sparkle/Sparkle.framework/Versions/A/Resources/zh_CN.lproj/SUUpdatePermissionPrompt.nib b/Pods/Sparkle/Sparkle.framework/Versions/A/Resources/zh_CN.lproj/SUUpdatePermissionPrompt.nib index 9a758df31..1e5b4eb20 100644 Binary files a/Pods/Sparkle/Sparkle.framework/Versions/A/Resources/zh_CN.lproj/SUUpdatePermissionPrompt.nib and b/Pods/Sparkle/Sparkle.framework/Versions/A/Resources/zh_CN.lproj/SUUpdatePermissionPrompt.nib differ diff --git a/Pods/Sparkle/Sparkle.framework/Versions/A/Resources/zh_CN.lproj/Sparkle.strings b/Pods/Sparkle/Sparkle.framework/Versions/A/Resources/zh_CN.lproj/Sparkle.strings index 7e808f8a8..71cf325f2 100644 Binary files a/Pods/Sparkle/Sparkle.framework/Versions/A/Resources/zh_CN.lproj/Sparkle.strings and b/Pods/Sparkle/Sparkle.framework/Versions/A/Resources/zh_CN.lproj/Sparkle.strings differ diff --git a/Pods/Sparkle/Sparkle.framework/Versions/A/Resources/zh_TW.lproj/SUAutomaticUpdateAlert.nib b/Pods/Sparkle/Sparkle.framework/Versions/A/Resources/zh_TW.lproj/SUAutomaticUpdateAlert.nib index 3d41afb55..3c2028109 100644 Binary files a/Pods/Sparkle/Sparkle.framework/Versions/A/Resources/zh_TW.lproj/SUAutomaticUpdateAlert.nib and b/Pods/Sparkle/Sparkle.framework/Versions/A/Resources/zh_TW.lproj/SUAutomaticUpdateAlert.nib differ diff --git a/Pods/Sparkle/Sparkle.framework/Versions/A/Resources/zh_TW.lproj/SUUpdateAlert.nib b/Pods/Sparkle/Sparkle.framework/Versions/A/Resources/zh_TW.lproj/SUUpdateAlert.nib index 74418e82f..27d22201b 100644 Binary files a/Pods/Sparkle/Sparkle.framework/Versions/A/Resources/zh_TW.lproj/SUUpdateAlert.nib and b/Pods/Sparkle/Sparkle.framework/Versions/A/Resources/zh_TW.lproj/SUUpdateAlert.nib differ diff --git a/Pods/Sparkle/Sparkle.framework/Versions/A/Resources/zh_TW.lproj/SUUpdatePermissionPrompt.nib b/Pods/Sparkle/Sparkle.framework/Versions/A/Resources/zh_TW.lproj/SUUpdatePermissionPrompt.nib index b47db00bf..794336528 100644 Binary files a/Pods/Sparkle/Sparkle.framework/Versions/A/Resources/zh_TW.lproj/SUUpdatePermissionPrompt.nib and b/Pods/Sparkle/Sparkle.framework/Versions/A/Resources/zh_TW.lproj/SUUpdatePermissionPrompt.nib differ diff --git a/Pods/Sparkle/Sparkle.framework/Versions/A/Sparkle b/Pods/Sparkle/Sparkle.framework/Versions/A/Sparkle index cc67a5038..a89d9ae9d 100755 Binary files a/Pods/Sparkle/Sparkle.framework/Versions/A/Sparkle and b/Pods/Sparkle/Sparkle.framework/Versions/A/Sparkle differ diff --git a/Pods/Sparkle/Sparkle.framework/Versions/A/_CodeSignature/CodeResources b/Pods/Sparkle/Sparkle.framework/Versions/A/_CodeSignature/CodeResources index 52cdcef19..beb3429f5 100644 --- a/Pods/Sparkle/Sparkle.framework/Versions/A/_CodeSignature/CodeResources +++ b/Pods/Sparkle/Sparkle.framework/Versions/A/_CodeSignature/CodeResources @@ -6,15 +6,15 @@ Resources/Autoupdate.app/Contents/Info.plist - WmC7M6tAuCZzYQbwA5YQRyp8gSg= + vcMwRErKskmkeyJJVI3Z3sof/sE= Resources/Autoupdate.app/Contents/MacOS/Autoupdate - Y0Fxy1YyUMrbR92D7MX3M0u26ns= + +dZZmoYTS+EoOzyj5DHipiL7vdA= Resources/Autoupdate.app/Contents/MacOS/fileop - kd875N+pxOj629NQNLzNs+ZBJnc= + rsEt+sjfXAsfWD9h538L+27pg/s= Resources/Autoupdate.app/Contents/PkgInfo @@ -26,7 +26,7 @@ Resources/Autoupdate.app/Contents/Resources/SUStatus.nib - +3Tn7V2+cRw0Aw2VoWT1DNAPpkE= + ECVWRExfxyDt5uvKRD+70wc9J6s= Resources/Autoupdate.app/Contents/Resources/ar.lproj/Sparkle.strings @@ -50,7 +50,7 @@ hash - OjCfTDR+NbVLvirUPiJKJF6UiS0= + bY3rkqi/NJtXtjpK3FbV2o0gxbQ= optional @@ -86,7 +86,7 @@ hash - i3TNbMzmKR52wTyfnD/bkZ12elE= + cHZov5FaqzfNhnBo0XdRuTMT4SY= optional @@ -131,7 +131,7 @@ hash - vyI2nHyZlhhSXXrQGoflg8oB9Ig= + 7LLOVs76ioMwEDV8Gah+6sV/5No= optional @@ -302,7 +302,7 @@ hash - 0vdFowZuJ1qLE3rDgG3BZ9SlNRw= + OnR96Z9tB0noODRSYssSs63+zGA= optional @@ -318,7 +318,7 @@ Resources/Autoupdate.app/Contents/_CodeSignature/CodeResources - bY25s0CxDdpPUjh2IkcEndg3sMc= + VHoMteoopEbbYVG87rxkm0sjkA4= Resources/DarkAqua.css @@ -326,7 +326,7 @@ Resources/Info.plist - un8L4C3zlHfrCP1+qdtrsU+uHUQ= + Vjt5kOIAFdWzUgFgF/aP2v3owEc= Resources/SUModelTranslation.plist @@ -334,13 +334,13 @@ Resources/SUStatus.nib - +3Tn7V2+cRw0Aw2VoWT1DNAPpkE= + ECVWRExfxyDt5uvKRD+70wc9J6s= Resources/ar.lproj/SUAutomaticUpdateAlert.nib hash - oDbeH//n57rFaGaLkwI8UQ/txa0= + LtkONVbhTzwCPtbjkr06qSniXCI= optional @@ -349,7 +349,7 @@ hash - rj3mNv5WCDqnrsLmtCWdWwnQzJE= + JeZDdP1OuZbqkm8UKYiyH00A7ss= optional @@ -358,7 +358,7 @@ hash - xsWIpjC5TTnPtuprvEvnTUMyKYo= + Heb65H1UseXl7rEaFwVxKauBWnI= optional @@ -385,7 +385,7 @@ hash - iLsEEL5N+u3x0igCMtLbvUxqiI0= + YpT086oHMS9O2TvSNLZh+39oy80= optional @@ -394,7 +394,7 @@ hash - reUhWQTuJfS9z/Hf8LwQASnszvc= + v2ac1JQZvkm8EHZiTUc/q4aBcU0= optional @@ -403,7 +403,7 @@ hash - AvWpT2/bR/hQ2SrkSIJn1HaAXi0= + 2ANG1NY1o8ndm0xcmHwYUvrRk6w= optional @@ -412,7 +412,7 @@ hash - OjCfTDR+NbVLvirUPiJKJF6UiS0= + bY3rkqi/NJtXtjpK3FbV2o0gxbQ= optional @@ -421,7 +421,7 @@ hash - u1F8d4d/aOeByXDdvXMugGpU/Fk= + XCqcLv38cTpbjAE4zjN/JWeT3+U= optional @@ -430,7 +430,7 @@ hash - ZW7bZ9L3EhY/tyvqZWgYznuPaTY= + BY0imp6dA7C0GSOK81VXTJsRccM= optional @@ -439,7 +439,7 @@ hash - uMINTHGG6dgMjyUAYQha7LXmlFg= + Ev2Nvw9c6bVU5ZF63yVhcyNp84w= optional @@ -457,7 +457,7 @@ hash - VRG/ZYuz0KOyMjBw4bu4NIlO3MY= + i/BaQXOSENNulhl0b5jssezuU3Y= optional @@ -466,7 +466,7 @@ hash - cT+nRuofaW12I0wjvG697gXwMfA= + lieYpCoCaCKAA3EL3/EsBr46vqI= optional @@ -475,7 +475,7 @@ hash - P1qisftBIKKBMlb5+8fD2vZn8C4= + oy0dHoyKmH2uV/KCHJzCagE+QIE= optional @@ -493,7 +493,7 @@ hash - ccB0As39qPJ0x4XkN34YZI8IUHs= + s3rpfaKP5+1+vGc44qpcWy+h0t8= optional @@ -502,7 +502,7 @@ hash - 8BqXnIfQOb3RBiybY1uUgI2a0oc= + sJcnQqAH4BsB+2rz9riB7iqePh0= optional @@ -511,7 +511,7 @@ hash - WujzpfOdW+H1RXGYDSAWcHDghE4= + mYyXqqWSoYqVG1zNp1vopIw8r1k= optional @@ -529,7 +529,7 @@ hash - smFdnjqh5FfLp75QJkkVpDg+CPs= + Y6bIF/+bAP3t5gBwPcdqxsj4co4= optional @@ -538,7 +538,7 @@ hash - uQPgA8QNrJ6dkBofaA4cYiep7Nw= + L3hoxekBQAtpmyDXNhTX7kRXRtc= optional @@ -547,7 +547,7 @@ hash - jc/+PgCV2twCZZQSjQHHAer/o9M= + uLKIwoprHw35+b4+/KP/j9X2zVg= optional @@ -556,7 +556,7 @@ hash - i3TNbMzmKR52wTyfnD/bkZ12elE= + cHZov5FaqzfNhnBo0XdRuTMT4SY= optional @@ -565,7 +565,7 @@ hash - t79VYhRMP0dQCdKKtn83sAtFAkU= + BoS6NAq1zyVcmkbrKJhcI9Zrezk= optional @@ -574,7 +574,7 @@ hash - BPV01tBvjSwDHnD/WkxFJ+W7eFI= + UMa1QcJf8zfpVUnIZUGFfJ64wTk= optional @@ -583,7 +583,7 @@ hash - NrVNwqMfVUN8CR/qLP3WzI74QKg= + tre2iSm68OK3ztgNotyXuz1MkzI= optional @@ -601,7 +601,7 @@ hash - 3Jy7fCDJXPgxfGrSLnrq/BrR8Fo= + 6aUnn3XSgWKnVuYVA/PVSrwora8= optional @@ -610,7 +610,7 @@ hash - fWlU1Y804x2510X3QDdE/kgfBjY= + k8QjxmBhk5B6v1fGnFkwwX6oakg= optional @@ -619,7 +619,7 @@ hash - phFF3/dcygmnknefGj4i3cgz294= + HB5ASms7UIZfv0WaGh6tCLBEDP8= optional @@ -637,7 +637,7 @@ hash - RuJWtV4NU5tNgg+IHFiksMNUfIA= + Nj5v0wIECbpjSTU74xKBngH4DeY= optional @@ -646,7 +646,7 @@ hash - Fx5MmhvVqSx8rSHFOIibPCl3xBs= + RPgJubd38D/WH1H6B1jSejqILE8= optional @@ -655,7 +655,7 @@ hash - ZwgBvgFW99rtuKNAPLcCPieEdM8= + cVJfS2Nx3QvdbWEq+tSt8xi9hIg= optional @@ -682,7 +682,7 @@ hash - 3rBSNPdcL/Nl7+0rpUZqGhljLQY= + SkgPcXJYp5dizLAgiXfyl9EsPoI= optional @@ -691,7 +691,7 @@ hash - +OYMTGeQfzz+9ImWkCbDKJG4N6w= + 47iMWOA+94RZGJW+QJCeM4xOUsA= optional @@ -700,7 +700,7 @@ hash - eWFDPqngmPB+nrvPXjpU207PI9w= + S2YV0JmEwfPtYsMBBMuvddrPEis= optional @@ -709,7 +709,7 @@ hash - vyI2nHyZlhhSXXrQGoflg8oB9Ig= + 7LLOVs76ioMwEDV8Gah+6sV/5No= optional @@ -718,7 +718,7 @@ hash - KqZCmcd+fhq4qCb7DbEOVkCcC5M= + PfYCBbOThC1gBDzoxD+ijdyQ3T0= optional @@ -727,7 +727,7 @@ hash - VjGGKPTkcvGmYWc2ejOXIOR2Pec= + 6RlHCvHc9GNh1M7iJhvn12iFGpg= optional @@ -736,7 +736,7 @@ hash - 5EiQOlMoRKSojP+6FNbyMwNhgVk= + 1Yz7vPBCFCly2cHjtbQJPK9PzjE= optional @@ -754,7 +754,7 @@ hash - ab4gaq47381T+4qaedPAv/JPk6o= + 9eOJ/dQvTMu45Z1UowMPaKHYQOI= optional @@ -763,7 +763,7 @@ hash - HC1ZY4ZwpdC8g7whfpr8B68+Wsg= + F0aP96zh7QOSkAdFsBlIzBhmCIg= optional @@ -772,7 +772,7 @@ hash - KEnwS7P4M7RXREXDBrYzFPAB5VU= + xRBgLwOX0xZhrXGjHDHL6S+qCQc= optional @@ -790,7 +790,7 @@ hash - /GUIYGR9WmveeKz5MV+ulysFDGE= + JXGMS3rtry8HTWEbBibxVCkBEmw= optional @@ -799,7 +799,7 @@ hash - C+frin/RV6PMceoJWhnBHw/UiSo= + W45+n9zTkxt1E3v6cZYLzXNtDlc= optional @@ -808,7 +808,7 @@ hash - NU+8Up7T7RaEJJ6XUGU315MmJEA= + o6d6uYDAajCHTJJOXT7zDECTmIM= optional @@ -826,7 +826,7 @@ hash - WXXUfAzkoQeox52T+w/9xy/eZzU= + 9fRyIZvZMUaRTaWCda7NsPqJle0= optional @@ -835,7 +835,7 @@ hash - hdYuZq1xueHEJ8e5TeRx/9nxlJA= + L07PCZt4pHgRzMPxV0N6F2QK9kM= optional @@ -844,7 +844,7 @@ hash - PLPFBaQnQsXytVrJabv0nvald10= + b1mgRruuDPTLXfhBEjTV72kV1m0= optional @@ -862,7 +862,7 @@ hash - l0zDEsFdyHwzPuayHe8R2wkbv0c= + gi+8llNjjuFSKRkNAA7vN/mf1uA= optional @@ -871,7 +871,7 @@ hash - R9RsJCIJrFMpzTJNUsMio/R2jNs= + UNAQQTvtG7+MN/4w4ouu9ZHXfCM= optional @@ -880,7 +880,7 @@ hash - o0FtQN9F2+i8SA46MW2lvxZAFfI= + ycrHyxLA68Lf8rq4IXBVK62UpGc= optional @@ -898,7 +898,7 @@ hash - 4ylPEFzA3WhK/BiqiKjlyeehlPI= + kJLypTD4VsCOwsXiOd6700pn0Cc= optional @@ -907,7 +907,7 @@ hash - Kcse19bpeWkKxkDiEabgvpb2Dk8= + WIJIO1qR0uNQtJpVkhIarVOfgFw= optional @@ -916,7 +916,7 @@ hash - mS+H7dDl1Yn5HoNY6FXQ+INWQRw= + sGjRl91qI6175CwJYuqSYLYylJg= optional @@ -934,7 +934,7 @@ hash - DblM97MbrUGSoF8qs4qy1pFAvXw= + wPmqlbK7p5mjPDrezXrYK8CG3NA= optional @@ -943,7 +943,7 @@ hash - mk176kIJR7A90H6Qq+hi8D2Q6Vo= + 7EXAJEeeN0k32jvOHKr7Icq4644= optional @@ -952,7 +952,7 @@ hash - z6/rLqlkgii529Dut+XHavZ4Pq4= + QHLHLZGOJJ4eN75aG1K1VUHNPz8= optional @@ -970,7 +970,7 @@ hash - kWDLMC25Z+sfNh5zpNFI8c9mBOg= + 4aIS8LbPLTj63EhS7xEk+qjNzD8= optional @@ -979,7 +979,7 @@ hash - QSgvMCGfu3qwt4LSPDoITv7Zj30= + pLII26utl65JwmAFqLiMefDsrGs= optional @@ -988,7 +988,7 @@ hash - uf+l2wCxifW3p/OPcOg7gXrO7ec= + pZo0pXve6jqBertG5IixAzSpgV4= optional @@ -1006,7 +1006,7 @@ hash - 93bUtDO+GDxBXAEl9unvmFe1mWo= + 8fQxJZw+LQiExfyPaqUbNnASsWU= optional @@ -1015,7 +1015,7 @@ hash - E4Vxj5LZDhvc7xttfztZBkDwo5s= + zW5zEa6rDpqLuTDfixuKKE93E5o= optional @@ -1024,7 +1024,7 @@ hash - XF0m/MqiO9kZb/K0uWKvnIi0jbo= + 2dtbduILRWtmfjobyd2yOVhQNH4= optional @@ -1042,7 +1042,7 @@ hash - H+9mRnaSNpf3x2lnvZJQYmNOeDE= + Svc6e9pHrp1wA7rxw7oKc5HB8qQ= optional @@ -1051,7 +1051,7 @@ hash - 7VloEUr/e0D0uiCgmSYM89car10= + NtD144OppS+BPXNmsReGJoN2Qdo= optional @@ -1060,7 +1060,7 @@ hash - KRVl5KSZqqi3JII8+JbAWE/vyeM= + 5B8hYUrKag0Unyt6Uk0D2K5opL8= optional @@ -1078,7 +1078,7 @@ hash - 5qfGbw+bZ8nIzRjTdFCQ4ajYuLg= + 7HEo1dlbwSnit0+4DsAqKDz1jR4= optional @@ -1087,7 +1087,7 @@ hash - 68qUvif5bsy3gh88hEcrGvT0sg8= + FPWtaRuYrVSPrfAozq/4bSQfMK4= optional @@ -1096,7 +1096,7 @@ hash - SweZv0/gqhOhvQDoTkvh0MNpjxs= + GY/ufItfyKYpgw54TfqJlPlymb0= optional @@ -1114,7 +1114,7 @@ hash - 3ymMt+zeZFb6zTVVK2kHUBbiGsE= + YHane6xWVhvpJGf5HuoxCyQ/gDs= optional @@ -1123,7 +1123,7 @@ hash - Shn/KmVDoD3wypQA4uFjnIJqQzY= + NxM+W+qAegxK4lKy0uzCclpkVjo= optional @@ -1132,7 +1132,7 @@ hash - W/T4ULA1IJxyDbETvrpiJrnX63w= + AqJRrBMp2yA+umSXxQIQVmpnCN4= optional @@ -1150,7 +1150,7 @@ hash - dkv1LXTd6KP9qyGoGQWM/beHi58= + 5k+e1kFtgoVo77RhyhZSXpRQGOQ= optional @@ -1159,7 +1159,7 @@ hash - ZYpm1VcCFFWBaIzjYYwhekhYPDE= + l8XR02tvN10SX2aM9CtZ7BpIcqw= optional @@ -1168,7 +1168,7 @@ hash - WHCeNcsEET1G546RnCG1GQc9BTk= + burLhfFkzbPjAIqMXw1qKn94xm8= optional @@ -1186,7 +1186,7 @@ hash - M8OEz9UpXZ+CwFLwnPmpw73qCRk= + htsZnsf4S+omnk4Z8En8qOOjrPM= optional @@ -1195,7 +1195,7 @@ hash - qRwnTGgz/ZS11VE0PbfWNnLPg0o= + /9xrGwHXOdPKFp82w4OjF+Q0WG8= optional @@ -1204,7 +1204,7 @@ hash - TLk0Rv9HN/Y8bYaF3vr8kg9KPuI= + lT25Wn73ZrIgcDJsgzSvIQ97TtY= optional @@ -1222,7 +1222,7 @@ hash - 0FRDiL99dypvNgSR6/b2hEh8LC8= + K0QpkucJxh5CRA9TYJCT5+gSHZY= optional @@ -1231,7 +1231,7 @@ hash - nhRSdsw8i1SblxHBOLBvYjBPO8g= + dOxfomMC/X9MFFdsk1MyjKv1yi8= optional @@ -1240,7 +1240,7 @@ hash - 6qyk1r0zm0331mer2SxkuzuSm64= + W5vyz7ueX3DVKxQC82/3FnvJfeQ= optional @@ -1258,7 +1258,7 @@ hash - 02wDrcnMUo4dg7fm4RSe/Sy2pFs= + /iyQcDW4+Is40OSlKcWlEe9zKdo= optional @@ -1267,7 +1267,7 @@ hash - j2iSaoDJRMV3kq+UFuzkbVAojSg= + cQCWeOMdd6mZEd9k0pl3FrZDT9g= optional @@ -1276,7 +1276,7 @@ hash - Pb4ma8CWTT89suTVjHa3iQeWepg= + JIh/Ueyxh8+us+26dxQRmrPiVAE= optional @@ -1294,7 +1294,7 @@ hash - 5l2VJ1hqtebg0BM6zmyz63tMhR0= + fjnMF3XlYLFPJSpmIFizoGwOVl8= optional @@ -1303,7 +1303,7 @@ hash - w4Qf7do1kg75nGVgX0TP8MHOCOs= + Y9dabfD0a7F1cV9OuFnyQL5BIIc= optional @@ -1312,7 +1312,7 @@ hash - CT6KO7Zy073NY0kp2tcbUgEdNRo= + 5wxy4Op51XjVl1MvUlCnSUfvsj8= optional @@ -1330,7 +1330,7 @@ hash - NgeN7x6U1IHvnglysoHMw5YH7RU= + YRRVgJ26NZd9+ebTI3UGdpi35eo= optional @@ -1339,7 +1339,7 @@ hash - 5P3DitlPL1sqOb0WkiXq8ZWq2kQ= + PoeaXUHUKNIm0bkX+GNnvFHlq9w= optional @@ -1348,7 +1348,7 @@ hash - aY4PHFMl4vj5sqgVBNGxePP5CCU= + HEubU7VtIHZcWJ6RfdC038Os1gw= optional @@ -1366,7 +1366,7 @@ hash - qhLsJNXC4lbz9xO+bC41ILw8CUg= + 2pvLfCu7EiI6OkCxu3+aLyeTPcU= optional @@ -1375,7 +1375,7 @@ hash - dQk9OZiBuGL0rOXiWivc2ld9Z+4= + +xvQE3bFW1QXIUggZBlZkKn0gag= optional @@ -1384,7 +1384,7 @@ hash - TYmHdlcZRxyoGQ6FNldZKp8Xl1I= + FT+kQgUNxKGrbheU8uSqkYFSHtI= optional @@ -1393,7 +1393,7 @@ hash - 0vdFowZuJ1qLE3rDgG3BZ9SlNRw= + OnR96Z9tB0noODRSYssSs63+zGA= optional @@ -1402,7 +1402,7 @@ hash - E7e3G1hg4vqRfzno4FdzvgH0yng= + KQcqbpIyw3yhI0eEyo06cNq5MlM= optional @@ -1411,7 +1411,7 @@ hash - bm6w3bCQbsrYbFszNCANq+DHcdQ= + 6/Rgln3/89vly1RFa1gBfRhITxU= optional @@ -1420,7 +1420,7 @@ hash - 1WN5IQ6j/AsxDG2fbAuKZAwoyzM= + qO2OAmNcqk2/bSzwAjGcXTD4+PY= optional @@ -1595,11 +1595,11 @@ hash - UWIKKrtpG8ETIKMCaSRiq4ujPJs= + MHw1NrGxR116E8+4fIwJlj7xhlU= hash2 - d9LBmTLBxcQda+JzY5Y0rdqUU3ZwG0B/xUrAF68d2Xk= + I9h48457oU5WcQiRBj2su4zWt34+hDtHwnoeLWmZ7Ko= Headers/SUVersionComparisonProtocol.h @@ -1628,11 +1628,11 @@ hash - kAc+dA9KctczULg0aLWypDdBvy0= + wr5DylsSwG9e5D1UOhUWQxcyz/g= hash2 - qx9pH2muu7OaSYEeZEfIzGFTWCk/gIo7ZQ+6TExPhyA= + OWWeiknWNtWrmGQq0pZ+Hst0PnbN6WbPhGHqIhk4MOM= Modules/module.modulemap @@ -1661,33 +1661,33 @@ hash - WmC7M6tAuCZzYQbwA5YQRyp8gSg= + vcMwRErKskmkeyJJVI3Z3sof/sE= hash2 - DF5sAWodrqG3GqtUmnteKhxPsxEVxHX4Yk3PwYMWAuk= + KAQWAU9pYYHyY0ffDykJoZXUPjiewvVWowIwn5qsBNc= Resources/Autoupdate.app/Contents/MacOS/Autoupdate hash - Y0Fxy1YyUMrbR92D7MX3M0u26ns= + +dZZmoYTS+EoOzyj5DHipiL7vdA= hash2 - UxBDXxIDllZ+ofDxiiyQPyJg9/VBzaT4z5iXji+YtLY= + /CLwW6G+QiK5ETp+clGZsGSksu5/2ppP1elEQVje7VY= Resources/Autoupdate.app/Contents/MacOS/fileop hash - kd875N+pxOj629NQNLzNs+ZBJnc= + rsEt+sjfXAsfWD9h538L+27pg/s= hash2 - ZPTpaY9Le7q+6pMOzOxHLnFZsA1Sl9fhmWhJLFArpV4= + kI/01mUGzFnWLufOtr6ca07s6VBhqA7INTCKBS4xA+8= Resources/Autoupdate.app/Contents/PkgInfo @@ -1716,11 +1716,11 @@ hash - +3Tn7V2+cRw0Aw2VoWT1DNAPpkE= + ECVWRExfxyDt5uvKRD+70wc9J6s= hash2 - 5qy5Hmt7D8O4gK4CkA7/lWikR3cX9ZSe6yTyluAeOh8= + AtY9YmPv7cUlbFWP2vCyVdi3/M+XQn98wOlrIES2Dgk= Resources/Autoupdate.app/Contents/Resources/ar.lproj/Sparkle.strings @@ -1753,11 +1753,11 @@ hash - OjCfTDR+NbVLvirUPiJKJF6UiS0= + bY3rkqi/NJtXtjpK3FbV2o0gxbQ= hash2 - 06z1nY8VfM4M1SdHCc1jqewmP5Ue0g3mPDcNbeDVNIM= + RfJgT2b3STcLu71+1iU9ZcSXbfwMWG1EE1C7Wrf3xBk= optional @@ -1805,11 +1805,11 @@ hash - i3TNbMzmKR52wTyfnD/bkZ12elE= + cHZov5FaqzfNhnBo0XdRuTMT4SY= hash2 - Xl/5yA/K9T7cscvPi/4/lWUtjJlIvO+esCF4SRaguz4= + 39CdfZZ1CQQz1Gd1+Ukxo2JHl0XESoc/cqWKF091WUk= optional @@ -1870,11 +1870,11 @@ hash - vyI2nHyZlhhSXXrQGoflg8oB9Ig= + 7LLOVs76ioMwEDV8Gah+6sV/5No= hash2 - I1njQLVyH2bFsJecQOLDAB9N8q8niH7u+hqzxRqqerA= + TwklhrooHTXgV6Q9fbvvAB3mPIh7qDbEsNtUzo2fQuU= optional @@ -2117,11 +2117,11 @@ hash - 0vdFowZuJ1qLE3rDgG3BZ9SlNRw= + OnR96Z9tB0noODRSYssSs63+zGA= hash2 - ecJXF6vvj1f80iCr+Gk52cTyumQrea6H0NpOjwbbLiE= + zvMbFdgVGI0ls9vIRT+sie7dj2g1UjQu7iS+pOgyBo4= optional @@ -2143,11 +2143,11 @@ hash - bY25s0CxDdpPUjh2IkcEndg3sMc= + VHoMteoopEbbYVG87rxkm0sjkA4= hash2 - 1k5GnqzPqMTLJT0t6kcCtMrfswmTqS3vlZyIDKlcwFo= + lxIEfRslquAFN4m0UvN8ZbULT6U6J3cPAYY9sqR1HPE= Resources/DarkAqua.css @@ -2165,11 +2165,11 @@ hash - un8L4C3zlHfrCP1+qdtrsU+uHUQ= + Vjt5kOIAFdWzUgFgF/aP2v3owEc= hash2 - 0LX5vglqmxviOHMUnsQF/02e2TlaULdPqD22i3yH3tA= + F8ePDHN9JgUrW5JHoFYN8yT7d6AnZBL5ZflSVh3ri4Q= Resources/SUModelTranslation.plist @@ -2187,22 +2187,22 @@ hash - +3Tn7V2+cRw0Aw2VoWT1DNAPpkE= + ECVWRExfxyDt5uvKRD+70wc9J6s= hash2 - 5qy5Hmt7D8O4gK4CkA7/lWikR3cX9ZSe6yTyluAeOh8= + AtY9YmPv7cUlbFWP2vCyVdi3/M+XQn98wOlrIES2Dgk= Resources/ar.lproj/SUAutomaticUpdateAlert.nib hash - oDbeH//n57rFaGaLkwI8UQ/txa0= + LtkONVbhTzwCPtbjkr06qSniXCI= hash2 - dQ68sBwTswbrSiq+ls8SWXOAQ9cpeCqQBQi+Yru4z64= + CL6tBm495f4yM6z7y8UHRhtooR3NLGfDUOMHspa3d6k= optional @@ -2211,11 +2211,11 @@ hash - rj3mNv5WCDqnrsLmtCWdWwnQzJE= + JeZDdP1OuZbqkm8UKYiyH00A7ss= hash2 - 2vErcEF1YAaT6SZXgz6raIMCUQYxXdMB3QkILHlni6k= + CE1qJ1jrwUiTKTlZajb/bhplzo/rdEH6pm5cABwD/rQ= optional @@ -2224,11 +2224,11 @@ hash - xsWIpjC5TTnPtuprvEvnTUMyKYo= + Heb65H1UseXl7rEaFwVxKauBWnI= hash2 - c9whsShePvQ1tRA1xU0wB92pYmq20rnE+IWc6MwPWlw= + WUx1KM1Bz75vbTlcj3FvUEEJ3niP2QNBe7/lPioCMgY= optional @@ -2263,11 +2263,11 @@ hash - iLsEEL5N+u3x0igCMtLbvUxqiI0= + YpT086oHMS9O2TvSNLZh+39oy80= hash2 - cts6s/bHdYbmGip/jv7k0pj55p4HJFj0ROZcwO+lbL4= + YyE1WN1/ryPt2H0D9gYJv/r0SSv8VYTcxiiNeELiJIQ= optional @@ -2276,11 +2276,11 @@ hash - reUhWQTuJfS9z/Hf8LwQASnszvc= + v2ac1JQZvkm8EHZiTUc/q4aBcU0= hash2 - HUwSYNKaqdTpVIblAHt8y56HJM5ZGo94XVl+0j9Qpfs= + LWRxgLZHNGYOe63gf0aOD8zoP03Z1s7ldxndzkWbzGw= optional @@ -2289,11 +2289,11 @@ hash - AvWpT2/bR/hQ2SrkSIJn1HaAXi0= + 2ANG1NY1o8ndm0xcmHwYUvrRk6w= hash2 - DigL8qo0eo3Dcd1Pjnb2SN7WfCYMB466pjCyjM/N+u0= + dyM1bkEKAH1sW3J5pxDKHpNZ6ZJX7YH/x6jeICRqpkc= optional @@ -2302,11 +2302,11 @@ hash - OjCfTDR+NbVLvirUPiJKJF6UiS0= + bY3rkqi/NJtXtjpK3FbV2o0gxbQ= hash2 - 06z1nY8VfM4M1SdHCc1jqewmP5Ue0g3mPDcNbeDVNIM= + RfJgT2b3STcLu71+1iU9ZcSXbfwMWG1EE1C7Wrf3xBk= optional @@ -2315,11 +2315,11 @@ hash - u1F8d4d/aOeByXDdvXMugGpU/Fk= + XCqcLv38cTpbjAE4zjN/JWeT3+U= hash2 - brs9IleYaJnps9htzlB1pQR3SzgDBlHi8EzhO+dGBHE= + ivTLD912Rxy2BqIYFAQjsqh4PofwMLljqh6ncdYEdy8= optional @@ -2328,11 +2328,11 @@ hash - ZW7bZ9L3EhY/tyvqZWgYznuPaTY= + BY0imp6dA7C0GSOK81VXTJsRccM= hash2 - SDIBQ7s3g5y2vcBJ6P79ig3kkYSGLORFSwVXhMP09xc= + BZL9bUc/f5RpZHoQGkA/XXKvykMh/LwkqI+1XW14Bxk= optional @@ -2341,11 +2341,11 @@ hash - uMINTHGG6dgMjyUAYQha7LXmlFg= + Ev2Nvw9c6bVU5ZF63yVhcyNp84w= hash2 - SSiMHMhYqbVuTek2hXbaVXclcxyQLxC4wQ7GKW7Hs3k= + N3Os+6xHdP9Y/QLv2okENWzAaaY73ZZ1wAa+vhQKSWg= optional @@ -2367,11 +2367,11 @@ hash - VRG/ZYuz0KOyMjBw4bu4NIlO3MY= + i/BaQXOSENNulhl0b5jssezuU3Y= hash2 - pBFk2uov3ctfdeBe1zZCawQpB8Wc4uRFVFly419/710= + vZn/tXvSzWZPBBo0cVnIiPjRYfiMEtABs2gGlmJ3DKo= optional @@ -2380,11 +2380,11 @@ hash - cT+nRuofaW12I0wjvG697gXwMfA= + lieYpCoCaCKAA3EL3/EsBr46vqI= hash2 - OX6zOOf44FBTL/dEMERt3B5/nGvLa8BfaLT3+5PocVk= + pOQG4CEenyMCs6E53Yf2+yYR99NwtjC9ESL6Hp719iM= optional @@ -2393,11 +2393,11 @@ hash - P1qisftBIKKBMlb5+8fD2vZn8C4= + oy0dHoyKmH2uV/KCHJzCagE+QIE= hash2 - MROTTYkU1LpXor4Z0t/PYQmJbNapMi1hN3PqN3qTm7I= + aXEwUfPGaGK1ndjF84VGCstTDsw+y3qn6bW9197R/wc= optional @@ -2419,11 +2419,11 @@ hash - ccB0As39qPJ0x4XkN34YZI8IUHs= + s3rpfaKP5+1+vGc44qpcWy+h0t8= hash2 - cG40LBFmRabj9NvgWnkU1ktlhXXqYwQD/qBRmOplaE0= + 8Dy4OJ7vlhUCXCV6cjyExPoQWOtUSRnuNLpDxfel5ss= optional @@ -2432,11 +2432,11 @@ hash - 8BqXnIfQOb3RBiybY1uUgI2a0oc= + sJcnQqAH4BsB+2rz9riB7iqePh0= hash2 - lHU9xUOsSTjNngzu5IT7RYOa0xkhZPFHMdRdYTgUOJU= + oZ9SfHTeIGNZtJjH75VsT01y5Vo2tq2VCPVF8bDddeE= optional @@ -2445,11 +2445,11 @@ hash - WujzpfOdW+H1RXGYDSAWcHDghE4= + mYyXqqWSoYqVG1zNp1vopIw8r1k= hash2 - 8sKAhoOk1Fg59L9B1ivTMLhtDsfk/jOPoHQLdNEiiwk= + j3xNys0dFAL/2iqvjfz2PopHNj9kPZSLHI5SyE8Pb5c= optional @@ -2471,11 +2471,11 @@ hash - smFdnjqh5FfLp75QJkkVpDg+CPs= + Y6bIF/+bAP3t5gBwPcdqxsj4co4= hash2 - e6c/DVRcIt7/HDR6s6fclGtvSgpv8tHSEETWVffaFTA= + LK+XUVI/B5vkE00baFJQzgTVPcWQu2vfztwnjkmtAdg= optional @@ -2484,11 +2484,11 @@ hash - uQPgA8QNrJ6dkBofaA4cYiep7Nw= + L3hoxekBQAtpmyDXNhTX7kRXRtc= hash2 - barcVEzpJLLj7IF2fqx8fLfYaKNig4ysWENyX9ecMSk= + c1eSzlRx9vqCBLiF84w+iiiGeii8RIOVaoC8Ds3gndI= optional @@ -2497,11 +2497,11 @@ hash - jc/+PgCV2twCZZQSjQHHAer/o9M= + uLKIwoprHw35+b4+/KP/j9X2zVg= hash2 - GHDASo65+rZmj9G3godOHzOaBA+plsqF/Q+gh9/xVPQ= + kXFQNOUYJFVMleLIk/wvetRZoFi+Es/ChIGsKEkPdTs= optional @@ -2510,11 +2510,11 @@ hash - i3TNbMzmKR52wTyfnD/bkZ12elE= + cHZov5FaqzfNhnBo0XdRuTMT4SY= hash2 - Xl/5yA/K9T7cscvPi/4/lWUtjJlIvO+esCF4SRaguz4= + 39CdfZZ1CQQz1Gd1+Ukxo2JHl0XESoc/cqWKF091WUk= optional @@ -2523,11 +2523,11 @@ hash - t79VYhRMP0dQCdKKtn83sAtFAkU= + BoS6NAq1zyVcmkbrKJhcI9Zrezk= hash2 - /ekWm2QPndpW/HYcv0rdJxLkqjRkGoDMoILTYBpUEWk= + GtD3UAnIT5BoshJo4areAKSruPfavkvTIyNd0gjejDM= optional @@ -2536,11 +2536,11 @@ hash - BPV01tBvjSwDHnD/WkxFJ+W7eFI= + UMa1QcJf8zfpVUnIZUGFfJ64wTk= hash2 - HgGgfZG0CcxhaB8YAZyY7fXR7NmPa2QrJ3HJAtq0NhI= + 3KPglR1oBAj4L7IA3Y4fYKtWrk2kpbl7jPZwPCByWfo= optional @@ -2549,11 +2549,11 @@ hash - NrVNwqMfVUN8CR/qLP3WzI74QKg= + tre2iSm68OK3ztgNotyXuz1MkzI= hash2 - EIPFVayBB7EGZiWM0iCyDJlAtLFcTa5YJ9oS5SQIoBM= + nPkeNlTVifGs1wwWJbh4cKzN6KGsoSoFWhhX8gcD+Zc= optional @@ -2575,11 +2575,11 @@ hash - 3Jy7fCDJXPgxfGrSLnrq/BrR8Fo= + 6aUnn3XSgWKnVuYVA/PVSrwora8= hash2 - roOmNaY4r8XeA/0LuIvxyfyG0dbL9R8qin7RVs3KbOU= + QVnq+Bn52L27jHSSWCd5PGIBzAeU4HwlTMuL0+M3JMI= optional @@ -2588,11 +2588,11 @@ hash - fWlU1Y804x2510X3QDdE/kgfBjY= + k8QjxmBhk5B6v1fGnFkwwX6oakg= hash2 - XHd3Zg700vX7/XedyFMLwFCeM8dTStXSd9D7s5qQl3Y= + R5U4ry1iLGtnxFs4Ex8GdV7tpXKbo1HoH0rsSQKIO1M= optional @@ -2601,11 +2601,11 @@ hash - phFF3/dcygmnknefGj4i3cgz294= + HB5ASms7UIZfv0WaGh6tCLBEDP8= hash2 - IKx5AqlulXQOTJCPJWcWfXHip04AcQb/tu/b8qgLmDM= + QgdpF8+b+1E1FOKUQmo9gfa/0naxptxTvxgPAiBPnzc= optional @@ -2627,11 +2627,11 @@ hash - RuJWtV4NU5tNgg+IHFiksMNUfIA= + Nj5v0wIECbpjSTU74xKBngH4DeY= hash2 - zY+dWgnrRmrv5j1zVDFX0TRh8F7uDUIO7JNZASTNiLY= + iJPr/YNl1hGgBNcbjpEttX7EgNKwsu+R3oVtXyoxxV0= optional @@ -2640,11 +2640,11 @@ hash - Fx5MmhvVqSx8rSHFOIibPCl3xBs= + RPgJubd38D/WH1H6B1jSejqILE8= hash2 - CAUJN9Nut+E/KiLnEKvskkGnl3GzIgL7SaK4wkCAaNs= + KtHl8n7bnlZ3Ir0ymG0RdRWNezTCdzyBh9HO0AB2TrA= optional @@ -2653,11 +2653,11 @@ hash - ZwgBvgFW99rtuKNAPLcCPieEdM8= + cVJfS2Nx3QvdbWEq+tSt8xi9hIg= hash2 - 2jQtALwqUDzChWK+/BdSxUffDRRnqjw6maR2HjHeouk= + LTWELwsYH8j9IGZy23C/qmUvJ0/E498TrPfWsXFOM8c= optional @@ -2697,11 +2697,11 @@ hash - 3rBSNPdcL/Nl7+0rpUZqGhljLQY= + SkgPcXJYp5dizLAgiXfyl9EsPoI= hash2 - O9VtLe/h827vQxnbkRD4puhEtK/BHASbao9oBqKkln0= + 2h4d04V7H95/KuIy1kBjzDQqtfxnZrRzKlxEjk3NYRo= optional @@ -2710,11 +2710,11 @@ hash - +OYMTGeQfzz+9ImWkCbDKJG4N6w= + 47iMWOA+94RZGJW+QJCeM4xOUsA= hash2 - Dkj72VU5xRyMciYhJaXanrauMtbMEiE9xDd/RsEKtao= + ReDJwTVXlm8iJWToPp6haL3A35LkgyNtEYfEYQ38l+A= optional @@ -2723,11 +2723,11 @@ hash - eWFDPqngmPB+nrvPXjpU207PI9w= + S2YV0JmEwfPtYsMBBMuvddrPEis= hash2 - vHYoiJA75oqy6uH3P2vblP9/RSwVaKDIO6kIlzx4g/M= + s4Q/66AafiJ25LzYFLwYJRMdqr1W2awMSkxlZjy9JtM= optional @@ -2736,11 +2736,11 @@ hash - vyI2nHyZlhhSXXrQGoflg8oB9Ig= + 7LLOVs76ioMwEDV8Gah+6sV/5No= hash2 - I1njQLVyH2bFsJecQOLDAB9N8q8niH7u+hqzxRqqerA= + TwklhrooHTXgV6Q9fbvvAB3mPIh7qDbEsNtUzo2fQuU= optional @@ -2749,11 +2749,11 @@ hash - KqZCmcd+fhq4qCb7DbEOVkCcC5M= + PfYCBbOThC1gBDzoxD+ijdyQ3T0= hash2 - u6rYN30G+CjP88+9L3cf4IevFhrHkKalaX+R0Job43o= + C9vH4mEYy0VzQEvjXYfCMPM4ggBQF1APABRkUOUQwPA= optional @@ -2762,11 +2762,11 @@ hash - VjGGKPTkcvGmYWc2ejOXIOR2Pec= + 6RlHCvHc9GNh1M7iJhvn12iFGpg= hash2 - f++tXz3pkLWUBCHeqRoQyUFy1e8wbz2nK0Amh00bag0= + 8vAkRUe47lFmMm7zUZM55/XRK21KahmSbRy0Axp6gw0= optional @@ -2775,11 +2775,11 @@ hash - 5EiQOlMoRKSojP+6FNbyMwNhgVk= + 1Yz7vPBCFCly2cHjtbQJPK9PzjE= hash2 - ry1VDAek0QDeYVURAQ4/zvNwMxxl0K3Ke6cJgWCFvNY= + GyEkgG0mW1s+T6Nz7aQ/eEvLYoysvr7BYots62oHX1w= optional @@ -2801,11 +2801,11 @@ hash - ab4gaq47381T+4qaedPAv/JPk6o= + 9eOJ/dQvTMu45Z1UowMPaKHYQOI= hash2 - 6ca8INJMEv0U7uSPFflECJqr251vmLQ53o/cps10vCs= + QpgLimdJiwdp2DVF/DMQyJ2Zg8L2ihsreE7vcI8Uqh0= optional @@ -2814,11 +2814,11 @@ hash - HC1ZY4ZwpdC8g7whfpr8B68+Wsg= + F0aP96zh7QOSkAdFsBlIzBhmCIg= hash2 - DTba0O8vZoZc3qpArrUqtl/IOWetvAix+U2lOlvSOyE= + t7A1i/lrse5T6UZtyfTdB/7HRH5vPNuOj2I+QkIjAEI= optional @@ -2827,11 +2827,11 @@ hash - KEnwS7P4M7RXREXDBrYzFPAB5VU= + xRBgLwOX0xZhrXGjHDHL6S+qCQc= hash2 - Yq55K5ud/RB3Wot/55dgW5/njRC/el2lgpBybaKJU18= + VWBW48lOFIc7lprCjCV9s4BfRYheTgsJnhe5dnQbqOY= optional @@ -2853,11 +2853,11 @@ hash - /GUIYGR9WmveeKz5MV+ulysFDGE= + JXGMS3rtry8HTWEbBibxVCkBEmw= hash2 - qbC2gUIWl9w6DM8zYA93h7iq2wBmVuEwKk4fT0Rm5bw= + 5+DJlDvCzlPxtarex6vBp6GBNUjc//XUg1dP+YKgQvo= optional @@ -2866,11 +2866,11 @@ hash - C+frin/RV6PMceoJWhnBHw/UiSo= + W45+n9zTkxt1E3v6cZYLzXNtDlc= hash2 - wIkClqPQf4IXnoNjs+HkDal17JIkVt2EHOlGgYO/H/w= + dMHKLXO9jQ/ephXEzJ8zaCiJ2TD94Xdtlfwqn0liUVo= optional @@ -2879,11 +2879,11 @@ hash - NU+8Up7T7RaEJJ6XUGU315MmJEA= + o6d6uYDAajCHTJJOXT7zDECTmIM= hash2 - OjABEzLU+FuhNACHA+RNl1F0avqHGhKvVesU+kuWrHc= + abK36qjugFrOyJCWuehmLWtrUUaY2xV+kVIPmNJXKjA= optional @@ -2905,11 +2905,11 @@ hash - WXXUfAzkoQeox52T+w/9xy/eZzU= + 9fRyIZvZMUaRTaWCda7NsPqJle0= hash2 - EeiyXpNY0m79CbZ/K5HAW+kmg26NXDLBJxEHPscuSVU= + 17Hm2P7maddnurefS4zzxjw/i66hgAqMfPCnw5etp8c= optional @@ -2918,11 +2918,11 @@ hash - hdYuZq1xueHEJ8e5TeRx/9nxlJA= + L07PCZt4pHgRzMPxV0N6F2QK9kM= hash2 - nLQRmyyyE+47KEGz+XIIPKURIitfBD8zHjx1FRw1Rig= + qzSS0s4cMsrK7155WvW8tp+ToVcFs5pmCwrBC9Lr/ec= optional @@ -2931,11 +2931,11 @@ hash - PLPFBaQnQsXytVrJabv0nvald10= + b1mgRruuDPTLXfhBEjTV72kV1m0= hash2 - yX5t1+2etONNwDG/m2gZsp3+Bff/OKNyNOLDFs7l3FQ= + 5nEPrrpTyzn6ealGjKbkHDtrZ2hvu6zXmQjlL7x8UGY= optional @@ -2957,11 +2957,11 @@ hash - l0zDEsFdyHwzPuayHe8R2wkbv0c= + gi+8llNjjuFSKRkNAA7vN/mf1uA= hash2 - vQKakhmXQaXzDmNZ3obfuFn64bN4WryGbv4PhhFQHwg= + xhSLkCd/oWSClxzjFJOGmPOAS3u0od2to6thPF+1hi8= optional @@ -2970,11 +2970,11 @@ hash - R9RsJCIJrFMpzTJNUsMio/R2jNs= + UNAQQTvtG7+MN/4w4ouu9ZHXfCM= hash2 - GXyd600apB2bkqxvoE1TGtXaubIgM5Ax/FVnutaFaDM= + rU7gnpi3PsnD0n0noPJN7LKUwxXFHCjixcW7WHa1q2Y= optional @@ -2983,11 +2983,11 @@ hash - o0FtQN9F2+i8SA46MW2lvxZAFfI= + ycrHyxLA68Lf8rq4IXBVK62UpGc= hash2 - KwRitjy5RjA9+Y1cWmvv2CPfybp1Uyx3sl3VWZLk0gM= + bvNquF3puRjnZvG2nQUQsz5WyXUsO3LC6BCtEjw2+9g= optional @@ -3009,11 +3009,11 @@ hash - 4ylPEFzA3WhK/BiqiKjlyeehlPI= + kJLypTD4VsCOwsXiOd6700pn0Cc= hash2 - rqcn7eEk4ZPHhVzzdFKnA7+WveGWS5Lph3/wPCx4Ftc= + k7N16zCtXUz9SCO2rA2PSAb+B9zsqeF9kPAlIPeRQq0= optional @@ -3022,11 +3022,11 @@ hash - Kcse19bpeWkKxkDiEabgvpb2Dk8= + WIJIO1qR0uNQtJpVkhIarVOfgFw= hash2 - p8QGRW/hKOb2t9wFm6JsGGmu5w5UdmjVs4fiCui5KZA= + 8g/ElSO4yIXKBPWT/sbST8vdzCsbEVIeHZSxJbCzJ4M= optional @@ -3035,11 +3035,11 @@ hash - mS+H7dDl1Yn5HoNY6FXQ+INWQRw= + sGjRl91qI6175CwJYuqSYLYylJg= hash2 - Z2MTlzTbGARVxBQvKQ452Bkq9u4BnPgCG9ZlOOnJDoY= + /oxFNXMvdoD2D7ykStspwXUrcEpRCaVbYebxNXyRuI4= optional @@ -3061,11 +3061,11 @@ hash - DblM97MbrUGSoF8qs4qy1pFAvXw= + wPmqlbK7p5mjPDrezXrYK8CG3NA= hash2 - 5OgJjQxAR7yLmtz6RBIsr5OkwcXnth/cM63p2FvgOw8= + zV9zmt6+b1fbS8Nzwh35PAkW5vdYcJ64kjUjQyde+Mo= optional @@ -3074,11 +3074,11 @@ hash - mk176kIJR7A90H6Qq+hi8D2Q6Vo= + 7EXAJEeeN0k32jvOHKr7Icq4644= hash2 - pU7sKL/A7sGeR2YEaEIeUGlJVwknXecQJwROC5+SOuQ= + 3I8r+QxaqIEqBcdZogXU5VuDg87Ls1S5Ss1nhmfM8Po= optional @@ -3087,11 +3087,11 @@ hash - z6/rLqlkgii529Dut+XHavZ4Pq4= + QHLHLZGOJJ4eN75aG1K1VUHNPz8= hash2 - J/b7Dlfe9gRCdvIhwT49YgjY4NCJbixIAQ1iDQvYb7U= + arRlqOWae64Pqn6yNw466S0RNtPGSxvbi7FEd00g1x8= optional @@ -3113,11 +3113,11 @@ hash - kWDLMC25Z+sfNh5zpNFI8c9mBOg= + 4aIS8LbPLTj63EhS7xEk+qjNzD8= hash2 - nB3ArKP+IGttgVDlWptopBUWsiW7pUEg1SexiKHRpeg= + PvUb+gVq9mfBJ4c4Rp3cyMOr6Fw7EqVwOSYCXdskwUA= optional @@ -3126,11 +3126,11 @@ hash - QSgvMCGfu3qwt4LSPDoITv7Zj30= + pLII26utl65JwmAFqLiMefDsrGs= hash2 - MYMDphfT1GFsLte5/xEl+sPWNm1UZ/WHfkSku7xucAQ= + KNo3HyQuwczwWYBLgpAwz1nk4Lo/IuCN4SZpFhn8diY= optional @@ -3139,11 +3139,11 @@ hash - uf+l2wCxifW3p/OPcOg7gXrO7ec= + pZo0pXve6jqBertG5IixAzSpgV4= hash2 - yyYkFwGRv6WZVMDrQWsMQ02vJnELSDjwxkQf2hdtEtk= + ILzDGh3jJc3hPKR/ADk0jiaDQaHZu7Zq8YLRXT+OXjc= optional @@ -3170,11 +3170,11 @@ hash - 93bUtDO+GDxBXAEl9unvmFe1mWo= + 8fQxJZw+LQiExfyPaqUbNnASsWU= hash2 - QKkX1N4sEhMe7SjVGf/bu8FiVf+NExALLtf9w1suM0A= + 7Xu6H76LF/BEqK9o0LJHpt54NV3JbY/TPoinZv9GfSQ= optional @@ -3183,11 +3183,11 @@ hash - E4Vxj5LZDhvc7xttfztZBkDwo5s= + zW5zEa6rDpqLuTDfixuKKE93E5o= hash2 - X+MqqDxYn3dZQ6CToFhySC7HpWnL3gnWKXHqoC79jcw= + fbgvSsPkysitkmLfP26OmYpP/r+044gpfMHqQoQp9Ns= optional @@ -3196,11 +3196,11 @@ hash - XF0m/MqiO9kZb/K0uWKvnIi0jbo= + 2dtbduILRWtmfjobyd2yOVhQNH4= hash2 - qz2/kSLfvNv6AT4fTkGVtPL4dgdZUVB1kEpLziLBKKs= + 18VMio0CRtcvr8i0M+O3/t41QS15KVxSGxoVhQYapxE= optional @@ -3222,11 +3222,11 @@ hash - H+9mRnaSNpf3x2lnvZJQYmNOeDE= + Svc6e9pHrp1wA7rxw7oKc5HB8qQ= hash2 - jYB20+6wcyncLcSLxsM3ttyN+vgEUqpYwMIO24URR18= + L4KDh1UJEm3ta+qgzCe3s3RI7xXrAY8y5h5eqneS3Uo= optional @@ -3235,11 +3235,11 @@ hash - 7VloEUr/e0D0uiCgmSYM89car10= + NtD144OppS+BPXNmsReGJoN2Qdo= hash2 - rAGAuAtK5sQllVDRJhBK7Ad9lDQiCIAq52juKTIIR0g= + NOQ75dz/Mq7PLhwssExcWXdtTFQzx8m/lLpLBDCaZCI= optional @@ -3248,11 +3248,11 @@ hash - KRVl5KSZqqi3JII8+JbAWE/vyeM= + 5B8hYUrKag0Unyt6Uk0D2K5opL8= hash2 - J0mpkmwJqhfdt+rXpPy1h0DuPIHwDPnH24upIZoHyF0= + D42TQ5lV8E73WOOXTsUDSu2jqOFUt1+WMcLUTVab8W8= optional @@ -3274,11 +3274,11 @@ hash - 5qfGbw+bZ8nIzRjTdFCQ4ajYuLg= + 7HEo1dlbwSnit0+4DsAqKDz1jR4= hash2 - fPjA/C43Um7wWvUaur323ogQW0AuyPed11ObgYGvnZU= + KUqcmkrRCh+XjXh9F7fudt94MreG4bKqDh1PLat/FpI= optional @@ -3287,11 +3287,11 @@ hash - 68qUvif5bsy3gh88hEcrGvT0sg8= + FPWtaRuYrVSPrfAozq/4bSQfMK4= hash2 - BJcZCaOTTIniVHe6UVhTM64qvlF1YJjpbVMjcR49RnE= + 2mIpfTwoRvVuhY/Aa3Bqw5VsjpV93xFNcBMQG83Q8DU= optional @@ -3300,11 +3300,11 @@ hash - SweZv0/gqhOhvQDoTkvh0MNpjxs= + GY/ufItfyKYpgw54TfqJlPlymb0= hash2 - Kz5vNOAnbJxLThCGzwuqO6EiiHX9RlZzMMQvEnWUZZQ= + hMvl0YhsMlkusdQxVcUiUDeQQqNn/KFwXfIqWaDSrG0= optional @@ -3326,11 +3326,11 @@ hash - 3ymMt+zeZFb6zTVVK2kHUBbiGsE= + YHane6xWVhvpJGf5HuoxCyQ/gDs= hash2 - X7YCJx6kmSYPVxAUo3p1eYRwgD7S5hBHZgBQOZQv8Qs= + qwuyYXCO4H5IuXiRhZR3ucGl5S1CtG2e7kxxCkM8vtA= optional @@ -3339,11 +3339,11 @@ hash - Shn/KmVDoD3wypQA4uFjnIJqQzY= + NxM+W+qAegxK4lKy0uzCclpkVjo= hash2 - Vxdy+ff5uN+MXH+NI2M6HpJdJvwpXqhAEtGx2mO0eUU= + Kvykt9h+o+SUuINROlMCXornVL/uEH2Uz5Kd0bNSm6k= optional @@ -3352,11 +3352,11 @@ hash - W/T4ULA1IJxyDbETvrpiJrnX63w= + AqJRrBMp2yA+umSXxQIQVmpnCN4= hash2 - P6Zo/1jCMYHERVwoRx+khhdvH/u5iSsm3+RRCwNMfAg= + 7Guwtd2PDpjTWg/qX1UODxgRfQDDxNUgN4qr4Siv/Cc= optional @@ -3378,11 +3378,11 @@ hash - dkv1LXTd6KP9qyGoGQWM/beHi58= + 5k+e1kFtgoVo77RhyhZSXpRQGOQ= hash2 - J5G58cAJGJ2pBsqTcrNOkofcgh2VfGB+0uws94G6/XU= + qZSxDMjtIXyNwOZYeUz2g9w6NFmKFStqy5UbKU9N3BA= optional @@ -3391,11 +3391,11 @@ hash - ZYpm1VcCFFWBaIzjYYwhekhYPDE= + l8XR02tvN10SX2aM9CtZ7BpIcqw= hash2 - 6cfM72jyl2AyPw5m9Th9KetQkc4sfI9UbLDBu6cTLfs= + fD0W6cMr/MZ0C0qrsMD3jEbXdK+eq8L7tl87ZPDspmY= optional @@ -3404,11 +3404,11 @@ hash - WHCeNcsEET1G546RnCG1GQc9BTk= + burLhfFkzbPjAIqMXw1qKn94xm8= hash2 - gOYxvZJa69CV4kNRXhXrAUJXJ2q8G3hoIi92tYheA+I= + D5XPrSBItdufc2zVCFazX3SEmRVqQBdCZ0ADlLmHE4E= optional @@ -3430,11 +3430,11 @@ hash - M8OEz9UpXZ+CwFLwnPmpw73qCRk= + htsZnsf4S+omnk4Z8En8qOOjrPM= hash2 - AEBmaE/8o6IVDOwbRj2uIV9ulZZbNumwcgRnx2PRX3M= + 9kzvdHcdVqdxsioITBt+Am06twXcJpKMreMKHDDj4RY= optional @@ -3443,11 +3443,11 @@ hash - qRwnTGgz/ZS11VE0PbfWNnLPg0o= + /9xrGwHXOdPKFp82w4OjF+Q0WG8= hash2 - UY1iVEmOI8TR2drCQMvPEnzmLwf4PFrjsZAbsRIhqWY= + r48ahwyC8EFi+44X/EtUfWvh8QCu9klpjqwwwzQHiXE= optional @@ -3456,11 +3456,11 @@ hash - TLk0Rv9HN/Y8bYaF3vr8kg9KPuI= + lT25Wn73ZrIgcDJsgzSvIQ97TtY= hash2 - GauWEEqjnCIluWc2cIye1VCm3+HMs+33/ZvlpKA+mrI= + L8TvfX3/5nLCXk5oNeUzyieunqgEUrKzk/t+6Ldxn/0= optional @@ -3482,11 +3482,11 @@ hash - 0FRDiL99dypvNgSR6/b2hEh8LC8= + K0QpkucJxh5CRA9TYJCT5+gSHZY= hash2 - mG/8PYApBOsVBpFsNdtopxfzO+fhFwdGb1fDlN9X3nM= + 2GEt92QWRuf/s8NnoWD/HidalRNoLUoeJoC7UM3Y2Ng= optional @@ -3495,11 +3495,11 @@ hash - nhRSdsw8i1SblxHBOLBvYjBPO8g= + dOxfomMC/X9MFFdsk1MyjKv1yi8= hash2 - 3xO38LcvSzV2aayRGeqxuwRpeAHtVtbW97n30hTtHJg= + wIPOqj0JUePKauMIl6sT8YUjoxw1q36g+rrQvwkxfw4= optional @@ -3508,11 +3508,11 @@ hash - 6qyk1r0zm0331mer2SxkuzuSm64= + W5vyz7ueX3DVKxQC82/3FnvJfeQ= hash2 - pNhcoQht+GSCe3u2VN5VMnksoSO4T/x74rgSR8e5kYo= + C0r3bNAO7WAAZa4WiYUeBQMt+kmEndHyzPT1//HBsYo= optional @@ -3534,11 +3534,11 @@ hash - 02wDrcnMUo4dg7fm4RSe/Sy2pFs= + /iyQcDW4+Is40OSlKcWlEe9zKdo= hash2 - u2L+Ej2lKhOG+lt9pl3u/uFrIXqQRz5/KYWiLvs7DmQ= + gFeu5nmtM/aL1yTSsW9TPh9ZdN8r/lX5jhns53LlcfA= optional @@ -3547,11 +3547,11 @@ hash - j2iSaoDJRMV3kq+UFuzkbVAojSg= + cQCWeOMdd6mZEd9k0pl3FrZDT9g= hash2 - a+GnhfwduPlBKDaFP4pbkqIWkjh5Z3zrRFnk5+z3N5I= + vmbxfC0cI7IAAQRNDQ43V6vocH93TiejQmBr23NDAlQ= optional @@ -3560,11 +3560,11 @@ hash - Pb4ma8CWTT89suTVjHa3iQeWepg= + JIh/Ueyxh8+us+26dxQRmrPiVAE= hash2 - OZ8/AwcFW8AnwDwmcB0wJSewEu1uLmk7AVahLPbiVyI= + Hbc+V8H4hfQh3PucUY1S+6vXRBZErhTaZLYJ0jQooLo= optional @@ -3586,11 +3586,11 @@ hash - 5l2VJ1hqtebg0BM6zmyz63tMhR0= + fjnMF3XlYLFPJSpmIFizoGwOVl8= hash2 - +1xo5rrW5YkvwMXLySevTi8kqkSdwcxdS8NnTjcfOA8= + 3T/cO/cEIAM8QBGVg53bYvcYseEMPOhn0C+yReVVJEU= optional @@ -3599,11 +3599,11 @@ hash - w4Qf7do1kg75nGVgX0TP8MHOCOs= + Y9dabfD0a7F1cV9OuFnyQL5BIIc= hash2 - Xc85Ymsn5+Gfq4XBPGT7FXZaNCnkcbdnsYhjrdf8fw8= + qwss8xg3cxWWQXqCLxXd6z1ygf6MHYjMDKtVGzTpF0M= optional @@ -3612,11 +3612,11 @@ hash - CT6KO7Zy073NY0kp2tcbUgEdNRo= + 5wxy4Op51XjVl1MvUlCnSUfvsj8= hash2 - LLtC9hMEtJiFkq2WjI6LK5NTo/dKtGHrnZPpTu8R8VU= + eXL2eqxEpbACqNQkixNqqVrLeqRbdnpPCndQcIXqdas= optional @@ -3638,11 +3638,11 @@ hash - NgeN7x6U1IHvnglysoHMw5YH7RU= + YRRVgJ26NZd9+ebTI3UGdpi35eo= hash2 - hJvGUThsw01zx2VSDgANljwnztqw6X4E6LYqGTafDOk= + /lUZP3n163WFPUjg+ohhY7pnbmtrxuc164ew0tFmDd4= optional @@ -3651,11 +3651,11 @@ hash - 5P3DitlPL1sqOb0WkiXq8ZWq2kQ= + PoeaXUHUKNIm0bkX+GNnvFHlq9w= hash2 - 5RfdwO9tONR0Be13RKAI93KHTfHTkwP3UVE3Pmgvrwg= + Pmyouw5QFzbN7VYg1RXFNm3IB4jOmZagTi9k8g2CyQE= optional @@ -3664,11 +3664,11 @@ hash - aY4PHFMl4vj5sqgVBNGxePP5CCU= + HEubU7VtIHZcWJ6RfdC038Os1gw= hash2 - A2qcg9s1wwOO5ybjmzy3+svoSbceqrK/NCshSDYyRdU= + 7ljWihx3qnfD/0BWdbNtzQirBF95hZ1sSXu5vTiVHe0= optional @@ -3690,11 +3690,11 @@ hash - qhLsJNXC4lbz9xO+bC41ILw8CUg= + 2pvLfCu7EiI6OkCxu3+aLyeTPcU= hash2 - lKSMzLmYxfhhNJM9lKXxXxLgtoEB8N78Fqq3FfQguHc= + tu9oMdBCiHiyRSJMEmm5x3oGY3aCnmwXPsRf1hjj7fY= optional @@ -3703,11 +3703,11 @@ hash - dQk9OZiBuGL0rOXiWivc2ld9Z+4= + +xvQE3bFW1QXIUggZBlZkKn0gag= hash2 - +GlPCq3h0uvVX3/pbHT70nCYcCTBUU4P09xZeodkbUc= + b6nNjM4vCBrXBbjH5GtbkPjZjJyMeSSBXO/tCRn+LFY= optional @@ -3716,11 +3716,11 @@ hash - TYmHdlcZRxyoGQ6FNldZKp8Xl1I= + FT+kQgUNxKGrbheU8uSqkYFSHtI= hash2 - Q6gWz+lFSfZb5n7fs9kPa61ZVmKklBCDYAPctup8+l4= + 2J873kYqy/0EyE6QXT6tqYkydTGcrw3/Ncv9cnSRl7M= optional @@ -3729,11 +3729,11 @@ hash - 0vdFowZuJ1qLE3rDgG3BZ9SlNRw= + OnR96Z9tB0noODRSYssSs63+zGA= hash2 - ecJXF6vvj1f80iCr+Gk52cTyumQrea6H0NpOjwbbLiE= + zvMbFdgVGI0ls9vIRT+sie7dj2g1UjQu7iS+pOgyBo4= optional @@ -3742,11 +3742,11 @@ hash - E7e3G1hg4vqRfzno4FdzvgH0yng= + KQcqbpIyw3yhI0eEyo06cNq5MlM= hash2 - ajeSjYpa3DsZGQzDVK9kEkpwv44C/eyrIxbxU+SHRW4= + POFOdG9uGjcVXkx39sW2Rwl2FJ2zs6A007yF1UpDskE= optional @@ -3755,11 +3755,11 @@ hash - bm6w3bCQbsrYbFszNCANq+DHcdQ= + 6/Rgln3/89vly1RFa1gBfRhITxU= hash2 - TQgKt3xRvEsmHbRLgWIJxg/xYVEnmDxUc7favyLd/10= + AFd6Yy2xbmYtz1+r9u+r9qNka3oTzho3/n3DCwxWKoE= optional @@ -3768,11 +3768,11 @@ hash - 1WN5IQ6j/AsxDG2fbAuKZAwoyzM= + qO2OAmNcqk2/bSzwAjGcXTD4+PY= hash2 - mlYhm7xduytdXH7U9j6ytinOA28ueShg37NKsyReI+k= + JNnNodE8g22fkHlnQzxC9vap/jefD5NkjUjmErvl940= optional diff --git a/Pods/Sparkle/bin/BinaryDelta b/Pods/Sparkle/bin/BinaryDelta index 1dab42c2b..2e924b92d 100755 Binary files a/Pods/Sparkle/bin/BinaryDelta and b/Pods/Sparkle/bin/BinaryDelta differ diff --git a/Pods/Sparkle/bin/generate_appcast b/Pods/Sparkle/bin/generate_appcast index 36e6ee1e3..20549c044 100755 Binary files a/Pods/Sparkle/bin/generate_appcast and b/Pods/Sparkle/bin/generate_appcast differ diff --git a/Pods/Sparkle/bin/generate_keys b/Pods/Sparkle/bin/generate_keys index 6f86e53bd..2dfbb29fd 100755 Binary files a/Pods/Sparkle/bin/generate_keys and b/Pods/Sparkle/bin/generate_keys differ diff --git a/Pods/Sparkle/bin/sign_update b/Pods/Sparkle/bin/sign_update index 6eedf0e1a..8193e1f56 100755 Binary files a/Pods/Sparkle/bin/sign_update and b/Pods/Sparkle/bin/sign_update differ diff --git a/Pods/Target Support Files/Sparkle/Sparkle-copy-dsyms.sh b/Pods/Target Support Files/Sparkle/Sparkle-copy-dsyms.sh new file mode 100755 index 000000000..bb6c44e7e --- /dev/null +++ b/Pods/Target Support Files/Sparkle/Sparkle-copy-dsyms.sh @@ -0,0 +1,85 @@ +#!/bin/sh +set -e +set -u +set -o pipefail + +function on_error { + echo "$(realpath -mq "${0}"):$1: error: Unexpected failure" +} +trap 'on_error $LINENO' ERR + +# Used as a return value for each invocation of `strip_invalid_archs` function. +STRIP_BINARY_RETVAL=0 + +# Strip invalid architectures +strip_invalid_archs() { + binary="$1" + warn_missing_arch=${2:-true} + # Get architectures for current target binary + binary_archs="$(lipo -info "$binary" | rev | cut -d ':' -f1 | awk '{$1=$1;print}' | rev)" + # Intersect them with the architectures we are building for + intersected_archs="$(echo ${ARCHS[@]} ${binary_archs[@]} | tr ' ' '\n' | sort | uniq -d)" + # If there are no archs supported by this binary then warn the user + if [[ -z "$intersected_archs" ]]; then + if [[ "$warn_missing_arch" == "true" ]]; then + echo "warning: [CP] Vendored binary '$binary' contains architectures ($binary_archs) none of which match the current build architectures ($ARCHS)." + fi + STRIP_BINARY_RETVAL=1 + return + fi + stripped="" + for arch in $binary_archs; do + if ! [[ "${ARCHS}" == *"$arch"* ]]; then + # Strip non-valid architectures in-place + lipo -remove "$arch" -output "$binary" "$binary" + stripped="$stripped $arch" + fi + done + if [[ "$stripped" ]]; then + echo "Stripped $binary of architectures:$stripped" + fi + STRIP_BINARY_RETVAL=0 +} + +# This protects against multiple targets copying the same framework dependency at the same time. The solution +# was originally proposed here: https://lists.samba.org/archive/rsync/2008-February/020158.html +RSYNC_PROTECT_TMP_FILES=(--filter "P .*.??????") + +# Copies and strips a vendored dSYM +install_dsym() { + local source="$1" + warn_missing_arch=${2:-true} + if [ -r "$source" ]; then + # Copy the dSYM into the targets temp dir. + echo "rsync --delete -av "${RSYNC_PROTECT_TMP_FILES[@]}" --filter \"- CVS/\" --filter \"- .svn/\" --filter \"- .git/\" --filter \"- .hg/\" --filter \"- Headers\" --filter \"- PrivateHeaders\" --filter \"- Modules\" \"${source}\" \"${DERIVED_FILES_DIR}\"" + rsync --delete -av "${RSYNC_PROTECT_TMP_FILES[@]}" --filter "- CVS/" --filter "- .svn/" --filter "- .git/" --filter "- .hg/" --filter "- Headers" --filter "- PrivateHeaders" --filter "- Modules" "${source}" "${DERIVED_FILES_DIR}" + + local basename + basename="$(basename -s .dSYM "$source")" + binary_name="$(ls "$source/Contents/Resources/DWARF")" + binary="${DERIVED_FILES_DIR}/${basename}.dSYM/Contents/Resources/DWARF/${binary_name}" + + # Strip invalid architectures from the dSYM. + if [[ "$(file "$binary")" == *"Mach-O "*"dSYM companion"* ]]; then + strip_invalid_archs "$binary" "$warn_missing_arch" + fi + if [[ $STRIP_BINARY_RETVAL == 0 ]]; then + # Move the stripped file into its final destination. + echo "rsync --delete -av "${RSYNC_PROTECT_TMP_FILES[@]}" --links --filter \"- CVS/\" --filter \"- .svn/\" --filter \"- .git/\" --filter \"- .hg/\" --filter \"- Headers\" --filter \"- PrivateHeaders\" --filter \"- Modules\" \"${DERIVED_FILES_DIR}/${basename}.framework.dSYM\" \"${DWARF_DSYM_FOLDER_PATH}\"" + rsync --delete -av "${RSYNC_PROTECT_TMP_FILES[@]}" --links --filter "- CVS/" --filter "- .svn/" --filter "- .git/" --filter "- .hg/" --filter "- Headers" --filter "- PrivateHeaders" --filter "- Modules" "${DERIVED_FILES_DIR}/${basename}.dSYM" "${DWARF_DSYM_FOLDER_PATH}" + else + # The dSYM was not stripped at all, in this case touch a fake folder so the input/output paths from Xcode do not reexecute this script because the file is missing. + touch "${DWARF_DSYM_FOLDER_PATH}/${basename}.dSYM" + fi + fi +} + +# Copies the bcsymbolmap files of a vendored framework +install_bcsymbolmap() { + local bcsymbolmap_path="$1" + local destination="${BUILT_PRODUCTS_DIR}" + echo "rsync --delete -av "${RSYNC_PROTECT_TMP_FILES[@]}" --filter "- CVS/" --filter "- .svn/" --filter "- .git/" --filter "- .hg/" --filter "- Headers" --filter "- PrivateHeaders" --filter "- Modules" "${bcsymbolmap_path}" "${destination}"" + rsync --delete -av "${RSYNC_PROTECT_TMP_FILES[@]}" --filter "- CVS/" --filter "- .svn/" --filter "- .git/" --filter "- .hg/" --filter "- Headers" --filter "- PrivateHeaders" --filter "- Modules" "${bcsymbolmap_path}" "${destination}" +} + +install_dsym "${PODS_ROOT}/Sparkle/Sparkle.framework.dSYM"