diff --git a/Podfile b/Podfile index 45785b7..400e2e5 100644 --- a/Podfile +++ b/Podfile @@ -27,5 +27,6 @@ pod 'MJRefresh' pod "DownloadButton" #下载框架 pod 'Tiercel' - +#文本跑马灯 +pod 'MarqueeLabel' end diff --git a/Podfile.lock b/Podfile.lock index ac80900..f8814e6 100644 --- a/Podfile.lock +++ b/Podfile.lock @@ -5,6 +5,7 @@ PODS: - JXPagingView/Paging (2.1.3) - JXSegmentedView (1.3.3) - Kingfisher (7.11.0) + - MarqueeLabel (4.5.0) - MJRefresh (3.7.9) - SnapKit (5.7.1) - SVProgressHUD (2.3.1): @@ -20,6 +21,7 @@ DEPENDENCIES: - JXPagingView/Paging - JXSegmentedView - Kingfisher + - MarqueeLabel - MJRefresh - SnapKit - SVProgressHUD @@ -34,6 +36,7 @@ SPEC REPOS: - JXPagingView - JXSegmentedView - Kingfisher + - MarqueeLabel - MJRefresh - SnapKit - SVProgressHUD @@ -47,12 +50,13 @@ SPEC CHECKSUMS: JXPagingView: afdd2e9af09c90160dd232b970d603cc6e7ddd0e JXSegmentedView: 651b60fcf705258ba9395edd53876dbd2853fb68 Kingfisher: b9c985d864d43515f404f1ef4a8ce7d802ace3ac + MarqueeLabel: 4b46d196abd253448e830cbd976f9eacc3af0849 MJRefresh: ff9e531227924c84ce459338414550a05d2aea78 SnapKit: d612e99e678a2d3b95bf60b0705ed0a35c03484a SVProgressHUD: 4837c74bdfe2e51e8821c397825996a8d7de6e22 SwiftDate: 72d28954e8e1c6c1c0f917ccc8005e4f83c7d4b2 Tiercel: c0a73f876a72800333b15f4e7e48791f4ad21e90 -PODFILE CHECKSUM: 436104abc66aacc2c16f90adefe5230845e81453 +PODFILE CHECKSUM: 0dbe586b5221e955924da76b16705e9638055ea1 COCOAPODS: 1.15.2 diff --git a/Pods/Manifest.lock b/Pods/Manifest.lock index ac80900..f8814e6 100644 --- a/Pods/Manifest.lock +++ b/Pods/Manifest.lock @@ -5,6 +5,7 @@ PODS: - JXPagingView/Paging (2.1.3) - JXSegmentedView (1.3.3) - Kingfisher (7.11.0) + - MarqueeLabel (4.5.0) - MJRefresh (3.7.9) - SnapKit (5.7.1) - SVProgressHUD (2.3.1): @@ -20,6 +21,7 @@ DEPENDENCIES: - JXPagingView/Paging - JXSegmentedView - Kingfisher + - MarqueeLabel - MJRefresh - SnapKit - SVProgressHUD @@ -34,6 +36,7 @@ SPEC REPOS: - JXPagingView - JXSegmentedView - Kingfisher + - MarqueeLabel - MJRefresh - SnapKit - SVProgressHUD @@ -47,12 +50,13 @@ SPEC CHECKSUMS: JXPagingView: afdd2e9af09c90160dd232b970d603cc6e7ddd0e JXSegmentedView: 651b60fcf705258ba9395edd53876dbd2853fb68 Kingfisher: b9c985d864d43515f404f1ef4a8ce7d802ace3ac + MarqueeLabel: 4b46d196abd253448e830cbd976f9eacc3af0849 MJRefresh: ff9e531227924c84ce459338414550a05d2aea78 SnapKit: d612e99e678a2d3b95bf60b0705ed0a35c03484a SVProgressHUD: 4837c74bdfe2e51e8821c397825996a8d7de6e22 SwiftDate: 72d28954e8e1c6c1c0f917ccc8005e4f83c7d4b2 Tiercel: c0a73f876a72800333b15f4e7e48791f4ad21e90 -PODFILE CHECKSUM: 436104abc66aacc2c16f90adefe5230845e81453 +PODFILE CHECKSUM: 0dbe586b5221e955924da76b16705e9638055ea1 COCOAPODS: 1.15.2 diff --git a/Pods/MarqueeLabel/LICENSE b/Pods/MarqueeLabel/LICENSE new file mode 100644 index 0000000..bafb0f7 --- /dev/null +++ b/Pods/MarqueeLabel/LICENSE @@ -0,0 +1,14 @@ +Copyright (c) 2011-2017 Charles Powell + +Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated +documentation files (the "Software"), to deal in the Software without restriction, including without limitation +the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and +to permit persons to whom the Software is furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED +TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL +THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF +CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS +IN THE SOFTWARE. \ No newline at end of file diff --git a/Pods/MarqueeLabel/README.mdown b/Pods/MarqueeLabel/README.mdown new file mode 100644 index 0000000..620e7d7 --- /dev/null +++ b/Pods/MarqueeLabel/README.mdown @@ -0,0 +1,167 @@ +Overview +============ + +MarqueeLabel is a UILabel subclass adds a scrolling marquee effect when the text of the label outgrows the available width. The label scrolling direction and speed/rate can be specified as well. All standard UILabel properties (where it makes sense) are available in MarqueeLabel, with the intent of MarqueeLabel behaving just like a UILabel. + +**MarqueeLabel will be maintained in Swift _only_ starting with [release 4.0](https://github.com/cbpowell/MarqueeLabel/releases/tag/4.0.0)!** + +MarqueeLabel is compatible with both iOS and tvOS, and currently works with Swift 5.0 and the iOS 12.2 SDK! (But if you're looking for prior version Swift compatibility, [you can check the older releases](https://github.com/cbpowell/MarqueeLabel/releases/)) + + + +## Check it out! +![GIF of MarqueeLabelDemo in action](https://raw.githubusercontent.com/cbpowell/MarqueeLabel/master/Metadata/MarqueeLabelDemo.gif) + +## How To Get Started + +1. Clone MarqueeLabel from GitHub, and check out the demo project. +2. Read through the documentation embedded in the [`MarqueeLabel.swift` source](https://github.com/cbpowell/MarqueeLabel/blob/master/Sources/MarqueeLabel.swift). +3. Take a look at the [special notes](https://github.com/cbpowell/MarqueeLabel/blob/master/README.mdown#special-notes) section to be aware of any gotchas. +4. Drop in MarqueeLabel as a replacement to your lengthy UILabels! +5. Help out with bug fixes and new features. + +### Installation +#### [CocoaPods](http://cocoapods.org) + +To use MarqueeLabel in a project, add the following to your project's Podfile: +```ruby +pod 'MarqueeLabel' +``` + +#### Carthage + +Add the following to your project's Cartfile: +```ruby +github "cbpowell/MarqueeLabel" +``` + +#### Manual Installation + +1. Add MarqueeLabel.swift, to your project. +2. Add **QuartzCore.framework** to your project frameworks. +3. Import MarqueeLabel and replace your UILabels with MarqueeLabels as needed. + + +#### Using MarqueeLabel in your own Swift Framework? + +See the [Special Note below](https://github.com/cbpowell/MarqueeLabel/blob/master/README.mdown#swiftframeworkusage) on supporting Cocoapods and Carthage simultaneously in a Swift framework! + +## Usage + +MarqueeLabel automatically scrolls its text, at either a defined rate (points per second) or over a duration (seconds), whenever the length of the label's text exceeds the space available given the label's frame. + +There are several options for the Marquee type, and the default is `Continuous` (which looks just like what Apple typically uses). The animation curve of this scroll can be defined, and defaults to `UIViewAnimationOptionCurveLinear`. + +There are also several optional features to help with your integration of the scrolling nature of MarqueeLabel: +- An optional edge fade at the left and right edges of the view, in order to fade the label text into the background rather than simply being clipped off +- Leading and trailing buffers to offset the label text inside its frame, giving you better control over alignment +- "Labelization" to make your MarqueeLabel _exactly_ like a UILabel. +- Scroll animation "holding" and pausing + +See the included demo project for several use case examples! + + +### Code +These lines of code create a MarqueeLabel that will scroll across its content in 8.0 seconds, and adds 10.0 point long fade at the left and right boundaries. + +Replace: + + var lengthyLabel = UILabel.init(frame:aFrame) + +With: + + var lengthyLabel = MarqueeLabel.init(frame: aFrame, duration: 8.0, fadeLength: 10.0) + +### Storyboards +If you're using Storyboards/Interface Builder you can create a MarqueeLabel instance by adding a normal UILabel view to your Storyboard, and then manually changing the view's class to `MarqueeLabel` in the "Custom Class" field of the Identity Inspector tab on the Utilities panel (the right-side panel). +_Note:_ If you forget to change the Custom Class field to `MarqueeLabel` and then try to access/set MarqueeLabel-specific properties in your code, you will get crashes! + + + +You can then configure the normal UILabel properties, as well as most of the MarqueeLabel configuration properties, via the Attributes tab of the Utility panel! + +### Even More + +Check out the [MarqueeLabel documentation](http://cocoadocs.org/docsets/MarqueeLabel/) for more about all the features, including: +- Bulk-manipulation class methods to conveniently restart, pause, and unpause all labels in a view controller +- Scrolling direction: left->right, right->left, and continuous looping (both left and right) + +## Extras + +Also check out [the Extras folder](/Extras), a collection of subclasses, extensions, and modifications for MarqueeLabel to implement various functionality that has been requested or suggested, but not merged into the MarqueeLabel code. + + +## Special Notes + +#### Automatic Font Size Adjustment + +Starting with release 4.1, MarqueeLabel allows setting the [`adjustsFontSizeToWidth`](https://developer.apple.com/documentation/uikit/uilabel/1620546-adjustsfontsizetofitwidth) to `true`. When configured this way, MarqueeLabel will check to see if the text string + (non-attributed or attributed) will fit within the frame when adjusted to the specified minimum scale factor, and: + + - if the text will fit at the adjusted scale without requiring truncation, the label will **not scroll**. Instead, the label text will be allowed to adjust to that size and will remain static. + - if the text will not fit, the label will scroll and retain the unscaled font size (i.e., like all releases prior to 4.1) + + Previously MarqueeLabel would override any attempts to set `adjustsFontSizetoWidth` and `minimumScaleFactor` to the default settings used by UILabel (`false`, and `0.0`, respectively). As such the default behavior remains the same: the label will not adjust it's font size to 'avoid' scrolling. + +#### IBDesignables + +MarqueeLabel includes support for IBInspectable and IBDesignable, to allow configuration of the label inside Interface Builder/Storyboards. However, if you see these warnings when building: + + IB Designables: Failed to update auto layout status: Failed to load designables from path (null) + IB Designables: Failed to render instance of MarqueeLabel: Failed to load designables from path (null) + +...then you are likely using MarqueeLabel as a static library, which does not support IBInspectable/IBDesignable. Some workarounds include: + +- Install MarqueeLabel as a dynamic framework using CocoaPods with use_frameworks! in your Podfile +- Install MarqueeLabel with Carthage +- Install MarqueeLabel by manually importing the source files into your project (may be only option if you're targeting iOS 7.0) + +#### Automatic Scrolling + +MarqueeLabel tries its best to automatically begin scrolling when appropriate, but sometimes the way your view/view controller appears onscreen can trip it up. + +To combat this, you can try: +- Using the `restartLabel` instance method to manually start scrolling on a MarqueeLabel +- Try using the bulk manipulation class methods - but note that these don't currently play well with UIViewController containment. You'll need to pass them the lowest UIViewController in your hierarchy. + +#### Use in UITableView and UICollectionView + +As noted above, MarqueeLabel can sometimes have trouble detecting when the scroll animation should start when used in UITableViews and UICollectionViews - although recent reviews have improved this. + +Usually you'll configure the MarqueeLabel instance when building the cell in `tableView:cellForRowAtIndexPath:` (or similar for UICollectionView), but at this point the cell is not onscreen so MarqueeLabel will not begin the scrolling animation. Even when the cell is eventually placed onscreen as the user scrolls, due to timing it's possible that the animation will not fire. + +To make sure the scrolling animation _does_ begin as the cell scrolls onscreen, you can use the the `restartLabel` method on your MarqueeLabels inside the `tableView:willDisplayCell:forRowAtIndexPath:` delegate method (or similar for UICollectionView). + +**That said** - the UITableView/UICollectionView best practice is to minimize things like excessive animation, subviews, and custom drawing in your cells, in order to get glassy smooth scrolling. In general I would recommend against allowing your labels to automatically animate during user scrolling of the UITableView/UICollectionView. I suggest [holding scrolling](http://cocoadocs.org/docsets/MarqueeLabel/3.0.3/Classes/MarqueeLabel.html#//api/name/holdScrolling) or [labelizing](http://cocoadocs.org/docsets/MarqueeLabel/3.0.3/Classes/MarqueeLabel.html#//api/name/labelize) the labels while the user scrolls. See the table view example in the demo! + + +#### Important Animation Note +MarqueeLabel is based on Core Animation, which does cause some problems when views appear and disappear and the repeating animation is stopped by iOS and does not automatically restart. + +To address this, MarqueeLabel provides a few class methods that allow easy "restarting" of all MarqueeLabels associated with a UIViewController. Specifically, the class method `restartLabelsOfController:` should be called by your view controller (which passes in `self` for the `controller` parameter) when it is revealed or about to be revealed. Keep in mind that presenting a modal view controller can pause repeating UIView animations in the controller that is being covered! + +`controllerLabelsLabelize:` and `controllerLabelsAnimate:` are for convenience, allowing labelizing and re-animating all labels of a UIViewController. Labelizing can be useful for performance, such as labelizing all MarqueeLabels when a UITableView/UIScrollView starts scrolling. + +```swift + override func viewDidAppear(_ animated: Bool) { + super.viewDidAppear(animated) + MarqueeLabel.controllerViewDidAppear(self) + } +``` + + + + + +## Todo +- Ideas? + +## About + +Charles Powell +- [GitHub](http://github.com/cbpowell) +- [Twitter](http://twitter.com/seventhcolumn) + +Buy Me A Coffee + +Give me a shout if you're using this in your project! diff --git a/Pods/MarqueeLabel/Sources/MarqueeLabel.swift b/Pods/MarqueeLabel/Sources/MarqueeLabel.swift new file mode 100644 index 0000000..c29065c --- /dev/null +++ b/Pods/MarqueeLabel/Sources/MarqueeLabel.swift @@ -0,0 +1,2096 @@ +// +// MarqueeLabel.swift +// +// Created by Charles Powell on 8/6/14. +// Copyright (c) 2015 Charles Powell. All rights reserved. +// + +import UIKit +import QuartzCore + +@IBDesignable + +open class MarqueeLabel: UILabel, CAAnimationDelegate { + + /** + An enum that defines the types of `MarqueeLabel` scrolling + + - Left: Scrolls left after the specified delay, and does not return to the original position. + - LeftRight: Scrolls left first, then back right to the original position. + - Right: Scrolls right after the specified delay, and does not return to the original position. + - RightLeft: Scrolls right first, then back left to the original position. + - Continuous: Continuously scrolls left (with a pause at the original position if animationDelay is set). + - ContinuousReverse: Continuously scrolls right (with a pause at the original position if animationDelay is set). + */ + public enum MarqueeType: CaseIterable { + case left + case leftRight + case right + case rightLeft + case continuous + case continuousReverse + } + + // + // MARK: - Public properties + // + + /** + Defines the direction and method in which the `MarqueeLabel` instance scrolls. + `MarqueeLabel` supports six default types of scrolling: `Left`, `LeftRight`, `Right`, `RightLeft`, `Continuous`, and `ContinuousReverse`. + + Given the nature of how text direction works, the options for the `type` property require specific text alignments + and will set the textAlignment property accordingly. + + - `LeftRight` and `Left` types are ONLY compatible with a label text alignment of `NSTextAlignment.left`. + - `RightLeft` and `Right` types are ONLY compatible with a label text alignment of `NSTextAlignment.right`. + - `Continuous` and `ContinuousReverse` allow the use of `NSTextAlignment.left`, `.right`, or `.center` alignments, + however the text alignment only has an effect when label text is short enough that scrolling is not required. + When scrolling, the labels are effectively center-aligned. + + Defaults to `Continuous`. + + - Note: Note that any `leadingBuffer` value will affect the text alignment location relative to the frame position, + including with `.center` alignment, where the center alignment location will be shifted left (for `.continuous`) or + right (for `.continuousReverse`) by one-half (1/2) the `.leadingBuffer` amount. Use the `.trailingBuffer` property to + add a buffer between text "loops" without affecting alignment location. + + - SeeAlso: textAlignment + - SeeAlso: leadingBuffer + */ + open var type: MarqueeType = .continuous { + didSet { + if type == oldValue { + return + } + updateAndScroll() + } + } + + /** + An optional custom scroll "sequence", defined by an array of `ScrollStep` or `FadeStep` instances. A sequence + defines a single scroll/animation loop, which will continue to be automatically repeated like the default types. + + A `type` value is still required when using a custom sequence. The `type` value defines the `home` and `away` + values used in the `ScrollStep` instances, and the `type` value determines which way the label will scroll. + + When a custom sequence is not supplied, the default sequences are used per the defined `type`. + + `ScrollStep` steps are the primary step types, and define the position of the label at a given time in the sequence. + `FadeStep` steps are secondary steps that define the edge fade state (leading, trailing, or both) around the `ScrollStep` + steps. + + Defaults to nil. + + - Attention: Use of the `scrollSequence` property requires understanding of how MarqueeLabel works for effective + use. As a reference, it is suggested to review the methodology used to build the sequences for the default types. + + - SeeAlso: type + - SeeAlso: ScrollStep + - SeeAlso: FadeStep + */ + open var scrollSequence: [MarqueeStep]? + + /** + Specifies the animation curve used in the scrolling motion of the labels. + Allowable options: + + - `UIViewAnimationOptionCurveEaseInOut` + - `UIViewAnimationOptionCurveEaseIn` + - `UIViewAnimationOptionCurveEaseOut` + - `UIViewAnimationOptionCurveLinear` + + Defaults to `UIViewAnimationOptionCurveEaseInOut`. + */ + open var animationCurve: UIView.AnimationCurve = .linear + + /** + A boolean property that sets whether the `MarqueeLabel` should behave like a normal `UILabel`. + + When set to `true` the `MarqueeLabel` will behave and look like a normal `UILabel`, and will not begin any scrolling animations. + Changes to this property take effect immediately, removing any in-flight animation as well as any edge fade. Note that `MarqueeLabel` + will respect the current values of the `lineBreakMode` and `textAlignment`properties while labelized. + + To simply prevent automatic scrolling, use the `holdScrolling` property. + + Defaults to `false`. + + - SeeAlso: holdScrolling + - SeeAlso: lineBreakMode + - Note: The label will not automatically scroll when this property is set to `true`. + - Warning: The UILabel default setting for the `lineBreakMode` property is `NSLineBreakByTruncatingTail`, which truncates + the text adds an ellipsis glyph (...). Set the `lineBreakMode` property to `NSLineBreakByClipping` in order to avoid the + ellipsis, especially if using an edge transparency fade. + */ + @IBInspectable open var labelize: Bool = false { + didSet { + if labelize != oldValue { + updateAndScroll() + } + } + } + + /** + A boolean property that sets whether the `MarqueeLabel` should hold (prevent) automatic label scrolling. + + When set to `true`, `MarqueeLabel` will not automatically scroll even its text is larger than the specified frame, + although the specified edge fades will remain. + + To set `MarqueeLabel` to act like a normal UILabel, use the `labelize` property. + + Defaults to `false`. + + - Note: The label will not automatically scroll when this property is set to `true`. + - SeeAlso: labelize + */ + @IBInspectable open var holdScrolling: Bool = false { + didSet { + if holdScrolling != oldValue { + if oldValue == true && !(awayFromHome || labelize ) && labelShouldScroll() { + updateAndScroll() + } + } + } + } + + /** + A boolean property that sets whether the `MarqueeLabel` should scroll, even if the specificed test string + can be fully contained within the label frame. + + If this property is set to `true`, the `MarqueeLabel` will automatically scroll regardless of text string + length, although this can still be overridden by the `tapToScroll` and `holdScrolling` properties. + + Defaults to `false`. + + - Warning: Forced scrolling may have unexpected edge cases or have unusual characteristics compared to the + 'normal' scrolling feature. + + - SeeAlso: holdScrolling + - SeeAlso: tapToScroll + */ + @IBInspectable public var forceScrolling: Bool = false { + didSet { + if forceScrolling != oldValue { + if !(awayFromHome || holdScrolling || tapToScroll ) && labelShouldScroll() { + updateAndScroll() + } + } + } + } + + /** + A boolean property that sets whether the `MarqueeLabel` should only begin a scroll when tapped. + + If this property is set to `true`, the `MarqueeLabel` will only begin a scroll animation cycle when tapped. The label will + not automatically being a scroll. This setting overrides the setting of the `holdScrolling` property. + + Defaults to `false`. + + - Note: The label will not automatically scroll when this property is set to `false`. + - SeeAlso: holdScrolling + */ + @IBInspectable open var tapToScroll: Bool = false { + didSet { + if tapToScroll != oldValue { + if tapToScroll { + let tapRecognizer = UITapGestureRecognizer(target: self, action: #selector(MarqueeLabel.labelWasTapped(_:))) + self.addGestureRecognizer(tapRecognizer) + isUserInteractionEnabled = true + } else { + if let recognizer = self.gestureRecognizers!.first as UIGestureRecognizer? { + self.removeGestureRecognizer(recognizer) + } + isUserInteractionEnabled = false + } + } + } + } + + /** + A read-only boolean property that indicates if the label's scroll animation has been paused. + + - SeeAlso: pauseLabel + - SeeAlso: unpauseLabel + */ + open var isPaused: Bool { + return (sublabel.layer.speed == 0.0) + } + + /** + A boolean property that indicates if the label is currently away from the home location. + + The "home" location is the traditional location of `UILabel` text. This property essentially reflects if a scroll animation is underway. + */ + open var awayFromHome: Bool { + if let presentationLayer = sublabel.layer.presentation() { + return !(presentationLayer.position.x == homeLabelFrame.origin.x) + } + + return false + } + + /** + An optional CGFloat computed value that provides the current scroll animation position, as a value between + 0.0 and 1.0. A value of 0.0 indicates the label is "at home" (`awayFromHome` will be false). A value + of 1.0 indicates the label is at the "away" position (and `awayFromHome` will be true). + + Will return nil when the label presentation layer is nil. + + - Note: For `leftRight` and `rightLeft` type labels this value will increase and reach 1.0 when the label animation reaches the + maximum displacement, as the left or right edge of the label (respectively) is shown. As the scroll reverses, + the value will decrease back to 0.0. + + - Note: For `continuous` and`continuousReverse` type labels, this value will increase from 0.0 and reach 1.0 just as the + label loops around and comes to a stop at the original home position. When that position is reached, the value will + jump from 1.0 directly to 0.0 and begin to increase from 0.0 again. + */ + open var animationPosition: CGFloat? { + guard let presentationLayer = sublabel.layer.presentation() else { + return nil + } + + // No dividing by zero! + if awayOffset == 0.0 { + return 0.0 + } + + let progressFraction = abs((presentationLayer.position.x - homeLabelFrame.origin.x) / awayOffset) + return progressFraction + } + + /** + The `MarqueeLabel` scrolling speed may be defined by one of two ways: + - Rate(CGFloat): The speed is defined by a rate of motion, in units of points per second. + - Duration(CGFloat): The speed is defined by the time to complete a scrolling animation cycle, in units of seconds. + + Each case takes an associated `CGFloat` value, which is the rate/duration desired. + */ + public enum SpeedLimit { + case rate(CGFloat) + case duration(CGFloat) + + var value: CGFloat { + switch self { + case .rate(let rate): + return rate + case .duration(let duration): + return duration + } + } + } + + /** + Defines the speed of the `MarqueeLabel` scrolling animation. + + The speed is set by specifying a case of the `SpeedLimit` enum along with an associated value. + + - SeeAlso: SpeedLimit + */ + open var speed: SpeedLimit = .duration(7.0) { + didSet { + switch (speed, oldValue) { + case (.rate(let a), .rate(let b)) where a == b: + return + case (.duration(let a), .duration(let b)) where a == b: + return + default: + updateAndScroll() + } + } + } + + @available(*, deprecated, message: "Use speed property instead") + @IBInspectable open var scrollDuration: CGFloat { + get { + switch speed { + case .duration(let duration): return duration + case .rate(_): return 0.0 + } + } + set { + speed = .duration(newValue) + } + } + + @available(*, deprecated, message : "Use speed property instead") + @IBInspectable open var scrollRate: CGFloat { + get { + switch speed { + case .duration(_): return 0.0 + case .rate(let rate): return rate + } + } + set { + speed = .rate(newValue) + } + } + + + /** + A buffer (offset) between the leading edge of the label text and the label frame. + + This property adds additional space between the leading edge of the label text and the label frame. The + leading edge is the edge of the label text facing the direction of scroll (i.e. the edge that animates + offscreen first during scrolling). + + Defaults to `0`. + + - Note: The value set to this property affects label positioning at all times (including when `labelize` is set to `true`), + including when the text string length is short enough that the label does not need to scroll. + - Note: For Continuous-type labels, the smallest value of `leadingBuffer`, `trailingBuffer`, and `fadeLength` + is used as spacing between the two label instances. Zero is an allowable value for all three properties. + + - SeeAlso: trailingBuffer + */ + @IBInspectable open var leadingBuffer: CGFloat = 0.0 { + didSet { + if leadingBuffer != oldValue { + updateAndScroll() + } + } + } + + /** + A buffer (offset) between the trailing edge of the label text and the label frame. + + This property adds additional space (buffer) between the trailing edge of the label text and the label frame. The + trailing edge is the edge of the label text facing away from the direction of scroll (i.e. the edge that animates + offscreen last during scrolling). + + Defaults to `0`. + + - Note: The value set to this property has no effect when the `labelize` property is set to `true`. + + - Note: For Continuous-type labels, the smallest value of `leadingBuffer`, `trailingBuffer`, and `fadeLength` + is used as spacing between the two label instances. Zero is an allowable value for all three properties. + + - SeeAlso: leadingBuffer + */ + @IBInspectable open var trailingBuffer: CGFloat = 0.0 { + didSet { + if trailingBuffer != oldValue { + updateAndScroll() + } + } + } + + /** + The length of transparency fade at the left and right edges of the frame. + + This propery sets the size (in points) of the view edge transparency fades on the left and right edges of a `MarqueeLabel`. The + transparency fades from an alpha of 1.0 (fully visible) to 0.0 (fully transparent) over this distance. Values set to this property + will be sanitized to prevent a fade length greater than 1/2 of the frame width. + + Defaults to `0`. + */ + @IBInspectable open var fadeLength: CGFloat = 0.0 { + didSet { + if fadeLength != oldValue { + applyGradientMask(fadeLength, animated: true) + updateAndScroll() + } + } + } + + + /** + The length of delay in seconds that the label pauses at the completion of a scroll. + */ + @IBInspectable open var animationDelay: CGFloat = 1.0 + + + /** The read-only/computed duration of the scroll animation (not including delay). + + The value of this property is calculated from the value set to the `speed` property. If a duration-type speed is + used to set the label animation speed, `animationDuration` will be equivalent to that value. + */ + public var animationDuration: CGFloat { + switch self.speed { + case .rate(let rate): + return CGFloat(abs(self.awayOffset) / rate) + case .duration(let duration): + return duration + } + } + + // + // MARK: - Class Functions and Helpers + // + + /** + Convenience method to restart all `MarqueeLabel` instances that have the specified view controller in their next responder chain. + + - Parameter controller: The view controller for which to restart all `MarqueeLabel` instances. + + - Warning: View controllers that appear with animation (such as from underneath a modal-style controller) can cause some `MarqueeLabel` text + position "jumping" when this method is used in `viewDidAppear` if scroll animations are already underway. Use this method inside `viewWillAppear:` + instead to avoid this problem. + + - Warning: This method may not function properly if passed the parent view controller when using view controller containment. + + - SeeAlso: restartLabel + - SeeAlso: controllerViewDidAppear: + - SeeAlso: controllerViewWillAppear: + */ + open class func restartLabelsOfController(_ controller: UIViewController) { + MarqueeLabel.notifyController(controller, message: .Restart) + } + + /** + Convenience method to restart all `MarqueeLabel` instances that have the specified view controller in their next responder chain. + + Alternative to `restartLabelsOfController`. This method is retained for backwards compatibility and future enhancements. + + - Parameter controller: The view controller that will appear. + - SeeAlso: restartLabel + - SeeAlso: controllerViewDidAppear + */ + open class func controllerViewWillAppear(_ controller: UIViewController) { + MarqueeLabel.restartLabelsOfController(controller) + } + + /** + Convenience method to restart all `MarqueeLabel` instances that have the specified view controller in their next responder chain. + + Alternative to `restartLabelsOfController`. This method is retained for backwards compatibility and future enhancements. + + - Parameter controller: The view controller that did appear. + - SeeAlso: restartLabel + - SeeAlso: controllerViewWillAppear + */ + open class func controllerViewDidAppear(_ controller: UIViewController) { + MarqueeLabel.restartLabelsOfController(controller) + } + + /** + Labelizes all `MarqueeLabel` instances that have the specified view controller in their next responder chain. + + The `labelize` property of all recognized `MarqueeLabel` instances will be set to `true`. + + - Parameter controller: The view controller for which all `MarqueeLabel` instances should be labelized. + - SeeAlso: labelize + */ + open class func controllerLabelsLabelize(_ controller: UIViewController) { + MarqueeLabel.notifyController(controller, message: .Labelize) + } + + /** + De-labelizes all `MarqueeLabel` instances that have the specified view controller in their next responder chain. + + The `labelize` property of all recognized `MarqueeLabel` instances will be set to `false`. + + - Parameter controller: The view controller for which all `MarqueeLabel` instances should be de-labelized. + - SeeAlso: labelize + */ + open class func controllerLabelsAnimate(_ controller: UIViewController) { + MarqueeLabel.notifyController(controller, message: .Animate) + } + + + // + // MARK: - Initialization + // + + /** + Returns a newly initialized `MarqueeLabel` instance with the specified scroll rate and edge transparency fade length. + + - Parameter frame: A rectangle specifying the initial location and size of the view in its superview's coordinates. Text (for the given font, font size, etc.) that does not fit in this frame will automatically scroll. + - Parameter pixelsPerSec: A rate of scroll for the label scroll animation. Must be non-zero. Note that this will be the peak (mid-transition) rate for ease-type animation. + - Parameter fadeLength: A length of transparency fade at the left and right edges of the `MarqueeLabel` instance's frame. + - Returns: An initialized `MarqueeLabel` object or nil if the object couldn't be created. + - SeeAlso: fadeLength + */ + public init(frame: CGRect, rate: CGFloat, fadeLength fade: CGFloat) { + speed = .rate(rate) + fadeLength = CGFloat(min(fade, frame.size.width/2.0)) + super.init(frame: frame) + setup() + } + + /** + Returns a newly initialized `MarqueeLabel` instance with the specified scroll rate and edge transparency fade length. + + - Parameter frame: A rectangle specifying the initial location and size of the view in its superview's coordinates. Text (for the given font, font size, etc.) that does not fit in this frame will automatically scroll. + - Parameter scrollDuration: A scroll duration the label scroll animation. Must be non-zero. This will be the duration that the animation takes for one-half of the scroll cycle in the case of left-right and right-left marquee types, and for one loop of a continuous marquee type. + - Parameter fadeLength: A length of transparency fade at the left and right edges of the `MarqueeLabel` instance's frame. + - Returns: An initialized `MarqueeLabel` object or nil if the object couldn't be created. + - SeeAlso: fadeLength + */ + public init(frame: CGRect, duration: CGFloat, fadeLength fade: CGFloat) { + speed = .duration(duration) + fadeLength = CGFloat(min(fade, frame.size.width/2.0)) + super.init(frame: frame) + setup() + } + + required public init?(coder aDecoder: NSCoder) { + super.init(coder: aDecoder) + setup() + } + + /** + Returns a newly initialized `MarqueeLabel` instance. + + The default scroll duration of 7.0 seconds and fade length of 0.0 are used. + + - Parameter frame: A rectangle specifying the initial location and size of the view in its superview's coordinates. Text (for the given font, font size, etc.) that does not fit in this frame will automatically scroll. + - Returns: An initialized `MarqueeLabel` object or nil if the object couldn't be created. + */ + convenience public override init(frame: CGRect) { + self.init(frame: frame, duration:7.0, fadeLength:0.0) + } + + private func setup() { + // Create sublabel + sublabel = UILabel(frame: self.bounds) + sublabel.tag = 700 + sublabel.layer.anchorPoint = CGPoint.zero + + // Add sublabel + addSubview(sublabel) + + // Configure self + super.clipsToBounds = true + super.numberOfLines = 1 + + // Add notification observers + // Custom class notifications + NotificationCenter.default.addObserver(self, selector: #selector(MarqueeLabel.restartForViewController(_:)), name: NSNotification.Name(rawValue: MarqueeKeys.Restart.rawValue), object: nil) + NotificationCenter.default.addObserver(self, selector: #selector(MarqueeLabel.labelizeForController(_:)), name: NSNotification.Name(rawValue: MarqueeKeys.Labelize.rawValue), object: nil) + NotificationCenter.default.addObserver(self, selector: #selector(MarqueeLabel.animateForController(_:)), name: NSNotification.Name(rawValue: MarqueeKeys.Animate.rawValue), object: nil) + // UIApplication state notifications + NotificationCenter.default.addObserver(self, selector: #selector(MarqueeLabel.restartLabel), name: UIApplication.didBecomeActiveNotification, object: nil) + NotificationCenter.default.addObserver(self, selector: #selector(MarqueeLabel.shutdownLabel), name: UIApplication.didEnterBackgroundNotification, object: nil) + } + + // Interface Builder features deprecated in visionOS + #if !os(visionOS) + override open func awakeFromNib() { + super.awakeFromNib() + forwardPropertiesToSublabel() + } + + @available(iOS 8.0, *) + override open func prepareForInterfaceBuilder() { + super.prepareForInterfaceBuilder() + forwardPropertiesToSublabel() + } + #endif + + private func forwardPropertiesToSublabel() { + /* + Note that this method is currently ONLY called from awakeFromNib, i.e. when + text properties are set via a Storyboard. As the Storyboard/IB doesn't currently + support attributed strings, there's no need to "forward" the super attributedString value. + */ + + // Since we're a UILabel, we actually do implement all of UILabel's properties. + // We don't care about these values, we just want to forward them on to our sublabel. + let properties = ["baselineAdjustment", "enabled", "highlighted", "highlightedTextColor", + "minimumFontSize", "shadowOffset", "textAlignment", + "userInteractionEnabled", "adjustsFontSizeToFitWidth", "minimumScaleFactor", + "lineBreakMode", "numberOfLines", "contentMode"] + + // Iterate through properties + sublabel.text = super.text + sublabel.font = super.font + sublabel.textColor = super.textColor + sublabel.backgroundColor = super.backgroundColor ?? UIColor.clear + sublabel.shadowColor = super.shadowColor + sublabel.shadowOffset = super.shadowOffset + for prop in properties { + let value = super.value(forKey: prop) + sublabel.setValue(value, forKeyPath: prop) + } + } + + // + // MARK: - MarqueeLabel Heavy Lifting + // + + override open func layoutSubviews() { + super.layoutSubviews() + + updateAndScroll() + } + + override open func willMove(toWindow newWindow: UIWindow?) { + if newWindow == nil { + shutdownLabel() + } + } + + override open func didMoveToWindow() { + if self.window == nil { + shutdownLabel() + } else { + updateAndScroll() + } + } + + private func updateAndScroll() { + // Do not automatically begin scroll if tapToScroll is true + updateAndScroll(overrideHold: false) + } + + private func updateAndScroll(overrideHold: Bool) { + // Check if scrolling can occur + if !labelReadyForScroll() { + return + } + + // Calculate expected size + let expectedLabelSize = sublabel.desiredSize() + + // Invalidate intrinsic size + invalidateIntrinsicContentSize() + + // Move label to home + returnLabelToHome() + + // Check if label should scroll + // Note that the holdScrolling propery does not affect this + if !labelShouldScroll() { + // Set text alignment and break mode to act like a normal label + sublabel.textAlignment = super.textAlignment + sublabel.lineBreakMode = super.lineBreakMode + sublabel.adjustsFontSizeToFitWidth = super.adjustsFontSizeToFitWidth + sublabel.minimumScaleFactor = super.minimumScaleFactor + + let labelFrame: CGRect + switch type { + case .continuousReverse, .rightLeft: + labelFrame = bounds.divided(atDistance: leadingBuffer, from: CGRectEdge.maxXEdge).remainder.integral + default: + labelFrame = CGRect(x: leadingBuffer, y: 0.0, width: bounds.size.width - leadingBuffer, height: bounds.size.height).integral + } + + homeLabelFrame = labelFrame + awayOffset = 0.0 + + // Remove any additional sublabels (for continuous types) + repliLayer?.instanceCount = 1 + + // Set the sublabel frame to calculated labelFrame + sublabel.frame = labelFrame + + // Remove fade, as by definition none is needed in this case + removeGradientMask() + + return + } + + // Label DOES need to scroll + + // Reset font scaling to off for scrolling + sublabel.adjustsFontSizeToFitWidth = false + sublabel.minimumScaleFactor = 0.0 + + // Spacing between primary and second sublabel must be at least equal to leadingBuffer, and at least equal to the fadeLength + let minTrailing = minimumTrailingDistance + + // Determine positions and generate scroll steps + let sequence: [MarqueeStep] + + switch type { + case .continuous, .continuousReverse: + if type == .continuous { + homeLabelFrame = CGRect(x: leadingBuffer, y: 0.0, width: expectedLabelSize.width, height: bounds.size.height).integral + awayOffset = -(homeLabelFrame.size.width + minTrailing) + } else { // .ContinuousReverse + homeLabelFrame = CGRect(x: bounds.size.width - (expectedLabelSize.width + leadingBuffer), y: 0.0, width: expectedLabelSize.width, height: bounds.size.height).integral + awayOffset = (homeLabelFrame.size.width + minTrailing) + } + + // Find when the lead label will be totally offscreen + let offsetDistance = awayOffset + let offscreenAmount = homeLabelFrame.size.width + let startFadeFraction = abs(offscreenAmount / offsetDistance) + // Find when the animation will hit that point + let startFadeTimeFraction = timingFunctionForAnimationCurve(animationCurve).durationPercentageForPositionPercentage(startFadeFraction, duration: (animationDelay + animationDuration)) + let startFadeTime = startFadeTimeFraction * animationDuration + + sequence = scrollSequence ?? [ + ScrollStep(timeStep: 0.0, position: .home, edgeFades: .trailing), // Starting point, at home, with trailing fade + ScrollStep(timeStep: animationDelay, position: .home, edgeFades: .trailing), // Delay at home, maintaining fade state + FadeStep(timeStep: 0.2, edgeFades: [.leading, .trailing]), // 0.2 sec after scroll start, fade leading edge in as well + FadeStep(timeStep: (startFadeTime - animationDuration), // Maintain fade state until just before reaching end of scroll animation + edgeFades: [.leading, .trailing]), + ScrollStep(timeStep: animationDuration, timingFunction: animationCurve, // Ending point (back at home), with animationCurve transition, with trailing fade + position: .away, edgeFades: .trailing) + ] + + // Set frame and text + sublabel.frame = homeLabelFrame + + // Configure replication + // Determine replication count required + let fitFactor: CGFloat = bounds.size.width/(expectedLabelSize.width + leadingBuffer) + let repliCount = 1 + Int(ceil(fitFactor)) + repliLayer?.instanceCount = repliCount + repliLayer?.instanceTransform = CATransform3DMakeTranslation(-awayOffset, 0.0, 0.0) + + case .leftRight, .left, .rightLeft, .right: + if type == .leftRight || type == .left { + homeLabelFrame = CGRect(x: leadingBuffer, y: 0.0, width: expectedLabelSize.width, height: bounds.size.height).integral + awayOffset = bounds.size.width - (expectedLabelSize.width + leadingBuffer + trailingBuffer) + // Enforce text alignment for this type + sublabel.textAlignment = NSTextAlignment.left + } else { + homeLabelFrame = CGRect(x: bounds.size.width - (expectedLabelSize.width + leadingBuffer), y: 0.0, width: expectedLabelSize.width, height: bounds.size.height).integral + awayOffset = (expectedLabelSize.width + trailingBuffer + leadingBuffer) - bounds.size.width + // Enforce text alignment for this type + sublabel.textAlignment = NSTextAlignment.right + } + // Set frame and text + sublabel.frame = homeLabelFrame + + // Remove any replication + repliLayer?.instanceCount = 1 + + if type == .leftRight || type == .rightLeft { + sequence = scrollSequence ?? [ + ScrollStep(timeStep: 0.0, position: .home, edgeFades: .trailing), // Starting point, at home, with trailing fade + ScrollStep(timeStep: animationDelay, position: .home, edgeFades: .trailing), // Delay at home, maintaining fade state + FadeStep(timeStep: 0.2, edgeFades: [.leading, .trailing]), // 0.2 sec after delay ends, fade leading edge in as well + FadeStep(timeStep: -0.2, edgeFades: [.leading, .trailing]), // Maintain fade state until 0.2 sec before reaching away position + ScrollStep(timeStep: animationDuration, timingFunction: animationCurve, // Away position, using animationCurve transition, with only leading edge faded in + position: .away, edgeFades: .leading), + ScrollStep(timeStep: animationDelay, position: .away, edgeFades: .leading), // Delay at away, maintaining fade state (leading only) + FadeStep(timeStep: 0.2, edgeFades: [.leading, .trailing]), // 0.2 sec after delay ends, fade trailing edge back in as well + FadeStep(timeStep: -0.2, edgeFades: [.leading, .trailing]), // Maintain fade state until 0.2 sec before reaching home position + ScrollStep(timeStep: animationDuration, timingFunction: animationCurve, // Ending point, back at home, with only trailing fade + position: .home, edgeFades: .trailing) + ] + } else { // .left or .right + sequence = scrollSequence ?? [ + ScrollStep(timeStep: 0.0, position: .home, edgeFades: .trailing), // Starting point, at home, with trailing fade + ScrollStep(timeStep: animationDelay, position: .home, edgeFades: .trailing), // Delay at home, maintaining fade state + FadeStep(timeStep: 0.2, edgeFades: [.leading, .trailing]), // 0.2 sec after delay ends, fade leading edge in as well + FadeStep(timeStep: -0.2, edgeFades: [.leading, .trailing]), // Maintain fade state until 0.2 sec before reaching away position + ScrollStep(timeStep: animationDuration, timingFunction: animationCurve, // Away position, using animationCurve transition, with only leading edge faded in + position: .away, edgeFades: .leading), + ScrollStep(timeStep: animationDelay, position: .away, edgeFades: .leading), // "Delay" at away, maintaining fade state + ] + } + } + + + + // Configure gradient for current condition + applyGradientMask(fadeLength, animated: !self.labelize) + + if overrideHold || (!holdScrolling && !overrideHold) { + beginScroll(sequence) + } + } + + override open func sizeThatFits(_ size: CGSize) -> CGSize { + return sizeThatFits(size, withBuffers: true) + } + + open func sizeThatFits(_ size: CGSize, withBuffers: Bool) -> CGSize { + var fitSize = sublabel.sizeThatFits(size) + if withBuffers { + fitSize.width += leadingBuffer + } + return fitSize + } + + /** + Returns the unconstrained size of the specified label text (for a single line). + */ + open func textLayoutSize() -> CGSize { + return sublabel.desiredSize() + } + + // + // MARK: - Animation Handling + // + + open func labelShouldScroll() -> Bool { + // Check for nil string + guard sublabel.text != nil else { + return false + } + + // Check for empty string + guard !sublabel.text!.isEmpty else { + return false + } + + var labelTooLarge = false + if !super.adjustsFontSizeToFitWidth { + // Usual logic to check if the label string fits + labelTooLarge = (sublabel.desiredSize().width + leadingBuffer) > self.bounds.size.width + CGFloat.ulpOfOne + } else { + // Logic with auto-scale support + // Create mutable attributed string to modify font sizes in-situ + let resizedString = NSMutableAttributedString.init(attributedString: sublabel.attributedText!) + resizedString.beginEditing() + // Enumerate all font attributes of attributed string + resizedString.enumerateAttribute(.font, in: NSRange(0.. 0.0 + return (!labelize && (forceScrolling || labelTooLarge) && animationHasDuration) + } + + private func labelReadyForScroll() -> Bool { + // Check if we have a superview + if superview == nil { + return false + } + + // Check if we are attached to a window + if window == nil { + return false + } + + // Check if our view controller is ready + let viewController = firstAvailableViewController() + if viewController != nil { + if !viewController!.isViewLoaded { + return false + } + } + + return true + } + + private func returnLabelToHome() { + // Store if label is away from home at time of call + let away = awayFromHome + + // Remove any gradient animation + maskLayer?.removeAllAnimations() + + // Remove all sublabel position animations + sublabel.layer.removeAllAnimations() + + // Fire completion block if appropriate + if away { + // If label was away when this was called, animation did NOT finish + scrollCompletionBlock?(!away) + } + + // Remove completion block + scrollCompletionBlock = nil + } + + private func beginScroll(_ sequence: [MarqueeStep]) { + let scroller = generateScrollAnimation(sequence) + let fader = generateGradientAnimation(sequence, totalDuration: scroller.duration) + + scroll(scroller, fader: fader) + } + + private func scroll(_ scroller: MLAnimation, fader: MLAnimation?) { + // Check for conditions which would prevent scrolling + if !labelReadyForScroll() { + return + } + // Convert fader to var + var fader = fader + + // Call pre-animation hook + labelWillBeginScroll() + + // Start animation transactions + CATransaction.begin() + CATransaction.setAnimationDuration(TimeInterval(scroller.duration)) + + // Create gradient animation, if needed + let gradientAnimation: CAKeyframeAnimation? + // Check for IBDesignable + #if !TARGET_INTERFACE_BUILDER + if fadeLength > 0.0 { + // Remove any setup animation, but apply final values + if let setupAnim = maskLayer?.animation(forKey: "setupFade") as? CABasicAnimation, let finalColors = setupAnim.toValue as? [CGColor] { + maskLayer?.colors = finalColors + } + maskLayer?.removeAnimation(forKey: "setupFade") + + // Generate animation if needed + if let previousAnimation = fader?.anim { + gradientAnimation = previousAnimation + } else { + gradientAnimation = nil + } + + // Apply fade animation + maskLayer?.add(gradientAnimation!, forKey: "gradient") + } else { + // No animation needed + fader = nil + } + #else + fader = nil + #endif + + scrollCompletionBlock = { [weak self] (finished: Bool) in + guard self != nil else { + return + } + + // Call returned home function + self!.labelReturnedToHome(finished) + + // Check to ensure that: + + // 1) The instance is still attached to a window - this completion block is called for + // many reasons, including if the animation is removed due to the view being removed + // from the UIWindow (typically when the view controller is no longer the "top" view) + guard self!.window != nil else { + return + } + // 2) We don't double fire if an animation already exists + guard self!.sublabel.layer.animation(forKey: "position") == nil else { + return + } + // 3) We don't start automatically if the animation was unexpectedly interrupted + guard finished else { + // Do not continue into the next loop + return + } + // 4) A completion block still exists for the NEXT loop. A notable case here is if + // returnLabelToHome() was called during a subclass's labelReturnToHome() function + guard self!.scrollCompletionBlock != nil else { + return + } + + // Begin again, if conditions met + if self!.labelShouldScroll() && !self!.tapToScroll && !self!.holdScrolling { + // Perform completion callback + self!.scroll(scroller, fader: fader) + } + } + + // Perform scroll animation + scroller.anim.setValue(true, forKey: MarqueeKeys.CompletionClosure.rawValue) + scroller.anim.delegate = self + if type == .left || type == .right { + // Make it stay at away permanently + scroller.anim.isRemovedOnCompletion = false + scroller.anim.fillMode = .forwards + } + sublabel.layer.add(scroller.anim, forKey: "position") + + CATransaction.commit() + } + + private func generateScrollAnimation(_ sequence: [MarqueeStep]) -> MLAnimation { + // Create scroller, which defines the animation to perform + let homeOrigin = homeLabelFrame.origin + let awayOrigin = offsetCGPoint(homeLabelFrame.origin, offset: awayOffset) + + let scrollSteps = sequence.filter({ $0 is ScrollStep }) as! [ScrollStep] + let totalDuration = scrollSteps.reduce(0.0) { $0 + $1.timeStep } + + // Build scroll data + var totalTime: CGFloat = 0.0 + var scrollKeyTimes = [NSNumber]() + var scrollKeyValues = [NSValue]() + var scrollTimingFunctions = [CAMediaTimingFunction]() + + for (offset, step) in scrollSteps.enumerated() { + // Scroll Times + totalTime += step.timeStep + scrollKeyTimes.append(NSNumber(value:Float(totalTime/totalDuration))) + + // Scroll Values + let scrollPosition: CGPoint + switch step.position { + case .home: + scrollPosition = homeOrigin + case .away: + scrollPosition = awayOrigin + case .partial(let frac): + scrollPosition = offsetCGPoint(homeOrigin, offset: awayOffset*frac) + } + scrollKeyValues.append(NSValue(cgPoint:scrollPosition)) + + // Scroll Timing Functions + // Only need n-1 timing functions, so discard the first value as it's unused + if offset == 0 { continue } + scrollTimingFunctions.append(timingFunctionForAnimationCurve(step.timingFunction)) + } + + // Create animation + let animation = CAKeyframeAnimation(keyPath: "position") + // Set values + animation.keyTimes = scrollKeyTimes + animation.values = scrollKeyValues + animation.timingFunctions = scrollTimingFunctions + + return (anim: animation, duration: totalDuration) + } + + private func generateGradientAnimation(_ sequence: [MarqueeStep], totalDuration: CGFloat) -> MLAnimation { + // Setup + var totalTime: CGFloat = 0.0 + var stepTime: CGFloat = 0.0 + var fadeKeyValues = [[CGColor]]() + var fadeKeyTimes = [NSNumber]() + var fadeTimingFunctions = [CAMediaTimingFunction]() + let transp = UIColor.clear.cgColor + let opaque = UIColor.black.cgColor + + // Filter to get only scroll steps and valid precedent/subsequent fade steps + let fadeSteps = sequence.enumerated().filter { (arg: (offset: Int, element: MarqueeStep)) -> Bool in + let (offset, element) = arg + + // Include all Scroll Steps + if element is ScrollStep { return true } + + // Include all Fade Steps that have a directly preceding or subsequent Scroll Step + // Exception: Fade Step cannot be first step + if offset == 0 { return false } + + // Subsequent step if 1) positive/zero time step and 2) follows a Scroll Step + let subsequent = element.timeStep >= 0 && (sequence[max(0, offset - 1)] is ScrollStep) + // Precedent step if 1) negative time step and 2) precedes a Scroll Step + let precedent = element.timeStep < 0 && (sequence[min(sequence.count - 1, offset + 1)] is ScrollStep) + + return (precedent || subsequent) + } + + for (offset, step) in fadeSteps { + // Fade times + if step is ScrollStep { + totalTime += step.timeStep + stepTime = totalTime + } else { + if step.timeStep >= 0 { + // Is a Subsequent + stepTime = totalTime + step.timeStep + } else { + // Is a Precedent, grab next step + stepTime = totalTime + fadeSteps[offset + 1].element.timeStep + step.timeStep + } + } + fadeKeyTimes.append(NSNumber(value:Float(stepTime/totalDuration))) + + // Fade Values + let values: [CGColor] + let leading = step.edgeFades.contains(.leading) ? transp : opaque + let trailing = step.edgeFades.contains(.trailing) ? transp : opaque + switch type { + case .leftRight, .left, .continuous: + values = [leading, opaque, opaque, trailing] + case .rightLeft, .right, .continuousReverse: + values = [trailing, opaque, opaque, leading] + } + fadeKeyValues.append(values) + + // Fade Timing Function + // Only need n-1 timing functions, so discard the first value as it's unused + if offset == 0 { continue } + fadeTimingFunctions.append(timingFunctionForAnimationCurve(step.timingFunction)) + } + + // Create new animation + let animation = CAKeyframeAnimation(keyPath: "colors") + + animation.values = fadeKeyValues + animation.keyTimes = fadeKeyTimes + animation.timingFunctions = fadeTimingFunctions + + return (anim: animation, duration: max(totalTime, totalDuration)) + } + + private func applyGradientMask(_ fadeLength: CGFloat, animated: Bool, firstStep: MarqueeStep? = nil) { + // Remove any in-flight animations + maskLayer?.removeAllAnimations() + + // Check for zero-length fade + if fadeLength <= 0.0 { + removeGradientMask() + return + } + + // Configure gradient mask without implicit animations + CATransaction.begin() + CATransaction.setDisableActions(true) + + // Determine if gradient mask needs to be created + let gradientMask: CAGradientLayer + if let currentMask = self.maskLayer { + // Mask layer already configured + gradientMask = currentMask + } else { + // No mask exists, create new mask + gradientMask = CAGradientLayer() + gradientMask.shouldRasterize = true + #if os(visionOS) + gradientMask.rasterizationScale = UITraitCollection.current.displayScale + #else + gradientMask.rasterizationScale = UIScreen.main.scale + #endif + gradientMask.startPoint = CGPoint(x:0.0, y:0.5) + gradientMask.endPoint = CGPoint(x:1.0, y:0.5) + } + + // Check if there is a mask to layer size mismatch + if gradientMask.bounds != self.layer.bounds { + // Adjust stops based on fade length + let leftFadeStop = fadeLength/self.bounds.size.width + let rightFadeStop = 1.0 - fadeLength/self.bounds.size.width + gradientMask.locations = [0.0, leftFadeStop, rightFadeStop, 1.0].map { NSNumber(value: Float($0)) } + } + + gradientMask.bounds = self.layer.bounds + gradientMask.position = CGPoint(x:self.bounds.midX, y:self.bounds.midY) + + // Set up colors + let transparent = UIColor.clear.cgColor + let opaque = UIColor.black.cgColor + + // Set mask + self.layer.mask = gradientMask + + // Determine colors for non-scrolling label (i.e. at home) + let adjustedColors: [CGColor] + let trailingFadeNeeded = self.labelShouldScroll() + + switch type { + case .continuousReverse, .rightLeft: + adjustedColors = [(trailingFadeNeeded ? transparent : opaque), opaque, opaque, opaque] + + // .Continuous, .LeftRight + default: + adjustedColors = [opaque, opaque, opaque, (trailingFadeNeeded ? transparent : opaque)] + } + + // Check for IBDesignable + #if TARGET_INTERFACE_BUILDER + gradientMask.colors = adjustedColors + CATransaction.commit() + #else + if animated { + // Finish transaction + CATransaction.commit() + + // Create animation for color change + let colorAnimation = GradientSetupAnimation(keyPath: "colors") + colorAnimation.fromValue = gradientMask.colors + colorAnimation.toValue = adjustedColors + colorAnimation.fillMode = .forwards + colorAnimation.isRemovedOnCompletion = false + colorAnimation.delegate = self + gradientMask.add(colorAnimation, forKey: "setupFade") + } else { + gradientMask.colors = adjustedColors + CATransaction.commit() + } + #endif + } + + private func removeGradientMask() { + self.layer.mask = nil + } + + private func timingFunctionForAnimationCurve(_ curve: UIView.AnimationCurve) -> CAMediaTimingFunction { + let timingFunction: CAMediaTimingFunctionName? + + switch curve { + case .easeIn: + timingFunction = .easeIn + case .easeInOut: + timingFunction = .easeInEaseOut + case .easeOut: + timingFunction = .easeOut + default: + timingFunction = .linear + } + + return CAMediaTimingFunction(name: timingFunction!) + } + + private func transactionDurationType(_ labelType: MarqueeType, interval: CGFloat, delay: CGFloat) -> TimeInterval { + switch labelType { + case .leftRight, .rightLeft: + return TimeInterval(2.0 * (delay + interval)) + default: + return TimeInterval(delay + interval) + } + } + + public func animationDidStop(_ anim: CAAnimation, finished flag: Bool) { + if let setupAnim = anim as? GradientSetupAnimation { + if let finalColors = setupAnim.toValue as? [CGColor] { + maskLayer?.colors = finalColors + } + // Remove regardless, since we set removeOnCompletion = false + maskLayer?.removeAnimation(forKey: "setupFade") + } else { + scrollCompletionBlock?(flag) + } + } + + + // + // MARK: - Private details + // + + private var sublabel = UILabel() + + fileprivate var homeLabelFrame = CGRect.zero + fileprivate var awayOffset: CGFloat = 0.0 + + override open class var layerClass: AnyClass { + return CAReplicatorLayer.self + } + + fileprivate weak var repliLayer: CAReplicatorLayer? { + return self.layer as? CAReplicatorLayer + } + + fileprivate weak var maskLayer: CAGradientLayer? { + return self.layer.mask as! CAGradientLayer? + } + + fileprivate var scrollCompletionBlock: MLAnimationCompletionBlock? + + override open func draw(_ layer: CALayer, in ctx: CGContext) { + // Do NOT call super, to prevent UILabel superclass from drawing into context + // Label drawing is handled by sublabel and CAReplicatorLayer layer class + + // Draw only background color + if let bgColor = backgroundColor { + ctx.setFillColor(bgColor.cgColor) + ctx.fill(layer.bounds) + } + } + + private var minimumTrailingDistance: CGFloat { + // Spacing between primary and second sublabel must be at least equal to leadingBuffer, and at least equal to the fadeLengt + return max(max(leadingBuffer, trailingBuffer), fadeLength) + } + + fileprivate enum MarqueeKeys: String { + case Restart = "MLViewControllerRestart" + case Labelize = "MLShouldLabelize" + case Animate = "MLShouldAnimate" + case CompletionClosure = "MLAnimationCompletion" + } + + class fileprivate func notifyController(_ controller: UIViewController, message: MarqueeKeys) { + NotificationCenter.default.post(name: Notification.Name(rawValue: message.rawValue), object: nil, userInfo: ["controller" : controller]) + } + + @objc public func restartForViewController(_ notification: Notification) { + if let controller = (notification as NSNotification).userInfo?["controller"] as? UIViewController { + if controller === self.firstAvailableViewController() { + self.restartLabel() + } + } + } + + @objc public func labelizeForController(_ notification: Notification) { + if let controller = (notification as NSNotification).userInfo?["controller"] as? UIViewController { + if controller === self.firstAvailableViewController() { + self.labelize = true + } + } + } + + @objc public func animateForController(_ notification: Notification) { + if let controller = (notification as NSNotification).userInfo?["controller"] as? UIViewController { + if controller === self.firstAvailableViewController() { + self.labelize = false + } + } + } + + + // + // MARK: - Label Control + // + + /** + Overrides any non-size condition which is preventing the receiver from automatically scrolling, and begins a scroll animation. + + Currently the only non-size conditions which can prevent a label from scrolling are the `tapToScroll` and `holdScrolling` properties. This + method will not force a label with a string that fits inside the label bounds (i.e. that would not automatically scroll) to begin a scroll + animation. + + Upon the completion of the first forced scroll animation, the receiver will not automatically continue to scroll unless the conditions + preventing scrolling have been removed. + + - Note: This method has no effect if called during an already in-flight scroll animation. + + - SeeAlso: restartLabel + */ + public func triggerScrollStart() { + if labelShouldScroll() && !awayFromHome { + updateAndScroll(overrideHold: true) + } + } + + /** + Immediately resets the label to the home position, cancelling any in-flight scroll animation, and restarts the scroll animation if the appropriate conditions are met. + + - SeeAlso: resetLabel + - SeeAlso: triggerScrollStart + */ + @objc public func restartLabel() { + // Shutdown the label + shutdownLabel() + // Restart scrolling if appropriate + if labelShouldScroll() && !tapToScroll && !holdScrolling { + updateAndScroll() + } + } + + /** + Resets the label text, recalculating the scroll animation. + + The text is immediately returned to the home position, and the scroll animation positions are cleared. Scrolling will not resume automatically after + a call to this method. To re-initiate scrolling, use either a call to `restartLabel` or make a change to a UILabel property such as text, bounds/frame, + font, font size, etc. + + - SeeAlso: restartLabel + */ + @available(*, deprecated, message : "Use the shutdownLabel function instead") + public func resetLabel() { + returnLabelToHome() + homeLabelFrame = CGRect.null + awayOffset = 0.0 + } + + /** + Immediately resets the label to the home position, cancelling any in-flight scroll animation. + + The text is immediately returned to the home position. Scrolling will not resume automatically after a call to this method. + To re-initiate scrolling use a call to `restartLabel` or `triggerScrollStart`, or make a change to a UILabel property such as text, bounds/frame, + font, font size, etc. + + - SeeAlso: restartLabel + - SeeAlso: triggerScrollStart + */ + @objc public func shutdownLabel() { + // Bring label to home location + returnLabelToHome() + // Apply gradient mask for home location + applyGradientMask(fadeLength, animated: false) + } + + /** + Pauses the text scrolling animation, at any point during an in-progress animation. + + - Note: This method has no effect if a scroll animation is NOT already in progress. To prevent automatic scrolling on a newly-initialized label prior to its presentation onscreen, see the `holdScrolling` property. + + - SeeAlso: holdScrolling + - SeeAlso: unpauseLabel + */ + public func pauseLabel() { + // Prevent pausing label while not in scrolling animation, or when already paused + guard !isPaused && awayFromHome else { + return + } + + // Pause sublabel position animations + let labelPauseTime = sublabel.layer.convertTime(CACurrentMediaTime(), from: nil) + sublabel.layer.speed = 0.0 + sublabel.layer.timeOffset = labelPauseTime + + // Pause gradient fade animation + let gradientPauseTime = maskLayer?.convertTime(CACurrentMediaTime(), from:nil) + maskLayer?.speed = 0.0 + maskLayer?.timeOffset = gradientPauseTime! + } + + /** + Un-pauses a previously paused text scrolling animation. This method has no effect if the label was not previously paused using `pauseLabel`. + + - SeeAlso: pauseLabel + */ + public func unpauseLabel() { + // Only unpause if label was previously paused + guard isPaused else { + return + } + + // Unpause sublabel position animations + let labelPausedTime = sublabel.layer.timeOffset + sublabel.layer.speed = 1.0 + sublabel.layer.timeOffset = 0.0 + sublabel.layer.beginTime = 0.0 + sublabel.layer.beginTime = sublabel.layer.convertTime(CACurrentMediaTime(), from:nil) - labelPausedTime + + // Unpause gradient fade animation + let gradientPauseTime = maskLayer?.timeOffset + maskLayer?.speed = 1.0 + maskLayer?.timeOffset = 0.0 + maskLayer?.beginTime = 0.0 + maskLayer?.beginTime = maskLayer!.convertTime(CACurrentMediaTime(), from:nil) - gradientPauseTime! + } + + @objc public func labelWasTapped(_ recognizer: UIGestureRecognizer) { + if labelShouldScroll() && !awayFromHome { + // Set shouldBeginScroll to true to begin single scroll due to tap + updateAndScroll(overrideHold: true) + } + } + + /** + Function to convert a point from the label view frame coordinates to "text" coordinates, i.e. the equivalent + position in the (possibly) scrolling label. For example, it can be used to convert the coordinates + of a tap point on the MarqueeLabel view into that of the scrolling label, in order to determine the + word or character under the tap point. + + If the specified point does not fall inside the bounds of the scrolling label, such as if on a leading + or trailing buffer area, the function will return nil. + */ + open func textCoordinateForFramePoint(_ point:CGPoint) -> CGPoint? { + // Check for presentation layer, if none return input point + guard let presentationLayer = sublabel.layer.presentation() else { return point } + // Convert point from MarqueeLabel main layer to sublabel's presentationLayer + let presentationPoint = presentationLayer.convert(point, from: self.layer) + // Check if point overlaps into 2nd instance of a continuous type label + let textPoint: CGPoint? + let presentationX = presentationPoint.x + let labelWidth = sublabel.frame.size.width + + var containers: [Range] = [] + switch type { + case .continuous: + // First label frame range + let firstLabel = 0.0 ..< sublabel.frame.size.width + // Range from end of first label to the minimum trailining distance (i.e. the separator) + let minTrailing = firstLabel.rangeForExtension(minimumTrailingDistance) + // Range of second label instance, from end of separator to length + let secondLabel = minTrailing.rangeForExtension(labelWidth) + // Add valid ranges to array to check + containers += [firstLabel, secondLabel] + case .continuousReverse: + // First label frame range + let firstLabel = 0.0 ..< sublabel.frame.size.width + // Range of second label instance, from end of separator to length + let secondLabel = -sublabel.frame.size.width ..< -minimumTrailingDistance + // Add valid ranges to array to check + containers += [firstLabel, secondLabel] + case .left, .leftRight, .right, .rightLeft: + // Only label frame range + let firstLabel = 0.0 ..< sublabel.frame.size.width + containers.append(firstLabel) + } + + // Determine which range contains the point, or return nil if in a buffer/margin area + guard let container = containers.filter({ (rng) -> Bool in + return rng.contains(presentationX) + }).first else { return nil } + + textPoint = CGPoint(x: (presentationX - container.lowerBound), y: presentationPoint.y) + return textPoint + } + + /** + Called when the label animation is about to begin. + + The default implementation of this method does nothing. Subclasses may override this method in order to perform any custom actions just as + the label animation begins. This is only called in the event that the conditions for scrolling to begin are met. + */ + open func labelWillBeginScroll() { + // Default implementation does nothing - override to customize + return + } + + /** + Called when the label animation has finished, and the label is at the home position. + + The default implementation of this method does nothing. Subclasses may override this method in order to perform any custom actions jas as + the label animation completes, and before the next animation would begin (assuming the scroll conditions are met). + + - Parameter finished: A Boolean that indicates whether or not the scroll animation actually finished before the completion handler was called. + + - Warning: This method will be called, and the `finished` parameter will be `NO`, when any property changes are made that would cause the label + scrolling to be automatically reset. This includes changes to label text and font/font size changes. + */ + open func labelReturnedToHome(_ finished: Bool) { + // Default implementation does nothing - override to customize + return + } + + // + // MARK: - Modified UILabel Functions/Getters/Setters + // + + override open var text: String? { + get { + return sublabel.text + } + + set { + if sublabel.text == newValue { + return + } + sublabel.text = newValue + updateAndScroll() + super.text = text + } + } + + override open var attributedText: NSAttributedString? { + get { + return sublabel.attributedText + } + + set { + if sublabel.attributedText == newValue { + return + } + sublabel.attributedText = newValue + updateAndScroll() + super.attributedText = attributedText + } + } + + override open var font: UIFont! { + get { + return sublabel.font + } + + set { + if sublabel.font == newValue { + return + } + sublabel.font = newValue + super.font = newValue + + updateAndScroll() + } + } + + override open var textColor: UIColor! { + get { + return sublabel.textColor + } + + set { + sublabel.textColor = newValue + super.textColor = newValue + } + } + + override open var backgroundColor: UIColor? { + get { + return sublabel.backgroundColor + } + + set { + sublabel.backgroundColor = newValue + super.backgroundColor = newValue + } + } + + override open var shadowColor: UIColor? { + get { + return sublabel.shadowColor + } + + set { + sublabel.shadowColor = newValue + super.shadowColor = newValue + } + } + + override open var shadowOffset: CGSize { + get { + return sublabel.shadowOffset + } + + set { + sublabel.shadowOffset = newValue + super.shadowOffset = newValue + } + } + + override open var highlightedTextColor: UIColor? { + get { + return sublabel.highlightedTextColor + } + + set { + sublabel.highlightedTextColor = newValue + super.highlightedTextColor = newValue + } + } + + override open var isHighlighted: Bool { + get { + return sublabel.isHighlighted + } + + set { + sublabel.isHighlighted = newValue + super.isHighlighted = newValue + } + } + + override open var isEnabled: Bool { + get { + return sublabel.isEnabled + } + + set { + sublabel.isEnabled = newValue + super.isEnabled = newValue + } + } + + override open var numberOfLines: Int { + get { + return super.numberOfLines + } + + set { + // By the nature of MarqueeLabel, this is 1 + super.numberOfLines = 1 + } + } + + override open var baselineAdjustment: UIBaselineAdjustment { + get { + return sublabel.baselineAdjustment + } + + set { + sublabel.baselineAdjustment = newValue + super.baselineAdjustment = newValue + } + } + + override open var intrinsicContentSize: CGSize { + var content = sublabel.intrinsicContentSize + content.width += leadingBuffer + return content + } + + override open var tintColor: UIColor! { + get { + return sublabel.tintColor + } + + set { + sublabel.tintColor = newValue + super.tintColor = newValue + } + } + + override open func tintColorDidChange() { + super.tintColorDidChange() + sublabel.tintColorDidChange() + } + + override open var contentMode: UIView.ContentMode { + get { + return sublabel.contentMode + } + + set { + super.contentMode = contentMode + sublabel.contentMode = newValue + } + } + + open override var isAccessibilityElement: Bool { + didSet { + sublabel.isAccessibilityElement = self.isAccessibilityElement + } + } + + open override var adjustsFontForContentSizeCategory: Bool { + get { + return sublabel.adjustsFontForContentSizeCategory + } + set { + if sublabel.adjustsFontForContentSizeCategory == newValue { + return + } + sublabel.adjustsFontForContentSizeCategory = newValue + super.adjustsFontForContentSizeCategory = newValue + + updateAndScroll() + } + } + + // + // MARK: - Version Specific Properties + // + #if os(iOS) + override open func forBaselineLayout() -> UIView { + // Use subLabel view for handling baseline layouts + return sublabel + } + + override open var forLastBaselineLayout: UIView { + // Use subLabel view for handling baseline layouts + return sublabel + } + #endif + + @available(iOS 15.0, tvOS 15.0, *) + open override var minimumContentSizeCategory: UIContentSizeCategory? { + get { + return sublabel.minimumContentSizeCategory + } + set { + if sublabel.minimumContentSizeCategory == newValue { + return + } + sublabel.minimumContentSizeCategory = newValue + super.minimumContentSizeCategory = newValue + + updateAndScroll() + } + } + + @available(iOS 15.0, tvOS 15.0, *) + open override var appliedContentSizeCategoryLimitsDescription: String { + return sublabel.appliedContentSizeCategoryLimitsDescription + } + + @available(iOS 15.0, tvOS 15.0, *) + open override var maximumContentSizeCategory: UIContentSizeCategory? { + get { + return sublabel.maximumContentSizeCategory + } + set { + if sublabel.maximumContentSizeCategory == newValue { + return + } + sublabel.maximumContentSizeCategory = newValue + super.maximumContentSizeCategory = newValue + + updateAndScroll() + } + } + + // + // MARK: - Support + // + + fileprivate func offsetCGPoint(_ point: CGPoint, offset: CGFloat) -> CGPoint { + return CGPoint(x: point.x + offset, y: point.y) + } + + // + // MARK: - Deinit + // + + deinit { + NotificationCenter.default.removeObserver(self) + } + +} + + +// +// MARK: - Support +// +public protocol MarqueeStep { + var timeStep: CGFloat { get } + var timingFunction: UIView.AnimationCurve { get } + var edgeFades: EdgeFade { get } +} + + +/** + `ScrollStep` types define the label position at a specified time delta since the last `ScrollStep` step, as well as + the animation curve to that position and edge fade state at the position + */ +public struct ScrollStep: MarqueeStep { + /** + An enum that provides the possible positions defined by a ScrollStep + - `home`: The starting, default position of the label + - `away`: The calculated position that results in the entirety of the label scrolling past. + - `partial(CGFloat)`: A fractional value, specified by the associated CGFloat value, between the `home` and `away` positions (must be between 0.0 and 1.0). + + The `away` position depends on the MarqueeLabel `type` value. + - For `left`, `leftRight`, `right`, and `rightLeft` types, the `away` position means the trailing edge of the label + is visible. For `leftRight` and `rightLeft` default types, the scroll animation reverses direction after reaching + this point and returns to the `home` position. + - For `continuous` and `continuousReverse` types, the `away` position is the location such that if the scroll is completed + at this point (i.e. the animation is removed), there will be no visible change in the label appearance. + */ + public enum Position { + case home + case away + case partial(CGFloat) + } + + /** + The desired time between this step and the previous `ScrollStep` in a sequence. + */ + public let timeStep: CGFloat + + /** + The animation curve to utilize between the previous `ScrollStep` in a sequence and this step. + + - Note: The animation curve value for the first `ScrollStep` in a sequence has no effect. + */ + public let timingFunction: UIView.AnimationCurve + + /** + The position of the label for this scroll step. + - SeeAlso: Position + */ + public let position: Position + + /** + The option set defining the edge fade state for this scroll step. + + Possible options include `.leading` and `.trailing`, corresponding to the leading edge of the label scrolling (i.e. + the direction of scroll) and trailing edge of the label. + */ + public let edgeFades: EdgeFade + + public init(timeStep: CGFloat, timingFunction: UIView.AnimationCurve = .linear, position: Position, edgeFades: EdgeFade) { + self.timeStep = timeStep + self.position = position + self.edgeFades = edgeFades + self.timingFunction = timingFunction + } +} + + +/** + `FadeStep` types allow additional edge fade state definitions, around the states defined by the `ScrollStep` steps of + a sequence. `FadeStep` steps are defined by the time delta to the preceding or subsequent `ScrollStep` step and the timing + function to their edge fade state. + + - Note: A `FadeStep` cannot be the first step in a sequence. A `FadeStep` defined as such will be ignored. + */ +public struct FadeStep: MarqueeStep { + /** + The desired time between this `FadeStep` and the preceding or subsequent `ScrollStep` in a sequence. + + `FadeSteps` with a negative `timeStep` value will be associated _only_ with an immediately-subsequent `ScrollStep` step + in the sequence. + + `FadeSteps` with a positive `timeStep` value will be associated _only_ with an immediately-prior `ScrollStep` step in the + sequence. + + - Note: A `FadeStep` with a `timeStep` value of 0.0 will have no effect, and is the same as defining the fade state with + a `ScrollStep`. + */ + public let timeStep: CGFloat + + /** + The animation curve to utilize between the previous fade state in a sequence and this step. + */ + public let timingFunction: UIView.AnimationCurve + + /** + The option set defining the edge fade state for this fade step. + + Possible options include `.leading` and `.trailing`, corresponding to the leading edge of the label scrolling (i.e. + the direction of scroll) and trailing edge of the label. + + As an Option Set type, both edge fade states may be defined using an array literal: `[.leading, .trailing]`. + */ + public let edgeFades: EdgeFade + + public init(timeStep: CGFloat, timingFunction: UIView.AnimationCurve = .linear, edgeFades: EdgeFade) { + self.timeStep = timeStep + self.timingFunction = timingFunction + self.edgeFades = edgeFades + } +} + +public struct EdgeFade: OptionSet { + public let rawValue: Int + public static let leading = EdgeFade(rawValue: 1 << 0) + public static let trailing = EdgeFade(rawValue: 1 << 1) + + public init(rawValue: Int) { + self.rawValue = rawValue + } +} + +// Define helpful typealiases +fileprivate typealias MLAnimationCompletionBlock = (_ finished: Bool) -> Void +fileprivate typealias MLAnimation = (anim: CAKeyframeAnimation, duration: CGFloat) + +fileprivate class GradientSetupAnimation: CABasicAnimation { +} + +fileprivate extension UILabel { + func desiredSize() -> CGSize { + // Bound the expected size + let maximumLabelSize = CGSize(width: CGFloat.greatestFiniteMagnitude, height: CGFloat.greatestFiniteMagnitude) + // Calculate the expected size + var expectedLabelSize = self.sizeThatFits(maximumLabelSize) + + #if os(tvOS) + // Sanitize width to 16384.0 (largest width a UILabel will draw on tvOS) + expectedLabelSize.width = min(expectedLabelSize.width, 16384.0) + #else + // Sanitize width to 5461.0 (largest width a UILabel will draw on an iPhone 6S Plus) + expectedLabelSize.width = min(expectedLabelSize.width, 5461.0) + #endif + + // Adjust to own height (make text baseline match normal label) + expectedLabelSize.height = bounds.size.height + return expectedLabelSize + } +} + +fileprivate extension Range where Bound == CGFloat { + func rangeForExtension(_ ext: CGFloat) -> Range { + return self.upperBound..<(self.upperBound + ext) + } +} + +fileprivate extension UIResponder { + // Thanks to Phil M + // http://stackoverflow.com/questions/1340434/get-to-uiviewcontroller-from-uiview-on-iphone + + func firstAvailableViewController() -> UIViewController? { + // convenience function for casting and to "mask" the recursive function + return self.traverseResponderChainForFirstViewController() + } + + func traverseResponderChainForFirstViewController() -> UIViewController? { + if let nextResponder = self.next { + if nextResponder is UIViewController { + return nextResponder as? UIViewController + } else if nextResponder is UIView { + return nextResponder.traverseResponderChainForFirstViewController() + } else { + return nil + } + } + return nil + } +} + +fileprivate extension CAMediaTimingFunction { + + func durationPercentageForPositionPercentage(_ positionPercentage: CGFloat, duration: CGFloat) -> CGFloat { + // Finds the animation duration percentage that corresponds with the given animation "position" percentage. + // Utilizes Newton's Method to solve for the parametric Bezier curve that is used by CAMediaAnimation. + + let controlPoints = self.controlPoints() + let epsilon: CGFloat = 1.0 / (100.0 * CGFloat(duration)) + + // Find the t value that gives the position percentage we want + let t_found = solveTforY(positionPercentage, epsilon: epsilon, controlPoints: controlPoints) + + // With that t, find the corresponding animation percentage + let durationPercentage = XforCurveAt(t_found, controlPoints: controlPoints) + + return durationPercentage + } + + func solveTforY(_ y_0: CGFloat, epsilon: CGFloat, controlPoints: [CGPoint]) -> CGFloat { + // Use Newton's Method: http://en.wikipedia.org/wiki/Newton's_method + // For first guess, use t = y (i.e. if curve were linear) + var t0 = y_0 + var t1 = y_0 + var f0, df0: CGFloat + + for _ in 0..<15 { + // Base this iteration of t1 calculated from last iteration + t0 = t1 + // Calculate f(t0) + f0 = YforCurveAt(t0, controlPoints:controlPoints) - y_0 + // Check if this is close (enough) + if abs(f0) < epsilon { + // Done! + return t0 + } + // Else continue Newton's Method + df0 = derivativeCurveYValueAt(t0, controlPoints:controlPoints) + // Check if derivative is small or zero ( http://en.wikipedia.org/wiki/Newton's_method#Failure_analysis ) + if abs(df0) < 1e-6 { + break + } + // Else recalculate t1 + t1 = t0 - f0/df0 + } + + // Give up - shouldn't ever get here...I hope + print("MarqueeLabel: Failed to find t for Y input!") + return t0 + } + + func YforCurveAt(_ t: CGFloat, controlPoints: [CGPoint]) -> CGFloat { + let P0 = controlPoints[0] + let P1 = controlPoints[1] + let P2 = controlPoints[2] + let P3 = controlPoints[3] + + // Per http://en.wikipedia.org/wiki/Bezier_curve#Cubic_B.C3.A9zier_curves + let y0 = (pow((1.0 - t), 3.0) * P0.y) + let y1 = (3.0 * pow(1.0 - t, 2.0) * t * P1.y) + let y2 = (3.0 * (1.0 - t) * pow(t, 2.0) * P2.y) + let y3 = (pow(t, 3.0) * P3.y) + + return y0 + y1 + y2 + y3 + } + + func XforCurveAt(_ t: CGFloat, controlPoints: [CGPoint]) -> CGFloat { + let P0 = controlPoints[0] + let P1 = controlPoints[1] + let P2 = controlPoints[2] + let P3 = controlPoints[3] + + // Per http://en.wikipedia.org/wiki/Bezier_curve#Cubic_B.C3.A9zier_curves + + let x0 = (pow((1.0 - t), 3.0) * P0.x) + let x1 = (3.0 * pow(1.0 - t, 2.0) * t * P1.x) + let x2 = (3.0 * (1.0 - t) * pow(t, 2.0) * P2.x) + let x3 = (pow(t, 3.0) * P3.x) + + return x0 + x1 + x2 + x3 + } + + func derivativeCurveYValueAt(_ t: CGFloat, controlPoints: [CGPoint]) -> CGFloat { + let P0 = controlPoints[0] + let P1 = controlPoints[1] + let P2 = controlPoints[2] + let P3 = controlPoints[3] + + let dy0 = (P0.y + 3.0 * P1.y + 3.0 * P2.y - P3.y) * -3.0 + let dy1 = t * (6.0 * P0.y + 6.0 * P2.y) + let dy2 = (-3.0 * P0.y + 3.0 * P1.y) + + return dy0 * pow(t, 2.0) + dy1 + dy2 + } + + func controlPoints() -> [CGPoint] { + // Create point array to point to + var point: [Float] = [0.0, 0.0] + var pointArray = [CGPoint]() + for i in 0...3 { + self.getControlPoint(at: i, values: &point) + pointArray.append(CGPoint(x: CGFloat(point[0]), y: CGFloat(point[1]))) + } + + return pointArray + } +} + diff --git a/Pods/MarqueeLabel/Sources/PrivacyInfo.xcprivacy b/Pods/MarqueeLabel/Sources/PrivacyInfo.xcprivacy new file mode 100644 index 0000000..0c89028 --- /dev/null +++ b/Pods/MarqueeLabel/Sources/PrivacyInfo.xcprivacy @@ -0,0 +1,14 @@ + + + + + NSPrivacyTracking + + NSPrivacyTrackingDomains + + NSPrivacyAccessedAPITypes + + NSPrivacyCollectedDataTypes + + + diff --git a/Pods/Pods.xcodeproj/project.pbxproj b/Pods/Pods.xcodeproj/project.pbxproj index 2db56d0..91ab341 100644 --- a/Pods/Pods.xcodeproj/project.pbxproj +++ b/Pods/Pods.xcodeproj/project.pbxproj @@ -7,1045 +7,1072 @@ objects = { /* Begin PBXBuildFile section */ - 007E4A9363B819089774B481510E7DFC /* DownloadTask.swift in Sources */ = {isa = PBXBuildFile; fileRef = B72DA7D36E4584007B5A7E1B88B9331C /* DownloadTask.swift */; }; - 018E14B621F0A041F5109C9B4028DAA7 /* JXSegmentedIndicatorGradientView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 973352085D5416EA815F82D7171FFDF6 /* JXSegmentedIndicatorGradientView.swift */; }; - 0335018FAC1AD7BC453F8F9A68CDABC4 /* SVProgressAnimatedView.h in Headers */ = {isa = PBXBuildFile; fileRef = 4E7C909E9A64B9D749DBD181DB7AB6C7 /* SVProgressAnimatedView.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 0361F2B5CB823772710AB366D00D3F0E /* Formatter+Protocols.swift in Sources */ = {isa = PBXBuildFile; fileRef = 05D53E6FE979C0A1784D61AE876E30EB /* Formatter+Protocols.swift */; }; - 0493E66044259CA8F47711626563E29C /* RelativeFormatterLanguage.swift in Sources */ = {isa = PBXBuildFile; fileRef = CE67A08E936C10061A3F4C42C4D46A1F /* RelativeFormatterLanguage.swift */; }; - 05B82D21BB4500108A38518E64D25A6E /* CPListItem+Kingfisher.swift in Sources */ = {isa = PBXBuildFile; fileRef = 68A19F495B7B29FCD335C9877343A792 /* CPListItem+Kingfisher.swift */; }; + 007E4A9363B819089774B481510E7DFC /* DownloadTask.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2122C6EBB21D40091E4A7024A3A84553 /* DownloadTask.swift */; }; + 018E14B621F0A041F5109C9B4028DAA7 /* JXSegmentedIndicatorGradientView.swift in Sources */ = {isa = PBXBuildFile; fileRef = DCCBB3FF9CDB5CB4828893DDEB488674 /* JXSegmentedIndicatorGradientView.swift */; }; + 0335018FAC1AD7BC453F8F9A68CDABC4 /* SVProgressAnimatedView.h in Headers */ = {isa = PBXBuildFile; fileRef = C723BAF098E360E89C3837C2C28AAC23 /* SVProgressAnimatedView.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 0361F2B5CB823772710AB366D00D3F0E /* Formatter+Protocols.swift in Sources */ = {isa = PBXBuildFile; fileRef = 35FA650454D142550A0573C6FB619834 /* Formatter+Protocols.swift */; }; + 0493E66044259CA8F47711626563E29C /* RelativeFormatterLanguage.swift in Sources */ = {isa = PBXBuildFile; fileRef = 473404EA66F41CF156A5AA1663364FDC /* RelativeFormatterLanguage.swift */; }; + 04F6A4F4967C6BDC48DD5BDA64DE07FD /* Pods-relax.offline.mp3.music-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 5A9791A6864A1422EB3D01824FCFDE53 /* Pods-relax.offline.mp3.music-dummy.m */; }; + 05B82D21BB4500108A38518E64D25A6E /* CPListItem+Kingfisher.swift in Sources */ = {isa = PBXBuildFile; fileRef = DE89C1ABF2A598826BFD10EDDDA95AC6 /* CPListItem+Kingfisher.swift */; }; 060ABD8CDFB995116BE1FEF7FA7D9EFC /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = B4B8063291033C95A8B2A24FA2AD7A79 /* Foundation.framework */; }; - 07F83DE63FB5CC8015F48F7B9B800B6F /* IQPreviousNextView.swift in Sources */ = {isa = PBXBuildFile; fileRef = DB4D898881D558C30750A0690F06774D /* IQPreviousNextView.swift */; }; - 07FD274BC01F578C7B37989F79350C1E /* IQToolbar.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6B166B3810536EF00AF8735B173E648D /* IQToolbar.swift */; }; - 080B0A6E64DD22DBD5BF269AA6A556FB /* KFAnimatedImage.swift in Sources */ = {isa = PBXBuildFile; fileRef = 651AA476DE421329D7481219EEF6450D /* KFAnimatedImage.swift */; }; - 081815B67871C182C0D337274DEDCE69 /* MJRefreshBackStateFooter.m in Sources */ = {isa = PBXBuildFile; fileRef = E1FB999AC2FDEAC6E684D8B3FA776139 /* MJRefreshBackStateFooter.m */; }; - 08593ACC3F8955B57D3865FBE5940230 /* JXPagingView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 597C0B43F3A389988BBE039F9180AF73 /* JXPagingView.swift */; }; + 07F83DE63FB5CC8015F48F7B9B800B6F /* IQPreviousNextView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 23941654FE33A23CA7BF75F0C95BA24B /* IQPreviousNextView.swift */; }; + 07FD274BC01F578C7B37989F79350C1E /* IQToolbar.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8BD415DF4E0434B63CAD999FB00828B9 /* IQToolbar.swift */; }; + 080B0A6E64DD22DBD5BF269AA6A556FB /* KFAnimatedImage.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4FFF862E204569AABC42FFAFD56353A0 /* KFAnimatedImage.swift */; }; + 081815B67871C182C0D337274DEDCE69 /* MJRefreshBackStateFooter.m in Sources */ = {isa = PBXBuildFile; fileRef = 7DC49AD779BCF52CF1DA54C5AE6E2B36 /* MJRefreshBackStateFooter.m */; }; + 08593ACC3F8955B57D3865FBE5940230 /* JXPagingView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4D2D33F595163FDA3C1066EFF04B0A3C /* JXPagingView.swift */; }; 0874E6176184E3A1C3E8AB158AE5E98B /* CoreGraphics.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 828F1C480D9959D94E2868CE1084677F /* CoreGraphics.framework */; }; - 09871A1E8CE997DD91E7ACE2A0A273BF /* Zones.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7229D90EC1A65C45FB522B55022F09C6 /* Zones.swift */; }; - 0A5C290276F7453D9471E25BEA655842 /* ConstraintLayoutGuide.swift in Sources */ = {isa = PBXBuildFile; fileRef = FE49FDCEF4136EFD8B8B73990A8273DA /* ConstraintLayoutGuide.swift */; }; - 0AD7A0DA8FF5880E3D8599062129AB12 /* ConstraintMakerEditable.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7CB71DBB690155435C7354D318B6E7BC /* ConstraintMakerEditable.swift */; }; - 0C1B443A8895027B91F721861E739920 /* PrivacyInfo.xcprivacy in Resources */ = {isa = PBXBuildFile; fileRef = 9E9C802ADF9427945AB4EA05DD6D3BD0 /* PrivacyInfo.xcprivacy */; }; - 0CC41A7F3CDAAF90C1825DCF4FB71B9B /* DateRepresentable.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7D18AAD8C7EC5F24F1C4E62BC36A545A /* DateRepresentable.swift */; }; - 0D665B6767B345D8C70D7E029A2A48D8 /* ConstraintViewDSL.swift in Sources */ = {isa = PBXBuildFile; fileRef = C1B1EF889925B42A1C1D10C0CDEB9439 /* ConstraintViewDSL.swift */; }; - 0DA9A9D2F8960818017E26DA480FA143 /* ConstraintLayoutGuideDSL.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9679621F1FAF834E4E7A10B33E6E8FE4 /* ConstraintLayoutGuideDSL.swift */; }; - 0F1D68554CA1AC595168E8FB4E1A6E63 /* CachedResponseHandler.swift in Sources */ = {isa = PBXBuildFile; fileRef = 73E8978BF1F0C58A3BD5854096AEBD52 /* CachedResponseHandler.swift */; }; - 1093AAD9CB7394BDBDD0E287103515F6 /* MJRefreshNormalTrailer.h in Headers */ = {isa = PBXBuildFile; fileRef = 4C2B27EFF326D222281498D6341EC22E /* MJRefreshNormalTrailer.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 1102439674F0EB249240589D2607B9EF /* Result.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5D57C1E7C83318927FF473C3874244A1 /* Result.swift */; }; - 11F2B1DF419EC68AD10D2A1D1176B082 /* SwiftDate-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = 0A7DE7F4DC02387DEB4909EE6551BEBC /* SwiftDate-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 12EC6890A8A59536867A18E8F83C8BB7 /* JXPagingView-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = 05F1C2B1DEF9E95836BF3AC986652086 /* JXPagingView-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 1336E9B0D82E5DE4E4DA4DAD898489BC /* DateInRegion+Create.swift in Sources */ = {isa = PBXBuildFile; fileRef = 87C9CDBBA73FEE85B6C6648580D2167B /* DateInRegion+Create.swift */; }; - 13CC0CFB1C56F23BBC872801F983C1A3 /* ConstraintLayoutSupport.swift in Sources */ = {isa = PBXBuildFile; fileRef = A1B35519C98323C92C768E8314BB5556 /* ConstraintLayoutSupport.swift */; }; - 15CC896E2126D6A47D03C01964D74776 /* JXSegmentedIndicatorGradientLineView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0AC7D94E21920BD7C7205B597F701736 /* JXSegmentedIndicatorGradientLineView.swift */; }; - 15F68E09ADCDB843B938C490059485BD /* ConstraintMakerRelatable+Extensions.swift in Sources */ = {isa = PBXBuildFile; fileRef = 86DF9B1826A8445C1909A118B026A333 /* ConstraintMakerRelatable+Extensions.swift */; }; - 162B358A9CC48A414D6744BAF8562D93 /* JXSegmentedTitleDynamicConfiguration.swift in Sources */ = {isa = PBXBuildFile; fileRef = D1A9174812F8930C8C9B88FFB94742A4 /* JXSegmentedTitleDynamicConfiguration.swift */; }; - 165B4E7F47A4A27EDF01B892B8E2A03B /* Array+Safe.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9E838A9978878D207DDD07D9A91E87A7 /* Array+Safe.swift */; }; - 16E5F9C7FE2C499D21F3E7AF1FFC2FA7 /* IQKeyboardManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = CCE48D759A3729A1F7C0EACD9C5C2827 /* IQKeyboardManager.swift */; }; - 170E0C2556FD00466C155473B428F792 /* MJRefreshBackFooter.h in Headers */ = {isa = PBXBuildFile; fileRef = 370E0DBBCF6046B8EA0A19F16D7720C3 /* MJRefreshBackFooter.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 09871A1E8CE997DD91E7ACE2A0A273BF /* Zones.swift in Sources */ = {isa = PBXBuildFile; fileRef = 955FB175B0F957F837E1F14A74513FF5 /* Zones.swift */; }; + 0A5C290276F7453D9471E25BEA655842 /* ConstraintLayoutGuide.swift in Sources */ = {isa = PBXBuildFile; fileRef = 93B36940516BABBD2527915100693F88 /* ConstraintLayoutGuide.swift */; }; + 0AD7A0DA8FF5880E3D8599062129AB12 /* ConstraintMakerEditable.swift in Sources */ = {isa = PBXBuildFile; fileRef = E17BB19CC994226AFBDBA45E90174B3A /* ConstraintMakerEditable.swift */; }; + 0CC41A7F3CDAAF90C1825DCF4FB71B9B /* DateRepresentable.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9CA4F7B8603C3C6B06E3EC0DD58D9C71 /* DateRepresentable.swift */; }; + 0D665B6767B345D8C70D7E029A2A48D8 /* ConstraintViewDSL.swift in Sources */ = {isa = PBXBuildFile; fileRef = B240B0622C4AC6081D7EDFC6202A7A07 /* ConstraintViewDSL.swift */; }; + 0DA9A9D2F8960818017E26DA480FA143 /* ConstraintLayoutGuideDSL.swift in Sources */ = {isa = PBXBuildFile; fileRef = B803220E5945CD79C62D45CBE3A42ABE /* ConstraintLayoutGuideDSL.swift */; }; + 0F1D68554CA1AC595168E8FB4E1A6E63 /* CachedResponseHandler.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8D5E2396A67F7160A6BAEE91CF8DE309 /* CachedResponseHandler.swift */; }; + 1093AAD9CB7394BDBDD0E287103515F6 /* MJRefreshNormalTrailer.h in Headers */ = {isa = PBXBuildFile; fileRef = 5FC94C6FC28C2204F52D7975F7EAD382 /* MJRefreshNormalTrailer.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 1102439674F0EB249240589D2607B9EF /* Result.swift in Sources */ = {isa = PBXBuildFile; fileRef = C83CA5A1A860D5596AEBFBC4F15135E1 /* Result.swift */; }; + 11F2B1DF419EC68AD10D2A1D1176B082 /* SwiftDate-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = 635635C80C4A6F844662FBC0825108B1 /* SwiftDate-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 12EC6890A8A59536867A18E8F83C8BB7 /* JXPagingView-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = 953FC7D1F8564B6B9DC76A37A7333FA5 /* JXPagingView-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 1336E9B0D82E5DE4E4DA4DAD898489BC /* DateInRegion+Create.swift in Sources */ = {isa = PBXBuildFile; fileRef = C97BEE5E450A5E886F39744CBDD8E4E3 /* DateInRegion+Create.swift */; }; + 13CC0CFB1C56F23BBC872801F983C1A3 /* ConstraintLayoutSupport.swift in Sources */ = {isa = PBXBuildFile; fileRef = 42D32A21BC6970499FB68AB45D275ACC /* ConstraintLayoutSupport.swift */; }; + 15CC896E2126D6A47D03C01964D74776 /* JXSegmentedIndicatorGradientLineView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 46314C1E12962DB1E9D783BE2AB6599D /* JXSegmentedIndicatorGradientLineView.swift */; }; + 15F68E09ADCDB843B938C490059485BD /* ConstraintMakerRelatable+Extensions.swift in Sources */ = {isa = PBXBuildFile; fileRef = DA52ED1D7100B2335479F45E0BAB48BA /* ConstraintMakerRelatable+Extensions.swift */; }; + 162B358A9CC48A414D6744BAF8562D93 /* JXSegmentedTitleDynamicConfiguration.swift in Sources */ = {isa = PBXBuildFile; fileRef = EC38E3F74F0F49291A13DB319164307F /* JXSegmentedTitleDynamicConfiguration.swift */; }; + 165B4E7F47A4A27EDF01B892B8E2A03B /* Array+Safe.swift in Sources */ = {isa = PBXBuildFile; fileRef = 238B7566326A9971E1086B295C5ABFCB /* Array+Safe.swift */; }; + 16E5F9C7FE2C499D21F3E7AF1FFC2FA7 /* IQKeyboardManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 81D940990A7A5C8F9765145438343AEB /* IQKeyboardManager.swift */; }; + 170E0C2556FD00466C155473B428F792 /* MJRefreshBackFooter.h in Headers */ = {isa = PBXBuildFile; fileRef = 7B00242AEAF7DC8FA5F63CFFCD102E90 /* MJRefreshBackFooter.h */; settings = {ATTRIBUTES = (Public, ); }; }; 172D6F4BDBFD921ABF3F4936747C7B5F /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = B4B8063291033C95A8B2A24FA2AD7A79 /* Foundation.framework */; }; - 18B137C1708A9B9DC45BBB1ECF1CE4A8 /* MJRefreshHeader.m in Sources */ = {isa = PBXBuildFile; fileRef = B448667264F601C0B45F3EED80D8646C /* MJRefreshHeader.m */; }; - 19C5CA44D4D4D5B711D33A73525D453F /* IQUIView+IQKeyboardToolbar.swift in Sources */ = {isa = PBXBuildFile; fileRef = EC9EC0D2832CCC0BF46556C47E598340 /* IQUIView+IQKeyboardToolbar.swift */; }; - 19FE9BC7F25FF5D48B6B2B3B520D4D47 /* SVProgressHUD.h in Headers */ = {isa = PBXBuildFile; fileRef = 14D68A465BCDB85C5F5F10836C1E7E15 /* SVProgressHUD.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 1A39B80A5083C84CF22A0D9FBB27761E /* UICollectionViewLayout+MJRefresh.m in Sources */ = {isa = PBXBuildFile; fileRef = B90745D19853BE9EDA09363759828B91 /* UICollectionViewLayout+MJRefresh.m */; }; - 1A56A2E0BE0367DDB6BE95E537D43314 /* Commons.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6B57EEBF6633E0A3B3E68FA866010056 /* Commons.swift */; }; - 1AEABE21257723E2AEE836117F3A8B12 /* MJRefreshFooter.h in Headers */ = {isa = PBXBuildFile; fileRef = 70825CEBF5EE532366CB976871A97C27 /* MJRefreshFooter.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 1B1FF7E1AFE69EA5C4816CF9426FD088 /* PKCircleView.h in Headers */ = {isa = PBXBuildFile; fileRef = 3C18631CE3A76D9E239D38D937F073AC /* PKCircleView.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 1B4B180E84924CF99663817A2AFFAA92 /* IQKeyboardManager+Debug.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5C1056EA978019ADBA19B800CAEB542E /* IQKeyboardManager+Debug.swift */; }; - 1E7E37C51375285EA22294CD2ADB3159 /* Debugging.swift in Sources */ = {isa = PBXBuildFile; fileRef = 178ABE62AD082DF4E86BB4E2283BE7E5 /* Debugging.swift */; }; - 1F539427E456AC56FFDD416169240415 /* UIImage+PKDownloadButton.h in Headers */ = {isa = PBXBuildFile; fileRef = ACBBC1D95C681D2EBBB6FD5B9B42E31D /* UIImage+PKDownloadButton.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 1FF54BA1EA87ACD81339325012E2537B /* JXSegmentedTitleGradientCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 32A400989AC36A34EEE68105929AB845 /* JXSegmentedTitleGradientCell.swift */; }; + 18B137C1708A9B9DC45BBB1ECF1CE4A8 /* MJRefreshHeader.m in Sources */ = {isa = PBXBuildFile; fileRef = 0BBE9EF043CCF5A5419ECFEB06C690C1 /* MJRefreshHeader.m */; }; + 19C5CA44D4D4D5B711D33A73525D453F /* IQUIView+IQKeyboardToolbar.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5DDFC2B686C7E589416A77F3D89D8BD5 /* IQUIView+IQKeyboardToolbar.swift */; }; + 19FE9BC7F25FF5D48B6B2B3B520D4D47 /* SVProgressHUD.h in Headers */ = {isa = PBXBuildFile; fileRef = 1F83353ECC4B459BF4234E1164289644 /* SVProgressHUD.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 1A39B80A5083C84CF22A0D9FBB27761E /* UICollectionViewLayout+MJRefresh.m in Sources */ = {isa = PBXBuildFile; fileRef = 1449C5993FC9FD9E4C34B82F3C5CB814 /* UICollectionViewLayout+MJRefresh.m */; }; + 1A56A2E0BE0367DDB6BE95E537D43314 /* Commons.swift in Sources */ = {isa = PBXBuildFile; fileRef = D8516622262A452328B0B65E29AA340F /* Commons.swift */; }; + 1A6AF38DE42C92491AFFC76527050663 /* MarqueeLabel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 664067D6AFAD9C1DDA40DD6EF0AEB02D /* MarqueeLabel.swift */; }; + 1AEABE21257723E2AEE836117F3A8B12 /* MJRefreshFooter.h in Headers */ = {isa = PBXBuildFile; fileRef = 1A7EDE82DCCDCDE3D2E8D7244ED9788E /* MJRefreshFooter.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 1B1FF7E1AFE69EA5C4816CF9426FD088 /* PKCircleView.h in Headers */ = {isa = PBXBuildFile; fileRef = 81BA5C6700842B547C2E19A43B0551B9 /* PKCircleView.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 1B2341CD952E45126D64F01292BBCB40 /* MarqueeLabel-MarqueeLabel in Resources */ = {isa = PBXBuildFile; fileRef = FD694DB3E09A81036691F823E3211D44 /* MarqueeLabel-MarqueeLabel */; }; + 1B4B180E84924CF99663817A2AFFAA92 /* IQKeyboardManager+Debug.swift in Sources */ = {isa = PBXBuildFile; fileRef = 33140581269593D23CABC41A35B01F83 /* IQKeyboardManager+Debug.swift */; }; + 1BD39AF66EBE2534F3B4FBD6B3E117B3 /* PrivacyInfo.xcprivacy in Resources */ = {isa = PBXBuildFile; fileRef = 6088064A3AA58B0CD11EFF40FF0662CE /* PrivacyInfo.xcprivacy */; }; + 1E7E37C51375285EA22294CD2ADB3159 /* Debugging.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4BE433B1433BD888BDE297FD204C49F9 /* Debugging.swift */; }; + 1F539427E456AC56FFDD416169240415 /* UIImage+PKDownloadButton.h in Headers */ = {isa = PBXBuildFile; fileRef = A04E95A84D68E6C700795D5A112CC666 /* UIImage+PKDownloadButton.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 1FF54BA1EA87ACD81339325012E2537B /* JXSegmentedTitleGradientCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9BA92119A502CEB293041F6667E32905 /* JXSegmentedTitleGradientCell.swift */; }; 20F437D81954DB9DF1BA404A1C48EE5D /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = B4B8063291033C95A8B2A24FA2AD7A79 /* Foundation.framework */; }; - 222B9B50C37D319BBACE8E15B8A40348 /* JXSegmentedNumberDataSource.swift in Sources */ = {isa = PBXBuildFile; fileRef = 72BFD417A23793E7CC1AD47C610F9232 /* JXSegmentedNumberDataSource.swift */; }; - 22FAFA41450EC40132CF4B0EEE7E6788 /* ParameterEncoder.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8F1AA9619B532D7267A35CBE59DF0D7F /* ParameterEncoder.swift */; }; - 23277D4B1F4E8335DDCAB69A2AD75C9F /* JXSegmentedTitleOrImageDataSource.swift in Sources */ = {isa = PBXBuildFile; fileRef = C9C7778B4AC6393E18E528CDD07E3F8D /* JXSegmentedTitleOrImageDataSource.swift */; }; - 23B1B9EA25E2C943FCE5EC6D4EE19D6A /* MJRefreshGifHeader.m in Sources */ = {isa = PBXBuildFile; fileRef = DEA225A9EB938392C7EF2A568E82DA32 /* MJRefreshGifHeader.m */; }; - 23EE2A5A9ADF9A6B9A3515CA85E382ED /* UIView+MJExtension.h in Headers */ = {isa = PBXBuildFile; fileRef = 5303ABF9B0FED3C94FF2EFF9ABDA9B4D /* UIView+MJExtension.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 244119912087C6ECC078CB0E740833EB /* UIScrollView+MJRefresh.m in Sources */ = {isa = PBXBuildFile; fileRef = DF738793C80DDACF5A9214C986797E2F /* UIScrollView+MJRefresh.m */; }; - 2480B116D9A738E79212C0E0DD41872D /* GIFAnimatedImage.swift in Sources */ = {isa = PBXBuildFile; fileRef = D1A055B449C92CC26C1381E59710D8C0 /* GIFAnimatedImage.swift */; }; - 25BCD06941B1CFB8F9A231960D546885 /* PKCircleView.m in Sources */ = {isa = PBXBuildFile; fileRef = 6DEFC8A5EC7CC7AE8BB155B861E6EA7A /* PKCircleView.m */; }; - 26541C9BEC53081C7AD9BB9819D71B41 /* JXSegmentedNumberCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0EBC40BA74A88B62E74BAB63898E1F21 /* JXSegmentedNumberCell.swift */; }; - 274E0D56AEB27C391FC58EBED912F19A /* Image.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4068045C151506E0A93EFDB8951513F5 /* Image.swift */; }; - 279E3C4211663A097FFE575249B19BC3 /* SVProgressAnimatedView.m in Sources */ = {isa = PBXBuildFile; fileRef = 2348BF8015FB0D82FB1B5448C9475F6B /* SVProgressAnimatedView.m */; }; - 287D870088725A42B4DF1FFC8772EA19 /* Task.swift in Sources */ = {isa = PBXBuildFile; fileRef = B7247B90BE8C143C488A363432AC00FA /* Task.swift */; }; - 2927AE446998C11370D49E4A2CFD17AC /* MJRefreshNormalHeader.m in Sources */ = {isa = PBXBuildFile; fileRef = 0406807613B48C37AFBFD8A5566CECF7 /* MJRefreshNormalHeader.m */; }; - 2AE3EFDE302E34CF498E6A693ACC9D06 /* ImageDataProcessor.swift in Sources */ = {isa = PBXBuildFile; fileRef = 334554B9B671DEC7ADCF7D982591C642 /* ImageDataProcessor.swift */; }; - 2B1AAA73D9231A2A7BA89DD1FF01C273 /* JXSegmentedTitleImageCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5E59017F132D3F8BE077B285CDBC283A /* JXSegmentedTitleImageCell.swift */; }; - 2B230B24827053BA3E9DA0C78A796BC2 /* ResponseSerialization.swift in Sources */ = {isa = PBXBuildFile; fileRef = D16FDF1BA9F851829FB41F61D22DF87A /* ResponseSerialization.swift */; }; - 2B42D035AFF52D62722161A7772C6C08 /* HTTPHeaders.swift in Sources */ = {isa = PBXBuildFile; fileRef = 15C91724B4E04DC823EA8635B9991F84 /* HTTPHeaders.swift */; }; - 2C4C08BB733A2101D945E8C37256F78F /* UploadRequest.swift in Sources */ = {isa = PBXBuildFile; fileRef = F71F8336A279465EDD63361D3EA48AD2 /* UploadRequest.swift */; }; - 2C94C305900E95BDB9296A7EFCF3C940 /* MJRefreshConst.h in Headers */ = {isa = PBXBuildFile; fileRef = EE56A83001E77940E55939087F6B6D50 /* MJRefreshConst.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 2DD965DE434BE3B5A0C6EC1FC47AE81D /* String+Parser.swift in Sources */ = {isa = PBXBuildFile; fileRef = FAE1B3D9828D6B007276756B5710687E /* String+Parser.swift */; }; - 2E572B53624BB2ED444BC9747A9F1781 /* ImageDownloader.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5BE848D62F0E2DD5E6B01AB8A941161A /* ImageDownloader.swift */; }; - 2E84CD435150EDA1356EE23EAB3CE5E7 /* SVRadialGradientLayer.h in Headers */ = {isa = PBXBuildFile; fileRef = A021004CAD79AEA622FEC4542DDAA9D4 /* SVRadialGradientLayer.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 222B9B50C37D319BBACE8E15B8A40348 /* JXSegmentedNumberDataSource.swift in Sources */ = {isa = PBXBuildFile; fileRef = ECC9C3685EE7FC815B55A7A258463229 /* JXSegmentedNumberDataSource.swift */; }; + 22FAFA41450EC40132CF4B0EEE7E6788 /* ParameterEncoder.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6B285B835616B56F46980ADD39A51C61 /* ParameterEncoder.swift */; }; + 23277D4B1F4E8335DDCAB69A2AD75C9F /* JXSegmentedTitleOrImageDataSource.swift in Sources */ = {isa = PBXBuildFile; fileRef = DBB233A8A5D344EC01196A58581E8D80 /* JXSegmentedTitleOrImageDataSource.swift */; }; + 23B1B9EA25E2C943FCE5EC6D4EE19D6A /* MJRefreshGifHeader.m in Sources */ = {isa = PBXBuildFile; fileRef = 43CCDEB493C9979C1959B9942047DA1C /* MJRefreshGifHeader.m */; }; + 23EE2A5A9ADF9A6B9A3515CA85E382ED /* UIView+MJExtension.h in Headers */ = {isa = PBXBuildFile; fileRef = 4C5997F32ACC78D0783DECD6876B8362 /* UIView+MJExtension.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 244119912087C6ECC078CB0E740833EB /* UIScrollView+MJRefresh.m in Sources */ = {isa = PBXBuildFile; fileRef = 0C3119926A431E2B17B538C93E17A852 /* UIScrollView+MJRefresh.m */; }; + 2480B116D9A738E79212C0E0DD41872D /* GIFAnimatedImage.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0131C8FEF300D7E0DCB43F23E7C66B1F /* GIFAnimatedImage.swift */; }; + 25BCD06941B1CFB8F9A231960D546885 /* PKCircleView.m in Sources */ = {isa = PBXBuildFile; fileRef = 8791B26F243EFF6DF5A806240222E002 /* PKCircleView.m */; }; + 26541C9BEC53081C7AD9BB9819D71B41 /* JXSegmentedNumberCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 42517ADA576373B5F2B2AA56BB57260F /* JXSegmentedNumberCell.swift */; }; + 274E0D56AEB27C391FC58EBED912F19A /* Image.swift in Sources */ = {isa = PBXBuildFile; fileRef = A6A506A57BEBD985E5CA2ABEF70A3C8A /* Image.swift */; }; + 279E3C4211663A097FFE575249B19BC3 /* SVProgressAnimatedView.m in Sources */ = {isa = PBXBuildFile; fileRef = D07CECE9C0A88C78E0F6FF510ED64787 /* SVProgressAnimatedView.m */; }; + 287D870088725A42B4DF1FFC8772EA19 /* Task.swift in Sources */ = {isa = PBXBuildFile; fileRef = 94C202F95364504949AF0B1D2FF5EA5A /* Task.swift */; }; + 2927AE446998C11370D49E4A2CFD17AC /* MJRefreshNormalHeader.m in Sources */ = {isa = PBXBuildFile; fileRef = 4E9D0ECB7E0F273DE9EDC330510B8A28 /* MJRefreshNormalHeader.m */; }; + 2AE3EFDE302E34CF498E6A693ACC9D06 /* ImageDataProcessor.swift in Sources */ = {isa = PBXBuildFile; fileRef = 925B3EF9170B62EB96DDA4A261C43D64 /* ImageDataProcessor.swift */; }; + 2B1AAA73D9231A2A7BA89DD1FF01C273 /* JXSegmentedTitleImageCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = B9751538A41C93069AC520FC8ADDD990 /* JXSegmentedTitleImageCell.swift */; }; + 2B230B24827053BA3E9DA0C78A796BC2 /* ResponseSerialization.swift in Sources */ = {isa = PBXBuildFile; fileRef = F9F1C66852BF157B00E2E839B79BE5FF /* ResponseSerialization.swift */; }; + 2B42D035AFF52D62722161A7772C6C08 /* HTTPHeaders.swift in Sources */ = {isa = PBXBuildFile; fileRef = B18AE0202CE7B90525259BA625A527F6 /* HTTPHeaders.swift */; }; + 2C4C08BB733A2101D945E8C37256F78F /* UploadRequest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9132990A6001E8384B01FF456D4DE827 /* UploadRequest.swift */; }; + 2C94C305900E95BDB9296A7EFCF3C940 /* MJRefreshConst.h in Headers */ = {isa = PBXBuildFile; fileRef = 117201D42D64EEBD54A9824C19353C82 /* MJRefreshConst.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 2DD965DE434BE3B5A0C6EC1FC47AE81D /* String+Parser.swift in Sources */ = {isa = PBXBuildFile; fileRef = F6D2CA71CCD091A767826F36D43522CA /* String+Parser.swift */; }; + 2E572B53624BB2ED444BC9747A9F1781 /* ImageDownloader.swift in Sources */ = {isa = PBXBuildFile; fileRef = 90A81DA85C66E9E2FB3201D69AAD666D /* ImageDownloader.swift */; }; + 2E84CD435150EDA1356EE23EAB3CE5E7 /* SVRadialGradientLayer.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BA3C103CC568409B715494D387CC7F4 /* SVRadialGradientLayer.h */; settings = {ATTRIBUTES = (Public, ); }; }; 3013EFF5D3DB5F626FB63C96A690082A /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = B4B8063291033C95A8B2A24FA2AD7A79 /* Foundation.framework */; }; - 3031C92E9CB81AD378483755A4DA6F79 /* KingfisherManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = BBBF0A136D849C2FA87A9508A1DA8387 /* KingfisherManager.swift */; }; - 3035E05E0216ED11647680F9C2127B01 /* MJRefresh.bundle in Resources */ = {isa = PBXBuildFile; fileRef = 5349BD74B2DD47008A231410686E263A /* MJRefresh.bundle */; }; - 30DBC87A501715FE2328B9FF011F1BB9 /* MJRefreshStateHeader.m in Sources */ = {isa = PBXBuildFile; fileRef = E8C11317C48B50EF739DF1A04D93A1F9 /* MJRefreshStateHeader.m */; }; - 32AD6316A2024235B39F19FC97C0B6BF /* ImageDataProvider.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3C2F80AE1C9EE73162C077C9154EE0DB /* ImageDataProvider.swift */; }; - 3360B725B480679D59E44B812DD8D116 /* MJRefresh-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = C9D8041C1E832ED61831FAE327CF2883 /* MJRefresh-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 346855A32221981DE16BBB5C1E636BA4 /* MJRefreshAutoStateFooter.m in Sources */ = {isa = PBXBuildFile; fileRef = 0F4D08727A4683802BEEB2F3662DEB2B /* MJRefreshAutoStateFooter.m */; }; - 360F2B06AC4C38F3994965AA69FF0AC7 /* Kingfisher.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4FAB68949F3F65C3DCE726B88EEF50AC /* Kingfisher.swift */; }; - 36C78069A72BECAEB66B31FF794A09ED /* Request.swift in Sources */ = {isa = PBXBuildFile; fileRef = 43C36A312871511CF0DD8615F079E951 /* Request.swift */; }; - 371D974865C3554FFC4B2D487D12615E /* Notifications.swift in Sources */ = {isa = PBXBuildFile; fileRef = AF2A15BB017E1D7AE830361846A137F0 /* Notifications.swift */; }; - 37289CBB73D25EA3424BF2ADFBB898AC /* TimePeriodProtocol.swift in Sources */ = {isa = PBXBuildFile; fileRef = 01CF505FB97345FF724294092F0C5058 /* TimePeriodProtocol.swift */; }; - 373502D50A1B2266D86409E19EC46DDB /* IQTitleBarButtonItem.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7520BB516E107B80A66D15FEFEF999C1 /* IQTitleBarButtonItem.swift */; }; - 37D302D5A81F84194396C4A7C871F1DA /* langs in Resources */ = {isa = PBXBuildFile; fileRef = 7783E7042303A5E0076AB72335FF86AD /* langs */; }; - 395102C6B3D1D5F7DB48E7D762CE9152 /* DownloadButton-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = 9501CB63FC7106D1611964238814DE16 /* DownloadButton-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 39EAB37ED329E6CE7C691B9EAF731446 /* JXSegmentedDotDataSource.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1AB4CFF133FB22B15A4544D29B88BB01 /* JXSegmentedDotDataSource.swift */; }; - 3B573F7FAA3A12BA7BF2CC874A31DEAB /* DateInRegion+Components.swift in Sources */ = {isa = PBXBuildFile; fileRef = C664257C5969700D7E1B383F33E56FEB /* DateInRegion+Components.swift */; }; + 3031C92E9CB81AD378483755A4DA6F79 /* KingfisherManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 350BCB03327C5F2C9BECC6FFA0542AC8 /* KingfisherManager.swift */; }; + 3035E05E0216ED11647680F9C2127B01 /* MJRefresh.bundle in Resources */ = {isa = PBXBuildFile; fileRef = BF06AC62113E5692AF1F4761A2616AC8 /* MJRefresh.bundle */; }; + 30DBC87A501715FE2328B9FF011F1BB9 /* MJRefreshStateHeader.m in Sources */ = {isa = PBXBuildFile; fileRef = C7316A7F04B5390E547BCE5243EAA31F /* MJRefreshStateHeader.m */; }; + 32AD6316A2024235B39F19FC97C0B6BF /* ImageDataProvider.swift in Sources */ = {isa = PBXBuildFile; fileRef = 31C323285A3155F84D9AFE58FD78D246 /* ImageDataProvider.swift */; }; + 3360B725B480679D59E44B812DD8D116 /* MJRefresh-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = 9EE6328AB6C72590DE803C111C37A60A /* MJRefresh-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 346855A32221981DE16BBB5C1E636BA4 /* MJRefreshAutoStateFooter.m in Sources */ = {isa = PBXBuildFile; fileRef = 506242F11D90C1AEE578033478116092 /* MJRefreshAutoStateFooter.m */; }; + 360F2B06AC4C38F3994965AA69FF0AC7 /* Kingfisher.swift in Sources */ = {isa = PBXBuildFile; fileRef = 15069099C57BDA36E80037EF11AE010D /* Kingfisher.swift */; }; + 36C78069A72BECAEB66B31FF794A09ED /* Request.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5AC5A3F2AFE4DBC634FBBEEC8C8597BC /* Request.swift */; }; + 371D974865C3554FFC4B2D487D12615E /* Notifications.swift in Sources */ = {isa = PBXBuildFile; fileRef = 46F8ABAB992507C6BBCA2AAF69DAB50D /* Notifications.swift */; }; + 37289CBB73D25EA3424BF2ADFBB898AC /* TimePeriodProtocol.swift in Sources */ = {isa = PBXBuildFile; fileRef = AA23D6F550CE77AB601F0A0B2ED964C6 /* TimePeriodProtocol.swift */; }; + 373502D50A1B2266D86409E19EC46DDB /* IQTitleBarButtonItem.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6CF22C8803B6805B8F73395E93D6AC83 /* IQTitleBarButtonItem.swift */; }; + 37D302D5A81F84194396C4A7C871F1DA /* langs in Resources */ = {isa = PBXBuildFile; fileRef = BDA6861F693C9A7F89FADBFCDF8B4DC8 /* langs */; }; + 395102C6B3D1D5F7DB48E7D762CE9152 /* DownloadButton-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = CBE5626C57DF328776BD0D2C05BB609E /* DownloadButton-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 39EAB37ED329E6CE7C691B9EAF731446 /* JXSegmentedDotDataSource.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6F8849479F3F19A2250A43346D9708F3 /* JXSegmentedDotDataSource.swift */; }; + 3A55DECC322583F176EC1F2038CDE44A /* PrivacyInfo.xcprivacy in Resources */ = {isa = PBXBuildFile; fileRef = F9ABB3A8141E40470EE54F0016A46483 /* PrivacyInfo.xcprivacy */; }; + 3B573F7FAA3A12BA7BF2CC874A31DEAB /* DateInRegion+Components.swift in Sources */ = {isa = PBXBuildFile; fileRef = 48E651BF46CACE566E99761D182A8313 /* DateInRegion+Components.swift */; }; 3B901DF82C6576019330391D0F470B31 /* CFNetwork.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 8A2A128F3FAE37601751167FDC47182A /* CFNetwork.framework */; }; - 3BC51136C1F65D6962C6727889AA942E /* String+MD5.swift in Sources */ = {isa = PBXBuildFile; fileRef = B65B57EA9496FB2C3B6BDA5D6B4E48EE /* String+MD5.swift */; }; - 3C425FEE22F5E6EE82500F6107EAE8F4 /* JXSegmentedIndicatorProtocol.swift in Sources */ = {isa = PBXBuildFile; fileRef = 921DF5C53AD7DEACF962A6ADEF7FFFAB /* JXSegmentedIndicatorProtocol.swift */; }; - 3DAFEDCDC5094007E329D71FE84FF704 /* SnapKit-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = D1CC4A34B7E2E53CDB2C9AB2B58BA516 /* SnapKit-dummy.m */; }; - 417EAFB7648F1C35B8F7ADC203A96315 /* JXSegmentedBaseItemModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 855DBC5C68A55479D76CAB8F762905C2 /* JXSegmentedBaseItemModel.swift */; }; - 41A536E6CE1C85116A756B710B2C660B /* IQKeyboardManagerConstants.swift in Sources */ = {isa = PBXBuildFile; fileRef = F0B77FF8CCF94CC371E5305E19CB4399 /* IQKeyboardManagerConstants.swift */; }; - 42B43A15ADA9F66F4E2AD66666943F26 /* SwiftDate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 55AD550AFD50A4AACF406AE4509884F7 /* SwiftDate.swift */; }; - 4318466387894387E637747807B70757 /* Tiercel-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = CD5E96189BF77251A0A7D74615A24812 /* Tiercel-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 4337931D8B8E3F3BA03C77C1B496BEAD /* HTTPMethod.swift in Sources */ = {isa = PBXBuildFile; fileRef = 043335998E7E91696B859F4CCD9606FC /* HTTPMethod.swift */; }; - 43E7BD44853E62096917DAF77B6C1CE3 /* Executer.swift in Sources */ = {isa = PBXBuildFile; fileRef = 063E759192F5CD877BCE4EB80712E5A9 /* Executer.swift */; }; - 43ED71634C98518E6B0749001ED89C43 /* MJRefreshAutoNormalFooter.h in Headers */ = {isa = PBXBuildFile; fileRef = 7A84B1B2C2A01CADA8A4FB7002C03EC0 /* MJRefreshAutoNormalFooter.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 440C0830E1410552E2ED0A1647CC4209 /* JXPagingListRefreshView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 882F40E244273565B4DAA774DBAE0186 /* JXPagingListRefreshView.swift */; }; - 4413F602F8263A6E3EE93517916F2EDF /* SwiftDate-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = ED6AF3E82C2703509CFCC5748F6E7604 /* SwiftDate-dummy.m */; }; - 443BAB61DC338F0C6857DF638156E5E4 /* PrivacyInfo.xcprivacy in Resources */ = {isa = PBXBuildFile; fileRef = 695465D6553A7047F09DEFAC13D84D56 /* PrivacyInfo.xcprivacy */; }; - 45131830DC22C22B4A21C4A54A147947 /* MJRefreshNormalTrailer.m in Sources */ = {isa = PBXBuildFile; fileRef = FC9726A452C355E5A93BC81295F7FF11 /* MJRefreshNormalTrailer.m */; }; + 3BC51136C1F65D6962C6727889AA942E /* String+MD5.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8448673A4774CAFEBCD24BE82AF62917 /* String+MD5.swift */; }; + 3C425FEE22F5E6EE82500F6107EAE8F4 /* JXSegmentedIndicatorProtocol.swift in Sources */ = {isa = PBXBuildFile; fileRef = E4A0DFD919AD82038C8BF847F5F739FE /* JXSegmentedIndicatorProtocol.swift */; }; + 3DAFEDCDC5094007E329D71FE84FF704 /* SnapKit-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 2A1D22F7B21663BAD85E06A344194AF0 /* SnapKit-dummy.m */; }; + 417EAFB7648F1C35B8F7ADC203A96315 /* JXSegmentedBaseItemModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4E5F5A742DDBDAE2FC927882DAC7C146 /* JXSegmentedBaseItemModel.swift */; }; + 41A536E6CE1C85116A756B710B2C660B /* IQKeyboardManagerConstants.swift in Sources */ = {isa = PBXBuildFile; fileRef = C52CB88FD984A6FB84683407A504D382 /* IQKeyboardManagerConstants.swift */; }; + 42B43A15ADA9F66F4E2AD66666943F26 /* SwiftDate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1BD0AAB38CA9722D37F600FF34CC07B9 /* SwiftDate.swift */; }; + 4318466387894387E637747807B70757 /* Tiercel-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = AFDD721B961419036553BB7F816B5B9E /* Tiercel-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 4337931D8B8E3F3BA03C77C1B496BEAD /* HTTPMethod.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1617A3777D8D48603550A764643637E8 /* HTTPMethod.swift */; }; + 43E7BD44853E62096917DAF77B6C1CE3 /* Executer.swift in Sources */ = {isa = PBXBuildFile; fileRef = 33E1D0F4570630A66EC11D6550996BFD /* Executer.swift */; }; + 43ED71634C98518E6B0749001ED89C43 /* MJRefreshAutoNormalFooter.h in Headers */ = {isa = PBXBuildFile; fileRef = 5AFABD0F91AAB460005E72FA49182E21 /* MJRefreshAutoNormalFooter.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 440C0830E1410552E2ED0A1647CC4209 /* JXPagingListRefreshView.swift in Sources */ = {isa = PBXBuildFile; fileRef = E8062DA15BB499A276DDB19826D59379 /* JXPagingListRefreshView.swift */; }; + 4413F602F8263A6E3EE93517916F2EDF /* SwiftDate-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 5713B1AF8B3CD5B2368E33B8C9CE5E78 /* SwiftDate-dummy.m */; }; + 45131830DC22C22B4A21C4A54A147947 /* MJRefreshNormalTrailer.m in Sources */ = {isa = PBXBuildFile; fileRef = 19C4B336344ECAEDD6712562E4049762 /* MJRefreshNormalTrailer.m */; }; 454D70B3D5531C61FAF93EF01F6B761D /* UIKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1199E580C5F19AFD1010FE20258DADBD /* UIKit.framework */; }; - 45ABFED1A9F6C0B330BB822AC08029A5 /* TiercelError.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0C6EB3AFA655F18ACE9DB8543E1CEB99 /* TiercelError.swift */; }; - 45D1C5B966D0BE59EF67F8A839AED2F4 /* JXSegmentedViewTool.swift in Sources */ = {isa = PBXBuildFile; fileRef = 898243FF66AF7C337C21A8C6542D3B26 /* JXSegmentedViewTool.swift */; }; - 47B7A22D43797E42FCDCD96028823BFF /* KFImageProtocol.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1840F8AE4A9DAF86A9713F0D3A7751F4 /* KFImageProtocol.swift */; }; - 4803DFE6BE7D9A926811385567288A8C /* TimePeriodGroup.swift in Sources */ = {isa = PBXBuildFile; fileRef = BE62833E8E1ADEDCF1681D442012F80B /* TimePeriodGroup.swift */; }; - 488D86E76F481BF72891821AA3ABF485 /* Pods-relax.offline.mp3.music-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 5A9791A6864A1422EB3D01824FCFDE53 /* Pods-relax.offline.mp3.music-dummy.m */; }; - 48E83D4BC4A5C3542CB0560A1E82A2F4 /* MJRefresh.h in Headers */ = {isa = PBXBuildFile; fileRef = 27F5B23D017DA45A994D3CAB2EC19776 /* MJRefresh.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 498FFEC31A02476F4F719EF645AC1562 /* MJRefreshHeader.h in Headers */ = {isa = PBXBuildFile; fileRef = 3014A4FE1760FDA7885E041B8EF0853E /* MJRefreshHeader.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 49D5506D651C7F3E49D8DA20ABD46AF9 /* OperationQueue+DispatchQueue.swift in Sources */ = {isa = PBXBuildFile; fileRef = E28C20C79BDFFF977A6CACA17D6D5E68 /* OperationQueue+DispatchQueue.swift */; }; - 4AADD25AAE104D5F72CDC039E82D9BB6 /* RedirectHandler.swift in Sources */ = {isa = PBXBuildFile; fileRef = 507DB4670F96D43CAB20AFB3D18A622A /* RedirectHandler.swift */; }; - 4B6EA5410A2C492D91A141426FD81588 /* WKInterfaceImage+Kingfisher.swift in Sources */ = {isa = PBXBuildFile; fileRef = D60D2443E79D2ADEACF4A6F35ED91F46 /* WKInterfaceImage+Kingfisher.swift */; }; - 4C1CC731DAB49793158DB4EA0982137C /* ImageBinder.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7D45C333FDAD021CF43F46CE22C5A099 /* ImageBinder.swift */; }; - 4D77099177C62FCD622E0BB73237386E /* CacheSerializer.swift in Sources */ = {isa = PBXBuildFile; fileRef = CA79BA165572FB323A04D46617357847 /* CacheSerializer.swift */; }; - 4EFCD7DECB92938B822DE9FB6CABD30F /* FileManager+AvailableCapacity.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4442DAD3B8B05B75C068BADB1E00B9D7 /* FileManager+AvailableCapacity.swift */; }; - 4F2F7AFD7C593DAE210F77E7F8BC2403 /* JXSegmentedIndicatorTriangleView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4E80022D2BF17AC34C27A3EDDD0F9189 /* JXSegmentedIndicatorTriangleView.swift */; }; + 45ABFED1A9F6C0B330BB822AC08029A5 /* TiercelError.swift in Sources */ = {isa = PBXBuildFile; fileRef = 841611B569DBCAF114BC4865BCEAB887 /* TiercelError.swift */; }; + 45D1C5B966D0BE59EF67F8A839AED2F4 /* JXSegmentedViewTool.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8AC2C00A0C5A41F4D64A8E965AADD87B /* JXSegmentedViewTool.swift */; }; + 47B7A22D43797E42FCDCD96028823BFF /* KFImageProtocol.swift in Sources */ = {isa = PBXBuildFile; fileRef = 76EB2408020A5E896E8A7E5BF1D6866D /* KFImageProtocol.swift */; }; + 4803DFE6BE7D9A926811385567288A8C /* TimePeriodGroup.swift in Sources */ = {isa = PBXBuildFile; fileRef = C36A6C9D52AF7D31EA7F08AA56D00180 /* TimePeriodGroup.swift */; }; + 48E83D4BC4A5C3542CB0560A1E82A2F4 /* MJRefresh.h in Headers */ = {isa = PBXBuildFile; fileRef = A02680B209797E014A9CB2E457201E74 /* MJRefresh.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 498FFEC31A02476F4F719EF645AC1562 /* MJRefreshHeader.h in Headers */ = {isa = PBXBuildFile; fileRef = EC728CA1DF148330DE8CEE2CDC59F7A0 /* MJRefreshHeader.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 49C77BE32959EA3C1D1643AE62B6F647 /* PrivacyInfo.xcprivacy in Resources */ = {isa = PBXBuildFile; fileRef = 0C57FE4092186DA3BF03087A3DDC928C /* PrivacyInfo.xcprivacy */; }; + 49D5506D651C7F3E49D8DA20ABD46AF9 /* OperationQueue+DispatchQueue.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6AFB9BB0EF5449C725EAD24210DFD26B /* OperationQueue+DispatchQueue.swift */; }; + 4AADD25AAE104D5F72CDC039E82D9BB6 /* RedirectHandler.swift in Sources */ = {isa = PBXBuildFile; fileRef = E0D6121CA98BB82C7851D193FD419502 /* RedirectHandler.swift */; }; + 4B6EA5410A2C492D91A141426FD81588 /* WKInterfaceImage+Kingfisher.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5569399D1EB726EB0DD2A7E1396321DC /* WKInterfaceImage+Kingfisher.swift */; }; + 4C1CC731DAB49793158DB4EA0982137C /* ImageBinder.swift in Sources */ = {isa = PBXBuildFile; fileRef = 00809342163D914F7313B357D343777A /* ImageBinder.swift */; }; + 4D77099177C62FCD622E0BB73237386E /* CacheSerializer.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0A64F5F92A75933EA79178722B51ABD8 /* CacheSerializer.swift */; }; + 4EFCD7DECB92938B822DE9FB6CABD30F /* FileManager+AvailableCapacity.swift in Sources */ = {isa = PBXBuildFile; fileRef = EE9A6FA2A81AC5A30859A6BB2B4FA72E /* FileManager+AvailableCapacity.swift */; }; + 4F2F7AFD7C593DAE210F77E7F8BC2403 /* JXSegmentedIndicatorTriangleView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4DB6D4B8D6F44ACDD6E446998748BD0B /* JXSegmentedIndicatorTriangleView.swift */; }; 4F4B9DFA352D9958C7494D7BC24631D8 /* Alamofire-Alamofire in Resources */ = {isa = PBXBuildFile; fileRef = 085DBCE7DD98588B2ED103B1C1F36026 /* Alamofire-Alamofire */; }; - 4F80144C5D33EFDAC14379838CF9720E /* MJRefreshBackFooter.m in Sources */ = {isa = PBXBuildFile; fileRef = 6C14D8B0475F955FF30F17288DFF9FBA /* MJRefreshBackFooter.m */; }; - 4FE35DBCEE3E9B3AE786452DCCD1B66C /* JXSegmentedBaseDataSource.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1F6825F0A2F7B30C077245FB5E5692F2 /* JXSegmentedBaseDataSource.swift */; }; - 506C1EE2968687F178BB2DFA34D185CE /* IQKeyboardReturnKeyHandler.swift in Sources */ = {isa = PBXBuildFile; fileRef = 680D8D30FFEA27B037B71AFB46683FED /* IQKeyboardReturnKeyHandler.swift */; }; - 5075DC82A63A9807DFC390B4CE8046CD /* Session.swift in Sources */ = {isa = PBXBuildFile; fileRef = E4EE92687081A3EFA90A93BD1C9B49FB /* Session.swift */; }; - 50E4E24710A4C5A77BE6594A10DFE773 /* ConstraintMultiplierTarget.swift in Sources */ = {isa = PBXBuildFile; fileRef = D08CC0CCF224643BE2E2DBBFF55B6ABB /* ConstraintMultiplierTarget.swift */; }; - 514A19E702520E6E336D77E2615D17CF /* NSBundle+MJRefresh.m in Sources */ = {isa = PBXBuildFile; fileRef = C5F2A9D2AE5EC1D15C9A439CA951F28B /* NSBundle+MJRefresh.m */; }; - 51D9F94E4B4D2A55B87D6CF7199B9E7C /* UIButton+PKDownloadButton.m in Sources */ = {isa = PBXBuildFile; fileRef = 00B3B84CAF8ED73E095C919FA5C8FC89 /* UIButton+PKDownloadButton.m */; }; - 530FC2CFAAF9C09C0B75CF5CF6DF0B65 /* Storage.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7522B5E1BBFFA03FB1B7F7D5349FDDA9 /* Storage.swift */; }; - 539E9EED5FBF53E3ECF2652ECFA4A2FD /* MemoryStorage.swift in Sources */ = {isa = PBXBuildFile; fileRef = F8020F66064F4E5C645D9BDD312552EC /* MemoryStorage.swift */; }; - 5610B3D1D3CC41790D99E354C1201DA5 /* Cache.swift in Sources */ = {isa = PBXBuildFile; fileRef = 22411E71D813DD7A4537E85BAC6A125A /* Cache.swift */; }; - 56987A745C2D39979A167EBF45B8D073 /* JXPagingSmoothView.swift in Sources */ = {isa = PBXBuildFile; fileRef = E0D5F358E3E5F37F2090D8DF5BD7BEBD /* JXPagingSmoothView.swift */; }; - 56CD198002D3D45274F6719725B983CF /* ConstraintOffsetTarget.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1683E97F9AE54BB1747EE29AC29C6C10 /* ConstraintOffsetTarget.swift */; }; - 56E561C1A8960D630D418FF931D36FBA /* JXSegmentedTitleItemModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = BA33079BECD4700E35095C06C7661A11 /* JXSegmentedTitleItemModel.swift */; }; - 571142A2747CD90165F631A8AE980A0A /* Alamofire-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = 01158741151664C9DF8D6AEACDA30158 /* Alamofire-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 574450219BF9DBA9113E31EBC80BAEF2 /* JXSegmentedTitleCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = E380359F4745C2DC4BEE375D0EAA4700 /* JXSegmentedTitleCell.swift */; }; - 578833D3ED755D5D1F1577005AEADBAE /* TimeStructures.swift in Sources */ = {isa = PBXBuildFile; fileRef = E077AC06FAF9F81DEBC37C0D7A3F3802 /* TimeStructures.swift */; }; - 5830C6260CA2B7CD6DC74054FB29CDD1 /* DownloadRequest.swift in Sources */ = {isa = PBXBuildFile; fileRef = CCF42DE6BA4D1820E5ACCC22C6AE1458 /* DownloadRequest.swift */; }; - 5896E7040BD3FBD6C57C9727F706407A /* GraphicsContext.swift in Sources */ = {isa = PBXBuildFile; fileRef = AA2DB24577A445C4239E287940618202 /* GraphicsContext.swift */; }; - 58E936B1E7E42C0BFC119D428B70F1D8 /* Alamofire.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1E6570A71224F7DABBFE472D8370347F /* Alamofire.swift */; }; - 5AD4E5B4118A1DC7D639F611044B4159 /* DataRequest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5FA8DD3EAF4331A957B02AF68C32D8C3 /* DataRequest.swift */; }; - 5C041C0F3BBC8ED3017D03D1A00BFEDF /* DisplayLink.swift in Sources */ = {isa = PBXBuildFile; fileRef = BB5803B78D37B44F74D50F13C1FBDDD5 /* DisplayLink.swift */; }; - 5CCFD596BBF1E6D91167E6E3A977FB86 /* UIImage+PKDownloadButton.m in Sources */ = {isa = PBXBuildFile; fileRef = 0B5110745B15FEEFB97E52A7E9A6E9C2 /* UIImage+PKDownloadButton.m */; }; - 5D2F784CAC2EEE09B332245A61D3687D /* AssociatedValues.swift in Sources */ = {isa = PBXBuildFile; fileRef = E346A9AF6887E0E1AAD2178604B2FBDF /* AssociatedValues.swift */; }; - 5D90B0097BBDAB6B90F35314BBC37554 /* Date+Create.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4BD1E96B9F81887409A87C11B8627CF9 /* Date+Create.swift */; }; + 4F80144C5D33EFDAC14379838CF9720E /* MJRefreshBackFooter.m in Sources */ = {isa = PBXBuildFile; fileRef = E51F1EF01413ADDECD6664205BCE7A93 /* MJRefreshBackFooter.m */; }; + 4FE35DBCEE3E9B3AE786452DCCD1B66C /* JXSegmentedBaseDataSource.swift in Sources */ = {isa = PBXBuildFile; fileRef = 48FC6499D782B6A38B55A1058728D46D /* JXSegmentedBaseDataSource.swift */; }; + 506C1EE2968687F178BB2DFA34D185CE /* IQKeyboardReturnKeyHandler.swift in Sources */ = {isa = PBXBuildFile; fileRef = 53D9BBF299544DEEAD5E456AA5306990 /* IQKeyboardReturnKeyHandler.swift */; }; + 5075DC82A63A9807DFC390B4CE8046CD /* Session.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0A679FA4BEEED4176374BC386B15E12B /* Session.swift */; }; + 50E4E24710A4C5A77BE6594A10DFE773 /* ConstraintMultiplierTarget.swift in Sources */ = {isa = PBXBuildFile; fileRef = 64C33D2228817B887C70B400F0DC5497 /* ConstraintMultiplierTarget.swift */; }; + 514A19E702520E6E336D77E2615D17CF /* NSBundle+MJRefresh.m in Sources */ = {isa = PBXBuildFile; fileRef = A22F8A41B6D2270432A011E71F734FA4 /* NSBundle+MJRefresh.m */; }; + 51D9F94E4B4D2A55B87D6CF7199B9E7C /* UIButton+PKDownloadButton.m in Sources */ = {isa = PBXBuildFile; fileRef = 8A9EC97D60C19B6EC4595E86F1D00537 /* UIButton+PKDownloadButton.m */; }; + 530FC2CFAAF9C09C0B75CF5CF6DF0B65 /* Storage.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2A8550EC020A77B500DD995CEA60F882 /* Storage.swift */; }; + 539E9EED5FBF53E3ECF2652ECFA4A2FD /* MemoryStorage.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7FC69616A1892344EB78134505A3F752 /* MemoryStorage.swift */; }; + 5610B3D1D3CC41790D99E354C1201DA5 /* Cache.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7E77397A610E64B5DE29B2C6790C9B0C /* Cache.swift */; }; + 56987A745C2D39979A167EBF45B8D073 /* JXPagingSmoothView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4676AC055A0230683AB285C9444D9EB6 /* JXPagingSmoothView.swift */; }; + 56CD198002D3D45274F6719725B983CF /* ConstraintOffsetTarget.swift in Sources */ = {isa = PBXBuildFile; fileRef = E8BB085594A33CFA1AE37B223A06BF25 /* ConstraintOffsetTarget.swift */; }; + 56E561C1A8960D630D418FF931D36FBA /* JXSegmentedTitleItemModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0DFF1834A88DF9FB33D90BDD9AA81691 /* JXSegmentedTitleItemModel.swift */; }; + 571142A2747CD90165F631A8AE980A0A /* Alamofire-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = EA4C6F8B96D45ED1BBBD34CFA947EC47 /* Alamofire-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 574450219BF9DBA9113E31EBC80BAEF2 /* JXSegmentedTitleCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9D8B7EF73D50EE3EC8D8AB0CD2F05FDC /* JXSegmentedTitleCell.swift */; }; + 578833D3ED755D5D1F1577005AEADBAE /* TimeStructures.swift in Sources */ = {isa = PBXBuildFile; fileRef = 74BF157814EA00E73F813C2C5D28312D /* TimeStructures.swift */; }; + 57A86BF81E7C01FFE89F869654E50676 /* PrivacyInfo.xcprivacy in Resources */ = {isa = PBXBuildFile; fileRef = 5C44472740A9D2F104F11556227D7B0A /* PrivacyInfo.xcprivacy */; }; + 5830C6260CA2B7CD6DC74054FB29CDD1 /* DownloadRequest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1770F6E73FCAE86AC7722A319B012606 /* DownloadRequest.swift */; }; + 5896E7040BD3FBD6C57C9727F706407A /* GraphicsContext.swift in Sources */ = {isa = PBXBuildFile; fileRef = 98EDA8CF2147231BF156393E8D125FAD /* GraphicsContext.swift */; }; + 58E936B1E7E42C0BFC119D428B70F1D8 /* Alamofire.swift in Sources */ = {isa = PBXBuildFile; fileRef = F58A90C8C5934EE6AB722DB8819C1632 /* Alamofire.swift */; }; + 5AD4E5B4118A1DC7D639F611044B4159 /* DataRequest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2128D882568DC494E8F1150547E3A4DB /* DataRequest.swift */; }; + 5C041C0F3BBC8ED3017D03D1A00BFEDF /* DisplayLink.swift in Sources */ = {isa = PBXBuildFile; fileRef = BEA6DFC5EDEDBA9D67A35572352AA3C4 /* DisplayLink.swift */; }; + 5CCFD596BBF1E6D91167E6E3A977FB86 /* UIImage+PKDownloadButton.m in Sources */ = {isa = PBXBuildFile; fileRef = 109F4B31BBCDDD9360293F5C663FC4FB /* UIImage+PKDownloadButton.m */; }; + 5D2F784CAC2EEE09B332245A61D3687D /* AssociatedValues.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0A585AAA4ABFEE88AF9EA38DA8480A4E /* AssociatedValues.swift */; }; + 5D90B0097BBDAB6B90F35314BBC37554 /* Date+Create.swift in Sources */ = {isa = PBXBuildFile; fileRef = A2B99C0D768123D8E998850C1C856C0E /* Date+Create.swift */; }; 5E858AD3F64F096EE17F34759F017DC3 /* UIKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1199E580C5F19AFD1010FE20258DADBD /* UIKit.framework */; }; - 5E8E9469BF126E918EADF79EC4BB5CA2 /* IQUIView+Hierarchy.swift in Sources */ = {isa = PBXBuildFile; fileRef = B677BF4BFAA0171DA9C1D3C4AE1B43B2 /* IQUIView+Hierarchy.swift */; }; - 5E977209B51A440181A31A4CA27CA677 /* ImageContext.swift in Sources */ = {isa = PBXBuildFile; fileRef = C8A5ADD5FBC68E5721C4365B19487007 /* ImageContext.swift */; }; - 5F52D18FE8736028A8FB4B4B61B49111 /* JXSegmentedView-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 148B5CBC5E6471CA45F7B87E0D5D7A1F /* JXSegmentedView-dummy.m */; }; - 5FE04B779A038EBDFE268D19297F0FA5 /* RelativeFormatter.swift in Sources */ = {isa = PBXBuildFile; fileRef = 587F4C4B755FBF51C7CC55813ECF0DF9 /* RelativeFormatter.swift */; }; - 6084CC72921FA7260B8FA2A07F49AE96 /* JXSegmentedTitleAttributeItemModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9B7790F3FA397ABB4B74FB220532ED6D /* JXSegmentedTitleAttributeItemModel.swift */; }; - 60CD99E8F32FD54F599DECFB768863A0 /* JXSegmentedIndicatorImageView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 135936C0D9ADAC1FE180DF903BE733D2 /* JXSegmentedIndicatorImageView.swift */; }; + 5E8E9469BF126E918EADF79EC4BB5CA2 /* IQUIView+Hierarchy.swift in Sources */ = {isa = PBXBuildFile; fileRef = F4EE1B14402D8D0CCFC4F70B19E2A807 /* IQUIView+Hierarchy.swift */; }; + 5E977209B51A440181A31A4CA27CA677 /* ImageContext.swift in Sources */ = {isa = PBXBuildFile; fileRef = A5089A55177AC7BFF0A6C618FC9C79DF /* ImageContext.swift */; }; + 5F52D18FE8736028A8FB4B4B61B49111 /* JXSegmentedView-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 8504EF1F9133A53B74DAAF48F3E48C0A /* JXSegmentedView-dummy.m */; }; + 5FE04B779A038EBDFE268D19297F0FA5 /* RelativeFormatter.swift in Sources */ = {isa = PBXBuildFile; fileRef = 804AE736B53C8214AF7EE8E174CB4F9E /* RelativeFormatter.swift */; }; + 6084CC72921FA7260B8FA2A07F49AE96 /* JXSegmentedTitleAttributeItemModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = E00CAFDC4D99F63CED52FFAFF61E8F34 /* JXSegmentedTitleAttributeItemModel.swift */; }; + 60CD99E8F32FD54F599DECFB768863A0 /* JXSegmentedIndicatorImageView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 34F26DA97773D658E22071F12B542CCD /* JXSegmentedIndicatorImageView.swift */; }; 60CE1AC69D95F0F7C6637C601A84C069 /* MJRefresh-MJRefresh.Privacy in Resources */ = {isa = PBXBuildFile; fileRef = 7E3097CFEFDA621E9FB0E62009FF87FC /* MJRefresh-MJRefresh.Privacy */; }; - 60D62AFE59E950FFEA458C1788D05486 /* UIColor+PKDownloadButton.h in Headers */ = {isa = PBXBuildFile; fileRef = B36ED78664334F6F31ABE61907B9F48B /* UIColor+PKDownloadButton.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 612AE0ABB9BCD3AF0E1D29B4C063CA62 /* StringEncoding+Alamofire.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8F08B4014D08D679437B388E1EB6249C /* StringEncoding+Alamofire.swift */; }; - 6142372CEE4D251A94EA4BE2630F27E7 /* Date+Components.swift in Sources */ = {isa = PBXBuildFile; fileRef = AF8CCDE7D9B91A3A3BBF803B79C651AB /* Date+Components.swift */; }; - 632239BD2DF58FF13D9E4D1C4327F528 /* JXSegmentedTitleDataSource.swift in Sources */ = {isa = PBXBuildFile; fileRef = C12185FB2573B4C8D8B59C61313334FA /* JXSegmentedTitleDataSource.swift */; }; - 638A729C295B6267093699D505B8589D /* KFImageRenderer.swift in Sources */ = {isa = PBXBuildFile; fileRef = 01D1DD96A7064A2F1F151EB984101B42 /* KFImageRenderer.swift */; }; - 63BCE3414C785046BB317537B8120B5D /* MJRefreshAutoFooter.h in Headers */ = {isa = PBXBuildFile; fileRef = 9163D647AE97457039F7CCF80FCFEE3E /* MJRefreshAutoFooter.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 6431218578A566C5EBF5FD166F164059 /* ConstraintMakerExtendable.swift in Sources */ = {isa = PBXBuildFile; fileRef = 51471D07E76BFB34F5EDA721B4712C79 /* ConstraintMakerExtendable.swift */; }; + 60D62AFE59E950FFEA458C1788D05486 /* UIColor+PKDownloadButton.h in Headers */ = {isa = PBXBuildFile; fileRef = 18A583CCFD6D1DBEB9CCF90CFBD1BC6A /* UIColor+PKDownloadButton.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 612AE0ABB9BCD3AF0E1D29B4C063CA62 /* StringEncoding+Alamofire.swift in Sources */ = {isa = PBXBuildFile; fileRef = F81293AC0002136C2A240AEE245EA761 /* StringEncoding+Alamofire.swift */; }; + 6142372CEE4D251A94EA4BE2630F27E7 /* Date+Components.swift in Sources */ = {isa = PBXBuildFile; fileRef = 14B1A3F3039D6C5E815E246D2738947D /* Date+Components.swift */; }; + 632239BD2DF58FF13D9E4D1C4327F528 /* JXSegmentedTitleDataSource.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1E5AFB42EE6B29720DA3E27B5455357A /* JXSegmentedTitleDataSource.swift */; }; + 638A729C295B6267093699D505B8589D /* KFImageRenderer.swift in Sources */ = {isa = PBXBuildFile; fileRef = 92477ADA09E2A3DC05DB6B89EEDFB913 /* KFImageRenderer.swift */; }; + 63BCE3414C785046BB317537B8120B5D /* MJRefreshAutoFooter.h in Headers */ = {isa = PBXBuildFile; fileRef = 913FD792342D6E20478B1A3D754EAF95 /* MJRefreshAutoFooter.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 6431218578A566C5EBF5FD166F164059 /* ConstraintMakerExtendable.swift in Sources */ = {isa = PBXBuildFile; fileRef = EE3980766775DB21E234DC0A37D61FB5 /* ConstraintMakerExtendable.swift */; }; 647D16586EBBE25158E3FD684541A1DD /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = B4B8063291033C95A8B2A24FA2AD7A79 /* Foundation.framework */; }; - 6584A733B2610DAFBB1CEF8E90635EC9 /* TimePeriodCollection.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8BD1314D27AF6FB58EF08E869CCB70FE /* TimePeriodCollection.swift */; }; - 65D2E717EEAEBB4658708CD9C8991C93 /* CallbackQueue.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4E913710E854A76597D94659AAC19B6B /* CallbackQueue.swift */; }; - 65EEB9B45B77C5733E6233759FE7BC76 /* Data+Hash.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8E95BBEDB4B2179CF3D0186B4FE6784B /* Data+Hash.swift */; }; - 65F1A046F742E910CE0EE30BE2600DDD /* JXSegmentedDotItemModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6B90D26735E86A9A83A2DCB2FCE42134 /* JXSegmentedDotItemModel.swift */; }; - 661036CF70C0946F0ED7BAF395598868 /* URLSession+ResumeData.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1D71C664DD3E66AD2C967CB2CBE873AE /* URLSession+ResumeData.swift */; }; - 6628BE82C4F27A39F94CBEA02BB498EF /* DateInRegion+Compare.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5AF9BDEE553B59667C33A94E0D34992D /* DateInRegion+Compare.swift */; }; - 6654CDCA10823EA080976DF72D8729B2 /* AVAssetImageDataProvider.swift in Sources */ = {isa = PBXBuildFile; fileRef = 38BE2DF3B6F0DB0C82BDE42F993FA0AA /* AVAssetImageDataProvider.swift */; }; - 6735E4B11C64D20B4E05A92811F5A721 /* IQKeyboardManager+Internal.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0ED9A4576DB28DAC731E05D9B295B722 /* IQKeyboardManager+Internal.swift */; }; - 67942FD70EE19BA957045141036FD49E /* RequestModifier.swift in Sources */ = {isa = PBXBuildFile; fileRef = EE39DA769589701DAC7D7E6365F82406 /* RequestModifier.swift */; }; - 68238227D42B2511FA6A26BF71E92520 /* Alamofire-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = DEEE532DDA9EFC510787A801E661F0FB /* Alamofire-dummy.m */; }; - 68241B77CB3EE81665BBB4275AC19679 /* JXSegmentedListContainerView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 60068E35B65ED0C6B610C9570BC597A9 /* JXSegmentedListContainerView.swift */; }; - 686ABAEBCE5C0EA6644AA80F9B4B3687 /* MJRefreshNormalHeader.h in Headers */ = {isa = PBXBuildFile; fileRef = B9A87F9FE41AFEB6DCC62443F70031C7 /* MJRefreshNormalHeader.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 68995B28EE5B539CEA5A1133E4623927 /* MultipartFormData.swift in Sources */ = {isa = PBXBuildFile; fileRef = CEEF956203C250D6ED823C9BDA708B41 /* MultipartFormData.swift */; }; - 68A74F13F8FEBAA7E0EA9344DED0458B /* OperationQueue+Alamofire.swift in Sources */ = {isa = PBXBuildFile; fileRef = FBF65AB8DCACDEF080398A6B2EC0BBEC /* OperationQueue+Alamofire.swift */; }; - 68DCF4550B3B72228D5D8B4E25A341F2 /* Box.swift in Sources */ = {isa = PBXBuildFile; fileRef = E8AB6861FB56A8A18DF4771C240FF4CD /* Box.swift */; }; - 69261B5D3B53EBF7109D5E1DA3768CAC /* AuthenticationInterceptor.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4D7B2E9D8BAF6E4F291B9C1CA555C991 /* AuthenticationInterceptor.swift */; }; - 6C2A8D78B7E5B02974B212599B28AD77 /* Indicator.swift in Sources */ = {isa = PBXBuildFile; fileRef = 14F4F939E553EA59CBD6A7CCFE434AD3 /* Indicator.swift */; }; - 6C46E55FE1E04F5554E8771580B809A0 /* Pods-relax.offline.mp3.music-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = 11F50E60BCEC8BA9DF3836EAFBABE24A /* Pods-relax.offline.mp3.music-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 6C4BCC8C2D31263360E2697776A9E80D /* JXSegmentedIndicatorBaseView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0312AB47DD6E41FB3B71BEC1C6414D7F /* JXSegmentedIndicatorBaseView.swift */; }; - 6CC7E7C00730B1BF42A28B2E23CA01D6 /* URLSessionConfiguration+Alamofire.swift in Sources */ = {isa = PBXBuildFile; fileRef = 68153D2EA22B93481BFAA617AB95EEEE /* URLSessionConfiguration+Alamofire.swift */; }; - 6D389E4D5F97798BE1AEEB8C317852D7 /* SnapKit-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = BC2C9781FC9F953ABBE8D0069D3562FA /* SnapKit-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 6D4A08865846C0F0DB9A05C617C2A947 /* MJRefreshStateTrailer.h in Headers */ = {isa = PBXBuildFile; fileRef = 4BC1D09BEB4A87CCA47DB2DB8F699307 /* MJRefreshStateTrailer.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 6E23DA3D58E8C10B007C321E13508FEF /* URLConvertible.swift in Sources */ = {isa = PBXBuildFile; fileRef = 11F394350D054B8CFF566BD784D1453A /* URLConvertible.swift */; }; - 6E2884B29CD49EE91C48C725105F295A /* LayoutConstraint.swift in Sources */ = {isa = PBXBuildFile; fileRef = E9C090376B9E3BE95AAF488196F7776C /* LayoutConstraint.swift */; }; - 6E4DEB1A81739DE58C64997251DAA87C /* ISOFormatter.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9E37DE5812B553F480F77912701EA0FC /* ISOFormatter.swift */; }; - 6F271B6EA85E0BDDA7DD1CC621EDC4F9 /* MJRefreshGifHeader.h in Headers */ = {isa = PBXBuildFile; fileRef = 1985F05564401FD34CF08871E1AC0475 /* MJRefreshGifHeader.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 6F2E0DC7D8598283D088A989FDB8E5F6 /* ParameterEncoding.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7C4B5E073DEB2047089813AFB9E30CE6 /* ParameterEncoding.swift */; }; - 7052944C657F270E47777446D0E10E1C /* ConstraintInsetTarget.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0D0CA27E114E88A941900703AA694F2F /* ConstraintInsetTarget.swift */; }; - 70B890CA221D229ABF2346A7245654C5 /* Int+DateComponents.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8B29C561AD6A42AE05E7D4933C413593 /* Int+DateComponents.swift */; }; - 714D5F4F9165ED6BF3CFA9FEA7DB9FF5 /* Placeholder.swift in Sources */ = {isa = PBXBuildFile; fileRef = 72162E132CCC3CFF37F0C06770D2ABB8 /* Placeholder.swift */; }; - 7161A8A89FB1C894F9145BF97D2EE8B1 /* PKStopDownloadButton.h in Headers */ = {isa = PBXBuildFile; fileRef = B7AB5B878CFAEDB0CFA466A32417E423 /* PKStopDownloadButton.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 71655F70079826C7494ABF198F9F563A /* RelativeFormatter+Style.swift in Sources */ = {isa = PBXBuildFile; fileRef = A2B3E2B6010CFF743A48926748C6DD1D /* RelativeFormatter+Style.swift */; }; - 71B32D2CE27370DCC6032569FEE5C8DC /* Date+Math.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3938E9316C816629BB272B90B7FB72BA /* Date+Math.swift */; }; - 72C19C762FADC82517C344E9F47D7E50 /* AlamofireExtended.swift in Sources */ = {isa = PBXBuildFile; fileRef = 352002810B4B49BECC2CE992E2A783FB /* AlamofireExtended.swift */; }; - 72D0CDE3B34D718422CFD4F85ADEFB04 /* RetryStrategy.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4C9961DB51C617F0E3F78E26BA1B8787 /* RetryStrategy.swift */; }; - 735B99CA4190FBE5FE23DA796402D447 /* DateInRegion.swift in Sources */ = {isa = PBXBuildFile; fileRef = EA59BA4AF9EF61DDE3267A666349D9BC /* DateInRegion.swift */; }; - 73F8AC99A58E5837924C056E89543B97 /* Typealiases.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8F4F248B187B62F47D6D2195C41FF84A /* Typealiases.swift */; }; + 6584A733B2610DAFBB1CEF8E90635EC9 /* TimePeriodCollection.swift in Sources */ = {isa = PBXBuildFile; fileRef = F326CD136B8C209A498E147755654AFA /* TimePeriodCollection.swift */; }; + 65D2E717EEAEBB4658708CD9C8991C93 /* CallbackQueue.swift in Sources */ = {isa = PBXBuildFile; fileRef = DE57191B720EDB55AFB0B738ACBE9FA2 /* CallbackQueue.swift */; }; + 65EEB9B45B77C5733E6233759FE7BC76 /* Data+Hash.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9AA7A53084CE6242FC8923CB61D69A11 /* Data+Hash.swift */; }; + 65F1A046F742E910CE0EE30BE2600DDD /* JXSegmentedDotItemModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2035235CBB8446F3D2B5C3DF03DB596F /* JXSegmentedDotItemModel.swift */; }; + 661036CF70C0946F0ED7BAF395598868 /* URLSession+ResumeData.swift in Sources */ = {isa = PBXBuildFile; fileRef = 78162222A9C1E9E834399EBEC817C51A /* URLSession+ResumeData.swift */; }; + 6628BE82C4F27A39F94CBEA02BB498EF /* DateInRegion+Compare.swift in Sources */ = {isa = PBXBuildFile; fileRef = 40E624220D9808FE4E6F704725D45A64 /* DateInRegion+Compare.swift */; }; + 6654CDCA10823EA080976DF72D8729B2 /* AVAssetImageDataProvider.swift in Sources */ = {isa = PBXBuildFile; fileRef = E3999012C65D76E395381CECF9C5701C /* AVAssetImageDataProvider.swift */; }; + 6735E4B11C64D20B4E05A92811F5A721 /* IQKeyboardManager+Internal.swift in Sources */ = {isa = PBXBuildFile; fileRef = D2D7D8612278935E2C4A971B057FF070 /* IQKeyboardManager+Internal.swift */; }; + 67942FD70EE19BA957045141036FD49E /* RequestModifier.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1E0C9D5FFE7B4EBECE637ACE8C31A3E8 /* RequestModifier.swift */; }; + 68238227D42B2511FA6A26BF71E92520 /* Alamofire-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 58763E9810DBE5D64F8BB7A2F0CC8ED8 /* Alamofire-dummy.m */; }; + 68241B77CB3EE81665BBB4275AC19679 /* JXSegmentedListContainerView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4BA391400C88257C2944C66CBCCB7253 /* JXSegmentedListContainerView.swift */; }; + 686ABAEBCE5C0EA6644AA80F9B4B3687 /* MJRefreshNormalHeader.h in Headers */ = {isa = PBXBuildFile; fileRef = E20BAB91FEA315F02B58AF69507DB592 /* MJRefreshNormalHeader.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 68995B28EE5B539CEA5A1133E4623927 /* MultipartFormData.swift in Sources */ = {isa = PBXBuildFile; fileRef = D3C8574545A771D6331BDF26BD545BC1 /* MultipartFormData.swift */; }; + 68A74F13F8FEBAA7E0EA9344DED0458B /* OperationQueue+Alamofire.swift in Sources */ = {isa = PBXBuildFile; fileRef = B2703C2DE8F79F4582B6E3096674C625 /* OperationQueue+Alamofire.swift */; }; + 68DCF4550B3B72228D5D8B4E25A341F2 /* Box.swift in Sources */ = {isa = PBXBuildFile; fileRef = DEA0FFC9C5524694F1BEEB79266364F1 /* Box.swift */; }; + 69261B5D3B53EBF7109D5E1DA3768CAC /* AuthenticationInterceptor.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7A65DD241CD2326B542E0BE7B68D3D65 /* AuthenticationInterceptor.swift */; }; + 6A9418B4C77EFF47E92EEA22C5BF7EC0 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = B4B8063291033C95A8B2A24FA2AD7A79 /* Foundation.framework */; }; + 6C2A8D78B7E5B02974B212599B28AD77 /* Indicator.swift in Sources */ = {isa = PBXBuildFile; fileRef = 51CD975673CF1F07A2A13679560350A0 /* Indicator.swift */; }; + 6C4BCC8C2D31263360E2697776A9E80D /* JXSegmentedIndicatorBaseView.swift in Sources */ = {isa = PBXBuildFile; fileRef = D3658B955BF25B61E3DB76C7549665CF /* JXSegmentedIndicatorBaseView.swift */; }; + 6CC7E7C00730B1BF42A28B2E23CA01D6 /* URLSessionConfiguration+Alamofire.swift in Sources */ = {isa = PBXBuildFile; fileRef = 39662A3DEB2406A1947116C8C84879C4 /* URLSessionConfiguration+Alamofire.swift */; }; + 6D389E4D5F97798BE1AEEB8C317852D7 /* SnapKit-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = 8CAEB2326B3AA2C450941202C12210D4 /* SnapKit-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 6D4A08865846C0F0DB9A05C617C2A947 /* MJRefreshStateTrailer.h in Headers */ = {isa = PBXBuildFile; fileRef = 602EEB89E65E882D26595BFB30A68753 /* MJRefreshStateTrailer.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 6E23DA3D58E8C10B007C321E13508FEF /* URLConvertible.swift in Sources */ = {isa = PBXBuildFile; fileRef = 82411FCD639DFF62A404373043D0A97B /* URLConvertible.swift */; }; + 6E2884B29CD49EE91C48C725105F295A /* LayoutConstraint.swift in Sources */ = {isa = PBXBuildFile; fileRef = 34BF55272606579ED586584FC1416BCE /* LayoutConstraint.swift */; }; + 6E4DEB1A81739DE58C64997251DAA87C /* ISOFormatter.swift in Sources */ = {isa = PBXBuildFile; fileRef = BF98BFA0D0A06425E83174B4F21DCB21 /* ISOFormatter.swift */; }; + 6F271B6EA85E0BDDA7DD1CC621EDC4F9 /* MJRefreshGifHeader.h in Headers */ = {isa = PBXBuildFile; fileRef = 60031D8D6F31B55CA6F941F4E74FE20A /* MJRefreshGifHeader.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 6F2E0DC7D8598283D088A989FDB8E5F6 /* ParameterEncoding.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2116DD2B393A810DC0A155E69BB8F7BB /* ParameterEncoding.swift */; }; + 7052944C657F270E47777446D0E10E1C /* ConstraintInsetTarget.swift in Sources */ = {isa = PBXBuildFile; fileRef = 31FD8F5F9DCF707E18D9317B12D18BBE /* ConstraintInsetTarget.swift */; }; + 70B890CA221D229ABF2346A7245654C5 /* Int+DateComponents.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0534F15E81BC57C85EEEF636D7A15AD /* Int+DateComponents.swift */; }; + 714D5F4F9165ED6BF3CFA9FEA7DB9FF5 /* Placeholder.swift in Sources */ = {isa = PBXBuildFile; fileRef = 651C18F3728516BA04D822B7AF347A1D /* Placeholder.swift */; }; + 7161A8A89FB1C894F9145BF97D2EE8B1 /* PKStopDownloadButton.h in Headers */ = {isa = PBXBuildFile; fileRef = 1DB0A9A327903E1073962BAAED8DA960 /* PKStopDownloadButton.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 71655F70079826C7494ABF198F9F563A /* RelativeFormatter+Style.swift in Sources */ = {isa = PBXBuildFile; fileRef = 34407EBEDB54B802330DFFF56E661207 /* RelativeFormatter+Style.swift */; }; + 71B32D2CE27370DCC6032569FEE5C8DC /* Date+Math.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2A4A8EC54C0D772248106B90417E277C /* Date+Math.swift */; }; + 72C19C762FADC82517C344E9F47D7E50 /* AlamofireExtended.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5C6E47641FE0A4E8F158FBB515918A17 /* AlamofireExtended.swift */; }; + 72D0CDE3B34D718422CFD4F85ADEFB04 /* RetryStrategy.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1980AB08B7A9EEC85770C1233B343099 /* RetryStrategy.swift */; }; + 735B99CA4190FBE5FE23DA796402D447 /* DateInRegion.swift in Sources */ = {isa = PBXBuildFile; fileRef = C5EBB178A1D51C38C6D030242C68E41C /* DateInRegion.swift */; }; + 7367DD455506C92257B75D2B810C2318 /* MarqueeLabel-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = B143CD633633C08DB7AF7A0DBD6F28AC /* MarqueeLabel-dummy.m */; }; + 73F8AC99A58E5837924C056E89543B97 /* Typealiases.swift in Sources */ = {isa = PBXBuildFile; fileRef = BB9A3310F4C2D7FF46E05C5C085EFB8C /* Typealiases.swift */; }; 74145F14ACD710C1D165C5F9B3F0D7ED /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = B4B8063291033C95A8B2A24FA2AD7A79 /* Foundation.framework */; }; - 74BF3CC58474F118E0E3953ADBBD233F /* MJRefreshComponent.m in Sources */ = {isa = PBXBuildFile; fileRef = 64514619DE9886AD750BCCFA911EBCE7 /* MJRefreshComponent.m */; }; + 74BF3CC58474F118E0E3953ADBBD233F /* MJRefreshComponent.m in Sources */ = {isa = PBXBuildFile; fileRef = E3DD611E2B6825B2332BD02231705E84 /* MJRefreshComponent.m */; }; 74DBD7BAE1B62FA323770957159589E1 /* Accelerate.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AA39C6D2448DC5A9AD18DDA3C96A1A0F /* Accelerate.framework */; }; - 77A016AB014A21D60BBFAB9F7134D38B /* MJRefreshTrailer.h in Headers */ = {isa = PBXBuildFile; fileRef = 9F280E6832B7DEB6EE4B0A57BFF44C5E /* MJRefreshTrailer.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 77D782DE125D322922466676E2FFA289 /* ConstraintPriorityTarget.swift in Sources */ = {isa = PBXBuildFile; fileRef = E43B8D2F0F02E513E51444C8074E7E76 /* ConstraintPriorityTarget.swift */; }; - 78CA17524C270C0E381677E3D4C77B6B /* ImageDownloaderDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = A8D8CA8FE715EF134ED3F7DAF0DBCE8C /* ImageDownloaderDelegate.swift */; }; - 78D414CF02F5ED61DAB995221C459C22 /* JXSegmentedIndicatorDoubleLineView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9AC6B934AA664659F00A855BE3C69DDD /* JXSegmentedIndicatorDoubleLineView.swift */; }; - 794FC38D15336AB502B73B012005E9BD /* Validation.swift in Sources */ = {isa = PBXBuildFile; fileRef = 22F9853435E731084D0A51B315E04D8F /* Validation.swift */; }; - 795681285B4E2B121B5CD420131168F8 /* MultipartUpload.swift in Sources */ = {isa = PBXBuildFile; fileRef = DBE043EDFC8970172839768C24C85385 /* MultipartUpload.swift */; }; + 77A016AB014A21D60BBFAB9F7134D38B /* MJRefreshTrailer.h in Headers */ = {isa = PBXBuildFile; fileRef = 3C1E12FF093098A22E423F0E1E49DDA6 /* MJRefreshTrailer.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 77D782DE125D322922466676E2FFA289 /* ConstraintPriorityTarget.swift in Sources */ = {isa = PBXBuildFile; fileRef = FE70BEDA021F24905556038DC9C6EF72 /* ConstraintPriorityTarget.swift */; }; + 78CA17524C270C0E381677E3D4C77B6B /* ImageDownloaderDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9F1DD919E6FEB406815EA8275F490877 /* ImageDownloaderDelegate.swift */; }; + 78D414CF02F5ED61DAB995221C459C22 /* JXSegmentedIndicatorDoubleLineView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1E3D9A705DD4B8E1CB63DF9084EAC9FF /* JXSegmentedIndicatorDoubleLineView.swift */; }; + 794FC38D15336AB502B73B012005E9BD /* Validation.swift in Sources */ = {isa = PBXBuildFile; fileRef = 910F21CD3337049AB8881F165BD19AE9 /* Validation.swift */; }; + 795681285B4E2B121B5CD420131168F8 /* MultipartUpload.swift in Sources */ = {isa = PBXBuildFile; fileRef = 63A5658CA7BE9C8CB17CFA56505F5F3F /* MultipartUpload.swift */; }; 79E4EC8E7FF2E4B1B389722EB2BEC3D0 /* DownloadButton-DownloadButton in Resources */ = {isa = PBXBuildFile; fileRef = A6A74933CD02E6DBD2AFCF807116B6CB /* DownloadButton-DownloadButton */; }; - 7A19CD0F168E8C66757012114767A36B /* UIScrollView+MJExtension.h in Headers */ = {isa = PBXBuildFile; fileRef = D0C1779749FF7AF4D31E5FBFE6A84FC3 /* UIScrollView+MJExtension.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 7AD0E5A1A45CE95B2C7A8078B2F19073 /* TimeInterval+Formatter.swift in Sources */ = {isa = PBXBuildFile; fileRef = 214FAB9C40ED9237DD5FF6D0388B6D81 /* TimeInterval+Formatter.swift */; }; - 7AE2E0B382A14D58BE7DAA0C852DCD02 /* ServerTrustEvaluation.swift in Sources */ = {isa = PBXBuildFile; fileRef = EFC1DD0B0E10AC895C05A433F86AFDD3 /* ServerTrustEvaluation.swift */; }; - 7BC03DCFF31FDA534EB7B100209D1718 /* Calendars.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1FF2ECC0F78DECBDD03D5BC8674B5D91 /* Calendars.swift */; }; - 7C505E7C30A2E0FA68171866E82652AB /* SessionManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = EAF0C272F96942F166840ED423442D5B /* SessionManager.swift */; }; - 7CC5E76223E1EB7B09FBC03EA07E3DB3 /* JXSegmentedIndicatorBackgroundView.swift in Sources */ = {isa = PBXBuildFile; fileRef = CEFEECFBF08685D5B7EFA9372FB2EB7E /* JXSegmentedIndicatorBackgroundView.swift */; }; - 7D952C22D46295112F3FF0406FEE1F12 /* PKDownloadButton.h in Headers */ = {isa = PBXBuildFile; fileRef = E56690077DFEE647C01B79BE97B5C6EC /* PKDownloadButton.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 7E59ABF8A1AC8F61FEFB9B8C72EFB9E5 /* IQKeyboardManager+Position.swift in Sources */ = {isa = PBXBuildFile; fileRef = 51985907D190CC0C4BE05775C68447FE /* IQKeyboardManager+Position.swift */; }; + 7A19CD0F168E8C66757012114767A36B /* UIScrollView+MJExtension.h in Headers */ = {isa = PBXBuildFile; fileRef = 160D754EC35823FF85A34B79E72C40F1 /* UIScrollView+MJExtension.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 7AD0E5A1A45CE95B2C7A8078B2F19073 /* TimeInterval+Formatter.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0ED55223068A73568B36FF08EFCF9EAF /* TimeInterval+Formatter.swift */; }; + 7AE2E0B382A14D58BE7DAA0C852DCD02 /* ServerTrustEvaluation.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1CDC49949B6AE24CE48C5C0261DA3A8B /* ServerTrustEvaluation.swift */; }; + 7BC03DCFF31FDA534EB7B100209D1718 /* Calendars.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3FAC5A61EF918CD2923F2347A8289EAF /* Calendars.swift */; }; + 7C505E7C30A2E0FA68171866E82652AB /* SessionManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = AA063E0C0841D9CBEAFF14BEAD5D3CE8 /* SessionManager.swift */; }; + 7CC5E76223E1EB7B09FBC03EA07E3DB3 /* JXSegmentedIndicatorBackgroundView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 90868F52B19BF2E08A1B70DCFF656B5C /* JXSegmentedIndicatorBackgroundView.swift */; }; + 7D952C22D46295112F3FF0406FEE1F12 /* PKDownloadButton.h in Headers */ = {isa = PBXBuildFile; fileRef = 96B3849B994F57B8B26611E06131CB08 /* PKDownloadButton.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 7E59ABF8A1AC8F61FEFB9B8C72EFB9E5 /* IQKeyboardManager+Position.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9D871BE2C3416A74C644B64DBF2B5DC6 /* IQKeyboardManager+Position.swift */; }; 7E7F1EE3B8C0BB721181929B686FEC17 /* Kingfisher-Kingfisher in Resources */ = {isa = PBXBuildFile; fileRef = C298ABB78D9B05529B89D8322DB2E7B0 /* Kingfisher-Kingfisher */; }; - 7F60A80731DCB0EB26C7D01DCCA932E4 /* ISOParser.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1211C094C5D9D37494ED83147A1E37FD /* ISOParser.swift */; }; - 80244605FFB26BF165B3C6E3CFA83A3C /* JXSegmentedTitleImageItemModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8B4EA0727D3AEE0C524457934CACC723 /* JXSegmentedTitleImageItemModel.swift */; }; - 8072251E5FFDC1AB89E7558218C41D24 /* KingfisherError.swift in Sources */ = {isa = PBXBuildFile; fileRef = FA3FC481B34EFB18912B61858F7C31E8 /* KingfisherError.swift */; }; - 81245F505360D8598E4A6C7D67E09F21 /* Double+TaskInfo.swift in Sources */ = {isa = PBXBuildFile; fileRef = 08BBB8B38E7B8EFDCD9CF588E8C0F210 /* Double+TaskInfo.swift */; }; - 81DAB282980A3BB8EB7796B61934E4F4 /* KFImageOptions.swift in Sources */ = {isa = PBXBuildFile; fileRef = F8EAF386B6BC1994FF7856ACC69F5A5E /* KFImageOptions.swift */; }; - 82FE3B046FEA46F2BDFE7FB0E9D7CBAD /* SVProgressHUD-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = 27E637850C77BC6A026E851E20E42D8D /* SVProgressHUD-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 830535E48AA507D7C15359F2A5B72DD1 /* ImageProgressive.swift in Sources */ = {isa = PBXBuildFile; fileRef = C0584F1E05D493C986B42E3E281DA2E0 /* ImageProgressive.swift */; }; - 83DBC0F86AD7C6EFB6947E0F3616467E /* JXPagingListContainerView.swift in Sources */ = {isa = PBXBuildFile; fileRef = E8F12D3D56AB60DF1EBA2C097D344C57 /* JXPagingListContainerView.swift */; }; - 8423D60239269F191A47A3E2D82E1EF7 /* ImageTransition.swift in Sources */ = {isa = PBXBuildFile; fileRef = 27D1E42712A93EE01B8A91DCEC710EAC /* ImageTransition.swift */; }; + 7F60A80731DCB0EB26C7D01DCCA932E4 /* ISOParser.swift in Sources */ = {isa = PBXBuildFile; fileRef = AC40E3618D748C02FC87EABC6B1128F5 /* ISOParser.swift */; }; + 802108EDDE4D0E42D9A2411E75B9EB43 /* PrivacyInfo.xcprivacy in Resources */ = {isa = PBXBuildFile; fileRef = 489901D1795E72219A5650D4806CFBA6 /* PrivacyInfo.xcprivacy */; }; + 80244605FFB26BF165B3C6E3CFA83A3C /* JXSegmentedTitleImageItemModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = B54BA2B28F4FA97B93861310BDA561C4 /* JXSegmentedTitleImageItemModel.swift */; }; + 8072251E5FFDC1AB89E7558218C41D24 /* KingfisherError.swift in Sources */ = {isa = PBXBuildFile; fileRef = B083BDB134F183783F9CA8EE5D001949 /* KingfisherError.swift */; }; + 81245F505360D8598E4A6C7D67E09F21 /* Double+TaskInfo.swift in Sources */ = {isa = PBXBuildFile; fileRef = B004488D8C4C6AC1F196AE21E80BF4AC /* Double+TaskInfo.swift */; }; + 81DAB282980A3BB8EB7796B61934E4F4 /* KFImageOptions.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4DD5A923B5AC516949CE302FF67EBB14 /* KFImageOptions.swift */; }; + 82FE3B046FEA46F2BDFE7FB0E9D7CBAD /* SVProgressHUD-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = 332F6C90B7478F0ADA35CCB36F18E139 /* SVProgressHUD-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 830535E48AA507D7C15359F2A5B72DD1 /* ImageProgressive.swift in Sources */ = {isa = PBXBuildFile; fileRef = 39CEAE4CB2B89F74AF94DC40A7FCE403 /* ImageProgressive.swift */; }; + 83DBC0F86AD7C6EFB6947E0F3616467E /* JXPagingListContainerView.swift in Sources */ = {isa = PBXBuildFile; fileRef = DE2C9A9D0E0B4D749B32C1E00BF7D8A7 /* JXPagingListContainerView.swift */; }; + 8423D60239269F191A47A3E2D82E1EF7 /* ImageTransition.swift in Sources */ = {isa = PBXBuildFile; fileRef = F7DC336FCAEF4579E435D1CA1EAAFA09 /* ImageTransition.swift */; }; 84BEB9E439780B1E0DEF56459E3D3352 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = B4B8063291033C95A8B2A24FA2AD7A79 /* Foundation.framework */; }; - 8640829049AE9907FE93825E5510C33D /* ConstraintMaker.swift in Sources */ = {isa = PBXBuildFile; fileRef = A6917BE14409B42BCCE066BCF77930BF /* ConstraintMaker.swift */; }; - 868D4A456CBC3255A772F7FEA2F63BE0 /* JXSegmentedIndicatorParams.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6F14F2F23423A5BF0447B6AE3B6922AC /* JXSegmentedIndicatorParams.swift */; }; - 8775BC8B188C38085646E9580CE231BA /* Kingfisher-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = 8244D5BC1AC6EF3B749557D38982A3C5 /* Kingfisher-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 87996D11DC92EE19EAF9305DAEA4ACF2 /* ConstraintMakerPrioritizable.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8C4F10D8D02E31CD4C8F1B2C4620F9D5 /* ConstraintMakerPrioritizable.swift */; }; - 8868BA37E3CE7C58D26123806D543F3F /* ConstraintView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 046C6E5A5FF35C350B0158DEE3E40F28 /* ConstraintView.swift */; }; - 887DB52C63E52FBD3B88F42DD8CFB421 /* RequestCompression.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0098DF8EC116CB747F0A250EEFE46277 /* RequestCompression.swift */; }; - 891D1BF14C8881C74262EE9DBE5D67A9 /* UILayoutSupport+Extensions.swift in Sources */ = {isa = PBXBuildFile; fileRef = D15AA7FA496EAF28310E430A7599DC48 /* UILayoutSupport+Extensions.swift */; }; - 8A52ECA8A45C0574AB3305F39FB8CF81 /* DownloadButton-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = C84028ADE6846E4323ACB15E19ADC090 /* DownloadButton-dummy.m */; }; - 8BF0E8E1AAA254D9B4D68BBADCF8DBEF /* PrivacyInfo.xcprivacy in Resources */ = {isa = PBXBuildFile; fileRef = 9792F44AE5548DB0513F46CD47F1DE21 /* PrivacyInfo.xcprivacy */; }; - 8C077A05101B84731A302657381218CB /* MJRefreshStateHeader.h in Headers */ = {isa = PBXBuildFile; fileRef = DD79995B4A87E64E10BA3380D6198319 /* MJRefreshStateHeader.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 8CEABAE06B171EA941EB497A2F4A6917 /* Runtime.swift in Sources */ = {isa = PBXBuildFile; fileRef = 123ABCB9EF5852B06D5E32C8D4EB9E6C /* Runtime.swift */; }; - 8D18198290C6F15504358DD49F0C505F /* JXSegmentedTitleOrImageCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 55FA1C2CFB36531B3B94D009E0268FD4 /* JXSegmentedTitleOrImageCell.swift */; }; - 8DD0EA5259D87AA915FC266D43CD08D6 /* JXSegmentedView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 89A8E01E18FF856511D6A38ABDCBC452 /* JXSegmentedView.swift */; }; - 8DD46EE7FB9503E7634E929DDE1CBA31 /* Notifications.swift in Sources */ = {isa = PBXBuildFile; fileRef = 37AFBA38FAEEF7CC14CCC5E242D313BD /* Notifications.swift */; }; - 90441CBC43993A5E4E0F5CD5BECC2DDE /* MJRefreshBackNormalFooter.h in Headers */ = {isa = PBXBuildFile; fileRef = FD193447A97E88D72DA312FFA750B7E3 /* MJRefreshBackNormalFooter.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 906EF891E58A035281766993F82373E3 /* ConstraintItem.swift in Sources */ = {isa = PBXBuildFile; fileRef = 83210E479C7F1A42FC7C116732E885E9 /* ConstraintItem.swift */; }; - 90D847B19214926EDE5210D44A08F3C7 /* RequestTaskMap.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2DB07D33D8DA41364ED7B1B6284C443B /* RequestTaskMap.swift */; }; - 9136355471B1C08A16DA36B0A2E536B8 /* NSButton+Kingfisher.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9E68924120FED7DCF99A872FFA9F54DC /* NSButton+Kingfisher.swift */; }; - 9189CD495B78CBC65B25DED32A881426 /* KFOptionsSetter.swift in Sources */ = {isa = PBXBuildFile; fileRef = 46BF1D9126491B49203F61335AAD8237 /* KFOptionsSetter.swift */; }; - 92138A77DFEB4F76FCB582E97633896D /* URLRequest+Alamofire.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7479C6B0500EB95DE80EFD7058AA33D0 /* URLRequest+Alamofire.swift */; }; - 9255A2BCECEB0006DAAF985CA00E2D15 /* JXSegmentedTitleGradientItemModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = FEE6C0A96EB48E43A87D0152AACB9E67 /* JXSegmentedTitleGradientItemModel.swift */; }; - 92A81311D8592CB3D907E9DA59023E38 /* PrivacyInfo.xcprivacy in Resources */ = {isa = PBXBuildFile; fileRef = EC8AAD29842FD172A4B17E76ADF753A7 /* PrivacyInfo.xcprivacy */; }; - 930B495B7A3197730A016E2339A4CBA7 /* IQKeyboardManagerSwift-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 63CBF16244C36F10F225DE1BA7038647 /* IQKeyboardManagerSwift-dummy.m */; }; - 932470342D7352EEC18C00E52B37A5AE /* DotNetParserFormatter.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3C69FC3F3390BF347851D0534F9D932C /* DotNetParserFormatter.swift */; }; - 9335612DA775B6D7696C46A692DF7335 /* PKDownloadButton.m in Sources */ = {isa = PBXBuildFile; fileRef = ADA5CDD301DBE830624CF36B02780913 /* PKDownloadButton.m */; }; - 9378157945D7B405C862A05B0D6B971B /* Result+Alamofire.swift in Sources */ = {isa = PBXBuildFile; fileRef = BAC35232D14B3BFBE9C56633C116BB4D /* Result+Alamofire.swift */; }; - 938CFF5F6DE6E7E8CE94373E51F3E07A /* ConstraintLayoutGuide+Extensions.swift in Sources */ = {isa = PBXBuildFile; fileRef = 75A0D7839E9B360DAC8B2436DDA7E806 /* ConstraintLayoutGuide+Extensions.swift */; }; - 94E00674FACB3ED40684E8DAA40BCC84 /* KF.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0EC01ABC8BE7809772538339A7D8A17 /* KF.swift */; }; - 950B809760A8CE4375DCE1016FB9859F /* ConstraintMakerRelatable.swift in Sources */ = {isa = PBXBuildFile; fileRef = 73F56BAFBEB1659C76C3C867A42E0DB7 /* ConstraintMakerRelatable.swift */; }; - 9779D52AD8CDA703D6EEE1C6D38E019F /* ConstraintAttributes.swift in Sources */ = {isa = PBXBuildFile; fileRef = 22A5D84D88971E9475E1EC8AA9036D9D /* ConstraintAttributes.swift */; }; - 97D7D91FC818805D8344C373CC098C32 /* SessionDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3979C23227D173F64FC1CBA303A1D512 /* SessionDelegate.swift */; }; + 8640829049AE9907FE93825E5510C33D /* ConstraintMaker.swift in Sources */ = {isa = PBXBuildFile; fileRef = D93B88986A70049740732E9BDA2D984D /* ConstraintMaker.swift */; }; + 868D4A456CBC3255A772F7FEA2F63BE0 /* JXSegmentedIndicatorParams.swift in Sources */ = {isa = PBXBuildFile; fileRef = F2B2DB1CB4157320AB7B46D983F577B3 /* JXSegmentedIndicatorParams.swift */; }; + 8775BC8B188C38085646E9580CE231BA /* Kingfisher-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = E96DA98FB5788A040DD2ED9B93E36E78 /* Kingfisher-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 87996D11DC92EE19EAF9305DAEA4ACF2 /* ConstraintMakerPrioritizable.swift in Sources */ = {isa = PBXBuildFile; fileRef = DF7749CC04C556874BBE546166F36A46 /* ConstraintMakerPrioritizable.swift */; }; + 8868BA37E3CE7C58D26123806D543F3F /* ConstraintView.swift in Sources */ = {isa = PBXBuildFile; fileRef = C7280B062A7EAD9FFA0FEC16E1936C6E /* ConstraintView.swift */; }; + 887DB52C63E52FBD3B88F42DD8CFB421 /* RequestCompression.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0F8AF943C90C2F212A2E7474570424EE /* RequestCompression.swift */; }; + 891D1BF14C8881C74262EE9DBE5D67A9 /* UILayoutSupport+Extensions.swift in Sources */ = {isa = PBXBuildFile; fileRef = C4E948AF2BE57221FF0FCEF5775EBBEF /* UILayoutSupport+Extensions.swift */; }; + 8A52ECA8A45C0574AB3305F39FB8CF81 /* DownloadButton-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = C1A54DC86334B340EDFF3A979BBD5779 /* DownloadButton-dummy.m */; }; + 8C077A05101B84731A302657381218CB /* MJRefreshStateHeader.h in Headers */ = {isa = PBXBuildFile; fileRef = C56F2770F14FFB52F18B08F7BC6A7C4C /* MJRefreshStateHeader.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 8CEABAE06B171EA941EB497A2F4A6917 /* Runtime.swift in Sources */ = {isa = PBXBuildFile; fileRef = 187C3048087F7F1D41E679EFC368D94B /* Runtime.swift */; }; + 8D18198290C6F15504358DD49F0C505F /* JXSegmentedTitleOrImageCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0DA082E3A75E13CD0C8795CB3957F572 /* JXSegmentedTitleOrImageCell.swift */; }; + 8DD0EA5259D87AA915FC266D43CD08D6 /* JXSegmentedView.swift in Sources */ = {isa = PBXBuildFile; fileRef = F6F26EC43199BA3CE04A9C318AACB128 /* JXSegmentedView.swift */; }; + 8DD46EE7FB9503E7634E929DDE1CBA31 /* Notifications.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0085AF2C56752715FC005A6762AE8307 /* Notifications.swift */; }; + 90441CBC43993A5E4E0F5CD5BECC2DDE /* MJRefreshBackNormalFooter.h in Headers */ = {isa = PBXBuildFile; fileRef = D006F0064B1980AC5E693A4C09DA3F4D /* MJRefreshBackNormalFooter.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 906EF891E58A035281766993F82373E3 /* ConstraintItem.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9BB1B70D50E125F5116226218AD83F85 /* ConstraintItem.swift */; }; + 90D847B19214926EDE5210D44A08F3C7 /* RequestTaskMap.swift in Sources */ = {isa = PBXBuildFile; fileRef = 203DBA9560500D53E8DDCED4335E7CFE /* RequestTaskMap.swift */; }; + 9136355471B1C08A16DA36B0A2E536B8 /* NSButton+Kingfisher.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0175C3BDDE4AF2390BE74E4410720475 /* NSButton+Kingfisher.swift */; }; + 9189CD495B78CBC65B25DED32A881426 /* KFOptionsSetter.swift in Sources */ = {isa = PBXBuildFile; fileRef = D6376967BC13A929AB938E8FDFE0093B /* KFOptionsSetter.swift */; }; + 92138A77DFEB4F76FCB582E97633896D /* URLRequest+Alamofire.swift in Sources */ = {isa = PBXBuildFile; fileRef = E5D2335C862D6E9C8606261324B9FD98 /* URLRequest+Alamofire.swift */; }; + 9255A2BCECEB0006DAAF985CA00E2D15 /* JXSegmentedTitleGradientItemModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = ED2440BB8CE79C3D96A62D6671311E7B /* JXSegmentedTitleGradientItemModel.swift */; }; + 92A81311D8592CB3D907E9DA59023E38 /* PrivacyInfo.xcprivacy in Resources */ = {isa = PBXBuildFile; fileRef = BFD7D664E057D7E5D8262EA574E4238E /* PrivacyInfo.xcprivacy */; }; + 930B495B7A3197730A016E2339A4CBA7 /* IQKeyboardManagerSwift-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 1F06F0BFC065D8251E7724344E40E245 /* IQKeyboardManagerSwift-dummy.m */; }; + 932470342D7352EEC18C00E52B37A5AE /* DotNetParserFormatter.swift in Sources */ = {isa = PBXBuildFile; fileRef = FFB2C31AAAD3CD21FEFE7182CC04951F /* DotNetParserFormatter.swift */; }; + 9335612DA775B6D7696C46A692DF7335 /* PKDownloadButton.m in Sources */ = {isa = PBXBuildFile; fileRef = 1F365A87A2F56AA21E9F9300604BF5AC /* PKDownloadButton.m */; }; + 9378157945D7B405C862A05B0D6B971B /* Result+Alamofire.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4CDF31659C5CFC027B5F60F47F8B324B /* Result+Alamofire.swift */; }; + 938CFF5F6DE6E7E8CE94373E51F3E07A /* ConstraintLayoutGuide+Extensions.swift in Sources */ = {isa = PBXBuildFile; fileRef = AB883732E46A5484BBD2DBC929A9BDE2 /* ConstraintLayoutGuide+Extensions.swift */; }; + 94E00674FACB3ED40684E8DAA40BCC84 /* KF.swift in Sources */ = {isa = PBXBuildFile; fileRef = ED9E039902D3928D76325A9F22981AD4 /* KF.swift */; }; + 950B809760A8CE4375DCE1016FB9859F /* ConstraintMakerRelatable.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9DD63E7F57872EECA1B11850AC15C93E /* ConstraintMakerRelatable.swift */; }; + 9779D52AD8CDA703D6EEE1C6D38E019F /* ConstraintAttributes.swift in Sources */ = {isa = PBXBuildFile; fileRef = C6C4B2FB359BAF9C49695E7D50FFC4D2 /* ConstraintAttributes.swift */; }; + 97D7D91FC818805D8344C373CC098C32 /* SessionDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1576C1A75CD83CC0126786D2F38A300E /* SessionDelegate.swift */; }; 97EA46DA072EC4FD4D831606095B92C1 /* UIKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1199E580C5F19AFD1010FE20258DADBD /* UIKit.framework */; }; 98455F4176C861F9E33D36892A932684 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = B4B8063291033C95A8B2A24FA2AD7A79 /* Foundation.framework */; }; - 98AEAA041DE971906C7EEBC1182A4470 /* UIButton+PKDownloadButton.h in Headers */ = {isa = PBXBuildFile; fileRef = DB13ACA4C41663A234C2E3FF898FBCC9 /* UIButton+PKDownloadButton.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 99F2413E51A57A17AF0B52EE43D448D3 /* Resource.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6BDFFD6764814A9B06BAC507955B8CE7 /* Resource.swift */; }; - 99FB2910921988A9BCC5533A1EA70E59 /* Region.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8B9D360CDBAD5D8DA6901ADB37463388 /* Region.swift */; }; - 9A07F0B734748735A80119550AC32104 /* SVIndefiniteAnimatedView.m in Sources */ = {isa = PBXBuildFile; fileRef = FC76F03E2E143529554E5CD2B9172452 /* SVIndefiniteAnimatedView.m */; }; - 9AF14E4B1C52E5AD4C38021C4EC17974 /* UIScrollView+MJRefresh.h in Headers */ = {isa = PBXBuildFile; fileRef = C481FA53A11A89DFFE144CC2281C24EF /* UIScrollView+MJRefresh.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 9AF53260DACD3DE030C97AA110DAD22E /* MJRefreshComponent.h in Headers */ = {isa = PBXBuildFile; fileRef = 5792E5F49EE8878288039DD00DDC2023 /* MJRefreshComponent.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 9B93846DEFDF34EC2E881F65938B3F17 /* JXSegmentedTitleOrImageItemModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 204288E27AE87499D959FE982CA4A588 /* JXSegmentedTitleOrImageItemModel.swift */; }; - 9C2584A9CCF8CA6C9DF2AD79DB831E70 /* IQKeyboardManager+UIKeyboardNotification.swift in Sources */ = {isa = PBXBuildFile; fileRef = EF84581B386F0C2CCC6C90D635B943B3 /* IQKeyboardManager+UIKeyboardNotification.swift */; }; - 9C292E2C761CB97ACD00F95FA4D60E85 /* IQKeyboardManager+OrientationNotification.swift in Sources */ = {isa = PBXBuildFile; fileRef = EC4AE7F3244DF9F0CEC3FD87684C7ED5 /* IQKeyboardManager+OrientationNotification.swift */; }; - 9C7D314BE45AB79E96B260656C36BAEC /* RedirectHandler.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7942B81EEA6AECA2482B4930A88C2F74 /* RedirectHandler.swift */; }; - 9D8BED7F3F86BB39E7C0923D92E73F8B /* Combine.swift in Sources */ = {isa = PBXBuildFile; fileRef = 95976A54E15E258957362E209ED32279 /* Combine.swift */; }; - 9DE54A6FA3EA23631ADD6DEC4D190EC9 /* String+Hash.swift in Sources */ = {isa = PBXBuildFile; fileRef = 898C0D155683823269D327A674162353 /* String+Hash.swift */; }; - 9E4E278A3C1543798E1912699886023E /* IQKeyboardManager+UITextFieldViewNotification.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9C35F2387E5B65A2A9E492997862418F /* IQKeyboardManager+UITextFieldViewNotification.swift */; }; - 9F15AD066C4130E1C6E3ADA35EC8264E /* NSLayoutConstraint+PKDownloadButton.m in Sources */ = {isa = PBXBuildFile; fileRef = 54338C42DA7239A1FA97E43C3AFF5455 /* NSLayoutConstraint+PKDownloadButton.m */; }; - 9F6257E692DB9F9130A3618CCCC5FA70 /* PKCircleProgressView.m in Sources */ = {isa = PBXBuildFile; fileRef = 8A5415EF1FD45FF941A7307C0161A9CF /* PKCircleProgressView.m */; }; - 9F8F5BCE4DAD6C16F3A8AA2A2F783D01 /* FormatIndicatedCacheSerializer.swift in Sources */ = {isa = PBXBuildFile; fileRef = CC1D505E6DC2A1CF3359546A71AE8A0E /* FormatIndicatedCacheSerializer.swift */; }; - A0371DF7D93D9B86BD50474D4B9294FD /* ConstraintInsets.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5EDFEDB333D1C4D657642BDD0CBBD837 /* ConstraintInsets.swift */; }; - A051999781E1280746F7743BDEEA6C49 /* ConstraintDescription.swift in Sources */ = {isa = PBXBuildFile; fileRef = 77F4148514C92AEF48B7ACD34E7488EB /* ConstraintDescription.swift */; }; - A1506893FF52AA466B130E8B05FBE868 /* NetworkReachabilityManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 84E67E72BA64A8C64C789594ABFF25B4 /* NetworkReachabilityManager.swift */; }; - A1A93726CD533C8ACD4755250E46E48D /* Delegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8885E02AC5ED5CCD9A4BA63AC631EE3B /* Delegate.swift */; }; - A22A2ACF53FDC243AAAFB009005A710F /* Concurrency.swift in Sources */ = {isa = PBXBuildFile; fileRef = B92C64DC7D87ACAD9C31FE09D0D6DB09 /* Concurrency.swift */; }; - A35877DE0C3D6B4CF2A10E666EF5F490 /* LayoutConstraintItem.swift in Sources */ = {isa = PBXBuildFile; fileRef = D85413A6EC0866E9242FCEA1AF84C593 /* LayoutConstraintItem.swift */; }; - A393340CB069126B0A3D781C174E6E49 /* JXSegmentedNumberItemModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 67FA5F041BEEE97146209378825B5C6C /* JXSegmentedNumberItemModel.swift */; }; - A3FD52DF5584364FFD56965394C36CF2 /* URLConvertible+URLRequestConvertible.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3F40E10D55EC1044BB7FD2CD777678D4 /* URLConvertible+URLRequestConvertible.swift */; }; - A50A72FCD270217D99ECA1D2700CFAD4 /* PrivacyInfo.xcprivacy in Resources */ = {isa = PBXBuildFile; fileRef = F4FC25EC1C00814464CC040EF1ED112E /* PrivacyInfo.xcprivacy */; }; - A70C6EBC13661A0FC4023236B350AEA1 /* AuthenticationChallengeResponsable.swift in Sources */ = {isa = PBXBuildFile; fileRef = 219212DECF63C705E7EF8E6D103F7190 /* AuthenticationChallengeResponsable.swift */; }; - A7AE58053194FA1CEA420D995AF17B85 /* MJRefreshAutoStateFooter.h in Headers */ = {isa = PBXBuildFile; fileRef = 49D847B127554DD4DB9891C33CA6CCF8 /* MJRefreshAutoStateFooter.h */; settings = {ATTRIBUTES = (Public, ); }; }; - A86A28FC358F0AFE453C2EBD1D035751 /* JXSegmentedTitleGradientDataSource.swift in Sources */ = {isa = PBXBuildFile; fileRef = DCEE92F3B1D5446A37F76652177283D2 /* JXSegmentedTitleGradientDataSource.swift */; }; + 98AEAA041DE971906C7EEBC1182A4470 /* UIButton+PKDownloadButton.h in Headers */ = {isa = PBXBuildFile; fileRef = 0D4E696F75CA79EF5DB1493DBFBD4E73 /* UIButton+PKDownloadButton.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 99F2413E51A57A17AF0B52EE43D448D3 /* Resource.swift in Sources */ = {isa = PBXBuildFile; fileRef = A54156DD4825B5F1C49FFDE72E5CA3D2 /* Resource.swift */; }; + 99FB2910921988A9BCC5533A1EA70E59 /* Region.swift in Sources */ = {isa = PBXBuildFile; fileRef = E76218A6A0AC4A58A10DAA88E00C21FE /* Region.swift */; }; + 9A07F0B734748735A80119550AC32104 /* SVIndefiniteAnimatedView.m in Sources */ = {isa = PBXBuildFile; fileRef = CDB23F11BFD150D06EB1E55D63A5809E /* SVIndefiniteAnimatedView.m */; }; + 9AF14E4B1C52E5AD4C38021C4EC17974 /* UIScrollView+MJRefresh.h in Headers */ = {isa = PBXBuildFile; fileRef = 499F69400989C98B94A8F8B97F588969 /* UIScrollView+MJRefresh.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 9AF53260DACD3DE030C97AA110DAD22E /* MJRefreshComponent.h in Headers */ = {isa = PBXBuildFile; fileRef = 89F35204C15E154529FCD3A47194B781 /* MJRefreshComponent.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 9B93846DEFDF34EC2E881F65938B3F17 /* JXSegmentedTitleOrImageItemModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 602AADF40849A45983953E264A9BC93F /* JXSegmentedTitleOrImageItemModel.swift */; }; + 9C2584A9CCF8CA6C9DF2AD79DB831E70 /* IQKeyboardManager+UIKeyboardNotification.swift in Sources */ = {isa = PBXBuildFile; fileRef = 15312F9E030D2895F28379E5E7AC2F61 /* IQKeyboardManager+UIKeyboardNotification.swift */; }; + 9C292E2C761CB97ACD00F95FA4D60E85 /* IQKeyboardManager+OrientationNotification.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1676881842A119CAFB75D031A09B9F8A /* IQKeyboardManager+OrientationNotification.swift */; }; + 9C7D314BE45AB79E96B260656C36BAEC /* RedirectHandler.swift in Sources */ = {isa = PBXBuildFile; fileRef = DBE3E5C271FCF47C09129826CD1607D5 /* RedirectHandler.swift */; }; + 9D8BED7F3F86BB39E7C0923D92E73F8B /* Combine.swift in Sources */ = {isa = PBXBuildFile; fileRef = 578211F81ABFCC933FC2FCAD98E8D47E /* Combine.swift */; }; + 9DACAF384DD9C46FB76E2D3DF5D41084 /* UIKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1199E580C5F19AFD1010FE20258DADBD /* UIKit.framework */; }; + 9DE54A6FA3EA23631ADD6DEC4D190EC9 /* String+Hash.swift in Sources */ = {isa = PBXBuildFile; fileRef = 01CFEA1169540CE8BA1331ACE15B00A8 /* String+Hash.swift */; }; + 9E4E278A3C1543798E1912699886023E /* IQKeyboardManager+UITextFieldViewNotification.swift in Sources */ = {isa = PBXBuildFile; fileRef = A96639B1598DB44935B4470271613AFB /* IQKeyboardManager+UITextFieldViewNotification.swift */; }; + 9F15AD066C4130E1C6E3ADA35EC8264E /* NSLayoutConstraint+PKDownloadButton.m in Sources */ = {isa = PBXBuildFile; fileRef = 72B7DE9C38B4CCAA35EC94EC02E6D329 /* NSLayoutConstraint+PKDownloadButton.m */; }; + 9F6257E692DB9F9130A3618CCCC5FA70 /* PKCircleProgressView.m in Sources */ = {isa = PBXBuildFile; fileRef = 5188492DCEB003519D4B536CDD1F7B5A /* PKCircleProgressView.m */; }; + 9F8F5BCE4DAD6C16F3A8AA2A2F783D01 /* FormatIndicatedCacheSerializer.swift in Sources */ = {isa = PBXBuildFile; fileRef = B0524D8BA55EB77A9786839D001228E5 /* FormatIndicatedCacheSerializer.swift */; }; + A0371DF7D93D9B86BD50474D4B9294FD /* ConstraintInsets.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5F7F5E6F94879FAB29D921DC9FAF8CD9 /* ConstraintInsets.swift */; }; + A051999781E1280746F7743BDEEA6C49 /* ConstraintDescription.swift in Sources */ = {isa = PBXBuildFile; fileRef = FFC2163D8BC1DC94596E6612D1851079 /* ConstraintDescription.swift */; }; + A1506893FF52AA466B130E8B05FBE868 /* NetworkReachabilityManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = E25067B4F422F31021D401E81CDA3A38 /* NetworkReachabilityManager.swift */; }; + A1A93726CD533C8ACD4755250E46E48D /* Delegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3D5F1A2FF1FB1DD42568FD79BC4800F0 /* Delegate.swift */; }; + A22A2ACF53FDC243AAAFB009005A710F /* Concurrency.swift in Sources */ = {isa = PBXBuildFile; fileRef = 26D8FAAD7E324D1696484B36A27617E1 /* Concurrency.swift */; }; + A35877DE0C3D6B4CF2A10E666EF5F490 /* LayoutConstraintItem.swift in Sources */ = {isa = PBXBuildFile; fileRef = CB21BE53AD315A53D3028EB684445858 /* LayoutConstraintItem.swift */; }; + A393340CB069126B0A3D781C174E6E49 /* JXSegmentedNumberItemModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 651AF86B19A0753E59D925A358A62C7E /* JXSegmentedNumberItemModel.swift */; }; + A3FD52DF5584364FFD56965394C36CF2 /* URLConvertible+URLRequestConvertible.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7D8C5FDD4C842D708A0A3A727D77B58F /* URLConvertible+URLRequestConvertible.swift */; }; + A50A72FCD270217D99ECA1D2700CFAD4 /* PrivacyInfo.xcprivacy in Resources */ = {isa = PBXBuildFile; fileRef = E5AE85B549A0F1ADBF86C827D96A2547 /* PrivacyInfo.xcprivacy */; }; + A70C6EBC13661A0FC4023236B350AEA1 /* AuthenticationChallengeResponsable.swift in Sources */ = {isa = PBXBuildFile; fileRef = 51BC721DE951672AC86725904BF54E3F /* AuthenticationChallengeResponsable.swift */; }; + A7AE58053194FA1CEA420D995AF17B85 /* MJRefreshAutoStateFooter.h in Headers */ = {isa = PBXBuildFile; fileRef = 49670BEF07B759207432F9BAC3232A37 /* MJRefreshAutoStateFooter.h */; settings = {ATTRIBUTES = (Public, ); }; }; + A86A28FC358F0AFE453C2EBD1D035751 /* JXSegmentedTitleGradientDataSource.swift in Sources */ = {isa = PBXBuildFile; fileRef = 76B9E41F33DAD89794D0675AA79CA8A6 /* JXSegmentedTitleGradientDataSource.swift */; }; A8C0CBBC63C39A8C10083CBCA172F7CF /* QuartzCore.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = C07BEF0CE5DECC5BDCAC8625BF2FFA4B /* QuartzCore.framework */; }; - A8DD3F39B4D1F0C7B11866484A03336E /* IQInvocation.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6C011E467CC22ED6D7E27C641D1F56BF /* IQInvocation.swift */; }; - AA602A49B1DC7FDED565CAD8BB89EAC1 /* AFError.swift in Sources */ = {isa = PBXBuildFile; fileRef = 943B4AB929902A7B25629F26D84D5417 /* AFError.swift */; }; - AA99A5B65FF84BABBAADA73755A1128E /* TimePeriodChain.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0CF57EB0CB57726D4D40CAAE90CD936E /* TimePeriodChain.swift */; }; - AAC2529A1B4F4832A052B348C5093018 /* IQUIScrollView+Additions.swift in Sources */ = {isa = PBXBuildFile; fileRef = 16BB28FA8B7896E7AF0AC7FC937F19A7 /* IQUIScrollView+Additions.swift */; }; - AB651DB3A97A623234B6544AD030406A /* IQNSArray+Sort.swift in Sources */ = {isa = PBXBuildFile; fileRef = DFAB6B5532F3B8E3FF410827371ED49E /* IQNSArray+Sort.swift */; }; - ACDFC76B3486D1E62FD11EFAA88678ED /* SVProgressHUD.m in Sources */ = {isa = PBXBuildFile; fileRef = 62FA49071BDC919DA23009B2ED6DC501 /* SVProgressHUD.m */; }; - AD6FD7F28D8F2517C7A2646D8836C386 /* PKMacros.h in Headers */ = {isa = PBXBuildFile; fileRef = E311156F3C3961E5F4EFD556E8BBF33F /* PKMacros.h */; settings = {ATTRIBUTES = (Public, ); }; }; - ADAE563BC8C5D1339B8C742D973D72EA /* NSLayoutConstraint+PKDownloadButton.h in Headers */ = {isa = PBXBuildFile; fileRef = 394EA0EF4EA1BA1568C02AE6FDBDB640 /* NSLayoutConstraint+PKDownloadButton.h */; settings = {ATTRIBUTES = (Public, ); }; }; - ADC6E301DBD802373B3B2E73EF4FD436 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = B4B8063291033C95A8B2A24FA2AD7A79 /* Foundation.framework */; }; - AE80F0488D3A0780F143DF2AA0698212 /* UIColor+PKDownloadButton.m in Sources */ = {isa = PBXBuildFile; fileRef = CE1B1EF4353BA9FDF0D8F6E2CD68A1DA /* UIColor+PKDownloadButton.m */; }; - B0CB5FB63262E1A67317045B8960F363 /* IQBarButtonItem.swift in Sources */ = {isa = PBXBuildFile; fileRef = A83CB2EE68C6DADEBF0AE3E48F9A005F /* IQBarButtonItem.swift */; }; - B133BB9C9B03481C7F1D221F35A617F2 /* Constraint.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8391D695EAE060EFF3874D9E27A9FCF3 /* Constraint.swift */; }; - B14FAF976D4BFA1065F209FC49DB722E /* Tiercel-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 3195118FB0FE0A5A0CDE12C350EC0BFE /* Tiercel-dummy.m */; }; - B155E9B44BDC68C87FCC13B10F1D5532 /* ImageFormat.swift in Sources */ = {isa = PBXBuildFile; fileRef = B13BD50E4EC6A725E6E81F3572320A45 /* ImageFormat.swift */; }; - B1E4796F3830DE510675DEE45E7FB648 /* JXSegmentedTitleImageDataSource.swift in Sources */ = {isa = PBXBuildFile; fileRef = 318C19E7D6C6A32542051557783C1EF3 /* JXSegmentedTitleImageDataSource.swift */; }; - B2E03E67465612F21A685BC97EE7F947 /* KFImage.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5EBF6A0C927D0BEC2B5DB9868AA49A13 /* KFImage.swift */; }; - B3048DDF53B358B345D8FC23A4D7D1AB /* JXSegmentedIndicatorRainbowLineView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 39B9EC3B0961258427F81EA9988783C2 /* JXSegmentedIndicatorRainbowLineView.swift */; }; - B3F75D115D5150C258F5E68404751010 /* ConstraintConstantTarget.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0A44021BFDB893E44EAA9D5FDA7A3FF9 /* ConstraintConstantTarget.swift */; }; - B46A36CA19ED6C09341D8E4031F66D5C /* IQUIViewController+Additions.swift in Sources */ = {isa = PBXBuildFile; fileRef = DC52C9616BD7796CAECA262CFB89146F /* IQUIViewController+Additions.swift */; }; - B4F5A298E60CC038619FC7685C3D50C3 /* Date+Compare.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2321C03D8076FF5C1197BA30FB637105 /* Date+Compare.swift */; }; - B4F9C9EC1B3F1689AE56BB719AE5439C /* ConstraintDirectionalInsetTarget.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6C1B2318A36D67B80AB9A36574D48B9F /* ConstraintDirectionalInsetTarget.swift */; }; - B5C66B48EB624FEC4D2F64A50F143716 /* DataStreamRequest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 444DDECFD8D1EE63B4337DEA07CDBA41 /* DataStreamRequest.swift */; }; - B6E953695C48D2FDCE8D86321DE7D474 /* ImageCache.swift in Sources */ = {isa = PBXBuildFile; fileRef = 89F5DB079478EA56BE88941393677920 /* ImageCache.swift */; }; - B784C1E8FB583A4AA328D89038D2DC5B /* TimePeriod.swift in Sources */ = {isa = PBXBuildFile; fileRef = 203889A6D004FA63E5B60B05C420B983 /* TimePeriod.swift */; }; - B85354283CB89C658911748A7C5AF891 /* JXSegmentedAnimator.swift in Sources */ = {isa = PBXBuildFile; fileRef = E0E58492DC1522D088B61A013EC830D1 /* JXSegmentedAnimator.swift */; }; - B962ED35C37063794B7D8468FB007AD5 /* MJRefresh-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = A6D32E291293B13F725561460AD6A55C /* MJRefresh-dummy.m */; }; - B97D95F7C0C87105C015BCCAE634B8DC /* Filter.swift in Sources */ = {isa = PBXBuildFile; fileRef = C0E89285C61C5207A9708CC303A59A3D /* Filter.swift */; }; - B99F90601D5EED64587743374BBC44F6 /* MJRefreshStateTrailer.m in Sources */ = {isa = PBXBuildFile; fileRef = 5BA22F174045FFB7A48A75A7F4D9EB96 /* MJRefreshStateTrailer.m */; }; - B9A56C1C079CE609AD4404964A95A170 /* MJRefreshTrailer.m in Sources */ = {isa = PBXBuildFile; fileRef = D7A6149AFCACF07DCC6875C9ECECC7A3 /* MJRefreshTrailer.m */; }; - B9DCCFD9F7800B172476EE7F2D90354B /* JXSegmentedTitleAttributeDataSource.swift in Sources */ = {isa = PBXBuildFile; fileRef = BD36969B19B33F782A8731FD12DE04F2 /* JXSegmentedTitleAttributeDataSource.swift */; }; - B9EA745EBAAB9FFCFDD98E9D593C0EB3 /* PrivacyInfo.xcprivacy in Resources */ = {isa = PBXBuildFile; fileRef = 4C81E489B48B567E974A27AE3C38D336 /* PrivacyInfo.xcprivacy */; }; - BAF334D6167CAED8479849147C7F6858 /* TVMonogramView+Kingfisher.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9AD4BD75CC969A381CA33489A1380AF2 /* TVMonogramView+Kingfisher.swift */; }; - BB84B6AC5338AF7AD3B82B1C012386F8 /* JXSegmentedDotCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6D4F9A47778935536C815EE8A43C62CE /* JXSegmentedDotCell.swift */; }; - BBC9585C538DD5B68FF7E7E32F714023 /* JXSegmentedCollectionView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4DB9DF7E0785B32759BE7D10F30291CB /* JXSegmentedCollectionView.swift */; }; - BC0A0C473B63B817926F4D58611281BB /* URLEncodedFormEncoder.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0399B88BB7703B5750208873531B6CFD /* URLEncodedFormEncoder.swift */; }; - BD092797639DC408DC38DC00F63CAFE5 /* PKPendingView.m in Sources */ = {isa = PBXBuildFile; fileRef = 89AB6504876D9F3A7808F0012486934B /* PKPendingView.m */; }; - BDAD667B60A9D9981738646851C825A0 /* IQKeyboardManager+Toolbar.swift in Sources */ = {isa = PBXBuildFile; fileRef = 40645897DA10D6315EE10B5CF09F9F83 /* IQKeyboardManager+Toolbar.swift */; }; - BDEF755484EB2BA591FBF48752FBAEEC /* NSTextAttachment+Kingfisher.swift in Sources */ = {isa = PBXBuildFile; fileRef = E61B541BAA0D342983094AC77D1433AB /* NSTextAttachment+Kingfisher.swift */; }; - BE355F69F84788D334FDAC7D1CD9B8C4 /* ConstraintDirectionalInsets.swift in Sources */ = {isa = PBXBuildFile; fileRef = 21F837F2050BCDC7CB46A7661A696F07 /* ConstraintDirectionalInsets.swift */; }; - BE60EC19FCBB8F301081E9C31BB85F3E /* IQUITextFieldView+Additions.swift in Sources */ = {isa = PBXBuildFile; fileRef = F60A6E2C18C53A1DCD59710DAE3325F0 /* IQUITextFieldView+Additions.swift */; }; - BF567AEFDD52DC43AC75122734D571E2 /* ConstraintMakerFinalizable.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7FDE66FA3E63D652F470310D1A8E5121 /* ConstraintMakerFinalizable.swift */; }; - C04DBE6AE13FC5CFD01D363A351EF76A /* ConstraintView+Extensions.swift in Sources */ = {isa = PBXBuildFile; fileRef = B4E04173C3016FD3365BEAF7FE2945DE /* ConstraintView+Extensions.swift */; }; - C09A286120D64335EA18D7689720B773 /* NSBundle+MJRefresh.h in Headers */ = {isa = PBXBuildFile; fileRef = D5B48DED1E452069861B8DDE4A02CF99 /* NSBundle+MJRefresh.h */; settings = {ATTRIBUTES = (Public, ); }; }; - C4522EAA36074B975252AAFED57FA952 /* PKCircleProgressView.h in Headers */ = {isa = PBXBuildFile; fileRef = 0328F3AA7B25B4CE0C3E8A068E58181A /* PKCircleProgressView.h */; settings = {ATTRIBUTES = (Public, ); }; }; + A8DD3F39B4D1F0C7B11866484A03336E /* IQInvocation.swift in Sources */ = {isa = PBXBuildFile; fileRef = 75CCB704A2F8C5FD5D51A39623EC97EF /* IQInvocation.swift */; }; + AA602A49B1DC7FDED565CAD8BB89EAC1 /* AFError.swift in Sources */ = {isa = PBXBuildFile; fileRef = BC4168D55A1803CD9FF8E4EE13C46B71 /* AFError.swift */; }; + AA99A5B65FF84BABBAADA73755A1128E /* TimePeriodChain.swift in Sources */ = {isa = PBXBuildFile; fileRef = 363041D7DAC28D7907D5E0EC0CEE54B6 /* TimePeriodChain.swift */; }; + AAC2529A1B4F4832A052B348C5093018 /* IQUIScrollView+Additions.swift in Sources */ = {isa = PBXBuildFile; fileRef = 30619E70159FE994D5F9B876739CF48E /* IQUIScrollView+Additions.swift */; }; + AB651DB3A97A623234B6544AD030406A /* IQNSArray+Sort.swift in Sources */ = {isa = PBXBuildFile; fileRef = C20FA9B8AFEC263D98FDA510EF5428F4 /* IQNSArray+Sort.swift */; }; + ACDFC76B3486D1E62FD11EFAA88678ED /* SVProgressHUD.m in Sources */ = {isa = PBXBuildFile; fileRef = 468FDABC3307F80DBEFA314352D1EABA /* SVProgressHUD.m */; }; + AD6FD7F28D8F2517C7A2646D8836C386 /* PKMacros.h in Headers */ = {isa = PBXBuildFile; fileRef = 6673D2623B38B531794BA957717FE418 /* PKMacros.h */; settings = {ATTRIBUTES = (Public, ); }; }; + ADAE563BC8C5D1339B8C742D973D72EA /* NSLayoutConstraint+PKDownloadButton.h in Headers */ = {isa = PBXBuildFile; fileRef = 74594CC121111A6BE5D36A1345621641 /* NSLayoutConstraint+PKDownloadButton.h */; settings = {ATTRIBUTES = (Public, ); }; }; + AE80F0488D3A0780F143DF2AA0698212 /* UIColor+PKDownloadButton.m in Sources */ = {isa = PBXBuildFile; fileRef = 545EBFECE53F67DCEBC38048C429627C /* UIColor+PKDownloadButton.m */; }; + B0CB5FB63262E1A67317045B8960F363 /* IQBarButtonItem.swift in Sources */ = {isa = PBXBuildFile; fileRef = C84551F146725C38A8BF32264CB9D233 /* IQBarButtonItem.swift */; }; + B133BB9C9B03481C7F1D221F35A617F2 /* Constraint.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1D9415D9D582CA7A0D82036D18FAA265 /* Constraint.swift */; }; + B14FAF976D4BFA1065F209FC49DB722E /* Tiercel-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = C0BE2DDD0E10875AE143D7839F201491 /* Tiercel-dummy.m */; }; + B155E9B44BDC68C87FCC13B10F1D5532 /* ImageFormat.swift in Sources */ = {isa = PBXBuildFile; fileRef = A05D76B3DC19D0B92299EEAC15498891 /* ImageFormat.swift */; }; + B1E4796F3830DE510675DEE45E7FB648 /* JXSegmentedTitleImageDataSource.swift in Sources */ = {isa = PBXBuildFile; fileRef = A8AEFC03D74F434693AD37863156695D /* JXSegmentedTitleImageDataSource.swift */; }; + B2E03E67465612F21A685BC97EE7F947 /* KFImage.swift in Sources */ = {isa = PBXBuildFile; fileRef = 52B39B8C94D1DBDCA76CF5D74C8C6EF5 /* KFImage.swift */; }; + B3048DDF53B358B345D8FC23A4D7D1AB /* JXSegmentedIndicatorRainbowLineView.swift in Sources */ = {isa = PBXBuildFile; fileRef = B5C5FBF667B1635D66E7702443A795A4 /* JXSegmentedIndicatorRainbowLineView.swift */; }; + B3DE1E5AC8DA2DFB20BBF40F392BCDB4 /* PrivacyInfo.xcprivacy in Resources */ = {isa = PBXBuildFile; fileRef = 21CB16C0EE3EC122700610CC88559E66 /* PrivacyInfo.xcprivacy */; }; + B3F75D115D5150C258F5E68404751010 /* ConstraintConstantTarget.swift in Sources */ = {isa = PBXBuildFile; fileRef = 003E0189738A9240CB460BA31D90274C /* ConstraintConstantTarget.swift */; }; + B46A36CA19ED6C09341D8E4031F66D5C /* IQUIViewController+Additions.swift in Sources */ = {isa = PBXBuildFile; fileRef = 47CB3125EBE82E815B80A545A72A5737 /* IQUIViewController+Additions.swift */; }; + B4F5A298E60CC038619FC7685C3D50C3 /* Date+Compare.swift in Sources */ = {isa = PBXBuildFile; fileRef = 53BA0397D66EE761B2AD30DA65D57FC1 /* Date+Compare.swift */; }; + B4F9C9EC1B3F1689AE56BB719AE5439C /* ConstraintDirectionalInsetTarget.swift in Sources */ = {isa = PBXBuildFile; fileRef = A479C4969D1F508A7852E903C140798E /* ConstraintDirectionalInsetTarget.swift */; }; + B5C66B48EB624FEC4D2F64A50F143716 /* DataStreamRequest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 10833C90D303AA34D096538644A80BF9 /* DataStreamRequest.swift */; }; + B6E953695C48D2FDCE8D86321DE7D474 /* ImageCache.swift in Sources */ = {isa = PBXBuildFile; fileRef = 97C0B0DDE6518C31B73D58FD7DB4BC00 /* ImageCache.swift */; }; + B784C1E8FB583A4AA328D89038D2DC5B /* TimePeriod.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4B940D34CA176A20AE3392A5DF877602 /* TimePeriod.swift */; }; + B85354283CB89C658911748A7C5AF891 /* JXSegmentedAnimator.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8672153590C5F65593C96F8B75DE91F9 /* JXSegmentedAnimator.swift */; }; + B962ED35C37063794B7D8468FB007AD5 /* MJRefresh-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = F808C875835D01EA4B267F0276991C8B /* MJRefresh-dummy.m */; }; + B97D95F7C0C87105C015BCCAE634B8DC /* Filter.swift in Sources */ = {isa = PBXBuildFile; fileRef = BE341138A72B8913BD879A77F75CBD06 /* Filter.swift */; }; + B99F90601D5EED64587743374BBC44F6 /* MJRefreshStateTrailer.m in Sources */ = {isa = PBXBuildFile; fileRef = 4069EDB34E4007F32A728D2FED8B7504 /* MJRefreshStateTrailer.m */; }; + B9A56C1C079CE609AD4404964A95A170 /* MJRefreshTrailer.m in Sources */ = {isa = PBXBuildFile; fileRef = 21518245391611F2B49EF91E63B4083E /* MJRefreshTrailer.m */; }; + B9DCCFD9F7800B172476EE7F2D90354B /* JXSegmentedTitleAttributeDataSource.swift in Sources */ = {isa = PBXBuildFile; fileRef = 46AE8E58DA72546DEDC39DEA7F914C3A /* JXSegmentedTitleAttributeDataSource.swift */; }; + BAF334D6167CAED8479849147C7F6858 /* TVMonogramView+Kingfisher.swift in Sources */ = {isa = PBXBuildFile; fileRef = EA93223DB4EFA6447ADE2A496727EF42 /* TVMonogramView+Kingfisher.swift */; }; + BB84B6AC5338AF7AD3B82B1C012386F8 /* JXSegmentedDotCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = C0A804BAF6EBDD252765A7DD178EA318 /* JXSegmentedDotCell.swift */; }; + BBC9585C538DD5B68FF7E7E32F714023 /* JXSegmentedCollectionView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 23225B4E8514DBFF46A9F508E8CB19A4 /* JXSegmentedCollectionView.swift */; }; + BC0A0C473B63B817926F4D58611281BB /* URLEncodedFormEncoder.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6CF9AE62D9C4C2E8CA013313CEDAA381 /* URLEncodedFormEncoder.swift */; }; + BD092797639DC408DC38DC00F63CAFE5 /* PKPendingView.m in Sources */ = {isa = PBXBuildFile; fileRef = DAD9DD293A168FD3266BB05A5E822BF1 /* PKPendingView.m */; }; + BDAD667B60A9D9981738646851C825A0 /* IQKeyboardManager+Toolbar.swift in Sources */ = {isa = PBXBuildFile; fileRef = E9669FA7175A0ECDE0583DD8E9C33F14 /* IQKeyboardManager+Toolbar.swift */; }; + BDEF755484EB2BA591FBF48752FBAEEC /* NSTextAttachment+Kingfisher.swift in Sources */ = {isa = PBXBuildFile; fileRef = 93A1AF74FF3777E85CA96AB1136C31D3 /* NSTextAttachment+Kingfisher.swift */; }; + BE355F69F84788D334FDAC7D1CD9B8C4 /* ConstraintDirectionalInsets.swift in Sources */ = {isa = PBXBuildFile; fileRef = AB74D4B0A0E85EFD5BED4E414FF4EFBF /* ConstraintDirectionalInsets.swift */; }; + BE60EC19FCBB8F301081E9C31BB85F3E /* IQUITextFieldView+Additions.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0767EB67AF8AB44D30657126FC473E60 /* IQUITextFieldView+Additions.swift */; }; + BF567AEFDD52DC43AC75122734D571E2 /* ConstraintMakerFinalizable.swift in Sources */ = {isa = PBXBuildFile; fileRef = 480B5DAE25DDAB0483A10B4A65214BB2 /* ConstraintMakerFinalizable.swift */; }; + BF580AC7D363639FB27CF60E136902C3 /* Pods-relax.offline.mp3.music-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = 11F50E60BCEC8BA9DF3836EAFBABE24A /* Pods-relax.offline.mp3.music-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; + C04DBE6AE13FC5CFD01D363A351EF76A /* ConstraintView+Extensions.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7C0DB9DC40B79D952AF8493966908936 /* ConstraintView+Extensions.swift */; }; + C09A286120D64335EA18D7689720B773 /* NSBundle+MJRefresh.h in Headers */ = {isa = PBXBuildFile; fileRef = CCD4525C09817A4E7F1DBF72D225A3C4 /* NSBundle+MJRefresh.h */; settings = {ATTRIBUTES = (Public, ); }; }; + C4522EAA36074B975252AAFED57FA952 /* PKCircleProgressView.h in Headers */ = {isa = PBXBuildFile; fileRef = 2846700660840F9BEB3E18B26DD04EB0 /* PKCircleProgressView.h */; settings = {ATTRIBUTES = (Public, ); }; }; + C50A637F18FADC506FC35B99C726E216 /* QuartzCore.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = C07BEF0CE5DECC5BDCAC8625BF2FFA4B /* QuartzCore.framework */; }; C5C4137EA46E97E717E83EF0ACEBC695 /* JXSegmentedView-JXSegmentedView in Resources */ = {isa = PBXBuildFile; fileRef = 92B0EC788EDA1B0CFA48DFFCB3DDAECD /* JXSegmentedView-JXSegmentedView */; }; - C6675F7517783A748EEF6AF441B187EB /* DiskStorage.swift in Sources */ = {isa = PBXBuildFile; fileRef = D828CDDF1A55F5AB5A1C46C8E9B5212B /* DiskStorage.swift */; }; - C7D7569C45A2C8851B9BF700897AFDA0 /* PrivacyInfo.xcprivacy in Resources */ = {isa = PBXBuildFile; fileRef = 8099F9525C25E641D6DE6C728EE3F880 /* PrivacyInfo.xcprivacy */; }; + C6675F7517783A748EEF6AF441B187EB /* DiskStorage.swift in Sources */ = {isa = PBXBuildFile; fileRef = C51A4E89875641A52F30561B602453E5 /* DiskStorage.swift */; }; C7E343559158D03F717C616F79FAA006 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = B4B8063291033C95A8B2A24FA2AD7A79 /* Foundation.framework */; }; - C7E374D1D8E50EAFE9ED2AF576280DA6 /* PrivacyInfo.xcprivacy in Resources */ = {isa = PBXBuildFile; fileRef = 925D837B2199663A20844A9D7989BCF7 /* PrivacyInfo.xcprivacy */; }; - C97C4259FD08F4E7519F858AA06B1A3B /* JXSegmentedRTLLayout.swift in Sources */ = {isa = PBXBuildFile; fileRef = DABAAD9946FE635998EDD957CBD9C562 /* JXSegmentedRTLLayout.swift */; }; - C9D65759B4F36BDD6F29F0D4EA18AEFF /* SVProgressHUD.bundle in Resources */ = {isa = PBXBuildFile; fileRef = 1A0D92ED5164D726538A59D7F3BE7FE1 /* SVProgressHUD.bundle */; }; - C9E547298C46CBE02D64B938B330FC9C /* PKStopDownloadButton.m in Sources */ = {isa = PBXBuildFile; fileRef = 4CEE0C62C7FB9997C20B8E1824B5812F /* PKStopDownloadButton.m */; }; - CA2820BE946964DCBC8E68604B34FD10 /* SizeExtensions.swift in Sources */ = {isa = PBXBuildFile; fileRef = C9D3123CA4DB0F7B9B4E0A0F76ADE2B7 /* SizeExtensions.swift */; }; + C97C4259FD08F4E7519F858AA06B1A3B /* JXSegmentedRTLLayout.swift in Sources */ = {isa = PBXBuildFile; fileRef = D20F0C5A0D9F06EAD0F1386F0F85B218 /* JXSegmentedRTLLayout.swift */; }; + C9D65759B4F36BDD6F29F0D4EA18AEFF /* SVProgressHUD.bundle in Resources */ = {isa = PBXBuildFile; fileRef = A713E330CC0DEBC3A761CED11A4795D4 /* SVProgressHUD.bundle */; }; + C9E547298C46CBE02D64B938B330FC9C /* PKStopDownloadButton.m in Sources */ = {isa = PBXBuildFile; fileRef = 1615CF451757A9DDFB934B03559641D4 /* PKStopDownloadButton.m */; }; + CA2820BE946964DCBC8E68604B34FD10 /* SizeExtensions.swift in Sources */ = {isa = PBXBuildFile; fileRef = C8746755854783E52DEFB00615699F5D /* SizeExtensions.swift */; }; CCD6784611A32AE82D759F673AD23B47 /* JXPagingView-JXPagingView in Resources */ = {isa = PBXBuildFile; fileRef = 7EB20B4E68CCB69F85E7D08B7F8463D6 /* JXPagingView-JXPagingView */; }; - CDCA01B605A086576DBB75F8C3A24337 /* RetryPolicy.swift in Sources */ = {isa = PBXBuildFile; fileRef = 486B16286080A1C04A4D1C6D3E6025B3 /* RetryPolicy.swift */; }; - CDD01A2CBF13747972C51B1AE7A10B31 /* DispatchQueue+Safe.swift in Sources */ = {isa = PBXBuildFile; fileRef = 57DDDE5819A3D9FFB54140F6BAE81830 /* DispatchQueue+Safe.swift */; }; - CE453C62D0DA474AEE306AF3DF6DDAF1 /* MJRefreshConfig.m in Sources */ = {isa = PBXBuildFile; fileRef = BAB2C96206F96650F4283CA3DF48FF32 /* MJRefreshConfig.m */; }; - CFDC85864B426F19A908AD3E8F795D53 /* Protected.swift in Sources */ = {isa = PBXBuildFile; fileRef = 28EC603025181C76A66BAE90715D908C /* Protected.swift */; }; - D06D49E07A6416A2A6E41B7B7B0D66F2 /* ImagePrefetcher.swift in Sources */ = {isa = PBXBuildFile; fileRef = 66B6177A943E1AACC863187B10034268 /* ImagePrefetcher.swift */; }; + CDCA01B605A086576DBB75F8C3A24337 /* RetryPolicy.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3B05B30F83602E9BAE9D6BFAA15D754E /* RetryPolicy.swift */; }; + CDD01A2CBF13747972C51B1AE7A10B31 /* DispatchQueue+Safe.swift in Sources */ = {isa = PBXBuildFile; fileRef = 53F49612AAEE91DAD32EE172085A934A /* DispatchQueue+Safe.swift */; }; + CE453C62D0DA474AEE306AF3DF6DDAF1 /* MJRefreshConfig.m in Sources */ = {isa = PBXBuildFile; fileRef = 4D5C687385BE696DCC857DAFE966CAAD /* MJRefreshConfig.m */; }; + CFDC85864B426F19A908AD3E8F795D53 /* Protected.swift in Sources */ = {isa = PBXBuildFile; fileRef = 07BEA997FD9DBCEECF9DDD4849E2427B /* Protected.swift */; }; + D06D49E07A6416A2A6E41B7B7B0D66F2 /* ImagePrefetcher.swift in Sources */ = {isa = PBXBuildFile; fileRef = ADF9D748AB9232ECD519C2A7219DEDA3 /* ImagePrefetcher.swift */; }; D091D9EA20CEB92609BF1E622E8CA348 /* SnapKit-SnapKit_Privacy in Resources */ = {isa = PBXBuildFile; fileRef = B9DCB5EC0B1CDADD221717CADDF62359 /* SnapKit-SnapKit_Privacy */; }; - D0DF994786BCEC54939BC8216B42FBC4 /* IQTextView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 771E3D4F19CA986D8B1AA6410516D930 /* IQTextView.swift */; }; - D191F3F5F0841B63F1F54A430608830E /* MJRefreshFooter.m in Sources */ = {isa = PBXBuildFile; fileRef = D18503D5513378AAA749EB4885A66EAA /* MJRefreshFooter.m */; }; - D219C90C04F199356B9E9356693A3D59 /* Date.swift in Sources */ = {isa = PBXBuildFile; fileRef = A56B327BFF93535BA9BFA03A6E2AB1C9 /* Date.swift */; }; - D21E59C63A36A71A0B639350BA49E1A5 /* JXSegmentedView-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = A1229D3D5E49A73412E7928353BDF391 /* JXSegmentedView-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; - D313FF15F05623E5026892D032C08A30 /* JXSegmentedIndicatorLineView.swift in Sources */ = {isa = PBXBuildFile; fileRef = B7BD2268271963463BE2EE4764623A5D /* JXSegmentedIndicatorLineView.swift */; }; - D32F246A21567182179C39B12D534191 /* MJRefreshBackGifFooter.h in Headers */ = {isa = PBXBuildFile; fileRef = 2D4BF92463A6226AB1E7AC8D7C90D3AF /* MJRefreshBackGifFooter.h */; settings = {ATTRIBUTES = (Public, ); }; }; - D468E9A0E49D654CDA69712404298D1C /* CALayer+PKDownloadButtonAnimations.h in Headers */ = {isa = PBXBuildFile; fileRef = 4000ED24F540FFC9C63FD4DBC6AA4AEF /* CALayer+PKDownloadButtonAnimations.h */; settings = {ATTRIBUTES = (Public, ); }; }; - D46A095C95DE691323E1D470F9DA1A39 /* KingfisherOptionsInfo.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5831937C2675DEC9D3967CA8C1C4DE4A /* KingfisherOptionsInfo.swift */; }; - D496B7637BE491EE925D965EC64A46E8 /* MJRefreshBackStateFooter.h in Headers */ = {isa = PBXBuildFile; fileRef = BD1251C43198DD226402B31E21D75161 /* MJRefreshBackStateFooter.h */; settings = {ATTRIBUTES = (Public, ); }; }; - D4A9338A969C1416E3C79CECCB97D514 /* SVIndefiniteAnimatedView.h in Headers */ = {isa = PBXBuildFile; fileRef = EABE5923720744A0D5FE825748A330F5 /* SVIndefiniteAnimatedView.h */; settings = {ATTRIBUTES = (Public, ); }; }; - D4C21761CC592857F35B99ACDD62ADAB /* MJRefreshAutoNormalFooter.m in Sources */ = {isa = PBXBuildFile; fileRef = EB007609961A6209560053C76559CE7C /* MJRefreshAutoNormalFooter.m */; }; - D4E2EAD773A30B252B6AD6B99A7490F4 /* IQKeyboardManagerSwift-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = 8CAC18A227755897168F8ACF4C5BDC5A /* IQKeyboardManagerSwift-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; - D5CDB942C402656138596C179E5A64EB /* ImageModifier.swift in Sources */ = {isa = PBXBuildFile; fileRef = ED54119B6A54FF4ADC1A500313A39E5B /* ImageModifier.swift */; }; - D6A1AB77D9F4C84779521FAF5E469343 /* MJRefreshAutoFooter.m in Sources */ = {isa = PBXBuildFile; fileRef = 63A2D978923680CBC3B31F209036FEE1 /* MJRefreshAutoFooter.m */; }; - D6C6BF7DF334ECB734DF0F1AC176184B /* SessionDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3DF0CE5C30A5DCCC8B6DB7B3EF262A12 /* SessionDelegate.swift */; }; - D6D4AB4590700B3706919889BF614D26 /* SVRadialGradientLayer.m in Sources */ = {isa = PBXBuildFile; fileRef = 41EA5DD20C3E30CEE9AE29D7D08FA979 /* SVRadialGradientLayer.m */; }; - D786D7CA6B8CE037FE8376A1DD390506 /* JXSegmentedBaseCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5847A62D213D4F4C1672653653C21997 /* JXSegmentedBaseCell.swift */; }; - D92AEF78B87F929D88D5C876ABBAD79A /* ConstraintLayoutSupportDSL.swift in Sources */ = {isa = PBXBuildFile; fileRef = 04299820AD649702024B0237353A46DD /* ConstraintLayoutSupportDSL.swift */; }; - DAA39F07C362D3F2DB232609D93CDF6B /* ImageDrawing.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9DA69B15763E7B151A7EEA0B2B4CFBEC /* ImageDrawing.swift */; }; - DE896085DFDD686BDBDEFB776F0D683A /* DispatchQueue+Alamofire.swift in Sources */ = {isa = PBXBuildFile; fileRef = 40A8CAAD858518E279F90477318343BC /* DispatchQueue+Alamofire.swift */; }; - DE8F5B68839128A005EE3549A1149B09 /* RequestInterceptor.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3519A1DE1070D14BA21F4BEBE3C5D2ED /* RequestInterceptor.swift */; }; - E06C5FBFE7D88C3630BA1FD51F7AF1E7 /* SVProgressHUD-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 9C7DF955B9345F7577E38FDD9FF5C91F /* SVProgressHUD-dummy.m */; }; - E1C7B6DB080AC2293002CC3C12B136AD /* UIButton+Kingfisher.swift in Sources */ = {isa = PBXBuildFile; fileRef = 39BC3B9D2613342C5CAF994270E1E089 /* UIButton+Kingfisher.swift */; }; - E2112B22B6B162AE91C23934B3F5C481 /* Source.swift in Sources */ = {isa = PBXBuildFile; fileRef = 63A098082295E231AEDD8791D3AA4A49 /* Source.swift */; }; - E2BB8FD3C0A59A4D81911A2A70CC74C7 /* CodingUserInfoKey+Cache.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8F8826CA94A370457A01E12C56972CB3 /* CodingUserInfoKey+Cache.swift */; }; - E55E592D62CAE3D0B2960146E3D15CC6 /* UIView+MJExtension.m in Sources */ = {isa = PBXBuildFile; fileRef = 8EEB4F8D0734EDD1E7483E37F784DFB4 /* UIView+MJExtension.m */; }; - E598C1E3C7A57F92401D607E5675ADD3 /* JXSegmentedIndicatorDotLineView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6FB4A4A3FCE2E90247D5D8CE8F078E0A /* JXSegmentedIndicatorDotLineView.swift */; }; - E5BF005C09FAD7A3AC5E4FFFCE16F758 /* PKPendingView.h in Headers */ = {isa = PBXBuildFile; fileRef = 5CB56AAB4562D355FF301EDA2AB8094A /* PKPendingView.h */; settings = {ATTRIBUTES = (Public, ); }; }; - E6ED06AC318A34F7744B32CEC759CDA9 /* Response.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5A5E481E3DDCA3A4F1BB60E195B03E9A /* Response.swift */; }; - E702D99CA55B52C306544C4DDF9083DA /* MJRefreshBackGifFooter.m in Sources */ = {isa = PBXBuildFile; fileRef = 3B4BF2692B75E2E78EB3901D29CF2F20 /* MJRefreshBackGifFooter.m */; }; - E718E500074E8D6B011D53571B27BC0D /* Kingfisher-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 6ACED6F5365BD329D3BE6C449312D271 /* Kingfisher-dummy.m */; }; + D0DF994786BCEC54939BC8216B42FBC4 /* IQTextView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 06A55350BF66D9CE17E086D6174A2A51 /* IQTextView.swift */; }; + D191F3F5F0841B63F1F54A430608830E /* MJRefreshFooter.m in Sources */ = {isa = PBXBuildFile; fileRef = D42235E7352D41F807EE27C6444FF06B /* MJRefreshFooter.m */; }; + D219C90C04F199356B9E9356693A3D59 /* Date.swift in Sources */ = {isa = PBXBuildFile; fileRef = F98A5DF514D9F74D447722831FBA5807 /* Date.swift */; }; + D21E59C63A36A71A0B639350BA49E1A5 /* JXSegmentedView-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = CEEC154FF2778A9A73035DE01D39991A /* JXSegmentedView-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; + D313FF15F05623E5026892D032C08A30 /* JXSegmentedIndicatorLineView.swift in Sources */ = {isa = PBXBuildFile; fileRef = EBB3B662BEA23309AB382EFC97F9BDDA /* JXSegmentedIndicatorLineView.swift */; }; + D32F246A21567182179C39B12D534191 /* MJRefreshBackGifFooter.h in Headers */ = {isa = PBXBuildFile; fileRef = 13A6A7404AEFB590D7FBE61826442632 /* MJRefreshBackGifFooter.h */; settings = {ATTRIBUTES = (Public, ); }; }; + D468E9A0E49D654CDA69712404298D1C /* CALayer+PKDownloadButtonAnimations.h in Headers */ = {isa = PBXBuildFile; fileRef = 1745505B9FA5A35E72BC0FBEC9669138 /* CALayer+PKDownloadButtonAnimations.h */; settings = {ATTRIBUTES = (Public, ); }; }; + D46A095C95DE691323E1D470F9DA1A39 /* KingfisherOptionsInfo.swift in Sources */ = {isa = PBXBuildFile; fileRef = 26A8543F8061C4A8532F17AB9763A423 /* KingfisherOptionsInfo.swift */; }; + D496B7637BE491EE925D965EC64A46E8 /* MJRefreshBackStateFooter.h in Headers */ = {isa = PBXBuildFile; fileRef = FC486EF7D98345630D4FEB14D1DF50D8 /* MJRefreshBackStateFooter.h */; settings = {ATTRIBUTES = (Public, ); }; }; + D4A9338A969C1416E3C79CECCB97D514 /* SVIndefiniteAnimatedView.h in Headers */ = {isa = PBXBuildFile; fileRef = A5C3A22AED22F776F49519A0F9086543 /* SVIndefiniteAnimatedView.h */; settings = {ATTRIBUTES = (Public, ); }; }; + D4C21761CC592857F35B99ACDD62ADAB /* MJRefreshAutoNormalFooter.m in Sources */ = {isa = PBXBuildFile; fileRef = 6C91685D18502488D4C0C9C949E4166C /* MJRefreshAutoNormalFooter.m */; }; + D4E2EAD773A30B252B6AD6B99A7490F4 /* IQKeyboardManagerSwift-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = E8582A8D4529359E27C0462E791183E5 /* IQKeyboardManagerSwift-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; + D5CDB942C402656138596C179E5A64EB /* ImageModifier.swift in Sources */ = {isa = PBXBuildFile; fileRef = 547C395DDFFDD27A8A8FEE800C4BA045 /* ImageModifier.swift */; }; + D6A1AB77D9F4C84779521FAF5E469343 /* MJRefreshAutoFooter.m in Sources */ = {isa = PBXBuildFile; fileRef = 9D44F73F60EAA2C6700435B40B54AA74 /* MJRefreshAutoFooter.m */; }; + D6C6BF7DF334ECB734DF0F1AC176184B /* SessionDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = A7772DA4BDA381D5C4F75BCDD92362F9 /* SessionDelegate.swift */; }; + D6D4AB4590700B3706919889BF614D26 /* SVRadialGradientLayer.m in Sources */ = {isa = PBXBuildFile; fileRef = 1F56CF64E0AA628156FD417070CA92E2 /* SVRadialGradientLayer.m */; }; + D786D7CA6B8CE037FE8376A1DD390506 /* JXSegmentedBaseCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = AF603AAB8E1A44C4F5701C81A01D1DBE /* JXSegmentedBaseCell.swift */; }; + D92AEF78B87F929D88D5C876ABBAD79A /* ConstraintLayoutSupportDSL.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0BD6E357D41791AA4FB7890AED14C527 /* ConstraintLayoutSupportDSL.swift */; }; + DAA39F07C362D3F2DB232609D93CDF6B /* ImageDrawing.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6636254FFB6DE11FD7A8AFA55F06D1C4 /* ImageDrawing.swift */; }; + DE896085DFDD686BDBDEFB776F0D683A /* DispatchQueue+Alamofire.swift in Sources */ = {isa = PBXBuildFile; fileRef = F3B4936C04FD05F923650CD1AFD33840 /* DispatchQueue+Alamofire.swift */; }; + DE8F5B68839128A005EE3549A1149B09 /* RequestInterceptor.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6DE267000E0CF855728DAD2FA6B0D9D8 /* RequestInterceptor.swift */; }; + E06C5FBFE7D88C3630BA1FD51F7AF1E7 /* SVProgressHUD-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 5F6BBD8BAC38D8F22BFD8D815B81443B /* SVProgressHUD-dummy.m */; }; + E1C7B6DB080AC2293002CC3C12B136AD /* UIButton+Kingfisher.swift in Sources */ = {isa = PBXBuildFile; fileRef = 208D6F9BA69B30FB0264D0CE23153F7E /* UIButton+Kingfisher.swift */; }; + E2112B22B6B162AE91C23934B3F5C481 /* Source.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0EBDD43A7B38065D789EAEA7E3A99DC6 /* Source.swift */; }; + E2BB8FD3C0A59A4D81911A2A70CC74C7 /* CodingUserInfoKey+Cache.swift in Sources */ = {isa = PBXBuildFile; fileRef = 32B909B928CC41053D7CF406408D2DA8 /* CodingUserInfoKey+Cache.swift */; }; + E55E592D62CAE3D0B2960146E3D15CC6 /* UIView+MJExtension.m in Sources */ = {isa = PBXBuildFile; fileRef = 2A973CF3ED699EA4E9515A9F191A256F /* UIView+MJExtension.m */; }; + E598C1E3C7A57F92401D607E5675ADD3 /* JXSegmentedIndicatorDotLineView.swift in Sources */ = {isa = PBXBuildFile; fileRef = CDA6DE9F9E4B35314E50FE0F47F29F84 /* JXSegmentedIndicatorDotLineView.swift */; }; + E5BF005C09FAD7A3AC5E4FFFCE16F758 /* PKPendingView.h in Headers */ = {isa = PBXBuildFile; fileRef = 7A6ECD49E457E72D5012323706377C03 /* PKPendingView.h */; settings = {ATTRIBUTES = (Public, ); }; }; + E6ED06AC318A34F7744B32CEC759CDA9 /* Response.swift in Sources */ = {isa = PBXBuildFile; fileRef = 215886B2A76F059FE5D4A687D74535C3 /* Response.swift */; }; + E702D99CA55B52C306544C4DDF9083DA /* MJRefreshBackGifFooter.m in Sources */ = {isa = PBXBuildFile; fileRef = CA2334A7F161A92437E85AAEFF3C3F57 /* MJRefreshBackGifFooter.m */; }; + E718E500074E8D6B011D53571B27BC0D /* Kingfisher-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = F0DE2A1E22A9F0F6E1720611015699A8 /* Kingfisher-dummy.m */; }; E818AF38E910251104A9A8AFC9227C3C /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = B4B8063291033C95A8B2A24FA2AD7A79 /* Foundation.framework */; }; - E8A077D1FE8B40F1D67F5B3FB0613628 /* SessionDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 87C5FCFE657C20543573C3718CB98314 /* SessionDelegate.swift */; }; - E8AD52B68BDE7B679B358601CCAB3F2D /* UICollectionViewLayout+MJRefresh.h in Headers */ = {isa = PBXBuildFile; fileRef = D92DA17CEE50A9F5DB6B28966EB463F7 /* UICollectionViewLayout+MJRefresh.h */; settings = {ATTRIBUTES = (Public, ); }; }; - E94B31DCAF75D93405D3BAE188604EB2 /* ConstraintConfig.swift in Sources */ = {isa = PBXBuildFile; fileRef = C8E7EA8D9C5A64029EF6EFB7F209B083 /* ConstraintConfig.swift */; }; - EB126B698D642942058D9B676EC1E32B /* MJRefreshConst.m in Sources */ = {isa = PBXBuildFile; fileRef = 39C8DA51B12B0841241D88B8559D10DF /* MJRefreshConst.m */; }; - ECAA15FA3C4560E3287F2226EC8C1ECF /* IQKeyboardManagerConstantsInternal.swift in Sources */ = {isa = PBXBuildFile; fileRef = E6AF07FDF68286DCE8D2D3129ABE86E8 /* IQKeyboardManagerConstantsInternal.swift */; }; - ED3AF010A8D34BC50D7C0D7BE3D2E890 /* JXPagingView-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 09D77A764D82971CF4ED47842C9A4B6C /* JXPagingView-dummy.m */; }; - ED6D55B3F974F15896B01371C7FE20F3 /* Common.swift in Sources */ = {isa = PBXBuildFile; fileRef = FDB1A9EA05B4B28BA973FD120AB7B58C /* Common.swift */; }; - EF9B92EF4A0412D775FA55E4D1CB7A45 /* MJRefreshConfig.h in Headers */ = {isa = PBXBuildFile; fileRef = C5442AB6A892B9A10912AD30DA233E1F /* MJRefreshConfig.h */; settings = {ATTRIBUTES = (Public, ); }; }; - EFC90283F9AB43BB6FF377812BD3673F /* ConstraintPriority.swift in Sources */ = {isa = PBXBuildFile; fileRef = A6E6534DDCD659B76C219B8202688BCF /* ConstraintPriority.swift */; }; - F00E48AB2D923607D9B91DC61DBDEB8F /* MJRefreshAutoGifFooter.m in Sources */ = {isa = PBXBuildFile; fileRef = 3C5371C6033F9B22897412748D004E09 /* MJRefreshAutoGifFooter.m */; }; - F04A9832815B9EF600EF7387C6882D3D /* DateInRegion+Math.swift in Sources */ = {isa = PBXBuildFile; fileRef = 537E15307D7D72026BB4C0FC30CFED93 /* DateInRegion+Math.swift */; }; - F060261A5C0842947977A3CAAD96566B /* Int64+TaskInfo.swift in Sources */ = {isa = PBXBuildFile; fileRef = F25DA22A16432FA72B62254F001DC276 /* Int64+TaskInfo.swift */; }; - F0AB498412A415474D6105F398614F74 /* JXSegmentedComponetGradientView.swift in Sources */ = {isa = PBXBuildFile; fileRef = F955DAC7F3D103A817231F95E23F9717 /* JXSegmentedComponetGradientView.swift */; }; - F0DF27608B184B348B3127233761F4BA /* ExtensionHelpers.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8B3DFBD060AD8EEB4A0CFD9D41F08DA5 /* ExtensionHelpers.swift */; }; - F2E9C9068E8434E9FC9B60755A354FA8 /* MJRefreshBackNormalFooter.m in Sources */ = {isa = PBXBuildFile; fileRef = 8727F5EF7ECCBEBD46E6C8E7B6A0DF97 /* MJRefreshBackNormalFooter.m */; }; - F366D04DEA0EBBCA9CA4F1F4E29695E8 /* ConstraintDSL.swift in Sources */ = {isa = PBXBuildFile; fileRef = D6E704CA7A1DD04296CBF9ED26B91EA0 /* ConstraintDSL.swift */; }; - F3B5353C1CDE6C2DD2E80F32D3637750 /* SessionDataTask.swift in Sources */ = {isa = PBXBuildFile; fileRef = 23DE5A547FC5127A25009E99AD6C3EB6 /* SessionDataTask.swift */; }; - F3EC0ED4BED8DD2C3222C7DCAC2452D2 /* JXSegmentedTitleAttributeCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = DEA2B648448F88ABEF1C029A929CBD5F /* JXSegmentedTitleAttributeCell.swift */; }; - F403D62A7C82B41016A4AADD34D08263 /* FileChecksumHelper.swift in Sources */ = {isa = PBXBuildFile; fileRef = BAA7604C1393503F47A4EEB1F6A2999B /* FileChecksumHelper.swift */; }; - F404BFA0E5F2CFF051688C90B319AC85 /* AnimatedImageView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9980FB822658A810BC4A3B92CAC564F9 /* AnimatedImageView.swift */; }; - F47587932A67D8E3820DAFD9A0E1995E /* IQPlaceholderable.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5106D1769D56C09A2757D25D783D320F /* IQPlaceholderable.swift */; }; - F4DD0AD58DDD5641BDEAEA6CF44FF0ED /* Protected.swift in Sources */ = {isa = PBXBuildFile; fileRef = 383778566947B3850ADAA36FE68A6580 /* Protected.swift */; }; - F69925E3D8812AAFC099940721D12AEC /* Locales.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8BC750A9DB67924552C996D09B392511 /* Locales.swift */; }; - F6CF73614B01B233058CEDDB54309E60 /* SessionConfiguration.swift in Sources */ = {isa = PBXBuildFile; fileRef = 163E780819CFF7B3FE94AF595E36150E /* SessionConfiguration.swift */; }; - F7E576E007A81E0EFD2E0849CB17878D /* WebSocketRequest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 57D83805F5B2CF74579D77E015EE205A /* WebSocketRequest.swift */; }; - F879F5C9ADEB2CF1F832CB17B276B62A /* CALayer+PKDownloadButtonAnimations.m in Sources */ = {isa = PBXBuildFile; fileRef = 242E31512B529C3DABB2ECBF9687B9A7 /* CALayer+PKDownloadButtonAnimations.m */; }; - F94703ED86C58DDBE5A2503D148CD040 /* ConstraintRelation.swift in Sources */ = {isa = PBXBuildFile; fileRef = 76F60DC87BCAFC3DAB096326630BAB7A /* ConstraintRelation.swift */; }; + E8A077D1FE8B40F1D67F5B3FB0613628 /* SessionDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = EE9AF037CDAFAB9620BE013E2C3635C1 /* SessionDelegate.swift */; }; + E8AD52B68BDE7B679B358601CCAB3F2D /* UICollectionViewLayout+MJRefresh.h in Headers */ = {isa = PBXBuildFile; fileRef = 4E09F6B76B94BAB19AD42233BAB48DC8 /* UICollectionViewLayout+MJRefresh.h */; settings = {ATTRIBUTES = (Public, ); }; }; + E94B31DCAF75D93405D3BAE188604EB2 /* ConstraintConfig.swift in Sources */ = {isa = PBXBuildFile; fileRef = 30AE3CC8312E4132A9A995297F2523C6 /* ConstraintConfig.swift */; }; + EB126B698D642942058D9B676EC1E32B /* MJRefreshConst.m in Sources */ = {isa = PBXBuildFile; fileRef = 6C6CC3A8E70B816FE8E2E96EF7A27E41 /* MJRefreshConst.m */; }; + ECAA15FA3C4560E3287F2226EC8C1ECF /* IQKeyboardManagerConstantsInternal.swift in Sources */ = {isa = PBXBuildFile; fileRef = E779182A5BEF30E1BDDE84D00FEC1678 /* IQKeyboardManagerConstantsInternal.swift */; }; + ED3AF010A8D34BC50D7C0D7BE3D2E890 /* JXPagingView-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = C3C485FF66388D1EB16387D1E50F9941 /* JXPagingView-dummy.m */; }; + ED6D55B3F974F15896B01371C7FE20F3 /* Common.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1D817B76097E8F240E24A0DC3A3FDF0D /* Common.swift */; }; + EF9B92EF4A0412D775FA55E4D1CB7A45 /* MJRefreshConfig.h in Headers */ = {isa = PBXBuildFile; fileRef = 8F17C5948EBC1D81137E55F79E79794C /* MJRefreshConfig.h */; settings = {ATTRIBUTES = (Public, ); }; }; + EFC90283F9AB43BB6FF377812BD3673F /* ConstraintPriority.swift in Sources */ = {isa = PBXBuildFile; fileRef = 66A707A1F00997A05FF4D07781452021 /* ConstraintPriority.swift */; }; + F00E48AB2D923607D9B91DC61DBDEB8F /* MJRefreshAutoGifFooter.m in Sources */ = {isa = PBXBuildFile; fileRef = 68E5845A0F056ED6F021BCF06CE7E1B2 /* MJRefreshAutoGifFooter.m */; }; + F04A9832815B9EF600EF7387C6882D3D /* DateInRegion+Math.swift in Sources */ = {isa = PBXBuildFile; fileRef = F8E1A99F23F81AD71CD4CE65BBCEBF0D /* DateInRegion+Math.swift */; }; + F060261A5C0842947977A3CAAD96566B /* Int64+TaskInfo.swift in Sources */ = {isa = PBXBuildFile; fileRef = C78904CEF7B984BB219400B0132C5750 /* Int64+TaskInfo.swift */; }; + F0AB498412A415474D6105F398614F74 /* JXSegmentedComponetGradientView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0E6F64B9633F52177A952982CD9438CD /* JXSegmentedComponetGradientView.swift */; }; + F0DF27608B184B348B3127233761F4BA /* ExtensionHelpers.swift in Sources */ = {isa = PBXBuildFile; fileRef = 20AC444F5427C3749605C0383D160FEB /* ExtensionHelpers.swift */; }; + F2E9C9068E8434E9FC9B60755A354FA8 /* MJRefreshBackNormalFooter.m in Sources */ = {isa = PBXBuildFile; fileRef = C1CA9AD43CC89D078D46C132C44AB4A4 /* MJRefreshBackNormalFooter.m */; }; + F366D04DEA0EBBCA9CA4F1F4E29695E8 /* ConstraintDSL.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1A4AEBFDF713BDED395F4612202D7871 /* ConstraintDSL.swift */; }; + F3B5353C1CDE6C2DD2E80F32D3637750 /* SessionDataTask.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7A2F1293C202DA8EED09FA536FC3026D /* SessionDataTask.swift */; }; + F3EC0ED4BED8DD2C3222C7DCAC2452D2 /* JXSegmentedTitleAttributeCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = BD8A222583C51A0B76B606A5D28C3AC9 /* JXSegmentedTitleAttributeCell.swift */; }; + F403D62A7C82B41016A4AADD34D08263 /* FileChecksumHelper.swift in Sources */ = {isa = PBXBuildFile; fileRef = AC90EB3E707F329ECED58BF078742EBA /* FileChecksumHelper.swift */; }; + F404BFA0E5F2CFF051688C90B319AC85 /* AnimatedImageView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6792A4125127E2185D9E31BE55214F0B /* AnimatedImageView.swift */; }; + F42A33C2E837A959AB86B8E9B3752ECD /* MarqueeLabel-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = 5008A7DABE33777CC0A485DD1BD55C41 /* MarqueeLabel-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; + F47587932A67D8E3820DAFD9A0E1995E /* IQPlaceholderable.swift in Sources */ = {isa = PBXBuildFile; fileRef = 58565BBC4BB002FF81582767242BFC67 /* IQPlaceholderable.swift */; }; + F4DD0AD58DDD5641BDEAEA6CF44FF0ED /* Protected.swift in Sources */ = {isa = PBXBuildFile; fileRef = D395F3F3EB1DDC68123B77CC6C8F0E0B /* Protected.swift */; }; + F69925E3D8812AAFC099940721D12AEC /* Locales.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3A9302AD87823AB239A8DE5448ED7EA8 /* Locales.swift */; }; + F6CF73614B01B233058CEDDB54309E60 /* SessionConfiguration.swift in Sources */ = {isa = PBXBuildFile; fileRef = C9D5D3B28B85FDD2F58AC6C511AFF54B /* SessionConfiguration.swift */; }; + F7E576E007A81E0EFD2E0849CB17878D /* WebSocketRequest.swift in Sources */ = {isa = PBXBuildFile; fileRef = DA67D87E3B84EB4733A22C6E50F276B4 /* WebSocketRequest.swift */; }; + F879F5C9ADEB2CF1F832CB17B276B62A /* CALayer+PKDownloadButtonAnimations.m in Sources */ = {isa = PBXBuildFile; fileRef = 1B1D8FD42382BC246408336EEE182B52 /* CALayer+PKDownloadButtonAnimations.m */; }; + F94703ED86C58DDBE5A2503D148CD040 /* ConstraintRelation.swift in Sources */ = {isa = PBXBuildFile; fileRef = 22EAD7AA2887FF42492CB6AC6700A744 /* ConstraintRelation.swift */; }; FA1E35E6DE6EC8A9E5E2B12A414E1B70 /* CFNetwork.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 8A2A128F3FAE37601751167FDC47182A /* CFNetwork.framework */; }; - FA50CBB47B030D9475376E2D6ED3FF04 /* ResumeDataHelper.swift in Sources */ = {isa = PBXBuildFile; fileRef = 92C1BE318995C75AF0E7E0D850A82AC6 /* ResumeDataHelper.swift */; }; - FB2EEA5AF5278F76CD7366B23CC66815 /* ImageView+Kingfisher.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9C97D8752B07D5E7CF2EC8C6816232B1 /* ImageView+Kingfisher.swift */; }; - FC524E181A75784881A12562BDB00CC6 /* MJRefreshAutoGifFooter.h in Headers */ = {isa = PBXBuildFile; fileRef = 6E10A3685A161AEE58149D0E9C6C80AE /* MJRefreshAutoGifFooter.h */; settings = {ATTRIBUTES = (Public, ); }; }; - FC745954D9A2704BCACCB3A03336976E /* UIScrollView+MJExtension.m in Sources */ = {isa = PBXBuildFile; fileRef = 77B9D75E24F7E6064B6A070251CD91F2 /* UIScrollView+MJExtension.m */; }; - FCE62086E1AB54A4F61EBCDBA15C1510 /* EventMonitor.swift in Sources */ = {isa = PBXBuildFile; fileRef = EF13C0A52DFD4C08141E85D5BB948997 /* EventMonitor.swift */; }; - FCEB3C1A7FCD1518AF8985822E2E14AA /* ImageProcessor.swift in Sources */ = {isa = PBXBuildFile; fileRef = 36AC1C319C4549047F2F2AA747E1AE0B /* ImageProcessor.swift */; }; - FDEB8D2D369F9FEBF8FC3D822E5C96C6 /* JXPagingMainTableView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4E32C30A6532383449FAE228D54F6477 /* JXPagingMainTableView.swift */; }; + FA50CBB47B030D9475376E2D6ED3FF04 /* ResumeDataHelper.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4FC60181C38DFC5BD6460CCD3C0E2E79 /* ResumeDataHelper.swift */; }; + FAAEE11A8980A75C0C498B73D8EEBFB8 /* PrivacyInfo.xcprivacy in Resources */ = {isa = PBXBuildFile; fileRef = F9D5768A8F3F026A26F10BBAE52783B3 /* PrivacyInfo.xcprivacy */; }; + FB2EEA5AF5278F76CD7366B23CC66815 /* ImageView+Kingfisher.swift in Sources */ = {isa = PBXBuildFile; fileRef = AA4F799B3FC61A81E6D33FEAB0B1267E /* ImageView+Kingfisher.swift */; }; + FC524E181A75784881A12562BDB00CC6 /* MJRefreshAutoGifFooter.h in Headers */ = {isa = PBXBuildFile; fileRef = A75CD4D4DC0FF7F566716FFDB363ADA2 /* MJRefreshAutoGifFooter.h */; settings = {ATTRIBUTES = (Public, ); }; }; + FC745954D9A2704BCACCB3A03336976E /* UIScrollView+MJExtension.m in Sources */ = {isa = PBXBuildFile; fileRef = 42DAEB0034C273A0993E66931DF30BA3 /* UIScrollView+MJExtension.m */; }; + FCE62086E1AB54A4F61EBCDBA15C1510 /* EventMonitor.swift in Sources */ = {isa = PBXBuildFile; fileRef = 16A00E05D0BD454FBE3C6BE4817B1CC2 /* EventMonitor.swift */; }; + FCEB3C1A7FCD1518AF8985822E2E14AA /* ImageProcessor.swift in Sources */ = {isa = PBXBuildFile; fileRef = 55A0A23CDD2D41CCEFF65E26C4A08F83 /* ImageProcessor.swift */; }; + FDEB8D2D369F9FEBF8FC3D822E5C96C6 /* JXPagingMainTableView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3B76ADE3C6D04E0B956F25B04B67B5DC /* JXPagingMainTableView.swift */; }; + FE2AC8DB019A3B729B6EA5CBBACFA61B /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = B4B8063291033C95A8B2A24FA2AD7A79 /* Foundation.framework */; }; FE8F4A5C40BA40C835CA301C92AED5E0 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = B4B8063291033C95A8B2A24FA2AD7A79 /* Foundation.framework */; }; - FEC85148AFF458241FDD707C5BA8CD40 /* TimePeriod+Support.swift in Sources */ = {isa = PBXBuildFile; fileRef = 67EEAAA4D8CC5122E9E7A878BDFA385D /* TimePeriod+Support.swift */; }; - FEDB5503231B230FDA7C7A25EAB38318 /* DateComponents+Extras.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5B4FEF35151874DEFF408DF21564915F /* DateComponents+Extras.swift */; }; + FEC85148AFF458241FDD707C5BA8CD40 /* TimePeriod+Support.swift in Sources */ = {isa = PBXBuildFile; fileRef = A4FB2F0378651B15C91908EFC5DC27CB /* TimePeriod+Support.swift */; }; + FEDB5503231B230FDA7C7A25EAB38318 /* DateComponents+Extras.swift in Sources */ = {isa = PBXBuildFile; fileRef = 49EA64A868AD5A848F2723A28A022C20 /* DateComponents+Extras.swift */; }; FF886124915FEF2A6FBB663CA621B4FC /* QuartzCore.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = C07BEF0CE5DECC5BDCAC8625BF2FFA4B /* QuartzCore.framework */; }; - FFD7E1B8FA0F3960BE24DA2D20647332 /* ConstraintRelatableTarget.swift in Sources */ = {isa = PBXBuildFile; fileRef = C2A860AD8157623726249D825FCF2497 /* ConstraintRelatableTarget.swift */; }; + FFD7E1B8FA0F3960BE24DA2D20647332 /* ConstraintRelatableTarget.swift in Sources */ = {isa = PBXBuildFile; fileRef = C56759DC72BE3E295255912D3346F86F /* ConstraintRelatableTarget.swift */; }; /* End PBXBuildFile section */ /* Begin PBXContainerItemProxy section */ - 0BA865DDFF21AB28E706C1CAF2DD5E20 /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */; - proxyType = 1; - remoteGlobalIDString = E863A9A96F52A35F47491E7B41ECEF9A; - remoteInfo = JXSegmentedView; - }; - 142AC367F48B6467B5E28446DC954898 /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */; - proxyType = 1; - remoteGlobalIDString = B26054DF1DEA11585A231AF6D1D80D5E; - remoteInfo = "MJRefresh-MJRefresh.Privacy"; - }; - 26E74EC373DC82A69C9839B208B0996D /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */; - proxyType = 1; - remoteGlobalIDString = B490E7485944099E16C9CBD79119D1D4; - remoteInfo = IQKeyboardManagerSwift; - }; - 270FE51967CD9FFA5343A46CF8D1D663 /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */; - proxyType = 1; - remoteGlobalIDString = 976126A1CE06DC6E162563800E1BDF14; - remoteInfo = "Alamofire-Alamofire"; - }; - 37E5C2EDBD3BCD1D0B44FAE1248DB31D /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */; - proxyType = 1; - remoteGlobalIDString = C4E1020AF425614337737213AA26DBD5; - remoteInfo = JXPagingView; - }; - 46F19EACDBED5E91D77415715B9AC155 /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */; - proxyType = 1; - remoteGlobalIDString = 6868056D761E163D10FDAF8CF1C4D9B8; - remoteInfo = MJRefresh; - }; - 65714318071557028A759FC551A56641 /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */; - proxyType = 1; - remoteGlobalIDString = E8022D22FAA6690B5E1C379C1BCE1491; - remoteInfo = Kingfisher; - }; - 6592B950806908EF4277AEA979157097 /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */; - proxyType = 1; - remoteGlobalIDString = 9828BBC09E9FB1238624113D7456E59E; - remoteInfo = "Kingfisher-Kingfisher"; - }; - 6B8AFF5AFB61293958BD6458D5C2FFD4 /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */; - proxyType = 1; - remoteGlobalIDString = 8A8DB685241263AFDF5E6B20FE67B93A; - remoteInfo = "SnapKit-SnapKit_Privacy"; - }; - 7CEBF3063D24E7707896B79129081954 /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */; - proxyType = 1; - remoteGlobalIDString = 19622742EBA51E823D6DAE3F8CDBFAD4; - remoteInfo = SnapKit; - }; - 8EC8A55D8F7D46FC342FC31A9B8C263D /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */; - proxyType = 1; - remoteGlobalIDString = EAAA1AD3A8A1B59AB91319EE40752C6D; - remoteInfo = Alamofire; - }; - 998B0E246B006E5E0BE840EAB7690B7D /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */; - proxyType = 1; - remoteGlobalIDString = 52F43AC38D9FF80196C69FB03AEEFDDA; - remoteInfo = "JXSegmentedView-JXSegmentedView"; - }; - A02D6F6D8DD0080715E73AFA0DC63EC9 /* PBXContainerItemProxy */ = { + 0965920B2C03B6ECDD27F9FDA68E5B2F /* PBXContainerItemProxy */ = { isa = PBXContainerItemProxy; containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */; proxyType = 1; remoteGlobalIDString = EF6413888FBA82A60EBB6F0A0EA14AD8; remoteInfo = Tiercel; }; - A7D51E115FB85338655FCBA66AFD8977 /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */; - proxyType = 1; - remoteGlobalIDString = B2B2AD5303610D8EBEA025B2660C8EC5; - remoteInfo = "JXPagingView-JXPagingView"; - }; - BBDFCD507C89C4A997B1AC5AB9DCBAD4 /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */; - proxyType = 1; - remoteGlobalIDString = 052F337D75D74480BB3BE904E7F2B1DF; - remoteInfo = "DownloadButton-DownloadButton"; - }; - CE85927BC7C9AEA59C1650D06956F0B8 /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */; - proxyType = 1; - remoteGlobalIDString = BC51A1CD10A25C78C1CF64315930A6A3; - remoteInfo = DownloadButton; - }; - D9209C2D517C37F51123C12C5FC39276 /* PBXContainerItemProxy */ = { + 0F838A1E0D21BE8314387B19F444BF72 /* PBXContainerItemProxy */ = { isa = PBXContainerItemProxy; containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */; proxyType = 1; remoteGlobalIDString = 1C8D67D8B72D6BA42CCEDB648537A340; remoteInfo = SVProgressHUD; }; - E5B4B3A190922E71852B0EA63403D03A /* PBXContainerItemProxy */ = { + 2A50980AC7BCE46CAB3FF96CB00A499C /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */; + proxyType = 1; + remoteGlobalIDString = BC51A1CD10A25C78C1CF64315930A6A3; + remoteInfo = DownloadButton; + }; + 300CCB3FCF4860082B536BE1B1B5EB4B /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */; + proxyType = 1; + remoteGlobalIDString = 6868056D761E163D10FDAF8CF1C4D9B8; + remoteInfo = MJRefresh; + }; + 340587A3C7500EF1FD4EEBA748512D6E /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */; + proxyType = 1; + remoteGlobalIDString = E863A9A96F52A35F47491E7B41ECEF9A; + remoteInfo = JXSegmentedView; + }; + 49F820E5EA81257683ABAF4F50AAECF6 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */; + proxyType = 1; + remoteGlobalIDString = E8022D22FAA6690B5E1C379C1BCE1491; + remoteInfo = Kingfisher; + }; + 4D9FA995ECE7665E4722E5DB04208A8C /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */; + proxyType = 1; + remoteGlobalIDString = 9828BBC09E9FB1238624113D7456E59E; + remoteInfo = "Kingfisher-Kingfisher"; + }; + 4F3760765A5A980CDAF0CBEED94EED25 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */; + proxyType = 1; + remoteGlobalIDString = B2B2AD5303610D8EBEA025B2660C8EC5; + remoteInfo = "JXPagingView-JXPagingView"; + }; + 5795E672243C657EE42B3638D13129EE /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */; + proxyType = 1; + remoteGlobalIDString = B26054DF1DEA11585A231AF6D1D80D5E; + remoteInfo = "MJRefresh-MJRefresh.Privacy"; + }; + 5E95CF5C48D02289517615D76E1EEE75 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */; + proxyType = 1; + remoteGlobalIDString = CBFB5A372F4DE9D4BC6B9ADA98B80BFE; + remoteInfo = "MarqueeLabel-MarqueeLabel"; + }; + 62E0C83F2175CECA1D1FE1633CBC6AAA /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */; + proxyType = 1; + remoteGlobalIDString = C23DB88E45B0ED14F0C8827BE9C46C95; + remoteInfo = MarqueeLabel; + }; + 717D58C54671A62B4B9DE36E792C6C8D /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */; + proxyType = 1; + remoteGlobalIDString = 19622742EBA51E823D6DAE3F8CDBFAD4; + remoteInfo = SnapKit; + }; + A1359F993BF5F20C458649872D2DBC3F /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */; + proxyType = 1; + remoteGlobalIDString = 52F43AC38D9FF80196C69FB03AEEFDDA; + remoteInfo = "JXSegmentedView-JXSegmentedView"; + }; + A5A501CBC2F25A6B0ED93EF910540274 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */; + proxyType = 1; + remoteGlobalIDString = EAAA1AD3A8A1B59AB91319EE40752C6D; + remoteInfo = Alamofire; + }; + B73062B890FCA36EBDC3A7EA7196A939 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */; + proxyType = 1; + remoteGlobalIDString = 052F337D75D74480BB3BE904E7F2B1DF; + remoteInfo = "DownloadButton-DownloadButton"; + }; + E1D1E2392B71F4431C0DF26B1F0B8355 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */; + proxyType = 1; + remoteGlobalIDString = B490E7485944099E16C9CBD79119D1D4; + remoteInfo = IQKeyboardManagerSwift; + }; + EA3CE36C556CAE127D1BEB5F119B0387 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */; + proxyType = 1; + remoteGlobalIDString = 8A8DB685241263AFDF5E6B20FE67B93A; + remoteInfo = "SnapKit-SnapKit_Privacy"; + }; + EABE74D428D2DC73C6A037A30FA6E9E3 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */; + proxyType = 1; + remoteGlobalIDString = C4E1020AF425614337737213AA26DBD5; + remoteInfo = JXPagingView; + }; + F757A1EC10AB8AE304EDF4E391BBD01D /* PBXContainerItemProxy */ = { isa = PBXContainerItemProxy; containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */; proxyType = 1; remoteGlobalIDString = 6038CE6006EFBE9D905454CF01909C42; remoteInfo = SwiftDate; }; + FFA5052469D64C22F8D1AEBCD2D55C17 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */; + proxyType = 1; + remoteGlobalIDString = 976126A1CE06DC6E162563800E1BDF14; + remoteInfo = "Alamofire-Alamofire"; + }; /* End PBXContainerItemProxy section */ /* Begin PBXFileReference section */ - 0098DF8EC116CB747F0A250EEFE46277 /* RequestCompression.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = RequestCompression.swift; path = Source/Features/RequestCompression.swift; sourceTree = ""; }; - 00B3B84CAF8ED73E095C919FA5C8FC89 /* UIButton+PKDownloadButton.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "UIButton+PKDownloadButton.m"; path = "Pod/Classes/UIButton+PKDownloadButton.m"; sourceTree = ""; }; - 011583C69E3EDF78E003045AE1B9C73C /* SwiftDate.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.module; path = SwiftDate.modulemap; sourceTree = ""; }; - 01158741151664C9DF8D6AEACDA30158 /* Alamofire-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "Alamofire-umbrella.h"; sourceTree = ""; }; - 01CF505FB97345FF724294092F0C5058 /* TimePeriodProtocol.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = TimePeriodProtocol.swift; path = Sources/SwiftDate/TimePeriod/TimePeriodProtocol.swift; sourceTree = ""; }; - 01D1DD96A7064A2F1F151EB984101B42 /* KFImageRenderer.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = KFImageRenderer.swift; path = Sources/SwiftUI/KFImageRenderer.swift; sourceTree = ""; }; - 0312AB47DD6E41FB3B71BEC1C6414D7F /* JXSegmentedIndicatorBaseView.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = JXSegmentedIndicatorBaseView.swift; path = Sources/Indicator/JXSegmentedIndicatorBaseView.swift; sourceTree = ""; }; - 0328F3AA7B25B4CE0C3E8A068E58181A /* PKCircleProgressView.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = PKCircleProgressView.h; path = Pod/Classes/PKCircleProgressView.h; sourceTree = ""; }; - 0399B88BB7703B5750208873531B6CFD /* URLEncodedFormEncoder.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = URLEncodedFormEncoder.swift; path = Source/Features/URLEncodedFormEncoder.swift; sourceTree = ""; }; + 003E0189738A9240CB460BA31D90274C /* ConstraintConstantTarget.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ConstraintConstantTarget.swift; path = Sources/ConstraintConstantTarget.swift; sourceTree = ""; }; + 00809342163D914F7313B357D343777A /* ImageBinder.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ImageBinder.swift; path = Sources/SwiftUI/ImageBinder.swift; sourceTree = ""; }; + 0085AF2C56752715FC005A6762AE8307 /* Notifications.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Notifications.swift; path = Source/Core/Notifications.swift; sourceTree = ""; }; + 0131C8FEF300D7E0DCB43F23E7C66B1F /* GIFAnimatedImage.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = GIFAnimatedImage.swift; path = Sources/Image/GIFAnimatedImage.swift; sourceTree = ""; }; + 0175C3BDDE4AF2390BE74E4410720475 /* NSButton+Kingfisher.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "NSButton+Kingfisher.swift"; path = "Sources/Extensions/NSButton+Kingfisher.swift"; sourceTree = ""; }; + 01CFEA1169540CE8BA1331ACE15B00A8 /* String+Hash.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "String+Hash.swift"; path = "Sources/Extensions/String+Hash.swift"; sourceTree = ""; }; + 039652F74DE37B5B89EC981B2BAB2CC2 /* Kingfisher.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = Kingfisher.debug.xcconfig; sourceTree = ""; }; 03F0C9EED97F4680E4D4278FA23670C7 /* Pods-relax.offline.mp3.music-acknowledgements.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "Pods-relax.offline.mp3.music-acknowledgements.plist"; sourceTree = ""; }; - 0406807613B48C37AFBFD8A5566CECF7 /* MJRefreshNormalHeader.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = MJRefreshNormalHeader.m; path = MJRefresh/Custom/Header/MJRefreshNormalHeader.m; sourceTree = ""; }; - 04299820AD649702024B0237353A46DD /* ConstraintLayoutSupportDSL.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ConstraintLayoutSupportDSL.swift; path = Sources/ConstraintLayoutSupportDSL.swift; sourceTree = ""; }; - 043335998E7E91696B859F4CCD9606FC /* HTTPMethod.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = HTTPMethod.swift; path = Source/Core/HTTPMethod.swift; sourceTree = ""; }; - 046C6E5A5FF35C350B0158DEE3E40F28 /* ConstraintView.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ConstraintView.swift; path = Sources/ConstraintView.swift; sourceTree = ""; }; - 05D53E6FE979C0A1784D61AE876E30EB /* Formatter+Protocols.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "Formatter+Protocols.swift"; path = "Sources/SwiftDate/Formatters/Formatter+Protocols.swift"; sourceTree = ""; }; - 05F1C2B1DEF9E95836BF3AC986652086 /* JXPagingView-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "JXPagingView-umbrella.h"; sourceTree = ""; }; - 063E759192F5CD877BCE4EB80712E5A9 /* Executer.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Executer.swift; path = Sources/General/Executer.swift; sourceTree = ""; }; - 0753975CECF9BBF7A60B065338B2C8EA /* SnapKit.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = SnapKit.debug.xcconfig; sourceTree = ""; }; + 06A55350BF66D9CE17E086D6174A2A51 /* IQTextView.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = IQTextView.swift; path = IQKeyboardManagerSwift/IQTextView/IQTextView.swift; sourceTree = ""; }; + 0767EB67AF8AB44D30657126FC473E60 /* IQUITextFieldView+Additions.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "IQUITextFieldView+Additions.swift"; path = "IQKeyboardManagerSwift/Categories/IQUITextFieldView+Additions.swift"; sourceTree = ""; }; 07928762D9A8551470DAAD7C1E1F53A5 /* JXSegmentedView */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; name = JXSegmentedView; path = JXSegmentedView.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + 07BEA997FD9DBCEECF9DDD4849E2427B /* Protected.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Protected.swift; path = Sources/General/Protected.swift; sourceTree = ""; }; + 07E8C7FB8E7C661BECCBC076BEFF05C9 /* MJRefresh-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "MJRefresh-prefix.pch"; sourceTree = ""; }; 085DBCE7DD98588B2ED103B1C1F36026 /* Alamofire-Alamofire */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; name = "Alamofire-Alamofire"; path = Alamofire.bundle; sourceTree = BUILT_PRODUCTS_DIR; }; - 08BBB8B38E7B8EFDCD9CF588E8C0F210 /* Double+TaskInfo.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "Double+TaskInfo.swift"; path = "Sources/Extensions/Double+TaskInfo.swift"; sourceTree = ""; }; 09CDA94CB3BF2E37AFD7A0FC04B56A35 /* Pods-relax.offline.mp3.music-acknowledgements.markdown */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text; path = "Pods-relax.offline.mp3.music-acknowledgements.markdown"; sourceTree = ""; }; - 09D77A764D82971CF4ED47842C9A4B6C /* JXPagingView-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "JXPagingView-dummy.m"; sourceTree = ""; }; - 0A44021BFDB893E44EAA9D5FDA7A3FF9 /* ConstraintConstantTarget.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ConstraintConstantTarget.swift; path = Sources/ConstraintConstantTarget.swift; sourceTree = ""; }; - 0A7DE7F4DC02387DEB4909EE6551BEBC /* SwiftDate-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "SwiftDate-umbrella.h"; sourceTree = ""; }; - 0AC7D94E21920BD7C7205B597F701736 /* JXSegmentedIndicatorGradientLineView.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = JXSegmentedIndicatorGradientLineView.swift; path = Sources/Indicator/JXSegmentedIndicatorGradientLineView.swift; sourceTree = ""; }; - 0B5110745B15FEEFB97E52A7E9A6E9C2 /* UIImage+PKDownloadButton.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "UIImage+PKDownloadButton.m"; path = "Pod/Classes/UIImage+PKDownloadButton.m"; sourceTree = ""; }; + 0A585AAA4ABFEE88AF9EA38DA8480A4E /* AssociatedValues.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = AssociatedValues.swift; path = Sources/SwiftDate/Supports/AssociatedValues.swift; sourceTree = ""; }; + 0A64F5F92A75933EA79178722B51ABD8 /* CacheSerializer.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = CacheSerializer.swift; path = Sources/Cache/CacheSerializer.swift; sourceTree = ""; }; + 0A679FA4BEEED4176374BC386B15E12B /* Session.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Session.swift; path = Source/Core/Session.swift; sourceTree = ""; }; 0B834912E389FFAE58A478F718D86C19 /* Pods-relax.offline.mp3.music.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-relax.offline.mp3.music.release.xcconfig"; sourceTree = ""; }; - 0C6EB3AFA655F18ACE9DB8543E1CEB99 /* TiercelError.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = TiercelError.swift; path = Sources/General/TiercelError.swift; sourceTree = ""; }; - 0CF57EB0CB57726D4D40CAAE90CD936E /* TimePeriodChain.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = TimePeriodChain.swift; path = Sources/SwiftDate/TimePeriod/Groups/TimePeriodChain.swift; sourceTree = ""; }; - 0D0CA27E114E88A941900703AA694F2F /* ConstraintInsetTarget.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ConstraintInsetTarget.swift; path = Sources/ConstraintInsetTarget.swift; sourceTree = ""; }; - 0EBC40BA74A88B62E74BAB63898E1F21 /* JXSegmentedNumberCell.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = JXSegmentedNumberCell.swift; path = Sources/Number/JXSegmentedNumberCell.swift; sourceTree = ""; }; - 0ED9A4576DB28DAC731E05D9B295B722 /* IQKeyboardManager+Internal.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "IQKeyboardManager+Internal.swift"; path = "IQKeyboardManagerSwift/IQKeyboardManager+Internal.swift"; sourceTree = ""; }; - 0F4D08727A4683802BEEB2F3662DEB2B /* MJRefreshAutoStateFooter.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = MJRefreshAutoStateFooter.m; path = MJRefresh/Custom/Footer/Auto/MJRefreshAutoStateFooter.m; sourceTree = ""; }; + 0BBE9EF043CCF5A5419ECFEB06C690C1 /* MJRefreshHeader.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = MJRefreshHeader.m; path = MJRefresh/Base/MJRefreshHeader.m; sourceTree = ""; }; + 0BD6E357D41791AA4FB7890AED14C527 /* ConstraintLayoutSupportDSL.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ConstraintLayoutSupportDSL.swift; path = Sources/ConstraintLayoutSupportDSL.swift; sourceTree = ""; }; + 0C3119926A431E2B17B538C93E17A852 /* UIScrollView+MJRefresh.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "UIScrollView+MJRefresh.m"; path = "MJRefresh/UIScrollView+MJRefresh.m"; sourceTree = ""; }; + 0C57FE4092186DA3BF03087A3DDC928C /* PrivacyInfo.xcprivacy */ = {isa = PBXFileReference; includeInIndex = 1; name = PrivacyInfo.xcprivacy; path = MJRefresh/PrivacyInfo.xcprivacy; sourceTree = ""; }; + 0D4E696F75CA79EF5DB1493DBFBD4E73 /* UIButton+PKDownloadButton.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "UIButton+PKDownloadButton.h"; path = "Pod/Classes/UIButton+PKDownloadButton.h"; sourceTree = ""; }; + 0DA082E3A75E13CD0C8795CB3957F572 /* JXSegmentedTitleOrImageCell.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = JXSegmentedTitleOrImageCell.swift; path = Sources/TitleOrImage/JXSegmentedTitleOrImageCell.swift; sourceTree = ""; }; + 0DFF1834A88DF9FB33D90BDD9AA81691 /* JXSegmentedTitleItemModel.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = JXSegmentedTitleItemModel.swift; path = Sources/Title/JXSegmentedTitleItemModel.swift; sourceTree = ""; }; + 0E6F64B9633F52177A952982CD9438CD /* JXSegmentedComponetGradientView.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = JXSegmentedComponetGradientView.swift; path = Sources/Indicator/JXSegmentedComponetGradientView.swift; sourceTree = ""; }; + 0EBDD43A7B38065D789EAEA7E3A99DC6 /* Source.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Source.swift; path = Sources/General/ImageSource/Source.swift; sourceTree = ""; }; + 0ED55223068A73568B36FF08EFCF9EAF /* TimeInterval+Formatter.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "TimeInterval+Formatter.swift"; path = "Sources/SwiftDate/Foundation+Extras/TimeInterval+Formatter.swift"; sourceTree = ""; }; + 0F8AF943C90C2F212A2E7474570424EE /* RequestCompression.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = RequestCompression.swift; path = Source/Features/RequestCompression.swift; sourceTree = ""; }; + 10833C90D303AA34D096538644A80BF9 /* DataStreamRequest.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = DataStreamRequest.swift; path = Source/Core/DataStreamRequest.swift; sourceTree = ""; }; + 109F4B31BBCDDD9360293F5C663FC4FB /* UIImage+PKDownloadButton.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "UIImage+PKDownloadButton.m"; path = "Pod/Classes/UIImage+PKDownloadButton.m"; sourceTree = ""; }; + 117201D42D64EEBD54A9824C19353C82 /* MJRefreshConst.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = MJRefreshConst.h; path = MJRefresh/MJRefreshConst.h; sourceTree = ""; }; 1199E580C5F19AFD1010FE20258DADBD /* UIKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = UIKit.framework; path = Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS14.0.sdk/System/Library/Frameworks/UIKit.framework; sourceTree = DEVELOPER_DIR; }; - 11C932A77CC9EF5471A84D4627873A6F /* Tiercel.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.module; path = Tiercel.modulemap; sourceTree = ""; }; - 11F394350D054B8CFF566BD784D1453A /* URLConvertible.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = URLConvertible.swift; path = Sources/General/URLConvertible.swift; sourceTree = ""; }; 11F50E60BCEC8BA9DF3836EAFBABE24A /* Pods-relax.offline.mp3.music-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "Pods-relax.offline.mp3.music-umbrella.h"; sourceTree = ""; }; - 1211C094C5D9D37494ED83147A1E37FD /* ISOParser.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ISOParser.swift; path = Sources/SwiftDate/Formatters/ISOParser.swift; sourceTree = ""; }; - 123ABCB9EF5852B06D5E32C8D4EB9E6C /* Runtime.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Runtime.swift; path = Sources/Utility/Runtime.swift; sourceTree = ""; }; - 135936C0D9ADAC1FE180DF903BE733D2 /* JXSegmentedIndicatorImageView.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = JXSegmentedIndicatorImageView.swift; path = Sources/Indicator/JXSegmentedIndicatorImageView.swift; sourceTree = ""; }; - 148B5CBC5E6471CA45F7B87E0D5D7A1F /* JXSegmentedView-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "JXSegmentedView-dummy.m"; sourceTree = ""; }; - 14D68A465BCDB85C5F5F10836C1E7E15 /* SVProgressHUD.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SVProgressHUD.h; path = SVProgressHUD/SVProgressHUD.h; sourceTree = ""; }; - 14F4F939E553EA59CBD6A7CCFE434AD3 /* Indicator.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Indicator.swift; path = Sources/Views/Indicator.swift; sourceTree = ""; }; - 153A710FE69516F61C85510B6BD74E4B /* SwiftDate-Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "SwiftDate-Info.plist"; sourceTree = ""; }; - 158C7BFA1B82120B554D6548EB9F3715 /* SwiftDate.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = SwiftDate.debug.xcconfig; sourceTree = ""; }; - 159E2A4DAA8F5B4713B65544D40E96E2 /* SwiftDate.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = SwiftDate.release.xcconfig; sourceTree = ""; }; - 15C91724B4E04DC823EA8635B9991F84 /* HTTPHeaders.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = HTTPHeaders.swift; path = Source/Core/HTTPHeaders.swift; sourceTree = ""; }; - 163E780819CFF7B3FE94AF595E36150E /* SessionConfiguration.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = SessionConfiguration.swift; path = Sources/General/SessionConfiguration.swift; sourceTree = ""; }; - 1683E97F9AE54BB1747EE29AC29C6C10 /* ConstraintOffsetTarget.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ConstraintOffsetTarget.swift; path = Sources/ConstraintOffsetTarget.swift; sourceTree = ""; }; - 16BB28FA8B7896E7AF0AC7FC937F19A7 /* IQUIScrollView+Additions.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "IQUIScrollView+Additions.swift"; path = "IQKeyboardManagerSwift/Categories/IQUIScrollView+Additions.swift"; sourceTree = ""; }; - 178ABE62AD082DF4E86BB4E2283BE7E5 /* Debugging.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Debugging.swift; path = Sources/Debugging.swift; sourceTree = ""; }; - 1840F8AE4A9DAF86A9713F0D3A7751F4 /* KFImageProtocol.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = KFImageProtocol.swift; path = Sources/SwiftUI/KFImageProtocol.swift; sourceTree = ""; }; - 1985F05564401FD34CF08871E1AC0475 /* MJRefreshGifHeader.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = MJRefreshGifHeader.h; path = MJRefresh/Custom/Header/MJRefreshGifHeader.h; sourceTree = ""; }; - 1A0D92ED5164D726538A59D7F3BE7FE1 /* SVProgressHUD.bundle */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = "wrapper.plug-in"; name = SVProgressHUD.bundle; path = SVProgressHUD/SVProgressHUD.bundle; sourceTree = ""; }; - 1AB4CFF133FB22B15A4544D29B88BB01 /* JXSegmentedDotDataSource.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = JXSegmentedDotDataSource.swift; path = Sources/Dot/JXSegmentedDotDataSource.swift; sourceTree = ""; }; - 1ADFC6377B35790CE5A8D12BC8BF374A /* Tiercel.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = Tiercel.release.xcconfig; sourceTree = ""; }; - 1D71C664DD3E66AD2C967CB2CBE873AE /* URLSession+ResumeData.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "URLSession+ResumeData.swift"; path = "Sources/Extensions/URLSession+ResumeData.swift"; sourceTree = ""; }; - 1E24B480E3F5D88DE5613CA25EFEE58B /* ResourceBundle-Alamofire-Alamofire-Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "ResourceBundle-Alamofire-Alamofire-Info.plist"; sourceTree = ""; }; - 1E45471EC7A619F828593BD726ED5426 /* Tiercel-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "Tiercel-prefix.pch"; sourceTree = ""; }; - 1E6570A71224F7DABBFE472D8370347F /* Alamofire.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Alamofire.swift; path = Source/Alamofire.swift; sourceTree = ""; }; - 1F6825F0A2F7B30C077245FB5E5692F2 /* JXSegmentedBaseDataSource.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = JXSegmentedBaseDataSource.swift; path = Sources/Core/JXSegmentedBaseDataSource.swift; sourceTree = ""; }; - 1FF2ECC0F78DECBDD03D5BC8674B5D91 /* Calendars.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Calendars.swift; path = Sources/SwiftDate/Supports/Calendars.swift; sourceTree = ""; }; - 203889A6D004FA63E5B60B05C420B983 /* TimePeriod.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = TimePeriod.swift; path = Sources/SwiftDate/TimePeriod/TimePeriod.swift; sourceTree = ""; }; - 204288E27AE87499D959FE982CA4A588 /* JXSegmentedTitleOrImageItemModel.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = JXSegmentedTitleOrImageItemModel.swift; path = Sources/TitleOrImage/JXSegmentedTitleOrImageItemModel.swift; sourceTree = ""; }; - 214FAB9C40ED9237DD5FF6D0388B6D81 /* TimeInterval+Formatter.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "TimeInterval+Formatter.swift"; path = "Sources/SwiftDate/Foundation+Extras/TimeInterval+Formatter.swift"; sourceTree = ""; }; - 219212DECF63C705E7EF8E6D103F7190 /* AuthenticationChallengeResponsable.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = AuthenticationChallengeResponsable.swift; path = Sources/Networking/AuthenticationChallengeResponsable.swift; sourceTree = ""; }; - 21F837F2050BCDC7CB46A7661A696F07 /* ConstraintDirectionalInsets.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ConstraintDirectionalInsets.swift; path = Sources/ConstraintDirectionalInsets.swift; sourceTree = ""; }; - 22411E71D813DD7A4537E85BAC6A125A /* Cache.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Cache.swift; path = Sources/General/Cache.swift; sourceTree = ""; }; - 22A5D84D88971E9475E1EC8AA9036D9D /* ConstraintAttributes.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ConstraintAttributes.swift; path = Sources/ConstraintAttributes.swift; sourceTree = ""; }; - 22F9853435E731084D0A51B315E04D8F /* Validation.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Validation.swift; path = Source/Features/Validation.swift; sourceTree = ""; }; - 2321C03D8076FF5C1197BA30FB637105 /* Date+Compare.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "Date+Compare.swift"; path = "Sources/SwiftDate/Date/Date+Compare.swift"; sourceTree = ""; }; - 2348BF8015FB0D82FB1B5448C9475F6B /* SVProgressAnimatedView.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SVProgressAnimatedView.m; path = SVProgressHUD/SVProgressAnimatedView.m; sourceTree = ""; }; - 23D68C3912AFBECB8F09E5EE0C41D596 /* MJRefresh.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.module; path = MJRefresh.modulemap; sourceTree = ""; }; - 23DE5A547FC5127A25009E99AD6C3EB6 /* SessionDataTask.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = SessionDataTask.swift; path = Sources/Networking/SessionDataTask.swift; sourceTree = ""; }; - 242E31512B529C3DABB2ECBF9687B9A7 /* CALayer+PKDownloadButtonAnimations.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "CALayer+PKDownloadButtonAnimations.m"; path = "Pod/Classes/CALayer+PKDownloadButtonAnimations.m"; sourceTree = ""; }; - 27D1E42712A93EE01B8A91DCEC710EAC /* ImageTransition.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ImageTransition.swift; path = Sources/Image/ImageTransition.swift; sourceTree = ""; }; - 27E637850C77BC6A026E851E20E42D8D /* SVProgressHUD-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "SVProgressHUD-umbrella.h"; sourceTree = ""; }; - 27F5B23D017DA45A994D3CAB2EC19776 /* MJRefresh.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = MJRefresh.h; path = MJRefresh/MJRefresh.h; sourceTree = ""; }; - 28EC603025181C76A66BAE90715D908C /* Protected.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Protected.swift; path = Sources/General/Protected.swift; sourceTree = ""; }; - 29B60A91EEC97F2653D0DD4FBBA9726B /* ResourceBundle-SnapKit_Privacy-SnapKit-Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "ResourceBundle-SnapKit_Privacy-SnapKit-Info.plist"; sourceTree = ""; }; - 2D4BF92463A6226AB1E7AC8D7C90D3AF /* MJRefreshBackGifFooter.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = MJRefreshBackGifFooter.h; path = MJRefresh/Custom/Footer/Back/MJRefreshBackGifFooter.h; sourceTree = ""; }; - 2DB07D33D8DA41364ED7B1B6284C443B /* RequestTaskMap.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = RequestTaskMap.swift; path = Source/Core/RequestTaskMap.swift; sourceTree = ""; }; + 13A6A7404AEFB590D7FBE61826442632 /* MJRefreshBackGifFooter.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = MJRefreshBackGifFooter.h; path = MJRefresh/Custom/Footer/Back/MJRefreshBackGifFooter.h; sourceTree = ""; }; + 1449C5993FC9FD9E4C34B82F3C5CB814 /* UICollectionViewLayout+MJRefresh.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "UICollectionViewLayout+MJRefresh.m"; path = "MJRefresh/UICollectionViewLayout+MJRefresh.m"; sourceTree = ""; }; + 14B1A3F3039D6C5E815E246D2738947D /* Date+Components.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "Date+Components.swift"; path = "Sources/SwiftDate/Date/Date+Components.swift"; sourceTree = ""; }; + 15069099C57BDA36E80037EF11AE010D /* Kingfisher.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Kingfisher.swift; path = Sources/General/Kingfisher.swift; sourceTree = ""; }; + 151EDB1C5044CF30A4CB9D9D05FC7B87 /* MarqueeLabel.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = MarqueeLabel.release.xcconfig; sourceTree = ""; }; + 15312F9E030D2895F28379E5E7AC2F61 /* IQKeyboardManager+UIKeyboardNotification.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "IQKeyboardManager+UIKeyboardNotification.swift"; path = "IQKeyboardManagerSwift/IQKeyboardManager+UIKeyboardNotification.swift"; sourceTree = ""; }; + 1576C1A75CD83CC0126786D2F38A300E /* SessionDelegate.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = SessionDelegate.swift; path = Source/Core/SessionDelegate.swift; sourceTree = ""; }; + 160D754EC35823FF85A34B79E72C40F1 /* UIScrollView+MJExtension.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "UIScrollView+MJExtension.h"; path = "MJRefresh/UIScrollView+MJExtension.h"; sourceTree = ""; }; + 1615CF451757A9DDFB934B03559641D4 /* PKStopDownloadButton.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = PKStopDownloadButton.m; path = Pod/Classes/PKStopDownloadButton.m; sourceTree = ""; }; + 1617A3777D8D48603550A764643637E8 /* HTTPMethod.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = HTTPMethod.swift; path = Source/Core/HTTPMethod.swift; sourceTree = ""; }; + 1676881842A119CAFB75D031A09B9F8A /* IQKeyboardManager+OrientationNotification.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "IQKeyboardManager+OrientationNotification.swift"; path = "IQKeyboardManagerSwift/IQKeyboardManager+OrientationNotification.swift"; sourceTree = ""; }; + 16A00E05D0BD454FBE3C6BE4817B1CC2 /* EventMonitor.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = EventMonitor.swift; path = Source/Features/EventMonitor.swift; sourceTree = ""; }; + 1745505B9FA5A35E72BC0FBEC9669138 /* CALayer+PKDownloadButtonAnimations.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "CALayer+PKDownloadButtonAnimations.h"; path = "Pod/Classes/CALayer+PKDownloadButtonAnimations.h"; sourceTree = ""; }; + 1770F6E73FCAE86AC7722A319B012606 /* DownloadRequest.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = DownloadRequest.swift; path = Source/Core/DownloadRequest.swift; sourceTree = ""; }; + 187C3048087F7F1D41E679EFC368D94B /* Runtime.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Runtime.swift; path = Sources/Utility/Runtime.swift; sourceTree = ""; }; + 18A583CCFD6D1DBEB9CCF90CFBD1BC6A /* UIColor+PKDownloadButton.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "UIColor+PKDownloadButton.h"; path = "Pod/Classes/UIColor+PKDownloadButton.h"; sourceTree = ""; }; + 19356736BF8163AB50220623743701DC /* SnapKit-Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "SnapKit-Info.plist"; sourceTree = ""; }; + 1980AB08B7A9EEC85770C1233B343099 /* RetryStrategy.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = RetryStrategy.swift; path = Sources/Networking/RetryStrategy.swift; sourceTree = ""; }; + 19C4B336344ECAEDD6712562E4049762 /* MJRefreshNormalTrailer.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = MJRefreshNormalTrailer.m; path = MJRefresh/Custom/Trailer/MJRefreshNormalTrailer.m; sourceTree = ""; }; + 1A4AEBFDF713BDED395F4612202D7871 /* ConstraintDSL.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ConstraintDSL.swift; path = Sources/ConstraintDSL.swift; sourceTree = ""; }; + 1A7EDE82DCCDCDE3D2E8D7244ED9788E /* MJRefreshFooter.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = MJRefreshFooter.h; path = MJRefresh/Base/MJRefreshFooter.h; sourceTree = ""; }; + 1B1D8FD42382BC246408336EEE182B52 /* CALayer+PKDownloadButtonAnimations.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "CALayer+PKDownloadButtonAnimations.m"; path = "Pod/Classes/CALayer+PKDownloadButtonAnimations.m"; sourceTree = ""; }; + 1B5D2F0523E192F1C435C1D98E1484DC /* JXSegmentedView.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.module; path = JXSegmentedView.modulemap; sourceTree = ""; }; + 1BD0AAB38CA9722D37F600FF34CC07B9 /* SwiftDate.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = SwiftDate.swift; path = Sources/SwiftDate/SwiftDate.swift; sourceTree = ""; }; + 1CDC49949B6AE24CE48C5C0261DA3A8B /* ServerTrustEvaluation.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ServerTrustEvaluation.swift; path = Source/Features/ServerTrustEvaluation.swift; sourceTree = ""; }; + 1D817B76097E8F240E24A0DC3A3FDF0D /* Common.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Common.swift; path = Sources/General/Common.swift; sourceTree = ""; }; + 1D9415D9D582CA7A0D82036D18FAA265 /* Constraint.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Constraint.swift; path = Sources/Constraint.swift; sourceTree = ""; }; + 1DB0A9A327903E1073962BAAED8DA960 /* PKStopDownloadButton.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = PKStopDownloadButton.h; path = Pod/Classes/PKStopDownloadButton.h; sourceTree = ""; }; + 1E0C9D5FFE7B4EBECE637ACE8C31A3E8 /* RequestModifier.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = RequestModifier.swift; path = Sources/Networking/RequestModifier.swift; sourceTree = ""; }; + 1E3D9A705DD4B8E1CB63DF9084EAC9FF /* JXSegmentedIndicatorDoubleLineView.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = JXSegmentedIndicatorDoubleLineView.swift; path = Sources/Indicator/JXSegmentedIndicatorDoubleLineView.swift; sourceTree = ""; }; + 1E5AFB42EE6B29720DA3E27B5455357A /* JXSegmentedTitleDataSource.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = JXSegmentedTitleDataSource.swift; path = Sources/Title/JXSegmentedTitleDataSource.swift; sourceTree = ""; }; + 1F06F0BFC065D8251E7724344E40E245 /* IQKeyboardManagerSwift-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "IQKeyboardManagerSwift-dummy.m"; sourceTree = ""; }; + 1F365A87A2F56AA21E9F9300604BF5AC /* PKDownloadButton.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = PKDownloadButton.m; path = Pod/Classes/PKDownloadButton.m; sourceTree = ""; }; + 1F56CF64E0AA628156FD417070CA92E2 /* SVRadialGradientLayer.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SVRadialGradientLayer.m; path = SVProgressHUD/SVRadialGradientLayer.m; sourceTree = ""; }; + 1F83353ECC4B459BF4234E1164289644 /* SVProgressHUD.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SVProgressHUD.h; path = SVProgressHUD/SVProgressHUD.h; sourceTree = ""; }; + 2035235CBB8446F3D2B5C3DF03DB596F /* JXSegmentedDotItemModel.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = JXSegmentedDotItemModel.swift; path = Sources/Dot/JXSegmentedDotItemModel.swift; sourceTree = ""; }; + 203DBA9560500D53E8DDCED4335E7CFE /* RequestTaskMap.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = RequestTaskMap.swift; path = Source/Core/RequestTaskMap.swift; sourceTree = ""; }; + 208D6F9BA69B30FB0264D0CE23153F7E /* UIButton+Kingfisher.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "UIButton+Kingfisher.swift"; path = "Sources/Extensions/UIButton+Kingfisher.swift"; sourceTree = ""; }; + 20AC444F5427C3749605C0383D160FEB /* ExtensionHelpers.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ExtensionHelpers.swift; path = Sources/Utility/ExtensionHelpers.swift; sourceTree = ""; }; + 2116DD2B393A810DC0A155E69BB8F7BB /* ParameterEncoding.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ParameterEncoding.swift; path = Source/Core/ParameterEncoding.swift; sourceTree = ""; }; + 2122C6EBB21D40091E4A7024A3A84553 /* DownloadTask.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = DownloadTask.swift; path = Sources/General/DownloadTask.swift; sourceTree = ""; }; + 2128D882568DC494E8F1150547E3A4DB /* DataRequest.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = DataRequest.swift; path = Source/Core/DataRequest.swift; sourceTree = ""; }; + 21518245391611F2B49EF91E63B4083E /* MJRefreshTrailer.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = MJRefreshTrailer.m; path = MJRefresh/Base/MJRefreshTrailer.m; sourceTree = ""; }; + 215886B2A76F059FE5D4A687D74535C3 /* Response.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Response.swift; path = Source/Core/Response.swift; sourceTree = ""; }; + 21CB16C0EE3EC122700610CC88559E66 /* PrivacyInfo.xcprivacy */ = {isa = PBXFileReference; includeInIndex = 1; name = PrivacyInfo.xcprivacy; path = Sources/PrivacyInfo.xcprivacy; sourceTree = ""; }; + 22E5D234C7281D45564E2715E0F37C73 /* MJRefresh.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = MJRefresh.debug.xcconfig; sourceTree = ""; }; + 22EAD7AA2887FF42492CB6AC6700A744 /* ConstraintRelation.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ConstraintRelation.swift; path = Sources/ConstraintRelation.swift; sourceTree = ""; }; + 23225B4E8514DBFF46A9F508E8CB19A4 /* JXSegmentedCollectionView.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = JXSegmentedCollectionView.swift; path = Sources/Core/JXSegmentedCollectionView.swift; sourceTree = ""; }; + 238B7566326A9971E1086B295C5ABFCB /* Array+Safe.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "Array+Safe.swift"; path = "Sources/Extensions/Array+Safe.swift"; sourceTree = ""; }; + 23941654FE33A23CA7BF75F0C95BA24B /* IQPreviousNextView.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = IQPreviousNextView.swift; path = IQKeyboardManagerSwift/IQToolbar/IQPreviousNextView.swift; sourceTree = ""; }; + 242C09118E5EDE159E70808EBDDA00E9 /* Tiercel-Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "Tiercel-Info.plist"; sourceTree = ""; }; + 2605453BAB1B4DD45080E1A38785226E /* MarqueeLabel.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.module; path = MarqueeLabel.modulemap; sourceTree = ""; }; + 26A8543F8061C4A8532F17AB9763A423 /* KingfisherOptionsInfo.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = KingfisherOptionsInfo.swift; path = Sources/General/KingfisherOptionsInfo.swift; sourceTree = ""; }; + 26D8FAAD7E324D1696484B36A27617E1 /* Concurrency.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Concurrency.swift; path = Source/Features/Concurrency.swift; sourceTree = ""; }; + 2846700660840F9BEB3E18B26DD04EB0 /* PKCircleProgressView.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = PKCircleProgressView.h; path = Pod/Classes/PKCircleProgressView.h; sourceTree = ""; }; + 286D36F1216FB22EFA1FA2B0BF33D8E4 /* DownloadButton.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = DownloadButton.debug.xcconfig; sourceTree = ""; }; + 29349230CDFAD84CC21CEE89781B4F38 /* SVProgressHUD-Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "SVProgressHUD-Info.plist"; sourceTree = ""; }; + 2A1D22F7B21663BAD85E06A344194AF0 /* SnapKit-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "SnapKit-dummy.m"; sourceTree = ""; }; + 2A4A8EC54C0D772248106B90417E277C /* Date+Math.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "Date+Math.swift"; path = "Sources/SwiftDate/Date/Date+Math.swift"; sourceTree = ""; }; + 2A8550EC020A77B500DD995CEA60F882 /* Storage.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Storage.swift; path = Sources/Cache/Storage.swift; sourceTree = ""; }; + 2A973CF3ED699EA4E9515A9F191A256F /* UIView+MJExtension.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "UIView+MJExtension.m"; path = "MJRefresh/UIView+MJExtension.m"; sourceTree = ""; }; + 2C40ADB610A320A37BD45C4B202CBBE0 /* Tiercel.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.module; path = Tiercel.modulemap; sourceTree = ""; }; + 2EF8C06157DE2D2EDC158F46A61C30F6 /* Alamofire-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "Alamofire-prefix.pch"; sourceTree = ""; }; 2F4A1CCB21DB7EA5A2ACEB11E374FBCA /* JXPagingView */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; name = JXPagingView; path = JXPagingView.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - 3014A4FE1760FDA7885E041B8EF0853E /* MJRefreshHeader.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = MJRefreshHeader.h; path = MJRefresh/Base/MJRefreshHeader.h; sourceTree = ""; }; - 30A36C3E1877B45E9EA931A400465DB9 /* DownloadButton.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.module; path = DownloadButton.modulemap; sourceTree = ""; }; - 315BF2CB3391E812B1AEA545E71FE0E3 /* Alamofire.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = Alamofire.debug.xcconfig; sourceTree = ""; }; - 318C19E7D6C6A32542051557783C1EF3 /* JXSegmentedTitleImageDataSource.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = JXSegmentedTitleImageDataSource.swift; path = Sources/TitleImage/JXSegmentedTitleImageDataSource.swift; sourceTree = ""; }; - 3195118FB0FE0A5A0CDE12C350EC0BFE /* Tiercel-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "Tiercel-dummy.m"; sourceTree = ""; }; - 32A400989AC36A34EEE68105929AB845 /* JXSegmentedTitleGradientCell.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = JXSegmentedTitleGradientCell.swift; path = Sources/TitleGradient/JXSegmentedTitleGradientCell.swift; sourceTree = ""; }; - 334554B9B671DEC7ADCF7D982591C642 /* ImageDataProcessor.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ImageDataProcessor.swift; path = Sources/Networking/ImageDataProcessor.swift; sourceTree = ""; }; - 3519A1DE1070D14BA21F4BEBE3C5D2ED /* RequestInterceptor.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = RequestInterceptor.swift; path = Source/Features/RequestInterceptor.swift; sourceTree = ""; }; - 352002810B4B49BECC2CE992E2A783FB /* AlamofireExtended.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = AlamofireExtended.swift; path = Source/Features/AlamofireExtended.swift; sourceTree = ""; }; - 35614DDD77E7F500FF36C6A4A9C1FBE1 /* MJRefresh.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = MJRefresh.release.xcconfig; sourceTree = ""; }; - 3693944CBFD5FFB3A20DE089331A7372 /* JXSegmentedView-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "JXSegmentedView-prefix.pch"; sourceTree = ""; }; - 36AC1C319C4549047F2F2AA747E1AE0B /* ImageProcessor.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ImageProcessor.swift; path = Sources/Image/ImageProcessor.swift; sourceTree = ""; }; - 370E0DBBCF6046B8EA0A19F16D7720C3 /* MJRefreshBackFooter.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = MJRefreshBackFooter.h; path = MJRefresh/Base/MJRefreshBackFooter.h; sourceTree = ""; }; - 37AFBA38FAEEF7CC14CCC5E242D313BD /* Notifications.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Notifications.swift; path = Source/Core/Notifications.swift; sourceTree = ""; }; - 383778566947B3850ADAA36FE68A6580 /* Protected.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Protected.swift; path = Source/Core/Protected.swift; sourceTree = ""; }; - 38BE2DF3B6F0DB0C82BDE42F993FA0AA /* AVAssetImageDataProvider.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = AVAssetImageDataProvider.swift; path = Sources/General/ImageSource/AVAssetImageDataProvider.swift; sourceTree = ""; }; - 3938E9316C816629BB272B90B7FB72BA /* Date+Math.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "Date+Math.swift"; path = "Sources/SwiftDate/Date/Date+Math.swift"; sourceTree = ""; }; - 394EA0EF4EA1BA1568C02AE6FDBDB640 /* NSLayoutConstraint+PKDownloadButton.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "NSLayoutConstraint+PKDownloadButton.h"; path = "Pod/Classes/NSLayoutConstraint+PKDownloadButton.h"; sourceTree = ""; }; - 3979C23227D173F64FC1CBA303A1D512 /* SessionDelegate.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = SessionDelegate.swift; path = Source/Core/SessionDelegate.swift; sourceTree = ""; }; - 39B9EC3B0961258427F81EA9988783C2 /* JXSegmentedIndicatorRainbowLineView.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = JXSegmentedIndicatorRainbowLineView.swift; path = Sources/Indicator/JXSegmentedIndicatorRainbowLineView.swift; sourceTree = ""; }; - 39BC3B9D2613342C5CAF994270E1E089 /* UIButton+Kingfisher.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "UIButton+Kingfisher.swift"; path = "Sources/Extensions/UIButton+Kingfisher.swift"; sourceTree = ""; }; - 39C8DA51B12B0841241D88B8559D10DF /* MJRefreshConst.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = MJRefreshConst.m; path = MJRefresh/MJRefreshConst.m; sourceTree = ""; }; - 3B4BF2692B75E2E78EB3901D29CF2F20 /* MJRefreshBackGifFooter.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = MJRefreshBackGifFooter.m; path = MJRefresh/Custom/Footer/Back/MJRefreshBackGifFooter.m; sourceTree = ""; }; - 3C18631CE3A76D9E239D38D937F073AC /* PKCircleView.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = PKCircleView.h; path = Pod/Classes/PKCircleView.h; sourceTree = ""; }; - 3C2F80AE1C9EE73162C077C9154EE0DB /* ImageDataProvider.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ImageDataProvider.swift; path = Sources/General/ImageSource/ImageDataProvider.swift; sourceTree = ""; }; - 3C5371C6033F9B22897412748D004E09 /* MJRefreshAutoGifFooter.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = MJRefreshAutoGifFooter.m; path = MJRefresh/Custom/Footer/Auto/MJRefreshAutoGifFooter.m; sourceTree = ""; }; - 3C69FC3F3390BF347851D0534F9D932C /* DotNetParserFormatter.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = DotNetParserFormatter.swift; path = Sources/SwiftDate/Formatters/DotNetParserFormatter.swift; sourceTree = ""; }; - 3D86F413A39C2ED7EBED385F18D75825 /* Kingfisher.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = Kingfisher.release.xcconfig; sourceTree = ""; }; - 3DF0CE5C30A5DCCC8B6DB7B3EF262A12 /* SessionDelegate.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = SessionDelegate.swift; path = Sources/Networking/SessionDelegate.swift; sourceTree = ""; }; + 30619E70159FE994D5F9B876739CF48E /* IQUIScrollView+Additions.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "IQUIScrollView+Additions.swift"; path = "IQKeyboardManagerSwift/Categories/IQUIScrollView+Additions.swift"; sourceTree = ""; }; + 30AE3CC8312E4132A9A995297F2523C6 /* ConstraintConfig.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ConstraintConfig.swift; path = Sources/ConstraintConfig.swift; sourceTree = ""; }; + 31C323285A3155F84D9AFE58FD78D246 /* ImageDataProvider.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ImageDataProvider.swift; path = Sources/General/ImageSource/ImageDataProvider.swift; sourceTree = ""; }; + 31FD8F5F9DCF707E18D9317B12D18BBE /* ConstraintInsetTarget.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ConstraintInsetTarget.swift; path = Sources/ConstraintInsetTarget.swift; sourceTree = ""; }; + 32B909B928CC41053D7CF406408D2DA8 /* CodingUserInfoKey+Cache.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "CodingUserInfoKey+Cache.swift"; path = "Sources/Extensions/CodingUserInfoKey+Cache.swift"; sourceTree = ""; }; + 33140581269593D23CABC41A35B01F83 /* IQKeyboardManager+Debug.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "IQKeyboardManager+Debug.swift"; path = "IQKeyboardManagerSwift/IQKeyboardManager+Debug.swift"; sourceTree = ""; }; + 332F6C90B7478F0ADA35CCB36F18E139 /* SVProgressHUD-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "SVProgressHUD-umbrella.h"; sourceTree = ""; }; + 33E1D0F4570630A66EC11D6550996BFD /* Executer.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Executer.swift; path = Sources/General/Executer.swift; sourceTree = ""; }; + 34407EBEDB54B802330DFFF56E661207 /* RelativeFormatter+Style.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "RelativeFormatter+Style.swift"; path = "Sources/SwiftDate/Formatters/RelativeFormatter/RelativeFormatter+Style.swift"; sourceTree = ""; }; + 34BF55272606579ED586584FC1416BCE /* LayoutConstraint.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = LayoutConstraint.swift; path = Sources/LayoutConstraint.swift; sourceTree = ""; }; + 34F26DA97773D658E22071F12B542CCD /* JXSegmentedIndicatorImageView.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = JXSegmentedIndicatorImageView.swift; path = Sources/Indicator/JXSegmentedIndicatorImageView.swift; sourceTree = ""; }; + 350BCB03327C5F2C9BECC6FFA0542AC8 /* KingfisherManager.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = KingfisherManager.swift; path = Sources/General/KingfisherManager.swift; sourceTree = ""; }; + 355900B5F79AA20082E754752E197105 /* JXPagingView.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = JXPagingView.release.xcconfig; sourceTree = ""; }; + 35FA650454D142550A0573C6FB619834 /* Formatter+Protocols.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "Formatter+Protocols.swift"; path = "Sources/SwiftDate/Formatters/Formatter+Protocols.swift"; sourceTree = ""; }; + 363041D7DAC28D7907D5E0EC0CEE54B6 /* TimePeriodChain.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = TimePeriodChain.swift; path = Sources/SwiftDate/TimePeriod/Groups/TimePeriodChain.swift; sourceTree = ""; }; + 38934FCF51125F064A4F97B6DD3FE690 /* DownloadButton-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "DownloadButton-prefix.pch"; sourceTree = ""; }; + 39662A3DEB2406A1947116C8C84879C4 /* URLSessionConfiguration+Alamofire.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "URLSessionConfiguration+Alamofire.swift"; path = "Source/Extensions/URLSessionConfiguration+Alamofire.swift"; sourceTree = ""; }; + 39CEAE4CB2B89F74AF94DC40A7FCE403 /* ImageProgressive.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ImageProgressive.swift; path = Sources/Image/ImageProgressive.swift; sourceTree = ""; }; + 3A9302AD87823AB239A8DE5448ED7EA8 /* Locales.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Locales.swift; path = Sources/SwiftDate/Supports/Locales.swift; sourceTree = ""; }; + 3B05B30F83602E9BAE9D6BFAA15D754E /* RetryPolicy.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = RetryPolicy.swift; path = Source/Features/RetryPolicy.swift; sourceTree = ""; }; + 3B234E4A6AC4FDDA785A69D6B9C0CC0E /* JXPagingView.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.module; path = JXPagingView.modulemap; sourceTree = ""; }; + 3B76ADE3C6D04E0B956F25B04B67B5DC /* JXPagingMainTableView.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = JXPagingMainTableView.swift; path = Sources/JXPagingView/JXPagingMainTableView.swift; sourceTree = ""; }; + 3BD745A1B0F3015C609CB24A9BFDF524 /* ResourceBundle-JXPagingView-JXPagingView-Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "ResourceBundle-JXPagingView-JXPagingView-Info.plist"; sourceTree = ""; }; + 3C1E12FF093098A22E423F0E1E49DDA6 /* MJRefreshTrailer.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = MJRefreshTrailer.h; path = MJRefresh/Base/MJRefreshTrailer.h; sourceTree = ""; }; + 3D5F1A2FF1FB1DD42568FD79BC4800F0 /* Delegate.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Delegate.swift; path = Sources/Utility/Delegate.swift; sourceTree = ""; }; 3E98AA50CDCEBC05193C3D87CDDDF700 /* Pods-relax.offline.mp3.music.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.module; path = "Pods-relax.offline.mp3.music.modulemap"; sourceTree = ""; }; - 3F40E10D55EC1044BB7FD2CD777678D4 /* URLConvertible+URLRequestConvertible.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "URLConvertible+URLRequestConvertible.swift"; path = "Source/Core/URLConvertible+URLRequestConvertible.swift"; sourceTree = ""; }; - 4000ED24F540FFC9C63FD4DBC6AA4AEF /* CALayer+PKDownloadButtonAnimations.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "CALayer+PKDownloadButtonAnimations.h"; path = "Pod/Classes/CALayer+PKDownloadButtonAnimations.h"; sourceTree = ""; }; - 40645897DA10D6315EE10B5CF09F9F83 /* IQKeyboardManager+Toolbar.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "IQKeyboardManager+Toolbar.swift"; path = "IQKeyboardManagerSwift/IQKeyboardManager+Toolbar.swift"; sourceTree = ""; }; - 4068045C151506E0A93EFDB8951513F5 /* Image.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Image.swift; path = Sources/Image/Image.swift; sourceTree = ""; }; - 40A8CAAD858518E279F90477318343BC /* DispatchQueue+Alamofire.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "DispatchQueue+Alamofire.swift"; path = "Source/Extensions/DispatchQueue+Alamofire.swift"; sourceTree = ""; }; - 4172AE07F2D6045FFAC7B6CE79D5CC32 /* IQKeyboardManagerSwift.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.module; path = IQKeyboardManagerSwift.modulemap; sourceTree = ""; }; - 41EA5DD20C3E30CEE9AE29D7D08FA979 /* SVRadialGradientLayer.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SVRadialGradientLayer.m; path = SVProgressHUD/SVRadialGradientLayer.m; sourceTree = ""; }; - 43C36A312871511CF0DD8615F079E951 /* Request.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Request.swift; path = Source/Core/Request.swift; sourceTree = ""; }; - 4442DAD3B8B05B75C068BADB1E00B9D7 /* FileManager+AvailableCapacity.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "FileManager+AvailableCapacity.swift"; path = "Sources/Extensions/FileManager+AvailableCapacity.swift"; sourceTree = ""; }; - 444DDECFD8D1EE63B4337DEA07CDBA41 /* DataStreamRequest.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = DataStreamRequest.swift; path = Source/Core/DataStreamRequest.swift; sourceTree = ""; }; - 46BF1D9126491B49203F61335AAD8237 /* KFOptionsSetter.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = KFOptionsSetter.swift; path = Sources/General/KFOptionsSetter.swift; sourceTree = ""; }; - 486B16286080A1C04A4D1C6D3E6025B3 /* RetryPolicy.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = RetryPolicy.swift; path = Source/Features/RetryPolicy.swift; sourceTree = ""; }; - 49D847B127554DD4DB9891C33CA6CCF8 /* MJRefreshAutoStateFooter.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = MJRefreshAutoStateFooter.h; path = MJRefresh/Custom/Footer/Auto/MJRefreshAutoStateFooter.h; sourceTree = ""; }; - 4BA645CD0C9220432BBA4BF52D119E3B /* ResourceBundle-Kingfisher-Kingfisher-Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "ResourceBundle-Kingfisher-Kingfisher-Info.plist"; sourceTree = ""; }; - 4BC1D09BEB4A87CCA47DB2DB8F699307 /* MJRefreshStateTrailer.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = MJRefreshStateTrailer.h; path = MJRefresh/Custom/Trailer/MJRefreshStateTrailer.h; sourceTree = ""; }; - 4BD1E96B9F81887409A87C11B8627CF9 /* Date+Create.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "Date+Create.swift"; path = "Sources/SwiftDate/Date/Date+Create.swift"; sourceTree = ""; }; - 4C2B27EFF326D222281498D6341EC22E /* MJRefreshNormalTrailer.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = MJRefreshNormalTrailer.h; path = MJRefresh/Custom/Trailer/MJRefreshNormalTrailer.h; sourceTree = ""; }; - 4C81E489B48B567E974A27AE3C38D336 /* PrivacyInfo.xcprivacy */ = {isa = PBXFileReference; includeInIndex = 1; name = PrivacyInfo.xcprivacy; path = Sources/PrivacyInfo.xcprivacy; sourceTree = ""; }; - 4C9961DB51C617F0E3F78E26BA1B8787 /* RetryStrategy.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = RetryStrategy.swift; path = Sources/Networking/RetryStrategy.swift; sourceTree = ""; }; - 4CEE0C62C7FB9997C20B8E1824B5812F /* PKStopDownloadButton.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = PKStopDownloadButton.m; path = Pod/Classes/PKStopDownloadButton.m; sourceTree = ""; }; - 4D7B2E9D8BAF6E4F291B9C1CA555C991 /* AuthenticationInterceptor.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = AuthenticationInterceptor.swift; path = Source/Features/AuthenticationInterceptor.swift; sourceTree = ""; }; - 4DB9DF7E0785B32759BE7D10F30291CB /* JXSegmentedCollectionView.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = JXSegmentedCollectionView.swift; path = Sources/Core/JXSegmentedCollectionView.swift; sourceTree = ""; }; - 4E32C30A6532383449FAE228D54F6477 /* JXPagingMainTableView.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = JXPagingMainTableView.swift; path = Sources/JXPagingView/JXPagingMainTableView.swift; sourceTree = ""; }; - 4E7C909E9A64B9D749DBD181DB7AB6C7 /* SVProgressAnimatedView.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SVProgressAnimatedView.h; path = SVProgressHUD/SVProgressAnimatedView.h; sourceTree = ""; }; - 4E80022D2BF17AC34C27A3EDDD0F9189 /* JXSegmentedIndicatorTriangleView.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = JXSegmentedIndicatorTriangleView.swift; path = Sources/Indicator/JXSegmentedIndicatorTriangleView.swift; sourceTree = ""; }; - 4E913710E854A76597D94659AAC19B6B /* CallbackQueue.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = CallbackQueue.swift; path = Sources/Utility/CallbackQueue.swift; sourceTree = ""; }; - 4FAB68949F3F65C3DCE726B88EEF50AC /* Kingfisher.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Kingfisher.swift; path = Sources/General/Kingfisher.swift; sourceTree = ""; }; - 507DB4670F96D43CAB20AFB3D18A622A /* RedirectHandler.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = RedirectHandler.swift; path = Sources/Networking/RedirectHandler.swift; sourceTree = ""; }; - 5106D1769D56C09A2757D25D783D320F /* IQPlaceholderable.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = IQPlaceholderable.swift; path = IQKeyboardManagerSwift/IQTextView/IQPlaceholderable.swift; sourceTree = ""; }; - 51471D07E76BFB34F5EDA721B4712C79 /* ConstraintMakerExtendable.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ConstraintMakerExtendable.swift; path = Sources/ConstraintMakerExtendable.swift; sourceTree = ""; }; - 51985907D190CC0C4BE05775C68447FE /* IQKeyboardManager+Position.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "IQKeyboardManager+Position.swift"; path = "IQKeyboardManagerSwift/IQKeyboardManager+Position.swift"; sourceTree = ""; }; - 529BEE61C943A5C55711DDA847E03AB7 /* JXPagingView.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = JXPagingView.debug.xcconfig; sourceTree = ""; }; - 5303ABF9B0FED3C94FF2EFF9ABDA9B4D /* UIView+MJExtension.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "UIView+MJExtension.h"; path = "MJRefresh/UIView+MJExtension.h"; sourceTree = ""; }; - 5349BD74B2DD47008A231410686E263A /* MJRefresh.bundle */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = "wrapper.plug-in"; name = MJRefresh.bundle; path = MJRefresh/MJRefresh.bundle; sourceTree = ""; }; - 537E15307D7D72026BB4C0FC30CFED93 /* DateInRegion+Math.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "DateInRegion+Math.swift"; path = "Sources/SwiftDate/DateInRegion/DateInRegion+Math.swift"; sourceTree = ""; }; - 53DE0087744822FEF4503EF0FF47B709 /* MJRefresh-Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "MJRefresh-Info.plist"; sourceTree = ""; }; - 54338C42DA7239A1FA97E43C3AFF5455 /* NSLayoutConstraint+PKDownloadButton.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "NSLayoutConstraint+PKDownloadButton.m"; path = "Pod/Classes/NSLayoutConstraint+PKDownloadButton.m"; sourceTree = ""; }; + 3FAC5A61EF918CD2923F2347A8289EAF /* Calendars.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Calendars.swift; path = Sources/SwiftDate/Supports/Calendars.swift; sourceTree = ""; }; + 40284AA2CE8A6329AA2F1E8E1DBDC5AC /* IQKeyboardManagerSwift-Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "IQKeyboardManagerSwift-Info.plist"; sourceTree = ""; }; + 4069EDB34E4007F32A728D2FED8B7504 /* MJRefreshStateTrailer.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = MJRefreshStateTrailer.m; path = MJRefresh/Custom/Trailer/MJRefreshStateTrailer.m; sourceTree = ""; }; + 40E624220D9808FE4E6F704725D45A64 /* DateInRegion+Compare.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "DateInRegion+Compare.swift"; path = "Sources/SwiftDate/DateInRegion/DateInRegion+Compare.swift"; sourceTree = ""; }; + 42517ADA576373B5F2B2AA56BB57260F /* JXSegmentedNumberCell.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = JXSegmentedNumberCell.swift; path = Sources/Number/JXSegmentedNumberCell.swift; sourceTree = ""; }; + 42D32A21BC6970499FB68AB45D275ACC /* ConstraintLayoutSupport.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ConstraintLayoutSupport.swift; path = Sources/ConstraintLayoutSupport.swift; sourceTree = ""; }; + 42DAEB0034C273A0993E66931DF30BA3 /* UIScrollView+MJExtension.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "UIScrollView+MJExtension.m"; path = "MJRefresh/UIScrollView+MJExtension.m"; sourceTree = ""; }; + 43CCDEB493C9979C1959B9942047DA1C /* MJRefreshGifHeader.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = MJRefreshGifHeader.m; path = MJRefresh/Custom/Header/MJRefreshGifHeader.m; sourceTree = ""; }; + 46314C1E12962DB1E9D783BE2AB6599D /* JXSegmentedIndicatorGradientLineView.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = JXSegmentedIndicatorGradientLineView.swift; path = Sources/Indicator/JXSegmentedIndicatorGradientLineView.swift; sourceTree = ""; }; + 4658976F267BC82EF3D6B7979DE50335 /* Kingfisher.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = Kingfisher.release.xcconfig; sourceTree = ""; }; + 4676AC055A0230683AB285C9444D9EB6 /* JXPagingSmoothView.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = JXPagingSmoothView.swift; path = Sources/JXPagingView/JXPagingSmoothView.swift; sourceTree = ""; }; + 468FDABC3307F80DBEFA314352D1EABA /* SVProgressHUD.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SVProgressHUD.m; path = SVProgressHUD/SVProgressHUD.m; sourceTree = ""; }; + 46AE8E58DA72546DEDC39DEA7F914C3A /* JXSegmentedTitleAttributeDataSource.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = JXSegmentedTitleAttributeDataSource.swift; path = Sources/AttributeTitle/JXSegmentedTitleAttributeDataSource.swift; sourceTree = ""; }; + 46F8ABAB992507C6BBCA2AAF69DAB50D /* Notifications.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Notifications.swift; path = Sources/General/Notifications.swift; sourceTree = ""; }; + 473404EA66F41CF156A5AA1663364FDC /* RelativeFormatterLanguage.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = RelativeFormatterLanguage.swift; path = Sources/SwiftDate/Formatters/RelativeFormatter/RelativeFormatterLanguage.swift; sourceTree = ""; }; + 47CB3125EBE82E815B80A545A72A5737 /* IQUIViewController+Additions.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "IQUIViewController+Additions.swift"; path = "IQKeyboardManagerSwift/Categories/IQUIViewController+Additions.swift"; sourceTree = ""; }; + 480B5DAE25DDAB0483A10B4A65214BB2 /* ConstraintMakerFinalizable.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ConstraintMakerFinalizable.swift; path = Sources/ConstraintMakerFinalizable.swift; sourceTree = ""; }; + 489901D1795E72219A5650D4806CFBA6 /* PrivacyInfo.xcprivacy */ = {isa = PBXFileReference; includeInIndex = 1; name = PrivacyInfo.xcprivacy; path = Sources/PrivacyInfo.xcprivacy; sourceTree = ""; }; + 48B8EFC8261F0683C57D3F2F7266B2FA /* MJRefresh.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = MJRefresh.release.xcconfig; sourceTree = ""; }; + 48E651BF46CACE566E99761D182A8313 /* DateInRegion+Components.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "DateInRegion+Components.swift"; path = "Sources/SwiftDate/DateInRegion/DateInRegion+Components.swift"; sourceTree = ""; }; + 48FC6499D782B6A38B55A1058728D46D /* JXSegmentedBaseDataSource.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = JXSegmentedBaseDataSource.swift; path = Sources/Core/JXSegmentedBaseDataSource.swift; sourceTree = ""; }; + 49670BEF07B759207432F9BAC3232A37 /* MJRefreshAutoStateFooter.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = MJRefreshAutoStateFooter.h; path = MJRefresh/Custom/Footer/Auto/MJRefreshAutoStateFooter.h; sourceTree = ""; }; + 499F69400989C98B94A8F8B97F588969 /* UIScrollView+MJRefresh.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "UIScrollView+MJRefresh.h"; path = "MJRefresh/UIScrollView+MJRefresh.h"; sourceTree = ""; }; + 49EA64A868AD5A848F2723A28A022C20 /* DateComponents+Extras.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "DateComponents+Extras.swift"; path = "Sources/SwiftDate/Foundation+Extras/DateComponents+Extras.swift"; sourceTree = ""; }; + 4A723B36400941F73232A642F2B5DC74 /* MarqueeLabel-Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "MarqueeLabel-Info.plist"; sourceTree = ""; }; + 4B940D34CA176A20AE3392A5DF877602 /* TimePeriod.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = TimePeriod.swift; path = Sources/SwiftDate/TimePeriod/TimePeriod.swift; sourceTree = ""; }; + 4BA391400C88257C2944C66CBCCB7253 /* JXSegmentedListContainerView.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = JXSegmentedListContainerView.swift; path = Sources/Common/JXSegmentedListContainerView.swift; sourceTree = ""; }; + 4BE433B1433BD888BDE297FD204C49F9 /* Debugging.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Debugging.swift; path = Sources/Debugging.swift; sourceTree = ""; }; + 4C5997F32ACC78D0783DECD6876B8362 /* UIView+MJExtension.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "UIView+MJExtension.h"; path = "MJRefresh/UIView+MJExtension.h"; sourceTree = ""; }; + 4CDF31659C5CFC027B5F60F47F8B324B /* Result+Alamofire.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "Result+Alamofire.swift"; path = "Source/Extensions/Result+Alamofire.swift"; sourceTree = ""; }; + 4D2D33F595163FDA3C1066EFF04B0A3C /* JXPagingView.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = JXPagingView.swift; path = Sources/JXPagingView/JXPagingView.swift; sourceTree = ""; }; + 4D5C687385BE696DCC857DAFE966CAAD /* MJRefreshConfig.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = MJRefreshConfig.m; path = MJRefresh/MJRefreshConfig.m; sourceTree = ""; }; + 4DB6D4B8D6F44ACDD6E446998748BD0B /* JXSegmentedIndicatorTriangleView.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = JXSegmentedIndicatorTriangleView.swift; path = Sources/Indicator/JXSegmentedIndicatorTriangleView.swift; sourceTree = ""; }; + 4DD5A923B5AC516949CE302FF67EBB14 /* KFImageOptions.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = KFImageOptions.swift; path = Sources/SwiftUI/KFImageOptions.swift; sourceTree = ""; }; + 4E09F6B76B94BAB19AD42233BAB48DC8 /* UICollectionViewLayout+MJRefresh.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "UICollectionViewLayout+MJRefresh.h"; path = "MJRefresh/UICollectionViewLayout+MJRefresh.h"; sourceTree = ""; }; + 4E107748342DFAA0AE5704BF236060EB /* JXPagingView.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = JXPagingView.debug.xcconfig; sourceTree = ""; }; + 4E5F5A742DDBDAE2FC927882DAC7C146 /* JXSegmentedBaseItemModel.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = JXSegmentedBaseItemModel.swift; path = Sources/Core/JXSegmentedBaseItemModel.swift; sourceTree = ""; }; + 4E9D0ECB7E0F273DE9EDC330510B8A28 /* MJRefreshNormalHeader.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = MJRefreshNormalHeader.m; path = MJRefresh/Custom/Header/MJRefreshNormalHeader.m; sourceTree = ""; }; + 4FC60181C38DFC5BD6460CCD3C0E2E79 /* ResumeDataHelper.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ResumeDataHelper.swift; path = Sources/Utility/ResumeDataHelper.swift; sourceTree = ""; }; + 4FFF862E204569AABC42FFAFD56353A0 /* KFAnimatedImage.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = KFAnimatedImage.swift; path = Sources/SwiftUI/KFAnimatedImage.swift; sourceTree = ""; }; + 5008A7DABE33777CC0A485DD1BD55C41 /* MarqueeLabel-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "MarqueeLabel-umbrella.h"; sourceTree = ""; }; + 506242F11D90C1AEE578033478116092 /* MJRefreshAutoStateFooter.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = MJRefreshAutoStateFooter.m; path = MJRefresh/Custom/Footer/Auto/MJRefreshAutoStateFooter.m; sourceTree = ""; }; + 5188492DCEB003519D4B536CDD1F7B5A /* PKCircleProgressView.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = PKCircleProgressView.m; path = Pod/Classes/PKCircleProgressView.m; sourceTree = ""; }; + 51B62E8042BF1B6DD54027FC1086F65B /* SnapKit.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = SnapKit.debug.xcconfig; sourceTree = ""; }; + 51BC721DE951672AC86725904BF54E3F /* AuthenticationChallengeResponsable.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = AuthenticationChallengeResponsable.swift; path = Sources/Networking/AuthenticationChallengeResponsable.swift; sourceTree = ""; }; + 51CD975673CF1F07A2A13679560350A0 /* Indicator.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Indicator.swift; path = Sources/Views/Indicator.swift; sourceTree = ""; }; + 52B39B8C94D1DBDCA76CF5D74C8C6EF5 /* KFImage.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = KFImage.swift; path = Sources/SwiftUI/KFImage.swift; sourceTree = ""; }; + 52B9A7D79DF51BBB25CEB545FC1161D8 /* SnapKit.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.module; path = SnapKit.modulemap; sourceTree = ""; }; + 53BA0397D66EE761B2AD30DA65D57FC1 /* Date+Compare.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "Date+Compare.swift"; path = "Sources/SwiftDate/Date/Date+Compare.swift"; sourceTree = ""; }; + 53D9BBF299544DEEAD5E456AA5306990 /* IQKeyboardReturnKeyHandler.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = IQKeyboardReturnKeyHandler.swift; path = IQKeyboardManagerSwift/IQKeyboardReturnKeyHandler.swift; sourceTree = ""; }; + 53F49612AAEE91DAD32EE172085A934A /* DispatchQueue+Safe.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "DispatchQueue+Safe.swift"; path = "Sources/Extensions/DispatchQueue+Safe.swift"; sourceTree = ""; }; + 545EBFECE53F67DCEBC38048C429627C /* UIColor+PKDownloadButton.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "UIColor+PKDownloadButton.m"; path = "Pod/Classes/UIColor+PKDownloadButton.m"; sourceTree = ""; }; + 547C395DDFFDD27A8A8FEE800C4BA045 /* ImageModifier.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ImageModifier.swift; path = Sources/Networking/ImageModifier.swift; sourceTree = ""; }; 54C9C6377C09561C9387D24D7E231921 /* DownloadButton */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; name = DownloadButton; path = DownloadButton.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - 55AD550AFD50A4AACF406AE4509884F7 /* SwiftDate.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = SwiftDate.swift; path = Sources/SwiftDate/SwiftDate.swift; sourceTree = ""; }; - 55FA1C2CFB36531B3B94D009E0268FD4 /* JXSegmentedTitleOrImageCell.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = JXSegmentedTitleOrImageCell.swift; path = Sources/TitleOrImage/JXSegmentedTitleOrImageCell.swift; sourceTree = ""; }; - 5651E434A3ABA08ABFA57DBF81DC3833 /* Alamofire-Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "Alamofire-Info.plist"; sourceTree = ""; }; - 56ABF94962001843D155D5C75C140754 /* ResourceBundle-JXSegmentedView-JXSegmentedView-Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "ResourceBundle-JXSegmentedView-JXSegmentedView-Info.plist"; sourceTree = ""; }; - 5792E5F49EE8878288039DD00DDC2023 /* MJRefreshComponent.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = MJRefreshComponent.h; path = MJRefresh/Base/MJRefreshComponent.h; sourceTree = ""; }; - 57D83805F5B2CF74579D77E015EE205A /* WebSocketRequest.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = WebSocketRequest.swift; path = Source/Core/WebSocketRequest.swift; sourceTree = ""; }; - 57DDDE5819A3D9FFB54140F6BAE81830 /* DispatchQueue+Safe.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "DispatchQueue+Safe.swift"; path = "Sources/Extensions/DispatchQueue+Safe.swift"; sourceTree = ""; }; - 57F671013FA9DEB80C7C46A741725C8B /* SnapKit.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.module; path = SnapKit.modulemap; sourceTree = ""; }; - 5831937C2675DEC9D3967CA8C1C4DE4A /* KingfisherOptionsInfo.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = KingfisherOptionsInfo.swift; path = Sources/General/KingfisherOptionsInfo.swift; sourceTree = ""; }; - 5847A62D213D4F4C1672653653C21997 /* JXSegmentedBaseCell.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = JXSegmentedBaseCell.swift; path = Sources/Core/JXSegmentedBaseCell.swift; sourceTree = ""; }; - 587F4C4B755FBF51C7CC55813ECF0DF9 /* RelativeFormatter.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = RelativeFormatter.swift; path = Sources/SwiftDate/Formatters/RelativeFormatter/RelativeFormatter.swift; sourceTree = ""; }; + 5569399D1EB726EB0DD2A7E1396321DC /* WKInterfaceImage+Kingfisher.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "WKInterfaceImage+Kingfisher.swift"; path = "Sources/Extensions/WKInterfaceImage+Kingfisher.swift"; sourceTree = ""; }; + 55A0A23CDD2D41CCEFF65E26C4A08F83 /* ImageProcessor.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ImageProcessor.swift; path = Sources/Image/ImageProcessor.swift; sourceTree = ""; }; + 56D29ADB2EBBA325CE4BF575D81F9922 /* JXSegmentedView.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = JXSegmentedView.release.xcconfig; sourceTree = ""; }; + 5713B1AF8B3CD5B2368E33B8C9CE5E78 /* SwiftDate-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "SwiftDate-dummy.m"; sourceTree = ""; }; + 578211F81ABFCC933FC2FCAD98E8D47E /* Combine.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Combine.swift; path = Source/Features/Combine.swift; sourceTree = ""; }; + 58565BBC4BB002FF81582767242BFC67 /* IQPlaceholderable.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = IQPlaceholderable.swift; path = IQKeyboardManagerSwift/IQTextView/IQPlaceholderable.swift; sourceTree = ""; }; + 58763E9810DBE5D64F8BB7A2F0CC8ED8 /* Alamofire-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "Alamofire-dummy.m"; sourceTree = ""; }; 58AE0544E0C381DDBD09356C357EC82B /* SwiftDate */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; name = SwiftDate; path = SwiftDate.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - 597C0B43F3A389988BBE039F9180AF73 /* JXPagingView.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = JXPagingView.swift; path = Sources/JXPagingView/JXPagingView.swift; sourceTree = ""; }; - 5A5E481E3DDCA3A4F1BB60E195B03E9A /* Response.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Response.swift; path = Source/Core/Response.swift; sourceTree = ""; }; 5A9791A6864A1422EB3D01824FCFDE53 /* Pods-relax.offline.mp3.music-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "Pods-relax.offline.mp3.music-dummy.m"; sourceTree = ""; }; - 5AF9BDEE553B59667C33A94E0D34992D /* DateInRegion+Compare.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "DateInRegion+Compare.swift"; path = "Sources/SwiftDate/DateInRegion/DateInRegion+Compare.swift"; sourceTree = ""; }; - 5B4FEF35151874DEFF408DF21564915F /* DateComponents+Extras.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "DateComponents+Extras.swift"; path = "Sources/SwiftDate/Foundation+Extras/DateComponents+Extras.swift"; sourceTree = ""; }; - 5BA22F174045FFB7A48A75A7F4D9EB96 /* MJRefreshStateTrailer.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = MJRefreshStateTrailer.m; path = MJRefresh/Custom/Trailer/MJRefreshStateTrailer.m; sourceTree = ""; }; - 5BE848D62F0E2DD5E6B01AB8A941161A /* ImageDownloader.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ImageDownloader.swift; path = Sources/Networking/ImageDownloader.swift; sourceTree = ""; }; - 5C1056EA978019ADBA19B800CAEB542E /* IQKeyboardManager+Debug.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "IQKeyboardManager+Debug.swift"; path = "IQKeyboardManagerSwift/IQKeyboardManager+Debug.swift"; sourceTree = ""; }; - 5CB56AAB4562D355FF301EDA2AB8094A /* PKPendingView.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = PKPendingView.h; path = Pod/Classes/PKPendingView.h; sourceTree = ""; }; - 5D57C1E7C83318927FF473C3874244A1 /* Result.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Result.swift; path = Sources/Utility/Result.swift; sourceTree = ""; }; + 5AC5A3F2AFE4DBC634FBBEEC8C8597BC /* Request.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Request.swift; path = Source/Core/Request.swift; sourceTree = ""; }; + 5AFABD0F91AAB460005E72FA49182E21 /* MJRefreshAutoNormalFooter.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = MJRefreshAutoNormalFooter.h; path = MJRefresh/Custom/Footer/Auto/MJRefreshAutoNormalFooter.h; sourceTree = ""; }; + 5C44472740A9D2F104F11556227D7B0A /* PrivacyInfo.xcprivacy */ = {isa = PBXFileReference; includeInIndex = 1; name = PrivacyInfo.xcprivacy; path = Sources/PrivacyInfo.xcprivacy; sourceTree = ""; }; + 5C6E47641FE0A4E8F158FBB515918A17 /* AlamofireExtended.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = AlamofireExtended.swift; path = Source/Features/AlamofireExtended.swift; sourceTree = ""; }; 5D797E9A5C5782CE845840781FA1CC81 /* Alamofire */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; name = Alamofire; path = Alamofire.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - 5E59017F132D3F8BE077B285CDBC283A /* JXSegmentedTitleImageCell.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = JXSegmentedTitleImageCell.swift; path = Sources/TitleImage/JXSegmentedTitleImageCell.swift; sourceTree = ""; }; - 5EBF6A0C927D0BEC2B5DB9868AA49A13 /* KFImage.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = KFImage.swift; path = Sources/SwiftUI/KFImage.swift; sourceTree = ""; }; - 5EDFEDB333D1C4D657642BDD0CBBD837 /* ConstraintInsets.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ConstraintInsets.swift; path = Sources/ConstraintInsets.swift; sourceTree = ""; }; - 5FA8DD3EAF4331A957B02AF68C32D8C3 /* DataRequest.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = DataRequest.swift; path = Source/Core/DataRequest.swift; sourceTree = ""; }; - 60068E35B65ED0C6B610C9570BC597A9 /* JXSegmentedListContainerView.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = JXSegmentedListContainerView.swift; path = Sources/Common/JXSegmentedListContainerView.swift; sourceTree = ""; }; - 61126F658F018ED54DFEEEE69C6CA8E2 /* DownloadButton-Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "DownloadButton-Info.plist"; sourceTree = ""; }; - 61E2818BF0B1113FD98A2C90CF89E0D2 /* Kingfisher.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = Kingfisher.debug.xcconfig; sourceTree = ""; }; - 62FA49071BDC919DA23009B2ED6DC501 /* SVProgressHUD.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SVProgressHUD.m; path = SVProgressHUD/SVProgressHUD.m; sourceTree = ""; }; - 63A098082295E231AEDD8791D3AA4A49 /* Source.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Source.swift; path = Sources/General/ImageSource/Source.swift; sourceTree = ""; }; - 63A2D978923680CBC3B31F209036FEE1 /* MJRefreshAutoFooter.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = MJRefreshAutoFooter.m; path = MJRefresh/Base/MJRefreshAutoFooter.m; sourceTree = ""; }; - 63B8C856677EDF8BE234CF7E2BB951A1 /* DownloadButton.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = DownloadButton.release.xcconfig; sourceTree = ""; }; - 63CBF16244C36F10F225DE1BA7038647 /* IQKeyboardManagerSwift-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "IQKeyboardManagerSwift-dummy.m"; sourceTree = ""; }; - 64514619DE9886AD750BCCFA911EBCE7 /* MJRefreshComponent.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = MJRefreshComponent.m; path = MJRefresh/Base/MJRefreshComponent.m; sourceTree = ""; }; - 647FAD59EAB8B7B7EC9ABE856699EEFA /* Alamofire-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "Alamofire-prefix.pch"; sourceTree = ""; }; - 651AA476DE421329D7481219EEF6450D /* KFAnimatedImage.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = KFAnimatedImage.swift; path = Sources/SwiftUI/KFAnimatedImage.swift; sourceTree = ""; }; - 66B6177A943E1AACC863187B10034268 /* ImagePrefetcher.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ImagePrefetcher.swift; path = Sources/Networking/ImagePrefetcher.swift; sourceTree = ""; }; - 67EEAAA4D8CC5122E9E7A878BDFA385D /* TimePeriod+Support.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "TimePeriod+Support.swift"; path = "Sources/SwiftDate/TimePeriod/TimePeriod+Support.swift"; sourceTree = ""; }; - 67FA5F041BEEE97146209378825B5C6C /* JXSegmentedNumberItemModel.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = JXSegmentedNumberItemModel.swift; path = Sources/Number/JXSegmentedNumberItemModel.swift; sourceTree = ""; }; - 680D8D30FFEA27B037B71AFB46683FED /* IQKeyboardReturnKeyHandler.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = IQKeyboardReturnKeyHandler.swift; path = IQKeyboardManagerSwift/IQKeyboardReturnKeyHandler.swift; sourceTree = ""; }; - 68153D2EA22B93481BFAA617AB95EEEE /* URLSessionConfiguration+Alamofire.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "URLSessionConfiguration+Alamofire.swift"; path = "Source/Extensions/URLSessionConfiguration+Alamofire.swift"; sourceTree = ""; }; - 68A19F495B7B29FCD335C9877343A792 /* CPListItem+Kingfisher.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "CPListItem+Kingfisher.swift"; path = "Sources/Extensions/CPListItem+Kingfisher.swift"; sourceTree = ""; }; - 695465D6553A7047F09DEFAC13D84D56 /* PrivacyInfo.xcprivacy */ = {isa = PBXFileReference; includeInIndex = 1; name = PrivacyInfo.xcprivacy; path = Sources/PrivacyInfo.xcprivacy; sourceTree = ""; }; - 69D118DCAF0BE6F45B139DD009D24320 /* Alamofire.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = Alamofire.release.xcconfig; sourceTree = ""; }; - 6AB7F75CC5F3996E30001B0AC78A91A9 /* DownloadButton-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "DownloadButton-prefix.pch"; sourceTree = ""; }; - 6ACED6F5365BD329D3BE6C449312D271 /* Kingfisher-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "Kingfisher-dummy.m"; sourceTree = ""; }; - 6B166B3810536EF00AF8735B173E648D /* IQToolbar.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = IQToolbar.swift; path = IQKeyboardManagerSwift/IQToolbar/IQToolbar.swift; sourceTree = ""; }; - 6B57EEBF6633E0A3B3E68FA866010056 /* Commons.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Commons.swift; path = Sources/SwiftDate/Supports/Commons.swift; sourceTree = ""; }; - 6B90D26735E86A9A83A2DCB2FCE42134 /* JXSegmentedDotItemModel.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = JXSegmentedDotItemModel.swift; path = Sources/Dot/JXSegmentedDotItemModel.swift; sourceTree = ""; }; - 6BDFFD6764814A9B06BAC507955B8CE7 /* Resource.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Resource.swift; path = Sources/General/ImageSource/Resource.swift; sourceTree = ""; }; - 6C011E467CC22ED6D7E27C641D1F56BF /* IQInvocation.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = IQInvocation.swift; path = IQKeyboardManagerSwift/IQToolbar/IQInvocation.swift; sourceTree = ""; }; - 6C14D8B0475F955FF30F17288DFF9FBA /* MJRefreshBackFooter.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = MJRefreshBackFooter.m; path = MJRefresh/Base/MJRefreshBackFooter.m; sourceTree = ""; }; - 6C1B2318A36D67B80AB9A36574D48B9F /* ConstraintDirectionalInsetTarget.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ConstraintDirectionalInsetTarget.swift; path = Sources/ConstraintDirectionalInsetTarget.swift; sourceTree = ""; }; - 6D4F9A47778935536C815EE8A43C62CE /* JXSegmentedDotCell.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = JXSegmentedDotCell.swift; path = Sources/Dot/JXSegmentedDotCell.swift; sourceTree = ""; }; - 6DEFC8A5EC7CC7AE8BB155B861E6EA7A /* PKCircleView.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = PKCircleView.m; path = Pod/Classes/PKCircleView.m; sourceTree = ""; }; - 6E10A3685A161AEE58149D0E9C6C80AE /* MJRefreshAutoGifFooter.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = MJRefreshAutoGifFooter.h; path = MJRefresh/Custom/Footer/Auto/MJRefreshAutoGifFooter.h; sourceTree = ""; }; - 6F14F2F23423A5BF0447B6AE3B6922AC /* JXSegmentedIndicatorParams.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = JXSegmentedIndicatorParams.swift; path = Sources/Indicator/JXSegmentedIndicatorParams.swift; sourceTree = ""; }; - 6F485E1680AF601EAD7433E32D6975B2 /* IQKeyboardManagerSwift-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "IQKeyboardManagerSwift-prefix.pch"; sourceTree = ""; }; - 6FB4A4A3FCE2E90247D5D8CE8F078E0A /* JXSegmentedIndicatorDotLineView.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = JXSegmentedIndicatorDotLineView.swift; path = Sources/Indicator/JXSegmentedIndicatorDotLineView.swift; sourceTree = ""; }; - 70825CEBF5EE532366CB976871A97C27 /* MJRefreshFooter.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = MJRefreshFooter.h; path = MJRefresh/Base/MJRefreshFooter.h; sourceTree = ""; }; - 714716AD234D7BD4D2D3A167939A0DC9 /* JXSegmentedView.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = JXSegmentedView.debug.xcconfig; sourceTree = ""; }; - 71A921DEC672A03FD9ED9A50A8A5112F /* IQKeyboardManagerSwift.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = IQKeyboardManagerSwift.debug.xcconfig; sourceTree = ""; }; - 72162E132CCC3CFF37F0C06770D2ABB8 /* Placeholder.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Placeholder.swift; path = Sources/Image/Placeholder.swift; sourceTree = ""; }; - 7229D90EC1A65C45FB522B55022F09C6 /* Zones.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Zones.swift; path = Sources/SwiftDate/Supports/Zones.swift; sourceTree = ""; }; - 72BFD417A23793E7CC1AD47C610F9232 /* JXSegmentedNumberDataSource.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = JXSegmentedNumberDataSource.swift; path = Sources/Number/JXSegmentedNumberDataSource.swift; sourceTree = ""; }; - 73E8978BF1F0C58A3BD5854096AEBD52 /* CachedResponseHandler.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = CachedResponseHandler.swift; path = Source/Features/CachedResponseHandler.swift; sourceTree = ""; }; - 73F56BAFBEB1659C76C3C867A42E0DB7 /* ConstraintMakerRelatable.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ConstraintMakerRelatable.swift; path = Sources/ConstraintMakerRelatable.swift; sourceTree = ""; }; - 7479C6B0500EB95DE80EFD7058AA33D0 /* URLRequest+Alamofire.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "URLRequest+Alamofire.swift"; path = "Source/Extensions/URLRequest+Alamofire.swift"; sourceTree = ""; }; - 74B967EE8C2947EC14E43B06440EE732 /* SVProgressHUD.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = SVProgressHUD.debug.xcconfig; sourceTree = ""; }; - 7520BB516E107B80A66D15FEFEF999C1 /* IQTitleBarButtonItem.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = IQTitleBarButtonItem.swift; path = IQKeyboardManagerSwift/IQToolbar/IQTitleBarButtonItem.swift; sourceTree = ""; }; - 7522B5E1BBFFA03FB1B7F7D5349FDDA9 /* Storage.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Storage.swift; path = Sources/Cache/Storage.swift; sourceTree = ""; }; - 75A0D7839E9B360DAC8B2436DDA7E806 /* ConstraintLayoutGuide+Extensions.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "ConstraintLayoutGuide+Extensions.swift"; path = "Sources/ConstraintLayoutGuide+Extensions.swift"; sourceTree = ""; }; - 76F60DC87BCAFC3DAB096326630BAB7A /* ConstraintRelation.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ConstraintRelation.swift; path = Sources/ConstraintRelation.swift; sourceTree = ""; }; - 771E3D4F19CA986D8B1AA6410516D930 /* IQTextView.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = IQTextView.swift; path = IQKeyboardManagerSwift/IQTextView/IQTextView.swift; sourceTree = ""; }; - 7783E7042303A5E0076AB72335FF86AD /* langs */ = {isa = PBXFileReference; includeInIndex = 1; name = langs; path = Sources/SwiftDate/Formatters/RelativeFormatter/langs; sourceTree = ""; }; - 77B9D75E24F7E6064B6A070251CD91F2 /* UIScrollView+MJExtension.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "UIScrollView+MJExtension.m"; path = "MJRefresh/UIScrollView+MJExtension.m"; sourceTree = ""; }; - 77F4148514C92AEF48B7ACD34E7488EB /* ConstraintDescription.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ConstraintDescription.swift; path = Sources/ConstraintDescription.swift; sourceTree = ""; }; - 78E9B606463B84F0667A91A176A63CAF /* SVProgressHUD.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = SVProgressHUD.release.xcconfig; sourceTree = ""; }; + 5DDFC2B686C7E589416A77F3D89D8BD5 /* IQUIView+IQKeyboardToolbar.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "IQUIView+IQKeyboardToolbar.swift"; path = "IQKeyboardManagerSwift/IQToolbar/IQUIView+IQKeyboardToolbar.swift"; sourceTree = ""; }; + 5F6BBD8BAC38D8F22BFD8D815B81443B /* SVProgressHUD-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "SVProgressHUD-dummy.m"; sourceTree = ""; }; + 5F7F5E6F94879FAB29D921DC9FAF8CD9 /* ConstraintInsets.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ConstraintInsets.swift; path = Sources/ConstraintInsets.swift; sourceTree = ""; }; + 5FC94C6FC28C2204F52D7975F7EAD382 /* MJRefreshNormalTrailer.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = MJRefreshNormalTrailer.h; path = MJRefresh/Custom/Trailer/MJRefreshNormalTrailer.h; sourceTree = ""; }; + 60031D8D6F31B55CA6F941F4E74FE20A /* MJRefreshGifHeader.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = MJRefreshGifHeader.h; path = MJRefresh/Custom/Header/MJRefreshGifHeader.h; sourceTree = ""; }; + 602AADF40849A45983953E264A9BC93F /* JXSegmentedTitleOrImageItemModel.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = JXSegmentedTitleOrImageItemModel.swift; path = Sources/TitleOrImage/JXSegmentedTitleOrImageItemModel.swift; sourceTree = ""; }; + 602EEB89E65E882D26595BFB30A68753 /* MJRefreshStateTrailer.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = MJRefreshStateTrailer.h; path = MJRefresh/Custom/Trailer/MJRefreshStateTrailer.h; sourceTree = ""; }; + 6088064A3AA58B0CD11EFF40FF0662CE /* PrivacyInfo.xcprivacy */ = {isa = PBXFileReference; includeInIndex = 1; name = PrivacyInfo.xcprivacy; path = Sources/PrivacyInfo.xcprivacy; sourceTree = ""; }; + 61253EC4CFBA709FB063DAE4550C34F7 /* SwiftDate.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = SwiftDate.debug.xcconfig; sourceTree = ""; }; + 635635C80C4A6F844662FBC0825108B1 /* SwiftDate-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "SwiftDate-umbrella.h"; sourceTree = ""; }; + 63A5658CA7BE9C8CB17CFA56505F5F3F /* MultipartUpload.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = MultipartUpload.swift; path = Source/Features/MultipartUpload.swift; sourceTree = ""; }; + 64C33D2228817B887C70B400F0DC5497 /* ConstraintMultiplierTarget.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ConstraintMultiplierTarget.swift; path = Sources/ConstraintMultiplierTarget.swift; sourceTree = ""; }; + 651AF86B19A0753E59D925A358A62C7E /* JXSegmentedNumberItemModel.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = JXSegmentedNumberItemModel.swift; path = Sources/Number/JXSegmentedNumberItemModel.swift; sourceTree = ""; }; + 651C18F3728516BA04D822B7AF347A1D /* Placeholder.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Placeholder.swift; path = Sources/Image/Placeholder.swift; sourceTree = ""; }; + 65512D77E95DF21370474D08B7B54F6D /* ResourceBundle-SnapKit_Privacy-SnapKit-Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "ResourceBundle-SnapKit_Privacy-SnapKit-Info.plist"; sourceTree = ""; }; + 6636254FFB6DE11FD7A8AFA55F06D1C4 /* ImageDrawing.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ImageDrawing.swift; path = Sources/Image/ImageDrawing.swift; sourceTree = ""; }; + 664067D6AFAD9C1DDA40DD6EF0AEB02D /* MarqueeLabel.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = MarqueeLabel.swift; path = Sources/MarqueeLabel.swift; sourceTree = ""; }; + 6673D2623B38B531794BA957717FE418 /* PKMacros.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = PKMacros.h; path = Pod/Classes/PKMacros.h; sourceTree = ""; }; + 66A707A1F00997A05FF4D07781452021 /* ConstraintPriority.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ConstraintPriority.swift; path = Sources/ConstraintPriority.swift; sourceTree = ""; }; + 6701D40E2193283F7AFDE1685BEF2161 /* Tiercel-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "Tiercel-prefix.pch"; sourceTree = ""; }; + 6792A4125127E2185D9E31BE55214F0B /* AnimatedImageView.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = AnimatedImageView.swift; path = Sources/Views/AnimatedImageView.swift; sourceTree = ""; }; + 68E5845A0F056ED6F021BCF06CE7E1B2 /* MJRefreshAutoGifFooter.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = MJRefreshAutoGifFooter.m; path = MJRefresh/Custom/Footer/Auto/MJRefreshAutoGifFooter.m; sourceTree = ""; }; + 6AFB9BB0EF5449C725EAD24210DFD26B /* OperationQueue+DispatchQueue.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "OperationQueue+DispatchQueue.swift"; path = "Sources/Extensions/OperationQueue+DispatchQueue.swift"; sourceTree = ""; }; + 6B285B835616B56F46980ADD39A51C61 /* ParameterEncoder.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ParameterEncoder.swift; path = Source/Core/ParameterEncoder.swift; sourceTree = ""; }; + 6B5C8D50DB10C1E73267380E60B30402 /* MJRefresh.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.module; path = MJRefresh.modulemap; sourceTree = ""; }; + 6B6CB2F1F0411CD9330D8904E4247017 /* SwiftDate-Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "SwiftDate-Info.plist"; sourceTree = ""; }; + 6C6CC3A8E70B816FE8E2E96EF7A27E41 /* MJRefreshConst.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = MJRefreshConst.m; path = MJRefresh/MJRefreshConst.m; sourceTree = ""; }; + 6C91685D18502488D4C0C9C949E4166C /* MJRefreshAutoNormalFooter.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = MJRefreshAutoNormalFooter.m; path = MJRefresh/Custom/Footer/Auto/MJRefreshAutoNormalFooter.m; sourceTree = ""; }; + 6CF22C8803B6805B8F73395E93D6AC83 /* IQTitleBarButtonItem.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = IQTitleBarButtonItem.swift; path = IQKeyboardManagerSwift/IQToolbar/IQTitleBarButtonItem.swift; sourceTree = ""; }; + 6CF9AE62D9C4C2E8CA013313CEDAA381 /* URLEncodedFormEncoder.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = URLEncodedFormEncoder.swift; path = Source/Features/URLEncodedFormEncoder.swift; sourceTree = ""; }; + 6DE267000E0CF855728DAD2FA6B0D9D8 /* RequestInterceptor.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = RequestInterceptor.swift; path = Source/Features/RequestInterceptor.swift; sourceTree = ""; }; + 6F8849479F3F19A2250A43346D9708F3 /* JXSegmentedDotDataSource.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = JXSegmentedDotDataSource.swift; path = Sources/Dot/JXSegmentedDotDataSource.swift; sourceTree = ""; }; + 72B7DE9C38B4CCAA35EC94EC02E6D329 /* NSLayoutConstraint+PKDownloadButton.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "NSLayoutConstraint+PKDownloadButton.m"; path = "Pod/Classes/NSLayoutConstraint+PKDownloadButton.m"; sourceTree = ""; }; + 74594CC121111A6BE5D36A1345621641 /* NSLayoutConstraint+PKDownloadButton.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "NSLayoutConstraint+PKDownloadButton.h"; path = "Pod/Classes/NSLayoutConstraint+PKDownloadButton.h"; sourceTree = ""; }; + 74BF157814EA00E73F813C2C5D28312D /* TimeStructures.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = TimeStructures.swift; path = Sources/SwiftDate/Supports/TimeStructures.swift; sourceTree = ""; }; + 75CCB704A2F8C5FD5D51A39623EC97EF /* IQInvocation.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = IQInvocation.swift; path = IQKeyboardManagerSwift/IQToolbar/IQInvocation.swift; sourceTree = ""; }; + 7693E08BE3EFA537F12FEEF954BA8B4A /* DownloadButton-Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "DownloadButton-Info.plist"; sourceTree = ""; }; + 76B9E41F33DAD89794D0675AA79CA8A6 /* JXSegmentedTitleGradientDataSource.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = JXSegmentedTitleGradientDataSource.swift; path = Sources/TitleGradient/JXSegmentedTitleGradientDataSource.swift; sourceTree = ""; }; + 76EB2408020A5E896E8A7E5BF1D6866D /* KFImageProtocol.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = KFImageProtocol.swift; path = Sources/SwiftUI/KFImageProtocol.swift; sourceTree = ""; }; + 78162222A9C1E9E834399EBEC817C51A /* URLSession+ResumeData.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "URLSession+ResumeData.swift"; path = "Sources/Extensions/URLSession+ResumeData.swift"; sourceTree = ""; }; + 789F6D0337DF509E335393411CC192CA /* DownloadButton.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.module; path = DownloadButton.modulemap; sourceTree = ""; }; 78F169B56C38C8BD0409AADB1B0DFB10 /* Pods-relax.offline.mp3.music.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-relax.offline.mp3.music.debug.xcconfig"; sourceTree = ""; }; - 7942B81EEA6AECA2482B4930A88C2F74 /* RedirectHandler.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = RedirectHandler.swift; path = Source/Features/RedirectHandler.swift; sourceTree = ""; }; - 799ACB25B944A07D0B38A8D469274B22 /* Alamofire.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.module; path = Alamofire.modulemap; sourceTree = ""; }; - 7A84B1B2C2A01CADA8A4FB7002C03EC0 /* MJRefreshAutoNormalFooter.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = MJRefreshAutoNormalFooter.h; path = MJRefresh/Custom/Footer/Auto/MJRefreshAutoNormalFooter.h; sourceTree = ""; }; - 7C4B5E073DEB2047089813AFB9E30CE6 /* ParameterEncoding.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ParameterEncoding.swift; path = Source/Core/ParameterEncoding.swift; sourceTree = ""; }; - 7CB71DBB690155435C7354D318B6E7BC /* ConstraintMakerEditable.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ConstraintMakerEditable.swift; path = Sources/ConstraintMakerEditable.swift; sourceTree = ""; }; - 7D18AAD8C7EC5F24F1C4E62BC36A545A /* DateRepresentable.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = DateRepresentable.swift; path = Sources/SwiftDate/DateRepresentable.swift; sourceTree = ""; }; - 7D45C333FDAD021CF43F46CE22C5A099 /* ImageBinder.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ImageBinder.swift; path = Sources/SwiftUI/ImageBinder.swift; sourceTree = ""; }; + 79E90E1B06EB62B96F30A9D606157FA9 /* ResourceBundle-JXSegmentedView-JXSegmentedView-Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "ResourceBundle-JXSegmentedView-JXSegmentedView-Info.plist"; sourceTree = ""; }; + 7A2F1293C202DA8EED09FA536FC3026D /* SessionDataTask.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = SessionDataTask.swift; path = Sources/Networking/SessionDataTask.swift; sourceTree = ""; }; + 7A65DD241CD2326B542E0BE7B68D3D65 /* AuthenticationInterceptor.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = AuthenticationInterceptor.swift; path = Source/Features/AuthenticationInterceptor.swift; sourceTree = ""; }; + 7A6ECD49E457E72D5012323706377C03 /* PKPendingView.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = PKPendingView.h; path = Pod/Classes/PKPendingView.h; sourceTree = ""; }; + 7AD360CBB95105F7403945A8F40A6ACC /* SVProgressHUD.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.module; path = SVProgressHUD.modulemap; sourceTree = ""; }; + 7B00242AEAF7DC8FA5F63CFFCD102E90 /* MJRefreshBackFooter.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = MJRefreshBackFooter.h; path = MJRefresh/Base/MJRefreshBackFooter.h; sourceTree = ""; }; + 7B9742E02744BD8A0BB8D0D315C36A38 /* JXPagingView-Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "JXPagingView-Info.plist"; sourceTree = ""; }; + 7C0DB9DC40B79D952AF8493966908936 /* ConstraintView+Extensions.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "ConstraintView+Extensions.swift"; path = "Sources/ConstraintView+Extensions.swift"; sourceTree = ""; }; + 7D8C5FDD4C842D708A0A3A727D77B58F /* URLConvertible+URLRequestConvertible.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "URLConvertible+URLRequestConvertible.swift"; path = "Source/Core/URLConvertible+URLRequestConvertible.swift"; sourceTree = ""; }; + 7DC49AD779BCF52CF1DA54C5AE6E2B36 /* MJRefreshBackStateFooter.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = MJRefreshBackStateFooter.m; path = MJRefresh/Custom/Footer/Back/MJRefreshBackStateFooter.m; sourceTree = ""; }; 7E3097CFEFDA621E9FB0E62009FF87FC /* MJRefresh-MJRefresh.Privacy */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; name = "MJRefresh-MJRefresh.Privacy"; path = MJRefresh.Privacy.bundle; sourceTree = BUILT_PRODUCTS_DIR; }; + 7E44CDDA1648D533E272048FC72962FF /* IQKeyboardManagerSwift.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = IQKeyboardManagerSwift.debug.xcconfig; sourceTree = ""; }; + 7E77397A610E64B5DE29B2C6790C9B0C /* Cache.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Cache.swift; path = Sources/General/Cache.swift; sourceTree = ""; }; 7EB20B4E68CCB69F85E7D08B7F8463D6 /* JXPagingView-JXPagingView */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; name = "JXPagingView-JXPagingView"; path = JXPagingView.bundle; sourceTree = BUILT_PRODUCTS_DIR; }; - 7FDE66FA3E63D652F470310D1A8E5121 /* ConstraintMakerFinalizable.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ConstraintMakerFinalizable.swift; path = Sources/ConstraintMakerFinalizable.swift; sourceTree = ""; }; - 804BF4BC9A919A768A7D7BD2E08C40E5 /* JXPagingView.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.module; path = JXPagingView.modulemap; sourceTree = ""; }; - 8099F9525C25E641D6DE6C728EE3F880 /* PrivacyInfo.xcprivacy */ = {isa = PBXFileReference; includeInIndex = 1; name = PrivacyInfo.xcprivacy; path = Source/PrivacyInfo.xcprivacy; sourceTree = ""; }; - 81A8ED2BB8FC47BB2EA4FCD90158D1A8 /* ResourceBundle-MJRefresh.Privacy-MJRefresh-Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "ResourceBundle-MJRefresh.Privacy-MJRefresh-Info.plist"; sourceTree = ""; }; - 8244D5BC1AC6EF3B749557D38982A3C5 /* Kingfisher-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "Kingfisher-umbrella.h"; sourceTree = ""; }; + 7FC69616A1892344EB78134505A3F752 /* MemoryStorage.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = MemoryStorage.swift; path = Sources/Cache/MemoryStorage.swift; sourceTree = ""; }; + 804AE736B53C8214AF7EE8E174CB4F9E /* RelativeFormatter.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = RelativeFormatter.swift; path = Sources/SwiftDate/Formatters/RelativeFormatter/RelativeFormatter.swift; sourceTree = ""; }; + 80C4375ACA6756DEC97E8AEB9D624786 /* IQKeyboardManagerSwift.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.module; path = IQKeyboardManagerSwift.modulemap; sourceTree = ""; }; + 81BA5C6700842B547C2E19A43B0551B9 /* PKCircleView.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = PKCircleView.h; path = Pod/Classes/PKCircleView.h; sourceTree = ""; }; + 81D940990A7A5C8F9765145438343AEB /* IQKeyboardManager.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = IQKeyboardManager.swift; path = IQKeyboardManagerSwift/IQKeyboardManager.swift; sourceTree = ""; }; + 823BE71A34CB959360DDD2BB9D4941C9 /* Kingfisher.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.module; path = Kingfisher.modulemap; sourceTree = ""; }; + 82411FCD639DFF62A404373043D0A97B /* URLConvertible.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = URLConvertible.swift; path = Sources/General/URLConvertible.swift; sourceTree = ""; }; 828F1C480D9959D94E2868CE1084677F /* CoreGraphics.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreGraphics.framework; path = Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS14.0.sdk/System/Library/Frameworks/CoreGraphics.framework; sourceTree = DEVELOPER_DIR; }; - 83210E479C7F1A42FC7C116732E885E9 /* ConstraintItem.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ConstraintItem.swift; path = Sources/ConstraintItem.swift; sourceTree = ""; }; - 8391D695EAE060EFF3874D9E27A9FCF3 /* Constraint.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Constraint.swift; path = Sources/Constraint.swift; sourceTree = ""; }; - 84E67E72BA64A8C64C789594ABFF25B4 /* NetworkReachabilityManager.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = NetworkReachabilityManager.swift; path = Source/Features/NetworkReachabilityManager.swift; sourceTree = ""; }; - 855DBC5C68A55479D76CAB8F762905C2 /* JXSegmentedBaseItemModel.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = JXSegmentedBaseItemModel.swift; path = Sources/Core/JXSegmentedBaseItemModel.swift; sourceTree = ""; }; - 861CA4EAA407480C04F77305C8558913 /* MJRefresh.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = MJRefresh.debug.xcconfig; sourceTree = ""; }; - 86DF9B1826A8445C1909A118B026A333 /* ConstraintMakerRelatable+Extensions.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "ConstraintMakerRelatable+Extensions.swift"; path = "Sources/ConstraintMakerRelatable+Extensions.swift"; sourceTree = ""; }; - 8727F5EF7ECCBEBD46E6C8E7B6A0DF97 /* MJRefreshBackNormalFooter.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = MJRefreshBackNormalFooter.m; path = MJRefresh/Custom/Footer/Back/MJRefreshBackNormalFooter.m; sourceTree = ""; }; - 87C5FCFE657C20543573C3718CB98314 /* SessionDelegate.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = SessionDelegate.swift; path = Sources/General/SessionDelegate.swift; sourceTree = ""; }; - 87C9CDBBA73FEE85B6C6648580D2167B /* DateInRegion+Create.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "DateInRegion+Create.swift"; path = "Sources/SwiftDate/DateInRegion/DateInRegion+Create.swift"; sourceTree = ""; }; - 882F40E244273565B4DAA774DBAE0186 /* JXPagingListRefreshView.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = JXPagingListRefreshView.swift; path = Sources/JXPagingView/JXPagingListRefreshView.swift; sourceTree = ""; }; - 8885E02AC5ED5CCD9A4BA63AC631EE3B /* Delegate.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Delegate.swift; path = Sources/Utility/Delegate.swift; sourceTree = ""; }; - 88E40B3D5F836444B0A4F163AD6F1AA1 /* SVProgressHUD-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "SVProgressHUD-prefix.pch"; sourceTree = ""; }; - 898243FF66AF7C337C21A8C6542D3B26 /* JXSegmentedViewTool.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = JXSegmentedViewTool.swift; path = Sources/Common/JXSegmentedViewTool.swift; sourceTree = ""; }; - 898C0D155683823269D327A674162353 /* String+Hash.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "String+Hash.swift"; path = "Sources/Extensions/String+Hash.swift"; sourceTree = ""; }; - 89A8E01E18FF856511D6A38ABDCBC452 /* JXSegmentedView.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = JXSegmentedView.swift; path = Sources/Core/JXSegmentedView.swift; sourceTree = ""; }; - 89AB6504876D9F3A7808F0012486934B /* PKPendingView.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = PKPendingView.m; path = Pod/Classes/PKPendingView.m; sourceTree = ""; }; - 89F5DB079478EA56BE88941393677920 /* ImageCache.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ImageCache.swift; path = Sources/Cache/ImageCache.swift; sourceTree = ""; }; + 83F94B122379805EE9DD1FD51068BC97 /* SVProgressHUD-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "SVProgressHUD-prefix.pch"; sourceTree = ""; }; + 841611B569DBCAF114BC4865BCEAB887 /* TiercelError.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = TiercelError.swift; path = Sources/General/TiercelError.swift; sourceTree = ""; }; + 8448673A4774CAFEBCD24BE82AF62917 /* String+MD5.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "String+MD5.swift"; path = "Sources/Utility/String+MD5.swift"; sourceTree = ""; }; + 8504EF1F9133A53B74DAAF48F3E48C0A /* JXSegmentedView-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "JXSegmentedView-dummy.m"; sourceTree = ""; }; + 8672153590C5F65593C96F8B75DE91F9 /* JXSegmentedAnimator.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = JXSegmentedAnimator.swift; path = Sources/Common/JXSegmentedAnimator.swift; sourceTree = ""; }; + 8791B26F243EFF6DF5A806240222E002 /* PKCircleView.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = PKCircleView.m; path = Pod/Classes/PKCircleView.m; sourceTree = ""; }; + 89F35204C15E154529FCD3A47194B781 /* MJRefreshComponent.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = MJRefreshComponent.h; path = MJRefresh/Base/MJRefreshComponent.h; sourceTree = ""; }; 8A2A128F3FAE37601751167FDC47182A /* CFNetwork.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CFNetwork.framework; path = Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS14.0.sdk/System/Library/Frameworks/CFNetwork.framework; sourceTree = DEVELOPER_DIR; }; - 8A5415EF1FD45FF941A7307C0161A9CF /* PKCircleProgressView.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = PKCircleProgressView.m; path = Pod/Classes/PKCircleProgressView.m; sourceTree = ""; }; - 8B29C561AD6A42AE05E7D4933C413593 /* Int+DateComponents.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "Int+DateComponents.swift"; path = "Sources/SwiftDate/Foundation+Extras/Int+DateComponents.swift"; sourceTree = ""; }; - 8B3DFBD060AD8EEB4A0CFD9D41F08DA5 /* ExtensionHelpers.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ExtensionHelpers.swift; path = Sources/Utility/ExtensionHelpers.swift; sourceTree = ""; }; - 8B4EA0727D3AEE0C524457934CACC723 /* JXSegmentedTitleImageItemModel.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = JXSegmentedTitleImageItemModel.swift; path = Sources/TitleImage/JXSegmentedTitleImageItemModel.swift; sourceTree = ""; }; - 8B9D360CDBAD5D8DA6901ADB37463388 /* Region.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Region.swift; path = Sources/SwiftDate/DateInRegion/Region.swift; sourceTree = ""; }; - 8BC750A9DB67924552C996D09B392511 /* Locales.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Locales.swift; path = Sources/SwiftDate/Supports/Locales.swift; sourceTree = ""; }; - 8BD1314D27AF6FB58EF08E869CCB70FE /* TimePeriodCollection.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = TimePeriodCollection.swift; path = Sources/SwiftDate/TimePeriod/Groups/TimePeriodCollection.swift; sourceTree = ""; }; - 8C4F10D8D02E31CD4C8F1B2C4620F9D5 /* ConstraintMakerPrioritizable.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ConstraintMakerPrioritizable.swift; path = Sources/ConstraintMakerPrioritizable.swift; sourceTree = ""; }; - 8CAC18A227755897168F8ACF4C5BDC5A /* IQKeyboardManagerSwift-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "IQKeyboardManagerSwift-umbrella.h"; sourceTree = ""; }; - 8E95BBEDB4B2179CF3D0186B4FE6784B /* Data+Hash.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "Data+Hash.swift"; path = "Sources/Extensions/Data+Hash.swift"; sourceTree = ""; }; - 8EEB4F8D0734EDD1E7483E37F784DFB4 /* UIView+MJExtension.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "UIView+MJExtension.m"; path = "MJRefresh/UIView+MJExtension.m"; sourceTree = ""; }; - 8F08B4014D08D679437B388E1EB6249C /* StringEncoding+Alamofire.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "StringEncoding+Alamofire.swift"; path = "Source/Extensions/StringEncoding+Alamofire.swift"; sourceTree = ""; }; - 8F1AA9619B532D7267A35CBE59DF0D7F /* ParameterEncoder.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ParameterEncoder.swift; path = Source/Core/ParameterEncoder.swift; sourceTree = ""; }; - 8F4F248B187B62F47D6D2195C41FF84A /* Typealiases.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Typealiases.swift; path = Sources/Typealiases.swift; sourceTree = ""; }; - 8F8826CA94A370457A01E12C56972CB3 /* CodingUserInfoKey+Cache.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "CodingUserInfoKey+Cache.swift"; path = "Sources/Extensions/CodingUserInfoKey+Cache.swift"; sourceTree = ""; }; - 90EA578EFDB2DA884851F1D6EF4DFB89 /* Tiercel-Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "Tiercel-Info.plist"; sourceTree = ""; }; - 9163D647AE97457039F7CCF80FCFEE3E /* MJRefreshAutoFooter.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = MJRefreshAutoFooter.h; path = MJRefresh/Base/MJRefreshAutoFooter.h; sourceTree = ""; }; - 921DF5C53AD7DEACF962A6ADEF7FFFAB /* JXSegmentedIndicatorProtocol.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = JXSegmentedIndicatorProtocol.swift; path = Sources/Indicator/JXSegmentedIndicatorProtocol.swift; sourceTree = ""; }; - 925D837B2199663A20844A9D7989BCF7 /* PrivacyInfo.xcprivacy */ = {isa = PBXFileReference; includeInIndex = 1; name = PrivacyInfo.xcprivacy; path = MJRefresh/PrivacyInfo.xcprivacy; sourceTree = ""; }; + 8A9EC97D60C19B6EC4595E86F1D00537 /* UIButton+PKDownloadButton.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "UIButton+PKDownloadButton.m"; path = "Pod/Classes/UIButton+PKDownloadButton.m"; sourceTree = ""; }; + 8AC2C00A0C5A41F4D64A8E965AADD87B /* JXSegmentedViewTool.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = JXSegmentedViewTool.swift; path = Sources/Common/JXSegmentedViewTool.swift; sourceTree = ""; }; + 8BA3C103CC568409B715494D387CC7F4 /* SVRadialGradientLayer.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SVRadialGradientLayer.h; path = SVProgressHUD/SVRadialGradientLayer.h; sourceTree = ""; }; + 8BD415DF4E0434B63CAD999FB00828B9 /* IQToolbar.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = IQToolbar.swift; path = IQKeyboardManagerSwift/IQToolbar/IQToolbar.swift; sourceTree = ""; }; + 8BEE3704E70DADA99D787D095DCF97C9 /* JXSegmentedView.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = JXSegmentedView.debug.xcconfig; sourceTree = ""; }; + 8CAEB2326B3AA2C450941202C12210D4 /* SnapKit-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "SnapKit-umbrella.h"; sourceTree = ""; }; + 8D2C68F835D1F2408841451F2FAC3843 /* MarqueeLabel-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "MarqueeLabel-prefix.pch"; sourceTree = ""; }; + 8D5E2396A67F7160A6BAEE91CF8DE309 /* CachedResponseHandler.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = CachedResponseHandler.swift; path = Source/Features/CachedResponseHandler.swift; sourceTree = ""; }; + 8F17C5948EBC1D81137E55F79E79794C /* MJRefreshConfig.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = MJRefreshConfig.h; path = MJRefresh/MJRefreshConfig.h; sourceTree = ""; }; + 90868F52B19BF2E08A1B70DCFF656B5C /* JXSegmentedIndicatorBackgroundView.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = JXSegmentedIndicatorBackgroundView.swift; path = Sources/Indicator/JXSegmentedIndicatorBackgroundView.swift; sourceTree = ""; }; + 90A81DA85C66E9E2FB3201D69AAD666D /* ImageDownloader.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ImageDownloader.swift; path = Sources/Networking/ImageDownloader.swift; sourceTree = ""; }; + 910F21CD3337049AB8881F165BD19AE9 /* Validation.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Validation.swift; path = Source/Features/Validation.swift; sourceTree = ""; }; + 9132990A6001E8384B01FF456D4DE827 /* UploadRequest.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = UploadRequest.swift; path = Source/Core/UploadRequest.swift; sourceTree = ""; }; + 913FD792342D6E20478B1A3D754EAF95 /* MJRefreshAutoFooter.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = MJRefreshAutoFooter.h; path = MJRefresh/Base/MJRefreshAutoFooter.h; sourceTree = ""; }; + 92477ADA09E2A3DC05DB6B89EEDFB913 /* KFImageRenderer.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = KFImageRenderer.swift; path = Sources/SwiftUI/KFImageRenderer.swift; sourceTree = ""; }; + 925B3EF9170B62EB96DDA4A261C43D64 /* ImageDataProcessor.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ImageDataProcessor.swift; path = Sources/Networking/ImageDataProcessor.swift; sourceTree = ""; }; 92B0EC788EDA1B0CFA48DFFCB3DDAECD /* JXSegmentedView-JXSegmentedView */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; name = "JXSegmentedView-JXSegmentedView"; path = JXSegmentedView.bundle; sourceTree = BUILT_PRODUCTS_DIR; }; - 92C1BE318995C75AF0E7E0D850A82AC6 /* ResumeDataHelper.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ResumeDataHelper.swift; path = Sources/Utility/ResumeDataHelper.swift; sourceTree = ""; }; - 943B4AB929902A7B25629F26D84D5417 /* AFError.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = AFError.swift; path = Source/Core/AFError.swift; sourceTree = ""; }; - 9501CB63FC7106D1611964238814DE16 /* DownloadButton-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "DownloadButton-umbrella.h"; sourceTree = ""; }; - 95976A54E15E258957362E209ED32279 /* Combine.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Combine.swift; path = Source/Features/Combine.swift; sourceTree = ""; }; - 95BABC6511F75F88C0D1B62787F185BC /* SnapKit.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = SnapKit.release.xcconfig; sourceTree = ""; }; - 9679621F1FAF834E4E7A10B33E6E8FE4 /* ConstraintLayoutGuideDSL.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ConstraintLayoutGuideDSL.swift; path = Sources/ConstraintLayoutGuideDSL.swift; sourceTree = ""; }; - 96CC867B24D86BDE4A44C53D0ED01481 /* Kingfisher-Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "Kingfisher-Info.plist"; sourceTree = ""; }; - 973352085D5416EA815F82D7171FFDF6 /* JXSegmentedIndicatorGradientView.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = JXSegmentedIndicatorGradientView.swift; path = Sources/Indicator/JXSegmentedIndicatorGradientView.swift; sourceTree = ""; }; - 9792F44AE5548DB0513F46CD47F1DE21 /* PrivacyInfo.xcprivacy */ = {isa = PBXFileReference; includeInIndex = 1; name = PrivacyInfo.xcprivacy; path = Sources/PrivacyInfo.xcprivacy; sourceTree = ""; }; + 93A1AF74FF3777E85CA96AB1136C31D3 /* NSTextAttachment+Kingfisher.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "NSTextAttachment+Kingfisher.swift"; path = "Sources/Extensions/NSTextAttachment+Kingfisher.swift"; sourceTree = ""; }; + 93B36940516BABBD2527915100693F88 /* ConstraintLayoutGuide.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ConstraintLayoutGuide.swift; path = Sources/ConstraintLayoutGuide.swift; sourceTree = ""; }; + 94C202F95364504949AF0B1D2FF5EA5A /* Task.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Task.swift; path = Sources/General/Task.swift; sourceTree = ""; }; + 953FC7D1F8564B6B9DC76A37A7333FA5 /* JXPagingView-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "JXPagingView-umbrella.h"; sourceTree = ""; }; + 955FB175B0F957F837E1F14A74513FF5 /* Zones.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Zones.swift; path = Sources/SwiftDate/Supports/Zones.swift; sourceTree = ""; }; + 96B3849B994F57B8B26611E06131CB08 /* PKDownloadButton.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = PKDownloadButton.h; path = Pod/Classes/PKDownloadButton.h; sourceTree = ""; }; 979486118B3E90C08386079D57962701 /* SnapKit */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; name = SnapKit; path = SnapKit.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - 9980FB822658A810BC4A3B92CAC564F9 /* AnimatedImageView.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = AnimatedImageView.swift; path = Sources/Views/AnimatedImageView.swift; sourceTree = ""; }; - 9AC6B934AA664659F00A855BE3C69DDD /* JXSegmentedIndicatorDoubleLineView.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = JXSegmentedIndicatorDoubleLineView.swift; path = Sources/Indicator/JXSegmentedIndicatorDoubleLineView.swift; sourceTree = ""; }; - 9AD4BD75CC969A381CA33489A1380AF2 /* TVMonogramView+Kingfisher.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "TVMonogramView+Kingfisher.swift"; path = "Sources/Extensions/TVMonogramView+Kingfisher.swift"; sourceTree = ""; }; - 9B7790F3FA397ABB4B74FB220532ED6D /* JXSegmentedTitleAttributeItemModel.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = JXSegmentedTitleAttributeItemModel.swift; path = Sources/AttributeTitle/JXSegmentedTitleAttributeItemModel.swift; sourceTree = ""; }; - 9C35F2387E5B65A2A9E492997862418F /* IQKeyboardManager+UITextFieldViewNotification.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "IQKeyboardManager+UITextFieldViewNotification.swift"; path = "IQKeyboardManagerSwift/IQKeyboardManager+UITextFieldViewNotification.swift"; sourceTree = ""; }; - 9C7DF955B9345F7577E38FDD9FF5C91F /* SVProgressHUD-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "SVProgressHUD-dummy.m"; sourceTree = ""; }; - 9C97D8752B07D5E7CF2EC8C6816232B1 /* ImageView+Kingfisher.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "ImageView+Kingfisher.swift"; path = "Sources/Extensions/ImageView+Kingfisher.swift"; sourceTree = ""; }; + 97C0B0DDE6518C31B73D58FD7DB4BC00 /* ImageCache.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ImageCache.swift; path = Sources/Cache/ImageCache.swift; sourceTree = ""; }; + 98EDA8CF2147231BF156393E8D125FAD /* GraphicsContext.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = GraphicsContext.swift; path = Sources/Image/GraphicsContext.swift; sourceTree = ""; }; + 9AA7A53084CE6242FC8923CB61D69A11 /* Data+Hash.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "Data+Hash.swift"; path = "Sources/Extensions/Data+Hash.swift"; sourceTree = ""; }; + 9BA92119A502CEB293041F6667E32905 /* JXSegmentedTitleGradientCell.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = JXSegmentedTitleGradientCell.swift; path = Sources/TitleGradient/JXSegmentedTitleGradientCell.swift; sourceTree = ""; }; + 9BB1B70D50E125F5116226218AD83F85 /* ConstraintItem.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ConstraintItem.swift; path = Sources/ConstraintItem.swift; sourceTree = ""; }; + 9CA4F7B8603C3C6B06E3EC0DD58D9C71 /* DateRepresentable.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = DateRepresentable.swift; path = Sources/SwiftDate/DateRepresentable.swift; sourceTree = ""; }; + 9D271C33ED404BEC1B70C06271250403 /* Kingfisher-Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "Kingfisher-Info.plist"; sourceTree = ""; }; + 9D3801B2B1F7A26DC6F5168E5215724C /* ResourceBundle-DownloadButton-DownloadButton-Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "ResourceBundle-DownloadButton-DownloadButton-Info.plist"; sourceTree = ""; }; + 9D44F73F60EAA2C6700435B40B54AA74 /* MJRefreshAutoFooter.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = MJRefreshAutoFooter.m; path = MJRefresh/Base/MJRefreshAutoFooter.m; sourceTree = ""; }; + 9D871BE2C3416A74C644B64DBF2B5DC6 /* IQKeyboardManager+Position.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "IQKeyboardManager+Position.swift"; path = "IQKeyboardManagerSwift/IQKeyboardManager+Position.swift"; sourceTree = ""; }; + 9D8B7EF73D50EE3EC8D8AB0CD2F05FDC /* JXSegmentedTitleCell.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = JXSegmentedTitleCell.swift; path = Sources/Title/JXSegmentedTitleCell.swift; sourceTree = ""; }; 9D940727FF8FB9C785EB98E56350EF41 /* Podfile */ = {isa = PBXFileReference; explicitFileType = text.script.ruby; includeInIndex = 1; indentWidth = 2; lastKnownFileType = text; name = Podfile; path = ../Podfile; sourceTree = SOURCE_ROOT; tabWidth = 2; xcLanguageSpecificationIdentifier = xcode.lang.ruby; }; - 9DA69B15763E7B151A7EEA0B2B4CFBEC /* ImageDrawing.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ImageDrawing.swift; path = Sources/Image/ImageDrawing.swift; sourceTree = ""; }; - 9E37DE5812B553F480F77912701EA0FC /* ISOFormatter.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ISOFormatter.swift; path = Sources/SwiftDate/Formatters/ISOFormatter.swift; sourceTree = ""; }; - 9E68924120FED7DCF99A872FFA9F54DC /* NSButton+Kingfisher.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "NSButton+Kingfisher.swift"; path = "Sources/Extensions/NSButton+Kingfisher.swift"; sourceTree = ""; }; - 9E838A9978878D207DDD07D9A91E87A7 /* Array+Safe.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "Array+Safe.swift"; path = "Sources/Extensions/Array+Safe.swift"; sourceTree = ""; }; - 9E9C802ADF9427945AB4EA05DD6D3BD0 /* PrivacyInfo.xcprivacy */ = {isa = PBXFileReference; includeInIndex = 1; name = PrivacyInfo.xcprivacy; path = Sources/PrivacyInfo.xcprivacy; sourceTree = ""; }; - 9F280E6832B7DEB6EE4B0A57BFF44C5E /* MJRefreshTrailer.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = MJRefreshTrailer.h; path = MJRefresh/Base/MJRefreshTrailer.h; sourceTree = ""; }; - A021004CAD79AEA622FEC4542DDAA9D4 /* SVRadialGradientLayer.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SVRadialGradientLayer.h; path = SVProgressHUD/SVRadialGradientLayer.h; sourceTree = ""; }; - A1229D3D5E49A73412E7928353BDF391 /* JXSegmentedView-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "JXSegmentedView-umbrella.h"; sourceTree = ""; }; - A1B35519C98323C92C768E8314BB5556 /* ConstraintLayoutSupport.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ConstraintLayoutSupport.swift; path = Sources/ConstraintLayoutSupport.swift; sourceTree = ""; }; - A22FE36A8F227F453C912C889465A37A /* JXPagingView.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = JXPagingView.release.xcconfig; sourceTree = ""; }; - A2B3E2B6010CFF743A48926748C6DD1D /* RelativeFormatter+Style.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "RelativeFormatter+Style.swift"; path = "Sources/SwiftDate/Formatters/RelativeFormatter/RelativeFormatter+Style.swift"; sourceTree = ""; }; - A56B327BFF93535BA9BFA03A6E2AB1C9 /* Date.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Date.swift; path = Sources/SwiftDate/Date/Date.swift; sourceTree = ""; }; - A6917BE14409B42BCCE066BCF77930BF /* ConstraintMaker.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ConstraintMaker.swift; path = Sources/ConstraintMaker.swift; sourceTree = ""; }; + 9DD63E7F57872EECA1B11850AC15C93E /* ConstraintMakerRelatable.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ConstraintMakerRelatable.swift; path = Sources/ConstraintMakerRelatable.swift; sourceTree = ""; }; + 9E6116C1253A5B521CBB9102BB9766D4 /* SwiftDate.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = SwiftDate.release.xcconfig; sourceTree = ""; }; + 9EE6328AB6C72590DE803C111C37A60A /* MJRefresh-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "MJRefresh-umbrella.h"; sourceTree = ""; }; + 9F1DD919E6FEB406815EA8275F490877 /* ImageDownloaderDelegate.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ImageDownloaderDelegate.swift; path = Sources/Networking/ImageDownloaderDelegate.swift; sourceTree = ""; }; + A0237D9541BF734A21ABB974F665057B /* SnapKit.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = SnapKit.release.xcconfig; sourceTree = ""; }; + A02680B209797E014A9CB2E457201E74 /* MJRefresh.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = MJRefresh.h; path = MJRefresh/MJRefresh.h; sourceTree = ""; }; + A04E95A84D68E6C700795D5A112CC666 /* UIImage+PKDownloadButton.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "UIImage+PKDownloadButton.h"; path = "Pod/Classes/UIImage+PKDownloadButton.h"; sourceTree = ""; }; + A05D76B3DC19D0B92299EEAC15498891 /* ImageFormat.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ImageFormat.swift; path = Sources/Image/ImageFormat.swift; sourceTree = ""; }; + A22F8A41B6D2270432A011E71F734FA4 /* NSBundle+MJRefresh.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "NSBundle+MJRefresh.m"; path = "MJRefresh/NSBundle+MJRefresh.m"; sourceTree = ""; }; + A2B99C0D768123D8E998850C1C856C0E /* Date+Create.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "Date+Create.swift"; path = "Sources/SwiftDate/Date/Date+Create.swift"; sourceTree = ""; }; + A341A1C7CF6477FB5A94AD2E54AE987D /* SwiftDate-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "SwiftDate-prefix.pch"; sourceTree = ""; }; + A3832FE8D85FB9947D3D2EEB36F8DBDF /* JXSegmentedView-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "JXSegmentedView-prefix.pch"; sourceTree = ""; }; + A479C4969D1F508A7852E903C140798E /* ConstraintDirectionalInsetTarget.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ConstraintDirectionalInsetTarget.swift; path = Sources/ConstraintDirectionalInsetTarget.swift; sourceTree = ""; }; + A4FB2F0378651B15C91908EFC5DC27CB /* TimePeriod+Support.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "TimePeriod+Support.swift"; path = "Sources/SwiftDate/TimePeriod/TimePeriod+Support.swift"; sourceTree = ""; }; + A5089A55177AC7BFF0A6C618FC9C79DF /* ImageContext.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ImageContext.swift; path = Sources/SwiftUI/ImageContext.swift; sourceTree = ""; }; + A54156DD4825B5F1C49FFDE72E5CA3D2 /* Resource.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Resource.swift; path = Sources/General/ImageSource/Resource.swift; sourceTree = ""; }; + A5C3A22AED22F776F49519A0F9086543 /* SVIndefiniteAnimatedView.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SVIndefiniteAnimatedView.h; path = SVProgressHUD/SVIndefiniteAnimatedView.h; sourceTree = ""; }; + A6A506A57BEBD985E5CA2ABEF70A3C8A /* Image.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Image.swift; path = Sources/Image/Image.swift; sourceTree = ""; }; A6A74933CD02E6DBD2AFCF807116B6CB /* DownloadButton-DownloadButton */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; name = "DownloadButton-DownloadButton"; path = DownloadButton.bundle; sourceTree = BUILT_PRODUCTS_DIR; }; - A6D32E291293B13F725561460AD6A55C /* MJRefresh-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "MJRefresh-dummy.m"; sourceTree = ""; }; - A6D9CAFC76446D6E86E66C731621FEC0 /* MJRefresh-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "MJRefresh-prefix.pch"; sourceTree = ""; }; - A6E6534DDCD659B76C219B8202688BCF /* ConstraintPriority.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ConstraintPriority.swift; path = Sources/ConstraintPriority.swift; sourceTree = ""; }; - A83CB2EE68C6DADEBF0AE3E48F9A005F /* IQBarButtonItem.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = IQBarButtonItem.swift; path = IQKeyboardManagerSwift/IQToolbar/IQBarButtonItem.swift; sourceTree = ""; }; - A8D8CA8FE715EF134ED3F7DAF0DBCE8C /* ImageDownloaderDelegate.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ImageDownloaderDelegate.swift; path = Sources/Networking/ImageDownloaderDelegate.swift; sourceTree = ""; }; + A713E330CC0DEBC3A761CED11A4795D4 /* SVProgressHUD.bundle */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = "wrapper.plug-in"; name = SVProgressHUD.bundle; path = SVProgressHUD/SVProgressHUD.bundle; sourceTree = ""; }; + A75CD4D4DC0FF7F566716FFDB363ADA2 /* MJRefreshAutoGifFooter.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = MJRefreshAutoGifFooter.h; path = MJRefresh/Custom/Footer/Auto/MJRefreshAutoGifFooter.h; sourceTree = ""; }; + A7772DA4BDA381D5C4F75BCDD92362F9 /* SessionDelegate.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = SessionDelegate.swift; path = Sources/Networking/SessionDelegate.swift; sourceTree = ""; }; + A8AEFC03D74F434693AD37863156695D /* JXSegmentedTitleImageDataSource.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = JXSegmentedTitleImageDataSource.swift; path = Sources/TitleImage/JXSegmentedTitleImageDataSource.swift; sourceTree = ""; }; A8E950A16D00F649C54FFB30F81D7842 /* IQKeyboardManagerSwift */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; name = IQKeyboardManagerSwift; path = IQKeyboardManagerSwift.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - A99C6D78247F219367F4F8AB8CC454FF /* IQKeyboardManagerSwift.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = IQKeyboardManagerSwift.release.xcconfig; sourceTree = ""; }; - AA2DB24577A445C4239E287940618202 /* GraphicsContext.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = GraphicsContext.swift; path = Sources/Image/GraphicsContext.swift; sourceTree = ""; }; + A96639B1598DB44935B4470271613AFB /* IQKeyboardManager+UITextFieldViewNotification.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "IQKeyboardManager+UITextFieldViewNotification.swift"; path = "IQKeyboardManagerSwift/IQKeyboardManager+UITextFieldViewNotification.swift"; sourceTree = ""; }; + AA063E0C0841D9CBEAFF14BEAD5D3CE8 /* SessionManager.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = SessionManager.swift; path = Sources/General/SessionManager.swift; sourceTree = ""; }; + AA23D6F550CE77AB601F0A0B2ED964C6 /* TimePeriodProtocol.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = TimePeriodProtocol.swift; path = Sources/SwiftDate/TimePeriod/TimePeriodProtocol.swift; sourceTree = ""; }; AA39C6D2448DC5A9AD18DDA3C96A1A0F /* Accelerate.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Accelerate.framework; path = Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS14.0.sdk/System/Library/Frameworks/Accelerate.framework; sourceTree = DEVELOPER_DIR; }; - AADF28D0E64A62FD56B8309A059DAF2E /* Kingfisher.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.module; path = Kingfisher.modulemap; sourceTree = ""; }; - ACBBC1D95C681D2EBBB6FD5B9B42E31D /* UIImage+PKDownloadButton.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "UIImage+PKDownloadButton.h"; path = "Pod/Classes/UIImage+PKDownloadButton.h"; sourceTree = ""; }; - ADA5CDD301DBE830624CF36B02780913 /* PKDownloadButton.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = PKDownloadButton.m; path = Pod/Classes/PKDownloadButton.m; sourceTree = ""; }; - AE0377199CCDD24F4CC50F4CEDE27371 /* JXSegmentedView-Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "JXSegmentedView-Info.plist"; sourceTree = ""; }; - AF2A15BB017E1D7AE830361846A137F0 /* Notifications.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Notifications.swift; path = Sources/General/Notifications.swift; sourceTree = ""; }; - AF8CCDE7D9B91A3A3BBF803B79C651AB /* Date+Components.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "Date+Components.swift"; path = "Sources/SwiftDate/Date/Date+Components.swift"; sourceTree = ""; }; - B13BD50E4EC6A725E6E81F3572320A45 /* ImageFormat.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ImageFormat.swift; path = Sources/Image/ImageFormat.swift; sourceTree = ""; }; - B36ED78664334F6F31ABE61907B9F48B /* UIColor+PKDownloadButton.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "UIColor+PKDownloadButton.h"; path = "Pod/Classes/UIColor+PKDownloadButton.h"; sourceTree = ""; }; - B448667264F601C0B45F3EED80D8646C /* MJRefreshHeader.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = MJRefreshHeader.m; path = MJRefresh/Base/MJRefreshHeader.m; sourceTree = ""; }; + AA4F799B3FC61A81E6D33FEAB0B1267E /* ImageView+Kingfisher.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "ImageView+Kingfisher.swift"; path = "Sources/Extensions/ImageView+Kingfisher.swift"; sourceTree = ""; }; + AB74D4B0A0E85EFD5BED4E414FF4EFBF /* ConstraintDirectionalInsets.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ConstraintDirectionalInsets.swift; path = Sources/ConstraintDirectionalInsets.swift; sourceTree = ""; }; + AB883732E46A5484BBD2DBC929A9BDE2 /* ConstraintLayoutGuide+Extensions.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "ConstraintLayoutGuide+Extensions.swift"; path = "Sources/ConstraintLayoutGuide+Extensions.swift"; sourceTree = ""; }; + AC40E3618D748C02FC87EABC6B1128F5 /* ISOParser.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ISOParser.swift; path = Sources/SwiftDate/Formatters/ISOParser.swift; sourceTree = ""; }; + AC90EB3E707F329ECED58BF078742EBA /* FileChecksumHelper.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = FileChecksumHelper.swift; path = Sources/Utility/FileChecksumHelper.swift; sourceTree = ""; }; + ADF9D748AB9232ECD519C2A7219DEDA3 /* ImagePrefetcher.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ImagePrefetcher.swift; path = Sources/Networking/ImagePrefetcher.swift; sourceTree = ""; }; + AF0A56F7A9B298E04E4730EE1A0B362A /* JXSegmentedView-Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "JXSegmentedView-Info.plist"; sourceTree = ""; }; + AF4C256D8A18BF50D1ED6AD8B2B3B4C1 /* IQKeyboardManagerSwift-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "IQKeyboardManagerSwift-prefix.pch"; sourceTree = ""; }; + AF603AAB8E1A44C4F5701C81A01D1DBE /* JXSegmentedBaseCell.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = JXSegmentedBaseCell.swift; path = Sources/Core/JXSegmentedBaseCell.swift; sourceTree = ""; }; + AFDD721B961419036553BB7F816B5B9E /* Tiercel-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "Tiercel-umbrella.h"; sourceTree = ""; }; + B004488D8C4C6AC1F196AE21E80BF4AC /* Double+TaskInfo.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "Double+TaskInfo.swift"; path = "Sources/Extensions/Double+TaskInfo.swift"; sourceTree = ""; }; + B0524D8BA55EB77A9786839D001228E5 /* FormatIndicatedCacheSerializer.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = FormatIndicatedCacheSerializer.swift; path = Sources/Cache/FormatIndicatedCacheSerializer.swift; sourceTree = ""; }; + B083BDB134F183783F9CA8EE5D001949 /* KingfisherError.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = KingfisherError.swift; path = Sources/General/KingfisherError.swift; sourceTree = ""; }; + B143CD633633C08DB7AF7A0DBD6F28AC /* MarqueeLabel-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "MarqueeLabel-dummy.m"; sourceTree = ""; }; + B14BD1FA29CD461D96C4926A105568E7 /* ResourceBundle-Alamofire-Alamofire-Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "ResourceBundle-Alamofire-Alamofire-Info.plist"; sourceTree = ""; }; + B1587162BFA679126670ABAF09D8E3DD /* DownloadButton.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = DownloadButton.release.xcconfig; sourceTree = ""; }; + B18AE0202CE7B90525259BA625A527F6 /* HTTPHeaders.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = HTTPHeaders.swift; path = Source/Core/HTTPHeaders.swift; sourceTree = ""; }; + B240B0622C4AC6081D7EDFC6202A7A07 /* ConstraintViewDSL.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ConstraintViewDSL.swift; path = Sources/ConstraintViewDSL.swift; sourceTree = ""; }; + B2703C2DE8F79F4582B6E3096674C625 /* OperationQueue+Alamofire.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "OperationQueue+Alamofire.swift"; path = "Source/Extensions/OperationQueue+Alamofire.swift"; sourceTree = ""; }; + B2E569FD6AE02A7A1DC3F55132F39D8B /* MarqueeLabel.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = MarqueeLabel.debug.xcconfig; sourceTree = ""; }; B4B8063291033C95A8B2A24FA2AD7A79 /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS14.0.sdk/System/Library/Frameworks/Foundation.framework; sourceTree = DEVELOPER_DIR; }; - B4E04173C3016FD3365BEAF7FE2945DE /* ConstraintView+Extensions.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "ConstraintView+Extensions.swift"; path = "Sources/ConstraintView+Extensions.swift"; sourceTree = ""; }; - B65B57EA9496FB2C3B6BDA5D6B4E48EE /* String+MD5.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "String+MD5.swift"; path = "Sources/Utility/String+MD5.swift"; sourceTree = ""; }; - B677BF4BFAA0171DA9C1D3C4AE1B43B2 /* IQUIView+Hierarchy.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "IQUIView+Hierarchy.swift"; path = "IQKeyboardManagerSwift/Categories/IQUIView+Hierarchy.swift"; sourceTree = ""; }; - B7247B90BE8C143C488A363432AC00FA /* Task.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Task.swift; path = Sources/General/Task.swift; sourceTree = ""; }; - B72DA7D36E4584007B5A7E1B88B9331C /* DownloadTask.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = DownloadTask.swift; path = Sources/General/DownloadTask.swift; sourceTree = ""; }; - B7AB5B878CFAEDB0CFA466A32417E423 /* PKStopDownloadButton.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = PKStopDownloadButton.h; path = Pod/Classes/PKStopDownloadButton.h; sourceTree = ""; }; - B7BD2268271963463BE2EE4764623A5D /* JXSegmentedIndicatorLineView.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = JXSegmentedIndicatorLineView.swift; path = Sources/Indicator/JXSegmentedIndicatorLineView.swift; sourceTree = ""; }; - B90745D19853BE9EDA09363759828B91 /* UICollectionViewLayout+MJRefresh.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "UICollectionViewLayout+MJRefresh.m"; path = "MJRefresh/UICollectionViewLayout+MJRefresh.m"; sourceTree = ""; }; - B92C64DC7D87ACAD9C31FE09D0D6DB09 /* Concurrency.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Concurrency.swift; path = Source/Features/Concurrency.swift; sourceTree = ""; }; - B9A87F9FE41AFEB6DCC62443F70031C7 /* MJRefreshNormalHeader.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = MJRefreshNormalHeader.h; path = MJRefresh/Custom/Header/MJRefreshNormalHeader.h; sourceTree = ""; }; + B54BA2B28F4FA97B93861310BDA561C4 /* JXSegmentedTitleImageItemModel.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = JXSegmentedTitleImageItemModel.swift; path = Sources/TitleImage/JXSegmentedTitleImageItemModel.swift; sourceTree = ""; }; + B594663419E69E24C485630B047940CD /* SwiftDate.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.module; path = SwiftDate.modulemap; sourceTree = ""; }; + B5C5FBF667B1635D66E7702443A795A4 /* JXSegmentedIndicatorRainbowLineView.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = JXSegmentedIndicatorRainbowLineView.swift; path = Sources/Indicator/JXSegmentedIndicatorRainbowLineView.swift; sourceTree = ""; }; + B630EB0D57457813941147FFA1FC226E /* SVProgressHUD.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = SVProgressHUD.debug.xcconfig; sourceTree = ""; }; + B803220E5945CD79C62D45CBE3A42ABE /* ConstraintLayoutGuideDSL.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ConstraintLayoutGuideDSL.swift; path = Sources/ConstraintLayoutGuideDSL.swift; sourceTree = ""; }; + B89D376B272B2FA5F769BC4CEEE83B5C /* JXPagingView-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "JXPagingView-prefix.pch"; sourceTree = ""; }; + B9751538A41C93069AC520FC8ADDD990 /* JXSegmentedTitleImageCell.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = JXSegmentedTitleImageCell.swift; path = Sources/TitleImage/JXSegmentedTitleImageCell.swift; sourceTree = ""; }; B9DCB5EC0B1CDADD221717CADDF62359 /* SnapKit-SnapKit_Privacy */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; name = "SnapKit-SnapKit_Privacy"; path = SnapKit_Privacy.bundle; sourceTree = BUILT_PRODUCTS_DIR; }; - BA33079BECD4700E35095C06C7661A11 /* JXSegmentedTitleItemModel.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = JXSegmentedTitleItemModel.swift; path = Sources/Title/JXSegmentedTitleItemModel.swift; sourceTree = ""; }; - BAA7604C1393503F47A4EEB1F6A2999B /* FileChecksumHelper.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = FileChecksumHelper.swift; path = Sources/Utility/FileChecksumHelper.swift; sourceTree = ""; }; - BAB2C96206F96650F4283CA3DF48FF32 /* MJRefreshConfig.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = MJRefreshConfig.m; path = MJRefresh/MJRefreshConfig.m; sourceTree = ""; }; - BAC35232D14B3BFBE9C56633C116BB4D /* Result+Alamofire.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "Result+Alamofire.swift"; path = "Source/Extensions/Result+Alamofire.swift"; sourceTree = ""; }; - BB5803B78D37B44F74D50F13C1FBDDD5 /* DisplayLink.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = DisplayLink.swift; path = Sources/Utility/DisplayLink.swift; sourceTree = ""; }; - BBBF0A136D849C2FA87A9508A1DA8387 /* KingfisherManager.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = KingfisherManager.swift; path = Sources/General/KingfisherManager.swift; sourceTree = ""; }; - BC2C9781FC9F953ABBE8D0069D3562FA /* SnapKit-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "SnapKit-umbrella.h"; sourceTree = ""; }; - BD1251C43198DD226402B31E21D75161 /* MJRefreshBackStateFooter.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = MJRefreshBackStateFooter.h; path = MJRefresh/Custom/Footer/Back/MJRefreshBackStateFooter.h; sourceTree = ""; }; - BD36969B19B33F782A8731FD12DE04F2 /* JXSegmentedTitleAttributeDataSource.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = JXSegmentedTitleAttributeDataSource.swift; path = Sources/AttributeTitle/JXSegmentedTitleAttributeDataSource.swift; sourceTree = ""; }; - BE62833E8E1ADEDCF1681D442012F80B /* TimePeriodGroup.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = TimePeriodGroup.swift; path = Sources/SwiftDate/TimePeriod/Groups/TimePeriodGroup.swift; sourceTree = ""; }; - C0584F1E05D493C986B42E3E281DA2E0 /* ImageProgressive.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ImageProgressive.swift; path = Sources/Image/ImageProgressive.swift; sourceTree = ""; }; + BB9A3310F4C2D7FF46E05C5C085EFB8C /* Typealiases.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Typealiases.swift; path = Sources/Typealiases.swift; sourceTree = ""; }; + BC4168D55A1803CD9FF8E4EE13C46B71 /* AFError.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = AFError.swift; path = Source/Core/AFError.swift; sourceTree = ""; }; + BCFE95735F6A3DD9DA858134D05A1A19 /* ResourceBundle-MarqueeLabel-MarqueeLabel-Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "ResourceBundle-MarqueeLabel-MarqueeLabel-Info.plist"; sourceTree = ""; }; + BD8A222583C51A0B76B606A5D28C3AC9 /* JXSegmentedTitleAttributeCell.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = JXSegmentedTitleAttributeCell.swift; path = Sources/AttributeTitle/JXSegmentedTitleAttributeCell.swift; sourceTree = ""; }; + BDA6861F693C9A7F89FADBFCDF8B4DC8 /* langs */ = {isa = PBXFileReference; includeInIndex = 1; name = langs; path = Sources/SwiftDate/Formatters/RelativeFormatter/langs; sourceTree = ""; }; + BE341138A72B8913BD879A77F75CBD06 /* Filter.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Filter.swift; path = Sources/Image/Filter.swift; sourceTree = ""; }; + BEA6DFC5EDEDBA9D67A35572352AA3C4 /* DisplayLink.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = DisplayLink.swift; path = Sources/Utility/DisplayLink.swift; sourceTree = ""; }; + BF06AC62113E5692AF1F4761A2616AC8 /* MJRefresh.bundle */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = "wrapper.plug-in"; name = MJRefresh.bundle; path = MJRefresh/MJRefresh.bundle; sourceTree = ""; }; + BF98BFA0D0A06425E83174B4F21DCB21 /* ISOFormatter.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ISOFormatter.swift; path = Sources/SwiftDate/Formatters/ISOFormatter.swift; sourceTree = ""; }; + BFD7D664E057D7E5D8262EA574E4238E /* PrivacyInfo.xcprivacy */ = {isa = PBXFileReference; includeInIndex = 1; name = PrivacyInfo.xcprivacy; path = SVProgressHUD/PrivacyInfo.xcprivacy; sourceTree = ""; }; C07BEF0CE5DECC5BDCAC8625BF2FFA4B /* QuartzCore.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = QuartzCore.framework; path = Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS14.0.sdk/System/Library/Frameworks/QuartzCore.framework; sourceTree = DEVELOPER_DIR; }; - C0E89285C61C5207A9708CC303A59A3D /* Filter.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Filter.swift; path = Sources/Image/Filter.swift; sourceTree = ""; }; - C12185FB2573B4C8D8B59C61313334FA /* JXSegmentedTitleDataSource.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = JXSegmentedTitleDataSource.swift; path = Sources/Title/JXSegmentedTitleDataSource.swift; sourceTree = ""; }; - C1B1EF889925B42A1C1D10C0CDEB9439 /* ConstraintViewDSL.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ConstraintViewDSL.swift; path = Sources/ConstraintViewDSL.swift; sourceTree = ""; }; + C0A804BAF6EBDD252765A7DD178EA318 /* JXSegmentedDotCell.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = JXSegmentedDotCell.swift; path = Sources/Dot/JXSegmentedDotCell.swift; sourceTree = ""; }; + C0BE2DDD0E10875AE143D7839F201491 /* Tiercel-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "Tiercel-dummy.m"; sourceTree = ""; }; + C1A54DC86334B340EDFF3A979BBD5779 /* DownloadButton-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "DownloadButton-dummy.m"; sourceTree = ""; }; + C1CA9AD43CC89D078D46C132C44AB4A4 /* MJRefreshBackNormalFooter.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = MJRefreshBackNormalFooter.m; path = MJRefresh/Custom/Footer/Back/MJRefreshBackNormalFooter.m; sourceTree = ""; }; + C20FA9B8AFEC263D98FDA510EF5428F4 /* IQNSArray+Sort.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "IQNSArray+Sort.swift"; path = "IQKeyboardManagerSwift/Categories/IQNSArray+Sort.swift"; sourceTree = ""; }; C298ABB78D9B05529B89D8322DB2E7B0 /* Kingfisher-Kingfisher */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; name = "Kingfisher-Kingfisher"; path = Kingfisher.bundle; sourceTree = BUILT_PRODUCTS_DIR; }; - C2A860AD8157623726249D825FCF2497 /* ConstraintRelatableTarget.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ConstraintRelatableTarget.swift; path = Sources/ConstraintRelatableTarget.swift; sourceTree = ""; }; + C36A6C9D52AF7D31EA7F08AA56D00180 /* TimePeriodGroup.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = TimePeriodGroup.swift; path = Sources/SwiftDate/TimePeriod/Groups/TimePeriodGroup.swift; sourceTree = ""; }; + C3C485FF66388D1EB16387D1E50F9941 /* JXPagingView-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "JXPagingView-dummy.m"; sourceTree = ""; }; C3F44C782D64D7EB20B61CE3844EBFAD /* Kingfisher */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; name = Kingfisher; path = Kingfisher.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - C481FA53A11A89DFFE144CC2281C24EF /* UIScrollView+MJRefresh.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "UIScrollView+MJRefresh.h"; path = "MJRefresh/UIScrollView+MJRefresh.h"; sourceTree = ""; }; - C5442AB6A892B9A10912AD30DA233E1F /* MJRefreshConfig.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = MJRefreshConfig.h; path = MJRefresh/MJRefreshConfig.h; sourceTree = ""; }; - C5F2A9D2AE5EC1D15C9A439CA951F28B /* NSBundle+MJRefresh.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "NSBundle+MJRefresh.m"; path = "MJRefresh/NSBundle+MJRefresh.m"; sourceTree = ""; }; - C62096F4F3683376BE4C36F7B352D6CC /* ResourceBundle-DownloadButton-DownloadButton-Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "ResourceBundle-DownloadButton-DownloadButton-Info.plist"; sourceTree = ""; }; - C664257C5969700D7E1B383F33E56FEB /* DateInRegion+Components.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "DateInRegion+Components.swift"; path = "Sources/SwiftDate/DateInRegion/DateInRegion+Components.swift"; sourceTree = ""; }; - C84028ADE6846E4323ACB15E19ADC090 /* DownloadButton-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "DownloadButton-dummy.m"; sourceTree = ""; }; - C862128BE47B7F41A1A5B3C534DF20F5 /* Tiercel.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = Tiercel.debug.xcconfig; sourceTree = ""; }; - C8A5ADD5FBC68E5721C4365B19487007 /* ImageContext.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ImageContext.swift; path = Sources/SwiftUI/ImageContext.swift; sourceTree = ""; }; - C8E7EA8D9C5A64029EF6EFB7F209B083 /* ConstraintConfig.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ConstraintConfig.swift; path = Sources/ConstraintConfig.swift; sourceTree = ""; }; - C9397F1FCED3510EBB2284C79B399F64 /* JXPagingView-Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "JXPagingView-Info.plist"; sourceTree = ""; }; - C96320C10EC8C1C2EEC4BB8A0B01B640 /* SVProgressHUD-Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "SVProgressHUD-Info.plist"; sourceTree = ""; }; - C9C7778B4AC6393E18E528CDD07E3F8D /* JXSegmentedTitleOrImageDataSource.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = JXSegmentedTitleOrImageDataSource.swift; path = Sources/TitleOrImage/JXSegmentedTitleOrImageDataSource.swift; sourceTree = ""; }; - C9D3123CA4DB0F7B9B4E0A0F76ADE2B7 /* SizeExtensions.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = SizeExtensions.swift; path = Sources/Utility/SizeExtensions.swift; sourceTree = ""; }; - C9D8041C1E832ED61831FAE327CF2883 /* MJRefresh-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "MJRefresh-umbrella.h"; sourceTree = ""; }; + C4E948AF2BE57221FF0FCEF5775EBBEF /* UILayoutSupport+Extensions.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "UILayoutSupport+Extensions.swift"; path = "Sources/UILayoutSupport+Extensions.swift"; sourceTree = ""; }; + C51A4E89875641A52F30561B602453E5 /* DiskStorage.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = DiskStorage.swift; path = Sources/Cache/DiskStorage.swift; sourceTree = ""; }; + C52CB88FD984A6FB84683407A504D382 /* IQKeyboardManagerConstants.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = IQKeyboardManagerConstants.swift; path = IQKeyboardManagerSwift/Constants/IQKeyboardManagerConstants.swift; sourceTree = ""; }; + C53B57243C12253DFF4D521DA23D9124 /* Tiercel.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = Tiercel.debug.xcconfig; sourceTree = ""; }; + C56759DC72BE3E295255912D3346F86F /* ConstraintRelatableTarget.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ConstraintRelatableTarget.swift; path = Sources/ConstraintRelatableTarget.swift; sourceTree = ""; }; + C56F2770F14FFB52F18B08F7BC6A7C4C /* MJRefreshStateHeader.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = MJRefreshStateHeader.h; path = MJRefresh/Custom/Header/MJRefreshStateHeader.h; sourceTree = ""; }; + C5EBB178A1D51C38C6D030242C68E41C /* DateInRegion.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = DateInRegion.swift; path = Sources/SwiftDate/DateInRegion/DateInRegion.swift; sourceTree = ""; }; + C6875035947686EB58790FA26575254B /* Alamofire.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = Alamofire.debug.xcconfig; sourceTree = ""; }; + C6C4B2FB359BAF9C49695E7D50FFC4D2 /* ConstraintAttributes.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ConstraintAttributes.swift; path = Sources/ConstraintAttributes.swift; sourceTree = ""; }; + C723BAF098E360E89C3837C2C28AAC23 /* SVProgressAnimatedView.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SVProgressAnimatedView.h; path = SVProgressHUD/SVProgressAnimatedView.h; sourceTree = ""; }; + C7280B062A7EAD9FFA0FEC16E1936C6E /* ConstraintView.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ConstraintView.swift; path = Sources/ConstraintView.swift; sourceTree = ""; }; + C7316A7F04B5390E547BCE5243EAA31F /* MJRefreshStateHeader.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = MJRefreshStateHeader.m; path = MJRefresh/Custom/Header/MJRefreshStateHeader.m; sourceTree = ""; }; + C78904CEF7B984BB219400B0132C5750 /* Int64+TaskInfo.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "Int64+TaskInfo.swift"; path = "Sources/Extensions/Int64+TaskInfo.swift"; sourceTree = ""; }; + C83CA5A1A860D5596AEBFBC4F15135E1 /* Result.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Result.swift; path = Sources/Utility/Result.swift; sourceTree = ""; }; + C84551F146725C38A8BF32264CB9D233 /* IQBarButtonItem.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = IQBarButtonItem.swift; path = IQKeyboardManagerSwift/IQToolbar/IQBarButtonItem.swift; sourceTree = ""; }; + C8746755854783E52DEFB00615699F5D /* SizeExtensions.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = SizeExtensions.swift; path = Sources/Utility/SizeExtensions.swift; sourceTree = ""; }; + C95D6CCF3E0FD33F5C451665C2330257 /* MJRefresh-Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "MJRefresh-Info.plist"; sourceTree = ""; }; + C97BEE5E450A5E886F39744CBDD8E4E3 /* DateInRegion+Create.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "DateInRegion+Create.swift"; path = "Sources/SwiftDate/DateInRegion/DateInRegion+Create.swift"; sourceTree = ""; }; + C9D5D3B28B85FDD2F58AC6C511AFF54B /* SessionConfiguration.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = SessionConfiguration.swift; path = Sources/General/SessionConfiguration.swift; sourceTree = ""; }; + CA2334A7F161A92437E85AAEFF3C3F57 /* MJRefreshBackGifFooter.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = MJRefreshBackGifFooter.m; path = MJRefresh/Custom/Footer/Back/MJRefreshBackGifFooter.m; sourceTree = ""; }; CA3954DC2A3A10C8903004C67DB104CD /* Pods-relax.offline.mp3.music-frameworks.sh */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.script.sh; path = "Pods-relax.offline.mp3.music-frameworks.sh"; sourceTree = ""; }; - CA79BA165572FB323A04D46617357847 /* CacheSerializer.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = CacheSerializer.swift; path = Sources/Cache/CacheSerializer.swift; sourceTree = ""; }; - CC1D505E6DC2A1CF3359546A71AE8A0E /* FormatIndicatedCacheSerializer.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = FormatIndicatedCacheSerializer.swift; path = Sources/Cache/FormatIndicatedCacheSerializer.swift; sourceTree = ""; }; - CCE48D759A3729A1F7C0EACD9C5C2827 /* IQKeyboardManager.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = IQKeyboardManager.swift; path = IQKeyboardManagerSwift/IQKeyboardManager.swift; sourceTree = ""; }; - CCF42DE6BA4D1820E5ACCC22C6AE1458 /* DownloadRequest.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = DownloadRequest.swift; path = Source/Core/DownloadRequest.swift; sourceTree = ""; }; - CD5E96189BF77251A0A7D74615A24812 /* Tiercel-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "Tiercel-umbrella.h"; sourceTree = ""; }; - CE1B1EF4353BA9FDF0D8F6E2CD68A1DA /* UIColor+PKDownloadButton.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "UIColor+PKDownloadButton.m"; path = "Pod/Classes/UIColor+PKDownloadButton.m"; sourceTree = ""; }; - CE67A08E936C10061A3F4C42C4D46A1F /* RelativeFormatterLanguage.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = RelativeFormatterLanguage.swift; path = Sources/SwiftDate/Formatters/RelativeFormatter/RelativeFormatterLanguage.swift; sourceTree = ""; }; - CEEF956203C250D6ED823C9BDA708B41 /* MultipartFormData.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = MultipartFormData.swift; path = Source/Features/MultipartFormData.swift; sourceTree = ""; }; - CEFEECFBF08685D5B7EFA9372FB2EB7E /* JXSegmentedIndicatorBackgroundView.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = JXSegmentedIndicatorBackgroundView.swift; path = Sources/Indicator/JXSegmentedIndicatorBackgroundView.swift; sourceTree = ""; }; - D08CC0CCF224643BE2E2DBBFF55B6ABB /* ConstraintMultiplierTarget.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ConstraintMultiplierTarget.swift; path = Sources/ConstraintMultiplierTarget.swift; sourceTree = ""; }; + CB21BE53AD315A53D3028EB684445858 /* LayoutConstraintItem.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = LayoutConstraintItem.swift; path = Sources/LayoutConstraintItem.swift; sourceTree = ""; }; + CBE5626C57DF328776BD0D2C05BB609E /* DownloadButton-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "DownloadButton-umbrella.h"; sourceTree = ""; }; + CCD4525C09817A4E7F1DBF72D225A3C4 /* NSBundle+MJRefresh.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "NSBundle+MJRefresh.h"; path = "MJRefresh/NSBundle+MJRefresh.h"; sourceTree = ""; }; + CDA6DE9F9E4B35314E50FE0F47F29F84 /* JXSegmentedIndicatorDotLineView.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = JXSegmentedIndicatorDotLineView.swift; path = Sources/Indicator/JXSegmentedIndicatorDotLineView.swift; sourceTree = ""; }; + CDB23F11BFD150D06EB1E55D63A5809E /* SVIndefiniteAnimatedView.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SVIndefiniteAnimatedView.m; path = SVProgressHUD/SVIndefiniteAnimatedView.m; sourceTree = ""; }; + CEEC154FF2778A9A73035DE01D39991A /* JXSegmentedView-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "JXSegmentedView-umbrella.h"; sourceTree = ""; }; + CF0AA9FBFBDB70858C030769541505ED /* MarqueeLabel */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; name = MarqueeLabel; path = MarqueeLabel.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + D006F0064B1980AC5E693A4C09DA3F4D /* MJRefreshBackNormalFooter.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = MJRefreshBackNormalFooter.h; path = MJRefresh/Custom/Footer/Back/MJRefreshBackNormalFooter.h; sourceTree = ""; }; + D04EA9E18CCA8A041EC5FC2AD22309B6 /* Alamofire.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = Alamofire.release.xcconfig; sourceTree = ""; }; + D0534F15E81BC57C85EEEF636D7A15AD /* Int+DateComponents.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "Int+DateComponents.swift"; path = "Sources/SwiftDate/Foundation+Extras/Int+DateComponents.swift"; sourceTree = ""; }; + D07CECE9C0A88C78E0F6FF510ED64787 /* SVProgressAnimatedView.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SVProgressAnimatedView.m; path = SVProgressHUD/SVProgressAnimatedView.m; sourceTree = ""; }; D095C62B7734C0DB6B8124A2A897B58B /* Pods-relax.offline.mp3.music */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; name = "Pods-relax.offline.mp3.music"; path = Pods_relax_offline_mp3_music.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - D0C1779749FF7AF4D31E5FBFE6A84FC3 /* UIScrollView+MJExtension.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "UIScrollView+MJExtension.h"; path = "MJRefresh/UIScrollView+MJExtension.h"; sourceTree = ""; }; - D0EC01ABC8BE7809772538339A7D8A17 /* KF.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = KF.swift; path = Sources/General/KF.swift; sourceTree = ""; }; - D15AA7FA496EAF28310E430A7599DC48 /* UILayoutSupport+Extensions.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "UILayoutSupport+Extensions.swift"; path = "Sources/UILayoutSupport+Extensions.swift"; sourceTree = ""; }; - D16FDF1BA9F851829FB41F61D22DF87A /* ResponseSerialization.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ResponseSerialization.swift; path = Source/Features/ResponseSerialization.swift; sourceTree = ""; }; - D18503D5513378AAA749EB4885A66EAA /* MJRefreshFooter.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = MJRefreshFooter.m; path = MJRefresh/Base/MJRefreshFooter.m; sourceTree = ""; }; - D1A055B449C92CC26C1381E59710D8C0 /* GIFAnimatedImage.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = GIFAnimatedImage.swift; path = Sources/Image/GIFAnimatedImage.swift; sourceTree = ""; }; - D1A9174812F8930C8C9B88FFB94742A4 /* JXSegmentedTitleDynamicConfiguration.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = JXSegmentedTitleDynamicConfiguration.swift; path = Sources/Title/JXSegmentedTitleDynamicConfiguration.swift; sourceTree = ""; }; - D1CC4A34B7E2E53CDB2C9AB2B58BA516 /* SnapKit-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "SnapKit-dummy.m"; sourceTree = ""; }; - D5B48DED1E452069861B8DDE4A02CF99 /* NSBundle+MJRefresh.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "NSBundle+MJRefresh.h"; path = "MJRefresh/NSBundle+MJRefresh.h"; sourceTree = ""; }; - D60D2443E79D2ADEACF4A6F35ED91F46 /* WKInterfaceImage+Kingfisher.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "WKInterfaceImage+Kingfisher.swift"; path = "Sources/Extensions/WKInterfaceImage+Kingfisher.swift"; sourceTree = ""; }; - D6E704CA7A1DD04296CBF9ED26B91EA0 /* ConstraintDSL.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ConstraintDSL.swift; path = Sources/ConstraintDSL.swift; sourceTree = ""; }; - D7A6149AFCACF07DCC6875C9ECECC7A3 /* MJRefreshTrailer.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = MJRefreshTrailer.m; path = MJRefresh/Base/MJRefreshTrailer.m; sourceTree = ""; }; - D828CDDF1A55F5AB5A1C46C8E9B5212B /* DiskStorage.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = DiskStorage.swift; path = Sources/Cache/DiskStorage.swift; sourceTree = ""; }; - D85413A6EC0866E9242FCEA1AF84C593 /* LayoutConstraintItem.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = LayoutConstraintItem.swift; path = Sources/LayoutConstraintItem.swift; sourceTree = ""; }; + D20F0C5A0D9F06EAD0F1386F0F85B218 /* JXSegmentedRTLLayout.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = JXSegmentedRTLLayout.swift; path = Sources/Common/JXSegmentedRTLLayout.swift; sourceTree = ""; }; + D2D7D8612278935E2C4A971B057FF070 /* IQKeyboardManager+Internal.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "IQKeyboardManager+Internal.swift"; path = "IQKeyboardManagerSwift/IQKeyboardManager+Internal.swift"; sourceTree = ""; }; + D3658B955BF25B61E3DB76C7549665CF /* JXSegmentedIndicatorBaseView.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = JXSegmentedIndicatorBaseView.swift; path = Sources/Indicator/JXSegmentedIndicatorBaseView.swift; sourceTree = ""; }; + D395F3F3EB1DDC68123B77CC6C8F0E0B /* Protected.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Protected.swift; path = Source/Core/Protected.swift; sourceTree = ""; }; + D3C8574545A771D6331BDF26BD545BC1 /* MultipartFormData.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = MultipartFormData.swift; path = Source/Features/MultipartFormData.swift; sourceTree = ""; }; + D42235E7352D41F807EE27C6444FF06B /* MJRefreshFooter.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = MJRefreshFooter.m; path = MJRefresh/Base/MJRefreshFooter.m; sourceTree = ""; }; + D6376967BC13A929AB938E8FDFE0093B /* KFOptionsSetter.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = KFOptionsSetter.swift; path = Sources/General/KFOptionsSetter.swift; sourceTree = ""; }; + D8516622262A452328B0B65E29AA340F /* Commons.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Commons.swift; path = Sources/SwiftDate/Supports/Commons.swift; sourceTree = ""; }; D8B3228FE4BA6CDAFC9F18C3E8EC65DA /* Pods-relax.offline.mp3.music-Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "Pods-relax.offline.mp3.music-Info.plist"; sourceTree = ""; }; - D92DA17CEE50A9F5DB6B28966EB463F7 /* UICollectionViewLayout+MJRefresh.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "UICollectionViewLayout+MJRefresh.h"; path = "MJRefresh/UICollectionViewLayout+MJRefresh.h"; sourceTree = ""; }; - DABAAD9946FE635998EDD957CBD9C562 /* JXSegmentedRTLLayout.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = JXSegmentedRTLLayout.swift; path = Sources/Common/JXSegmentedRTLLayout.swift; sourceTree = ""; }; - DB13ACA4C41663A234C2E3FF898FBCC9 /* UIButton+PKDownloadButton.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "UIButton+PKDownloadButton.h"; path = "Pod/Classes/UIButton+PKDownloadButton.h"; sourceTree = ""; }; - DB4D898881D558C30750A0690F06774D /* IQPreviousNextView.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = IQPreviousNextView.swift; path = IQKeyboardManagerSwift/IQToolbar/IQPreviousNextView.swift; sourceTree = ""; }; - DBAFE9C89271C71F769CF1ADB7954EBD /* ResourceBundle-JXPagingView-JXPagingView-Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "ResourceBundle-JXPagingView-JXPagingView-Info.plist"; sourceTree = ""; }; + D93B88986A70049740732E9BDA2D984D /* ConstraintMaker.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ConstraintMaker.swift; path = Sources/ConstraintMaker.swift; sourceTree = ""; }; + DA52ED1D7100B2335479F45E0BAB48BA /* ConstraintMakerRelatable+Extensions.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "ConstraintMakerRelatable+Extensions.swift"; path = "Sources/ConstraintMakerRelatable+Extensions.swift"; sourceTree = ""; }; + DA67D87E3B84EB4733A22C6E50F276B4 /* WebSocketRequest.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = WebSocketRequest.swift; path = Source/Core/WebSocketRequest.swift; sourceTree = ""; }; + DAD9DD293A168FD3266BB05A5E822BF1 /* PKPendingView.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = PKPendingView.m; path = Pod/Classes/PKPendingView.m; sourceTree = ""; }; + DBB233A8A5D344EC01196A58581E8D80 /* JXSegmentedTitleOrImageDataSource.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = JXSegmentedTitleOrImageDataSource.swift; path = Sources/TitleOrImage/JXSegmentedTitleOrImageDataSource.swift; sourceTree = ""; }; DBD68AAF67BB25B9E1F44519178DAE0F /* Tiercel */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; name = Tiercel; path = Tiercel.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - DBE043EDFC8970172839768C24C85385 /* MultipartUpload.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = MultipartUpload.swift; path = Source/Features/MultipartUpload.swift; sourceTree = ""; }; - DC52C9616BD7796CAECA262CFB89146F /* IQUIViewController+Additions.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "IQUIViewController+Additions.swift"; path = "IQKeyboardManagerSwift/Categories/IQUIViewController+Additions.swift"; sourceTree = ""; }; - DCEE92F3B1D5446A37F76652177283D2 /* JXSegmentedTitleGradientDataSource.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = JXSegmentedTitleGradientDataSource.swift; path = Sources/TitleGradient/JXSegmentedTitleGradientDataSource.swift; sourceTree = ""; }; - DD79995B4A87E64E10BA3380D6198319 /* MJRefreshStateHeader.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = MJRefreshStateHeader.h; path = MJRefresh/Custom/Header/MJRefreshStateHeader.h; sourceTree = ""; }; - DD9D5B819D58686A48A8BB1148458C6B /* JXSegmentedView.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.module; path = JXSegmentedView.modulemap; sourceTree = ""; }; - DDF8D88F7DA114E0C5D9A7A40FC95116 /* IQKeyboardManagerSwift-Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "IQKeyboardManagerSwift-Info.plist"; sourceTree = ""; }; - DEA225A9EB938392C7EF2A568E82DA32 /* MJRefreshGifHeader.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = MJRefreshGifHeader.m; path = MJRefresh/Custom/Header/MJRefreshGifHeader.m; sourceTree = ""; }; - DEA2B648448F88ABEF1C029A929CBD5F /* JXSegmentedTitleAttributeCell.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = JXSegmentedTitleAttributeCell.swift; path = Sources/AttributeTitle/JXSegmentedTitleAttributeCell.swift; sourceTree = ""; }; - DEEE532DDA9EFC510787A801E661F0FB /* Alamofire-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "Alamofire-dummy.m"; sourceTree = ""; }; - DF738793C80DDACF5A9214C986797E2F /* UIScrollView+MJRefresh.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "UIScrollView+MJRefresh.m"; path = "MJRefresh/UIScrollView+MJRefresh.m"; sourceTree = ""; }; - DFAB6B5532F3B8E3FF410827371ED49E /* IQNSArray+Sort.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "IQNSArray+Sort.swift"; path = "IQKeyboardManagerSwift/Categories/IQNSArray+Sort.swift"; sourceTree = ""; }; - E077AC06FAF9F81DEBC37C0D7A3F3802 /* TimeStructures.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = TimeStructures.swift; path = Sources/SwiftDate/Supports/TimeStructures.swift; sourceTree = ""; }; - E0D5F358E3E5F37F2090D8DF5BD7BEBD /* JXPagingSmoothView.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = JXPagingSmoothView.swift; path = Sources/JXPagingView/JXPagingSmoothView.swift; sourceTree = ""; }; - E0E58492DC1522D088B61A013EC830D1 /* JXSegmentedAnimator.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = JXSegmentedAnimator.swift; path = Sources/Common/JXSegmentedAnimator.swift; sourceTree = ""; }; - E1FB999AC2FDEAC6E684D8B3FA776139 /* MJRefreshBackStateFooter.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = MJRefreshBackStateFooter.m; path = MJRefresh/Custom/Footer/Back/MJRefreshBackStateFooter.m; sourceTree = ""; }; - E28C20C79BDFFF977A6CACA17D6D5E68 /* OperationQueue+DispatchQueue.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "OperationQueue+DispatchQueue.swift"; path = "Sources/Extensions/OperationQueue+DispatchQueue.swift"; sourceTree = ""; }; - E311156F3C3961E5F4EFD556E8BBF33F /* PKMacros.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = PKMacros.h; path = Pod/Classes/PKMacros.h; sourceTree = ""; }; - E3442A3F92242E45D526357EA1BBA829 /* JXPagingView-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "JXPagingView-prefix.pch"; sourceTree = ""; }; - E346A9AF6887E0E1AAD2178604B2FBDF /* AssociatedValues.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = AssociatedValues.swift; path = Sources/SwiftDate/Supports/AssociatedValues.swift; sourceTree = ""; }; - E380359F4745C2DC4BEE375D0EAA4700 /* JXSegmentedTitleCell.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = JXSegmentedTitleCell.swift; path = Sources/Title/JXSegmentedTitleCell.swift; sourceTree = ""; }; - E43B8D2F0F02E513E51444C8074E7E76 /* ConstraintPriorityTarget.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ConstraintPriorityTarget.swift; path = Sources/ConstraintPriorityTarget.swift; sourceTree = ""; }; + DBE3E5C271FCF47C09129826CD1607D5 /* RedirectHandler.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = RedirectHandler.swift; path = Source/Features/RedirectHandler.swift; sourceTree = ""; }; + DCCBB3FF9CDB5CB4828893DDEB488674 /* JXSegmentedIndicatorGradientView.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = JXSegmentedIndicatorGradientView.swift; path = Sources/Indicator/JXSegmentedIndicatorGradientView.swift; sourceTree = ""; }; + DDD3C969C8BF4A653F2FD55DBC6D1216 /* ResourceBundle-MJRefresh.Privacy-MJRefresh-Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "ResourceBundle-MJRefresh.Privacy-MJRefresh-Info.plist"; sourceTree = ""; }; + DE2C9A9D0E0B4D749B32C1E00BF7D8A7 /* JXPagingListContainerView.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = JXPagingListContainerView.swift; path = Sources/JXPagingView/JXPagingListContainerView.swift; sourceTree = ""; }; + DE57191B720EDB55AFB0B738ACBE9FA2 /* CallbackQueue.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = CallbackQueue.swift; path = Sources/Utility/CallbackQueue.swift; sourceTree = ""; }; + DE89C1ABF2A598826BFD10EDDDA95AC6 /* CPListItem+Kingfisher.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "CPListItem+Kingfisher.swift"; path = "Sources/Extensions/CPListItem+Kingfisher.swift"; sourceTree = ""; }; + DEA0FFC9C5524694F1BEEB79266364F1 /* Box.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Box.swift; path = Sources/Utility/Box.swift; sourceTree = ""; }; + DF7749CC04C556874BBE546166F36A46 /* ConstraintMakerPrioritizable.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ConstraintMakerPrioritizable.swift; path = Sources/ConstraintMakerPrioritizable.swift; sourceTree = ""; }; + E00CAFDC4D99F63CED52FFAFF61E8F34 /* JXSegmentedTitleAttributeItemModel.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = JXSegmentedTitleAttributeItemModel.swift; path = Sources/AttributeTitle/JXSegmentedTitleAttributeItemModel.swift; sourceTree = ""; }; + E0D6121CA98BB82C7851D193FD419502 /* RedirectHandler.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = RedirectHandler.swift; path = Sources/Networking/RedirectHandler.swift; sourceTree = ""; }; + E17BB19CC994226AFBDBA45E90174B3A /* ConstraintMakerEditable.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ConstraintMakerEditable.swift; path = Sources/ConstraintMakerEditable.swift; sourceTree = ""; }; + E20BAB91FEA315F02B58AF69507DB592 /* MJRefreshNormalHeader.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = MJRefreshNormalHeader.h; path = MJRefresh/Custom/Header/MJRefreshNormalHeader.h; sourceTree = ""; }; + E25067B4F422F31021D401E81CDA3A38 /* NetworkReachabilityManager.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = NetworkReachabilityManager.swift; path = Source/Features/NetworkReachabilityManager.swift; sourceTree = ""; }; + E3542F7E70022B5811F78FF63C58D5E0 /* Tiercel.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = Tiercel.release.xcconfig; sourceTree = ""; }; + E3999012C65D76E395381CECF9C5701C /* AVAssetImageDataProvider.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = AVAssetImageDataProvider.swift; path = Sources/General/ImageSource/AVAssetImageDataProvider.swift; sourceTree = ""; }; + E3DD611E2B6825B2332BD02231705E84 /* MJRefreshComponent.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = MJRefreshComponent.m; path = MJRefresh/Base/MJRefreshComponent.m; sourceTree = ""; }; E49D6D248DD1CEE584E6776B9164A1B2 /* MJRefresh */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; name = MJRefresh; path = MJRefresh.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - E4EE92687081A3EFA90A93BD1C9B49FB /* Session.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Session.swift; path = Source/Core/Session.swift; sourceTree = ""; }; - E56690077DFEE647C01B79BE97B5C6EC /* PKDownloadButton.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = PKDownloadButton.h; path = Pod/Classes/PKDownloadButton.h; sourceTree = ""; }; - E61B541BAA0D342983094AC77D1433AB /* NSTextAttachment+Kingfisher.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "NSTextAttachment+Kingfisher.swift"; path = "Sources/Extensions/NSTextAttachment+Kingfisher.swift"; sourceTree = ""; }; - E6AF07FDF68286DCE8D2D3129ABE86E8 /* IQKeyboardManagerConstantsInternal.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = IQKeyboardManagerConstantsInternal.swift; path = IQKeyboardManagerSwift/Constants/IQKeyboardManagerConstantsInternal.swift; sourceTree = ""; }; - E71797A38F958EB9A07CA07E468C7E42 /* SnapKit-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "SnapKit-prefix.pch"; sourceTree = ""; }; - E81F61DF91E96996903C3D5351B13CA2 /* SnapKit-Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "SnapKit-Info.plist"; sourceTree = ""; }; - E8AB6861FB56A8A18DF4771C240FF4CD /* Box.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Box.swift; path = Sources/Utility/Box.swift; sourceTree = ""; }; - E8C11317C48B50EF739DF1A04D93A1F9 /* MJRefreshStateHeader.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = MJRefreshStateHeader.m; path = MJRefresh/Custom/Header/MJRefreshStateHeader.m; sourceTree = ""; }; - E8F12D3D56AB60DF1EBA2C097D344C57 /* JXPagingListContainerView.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = JXPagingListContainerView.swift; path = Sources/JXPagingView/JXPagingListContainerView.swift; sourceTree = ""; }; + E4A0DFD919AD82038C8BF847F5F739FE /* JXSegmentedIndicatorProtocol.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = JXSegmentedIndicatorProtocol.swift; path = Sources/Indicator/JXSegmentedIndicatorProtocol.swift; sourceTree = ""; }; + E51F1EF01413ADDECD6664205BCE7A93 /* MJRefreshBackFooter.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = MJRefreshBackFooter.m; path = MJRefresh/Base/MJRefreshBackFooter.m; sourceTree = ""; }; + E5AE85B549A0F1ADBF86C827D96A2547 /* PrivacyInfo.xcprivacy */ = {isa = PBXFileReference; includeInIndex = 1; name = PrivacyInfo.xcprivacy; path = IQKeyboardManagerSwift/PrivacyInfo.xcprivacy; sourceTree = ""; }; + E5D2335C862D6E9C8606261324B9FD98 /* URLRequest+Alamofire.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "URLRequest+Alamofire.swift"; path = "Source/Extensions/URLRequest+Alamofire.swift"; sourceTree = ""; }; + E76218A6A0AC4A58A10DAA88E00C21FE /* Region.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Region.swift; path = Sources/SwiftDate/DateInRegion/Region.swift; sourceTree = ""; }; + E779182A5BEF30E1BDDE84D00FEC1678 /* IQKeyboardManagerConstantsInternal.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = IQKeyboardManagerConstantsInternal.swift; path = IQKeyboardManagerSwift/Constants/IQKeyboardManagerConstantsInternal.swift; sourceTree = ""; }; + E8062DA15BB499A276DDB19826D59379 /* JXPagingListRefreshView.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = JXPagingListRefreshView.swift; path = Sources/JXPagingView/JXPagingListRefreshView.swift; sourceTree = ""; }; + E8582A8D4529359E27C0462E791183E5 /* IQKeyboardManagerSwift-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "IQKeyboardManagerSwift-umbrella.h"; sourceTree = ""; }; + E8BB085594A33CFA1AE37B223A06BF25 /* ConstraintOffsetTarget.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ConstraintOffsetTarget.swift; path = Sources/ConstraintOffsetTarget.swift; sourceTree = ""; }; + E9669FA7175A0ECDE0583DD8E9C33F14 /* IQKeyboardManager+Toolbar.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "IQKeyboardManager+Toolbar.swift"; path = "IQKeyboardManagerSwift/IQKeyboardManager+Toolbar.swift"; sourceTree = ""; }; + E96DA98FB5788A040DD2ED9B93E36E78 /* Kingfisher-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "Kingfisher-umbrella.h"; sourceTree = ""; }; E97D43C46A45EE515A4DA3AF94398441 /* SVProgressHUD */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; name = SVProgressHUD; path = SVProgressHUD.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - E9C090376B9E3BE95AAF488196F7776C /* LayoutConstraint.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = LayoutConstraint.swift; path = Sources/LayoutConstraint.swift; sourceTree = ""; }; - EA59BA4AF9EF61DDE3267A666349D9BC /* DateInRegion.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = DateInRegion.swift; path = Sources/SwiftDate/DateInRegion/DateInRegion.swift; sourceTree = ""; }; - EABE5923720744A0D5FE825748A330F5 /* SVIndefiniteAnimatedView.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SVIndefiniteAnimatedView.h; path = SVProgressHUD/SVIndefiniteAnimatedView.h; sourceTree = ""; }; - EAF0C272F96942F166840ED423442D5B /* SessionManager.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = SessionManager.swift; path = Sources/General/SessionManager.swift; sourceTree = ""; }; - EB007609961A6209560053C76559CE7C /* MJRefreshAutoNormalFooter.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = MJRefreshAutoNormalFooter.m; path = MJRefresh/Custom/Footer/Auto/MJRefreshAutoNormalFooter.m; sourceTree = ""; }; - EC4AE7F3244DF9F0CEC3FD87684C7ED5 /* IQKeyboardManager+OrientationNotification.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "IQKeyboardManager+OrientationNotification.swift"; path = "IQKeyboardManagerSwift/IQKeyboardManager+OrientationNotification.swift"; sourceTree = ""; }; - EC8AAD29842FD172A4B17E76ADF753A7 /* PrivacyInfo.xcprivacy */ = {isa = PBXFileReference; includeInIndex = 1; name = PrivacyInfo.xcprivacy; path = SVProgressHUD/PrivacyInfo.xcprivacy; sourceTree = ""; }; - EC9EC0D2832CCC0BF46556C47E598340 /* IQUIView+IQKeyboardToolbar.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "IQUIView+IQKeyboardToolbar.swift"; path = "IQKeyboardManagerSwift/IQToolbar/IQUIView+IQKeyboardToolbar.swift"; sourceTree = ""; }; - ED54119B6A54FF4ADC1A500313A39E5B /* ImageModifier.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ImageModifier.swift; path = Sources/Networking/ImageModifier.swift; sourceTree = ""; }; - ED6AF3E82C2703509CFCC5748F6E7604 /* SwiftDate-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "SwiftDate-dummy.m"; sourceTree = ""; }; - ED87543F9608D818C1C0B411BCD164F1 /* Kingfisher-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "Kingfisher-prefix.pch"; sourceTree = ""; }; - EE39DA769589701DAC7D7E6365F82406 /* RequestModifier.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = RequestModifier.swift; path = Sources/Networking/RequestModifier.swift; sourceTree = ""; }; - EE56A83001E77940E55939087F6B6D50 /* MJRefreshConst.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = MJRefreshConst.h; path = MJRefresh/MJRefreshConst.h; sourceTree = ""; }; - EF13C0A52DFD4C08141E85D5BB948997 /* EventMonitor.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = EventMonitor.swift; path = Source/Features/EventMonitor.swift; sourceTree = ""; }; - EF84581B386F0C2CCC6C90D635B943B3 /* IQKeyboardManager+UIKeyboardNotification.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "IQKeyboardManager+UIKeyboardNotification.swift"; path = "IQKeyboardManagerSwift/IQKeyboardManager+UIKeyboardNotification.swift"; sourceTree = ""; }; - EFC1DD0B0E10AC895C05A433F86AFDD3 /* ServerTrustEvaluation.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ServerTrustEvaluation.swift; path = Source/Features/ServerTrustEvaluation.swift; sourceTree = ""; }; - F0940CA5187132EB1F3BFBCA44C148B5 /* JXSegmentedView.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = JXSegmentedView.release.xcconfig; sourceTree = ""; }; - F0B77FF8CCF94CC371E5305E19CB4399 /* IQKeyboardManagerConstants.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = IQKeyboardManagerConstants.swift; path = IQKeyboardManagerSwift/Constants/IQKeyboardManagerConstants.swift; sourceTree = ""; }; - F25DA22A16432FA72B62254F001DC276 /* Int64+TaskInfo.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "Int64+TaskInfo.swift"; path = "Sources/Extensions/Int64+TaskInfo.swift"; sourceTree = ""; }; - F4FC25EC1C00814464CC040EF1ED112E /* PrivacyInfo.xcprivacy */ = {isa = PBXFileReference; includeInIndex = 1; name = PrivacyInfo.xcprivacy; path = IQKeyboardManagerSwift/PrivacyInfo.xcprivacy; sourceTree = ""; }; - F5B6449F536C5298590E398332C1AC3E /* DownloadButton.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = DownloadButton.debug.xcconfig; sourceTree = ""; }; - F60A6E2C18C53A1DCD59710DAE3325F0 /* IQUITextFieldView+Additions.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "IQUITextFieldView+Additions.swift"; path = "IQKeyboardManagerSwift/Categories/IQUITextFieldView+Additions.swift"; sourceTree = ""; }; - F71F8336A279465EDD63361D3EA48AD2 /* UploadRequest.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = UploadRequest.swift; path = Source/Core/UploadRequest.swift; sourceTree = ""; }; - F8020F66064F4E5C645D9BDD312552EC /* MemoryStorage.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = MemoryStorage.swift; path = Sources/Cache/MemoryStorage.swift; sourceTree = ""; }; - F8EAF386B6BC1994FF7856ACC69F5A5E /* KFImageOptions.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = KFImageOptions.swift; path = Sources/SwiftUI/KFImageOptions.swift; sourceTree = ""; }; - F90F7404F136AB670715257A54441A6A /* SwiftDate-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "SwiftDate-prefix.pch"; sourceTree = ""; }; - F955DAC7F3D103A817231F95E23F9717 /* JXSegmentedComponetGradientView.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = JXSegmentedComponetGradientView.swift; path = Sources/Indicator/JXSegmentedComponetGradientView.swift; sourceTree = ""; }; - F98FE4C2720E667CD4594DD20B2C809C /* SVProgressHUD.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.module; path = SVProgressHUD.modulemap; sourceTree = ""; }; - FA3FC481B34EFB18912B61858F7C31E8 /* KingfisherError.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = KingfisherError.swift; path = Sources/General/KingfisherError.swift; sourceTree = ""; }; - FAE1B3D9828D6B007276756B5710687E /* String+Parser.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "String+Parser.swift"; path = "Sources/SwiftDate/Foundation+Extras/String+Parser.swift"; sourceTree = ""; }; - FBF65AB8DCACDEF080398A6B2EC0BBEC /* OperationQueue+Alamofire.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "OperationQueue+Alamofire.swift"; path = "Source/Extensions/OperationQueue+Alamofire.swift"; sourceTree = ""; }; - FC76F03E2E143529554E5CD2B9172452 /* SVIndefiniteAnimatedView.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SVIndefiniteAnimatedView.m; path = SVProgressHUD/SVIndefiniteAnimatedView.m; sourceTree = ""; }; - FC9726A452C355E5A93BC81295F7FF11 /* MJRefreshNormalTrailer.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = MJRefreshNormalTrailer.m; path = MJRefresh/Custom/Trailer/MJRefreshNormalTrailer.m; sourceTree = ""; }; - FD193447A97E88D72DA312FFA750B7E3 /* MJRefreshBackNormalFooter.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = MJRefreshBackNormalFooter.h; path = MJRefresh/Custom/Footer/Back/MJRefreshBackNormalFooter.h; sourceTree = ""; }; - FDB1A9EA05B4B28BA973FD120AB7B58C /* Common.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Common.swift; path = Sources/General/Common.swift; sourceTree = ""; }; - FE49FDCEF4136EFD8B8B73990A8273DA /* ConstraintLayoutGuide.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ConstraintLayoutGuide.swift; path = Sources/ConstraintLayoutGuide.swift; sourceTree = ""; }; - FEE6C0A96EB48E43A87D0152AACB9E67 /* JXSegmentedTitleGradientItemModel.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = JXSegmentedTitleGradientItemModel.swift; path = Sources/TitleGradient/JXSegmentedTitleGradientItemModel.swift; sourceTree = ""; }; + EA4C6F8B96D45ED1BBBD34CFA947EC47 /* Alamofire-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "Alamofire-umbrella.h"; sourceTree = ""; }; + EA93223DB4EFA6447ADE2A496727EF42 /* TVMonogramView+Kingfisher.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "TVMonogramView+Kingfisher.swift"; path = "Sources/Extensions/TVMonogramView+Kingfisher.swift"; sourceTree = ""; }; + EBB3B662BEA23309AB382EFC97F9BDDA /* JXSegmentedIndicatorLineView.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = JXSegmentedIndicatorLineView.swift; path = Sources/Indicator/JXSegmentedIndicatorLineView.swift; sourceTree = ""; }; + EC38E3F74F0F49291A13DB319164307F /* JXSegmentedTitleDynamicConfiguration.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = JXSegmentedTitleDynamicConfiguration.swift; path = Sources/Title/JXSegmentedTitleDynamicConfiguration.swift; sourceTree = ""; }; + EC728CA1DF148330DE8CEE2CDC59F7A0 /* MJRefreshHeader.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = MJRefreshHeader.h; path = MJRefresh/Base/MJRefreshHeader.h; sourceTree = ""; }; + ECC9C3685EE7FC815B55A7A258463229 /* JXSegmentedNumberDataSource.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = JXSegmentedNumberDataSource.swift; path = Sources/Number/JXSegmentedNumberDataSource.swift; sourceTree = ""; }; + ED2440BB8CE79C3D96A62D6671311E7B /* JXSegmentedTitleGradientItemModel.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = JXSegmentedTitleGradientItemModel.swift; path = Sources/TitleGradient/JXSegmentedTitleGradientItemModel.swift; sourceTree = ""; }; + ED9E039902D3928D76325A9F22981AD4 /* KF.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = KF.swift; path = Sources/General/KF.swift; sourceTree = ""; }; + EDC65E32BB51C809FFDF70FABAA749A3 /* ResourceBundle-Kingfisher-Kingfisher-Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "ResourceBundle-Kingfisher-Kingfisher-Info.plist"; sourceTree = ""; }; + EE3980766775DB21E234DC0A37D61FB5 /* ConstraintMakerExtendable.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ConstraintMakerExtendable.swift; path = Sources/ConstraintMakerExtendable.swift; sourceTree = ""; }; + EE9A6FA2A81AC5A30859A6BB2B4FA72E /* FileManager+AvailableCapacity.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "FileManager+AvailableCapacity.swift"; path = "Sources/Extensions/FileManager+AvailableCapacity.swift"; sourceTree = ""; }; + EE9AF037CDAFAB9620BE013E2C3635C1 /* SessionDelegate.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = SessionDelegate.swift; path = Sources/General/SessionDelegate.swift; sourceTree = ""; }; + F0DE2A1E22A9F0F6E1720611015699A8 /* Kingfisher-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "Kingfisher-dummy.m"; sourceTree = ""; }; + F2B2DB1CB4157320AB7B46D983F577B3 /* JXSegmentedIndicatorParams.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = JXSegmentedIndicatorParams.swift; path = Sources/Indicator/JXSegmentedIndicatorParams.swift; sourceTree = ""; }; + F326CD136B8C209A498E147755654AFA /* TimePeriodCollection.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = TimePeriodCollection.swift; path = Sources/SwiftDate/TimePeriod/Groups/TimePeriodCollection.swift; sourceTree = ""; }; + F338AF678260C96DEC528B76D94CC60B /* Alamofire.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.module; path = Alamofire.modulemap; sourceTree = ""; }; + F3B4936C04FD05F923650CD1AFD33840 /* DispatchQueue+Alamofire.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "DispatchQueue+Alamofire.swift"; path = "Source/Extensions/DispatchQueue+Alamofire.swift"; sourceTree = ""; }; + F4EE1B14402D8D0CCFC4F70B19E2A807 /* IQUIView+Hierarchy.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "IQUIView+Hierarchy.swift"; path = "IQKeyboardManagerSwift/Categories/IQUIView+Hierarchy.swift"; sourceTree = ""; }; + F58A90C8C5934EE6AB722DB8819C1632 /* Alamofire.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Alamofire.swift; path = Source/Alamofire.swift; sourceTree = ""; }; + F624B3E773D2B4EDED7498509D928D5D /* SVProgressHUD.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = SVProgressHUD.release.xcconfig; sourceTree = ""; }; + F6D2CA71CCD091A767826F36D43522CA /* String+Parser.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "String+Parser.swift"; path = "Sources/SwiftDate/Foundation+Extras/String+Parser.swift"; sourceTree = ""; }; + F6F26EC43199BA3CE04A9C318AACB128 /* JXSegmentedView.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = JXSegmentedView.swift; path = Sources/Core/JXSegmentedView.swift; sourceTree = ""; }; + F7DC336FCAEF4579E435D1CA1EAAFA09 /* ImageTransition.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ImageTransition.swift; path = Sources/Image/ImageTransition.swift; sourceTree = ""; }; + F808C875835D01EA4B267F0276991C8B /* MJRefresh-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "MJRefresh-dummy.m"; sourceTree = ""; }; + F81293AC0002136C2A240AEE245EA761 /* StringEncoding+Alamofire.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "StringEncoding+Alamofire.swift"; path = "Source/Extensions/StringEncoding+Alamofire.swift"; sourceTree = ""; }; + F8DE4E6DF18F9DDB7E134D8F36AD6A46 /* Kingfisher-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "Kingfisher-prefix.pch"; sourceTree = ""; }; + F8E1A99F23F81AD71CD4CE65BBCEBF0D /* DateInRegion+Math.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "DateInRegion+Math.swift"; path = "Sources/SwiftDate/DateInRegion/DateInRegion+Math.swift"; sourceTree = ""; }; + F98A5DF514D9F74D447722831FBA5807 /* Date.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Date.swift; path = Sources/SwiftDate/Date/Date.swift; sourceTree = ""; }; + F9ABB3A8141E40470EE54F0016A46483 /* PrivacyInfo.xcprivacy */ = {isa = PBXFileReference; includeInIndex = 1; name = PrivacyInfo.xcprivacy; path = Sources/PrivacyInfo.xcprivacy; sourceTree = ""; }; + F9D5768A8F3F026A26F10BBAE52783B3 /* PrivacyInfo.xcprivacy */ = {isa = PBXFileReference; includeInIndex = 1; name = PrivacyInfo.xcprivacy; path = Source/PrivacyInfo.xcprivacy; sourceTree = ""; }; + F9F1C66852BF157B00E2E839B79BE5FF /* ResponseSerialization.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ResponseSerialization.swift; path = Source/Features/ResponseSerialization.swift; sourceTree = ""; }; + FB3952D9C2FCBCCECED2C8E5AE18BE0B /* Alamofire-Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "Alamofire-Info.plist"; sourceTree = ""; }; + FB58FFF0E18E9CC1D93B8E1B68B39002 /* SnapKit-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "SnapKit-prefix.pch"; sourceTree = ""; }; + FC486EF7D98345630D4FEB14D1DF50D8 /* MJRefreshBackStateFooter.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = MJRefreshBackStateFooter.h; path = MJRefresh/Custom/Footer/Back/MJRefreshBackStateFooter.h; sourceTree = ""; }; + FD209E59AEF04DF3B00BEF141AD3C1FA /* IQKeyboardManagerSwift.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = IQKeyboardManagerSwift.release.xcconfig; sourceTree = ""; }; + FD694DB3E09A81036691F823E3211D44 /* MarqueeLabel-MarqueeLabel */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; name = "MarqueeLabel-MarqueeLabel"; path = MarqueeLabel.bundle; sourceTree = BUILT_PRODUCTS_DIR; }; + FE70BEDA021F24905556038DC9C6EF72 /* ConstraintPriorityTarget.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ConstraintPriorityTarget.swift; path = Sources/ConstraintPriorityTarget.swift; sourceTree = ""; }; + FFB2C31AAAD3CD21FEFE7182CC04951F /* DotNetParserFormatter.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = DotNetParserFormatter.swift; path = Sources/SwiftDate/Formatters/DotNetParserFormatter.swift; sourceTree = ""; }; + FFC2163D8BC1DC94596E6612D1851079 /* ConstraintDescription.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ConstraintDescription.swift; path = Sources/ConstraintDescription.swift; sourceTree = ""; }; /* End PBXFileReference section */ /* Begin PBXFrameworksBuildPhase section */ - 08077F41672A82F59BDC46FCF805A2AC /* Frameworks */ = { - isa = PBXFrameworksBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - runOnlyForDeploymentPostprocessing = 0; - }; 115EE9484AD8D18887A8175CFF9FEB3C /* Frameworks */ = { isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; @@ -1064,7 +1091,7 @@ ); runOnlyForDeploymentPostprocessing = 0; }; - 220D73A526A050E6F416624EB0C2FDD0 /* Frameworks */ = { + 193636C673E74188FC5712786C278842 /* Frameworks */ = { isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( @@ -1088,6 +1115,30 @@ ); runOnlyForDeploymentPostprocessing = 0; }; + 286A612152665F0AAA91A6BFE1EC13E5 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + FE2AC8DB019A3B729B6EA5CBBACFA61B /* Foundation.framework in Frameworks */, + C50A637F18FADC506FC35B99C726E216 /* QuartzCore.framework in Frameworks */, + 9DACAF384DD9C46FB76E2D3DF5D41084 /* UIKit.framework in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 3D1165AC8D016F863667307F665B8523 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 3F75D70A10A1519DC08F20B94922A3BB /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; 3FA6BB0E255F3D1C771079154343333B /* Frameworks */ = { isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; @@ -1096,6 +1147,28 @@ ); runOnlyForDeploymentPostprocessing = 0; }; + 5BB620A2071AE9DC55E1F8EC51181915 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 5D616D3CD7A1C6CC97AC3A4D6BACDF09 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 5F966A77AD2F2547134B588BA2B65453 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + 6A9418B4C77EFF47E92EEA22C5BF7EC0 /* Foundation.framework in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; 65BFC75CE1541E38446FFDA8AFF0DBEC /* Frameworks */ = { isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; @@ -1115,7 +1188,7 @@ ); runOnlyForDeploymentPostprocessing = 0; }; - 86704F91FA7DDA1567830E4CF3FC9B1E /* Frameworks */ = { + 84A453DEE938C61E3223CDB74EB84021 /* Frameworks */ = { isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( @@ -1131,21 +1204,6 @@ ); runOnlyForDeploymentPostprocessing = 0; }; - 8CB7FB558DE65468B395C2528B3360CA /* Frameworks */ = { - isa = PBXFrameworksBuildPhase; - buildActionMask = 2147483647; - files = ( - ADC6E301DBD802373B3B2E73EF4FD436 /* Foundation.framework in Frameworks */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; - 985D980C1906B3C9651125ACF86C3C43 /* Frameworks */ = { - isa = PBXFrameworksBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - runOnlyForDeploymentPostprocessing = 0; - }; A5C342523C3577E7122B4B43929BA8F3 /* Frameworks */ = { isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; @@ -1155,6 +1213,20 @@ ); runOnlyForDeploymentPostprocessing = 0; }; + A7FF618E6534FBC5720CDECBEF21021A /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; + E0AF7ACD02DA39E81F6F18CF3EA0C61C /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; E868EB0B24BBF51B269DA945BB30E152 /* Frameworks */ = { isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; @@ -1163,13 +1235,6 @@ ); runOnlyForDeploymentPostprocessing = 0; }; - F800E343AEAD071FF154C03E17CF61EB /* Frameworks */ = { - isa = PBXFrameworksBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - runOnlyForDeploymentPostprocessing = 0; - }; FAD71512EEFFE356C1FA56988FC3266F /* Frameworks */ = { isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; @@ -1179,276 +1244,372 @@ ); runOnlyForDeploymentPostprocessing = 0; }; - FCCAF5F784E7CC554DA867FF32C6F9E4 /* Frameworks */ = { - isa = PBXFrameworksBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - runOnlyForDeploymentPostprocessing = 0; - }; - FE8949C944B548A8944387CE1A7D7EA2 /* Frameworks */ = { - isa = PBXFrameworksBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - runOnlyForDeploymentPostprocessing = 0; - }; /* End PBXFrameworksBuildPhase section */ /* Begin PBXGroup section */ - 19269624E41C8B31129B159456E5B788 /* Support Files */ = { + 0AA0BEFA963841B43AA8B0E59613FD11 /* JXSegmentedView */ = { isa = PBXGroup; children = ( - 804BF4BC9A919A768A7D7BD2E08C40E5 /* JXPagingView.modulemap */, - 09D77A764D82971CF4ED47842C9A4B6C /* JXPagingView-dummy.m */, - C9397F1FCED3510EBB2284C79B399F64 /* JXPagingView-Info.plist */, - E3442A3F92242E45D526357EA1BBA829 /* JXPagingView-prefix.pch */, - 05F1C2B1DEF9E95836BF3AC986652086 /* JXPagingView-umbrella.h */, - 529BEE61C943A5C55711DDA847E03AB7 /* JXPagingView.debug.xcconfig */, - A22FE36A8F227F453C912C889465A37A /* JXPagingView.release.xcconfig */, - DBAFE9C89271C71F769CF1ADB7954EBD /* ResourceBundle-JXPagingView-JXPagingView-Info.plist */, + 8672153590C5F65593C96F8B75DE91F9 /* JXSegmentedAnimator.swift */, + AF603AAB8E1A44C4F5701C81A01D1DBE /* JXSegmentedBaseCell.swift */, + 48FC6499D782B6A38B55A1058728D46D /* JXSegmentedBaseDataSource.swift */, + 4E5F5A742DDBDAE2FC927882DAC7C146 /* JXSegmentedBaseItemModel.swift */, + 23225B4E8514DBFF46A9F508E8CB19A4 /* JXSegmentedCollectionView.swift */, + 0E6F64B9633F52177A952982CD9438CD /* JXSegmentedComponetGradientView.swift */, + C0A804BAF6EBDD252765A7DD178EA318 /* JXSegmentedDotCell.swift */, + 6F8849479F3F19A2250A43346D9708F3 /* JXSegmentedDotDataSource.swift */, + 2035235CBB8446F3D2B5C3DF03DB596F /* JXSegmentedDotItemModel.swift */, + 90868F52B19BF2E08A1B70DCFF656B5C /* JXSegmentedIndicatorBackgroundView.swift */, + D3658B955BF25B61E3DB76C7549665CF /* JXSegmentedIndicatorBaseView.swift */, + CDA6DE9F9E4B35314E50FE0F47F29F84 /* JXSegmentedIndicatorDotLineView.swift */, + 1E3D9A705DD4B8E1CB63DF9084EAC9FF /* JXSegmentedIndicatorDoubleLineView.swift */, + 46314C1E12962DB1E9D783BE2AB6599D /* JXSegmentedIndicatorGradientLineView.swift */, + DCCBB3FF9CDB5CB4828893DDEB488674 /* JXSegmentedIndicatorGradientView.swift */, + 34F26DA97773D658E22071F12B542CCD /* JXSegmentedIndicatorImageView.swift */, + EBB3B662BEA23309AB382EFC97F9BDDA /* JXSegmentedIndicatorLineView.swift */, + F2B2DB1CB4157320AB7B46D983F577B3 /* JXSegmentedIndicatorParams.swift */, + E4A0DFD919AD82038C8BF847F5F739FE /* JXSegmentedIndicatorProtocol.swift */, + B5C5FBF667B1635D66E7702443A795A4 /* JXSegmentedIndicatorRainbowLineView.swift */, + 4DB6D4B8D6F44ACDD6E446998748BD0B /* JXSegmentedIndicatorTriangleView.swift */, + 4BA391400C88257C2944C66CBCCB7253 /* JXSegmentedListContainerView.swift */, + 42517ADA576373B5F2B2AA56BB57260F /* JXSegmentedNumberCell.swift */, + ECC9C3685EE7FC815B55A7A258463229 /* JXSegmentedNumberDataSource.swift */, + 651AF86B19A0753E59D925A358A62C7E /* JXSegmentedNumberItemModel.swift */, + D20F0C5A0D9F06EAD0F1386F0F85B218 /* JXSegmentedRTLLayout.swift */, + BD8A222583C51A0B76B606A5D28C3AC9 /* JXSegmentedTitleAttributeCell.swift */, + 46AE8E58DA72546DEDC39DEA7F914C3A /* JXSegmentedTitleAttributeDataSource.swift */, + E00CAFDC4D99F63CED52FFAFF61E8F34 /* JXSegmentedTitleAttributeItemModel.swift */, + 9D8B7EF73D50EE3EC8D8AB0CD2F05FDC /* JXSegmentedTitleCell.swift */, + 1E5AFB42EE6B29720DA3E27B5455357A /* JXSegmentedTitleDataSource.swift */, + EC38E3F74F0F49291A13DB319164307F /* JXSegmentedTitleDynamicConfiguration.swift */, + 9BA92119A502CEB293041F6667E32905 /* JXSegmentedTitleGradientCell.swift */, + 76B9E41F33DAD89794D0675AA79CA8A6 /* JXSegmentedTitleGradientDataSource.swift */, + ED2440BB8CE79C3D96A62D6671311E7B /* JXSegmentedTitleGradientItemModel.swift */, + B9751538A41C93069AC520FC8ADDD990 /* JXSegmentedTitleImageCell.swift */, + A8AEFC03D74F434693AD37863156695D /* JXSegmentedTitleImageDataSource.swift */, + B54BA2B28F4FA97B93861310BDA561C4 /* JXSegmentedTitleImageItemModel.swift */, + 0DFF1834A88DF9FB33D90BDD9AA81691 /* JXSegmentedTitleItemModel.swift */, + 0DA082E3A75E13CD0C8795CB3957F572 /* JXSegmentedTitleOrImageCell.swift */, + DBB233A8A5D344EC01196A58581E8D80 /* JXSegmentedTitleOrImageDataSource.swift */, + 602AADF40849A45983953E264A9BC93F /* JXSegmentedTitleOrImageItemModel.swift */, + F6F26EC43199BA3CE04A9C318AACB128 /* JXSegmentedView.swift */, + 8AC2C00A0C5A41F4D64A8E965AADD87B /* JXSegmentedViewTool.swift */, + DF77CB201E7DC3EED84F11DEE0D060D7 /* Resources */, + 7F4560A52C12465F2ACAE64DDFB0B32A /* Support Files */, ); - name = "Support Files"; - path = "../Target Support Files/JXPagingView"; + name = JXSegmentedView; + path = JXSegmentedView; sourceTree = ""; }; - 19BE7D3952801D0B0E6F4FB681B4B391 /* DownloadButton */ = { + 0B404410E863BE7AB7F21409B7CF2AE4 /* Resources */ = { isa = PBXGroup; children = ( - 4000ED24F540FFC9C63FD4DBC6AA4AEF /* CALayer+PKDownloadButtonAnimations.h */, - 242E31512B529C3DABB2ECBF9687B9A7 /* CALayer+PKDownloadButtonAnimations.m */, - 394EA0EF4EA1BA1568C02AE6FDBDB640 /* NSLayoutConstraint+PKDownloadButton.h */, - 54338C42DA7239A1FA97E43C3AFF5455 /* NSLayoutConstraint+PKDownloadButton.m */, - 0328F3AA7B25B4CE0C3E8A068E58181A /* PKCircleProgressView.h */, - 8A5415EF1FD45FF941A7307C0161A9CF /* PKCircleProgressView.m */, - 3C18631CE3A76D9E239D38D937F073AC /* PKCircleView.h */, - 6DEFC8A5EC7CC7AE8BB155B861E6EA7A /* PKCircleView.m */, - E56690077DFEE647C01B79BE97B5C6EC /* PKDownloadButton.h */, - ADA5CDD301DBE830624CF36B02780913 /* PKDownloadButton.m */, - E311156F3C3961E5F4EFD556E8BBF33F /* PKMacros.h */, - 5CB56AAB4562D355FF301EDA2AB8094A /* PKPendingView.h */, - 89AB6504876D9F3A7808F0012486934B /* PKPendingView.m */, - B7AB5B878CFAEDB0CFA466A32417E423 /* PKStopDownloadButton.h */, - 4CEE0C62C7FB9997C20B8E1824B5812F /* PKStopDownloadButton.m */, - DB13ACA4C41663A234C2E3FF898FBCC9 /* UIButton+PKDownloadButton.h */, - 00B3B84CAF8ED73E095C919FA5C8FC89 /* UIButton+PKDownloadButton.m */, - B36ED78664334F6F31ABE61907B9F48B /* UIColor+PKDownloadButton.h */, - CE1B1EF4353BA9FDF0D8F6E2CD68A1DA /* UIColor+PKDownloadButton.m */, - ACBBC1D95C681D2EBBB6FD5B9B42E31D /* UIImage+PKDownloadButton.h */, - 0B5110745B15FEEFB97E52A7E9A6E9C2 /* UIImage+PKDownloadButton.m */, - 2D1DF7218588A7094FC475231FC4B3CB /* Support Files */, + 489901D1795E72219A5650D4806CFBA6 /* PrivacyInfo.xcprivacy */, + ); + name = Resources; + sourceTree = ""; + }; + 0F6154F7DC0C024C1474326FAE09C829 /* MarqueeLabel */ = { + isa = PBXGroup; + children = ( + 664067D6AFAD9C1DDA40DD6EF0AEB02D /* MarqueeLabel.swift */, + A74757EDB866ACA63B73DF7681A3CF01 /* Resources */, + A05AAB611E84B0FCC524024266E6B1AD /* Support Files */, + ); + name = MarqueeLabel; + path = MarqueeLabel; + sourceTree = ""; + }; + 1426E874D531542C5A2E07082C62722D /* Support Files */ = { + isa = PBXGroup; + children = ( + B594663419E69E24C485630B047940CD /* SwiftDate.modulemap */, + 5713B1AF8B3CD5B2368E33B8C9CE5E78 /* SwiftDate-dummy.m */, + 6B6CB2F1F0411CD9330D8904E4247017 /* SwiftDate-Info.plist */, + A341A1C7CF6477FB5A94AD2E54AE987D /* SwiftDate-prefix.pch */, + 635635C80C4A6F844662FBC0825108B1 /* SwiftDate-umbrella.h */, + 61253EC4CFBA709FB063DAE4550C34F7 /* SwiftDate.debug.xcconfig */, + 9E6116C1253A5B521CBB9102BB9766D4 /* SwiftDate.release.xcconfig */, + ); + name = "Support Files"; + path = "../Target Support Files/SwiftDate"; + sourceTree = ""; + }; + 143A74B249F814532B790DCBBB738B04 /* MJRefresh */ = { + isa = PBXGroup; + children = ( + A02680B209797E014A9CB2E457201E74 /* MJRefresh.h */, + 913FD792342D6E20478B1A3D754EAF95 /* MJRefreshAutoFooter.h */, + 9D44F73F60EAA2C6700435B40B54AA74 /* MJRefreshAutoFooter.m */, + A75CD4D4DC0FF7F566716FFDB363ADA2 /* MJRefreshAutoGifFooter.h */, + 68E5845A0F056ED6F021BCF06CE7E1B2 /* MJRefreshAutoGifFooter.m */, + 5AFABD0F91AAB460005E72FA49182E21 /* MJRefreshAutoNormalFooter.h */, + 6C91685D18502488D4C0C9C949E4166C /* MJRefreshAutoNormalFooter.m */, + 49670BEF07B759207432F9BAC3232A37 /* MJRefreshAutoStateFooter.h */, + 506242F11D90C1AEE578033478116092 /* MJRefreshAutoStateFooter.m */, + 7B00242AEAF7DC8FA5F63CFFCD102E90 /* MJRefreshBackFooter.h */, + E51F1EF01413ADDECD6664205BCE7A93 /* MJRefreshBackFooter.m */, + 13A6A7404AEFB590D7FBE61826442632 /* MJRefreshBackGifFooter.h */, + CA2334A7F161A92437E85AAEFF3C3F57 /* MJRefreshBackGifFooter.m */, + D006F0064B1980AC5E693A4C09DA3F4D /* MJRefreshBackNormalFooter.h */, + C1CA9AD43CC89D078D46C132C44AB4A4 /* MJRefreshBackNormalFooter.m */, + FC486EF7D98345630D4FEB14D1DF50D8 /* MJRefreshBackStateFooter.h */, + 7DC49AD779BCF52CF1DA54C5AE6E2B36 /* MJRefreshBackStateFooter.m */, + 89F35204C15E154529FCD3A47194B781 /* MJRefreshComponent.h */, + E3DD611E2B6825B2332BD02231705E84 /* MJRefreshComponent.m */, + 8F17C5948EBC1D81137E55F79E79794C /* MJRefreshConfig.h */, + 4D5C687385BE696DCC857DAFE966CAAD /* MJRefreshConfig.m */, + 117201D42D64EEBD54A9824C19353C82 /* MJRefreshConst.h */, + 6C6CC3A8E70B816FE8E2E96EF7A27E41 /* MJRefreshConst.m */, + 1A7EDE82DCCDCDE3D2E8D7244ED9788E /* MJRefreshFooter.h */, + D42235E7352D41F807EE27C6444FF06B /* MJRefreshFooter.m */, + 60031D8D6F31B55CA6F941F4E74FE20A /* MJRefreshGifHeader.h */, + 43CCDEB493C9979C1959B9942047DA1C /* MJRefreshGifHeader.m */, + EC728CA1DF148330DE8CEE2CDC59F7A0 /* MJRefreshHeader.h */, + 0BBE9EF043CCF5A5419ECFEB06C690C1 /* MJRefreshHeader.m */, + E20BAB91FEA315F02B58AF69507DB592 /* MJRefreshNormalHeader.h */, + 4E9D0ECB7E0F273DE9EDC330510B8A28 /* MJRefreshNormalHeader.m */, + 5FC94C6FC28C2204F52D7975F7EAD382 /* MJRefreshNormalTrailer.h */, + 19C4B336344ECAEDD6712562E4049762 /* MJRefreshNormalTrailer.m */, + C56F2770F14FFB52F18B08F7BC6A7C4C /* MJRefreshStateHeader.h */, + C7316A7F04B5390E547BCE5243EAA31F /* MJRefreshStateHeader.m */, + 602EEB89E65E882D26595BFB30A68753 /* MJRefreshStateTrailer.h */, + 4069EDB34E4007F32A728D2FED8B7504 /* MJRefreshStateTrailer.m */, + 3C1E12FF093098A22E423F0E1E49DDA6 /* MJRefreshTrailer.h */, + 21518245391611F2B49EF91E63B4083E /* MJRefreshTrailer.m */, + CCD4525C09817A4E7F1DBF72D225A3C4 /* NSBundle+MJRefresh.h */, + A22F8A41B6D2270432A011E71F734FA4 /* NSBundle+MJRefresh.m */, + 4E09F6B76B94BAB19AD42233BAB48DC8 /* UICollectionViewLayout+MJRefresh.h */, + 1449C5993FC9FD9E4C34B82F3C5CB814 /* UICollectionViewLayout+MJRefresh.m */, + 160D754EC35823FF85A34B79E72C40F1 /* UIScrollView+MJExtension.h */, + 42DAEB0034C273A0993E66931DF30BA3 /* UIScrollView+MJExtension.m */, + 499F69400989C98B94A8F8B97F588969 /* UIScrollView+MJRefresh.h */, + 0C3119926A431E2B17B538C93E17A852 /* UIScrollView+MJRefresh.m */, + 4C5997F32ACC78D0783DECD6876B8362 /* UIView+MJExtension.h */, + 2A973CF3ED699EA4E9515A9F191A256F /* UIView+MJExtension.m */, + 4D4E45D4E13BE1479DE9ED6A5860E781 /* Resources */, + 1A5648977B58271DEAD152E72127CBF6 /* Support Files */, + ); + name = MJRefresh; + path = MJRefresh; + sourceTree = ""; + }; + 1A5648977B58271DEAD152E72127CBF6 /* Support Files */ = { + isa = PBXGroup; + children = ( + 6B5C8D50DB10C1E73267380E60B30402 /* MJRefresh.modulemap */, + F808C875835D01EA4B267F0276991C8B /* MJRefresh-dummy.m */, + C95D6CCF3E0FD33F5C451665C2330257 /* MJRefresh-Info.plist */, + 07E8C7FB8E7C661BECCBC076BEFF05C9 /* MJRefresh-prefix.pch */, + 9EE6328AB6C72590DE803C111C37A60A /* MJRefresh-umbrella.h */, + 22E5D234C7281D45564E2715E0F37C73 /* MJRefresh.debug.xcconfig */, + 48B8EFC8261F0683C57D3F2F7266B2FA /* MJRefresh.release.xcconfig */, + DDD3C969C8BF4A653F2FD55DBC6D1216 /* ResourceBundle-MJRefresh.Privacy-MJRefresh-Info.plist */, + ); + name = "Support Files"; + path = "../Target Support Files/MJRefresh"; + sourceTree = ""; + }; + 240448F0BC5A7FA708A96EDAB3214C7D /* SVProgressHUD */ = { + isa = PBXGroup; + children = ( + CF80132893629C135785067E59A851F4 /* Core */, + 972320F996F7E672EEE88463E00EBF2A /* Support Files */, + ); + name = SVProgressHUD; + path = SVProgressHUD; + sourceTree = ""; + }; + 27CD36E81B91DFC23B8D4E924FB4FDF7 /* Tiercel */ = { + isa = PBXGroup; + children = ( + 238B7566326A9971E1086B295C5ABFCB /* Array+Safe.swift */, + 7E77397A610E64B5DE29B2C6790C9B0C /* Cache.swift */, + 32B909B928CC41053D7CF406408D2DA8 /* CodingUserInfoKey+Cache.swift */, + 1D817B76097E8F240E24A0DC3A3FDF0D /* Common.swift */, + 9AA7A53084CE6242FC8923CB61D69A11 /* Data+Hash.swift */, + 53F49612AAEE91DAD32EE172085A934A /* DispatchQueue+Safe.swift */, + B004488D8C4C6AC1F196AE21E80BF4AC /* Double+TaskInfo.swift */, + 2122C6EBB21D40091E4A7024A3A84553 /* DownloadTask.swift */, + 33E1D0F4570630A66EC11D6550996BFD /* Executer.swift */, + AC90EB3E707F329ECED58BF078742EBA /* FileChecksumHelper.swift */, + EE9A6FA2A81AC5A30859A6BB2B4FA72E /* FileManager+AvailableCapacity.swift */, + C78904CEF7B984BB219400B0132C5750 /* Int64+TaskInfo.swift */, + 46F8ABAB992507C6BBCA2AAF69DAB50D /* Notifications.swift */, + 6AFB9BB0EF5449C725EAD24210DFD26B /* OperationQueue+DispatchQueue.swift */, + 07BEA997FD9DBCEECF9DDD4849E2427B /* Protected.swift */, + 4FC60181C38DFC5BD6460CCD3C0E2E79 /* ResumeDataHelper.swift */, + C9D5D3B28B85FDD2F58AC6C511AFF54B /* SessionConfiguration.swift */, + EE9AF037CDAFAB9620BE013E2C3635C1 /* SessionDelegate.swift */, + AA063E0C0841D9CBEAFF14BEAD5D3CE8 /* SessionManager.swift */, + 01CFEA1169540CE8BA1331ACE15B00A8 /* String+Hash.swift */, + 94C202F95364504949AF0B1D2FF5EA5A /* Task.swift */, + 841611B569DBCAF114BC4865BCEAB887 /* TiercelError.swift */, + 82411FCD639DFF62A404373043D0A97B /* URLConvertible.swift */, + 78162222A9C1E9E834399EBEC817C51A /* URLSession+ResumeData.swift */, + B0A91033E576989970FFD4CEDD4C313A /* Support Files */, + ); + name = Tiercel; + path = Tiercel; + sourceTree = ""; + }; + 2822AE51D194BAC0001207CECF0DEFF5 /* Support Files */ = { + isa = PBXGroup; + children = ( + 823BE71A34CB959360DDD2BB9D4941C9 /* Kingfisher.modulemap */, + F0DE2A1E22A9F0F6E1720611015699A8 /* Kingfisher-dummy.m */, + 9D271C33ED404BEC1B70C06271250403 /* Kingfisher-Info.plist */, + F8DE4E6DF18F9DDB7E134D8F36AD6A46 /* Kingfisher-prefix.pch */, + E96DA98FB5788A040DD2ED9B93E36E78 /* Kingfisher-umbrella.h */, + 039652F74DE37B5B89EC981B2BAB2CC2 /* Kingfisher.debug.xcconfig */, + 4658976F267BC82EF3D6B7979DE50335 /* Kingfisher.release.xcconfig */, + EDC65E32BB51C809FFDF70FABAA749A3 /* ResourceBundle-Kingfisher-Kingfisher-Info.plist */, + ); + name = "Support Files"; + path = "../Target Support Files/Kingfisher"; + sourceTree = ""; + }; + 3457102D1EF9EB60995DB00FA7846513 /* Resources */ = { + isa = PBXGroup; + children = ( + 21CB16C0EE3EC122700610CC88559E66 /* PrivacyInfo.xcprivacy */, + ); + name = Resources; + sourceTree = ""; + }; + 3FFD6C313E6030895AAECBE13F52010C /* Alamofire */ = { + isa = PBXGroup; + children = ( + BC4168D55A1803CD9FF8E4EE13C46B71 /* AFError.swift */, + F58A90C8C5934EE6AB722DB8819C1632 /* Alamofire.swift */, + 5C6E47641FE0A4E8F158FBB515918A17 /* AlamofireExtended.swift */, + 7A65DD241CD2326B542E0BE7B68D3D65 /* AuthenticationInterceptor.swift */, + 8D5E2396A67F7160A6BAEE91CF8DE309 /* CachedResponseHandler.swift */, + 578211F81ABFCC933FC2FCAD98E8D47E /* Combine.swift */, + 26D8FAAD7E324D1696484B36A27617E1 /* Concurrency.swift */, + 2128D882568DC494E8F1150547E3A4DB /* DataRequest.swift */, + 10833C90D303AA34D096538644A80BF9 /* DataStreamRequest.swift */, + F3B4936C04FD05F923650CD1AFD33840 /* DispatchQueue+Alamofire.swift */, + 1770F6E73FCAE86AC7722A319B012606 /* DownloadRequest.swift */, + 16A00E05D0BD454FBE3C6BE4817B1CC2 /* EventMonitor.swift */, + B18AE0202CE7B90525259BA625A527F6 /* HTTPHeaders.swift */, + 1617A3777D8D48603550A764643637E8 /* HTTPMethod.swift */, + D3C8574545A771D6331BDF26BD545BC1 /* MultipartFormData.swift */, + 63A5658CA7BE9C8CB17CFA56505F5F3F /* MultipartUpload.swift */, + E25067B4F422F31021D401E81CDA3A38 /* NetworkReachabilityManager.swift */, + 0085AF2C56752715FC005A6762AE8307 /* Notifications.swift */, + B2703C2DE8F79F4582B6E3096674C625 /* OperationQueue+Alamofire.swift */, + 6B285B835616B56F46980ADD39A51C61 /* ParameterEncoder.swift */, + 2116DD2B393A810DC0A155E69BB8F7BB /* ParameterEncoding.swift */, + D395F3F3EB1DDC68123B77CC6C8F0E0B /* Protected.swift */, + DBE3E5C271FCF47C09129826CD1607D5 /* RedirectHandler.swift */, + 5AC5A3F2AFE4DBC634FBBEEC8C8597BC /* Request.swift */, + 0F8AF943C90C2F212A2E7474570424EE /* RequestCompression.swift */, + 6DE267000E0CF855728DAD2FA6B0D9D8 /* RequestInterceptor.swift */, + 203DBA9560500D53E8DDCED4335E7CFE /* RequestTaskMap.swift */, + 215886B2A76F059FE5D4A687D74535C3 /* Response.swift */, + F9F1C66852BF157B00E2E839B79BE5FF /* ResponseSerialization.swift */, + 4CDF31659C5CFC027B5F60F47F8B324B /* Result+Alamofire.swift */, + 3B05B30F83602E9BAE9D6BFAA15D754E /* RetryPolicy.swift */, + 1CDC49949B6AE24CE48C5C0261DA3A8B /* ServerTrustEvaluation.swift */, + 0A679FA4BEEED4176374BC386B15E12B /* Session.swift */, + 1576C1A75CD83CC0126786D2F38A300E /* SessionDelegate.swift */, + F81293AC0002136C2A240AEE245EA761 /* StringEncoding+Alamofire.swift */, + 9132990A6001E8384B01FF456D4DE827 /* UploadRequest.swift */, + 7D8C5FDD4C842D708A0A3A727D77B58F /* URLConvertible+URLRequestConvertible.swift */, + 6CF9AE62D9C4C2E8CA013313CEDAA381 /* URLEncodedFormEncoder.swift */, + E5D2335C862D6E9C8606261324B9FD98 /* URLRequest+Alamofire.swift */, + 39662A3DEB2406A1947116C8C84879C4 /* URLSessionConfiguration+Alamofire.swift */, + 910F21CD3337049AB8881F165BD19AE9 /* Validation.swift */, + DA67D87E3B84EB4733A22C6E50F276B4 /* WebSocketRequest.swift */, + 51E7E26CDC38013CF3A319F4B6241041 /* Resources */, + AA037B348CBD65719AE056F4F57B34BE /* Support Files */, + ); + name = Alamofire; + path = Alamofire; + sourceTree = ""; + }; + 41D8086943C918562E353DEB221D986C /* Resources */ = { + isa = PBXGroup; + children = ( + BDA6861F693C9A7F89FADBFCDF8B4DC8 /* langs */, + ); + name = Resources; + sourceTree = ""; + }; + 4D4E45D4E13BE1479DE9ED6A5860E781 /* Resources */ = { + isa = PBXGroup; + children = ( + BF06AC62113E5692AF1F4761A2616AC8 /* MJRefresh.bundle */, + 0C57FE4092186DA3BF03087A3DDC928C /* PrivacyInfo.xcprivacy */, + ); + name = Resources; + sourceTree = ""; + }; + 51E7E26CDC38013CF3A319F4B6241041 /* Resources */ = { + isa = PBXGroup; + children = ( + F9D5768A8F3F026A26F10BBAE52783B3 /* PrivacyInfo.xcprivacy */, + ); + name = Resources; + sourceTree = ""; + }; + 581266D805F8677FB69257E7693678B8 /* DownloadButton */ = { + isa = PBXGroup; + children = ( + 1745505B9FA5A35E72BC0FBEC9669138 /* CALayer+PKDownloadButtonAnimations.h */, + 1B1D8FD42382BC246408336EEE182B52 /* CALayer+PKDownloadButtonAnimations.m */, + 74594CC121111A6BE5D36A1345621641 /* NSLayoutConstraint+PKDownloadButton.h */, + 72B7DE9C38B4CCAA35EC94EC02E6D329 /* NSLayoutConstraint+PKDownloadButton.m */, + 2846700660840F9BEB3E18B26DD04EB0 /* PKCircleProgressView.h */, + 5188492DCEB003519D4B536CDD1F7B5A /* PKCircleProgressView.m */, + 81BA5C6700842B547C2E19A43B0551B9 /* PKCircleView.h */, + 8791B26F243EFF6DF5A806240222E002 /* PKCircleView.m */, + 96B3849B994F57B8B26611E06131CB08 /* PKDownloadButton.h */, + 1F365A87A2F56AA21E9F9300604BF5AC /* PKDownloadButton.m */, + 6673D2623B38B531794BA957717FE418 /* PKMacros.h */, + 7A6ECD49E457E72D5012323706377C03 /* PKPendingView.h */, + DAD9DD293A168FD3266BB05A5E822BF1 /* PKPendingView.m */, + 1DB0A9A327903E1073962BAAED8DA960 /* PKStopDownloadButton.h */, + 1615CF451757A9DDFB934B03559641D4 /* PKStopDownloadButton.m */, + 0D4E696F75CA79EF5DB1493DBFBD4E73 /* UIButton+PKDownloadButton.h */, + 8A9EC97D60C19B6EC4595E86F1D00537 /* UIButton+PKDownloadButton.m */, + 18A583CCFD6D1DBEB9CCF90CFBD1BC6A /* UIColor+PKDownloadButton.h */, + 545EBFECE53F67DCEBC38048C429627C /* UIColor+PKDownloadButton.m */, + A04E95A84D68E6C700795D5A112CC666 /* UIImage+PKDownloadButton.h */, + 109F4B31BBCDDD9360293F5C663FC4FB /* UIImage+PKDownloadButton.m */, + 87CCD49A306641DA6AE4145503CBB199 /* Support Files */, ); name = DownloadButton; path = DownloadButton; sourceTree = ""; }; - 1B9F4D013D834FC60695C9551085569F /* Support Files */ = { + 5ED3CC4A9A204B4EE29DA6BBF5CFA2A5 /* Products */ = { isa = PBXGroup; children = ( - F98FE4C2720E667CD4594DD20B2C809C /* SVProgressHUD.modulemap */, - 9C7DF955B9345F7577E38FDD9FF5C91F /* SVProgressHUD-dummy.m */, - C96320C10EC8C1C2EEC4BB8A0B01B640 /* SVProgressHUD-Info.plist */, - 88E40B3D5F836444B0A4F163AD6F1AA1 /* SVProgressHUD-prefix.pch */, - 27E637850C77BC6A026E851E20E42D8D /* SVProgressHUD-umbrella.h */, - 74B967EE8C2947EC14E43B06440EE732 /* SVProgressHUD.debug.xcconfig */, - 78E9B606463B84F0667A91A176A63CAF /* SVProgressHUD.release.xcconfig */, + 5D797E9A5C5782CE845840781FA1CC81 /* Alamofire */, + 085DBCE7DD98588B2ED103B1C1F36026 /* Alamofire-Alamofire */, + 54C9C6377C09561C9387D24D7E231921 /* DownloadButton */, + A6A74933CD02E6DBD2AFCF807116B6CB /* DownloadButton-DownloadButton */, + A8E950A16D00F649C54FFB30F81D7842 /* IQKeyboardManagerSwift */, + 2F4A1CCB21DB7EA5A2ACEB11E374FBCA /* JXPagingView */, + 7EB20B4E68CCB69F85E7D08B7F8463D6 /* JXPagingView-JXPagingView */, + 07928762D9A8551470DAAD7C1E1F53A5 /* JXSegmentedView */, + 92B0EC788EDA1B0CFA48DFFCB3DDAECD /* JXSegmentedView-JXSegmentedView */, + C3F44C782D64D7EB20B61CE3844EBFAD /* Kingfisher */, + C298ABB78D9B05529B89D8322DB2E7B0 /* Kingfisher-Kingfisher */, + CF0AA9FBFBDB70858C030769541505ED /* MarqueeLabel */, + FD694DB3E09A81036691F823E3211D44 /* MarqueeLabel-MarqueeLabel */, + E49D6D248DD1CEE584E6776B9164A1B2 /* MJRefresh */, + 7E3097CFEFDA621E9FB0E62009FF87FC /* MJRefresh-MJRefresh.Privacy */, + D095C62B7734C0DB6B8124A2A897B58B /* Pods-relax.offline.mp3.music */, + 979486118B3E90C08386079D57962701 /* SnapKit */, + B9DCB5EC0B1CDADD221717CADDF62359 /* SnapKit-SnapKit_Privacy */, + E97D43C46A45EE515A4DA3AF94398441 /* SVProgressHUD */, + 58AE0544E0C381DDBD09356C357EC82B /* SwiftDate */, + DBD68AAF67BB25B9E1F44519178DAE0F /* Tiercel */, ); - name = "Support Files"; - path = "../Target Support Files/SVProgressHUD"; - sourceTree = ""; - }; - 1C820CD3E04437D36C91077D7FB26E66 /* Resources */ = { - isa = PBXGroup; - children = ( - F4FC25EC1C00814464CC040EF1ED112E /* PrivacyInfo.xcprivacy */, - ); - name = Resources; - sourceTree = ""; - }; - 22EF3F9F67B39812255D7989882CF0BD /* Resources */ = { - isa = PBXGroup; - children = ( - 8099F9525C25E641D6DE6C728EE3F880 /* PrivacyInfo.xcprivacy */, - ); - name = Resources; - sourceTree = ""; - }; - 2D1DF7218588A7094FC475231FC4B3CB /* Support Files */ = { - isa = PBXGroup; - children = ( - 30A36C3E1877B45E9EA931A400465DB9 /* DownloadButton.modulemap */, - C84028ADE6846E4323ACB15E19ADC090 /* DownloadButton-dummy.m */, - 61126F658F018ED54DFEEEE69C6CA8E2 /* DownloadButton-Info.plist */, - 6AB7F75CC5F3996E30001B0AC78A91A9 /* DownloadButton-prefix.pch */, - 9501CB63FC7106D1611964238814DE16 /* DownloadButton-umbrella.h */, - F5B6449F536C5298590E398332C1AC3E /* DownloadButton.debug.xcconfig */, - 63B8C856677EDF8BE234CF7E2BB951A1 /* DownloadButton.release.xcconfig */, - C62096F4F3683376BE4C36F7B352D6CC /* ResourceBundle-DownloadButton-DownloadButton-Info.plist */, - ); - name = "Support Files"; - path = "../Target Support Files/DownloadButton"; - sourceTree = ""; - }; - 33F8ACE445CC55DA22A497E5A87EC77C /* Support Files */ = { - isa = PBXGroup; - children = ( - 4172AE07F2D6045FFAC7B6CE79D5CC32 /* IQKeyboardManagerSwift.modulemap */, - 63CBF16244C36F10F225DE1BA7038647 /* IQKeyboardManagerSwift-dummy.m */, - DDF8D88F7DA114E0C5D9A7A40FC95116 /* IQKeyboardManagerSwift-Info.plist */, - 6F485E1680AF601EAD7433E32D6975B2 /* IQKeyboardManagerSwift-prefix.pch */, - 8CAC18A227755897168F8ACF4C5BDC5A /* IQKeyboardManagerSwift-umbrella.h */, - 71A921DEC672A03FD9ED9A50A8A5112F /* IQKeyboardManagerSwift.debug.xcconfig */, - A99C6D78247F219367F4F8AB8CC454FF /* IQKeyboardManagerSwift.release.xcconfig */, - ); - name = "Support Files"; - path = "../Target Support Files/IQKeyboardManagerSwift"; - sourceTree = ""; - }; - 3AEDFA2DEB5CC317D191E9CA7D9FDEAE /* Paging */ = { - isa = PBXGroup; - children = ( - E8F12D3D56AB60DF1EBA2C097D344C57 /* JXPagingListContainerView.swift */, - 882F40E244273565B4DAA774DBAE0186 /* JXPagingListRefreshView.swift */, - 4E32C30A6532383449FAE228D54F6477 /* JXPagingMainTableView.swift */, - E0D5F358E3E5F37F2090D8DF5BD7BEBD /* JXPagingSmoothView.swift */, - 597C0B43F3A389988BBE039F9180AF73 /* JXPagingView.swift */, - 5CB4DAEB1D40BE0371C148FCE2292612 /* Resources */, - ); - name = Paging; - sourceTree = ""; - }; - 3E820A367C2EEC21BB9D5107762E6A53 /* SwiftDate */ = { - isa = PBXGroup; - children = ( - E346A9AF6887E0E1AAD2178604B2FBDF /* AssociatedValues.swift */, - 1FF2ECC0F78DECBDD03D5BC8674B5D91 /* Calendars.swift */, - 6B57EEBF6633E0A3B3E68FA866010056 /* Commons.swift */, - A56B327BFF93535BA9BFA03A6E2AB1C9 /* Date.swift */, - 2321C03D8076FF5C1197BA30FB637105 /* Date+Compare.swift */, - AF8CCDE7D9B91A3A3BBF803B79C651AB /* Date+Components.swift */, - 4BD1E96B9F81887409A87C11B8627CF9 /* Date+Create.swift */, - 3938E9316C816629BB272B90B7FB72BA /* Date+Math.swift */, - 5B4FEF35151874DEFF408DF21564915F /* DateComponents+Extras.swift */, - EA59BA4AF9EF61DDE3267A666349D9BC /* DateInRegion.swift */, - 5AF9BDEE553B59667C33A94E0D34992D /* DateInRegion+Compare.swift */, - C664257C5969700D7E1B383F33E56FEB /* DateInRegion+Components.swift */, - 87C9CDBBA73FEE85B6C6648580D2167B /* DateInRegion+Create.swift */, - 537E15307D7D72026BB4C0FC30CFED93 /* DateInRegion+Math.swift */, - 7D18AAD8C7EC5F24F1C4E62BC36A545A /* DateRepresentable.swift */, - 3C69FC3F3390BF347851D0534F9D932C /* DotNetParserFormatter.swift */, - 05D53E6FE979C0A1784D61AE876E30EB /* Formatter+Protocols.swift */, - 8B29C561AD6A42AE05E7D4933C413593 /* Int+DateComponents.swift */, - 9E37DE5812B553F480F77912701EA0FC /* ISOFormatter.swift */, - 1211C094C5D9D37494ED83147A1E37FD /* ISOParser.swift */, - 8BC750A9DB67924552C996D09B392511 /* Locales.swift */, - 8B9D360CDBAD5D8DA6901ADB37463388 /* Region.swift */, - 587F4C4B755FBF51C7CC55813ECF0DF9 /* RelativeFormatter.swift */, - A2B3E2B6010CFF743A48926748C6DD1D /* RelativeFormatter+Style.swift */, - CE67A08E936C10061A3F4C42C4D46A1F /* RelativeFormatterLanguage.swift */, - FAE1B3D9828D6B007276756B5710687E /* String+Parser.swift */, - 55AD550AFD50A4AACF406AE4509884F7 /* SwiftDate.swift */, - 214FAB9C40ED9237DD5FF6D0388B6D81 /* TimeInterval+Formatter.swift */, - 203889A6D004FA63E5B60B05C420B983 /* TimePeriod.swift */, - 67EEAAA4D8CC5122E9E7A878BDFA385D /* TimePeriod+Support.swift */, - 0CF57EB0CB57726D4D40CAAE90CD936E /* TimePeriodChain.swift */, - 8BD1314D27AF6FB58EF08E869CCB70FE /* TimePeriodCollection.swift */, - BE62833E8E1ADEDCF1681D442012F80B /* TimePeriodGroup.swift */, - 01CF505FB97345FF724294092F0C5058 /* TimePeriodProtocol.swift */, - E077AC06FAF9F81DEBC37C0D7A3F3802 /* TimeStructures.swift */, - 7229D90EC1A65C45FB522B55022F09C6 /* Zones.swift */, - 41B4FC0CDD8ABCCC4578F9B5C8B99DCC /* Resources */, - B1FFC0CF61491F97C002CF39073546FE /* Support Files */, - ); - name = SwiftDate; - path = SwiftDate; - sourceTree = ""; - }; - 41B4FC0CDD8ABCCC4578F9B5C8B99DCC /* Resources */ = { - isa = PBXGroup; - children = ( - 7783E7042303A5E0076AB72335FF86AD /* langs */, - ); - name = Resources; - sourceTree = ""; - }; - 5CB4DAEB1D40BE0371C148FCE2292612 /* Resources */ = { - isa = PBXGroup; - children = ( - 9E9C802ADF9427945AB4EA05DD6D3BD0 /* PrivacyInfo.xcprivacy */, - ); - name = Resources; - sourceTree = ""; - }; - 613AECF5028C5267D936AE16B879AA7C /* Kingfisher */ = { - isa = PBXGroup; - children = ( - 9980FB822658A810BC4A3B92CAC564F9 /* AnimatedImageView.swift */, - 219212DECF63C705E7EF8E6D103F7190 /* AuthenticationChallengeResponsable.swift */, - 38BE2DF3B6F0DB0C82BDE42F993FA0AA /* AVAssetImageDataProvider.swift */, - E8AB6861FB56A8A18DF4771C240FF4CD /* Box.swift */, - CA79BA165572FB323A04D46617357847 /* CacheSerializer.swift */, - 4E913710E854A76597D94659AAC19B6B /* CallbackQueue.swift */, - 68A19F495B7B29FCD335C9877343A792 /* CPListItem+Kingfisher.swift */, - 8885E02AC5ED5CCD9A4BA63AC631EE3B /* Delegate.swift */, - D828CDDF1A55F5AB5A1C46C8E9B5212B /* DiskStorage.swift */, - BB5803B78D37B44F74D50F13C1FBDDD5 /* DisplayLink.swift */, - 8B3DFBD060AD8EEB4A0CFD9D41F08DA5 /* ExtensionHelpers.swift */, - C0E89285C61C5207A9708CC303A59A3D /* Filter.swift */, - CC1D505E6DC2A1CF3359546A71AE8A0E /* FormatIndicatedCacheSerializer.swift */, - D1A055B449C92CC26C1381E59710D8C0 /* GIFAnimatedImage.swift */, - AA2DB24577A445C4239E287940618202 /* GraphicsContext.swift */, - 4068045C151506E0A93EFDB8951513F5 /* Image.swift */, - 7D45C333FDAD021CF43F46CE22C5A099 /* ImageBinder.swift */, - 89F5DB079478EA56BE88941393677920 /* ImageCache.swift */, - C8A5ADD5FBC68E5721C4365B19487007 /* ImageContext.swift */, - 334554B9B671DEC7ADCF7D982591C642 /* ImageDataProcessor.swift */, - 3C2F80AE1C9EE73162C077C9154EE0DB /* ImageDataProvider.swift */, - 5BE848D62F0E2DD5E6B01AB8A941161A /* ImageDownloader.swift */, - A8D8CA8FE715EF134ED3F7DAF0DBCE8C /* ImageDownloaderDelegate.swift */, - 9DA69B15763E7B151A7EEA0B2B4CFBEC /* ImageDrawing.swift */, - B13BD50E4EC6A725E6E81F3572320A45 /* ImageFormat.swift */, - ED54119B6A54FF4ADC1A500313A39E5B /* ImageModifier.swift */, - 66B6177A943E1AACC863187B10034268 /* ImagePrefetcher.swift */, - 36AC1C319C4549047F2F2AA747E1AE0B /* ImageProcessor.swift */, - C0584F1E05D493C986B42E3E281DA2E0 /* ImageProgressive.swift */, - 27D1E42712A93EE01B8A91DCEC710EAC /* ImageTransition.swift */, - 9C97D8752B07D5E7CF2EC8C6816232B1 /* ImageView+Kingfisher.swift */, - 14F4F939E553EA59CBD6A7CCFE434AD3 /* Indicator.swift */, - D0EC01ABC8BE7809772538339A7D8A17 /* KF.swift */, - 651AA476DE421329D7481219EEF6450D /* KFAnimatedImage.swift */, - 5EBF6A0C927D0BEC2B5DB9868AA49A13 /* KFImage.swift */, - F8EAF386B6BC1994FF7856ACC69F5A5E /* KFImageOptions.swift */, - 1840F8AE4A9DAF86A9713F0D3A7751F4 /* KFImageProtocol.swift */, - 01D1DD96A7064A2F1F151EB984101B42 /* KFImageRenderer.swift */, - 46BF1D9126491B49203F61335AAD8237 /* KFOptionsSetter.swift */, - 4FAB68949F3F65C3DCE726B88EEF50AC /* Kingfisher.swift */, - FA3FC481B34EFB18912B61858F7C31E8 /* KingfisherError.swift */, - BBBF0A136D849C2FA87A9508A1DA8387 /* KingfisherManager.swift */, - 5831937C2675DEC9D3967CA8C1C4DE4A /* KingfisherOptionsInfo.swift */, - F8020F66064F4E5C645D9BDD312552EC /* MemoryStorage.swift */, - 9E68924120FED7DCF99A872FFA9F54DC /* NSButton+Kingfisher.swift */, - E61B541BAA0D342983094AC77D1433AB /* NSTextAttachment+Kingfisher.swift */, - 72162E132CCC3CFF37F0C06770D2ABB8 /* Placeholder.swift */, - 507DB4670F96D43CAB20AFB3D18A622A /* RedirectHandler.swift */, - EE39DA769589701DAC7D7E6365F82406 /* RequestModifier.swift */, - 6BDFFD6764814A9B06BAC507955B8CE7 /* Resource.swift */, - 5D57C1E7C83318927FF473C3874244A1 /* Result.swift */, - 4C9961DB51C617F0E3F78E26BA1B8787 /* RetryStrategy.swift */, - 123ABCB9EF5852B06D5E32C8D4EB9E6C /* Runtime.swift */, - 23DE5A547FC5127A25009E99AD6C3EB6 /* SessionDataTask.swift */, - 3DF0CE5C30A5DCCC8B6DB7B3EF262A12 /* SessionDelegate.swift */, - C9D3123CA4DB0F7B9B4E0A0F76ADE2B7 /* SizeExtensions.swift */, - 63A098082295E231AEDD8791D3AA4A49 /* Source.swift */, - 7522B5E1BBFFA03FB1B7F7D5349FDDA9 /* Storage.swift */, - B65B57EA9496FB2C3B6BDA5D6B4E48EE /* String+MD5.swift */, - 9AD4BD75CC969A381CA33489A1380AF2 /* TVMonogramView+Kingfisher.swift */, - 39BC3B9D2613342C5CAF994270E1E089 /* UIButton+Kingfisher.swift */, - D60D2443E79D2ADEACF4A6F35ED91F46 /* WKInterfaceImage+Kingfisher.swift */, - E179C6E5316E7D77B867269D8D848133 /* Resources */, - 9D830C55EC9B73D3622675DBCCB572CE /* Support Files */, - ); - name = Kingfisher; - path = Kingfisher; + name = Products; sourceTree = ""; }; 6625D72D58B79130D815A3A6D7072BCE /* iOS */ = { @@ -1472,113 +1633,36 @@ name = "Targets Support Files"; sourceTree = ""; }; - 7132045EBFE2963E8DD184C71D16E148 /* MJRefresh */ = { + 6F75E45EECB4CA1AF847C861997533EB /* Support Files */ = { isa = PBXGroup; children = ( - 27F5B23D017DA45A994D3CAB2EC19776 /* MJRefresh.h */, - 9163D647AE97457039F7CCF80FCFEE3E /* MJRefreshAutoFooter.h */, - 63A2D978923680CBC3B31F209036FEE1 /* MJRefreshAutoFooter.m */, - 6E10A3685A161AEE58149D0E9C6C80AE /* MJRefreshAutoGifFooter.h */, - 3C5371C6033F9B22897412748D004E09 /* MJRefreshAutoGifFooter.m */, - 7A84B1B2C2A01CADA8A4FB7002C03EC0 /* MJRefreshAutoNormalFooter.h */, - EB007609961A6209560053C76559CE7C /* MJRefreshAutoNormalFooter.m */, - 49D847B127554DD4DB9891C33CA6CCF8 /* MJRefreshAutoStateFooter.h */, - 0F4D08727A4683802BEEB2F3662DEB2B /* MJRefreshAutoStateFooter.m */, - 370E0DBBCF6046B8EA0A19F16D7720C3 /* MJRefreshBackFooter.h */, - 6C14D8B0475F955FF30F17288DFF9FBA /* MJRefreshBackFooter.m */, - 2D4BF92463A6226AB1E7AC8D7C90D3AF /* MJRefreshBackGifFooter.h */, - 3B4BF2692B75E2E78EB3901D29CF2F20 /* MJRefreshBackGifFooter.m */, - FD193447A97E88D72DA312FFA750B7E3 /* MJRefreshBackNormalFooter.h */, - 8727F5EF7ECCBEBD46E6C8E7B6A0DF97 /* MJRefreshBackNormalFooter.m */, - BD1251C43198DD226402B31E21D75161 /* MJRefreshBackStateFooter.h */, - E1FB999AC2FDEAC6E684D8B3FA776139 /* MJRefreshBackStateFooter.m */, - 5792E5F49EE8878288039DD00DDC2023 /* MJRefreshComponent.h */, - 64514619DE9886AD750BCCFA911EBCE7 /* MJRefreshComponent.m */, - C5442AB6A892B9A10912AD30DA233E1F /* MJRefreshConfig.h */, - BAB2C96206F96650F4283CA3DF48FF32 /* MJRefreshConfig.m */, - EE56A83001E77940E55939087F6B6D50 /* MJRefreshConst.h */, - 39C8DA51B12B0841241D88B8559D10DF /* MJRefreshConst.m */, - 70825CEBF5EE532366CB976871A97C27 /* MJRefreshFooter.h */, - D18503D5513378AAA749EB4885A66EAA /* MJRefreshFooter.m */, - 1985F05564401FD34CF08871E1AC0475 /* MJRefreshGifHeader.h */, - DEA225A9EB938392C7EF2A568E82DA32 /* MJRefreshGifHeader.m */, - 3014A4FE1760FDA7885E041B8EF0853E /* MJRefreshHeader.h */, - B448667264F601C0B45F3EED80D8646C /* MJRefreshHeader.m */, - B9A87F9FE41AFEB6DCC62443F70031C7 /* MJRefreshNormalHeader.h */, - 0406807613B48C37AFBFD8A5566CECF7 /* MJRefreshNormalHeader.m */, - 4C2B27EFF326D222281498D6341EC22E /* MJRefreshNormalTrailer.h */, - FC9726A452C355E5A93BC81295F7FF11 /* MJRefreshNormalTrailer.m */, - DD79995B4A87E64E10BA3380D6198319 /* MJRefreshStateHeader.h */, - E8C11317C48B50EF739DF1A04D93A1F9 /* MJRefreshStateHeader.m */, - 4BC1D09BEB4A87CCA47DB2DB8F699307 /* MJRefreshStateTrailer.h */, - 5BA22F174045FFB7A48A75A7F4D9EB96 /* MJRefreshStateTrailer.m */, - 9F280E6832B7DEB6EE4B0A57BFF44C5E /* MJRefreshTrailer.h */, - D7A6149AFCACF07DCC6875C9ECECC7A3 /* MJRefreshTrailer.m */, - D5B48DED1E452069861B8DDE4A02CF99 /* NSBundle+MJRefresh.h */, - C5F2A9D2AE5EC1D15C9A439CA951F28B /* NSBundle+MJRefresh.m */, - D92DA17CEE50A9F5DB6B28966EB463F7 /* UICollectionViewLayout+MJRefresh.h */, - B90745D19853BE9EDA09363759828B91 /* UICollectionViewLayout+MJRefresh.m */, - D0C1779749FF7AF4D31E5FBFE6A84FC3 /* UIScrollView+MJExtension.h */, - 77B9D75E24F7E6064B6A070251CD91F2 /* UIScrollView+MJExtension.m */, - C481FA53A11A89DFFE144CC2281C24EF /* UIScrollView+MJRefresh.h */, - DF738793C80DDACF5A9214C986797E2F /* UIScrollView+MJRefresh.m */, - 5303ABF9B0FED3C94FF2EFF9ABDA9B4D /* UIView+MJExtension.h */, - 8EEB4F8D0734EDD1E7483E37F784DFB4 /* UIView+MJExtension.m */, - BDB33F7C2C8E08CA353E2B272AA764BD /* Resources */, - D43C79D98DDDA8A55F3C6589688C6EF5 /* Support Files */, - ); - name = MJRefresh; - path = MJRefresh; - sourceTree = ""; - }; - 735FA08FA21E51B92A36D0FCB5AF2B28 /* IQKeyboardManagerSwift */ = { - isa = PBXGroup; - children = ( - A83CB2EE68C6DADEBF0AE3E48F9A005F /* IQBarButtonItem.swift */, - 6C011E467CC22ED6D7E27C641D1F56BF /* IQInvocation.swift */, - CCE48D759A3729A1F7C0EACD9C5C2827 /* IQKeyboardManager.swift */, - 5C1056EA978019ADBA19B800CAEB542E /* IQKeyboardManager+Debug.swift */, - 0ED9A4576DB28DAC731E05D9B295B722 /* IQKeyboardManager+Internal.swift */, - EC4AE7F3244DF9F0CEC3FD87684C7ED5 /* IQKeyboardManager+OrientationNotification.swift */, - 51985907D190CC0C4BE05775C68447FE /* IQKeyboardManager+Position.swift */, - 40645897DA10D6315EE10B5CF09F9F83 /* IQKeyboardManager+Toolbar.swift */, - EF84581B386F0C2CCC6C90D635B943B3 /* IQKeyboardManager+UIKeyboardNotification.swift */, - 9C35F2387E5B65A2A9E492997862418F /* IQKeyboardManager+UITextFieldViewNotification.swift */, - F0B77FF8CCF94CC371E5305E19CB4399 /* IQKeyboardManagerConstants.swift */, - E6AF07FDF68286DCE8D2D3129ABE86E8 /* IQKeyboardManagerConstantsInternal.swift */, - 680D8D30FFEA27B037B71AFB46683FED /* IQKeyboardReturnKeyHandler.swift */, - DFAB6B5532F3B8E3FF410827371ED49E /* IQNSArray+Sort.swift */, - 5106D1769D56C09A2757D25D783D320F /* IQPlaceholderable.swift */, - DB4D898881D558C30750A0690F06774D /* IQPreviousNextView.swift */, - 771E3D4F19CA986D8B1AA6410516D930 /* IQTextView.swift */, - 7520BB516E107B80A66D15FEFEF999C1 /* IQTitleBarButtonItem.swift */, - 6B166B3810536EF00AF8735B173E648D /* IQToolbar.swift */, - 16BB28FA8B7896E7AF0AC7FC937F19A7 /* IQUIScrollView+Additions.swift */, - F60A6E2C18C53A1DCD59710DAE3325F0 /* IQUITextFieldView+Additions.swift */, - B677BF4BFAA0171DA9C1D3C4AE1B43B2 /* IQUIView+Hierarchy.swift */, - EC9EC0D2832CCC0BF46556C47E598340 /* IQUIView+IQKeyboardToolbar.swift */, - DC52C9616BD7796CAECA262CFB89146F /* IQUIViewController+Additions.swift */, - 1C820CD3E04437D36C91077D7FB26E66 /* Resources */, - 33F8ACE445CC55DA22A497E5A87EC77C /* Support Files */, - ); - name = IQKeyboardManagerSwift; - path = IQKeyboardManagerSwift; - sourceTree = ""; - }; - 78AEC6A645B7949057F84667339627DD /* Support Files */ = { - isa = PBXGroup; - children = ( - 799ACB25B944A07D0B38A8D469274B22 /* Alamofire.modulemap */, - DEEE532DDA9EFC510787A801E661F0FB /* Alamofire-dummy.m */, - 5651E434A3ABA08ABFA57DBF81DC3833 /* Alamofire-Info.plist */, - 647FAD59EAB8B7B7EC9ABE856699EEFA /* Alamofire-prefix.pch */, - 01158741151664C9DF8D6AEACDA30158 /* Alamofire-umbrella.h */, - 315BF2CB3391E812B1AEA545E71FE0E3 /* Alamofire.debug.xcconfig */, - 69D118DCAF0BE6F45B139DD009D24320 /* Alamofire.release.xcconfig */, - 1E24B480E3F5D88DE5613CA25EFEE58B /* ResourceBundle-Alamofire-Alamofire-Info.plist */, + 65512D77E95DF21370474D08B7B54F6D /* ResourceBundle-SnapKit_Privacy-SnapKit-Info.plist */, + 52B9A7D79DF51BBB25CEB545FC1161D8 /* SnapKit.modulemap */, + 2A1D22F7B21663BAD85E06A344194AF0 /* SnapKit-dummy.m */, + 19356736BF8163AB50220623743701DC /* SnapKit-Info.plist */, + FB58FFF0E18E9CC1D93B8E1B68B39002 /* SnapKit-prefix.pch */, + 8CAEB2326B3AA2C450941202C12210D4 /* SnapKit-umbrella.h */, + 51B62E8042BF1B6DD54027FC1086F65B /* SnapKit.debug.xcconfig */, + A0237D9541BF734A21ABB974F665057B /* SnapKit.release.xcconfig */, ); name = "Support Files"; - path = "../Target Support Files/Alamofire"; + path = "../Target Support Files/SnapKit"; + sourceTree = ""; + }; + 743F7347221E9D87EBA4FC251759325B /* Support Files */ = { + isa = PBXGroup; + children = ( + 3B234E4A6AC4FDDA785A69D6B9C0CC0E /* JXPagingView.modulemap */, + C3C485FF66388D1EB16387D1E50F9941 /* JXPagingView-dummy.m */, + 7B9742E02744BD8A0BB8D0D315C36A38 /* JXPagingView-Info.plist */, + B89D376B272B2FA5F769BC4CEEE83B5C /* JXPagingView-prefix.pch */, + 953FC7D1F8564B6B9DC76A37A7333FA5 /* JXPagingView-umbrella.h */, + 4E107748342DFAA0AE5704BF236060EB /* JXPagingView.debug.xcconfig */, + 355900B5F79AA20082E754752E197105 /* JXPagingView.release.xcconfig */, + 3BD745A1B0F3015C609CB24A9BFDF524 /* ResourceBundle-JXPagingView-JXPagingView-Info.plist */, + ); + name = "Support Files"; + path = "../Target Support Files/JXPagingView"; sourceTree = ""; }; 7CBE1112D54178853BC716B891956A38 /* Pods-relax.offline.mp3.music */ = { @@ -1598,328 +1682,406 @@ path = "Target Support Files/Pods-relax.offline.mp3.music"; sourceTree = ""; }; - 83B23D49AAF1A5457ADE70C1830E8D37 /* Alamofire */ = { + 7DA0765ED75F1D106D2F242425EED256 /* Paging */ = { isa = PBXGroup; children = ( - 943B4AB929902A7B25629F26D84D5417 /* AFError.swift */, - 1E6570A71224F7DABBFE472D8370347F /* Alamofire.swift */, - 352002810B4B49BECC2CE992E2A783FB /* AlamofireExtended.swift */, - 4D7B2E9D8BAF6E4F291B9C1CA555C991 /* AuthenticationInterceptor.swift */, - 73E8978BF1F0C58A3BD5854096AEBD52 /* CachedResponseHandler.swift */, - 95976A54E15E258957362E209ED32279 /* Combine.swift */, - B92C64DC7D87ACAD9C31FE09D0D6DB09 /* Concurrency.swift */, - 5FA8DD3EAF4331A957B02AF68C32D8C3 /* DataRequest.swift */, - 444DDECFD8D1EE63B4337DEA07CDBA41 /* DataStreamRequest.swift */, - 40A8CAAD858518E279F90477318343BC /* DispatchQueue+Alamofire.swift */, - CCF42DE6BA4D1820E5ACCC22C6AE1458 /* DownloadRequest.swift */, - EF13C0A52DFD4C08141E85D5BB948997 /* EventMonitor.swift */, - 15C91724B4E04DC823EA8635B9991F84 /* HTTPHeaders.swift */, - 043335998E7E91696B859F4CCD9606FC /* HTTPMethod.swift */, - CEEF956203C250D6ED823C9BDA708B41 /* MultipartFormData.swift */, - DBE043EDFC8970172839768C24C85385 /* MultipartUpload.swift */, - 84E67E72BA64A8C64C789594ABFF25B4 /* NetworkReachabilityManager.swift */, - 37AFBA38FAEEF7CC14CCC5E242D313BD /* Notifications.swift */, - FBF65AB8DCACDEF080398A6B2EC0BBEC /* OperationQueue+Alamofire.swift */, - 8F1AA9619B532D7267A35CBE59DF0D7F /* ParameterEncoder.swift */, - 7C4B5E073DEB2047089813AFB9E30CE6 /* ParameterEncoding.swift */, - 383778566947B3850ADAA36FE68A6580 /* Protected.swift */, - 7942B81EEA6AECA2482B4930A88C2F74 /* RedirectHandler.swift */, - 43C36A312871511CF0DD8615F079E951 /* Request.swift */, - 0098DF8EC116CB747F0A250EEFE46277 /* RequestCompression.swift */, - 3519A1DE1070D14BA21F4BEBE3C5D2ED /* RequestInterceptor.swift */, - 2DB07D33D8DA41364ED7B1B6284C443B /* RequestTaskMap.swift */, - 5A5E481E3DDCA3A4F1BB60E195B03E9A /* Response.swift */, - D16FDF1BA9F851829FB41F61D22DF87A /* ResponseSerialization.swift */, - BAC35232D14B3BFBE9C56633C116BB4D /* Result+Alamofire.swift */, - 486B16286080A1C04A4D1C6D3E6025B3 /* RetryPolicy.swift */, - EFC1DD0B0E10AC895C05A433F86AFDD3 /* ServerTrustEvaluation.swift */, - E4EE92687081A3EFA90A93BD1C9B49FB /* Session.swift */, - 3979C23227D173F64FC1CBA303A1D512 /* SessionDelegate.swift */, - 8F08B4014D08D679437B388E1EB6249C /* StringEncoding+Alamofire.swift */, - F71F8336A279465EDD63361D3EA48AD2 /* UploadRequest.swift */, - 3F40E10D55EC1044BB7FD2CD777678D4 /* URLConvertible+URLRequestConvertible.swift */, - 0399B88BB7703B5750208873531B6CFD /* URLEncodedFormEncoder.swift */, - 7479C6B0500EB95DE80EFD7058AA33D0 /* URLRequest+Alamofire.swift */, - 68153D2EA22B93481BFAA617AB95EEEE /* URLSessionConfiguration+Alamofire.swift */, - 22F9853435E731084D0A51B315E04D8F /* Validation.swift */, - 57D83805F5B2CF74579D77E015EE205A /* WebSocketRequest.swift */, - 22EF3F9F67B39812255D7989882CF0BD /* Resources */, - 78AEC6A645B7949057F84667339627DD /* Support Files */, + DE2C9A9D0E0B4D749B32C1E00BF7D8A7 /* JXPagingListContainerView.swift */, + E8062DA15BB499A276DDB19826D59379 /* JXPagingListRefreshView.swift */, + 3B76ADE3C6D04E0B956F25B04B67B5DC /* JXPagingMainTableView.swift */, + 4676AC055A0230683AB285C9444D9EB6 /* JXPagingSmoothView.swift */, + 4D2D33F595163FDA3C1066EFF04B0A3C /* JXPagingView.swift */, + 3457102D1EF9EB60995DB00FA7846513 /* Resources */, ); - name = Alamofire; - path = Alamofire; + name = Paging; sourceTree = ""; }; - 8546D7936AC5F8C61ABA611A1740D790 /* Resources */ = { + 7F4560A52C12465F2ACAE64DDFB0B32A /* Support Files */ = { isa = PBXGroup; children = ( - EC8AAD29842FD172A4B17E76ADF753A7 /* PrivacyInfo.xcprivacy */, - 1A0D92ED5164D726538A59D7F3BE7FE1 /* SVProgressHUD.bundle */, - ); - name = Resources; - sourceTree = ""; - }; - 857677F2EB210A1186CFCC0828929D2C /* Support Files */ = { - isa = PBXGroup; - children = ( - DD9D5B819D58686A48A8BB1148458C6B /* JXSegmentedView.modulemap */, - 148B5CBC5E6471CA45F7B87E0D5D7A1F /* JXSegmentedView-dummy.m */, - AE0377199CCDD24F4CC50F4CEDE27371 /* JXSegmentedView-Info.plist */, - 3693944CBFD5FFB3A20DE089331A7372 /* JXSegmentedView-prefix.pch */, - A1229D3D5E49A73412E7928353BDF391 /* JXSegmentedView-umbrella.h */, - 714716AD234D7BD4D2D3A167939A0DC9 /* JXSegmentedView.debug.xcconfig */, - F0940CA5187132EB1F3BFBCA44C148B5 /* JXSegmentedView.release.xcconfig */, - 56ABF94962001843D155D5C75C140754 /* ResourceBundle-JXSegmentedView-JXSegmentedView-Info.plist */, + 1B5D2F0523E192F1C435C1D98E1484DC /* JXSegmentedView.modulemap */, + 8504EF1F9133A53B74DAAF48F3E48C0A /* JXSegmentedView-dummy.m */, + AF0A56F7A9B298E04E4730EE1A0B362A /* JXSegmentedView-Info.plist */, + A3832FE8D85FB9947D3D2EEB36F8DBDF /* JXSegmentedView-prefix.pch */, + CEEC154FF2778A9A73035DE01D39991A /* JXSegmentedView-umbrella.h */, + 8BEE3704E70DADA99D787D095DCF97C9 /* JXSegmentedView.debug.xcconfig */, + 56D29ADB2EBBA325CE4BF575D81F9922 /* JXSegmentedView.release.xcconfig */, + 79E90E1B06EB62B96F30A9D606157FA9 /* ResourceBundle-JXSegmentedView-JXSegmentedView-Info.plist */, ); name = "Support Files"; path = "../Target Support Files/JXSegmentedView"; sourceTree = ""; }; - 88BD2E61F98E49446D15EF294D07917E /* Support Files */ = { + 87CCD49A306641DA6AE4145503CBB199 /* Support Files */ = { isa = PBXGroup; children = ( - 11C932A77CC9EF5471A84D4627873A6F /* Tiercel.modulemap */, - 3195118FB0FE0A5A0CDE12C350EC0BFE /* Tiercel-dummy.m */, - 90EA578EFDB2DA884851F1D6EF4DFB89 /* Tiercel-Info.plist */, - 1E45471EC7A619F828593BD726ED5426 /* Tiercel-prefix.pch */, - CD5E96189BF77251A0A7D74615A24812 /* Tiercel-umbrella.h */, - C862128BE47B7F41A1A5B3C534DF20F5 /* Tiercel.debug.xcconfig */, - 1ADFC6377B35790CE5A8D12BC8BF374A /* Tiercel.release.xcconfig */, + 789F6D0337DF509E335393411CC192CA /* DownloadButton.modulemap */, + C1A54DC86334B340EDFF3A979BBD5779 /* DownloadButton-dummy.m */, + 7693E08BE3EFA537F12FEEF954BA8B4A /* DownloadButton-Info.plist */, + 38934FCF51125F064A4F97B6DD3FE690 /* DownloadButton-prefix.pch */, + CBE5626C57DF328776BD0D2C05BB609E /* DownloadButton-umbrella.h */, + 286D36F1216FB22EFA1FA2B0BF33D8E4 /* DownloadButton.debug.xcconfig */, + B1587162BFA679126670ABAF09D8E3DD /* DownloadButton.release.xcconfig */, + 9D3801B2B1F7A26DC6F5168E5215724C /* ResourceBundle-DownloadButton-DownloadButton-Info.plist */, + ); + name = "Support Files"; + path = "../Target Support Files/DownloadButton"; + sourceTree = ""; + }; + 972320F996F7E672EEE88463E00EBF2A /* Support Files */ = { + isa = PBXGroup; + children = ( + 7AD360CBB95105F7403945A8F40A6ACC /* SVProgressHUD.modulemap */, + 5F6BBD8BAC38D8F22BFD8D815B81443B /* SVProgressHUD-dummy.m */, + 29349230CDFAD84CC21CEE89781B4F38 /* SVProgressHUD-Info.plist */, + 83F94B122379805EE9DD1FD51068BC97 /* SVProgressHUD-prefix.pch */, + 332F6C90B7478F0ADA35CCB36F18E139 /* SVProgressHUD-umbrella.h */, + B630EB0D57457813941147FFA1FC226E /* SVProgressHUD.debug.xcconfig */, + F624B3E773D2B4EDED7498509D928D5D /* SVProgressHUD.release.xcconfig */, + ); + name = "Support Files"; + path = "../Target Support Files/SVProgressHUD"; + sourceTree = ""; + }; + A05AAB611E84B0FCC524024266E6B1AD /* Support Files */ = { + isa = PBXGroup; + children = ( + 2605453BAB1B4DD45080E1A38785226E /* MarqueeLabel.modulemap */, + B143CD633633C08DB7AF7A0DBD6F28AC /* MarqueeLabel-dummy.m */, + 4A723B36400941F73232A642F2B5DC74 /* MarqueeLabel-Info.plist */, + 8D2C68F835D1F2408841451F2FAC3843 /* MarqueeLabel-prefix.pch */, + 5008A7DABE33777CC0A485DD1BD55C41 /* MarqueeLabel-umbrella.h */, + B2E569FD6AE02A7A1DC3F55132F39D8B /* MarqueeLabel.debug.xcconfig */, + 151EDB1C5044CF30A4CB9D9D05FC7B87 /* MarqueeLabel.release.xcconfig */, + BCFE95735F6A3DD9DA858134D05A1A19 /* ResourceBundle-MarqueeLabel-MarqueeLabel-Info.plist */, + ); + name = "Support Files"; + path = "../Target Support Files/MarqueeLabel"; + sourceTree = ""; + }; + A1C94F1E12A6A8E017C494BE55C8DF05 /* SwiftDate */ = { + isa = PBXGroup; + children = ( + 0A585AAA4ABFEE88AF9EA38DA8480A4E /* AssociatedValues.swift */, + 3FAC5A61EF918CD2923F2347A8289EAF /* Calendars.swift */, + D8516622262A452328B0B65E29AA340F /* Commons.swift */, + F98A5DF514D9F74D447722831FBA5807 /* Date.swift */, + 53BA0397D66EE761B2AD30DA65D57FC1 /* Date+Compare.swift */, + 14B1A3F3039D6C5E815E246D2738947D /* Date+Components.swift */, + A2B99C0D768123D8E998850C1C856C0E /* Date+Create.swift */, + 2A4A8EC54C0D772248106B90417E277C /* Date+Math.swift */, + 49EA64A868AD5A848F2723A28A022C20 /* DateComponents+Extras.swift */, + C5EBB178A1D51C38C6D030242C68E41C /* DateInRegion.swift */, + 40E624220D9808FE4E6F704725D45A64 /* DateInRegion+Compare.swift */, + 48E651BF46CACE566E99761D182A8313 /* DateInRegion+Components.swift */, + C97BEE5E450A5E886F39744CBDD8E4E3 /* DateInRegion+Create.swift */, + F8E1A99F23F81AD71CD4CE65BBCEBF0D /* DateInRegion+Math.swift */, + 9CA4F7B8603C3C6B06E3EC0DD58D9C71 /* DateRepresentable.swift */, + FFB2C31AAAD3CD21FEFE7182CC04951F /* DotNetParserFormatter.swift */, + 35FA650454D142550A0573C6FB619834 /* Formatter+Protocols.swift */, + D0534F15E81BC57C85EEEF636D7A15AD /* Int+DateComponents.swift */, + BF98BFA0D0A06425E83174B4F21DCB21 /* ISOFormatter.swift */, + AC40E3618D748C02FC87EABC6B1128F5 /* ISOParser.swift */, + 3A9302AD87823AB239A8DE5448ED7EA8 /* Locales.swift */, + E76218A6A0AC4A58A10DAA88E00C21FE /* Region.swift */, + 804AE736B53C8214AF7EE8E174CB4F9E /* RelativeFormatter.swift */, + 34407EBEDB54B802330DFFF56E661207 /* RelativeFormatter+Style.swift */, + 473404EA66F41CF156A5AA1663364FDC /* RelativeFormatterLanguage.swift */, + F6D2CA71CCD091A767826F36D43522CA /* String+Parser.swift */, + 1BD0AAB38CA9722D37F600FF34CC07B9 /* SwiftDate.swift */, + 0ED55223068A73568B36FF08EFCF9EAF /* TimeInterval+Formatter.swift */, + 4B940D34CA176A20AE3392A5DF877602 /* TimePeriod.swift */, + A4FB2F0378651B15C91908EFC5DC27CB /* TimePeriod+Support.swift */, + 363041D7DAC28D7907D5E0EC0CEE54B6 /* TimePeriodChain.swift */, + F326CD136B8C209A498E147755654AFA /* TimePeriodCollection.swift */, + C36A6C9D52AF7D31EA7F08AA56D00180 /* TimePeriodGroup.swift */, + AA23D6F550CE77AB601F0A0B2ED964C6 /* TimePeriodProtocol.swift */, + 74BF157814EA00E73F813C2C5D28312D /* TimeStructures.swift */, + 955FB175B0F957F837E1F14A74513FF5 /* Zones.swift */, + 41D8086943C918562E353DEB221D986C /* Resources */, + 1426E874D531542C5A2E07082C62722D /* Support Files */, + ); + name = SwiftDate; + path = SwiftDate; + sourceTree = ""; + }; + A2250C38DE970A86A9514F8156919371 /* SnapKit */ = { + isa = PBXGroup; + children = ( + 1D9415D9D582CA7A0D82036D18FAA265 /* Constraint.swift */, + C6C4B2FB359BAF9C49695E7D50FFC4D2 /* ConstraintAttributes.swift */, + 30AE3CC8312E4132A9A995297F2523C6 /* ConstraintConfig.swift */, + 003E0189738A9240CB460BA31D90274C /* ConstraintConstantTarget.swift */, + FFC2163D8BC1DC94596E6612D1851079 /* ConstraintDescription.swift */, + AB74D4B0A0E85EFD5BED4E414FF4EFBF /* ConstraintDirectionalInsets.swift */, + A479C4969D1F508A7852E903C140798E /* ConstraintDirectionalInsetTarget.swift */, + 1A4AEBFDF713BDED395F4612202D7871 /* ConstraintDSL.swift */, + 5F7F5E6F94879FAB29D921DC9FAF8CD9 /* ConstraintInsets.swift */, + 31FD8F5F9DCF707E18D9317B12D18BBE /* ConstraintInsetTarget.swift */, + 9BB1B70D50E125F5116226218AD83F85 /* ConstraintItem.swift */, + 93B36940516BABBD2527915100693F88 /* ConstraintLayoutGuide.swift */, + AB883732E46A5484BBD2DBC929A9BDE2 /* ConstraintLayoutGuide+Extensions.swift */, + B803220E5945CD79C62D45CBE3A42ABE /* ConstraintLayoutGuideDSL.swift */, + 42D32A21BC6970499FB68AB45D275ACC /* ConstraintLayoutSupport.swift */, + 0BD6E357D41791AA4FB7890AED14C527 /* ConstraintLayoutSupportDSL.swift */, + D93B88986A70049740732E9BDA2D984D /* ConstraintMaker.swift */, + E17BB19CC994226AFBDBA45E90174B3A /* ConstraintMakerEditable.swift */, + EE3980766775DB21E234DC0A37D61FB5 /* ConstraintMakerExtendable.swift */, + 480B5DAE25DDAB0483A10B4A65214BB2 /* ConstraintMakerFinalizable.swift */, + DF7749CC04C556874BBE546166F36A46 /* ConstraintMakerPrioritizable.swift */, + 9DD63E7F57872EECA1B11850AC15C93E /* ConstraintMakerRelatable.swift */, + DA52ED1D7100B2335479F45E0BAB48BA /* ConstraintMakerRelatable+Extensions.swift */, + 64C33D2228817B887C70B400F0DC5497 /* ConstraintMultiplierTarget.swift */, + E8BB085594A33CFA1AE37B223A06BF25 /* ConstraintOffsetTarget.swift */, + 66A707A1F00997A05FF4D07781452021 /* ConstraintPriority.swift */, + FE70BEDA021F24905556038DC9C6EF72 /* ConstraintPriorityTarget.swift */, + C56759DC72BE3E295255912D3346F86F /* ConstraintRelatableTarget.swift */, + 22EAD7AA2887FF42492CB6AC6700A744 /* ConstraintRelation.swift */, + C7280B062A7EAD9FFA0FEC16E1936C6E /* ConstraintView.swift */, + 7C0DB9DC40B79D952AF8493966908936 /* ConstraintView+Extensions.swift */, + B240B0622C4AC6081D7EDFC6202A7A07 /* ConstraintViewDSL.swift */, + 4BE433B1433BD888BDE297FD204C49F9 /* Debugging.swift */, + 34BF55272606579ED586584FC1416BCE /* LayoutConstraint.swift */, + CB21BE53AD315A53D3028EB684445858 /* LayoutConstraintItem.swift */, + BB9A3310F4C2D7FF46E05C5C085EFB8C /* Typealiases.swift */, + C4E948AF2BE57221FF0FCEF5775EBBEF /* UILayoutSupport+Extensions.swift */, + 0B404410E863BE7AB7F21409B7CF2AE4 /* Resources */, + 6F75E45EECB4CA1AF847C861997533EB /* Support Files */, + ); + name = SnapKit; + path = SnapKit; + sourceTree = ""; + }; + A74757EDB866ACA63B73DF7681A3CF01 /* Resources */ = { + isa = PBXGroup; + children = ( + F9ABB3A8141E40470EE54F0016A46483 /* PrivacyInfo.xcprivacy */, + ); + name = Resources; + sourceTree = ""; + }; + A9B90A0A9F371F65EC80BC5E4961DBC1 /* Kingfisher */ = { + isa = PBXGroup; + children = ( + 6792A4125127E2185D9E31BE55214F0B /* AnimatedImageView.swift */, + 51BC721DE951672AC86725904BF54E3F /* AuthenticationChallengeResponsable.swift */, + E3999012C65D76E395381CECF9C5701C /* AVAssetImageDataProvider.swift */, + DEA0FFC9C5524694F1BEEB79266364F1 /* Box.swift */, + 0A64F5F92A75933EA79178722B51ABD8 /* CacheSerializer.swift */, + DE57191B720EDB55AFB0B738ACBE9FA2 /* CallbackQueue.swift */, + DE89C1ABF2A598826BFD10EDDDA95AC6 /* CPListItem+Kingfisher.swift */, + 3D5F1A2FF1FB1DD42568FD79BC4800F0 /* Delegate.swift */, + C51A4E89875641A52F30561B602453E5 /* DiskStorage.swift */, + BEA6DFC5EDEDBA9D67A35572352AA3C4 /* DisplayLink.swift */, + 20AC444F5427C3749605C0383D160FEB /* ExtensionHelpers.swift */, + BE341138A72B8913BD879A77F75CBD06 /* Filter.swift */, + B0524D8BA55EB77A9786839D001228E5 /* FormatIndicatedCacheSerializer.swift */, + 0131C8FEF300D7E0DCB43F23E7C66B1F /* GIFAnimatedImage.swift */, + 98EDA8CF2147231BF156393E8D125FAD /* GraphicsContext.swift */, + A6A506A57BEBD985E5CA2ABEF70A3C8A /* Image.swift */, + 00809342163D914F7313B357D343777A /* ImageBinder.swift */, + 97C0B0DDE6518C31B73D58FD7DB4BC00 /* ImageCache.swift */, + A5089A55177AC7BFF0A6C618FC9C79DF /* ImageContext.swift */, + 925B3EF9170B62EB96DDA4A261C43D64 /* ImageDataProcessor.swift */, + 31C323285A3155F84D9AFE58FD78D246 /* ImageDataProvider.swift */, + 90A81DA85C66E9E2FB3201D69AAD666D /* ImageDownloader.swift */, + 9F1DD919E6FEB406815EA8275F490877 /* ImageDownloaderDelegate.swift */, + 6636254FFB6DE11FD7A8AFA55F06D1C4 /* ImageDrawing.swift */, + A05D76B3DC19D0B92299EEAC15498891 /* ImageFormat.swift */, + 547C395DDFFDD27A8A8FEE800C4BA045 /* ImageModifier.swift */, + ADF9D748AB9232ECD519C2A7219DEDA3 /* ImagePrefetcher.swift */, + 55A0A23CDD2D41CCEFF65E26C4A08F83 /* ImageProcessor.swift */, + 39CEAE4CB2B89F74AF94DC40A7FCE403 /* ImageProgressive.swift */, + F7DC336FCAEF4579E435D1CA1EAAFA09 /* ImageTransition.swift */, + AA4F799B3FC61A81E6D33FEAB0B1267E /* ImageView+Kingfisher.swift */, + 51CD975673CF1F07A2A13679560350A0 /* Indicator.swift */, + ED9E039902D3928D76325A9F22981AD4 /* KF.swift */, + 4FFF862E204569AABC42FFAFD56353A0 /* KFAnimatedImage.swift */, + 52B39B8C94D1DBDCA76CF5D74C8C6EF5 /* KFImage.swift */, + 4DD5A923B5AC516949CE302FF67EBB14 /* KFImageOptions.swift */, + 76EB2408020A5E896E8A7E5BF1D6866D /* KFImageProtocol.swift */, + 92477ADA09E2A3DC05DB6B89EEDFB913 /* KFImageRenderer.swift */, + D6376967BC13A929AB938E8FDFE0093B /* KFOptionsSetter.swift */, + 15069099C57BDA36E80037EF11AE010D /* Kingfisher.swift */, + B083BDB134F183783F9CA8EE5D001949 /* KingfisherError.swift */, + 350BCB03327C5F2C9BECC6FFA0542AC8 /* KingfisherManager.swift */, + 26A8543F8061C4A8532F17AB9763A423 /* KingfisherOptionsInfo.swift */, + 7FC69616A1892344EB78134505A3F752 /* MemoryStorage.swift */, + 0175C3BDDE4AF2390BE74E4410720475 /* NSButton+Kingfisher.swift */, + 93A1AF74FF3777E85CA96AB1136C31D3 /* NSTextAttachment+Kingfisher.swift */, + 651C18F3728516BA04D822B7AF347A1D /* Placeholder.swift */, + E0D6121CA98BB82C7851D193FD419502 /* RedirectHandler.swift */, + 1E0C9D5FFE7B4EBECE637ACE8C31A3E8 /* RequestModifier.swift */, + A54156DD4825B5F1C49FFDE72E5CA3D2 /* Resource.swift */, + C83CA5A1A860D5596AEBFBC4F15135E1 /* Result.swift */, + 1980AB08B7A9EEC85770C1233B343099 /* RetryStrategy.swift */, + 187C3048087F7F1D41E679EFC368D94B /* Runtime.swift */, + 7A2F1293C202DA8EED09FA536FC3026D /* SessionDataTask.swift */, + A7772DA4BDA381D5C4F75BCDD92362F9 /* SessionDelegate.swift */, + C8746755854783E52DEFB00615699F5D /* SizeExtensions.swift */, + 0EBDD43A7B38065D789EAEA7E3A99DC6 /* Source.swift */, + 2A8550EC020A77B500DD995CEA60F882 /* Storage.swift */, + 8448673A4774CAFEBCD24BE82AF62917 /* String+MD5.swift */, + EA93223DB4EFA6447ADE2A496727EF42 /* TVMonogramView+Kingfisher.swift */, + 208D6F9BA69B30FB0264D0CE23153F7E /* UIButton+Kingfisher.swift */, + 5569399D1EB726EB0DD2A7E1396321DC /* WKInterfaceImage+Kingfisher.swift */, + BD3AC085296BE9CA17E5168BFC5103BD /* Resources */, + 2822AE51D194BAC0001207CECF0DEFF5 /* Support Files */, + ); + name = Kingfisher; + path = Kingfisher; + sourceTree = ""; + }; + AA037B348CBD65719AE056F4F57B34BE /* Support Files */ = { + isa = PBXGroup; + children = ( + F338AF678260C96DEC528B76D94CC60B /* Alamofire.modulemap */, + 58763E9810DBE5D64F8BB7A2F0CC8ED8 /* Alamofire-dummy.m */, + FB3952D9C2FCBCCECED2C8E5AE18BE0B /* Alamofire-Info.plist */, + 2EF8C06157DE2D2EDC158F46A61C30F6 /* Alamofire-prefix.pch */, + EA4C6F8B96D45ED1BBBD34CFA947EC47 /* Alamofire-umbrella.h */, + C6875035947686EB58790FA26575254B /* Alamofire.debug.xcconfig */, + D04EA9E18CCA8A041EC5FC2AD22309B6 /* Alamofire.release.xcconfig */, + B14BD1FA29CD461D96C4926A105568E7 /* ResourceBundle-Alamofire-Alamofire-Info.plist */, + ); + name = "Support Files"; + path = "../Target Support Files/Alamofire"; + sourceTree = ""; + }; + B0A91033E576989970FFD4CEDD4C313A /* Support Files */ = { + isa = PBXGroup; + children = ( + 2C40ADB610A320A37BD45C4B202CBBE0 /* Tiercel.modulemap */, + C0BE2DDD0E10875AE143D7839F201491 /* Tiercel-dummy.m */, + 242C09118E5EDE159E70808EBDDA00E9 /* Tiercel-Info.plist */, + 6701D40E2193283F7AFDE1685BEF2161 /* Tiercel-prefix.pch */, + AFDD721B961419036553BB7F816B5B9E /* Tiercel-umbrella.h */, + C53B57243C12253DFF4D521DA23D9124 /* Tiercel.debug.xcconfig */, + E3542F7E70022B5811F78FF63C58D5E0 /* Tiercel.release.xcconfig */, ); name = "Support Files"; path = "../Target Support Files/Tiercel"; sourceTree = ""; }; - 93A58ADCAFD6851B2951AB418C1D552E /* Pods */ = { + B1986DCE6E1F2730D425C88899763B8B /* IQKeyboardManagerSwift */ = { isa = PBXGroup; children = ( - 83B23D49AAF1A5457ADE70C1830E8D37 /* Alamofire */, - 19BE7D3952801D0B0E6F4FB681B4B391 /* DownloadButton */, - 735FA08FA21E51B92A36D0FCB5AF2B28 /* IQKeyboardManagerSwift */, - A690952935005FC562363B7C009A0645 /* JXPagingView */, - BBFE1ED7F21A9361AA424F52EF283EDB /* JXSegmentedView */, - 613AECF5028C5267D936AE16B879AA7C /* Kingfisher */, - 7132045EBFE2963E8DD184C71D16E148 /* MJRefresh */, - F06BA916F7123C35EC32476043211893 /* SnapKit */, - D64C6991947D3B56237BDC67ACAD5BC2 /* SVProgressHUD */, - 3E820A367C2EEC21BB9D5107762E6A53 /* SwiftDate */, - CDE220BD90F58B5EBB27563BA26CCADB /* Tiercel */, + C84551F146725C38A8BF32264CB9D233 /* IQBarButtonItem.swift */, + 75CCB704A2F8C5FD5D51A39623EC97EF /* IQInvocation.swift */, + 81D940990A7A5C8F9765145438343AEB /* IQKeyboardManager.swift */, + 33140581269593D23CABC41A35B01F83 /* IQKeyboardManager+Debug.swift */, + D2D7D8612278935E2C4A971B057FF070 /* IQKeyboardManager+Internal.swift */, + 1676881842A119CAFB75D031A09B9F8A /* IQKeyboardManager+OrientationNotification.swift */, + 9D871BE2C3416A74C644B64DBF2B5DC6 /* IQKeyboardManager+Position.swift */, + E9669FA7175A0ECDE0583DD8E9C33F14 /* IQKeyboardManager+Toolbar.swift */, + 15312F9E030D2895F28379E5E7AC2F61 /* IQKeyboardManager+UIKeyboardNotification.swift */, + A96639B1598DB44935B4470271613AFB /* IQKeyboardManager+UITextFieldViewNotification.swift */, + C52CB88FD984A6FB84683407A504D382 /* IQKeyboardManagerConstants.swift */, + E779182A5BEF30E1BDDE84D00FEC1678 /* IQKeyboardManagerConstantsInternal.swift */, + 53D9BBF299544DEEAD5E456AA5306990 /* IQKeyboardReturnKeyHandler.swift */, + C20FA9B8AFEC263D98FDA510EF5428F4 /* IQNSArray+Sort.swift */, + 58565BBC4BB002FF81582767242BFC67 /* IQPlaceholderable.swift */, + 23941654FE33A23CA7BF75F0C95BA24B /* IQPreviousNextView.swift */, + 06A55350BF66D9CE17E086D6174A2A51 /* IQTextView.swift */, + 6CF22C8803B6805B8F73395E93D6AC83 /* IQTitleBarButtonItem.swift */, + 8BD415DF4E0434B63CAD999FB00828B9 /* IQToolbar.swift */, + 30619E70159FE994D5F9B876739CF48E /* IQUIScrollView+Additions.swift */, + 0767EB67AF8AB44D30657126FC473E60 /* IQUITextFieldView+Additions.swift */, + F4EE1B14402D8D0CCFC4F70B19E2A807 /* IQUIView+Hierarchy.swift */, + 5DDFC2B686C7E589416A77F3D89D8BD5 /* IQUIView+IQKeyboardToolbar.swift */, + 47CB3125EBE82E815B80A545A72A5737 /* IQUIViewController+Additions.swift */, + F094CFEAC74E6FE5D6B6F32CC1FB5B76 /* Resources */, + BCC3952F777DDAC86B934E0B79E3DEBA /* Support Files */, + ); + name = IQKeyboardManagerSwift; + path = IQKeyboardManagerSwift; + sourceTree = ""; + }; + BCC3952F777DDAC86B934E0B79E3DEBA /* Support Files */ = { + isa = PBXGroup; + children = ( + 80C4375ACA6756DEC97E8AEB9D624786 /* IQKeyboardManagerSwift.modulemap */, + 1F06F0BFC065D8251E7724344E40E245 /* IQKeyboardManagerSwift-dummy.m */, + 40284AA2CE8A6329AA2F1E8E1DBDC5AC /* IQKeyboardManagerSwift-Info.plist */, + AF4C256D8A18BF50D1ED6AD8B2B3B4C1 /* IQKeyboardManagerSwift-prefix.pch */, + E8582A8D4529359E27C0462E791183E5 /* IQKeyboardManagerSwift-umbrella.h */, + 7E44CDDA1648D533E272048FC72962FF /* IQKeyboardManagerSwift.debug.xcconfig */, + FD209E59AEF04DF3B00BEF141AD3C1FA /* IQKeyboardManagerSwift.release.xcconfig */, + ); + name = "Support Files"; + path = "../Target Support Files/IQKeyboardManagerSwift"; + sourceTree = ""; + }; + BD3AC085296BE9CA17E5168BFC5103BD /* Resources */ = { + isa = PBXGroup; + children = ( + 6088064A3AA58B0CD11EFF40FF0662CE /* PrivacyInfo.xcprivacy */, + ); + name = Resources; + sourceTree = ""; + }; + CA238E2EF3DE547A52E9FC5BC46EC3DE /* Pods */ = { + isa = PBXGroup; + children = ( + 3FFD6C313E6030895AAECBE13F52010C /* Alamofire */, + 581266D805F8677FB69257E7693678B8 /* DownloadButton */, + B1986DCE6E1F2730D425C88899763B8B /* IQKeyboardManagerSwift */, + CEF2B67BB0D783E24F240A218F2314F2 /* JXPagingView */, + 0AA0BEFA963841B43AA8B0E59613FD11 /* JXSegmentedView */, + A9B90A0A9F371F65EC80BC5E4961DBC1 /* Kingfisher */, + 0F6154F7DC0C024C1474326FAE09C829 /* MarqueeLabel */, + 143A74B249F814532B790DCBBB738B04 /* MJRefresh */, + A2250C38DE970A86A9514F8156919371 /* SnapKit */, + 240448F0BC5A7FA708A96EDAB3214C7D /* SVProgressHUD */, + A1C94F1E12A6A8E017C494BE55C8DF05 /* SwiftDate */, + 27CD36E81B91DFC23B8D4E924FB4FDF7 /* Tiercel */, ); name = Pods; sourceTree = ""; }; - 9D830C55EC9B73D3622675DBCCB572CE /* Support Files */ = { + CEF2B67BB0D783E24F240A218F2314F2 /* JXPagingView */ = { isa = PBXGroup; children = ( - AADF28D0E64A62FD56B8309A059DAF2E /* Kingfisher.modulemap */, - 6ACED6F5365BD329D3BE6C449312D271 /* Kingfisher-dummy.m */, - 96CC867B24D86BDE4A44C53D0ED01481 /* Kingfisher-Info.plist */, - ED87543F9608D818C1C0B411BCD164F1 /* Kingfisher-prefix.pch */, - 8244D5BC1AC6EF3B749557D38982A3C5 /* Kingfisher-umbrella.h */, - 61E2818BF0B1113FD98A2C90CF89E0D2 /* Kingfisher.debug.xcconfig */, - 3D86F413A39C2ED7EBED385F18D75825 /* Kingfisher.release.xcconfig */, - 4BA645CD0C9220432BBA4BF52D119E3B /* ResourceBundle-Kingfisher-Kingfisher-Info.plist */, - ); - name = "Support Files"; - path = "../Target Support Files/Kingfisher"; - sourceTree = ""; - }; - A431A89553DE0501003ECDCEEC42EC00 /* Support Files */ = { - isa = PBXGroup; - children = ( - 29B60A91EEC97F2653D0DD4FBBA9726B /* ResourceBundle-SnapKit_Privacy-SnapKit-Info.plist */, - 57F671013FA9DEB80C7C46A741725C8B /* SnapKit.modulemap */, - D1CC4A34B7E2E53CDB2C9AB2B58BA516 /* SnapKit-dummy.m */, - E81F61DF91E96996903C3D5351B13CA2 /* SnapKit-Info.plist */, - E71797A38F958EB9A07CA07E468C7E42 /* SnapKit-prefix.pch */, - BC2C9781FC9F953ABBE8D0069D3562FA /* SnapKit-umbrella.h */, - 0753975CECF9BBF7A60B065338B2C8EA /* SnapKit.debug.xcconfig */, - 95BABC6511F75F88C0D1B62787F185BC /* SnapKit.release.xcconfig */, - ); - name = "Support Files"; - path = "../Target Support Files/SnapKit"; - sourceTree = ""; - }; - A690952935005FC562363B7C009A0645 /* JXPagingView */ = { - isa = PBXGroup; - children = ( - 3AEDFA2DEB5CC317D191E9CA7D9FDEAE /* Paging */, - 19269624E41C8B31129B159456E5B788 /* Support Files */, + 7DA0765ED75F1D106D2F242425EED256 /* Paging */, + 743F7347221E9D87EBA4FC251759325B /* Support Files */, ); name = JXPagingView; path = JXPagingView; sourceTree = ""; }; - B1FFC0CF61491F97C002CF39073546FE /* Support Files */ = { - isa = PBXGroup; - children = ( - 011583C69E3EDF78E003045AE1B9C73C /* SwiftDate.modulemap */, - ED6AF3E82C2703509CFCC5748F6E7604 /* SwiftDate-dummy.m */, - 153A710FE69516F61C85510B6BD74E4B /* SwiftDate-Info.plist */, - F90F7404F136AB670715257A54441A6A /* SwiftDate-prefix.pch */, - 0A7DE7F4DC02387DEB4909EE6551BEBC /* SwiftDate-umbrella.h */, - 158C7BFA1B82120B554D6548EB9F3715 /* SwiftDate.debug.xcconfig */, - 159E2A4DAA8F5B4713B65544D40E96E2 /* SwiftDate.release.xcconfig */, - ); - name = "Support Files"; - path = "../Target Support Files/SwiftDate"; - sourceTree = ""; - }; - BBFE1ED7F21A9361AA424F52EF283EDB /* JXSegmentedView */ = { - isa = PBXGroup; - children = ( - E0E58492DC1522D088B61A013EC830D1 /* JXSegmentedAnimator.swift */, - 5847A62D213D4F4C1672653653C21997 /* JXSegmentedBaseCell.swift */, - 1F6825F0A2F7B30C077245FB5E5692F2 /* JXSegmentedBaseDataSource.swift */, - 855DBC5C68A55479D76CAB8F762905C2 /* JXSegmentedBaseItemModel.swift */, - 4DB9DF7E0785B32759BE7D10F30291CB /* JXSegmentedCollectionView.swift */, - F955DAC7F3D103A817231F95E23F9717 /* JXSegmentedComponetGradientView.swift */, - 6D4F9A47778935536C815EE8A43C62CE /* JXSegmentedDotCell.swift */, - 1AB4CFF133FB22B15A4544D29B88BB01 /* JXSegmentedDotDataSource.swift */, - 6B90D26735E86A9A83A2DCB2FCE42134 /* JXSegmentedDotItemModel.swift */, - CEFEECFBF08685D5B7EFA9372FB2EB7E /* JXSegmentedIndicatorBackgroundView.swift */, - 0312AB47DD6E41FB3B71BEC1C6414D7F /* JXSegmentedIndicatorBaseView.swift */, - 6FB4A4A3FCE2E90247D5D8CE8F078E0A /* JXSegmentedIndicatorDotLineView.swift */, - 9AC6B934AA664659F00A855BE3C69DDD /* JXSegmentedIndicatorDoubleLineView.swift */, - 0AC7D94E21920BD7C7205B597F701736 /* JXSegmentedIndicatorGradientLineView.swift */, - 973352085D5416EA815F82D7171FFDF6 /* JXSegmentedIndicatorGradientView.swift */, - 135936C0D9ADAC1FE180DF903BE733D2 /* JXSegmentedIndicatorImageView.swift */, - B7BD2268271963463BE2EE4764623A5D /* JXSegmentedIndicatorLineView.swift */, - 6F14F2F23423A5BF0447B6AE3B6922AC /* JXSegmentedIndicatorParams.swift */, - 921DF5C53AD7DEACF962A6ADEF7FFFAB /* JXSegmentedIndicatorProtocol.swift */, - 39B9EC3B0961258427F81EA9988783C2 /* JXSegmentedIndicatorRainbowLineView.swift */, - 4E80022D2BF17AC34C27A3EDDD0F9189 /* JXSegmentedIndicatorTriangleView.swift */, - 60068E35B65ED0C6B610C9570BC597A9 /* JXSegmentedListContainerView.swift */, - 0EBC40BA74A88B62E74BAB63898E1F21 /* JXSegmentedNumberCell.swift */, - 72BFD417A23793E7CC1AD47C610F9232 /* JXSegmentedNumberDataSource.swift */, - 67FA5F041BEEE97146209378825B5C6C /* JXSegmentedNumberItemModel.swift */, - DABAAD9946FE635998EDD957CBD9C562 /* JXSegmentedRTLLayout.swift */, - DEA2B648448F88ABEF1C029A929CBD5F /* JXSegmentedTitleAttributeCell.swift */, - BD36969B19B33F782A8731FD12DE04F2 /* JXSegmentedTitleAttributeDataSource.swift */, - 9B7790F3FA397ABB4B74FB220532ED6D /* JXSegmentedTitleAttributeItemModel.swift */, - E380359F4745C2DC4BEE375D0EAA4700 /* JXSegmentedTitleCell.swift */, - C12185FB2573B4C8D8B59C61313334FA /* JXSegmentedTitleDataSource.swift */, - D1A9174812F8930C8C9B88FFB94742A4 /* JXSegmentedTitleDynamicConfiguration.swift */, - 32A400989AC36A34EEE68105929AB845 /* JXSegmentedTitleGradientCell.swift */, - DCEE92F3B1D5446A37F76652177283D2 /* JXSegmentedTitleGradientDataSource.swift */, - FEE6C0A96EB48E43A87D0152AACB9E67 /* JXSegmentedTitleGradientItemModel.swift */, - 5E59017F132D3F8BE077B285CDBC283A /* JXSegmentedTitleImageCell.swift */, - 318C19E7D6C6A32542051557783C1EF3 /* JXSegmentedTitleImageDataSource.swift */, - 8B4EA0727D3AEE0C524457934CACC723 /* JXSegmentedTitleImageItemModel.swift */, - BA33079BECD4700E35095C06C7661A11 /* JXSegmentedTitleItemModel.swift */, - 55FA1C2CFB36531B3B94D009E0268FD4 /* JXSegmentedTitleOrImageCell.swift */, - C9C7778B4AC6393E18E528CDD07E3F8D /* JXSegmentedTitleOrImageDataSource.swift */, - 204288E27AE87499D959FE982CA4A588 /* JXSegmentedTitleOrImageItemModel.swift */, - 89A8E01E18FF856511D6A38ABDCBC452 /* JXSegmentedView.swift */, - 898243FF66AF7C337C21A8C6542D3B26 /* JXSegmentedViewTool.swift */, - E11D397C45BFBA72B1094267B3638F20 /* Resources */, - 857677F2EB210A1186CFCC0828929D2C /* Support Files */, - ); - name = JXSegmentedView; - path = JXSegmentedView; - sourceTree = ""; - }; - BDB33F7C2C8E08CA353E2B272AA764BD /* Resources */ = { - isa = PBXGroup; - children = ( - 5349BD74B2DD47008A231410686E263A /* MJRefresh.bundle */, - 925D837B2199663A20844A9D7989BCF7 /* PrivacyInfo.xcprivacy */, - ); - name = Resources; - sourceTree = ""; - }; - C8BBED390DD915B1EFF4D283889F6F0F /* Core */ = { - isa = PBXGroup; - children = ( - EABE5923720744A0D5FE825748A330F5 /* SVIndefiniteAnimatedView.h */, - FC76F03E2E143529554E5CD2B9172452 /* SVIndefiniteAnimatedView.m */, - 4E7C909E9A64B9D749DBD181DB7AB6C7 /* SVProgressAnimatedView.h */, - 2348BF8015FB0D82FB1B5448C9475F6B /* SVProgressAnimatedView.m */, - 14D68A465BCDB85C5F5F10836C1E7E15 /* SVProgressHUD.h */, - 62FA49071BDC919DA23009B2ED6DC501 /* SVProgressHUD.m */, - A021004CAD79AEA622FEC4542DDAA9D4 /* SVRadialGradientLayer.h */, - 41EA5DD20C3E30CEE9AE29D7D08FA979 /* SVRadialGradientLayer.m */, - 8546D7936AC5F8C61ABA611A1740D790 /* Resources */, - ); - name = Core; - sourceTree = ""; - }; - CDE220BD90F58B5EBB27563BA26CCADB /* Tiercel */ = { - isa = PBXGroup; - children = ( - 9E838A9978878D207DDD07D9A91E87A7 /* Array+Safe.swift */, - 22411E71D813DD7A4537E85BAC6A125A /* Cache.swift */, - 8F8826CA94A370457A01E12C56972CB3 /* CodingUserInfoKey+Cache.swift */, - FDB1A9EA05B4B28BA973FD120AB7B58C /* Common.swift */, - 8E95BBEDB4B2179CF3D0186B4FE6784B /* Data+Hash.swift */, - 57DDDE5819A3D9FFB54140F6BAE81830 /* DispatchQueue+Safe.swift */, - 08BBB8B38E7B8EFDCD9CF588E8C0F210 /* Double+TaskInfo.swift */, - B72DA7D36E4584007B5A7E1B88B9331C /* DownloadTask.swift */, - 063E759192F5CD877BCE4EB80712E5A9 /* Executer.swift */, - BAA7604C1393503F47A4EEB1F6A2999B /* FileChecksumHelper.swift */, - 4442DAD3B8B05B75C068BADB1E00B9D7 /* FileManager+AvailableCapacity.swift */, - F25DA22A16432FA72B62254F001DC276 /* Int64+TaskInfo.swift */, - AF2A15BB017E1D7AE830361846A137F0 /* Notifications.swift */, - E28C20C79BDFFF977A6CACA17D6D5E68 /* OperationQueue+DispatchQueue.swift */, - 28EC603025181C76A66BAE90715D908C /* Protected.swift */, - 92C1BE318995C75AF0E7E0D850A82AC6 /* ResumeDataHelper.swift */, - 163E780819CFF7B3FE94AF595E36150E /* SessionConfiguration.swift */, - 87C5FCFE657C20543573C3718CB98314 /* SessionDelegate.swift */, - EAF0C272F96942F166840ED423442D5B /* SessionManager.swift */, - 898C0D155683823269D327A674162353 /* String+Hash.swift */, - B7247B90BE8C143C488A363432AC00FA /* Task.swift */, - 0C6EB3AFA655F18ACE9DB8543E1CEB99 /* TiercelError.swift */, - 11F394350D054B8CFF566BD784D1453A /* URLConvertible.swift */, - 1D71C664DD3E66AD2C967CB2CBE873AE /* URLSession+ResumeData.swift */, - 88BD2E61F98E49446D15EF294D07917E /* Support Files */, - ); - name = Tiercel; - path = Tiercel; - sourceTree = ""; - }; - CE1CA28BA1195A962F69E2E7B4F52CAA /* Resources */ = { - isa = PBXGroup; - children = ( - 4C81E489B48B567E974A27AE3C38D336 /* PrivacyInfo.xcprivacy */, - ); - name = Resources; - sourceTree = ""; - }; CF1408CF629C7361332E53B88F7BD30C = { isa = PBXGroup; children = ( 9D940727FF8FB9C785EB98E56350EF41 /* Podfile */, D68CA58901FBF589D75F5E40F1EAF5BA /* Frameworks */, - 93A58ADCAFD6851B2951AB418C1D552E /* Pods */, - E68A84217BE005C0831537AFEE903B58 /* Products */, + CA238E2EF3DE547A52E9FC5BC46EC3DE /* Pods */, + 5ED3CC4A9A204B4EE29DA6BBF5CFA2A5 /* Products */, 69F140809519CF68B06DF2B6A16F5693 /* Targets Support Files */, ); sourceTree = ""; }; - D43C79D98DDDA8A55F3C6589688C6EF5 /* Support Files */ = { + CF80132893629C135785067E59A851F4 /* Core */ = { isa = PBXGroup; children = ( - 23D68C3912AFBECB8F09E5EE0C41D596 /* MJRefresh.modulemap */, - A6D32E291293B13F725561460AD6A55C /* MJRefresh-dummy.m */, - 53DE0087744822FEF4503EF0FF47B709 /* MJRefresh-Info.plist */, - A6D9CAFC76446D6E86E66C731621FEC0 /* MJRefresh-prefix.pch */, - C9D8041C1E832ED61831FAE327CF2883 /* MJRefresh-umbrella.h */, - 861CA4EAA407480C04F77305C8558913 /* MJRefresh.debug.xcconfig */, - 35614DDD77E7F500FF36C6A4A9C1FBE1 /* MJRefresh.release.xcconfig */, - 81A8ED2BB8FC47BB2EA4FCD90158D1A8 /* ResourceBundle-MJRefresh.Privacy-MJRefresh-Info.plist */, + A5C3A22AED22F776F49519A0F9086543 /* SVIndefiniteAnimatedView.h */, + CDB23F11BFD150D06EB1E55D63A5809E /* SVIndefiniteAnimatedView.m */, + C723BAF098E360E89C3837C2C28AAC23 /* SVProgressAnimatedView.h */, + D07CECE9C0A88C78E0F6FF510ED64787 /* SVProgressAnimatedView.m */, + 1F83353ECC4B459BF4234E1164289644 /* SVProgressHUD.h */, + 468FDABC3307F80DBEFA314352D1EABA /* SVProgressHUD.m */, + 8BA3C103CC568409B715494D387CC7F4 /* SVRadialGradientLayer.h */, + 1F56CF64E0AA628156FD417070CA92E2 /* SVRadialGradientLayer.m */, + D2752B11227BAE16E0E5534E177F27D4 /* Resources */, ); - name = "Support Files"; - path = "../Target Support Files/MJRefresh"; + name = Core; sourceTree = ""; }; - D64C6991947D3B56237BDC67ACAD5BC2 /* SVProgressHUD */ = { + D2752B11227BAE16E0E5534E177F27D4 /* Resources */ = { isa = PBXGroup; children = ( - C8BBED390DD915B1EFF4D283889F6F0F /* Core */, - 1B9F4D013D834FC60695C9551085569F /* Support Files */, + BFD7D664E057D7E5D8262EA574E4238E /* PrivacyInfo.xcprivacy */, + A713E330CC0DEBC3A761CED11A4795D4 /* SVProgressHUD.bundle */, ); - name = SVProgressHUD; - path = SVProgressHUD; + name = Resources; sourceTree = ""; }; D68CA58901FBF589D75F5E40F1EAF5BA /* Frameworks */ = { @@ -1930,98 +2092,33 @@ name = Frameworks; sourceTree = ""; }; - E11D397C45BFBA72B1094267B3638F20 /* Resources */ = { + DF77CB201E7DC3EED84F11DEE0D060D7 /* Resources */ = { isa = PBXGroup; children = ( - 9792F44AE5548DB0513F46CD47F1DE21 /* PrivacyInfo.xcprivacy */, + 5C44472740A9D2F104F11556227D7B0A /* PrivacyInfo.xcprivacy */, ); name = Resources; sourceTree = ""; }; - E179C6E5316E7D77B867269D8D848133 /* Resources */ = { + F094CFEAC74E6FE5D6B6F32CC1FB5B76 /* Resources */ = { isa = PBXGroup; children = ( - 695465D6553A7047F09DEFAC13D84D56 /* PrivacyInfo.xcprivacy */, + E5AE85B549A0F1ADBF86C827D96A2547 /* PrivacyInfo.xcprivacy */, ); name = Resources; sourceTree = ""; }; - E68A84217BE005C0831537AFEE903B58 /* Products */ = { - isa = PBXGroup; - children = ( - 5D797E9A5C5782CE845840781FA1CC81 /* Alamofire */, - 085DBCE7DD98588B2ED103B1C1F36026 /* Alamofire-Alamofire */, - 54C9C6377C09561C9387D24D7E231921 /* DownloadButton */, - A6A74933CD02E6DBD2AFCF807116B6CB /* DownloadButton-DownloadButton */, - A8E950A16D00F649C54FFB30F81D7842 /* IQKeyboardManagerSwift */, - 2F4A1CCB21DB7EA5A2ACEB11E374FBCA /* JXPagingView */, - 7EB20B4E68CCB69F85E7D08B7F8463D6 /* JXPagingView-JXPagingView */, - 07928762D9A8551470DAAD7C1E1F53A5 /* JXSegmentedView */, - 92B0EC788EDA1B0CFA48DFFCB3DDAECD /* JXSegmentedView-JXSegmentedView */, - C3F44C782D64D7EB20B61CE3844EBFAD /* Kingfisher */, - C298ABB78D9B05529B89D8322DB2E7B0 /* Kingfisher-Kingfisher */, - E49D6D248DD1CEE584E6776B9164A1B2 /* MJRefresh */, - 7E3097CFEFDA621E9FB0E62009FF87FC /* MJRefresh-MJRefresh.Privacy */, - D095C62B7734C0DB6B8124A2A897B58B /* Pods-relax.offline.mp3.music */, - 979486118B3E90C08386079D57962701 /* SnapKit */, - B9DCB5EC0B1CDADD221717CADDF62359 /* SnapKit-SnapKit_Privacy */, - E97D43C46A45EE515A4DA3AF94398441 /* SVProgressHUD */, - 58AE0544E0C381DDBD09356C357EC82B /* SwiftDate */, - DBD68AAF67BB25B9E1F44519178DAE0F /* Tiercel */, - ); - name = Products; - sourceTree = ""; - }; - F06BA916F7123C35EC32476043211893 /* SnapKit */ = { - isa = PBXGroup; - children = ( - 8391D695EAE060EFF3874D9E27A9FCF3 /* Constraint.swift */, - 22A5D84D88971E9475E1EC8AA9036D9D /* ConstraintAttributes.swift */, - C8E7EA8D9C5A64029EF6EFB7F209B083 /* ConstraintConfig.swift */, - 0A44021BFDB893E44EAA9D5FDA7A3FF9 /* ConstraintConstantTarget.swift */, - 77F4148514C92AEF48B7ACD34E7488EB /* ConstraintDescription.swift */, - 21F837F2050BCDC7CB46A7661A696F07 /* ConstraintDirectionalInsets.swift */, - 6C1B2318A36D67B80AB9A36574D48B9F /* ConstraintDirectionalInsetTarget.swift */, - D6E704CA7A1DD04296CBF9ED26B91EA0 /* ConstraintDSL.swift */, - 5EDFEDB333D1C4D657642BDD0CBBD837 /* ConstraintInsets.swift */, - 0D0CA27E114E88A941900703AA694F2F /* ConstraintInsetTarget.swift */, - 83210E479C7F1A42FC7C116732E885E9 /* ConstraintItem.swift */, - FE49FDCEF4136EFD8B8B73990A8273DA /* ConstraintLayoutGuide.swift */, - 75A0D7839E9B360DAC8B2436DDA7E806 /* ConstraintLayoutGuide+Extensions.swift */, - 9679621F1FAF834E4E7A10B33E6E8FE4 /* ConstraintLayoutGuideDSL.swift */, - A1B35519C98323C92C768E8314BB5556 /* ConstraintLayoutSupport.swift */, - 04299820AD649702024B0237353A46DD /* ConstraintLayoutSupportDSL.swift */, - A6917BE14409B42BCCE066BCF77930BF /* ConstraintMaker.swift */, - 7CB71DBB690155435C7354D318B6E7BC /* ConstraintMakerEditable.swift */, - 51471D07E76BFB34F5EDA721B4712C79 /* ConstraintMakerExtendable.swift */, - 7FDE66FA3E63D652F470310D1A8E5121 /* ConstraintMakerFinalizable.swift */, - 8C4F10D8D02E31CD4C8F1B2C4620F9D5 /* ConstraintMakerPrioritizable.swift */, - 73F56BAFBEB1659C76C3C867A42E0DB7 /* ConstraintMakerRelatable.swift */, - 86DF9B1826A8445C1909A118B026A333 /* ConstraintMakerRelatable+Extensions.swift */, - D08CC0CCF224643BE2E2DBBFF55B6ABB /* ConstraintMultiplierTarget.swift */, - 1683E97F9AE54BB1747EE29AC29C6C10 /* ConstraintOffsetTarget.swift */, - A6E6534DDCD659B76C219B8202688BCF /* ConstraintPriority.swift */, - E43B8D2F0F02E513E51444C8074E7E76 /* ConstraintPriorityTarget.swift */, - C2A860AD8157623726249D825FCF2497 /* ConstraintRelatableTarget.swift */, - 76F60DC87BCAFC3DAB096326630BAB7A /* ConstraintRelation.swift */, - 046C6E5A5FF35C350B0158DEE3E40F28 /* ConstraintView.swift */, - B4E04173C3016FD3365BEAF7FE2945DE /* ConstraintView+Extensions.swift */, - C1B1EF889925B42A1C1D10C0CDEB9439 /* ConstraintViewDSL.swift */, - 178ABE62AD082DF4E86BB4E2283BE7E5 /* Debugging.swift */, - E9C090376B9E3BE95AAF488196F7776C /* LayoutConstraint.swift */, - D85413A6EC0866E9242FCEA1AF84C593 /* LayoutConstraintItem.swift */, - 8F4F248B187B62F47D6D2195C41FF84A /* Typealiases.swift */, - D15AA7FA496EAF28310E430A7599DC48 /* UILayoutSupport+Extensions.swift */, - CE1CA28BA1195A962F69E2E7B4F52CAA /* Resources */, - A431A89553DE0501003ECDCEEC42EC00 /* Support Files */, - ); - name = SnapKit; - path = SnapKit; - sourceTree = ""; - }; /* End PBXGroup section */ /* Begin PBXHeadersBuildPhase section */ + 0F73A1D6E84F8E17BD0536FB5D04FBC6 /* Headers */ = { + isa = PBXHeadersBuildPhase; + buildActionMask = 2147483647; + files = ( + BF580AC7D363639FB27CF60E136902C3 /* Pods-relax.offline.mp3.music-umbrella.h in Headers */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; 13E008DBCAEF85921C1FFB6CD44120DA /* Headers */ = { isa = PBXHeadersBuildPhase; buildActionMask = 2147483647; @@ -2106,14 +2203,6 @@ ); runOnlyForDeploymentPostprocessing = 0; }; - B886A8589241BC45BF2CC5C9373F2517 /* Headers */ = { - isa = PBXHeadersBuildPhase; - buildActionMask = 2147483647; - files = ( - 6C46E55FE1E04F5554E8771580B809A0 /* Pods-relax.offline.mp3.music-umbrella.h in Headers */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; BD2B111EBF8A7845E42930BF05778C63 /* Headers */ = { isa = PBXHeadersBuildPhase; buildActionMask = 2147483647; @@ -2122,6 +2211,14 @@ ); runOnlyForDeploymentPostprocessing = 0; }; + C72DDF298DBD0C4CD8D5AA9781CB9B97 /* Headers */ = { + isa = PBXHeadersBuildPhase; + buildActionMask = 2147483647; + files = ( + F42A33C2E837A959AB86B8E9B3752ECD /* MarqueeLabel-umbrella.h in Headers */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; D3CFD33AB27993819E2EA9267DBD8C8A /* Headers */ = { isa = PBXHeadersBuildPhase; buildActionMask = 2147483647; @@ -2163,11 +2260,11 @@ /* Begin PBXNativeTarget section */ 052F337D75D74480BB3BE904E7F2B1DF /* DownloadButton-DownloadButton */ = { isa = PBXNativeTarget; - buildConfigurationList = 56280851BB6039F12C1DDBE65EBC43D8 /* Build configuration list for PBXNativeTarget "DownloadButton-DownloadButton" */; + buildConfigurationList = BBBC45B0A8AFBA83743BEAA1299ABDB2 /* Build configuration list for PBXNativeTarget "DownloadButton-DownloadButton" */; buildPhases = ( - D86E32A0F2223359768057457B761854 /* Sources */, - 08077F41672A82F59BDC46FCF805A2AC /* Frameworks */, - B1E77E25E9303E034B5A6AEF0F1BCA54 /* Resources */, + 2EB1D4B3BDBABE29FF18BC41AF60A161 /* Sources */, + 193636C673E74188FC5712786C278842 /* Frameworks */, + E2EE1867C2399FCA67365B121CBF1408 /* Resources */, ); buildRules = ( ); @@ -2190,7 +2287,7 @@ buildRules = ( ); dependencies = ( - ECE3CBD14083B5DAFBFD5CDE0EB33F81 /* PBXTargetDependency */, + AF0E3C891B4E4A34D37908E33B8F3BA3 /* PBXTargetDependency */, ); name = SnapKit; productName = SnapKit; @@ -2217,27 +2314,28 @@ }; 3F85CDCAE91D8CA260CCE7ACA760991B /* Pods-relax.offline.mp3.music */ = { isa = PBXNativeTarget; - buildConfigurationList = 6D61045E76C0299E244000C32A0ED131 /* Build configuration list for PBXNativeTarget "Pods-relax.offline.mp3.music" */; + buildConfigurationList = 0B4E390D7576A958C2D107868CB56835 /* Build configuration list for PBXNativeTarget "Pods-relax.offline.mp3.music" */; buildPhases = ( - B886A8589241BC45BF2CC5C9373F2517 /* Headers */, - D87C95E953E6DEB1BD709E12707754BD /* Sources */, - 8CB7FB558DE65468B395C2528B3360CA /* Frameworks */, - 231C88340170620DBB03E681E848C2F2 /* Resources */, + 0F73A1D6E84F8E17BD0536FB5D04FBC6 /* Headers */, + E36B8C271EB0BC99805ADA9C342DCF8F /* Sources */, + 5F966A77AD2F2547134B588BA2B65453 /* Frameworks */, + 5B570175FEFFC946D039E38C8AF03690 /* Resources */, ); buildRules = ( ); dependencies = ( - 6F92EA3AB9CE927BB4EC039078FF7977 /* PBXTargetDependency */, - 7C40DE11E29A9A4E016140E611620EC5 /* PBXTargetDependency */, - A51E6CD24DF804C0B208E322904D3CEF /* PBXTargetDependency */, - F473040CC381A4FB393FD978BF2B6D5F /* PBXTargetDependency */, - 2E88A8FCED482FDEA5E6F4D180EB7E70 /* PBXTargetDependency */, - 2B591D91AA636BE8818B75F3F92EFBAF /* PBXTargetDependency */, - 6A39E01C79C925E22225D75A47D44308 /* PBXTargetDependency */, - 9EFFAB27FBF468281928516B2C022DB6 /* PBXTargetDependency */, - 356CE9773FB523B13598D226E789ECD6 /* PBXTargetDependency */, - 9CBBFFC1A0AC6863351C51D1AAEF54DD /* PBXTargetDependency */, - A71A8A14576427F32B4E86F196803CB7 /* PBXTargetDependency */, + E12EEE2263308ECD017737CBE7B36379 /* PBXTargetDependency */, + 685B491840E989EA2D2585E679EBC08C /* PBXTargetDependency */, + F148CEF2CACCED6108F5203D082FF205 /* PBXTargetDependency */, + 5AAFBE212836CAFAD2F8FC7103F128D9 /* PBXTargetDependency */, + 5B6F4B0C6409175FF6FF480C6A67E14C /* PBXTargetDependency */, + F9A13351D8428FE59FFA1CE5FF55BBFB /* PBXTargetDependency */, + FB6F272A4F1495504A44AB06753F48ED /* PBXTargetDependency */, + 8458C815AC07CF9F5D5CC2CEBB2F5C03 /* PBXTargetDependency */, + A5E839B07112674036A5F13F0B4B61E6 /* PBXTargetDependency */, + CB30534A1E82271DA1ACFC35D92AED89 /* PBXTargetDependency */, + FB459691B6462699EA7B11888DA29B58 /* PBXTargetDependency */, + 86DAF579B4B034D594C88F4234AABCF4 /* PBXTargetDependency */, ); name = "Pods-relax.offline.mp3.music"; productName = Pods_relax_offline_mp3_music; @@ -2246,11 +2344,11 @@ }; 52F43AC38D9FF80196C69FB03AEEFDDA /* JXSegmentedView-JXSegmentedView */ = { isa = PBXNativeTarget; - buildConfigurationList = DD53718362772CD7C123A38EB0879466 /* Build configuration list for PBXNativeTarget "JXSegmentedView-JXSegmentedView" */; + buildConfigurationList = BB1E592564326F4728DB1CCE9424616A /* Build configuration list for PBXNativeTarget "JXSegmentedView-JXSegmentedView" */; buildPhases = ( - D5002BAEE33652E06D3EBC699A8FC325 /* Sources */, - FCCAF5F784E7CC554DA867FF32C6F9E4 /* Frameworks */, - E988A188EDE05CFEBD49782DE9894E37 /* Resources */, + F0D1C2538982E13EBC64F9CB5ACED527 /* Sources */, + 5D616D3CD7A1C6CC97AC3A4D6BACDF09 /* Frameworks */, + 90ADC7EF59B2127041148B23B4B21105 /* Resources */, ); buildRules = ( ); @@ -2291,7 +2389,7 @@ buildRules = ( ); dependencies = ( - C4DA219889ED77CCF3947669CCFCB19A /* PBXTargetDependency */, + 46A6EDC3F328F6366D5A9474851B5991 /* PBXTargetDependency */, ); name = MJRefresh; productName = MJRefresh; @@ -2300,11 +2398,11 @@ }; 8A8DB685241263AFDF5E6B20FE67B93A /* SnapKit-SnapKit_Privacy */ = { isa = PBXNativeTarget; - buildConfigurationList = A7C630974EF36C28E57CB29D5227C4A8 /* Build configuration list for PBXNativeTarget "SnapKit-SnapKit_Privacy" */; + buildConfigurationList = 841D573662939AED46C3EE5DC64AE3B5 /* Build configuration list for PBXNativeTarget "SnapKit-SnapKit_Privacy" */; buildPhases = ( - 0DAF37B10E64D5D761A363242321BA9F /* Sources */, - 985D980C1906B3C9651125ACF86C3C43 /* Frameworks */, - A49FA90135586EB0DD92740763C55E81 /* Resources */, + 05DCE25B71D4B4F87319FA411995E8FE /* Sources */, + 84A453DEE938C61E3223CDB74EB84021 /* Frameworks */, + FF2FEFBC995ECF8E13C9317F9C3F777A /* Resources */, ); buildRules = ( ); @@ -2317,11 +2415,11 @@ }; 976126A1CE06DC6E162563800E1BDF14 /* Alamofire-Alamofire */ = { isa = PBXNativeTarget; - buildConfigurationList = 262DA25B008ECE325011602BFE15BB59 /* Build configuration list for PBXNativeTarget "Alamofire-Alamofire" */; + buildConfigurationList = 6759F285DA40F3ABE93A9AA82FE02E5A /* Build configuration list for PBXNativeTarget "Alamofire-Alamofire" */; buildPhases = ( - CC69CB931F956DE46657EE42A970FED0 /* Sources */, - 220D73A526A050E6F416624EB0C2FDD0 /* Frameworks */, - 3FC5A4997D1B671E79DEC49ADAE183B1 /* Resources */, + 0F315AE5B10ECC4112F36DDE159D2230 /* Sources */, + E0AF7ACD02DA39E81F6F18CF3EA0C61C /* Frameworks */, + 686F00047EEFA3FFF824328EE7E665AB /* Resources */, ); buildRules = ( ); @@ -2334,11 +2432,11 @@ }; 9828BBC09E9FB1238624113D7456E59E /* Kingfisher-Kingfisher */ = { isa = PBXNativeTarget; - buildConfigurationList = 8B7EF43369CE8EEE18E6F5EC6E6967C2 /* Build configuration list for PBXNativeTarget "Kingfisher-Kingfisher" */; + buildConfigurationList = FA4EF73C2AA33E80657945678E5CD600 /* Build configuration list for PBXNativeTarget "Kingfisher-Kingfisher" */; buildPhases = ( - 549C6CFF2B2C0107D8F0322A9E5624E7 /* Sources */, - 86704F91FA7DDA1567830E4CF3FC9B1E /* Frameworks */, - 8FA6FABC91C21FBA530C21361F0E968F /* Resources */, + 06317076EE9B030EBB5F6960DBBDC625 /* Sources */, + 3F75D70A10A1519DC08F20B94922A3BB /* Frameworks */, + CED90B26F39A70024732ED20EB6282CC /* Resources */, ); buildRules = ( ); @@ -2351,11 +2449,11 @@ }; B26054DF1DEA11585A231AF6D1D80D5E /* MJRefresh-MJRefresh.Privacy */ = { isa = PBXNativeTarget; - buildConfigurationList = 1FD05F179E2FAE92CB216DD3540A8E9A /* Build configuration list for PBXNativeTarget "MJRefresh-MJRefresh.Privacy" */; + buildConfigurationList = C50108E4096B8FAC0569BF6D7D5DA04C /* Build configuration list for PBXNativeTarget "MJRefresh-MJRefresh.Privacy" */; buildPhases = ( - CA15A9A647F7CE562E83E9B12D75BD50 /* Sources */, - F800E343AEAD071FF154C03E17CF61EB /* Frameworks */, - 62AEEBC48692044DDE11D8FE8F20F17F /* Resources */, + DE218E3B3D8E48A4072CAC2D4A9E40B7 /* Sources */, + A7FF618E6534FBC5720CDECBEF21021A /* Frameworks */, + DB2DE821C40FAD03E49169A05136548F /* Resources */, ); buildRules = ( ); @@ -2368,11 +2466,11 @@ }; B2B2AD5303610D8EBEA025B2660C8EC5 /* JXPagingView-JXPagingView */ = { isa = PBXNativeTarget; - buildConfigurationList = 120FAB2EA800C064E149119FBA20642C /* Build configuration list for PBXNativeTarget "JXPagingView-JXPagingView" */; + buildConfigurationList = 35817099295FF8EC267AA6CD652F57EA /* Build configuration list for PBXNativeTarget "JXPagingView-JXPagingView" */; buildPhases = ( - B6D118C7E77136D6129C7E61D1FF68F2 /* Sources */, - FE8949C944B548A8944387CE1A7D7EA2 /* Frameworks */, - A077FB77B66C44F1D5824AD1E4930330 /* Resources */, + B2D3B5AE9B8E2D0AA0428DEFBF27D8B5 /* Sources */, + 3D1165AC8D016F863667307F665B8523 /* Frameworks */, + 146302A615762F84AE39D6AF658D2601 /* Resources */, ); buildRules = ( ); @@ -2413,13 +2511,32 @@ buildRules = ( ); dependencies = ( - 5C179963F2A10BBD814EE8B1BE0B1542 /* PBXTargetDependency */, + F3D1ADD4877FD7CE274B347AE8F9B63F /* PBXTargetDependency */, ); name = DownloadButton; productName = DownloadButton; productReference = 54C9C6377C09561C9387D24D7E231921 /* DownloadButton */; productType = "com.apple.product-type.framework"; }; + C23DB88E45B0ED14F0C8827BE9C46C95 /* MarqueeLabel */ = { + isa = PBXNativeTarget; + buildConfigurationList = 3675B649F824AD394E859E84994E2FCB /* Build configuration list for PBXNativeTarget "MarqueeLabel" */; + buildPhases = ( + C72DDF298DBD0C4CD8D5AA9781CB9B97 /* Headers */, + 9E7F261D3155781C0770EE283B414221 /* Sources */, + 286A612152665F0AAA91A6BFE1EC13E5 /* Frameworks */, + 40403F2F98A3B3A5284F55EA59249711 /* Resources */, + ); + buildRules = ( + ); + dependencies = ( + 314CF7D46FB00431C7E389F8934457A5 /* PBXTargetDependency */, + ); + name = MarqueeLabel; + productName = MarqueeLabel; + productReference = CF0AA9FBFBDB70858C030769541505ED /* MarqueeLabel */; + productType = "com.apple.product-type.framework"; + }; C4E1020AF425614337737213AA26DBD5 /* JXPagingView */ = { isa = PBXNativeTarget; buildConfigurationList = EF5C4DEBE2675B6E4A59F72D208FCC83 /* Build configuration list for PBXNativeTarget "JXPagingView" */; @@ -2432,13 +2549,30 @@ buildRules = ( ); dependencies = ( - 520E431E7A614020C099AB4B04049A83 /* PBXTargetDependency */, + B3E2DD4FF21E21B0E7E5BB53DCA42ADE /* PBXTargetDependency */, ); name = JXPagingView; productName = JXPagingView; productReference = 2F4A1CCB21DB7EA5A2ACEB11E374FBCA /* JXPagingView */; productType = "com.apple.product-type.framework"; }; + CBFB5A372F4DE9D4BC6B9ADA98B80BFE /* MarqueeLabel-MarqueeLabel */ = { + isa = PBXNativeTarget; + buildConfigurationList = D4E5AFED4ADD0A50DAA0055BD6C67596 /* Build configuration list for PBXNativeTarget "MarqueeLabel-MarqueeLabel" */; + buildPhases = ( + 19AF8D90015443D624621794882F5B81 /* Sources */, + 5BB620A2071AE9DC55E1F8EC51181915 /* Frameworks */, + AE2D7F4DEF648745F9B573AD7DBD3252 /* Resources */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = "MarqueeLabel-MarqueeLabel"; + productName = MarqueeLabel; + productReference = FD694DB3E09A81036691F823E3211D44 /* MarqueeLabel-MarqueeLabel */; + productType = "com.apple.product-type.bundle"; + }; E8022D22FAA6690B5E1C379C1BCE1491 /* Kingfisher */ = { isa = PBXNativeTarget; buildConfigurationList = 5208564FCF8321F270978B7DC8B0A7FB /* Build configuration list for PBXNativeTarget "Kingfisher" */; @@ -2451,7 +2585,7 @@ buildRules = ( ); dependencies = ( - E2AED33B7DACA63429FD3FAE9E00460A /* PBXTargetDependency */, + 62596068F98AFB8A13288B1D1E7DFA2E /* PBXTargetDependency */, ); name = Kingfisher; productName = Kingfisher; @@ -2470,7 +2604,7 @@ buildRules = ( ); dependencies = ( - B4C2E8B25D1E971458438BC4E3DF725E /* PBXTargetDependency */, + 45E7F9A4C0FA81FC774C988590C3D8A4 /* PBXTargetDependency */, ); name = JXSegmentedView; productName = JXSegmentedView; @@ -2489,7 +2623,7 @@ buildRules = ( ); dependencies = ( - A79E8B2AFFD505CF00A6F49D9CFCC306 /* PBXTargetDependency */, + 6BA289E074FDCCB267511172CC05A90D /* PBXTargetDependency */, ); name = Alamofire; productName = Alamofire; @@ -2532,7 +2666,7 @@ en, ); mainGroup = CF1408CF629C7361332E53B88F7BD30C; - productRefGroup = E68A84217BE005C0831537AFEE903B58 /* Products */; + productRefGroup = 5ED3CC4A9A204B4EE29DA6BBF5CFA2A5 /* Products */; projectDirPath = ""; projectRoot = ""; targets = ( @@ -2547,6 +2681,8 @@ 52F43AC38D9FF80196C69FB03AEEFDDA /* JXSegmentedView-JXSegmentedView */, E8022D22FAA6690B5E1C379C1BCE1491 /* Kingfisher */, 9828BBC09E9FB1238624113D7456E59E /* Kingfisher-Kingfisher */, + C23DB88E45B0ED14F0C8827BE9C46C95 /* MarqueeLabel */, + CBFB5A372F4DE9D4BC6B9ADA98B80BFE /* MarqueeLabel-MarqueeLabel */, 6868056D761E163D10FDAF8CF1C4D9B8 /* MJRefresh */, B26054DF1DEA11585A231AF6D1D80D5E /* MJRefresh-MJRefresh.Privacy */, 3F85CDCAE91D8CA260CCE7ACA760991B /* Pods-relax.offline.mp3.music */, @@ -2568,6 +2704,14 @@ ); runOnlyForDeploymentPostprocessing = 0; }; + 146302A615762F84AE39D6AF658D2601 /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + B3DE1E5AC8DA2DFB20BBF40F392BCDB4 /* PrivacyInfo.xcprivacy in Resources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; 197C74D6A29C83E6947779BA56812FDF /* Resources */ = { isa = PBXResourcesBuildPhase; buildActionMask = 2147483647; @@ -2576,18 +2720,11 @@ ); runOnlyForDeploymentPostprocessing = 0; }; - 231C88340170620DBB03E681E848C2F2 /* Resources */ = { + 40403F2F98A3B3A5284F55EA59249711 /* Resources */ = { isa = PBXResourcesBuildPhase; buildActionMask = 2147483647; files = ( - ); - runOnlyForDeploymentPostprocessing = 0; - }; - 3FC5A4997D1B671E79DEC49ADAE183B1 /* Resources */ = { - isa = PBXResourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - C7D7569C45A2C8851B9BF700897AFDA0 /* PrivacyInfo.xcprivacy in Resources */, + 1B2341CD952E45126D64F01292BBCB40 /* MarqueeLabel-MarqueeLabel in Resources */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -2608,6 +2745,13 @@ ); runOnlyForDeploymentPostprocessing = 0; }; + 5B570175FEFFC946D039E38C8AF03690 /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; 5CEFF03EE9A7B5D7514E35F3AD2A314D /* Resources */ = { isa = PBXResourcesBuildPhase; buildActionMask = 2147483647; @@ -2616,11 +2760,11 @@ ); runOnlyForDeploymentPostprocessing = 0; }; - 62AEEBC48692044DDE11D8FE8F20F17F /* Resources */ = { + 686F00047EEFA3FFF824328EE7E665AB /* Resources */ = { isa = PBXResourcesBuildPhase; buildActionMask = 2147483647; files = ( - C7E374D1D8E50EAFE9ED2AF576280DA6 /* PrivacyInfo.xcprivacy in Resources */, + FAAEE11A8980A75C0C498B73D8EEBFB8 /* PrivacyInfo.xcprivacy in Resources */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -2655,19 +2799,11 @@ ); runOnlyForDeploymentPostprocessing = 0; }; - 8FA6FABC91C21FBA530C21361F0E968F /* Resources */ = { + 90ADC7EF59B2127041148B23B4B21105 /* Resources */ = { isa = PBXResourcesBuildPhase; buildActionMask = 2147483647; files = ( - 443BAB61DC338F0C6857DF638156E5E4 /* PrivacyInfo.xcprivacy in Resources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; - A077FB77B66C44F1D5824AD1E4930330 /* Resources */ = { - isa = PBXResourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - 0C1B443A8895027B91F721861E739920 /* PrivacyInfo.xcprivacy in Resources */, + 57A86BF81E7C01FFE89F869654E50676 /* PrivacyInfo.xcprivacy in Resources */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -2679,14 +2815,6 @@ ); runOnlyForDeploymentPostprocessing = 0; }; - A49FA90135586EB0DD92740763C55E81 /* Resources */ = { - isa = PBXResourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - B9EA745EBAAB9FFCFDD98E9D593C0EB3 /* PrivacyInfo.xcprivacy in Resources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; AC47CEB36BE3DE7A7A5DB7547DA55F3D /* Resources */ = { isa = PBXResourcesBuildPhase; buildActionMask = 2147483647; @@ -2696,25 +2824,63 @@ ); runOnlyForDeploymentPostprocessing = 0; }; - B1E77E25E9303E034B5A6AEF0F1BCA54 /* Resources */ = { + AE2D7F4DEF648745F9B573AD7DBD3252 /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 3A55DECC322583F176EC1F2038CDE44A /* PrivacyInfo.xcprivacy in Resources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + CED90B26F39A70024732ED20EB6282CC /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 1BD39AF66EBE2534F3B4FBD6B3E117B3 /* PrivacyInfo.xcprivacy in Resources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + DB2DE821C40FAD03E49169A05136548F /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 49C77BE32959EA3C1D1643AE62B6F647 /* PrivacyInfo.xcprivacy in Resources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + E2EE1867C2399FCA67365B121CBF1408 /* Resources */ = { isa = PBXResourcesBuildPhase; buildActionMask = 2147483647; files = ( ); runOnlyForDeploymentPostprocessing = 0; }; - E988A188EDE05CFEBD49782DE9894E37 /* Resources */ = { + FF2FEFBC995ECF8E13C9317F9C3F777A /* Resources */ = { isa = PBXResourcesBuildPhase; buildActionMask = 2147483647; files = ( - 8BF0E8E1AAA254D9B4D68BBADCF8DBEF /* PrivacyInfo.xcprivacy in Resources */, + 802108EDDE4D0E42D9A2411E75B9EB43 /* PrivacyInfo.xcprivacy in Resources */, ); runOnlyForDeploymentPostprocessing = 0; }; /* End PBXResourcesBuildPhase section */ /* Begin PBXSourcesBuildPhase section */ - 0DAF37B10E64D5D761A363242321BA9F /* Sources */ = { + 05DCE25B71D4B4F87319FA411995E8FE /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 06317076EE9B030EBB5F6960DBBDC625 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 0F315AE5B10ECC4112F36DDE159D2230 /* Sources */ = { isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; files = ( @@ -2797,6 +2963,20 @@ ); runOnlyForDeploymentPostprocessing = 0; }; + 19AF8D90015443D624621794882F5B81 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 2EB1D4B3BDBABE29FF18BC41AF60A161 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; 5146C05A7DF5B5E54B7AE49C979FF34A /* Sources */ = { isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; @@ -2849,13 +3029,6 @@ ); runOnlyForDeploymentPostprocessing = 0; }; - 549C6CFF2B2C0107D8F0322A9E5624E7 /* Sources */ = { - isa = PBXSourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - runOnlyForDeploymentPostprocessing = 0; - }; 9A14FD911C3032D94868E9D0EB100A2F /* Sources */ = { isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; @@ -2869,6 +3042,15 @@ ); runOnlyForDeploymentPostprocessing = 0; }; + 9E7F261D3155781C0770EE283B414221 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 1A6AF38DE42C92491AFFC76527050663 /* MarqueeLabel.swift in Sources */, + 7367DD455506C92257B75D2B810C2318 /* MarqueeLabel-dummy.m in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; AAB3338BD40E4E170628192E4D18FE79 /* Sources */ = { isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; @@ -2913,6 +3095,13 @@ ); runOnlyForDeploymentPostprocessing = 0; }; + B2D3B5AE9B8E2D0AA0428DEFBF27D8B5 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; B4B96C15B3695665DEA8833770F9D694 /* Sources */ = { isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; @@ -2976,13 +3165,6 @@ ); runOnlyForDeploymentPostprocessing = 0; }; - B6D118C7E77136D6129C7E61D1FF68F2 /* Sources */ = { - isa = PBXSourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - runOnlyForDeploymentPostprocessing = 0; - }; B91DBF058753E0D63959220B34ECE3F9 /* Sources */ = { isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; @@ -3053,42 +3235,13 @@ ); runOnlyForDeploymentPostprocessing = 0; }; - CA15A9A647F7CE562E83E9B12D75BD50 /* Sources */ = { + DE218E3B3D8E48A4072CAC2D4A9E40B7 /* Sources */ = { isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; files = ( ); runOnlyForDeploymentPostprocessing = 0; }; - CC69CB931F956DE46657EE42A970FED0 /* Sources */ = { - isa = PBXSourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - runOnlyForDeploymentPostprocessing = 0; - }; - D5002BAEE33652E06D3EBC699A8FC325 /* Sources */ = { - isa = PBXSourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - runOnlyForDeploymentPostprocessing = 0; - }; - D86E32A0F2223359768057457B761854 /* Sources */ = { - isa = PBXSourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - runOnlyForDeploymentPostprocessing = 0; - }; - D87C95E953E6DEB1BD709E12707754BD /* Sources */ = { - isa = PBXSourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - 488D86E76F481BF72891821AA3ABF485 /* Pods-relax.offline.mp3.music-dummy.m in Sources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; E0C6F893D34CB935A73FBD4BD75299E5 /* Sources */ = { isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; @@ -3139,6 +3292,21 @@ ); runOnlyForDeploymentPostprocessing = 0; }; + E36B8C271EB0BC99805ADA9C342DCF8F /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 04F6A4F4967C6BDC48DD5BDA64DE07FD /* Pods-relax.offline.mp3.music-dummy.m in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + F0D1C2538982E13EBC64F9CB5ACED527 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; F15C2AB492606C7255BF91F14E154EC6 /* Sources */ = { isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; @@ -3174,127 +3342,156 @@ /* End PBXSourcesBuildPhase section */ /* Begin PBXTargetDependency section */ - 2B591D91AA636BE8818B75F3F92EFBAF /* PBXTargetDependency */ = { + 314CF7D46FB00431C7E389F8934457A5 /* PBXTargetDependency */ = { isa = PBXTargetDependency; - name = Kingfisher; - target = E8022D22FAA6690B5E1C379C1BCE1491 /* Kingfisher */; - targetProxy = 65714318071557028A759FC551A56641 /* PBXContainerItemProxy */; + name = "MarqueeLabel-MarqueeLabel"; + target = CBFB5A372F4DE9D4BC6B9ADA98B80BFE /* MarqueeLabel-MarqueeLabel */; + targetProxy = 5E95CF5C48D02289517615D76E1EEE75 /* PBXContainerItemProxy */; }; - 2E88A8FCED482FDEA5E6F4D180EB7E70 /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - name = JXSegmentedView; - target = E863A9A96F52A35F47491E7B41ECEF9A /* JXSegmentedView */; - targetProxy = 0BA865DDFF21AB28E706C1CAF2DD5E20 /* PBXContainerItemProxy */; - }; - 356CE9773FB523B13598D226E789ECD6 /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - name = SnapKit; - target = 19622742EBA51E823D6DAE3F8CDBFAD4 /* SnapKit */; - targetProxy = 7CEBF3063D24E7707896B79129081954 /* PBXContainerItemProxy */; - }; - 520E431E7A614020C099AB4B04049A83 /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - name = "JXPagingView-JXPagingView"; - target = B2B2AD5303610D8EBEA025B2660C8EC5 /* JXPagingView-JXPagingView */; - targetProxy = A7D51E115FB85338655FCBA66AFD8977 /* PBXContainerItemProxy */; - }; - 5C179963F2A10BBD814EE8B1BE0B1542 /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - name = "DownloadButton-DownloadButton"; - target = 052F337D75D74480BB3BE904E7F2B1DF /* DownloadButton-DownloadButton */; - targetProxy = BBDFCD507C89C4A997B1AC5AB9DCBAD4 /* PBXContainerItemProxy */; - }; - 6A39E01C79C925E22225D75A47D44308 /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - name = MJRefresh; - target = 6868056D761E163D10FDAF8CF1C4D9B8 /* MJRefresh */; - targetProxy = 46F19EACDBED5E91D77415715B9AC155 /* PBXContainerItemProxy */; - }; - 6F92EA3AB9CE927BB4EC039078FF7977 /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - name = Alamofire; - target = EAAA1AD3A8A1B59AB91319EE40752C6D /* Alamofire */; - targetProxy = 8EC8A55D8F7D46FC342FC31A9B8C263D /* PBXContainerItemProxy */; - }; - 7C40DE11E29A9A4E016140E611620EC5 /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - name = DownloadButton; - target = BC51A1CD10A25C78C1CF64315930A6A3 /* DownloadButton */; - targetProxy = CE85927BC7C9AEA59C1650D06956F0B8 /* PBXContainerItemProxy */; - }; - 9CBBFFC1A0AC6863351C51D1AAEF54DD /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - name = SwiftDate; - target = 6038CE6006EFBE9D905454CF01909C42 /* SwiftDate */; - targetProxy = E5B4B3A190922E71852B0EA63403D03A /* PBXContainerItemProxy */; - }; - 9EFFAB27FBF468281928516B2C022DB6 /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - name = SVProgressHUD; - target = 1C8D67D8B72D6BA42CCEDB648537A340 /* SVProgressHUD */; - targetProxy = D9209C2D517C37F51123C12C5FC39276 /* PBXContainerItemProxy */; - }; - A51E6CD24DF804C0B208E322904D3CEF /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - name = IQKeyboardManagerSwift; - target = B490E7485944099E16C9CBD79119D1D4 /* IQKeyboardManagerSwift */; - targetProxy = 26E74EC373DC82A69C9839B208B0996D /* PBXContainerItemProxy */; - }; - A71A8A14576427F32B4E86F196803CB7 /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - name = Tiercel; - target = EF6413888FBA82A60EBB6F0A0EA14AD8 /* Tiercel */; - targetProxy = A02D6F6D8DD0080715E73AFA0DC63EC9 /* PBXContainerItemProxy */; - }; - A79E8B2AFFD505CF00A6F49D9CFCC306 /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - name = "Alamofire-Alamofire"; - target = 976126A1CE06DC6E162563800E1BDF14 /* Alamofire-Alamofire */; - targetProxy = 270FE51967CD9FFA5343A46CF8D1D663 /* PBXContainerItemProxy */; - }; - B4C2E8B25D1E971458438BC4E3DF725E /* PBXTargetDependency */ = { + 45E7F9A4C0FA81FC774C988590C3D8A4 /* PBXTargetDependency */ = { isa = PBXTargetDependency; name = "JXSegmentedView-JXSegmentedView"; target = 52F43AC38D9FF80196C69FB03AEEFDDA /* JXSegmentedView-JXSegmentedView */; - targetProxy = 998B0E246B006E5E0BE840EAB7690B7D /* PBXContainerItemProxy */; + targetProxy = A1359F993BF5F20C458649872D2DBC3F /* PBXContainerItemProxy */; }; - C4DA219889ED77CCF3947669CCFCB19A /* PBXTargetDependency */ = { + 46A6EDC3F328F6366D5A9474851B5991 /* PBXTargetDependency */ = { isa = PBXTargetDependency; name = "MJRefresh-MJRefresh.Privacy"; target = B26054DF1DEA11585A231AF6D1D80D5E /* MJRefresh-MJRefresh.Privacy */; - targetProxy = 142AC367F48B6467B5E28446DC954898 /* PBXContainerItemProxy */; + targetProxy = 5795E672243C657EE42B3638D13129EE /* PBXContainerItemProxy */; }; - E2AED33B7DACA63429FD3FAE9E00460A /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - name = "Kingfisher-Kingfisher"; - target = 9828BBC09E9FB1238624113D7456E59E /* Kingfisher-Kingfisher */; - targetProxy = 6592B950806908EF4277AEA979157097 /* PBXContainerItemProxy */; - }; - ECE3CBD14083B5DAFBFD5CDE0EB33F81 /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - name = "SnapKit-SnapKit_Privacy"; - target = 8A8DB685241263AFDF5E6B20FE67B93A /* SnapKit-SnapKit_Privacy */; - targetProxy = 6B8AFF5AFB61293958BD6458D5C2FFD4 /* PBXContainerItemProxy */; - }; - F473040CC381A4FB393FD978BF2B6D5F /* PBXTargetDependency */ = { + 5AAFBE212836CAFAD2F8FC7103F128D9 /* PBXTargetDependency */ = { isa = PBXTargetDependency; name = JXPagingView; target = C4E1020AF425614337737213AA26DBD5 /* JXPagingView */; - targetProxy = 37E5C2EDBD3BCD1D0B44FAE1248DB31D /* PBXContainerItemProxy */; + targetProxy = EABE74D428D2DC73C6A037A30FA6E9E3 /* PBXContainerItemProxy */; + }; + 5B6F4B0C6409175FF6FF480C6A67E14C /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = JXSegmentedView; + target = E863A9A96F52A35F47491E7B41ECEF9A /* JXSegmentedView */; + targetProxy = 340587A3C7500EF1FD4EEBA748512D6E /* PBXContainerItemProxy */; + }; + 62596068F98AFB8A13288B1D1E7DFA2E /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = "Kingfisher-Kingfisher"; + target = 9828BBC09E9FB1238624113D7456E59E /* Kingfisher-Kingfisher */; + targetProxy = 4D9FA995ECE7665E4722E5DB04208A8C /* PBXContainerItemProxy */; + }; + 685B491840E989EA2D2585E679EBC08C /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = DownloadButton; + target = BC51A1CD10A25C78C1CF64315930A6A3 /* DownloadButton */; + targetProxy = 2A50980AC7BCE46CAB3FF96CB00A499C /* PBXContainerItemProxy */; + }; + 6BA289E074FDCCB267511172CC05A90D /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = "Alamofire-Alamofire"; + target = 976126A1CE06DC6E162563800E1BDF14 /* Alamofire-Alamofire */; + targetProxy = FFA5052469D64C22F8D1AEBCD2D55C17 /* PBXContainerItemProxy */; + }; + 8458C815AC07CF9F5D5CC2CEBB2F5C03 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = MarqueeLabel; + target = C23DB88E45B0ED14F0C8827BE9C46C95 /* MarqueeLabel */; + targetProxy = 62E0C83F2175CECA1D1FE1633CBC6AAA /* PBXContainerItemProxy */; + }; + 86DAF579B4B034D594C88F4234AABCF4 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = Tiercel; + target = EF6413888FBA82A60EBB6F0A0EA14AD8 /* Tiercel */; + targetProxy = 0965920B2C03B6ECDD27F9FDA68E5B2F /* PBXContainerItemProxy */; + }; + A5E839B07112674036A5F13F0B4B61E6 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = SVProgressHUD; + target = 1C8D67D8B72D6BA42CCEDB648537A340 /* SVProgressHUD */; + targetProxy = 0F838A1E0D21BE8314387B19F444BF72 /* PBXContainerItemProxy */; + }; + AF0E3C891B4E4A34D37908E33B8F3BA3 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = "SnapKit-SnapKit_Privacy"; + target = 8A8DB685241263AFDF5E6B20FE67B93A /* SnapKit-SnapKit_Privacy */; + targetProxy = EA3CE36C556CAE127D1BEB5F119B0387 /* PBXContainerItemProxy */; + }; + B3E2DD4FF21E21B0E7E5BB53DCA42ADE /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = "JXPagingView-JXPagingView"; + target = B2B2AD5303610D8EBEA025B2660C8EC5 /* JXPagingView-JXPagingView */; + targetProxy = 4F3760765A5A980CDAF0CBEED94EED25 /* PBXContainerItemProxy */; + }; + CB30534A1E82271DA1ACFC35D92AED89 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = SnapKit; + target = 19622742EBA51E823D6DAE3F8CDBFAD4 /* SnapKit */; + targetProxy = 717D58C54671A62B4B9DE36E792C6C8D /* PBXContainerItemProxy */; + }; + E12EEE2263308ECD017737CBE7B36379 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = Alamofire; + target = EAAA1AD3A8A1B59AB91319EE40752C6D /* Alamofire */; + targetProxy = A5A501CBC2F25A6B0ED93EF910540274 /* PBXContainerItemProxy */; + }; + F148CEF2CACCED6108F5203D082FF205 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = IQKeyboardManagerSwift; + target = B490E7485944099E16C9CBD79119D1D4 /* IQKeyboardManagerSwift */; + targetProxy = E1D1E2392B71F4431C0DF26B1F0B8355 /* PBXContainerItemProxy */; + }; + F3D1ADD4877FD7CE274B347AE8F9B63F /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = "DownloadButton-DownloadButton"; + target = 052F337D75D74480BB3BE904E7F2B1DF /* DownloadButton-DownloadButton */; + targetProxy = B73062B890FCA36EBDC3A7EA7196A939 /* PBXContainerItemProxy */; + }; + F9A13351D8428FE59FFA1CE5FF55BBFB /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = Kingfisher; + target = E8022D22FAA6690B5E1C379C1BCE1491 /* Kingfisher */; + targetProxy = 49F820E5EA81257683ABAF4F50AAECF6 /* PBXContainerItemProxy */; + }; + FB459691B6462699EA7B11888DA29B58 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = SwiftDate; + target = 6038CE6006EFBE9D905454CF01909C42 /* SwiftDate */; + targetProxy = F757A1EC10AB8AE304EDF4E391BBD01D /* PBXContainerItemProxy */; + }; + FB6F272A4F1495504A44AB06753F48ED /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = MJRefresh; + target = 6868056D761E163D10FDAF8CF1C4D9B8 /* MJRefresh */; + targetProxy = 300CCB3FCF4860082B536BE1B1B5EB4B /* PBXContainerItemProxy */; }; /* End PBXTargetDependency section */ /* Begin XCBuildConfiguration section */ - 0CF0CC3E6747ECCC9FD1BF1CB061FF9A /* Release */ = { + 103E43353CA2E21FFFA572F4459B9B65 /* Debug */ = { isa = XCBuildConfiguration; - baseConfigurationReference = F0940CA5187132EB1F3BFBCA44C148B5 /* JXSegmentedView.release.xcconfig */; + baseConfigurationReference = 286D36F1216FB22EFA1FA2B0BF33D8E4 /* DownloadButton.debug.xcconfig */; buildSettings = { CODE_SIGNING_ALLOWED = NO; - CONFIGURATION_BUILD_DIR = "$(BUILD_DIR)/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)/JXSegmentedView"; - IBSC_MODULE = JXSegmentedView; - INFOPLIST_FILE = "Target Support Files/JXSegmentedView/ResourceBundle-JXSegmentedView-JXSegmentedView-Info.plist"; - IPHONEOS_DEPLOYMENT_TARGET = 9.0; - PRODUCT_NAME = JXSegmentedView; + CONFIGURATION_BUILD_DIR = "$(BUILD_DIR)/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)/DownloadButton"; + IBSC_MODULE = DownloadButton; + INFOPLIST_FILE = "Target Support Files/DownloadButton/ResourceBundle-DownloadButton-DownloadButton-Info.plist"; + IPHONEOS_DEPLOYMENT_TARGET = 8.0; + PRODUCT_NAME = DownloadButton; + SDKROOT = iphoneos; + SKIP_INSTALL = YES; + TARGETED_DEVICE_FAMILY = "1,2"; + WRAPPER_EXTENSION = bundle; + }; + name = Debug; + }; + 120DCFBFFC72D0384F9BBDA942FDF748 /* Release */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 4658976F267BC82EF3D6B7979DE50335 /* Kingfisher.release.xcconfig */; + buildSettings = { + CODE_SIGNING_ALLOWED = NO; + CONFIGURATION_BUILD_DIR = "$(BUILD_DIR)/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)/Kingfisher"; + IBSC_MODULE = Kingfisher; + INFOPLIST_FILE = "Target Support Files/Kingfisher/ResourceBundle-Kingfisher-Kingfisher-Info.plist"; + IPHONEOS_DEPLOYMENT_TARGET = 12.0; + PRODUCT_NAME = Kingfisher; SDKROOT = iphoneos; SKIP_INSTALL = YES; TARGETED_DEVICE_FAMILY = "1,2"; @@ -3302,11 +3499,10 @@ }; name = Release; }; - 148BFFE2D6276152EC848D16CF51B437 /* Debug */ = { + 17FCF31D47F4C7CC6427ED1E84A9FC1B /* Debug */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 78F169B56C38C8BD0409AADB1B0DFB10 /* Pods-relax.offline.mp3.music.debug.xcconfig */; + baseConfigurationReference = B2E569FD6AE02A7A1DC3F55132F39D8B /* MarqueeLabel.debug.xcconfig */; buildSettings = { - ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = NO; CLANG_ENABLE_OBJC_WEAK = NO; "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; @@ -3316,7 +3512,8 @@ DYLIB_COMPATIBILITY_VERSION = 1; DYLIB_CURRENT_VERSION = 1; DYLIB_INSTALL_NAME_BASE = "@rpath"; - INFOPLIST_FILE = "Target Support Files/Pods-relax.offline.mp3.music/Pods-relax.offline.mp3.music-Info.plist"; + GCC_PREFIX_HEADER = "Target Support Files/MarqueeLabel/MarqueeLabel-prefix.pch"; + INFOPLIST_FILE = "Target Support Files/MarqueeLabel/MarqueeLabel-Info.plist"; INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; IPHONEOS_DEPLOYMENT_TARGET = 12.0; LD_RUNPATH_SEARCH_PATHS = ( @@ -3324,15 +3521,13 @@ "@executable_path/Frameworks", "@loader_path/Frameworks", ); - MACH_O_TYPE = staticlib; - MODULEMAP_FILE = "Target Support Files/Pods-relax.offline.mp3.music/Pods-relax.offline.mp3.music.modulemap"; - OTHER_LDFLAGS = ""; - OTHER_LIBTOOLFLAGS = ""; - PODS_ROOT = "$(SRCROOT)"; - PRODUCT_BUNDLE_IDENTIFIER = "org.cocoapods.${PRODUCT_NAME:rfc1034identifier}"; - PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)"; + MODULEMAP_FILE = "Target Support Files/MarqueeLabel/MarqueeLabel.modulemap"; + PRODUCT_MODULE_NAME = MarqueeLabel; + PRODUCT_NAME = MarqueeLabel; SDKROOT = iphoneos; SKIP_INSTALL = YES; + SWIFT_ACTIVE_COMPILATION_CONDITIONS = "$(inherited) "; + SWIFT_VERSION = 5.0; TARGETED_DEVICE_FAMILY = "1,2"; VERSIONING_SYSTEM = "apple-generic"; VERSION_INFO_PREFIX = ""; @@ -3341,7 +3536,7 @@ }; 1AAF3B5EE94AF573BC39D3167C5DF211 /* Release */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 159E2A4DAA8F5B4713B65544D40E96E2 /* SwiftDate.release.xcconfig */; + baseConfigurationReference = 9E6116C1253A5B521CBB9102BB9766D4 /* SwiftDate.release.xcconfig */; buildSettings = { "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; @@ -3374,40 +3569,6 @@ }; name = Release; }; - 22C5B936D1B93C498035261621104B29 /* Debug */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = 315BF2CB3391E812B1AEA545E71FE0E3 /* Alamofire.debug.xcconfig */; - buildSettings = { - CODE_SIGNING_ALLOWED = NO; - CONFIGURATION_BUILD_DIR = "$(BUILD_DIR)/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)/Alamofire"; - IBSC_MODULE = Alamofire; - INFOPLIST_FILE = "Target Support Files/Alamofire/ResourceBundle-Alamofire-Alamofire-Info.plist"; - IPHONEOS_DEPLOYMENT_TARGET = 10.0; - PRODUCT_NAME = Alamofire; - SDKROOT = iphoneos; - SKIP_INSTALL = YES; - TARGETED_DEVICE_FAMILY = "1,2"; - WRAPPER_EXTENSION = bundle; - }; - name = Debug; - }; - 24A6B07A3810B921268106D7683F1EAE /* Release */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = 63B8C856677EDF8BE234CF7E2BB951A1 /* DownloadButton.release.xcconfig */; - buildSettings = { - CODE_SIGNING_ALLOWED = NO; - CONFIGURATION_BUILD_DIR = "$(BUILD_DIR)/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)/DownloadButton"; - IBSC_MODULE = DownloadButton; - INFOPLIST_FILE = "Target Support Files/DownloadButton/ResourceBundle-DownloadButton-DownloadButton-Info.plist"; - IPHONEOS_DEPLOYMENT_TARGET = 8.0; - PRODUCT_NAME = DownloadButton; - SDKROOT = iphoneos; - SKIP_INSTALL = YES; - TARGETED_DEVICE_FAMILY = "1,2"; - WRAPPER_EXTENSION = bundle; - }; - name = Release; - }; 2B9E26EAE2CD392AD762421F663075A1 /* Debug */ = { isa = XCBuildConfiguration; buildSettings = { @@ -3474,26 +3635,9 @@ }; name = Debug; }; - 4200069F3F7B8FE50BBFF0DAA4766767 /* Release */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = 3D86F413A39C2ED7EBED385F18D75825 /* Kingfisher.release.xcconfig */; - buildSettings = { - CODE_SIGNING_ALLOWED = NO; - CONFIGURATION_BUILD_DIR = "$(BUILD_DIR)/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)/Kingfisher"; - IBSC_MODULE = Kingfisher; - INFOPLIST_FILE = "Target Support Files/Kingfisher/ResourceBundle-Kingfisher-Kingfisher-Info.plist"; - IPHONEOS_DEPLOYMENT_TARGET = 12.0; - PRODUCT_NAME = Kingfisher; - SDKROOT = iphoneos; - SKIP_INSTALL = YES; - TARGETED_DEVICE_FAMILY = "1,2"; - WRAPPER_EXTENSION = bundle; - }; - name = Release; - }; 49ECDEB1F766445F069C9762EF802030 /* Debug */ = { isa = XCBuildConfiguration; - baseConfigurationReference = F5B6449F536C5298590E398332C1AC3E /* DownloadButton.debug.xcconfig */; + baseConfigurationReference = 286D36F1216FB22EFA1FA2B0BF33D8E4 /* DownloadButton.debug.xcconfig */; buildSettings = { "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; @@ -3525,9 +3669,26 @@ }; name = Debug; }; + 5604924DC24498421DA07F7C542B0C74 /* Release */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 56D29ADB2EBBA325CE4BF575D81F9922 /* JXSegmentedView.release.xcconfig */; + buildSettings = { + CODE_SIGNING_ALLOWED = NO; + CONFIGURATION_BUILD_DIR = "$(BUILD_DIR)/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)/JXSegmentedView"; + IBSC_MODULE = JXSegmentedView; + INFOPLIST_FILE = "Target Support Files/JXSegmentedView/ResourceBundle-JXSegmentedView-JXSegmentedView-Info.plist"; + IPHONEOS_DEPLOYMENT_TARGET = 9.0; + PRODUCT_NAME = JXSegmentedView; + SDKROOT = iphoneos; + SKIP_INSTALL = YES; + TARGETED_DEVICE_FAMILY = "1,2"; + WRAPPER_EXTENSION = bundle; + }; + name = Release; + }; 563564487BD399E6F70C91C5FDCCBDA8 /* Release */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 78E9B606463B84F0667A91A176A63CAF /* SVProgressHUD.release.xcconfig */; + baseConfigurationReference = F624B3E773D2B4EDED7498509D928D5D /* SVProgressHUD.release.xcconfig */; buildSettings = { CLANG_ENABLE_OBJC_WEAK = NO; "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; @@ -3561,26 +3722,45 @@ }; name = Release; }; - 5868AF54EF714F7F851B96D557AB4A87 /* Debug */ = { + 5BC52FD46EE5AEF30D1D8C860A24A32F /* Release */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 861CA4EAA407480C04F77305C8558913 /* MJRefresh.debug.xcconfig */; + baseConfigurationReference = 151EDB1C5044CF30A4CB9D9D05FC7B87 /* MarqueeLabel.release.xcconfig */; buildSettings = { - CODE_SIGNING_ALLOWED = NO; - CONFIGURATION_BUILD_DIR = "$(BUILD_DIR)/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)/MJRefresh"; - IBSC_MODULE = MJRefresh; - INFOPLIST_FILE = "Target Support Files/MJRefresh/ResourceBundle-MJRefresh.Privacy-MJRefresh-Info.plist"; + CLANG_ENABLE_OBJC_WEAK = NO; + "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; + "CODE_SIGN_IDENTITY[sdk=watchos*]" = ""; + CURRENT_PROJECT_VERSION = 1; + DEFINES_MODULE = YES; + DYLIB_COMPATIBILITY_VERSION = 1; + DYLIB_CURRENT_VERSION = 1; + DYLIB_INSTALL_NAME_BASE = "@rpath"; + GCC_PREFIX_HEADER = "Target Support Files/MarqueeLabel/MarqueeLabel-prefix.pch"; + INFOPLIST_FILE = "Target Support Files/MarqueeLabel/MarqueeLabel-Info.plist"; + INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; IPHONEOS_DEPLOYMENT_TARGET = 12.0; - PRODUCT_NAME = MJRefresh.Privacy; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + "@loader_path/Frameworks", + ); + MODULEMAP_FILE = "Target Support Files/MarqueeLabel/MarqueeLabel.modulemap"; + PRODUCT_MODULE_NAME = MarqueeLabel; + PRODUCT_NAME = MarqueeLabel; SDKROOT = iphoneos; SKIP_INSTALL = YES; + SWIFT_ACTIVE_COMPILATION_CONDITIONS = "$(inherited) "; + SWIFT_VERSION = 5.0; TARGETED_DEVICE_FAMILY = "1,2"; - WRAPPER_EXTENSION = bundle; + VALIDATE_PRODUCT = YES; + VERSIONING_SYSTEM = "apple-generic"; + VERSION_INFO_PREFIX = ""; }; - name = Debug; + name = Release; }; 5E4C64D56B505D84A44C5EBF9879A28A /* Debug */ = { isa = XCBuildConfiguration; - baseConfigurationReference = C862128BE47B7F41A1A5B3C534DF20F5 /* Tiercel.debug.xcconfig */; + baseConfigurationReference = C53B57243C12253DFF4D521DA23D9124 /* Tiercel.debug.xcconfig */; buildSettings = { CLANG_ENABLE_OBJC_WEAK = NO; "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; @@ -3615,7 +3795,7 @@ }; 5EA01C8F2E402725AC281C80AB12CDC0 /* Debug */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 61E2818BF0B1113FD98A2C90CF89E0D2 /* Kingfisher.debug.xcconfig */; + baseConfigurationReference = 039652F74DE37B5B89EC981B2BAB2CC2 /* Kingfisher.debug.xcconfig */; buildSettings = { CLANG_ENABLE_OBJC_WEAK = NO; "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; @@ -3710,33 +3890,16 @@ }; name = Release; }; - 6F102E267093279E2B059CC2F8243429 /* Release */ = { + 6E081CF15D64ED1F8D4BA7C32D8286C9 /* Debug */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 35614DDD77E7F500FF36C6A4A9C1FBE1 /* MJRefresh.release.xcconfig */; + baseConfigurationReference = 4E107748342DFAA0AE5704BF236060EB /* JXPagingView.debug.xcconfig */; buildSettings = { CODE_SIGNING_ALLOWED = NO; - CONFIGURATION_BUILD_DIR = "$(BUILD_DIR)/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)/MJRefresh"; - IBSC_MODULE = MJRefresh; - INFOPLIST_FILE = "Target Support Files/MJRefresh/ResourceBundle-MJRefresh.Privacy-MJRefresh-Info.plist"; - IPHONEOS_DEPLOYMENT_TARGET = 12.0; - PRODUCT_NAME = MJRefresh.Privacy; - SDKROOT = iphoneos; - SKIP_INSTALL = YES; - TARGETED_DEVICE_FAMILY = "1,2"; - WRAPPER_EXTENSION = bundle; - }; - name = Release; - }; - 7032F519C47D73AAE1C78F9FC987E651 /* Debug */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = 61E2818BF0B1113FD98A2C90CF89E0D2 /* Kingfisher.debug.xcconfig */; - buildSettings = { - CODE_SIGNING_ALLOWED = NO; - CONFIGURATION_BUILD_DIR = "$(BUILD_DIR)/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)/Kingfisher"; - IBSC_MODULE = Kingfisher; - INFOPLIST_FILE = "Target Support Files/Kingfisher/ResourceBundle-Kingfisher-Kingfisher-Info.plist"; - IPHONEOS_DEPLOYMENT_TARGET = 12.0; - PRODUCT_NAME = Kingfisher; + CONFIGURATION_BUILD_DIR = "$(BUILD_DIR)/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)/JXPagingView"; + IBSC_MODULE = JXPagingView; + INFOPLIST_FILE = "Target Support Files/JXPagingView/ResourceBundle-JXPagingView-JXPagingView-Info.plist"; + IPHONEOS_DEPLOYMENT_TARGET = 8.0; + PRODUCT_NAME = JXPagingView; SDKROOT = iphoneos; SKIP_INSTALL = YES; TARGETED_DEVICE_FAMILY = "1,2"; @@ -3744,9 +3907,26 @@ }; name = Debug; }; + 706AA0597A13A3B80F45D0F81D56035B /* Release */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = A0237D9541BF734A21ABB974F665057B /* SnapKit.release.xcconfig */; + buildSettings = { + CODE_SIGNING_ALLOWED = NO; + CONFIGURATION_BUILD_DIR = "$(BUILD_DIR)/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)/SnapKit"; + IBSC_MODULE = SnapKit; + INFOPLIST_FILE = "Target Support Files/SnapKit/ResourceBundle-SnapKit_Privacy-SnapKit-Info.plist"; + IPHONEOS_DEPLOYMENT_TARGET = 12.0; + PRODUCT_NAME = SnapKit_Privacy; + SDKROOT = iphoneos; + SKIP_INSTALL = YES; + TARGETED_DEVICE_FAMILY = "1,2"; + WRAPPER_EXTENSION = bundle; + }; + name = Release; + }; 714A038955EDD712335B7293B4D7DAB3 /* Debug */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 315BF2CB3391E812B1AEA545E71FE0E3 /* Alamofire.debug.xcconfig */; + baseConfigurationReference = C6875035947686EB58790FA26575254B /* Alamofire.debug.xcconfig */; buildSettings = { CLANG_ENABLE_OBJC_WEAK = NO; "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; @@ -3779,26 +3959,9 @@ }; name = Debug; }; - 7518F4B2893FBBD291B7C7C43B13F6E5 /* Release */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = A22FE36A8F227F453C912C889465A37A /* JXPagingView.release.xcconfig */; - buildSettings = { - CODE_SIGNING_ALLOWED = NO; - CONFIGURATION_BUILD_DIR = "$(BUILD_DIR)/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)/JXPagingView"; - IBSC_MODULE = JXPagingView; - INFOPLIST_FILE = "Target Support Files/JXPagingView/ResourceBundle-JXPagingView-JXPagingView-Info.plist"; - IPHONEOS_DEPLOYMENT_TARGET = 8.0; - PRODUCT_NAME = JXPagingView; - SDKROOT = iphoneos; - SKIP_INSTALL = YES; - TARGETED_DEVICE_FAMILY = "1,2"; - WRAPPER_EXTENSION = bundle; - }; - name = Release; - }; 796A20FEF97A102A877A06F7C64B8D4B /* Debug */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 714716AD234D7BD4D2D3A167939A0DC9 /* JXSegmentedView.debug.xcconfig */; + baseConfigurationReference = 8BEE3704E70DADA99D787D095DCF97C9 /* JXSegmentedView.debug.xcconfig */; buildSettings = { "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; @@ -3830,9 +3993,62 @@ }; name = Debug; }; - 7DE9CB13AB3D8752888B16FD1A652C19 /* Release */ = { + 7AA0CDC46FF9EB1767FCB0D1E539D106 /* Release */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 69D118DCAF0BE6F45B139DD009D24320 /* Alamofire.release.xcconfig */; + baseConfigurationReference = 48B8EFC8261F0683C57D3F2F7266B2FA /* MJRefresh.release.xcconfig */; + buildSettings = { + CODE_SIGNING_ALLOWED = NO; + CONFIGURATION_BUILD_DIR = "$(BUILD_DIR)/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)/MJRefresh"; + IBSC_MODULE = MJRefresh; + INFOPLIST_FILE = "Target Support Files/MJRefresh/ResourceBundle-MJRefresh.Privacy-MJRefresh-Info.plist"; + IPHONEOS_DEPLOYMENT_TARGET = 12.0; + PRODUCT_NAME = MJRefresh.Privacy; + SDKROOT = iphoneos; + SKIP_INSTALL = YES; + TARGETED_DEVICE_FAMILY = "1,2"; + WRAPPER_EXTENSION = bundle; + }; + name = Release; + }; + 8CACCE2CB5842FEF152EA06410C2C853 /* Release */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = E3542F7E70022B5811F78FF63C58D5E0 /* Tiercel.release.xcconfig */; + buildSettings = { + CLANG_ENABLE_OBJC_WEAK = NO; + "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; + "CODE_SIGN_IDENTITY[sdk=watchos*]" = ""; + CURRENT_PROJECT_VERSION = 1; + DEFINES_MODULE = YES; + DYLIB_COMPATIBILITY_VERSION = 1; + DYLIB_CURRENT_VERSION = 1; + DYLIB_INSTALL_NAME_BASE = "@rpath"; + GCC_PREFIX_HEADER = "Target Support Files/Tiercel/Tiercel-prefix.pch"; + INFOPLIST_FILE = "Target Support Files/Tiercel/Tiercel-Info.plist"; + INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; + IPHONEOS_DEPLOYMENT_TARGET = 10.0; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + "@loader_path/Frameworks", + ); + MODULEMAP_FILE = "Target Support Files/Tiercel/Tiercel.modulemap"; + PRODUCT_MODULE_NAME = Tiercel; + PRODUCT_NAME = Tiercel; + SDKROOT = iphoneos; + SKIP_INSTALL = YES; + SWIFT_ACTIVE_COMPILATION_CONDITIONS = "$(inherited) "; + SWIFT_VERSION = 5.0; + TARGETED_DEVICE_FAMILY = "1,2"; + VALIDATE_PRODUCT = YES; + VERSIONING_SYSTEM = "apple-generic"; + VERSION_INFO_PREFIX = ""; + }; + name = Release; + }; + 8CC8FFFA98A9060CE5FBE0E019B96CCF /* Debug */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = C6875035947686EB58790FA26575254B /* Alamofire.debug.xcconfig */; buildSettings = { CODE_SIGNING_ALLOWED = NO; CONFIGURATION_BUILD_DIR = "$(BUILD_DIR)/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)/Alamofire"; @@ -3845,9 +4061,97 @@ TARGETED_DEVICE_FAMILY = "1,2"; WRAPPER_EXTENSION = bundle; }; + name = Debug; + }; + 93E2EA07DFDD69936E365B577F51840E /* Debug */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 22E5D234C7281D45564E2715E0F37C73 /* MJRefresh.debug.xcconfig */; + buildSettings = { + CODE_SIGNING_ALLOWED = NO; + CONFIGURATION_BUILD_DIR = "$(BUILD_DIR)/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)/MJRefresh"; + IBSC_MODULE = MJRefresh; + INFOPLIST_FILE = "Target Support Files/MJRefresh/ResourceBundle-MJRefresh.Privacy-MJRefresh-Info.plist"; + IPHONEOS_DEPLOYMENT_TARGET = 12.0; + PRODUCT_NAME = MJRefresh.Privacy; + SDKROOT = iphoneos; + SKIP_INSTALL = YES; + TARGETED_DEVICE_FAMILY = "1,2"; + WRAPPER_EXTENSION = bundle; + }; + name = Debug; + }; + 984240AE6A3D535525200348828211E3 /* Release */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = A0237D9541BF734A21ABB974F665057B /* SnapKit.release.xcconfig */; + buildSettings = { + CLANG_ENABLE_OBJC_WEAK = NO; + "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; + "CODE_SIGN_IDENTITY[sdk=watchos*]" = ""; + CURRENT_PROJECT_VERSION = 1; + DEFINES_MODULE = YES; + DYLIB_COMPATIBILITY_VERSION = 1; + DYLIB_CURRENT_VERSION = 1; + DYLIB_INSTALL_NAME_BASE = "@rpath"; + GCC_PREFIX_HEADER = "Target Support Files/SnapKit/SnapKit-prefix.pch"; + INFOPLIST_FILE = "Target Support Files/SnapKit/SnapKit-Info.plist"; + INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; + IPHONEOS_DEPLOYMENT_TARGET = 12.0; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + "@loader_path/Frameworks", + ); + MODULEMAP_FILE = "Target Support Files/SnapKit/SnapKit.modulemap"; + PRODUCT_MODULE_NAME = SnapKit; + PRODUCT_NAME = SnapKit; + SDKROOT = iphoneos; + SKIP_INSTALL = YES; + SWIFT_ACTIVE_COMPILATION_CONDITIONS = "$(inherited) "; + SWIFT_VERSION = 5.0; + TARGETED_DEVICE_FAMILY = "1,2"; + VALIDATE_PRODUCT = YES; + VERSIONING_SYSTEM = "apple-generic"; + VERSION_INFO_PREFIX = ""; + }; name = Release; }; - 7EBA5269FB8AFEAB541885C71D248B3D /* Release */ = { + 9C0B415A54C1C30F674208B8ADAB6C17 /* Debug */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 51B62E8042BF1B6DD54027FC1086F65B /* SnapKit.debug.xcconfig */; + buildSettings = { + CLANG_ENABLE_OBJC_WEAK = NO; + "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; + "CODE_SIGN_IDENTITY[sdk=watchos*]" = ""; + CURRENT_PROJECT_VERSION = 1; + DEFINES_MODULE = YES; + DYLIB_COMPATIBILITY_VERSION = 1; + DYLIB_CURRENT_VERSION = 1; + DYLIB_INSTALL_NAME_BASE = "@rpath"; + GCC_PREFIX_HEADER = "Target Support Files/SnapKit/SnapKit-prefix.pch"; + INFOPLIST_FILE = "Target Support Files/SnapKit/SnapKit-Info.plist"; + INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; + IPHONEOS_DEPLOYMENT_TARGET = 12.0; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + "@loader_path/Frameworks", + ); + MODULEMAP_FILE = "Target Support Files/SnapKit/SnapKit.modulemap"; + PRODUCT_MODULE_NAME = SnapKit; + PRODUCT_NAME = SnapKit; + SDKROOT = iphoneos; + SKIP_INSTALL = YES; + SWIFT_ACTIVE_COMPILATION_CONDITIONS = "$(inherited) "; + SWIFT_VERSION = 5.0; + TARGETED_DEVICE_FAMILY = "1,2"; + VERSIONING_SYSTEM = "apple-generic"; + VERSION_INFO_PREFIX = ""; + }; + name = Debug; + }; + 9E628F4B81033BC7892FA3321D875C76 /* Release */ = { isa = XCBuildConfiguration; baseConfigurationReference = 0B834912E389FFAE58A478F718D86C19 /* Pods-relax.offline.mp3.music.release.xcconfig */; buildSettings = { @@ -3885,150 +4189,26 @@ }; name = Release; }; - 8228390D9BCE2B64E04BF585160D36DC /* Debug */ = { + 9EA015592184AA931D28D4D742623432 /* Release */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 0753975CECF9BBF7A60B065338B2C8EA /* SnapKit.debug.xcconfig */; + baseConfigurationReference = 151EDB1C5044CF30A4CB9D9D05FC7B87 /* MarqueeLabel.release.xcconfig */; buildSettings = { CODE_SIGNING_ALLOWED = NO; - CONFIGURATION_BUILD_DIR = "$(BUILD_DIR)/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)/SnapKit"; - IBSC_MODULE = SnapKit; - INFOPLIST_FILE = "Target Support Files/SnapKit/ResourceBundle-SnapKit_Privacy-SnapKit-Info.plist"; + CONFIGURATION_BUILD_DIR = "$(BUILD_DIR)/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)/MarqueeLabel"; + IBSC_MODULE = MarqueeLabel; + INFOPLIST_FILE = "Target Support Files/MarqueeLabel/ResourceBundle-MarqueeLabel-MarqueeLabel-Info.plist"; IPHONEOS_DEPLOYMENT_TARGET = 12.0; - PRODUCT_NAME = SnapKit_Privacy; + PRODUCT_NAME = MarqueeLabel; SDKROOT = iphoneos; SKIP_INSTALL = YES; TARGETED_DEVICE_FAMILY = "1,2"; WRAPPER_EXTENSION = bundle; }; - name = Debug; - }; - 8A5CCA2D511C5AB2E7F3418AAB9AD8A9 /* Debug */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = 714716AD234D7BD4D2D3A167939A0DC9 /* JXSegmentedView.debug.xcconfig */; - buildSettings = { - CODE_SIGNING_ALLOWED = NO; - CONFIGURATION_BUILD_DIR = "$(BUILD_DIR)/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)/JXSegmentedView"; - IBSC_MODULE = JXSegmentedView; - INFOPLIST_FILE = "Target Support Files/JXSegmentedView/ResourceBundle-JXSegmentedView-JXSegmentedView-Info.plist"; - IPHONEOS_DEPLOYMENT_TARGET = 9.0; - PRODUCT_NAME = JXSegmentedView; - SDKROOT = iphoneos; - SKIP_INSTALL = YES; - TARGETED_DEVICE_FAMILY = "1,2"; - WRAPPER_EXTENSION = bundle; - }; - name = Debug; - }; - 8CACCE2CB5842FEF152EA06410C2C853 /* Release */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = 1ADFC6377B35790CE5A8D12BC8BF374A /* Tiercel.release.xcconfig */; - buildSettings = { - CLANG_ENABLE_OBJC_WEAK = NO; - "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; - "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; - "CODE_SIGN_IDENTITY[sdk=watchos*]" = ""; - CURRENT_PROJECT_VERSION = 1; - DEFINES_MODULE = YES; - DYLIB_COMPATIBILITY_VERSION = 1; - DYLIB_CURRENT_VERSION = 1; - DYLIB_INSTALL_NAME_BASE = "@rpath"; - GCC_PREFIX_HEADER = "Target Support Files/Tiercel/Tiercel-prefix.pch"; - INFOPLIST_FILE = "Target Support Files/Tiercel/Tiercel-Info.plist"; - INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; - IPHONEOS_DEPLOYMENT_TARGET = 10.0; - LD_RUNPATH_SEARCH_PATHS = ( - "$(inherited)", - "@executable_path/Frameworks", - "@loader_path/Frameworks", - ); - MODULEMAP_FILE = "Target Support Files/Tiercel/Tiercel.modulemap"; - PRODUCT_MODULE_NAME = Tiercel; - PRODUCT_NAME = Tiercel; - SDKROOT = iphoneos; - SKIP_INSTALL = YES; - SWIFT_ACTIVE_COMPILATION_CONDITIONS = "$(inherited) "; - SWIFT_VERSION = 5.0; - TARGETED_DEVICE_FAMILY = "1,2"; - VALIDATE_PRODUCT = YES; - VERSIONING_SYSTEM = "apple-generic"; - VERSION_INFO_PREFIX = ""; - }; name = Release; }; - 984240AE6A3D535525200348828211E3 /* Release */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = 95BABC6511F75F88C0D1B62787F185BC /* SnapKit.release.xcconfig */; - buildSettings = { - CLANG_ENABLE_OBJC_WEAK = NO; - "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; - "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; - "CODE_SIGN_IDENTITY[sdk=watchos*]" = ""; - CURRENT_PROJECT_VERSION = 1; - DEFINES_MODULE = YES; - DYLIB_COMPATIBILITY_VERSION = 1; - DYLIB_CURRENT_VERSION = 1; - DYLIB_INSTALL_NAME_BASE = "@rpath"; - GCC_PREFIX_HEADER = "Target Support Files/SnapKit/SnapKit-prefix.pch"; - INFOPLIST_FILE = "Target Support Files/SnapKit/SnapKit-Info.plist"; - INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; - IPHONEOS_DEPLOYMENT_TARGET = 12.0; - LD_RUNPATH_SEARCH_PATHS = ( - "$(inherited)", - "@executable_path/Frameworks", - "@loader_path/Frameworks", - ); - MODULEMAP_FILE = "Target Support Files/SnapKit/SnapKit.modulemap"; - PRODUCT_MODULE_NAME = SnapKit; - PRODUCT_NAME = SnapKit; - SDKROOT = iphoneos; - SKIP_INSTALL = YES; - SWIFT_ACTIVE_COMPILATION_CONDITIONS = "$(inherited) "; - SWIFT_VERSION = 5.0; - TARGETED_DEVICE_FAMILY = "1,2"; - VALIDATE_PRODUCT = YES; - VERSIONING_SYSTEM = "apple-generic"; - VERSION_INFO_PREFIX = ""; - }; - name = Release; - }; - 9C0B415A54C1C30F674208B8ADAB6C17 /* Debug */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = 0753975CECF9BBF7A60B065338B2C8EA /* SnapKit.debug.xcconfig */; - buildSettings = { - CLANG_ENABLE_OBJC_WEAK = NO; - "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; - "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; - "CODE_SIGN_IDENTITY[sdk=watchos*]" = ""; - CURRENT_PROJECT_VERSION = 1; - DEFINES_MODULE = YES; - DYLIB_COMPATIBILITY_VERSION = 1; - DYLIB_CURRENT_VERSION = 1; - DYLIB_INSTALL_NAME_BASE = "@rpath"; - GCC_PREFIX_HEADER = "Target Support Files/SnapKit/SnapKit-prefix.pch"; - INFOPLIST_FILE = "Target Support Files/SnapKit/SnapKit-Info.plist"; - INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; - IPHONEOS_DEPLOYMENT_TARGET = 12.0; - LD_RUNPATH_SEARCH_PATHS = ( - "$(inherited)", - "@executable_path/Frameworks", - "@loader_path/Frameworks", - ); - MODULEMAP_FILE = "Target Support Files/SnapKit/SnapKit.modulemap"; - PRODUCT_MODULE_NAME = SnapKit; - PRODUCT_NAME = SnapKit; - SDKROOT = iphoneos; - SKIP_INSTALL = YES; - SWIFT_ACTIVE_COMPILATION_CONDITIONS = "$(inherited) "; - SWIFT_VERSION = 5.0; - TARGETED_DEVICE_FAMILY = "1,2"; - VERSIONING_SYSTEM = "apple-generic"; - VERSION_INFO_PREFIX = ""; - }; - name = Debug; - }; A6260E74821A6D83D56C6FD7B057B34D /* Debug */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 71A921DEC672A03FD9ED9A50A8A5112F /* IQKeyboardManagerSwift.debug.xcconfig */; + baseConfigurationReference = 7E44CDDA1648D533E272048FC72962FF /* IQKeyboardManagerSwift.debug.xcconfig */; buildSettings = { CLANG_ENABLE_OBJC_WEAK = NO; "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; @@ -4063,7 +4243,7 @@ }; A7D05D839D2CE193DCEADAAF8897CD53 /* Release */ = { isa = XCBuildConfiguration; - baseConfigurationReference = F0940CA5187132EB1F3BFBCA44C148B5 /* JXSegmentedView.release.xcconfig */; + baseConfigurationReference = 56D29ADB2EBBA325CE4BF575D81F9922 /* JXSegmentedView.release.xcconfig */; buildSettings = { "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; @@ -4096,9 +4276,60 @@ }; name = Release; }; + AB61C59875338450A659D520E532E996 /* Release */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = D04EA9E18CCA8A041EC5FC2AD22309B6 /* Alamofire.release.xcconfig */; + buildSettings = { + CODE_SIGNING_ALLOWED = NO; + CONFIGURATION_BUILD_DIR = "$(BUILD_DIR)/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)/Alamofire"; + IBSC_MODULE = Alamofire; + INFOPLIST_FILE = "Target Support Files/Alamofire/ResourceBundle-Alamofire-Alamofire-Info.plist"; + IPHONEOS_DEPLOYMENT_TARGET = 10.0; + PRODUCT_NAME = Alamofire; + SDKROOT = iphoneos; + SKIP_INSTALL = YES; + TARGETED_DEVICE_FAMILY = "1,2"; + WRAPPER_EXTENSION = bundle; + }; + name = Release; + }; + AC2245AE599A922316F4578A72A76666 /* Release */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 355900B5F79AA20082E754752E197105 /* JXPagingView.release.xcconfig */; + buildSettings = { + CODE_SIGNING_ALLOWED = NO; + CONFIGURATION_BUILD_DIR = "$(BUILD_DIR)/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)/JXPagingView"; + IBSC_MODULE = JXPagingView; + INFOPLIST_FILE = "Target Support Files/JXPagingView/ResourceBundle-JXPagingView-JXPagingView-Info.plist"; + IPHONEOS_DEPLOYMENT_TARGET = 8.0; + PRODUCT_NAME = JXPagingView; + SDKROOT = iphoneos; + SKIP_INSTALL = YES; + TARGETED_DEVICE_FAMILY = "1,2"; + WRAPPER_EXTENSION = bundle; + }; + name = Release; + }; + B2EA9CB9CEB9B7AC2DFBD152B163B98A /* Release */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = B1587162BFA679126670ABAF09D8E3DD /* DownloadButton.release.xcconfig */; + buildSettings = { + CODE_SIGNING_ALLOWED = NO; + CONFIGURATION_BUILD_DIR = "$(BUILD_DIR)/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)/DownloadButton"; + IBSC_MODULE = DownloadButton; + INFOPLIST_FILE = "Target Support Files/DownloadButton/ResourceBundle-DownloadButton-DownloadButton-Info.plist"; + IPHONEOS_DEPLOYMENT_TARGET = 8.0; + PRODUCT_NAME = DownloadButton; + SDKROOT = iphoneos; + SKIP_INSTALL = YES; + TARGETED_DEVICE_FAMILY = "1,2"; + WRAPPER_EXTENSION = bundle; + }; + name = Release; + }; B31CF9907306152728F440F1F94804FD /* Debug */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 861CA4EAA407480C04F77305C8558913 /* MJRefresh.debug.xcconfig */; + baseConfigurationReference = 22E5D234C7281D45564E2715E0F37C73 /* MJRefresh.debug.xcconfig */; buildSettings = { CLANG_ENABLE_OBJC_WEAK = NO; "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; @@ -4133,7 +4364,7 @@ }; C107A00E8915CBCD07039B1CDC63628E /* Debug */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 74B967EE8C2947EC14E43B06440EE732 /* SVProgressHUD.debug.xcconfig */; + baseConfigurationReference = B630EB0D57457813941147FFA1FC226E /* SVProgressHUD.debug.xcconfig */; buildSettings = { CLANG_ENABLE_OBJC_WEAK = NO; "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; @@ -4166,16 +4397,16 @@ }; name = Debug; }; - C1477A44BD887300492B3B229148EF00 /* Debug */ = { + C219CD15A6975416CFB297BEC61CF397 /* Debug */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 529BEE61C943A5C55711DDA847E03AB7 /* JXPagingView.debug.xcconfig */; + baseConfigurationReference = B2E569FD6AE02A7A1DC3F55132F39D8B /* MarqueeLabel.debug.xcconfig */; buildSettings = { CODE_SIGNING_ALLOWED = NO; - CONFIGURATION_BUILD_DIR = "$(BUILD_DIR)/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)/JXPagingView"; - IBSC_MODULE = JXPagingView; - INFOPLIST_FILE = "Target Support Files/JXPagingView/ResourceBundle-JXPagingView-JXPagingView-Info.plist"; - IPHONEOS_DEPLOYMENT_TARGET = 8.0; - PRODUCT_NAME = JXPagingView; + CONFIGURATION_BUILD_DIR = "$(BUILD_DIR)/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)/MarqueeLabel"; + IBSC_MODULE = MarqueeLabel; + INFOPLIST_FILE = "Target Support Files/MarqueeLabel/ResourceBundle-MarqueeLabel-MarqueeLabel-Info.plist"; + IPHONEOS_DEPLOYMENT_TARGET = 12.0; + PRODUCT_NAME = MarqueeLabel; SDKROOT = iphoneos; SKIP_INSTALL = YES; TARGETED_DEVICE_FAMILY = "1,2"; @@ -4185,7 +4416,7 @@ }; C37261D9FB6D4AFE04B143C9910CD592 /* Debug */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 158C7BFA1B82120B554D6548EB9F3715 /* SwiftDate.debug.xcconfig */; + baseConfigurationReference = 61253EC4CFBA709FB063DAE4550C34F7 /* SwiftDate.debug.xcconfig */; buildSettings = { "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; @@ -4219,7 +4450,7 @@ }; CA60CF70D0AF64CB6C7F697460FBE2FE /* Release */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 69D118DCAF0BE6F45B139DD009D24320 /* Alamofire.release.xcconfig */; + baseConfigurationReference = D04EA9E18CCA8A041EC5FC2AD22309B6 /* Alamofire.release.xcconfig */; buildSettings = { CLANG_ENABLE_OBJC_WEAK = NO; "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; @@ -4255,7 +4486,7 @@ }; D289924F49E290957622EAA7EBE53538 /* Release */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 3D86F413A39C2ED7EBED385F18D75825 /* Kingfisher.release.xcconfig */; + baseConfigurationReference = 4658976F267BC82EF3D6B7979DE50335 /* Kingfisher.release.xcconfig */; buildSettings = { CLANG_ENABLE_OBJC_WEAK = NO; "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; @@ -4291,7 +4522,7 @@ }; D71AFD6535C82AF9CF91933A9687B877 /* Release */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 35614DDD77E7F500FF36C6A4A9C1FBE1 /* MJRefresh.release.xcconfig */; + baseConfigurationReference = 48B8EFC8261F0683C57D3F2F7266B2FA /* MJRefresh.release.xcconfig */; buildSettings = { CLANG_ENABLE_OBJC_WEAK = NO; "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; @@ -4327,7 +4558,7 @@ }; E0D85AC35AE1FCCF988F5CD7503DDB0F /* Release */ = { isa = XCBuildConfiguration; - baseConfigurationReference = A22FE36A8F227F453C912C889465A37A /* JXPagingView.release.xcconfig */; + baseConfigurationReference = 355900B5F79AA20082E754752E197105 /* JXPagingView.release.xcconfig */; buildSettings = { "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; @@ -4360,9 +4591,80 @@ }; name = Release; }; + E308FDB1DF2567AAD74804B255CA9F42 /* Debug */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 8BEE3704E70DADA99D787D095DCF97C9 /* JXSegmentedView.debug.xcconfig */; + buildSettings = { + CODE_SIGNING_ALLOWED = NO; + CONFIGURATION_BUILD_DIR = "$(BUILD_DIR)/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)/JXSegmentedView"; + IBSC_MODULE = JXSegmentedView; + INFOPLIST_FILE = "Target Support Files/JXSegmentedView/ResourceBundle-JXSegmentedView-JXSegmentedView-Info.plist"; + IPHONEOS_DEPLOYMENT_TARGET = 9.0; + PRODUCT_NAME = JXSegmentedView; + SDKROOT = iphoneos; + SKIP_INSTALL = YES; + TARGETED_DEVICE_FAMILY = "1,2"; + WRAPPER_EXTENSION = bundle; + }; + name = Debug; + }; + EBC8FF3960E4DC70B8922435C1036916 /* Debug */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 51B62E8042BF1B6DD54027FC1086F65B /* SnapKit.debug.xcconfig */; + buildSettings = { + CODE_SIGNING_ALLOWED = NO; + CONFIGURATION_BUILD_DIR = "$(BUILD_DIR)/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)/SnapKit"; + IBSC_MODULE = SnapKit; + INFOPLIST_FILE = "Target Support Files/SnapKit/ResourceBundle-SnapKit_Privacy-SnapKit-Info.plist"; + IPHONEOS_DEPLOYMENT_TARGET = 12.0; + PRODUCT_NAME = SnapKit_Privacy; + SDKROOT = iphoneos; + SKIP_INSTALL = YES; + TARGETED_DEVICE_FAMILY = "1,2"; + WRAPPER_EXTENSION = bundle; + }; + name = Debug; + }; + EEC4030BDA7412B3ED0FAF17334EC0A1 /* Debug */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 78F169B56C38C8BD0409AADB1B0DFB10 /* Pods-relax.offline.mp3.music.debug.xcconfig */; + buildSettings = { + ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = NO; + CLANG_ENABLE_OBJC_WEAK = NO; + "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; + "CODE_SIGN_IDENTITY[sdk=watchos*]" = ""; + CURRENT_PROJECT_VERSION = 1; + DEFINES_MODULE = YES; + DYLIB_COMPATIBILITY_VERSION = 1; + DYLIB_CURRENT_VERSION = 1; + DYLIB_INSTALL_NAME_BASE = "@rpath"; + INFOPLIST_FILE = "Target Support Files/Pods-relax.offline.mp3.music/Pods-relax.offline.mp3.music-Info.plist"; + INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; + IPHONEOS_DEPLOYMENT_TARGET = 12.0; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + "@loader_path/Frameworks", + ); + MACH_O_TYPE = staticlib; + MODULEMAP_FILE = "Target Support Files/Pods-relax.offline.mp3.music/Pods-relax.offline.mp3.music.modulemap"; + OTHER_LDFLAGS = ""; + OTHER_LIBTOOLFLAGS = ""; + PODS_ROOT = "$(SRCROOT)"; + PRODUCT_BUNDLE_IDENTIFIER = "org.cocoapods.${PRODUCT_NAME:rfc1034identifier}"; + PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)"; + SDKROOT = iphoneos; + SKIP_INSTALL = YES; + TARGETED_DEVICE_FAMILY = "1,2"; + VERSIONING_SYSTEM = "apple-generic"; + VERSION_INFO_PREFIX = ""; + }; + name = Debug; + }; F0C13041D6C39FC95F94A7215BB92DF1 /* Debug */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 529BEE61C943A5C55711DDA847E03AB7 /* JXPagingView.debug.xcconfig */; + baseConfigurationReference = 4E107748342DFAA0AE5704BF236060EB /* JXPagingView.debug.xcconfig */; buildSettings = { "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; @@ -4394,33 +4696,16 @@ }; name = Debug; }; - F0FC0B13433CD67B5724A3E588190349 /* Release */ = { + F1D16B7EEB454E8FDA08743BB5442971 /* Debug */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 95BABC6511F75F88C0D1B62787F185BC /* SnapKit.release.xcconfig */; + baseConfigurationReference = 039652F74DE37B5B89EC981B2BAB2CC2 /* Kingfisher.debug.xcconfig */; buildSettings = { CODE_SIGNING_ALLOWED = NO; - CONFIGURATION_BUILD_DIR = "$(BUILD_DIR)/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)/SnapKit"; - IBSC_MODULE = SnapKit; - INFOPLIST_FILE = "Target Support Files/SnapKit/ResourceBundle-SnapKit_Privacy-SnapKit-Info.plist"; + CONFIGURATION_BUILD_DIR = "$(BUILD_DIR)/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)/Kingfisher"; + IBSC_MODULE = Kingfisher; + INFOPLIST_FILE = "Target Support Files/Kingfisher/ResourceBundle-Kingfisher-Kingfisher-Info.plist"; IPHONEOS_DEPLOYMENT_TARGET = 12.0; - PRODUCT_NAME = SnapKit_Privacy; - SDKROOT = iphoneos; - SKIP_INSTALL = YES; - TARGETED_DEVICE_FAMILY = "1,2"; - WRAPPER_EXTENSION = bundle; - }; - name = Release; - }; - F122F129E494CD004BB877DA64BC8424 /* Debug */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = F5B6449F536C5298590E398332C1AC3E /* DownloadButton.debug.xcconfig */; - buildSettings = { - CODE_SIGNING_ALLOWED = NO; - CONFIGURATION_BUILD_DIR = "$(BUILD_DIR)/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)/DownloadButton"; - IBSC_MODULE = DownloadButton; - INFOPLIST_FILE = "Target Support Files/DownloadButton/ResourceBundle-DownloadButton-DownloadButton-Info.plist"; - IPHONEOS_DEPLOYMENT_TARGET = 8.0; - PRODUCT_NAME = DownloadButton; + PRODUCT_NAME = Kingfisher; SDKROOT = iphoneos; SKIP_INSTALL = YES; TARGETED_DEVICE_FAMILY = "1,2"; @@ -4430,7 +4715,7 @@ }; FB24FCF099CA4E45348AAAE173CA95E3 /* Release */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 63B8C856677EDF8BE234CF7E2BB951A1 /* DownloadButton.release.xcconfig */; + baseConfigurationReference = B1587162BFA679126670ABAF09D8E3DD /* DownloadButton.release.xcconfig */; buildSettings = { "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; @@ -4465,7 +4750,7 @@ }; FB818BDDADBD0A197A07D52CF5BB68F5 /* Release */ = { isa = XCBuildConfiguration; - baseConfigurationReference = A99C6D78247F219367F4F8AB8CC454FF /* IQKeyboardManagerSwift.release.xcconfig */; + baseConfigurationReference = FD209E59AEF04DF3B00BEF141AD3C1FA /* IQKeyboardManagerSwift.release.xcconfig */; buildSettings = { CLANG_ENABLE_OBJC_WEAK = NO; "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; @@ -4502,29 +4787,29 @@ /* End XCBuildConfiguration section */ /* Begin XCConfigurationList section */ - 120FAB2EA800C064E149119FBA20642C /* Build configuration list for PBXNativeTarget "JXPagingView-JXPagingView" */ = { + 0B4E390D7576A958C2D107868CB56835 /* Build configuration list for PBXNativeTarget "Pods-relax.offline.mp3.music" */ = { isa = XCConfigurationList; buildConfigurations = ( - C1477A44BD887300492B3B229148EF00 /* Debug */, - 7518F4B2893FBBD291B7C7C43B13F6E5 /* Release */, + EEC4030BDA7412B3ED0FAF17334EC0A1 /* Debug */, + 9E628F4B81033BC7892FA3321D875C76 /* Release */, ); defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; }; - 1FD05F179E2FAE92CB216DD3540A8E9A /* Build configuration list for PBXNativeTarget "MJRefresh-MJRefresh.Privacy" */ = { + 35817099295FF8EC267AA6CD652F57EA /* Build configuration list for PBXNativeTarget "JXPagingView-JXPagingView" */ = { isa = XCConfigurationList; buildConfigurations = ( - 5868AF54EF714F7F851B96D557AB4A87 /* Debug */, - 6F102E267093279E2B059CC2F8243429 /* Release */, + 6E081CF15D64ED1F8D4BA7C32D8286C9 /* Debug */, + AC2245AE599A922316F4578A72A76666 /* Release */, ); defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; }; - 262DA25B008ECE325011602BFE15BB59 /* Build configuration list for PBXNativeTarget "Alamofire-Alamofire" */ = { + 3675B649F824AD394E859E84994E2FCB /* Build configuration list for PBXNativeTarget "MarqueeLabel" */ = { isa = XCConfigurationList; buildConfigurations = ( - 22C5B936D1B93C498035261621104B29 /* Debug */, - 7DE9CB13AB3D8752888B16FD1A652C19 /* Release */, + 17FCF31D47F4C7CC6427ED1E84A9FC1B /* Debug */, + 5BC52FD46EE5AEF30D1D8C860A24A32F /* Release */, ); defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; @@ -4565,20 +4850,11 @@ defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; }; - 56280851BB6039F12C1DDBE65EBC43D8 /* Build configuration list for PBXNativeTarget "DownloadButton-DownloadButton" */ = { + 6759F285DA40F3ABE93A9AA82FE02E5A /* Build configuration list for PBXNativeTarget "Alamofire-Alamofire" */ = { isa = XCConfigurationList; buildConfigurations = ( - F122F129E494CD004BB877DA64BC8424 /* Debug */, - 24A6B07A3810B921268106D7683F1EAE /* Release */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; - 6D61045E76C0299E244000C32A0ED131 /* Build configuration list for PBXNativeTarget "Pods-relax.offline.mp3.music" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - 148BFFE2D6276152EC848D16CF51B437 /* Debug */, - 7EBA5269FB8AFEAB541885C71D248B3D /* Release */, + 8CC8FFFA98A9060CE5FBE0E019B96CCF /* Debug */, + AB61C59875338450A659D520E532E996 /* Release */, ); defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; @@ -4592,11 +4868,11 @@ defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; }; - 8B7EF43369CE8EEE18E6F5EC6E6967C2 /* Build configuration list for PBXNativeTarget "Kingfisher-Kingfisher" */ = { + 841D573662939AED46C3EE5DC64AE3B5 /* Build configuration list for PBXNativeTarget "SnapKit-SnapKit_Privacy" */ = { isa = XCConfigurationList; buildConfigurations = ( - 7032F519C47D73AAE1C78F9FC987E651 /* Debug */, - 4200069F3F7B8FE50BBFF0DAA4766767 /* Release */, + EBC8FF3960E4DC70B8922435C1036916 /* Debug */, + 706AA0597A13A3B80F45D0F81D56035B /* Release */, ); defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; @@ -4619,11 +4895,38 @@ defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; }; - A7C630974EF36C28E57CB29D5227C4A8 /* Build configuration list for PBXNativeTarget "SnapKit-SnapKit_Privacy" */ = { + BB1E592564326F4728DB1CCE9424616A /* Build configuration list for PBXNativeTarget "JXSegmentedView-JXSegmentedView" */ = { isa = XCConfigurationList; buildConfigurations = ( - 8228390D9BCE2B64E04BF585160D36DC /* Debug */, - F0FC0B13433CD67B5724A3E588190349 /* Release */, + E308FDB1DF2567AAD74804B255CA9F42 /* Debug */, + 5604924DC24498421DA07F7C542B0C74 /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + BBBC45B0A8AFBA83743BEAA1299ABDB2 /* Build configuration list for PBXNativeTarget "DownloadButton-DownloadButton" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 103E43353CA2E21FFFA572F4459B9B65 /* Debug */, + B2EA9CB9CEB9B7AC2DFBD152B163B98A /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + C50108E4096B8FAC0569BF6D7D5DA04C /* Build configuration list for PBXNativeTarget "MJRefresh-MJRefresh.Privacy" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 93E2EA07DFDD69936E365B577F51840E /* Debug */, + 7AA0CDC46FF9EB1767FCB0D1E539D106 /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + D4E5AFED4ADD0A50DAA0055BD6C67596 /* Build configuration list for PBXNativeTarget "MarqueeLabel-MarqueeLabel" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + C219CD15A6975416CFB297BEC61CF397 /* Debug */, + 9EA015592184AA931D28D4D742623432 /* Release */, ); defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; @@ -4637,15 +4940,6 @@ defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; }; - DD53718362772CD7C123A38EB0879466 /* Build configuration list for PBXNativeTarget "JXSegmentedView-JXSegmentedView" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - 8A5CCA2D511C5AB2E7F3418AAB9AD8A9 /* Debug */, - 0CF0CC3E6747ECCC9FD1BF1CB061FF9A /* Release */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; EF5C4DEBE2675B6E4A59F72D208FCC83 /* Build configuration list for PBXNativeTarget "JXPagingView" */ = { isa = XCConfigurationList; buildConfigurations = ( @@ -4673,6 +4967,15 @@ defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; }; + FA4EF73C2AA33E80657945678E5CD600 /* Build configuration list for PBXNativeTarget "Kingfisher-Kingfisher" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + F1D16B7EEB454E8FDA08743BB5442971 /* Debug */, + 120DCFBFFC72D0384F9BBDA942FDF748 /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; FA92BF783257A026FB1E05B4B536DD6E /* Build configuration list for PBXNativeTarget "Alamofire" */ = { isa = XCConfigurationList; buildConfigurations = ( diff --git a/Pods/Pods.xcodeproj/xcuserdata/zhou.xcuserdatad/xcschemes/MarqueeLabel-MarqueeLabel.xcscheme b/Pods/Pods.xcodeproj/xcuserdata/zhou.xcuserdatad/xcschemes/MarqueeLabel-MarqueeLabel.xcscheme new file mode 100644 index 0000000..48b3240 --- /dev/null +++ b/Pods/Pods.xcodeproj/xcuserdata/zhou.xcuserdatad/xcschemes/MarqueeLabel-MarqueeLabel.xcscheme @@ -0,0 +1,58 @@ + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Pods/Pods.xcodeproj/xcuserdata/zhou.xcuserdatad/xcschemes/MarqueeLabel.xcscheme b/Pods/Pods.xcodeproj/xcuserdata/zhou.xcuserdatad/xcschemes/MarqueeLabel.xcscheme new file mode 100644 index 0000000..f844bab --- /dev/null +++ b/Pods/Pods.xcodeproj/xcuserdata/zhou.xcuserdatad/xcschemes/MarqueeLabel.xcscheme @@ -0,0 +1,58 @@ + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Pods/Pods.xcodeproj/xcuserdata/zhou.xcuserdatad/xcschemes/xcschememanagement.plist b/Pods/Pods.xcodeproj/xcuserdata/zhou.xcuserdatad/xcschemes/xcschememanagement.plist index 2e6e3f1..1e5b556 100644 --- a/Pods/Pods.xcodeproj/xcuserdata/zhou.xcuserdatad/xcschemes/xcschememanagement.plist +++ b/Pods/Pods.xcodeproj/xcuserdata/zhou.xcuserdatad/xcschemes/xcschememanagement.plist @@ -69,6 +69,16 @@ isShown + MarqueeLabel-MarqueeLabel.xcscheme + + isShown + + + MarqueeLabel.xcscheme + + isShown + + Pods-relax.offline.mp3.music.xcscheme isShown diff --git a/Pods/Target Support Files/MarqueeLabel/MarqueeLabel-Info.plist b/Pods/Target Support Files/MarqueeLabel/MarqueeLabel-Info.plist new file mode 100644 index 0000000..43a0187 --- /dev/null +++ b/Pods/Target Support Files/MarqueeLabel/MarqueeLabel-Info.plist @@ -0,0 +1,26 @@ + + + + + CFBundleDevelopmentRegion + ${PODS_DEVELOPMENT_LANGUAGE} + CFBundleExecutable + ${EXECUTABLE_NAME} + CFBundleIdentifier + ${PRODUCT_BUNDLE_IDENTIFIER} + CFBundleInfoDictionaryVersion + 6.0 + CFBundleName + ${PRODUCT_NAME} + CFBundlePackageType + FMWK + CFBundleShortVersionString + 4.5.0 + CFBundleSignature + ???? + CFBundleVersion + ${CURRENT_PROJECT_VERSION} + NSPrincipalClass + + + diff --git a/Pods/Target Support Files/MarqueeLabel/MarqueeLabel-dummy.m b/Pods/Target Support Files/MarqueeLabel/MarqueeLabel-dummy.m new file mode 100644 index 0000000..6e079ab --- /dev/null +++ b/Pods/Target Support Files/MarqueeLabel/MarqueeLabel-dummy.m @@ -0,0 +1,5 @@ +#import +@interface PodsDummy_MarqueeLabel : NSObject +@end +@implementation PodsDummy_MarqueeLabel +@end diff --git a/Pods/Target Support Files/MarqueeLabel/MarqueeLabel-prefix.pch b/Pods/Target Support Files/MarqueeLabel/MarqueeLabel-prefix.pch new file mode 100644 index 0000000..beb2a24 --- /dev/null +++ b/Pods/Target Support Files/MarqueeLabel/MarqueeLabel-prefix.pch @@ -0,0 +1,12 @@ +#ifdef __OBJC__ +#import +#else +#ifndef FOUNDATION_EXPORT +#if defined(__cplusplus) +#define FOUNDATION_EXPORT extern "C" +#else +#define FOUNDATION_EXPORT extern +#endif +#endif +#endif + diff --git a/Pods/Target Support Files/MarqueeLabel/MarqueeLabel-umbrella.h b/Pods/Target Support Files/MarqueeLabel/MarqueeLabel-umbrella.h new file mode 100644 index 0000000..31487a3 --- /dev/null +++ b/Pods/Target Support Files/MarqueeLabel/MarqueeLabel-umbrella.h @@ -0,0 +1,16 @@ +#ifdef __OBJC__ +#import +#else +#ifndef FOUNDATION_EXPORT +#if defined(__cplusplus) +#define FOUNDATION_EXPORT extern "C" +#else +#define FOUNDATION_EXPORT extern +#endif +#endif +#endif + + +FOUNDATION_EXPORT double MarqueeLabelVersionNumber; +FOUNDATION_EXPORT const unsigned char MarqueeLabelVersionString[]; + diff --git a/Pods/Target Support Files/MarqueeLabel/MarqueeLabel.debug.xcconfig b/Pods/Target Support Files/MarqueeLabel/MarqueeLabel.debug.xcconfig new file mode 100644 index 0000000..d3184e1 --- /dev/null +++ b/Pods/Target Support Files/MarqueeLabel/MarqueeLabel.debug.xcconfig @@ -0,0 +1,15 @@ +CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = NO +CONFIGURATION_BUILD_DIR = ${PODS_CONFIGURATION_BUILD_DIR}/MarqueeLabel +GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 +LIBRARY_SEARCH_PATHS = $(inherited) "${TOOLCHAIN_DIR}/usr/lib/swift/${PLATFORM_NAME}" /usr/lib/swift +OTHER_LDFLAGS = $(inherited) -framework "QuartzCore" -framework "UIKit" +OTHER_SWIFT_FLAGS = $(inherited) -D COCOAPODS +PODS_BUILD_DIR = ${BUILD_DIR} +PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) +PODS_DEVELOPMENT_LANGUAGE = ${DEVELOPMENT_LANGUAGE} +PODS_ROOT = ${SRCROOT} +PODS_TARGET_SRCROOT = ${PODS_ROOT}/MarqueeLabel +PODS_XCFRAMEWORKS_BUILD_DIR = $(PODS_CONFIGURATION_BUILD_DIR)/XCFrameworkIntermediates +PRODUCT_BUNDLE_IDENTIFIER = org.cocoapods.${PRODUCT_NAME:rfc1034identifier} +SKIP_INSTALL = YES +USE_RECURSIVE_SCRIPT_INPUTS_IN_SCRIPT_PHASES = YES diff --git a/Pods/Target Support Files/MarqueeLabel/MarqueeLabel.modulemap b/Pods/Target Support Files/MarqueeLabel/MarqueeLabel.modulemap new file mode 100644 index 0000000..eb4bbc5 --- /dev/null +++ b/Pods/Target Support Files/MarqueeLabel/MarqueeLabel.modulemap @@ -0,0 +1,6 @@ +framework module MarqueeLabel { + umbrella header "MarqueeLabel-umbrella.h" + + export * + module * { export * } +} diff --git a/Pods/Target Support Files/MarqueeLabel/MarqueeLabel.release.xcconfig b/Pods/Target Support Files/MarqueeLabel/MarqueeLabel.release.xcconfig new file mode 100644 index 0000000..d3184e1 --- /dev/null +++ b/Pods/Target Support Files/MarqueeLabel/MarqueeLabel.release.xcconfig @@ -0,0 +1,15 @@ +CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = NO +CONFIGURATION_BUILD_DIR = ${PODS_CONFIGURATION_BUILD_DIR}/MarqueeLabel +GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 +LIBRARY_SEARCH_PATHS = $(inherited) "${TOOLCHAIN_DIR}/usr/lib/swift/${PLATFORM_NAME}" /usr/lib/swift +OTHER_LDFLAGS = $(inherited) -framework "QuartzCore" -framework "UIKit" +OTHER_SWIFT_FLAGS = $(inherited) -D COCOAPODS +PODS_BUILD_DIR = ${BUILD_DIR} +PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) +PODS_DEVELOPMENT_LANGUAGE = ${DEVELOPMENT_LANGUAGE} +PODS_ROOT = ${SRCROOT} +PODS_TARGET_SRCROOT = ${PODS_ROOT}/MarqueeLabel +PODS_XCFRAMEWORKS_BUILD_DIR = $(PODS_CONFIGURATION_BUILD_DIR)/XCFrameworkIntermediates +PRODUCT_BUNDLE_IDENTIFIER = org.cocoapods.${PRODUCT_NAME:rfc1034identifier} +SKIP_INSTALL = YES +USE_RECURSIVE_SCRIPT_INPUTS_IN_SCRIPT_PHASES = YES diff --git a/Pods/Target Support Files/MarqueeLabel/ResourceBundle-MarqueeLabel-MarqueeLabel-Info.plist b/Pods/Target Support Files/MarqueeLabel/ResourceBundle-MarqueeLabel-MarqueeLabel-Info.plist new file mode 100644 index 0000000..b6585bb --- /dev/null +++ b/Pods/Target Support Files/MarqueeLabel/ResourceBundle-MarqueeLabel-MarqueeLabel-Info.plist @@ -0,0 +1,24 @@ + + + + + CFBundleDevelopmentRegion + ${PODS_DEVELOPMENT_LANGUAGE} + CFBundleIdentifier + ${PRODUCT_BUNDLE_IDENTIFIER} + CFBundleInfoDictionaryVersion + 6.0 + CFBundleName + ${PRODUCT_NAME} + CFBundlePackageType + BNDL + CFBundleShortVersionString + 4.5.0 + CFBundleSignature + ???? + CFBundleVersion + 1 + NSPrincipalClass + + + diff --git a/Pods/Target Support Files/Pods-relax.offline.mp3.music/Pods-relax.offline.mp3.music-acknowledgements.markdown b/Pods/Target Support Files/Pods-relax.offline.mp3.music/Pods-relax.offline.mp3.music-acknowledgements.markdown index d4f6b67..5b5c989 100644 --- a/Pods/Target Support Files/Pods-relax.offline.mp3.music/Pods-relax.offline.mp3.music-acknowledgements.markdown +++ b/Pods/Target Support Files/Pods-relax.offline.mp3.music/Pods-relax.offline.mp3.music-acknowledgements.markdown @@ -171,6 +171,23 @@ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. +## MarqueeLabel + +Copyright (c) 2011-2017 Charles Powell + +Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated +documentation files (the "Software"), to deal in the Software without restriction, including without limitation +the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and +to permit persons to whom the Software is furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED +TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL +THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF +CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS +IN THE SOFTWARE. + ## SVProgressHUD MIT License diff --git a/Pods/Target Support Files/Pods-relax.offline.mp3.music/Pods-relax.offline.mp3.music-acknowledgements.plist b/Pods/Target Support Files/Pods-relax.offline.mp3.music/Pods-relax.offline.mp3.music-acknowledgements.plist index c2ae783..e94fee7 100644 --- a/Pods/Target Support Files/Pods-relax.offline.mp3.music/Pods-relax.offline.mp3.music-acknowledgements.plist +++ b/Pods/Target Support Files/Pods-relax.offline.mp3.music/Pods-relax.offline.mp3.music-acknowledgements.plist @@ -224,6 +224,29 @@ THE SOFTWARE. Type PSGroupSpecifier + + FooterText + Copyright (c) 2011-2017 Charles Powell + +Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated +documentation files (the "Software"), to deal in the Software without restriction, including without limitation +the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and +to permit persons to whom the Software is furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED +TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL +THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF +CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS +IN THE SOFTWARE. + License + MIT + Title + MarqueeLabel + Type + PSGroupSpecifier + FooterText MIT License diff --git a/Pods/Target Support Files/Pods-relax.offline.mp3.music/Pods-relax.offline.mp3.music-frameworks-Debug-input-files.xcfilelist b/Pods/Target Support Files/Pods-relax.offline.mp3.music/Pods-relax.offline.mp3.music-frameworks-Debug-input-files.xcfilelist index ea2df73..2526e9e 100644 --- a/Pods/Target Support Files/Pods-relax.offline.mp3.music/Pods-relax.offline.mp3.music-frameworks-Debug-input-files.xcfilelist +++ b/Pods/Target Support Files/Pods-relax.offline.mp3.music/Pods-relax.offline.mp3.music-frameworks-Debug-input-files.xcfilelist @@ -6,6 +6,7 @@ ${BUILT_PRODUCTS_DIR}/JXPagingView/JXPagingView.framework ${BUILT_PRODUCTS_DIR}/JXSegmentedView/JXSegmentedView.framework ${BUILT_PRODUCTS_DIR}/Kingfisher/Kingfisher.framework ${BUILT_PRODUCTS_DIR}/MJRefresh/MJRefresh.framework +${BUILT_PRODUCTS_DIR}/MarqueeLabel/MarqueeLabel.framework ${BUILT_PRODUCTS_DIR}/SVProgressHUD/SVProgressHUD.framework ${BUILT_PRODUCTS_DIR}/SnapKit/SnapKit.framework ${BUILT_PRODUCTS_DIR}/SwiftDate/SwiftDate.framework diff --git a/Pods/Target Support Files/Pods-relax.offline.mp3.music/Pods-relax.offline.mp3.music-frameworks-Debug-output-files.xcfilelist b/Pods/Target Support Files/Pods-relax.offline.mp3.music/Pods-relax.offline.mp3.music-frameworks-Debug-output-files.xcfilelist index fd96c52..5cf12e2 100644 --- a/Pods/Target Support Files/Pods-relax.offline.mp3.music/Pods-relax.offline.mp3.music-frameworks-Debug-output-files.xcfilelist +++ b/Pods/Target Support Files/Pods-relax.offline.mp3.music/Pods-relax.offline.mp3.music-frameworks-Debug-output-files.xcfilelist @@ -5,6 +5,7 @@ ${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/JXPagingView.framework ${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/JXSegmentedView.framework ${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/Kingfisher.framework ${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/MJRefresh.framework +${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/MarqueeLabel.framework ${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/SVProgressHUD.framework ${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/SnapKit.framework ${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/SwiftDate.framework diff --git a/Pods/Target Support Files/Pods-relax.offline.mp3.music/Pods-relax.offline.mp3.music-frameworks-Release-input-files.xcfilelist b/Pods/Target Support Files/Pods-relax.offline.mp3.music/Pods-relax.offline.mp3.music-frameworks-Release-input-files.xcfilelist index ea2df73..2526e9e 100644 --- a/Pods/Target Support Files/Pods-relax.offline.mp3.music/Pods-relax.offline.mp3.music-frameworks-Release-input-files.xcfilelist +++ b/Pods/Target Support Files/Pods-relax.offline.mp3.music/Pods-relax.offline.mp3.music-frameworks-Release-input-files.xcfilelist @@ -6,6 +6,7 @@ ${BUILT_PRODUCTS_DIR}/JXPagingView/JXPagingView.framework ${BUILT_PRODUCTS_DIR}/JXSegmentedView/JXSegmentedView.framework ${BUILT_PRODUCTS_DIR}/Kingfisher/Kingfisher.framework ${BUILT_PRODUCTS_DIR}/MJRefresh/MJRefresh.framework +${BUILT_PRODUCTS_DIR}/MarqueeLabel/MarqueeLabel.framework ${BUILT_PRODUCTS_DIR}/SVProgressHUD/SVProgressHUD.framework ${BUILT_PRODUCTS_DIR}/SnapKit/SnapKit.framework ${BUILT_PRODUCTS_DIR}/SwiftDate/SwiftDate.framework diff --git a/Pods/Target Support Files/Pods-relax.offline.mp3.music/Pods-relax.offline.mp3.music-frameworks-Release-output-files.xcfilelist b/Pods/Target Support Files/Pods-relax.offline.mp3.music/Pods-relax.offline.mp3.music-frameworks-Release-output-files.xcfilelist index fd96c52..5cf12e2 100644 --- a/Pods/Target Support Files/Pods-relax.offline.mp3.music/Pods-relax.offline.mp3.music-frameworks-Release-output-files.xcfilelist +++ b/Pods/Target Support Files/Pods-relax.offline.mp3.music/Pods-relax.offline.mp3.music-frameworks-Release-output-files.xcfilelist @@ -5,6 +5,7 @@ ${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/JXPagingView.framework ${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/JXSegmentedView.framework ${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/Kingfisher.framework ${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/MJRefresh.framework +${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/MarqueeLabel.framework ${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/SVProgressHUD.framework ${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/SnapKit.framework ${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/SwiftDate.framework diff --git a/Pods/Target Support Files/Pods-relax.offline.mp3.music/Pods-relax.offline.mp3.music-frameworks.sh b/Pods/Target Support Files/Pods-relax.offline.mp3.music/Pods-relax.offline.mp3.music-frameworks.sh index afbb74e..17c5c01 100755 --- a/Pods/Target Support Files/Pods-relax.offline.mp3.music/Pods-relax.offline.mp3.music-frameworks.sh +++ b/Pods/Target Support Files/Pods-relax.offline.mp3.music/Pods-relax.offline.mp3.music-frameworks.sh @@ -183,6 +183,7 @@ if [[ "$CONFIGURATION" == "Debug" ]]; then install_framework "${BUILT_PRODUCTS_DIR}/JXSegmentedView/JXSegmentedView.framework" install_framework "${BUILT_PRODUCTS_DIR}/Kingfisher/Kingfisher.framework" install_framework "${BUILT_PRODUCTS_DIR}/MJRefresh/MJRefresh.framework" + install_framework "${BUILT_PRODUCTS_DIR}/MarqueeLabel/MarqueeLabel.framework" install_framework "${BUILT_PRODUCTS_DIR}/SVProgressHUD/SVProgressHUD.framework" install_framework "${BUILT_PRODUCTS_DIR}/SnapKit/SnapKit.framework" install_framework "${BUILT_PRODUCTS_DIR}/SwiftDate/SwiftDate.framework" @@ -196,6 +197,7 @@ if [[ "$CONFIGURATION" == "Release" ]]; then install_framework "${BUILT_PRODUCTS_DIR}/JXSegmentedView/JXSegmentedView.framework" install_framework "${BUILT_PRODUCTS_DIR}/Kingfisher/Kingfisher.framework" install_framework "${BUILT_PRODUCTS_DIR}/MJRefresh/MJRefresh.framework" + install_framework "${BUILT_PRODUCTS_DIR}/MarqueeLabel/MarqueeLabel.framework" install_framework "${BUILT_PRODUCTS_DIR}/SVProgressHUD/SVProgressHUD.framework" install_framework "${BUILT_PRODUCTS_DIR}/SnapKit/SnapKit.framework" install_framework "${BUILT_PRODUCTS_DIR}/SwiftDate/SwiftDate.framework" diff --git a/Pods/Target Support Files/Pods-relax.offline.mp3.music/Pods-relax.offline.mp3.music.debug.xcconfig b/Pods/Target Support Files/Pods-relax.offline.mp3.music/Pods-relax.offline.mp3.music.debug.xcconfig index a782f20..d9eac1f 100644 --- a/Pods/Target Support Files/Pods-relax.offline.mp3.music/Pods-relax.offline.mp3.music.debug.xcconfig +++ b/Pods/Target Support Files/Pods-relax.offline.mp3.music/Pods-relax.offline.mp3.music.debug.xcconfig @@ -1,11 +1,11 @@ ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = NO -FRAMEWORK_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/Alamofire" "${PODS_CONFIGURATION_BUILD_DIR}/DownloadButton" "${PODS_CONFIGURATION_BUILD_DIR}/IQKeyboardManagerSwift" "${PODS_CONFIGURATION_BUILD_DIR}/JXPagingView" "${PODS_CONFIGURATION_BUILD_DIR}/JXSegmentedView" "${PODS_CONFIGURATION_BUILD_DIR}/Kingfisher" "${PODS_CONFIGURATION_BUILD_DIR}/MJRefresh" "${PODS_CONFIGURATION_BUILD_DIR}/SVProgressHUD" "${PODS_CONFIGURATION_BUILD_DIR}/SnapKit" "${PODS_CONFIGURATION_BUILD_DIR}/SwiftDate" "${PODS_CONFIGURATION_BUILD_DIR}/Tiercel" +FRAMEWORK_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/Alamofire" "${PODS_CONFIGURATION_BUILD_DIR}/DownloadButton" "${PODS_CONFIGURATION_BUILD_DIR}/IQKeyboardManagerSwift" "${PODS_CONFIGURATION_BUILD_DIR}/JXPagingView" "${PODS_CONFIGURATION_BUILD_DIR}/JXSegmentedView" "${PODS_CONFIGURATION_BUILD_DIR}/Kingfisher" "${PODS_CONFIGURATION_BUILD_DIR}/MJRefresh" "${PODS_CONFIGURATION_BUILD_DIR}/MarqueeLabel" "${PODS_CONFIGURATION_BUILD_DIR}/SVProgressHUD" "${PODS_CONFIGURATION_BUILD_DIR}/SnapKit" "${PODS_CONFIGURATION_BUILD_DIR}/SwiftDate" "${PODS_CONFIGURATION_BUILD_DIR}/Tiercel" GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 -HEADER_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/Alamofire/Alamofire.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/DownloadButton/DownloadButton.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/IQKeyboardManagerSwift/IQKeyboardManagerSwift.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/JXPagingView/JXPagingView.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/JXSegmentedView/JXSegmentedView.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/Kingfisher/Kingfisher.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/MJRefresh/MJRefresh.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/SVProgressHUD/SVProgressHUD.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/SnapKit/SnapKit.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/SwiftDate/SwiftDate.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/Tiercel/Tiercel.framework/Headers" +HEADER_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/Alamofire/Alamofire.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/DownloadButton/DownloadButton.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/IQKeyboardManagerSwift/IQKeyboardManagerSwift.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/JXPagingView/JXPagingView.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/JXSegmentedView/JXSegmentedView.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/Kingfisher/Kingfisher.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/MJRefresh/MJRefresh.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/MarqueeLabel/MarqueeLabel.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/SVProgressHUD/SVProgressHUD.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/SnapKit/SnapKit.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/SwiftDate/SwiftDate.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/Tiercel/Tiercel.framework/Headers" LD_RUNPATH_SEARCH_PATHS = $(inherited) /usr/lib/swift '@executable_path/Frameworks' '@loader_path/Frameworks' LIBRARY_SEARCH_PATHS = $(inherited) "${TOOLCHAIN_DIR}/usr/lib/swift/${PLATFORM_NAME}" /usr/lib/swift $(SDKROOT)/usr/lib/swift -OTHER_LDFLAGS = $(inherited) -l"swiftCoreGraphics" -framework "Accelerate" -framework "Alamofire" -framework "CFNetwork" -framework "CoreGraphics" -framework "DownloadButton" -framework "Foundation" -framework "IQKeyboardManagerSwift" -framework "JXPagingView" -framework "JXSegmentedView" -framework "Kingfisher" -framework "MJRefresh" -framework "QuartzCore" -framework "SVProgressHUD" -framework "SnapKit" -framework "SwiftDate" -framework "Tiercel" -framework "UIKit" -weak_framework "Combine" -weak_framework "SwiftUI" +OTHER_LDFLAGS = $(inherited) -l"swiftCoreGraphics" -framework "Accelerate" -framework "Alamofire" -framework "CFNetwork" -framework "CoreGraphics" -framework "DownloadButton" -framework "Foundation" -framework "IQKeyboardManagerSwift" -framework "JXPagingView" -framework "JXSegmentedView" -framework "Kingfisher" -framework "MJRefresh" -framework "MarqueeLabel" -framework "QuartzCore" -framework "SVProgressHUD" -framework "SnapKit" -framework "SwiftDate" -framework "Tiercel" -framework "UIKit" -weak_framework "Combine" -weak_framework "SwiftUI" OTHER_SWIFT_FLAGS = $(inherited) -D COCOAPODS PODS_BUILD_DIR = ${BUILD_DIR} PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) diff --git a/Pods/Target Support Files/Pods-relax.offline.mp3.music/Pods-relax.offline.mp3.music.release.xcconfig b/Pods/Target Support Files/Pods-relax.offline.mp3.music/Pods-relax.offline.mp3.music.release.xcconfig index a782f20..d9eac1f 100644 --- a/Pods/Target Support Files/Pods-relax.offline.mp3.music/Pods-relax.offline.mp3.music.release.xcconfig +++ b/Pods/Target Support Files/Pods-relax.offline.mp3.music/Pods-relax.offline.mp3.music.release.xcconfig @@ -1,11 +1,11 @@ ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = NO -FRAMEWORK_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/Alamofire" "${PODS_CONFIGURATION_BUILD_DIR}/DownloadButton" "${PODS_CONFIGURATION_BUILD_DIR}/IQKeyboardManagerSwift" "${PODS_CONFIGURATION_BUILD_DIR}/JXPagingView" "${PODS_CONFIGURATION_BUILD_DIR}/JXSegmentedView" "${PODS_CONFIGURATION_BUILD_DIR}/Kingfisher" "${PODS_CONFIGURATION_BUILD_DIR}/MJRefresh" "${PODS_CONFIGURATION_BUILD_DIR}/SVProgressHUD" "${PODS_CONFIGURATION_BUILD_DIR}/SnapKit" "${PODS_CONFIGURATION_BUILD_DIR}/SwiftDate" "${PODS_CONFIGURATION_BUILD_DIR}/Tiercel" +FRAMEWORK_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/Alamofire" "${PODS_CONFIGURATION_BUILD_DIR}/DownloadButton" "${PODS_CONFIGURATION_BUILD_DIR}/IQKeyboardManagerSwift" "${PODS_CONFIGURATION_BUILD_DIR}/JXPagingView" "${PODS_CONFIGURATION_BUILD_DIR}/JXSegmentedView" "${PODS_CONFIGURATION_BUILD_DIR}/Kingfisher" "${PODS_CONFIGURATION_BUILD_DIR}/MJRefresh" "${PODS_CONFIGURATION_BUILD_DIR}/MarqueeLabel" "${PODS_CONFIGURATION_BUILD_DIR}/SVProgressHUD" "${PODS_CONFIGURATION_BUILD_DIR}/SnapKit" "${PODS_CONFIGURATION_BUILD_DIR}/SwiftDate" "${PODS_CONFIGURATION_BUILD_DIR}/Tiercel" GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 -HEADER_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/Alamofire/Alamofire.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/DownloadButton/DownloadButton.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/IQKeyboardManagerSwift/IQKeyboardManagerSwift.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/JXPagingView/JXPagingView.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/JXSegmentedView/JXSegmentedView.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/Kingfisher/Kingfisher.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/MJRefresh/MJRefresh.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/SVProgressHUD/SVProgressHUD.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/SnapKit/SnapKit.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/SwiftDate/SwiftDate.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/Tiercel/Tiercel.framework/Headers" +HEADER_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/Alamofire/Alamofire.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/DownloadButton/DownloadButton.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/IQKeyboardManagerSwift/IQKeyboardManagerSwift.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/JXPagingView/JXPagingView.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/JXSegmentedView/JXSegmentedView.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/Kingfisher/Kingfisher.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/MJRefresh/MJRefresh.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/MarqueeLabel/MarqueeLabel.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/SVProgressHUD/SVProgressHUD.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/SnapKit/SnapKit.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/SwiftDate/SwiftDate.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/Tiercel/Tiercel.framework/Headers" LD_RUNPATH_SEARCH_PATHS = $(inherited) /usr/lib/swift '@executable_path/Frameworks' '@loader_path/Frameworks' LIBRARY_SEARCH_PATHS = $(inherited) "${TOOLCHAIN_DIR}/usr/lib/swift/${PLATFORM_NAME}" /usr/lib/swift $(SDKROOT)/usr/lib/swift -OTHER_LDFLAGS = $(inherited) -l"swiftCoreGraphics" -framework "Accelerate" -framework "Alamofire" -framework "CFNetwork" -framework "CoreGraphics" -framework "DownloadButton" -framework "Foundation" -framework "IQKeyboardManagerSwift" -framework "JXPagingView" -framework "JXSegmentedView" -framework "Kingfisher" -framework "MJRefresh" -framework "QuartzCore" -framework "SVProgressHUD" -framework "SnapKit" -framework "SwiftDate" -framework "Tiercel" -framework "UIKit" -weak_framework "Combine" -weak_framework "SwiftUI" +OTHER_LDFLAGS = $(inherited) -l"swiftCoreGraphics" -framework "Accelerate" -framework "Alamofire" -framework "CFNetwork" -framework "CoreGraphics" -framework "DownloadButton" -framework "Foundation" -framework "IQKeyboardManagerSwift" -framework "JXPagingView" -framework "JXSegmentedView" -framework "Kingfisher" -framework "MJRefresh" -framework "MarqueeLabel" -framework "QuartzCore" -framework "SVProgressHUD" -framework "SnapKit" -framework "SwiftDate" -framework "Tiercel" -framework "UIKit" -weak_framework "Combine" -weak_framework "SwiftUI" OTHER_SWIFT_FLAGS = $(inherited) -D COCOAPODS PODS_BUILD_DIR = ${BUILD_DIR} PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) diff --git a/relax.offline.mp3.music.xcodeproj/project.pbxproj b/relax.offline.mp3.music.xcodeproj/project.pbxproj index e8d60eb..a318297 100644 --- a/relax.offline.mp3.music.xcodeproj/project.pbxproj +++ b/relax.offline.mp3.music.xcodeproj/project.pbxproj @@ -235,6 +235,7 @@ CBC81FBA2C3694990028143B /* MPPositive_HomeSinglesTableViewCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = CBC81FB92C3694990028143B /* MPPositive_HomeSinglesTableViewCell.swift */; }; CBC81FBC2C3696230028143B /* MPPositive_HomeSingleCollectionViewCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = CBC81FBB2C3696230028143B /* MPPositive_HomeSingleCollectionViewCell.swift */; }; CBD4570D2C2EC38400CE766D /* AppTrackingTransparency.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = CBD4570C2C2EC38400CE766D /* AppTrackingTransparency.framework */; }; + CBD5CAFD2C3BE9A90001E315 /* MP_MarQueeLabel.swift in Sources */ = {isa = PBXBuildFile; fileRef = CBD5CAFC2C3BE9A90001E315 /* MP_MarQueeLabel.swift */; }; CBDAC60E2C2BE1B6008B8D34 /* MPPositive_ChooseNewPlayListTableViewCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = CBDAC60D2C2BE1B6008B8D34 /* MPPositive_ChooseNewPlayListTableViewCell.swift */; }; CBF3AEDA2C255B1200947AFC /* MPPositive_PlayListsShowTypeView.swift in Sources */ = {isa = PBXBuildFile; fileRef = CBF3AED92C255B1200947AFC /* MPPositive_PlayListsShowTypeView.swift */; }; /* End PBXBuildFile section */ @@ -467,6 +468,7 @@ CBC81FB92C3694990028143B /* MPPositive_HomeSinglesTableViewCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MPPositive_HomeSinglesTableViewCell.swift; sourceTree = ""; }; CBC81FBB2C3696230028143B /* MPPositive_HomeSingleCollectionViewCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MPPositive_HomeSingleCollectionViewCell.swift; sourceTree = ""; }; CBD4570C2C2EC38400CE766D /* AppTrackingTransparency.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AppTrackingTransparency.framework; path = System/Library/Frameworks/AppTrackingTransparency.framework; sourceTree = SDKROOT; }; + CBD5CAFC2C3BE9A90001E315 /* MP_MarQueeLabel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MP_MarQueeLabel.swift; sourceTree = ""; }; CBDAC60D2C2BE1B6008B8D34 /* MPPositive_ChooseNewPlayListTableViewCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MPPositive_ChooseNewPlayListTableViewCell.swift; sourceTree = ""; }; CBF3AED92C255B1200947AFC /* MPPositive_PlayListsShowTypeView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MPPositive_PlayListsShowTypeView.swift; sourceTree = ""; }; EE70E1FE424F9A64CCD389DD /* Pods-relax.offline.mp3.music.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-relax.offline.mp3.music.debug.xcconfig"; path = "Target Support Files/Pods-relax.offline.mp3.music/Pods-relax.offline.mp3.music.debug.xcconfig"; sourceTree = ""; }; @@ -656,6 +658,7 @@ CBAFCA262C0A10500054500E /* MP_LocationManager.swift */, CBAFCA292C0A10500054500E /* MP_PlayerSlider.swift */, CBAFCA2A2C0A10500054500E /* MP_WebWork.swift */, + CBD5CAFC2C3BE9A90001E315 /* MP_MarQueeLabel.swift */, CBAFCA2B2C0A10500054500E /* MPPositive_Debouncer.swift */, CBAFCA2C2C0A10500054500E /* MPSideA_MediaCenterManager.swift */, CBAFCA2D2C0A10500054500E /* MPSideA_VolumeManager.swift */, @@ -1346,6 +1349,7 @@ CBAFCB722C0A10500054500E /* MPPositive_SearchResultTypeShowView.swift in Sources */, CBAFCB872C0A10500054500E /* MPSideA_PrivacyViewController.swift in Sources */, CBAFCB2E2C0A10500054500E /* MPPositive_ArtistViewModel.swift in Sources */, + CBD5CAFD2C3BE9A90001E315 /* MP_MarQueeLabel.swift in Sources */, CBAFCB652C0A10500054500E /* MPPositive_HomeListThirdCollectionViewCell.swift in Sources */, CBAFCB472C0A10500054500E /* MPPositive_LoveArtistsViewController.swift in Sources */, CBAFCAF62C0A10500054500E /* InstanceFromNib.swift in Sources */, @@ -1671,9 +1675,9 @@ ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor; CODE_SIGN_IDENTITY = "Apple Development"; CODE_SIGN_STYLE = Automatic; - CURRENT_PROJECT_VERSION = 1.1.0.1; + CURRENT_PROJECT_VERSION = 1.1.1.1; DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; - DEVELOPMENT_TEAM = 8DQD6BV6H9; + DEVELOPMENT_TEAM = T93S37G27F; GENERATE_INFOPLIST_FILE = YES; INFOPLIST_FILE = relax.offline.mp3.music/Info.plist; INFOPLIST_KEY_CFBundleDisplayName = Musiclax; @@ -1691,7 +1695,7 @@ "$(inherited)", "@executable_path/Frameworks", ); - MARKETING_VERSION = 1.1.0; + MARKETING_VERSION = 1.1.1; PRODUCT_BUNDLE_IDENTIFIER = relax.offline.mp3.music; PRODUCT_NAME = "$(TARGET_NAME)"; PROVISIONING_PROFILE_SPECIFIER = ""; @@ -1714,9 +1718,9 @@ ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor; CODE_SIGN_IDENTITY = "Apple Development"; CODE_SIGN_STYLE = Automatic; - CURRENT_PROJECT_VERSION = 1.1.0.1; + CURRENT_PROJECT_VERSION = 1.1.1.1; DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; - DEVELOPMENT_TEAM = 8DQD6BV6H9; + DEVELOPMENT_TEAM = T93S37G27F; GENERATE_INFOPLIST_FILE = YES; INFOPLIST_FILE = relax.offline.mp3.music/Info.plist; INFOPLIST_KEY_CFBundleDisplayName = Musiclax; @@ -1734,7 +1738,7 @@ "$(inherited)", "@executable_path/Frameworks", ); - MARKETING_VERSION = 1.1.0; + MARKETING_VERSION = 1.1.1; PRODUCT_BUNDLE_IDENTIFIER = relax.offline.mp3.music; PRODUCT_NAME = "$(TARGET_NAME)"; PROVISIONING_PROFILE_SPECIFIER = ""; diff --git a/relax.offline.mp3.music.xcworkspace/xcshareddata/swiftpm/Package.resolved b/relax.offline.mp3.music.xcworkspace/xcshareddata/swiftpm/Package.resolved index 7e8d6ed..10a552e 100644 --- a/relax.offline.mp3.music.xcworkspace/xcshareddata/swiftpm/Package.resolved +++ b/relax.offline.mp3.music.xcworkspace/xcshareddata/swiftpm/Package.resolved @@ -1,5 +1,5 @@ { - "originHash" : "c713d6dac9298f5a58527d975ef56b86c962e56b989f7f618c7fd350cd12ac74", + "originHash" : "d444ada832b2e07cbfed67fc787e76d7499100a1c75497df596832a2bef88ae9", "pins" : [ { "identity" : "abseil-cpp-binary", diff --git a/relax.offline.mp3.music/AppDelegate.swift b/relax.offline.mp3.music/AppDelegate.swift index 959e423..1367a51 100644 --- a/relax.offline.mp3.music/AppDelegate.swift +++ b/relax.offline.mp3.music/AppDelegate.swift @@ -87,43 +87,43 @@ class AppDelegate: UIResponder, UIApplicationDelegate { if UserDefaults.standard.string(forKey: "OpenICEID") == nil { print("第一次启动,添加广告ID") //存入默认开屏冷启动广告ID - UserDefaults.standard.set("ca-app-pub-1371732277241593/1926543650", forKey: "OpenICEID") - } + UserDefaults.standard.set("ca-app-pub-3940256099942544/5575463023", forKey: "OpenICEID") + } if UserDefaults.standard.string(forKey: "OpenHOSTID") == nil { //存入默认开屏热启动广告ID - UserDefaults.standard.set("ca-app-pub-1371732277241593/3299335073", forKey: "OpenHOSTID") + UserDefaults.standard.set("ca-app-pub-3940256099942544/5575463023", forKey: "OpenHOSTID") } if UserDefaults.standard.string(forKey: "SearchINSERTID") == nil { //存入默认搜索插页广告ID - UserDefaults.standard.set("ca-app-pub-1371732277241593/8622500865", forKey: "SearchINSERTID") + UserDefaults.standard.set("ca-app-pub-3940256099942544/4411468910", forKey: "SearchINSERTID") } if UserDefaults.standard.string(forKey: "SearchNATIVEID") == nil { //存入默认搜索原生广告ID - UserDefaults.standard.set("ca-app-pub-1371732277241593/5674216970", forKey: "SearchNATIVEID") - } + UserDefaults.standard.set("ca-app-pub-3940256099942544/3986624511", forKey: "SearchNATIVEID") + } if UserDefaults.standard.string(forKey: "PlayerINSERTID") == nil { //存入默认播放插页广告ID - UserDefaults.standard.set("ca-app-pub-1371732277241593/4182802216", forKey: "PlayerINSERTID") + UserDefaults.standard.set("ca-app-pub-3940256099942544/4411468910", forKey: "PlayerINSERTID") } if UserDefaults.standard.string(forKey: "SwitchINSERTID") == nil { //存入默认切歌插页广告ID - UserDefaults.standard.set("ca-app-pub-1371732277241593/8439981117", forKey: "SwitchINSERTID") - } + UserDefaults.standard.set("ca-app-pub-3940256099942544/4411468910", forKey: "SwitchINSERTID") + } if UserDefaults.standard.string(forKey: "LoadINSERTID") == nil { //存入默认下载插页广告ID - UserDefaults.standard.set("ca-app-pub-1371732277241593/3107763383", forKey: "LoadINSERTID") + UserDefaults.standard.set("ca-app-pub-3940256099942544/4411468910", forKey: "LoadINSERTID") } if UserDefaults.standard.string(forKey: "LibraryINSERTID") == nil { //存入默认曲库插页ID - UserDefaults.standard.set("ca-app-pub-1371732277241593/5298812459", forKey: "LibraryINSERTID") - } + UserDefaults.standard.set("ca-app-pub-3940256099942544/4411468910", forKey: "LibraryINSERTID") + } if UserDefaults.standard.string(forKey: "LibraryNATIVEID") == nil { //存入默认曲库原生ID - UserDefaults.standard.set("ca-app-pub-1371732277241593/4683255855", forKey: "LibraryNATIVEID") + UserDefaults.standard.set("ca-app-pub-3940256099942544/3986624511", forKey: "LibraryNATIVEID") } if UserDefaults.standard.string(forKey: "GlobalINSERTID") == nil { //存入默认全局备用插页ID - UserDefaults.standard.set("ca-app-pub-1371732277241593/9449223728", forKey: "GlobalINSERTID") + UserDefaults.standard.set("ca-app-pub-3940256099942544/4411468910", forKey: "GlobalINSERTID") } if UserDefaults.standard.string(forKey: "ClientVersion") == nil { UserDefaults.standard.set("1.20240618.01.00", forKey: "ClientVersion") diff --git a/relax.offline.mp3.music/Info.plist b/relax.offline.mp3.music/Info.plist index a0bfcd8..02ad002 100644 --- a/relax.offline.mp3.music/Info.plist +++ b/relax.offline.mp3.music/Info.plist @@ -12,7 +12,7 @@ fetch GADApplicationIdentifier - ca-app-pub-1371732277241593~3881310073 + ca-app-pub-3940256099942544~1458002511 SKAdNetworkItems diff --git a/relax.offline.mp3.music/MP/Common/Macro(宏定义与全局量)/Macro.swift b/relax.offline.mp3.music/MP/Common/Macro(宏定义与全局量)/Macro.swift index 992cac8..4ec1162 100644 --- a/relax.offline.mp3.music/MP/Common/Macro(宏定义与全局量)/Macro.swift +++ b/relax.offline.mp3.music/MP/Common/Macro(宏定义与全局量)/Macro.swift @@ -10,6 +10,7 @@ import AVFoundation import AppTrackingTransparency import AdSupport import MessageUI +import MarqueeLabel @_exported import JXSegmentedView @_exported import JXPagingView //给JXPagingListContainerView添加extension,表示遵从JXSegmentedViewListContainer的协议 @@ -151,6 +152,19 @@ func createLabel(_ text:String? = nil, font:UIFont, textColor:UIColor, textAlign label.numberOfLines = lines return label } +///创建一个支持跑马灯的label +func createMarQueeLabel(_ text:String? = nil, font:UIFont, textColor:UIColor) -> MarqueeLabel { + let label = MarqueeLabel(frame: .init(x: 0, y: 0, width: screen_Width, height: 30*width), duration: 10, fadeLength: 10) + label.animationCurve = .linear + label.text = text ?? "text" + label.font = font + label.textColor = textColor + label.numberOfLines = 1 + label.type = .continuous + label.restartLabel() + return label +} + ///根据播放器状态将按钮的图片进行切换 func switchPlayTypeBtnIcon(_ btn:UIButton) { switch MP_PlayerManager.shared.getPlayType() { diff --git a/relax.offline.mp3.music/MP/Common/Tool(工具封装)/MPPositive_Debouncer.swift b/relax.offline.mp3.music/MP/Common/Tool(工具封装)/MPPositive_Debouncer.swift index f5ce49e..507c3a7 100644 --- a/relax.offline.mp3.music/MP/Common/Tool(工具封装)/MPPositive_Debouncer.swift +++ b/relax.offline.mp3.music/MP/Common/Tool(工具封装)/MPPositive_Debouncer.swift @@ -11,20 +11,17 @@ class MPPositive_Debouncer: NSObject { static let shared = MPPositive_Debouncer() //计时器 private var timer: Timer? - //计时值 - private var delay: TimeInterval - private override init() { - delay = 0.1 super.init() } deinit { timer?.invalidate() timer = nil } - func call(_ action:@escaping (() -> Void)) { + func call(_ delay:TimeInterval = 0.15, action:@escaping (() -> Void)) { // 取消之前的延迟调用 timer?.invalidate() + timer = nil // 设置新的延迟调用 timer = Timer.scheduledTimer(withTimeInterval: delay, repeats: false) { _ in action() diff --git a/relax.offline.mp3.music/MP/Common/Tool(工具封装)/MP_AdMobManager.swift b/relax.offline.mp3.music/MP/Common/Tool(工具封装)/MP_AdMobManager.swift index 1076db1..7b2ffef 100644 --- a/relax.offline.mp3.music/MP/Common/Tool(工具封装)/MP_AdMobManager.swift +++ b/relax.offline.mp3.music/MP/Common/Tool(工具封装)/MP_AdMobManager.swift @@ -14,7 +14,7 @@ class MP_AdMobManager: NSObject, GADFullScreenContentDelegate, GADNativeAdLoader static let shared = MP_AdMobManager() private let sharedInstance = GADMobileAds.sharedInstance() ///广告总开关 - private var openAdStatus:Bool = true + private var openAdStatus:Bool = false ///广告过期时间(50分钟) private let expirationTime:TimeInterval = 3000 diff --git a/relax.offline.mp3.music/MP/Common/Tool(工具封装)/MP_AnalyticsManager.swift b/relax.offline.mp3.music/MP/Common/Tool(工具封装)/MP_AnalyticsManager.swift index 3649eb2..3b33bde 100644 --- a/relax.offline.mp3.music/MP/Common/Tool(工具封装)/MP_AnalyticsManager.swift +++ b/relax.offline.mp3.music/MP/Common/Tool(工具封装)/MP_AnalyticsManager.swift @@ -114,14 +114,14 @@ class MP_AnalyticsManager: NSObject { print("更新了插页广告时长间隔") } //更新广告ID设置 - if let content = self.remoteConfig.configValue(forKey: "adMobIDs").jsonValue as? [String:String] { - //对所有广告ID进行更新 - for (key, value) in content { - UserDefaults.standard.setValue(value, forKey: key) - } - print("更新了所有广告ID") - MP_AdMobManager.shared.reloadAdMobIDs() - } +// if let content = self.remoteConfig.configValue(forKey: "adMobIDs").jsonValue as? [String:String] { +// //对所有广告ID进行更新 +// for (key, value) in content { +// UserDefaults.standard.setValue(value, forKey: key) +// } +// print("更新了所有广告ID") +// MP_AdMobManager.shared.reloadAdMobIDs() +// } //更新版本数据设置 if let versionData = self.remoteConfig.configValue(forKey: "dataVersion").jsonValue as? [String:String] { //对数据进行更新 diff --git a/relax.offline.mp3.music/MP/Common/Tool(工具封装)/MP_DownloadManager.swift b/relax.offline.mp3.music/MP/Common/Tool(工具封装)/MP_DownloadManager.swift index 227c3ca..e633e0d 100644 --- a/relax.offline.mp3.music/MP/Common/Tool(工具封装)/MP_DownloadManager.swift +++ b/relax.offline.mp3.music/MP/Common/Tool(工具封装)/MP_DownloadManager.swift @@ -76,7 +76,7 @@ class MP_DownloadManager: NSObject { //根据歌曲信息获得下载链接,并创建下载任务(允许压缩下载) guard let url = URL(string: song.resourceUrls?.first ?? ""), let videoId = song.videoId else { //获取链接失败 - MP_HUD.error("Download failed, please try again later!", delay: 2.0, completion: nil) + MP_HUD.error("Source details not available yet, please try again later!", delay: 2.0, completion: nil) //失败事件埋点 MP_AnalyticsManager.shared.player_b_downloadfailure_errorAction(song.videoId ?? "", videoname: song.title ?? "", artistname: song.shortBylineText ?? "", error: "Failed to create download link") return @@ -223,7 +223,7 @@ class MP_DownloadManager: NSObject { //下载失败 guard let self = self else {return} //确定任务报错是否存在 - if let error = task.error { + if let error = task.error{ //任务报错存在,处理完成状态回调 NotificationCenter.notificationKey.post(notificationName: .dowload_end_source, object: ["videoId":nextVideoId]) //发布报错埋点 @@ -235,7 +235,12 @@ class MP_DownloadManager: NSObject { downloadURLs[nextVideoId] = nil progressStorage[nextVideoId] = nil songHandlers[nextVideoId] = nil - MP_HUD.text("An error occurred while downloading. Please download again.", delay: 1.5, completion: nil) + switch error.localizedDescription { + case "The operation couldn’t be completed. No space left on device": + MP_HUD.text("Insufficient storage space, download failed", delay: 1.5, completion: nil) + default: + MP_HUD.text("An error occurred while downloading. Please download again.", delay: 1.5, completion: nil) + } session.cancel(task) { _ in self.downloadTasks[nextVideoId] = nil print("\(self.songHandlers[nextVideoId]?.title ?? "")下载任务失败,失败原因:\(error)") diff --git a/relax.offline.mp3.music/MP/Common/Tool(工具封装)/MP_MarQueeLabel.swift b/relax.offline.mp3.music/MP/Common/Tool(工具封装)/MP_MarQueeLabel.swift new file mode 100644 index 0000000..0b047a3 --- /dev/null +++ b/relax.offline.mp3.music/MP/Common/Tool(工具封装)/MP_MarQueeLabel.swift @@ -0,0 +1,10 @@ +// +// MP_MarQueeLabel.swift +// relax.offline.mp3.music +// +// Created by Mr.Zhou on 2024/7/8. +// + +import UIKit +import MarqueeLabel + diff --git a/relax.offline.mp3.music/MP/Common/Tool(工具封装)/MP_NetWorkManager.swift b/relax.offline.mp3.music/MP/Common/Tool(工具封装)/MP_NetWorkManager.swift index 8b34bcb..31e21a3 100644 --- a/relax.offline.mp3.music/MP/Common/Tool(工具封装)/MP_NetWorkManager.swift +++ b/relax.offline.mp3.music/MP/Common/Tool(工具封装)/MP_NetWorkManager.swift @@ -68,11 +68,11 @@ class MP_NetWorkManager: NSObject { private var playerVersion:String! ///禁止接入IP信息组 private let banIPs:[String] = [ - "CN", - "HK", - "TW", - "JP", - "KR" +// "CN", +// "HK", +// "TW", +// "JP", +// "KR" ] ///允许访问的区域Code(对部分内容进行塞选) private let codes:[String] = [ @@ -1222,18 +1222,37 @@ extension MP_NetWorkManager { } else if let underlyingError = error?.underlyingError as? URLError { switch underlyingError.code { case .notConnectedToInternet: - print("网络连接不可用,请检查你的网络设置。") + print("网络连接不可用,请检查你的网络设置") MP_AnalyticsManager.shared.home_b_module_showfailure_errorAction("Network Unavailable, Error:\(underlyingError.localizedDescription)") case .timedOut: - print("请求超时,请稍后重试。") + print("请求超时,即将重启请求") MP_AnalyticsManager.shared.home_b_module_showfailure_errorAction("Timed Out, Error:\(underlyingError.localizedDescription)") MPPositive_BrowseLoadViewModel.shared.reloadBrowseLists() return + case .networkConnectionLost: + print("网络权限开启,但网络本身不可用,请检查你的网络设置") + MP_AnalyticsManager.shared.home_b_module_showfailure_errorAction("International comics not yet launched, Error:\(underlyingError.localizedDescription)") + case .cannotLoadFromNetwork: + print("请求证书失效,即将重启请求") + MP_AnalyticsManager.shared.home_b_module_showfailure_errorAction("SSL Error, Error:\(underlyingError.localizedDescription)") + MPPositive_BrowseLoadViewModel.shared.reloadBrowseLists() + return + case .cannotConnectToHost: + print("服务器响应失败,请待会儿调用") + MP_AnalyticsManager.shared.home_b_module_showfailure_errorAction("Server not present, Error:\(underlyingError.localizedDescription)") + case .badURL: + print("链接失败,即将重启请求") + MP_AnalyticsManager.shared.home_b_module_showfailure_errorAction("Bad URL, Error:\(underlyingError.localizedDescription)") + MPPositive_BrowseLoadViewModel.shared.reloadBrowseLists() + return + case .cannotDecodeContentData: + print("解析响应体失败,即将重启请求") + MP_AnalyticsManager.shared.home_b_module_showfailure_errorAction("Can't Decode Content Data, Error:\(underlyingError.localizedDescription)") + MPPositive_BrowseLoadViewModel.shared.reloadBrowseLists() + return default: print("NSURL 错误,错误码: \(underlyingError.code.rawValue)。") MP_AnalyticsManager.shared.home_b_module_showfailure_errorAction("Request Error, Error:\(underlyingError.localizedDescription)") - MPPositive_BrowseLoadViewModel.shared.reloadBrowseLists() - return } } else { print("未知错误: \(error?.localizedDescription ?? "")") diff --git a/relax.offline.mp3.music/MP/Common/Tool(工具封装)/MP_PlayerManager.swift b/relax.offline.mp3.music/MP/Common/Tool(工具封装)/MP_PlayerManager.swift index a70a281..88c4d60 100644 --- a/relax.offline.mp3.music/MP/Common/Tool(工具封装)/MP_PlayerManager.swift +++ b/relax.offline.mp3.music/MP/Common/Tool(工具封装)/MP_PlayerManager.swift @@ -272,7 +272,7 @@ class MP_PlayerManager:NSObject{ /// - runAction: 播放途中需要执行的事件 /// - endAction: 结束播放时需要执行的事件 func play(startAction:MP_PlayTimerStartAction? = nil) { - guard loadPlayer != nil, loadPlayer.currentVideo != nil else { + guard loadPlayer != nil, loadPlayer?.currentVideo != nil else { //当两项数据皆为空时,播放器无法播放 print("Player No Data") return @@ -298,7 +298,7 @@ class MP_PlayerManager:NSObject{ //启动计时器 startTimer() //对当前播放PlayerItem设置监听状态 - if loadPlayer.currentVideo?.isKVO == false { + if loadPlayer?.currentVideo?.isKVO == false { //准备状态 statusObservation?.invalidate() statusObservation = loadPlayer?.currentVideo?.resourcePlayerItem?.observe(\.status, options: [.old,.new], changeHandler: { [weak self] item, change in @@ -310,13 +310,13 @@ class MP_PlayerManager:NSObject{ print("当前音乐-\(loadPlayer?.currentVideo?.title ?? "") 已经准备好播放") } }else { - print("当前音乐-\(loadPlayer.currentVideo?.title ?? "") 未做好准备播放,失败原因是\(loadPlayer.currentVideo?.resourcePlayerItem.error?.localizedDescription ?? "")") - MP_AnalyticsManager.shared.player_b_failure_errorAction(loadPlayer?.currentVideo?.song.videoId ?? "", videoname: loadPlayer?.currentVideo?.title ?? "", artistname: loadPlayer?.currentVideo?.song.shortBylineText ?? "", error: loadPlayer.currentVideo?.resourcePlayerItem.error?.localizedDescription ?? "Failed to buffer data") + print("当前音乐-\(loadPlayer?.currentVideo?.title ?? "") 未做好准备播放,失败原因是\(loadPlayer?.currentVideo?.resourcePlayerItem.error?.localizedDescription ?? "")") + MP_AnalyticsManager.shared.player_b_failure_errorAction(loadPlayer?.currentVideo?.song.videoId ?? "", videoname: loadPlayer?.currentVideo?.title ?? "", artistname: loadPlayer?.currentVideo?.song.shortBylineText ?? "", error: loadPlayer?.currentVideo?.resourcePlayerItem.error?.localizedDescription ?? "Failed to buffer data") if loadPlayer?.currentVideo?.isKVO == true { suspendTimer() loadPlayer?.currentVideo?.isKVO = false //重新配置数据 - loadPlayer.remakeImproveData { + loadPlayer?.remakeImproveData { [weak self] in self?.play() } @@ -364,7 +364,7 @@ class MP_PlayerManager:NSObject{ MP_AnalyticsManager.shared.player_b_failure_errorAction(loadPlayer?.currentVideo?.song.videoId ?? "", videoname: loadPlayer?.currentVideo?.title ?? "", artistname: loadPlayer?.currentVideo?.song.shortBylineText ?? "", error: nsError.localizedDescription) } }) - loadPlayer.currentVideo.isKVO = true + loadPlayer?.currentVideo?.isKVO = true //将进度回归为0 player.seek(to: .zero) updateNowPlayingInfo() @@ -577,11 +577,11 @@ class MP_PlayerManager:NSObject{ if nextIndex < 0 { //播放列表最后一首 let last = loadPlayer?.randomVideos?.last - loadPlayer.improveData(last?.videoId ?? "", isRandom: true) + loadPlayer?.improveData(last?.videoId ?? "", isRandom: true) }else { //查询列表对应单曲 if let song = loadPlayer?.randomVideos?[nextIndex] { - loadPlayer.improveData(song.videoId ?? "", isRandom: true) + loadPlayer?.improveData(song.videoId ?? "", isRandom: true) } } default://常规播放或者单曲播放 @@ -601,11 +601,11 @@ class MP_PlayerManager:NSObject{ if nextIndex < 0 { //播放列表最后一首 let last = loadPlayer?.songVideos?.last - loadPlayer.improveData(last?.videoId ?? "") + loadPlayer?.improveData(last?.videoId ?? "") }else { //查询列表对应单曲 if let song = loadPlayer?.songVideos?[nextIndex] { - loadPlayer.improveData(song.videoId ?? "") + loadPlayer?.improveData(song.videoId ?? "") } } } @@ -617,51 +617,51 @@ class MP_PlayerManager:NSObject{ var nextIndex:Int = 0 switch playType { case .random: - guard (loadPlayer?.randomVideos?.count ?? 0) != 1 else { + guard let randomVideos = loadPlayer?.randomVideos, randomVideos.count != 1 else { player.seek(to: .zero) playState = .Playing player.play() return } - for (index, item) in (loadPlayer?.randomVideos ?? []).enumerated() { + for (index, item) in randomVideos.enumerated() { if item.videoId == loadPlayer?.currentVideo?.song.videoId { //找到播放音乐的索引 nextIndex = index + 1 } } //超出播放列表数 - if nextIndex > ((loadPlayer?.randomVideos?.count ?? 0)-1) { + if nextIndex > (randomVideos.count-1) { //播放列表第一首 - let first = loadPlayer?.randomVideos?.first - loadPlayer.improveData(first?.videoId ?? "", isRandom: true) + let first = randomVideos.first + loadPlayer?.improveData(first?.videoId ?? "", isRandom: true) }else { //存在下一首,获取下一首ID,并播放 if let song = loadPlayer?.randomVideos?[nextIndex] { - loadPlayer.improveData(song.videoId ?? "", isRandom: true) + loadPlayer?.improveData(song.videoId ?? "", isRandom: true) } } default: - guard (loadPlayer?.songVideos?.count ?? 0) != 1 else { + guard let songVideos = loadPlayer.songVideos, songVideos.count != 1 else { player.seek(to: .zero) playState = .Playing player.play() return } - for (index, item) in (loadPlayer?.songVideos ?? []).enumerated() { + for (index, item) in songVideos.enumerated() { if item.videoId == loadPlayer?.currentVideo?.song.videoId { //找到播放音乐的索引 nextIndex = index + 1 } } //超出播放列表数 - if nextIndex > (loadPlayer?.songVideos?.count ?? 0)-1 { + if nextIndex > (songVideos.count-1) { //播放列表第一首 - let first = loadPlayer?.songVideos?.first - loadPlayer.improveData(first?.videoId ?? "") + let first = songVideos.first + loadPlayer?.improveData(first?.videoId ?? "") }else { //存在下一首,获取下一首ID,并播放 if let song = loadPlayer?.songVideos?[nextIndex] { - loadPlayer.improveData(song.videoId ?? "") + loadPlayer?.improveData(song.videoId ?? "") } } } @@ -686,7 +686,7 @@ class MP_PlayerManager:NSObject{ if cacheValueBlock != nil { cacheValueBlock!(0, 1) } - if loadPlayer.currentVideo != nil { + if loadPlayer?.currentVideo != nil { //开始播放 play(startAction: startActionBlock) } @@ -800,7 +800,7 @@ class MP_PlayerManager:NSObject{ //设置歌曲时长 currentInfo![MPMediaItemPropertyPlaybackDuration] = CMTimeGetSeconds(player.currentItem?.duration ?? .zero) currentInfo![MPNowPlayingInfoPropertyPlaybackRate] = 1.0 - let reviewURL = URL(string: loadPlayer.currentVideo?.song?.reviewUrls?.last ?? "")! + let reviewURL = URL(string: loadPlayer?.currentVideo?.song?.reviewUrls?.last ?? "")! KingfisherManager.shared.retrieveImage(with: reviewURL) { [weak self]result in switch result { case .success(let imageResult): diff --git a/relax.offline.mp3.music/MP/MPPositive/Models/JsonStructs(js文件结构)/MPPositive_JsonBrowse.swift b/relax.offline.mp3.music/MP/MPPositive/Models/JsonStructs(js文件结构)/MPPositive_JsonBrowse.swift index 9faff48..da021c7 100644 --- a/relax.offline.mp3.music/MP/MPPositive/Models/JsonStructs(js文件结构)/MPPositive_JsonBrowse.swift +++ b/relax.offline.mp3.music/MP/MPPositive/Models/JsonStructs(js文件结构)/MPPositive_JsonBrowse.swift @@ -198,69 +198,12 @@ struct JsonBrowses: Codable { struct Run: Codable { ///关键文本内容(代表各级标题) let text:String? - ///指向预览ID - let navigationEndpoint: NavigationEndpoint? enum CodingKeys: String, CodingKey { case text = "text" - case navigationEndpoint = "navigationEndpoint" } init(from decoder: Decoder) throws { let values = try decoder.container(keyedBy: CodingKeys.self) text = try values.decodeIfPresent(String.self, forKey: .text) - navigationEndpoint = try values.decodeIfPresent(NavigationEndpoint.self, forKey: .navigationEndpoint) - } - struct NavigationEndpoint: Codable { - let browseEndpoint:BrowseEndpoint? - - enum CodingKeys: String, CodingKey { - case browseEndpoint = "browseEndpoint" - } - init(from decoder: Decoder) throws { - let values = try decoder.container(keyedBy: CodingKeys.self) - browseEndpoint = try values.decodeIfPresent(BrowseEndpoint.self, forKey: .browseEndpoint) - - } - //MARK: - 展示内容块的预览内容 - struct BrowseEndpoint: Codable { - ///预览ID(作者/歌单/专辑都有,关键内容) - let browseId:String? - ///预览参数(作者/歌单/专辑具备,关键内容) - let params:String? - ///指向预览类型 - let browseEndpointContextSupportedConfigs:BrowseEndpointContextSupportedConfigs? - enum CodingKeys: String, CodingKey { - case browseId = "browseId" - case params = "params" - case browseEndpointContextSupportedConfigs = "browseEndpointContextSupportedConfigs" - } - init(from decoder: Decoder) throws { - let values = try decoder.container(keyedBy: CodingKeys.self) - browseId = try values.decodeIfPresent(String.self, forKey: .browseId) - params = try values.decodeIfPresent(String.self, forKey: .params) - browseEndpointContextSupportedConfigs = try values.decodeIfPresent(BrowseEndpointContextSupportedConfigs.self, forKey: .browseEndpointContextSupportedConfigs) - } - struct BrowseEndpointContextSupportedConfigs: Codable { - let browseEndpointContextMusicConfig:BrowseEndpointContextMusicConfig? - enum CodingKeys: String, CodingKey { - case browseEndpointContextMusicConfig = "browseEndpointContextMusicConfig" - } - init(from decoder: Decoder) throws { - let values = try decoder.container(keyedBy: CodingKeys.self) - browseEndpointContextMusicConfig = try values.decodeIfPresent(BrowseEndpointContextMusicConfig.self, forKey: .browseEndpointContextMusicConfig) - } - //MARK: - Browse类型 作者/歌单/专辑 - struct BrowseEndpointContextMusicConfig: Codable { - let pageType:String? - enum CodingKeys: String, CodingKey { - case pageType = "pageType" - } - init(from decoder: Decoder) throws { - let values = try decoder.container(keyedBy: CodingKeys.self) - pageType = try values.decodeIfPresent(String.self, forKey: .pageType) - } - } - } - } } } } diff --git a/relax.offline.mp3.music/MP/MPPositive/ViewControllers/Base(基类,导航栏,标签栏)/MPPositive_BaseViewController.swift b/relax.offline.mp3.music/MP/MPPositive/ViewControllers/Base(基类,导航栏,标签栏)/MPPositive_BaseViewController.swift index 8b80044..9ea9e63 100644 --- a/relax.offline.mp3.music/MP/MPPositive/ViewControllers/Base(基类,导航栏,标签栏)/MPPositive_BaseViewController.swift +++ b/relax.offline.mp3.music/MP/MPPositive/ViewControllers/Base(基类,导航栏,标签栏)/MPPositive_BaseViewController.swift @@ -72,7 +72,11 @@ class MPPositive_BaseViewController: MP_BaseViewController, UIGestureRecognizerD } //pop上一个页面 @objc func popActionClick(_ sender:UIButton) { - navigationController?.popViewController(animated: true) + MPPositive_Debouncer.shared.call { + [weak self] in + guard let self = self else {return} + navigationController?.popViewController(animated: true) + } } //报错errorView private func createErrorView() -> UIView{ diff --git a/relax.offline.mp3.music/MP/MPPositive/ViewControllers/Base(基类,导航栏,标签栏)/MPPositive_TabBarController.swift b/relax.offline.mp3.music/MP/MPPositive/ViewControllers/Base(基类,导航栏,标签栏)/MPPositive_TabBarController.swift index 6e0fdaa..ca4647b 100644 --- a/relax.offline.mp3.music/MP/MPPositive/ViewControllers/Base(基类,导航栏,标签栏)/MPPositive_TabBarController.swift +++ b/relax.offline.mp3.music/MP/MPPositive/ViewControllers/Base(基类,导航栏,标签栏)/MPPositive_TabBarController.swift @@ -110,6 +110,10 @@ extension MPPositive_TabBarController { let recommendVC = MPPositive_RecommendViewController(MP_PlayerManager.shared.loadPlayer?.currentVideo?.song.relatedID ?? "") self?.viewControllers![self?.selectedIndex ?? 0].children[0].navigationController?.pushViewController(recommendVC, animated: false) } + playerVC.searchBlock = { (text) in + let resultVC = MPPositive_SearchResultShowViewController(text) + self?.viewControllers![self?.selectedIndex ?? 0].children[0].navigationController?.pushViewController(resultVC, animated: false) + } self?.present(playerVC, animated: true) } } diff --git a/relax.offline.mp3.music/MP/MPPositive/ViewControllers/Player(播放器)/MPPositive_PlayerViewController.swift b/relax.offline.mp3.music/MP/MPPositive/ViewControllers/Player(播放器)/MPPositive_PlayerViewController.swift index 2b7ae93..a51e5b3 100644 --- a/relax.offline.mp3.music/MP/MPPositive/ViewControllers/Player(播放器)/MPPositive_PlayerViewController.swift +++ b/relax.offline.mp3.music/MP/MPPositive/ViewControllers/Player(播放器)/MPPositive_PlayerViewController.swift @@ -123,7 +123,7 @@ class MPPositive_PlayerViewController: MPPositive_BaseViewController, UIViewCont //歌词View private lazy var lyricsView:MPPositive_PlayerLyricView = .init(frame: .init(x: 0, y: 0, width: screen_Width, height: 480*width)) var recommendBlock:(() -> Void)? - + var searchBlock:((String) -> Void)? override func viewDidLoad() { super.viewDidLoad() //隐藏导航栏label @@ -199,6 +199,15 @@ class MPPositive_PlayerViewController: MPPositive_BaseViewController, UIViewCont alertController.addAction(sure) present(alertController, animated: true) } + coverView.searchBlock = { + [weak self] (text) in + guard let self = self else {return} + dismiss(animated: true) { + if let block = self.searchBlock { + block(text) + } + } + } } deinit { NotificationCenter.default.removeObserver(self) @@ -376,15 +385,15 @@ class MPPositive_PlayerViewController: MPPositive_BaseViewController, UIViewCont //填充数据 backImageView.kf.setImage(with: MP_PlayerManager.shared.loadPlayer.currentVideo?.coverUrl, placeholder: placeholderImage) coverView.coverImageView.kf.setImage(with: MP_PlayerManager.shared.loadPlayer.currentVideo?.coverUrl, placeholder: placeholderImage) - coverView.titleLabel.text = MP_PlayerManager.shared.loadPlayer.currentVideo?.title - coverView.subtitleLabel.text = MP_PlayerManager.shared.loadPlayer.currentVideo?.subtitle + coverView.titleLabel.text = MP_PlayerManager.shared.loadPlayer?.currentVideo?.title + coverView.subtitleLabel.text = MP_PlayerManager.shared.loadPlayer?.currentVideo?.subtitle lyricsView.titleLabel.text = MP_PlayerManager.shared.loadPlayer.currentVideo?.title - lyricsView.subtitleLabel.text = MP_PlayerManager.shared.loadPlayer.currentVideo?.subtitle - lyricsView.lyricsLabel.text = (MP_PlayerManager.shared.loadPlayer.currentVideo?.lyrics ?? "").isEmpty == true ? "No Lyrics":MP_PlayerManager.shared.loadPlayer.currentVideo?.lyrics - MPPositive_DownloadItemModel.fetch(predicate: .init(format: "videoId == %@", MP_PlayerManager.shared.loadPlayer.currentVideo?.song.videoId ?? "")) { [weak self] results in + lyricsView.subtitleLabel.text = MP_PlayerManager.shared.loadPlayer?.currentVideo?.subtitle + lyricsView.lyricsLabel.text = (MP_PlayerManager.shared.loadPlayer?.currentVideo?.lyrics ?? "").isEmpty == true ? "No Lyrics":MP_PlayerManager.shared.loadPlayer?.currentVideo?.lyrics + MPPositive_DownloadItemModel.fetch(predicate: .init(format: "videoId == %@", MP_PlayerManager.shared.loadPlayer?.currentVideo?.song.videoId ?? "")) { [weak self] results in self?.coverView.downloadButton.state = results.count != 0 ? .downloaded:.startDownload } - coverView.collectionSongBtn.isSelected = MP_PlayerManager.shared.loadPlayer.currentVideo?.isCollection ?? false + coverView.collectionSongBtn.isSelected = MP_PlayerManager.shared.loadPlayer?.currentVideo?.isCollection ?? false coverView.setProgress(MP_PlayerManager.shared.loadPlayer?.currentVideo?.song?.videoId ?? "") switchPlayTypeBtnIcon(typeBtn) // activityIndicator.isHidden = true diff --git a/relax.offline.mp3.music/MP/MPPositive/ViewControllers/Player(播放器)/MPPositive_RecommendViewController.swift b/relax.offline.mp3.music/MP/MPPositive/ViewControllers/Player(播放器)/MPPositive_RecommendViewController.swift index 48a0037..b26a729 100644 --- a/relax.offline.mp3.music/MP/MPPositive/ViewControllers/Player(播放器)/MPPositive_RecommendViewController.swift +++ b/relax.offline.mp3.music/MP/MPPositive/ViewControllers/Player(播放器)/MPPositive_RecommendViewController.swift @@ -198,7 +198,11 @@ class MPPositive_RecommendViewController: MPPositive_BaseViewController,UIViewCo } @objc override func popActionClick(_ sender:UIButton) { super.popActionClick(sender) - navigationController?.popToRootViewController(animated: false) + MPPositive_Debouncer.shared.call { + [weak self] in + guard let self = self else {return} + navigationController?.popToRootViewController(animated: false) + } } } //MARK: - collectionView diff --git a/relax.offline.mp3.music/MP/MPPositive/ViewControllers/Search(搜索页)/MPPositive_SearchResultShowViewController.swift b/relax.offline.mp3.music/MP/MPPositive/ViewControllers/Search(搜索页)/MPPositive_SearchResultShowViewController.swift index ec4df30..554d46e 100644 --- a/relax.offline.mp3.music/MP/MPPositive/ViewControllers/Search(搜索页)/MPPositive_SearchResultShowViewController.swift +++ b/relax.offline.mp3.music/MP/MPPositive/ViewControllers/Search(搜索页)/MPPositive_SearchResultShowViewController.swift @@ -98,7 +98,10 @@ class MPPositive_SearchResultShowViewController: MPPositive_BaseViewController, } resultsShowView.scrollBlock = { [weak self] in - self?.view?.endEditing(true) + guard let self = self else {return} + DispatchQueue.main.async { + self.view?.endEditing(true) + } } @@ -183,7 +186,11 @@ class MPPositive_SearchResultShowViewController: MPPositive_BaseViewController, } //取消并返回上一页 @objc private func backPopClick(_ sender:UIButton) { - navigationController?.popViewController(animated: true) + MPPositive_Debouncer.shared.call { + [weak self] in + guard let self = self else {return} + navigationController?.popToRootViewController(animated: false) + } } } //MARK: - UITextFieldDelegate @@ -227,13 +234,17 @@ extension MPPositive_SearchResultShowViewController:UITextFieldDelegate { func textFieldShouldReturn(_ textField: UITextField) -> Bool { //判断textField是否存在文本 if let text = textField.text, text.isEmpty != true { - self.searchText = text - //用户输入了文本 - resultsShowView.loadModel = .init(text) - MP_AnalyticsManager.shared.search_sug_clickAction(text) - suggestionView.isHidden = true - //停止输入 - view.endEditing(true) + MPPositive_Debouncer.shared.call { + [weak self] in + guard let self = self else {return} + self.searchText = text + //用户输入了文本 + resultsShowView.loadModel = .init(text) + MP_AnalyticsManager.shared.search_sug_clickAction(text) + suggestionView.isHidden = true + //停止输入 + view.endEditing(true) + } return true }else { return false diff --git a/relax.offline.mp3.music/MP/MPPositive/Views/Player/MPPositive_PlayerCoverView.swift b/relax.offline.mp3.music/MP/MPPositive/Views/Player/MPPositive_PlayerCoverView.swift index f001c97..6d7f869 100644 --- a/relax.offline.mp3.music/MP/MPPositive/Views/Player/MPPositive_PlayerCoverView.swift +++ b/relax.offline.mp3.music/MP/MPPositive/Views/Player/MPPositive_PlayerCoverView.swift @@ -4,6 +4,7 @@ import UIKit import DownloadButton +import MarqueeLabel //B面播放器封面View(封面,标题,副标题,收藏,下载,进度条View) class MPPositive_PlayerCoverView: UIView, PKDownloadButtonDelegate { ///封面 @@ -16,9 +17,14 @@ class MPPositive_PlayerCoverView: UIView, PKDownloadButtonDelegate { return imageView }() ///标题 - lazy var titleLabel:UILabel = createLabel("Loading", font: .systemFont(ofSize: 22*width, weight: .regular), textColor: .init(hex: "#FFFFFF", alpha: 0.85), textAlignment: .left) + lazy var titleLabel:MarqueeLabel = createMarQueeLabel("Loading", font: .systemFont(ofSize: 22*width, weight: .regular), textColor: .init(hex: "#FFFFFF", alpha: 0.85)) ///副标题 - lazy var subtitleLabel:UILabel = createLabel("Loading", font: .systemFont(ofSize: 12*width, weight: .regular), textColor: .init(hex: "#EEEEEE", alpha: 0.6), textAlignment: .left) + lazy var subtitleLabel:MarqueeLabel = { + let label = createMarQueeLabel("Loading", font: .systemFont(ofSize: 12*width, weight: .regular), textColor: .init(hex: "#EEEEEE", alpha: 0.6)) + label.isUserInteractionEnabled = true + label.addGestureRecognizer(UITapGestureRecognizer(target: self, action: #selector(searchSubtitleClick(_ :)))) + return label + }() ///收藏按钮 lazy var collectionSongBtn:UIButton = { let btn = UIButton() @@ -104,6 +110,8 @@ class MPPositive_PlayerCoverView: UIView, PKDownloadButtonDelegate { var deleteBlock:(() -> Void)? //取消 var cancelBlock:(() -> Void)? + //副标题查询 + var searchBlock:((String) -> Void)? override init(frame: CGRect) { super.init(frame: frame) backgroundColor = .clear @@ -264,6 +272,13 @@ class MPPositive_PlayerCoverView: UIView, PKDownloadButtonDelegate { maskNotReachableView.isHidden = true } } + //查询副标题 + @objc private func searchSubtitleClick(_ sender:UITapGestureRecognizer) { + guard let text = subtitleLabel.text, text.isEmpty != true else {return} + if let block = searchBlock { + block(text) + } + } //调整音乐进度 @objc private func seekProgressClick(_ sender: UISlider, forEvent event: UIEvent) { diff --git a/relax.offline.mp3.music/MP/MPPositive/Views/Search/MPPositive_SearchResultsShowView.swift b/relax.offline.mp3.music/MP/MPPositive/Views/Search/MPPositive_SearchResultsShowView.swift index 88e6d7e..797b243 100644 --- a/relax.offline.mp3.music/MP/MPPositive/Views/Search/MPPositive_SearchResultsShowView.swift +++ b/relax.offline.mp3.music/MP/MPPositive/Views/Search/MPPositive_SearchResultsShowView.swift @@ -39,11 +39,12 @@ class MPPositive_SearchResultsShowView: UIView { MP_HUD.hideNow() isHidden = false MP_AnalyticsManager.shared.search_resultsuccess_actionAction() - dataSource.titles = loadModel?.sectionLists.compactMap({$0.title}) ?? [] - dataSource.reloadData(selectedIndex: 0) - segmentView.reloadData() - emptyImageView.isHidden = !(dataSource.titles.count == 0) - + if let loadModel = loadModel, let titles = loadModel.sectionLists?.compactMap({$0.title ?? ""}) { + dataSource.titles = titles + dataSource.reloadData(selectedIndex: 0) + segmentView.reloadData() + emptyImageView.isHidden = !(titles.count == 0) + } } } } @@ -65,6 +66,7 @@ class MPPositive_SearchResultsShowView: UIView { //数据源 private lazy var dataSource:JXSegmentedTitleDataSource = { var dataSource = JXSegmentedTitleDataSource() + dataSource.titles = [] //标题未选中状态 dataSource.titleNormalColor = .init(hex: "#666666") dataSource.titleNormalFont = .systemFont(ofSize: 16*width, weight: .regular) @@ -159,8 +161,9 @@ extension MPPositive_SearchResultsShowView: JXSegmentedListContainerViewDataSour let showView:MPPositive_SearchResultPreviewShowView = .init(frame: listContainerView.frame, sectionLists: loadModel.sectionLists) showView.scrollBlock = { [weak self] in - if self?.scrollBlock != nil { - self?.scrollBlock!() + guard let self = self else {return} + if let block = scrollBlock { + block() } } showView.chooseMoreIndexBlock = { @@ -168,7 +171,15 @@ extension MPPositive_SearchResultsShowView: JXSegmentedListContainerViewDataSour guard let self = self else { return } - segmentView.selectItemAt(index: selectedIndex) + if selectedIndex <= (dataSource.titles.count-1) { + //未越界 + DispatchQueue.main.async { + self.segmentView.selectItemAt(index: selectedIndex) + } + }else { + //越界 + print("当前越界") + } } return showView }else { @@ -176,8 +187,9 @@ extension MPPositive_SearchResultsShowView: JXSegmentedListContainerViewDataSour let showView:MPPositive_SearchResultTypeShowView = .init(frame: listContainerView.frame, list: loadModel.sectionLists[index]) showView.scrollBlock = { [weak self] in - if self?.scrollBlock != nil { - self?.scrollBlock!() + guard let self = self else {return} + if let block = scrollBlock { + block() } } return showView