From 8c737981954a3ffff5cb7c5a6fc4b881ebe369e5 Mon Sep 17 00:00:00 2001 From: cranci <100066266+cranci1@users.noreply.github.com> Date: Fri, 25 Apr 2025 17:38:29 +0200 Subject: [PATCH] many improvements (#107) * few player bug fixes (#104) * icloud safe checking * more tests * removed ffmpeg sorry * test * Revert "test" This reverts commit cbf7412d47b4c02cd5263e30e969c15b454e6883. * custom player stuffs idk if it builds * fire Seiike moment * ok my fault this time * Create banner1.png * seiike ahh moment * added light mode banner * Update EpisodeCell.swift * seiike ahh moment x2 * ops * fixed intros skipper buttons * fixed pan crashes * added speed indicator for hold speed --------- Co-authored-by: Seiike <122684677+Seeike@users.noreply.github.com> --- .../DownloadManager/DownloadManager.swift | 211 -------- .../Components/MusicProgressSlider.swift | 6 +- .../CustomPlayer/CustomPlayer.swift | 466 +++++++++++------- .../iCloudSyncManager/iCloudSyncManager.swift | 156 +++--- Sora/Views/LibraryView/LibraryManager.swift | 2 +- Sora/Views/LibraryView/LibraryView.swift | 24 +- .../EpisodeCell/EpisodeCell.swift | 14 +- .../SettingsSubViews/SettingsViewPlayer.swift | 2 +- Sulfur.xcodeproj/project.pbxproj | 29 -- .../xcshareddata/swiftpm/Package.resolved | 18 - assets/banner1.png | Bin 0 -> 185325 bytes 11 files changed, 414 insertions(+), 514 deletions(-) delete mode 100644 Sora/Utils/DownloadManager/DownloadManager.swift create mode 100644 assets/banner1.png diff --git a/Sora/Utils/DownloadManager/DownloadManager.swift b/Sora/Utils/DownloadManager/DownloadManager.swift deleted file mode 100644 index 78d2b08..0000000 --- a/Sora/Utils/DownloadManager/DownloadManager.swift +++ /dev/null @@ -1,211 +0,0 @@ -// -// DownloadManager.swift -// Sulfur -// -// Created by Francesco on 09/03/25. -// - -import Foundation -import FFmpegSupport -import UIKit - -class DownloadManager { - static let shared = DownloadManager() - - private var backgroundTaskIdentifier: UIBackgroundTaskIdentifier = .invalid - private var activeConversions = [String: Bool]() - - private init() { - NotificationCenter.default.addObserver(self, selector: #selector(applicationWillResignActive), name: UIApplication.willResignActiveNotification, object: nil) - } - - @objc private func applicationWillResignActive() { - if !activeConversions.isEmpty { - backgroundTaskIdentifier = UIApplication.shared.beginBackgroundTask { [weak self] in - self?.endBackgroundTask() - } - } - } - - private func endBackgroundTask() { - if backgroundTaskIdentifier != .invalid { - UIApplication.shared.endBackgroundTask(backgroundTaskIdentifier) - backgroundTaskIdentifier = .invalid - } - } - - func downloadAndConvertHLS(from url: URL, title: String, episode: Int, subtitleURL: URL? = nil, module: ScrapingModule, completion: @escaping (Bool, URL?) -> Void) { - guard let documentsDirectory = FileManager.default.urls(for: .documentDirectory, in: .userDomainMask).first else { - completion(false, nil) - return - } - - let folderURL = documentsDirectory.appendingPathComponent(title + "-" + module.metadata.sourceName) - if (!FileManager.default.fileExists(atPath: folderURL.path)) { - do { - try FileManager.default.createDirectory(at: folderURL, withIntermediateDirectories: true, attributes: nil) - } catch { - Logger.shared.log("Error creating folder: \(error)") - completion(false, nil) - return - } - } - - let outputFileName = "\(title)_Episode\(episode)_\(module.metadata.sourceName).mp4" - let outputFileURL = folderURL.appendingPathComponent(outputFileName) - - let fileExtension = url.pathExtension.lowercased() - - if fileExtension == "mp4" { - NotificationCenter.default.post(name: .DownloadManagerStatusUpdate, object: nil, userInfo: [ - "title": title, - "episode": episode, - "type": "mp4", - "status": "Downloading", - "progress": 0.0 - ]) - - let task = URLSession.custom.downloadTask(with: url) { tempLocalURL, response, error in - if let tempLocalURL = tempLocalURL { - do { - try FileManager.default.moveItem(at: tempLocalURL, to: outputFileURL) - NotificationCenter.default.post(name: .DownloadManagerStatusUpdate, object: nil, userInfo: [ - "title": title, - "episode": episode, - "type": "mp4", - "status": "Completed", - "progress": 1.0 - ]) - DispatchQueue.main.async { - Logger.shared.log("Download successful: \(outputFileURL)") - completion(true, outputFileURL) - } - } catch { - DispatchQueue.main.async { - Logger.shared.log("Download failed: \(error)") - completion(false, nil) - } - } - } else { - DispatchQueue.main.async { - Logger.shared.log("Download failed: \(error?.localizedDescription ?? "Unknown error")") - completion(false, nil) - } - } - } - task.resume() - } else if fileExtension == "m3u8" { - let conversionKey = "\(title)_\(episode)_\(module.metadata.sourceName)" - activeConversions[conversionKey] = true - - if UIApplication.shared.applicationState != .active && backgroundTaskIdentifier == .invalid { - backgroundTaskIdentifier = UIApplication.shared.beginBackgroundTask { [weak self] in - self?.endBackgroundTask() - } - } - - DispatchQueue.global(qos: .background).async { - NotificationCenter.default.post(name: .DownloadManagerStatusUpdate, object: nil, userInfo: [ - "title": title, - "episode": episode, - "type": "hls", - "status": "Converting", - "progress": 0.0 - ]) - - let processorCount = ProcessInfo.processInfo.processorCount - let physicalMemory = ProcessInfo.processInfo.physicalMemory / (1024 * 1024) - - var ffmpegCommand = ["ffmpeg", "-y"] - - ffmpegCommand.append(contentsOf: ["-protocol_whitelist", "file,http,https,tcp,tls"]) - - ffmpegCommand.append(contentsOf: ["-fflags", "+genpts"]) - ffmpegCommand.append(contentsOf: ["-reconnect", "1", "-reconnect_streamed", "1", "-reconnect_delay_max", "5"]) - ffmpegCommand.append(contentsOf: ["-headers", "Referer: \(module.metadata.baseUrl)\nOrigin: \(module.metadata.baseUrl)"]) - - let multiThreads = UserDefaults.standard.bool(forKey: "multiThreads") - if multiThreads { - let threadCount = max(2, processorCount - 1) - ffmpegCommand.append(contentsOf: ["-threads", "\(threadCount)"]) - } else { - ffmpegCommand.append(contentsOf: ["-threads", "2"]) - } - - let bufferSize = min(32, max(8, Int(physicalMemory) / 256)) - ffmpegCommand.append(contentsOf: ["-bufsize", "\(bufferSize)M"]) - ffmpegCommand.append(contentsOf: ["-i", url.absoluteString]) - - if let subtitleURL = subtitleURL { - do { - let subtitleData = try Data(contentsOf: subtitleURL) - let subtitleFileExtension = subtitleURL.pathExtension.lowercased() - if subtitleFileExtension != "srt" && subtitleFileExtension != "vtt" { - Logger.shared.log("Unsupported subtitle format: \(subtitleFileExtension)") - } - let subtitleFileName = "\(title)_Episode\(episode).\(subtitleFileExtension)" - let subtitleLocalURL = folderURL.appendingPathComponent(subtitleFileName) - try subtitleData.write(to: subtitleLocalURL) - ffmpegCommand.append(contentsOf: ["-i", subtitleLocalURL.path]) - - ffmpegCommand.append(contentsOf: [ - "-c:v", "copy", - "-c:a", "copy", - "-c:s", "mov_text", - "-disposition:s:0", "default+forced", - "-metadata:s:s:0", "handler_name=English", - "-metadata:s:s:0", "language=eng" - ]) - - ffmpegCommand.append(outputFileURL.path) - } catch { - Logger.shared.log("Subtitle download failed: \(error)") - ffmpegCommand.append(contentsOf: ["-c:v", "copy", "-c:a", "copy"]) - ffmpegCommand.append(contentsOf: ["-movflags", "+faststart"]) - ffmpegCommand.append(outputFileURL.path) - } - } else { - ffmpegCommand.append(contentsOf: ["-c:v", "copy", "-c:a", "copy"]) - ffmpegCommand.append(contentsOf: ["-movflags", "+faststart"]) - ffmpegCommand.append(outputFileURL.path) - } - Logger.shared.log("FFmpeg command: \(ffmpegCommand.joined(separator: " "))", type: "Debug") - - NotificationCenter.default.post(name: .DownloadManagerStatusUpdate, object: nil, userInfo: [ - "title": title, - "episode": episode, - "type": "hls", - "status": "Converting", - "progress": 0.5 - ]) - - let success = ffmpeg(ffmpegCommand) - DispatchQueue.main.async { [weak self] in - if success == 0 { - NotificationCenter.default.post(name: .DownloadManagerStatusUpdate, object: nil, userInfo: [ - "title": title, - "episode": episode, - "type": "hls", - "status": "Completed", - "progress": 1.0 - ]) - Logger.shared.log("Conversion successful: \(outputFileURL)") - completion(true, outputFileURL) - } else { - Logger.shared.log("Conversion failed") - completion(false, nil) - } - - self?.activeConversions[conversionKey] = nil - - if self?.activeConversions.isEmpty ?? true { - self?.endBackgroundTask() - } - } - } - } else { - Logger.shared.log("Unsupported file type: \(fileExtension)") - completion(false, nil) - } - } -} diff --git a/Sora/Utils/MediaPlayer/CustomPlayer/Components/MusicProgressSlider.swift b/Sora/Utils/MediaPlayer/CustomPlayer/Components/MusicProgressSlider.swift index 3183628..5c97e1d 100644 --- a/Sora/Utils/MediaPlayer/CustomPlayer/Components/MusicProgressSlider.swift +++ b/Sora/Utils/MediaPlayer/CustomPlayer/Components/MusicProgressSlider.swift @@ -18,8 +18,8 @@ struct MusicProgressSlider: View { let emptyColor: Color let height: CGFloat let onEditingChanged: (Bool) -> Void - let introSegments: [ClosedRange] // Changed - let outroSegments: [ClosedRange] // Changed + let introSegments: [ClosedRange] + let outroSegments: [ClosedRange] let introColor: Color let outroColor: Color @@ -57,10 +57,10 @@ struct MusicProgressSlider: View { } } - // Rest of the existing code... Capsule() .fill(emptyColor) } + .clipShape(Capsule()) Capsule() .fill(isActive ? activeFillColor : fillColor) diff --git a/Sora/Utils/MediaPlayer/CustomPlayer/CustomPlayer.swift b/Sora/Utils/MediaPlayer/CustomPlayer/CustomPlayer.swift index 3ed4e21..f824db4 100644 --- a/Sora/Utils/MediaPlayer/CustomPlayer/CustomPlayer.swift +++ b/Sora/Utils/MediaPlayer/CustomPlayer/CustomPlayer.swift @@ -11,7 +11,6 @@ import AVKit import SwiftUI import AVFoundation import MediaPlayer -// MARK: - CustomMediaPlayerViewController class CustomMediaPlayerViewController: UIViewController, UIGestureRecognizerDelegate { let module: ScrapingModule @@ -94,6 +93,7 @@ class CustomMediaPlayerViewController: UIViewController, UIGestureRecognizerDele var speedButton: UIButton! var skip85Button: UIButton! var qualityButton: UIButton! + var holdSpeedIndicator: UIButton! var isHLSStream: Bool = false var qualities: [(String, String)] = [] @@ -116,6 +116,8 @@ class CustomMediaPlayerViewController: UIViewController, UIGestureRecognizerDele } } + private var wasPlayingBeforeSeek = false + private var malID: Int? private var skipIntervals: (op: CMTimeRange?, ed: CMTimeRange?) = (nil, nil) @@ -123,6 +125,12 @@ class CustomMediaPlayerViewController: UIViewController, UIGestureRecognizerDele private var skipOutroButton: UIButton! private let skipButtonBaseAlpha: CGFloat = 0.9 @Published var segments: [ClosedRange] = [] + private var skipIntroLeading: NSLayoutConstraint! + private var skipOutroLeading: NSLayoutConstraint! + private var originalIntroLeading: CGFloat = 0 + private var originalOutroLeading: CGFloat = 0 + private var skipIntroDismissedInSession = false + private var skipOutroDismissedInSession = false private var playerItemKVOContext = 0 private var loadedTimeRangesObservation: NSKeyValueObservation? @@ -214,7 +222,6 @@ class CustomMediaPlayerViewController: UIViewController, UIGestureRecognizerDele loadSubtitleSettings() setupPlayerViewController() setupControls() - setupSkipAndDismissGestures() addInvisibleControlOverlays() setupWatchNextButton() setupSubtitleLabel() @@ -227,11 +234,15 @@ class CustomMediaPlayerViewController: UIViewController, UIGestureRecognizerDele setupMarqueeLabel() setupSkip85Button() setupSkipButtons() + setupSkipAndDismissGestures() addTimeObserver() startUpdateTimer() setupAudioSession() updateSkipButtonsVisibility() + setupHoldSpeedIndicator() + view.bringSubviewToFront(subtitleLabel) + view.bringSubviewToFront(topSubtitleLabel) AniListMutation().fetchMalID(animeId: aniListID) { [weak self] result in switch result { @@ -240,7 +251,7 @@ class CustomMediaPlayerViewController: UIViewController, UIGestureRecognizerDele self?.fetchSkipTimes(type: "op") self?.fetchSkipTimes(type: "ed") case .failure(let error): - Logger.shared.log("⚠️ Unable to fetch MAL ID: \(error)",type:"Error") + Logger.shared.log("Unable to fetch MAL ID: \(error)",type:"Error") } } @@ -270,7 +281,6 @@ class CustomMediaPlayerViewController: UIViewController, UIGestureRecognizerDele } } - if #available(iOS 16.0, *) { playerViewController.allowsVideoFrameAnalysis = false } @@ -374,14 +384,11 @@ class CustomMediaPlayerViewController: UIViewController, UIGestureRecognizerDele DispatchQueue.main.async { [weak self] in guard let self = self else { return } if self.qualityButton.isHidden && self.isHLSStream { - // 1) reveal the quality button self.qualityButton.isHidden = false self.qualityButton.menu = self.qualitySelectionMenu() - // 2) update the trailing constraint for the menuButton self.updateMenuButtonConstraints() - // 3) animate the shift UIView.animate(withDuration: 0.25, delay: 0, options: .curveEaseInOut) { self.view.layoutIfNeeded() } @@ -523,11 +530,19 @@ class CustomMediaPlayerViewController: UIViewController, UIGestureRecognizerDele onEditingChanged: { editing in if editing { self.isSliderEditing = true + + self.wasPlayingBeforeSeek = (self.player.timeControlStatus == .playing) + self.originalRate = self.player.rate + + self.player.pause() } else { - let wasPlaying = self.isPlaying - let targetTime = CMTime(seconds: self.sliderViewModel.sliderValue, - preferredTimescale: 600) - self.player.seek(to: targetTime) { [weak self] finished in + let target = CMTime(seconds: self.sliderViewModel.sliderValue, + preferredTimescale: 600) + self.player.seek( + to: target, + toleranceBefore: .zero, + toleranceAfter: .zero + ) { [weak self] _ in guard let self = self else { return } let final = self.player.currentTime().seconds @@ -535,16 +550,16 @@ class CustomMediaPlayerViewController: UIViewController, UIGestureRecognizerDele self.currentTimeVal = final self.isSliderEditing = false - if wasPlaying { - self.player.play() + if self.wasPlayingBeforeSeek { + self.player.playImmediately(atRate: self.originalRate) } } } }, - introSegments: sliderViewModel.introSegments, // Added - outroSegments: sliderViewModel.outroSegments, // Added - introColor: segmentsColor, // Add your colors here - outroColor: segmentsColor // Or use settings.accentColor + introSegments: sliderViewModel.introSegments, + outroSegments: sliderViewModel.outroSegments, + introColor: segmentsColor, + outroColor: segmentsColor ) sliderHostingController = UIHostingController(rootView: sliderView) @@ -615,6 +630,16 @@ class CustomMediaPlayerViewController: UIViewController, UIGestureRecognizerDele } let panGesture = UIPanGestureRecognizer(target: self, action: #selector(handlePanGesture(_:))) + if let introSwipe = skipIntroButton.gestureRecognizers?.first( + where: { $0 is UISwipeGestureRecognizer && ($0 as! UISwipeGestureRecognizer).direction == .left } + ), + let outroSwipe = skipOutroButton.gestureRecognizers?.first( + where: { $0 is UISwipeGestureRecognizer && ($0 as! UISwipeGestureRecognizer).direction == .left } + ) { + panGesture.require(toFail: introSwipe) + panGesture.require(toFail: outroSwipe) + } + view.addGestureRecognizer(panGesture) } @@ -693,46 +718,50 @@ class CustomMediaPlayerViewController: UIViewController, UIGestureRecognizerDele func setupSubtitleLabel() { subtitleLabel = UILabel() - subtitleLabel.textAlignment = .center - subtitleLabel.numberOfLines = 0 - subtitleLabel.font = UIFont.systemFont(ofSize: CGFloat(subtitleFontSize)) - view.addSubview(subtitleLabel) - subtitleLabel.translatesAutoresizingMaskIntoConstraints = false - - subtitleBottomToSliderConstraint = subtitleLabel.bottomAnchor.constraint( - equalTo: sliderHostingController!.view.topAnchor, - constant: -20 - ) - - subtitleBottomToSafeAreaConstraint = subtitleLabel.bottomAnchor.constraint( - equalTo: view.safeAreaLayoutGuide.bottomAnchor, - constant: -subtitleBottomPadding - ) - - NSLayoutConstraint.activate([ - subtitleLabel.centerXAnchor.constraint(equalTo: view.centerXAnchor), - subtitleLabel.leadingAnchor.constraint(greaterThanOrEqualTo: view.leadingAnchor, constant: 36), - subtitleLabel.trailingAnchor.constraint(lessThanOrEqualTo: view.trailingAnchor, constant: -36) - ]) - - subtitleBottomToSafeAreaConstraint?.isActive = true + subtitleLabel?.textAlignment = .center + subtitleLabel?.numberOfLines = 0 + subtitleLabel?.font = UIFont.systemFont(ofSize: CGFloat(subtitleFontSize)) + if let subtitleLabel = subtitleLabel { + view.addSubview(subtitleLabel) + subtitleLabel.translatesAutoresizingMaskIntoConstraints = false + + subtitleBottomToSliderConstraint = subtitleLabel.bottomAnchor.constraint( + equalTo: sliderHostingController?.view.topAnchor ?? view.bottomAnchor, + constant: -20 + ) + + subtitleBottomToSafeAreaConstraint = subtitleLabel.bottomAnchor.constraint( + equalTo: view.safeAreaLayoutGuide.bottomAnchor, + constant: -subtitleBottomPadding + ) + + NSLayoutConstraint.activate([ + subtitleLabel.centerXAnchor.constraint(equalTo: view.centerXAnchor), + subtitleLabel.leadingAnchor.constraint(greaterThanOrEqualTo: view.leadingAnchor, constant: 36), + subtitleLabel.trailingAnchor.constraint(lessThanOrEqualTo: view.trailingAnchor, constant: -36) + ]) + + subtitleBottomToSafeAreaConstraint?.isActive = true + } topSubtitleLabel = UILabel() - topSubtitleLabel.textAlignment = .center - topSubtitleLabel.numberOfLines = 0 - topSubtitleLabel.font = UIFont.systemFont(ofSize: CGFloat(subtitleFontSize)) - topSubtitleLabel.isHidden = true - view.addSubview(topSubtitleLabel) - topSubtitleLabel.translatesAutoresizingMaskIntoConstraints = false + topSubtitleLabel?.textAlignment = .center + topSubtitleLabel?.numberOfLines = 0 + topSubtitleLabel?.font = UIFont.systemFont(ofSize: CGFloat(subtitleFontSize)) + topSubtitleLabel?.isHidden = true + if let topSubtitleLabel = topSubtitleLabel { + view.addSubview(topSubtitleLabel) + topSubtitleLabel.translatesAutoresizingMaskIntoConstraints = false + + NSLayoutConstraint.activate([ + topSubtitleLabel.centerXAnchor.constraint(equalTo: view.centerXAnchor), + topSubtitleLabel.topAnchor.constraint(equalTo: view.safeAreaLayoutGuide.topAnchor, constant: 30), + topSubtitleLabel.leadingAnchor.constraint(greaterThanOrEqualTo: view.leadingAnchor, constant: 36), + topSubtitleLabel.trailingAnchor.constraint(lessThanOrEqualTo: view.trailingAnchor, constant: -36) + ]) + } updateSubtitleLabelAppearance() - - NSLayoutConstraint.activate([ - topSubtitleLabel.centerXAnchor.constraint(equalTo: view.centerXAnchor), - topSubtitleLabel.topAnchor.constraint(equalTo: view.safeAreaLayoutGuide.topAnchor, constant: 30), - topSubtitleLabel.leadingAnchor.constraint(greaterThanOrEqualTo: view.leadingAnchor, constant: 36), - topSubtitleLabel.trailingAnchor.constraint(lessThanOrEqualTo: view.trailingAnchor, constant: -36) - ]) } func updateSubtitleLabelConstraints() { @@ -780,10 +809,10 @@ class CustomMediaPlayerViewController: UIViewController, UIGestureRecognizerDele marqueeLabel.textColor = .white marqueeLabel.font = UIFont.systemFont(ofSize: 14, weight: .heavy) - marqueeLabel.speed = .rate(35) // Adjust scrolling speed as needed - marqueeLabel.fadeLength = 10.0 // Fading at the label’s edges - marqueeLabel.leadingBuffer = 1.0 // Left inset for scrolling - marqueeLabel.trailingBuffer = 16.0 // Right inset for scrolling + marqueeLabel.speed = .rate(35) + marqueeLabel.fadeLength = 10.0 + marqueeLabel.leadingBuffer = 1.0 + marqueeLabel.trailingBuffer = 16.0 marqueeLabel.animationDelay = 2.5 marqueeLabel.layer.shadowColor = UIColor.black.cgColor @@ -798,33 +827,6 @@ class CustomMediaPlayerViewController: UIViewController, UIGestureRecognizerDele controlsContainerView.addSubview(marqueeLabel) marqueeLabel.translatesAutoresizingMaskIntoConstraints = false - // 1. Portrait mode with button visible - portraitButtonVisibleConstraints = [ - marqueeLabel.leadingAnchor.constraint(equalTo: dismissButton.trailingAnchor, constant: 8), - marqueeLabel.trailingAnchor.constraint(equalTo: menuButton.leadingAnchor, constant: -16), - marqueeLabel.centerYAnchor.constraint(equalTo: dismissButton.centerYAnchor) - ] - - // 2. Portrait mode with button hidden - portraitButtonHiddenConstraints = [ - marqueeLabel.leadingAnchor.constraint(equalTo: dismissButton.trailingAnchor, constant: 12), - marqueeLabel.trailingAnchor.constraint(equalTo: controlsContainerView.trailingAnchor, constant: -16), - marqueeLabel.centerYAnchor.constraint(equalTo: dismissButton.centerYAnchor) - ] - - // 3. Landscape mode with button visible (using smaller margins) - landscapeButtonVisibleConstraints = [ - marqueeLabel.leadingAnchor.constraint(equalTo: dismissButton.trailingAnchor, constant: 8), - marqueeLabel.trailingAnchor.constraint(equalTo: menuButton.leadingAnchor, constant: -8), - marqueeLabel.centerYAnchor.constraint(equalTo: dismissButton.centerYAnchor) - ] - - // 4. Landscape mode with button hidden - landscapeButtonHiddenConstraints = [ - marqueeLabel.leadingAnchor.constraint(equalTo: dismissButton.trailingAnchor, constant: 8), - marqueeLabel.trailingAnchor.constraint(equalTo: controlsContainerView.trailingAnchor, constant: -8), - marqueeLabel.centerYAnchor.constraint(equalTo: dismissButton.centerYAnchor) - ] updateMarqueeConstraints() } @@ -853,9 +855,44 @@ class CustomMediaPlayerViewController: UIViewController, UIGestureRecognizerDele ]) } + private func setupHoldSpeedIndicator() { + let config = UIImage.SymbolConfiguration(pointSize: 14, weight: .bold) + let image = UIImage(systemName: "forward.fill", withConfiguration: config) + let speed = UserDefaults.standard.float(forKey: "holdSpeedPlayer") + + holdSpeedIndicator = UIButton(type: .system) + holdSpeedIndicator.setTitle(" \(speed)", for: .normal) + holdSpeedIndicator.titleLabel?.font = UIFont.systemFont(ofSize: 14, weight: .bold) + holdSpeedIndicator.setImage(image, for: .normal) + + holdSpeedIndicator.backgroundColor = UIColor(red: 51/255.0, green: 51/255.0, blue: 51/255.0, alpha: 0.8) + holdSpeedIndicator.tintColor = .white + holdSpeedIndicator.setTitleColor(.white, for: .normal) + holdSpeedIndicator.layer.cornerRadius = 21 + holdSpeedIndicator.alpha = 0 + + holdSpeedIndicator.layer.shadowColor = UIColor.black.cgColor + holdSpeedIndicator.layer.shadowOffset = CGSize(width: 0, height: 2) + holdSpeedIndicator.layer.shadowOpacity = 0.6 + holdSpeedIndicator.layer.shadowRadius = 4 + holdSpeedIndicator.layer.masksToBounds = false + + view.addSubview(holdSpeedIndicator) + holdSpeedIndicator.translatesAutoresizingMaskIntoConstraints = false + + NSLayoutConstraint.activate([ + holdSpeedIndicator.centerXAnchor.constraint(equalTo: view.centerXAnchor), + holdSpeedIndicator.topAnchor.constraint(equalTo: view.safeAreaLayoutGuide.topAnchor, constant: 20), + holdSpeedIndicator.heightAnchor.constraint(equalToConstant: 40), + holdSpeedIndicator.widthAnchor.constraint(greaterThanOrEqualToConstant: 85) + ]) + + holdSpeedIndicator.isUserInteractionEnabled = false + } + private func updateSkipButtonsVisibility() { - let t = currentTimeVal - let controlsShowing = isControlsVisible // true ⇒ main UI is on‑screen + let t = currentTimeVal + let controlsShowing = isControlsVisible func handle(_ button: UIButton, range: CMTimeRange?) { guard let r = range else { button.isHidden = true; return } @@ -885,6 +922,17 @@ class CustomMediaPlayerViewController: UIViewController, UIGestureRecognizerDele handle(skipIntroButton, range: skipIntervals.op) handle(skipOutroButton, range: skipIntervals.ed) + + if skipIntroDismissedInSession { + skipIntroButton.isHidden = true + } else { + handle(skipIntroButton, range: skipIntervals.op) + } + if skipOutroDismissedInSession { + skipOutroButton.isHidden = true + } else { + handle(skipOutroButton, range: skipIntervals.ed) + } } private func updateSegments() { @@ -918,17 +966,38 @@ class CustomMediaPlayerViewController: UIViewController, UIGestureRecognizerDele emptyColor: .white.opacity(0.3), height: 33, onEditingChanged: { editing in - if !editing { - let targetTime = CMTime( - seconds: self.sliderViewModel.sliderValue, - preferredTimescale: 600 - ) - self.player.seek(to: targetTime) + if editing { + self.isSliderEditing = true + + self.wasPlayingBeforeSeek = (self.player.timeControlStatus == .playing) + self.originalRate = self.player.rate + + self.player.pause() + } else { + + let target = CMTime(seconds: self.sliderViewModel.sliderValue, + preferredTimescale: 600) + self.player.seek( + to: target, + toleranceBefore: .zero, + toleranceAfter: .zero + ) { [weak self] _ in + guard let self = self else { return } + + let final = self.player.currentTime().seconds + self.sliderViewModel.sliderValue = final + self.currentTimeVal = final + self.isSliderEditing = false + + if self.wasPlayingBeforeSeek { + self.player.playImmediately(atRate: self.originalRate) + } + } } }, introSegments: self.sliderViewModel.introSegments, outroSegments: self.sliderViewModel.outroSegments, - introColor: segmentsColor, // Match your color choices + introColor: segmentsColor, outroColor: segmentsColor ) } @@ -953,7 +1022,6 @@ class CustomMediaPlayerViewController: UIViewController, UIGestureRecognizerDele } else { self.skipIntervals.ed = range } - // Update segments only if duration is available if self.duration > 0 { self.updateSegments() } @@ -961,22 +1029,20 @@ class CustomMediaPlayerViewController: UIViewController, UIGestureRecognizerDele }.resume() } - private func setupSkipButtons() { + func setupSkipButtons() { let introConfig = UIImage.SymbolConfiguration(pointSize: 14, weight: .bold) let introImage = UIImage(systemName: "forward.frame", withConfiguration: introConfig) - skipIntroButton = UIButton(type: .system) - skipIntroButton.setImage(introImage, for: .normal) skipIntroButton.setTitle(" Skip Intro", for: .normal) skipIntroButton.titleLabel?.font = UIFont.systemFont(ofSize: 14, weight: .bold) + skipIntroButton.setImage(introImage, for: .normal) - // match skip85Button styling: - skipIntroButton.backgroundColor = UIColor(red: 51/255, green: 51/255, blue: 51/255, alpha: 0.8) + skipIntroButton.backgroundColor = UIColor(red: 51/255.0, green: 51/255.0, blue: 51/255.0, alpha: 0.8) skipIntroButton.tintColor = .white skipIntroButton.setTitleColor(.white, for: .normal) - skipIntroButton.layer.cornerRadius = 15 + skipIntroButton.layer.cornerRadius = 21 skipIntroButton.alpha = skipButtonBaseAlpha - skipIntroButton.contentEdgeInsets = UIEdgeInsets(top: 6, left: 10, bottom: 6, right: 10) + skipIntroButton.layer.shadowColor = UIColor.black.cgColor skipIntroButton.layer.shadowOffset = CGSize(width: 0, height: 2) skipIntroButton.layer.shadowOpacity = 0.6 @@ -984,50 +1050,47 @@ class CustomMediaPlayerViewController: UIViewController, UIGestureRecognizerDele skipIntroButton.layer.masksToBounds = false skipIntroButton.addTarget(self, action: #selector(skipIntro), for: .touchUpInside) + view.addSubview(skipIntroButton) skipIntroButton.translatesAutoresizingMaskIntoConstraints = false NSLayoutConstraint.activate([ - skipIntroButton.leadingAnchor.constraint( - equalTo: sliderHostingController!.view.leadingAnchor), - skipIntroButton.bottomAnchor.constraint( - equalTo: sliderHostingController!.view.topAnchor, constant: -5) + skipIntroButton.trailingAnchor.constraint(equalTo: sliderHostingController!.view.trailingAnchor), + skipIntroButton.bottomAnchor.constraint(equalTo: sliderHostingController!.view.topAnchor, constant: -5), + skipIntroButton.heightAnchor.constraint(equalToConstant: 40), + skipIntroButton.widthAnchor.constraint(greaterThanOrEqualToConstant: 104) ]) - // MARK: – Skip Outro Button let outroConfig = UIImage.SymbolConfiguration(pointSize: 14, weight: .bold) let outroImage = UIImage(systemName: "forward.frame", withConfiguration: outroConfig) - skipOutroButton = UIButton(type: .system) - skipOutroButton.setImage(outroImage, for: .normal) skipOutroButton.setTitle(" Skip Outro", for: .normal) skipOutroButton.titleLabel?.font = UIFont.systemFont(ofSize: 14, weight: .bold) + skipOutroButton.setImage(outroImage, for: .normal) - // same styling as above - skipOutroButton.backgroundColor = skipIntroButton.backgroundColor - skipOutroButton.tintColor = skipIntroButton.tintColor + skipOutroButton.backgroundColor = UIColor(red: 51/255.0, green: 51/255.0, blue: 51/255.0, alpha: 0.8) + skipOutroButton.tintColor = .white skipOutroButton.setTitleColor(.white, for: .normal) - skipOutroButton.layer.cornerRadius = skipIntroButton.layer.cornerRadius - skipOutroButton.alpha = skipIntroButton.alpha - skipOutroButton.contentEdgeInsets = skipIntroButton.contentEdgeInsets - skipOutroButton.layer.shadowColor = skipIntroButton.layer.shadowColor - skipOutroButton.layer.shadowOffset = skipIntroButton.layer.shadowOffset - skipOutroButton.layer.shadowOpacity = skipIntroButton.layer.shadowOpacity - skipOutroButton.layer.shadowRadius = skipIntroButton.layer.shadowRadius + skipOutroButton.layer.cornerRadius = 21 + skipOutroButton.alpha = skipButtonBaseAlpha + + skipOutroButton.layer.shadowColor = UIColor.black.cgColor + skipOutroButton.layer.shadowOffset = CGSize(width: 0, height: 2) + skipOutroButton.layer.shadowOpacity = 0.6 + skipOutroButton.layer.shadowRadius = 4 skipOutroButton.layer.masksToBounds = false skipOutroButton.addTarget(self, action: #selector(skipOutro), for: .touchUpInside) + view.addSubview(skipOutroButton) skipOutroButton.translatesAutoresizingMaskIntoConstraints = false NSLayoutConstraint.activate([ - skipOutroButton.leadingAnchor.constraint( - equalTo: sliderHostingController!.view.leadingAnchor), - skipOutroButton.bottomAnchor.constraint( - equalTo: sliderHostingController!.view.topAnchor, constant: -5) + skipOutroButton.trailingAnchor.constraint(equalTo: sliderHostingController!.view.trailingAnchor), + skipOutroButton.bottomAnchor.constraint(equalTo: sliderHostingController!.view.topAnchor, constant: -5), + skipOutroButton.heightAnchor.constraint(equalToConstant: 40), + skipOutroButton.widthAnchor.constraint(greaterThanOrEqualToConstant: 104) ]) - - view.bringSubviewToFront(skipOutroButton) } private func setupDimButton() { @@ -1046,20 +1109,14 @@ class CustomMediaPlayerViewController: UIViewController, UIGestureRecognizerDele dimButton.layer.masksToBounds = false NSLayoutConstraint.activate([ - dimButton.centerYAnchor.constraint(equalTo: dismissButton.centerYAnchor), + dimButton.topAnchor.constraint(equalTo: volumeSliderHostingView!.bottomAnchor, constant: 15), + dimButton.trailingAnchor.constraint(equalTo: volumeSliderHostingView!.trailingAnchor), dimButton.widthAnchor.constraint(equalToConstant: 24), - dimButton.heightAnchor.constraint(equalToConstant: 24), + dimButton.heightAnchor.constraint(equalToConstant: 24) ]) - dimButtonToSlider = dimButton.trailingAnchor.constraint( - equalTo: volumeSliderHostingView!.leadingAnchor, - constant: -8 - ) - dimButtonToRight = dimButton.trailingAnchor.constraint( - equalTo: controlsContainerView.trailingAnchor, - constant: -16 - ) - + dimButtonToSlider = dimButton.trailingAnchor.constraint(equalTo: volumeSliderHostingView!.trailingAnchor) + dimButtonToRight = dimButton.trailingAnchor.constraint(equalTo: controlsContainerView.trailingAnchor, constant: -16) dimButtonToSlider.isActive = true } @@ -1069,7 +1126,9 @@ class CustomMediaPlayerViewController: UIViewController, UIGestureRecognizerDele let leftSpacing: CGFloat = 2 let rightSpacing: CGFloat = 6 - let trailingAnchor: NSLayoutXAxisAnchor = dimButton.leadingAnchor + let trailingAnchor: NSLayoutXAxisAnchor = (volumeSliderHostingView?.isHidden == false) + ? volumeSliderHostingView!.leadingAnchor + : view.safeAreaLayoutGuide.trailingAnchor currentMarqueeConstraints = [ marqueeLabel.leadingAnchor.constraint( @@ -1126,6 +1185,12 @@ class CustomMediaPlayerViewController: UIViewController, UIGestureRecognizerDele speedButton.showsMenuAsPrimaryAction = true speedButton.menu = speedChangerMenu() + speedButton.layer.shadowColor = UIColor.black.cgColor + speedButton.layer.shadowOffset = CGSize(width: 0, height: 2) + speedButton.layer.shadowOpacity = 0.6 + speedButton.layer.shadowRadius = 4 + speedButton.layer.masksToBounds = false + controlsContainerView.addSubview(speedButton) speedButton.translatesAutoresizingMaskIntoConstraints = false @@ -1182,8 +1247,6 @@ class CustomMediaPlayerViewController: UIViewController, UIGestureRecognizerDele skip85Button.layer.cornerRadius = 21 skip85Button.alpha = 0.7 - skip85Button.contentEdgeInsets = UIEdgeInsets(top: 6, left: 10, bottom: 6, right: 10) - skip85Button.layer.shadowColor = UIColor.black.cgColor skip85Button.layer.shadowOffset = CGSize(width: 0, height: 2) skip85Button.layer.shadowOpacity = 0.6 @@ -1235,42 +1298,32 @@ class CustomMediaPlayerViewController: UIViewController, UIGestureRecognizerDele } func updateSubtitleLabelAppearance() { - // subtitleLabel always exists here: - subtitleLabel.font = UIFont.systemFont(ofSize: CGFloat(subtitleFontSize)) - subtitleLabel.textColor = subtitleUIColor() - subtitleLabel.backgroundColor = subtitleBackgroundEnabled - ? UIColor.black.withAlphaComponent(0.6) - : .clear - subtitleLabel.layer.cornerRadius = 5 - subtitleLabel.clipsToBounds = true - subtitleLabel.layer.shadowColor = UIColor.black.cgColor - subtitleLabel.layer.shadowRadius = CGFloat(subtitleShadowRadius) - subtitleLabel.layer.shadowOpacity = 1.0 - subtitleLabel.layer.shadowOffset = .zero + if let subtitleLabel = subtitleLabel { + subtitleLabel.font = UIFont.systemFont(ofSize: CGFloat(subtitleFontSize)) + subtitleLabel.textColor = subtitleUIColor() + subtitleLabel.backgroundColor = subtitleBackgroundEnabled + ? UIColor.black.withAlphaComponent(0.6) + : .clear + subtitleLabel.layer.cornerRadius = 5 + subtitleLabel.clipsToBounds = true + subtitleLabel.layer.shadowColor = UIColor.black.cgColor + subtitleLabel.layer.shadowRadius = CGFloat(subtitleShadowRadius) + subtitleLabel.layer.shadowOpacity = 1.0 + subtitleLabel.layer.shadowOffset = .zero + } - // only style it if it’s been created already - topSubtitleLabel?.font = UIFont.systemFont(ofSize: CGFloat(subtitleFontSize)) - topSubtitleLabel?.textColor = subtitleUIColor() - topSubtitleLabel?.backgroundColor = subtitleBackgroundEnabled - ? UIColor.black.withAlphaComponent(0.6) - : .clear - topSubtitleLabel?.layer.cornerRadius = 5 - topSubtitleLabel?.clipsToBounds = true - topSubtitleLabel?.layer.shadowColor = UIColor.black.cgColor - topSubtitleLabel?.layer.shadowRadius = CGFloat(subtitleShadowRadius) - topSubtitleLabel?.layer.shadowOpacity = 1.0 - topSubtitleLabel?.layer.shadowOffset = .zero - } - - func subtitleUIColor() -> UIColor { - switch subtitleForegroundColor { - case "white": return .white - case "yellow": return .yellow - case "green": return .green - case "purple": return .purple - case "blue": return .blue - case "red": return .red - default: return .white + if let topSubtitleLabel = topSubtitleLabel { + topSubtitleLabel.font = UIFont.systemFont(ofSize: CGFloat(subtitleFontSize)) + topSubtitleLabel.textColor = subtitleUIColor() + topSubtitleLabel.backgroundColor = subtitleBackgroundEnabled + ? UIColor.black.withAlphaComponent(0.6) + : .clear + topSubtitleLabel.layer.cornerRadius = 5 + topSubtitleLabel.clipsToBounds = true + topSubtitleLabel.layer.shadowColor = UIColor.black.cgColor + topSubtitleLabel.layer.shadowRadius = CGFloat(subtitleShadowRadius) + topSubtitleLabel.layer.shadowOpacity = 1.0 + topSubtitleLabel.layer.shadowOffset = .zero } } @@ -1294,6 +1347,8 @@ class CustomMediaPlayerViewController: UIViewController, UIGestureRecognizerDele self.sliderViewModel.sliderValue = max(0, min(self.currentTimeVal, self.duration)) } + self.updateSkipButtonsVisibility() + UserDefaults.standard.set(self.currentTimeVal, forKey: "lastPlayedTime_\(self.fullUrl)") UserDefaults.standard.set(self.duration, forKey: "totalTime_\(self.fullUrl)") @@ -1320,8 +1375,6 @@ class CustomMediaPlayerViewController: UIViewController, UIGestureRecognizerDele self.topSubtitleLabel.isHidden = true } - let current = self.currentTimeVal - let segmentsColor = self.getSegmentsColor() DispatchQueue.main.async { @@ -1368,17 +1421,37 @@ class CustomMediaPlayerViewController: UIViewController, UIGestureRecognizerDele emptyColor: .white.opacity(0.3), height: 33, onEditingChanged: { editing in - if !editing { - let targetTime = CMTime( - seconds: self.sliderViewModel.sliderValue, - preferredTimescale: 600 - ) - self.player.seek(to: targetTime) + if editing { + self.isSliderEditing = true + + self.wasPlayingBeforeSeek = (self.player.timeControlStatus == .playing) + self.originalRate = self.player.rate + + self.player.pause() + } else { + let target = CMTime(seconds: self.sliderViewModel.sliderValue, + preferredTimescale: 600) + self.player.seek( + to: target, + toleranceBefore: .zero, + toleranceAfter: .zero + ) { [weak self] _ in + guard let self = self else { return } + + let final = self.player.currentTime().seconds + self.sliderViewModel.sliderValue = final + self.currentTimeVal = final + self.isSliderEditing = false + + if self.wasPlayingBeforeSeek { + self.player.playImmediately(atRate: self.originalRate) + } + } } }, introSegments: self.sliderViewModel.introSegments, outroSegments: self.sliderViewModel.outroSegments, - introColor: segmentsColor, // Match your color choices + introColor: segmentsColor, outroColor: segmentsColor ) } @@ -1388,7 +1461,6 @@ class CustomMediaPlayerViewController: UIViewController, UIGestureRecognizerDele @objc private func skipIntro() { if let range = skipIntervals.op { player.seek(to: range.end) - // optionally hide button immediately: skipIntroButton.isHidden = true } } @@ -1409,10 +1481,8 @@ class CustomMediaPlayerViewController: UIViewController, UIGestureRecognizerDele } func updateMenuButtonConstraints() { - // tear down last one currentMenuButtonTrailing.isActive = false - // pick the “next” visible control let anchor: NSLayoutXAxisAnchor if !qualityButton.isHidden { anchor = qualityButton.leadingAnchor @@ -1524,6 +1594,7 @@ class CustomMediaPlayerViewController: UIViewController, UIGestureRecognizerDele self.controlsContainerView.alpha = 1.0 self.skip85Button.alpha = 0.8 }) + self.updateSkipButtonsVisibility() } } } else { @@ -2093,11 +2164,20 @@ class CustomMediaPlayerViewController: UIViewController, UIGestureRecognizerDele guard let player = player else { return } originalRate = player.rate let holdSpeed = UserDefaults.standard.float(forKey: "holdSpeedPlayer") - player.rate = holdSpeed > 0 ? holdSpeed : 2.0 + let speed = holdSpeed > 0 ? holdSpeed : 2.0 + player.rate = speed + + UIView.animate(withDuration: 0.1) { + self.holdSpeedIndicator.alpha = 0.8 + } } - + private func endHoldSpeed() { player?.rate = originalRate + + UIView.animate(withDuration: 0.2) { + self.holdSpeedIndicator.alpha = 0 + } } private func setInitialPlayerRate() { @@ -2143,6 +2223,18 @@ class CustomMediaPlayerViewController: UIViewController, UIGestureRecognizerDele .shadow(color: Color.black.opacity(0.6), radius: 4, x: 0, y: 2) } } + + func subtitleUIColor() -> UIColor { + switch subtitleForegroundColor { + case "white": return .white + case "yellow": return .yellow + case "green": return .green + case "purple": return .purple + case "blue": return .blue + case "red": return .red + default: return .white + } + } } // yes? Like the plural of the famous american rapper ye? -IBHRAD diff --git a/Sora/Utils/iCloudSyncManager/iCloudSyncManager.swift b/Sora/Utils/iCloudSyncManager/iCloudSyncManager.swift index 595bee5..e42748a 100644 --- a/Sora/Utils/iCloudSyncManager/iCloudSyncManager.swift +++ b/Sora/Utils/iCloudSyncManager/iCloudSyncManager.swift @@ -10,6 +10,7 @@ import UIKit class iCloudSyncManager { static let shared = iCloudSyncManager() + private let syncQueue = DispatchQueue(label: "me.cranci.sora.icloud-sync", qos: .utility) private let defaultsToSync: [String] = [ "externalPlayer", "alwaysLandscape", @@ -47,16 +48,103 @@ class iCloudSyncManager { } private func setupSync() { - NSUbiquitousKeyValueStore.default.synchronize() - syncFromiCloud() - syncModulesFromiCloud() - NotificationCenter.default.addObserver(self, selector: #selector(iCloudDidChangeExternally), name: NSUbiquitousKeyValueStore.didChangeExternallyNotification, object: NSUbiquitousKeyValueStore.default) - NotificationCenter.default.addObserver(self, selector: #selector(userDefaultsDidChange), name: UserDefaults.didChangeNotification, object: nil) + syncQueue.async { [weak self] in + guard let self = self else { return } + + NSUbiquitousKeyValueStore.default.synchronize() + self.syncFromiCloud() + self.syncModulesFromiCloud() + + DispatchQueue.main.async { + NotificationCenter.default.addObserver(self, selector: #selector(self.iCloudDidChangeExternally), name: NSUbiquitousKeyValueStore.didChangeExternallyNotification, object: NSUbiquitousKeyValueStore.default) + NotificationCenter.default.addObserver(self, selector: #selector(self.userDefaultsDidChange), name: UserDefaults.didChangeNotification, object: nil) + } + } + } + + @objc private func iCloudDidChangeExternally(_ notification: NSNotification) { + guard let iCloud = notification.object as? NSUbiquitousKeyValueStore, + let changedKeys = notification.userInfo?[NSUbiquitousKeyValueStoreChangedKeysKey] as? [String] else { + Logger.shared.log("Invalid iCloud notification data", type: "Error") + return + } + + syncQueue.async { [weak self] in + guard let self = self else { return } + + let defaults = UserDefaults.standard + for key in changedKeys { + if let value = iCloud.object(forKey: key), self.isValidValueType(value) { + defaults.set(value, forKey: key) + } else { + defaults.removeObject(forKey: key) + } + } + + defaults.synchronize() + + DispatchQueue.main.async { + NotificationCenter.default.post(name: .iCloudSyncDidComplete, object: nil) + } + } + } + + @objc private func userDefaultsDidChange(_ notification: Notification) { + syncQueue.async { [weak self] in + self?.syncToiCloud() + } + } + + private func syncToiCloud() { + let iCloud = NSUbiquitousKeyValueStore.default + let defaults = UserDefaults.standard + + do { + for key in allKeysToSync() { + if let value = defaults.object(forKey: key) { + if isValidValueType(value) { + iCloud.set(value, forKey: key) + } + } + } + + iCloud.synchronize() + } + } + + private func syncFromiCloud() { + let iCloud = NSUbiquitousKeyValueStore.default + let defaults = UserDefaults.standard + + for key in allKeysToSync() { + if let value = iCloud.object(forKey: key) { + if isValidValueType(value) { + defaults.set(value, forKey: key) + } + } + } + + defaults.synchronize() + NotificationCenter.default.post(name: .iCloudSyncDidComplete, object: nil) + } + + private func isValidValueType(_ value: Any) -> Bool { + return value is String || + value is Bool || + value is Int || + value is Float || + value is Double || + value is Data || + value is Date || + value is [Any] || + value is [String: Any] } @objc private func willEnterBackground() { - syncToiCloud() - syncModulesToiCloud() + syncQueue.async { [weak self] in + self?.syncToiCloud() + self?.syncModulesToiCloud() + } } private func allProgressKeys() -> [String] { @@ -80,60 +168,6 @@ class iCloudSyncManager { return Array(keys) } - private func syncFromiCloud() { - let iCloud = NSUbiquitousKeyValueStore.default - let defaults = UserDefaults.standard - - for key in allKeysToSync() { - if let value = iCloud.object(forKey: key) { - if (value is String) || (value is Bool) || (value is Int) || (value is Float) || (value is Double) || (value is Data) || (value is Date) || (value is Array) || (value is Dictionary) { - defaults.set(value, forKey: key) - } else { - Logger.shared.log("Skipped syncing invalid value type for key: \(key)", type: "Error") - } - } - } - - defaults.synchronize() - NotificationCenter.default.post(name: .iCloudSyncDidComplete, object: nil) - } - - private func syncToiCloud() { - let iCloud = NSUbiquitousKeyValueStore.default - let defaults = UserDefaults.standard - - for key in allKeysToSync() { - if let value = defaults.object(forKey: key) { - iCloud.set(value, forKey: key) - } - } - - iCloud.synchronize() - } - - @objc private func iCloudDidChangeExternally(_ notification: Notification) { - do { - guard let userInfo = notification.userInfo, - let reason = userInfo[NSUbiquitousKeyValueStoreChangeReasonKey] as? Int else { - return - } - - if reason == NSUbiquitousKeyValueStoreServerChange || - reason == NSUbiquitousKeyValueStoreInitialSyncChange { - DispatchQueue.main.async { [weak self] in - self?.syncFromiCloud() - self?.syncModulesFromiCloud() - } - } - } catch { - Logger.shared.log("Error handling iCloud sync: \(error.localizedDescription)", type: "Error") - } - } - - @objc private func userDefaultsDidChange(_ notification: Notification) { - syncToiCloud() - } - func syncModulesToiCloud() { DispatchQueue.global(qos: .background).async { [weak self] in guard let self = self, let iCloudURL = self.ubiquityContainerURL else { return } diff --git a/Sora/Views/LibraryView/LibraryManager.swift b/Sora/Views/LibraryView/LibraryManager.swift index 6e8e3d3..4f18ef2 100644 --- a/Sora/Views/LibraryView/LibraryManager.swift +++ b/Sora/Views/LibraryView/LibraryManager.swift @@ -69,7 +69,7 @@ class LibraryManager: ObservableObject { let encoded = try JSONEncoder().encode(bookmarks) UserDefaults.standard.set(encoded, forKey: bookmarksKey) } catch { - Logger.shared.log("Failed to encode bookmarks: \(error.localizedDescription)", type: "Error") + Logger.shared.log("Failed to save bookmarks: \(error)", type: "Error") } } diff --git a/Sora/Views/LibraryView/LibraryView.swift b/Sora/Views/LibraryView/LibraryView.swift index 99eb462..0f7a233 100644 --- a/Sora/Views/LibraryView/LibraryView.swift +++ b/Sora/Views/LibraryView/LibraryView.swift @@ -17,6 +17,9 @@ struct LibraryView: View { @Environment(\.verticalSizeClass) var verticalSizeClass + @State private var selectedBookmark: LibraryItem? = nil + @State private var isDetailActive: Bool = false + @State private var continueWatchingItems: [ContinueWatchingItem] = [] @State private var isLandscape: Bool = UIDevice.current.orientation.isLandscape @@ -98,7 +101,10 @@ struct LibraryView: View { LazyVGrid(columns: Array(repeating: GridItem(.flexible(), spacing: 12), count: columnsCount), spacing: 12) { ForEach(libraryManager.bookmarks) { item in if let module = moduleManager.modules.first(where: { $0.id.uuidString == item.moduleId }) { - NavigationLink(destination: MediaInfoView(title: item.title, imageUrl: item.imageUrl, href: item.href, module: module)) { + Button(action: { + selectedBookmark = item + isDetailActive = true + }) { VStack(alignment: .leading) { ZStack { KFImage(URL(string: item.imageUrl)) @@ -141,6 +147,22 @@ struct LibraryView: View { } } .padding(.horizontal, 20) + NavigationLink( + destination: Group { + if let bookmark = selectedBookmark, + let module = moduleManager.modules.first(where: { $0.id.uuidString == bookmark.moduleId }) { + MediaInfoView(title: bookmark.title, + imageUrl: bookmark.imageUrl, + href: bookmark.href, + module: module) + } else { + Text("No Data Available") + } + }, + isActive: $isDetailActive + ) { + EmptyView() + } .onAppear { updateOrientation() } diff --git a/Sora/Views/MediaInfoView/EpisodeCell/EpisodeCell.swift b/Sora/Views/MediaInfoView/EpisodeCell/EpisodeCell.swift index 17aa875..bf41b8b 100644 --- a/Sora/Views/MediaInfoView/EpisodeCell/EpisodeCell.swift +++ b/Sora/Views/MediaInfoView/EpisodeCell/EpisodeCell.swift @@ -29,6 +29,16 @@ struct EpisodeCell: View { @State private var isLoading: Bool = true @State private var currentProgress: Double = 0.0 + @Environment(\.colorScheme) private var colorScheme + @AppStorage("selectedAppearance") private var selectedAppearance: Appearance = .system + + var defaultBannerImage: String { + let isLightMode = selectedAppearance == .light || (selectedAppearance == .system && colorScheme == .light) + return isLightMode + ? "https://raw.githubusercontent.com/cranci1/Sora/refs/heads/dev/assets/banner1.png" + : "https://raw.githubusercontent.com/cranci1/Sora/refs/heads/dev/assets/banner2.png" + } + init(episodeIndex: Int, episode: String, episodeID: Int, progress: Double, itemID: Int, onTap: @escaping (String) -> Void, onMarkAllPrevious: @escaping () -> Void) { self.episodeIndex = episodeIndex @@ -43,7 +53,7 @@ struct EpisodeCell: View { var body: some View { HStack { ZStack { - KFImage(URL(string: episodeImageUrl.isEmpty ? "https://raw.githubusercontent.com/cranci1/Sora/refs/heads/main/assets/banner2.png" : episodeImageUrl)) + KFImage(URL(string: episodeImageUrl.isEmpty ? defaultBannerImage : episodeImageUrl)) .resizable() .aspectRatio(16/9, contentMode: .fill) .frame(width: 100, height: 56) @@ -98,7 +108,7 @@ struct EpisodeCell: View { updateProgress() } .onTapGesture { - let imageUrl = episodeImageUrl.isEmpty ? "https://raw.githubusercontent.com/cranci1/Sora/refs/heads/main/assets/banner2.png" : episodeImageUrl + let imageUrl = episodeImageUrl.isEmpty ? defaultBannerImage : episodeImageUrl onTap(imageUrl) } } diff --git a/Sora/Views/SettingsView/SettingsSubViews/SettingsViewPlayer.swift b/Sora/Views/SettingsView/SettingsSubViews/SettingsViewPlayer.swift index a4e7d34..d07110d 100644 --- a/Sora/Views/SettingsView/SettingsSubViews/SettingsViewPlayer.swift +++ b/Sora/Views/SettingsView/SettingsSubViews/SettingsViewPlayer.swift @@ -54,7 +54,7 @@ struct SettingsViewPlayer: View { Spacer() Stepper( value: $holdSpeedPlayer, - in: 0.25...2.0, + in: 0.25...2.5, step: 0.25 ) { Text(String(format: "%.2f", holdSpeedPlayer)) diff --git a/Sulfur.xcodeproj/project.pbxproj b/Sulfur.xcodeproj/project.pbxproj index 8e19b85..c4617a0 100644 --- a/Sulfur.xcodeproj/project.pbxproj +++ b/Sulfur.xcodeproj/project.pbxproj @@ -18,7 +18,6 @@ 132AF1232D9995C300A0140B /* JSController-Details.swift in Sources */ = {isa = PBXBuildFile; fileRef = 132AF1222D9995C300A0140B /* JSController-Details.swift */; }; 132AF1252D9995F900A0140B /* JSController-Search.swift in Sources */ = {isa = PBXBuildFile; fileRef = 132AF1242D9995F900A0140B /* JSController-Search.swift */; }; 132E351D2D959DDB0007800E /* Drops in Frameworks */ = {isa = PBXBuildFile; productRef = 132E351C2D959DDB0007800E /* Drops */; }; - 132E35202D959E1D0007800E /* FFmpeg-iOS-Lame in Frameworks */ = {isa = PBXBuildFile; productRef = 132E351F2D959E1D0007800E /* FFmpeg-iOS-Lame */; }; 132E35232D959E410007800E /* Kingfisher in Frameworks */ = {isa = PBXBuildFile; productRef = 132E35222D959E410007800E /* Kingfisher */; }; 133D7C6E2D2BE2500075467E /* SoraApp.swift in Sources */ = {isa = PBXBuildFile; fileRef = 133D7C6D2D2BE2500075467E /* SoraApp.swift */; }; 133D7C702D2BE2500075467E /* ContentView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 133D7C6F2D2BE2500075467E /* ContentView.swift */; }; @@ -56,7 +55,6 @@ 13DB46902D900A38008CBC03 /* URL.swift in Sources */ = {isa = PBXBuildFile; fileRef = 13DB468F2D900A38008CBC03 /* URL.swift */; }; 13DB46922D900BCE008CBC03 /* SettingsViewTrackers.swift in Sources */ = {isa = PBXBuildFile; fileRef = 13DB46912D900BCE008CBC03 /* SettingsViewTrackers.swift */; }; 13DB7CC32D7D99C0004371D3 /* SubtitleSettingsManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 13DB7CC22D7D99C0004371D3 /* SubtitleSettingsManager.swift */; }; - 13DB7CEC2D7DED5D004371D3 /* DownloadManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 13DB7CEB2D7DED5D004371D3 /* DownloadManager.swift */; }; 13DC0C462D302C7500D0F966 /* VideoPlayer.swift in Sources */ = {isa = PBXBuildFile; fileRef = 13DC0C452D302C7500D0F966 /* VideoPlayer.swift */; }; 13E62FC22DABC5830007E259 /* Trakt-Login.swift in Sources */ = {isa = PBXBuildFile; fileRef = 13E62FC12DABC5830007E259 /* Trakt-Login.swift */; }; 13E62FC42DABC58C0007E259 /* Trakt-Token.swift in Sources */ = {isa = PBXBuildFile; fileRef = 13E62FC32DABC58C0007E259 /* Trakt-Token.swift */; }; @@ -118,7 +116,6 @@ 13DB468F2D900A38008CBC03 /* URL.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = URL.swift; sourceTree = ""; }; 13DB46912D900BCE008CBC03 /* SettingsViewTrackers.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SettingsViewTrackers.swift; sourceTree = ""; }; 13DB7CC22D7D99C0004371D3 /* SubtitleSettingsManager.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SubtitleSettingsManager.swift; sourceTree = ""; }; - 13DB7CEB2D7DED5D004371D3 /* DownloadManager.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DownloadManager.swift; sourceTree = ""; }; 13DC0C412D2EC9BA00D0F966 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist; path = Info.plist; sourceTree = ""; }; 13DC0C452D302C7500D0F966 /* VideoPlayer.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = VideoPlayer.swift; sourceTree = ""; }; 13E62FC12DABC5830007E259 /* Trakt-Login.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "Trakt-Login.swift"; sourceTree = ""; }; @@ -140,7 +137,6 @@ files = ( 13B77E192DA44F8300126FDF /* MarqueeLabel in Frameworks */, 132E35232D959E410007800E /* Kingfisher in Frameworks */, - 132E35202D959E1D0007800E /* FFmpeg-iOS-Lame in Frameworks */, 132E351D2D959DDB0007800E /* Drops in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; @@ -262,7 +258,6 @@ isa = PBXGroup; children = ( 136BBE7C2DB102BE00906B5E /* iCloudSyncManager */, - 13DB7CEA2D7DED50004371D3 /* DownloadManager */, 13C0E5E82D5F85DD00E7F619 /* ContinueWatching */, 13103E8C2D58E037000F0673 /* SkeletonCells */, 13DC0C442D302C6A00D0F966 /* MediaPlayer */, @@ -398,14 +393,6 @@ path = Auth; sourceTree = ""; }; - 13DB7CEA2D7DED50004371D3 /* DownloadManager */ = { - isa = PBXGroup; - children = ( - 13DB7CEB2D7DED5D004371D3 /* DownloadManager.swift */, - ); - path = DownloadManager; - sourceTree = ""; - }; 13DC0C442D302C6A00D0F966 /* MediaPlayer */ = { isa = PBXGroup; children = ( @@ -480,7 +467,6 @@ name = Sulfur; packageProductDependencies = ( 132E351C2D959DDB0007800E /* Drops */, - 132E351F2D959E1D0007800E /* FFmpeg-iOS-Lame */, 132E35222D959E410007800E /* Kingfisher */, 13B77E182DA44F8300126FDF /* MarqueeLabel */, ); @@ -513,7 +499,6 @@ mainGroup = 133D7C612D2BE2500075467E; packageReferences = ( 132E351B2D959DDB0007800E /* XCRemoteSwiftPackageReference "Drops" */, - 132E351E2D959E1D0007800E /* XCRemoteSwiftPackageReference "FFmpeg-iOS-Lame" */, 132E35212D959E410007800E /* XCRemoteSwiftPackageReference "Kingfisher" */, 13B77E172DA44F8300126FDF /* XCRemoteSwiftPackageReference "MarqueeLabel" */, ); @@ -563,7 +548,6 @@ 133D7C932D2BE2640075467E /* Modules.swift in Sources */, 13DB7CC32D7D99C0004371D3 /* SubtitleSettingsManager.swift in Sources */, 133D7C702D2BE2500075467E /* ContentView.swift in Sources */, - 13DB7CEC2D7DED5D004371D3 /* DownloadManager.swift in Sources */, 13D99CF72D4E73C300250A86 /* ModuleAdditionSettingsView.swift in Sources */, 13C0E5EC2D5F85F800E7F619 /* ContinueWatchingItem.swift in Sources */, 13CBA0882D60F19C00EFE70A /* VTTSubtitlesLoader.swift in Sources */, @@ -840,14 +824,6 @@ kind = branch; }; }; - 132E351E2D959E1D0007800E /* XCRemoteSwiftPackageReference "FFmpeg-iOS-Lame" */ = { - isa = XCRemoteSwiftPackageReference; - repositoryURL = "https://github.com/kewlbear/FFmpeg-iOS-Lame"; - requirement = { - branch = main; - kind = branch; - }; - }; 132E35212D959E410007800E /* XCRemoteSwiftPackageReference "Kingfisher" */ = { isa = XCRemoteSwiftPackageReference; repositoryURL = "https://github.com/onevcat/Kingfisher.git"; @@ -872,11 +848,6 @@ package = 132E351B2D959DDB0007800E /* XCRemoteSwiftPackageReference "Drops" */; productName = Drops; }; - 132E351F2D959E1D0007800E /* FFmpeg-iOS-Lame */ = { - isa = XCSwiftPackageProductDependency; - package = 132E351E2D959E1D0007800E /* XCRemoteSwiftPackageReference "FFmpeg-iOS-Lame" */; - productName = "FFmpeg-iOS-Lame"; - }; 132E35222D959E410007800E /* Kingfisher */ = { isa = XCSwiftPackageProductDependency; package = 132E35212D959E410007800E /* XCRemoteSwiftPackageReference "Kingfisher" */; diff --git a/Sulfur.xcodeproj/project.xcworkspace/xcshareddata/swiftpm/Package.resolved b/Sulfur.xcodeproj/project.xcworkspace/xcshareddata/swiftpm/Package.resolved index 5fe78fe..a843cd1 100644 --- a/Sulfur.xcodeproj/project.xcworkspace/xcshareddata/swiftpm/Package.resolved +++ b/Sulfur.xcodeproj/project.xcworkspace/xcshareddata/swiftpm/Package.resolved @@ -10,24 +10,6 @@ "version": null } }, - { - "package": "FFmpeg-iOS-Lame", - "repositoryURL": "https://github.com/kewlbear/FFmpeg-iOS-Lame", - "state": { - "branch": "main", - "revision": "1808fa5a1263c5e216646cd8421fc7dcb70520cc", - "version": null - } - }, - { - "package": "FFmpeg-iOS-Support", - "repositoryURL": "https://github.com/kewlbear/FFmpeg-iOS-Support", - "state": { - "branch": null, - "revision": "be3bd9149ac53760e8725652eee99c405b2be47a", - "version": "0.0.2" - } - }, { "package": "Kingfisher", "repositoryURL": "https://github.com/onevcat/Kingfisher.git", diff --git a/assets/banner1.png b/assets/banner1.png new file mode 100644 index 0000000000000000000000000000000000000000..72ae268527c5f3f759a0ba4179d9a8d7ab1b09ec GIT binary patch literal 185325 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�|4z3$g9-G)8! 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ν)~101q|b5 zYH3h!FVFd-T=D}+7^@I`jcXj5rbNvtcXRu#@&=lw^D_tNNU?-I*P)LLW1E3VpFVwa zkD->IA6x8Mm>RLc{w^46C9Ok?M)u9t?Uw#$Mp>i78OJf9Kw{oI03{csC6t|9o@D26C%c^mRjF>~w4dzc4n z!Twhv6B3sD*l02-=R(R59{1br^$Ll4P1vN!TF=CrDBuLnael{TGYXM`9(>hPDze}dXRFN?A}mctb($LG@agOtIc!FrKf>fa*QL2a`PrmE}> z)``FWs(cefBv29Z-P9VMfMZSg^20sLIJfIht@l((9jOS#Q<{DZJ_KK1(D(7ryae;0 za3jw$YPlfiMxy7RYrBJ9W1>9XU#jtAYS*>Dv}PfXLqg$x(kGC>aiFzq`a@>Y$@;!_twRp)s~}KM4B12u-$%xnPRR| z96m4zwUHQ}F$wU+b1Cp9^d)Bv6p%7F(MQ4qvRC2P_g;*n^G@h`m^fGHLvJ=I#d^+F z(OBRwEg$&N4(soHZOJ|6H6<+VJ)%)gT$=VB{Qaf8SX!jnQ2v*D7{UH{z3c020~bQ! zYqM+^$`=!~iT4J>F4r$nbTApRlgqySt@!@?mcxODh(NVBtt>d}y7T1ranY(R6QzH6 zg07NxZgoGES-$WY)t6A;wIOp17kM-VJq!A>^C0ZIGE>s)7OO*uBQNHtOtYnO41LC= zW&FGKn?#SfvHn2&I8?-yW{z>~p*;QPnz*SWc2{;wVrBY6g}R*B<(n@sUs%NRFM z=vt)TR%6t?-*Zv#;WFzrV zwF`zz`S$B&jg2{;;Sczh^*gG)wkYSi)vpy*Ufs-_5Gp7vVP6Kx!^~o<;0!v7Z`4w zK@0{brlQUSEOSuObMYIgeFqhiAmV(&0<9<5XN zg5DT=W=no0d3ysD-p7o_5^WRx5MW`T_`+W&jKXl z)<;B+*YWc$HnMxt>G4ELE_(WxW;RRgo%xh|ZE+Ri_@+DS$Qls^aBC8KM@8-1xAi{P z!3m38(?h=CwB`((Y`!PXK)KHhFqFa6%TR}k;T8^R}Z%$L*qg=m&W_ADP;;W;P zF-6yaXXhN{@YvN78-Rhv9a)(>R)1N($HMbyGNh z5?Fs63IUk3`LZ3`p)4j>d}EEHzz3`O)}yz>{caUS;Ley;RJCrSs;_JE>inc0W9XP+ z^eC#;e138b54N2oOz{aLLNg|vF$qyjbsOp1H=7V*vq9ZO%c3b@(AATQL<=4*Z=K(F zUA5daXL)h?p6(Y7bFe72e@>mBGSoTOSo|zhe7?i$_AJsPUd%`wz0l_t0d$uwUoPm= zpK;M&zG#%%>wT~sWxZGF1dD&X^CmVoZVoR%Nj|rU|Ld~EaLCwAR)B}S!qwQ57HZbc z@>Maaw<9^;dptsu02mdD{^|dVodFeN0A?W*UZguIVMol6452e$l2*UV88@m(u3~OY zca4igqb6^dfI1T#&MRw3A3apdKP>Q_@mLsfw^D}b1(#HgU`&h&;w93_zLE!+f*}})dS!qQvNSn>A z5q553&Y9d6i`##>9D#<3Pn3bDC?F9)Td0b>SZpkE_L& zgx>}pXEtGU`?E^!`3WZ31xZgA)kxOFf)&vJ)WZmP(R2O${4virh2W-TZ3G+tjM^*H zU+ZzGJO&*|YWIB0Vb@Ut`q)M1rElMDResj0iZ3hGn46=KT1{5NZu8dm;%zQx7$Gv* zZ{z&-&Vd82TlqKJ8pBKGDu?$epWxR~z4V>?vSUjkh)m3a%(RB7XFk{JWVsEx$o*tq!%+xfVuI#q|Na{9~wmH zf)ilrqXz`mg`Yg8Pt_P0%o3P#zq#rj8m6V#rg3X#z8#^Y&dF(mqCE5EfTc8Qv^)Fn zmfF9y+h`s;RYM}gU*5ln^4bl?{-`bUWUcYu?{h6L+e4|`;Raj&H?pD#FB000oU--Y zNpjJn0ss6l#zh*|3Kn-d-_SVxxHl-ni5Hm>C5>+Ncc`6kI=){e!pr z4|Ov}6qmw4lsQ%I1qQCmr**NkN1SRLNHhm=mSBNuB852$#8{S^%9 zGMzv-!z|a5C^BLBPhwG~97^2; z6e;Yu_Ed-R1Zdqkys7Zb+6Pp5>ZnXS3kR76j)A91E*fLCeaf^=`@uf(pW{0Muv$rc zZy=AKMU%w(dD@z)2SOVp&as9`#+u;Fub|nmj;mut;1j5CgB|kJ1pmsMg{I*f)A?Jm zZ;VHh<@N-GU`gjB#b<4_8X0Y(m28yKq(*qo&Nh}F4rXORfI>Z-=hOdMlAd6H2l_lA zaPu6k$neLQeEr=U1O{OpE9kQ&N(Cl(p*A>-XtJa0DoP&OT{!{a(PYq1gbzG;CK!0` z!4A;y3XrN(`?jUB>C9!5SF4815o`y)XBua_AIEF2_bO*Mt%n#uVvTNNwYT6?N%AZp za_N85Ftx1fH8L7!v1#I0Y&JZS9=%ZUBD&ZXWHNm|p_DYsG$5+cSOQ~00BN?oYXq&w zDuxV-ru~SHi#Mx|e|<|jF*HZyxI7t?D^bB7=krVKW}eDnQ2au;A-Eu{0;Lda>{P|JivXM@`-qWII8_JlUw9EvssM-}8XO)K ztd!mvP9P-`MSv;rRL*{PMfbg_8b8u|E1mlbgQcowGY)PsrICJJYSeshj4T(Xr+gf+ zl7)s#`?hN6#mbXpyJPGSc&>f04w3@EM^^v}A{dZuyBe-BVjC-Az z>E3NR49BUWVp)}Kt~VCx#m+(K3iTKK@Ezj&adb8ZeAA1;Slu-|5?drpMJaeBvaIFW%#!~KNpMVlxWJ{F7B5L)btJ~Q?H(myI{xq!fS=wj*>%Z3g6Ypse88C|2rtL*yiUJq#}OA9?GEZE)Y2AN_>kVK(JM6u zVugK9xa1z=AO4AUr!}+(uOF&(i_B-r)U5J25gZk_KJT2&P>wF0Qe;wQeQi;N_G5Ik z)RCT`a+CP@zU}ltAMsQV#X=0Yc56LRFVA|DXSGToL=oWWT;#zRGWjgR!-DUJhFH-+ z2|~}OPZgbvI#aD9CobYG28OeOKN8sc zPPGy6)#p6+n)_>Kog>U4uxEXV)1$?Ck4qV;g4n%foy?*w)* zU?*i=sHfL$x$JHbJN7q7Fpq5$U(u(e;cLkhwpYMzDl9c99B|r{vQhSpPM<3 zx`o&9uc)#ya*QPikV~@7n0>PzR6;eBV&WTm&femYry_y3&+6ezvxJ!yJb6M2T+sy& z#rvRFZnjgF_89T9ammf$po~;{pDi1_R3z^~%gMJ@Wp#%* zOZ?L2?$oR`WFo>F1VFHD_ytVM>96t z3>+vuEE+W2xTzsBKiGvA%>eJNvA&J$;8Yg}h(+kfq8Mtgd9q4jHEmC_0|XQDx#yBr z>O32~PdNOcYx>r23DI){r6SHYGk%Msr=8}rR>$^1Kb8F{-COKHR81>t!{MJ}YA{LO z>R=RSHIYBBCB<^RjNL3kUGb$|>mE+;%WzC63%Gmuq7C-ZK^<>e40=>CONrbY{S0o} zRgL(!^t8oEF_P7L8s{Zs3pB@Ejo+*DeD$vWn0xEoM!l5hUvCt%c-(*`7(kEgn-nxf zl4o5Yn!DeFqFo z1HaOStb6=cB!xn^G}ipPi+-A}yrnCLMA0UJ^Pe(pI6WK%G|M(Fg!w8bmS!n>l{&bI zH9f41`VYyJnAOElA~H{^Xh8^Db{650#VOaQD{N}hL(yO3@D6P=&?w`ho2(rbHixLm z0rv6X>pk-Be9vl@0J#n;oe2`q(a<_=2jh|W|9~%KfpH}WJX<(C=QW$IAwhMk-lslX zl8+>Dl2OiI=WY>HVPrJn&q`KgE;=M3F!EdKGFO>}Y=bw$3Ax)7#n;M>>mX>uDULsWw zHgIZPw0(wCyQfj9S{@=MN_3A=bTF}SPyinJTzp7&qb0WeaeVz$@qsuaV=s{G`zr;1 z#;ic_m#*RR^5`royjgK?lZ-pxZH#68zTsC zL~Ac_Vj(pd<|<#4@5kr$I=OvInw$2>#p&mJohi|g9|OYJo&`*NI-`xH9dH?`&*4*w z^Mw&9dvuX!6?Lw(QH|$6D9@$SUnD2QUdP88{wK>(ydx4hzy|xoL?GLdM3xg4( z*%38%`t$BKLUE3_9WRBWO<76>?w8LZ#QrOp{bM=xTCT8%`R-*Ou*~h|NKF&Yti>9H zT1KSg`!Zf5Im!4dPsT00&i&N@p0^tL*%DJH;n4M@TVS{3Rt$m;$!LY?dV1zh&MJpn zoW&%xk`m4)PtE;#7BAkRp+~M}hmpd-X589ApLFv-mH$N1KUULzfED-sr>~_ha^oLs zdn7_MfQ@1i{&YQ+)_H&wMeOsr8rr)!wba%K>l^IY3;`5pexd8$9{uaO*LA6J?G-pO?@XXb69-+gEi!as3@j=V4FKCG*rCA%( z)`LX!j9kE{PJSgGU1vZ_nEHPj$| zQzS0L8I5i5av-Yb^A-peJ3ZKu>VS214XQwBY&rv`n9SseI!4!P&LC7S3&zx^Z_$QE zd7FR8GBSdT|KF>(3pkV=94_^M;XJm8{=V8XIXrAEJy|>kS;;5k`yzQ$b2m8%M_xg} zS|D8jOj?2VE!`X|^g?PEWTI@S{!6|rYL~Z=!fmo{I9*kb*@C`%#!?EmdB7X5WdPifo2kh+% zZ#dr(3EE;Yk=3-_SFyq4LuS}pUzH@qoRKnMIi}4TBfE4Gp_c9BMBDh}ywZYJYuH3= zmyK|`_lC1qgjtUscDO~wW-xQEB~-F7tx2zquLYF2c;0_Ye$__eZ$%Eb87`k`$!!0z z=&t;G(kat!!MJ&!E^>H)R?!Rcd{0f7LAfNhud4KK3(cZzJP>g~zk7>wNue?ISxUT- zA*G0LW}XFr44;9}ybvc*2)s}H*$TzG+;-Ms^atbM&6dy_4C{jPY9@Sa2fx`V#oOZ5 z$J0_DN{^tQEi9mny+8B{~iSo@xgjVXb( z%FBN$l$~ooXVZMBuqa799shteC-3LxBpB+K_AQ|_334>Fw%UC$C){SYQGWlOLM04p zG}52#QxW_{>Y4bAaGo{)Xr(!PqQ%GY%^B7&VBFQlx5|HggB^gE3G}Sv2h73Y+8N3B zUJw!nRP&zuSNZje!e}m<{d0O4zeMk8-9|Ka7lZEaJY_W-23XLNRQS6 z8m&%Mwj8000p?*_!s-T+H`V?>hZfQT?m70Z{`TqA&lchS`Of$dvd6Vah3P|lI7Cm; zTXK*X*wgVDPMz)D+rXOlJl#FxN|)1h2o!F;B-y4VQm&TJxBjW@-}(LokxsGluHoPd zN*mSsSfcS09jbI>-Q>sd$>U$Y+TgS!M4a)6ybBkbf{Q|eeaG@}Z?3(yiUb3@-r!7S zKFsf3I)!YyTKZEXo51=i-sz?iYSSvN2bu|S_Ma<*=zy`DEaFGfJ(YrIC0O~jlPqqQ$>P5+Dl?FN3O5wKid~2=^Z#qI z{Cp(U2_CiF3rDBc1s4k(R3hI^nu-k!zqx;_x7<+2vd20X+QFY`+D+YR)ooG^#J zQJC({Uf3WA23K>cc(qP3ho3YZ@F0^o2RC~@#D#WK}+J$1-T=dFc6^mSFq= zf?@x~O3;-NMk)Kj!HlH_PAjm5reCjB7J?pY*~jm!n`805s`bNMu55OO^N`vI8)jhB z&^yW;nWbFQK;=z!<)FBKwEzTKmf_8I(;DcfZ6$XP-XrsLtVfi|WHx&IBHQLvf^m@! zuhmg6gIGC(RR?r4$Bl)Y=56m~QM8=6mIc@qFa}Wt?H^B_8w^-&&F1W7fKVr!&vLam zA}i9KP2f5%i}ze%pk^A;jdj?q2Xf_0dj80s`n{a%0|lP5RWFACL;wtSTtNLy@La>; z7lbe3g)w#I*(E>ndOFHk?Xvk))M5O&U5W5T=0Oq}u49<>7UP~5>iPWkvgA?54Z$cu z5+ldHAU!=FX-k3Nmj}cIm73Z!g!M#lXT2PRX9Jf9_lL>)FNs2e z1hIq62aNouPJ-3%PwzNfb@b8D@7*}y8r>2{2=NVE57D+rR?L_g+Tx zk3?A{oP3lV2z{DL=BZZGqyN`2SwE=^`-VQqZKhM30W?l#K@JR%McSH3++Vf|40~~X z5$f^vy5S$bTsUn$x-^y5j+<%2Y~SNS@s0tpD^weNlU=K-uQ|L64+hZVKb&R?(U^8Z z8=^rOsO$edJ(%tZ8Sxx_UX>X7v!VGO&v9VG)x{ZVM#=VXmZ@{1>7Xk-OP|fyx8HLK zLz(u7@FN-_@UVAz04NmCr?USNgg{UXJqUdn{?$hHUgCCdGYfAG;cS-(r=pgYD$-q8 zAQoH$g%!;;y1Bbl3&C@XLuyhyHd(#U> zGfB`F4@Om9_Gr-RZUycowo!T`1Q>?u+GlSWY5Y>rAfJHr@!);$>txtb`3JSyFr5zF z4uig7QQZ!hR~nS`DZzs(b}6w)Z!BWdqN9q8R2VOV{S6#ghxvcq2LF{ysc~V4Z}C=c z%9F;j6}a#)vp|ckbncvwu3o+iW|JT{?KDpa8i=het5!c zRFJP8Z_}r&^kSK~Fq^A&7N}#y<}yD2{x}TvukABS5S?@!VaOy0g(BSZo;LY@g{E^#HxiF$fQlzv+?Qmq?% zw%0Gu&7w+CJ7$`SvVhy{W9^G?J+L!|!%~i6A!Os?1^Rmn`lWupj#l04xKBs(acYwKNCkovjxi z3ocgQ4<(+nZ8@g9Sh(pBoo8@rn|(WMXP;>bUZlK^o){B%E)@lR8_zt(pnY3`N`bgL zSKGhr0?aiB4u&Rs1Mi4`jln~sRL$4Ok!nDnjaP$W0c=EiYd}vvK^8nUwBIs07yz}R zpWj(`_$j1IA;y`9qafZK^C_r`RDv^A8RT>$1lK!nuG~CgN8)ajYAp;IyRHpkMVr0_ zg8iYdO`L9koq<+m#P`yZC~6B?z`0(a9w#oNl-3<)lM#P7#W(~3e{#M+#ZBx@{DL@i zUNE=4DFCNI6M6dG@I@soIC_+?hv@?g3*;w6u+g>+a0@ceG_WRj{lAv9NVe#DhzEQ= zWpTu52Ua=stf>2A{uZjS+j%jOv{~=L;Sv2&*s@}*^3bFxJfFS%TUvw;^P>IDFEHJ+ zOTNa|;fddVgSYw~()D!BRUgP|NTDvyWIoJ(dF0pgY>h7q%-RqP6HRxq#E?7hqRFm& zC7cQq-d5qhW6R)2jQ?sMfGq)ukOjh(-#PKResYHm=!MhUwKf8y;*mnNM9ixW-i=hi zLVb5$;m8Ca&);7EG9f*2`Q^Fl5OPCS-&T~-JTE#usICjoKE?$Ovl269{5Rnaa6I6D zDQKI@!ocMhZ_t@awA!J9j*-<9cr`=_@eavhZq;pnHhl3+ z=;&gCV!IVqNIMUszF4?a%h|ndklSq`ln&Tl{uG**SZOE^APiH+-$o=q55)!h0WEQA~&iy>}G{=ezhO~AZ+0;CQnnVSYD zAp#2NYT5x3`Zr_0yij<7zr%@IV%*FPTnzKPx6?zk(?*?8Vbm9W@$ zAbu#0e_Hqu%97kz$?;%aFphrKtf0wxGx)T~`=_7V{*+3v6ALs1PG;MX)#Ouf19(A5 z*|wX&PlOEJSsNr^`RX6!%oZOkPRmvXL`nS3#_klKo%%rb;FMtWnRyefhQRTW!qIrj zu%wCpyvu5XS6@!L_`xmTD*+1FjctF!I&|P*2(YP0!5oZ#^N#?JAu#|p#GK#=K1~saX*FyNZ5^id>wo+h zI6`|x**`OgFbufpBMbB}upK_Vd17ott1i`s!RQM2J2gRpj?eAsx_OP+iWTCVD<U<(CNKAfi7B ztODExph6K>JzCp@Fn@$!W1}nz2Lo7VCi09B40Ue0=1SI9xVr|BL?QUw-{-oaSmi%~M;H zbG0jlH3o6eRC$gn9tGXZU+gYfAtUt5LJtMvNC?K_1KcVS8Ni@^5si>|`t&XRyz{Dh ziYn2raxj_&po!dGQGZb!EO2GYOK5A23&1Pv6>oG?mZ~Drm@jEGwmx{a&(V2XAVB6S z?zSsw*Z|2s=AXL!aS?J=j3jYpGLjQ=dd3HAbtr3<_&2o!ND83P?j(g%Q^B&xa8R#6 zVT>n$_3oAo4nNsT7+;gbTtTi$(>$af$Og!yh7VR7l2)*Sn|F0(Oy)1z z#(iOVnL`3=O#$AO0zsd4G+qTS#9qP1ON!U_7;)G7VbY}Kt zzRBWS2^7Z(bZgC&2X>$!Kd2Y*{r0)8;7SX2)RP085h-LV+w=di4WLY~;Z+wAk9?z| z?B6+J?4{bzJuE?JZkkc7sWrF!hMBoONch&$RrPhE$blH8m|aC&bK#*_VcK+1azg-k z3CN)@1%bk@w63{W8h8Z6zP0Xj9hNUkhuy#sEaO}EZxHih2Noa(iXA7*u2gS$6wbcH zeps@lGMw3EibL#o&B5@P_)8Nki$2p~zFb&yA-k@}s`GFf7QC$D3qbLVAByV^f*OJi zG9rf-m;E@$dl!SE)~}zS9J;pNiFRq(Kkf9N?wkB-ksljNj^BxUf-K4NdeD|lVw z>)y=zuggJ9ueoqRP*7gmO#&m-fA{_GthnVHXhl$4&vNHQwo^V%`x+uVd}wd`Z)t?6 z0W=Gwhr=r$`O=exM@8|XGCDkRPHV<&2lNYTW+Y&xVbhw|T$Vma zgO1Bsu#W+PN)nar4TlXiKGQ;CenWl~aV=*zWVgW;&2?e{%K0aAznUGZSQu-B%ezz*#|#lc@tLWEMf+X>Kr6%sEPiaz)VBoP!C>0Hj9k^>BK zuGeADU~83&}4i+@~AxLO%qbXu?deemwiQ#k}&!C(B;K} z(G_)2jSL7H6w_XKwX;;5(3m+l-scQ#9I8BJ{67V9M?%0~_}VRN{7cNPT}i=m?pFcg zc;)QnLcivjo!-`LPlelh9OHdboVtYt+#9LFZXouDh-@yI*K)0CZnf?=SBp;z4pndjoYQf_+)Pw0>dk_|X2e`pF|tI3SE!d)6>q^{dTw;xC9LA@E- z=7MdN?^H;^%r{uD@<6dc)&bYITu&)FbF}>>VR0A8)-Ox9-}RuO({I%gFseW}Wk|wE z5QwOK9$Q>5FSzLXK1Mo1h|thr!YSICWtFw1FZh{9FAdbW4gz zGhiViCEY0@0s|=0FqAY5h%n^L_YUg&^I7Zr4?NFW&s{F(hhgqL_ndupy!Jk?U7%k- zkw0ACGLh}VX*uBJH-1DsVWB(pqHe2Hs4aHa@bgLTej7!{;rW(^aGrHXveg&;v1f1$ z(gR#4K=IQ5EbNtaI7K7Ahjl9v8%RP4_?yG$fy;qE7YCtLrJb?zaUTvrFG^)hQM+tew>ZzRyu+eywB z@uuzsH!;?p1LztG(VUv7!U`=fzF4}`&6gY3*bfUQkk<+ zJl}JAT5tYdV^C%l-8o$?wNmRD=yA1KWF4DB)KkloA@P2VI-yaSQtra_5H;$ z^WTwx4gG)_!fb88qyVnLnD28`O9mNkCQH!aZzlX@TfW8g+TP=fJBz|wIY&t)I}&{+U844{rzIMKw^LeWdkmC>;5{ffd~Q61 zemdX0m7r_7Pz1^jMT)(BTZ8MYVX?*_+q%M#5|D{m3XP6`nCG9ZsWR54v={cpLQ#!~ z_lb1ZTAL1OZak;R9nEfT;Es7YHVqTJn5PdB=CP^L&QbQMe zQg=y-*wzU^I#Nn`mMaYR_nNGEERC`D;6S{Hwcqmbf6No$ng7)|5dMdDu!cM?&sZTT#v^}eNRyA)a0xI+g zoiW`18Y!{<8jjfFb)tB2s5=)853YpKt>Y|No+o?)ZjGg2_~UO8VHW`w3jmeuDLi$4 zj<0mIdA?^Zf&c8vvwG3AMhA!nG-CHzDH8nm20>;_)KF{@I+A1(@r{PV@CfWVeWMKAT$Wy5dWr51eFciN{` z_RrNNb*^G|^`)JKbK)@Pwc0?qL|CEO=|z!OLrdr7Bm=)n#nEi*geS&N!BQ~)*Mboc z3@lb4Dj!Co(Q;;j9X(})D#4!x-(mr?E~)6b_@F_qT@}vh zD+5IFipX|fekOSP;`^|~Zh(uFDil~i?r7+>^@w&lfwqQZY9TEt%?wno|xUuj)CT~X$sGUPz8Z9+&&uwB{u};T-C+z{S z2os7b_V0CQ8Xrh=;J0I6b0WXCVH3j#fE}HmkF(dljKF)~4?gYgQTd{MvKI3iq(sDn zoM7@ckgL)0mwW_92Mi8yiGW*OIbU7k!@pwkyX*kp5L7&vuT z?+RtKIS%~Cm6$N+<@|MxuEY*YaaW=G<34WI=Jh5wBHV}jCe#25wdkDC2zCb@9Pd^x zyz#6I1|wDAusy;K)s?lfAdJ^~0?@YpUDYZAEJ1vn`&?dV@6UMG?lQ1EZ&AC+^~hiz zu!koPVjHJX$@v~IQn2)F@D};u^^*$39`s7HWdFCN#(+JFud0VEl-`RQ#aCPp#}|u~ z6$9L}aNXLorr!u+U#&xCz%G0FB%m2VGx60iAv@4t#j(@L#ZM78?M%iLNQ07c)(Gfo&4hF=9~Qvax%;5i`R! zk6!%Q#533!H>>*_r~miYVx*l{Ut(dAeEg%G|KHcZto>gx zEu&umTg`%{p`vI2tX`Ef9ws)%k6KWulVcdakHLR2m+Xf>(A581*Z zXJ{HOTHfEIT(v{tuOJj{4CLVor5~pt>Q3$TJFPXvK~`?_m$d9_`6vuHixuwqEdK9a zzDnn-D$+Ee{pMqS#f1O979)J!j+D$o0h>15dJ_l{xb~eEAcX=8WRmMmc{S7O*Srj& zVxUN`HG)0_5_2~ogXC8JN2|{MF^h^kh_LzRPNzyc4YM(H_>u860V-Iyi&^9W>UJLB z!smJJ@Q=-UVDWJHm-7pW2(WmhNRt*RtO+UqN9GDYO#}h=1?((v!z(W`;|vWlj1j?C znxSMByx!d?v_*5X6YD}V(t|U?-wC!QMG=CWM92|$R3SL<71)2_F7C-IN&>wQFxCgK z3kLuEJK%mm4PvL;1scrv8JAk=g*0h4_CYP_`A-8ZqE3N#ZzafobM8N6X+efYw;}z| zzjrOlDGKKT#u0l-HVELA;;E;QO`J)k=Z z|8`U?=)Mx6&)%C;>06zZe(Uabo_21jkkIeYCM1^3x~yJ3yO31ZaY>g15;6=q*IgQt zDX^7v`wD^}KnB0fwtE)8VAAJ6GEbtf5%|D(9>7yD5a&6XS%-&*A7>1x(u`oYtPNYm zvB3&0Nt0MN+mTZK*|Y#LHye8)7suIs@DRyOlPXx$|vvHCy5CD1jv`N=v=?Uq!5dl zSoL@VGM7wn=k3NB&sQQ6x^S*rcE=p!j#jxtO%jsd$T_jr@)4yx5B@}WK)hY^zoV|J zmFr~cJck3gIcaD-n+w^ucc+yUdY_p5MX@qDE+a=XpT8W8|o6PZyvASNQhU&smgWz_VaO3fUG~j_GA1OYf)K>2U&4MUp|Ac z^Olhwd*4so6E>b)hingVg6y9c%N{b!04Z*XcnRm(z$9;+#k=Oc(<~{ML-&}A{%p2?puuj( z%uAN*I{0_*%eLYv3M3qynI0u;V9BS2L;BzhJZU27m8QuZ#TE?{GhK~KNPz?JLL>Bp z`6b$`Kn$WeSD`J=Md}QP62i{E1RC#U{Lt74C4^K6V!{(Ftl58kg#fwf5hTJ=obDBW3)*nf~_FV=rcEWu3_5~`v*<-$U3sDDI-3SHM zxoHEB3J|Pr-u(A&%QP1uO~ATUZs3A)0sh<$6l{EHElVA7C8_}?|K-oGL=~&6l@*P4 z2xZ|>>se59y8rYk%zvPl&;?80_>+4G2zlwB3${3Dcs`xGvVb@-C$)5&hoe<%U{WKe zh2V=lis6_AC(pfQPu9~ClXkSRP$OUsfJ?_d>5r8G0xzKQ8%t616!U_pHWeO1BCHXD4=V7? zL;slf{Bl!GrG~47=d}k^Z>m-6;rNKehvY|c_C*x9#Wexv@f(4#S)|ex?xpdK?Y}lI zii9yNlvr)yNQL*tC)$FG%gTvQ^oH(p#LhtK=nFW*+1ZxKC_j9eyBvat{W3Ofn2?4M zv@4^kald6XWx$-h`YP<{oPYAU3!KkYpAy0pcfMF~2<%F&r!oJmeL?g5`&S!K9LrkU z%f6mwW224|;q1mQ5gFf5>^gEc0?xnU zROq=zf<@{kGHY%u-6CLQnE!!%xh zT>K@=VASLAcCFL-_+=%qfztBIs4|h$(ot12HkXlKlcKwGQ;CzJ z+%I0vm=lHGILb-vcv+C4;|O2oYegvW5l`Ypl(rg}30qGjLVgc`9&GYO#rPu$jRJx$ zsWnZW2=l`jCwVn=^E9^RLk-_4Xjpx({8iw6w!6;{t_G&$@3q|UuLJ-%4FDj$y>sV< zBMtkk2`twh>vP{pe5uLPf8dz}PL(*!23Z+92(huDn4+~*mKG5qIqO4z$hBj>WlV;As$L>7#4vvUR%6hW*50+}+jQsWx1#0c=0N`LVBGl)|CbJ0~Irw{} z!M~fy{83QQG2HO`ls6DGJLoWvSYmaRJS)4{moD>`ZONd@YXDJ%Jof3}kH}=Hx>{b3 z={T16a=-cA%GGxZ(yLXu)vAy4mv}T*)n35vrn2*=m85-)U;pw$qWhCG-eU^T3$pGO z2LVfw=O0pf-pj*E9}hsg)zsF{IUGS&O*Lx8u`+VW2FctbGp)|LWOZa{+3#CeQCa~F|X@hxI@j0aiVlIrRO0t>eaRN5zI7`h*fiq|<5j){Re>d&F6T7kb^x&b!-VPiLx}Oy4w1X6NGk92Y{72|=X3 zuRfeR3KECqb0a7*&^hq$o%MeRH;~L_p;fU(T6LZm!t8r+1XLmkOH^A)W>jcrd`{@q ztvEEavg;W?TSr=lc4-NCDd|YtBOVB5u>|f#+~@)+!O9-)pW{mVfySaB6Ydw3woc`K z)&kp3*3-I5gBh2jG_veC9_5U1BAkzbXxiKBNe~3k2g|uxnswVad#nA$`i71C%`ni~ zX{gRst_2w0S+f4uKk@TbDuh&dtO;FmXEBb2@J9?lCB{#cU@4}(^{kj<6QD?_2+;}8 z-m={bgN6kC);ZA%@qYibl2ewTfMTCazT=MDgIC#NLYs5o8w!eFG--1@o!kw~xOyxI zLAGbGjPD(q`tI^?KCl z{$nNBgF@?xbde|fJXh<+v8nmbSkB83hXWw_nCbO%I6H6GT#vJhD2gxvVn(6*3X($y zq=~-S6Og!e;^S_~phqVF9!K4kB%TaEGAdlHYD3oTacO)NLk>_wU#`9vl8m$Nvj2@@?_}Hs)W6 zY3@l?q&Vp7Rb&(on^{|cBH4H9_zU1|BTL^-`_I z!K(+KM@tP!jUXI#y^47KkLeE|3Orf+Z-7F5l7A-;BU(U00r1TqM&XH%VdJttqM_xI zr{t!0as*^+CNr%qY5J!Qch;IG$u%jOtnh#su!}SK_;95DOkeFYUE;7P8_|`L?@v)R zeqTHAJ)3+&_g$cJlsbZQ^z(21!fu65)4RqYqQ{QJ6X_y`52M>fp{F_|wG;+5#Xhms ze}fatqJJk3|G4ot#&$cV$`v{HyAoCKZxSBD$W%c-n;6xMiQ5Q&JE_=Wh!fNRUTRXcnVx21jlW=uEpltCj8NC7K#0S$3zU{Unp$ z)LAuzx94u>*XNT;H)xSR=g0SV-3pBi|78OIhJ|ftOC<3xW!y4{yzu3)*c~R_L8SPrtM>wEX841MwNr{V||h8lBILQ#+RQ zT>~-7iB2XgV9(Hivz zx=&|AlWhhSwgXLVnX>7W`00NRQR=?&Hk@AqFWi|o?+O_bL)`xN^i49d|9N#xHXHyg zNr8NTRdPb{+<+?dmyX&{c=K(sSp{2*~ zt9)1|fMV72A2TnthPWD&j$wf=o+ zzzGMcGskvb?V`ZbR9~nHCBG4)7I~2OU%$dvQ-Ai1I{c1C!^Ubpr~ukXcdm_Hk+R~8 zuAmGvcT4SsORK4T$8Po+mSFMk`GiE3unF2j4;8HTyo=6dms6P|`yU>Lk|Cslef~e*vVZKxblJix_(D?%e{r~nb##B+Nj&%?qI}~Zi zB!XBXSd%sPuwBWc$2(EV9oU~ZToWD%goJHxjY!9K?0nm46W|-dzxXC_qER5hbl!4( zt!Hi{PLNC_5DU1mIZ3r~@3>%9-jyQpl{n9=O1 z*>sMkSNGMqI927z#UI7Lg=A$MQi`0aZ!@ezoEuJf?9geduu4H!F0$f{?V3-Z5!E+3 zL~3Ca{i%dWd=!uu7izM=NdsUgt$B|ZT!L&m;_P+&Wk7|_I`K6;CKjITgb-!z7<)%y zi}|jB>;KAl0WTF3%^k)81#iO3N(3>$tm7uci<=ygRzG}$1suB6@|yWJNo7lXKvR5^ zjHG`@<>KcV?FtmEJqXlZzL`M{Za$TNzZGw z9_SuV`>GE$tA*x(NOjLC@)K zpht6v8{L7jgkTtM^-4npSQWG492)QpLvKo(Nh)VbJE^kJL4NrB;|kA99m0WC$^rH? z>*a;H!p#VVUm0^+DFcRf-`@YL&x3XW`-D{G@+KOsyK;jf5wC>!%|25+slEYICLP%L zI)+wF5KQn+|6|sxTW?>4-~627<^Zy@foUq#WF{?Da&nC*l&kMqpTKw?+C+T}3(9RdFN!h)IKcN$T!-KJTIdiFW4x2iv_l|A!8D%j^CIDS8;%rCy(iIdraE z_h|O3Sr&)OnOK~d*n0m5VNCuzFENMATH=MD#lrioF@AOli8Ni7TG z`7YA4RlZ!xltGmOim70R+8@}*sb-!1$vX&xcJ>uYw)!e$_?r4r)0r~-RP(a4?$??A z1siZ|Z{`I2#+}>htQVUjfhPFtRq)Hc7p9lSP#}}&Y72&U{W;}Q4&&8iVzF8Wdb7LY*@mh{T z(R0s$qK&}-6T{80@JBquLnEl12Q}YDio%V5V-9Izt^m$eh1L5{uL%~{Fe8Gx^YT~tAg1CPP^|`yX9KBRbD4KIiaa;?eaj0DLKNhY}o-rd@_}r4lIMcn$jaXsw zu~_3;j{C21vf@>9jze@uY_K9BZ+vNhNwjKty!M~RWXWB_Nfyc~&bCsgY9X76Df4!+=8l%edK$X0Pk7}Z*q|muyRpC^iwQhA z3cg7wA`jV@Jg9AqvUV0Zp}28NP87^Z@hioBcVP@!tFojbXS~0=`$VqSTVQ14=eMEy z5BBDg%g==R{zNHI^DFfaid{f|5?)mLz-HGmPDiS;q5P}HVO9m${;P4T1`JBva$!Qp z%^J_Jtip8>Q+N2+Q5FAevd+}X(dMB<5A6(EQ-j>DA zw*C!PHjGxGJmfo=xFTZ0Y@tAfno}+Qn=3R?VyDdfY465=5rW*RxEy2y%cYy>@-3*F zDu3VHbMkulenncqHH>|Q?m^sUd4}Gy4E*13uBgvC|Ta9jdjN9mvMS(MsWOFV>_ay zYWG>kLvZryre)R3q-!96%hsf#@0|eWWeW>o8_65!f#V!sgS$^a$|2>u8c|sBIhFdK z)lumI+w3oXx%kO|yHBUx@WkhKwhi3t>ki}7Qt3hVLfb+j&Wl%7gBR3!BM#p`K{pqV zM2p4Jcj;Rt%E}!YJwLBC2%-BLa$(TJCkzzLIYSE_7V1-LE=(!N-)IxmsitAyiS2)f zi2zmo8Gr^Z(F#WbUm0*YZsds<#rfi1BT%uFl?&eU!1Yq;VUGABcnB5?BlE>)i|)%m zbkwkoCcU;|E-^&PZ|sS>B)st|#1r6>&3UtLxsxZHSq9ftT+9_3lIc!A&3Vikra}gj z{Ho-(HTfMwT8p`s7rcxdN~=oODjnZG%$&MIStb_~V2-yge{3r{Q*6KFJeaH&JE?Sz(0GP#3E56RvYyW?225!U1M7-6Wy^A?obL ztQg)o8m_5Gn5i1cA;oPJk!9m6QtTuxmkywh2V5+~q=NA`dZInw*`BaclX7KuK-hfo zyrVh;*iL!ivZ!gYFXK18e`fFSENj|BAwo;10lPYcxg5umNxm>OxzmU0!5yWQo}$f% zJ(ldo>4X2Y_<{MTNcW=O4Z6M$YXXykHjFjFxN@9HD=o1cZ4Ey}*LaVI=Qg)Z)^$zN zyEp@--s1AeRmm+bhm}D>cC+Z3U*YwK1jn7ZUdWSqO>g(t%&0S{m#^n1ho*r3hiB$5 z229|oiaP&S3jiE6Q@wMILX%OGIOYM;Ca;ZGWO|xtF+Lt|k=bQ$Q*a^cJ@HEF`x}Sg zhNvjqX9IAVVfaBD*=X*Y-1gf=9iP-DT{_`oL@+71pWsa2)NPo_3Mjh4i{Gz7v8bT$ z`(M#i>8TOC9d=_aa{$^Ek9Ty9S&F?`OTss>fohOvzEgdY9dFF$Y;*_xK=d zHEz}s95c$kK+bY5x30Y$naqAnobO8RK;AuO{tQx;5eV~gieu?sr{;8H=ulUZuGpK`-%nPL;#>n%cH^ z4rEZGr?X>Ps}G(GBU>Yyu;V`xH?u<~WgExK5N`}A>@fn&JYL6kZ=Hu-KPNz7lYzJ75_AkiM>Flo?g2>o>BJTd1j_oj+7F`*!#F2{PmX&z<^le%W$In z_IQ-8dB;jBxv+Bf(Vn-}>`Uxg?~&5M>lIMZ_=CrUKnRWh0q2czl*`07Vm#X+tGX@Z zy`2G5M~?^4hf1#s56#-7zT_0ogQ-UUkTzoW-w00X-Hf7=+e4NUOS8R|kjY}LMa}!UZQuK(dMQfNz#=@A!Wqr7&fOcnWU@1rLA4?{ zy=}-#B+HkI-GZ<&GjpZ~Ztj1wM}T690-O(k;d-0vB{rT4zMhtVKW>kf#y5-L=|8SV z09`zt$fGt_iDO~@_!~?(luE=)RbMYu9c<)L_q4K_$R5CNzZYqAcOH1MaNHsXQdP-` zC>`P#|wu~WM#-qpVJ z#N$gEaIvV_*MTWyfKyQFQxLOhTyk`9V7?e6IjltW$mFa(B-%_cw z?i#U~OhvHFlb%fxd43Brz)csLM zaromo@4B`7zQQJNLzH$_AT+&nheJUT7YWl5&2ip8*^*3Ux@VHK74ZZ|jI>4qQxCJb`)V@ZYM7Z0Oy4(sg1oH4%wc)4viol|-~#?!x1f5sD<$VZmWW|Vy(UMm2aRu7P9_II@|ruQ$N z?#f=)iRU6eTq!zvsypTO)%mc+bSnpB-?)2dUN86$B7&w5L^2^M0|&35&`3fFtBR5(MunRq2eLi$Fv!geq2*Cym-a5`E2FGO%Nt6?CC?0A{~g2FJ`g!AmEH~#_?Ix zPCsQF*V%ol@T+!XUkzC#**=;HjrK$tLr~;ADi_d1!4kpjXWZ~eNyd?W&tF3wMh7~t zXR4q=s(r~Pyeki^E@lW#d}FPO2;lbWU6&`_Ts}>2vaKr^l zq)2>mse9{Z@!H>S^Zm(oF#qI)A=WX{Q2RKaGIFw(bep@^f;~Q_Asq+-6L&`EWyvNG1AuB+(&_o&(Mx-^v*6&o-o?Z~m>3^=aR_30OXO z*s3G$$OlSlb~%@PwFsKE4=Nz(y zRlx~jbW4u)|D3nUncAbsB`$r{II}f!Y{ccsR_p}n*p~WQrC+57>YIzt`%@km_HJ^? z+0E<@XKoPmw#NnHKGbk!W@NhdvskWtaK=B5@P8A6X5RMXzHa#_8Rt%PZCuV{W{upF z<=u)q^Z<9)g;0sFV$z+Ha@;4kLTg5N%L|YT%-G8+A7ctD&UPCIha7%d_T58N?ub~7 z*jflVk-5b;)PmQ*Yy}iw!0x=IX+w35xRu{O%8Y+~zgf^?7?Hl@j=___`pVN^DHq?E z3Z|1^(>+`jML^y2w@-@+#D?>Xr5(oiSi~0hsDHe^1)CUkPTYK?V4tEE=eUPBX5A}b zhw5LsH|;n0G;9*pV{v=&RE*zDmaOi6Dd;HXf7mrp`2Z`Kv(Fxqa8aot(M8cmkm}dg z;ILxSmv2vDawu2us;g4A+id&KX$0t>zOoP?`bmJ`<)o%Pvh(h;q*~}?Yi!Is8FT)Y zwOVKohz36AF{w2nfo}YdCjWSx*(jDiN^*;SZ&}^lUGf5H9c~AdJ^5I`M$a9cquOQI z!NuMoG^!f}Elvth=KX%#S?*^;pSfbcG#|_M>KaHEQN&b@L$Re`?Z-Nm1Z zK+sL|#9B*i6Lsv$A6*b9-M!=KQgvouc>h`HTN6fMtJ?a#PbNc5?n_zOGXy>7Zi-FP zDK-6ZfJCuIi@cI>J9qeHumSoNZz+_1Zh1fx;@QyUX~*vc3*5XHe`}4T0(NJ&>!D9@ z&yb!+^V`6Yd^_#iOa6VdK&`^n4jBVNTmS~d*bNC%&Fjlluqdc8)$g-Wu>p@?l|s>^ zOlq%Vvc3A}E1s2_zwG1d9yU>A_|RgqLJ(a*;q2MnU3DP3$J?YVuuQHzd{}3a`~ZZk zcnlHu0@Lm;J4+Tfw@a+|<^<_by0;t}&*{kuHN86z52ux&0LCBud39(PNra>X=X`$R zb~w3I#)Q4wHiI{Zf(|5G47zn}kka=_hn;&YEnqG5s^wk0p%3!8IoaiqarO559znlr z_zhU(yoyK0-iaDb;z%zf9v)Y0E>m)1>08T`Ku)3K`xXds*H8+&Z6CbzBzOG7vJ$@c z;xtTeKg$1e^a#7}Qz}E^n$VU%`Iw@Y5^wa@KgaXvNzkUDNY@Fy4zvw#!XK6?%>T~v zu#7}8n3aLlEEv{QAD>vmqN$%h$EZu>dQZk4X-;Uol3`U#xzW(Q02G5b{Wfjm0C5RC8d;cn{pZGcA6WSbesDh9)dx!m6LLJ zE-q>4aMnxUcgOwE>lqnSk8Scr66vwBFl=I!vh2Y^N9jy ziO&tKsZ%G=G8AQuZZ7QPZri#0^!pa>lx5TcSs;e~|L`-we^&v8hpwU;c5ba2GVxaF zMLi;fMd`mY6I7sc5^1@M1$35=$(~c?X1UimNzImU{lzQO_m%=d#%@z9<%-zo;O?DkoK0_+DbP&SBR9C&g((qG4q;1#Rd2mYaFXj zQxL`18e%xRc(iokV)q~nJ4LB$k9{lTe`BcYnQx7vtQ?|kNuCx z+(w*le%`uXFnfdJF3=$m5PEcWJs7PjVK4x@{pF<5l3YwR$R%N;cuJ+ z7w3ZfB?jO6m3b3m5})OU+s$JFL`&4Q6aS)5Jz&j=R6ywTJ)u>_Lf+R!rPOz&NqR!# z>n&d^JBesG0$mi_vFxsO*(3=@YJB%7ScyFttnwbQPjVjfbIgLO$~VVMr@fbKx@nP! zjHJ1C^ZTSnMv#b(w|GdP#7A7k*as`w=jEef6Q>&u`IS4!+ga{pd4A)Kh}c6qeC3Jv z2%X;@-u}?G=MYgXz3+f(?+ycrDudq_+nlu4fQ2&_kCr{Ey+^CP5NeIefHDaI{BCM4;ei)4CVfA1)$*OK9O=rQWN^; z+HJ)|2^jTE@9 zn!n}CMU7T~#yyp`pPt=pFgLbf#xHePWK~NQV!D+>;`n2V&Ca?BWC&qC^Jy=*91B6s zA98X9sQNVxqW#Dw!_cNRw}BOYd5ff!F8L;<5{VnU+tM@{`Bu$tDC5smJ7h}Fm0Q{XniyXyE)h#dNxMuWrs)@vrYY# zOnnfHWHkKjydg!-*!;tz z_TIPlw&&}yB1gj6ABK7^qjM{M)V+}1YJ-os7Bh&vr4P58rP%v(L-fIM>5%}?TS`(s=tGVlz zjW*24xA&vs=UaP01^uA|nv>&Ex1}ZabEqsRIt{ecMXsEN3lh;u*N6If*ck>H#0>Vl zvo{=x2ghZVf_~lGw6=^JGG#QoDfhi<2;b@5!d4iOS*~6%&V#jl-CY6qa%F^``vSqz zx7rDh{|pAErT96zutnfGI|Ke5KY9aSuMsV%@0PNBtIc2F)7ceiTDn~x%;L#lXr;6_Gj)P=-8(2RsKlj z3=8=?Q#u#n1{fn#5s#CEyhtfOkJ+!_H`}92?XZe9=5;y1{+;k!UMvO&-dH%Ze(YXQ zdRa38lZjd2x5|N=@9K@`Tc_$z`Ke+R$b^sJEKc8^39uInvVFg2Dwii?v8%n-aBoqj z*fg!7fUH#Ht2EDs?~N;yDoX-#>i2G4QTpZ56Knxys2O(&fWrivH&JMu&Fo z{_}@%Fa@E_EO9J={Fr3aLgWP6OKGQ7bssC~6-%x116ouH1;wMTwR<(t(I!G8;x&VE zsx%SAI43NY51w|)~=q<|?8+Z|v;A~9t`Eq`~LDV(vL6MW;;#_{~$n{LRLqFKPSH|ncxpz|6 zLu#pdjM4*3lizMTWXm#l5QdGAN&kRk`i<#mIXo&z?<$YIVr*_=c2U6P9E~2AUP*mz zYdl-E^mwTQda!lvi)R!`Y*s>l?;*SU6N7V$ZpA zdg_jP7{}deDnYNF!7L_J18#RS6^r^}lu>uh{qwZVMAYXVhm~xH1g7uGH^~#vdlt)r zjy-6NhmWDjBfU92YG2{L5?xnaW*KjM_;w6;_-1}KI)S3Ug(G*=AM>6C+OD} zjf7VHg1GuNqp{LUk$08%L>CsW z1rtF|VPc?;Qc_7OGK>nxAHmvHi@W{e=0R%Oot|?c+C97;bE5 zw6`LMWEBbnzM8l!7t!n+JPPohY*E8kcwKk=cOULzvTHc!sMHySkQ=79Hr!(_d_gnF%@dv0bu)h61@yBhz-Eq3x)KPW1Jf8HbB$20?m}Jc47l z=-2JmQSobl+lIdB^rny*MQslIugXcL;z!=>=1{ zkoF0F<*sKsXltPM)pb(nFHdXjb9Q!yT;6qeS7vJK6%(>(QEQ?>=LGb5eS&cwjLMx-OY3K9}+z zpYkk5&@f0U-=Uxve#wMY=T|!Jgp6?xr3Q%9EEYg8tnFfwefPa+waW+6sX?pKFSPWd zv-C+0L?1(uo!NK2%U-{|(C~2-})DG0R4j(dprV)DGjfLkKEwnh)!@t0x=&3a2 z^vyLC$B=_)sgSMw1Ie&0z3Pu;wj}kdh2=T`uJx_|W&}M&9zLdi83#FQJ^fcW6C4Hp9!7$Hk316VRya7QN7e4es{oPp#(07yK-Q8@k0LQ z0mDm_embp4&I{v7mkSqGjk{Su(%>%^b5+U#w9u?vqi`g?o>-OsydZb){_Cu9f3pv7 zGK@m>d5T`%Px~R&kt3;^E$Wryjz8k0oB#St{^5@khU4c@8C(sp%>4o!p^C2N_;2~& ziLGQ50z4Yg1uI)w`^;9CpamnPAijV{mEgeA>t(Qkv!hlokGwKZzBZ{ zdwOk#c9{(T(fuMedPZ`yYKQ4afz|ozmenr~Y7t#|G-*gldrU!B^=sf`o1>#0P?O=g@xFZMj*+!JK64D=_nv$xf^=Tm8Z6>F#D>c6y=LwBBtS4Q#&)(_obqlOqwcw73ouJSfX z&{dlGHqAV?bpOipKX5hB!5lbejzD*q;aV_s>(v@5PGd9U)V0;xkCn(M`cGx`SZC8=}dhS+T@=WT8yF>-p2jbn%YfpE`)n80f zX57-a-BGodvd%NhVs#5iP^F!8ONaxvHRZwbz|p6{;Pokj7AXKD)DNXdj40rdfwrIO zK44lIws-#Y8Qd(-hii^?yjE_x#Idfgw;wU9F=E%RAAn z>2=-~PpVH-pzTur(i4qNTEYI71jCeZ=Vkh+l)8z(No*jF!^E=D_xHkj78DC4h08R? zj*GWsxldmAPTZfI9(sDalQp_SU1pe6-_2e}re9RoPM~6yu*``Bxqwi8&Y*0On%{aa zKVW!IiY9lYF)mjsjFP79i4|eH#PDySKCQ7YO)h0V9-&;Rimilmk8l6Dr@wuB2_?*R z#>j2q_KwZXmm0kj;|*APL_g!Jz5Q_z1Gb8g>mH$8LO)tlWlRWkY*ck;q;TZX^?*Ci z1J4rXI)=q@Phtfb3#dVyd_^87r70d_VRdV@Mt*#I#K$=USJrPyHk)lU<3rcz@#w1$ zEl$JMPpa8P!g&0C$B~m~P}Z#f%AkH9*j_4ah?bBPm?_-Ss_k)~Eht=(+i=`HXd8dD zCLiD~C$brkZakp*CPju|iOZ#Y{;!HR_qfWuk{(~CZt$p3mAsp9h`{-krk>RkcO$#^ zmpUXU2*Zf})7rlIT2*+wrr6y_Lg!4tq z9DoW_}B&B?& zDN|mWW|(N0b527+giyWrBo@=;{PcQ`Unb}ArJp79wb9za^=8%qIl{WPXR9uTQlVa;%3BQH-~djBC@(5+hr6N> z%k$wA*_LD1g$eSWg6&?hVe3isG@Yp_cp-JoRl+u8|J()jaUMU(?{lN`OY5wcVwE_6up{yU+1#F3c5 zfME{p1tAh)ep_csW-rLvekz1tb~E=8e70UFTp2$sQSFIDnAl=UZpZSIMyd65$%aT2 z!|i%P+XSDdp0oZ6g{OBH=(q!!W^sZOx{q!fwef$P8VrT_(&7lI@!feU$T^oK&)LV- z2Dy|qUbYP&A0=2h=6xw=vfE!L)c4Wi*5MlH%gY~M(1zllOhbo-!gt$v)HSfyZ{M=k9D*IOpu%asxEtU|1$jdHqBA0oO`>C(8!!1nx$B=lt!Q!A@5+ zxcCUomoklb*e1~SX0bFnh4lX;>MFyc?w&RvNJ)2h2uOD~(k0!E(z$daT_P!^lu}D~ zHxdidT}s2!OYgfpkI(--U-lE%^*e_-b7tuRXD~ebW8YBR$&m>t|1OSfw z*+yg9lC)lw9xEoQ5v}f6t zHMVCd`$MsBy%nEX4j|4t5X0DS2|kJUOCqMf_&MiFJa2n;E^aFDwfCONDxcL_eWPYw zIftbC$0`qH#jWvA*f`REN$phZvtPY{24{CABcLx?c;wLx#du3`W+or~6t5Q(;lY4C z)}7gDJp+Kx1dWa{(z0~CbzF%`A8%szG|cUf+$Xo^{PFon^DYd^RZLZRfmS&*6@u!0 z{K_vtj%%!6>&H65SnAg7D06JfwX5Ncu^st{g|0~=WJzJUFRfbCs%O?b>X?Q}9x7L{ z&4ah?tZXqToH+Fp@^@>sJ*r;s)ZqdpK^ZzbZm>WFGDy8xk+=EPRD-OY^ueo7>m>_D zs||3SWH^U(TcX-bpHu=|JvCCJ5C0p;!y2S)>t?qhFqFI0OGrs_=|vYdWU%`A(6EoY z9MsHsjB)h%!?&);^PiGkX`yqk#CC9qIBqs7SkWnwqp_^SPPw+c;WfAxi(~1*05__W z+@t0jwqMZo#cbD1pXZ6)^8V(ujgBauB4fNN)Uk6^Nw_$Ge7W(z2g?8!0pTO=K9!E+ z6m@^H&BUIGHkwzLwRy`Zz0`E+04r^uH`!msHye&8OBO7=vEXD8!9Dl#){c*CFg0AG zKrLzUmnp}0qG_1dM%;NYHDLH|wy4-6r1?H`wd!RZj=$~`YRrVwvU4N9LN(z!Q%&r5 z6I32Ba(P_dS;NeNNla1N zF55MP%PETjYXuLcd@Da7g>#6{s}$MNI_F*7pX{P7p(A6gXtZC$L=eiQ7UunjBHPhY zi~S=LPc^`7wl2s_Gt}FTeIo2QwPl=_B<{~#L&*YlC z+b*eZ4E1ukb{oXPcE^-_PWlmVMJH>#OtH?SyqLjw!8+?gAcz4(ysc2%<)r1*#_cPr z-7UVV+0Xs|4fDbP1y~!cjK@b9hpbFBa<6rzUax%?<>#7DQon*^#N&ZEgo9k^6{$ow*=jnsx%6X9^IiQzFp z9{&-$H{r~h4%|^DmXwZkq7$5D*OaN5 zk@5=a-4dk^DtTptE?EI8@I#aH=~_cV+oTU1@u)4^keF|csokMb!kHvTOxSE0IYmXB zUAt1}Gqfu0LrWjQvYB#0S7xU(uB6$+Bp{MtafE3iJK$LQ6VQH@`DC^6Nr6)@-}!j# zw&ao=6{xqgL_S`q3;lpmjzBdI&m>U~1lDOE;q=mxSp6N0$X$MJKahn$yJnM^Ur=VU z|0v>5H{A*0*kX|Hv0!Q=dm$Kc+T_tK3mv>#}AAni4YokYY|{ z38aFau&wD$T?~I-X*@nr%GORWk{(lCTvAoZ>Ru99K2*Ob_TU{74z?}cP6=JUX9U<* zacpOF@AH_eK>Xi^XnzbqEEko5LG_Gl+f9y}gu>x0beAeN&@AyTQ>_dPZJa`PYkgCl z0|Suc4ji zWX3URLsdBi`6KYiL)AJOV#o&m2?y3+#)%UgN}(%4G_v(c_2Z}&-gFPw+Jx>JOnP^o zUTThVbu|_A^BQUh=hx2Id}PZ`h)7N=0TyOvI@qgRVV>zqsCi)255hv#A7y{%v2sl? z!(hU*ke3}$F8>!iF=n;ShQ--0IWNRWWRuUktLr5ALlU?cvjPye%yrL_!*zYhE_{Sc zE5nF&*vD*hR=K(vXqF7)*6v5WW5iX=W8|w0mft;=Weu}3at_U`SS&Fq+XwZ1m)m4& z&i|mUIJl$4`I#R65m2co_swhW&cGocttEVr*lI9&QC*89o90VbJ!K!FDc@|SPH{+N z9tK|zn^w8qSjQN9?pKGI3sV!exABHt*#=2~mj?y~+nL(Nc8^ph+F|DQM224Au%aP9 zs_!T}9%|&o0v>YMO0n!j_s#7 zbp>f0i~VFoU3YC(q7JOh)+!g8AG6_wQm&}V49PgTxZZk*nyB(04yD#LHI-jGqS~O& zvGBgWn#Qa08>?kwQox0UMlAYlJBmDELiC+);kMzPb^!fX(M{1B8qvS(^5AxaT~X%6 zyXrO&uL=|cO_c=a8?g&HC)(&kAH{CcWU@@(`~N9gmS5bPlAKK`xkBX3R|eGjXW8TS znC`SYLsmdWf4)8rZXw}z&rY2d|3RL6Mwka%fykJ!m3KKVM|gj_K8 z@@qUkC1hIPD_6`_zX^1xoizP~{gghp^tXaK1v^iCnR}?27^V;PXAG}$8Jf_|@CpZq z(z6nQCInYae7PEYZ0X?zM}|V1ZxQI0SsdH8STd9iWTLSZ0``x>FQS%6gRIEjeyJY< zpnCplGE255!3n_paB6w_+I)g|*pof>8}mubB0Inl5;(ve$rD-6BeG4)j@o@u8aQ{cx1GIC0^q@*4lbR=ZTo!S3Cwhi-{lGrjZ zpV>;j7h3JpQ+uzWXo_Z3K8KtzVqNm`pYtSdX&`Pq#Hw5pGuClV?N>r(4$g0m`CPB(fj(`wBAwr|zpd(g z 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

dQF5o>U8gA2_kT_sH!d% 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