Commit c7483c8b2d9a25c0add993269a9b89decb0f3280

Authored by Cao yang
1 parent a7941cb7
Exists in parentassistant

规范podfile文件,更新三方库,完善考勤接口

Showing 79 changed files with 5801 additions and 1054 deletions   Show diff stats
ParentAssistant/ParentAssistant.xcodeproj/project.pbxproj
... ... @@ -1045,6 +1045,7 @@
1045 1045 "${SRCROOT}/Pods/Target Support Files/Pods-ParentAssistant/Pods-ParentAssistant-frameworks.sh",
1046 1046 "${BUILT_PRODUCTS_DIR}/Alamofire/Alamofire.framework",
1047 1047 "${BUILT_PRODUCTS_DIR}/DZNEmptyDataSet/DZNEmptyDataSet.framework",
  1048 + "${BUILT_PRODUCTS_DIR}/HandyJSON/HandyJSON.framework",
1048 1049 "${BUILT_PRODUCTS_DIR}/Reachability/Reachability.framework",
1049 1050 "${BUILT_PRODUCTS_DIR}/SDWebImage/SDWebImage.framework",
1050 1051 "${BUILT_PRODUCTS_DIR}/SVProgressHUD/SVProgressHUD.framework",
... ... @@ -1056,6 +1057,7 @@
1056 1057 outputPaths = (
1057 1058 "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/Alamofire.framework",
1058 1059 "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/DZNEmptyDataSet.framework",
  1060 + "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/HandyJSON.framework",
1059 1061 "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/Reachability.framework",
1060 1062 "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/SDWebImage.framework",
1061 1063 "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/SVProgressHUD.framework",
... ...
ParentAssistant/ParentAssistant.xcodeproj/xcuserdata/caoyang.xcuserdatad/xcschemes/xcschememanagement.plist
... ... @@ -7,7 +7,7 @@
7 7 <key>ParentAssistant.xcscheme</key>
8 8 <dict>
9 9 <key>orderHint</key>
10   - <integer>1</integer>
  10 + <integer>10</integer>
11 11 </dict>
12 12 </dict>
13 13 </dict>
... ...
ParentAssistant/ParentAssistant.xcworkspace/xcuserdata/caoyang.xcuserdatad/UserInterfaceState.xcuserstate
No preview for this file type
ParentAssistant/ParentAssistant.xcworkspace/xcuserdata/caoyang.xcuserdatad/xcdebugger/Breakpoints_v2.xcbkptlist
... ... @@ -13,21 +13,5 @@
13 13 stopOnStyle = "0">
14 14 </BreakpointContent>
15 15 </BreakpointProxy>
16   - <BreakpointProxy
17   - BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
18   - <BreakpointContent
19   - shouldBeEnabled = "Yes"
20   - ignoreCount = "0"
21   - continueAfterRunningActions = "No"
22   - filePath = "ParentAssistant/Classes/controllers/Grow/Program/ProgramCheckViewController.swift"
23   - timestampString = "545732019.229158"
24   - startingColumnNumber = "9223372036854775807"
25   - endingColumnNumber = "9223372036854775807"
26   - startingLineNumber = "38"
27   - endingLineNumber = "38"
28   - landmarkName = "downLoadDataFromNet()"
29   - landmarkType = "7">
30   - </BreakpointContent>
31   - </BreakpointProxy>
32 16 </Breakpoints>
33 17 </Bucket>
... ...
ParentAssistant/ParentAssistant/Classes/controllers/Grow/Model/StudentCardModel.swift
... ... @@ -7,12 +7,14 @@
7 7 //
8 8  
9 9 import UIKit
10   -
11   -class StudentCardModel: NSObject {
  10 +import HandyJSON
  11 +class StudentCardModel: HandyJSON {
12 12  
13 13 var user_id = String()
14 14 var school_id = String()
15 15 var head_image = String()
16 16 var situation = String()
  17 +
  18 + required init(){}
17 19  
18 20 }
... ...
ParentAssistant/ParentAssistant/Classes/controllers/Grow/Program/ProgramCheckViewController.swift
... ... @@ -22,6 +22,7 @@ class ProgramCheckViewController: UIViewController,UITableViewDelegate,UITableVi
22 22 return table
23 23 }()
24 24  
  25 + var viewData = Array<StudentCardModel>()
25 26  
26 27  
27 28 override func viewDidLoad() {
... ... @@ -33,11 +34,20 @@ class ProgramCheckViewController: UIViewController,UITableViewDelegate,UITableVi
33 34  
34 35 /// 获取数据
35 36 private func downLoadDataFromNet(){
  37 + SVProgressHUD.show()
36 38 let params = ["studentid":185,"schoolid":1,"starttime":"2017-07-19"] as [String : Any]
37 39 HTTPServer.shared.getStudentCheckList(parameters: params as [String : AnyObject]) { (backData, error) in
38   - print(backData!)
  40 + SVProgressHUD.dismiss()
39 41 if error == nil && JSON.fromString(backData)!["status"].intValue == 1 {
40   -
  42 + let data = JSON.fromString(backData)!["data"].arrayValue
  43 +
  44 + for i in 0..<data.count {
  45 + let dic = data[i].dictionary
  46 + if let model = StudentCardModel.deserialize(from: dic){
  47 + self.viewData.append(model)
  48 + }
  49 + }
  50 + self.tableView.reloadData()
41 51 }
42 52 }
43 53 }
... ... @@ -48,7 +58,7 @@ class ProgramCheckViewController: UIViewController,UITableViewDelegate,UITableVi
48 58 return 1
49 59 }
50 60 func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
51   - return 3
  61 + return self.viewData.count + 1
52 62 }
53 63 func tableView(_ tableView: UITableView, heightForRowAt indexPath: IndexPath) -> CGFloat {
54 64 if indexPath.row == 0 {
... ...
ParentAssistant/Podfile
... ... @@ -2,23 +2,21 @@ platform :ios, ‘9.0’
2 2 use_frameworks!
3 3 inhibit_all_warnings!
4 4  
5   -def pods
6   -pod 'Alamofire'
7   -pod 'SDWebImage'
8   -pod 'Toast'
9   -pod 'XRCarouselView'
10   -pod 'Reachability'
11   -pod 'UMCCommon'
12   -pod 'UMCSecurityPlugins'
13   -pod 'UMCAnalytics'
14   -pod 'UMCErrorCatch'
15   -pod 'DZNEmptyDataSet'
16   -pod 'SVProgressHUD'
17   -pod 'NIMSDK_LITE'
18   -pod 'SwiftHash'
19   -
20   -end
21 5 target 'ParentAssistant' do
22   - pod 'HandyJSON', '~> 4.0.0-beta.1'
23   -pods
  6 +
  7 + pod 'HandyJSON', '~> 4.1.1'
  8 + pod 'Alamofire','~>4.0.1'
  9 + pod 'SDWebImage','~>3.8.2'
  10 + pod 'Toast','~>3.1.0'
  11 + pod 'XRCarouselView','~>2.5.6'
  12 + pod 'Reachability','~>3.2'
  13 + pod 'UMCCommon','~>1.4.2'
  14 + pod 'UMCSecurityPlugins','~>1.0.6'
  15 + pod 'UMCAnalytics','~>5.4.1'
  16 + pod 'UMCErrorCatch','~>1.0.0'
  17 + pod 'DZNEmptyDataSet','~>1.8.1'
  18 + pod 'SVProgressHUD','~>2.2.5'
  19 + pod 'NIMSDK_LITE','~>4.9.0'
  20 + pod 'SwiftHash','~>2.0.1'
  21 +
24 22 end
... ...
ParentAssistant/Podfile.lock
1 1 PODS:
2 2 - Alamofire (4.0.1)
3 3 - DZNEmptyDataSet (1.8.1)
  4 + - HandyJSON (4.1.1)
4 5 - NIMSDK_LITE (4.9.0)
5 6 - Reachability (3.2)
6 7 - SDWebImage (3.8.2):
... ... @@ -18,23 +19,25 @@ PODS:
18 19 - XRCarouselView (2.5.6)
19 20  
20 21 DEPENDENCIES:
21   - - Alamofire
22   - - DZNEmptyDataSet
23   - - NIMSDK_LITE
24   - - Reachability
25   - - SDWebImage
26   - - SVProgressHUD
27   - - SwiftHash
28   - - Toast
29   - - UMCAnalytics
30   - - UMCCommon
31   - - UMCErrorCatch
32   - - UMCSecurityPlugins
33   - - XRCarouselView
  22 + - Alamofire (~> 4.0.1)
  23 + - DZNEmptyDataSet (~> 1.8.1)
  24 + - HandyJSON (~> 4.1.1)
  25 + - NIMSDK_LITE (~> 4.9.0)
  26 + - Reachability (~> 3.2)
  27 + - SDWebImage (~> 3.8.2)
  28 + - SVProgressHUD (~> 2.2.5)
  29 + - SwiftHash (~> 2.0.1)
  30 + - Toast (~> 3.1.0)
  31 + - UMCAnalytics (~> 5.4.1)
  32 + - UMCCommon (~> 1.4.2)
  33 + - UMCErrorCatch (~> 1.0.0)
  34 + - UMCSecurityPlugins (~> 1.0.6)
  35 + - XRCarouselView (~> 2.5.6)
34 36  
35 37 SPEC CHECKSUMS:
36 38 Alamofire: 7682d43245de14874acd142ec137b144aa1dd335
37 39 DZNEmptyDataSet: 9525833b9e68ac21c30253e1d3d7076cc828eaa7
  40 + HandyJSON: 3a3de917c4118767ffe41c29b5acba23409649f4
38 41 NIMSDK_LITE: a69a019544299a1b597db6ebf98927f5e12fa17c
39 42 Reachability: 33e18b67625424e47b6cde6d202dce689ad7af96
40 43 SDWebImage: 098e97e6176540799c27e804c96653ee0833d13c
... ... @@ -47,6 +50,6 @@ SPEC CHECKSUMS:
47 50 UMCSecurityPlugins: 0831a08f3988f3cea9f1d3a7626cd9bee4fef150
48 51 XRCarouselView: 52529f924d26ee4787f9bd958150800b73e60922
49 52  
50   -PODFILE CHECKSUM: bede341771386f5d5daec06d0fa659a0b8e8137b
  53 +PODFILE CHECKSUM: ef5a2eedc2a762110d9f7458ad01512ced09aba0
51 54  
52 55 COCOAPODS: 1.4.0
... ...
ParentAssistant/Pods/HandyJSON/LICENSE 0 → 100644
... ... @@ -0,0 +1,13 @@
  1 + Copyright 1999-2016 Alibaba Group Holding Ltd.
  2 +
  3 + Licensed under the Apache License, Version 2.0 (the "License");
  4 + you may not use this file except in compliance with the License.
  5 + You may obtain a copy of the License at
  6 +
  7 + http://www.apache.org/licenses/LICENSE-2.0
  8 +
  9 + Unless required by applicable law or agreed to in writing, software
  10 + distributed under the License is distributed on an "AS IS" BASIS,
  11 + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  12 + See the License for the specific language governing permissions and
  13 + limitations under the License.
... ...
ParentAssistant/Pods/HandyJSON/README.md 0 → 100644
... ... @@ -0,0 +1,688 @@
  1 +# HandyJSON
  2 +
  3 +HandyJSON is a framework written in Swift which to make converting model objects( **pure classes/structs** ) to and from JSON easy on iOS.
  4 +
  5 +Compared with others, the most significant feature of HandyJSON is that it does not require the objects inherit from NSObject(**not using KVC but reflection**), neither implements a 'mapping' function(**writing value to memory directly to achieve property assignment**).
  6 +
  7 +HandyJSON is totally depend on the memory layout rules infered from Swift runtime code. We are watching it and will follow every bit if it changes.
  8 +
  9 +[![Build Status](https://travis-ci.org/alibaba/HandyJSON.svg?branch=master)](https://travis-ci.org/alibaba/HandyJSON)
  10 +[![Carthage compatible](https://img.shields.io/badge/Carthage-compatible-4BC51D.svg?style=flat)](https://github.com/Carthage/Carthage)
  11 +[![Cocoapods Version](https://img.shields.io/cocoapods/v/HandyJSON.svg?style=flat)](http://cocoadocs.org/docsets/HandyJSON)
  12 +[![Cocoapods Platform](https://img.shields.io/cocoapods/p/HandyJSON.svg?style=flat)](http://cocoadocs.org/docsets/HandyJSON)
  13 +[![Codecov branch](https://img.shields.io/codecov/c/github/alibaba/HandyJSON/master.svg?style=flat)](https://codecov.io/gh/alibaba/HandyJSON/branch/master)
  14 +
  15 +## [中文文档](./README_cn.md)
  16 +
  17 +## 交流群
  18 +
  19 +群号: 581331250
  20 +
  21 +![交流群](qq_group.png)
  22 +
  23 +## Sample Code
  24 +
  25 +### Deserialization
  26 +
  27 +```swift
  28 +class BasicTypes: HandyJSON {
  29 + var int: Int = 2
  30 + var doubleOptional: Double?
  31 + var stringImplicitlyUnwrapped: String!
  32 +
  33 + required init() {}
  34 +}
  35 +
  36 +let jsonString = "{\"doubleOptional\":1.1,\"stringImplicitlyUnwrapped\":\"hello\",\"int\":1}"
  37 +if let object = BasicTypes.deserialize(from: jsonString) {
  38 + print(object.int)
  39 + print(object.doubleOptional!)
  40 + print(object.stringImplicitlyUnwrapped)
  41 +}
  42 +```
  43 +
  44 +### Serialization
  45 +
  46 +```swift
  47 +
  48 +let object = BasicTypes()
  49 +object.int = 1
  50 +object.doubleOptional = 1.1
  51 +object.stringImplicitlyUnwrapped = “hello"
  52 +
  53 +print(object.toJSON()!) // serialize to dictionary
  54 +print(object.toJSONString()!) // serialize to JSON string
  55 +print(object.toJSONString(prettyPrint: true)!) // serialize to pretty JSON string
  56 +```
  57 +
  58 +# Content
  59 +
  60 +- [Features](#features)
  61 +- [Requirements](#requirements)
  62 +- [Installation](#installation)
  63 + - [Cocoapods](#cocoapods)
  64 + - [Carthage](#carthage)
  65 + - [Manually](#manually)
  66 +- [Deserialization](#deserialization)
  67 + - [The Basics](#the-basics)
  68 + - [Support Struct](#support-struct)
  69 + - [Support Enum Property](#support-enum-property)
  70 + - [Optional/ImplicitlyUnwrappedOptional/Collections/...](#optionalimplicitlyunwrappedoptionalcollections)
  71 + - [Designated Path](#designated-path)
  72 + - [Composition Object](#composition-object)
  73 + - [Inheritance Object](#inheritance-object)
  74 + - [JSON Array](#json-array)
  75 + - [Mapping From Dictionary](#mapping-from-dictionary)
  76 + - [Custom Mapping](#custom-mapping)
  77 + - [Date/Data/URL/Decimal/Color](#datedataurldecimalcolor)
  78 + - [Exclude Property](#exclude-property)
  79 + - [Update Existing Model](#update-existing-model)
  80 + - [Supported Property Type](#supported-property-type)
  81 +- [Serialization](#serialization)
  82 + - [The Basics](#the-basics)
  83 + - [Mapping And Excluding](#mapping-and-excluding)
  84 +- [FAQ](#faq)
  85 +- [To Do](#to-do)
  86 +
  87 +# Features
  88 +
  89 +* Serialize/Deserialize Object/JSON to/From JSON/Object
  90 +
  91 +* Naturally use object property name for mapping, no need to specify a mapping relationship
  92 +
  93 +* Support almost all types in Swift, including enum
  94 +
  95 +* Support struct
  96 +
  97 +* Custom transformations
  98 +
  99 +* Type-Adaption, such as string json field maps to int property, int json field maps to string property
  100 +
  101 +An overview of types supported can be found at file: [BasicTypes.swift](./HandyJSONTest/BasicTypes.swift)
  102 +
  103 +# Requirements
  104 +
  105 +* iOS 8.0+/OSX 10.9+/watchOS 2.0+/tvOS 9.0+
  106 +
  107 +* Swift 3.0+ / Swift 4.0+
  108 +
  109 +# Installation
  110 +
  111 +**To use with Swift 3.x using >= 1.8.0**
  112 +
  113 +**To use with Swift 4.0 using == 4.1.1**
  114 +
  115 +For Legacy Swift2.x support, take a look at the [swift2 branch](https://github.com/alibaba/HandyJSON/tree/master_for_swift_2x).
  116 +
  117 +## Cocoapods
  118 +
  119 +Add the following line to your `Podfile`:
  120 +
  121 +```
  122 +pod 'HandyJSON', '~> 4.1.1'
  123 +```
  124 +
  125 +Then, run the following command:
  126 +
  127 +```
  128 +$ pod install
  129 +```
  130 +
  131 +## Carthage
  132 +
  133 +You can add a dependency on `HandyJSON` by adding the following line to your `Cartfile`:
  134 +
  135 +```
  136 +github "alibaba/HandyJSON" ~> 4.1.1
  137 +```
  138 +
  139 +## Manually
  140 +
  141 +You can integrate `HandyJSON` into your project manually by doing the following steps:
  142 +
  143 +* Open up `Terminal`, `cd` into your top-level project directory, and add `HandyJSON` as a submodule:
  144 +
  145 +```
  146 +git init && git submodule add https://github.com/alibaba/HandyJSON.git
  147 +```
  148 +
  149 +* Open the new `HandyJSON` folder, drag the `HandyJSON.xcodeproj` into the `Project Navigator` of your project.
  150 +
  151 +* Select your application project in the `Project Navigator`, open the `General` panel in the right window.
  152 +
  153 +* Click on the `+` button under the `Embedded Binaries` section.
  154 +
  155 +* You will see two different `HandyJSON.xcodeproj` folders each with four different versions of the HandyJSON.framework nested inside a Products folder.
  156 +> It does not matter which Products folder you choose from, but it does matter which HandyJSON.framework you choose.
  157 +
  158 +* Select one of the four `HandyJSON.framework` which matches the platform your Application should run on.
  159 +
  160 +* Congratulations!
  161 +
  162 +# Deserialization
  163 +
  164 +## The Basics
  165 +
  166 +To support deserialization from JSON, a class/struct need to conform to 'HandyJSON' protocol. It's truly protocol, not some class inherited from NSObject.
  167 +
  168 +To conform to 'HandyJSON', a class need to implement an empty initializer.
  169 +
  170 +```swift
  171 +class BasicTypes: HandyJSON {
  172 + var int: Int = 2
  173 + var doubleOptional: Double?
  174 + var stringImplicitlyUnwrapped: String!
  175 +
  176 + required init() {}
  177 +}
  178 +
  179 +let jsonString = "{\"doubleOptional\":1.1,\"stringImplicitlyUnwrapped\":\"hello\",\"int\":1}"
  180 +if let object = BasicTypes.deserialize(from: jsonString) {
  181 + // …
  182 +}
  183 +```
  184 +
  185 +## Support Struct
  186 +
  187 +For struct, since the compiler provide a default empty initializer, we use it for free.
  188 +
  189 +```swift
  190 +struct BasicTypes: HandyJSON {
  191 + var int: Int = 2
  192 + var doubleOptional: Double?
  193 + var stringImplicitlyUnwrapped: String!
  194 +}
  195 +
  196 +let jsonString = "{\"doubleOptional\":1.1,\"stringImplicitlyUnwrapped\":\"hello\",\"int\":1}"
  197 +if let object = BasicTypes.deserialize(from: jsonString) {
  198 + // …
  199 +}
  200 +```
  201 +
  202 +But also notice that, if you have a designated initializer to override the default one in the struct, you should explicitly declare an empty one(no `required` modifier need).
  203 +
  204 +## Support Enum Property
  205 +
  206 +To be convertable, An `enum` must conform to `HandyJSONEnum` protocol. Nothing special need to do now.
  207 +
  208 +```swift
  209 +enum AnimalType: String, HandyJSONEnum {
  210 + case Cat = "cat"
  211 + case Dog = "dog"
  212 + case Bird = "bird"
  213 +}
  214 +
  215 +struct Animal: HandyJSON {
  216 + var name: String?
  217 + var type: AnimalType?
  218 +}
  219 +
  220 +let jsonString = "{\"type\":\"cat\",\"name\":\"Tom\"}"
  221 +if let animal = Animal.deserialize(from: jsonString) {
  222 + print(animal.type?.rawValue)
  223 +}
  224 +```
  225 +
  226 +## Optional/ImplicitlyUnwrappedOptional/Collections/...
  227 +
  228 +'HandyJSON' support classes/structs composed of `optional`, `implicitlyUnwrappedOptional`, `array`, `dictionary`, `objective-c base type`, `nested type` etc. properties.
  229 +
  230 +```swift
  231 +class BasicTypes: HandyJSON {
  232 + var bool: Bool = true
  233 + var intOptional: Int?
  234 + var doubleImplicitlyUnwrapped: Double!
  235 + var anyObjectOptional: Any?
  236 +
  237 + var arrayInt: Array<Int> = []
  238 + var arrayStringOptional: Array<String>?
  239 + var setInt: Set<Int>?
  240 + var dictAnyObject: Dictionary<String, Any> = [:]
  241 +
  242 + var nsNumber = 2
  243 + var nsString: NSString?
  244 +
  245 + required init() {}
  246 +}
  247 +
  248 +let object = BasicTypes()
  249 +object.intOptional = 1
  250 +object.doubleImplicitlyUnwrapped = 1.1
  251 +object.anyObjectOptional = "StringValue"
  252 +object.arrayInt = [1, 2]
  253 +object.arrayStringOptional = ["a", "b"]
  254 +object.setInt = [1, 2]
  255 +object.dictAnyObject = ["key1": 1, "key2": "stringValue"]
  256 +object.nsNumber = 2
  257 +object.nsString = "nsStringValue"
  258 +
  259 +let jsonString = object.toJSONString()!
  260 +
  261 +if let object = BasicTypes.deserialize(from: jsonString) {
  262 + // ...
  263 +}
  264 +```
  265 +
  266 +## Designated Path
  267 +
  268 +`HandyJSON` supports deserialization from designated path of JSON.
  269 +
  270 +```swift
  271 +class Cat: HandyJSON {
  272 + var id: Int64!
  273 + var name: String!
  274 +
  275 + required init() {}
  276 +}
  277 +
  278 +let jsonString = "{\"code\":200,\"msg\":\"success\",\"data\":{\"cat\":{\"id\":12345,\"name\":\"Kitty\"}}}"
  279 +
  280 +if let cat = Cat.deserialize(from: jsonString, designatedPath: "data.cat") {
  281 + print(cat.name)
  282 +}
  283 +```
  284 +
  285 +## Composition Object
  286 +
  287 +Notice that all the properties of a class/struct need to deserialized should be type conformed to `HandyJSON`.
  288 +
  289 +```swift
  290 +class Component: HandyJSON {
  291 + var aInt: Int?
  292 + var aString: String?
  293 +
  294 + required init() {}
  295 +}
  296 +
  297 +class Composition: HandyJSON {
  298 + var aInt: Int?
  299 + var comp1: Component?
  300 + var comp2: Component?
  301 +
  302 + required init() {}
  303 +}
  304 +
  305 +let jsonString = "{\"num\":12345,\"comp1\":{\"aInt\":1,\"aString\":\"aaaaa\"},\"comp2\":{\"aInt\":2,\"aString\":\"bbbbb\"}}"
  306 +
  307 +if let composition = Composition.deserialize(from: jsonString) {
  308 + print(composition)
  309 +}
  310 +```
  311 +
  312 +## Inheritance Object
  313 +
  314 +A subclass need deserialization, it's superclass need to conform to `HandyJSON`.
  315 +
  316 +```swift
  317 +class Animal: HandyJSON {
  318 + var id: Int?
  319 + var color: String?
  320 +
  321 + required init() {}
  322 +}
  323 +
  324 +class Cat: Animal {
  325 + var name: String?
  326 +
  327 + required init() {}
  328 +}
  329 +
  330 +let jsonString = "{\"id\":12345,\"color\":\"black\",\"name\":\"cat\"}"
  331 +
  332 +if let cat = Cat.deserialize(from: jsonString) {
  333 + print(cat)
  334 +}
  335 +```
  336 +
  337 +## JSON Array
  338 +
  339 +If the first level of a JSON text is an array, we turn it to objects array.
  340 +
  341 +```swift
  342 +class Cat: HandyJSON {
  343 + var name: String?
  344 + var id: String?
  345 +
  346 + required init() {}
  347 +}
  348 +
  349 +let jsonArrayString: String? = "[{\"name\":\"Bob\",\"id\":\"1\"}, {\"name\":\"Lily\",\"id\":\"2\"}, {\"name\":\"Lucy\",\"id\":\"3\"}]"
  350 +if let cats = [Cat].deserialize(from: jsonArrayString) {
  351 + cats.forEach({ (cat) in
  352 + // ...
  353 + })
  354 +}
  355 +```
  356 +
  357 +## Mapping From Dictionary
  358 +
  359 +`HandyJSON` support mapping swift dictionary to model.
  360 +
  361 +```swift
  362 +var dict = [String: Any]()
  363 +dict["doubleOptional"] = 1.1
  364 +dict["stringImplicitlyUnwrapped"] = "hello"
  365 +dict["int"] = 1
  366 +if let object = BasicTypes.deserialize(from: dict) {
  367 + // ...
  368 +}
  369 +```
  370 +
  371 +## Custom Mapping
  372 +
  373 +`HandyJSON` let you customize the key mapping to JSON fields, or parsing method of any property. All you need to do is implementing an optional `mapping` function, do things in it.
  374 +
  375 +We bring the transformer from [`ObjectMapper`](https://github.com/Hearst-DD/ObjectMapper). If you are familiar with it, it’s almost the same here.
  376 +
  377 +```swift
  378 +class Cat: HandyJSON {
  379 + var id: Int64!
  380 + var name: String!
  381 + var parent: (String, String)?
  382 + var friendName: String?
  383 +
  384 + required init() {}
  385 +
  386 + func mapping(mapper: HelpingMapper) {
  387 + // specify 'cat_id' field in json map to 'id' property in object
  388 + mapper <<<
  389 + self.id <-- "cat_id"
  390 +
  391 + // specify 'parent' field in json parse as following to 'parent' property in object
  392 + mapper <<<
  393 + self.parent <-- TransformOf<(String, String), String>(fromJSON: { (rawString) -> (String, String)? in
  394 + if let parentNames = rawString?.characters.split(separator: "/").map(String.init) {
  395 + return (parentNames[0], parentNames[1])
  396 + }
  397 + return nil
  398 + }, toJSON: { (tuple) -> String? in
  399 + if let _tuple = tuple {
  400 + return "\(_tuple.0)/\(_tuple.1)"
  401 + }
  402 + return nil
  403 + })
  404 +
  405 + // specify 'friend.name' path field in json map to 'friendName' property
  406 + mapper <<<
  407 + self.friendName <-- "friend.name"
  408 + }
  409 +}
  410 +
  411 +let jsonString = "{\"cat_id\":12345,\"name\":\"Kitty\",\"parent\":\"Tom/Lily\",\"friend\":{\"id\":54321,\"name\":\"Lily\"}}"
  412 +
  413 +if let cat = Cat.deserialize(from: jsonString) {
  414 + print(cat.id)
  415 + print(cat.parent)
  416 + print(cat.friendName)
  417 +}
  418 +```
  419 +
  420 +## Date/Data/URL/Decimal/Color
  421 +
  422 +`HandyJSON` prepare some useful transformer for some none-basic type.
  423 +
  424 +```swift
  425 +class ExtendType: HandyJSON {
  426 + var date: Date?
  427 + var decimal: NSDecimalNumber?
  428 + var url: URL?
  429 + var data: Data?
  430 + var color: UIColor?
  431 +
  432 + func mapping(mapper: HelpingMapper) {
  433 + mapper <<<
  434 + date <-- CustomDateFormatTransform(formatString: "yyyy-MM-dd")
  435 +
  436 + mapper <<<
  437 + decimal <-- NSDecimalNumberTransform()
  438 +
  439 + mapper <<<
  440 + url <-- URLTransform(shouldEncodeURLString: false)
  441 +
  442 + mapper <<<
  443 + data <-- DataTransform()
  444 +
  445 + mapper <<<
  446 + color <-- HexColorTransform()
  447 + }
  448 +
  449 + public required init() {}
  450 +}
  451 +
  452 +let object = ExtendType()
  453 +object.date = Date()
  454 +object.decimal = NSDecimalNumber(string: "1.23423414371298437124391243")
  455 +object.url = URL(string: "https://www.aliyun.com")
  456 +object.data = Data(base64Encoded: "aGVsbG8sIHdvcmxkIQ==")
  457 +object.color = UIColor.blue
  458 +
  459 +print(object.toJSONString()!)
  460 +// it prints:
  461 +// {"date":"2017-09-11","decimal":"1.23423414371298437124391243","url":"https:\/\/www.aliyun.com","data":"aGVsbG8sIHdvcmxkIQ==","color":"0000FF"}
  462 +
  463 +let mappedObject = ExtendType.deserialize(from: object.toJSONString()!)!
  464 +print(mappedObject.date)
  465 +...
  466 +```
  467 +
  468 +## Exclude Property
  469 +
  470 +If any non-basic property of a class/struct could not conform to `HandyJSON`/`HandyJSONEnum` or you just do not want to do the deserialization with it, you should exclude it in the mapping function.
  471 +
  472 +```swift
  473 +class NotHandyJSONType {
  474 + var dummy: String?
  475 +}
  476 +
  477 +class Cat: HandyJSON {
  478 + var id: Int64!
  479 + var name: String!
  480 + var notHandyJSONTypeProperty: NotHandyJSONType?
  481 + var basicTypeButNotWantedProperty: String?
  482 +
  483 + required init() {}
  484 +
  485 + func mapping(mapper: HelpingMapper) {
  486 + mapper >>> self.notHandyJSONTypeProperty
  487 + mapper >>> self.basicTypeButNotWantedProperty
  488 + }
  489 +}
  490 +
  491 +let jsonString = "{\"name\":\"cat\",\"id\":\"12345\"}"
  492 +
  493 +if let cat = Cat.deserialize(from: jsonString) {
  494 + print(cat)
  495 +}
  496 +```
  497 +
  498 +## Update Existing Model
  499 +
  500 +`HandyJSON` support updating an existing model with given json string or dictionary.
  501 +
  502 +```swift
  503 +class BasicTypes: HandyJSON {
  504 + var int: Int = 2
  505 + var doubleOptional: Double?
  506 + var stringImplicitlyUnwrapped: String!
  507 +
  508 + required init() {}
  509 +}
  510 +
  511 +var object = BasicTypes()
  512 +object.int = 1
  513 +object.doubleOptional = 1.1
  514 +
  515 +let jsonString = "{\"doubleOptional\":2.2}"
  516 +JSONDeserializer.update(object: &object, from: jsonString)
  517 +print(object.int)
  518 +print(object.doubleOptional)
  519 +```
  520 +
  521 +## Supported Property Type
  522 +
  523 +* `Int`/`Bool`/`Double`/`Float`/`String`/`NSNumber`/`NSString`
  524 +
  525 +* `RawRepresentable` enum
  526 +
  527 +* `NSArray/NSDictionary`
  528 +
  529 +* `Int8/Int16/Int32/Int64`/`UInt8/UInt16/UInt23/UInt64`
  530 +
  531 +* `Optional<T>/ImplicitUnwrappedOptional<T>` // T is one of the above types
  532 +
  533 +* `Array<T>` // T is one of the above types
  534 +
  535 +* `Dictionary<String, T>` // T is one of the above types
  536 +
  537 +* Nested of aboves
  538 +
  539 +# Serialization
  540 +
  541 +## The Basics
  542 +
  543 +Now, a class/model which need to serialize to JSON should also conform to `HandyJSON` protocol.
  544 +
  545 +```swift
  546 +class BasicTypes: HandyJSON {
  547 + var int: Int = 2
  548 + var doubleOptional: Double?
  549 + var stringImplicitlyUnwrapped: String!
  550 +
  551 + required init() {}
  552 +}
  553 +
  554 +let object = BasicTypes()
  555 +object.int = 1
  556 +object.doubleOptional = 1.1
  557 +object.stringImplicitlyUnwrapped = “hello"
  558 +
  559 +print(object.toJSON()!) // serialize to dictionary
  560 +print(object.toJSONString()!) // serialize to JSON string
  561 +print(object.toJSONString(prettyPrint: true)!) // serialize to pretty JSON string
  562 +```
  563 +
  564 +## Mapping And Excluding
  565 +
  566 +It’s all like what we do on deserialization. A property which is excluded, it will not take part in neither deserialization nor serialization. And the mapper items define both the deserializing rules and serializing rules. Refer to the usage above.
  567 +
  568 +# FAQ
  569 +
  570 +## Q: Why the mapping function is not working in the inheritance object?
  571 +
  572 +A: For some reason, you should define an empty mapping function in the super class(the root class if more than one layer), and override it in the subclass.
  573 +
  574 +It's the same with `didFinishMapping` function.
  575 +
  576 +## Q: Why my didSet/willSet is not working?
  577 +
  578 +A: Since `HandyJSON` assign properties by writing value to memory directly, it doesn't trigger any observing function. You need to call the `didSet/willSet` logic explicitly after/before the deserialization.
  579 +
  580 +But since version `1.8.0`, `HandyJSON` handle dynamic properties by the `KVC` mechanism which will trigger the `KVO`. That means, if you do really need the `didSet/willSet`, you can define your model like follow:
  581 +
  582 +```swift
  583 +class BasicTypes: NSObject, HandyJSON {
  584 + dynamic var int: Int = 0 {
  585 + didSet {
  586 + print("oldValue: ", oldValue)
  587 + }
  588 + willSet {
  589 + print("newValue: ", newValue)
  590 + }
  591 + }
  592 +
  593 + public override required init() {}
  594 +}
  595 +```
  596 +
  597 +In this situation, `NSObject` and `dynamic` are both needed.
  598 +
  599 +And in versions since `1.8.0`, `HandyJSON` offer a `didFinishMapping` function to allow you to fill some observing logic.
  600 +
  601 +```swift
  602 +class BasicTypes: HandyJSON {
  603 + var int: Int?
  604 +
  605 + required init() {}
  606 +
  607 + func didFinishMapping() {
  608 + print("you can fill some observing logic here")
  609 + }
  610 +}
  611 +
  612 +```
  613 +
  614 +It may help.
  615 +
  616 +## Q: How to support Enum property?
  617 +
  618 +It your enum conform to `RawRepresentable` protocol, please look into [Support Enum Property](#support-enum-property). Or use the `EnumTransform`:
  619 +
  620 +```swift
  621 +enum EnumType: String {
  622 + case type1, type2
  623 +}
  624 +
  625 +class BasicTypes: HandyJSON {
  626 + var type: EnumType?
  627 +
  628 + func mapping(mapper: HelpingMapper) {
  629 + mapper <<<
  630 + type <-- EnumTransform()
  631 + }
  632 +
  633 + required init() {}
  634 +}
  635 +
  636 +let object = BasicTypes()
  637 +object.type = EnumType.type2
  638 +print(object.toJSONString()!)
  639 +let mappedObject = BasicTypes.deserialize(from: object.toJSONString()!)!
  640 +print(mappedObject.type)
  641 +```
  642 +
  643 +Otherwise, you should implement your custom mapping function.
  644 +
  645 +```swift
  646 +enum EnumType {
  647 + case type1, type2
  648 +}
  649 +
  650 +class BasicTypes: HandyJSON {
  651 + var type: EnumType?
  652 +
  653 + func mapping(mapper: HelpingMapper) {
  654 + mapper <<<
  655 + type <-- TransformOf<EnumType, String>(fromJSON: { (rawString) -> EnumType? in
  656 + if let _str = rawString {
  657 + switch (_str) {
  658 + case "type1":
  659 + return EnumType.type1
  660 + case "type2":
  661 + return EnumType.type2
  662 + default:
  663 + return nil
  664 + }
  665 + }
  666 + return nil
  667 + }, toJSON: { (enumType) -> String? in
  668 + if let _type = enumType {
  669 + switch (_type) {
  670 + case EnumType.type1:
  671 + return "type1"
  672 + case EnumType.type2:
  673 + return "type2"
  674 + }
  675 + }
  676 + return nil
  677 + })
  678 + }
  679 +
  680 + required init() {}
  681 +}
  682 +```
  683 +
  684 +
  685 +
  686 +# License
  687 +
  688 +HandyJSON is released under the Apache License, Version 2.0. See LICENSE for details.
... ...
ParentAssistant/Pods/HandyJSON/Source/AnyExtensions.swift 0 → 100644
... ... @@ -0,0 +1,89 @@
  1 +/*
  2 + * Copyright 1999-2101 Alibaba Group.
  3 + *
  4 + * Licensed under the Apache License, Version 2.0 (the "License");
  5 + * you may not use this file except in compliance with the License.
  6 + * You may obtain a copy of the License at
  7 + *
  8 + * http://www.apache.org/licenses/LICENSE-2.0
  9 + *
  10 + * Unless required by applicable law or agreed to in writing, software
  11 + * distributed under the License is distributed on an "AS IS" BASIS,
  12 + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  13 + * See the License for the specific language governing permissions and
  14 + * limitations under the License.
  15 + */
  16 +
  17 +//
  18 +// AnyExtension.swift
  19 +// HandyJSON
  20 +//
  21 +// Created by zhouzhuo on 08/01/2017.
  22 +//
  23 +
  24 +protocol AnyExtensions {}
  25 +
  26 +extension AnyExtensions {
  27 +
  28 + public static func isValueTypeOrSubtype(_ value: Any) -> Bool {
  29 + return value is Self
  30 + }
  31 +
  32 + public static func value(from storage: UnsafeRawPointer) -> Any {
  33 + return storage.assumingMemoryBound(to: self).pointee
  34 + }
  35 +
  36 + public static func write(_ value: Any, to storage: UnsafeMutableRawPointer) {
  37 + guard let this = value as? Self else {
  38 + return
  39 + }
  40 + storage.assumingMemoryBound(to: self).pointee = this
  41 + }
  42 +
  43 + public static func takeValue(from anyValue: Any) -> Self? {
  44 + return anyValue as? Self
  45 + }
  46 +}
  47 +
  48 +func extensions(of type: Any.Type) -> AnyExtensions.Type {
  49 + struct Extensions : AnyExtensions {}
  50 + var extensions: AnyExtensions.Type = Extensions.self
  51 + withUnsafePointer(to: &extensions) { pointer in
  52 + UnsafeMutableRawPointer(mutating: pointer).assumingMemoryBound(to: Any.Type.self).pointee = type
  53 + }
  54 + return extensions
  55 +}
  56 +
  57 +func extensions(of value: Any) -> AnyExtensions {
  58 + struct Extensions : AnyExtensions {}
  59 + var extensions: AnyExtensions = Extensions()
  60 + withUnsafePointer(to: &extensions) { pointer in
  61 + UnsafeMutableRawPointer(mutating: pointer).assumingMemoryBound(to: Any.self).pointee = value
  62 + }
  63 + return extensions
  64 +}
  65 +
  66 +/// Tests if `value` is `type` or a subclass of `type`
  67 +func value(_ value: Any, is type: Any.Type) -> Bool {
  68 + return extensions(of: type).isValueTypeOrSubtype(value)
  69 +}
  70 +
  71 +/// Tests equality of any two existential types
  72 +func == (lhs: Any.Type, rhs: Any.Type) -> Bool {
  73 + return Metadata(type: lhs) == Metadata(type: rhs)
  74 +}
  75 +
  76 +// MARK: AnyExtension + Storage
  77 +extension AnyExtensions {
  78 +
  79 + mutating func storage() -> UnsafeRawPointer {
  80 + if type(of: self) is AnyClass {
  81 + let opaquePointer = Unmanaged.passUnretained(self as AnyObject).toOpaque()
  82 + return UnsafeRawPointer(opaquePointer)
  83 + } else {
  84 + return withUnsafePointer(to: &self) { pointer in
  85 + return UnsafeRawPointer(pointer)
  86 + }
  87 + }
  88 + }
  89 +}
... ...
ParentAssistant/Pods/HandyJSON/Source/BuiltInBasicType.swift 0 → 100644
... ... @@ -0,0 +1,306 @@
  1 +/*
  2 + * Copyright 1999-2101 Alibaba Group.
  3 + *
  4 + * Licensed under the Apache License, Version 2.0 (the "License");
  5 + * you may not use this file except in compliance with the License.
  6 + * You may obtain a copy of the License at
  7 + *
  8 + * http://www.apache.org/licenses/LICENSE-2.0
  9 + *
  10 + * Unless required by applicable law or agreed to in writing, software
  11 + * distributed under the License is distributed on an "AS IS" BASIS,
  12 + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  13 + * See the License for the specific language governing permissions and
  14 + * limitations under the License.
  15 + */
  16 +
  17 +// Created by zhouzhuo on 7/7/16.
  18 +//
  19 +
  20 +import Foundation
  21 +
  22 +protocol _BuiltInBasicType: _Transformable {
  23 +
  24 + static func _transform(from object: Any) -> Self?
  25 + func _plainValue() -> Any?
  26 +}
  27 +
  28 +// Suppport integer type
  29 +
  30 +protocol IntegerPropertyProtocol: FixedWidthInteger, _BuiltInBasicType {
  31 + init?(_ text: String, radix: Int)
  32 + init(_ number: NSNumber)
  33 +}
  34 +
  35 +extension IntegerPropertyProtocol {
  36 +
  37 + static func _transform(from object: Any) -> Self? {
  38 + switch object {
  39 + case let str as String:
  40 + return Self(str, radix: 10)
  41 + case let num as NSNumber:
  42 + return Self(num)
  43 + default:
  44 + return nil
  45 + }
  46 + }
  47 +
  48 + func _plainValue() -> Any? {
  49 + return self
  50 + }
  51 +}
  52 +
  53 +extension Int: IntegerPropertyProtocol {}
  54 +extension UInt: IntegerPropertyProtocol {}
  55 +extension Int8: IntegerPropertyProtocol {}
  56 +extension Int16: IntegerPropertyProtocol {}
  57 +extension Int32: IntegerPropertyProtocol {}
  58 +extension Int64: IntegerPropertyProtocol {}
  59 +extension UInt8: IntegerPropertyProtocol {}
  60 +extension UInt16: IntegerPropertyProtocol {}
  61 +extension UInt32: IntegerPropertyProtocol {}
  62 +extension UInt64: IntegerPropertyProtocol {}
  63 +
  64 +extension Bool: _BuiltInBasicType {
  65 +
  66 + static func _transform(from object: Any) -> Bool? {
  67 + switch object {
  68 + case let str as NSString:
  69 + let lowerCase = str.lowercased
  70 + if ["0", "false"].contains(lowerCase) {
  71 + return false
  72 + }
  73 + if ["1", "true"].contains(lowerCase) {
  74 + return true
  75 + }
  76 + return nil
  77 + case let num as NSNumber:
  78 + return num.boolValue
  79 + default:
  80 + return nil
  81 + }
  82 + }
  83 +
  84 + func _plainValue() -> Any? {
  85 + return self
  86 + }
  87 +}
  88 +
  89 +// Support float type
  90 +
  91 +protocol FloatPropertyProtocol: _BuiltInBasicType, LosslessStringConvertible {
  92 + init(_ number: NSNumber)
  93 +}
  94 +
  95 +extension FloatPropertyProtocol {
  96 +
  97 + static func _transform(from object: Any) -> Self? {
  98 + switch object {
  99 + case let str as String:
  100 + return Self(str)
  101 + case let num as NSNumber:
  102 + return Self(num)
  103 + default:
  104 + return nil
  105 + }
  106 + }
  107 +
  108 + func _plainValue() -> Any? {
  109 + return self
  110 + }
  111 +}
  112 +
  113 +extension Float: FloatPropertyProtocol {}
  114 +extension Double: FloatPropertyProtocol {}
  115 +
  116 +fileprivate let formatter: NumberFormatter = {
  117 + let formatter = NumberFormatter()
  118 + formatter.usesGroupingSeparator = false
  119 + formatter.numberStyle = .decimal
  120 + formatter.maximumFractionDigits = 16
  121 + return formatter
  122 +}()
  123 +
  124 +extension String: _BuiltInBasicType {
  125 +
  126 + static func _transform(from object: Any) -> String? {
  127 + switch object {
  128 + case let str as String:
  129 + return str
  130 + case let num as NSNumber:
  131 + // Boolean Type Inside
  132 + if NSStringFromClass(type(of: num)) == "__NSCFBoolean" {
  133 + if num.boolValue {
  134 + return "true"
  135 + } else {
  136 + return "false"
  137 + }
  138 + }
  139 + return formatter.string(from: num)
  140 + case _ as NSNull:
  141 + return nil
  142 + default:
  143 + return "\(object)"
  144 + }
  145 + }
  146 +
  147 + func _plainValue() -> Any? {
  148 + return self
  149 + }
  150 +}
  151 +
  152 +// MARK: Optional Support
  153 +
  154 +extension Optional: _BuiltInBasicType {
  155 +
  156 + static func _transform(from object: Any) -> Optional? {
  157 + if let value = (Wrapped.self as? _Transformable.Type)?.transform(from: object) as? Wrapped {
  158 + return Optional(value)
  159 + } else if let value = object as? Wrapped {
  160 + return Optional(value)
  161 + }
  162 + return nil
  163 + }
  164 +
  165 + func _getWrappedValue() -> Any? {
  166 + return self.map( { (wrapped) -> Any in
  167 + return wrapped as Any
  168 + })
  169 + }
  170 +
  171 + func _plainValue() -> Any? {
  172 + if let value = _getWrappedValue() {
  173 + if let transformable = value as? _Transformable {
  174 + return transformable.plainValue()
  175 + } else {
  176 + return value
  177 + }
  178 + }
  179 + return nil
  180 + }
  181 +}
  182 +
  183 +extension ImplicitlyUnwrappedOptional: _BuiltInBasicType {
  184 +
  185 + static func _transform(from object: Any) -> ImplicitlyUnwrappedOptional? {
  186 + if let value = (Wrapped.self as? _Transformable.Type)?.transform(from: object) as? Wrapped {
  187 + return ImplicitlyUnwrappedOptional(value)
  188 + } else if let value = object as? Wrapped {
  189 + return ImplicitlyUnwrappedOptional(value)
  190 + }
  191 + return nil
  192 + }
  193 +
  194 + func _getWrappedValue() -> Any? {
  195 + return self == nil ? nil : self!
  196 + }
  197 +
  198 + func _plainValue() -> Any? {
  199 + if let value = _getWrappedValue() {
  200 + if let transformable = value as? _Transformable {
  201 + return transformable.plainValue()
  202 + } else {
  203 + return value
  204 + }
  205 + }
  206 + return nil
  207 + }
  208 +}
  209 +
  210 +// MARK: Collection Support : Array & Set
  211 +
  212 +extension Collection {
  213 +
  214 + static func _collectionTransform(from object: Any) -> [Iterator.Element]? {
  215 + guard let arr = object as? [Any] else {
  216 + InternalLogger.logDebug("Expect object to be an array but it's not")
  217 + return nil
  218 + }
  219 + typealias Element = Iterator.Element
  220 + var result: [Element] = [Element]()
  221 + arr.forEach { (each) in
  222 + if let element = (Element.self as? _Transformable.Type)?.transform(from: each) as? Element {
  223 + result.append(element)
  224 + } else if let element = each as? Element {
  225 + result.append(element)
  226 + }
  227 + }
  228 + return result
  229 + }
  230 +
  231 + func _collectionPlainValue() -> Any? {
  232 + typealias Element = Iterator.Element
  233 + var result: [Any] = [Any]()
  234 + self.forEach { (each) in
  235 + if let transformable = each as? _Transformable, let transValue = transformable.plainValue() {
  236 + result.append(transValue)
  237 + } else {
  238 + InternalLogger.logError("value: \(each) isn't transformable type!")
  239 + }
  240 + }
  241 + return result
  242 + }
  243 +}
  244 +
  245 +extension Array: _BuiltInBasicType {
  246 +
  247 + static func _transform(from object: Any) -> [Element]? {
  248 + return self._collectionTransform(from: object)
  249 + }
  250 +
  251 + func _plainValue() -> Any? {
  252 + return self._collectionPlainValue()
  253 + }
  254 +}
  255 +
  256 +extension Set: _BuiltInBasicType {
  257 +
  258 + static func _transform(from object: Any) -> Set<Element>? {
  259 + if let arr = self._collectionTransform(from: object) {
  260 + return Set(arr)
  261 + }
  262 + return nil
  263 + }
  264 +
  265 + func _plainValue() -> Any? {
  266 + return self._collectionPlainValue()
  267 + }
  268 +}
  269 +
  270 +// MARK: Dictionary Support
  271 +
  272 +extension Dictionary: _BuiltInBasicType {
  273 +
  274 + static func _transform(from object: Any) -> [Key: Value]? {
  275 + guard let dict = object as? [String: Any] else {
  276 + InternalLogger.logDebug("Expect object to be an NSDictionary but it's not")
  277 + return nil
  278 + }
  279 + var result = [Key: Value]()
  280 + for (key, value) in dict {
  281 + if let sKey = key as? Key {
  282 + if let nValue = (Value.self as? _Transformable.Type)?.transform(from: value) as? Value {
  283 + result[sKey] = nValue
  284 + } else if let nValue = value as? Value {
  285 + result[sKey] = nValue
  286 + }
  287 + }
  288 + }
  289 + return result
  290 + }
  291 +
  292 + func _plainValue() -> Any? {
  293 + var result = [String: Any]()
  294 + for (key, value) in self {
  295 + if let key = key as? String {
  296 + if let transformable = value as? _Transformable {
  297 + if let transValue = transformable.plainValue() {
  298 + result[key] = transValue
  299 + }
  300 + }
  301 + }
  302 + }
  303 + return result
  304 + }
  305 +}
  306 +
... ...
ParentAssistant/Pods/HandyJSON/Source/BuiltInBridgeType.swift 0 → 100644
... ... @@ -0,0 +1,79 @@
  1 +//
  2 +// BuiltInBridgeType.swift
  3 +// HandyJSON
  4 +//
  5 +// Created by zhouzhuo on 15/07/2017.
  6 +// Copyright © 2017 aliyun. All rights reserved.
  7 +//
  8 +
  9 +import Foundation
  10 +
  11 +protocol _BuiltInBridgeType: _Transformable {
  12 +
  13 + static func _transform(from object: Any) -> _BuiltInBridgeType?
  14 + func _plainValue() -> Any?
  15 +}
  16 +
  17 +extension NSString: _BuiltInBridgeType {
  18 +
  19 + static func _transform(from object: Any) -> _BuiltInBridgeType? {
  20 + if let str = String.transform(from: object) {
  21 + return NSString(string: str)
  22 + }
  23 + return nil
  24 + }
  25 +
  26 + func _plainValue() -> Any? {
  27 + return self
  28 + }
  29 +}
  30 +
  31 +extension NSNumber: _BuiltInBridgeType {
  32 +
  33 + static func _transform(from object: Any) -> _BuiltInBridgeType? {
  34 + switch object {
  35 + case let num as NSNumber:
  36 + return num
  37 + case let str as NSString:
  38 + let lowercase = str.lowercased
  39 + if lowercase == "true" {
  40 + return NSNumber(booleanLiteral: true)
  41 + } else if lowercase == "false" {
  42 + return NSNumber(booleanLiteral: false)
  43 + } else {
  44 + // normal number
  45 + let formatter = NumberFormatter()
  46 + formatter.numberStyle = .decimal
  47 + return formatter.number(from: str as String)
  48 + }
  49 + default:
  50 + return nil
  51 + }
  52 + }
  53 +
  54 + func _plainValue() -> Any? {
  55 + return self
  56 + }
  57 +}
  58 +
  59 +extension NSArray: _BuiltInBridgeType {
  60 +
  61 + static func _transform(from object: Any) -> _BuiltInBridgeType? {
  62 + return object as? NSArray
  63 + }
  64 +
  65 + func _plainValue() -> Any? {
  66 + return (self as? Array<Any>)?.plainValue()
  67 + }
  68 +}
  69 +
  70 +extension NSDictionary: _BuiltInBridgeType {
  71 +
  72 + static func _transform(from object: Any) -> _BuiltInBridgeType? {
  73 + return object as? NSDictionary
  74 + }
  75 +
  76 + func _plainValue() -> Any? {
  77 + return (self as? Dictionary<String, Any>)?.plainValue()
  78 + }
  79 +}
... ...
ParentAssistant/Pods/HandyJSON/Source/Configuration.swift 0 → 100644
... ... @@ -0,0 +1,56 @@
  1 +/*
  2 + * Copyright 1999-2101 Alibaba Group.
  3 + *
  4 + * Licensed under the Apache License, Version 2.0 (the "License");
  5 + * you may not use this file except in compliance with the License.
  6 + * You may obtain a copy of the License at
  7 + *
  8 + * http://www.apache.org/licenses/LICENSE-2.0
  9 + *
  10 + * Unless required by applicable law or agreed to in writing, software
  11 + * distributed under the License is distributed on an "AS IS" BASIS,
  12 + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  13 + * See the License for the specific language governing permissions and
  14 + * limitations under the License.
  15 + */
  16 +
  17 +//
  18 +// Configuration.swift
  19 +// HandyJSON
  20 +//
  21 +// Created by zhouzhuo on 08/01/2017.
  22 +//
  23 +
  24 +public struct DeserializeOptions: OptionSet {
  25 + public let rawValue: Int
  26 +
  27 + public static let caseInsensitive = DeserializeOptions(rawValue: 1 << 0)
  28 +
  29 + public static let defaultOptions: DeserializeOptions = []
  30 +
  31 + public init(rawValue: Int) {
  32 + self.rawValue = rawValue
  33 + }
  34 +}
  35 +
  36 +public enum DebugMode: Int {
  37 + case verbose = 0
  38 + case debug = 1
  39 + case error = 2
  40 + case none = 3
  41 +}
  42 +
  43 +public struct HandyJSONConfiguration {
  44 +
  45 + private static var _mode = DebugMode.error
  46 + public static var debugMode: DebugMode {
  47 + get {
  48 + return _mode
  49 + }
  50 + set {
  51 + _mode = newValue
  52 + }
  53 + }
  54 +
  55 + public static var deserializeOptions: DeserializeOptions = .defaultOptions
  56 +}
... ...
ParentAssistant/Pods/HandyJSON/Source/CustomDateFormatTransform.swift 0 → 100644
... ... @@ -0,0 +1,40 @@
  1 +//
  2 +// CustomDateFormatTransform.swift
  3 +// ObjectMapper
  4 +//
  5 +// Created by Dan McCracken on 3/8/15.
  6 +//
  7 +// The MIT License (MIT)
  8 +//
  9 +// Copyright (c) 2014-2016 Hearst
  10 +//
  11 +// Permission is hereby granted, free of charge, to any person obtaining a copy
  12 +// of this software and associated documentation files (the "Software"), to deal
  13 +// in the Software without restriction, including without limitation the rights
  14 +// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
  15 +// copies of the Software, and to permit persons to whom the Software is
  16 +// furnished to do so, subject to the following conditions:
  17 +//
  18 +// The above copyright notice and this permission notice shall be included in
  19 +// all copies or substantial portions of the Software.
  20 +//
  21 +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
  22 +// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
  23 +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
  24 +// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
  25 +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
  26 +// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
  27 +// THE SOFTWARE.
  28 +
  29 +import Foundation
  30 +
  31 +open class CustomDateFormatTransform: DateFormatterTransform {
  32 +
  33 + public init(formatString: String) {
  34 + let formatter = DateFormatter()
  35 + formatter.locale = Locale(identifier: "en_US_POSIX")
  36 + formatter.dateFormat = formatString
  37 +
  38 + super.init(dateFormatter: formatter)
  39 + }
  40 +}
... ...
ParentAssistant/Pods/HandyJSON/Source/DataTransform.swift 0 → 100644
... ... @@ -0,0 +1,50 @@
  1 +//
  2 +// DataTransform.swift
  3 +// ObjectMapper
  4 +//
  5 +// Created by Yagrushkin, Evgeny on 8/30/16.
  6 +//
  7 +// The MIT License (MIT)
  8 +//
  9 +// Copyright (c) 2014-2016 Hearst
  10 +//
  11 +// Permission is hereby granted, free of charge, to any person obtaining a copy
  12 +// of this software and associated documentation files (the "Software"), to deal
  13 +// in the Software without restriction, including without limitation the rights
  14 +// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
  15 +// copies of the Software, and to permit persons to whom the Software is
  16 +// furnished to do so, subject to the following conditions:
  17 +//
  18 +// The above copyright notice and this permission notice shall be included in
  19 +// all copies or substantial portions of the Software.
  20 +//
  21 +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
  22 +// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
  23 +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
  24 +// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
  25 +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
  26 +// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
  27 +// THE SOFTWARE.
  28 +
  29 +import Foundation
  30 +
  31 +open class DataTransform: TransformType {
  32 + public typealias Object = Data
  33 + public typealias JSON = String
  34 +
  35 + public init() {}
  36 +
  37 + open func transformFromJSON(_ value: Any?) -> Data? {
  38 + guard let string = value as? String else{
  39 + return nil
  40 + }
  41 + return Data(base64Encoded: string)
  42 + }
  43 +
  44 + open func transformToJSON(_ value: Data?) -> String? {
  45 + guard let data = value else{
  46 + return nil
  47 + }
  48 + return data.base64EncodedString()
  49 + }
  50 +}
... ...
ParentAssistant/Pods/HandyJSON/Source/DateFormatterTransform.swift 0 → 100644
... ... @@ -0,0 +1,54 @@
  1 +//
  2 +// DateFormatterTransform.swift
  3 +// ObjectMapper
  4 +//
  5 +// Created by Tristan Himmelman on 2015-03-09.
  6 +//
  7 +// The MIT License (MIT)
  8 +//
  9 +// Copyright (c) 2014-2016 Hearst
  10 +//
  11 +// Permission is hereby granted, free of charge, to any person obtaining a copy
  12 +// of this software and associated documentation files (the "Software"), to deal
  13 +// in the Software without restriction, including without limitation the rights
  14 +// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
  15 +// copies of the Software, and to permit persons to whom the Software is
  16 +// furnished to do so, subject to the following conditions:
  17 +//
  18 +// The above copyright notice and this permission notice shall be included in
  19 +// all copies or substantial portions of the Software.
  20 +//
  21 +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
  22 +// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
  23 +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
  24 +// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
  25 +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
  26 +// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
  27 +// THE SOFTWARE.
  28 +
  29 +import Foundation
  30 +
  31 +open class DateFormatterTransform: TransformType {
  32 + public typealias Object = Date
  33 + public typealias JSON = String
  34 +
  35 + public let dateFormatter: DateFormatter
  36 +
  37 + public init(dateFormatter: DateFormatter) {
  38 + self.dateFormatter = dateFormatter
  39 + }
  40 +
  41 + open func transformFromJSON(_ value: Any?) -> Date? {
  42 + if let dateString = value as? String {
  43 + return dateFormatter.date(from: dateString)
  44 + }
  45 + return nil
  46 + }
  47 +
  48 + open func transformToJSON(_ value: Date?) -> String? {
  49 + if let date = value {
  50 + return dateFormatter.string(from: date)
  51 + }
  52 + return nil
  53 + }
  54 +}
... ...
ParentAssistant/Pods/HandyJSON/Source/DateTransform.swift 0 → 100644
... ... @@ -0,0 +1,55 @@
  1 +//
  2 +// DateTransform.swift
  3 +// ObjectMapper
  4 +//
  5 +// Created by Tristan Himmelman on 2014-10-13.
  6 +//
  7 +// The MIT License (MIT)
  8 +//
  9 +// Copyright (c) 2014-2016 Hearst
  10 +//
  11 +// Permission is hereby granted, free of charge, to any person obtaining a copy
  12 +// of this software and associated documentation files (the "Software"), to deal
  13 +// in the Software without restriction, including without limitation the rights
  14 +// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
  15 +// copies of the Software, and to permit persons to whom the Software is
  16 +// furnished to do so, subject to the following conditions:
  17 +//
  18 +// The above copyright notice and this permission notice shall be included in
  19 +// all copies or substantial portions of the Software.
  20 +//
  21 +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
  22 +// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
  23 +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
  24 +// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
  25 +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
  26 +// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
  27 +// THE SOFTWARE.
  28 +
  29 +import Foundation
  30 +
  31 +open class DateTransform: TransformType {
  32 + public typealias Object = Date
  33 + public typealias JSON = Double
  34 +
  35 + public init() {}
  36 +
  37 + open func transformFromJSON(_ value: Any?) -> Date? {
  38 + if let timeInt = value as? Double {
  39 + return Date(timeIntervalSince1970: TimeInterval(timeInt))
  40 + }
  41 +
  42 + if let timeStr = value as? String {
  43 + return Date(timeIntervalSince1970: TimeInterval(atof(timeStr)))
  44 + }
  45 +
  46 + return nil
  47 + }
  48 +
  49 + open func transformToJSON(_ value: Date?) -> Double? {
  50 + if let date = value {
  51 + return Double(date.timeIntervalSince1970)
  52 + }
  53 + return nil
  54 + }
  55 +}
... ...
ParentAssistant/Pods/HandyJSON/Source/Deserializer.swift 0 → 100644
... ... @@ -0,0 +1,181 @@
  1 +/*
  2 + * Copyright 1999-2101 Alibaba Group.
  3 + *
  4 + * Licensed under the Apache License, Version 2.0 (the "License");
  5 + * you may not use this file except in compliance with the License.
  6 + * You may obtain a copy of the License at
  7 + *
  8 + * http://www.apache.org/licenses/LICENSE-2.0
  9 + *
  10 + * Unless required by applicable law or agreed to in writing, software
  11 + * distributed under the License is distributed on an "AS IS" BASIS,
  12 + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  13 + * See the License for the specific language governing permissions and
  14 + * limitations under the License.
  15 + */
  16 +
  17 +// Created by zhouzhuo on 7/7/16.
  18 +//
  19 +
  20 +import Foundation
  21 +
  22 +public extension HandyJSON {
  23 +
  24 + /// Finds the internal dictionary in `dict` as the `designatedPath` specified, and converts it to a Model
  25 + /// `designatedPath` is a string like `result.data.orderInfo`, which each element split by `.` represents key of each layer
  26 + public static func deserialize(from dict: NSDictionary?, designatedPath: String? = nil) -> Self? {
  27 + return deserialize(from: dict as? [String: Any], designatedPath: designatedPath)
  28 + }
  29 +
  30 + /// Finds the internal dictionary in `dict` as the `designatedPath` specified, and converts it to a Model
  31 + /// `designatedPath` is a string like `result.data.orderInfo`, which each element split by `.` represents key of each layer
  32 + public static func deserialize(from dict: [String: Any]?, designatedPath: String? = nil) -> Self? {
  33 + return JSONDeserializer<Self>.deserializeFrom(dict: dict, designatedPath: designatedPath)
  34 + }
  35 +
  36 + /// Finds the internal JSON field in `json` as the `designatedPath` specified, and converts it to a Model
  37 + /// `designatedPath` is a string like `result.data.orderInfo`, which each element split by `.` represents key of each layer
  38 + public static func deserialize(from json: String?, designatedPath: String? = nil) -> Self? {
  39 + return JSONDeserializer<Self>.deserializeFrom(json: json, designatedPath: designatedPath)
  40 + }
  41 +}
  42 +
  43 +public extension Array where Element: HandyJSON {
  44 +
  45 + /// if the JSON field finded by `designatedPath` in `json` is representing a array, such as `[{...}, {...}, {...}]`,
  46 + /// this method converts it to a Models array
  47 + public static func deserialize(from json: String?, designatedPath: String? = nil) -> [Element?]? {
  48 + return JSONDeserializer<Element>.deserializeModelArrayFrom(json: json, designatedPath: designatedPath)
  49 + }
  50 +
  51 + /// deserialize model array from NSArray
  52 + public static func deserialize(from array: NSArray?) -> [Element?]? {
  53 + return JSONDeserializer<Element>.deserializeModelArrayFrom(array: array)
  54 + }
  55 +
  56 + /// deserialize model array from array
  57 + public static func deserialize(from array: [Any]?) -> [Element?]? {
  58 + return JSONDeserializer<Element>.deserializeModelArrayFrom(array: array)
  59 + }
  60 +}
  61 +
  62 +public class JSONDeserializer<T: HandyJSON> {
  63 +
  64 + /// Finds the internal dictionary in `dict` as the `designatedPath` specified, and map it to a Model
  65 + /// `designatedPath` is a string like `result.data.orderInfo`, which each element split by `.` represents key of each layer, or nil
  66 + public static func deserializeFrom(dict: NSDictionary?, designatedPath: String? = nil) -> T? {
  67 + return deserializeFrom(dict: dict as? [String: Any], designatedPath: designatedPath)
  68 + }
  69 +
  70 + /// Finds the internal dictionary in `dict` as the `designatedPath` specified, and map it to a Model
  71 + /// `designatedPath` is a string like `result.data.orderInfo`, which each element split by `.` represents key of each layer, or nil
  72 + public static func deserializeFrom(dict: [String: Any]?, designatedPath: String? = nil) -> T? {
  73 + var targetDict = dict
  74 + if let path = designatedPath {
  75 + targetDict = getInnerObject(inside: targetDict, by: path) as? [String: Any]
  76 + }
  77 + if let _dict = targetDict {
  78 + return T._transform(dict: _dict) as? T
  79 + }
  80 + return nil
  81 + }
  82 +
  83 + /// Finds the internal JSON field in `json` as the `designatedPath` specified, and converts it to Model
  84 + /// `designatedPath` is a string like `result.data.orderInfo`, which each element split by `.` represents key of each layer, or nil
  85 + public static func deserializeFrom(json: String?, designatedPath: String? = nil) -> T? {
  86 + guard let _json = json else {
  87 + return nil
  88 + }
  89 + do {
  90 + let jsonObject = try JSONSerialization.jsonObject(with: _json.data(using: String.Encoding.utf8)!, options: .allowFragments)
  91 + if let jsonDict = jsonObject as? NSDictionary {
  92 + return self.deserializeFrom(dict: jsonDict, designatedPath: designatedPath)
  93 + }
  94 + } catch let error {
  95 + InternalLogger.logError(error)
  96 + }
  97 + return nil
  98 + }
  99 +
  100 + /// Finds the internal dictionary in `dict` as the `designatedPath` specified, and use it to reassign an exist model
  101 + /// `designatedPath` is a string like `result.data.orderInfo`, which each element split by `.` represents key of each layer, or nil
  102 + public static func update(object: inout T, from dict: [String: Any]?, designatedPath: String? = nil) {
  103 + var targetDict = dict
  104 + if let path = designatedPath {
  105 + targetDict = getInnerObject(inside: targetDict, by: path) as? [String: Any]
  106 + }
  107 + if let _dict = targetDict {
  108 + T._transform(dict: _dict, to: &object)
  109 + }
  110 + }
  111 +
  112 + /// Finds the internal JSON field in `json` as the `designatedPath` specified, and use it to reassign an exist model
  113 + /// `designatedPath` is a string like `result.data.orderInfo`, which each element split by `.` represents key of each layer, or nil
  114 + public static func update(object: inout T, from json: String?, designatedPath: String? = nil) {
  115 + guard let _json = json else {
  116 + return
  117 + }
  118 + do {
  119 + let jsonObject = try JSONSerialization.jsonObject(with: _json.data(using: String.Encoding.utf8)!, options: .allowFragments)
  120 + if let jsonDict = jsonObject as? [String: Any] {
  121 + update(object: &object, from: jsonDict, designatedPath: designatedPath)
  122 + }
  123 + } catch let error {
  124 + InternalLogger.logError(error)
  125 + }
  126 + }
  127 +
  128 + /// if the JSON field found by `designatedPath` in `json` is representing a array, such as `[{...}, {...}, {...}]`,
  129 + /// this method converts it to a Models array
  130 + public static func deserializeModelArrayFrom(json: String?, designatedPath: String? = nil) -> [T?]? {
  131 + guard let _json = json else {
  132 + return nil
  133 + }
  134 + do {
  135 + let jsonObject = try JSONSerialization.jsonObject(with: _json.data(using: String.Encoding.utf8)!, options: .allowFragments)
  136 + if let jsonArray = getInnerObject(inside: jsonObject, by: designatedPath) as? [Any] {
  137 + return jsonArray.map({ (item) -> T? in
  138 + return self.deserializeFrom(dict: item as? [String: Any])
  139 + })
  140 + }
  141 + } catch let error {
  142 + InternalLogger.logError(error)
  143 + }
  144 + return nil
  145 + }
  146 +
  147 + /// mapping raw array to Models array
  148 + public static func deserializeModelArrayFrom(array: NSArray?) -> [T?]? {
  149 + return deserializeModelArrayFrom(array: array as? [Any])
  150 + }
  151 +
  152 + /// mapping raw array to Models array
  153 + public static func deserializeModelArrayFrom(array: [Any]?) -> [T?]? {
  154 + guard let _arr = array else {
  155 + return nil
  156 + }
  157 + return _arr.map({ (item) -> T? in
  158 + return self.deserializeFrom(dict: item as? NSDictionary)
  159 + })
  160 + }
  161 +}
  162 +
  163 +fileprivate func getInnerObject(inside object: Any?, by designatedPath: String?) -> Any? {
  164 + var result: Any? = object
  165 + var abort = false
  166 + if let paths = designatedPath?.components(separatedBy: "."), paths.count > 0 {
  167 + var next = object as? [String: Any]
  168 + paths.forEach({ (seg) in
  169 + if seg.trimmingCharacters(in: CharacterSet.whitespacesAndNewlines) == "" || abort {
  170 + return
  171 + }
  172 + if let _next = next?[seg] {
  173 + result = _next
  174 + next = _next as? [String: Any]
  175 + } else {
  176 + abort = true
  177 + }
  178 + })
  179 + }
  180 + return abort ? nil : result
  181 +}
... ...
ParentAssistant/Pods/HandyJSON/Source/EnumTransform.swift 0 → 100644
... ... @@ -0,0 +1,50 @@
  1 +//
  2 +// EnumTransform.swift
  3 +// ObjectMapper
  4 +//
  5 +// Created by Kaan Dedeoglu on 3/20/15.
  6 +//
  7 +// The MIT License (MIT)
  8 +//
  9 +// Copyright (c) 2014-2016 Hearst
  10 +//
  11 +// Permission is hereby granted, free of charge, to any person obtaining a copy
  12 +// of this software and associated documentation files (the "Software"), to deal
  13 +// in the Software without restriction, including without limitation the rights
  14 +// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
  15 +// copies of the Software, and to permit persons to whom the Software is
  16 +// furnished to do so, subject to the following conditions:
  17 +//
  18 +// The above copyright notice and this permission notice shall be included in
  19 +// all copies or substantial portions of the Software.
  20 +//
  21 +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
  22 +// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
  23 +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
  24 +// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
  25 +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
  26 +// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
  27 +// THE SOFTWARE.
  28 +
  29 +import Foundation
  30 +
  31 +open class EnumTransform<T: RawRepresentable>: TransformType {
  32 + public typealias Object = T
  33 + public typealias JSON = T.RawValue
  34 +
  35 + public init() {}
  36 +
  37 + open func transformFromJSON(_ value: Any?) -> T? {
  38 + if let raw = value as? T.RawValue {
  39 + return T(rawValue: raw)
  40 + }
  41 + return nil
  42 + }
  43 +
  44 + open func transformToJSON(_ value: T?) -> T.RawValue? {
  45 + if let obj = value {
  46 + return obj.rawValue
  47 + }
  48 + return nil
  49 + }
  50 +}
... ...
ParentAssistant/Pods/HandyJSON/Source/EnumType.swift 0 → 100644
... ... @@ -0,0 +1,31 @@
  1 +//
  2 +// EnumType.swift
  3 +// HandyJSON
  4 +//
  5 +// Created by zhouzhuo on 16/07/2017.
  6 +// Copyright © 2017 aliyun. All rights reserved.
  7 +//
  8 +
  9 +import Foundation
  10 +
  11 +public protocol _RawEnumProtocol: _Transformable {
  12 +
  13 + static func _transform(from object: Any) -> Self?
  14 + func _plainValue() -> Any?
  15 +}
  16 +
  17 +extension RawRepresentable where Self: _RawEnumProtocol {
  18 +
  19 + public static func _transform(from object: Any) -> Self? {
  20 + if let transformableType = RawValue.self as? _Transformable.Type {
  21 + if let typedValue = transformableType.transform(from: object) {
  22 + return Self(rawValue: typedValue as! RawValue)
  23 + }
  24 + }
  25 + return nil
  26 + }
  27 +
  28 + public func _plainValue() -> Any? {
  29 + return self.rawValue
  30 + }
  31 +}
... ...
ParentAssistant/Pods/HandyJSON/Source/Export.swift 0 → 100644
... ... @@ -0,0 +1,15 @@
  1 +//
  2 +// Export.swift
  3 +// HandyJSON
  4 +//
  5 +// Created by zhouzhuo on 16/07/2017.
  6 +// Copyright © 2017 aliyun. All rights reserved.
  7 +//
  8 +
  9 +import Foundation
  10 +
  11 +public protocol HandyJSONCustomTransformable: _ExtendCustomBasicType {}
  12 +
  13 +public protocol HandyJSON: _ExtendCustomModelType {}
  14 +
  15 +public protocol HandyJSONEnum: _RawEnumProtocol {}
... ...
ParentAssistant/Pods/HandyJSON/Source/ExtendCustomBasicType.swift 0 → 100644
... ... @@ -0,0 +1,28 @@
  1 +/*
  2 + * Copyright 1999-2101 Alibaba Group.
  3 + *
  4 + * Licensed under the Apache License, Version 2.0 (the "License");
  5 + * you may not use this file except in compliance with the License.
  6 + * You may obtain a copy of the License at
  7 + *
  8 + * http://www.apache.org/licenses/LICENSE-2.0
  9 + *
  10 + * Unless required by applicable law or agreed to in writing, software
  11 + * distributed under the License is distributed on an "AS IS" BASIS,
  12 + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  13 + * See the License for the specific language governing permissions and
  14 + * limitations under the License.
  15 + */
  16 +
  17 +//
  18 +// ExtendCustomBasicType.swift
  19 +// HandyJSON
  20 +//
  21 +// Created by zhouzhuo on 05/09/2017.
  22 +//
  23 +
  24 +public protocol _ExtendCustomBasicType: _Transformable {
  25 +
  26 + static func _transform(from object: Any) -> Self?
  27 + func _plainValue() -> Any?
  28 +}
... ...
ParentAssistant/Pods/HandyJSON/Source/ExtendCustomModelType.swift 0 → 100644
... ... @@ -0,0 +1,272 @@
  1 +//
  2 +// ExtendCustomType.swift
  3 +// HandyJSON
  4 +//
  5 +// Created by zhouzhuo on 16/07/2017.
  6 +// Copyright © 2017 aliyun. All rights reserved.
  7 +//
  8 +
  9 +import Foundation
  10 +
  11 +public protocol _ExtendCustomModelType: _Transformable {
  12 + init()
  13 + mutating func mapping(mapper: HelpingMapper)
  14 + mutating func didFinishMapping()
  15 +}
  16 +
  17 +extension _ExtendCustomModelType {
  18 +
  19 + public mutating func mapping(mapper: HelpingMapper) {}
  20 + public mutating func didFinishMapping() {}
  21 +}
  22 +
  23 +fileprivate func convertKeyIfNeeded(dict: [String: Any]) -> [String: Any] {
  24 + if HandyJSONConfiguration.deserializeOptions.contains(.caseInsensitive) {
  25 + var newDict = [String: Any]()
  26 + dict.forEach({ (kvPair) in
  27 + let (key, value) = kvPair
  28 + newDict[key.lowercased()] = value
  29 + })
  30 + return newDict
  31 + }
  32 + return dict
  33 +}
  34 +
  35 +fileprivate func getRawValueFrom(dict: [String: Any], property: PropertyInfo, mapper: HelpingMapper) -> Any? {
  36 + if let mappingHandler = mapper.getMappingHandler(key: property.address.hashValue) {
  37 + if let mappingPaths = mappingHandler.mappingPaths, mappingPaths.count > 0 {
  38 + for mappingPath in mappingPaths {
  39 + if let _value = dict.findValueBy(path: mappingPath) {
  40 + return _value
  41 + }
  42 + }
  43 + return nil
  44 + }
  45 + }
  46 + if HandyJSONConfiguration.deserializeOptions.contains(.caseInsensitive) {
  47 + return dict[property.key.lowercased()]
  48 + }
  49 + return dict[property.key]
  50 +}
  51 +
  52 +fileprivate func convertValue(rawValue: Any, property: PropertyInfo, mapper: HelpingMapper) -> Any? {
  53 + if let mappingHandler = mapper.getMappingHandler(key: property.address.hashValue), let transformer = mappingHandler.assignmentClosure {
  54 + return transformer(rawValue)
  55 + }
  56 + if let transformableType = property.type as? _Transformable.Type {
  57 + return transformableType.transform(from: rawValue)
  58 + } else {
  59 + return extensions(of: property.type).takeValue(from: rawValue)
  60 + }
  61 +}
  62 +
  63 +fileprivate func assignProperty(convertedValue: Any, instance: _ExtendCustomModelType, property: PropertyInfo) {
  64 + if property.bridged {
  65 + (instance as! NSObject).setValue(convertedValue, forKey: property.key)
  66 + } else {
  67 + extensions(of: property.type).write(convertedValue, to: property.address)
  68 + }
  69 +}
  70 +
  71 +fileprivate func readAllChildrenFrom(mirror: Mirror) -> [(String, Any)] {
  72 + var children = [(label: String?, value: Any)]()
  73 + let mirrorChildrenCollection = AnyRandomAccessCollection(mirror.children)!
  74 + children += mirrorChildrenCollection
  75 +
  76 + var currentMirror = mirror
  77 + while let superclassChildren = currentMirror.superclassMirror?.children {
  78 + let randomCollection = AnyRandomAccessCollection(superclassChildren)!
  79 + children += randomCollection
  80 + currentMirror = currentMirror.superclassMirror!
  81 + }
  82 + var result = [(String, Any)]()
  83 + children.forEach { (child) in
  84 + if let _label = child.label {
  85 + result.append((_label, child.value))
  86 + }
  87 + }
  88 + return result
  89 +}
  90 +
  91 +fileprivate func merge(children: [(String, Any)], propertyInfos: [PropertyInfo]) -> [String: (Any, PropertyInfo?)] {
  92 + var infoDict = [String: PropertyInfo]()
  93 + propertyInfos.forEach { (info) in
  94 + infoDict[info.key] = info
  95 + }
  96 +
  97 + var result = [String: (Any, PropertyInfo?)]()
  98 + children.forEach { (child) in
  99 + result[child.0] = (child.1, infoDict[child.0])
  100 + }
  101 + return result
  102 +}
  103 +
  104 +// this's a workaround before https://bugs.swift.org/browse/SR-5223 fixed
  105 +extension NSObject {
  106 + static func createInstance() -> NSObject {
  107 + return self.init()
  108 + }
  109 +}
  110 +
  111 +extension _ExtendCustomModelType {
  112 +
  113 + static func _transform(from object: Any) -> Self? {
  114 + if let dict = object as? [String: Any] {
  115 + // nested object, transform recursively
  116 + return self._transform(dict: dict) as? Self
  117 + }
  118 + return nil
  119 + }
  120 +
  121 + static func _transform(dict: [String: Any]) -> _ExtendCustomModelType? {
  122 +
  123 + var instance: Self
  124 + if let _nsType = Self.self as? NSObject.Type {
  125 + instance = _nsType.createInstance() as! Self
  126 + } else {
  127 + instance = Self.init()
  128 + }
  129 + _transform(dict: dict, to: &instance)
  130 + instance.didFinishMapping()
  131 + return instance
  132 + }
  133 +
  134 + static func _transform(dict: [String: Any], to instance: inout Self) {
  135 + guard let properties = getProperties(forType: Self.self) else {
  136 + InternalLogger.logDebug("Failed when try to get properties from type: \(type(of: Self.self))")
  137 + return
  138 + }
  139 +
  140 + // do user-specified mapping first
  141 + let mapper = HelpingMapper()
  142 + instance.mapping(mapper: mapper)
  143 +
  144 + // get head addr
  145 + let rawPointer = instance.headPointer()
  146 + InternalLogger.logVerbose("instance start at: ", rawPointer.hashValue)
  147 +
  148 + // process dictionary
  149 + let _dict = convertKeyIfNeeded(dict: dict)
  150 +
  151 + let instanceIsNsObject = instance.isNSObjectType()
  152 + let bridgedPropertyList = instance.getBridgedPropertyList()
  153 +
  154 + properties.forEach { (property) in
  155 + let isBridgedProperty = instanceIsNsObject && bridgedPropertyList.contains(property.key)
  156 +
  157 + let propAddr = rawPointer.advanced(by: property.offset)
  158 + InternalLogger.logVerbose(property.key, "address at: ", propAddr.hashValue)
  159 + if mapper.propertyExcluded(key: propAddr.hashValue) {
  160 + InternalLogger.logDebug("Exclude property: \(property.key)")
  161 + return
  162 + }
  163 +
  164 + let propertyDetail = PropertyInfo(key: property.key, type: property.type, address: propAddr, bridged: isBridgedProperty)
  165 + InternalLogger.logVerbose("field: ", property.key, " offset: ", property.offset, " isBridgeProperty: ", isBridgedProperty)
  166 +
  167 + if let rawValue = getRawValueFrom(dict: _dict, property: propertyDetail, mapper: mapper) {
  168 + if let convertedValue = convertValue(rawValue: rawValue, property: propertyDetail, mapper: mapper) {
  169 + assignProperty(convertedValue: convertedValue, instance: instance, property: propertyDetail)
  170 + return
  171 + }
  172 + }
  173 + InternalLogger.logDebug("Property: \(property.key) hasn't been written in")
  174 + }
  175 + }
  176 +}
  177 +
  178 +extension _ExtendCustomModelType {
  179 +
  180 + func _plainValue() -> Any? {
  181 + return Self._serializeAny(object: self)
  182 + }
  183 +
  184 + static func _serializeAny(object: _Transformable) -> Any? {
  185 +
  186 + let mirror = Mirror(reflecting: object)
  187 +
  188 + guard let displayStyle = mirror.displayStyle else {
  189 + return object.plainValue()
  190 + }
  191 +
  192 + // after filtered by protocols above, now we expect the type is pure struct/class
  193 + switch displayStyle {
  194 + case .class, .struct:
  195 + let mapper = HelpingMapper()
  196 + // do user-specified mapping first
  197 + if !(object is _ExtendCustomModelType) {
  198 + InternalLogger.logDebug("This model of type: \(type(of: object)) is not mappable but is class/struct type")
  199 + return object
  200 + }
  201 +
  202 + let children = readAllChildrenFrom(mirror: mirror)
  203 +
  204 + guard let properties = getProperties(forType: type(of: object)) else {
  205 + InternalLogger.logError("Can not get properties info for type: \(type(of: object))")
  206 + return nil
  207 + }
  208 +
  209 + var mutableObject = object as! _ExtendCustomModelType
  210 + let instanceIsNsObject = mutableObject.isNSObjectType()
  211 + let head = mutableObject.headPointer()
  212 + let bridgedProperty = mutableObject.getBridgedPropertyList()
  213 + let propertyInfos = properties.map({ (desc) -> PropertyInfo in
  214 + return PropertyInfo(key: desc.key, type: desc.type, address: head.advanced(by: desc.offset),
  215 + bridged: instanceIsNsObject && bridgedProperty.contains(desc.key))
  216 + })
  217 +
  218 + mutableObject.mapping(mapper: mapper)
  219 +
  220 + let requiredInfo = merge(children: children, propertyInfos: propertyInfos)
  221 +
  222 + return _serializeModelObject(instance: mutableObject, properties: requiredInfo, mapper: mapper) as Any
  223 + default:
  224 + return object.plainValue()
  225 + }
  226 + }
  227 +
  228 + static func _serializeModelObject(instance: _ExtendCustomModelType, properties: [String: (Any, PropertyInfo?)], mapper: HelpingMapper) -> [String: Any] {
  229 +
  230 + var dict = [String: Any]()
  231 + for (key, property) in properties {
  232 + var realKey = key
  233 + var realValue = property.0
  234 +
  235 + if let info = property.1 {
  236 + if info.bridged, let _value = (instance as! NSObject).value(forKey: key) {
  237 + realValue = _value
  238 + }
  239 +
  240 + if mapper.propertyExcluded(key: info.address.hashValue) {
  241 + continue
  242 + }
  243 +
  244 + if let mappingHandler = mapper.getMappingHandler(key: info.address.hashValue) {
  245 + // if specific key is set, replace the label
  246 + if let mappingPaths = mappingHandler.mappingPaths, mappingPaths.count > 0 {
  247 + // take the first path, last segment if more than one
  248 + realKey = mappingPaths[0].segments.last!
  249 + }
  250 +
  251 + if let transformer = mappingHandler.takeValueClosure {
  252 + if let _transformedValue = transformer(realValue) {
  253 + dict[realKey] = _transformedValue
  254 + }
  255 + continue
  256 + }
  257 + }
  258 + }
  259 +
  260 + if let typedValue = realValue as? _Transformable {
  261 + if let result = self._serializeAny(object: typedValue) {
  262 + dict[realKey] = result
  263 + continue
  264 + }
  265 + }
  266 +
  267 + InternalLogger.logDebug("The value for key: \(key) is not transformable type")
  268 + }
  269 + return dict
  270 + }
  271 +}
  272 +
... ...
ParentAssistant/Pods/HandyJSON/Source/HandyJSON.h 0 → 100644
... ... @@ -0,0 +1,30 @@
  1 +/*
  2 + * Copyright 1999-2101 Alibaba Group.
  3 + *
  4 + * Licensed under the Apache License, Version 2.0 (the "License");
  5 + * you may not use this file except in compliance with the License.
  6 + * You may obtain a copy of the License at
  7 + *
  8 + * http://www.apache.org/licenses/LICENSE-2.0
  9 + *
  10 + * Unless required by applicable law or agreed to in writing, software
  11 + * distributed under the License is distributed on an "AS IS" BASIS,
  12 + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  13 + * See the License for the specific language governing permissions and
  14 + * limitations under the License.
  15 + */
  16 +
  17 +// Created by zhouzhuo on 7/11/16.
  18 +//
  19 +
  20 +@import Foundation;
  21 +
  22 +//! Project version number for HandyJSON.
  23 +FOUNDATION_EXPORT double HandyJSONVersionNumber;
  24 +
  25 +//! Project version string for HandyJSON.
  26 +FOUNDATION_EXPORT const unsigned char HandyJSONVersionString[];
  27 +
  28 +// In this header, you should import all the public headers of your framework using statements like #import <HandyJSON/PublicHeader.h>
  29 +
  30 +
... ...
ParentAssistant/Pods/HandyJSON/Source/HelpingMapper.swift 0 → 100644
... ... @@ -0,0 +1,244 @@
  1 +/*
  2 + * Copyright 1999-2101 Alibaba Group.
  3 + *
  4 + * Licensed under the Apache License, Version 2.0 (the "License");
  5 + * you may not use this file except in compliance with the License.
  6 + * You may obtain a copy of the License at
  7 + *
  8 + * http://www.apache.org/licenses/LICENSE-2.0
  9 + *
  10 + * Unless required by applicable law or agreed to in writing, software
  11 + * distributed under the License is distributed on an "AS IS" BASIS,
  12 + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  13 + * See the License for the specific language governing permissions and
  14 + * limitations under the License.
  15 + */
  16 +
  17 +// Created by zhouzhuo on 9/20/16.
  18 +//
  19 +
  20 +import Foundation
  21 +
  22 +public typealias CustomMappingKeyValueTuple = (Int, MappingPropertyHandler)
  23 +
  24 +struct MappingPath {
  25 + var segments: [String]
  26 +
  27 + static func buildFrom(rawPath: String) -> MappingPath {
  28 + let regex = try! NSRegularExpression(pattern: "(?<![\\\\])\\.")
  29 + let nsString = rawPath as NSString
  30 + let results = regex.matches(in: rawPath, range: NSRange(location: 0, length: nsString.length))
  31 + var splitPoints = results.map { $0.range.location }
  32 +
  33 + var curPos = 0
  34 + var pathArr = [String]()
  35 + splitPoints.append(nsString.length)
  36 + splitPoints.forEach({ (point) in
  37 + let start = rawPath.index(rawPath.startIndex, offsetBy: curPos)
  38 + let end = rawPath.index(rawPath.startIndex, offsetBy: point)
  39 + let subPath = String(rawPath[start ..< end]).replacingOccurrences(of: "\\.", with: ".")
  40 + if !subPath.isEmpty {
  41 + pathArr.append(subPath)
  42 + }
  43 + curPos = point + 1
  44 + })
  45 + return MappingPath(segments: pathArr)
  46 + }
  47 +}
  48 +
  49 +extension Dictionary where Key == String, Value: Any {
  50 +
  51 + func findValueBy(path: MappingPath) -> Any? {
  52 + var currentDict: [String: Any]? = self
  53 + var lastValue: Any?
  54 + path.segments.forEach { (segment) in
  55 + lastValue = currentDict?[segment]
  56 + currentDict = currentDict?[segment] as? [String: Any]
  57 + }
  58 + return lastValue
  59 + }
  60 +}
  61 +
  62 +public class MappingPropertyHandler {
  63 + var mappingPaths: [MappingPath]?
  64 + var assignmentClosure: ((Any?) -> (Any?))?
  65 + var takeValueClosure: ((Any?) -> (Any?))?
  66 +
  67 + public init(rawPaths: [String]?, assignmentClosure: ((Any?) -> (Any?))?, takeValueClosure: ((Any?) -> (Any?))?) {
  68 + let mappingPaths = rawPaths?.map({ (rawPath) -> MappingPath in
  69 + if HandyJSONConfiguration.deserializeOptions.contains(.caseInsensitive) {
  70 + return MappingPath.buildFrom(rawPath: rawPath.lowercased())
  71 + }
  72 + return MappingPath.buildFrom(rawPath: rawPath)
  73 + }).filter({ (mappingPath) -> Bool in
  74 + return mappingPath.segments.count > 0
  75 + })
  76 + if let count = mappingPaths?.count, count > 0 {
  77 + self.mappingPaths = mappingPaths
  78 + }
  79 + self.assignmentClosure = assignmentClosure
  80 + self.takeValueClosure = takeValueClosure
  81 + }
  82 +}
  83 +
  84 +public class HelpingMapper {
  85 +
  86 + private var mappingHandlers = [Int: MappingPropertyHandler]()
  87 + private var excludeProperties = [Int]()
  88 +
  89 + internal func getMappingHandler(key: Int) -> MappingPropertyHandler? {
  90 + return self.mappingHandlers[key]
  91 + }
  92 +
  93 + internal func propertyExcluded(key: Int) -> Bool {
  94 + return self.excludeProperties.contains(key)
  95 + }
  96 +
  97 + public func specify<T>(property: inout T, name: String) {
  98 + self.specify(property: &property, name: name, converter: nil)
  99 + }
  100 +
  101 + public func specify<T>(property: inout T, converter: @escaping (String) -> T) {
  102 + self.specify(property: &property, name: nil, converter: converter)
  103 + }
  104 +
  105 + public func specify<T>(property: inout T, name: String?, converter: ((String) -> T)?) {
  106 + let pointer = withUnsafePointer(to: &property, { return $0 })
  107 + let key = pointer.hashValue
  108 + let names = (name == nil ? nil : [name!])
  109 +
  110 + if let _converter = converter {
  111 + let assignmentClosure = { (jsonValue: Any?) -> Any? in
  112 + if let _value = jsonValue{
  113 + if let object = _value as? NSObject{
  114 + if let str = String.transform(from: object){
  115 + return _converter(str)
  116 + }
  117 + }
  118 + }
  119 + return nil
  120 + }
  121 + self.mappingHandlers[key] = MappingPropertyHandler(rawPaths: names, assignmentClosure: assignmentClosure, takeValueClosure: nil)
  122 + } else {
  123 + self.mappingHandlers[key] = MappingPropertyHandler(rawPaths: names, assignmentClosure: nil, takeValueClosure: nil)
  124 + }
  125 + }
  126 +
  127 + public func exclude<T>(property: inout T) {
  128 + self._exclude(property: &property)
  129 + }
  130 +
  131 + fileprivate func addCustomMapping(key: Int, mappingInfo: MappingPropertyHandler) {
  132 + self.mappingHandlers[key] = mappingInfo
  133 + }
  134 +
  135 + fileprivate func _exclude<T>(property: inout T) {
  136 + let pointer = withUnsafePointer(to: &property, { return $0 })
  137 + self.excludeProperties.append(pointer.hashValue)
  138 + }
  139 +}
  140 +
  141 +infix operator <-- : LogicalConjunctionPrecedence
  142 +
  143 +public func <-- <T>(property: inout T, name: String) -> CustomMappingKeyValueTuple {
  144 + return property <-- [name]
  145 +}
  146 +
  147 +public func <-- <T>(property: inout T, names: [String]) -> CustomMappingKeyValueTuple {
  148 + let pointer = withUnsafePointer(to: &property, { return $0 })
  149 + let key = pointer.hashValue
  150 + return (key, MappingPropertyHandler(rawPaths: names, assignmentClosure: nil, takeValueClosure: nil))
  151 +}
  152 +
  153 +// MARK: non-optional properties
  154 +public func <-- <Transform: TransformType>(property: inout Transform.Object, transformer: Transform) -> CustomMappingKeyValueTuple {
  155 + return property <-- (nil, transformer)
  156 +}
  157 +
  158 +public func <-- <Transform: TransformType>(property: inout Transform.Object, transformer: (String?, Transform?)) -> CustomMappingKeyValueTuple {
  159 + let names = (transformer.0 == nil ? [] : [transformer.0!])
  160 + return property <-- (names, transformer.1)
  161 +}
  162 +
  163 +public func <-- <Transform: TransformType>(property: inout Transform.Object, transformer: ([String], Transform?)) -> CustomMappingKeyValueTuple {
  164 + let pointer = withUnsafePointer(to: &property, { return $0 })
  165 + let key = pointer.hashValue
  166 + let assignmentClosure = { (jsonValue: Any?) -> Transform.Object? in
  167 + return transformer.1?.transformFromJSON(jsonValue)
  168 + }
  169 + let takeValueClosure = { (objectValue: Any?) -> Any? in
  170 + if let _value = objectValue as? Transform.Object {
  171 + return transformer.1?.transformToJSON(_value) as Any
  172 + }
  173 + return nil
  174 + }
  175 + return (key, MappingPropertyHandler(rawPaths: transformer.0, assignmentClosure: assignmentClosure, takeValueClosure: takeValueClosure))
  176 +}
  177 +
  178 +// MARK: optional properties
  179 +public func <-- <Transform: TransformType>(property: inout Transform.Object?, transformer: Transform) -> CustomMappingKeyValueTuple {
  180 + return property <-- (nil, transformer)
  181 +}
  182 +
  183 +public func <-- <Transform: TransformType>(property: inout Transform.Object?, transformer: (String?, Transform?)) -> CustomMappingKeyValueTuple {
  184 + let names = (transformer.0 == nil ? [] : [transformer.0!])
  185 + return property <-- (names, transformer.1)
  186 +}
  187 +
  188 +public func <-- <Transform: TransformType>(property: inout Transform.Object?, transformer: ([String], Transform?)) -> CustomMappingKeyValueTuple {
  189 + let pointer = withUnsafePointer(to: &property, { return $0 })
  190 + let key = pointer.hashValue
  191 + let assignmentClosure = { (jsonValue: Any?) -> Any? in
  192 + return transformer.1?.transformFromJSON(jsonValue)
  193 + }
  194 + let takeValueClosure = { (objectValue: Any?) -> Any? in
  195 + if let _value = objectValue as? Transform.Object {
  196 + return transformer.1?.transformToJSON(_value) as Any
  197 + }
  198 + return nil
  199 + }
  200 + return (key, MappingPropertyHandler(rawPaths: transformer.0, assignmentClosure: assignmentClosure, takeValueClosure: takeValueClosure))
  201 +}
  202 +
  203 +// MARK: implicitly unwrap optional properties
  204 +public func <-- <Transform: TransformType>(property: inout Transform.Object!, transformer: Transform) -> CustomMappingKeyValueTuple {
  205 + return property <-- (nil, transformer)
  206 +}
  207 +
  208 +public func <-- <Transform: TransformType>(property: inout Transform.Object!, transformer: (String?, Transform?)) -> CustomMappingKeyValueTuple {
  209 + let names = (transformer.0 == nil ? [] : [transformer.0!])
  210 + return property <-- (names, transformer.1)
  211 +}
  212 +
  213 +public func <-- <Transform: TransformType>(property: inout Transform.Object!, transformer: ([String], Transform?)) -> CustomMappingKeyValueTuple {
  214 + let pointer = withUnsafePointer(to: &property, { return $0 })
  215 + let key = pointer.hashValue
  216 + let assignmentClosure = { (jsonValue: Any?) in
  217 + return transformer.1?.transformFromJSON(jsonValue)
  218 + }
  219 + let takeValueClosure = { (objectValue: Any?) -> Any? in
  220 + if let _value = objectValue as? Transform.Object {
  221 + return transformer.1?.transformToJSON(_value) as Any
  222 + }
  223 + return nil
  224 + }
  225 + return (key, MappingPropertyHandler(rawPaths: transformer.0, assignmentClosure: assignmentClosure, takeValueClosure: takeValueClosure))
  226 +}
  227 +
  228 +infix operator <<< : AssignmentPrecedence
  229 +
  230 +public func <<< (mapper: HelpingMapper, mapping: CustomMappingKeyValueTuple) {
  231 + mapper.addCustomMapping(key: mapping.0, mappingInfo: mapping.1)
  232 +}
  233 +
  234 +public func <<< (mapper: HelpingMapper, mappings: [CustomMappingKeyValueTuple]) {
  235 + mappings.forEach { (mapping) in
  236 + mapper.addCustomMapping(key: mapping.0, mappingInfo: mapping.1)
  237 + }
  238 +}
  239 +
  240 +infix operator >>> : AssignmentPrecedence
  241 +
  242 +public func >>> <T> (mapper: HelpingMapper, property: inout T) {
  243 + mapper._exclude(property: &property)
  244 +}
... ...
ParentAssistant/Pods/HandyJSON/Source/HexColorTransform.swift 0 → 100644
... ... @@ -0,0 +1,115 @@
  1 +//
  2 +// HexColorTransform.swift
  3 +// ObjectMapper
  4 +//
  5 +// Created by Vitaliy Kuzmenko on 10/10/16.
  6 +// Copyright © 2016 hearst. All rights reserved.
  7 +//
  8 +
  9 +#if os(iOS) || os(tvOS) || os(watchOS)
  10 +import UIKit
  11 +#else
  12 +import Cocoa
  13 +#endif
  14 +
  15 +open class HexColorTransform: TransformType {
  16 +
  17 + #if os(iOS) || os(tvOS) || os(watchOS)
  18 + public typealias Object = UIColor
  19 + #else
  20 + public typealias Object = NSColor
  21 + #endif
  22 +
  23 + public typealias JSON = String
  24 +
  25 + var prefix: Bool = false
  26 +
  27 + var alpha: Bool = false
  28 +
  29 + public init(prefixToJSON: Bool = false, alphaToJSON: Bool = false) {
  30 + alpha = alphaToJSON
  31 + prefix = prefixToJSON
  32 + }
  33 +
  34 + open func transformFromJSON(_ value: Any?) -> Object? {
  35 + if let rgba = value as? String {
  36 + if rgba.hasPrefix("#") {
  37 + let index = rgba.index(rgba.startIndex, offsetBy: 1)
  38 + let hex = String(rgba[index...])
  39 + return getColor(hex: hex)
  40 + } else {
  41 + return getColor(hex: rgba)
  42 + }
  43 + }
  44 + return nil
  45 + }
  46 +
  47 + open func transformToJSON(_ value: Object?) -> JSON? {
  48 + if let value = value {
  49 + return hexString(color: value)
  50 + }
  51 + return nil
  52 + }
  53 +
  54 + fileprivate func hexString(color: Object) -> String {
  55 + let comps = color.cgColor.components!
  56 + let r = Int(comps[0] * 255)
  57 + let g = Int(comps[1] * 255)
  58 + let b = Int(comps[2] * 255)
  59 + let a = Int(comps[3] * 255)
  60 + var hexString: String = ""
  61 + if prefix {
  62 + hexString = "#"
  63 + }
  64 + hexString += String(format: "%02X%02X%02X", r, g, b)
  65 +
  66 + if alpha {
  67 + hexString += String(format: "%02X", a)
  68 + }
  69 + return hexString
  70 + }
  71 +
  72 + fileprivate func getColor(hex: String) -> Object? {
  73 + var red: CGFloat = 0.0
  74 + var green: CGFloat = 0.0
  75 + var blue: CGFloat = 0.0
  76 + var alpha: CGFloat = 1.0
  77 +
  78 + let scanner = Scanner(string: hex)
  79 + var hexValue: CUnsignedLongLong = 0
  80 + if scanner.scanHexInt64(&hexValue) {
  81 + switch (hex.count) {
  82 + case 3:
  83 + red = CGFloat((hexValue & 0xF00) >> 8) / 15.0
  84 + green = CGFloat((hexValue & 0x0F0) >> 4) / 15.0
  85 + blue = CGFloat(hexValue & 0x00F) / 15.0
  86 + case 4:
  87 + red = CGFloat((hexValue & 0xF000) >> 12) / 15.0
  88 + green = CGFloat((hexValue & 0x0F00) >> 8) / 15.0
  89 + blue = CGFloat((hexValue & 0x00F0) >> 4) / 15.0
  90 + alpha = CGFloat(hexValue & 0x000F) / 15.0
  91 + case 6:
  92 + red = CGFloat((hexValue & 0xFF0000) >> 16) / 255.0
  93 + green = CGFloat((hexValue & 0x00FF00) >> 8) / 255.0
  94 + blue = CGFloat(hexValue & 0x0000FF) / 255.0
  95 + case 8:
  96 + red = CGFloat((hexValue & 0xFF000000) >> 24) / 255.0
  97 + green = CGFloat((hexValue & 0x00FF0000) >> 16) / 255.0
  98 + blue = CGFloat((hexValue & 0x0000FF00) >> 8) / 255.0
  99 + alpha = CGFloat(hexValue & 0x000000FF) / 255.0
  100 + default:
  101 + // Invalid RGB string, number of characters after '#' should be either 3, 4, 6 or 8
  102 + return nil
  103 + }
  104 + } else {
  105 + // "Scan hex error
  106 + return nil
  107 + }
  108 + #if os(iOS) || os(tvOS) || os(watchOS)
  109 + return UIColor(red: red, green: green, blue: blue, alpha: alpha)
  110 + #else
  111 + return NSColor(calibratedRed: red, green: green, blue: blue, alpha: alpha)
  112 + #endif
  113 + }
  114 +}
  115 +
... ...
ParentAssistant/Pods/HandyJSON/Source/ISO8601DateTransform.swift 0 → 100644
... ... @@ -0,0 +1,41 @@
  1 +//
  2 +// ISO8601DateTransform.swift
  3 +// ObjectMapper
  4 +//
  5 +// Created by Jean-Pierre Mouilleseaux on 21 Nov 2014.
  6 +//
  7 +// The MIT License (MIT)
  8 +//
  9 +// Copyright (c) 2014-2016 Hearst
  10 +//
  11 +// Permission is hereby granted, free of charge, to any person obtaining a copy
  12 +// of this software and associated documentation files (the "Software"), to deal
  13 +// in the Software without restriction, including without limitation the rights
  14 +// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
  15 +// copies of the Software, and to permit persons to whom the Software is
  16 +// furnished to do so, subject to the following conditions:
  17 +//
  18 +// The above copyright notice and this permission notice shall be included in
  19 +// all copies or substantial portions of the Software.
  20 +//
  21 +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
  22 +// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
  23 +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
  24 +// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
  25 +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
  26 +// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
  27 +// THE SOFTWARE.
  28 +
  29 +import Foundation
  30 +
  31 +open class ISO8601DateTransform: DateFormatterTransform {
  32 +
  33 + public init() {
  34 + let formatter = DateFormatter()
  35 + formatter.locale = Locale(identifier: "en_US_POSIX")
  36 + formatter.dateFormat = "yyyy-MM-dd'T'HH:mm:ssZZZZZ"
  37 +
  38 + super.init(dateFormatter: formatter)
  39 + }
  40 +
  41 +}
... ...
ParentAssistant/Pods/HandyJSON/Source/Logger.swift 0 → 100644
... ... @@ -0,0 +1,43 @@
  1 +/*
  2 + * Copyright 1999-2101 Alibaba Group.
  3 + *
  4 + * Licensed under the Apache License, Version 2.0 (the "License");
  5 + * you may not use this file except in compliance with the License.
  6 + * You may obtain a copy of the License at
  7 + *
  8 + * http://www.apache.org/licenses/LICENSE-2.0
  9 + *
  10 + * Unless required by applicable law or agreed to in writing, software
  11 + * distributed under the License is distributed on an "AS IS" BASIS,
  12 + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  13 + * See the License for the specific language governing permissions and
  14 + * limitations under the License.
  15 + */
  16 +
  17 +//
  18 +// Logger.swift
  19 +// HandyJSON
  20 +//
  21 +// Created by zhouzhuo on 08/01/2017.
  22 +//
  23 +
  24 +struct InternalLogger {
  25 +
  26 + static func logError(_ items: Any..., separator: String = " ", terminator: String = "\n") {
  27 + if HandyJSONConfiguration.debugMode.rawValue <= DebugMode.error.rawValue {
  28 + print(items, separator: separator, terminator: terminator)
  29 + }
  30 + }
  31 +
  32 + static func logDebug(_ items: Any..., separator: String = " ", terminator: String = "\n") {
  33 + if HandyJSONConfiguration.debugMode.rawValue <= DebugMode.debug.rawValue {
  34 + print(items, separator: separator, terminator: terminator)
  35 + }
  36 + }
  37 +
  38 + static func logVerbose(_ items: Any..., separator: String = " ", terminator: String = "\n") {
  39 + if HandyJSONConfiguration.debugMode.rawValue <= DebugMode.verbose.rawValue {
  40 + print(items, separator: separator, terminator: terminator)
  41 + }
  42 + }
  43 +}
... ...
ParentAssistant/Pods/HandyJSON/Source/Measuable.swift 0 → 100644
... ... @@ -0,0 +1,89 @@
  1 +//
  2 +// Measuable.swift
  3 +// HandyJSON
  4 +//
  5 +// Created by zhouzhuo on 15/07/2017.
  6 +// Copyright © 2017 aliyun. All rights reserved.
  7 +//
  8 +
  9 +import Foundation
  10 +
  11 +typealias Byte = Int8
  12 +
  13 +public protocol _Measurable {}
  14 +
  15 +extension _Measurable {
  16 +
  17 + // locate the head of a struct type object in memory
  18 + mutating func headPointerOfStruct() -> UnsafeMutablePointer<Byte> {
  19 +
  20 + return withUnsafeMutablePointer(to: &self) {
  21 + return UnsafeMutableRawPointer($0).bindMemory(to: Byte.self, capacity: MemoryLayout<Self>.stride)
  22 + }
  23 + }
  24 +
  25 + // locating the head of a class type object in memory
  26 + mutating func headPointerOfClass() -> UnsafeMutablePointer<Byte> {
  27 +
  28 + let opaquePointer = Unmanaged.passUnretained(self as AnyObject).toOpaque()
  29 + let mutableTypedPointer = opaquePointer.bindMemory(to: Byte.self, capacity: MemoryLayout<Self>.stride)
  30 + return UnsafeMutablePointer<Byte>(mutableTypedPointer)
  31 + }
  32 +
  33 + // locating the head of an object
  34 + mutating func headPointer() -> UnsafeMutablePointer<Byte> {
  35 + if Self.self is AnyClass {
  36 + return self.headPointerOfClass()
  37 + } else {
  38 + return self.headPointerOfStruct()
  39 + }
  40 + }
  41 +
  42 + func isNSObjectType() -> Bool {
  43 + return (type(of: self) as? NSObject.Type) != nil
  44 + }
  45 +
  46 + func getBridgedPropertyList() -> Set<String> {
  47 + if let anyClass = type(of: self) as? AnyClass {
  48 + return _getBridgedPropertyList(anyClass: anyClass)
  49 + }
  50 + return []
  51 + }
  52 +
  53 + func _getBridgedPropertyList(anyClass: AnyClass) -> Set<String> {
  54 + if !(anyClass is HandyJSON.Type) {
  55 + return []
  56 + }
  57 + var propertyList = Set<String>()
  58 + if let superClass = class_getSuperclass(anyClass), superClass != NSObject.self {
  59 + propertyList = propertyList.union(_getBridgedPropertyList(anyClass: superClass))
  60 + }
  61 + let count = UnsafeMutablePointer<UInt32>.allocate(capacity: 1)
  62 + if let props = class_copyPropertyList(anyClass, count) {
  63 + for i in 0 ..< count.pointee {
  64 + let name = String(cString: property_getName(props.advanced(by: Int(i)).pointee))
  65 + propertyList.insert(name)
  66 + }
  67 + }
  68 + return propertyList
  69 + }
  70 +
  71 + // memory size occupy by self object
  72 + static func size() -> Int {
  73 + return MemoryLayout<Self>.size
  74 + }
  75 +
  76 + // align
  77 + static func align() -> Int {
  78 + return MemoryLayout<Self>.alignment
  79 + }
  80 +
  81 + // Returns the offset to the next integer that is greater than
  82 + // or equal to Value and is a multiple of Align. Align must be
  83 + // non-zero.
  84 + static func offsetToAlignment(value: Int, align: Int) -> Int {
  85 + let m = value % align
  86 + return m == 0 ? 0 : (align - m)
  87 + }
  88 +}
  89 +
... ...
ParentAssistant/Pods/HandyJSON/Source/Metadata.swift 0 → 100644
... ... @@ -0,0 +1,249 @@
  1 +/*
  2 + * Copyright 1999-2101 Alibaba Group.
  3 + *
  4 + * Licensed under the Apache License, Version 2.0 (the "License");
  5 + * you may not use this file except in compliance with the License.
  6 + * You may obtain a copy of the License at
  7 + *
  8 + * http://www.apache.org/licenses/LICENSE-2.0
  9 + *
  10 + * Unless required by applicable law or agreed to in writing, software
  11 + * distributed under the License is distributed on an "AS IS" BASIS,
  12 + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  13 + * See the License for the specific language governing permissions and
  14 + * limitations under the License.
  15 + */
  16 +
  17 +//
  18 +// Created by zhouzhuo on 07/01/2017.
  19 +//
  20 +
  21 +struct _class_rw_t {
  22 + var flags: Int32
  23 + var version: Int32
  24 + var ro: UInt
  25 + // other fields we don't care
  26 +
  27 + func class_ro_t() -> UnsafePointer<_class_ro_t>? {
  28 + return UnsafePointer<_class_ro_t>(bitPattern: self.ro)
  29 + }
  30 +}
  31 +
  32 +struct _class_ro_t {
  33 + var flags: Int32
  34 + var instanceStart: Int32
  35 + var instanceSize: Int32
  36 + // other fields we don't care
  37 +}
  38 +
  39 +// MARK: MetadataType
  40 +protocol MetadataType : PointerType {
  41 + static var kind: Metadata.Kind? { get }
  42 +}
  43 +
  44 +extension MetadataType {
  45 +
  46 + var kind: Metadata.Kind {
  47 + return Metadata.Kind(flag: UnsafePointer<Int>(pointer).pointee)
  48 + }
  49 +
  50 + init?(anyType: Any.Type) {
  51 + self.init(pointer: unsafeBitCast(anyType, to: UnsafePointer<Int>.self))
  52 + if let kind = type(of: self).kind, kind != self.kind {
  53 + return nil
  54 + }
  55 + }
  56 +}
  57 +
  58 +// MARK: Metadata
  59 +struct Metadata : MetadataType {
  60 + var pointer: UnsafePointer<Int>
  61 +
  62 + init(type: Any.Type) {
  63 + self.init(pointer: unsafeBitCast(type, to: UnsafePointer<Int>.self))
  64 + }
  65 +}
  66 +
  67 +struct _Metadata {}
  68 +
  69 +var is64BitPlatform: Bool {
  70 + return MemoryLayout<Int>.size == MemoryLayout<Int64>.size
  71 +}
  72 +
  73 +// MARK: Metadata + Kind
  74 +// https://github.com/apple/swift/blob/swift-3.0-branch/include/swift/ABI/MetadataKind.def
  75 +extension Metadata {
  76 + static let kind: Kind? = nil
  77 +
  78 + enum Kind {
  79 + case `struct`
  80 + case `enum`
  81 + case optional
  82 + case opaque
  83 + case tuple
  84 + case function
  85 + case existential
  86 + case metatype
  87 + case objCClassWrapper
  88 + case existentialMetatype
  89 + case foreignClass
  90 + case heapLocalVariable
  91 + case heapGenericLocalVariable
  92 + case errorObject
  93 + case `class`
  94 + init(flag: Int) {
  95 + switch flag {
  96 + case 1: self = .struct
  97 + case 2: self = .enum
  98 + case 3: self = .optional
  99 + case 8: self = .opaque
  100 + case 9: self = .tuple
  101 + case 10: self = .function
  102 + case 12: self = .existential
  103 + case 13: self = .metatype
  104 + case 14: self = .objCClassWrapper
  105 + case 15: self = .existentialMetatype
  106 + case 16: self = .foreignClass
  107 + case 64: self = .heapLocalVariable
  108 + case 65: self = .heapGenericLocalVariable
  109 + case 128: self = .errorObject
  110 + default: self = .class
  111 + }
  112 + }
  113 + }
  114 +}
  115 +
  116 +// MARK: Metadata + Class
  117 +extension Metadata {
  118 + struct Class : NominalType {
  119 +
  120 + static let kind: Kind? = .class
  121 + var pointer: UnsafePointer<_Metadata._Class>
  122 +
  123 + var isSwiftClass: Bool {
  124 + get {
  125 + let lowbit = self.pointer.pointee.databits & 1
  126 + return lowbit == 1
  127 + }
  128 + }
  129 +
  130 + var nominalTypeDescriptorOffsetLocation: Int {
  131 + return is64BitPlatform ? 8 : 11
  132 + }
  133 +
  134 + var superclass: Class? {
  135 + guard let superclass = pointer.pointee.superclass else {
  136 + return nil
  137 + }
  138 +
  139 + // If the superclass doesn't conform to handyjson/handyjsonenum protocol,
  140 + // we should ignore the properties inside
  141 + if !(superclass is HandyJSON.Type) && !(superclass is HandyJSONEnum.Type) {
  142 + return nil
  143 + }
  144 +
  145 + // ignore objc-runtime layer
  146 + guard let metaclass = Metadata.Class(anyType: superclass), metaclass.isSwiftClass else {
  147 + return nil
  148 + }
  149 +
  150 + return metaclass
  151 + }
  152 +
  153 + func _propertiesAndStartPoint() -> ([Property.Description], Int32?)? {
  154 + let instanceStart = pointer.pointee.class_rw_t()?.pointee.class_ro_t()?.pointee.instanceStart
  155 + var result: [Property.Description] = []
  156 +
  157 + if let properties = fetchProperties(nominalType: self) {
  158 + result = properties
  159 + }
  160 +
  161 + if let superclass = superclass,
  162 + String(describing: unsafeBitCast(superclass.pointer, to: Any.Type.self)) != "SwiftObject", // ignore the root swift object
  163 + let superclassProperties = superclass._propertiesAndStartPoint() {
  164 +
  165 + return (superclassProperties.0 + result, superclassProperties.1)
  166 + }
  167 + return (result, instanceStart)
  168 + }
  169 +
  170 + func properties() -> [Property.Description]? {
  171 + let propsAndStp = _propertiesAndStartPoint()
  172 + if let firstInstanceStart = propsAndStp?.1,
  173 + let firstProperty = propsAndStp?.0.first {
  174 +
  175 + return propsAndStp?.0.map({ (property) -> Property.Description in
  176 + return Property.Description(key: property.key,
  177 + type: property.type,
  178 + offset: property.offset - firstProperty.offset + Int(firstInstanceStart))
  179 + })
  180 + } else {
  181 + return propsAndStp?.0
  182 + }
  183 + }
  184 + }
  185 +}
  186 +
  187 +extension _Metadata {
  188 + struct _Class {
  189 + var kind: Int
  190 + var superclass: Any.Type?
  191 + var reserveword1: Int
  192 + var reserveword2: Int
  193 + var databits: UInt
  194 + // other fields we don't care
  195 +
  196 + func class_rw_t() -> UnsafePointer<_class_rw_t>? {
  197 + if MemoryLayout<Int>.size == MemoryLayout<Int64>.size {
  198 + let fast_data_mask: UInt64 = 0x00007ffffffffff8
  199 + let databits_t: UInt64 = UInt64(self.databits)
  200 + return UnsafePointer<_class_rw_t>(bitPattern: UInt(databits_t & fast_data_mask))
  201 + } else {
  202 + return UnsafePointer<_class_rw_t>(bitPattern: self.databits & 0xfffffffc)
  203 + }
  204 + }
  205 + }
  206 +}
  207 +
  208 +// MARK: Metadata + Struct
  209 +extension Metadata {
  210 + struct Struct : NominalType {
  211 + static let kind: Kind? = .struct
  212 + var pointer: UnsafePointer<_Metadata._Struct>
  213 + var nominalTypeDescriptorOffsetLocation: Int {
  214 + return 1
  215 + }
  216 + }
  217 +}
  218 +
  219 +extension _Metadata {
  220 + struct _Struct {
  221 + var kind: Int
  222 + var nominalTypeDescriptorOffset: Int
  223 + var parent: Metadata?
  224 + }
  225 +}
  226 +
  227 +// MARK: Metadata + ObjcClassWrapper
  228 +extension Metadata {
  229 + struct ObjcClassWrapper: NominalType {
  230 + static let kind: Kind? = .objCClassWrapper
  231 + var pointer: UnsafePointer<_Metadata._ObjcClassWrapper>
  232 + var nominalTypeDescriptorOffsetLocation: Int {
  233 + return is64BitPlatform ? 8 : 11
  234 + }
  235 +
  236 + var targetType: Any.Type? {
  237 + get {
  238 + return pointer.pointee.targetType
  239 + }
  240 + }
  241 + }
  242 +}
  243 +
  244 +extension _Metadata {
  245 + struct _ObjcClassWrapper {
  246 + var kind: Int
  247 + var targetType: Any.Type?
  248 + }
  249 +}
... ...
ParentAssistant/Pods/HandyJSON/Source/NSDecimalNumberTransform.swift 0 → 100644
... ... @@ -0,0 +1,51 @@
  1 +//
  2 +// TransformOf.swift
  3 +// ObjectMapper
  4 +//
  5 +// Created by Tristan Himmelman on 8/22/16.
  6 +//
  7 +// The MIT License (MIT)
  8 +//
  9 +// Copyright (c) 2014-2016 Hearst
  10 +//
  11 +// Permission is hereby granted, free of charge, to any person obtaining a copy
  12 +// of this software and associated documentation files (the "Software"), to deal
  13 +// in the Software without restriction, including without limitation the rights
  14 +// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
  15 +// copies of the Software, and to permit persons to whom the Software is
  16 +// furnished to do so, subject to the following conditions:
  17 +//
  18 +// The above copyright notice and this permission notice shall be included in
  19 +// all copies or substantial portions of the Software.
  20 +//
  21 +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
  22 +// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
  23 +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
  24 +// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
  25 +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
  26 +// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
  27 +// THE SOFTWARE.
  28 +
  29 +import Foundation
  30 +
  31 +open class NSDecimalNumberTransform: TransformType {
  32 + public typealias Object = NSDecimalNumber
  33 + public typealias JSON = String
  34 +
  35 + public init() {}
  36 +
  37 + open func transformFromJSON(_ value: Any?) -> NSDecimalNumber? {
  38 + if let string = value as? String {
  39 + return NSDecimalNumber(string: string)
  40 + }
  41 + if let double = value as? Double {
  42 + return NSDecimalNumber(value: double)
  43 + }
  44 + return nil
  45 + }
  46 +
  47 + open func transformToJSON(_ value: NSDecimalNumber?) -> String? {
  48 + guard let value = value else { return nil }
  49 + return value.description
  50 + }
  51 +}
... ...
ParentAssistant/Pods/HandyJSON/Source/NominalType.swift 0 → 100644
... ... @@ -0,0 +1,104 @@
  1 +/*
  2 + * Copyright 1999-2101 Alibaba Group.
  3 + *
  4 + * Licensed under the Apache License, Version 2.0 (the "License");
  5 + * you may not use this file except in compliance with the License.
  6 + * You may obtain a copy of the License at
  7 + *
  8 + * http://www.apache.org/licenses/LICENSE-2.0
  9 + *
  10 + * Unless required by applicable law or agreed to in writing, software
  11 + * distributed under the License is distributed on an "AS IS" BASIS,
  12 + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  13 + * See the License for the specific language governing permissions and
  14 + * limitations under the License.
  15 + */
  16 +
  17 +//
  18 +// Created by zhouzhuo on 07/01/2017.
  19 +//
  20 +
  21 +
  22 +protocol NominalType : MetadataType {
  23 + var nominalTypeDescriptorOffsetLocation: Int { get }
  24 +}
  25 +
  26 +extension NominalType {
  27 + var nominalTypeDescriptor: NominalTypeDescriptor? {
  28 + let pointer = UnsafePointer<Int>(self.pointer)
  29 + let base = pointer.advanced(by: nominalTypeDescriptorOffsetLocation)
  30 + if base.pointee == 0 {
  31 + // swift class created dynamically in objc-runtime didn't have valid nominalTypeDescriptor
  32 + return nil
  33 + }
  34 + #if swift(>=4.1) || (swift(>=3.3) && !swift(>=4.0))
  35 + return NominalTypeDescriptor(pointer: relativePointer(base: base, offset: base.pointee - base.hashValue))
  36 + #else
  37 + return NominalTypeDescriptor(pointer: relativePointer(base: base, offset: base.pointee))
  38 + #endif
  39 + }
  40 +
  41 + var fieldTypes: [Any.Type]? {
  42 + guard let nominalTypeDescriptor = self.nominalTypeDescriptor else {
  43 + return nil
  44 + }
  45 + guard let function = nominalTypeDescriptor.fieldTypesAccessor else { return nil }
  46 + return (0..<nominalTypeDescriptor.numberOfFields).map {
  47 + return unsafeBitCast(function(UnsafePointer<Int>(pointer)).advanced(by: $0).pointee, to: Any.Type.self)
  48 + }
  49 + }
  50 +
  51 + var fieldOffsets: [Int]? {
  52 + guard let nominalTypeDescriptor = self.nominalTypeDescriptor else {
  53 + return nil
  54 + }
  55 + let vectorOffset = nominalTypeDescriptor.fieldOffsetVector
  56 + guard vectorOffset != 0 else {
  57 + return nil
  58 + }
  59 + return (0..<nominalTypeDescriptor.numberOfFields).map {
  60 + return UnsafePointer<Int>(pointer)[vectorOffset + $0]
  61 + }
  62 + }
  63 +}
  64 +
  65 +struct NominalTypeDescriptor : PointerType {
  66 + public var pointer: UnsafePointer<_NominalTypeDescriptor>
  67 +
  68 + var mangledName: String {
  69 + return String(cString: relativePointer(base: pointer, offset: pointer.pointee.mangledName) as UnsafePointer<CChar>)
  70 + }
  71 +
  72 + var numberOfFields: Int {
  73 + return Int(pointer.pointee.numberOfFields)
  74 + }
  75 +
  76 + var fieldOffsetVector: Int {
  77 + return Int(pointer.pointee.fieldOffsetVector)
  78 + }
  79 +
  80 + var fieldNames: [String] {
  81 + let p = UnsafePointer<Int32>(self.pointer)
  82 + return Array(utf8Strings: relativePointer(base: p.advanced(by: 3), offset: self.pointer.pointee.fieldNames))
  83 + }
  84 +
  85 + typealias FieldsTypeAccessor = @convention(c) (UnsafePointer<Int>) -> UnsafePointer<UnsafePointer<Int>>
  86 +
  87 + var fieldTypesAccessor: FieldsTypeAccessor? {
  88 + let offset = pointer.pointee.fieldTypesAccessor
  89 + guard offset != 0 else {
  90 + return nil
  91 + }
  92 + let p = UnsafePointer<Int32>(self.pointer)
  93 + let offsetPointer: UnsafePointer<Int> = relativePointer(base: p.advanced(by: 4), offset: offset)
  94 + return unsafeBitCast(offsetPointer, to: FieldsTypeAccessor.self)
  95 + }
  96 +}
  97 +
  98 +struct _NominalTypeDescriptor {
  99 + var mangledName: Int32
  100 + var numberOfFields: Int32
  101 + var fieldOffsetVector: Int32
  102 + var fieldNames: Int32
  103 + var fieldTypesAccessor: Int32
  104 +}
... ...
ParentAssistant/Pods/HandyJSON/Source/OtherExtension.swift 0 → 100644
... ... @@ -0,0 +1,76 @@
  1 +/*
  2 + * Copyright 1999-2101 Alibaba Group.
  3 + *
  4 + * Licensed under the Apache License, Version 2.0 (the "License");
  5 + * you may not use this file except in compliance with the License.
  6 + * You may obtain a copy of the License at
  7 + *
  8 + * http://www.apache.org/licenses/LICENSE-2.0
  9 + *
  10 + * Unless required by applicable law or agreed to in writing, software
  11 + * distributed under the License is distributed on an "AS IS" BASIS,
  12 + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  13 + * See the License for the specific language governing permissions and
  14 + * limitations under the License.
  15 + */
  16 +
  17 +//
  18 +// OtherExtension.swift
  19 +// HandyJSON
  20 +//
  21 +// Created by zhouzhuo on 08/01/2017.
  22 +//
  23 +
  24 +protocol UTF8Initializable {
  25 + init?(validatingUTF8: UnsafePointer<CChar>)
  26 +}
  27 +
  28 +extension String : UTF8Initializable {}
  29 +
  30 +extension Array where Element : UTF8Initializable {
  31 +
  32 + init(utf8Strings: UnsafePointer<CChar>) {
  33 + var strings = [Element]()
  34 + var pointer = utf8Strings
  35 + while let string = Element(validatingUTF8: pointer) {
  36 + strings.append(string)
  37 + while pointer.pointee != 0 {
  38 + pointer.advance()
  39 + }
  40 + pointer.advance()
  41 + guard pointer.pointee != 0 else {
  42 + break
  43 + }
  44 + }
  45 + self = strings
  46 + }
  47 +}
  48 +
  49 +extension Strideable {
  50 + mutating func advance() {
  51 + self = advanced(by: 1)
  52 + }
  53 +}
  54 +
  55 +extension UnsafePointer {
  56 +
  57 + init<T>(_ pointer: UnsafePointer<T>) {
  58 + self = UnsafeRawPointer(pointer).assumingMemoryBound(to: Pointee.self)
  59 + }
  60 +}
  61 +
  62 +func relativePointer<T, U, V>(base: UnsafePointer<T>, offset: U) -> UnsafePointer<V> where U : FixedWidthInteger {
  63 + return UnsafeRawPointer(base).advanced(by: Int(integer: offset)).assumingMemoryBound(to: V.self)
  64 +}
  65 +
  66 +extension Int {
  67 + fileprivate init<T : FixedWidthInteger>(integer: T) {
  68 + switch integer {
  69 + case let value as Int: self = value
  70 + case let value as Int32: self = Int(value)
  71 + case let value as Int16: self = Int(value)
  72 + case let value as Int8: self = Int(value)
  73 + default: self = 0
  74 + }
  75 + }
  76 +}
... ...
ParentAssistant/Pods/HandyJSON/Source/PointerType.swift 0 → 100644
... ... @@ -0,0 +1,37 @@
  1 +/*
  2 + * Copyright 1999-2101 Alibaba Group.
  3 + *
  4 + * Licensed under the Apache License, Version 2.0 (the "License");
  5 + * you may not use this file except in compliance with the License.
  6 + * You may obtain a copy of the License at
  7 + *
  8 + * http://www.apache.org/licenses/LICENSE-2.0
  9 + *
  10 + * Unless required by applicable law or agreed to in writing, software
  11 + * distributed under the License is distributed on an "AS IS" BASIS,
  12 + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  13 + * See the License for the specific language governing permissions and
  14 + * limitations under the License.
  15 + */
  16 +
  17 +//
  18 +// Created by zhouzhuo on 07/01/2017.
  19 +//
  20 +
  21 +protocol PointerType : Equatable {
  22 + associatedtype Pointee
  23 + var pointer: UnsafePointer<Pointee> { get set }
  24 +}
  25 +
  26 +extension PointerType {
  27 + init<T>(pointer: UnsafePointer<T>) {
  28 + func cast<T, U>(_ value: T) -> U {
  29 + return unsafeBitCast(value, to: U.self)
  30 + }
  31 + self = cast(UnsafePointer<Pointee>(pointer))
  32 + }
  33 +}
  34 +
  35 +func == <T: PointerType>(lhs: T, rhs: T) -> Bool {
  36 + return lhs.pointer == rhs.pointer
  37 +}
... ...
ParentAssistant/Pods/HandyJSON/Source/Properties.swift 0 → 100644
... ... @@ -0,0 +1,89 @@
  1 +/*
  2 + * Copyright 1999-2101 Alibaba Group.
  3 + *
  4 + * Licensed under the Apache License, Version 2.0 (the "License");
  5 + * you may not use this file except in compliance with the License.
  6 + * You may obtain a copy of the License at
  7 + *
  8 + * http://www.apache.org/licenses/LICENSE-2.0
  9 + *
  10 + * Unless required by applicable law or agreed to in writing, software
  11 + * distributed under the License is distributed on an "AS IS" BASIS,
  12 + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  13 + * See the License for the specific language governing permissions and
  14 + * limitations under the License.
  15 + */
  16 +
  17 +//
  18 +// Created by zhouzhuo on 07/01/2017.
  19 +//
  20 +
  21 +
  22 +/// An instance property
  23 +struct Property {
  24 + let key: String
  25 + let value: Any
  26 +
  27 + /// An instance property description
  28 + struct Description {
  29 + public let key: String
  30 + public let type: Any.Type
  31 + public let offset: Int
  32 + public func write(_ value: Any, to storage: UnsafeMutableRawPointer) {
  33 + return extensions(of: type).write(value, to: storage.advanced(by: offset))
  34 + }
  35 + }
  36 +}
  37 +
  38 +/// Retrieve properties for `instance`
  39 +func getProperties(forInstance instance: Any) -> [Property]? {
  40 + if let props = getProperties(forType: type(of: instance)) {
  41 + var copy = extensions(of: instance)
  42 + let storage = copy.storage()
  43 + return props.map {
  44 + nextProperty(description: $0, storage: storage)
  45 + }
  46 + }
  47 + return nil
  48 +}
  49 +
  50 +private func nextProperty(description: Property.Description, storage: UnsafeRawPointer) -> Property {
  51 + return Property(
  52 + key: description.key,
  53 + value: extensions(of: description.type).value(from: storage.advanced(by: description.offset))
  54 + )
  55 +}
  56 +
  57 +/// Retrieve property descriptions for `type`
  58 +func getProperties(forType type: Any.Type) -> [Property.Description]? {
  59 + if let nominalType = Metadata.Struct(anyType: type) {
  60 + return fetchProperties(nominalType: nominalType)
  61 + } else if let nominalType = Metadata.Class(anyType: type) {
  62 + return nominalType.properties()
  63 + } else if let nominalType = Metadata.ObjcClassWrapper(anyType: type),
  64 + let targetType = nominalType.targetType {
  65 + return getProperties(forType: targetType)
  66 + } else {
  67 + return nil
  68 + }
  69 +}
  70 +
  71 +func fetchProperties<T : NominalType>(nominalType: T) -> [Property.Description]? {
  72 + return propertiesForNominalType(nominalType)
  73 +}
  74 +
  75 +private func propertiesForNominalType<T : NominalType>(_ type: T) -> [Property.Description]? {
  76 + guard let nominalTypeDescriptor = type.nominalTypeDescriptor else {
  77 + return nil
  78 + }
  79 + guard nominalTypeDescriptor.numberOfFields != 0 else {
  80 + return []
  81 + }
  82 + guard let fieldTypes = type.fieldTypes, let fieldOffsets = type.fieldOffsets else {
  83 + return nil
  84 + }
  85 + let fieldNames = nominalTypeDescriptor.fieldNames
  86 + return (0..<nominalTypeDescriptor.numberOfFields).map { i in
  87 + return Property.Description(key: fieldNames[i], type: fieldTypes[i], offset: fieldOffsets[i])
  88 + }
  89 +}
... ...
ParentAssistant/Pods/HandyJSON/Source/PropertyInfo.swift 0 → 100644
... ... @@ -0,0 +1,29 @@
  1 +/*
  2 + * Copyright 1999-2101 Alibaba Group.
  3 + *
  4 + * Licensed under the Apache License, Version 2.0 (the "License");
  5 + * you may not use this file except in compliance with the License.
  6 + * You may obtain a copy of the License at
  7 + *
  8 + * http://www.apache.org/licenses/LICENSE-2.0
  9 + *
  10 + * Unless required by applicable law or agreed to in writing, software
  11 + * distributed under the License is distributed on an "AS IS" BASIS,
  12 + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  13 + * See the License for the specific language governing permissions and
  14 + * limitations under the License.
  15 + */
  16 +
  17 +//
  18 +// PropertyInfo.swift
  19 +// HandyJSON
  20 +//
  21 +// Created by zhouzhuo on 20/08/2017.
  22 +//
  23 +
  24 +struct PropertyInfo {
  25 + let key: String
  26 + let type: Any.Type
  27 + let address: UnsafeMutableRawPointer
  28 + let bridged: Bool
  29 +}
... ...
ParentAssistant/Pods/HandyJSON/Source/ReflectionHelper.swift 0 → 100644
... ... @@ -0,0 +1,42 @@
  1 +/*
  2 + * Copyright 1999-2101 Alibaba Group.
  3 + *
  4 + * Licensed under the Apache License, Version 2.0 (the "License");
  5 + * you may not use this file except in compliance with the License.
  6 + * You may obtain a copy of the License at
  7 + *
  8 + * http://www.apache.org/licenses/LICENSE-2.0
  9 + *
  10 + * Unless required by applicable law or agreed to in writing, software
  11 + * distributed under the License is distributed on an "AS IS" BASIS,
  12 + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  13 + * See the License for the specific language governing permissions and
  14 + * limitations under the License.
  15 + */
  16 +
  17 +//
  18 +// Helper.swift
  19 +// HandyJSON
  20 +//
  21 +// Created by zhouzhuo on 07/01/2017.
  22 +//
  23 +
  24 +struct ReflectionHelper {
  25 +
  26 + static func mutableStorage<T>(instance: inout T) -> UnsafeMutableRawPointer {
  27 + return UnsafeMutableRawPointer(mutating: storage(instance: &instance))
  28 + }
  29 +
  30 + static func storage<T>(instance: inout T) -> UnsafeRawPointer {
  31 + if type(of: instance) is AnyClass {
  32 + let opaquePointer = Unmanaged.passUnretained(instance as AnyObject).toOpaque()
  33 + return UnsafeRawPointer(opaquePointer)
  34 + } else {
  35 + return withUnsafePointer(to: &instance) { pointer in
  36 + return UnsafeRawPointer(pointer)
  37 + }
  38 + }
  39 + }
  40 +}
  41 +
  42 +
... ...
ParentAssistant/Pods/HandyJSON/Source/Serializer.swift 0 → 100644
... ... @@ -0,0 +1,84 @@
  1 +/*
  2 + * Copyright 1999-2101 Alibaba Group.
  3 + *
  4 + * Licensed under the Apache License, Version 2.0 (the "License");
  5 + * you may not use this file except in compliance with the License.
  6 + * You may obtain a copy of the License at
  7 + *
  8 + * http://www.apache.org/licenses/LICENSE-2.0
  9 + *
  10 + * Unless required by applicable law or agreed to in writing, software
  11 + * distributed under the License is distributed on an "AS IS" BASIS,
  12 + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  13 + * See the License for the specific language governing permissions and
  14 + * limitations under the License.
  15 + */
  16 +
  17 +//
  18 +// JSONSerializer.swift
  19 +// HandyJSON
  20 +//
  21 +// Created by zhouzhuo on 9/30/16.
  22 +//
  23 +
  24 +import Foundation
  25 +
  26 +public extension HandyJSON {
  27 +
  28 + public func toJSON() -> [String: Any]? {
  29 + if let dict = Self._serializeAny(object: self) as? [String: Any] {
  30 + return dict
  31 + }
  32 + return nil
  33 + }
  34 +
  35 + public func toJSONString(prettyPrint: Bool = false) -> String? {
  36 +
  37 + if let anyObject = self.toJSON() {
  38 + if JSONSerialization.isValidJSONObject(anyObject) {
  39 + do {
  40 + let jsonData: Data
  41 + if prettyPrint {
  42 + jsonData = try JSONSerialization.data(withJSONObject: anyObject, options: [.prettyPrinted])
  43 + } else {
  44 + jsonData = try JSONSerialization.data(withJSONObject: anyObject, options: [])
  45 + }
  46 + return String(data: jsonData, encoding: .utf8)
  47 + } catch let error {
  48 + InternalLogger.logError(error)
  49 + }
  50 + } else {
  51 + InternalLogger.logDebug("\(anyObject)) is not a valid JSON Object")
  52 + }
  53 + }
  54 + return nil
  55 + }
  56 +}
  57 +
  58 +public extension Collection where Iterator.Element: HandyJSON {
  59 +
  60 + public func toJSON() -> [[String: Any]?] {
  61 + return self.map{ $0.toJSON() }
  62 + }
  63 +
  64 + public func toJSONString(prettyPrint: Bool = false) -> String? {
  65 +
  66 + let anyArray = self.toJSON()
  67 + if JSONSerialization.isValidJSONObject(anyArray) {
  68 + do {
  69 + let jsonData: Data
  70 + if prettyPrint {
  71 + jsonData = try JSONSerialization.data(withJSONObject: anyArray, options: [.prettyPrinted])
  72 + } else {
  73 + jsonData = try JSONSerialization.data(withJSONObject: anyArray, options: [])
  74 + }
  75 + return String(data: jsonData, encoding: .utf8)
  76 + } catch let error {
  77 + InternalLogger.logError(error)
  78 + }
  79 + } else {
  80 + InternalLogger.logDebug("\(self.toJSON()) is not a valid JSON Object")
  81 + }
  82 + return nil
  83 + }
  84 +}
... ...
ParentAssistant/Pods/HandyJSON/Source/TransformOf.swift 0 → 100644
... ... @@ -0,0 +1,48 @@
  1 +//
  2 +// TransformOf.swift
  3 +// ObjectMapper
  4 +//
  5 +// Created by Syo Ikeda on 1/23/15.
  6 +//
  7 +// The MIT License (MIT)
  8 +//
  9 +// Copyright (c) 2014-2016 Hearst
  10 +//
  11 +// Permission is hereby granted, free of charge, to any person obtaining a copy
  12 +// of this software and associated documentation files (the "Software"), to deal
  13 +// in the Software without restriction, including without limitation the rights
  14 +// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
  15 +// copies of the Software, and to permit persons to whom the Software is
  16 +// furnished to do so, subject to the following conditions:
  17 +//
  18 +// The above copyright notice and this permission notice shall be included in
  19 +// all copies or substantial portions of the Software.
  20 +//
  21 +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
  22 +// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
  23 +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
  24 +// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
  25 +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
  26 +// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
  27 +// THE SOFTWARE.
  28 +
  29 +open class TransformOf<ObjectType, JSONType>: TransformType {
  30 + public typealias Object = ObjectType
  31 + public typealias JSON = JSONType
  32 +
  33 + private let fromJSON: (JSONType?) -> ObjectType?
  34 + private let toJSON: (ObjectType?) -> JSONType?
  35 +
  36 + public init(fromJSON: @escaping(JSONType?) -> ObjectType?, toJSON: @escaping(ObjectType?) -> JSONType?) {
  37 + self.fromJSON = fromJSON
  38 + self.toJSON = toJSON
  39 + }
  40 +
  41 + open func transformFromJSON(_ value: Any?) -> ObjectType? {
  42 + return fromJSON(value as? JSONType)
  43 + }
  44 +
  45 + open func transformToJSON(_ value: ObjectType?) -> JSONType? {
  46 + return toJSON(value)
  47 + }
  48 +}
... ...
ParentAssistant/Pods/HandyJSON/Source/TransformType.swift 0 → 100644
... ... @@ -0,0 +1,35 @@
  1 +//
  2 +// TransformType.swift
  3 +// ObjectMapper
  4 +//
  5 +// Created by Syo Ikeda on 2/4/15.
  6 +//
  7 +// The MIT License (MIT)
  8 +//
  9 +// Copyright (c) 2014-2016 Hearst
  10 +//
  11 +// Permission is hereby granted, free of charge, to any person obtaining a copy
  12 +// of this software and associated documentation files (the "Software"), to deal
  13 +// in the Software without restriction, including without limitation the rights
  14 +// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
  15 +// copies of the Software, and to permit persons to whom the Software is
  16 +// furnished to do so, subject to the following conditions:
  17 +//
  18 +// The above copyright notice and this permission notice shall be included in
  19 +// all copies or substantial portions of the Software.
  20 +//
  21 +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
  22 +// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
  23 +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
  24 +// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
  25 +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
  26 +// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
  27 +// THE SOFTWARE.
  28 +
  29 +public protocol TransformType {
  30 + associatedtype Object
  31 + associatedtype JSON
  32 +
  33 + func transformFromJSON(_ value: Any?) -> Object?
  34 + func transformToJSON(_ value: Object?) -> JSON?
  35 +}
... ...
ParentAssistant/Pods/HandyJSON/Source/Transformable.swift 0 → 100644
... ... @@ -0,0 +1,52 @@
  1 +//
  2 +// Transformable.swift
  3 +// HandyJSON
  4 +//
  5 +// Created by zhouzhuo on 15/07/2017.
  6 +// Copyright © 2017 aliyun. All rights reserved.
  7 +//
  8 +
  9 +import Foundation
  10 +
  11 +public protocol _Transformable: _Measurable {}
  12 +
  13 +extension _Transformable {
  14 +
  15 + static func transform(from object: Any) -> Self? {
  16 + if let typedObject = object as? Self {
  17 + return typedObject
  18 + }
  19 + switch self {
  20 + case let type as _ExtendCustomBasicType.Type:
  21 + return type._transform(from: object) as? Self
  22 + case let type as _BuiltInBridgeType.Type:
  23 + return type._transform(from: object) as? Self
  24 + case let type as _BuiltInBasicType.Type:
  25 + return type._transform(from: object) as? Self
  26 + case let type as _RawEnumProtocol.Type:
  27 + return type._transform(from: object) as? Self
  28 + case let type as _ExtendCustomModelType.Type:
  29 + return type._transform(from: object) as? Self
  30 + default:
  31 + return nil
  32 + }
  33 + }
  34 +
  35 + func plainValue() -> Any? {
  36 + switch self {
  37 + case let rawValue as _ExtendCustomBasicType:
  38 + return rawValue._plainValue()
  39 + case let rawValue as _BuiltInBridgeType:
  40 + return rawValue._plainValue()
  41 + case let rawValue as _BuiltInBasicType:
  42 + return rawValue._plainValue()
  43 + case let rawValue as _RawEnumProtocol:
  44 + return rawValue._plainValue()
  45 + case let rawValue as _ExtendCustomModelType:
  46 + return rawValue._plainValue()
  47 + default:
  48 + return nil
  49 + }
  50 + }
  51 +}
  52 +
... ...
ParentAssistant/Pods/HandyJSON/Source/URLTransform.swift 0 → 100644
... ... @@ -0,0 +1,65 @@
  1 +//
  2 +// URLTransform.swift
  3 +// ObjectMapper
  4 +//
  5 +// Created by Tristan Himmelman on 2014-10-27.
  6 +//
  7 +// The MIT License (MIT)
  8 +//
  9 +// Copyright (c) 2014-2016 Hearst
  10 +//
  11 +// Permission is hereby granted, free of charge, to any person obtaining a copy
  12 +// of this software and associated documentation files (the "Software"), to deal
  13 +// in the Software without restriction, including without limitation the rights
  14 +// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
  15 +// copies of the Software, and to permit persons to whom the Software is
  16 +// furnished to do so, subject to the following conditions:
  17 +//
  18 +// The above copyright notice and this permission notice shall be included in
  19 +// all copies or substantial portions of the Software.
  20 +//
  21 +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
  22 +// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
  23 +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
  24 +// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
  25 +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
  26 +// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
  27 +// THE SOFTWARE.
  28 +
  29 +import Foundation
  30 +
  31 +open class URLTransform: TransformType {
  32 + public typealias Object = URL
  33 + public typealias JSON = String
  34 + private let shouldEncodeURLString: Bool
  35 +
  36 + /**
  37 + Initializes the URLTransform with an option to encode URL strings before converting them to an NSURL
  38 + - parameter shouldEncodeUrlString: when true (the default) the string is encoded before passing
  39 + to `NSURL(string:)`
  40 + - returns: an initialized transformer
  41 + */
  42 + public init(shouldEncodeURLString: Bool = true) {
  43 + self.shouldEncodeURLString = shouldEncodeURLString
  44 + }
  45 +
  46 + open func transformFromJSON(_ value: Any?) -> URL? {
  47 + guard let URLString = value as? String else { return nil }
  48 +
  49 + if !shouldEncodeURLString {
  50 + return URL(string: URLString)
  51 + }
  52 +
  53 + guard let escapedURLString = URLString.addingPercentEncoding(withAllowedCharacters: CharacterSet.urlQueryAllowed) else {
  54 + return nil
  55 + }
  56 + return URL(string: escapedURLString)
  57 + }
  58 +
  59 + open func transformToJSON(_ value: URL?) -> String? {
  60 + if let URL = value {
  61 + return URL.absoluteString
  62 + }
  63 + return nil
  64 + }
  65 +}
... ...
ParentAssistant/Pods/Manifest.lock
1 1 PODS:
2 2 - Alamofire (4.0.1)
3 3 - DZNEmptyDataSet (1.8.1)
  4 + - HandyJSON (4.1.1)
4 5 - NIMSDK_LITE (4.9.0)
5 6 - Reachability (3.2)
6 7 - SDWebImage (3.8.2):
... ... @@ -18,23 +19,25 @@ PODS:
18 19 - XRCarouselView (2.5.6)
19 20  
20 21 DEPENDENCIES:
21   - - Alamofire
22   - - DZNEmptyDataSet
23   - - NIMSDK_LITE
24   - - Reachability
25   - - SDWebImage
26   - - SVProgressHUD
27   - - SwiftHash
28   - - Toast
29   - - UMCAnalytics
30   - - UMCCommon
31   - - UMCErrorCatch
32   - - UMCSecurityPlugins
33   - - XRCarouselView
  22 + - Alamofire (~> 4.0.1)
  23 + - DZNEmptyDataSet (~> 1.8.1)
  24 + - HandyJSON (~> 4.1.1)
  25 + - NIMSDK_LITE (~> 4.9.0)
  26 + - Reachability (~> 3.2)
  27 + - SDWebImage (~> 3.8.2)
  28 + - SVProgressHUD (~> 2.2.5)
  29 + - SwiftHash (~> 2.0.1)
  30 + - Toast (~> 3.1.0)
  31 + - UMCAnalytics (~> 5.4.1)
  32 + - UMCCommon (~> 1.4.2)
  33 + - UMCErrorCatch (~> 1.0.0)
  34 + - UMCSecurityPlugins (~> 1.0.6)
  35 + - XRCarouselView (~> 2.5.6)
34 36  
35 37 SPEC CHECKSUMS:
36 38 Alamofire: 7682d43245de14874acd142ec137b144aa1dd335
37 39 DZNEmptyDataSet: 9525833b9e68ac21c30253e1d3d7076cc828eaa7
  40 + HandyJSON: 3a3de917c4118767ffe41c29b5acba23409649f4
38 41 NIMSDK_LITE: a69a019544299a1b597db6ebf98927f5e12fa17c
39 42 Reachability: 33e18b67625424e47b6cde6d202dce689ad7af96
40 43 SDWebImage: 098e97e6176540799c27e804c96653ee0833d13c
... ... @@ -47,6 +50,6 @@ SPEC CHECKSUMS:
47 50 UMCSecurityPlugins: 0831a08f3988f3cea9f1d3a7626cd9bee4fef150
48 51 XRCarouselView: 52529f924d26ee4787f9bd958150800b73e60922
49 52  
50   -PODFILE CHECKSUM: bede341771386f5d5daec06d0fa659a0b8e8137b
  53 +PODFILE CHECKSUM: ef5a2eedc2a762110d9f7458ad01512ced09aba0
51 54  
52 55 COCOAPODS: 1.4.0
... ...
ParentAssistant/Pods/NIMSDK_LITE/NIMSDK/NIMSDK.framework/Headers/NIMAntispamManagerProtocol.h 0 → 100644
... ... @@ -0,0 +1,31 @@
  1 +//
  2 +// NIMAntispamManagerProtocol.h
  3 +// NIMLib
  4 +//
  5 +// Created by chris on 2018/3/9.
  6 +// Copyright © 2018年 Netease. All rights reserved.
  7 +//
  8 +
  9 +#import <Foundation/Foundation.h>
  10 +NS_ASSUME_NONNULL_BEGIN
  11 +
  12 +@class NIMLocalAntiSpamCheckOption;
  13 +@class NIMLocalAntiSpamCheckResult;
  14 +
  15 +@protocol NIMAntispamManager <NSObject>
  16 +
  17 +/**
  18 + * 本地反垃圾检查器
  19 + *
  20 + * @param option 本地反垃圾检查选项
  21 + * @param error 错误提示
  22 + * @discussion 此扩展不会漫游到其他端,上层需要保证 NSDictionary 可以转换为 JSON。
  23 + * @return 本地反垃圾检查结果,本地反垃圾列表会在每次登录后同步更新
  24 + * 因为网络问题,或者没有登录,都会导致本地反垃圾列表无效的情况,error 中会包含具体出错原因
  25 + */
  26 +- (NIMLocalAntiSpamCheckResult *)checkLocalAntispam:(NIMLocalAntiSpamCheckOption *)option
  27 + error:(NSError **)error;
  28 +
  29 +@end
  30 +
  31 +NS_ASSUME_NONNULL_END
... ...
ParentAssistant/Pods/NIMSDK_LITE/NIMSDK/NIMSDK.framework/Headers/NIMCacheQuery.h 0 → 100644
... ... @@ -0,0 +1,58 @@
  1 +//
  2 +// NIMCacheQuery.h
  3 +// NIMLib
  4 +//
  5 +// Created by Netease.
  6 +// Copyright © 2018年 Netease. All rights reserved.
  7 +//
  8 +
  9 +#import <Foundation/Foundation.h>
  10 +
  11 +
  12 +NS_ASSUME_NONNULL_BEGIN
  13 +
  14 +/**
  15 + * SDK 缓存查询选项
  16 + */
  17 +@interface NIMResourceQueryOption : NSObject
  18 +
  19 +/**
  20 + * 查询的缓存文件类型,类型为文件后缀的集合。
  21 + * 默认为 nil ,不分类型查询所有文件缓存。
  22 + */
  23 +@property (nonatomic, copy, nullable) NSArray<NSString *> *extensions;
  24 +
  25 +/**
  26 + * 当前时间往前多少时间之前所有的消息,默认为 7 天之前。
  27 + */
  28 +@property (nonatomic, assign) NSTimeInterval timeInterval;
  29 +
  30 +
  31 +@end
  32 +
  33 +
  34 +/**
  35 + * SDK 缓存查询结果
  36 + */
  37 +@interface NIMCacheQueryResult : NSObject
  38 +
  39 +/**
  40 + * 文件路径
  41 + */
  42 +@property (nonatomic, copy, readonly) NSString *path;
  43 +
  44 +/**
  45 + * 文件的创建日期
  46 + */
  47 +@property (nonatomic, strong, readonly) NSDate *creationDate;
  48 +
  49 +/**
  50 + * 文件的大小,单位为 bytes
  51 + */
  52 +@property (nonatomic, assign, readonly) long long fileLength;
  53 +
  54 +
  55 +@end
  56 +
  57 +
  58 +NS_ASSUME_NONNULL_END
... ...
ParentAssistant/Pods/NIMSDK_LITE/NIMSDK/NIMSDK.framework/Headers/NIMTeamMessageReceipt.h 0 → 100644
... ... @@ -0,0 +1,33 @@
  1 +//
  2 +// NIMTeamMessageReceipt.h
  3 +// NIMLib
  4 +//
  5 +// Created by Netease.
  6 +// Copyright © 2018年 Netease. All rights reserved.
  7 +//
  8 +
  9 +#import <Foundation/Foundation.h>
  10 +
  11 +NS_ASSUME_NONNULL_BEGIN
  12 +
  13 +/**
  14 + * 群已读回执信息
  15 + * @discussion 只有当当前消息为 Team 消息且 teamReceiptEnabled 为 YES 时才有效,需要对端调用过发送已读回执的接口
  16 + */
  17 +@interface NIMTeamMessageReceipt : NSObject
  18 +
  19 +/**
  20 + * 已读人数
  21 + * @discussion 只有当当前消息为 Team 消息且 teamReceiptEnabled 为 YES 时这个字段才有效,需要对端调用过发送已读回执的接口
  22 + */
  23 +@property (nonatomic,assign,readonly) NSInteger readCount;
  24 +
  25 +/**
  26 + * 未读人数
  27 + * @discussion 只有当当前消息为 Team 消息且 teamReceiptEnabled 为 YES 时这个字段才有效,需要对端调用过发送已读回执的接口
  28 + */
  29 +@property (nonatomic,assign,readonly) NSInteger unreadCount;
  30 +
  31 +@end
  32 +
  33 +NS_ASSUME_NONNULL_END
... ...
ParentAssistant/Pods/NIMSDK_LITE/NIMSDK/NIMSDK.framework/Headers/NIMTeamMessageReceiptDetail.h 0 → 100644
... ... @@ -0,0 +1,43 @@
  1 +//
  2 +// NIMTeamMessageReceiptDetail.h
  3 +// NIMLib
  4 +//
  5 +// Created by Netease.
  6 +// Copyright © 2018年 Netease. All rights reserved.
  7 +//
  8 +
  9 +#import <Foundation/Foundation.h>
  10 +
  11 +NS_ASSUME_NONNULL_BEGIN
  12 +
  13 +
  14 +@class NIMMessageReceipt;
  15 +/**
  16 + * 已读回执详情
  17 + */
  18 +@interface NIMTeamMessageReceiptDetail : NSObject
  19 +
  20 +/**
  21 + * 所属消息 Id
  22 + */
  23 +@property (nonatomic, copy, readonly) NSString *messageId;
  24 +
  25 +/**
  26 + * 所属会话 Id
  27 + */
  28 +@property (nonatomic, copy, readonly) NSString *sessionId;
  29 +
  30 +/**
  31 + * 已读用户列表
  32 + */
  33 +@property (nonatomic, copy, readonly) NSArray *readUserIds;
  34 +
  35 +/**
  36 + * 未读用户列表
  37 + */
  38 +@property (nonatomic, copy, readonly) NSArray *unreadUserIds;
  39 +
  40 +@end
  41 +
  42 +
  43 +NS_ASSUME_NONNULL_END
... ...
ParentAssistant/Pods/Pods.xcodeproj/project.pbxproj
... ... @@ -7,656 +7,794 @@
7 7 objects = {
8 8  
9 9 /* Begin PBXBuildFile section */
10   - 00E153632A414101E0A66AE23569802B /* Result.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0B50DAE192A6B3640694B61BEA27967 /* Result.swift */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; };
11   - 04596B755DD74FB93D9923CCC76F35D6 /* Toast-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = 5CEEDC06F17E3B2247D0C213D2EEFA22 /* Toast-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; };
12   - 05216FF5BBAF4DFABD14DFE22EA75577 /* UIView+Toast.h in Headers */ = {isa = PBXBuildFile; fileRef = 37D066AA516CA828ADE8C5F756198AEA /* UIView+Toast.h */; settings = {ATTRIBUTES = (Public, ); }; };
13   - 05DC121915D9BD7F7D11FE4C4651FC59 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = E81ABC082107E519C9718F3CCEA03977 /* Foundation.framework */; };
14   - 066BF6608588853AA9FB7588BEA94711 /* SwiftHash-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = 3910287CF67BB6D99BFC32020B92D66B /* SwiftHash-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; };
15   - 06FC1AF6668EDC7A83382E6646F64F1F /* Reachability-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 966714BC6CB45F265B89BBD42264D605 /* Reachability-dummy.m */; };
16   - 079D990738735591330332B5F2551AE4 /* NetworkReachabilityManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = D38B286C5C6AB0DF4A98EEA7B4AEDF20 /* NetworkReachabilityManager.swift */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; };
17   - 09BDDB4079D7347692AD9C29F8242C8E /* SVProgressAnimatedView.h in Headers */ = {isa = PBXBuildFile; fileRef = 06DC9572FD9048B84A9DABDD03902859 /* SVProgressAnimatedView.h */; settings = {ATTRIBUTES = (Public, ); }; };
18   - 09EB729363E87B22D55BB6340CC41637 /* XRCarouselView-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 0B1E77043F562C0C1C7EA7E1A6ACB3AB /* XRCarouselView-dummy.m */; };
19   - 10466C2E3B37F15A5BBA3B9E941FEDF2 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = E81ABC082107E519C9718F3CCEA03977 /* Foundation.framework */; };
20   - 10B7C0F6AFC16C5595BF7E6A8C3040F5 /* UIImage+MultiFormat.h in Headers */ = {isa = PBXBuildFile; fileRef = B0CD149E4B768603919225D913E5623E /* UIImage+MultiFormat.h */; settings = {ATTRIBUTES = (Public, ); }; };
21   - 14CECE238604E1D44104E5BCD14EB2BE /* SessionDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = CEE55910941CC3DB174AE3ED4406AB97 /* SessionDelegate.swift */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; };
22   - 15FBFBBDEC417708F98346EF3140A862 /* SVProgressHUD.h in Headers */ = {isa = PBXBuildFile; fileRef = A4284179411380CDBB6CBA4C12CC2EC1 /* SVProgressHUD.h */; settings = {ATTRIBUTES = (Public, ); }; };
23   - 164781197625A3149B3BDBCAA2AC8CC3 /* Validation.swift in Sources */ = {isa = PBXBuildFile; fileRef = B8713380D331B1D052F691C2926D0B73 /* Validation.swift */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; };
24   - 1B9EDEDC964E6B08F78920B4F4B9DB84 /* Alamofire-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = 69A1474C3B39F2766E17D5E986933EB5 /* Alamofire-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; };
25   - 204944D67267632DD7CD4BEFB60AC389 /* Response.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4A4FCA00FE16408A60CBE0F56CD26E6C /* Response.swift */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; };
26   - 21D1ADA45562D9B49E0B86BC0AD9B024 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = E81ABC082107E519C9718F3CCEA03977 /* Foundation.framework */; };
27   - 23C5B91C7647AFA6B1DCC3C24E6706EA /* UIButton+WebCache.m in Sources */ = {isa = PBXBuildFile; fileRef = 0387FCC8EF5DA97E95535BB4EBA7F133 /* UIButton+WebCache.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; };
28   - 257E2206CD8D95F6BB1C4128CE0EA520 /* UIImageView+WebCache.m in Sources */ = {isa = PBXBuildFile; fileRef = 96F5CD3DDADCBA20C43F86C45281E98A /* UIImageView+WebCache.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; };
29   - 2B58B070F9D7324583D01EE906BC918C /* SessionManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = E69012EFA9917EA02DD59B11574B0B26 /* SessionManager.swift */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; };
30   - 2D6C9A4529DBC7057800DD7FAC730A6E /* Reachability.h in Headers */ = {isa = PBXBuildFile; fileRef = 0B6CA6D3D3167BE8720EE9756B8762E7 /* Reachability.h */; settings = {ATTRIBUTES = (Public, ); }; };
31   - 343B30C989188B77FB1149FED753A63C /* ServerTrustPolicy.swift in Sources */ = {isa = PBXBuildFile; fileRef = 664D41C5636B633819EF1887251701BA /* ServerTrustPolicy.swift */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; };
32   - 34C16BF65AA3EECD47921D480A7D9D8A /* SDWebImagePrefetcher.h in Headers */ = {isa = PBXBuildFile; fileRef = 45C480734183DBFB9258B038501DA266 /* SDWebImagePrefetcher.h */; settings = {ATTRIBUTES = (Public, ); }; };
33   - 34DD027A08EB61A1CB4BEBDF3DDF8AD7 /* UIImage+MultiFormat.m in Sources */ = {isa = PBXBuildFile; fileRef = FA2BB5CBAA58FB62AFBC392717B28457 /* UIImage+MultiFormat.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; };
34   - 36C804098901C14987AC99D9488B7818 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = E81ABC082107E519C9718F3CCEA03977 /* Foundation.framework */; };
35   - 37CC337C4C2493EC748562C944962491 /* Reachability-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = 63DADB2A24F2E24705306C81DE52354C /* Reachability-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; };
36   - 381D238C10FFF0A4B0D216200E2AD3C0 /* SDWebImage-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = F0A8D9944EB1FF44C20B9A0C78A8DAAD /* SDWebImage-dummy.m */; };
37   - 3852C5A03720A4ABC9D455E4C08F585E /* SDWebImageDownloader.h in Headers */ = {isa = PBXBuildFile; fileRef = C40675EC2CFD9D7D3E3D39FCE5F86D94 /* SDWebImageDownloader.h */; settings = {ATTRIBUTES = (Public, ); }; };
38   - 3D7D09B3684687F1CB2C81486753DE7D /* SVProgressAnimatedView.m in Sources */ = {isa = PBXBuildFile; fileRef = 9308B2D0BFEB8F47D93552968D78B8A9 /* SVProgressAnimatedView.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; };
39   - 408F3C81F249F5A44A49D3EA4F27FC3F /* UIView+WebCacheOperation.h in Headers */ = {isa = PBXBuildFile; fileRef = 1EA85E4120BF4DBBC742DBD972E1D4E0 /* UIView+WebCacheOperation.h */; settings = {ATTRIBUTES = (Public, ); }; };
40   - 45F5792627465D97FBC16B584112B1E5 /* SHA1.swift in Sources */ = {isa = PBXBuildFile; fileRef = A3F3486441B797B49AF7E21644585044 /* SHA1.swift */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; };
41   - 474CCE9E8E5BAFB27CB9D60794E77308 /* SwiftHash-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 7A6CCAEC1ECBE477223AEFED858D0220 /* SwiftHash-dummy.m */; };
42   - 4C144355E41C99902528AAD3CF069680 /* DZNEmptyDataSet-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = A714B9425F511B82B9A3122631CA6373 /* DZNEmptyDataSet-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; };
43   - 4E00870584A9B7F49A7EA529E2D0FE9D /* SDWebImageCompat.h in Headers */ = {isa = PBXBuildFile; fileRef = D2D134E6EA3014C73775F1A699A2BA42 /* SDWebImageCompat.h */; settings = {ATTRIBUTES = (Public, ); }; };
44   - 5057703CD8FFC733FE4BC6A380DFCEC9 /* UIImageView+HighlightedWebCache.h in Headers */ = {isa = PBXBuildFile; fileRef = CFD037A4D376020E2CAD65E1F7FECCB7 /* UIImageView+HighlightedWebCache.h */; settings = {ATTRIBUTES = (Public, ); }; };
45   - 5246C4AC46977982EE65340E01575AFD /* UIButton+WebCache.h in Headers */ = {isa = PBXBuildFile; fileRef = D8CB6D7AEEACE31A7B665F5C5BE3DBEF /* UIButton+WebCache.h */; settings = {ATTRIBUTES = (Public, ); }; };
46   - 53061C97735426494CA927DB6094C126 /* UIImageView+WebCache.h in Headers */ = {isa = PBXBuildFile; fileRef = 648F9002573D6811BFB3D3133CDAE4FD /* UIImageView+WebCache.h */; settings = {ATTRIBUTES = (Public, ); }; };
47   - 53EF76E5E2101DC10FC9D3CFA3F51289 /* MD5.swift in Sources */ = {isa = PBXBuildFile; fileRef = DE03BDB2C3EB8E596243F3FB6F59217C /* MD5.swift */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; };
48   - 57C6F19B2C2E4628EF6356CC7F21DBEC /* SDWebImageDownloaderOperation.m in Sources */ = {isa = PBXBuildFile; fileRef = 0FF492DA7B2B6480B7AA0B29AFEA02B4 /* SDWebImageDownloaderOperation.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; };
49   - 58812AABBC0A1E7AE019752424DF31A7 /* MultipartFormData.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1F0F65D1B0A07B2CF87C8597517C1C90 /* MultipartFormData.swift */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; };
50   - 59139EE33C29D86F8D3342C0AA6277DF /* XRPlaceholder.png in Resources */ = {isa = PBXBuildFile; fileRef = A4BC4E64237EB25000D5D76588DDA155 /* XRPlaceholder.png */; };
51   - 5976E603A5B7D1E8C18EC9F8BE172E2F /* UIView+Toast.m in Sources */ = {isa = PBXBuildFile; fileRef = 64D95CAFC82A27D9FD0489E9C5917506 /* UIView+Toast.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0 -w -Xanalyzer -analyzer-disable-all-checks"; }; };
52   - 5E25BCD30BDE2E7A68D1A6FAF7253AD4 /* DispatchQueue+Alamofire.swift in Sources */ = {isa = PBXBuildFile; fileRef = D3E2A6B7148FF5DAE9D54A452036AA3C /* DispatchQueue+Alamofire.swift */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; };
53   - 5F5B1D736E65C60A1C4C195D4BF87D23 /* SVRadialGradientLayer.h in Headers */ = {isa = PBXBuildFile; fileRef = 62A63D7FFB23D16D27F325250A424933 /* SVRadialGradientLayer.h */; settings = {ATTRIBUTES = (Public, ); }; };
54   - 5FD2584401015F48CAA734BBB9ED7DA1 /* SDWebImageOperation.h in Headers */ = {isa = PBXBuildFile; fileRef = 31EE0E670B57E7A1A671D5E6BDFE9EEE /* SDWebImageOperation.h */; settings = {ATTRIBUTES = (Public, ); }; };
55   - 606C3BAD569CD52EB453BDE439971E61 /* QuartzCore.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 4DB0A7F29D540AB077DA6D9855C3F743 /* QuartzCore.framework */; };
56   - 6172CA961FBA887E0A208C93DD938C38 /* SVIndefiniteAnimatedView.h in Headers */ = {isa = PBXBuildFile; fileRef = C926E16FF286A7F032D0AB63AAFDCDD3 /* SVIndefiniteAnimatedView.h */; settings = {ATTRIBUTES = (Public, ); }; };
57   - 6540CC4D369A32F6DE54AFA8D5D6FAF9 /* Alamofire-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = EEE5810B54BF020658D7EC89FCA21910 /* Alamofire-dummy.m */; };
58   - 688194DF445E1D90020742A68E0CAED6 /* SVRadialGradientLayer.m in Sources */ = {isa = PBXBuildFile; fileRef = 1F26CF1785555BB027A32714B4554BFF /* SVRadialGradientLayer.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; };
59   - 6F880870AF9E7C7E2611D5BC0E05B14C /* UIImage+GIF.h in Headers */ = {isa = PBXBuildFile; fileRef = 82EA4C43CB0330D7597A7EC7C14DDA06 /* UIImage+GIF.h */; settings = {ATTRIBUTES = (Public, ); }; };
  10 + 00E153632A414101E0A66AE23569802B /* Result.swift in Sources */ = {isa = PBXBuildFile; fileRef = 92331AB0F30415BE666C619D1A45513E /* Result.swift */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; };
  11 + 01866720BD41E2820300D8B9284FC061 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = E81ABC082107E519C9718F3CCEA03977 /* Foundation.framework */; };
  12 + 0203C16E98AD37E5A0C596D1B39C5119 /* Reachability.m in Sources */ = {isa = PBXBuildFile; fileRef = 0969E5011DCC0C421F637E6859279610 /* Reachability.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; };
  13 + 0369C812B817E442E9BF7B2F561E1AEF /* Configuration.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1914DA670BEE4BC1F461E88ED1BD7C26 /* Configuration.swift */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; };
  14 + 05F1082B0C6E40F76E821D67DFAD9AB5 /* SDWebImageDecoder.h in Headers */ = {isa = PBXBuildFile; fileRef = 172419A08571955755C3C6FB2044DD9D /* SDWebImageDecoder.h */; settings = {ATTRIBUTES = (Public, ); }; };
  15 + 079D990738735591330332B5F2551AE4 /* NetworkReachabilityManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = BCCC1A6E4AF8DAF6E5609D65548B3C79 /* NetworkReachabilityManager.swift */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; };
  16 + 0A2126372E9629100B22A44A94E73D71 /* SDWebImageDownloaderOperation.h in Headers */ = {isa = PBXBuildFile; fileRef = 33347618F6541AA20F52632F9EA10CA6 /* SDWebImageDownloaderOperation.h */; settings = {ATTRIBUTES = (Public, ); }; };
  17 + 0ABF85713B5ABC01E4121F8DBCBBD195 /* Deserializer.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1D374115D56716D6284C03A777CD2BB4 /* Deserializer.swift */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; };
  18 + 0C11C193B2F9FF679EB214C272C8A480 /* Transformable.swift in Sources */ = {isa = PBXBuildFile; fileRef = E4E76CB8696BAB20A617484E4726713B /* Transformable.swift */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; };
  19 + 0C4EA35F79172E81D6BF56A2FC856ED8 /* SVProgressAnimatedView.m in Sources */ = {isa = PBXBuildFile; fileRef = 38EE23882943EDCED73523F643A71C39 /* SVProgressAnimatedView.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; };
  20 + 121B576C5153736760EDBD385DCE1A82 /* QuartzCore.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 4DB0A7F29D540AB077DA6D9855C3F743 /* QuartzCore.framework */; };
  21 + 12DE723E9DF6F13F3286874C3A95E30A /* Logger.swift in Sources */ = {isa = PBXBuildFile; fileRef = 26EF7D93FE7442849AC14571996AC8ED /* Logger.swift */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; };
  22 + 143D0DFED5AF7708744EBDB443F9812D /* EnumType.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5C73B5BC3B66F99610607951FEC5FCB3 /* EnumType.swift */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; };
  23 + 14CECE238604E1D44104E5BCD14EB2BE /* SessionDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2D3152CF39784BC2AAD4747AF03BB50A /* SessionDelegate.swift */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; };
  24 + 164781197625A3149B3BDBCAA2AC8CC3 /* Validation.swift in Sources */ = {isa = PBXBuildFile; fileRef = E95345A11FCCED373B3A5758A6073CDB /* Validation.swift */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; };
  25 + 170AB456D9F3C346DCF407E42D84B5D5 /* UIButton+WebCache.m in Sources */ = {isa = PBXBuildFile; fileRef = BE70BDE392E6E92B76047D2DED4ED380 /* UIButton+WebCache.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; };
  26 + 17F8D48B0736FD13AC59D9311C074E9D /* NSData+ImageContentType.m in Sources */ = {isa = PBXBuildFile; fileRef = C203E9ABEF394B0009B142EEB9AA64FC /* NSData+ImageContentType.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; };
  27 + 1A3841F2F008E6FEBA8B10F04DE5AD15 /* QuartzCore.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 4DB0A7F29D540AB077DA6D9855C3F743 /* QuartzCore.framework */; };
  28 + 1B9EDEDC964E6B08F78920B4F4B9DB84 /* Alamofire-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = BF496B88C6E68626DC9D0C9FC152BD3C /* Alamofire-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; };
  29 + 1C39565C535B7D534368C5DFB46659B5 /* SDWebImageDownloader.m in Sources */ = {isa = PBXBuildFile; fileRef = 1983D355FD75B9D24A71756509C98131 /* SDWebImageDownloader.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; };
  30 + 204944D67267632DD7CD4BEFB60AC389 /* Response.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8781B0306B0188AF528659F413E1B542 /* Response.swift */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; };
  31 + 23C92743D0D2154080836B58896172C9 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = E81ABC082107E519C9718F3CCEA03977 /* Foundation.framework */; };
  32 + 240CD81B9BDAA551B583A82E3618D560 /* XRCarouselView-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = 323A41D79693687F0377B9ACACC90D4A /* XRCarouselView-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; };
  33 + 242367446F58A71823A8250396E775A3 /* HelpingMapper.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9889E5067E9A54BAEC05298BBA10F671 /* HelpingMapper.swift */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; };
  34 + 264463742964367E06060C2E85D3EEF4 /* SDWebImage-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = E786E1AEE51D914333543AC4DEF9B3FB /* SDWebImage-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; };
  35 + 27813DC0914AD972436022C87454185F /* SDWebImage-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = FF65E4A0D399571B01517891F0309004 /* SDWebImage-dummy.m */; };
  36 + 2AB8304BE65678C2043856E0F4AAFC9E /* SDWebImageDownloader.h in Headers */ = {isa = PBXBuildFile; fileRef = 9A559DCF61F2E184BC9318C05F05CFF3 /* SDWebImageDownloader.h */; settings = {ATTRIBUTES = (Public, ); }; };
  37 + 2B58B070F9D7324583D01EE906BC918C /* SessionManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5104B9F40B6C55F71BDE788F76AA8F53 /* SessionManager.swift */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; };
  38 + 2B5DF32B1906ED4F0088D37CE08CB2B9 /* Metadata.swift in Sources */ = {isa = PBXBuildFile; fileRef = BC3C517CD17DEB98E878268901D654E8 /* Metadata.swift */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; };
  39 + 343B30C989188B77FB1149FED753A63C /* ServerTrustPolicy.swift in Sources */ = {isa = PBXBuildFile; fileRef = 640ED88831DE9CA10759B8FC3751C531 /* ServerTrustPolicy.swift */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; };
  40 + 38BC499B109AEBC02AD6C88AB2ED057D /* SDWebImageManager.m in Sources */ = {isa = PBXBuildFile; fileRef = FFCF8A6062658FA349B617C0D75723C2 /* SDWebImageManager.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; };
  41 + 3C69CE7353282718747615DDA9563510 /* SVProgressHUD-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = 93251EC8BEF89E6A4FA758DA38A1E47A /* SVProgressHUD-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; };
  42 + 3D342698F0FA2B9391B7B1733D499623 /* SVRadialGradientLayer.h in Headers */ = {isa = PBXBuildFile; fileRef = 20C0A79CAF95E65B981CC5F896E4334C /* SVRadialGradientLayer.h */; settings = {ATTRIBUTES = (Public, ); }; };
  43 + 3DD10D4C59666719E941A5D0EB5D9582 /* XRCarouselView.m in Sources */ = {isa = PBXBuildFile; fileRef = A91D08749C812CD6EB281780E69AFED6 /* XRCarouselView.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; };
  44 + 44E9442A5B676A7E4941C47EB6C49C9F /* UIView+Toast.m in Sources */ = {isa = PBXBuildFile; fileRef = E533F265C56324D6F57EB232221F586A /* UIView+Toast.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0 -w -Xanalyzer -analyzer-disable-all-checks"; }; };
  45 + 46389823D72FA2DA9F4AD34CE119E9FA /* Reachability-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = 29BC53491C8D6BA4B81045D6FBBA043C /* Reachability-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; };
  46 + 46749DE4D7ED1863AFF86DFB519EAAD0 /* UIImageView+HighlightedWebCache.h in Headers */ = {isa = PBXBuildFile; fileRef = 9011EFC1DA29BE6CA0831595062B82ED /* UIImageView+HighlightedWebCache.h */; settings = {ATTRIBUTES = (Public, ); }; };
  47 + 48F71FC920A4F562FF7ECFD25BD08F2E /* NSDecimalNumberTransform.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2830040C9AF69744EEB45C092E65CA2A /* NSDecimalNumberTransform.swift */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; };
  48 + 4A1D23F6526F175FCC2B35539E1B6AD6 /* SVProgressHUD.h in Headers */ = {isa = PBXBuildFile; fileRef = 17403F9FAA48DA29AAEB297BE9AC4D51 /* SVProgressHUD.h */; settings = {ATTRIBUTES = (Public, ); }; };
  49 + 4A2F8CD414D57920B53208F0F9A39E34 /* XRCarouselView.h in Headers */ = {isa = PBXBuildFile; fileRef = 57342E33349B812F65B6D994EA74E212 /* XRCarouselView.h */; settings = {ATTRIBUTES = (Public, ); }; };
  50 + 4A961542DBC3F70E502B854EBB870694 /* EnumTransform.swift in Sources */ = {isa = PBXBuildFile; fileRef = 31A74FD90C96035085B5A148E9CBA64C /* EnumTransform.swift */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; };
  51 + 4C144355E41C99902528AAD3CF069680 /* DZNEmptyDataSet-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = 73AD0FFA16B2C0B1B8A40B3A76629975 /* DZNEmptyDataSet-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; };
  52 + 4F7B3FA3957DCA2A67546E72117904F9 /* HexColorTransform.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2E85535E49256ABCDBBB9EA045CE6268 /* HexColorTransform.swift */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; };
  53 + 502127E1D7BF9D8D8FA29AD2F7EF420E /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = E81ABC082107E519C9718F3CCEA03977 /* Foundation.framework */; };
  54 + 50424A0F4A3907712832B1FA56C9E2A2 /* Measuable.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7D9407543C44ABED0AC48154C76831BE /* Measuable.swift */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; };
  55 + 53926FE56FBF1399E69B9F893ACFBDB1 /* Pods-ParentAssistant-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = 1706C196E50CAE9C6DE364B9BA5E9DCB /* Pods-ParentAssistant-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; };
  56 + 5438E76D8DA2CB8E045DE40226F4A5AB /* DateFormatterTransform.swift in Sources */ = {isa = PBXBuildFile; fileRef = B4EC3094994043023CF3002A63DD6DA4 /* DateFormatterTransform.swift */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; };
  57 + 545C0FA9073D729E2E8C3EF9678C0DEA /* TransformOf.swift in Sources */ = {isa = PBXBuildFile; fileRef = 72ADD4F0113F0555435EA10BA789F8E2 /* TransformOf.swift */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; };
  58 + 5475A5933FABB5F9999E31020427B182 /* DataTransform.swift in Sources */ = {isa = PBXBuildFile; fileRef = DE92E07FF56795D096246F9059B540CA /* DataTransform.swift */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; };
  59 + 58812AABBC0A1E7AE019752424DF31A7 /* MultipartFormData.swift in Sources */ = {isa = PBXBuildFile; fileRef = 99DF7E55400E9131640E0694D3C91764 /* MultipartFormData.swift */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; };
  60 + 5C95D2513AAB007D33804F074AC4DD33 /* Export.swift in Sources */ = {isa = PBXBuildFile; fileRef = C33C9063E8CA60D73EE6050FCF59F433 /* Export.swift */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; };
  61 + 5E25BCD30BDE2E7A68D1A6FAF7253AD4 /* DispatchQueue+Alamofire.swift in Sources */ = {isa = PBXBuildFile; fileRef = F6429920CDFD8D08A5A0566565673330 /* DispatchQueue+Alamofire.swift */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; };
  62 + 5E9D11BEACC080376EA6F57C6167B34A /* HandyJSON-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = 11DABA5B57A3076260D36D4A9AE646F5 /* HandyJSON-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; };
  63 + 603F9D0686CE005205D389C1E4C6072A /* XRPlaceholder.png in Resources */ = {isa = PBXBuildFile; fileRef = FFEBBEC7D2ED4C631DFB3CBB04E6F926 /* XRPlaceholder.png */; };
  64 + 604E191C52F306436E51253A4A21589C /* SwiftHash-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = 9F2BF6E468482ED7EDAE9AFD6CA2C994 /* SwiftHash-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; };
  65 + 63751EA36B3CCD03BF292C19F6B7C5FE /* SDWebImageCompat.h in Headers */ = {isa = PBXBuildFile; fileRef = 82C441F9B75595B2F266E6AC40AD7D85 /* SDWebImageCompat.h */; settings = {ATTRIBUTES = (Public, ); }; };
  66 + 6540CC4D369A32F6DE54AFA8D5D6FAF9 /* Alamofire-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = BB2B3251E63EE34530FC8A40E441CB23 /* Alamofire-dummy.m */; };
  67 + 6694F9A05D6A58C5C27935913BF8AE56 /* Pods-ParentAssistant-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = F6BAADF2798AA6F62DA82FAA92DECB07 /* Pods-ParentAssistant-dummy.m */; };
  68 + 69735BB95E8E8111E0CEA96BBA19486A /* ExtendCustomModelType.swift in Sources */ = {isa = PBXBuildFile; fileRef = 54E529332879B58C942DDF16DF5D39B4 /* ExtendCustomModelType.swift */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; };
  69 + 6A14BBE1A1C5AFF3B9FCFFCC30685E04 /* Toast-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = 835B1DEC82F034C2C12DC0723F18F6E9 /* Toast-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; };
  70 + 6BE097BD2C38D14E51B20BCEB5C6F495 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = E81ABC082107E519C9718F3CCEA03977 /* Foundation.framework */; };
  71 + 6C3C226E0B46AFC4FD756BA6C5D9414E /* SDWebImagePrefetcher.m in Sources */ = {isa = PBXBuildFile; fileRef = 6850886B55CE3CD9B901B28690292C5C /* SDWebImagePrefetcher.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; };
  72 + 6F4160DEA9816F49351CCEF452CCF00C /* CustomDateFormatTransform.swift in Sources */ = {isa = PBXBuildFile; fileRef = 64CF5A867496880A0DAE25ED9EC8E512 /* CustomDateFormatTransform.swift */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; };
  73 + 71770C33C6DBF555B10D0A42E5C034F4 /* NominalType.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7C5CEE4C10F2E83011011BAE5999B4FD /* NominalType.swift */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; };
60 74 73B9C996AED49ED7CF8EC2A6F1738059 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = E81ABC082107E519C9718F3CCEA03977 /* Foundation.framework */; };
61   - 73FD703165C603047C9FECF8D9117D35 /* NSData+ImageContentType.h in Headers */ = {isa = PBXBuildFile; fileRef = BA2B601AA9C42D6B8AE96BE8321E5D6C /* NSData+ImageContentType.h */; settings = {ATTRIBUTES = (Public, ); }; };
62   - 78F4229B4A746A38341474FEB9DADB25 /* ParameterEncoding.swift in Sources */ = {isa = PBXBuildFile; fileRef = AAF088CE77A538A96EE53A7EAE65C819 /* ParameterEncoding.swift */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; };
63   - 7A066BDAE692137D9FA0ACE5B49BAC01 /* SDWebImage-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = C6E85B189005269F9658DBF04ABDDB3B /* SDWebImage-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; };
64   - 7C3888324281E325ABBDDB3888D52125 /* DZNEmptyDataSet-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = EDF6D30846728EC3FC632BEE2717B854 /* DZNEmptyDataSet-dummy.m */; };
65   - 7DC32EEA0391D5808441FC26B0756C20 /* Toast-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 4E8AA01DF603CDFFB4392DC1D67EC114 /* Toast-dummy.m */; };
66   - 7EFE471A7CD81911271A1DA42728F35A /* SVProgressHUD-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 3AA2231406BEAEEC134CE10D52CD56DB /* SVProgressHUD-dummy.m */; };
67   - 8455D8B62D30B18316003CAC9C3EB39C /* UIImage+GIF.m in Sources */ = {isa = PBXBuildFile; fileRef = 3F62E70A9FBEB449678982E52E1353F2 /* UIImage+GIF.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; };
68   - 8511E9645F5C2B18746B4B4B29284451 /* UIScrollView+EmptyDataSet.h in Headers */ = {isa = PBXBuildFile; fileRef = D7DAF83037D7D201AB9346520A2726A5 /* UIScrollView+EmptyDataSet.h */; settings = {ATTRIBUTES = (Public, ); }; };
  75 + 78F4229B4A746A38341474FEB9DADB25 /* ParameterEncoding.swift in Sources */ = {isa = PBXBuildFile; fileRef = 14EC82B350F60C65CB156014F5997DCE /* ParameterEncoding.swift */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; };
  76 + 7931BF35785763872BD11EB65164B1D5 /* TransformType.swift in Sources */ = {isa = PBXBuildFile; fileRef = F33461E2C03CDF90E02052B76ADADB01 /* TransformType.swift */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; };
  77 + 794B16FD139EB13BA49AE711C49135BB /* MD5.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9AEE056145338863D7A727ACF1C3657C /* MD5.swift */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; };
  78 + 7AC13BF7B3C538D94DE7B9D836786514 /* SDWebImageCompat.m in Sources */ = {isa = PBXBuildFile; fileRef = 2E90E960C03E09803780D5C47A55A4DB /* SDWebImageCompat.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; };
  79 + 7C3888324281E325ABBDDB3888D52125 /* DZNEmptyDataSet-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 5F6392C48C4C9A3D7130A57D84AFEE2B /* DZNEmptyDataSet-dummy.m */; };
  80 + 7CE1363BFF8D96DD8059E0B5481A8D00 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = E81ABC082107E519C9718F3CCEA03977 /* Foundation.framework */; };
  81 + 7D23D4A779C42E695BD2EC80114AD9E8 /* Reachability.h in Headers */ = {isa = PBXBuildFile; fileRef = 2AD254563DCC20283BB5C0C5B4E57B5C /* Reachability.h */; settings = {ATTRIBUTES = (Public, ); }; };
  82 + 807283562FFCAF1B2AC3B251ABF34B5A /* URLTransform.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6D24FB404E9541910245BF3E68C5EE73 /* URLTransform.swift */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; };
  83 + 82769877C29A8E71221C9918273D3FFF /* SDWebImageManager.h in Headers */ = {isa = PBXBuildFile; fileRef = 8A51BA19C89D5E62EDCF2DB9D9FA43E0 /* SDWebImageManager.h */; settings = {ATTRIBUTES = (Public, ); }; };
  84 + 8444B1FF566FC96D823C154BEE6A4A03 /* BuiltInBasicType.swift in Sources */ = {isa = PBXBuildFile; fileRef = F948022D8D1EFEF734A07E6ED4D6CAF9 /* BuiltInBasicType.swift */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; };
  85 + 8511E9645F5C2B18746B4B4B29284451 /* UIScrollView+EmptyDataSet.h in Headers */ = {isa = PBXBuildFile; fileRef = 41531DBB287870602D671C4D97E99B21 /* UIScrollView+EmptyDataSet.h */; settings = {ATTRIBUTES = (Public, ); }; };
  86 + 86930F980FA87FB0CA5E197FEAA7A90C /* SVRadialGradientLayer.m in Sources */ = {isa = PBXBuildFile; fileRef = AE8B2524C105710A1C75E5F3C734796F /* SVRadialGradientLayer.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; };
  87 + 86EF282C771B9E7A12106ACBE6E820F5 /* ExtendCustomBasicType.swift in Sources */ = {isa = PBXBuildFile; fileRef = 32115C18B0BD53A5791A3FA797AB85AC /* ExtendCustomBasicType.swift */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; };
  88 + 895952B7EE442E03D667D9565D8C84F4 /* HandyJSON.h in Headers */ = {isa = PBXBuildFile; fileRef = 6B3D43CB0BDA34787F85B2C084FBB09A /* HandyJSON.h */; settings = {ATTRIBUTES = (Public, ); }; };
  89 + 8B937C355B5CAAEC40B80F24AFA26569 /* Reachability-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 16CC2B704148D354077756FC0880DBCB /* Reachability-dummy.m */; };
  90 + 8C1E8307CFE1A73F290CFCE8818B6123 /* SDWebImageOperation.h in Headers */ = {isa = PBXBuildFile; fileRef = B9A38D8C4EC4826AEDC2A52DD0187186 /* SDWebImageOperation.h */; settings = {ATTRIBUTES = (Public, ); }; };
69 91 8E31EF89BD192C6AACDE9E0655861D3D /* UIKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = B9B732FC24A0EC5E46E41D939F4A1130 /* UIKit.framework */; };
70   - 8F5C0849D2757FC5A7C81B81BA3813C3 /* ResponseSerialization.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8D5ECF9767E0DE930DB442E5B0C8654B /* ResponseSerialization.swift */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; };
71   - 939854B3A4CF27AC9DA0E9B7E26C9493 /* SDWebImageDownloaderOperation.h in Headers */ = {isa = PBXBuildFile; fileRef = 1D0E84080C6117D91217278F7DDF8B37 /* SDWebImageDownloaderOperation.h */; settings = {ATTRIBUTES = (Public, ); }; };
72   - 98180A7130BC044E70A6C7F0BF140749 /* SDWebImageDecoder.m in Sources */ = {isa = PBXBuildFile; fileRef = 0C6151C7E1F55461E2FEFEF578F941F2 /* SDWebImageDecoder.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; };
73   - 981EFF1371FCE40F1907DA262743B93E /* Notifications.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5398B5BBD79B7C43BB660F5770D2564F /* Notifications.swift */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; };
74   - 9B011B2BEB771C25F916F47242C25B68 /* SVProgressHUD-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = 27E3658ECF520EE5AAAFAB999CB366E0 /* SVProgressHUD-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; };
75   - A125A1BA4F27133D627410509D8F4E28 /* XRCarouselView.h in Headers */ = {isa = PBXBuildFile; fileRef = 7D11D36568090A022DD3F6835C6C69FA /* XRCarouselView.h */; settings = {ATTRIBUTES = (Public, ); }; };
76   - A1AE1582C0837F6ACE34D1649DE2E355 /* SDWebImageManager.m in Sources */ = {isa = PBXBuildFile; fileRef = 3DBD3BB3C24392F4D1991479123ED45F /* SDWebImageManager.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; };
77   - A6ED7D1E440FE1F9F71E68D78157C5A4 /* SVIndefiniteAnimatedView.m in Sources */ = {isa = PBXBuildFile; fileRef = 5EBCD8E3D00D44E6D321AA2A3AC6562A /* SVIndefiniteAnimatedView.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; };
78   - AA113E700658EFC0E6FE3C1F3421A94D /* Pods-ParentAssistant-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 91F8A62C7241C32CA58D0A9995BC8D8C /* Pods-ParentAssistant-dummy.m */; };
79   - AD2C576F50E67B2417C1D17FBF5E32B2 /* AFError.swift in Sources */ = {isa = PBXBuildFile; fileRef = AA45B71A66CE0CFB5F154FE85DCBD0A8 /* AFError.swift */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; };
80   - B61BAFC1B1815C7270395B7350001E60 /* Reachability.m in Sources */ = {isa = PBXBuildFile; fileRef = B740DD3269C25DB27176BA8A1FFE205F /* Reachability.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; };
81   - B7E9C6F6AE84988704B110AD4A0C9CA8 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = E81ABC082107E519C9718F3CCEA03977 /* Foundation.framework */; };
82   - BB4706D78AC0D446F7022C66985E1253 /* SystemConfiguration.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 93ED65B5F47F5FEA00C9BC9D151B1D26 /* SystemConfiguration.framework */; };
83   - BD13ECAC77A5C5C8ABEC67EB5C40C374 /* UIView+WebCacheOperation.m in Sources */ = {isa = PBXBuildFile; fileRef = 68919C93C6F37F3FB82FE9478241C8C7 /* UIView+WebCacheOperation.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; };
84   - BE33CE0CCA7C7BFD277EB1E9D4117BBA /* SDImageCache.m in Sources */ = {isa = PBXBuildFile; fileRef = 60A3F93AD6EAC40A34D1F7BF59D9B165 /* SDImageCache.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; };
85   - C284F2852F65CD7753BC02265207E8C3 /* SDImageCache.h in Headers */ = {isa = PBXBuildFile; fileRef = F39E00016168D1792023A12BC344B8BC /* SDImageCache.h */; settings = {ATTRIBUTES = (Public, ); }; };
86   - C38CBA7114C05F3FF045615FEE1D15B9 /* ImageIO.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 59271332AFD884264C5B45B6B6152051 /* ImageIO.framework */; };
87   - C3E716AC285C0E375076E032E3E3EB75 /* UIImageView+HighlightedWebCache.m in Sources */ = {isa = PBXBuildFile; fileRef = 9AFF14D09B2FE9228B53AE5A41F135CD /* UIImageView+HighlightedWebCache.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; };
  92 + 8F5C0849D2757FC5A7C81B81BA3813C3 /* ResponseSerialization.swift in Sources */ = {isa = PBXBuildFile; fileRef = 39F3B60B0A2AD7975DA5BCA943FA6BD5 /* ResponseSerialization.swift */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; };
  93 + 90B1C77BB42755C3E9AC821A09526E53 /* SHA1.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9A4D6703A8771BB168130EFB6EAC1C3E /* SHA1.swift */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; };
  94 + 952429322A476D5508670C477DE23669 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = E81ABC082107E519C9718F3CCEA03977 /* Foundation.framework */; };
  95 + 95F6802FB7C748286D6E1D6876552E8C /* BuiltInBridgeType.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6976D41DC0C992EA2F24C3A7358E958F /* BuiltInBridgeType.swift */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; };
  96 + 963D3083B43A304CE4A81FF8908C644C /* DateTransform.swift in Sources */ = {isa = PBXBuildFile; fileRef = B0A49BF64844554AA6BC0B49FD9A9BE8 /* DateTransform.swift */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; };
  97 + 9687BE425798E40CBC52870F8009209D /* UIView+Toast.h in Headers */ = {isa = PBXBuildFile; fileRef = 19FAAAAFAF3A705D1081BDCDC14CAFD6 /* UIView+Toast.h */; settings = {ATTRIBUTES = (Public, ); }; };
  98 + 981EFF1371FCE40F1907DA262743B93E /* Notifications.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2F2F35AD7354793D357E10226DE37995 /* Notifications.swift */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; };
  99 + 9EB13C869EF150828095C94F1FEFC517 /* Properties.swift in Sources */ = {isa = PBXBuildFile; fileRef = 05BE4EE179BFA37C2F5F3928F9237A1F /* Properties.swift */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; };
  100 + 9F24B341383F0FF8EA368B3A7F9BC087 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = E81ABC082107E519C9718F3CCEA03977 /* Foundation.framework */; };
  101 + A17930AC43F712547C2B4B58C1450B82 /* UIButton+WebCache.h in Headers */ = {isa = PBXBuildFile; fileRef = C03FC1A11EE20AB8B6A4B398E11B26B0 /* UIButton+WebCache.h */; settings = {ATTRIBUTES = (Public, ); }; };
  102 + A43438F0B3A712FB5739EA173AB6F134 /* ReflectionHelper.swift in Sources */ = {isa = PBXBuildFile; fileRef = 31257A57ECE5DD3A052A547DA8090EF9 /* ReflectionHelper.swift */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; };
  103 + A7B5C0EE248855B3357C98A489F835D9 /* UIImageView+WebCache.m in Sources */ = {isa = PBXBuildFile; fileRef = 6E2AA0C415512D5F3F34F7A99AA4D14A /* UIImageView+WebCache.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; };
  104 + A8D327620CE1909AD98F6B239AA60018 /* XRCarouselView-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 7437E1C250CA27898AA8815D1117643B /* XRCarouselView-dummy.m */; };
  105 + A95766E9124B13BABFF00CFBEFEC0501 /* SVProgressAnimatedView.h in Headers */ = {isa = PBXBuildFile; fileRef = B6554BE7D86E2DF12BC2CFA630452CA0 /* SVProgressAnimatedView.h */; settings = {ATTRIBUTES = (Public, ); }; };
  106 + AB6A5752C4586385EE13F1E6E2E9F40E /* SVProgressHUD-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 0322584439902B09D766EF9B00C87E2A /* SVProgressHUD-dummy.m */; };
  107 + AC2961AE064F12C1AA82F853AE6CF4DE /* OtherExtension.swift in Sources */ = {isa = PBXBuildFile; fileRef = E9462CA128209C32EE6E6647C88609D1 /* OtherExtension.swift */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; };
  108 + AD2C576F50E67B2417C1D17FBF5E32B2 /* AFError.swift in Sources */ = {isa = PBXBuildFile; fileRef = 08E13F442024BE43D2F31AA6F2C300DA /* AFError.swift */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; };
  109 + B2D8BD6984912C60C7A22BF665987A73 /* SDImageCache.h in Headers */ = {isa = PBXBuildFile; fileRef = 140A2830037A30E45442BA52CBDA1CFC /* SDImageCache.h */; settings = {ATTRIBUTES = (Public, ); }; };
  110 + B35D34D1C1A4B0A5FAD90526DE5D88A4 /* ImageIO.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 59271332AFD884264C5B45B6B6152051 /* ImageIO.framework */; };
  111 + B575E905525EDD3311A9872A0C4307AD /* SVProgressHUD.bundle in Resources */ = {isa = PBXBuildFile; fileRef = 65DEF3C169B8F1241E74C3D5C7DA5A6D /* SVProgressHUD.bundle */; };
  112 + BA3AB9E7766B254534C357EB523687B6 /* UIView+WebCacheOperation.m in Sources */ = {isa = PBXBuildFile; fileRef = 1836357ECED17B3B0BF22256498AA8EE /* UIView+WebCacheOperation.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; };
  113 + BBF90CAC12DA7C2713DB47B3BE5C898C /* UIImageView+WebCache.h in Headers */ = {isa = PBXBuildFile; fileRef = 206933D2687A3DC4CD2836F2AEF28A3B /* UIImageView+WebCache.h */; settings = {ATTRIBUTES = (Public, ); }; };
  114 + BC9AB82CB1C91977B5C1C96A25A9CA22 /* UIView+WebCacheOperation.h in Headers */ = {isa = PBXBuildFile; fileRef = F638493F2C879E2AF820AE53EA390269 /* UIView+WebCacheOperation.h */; settings = {ATTRIBUTES = (Public, ); }; };
  115 + BD14752B5379EAA21AF328A8ABE08A6D /* NSData+ImageContentType.h in Headers */ = {isa = PBXBuildFile; fileRef = DB5FF7B561F6F548C82F1FC27FDD72E8 /* NSData+ImageContentType.h */; settings = {ATTRIBUTES = (Public, ); }; };
  116 + BD2E6B5D9C3C38D8C1BDCFE0CD6E489D /* UIImage+MultiFormat.m in Sources */ = {isa = PBXBuildFile; fileRef = 469D54339A6D448DF6D1166FDB669676 /* UIImage+MultiFormat.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; };
  117 + BF901FE99C862B2093FF8E2F71B80F93 /* SDImageCache.m in Sources */ = {isa = PBXBuildFile; fileRef = 1439A3EA7193042844C3E9C52032677C /* SDImageCache.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; };
  118 + C23D014A840F87E883B74ABEC475E608 /* HandyJSON-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = FD2B11D4DCD30BDBA06841569E01E1BD /* HandyJSON-dummy.m */; };
88 119 C577B322B52228B272D52FF32B7BE30C /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = E81ABC082107E519C9718F3CCEA03977 /* Foundation.framework */; };
89   - C5FD57751548EFFA6567AFD2EB47CD56 /* Request.swift in Sources */ = {isa = PBXBuildFile; fileRef = A3BF0C8FBEA34836F39B7B05178E99A0 /* Request.swift */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; };
90   - C7A839D10605088C454C7291FB326FBC /* SDWebImageCompat.m in Sources */ = {isa = PBXBuildFile; fileRef = E4C906F36DAA1F52BC4CB049D6F2BD4F /* SDWebImageCompat.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; };
91   - D1341DA6F9B384B99BAB4C367DAD6BEC /* UIScrollView+EmptyDataSet.m in Sources */ = {isa = PBXBuildFile; fileRef = 9F52BD5E0388C810B3A6F1C4F9269F41 /* UIScrollView+EmptyDataSet.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; };
92   - D44B6932FB028CF0C747036478B2464B /* SDWebImagePrefetcher.m in Sources */ = {isa = PBXBuildFile; fileRef = F881111ED96D14E27A9A91E9C8C48275 /* SDWebImagePrefetcher.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; };
93   - D5686072DEC1A0E14F8C100FCC873F73 /* TaskDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 97915E2218908AAF45A7A295511D7ED1 /* TaskDelegate.swift */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; };
94   - D6B5D14430A46CD9182ADB0995717D65 /* XRCarouselView-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = 15E9579C0ABD54F28AC5AEF8D3720CDF /* XRCarouselView-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; };
95   - D6DBA841E832F1262ADB623C43DF0CB5 /* SDWebImageManager.h in Headers */ = {isa = PBXBuildFile; fileRef = 133564ED095E50FC178E7088F2D2F525 /* SDWebImageManager.h */; settings = {ATTRIBUTES = (Public, ); }; };
96   - D85265953240035D8C14B6B808DBD242 /* XRCarouselView.m in Sources */ = {isa = PBXBuildFile; fileRef = C945AFDE3ADE2B40E1665B379B679BEF /* XRCarouselView.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; };
97   - DDB9C4D70DAC05D5A7E9891762E20D32 /* Pods-ParentAssistant-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = 8DE1A0CE0E1BB3F08D5A914FF091692D /* Pods-ParentAssistant-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; };
98   - DE23AFF819C3CDDC1624B5631F0D4530 /* SDWebImageDecoder.h in Headers */ = {isa = PBXBuildFile; fileRef = 511A51D5104E2218B3E7F93AC4600390 /* SDWebImageDecoder.h */; settings = {ATTRIBUTES = (Public, ); }; };
99   - E13F179231DAC1A6068B8B82ACC14EA0 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = E81ABC082107E519C9718F3CCEA03977 /* Foundation.framework */; };
100   - E198F398404F07805E5189165F3C1E64 /* Timeline.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8CCDB7FC335DFD48FD4C80AC3FA68F61 /* Timeline.swift */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; };
101   - E8DAE6CA0B236532ECA6D44CE2B8D87D /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = E81ABC082107E519C9718F3CCEA03977 /* Foundation.framework */; };
102   - EBA0781A1E2822CF7DFD56ACD394A63E /* Alamofire.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4379B9C4BA297F169DA7B36C4689653E /* Alamofire.swift */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; };
103   - ED0451E5FF57EB35F9D4C92E008A7750 /* QuartzCore.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 4DB0A7F29D540AB077DA6D9855C3F743 /* QuartzCore.framework */; };
104   - ED8D1958E550537B70551F3306C749A2 /* SVProgressHUD.bundle in Resources */ = {isa = PBXBuildFile; fileRef = 6E3AD0ED0E4F4D6622F66C870ACAFFF7 /* SVProgressHUD.bundle */; };
105   - F3F5FF09765FEE3CFC273A26439E1284 /* NSData+ImageContentType.m in Sources */ = {isa = PBXBuildFile; fileRef = 4F62E861EB0D938A1E0BD4EB7441A08D /* NSData+ImageContentType.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; };
106   - F67226D02B4E38F924014FD70084A0BC /* SDWebImageDownloader.m in Sources */ = {isa = PBXBuildFile; fileRef = B6EAADE73C594EB99F85F1F1A5CEBCDD /* SDWebImageDownloader.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; };
107   - FC3E75853B92F3FD3AB8C18D107AEAE2 /* SVProgressHUD.m in Sources */ = {isa = PBXBuildFile; fileRef = DEEEBBC02918A14BA4253C35D926FDEC /* SVProgressHUD.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; };
  120 + C5FD57751548EFFA6567AFD2EB47CD56 /* Request.swift in Sources */ = {isa = PBXBuildFile; fileRef = 232E0E55F341C5600028F7AAA4F59E8A /* Request.swift */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; };
  121 + C633AE7C1F16ADA3AFEE968396B73A4B /* UIImage+GIF.m in Sources */ = {isa = PBXBuildFile; fileRef = B71F8A62F3906657D17D418212E1CBA1 /* UIImage+GIF.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; };
  122 + C8D2BE872D244EB549F2EC97069CC4D0 /* UIImageView+HighlightedWebCache.m in Sources */ = {isa = PBXBuildFile; fileRef = BB7CE29DC4FFF250766240EA8DA973D1 /* UIImageView+HighlightedWebCache.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; };
  123 + C906E3F3B8CC5A9E003DB020DFAE7864 /* PropertyInfo.swift in Sources */ = {isa = PBXBuildFile; fileRef = 81D2AEE4F419083BF22474B240B3D9F6 /* PropertyInfo.swift */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; };
  124 + C98D39690CC370401444D498206BCA2B /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = E81ABC082107E519C9718F3CCEA03977 /* Foundation.framework */; };
  125 + CAD7174B4833082EAE9507FB4CDCB07B /* Toast-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 85EBECC44FA24EC40748D3CB399DD1F3 /* Toast-dummy.m */; };
  126 + D1341DA6F9B384B99BAB4C367DAD6BEC /* UIScrollView+EmptyDataSet.m in Sources */ = {isa = PBXBuildFile; fileRef = 18F6A571F05F4D0DD12870CE83C8F787 /* UIScrollView+EmptyDataSet.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; };
  127 + D1D5D64268DDC619511D3942F434D7DD /* SDWebImageDecoder.m in Sources */ = {isa = PBXBuildFile; fileRef = DF68D7CB4183F99C38744F4985CD422D /* SDWebImageDecoder.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; };
  128 + D425D13A48689CCBEA1C0BE43928A682 /* ISO8601DateTransform.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7DFB6D55866F4F62D8116993D42B55A8 /* ISO8601DateTransform.swift */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; };
  129 + D5686072DEC1A0E14F8C100FCC873F73 /* TaskDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = BFD387D9E3BDF322939523D4DF31CA79 /* TaskDelegate.swift */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; };
  130 + D603EC0AAE41B1733F0A4A2FA4381910 /* SwiftHash-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 448D149E9E2122E63C2D8CDB8E1159CB /* SwiftHash-dummy.m */; };
  131 + E198F398404F07805E5189165F3C1E64 /* Timeline.swift in Sources */ = {isa = PBXBuildFile; fileRef = D9ED9DA2E61F2A4DD7E760C61C47A3F1 /* Timeline.swift */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; };
  132 + E49369FF3BD66698C3B61B8DE9C58DE0 /* UIImage+GIF.h in Headers */ = {isa = PBXBuildFile; fileRef = E3370B03674C70DABFF75D9D2BA95DCE /* UIImage+GIF.h */; settings = {ATTRIBUTES = (Public, ); }; };
  133 + E72FACD066C66E010F4C91956E8E29CB /* UIImage+MultiFormat.h in Headers */ = {isa = PBXBuildFile; fileRef = F6C063D5E492D3ED69858D446C30719E /* UIImage+MultiFormat.h */; settings = {ATTRIBUTES = (Public, ); }; };
  134 + E990A247D80417D4555735E8A8DBD76C /* SVIndefiniteAnimatedView.m in Sources */ = {isa = PBXBuildFile; fileRef = 72803D16FA054A0D26C303991C1F2B3C /* SVIndefiniteAnimatedView.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; };
  135 + EB3F85272BEE4C2EB0321741E8FE4B75 /* SDWebImagePrefetcher.h in Headers */ = {isa = PBXBuildFile; fileRef = E33C2A8A35CA23130F27CFEC0285B7DB /* SDWebImagePrefetcher.h */; settings = {ATTRIBUTES = (Public, ); }; };
  136 + EBA0781A1E2822CF7DFD56ACD394A63E /* Alamofire.swift in Sources */ = {isa = PBXBuildFile; fileRef = CEA07E2E477768269A8D0BECE492EBAF /* Alamofire.swift */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; };
  137 + EC3CC4DC8A5C9241AE7D9359EEAFC69F /* SystemConfiguration.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 93ED65B5F47F5FEA00C9BC9D151B1D26 /* SystemConfiguration.framework */; };
  138 + EF1B6B88FF4C6BC506B9C85BAEDF034E /* PointerType.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3447CC75BA7C93ED3BF68C2F65392471 /* PointerType.swift */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; };
  139 + EF57A4E0C40DA6E906B390C69902421F /* AnyExtensions.swift in Sources */ = {isa = PBXBuildFile; fileRef = 931ED830C3B0B8852F1479DE61BA997E /* AnyExtensions.swift */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; };
  140 + F1A921225B642E15ED24FB4734240F8F /* SDWebImageDownloaderOperation.m in Sources */ = {isa = PBXBuildFile; fileRef = 24C69C342339292A7BBB5C56D2C12D12 /* SDWebImageDownloaderOperation.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; };
  141 + F206FE65A9D924A3F6ED6221E3BBD35E /* SVIndefiniteAnimatedView.h in Headers */ = {isa = PBXBuildFile; fileRef = 6768B1FE2E118D79D8A1613520B9BB23 /* SVIndefiniteAnimatedView.h */; settings = {ATTRIBUTES = (Public, ); }; };
  142 + F79EC3C3CF96DFC885E8DD247FEF08EB /* SVProgressHUD.m in Sources */ = {isa = PBXBuildFile; fileRef = 1DC66067EC016B21D6BC487C409083AF /* SVProgressHUD.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; };
  143 + F8FB51647A0925CDAF63C5DAA23D8B4D /* Serializer.swift in Sources */ = {isa = PBXBuildFile; fileRef = 39C3C21D34A34F85D09063C7E1255E9D /* Serializer.swift */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; };
108 144 /* End PBXBuildFile section */
109 145  
110 146 /* Begin PBXContainerItemProxy section */
111   - 063C49D9C95F79A20503A9A1424E691E /* PBXContainerItemProxy */ = {
  147 + 14508FFAEE6EBD1C2386229671393CCD /* PBXContainerItemProxy */ = {
112 148 isa = PBXContainerItemProxy;
113 149 containerPortal = D41D8CD98F00B204E9800998ECF8427E /* Project object */;
114 150 proxyType = 1;
115   - remoteGlobalIDString = 946F1690639E5FEB44FCAE735384E88F;
116   - remoteInfo = XRCarouselView;
  151 + remoteGlobalIDString = 6376DC419EEA98495631602218A4F31B;
  152 + remoteInfo = SwiftHash;
117 153 };
118   - 422B2D815B43329490CF50C572D7A42B /* PBXContainerItemProxy */ = {
  154 + 1F4310C891A7C6531B2EC2F44755F5D2 /* PBXContainerItemProxy */ = {
119 155 isa = PBXContainerItemProxy;
120 156 containerPortal = D41D8CD98F00B204E9800998ECF8427E /* Project object */;
121 157 proxyType = 1;
122   - remoteGlobalIDString = 85C8F626848DDF730664D24F35CB4BFD;
123   - remoteInfo = SwiftHash;
  158 + remoteGlobalIDString = 8FA4EA707F3B6CFDACB1C85C722D2E73;
  159 + remoteInfo = SDWebImage;
124 160 };
125   - 6156EA43090B479C8793207CA4E77756 /* PBXContainerItemProxy */ = {
  161 + 40A6BB26078AD6CC3BFED24490AA679C /* PBXContainerItemProxy */ = {
126 162 isa = PBXContainerItemProxy;
127 163 containerPortal = D41D8CD98F00B204E9800998ECF8427E /* Project object */;
128 164 proxyType = 1;
129   - remoteGlobalIDString = C05436301E2CFEA58B8664CF237736FD;
130   - remoteInfo = SVProgressHUD;
  165 + remoteGlobalIDString = D386C75EFD4F03725E4EFB866B600B9A;
  166 + remoteInfo = DZNEmptyDataSet;
131 167 };
132   - 656151B6E948CAD2F2C92575A816A9DD /* PBXContainerItemProxy */ = {
  168 + 594A8718DA74EC137A691ED506FE6CCB /* PBXContainerItemProxy */ = {
133 169 isa = PBXContainerItemProxy;
134 170 containerPortal = D41D8CD98F00B204E9800998ECF8427E /* Project object */;
135 171 proxyType = 1;
136   - remoteGlobalIDString = D386C75EFD4F03725E4EFB866B600B9A;
137   - remoteInfo = DZNEmptyDataSet;
  172 + remoteGlobalIDString = 27189F0EDBCA8831C460D0166F6F37A1;
  173 + remoteInfo = XRCarouselView;
138 174 };
139   - A551BE9DFBB8BC081F9403D9547E440B /* PBXContainerItemProxy */ = {
  175 + 82A515E1EF9A2DA9422FDE7D829F0650 /* PBXContainerItemProxy */ = {
140 176 isa = PBXContainerItemProxy;
141 177 containerPortal = D41D8CD98F00B204E9800998ECF8427E /* Project object */;
142 178 proxyType = 1;
143   - remoteGlobalIDString = EE01DAC248A3AF6D1FE730A61FEC4A75;
  179 + remoteGlobalIDString = AAC4087A5A57F5566AB9B54FEBADBC36;
144 180 remoteInfo = Reachability;
145 181 };
146   - B62CFB9ED89BE7F383DFD4DA30E09CE3 /* PBXContainerItemProxy */ = {
  182 + 8E7E6D806A10070D238FC81F6BAB4860 /* PBXContainerItemProxy */ = {
147 183 isa = PBXContainerItemProxy;
148 184 containerPortal = D41D8CD98F00B204E9800998ECF8427E /* Project object */;
149 185 proxyType = 1;
150   - remoteGlobalIDString = C0796C4BD50C4D76FBACB035BB862F5E;
151   - remoteInfo = SDWebImage;
  186 + remoteGlobalIDString = 9A9DDC64623B3F5E6DC7009C16752B95;
  187 + remoteInfo = Toast;
  188 + };
  189 + 8EE514F180AE8F72FA2CB958642AC2D2 /* PBXContainerItemProxy */ = {
  190 + isa = PBXContainerItemProxy;
  191 + containerPortal = D41D8CD98F00B204E9800998ECF8427E /* Project object */;
  192 + proxyType = 1;
  193 + remoteGlobalIDString = E55BDEBC8F73D6B7936791D0822F70D6;
  194 + remoteInfo = SVProgressHUD;
152 195 };
153   - CA0BE3D8D2515655B40335392420B681 /* PBXContainerItemProxy */ = {
  196 + A81D9D0AD4D99710674892A4C13CE7C4 /* PBXContainerItemProxy */ = {
154 197 isa = PBXContainerItemProxy;
155 198 containerPortal = D41D8CD98F00B204E9800998ECF8427E /* Project object */;
156 199 proxyType = 1;
157 200 remoteGlobalIDString = 88E9EC28B8B46C3631E6B242B50F4442;
158 201 remoteInfo = Alamofire;
159 202 };
160   - DDD0D71FA6F264724CD1E76877CCA238 /* PBXContainerItemProxy */ = {
  203 + EE8B3E8B9AA89EC765C0E539B4E7EDC7 /* PBXContainerItemProxy */ = {
161 204 isa = PBXContainerItemProxy;
162 205 containerPortal = D41D8CD98F00B204E9800998ECF8427E /* Project object */;
163 206 proxyType = 1;
164   - remoteGlobalIDString = C9750678FE15F0A797938AEFBF11D3F7;
165   - remoteInfo = Toast;
  207 + remoteGlobalIDString = 1465651EBBC44AD3276DDE2476CDA450;
  208 + remoteInfo = HandyJSON;
166 209 };
167 210 /* End PBXContainerItemProxy section */
168 211  
169 212 /* Begin PBXFileReference section */
170   - 014C7FE920EF761F412D3A3DEF529642 /* Toast.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = Toast.xcconfig; sourceTree = "<group>"; };
171   - 0387FCC8EF5DA97E95535BB4EBA7F133 /* UIButton+WebCache.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "UIButton+WebCache.m"; path = "SDWebImage/UIButton+WebCache.m"; sourceTree = "<group>"; };
172   - 06DC9572FD9048B84A9DABDD03902859 /* SVProgressAnimatedView.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SVProgressAnimatedView.h; path = SVProgressHUD/SVProgressAnimatedView.h; sourceTree = "<group>"; };
173   - 0B1E77043F562C0C1C7EA7E1A6ACB3AB /* XRCarouselView-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "XRCarouselView-dummy.m"; sourceTree = "<group>"; };
174   - 0B6CA6D3D3167BE8720EE9756B8762E7 /* Reachability.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = Reachability.h; sourceTree = "<group>"; };
175   - 0C6151C7E1F55461E2FEFEF578F941F2 /* SDWebImageDecoder.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDWebImageDecoder.m; path = SDWebImage/SDWebImageDecoder.m; sourceTree = "<group>"; };
176   - 0DDBEBC88C2ECDDC1F9FEEDD60597135 /* XRCarouselView.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = XRCarouselView.xcconfig; sourceTree = "<group>"; };
177   - 0FF492DA7B2B6480B7AA0B29AFEA02B4 /* SDWebImageDownloaderOperation.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDWebImageDownloaderOperation.m; path = SDWebImage/SDWebImageDownloaderOperation.m; sourceTree = "<group>"; };
178   - 10ADDC363B0D209CE344723260F1796A /* SecurityEnvSDK.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = SecurityEnvSDK.framework; path = thirdparties/SecurityEnvSDK.framework; sourceTree = "<group>"; };
179   - 133564ED095E50FC178E7088F2D2F525 /* SDWebImageManager.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDWebImageManager.h; path = SDWebImage/SDWebImageManager.h; sourceTree = "<group>"; };
180   - 15E9579C0ABD54F28AC5AEF8D3720CDF /* XRCarouselView-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "XRCarouselView-umbrella.h"; sourceTree = "<group>"; };
181   - 175348099C82E8A3101D8C4C79CEB8A8 /* Reachability-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "Reachability-prefix.pch"; sourceTree = "<group>"; };
182   - 1D023DCE549C153E62DBA7710F918932 /* Reachability.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; path = Reachability.modulemap; sourceTree = "<group>"; };
183   - 1D0E84080C6117D91217278F7DDF8B37 /* SDWebImageDownloaderOperation.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDWebImageDownloaderOperation.h; path = SDWebImage/SDWebImageDownloaderOperation.h; sourceTree = "<group>"; };
184   - 1EA85E4120BF4DBBC742DBD972E1D4E0 /* UIView+WebCacheOperation.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "UIView+WebCacheOperation.h"; path = "SDWebImage/UIView+WebCacheOperation.h"; sourceTree = "<group>"; };
185   - 1EE9BCAC0C0DE60ED1806446F9BFE0F4 /* SDWebImage.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; path = SDWebImage.modulemap; sourceTree = "<group>"; };
186   - 1F0F65D1B0A07B2CF87C8597517C1C90 /* MultipartFormData.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = MultipartFormData.swift; path = Source/MultipartFormData.swift; sourceTree = "<group>"; };
187   - 1F26CF1785555BB027A32714B4554BFF /* SVRadialGradientLayer.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SVRadialGradientLayer.m; path = SVProgressHUD/SVRadialGradientLayer.m; sourceTree = "<group>"; };
188   - 2217B31A69A5AD1A2DB901B017739FFE /* Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = "<group>"; };
189   - 262207002737C66ED24D7609E73A2051 /* Alamofire.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; name = Alamofire.framework; path = Alamofire.framework; sourceTree = BUILT_PRODUCTS_DIR; };
190   - 2625D989A9BDC337E06797E454C019E1 /* Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = "<group>"; };
191   - 2752B2AE6C1700B3C4035EB9B3F3C828 /* UMErrorCatch.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; path = UMErrorCatch.framework; sourceTree = "<group>"; };
192   - 27E3658ECF520EE5AAAFAB999CB366E0 /* SVProgressHUD-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "SVProgressHUD-umbrella.h"; sourceTree = "<group>"; };
193   - 29D1D8115C0044BF7D69794E14418C7A /* Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = "<group>"; };
194   - 2ADCD0ECDFD3DA272B8B40DC1449DEA8 /* Alamofire.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = Alamofire.xcconfig; sourceTree = "<group>"; };
195   - 2FC4CFE117A04773D45A722671264254 /* SwiftHash.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = SwiftHash.xcconfig; sourceTree = "<group>"; };
196   - 31EE0E670B57E7A1A671D5E6BDFE9EEE /* SDWebImageOperation.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDWebImageOperation.h; path = SDWebImage/SDWebImageOperation.h; sourceTree = "<group>"; };
197   - 37D066AA516CA828ADE8C5F756198AEA /* UIView+Toast.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "UIView+Toast.h"; path = "Toast/Toast/UIView+Toast.h"; sourceTree = "<group>"; };
198   - 3910287CF67BB6D99BFC32020B92D66B /* SwiftHash-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "SwiftHash-umbrella.h"; sourceTree = "<group>"; };
199   - 3AA2231406BEAEEC134CE10D52CD56DB /* SVProgressHUD-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "SVProgressHUD-dummy.m"; sourceTree = "<group>"; };
200   - 3D416BE9935C085E823ACB5F9A862658 /* Toast.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; path = Toast.modulemap; sourceTree = "<group>"; };
201   - 3DBD3BB3C24392F4D1991479123ED45F /* SDWebImageManager.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDWebImageManager.m; path = SDWebImage/SDWebImageManager.m; sourceTree = "<group>"; };
202   - 3F62E70A9FBEB449678982E52E1353F2 /* UIImage+GIF.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "UIImage+GIF.m"; path = "SDWebImage/UIImage+GIF.m"; sourceTree = "<group>"; };
203   - 4379B9C4BA297F169DA7B36C4689653E /* Alamofire.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Alamofire.swift; path = Source/Alamofire.swift; sourceTree = "<group>"; };
204   - 45C480734183DBFB9258B038501DA266 /* SDWebImagePrefetcher.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDWebImagePrefetcher.h; path = SDWebImage/SDWebImagePrefetcher.h; sourceTree = "<group>"; };
205   - 466C6684943DC46AC01E8BC628C3AABE /* Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = "<group>"; };
206   - 4A4FCA00FE16408A60CBE0F56CD26E6C /* Response.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Response.swift; path = Source/Response.swift; sourceTree = "<group>"; };
207   - 4C46FD42060CC02ACC3BE8A4C3D84CC3 /* Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = "<group>"; };
  213 + 02C19698DC383415660AD836A73862CF /* Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = "<group>"; };
  214 + 0322584439902B09D766EF9B00C87E2A /* SVProgressHUD-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "SVProgressHUD-dummy.m"; sourceTree = "<group>"; };
  215 + 03475756EB49A978A9F331D44971B60B /* libcrypto.a */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = archive.ar; name = libcrypto.a; path = NIMSDK/Libs/libcrypto.a; sourceTree = "<group>"; };
  216 + 05BE4EE179BFA37C2F5F3928F9237A1F /* Properties.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Properties.swift; path = Source/Properties.swift; sourceTree = "<group>"; };
  217 + 074C4EB853C59CB4403154F8FC3B42A1 /* Pods-ParentAssistant.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.module; path = "Pods-ParentAssistant.modulemap"; sourceTree = "<group>"; };
  218 + 07E1E2C8AC8B32A86D7C0A576243A070 /* Alamofire-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "Alamofire-prefix.pch"; sourceTree = "<group>"; };
  219 + 08E13F442024BE43D2F31AA6F2C300DA /* AFError.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = AFError.swift; path = Source/AFError.swift; sourceTree = "<group>"; };
  220 + 095F51C7CEE9EF306E13A58319881EFF /* Reachability.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.module; path = Reachability.modulemap; sourceTree = "<group>"; };
  221 + 0969E5011DCC0C421F637E6859279610 /* Reachability.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = Reachability.m; sourceTree = "<group>"; };
  222 + 09E993E3E47BE7E80DCFECCEA59937CC /* XRCarouselView.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; name = XRCarouselView.framework; path = XRCarouselView.framework; sourceTree = BUILT_PRODUCTS_DIR; };
  223 + 0CDCA399D86C4D9BFD1AAA60E4F5A9F5 /* HandyJSON.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.module; path = HandyJSON.modulemap; sourceTree = "<group>"; };
  224 + 106A3E63162DD85E6D0BEC1EE1FFDBB4 /* Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = "<group>"; };
  225 + 11DABA5B57A3076260D36D4A9AE646F5 /* HandyJSON-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "HandyJSON-umbrella.h"; sourceTree = "<group>"; };
  226 + 140A2830037A30E45442BA52CBDA1CFC /* SDImageCache.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDImageCache.h; path = SDWebImage/SDImageCache.h; sourceTree = "<group>"; };
  227 + 1439A3EA7193042844C3E9C52032677C /* SDImageCache.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDImageCache.m; path = SDWebImage/SDImageCache.m; sourceTree = "<group>"; };
  228 + 14EC82B350F60C65CB156014F5997DCE /* ParameterEncoding.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ParameterEncoding.swift; path = Source/ParameterEncoding.swift; sourceTree = "<group>"; };
  229 + 16CC2B704148D354077756FC0880DBCB /* Reachability-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "Reachability-dummy.m"; sourceTree = "<group>"; };
  230 + 1706C196E50CAE9C6DE364B9BA5E9DCB /* Pods-ParentAssistant-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "Pods-ParentAssistant-umbrella.h"; sourceTree = "<group>"; };
  231 + 1719FF827E35476E2C51408C0A9BD81C /* HandyJSON.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; name = HandyJSON.framework; path = HandyJSON.framework; sourceTree = BUILT_PRODUCTS_DIR; };
  232 + 172419A08571955755C3C6FB2044DD9D /* SDWebImageDecoder.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDWebImageDecoder.h; path = SDWebImage/SDWebImageDecoder.h; sourceTree = "<group>"; };
  233 + 17403F9FAA48DA29AAEB297BE9AC4D51 /* SVProgressHUD.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SVProgressHUD.h; path = SVProgressHUD/SVProgressHUD.h; sourceTree = "<group>"; };
  234 + 1836357ECED17B3B0BF22256498AA8EE /* UIView+WebCacheOperation.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "UIView+WebCacheOperation.m"; path = "SDWebImage/UIView+WebCacheOperation.m"; sourceTree = "<group>"; };
  235 + 18F6A571F05F4D0DD12870CE83C8F787 /* UIScrollView+EmptyDataSet.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "UIScrollView+EmptyDataSet.m"; path = "Source/UIScrollView+EmptyDataSet.m"; sourceTree = "<group>"; };
  236 + 1914DA670BEE4BC1F461E88ED1BD7C26 /* Configuration.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Configuration.swift; path = Source/Configuration.swift; sourceTree = "<group>"; };
  237 + 1983D355FD75B9D24A71756509C98131 /* SDWebImageDownloader.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDWebImageDownloader.m; path = SDWebImage/SDWebImageDownloader.m; sourceTree = "<group>"; };
  238 + 19FAAAAFAF3A705D1081BDCDC14CAFD6 /* UIView+Toast.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "UIView+Toast.h"; path = "Toast/Toast/UIView+Toast.h"; sourceTree = "<group>"; };
  239 + 1D374115D56716D6284C03A777CD2BB4 /* Deserializer.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Deserializer.swift; path = Source/Deserializer.swift; sourceTree = "<group>"; };
  240 + 1DC66067EC016B21D6BC487C409083AF /* SVProgressHUD.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SVProgressHUD.m; path = SVProgressHUD/SVProgressHUD.m; sourceTree = "<group>"; };
  241 + 206933D2687A3DC4CD2836F2AEF28A3B /* UIImageView+WebCache.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "UIImageView+WebCache.h"; path = "SDWebImage/UIImageView+WebCache.h"; sourceTree = "<group>"; };
  242 + 2098C9BB32F72BB65BA83ADD1F338099 /* Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = "<group>"; };
  243 + 20C0A79CAF95E65B981CC5F896E4334C /* SVRadialGradientLayer.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SVRadialGradientLayer.h; path = SVProgressHUD/SVRadialGradientLayer.h; sourceTree = "<group>"; };
  244 + 232E0E55F341C5600028F7AAA4F59E8A /* Request.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Request.swift; path = Source/Request.swift; sourceTree = "<group>"; };
  245 + 24C69C342339292A7BBB5C56D2C12D12 /* SDWebImageDownloaderOperation.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDWebImageDownloaderOperation.m; path = SDWebImage/SDWebImageDownloaderOperation.m; sourceTree = "<group>"; };
  246 + 26EF7D93FE7442849AC14571996AC8ED /* Logger.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Logger.swift; path = Source/Logger.swift; sourceTree = "<group>"; };
  247 + 2830040C9AF69744EEB45C092E65CA2A /* NSDecimalNumberTransform.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = NSDecimalNumberTransform.swift; path = Source/NSDecimalNumberTransform.swift; sourceTree = "<group>"; };
  248 + 297F8CEFA42DFD823263EA02BC36D29A /* HandyJSON-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "HandyJSON-prefix.pch"; sourceTree = "<group>"; };
  249 + 29BC53491C8D6BA4B81045D6FBBA043C /* Reachability-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "Reachability-umbrella.h"; sourceTree = "<group>"; };
  250 + 2AD254563DCC20283BB5C0C5B4E57B5C /* Reachability.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = Reachability.h; sourceTree = "<group>"; };
  251 + 2D3152CF39784BC2AAD4747AF03BB50A /* SessionDelegate.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = SessionDelegate.swift; path = Source/SessionDelegate.swift; sourceTree = "<group>"; };
  252 + 2E85535E49256ABCDBBB9EA045CE6268 /* HexColorTransform.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = HexColorTransform.swift; path = Source/HexColorTransform.swift; sourceTree = "<group>"; };
  253 + 2E90E960C03E09803780D5C47A55A4DB /* SDWebImageCompat.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDWebImageCompat.m; path = SDWebImage/SDWebImageCompat.m; sourceTree = "<group>"; };
  254 + 2EE1F3AAF4D2513EA3BFF47F019026DC /* Alamofire.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.module; path = Alamofire.modulemap; sourceTree = "<group>"; };
  255 + 2F2F35AD7354793D357E10226DE37995 /* Notifications.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Notifications.swift; path = Source/Notifications.swift; sourceTree = "<group>"; };
  256 + 31257A57ECE5DD3A052A547DA8090EF9 /* ReflectionHelper.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ReflectionHelper.swift; path = Source/ReflectionHelper.swift; sourceTree = "<group>"; };
  257 + 31A74FD90C96035085B5A148E9CBA64C /* EnumTransform.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = EnumTransform.swift; path = Source/EnumTransform.swift; sourceTree = "<group>"; };
  258 + 32115C18B0BD53A5791A3FA797AB85AC /* ExtendCustomBasicType.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ExtendCustomBasicType.swift; path = Source/ExtendCustomBasicType.swift; sourceTree = "<group>"; };
  259 + 323A41D79693687F0377B9ACACC90D4A /* XRCarouselView-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "XRCarouselView-umbrella.h"; sourceTree = "<group>"; };
  260 + 328C2C3F0CBE7948196AEE1B0FA7B3F4 /* DZNEmptyDataSet.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = DZNEmptyDataSet.xcconfig; sourceTree = "<group>"; };
  261 + 33347618F6541AA20F52632F9EA10CA6 /* SDWebImageDownloaderOperation.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDWebImageDownloaderOperation.h; path = SDWebImage/SDWebImageDownloaderOperation.h; sourceTree = "<group>"; };
  262 + 33F1F6213579E70C284C8445EBD7DBDD /* SVProgressHUD.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; name = SVProgressHUD.framework; path = SVProgressHUD.framework; sourceTree = BUILT_PRODUCTS_DIR; };
  263 + 3447CC75BA7C93ED3BF68C2F65392471 /* PointerType.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = PointerType.swift; path = Source/PointerType.swift; sourceTree = "<group>"; };
  264 + 3813A00560E8E809CF107BA098D6A666 /* Toast.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = Toast.xcconfig; sourceTree = "<group>"; };
  265 + 38EE23882943EDCED73523F643A71C39 /* SVProgressAnimatedView.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SVProgressAnimatedView.m; path = SVProgressHUD/SVProgressAnimatedView.m; sourceTree = "<group>"; };
  266 + 39C3C21D34A34F85D09063C7E1255E9D /* Serializer.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Serializer.swift; path = Source/Serializer.swift; sourceTree = "<group>"; };
  267 + 39F3B60B0A2AD7975DA5BCA943FA6BD5 /* ResponseSerialization.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ResponseSerialization.swift; path = Source/ResponseSerialization.swift; sourceTree = "<group>"; };
  268 + 41009B988332564AFC9DAF9C3817C7FA /* SwiftHash.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; name = SwiftHash.framework; path = SwiftHash.framework; sourceTree = BUILT_PRODUCTS_DIR; };
  269 + 41531DBB287870602D671C4D97E99B21 /* UIScrollView+EmptyDataSet.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "UIScrollView+EmptyDataSet.h"; path = "Source/UIScrollView+EmptyDataSet.h"; sourceTree = "<group>"; };
  270 + 42DB5E77081A2858012F4CBF354A0D27 /* Reachability-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "Reachability-prefix.pch"; sourceTree = "<group>"; };
  271 + 4357F76011180D7A84AB5281135FBC76 /* Reachability.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = Reachability.xcconfig; sourceTree = "<group>"; };
  272 + 43766E6C5ADEB0502C1E3C6049C5D9AC /* SVProgressHUD.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = SVProgressHUD.xcconfig; sourceTree = "<group>"; };
  273 + 448D149E9E2122E63C2D8CDB8E1159CB /* SwiftHash-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "SwiftHash-dummy.m"; sourceTree = "<group>"; };
  274 + 469D54339A6D448DF6D1166FDB669676 /* UIImage+MultiFormat.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "UIImage+MultiFormat.m"; path = "SDWebImage/UIImage+MultiFormat.m"; sourceTree = "<group>"; };
  275 + 481FE62B9A76B9C994CED4CDBF22F059 /* SVProgressHUD.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.module; path = SVProgressHUD.modulemap; sourceTree = "<group>"; };
  276 + 4CD112151D95CAE264BE24BD4513934F /* Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = "<group>"; };
208 277 4DB0A7F29D540AB077DA6D9855C3F743 /* QuartzCore.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = QuartzCore.framework; path = Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS10.3.sdk/System/Library/Frameworks/QuartzCore.framework; sourceTree = DEVELOPER_DIR; };
209   - 4E8AA01DF603CDFFB4392DC1D67EC114 /* Toast-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "Toast-dummy.m"; sourceTree = "<group>"; };
210   - 4F486ED1724FD618F8FC26EFDC4CAA21 /* SVProgressHUD.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; path = SVProgressHUD.modulemap; sourceTree = "<group>"; };
211   - 4F62E861EB0D938A1E0BD4EB7441A08D /* NSData+ImageContentType.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "NSData+ImageContentType.m"; path = "SDWebImage/NSData+ImageContentType.m"; sourceTree = "<group>"; };
212   - 511A51D5104E2218B3E7F93AC4600390 /* SDWebImageDecoder.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDWebImageDecoder.h; path = SDWebImage/SDWebImageDecoder.h; sourceTree = "<group>"; };
213   - 533EA16EA3C399B93C59F7FBDF7BA283 /* DZNEmptyDataSet.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; name = DZNEmptyDataSet.framework; path = DZNEmptyDataSet.framework; sourceTree = BUILT_PRODUCTS_DIR; };
214   - 5398B5BBD79B7C43BB660F5770D2564F /* Notifications.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Notifications.swift; path = Source/Notifications.swift; sourceTree = "<group>"; };
215   - 54460F8AA0D68913CCD38F42715D46AF /* Pods-ParentAssistant-acknowledgements.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "Pods-ParentAssistant-acknowledgements.plist"; sourceTree = "<group>"; };
  278 + 5104B9F40B6C55F71BDE788F76AA8F53 /* SessionManager.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = SessionManager.swift; path = Source/SessionManager.swift; sourceTree = "<group>"; };
  279 + 52C9D81718FDCE850DDAF365FD190B4F /* SVProgressHUD-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "SVProgressHUD-prefix.pch"; sourceTree = "<group>"; };
  280 + 52F1099514615B3BA1CA982ECF578DDF /* Toast-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "Toast-prefix.pch"; sourceTree = "<group>"; };
  281 + 54E529332879B58C942DDF16DF5D39B4 /* ExtendCustomModelType.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ExtendCustomModelType.swift; path = Source/ExtendCustomModelType.swift; sourceTree = "<group>"; };
  282 + 57342E33349B812F65B6D994EA74E212 /* XRCarouselView.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = XRCarouselView.h; path = XRCarouselView/XRCarouselView.h; sourceTree = "<group>"; };
  283 + 587E904615A6336F6F7628482D5BC8D3 /* Pods-ParentAssistant-frameworks.sh */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.script.sh; path = "Pods-ParentAssistant-frameworks.sh"; sourceTree = "<group>"; };
216 284 59271332AFD884264C5B45B6B6152051 /* ImageIO.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = ImageIO.framework; path = Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS10.3.sdk/System/Library/Frameworks/ImageIO.framework; sourceTree = DEVELOPER_DIR; };
217   - 5BCD4B8E8C14DE4F430A278F71F7D0FF /* XRCarouselView-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "XRCarouselView-prefix.pch"; sourceTree = "<group>"; };
218   - 5CEEDC06F17E3B2247D0C213D2EEFA22 /* Toast-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "Toast-umbrella.h"; sourceTree = "<group>"; };
219   - 5EBCD8E3D00D44E6D321AA2A3AC6562A /* SVIndefiniteAnimatedView.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SVIndefiniteAnimatedView.m; path = SVProgressHUD/SVIndefiniteAnimatedView.m; sourceTree = "<group>"; };
220   - 60A3F93AD6EAC40A34D1F7BF59D9B165 /* SDImageCache.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDImageCache.m; path = SDWebImage/SDImageCache.m; sourceTree = "<group>"; };
221   - 613B2F2AE29AA652F2FBEB974EB1A044 /* Toast-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "Toast-prefix.pch"; sourceTree = "<group>"; };
222   - 62A63D7FFB23D16D27F325250A424933 /* SVRadialGradientLayer.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SVRadialGradientLayer.h; path = SVProgressHUD/SVRadialGradientLayer.h; sourceTree = "<group>"; };
223   - 6361621C72F132C8F4AFC3286C48ECB0 /* Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = "<group>"; };
224   - 63DADB2A24F2E24705306C81DE52354C /* Reachability-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "Reachability-umbrella.h"; sourceTree = "<group>"; };
225   - 648F9002573D6811BFB3D3133CDAE4FD /* UIImageView+WebCache.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "UIImageView+WebCache.h"; path = "SDWebImage/UIImageView+WebCache.h"; sourceTree = "<group>"; };
226   - 64D95CAFC82A27D9FD0489E9C5917506 /* UIView+Toast.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "UIView+Toast.m"; path = "Toast/Toast/UIView+Toast.m"; sourceTree = "<group>"; };
227   - 65B7E93E3ECE48CD1D929320D52945CE /* Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = "<group>"; };
228   - 663BA5E48D7A98ECA0F93458EBFE8EAC /* SwiftHash.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; path = SwiftHash.modulemap; sourceTree = "<group>"; };
229   - 664D41C5636B633819EF1887251701BA /* ServerTrustPolicy.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ServerTrustPolicy.swift; path = Source/ServerTrustPolicy.swift; sourceTree = "<group>"; };
230   - 68919C93C6F37F3FB82FE9478241C8C7 /* UIView+WebCacheOperation.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "UIView+WebCacheOperation.m"; path = "SDWebImage/UIView+WebCacheOperation.m"; sourceTree = "<group>"; };
231   - 696AD0A2FD8EAD1C1AD0CBCE4FAF2CFE /* Pods-ParentAssistant.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-ParentAssistant.release.xcconfig"; sourceTree = "<group>"; };
232   - 69A1474C3B39F2766E17D5E986933EB5 /* Alamofire-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "Alamofire-umbrella.h"; sourceTree = "<group>"; };
233   - 6B21942FBE159527EB1D0AF00F186213 /* SVProgressHUD.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = SVProgressHUD.xcconfig; sourceTree = "<group>"; };
234   - 6C2395AAE8DDF87EF2CDD5D29211D89A /* Alamofire.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; path = Alamofire.modulemap; sourceTree = "<group>"; };
235   - 6E3AD0ED0E4F4D6622F66C870ACAFFF7 /* SVProgressHUD.bundle */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = "wrapper.plug-in"; name = SVProgressHUD.bundle; path = SVProgressHUD/SVProgressHUD.bundle; sourceTree = "<group>"; };
236   - 7A6CCAEC1ECBE477223AEFED858D0220 /* SwiftHash-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "SwiftHash-dummy.m"; sourceTree = "<group>"; };
237   - 7D11D36568090A022DD3F6835C6C69FA /* XRCarouselView.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = XRCarouselView.h; path = XRCarouselView/XRCarouselView.h; sourceTree = "<group>"; };
238   - 7F7C8124A3C5FB69E1577CA239363E72 /* libaacplus.a */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = archive.ar; name = libaacplus.a; path = NIMSDK/Libs/libaacplus.a; sourceTree = "<group>"; };
239   - 7F864C4D0FF679D371E41C649FFA1116 /* SDWebImage-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "SDWebImage-prefix.pch"; sourceTree = "<group>"; };
240   - 823E373C9E1DF801CAF18F07B702CE58 /* DZNEmptyDataSet-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "DZNEmptyDataSet-prefix.pch"; sourceTree = "<group>"; };
241   - 82EA4C43CB0330D7597A7EC7C14DDA06 /* UIImage+GIF.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "UIImage+GIF.h"; path = "SDWebImage/UIImage+GIF.h"; sourceTree = "<group>"; };
242   - 832F8842DD7AD56024ADF50860D248DD /* DZNEmptyDataSet.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = DZNEmptyDataSet.xcconfig; sourceTree = "<group>"; };
243   - 84670A87CCA67437A39C22AA9283BD91 /* SDWebImage.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = SDWebImage.xcconfig; sourceTree = "<group>"; };
244   - 84962E4034B194F5248A3F8BA9405E80 /* SDWebImage.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; name = SDWebImage.framework; path = SDWebImage.framework; sourceTree = BUILT_PRODUCTS_DIR; };
245   - 853A378EDB52FDEA0832CD66C0C29503 /* Alamofire-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "Alamofire-prefix.pch"; sourceTree = "<group>"; };
246   - 8B5F0D69498C1F5859BF2C17B56867FB /* XRCarouselView.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; path = XRCarouselView.modulemap; sourceTree = "<group>"; };
247   - 8CCDB7FC335DFD48FD4C80AC3FA68F61 /* Timeline.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Timeline.swift; path = Source/Timeline.swift; sourceTree = "<group>"; };
248   - 8D482FB1B64F4B26658DBEE3BADB7FB5 /* DZNEmptyDataSet.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; path = DZNEmptyDataSet.modulemap; sourceTree = "<group>"; };
249   - 8D5ECF9767E0DE930DB442E5B0C8654B /* ResponseSerialization.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ResponseSerialization.swift; path = Source/ResponseSerialization.swift; sourceTree = "<group>"; };
250   - 8DE1A0CE0E1BB3F08D5A914FF091692D /* Pods-ParentAssistant-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "Pods-ParentAssistant-umbrella.h"; sourceTree = "<group>"; };
251   - 91F8A62C7241C32CA58D0A9995BC8D8C /* Pods-ParentAssistant-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "Pods-ParentAssistant-dummy.m"; sourceTree = "<group>"; };
252   - 9207677A8967B6C074ADCA740BE816DD /* Toast.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; name = Toast.framework; path = Toast.framework; sourceTree = BUILT_PRODUCTS_DIR; };
253   - 9308B2D0BFEB8F47D93552968D78B8A9 /* SVProgressAnimatedView.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SVProgressAnimatedView.m; path = SVProgressHUD/SVProgressAnimatedView.m; sourceTree = "<group>"; };
  285 + 5B56491AFD4EC6985EBCCEF221A0FCB8 /* SwiftHash-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "SwiftHash-prefix.pch"; sourceTree = "<group>"; };
  286 + 5C3FCED1EF014BDAA42DACC871E2516A /* Reachability.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; name = Reachability.framework; path = Reachability.framework; sourceTree = BUILT_PRODUCTS_DIR; };
  287 + 5C73B5BC3B66F99610607951FEC5FCB3 /* EnumType.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = EnumType.swift; path = Source/EnumType.swift; sourceTree = "<group>"; };
  288 + 5DCF2929ACA53CE3D9FD6342DF5F8D9D /* libaacplus.a */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = archive.ar; name = libaacplus.a; path = NIMSDK/Libs/libaacplus.a; sourceTree = "<group>"; };
  289 + 5F6392C48C4C9A3D7130A57D84AFEE2B /* DZNEmptyDataSet-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "DZNEmptyDataSet-dummy.m"; sourceTree = "<group>"; };
  290 + 60794CE8C2369C4AA061EE9A931DDFED /* XRCarouselView-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "XRCarouselView-prefix.pch"; sourceTree = "<group>"; };
  291 + 640ED88831DE9CA10759B8FC3751C531 /* ServerTrustPolicy.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ServerTrustPolicy.swift; path = Source/ServerTrustPolicy.swift; sourceTree = "<group>"; };
  292 + 64CF5A867496880A0DAE25ED9EC8E512 /* CustomDateFormatTransform.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = CustomDateFormatTransform.swift; path = Source/CustomDateFormatTransform.swift; sourceTree = "<group>"; };
  293 + 65DEF3C169B8F1241E74C3D5C7DA5A6D /* SVProgressHUD.bundle */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = "wrapper.plug-in"; name = SVProgressHUD.bundle; path = SVProgressHUD/SVProgressHUD.bundle; sourceTree = "<group>"; };
  294 + 6768B1FE2E118D79D8A1613520B9BB23 /* SVIndefiniteAnimatedView.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SVIndefiniteAnimatedView.h; path = SVProgressHUD/SVIndefiniteAnimatedView.h; sourceTree = "<group>"; };
  295 + 6850886B55CE3CD9B901B28690292C5C /* SDWebImagePrefetcher.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDWebImagePrefetcher.m; path = SDWebImage/SDWebImagePrefetcher.m; sourceTree = "<group>"; };
  296 + 6976D41DC0C992EA2F24C3A7358E958F /* BuiltInBridgeType.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = BuiltInBridgeType.swift; path = Source/BuiltInBridgeType.swift; sourceTree = "<group>"; };
  297 + 6B3D43CB0BDA34787F85B2C084FBB09A /* HandyJSON.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = HandyJSON.h; path = Source/HandyJSON.h; sourceTree = "<group>"; };
  298 + 6D24FB404E9541910245BF3E68C5EE73 /* URLTransform.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = URLTransform.swift; path = Source/URLTransform.swift; sourceTree = "<group>"; };
  299 + 6E2AA0C415512D5F3F34F7A99AA4D14A /* UIImageView+WebCache.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "UIImageView+WebCache.m"; path = "SDWebImage/UIImageView+WebCache.m"; sourceTree = "<group>"; };
  300 + 6EB59F100C77215BCBB4FAD12F0FF358 /* Pods-ParentAssistant.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-ParentAssistant.debug.xcconfig"; sourceTree = "<group>"; };
  301 + 6F37849A9F05E24161217B664F776F12 /* HandyJSON.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = HandyJSON.xcconfig; sourceTree = "<group>"; };
  302 + 72803D16FA054A0D26C303991C1F2B3C /* SVIndefiniteAnimatedView.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SVIndefiniteAnimatedView.m; path = SVProgressHUD/SVIndefiniteAnimatedView.m; sourceTree = "<group>"; };
  303 + 72ADD4F0113F0555435EA10BA789F8E2 /* TransformOf.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = TransformOf.swift; path = Source/TransformOf.swift; sourceTree = "<group>"; };
  304 + 73AD0FFA16B2C0B1B8A40B3A76629975 /* DZNEmptyDataSet-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "DZNEmptyDataSet-umbrella.h"; sourceTree = "<group>"; };
  305 + 7437E1C250CA27898AA8815D1117643B /* XRCarouselView-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "XRCarouselView-dummy.m"; sourceTree = "<group>"; };
  306 + 77EFE064376F26AEED2B1971235A88EF /* Pods-ParentAssistant.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-ParentAssistant.release.xcconfig"; sourceTree = "<group>"; };
  307 + 7C5CEE4C10F2E83011011BAE5999B4FD /* NominalType.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = NominalType.swift; path = Source/NominalType.swift; sourceTree = "<group>"; };
  308 + 7D9407543C44ABED0AC48154C76831BE /* Measuable.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Measuable.swift; path = Source/Measuable.swift; sourceTree = "<group>"; };
  309 + 7DFB6D55866F4F62D8116993D42B55A8 /* ISO8601DateTransform.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ISO8601DateTransform.swift; path = Source/ISO8601DateTransform.swift; sourceTree = "<group>"; };
  310 + 81D2AEE4F419083BF22474B240B3D9F6 /* PropertyInfo.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = PropertyInfo.swift; path = Source/PropertyInfo.swift; sourceTree = "<group>"; };
  311 + 820C0B25502D820076E6945A9666E544 /* Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = "<group>"; };
  312 + 82C441F9B75595B2F266E6AC40AD7D85 /* SDWebImageCompat.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDWebImageCompat.h; path = SDWebImage/SDWebImageCompat.h; sourceTree = "<group>"; };
  313 + 835B1DEC82F034C2C12DC0723F18F6E9 /* Toast-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "Toast-umbrella.h"; sourceTree = "<group>"; };
  314 + 85EBECC44FA24EC40748D3CB399DD1F3 /* Toast-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "Toast-dummy.m"; sourceTree = "<group>"; };
  315 + 871C0D1C45FD62FE7B82D8E083C00466 /* SDWebImage-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "SDWebImage-prefix.pch"; sourceTree = "<group>"; };
  316 + 87691736C308811895AF6EB052ECD8BE /* DZNEmptyDataSet-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "DZNEmptyDataSet-prefix.pch"; sourceTree = "<group>"; };
  317 + 8781B0306B0188AF528659F413E1B542 /* Response.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Response.swift; path = Source/Response.swift; sourceTree = "<group>"; };
  318 + 87D16ABF7E5F8A01191A86657C5C16BA /* XRCarouselView.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = XRCarouselView.xcconfig; sourceTree = "<group>"; };
  319 + 891E32DCEDF9E73C788DB01E69C7162C /* Pods-ParentAssistant-resources.sh */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.script.sh; path = "Pods-ParentAssistant-resources.sh"; sourceTree = "<group>"; };
  320 + 8A51BA19C89D5E62EDCF2DB9D9FA43E0 /* SDWebImageManager.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDWebImageManager.h; path = SDWebImage/SDWebImageManager.h; sourceTree = "<group>"; };
  321 + 8CDA4E6BD46E857912EC5B5F99364A24 /* SwiftHash.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.module; path = SwiftHash.modulemap; sourceTree = "<group>"; };
  322 + 8D2C5397761E61B24600821547A409CD /* Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = "<group>"; };
  323 + 9011EFC1DA29BE6CA0831595062B82ED /* UIImageView+HighlightedWebCache.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "UIImageView+HighlightedWebCache.h"; path = "SDWebImage/UIImageView+HighlightedWebCache.h"; sourceTree = "<group>"; };
  324 + 92331AB0F30415BE666C619D1A45513E /* Result.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Result.swift; path = Source/Result.swift; sourceTree = "<group>"; };
  325 + 931ED830C3B0B8852F1479DE61BA997E /* AnyExtensions.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = AnyExtensions.swift; path = Source/AnyExtensions.swift; sourceTree = "<group>"; };
  326 + 93251EC8BEF89E6A4FA758DA38A1E47A /* SVProgressHUD-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "SVProgressHUD-umbrella.h"; sourceTree = "<group>"; };
254 327 93A4A3777CF96A4AAC1D13BA6DCCEA73 /* Podfile */ = {isa = PBXFileReference; explicitFileType = text.script.ruby; includeInIndex = 1; lastKnownFileType = text; name = Podfile; path = ../Podfile; sourceTree = SOURCE_ROOT; xcLanguageSpecificationIdentifier = xcode.lang.ruby; };
255 328 93ED65B5F47F5FEA00C9BC9D151B1D26 /* SystemConfiguration.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = SystemConfiguration.framework; path = Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS10.3.sdk/System/Library/Frameworks/SystemConfiguration.framework; sourceTree = DEVELOPER_DIR; };
256   - 949B16AD13972098A7E9515BECD12B07 /* Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = "<group>"; };
257   - 96548887926CE0F889C96ABBA5D9E4E6 /* Pods_ParentAssistant.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; name = Pods_ParentAssistant.framework; path = "Pods-ParentAssistant.framework"; sourceTree = BUILT_PRODUCTS_DIR; };
258   - 966714BC6CB45F265B89BBD42264D605 /* Reachability-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "Reachability-dummy.m"; sourceTree = "<group>"; };
259   - 96F5CD3DDADCBA20C43F86C45281E98A /* UIImageView+WebCache.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "UIImageView+WebCache.m"; path = "SDWebImage/UIImageView+WebCache.m"; sourceTree = "<group>"; };
260   - 97915E2218908AAF45A7A295511D7ED1 /* TaskDelegate.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = TaskDelegate.swift; path = Source/TaskDelegate.swift; sourceTree = "<group>"; };
261   - 97A0541CBA8AB2E3C3D639FB4D4F7C30 /* SwiftHash.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; name = SwiftHash.framework; path = SwiftHash.framework; sourceTree = BUILT_PRODUCTS_DIR; };
262   - 9AFF14D09B2FE9228B53AE5A41F135CD /* UIImageView+HighlightedWebCache.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "UIImageView+HighlightedWebCache.m"; path = "SDWebImage/UIImageView+HighlightedWebCache.m"; sourceTree = "<group>"; };
263   - 9BF2DB879FECD47A547242EE9648EA5D /* libssl.a */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = archive.ar; name = libssl.a; path = NIMSDK/Libs/libssl.a; sourceTree = "<group>"; };
264   - 9F52BD5E0388C810B3A6F1C4F9269F41 /* UIScrollView+EmptyDataSet.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "UIScrollView+EmptyDataSet.m"; path = "Source/UIScrollView+EmptyDataSet.m"; sourceTree = "<group>"; };
265   - A3BF0C8FBEA34836F39B7B05178E99A0 /* Request.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Request.swift; path = Source/Request.swift; sourceTree = "<group>"; };
266   - A3EB6FCDBE4F5542C774BB99AD118E11 /* SVProgressHUD.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; name = SVProgressHUD.framework; path = SVProgressHUD.framework; sourceTree = BUILT_PRODUCTS_DIR; };
267   - A3F3486441B797B49AF7E21644585044 /* SHA1.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = SHA1.swift; path = Sources/SHA1.swift; sourceTree = "<group>"; };
268   - A4284179411380CDBB6CBA4C12CC2EC1 /* SVProgressHUD.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SVProgressHUD.h; path = SVProgressHUD/SVProgressHUD.h; sourceTree = "<group>"; };
269   - A4BC4E64237EB25000D5D76588DDA155 /* XRPlaceholder.png */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = image.png; name = XRPlaceholder.png; path = XRCarouselView/XRPlaceholder.png; sourceTree = "<group>"; };
270   - A714B9425F511B82B9A3122631CA6373 /* DZNEmptyDataSet-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "DZNEmptyDataSet-umbrella.h"; sourceTree = "<group>"; };
271   - AA45B71A66CE0CFB5F154FE85DCBD0A8 /* AFError.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = AFError.swift; path = Source/AFError.swift; sourceTree = "<group>"; };
272   - AAF088CE77A538A96EE53A7EAE65C819 /* ParameterEncoding.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ParameterEncoding.swift; path = Source/ParameterEncoding.swift; sourceTree = "<group>"; };
273   - AB4B2786F6FA607B4DEE59D08AF66F41 /* Pods-ParentAssistant-frameworks.sh */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.script.sh; path = "Pods-ParentAssistant-frameworks.sh"; sourceTree = "<group>"; };
274   - AD007382BBB5211053D42BA6D9B1B60B /* libevent.a */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = archive.ar; name = libevent.a; path = NIMSDK/Libs/libevent.a; sourceTree = "<group>"; };
275   - B0CD149E4B768603919225D913E5623E /* UIImage+MultiFormat.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "UIImage+MultiFormat.h"; path = "SDWebImage/UIImage+MultiFormat.h"; sourceTree = "<group>"; };
276   - B0D604D5F7372E685834966AFDDE389A /* UMCommon.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; path = UMCommon.framework; sourceTree = "<group>"; };
277   - B6EAADE73C594EB99F85F1F1A5CEBCDD /* SDWebImageDownloader.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDWebImageDownloader.m; path = SDWebImage/SDWebImageDownloader.m; sourceTree = "<group>"; };
278   - B740DD3269C25DB27176BA8A1FFE205F /* Reachability.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = Reachability.m; sourceTree = "<group>"; };
279   - B8713380D331B1D052F691C2926D0B73 /* Validation.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Validation.swift; path = Source/Validation.swift; sourceTree = "<group>"; };
  329 + 9889E5067E9A54BAEC05298BBA10F671 /* HelpingMapper.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = HelpingMapper.swift; path = Source/HelpingMapper.swift; sourceTree = "<group>"; };
  330 + 99DF7E55400E9131640E0694D3C91764 /* MultipartFormData.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = MultipartFormData.swift; path = Source/MultipartFormData.swift; sourceTree = "<group>"; };
  331 + 9A4D6703A8771BB168130EFB6EAC1C3E /* SHA1.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = SHA1.swift; path = Sources/SHA1.swift; sourceTree = "<group>"; };
  332 + 9A559DCF61F2E184BC9318C05F05CFF3 /* SDWebImageDownloader.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDWebImageDownloader.h; path = SDWebImage/SDWebImageDownloader.h; sourceTree = "<group>"; };
  333 + 9AEE056145338863D7A727ACF1C3657C /* MD5.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = MD5.swift; path = Sources/MD5.swift; sourceTree = "<group>"; };
  334 + 9F2BF6E468482ED7EDAE9AFD6CA2C994 /* SwiftHash-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "SwiftHash-umbrella.h"; sourceTree = "<group>"; };
  335 + A48FF17CB17A07E2B4AEC609B9947C52 /* libevent.a */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = archive.ar; name = libevent.a; path = NIMSDK/Libs/libevent.a; sourceTree = "<group>"; };
  336 + A59A469B0852E07D2428D72E4C62B1E7 /* Toast.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; name = Toast.framework; path = Toast.framework; sourceTree = BUILT_PRODUCTS_DIR; };
  337 + A91D08749C812CD6EB281780E69AFED6 /* XRCarouselView.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = XRCarouselView.m; path = XRCarouselView/XRCarouselView.m; sourceTree = "<group>"; };
  338 + AC7C53CF4231A641CE59A3CD5991C5C1 /* SDWebImage.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = SDWebImage.xcconfig; sourceTree = "<group>"; };
  339 + AE8B2524C105710A1C75E5F3C734796F /* SVRadialGradientLayer.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SVRadialGradientLayer.m; path = SVProgressHUD/SVRadialGradientLayer.m; sourceTree = "<group>"; };
  340 + B0A49BF64844554AA6BC0B49FD9A9BE8 /* DateTransform.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = DateTransform.swift; path = Source/DateTransform.swift; sourceTree = "<group>"; };
  341 + B4C40BE5E03351505F3B0830F40CFA9E /* libssl.a */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = archive.ar; name = libssl.a; path = NIMSDK/Libs/libssl.a; sourceTree = "<group>"; };
  342 + B4EC3094994043023CF3002A63DD6DA4 /* DateFormatterTransform.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = DateFormatterTransform.swift; path = Source/DateFormatterTransform.swift; sourceTree = "<group>"; };
  343 + B507541260F671D342B11E7250120BBF /* Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = "<group>"; };
  344 + B6554BE7D86E2DF12BC2CFA630452CA0 /* SVProgressAnimatedView.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SVProgressAnimatedView.h; path = SVProgressHUD/SVProgressAnimatedView.h; sourceTree = "<group>"; };
  345 + B71F8A62F3906657D17D418212E1CBA1 /* UIImage+GIF.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "UIImage+GIF.m"; path = "SDWebImage/UIImage+GIF.m"; sourceTree = "<group>"; };
  346 + B88D8470A1A1E4F507B1E9895B074253 /* Pods_ParentAssistant.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; name = Pods_ParentAssistant.framework; path = "Pods-ParentAssistant.framework"; sourceTree = BUILT_PRODUCTS_DIR; };
  347 + B9A38D8C4EC4826AEDC2A52DD0187186 /* SDWebImageOperation.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDWebImageOperation.h; path = SDWebImage/SDWebImageOperation.h; sourceTree = "<group>"; };
280 348 B9B732FC24A0EC5E46E41D939F4A1130 /* UIKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = UIKit.framework; path = Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS10.3.sdk/System/Library/Frameworks/UIKit.framework; sourceTree = DEVELOPER_DIR; };
281   - BA2B601AA9C42D6B8AE96BE8321E5D6C /* NSData+ImageContentType.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "NSData+ImageContentType.h"; path = "SDWebImage/NSData+ImageContentType.h"; sourceTree = "<group>"; };
282   - BCC76567504E581A486841D6937AB40E /* NIMSDK.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = NIMSDK.framework; path = NIMSDK/NIMSDK.framework; sourceTree = "<group>"; };
283   - BFA4BD9F7E363414E27BBE0D8C34DA0E /* Pods-ParentAssistant-acknowledgements.markdown */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text; path = "Pods-ParentAssistant-acknowledgements.markdown"; sourceTree = "<group>"; };
284   - BFD6362AE55791FAF76B6B3156C34632 /* Pods-ParentAssistant.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-ParentAssistant.debug.xcconfig"; sourceTree = "<group>"; };
285   - C0F377612A6D5FC9481923FECF0ABDCB /* SwiftHash-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "SwiftHash-prefix.pch"; sourceTree = "<group>"; };
286   - C40675EC2CFD9D7D3E3D39FCE5F86D94 /* SDWebImageDownloader.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDWebImageDownloader.h; path = SDWebImage/SDWebImageDownloader.h; sourceTree = "<group>"; };
287   - C6E85B189005269F9658DBF04ABDDB3B /* SDWebImage-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "SDWebImage-umbrella.h"; sourceTree = "<group>"; };
288   - C8272080CA749FC34059ED2BAEA321D6 /* SVProgressHUD-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "SVProgressHUD-prefix.pch"; sourceTree = "<group>"; };
289   - C8C938155886EBE25255B3922289A5FC /* UMAnalytics.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; path = UMAnalytics.framework; sourceTree = "<group>"; };
290   - C91D5E4DB4F7F5965CA718D504EAD33D /* libcrypto.a */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = archive.ar; name = libcrypto.a; path = NIMSDK/Libs/libcrypto.a; sourceTree = "<group>"; };
291   - C926E16FF286A7F032D0AB63AAFDCDD3 /* SVIndefiniteAnimatedView.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SVIndefiniteAnimatedView.h; path = SVProgressHUD/SVIndefiniteAnimatedView.h; sourceTree = "<group>"; };
292   - C945AFDE3ADE2B40E1665B379B679BEF /* XRCarouselView.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = XRCarouselView.m; path = XRCarouselView/XRCarouselView.m; sourceTree = "<group>"; };
293   - CAC6652AB60C9B58E90EC948DC506CFE /* XRCarouselView.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; name = XRCarouselView.framework; path = XRCarouselView.framework; sourceTree = BUILT_PRODUCTS_DIR; };
294   - CEE55910941CC3DB174AE3ED4406AB97 /* SessionDelegate.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = SessionDelegate.swift; path = Source/SessionDelegate.swift; sourceTree = "<group>"; };
295   - CFD037A4D376020E2CAD65E1F7FECCB7 /* UIImageView+HighlightedWebCache.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "UIImageView+HighlightedWebCache.h"; path = "SDWebImage/UIImageView+HighlightedWebCache.h"; sourceTree = "<group>"; };
296   - D0B50DAE192A6B3640694B61BEA27967 /* Result.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Result.swift; path = Source/Result.swift; sourceTree = "<group>"; };
297   - D2D134E6EA3014C73775F1A699A2BA42 /* SDWebImageCompat.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDWebImageCompat.h; path = SDWebImage/SDWebImageCompat.h; sourceTree = "<group>"; };
298   - D38B286C5C6AB0DF4A98EEA7B4AEDF20 /* NetworkReachabilityManager.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = NetworkReachabilityManager.swift; path = Source/NetworkReachabilityManager.swift; sourceTree = "<group>"; };
299   - D3E2A6B7148FF5DAE9D54A452036AA3C /* DispatchQueue+Alamofire.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "DispatchQueue+Alamofire.swift"; path = "Source/DispatchQueue+Alamofire.swift"; sourceTree = "<group>"; };
300   - D74BA5E95BF76C0B32981308D5F456D2 /* Reachability.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = Reachability.xcconfig; sourceTree = "<group>"; };
301   - D7DAF83037D7D201AB9346520A2726A5 /* UIScrollView+EmptyDataSet.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "UIScrollView+EmptyDataSet.h"; path = "Source/UIScrollView+EmptyDataSet.h"; sourceTree = "<group>"; };
302   - D850185D33147B30679613890381B01F /* UTDID.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = UTDID.framework; path = thirdparties/UTDID.framework; sourceTree = "<group>"; };
303   - D8CB6D7AEEACE31A7B665F5C5BE3DBEF /* UIButton+WebCache.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "UIButton+WebCache.h"; path = "SDWebImage/UIButton+WebCache.h"; sourceTree = "<group>"; };
304   - DE03BDB2C3EB8E596243F3FB6F59217C /* MD5.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = MD5.swift; path = Sources/MD5.swift; sourceTree = "<group>"; };
305   - DEEEBBC02918A14BA4253C35D926FDEC /* SVProgressHUD.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SVProgressHUD.m; path = SVProgressHUD/SVProgressHUD.m; sourceTree = "<group>"; };
306   - E49267BBEEB33D990D1CCA32DB1092BB /* Reachability.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; name = Reachability.framework; path = Reachability.framework; sourceTree = BUILT_PRODUCTS_DIR; };
307   - E4C906F36DAA1F52BC4CB049D6F2BD4F /* SDWebImageCompat.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDWebImageCompat.m; path = SDWebImage/SDWebImageCompat.m; sourceTree = "<group>"; };
308   - E69012EFA9917EA02DD59B11574B0B26 /* SessionManager.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = SessionManager.swift; path = Source/SessionManager.swift; sourceTree = "<group>"; };
  349 + BB2B3251E63EE34530FC8A40E441CB23 /* Alamofire-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "Alamofire-dummy.m"; sourceTree = "<group>"; };
  350 + BB7CE29DC4FFF250766240EA8DA973D1 /* UIImageView+HighlightedWebCache.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "UIImageView+HighlightedWebCache.m"; path = "SDWebImage/UIImageView+HighlightedWebCache.m"; sourceTree = "<group>"; };
  351 + BC3C517CD17DEB98E878268901D654E8 /* Metadata.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Metadata.swift; path = Source/Metadata.swift; sourceTree = "<group>"; };
  352 + BCCC1A6E4AF8DAF6E5609D65548B3C79 /* NetworkReachabilityManager.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = NetworkReachabilityManager.swift; path = Source/NetworkReachabilityManager.swift; sourceTree = "<group>"; };
  353 + BCECD0FF1E6F7E48270234DAF00B07B7 /* Pods-ParentAssistant-acknowledgements.markdown */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text; path = "Pods-ParentAssistant-acknowledgements.markdown"; sourceTree = "<group>"; };
  354 + BE70BDE392E6E92B76047D2DED4ED380 /* UIButton+WebCache.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "UIButton+WebCache.m"; path = "SDWebImage/UIButton+WebCache.m"; sourceTree = "<group>"; };
  355 + BE846687076AD4570ACE89EC260747A1 /* UMErrorCatch.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; path = UMErrorCatch.framework; sourceTree = "<group>"; };
  356 + BF1709B1277BE62B09381A0534563DE2 /* SwiftHash.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = SwiftHash.xcconfig; sourceTree = "<group>"; };
  357 + BF496B88C6E68626DC9D0C9FC152BD3C /* Alamofire-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "Alamofire-umbrella.h"; sourceTree = "<group>"; };
  358 + BFD387D9E3BDF322939523D4DF31CA79 /* TaskDelegate.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = TaskDelegate.swift; path = Source/TaskDelegate.swift; sourceTree = "<group>"; };
  359 + C03FC1A11EE20AB8B6A4B398E11B26B0 /* UIButton+WebCache.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "UIButton+WebCache.h"; path = "SDWebImage/UIButton+WebCache.h"; sourceTree = "<group>"; };
  360 + C203E9ABEF394B0009B142EEB9AA64FC /* NSData+ImageContentType.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "NSData+ImageContentType.m"; path = "SDWebImage/NSData+ImageContentType.m"; sourceTree = "<group>"; };
  361 + C33C9063E8CA60D73EE6050FCF59F433 /* Export.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Export.swift; path = Source/Export.swift; sourceTree = "<group>"; };
  362 + C62416D612C6BD82B2867F75585C4C56 /* Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = "<group>"; };
  363 + CC9B184B04C60B80BBEF83595DBE8AF4 /* XRCarouselView.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.module; path = XRCarouselView.modulemap; sourceTree = "<group>"; };
  364 + CE1C92985D9321104698E3AFAF68594E /* SDWebImage.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; name = SDWebImage.framework; path = SDWebImage.framework; sourceTree = BUILT_PRODUCTS_DIR; };
  365 + CEA07E2E477768269A8D0BECE492EBAF /* Alamofire.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Alamofire.swift; path = Source/Alamofire.swift; sourceTree = "<group>"; };
  366 + CF9CDCEBD5D016D3F349D31FFDAEA20A /* NIMSDK.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = NIMSDK.framework; path = NIMSDK/NIMSDK.framework; sourceTree = "<group>"; };
  367 + D124D84D327A6ADF3D01C95E84C09A31 /* UMAnalytics.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; path = UMAnalytics.framework; sourceTree = "<group>"; };
  368 + D912920D1BEEB7757AF4BE74E2EC8FA6 /* SDWebImage.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.module; path = SDWebImage.modulemap; sourceTree = "<group>"; };
  369 + D9ED9DA2E61F2A4DD7E760C61C47A3F1 /* Timeline.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Timeline.swift; path = Source/Timeline.swift; sourceTree = "<group>"; };
  370 + DB5FF7B561F6F548C82F1FC27FDD72E8 /* NSData+ImageContentType.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "NSData+ImageContentType.h"; path = "SDWebImage/NSData+ImageContentType.h"; sourceTree = "<group>"; };
  371 + DBE314BE44865438F00A5054E414EF77 /* Toast.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.module; path = Toast.modulemap; sourceTree = "<group>"; };
  372 + DD0E89B8C1439B9F5FDB39EA0232B3EA /* DZNEmptyDataSet.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; name = DZNEmptyDataSet.framework; path = DZNEmptyDataSet.framework; sourceTree = BUILT_PRODUCTS_DIR; };
  373 + DE3D895CEB8D8D9876BA0F9346FF9D69 /* Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = "<group>"; };
  374 + DE92E07FF56795D096246F9059B540CA /* DataTransform.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = DataTransform.swift; path = Source/DataTransform.swift; sourceTree = "<group>"; };
  375 + DF68D7CB4183F99C38744F4985CD422D /* SDWebImageDecoder.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDWebImageDecoder.m; path = SDWebImage/SDWebImageDecoder.m; sourceTree = "<group>"; };
  376 + DF826B20D920C607DF652F2F3EA4C2F8 /* UMCommon.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; path = UMCommon.framework; sourceTree = "<group>"; };
  377 + E058896CA0DFFEF3CCEFAD6FEBA0DB11 /* UTDID.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = UTDID.framework; path = thirdparties/UTDID.framework; sourceTree = "<group>"; };
  378 + E1CD65D31F6DC7B830E7132E6B396C30 /* Pods-ParentAssistant-acknowledgements.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "Pods-ParentAssistant-acknowledgements.plist"; sourceTree = "<group>"; };
  379 + E3370B03674C70DABFF75D9D2BA95DCE /* UIImage+GIF.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "UIImage+GIF.h"; path = "SDWebImage/UIImage+GIF.h"; sourceTree = "<group>"; };
  380 + E33C2A8A35CA23130F27CFEC0285B7DB /* SDWebImagePrefetcher.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDWebImagePrefetcher.h; path = SDWebImage/SDWebImagePrefetcher.h; sourceTree = "<group>"; };
  381 + E4E76CB8696BAB20A617484E4726713B /* Transformable.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Transformable.swift; path = Source/Transformable.swift; sourceTree = "<group>"; };
  382 + E533F265C56324D6F57EB232221F586A /* UIView+Toast.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "UIView+Toast.m"; path = "Toast/Toast/UIView+Toast.m"; sourceTree = "<group>"; };
  383 + E786E1AEE51D914333543AC4DEF9B3FB /* SDWebImage-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "SDWebImage-umbrella.h"; sourceTree = "<group>"; };
309 384 E81ABC082107E519C9718F3CCEA03977 /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS10.3.sdk/System/Library/Frameworks/Foundation.framework; sourceTree = DEVELOPER_DIR; };
310   - EDF6D30846728EC3FC632BEE2717B854 /* DZNEmptyDataSet-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "DZNEmptyDataSet-dummy.m"; sourceTree = "<group>"; };
311   - EEE5810B54BF020658D7EC89FCA21910 /* Alamofire-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "Alamofire-dummy.m"; sourceTree = "<group>"; };
312   - F0A8D9944EB1FF44C20B9A0C78A8DAAD /* SDWebImage-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "SDWebImage-dummy.m"; sourceTree = "<group>"; };
313   - F39E00016168D1792023A12BC344B8BC /* SDImageCache.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDImageCache.h; path = SDWebImage/SDImageCache.h; sourceTree = "<group>"; };
314   - F5355239148E97AE84932EC31D9FEE81 /* Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = "<group>"; };
315   - F881111ED96D14E27A9A91E9C8C48275 /* SDWebImagePrefetcher.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDWebImagePrefetcher.m; path = SDWebImage/SDWebImagePrefetcher.m; sourceTree = "<group>"; };
316   - F8C7EAD1A973006F196503FDC20AA965 /* Pods-ParentAssistant-resources.sh */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.script.sh; path = "Pods-ParentAssistant-resources.sh"; sourceTree = "<group>"; };
317   - FA2BB5CBAA58FB62AFBC392717B28457 /* UIImage+MultiFormat.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "UIImage+MultiFormat.m"; path = "SDWebImage/UIImage+MultiFormat.m"; sourceTree = "<group>"; };
318   - FC64335EAD5D5808C3A136A86895FF1C /* Pods-ParentAssistant.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; path = "Pods-ParentAssistant.modulemap"; sourceTree = "<group>"; };
  385 + E9462CA128209C32EE6E6647C88609D1 /* OtherExtension.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = OtherExtension.swift; path = Source/OtherExtension.swift; sourceTree = "<group>"; };
  386 + E95345A11FCCED373B3A5758A6073CDB /* Validation.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Validation.swift; path = Source/Validation.swift; sourceTree = "<group>"; };
  387 + E956F54FF76DE5D347505F3AF7694F03 /* Alamofire.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; name = Alamofire.framework; path = Alamofire.framework; sourceTree = BUILT_PRODUCTS_DIR; };
  388 + EA6D07581B965169F4C036A600CF86BB /* Alamofire.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = Alamofire.xcconfig; sourceTree = "<group>"; };
  389 + F33461E2C03CDF90E02052B76ADADB01 /* TransformType.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = TransformType.swift; path = Source/TransformType.swift; sourceTree = "<group>"; };
  390 + F638493F2C879E2AF820AE53EA390269 /* UIView+WebCacheOperation.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "UIView+WebCacheOperation.h"; path = "SDWebImage/UIView+WebCacheOperation.h"; sourceTree = "<group>"; };
  391 + F6429920CDFD8D08A5A0566565673330 /* DispatchQueue+Alamofire.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "DispatchQueue+Alamofire.swift"; path = "Source/DispatchQueue+Alamofire.swift"; sourceTree = "<group>"; };
  392 + F6BAADF2798AA6F62DA82FAA92DECB07 /* Pods-ParentAssistant-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "Pods-ParentAssistant-dummy.m"; sourceTree = "<group>"; };
  393 + F6C063D5E492D3ED69858D446C30719E /* UIImage+MultiFormat.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "UIImage+MultiFormat.h"; path = "SDWebImage/UIImage+MultiFormat.h"; sourceTree = "<group>"; };
  394 + F948022D8D1EFEF734A07E6ED4D6CAF9 /* BuiltInBasicType.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = BuiltInBasicType.swift; path = Source/BuiltInBasicType.swift; sourceTree = "<group>"; };
  395 + FBC74E5E6FF8BCD3F240C1F0C8B9B427 /* DZNEmptyDataSet.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.module; path = DZNEmptyDataSet.modulemap; sourceTree = "<group>"; };
  396 + FC9D90B14CC51CAAC698C0623AB16C70 /* SecurityEnvSDK.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = SecurityEnvSDK.framework; path = thirdparties/SecurityEnvSDK.framework; sourceTree = "<group>"; };
  397 + FD2B11D4DCD30BDBA06841569E01E1BD /* HandyJSON-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "HandyJSON-dummy.m"; sourceTree = "<group>"; };
  398 + FF65E4A0D399571B01517891F0309004 /* SDWebImage-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "SDWebImage-dummy.m"; sourceTree = "<group>"; };
  399 + FF928773E158E70CF5C2B45EA69A4223 /* Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = "<group>"; };
  400 + FFCF8A6062658FA349B617C0D75723C2 /* SDWebImageManager.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDWebImageManager.m; path = SDWebImage/SDWebImageManager.m; sourceTree = "<group>"; };
  401 + FFEBBEC7D2ED4C631DFB3CBB04E6F926 /* XRPlaceholder.png */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = image.png; name = XRPlaceholder.png; path = XRCarouselView/XRPlaceholder.png; sourceTree = "<group>"; };
319 402 /* End PBXFileReference section */
320 403  
321 404 /* Begin PBXFrameworksBuildPhase section */
322   - 107EA7F8B01FBCE0D04F28255869D12A /* Frameworks */ = {
  405 + 158EE653FB0E0E7AF979010BC3A73E13 /* Frameworks */ = {
323 406 isa = PBXFrameworksBuildPhase;
324 407 buildActionMask = 2147483647;
325 408 files = (
326   - 05DC121915D9BD7F7D11FE4C4651FC59 /* Foundation.framework in Frameworks */,
  409 + 952429322A476D5508670C477DE23669 /* Foundation.framework in Frameworks */,
327 410 );
328 411 runOnlyForDeploymentPostprocessing = 0;
329 412 };
330   - 32218FC177E4F2A3866248C60E699AD7 /* Frameworks */ = {
  413 + 25507DD6D7F1D774CD72F194200A6D77 /* Frameworks */ = {
331 414 isa = PBXFrameworksBuildPhase;
332 415 buildActionMask = 2147483647;
333 416 files = (
334   - E13F179231DAC1A6068B8B82ACC14EA0 /* Foundation.framework in Frameworks */,
335   - BB4706D78AC0D446F7022C66985E1253 /* SystemConfiguration.framework in Frameworks */,
  417 + 23C92743D0D2154080836B58896172C9 /* Foundation.framework in Frameworks */,
336 418 );
337 419 runOnlyForDeploymentPostprocessing = 0;
338 420 };
339   - 59E0885EF9D269547F22DB9E026FB793 /* Frameworks */ = {
  421 + 2FCA03AB4708FF069C969DAC4ED689A3 /* Frameworks */ = {
340 422 isa = PBXFrameworksBuildPhase;
341 423 buildActionMask = 2147483647;
342 424 files = (
343   - C577B322B52228B272D52FF32B7BE30C /* Foundation.framework in Frameworks */,
344   - 8E31EF89BD192C6AACDE9E0655861D3D /* UIKit.framework in Frameworks */,
  425 + 01866720BD41E2820300D8B9284FC061 /* Foundation.framework in Frameworks */,
345 426 );
346 427 runOnlyForDeploymentPostprocessing = 0;
347 428 };
348   - 68E86B09CD2A2D450668D8C52BF3A647 /* Frameworks */ = {
  429 + 46A2C828E74BB80E0DE22F9A57D702B2 /* Frameworks */ = {
349 430 isa = PBXFrameworksBuildPhase;
350 431 buildActionMask = 2147483647;
351 432 files = (
352   - E8DAE6CA0B236532ECA6D44CE2B8D87D /* Foundation.framework in Frameworks */,
353   - 606C3BAD569CD52EB453BDE439971E61 /* QuartzCore.framework in Frameworks */,
  433 + C98D39690CC370401444D498206BCA2B /* Foundation.framework in Frameworks */,
  434 + 1A3841F2F008E6FEBA8B10F04DE5AD15 /* QuartzCore.framework in Frameworks */,
354 435 );
355 436 runOnlyForDeploymentPostprocessing = 0;
356 437 };
357   - 6C5F920EE9CA1FAD466148402D8E2ECC /* Frameworks */ = {
  438 + 59E0885EF9D269547F22DB9E026FB793 /* Frameworks */ = {
358 439 isa = PBXFrameworksBuildPhase;
359 440 buildActionMask = 2147483647;
360 441 files = (
361   - 21D1ADA45562D9B49E0B86BC0AD9B024 /* Foundation.framework in Frameworks */,
  442 + C577B322B52228B272D52FF32B7BE30C /* Foundation.framework in Frameworks */,
  443 + 8E31EF89BD192C6AACDE9E0655861D3D /* UIKit.framework in Frameworks */,
362 444 );
363 445 runOnlyForDeploymentPostprocessing = 0;
364 446 };
365   - 7E7811DF5774E3C53F7D02BA94F0EBBD /* Frameworks */ = {
  447 + 99195E4207764744AEC07ECCBCD550EB /* Frameworks */ = {
366 448 isa = PBXFrameworksBuildPhase;
367 449 buildActionMask = 2147483647;
368 450 files = (
369   - B7E9C6F6AE84988704B110AD4A0C9CA8 /* Foundation.framework in Frameworks */,
370   - C38CBA7114C05F3FF045615FEE1D15B9 /* ImageIO.framework in Frameworks */,
  451 + 73B9C996AED49ED7CF8EC2A6F1738059 /* Foundation.framework in Frameworks */,
371 452 );
372 453 runOnlyForDeploymentPostprocessing = 0;
373 454 };
374   - 8BC117D0FE1EF633F6330395F0847D00 /* Frameworks */ = {
  455 + A115DC87278A31F6B371DA2C1AF9CD02 /* Frameworks */ = {
375 456 isa = PBXFrameworksBuildPhase;
376 457 buildActionMask = 2147483647;
377 458 files = (
378   - 36C804098901C14987AC99D9488B7818 /* Foundation.framework in Frameworks */,
379   - ED0451E5FF57EB35F9D4C92E008A7750 /* QuartzCore.framework in Frameworks */,
  459 + 7CE1363BFF8D96DD8059E0B5481A8D00 /* Foundation.framework in Frameworks */,
  460 + 121B576C5153736760EDBD385DCE1A82 /* QuartzCore.framework in Frameworks */,
380 461 );
381 462 runOnlyForDeploymentPostprocessing = 0;
382 463 };
383   - 916C804BC3435443B7462DE561167E4C /* Frameworks */ = {
  464 + D871485AC7FB55A15B0AC2046B09D62B /* Frameworks */ = {
384 465 isa = PBXFrameworksBuildPhase;
385 466 buildActionMask = 2147483647;
386 467 files = (
387   - 10466C2E3B37F15A5BBA3B9E941FEDF2 /* Foundation.framework in Frameworks */,
  468 + 502127E1D7BF9D8D8FA29AD2F7EF420E /* Foundation.framework in Frameworks */,
388 469 );
389 470 runOnlyForDeploymentPostprocessing = 0;
390 471 };
391   - 99195E4207764744AEC07ECCBCD550EB /* Frameworks */ = {
  472 + E44680339038F2F0730AF783DAEFFCB6 /* Frameworks */ = {
392 473 isa = PBXFrameworksBuildPhase;
393 474 buildActionMask = 2147483647;
394 475 files = (
395   - 73B9C996AED49ED7CF8EC2A6F1738059 /* Foundation.framework in Frameworks */,
  476 + 6BE097BD2C38D14E51B20BCEB5C6F495 /* Foundation.framework in Frameworks */,
  477 + B35D34D1C1A4B0A5FAD90526DE5D88A4 /* ImageIO.framework in Frameworks */,
  478 + );
  479 + runOnlyForDeploymentPostprocessing = 0;
  480 + };
  481 + EBA80D6B1394A46D45B033AB75657E91 /* Frameworks */ = {
  482 + isa = PBXFrameworksBuildPhase;
  483 + buildActionMask = 2147483647;
  484 + files = (
  485 + 9F24B341383F0FF8EA368B3A7F9BC087 /* Foundation.framework in Frameworks */,
  486 + EC3CC4DC8A5C9241AE7D9359EEAFC69F /* SystemConfiguration.framework in Frameworks */,
396 487 );
397 488 runOnlyForDeploymentPostprocessing = 0;
398 489 };
399 490 /* End PBXFrameworksBuildPhase section */
400 491  
401 492 /* Begin PBXGroup section */
402   - 014D23A526D03D5D5063236F50AF720F /* Reachability */ = {
  493 + 001E2CA6EA468C671F75E62723E01ABD /* Support Files */ = {
403 494 isa = PBXGroup;
404 495 children = (
405   - 0B6CA6D3D3167BE8720EE9756B8762E7 /* Reachability.h */,
406   - B740DD3269C25DB27176BA8A1FFE205F /* Reachability.m */,
407   - 941E74043B396F61F87CAF449C3BF757 /* Support Files */,
  496 + FBC74E5E6FF8BCD3F240C1F0C8B9B427 /* DZNEmptyDataSet.modulemap */,
  497 + 328C2C3F0CBE7948196AEE1B0FA7B3F4 /* DZNEmptyDataSet.xcconfig */,
  498 + 5F6392C48C4C9A3D7130A57D84AFEE2B /* DZNEmptyDataSet-dummy.m */,
  499 + 87691736C308811895AF6EB052ECD8BE /* DZNEmptyDataSet-prefix.pch */,
  500 + 73AD0FFA16B2C0B1B8A40B3A76629975 /* DZNEmptyDataSet-umbrella.h */,
  501 + 02C19698DC383415660AD836A73862CF /* Info.plist */,
408 502 );
409   - name = Reachability;
410   - path = Reachability;
  503 + name = "Support Files";
  504 + path = "../Target Support Files/DZNEmptyDataSet";
411 505 sourceTree = "<group>";
412 506 };
413   - 041346B6FC957C3B54EC9E9A2108F49E /* SwiftHash */ = {
  507 + 035886489A99DD807583400603AB5019 /* Alamofire */ = {
414 508 isa = PBXGroup;
415 509 children = (
416   - DE03BDB2C3EB8E596243F3FB6F59217C /* MD5.swift */,
417   - A3F3486441B797B49AF7E21644585044 /* SHA1.swift */,
418   - 53592C32D5755FA0EBA2E2189BB0C240 /* Support Files */,
  510 + 08E13F442024BE43D2F31AA6F2C300DA /* AFError.swift */,
  511 + CEA07E2E477768269A8D0BECE492EBAF /* Alamofire.swift */,
  512 + F6429920CDFD8D08A5A0566565673330 /* DispatchQueue+Alamofire.swift */,
  513 + 99DF7E55400E9131640E0694D3C91764 /* MultipartFormData.swift */,
  514 + BCCC1A6E4AF8DAF6E5609D65548B3C79 /* NetworkReachabilityManager.swift */,
  515 + 2F2F35AD7354793D357E10226DE37995 /* Notifications.swift */,
  516 + 14EC82B350F60C65CB156014F5997DCE /* ParameterEncoding.swift */,
  517 + 232E0E55F341C5600028F7AAA4F59E8A /* Request.swift */,
  518 + 8781B0306B0188AF528659F413E1B542 /* Response.swift */,
  519 + 39F3B60B0A2AD7975DA5BCA943FA6BD5 /* ResponseSerialization.swift */,
  520 + 92331AB0F30415BE666C619D1A45513E /* Result.swift */,
  521 + 640ED88831DE9CA10759B8FC3751C531 /* ServerTrustPolicy.swift */,
  522 + 2D3152CF39784BC2AAD4747AF03BB50A /* SessionDelegate.swift */,
  523 + 5104B9F40B6C55F71BDE788F76AA8F53 /* SessionManager.swift */,
  524 + BFD387D9E3BDF322939523D4DF31CA79 /* TaskDelegate.swift */,
  525 + D9ED9DA2E61F2A4DD7E760C61C47A3F1 /* Timeline.swift */,
  526 + E95345A11FCCED373B3A5758A6073CDB /* Validation.swift */,
  527 + A87864D22DE2007F4600F7C0E566D95C /* Support Files */,
419 528 );
420   - name = SwiftHash;
421   - path = SwiftHash;
  529 + name = Alamofire;
  530 + path = Alamofire;
422 531 sourceTree = "<group>";
423 532 };
424   - 090BAC99083B0A0BEEBBA2D7A8CF5CFC /* Frameworks */ = {
  533 + 0AFF261FC6409676B5FE2EA67480CAE4 /* UMCSecurityPlugins */ = {
425 534 isa = PBXGroup;
426 535 children = (
427   - 10ADDC363B0D209CE344723260F1796A /* SecurityEnvSDK.framework */,
428   - D850185D33147B30679613890381B01F /* UTDID.framework */,
  536 + 8FC2DD334C1E70C1C4C5C8F0FA196151 /* Frameworks */,
429 537 );
430   - name = Frameworks;
  538 + name = UMCSecurityPlugins;
  539 + path = UMCSecurityPlugins;
431 540 sourceTree = "<group>";
432 541 };
433   - 109916C8440FBFBDE58A23EF8C917A15 /* Pods */ = {
  542 + 197A90DE72E89B51A1E8F89461EABB00 /* Frameworks */ = {
434 543 isa = PBXGroup;
435 544 children = (
436   - AC6A1AED5B21E47027582932E701C9B8 /* Alamofire */,
437   - C281E31831358A46F6928CAE4586812D /* DZNEmptyDataSet */,
438   - 4AAD33839581BD741A998ECC9FE2E5E5 /* NIMSDK_LITE */,
439   - 014D23A526D03D5D5063236F50AF720F /* Reachability */,
440   - 66C5D3E9F052CFD45F58AD57515141C5 /* SDWebImage */,
441   - C51BBA93DF6D41810F4A63C7FC77A9CA /* SVProgressHUD */,
442   - 041346B6FC957C3B54EC9E9A2108F49E /* SwiftHash */,
443   - 82DBAF9917A633FC37DED1B6BBFAA166 /* Toast */,
444   - 1446833262A16544EA51DC94B51E03F7 /* UMCAnalytics */,
445   - 25DE6845848227BA015E41CCBD304065 /* UMCCommon */,
446   - AD183997C52A18B21EDA14372F975903 /* UMCErrorCatch */,
447   - FEBC741685A4D8D113677F5825EA098A /* UMCSecurityPlugins */,
448   - AD3DB0C14AD65E32CA9E67A583FA5214 /* XRCarouselView */,
  545 + 5DCF2929ACA53CE3D9FD6342DF5F8D9D /* libaacplus.a */,
  546 + 03475756EB49A978A9F331D44971B60B /* libcrypto.a */,
  547 + A48FF17CB17A07E2B4AEC609B9947C52 /* libevent.a */,
  548 + B4C40BE5E03351505F3B0830F40CFA9E /* libssl.a */,
  549 + CF9CDCEBD5D016D3F349D31FFDAEA20A /* NIMSDK.framework */,
449 550 );
450   - name = Pods;
  551 + name = Frameworks;
451 552 sourceTree = "<group>";
452 553 };
453   - 1111045D95E3B71F47B51D0D22DB1391 /* Frameworks */ = {
  554 + 20B56609144CE204DFA8221F742B2D76 /* Frameworks */ = {
454 555 isa = PBXGroup;
455 556 children = (
456   - 7F7C8124A3C5FB69E1577CA239363E72 /* libaacplus.a */,
457   - C91D5E4DB4F7F5965CA718D504EAD33D /* libcrypto.a */,
458   - AD007382BBB5211053D42BA6D9B1B60B /* libevent.a */,
459   - 9BF2DB879FECD47A547242EE9648EA5D /* libssl.a */,
460   - BCC76567504E581A486841D6937AB40E /* NIMSDK.framework */,
  557 + 287B6E205C5204939598639BF0799466 /* iOS */,
461 558 );
462 559 name = Frameworks;
463 560 sourceTree = "<group>";
464 561 };
465   - 11AEEDA1FBE6316A83A8F2267DFFF9D5 /* Frameworks */ = {
  562 + 2113AB85D8791161623936EC0882CA20 /* Support Files */ = {
466 563 isa = PBXGroup;
467 564 children = (
468   - 2752B2AE6C1700B3C4035EB9B3F3C828 /* UMErrorCatch.framework */,
  565 + 8D2C5397761E61B24600821547A409CD /* Info.plist */,
  566 + DBE314BE44865438F00A5054E414EF77 /* Toast.modulemap */,
  567 + 3813A00560E8E809CF107BA098D6A666 /* Toast.xcconfig */,
  568 + 85EBECC44FA24EC40748D3CB399DD1F3 /* Toast-dummy.m */,
  569 + 52F1099514615B3BA1CA982ECF578DDF /* Toast-prefix.pch */,
  570 + 835B1DEC82F034C2C12DC0723F18F6E9 /* Toast-umbrella.h */,
469 571 );
470   - name = Frameworks;
  572 + name = "Support Files";
  573 + path = "../Target Support Files/Toast";
471 574 sourceTree = "<group>";
472 575 };
473   - 14106FE25ADE5F8340F0D3541E98431F /* Products */ = {
  576 + 287B6E205C5204939598639BF0799466 /* iOS */ = {
474 577 isa = PBXGroup;
475 578 children = (
476   - 262207002737C66ED24D7609E73A2051 /* Alamofire.framework */,
477   - 533EA16EA3C399B93C59F7FBDF7BA283 /* DZNEmptyDataSet.framework */,
478   - 96548887926CE0F889C96ABBA5D9E4E6 /* Pods_ParentAssistant.framework */,
479   - E49267BBEEB33D990D1CCA32DB1092BB /* Reachability.framework */,
480   - 84962E4034B194F5248A3F8BA9405E80 /* SDWebImage.framework */,
481   - A3EB6FCDBE4F5542C774BB99AD118E11 /* SVProgressHUD.framework */,
482   - 97A0541CBA8AB2E3C3D639FB4D4F7C30 /* SwiftHash.framework */,
483   - 9207677A8967B6C074ADCA740BE816DD /* Toast.framework */,
484   - CAC6652AB60C9B58E90EC948DC506CFE /* XRCarouselView.framework */,
  579 + E81ABC082107E519C9718F3CCEA03977 /* Foundation.framework */,
  580 + 59271332AFD884264C5B45B6B6152051 /* ImageIO.framework */,
  581 + 4DB0A7F29D540AB077DA6D9855C3F743 /* QuartzCore.framework */,
  582 + 93ED65B5F47F5FEA00C9BC9D151B1D26 /* SystemConfiguration.framework */,
  583 + B9B732FC24A0EC5E46E41D939F4A1130 /* UIKit.framework */,
485 584 );
486   - name = Products;
  585 + name = iOS;
487 586 sourceTree = "<group>";
488 587 };
489   - 1446833262A16544EA51DC94B51E03F7 /* UMCAnalytics */ = {
  588 + 2A1708CE4EC9BA0CA7B5865FF66228B4 /* Support Files */ = {
490 589 isa = PBXGroup;
491 590 children = (
492   - D719D3CA276A3B3B00118A3986DBD72A /* Frameworks */,
  591 + 0CDCA399D86C4D9BFD1AAA60E4F5A9F5 /* HandyJSON.modulemap */,
  592 + 6F37849A9F05E24161217B664F776F12 /* HandyJSON.xcconfig */,
  593 + FD2B11D4DCD30BDBA06841569E01E1BD /* HandyJSON-dummy.m */,
  594 + 297F8CEFA42DFD823263EA02BC36D29A /* HandyJSON-prefix.pch */,
  595 + 11DABA5B57A3076260D36D4A9AE646F5 /* HandyJSON-umbrella.h */,
  596 + 2098C9BB32F72BB65BA83ADD1F338099 /* Info.plist */,
493 597 );
494   - name = UMCAnalytics;
495   - path = UMCAnalytics;
  598 + name = "Support Files";
  599 + path = "../Target Support Files/HandyJSON";
496 600 sourceTree = "<group>";
497 601 };
498   - 18B0CF2D79F7A7C943818C18B9B6F07B /* Core */ = {
  602 + 309ACF9CB8917F8180F0C78892CC4962 /* Targets Support Files */ = {
499 603 isa = PBXGroup;
500 604 children = (
501   - BA2B601AA9C42D6B8AE96BE8321E5D6C /* NSData+ImageContentType.h */,
502   - 4F62E861EB0D938A1E0BD4EB7441A08D /* NSData+ImageContentType.m */,
503   - F39E00016168D1792023A12BC344B8BC /* SDImageCache.h */,
504   - 60A3F93AD6EAC40A34D1F7BF59D9B165 /* SDImageCache.m */,
505   - D2D134E6EA3014C73775F1A699A2BA42 /* SDWebImageCompat.h */,
506   - E4C906F36DAA1F52BC4CB049D6F2BD4F /* SDWebImageCompat.m */,
507   - 511A51D5104E2218B3E7F93AC4600390 /* SDWebImageDecoder.h */,
508   - 0C6151C7E1F55461E2FEFEF578F941F2 /* SDWebImageDecoder.m */,
509   - C40675EC2CFD9D7D3E3D39FCE5F86D94 /* SDWebImageDownloader.h */,
510   - B6EAADE73C594EB99F85F1F1A5CEBCDD /* SDWebImageDownloader.m */,
511   - 1D0E84080C6117D91217278F7DDF8B37 /* SDWebImageDownloaderOperation.h */,
512   - 0FF492DA7B2B6480B7AA0B29AFEA02B4 /* SDWebImageDownloaderOperation.m */,
513   - 133564ED095E50FC178E7088F2D2F525 /* SDWebImageManager.h */,
514   - 3DBD3BB3C24392F4D1991479123ED45F /* SDWebImageManager.m */,
515   - 31EE0E670B57E7A1A671D5E6BDFE9EEE /* SDWebImageOperation.h */,
516   - 45C480734183DBFB9258B038501DA266 /* SDWebImagePrefetcher.h */,
517   - F881111ED96D14E27A9A91E9C8C48275 /* SDWebImagePrefetcher.m */,
518   - D8CB6D7AEEACE31A7B665F5C5BE3DBEF /* UIButton+WebCache.h */,
519   - 0387FCC8EF5DA97E95535BB4EBA7F133 /* UIButton+WebCache.m */,
520   - 82EA4C43CB0330D7597A7EC7C14DDA06 /* UIImage+GIF.h */,
521   - 3F62E70A9FBEB449678982E52E1353F2 /* UIImage+GIF.m */,
522   - B0CD149E4B768603919225D913E5623E /* UIImage+MultiFormat.h */,
523   - FA2BB5CBAA58FB62AFBC392717B28457 /* UIImage+MultiFormat.m */,
524   - CFD037A4D376020E2CAD65E1F7FECCB7 /* UIImageView+HighlightedWebCache.h */,
525   - 9AFF14D09B2FE9228B53AE5A41F135CD /* UIImageView+HighlightedWebCache.m */,
526   - 648F9002573D6811BFB3D3133CDAE4FD /* UIImageView+WebCache.h */,
527   - 96F5CD3DDADCBA20C43F86C45281E98A /* UIImageView+WebCache.m */,
528   - 1EA85E4120BF4DBBC742DBD972E1D4E0 /* UIView+WebCacheOperation.h */,
529   - 68919C93C6F37F3FB82FE9478241C8C7 /* UIView+WebCacheOperation.m */,
  605 + BE317C13F71B97F884FEF35459393B25 /* Pods-ParentAssistant */,
530 606 );
531   - name = Core;
  607 + name = "Targets Support Files";
532 608 sourceTree = "<group>";
533 609 };
534   - 20B56609144CE204DFA8221F742B2D76 /* Frameworks */ = {
  610 + 330169F0E739AF701BDEBB5894F8434A /* SDWebImage */ = {
535 611 isa = PBXGroup;
536 612 children = (
537   - 287B6E205C5204939598639BF0799466 /* iOS */,
  613 + 5E15FAEE84F8B146F03BE7AFBAC36661 /* Core */,
  614 + 630CEDD835E65E88DC71885CD9EF4E92 /* Support Files */,
538 615 );
539   - name = Frameworks;
  616 + name = SDWebImage;
  617 + path = SDWebImage;
540 618 sourceTree = "<group>";
541 619 };
542   - 25DE6845848227BA015E41CCBD304065 /* UMCCommon */ = {
  620 + 37C774715FC3CB332E3DBBFF760D1DA7 /* DZNEmptyDataSet */ = {
543 621 isa = PBXGroup;
544 622 children = (
545   - 6384DC6C6C6E3363DC05585EF792BA5D /* Frameworks */,
  623 + 41531DBB287870602D671C4D97E99B21 /* UIScrollView+EmptyDataSet.h */,
  624 + 18F6A571F05F4D0DD12870CE83C8F787 /* UIScrollView+EmptyDataSet.m */,
  625 + 001E2CA6EA468C671F75E62723E01ABD /* Support Files */,
546 626 );
547   - name = UMCCommon;
548   - path = UMCCommon;
  627 + name = DZNEmptyDataSet;
  628 + path = DZNEmptyDataSet;
549 629 sourceTree = "<group>";
550 630 };
551   - 287B6E205C5204939598639BF0799466 /* iOS */ = {
  631 + 3860473AD1F18D1A7419BE2875F3630F /* Frameworks */ = {
552 632 isa = PBXGroup;
553 633 children = (
554   - E81ABC082107E519C9718F3CCEA03977 /* Foundation.framework */,
555   - 59271332AFD884264C5B45B6B6152051 /* ImageIO.framework */,
556   - 4DB0A7F29D540AB077DA6D9855C3F743 /* QuartzCore.framework */,
557   - 93ED65B5F47F5FEA00C9BC9D151B1D26 /* SystemConfiguration.framework */,
558   - B9B732FC24A0EC5E46E41D939F4A1130 /* UIKit.framework */,
  634 + BE846687076AD4570ACE89EC260747A1 /* UMErrorCatch.framework */,
559 635 );
560   - name = iOS;
  636 + name = Frameworks;
561 637 sourceTree = "<group>";
562 638 };
563   - 309ACF9CB8917F8180F0C78892CC4962 /* Targets Support Files */ = {
  639 + 38EFF4314C3C2EB48B86E623B8035A4B /* UMCAnalytics */ = {
564 640 isa = PBXGroup;
565 641 children = (
566   - 8B360F3AAEA56CBA24A5BF774A3EA438 /* Pods-ParentAssistant */,
  642 + 58FD8FF25B60AC3F652B1FDCA8518B99 /* Frameworks */,
567 643 );
568   - name = "Targets Support Files";
  644 + name = UMCAnalytics;
  645 + path = UMCAnalytics;
569 646 sourceTree = "<group>";
570 647 };
571   - 379C6DC552E1DA80D8906E858E0AC082 /* Support Files */ = {
  648 + 3C7A5A0E8FB6FB9142B786013E33F9B1 /* NIMSDK_LITE */ = {
572 649 isa = PBXGroup;
573 650 children = (
574   - 949B16AD13972098A7E9515BECD12B07 /* Info.plist */,
575   - 8B5F0D69498C1F5859BF2C17B56867FB /* XRCarouselView.modulemap */,
576   - 0DDBEBC88C2ECDDC1F9FEEDD60597135 /* XRCarouselView.xcconfig */,
577   - 0B1E77043F562C0C1C7EA7E1A6ACB3AB /* XRCarouselView-dummy.m */,
578   - 5BCD4B8E8C14DE4F430A278F71F7D0FF /* XRCarouselView-prefix.pch */,
579   - 15E9579C0ABD54F28AC5AEF8D3720CDF /* XRCarouselView-umbrella.h */,
  651 + 197A90DE72E89B51A1E8F89461EABB00 /* Frameworks */,
580 652 );
581   - name = "Support Files";
582   - path = "../Target Support Files/XRCarouselView";
  653 + name = NIMSDK_LITE;
  654 + path = NIMSDK_LITE;
583 655 sourceTree = "<group>";
584 656 };
585   - 4AAD33839581BD741A998ECC9FE2E5E5 /* NIMSDK_LITE */ = {
  657 + 3FF5DEC88DC62971403983A6F02247FE /* Toast */ = {
586 658 isa = PBXGroup;
587 659 children = (
588   - 1111045D95E3B71F47B51D0D22DB1391 /* Frameworks */,
  660 + 19FAAAAFAF3A705D1081BDCDC14CAFD6 /* UIView+Toast.h */,
  661 + E533F265C56324D6F57EB232221F586A /* UIView+Toast.m */,
  662 + 2113AB85D8791161623936EC0882CA20 /* Support Files */,
589 663 );
590   - name = NIMSDK_LITE;
591   - path = NIMSDK_LITE;
  664 + name = Toast;
  665 + path = Toast;
592 666 sourceTree = "<group>";
593 667 };
594   - 53592C32D5755FA0EBA2E2189BB0C240 /* Support Files */ = {
  668 + 4957D806F4D44D6387F398B8ECD395C9 /* Support Files */ = {
595 669 isa = PBXGroup;
596 670 children = (
597   - 29D1D8115C0044BF7D69794E14418C7A /* Info.plist */,
598   - 663BA5E48D7A98ECA0F93458EBFE8EAC /* SwiftHash.modulemap */,
599   - 2FC4CFE117A04773D45A722671264254 /* SwiftHash.xcconfig */,
600   - 7A6CCAEC1ECBE477223AEFED858D0220 /* SwiftHash-dummy.m */,
601   - C0F377612A6D5FC9481923FECF0ABDCB /* SwiftHash-prefix.pch */,
602   - 3910287CF67BB6D99BFC32020B92D66B /* SwiftHash-umbrella.h */,
  671 + FF928773E158E70CF5C2B45EA69A4223 /* Info.plist */,
  672 + 8CDA4E6BD46E857912EC5B5F99364A24 /* SwiftHash.modulemap */,
  673 + BF1709B1277BE62B09381A0534563DE2 /* SwiftHash.xcconfig */,
  674 + 448D149E9E2122E63C2D8CDB8E1159CB /* SwiftHash-dummy.m */,
  675 + 5B56491AFD4EC6985EBCCEF221A0FCB8 /* SwiftHash-prefix.pch */,
  676 + 9F2BF6E468482ED7EDAE9AFD6CA2C994 /* SwiftHash-umbrella.h */,
603 677 );
604 678 name = "Support Files";
605 679 path = "../Target Support Files/SwiftHash";
606 680 sourceTree = "<group>";
607 681 };
608   - 5BE98FB8C2E44343DF503A66918F27EC /* Resources */ = {
  682 + 55375898F80E2F483F6A33CD3B40855D /* SwiftHash */ = {
609 683 isa = PBXGroup;
610 684 children = (
611   - A4BC4E64237EB25000D5D76588DDA155 /* XRPlaceholder.png */,
  685 + 9AEE056145338863D7A727ACF1C3657C /* MD5.swift */,
  686 + 9A4D6703A8771BB168130EFB6EAC1C3E /* SHA1.swift */,
  687 + 4957D806F4D44D6387F398B8ECD395C9 /* Support Files */,
612 688 );
613   - name = Resources;
  689 + name = SwiftHash;
  690 + path = SwiftHash;
  691 + sourceTree = "<group>";
  692 + };
  693 + 5763DABFBEC61EF21CE978F465358A89 /* SVProgressHUD */ = {
  694 + isa = PBXGroup;
  695 + children = (
  696 + 6768B1FE2E118D79D8A1613520B9BB23 /* SVIndefiniteAnimatedView.h */,
  697 + 72803D16FA054A0D26C303991C1F2B3C /* SVIndefiniteAnimatedView.m */,
  698 + B6554BE7D86E2DF12BC2CFA630452CA0 /* SVProgressAnimatedView.h */,
  699 + 38EE23882943EDCED73523F643A71C39 /* SVProgressAnimatedView.m */,
  700 + 17403F9FAA48DA29AAEB297BE9AC4D51 /* SVProgressHUD.h */,
  701 + 1DC66067EC016B21D6BC487C409083AF /* SVProgressHUD.m */,
  702 + 20C0A79CAF95E65B981CC5F896E4334C /* SVRadialGradientLayer.h */,
  703 + AE8B2524C105710A1C75E5F3C734796F /* SVRadialGradientLayer.m */,
  704 + 85CC9E6AC38974A790C417FCB9FD89FE /* Resources */,
  705 + C78510EC4A1F228614ECFEB07DFC0275 /* Support Files */,
  706 + );
  707 + name = SVProgressHUD;
  708 + path = SVProgressHUD;
614 709 sourceTree = "<group>";
615 710 };
616   - 6384DC6C6C6E3363DC05585EF792BA5D /* Frameworks */ = {
  711 + 58FD8FF25B60AC3F652B1FDCA8518B99 /* Frameworks */ = {
617 712 isa = PBXGroup;
618 713 children = (
619   - B0D604D5F7372E685834966AFDDE389A /* UMCommon.framework */,
  714 + D124D84D327A6ADF3D01C95E84C09A31 /* UMAnalytics.framework */,
620 715 );
621 716 name = Frameworks;
622 717 sourceTree = "<group>";
623 718 };
624   - 66C5D3E9F052CFD45F58AD57515141C5 /* SDWebImage */ = {
  719 + 59C2933D98416017CC5447DA025532B4 /* UMCErrorCatch */ = {
625 720 isa = PBXGroup;
626 721 children = (
627   - 18B0CF2D79F7A7C943818C18B9B6F07B /* Core */,
628   - 66D77AE34B4841D4AFE2E3E6828C0730 /* Support Files */,
  722 + 3860473AD1F18D1A7419BE2875F3630F /* Frameworks */,
629 723 );
630   - name = SDWebImage;
631   - path = SDWebImage;
  724 + name = UMCErrorCatch;
  725 + path = UMCErrorCatch;
  726 + sourceTree = "<group>";
  727 + };
  728 + 5E15FAEE84F8B146F03BE7AFBAC36661 /* Core */ = {
  729 + isa = PBXGroup;
  730 + children = (
  731 + DB5FF7B561F6F548C82F1FC27FDD72E8 /* NSData+ImageContentType.h */,
  732 + C203E9ABEF394B0009B142EEB9AA64FC /* NSData+ImageContentType.m */,
  733 + 140A2830037A30E45442BA52CBDA1CFC /* SDImageCache.h */,
  734 + 1439A3EA7193042844C3E9C52032677C /* SDImageCache.m */,
  735 + 82C441F9B75595B2F266E6AC40AD7D85 /* SDWebImageCompat.h */,
  736 + 2E90E960C03E09803780D5C47A55A4DB /* SDWebImageCompat.m */,
  737 + 172419A08571955755C3C6FB2044DD9D /* SDWebImageDecoder.h */,
  738 + DF68D7CB4183F99C38744F4985CD422D /* SDWebImageDecoder.m */,
  739 + 9A559DCF61F2E184BC9318C05F05CFF3 /* SDWebImageDownloader.h */,
  740 + 1983D355FD75B9D24A71756509C98131 /* SDWebImageDownloader.m */,
  741 + 33347618F6541AA20F52632F9EA10CA6 /* SDWebImageDownloaderOperation.h */,
  742 + 24C69C342339292A7BBB5C56D2C12D12 /* SDWebImageDownloaderOperation.m */,
  743 + 8A51BA19C89D5E62EDCF2DB9D9FA43E0 /* SDWebImageManager.h */,
  744 + FFCF8A6062658FA349B617C0D75723C2 /* SDWebImageManager.m */,
  745 + B9A38D8C4EC4826AEDC2A52DD0187186 /* SDWebImageOperation.h */,
  746 + E33C2A8A35CA23130F27CFEC0285B7DB /* SDWebImagePrefetcher.h */,
  747 + 6850886B55CE3CD9B901B28690292C5C /* SDWebImagePrefetcher.m */,
  748 + C03FC1A11EE20AB8B6A4B398E11B26B0 /* UIButton+WebCache.h */,
  749 + BE70BDE392E6E92B76047D2DED4ED380 /* UIButton+WebCache.m */,
  750 + E3370B03674C70DABFF75D9D2BA95DCE /* UIImage+GIF.h */,
  751 + B71F8A62F3906657D17D418212E1CBA1 /* UIImage+GIF.m */,
  752 + F6C063D5E492D3ED69858D446C30719E /* UIImage+MultiFormat.h */,
  753 + 469D54339A6D448DF6D1166FDB669676 /* UIImage+MultiFormat.m */,
  754 + 9011EFC1DA29BE6CA0831595062B82ED /* UIImageView+HighlightedWebCache.h */,
  755 + BB7CE29DC4FFF250766240EA8DA973D1 /* UIImageView+HighlightedWebCache.m */,
  756 + 206933D2687A3DC4CD2836F2AEF28A3B /* UIImageView+WebCache.h */,
  757 + 6E2AA0C415512D5F3F34F7A99AA4D14A /* UIImageView+WebCache.m */,
  758 + F638493F2C879E2AF820AE53EA390269 /* UIView+WebCacheOperation.h */,
  759 + 1836357ECED17B3B0BF22256498AA8EE /* UIView+WebCacheOperation.m */,
  760 + );
  761 + name = Core;
632 762 sourceTree = "<group>";
633 763 };
634   - 66D77AE34B4841D4AFE2E3E6828C0730 /* Support Files */ = {
  764 + 630CEDD835E65E88DC71885CD9EF4E92 /* Support Files */ = {
635 765 isa = PBXGroup;
636 766 children = (
637   - 2625D989A9BDC337E06797E454C019E1 /* Info.plist */,
638   - 1EE9BCAC0C0DE60ED1806446F9BFE0F4 /* SDWebImage.modulemap */,
639   - 84670A87CCA67437A39C22AA9283BD91 /* SDWebImage.xcconfig */,
640   - F0A8D9944EB1FF44C20B9A0C78A8DAAD /* SDWebImage-dummy.m */,
641   - 7F864C4D0FF679D371E41C649FFA1116 /* SDWebImage-prefix.pch */,
642   - C6E85B189005269F9658DBF04ABDDB3B /* SDWebImage-umbrella.h */,
  767 + 106A3E63162DD85E6D0BEC1EE1FFDBB4 /* Info.plist */,
  768 + D912920D1BEEB7757AF4BE74E2EC8FA6 /* SDWebImage.modulemap */,
  769 + AC7C53CF4231A641CE59A3CD5991C5C1 /* SDWebImage.xcconfig */,
  770 + FF65E4A0D399571B01517891F0309004 /* SDWebImage-dummy.m */,
  771 + 871C0D1C45FD62FE7B82D8E083C00466 /* SDWebImage-prefix.pch */,
  772 + E786E1AEE51D914333543AC4DEF9B3FB /* SDWebImage-umbrella.h */,
643 773 );
644 774 name = "Support Files";
645 775 path = "../Target Support Files/SDWebImage";
646 776 sourceTree = "<group>";
647 777 };
648   - 7753F5B6115FD8150F44744A19AE16E2 /* Support Files */ = {
  778 + 68471EF420D9A2E724167C5491206AFB /* Resources */ = {
  779 + isa = PBXGroup;
  780 + children = (
  781 + FFEBBEC7D2ED4C631DFB3CBB04E6F926 /* XRPlaceholder.png */,
  782 + );
  783 + name = Resources;
  784 + sourceTree = "<group>";
  785 + };
  786 + 705867264671E4C7B187D746502DAB91 /* Support Files */ = {
649 787 isa = PBXGroup;
650 788 children = (
651   - 65B7E93E3ECE48CD1D929320D52945CE /* Info.plist */,
652   - 4F486ED1724FD618F8FC26EFDC4CAA21 /* SVProgressHUD.modulemap */,
653   - 6B21942FBE159527EB1D0AF00F186213 /* SVProgressHUD.xcconfig */,
654   - 3AA2231406BEAEEC134CE10D52CD56DB /* SVProgressHUD-dummy.m */,
655   - C8272080CA749FC34059ED2BAEA321D6 /* SVProgressHUD-prefix.pch */,
656   - 27E3658ECF520EE5AAAFAB999CB366E0 /* SVProgressHUD-umbrella.h */,
  789 + C62416D612C6BD82B2867F75585C4C56 /* Info.plist */,
  790 + 095F51C7CEE9EF306E13A58319881EFF /* Reachability.modulemap */,
  791 + 4357F76011180D7A84AB5281135FBC76 /* Reachability.xcconfig */,
  792 + 16CC2B704148D354077756FC0880DBCB /* Reachability-dummy.m */,
  793 + 42DB5E77081A2858012F4CBF354A0D27 /* Reachability-prefix.pch */,
  794 + 29BC53491C8D6BA4B81045D6FBBA043C /* Reachability-umbrella.h */,
657 795 );
658 796 name = "Support Files";
659   - path = "../Target Support Files/SVProgressHUD";
  797 + path = "../Target Support Files/Reachability";
660 798 sourceTree = "<group>";
661 799 };
662 800 7DB346D0F39D3F0E887471402A8071AB = {
... ... @@ -664,224 +802,235 @@
664 802 children = (
665 803 93A4A3777CF96A4AAC1D13BA6DCCEA73 /* Podfile */,
666 804 20B56609144CE204DFA8221F742B2D76 /* Frameworks */,
667   - 109916C8440FBFBDE58A23EF8C917A15 /* Pods */,
668   - 14106FE25ADE5F8340F0D3541E98431F /* Products */,
  805 + D7E9034AEAB92F049FD989A2FAE23CD2 /* Pods */,
  806 + 9CE129D1A72CFA1DEF6F85FBF1B37E5B /* Products */,
669 807 309ACF9CB8917F8180F0C78892CC4962 /* Targets Support Files */,
670 808 );
671 809 sourceTree = "<group>";
672 810 };
673   - 82DBAF9917A633FC37DED1B6BBFAA166 /* Toast */ = {
  811 + 85CC9E6AC38974A790C417FCB9FD89FE /* Resources */ = {
674 812 isa = PBXGroup;
675 813 children = (
676   - 37D066AA516CA828ADE8C5F756198AEA /* UIView+Toast.h */,
677   - 64D95CAFC82A27D9FD0489E9C5917506 /* UIView+Toast.m */,
678   - 8548EA209B7907F7E7D739C6125A7201 /* Support Files */,
  814 + 65DEF3C169B8F1241E74C3D5C7DA5A6D /* SVProgressHUD.bundle */,
679 815 );
680   - name = Toast;
681   - path = Toast;
  816 + name = Resources;
682 817 sourceTree = "<group>";
683 818 };
684   - 82E7FF3CBB88FEFAC94738CB39640D22 /* Support Files */ = {
  819 + 8FC2DD334C1E70C1C4C5C8F0FA196151 /* Frameworks */ = {
685 820 isa = PBXGroup;
686 821 children = (
687   - 6C2395AAE8DDF87EF2CDD5D29211D89A /* Alamofire.modulemap */,
688   - 2ADCD0ECDFD3DA272B8B40DC1449DEA8 /* Alamofire.xcconfig */,
689   - EEE5810B54BF020658D7EC89FCA21910 /* Alamofire-dummy.m */,
690   - 853A378EDB52FDEA0832CD66C0C29503 /* Alamofire-prefix.pch */,
691   - 69A1474C3B39F2766E17D5E986933EB5 /* Alamofire-umbrella.h */,
692   - 4C46FD42060CC02ACC3BE8A4C3D84CC3 /* Info.plist */,
  822 + FC9D90B14CC51CAAC698C0623AB16C70 /* SecurityEnvSDK.framework */,
  823 + E058896CA0DFFEF3CCEFAD6FEBA0DB11 /* UTDID.framework */,
693 824 );
694   - name = "Support Files";
695   - path = "../Target Support Files/Alamofire";
  825 + name = Frameworks;
696 826 sourceTree = "<group>";
697 827 };
698   - 8548EA209B7907F7E7D739C6125A7201 /* Support Files */ = {
  828 + 9CE129D1A72CFA1DEF6F85FBF1B37E5B /* Products */ = {
699 829 isa = PBXGroup;
700 830 children = (
701   - 6361621C72F132C8F4AFC3286C48ECB0 /* Info.plist */,
702   - 3D416BE9935C085E823ACB5F9A862658 /* Toast.modulemap */,
703   - 014C7FE920EF761F412D3A3DEF529642 /* Toast.xcconfig */,
704   - 4E8AA01DF603CDFFB4392DC1D67EC114 /* Toast-dummy.m */,
705   - 613B2F2AE29AA652F2FBEB974EB1A044 /* Toast-prefix.pch */,
706   - 5CEEDC06F17E3B2247D0C213D2EEFA22 /* Toast-umbrella.h */,
  831 + E956F54FF76DE5D347505F3AF7694F03 /* Alamofire.framework */,
  832 + DD0E89B8C1439B9F5FDB39EA0232B3EA /* DZNEmptyDataSet.framework */,
  833 + 1719FF827E35476E2C51408C0A9BD81C /* HandyJSON.framework */,
  834 + B88D8470A1A1E4F507B1E9895B074253 /* Pods_ParentAssistant.framework */,
  835 + 5C3FCED1EF014BDAA42DACC871E2516A /* Reachability.framework */,
  836 + CE1C92985D9321104698E3AFAF68594E /* SDWebImage.framework */,
  837 + 33F1F6213579E70C284C8445EBD7DBDD /* SVProgressHUD.framework */,
  838 + 41009B988332564AFC9DAF9C3817C7FA /* SwiftHash.framework */,
  839 + A59A469B0852E07D2428D72E4C62B1E7 /* Toast.framework */,
  840 + 09E993E3E47BE7E80DCFECCEA59937CC /* XRCarouselView.framework */,
707 841 );
708   - name = "Support Files";
709   - path = "../Target Support Files/Toast";
  842 + name = Products;
710 843 sourceTree = "<group>";
711 844 };
712   - 8B360F3AAEA56CBA24A5BF774A3EA438 /* Pods-ParentAssistant */ = {
  845 + A16014AECD4B7D4544FDD04B423C17A2 /* UMCCommon */ = {
713 846 isa = PBXGroup;
714 847 children = (
715   - F5355239148E97AE84932EC31D9FEE81 /* Info.plist */,
716   - FC64335EAD5D5808C3A136A86895FF1C /* Pods-ParentAssistant.modulemap */,
717   - BFA4BD9F7E363414E27BBE0D8C34DA0E /* Pods-ParentAssistant-acknowledgements.markdown */,
718   - 54460F8AA0D68913CCD38F42715D46AF /* Pods-ParentAssistant-acknowledgements.plist */,
719   - 91F8A62C7241C32CA58D0A9995BC8D8C /* Pods-ParentAssistant-dummy.m */,
720   - AB4B2786F6FA607B4DEE59D08AF66F41 /* Pods-ParentAssistant-frameworks.sh */,
721   - F8C7EAD1A973006F196503FDC20AA965 /* Pods-ParentAssistant-resources.sh */,
722   - 8DE1A0CE0E1BB3F08D5A914FF091692D /* Pods-ParentAssistant-umbrella.h */,
723   - BFD6362AE55791FAF76B6B3156C34632 /* Pods-ParentAssistant.debug.xcconfig */,
724   - 696AD0A2FD8EAD1C1AD0CBCE4FAF2CFE /* Pods-ParentAssistant.release.xcconfig */,
  848 + B6AC7F4D4F23329B98C15767E39B6946 /* Frameworks */,
725 849 );
726   - name = "Pods-ParentAssistant";
727   - path = "Target Support Files/Pods-ParentAssistant";
  850 + name = UMCCommon;
  851 + path = UMCCommon;
728 852 sourceTree = "<group>";
729 853 };
730   - 941E74043B396F61F87CAF449C3BF757 /* Support Files */ = {
  854 + A763792383AB084CDE85481D91E26AE3 /* HandyJSON */ = {
731 855 isa = PBXGroup;
732 856 children = (
733   - 2217B31A69A5AD1A2DB901B017739FFE /* Info.plist */,
734   - 1D023DCE549C153E62DBA7710F918932 /* Reachability.modulemap */,
735   - D74BA5E95BF76C0B32981308D5F456D2 /* Reachability.xcconfig */,
736   - 966714BC6CB45F265B89BBD42264D605 /* Reachability-dummy.m */,
737   - 175348099C82E8A3101D8C4C79CEB8A8 /* Reachability-prefix.pch */,
738   - 63DADB2A24F2E24705306C81DE52354C /* Reachability-umbrella.h */,
739   - );
740   - name = "Support Files";
741   - path = "../Target Support Files/Reachability";
  857 + 931ED830C3B0B8852F1479DE61BA997E /* AnyExtensions.swift */,
  858 + F948022D8D1EFEF734A07E6ED4D6CAF9 /* BuiltInBasicType.swift */,
  859 + 6976D41DC0C992EA2F24C3A7358E958F /* BuiltInBridgeType.swift */,
  860 + 1914DA670BEE4BC1F461E88ED1BD7C26 /* Configuration.swift */,
  861 + 64CF5A867496880A0DAE25ED9EC8E512 /* CustomDateFormatTransform.swift */,
  862 + DE92E07FF56795D096246F9059B540CA /* DataTransform.swift */,
  863 + B4EC3094994043023CF3002A63DD6DA4 /* DateFormatterTransform.swift */,
  864 + B0A49BF64844554AA6BC0B49FD9A9BE8 /* DateTransform.swift */,
  865 + 1D374115D56716D6284C03A777CD2BB4 /* Deserializer.swift */,
  866 + 31A74FD90C96035085B5A148E9CBA64C /* EnumTransform.swift */,
  867 + 5C73B5BC3B66F99610607951FEC5FCB3 /* EnumType.swift */,
  868 + C33C9063E8CA60D73EE6050FCF59F433 /* Export.swift */,
  869 + 32115C18B0BD53A5791A3FA797AB85AC /* ExtendCustomBasicType.swift */,
  870 + 54E529332879B58C942DDF16DF5D39B4 /* ExtendCustomModelType.swift */,
  871 + 6B3D43CB0BDA34787F85B2C084FBB09A /* HandyJSON.h */,
  872 + 9889E5067E9A54BAEC05298BBA10F671 /* HelpingMapper.swift */,
  873 + 2E85535E49256ABCDBBB9EA045CE6268 /* HexColorTransform.swift */,
  874 + 7DFB6D55866F4F62D8116993D42B55A8 /* ISO8601DateTransform.swift */,
  875 + 26EF7D93FE7442849AC14571996AC8ED /* Logger.swift */,
  876 + 7D9407543C44ABED0AC48154C76831BE /* Measuable.swift */,
  877 + BC3C517CD17DEB98E878268901D654E8 /* Metadata.swift */,
  878 + 7C5CEE4C10F2E83011011BAE5999B4FD /* NominalType.swift */,
  879 + 2830040C9AF69744EEB45C092E65CA2A /* NSDecimalNumberTransform.swift */,
  880 + E9462CA128209C32EE6E6647C88609D1 /* OtherExtension.swift */,
  881 + 3447CC75BA7C93ED3BF68C2F65392471 /* PointerType.swift */,
  882 + 05BE4EE179BFA37C2F5F3928F9237A1F /* Properties.swift */,
  883 + 81D2AEE4F419083BF22474B240B3D9F6 /* PropertyInfo.swift */,
  884 + 31257A57ECE5DD3A052A547DA8090EF9 /* ReflectionHelper.swift */,
  885 + 39C3C21D34A34F85D09063C7E1255E9D /* Serializer.swift */,
  886 + E4E76CB8696BAB20A617484E4726713B /* Transformable.swift */,
  887 + 72ADD4F0113F0555435EA10BA789F8E2 /* TransformOf.swift */,
  888 + F33461E2C03CDF90E02052B76ADADB01 /* TransformType.swift */,
  889 + 6D24FB404E9541910245BF3E68C5EE73 /* URLTransform.swift */,
  890 + 2A1708CE4EC9BA0CA7B5865FF66228B4 /* Support Files */,
  891 + );
  892 + name = HandyJSON;
  893 + path = HandyJSON;
742 894 sourceTree = "<group>";
743 895 };
744   - AC6A1AED5B21E47027582932E701C9B8 /* Alamofire */ = {
  896 + A87864D22DE2007F4600F7C0E566D95C /* Support Files */ = {
745 897 isa = PBXGroup;
746 898 children = (
747   - AA45B71A66CE0CFB5F154FE85DCBD0A8 /* AFError.swift */,
748   - 4379B9C4BA297F169DA7B36C4689653E /* Alamofire.swift */,
749   - D3E2A6B7148FF5DAE9D54A452036AA3C /* DispatchQueue+Alamofire.swift */,
750   - 1F0F65D1B0A07B2CF87C8597517C1C90 /* MultipartFormData.swift */,
751   - D38B286C5C6AB0DF4A98EEA7B4AEDF20 /* NetworkReachabilityManager.swift */,
752   - 5398B5BBD79B7C43BB660F5770D2564F /* Notifications.swift */,
753   - AAF088CE77A538A96EE53A7EAE65C819 /* ParameterEncoding.swift */,
754   - A3BF0C8FBEA34836F39B7B05178E99A0 /* Request.swift */,
755   - 4A4FCA00FE16408A60CBE0F56CD26E6C /* Response.swift */,
756   - 8D5ECF9767E0DE930DB442E5B0C8654B /* ResponseSerialization.swift */,
757   - D0B50DAE192A6B3640694B61BEA27967 /* Result.swift */,
758   - 664D41C5636B633819EF1887251701BA /* ServerTrustPolicy.swift */,
759   - CEE55910941CC3DB174AE3ED4406AB97 /* SessionDelegate.swift */,
760   - E69012EFA9917EA02DD59B11574B0B26 /* SessionManager.swift */,
761   - 97915E2218908AAF45A7A295511D7ED1 /* TaskDelegate.swift */,
762   - 8CCDB7FC335DFD48FD4C80AC3FA68F61 /* Timeline.swift */,
763   - B8713380D331B1D052F691C2926D0B73 /* Validation.swift */,
764   - 82E7FF3CBB88FEFAC94738CB39640D22 /* Support Files */,
  899 + 2EE1F3AAF4D2513EA3BFF47F019026DC /* Alamofire.modulemap */,
  900 + EA6D07581B965169F4C036A600CF86BB /* Alamofire.xcconfig */,
  901 + BB2B3251E63EE34530FC8A40E441CB23 /* Alamofire-dummy.m */,
  902 + 07E1E2C8AC8B32A86D7C0A576243A070 /* Alamofire-prefix.pch */,
  903 + BF496B88C6E68626DC9D0C9FC152BD3C /* Alamofire-umbrella.h */,
  904 + 820C0B25502D820076E6945A9666E544 /* Info.plist */,
765 905 );
766   - name = Alamofire;
767   - path = Alamofire;
  906 + name = "Support Files";
  907 + path = "../Target Support Files/Alamofire";
768 908 sourceTree = "<group>";
769 909 };
770   - AD183997C52A18B21EDA14372F975903 /* UMCErrorCatch */ = {
  910 + B4BCFF35A95B70F9457A79139DBED331 /* Reachability */ = {
771 911 isa = PBXGroup;
772 912 children = (
773   - 11AEEDA1FBE6316A83A8F2267DFFF9D5 /* Frameworks */,
  913 + 2AD254563DCC20283BB5C0C5B4E57B5C /* Reachability.h */,
  914 + 0969E5011DCC0C421F637E6859279610 /* Reachability.m */,
  915 + 705867264671E4C7B187D746502DAB91 /* Support Files */,
774 916 );
775   - name = UMCErrorCatch;
776   - path = UMCErrorCatch;
  917 + name = Reachability;
  918 + path = Reachability;
777 919 sourceTree = "<group>";
778 920 };
779   - AD3DB0C14AD65E32CA9E67A583FA5214 /* XRCarouselView */ = {
  921 + B6AC7F4D4F23329B98C15767E39B6946 /* Frameworks */ = {
780 922 isa = PBXGroup;
781 923 children = (
782   - 7D11D36568090A022DD3F6835C6C69FA /* XRCarouselView.h */,
783   - C945AFDE3ADE2B40E1665B379B679BEF /* XRCarouselView.m */,
784   - 5BE98FB8C2E44343DF503A66918F27EC /* Resources */,
785   - 379C6DC552E1DA80D8906E858E0AC082 /* Support Files */,
  924 + DF826B20D920C607DF652F2F3EA4C2F8 /* UMCommon.framework */,
786 925 );
787   - name = XRCarouselView;
788   - path = XRCarouselView;
  926 + name = Frameworks;
789 927 sourceTree = "<group>";
790 928 };
791   - B350F6BE51750E43CA055CDC70B291C1 /* Resources */ = {
  929 + BE317C13F71B97F884FEF35459393B25 /* Pods-ParentAssistant */ = {
792 930 isa = PBXGroup;
793 931 children = (
794   - 6E3AD0ED0E4F4D6622F66C870ACAFFF7 /* SVProgressHUD.bundle */,
  932 + 4CD112151D95CAE264BE24BD4513934F /* Info.plist */,
  933 + 074C4EB853C59CB4403154F8FC3B42A1 /* Pods-ParentAssistant.modulemap */,
  934 + BCECD0FF1E6F7E48270234DAF00B07B7 /* Pods-ParentAssistant-acknowledgements.markdown */,
  935 + E1CD65D31F6DC7B830E7132E6B396C30 /* Pods-ParentAssistant-acknowledgements.plist */,
  936 + F6BAADF2798AA6F62DA82FAA92DECB07 /* Pods-ParentAssistant-dummy.m */,
  937 + 587E904615A6336F6F7628482D5BC8D3 /* Pods-ParentAssistant-frameworks.sh */,
  938 + 891E32DCEDF9E73C788DB01E69C7162C /* Pods-ParentAssistant-resources.sh */,
  939 + 1706C196E50CAE9C6DE364B9BA5E9DCB /* Pods-ParentAssistant-umbrella.h */,
  940 + 6EB59F100C77215BCBB4FAD12F0FF358 /* Pods-ParentAssistant.debug.xcconfig */,
  941 + 77EFE064376F26AEED2B1971235A88EF /* Pods-ParentAssistant.release.xcconfig */,
795 942 );
796   - name = Resources;
  943 + name = "Pods-ParentAssistant";
  944 + path = "Target Support Files/Pods-ParentAssistant";
797 945 sourceTree = "<group>";
798 946 };
799   - B4AAFCB2433F981D793D65CA6FF82021 /* Support Files */ = {
  947 + C78510EC4A1F228614ECFEB07DFC0275 /* Support Files */ = {
800 948 isa = PBXGroup;
801 949 children = (
802   - 8D482FB1B64F4B26658DBEE3BADB7FB5 /* DZNEmptyDataSet.modulemap */,
803   - 832F8842DD7AD56024ADF50860D248DD /* DZNEmptyDataSet.xcconfig */,
804   - EDF6D30846728EC3FC632BEE2717B854 /* DZNEmptyDataSet-dummy.m */,
805   - 823E373C9E1DF801CAF18F07B702CE58 /* DZNEmptyDataSet-prefix.pch */,
806   - A714B9425F511B82B9A3122631CA6373 /* DZNEmptyDataSet-umbrella.h */,
807   - 466C6684943DC46AC01E8BC628C3AABE /* Info.plist */,
  950 + B507541260F671D342B11E7250120BBF /* Info.plist */,
  951 + 481FE62B9A76B9C994CED4CDBF22F059 /* SVProgressHUD.modulemap */,
  952 + 43766E6C5ADEB0502C1E3C6049C5D9AC /* SVProgressHUD.xcconfig */,
  953 + 0322584439902B09D766EF9B00C87E2A /* SVProgressHUD-dummy.m */,
  954 + 52C9D81718FDCE850DDAF365FD190B4F /* SVProgressHUD-prefix.pch */,
  955 + 93251EC8BEF89E6A4FA758DA38A1E47A /* SVProgressHUD-umbrella.h */,
808 956 );
809 957 name = "Support Files";
810   - path = "../Target Support Files/DZNEmptyDataSet";
811   - sourceTree = "<group>";
812   - };
813   - C281E31831358A46F6928CAE4586812D /* DZNEmptyDataSet */ = {
814   - isa = PBXGroup;
815   - children = (
816   - D7DAF83037D7D201AB9346520A2726A5 /* UIScrollView+EmptyDataSet.h */,
817   - 9F52BD5E0388C810B3A6F1C4F9269F41 /* UIScrollView+EmptyDataSet.m */,
818   - B4AAFCB2433F981D793D65CA6FF82021 /* Support Files */,
819   - );
820   - name = DZNEmptyDataSet;
821   - path = DZNEmptyDataSet;
  958 + path = "../Target Support Files/SVProgressHUD";
822 959 sourceTree = "<group>";
823 960 };
824   - C51BBA93DF6D41810F4A63C7FC77A9CA /* SVProgressHUD */ = {
  961 + D31A1BD7824CBE1C0596DAB8776011D9 /* XRCarouselView */ = {
825 962 isa = PBXGroup;
826 963 children = (
827   - C926E16FF286A7F032D0AB63AAFDCDD3 /* SVIndefiniteAnimatedView.h */,
828   - 5EBCD8E3D00D44E6D321AA2A3AC6562A /* SVIndefiniteAnimatedView.m */,
829   - 06DC9572FD9048B84A9DABDD03902859 /* SVProgressAnimatedView.h */,
830   - 9308B2D0BFEB8F47D93552968D78B8A9 /* SVProgressAnimatedView.m */,
831   - A4284179411380CDBB6CBA4C12CC2EC1 /* SVProgressHUD.h */,
832   - DEEEBBC02918A14BA4253C35D926FDEC /* SVProgressHUD.m */,
833   - 62A63D7FFB23D16D27F325250A424933 /* SVRadialGradientLayer.h */,
834   - 1F26CF1785555BB027A32714B4554BFF /* SVRadialGradientLayer.m */,
835   - B350F6BE51750E43CA055CDC70B291C1 /* Resources */,
836   - 7753F5B6115FD8150F44744A19AE16E2 /* Support Files */,
  964 + 57342E33349B812F65B6D994EA74E212 /* XRCarouselView.h */,
  965 + A91D08749C812CD6EB281780E69AFED6 /* XRCarouselView.m */,
  966 + 68471EF420D9A2E724167C5491206AFB /* Resources */,
  967 + DEA7E0AFDB9947306F061F7A72D3AE96 /* Support Files */,
837 968 );
838   - name = SVProgressHUD;
839   - path = SVProgressHUD;
  969 + name = XRCarouselView;
  970 + path = XRCarouselView;
840 971 sourceTree = "<group>";
841 972 };
842   - D719D3CA276A3B3B00118A3986DBD72A /* Frameworks */ = {
  973 + D7E9034AEAB92F049FD989A2FAE23CD2 /* Pods */ = {
843 974 isa = PBXGroup;
844 975 children = (
845   - C8C938155886EBE25255B3922289A5FC /* UMAnalytics.framework */,
  976 + 035886489A99DD807583400603AB5019 /* Alamofire */,
  977 + 37C774715FC3CB332E3DBBFF760D1DA7 /* DZNEmptyDataSet */,
  978 + A763792383AB084CDE85481D91E26AE3 /* HandyJSON */,
  979 + 3C7A5A0E8FB6FB9142B786013E33F9B1 /* NIMSDK_LITE */,
  980 + B4BCFF35A95B70F9457A79139DBED331 /* Reachability */,
  981 + 330169F0E739AF701BDEBB5894F8434A /* SDWebImage */,
  982 + 5763DABFBEC61EF21CE978F465358A89 /* SVProgressHUD */,
  983 + 55375898F80E2F483F6A33CD3B40855D /* SwiftHash */,
  984 + 3FF5DEC88DC62971403983A6F02247FE /* Toast */,
  985 + 38EFF4314C3C2EB48B86E623B8035A4B /* UMCAnalytics */,
  986 + A16014AECD4B7D4544FDD04B423C17A2 /* UMCCommon */,
  987 + 59C2933D98416017CC5447DA025532B4 /* UMCErrorCatch */,
  988 + 0AFF261FC6409676B5FE2EA67480CAE4 /* UMCSecurityPlugins */,
  989 + D31A1BD7824CBE1C0596DAB8776011D9 /* XRCarouselView */,
846 990 );
847   - name = Frameworks;
  991 + name = Pods;
848 992 sourceTree = "<group>";
849 993 };
850   - FEBC741685A4D8D113677F5825EA098A /* UMCSecurityPlugins */ = {
  994 + DEA7E0AFDB9947306F061F7A72D3AE96 /* Support Files */ = {
851 995 isa = PBXGroup;
852 996 children = (
853   - 090BAC99083B0A0BEEBBA2D7A8CF5CFC /* Frameworks */,
  997 + DE3D895CEB8D8D9876BA0F9346FF9D69 /* Info.plist */,
  998 + CC9B184B04C60B80BBEF83595DBE8AF4 /* XRCarouselView.modulemap */,
  999 + 87D16ABF7E5F8A01191A86657C5C16BA /* XRCarouselView.xcconfig */,
  1000 + 7437E1C250CA27898AA8815D1117643B /* XRCarouselView-dummy.m */,
  1001 + 60794CE8C2369C4AA061EE9A931DDFED /* XRCarouselView-prefix.pch */,
  1002 + 323A41D79693687F0377B9ACACC90D4A /* XRCarouselView-umbrella.h */,
854 1003 );
855   - name = UMCSecurityPlugins;
856   - path = UMCSecurityPlugins;
  1004 + name = "Support Files";
  1005 + path = "../Target Support Files/XRCarouselView";
857 1006 sourceTree = "<group>";
858 1007 };
859 1008 /* End PBXGroup section */
860 1009  
861 1010 /* Begin PBXHeadersBuildPhase section */
862   - 26B34C15A0721C0433EECE6F931C1278 /* Headers */ = {
  1011 + 0258573883B4A965DF0595F7BF4C1E54 /* Headers */ = {
863 1012 isa = PBXHeadersBuildPhase;
864 1013 buildActionMask = 2147483647;
865 1014 files = (
866   - D6B5D14430A46CD9182ADB0995717D65 /* XRCarouselView-umbrella.h in Headers */,
867   - A125A1BA4F27133D627410509D8F4E28 /* XRCarouselView.h in Headers */,
  1015 + 604E191C52F306436E51253A4A21589C /* SwiftHash-umbrella.h in Headers */,
868 1016 );
869 1017 runOnlyForDeploymentPostprocessing = 0;
870 1018 };
871   - 4E295A95226B0368DF9DFF344E69583C /* Headers */ = {
  1019 + 099CB4115CBACF33248BB7711972A81E /* Headers */ = {
872 1020 isa = PBXHeadersBuildPhase;
873 1021 buildActionMask = 2147483647;
874 1022 files = (
875   - 04596B755DD74FB93D9923CCC76F35D6 /* Toast-umbrella.h in Headers */,
876   - 05216FF5BBAF4DFABD14DFE22EA75577 /* UIView+Toast.h in Headers */,
  1023 + 6A14BBE1A1C5AFF3B9FCFFCC30685E04 /* Toast-umbrella.h in Headers */,
  1024 + 9687BE425798E40CBC52870F8009209D /* UIView+Toast.h in Headers */,
877 1025 );
878 1026 runOnlyForDeploymentPostprocessing = 0;
879 1027 };
880   - 5F15E7A5273ACE20031A0D37D4867812 /* Headers */ = {
  1028 + 16845547CA168475331279C504643647 /* Headers */ = {
881 1029 isa = PBXHeadersBuildPhase;
882 1030 buildActionMask = 2147483647;
883 1031 files = (
884   - 066BF6608588853AA9FB7588BEA94711 /* SwiftHash-umbrella.h in Headers */,
  1032 + 5E9D11BEACC080376EA6F57C6167B34A /* HandyJSON-umbrella.h in Headers */,
  1033 + 895952B7EE442E03D667D9565D8C84F4 /* HandyJSON.h in Headers */,
885 1034 );
886 1035 runOnlyForDeploymentPostprocessing = 0;
887 1036 };
... ... @@ -894,32 +1043,56 @@
894 1043 );
895 1044 runOnlyForDeploymentPostprocessing = 0;
896 1045 };
897   - 97A939DF2D5C40E1C5CE01C9B70E8B4D /* Headers */ = {
  1046 + 6AEF8DFADC67B16F108F1855C41820B4 /* Headers */ = {
  1047 + isa = PBXHeadersBuildPhase;
  1048 + buildActionMask = 2147483647;
  1049 + files = (
  1050 + 46389823D72FA2DA9F4AD34CE119E9FA /* Reachability-umbrella.h in Headers */,
  1051 + 7D23D4A779C42E695BD2EC80114AD9E8 /* Reachability.h in Headers */,
  1052 + );
  1053 + runOnlyForDeploymentPostprocessing = 0;
  1054 + };
  1055 + 7192BFF4C933C30A1A5F53991AABE322 /* Headers */ = {
898 1056 isa = PBXHeadersBuildPhase;
899 1057 buildActionMask = 2147483647;
900 1058 files = (
901   - 6172CA961FBA887E0A208C93DD938C38 /* SVIndefiniteAnimatedView.h in Headers */,
902   - 09BDDB4079D7347692AD9C29F8242C8E /* SVProgressAnimatedView.h in Headers */,
903   - 9B011B2BEB771C25F916F47242C25B68 /* SVProgressHUD-umbrella.h in Headers */,
904   - 15FBFBBDEC417708F98346EF3140A862 /* SVProgressHUD.h in Headers */,
905   - 5F5B1D736E65C60A1C4C195D4BF87D23 /* SVRadialGradientLayer.h in Headers */,
  1059 + 240CD81B9BDAA551B583A82E3618D560 /* XRCarouselView-umbrella.h in Headers */,
  1060 + 4A2F8CD414D57920B53208F0F9A39E34 /* XRCarouselView.h in Headers */,
906 1061 );
907 1062 runOnlyForDeploymentPostprocessing = 0;
908 1063 };
909   - AFF9057CC3906B93A28C0E1DAAECF1F4 /* Headers */ = {
  1064 + 8FE5C58C0325111F27713A45110DDD2F /* Headers */ = {
910 1065 isa = PBXHeadersBuildPhase;
911 1066 buildActionMask = 2147483647;
912 1067 files = (
913   - DDB9C4D70DAC05D5A7E9891762E20D32 /* Pods-ParentAssistant-umbrella.h in Headers */,
  1068 + F206FE65A9D924A3F6ED6221E3BBD35E /* SVIndefiniteAnimatedView.h in Headers */,
  1069 + A95766E9124B13BABFF00CFBEFEC0501 /* SVProgressAnimatedView.h in Headers */,
  1070 + 3C69CE7353282718747615DDA9563510 /* SVProgressHUD-umbrella.h in Headers */,
  1071 + 4A1D23F6526F175FCC2B35539E1B6AD6 /* SVProgressHUD.h in Headers */,
  1072 + 3D342698F0FA2B9391B7B1733D499623 /* SVRadialGradientLayer.h in Headers */,
914 1073 );
915 1074 runOnlyForDeploymentPostprocessing = 0;
916 1075 };
917   - B1B5622937AFF12B07F709BCF464A488 /* Headers */ = {
  1076 + 9842775420762B806F91922E6A2DB1FC /* Headers */ = {
918 1077 isa = PBXHeadersBuildPhase;
919 1078 buildActionMask = 2147483647;
920 1079 files = (
921   - 37CC337C4C2493EC748562C944962491 /* Reachability-umbrella.h in Headers */,
922   - 2D6C9A4529DBC7057800DD7FAC730A6E /* Reachability.h in Headers */,
  1080 + BD14752B5379EAA21AF328A8ABE08A6D /* NSData+ImageContentType.h in Headers */,
  1081 + B2D8BD6984912C60C7A22BF665987A73 /* SDImageCache.h in Headers */,
  1082 + 264463742964367E06060C2E85D3EEF4 /* SDWebImage-umbrella.h in Headers */,
  1083 + 63751EA36B3CCD03BF292C19F6B7C5FE /* SDWebImageCompat.h in Headers */,
  1084 + 05F1082B0C6E40F76E821D67DFAD9AB5 /* SDWebImageDecoder.h in Headers */,
  1085 + 2AB8304BE65678C2043856E0F4AAFC9E /* SDWebImageDownloader.h in Headers */,
  1086 + 0A2126372E9629100B22A44A94E73D71 /* SDWebImageDownloaderOperation.h in Headers */,
  1087 + 82769877C29A8E71221C9918273D3FFF /* SDWebImageManager.h in Headers */,
  1088 + 8C1E8307CFE1A73F290CFCE8818B6123 /* SDWebImageOperation.h in Headers */,
  1089 + EB3F85272BEE4C2EB0321741E8FE4B75 /* SDWebImagePrefetcher.h in Headers */,
  1090 + A17930AC43F712547C2B4B58C1450B82 /* UIButton+WebCache.h in Headers */,
  1091 + E49369FF3BD66698C3B61B8DE9C58DE0 /* UIImage+GIF.h in Headers */,
  1092 + E72FACD066C66E010F4C91956E8E29CB /* UIImage+MultiFormat.h in Headers */,
  1093 + 46749DE4D7ED1863AFF86DFB519EAAD0 /* UIImageView+HighlightedWebCache.h in Headers */,
  1094 + BBF90CAC12DA7C2713DB47B3BE5C898C /* UIImageView+WebCache.h in Headers */,
  1095 + BC9AB82CB1C91977B5C1C96A25A9CA22 /* UIView+WebCacheOperation.h in Headers */,
923 1096 );
924 1097 runOnlyForDeploymentPostprocessing = 0;
925 1098 };
... ... @@ -931,39 +1104,59 @@
931 1104 );
932 1105 runOnlyForDeploymentPostprocessing = 0;
933 1106 };
934   - EA8540641717F61000FC6ECF36FB9A97 /* Headers */ = {
  1107 + CB17733CFD076ED5E2BE1AACA72ED979 /* Headers */ = {
935 1108 isa = PBXHeadersBuildPhase;
936 1109 buildActionMask = 2147483647;
937 1110 files = (
938   - 73FD703165C603047C9FECF8D9117D35 /* NSData+ImageContentType.h in Headers */,
939   - C284F2852F65CD7753BC02265207E8C3 /* SDImageCache.h in Headers */,
940   - 7A066BDAE692137D9FA0ACE5B49BAC01 /* SDWebImage-umbrella.h in Headers */,
941   - 4E00870584A9B7F49A7EA529E2D0FE9D /* SDWebImageCompat.h in Headers */,
942   - DE23AFF819C3CDDC1624B5631F0D4530 /* SDWebImageDecoder.h in Headers */,
943   - 3852C5A03720A4ABC9D455E4C08F585E /* SDWebImageDownloader.h in Headers */,
944   - 939854B3A4CF27AC9DA0E9B7E26C9493 /* SDWebImageDownloaderOperation.h in Headers */,
945   - D6DBA841E832F1262ADB623C43DF0CB5 /* SDWebImageManager.h in Headers */,
946   - 5FD2584401015F48CAA734BBB9ED7DA1 /* SDWebImageOperation.h in Headers */,
947   - 34C16BF65AA3EECD47921D480A7D9D8A /* SDWebImagePrefetcher.h in Headers */,
948   - 5246C4AC46977982EE65340E01575AFD /* UIButton+WebCache.h in Headers */,
949   - 6F880870AF9E7C7E2611D5BC0E05B14C /* UIImage+GIF.h in Headers */,
950   - 10B7C0F6AFC16C5595BF7E6A8C3040F5 /* UIImage+MultiFormat.h in Headers */,
951   - 5057703CD8FFC733FE4BC6A380DFCEC9 /* UIImageView+HighlightedWebCache.h in Headers */,
952   - 53061C97735426494CA927DB6094C126 /* UIImageView+WebCache.h in Headers */,
953   - 408F3C81F249F5A44A49D3EA4F27FC3F /* UIView+WebCacheOperation.h in Headers */,
  1111 + 53926FE56FBF1399E69B9F893ACFBDB1 /* Pods-ParentAssistant-umbrella.h in Headers */,
954 1112 );
955 1113 runOnlyForDeploymentPostprocessing = 0;
956 1114 };
957 1115 /* End PBXHeadersBuildPhase section */
958 1116  
959 1117 /* Begin PBXNativeTarget section */
960   - 85C8F626848DDF730664D24F35CB4BFD /* SwiftHash */ = {
  1118 + 1465651EBBC44AD3276DDE2476CDA450 /* HandyJSON */ = {
  1119 + isa = PBXNativeTarget;
  1120 + buildConfigurationList = 184303B9B5FF90B2017E4D0073BC6423 /* Build configuration list for PBXNativeTarget "HandyJSON" */;
  1121 + buildPhases = (
  1122 + EE0067F8658DBC2B557D26C46C0796CA /* Sources */,
  1123 + 25507DD6D7F1D774CD72F194200A6D77 /* Frameworks */,
  1124 + 16845547CA168475331279C504643647 /* Headers */,
  1125 + );
  1126 + buildRules = (
  1127 + );
  1128 + dependencies = (
  1129 + );
  1130 + name = HandyJSON;
  1131 + productName = HandyJSON;
  1132 + productReference = 1719FF827E35476E2C51408C0A9BD81C /* HandyJSON.framework */;
  1133 + productType = "com.apple.product-type.framework";
  1134 + };
  1135 + 27189F0EDBCA8831C460D0166F6F37A1 /* XRCarouselView */ = {
  1136 + isa = PBXNativeTarget;
  1137 + buildConfigurationList = A4FA017D8C4362BABA6CC461A244CB9D /* Build configuration list for PBXNativeTarget "XRCarouselView" */;
  1138 + buildPhases = (
  1139 + 583C8401A8273215767A6E78D9832675 /* Sources */,
  1140 + 158EE653FB0E0E7AF979010BC3A73E13 /* Frameworks */,
  1141 + 7192BFF4C933C30A1A5F53991AABE322 /* Headers */,
  1142 + F5D5D2A3D9EE0A5E1C3E82E64D42CDD6 /* Resources */,
  1143 + );
  1144 + buildRules = (
  1145 + );
  1146 + dependencies = (
  1147 + );
  1148 + name = XRCarouselView;
  1149 + productName = XRCarouselView;
  1150 + productReference = 09E993E3E47BE7E80DCFECCEA59937CC /* XRCarouselView.framework */;
  1151 + productType = "com.apple.product-type.framework";
  1152 + };
  1153 + 6376DC419EEA98495631602218A4F31B /* SwiftHash */ = {
961 1154 isa = PBXNativeTarget;
962   - buildConfigurationList = 88497F1D92D54ED021B8F3746A720F0C /* Build configuration list for PBXNativeTarget "SwiftHash" */;
  1155 + buildConfigurationList = 3EC2F42A94017DE0B0E897EBD57D8A00 /* Build configuration list for PBXNativeTarget "SwiftHash" */;
963 1156 buildPhases = (
964   - 1527B4A88DA3657071213681D03A1DCD /* Sources */,
965   - 6C5F920EE9CA1FAD466148402D8E2ECC /* Frameworks */,
966   - 5F15E7A5273ACE20031A0D37D4867812 /* Headers */,
  1157 + 1B8C7048A91070CF34162BF979720918 /* Sources */,
  1158 + 2FCA03AB4708FF069C969DAC4ED689A3 /* Frameworks */,
  1159 + 0258573883B4A965DF0595F7BF4C1E54 /* Headers */,
967 1160 );
968 1161 buildRules = (
969 1162 );
... ... @@ -971,7 +1164,7 @@
971 1164 );
972 1165 name = SwiftHash;
973 1166 productName = SwiftHash;
974   - productReference = 97A0541CBA8AB2E3C3D639FB4D4F7C30 /* SwiftHash.framework */;
  1167 + productReference = 41009B988332564AFC9DAF9C3817C7FA /* SwiftHash.framework */;
975 1168 productType = "com.apple.product-type.framework";
976 1169 };
977 1170 88E9EC28B8B46C3631E6B242B50F4442 /* Alamofire */ = {
... ... @@ -988,77 +1181,84 @@
988 1181 );
989 1182 name = Alamofire;
990 1183 productName = Alamofire;
991   - productReference = 262207002737C66ED24D7609E73A2051 /* Alamofire.framework */;
  1184 + productReference = E956F54FF76DE5D347505F3AF7694F03 /* Alamofire.framework */;
992 1185 productType = "com.apple.product-type.framework";
993 1186 };
994   - 946F1690639E5FEB44FCAE735384E88F /* XRCarouselView */ = {
  1187 + 89B82C8C6E32CEBE5ACCD75CDFBECBB1 /* Pods-ParentAssistant */ = {
995 1188 isa = PBXNativeTarget;
996   - buildConfigurationList = 77898DB87F85C25503BBAD3CA03D0882 /* Build configuration list for PBXNativeTarget "XRCarouselView" */;
  1189 + buildConfigurationList = 7700DD54DACF55CC6BABF28FFCAB0179 /* Build configuration list for PBXNativeTarget "Pods-ParentAssistant" */;
997 1190 buildPhases = (
998   - E0E9DB776E725C612436B0BF1513DBC6 /* Sources */,
999   - 107EA7F8B01FBCE0D04F28255869D12A /* Frameworks */,
1000   - 26B34C15A0721C0433EECE6F931C1278 /* Headers */,
1001   - 57E2A75A39D14B066D6F8F0AB3B7E081 /* Resources */,
  1191 + 2A36054EE1FDECDCC35954B655C4C237 /* Sources */,
  1192 + D871485AC7FB55A15B0AC2046B09D62B /* Frameworks */,
  1193 + CB17733CFD076ED5E2BE1AACA72ED979 /* Headers */,
1002 1194 );
1003 1195 buildRules = (
1004 1196 );
1005 1197 dependencies = (
  1198 + 954A722A2C8F32AE6348DAD3CFC2DFE4 /* PBXTargetDependency */,
  1199 + 02C0DEC84BDA70532ADA225A5A2A3304 /* PBXTargetDependency */,
  1200 + 9D4E5F870098A82524B3E139E921E49C /* PBXTargetDependency */,
  1201 + 65D67D71AAC210DB47EAC622F7FA69B9 /* PBXTargetDependency */,
  1202 + 91447221DA6C2FBBF7167A4B974044D2 /* PBXTargetDependency */,
  1203 + BBA7098DD5EA0680F81007C50C09B686 /* PBXTargetDependency */,
  1204 + 59040B7DE59B45C468C5A827B43DF38A /* PBXTargetDependency */,
  1205 + F54C3AB44B6273AFC143292EBABDE7C4 /* PBXTargetDependency */,
  1206 + E82DBF544557B801D7515E53ABBE9C31 /* PBXTargetDependency */,
1006 1207 );
1007   - name = XRCarouselView;
1008   - productName = XRCarouselView;
1009   - productReference = CAC6652AB60C9B58E90EC948DC506CFE /* XRCarouselView.framework */;
  1208 + name = "Pods-ParentAssistant";
  1209 + productName = "Pods-ParentAssistant";
  1210 + productReference = B88D8470A1A1E4F507B1E9895B074253 /* Pods_ParentAssistant.framework */;
1010 1211 productType = "com.apple.product-type.framework";
1011 1212 };
1012   - C05436301E2CFEA58B8664CF237736FD /* SVProgressHUD */ = {
  1213 + 8FA4EA707F3B6CFDACB1C85C722D2E73 /* SDWebImage */ = {
1013 1214 isa = PBXNativeTarget;
1014   - buildConfigurationList = F3EF627C7A0C3D0A7E911E9FA543A303 /* Build configuration list for PBXNativeTarget "SVProgressHUD" */;
  1215 + buildConfigurationList = 4B18822C8ECAB5D855CCE64E74C621EB /* Build configuration list for PBXNativeTarget "SDWebImage" */;
1015 1216 buildPhases = (
1016   - EFE8C4DEBFC03C7AE9574EF2995073A5 /* Sources */,
1017   - 8BC117D0FE1EF633F6330395F0847D00 /* Frameworks */,
1018   - 97A939DF2D5C40E1C5CE01C9B70E8B4D /* Headers */,
1019   - 2A04638C17007059FAD1C5B5D34F0BD0 /* Resources */,
  1217 + 6A550F80A385350F20B576B15B31547E /* Sources */,
  1218 + E44680339038F2F0730AF783DAEFFCB6 /* Frameworks */,
  1219 + 9842775420762B806F91922E6A2DB1FC /* Headers */,
1020 1220 );
1021 1221 buildRules = (
1022 1222 );
1023 1223 dependencies = (
1024 1224 );
1025   - name = SVProgressHUD;
1026   - productName = SVProgressHUD;
1027   - productReference = A3EB6FCDBE4F5542C774BB99AD118E11 /* SVProgressHUD.framework */;
  1225 + name = SDWebImage;
  1226 + productName = SDWebImage;
  1227 + productReference = CE1C92985D9321104698E3AFAF68594E /* SDWebImage.framework */;
1028 1228 productType = "com.apple.product-type.framework";
1029 1229 };
1030   - C0796C4BD50C4D76FBACB035BB862F5E /* SDWebImage */ = {
  1230 + 9A9DDC64623B3F5E6DC7009C16752B95 /* Toast */ = {
1031 1231 isa = PBXNativeTarget;
1032   - buildConfigurationList = D656DFFD54B90A7C0D451CD06977C10D /* Build configuration list for PBXNativeTarget "SDWebImage" */;
  1232 + buildConfigurationList = F11A26D3E7766CBBD820DCD66B6FC321 /* Build configuration list for PBXNativeTarget "Toast" */;
1033 1233 buildPhases = (
1034   - F4EC5D34B4D73CBB124D853714730837 /* Sources */,
1035   - 7E7811DF5774E3C53F7D02BA94F0EBBD /* Frameworks */,
1036   - EA8540641717F61000FC6ECF36FB9A97 /* Headers */,
  1234 + F437D84355ADAD46DE352A42EFA6A50A /* Sources */,
  1235 + 46A2C828E74BB80E0DE22F9A57D702B2 /* Frameworks */,
  1236 + 099CB4115CBACF33248BB7711972A81E /* Headers */,
1037 1237 );
1038 1238 buildRules = (
1039 1239 );
1040 1240 dependencies = (
1041 1241 );
1042   - name = SDWebImage;
1043   - productName = SDWebImage;
1044   - productReference = 84962E4034B194F5248A3F8BA9405E80 /* SDWebImage.framework */;
  1242 + name = Toast;
  1243 + productName = Toast;
  1244 + productReference = A59A469B0852E07D2428D72E4C62B1E7 /* Toast.framework */;
1045 1245 productType = "com.apple.product-type.framework";
1046 1246 };
1047   - C9750678FE15F0A797938AEFBF11D3F7 /* Toast */ = {
  1247 + AAC4087A5A57F5566AB9B54FEBADBC36 /* Reachability */ = {
1048 1248 isa = PBXNativeTarget;
1049   - buildConfigurationList = ADC914ABFB3C05178072EE4B63D42904 /* Build configuration list for PBXNativeTarget "Toast" */;
  1249 + buildConfigurationList = 5AD50E3B4812FC9FAE4961CBCA56B874 /* Build configuration list for PBXNativeTarget "Reachability" */;
1050 1250 buildPhases = (
1051   - DCC2E7425A0E2804398334F74855AD61 /* Sources */,
1052   - 68E86B09CD2A2D450668D8C52BF3A647 /* Frameworks */,
1053   - 4E295A95226B0368DF9DFF344E69583C /* Headers */,
  1251 + FA661C521ABA5EDB2937799E80C70EC2 /* Sources */,
  1252 + EBA80D6B1394A46D45B033AB75657E91 /* Frameworks */,
  1253 + 6AEF8DFADC67B16F108F1855C41820B4 /* Headers */,
1054 1254 );
1055 1255 buildRules = (
1056 1256 );
1057 1257 dependencies = (
1058 1258 );
1059   - name = Toast;
1060   - productName = Toast;
1061   - productReference = 9207677A8967B6C074ADCA740BE816DD /* Toast.framework */;
  1259 + name = Reachability;
  1260 + productName = Reachability;
  1261 + productReference = 5C3FCED1EF014BDAA42DACC871E2516A /* Reachability.framework */;
1062 1262 productType = "com.apple.product-type.framework";
1063 1263 };
1064 1264 D386C75EFD4F03725E4EFB866B600B9A /* DZNEmptyDataSet */ = {
... ... @@ -1075,49 +1275,25 @@
1075 1275 );
1076 1276 name = DZNEmptyDataSet;
1077 1277 productName = DZNEmptyDataSet;
1078   - productReference = 533EA16EA3C399B93C59F7FBDF7BA283 /* DZNEmptyDataSet.framework */;
1079   - productType = "com.apple.product-type.framework";
1080   - };
1081   - EE01DAC248A3AF6D1FE730A61FEC4A75 /* Reachability */ = {
1082   - isa = PBXNativeTarget;
1083   - buildConfigurationList = 17A21E32738F3835B84339E468B53827 /* Build configuration list for PBXNativeTarget "Reachability" */;
1084   - buildPhases = (
1085   - E2D3F7B596F2AFC638635F909CADA2EA /* Sources */,
1086   - 32218FC177E4F2A3866248C60E699AD7 /* Frameworks */,
1087   - B1B5622937AFF12B07F709BCF464A488 /* Headers */,
1088   - );
1089   - buildRules = (
1090   - );
1091   - dependencies = (
1092   - );
1093   - name = Reachability;
1094   - productName = Reachability;
1095   - productReference = E49267BBEEB33D990D1CCA32DB1092BB /* Reachability.framework */;
  1278 + productReference = DD0E89B8C1439B9F5FDB39EA0232B3EA /* DZNEmptyDataSet.framework */;
1096 1279 productType = "com.apple.product-type.framework";
1097 1280 };
1098   - FA60C288339E409F76AC6DB2D0DF5405 /* Pods-ParentAssistant */ = {
  1281 + E55BDEBC8F73D6B7936791D0822F70D6 /* SVProgressHUD */ = {
1099 1282 isa = PBXNativeTarget;
1100   - buildConfigurationList = CB53EC040A49607724400A1AA7DC948E /* Build configuration list for PBXNativeTarget "Pods-ParentAssistant" */;
  1283 + buildConfigurationList = EAC632F2AAB82F696A1E5C88D53A883E /* Build configuration list for PBXNativeTarget "SVProgressHUD" */;
1101 1284 buildPhases = (
1102   - EBFA786FC1331ED0A0ABF818FCE9A7D2 /* Sources */,
1103   - 916C804BC3435443B7462DE561167E4C /* Frameworks */,
1104   - AFF9057CC3906B93A28C0E1DAAECF1F4 /* Headers */,
  1285 + 1965A36474F1989545B82D09EC945BE8 /* Sources */,
  1286 + A115DC87278A31F6B371DA2C1AF9CD02 /* Frameworks */,
  1287 + 8FE5C58C0325111F27713A45110DDD2F /* Headers */,
  1288 + B5487BE37E5D2B17C0D915B89665B3F5 /* Resources */,
1105 1289 );
1106 1290 buildRules = (
1107 1291 );
1108 1292 dependencies = (
1109   - BDABFEF6F8059F458C7CCFD8F0CF632A /* PBXTargetDependency */,
1110   - 46A2F4F654983C7AA8B2CB52A6295B1C /* PBXTargetDependency */,
1111   - 95BD295C769AAD5D62AF24FE3EC77B62 /* PBXTargetDependency */,
1112   - CFE84F843B9FE44F08A11A77A22BD8B0 /* PBXTargetDependency */,
1113   - 281C702B8A89E2DDAF2C15D1D4DD31F4 /* PBXTargetDependency */,
1114   - 811A0A9815842E45A68B26809B111EAF /* PBXTargetDependency */,
1115   - 6FDCE802951237B930F4F328FAF47795 /* PBXTargetDependency */,
1116   - BF38DAD5A80AFD692DE63998B96B8A5D /* PBXTargetDependency */,
1117 1293 );
1118   - name = "Pods-ParentAssistant";
1119   - productName = "Pods-ParentAssistant";
1120   - productReference = 96548887926CE0F889C96ABBA5D9E4E6 /* Pods_ParentAssistant.framework */;
  1294 + name = SVProgressHUD;
  1295 + productName = SVProgressHUD;
  1296 + productReference = 33F1F6213579E70C284C8445EBD7DBDD /* SVProgressHUD.framework */;
1121 1297 productType = "com.apple.product-type.framework";
1122 1298 };
1123 1299 /* End PBXNativeTarget section */
... ... @@ -1126,8 +1302,8 @@
1126 1302 D41D8CD98F00B204E9800998ECF8427E /* Project object */ = {
1127 1303 isa = PBXProject;
1128 1304 attributes = {
1129   - LastSwiftUpdateCheck = 0830;
1130   - LastUpgradeCheck = 0700;
  1305 + LastSwiftUpdateCheck = 0930;
  1306 + LastUpgradeCheck = 0930;
1131 1307 };
1132 1308 buildConfigurationList = 2D8E8EC45A3A1A1D94AE762CB5028504 /* Build configuration list for PBXProject "Pods" */;
1133 1309 compatibilityVersion = "Xcode 3.2";
... ... @@ -1137,50 +1313,71 @@
1137 1313 en,
1138 1314 );
1139 1315 mainGroup = 7DB346D0F39D3F0E887471402A8071AB;
1140   - productRefGroup = 14106FE25ADE5F8340F0D3541E98431F /* Products */;
  1316 + productRefGroup = 9CE129D1A72CFA1DEF6F85FBF1B37E5B /* Products */;
1141 1317 projectDirPath = "";
1142 1318 projectRoot = "";
1143 1319 targets = (
1144 1320 88E9EC28B8B46C3631E6B242B50F4442 /* Alamofire */,
1145 1321 D386C75EFD4F03725E4EFB866B600B9A /* DZNEmptyDataSet */,
1146   - FA60C288339E409F76AC6DB2D0DF5405 /* Pods-ParentAssistant */,
1147   - EE01DAC248A3AF6D1FE730A61FEC4A75 /* Reachability */,
1148   - C0796C4BD50C4D76FBACB035BB862F5E /* SDWebImage */,
1149   - C05436301E2CFEA58B8664CF237736FD /* SVProgressHUD */,
1150   - 85C8F626848DDF730664D24F35CB4BFD /* SwiftHash */,
1151   - C9750678FE15F0A797938AEFBF11D3F7 /* Toast */,
1152   - 946F1690639E5FEB44FCAE735384E88F /* XRCarouselView */,
  1322 + 1465651EBBC44AD3276DDE2476CDA450 /* HandyJSON */,
  1323 + 89B82C8C6E32CEBE5ACCD75CDFBECBB1 /* Pods-ParentAssistant */,
  1324 + AAC4087A5A57F5566AB9B54FEBADBC36 /* Reachability */,
  1325 + 8FA4EA707F3B6CFDACB1C85C722D2E73 /* SDWebImage */,
  1326 + E55BDEBC8F73D6B7936791D0822F70D6 /* SVProgressHUD */,
  1327 + 6376DC419EEA98495631602218A4F31B /* SwiftHash */,
  1328 + 9A9DDC64623B3F5E6DC7009C16752B95 /* Toast */,
  1329 + 27189F0EDBCA8831C460D0166F6F37A1 /* XRCarouselView */,
1153 1330 );
1154 1331 };
1155 1332 /* End PBXProject section */
1156 1333  
1157 1334 /* Begin PBXResourcesBuildPhase section */
1158   - 2A04638C17007059FAD1C5B5D34F0BD0 /* Resources */ = {
  1335 + B5487BE37E5D2B17C0D915B89665B3F5 /* Resources */ = {
1159 1336 isa = PBXResourcesBuildPhase;
1160 1337 buildActionMask = 2147483647;
1161 1338 files = (
1162   - ED8D1958E550537B70551F3306C749A2 /* SVProgressHUD.bundle in Resources */,
  1339 + B575E905525EDD3311A9872A0C4307AD /* SVProgressHUD.bundle in Resources */,
1163 1340 );
1164 1341 runOnlyForDeploymentPostprocessing = 0;
1165 1342 };
1166   - 57E2A75A39D14B066D6F8F0AB3B7E081 /* Resources */ = {
  1343 + F5D5D2A3D9EE0A5E1C3E82E64D42CDD6 /* Resources */ = {
1167 1344 isa = PBXResourcesBuildPhase;
1168 1345 buildActionMask = 2147483647;
1169 1346 files = (
1170   - 59139EE33C29D86F8D3342C0AA6277DF /* XRPlaceholder.png in Resources */,
  1347 + 603F9D0686CE005205D389C1E4C6072A /* XRPlaceholder.png in Resources */,
1171 1348 );
1172 1349 runOnlyForDeploymentPostprocessing = 0;
1173 1350 };
1174 1351 /* End PBXResourcesBuildPhase section */
1175 1352  
1176 1353 /* Begin PBXSourcesBuildPhase section */
1177   - 1527B4A88DA3657071213681D03A1DCD /* Sources */ = {
  1354 + 1965A36474F1989545B82D09EC945BE8 /* Sources */ = {
  1355 + isa = PBXSourcesBuildPhase;
  1356 + buildActionMask = 2147483647;
  1357 + files = (
  1358 + E990A247D80417D4555735E8A8DBD76C /* SVIndefiniteAnimatedView.m in Sources */,
  1359 + 0C4EA35F79172E81D6BF56A2FC856ED8 /* SVProgressAnimatedView.m in Sources */,
  1360 + AB6A5752C4586385EE13F1E6E2E9F40E /* SVProgressHUD-dummy.m in Sources */,
  1361 + F79EC3C3CF96DFC885E8DD247FEF08EB /* SVProgressHUD.m in Sources */,
  1362 + 86930F980FA87FB0CA5E197FEAA7A90C /* SVRadialGradientLayer.m in Sources */,
  1363 + );
  1364 + runOnlyForDeploymentPostprocessing = 0;
  1365 + };
  1366 + 1B8C7048A91070CF34162BF979720918 /* Sources */ = {
  1367 + isa = PBXSourcesBuildPhase;
  1368 + buildActionMask = 2147483647;
  1369 + files = (
  1370 + 794B16FD139EB13BA49AE711C49135BB /* MD5.swift in Sources */,
  1371 + 90B1C77BB42755C3E9AC821A09526E53 /* SHA1.swift in Sources */,
  1372 + D603EC0AAE41B1733F0A4A2FA4381910 /* SwiftHash-dummy.m in Sources */,
  1373 + );
  1374 + runOnlyForDeploymentPostprocessing = 0;
  1375 + };
  1376 + 2A36054EE1FDECDCC35954B655C4C237 /* Sources */ = {
1178 1377 isa = PBXSourcesBuildPhase;
1179 1378 buildActionMask = 2147483647;
1180 1379 files = (
1181   - 53EF76E5E2101DC10FC9D3CFA3F51289 /* MD5.swift in Sources */,
1182   - 45F5792627465D97FBC16B584112B1E5 /* SHA1.swift in Sources */,
1183   - 474CCE9E8E5BAFB27CB9D60794E77308 /* SwiftHash-dummy.m in Sources */,
  1380 + 6694F9A05D6A58C5C27935913BF8AE56 /* Pods-ParentAssistant-dummy.m in Sources */,
1184 1381 );
1185 1382 runOnlyForDeploymentPostprocessing = 0;
1186 1383 };
... ... @@ -1209,141 +1406,167 @@
1209 1406 );
1210 1407 runOnlyForDeploymentPostprocessing = 0;
1211 1408 };
1212   - 82133C5570CF5246210CB90DB6D6558B /* Sources */ = {
1213   - isa = PBXSourcesBuildPhase;
1214   - buildActionMask = 2147483647;
1215   - files = (
1216   - 7C3888324281E325ABBDDB3888D52125 /* DZNEmptyDataSet-dummy.m in Sources */,
1217   - D1341DA6F9B384B99BAB4C367DAD6BEC /* UIScrollView+EmptyDataSet.m in Sources */,
1218   - );
1219   - runOnlyForDeploymentPostprocessing = 0;
1220   - };
1221   - DCC2E7425A0E2804398334F74855AD61 /* Sources */ = {
  1409 + 583C8401A8273215767A6E78D9832675 /* Sources */ = {
1222 1410 isa = PBXSourcesBuildPhase;
1223 1411 buildActionMask = 2147483647;
1224 1412 files = (
1225   - 7DC32EEA0391D5808441FC26B0756C20 /* Toast-dummy.m in Sources */,
1226   - 5976E603A5B7D1E8C18EC9F8BE172E2F /* UIView+Toast.m in Sources */,
  1413 + A8D327620CE1909AD98F6B239AA60018 /* XRCarouselView-dummy.m in Sources */,
  1414 + 3DD10D4C59666719E941A5D0EB5D9582 /* XRCarouselView.m in Sources */,
1227 1415 );
1228 1416 runOnlyForDeploymentPostprocessing = 0;
1229 1417 };
1230   - E0E9DB776E725C612436B0BF1513DBC6 /* Sources */ = {
  1418 + 6A550F80A385350F20B576B15B31547E /* Sources */ = {
1231 1419 isa = PBXSourcesBuildPhase;
1232 1420 buildActionMask = 2147483647;
1233 1421 files = (
1234   - 09EB729363E87B22D55BB6340CC41637 /* XRCarouselView-dummy.m in Sources */,
1235   - D85265953240035D8C14B6B808DBD242 /* XRCarouselView.m in Sources */,
  1422 + 17F8D48B0736FD13AC59D9311C074E9D /* NSData+ImageContentType.m in Sources */,
  1423 + BF901FE99C862B2093FF8E2F71B80F93 /* SDImageCache.m in Sources */,
  1424 + 27813DC0914AD972436022C87454185F /* SDWebImage-dummy.m in Sources */,
  1425 + 7AC13BF7B3C538D94DE7B9D836786514 /* SDWebImageCompat.m in Sources */,
  1426 + D1D5D64268DDC619511D3942F434D7DD /* SDWebImageDecoder.m in Sources */,
  1427 + 1C39565C535B7D534368C5DFB46659B5 /* SDWebImageDownloader.m in Sources */,
  1428 + F1A921225B642E15ED24FB4734240F8F /* SDWebImageDownloaderOperation.m in Sources */,
  1429 + 38BC499B109AEBC02AD6C88AB2ED057D /* SDWebImageManager.m in Sources */,
  1430 + 6C3C226E0B46AFC4FD756BA6C5D9414E /* SDWebImagePrefetcher.m in Sources */,
  1431 + 170AB456D9F3C346DCF407E42D84B5D5 /* UIButton+WebCache.m in Sources */,
  1432 + C633AE7C1F16ADA3AFEE968396B73A4B /* UIImage+GIF.m in Sources */,
  1433 + BD2E6B5D9C3C38D8C1BDCFE0CD6E489D /* UIImage+MultiFormat.m in Sources */,
  1434 + C8D2BE872D244EB549F2EC97069CC4D0 /* UIImageView+HighlightedWebCache.m in Sources */,
  1435 + A7B5C0EE248855B3357C98A489F835D9 /* UIImageView+WebCache.m in Sources */,
  1436 + BA3AB9E7766B254534C357EB523687B6 /* UIView+WebCacheOperation.m in Sources */,
1236 1437 );
1237 1438 runOnlyForDeploymentPostprocessing = 0;
1238 1439 };
1239   - E2D3F7B596F2AFC638635F909CADA2EA /* Sources */ = {
  1440 + 82133C5570CF5246210CB90DB6D6558B /* Sources */ = {
1240 1441 isa = PBXSourcesBuildPhase;
1241 1442 buildActionMask = 2147483647;
1242 1443 files = (
1243   - 06FC1AF6668EDC7A83382E6646F64F1F /* Reachability-dummy.m in Sources */,
1244   - B61BAFC1B1815C7270395B7350001E60 /* Reachability.m in Sources */,
  1444 + 7C3888324281E325ABBDDB3888D52125 /* DZNEmptyDataSet-dummy.m in Sources */,
  1445 + D1341DA6F9B384B99BAB4C367DAD6BEC /* UIScrollView+EmptyDataSet.m in Sources */,
1245 1446 );
1246 1447 runOnlyForDeploymentPostprocessing = 0;
1247 1448 };
1248   - EBFA786FC1331ED0A0ABF818FCE9A7D2 /* Sources */ = {
  1449 + EE0067F8658DBC2B557D26C46C0796CA /* Sources */ = {
1249 1450 isa = PBXSourcesBuildPhase;
1250 1451 buildActionMask = 2147483647;
1251 1452 files = (
1252   - AA113E700658EFC0E6FE3C1F3421A94D /* Pods-ParentAssistant-dummy.m in Sources */,
  1453 + EF57A4E0C40DA6E906B390C69902421F /* AnyExtensions.swift in Sources */,
  1454 + 8444B1FF566FC96D823C154BEE6A4A03 /* BuiltInBasicType.swift in Sources */,
  1455 + 95F6802FB7C748286D6E1D6876552E8C /* BuiltInBridgeType.swift in Sources */,
  1456 + 0369C812B817E442E9BF7B2F561E1AEF /* Configuration.swift in Sources */,
  1457 + 6F4160DEA9816F49351CCEF452CCF00C /* CustomDateFormatTransform.swift in Sources */,
  1458 + 5475A5933FABB5F9999E31020427B182 /* DataTransform.swift in Sources */,
  1459 + 5438E76D8DA2CB8E045DE40226F4A5AB /* DateFormatterTransform.swift in Sources */,
  1460 + 963D3083B43A304CE4A81FF8908C644C /* DateTransform.swift in Sources */,
  1461 + 0ABF85713B5ABC01E4121F8DBCBBD195 /* Deserializer.swift in Sources */,
  1462 + 4A961542DBC3F70E502B854EBB870694 /* EnumTransform.swift in Sources */,
  1463 + 143D0DFED5AF7708744EBDB443F9812D /* EnumType.swift in Sources */,
  1464 + 5C95D2513AAB007D33804F074AC4DD33 /* Export.swift in Sources */,
  1465 + 86EF282C771B9E7A12106ACBE6E820F5 /* ExtendCustomBasicType.swift in Sources */,
  1466 + 69735BB95E8E8111E0CEA96BBA19486A /* ExtendCustomModelType.swift in Sources */,
  1467 + C23D014A840F87E883B74ABEC475E608 /* HandyJSON-dummy.m in Sources */,
  1468 + 242367446F58A71823A8250396E775A3 /* HelpingMapper.swift in Sources */,
  1469 + 4F7B3FA3957DCA2A67546E72117904F9 /* HexColorTransform.swift in Sources */,
  1470 + D425D13A48689CCBEA1C0BE43928A682 /* ISO8601DateTransform.swift in Sources */,
  1471 + 12DE723E9DF6F13F3286874C3A95E30A /* Logger.swift in Sources */,
  1472 + 50424A0F4A3907712832B1FA56C9E2A2 /* Measuable.swift in Sources */,
  1473 + 2B5DF32B1906ED4F0088D37CE08CB2B9 /* Metadata.swift in Sources */,
  1474 + 71770C33C6DBF555B10D0A42E5C034F4 /* NominalType.swift in Sources */,
  1475 + 48F71FC920A4F562FF7ECFD25BD08F2E /* NSDecimalNumberTransform.swift in Sources */,
  1476 + AC2961AE064F12C1AA82F853AE6CF4DE /* OtherExtension.swift in Sources */,
  1477 + EF1B6B88FF4C6BC506B9C85BAEDF034E /* PointerType.swift in Sources */,
  1478 + 9EB13C869EF150828095C94F1FEFC517 /* Properties.swift in Sources */,
  1479 + C906E3F3B8CC5A9E003DB020DFAE7864 /* PropertyInfo.swift in Sources */,
  1480 + A43438F0B3A712FB5739EA173AB6F134 /* ReflectionHelper.swift in Sources */,
  1481 + F8FB51647A0925CDAF63C5DAA23D8B4D /* Serializer.swift in Sources */,
  1482 + 0C11C193B2F9FF679EB214C272C8A480 /* Transformable.swift in Sources */,
  1483 + 545C0FA9073D729E2E8C3EF9678C0DEA /* TransformOf.swift in Sources */,
  1484 + 7931BF35785763872BD11EB65164B1D5 /* TransformType.swift in Sources */,
  1485 + 807283562FFCAF1B2AC3B251ABF34B5A /* URLTransform.swift in Sources */,
1253 1486 );
1254 1487 runOnlyForDeploymentPostprocessing = 0;
1255 1488 };
1256   - EFE8C4DEBFC03C7AE9574EF2995073A5 /* Sources */ = {
  1489 + F437D84355ADAD46DE352A42EFA6A50A /* Sources */ = {
1257 1490 isa = PBXSourcesBuildPhase;
1258 1491 buildActionMask = 2147483647;
1259 1492 files = (
1260   - A6ED7D1E440FE1F9F71E68D78157C5A4 /* SVIndefiniteAnimatedView.m in Sources */,
1261   - 3D7D09B3684687F1CB2C81486753DE7D /* SVProgressAnimatedView.m in Sources */,
1262   - 7EFE471A7CD81911271A1DA42728F35A /* SVProgressHUD-dummy.m in Sources */,
1263   - FC3E75853B92F3FD3AB8C18D107AEAE2 /* SVProgressHUD.m in Sources */,
1264   - 688194DF445E1D90020742A68E0CAED6 /* SVRadialGradientLayer.m in Sources */,
  1493 + CAD7174B4833082EAE9507FB4CDCB07B /* Toast-dummy.m in Sources */,
  1494 + 44E9442A5B676A7E4941C47EB6C49C9F /* UIView+Toast.m in Sources */,
1265 1495 );
1266 1496 runOnlyForDeploymentPostprocessing = 0;
1267 1497 };
1268   - F4EC5D34B4D73CBB124D853714730837 /* Sources */ = {
  1498 + FA661C521ABA5EDB2937799E80C70EC2 /* Sources */ = {
1269 1499 isa = PBXSourcesBuildPhase;
1270 1500 buildActionMask = 2147483647;
1271 1501 files = (
1272   - F3F5FF09765FEE3CFC273A26439E1284 /* NSData+ImageContentType.m in Sources */,
1273   - BE33CE0CCA7C7BFD277EB1E9D4117BBA /* SDImageCache.m in Sources */,
1274   - 381D238C10FFF0A4B0D216200E2AD3C0 /* SDWebImage-dummy.m in Sources */,
1275   - C7A839D10605088C454C7291FB326FBC /* SDWebImageCompat.m in Sources */,
1276   - 98180A7130BC044E70A6C7F0BF140749 /* SDWebImageDecoder.m in Sources */,
1277   - F67226D02B4E38F924014FD70084A0BC /* SDWebImageDownloader.m in Sources */,
1278   - 57C6F19B2C2E4628EF6356CC7F21DBEC /* SDWebImageDownloaderOperation.m in Sources */,
1279   - A1AE1582C0837F6ACE34D1649DE2E355 /* SDWebImageManager.m in Sources */,
1280   - D44B6932FB028CF0C747036478B2464B /* SDWebImagePrefetcher.m in Sources */,
1281   - 23C5B91C7647AFA6B1DCC3C24E6706EA /* UIButton+WebCache.m in Sources */,
1282   - 8455D8B62D30B18316003CAC9C3EB39C /* UIImage+GIF.m in Sources */,
1283   - 34DD027A08EB61A1CB4BEBDF3DDF8AD7 /* UIImage+MultiFormat.m in Sources */,
1284   - C3E716AC285C0E375076E032E3E3EB75 /* UIImageView+HighlightedWebCache.m in Sources */,
1285   - 257E2206CD8D95F6BB1C4128CE0EA520 /* UIImageView+WebCache.m in Sources */,
1286   - BD13ECAC77A5C5C8ABEC67EB5C40C374 /* UIView+WebCacheOperation.m in Sources */,
  1502 + 8B937C355B5CAAEC40B80F24AFA26569 /* Reachability-dummy.m in Sources */,
  1503 + 0203C16E98AD37E5A0C596D1B39C5119 /* Reachability.m in Sources */,
1287 1504 );
1288 1505 runOnlyForDeploymentPostprocessing = 0;
1289 1506 };
1290 1507 /* End PBXSourcesBuildPhase section */
1291 1508  
1292 1509 /* Begin PBXTargetDependency section */
1293   - 281C702B8A89E2DDAF2C15D1D4DD31F4 /* PBXTargetDependency */ = {
1294   - isa = PBXTargetDependency;
1295   - name = SVProgressHUD;
1296   - target = C05436301E2CFEA58B8664CF237736FD /* SVProgressHUD */;
1297   - targetProxy = 6156EA43090B479C8793207CA4E77756 /* PBXContainerItemProxy */;
1298   - };
1299   - 46A2F4F654983C7AA8B2CB52A6295B1C /* PBXTargetDependency */ = {
  1510 + 02C0DEC84BDA70532ADA225A5A2A3304 /* PBXTargetDependency */ = {
1300 1511 isa = PBXTargetDependency;
1301 1512 name = DZNEmptyDataSet;
1302 1513 target = D386C75EFD4F03725E4EFB866B600B9A /* DZNEmptyDataSet */;
1303   - targetProxy = 656151B6E948CAD2F2C92575A816A9DD /* PBXContainerItemProxy */;
  1514 + targetProxy = 40A6BB26078AD6CC3BFED24490AA679C /* PBXContainerItemProxy */;
1304 1515 };
1305   - 6FDCE802951237B930F4F328FAF47795 /* PBXTargetDependency */ = {
1306   - isa = PBXTargetDependency;
1307   - name = Toast;
1308   - target = C9750678FE15F0A797938AEFBF11D3F7 /* Toast */;
1309   - targetProxy = DDD0D71FA6F264724CD1E76877CCA238 /* PBXContainerItemProxy */;
1310   - };
1311   - 811A0A9815842E45A68B26809B111EAF /* PBXTargetDependency */ = {
  1516 + 59040B7DE59B45C468C5A827B43DF38A /* PBXTargetDependency */ = {
1312 1517 isa = PBXTargetDependency;
1313 1518 name = SwiftHash;
1314   - target = 85C8F626848DDF730664D24F35CB4BFD /* SwiftHash */;
1315   - targetProxy = 422B2D815B43329490CF50C572D7A42B /* PBXContainerItemProxy */;
  1519 + target = 6376DC419EEA98495631602218A4F31B /* SwiftHash */;
  1520 + targetProxy = 14508FFAEE6EBD1C2386229671393CCD /* PBXContainerItemProxy */;
1316 1521 };
1317   - 95BD295C769AAD5D62AF24FE3EC77B62 /* PBXTargetDependency */ = {
  1522 + 65D67D71AAC210DB47EAC622F7FA69B9 /* PBXTargetDependency */ = {
1318 1523 isa = PBXTargetDependency;
1319 1524 name = Reachability;
1320   - target = EE01DAC248A3AF6D1FE730A61FEC4A75 /* Reachability */;
1321   - targetProxy = A551BE9DFBB8BC081F9403D9547E440B /* PBXContainerItemProxy */;
  1525 + target = AAC4087A5A57F5566AB9B54FEBADBC36 /* Reachability */;
  1526 + targetProxy = 82A515E1EF9A2DA9422FDE7D829F0650 /* PBXContainerItemProxy */;
  1527 + };
  1528 + 91447221DA6C2FBBF7167A4B974044D2 /* PBXTargetDependency */ = {
  1529 + isa = PBXTargetDependency;
  1530 + name = SDWebImage;
  1531 + target = 8FA4EA707F3B6CFDACB1C85C722D2E73 /* SDWebImage */;
  1532 + targetProxy = 1F4310C891A7C6531B2EC2F44755F5D2 /* PBXContainerItemProxy */;
1322 1533 };
1323   - BDABFEF6F8059F458C7CCFD8F0CF632A /* PBXTargetDependency */ = {
  1534 + 954A722A2C8F32AE6348DAD3CFC2DFE4 /* PBXTargetDependency */ = {
1324 1535 isa = PBXTargetDependency;
1325 1536 name = Alamofire;
1326 1537 target = 88E9EC28B8B46C3631E6B242B50F4442 /* Alamofire */;
1327   - targetProxy = CA0BE3D8D2515655B40335392420B681 /* PBXContainerItemProxy */;
  1538 + targetProxy = A81D9D0AD4D99710674892A4C13CE7C4 /* PBXContainerItemProxy */;
  1539 + };
  1540 + 9D4E5F870098A82524B3E139E921E49C /* PBXTargetDependency */ = {
  1541 + isa = PBXTargetDependency;
  1542 + name = HandyJSON;
  1543 + target = 1465651EBBC44AD3276DDE2476CDA450 /* HandyJSON */;
  1544 + targetProxy = EE8B3E8B9AA89EC765C0E539B4E7EDC7 /* PBXContainerItemProxy */;
  1545 + };
  1546 + BBA7098DD5EA0680F81007C50C09B686 /* PBXTargetDependency */ = {
  1547 + isa = PBXTargetDependency;
  1548 + name = SVProgressHUD;
  1549 + target = E55BDEBC8F73D6B7936791D0822F70D6 /* SVProgressHUD */;
  1550 + targetProxy = 8EE514F180AE8F72FA2CB958642AC2D2 /* PBXContainerItemProxy */;
1328 1551 };
1329   - BF38DAD5A80AFD692DE63998B96B8A5D /* PBXTargetDependency */ = {
  1552 + E82DBF544557B801D7515E53ABBE9C31 /* PBXTargetDependency */ = {
1330 1553 isa = PBXTargetDependency;
1331 1554 name = XRCarouselView;
1332   - target = 946F1690639E5FEB44FCAE735384E88F /* XRCarouselView */;
1333   - targetProxy = 063C49D9C95F79A20503A9A1424E691E /* PBXContainerItemProxy */;
  1555 + target = 27189F0EDBCA8831C460D0166F6F37A1 /* XRCarouselView */;
  1556 + targetProxy = 594A8718DA74EC137A691ED506FE6CCB /* PBXContainerItemProxy */;
1334 1557 };
1335   - CFE84F843B9FE44F08A11A77A22BD8B0 /* PBXTargetDependency */ = {
  1558 + F54C3AB44B6273AFC143292EBABDE7C4 /* PBXTargetDependency */ = {
1336 1559 isa = PBXTargetDependency;
1337   - name = SDWebImage;
1338   - target = C0796C4BD50C4D76FBACB035BB862F5E /* SDWebImage */;
1339   - targetProxy = B62CFB9ED89BE7F383DFD4DA30E09CE3 /* PBXContainerItemProxy */;
  1560 + name = Toast;
  1561 + target = 9A9DDC64623B3F5E6DC7009C16752B95 /* Toast */;
  1562 + targetProxy = 8E7E6D806A10070D238FC81F6BAB4860 /* PBXContainerItemProxy */;
1340 1563 };
1341 1564 /* End PBXTargetDependency section */
1342 1565  
1343 1566 /* Begin XCBuildConfiguration section */
1344   - 119B03EBA7FDF534587EE293428E68E9 /* Release */ = {
  1567 + 1456973998A5F20B4501A680D3794F6A /* Release */ = {
1345 1568 isa = XCBuildConfiguration;
1346   - baseConfigurationReference = 0DDBEBC88C2ECDDC1F9FEEDD60597135 /* XRCarouselView.xcconfig */;
  1569 + baseConfigurationReference = 328C2C3F0CBE7948196AEE1B0FA7B3F4 /* DZNEmptyDataSet.xcconfig */;
1347 1570 buildSettings = {
1348 1571 CODE_SIGN_IDENTITY = "";
1349 1572 "CODE_SIGN_IDENTITY[sdk=appletvos*]" = "";
... ... @@ -1354,13 +1577,13 @@
1354 1577 DYLIB_COMPATIBILITY_VERSION = 1;
1355 1578 DYLIB_CURRENT_VERSION = 1;
1356 1579 DYLIB_INSTALL_NAME_BASE = "@rpath";
1357   - GCC_PREFIX_HEADER = "Target Support Files/XRCarouselView/XRCarouselView-prefix.pch";
1358   - INFOPLIST_FILE = "Target Support Files/XRCarouselView/Info.plist";
  1580 + GCC_PREFIX_HEADER = "Target Support Files/DZNEmptyDataSet/DZNEmptyDataSet-prefix.pch";
  1581 + INFOPLIST_FILE = "Target Support Files/DZNEmptyDataSet/Info.plist";
1359 1582 INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks";
1360 1583 IPHONEOS_DEPLOYMENT_TARGET = 8.0;
1361 1584 LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks";
1362   - MODULEMAP_FILE = "Target Support Files/XRCarouselView/XRCarouselView.modulemap";
1363   - PRODUCT_NAME = XRCarouselView;
  1585 + MODULEMAP_FILE = "Target Support Files/DZNEmptyDataSet/DZNEmptyDataSet.modulemap";
  1586 + PRODUCT_NAME = DZNEmptyDataSet;
1364 1587 SDKROOT = iphoneos;
1365 1588 SKIP_INSTALL = YES;
1366 1589 SWIFT_ACTIVE_COMPILATION_CONDITIONS = "$(inherited) ";
... ... @@ -1372,9 +1595,9 @@
1372 1595 };
1373 1596 name = Release;
1374 1597 };
1375   - 1456973998A5F20B4501A680D3794F6A /* Release */ = {
  1598 + 205040859FD37102CD356142F35D96D4 /* Debug */ = {
1376 1599 isa = XCBuildConfiguration;
1377   - baseConfigurationReference = 832F8842DD7AD56024ADF50860D248DD /* DZNEmptyDataSet.xcconfig */;
  1600 + baseConfigurationReference = 6EB59F100C77215BCBB4FAD12F0FF358 /* Pods-ParentAssistant.debug.xcconfig */;
1378 1601 buildSettings = {
1379 1602 CODE_SIGN_IDENTITY = "";
1380 1603 "CODE_SIGN_IDENTITY[sdk=appletvos*]" = "";
... ... @@ -1385,27 +1608,30 @@
1385 1608 DYLIB_COMPATIBILITY_VERSION = 1;
1386 1609 DYLIB_CURRENT_VERSION = 1;
1387 1610 DYLIB_INSTALL_NAME_BASE = "@rpath";
1388   - GCC_PREFIX_HEADER = "Target Support Files/DZNEmptyDataSet/DZNEmptyDataSet-prefix.pch";
1389   - INFOPLIST_FILE = "Target Support Files/DZNEmptyDataSet/Info.plist";
  1611 + INFOPLIST_FILE = "Target Support Files/Pods-ParentAssistant/Info.plist";
1390 1612 INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks";
1391   - IPHONEOS_DEPLOYMENT_TARGET = 8.0;
  1613 + IPHONEOS_DEPLOYMENT_TARGET = 9.0;
1392 1614 LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks";
1393   - MODULEMAP_FILE = "Target Support Files/DZNEmptyDataSet/DZNEmptyDataSet.modulemap";
1394   - PRODUCT_NAME = DZNEmptyDataSet;
  1615 + MACH_O_TYPE = staticlib;
  1616 + MODULEMAP_FILE = "Target Support Files/Pods-ParentAssistant/Pods-ParentAssistant.modulemap";
  1617 + OTHER_LDFLAGS = "";
  1618 + OTHER_LIBTOOLFLAGS = "";
  1619 + PODS_ROOT = "$(SRCROOT)";
  1620 + PRODUCT_BUNDLE_IDENTIFIER = "org.cocoapods.${PRODUCT_NAME:rfc1034identifier}";
  1621 + PRODUCT_NAME = Pods_ParentAssistant;
1395 1622 SDKROOT = iphoneos;
1396 1623 SKIP_INSTALL = YES;
1397   - SWIFT_ACTIVE_COMPILATION_CONDITIONS = "$(inherited) ";
1398   - SWIFT_VERSION = 4.0;
  1624 + SWIFT_ACTIVE_COMPILATION_CONDITIONS = DEBUG;
  1625 + SWIFT_OPTIMIZATION_LEVEL = "-Onone";
1399 1626 TARGETED_DEVICE_FAMILY = "1,2";
1400   - VALIDATE_PRODUCT = YES;
1401 1627 VERSIONING_SYSTEM = "apple-generic";
1402 1628 VERSION_INFO_PREFIX = "";
1403 1629 };
1404   - name = Release;
  1630 + name = Debug;
1405 1631 };
1406   - 17F5C718DB216A6DC180FBCC46408D74 /* Release */ = {
  1632 + 20A33051E49990EF2F5D75016374151E /* Release */ = {
1407 1633 isa = XCBuildConfiguration;
1408   - baseConfigurationReference = 014C7FE920EF761F412D3A3DEF529642 /* Toast.xcconfig */;
  1634 + baseConfigurationReference = 4357F76011180D7A84AB5281135FBC76 /* Reachability.xcconfig */;
1409 1635 buildSettings = {
1410 1636 CODE_SIGN_IDENTITY = "";
1411 1637 "CODE_SIGN_IDENTITY[sdk=appletvos*]" = "";
... ... @@ -1416,13 +1642,13 @@
1416 1642 DYLIB_COMPATIBILITY_VERSION = 1;
1417 1643 DYLIB_CURRENT_VERSION = 1;
1418 1644 DYLIB_INSTALL_NAME_BASE = "@rpath";
1419   - GCC_PREFIX_HEADER = "Target Support Files/Toast/Toast-prefix.pch";
1420   - INFOPLIST_FILE = "Target Support Files/Toast/Info.plist";
  1645 + GCC_PREFIX_HEADER = "Target Support Files/Reachability/Reachability-prefix.pch";
  1646 + INFOPLIST_FILE = "Target Support Files/Reachability/Info.plist";
1421 1647 INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks";
1422 1648 IPHONEOS_DEPLOYMENT_TARGET = 8.0;
1423 1649 LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks";
1424   - MODULEMAP_FILE = "Target Support Files/Toast/Toast.modulemap";
1425   - PRODUCT_NAME = Toast;
  1650 + MODULEMAP_FILE = "Target Support Files/Reachability/Reachability.modulemap";
  1651 + PRODUCT_NAME = Reachability;
1426 1652 SDKROOT = iphoneos;
1427 1653 SKIP_INSTALL = YES;
1428 1654 SWIFT_ACTIVE_COMPILATION_CONDITIONS = "$(inherited) ";
... ... @@ -1434,9 +1660,9 @@
1434 1660 };
1435 1661 name = Release;
1436 1662 };
1437   - 1B61C55D15B9275F78EF98CF41835A8C /* Release */ = {
  1663 + 215A480FCE0C128FA2F4C2A2882BBE23 /* Debug */ = {
1438 1664 isa = XCBuildConfiguration;
1439   - baseConfigurationReference = 2FC4CFE117A04773D45A722671264254 /* SwiftHash.xcconfig */;
  1665 + baseConfigurationReference = 3813A00560E8E809CF107BA098D6A666 /* Toast.xcconfig */;
1440 1666 buildSettings = {
1441 1667 CODE_SIGN_IDENTITY = "";
1442 1668 "CODE_SIGN_IDENTITY[sdk=appletvos*]" = "";
... ... @@ -1447,28 +1673,26 @@
1447 1673 DYLIB_COMPATIBILITY_VERSION = 1;
1448 1674 DYLIB_CURRENT_VERSION = 1;
1449 1675 DYLIB_INSTALL_NAME_BASE = "@rpath";
1450   - GCC_PREFIX_HEADER = "Target Support Files/SwiftHash/SwiftHash-prefix.pch";
1451   - INFOPLIST_FILE = "Target Support Files/SwiftHash/Info.plist";
  1676 + GCC_PREFIX_HEADER = "Target Support Files/Toast/Toast-prefix.pch";
  1677 + INFOPLIST_FILE = "Target Support Files/Toast/Info.plist";
1452 1678 INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks";
1453 1679 IPHONEOS_DEPLOYMENT_TARGET = 8.0;
1454 1680 LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks";
1455   - MODULEMAP_FILE = "Target Support Files/SwiftHash/SwiftHash.modulemap";
1456   - PRODUCT_NAME = SwiftHash;
  1681 + MODULEMAP_FILE = "Target Support Files/Toast/Toast.modulemap";
  1682 + PRODUCT_NAME = Toast;
1457 1683 SDKROOT = iphoneos;
1458 1684 SKIP_INSTALL = YES;
1459 1685 SWIFT_ACTIVE_COMPILATION_CONDITIONS = "$(inherited) ";
1460   - SWIFT_OPTIMIZATION_LEVEL = "-Owholemodule";
1461 1686 SWIFT_VERSION = 4.0;
1462 1687 TARGETED_DEVICE_FAMILY = "1,2";
1463   - VALIDATE_PRODUCT = YES;
1464 1688 VERSIONING_SYSTEM = "apple-generic";
1465 1689 VERSION_INFO_PREFIX = "";
1466 1690 };
1467   - name = Release;
  1691 + name = Debug;
1468 1692 };
1469   - 221A0B364FEF2A67B9ED8643E3C8B6C2 /* Debug */ = {
  1693 + 2386F65ABDB52652A92CBEE14C73BA07 /* Debug */ = {
1470 1694 isa = XCBuildConfiguration;
1471   - baseConfigurationReference = D74BA5E95BF76C0B32981308D5F456D2 /* Reachability.xcconfig */;
  1695 + baseConfigurationReference = 87D16ABF7E5F8A01191A86657C5C16BA /* XRCarouselView.xcconfig */;
1472 1696 buildSettings = {
1473 1697 CODE_SIGN_IDENTITY = "";
1474 1698 "CODE_SIGN_IDENTITY[sdk=appletvos*]" = "";
... ... @@ -1479,13 +1703,13 @@
1479 1703 DYLIB_COMPATIBILITY_VERSION = 1;
1480 1704 DYLIB_CURRENT_VERSION = 1;
1481 1705 DYLIB_INSTALL_NAME_BASE = "@rpath";
1482   - GCC_PREFIX_HEADER = "Target Support Files/Reachability/Reachability-prefix.pch";
1483   - INFOPLIST_FILE = "Target Support Files/Reachability/Info.plist";
  1706 + GCC_PREFIX_HEADER = "Target Support Files/XRCarouselView/XRCarouselView-prefix.pch";
  1707 + INFOPLIST_FILE = "Target Support Files/XRCarouselView/Info.plist";
1484 1708 INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks";
1485 1709 IPHONEOS_DEPLOYMENT_TARGET = 8.0;
1486 1710 LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks";
1487   - MODULEMAP_FILE = "Target Support Files/Reachability/Reachability.modulemap";
1488   - PRODUCT_NAME = Reachability;
  1711 + MODULEMAP_FILE = "Target Support Files/XRCarouselView/XRCarouselView.modulemap";
  1712 + PRODUCT_NAME = XRCarouselView;
1489 1713 SDKROOT = iphoneos;
1490 1714 SKIP_INSTALL = YES;
1491 1715 SWIFT_ACTIVE_COMPILATION_CONDITIONS = "$(inherited) ";
... ... @@ -1496,9 +1720,9 @@
1496 1720 };
1497 1721 name = Debug;
1498 1722 };
1499   - 3509F94219F8C0180F27F969FE4896C7 /* Release */ = {
  1723 + 2399E3FF594AB08E0DAC9484992C0F91 /* Release */ = {
1500 1724 isa = XCBuildConfiguration;
1501   - baseConfigurationReference = 84670A87CCA67437A39C22AA9283BD91 /* SDWebImage.xcconfig */;
  1725 + baseConfigurationReference = BF1709B1277BE62B09381A0534563DE2 /* SwiftHash.xcconfig */;
1502 1726 buildSettings = {
1503 1727 CODE_SIGN_IDENTITY = "";
1504 1728 "CODE_SIGN_IDENTITY[sdk=appletvos*]" = "";
... ... @@ -1509,16 +1733,17 @@
1509 1733 DYLIB_COMPATIBILITY_VERSION = 1;
1510 1734 DYLIB_CURRENT_VERSION = 1;
1511 1735 DYLIB_INSTALL_NAME_BASE = "@rpath";
1512   - GCC_PREFIX_HEADER = "Target Support Files/SDWebImage/SDWebImage-prefix.pch";
1513   - INFOPLIST_FILE = "Target Support Files/SDWebImage/Info.plist";
  1736 + GCC_PREFIX_HEADER = "Target Support Files/SwiftHash/SwiftHash-prefix.pch";
  1737 + INFOPLIST_FILE = "Target Support Files/SwiftHash/Info.plist";
1514 1738 INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks";
1515 1739 IPHONEOS_DEPLOYMENT_TARGET = 8.0;
1516 1740 LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks";
1517   - MODULEMAP_FILE = "Target Support Files/SDWebImage/SDWebImage.modulemap";
1518   - PRODUCT_NAME = SDWebImage;
  1741 + MODULEMAP_FILE = "Target Support Files/SwiftHash/SwiftHash.modulemap";
  1742 + PRODUCT_NAME = SwiftHash;
1519 1743 SDKROOT = iphoneos;
1520 1744 SKIP_INSTALL = YES;
1521 1745 SWIFT_ACTIVE_COMPILATION_CONDITIONS = "$(inherited) ";
  1746 + SWIFT_OPTIMIZATION_LEVEL = "-Owholemodule";
1522 1747 SWIFT_VERSION = 4.0;
1523 1748 TARGETED_DEVICE_FAMILY = "1,2";
1524 1749 VALIDATE_PRODUCT = YES;
... ... @@ -1527,9 +1752,67 @@
1527 1752 };
1528 1753 name = Release;
1529 1754 };
1530   - 4765818A1328458B489A71A25C6DD2FD /* Release */ = {
  1755 + 26F954BA177A9A46FFFD4E23ED11D67A /* Release */ = {
1531 1756 isa = XCBuildConfiguration;
1532   - baseConfigurationReference = D74BA5E95BF76C0B32981308D5F456D2 /* Reachability.xcconfig */;
  1757 + buildSettings = {
  1758 + ALWAYS_SEARCH_USER_PATHS = NO;
  1759 + CLANG_ANALYZER_NONNULL = YES;
  1760 + CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE;
  1761 + CLANG_CXX_LANGUAGE_STANDARD = "gnu++14";
  1762 + CLANG_CXX_LIBRARY = "libc++";
  1763 + CLANG_ENABLE_MODULES = YES;
  1764 + CLANG_ENABLE_OBJC_ARC = YES;
  1765 + CLANG_ENABLE_OBJC_WEAK = YES;
  1766 + CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES;
  1767 + CLANG_WARN_BOOL_CONVERSION = YES;
  1768 + CLANG_WARN_COMMA = YES;
  1769 + CLANG_WARN_CONSTANT_CONVERSION = YES;
  1770 + CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES;
  1771 + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
  1772 + CLANG_WARN_DOCUMENTATION_COMMENTS = YES;
  1773 + CLANG_WARN_EMPTY_BODY = YES;
  1774 + CLANG_WARN_ENUM_CONVERSION = YES;
  1775 + CLANG_WARN_INFINITE_RECURSION = YES;
  1776 + CLANG_WARN_INT_CONVERSION = YES;
  1777 + CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES;
  1778 + CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES;
  1779 + CLANG_WARN_OBJC_LITERAL_CONVERSION = YES;
  1780 + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
  1781 + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES;
  1782 + CLANG_WARN_STRICT_PROTOTYPES = YES;
  1783 + CLANG_WARN_SUSPICIOUS_MOVE = YES;
  1784 + CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE;
  1785 + CLANG_WARN_UNREACHABLE_CODE = YES;
  1786 + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
  1787 + CODE_SIGNING_REQUIRED = NO;
  1788 + COPY_PHASE_STRIP = NO;
  1789 + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
  1790 + ENABLE_NS_ASSERTIONS = NO;
  1791 + ENABLE_STRICT_OBJC_MSGSEND = YES;
  1792 + GCC_C_LANGUAGE_STANDARD = gnu11;
  1793 + GCC_NO_COMMON_BLOCKS = YES;
  1794 + GCC_PREPROCESSOR_DEFINITIONS = (
  1795 + "POD_CONFIGURATION_RELEASE=1",
  1796 + "$(inherited)",
  1797 + );
  1798 + GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
  1799 + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
  1800 + GCC_WARN_UNDECLARED_SELECTOR = YES;
  1801 + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
  1802 + GCC_WARN_UNUSED_FUNCTION = YES;
  1803 + GCC_WARN_UNUSED_VARIABLE = YES;
  1804 + IPHONEOS_DEPLOYMENT_TARGET = 9.0;
  1805 + MTL_ENABLE_DEBUG_INFO = NO;
  1806 + PRODUCT_NAME = "$(TARGET_NAME)";
  1807 + PROVISIONING_PROFILE_SPECIFIER = NO_SIGNING/;
  1808 + STRIP_INSTALLED_PRODUCT = NO;
  1809 + SYMROOT = "${SRCROOT}/../build";
  1810 + };
  1811 + name = Release;
  1812 + };
  1813 + 3D9BEB881A70984931EB7B52EB42D89C /* Debug */ = {
  1814 + isa = XCBuildConfiguration;
  1815 + baseConfigurationReference = 43766E6C5ADEB0502C1E3C6049C5D9AC /* SVProgressHUD.xcconfig */;
1533 1816 buildSettings = {
1534 1817 CODE_SIGN_IDENTITY = "";
1535 1818 "CODE_SIGN_IDENTITY[sdk=appletvos*]" = "";
... ... @@ -1540,27 +1823,26 @@
1540 1823 DYLIB_COMPATIBILITY_VERSION = 1;
1541 1824 DYLIB_CURRENT_VERSION = 1;
1542 1825 DYLIB_INSTALL_NAME_BASE = "@rpath";
1543   - GCC_PREFIX_HEADER = "Target Support Files/Reachability/Reachability-prefix.pch";
1544   - INFOPLIST_FILE = "Target Support Files/Reachability/Info.plist";
  1826 + GCC_PREFIX_HEADER = "Target Support Files/SVProgressHUD/SVProgressHUD-prefix.pch";
  1827 + INFOPLIST_FILE = "Target Support Files/SVProgressHUD/Info.plist";
1545 1828 INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks";
1546 1829 IPHONEOS_DEPLOYMENT_TARGET = 8.0;
1547 1830 LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks";
1548   - MODULEMAP_FILE = "Target Support Files/Reachability/Reachability.modulemap";
1549   - PRODUCT_NAME = Reachability;
  1831 + MODULEMAP_FILE = "Target Support Files/SVProgressHUD/SVProgressHUD.modulemap";
  1832 + PRODUCT_NAME = SVProgressHUD;
1550 1833 SDKROOT = iphoneos;
1551 1834 SKIP_INSTALL = YES;
1552 1835 SWIFT_ACTIVE_COMPILATION_CONDITIONS = "$(inherited) ";
1553 1836 SWIFT_VERSION = 4.0;
1554 1837 TARGETED_DEVICE_FAMILY = "1,2";
1555   - VALIDATE_PRODUCT = YES;
1556 1838 VERSIONING_SYSTEM = "apple-generic";
1557 1839 VERSION_INFO_PREFIX = "";
1558 1840 };
1559   - name = Release;
  1841 + name = Debug;
1560 1842 };
1561   - 5639E296250E6E2ACB29FD06E52425B5 /* Debug */ = {
  1843 + 51211605D5BBC568B59C86BC410917A5 /* Release */ = {
1562 1844 isa = XCBuildConfiguration;
1563   - baseConfigurationReference = 6B21942FBE159527EB1D0AF00F186213 /* SVProgressHUD.xcconfig */;
  1845 + baseConfigurationReference = 43766E6C5ADEB0502C1E3C6049C5D9AC /* SVProgressHUD.xcconfig */;
1564 1846 buildSettings = {
1565 1847 CODE_SIGN_IDENTITY = "";
1566 1848 "CODE_SIGN_IDENTITY[sdk=appletvos*]" = "";
... ... @@ -1583,14 +1865,15 @@
1583 1865 SWIFT_ACTIVE_COMPILATION_CONDITIONS = "$(inherited) ";
1584 1866 SWIFT_VERSION = 4.0;
1585 1867 TARGETED_DEVICE_FAMILY = "1,2";
  1868 + VALIDATE_PRODUCT = YES;
1586 1869 VERSIONING_SYSTEM = "apple-generic";
1587 1870 VERSION_INFO_PREFIX = "";
1588 1871 };
1589   - name = Debug;
  1872 + name = Release;
1590 1873 };
1591   - 678C04D92DAB53DB9148EF9D86B284F6 /* Release */ = {
  1874 + 601BFB40515FF6C016B5850C2D905027 /* Release */ = {
1592 1875 isa = XCBuildConfiguration;
1593   - baseConfigurationReference = 696AD0A2FD8EAD1C1AD0CBCE4FAF2CFE /* Pods-ParentAssistant.release.xcconfig */;
  1876 + baseConfigurationReference = 77EFE064376F26AEED2B1971235A88EF /* Pods-ParentAssistant.release.xcconfig */;
1594 1877 buildSettings = {
1595 1878 CODE_SIGN_IDENTITY = "";
1596 1879 "CODE_SIGN_IDENTITY[sdk=appletvos*]" = "";
... ... @@ -1624,7 +1907,7 @@
1624 1907 };
1625 1908 68EC31FD5ED5128B6144732DB7C7AEAA /* Release */ = {
1626 1909 isa = XCBuildConfiguration;
1627   - baseConfigurationReference = 2ADCD0ECDFD3DA272B8B40DC1449DEA8 /* Alamofire.xcconfig */;
  1910 + baseConfigurationReference = EA6D07581B965169F4C036A600CF86BB /* Alamofire.xcconfig */;
1628 1911 buildSettings = {
1629 1912 CODE_SIGN_IDENTITY = "";
1630 1913 "CODE_SIGN_IDENTITY[sdk=appletvos*]" = "";
... ... @@ -1654,64 +1937,39 @@
1654 1937 };
1655 1938 name = Release;
1656 1939 };
1657   - 6F9224530522DD3C735EC96CF142642E /* Release */ = {
  1940 + 793948A7CE88FCA234DA7EFD60D4178E /* Debug */ = {
1658 1941 isa = XCBuildConfiguration;
  1942 + baseConfigurationReference = 328C2C3F0CBE7948196AEE1B0FA7B3F4 /* DZNEmptyDataSet.xcconfig */;
1659 1943 buildSettings = {
1660   - ALWAYS_SEARCH_USER_PATHS = NO;
1661   - CLANG_ANALYZER_NONNULL = YES;
1662   - CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE;
1663   - CLANG_CXX_LANGUAGE_STANDARD = "gnu++14";
1664   - CLANG_CXX_LIBRARY = "libc++";
1665   - CLANG_ENABLE_MODULES = YES;
1666   - CLANG_ENABLE_OBJC_ARC = YES;
1667   - CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES;
1668   - CLANG_WARN_BOOL_CONVERSION = YES;
1669   - CLANG_WARN_COMMA = YES;
1670   - CLANG_WARN_CONSTANT_CONVERSION = YES;
1671   - CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
1672   - CLANG_WARN_DOCUMENTATION_COMMENTS = YES;
1673   - CLANG_WARN_EMPTY_BODY = YES;
1674   - CLANG_WARN_ENUM_CONVERSION = YES;
1675   - CLANG_WARN_INFINITE_RECURSION = YES;
1676   - CLANG_WARN_INT_CONVERSION = YES;
1677   - CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES;
1678   - CLANG_WARN_OBJC_LITERAL_CONVERSION = YES;
1679   - CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
1680   - CLANG_WARN_RANGE_LOOP_ANALYSIS = YES;
1681   - CLANG_WARN_STRICT_PROTOTYPES = YES;
1682   - CLANG_WARN_SUSPICIOUS_MOVE = YES;
1683   - CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE;
1684   - CLANG_WARN_UNREACHABLE_CODE = YES;
1685   - CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
1686   - CODE_SIGNING_REQUIRED = NO;
1687   - COPY_PHASE_STRIP = NO;
1688   - DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
1689   - ENABLE_NS_ASSERTIONS = NO;
1690   - ENABLE_STRICT_OBJC_MSGSEND = YES;
1691   - GCC_C_LANGUAGE_STANDARD = gnu11;
1692   - GCC_NO_COMMON_BLOCKS = YES;
1693   - GCC_PREPROCESSOR_DEFINITIONS = (
1694   - "POD_CONFIGURATION_RELEASE=1",
1695   - "$(inherited)",
1696   - );
1697   - GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
1698   - GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
1699   - GCC_WARN_UNDECLARED_SELECTOR = YES;
1700   - GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
1701   - GCC_WARN_UNUSED_FUNCTION = YES;
1702   - GCC_WARN_UNUSED_VARIABLE = YES;
1703   - IPHONEOS_DEPLOYMENT_TARGET = 9.0;
1704   - MTL_ENABLE_DEBUG_INFO = NO;
1705   - PRODUCT_NAME = "$(TARGET_NAME)";
1706   - PROVISIONING_PROFILE_SPECIFIER = NO_SIGNING/;
1707   - STRIP_INSTALLED_PRODUCT = NO;
1708   - SYMROOT = "${SRCROOT}/../build";
  1944 + CODE_SIGN_IDENTITY = "";
  1945 + "CODE_SIGN_IDENTITY[sdk=appletvos*]" = "";
  1946 + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "";
  1947 + "CODE_SIGN_IDENTITY[sdk=watchos*]" = "";
  1948 + CURRENT_PROJECT_VERSION = 1;
  1949 + DEFINES_MODULE = YES;
  1950 + DYLIB_COMPATIBILITY_VERSION = 1;
  1951 + DYLIB_CURRENT_VERSION = 1;
  1952 + DYLIB_INSTALL_NAME_BASE = "@rpath";
  1953 + GCC_PREFIX_HEADER = "Target Support Files/DZNEmptyDataSet/DZNEmptyDataSet-prefix.pch";
  1954 + INFOPLIST_FILE = "Target Support Files/DZNEmptyDataSet/Info.plist";
  1955 + INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks";
  1956 + IPHONEOS_DEPLOYMENT_TARGET = 8.0;
  1957 + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks";
  1958 + MODULEMAP_FILE = "Target Support Files/DZNEmptyDataSet/DZNEmptyDataSet.modulemap";
  1959 + PRODUCT_NAME = DZNEmptyDataSet;
  1960 + SDKROOT = iphoneos;
  1961 + SKIP_INSTALL = YES;
  1962 + SWIFT_ACTIVE_COMPILATION_CONDITIONS = "$(inherited) ";
  1963 + SWIFT_VERSION = 4.0;
  1964 + TARGETED_DEVICE_FAMILY = "1,2";
  1965 + VERSIONING_SYSTEM = "apple-generic";
  1966 + VERSION_INFO_PREFIX = "";
1709 1967 };
1710   - name = Release;
  1968 + name = Debug;
1711 1969 };
1712   - 70B017BA24763D88E2D321961592B543 /* Debug */ = {
  1970 + 8056BF0CAA9260FAFEF0C71AA27ED129 /* Debug */ = {
1713 1971 isa = XCBuildConfiguration;
1714   - baseConfigurationReference = 84670A87CCA67437A39C22AA9283BD91 /* SDWebImage.xcconfig */;
  1972 + baseConfigurationReference = EA6D07581B965169F4C036A600CF86BB /* Alamofire.xcconfig */;
1715 1973 buildSettings = {
1716 1974 CODE_SIGN_IDENTITY = "";
1717 1975 "CODE_SIGN_IDENTITY[sdk=appletvos*]" = "";
... ... @@ -1722,16 +1980,17 @@
1722 1980 DYLIB_COMPATIBILITY_VERSION = 1;
1723 1981 DYLIB_CURRENT_VERSION = 1;
1724 1982 DYLIB_INSTALL_NAME_BASE = "@rpath";
1725   - GCC_PREFIX_HEADER = "Target Support Files/SDWebImage/SDWebImage-prefix.pch";
1726   - INFOPLIST_FILE = "Target Support Files/SDWebImage/Info.plist";
  1983 + GCC_PREFIX_HEADER = "Target Support Files/Alamofire/Alamofire-prefix.pch";
  1984 + INFOPLIST_FILE = "Target Support Files/Alamofire/Info.plist";
1727 1985 INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks";
1728   - IPHONEOS_DEPLOYMENT_TARGET = 8.0;
  1986 + IPHONEOS_DEPLOYMENT_TARGET = 9.0;
1729 1987 LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks";
1730   - MODULEMAP_FILE = "Target Support Files/SDWebImage/SDWebImage.modulemap";
1731   - PRODUCT_NAME = SDWebImage;
  1988 + MODULEMAP_FILE = "Target Support Files/Alamofire/Alamofire.modulemap";
  1989 + PRODUCT_NAME = Alamofire;
1732 1990 SDKROOT = iphoneos;
1733 1991 SKIP_INSTALL = YES;
1734 1992 SWIFT_ACTIVE_COMPILATION_CONDITIONS = "$(inherited) ";
  1993 + SWIFT_OPTIMIZATION_LEVEL = "-Onone";
1735 1994 SWIFT_VERSION = 4.0;
1736 1995 TARGETED_DEVICE_FAMILY = "1,2";
1737 1996 VERSIONING_SYSTEM = "apple-generic";
... ... @@ -1739,9 +1998,9 @@
1739 1998 };
1740 1999 name = Debug;
1741 2000 };
1742   - 793948A7CE88FCA234DA7EFD60D4178E /* Debug */ = {
  2001 + 83018C328C9420EE22D60BC4FC7C261D /* Debug */ = {
1743 2002 isa = XCBuildConfiguration;
1744   - baseConfigurationReference = 832F8842DD7AD56024ADF50860D248DD /* DZNEmptyDataSet.xcconfig */;
  2003 + baseConfigurationReference = 4357F76011180D7A84AB5281135FBC76 /* Reachability.xcconfig */;
1745 2004 buildSettings = {
1746 2005 CODE_SIGN_IDENTITY = "";
1747 2006 "CODE_SIGN_IDENTITY[sdk=appletvos*]" = "";
... ... @@ -1752,13 +2011,13 @@
1752 2011 DYLIB_COMPATIBILITY_VERSION = 1;
1753 2012 DYLIB_CURRENT_VERSION = 1;
1754 2013 DYLIB_INSTALL_NAME_BASE = "@rpath";
1755   - GCC_PREFIX_HEADER = "Target Support Files/DZNEmptyDataSet/DZNEmptyDataSet-prefix.pch";
1756   - INFOPLIST_FILE = "Target Support Files/DZNEmptyDataSet/Info.plist";
  2014 + GCC_PREFIX_HEADER = "Target Support Files/Reachability/Reachability-prefix.pch";
  2015 + INFOPLIST_FILE = "Target Support Files/Reachability/Info.plist";
1757 2016 INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks";
1758 2017 IPHONEOS_DEPLOYMENT_TARGET = 8.0;
1759 2018 LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks";
1760   - MODULEMAP_FILE = "Target Support Files/DZNEmptyDataSet/DZNEmptyDataSet.modulemap";
1761   - PRODUCT_NAME = DZNEmptyDataSet;
  2019 + MODULEMAP_FILE = "Target Support Files/Reachability/Reachability.modulemap";
  2020 + PRODUCT_NAME = Reachability;
1762 2021 SDKROOT = iphoneos;
1763 2022 SKIP_INSTALL = YES;
1764 2023 SWIFT_ACTIVE_COMPILATION_CONDITIONS = "$(inherited) ";
... ... @@ -1769,9 +2028,9 @@
1769 2028 };
1770 2029 name = Debug;
1771 2030 };
1772   - 7CD39388495620BAFBA6C3BF0F0911B1 /* Debug */ = {
  2031 + 8C67AFC68147451E22867E04C2F78264 /* Debug */ = {
1773 2032 isa = XCBuildConfiguration;
1774   - baseConfigurationReference = 2FC4CFE117A04773D45A722671264254 /* SwiftHash.xcconfig */;
  2033 + baseConfigurationReference = AC7C53CF4231A641CE59A3CD5991C5C1 /* SDWebImage.xcconfig */;
1775 2034 buildSettings = {
1776 2035 CODE_SIGN_IDENTITY = "";
1777 2036 "CODE_SIGN_IDENTITY[sdk=appletvos*]" = "";
... ... @@ -1782,17 +2041,16 @@
1782 2041 DYLIB_COMPATIBILITY_VERSION = 1;
1783 2042 DYLIB_CURRENT_VERSION = 1;
1784 2043 DYLIB_INSTALL_NAME_BASE = "@rpath";
1785   - GCC_PREFIX_HEADER = "Target Support Files/SwiftHash/SwiftHash-prefix.pch";
1786   - INFOPLIST_FILE = "Target Support Files/SwiftHash/Info.plist";
  2044 + GCC_PREFIX_HEADER = "Target Support Files/SDWebImage/SDWebImage-prefix.pch";
  2045 + INFOPLIST_FILE = "Target Support Files/SDWebImage/Info.plist";
1787 2046 INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks";
1788 2047 IPHONEOS_DEPLOYMENT_TARGET = 8.0;
1789 2048 LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks";
1790   - MODULEMAP_FILE = "Target Support Files/SwiftHash/SwiftHash.modulemap";
1791   - PRODUCT_NAME = SwiftHash;
  2049 + MODULEMAP_FILE = "Target Support Files/SDWebImage/SDWebImage.modulemap";
  2050 + PRODUCT_NAME = SDWebImage;
1792 2051 SDKROOT = iphoneos;
1793 2052 SKIP_INSTALL = YES;
1794 2053 SWIFT_ACTIVE_COMPILATION_CONDITIONS = "$(inherited) ";
1795   - SWIFT_OPTIMIZATION_LEVEL = "-Onone";
1796 2054 SWIFT_VERSION = 4.0;
1797 2055 TARGETED_DEVICE_FAMILY = "1,2";
1798 2056 VERSIONING_SYSTEM = "apple-generic";
... ... @@ -1800,9 +2058,9 @@
1800 2058 };
1801 2059 name = Debug;
1802 2060 };
1803   - 8056BF0CAA9260FAFEF0C71AA27ED129 /* Debug */ = {
  2061 + A8F73C58AFDC02718271B7541ABA62EF /* Release */ = {
1804 2062 isa = XCBuildConfiguration;
1805   - baseConfigurationReference = 2ADCD0ECDFD3DA272B8B40DC1449DEA8 /* Alamofire.xcconfig */;
  2063 + baseConfigurationReference = 3813A00560E8E809CF107BA098D6A666 /* Toast.xcconfig */;
1806 2064 buildSettings = {
1807 2065 CODE_SIGN_IDENTITY = "";
1808 2066 "CODE_SIGN_IDENTITY[sdk=appletvos*]" = "";
... ... @@ -1813,27 +2071,27 @@
1813 2071 DYLIB_COMPATIBILITY_VERSION = 1;
1814 2072 DYLIB_CURRENT_VERSION = 1;
1815 2073 DYLIB_INSTALL_NAME_BASE = "@rpath";
1816   - GCC_PREFIX_HEADER = "Target Support Files/Alamofire/Alamofire-prefix.pch";
1817   - INFOPLIST_FILE = "Target Support Files/Alamofire/Info.plist";
  2074 + GCC_PREFIX_HEADER = "Target Support Files/Toast/Toast-prefix.pch";
  2075 + INFOPLIST_FILE = "Target Support Files/Toast/Info.plist";
1818 2076 INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks";
1819   - IPHONEOS_DEPLOYMENT_TARGET = 9.0;
  2077 + IPHONEOS_DEPLOYMENT_TARGET = 8.0;
1820 2078 LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks";
1821   - MODULEMAP_FILE = "Target Support Files/Alamofire/Alamofire.modulemap";
1822   - PRODUCT_NAME = Alamofire;
  2079 + MODULEMAP_FILE = "Target Support Files/Toast/Toast.modulemap";
  2080 + PRODUCT_NAME = Toast;
1823 2081 SDKROOT = iphoneos;
1824 2082 SKIP_INSTALL = YES;
1825 2083 SWIFT_ACTIVE_COMPILATION_CONDITIONS = "$(inherited) ";
1826   - SWIFT_OPTIMIZATION_LEVEL = "-Onone";
1827 2084 SWIFT_VERSION = 4.0;
1828 2085 TARGETED_DEVICE_FAMILY = "1,2";
  2086 + VALIDATE_PRODUCT = YES;
1829 2087 VERSIONING_SYSTEM = "apple-generic";
1830 2088 VERSION_INFO_PREFIX = "";
1831 2089 };
1832   - name = Debug;
  2090 + name = Release;
1833 2091 };
1834   - 92283DF0957D7261B38B97C42B648912 /* Debug */ = {
  2092 + C86EB4C0D42E7F340560C1573F6E52EF /* Release */ = {
1835 2093 isa = XCBuildConfiguration;
1836   - baseConfigurationReference = BFD6362AE55791FAF76B6B3156C34632 /* Pods-ParentAssistant.debug.xcconfig */;
  2094 + baseConfigurationReference = AC7C53CF4231A641CE59A3CD5991C5C1 /* SDWebImage.xcconfig */;
1837 2095 buildSettings = {
1838 2096 CODE_SIGN_IDENTITY = "";
1839 2097 "CODE_SIGN_IDENTITY[sdk=appletvos*]" = "";
... ... @@ -1844,30 +2102,27 @@
1844 2102 DYLIB_COMPATIBILITY_VERSION = 1;
1845 2103 DYLIB_CURRENT_VERSION = 1;
1846 2104 DYLIB_INSTALL_NAME_BASE = "@rpath";
1847   - INFOPLIST_FILE = "Target Support Files/Pods-ParentAssistant/Info.plist";
  2105 + GCC_PREFIX_HEADER = "Target Support Files/SDWebImage/SDWebImage-prefix.pch";
  2106 + INFOPLIST_FILE = "Target Support Files/SDWebImage/Info.plist";
1848 2107 INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks";
1849   - IPHONEOS_DEPLOYMENT_TARGET = 9.0;
  2108 + IPHONEOS_DEPLOYMENT_TARGET = 8.0;
1850 2109 LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks";
1851   - MACH_O_TYPE = staticlib;
1852   - MODULEMAP_FILE = "Target Support Files/Pods-ParentAssistant/Pods-ParentAssistant.modulemap";
1853   - OTHER_LDFLAGS = "";
1854   - OTHER_LIBTOOLFLAGS = "";
1855   - PODS_ROOT = "$(SRCROOT)";
1856   - PRODUCT_BUNDLE_IDENTIFIER = "org.cocoapods.${PRODUCT_NAME:rfc1034identifier}";
1857   - PRODUCT_NAME = Pods_ParentAssistant;
  2110 + MODULEMAP_FILE = "Target Support Files/SDWebImage/SDWebImage.modulemap";
  2111 + PRODUCT_NAME = SDWebImage;
1858 2112 SDKROOT = iphoneos;
1859 2113 SKIP_INSTALL = YES;
1860   - SWIFT_ACTIVE_COMPILATION_CONDITIONS = DEBUG;
1861   - SWIFT_OPTIMIZATION_LEVEL = "-Onone";
  2114 + SWIFT_ACTIVE_COMPILATION_CONDITIONS = "$(inherited) ";
  2115 + SWIFT_VERSION = 4.0;
1862 2116 TARGETED_DEVICE_FAMILY = "1,2";
  2117 + VALIDATE_PRODUCT = YES;
1863 2118 VERSIONING_SYSTEM = "apple-generic";
1864 2119 VERSION_INFO_PREFIX = "";
1865 2120 };
1866   - name = Debug;
  2121 + name = Release;
1867 2122 };
1868   - B4CAFAECC8ABEDE5FA3875262655C603 /* Debug */ = {
  2123 + DAE72FF2FFE8166FA938EB388ABBC2B5 /* Debug */ = {
1869 2124 isa = XCBuildConfiguration;
1870   - baseConfigurationReference = 014C7FE920EF761F412D3A3DEF529642 /* Toast.xcconfig */;
  2125 + baseConfigurationReference = 6F37849A9F05E24161217B664F776F12 /* HandyJSON.xcconfig */;
1871 2126 buildSettings = {
1872 2127 CODE_SIGN_IDENTITY = "";
1873 2128 "CODE_SIGN_IDENTITY[sdk=appletvos*]" = "";
... ... @@ -1878,16 +2133,17 @@
1878 2133 DYLIB_COMPATIBILITY_VERSION = 1;
1879 2134 DYLIB_CURRENT_VERSION = 1;
1880 2135 DYLIB_INSTALL_NAME_BASE = "@rpath";
1881   - GCC_PREFIX_HEADER = "Target Support Files/Toast/Toast-prefix.pch";
1882   - INFOPLIST_FILE = "Target Support Files/Toast/Info.plist";
  2136 + GCC_PREFIX_HEADER = "Target Support Files/HandyJSON/HandyJSON-prefix.pch";
  2137 + INFOPLIST_FILE = "Target Support Files/HandyJSON/Info.plist";
1883 2138 INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks";
1884 2139 IPHONEOS_DEPLOYMENT_TARGET = 8.0;
1885 2140 LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks";
1886   - MODULEMAP_FILE = "Target Support Files/Toast/Toast.modulemap";
1887   - PRODUCT_NAME = Toast;
  2141 + MODULEMAP_FILE = "Target Support Files/HandyJSON/HandyJSON.modulemap";
  2142 + PRODUCT_NAME = HandyJSON;
1888 2143 SDKROOT = iphoneos;
1889 2144 SKIP_INSTALL = YES;
1890 2145 SWIFT_ACTIVE_COMPILATION_CONDITIONS = "$(inherited) ";
  2146 + SWIFT_OPTIMIZATION_LEVEL = "-Onone";
1891 2147 SWIFT_VERSION = 4.0;
1892 2148 TARGETED_DEVICE_FAMILY = "1,2";
1893 2149 VERSIONING_SYSTEM = "apple-generic";
... ... @@ -1895,7 +2151,7 @@
1895 2151 };
1896 2152 name = Debug;
1897 2153 };
1898   - B57951D085A1B98A97F8A1062A5E5C5B /* Debug */ = {
  2154 + E2BF6D6731C31DE69900B7B24E6F0445 /* Debug */ = {
1899 2155 isa = XCBuildConfiguration;
1900 2156 buildSettings = {
1901 2157 ALWAYS_SEARCH_USER_PATHS = NO;
... ... @@ -1905,10 +2161,12 @@
1905 2161 CLANG_CXX_LIBRARY = "libc++";
1906 2162 CLANG_ENABLE_MODULES = YES;
1907 2163 CLANG_ENABLE_OBJC_ARC = YES;
  2164 + CLANG_ENABLE_OBJC_WEAK = YES;
1908 2165 CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES;
1909 2166 CLANG_WARN_BOOL_CONVERSION = YES;
1910 2167 CLANG_WARN_COMMA = YES;
1911 2168 CLANG_WARN_CONSTANT_CONVERSION = YES;
  2169 + CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES;
1912 2170 CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
1913 2171 CLANG_WARN_DOCUMENTATION_COMMENTS = YES;
1914 2172 CLANG_WARN_EMPTY_BODY = YES;
... ... @@ -1916,6 +2174,7 @@
1916 2174 CLANG_WARN_INFINITE_RECURSION = YES;
1917 2175 CLANG_WARN_INT_CONVERSION = YES;
1918 2176 CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES;
  2177 + CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES;
1919 2178 CLANG_WARN_OBJC_LITERAL_CONVERSION = YES;
1920 2179 CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
1921 2180 CLANG_WARN_RANGE_LOOP_ANALYSIS = YES;
... ... @@ -1955,9 +2214,9 @@
1955 2214 };
1956 2215 name = Debug;
1957 2216 };
1958   - BE36C1A612B2B72D14853C0199AD1E78 /* Debug */ = {
  2217 + ECB5142D4DABB45B92371C51B3EB61F8 /* Release */ = {
1959 2218 isa = XCBuildConfiguration;
1960   - baseConfigurationReference = 0DDBEBC88C2ECDDC1F9FEEDD60597135 /* XRCarouselView.xcconfig */;
  2219 + baseConfigurationReference = 6F37849A9F05E24161217B664F776F12 /* HandyJSON.xcconfig */;
1961 2220 buildSettings = {
1962 2221 CODE_SIGN_IDENTITY = "";
1963 2222 "CODE_SIGN_IDENTITY[sdk=appletvos*]" = "";
... ... @@ -1968,16 +2227,49 @@
1968 2227 DYLIB_COMPATIBILITY_VERSION = 1;
1969 2228 DYLIB_CURRENT_VERSION = 1;
1970 2229 DYLIB_INSTALL_NAME_BASE = "@rpath";
1971   - GCC_PREFIX_HEADER = "Target Support Files/XRCarouselView/XRCarouselView-prefix.pch";
1972   - INFOPLIST_FILE = "Target Support Files/XRCarouselView/Info.plist";
  2230 + GCC_PREFIX_HEADER = "Target Support Files/HandyJSON/HandyJSON-prefix.pch";
  2231 + INFOPLIST_FILE = "Target Support Files/HandyJSON/Info.plist";
1973 2232 INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks";
1974 2233 IPHONEOS_DEPLOYMENT_TARGET = 8.0;
1975 2234 LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks";
1976   - MODULEMAP_FILE = "Target Support Files/XRCarouselView/XRCarouselView.modulemap";
1977   - PRODUCT_NAME = XRCarouselView;
  2235 + MODULEMAP_FILE = "Target Support Files/HandyJSON/HandyJSON.modulemap";
  2236 + PRODUCT_NAME = HandyJSON;
1978 2237 SDKROOT = iphoneos;
1979 2238 SKIP_INSTALL = YES;
1980 2239 SWIFT_ACTIVE_COMPILATION_CONDITIONS = "$(inherited) ";
  2240 + SWIFT_OPTIMIZATION_LEVEL = "-Owholemodule";
  2241 + SWIFT_VERSION = 4.0;
  2242 + TARGETED_DEVICE_FAMILY = "1,2";
  2243 + VALIDATE_PRODUCT = YES;
  2244 + VERSIONING_SYSTEM = "apple-generic";
  2245 + VERSION_INFO_PREFIX = "";
  2246 + };
  2247 + name = Release;
  2248 + };
  2249 + EF0EA84D551F1A4F1232F2684FE87AD0 /* Debug */ = {
  2250 + isa = XCBuildConfiguration;
  2251 + baseConfigurationReference = BF1709B1277BE62B09381A0534563DE2 /* SwiftHash.xcconfig */;
  2252 + buildSettings = {
  2253 + CODE_SIGN_IDENTITY = "";
  2254 + "CODE_SIGN_IDENTITY[sdk=appletvos*]" = "";
  2255 + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "";
  2256 + "CODE_SIGN_IDENTITY[sdk=watchos*]" = "";
  2257 + CURRENT_PROJECT_VERSION = 1;
  2258 + DEFINES_MODULE = YES;
  2259 + DYLIB_COMPATIBILITY_VERSION = 1;
  2260 + DYLIB_CURRENT_VERSION = 1;
  2261 + DYLIB_INSTALL_NAME_BASE = "@rpath";
  2262 + GCC_PREFIX_HEADER = "Target Support Files/SwiftHash/SwiftHash-prefix.pch";
  2263 + INFOPLIST_FILE = "Target Support Files/SwiftHash/Info.plist";
  2264 + INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks";
  2265 + IPHONEOS_DEPLOYMENT_TARGET = 8.0;
  2266 + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks";
  2267 + MODULEMAP_FILE = "Target Support Files/SwiftHash/SwiftHash.modulemap";
  2268 + PRODUCT_NAME = SwiftHash;
  2269 + SDKROOT = iphoneos;
  2270 + SKIP_INSTALL = YES;
  2271 + SWIFT_ACTIVE_COMPILATION_CONDITIONS = "$(inherited) ";
  2272 + SWIFT_OPTIMIZATION_LEVEL = "-Onone";
1981 2273 SWIFT_VERSION = 4.0;
1982 2274 TARGETED_DEVICE_FAMILY = "1,2";
1983 2275 VERSIONING_SYSTEM = "apple-generic";
... ... @@ -1985,9 +2277,9 @@
1985 2277 };
1986 2278 name = Debug;
1987 2279 };
1988   - E904E666B743307368C6892CE2A626D1 /* Release */ = {
  2280 + F9A4D3888E109251ADAC60180BC1B773 /* Release */ = {
1989 2281 isa = XCBuildConfiguration;
1990   - baseConfigurationReference = 6B21942FBE159527EB1D0AF00F186213 /* SVProgressHUD.xcconfig */;
  2282 + baseConfigurationReference = 87D16ABF7E5F8A01191A86657C5C16BA /* XRCarouselView.xcconfig */;
1991 2283 buildSettings = {
1992 2284 CODE_SIGN_IDENTITY = "";
1993 2285 "CODE_SIGN_IDENTITY[sdk=appletvos*]" = "";
... ... @@ -1998,13 +2290,13 @@
1998 2290 DYLIB_COMPATIBILITY_VERSION = 1;
1999 2291 DYLIB_CURRENT_VERSION = 1;
2000 2292 DYLIB_INSTALL_NAME_BASE = "@rpath";
2001   - GCC_PREFIX_HEADER = "Target Support Files/SVProgressHUD/SVProgressHUD-prefix.pch";
2002   - INFOPLIST_FILE = "Target Support Files/SVProgressHUD/Info.plist";
  2293 + GCC_PREFIX_HEADER = "Target Support Files/XRCarouselView/XRCarouselView-prefix.pch";
  2294 + INFOPLIST_FILE = "Target Support Files/XRCarouselView/Info.plist";
2003 2295 INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks";
2004 2296 IPHONEOS_DEPLOYMENT_TARGET = 8.0;
2005 2297 LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks";
2006   - MODULEMAP_FILE = "Target Support Files/SVProgressHUD/SVProgressHUD.modulemap";
2007   - PRODUCT_NAME = SVProgressHUD;
  2298 + MODULEMAP_FILE = "Target Support Files/XRCarouselView/XRCarouselView.modulemap";
  2299 + PRODUCT_NAME = XRCarouselView;
2008 2300 SDKROOT = iphoneos;
2009 2301 SKIP_INSTALL = YES;
2010 2302 SWIFT_ACTIVE_COMPILATION_CONDITIONS = "$(inherited) ";
... ... @@ -2019,11 +2311,11 @@
2019 2311 /* End XCBuildConfiguration section */
2020 2312  
2021 2313 /* Begin XCConfigurationList section */
2022   - 17A21E32738F3835B84339E468B53827 /* Build configuration list for PBXNativeTarget "Reachability" */ = {
  2314 + 184303B9B5FF90B2017E4D0073BC6423 /* Build configuration list for PBXNativeTarget "HandyJSON" */ = {
2023 2315 isa = XCConfigurationList;
2024 2316 buildConfigurations = (
2025   - 221A0B364FEF2A67B9ED8643E3C8B6C2 /* Debug */,
2026   - 4765818A1328458B489A71A25C6DD2FD /* Release */,
  2317 + DAE72FF2FFE8166FA938EB388ABBC2B5 /* Debug */,
  2318 + ECB5142D4DABB45B92371C51B3EB61F8 /* Release */,
2027 2319 );
2028 2320 defaultConfigurationIsVisible = 0;
2029 2321 defaultConfigurationName = Release;
... ... @@ -2031,8 +2323,17 @@
2031 2323 2D8E8EC45A3A1A1D94AE762CB5028504 /* Build configuration list for PBXProject "Pods" */ = {
2032 2324 isa = XCConfigurationList;
2033 2325 buildConfigurations = (
2034   - B57951D085A1B98A97F8A1062A5E5C5B /* Debug */,
2035   - 6F9224530522DD3C735EC96CF142642E /* Release */,
  2326 + E2BF6D6731C31DE69900B7B24E6F0445 /* Debug */,
  2327 + 26F954BA177A9A46FFFD4E23ED11D67A /* Release */,
  2328 + );
  2329 + defaultConfigurationIsVisible = 0;
  2330 + defaultConfigurationName = Release;
  2331 + };
  2332 + 3EC2F42A94017DE0B0E897EBD57D8A00 /* Build configuration list for PBXNativeTarget "SwiftHash" */ = {
  2333 + isa = XCConfigurationList;
  2334 + buildConfigurations = (
  2335 + EF0EA84D551F1A4F1232F2684FE87AD0 /* Debug */,
  2336 + 2399E3FF594AB08E0DAC9484992C0F91 /* Release */,
2036 2337 );
2037 2338 defaultConfigurationIsVisible = 0;
2038 2339 defaultConfigurationName = Release;
... ... @@ -2046,65 +2347,65 @@
2046 2347 defaultConfigurationIsVisible = 0;
2047 2348 defaultConfigurationName = Release;
2048 2349 };
2049   - 77898DB87F85C25503BBAD3CA03D0882 /* Build configuration list for PBXNativeTarget "XRCarouselView" */ = {
  2350 + 4B18822C8ECAB5D855CCE64E74C621EB /* Build configuration list for PBXNativeTarget "SDWebImage" */ = {
2050 2351 isa = XCConfigurationList;
2051 2352 buildConfigurations = (
2052   - BE36C1A612B2B72D14853C0199AD1E78 /* Debug */,
2053   - 119B03EBA7FDF534587EE293428E68E9 /* Release */,
  2353 + 8C67AFC68147451E22867E04C2F78264 /* Debug */,
  2354 + C86EB4C0D42E7F340560C1573F6E52EF /* Release */,
2054 2355 );
2055 2356 defaultConfigurationIsVisible = 0;
2056 2357 defaultConfigurationName = Release;
2057 2358 };
2058   - 88497F1D92D54ED021B8F3746A720F0C /* Build configuration list for PBXNativeTarget "SwiftHash" */ = {
  2359 + 5AD50E3B4812FC9FAE4961CBCA56B874 /* Build configuration list for PBXNativeTarget "Reachability" */ = {
2059 2360 isa = XCConfigurationList;
2060 2361 buildConfigurations = (
2061   - 7CD39388495620BAFBA6C3BF0F0911B1 /* Debug */,
2062   - 1B61C55D15B9275F78EF98CF41835A8C /* Release */,
  2362 + 83018C328C9420EE22D60BC4FC7C261D /* Debug */,
  2363 + 20A33051E49990EF2F5D75016374151E /* Release */,
2063 2364 );
2064 2365 defaultConfigurationIsVisible = 0;
2065 2366 defaultConfigurationName = Release;
2066 2367 };
2067   - AC2CBCE24382919CB3DBFC8BB3CC6503 /* Build configuration list for PBXNativeTarget "DZNEmptyDataSet" */ = {
  2368 + 7700DD54DACF55CC6BABF28FFCAB0179 /* Build configuration list for PBXNativeTarget "Pods-ParentAssistant" */ = {
2068 2369 isa = XCConfigurationList;
2069 2370 buildConfigurations = (
2070   - 793948A7CE88FCA234DA7EFD60D4178E /* Debug */,
2071   - 1456973998A5F20B4501A680D3794F6A /* Release */,
  2371 + 205040859FD37102CD356142F35D96D4 /* Debug */,
  2372 + 601BFB40515FF6C016B5850C2D905027 /* Release */,
2072 2373 );
2073 2374 defaultConfigurationIsVisible = 0;
2074 2375 defaultConfigurationName = Release;
2075 2376 };
2076   - ADC914ABFB3C05178072EE4B63D42904 /* Build configuration list for PBXNativeTarget "Toast" */ = {
  2377 + A4FA017D8C4362BABA6CC461A244CB9D /* Build configuration list for PBXNativeTarget "XRCarouselView" */ = {
2077 2378 isa = XCConfigurationList;
2078 2379 buildConfigurations = (
2079   - B4CAFAECC8ABEDE5FA3875262655C603 /* Debug */,
2080   - 17F5C718DB216A6DC180FBCC46408D74 /* Release */,
  2380 + 2386F65ABDB52652A92CBEE14C73BA07 /* Debug */,
  2381 + F9A4D3888E109251ADAC60180BC1B773 /* Release */,
2081 2382 );
2082 2383 defaultConfigurationIsVisible = 0;
2083 2384 defaultConfigurationName = Release;
2084 2385 };
2085   - CB53EC040A49607724400A1AA7DC948E /* Build configuration list for PBXNativeTarget "Pods-ParentAssistant" */ = {
  2386 + AC2CBCE24382919CB3DBFC8BB3CC6503 /* Build configuration list for PBXNativeTarget "DZNEmptyDataSet" */ = {
2086 2387 isa = XCConfigurationList;
2087 2388 buildConfigurations = (
2088   - 92283DF0957D7261B38B97C42B648912 /* Debug */,
2089   - 678C04D92DAB53DB9148EF9D86B284F6 /* Release */,
  2389 + 793948A7CE88FCA234DA7EFD60D4178E /* Debug */,
  2390 + 1456973998A5F20B4501A680D3794F6A /* Release */,
2090 2391 );
2091 2392 defaultConfigurationIsVisible = 0;
2092 2393 defaultConfigurationName = Release;
2093 2394 };
2094   - D656DFFD54B90A7C0D451CD06977C10D /* Build configuration list for PBXNativeTarget "SDWebImage" */ = {
  2395 + EAC632F2AAB82F696A1E5C88D53A883E /* Build configuration list for PBXNativeTarget "SVProgressHUD" */ = {
2095 2396 isa = XCConfigurationList;
2096 2397 buildConfigurations = (
2097   - 70B017BA24763D88E2D321961592B543 /* Debug */,
2098   - 3509F94219F8C0180F27F969FE4896C7 /* Release */,
  2398 + 3D9BEB881A70984931EB7B52EB42D89C /* Debug */,
  2399 + 51211605D5BBC568B59C86BC410917A5 /* Release */,
2099 2400 );
2100 2401 defaultConfigurationIsVisible = 0;
2101 2402 defaultConfigurationName = Release;
2102 2403 };
2103   - F3EF627C7A0C3D0A7E911E9FA543A303 /* Build configuration list for PBXNativeTarget "SVProgressHUD" */ = {
  2404 + F11A26D3E7766CBBD820DCD66B6FC321 /* Build configuration list for PBXNativeTarget "Toast" */ = {
2104 2405 isa = XCConfigurationList;
2105 2406 buildConfigurations = (
2106   - 5639E296250E6E2ACB29FD06E52425B5 /* Debug */,
2107   - E904E666B743307368C6892CE2A626D1 /* Release */,
  2407 + 215A480FCE0C128FA2F4C2A2882BBE23 /* Debug */,
  2408 + A8F73C58AFDC02718271B7541ABA62EF /* Release */,
2108 2409 );
2109 2410 defaultConfigurationIsVisible = 0;
2110 2411 defaultConfigurationName = Release;
... ...
ParentAssistant/Pods/Pods.xcodeproj/xcuserdata/caoyang.xcuserdatad/xcschemes/Alamofire.xcscheme 0 → 100644
... ... @@ -0,0 +1,60 @@
  1 +<?xml version="1.0" encoding="UTF-8"?>
  2 +<Scheme
  3 + LastUpgradeVersion = "0930"
  4 + version = "1.3">
  5 + <BuildAction
  6 + parallelizeBuildables = "YES"
  7 + buildImplicitDependencies = "YES">
  8 + <BuildActionEntries>
  9 + <BuildActionEntry
  10 + buildForAnalyzing = "YES"
  11 + buildForTesting = "YES"
  12 + buildForRunning = "YES"
  13 + buildForProfiling = "YES"
  14 + buildForArchiving = "YES">
  15 + <BuildableReference
  16 + BuildableIdentifier = "primary"
  17 + BlueprintIdentifier = "88E9EC28B8B46C3631E6B242B50F4442"
  18 + BlueprintName = "Alamofire"
  19 + ReferencedContainer = "container:Pods.xcodeproj"
  20 + BuildableName = "Alamofire.framework">
  21 + </BuildableReference>
  22 + </BuildActionEntry>
  23 + </BuildActionEntries>
  24 + </BuildAction>
  25 + <TestAction
  26 + selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
  27 + selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
  28 + shouldUseLaunchSchemeArgsEnv = "YES"
  29 + buildConfiguration = "Debug">
  30 + <AdditionalOptions>
  31 + </AdditionalOptions>
  32 + </TestAction>
  33 + <LaunchAction
  34 + selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
  35 + selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
  36 + launchStyle = "0"
  37 + useCustomWorkingDirectory = "NO"
  38 + ignoresPersistentStateOnLaunch = "NO"
  39 + debugDocumentVersioning = "YES"
  40 + debugServiceExtension = "internal"
  41 + buildConfiguration = "Debug"
  42 + allowLocationSimulation = "YES">
  43 + <AdditionalOptions>
  44 + </AdditionalOptions>
  45 + </LaunchAction>
  46 + <ProfileAction
  47 + savedToolIdentifier = ""
  48 + useCustomWorkingDirectory = "NO"
  49 + debugDocumentVersioning = "YES"
  50 + buildConfiguration = "Release"
  51 + shouldUseLaunchSchemeArgsEnv = "YES">
  52 + </ProfileAction>
  53 + <AnalyzeAction
  54 + buildConfiguration = "Debug">
  55 + </AnalyzeAction>
  56 + <ArchiveAction
  57 + buildConfiguration = "Release"
  58 + revealArchiveInOrganizer = "YES">
  59 + </ArchiveAction>
  60 +</Scheme>
... ...
ParentAssistant/Pods/Pods.xcodeproj/xcuserdata/caoyang.xcuserdatad/xcschemes/DZNEmptyDataSet.xcscheme 0 → 100644
... ... @@ -0,0 +1,60 @@
  1 +<?xml version="1.0" encoding="UTF-8"?>
  2 +<Scheme
  3 + LastUpgradeVersion = "0930"
  4 + version = "1.3">
  5 + <BuildAction
  6 + parallelizeBuildables = "YES"
  7 + buildImplicitDependencies = "YES">
  8 + <BuildActionEntries>
  9 + <BuildActionEntry
  10 + buildForAnalyzing = "YES"
  11 + buildForTesting = "YES"
  12 + buildForRunning = "YES"
  13 + buildForProfiling = "YES"
  14 + buildForArchiving = "YES">
  15 + <BuildableReference
  16 + BuildableIdentifier = "primary"
  17 + BlueprintIdentifier = "D386C75EFD4F03725E4EFB866B600B9A"
  18 + BlueprintName = "DZNEmptyDataSet"
  19 + ReferencedContainer = "container:Pods.xcodeproj"
  20 + BuildableName = "DZNEmptyDataSet.framework">
  21 + </BuildableReference>
  22 + </BuildActionEntry>
  23 + </BuildActionEntries>
  24 + </BuildAction>
  25 + <TestAction
  26 + selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
  27 + selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
  28 + shouldUseLaunchSchemeArgsEnv = "YES"
  29 + buildConfiguration = "Debug">
  30 + <AdditionalOptions>
  31 + </AdditionalOptions>
  32 + </TestAction>
  33 + <LaunchAction
  34 + selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
  35 + selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
  36 + launchStyle = "0"
  37 + useCustomWorkingDirectory = "NO"
  38 + ignoresPersistentStateOnLaunch = "NO"
  39 + debugDocumentVersioning = "YES"
  40 + debugServiceExtension = "internal"
  41 + buildConfiguration = "Debug"
  42 + allowLocationSimulation = "YES">
  43 + <AdditionalOptions>
  44 + </AdditionalOptions>
  45 + </LaunchAction>
  46 + <ProfileAction
  47 + savedToolIdentifier = ""
  48 + useCustomWorkingDirectory = "NO"
  49 + debugDocumentVersioning = "YES"
  50 + buildConfiguration = "Release"
  51 + shouldUseLaunchSchemeArgsEnv = "YES">
  52 + </ProfileAction>
  53 + <AnalyzeAction
  54 + buildConfiguration = "Debug">
  55 + </AnalyzeAction>
  56 + <ArchiveAction
  57 + buildConfiguration = "Release"
  58 + revealArchiveInOrganizer = "YES">
  59 + </ArchiveAction>
  60 +</Scheme>
... ...
ParentAssistant/Pods/Pods.xcodeproj/xcuserdata/caoyang.xcuserdatad/xcschemes/HandyJSON.xcscheme 0 → 100644
... ... @@ -0,0 +1,60 @@
  1 +<?xml version="1.0" encoding="UTF-8"?>
  2 +<Scheme
  3 + LastUpgradeVersion = "0930"
  4 + version = "1.3">
  5 + <BuildAction
  6 + parallelizeBuildables = "YES"
  7 + buildImplicitDependencies = "YES">
  8 + <BuildActionEntries>
  9 + <BuildActionEntry
  10 + buildForAnalyzing = "YES"
  11 + buildForTesting = "YES"
  12 + buildForRunning = "YES"
  13 + buildForProfiling = "YES"
  14 + buildForArchiving = "YES">
  15 + <BuildableReference
  16 + BuildableIdentifier = "primary"
  17 + BlueprintIdentifier = "1465651EBBC44AD3276DDE2476CDA450"
  18 + BlueprintName = "HandyJSON"
  19 + ReferencedContainer = "container:Pods.xcodeproj"
  20 + BuildableName = "HandyJSON.framework">
  21 + </BuildableReference>
  22 + </BuildActionEntry>
  23 + </BuildActionEntries>
  24 + </BuildAction>
  25 + <TestAction
  26 + selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
  27 + selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
  28 + shouldUseLaunchSchemeArgsEnv = "YES"
  29 + buildConfiguration = "Debug">
  30 + <AdditionalOptions>
  31 + </AdditionalOptions>
  32 + </TestAction>
  33 + <LaunchAction
  34 + selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
  35 + selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
  36 + launchStyle = "0"
  37 + useCustomWorkingDirectory = "NO"
  38 + ignoresPersistentStateOnLaunch = "NO"
  39 + debugDocumentVersioning = "YES"
  40 + debugServiceExtension = "internal"
  41 + buildConfiguration = "Debug"
  42 + allowLocationSimulation = "YES">
  43 + <AdditionalOptions>
  44 + </AdditionalOptions>
  45 + </LaunchAction>
  46 + <ProfileAction
  47 + savedToolIdentifier = ""
  48 + useCustomWorkingDirectory = "NO"
  49 + debugDocumentVersioning = "YES"
  50 + buildConfiguration = "Release"
  51 + shouldUseLaunchSchemeArgsEnv = "YES">
  52 + </ProfileAction>
  53 + <AnalyzeAction
  54 + buildConfiguration = "Debug">
  55 + </AnalyzeAction>
  56 + <ArchiveAction
  57 + buildConfiguration = "Release"
  58 + revealArchiveInOrganizer = "YES">
  59 + </ArchiveAction>
  60 +</Scheme>
... ...
ParentAssistant/Pods/Pods.xcodeproj/xcuserdata/caoyang.xcuserdatad/xcschemes/Pods-ParentAssistant.xcscheme 0 → 100644
... ... @@ -0,0 +1,71 @@
  1 +<?xml version="1.0" encoding="UTF-8"?>
  2 +<Scheme
  3 + LastUpgradeVersion = "0930"
  4 + version = "1.3">
  5 + <BuildAction
  6 + parallelizeBuildables = "YES"
  7 + buildImplicitDependencies = "YES">
  8 + <BuildActionEntries>
  9 + <BuildActionEntry
  10 + buildForTesting = "YES"
  11 + buildForRunning = "YES"
  12 + buildForProfiling = "YES"
  13 + buildForArchiving = "YES"
  14 + buildForAnalyzing = "YES">
  15 + <BuildableReference
  16 + BuildableIdentifier = "primary"
  17 + BlueprintIdentifier = "89B82C8C6E32CEBE5ACCD75CDFBECBB1"
  18 + BuildableName = "Pods_ParentAssistant.framework"
  19 + BlueprintName = "Pods-ParentAssistant"
  20 + ReferencedContainer = "container:Pods.xcodeproj">
  21 + </BuildableReference>
  22 + </BuildActionEntry>
  23 + </BuildActionEntries>
  24 + </BuildAction>
  25 + <TestAction
  26 + buildConfiguration = "Debug"
  27 + selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
  28 + selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
  29 + shouldUseLaunchSchemeArgsEnv = "YES">
  30 + <Testables>
  31 + </Testables>
  32 + <AdditionalOptions>
  33 + </AdditionalOptions>
  34 + </TestAction>
  35 + <LaunchAction
  36 + buildConfiguration = "Debug"
  37 + selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
  38 + selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
  39 + launchStyle = "0"
  40 + useCustomWorkingDirectory = "NO"
  41 + ignoresPersistentStateOnLaunch = "NO"
  42 + debugDocumentVersioning = "YES"
  43 + debugServiceExtension = "internal"
  44 + allowLocationSimulation = "YES">
  45 + <MacroExpansion>
  46 + <BuildableReference
  47 + BuildableIdentifier = "primary"
  48 + BlueprintIdentifier = "89B82C8C6E32CEBE5ACCD75CDFBECBB1"
  49 + BuildableName = "Pods_ParentAssistant.framework"
  50 + BlueprintName = "Pods-ParentAssistant"
  51 + ReferencedContainer = "container:Pods.xcodeproj">
  52 + </BuildableReference>
  53 + </MacroExpansion>
  54 + <AdditionalOptions>
  55 + </AdditionalOptions>
  56 + </LaunchAction>
  57 + <ProfileAction
  58 + buildConfiguration = "Release"
  59 + shouldUseLaunchSchemeArgsEnv = "YES"
  60 + savedToolIdentifier = ""
  61 + useCustomWorkingDirectory = "NO"
  62 + debugDocumentVersioning = "YES">
  63 + </ProfileAction>
  64 + <AnalyzeAction
  65 + buildConfiguration = "Debug">
  66 + </AnalyzeAction>
  67 + <ArchiveAction
  68 + buildConfiguration = "Release"
  69 + revealArchiveInOrganizer = "YES">
  70 + </ArchiveAction>
  71 +</Scheme>
... ...
ParentAssistant/Pods/Pods.xcodeproj/xcuserdata/caoyang.xcuserdatad/xcschemes/Reachability.xcscheme 0 → 100644
... ... @@ -0,0 +1,60 @@
  1 +<?xml version="1.0" encoding="UTF-8"?>
  2 +<Scheme
  3 + LastUpgradeVersion = "0930"
  4 + version = "1.3">
  5 + <BuildAction
  6 + parallelizeBuildables = "YES"
  7 + buildImplicitDependencies = "YES">
  8 + <BuildActionEntries>
  9 + <BuildActionEntry
  10 + buildForAnalyzing = "YES"
  11 + buildForTesting = "YES"
  12 + buildForRunning = "YES"
  13 + buildForProfiling = "YES"
  14 + buildForArchiving = "YES">
  15 + <BuildableReference
  16 + BuildableIdentifier = "primary"
  17 + BlueprintIdentifier = "AAC4087A5A57F5566AB9B54FEBADBC36"
  18 + BlueprintName = "Reachability"
  19 + ReferencedContainer = "container:Pods.xcodeproj"
  20 + BuildableName = "Reachability.framework">
  21 + </BuildableReference>
  22 + </BuildActionEntry>
  23 + </BuildActionEntries>
  24 + </BuildAction>
  25 + <TestAction
  26 + selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
  27 + selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
  28 + shouldUseLaunchSchemeArgsEnv = "YES"
  29 + buildConfiguration = "Debug">
  30 + <AdditionalOptions>
  31 + </AdditionalOptions>
  32 + </TestAction>
  33 + <LaunchAction
  34 + selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
  35 + selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
  36 + launchStyle = "0"
  37 + useCustomWorkingDirectory = "NO"
  38 + ignoresPersistentStateOnLaunch = "NO"
  39 + debugDocumentVersioning = "YES"
  40 + debugServiceExtension = "internal"
  41 + buildConfiguration = "Debug"
  42 + allowLocationSimulation = "YES">
  43 + <AdditionalOptions>
  44 + </AdditionalOptions>
  45 + </LaunchAction>
  46 + <ProfileAction
  47 + savedToolIdentifier = ""
  48 + useCustomWorkingDirectory = "NO"
  49 + debugDocumentVersioning = "YES"
  50 + buildConfiguration = "Release"
  51 + shouldUseLaunchSchemeArgsEnv = "YES">
  52 + </ProfileAction>
  53 + <AnalyzeAction
  54 + buildConfiguration = "Debug">
  55 + </AnalyzeAction>
  56 + <ArchiveAction
  57 + buildConfiguration = "Release"
  58 + revealArchiveInOrganizer = "YES">
  59 + </ArchiveAction>
  60 +</Scheme>
... ...
ParentAssistant/Pods/Pods.xcodeproj/xcuserdata/caoyang.xcuserdatad/xcschemes/SDWebImage.xcscheme 0 → 100644
... ... @@ -0,0 +1,60 @@
  1 +<?xml version="1.0" encoding="UTF-8"?>
  2 +<Scheme
  3 + LastUpgradeVersion = "0930"
  4 + version = "1.3">
  5 + <BuildAction
  6 + parallelizeBuildables = "YES"
  7 + buildImplicitDependencies = "YES">
  8 + <BuildActionEntries>
  9 + <BuildActionEntry
  10 + buildForAnalyzing = "YES"
  11 + buildForTesting = "YES"
  12 + buildForRunning = "YES"
  13 + buildForProfiling = "YES"
  14 + buildForArchiving = "YES">
  15 + <BuildableReference
  16 + BuildableIdentifier = "primary"
  17 + BlueprintIdentifier = "8FA4EA707F3B6CFDACB1C85C722D2E73"
  18 + BlueprintName = "SDWebImage"
  19 + ReferencedContainer = "container:Pods.xcodeproj"
  20 + BuildableName = "SDWebImage.framework">
  21 + </BuildableReference>
  22 + </BuildActionEntry>
  23 + </BuildActionEntries>
  24 + </BuildAction>
  25 + <TestAction
  26 + selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
  27 + selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
  28 + shouldUseLaunchSchemeArgsEnv = "YES"
  29 + buildConfiguration = "Debug">
  30 + <AdditionalOptions>
  31 + </AdditionalOptions>
  32 + </TestAction>
  33 + <LaunchAction
  34 + selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
  35 + selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
  36 + launchStyle = "0"
  37 + useCustomWorkingDirectory = "NO"
  38 + ignoresPersistentStateOnLaunch = "NO"
  39 + debugDocumentVersioning = "YES"
  40 + debugServiceExtension = "internal"
  41 + buildConfiguration = "Debug"
  42 + allowLocationSimulation = "YES">
  43 + <AdditionalOptions>
  44 + </AdditionalOptions>
  45 + </LaunchAction>
  46 + <ProfileAction
  47 + savedToolIdentifier = ""
  48 + useCustomWorkingDirectory = "NO"
  49 + debugDocumentVersioning = "YES"
  50 + buildConfiguration = "Release"
  51 + shouldUseLaunchSchemeArgsEnv = "YES">
  52 + </ProfileAction>
  53 + <AnalyzeAction
  54 + buildConfiguration = "Debug">
  55 + </AnalyzeAction>
  56 + <ArchiveAction
  57 + buildConfiguration = "Release"
  58 + revealArchiveInOrganizer = "YES">
  59 + </ArchiveAction>
  60 +</Scheme>
... ...
ParentAssistant/Pods/Pods.xcodeproj/xcuserdata/caoyang.xcuserdatad/xcschemes/SVProgressHUD.xcscheme 0 → 100644
... ... @@ -0,0 +1,60 @@
  1 +<?xml version="1.0" encoding="UTF-8"?>
  2 +<Scheme
  3 + LastUpgradeVersion = "0930"
  4 + version = "1.3">
  5 + <BuildAction
  6 + parallelizeBuildables = "YES"
  7 + buildImplicitDependencies = "YES">
  8 + <BuildActionEntries>
  9 + <BuildActionEntry
  10 + buildForAnalyzing = "YES"
  11 + buildForTesting = "YES"
  12 + buildForRunning = "YES"
  13 + buildForProfiling = "YES"
  14 + buildForArchiving = "YES">
  15 + <BuildableReference
  16 + BuildableIdentifier = "primary"
  17 + BlueprintIdentifier = "E55BDEBC8F73D6B7936791D0822F70D6"
  18 + BlueprintName = "SVProgressHUD"
  19 + ReferencedContainer = "container:Pods.xcodeproj"
  20 + BuildableName = "SVProgressHUD.framework">
  21 + </BuildableReference>
  22 + </BuildActionEntry>
  23 + </BuildActionEntries>
  24 + </BuildAction>
  25 + <TestAction
  26 + selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
  27 + selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
  28 + shouldUseLaunchSchemeArgsEnv = "YES"
  29 + buildConfiguration = "Debug">
  30 + <AdditionalOptions>
  31 + </AdditionalOptions>
  32 + </TestAction>
  33 + <LaunchAction
  34 + selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
  35 + selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
  36 + launchStyle = "0"
  37 + useCustomWorkingDirectory = "NO"
  38 + ignoresPersistentStateOnLaunch = "NO"
  39 + debugDocumentVersioning = "YES"
  40 + debugServiceExtension = "internal"
  41 + buildConfiguration = "Debug"
  42 + allowLocationSimulation = "YES">
  43 + <AdditionalOptions>
  44 + </AdditionalOptions>
  45 + </LaunchAction>
  46 + <ProfileAction
  47 + savedToolIdentifier = ""
  48 + useCustomWorkingDirectory = "NO"
  49 + debugDocumentVersioning = "YES"
  50 + buildConfiguration = "Release"
  51 + shouldUseLaunchSchemeArgsEnv = "YES">
  52 + </ProfileAction>
  53 + <AnalyzeAction
  54 + buildConfiguration = "Debug">
  55 + </AnalyzeAction>
  56 + <ArchiveAction
  57 + buildConfiguration = "Release"
  58 + revealArchiveInOrganizer = "YES">
  59 + </ArchiveAction>
  60 +</Scheme>
... ...
ParentAssistant/Pods/Pods.xcodeproj/xcuserdata/caoyang.xcuserdatad/xcschemes/SwiftHash.xcscheme 0 → 100644
... ... @@ -0,0 +1,60 @@
  1 +<?xml version="1.0" encoding="UTF-8"?>
  2 +<Scheme
  3 + LastUpgradeVersion = "0930"
  4 + version = "1.3">
  5 + <BuildAction
  6 + parallelizeBuildables = "YES"
  7 + buildImplicitDependencies = "YES">
  8 + <BuildActionEntries>
  9 + <BuildActionEntry
  10 + buildForAnalyzing = "YES"
  11 + buildForTesting = "YES"
  12 + buildForRunning = "YES"
  13 + buildForProfiling = "YES"
  14 + buildForArchiving = "YES">
  15 + <BuildableReference
  16 + BuildableIdentifier = "primary"
  17 + BlueprintIdentifier = "6376DC419EEA98495631602218A4F31B"
  18 + BlueprintName = "SwiftHash"
  19 + ReferencedContainer = "container:Pods.xcodeproj"
  20 + BuildableName = "SwiftHash.framework">
  21 + </BuildableReference>
  22 + </BuildActionEntry>
  23 + </BuildActionEntries>
  24 + </BuildAction>
  25 + <TestAction
  26 + selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
  27 + selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
  28 + shouldUseLaunchSchemeArgsEnv = "YES"
  29 + buildConfiguration = "Debug">
  30 + <AdditionalOptions>
  31 + </AdditionalOptions>
  32 + </TestAction>
  33 + <LaunchAction
  34 + selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
  35 + selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
  36 + launchStyle = "0"
  37 + useCustomWorkingDirectory = "NO"
  38 + ignoresPersistentStateOnLaunch = "NO"
  39 + debugDocumentVersioning = "YES"
  40 + debugServiceExtension = "internal"
  41 + buildConfiguration = "Debug"
  42 + allowLocationSimulation = "YES">
  43 + <AdditionalOptions>
  44 + </AdditionalOptions>
  45 + </LaunchAction>
  46 + <ProfileAction
  47 + savedToolIdentifier = ""
  48 + useCustomWorkingDirectory = "NO"
  49 + debugDocumentVersioning = "YES"
  50 + buildConfiguration = "Release"
  51 + shouldUseLaunchSchemeArgsEnv = "YES">
  52 + </ProfileAction>
  53 + <AnalyzeAction
  54 + buildConfiguration = "Debug">
  55 + </AnalyzeAction>
  56 + <ArchiveAction
  57 + buildConfiguration = "Release"
  58 + revealArchiveInOrganizer = "YES">
  59 + </ArchiveAction>
  60 +</Scheme>
... ...
ParentAssistant/Pods/Pods.xcodeproj/xcuserdata/caoyang.xcuserdatad/xcschemes/Toast.xcscheme 0 → 100644
... ... @@ -0,0 +1,60 @@
  1 +<?xml version="1.0" encoding="UTF-8"?>
  2 +<Scheme
  3 + LastUpgradeVersion = "0930"
  4 + version = "1.3">
  5 + <BuildAction
  6 + parallelizeBuildables = "YES"
  7 + buildImplicitDependencies = "YES">
  8 + <BuildActionEntries>
  9 + <BuildActionEntry
  10 + buildForAnalyzing = "YES"
  11 + buildForTesting = "YES"
  12 + buildForRunning = "YES"
  13 + buildForProfiling = "YES"
  14 + buildForArchiving = "YES">
  15 + <BuildableReference
  16 + BuildableIdentifier = "primary"
  17 + BlueprintIdentifier = "9A9DDC64623B3F5E6DC7009C16752B95"
  18 + BlueprintName = "Toast"
  19 + ReferencedContainer = "container:Pods.xcodeproj"
  20 + BuildableName = "Toast.framework">
  21 + </BuildableReference>
  22 + </BuildActionEntry>
  23 + </BuildActionEntries>
  24 + </BuildAction>
  25 + <TestAction
  26 + selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
  27 + selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
  28 + shouldUseLaunchSchemeArgsEnv = "YES"
  29 + buildConfiguration = "Debug">
  30 + <AdditionalOptions>
  31 + </AdditionalOptions>
  32 + </TestAction>
  33 + <LaunchAction
  34 + selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
  35 + selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
  36 + launchStyle = "0"
  37 + useCustomWorkingDirectory = "NO"
  38 + ignoresPersistentStateOnLaunch = "NO"
  39 + debugDocumentVersioning = "YES"
  40 + debugServiceExtension = "internal"
  41 + buildConfiguration = "Debug"
  42 + allowLocationSimulation = "YES">
  43 + <AdditionalOptions>
  44 + </AdditionalOptions>
  45 + </LaunchAction>
  46 + <ProfileAction
  47 + savedToolIdentifier = ""
  48 + useCustomWorkingDirectory = "NO"
  49 + debugDocumentVersioning = "YES"
  50 + buildConfiguration = "Release"
  51 + shouldUseLaunchSchemeArgsEnv = "YES">
  52 + </ProfileAction>
  53 + <AnalyzeAction
  54 + buildConfiguration = "Debug">
  55 + </AnalyzeAction>
  56 + <ArchiveAction
  57 + buildConfiguration = "Release"
  58 + revealArchiveInOrganizer = "YES">
  59 + </ArchiveAction>
  60 +</Scheme>
... ...
ParentAssistant/Pods/Pods.xcodeproj/xcuserdata/caoyang.xcuserdatad/xcschemes/XRCarouselView.xcscheme 0 → 100644
... ... @@ -0,0 +1,60 @@
  1 +<?xml version="1.0" encoding="UTF-8"?>
  2 +<Scheme
  3 + LastUpgradeVersion = "0930"
  4 + version = "1.3">
  5 + <BuildAction
  6 + parallelizeBuildables = "YES"
  7 + buildImplicitDependencies = "YES">
  8 + <BuildActionEntries>
  9 + <BuildActionEntry
  10 + buildForAnalyzing = "YES"
  11 + buildForTesting = "YES"
  12 + buildForRunning = "YES"
  13 + buildForProfiling = "YES"
  14 + buildForArchiving = "YES">
  15 + <BuildableReference
  16 + BuildableIdentifier = "primary"
  17 + BlueprintIdentifier = "27189F0EDBCA8831C460D0166F6F37A1"
  18 + BlueprintName = "XRCarouselView"
  19 + ReferencedContainer = "container:Pods.xcodeproj"
  20 + BuildableName = "XRCarouselView.framework">
  21 + </BuildableReference>
  22 + </BuildActionEntry>
  23 + </BuildActionEntries>
  24 + </BuildAction>
  25 + <TestAction
  26 + selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
  27 + selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
  28 + shouldUseLaunchSchemeArgsEnv = "YES"
  29 + buildConfiguration = "Debug">
  30 + <AdditionalOptions>
  31 + </AdditionalOptions>
  32 + </TestAction>
  33 + <LaunchAction
  34 + selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
  35 + selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
  36 + launchStyle = "0"
  37 + useCustomWorkingDirectory = "NO"
  38 + ignoresPersistentStateOnLaunch = "NO"
  39 + debugDocumentVersioning = "YES"
  40 + debugServiceExtension = "internal"
  41 + buildConfiguration = "Debug"
  42 + allowLocationSimulation = "YES">
  43 + <AdditionalOptions>
  44 + </AdditionalOptions>
  45 + </LaunchAction>
  46 + <ProfileAction
  47 + savedToolIdentifier = ""
  48 + useCustomWorkingDirectory = "NO"
  49 + debugDocumentVersioning = "YES"
  50 + buildConfiguration = "Release"
  51 + shouldUseLaunchSchemeArgsEnv = "YES">
  52 + </ProfileAction>
  53 + <AnalyzeAction
  54 + buildConfiguration = "Debug">
  55 + </AnalyzeAction>
  56 + <ArchiveAction
  57 + buildConfiguration = "Release"
  58 + revealArchiveInOrganizer = "YES">
  59 + </ArchiveAction>
  60 +</Scheme>
... ...
ParentAssistant/Pods/Pods.xcodeproj/xcuserdata/caoyang.xcuserdatad/xcschemes/xcschememanagement.plist
... ... @@ -6,49 +6,76 @@
6 6 <dict>
7 7 <key>Alamofire.xcscheme</key>
8 8 <dict>
  9 + <key>isShown</key>
  10 + <false/>
9 11 <key>orderHint</key>
10 12 <integer>0</integer>
11 13 </dict>
12 14 <key>DZNEmptyDataSet.xcscheme</key>
13 15 <dict>
  16 + <key>isShown</key>
  17 + <false/>
  18 + <key>orderHint</key>
  19 + <integer>1</integer>
  20 + </dict>
  21 + <key>HandyJSON.xcscheme</key>
  22 + <dict>
  23 + <key>isShown</key>
  24 + <false/>
14 25 <key>orderHint</key>
15 26 <integer>2</integer>
16 27 </dict>
17 28 <key>Pods-ParentAssistant.xcscheme</key>
18 29 <dict>
  30 + <key>isShown</key>
  31 + <false/>
19 32 <key>orderHint</key>
20 33 <integer>3</integer>
21 34 </dict>
22 35 <key>Reachability.xcscheme</key>
23 36 <dict>
  37 + <key>isShown</key>
  38 + <false/>
24 39 <key>orderHint</key>
25 40 <integer>4</integer>
26 41 </dict>
27 42 <key>SDWebImage.xcscheme</key>
28 43 <dict>
  44 + <key>isShown</key>
  45 + <false/>
29 46 <key>orderHint</key>
30 47 <integer>5</integer>
31 48 </dict>
32 49 <key>SVProgressHUD.xcscheme</key>
33 50 <dict>
  51 + <key>isShown</key>
  52 + <false/>
34 53 <key>orderHint</key>
35 54 <integer>6</integer>
36 55 </dict>
37 56 <key>SwiftHash.xcscheme</key>
38 57 <dict>
  58 + <key>isShown</key>
  59 + <false/>
39 60 <key>orderHint</key>
40 61 <integer>7</integer>
41 62 </dict>
42 63 <key>Toast.xcscheme</key>
43 64 <dict>
  65 + <key>isShown</key>
  66 + <false/>
44 67 <key>orderHint</key>
45 68 <integer>8</integer>
46 69 </dict>
47 70 <key>XRCarouselView.xcscheme</key>
48 71 <dict>
  72 + <key>isShown</key>
  73 + <false/>
49 74 <key>orderHint</key>
50 75 <integer>9</integer>
51 76 </dict>
52 77 </dict>
  78 + <key>SuppressBuildableAutocreation</key>
  79 + <dict/>
53 80 </dict>
54 81 </plist>
... ...
ParentAssistant/Pods/Target Support Files/HandyJSON/HandyJSON-dummy.m 0 → 100644
... ... @@ -0,0 +1,5 @@
  1 +#import <Foundation/Foundation.h>
  2 +@interface PodsDummy_HandyJSON : NSObject
  3 +@end
  4 +@implementation PodsDummy_HandyJSON
  5 +@end
... ...
ParentAssistant/Pods/Target Support Files/HandyJSON/HandyJSON-prefix.pch 0 → 100644
... ... @@ -0,0 +1,12 @@
  1 +#ifdef __OBJC__
  2 +#import <UIKit/UIKit.h>
  3 +#else
  4 +#ifndef FOUNDATION_EXPORT
  5 +#if defined(__cplusplus)
  6 +#define FOUNDATION_EXPORT extern "C"
  7 +#else
  8 +#define FOUNDATION_EXPORT extern
  9 +#endif
  10 +#endif
  11 +#endif
  12 +
... ...
ParentAssistant/Pods/Target Support Files/HandyJSON/HandyJSON-umbrella.h 0 → 100644
... ... @@ -0,0 +1,17 @@
  1 +#ifdef __OBJC__
  2 +#import <UIKit/UIKit.h>
  3 +#else
  4 +#ifndef FOUNDATION_EXPORT
  5 +#if defined(__cplusplus)
  6 +#define FOUNDATION_EXPORT extern "C"
  7 +#else
  8 +#define FOUNDATION_EXPORT extern
  9 +#endif
  10 +#endif
  11 +#endif
  12 +
  13 +#import "HandyJSON.h"
  14 +
  15 +FOUNDATION_EXPORT double HandyJSONVersionNumber;
  16 +FOUNDATION_EXPORT const unsigned char HandyJSONVersionString[];
  17 +
... ...
ParentAssistant/Pods/Target Support Files/HandyJSON/HandyJSON.modulemap 0 → 100644
... ... @@ -0,0 +1,6 @@
  1 +framework module HandyJSON {
  2 + umbrella header "HandyJSON-umbrella.h"
  3 +
  4 + export *
  5 + module * { export * }
  6 +}
... ...
ParentAssistant/Pods/Target Support Files/HandyJSON/HandyJSON.xcconfig 0 → 100644
... ... @@ -0,0 +1,11 @@
  1 +CONFIGURATION_BUILD_DIR = ${PODS_CONFIGURATION_BUILD_DIR}/HandyJSON
  2 +GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1
  3 +HEADER_SEARCH_PATHS = "${PODS_ROOT}/Headers/Private" "${PODS_ROOT}/Headers/Public" "${PODS_ROOT}/Headers/Public/NIMSDK_LITE" "${PODS_ROOT}/Headers/Public/UMCAnalytics" "${PODS_ROOT}/Headers/Public/UMCCommon" "${PODS_ROOT}/Headers/Public/UMCErrorCatch" "${PODS_ROOT}/Headers/Public/UMCSecurityPlugins"
  4 +OTHER_SWIFT_FLAGS = $(inherited) "-D" "COCOAPODS" "-suppress-warnings"
  5 +PODS_BUILD_DIR = ${BUILD_DIR}
  6 +PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)
  7 +PODS_ROOT = ${SRCROOT}
  8 +PODS_TARGET_SRCROOT = ${PODS_ROOT}/HandyJSON
  9 +PRODUCT_BUNDLE_IDENTIFIER = org.cocoapods.${PRODUCT_NAME:rfc1034identifier}
  10 +SKIP_INSTALL = YES
  11 +SWIFT_SUPPRESS_WARNINGS = YES
... ...
ParentAssistant/Pods/Target Support Files/HandyJSON/Info.plist 0 → 100644
... ... @@ -0,0 +1,26 @@
  1 +<?xml version="1.0" encoding="UTF-8"?>
  2 +<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
  3 +<plist version="1.0">
  4 +<dict>
  5 + <key>CFBundleDevelopmentRegion</key>
  6 + <string>en</string>
  7 + <key>CFBundleExecutable</key>
  8 + <string>${EXECUTABLE_NAME}</string>
  9 + <key>CFBundleIdentifier</key>
  10 + <string>${PRODUCT_BUNDLE_IDENTIFIER}</string>
  11 + <key>CFBundleInfoDictionaryVersion</key>
  12 + <string>6.0</string>
  13 + <key>CFBundleName</key>
  14 + <string>${PRODUCT_NAME}</string>
  15 + <key>CFBundlePackageType</key>
  16 + <string>FMWK</string>
  17 + <key>CFBundleShortVersionString</key>
  18 + <string>4.1.1</string>
  19 + <key>CFBundleSignature</key>
  20 + <string>????</string>
  21 + <key>CFBundleVersion</key>
  22 + <string>${CURRENT_PROJECT_VERSION}</string>
  23 + <key>NSPrincipalClass</key>
  24 + <string></string>
  25 +</dict>
  26 +</plist>
... ...
ParentAssistant/Pods/Target Support Files/Pods-ParentAssistant/Pods-ParentAssistant-acknowledgements.markdown
... ... @@ -37,6 +37,23 @@ The above copyright notice and this permission notice shall be included in all c
37 37 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.
38 38  
39 39  
  40 +## HandyJSON
  41 +
  42 + Copyright 1999-2016 Alibaba Group Holding Ltd.
  43 +
  44 + Licensed under the Apache License, Version 2.0 (the "License");
  45 + you may not use this file except in compliance with the License.
  46 + You may obtain a copy of the License at
  47 +
  48 + http://www.apache.org/licenses/LICENSE-2.0
  49 +
  50 + Unless required by applicable law or agreed to in writing, software
  51 + distributed under the License is distributed on an "AS IS" BASIS,
  52 + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  53 + See the License for the specific language governing permissions and
  54 + limitations under the License.
  55 +
  56 +
40 57 ## NIMSDK_LITE
41 58  
42 59 Copyright 2017 Netease
... ...
ParentAssistant/Pods/Target Support Files/Pods-ParentAssistant/Pods-ParentAssistant-acknowledgements.plist
... ... @@ -62,6 +62,29 @@ THE SOFTWARE IS PROVIDED &#39;AS IS&#39;, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLI
62 62 </dict>
63 63 <dict>
64 64 <key>FooterText</key>
  65 + <string> Copyright 1999-2016 Alibaba Group Holding Ltd.
  66 +
  67 + Licensed under the Apache License, Version 2.0 (the "License");
  68 + you may not use this file except in compliance with the License.
  69 + You may obtain a copy of the License at
  70 +
  71 + http://www.apache.org/licenses/LICENSE-2.0
  72 +
  73 + Unless required by applicable law or agreed to in writing, software
  74 + distributed under the License is distributed on an "AS IS" BASIS,
  75 + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  76 + See the License for the specific language governing permissions and
  77 + limitations under the License.
  78 +</string>
  79 + <key>License</key>
  80 + <string>Apache License 2.0</string>
  81 + <key>Title</key>
  82 + <string>HandyJSON</string>
  83 + <key>Type</key>
  84 + <string>PSGroupSpecifier</string>
  85 + </dict>
  86 + <dict>
  87 + <key>FooterText</key>
65 88 <string>Copyright 2017 Netease </string>
66 89 <key>License</key>
67 90 <string>Copyright</string>
... ...
ParentAssistant/Pods/Target Support Files/Pods-ParentAssistant/Pods-ParentAssistant-frameworks.sh
... ... @@ -136,6 +136,7 @@ strip_invalid_archs() {
136 136 if [[ "$CONFIGURATION" == "Debug" ]]; then
137 137 install_framework "${BUILT_PRODUCTS_DIR}/Alamofire/Alamofire.framework"
138 138 install_framework "${BUILT_PRODUCTS_DIR}/DZNEmptyDataSet/DZNEmptyDataSet.framework"
  139 + install_framework "${BUILT_PRODUCTS_DIR}/HandyJSON/HandyJSON.framework"
139 140 install_framework "${BUILT_PRODUCTS_DIR}/Reachability/Reachability.framework"
140 141 install_framework "${BUILT_PRODUCTS_DIR}/SDWebImage/SDWebImage.framework"
141 142 install_framework "${BUILT_PRODUCTS_DIR}/SVProgressHUD/SVProgressHUD.framework"
... ... @@ -146,6 +147,7 @@ fi
146 147 if [[ "$CONFIGURATION" == "Release" ]]; then
147 148 install_framework "${BUILT_PRODUCTS_DIR}/Alamofire/Alamofire.framework"
148 149 install_framework "${BUILT_PRODUCTS_DIR}/DZNEmptyDataSet/DZNEmptyDataSet.framework"
  150 + install_framework "${BUILT_PRODUCTS_DIR}/HandyJSON/HandyJSON.framework"
149 151 install_framework "${BUILT_PRODUCTS_DIR}/Reachability/Reachability.framework"
150 152 install_framework "${BUILT_PRODUCTS_DIR}/SDWebImage/SDWebImage.framework"
151 153 install_framework "${BUILT_PRODUCTS_DIR}/SVProgressHUD/SVProgressHUD.framework"
... ...
ParentAssistant/Pods/Target Support Files/Pods-ParentAssistant/Pods-ParentAssistant.debug.xcconfig
1 1 ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES
2   -FRAMEWORK_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/Alamofire" "${PODS_CONFIGURATION_BUILD_DIR}/DZNEmptyDataSet" "${PODS_CONFIGURATION_BUILD_DIR}/Reachability" "${PODS_CONFIGURATION_BUILD_DIR}/SDWebImage" "${PODS_CONFIGURATION_BUILD_DIR}/SVProgressHUD" "${PODS_CONFIGURATION_BUILD_DIR}/SwiftHash" "${PODS_CONFIGURATION_BUILD_DIR}/Toast" "${PODS_CONFIGURATION_BUILD_DIR}/XRCarouselView" "${PODS_ROOT}/NIMSDK_LITE/NIMSDK" "${PODS_ROOT}/UMCAnalytics" "${PODS_ROOT}/UMCCommon" "${PODS_ROOT}/UMCErrorCatch" "${PODS_ROOT}/UMCSecurityPlugins/thirdparties"
  2 +FRAMEWORK_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/Alamofire" "${PODS_CONFIGURATION_BUILD_DIR}/DZNEmptyDataSet" "${PODS_CONFIGURATION_BUILD_DIR}/HandyJSON" "${PODS_CONFIGURATION_BUILD_DIR}/Reachability" "${PODS_CONFIGURATION_BUILD_DIR}/SDWebImage" "${PODS_CONFIGURATION_BUILD_DIR}/SVProgressHUD" "${PODS_CONFIGURATION_BUILD_DIR}/SwiftHash" "${PODS_CONFIGURATION_BUILD_DIR}/Toast" "${PODS_CONFIGURATION_BUILD_DIR}/XRCarouselView" "${PODS_ROOT}/NIMSDK_LITE/NIMSDK" "${PODS_ROOT}/UMCAnalytics" "${PODS_ROOT}/UMCCommon" "${PODS_ROOT}/UMCErrorCatch" "${PODS_ROOT}/UMCSecurityPlugins/thirdparties"
3 3 GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1
4 4 HEADER_SEARCH_PATHS = $(inherited) "${PODS_ROOT}/Headers/Public" "${PODS_ROOT}/Headers/Public/NIMSDK_LITE" "${PODS_ROOT}/Headers/Public/UMCAnalytics" "${PODS_ROOT}/Headers/Public/UMCCommon" "${PODS_ROOT}/Headers/Public/UMCErrorCatch" "${PODS_ROOT}/Headers/Public/UMCSecurityPlugins"
5 5 LD_RUNPATH_SEARCH_PATHS = $(inherited) '@executable_path/Frameworks' '@loader_path/Frameworks'
6 6 LIBRARY_SEARCH_PATHS = $(inherited) "${PODS_ROOT}/NIMSDK_LITE/NIMSDK/Libs"
7   -OTHER_CFLAGS = $(inherited) -iquote "${PODS_CONFIGURATION_BUILD_DIR}/Alamofire/Alamofire.framework/Headers" -iquote "${PODS_CONFIGURATION_BUILD_DIR}/DZNEmptyDataSet/DZNEmptyDataSet.framework/Headers" -iquote "${PODS_CONFIGURATION_BUILD_DIR}/Reachability/Reachability.framework/Headers" -iquote "${PODS_CONFIGURATION_BUILD_DIR}/SDWebImage/SDWebImage.framework/Headers" -iquote "${PODS_CONFIGURATION_BUILD_DIR}/SVProgressHUD/SVProgressHUD.framework/Headers" -iquote "${PODS_CONFIGURATION_BUILD_DIR}/SwiftHash/SwiftHash.framework/Headers" -iquote "${PODS_CONFIGURATION_BUILD_DIR}/Toast/Toast.framework/Headers" -iquote "${PODS_CONFIGURATION_BUILD_DIR}/XRCarouselView/XRCarouselView.framework/Headers" -isystem "${PODS_ROOT}/Headers/Public" -isystem "${PODS_ROOT}/Headers/Public/NIMSDK_LITE" -isystem "${PODS_ROOT}/Headers/Public/UMCAnalytics" -isystem "${PODS_ROOT}/Headers/Public/UMCCommon" -isystem "${PODS_ROOT}/Headers/Public/UMCErrorCatch" -isystem "${PODS_ROOT}/Headers/Public/UMCSecurityPlugins"
8   -OTHER_LDFLAGS = $(inherited) -ObjC -l"aacplus" -l"c++" -l"crypto" -l"event" -l"sqlite3" -l"sqlite3.0" -l"ssl" -l"z" -framework "AVFoundation" -framework "Alamofire" -framework "AudioToolbox" -framework "CoreMedia" -framework "CoreTelephony" -framework "DZNEmptyDataSet" -framework "NIMSDK" -framework "Reachability" -framework "SDWebImage" -framework "SVProgressHUD" -framework "SecurityEnvSDK" -framework "SwiftHash" -framework "SystemConfiguration" -framework "Toast" -framework "UMAnalytics" -framework "UMCommon" -framework "UMErrorCatch" -framework "UTDID" -framework "VideoToolbox" -framework "XRCarouselView"
  7 +OTHER_CFLAGS = $(inherited) -iquote "${PODS_CONFIGURATION_BUILD_DIR}/Alamofire/Alamofire.framework/Headers" -iquote "${PODS_CONFIGURATION_BUILD_DIR}/DZNEmptyDataSet/DZNEmptyDataSet.framework/Headers" -iquote "${PODS_CONFIGURATION_BUILD_DIR}/HandyJSON/HandyJSON.framework/Headers" -iquote "${PODS_CONFIGURATION_BUILD_DIR}/Reachability/Reachability.framework/Headers" -iquote "${PODS_CONFIGURATION_BUILD_DIR}/SDWebImage/SDWebImage.framework/Headers" -iquote "${PODS_CONFIGURATION_BUILD_DIR}/SVProgressHUD/SVProgressHUD.framework/Headers" -iquote "${PODS_CONFIGURATION_BUILD_DIR}/SwiftHash/SwiftHash.framework/Headers" -iquote "${PODS_CONFIGURATION_BUILD_DIR}/Toast/Toast.framework/Headers" -iquote "${PODS_CONFIGURATION_BUILD_DIR}/XRCarouselView/XRCarouselView.framework/Headers" -isystem "${PODS_ROOT}/Headers/Public" -isystem "${PODS_ROOT}/Headers/Public/NIMSDK_LITE" -isystem "${PODS_ROOT}/Headers/Public/UMCAnalytics" -isystem "${PODS_ROOT}/Headers/Public/UMCCommon" -isystem "${PODS_ROOT}/Headers/Public/UMCErrorCatch" -isystem "${PODS_ROOT}/Headers/Public/UMCSecurityPlugins"
  8 +OTHER_LDFLAGS = $(inherited) -ObjC -l"aacplus" -l"c++" -l"crypto" -l"event" -l"sqlite3" -l"sqlite3.0" -l"ssl" -l"z" -framework "AVFoundation" -framework "Alamofire" -framework "AudioToolbox" -framework "CoreMedia" -framework "CoreTelephony" -framework "DZNEmptyDataSet" -framework "HandyJSON" -framework "NIMSDK" -framework "Reachability" -framework "SDWebImage" -framework "SVProgressHUD" -framework "SecurityEnvSDK" -framework "SwiftHash" -framework "SystemConfiguration" -framework "Toast" -framework "UMAnalytics" -framework "UMCommon" -framework "UMErrorCatch" -framework "UTDID" -framework "VideoToolbox" -framework "XRCarouselView"
9 9 OTHER_SWIFT_FLAGS = $(inherited) "-D" "COCOAPODS"
10 10 PODS_BUILD_DIR = ${BUILD_DIR}
11 11 PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)
... ...
ParentAssistant/Pods/Target Support Files/Pods-ParentAssistant/Pods-ParentAssistant.release.xcconfig
1 1 ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES
2   -FRAMEWORK_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/Alamofire" "${PODS_CONFIGURATION_BUILD_DIR}/DZNEmptyDataSet" "${PODS_CONFIGURATION_BUILD_DIR}/Reachability" "${PODS_CONFIGURATION_BUILD_DIR}/SDWebImage" "${PODS_CONFIGURATION_BUILD_DIR}/SVProgressHUD" "${PODS_CONFIGURATION_BUILD_DIR}/SwiftHash" "${PODS_CONFIGURATION_BUILD_DIR}/Toast" "${PODS_CONFIGURATION_BUILD_DIR}/XRCarouselView" "${PODS_ROOT}/NIMSDK_LITE/NIMSDK" "${PODS_ROOT}/UMCAnalytics" "${PODS_ROOT}/UMCCommon" "${PODS_ROOT}/UMCErrorCatch" "${PODS_ROOT}/UMCSecurityPlugins/thirdparties"
  2 +FRAMEWORK_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/Alamofire" "${PODS_CONFIGURATION_BUILD_DIR}/DZNEmptyDataSet" "${PODS_CONFIGURATION_BUILD_DIR}/HandyJSON" "${PODS_CONFIGURATION_BUILD_DIR}/Reachability" "${PODS_CONFIGURATION_BUILD_DIR}/SDWebImage" "${PODS_CONFIGURATION_BUILD_DIR}/SVProgressHUD" "${PODS_CONFIGURATION_BUILD_DIR}/SwiftHash" "${PODS_CONFIGURATION_BUILD_DIR}/Toast" "${PODS_CONFIGURATION_BUILD_DIR}/XRCarouselView" "${PODS_ROOT}/NIMSDK_LITE/NIMSDK" "${PODS_ROOT}/UMCAnalytics" "${PODS_ROOT}/UMCCommon" "${PODS_ROOT}/UMCErrorCatch" "${PODS_ROOT}/UMCSecurityPlugins/thirdparties"
3 3 GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1
4 4 HEADER_SEARCH_PATHS = $(inherited) "${PODS_ROOT}/Headers/Public" "${PODS_ROOT}/Headers/Public/NIMSDK_LITE" "${PODS_ROOT}/Headers/Public/UMCAnalytics" "${PODS_ROOT}/Headers/Public/UMCCommon" "${PODS_ROOT}/Headers/Public/UMCErrorCatch" "${PODS_ROOT}/Headers/Public/UMCSecurityPlugins"
5 5 LD_RUNPATH_SEARCH_PATHS = $(inherited) '@executable_path/Frameworks' '@loader_path/Frameworks'
6 6 LIBRARY_SEARCH_PATHS = $(inherited) "${PODS_ROOT}/NIMSDK_LITE/NIMSDK/Libs"
7   -OTHER_CFLAGS = $(inherited) -iquote "${PODS_CONFIGURATION_BUILD_DIR}/Alamofire/Alamofire.framework/Headers" -iquote "${PODS_CONFIGURATION_BUILD_DIR}/DZNEmptyDataSet/DZNEmptyDataSet.framework/Headers" -iquote "${PODS_CONFIGURATION_BUILD_DIR}/Reachability/Reachability.framework/Headers" -iquote "${PODS_CONFIGURATION_BUILD_DIR}/SDWebImage/SDWebImage.framework/Headers" -iquote "${PODS_CONFIGURATION_BUILD_DIR}/SVProgressHUD/SVProgressHUD.framework/Headers" -iquote "${PODS_CONFIGURATION_BUILD_DIR}/SwiftHash/SwiftHash.framework/Headers" -iquote "${PODS_CONFIGURATION_BUILD_DIR}/Toast/Toast.framework/Headers" -iquote "${PODS_CONFIGURATION_BUILD_DIR}/XRCarouselView/XRCarouselView.framework/Headers" -isystem "${PODS_ROOT}/Headers/Public" -isystem "${PODS_ROOT}/Headers/Public/NIMSDK_LITE" -isystem "${PODS_ROOT}/Headers/Public/UMCAnalytics" -isystem "${PODS_ROOT}/Headers/Public/UMCCommon" -isystem "${PODS_ROOT}/Headers/Public/UMCErrorCatch" -isystem "${PODS_ROOT}/Headers/Public/UMCSecurityPlugins"
8   -OTHER_LDFLAGS = $(inherited) -ObjC -l"aacplus" -l"c++" -l"crypto" -l"event" -l"sqlite3" -l"sqlite3.0" -l"ssl" -l"z" -framework "AVFoundation" -framework "Alamofire" -framework "AudioToolbox" -framework "CoreMedia" -framework "CoreTelephony" -framework "DZNEmptyDataSet" -framework "NIMSDK" -framework "Reachability" -framework "SDWebImage" -framework "SVProgressHUD" -framework "SecurityEnvSDK" -framework "SwiftHash" -framework "SystemConfiguration" -framework "Toast" -framework "UMAnalytics" -framework "UMCommon" -framework "UMErrorCatch" -framework "UTDID" -framework "VideoToolbox" -framework "XRCarouselView"
  7 +OTHER_CFLAGS = $(inherited) -iquote "${PODS_CONFIGURATION_BUILD_DIR}/Alamofire/Alamofire.framework/Headers" -iquote "${PODS_CONFIGURATION_BUILD_DIR}/DZNEmptyDataSet/DZNEmptyDataSet.framework/Headers" -iquote "${PODS_CONFIGURATION_BUILD_DIR}/HandyJSON/HandyJSON.framework/Headers" -iquote "${PODS_CONFIGURATION_BUILD_DIR}/Reachability/Reachability.framework/Headers" -iquote "${PODS_CONFIGURATION_BUILD_DIR}/SDWebImage/SDWebImage.framework/Headers" -iquote "${PODS_CONFIGURATION_BUILD_DIR}/SVProgressHUD/SVProgressHUD.framework/Headers" -iquote "${PODS_CONFIGURATION_BUILD_DIR}/SwiftHash/SwiftHash.framework/Headers" -iquote "${PODS_CONFIGURATION_BUILD_DIR}/Toast/Toast.framework/Headers" -iquote "${PODS_CONFIGURATION_BUILD_DIR}/XRCarouselView/XRCarouselView.framework/Headers" -isystem "${PODS_ROOT}/Headers/Public" -isystem "${PODS_ROOT}/Headers/Public/NIMSDK_LITE" -isystem "${PODS_ROOT}/Headers/Public/UMCAnalytics" -isystem "${PODS_ROOT}/Headers/Public/UMCCommon" -isystem "${PODS_ROOT}/Headers/Public/UMCErrorCatch" -isystem "${PODS_ROOT}/Headers/Public/UMCSecurityPlugins"
  8 +OTHER_LDFLAGS = $(inherited) -ObjC -l"aacplus" -l"c++" -l"crypto" -l"event" -l"sqlite3" -l"sqlite3.0" -l"ssl" -l"z" -framework "AVFoundation" -framework "Alamofire" -framework "AudioToolbox" -framework "CoreMedia" -framework "CoreTelephony" -framework "DZNEmptyDataSet" -framework "HandyJSON" -framework "NIMSDK" -framework "Reachability" -framework "SDWebImage" -framework "SVProgressHUD" -framework "SecurityEnvSDK" -framework "SwiftHash" -framework "SystemConfiguration" -framework "Toast" -framework "UMAnalytics" -framework "UMCommon" -framework "UMErrorCatch" -framework "UTDID" -framework "VideoToolbox" -framework "XRCarouselView"
9 9 OTHER_SWIFT_FLAGS = $(inherited) "-D" "COCOAPODS"
10 10 PODS_BUILD_DIR = ${BUILD_DIR}
11 11 PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)
... ...
ParentAssistant/Pods/Target Support Files/XRCarouselView/Info.plist
... ... @@ -2,30 +2,25 @@
2 2 <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
3 3 <plist version="1.0">
4 4 <dict>
5   - <key>CFBundleDevelopmentRegion</key>
6   - <string>en</string>
7   - <key>NSAppTransportSecurity</key>
8   - <dict>
9   - <key>NSAllowsArbitraryLoads</key>
10   - <true/>
11   - </dict>
12   - <key>CFBundleExecutable</key>
13   - <string>${EXECUTABLE_NAME}</string>
14   - <key>CFBundleIdentifier</key>
15   - <string>${PRODUCT_BUNDLE_IDENTIFIER}</string>
16   - <key>CFBundleInfoDictionaryVersion</key>
17   - <string>6.0</string>
18   - <key>CFBundleName</key>
19   - <string>${PRODUCT_NAME}</string>
20   - <key>CFBundlePackageType</key>
21   - <string>FMWK</string>
22   - <key>CFBundleShortVersionString</key>
23   - <string>2.5.6</string>
24   - <key>CFBundleSignature</key>
25   - <string>????</string>
26   - <key>CFBundleVersion</key>
27   - <string>${CURRENT_PROJECT_VERSION}</string>
28   - <key>NSPrincipalClass</key>
29   - <string></string>
  5 + <key>CFBundleDevelopmentRegion</key>
  6 + <string>en</string>
  7 + <key>CFBundleExecutable</key>
  8 + <string>${EXECUTABLE_NAME}</string>
  9 + <key>CFBundleIdentifier</key>
  10 + <string>${PRODUCT_BUNDLE_IDENTIFIER}</string>
  11 + <key>CFBundleInfoDictionaryVersion</key>
  12 + <string>6.0</string>
  13 + <key>CFBundleName</key>
  14 + <string>${PRODUCT_NAME}</string>
  15 + <key>CFBundlePackageType</key>
  16 + <string>FMWK</string>
  17 + <key>CFBundleShortVersionString</key>
  18 + <string>2.5.6</string>
  19 + <key>CFBundleSignature</key>
  20 + <string>????</string>
  21 + <key>CFBundleVersion</key>
  22 + <string>${CURRENT_PROJECT_VERSION}</string>
  23 + <key>NSPrincipalClass</key>
  24 + <string></string>
30 25 </dict>
31 26 </plist>
... ...
ParentAssistant/Pods/UMCAnalytics/UMAnalytics.framework/5.4.1_93441921a5_20171225154441
... ... @@ -1 +0,0 @@
1   -5.4.1
ParentAssistant/Pods/UMCAnalytics/UMAnalytics.framework/5.5.0_443a85fb47_20180402175324 0 → 100644
... ... @@ -0,0 +1 @@
  1 +5.5.0
... ...
ParentAssistant/Pods/UMCAnalytics/UMAnalytics.framework/Versions/A/UMAnalytics
No preview for this file type
ParentAssistant/Pods/UMCCommon/UMCommon.framework/1.4.2_79702ebb53_20180227131045
... ... @@ -1 +0,0 @@
1   -1.4.2
ParentAssistant/Pods/UMCCommon/UMCommon.framework/1.5.0_a340324cb9_20180402175229 0 → 100644
... ... @@ -0,0 +1 @@
  1 +1.5.0
... ...
ParentAssistant/Pods/UMCCommon/UMCommon.framework/Versions/A/Headers/UMConfigure.h
... ... @@ -13,19 +13,16 @@
13 13 /** 初始化友盟所有组件产品
14 14 @param appKey 开发者在友盟官网申请的appkey.
15 15 @param channel 渠道标识,可设置nil表示"App Store".
16   - @return;
17 16 */
18 17 + (void)initWithAppkey:(NSString *)appKey channel:(NSString *)channel;
19 18  
20 19 /** 设置是否在console输出sdk的log信息.
21 20 @param bFlag 默认NO(不输出log); 设置为YES, 输出可供调试参考的log信息. 发布产品时必须设置为NO.
22   - @return void.
23 21 */
24 22 + (void)setLogEnabled:(BOOL)bFlag;
25 23  
26 24 /** 设置是否对日志信息进行加密, 默认NO(不加密).
27 25 @param value 设置为YES, umeng SDK 会将日志信息做加密处理
28   - @return void.
29 26 */
30 27 + (void)setEncryptEnabled:(BOOL)value;
31 28  
... ...
ParentAssistant/Pods/UMCCommon/UMCommon.framework/Versions/A/UMCommon
No preview for this file type