diff --git a/.gitignore b/.gitignore index f2f89fcc..6bec327e 100644 --- a/.gitignore +++ b/.gitignore @@ -2,3 +2,4 @@ Build *xcuserdata* *xcscmblueprint* +nRF Toolbox.xcworkspace/xcshareddata diff --git a/Podfile b/Podfile index 7fe83457..5a5d6ac0 100644 --- a/Podfile +++ b/Podfile @@ -1,7 +1,7 @@ use_frameworks! target "nRF Toolbox" do pod 'iOSDFULibrary', '~> 4.0' - pod 'EVReflection', '~> 5.0' + pod 'EVReflection' pod 'SWRevealViewController', '~> 2.3' pod 'CorePlot', '~> 2.2' end diff --git a/Podfile.lock b/Podfile.lock index 625638a5..95ce7ed6 100644 --- a/Podfile.lock +++ b/Podfile.lock @@ -1,26 +1,34 @@ PODS: - CorePlot (2.2) - - EVReflection (5.4.4): - - EVReflection/Core (= 5.4.4) - - EVReflection/Core (5.4.4) - - iOSDFULibrary (4.1.1): + - EVReflection (5.10.1): + - EVReflection/Core (= 5.10.1) + - EVReflection/Core (5.10.1) + - iOSDFULibrary (4.2.2): - Zip (~> 1.0) - SWRevealViewController (2.3.0) - Zip (1.1.0) DEPENDENCIES: - CorePlot (~> 2.2) - - EVReflection (~> 5.0) + - EVReflection - iOSDFULibrary (~> 4.0) - SWRevealViewController (~> 2.3) +SPEC REPOS: + https://github.com/cocoapods/specs.git: + - CorePlot + - EVReflection + - iOSDFULibrary + - SWRevealViewController + - Zip + SPEC CHECKSUMS: CorePlot: cbe0c6e14220705e32e06a89c7d6a5a908b7d7d8 - EVReflection: 3f6d255f8173ec81a2a6aad81482f253cff82b55 - iOSDFULibrary: 35e8a9e23d67759d57af9924d7a808e48c04583a + EVReflection: 8124de482178d34ccd56473e16cd95990f9a1113 + iOSDFULibrary: 65a30a36d33ef451ef2d6c2b6a002a26eed786af SWRevealViewController: 6d3fd97f70112fd7cef9de14df4260eacce4c63a Zip: 8877eede3dda76bcac281225c20e71c25270774c -PODFILE CHECKSUM: 27aaa69ef26831a42d969fc2d11fc0913adbff1e +PODFILE CHECKSUM: e75772c320fca4fa99e29984093539a6ec16fab2 -COCOAPODS: 1.4.0 +COCOAPODS: 1.7.0 diff --git a/Pods/EVReflection/README.md b/Pods/EVReflection/README.md index b8b48281..4885962d 100755 --- a/Pods/EVReflection/README.md +++ b/Pods/EVReflection/README.md @@ -5,16 +5,15 @@ [![Build Status](https://travis-ci.org/evermeer/EVReflection.svg?style=flat)](https://travis-ci.org/evermeer/EVReflection) --> [![Issues](https://img.shields.io/github/issues-raw/evermeer/EVReflection.svg?style=flat)](https://github.com/evermeer/EVReflection/issues) -[![Coverage](https://img.shields.io/badge/coverage-74%25-yellow.svg?style=flat)](https://raw.githubusercontent.com/evermeer/EVReflection/master/UnitTests/coverage.png) +[![Coverage](https://img.shields.io/badge/coverage-80%25-yellow.svg?style=flat)](https://raw.githubusercontent.com/evermeer/EVReflection/master/UnitTests/coverage.png) [![Documentation](https://img.shields.io/badge/documented-97%25-green.svg?style=flat)](http://cocoadocs.org/docsets/EVReflection/3.7.0/) [![Stars](https://img.shields.io/github/stars/evermeer/EVReflection.svg?style=flat)](https://github.com/evermeer/EVReflection/stargazers) [![Awesome](https://cdn.rawgit.com/sindresorhus/awesome/d7305f38d29fed78fa85652e3a63e154dd8e8829/media/badge.svg)](https://github.com/matteocrippa/awesome-swift#json) -[![Downloads](https://img.shields.io/cocoapods/dt/EVReflection.svg?style=flat)](https://cocoapods.org/pods/EVReflection) [![Version](https://img.shields.io/cocoapods/v/EVReflection.svg?style=flat)](http://cocoadocs.org/docsets/EVReflection) [![Carthage compatible](https://img.shields.io/badge/Carthage-compatible-4BC51D.svg?style=flat)](https://github.com/Carthage/Carthage) -[![Language](https://img.shields.io/badge/language-swift%204-f48041.svg?style=flat)](https://developer.apple.com/swift) +[![Language](https://img.shields.io/badge/language-swift%204%20&%205-f48041.svg?style=flat)](https://developer.apple.com/swift) [![Platform](https://img.shields.io/cocoapods/p/EVReflection.svg?style=flat)](http://cocoadocs.org/docsets/EVReflection) [![License](https://img.shields.io/cocoapods/l/EVReflection.svg?style=flat)](http://cocoadocs.org/docsets/EVReflection) @@ -26,9 +25,7 @@ # General information -If you have a question and don't want to create an issue, then we can [![Join the chat at https://gitter.im/evermeer/EVReflection](https://badges.gitter.im/evermeer/EVReflection.svg)](https://gitter.im/evermeer/EVReflection?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge) - -At this moment the master branch is for Swift 4.0 If you want to continue using EVReflection in an older version, then use the corresponding branch. +At this moment the master branch is tested with Swift 4.2 and 5.0 beta If you want to continue using EVReflection in an older version, then use the corresponding branch. Run the unit tests to see EVReflection in action. EVReflection is used in [EVCloudKitDao](https://github.com/evermeer/EVCloudKitDao) and [EVWordPressAPI](https://github.com/evermeer/EVWordPressAPI) @@ -36,7 +33,7 @@ EVReflection is used in [EVCloudKitDao](https://github.com/evermeer/EVCloudKitDa In most cases EVReflection is very easy to use. Just take a look the section [It's easy to use](https://github.com/evermeer/EVReflection#its-easy-to-use). But if you do want to do non standard specific things, then EVReflection will offer you an extensive range of functionality. ### Available extensions -There are extension available for using EVReflection with [XMLDictionairy](https://github.com/nicklockwood/XMLDictionary), [CloudKit](https://developer.apple.com/library/content/documentation/DataManagement/Conceptual/CloudKitQuickStart/Introduction/Introduction.html), [Alamofire](https://github.com/Alamofire/Alamofire) and [Moya](https://github.com/Moya/Moya) with [RxSwift](https://github.com/ReactiveX/RxSwift) or [ReactiveSwift](https://github.com/ReactiveSwift/ReactiveSwift) +There are extension available for using EVReflection with [XMLDictionairy](https://github.com/nicklockwood/XMLDictionary), [Realm](https://realm.io), [CloudKit](https://developer.apple.com/library/content/documentation/DataManagement/Conceptual/CloudKitQuickStart/Introduction/Introduction.html), [Alamofire](https://github.com/Alamofire/Alamofire) and [Moya](https://github.com/Moya/Moya) with [RxSwift](https://github.com/ReactiveX/RxSwift) or [ReactiveSwift](https://github.com/ReactiveSwift/ReactiveSwift) - [XML](https://github.com/evermeer/EVReflection/tree/master/Source/XML) - [CloudKit](https://github.com/evermeer/EVReflection/tree/master/Source/CloudKit) @@ -57,10 +54,15 @@ All these extens can be installed by adding something like this in your podfile: pod 'EVReflection/MoyaRxSwift' ``` +For Carthage there is not (yet) an extension for all above extension. If needed, please let me know. For carthage you can use: + +``` +github "evermeer/EVReflection" +``` + ## Index - [Main features of EVReflection](https://github.com/evermeer/EVReflection#main-features-of-evreflection) -- [Quick start](https://github.com/evermeer/EVReflection#quick-start) - [It's easy to use](https://github.com/evermeer/EVReflection#its-easy-to-use) - [If you have XML instead of JSON](https://github.com/evermeer/EVReflection#if-you-have-xml-instead-of-json) - [Using EVReflection in your own App](https://github.com/evermeer/EVReflection#using-evreflection-in-your-own-app) @@ -91,9 +93,6 @@ pod 'EVReflection/MoyaRxSwift' - Mapping objects from one type to an other - Support for property mapping, converters, validators and key cleanup -## Quick start -For a quick start have a look at this [YouTube tutorial](https://www.youtube.com/watch?v=LPWsQD2nxqg). - ## It's easy to use: Defining an object. You only have to set EVObject as it's base class (or extend an NSObject with EVReflectable): @@ -387,7 +386,7 @@ If you have a custom type that requires special conversion, then you can extend ```swift extension List : EVCustomReflectable { - public func constructWith(value: Any?) { + public func constructWith(value: Any?) -> EVCustomReflectable { if let array = value as? [NSDictionary] { self.removeAll() for dict in array { @@ -396,6 +395,7 @@ extension List : EVCustomReflectable { } } } + return self } public func toCodableValue() -> Any { return self.enumerated().map { ($0.element as? EVReflectable)?.toDictionary() ?? NSDictionary() } diff --git a/Pods/EVReflection/Source/ConversionOptions.swift b/Pods/EVReflection/Source/ConversionOptions.swift index eae82a5d..cde83722 100644 --- a/Pods/EVReflection/Source/ConversionOptions.swift +++ b/Pods/EVReflection/Source/ConversionOptions.swift @@ -37,6 +37,8 @@ public struct ConversionOptions: OptionSet, CustomStringConvertible { /// Execute an encoding function on all values public static let Encoding = ConversionOptions(rawValue: 32) + // Just for bein able to show all + public static var All: ConversionOptions = [PropertyConverter, PropertyMapping, SkipPropertyValue, KeyCleanup, Decoding, Encoding] /// Default used for NSCoding public static var DefaultNSCoding: ConversionOptions = [None] /// Default used for comparing / hashing functions diff --git a/Pods/EVReflection/Source/EVArrayExtension.swift b/Pods/EVReflection/Source/EVArrayExtension.swift index 85156cc9..1f15be87 100755 --- a/Pods/EVReflection/Source/EVArrayExtension.swift +++ b/Pods/EVReflection/Source/EVArrayExtension.swift @@ -19,7 +19,7 @@ public extension Array where Element: NSObject { - parameter json: The json string - parameter conversionOptions: Option set for the various conversion options. */ - public init(json: String?, conversionOptions: ConversionOptions = .DefaultDeserialize, forKeyPath: String? = nil) { + init(json: String?, conversionOptions: ConversionOptions = .DefaultDeserialize, forKeyPath: String? = nil) { self.init() let arrayTypeInstance = getArrayTypeInstance(self) let newArray = EVReflection.arrayFromJson(type: arrayTypeInstance, json: json, conversionOptions: conversionOptions, forKeyPath: forKeyPath) @@ -35,7 +35,7 @@ public extension Array where Element: NSObject { - parameter json: The json string - parameter conversionOptions: Option set for the various conversion options. */ - public init(data: Data?, conversionOptions: ConversionOptions = .DefaultDeserialize, forKeyPath: String? = nil) { + init(data: Data?, conversionOptions: ConversionOptions = .DefaultDeserialize, forKeyPath: String? = nil) { self.init() let arrayTypeInstance = getArrayTypeInstance(self) let newArray = EVReflection.arrayFromData(nil, type:arrayTypeInstance, data: data, conversionOptions: conversionOptions, forKeyPath: forKeyPath) @@ -50,7 +50,7 @@ public extension Array where Element: NSObject { - parameter json: The json string - parameter conversionOptions: Option set for the various conversion options. */ - public init(dictionaryArray: [NSDictionary], conversionOptions: ConversionOptions = .DefaultDeserialize) { + init(dictionaryArray: [NSDictionary], conversionOptions: ConversionOptions = .DefaultDeserialize) { self.init() for item in dictionaryArray { let arrayTypeInstance = getArrayTypeInstance(self) @@ -65,7 +65,7 @@ public extension Array where Element: NSObject { - parameter json: The json string - parameter conversionOptions: Option set for the various conversion options. */ - public init(dictionary: NSDictionary, forKeyPath: String, conversionOptions: ConversionOptions = .DefaultDeserialize) { + init(dictionary: NSDictionary, forKeyPath: String, conversionOptions: ConversionOptions = .DefaultDeserialize) { self.init() guard let dictionaryArray = dictionary.value(forKeyPath: forKeyPath) as? [NSDictionary] else { @@ -88,7 +88,7 @@ public extension Array where Element: NSObject { - returns: The object type */ - public func getArrayTypeInstance(_ arr: Array) -> T { + func getArrayTypeInstance(_ arr: Array) -> T { return arr.getTypeInstance() } @@ -97,7 +97,7 @@ public extension Array where Element: NSObject { - returns: The object type */ - public func getTypeInstance( + func getTypeInstance( ) -> T { let nsobjectype: NSObject.Type = T.self let nsobject: NSObject = nsobjectype.init() @@ -113,7 +113,7 @@ public extension Array where Element: NSObject { - returns: The object type */ - public func getTypeAsString() -> String { + func getTypeAsString() -> String { let item = self.getTypeInstance() return NSStringFromClass(type(of:item)) } @@ -128,13 +128,27 @@ public extension Array where Element: EVReflectable { Convert this array to a json string - parameter conversionOptions: Option set for the various conversion options. - + - parameter prettyPrinted: Define if you want enters and indents + - returns: The json string */ - public func toJsonString(_ conversionOptions: ConversionOptions = .DefaultSerialize, prettyPrinted: Bool = false) -> String { + func toJsonString(_ conversionOptions: ConversionOptions = .DefaultSerialize, prettyPrinted: Bool = false) -> String { return "[\n" + self.map({($0).toJsonString(conversionOptions, prettyPrinted: prettyPrinted)}).joined(separator: ", \n") + "\n]" } + /** + Convert this array to a json data + + - parameter conversionOptions: Option set for the various conversion options. + - parameter prettyPrinted: Define if you want enters and indents + - parameter encoding: The string encoding defaulsts to .utf8 + + - returns: The json data + */ + func toJsonData(_ conversionOptions: ConversionOptions = .DefaultSerialize, prettyPrinted: Bool = false, encoding: String.Encoding = .utf8) -> Data { + return self.toJsonString(conversionOptions, prettyPrinted: prettyPrinted).data(using: encoding) ?? Data() + } + /** Returns the dictionary representation of this array. @@ -142,7 +156,7 @@ public extension Array where Element: EVReflectable { - returns: The array of dictionaries */ - public func toDictionaryArray(_ conversionOptions: ConversionOptions = .DefaultSerialize) -> NSArray { + func toDictionaryArray(_ conversionOptions: ConversionOptions = .DefaultSerialize) -> NSArray { return self.map({($0).toDictionary(conversionOptions)}) as NSArray } } @@ -158,7 +172,7 @@ public extension Array where Element: NSDictionary { - parameter json: The json string */ - public init(jsonArray: String) { + init(jsonArray: String) { self.init() let dictArray = EVReflection.dictionaryArrayFromJson(jsonArray) @@ -173,7 +187,7 @@ public extension Array where Element: NSDictionary { - parameter json: The json string */ - public init(dataArray: Data) { + init(dataArray: Data) { self.init(jsonArray: String(data: dataArray, encoding: .utf8) ?? "") } @@ -184,9 +198,53 @@ public extension Array where Element: NSDictionary { - returns: The json string */ - public func toJsonStringArray(prettyPrinted: Bool = false) -> String { + func toJsonStringArray(prettyPrinted: Bool = false) -> String { let jsonArray: [String] = self.map { ($0 as NSDictionary).toJsonString(prettyPrinted: prettyPrinted) as String } return "[\n" + jsonArray.joined(separator: ", \n") + "\n]" } } + +public extension NSArray { + func nestedArrayMap(_ element: (NSDictionary)->T) -> [[T]] { + return (self.map { + (($0 as? NSArray)?.map { + element($0 as? NSDictionary ?? NSDictionary()) + }) ?? [] + }) + } + + func doubleNestedArrayMap(_ element: (NSDictionary)->T) -> [[[T]]] { + return (self.map { + (($0 as? NSArray)?.nestedArrayMap { element($0) }) ?? [[]] + }) + } + + func tripleNestedArrayMap(_ element: (NSDictionary)->T) -> [[[[T]]]] { + return (self.map { + (($0 as? NSArray)?.doubleNestedArrayMap { element($0) }) ?? [[[]]] + }) + } + + func quadrupleNestedArrayMap(_ element: (NSDictionary)->T) -> [[[[[T]]]]] { + return (self.map { + (($0 as? NSArray)?.tripleNestedArrayMap { element($0) }) ?? [[[[]]]] + }) + } + + func quintupleNestedArrayMap(_ element: (NSDictionary)->T) -> [[[[[[T]]]]]] { + return (self.map { + (($0 as? NSArray)?.quadrupleNestedArrayMap { element($0) }) ?? [[[[[]]]]] + }) + } + + func sextupleNestedArrayMap(_ element: (NSDictionary)->T) -> [[[[[[[T]]]]]]] { + return (self.map { + (($0 as? NSArray)?.quintupleNestedArrayMap { element($0) }) ?? [[[[[[]]]]]] + }) + } + + // If you need deeper nesting, whell, then you probably see the pattern above that you need to implement :-) + // just name them septuple, octuple, nonuple and decuple + // I'm not sure how far swift can handle it, but you should not want something like that. +} diff --git a/Pods/EVReflection/Source/EVCustomReflectable.swift b/Pods/EVReflection/Source/EVCustomReflectable.swift new file mode 100644 index 00000000..7a9a8fbd --- /dev/null +++ b/Pods/EVReflection/Source/EVCustomReflectable.swift @@ -0,0 +1,16 @@ +// +// EVCustomReflectable.swift +// EVReflection +// +// Created by Edwin Vermeer on 27/10/2016. +// Copyright © 2016 evict. All rights reserved. +// + +import Foundation + +// Protocol that can be used for sub objects to define that parsing will be done in the parent using the 'setValue forKey' function +public protocol EVCustomReflectable { + static func constructWith(value: Any?) -> EVCustomReflectable? + func constructWith(value: Any?) -> EVCustomReflectable? + func toCodableValue() -> Any +} diff --git a/Pods/EVReflection/Source/EVDictionaryExtension.swift b/Pods/EVReflection/Source/EVDictionaryExtension.swift index 08dc7a77..c3195a6b 100755 --- a/Pods/EVReflection/Source/EVDictionaryExtension.swift +++ b/Pods/EVReflection/Source/EVDictionaryExtension.swift @@ -39,7 +39,7 @@ public extension NSDictionary { - parameter prettyPrinted: compact of pretty printed */ - public func toJsonString(prettyPrinted: Bool = false) -> String { + func toJsonString(prettyPrinted: Bool = false) -> String { let data = self.toJsonData(prettyPrinted: prettyPrinted) return String(data: data, encoding: .utf8) ?? "" } @@ -49,7 +49,7 @@ public extension NSDictionary { - parameter prettyPrinted: compact of pretty printed */ - public func toJsonData(prettyPrinted: Bool = false) -> Data { + func toJsonData(prettyPrinted: Bool = false) -> Data { do { if prettyPrinted { return try JSONSerialization.data(withJSONObject: self, options: .prettyPrinted) @@ -68,7 +68,7 @@ public extension NSMutableDictionary { - parameter dictionary: The 2nd dictionary that will be merged into this one */ - public func unionInPlace(dictionary: NSDictionary) { + func unionInPlace(dictionary: NSDictionary) { for (key, value) in dictionary { self[key] = value } @@ -79,7 +79,7 @@ public extension NSMutableDictionary { - parameter dictionary: The sequence that will be merged into this dictionary */ - public func unionInPlace(sequence: S) where + func unionInPlace(sequence: S) where S.Iterator.Element == (Key,Value) { for (key, value) in sequence { self[key] = value diff --git a/Pods/EVReflection/Source/EVObject.swift b/Pods/EVReflection/Source/EVObject.swift index f8e9e0d1..7aface3d 100755 --- a/Pods/EVReflection/Source/EVObject.swift +++ b/Pods/EVReflection/Source/EVObject.swift @@ -14,6 +14,7 @@ import Foundation */ @objcMembers open class EVObject: NSObject, NSCoding, EVReflectable { + // These are redundant in Swift 2+: CustomDebugStringConvertible, CustomStringConvertible, Hashable, Equatable /** @@ -26,7 +27,7 @@ open class EVObject: NSObject, NSCoding, EVReflectable { */ open override func setValue(_ value: Any!, forUndefinedKey key: String) { if let kvc = self as? EVGenericsKVC { - kvc.setGenericValue(value as AnyObject!, forUndefinedKey: key) + kvc.setGenericValue(value as AnyObject?, forUndefinedKey: key) } else { self.addStatusMessage(.IncorrectKey, message: "The class '\(EVReflection.swiftStringFromClass(self))' is not key value coding-compliant for the key '\(key)'") evPrint(.IncorrectKey, "\nWARNING: The class '\(EVReflection.swiftStringFromClass(self))' is not key value coding-compliant for the key '\(key)'\n There is no support for optional type, array of optionals or enum properties.\nAs a workaround you can implement the function 'setValue forUndefinedKey' for this. See the unit tests for more information\n") diff --git a/Pods/EVReflection/Source/EVReflectable.swift b/Pods/EVReflection/Source/EVReflectable.swift index 8ef2efb2..8ec0767e 100755 --- a/Pods/EVReflection/Source/EVReflectable.swift +++ b/Pods/EVReflection/Source/EVReflectable.swift @@ -8,12 +8,6 @@ import Foundation -// Protocol that can be used for sub objects to define that parsing will be done in the parent using the 'setValue forKey' function -public protocol EVCustomReflectable { - func constructWith(value: Any?) - func toCodableValue() -> Any -} - // MARK: - Protocol with the overridable functions. All functionality is added to this in the extension below. public protocol EVReflectable: class, NSObjectProtocol { /** @@ -95,7 +89,8 @@ public protocol EVReflectable: class, NSObjectProtocol { - returns: The custom object that will be parsed (single value, dictionary or array) */ func customConverter() -> AnyObject? - + +/* /** Declaration for Equatable == @@ -115,7 +110,7 @@ public protocol EVReflectable: class, NSObjectProtocol { - returns: False if the objects are the the same, otherwise true. */ static func !=(lhs: EVReflectable, rhs: EVReflectable) -> Bool - +*/ /** Protocol container property for the reflection statusses */ @@ -156,7 +151,7 @@ extension EVReflectable where Self: NSObject { public init(dictionary: NSDictionary, conversionOptions: ConversionOptions = .DefaultDeserialize, forKeyPath: String? = nil) { self.init() if let v = self as? EVCustomReflectable { - v.constructWith(value: dictionary) + let _ = v.constructWith(value: dictionary) } else { EVReflection.setPropertiesfromDictionary(dictionary, anyObject: self, conversionOptions: conversionOptions, forKeyPath: forKeyPath) } @@ -172,7 +167,7 @@ extension EVReflectable where Self: NSObject { self.init() let dictionary = EVReflection.dictionaryFromJson(json) if let v = self as? EVCustomReflectable { - v.constructWith(value: dictionary) + let _ = v.constructWith(value: dictionary) } else { EVReflection.setPropertiesfromDictionary(dictionary, anyObject: self, conversionOptions: conversionOptions, forKeyPath: forKeyPath) } @@ -188,7 +183,7 @@ extension EVReflectable where Self: NSObject { self.init() let dictionary: NSDictionary = (((try! JSONSerialization.jsonObject(with: data, options: []) as? NSDictionary)) ?? NSDictionary())! if let v = self as? EVCustomReflectable { - v.constructWith(value: dictionary) + let _ = v.constructWith(value: dictionary) } else { EVReflection.setPropertiesfromDictionary(dictionary, anyObject: self, conversionOptions: conversionOptions, forKeyPath: forKeyPath) } @@ -207,7 +202,7 @@ extension EVReflectable where Self: NSObject { if let temp = NSKeyedUnarchiver.unarchiveObject(withFile: filePath) as? EVReflectable { if let v = self as? EVCustomReflectable { let dictionary = temp.toDictionary(conversionOptions) - v.constructWith(value: dictionary) + let _ = v.constructWith(value: dictionary) } else { EVReflection.setPropertiesfromDictionary( temp.toDictionary(conversionOptions), anyObject: self, conversionOptions: conversionOptions) } @@ -226,7 +221,7 @@ extension EVReflectable where Self: NSObject { if let temp = NSKeyedUnarchiver.unarchiveObject(withFile: filePath) as? EVReflectable { if let v = self as? EVCustomReflectable { let dictionary = temp.toDictionary(conversionOptions) - v.constructWith(value: dictionary) + let _ = v.constructWith(value: dictionary) } else { EVReflection.setPropertiesfromDictionary( temp.toDictionary(conversionOptions), anyObject: self, conversionOptions: conversionOptions) } @@ -243,7 +238,7 @@ extension EVReflectable where Self: NSObject { self.init() let dict = usingValuesFrom.toDictionary() if let v = self as? EVCustomReflectable { - v.constructWith(value: dict) + let _ = v.constructWith(value: dict) } else { EVReflection.setPropertiesfromDictionary(dict, anyObject: self, conversionOptions: conversionOptions) } diff --git a/Pods/EVReflection/Source/EVReflection.swift b/Pods/EVReflection/Source/EVReflection.swift index fc09bf97..6f29d0e3 100755 --- a/Pods/EVReflection/Source/EVReflection.swift +++ b/Pods/EVReflection/Source/EVReflection.swift @@ -78,9 +78,14 @@ final public class EVReflection { (dictValue, valid) = dictionaryAndArrayConversion(anyObject, key: keyInObject!, fieldType: types[dictKey] as? String ?? types[keyInObject!] as? String, original: original, theDictValue: v as Any?, conversionOptions: conversionOptions) } - if let value: Any = valid ? dictValue : (v as Any) { - if let custom = original as? EVCustomReflectable { - custom.constructWith(value: value) + if var value: Any = valid ? dictValue : (v as Any) { + if let type: String = types[k as! String] as? String { + let t: AnyClass? = swiftClassTypeFromString(type) + if let c = t as? EVCustomReflectable.Type { + if let v = c.constructWith(value: value) { + value = v + } + } } setObjectValue(anyObject, key: keyInObject!, theValue: value, typeInObject: types[keyInObject!] as? String, valid: valid, conversionOptions: conversionOptions) } @@ -730,9 +735,9 @@ final public class EVReflection { if let value = theValue as? EVRaw { theValue = value.anyRawValue } else if let value = theValue as? EVAssociated { - let (enumValue, enumType, _) = valueForAny(theValue, key: value.associated.label, anyValue: value.associated.value as Any, conversionOptions: conversionOptions, isCachable: isCachable, parents: parents) - valueType = enumType - theValue = enumValue + //let (enumValue, enumType, _) = valueForAny(theValue, key: value.associated.label, anyValue: value.associated.value as Any, conversionOptions: conversionOptions, isCachable: isCachable, parents: parents) + valueType = "Array" + theValue = value.associated.values } else if valueType.hasPrefix("Swift.ImplicitlyUnwrappedOptional<") { // Implicitly Unwrapped Optionals are actually fancy enums var subtype: String = String(valueType[(valueType.components(separatedBy: "<") [0] + "<").endIndex...]) subtype = String(subtype[.. String { - if type.components(separatedBy: "<").count > 1 { + if type.split(separator: "<").count > 1 { // Remove the Array or Set prefix - let prefix = type.components(separatedBy: "<") [0] + "<" + let prefix = type.split(separator: "<") [0] + "<" var subtype = String(type[prefix.endIndex...]) subtype = String(subtype[.." @@ -980,7 +985,10 @@ final public class EVReflection { do { if !(value is NSNull) { var setValue: AnyObject? = value as AnyObject? - try anyObject.validateValue(&setValue, forKey: key) + let validateFunction = "validate" + key.prefix(1).uppercased() + key.dropFirst() + ":error:" + if (anyObject as AnyObject).responds(to: Selector(validateFunction)) { + try anyObject.validateValue(&setValue, forKey: key) + } anyObject.setValue(setValue, forKey: key) } } catch _ { @@ -1191,9 +1199,9 @@ final public class EVReflection { //Swift.Array>> let dictValue: NSArray? = theDictValue as? NSArray if fieldType?.hasPrefix("Swift.Array 1.0) - SWRevealViewController (2.3.0) - Zip (1.1.0) DEPENDENCIES: - CorePlot (~> 2.2) - - EVReflection (~> 5.0) + - EVReflection - iOSDFULibrary (~> 4.0) - SWRevealViewController (~> 2.3) +SPEC REPOS: + https://github.com/cocoapods/specs.git: + - CorePlot + - EVReflection + - iOSDFULibrary + - SWRevealViewController + - Zip + SPEC CHECKSUMS: CorePlot: cbe0c6e14220705e32e06a89c7d6a5a908b7d7d8 - EVReflection: 3f6d255f8173ec81a2a6aad81482f253cff82b55 - iOSDFULibrary: 35e8a9e23d67759d57af9924d7a808e48c04583a + EVReflection: 8124de482178d34ccd56473e16cd95990f9a1113 + iOSDFULibrary: 65a30a36d33ef451ef2d6c2b6a002a26eed786af SWRevealViewController: 6d3fd97f70112fd7cef9de14df4260eacce4c63a Zip: 8877eede3dda76bcac281225c20e71c25270774c -PODFILE CHECKSUM: 27aaa69ef26831a42d969fc2d11fc0913adbff1e +PODFILE CHECKSUM: e75772c320fca4fa99e29984093539a6ec16fab2 -COCOAPODS: 1.4.0 +COCOAPODS: 1.7.0 diff --git a/Pods/Pods.xcodeproj/project.pbxproj b/Pods/Pods.xcodeproj/project.pbxproj index 8228cbcf..cb2d741d 100644 --- a/Pods/Pods.xcodeproj/project.pbxproj +++ b/Pods/Pods.xcodeproj/project.pbxproj @@ -7,1756 +7,1783 @@ objects = { /* Begin PBXBuildFile section */ - 01322E33B313EBAC8C9C39CF8A5E46BB /* DFUExecutor.swift in Sources */ = {isa = PBXBuildFile; fileRef = A299E5B3FD078790EAF1B79DF37F79D6 /* DFUExecutor.swift */; }; - 01483794EBEE28D9AFB0DB92BB971A33 /* CoreGraphics.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = F2AFEBCBB4C50A387E813AA515526D1F /* CoreGraphics.framework */; }; - 028908D3DB1E0E400C9AF6FBA8501F44 /* CPTGraph.h in Headers */ = {isa = PBXBuildFile; fileRef = BEB622810F43D63309C05BAEAC2FBDFC /* CPTGraph.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 02C0E170B04FC72832A7B81AEC730C30 /* CPTPlatformSpecificDefines.h in Headers */ = {isa = PBXBuildFile; fileRef = 8EFF0407E8565CBCA4887C1C309EA9F4 /* CPTPlatformSpecificDefines.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 0451C95193D9754C614F81500542FC8A /* CPTGridLineGroup.h in Headers */ = {isa = PBXBuildFile; fileRef = CFF23074D121727AE0E51B4B835D2DA2 /* CPTGridLineGroup.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 048F06D54736CB67915801AF30EB7328 /* NSNumberExtensions.m in Sources */ = {isa = PBXBuildFile; fileRef = A714B281738A9868404D268E5BFBC293 /* NSNumberExtensions.m */; }; - 07B93BB9849DA0C9E6982F6A93DA3138 /* CPTNumericData+TypeConversion.h in Headers */ = {isa = PBXBuildFile; fileRef = 6FF94D60351640A16DFFAB43E73B2C9B /* CPTNumericData+TypeConversion.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 07FF739BC8CF39C871A54E33807FC6E1 /* SWRevealViewController.h in Headers */ = {isa = PBXBuildFile; fileRef = 52D61377318370922136D8AAE1247591 /* SWRevealViewController.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 098EA1C961FF0A005E9664F8CE1E4E3E /* DFUServiceSelector.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0BF7BD7CDB130A2246433673E8C1F4F8 /* DFUServiceSelector.swift */; }; - 0A8CC78B7D5522AFDB7660C919492110 /* ioapi.h in Headers */ = {isa = PBXBuildFile; fileRef = 9EB8DD8CAAE195866543691172A6DB89 /* ioapi.h */; settings = {ATTRIBUTES = (Project, ); }; }; - 0D08AAE20FD520DE1F075C785F010B39 /* CPTXYPlotSpace.m in Sources */ = {isa = PBXBuildFile; fileRef = 3C0DB48741998F2B90846E2CC8776C8E /* CPTXYPlotSpace.m */; }; - 0D9F7CCBFC8144496C156C61020F26B6 /* DFUPeripheralDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = ABF789C7DA5F63F2B505B670256264BA /* DFUPeripheralDelegate.swift */; }; - 0F23538062B03DED836FB21F5D9D8906 /* CorePlot-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = C8D49D523E4EA8E93D0CC7466ECEBB50 /* CorePlot-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 0F65DECB2270037AD2B6A7AFEB07722A /* _CPTAnimationPlotRangePeriod.m in Sources */ = {isa = PBXBuildFile; fileRef = 134821EA08ECD398E4C520620A0E5718 /* _CPTAnimationPlotRangePeriod.m */; }; - 0FC0B9F2D6FC5740273559C790C9B4EE /* LegacyDFUPeripheral.swift in Sources */ = {isa = PBXBuildFile; fileRef = C2730A974569CFAD198FE2FEFB095BAF /* LegacyDFUPeripheral.swift */; }; - 1028534973092CDB7CBF8A79A48F0B78 /* CPTDerivedXYGraph.m in Sources */ = {isa = PBXBuildFile; fileRef = 73041012D4F3779950211788CB866E29 /* CPTDerivedXYGraph.m */; }; - 10684EC843B5094D5E974B134A677717 /* DFUPeripheral.swift in Sources */ = {isa = PBXBuildFile; fileRef = F3E3D82CC3AC1B3579BF9C36F87AFB7D /* DFUPeripheral.swift */; }; - 1185A332F9CA42098537A774C4845FBC /* _CPTAnimationNSNumberPeriod.h in Headers */ = {isa = PBXBuildFile; fileRef = 5C138D79543C93928E84EF5B3FFC9252 /* _CPTAnimationNSNumberPeriod.h */; settings = {ATTRIBUTES = (Private, ); }; }; - 1217114B03B512D236DFF0478FB7E6AE /* CPTPlotSpace.h in Headers */ = {isa = PBXBuildFile; fileRef = D0EEA70757E383DAC7B9E980A0FBB78F /* CPTPlotSpace.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 13546107B32994B5A86B7495C6E4E55C /* CPTPathExtensions.m in Sources */ = {isa = PBXBuildFile; fileRef = B7719CBFFA2AC3DAEE32FD039FAE2867 /* CPTPathExtensions.m */; }; - 1389C6CDC8116A4DE3E35948AA49FB01 /* _CPTAnimationNSNumberPeriod.m in Sources */ = {isa = PBXBuildFile; fileRef = 0EB43324C06E2A6A23CB25B92D7F8222 /* _CPTAnimationNSNumberPeriod.m */; }; - 155D0428AC64DC9322BDCAAA89F02AE5 /* CPTUtilities.h in Headers */ = {isa = PBXBuildFile; fileRef = C8D45825F42ADDA377BCF2031EE6FA19 /* CPTUtilities.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 15CB30AF7FDA60B14201718F7A3828F1 /* SecureDFUServiceInitiator.swift in Sources */ = {isa = PBXBuildFile; fileRef = 04CA43EC6B2FEB1D1482002AF5201B9A /* SecureDFUServiceInitiator.swift */; }; - 164197A580CC9ABCEE253AB67921B4B9 /* CPTTextStylePlatformSpecific.h in Headers */ = {isa = PBXBuildFile; fileRef = 7A8EC5202AE16BEEB1F0E861B3FAE05B /* CPTTextStylePlatformSpecific.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 198247B009AE40D5E329611FC43677F8 /* CPTAxisSet.h in Headers */ = {isa = PBXBuildFile; fileRef = 5F7C59A47F63149E78A750C65AEA4AFC /* CPTAxisSet.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 19C289DC226DBDBE103A42AFEA67633B /* CPTColorSpace.m in Sources */ = {isa = PBXBuildFile; fileRef = 90A798878D7777F30F316A3C8FC0B6ED /* CPTColorSpace.m */; }; - 19EAEA30D1211C56FD167E3E5564B12B /* CPTDebugQuickLook.h in Headers */ = {isa = PBXBuildFile; fileRef = 1E94FF13B0AE76737065F1169443E025 /* CPTDebugQuickLook.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 1A9B352799073781F8B80E9B1FD3033C /* _CPTFillImage.h in Headers */ = {isa = PBXBuildFile; fileRef = 537D89DD249D932B53CA0B65489C60C6 /* _CPTFillImage.h */; settings = {ATTRIBUTES = (Private, ); }; }; - 1AADEBDCF3B54C191B721009A150DD5F /* CPTMutableLineStyle.m in Sources */ = {isa = PBXBuildFile; fileRef = 69E6A2FFA4F45805A36842D01D7DEAFD /* CPTMutableLineStyle.m */; }; - 1B7E24BAF5D828E6C00A2DDA5602597F /* CPTGradient.h in Headers */ = {isa = PBXBuildFile; fileRef = C31CFAF0F1365E472CB351091360F57F /* CPTGradient.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 1BC0310471F08E88D4005F4601D1B5DE /* CPTAxisLabel.h in Headers */ = {isa = PBXBuildFile; fileRef = 68DFE7676A43008C737C89C06753683F /* CPTAxisLabel.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 1C54A6B77203286061C3EA6504E8C610 /* ManifestFirmwareInfo.swift in Sources */ = {isa = PBXBuildFile; fileRef = 12D6B974C8AA758142A00E9CDFDA8C97 /* ManifestFirmwareInfo.swift */; }; - 1C845F8441007558AE7386064FE833AD /* zip.c in Sources */ = {isa = PBXBuildFile; fileRef = 48F4C8068CDEEB4CE29FAF128C2DB83F /* zip.c */; }; - 1CB6157BE9AAB376B94F3AE22E343399 /* CPTUtilities.m in Sources */ = {isa = PBXBuildFile; fileRef = 67F9F97C839E185F2E74E9BEBD92285A /* CPTUtilities.m */; }; - 1DD7A07691AB1230B3DF0E9D43371F7F /* _CPTFillGradient.h in Headers */ = {isa = PBXBuildFile; fileRef = FBBE34E926DFC0D57340E43083BAD3BF /* _CPTFillGradient.h */; settings = {ATTRIBUTES = (Private, ); }; }; - 1E0F242AE596CBE66A17E3B54DDF203E /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 4C737DDB6DF28A27AF578547B6ECEF40 /* Foundation.framework */; }; - 1E5062FD096EDDF190E68CD76882D96D /* iOSDFULibrary-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 96B79BCFE06CCEE5E53CE01A082E5CAE /* iOSDFULibrary-dummy.m */; }; - 1EFBB8447C8B0B83F844113CC7271D4A /* CPTLegendEntry.h in Headers */ = {isa = PBXBuildFile; fileRef = 299610450FFABB05309D0DA74FEEEA9A /* CPTLegendEntry.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 21DC46F598662C2D5936B5F9A4C8D600 /* CPTPlotGroup.m in Sources */ = {isa = PBXBuildFile; fileRef = AB4605AA58DB1FAC4FF15B33CAE19B60 /* CPTPlotGroup.m */; }; - 23592A09B52B171715C0CD8A69A02868 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 4C737DDB6DF28A27AF578547B6ECEF40 /* Foundation.framework */; }; - 23A8C39C4DEDF0605F9C7BE1B8272D1A /* CPTFill.h in Headers */ = {isa = PBXBuildFile; fileRef = 009F8CD98E1408A9D7CCC0C0F0A29035 /* CPTFill.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 23B16C4343B17619981218B70D082DD6 /* _CPTMaskLayer.m in Sources */ = {isa = PBXBuildFile; fileRef = 2CE1C41EEDE3CD9F931B8B857DB83CD4 /* _CPTMaskLayer.m */; }; - 2503FFF10C7F6D3F999B2E3DFC4EAE11 /* CPTPlotArea.h in Headers */ = {isa = PBXBuildFile; fileRef = 1C5BEB7219AD560F69525EDF91DBC92F /* CPTPlotArea.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 250C24643D266259DB6DE8A9243CCBB0 /* _CPTFillColor.m in Sources */ = {isa = PBXBuildFile; fileRef = 191B8CD44DF3BA12293D1A20A556FC66 /* _CPTFillColor.m */; }; - 2519C86FCEAD3E52A40787A134BAD94A /* DFUStreamBin.swift in Sources */ = {isa = PBXBuildFile; fileRef = DA40B0DE746D9BCB22290DA8C18CEABA /* DFUStreamBin.swift */; }; - 253AB194E391160253343A3E563E5CCD /* LegacyDFUPeripheralDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = C15B782740FCE18847DA123B721E0B45 /* LegacyDFUPeripheralDelegate.swift */; }; - 25A531EF9D487F80A7C05688B40C789E /* UIKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 4F6CAB01B281D6CD23364D8D7A87E927 /* UIKit.framework */; }; - 25A5EF982E9894C0F13AA4CBF7F7A97A /* CPTDefinitions.h in Headers */ = {isa = PBXBuildFile; fileRef = A52F022D7206834BBD6B7DD9E330B853 /* CPTDefinitions.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 26C78B403BC4965587C084C5AA249C86 /* CPTAnnotation.m in Sources */ = {isa = PBXBuildFile; fileRef = 0C78A76EDC86C7A670A232B484A0B72E /* CPTAnnotation.m */; }; - 284096F8590C188EDC701BCE00C609F0 /* PrintOptions.swift in Sources */ = {isa = PBXBuildFile; fileRef = 521CDA06FF7B98E4D527F98E4B6D9EE1 /* PrintOptions.swift */; }; - 2BC0E3B02A97718ADD90B5248C94D71C /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 4C737DDB6DF28A27AF578547B6ECEF40 /* Foundation.framework */; }; - 2C8AE7747106103E66AE0BD1795403FB /* CPTAnimationPeriod.m in Sources */ = {isa = PBXBuildFile; fileRef = DE079B141A7DF971CE8F70310A0F7204 /* CPTAnimationPeriod.m */; }; - 2D251187441A1B6FE338ABA2B58175F8 /* _CPTConstraintsRelative.m in Sources */ = {isa = PBXBuildFile; fileRef = 3230D2AFCDE263F03FA2E5E35D0142A3 /* _CPTConstraintsRelative.m */; }; - 2EDE25B4066DE51BBD73E3202BEA9943 /* _CPTAnimationCGFloatPeriod.m in Sources */ = {isa = PBXBuildFile; fileRef = 5C9AFEB8F1DD3C4C59B2F3EDE3409A80 /* _CPTAnimationCGFloatPeriod.m */; }; - 2FF4EA5F6D5CC7AF7077D12AA82F0432 /* CPTLayerAnnotation.m in Sources */ = {isa = PBXBuildFile; fileRef = 891390C078201C43D52957C48AF27A12 /* CPTLayerAnnotation.m */; }; - 31CB38FF5CB957A6764A583156CC7EBD /* CPTFunctionDataSource.m in Sources */ = {isa = PBXBuildFile; fileRef = 0ADC6ACA4282A7D4F0EE73E3397C9A9E /* CPTFunctionDataSource.m */; }; - 31D7C38B55748540A9C9A557C0CE9EE4 /* CPTTheme.m in Sources */ = {isa = PBXBuildFile; fileRef = CC27044FBAC839AA964BE73CB7858AF6 /* CPTTheme.m */; }; - 335B783CB8967C7F6183F60F2C700E51 /* CPTPlatformSpecificFunctions.h in Headers */ = {isa = PBXBuildFile; fileRef = 59E99D5583D9025E9C6794A7FD8830F3 /* CPTPlatformSpecificFunctions.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 3437D39A89FCCA78EC1575E17A524633 /* SecureDFUService.swift in Sources */ = {isa = PBXBuildFile; fileRef = A57F64AA709509A7083E8EDA7F1642C2 /* SecureDFUService.swift */; }; - 34AC0CC8CD195E29DFE87A43F2133A5E /* CPTMutablePlotRange.h in Headers */ = {isa = PBXBuildFile; fileRef = A9947D16D9FF90A97D9029E1A4AC31F7 /* CPTMutablePlotRange.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 35588E15BD679CA290032D7544D1B044 /* EVDictionaryExtension.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1C2A52058F8DCB581C4FECF3A39D1946 /* EVDictionaryExtension.swift */; }; - 359752737A8C17F221B32FFACD30212B /* Data.swift in Sources */ = {isa = PBXBuildFile; fileRef = 31EBA5A262544BDA95070118D0C1BC97 /* Data.swift */; }; - 380E1F1D09C5252C08DD1A5487196BB3 /* NSNumberExtensions.h in Headers */ = {isa = PBXBuildFile; fileRef = 20515F1D751771CB9920480BAFC8D65B /* NSNumberExtensions.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 382C1285BB931D2A740054FD3ECD9876 /* CorePlotProbes.d in Sources */ = {isa = PBXBuildFile; fileRef = ED093B1BA87A0D0EA9F29A5D844CA148 /* CorePlotProbes.d */; }; - 3832987F32174D6FCF16DE91511F3813 /* _CPTAnimationCGPointPeriod.m in Sources */ = {isa = PBXBuildFile; fileRef = 4CC51DA8721D7AC99F6FA256274930D3 /* _CPTAnimationCGPointPeriod.m */; }; - 389CF3579EA8E9559F98A957EFD09E1C /* CPTImagePlatformSpecific.m in Sources */ = {isa = PBXBuildFile; fileRef = 0FC9ED5FE4E70CFBCE69B61F55F8F400 /* CPTImagePlatformSpecific.m */; }; - 38AF66645579CE799202466343E4BF88 /* CPTMutableNumericData.m in Sources */ = {isa = PBXBuildFile; fileRef = 2F7D1D00A11BC1E3A77E949B7FA1E1BB /* CPTMutableNumericData.m */; }; - 39EDBA10388CFA33012211B9571B942F /* CPTImage.h in Headers */ = {isa = PBXBuildFile; fileRef = 8613D14ECF79B034909C86F41ADABA63 /* CPTImage.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 3AAA179F85C6140DC78335EBA62C8221 /* CPTPlot.m in Sources */ = {isa = PBXBuildFile; fileRef = D125D6F2575E2DECA29408BF7D0064F2 /* CPTPlot.m */; }; - 3B105CB9E710D3E1131813BBB4D8ED65 /* CPTPieChart.m in Sources */ = {isa = PBXBuildFile; fileRef = C0D153EB1F09BC780B33D48D48733C31 /* CPTPieChart.m */; }; - 3D78A91C00E60807EE6B3B67D33A6E21 /* zip.h in Headers */ = {isa = PBXBuildFile; fileRef = EDEF8371FA1E73FBB8C6DB0CA136CD43 /* zip.h */; settings = {ATTRIBUTES = (Project, ); }; }; - 3E96EC9EDECAE779EBBA9B43FC47400C /* CPTAnimation.m in Sources */ = {isa = PBXBuildFile; fileRef = D5831F808D898C9E45421D5FC6486CC8 /* CPTAnimation.m */; }; - 3EB11CA12918E119C32061BA5999E1F5 /* _CPTAnimationCGRectPeriod.m in Sources */ = {isa = PBXBuildFile; fileRef = 1D056A03A06587D7AED33518211EDD0A /* _CPTAnimationCGRectPeriod.m */; }; - 3EB21FB587920243CFCE372958F80BE6 /* _CPTMaskLayer.h in Headers */ = {isa = PBXBuildFile; fileRef = 439DE3285762737F9BB6D4625B17C525 /* _CPTMaskLayer.h */; settings = {ATTRIBUTES = (Private, ); }; }; - 3F2F091AB29B601BC2D665B91B0F8BBB /* CPTLegend.h in Headers */ = {isa = PBXBuildFile; fileRef = 7FC0C8518590B6060C90761E79FF9D85 /* CPTLegend.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 3F678F77806348921144DEDE13CBE124 /* CPTColor.h in Headers */ = {isa = PBXBuildFile; fileRef = B662404719848275789FC797DAF22071 /* CPTColor.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 3F80C35328543034209A3C8F6621FF17 /* CPTPlotSpaceAnnotation.h in Headers */ = {isa = PBXBuildFile; fileRef = 28EC7AE16D287AB78C5F2FFD791DB349 /* CPTPlotSpaceAnnotation.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 400464B8A4A6E5897B6C6B6F67DE4219 /* ButtonlessDFU.swift in Sources */ = {isa = PBXBuildFile; fileRef = D3FEA9638AD8BDF896293BD6DB669570 /* ButtonlessDFU.swift */; }; - 401477B35A68A554F819BE989D03D4CF /* CPTLineCap.h in Headers */ = {isa = PBXBuildFile; fileRef = 858269C3ED89478E9F088886FFDE60C9 /* CPTLineCap.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 4268FA6470805557BB8042BA7F99BC1C /* CPTBorderedLayer.m in Sources */ = {isa = PBXBuildFile; fileRef = 95C9ACA3FDFBEF7EFE0244142A32C711 /* CPTBorderedLayer.m */; }; - 450B5D6BFB96D46AD18EA4A2DA89A35C /* CPTColor.m in Sources */ = {isa = PBXBuildFile; fileRef = 819698922C7C2A752D57572F79DBB8C1 /* CPTColor.m */; }; - 45ED54C90624E2E6B3F7F6B3889D561E /* ConversionOptions.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4C015E2662187942B9FDE8B202CFEC76 /* ConversionOptions.swift */; }; - 46179F0741DB3DD6C3DEBE86EEA2E776 /* CPTScatterPlot.h in Headers */ = {isa = PBXBuildFile; fileRef = 64425A7A041B986D72DE284E1EFBCC87 /* CPTScatterPlot.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 466513C00304341315AE13FC6D62F9D5 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 4C737DDB6DF28A27AF578547B6ECEF40 /* Foundation.framework */; }; - 46EE56F043B007E1B0600CCF34F8DF13 /* _CPTAnimationTimingFunctions.h in Headers */ = {isa = PBXBuildFile; fileRef = 54B40BAB3380B9346493FE4537F9F5D3 /* _CPTAnimationTimingFunctions.h */; settings = {ATTRIBUTES = (Private, ); }; }; - 47CD402EAC3FE69914EF8FBCEF61DF71 /* CPTGridLines.m in Sources */ = {isa = PBXBuildFile; fileRef = 27134F4B90C01332E0482CEEF626D4B1 /* CPTGridLines.m */; }; - 48EE55BDBD977CF0E0B59A56C6329901 /* Zip.swift in Sources */ = {isa = PBXBuildFile; fileRef = 662DCD750457BC3F0BDF093E16B3BD6B /* Zip.swift */; }; - 4ADE41DCCF3A3E1ED6307B74BDAF5FB0 /* _CPTAnimationPlotRangePeriod.h in Headers */ = {isa = PBXBuildFile; fileRef = 99CB1AFB0AB2CABECCC26DA850C2CDBB /* _CPTAnimationPlotRangePeriod.h */; settings = {ATTRIBUTES = (Private, ); }; }; - 4B12C32A76B1CE1E3EBA3FE5EF36FDD3 /* QuickZip.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3EED4DB70B2DBAE5C247411689BDCFD7 /* QuickZip.swift */; }; - 4B7047E812C1139A9E4F07E012E3498A /* CPTPlatformSpecificCategories.m in Sources */ = {isa = PBXBuildFile; fileRef = 99E5626266220BDB504E204680C7840C /* CPTPlatformSpecificCategories.m */; }; - 4FF43FC081E7A5BF42854D2B9D7B42FA /* CPTExceptions.h in Headers */ = {isa = PBXBuildFile; fileRef = 60D43F1938E7970FD122421B634A98D6 /* CPTExceptions.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 5031F1CD78CD210CDBAF14AF0695317E /* _CPTDarkGradientTheme.m in Sources */ = {isa = PBXBuildFile; fileRef = 76183017EED76361BB0D8C7D9BCFE7DA /* _CPTDarkGradientTheme.m */; }; - 50D18CDC8CB1F47E501C5BDEED4B536F /* SecureDFUPeripheral.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0932D6DE45C05F21ABEC073A1C7B9208 /* SecureDFUPeripheral.swift */; }; - 513291DAA450FABB2776C19CB1BFE5C5 /* CPTFunctionDataSource.h in Headers */ = {isa = PBXBuildFile; fileRef = 301F910B14FA579E297EB29FB017AFD0 /* CPTFunctionDataSource.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 51DB345B739AE99CC4CDB09E3871C3EB /* _CPTBorderLayer.m in Sources */ = {isa = PBXBuildFile; fileRef = 3CF4AE8364749E629F50D5745BAAEE46 /* _CPTBorderLayer.m */; }; - 51E9BD655294E26BAC914FA7C601E7A0 /* unzip.h in Headers */ = {isa = PBXBuildFile; fileRef = 615248D32FD5392DC5FB0FED4F7E3AC8 /* unzip.h */; settings = {ATTRIBUTES = (Project, ); }; }; - 522F26C14E50DA8F185837D2EFF34772 /* CPTLineCap.m in Sources */ = {isa = PBXBuildFile; fileRef = 8512382333DB87BED0A96C67606DD6DC /* CPTLineCap.m */; }; - 523E999816F70DB5ACFFA9F77A0F014D /* LoggerHelper.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3EC5E11DCF82A98DC43B28C1EC9A324D /* LoggerHelper.swift */; }; - 528CA8199E763C37AF92654C1AF0257F /* CPTPlot.h in Headers */ = {isa = PBXBuildFile; fileRef = E3B0C2E9A840775DD2E17FDEE1244AFC /* CPTPlot.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 53DCF200A6B613CB8632EA69530F6E40 /* _CPTConstraintsRelative.h in Headers */ = {isa = PBXBuildFile; fileRef = D952A20CE87F7E88C789611425A54729 /* _CPTConstraintsRelative.h */; settings = {ATTRIBUTES = (Private, ); }; }; - 55031941E2F00B77392A39FC6AB85243 /* CPTPlotArea.m in Sources */ = {isa = PBXBuildFile; fileRef = 9430CA5F90B7AFA6DF34E41C54575761 /* CPTPlotArea.m */; }; - 566B3DFA937B47DE04802E3D1C83A7FA /* _CPTFillGradient.m in Sources */ = {isa = PBXBuildFile; fileRef = 158D5182D02F27B3DA8EAD5DEA60D891 /* _CPTFillGradient.m */; }; - 56EDB82E11DA82D42CB42D398B852169 /* CPTAnnotationHostLayer.m in Sources */ = {isa = PBXBuildFile; fileRef = 84AEE798AEB5A8F620D491AFE774DFF7 /* CPTAnnotationHostLayer.m */; }; - 58C632C23C48C8DFE9E53A2C5E4BAEC5 /* Zip-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = 360F45BE31F12CB1180332E11114CD98 /* Zip-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 59D23731034D480FC7D6B5AE2B7FDFF2 /* DFUStream.swift in Sources */ = {isa = PBXBuildFile; fileRef = 34C7BE4D2239B2C90F9D7C620EE7CB7F /* DFUStream.swift */; }; - 5A0F25136C9BDC7A847FD1BABAEA4940 /* CPTGraphHostingView.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B19F41A2D158C36EB41D1B3AAC93A14 /* CPTGraphHostingView.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 5A5ADC0C76D0C7BE84F267F0C2B6D436 /* CPTAxisTitle.h in Headers */ = {isa = PBXBuildFile; fileRef = F83F91E82EDC08748069AC8057DD9D40 /* CPTAxisTitle.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 5B765B124432D9F1E71A37D934E7D464 /* _CPTAnimationTimingFunctions.m in Sources */ = {isa = PBXBuildFile; fileRef = 3208A78E0A63D6E6FC26580C5ADC1B4E /* _CPTAnimationTimingFunctions.m */; }; - 5C7EB87E957CFFCE59D90854FEFE9211 /* CPTAxisTitle.m in Sources */ = {isa = PBXBuildFile; fileRef = CC16472453375E36E51A3798DED62AB0 /* CPTAxisTitle.m */; }; - 5D229D5355B13CD6877917740FF46D3C /* CPTPlotGroup.h in Headers */ = {isa = PBXBuildFile; fileRef = 1C4DA802096579B106A13D3DA73CFD8C /* CPTPlotGroup.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 5F59436600D577C96599E1CE61A5A55A /* CPTNumericData.h in Headers */ = {isa = PBXBuildFile; fileRef = DFCB19778392B28467E8C0C88531514C /* CPTNumericData.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 617E481396CC5361CA63DFF63D3CA18F /* CPTXYAxis.h in Headers */ = {isa = PBXBuildFile; fileRef = 56A3F703F29B3999C71E5592FFD9823C /* CPTXYAxis.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 624F3F88C6C1664E620248B7256DD17A /* NSDecimalNumberExtensions.h in Headers */ = {isa = PBXBuildFile; fileRef = 528F8C687D0A78D72DC799E3D56D8830 /* NSDecimalNumberExtensions.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 63F1583564B86AFECD95818CF380153E /* SWRevealViewController-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = B55A164E16003607876DA997AA7B3EC1 /* SWRevealViewController-dummy.m */; }; - 6454653B7C3EE76C7AF11644A935D2F1 /* DFUService.swift in Sources */ = {isa = PBXBuildFile; fileRef = B3AA3EACAD8852DC572C90305723E348 /* DFUService.swift */; }; - 664824A193F98B342B49FF257417C50F /* ZipArchive.swift in Sources */ = {isa = PBXBuildFile; fileRef = 12D492EB3D08ABF0C6940567F1A2E785 /* ZipArchive.swift */; }; - 66D158C23DC10F6BBE79BF5DF1F710F2 /* CPTAxisSet.m in Sources */ = {isa = PBXBuildFile; fileRef = 30F10185922847057963CBF50CD0FEDC /* CPTAxisSet.m */; }; - 66D933290D0E2EA1CB98AD3A5C7BF6C7 /* CPTAnimationPeriod.h in Headers */ = {isa = PBXBuildFile; fileRef = 5A420F7FAAD53D261E13634D494C4187 /* CPTAnimationPeriod.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 678BE7E60FA6386FD7B4CBA8E436DC6A /* _CPTSlateTheme.h in Headers */ = {isa = PBXBuildFile; fileRef = DB14653C1C3E76410F1382E63CB5AE7E /* _CPTSlateTheme.h */; settings = {ATTRIBUTES = (Private, ); }; }; - 69552472DBFDD7697E0FD99BD398A44E /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 4C737DDB6DF28A27AF578547B6ECEF40 /* Foundation.framework */; }; - 6A8F43DE3930A482C9FAC00919506393 /* CPTLineStyle.m in Sources */ = {isa = PBXBuildFile; fileRef = 755E5323A00EF2ADD1DE7308DAFE938D /* CPTLineStyle.m */; }; - 6E00EC4F4DD458B732F8D0EBE96323EE /* _CPTAnimationNSDecimalPeriod.h in Headers */ = {isa = PBXBuildFile; fileRef = 62056B3A417A525023BC34AA1EDB739E /* _CPTAnimationNSDecimalPeriod.h */; settings = {ATTRIBUTES = (Private, ); }; }; - 700E9130AFA6AC6E14B95EEE92A19654 /* CPTAxis.m in Sources */ = {isa = PBXBuildFile; fileRef = 9AC2057DE5775E9940CC780C9FF4F4C2 /* CPTAxis.m */; }; - 7105148075A63EB697974B679B3A74F8 /* CPTTradingRangePlot.h in Headers */ = {isa = PBXBuildFile; fileRef = 03B6B663F1F1DB32C5B43361965CEFDA /* CPTTradingRangePlot.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 7134022D006EFFAAF4516E9C1F25AB9F /* SWRevealViewController-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = 1BA8FE6AB6A93B1C1FF88590553F6CD9 /* SWRevealViewController-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 715B4FE1A3FCDC86DA913803F6A9C6FD /* Pods-nRF Toolbox-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = 3C2442935EDC2E4828743FDB625FEE07 /* Pods-nRF Toolbox-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 72CD03B2A0345111195909970EE15D8F /* CPTTradingRangePlot.m in Sources */ = {isa = PBXBuildFile; fileRef = D8C9E914559D8231910C25DD10CEF631 /* CPTTradingRangePlot.m */; }; - 741799C89CF60554E738CF27221251C8 /* _CPTAnimationCGSizePeriod.m in Sources */ = {isa = PBXBuildFile; fileRef = AF0231D51A73A3559556B76A1960EC33 /* _CPTAnimationCGSizePeriod.m */; }; - 752F6AE718819039CF2E00756745BF1C /* iOSDFULibrary-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = CA5A4334CABF7459831D2ECF25060EE1 /* iOSDFULibrary-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 7574BDE9E8F472D3570948D392B77A84 /* CPTMutableTextStyle.h in Headers */ = {isa = PBXBuildFile; fileRef = 7D0E8E522DFBFC5A6AB0A16805C5C422 /* CPTMutableTextStyle.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 75D3A5EC77BAE19704C67E7B9F0FC860 /* NSDecimalNumberExtensions.m in Sources */ = {isa = PBXBuildFile; fileRef = 87A9E993F7C0C5B80F7A2E6A7F45D82F /* NSDecimalNumberExtensions.m */; }; - 774A307D68F509968AE212BA5D31ED28 /* _CPTFillImage.m in Sources */ = {isa = PBXBuildFile; fileRef = 1B77E643E14C3F3599646DABFE5D7475 /* _CPTFillImage.m */; }; - 776499CEE8DF10BBAACE785C9F447A8E /* DFUStreamHex.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3D3B6255A67086BA1AA4874F91077236 /* DFUStreamHex.swift */; }; - 7A07B04B237318940652323EBF4CA4F0 /* CPTPlotSpaceAnnotation.m in Sources */ = {isa = PBXBuildFile; fileRef = 50BEC9E9F8CD649BC442D73E3551539A /* CPTPlotSpaceAnnotation.m */; }; - 7A96B3BB4FBC7AE48D70426635BD9640 /* SecureDFUExecutor.swift in Sources */ = {isa = PBXBuildFile; fileRef = FF0B8EE77830E3DA582D1FAD0D5E00A3 /* SecureDFUExecutor.swift */; }; - 7AFF5108499812B0A0BEFB19BA5DA18D /* _CPTXYTheme.h in Headers */ = {isa = PBXBuildFile; fileRef = CC2167E7567AB8911A0F474E576897A5 /* _CPTXYTheme.h */; settings = {ATTRIBUTES = (Private, ); }; }; - 7B92791B3647E85E0ED6CB38E0FA85D5 /* CPTTextStylePlatformSpecific.m in Sources */ = {isa = PBXBuildFile; fileRef = 3B91641EC7838910C70E38295CBF46C1 /* CPTTextStylePlatformSpecific.m */; }; - 7BF5DE2A1F3009723C8992FB21F82DF9 /* CPTAnimationOperation.m in Sources */ = {isa = PBXBuildFile; fileRef = E49C293D8B7B7733D9E2BC450E429FDC /* CPTAnimationOperation.m */; }; - 7C23B87D1D226CF5E7D3E94949CFEB3E /* DFUServiceInitiator.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2E1E890C8A8BD54582AE5D3759AF0305 /* DFUServiceInitiator.swift */; }; - 7C4D883BC97A550C8235563A4F9A4CB2 /* EVReflection-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = D94002C0EF9551B2F63057346DCF928C /* EVReflection-dummy.m */; }; - 7CF16CDFF60CAF6FE5094033769B104C /* _CPTPlainBlackTheme.h in Headers */ = {isa = PBXBuildFile; fileRef = 1968A84ACAFB763895C780C8B0D36E4D /* _CPTPlainBlackTheme.h */; settings = {ATTRIBUTES = (Private, ); }; }; - 7DFDDCBCCC17DCB3199A02660FB78B57 /* CorePlot-CocoaTouch.h in Headers */ = {isa = PBXBuildFile; fileRef = A319E03C2C3271B79F52C5E607BE74D8 /* CorePlot-CocoaTouch.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 7E5A8BA2A7944437068EE379EDD9DF11 /* crypt.h in Headers */ = {isa = PBXBuildFile; fileRef = 9B8B25B5F8B8CA97BDF0E46D2E03453D /* crypt.h */; settings = {ATTRIBUTES = (Project, ); }; }; - 7FFA23B812923C0A3B856C0AE0A69F41 /* CPTShadow.m in Sources */ = {isa = PBXBuildFile; fileRef = E6161B99AAA5F4958CE95CDE516C4F0A /* CPTShadow.m */; }; - 80B71769CB16EAA46BA16612014264C2 /* CorePlot-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 634323543C3BA42F1CC0F35A6E75D807 /* CorePlot-dummy.m */; }; - 812CC12BD629481642FF54333F22BEBE /* _CPTPlainWhiteTheme.m in Sources */ = {isa = PBXBuildFile; fileRef = 92099ED9EE29660852A8240B48C30589 /* _CPTPlainWhiteTheme.m */; }; - 814FB9D2472EE048AC0B58D093592125 /* CPTShadow.h in Headers */ = {isa = PBXBuildFile; fileRef = 8980B9945CF4D67CB0505F2B5143EF12 /* CPTShadow.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 81B53A1F1D7959CCBCB407AC4FF92D11 /* _CPTSlateTheme.m in Sources */ = {isa = PBXBuildFile; fileRef = F7F258047948C731081A9C136699DC1C /* _CPTSlateTheme.m */; }; - 83F932A14C5A16FECACB37BB8BAC958B /* CPTPlatformSpecificCategories.h in Headers */ = {isa = PBXBuildFile; fileRef = 7F0C9CD3229FF46342B38BE7FCF1045D /* CPTPlatformSpecificCategories.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 867CD2D647947D7D86EF724898A601DF /* LegacyDFUExecutor.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6B0DE1BB742860945476B2692CE95A6D /* LegacyDFUExecutor.swift */; }; - 8733CC03512833333E848F8C2A90A894 /* LegacyDFUService.swift in Sources */ = {isa = PBXBuildFile; fileRef = 543F7AF699868A1992CD72B591765B36 /* LegacyDFUService.swift */; }; - 8753227C13A5B76FE2AB572C5A4D8CDA /* CPTGraph.m in Sources */ = {isa = PBXBuildFile; fileRef = 026B81CD6A4AD1558168413E6812D700 /* CPTGraph.m */; }; - 87B6E6BFE64A2241828154BC9FB94F7C /* CPTXYAxis.m in Sources */ = {isa = PBXBuildFile; fileRef = A1AC59C10E2DDD3576148834B8D6F3B4 /* CPTXYAxis.m */; }; - 898364C362D3DC5094351A532208D858 /* _CPTAnimationNSDecimalPeriod.m in Sources */ = {isa = PBXBuildFile; fileRef = 1B03626C528CD75567DA8EB9EC015F74 /* _CPTAnimationNSDecimalPeriod.m */; }; - 89952D8B10CD4C1C3C09F48AAE1B3032 /* _CPTPlainBlackTheme.m in Sources */ = {isa = PBXBuildFile; fileRef = C941D1F0CFD6C0C09B3E405B24C305E5 /* _CPTPlainBlackTheme.m */; }; - 89F638EB2AFA1895CB7E512AECE5F54F /* CPTGridLines.h in Headers */ = {isa = PBXBuildFile; fileRef = 24505FB34F9B2D89AAC94CDF1314F861 /* CPTGridLines.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 8A5F51EF80EF5F4913E771F907B83571 /* CPTPathExtensions.h in Headers */ = {isa = PBXBuildFile; fileRef = 83C27E8B6F241542DABAA40D4B41BC97 /* CPTPathExtensions.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 8B5719D44041AA20D8E3792229B6679B /* CPTPieChart.h in Headers */ = {isa = PBXBuildFile; fileRef = 36F1900A97D00FB577FB46C2E60F64B3 /* CPTPieChart.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 8BE05576BC48A0345A657C52D81EFEDF /* CPTNumericDataType.h in Headers */ = {isa = PBXBuildFile; fileRef = 6C352A616572514420DD065118D7F040 /* CPTNumericDataType.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 8BE5EEDD0D189F165201A726C5B77C83 /* LegacyDFUServiceInitiator.swift in Sources */ = {isa = PBXBuildFile; fileRef = BC54BF7F8CD95C66516A7527318E4850 /* LegacyDFUServiceInitiator.swift */; }; - 8CB6E725A7504524815F2345EE3E7785 /* CPTPlotAreaFrame.h in Headers */ = {isa = PBXBuildFile; fileRef = 4DDF3B5D3E7E2E37EB37428465F5FB19 /* CPTPlotAreaFrame.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 8F9D90BDCDE25B78EAB3B520C8E6468B /* CPTBarPlot.m in Sources */ = {isa = PBXBuildFile; fileRef = D8DF352909A1CEE517647A3BEA19FF55 /* CPTBarPlot.m */; }; - 90C83F5762C58EB03528CE3F169561CD /* _CPTBorderLayer.h in Headers */ = {isa = PBXBuildFile; fileRef = EF77FAEED31BBE668225B0C953219EA1 /* _CPTBorderLayer.h */; settings = {ATTRIBUTES = (Private, ); }; }; - 917577E7D36D4CEF32C49F5562B1248A /* CPTNumericData.m in Sources */ = {isa = PBXBuildFile; fileRef = A6A46AA32BD19E7372284789C028B883 /* CPTNumericData.m */; }; - 91F0BDD19690D84C37B2EF42CBEC509D /* CPTAxisLabel.m in Sources */ = {isa = PBXBuildFile; fileRef = FA0B990781EA3509D073F5400AE84069 /* CPTAxisLabel.m */; }; - 938EB23A5765BFF93EA1975B5EE3B81C /* CPTPlotSpace.m in Sources */ = {isa = PBXBuildFile; fileRef = C6ABB8C7E3254C175A1D541C1C18FC5B /* CPTPlotSpace.m */; }; - 93C58AFCFE3D9882FD8C07FF09410BA6 /* _CPTConstraintsFixed.h in Headers */ = {isa = PBXBuildFile; fileRef = 4835C193A487AE379DAF909329A57874 /* _CPTConstraintsFixed.h */; settings = {ATTRIBUTES = (Private, ); }; }; - 93E94C7A6E3F76EFF1B4F17FE5D332B9 /* Manifest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 98E3E676A1625063C10DED770DA46A13 /* Manifest.swift */; }; - 941D05A452C1F2FCCFFD5A8B7A9EEF68 /* DFUStarterPeripheral.swift in Sources */ = {isa = PBXBuildFile; fileRef = 71811E5F3323ADD6DA844410A8AB5E31 /* DFUStarterPeripheral.swift */; }; - 958479F1EB708A42D9A7FDC184B99E68 /* SecureDFUPacket.swift in Sources */ = {isa = PBXBuildFile; fileRef = B23AAA92E7268F534F467A2284ABE722 /* SecureDFUPacket.swift */; }; - 960DBD78EE68C327698C7EDBCEA40D5B /* CPTTextLayer.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BAC326E7CC5020C527188B84539B37B /* CPTTextLayer.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 96A992910936109C55F46243C06284A9 /* CPTAnimation.h in Headers */ = {isa = PBXBuildFile; fileRef = 5BEB03FECD1CF574A563D8A047EEF228 /* CPTAnimation.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 975B7FB1C5BFB02E56697335FEA425D7 /* DFUFirmware.swift in Sources */ = {isa = PBXBuildFile; fileRef = 50A7C21D4FADD23803F6EBC3DCC72F3E /* DFUFirmware.swift */; }; - 9AEE5393D1B12897A85DBFA45B24C717 /* QuartzCore.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 7D4D50FD0F177E9ACAB24367CF96769F /* QuartzCore.framework */; }; - 9C6A0376A5FA8752E94C6767923C5C3A /* CPTTextStyle.m in Sources */ = {isa = PBXBuildFile; fileRef = A7FC5ADAD340DA14DC0A365AEB2F1B53 /* CPTTextStyle.m */; }; - 9C6FC311FFF7BECA75AC7D319A68AA0C /* CPTGraphHostingView.m in Sources */ = {isa = PBXBuildFile; fileRef = 39D0C58377DFC4327CF0F90AE00B49F2 /* CPTGraphHostingView.m */; }; - 9D1F2157419F293917DD4A93CAF710E9 /* CPTMutablePlotRange.m in Sources */ = {isa = PBXBuildFile; fileRef = A341C33C07760EEA8EE008521161A3C8 /* CPTMutablePlotRange.m */; }; - 9E216B82D9408490D22613C8847CE9FA /* CPTImage.m in Sources */ = {isa = PBXBuildFile; fileRef = 9630033842485AED7ABD36002940D6D9 /* CPTImage.m */; }; - 9E774B6F65D03037C243849CC0DFEAFF /* _CPTStocksTheme.h in Headers */ = {isa = PBXBuildFile; fileRef = 046A007129539D3C0E942C13805A7362 /* _CPTStocksTheme.h */; settings = {ATTRIBUTES = (Private, ); }; }; - 9EEA6B5D71ABD8FEA9873B27A795ECB9 /* CPTLimitBand.m in Sources */ = {isa = PBXBuildFile; fileRef = FAFAA2A831D0EC9D83D9F322573F4F43 /* CPTLimitBand.m */; }; - A107C96757EB4C96950D1E1393B6D62B /* DeserializationStatus.swift in Sources */ = {isa = PBXBuildFile; fileRef = 80EE680976B213E3CA8F7810DA44D63A /* DeserializationStatus.swift */; }; - A1E1E03888AF3A605D775CA16914E0F7 /* CPTColorSpace.h in Headers */ = {isa = PBXBuildFile; fileRef = CF8EBDA49894F11DDC438D9105D01F36 /* CPTColorSpace.h */; settings = {ATTRIBUTES = (Public, ); }; }; - A4C7E293D3F3430C5604C40EDCBD411C /* CPTGradient.m in Sources */ = {isa = PBXBuildFile; fileRef = FD77B6AFEF2EEAB5581D91BC17524E53 /* CPTGradient.m */; }; - A58FD7129DF3F062E9C75E6F2DBF48FE /* EVWorkaroundHelpers.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9361E4A9E4A64C40C29FEA9DE3E833B9 /* EVWorkaroundHelpers.swift */; }; - A6D2079040A44F50D59E5B60E2C01CA9 /* CPTPlotAreaFrame.m in Sources */ = {isa = PBXBuildFile; fileRef = 468861A3B02C94B3E9430BAF467A84D0 /* CPTPlotAreaFrame.m */; }; - A72D3B2A39827A917FADE2142560EEDF /* _CPTAnimationCGRectPeriod.h in Headers */ = {isa = PBXBuildFile; fileRef = FF32F2F6333A7D2645E610779C44DBBC /* _CPTAnimationCGRectPeriod.h */; settings = {ATTRIBUTES = (Private, ); }; }; - A74CAAA2EA22CDF59BED5E42DC42D5FF /* _CPTStocksTheme.m in Sources */ = {isa = PBXBuildFile; fileRef = FB6BF60D483B71BF1759CFBEE3BA2056 /* _CPTStocksTheme.m */; }; - A9543F2D997D67C1E84C7B82A2D4F863 /* EVReflection.swift in Sources */ = {isa = PBXBuildFile; fileRef = B6E6109B3FC540C0E500EF1EF5BB32A2 /* EVReflection.swift */; }; - ACEFCF1F091DC108AA5DB1CFE27FEA55 /* CPTMutableShadow.m in Sources */ = {isa = PBXBuildFile; fileRef = DD728724E88C3E4F7A772B803D7813D1 /* CPTMutableShadow.m */; }; - AD000E93B5FAA8B8340C8DB369E8D5C3 /* CPTBarPlot.h in Headers */ = {isa = PBXBuildFile; fileRef = 85FBDAFA769C4B53C44778757F25B92D /* CPTBarPlot.h */; settings = {ATTRIBUTES = (Public, ); }; }; - AE2A3B07F0D769B11C32F61D2EFA9946 /* CPTMutableNumericData+TypeConversion.m in Sources */ = {isa = PBXBuildFile; fileRef = F5698D25B2299D16724989D2D9E3BCB9 /* CPTMutableNumericData+TypeConversion.m */; }; - AF4857AFF976188D05457C8FFFD1EDDC /* EVReflection-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = 5239005796EC303AE07E1CAF99D47420 /* EVReflection-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; - AFB8BFDD7F1E741921E8A7B6AD29FEA9 /* CPTCalendarFormatter.h in Headers */ = {isa = PBXBuildFile; fileRef = 810A2B3B1EB9D7DB5E7F4C5B17B45EC4 /* CPTCalendarFormatter.h */; settings = {ATTRIBUTES = (Public, ); }; }; - B00D4E70075D6CDEFD3F92AE30357C17 /* Pods-nRF Toolbox-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = FE47FABCC71708B357D64D6D614EEA3C /* Pods-nRF Toolbox-dummy.m */; }; - B078904B4299F6E9DB7AE48E15A1E90A /* CPTAxisLabelGroup.m in Sources */ = {isa = PBXBuildFile; fileRef = AEBD9641CCA73ED1552D919D22EE617D /* CPTAxisLabelGroup.m */; }; - B1D2E9A26782BFB61D60A54473601913 /* CPTMutableTextStyle.m in Sources */ = {isa = PBXBuildFile; fileRef = 4BF6BE214C994E44BB0BFE382D3A50C1 /* CPTMutableTextStyle.m */; }; - B202BD063622F4F4F6BEE617083DE094 /* CPTExceptions.m in Sources */ = {isa = PBXBuildFile; fileRef = 0A982EEB5C148D5A0B6C49E6DA47B952 /* CPTExceptions.m */; }; - B2081538C6D6ED5E88B5852B51D8D851 /* CPTTextLayer.m in Sources */ = {isa = PBXBuildFile; fileRef = 5886939726690B2227011D401D324D29 /* CPTTextLayer.m */; }; - B20A0FA8B3AA7DA56109F16FF5B34E54 /* CPTLegendEntry.m in Sources */ = {isa = PBXBuildFile; fileRef = 2991527B2847C6DA989FD52D2D135126 /* CPTLegendEntry.m */; }; - B2F7DA69BF65B14D2EF8D6F581ABCFEB /* CPTPlotSymbol.m in Sources */ = {isa = PBXBuildFile; fileRef = E79EB88C5002C142C5586F1E6F964757 /* CPTPlotSymbol.m */; }; - B3013DB2565885D18384F41AE84CB8FE /* SoftdeviceBootloaderInfo.swift in Sources */ = {isa = PBXBuildFile; fileRef = 32B65E72CC25A359844CBC128F4A9CB4 /* SoftdeviceBootloaderInfo.swift */; }; - B363F0EB578D43CD79BE93FDDA32582A /* SecureDFUPeripheralDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 23BF389BE0B2A0B0A1E567267B64F034 /* SecureDFUPeripheralDelegate.swift */; }; - B4FD35227C1800C253425D8271FC2DB8 /* DFUVersion.swift in Sources */ = {isa = PBXBuildFile; fileRef = A695BEBC7E222F74AD60DE62192A7A99 /* DFUVersion.swift */; }; - B5252700B06A7CEE763E68B5ECF69C78 /* Zip-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 20BF680002EFACC0138C71FB0D286AFD /* Zip-dummy.m */; }; - B60EF5C9190B2BFC25F771674BDFBA9D /* EVObject.swift in Sources */ = {isa = PBXBuildFile; fileRef = BA92F9CDFB6473B585521493EC2FD673 /* EVObject.swift */; }; - B63A6F09B56AD49C6A77CB544E380B43 /* CPTGridLineGroup.m in Sources */ = {isa = PBXBuildFile; fileRef = 85009D06BCF661FAB2D39F56D2131B08 /* CPTGridLineGroup.m */; }; - B63E72B41B307AB6AC9490E5913D9484 /* CPTXYAxisSet.h in Headers */ = {isa = PBXBuildFile; fileRef = 344FC92E43FF06C5839AC7726C259739 /* CPTXYAxisSet.h */; settings = {ATTRIBUTES = (Public, ); }; }; - B84E97133641B2245203956FD70BD734 /* CPTTimeFormatter.m in Sources */ = {isa = PBXBuildFile; fileRef = 9A73C32674EEC8BE110976F5DD278410 /* CPTTimeFormatter.m */; }; - B8819E4624E16D8177A9899E340C35AA /* ioapi.c in Sources */ = {isa = PBXBuildFile; fileRef = 47BDB648371F10E45F2A802FE9B97F19 /* ioapi.c */; }; - B9408A80CC748DDA0338CC9F524073DE /* CPTRangePlot.h in Headers */ = {isa = PBXBuildFile; fileRef = 57395B064B85046094FBF807B89E15A7 /* CPTRangePlot.h */; settings = {ATTRIBUTES = (Public, ); }; }; - B97B67409B1A9DF17C4BF21A49691D35 /* CPTXYGraph.m in Sources */ = {isa = PBXBuildFile; fileRef = CE617C929CAC13B93892E239BD7819F4 /* CPTXYGraph.m */; }; - BACB9922ECE93352DFA4E17C4BB93AD9 /* Zip.h in Headers */ = {isa = PBXBuildFile; fileRef = E80A6ADCE4F0CC11DF9B94C0ACCDF6A1 /* Zip.h */; settings = {ATTRIBUTES = (Public, ); }; }; - BB6D9F6956C0DE95FF9327A0492E47EA /* _CPTAnimationCGSizePeriod.h in Headers */ = {isa = PBXBuildFile; fileRef = 82C980DBBD612AA5607EFA2C31DA9A64 /* _CPTAnimationCGSizePeriod.h */; settings = {ATTRIBUTES = (Private, ); }; }; - BBF10223BBE7FA3BC2A166AE047CD744 /* crc32.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2B0A5CCB5A334BDEDF3DFD3814692E44 /* crc32.swift */; }; - BD69F40211574CD9E7EA414022AB7614 /* DFUStreamZip.swift in Sources */ = {isa = PBXBuildFile; fileRef = 68D9606866B3357F259AF598B91AE39B /* DFUStreamZip.swift */; }; - BD7F6B9EB9973D74092FB7C03238BECA /* EVArrayExtension.swift in Sources */ = {isa = PBXBuildFile; fileRef = C4C51D99AF1C2BCFD711B87A36F108B8 /* EVArrayExtension.swift */; }; - BE45CE5C52F9613AEF1A71CE4390A764 /* _CPTAnimationCGFloatPeriod.h in Headers */ = {isa = PBXBuildFile; fileRef = EB0E4D01C52A3C7192E83BB1EBCE6F84 /* _CPTAnimationCGFloatPeriod.h */; settings = {ATTRIBUTES = (Private, ); }; }; - BED3E632B926EF31DF2D935DF5FE2358 /* CPTLimitBand.h in Headers */ = {isa = PBXBuildFile; fileRef = 29AB9A06AA1BA46EEDBF62126D12FE75 /* CPTLimitBand.h */; settings = {ATTRIBUTES = (Public, ); }; }; - BEF6FC33DFB122D8B090BAA95C24F036 /* _CPTConstraintsFixed.m in Sources */ = {isa = PBXBuildFile; fileRef = 8A3A1CCA37D439EDAF1BC30E571E4F76 /* _CPTConstraintsFixed.m */; }; - C033B3CE5270E7D40C85CBB7BEB2D66C /* CPTTimeFormatter.h in Headers */ = {isa = PBXBuildFile; fileRef = D1ACEF3E765A11937B651941AFDE00B8 /* CPTTimeFormatter.h */; settings = {ATTRIBUTES = (Public, ); }; }; - C2FE616B7A11D815848A91D1CAF7F249 /* CPTMutableNumericData+TypeConversion.h in Headers */ = {isa = PBXBuildFile; fileRef = B6EB2D72A241D95211152DB0DC84666C /* CPTMutableNumericData+TypeConversion.h */; settings = {ATTRIBUTES = (Public, ); }; }; - C34087E63BB237247A442F647D52273D /* CPTPlatformSpecificFunctions.m in Sources */ = {isa = PBXBuildFile; fileRef = 0BD17E786A686D10D6F77BC33A8E60D4 /* CPTPlatformSpecificFunctions.m */; }; - C5501279ADA85FE7F88BACEE1EE0B9E6 /* _CPTXYTheme.m in Sources */ = {isa = PBXBuildFile; fileRef = 87A4E962D0EC23B6FAC911520FF8001B /* _CPTXYTheme.m */; }; - C5A1D7FE4F06628172711A27C3E06AAD /* CPTLegend.m in Sources */ = {isa = PBXBuildFile; fileRef = 07A4234A64C85B954CBD17C266D1FB41 /* CPTLegend.m */; }; - C6549066C22F81E10F8071B78F44D0EC /* DFUPeripheralSelectorDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 833EAF7D8B0B09077B01CBAE2D75F6CA /* DFUPeripheralSelectorDelegate.swift */; }; - C79100349589FE1B1587F1590A16492F /* CPTNumericData+TypeConversion.m in Sources */ = {isa = PBXBuildFile; fileRef = 26B3089E020187D0B99B2ED96AA65F93 /* CPTNumericData+TypeConversion.m */; }; - C8B2B5DA036BA7C87402B5F8BBC1E016 /* CPTScatterPlot.m in Sources */ = {isa = PBXBuildFile; fileRef = 01AF2F060803ADC09F70F61EB27EDFC8 /* CPTScatterPlot.m */; }; - C9481668EE25A75E3F03BD42CEB4636F /* SecureDFUControlPoint.swift in Sources */ = {isa = PBXBuildFile; fileRef = 07457F3B644DD80C3D71E156F2B4158C /* SecureDFUControlPoint.swift */; }; - CBC0B672D3022F64A7ABE22546888A47 /* _CPTAnimationCGPointPeriod.h in Headers */ = {isa = PBXBuildFile; fileRef = A97FFEA8C127E89BD474CF7F8735C7EF /* _CPTAnimationCGPointPeriod.h */; settings = {ATTRIBUTES = (Private, ); }; }; - CC3BED3600BDA9F8160F2E8FFD39098E /* CPTLayerAnnotation.h in Headers */ = {isa = PBXBuildFile; fileRef = 566352D74D0B33C4B7C2102C61E2D91A /* CPTLayerAnnotation.h */; settings = {ATTRIBUTES = (Public, ); }; }; - CD81B1DBAB4ACB57C1696625FAC9F46C /* CPTDerivedXYGraph.h in Headers */ = {isa = PBXBuildFile; fileRef = 6BE1005077A4C2A7A7032CF8800B6821 /* CPTDerivedXYGraph.h */; settings = {ATTRIBUTES = (Public, ); }; }; - CF9D92DCC22BEC637AFCCA5C8291C2FC /* DFUControlPoint.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7BD1311ACCBD361B3A01339147B0FBD2 /* DFUControlPoint.swift */; }; - D027D0829AF0CA938AED64525DB4E31E /* CPTXYAxisSet.m in Sources */ = {isa = PBXBuildFile; fileRef = 46B34D7456F87B7D20266303AC51C52A /* CPTXYAxisSet.m */; }; - D10293B5AE586D7D1A3CD10239F34368 /* CorePlot.h in Headers */ = {isa = PBXBuildFile; fileRef = 32ACD4FBFF5E45142BC3DAD41BF5E1EA /* CorePlot.h */; settings = {ATTRIBUTES = (Public, ); }; }; - D2B25EDC91A9E93A3A099B1EB385E320 /* ZipUtilities.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2353E2527AC3A8A028AFF3E85EF5D436 /* ZipUtilities.swift */; }; - D37CDA97C07699EB27D78092FF9E8616 /* CPTMutableLineStyle.h in Headers */ = {isa = PBXBuildFile; fileRef = 0073BA9B7252CB51EB80FB7C0B8BA859 /* CPTMutableLineStyle.h */; settings = {ATTRIBUTES = (Public, ); }; }; - D419BA5A7DC20FBCB3D5726D349F5CAE /* IntelHex2BinConverter.m in Sources */ = {isa = PBXBuildFile; fileRef = E4AC71FB28F1A869549F06217EA412D3 /* IntelHex2BinConverter.m */; }; - D4298274F61CE9A072D27331B23EA03A /* CPTTextStyle.h in Headers */ = {isa = PBXBuildFile; fileRef = 08675DF9CA153DFFA942AE1FDA6B7815 /* CPTTextStyle.h */; settings = {ATTRIBUTES = (Public, ); }; }; - D734FEE9E8D20C1DD031FC08095DCD59 /* _CPTDarkGradientTheme.h in Headers */ = {isa = PBXBuildFile; fileRef = 324A91CFDAFA5FA1566A65357C22F82A /* _CPTDarkGradientTheme.h */; settings = {ATTRIBUTES = (Private, ); }; }; - D755535B0DF8EE88DBCCA40AF73A8CBE /* unzip.c in Sources */ = {isa = PBXBuildFile; fileRef = 1635D42003AE224BD21E4D0B64E8F250 /* unzip.c */; }; - D84AA5628EEF35ECE2083F70CA844148 /* CPTTheme.h in Headers */ = {isa = PBXBuildFile; fileRef = 133B6BF9D93181D869B20078BFE76B92 /* CPTTheme.h */; settings = {ATTRIBUTES = (Public, ); }; }; - D8CCDCF1FFC7C01E07985CE117CE5BA6 /* CPTPlotSymbol.h in Headers */ = {isa = PBXBuildFile; fileRef = 3568E5E2F446DF770E9BA325DE518890 /* CPTPlotSymbol.h */; settings = {ATTRIBUTES = (Public, ); }; }; - D9B958EA746A747705DDDC69B0CFF280 /* CPTMutableNumericData.h in Headers */ = {isa = PBXBuildFile; fileRef = 24EF4F12879E2F0B9F11490E07461971 /* CPTMutableNumericData.h */; settings = {ATTRIBUTES = (Public, ); }; }; - D9E73DE262C7ED7902BEFA5BF4CD6C0A /* EVReflectable.swift in Sources */ = {isa = PBXBuildFile; fileRef = 01BC86489992FBB6441003ED71B6B771 /* EVReflectable.swift */; }; - DA3D6197E11892299A59DFBEAA7B2A53 /* CPTPlotRange.h in Headers */ = {isa = PBXBuildFile; fileRef = B51DAA7ACAD064B7FC35EBC29439695E /* CPTPlotRange.h */; settings = {ATTRIBUTES = (Public, ); }; }; - DA4A9D476C2E02712DBE7B667A24A37B /* CPTAnnotation.h in Headers */ = {isa = PBXBuildFile; fileRef = A2C7F624F0A4A1CA56829B7578892D17 /* CPTAnnotation.h */; settings = {ATTRIBUTES = (Public, ); }; }; - DB3C4A812C4F8D4C2E25DEF5E662E48D /* _CPTPlainWhiteTheme.h in Headers */ = {isa = PBXBuildFile; fileRef = D64D4F770C2C41731A5D005B0F9B5A88 /* _CPTPlainWhiteTheme.h */; settings = {ATTRIBUTES = (Private, ); }; }; - DC5F430689C54F8E1FEA311572696A25 /* Zip.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 3396093B67A8067568A38ED3A69D8A3B /* Zip.framework */; }; - DC84CEFED4EC6F6E9253389328AFCE37 /* CPTAxis.h in Headers */ = {isa = PBXBuildFile; fileRef = B641EA0A28E1DA924AE52EA5C334C832 /* CPTAxis.h */; settings = {ATTRIBUTES = (Public, ); }; }; - DDFF81496801A484CC6BA761538B1451 /* CPTLayer.h in Headers */ = {isa = PBXBuildFile; fileRef = FF193E2DC7BB23C9978C503CB485D100 /* CPTLayer.h */; settings = {ATTRIBUTES = (Public, ); }; }; - DE010CB1CB6FF9753F888B482FFC84C8 /* CPTRangePlot.m in Sources */ = {isa = PBXBuildFile; fileRef = B389368417F1BE3EB348B0999B9040B8 /* CPTRangePlot.m */; }; - DE42A26BFF336816DA3AF9EC1BA93E62 /* CPTFill.m in Sources */ = {isa = PBXBuildFile; fileRef = A01080D291F34097DAA32C34FABA5385 /* CPTFill.m */; }; - E150143D27FBE04F2D73800E92BDCBD7 /* IntelHex2BinConverter.h in Headers */ = {isa = PBXBuildFile; fileRef = 55965B8281A596C4FBE368E567E64D52 /* IntelHex2BinConverter.h */; settings = {ATTRIBUTES = (Public, ); }; }; - E1596EE5C601F8570252AB5ED2542613 /* Double.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7E27D763BB2BD9E68CB1E57AB91E0492 /* Double.swift */; }; - E19C5DE41A08DF66B2CF9A512BFBA20E /* CPTAxisLabelGroup.h in Headers */ = {isa = PBXBuildFile; fileRef = CE4FE8E99157CC26AA1BF63F5BEA7FCE /* CPTAxisLabelGroup.h */; settings = {ATTRIBUTES = (Public, ); }; }; - E2E11FB6DF80CE6A24335E820A86EB19 /* _CPTFillColor.h in Headers */ = {isa = PBXBuildFile; fileRef = EDA5EFAEF5632EE5161B17B3096367AF /* _CPTFillColor.h */; settings = {ATTRIBUTES = (Private, ); }; }; - E65C70C6880EF2F2E4CA2895F6577EB1 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 4C737DDB6DF28A27AF578547B6ECEF40 /* Foundation.framework */; }; - E6C3B068C66A4E9845D6D3552A925802 /* SWRevealViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 52403B92288EE4903900E6AA3DDCA860 /* SWRevealViewController.m */; }; - E6EFD83C3EA5EC920589ECE90956893D /* DFUServiceDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = D8D839419A767861651100DF16653144 /* DFUServiceDelegate.swift */; }; - E82E42BA7877B308485D2C0586ACD87A /* CPTResponder.h in Headers */ = {isa = PBXBuildFile; fileRef = E8ED22F691F2EEACAE7413994B85BCE8 /* CPTResponder.h */; settings = {ATTRIBUTES = (Public, ); }; }; - E844802FAA3AA30FB5EE281288C8E2A6 /* DFUPacket.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1B0C80CE53494F1FE8EAD9E6E0620E3A /* DFUPacket.swift */; }; - E8AD0FE6415177D5E4096A99CA08F587 /* CPTXYGraph.h in Headers */ = {isa = PBXBuildFile; fileRef = 6D77DF5B37F334C02FCA115C63FDAB9E /* CPTXYGraph.h */; settings = {ATTRIBUTES = (Public, ); }; }; - E8BEB53CF91894673021B647B3E11BC6 /* Accelerate.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 7C324811068A8D01670AF09BD60679DE /* Accelerate.framework */; }; - E8E991B5C8C7B55BBEECB9A0A822D307 /* DFUController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4A43D7C0AEE6456E658832BCE6E9BD34 /* DFUController.swift */; }; - EDD24131BCFC7E8E3863F628AB0DBC50 /* CPTCalendarFormatter.m in Sources */ = {isa = PBXBuildFile; fileRef = 167B1F654016A5E22BC2E6BE25B5A82F /* CPTCalendarFormatter.m */; }; - EE8B4B5DA32DF52359844F0EDE471493 /* CPTPlotRange.m in Sources */ = {isa = PBXBuildFile; fileRef = BBE1D7FA89CD0DB46AC23A96B184E02D /* CPTPlotRange.m */; }; - EECC2055944AD402FC384B523811F67D /* DFUPeripheralSelector.swift in Sources */ = {isa = PBXBuildFile; fileRef = 794612BC264847CE4C66C1308A3F8D1C /* DFUPeripheralSelector.swift */; }; - EEE56F6293B6F86444BED4CDC6234AAA /* LoggerDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = E5C975DA139B1FE7AB941377FAB9FFDF /* LoggerDelegate.swift */; }; - EFCEBBF82C283D61CEF57DF424E4D113 /* CPTMutableShadow.h in Headers */ = {isa = PBXBuildFile; fileRef = 1C7173EF5B29ED2454B93B6D9B4C3A51 /* CPTMutableShadow.h */; settings = {ATTRIBUTES = (Public, ); }; }; - F08494E36653D3CDF388FB1849219EC4 /* CPTAnnotationHostLayer.h in Headers */ = {isa = PBXBuildFile; fileRef = CA5532F6A7063DB73FC3C9E232FFC9E6 /* CPTAnnotationHostLayer.h */; settings = {ATTRIBUTES = (Public, ); }; }; - F416A58561511DB6D8A8E34B2D627530 /* CPTConstraints.h in Headers */ = {isa = PBXBuildFile; fileRef = F9BFD348FF56B4E186FBA5A4AC91A2ED /* CPTConstraints.h */; settings = {ATTRIBUTES = (Public, ); }; }; - F4AA544A8AE09FB824B8B72F2146FF3B /* CPTLineStyle.h in Headers */ = {isa = PBXBuildFile; fileRef = 91CBA17940041FD85A94CF8DF911A05F /* CPTLineStyle.h */; settings = {ATTRIBUTES = (Public, ); }; }; - F4C16B7405B73EAAB6A28C1133B85C37 /* NSCoderExtensions.m in Sources */ = {isa = PBXBuildFile; fileRef = 89A821B6BD987F5A00B33206EB76AAD3 /* NSCoderExtensions.m */; }; - F6203A2D51E706DAE136A3F83B9F8D6E /* CPTDefinitions.m in Sources */ = {isa = PBXBuildFile; fileRef = CC12F49FF41C8A2F41FC3C215BAD5EF1 /* CPTDefinitions.m */; }; - F6E0D81948A97583CAC8A0CF1330F37B /* CPTXYPlotSpace.h in Headers */ = {isa = PBXBuildFile; fileRef = 62FFCDBEE30A4F10A84583F837B0FDD6 /* CPTXYPlotSpace.h */; settings = {ATTRIBUTES = (Public, ); }; }; - F7F1AB2AC1C4F3B7CF8A2B16822BCA5B /* NSCoderExtensions.h in Headers */ = {isa = PBXBuildFile; fileRef = B9423232132F96DC3733C8AB0B9D747C /* NSCoderExtensions.h */; settings = {ATTRIBUTES = (Public, ); }; }; - F86FCF7521D327A6B3A229DFA8069825 /* CPTLayer.m in Sources */ = {isa = PBXBuildFile; fileRef = 4D5FFAF332BC6A1C5EAB87A9ADA82A27 /* CPTLayer.m */; }; - F94995F1CF0F76E327756209A9E85C13 /* CPTPlatformSpecificDefines.m in Sources */ = {isa = PBXBuildFile; fileRef = 013D218FD00073689A675491D15C017D /* CPTPlatformSpecificDefines.m */; }; - FAC332B9C56587D7115FFEBCEF64C7DE /* DFUServiceController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3E46F45F93400A0362D0BF4637EC7BDA /* DFUServiceController.swift */; }; - FAD4D6E2C2C5062C8D7167B4324513CB /* CPTAnimationOperation.h in Headers */ = {isa = PBXBuildFile; fileRef = AE639F4E2ECF2A3326D103D4AAC82948 /* CPTAnimationOperation.h */; settings = {ATTRIBUTES = (Public, ); }; }; - FD3FD0911EAF8A67C9B2D10DB30AF23D /* CPTNumericDataType.m in Sources */ = {isa = PBXBuildFile; fileRef = D30E58738B34BD19EDBF16A4023D1A7E /* CPTNumericDataType.m */; }; - FE86DF0E83CCE302A7D3B816274C66AC /* CPTConstraints.m in Sources */ = {isa = PBXBuildFile; fileRef = 4BEBCF684F398645C023CCCC9CD59933 /* CPTConstraints.m */; }; - FF38E209DEFD71903629B9565087C367 /* CPTBorderedLayer.h in Headers */ = {isa = PBXBuildFile; fileRef = 9ACC1B14584721FBF56B8548367E73B6 /* CPTBorderedLayer.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 058239F0811EC88B7A794AFC90C51AD6 /* CPTLimitBand.h in Headers */ = {isa = PBXBuildFile; fileRef = D35A3356C45382614797B199C9AAA588 /* CPTLimitBand.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 06B5A2FD28A09B718E2F56264A9C5A09 /* _CPTBorderLayer.m in Sources */ = {isa = PBXBuildFile; fileRef = 366446A57326AAAE419063593757F8B1 /* _CPTBorderLayer.m */; }; + 06EEA537BA833A6802507EBA34FA808F /* CPTFill.h in Headers */ = {isa = PBXBuildFile; fileRef = AB24A0C09BBCE369C796B6FA5CEA197E /* CPTFill.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 07DB9A1F8BCED23D7701FB333BCD4230 /* CPTPlotSpaceAnnotation.h in Headers */ = {isa = PBXBuildFile; fileRef = D16D386919945B9124CBEC71749D5361 /* CPTPlotSpaceAnnotation.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 0928B16F9A94F341EB57CA5F1B3529DF /* _CPTMaskLayer.h in Headers */ = {isa = PBXBuildFile; fileRef = 762532946A12D76E977437E56B016D0D /* _CPTMaskLayer.h */; settings = {ATTRIBUTES = (Private, ); }; }; + 0B00ED941BCDBD48EFAAF498A35666B9 /* LegacyDFUExecutor.swift in Sources */ = {isa = PBXBuildFile; fileRef = C0C1E6757F17C2B165C659D07D595738 /* LegacyDFUExecutor.swift */; }; + 0B11DFBE01DCAB2A8EF25725382AED27 /* CPTImage.h in Headers */ = {isa = PBXBuildFile; fileRef = 5C6C0EABC3685580EF3A0A04EB2FE0C2 /* CPTImage.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 0B3B0412FBA24FD06F29FB124B06C0FA /* LegacyDFUService.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4D2268C3F404244F4DE7E49C28DFEB30 /* LegacyDFUService.swift */; }; + 0BA7E57BB20FFD4F72E7F64DA135634A /* DFUService.swift in Sources */ = {isa = PBXBuildFile; fileRef = 59736EDE93692D255D3AD0ED7E08247F /* DFUService.swift */; }; + 0C349722886D5AAC2D01460B6D78C1D1 /* CPTNumericData+TypeConversion.h in Headers */ = {isa = PBXBuildFile; fileRef = 2569E6F3A9B3CABFFB6BEAF8153DDFF9 /* CPTNumericData+TypeConversion.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 0CC25456AD02EA9880FB4B9B20291937 /* CPTLayerAnnotation.h in Headers */ = {isa = PBXBuildFile; fileRef = D83E7A851B4D2461B949EA4057F50564 /* CPTLayerAnnotation.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 0D34E8F8B264C87B20BB8F90ADA2A50F /* DFUPeripheral.swift in Sources */ = {isa = PBXBuildFile; fileRef = 22A6116E850EFC3BFA4D3FB7DF9FFF3E /* DFUPeripheral.swift */; }; + 0DD66E633289926B39F3E80F0CF0A353 /* Zip-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = EC5C6EED98E775723CF84FE40850B17A /* Zip-dummy.m */; }; + 0DE82B0B997C9FBD26B9A30361355050 /* CPTPlotArea.m in Sources */ = {isa = PBXBuildFile; fileRef = D91F4E1C492FCA82BAE54CB965983835 /* CPTPlotArea.m */; }; + 0E1176E3B35630BF5F3937B5978B9E33 /* CPTGradient.m in Sources */ = {isa = PBXBuildFile; fileRef = 9613EA6D5051E2FB7D7ECD2A170291FF /* CPTGradient.m */; }; + 0E3AE8087F95A116DFC559A197A2628D /* LoggerHelper.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6374C24FCE6EC5E0105AAB9A81B7FC9D /* LoggerHelper.swift */; }; + 0EDA396644E129571FAEEDE4DFCE28DF /* SecureDFUPeripheral.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1D305DBD844A36C35B75D196BB3FE046 /* SecureDFUPeripheral.swift */; }; + 0EEFC9184B7354AADB947AD728416037 /* CPTMutableShadow.m in Sources */ = {isa = PBXBuildFile; fileRef = 479CA370A17A4EA7D728292D6848A96F /* CPTMutableShadow.m */; }; + 118322E85CCAEA5817A65994A25D3FE0 /* SoftdeviceBootloaderInfo.swift in Sources */ = {isa = PBXBuildFile; fileRef = 059C27C4C691F323C9B9318EAD268F65 /* SoftdeviceBootloaderInfo.swift */; }; + 11A78FA0D77A493CD80E7CF800C9A9B8 /* NSDecimalNumberExtensions.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BB388AF25F99B97A8499064853137CD /* NSDecimalNumberExtensions.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 11C26AE941A330D4EE3CE8B78BD9F1B7 /* DFUStarterPeripheral.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2705106D0EAF1B2834FDDF404665ADE8 /* DFUStarterPeripheral.swift */; }; + 121D5E23A9E7EAB0E8E954EE0461C176 /* DFUStreamZip.swift in Sources */ = {isa = PBXBuildFile; fileRef = 84AFC8DBC35D5137BB04BE5C914DFF30 /* DFUStreamZip.swift */; }; + 12326861EB520360D1301D8B57B29D54 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = A58B1A53B5F65ED30D565676501B8C30 /* Foundation.framework */; }; + 1600A11C1752FE09ABDDE61F36FB75F2 /* _CPTFillGradient.m in Sources */ = {isa = PBXBuildFile; fileRef = 342CB39929F987A143CEA0C6C4D474FE /* _CPTFillGradient.m */; }; + 1642EAE7BCC6286CFD02DA6F775946E2 /* CPTConstraints.m in Sources */ = {isa = PBXBuildFile; fileRef = 8CE4D07A1F302A4076AF42014B694C87 /* CPTConstraints.m */; }; + 16F5200B27FEE5BA5507FCFFE2936929 /* Accelerate.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 44F45FAE950D7585A5A5C0BCA53DDF85 /* Accelerate.framework */; }; + 1781D675BCD43FA783E8AE9C3CE4B2E3 /* CPTXYGraph.h in Headers */ = {isa = PBXBuildFile; fileRef = EB13382AFFB572426135C29035BC3E83 /* CPTXYGraph.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 19D4D12BE03CCB57FA2CCE4D26235297 /* CPTAnnotation.m in Sources */ = {isa = PBXBuildFile; fileRef = 22C29E059FEB9C18339EB12798452FE2 /* CPTAnnotation.m */; }; + 1B0005D7672F30D1763C7CB7AB56F7DD /* crc32.swift in Sources */ = {isa = PBXBuildFile; fileRef = FF402165C4FBBA36ECBD9BE98F926FEB /* crc32.swift */; }; + 1B3BED90A7D0E3745E4C76A9F330E707 /* DFUVersion.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9CF334BDA4DA39EB2503FCA3C3322051 /* DFUVersion.swift */; }; + 1B43410965E9C4C577822893EDD16D0D /* DFUPacket.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0A5003600A730601AD45F37F9384F6BD /* DFUPacket.swift */; }; + 1B51FFA869F5E5C728D1DD30A9F73DBB /* CPTAxisTitle.h in Headers */ = {isa = PBXBuildFile; fileRef = 7AF7E7FC5E0D415F09B8F7B01197251E /* CPTAxisTitle.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 1C34B65A435D234948A30B46F0C4B7D6 /* SecureDFUService.swift in Sources */ = {isa = PBXBuildFile; fileRef = F200CAB5549D3BCDBBE500594C6CB31B /* SecureDFUService.swift */; }; + 1C945C55567B3DB4348BCC47396EB4C0 /* DFUPeripheralSelectorDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5F7A6D68E1BE451DCF7937AAF0B76E4F /* DFUPeripheralSelectorDelegate.swift */; }; + 1CE6F2917498C0BDAA38C92F2B0E4245 /* CPTGridLineGroup.h in Headers */ = {isa = PBXBuildFile; fileRef = 1A44BD9B338E726891F4A078998012EF /* CPTGridLineGroup.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 1CF473617080096952AE59E23B3F7F0E /* CPTLegend.m in Sources */ = {isa = PBXBuildFile; fileRef = D207A8F275EB964371EC88258B56D8E1 /* CPTLegend.m */; }; + 1F35D0CF95A5DCCB406C98244D69E254 /* CPTGraphHostingView.h in Headers */ = {isa = PBXBuildFile; fileRef = 24413CB410EABF537F62F6947E89B3F1 /* CPTGraphHostingView.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 1FAB1DEC644B60BBFCE7B7B2E49C7088 /* NSCoderExtensions.m in Sources */ = {isa = PBXBuildFile; fileRef = A10F3533A09F7098055039FFC5C5F881 /* NSCoderExtensions.m */; }; + 1FC61EA2779AF0A68079766F4FF01BDB /* iOSDFULibrary-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = E0BA6191E11B5D9AE82B7B13979D2762 /* iOSDFULibrary-dummy.m */; }; + 20F95156FBF365840518C3DD85165195 /* DFUServiceSelector.swift in Sources */ = {isa = PBXBuildFile; fileRef = B1301042B3886FE84C9D0352B6C8DD82 /* DFUServiceSelector.swift */; }; + 21D7E8B1FA347661D25A9A7F91128C5E /* CPTTextStyle.m in Sources */ = {isa = PBXBuildFile; fileRef = 54231FB21E337B9CD117EC167C1CE94D /* CPTTextStyle.m */; }; + 222EB19FE4648A28548F3CC1F5AFC234 /* CPTLineCap.m in Sources */ = {isa = PBXBuildFile; fileRef = D0B59A2FAD34AA880E8126FE21967381 /* CPTLineCap.m */; }; + 242786EC3ED8734EBD613A0164024B52 /* _CPTSlateTheme.h in Headers */ = {isa = PBXBuildFile; fileRef = AC81BED281DE1C953EB3FEFC02A997D8 /* _CPTSlateTheme.h */; settings = {ATTRIBUTES = (Private, ); }; }; + 246366A1E84A841F897E1E8E0ADC1EC1 /* _CPTAnimationNSDecimalPeriod.h in Headers */ = {isa = PBXBuildFile; fileRef = 1312DDB7428ACA18D721DE5F63E1C456 /* _CPTAnimationNSDecimalPeriod.h */; settings = {ATTRIBUTES = (Private, ); }; }; + 254591BEB5ABE8CD4C6A10A9452BD09A /* _CPTConstraintsRelative.m in Sources */ = {isa = PBXBuildFile; fileRef = 1BED2567BB1FF5DA427DDE282910C2A8 /* _CPTConstraintsRelative.m */; }; + 262BD3B373C519C98321AB60888C664D /* CPTNumericDataType.m in Sources */ = {isa = PBXBuildFile; fileRef = 171B7DF1E00BE330A34DBB544042452A /* CPTNumericDataType.m */; }; + 27FCE4A19842423C29CC0CC577D8D02B /* CorePlot-CocoaTouch.h in Headers */ = {isa = PBXBuildFile; fileRef = 69EB917D9A3E166724690A0690024371 /* CorePlot-CocoaTouch.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 285E476AA16912CEA8611EDB315EEBBA /* CPTAxisLabelGroup.h in Headers */ = {isa = PBXBuildFile; fileRef = FDFB53CACDD03676007E8B7A24A31EE6 /* CPTAxisLabelGroup.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 296C7DFB20CC622A8DC36A1603435A54 /* CPTXYAxis.m in Sources */ = {isa = PBXBuildFile; fileRef = F2993974D1806BDE6EE86D7AB9CCE9F4 /* CPTXYAxis.m */; }; + 2A7632D7546AA6080C049A54C29073AD /* EVReflectable.swift in Sources */ = {isa = PBXBuildFile; fileRef = BEFCA1F3C7043344BC6A29D15A495E56 /* EVReflectable.swift */; }; + 2B03694E6FAE9BDC521116CC13520C95 /* CPTPlotAreaFrame.m in Sources */ = {isa = PBXBuildFile; fileRef = F2A0635F7E709D8341A4CAC0C166C239 /* CPTPlotAreaFrame.m */; }; + 2BA3CEF3D92C8F24F1E150838AD0FF2F /* _CPTFillImage.h in Headers */ = {isa = PBXBuildFile; fileRef = B517BD7C3A4409B4326EDC1B8EA187FE /* _CPTFillImage.h */; settings = {ATTRIBUTES = (Private, ); }; }; + 2D21B0BDA540DAA155AC66051DE78646 /* EVWorkaroundHelpers.swift in Sources */ = {isa = PBXBuildFile; fileRef = EB5186FAAA3115AB04629DD56B8F1C8C /* EVWorkaroundHelpers.swift */; }; + 2DA3306B4D37363AFAF471EF6318BCF4 /* CPTMutablePlotRange.m in Sources */ = {isa = PBXBuildFile; fileRef = 52CC26CAF1B29E1F249BD86445D8B327 /* CPTMutablePlotRange.m */; }; + 2E31C385EEF78F9A1D9FB1E03F74274F /* IntelHex2BinConverter.m in Sources */ = {isa = PBXBuildFile; fileRef = 9A74EFE91B48135D44F256FC2B61F62E /* IntelHex2BinConverter.m */; }; + 3177C2856B288774F9B74F48E0716F29 /* LoggerDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 168F025FE1C07EEE7DDD83B7AAE0ABFD /* LoggerDelegate.swift */; }; + 319ED25B995FFB38F841961645D14613 /* CPTDebugQuickLook.h in Headers */ = {isa = PBXBuildFile; fileRef = 6187060E6B64A2F577CCE5CDB66C1F94 /* CPTDebugQuickLook.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 3268BF9F05C6312543CC2F943CB769B7 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = A58B1A53B5F65ED30D565676501B8C30 /* Foundation.framework */; }; + 3430D72FA6FFFA9C07B96C697ACF7A28 /* CPTPlatformSpecificCategories.h in Headers */ = {isa = PBXBuildFile; fileRef = F7622C73911718EB763779A4887AFE22 /* CPTPlatformSpecificCategories.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 351F97CE5159DE2260FF8023210E948D /* DFUServiceInitiator.swift in Sources */ = {isa = PBXBuildFile; fileRef = E39B1E3E136DAC949E34BDDAACA497FD /* DFUServiceInitiator.swift */; }; + 3552144FD35E254812006B021EF11EC7 /* _CPTXYTheme.h in Headers */ = {isa = PBXBuildFile; fileRef = 270671B3613A8361100B6555CE2EE114 /* _CPTXYTheme.h */; settings = {ATTRIBUTES = (Private, ); }; }; + 359A039A1E1835AB72E4CAD0D4724C23 /* _CPTBorderLayer.h in Headers */ = {isa = PBXBuildFile; fileRef = 015F5BDEBC2DCFE270E670F01AC06DE1 /* _CPTBorderLayer.h */; settings = {ATTRIBUTES = (Private, ); }; }; + 361F647784F10DA130288EFEE7C9B5F0 /* _CPTDarkGradientTheme.m in Sources */ = {isa = PBXBuildFile; fileRef = F4D1A48769BB272FA90CA28696A3B2D9 /* _CPTDarkGradientTheme.m */; }; + 366F4954F2D911D89993FD6DC4DEE202 /* CPTPlot.m in Sources */ = {isa = PBXBuildFile; fileRef = 724A2F31736A1DE0EF1B75F9840C759D /* CPTPlot.m */; }; + 36988B7759EA28D6F11B9CE076AA93F6 /* SecureDFUControlPoint.swift in Sources */ = {isa = PBXBuildFile; fileRef = 16C7D476482E54D2CD4E620ECDDBB2B1 /* SecureDFUControlPoint.swift */; }; + 36BAE5E1904A8797DFB9A36DAC478E3E /* Zip.swift in Sources */ = {isa = PBXBuildFile; fileRef = EDCEBBC17C72BF4E59A25438100C9326 /* Zip.swift */; }; + 38DE00921AD06BDF5B2101AD301F97DC /* CPTPlotSymbol.h in Headers */ = {isa = PBXBuildFile; fileRef = 2B3879AF77481594F3CF7DBFAFB51CDD /* CPTPlotSymbol.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 38E5455B05C69FC1851D5D4EC3C80391 /* SWRevealViewController-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = 4C6A232B27F67300059A8F69A973051F /* SWRevealViewController-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 3958404A02CEB15C5CABF53AED2BD662 /* SecureDFUServiceInitiator.swift in Sources */ = {isa = PBXBuildFile; fileRef = 83891E946E8924F14C30A325C7C6B594 /* SecureDFUServiceInitiator.swift */; }; + 3A0E265D4A5B0E1D32186553CCA5193A /* unzip.h in Headers */ = {isa = PBXBuildFile; fileRef = 054265D9864CF8CF795C4124AB9F6482 /* unzip.h */; settings = {ATTRIBUTES = (Project, ); }; }; + 3A8714C9454510BD6CAD2FEC17670596 /* CPTAnimationPeriod.m in Sources */ = {isa = PBXBuildFile; fileRef = F7BD4121FC884A38FE05CDAA367840BB /* CPTAnimationPeriod.m */; }; + 3B2A84F0A3A7F59B6731BAB84232DFA8 /* _CPTAnimationCGFloatPeriod.m in Sources */ = {isa = PBXBuildFile; fileRef = EEFFCD3836E3779C8A22C40B94C6F968 /* _CPTAnimationCGFloatPeriod.m */; }; + 3B63E245223441A131CF6F70AD22CBE5 /* CPTDefinitions.h in Headers */ = {isa = PBXBuildFile; fileRef = 8C3AC64F1D18E0B04D07337C60B6A0D6 /* CPTDefinitions.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 3B8ABEAB9E2A8BB06EF48C48642A458D /* DFUStreamBin.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8CECC40844BED2975CE49BB924656617 /* DFUStreamBin.swift */; }; + 3CE20FA24DA39C8BD7D466F98ABC771C /* CPTAxis.m in Sources */ = {isa = PBXBuildFile; fileRef = 42FD2B5FF2C76032C595C5D0815D149B /* CPTAxis.m */; }; + 3D342ECA1CA0589AFB597DDDDC5259A3 /* CPTPlotSpace.m in Sources */ = {isa = PBXBuildFile; fileRef = 7E45B97032219A8D3558DEDCC935B3FE /* CPTPlotSpace.m */; }; + 3DB902D6E88CC2B4F7FB60D5BC2B750F /* SecureDFUPacket.swift in Sources */ = {isa = PBXBuildFile; fileRef = 470B153C071A2C2893A779B04D39A4BF /* SecureDFUPacket.swift */; }; + 3EA701EE21477D1BBAB086CEFD63904C /* CPTTextStyle.h in Headers */ = {isa = PBXBuildFile; fileRef = 4CABD716518F32984747C89482E2FB76 /* CPTTextStyle.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 3F4951DF609B116C2D275BB0061F03FA /* QuickZip.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1DE46EB3C90EC9D07936065473576EAB /* QuickZip.swift */; }; + 3FF4C827CE6457107B017249FC0405F2 /* Zip.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 80AF12F5465B5E5D03C68440DDF64E50 /* Zip.framework */; }; + 400FEFD1EE862A29002E9CAF33698F61 /* DFUUuidHelper.swift in Sources */ = {isa = PBXBuildFile; fileRef = E0E3A272314A617B56868E6BA59DD890 /* DFUUuidHelper.swift */; }; + 410E31ECC5956F4C8DB2DB6B35CAE94D /* CPTImagePlatformSpecific.m in Sources */ = {isa = PBXBuildFile; fileRef = 2B0395D84E0526660B326882808034A0 /* CPTImagePlatformSpecific.m */; }; + 43E24942250306EBF1EC19735B0EE377 /* CPTAnnotationHostLayer.m in Sources */ = {isa = PBXBuildFile; fileRef = 003406845EE62A8471E9B570A4CA5BCD /* CPTAnnotationHostLayer.m */; }; + 471AFF795236574510D1E3FF28F954B8 /* LegacyDFUPeripheral.swift in Sources */ = {isa = PBXBuildFile; fileRef = 605B2E2C87FDDACD1CBD260606FA780E /* LegacyDFUPeripheral.swift */; }; + 48913DE38B88FADECDF3798F37147926 /* CPTAxis.h in Headers */ = {isa = PBXBuildFile; fileRef = 20B95365A9F472FCCC960399C57823C7 /* CPTAxis.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 48B7901C1B7B3427A7F282DCB3786EBA /* CPTMutableLineStyle.m in Sources */ = {isa = PBXBuildFile; fileRef = 09E7041BAE266D7BCB060A7C3A0651F1 /* CPTMutableLineStyle.m */; }; + 48E5F9A0A5D76B1329A03F012556FA08 /* CPTGraphHostingView.m in Sources */ = {isa = PBXBuildFile; fileRef = 2C61B2CA0EB87A6644FC8CB95EF8FDC7 /* CPTGraphHostingView.m */; }; + 48EDAB8557B57D8323CC70034A0F3A9B /* _CPTAnimationCGFloatPeriod.h in Headers */ = {isa = PBXBuildFile; fileRef = C77F0B7E8BCD7BA131EAE3CD9DCF30CC /* _CPTAnimationCGFloatPeriod.h */; settings = {ATTRIBUTES = (Private, ); }; }; + 491F508971AB435BC5ED5EBCEBB275DF /* CPTImage.m in Sources */ = {isa = PBXBuildFile; fileRef = E66BA55B0F109EDEE181D5045BDB6665 /* CPTImage.m */; }; + 498267090679CAA29FE7BAC73CB8C0F8 /* _CPTConstraintsRelative.h in Headers */ = {isa = PBXBuildFile; fileRef = EC9F280F4866B51E2B8470C3E67E1F56 /* _CPTConstraintsRelative.h */; settings = {ATTRIBUTES = (Private, ); }; }; + 4AEA9D19937F4CDBBB0EEF2F9398B3A6 /* CPTDefinitions.m in Sources */ = {isa = PBXBuildFile; fileRef = 282E316EAB0425B7250294DCD2E66D47 /* CPTDefinitions.m */; }; + 4C11855F5F9DE877296FB96ACC2F729E /* _CPTFillColor.m in Sources */ = {isa = PBXBuildFile; fileRef = F973863539EF266BB135D58F5318B5DC /* _CPTFillColor.m */; }; + 4CC5F95BA7728609DEC580099831B97A /* _CPTDarkGradientTheme.h in Headers */ = {isa = PBXBuildFile; fileRef = F2F985525A3595CF1F934926057AAB53 /* _CPTDarkGradientTheme.h */; settings = {ATTRIBUTES = (Private, ); }; }; + 4EB08E30D97D86DCF5129A564EE137D5 /* CPTAxisLabel.h in Headers */ = {isa = PBXBuildFile; fileRef = 95F180B025651004115808F2DBCD3C09 /* CPTAxisLabel.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 4F292B2F51E172634F98DFAF362F24ED /* _CPTAnimationPlotRangePeriod.h in Headers */ = {isa = PBXBuildFile; fileRef = 9FC6B2457AC5A632973EA45D6A5954CB /* _CPTAnimationPlotRangePeriod.h */; settings = {ATTRIBUTES = (Private, ); }; }; + 50000AFCA2150502E95C743A7F65EF9E /* CPTLegendEntry.m in Sources */ = {isa = PBXBuildFile; fileRef = 5DB9083AE3B753069170013D166408AC /* CPTLegendEntry.m */; }; + 502572454188B9C037FA078C388E1BE4 /* CPTNumericData+TypeConversion.m in Sources */ = {isa = PBXBuildFile; fileRef = DEBAB5F2C86B3B40907FE57DCB139842 /* CPTNumericData+TypeConversion.m */; }; + 50B5C59EABD25E8F6BC6CBD50D0C067D /* CPTPlotGroup.h in Headers */ = {isa = PBXBuildFile; fileRef = C19A9630B737ACB745169CB7FC61177D /* CPTPlotGroup.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 54164047E918E4381D12345FC0D51BE4 /* CPTNumericDataType.h in Headers */ = {isa = PBXBuildFile; fileRef = 99E3EB3FA67A34F4B387AED1055D91B6 /* CPTNumericDataType.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 55692EF8E5DDBACE835C68A9398BC3BD /* ZipUtilities.swift in Sources */ = {isa = PBXBuildFile; fileRef = BEB0D74DC47801D629290EF773C6F723 /* ZipUtilities.swift */; }; + 5614B0997CF605C0AC8B9A704B8173A4 /* CPTFunctionDataSource.m in Sources */ = {isa = PBXBuildFile; fileRef = 1EEB2334E49F7D5AD005016C7E19C0DB /* CPTFunctionDataSource.m */; }; + 563268318BB4E21E23DC5F58A4304F58 /* CPTGradient.h in Headers */ = {isa = PBXBuildFile; fileRef = D73F1A64489E6D347FECD72C1FEEE781 /* CPTGradient.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 56B88358E869E0E0A33E89D3628C5945 /* CPTAxisLabelGroup.m in Sources */ = {isa = PBXBuildFile; fileRef = 44217F252F3998D5A650F3489F75B98E /* CPTAxisLabelGroup.m */; }; + 5757257D291614E0BA400ABF36B1C44A /* CPTResponder.h in Headers */ = {isa = PBXBuildFile; fileRef = 5A0979AF3C6D8D289693657DEF3C66A3 /* CPTResponder.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 58ADF5C73ACB65BFAE4251146C7FDBBA /* CPTBorderedLayer.h in Headers */ = {isa = PBXBuildFile; fileRef = 72A980E92FAE3B91C4FC530C72D05C7C /* CPTBorderedLayer.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 58DA8CF1D216923CD98514B0E6C987FE /* CPTTheme.m in Sources */ = {isa = PBXBuildFile; fileRef = 7BD46F872A76D8737B01241D6563AAEC /* CPTTheme.m */; }; + 58EBC2571C947339D66D294831B69F9C /* Zip.h in Headers */ = {isa = PBXBuildFile; fileRef = 093EB71E379D7A7D00650481BEF5E373 /* Zip.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 596CB367A29BA6BC53C9A5895D838F98 /* CPTAnnotation.h in Headers */ = {isa = PBXBuildFile; fileRef = AE014BE7D287480ED1E0AC9973E59A2C /* CPTAnnotation.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 5A6DB821F9135C94EF6111F42CBD78A6 /* CPTXYAxisSet.m in Sources */ = {isa = PBXBuildFile; fileRef = 2C09683D9BF49967D26945C75310F778 /* CPTXYAxisSet.m */; }; + 5B1CFD374E83E1276EC65CF00C01B046 /* CPTXYGraph.m in Sources */ = {isa = PBXBuildFile; fileRef = D34E7522D50CD4530972FA7EA7677BD0 /* CPTXYGraph.m */; }; + 5C4AED95B9992C1803A2ABB97FE78631 /* CPTAnimation.h in Headers */ = {isa = PBXBuildFile; fileRef = 006B18CF0757496867C0824748CDFD3F /* CPTAnimation.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 5D1356B851C5DA2C5443187B3A23524C /* CPTAnimationOperation.m in Sources */ = {isa = PBXBuildFile; fileRef = 4C6744EC5A2ED4D97A757D6E95D37B8D /* CPTAnimationOperation.m */; }; + 5D8BD843FD205DA7FA905AC5857E1B2E /* DeserializationStatus.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4F7BB9517690790869970006D1D2F959 /* DeserializationStatus.swift */; }; + 5E2ACFCD96709DC3F7292975DE1CB485 /* SWRevealViewController.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B5D6DBC06CBD27361420E62818D549F /* SWRevealViewController.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 5EC5314E357590BA3750EF4F98DA571C /* CPTAxisTitle.m in Sources */ = {isa = PBXBuildFile; fileRef = F714C8473E010189534420C06A374775 /* CPTAxisTitle.m */; }; + 5EC62A6C29CD9A6E1C0759A33274FCF0 /* NSNumberExtensions.h in Headers */ = {isa = PBXBuildFile; fileRef = 9A6BECA6E8E387F77223CDE14718AA97 /* NSNumberExtensions.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 5F0BC7253C5F0514DDA7FB8D1BB10BCE /* CPTPieChart.h in Headers */ = {isa = PBXBuildFile; fileRef = 617C04B65F625004862D7B531C91C4D3 /* CPTPieChart.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 5FF4744D02C3162C6B67F4294F6A71CF /* CPTPlotRange.h in Headers */ = {isa = PBXBuildFile; fileRef = F6A01659C8D84A963BF5FC46EA155FE0 /* CPTPlotRange.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 6106EFC25BABD1020056EB99EB3CE6F2 /* CPTPlatformSpecificFunctions.m in Sources */ = {isa = PBXBuildFile; fileRef = D8F4366D24139769E28C6FB1B2F052AA /* CPTPlatformSpecificFunctions.m */; }; + 620FA3F68B4D792BAB4D94AE59C85CFB /* CPTLineStyle.m in Sources */ = {isa = PBXBuildFile; fileRef = 5BB7376F80D302D98B5A42F4D8033E1B /* CPTLineStyle.m */; }; + 629ADA84F1BD5656A4E28392199DE43B /* CPTScatterPlot.m in Sources */ = {isa = PBXBuildFile; fileRef = EDA1D6CD2E6009186FA316DAEB137B9C /* CPTScatterPlot.m */; }; + 67C6E2E08F2D113418E4CA467F28731F /* CPTTradingRangePlot.m in Sources */ = {isa = PBXBuildFile; fileRef = F3ACB46F6517B885BE59045B5426CD6E /* CPTTradingRangePlot.m */; }; + 684AB0098DB247DA95E29ABA0BAD86C0 /* EVCustomReflectable.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1E64FCD0794C777EBB280C34A062AC8B /* EVCustomReflectable.swift */; }; + 6894E64B3BDA30B42E82E87D0BFA5AFA /* CorePlot-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = CF2ED902DB6E40DEF2F55FBA15363A9C /* CorePlot-dummy.m */; }; + 68FC3F739FE4E82162CD3ECF1914AF14 /* CPTXYPlotSpace.m in Sources */ = {isa = PBXBuildFile; fileRef = FBD54C61E2F4FE6C22AC0E6F8EC7C985 /* CPTXYPlotSpace.m */; }; + 690FA0588E4A4E4EFEBF31F45AB73521 /* CPTGridLineGroup.m in Sources */ = {isa = PBXBuildFile; fileRef = AD2D77ABF3A15B80E66107AA91B1A845 /* CPTGridLineGroup.m */; }; + 691F8BE20564223A6F4F1ED3D4BAC068 /* CPTGridLines.h in Headers */ = {isa = PBXBuildFile; fileRef = 65989DB4F194AFE022440ACA39FB8DDD /* CPTGridLines.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 696DB8F8D26B97DDA59E65F3BDB922FD /* _CPTConstraintsFixed.h in Headers */ = {isa = PBXBuildFile; fileRef = 2AED89F44BE1948D3DCBE6BD2B2589D9 /* _CPTConstraintsFixed.h */; settings = {ATTRIBUTES = (Private, ); }; }; + 6CC48A95BA68FE0AC464AFBA29DFCA68 /* CPTMutableNumericData.m in Sources */ = {isa = PBXBuildFile; fileRef = 8B636CEE91FD11890E96C17700D27850 /* CPTMutableNumericData.m */; }; + 6E874FB9BA5511882977BABEBF1AA808 /* NSCoderExtensions.h in Headers */ = {isa = PBXBuildFile; fileRef = 2F0E15C381A25E6F58A2B599E2DD1659 /* NSCoderExtensions.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 6ED99B46C425D5415233D418113F6289 /* CPTColorSpace.m in Sources */ = {isa = PBXBuildFile; fileRef = 93811C130B1EF7A929BAE27877A6EE55 /* CPTColorSpace.m */; }; + 6FD45E8DC90EEF01BAE504DF676CB1EA /* ConversionOptions.swift in Sources */ = {isa = PBXBuildFile; fileRef = E1943CDCB7EAA61EF3FC22D5BF2EFAC9 /* ConversionOptions.swift */; }; + 7062B3CE207688F49248363AD1B2B6CA /* QuartzCore.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 0EA11E9847BE4043445EFFCF0B17BD77 /* QuartzCore.framework */; }; + 70A275AF022B0082E689A4F7857A1DE4 /* IntelHex2BinConverter.h in Headers */ = {isa = PBXBuildFile; fileRef = F04E1033ADE8E7C797B05895510B2143 /* IntelHex2BinConverter.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 70F5DB8DC7AF95A4975D05D2248867A4 /* DFUExecutor.swift in Sources */ = {isa = PBXBuildFile; fileRef = CE5BEDF1F981599AC796F2F0E9F83768 /* DFUExecutor.swift */; }; + 71B9911B8B53FC085C96D0244B246569 /* EVReflection-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = 80DEDD9B09435A335D8444AAF27B819F /* EVReflection-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 72735509A8041EB6026E118BBBDE2F82 /* _CPTAnimationCGRectPeriod.m in Sources */ = {isa = PBXBuildFile; fileRef = 933E393F7D69FEF615A9EE73198C6174 /* _CPTAnimationCGRectPeriod.m */; }; + 72C72AE7CD3EC27C8AFD187B91D034F4 /* CPTPlotSpaceAnnotation.m in Sources */ = {isa = PBXBuildFile; fileRef = 805428687153BE3A5CF440DF91FE94BC /* CPTPlotSpaceAnnotation.m */; }; + 73B496EA53DCF57DF5A3E5AA7E0324AE /* NSNumberExtensions.m in Sources */ = {isa = PBXBuildFile; fileRef = 0A8CD193B2BE2DF8CCD36BF7127D59E4 /* NSNumberExtensions.m */; }; + 74540D6C03D2B69BEBC12E59513EED35 /* Pods-nRF Toolbox-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = 5AEC8D40C7E17B020CEA24C3E7DB31EF /* Pods-nRF Toolbox-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 75F99ACAFA4D9CC6C5494BCFAF59D81F /* _CPTStocksTheme.m in Sources */ = {isa = PBXBuildFile; fileRef = B902DA3CC399D633509FB5B3ABF733FC /* _CPTStocksTheme.m */; }; + 77F32AD3247B7E4E4BA3DCC097C98A14 /* CPTMutableTextStyle.m in Sources */ = {isa = PBXBuildFile; fileRef = D41806467AA062627A1A552A2C981F9A /* CPTMutableTextStyle.m */; }; + 78243A9C8EB23896A7060AD112768BE4 /* ioapi.c in Sources */ = {isa = PBXBuildFile; fileRef = 6871A545D15D2DD615B2C3B38C07DD9E /* ioapi.c */; }; + 79413734D874A4102A4F5A033DA92620 /* CPTMutableNumericData.h in Headers */ = {isa = PBXBuildFile; fileRef = EE378EDE41682BA0FF6E5C946FFB936B /* CPTMutableNumericData.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 7A3A7E8EC25769F587398D6AE46F0D94 /* CPTFill.m in Sources */ = {isa = PBXBuildFile; fileRef = 648FBB42E181DAD6FAB051BEB3901087 /* CPTFill.m */; }; + 7A752AFCEA553F550A5A07392FF37E9F /* CPTXYAxis.h in Headers */ = {isa = PBXBuildFile; fileRef = 7C3B609DB3F0CB2367A3A74F263100F7 /* CPTXYAxis.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 7B4C3E96589F42C291832058EC64283D /* _CPTAnimationCGRectPeriod.h in Headers */ = {isa = PBXBuildFile; fileRef = A44E5C2999B06B7ACAC42ADF0D31790B /* _CPTAnimationCGRectPeriod.h */; settings = {ATTRIBUTES = (Private, ); }; }; + 7BEC1C779DB3D2C9174158B8A9651D7C /* CPTLineStyle.h in Headers */ = {isa = PBXBuildFile; fileRef = 03B7ADCB0F94F798984266ED88C11936 /* CPTLineStyle.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 7C2CFEC47D63567352A2F2C910528997 /* CPTUtilities.m in Sources */ = {isa = PBXBuildFile; fileRef = 60B4E04571F4EBA97036F98EE1F3F66A /* CPTUtilities.m */; }; + 7C42A86D4440070425F48C15717AB41B /* CPTMutablePlotRange.h in Headers */ = {isa = PBXBuildFile; fileRef = 0ECC944F70738F80E482CCB65B30EDFB /* CPTMutablePlotRange.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 7EC82B311850E35805408C1FAC21C677 /* CPTColor.h in Headers */ = {isa = PBXBuildFile; fileRef = FC235CC0A6A86803A31AB71A41837182 /* CPTColor.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 801BFE40C72C105EBE741AD7C179FDA5 /* DFUFirmware.swift in Sources */ = {isa = PBXBuildFile; fileRef = 85A35F3554D002BACAAB0D43BF98BA43 /* DFUFirmware.swift */; }; + 81BD985E7C6F3302D80EAD53D30BE6BD /* ioapi.h in Headers */ = {isa = PBXBuildFile; fileRef = FD43A283C042C2BA8DA561C4D178AE72 /* ioapi.h */; settings = {ATTRIBUTES = (Project, ); }; }; + 828F84EA65637993D8C90C954DD3C40C /* CPTDerivedXYGraph.m in Sources */ = {isa = PBXBuildFile; fileRef = 41B6D70D0C4AA0CE8EDF6BAB3C20700F /* CPTDerivedXYGraph.m */; }; + 831218419E157B0656EEAEE7E05F95A7 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = A58B1A53B5F65ED30D565676501B8C30 /* Foundation.framework */; }; + 83E7CEFCB9647C3B8AEBBDFB320E7896 /* DFUServiceDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 200E020B58CC09F63B87DDCA3072BFA1 /* DFUServiceDelegate.swift */; }; + 83E8EE429F68C8802A1C77147F9EB922 /* CPTGraph.h in Headers */ = {isa = PBXBuildFile; fileRef = F73A9476901835F5CF7CDA507BA97D6E /* CPTGraph.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 84B272DAC569385CDC64409C750359A4 /* ButtonlessDFU.swift in Sources */ = {isa = PBXBuildFile; fileRef = 57645843397853E64AC81B57A20A15E1 /* ButtonlessDFU.swift */; }; + 86B04A22A341EB38C8F25B539E3CE324 /* CPTAxisSet.m in Sources */ = {isa = PBXBuildFile; fileRef = F5E3F589FCD3E4EA0FB2568E7A1F6345 /* CPTAxisSet.m */; }; + 86D24E119C97059E7C18362B6AE0DC28 /* CPTColorSpace.h in Headers */ = {isa = PBXBuildFile; fileRef = 229173C8BDBAEF94EB78CAB1DEB3D7D9 /* CPTColorSpace.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 86E3101F82F84CE029F11CBDAB9B8394 /* CPTFunctionDataSource.h in Headers */ = {isa = PBXBuildFile; fileRef = 427F77D6F7907CE7D8D1611C066E7147 /* CPTFunctionDataSource.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 870D72F5750DBB3532B9A701213F249F /* DFUController.swift in Sources */ = {isa = PBXBuildFile; fileRef = C6B8ACD1E7A6D015477188328F846957 /* DFUController.swift */; }; + 8904AA779A900F7BCA691EB2C970042F /* CPTRangePlot.m in Sources */ = {isa = PBXBuildFile; fileRef = 94AB1C1F19BF5468FEDCC438F76A36DE /* CPTRangePlot.m */; }; + 89965650A7E0385D8A335764401256C8 /* CPTAxisLabel.m in Sources */ = {isa = PBXBuildFile; fileRef = CC866DE0D2CCFA452DF4D63B9EC0A6DB /* CPTAxisLabel.m */; }; + 8A171C42F702288492B8FC7AB574F483 /* CPTExceptions.h in Headers */ = {isa = PBXBuildFile; fileRef = 30C3C3F88AC930DC372342470A27469A /* CPTExceptions.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 8BCF663F936CF85663F33DF0007A8B64 /* CPTPlotSpace.h in Headers */ = {isa = PBXBuildFile; fileRef = 6CBECABBEE8E9E9919E10665A47BA4A1 /* CPTPlotSpace.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 8D15CDB0855EF5448F484B4E29D6BB52 /* Data.swift in Sources */ = {isa = PBXBuildFile; fileRef = 769B4833399403E89E2EC54AD238DEC6 /* Data.swift */; }; + 8D4320B5EF47192B130BE449E98AE4E4 /* CPTGraph.m in Sources */ = {isa = PBXBuildFile; fileRef = 2F54346E12C6ED521D1148B2C4EEF005 /* CPTGraph.m */; }; + 8E33AC01AEBFF1AEB99F8C902EB3B081 /* CPTMutableShadow.h in Headers */ = {isa = PBXBuildFile; fileRef = E3C488E5A163B08C4E720BE883C94844 /* CPTMutableShadow.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 8EC5BB402156F8F17BBC767F43606EBE /* CPTAxisSet.h in Headers */ = {isa = PBXBuildFile; fileRef = F450F578C9AD6A71A840D2FD318F9A63 /* CPTAxisSet.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 8EEAE8EF4E2353E6BBFFD2C93F417869 /* CoreGraphics.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = EE85C48A754EC2C3679A0FE474F3772D /* CoreGraphics.framework */; }; + 8F7967379EFB0A375E0537B87B98CDD7 /* ManifestFirmwareInfo.swift in Sources */ = {isa = PBXBuildFile; fileRef = 79DE6322CD81E12269635433A608B64F /* ManifestFirmwareInfo.swift */; }; + 8F86720C8B4C5789451ECA2F307C1582 /* CPTBarPlot.h in Headers */ = {isa = PBXBuildFile; fileRef = 6CC072882BE80D42250144B1754FC687 /* CPTBarPlot.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 906062AE1653562351E87D1D2F3B5D34 /* DFUServiceController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2A2794D24ADE5DDEAEC3676A6C291113 /* DFUServiceController.swift */; }; + 93D473C2C1AC2E6ABAAF741E3FE03E80 /* Double.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4AB713F55C791BFFA30584FE81809050 /* Double.swift */; }; + 95E412942CCAD76685AA7BC6CECC5910 /* ZipArchive.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9D3102F3680BC7EE5762BAAF4AFF1D81 /* ZipArchive.swift */; }; + 9616BA27B192980A6A1EE358BE71A3FE /* _CPTAnimationPlotRangePeriod.m in Sources */ = {isa = PBXBuildFile; fileRef = 5FDD12867EFCBD2F3496D2A15F9119E9 /* _CPTAnimationPlotRangePeriod.m */; }; + 96DE32FEC434D81F57D35711DE57558D /* CPTBorderedLayer.m in Sources */ = {isa = PBXBuildFile; fileRef = 806A31476B00E24A3A6FC740ADC7E3C6 /* CPTBorderedLayer.m */; }; + 970AA724F175C68A28A2AA3AFF53C33D /* CPTPieChart.m in Sources */ = {isa = PBXBuildFile; fileRef = 84FF814C84FE5E0D011822BE140188DD /* CPTPieChart.m */; }; + 971F412F7B9FFE6F6ED33B4852365A9F /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = A58B1A53B5F65ED30D565676501B8C30 /* Foundation.framework */; }; + 976940C715B1B4B3DDBC046F357FB360 /* _CPTFillGradient.h in Headers */ = {isa = PBXBuildFile; fileRef = 02041B1CDBEDAD0D7078735B66331C2E /* _CPTFillGradient.h */; settings = {ATTRIBUTES = (Private, ); }; }; + 98AE2263A14827C3AD812057B532EBEE /* CPTAnimation.m in Sources */ = {isa = PBXBuildFile; fileRef = 442F8658F38F4E42F3779E9C000923B0 /* CPTAnimation.m */; }; + 98F853E4F5891A95115C65A324D03F51 /* CPTAnimationPeriod.h in Headers */ = {isa = PBXBuildFile; fileRef = 6F122D45A3A09241E2B83E0AB1729B61 /* CPTAnimationPeriod.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 991FA07C60FC6B8541402735EC2EE43B /* EVArrayExtension.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3E2D90652F267ADD99B873DB31966B93 /* EVArrayExtension.swift */; }; + 992920AC88615C2FE274DC99A5709F49 /* _CPTAnimationCGPointPeriod.h in Headers */ = {isa = PBXBuildFile; fileRef = BB82B7CF2FD1849BCE9AD5913C917418 /* _CPTAnimationCGPointPeriod.h */; settings = {ATTRIBUTES = (Private, ); }; }; + 9AC55C428447F9168E77A66DBE0F4380 /* DFUControlPoint.swift in Sources */ = {isa = PBXBuildFile; fileRef = 328ED62BA6EA0DE736C32C6304B0870E /* DFUControlPoint.swift */; }; + 9C132658571BB11B8B1D5F9C82018467 /* DFUCharacteristic.swift in Sources */ = {isa = PBXBuildFile; fileRef = D3CF2FA44D6811A7223CBD044160BE70 /* DFUCharacteristic.swift */; }; + 9C2D522E14845466DC3C0FA345DFD000 /* CorePlot-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = AFBAE8E26E7323795D42511DE089B63F /* CorePlot-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 9C69578ECE73AEEE905C7816356A896D /* EVDictionaryExtension.swift in Sources */ = {isa = PBXBuildFile; fileRef = C97D902BBEFABF02CAD1A355714C8B11 /* EVDictionaryExtension.swift */; }; + 9C6CFB2440F8ED50FC39DD7E8F72415D /* CPTMutableLineStyle.h in Headers */ = {isa = PBXBuildFile; fileRef = E8EEBDE9FA0D71E757B728068B8CB2BD /* CPTMutableLineStyle.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 9C826275607E748FB9AE1A9EC7200BF1 /* UIKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = E777BF5FBCD997185E2682D472EABB41 /* UIKit.framework */; }; + 9CEEF4F6C38D942ADF8CBF90928B4548 /* CPTBarPlot.m in Sources */ = {isa = PBXBuildFile; fileRef = 8D53900F992BC41ED18A759BBD69A6B4 /* CPTBarPlot.m */; }; + 9D14B37BC20A58A859CC60E6A7F06F87 /* _CPTAnimationCGSizePeriod.h in Headers */ = {isa = PBXBuildFile; fileRef = D4CC8F8C9C9E0B83B1EC56F4E2D45DE3 /* _CPTAnimationCGSizePeriod.h */; settings = {ATTRIBUTES = (Private, ); }; }; + 9D2928F36717ED1DDA5FFE716498BD26 /* DFUPeripheralDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = CF07642AC4F2D223ABAF25F6C41203B4 /* DFUPeripheralDelegate.swift */; }; + 9D68BC00A6818AE0E1ED7B573CBF5C58 /* DFUPeripheralSelector.swift in Sources */ = {isa = PBXBuildFile; fileRef = B163AE26D04356853DFEC9FFFFB5A30F /* DFUPeripheralSelector.swift */; }; + 9DF6FBB4FE177E132A003FE70C48BC53 /* unzip.c in Sources */ = {isa = PBXBuildFile; fileRef = 4C46886E167D0DA9458C19B16834DF6A /* unzip.c */; }; + 9F5668F0D62FB68AEF3D61D77747F4AD /* SWRevealViewController-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 6C669B23222391549C6BA8BA6E730622 /* SWRevealViewController-dummy.m */; }; + 9F7F86E4AA020162E8802FCB48FC051A /* CorePlotProbes.d in Sources */ = {isa = PBXBuildFile; fileRef = 3A28528D1B354DB0E0891F0A1B4B5B6F /* CorePlotProbes.d */; }; + 9F88E84E39D0FE11FBDFFE34515AA9D0 /* Zip-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = 2A516B57D5EF2A72F2BB25DC3212C5D2 /* Zip-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; + A223C246AE7B2B140E160EED7AB3ACBA /* _CPTMaskLayer.m in Sources */ = {isa = PBXBuildFile; fileRef = 8E811970F5C8649EC24BCD651A42F94F /* _CPTMaskLayer.m */; }; + A2BFC084DE1E5BE63C94E50855D81639 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = A58B1A53B5F65ED30D565676501B8C30 /* Foundation.framework */; }; + A3A11E5F6B99A1BA51FA7CE605694E6A /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = A58B1A53B5F65ED30D565676501B8C30 /* Foundation.framework */; }; + A481B5DD53B317ECF2831911B05B98AF /* CPTPlotAreaFrame.h in Headers */ = {isa = PBXBuildFile; fileRef = B9C290FC06445D38EB9BF7727578CAB5 /* CPTPlotAreaFrame.h */; settings = {ATTRIBUTES = (Public, ); }; }; + A6F17357DA92285CD918A2A1982C03D1 /* SecureDFUPeripheralDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 20C4BF7CDCB7A6CE73BB38891BA18142 /* SecureDFUPeripheralDelegate.swift */; }; + A7E4D02DDD295FBD76F977569EBA4C30 /* CPTLayer.m in Sources */ = {isa = PBXBuildFile; fileRef = A22EFD01681E19D28B611AC3AE3370CE /* CPTLayer.m */; }; + A7F15D3C0FA28267173C531DAA0EC1F6 /* CPTNumericData.m in Sources */ = {isa = PBXBuildFile; fileRef = 2B07F4C0158BAF71C781AFAE0CD78A92 /* CPTNumericData.m */; }; + AA790E4FF27AE49483B3D5D7591DDA61 /* CPTTextStylePlatformSpecific.m in Sources */ = {isa = PBXBuildFile; fileRef = 5FB83FCEF577C5B810E44FBFB4463CAB /* CPTTextStylePlatformSpecific.m */; }; + AC56ABFDD79481FFA18180BB17A6A56C /* CPTTradingRangePlot.h in Headers */ = {isa = PBXBuildFile; fileRef = C4AF69DA9ABC7140DF59D7A91F29AE64 /* CPTTradingRangePlot.h */; settings = {ATTRIBUTES = (Public, ); }; }; + AC73847DEC3B50D1E9C5F9E83C9C5B46 /* CPTTextLayer.h in Headers */ = {isa = PBXBuildFile; fileRef = B140986F17B8BCF31924780ED10A3D5C /* CPTTextLayer.h */; settings = {ATTRIBUTES = (Public, ); }; }; + AD389254D3A6A9101BAA9D86546AFB4C /* CPTPlatformSpecificDefines.m in Sources */ = {isa = PBXBuildFile; fileRef = F56BC963D4231917FFB09A987849891A /* CPTPlatformSpecificDefines.m */; }; + AD7A027425ED338CB5994B512BCFCDE5 /* LegacyDFUPeripheralDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 836B45DEF4C40C97F5963F77CF02784C /* LegacyDFUPeripheralDelegate.swift */; }; + AE2A0E47D2E538FFD8D5B7210277F4FC /* EVReflection.swift in Sources */ = {isa = PBXBuildFile; fileRef = B840EEE40EC4A37C00EF6A82C07C7E7D /* EVReflection.swift */; }; + AEBC14410213CB8F03178512D887491C /* CorePlot.h in Headers */ = {isa = PBXBuildFile; fileRef = 781712DA6AD7C9BF6BADC2DE52863799 /* CorePlot.h */; settings = {ATTRIBUTES = (Public, ); }; }; + AED11D40733AE7148D04547F425CF353 /* zip.h in Headers */ = {isa = PBXBuildFile; fileRef = 907701815D8593A6B837B65F5E0E333F /* zip.h */; settings = {ATTRIBUTES = (Project, ); }; }; + AF0D40A2796C9A6E20484E105F54D74D /* CPTPlatformSpecificCategories.m in Sources */ = {isa = PBXBuildFile; fileRef = A096AEC599D4CCED05195D202A5B76A8 /* CPTPlatformSpecificCategories.m */; }; + AF64E555E36FC170360E6E656451021B /* CPTLegendEntry.h in Headers */ = {isa = PBXBuildFile; fileRef = 03E3694870B28CC3C22F3E011FECFAE3 /* CPTLegendEntry.h */; settings = {ATTRIBUTES = (Public, ); }; }; + B05CA4C262721A96F513FF56DD16ACE2 /* _CPTAnimationNSNumberPeriod.m in Sources */ = {isa = PBXBuildFile; fileRef = F832A621BC52363998D8DAB2383A5499 /* _CPTAnimationNSNumberPeriod.m */; }; + B05E558EA2F268C036A283E7B9B2BEE2 /* CPTXYPlotSpace.h in Headers */ = {isa = PBXBuildFile; fileRef = 633FF9F5B00247B63FF718A157EB240A /* CPTXYPlotSpace.h */; settings = {ATTRIBUTES = (Public, ); }; }; + B1853269AA068CFC35E4C95F51C1C1A1 /* CPTLineCap.h in Headers */ = {isa = PBXBuildFile; fileRef = 126A73F0771DE4822DD7E7818E980660 /* CPTLineCap.h */; settings = {ATTRIBUTES = (Public, ); }; }; + B415A54C03D22B6133C6C92B51956FAB /* CPTTextStylePlatformSpecific.h in Headers */ = {isa = PBXBuildFile; fileRef = 9C636A9FA051C892B1C6C7A7974F256C /* CPTTextStylePlatformSpecific.h */; settings = {ATTRIBUTES = (Public, ); }; }; + B53FD0F1D7731A2E964A1213CFAF1CF9 /* CPTAnnotationHostLayer.h in Headers */ = {isa = PBXBuildFile; fileRef = C2CAC495B68FACD0E03BC64D13046610 /* CPTAnnotationHostLayer.h */; settings = {ATTRIBUTES = (Public, ); }; }; + B5F4C94D522C330F7624CF378BF73921 /* CPTMutableNumericData+TypeConversion.m in Sources */ = {isa = PBXBuildFile; fileRef = DA617D9A390F215101C113C4D5F41513 /* CPTMutableNumericData+TypeConversion.m */; }; + B6E52EEF0B7358D4C8B5FD55242E340C /* CPTPathExtensions.m in Sources */ = {isa = PBXBuildFile; fileRef = 73E1A361D2935A491DC686AE3BA3A603 /* CPTPathExtensions.m */; }; + B8805D6C0964A4D45BB2F2D719A8812B /* zip.c in Sources */ = {isa = PBXBuildFile; fileRef = A1784BDFEDA469594BA05EAB440EEF7A /* zip.c */; }; + BCF75E8A77DDF2D4CF5141D826024F17 /* EVReflection-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 459C421D92984822AF154227D1E27564 /* EVReflection-dummy.m */; }; + BD04C32AF0BA3F566B2FB835EACDB08A /* Manifest.swift in Sources */ = {isa = PBXBuildFile; fileRef = C136228987C818CD7FA05E75A9E49209 /* Manifest.swift */; }; + BFD716317F18A84B01075774E55A4B64 /* iOSDFULibrary-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = 4611B554E0815F8D5761A40A7478E78D /* iOSDFULibrary-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; + C00DA0DA40AC10EC44908B4B23A5B7E4 /* Pods-nRF Toolbox-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = C6BECCA83DAD9BEC7E00B73705BEE9E8 /* Pods-nRF Toolbox-dummy.m */; }; + C1D50FA7D1DE7747766BC4E9E4CE0009 /* _CPTPlainBlackTheme.m in Sources */ = {isa = PBXBuildFile; fileRef = 4E282219FF47440EE82EE04AB536A418 /* _CPTPlainBlackTheme.m */; }; + C22728C48A81E4B1469B7ED977B50644 /* _CPTPlainWhiteTheme.h in Headers */ = {isa = PBXBuildFile; fileRef = 84DE8AEF525904103B5150FA2D25AA64 /* _CPTPlainWhiteTheme.h */; settings = {ATTRIBUTES = (Private, ); }; }; + C4408C6DE05217AF9260E0364DC8DA44 /* CPTUtilities.h in Headers */ = {isa = PBXBuildFile; fileRef = 69A9B35A98892E3BB79E46E6FEB3B5D4 /* CPTUtilities.h */; settings = {ATTRIBUTES = (Public, ); }; }; + C45D07680AA365E1B32B065996EEA642 /* CPTTimeFormatter.m in Sources */ = {isa = PBXBuildFile; fileRef = C0A263189D1033BF6AEC0B376F8C52D3 /* CPTTimeFormatter.m */; }; + C48D02009181413F165DD730C941E062 /* crypt.h in Headers */ = {isa = PBXBuildFile; fileRef = 88CBA720313D0093951801898852EC82 /* crypt.h */; settings = {ATTRIBUTES = (Project, ); }; }; + C49FC8A0B0A00A68A4D66AA7E1D96060 /* CPTRangePlot.h in Headers */ = {isa = PBXBuildFile; fileRef = 9C3ED538FE24DDCB9EA034E9E0D4B6FF /* CPTRangePlot.h */; settings = {ATTRIBUTES = (Public, ); }; }; + C5EF494C182A7D7C86EB9C90E77B6038 /* _CPTFillColor.h in Headers */ = {isa = PBXBuildFile; fileRef = AA38A1B93D2BDE61B2AD3E9EDD8FFC2B /* _CPTFillColor.h */; settings = {ATTRIBUTES = (Private, ); }; }; + C6298AFEF59D65C597BC57B94EA04042 /* _CPTAnimationNSNumberPeriod.h in Headers */ = {isa = PBXBuildFile; fileRef = 849B5F848A1D85E5DA37D858621FB7A5 /* _CPTAnimationNSNumberPeriod.h */; settings = {ATTRIBUTES = (Private, ); }; }; + C682930D7CC7CB4CD47499A29356BFB2 /* _CPTStocksTheme.h in Headers */ = {isa = PBXBuildFile; fileRef = D5933C3AB00705BCD5CEF0FE0DFA6AF8 /* _CPTStocksTheme.h */; settings = {ATTRIBUTES = (Private, ); }; }; + C69F920BF1E4CBB7135C3F4207C63609 /* _CPTAnimationTimingFunctions.m in Sources */ = {isa = PBXBuildFile; fileRef = 40B884019E926B529517AB24EA6C5CE7 /* _CPTAnimationTimingFunctions.m */; }; + C6C11475AB4DEB0F2466EBEEE3CCC489 /* CPTScatterPlot.h in Headers */ = {isa = PBXBuildFile; fileRef = E14449EC4F5654C18B06EB5175BF1441 /* CPTScatterPlot.h */; settings = {ATTRIBUTES = (Public, ); }; }; + C889039D6CA3E3F3229C681D410F8C79 /* CPTLegend.h in Headers */ = {isa = PBXBuildFile; fileRef = 6B9E201F9C0CE5923F2940D3815B2FE2 /* CPTLegend.h */; settings = {ATTRIBUTES = (Public, ); }; }; + CBC6738DC2D347E1B448D00195D0E427 /* _CPTAnimationCGPointPeriod.m in Sources */ = {isa = PBXBuildFile; fileRef = 686D7767A47D5ED6439F8488315FF8F0 /* _CPTAnimationCGPointPeriod.m */; }; + CC56EF332190E4D1CEA393152473F453 /* _CPTXYTheme.m in Sources */ = {isa = PBXBuildFile; fileRef = 67B15D5F3AB14B5B06896AA9F4CA76E9 /* _CPTXYTheme.m */; }; + CDA0433E04F660F2A6EB533CFFD07DD9 /* LegacyDFUServiceInitiator.swift in Sources */ = {isa = PBXBuildFile; fileRef = 457F79841F01CCF3C6B65CFF09CFB25F /* LegacyDFUServiceInitiator.swift */; }; + CEF0F1DA2066F1B2454B8C60BFE54A6A /* PrintOptions.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6E1829C9308E6D43A6BF5E8CFDA51AC9 /* PrintOptions.swift */; }; + D131A1A4D81E6C3FDC8BA052F8A9BC01 /* CPTPlotSymbol.m in Sources */ = {isa = PBXBuildFile; fileRef = A043E2332A6A4637859F8ECACE0449DF /* CPTPlotSymbol.m */; }; + D185FD97B633F7541A80020DCDC172C5 /* NSDecimalNumberExtensions.m in Sources */ = {isa = PBXBuildFile; fileRef = D46C439494C8055F2C2605950BA52058 /* NSDecimalNumberExtensions.m */; }; + D1B5AEDAF6B2C2855BFE938B43162E51 /* EVObject.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2654B16FA44715EA1F4FF96002F77E2D /* EVObject.swift */; }; + D2578DACE4D389D445F557FD70944FEC /* _CPTAnimationTimingFunctions.h in Headers */ = {isa = PBXBuildFile; fileRef = 2A47FFB56B51592AA8FDBA6963353BE1 /* _CPTAnimationTimingFunctions.h */; settings = {ATTRIBUTES = (Private, ); }; }; + D270025A8F1E15609A2C783F17CEC017 /* CPTShadow.m in Sources */ = {isa = PBXBuildFile; fileRef = 874D886632C9C327E84A8C423A68ECF5 /* CPTShadow.m */; }; + D28DAC17DFB27CDF95915D13E52F323F /* CPTPathExtensions.h in Headers */ = {isa = PBXBuildFile; fileRef = 8E7507B3E991E4F67CD50F7EA0F99FEE /* CPTPathExtensions.h */; settings = {ATTRIBUTES = (Public, ); }; }; + D4522766C6A053C8A89955C42330C4C2 /* SWRevealViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 7BD367BB9279B8CC218CBF4792711EB4 /* SWRevealViewController.m */; }; + D46CDF9755D527503390899FA2AC15A8 /* CPTDerivedXYGraph.h in Headers */ = {isa = PBXBuildFile; fileRef = 724CF192BA5BCAC73F68568076AC4BDF /* CPTDerivedXYGraph.h */; settings = {ATTRIBUTES = (Public, ); }; }; + D5DBB8DBD2F1040FCF692362DC4C2E77 /* CPTExceptions.m in Sources */ = {isa = PBXBuildFile; fileRef = 1FD99631043058BA3A8487922F4D0BFC /* CPTExceptions.m */; }; + D7D565CD9FAF28AAF3159FC75776C36D /* CPTColor.m in Sources */ = {isa = PBXBuildFile; fileRef = 5DA425A60E34FA33D868A4CC8BECF471 /* CPTColor.m */; }; + D81CFD085CB8F91424F0B52C3A3755D8 /* CPTMutableTextStyle.h in Headers */ = {isa = PBXBuildFile; fileRef = 9B8A2EF738FB5E1110EB0EA03C9D5F4F /* CPTMutableTextStyle.h */; settings = {ATTRIBUTES = (Public, ); }; }; + D86A43A2266792EC27B263648E46FEEE /* CPTMutableNumericData+TypeConversion.h in Headers */ = {isa = PBXBuildFile; fileRef = F4F68A3FB6DD63A67E9A685AC9025833 /* CPTMutableNumericData+TypeConversion.h */; settings = {ATTRIBUTES = (Public, ); }; }; + DC579F1400992D42788BC536BECA664C /* CPTTimeFormatter.h in Headers */ = {isa = PBXBuildFile; fileRef = D6F5AEFD88FCBE59799E37F6995BBE39 /* CPTTimeFormatter.h */; settings = {ATTRIBUTES = (Public, ); }; }; + DDB90981077D0C569ADA96270B745486 /* _CPTAnimationNSDecimalPeriod.m in Sources */ = {isa = PBXBuildFile; fileRef = C68B5974DBCBFCF459FBA120D0FF597B /* _CPTAnimationNSDecimalPeriod.m */; }; + DF413A418950C3920EA6B431FE407085 /* CPTConstraints.h in Headers */ = {isa = PBXBuildFile; fileRef = 7E0D696E85ED5F15D5C6E572D7C55C60 /* CPTConstraints.h */; settings = {ATTRIBUTES = (Public, ); }; }; + DF5CB8E3F1B025373A2A5973AC10A69A /* CPTAnimationOperation.h in Headers */ = {isa = PBXBuildFile; fileRef = 1DB18B188108C05CBE0B4F8D8C759B31 /* CPTAnimationOperation.h */; settings = {ATTRIBUTES = (Public, ); }; }; + E1D94320D29E86406B274B59D6550618 /* CPTLayer.h in Headers */ = {isa = PBXBuildFile; fileRef = 877884A05EBF6302B9E23715672CF993 /* CPTLayer.h */; settings = {ATTRIBUTES = (Public, ); }; }; + E1EBA7F91766B62ED9D40D1FD5ADCB7D /* _CPTFillImage.m in Sources */ = {isa = PBXBuildFile; fileRef = EEF2B4803AC8391D9B9CD9B05DFC97E0 /* _CPTFillImage.m */; }; + E3068BD706632027B687B327305B465B /* CPTPlotRange.m in Sources */ = {isa = PBXBuildFile; fileRef = 64E656F55BB490E97D244FB857F10969 /* CPTPlotRange.m */; }; + E39E9541851501BCA537291D0F0272E3 /* CPTPlotGroup.m in Sources */ = {isa = PBXBuildFile; fileRef = 58C9CBD952069749711F9F8FBC12314E /* CPTPlotGroup.m */; }; + E42D7AB474C79DEF0BA6E3210E6654FE /* CPTPlotArea.h in Headers */ = {isa = PBXBuildFile; fileRef = FE481195BBEC966BD4EDBA79A874DB24 /* CPTPlotArea.h */; settings = {ATTRIBUTES = (Public, ); }; }; + E433832F9E175B10C95F2E8C4416089F /* _CPTAnimationCGSizePeriod.m in Sources */ = {isa = PBXBuildFile; fileRef = 9D2891B32A74354DF4544BEA81B52BCB /* _CPTAnimationCGSizePeriod.m */; }; + E4E4A5A3C98239A8F13747D7F0AE8F31 /* CPTNumericData.h in Headers */ = {isa = PBXBuildFile; fileRef = E6B05DD37B5E93637E5D6B32496A9F12 /* CPTNumericData.h */; settings = {ATTRIBUTES = (Public, ); }; }; + E66CDDFF67F6C97078571128869786B5 /* DFUStreamHex.swift in Sources */ = {isa = PBXBuildFile; fileRef = 79AE50316FB672C09AFA8B1222881A09 /* DFUStreamHex.swift */; }; + E70C39F72AF0A9D3DA99364B6D7683E3 /* CPTGridLines.m in Sources */ = {isa = PBXBuildFile; fileRef = E0DAD2C3E2CBE3351F43C17B38686910 /* CPTGridLines.m */; }; + E7CC6960DC151BDBEEFCBAD666873FB0 /* _CPTPlainWhiteTheme.m in Sources */ = {isa = PBXBuildFile; fileRef = 6177402B44EB3A8C0A6554016F655334 /* _CPTPlainWhiteTheme.m */; }; + ED8C23B0D24BB7921A4693FC4972948B /* CPTPlatformSpecificDefines.h in Headers */ = {isa = PBXBuildFile; fileRef = 242DD0BFA2CF395417BC8847FF562EA4 /* CPTPlatformSpecificDefines.h */; settings = {ATTRIBUTES = (Public, ); }; }; + EFE16FBC017DE6FFEEBBE9A417A7D85E /* _CPTSlateTheme.m in Sources */ = {isa = PBXBuildFile; fileRef = 4C710F11EC297E716483C666611FD3C2 /* _CPTSlateTheme.m */; }; + F026D53055DC2433447C8745EDA06732 /* DFUStream.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4F8729FDE3EA19A0692D4ECC01E2FEB2 /* DFUStream.swift */; }; + F03D6EC4045EDFF73F75C7A3F0FA7372 /* CPTLayerAnnotation.m in Sources */ = {isa = PBXBuildFile; fileRef = 3DDE53388B782F7BC87B8C0F604131F8 /* CPTLayerAnnotation.m */; }; + F102FE0A7328F0F5F40EE4A0E29F34EA /* CPTCalendarFormatter.h in Headers */ = {isa = PBXBuildFile; fileRef = D44D43948715E9265E61E2E03D006AD0 /* CPTCalendarFormatter.h */; settings = {ATTRIBUTES = (Public, ); }; }; + F32537C7E6DAD42486DA151A9A13B4B8 /* CPTTextLayer.m in Sources */ = {isa = PBXBuildFile; fileRef = 9988C9C1A337583A1CD0E58C5784AFD5 /* CPTTextLayer.m */; }; + F5B61961F1543D751ABE9EDA4944A17A /* _CPTPlainBlackTheme.h in Headers */ = {isa = PBXBuildFile; fileRef = 92A2207EDE796C4E708ED178D9403C3A /* _CPTPlainBlackTheme.h */; settings = {ATTRIBUTES = (Private, ); }; }; + F6573C4E75C7FAA201F9A028ED043315 /* _CPTConstraintsFixed.m in Sources */ = {isa = PBXBuildFile; fileRef = D5E70C5AB487F5FE3F9AD8FFEBB8FD06 /* _CPTConstraintsFixed.m */; }; + F6820123F1553C59E0041CA6A830D273 /* CPTPlot.h in Headers */ = {isa = PBXBuildFile; fileRef = 326853B7B27FD0E72A73F9719CD341F0 /* CPTPlot.h */; settings = {ATTRIBUTES = (Public, ); }; }; + F7CDDE6F1E96160DE6A251709C5BE392 /* CPTPlatformSpecificFunctions.h in Headers */ = {isa = PBXBuildFile; fileRef = 4A81E2B17BD20659F0EE4EF986EEFA0B /* CPTPlatformSpecificFunctions.h */; settings = {ATTRIBUTES = (Public, ); }; }; + F850EE84BCC33657847FEFD4FF2F1DE7 /* CPTTheme.h in Headers */ = {isa = PBXBuildFile; fileRef = 25A7000CA642BC63F952A86FE44A374D /* CPTTheme.h */; settings = {ATTRIBUTES = (Public, ); }; }; + F920FCA4C34C03A38F2CE7534730754B /* CPTLimitBand.m in Sources */ = {isa = PBXBuildFile; fileRef = C959756EBAA628D62D1DCA6FF2024331 /* CPTLimitBand.m */; }; + FA605DE18AEDB7FC22BCAD9625130D67 /* SecureDFUExecutor.swift in Sources */ = {isa = PBXBuildFile; fileRef = 05A2272C079071703F09729BA6DB6481 /* SecureDFUExecutor.swift */; }; + FA8F07C174EEB99CA2F030F249AE3451 /* CPTShadow.h in Headers */ = {isa = PBXBuildFile; fileRef = 50D0FE15925554288BACA60FCD62FE62 /* CPTShadow.h */; settings = {ATTRIBUTES = (Public, ); }; }; + FB9BEDB9930E9E45767A40121C90A600 /* CPTCalendarFormatter.m in Sources */ = {isa = PBXBuildFile; fileRef = ED34E3D475C4D6F24FF2EE51A87DC858 /* CPTCalendarFormatter.m */; }; + FBFF886995AA8DA2CE10F5E67EEDC2C5 /* CPTXYAxisSet.h in Headers */ = {isa = PBXBuildFile; fileRef = 1FD05B2D2030D91E267C7027C1F275DA /* CPTXYAxisSet.h */; settings = {ATTRIBUTES = (Public, ); }; }; /* End PBXBuildFile section */ /* Begin PBXContainerItemProxy section */ - 0A5C823111C5639414A6C8B843461099 /* PBXContainerItemProxy */ = { + 03D4D34ECE300C08AF63A9401BAB59A3 /* PBXContainerItemProxy */ = { isa = PBXContainerItemProxy; - containerPortal = D41D8CD98F00B204E9800998ECF8427E /* Project object */; + containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */; proxyType = 1; - remoteGlobalIDString = 570B1EFB2D11F5B06166FDA2A614F81C; - remoteInfo = iOSDFULibrary; + remoteGlobalIDString = A54C3C20DA76528607950189DA743CA4; + remoteInfo = SWRevealViewController; }; - 0BF48EE9AE5A4F2E7CCF63859D23C491 /* PBXContainerItemProxy */ = { + 16AC8908923F73D489C895B57C3D1D2D /* PBXContainerItemProxy */ = { isa = PBXContainerItemProxy; - containerPortal = D41D8CD98F00B204E9800998ECF8427E /* Project object */; + containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */; proxyType = 1; - remoteGlobalIDString = 6DE24706FE9CF4E6C5DB4508F180A481; - remoteInfo = Zip; + remoteGlobalIDString = 9506C7FCDAE6E6967A99655F452EEE93; + remoteInfo = iOSDFULibrary; }; - 42454B63AB128DAA58602ADAC23B8C2E /* PBXContainerItemProxy */ = { + 3EBFEEDE9D4D066E08555C96AF9FD89C /* PBXContainerItemProxy */ = { isa = PBXContainerItemProxy; - containerPortal = D41D8CD98F00B204E9800998ECF8427E /* Project object */; + containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */; proxyType = 1; - remoteGlobalIDString = B398238A0BBBCD10E4DB4C8A7062A3C5; - remoteInfo = EVReflection; + remoteGlobalIDString = 31708EE6929C61C0EDA6F5DAE3AF9DB7; + remoteInfo = Zip; }; - 606433B86D100C967C252B19C98DCC7D /* PBXContainerItemProxy */ = { + D198E59F320C315B11271E57BD6E2F3C /* PBXContainerItemProxy */ = { isa = PBXContainerItemProxy; - containerPortal = D41D8CD98F00B204E9800998ECF8427E /* Project object */; + containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */; proxyType = 1; - remoteGlobalIDString = DE8C7C227ACE26864DC8DA02CCA66BAA; + remoteGlobalIDString = 03DD7CB0D843ACA94CB5F68975736BB9; remoteInfo = CorePlot; }; - 9BCA78E35D82DF23E9D2AE41A4CBE38C /* PBXContainerItemProxy */ = { + E92E01C9BEF1B4A13910A84D7BDFC758 /* PBXContainerItemProxy */ = { isa = PBXContainerItemProxy; - containerPortal = D41D8CD98F00B204E9800998ECF8427E /* Project object */; + containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */; proxyType = 1; - remoteGlobalIDString = D943AA02BD98F9D616595F4B475BAF22; - remoteInfo = SWRevealViewController; + remoteGlobalIDString = 31708EE6929C61C0EDA6F5DAE3AF9DB7; + remoteInfo = Zip; }; - F090DFC5DE05C05BCF027F5A7E1C58F6 /* PBXContainerItemProxy */ = { + FF8EFB9895F689ECC5B915B6F007BA9A /* PBXContainerItemProxy */ = { isa = PBXContainerItemProxy; - containerPortal = D41D8CD98F00B204E9800998ECF8427E /* Project object */; + containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */; proxyType = 1; - remoteGlobalIDString = 6DE24706FE9CF4E6C5DB4508F180A481; - remoteInfo = Zip; + remoteGlobalIDString = 28689B9EA4494CFEC2E8F991ABC3E674; + remoteInfo = EVReflection; }; /* End PBXContainerItemProxy section */ /* Begin PBXFileReference section */ - 0073BA9B7252CB51EB80FB7C0B8BA859 /* CPTMutableLineStyle.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = CPTMutableLineStyle.h; path = framework/Source/CPTMutableLineStyle.h; sourceTree = ""; }; - 009F8CD98E1408A9D7CCC0C0F0A29035 /* CPTFill.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = CPTFill.h; path = framework/Source/CPTFill.h; sourceTree = ""; }; - 013D218FD00073689A675491D15C017D /* CPTPlatformSpecificDefines.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = CPTPlatformSpecificDefines.m; path = framework/iPhoneOnly/CPTPlatformSpecificDefines.m; sourceTree = ""; }; - 01AF2F060803ADC09F70F61EB27EDFC8 /* CPTScatterPlot.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = CPTScatterPlot.m; path = framework/Source/CPTScatterPlot.m; sourceTree = ""; }; - 01BC86489992FBB6441003ED71B6B771 /* EVReflectable.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = EVReflectable.swift; path = Source/EVReflectable.swift; sourceTree = ""; }; - 026B81CD6A4AD1558168413E6812D700 /* CPTGraph.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = CPTGraph.m; path = framework/Source/CPTGraph.m; sourceTree = ""; }; - 03B6B663F1F1DB32C5B43361965CEFDA /* CPTTradingRangePlot.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = CPTTradingRangePlot.h; path = framework/Source/CPTTradingRangePlot.h; sourceTree = ""; }; - 0466F9A1C548F6DE3326942F91E277FF /* iOSDFULibrary.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = iOSDFULibrary.xcconfig; sourceTree = ""; }; - 046A007129539D3C0E942C13805A7362 /* _CPTStocksTheme.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = _CPTStocksTheme.h; path = framework/Source/_CPTStocksTheme.h; sourceTree = ""; }; - 04CA43EC6B2FEB1D1482002AF5201B9A /* SecureDFUServiceInitiator.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = SecureDFUServiceInitiator.swift; path = iOSDFULibrary/Classes/Implementation/SecureDFU/DFU/SecureDFUServiceInitiator.swift; sourceTree = ""; }; - 07457F3B644DD80C3D71E156F2B4158C /* SecureDFUControlPoint.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = SecureDFUControlPoint.swift; path = iOSDFULibrary/Classes/Implementation/SecureDFU/Characteristics/SecureDFUControlPoint.swift; sourceTree = ""; }; - 07A4234A64C85B954CBD17C266D1FB41 /* CPTLegend.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = CPTLegend.m; path = framework/Source/CPTLegend.m; sourceTree = ""; }; - 08675DF9CA153DFFA942AE1FDA6B7815 /* CPTTextStyle.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = CPTTextStyle.h; path = framework/Source/CPTTextStyle.h; sourceTree = ""; }; - 0932D6DE45C05F21ABEC073A1C7B9208 /* SecureDFUPeripheral.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = SecureDFUPeripheral.swift; path = iOSDFULibrary/Classes/Implementation/SecureDFU/Peripheral/SecureDFUPeripheral.swift; sourceTree = ""; }; - 0A982EEB5C148D5A0B6C49E6DA47B952 /* CPTExceptions.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = CPTExceptions.m; path = framework/Source/CPTExceptions.m; sourceTree = ""; }; - 0ADC6ACA4282A7D4F0EE73E3397C9A9E /* CPTFunctionDataSource.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = CPTFunctionDataSource.m; path = framework/Source/CPTFunctionDataSource.m; sourceTree = ""; }; - 0BD17E786A686D10D6F77BC33A8E60D4 /* CPTPlatformSpecificFunctions.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = CPTPlatformSpecificFunctions.m; path = framework/iPhoneOnly/CPTPlatformSpecificFunctions.m; sourceTree = ""; }; - 0BF7BD7CDB130A2246433673E8C1F4F8 /* DFUServiceSelector.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = DFUServiceSelector.swift; path = iOSDFULibrary/Classes/Implementation/DFUSelector/DFUServiceSelector.swift; sourceTree = ""; }; - 0C78A76EDC86C7A670A232B484A0B72E /* CPTAnnotation.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = CPTAnnotation.m; path = framework/Source/CPTAnnotation.m; sourceTree = ""; }; - 0EB43324C06E2A6A23CB25B92D7F8222 /* _CPTAnimationNSNumberPeriod.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = _CPTAnimationNSNumberPeriod.m; path = framework/Source/_CPTAnimationNSNumberPeriod.m; sourceTree = ""; }; - 0FC9ED5FE4E70CFBCE69B61F55F8F400 /* CPTImagePlatformSpecific.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = CPTImagePlatformSpecific.m; path = framework/iPhoneOnly/CPTImagePlatformSpecific.m; sourceTree = ""; }; - 12D492EB3D08ABF0C6940567F1A2E785 /* ZipArchive.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ZipArchive.swift; path = iOSDFULibrary/Classes/Utilities/ZipArchive.swift; sourceTree = ""; }; - 12D6B974C8AA758142A00E9CDFDA8C97 /* ManifestFirmwareInfo.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ManifestFirmwareInfo.swift; path = iOSDFULibrary/Classes/Utilities/DFUPackage/Manifest/ManifestFirmwareInfo.swift; sourceTree = ""; }; - 133B6BF9D93181D869B20078BFE76B92 /* CPTTheme.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = CPTTheme.h; path = framework/Source/CPTTheme.h; sourceTree = ""; }; - 134821EA08ECD398E4C520620A0E5718 /* _CPTAnimationPlotRangePeriod.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = _CPTAnimationPlotRangePeriod.m; path = framework/Source/_CPTAnimationPlotRangePeriod.m; sourceTree = ""; }; - 158D5182D02F27B3DA8EAD5DEA60D891 /* _CPTFillGradient.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = _CPTFillGradient.m; path = framework/Source/_CPTFillGradient.m; sourceTree = ""; }; - 1635D42003AE224BD21E4D0B64E8F250 /* unzip.c */ = {isa = PBXFileReference; includeInIndex = 1; name = unzip.c; path = Zip/minizip/unzip.c; sourceTree = ""; }; - 167B1F654016A5E22BC2E6BE25B5A82F /* CPTCalendarFormatter.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = CPTCalendarFormatter.m; path = framework/Source/CPTCalendarFormatter.m; sourceTree = ""; }; - 191B8CD44DF3BA12293D1A20A556FC66 /* _CPTFillColor.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = _CPTFillColor.m; path = framework/Source/_CPTFillColor.m; sourceTree = ""; }; - 1968A84ACAFB763895C780C8B0D36E4D /* _CPTPlainBlackTheme.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = _CPTPlainBlackTheme.h; path = framework/Source/_CPTPlainBlackTheme.h; sourceTree = ""; }; - 1B002F085ACC87BC6C39E4F132821927 /* Zip.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = Zip.xcconfig; sourceTree = ""; }; - 1B03626C528CD75567DA8EB9EC015F74 /* _CPTAnimationNSDecimalPeriod.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = _CPTAnimationNSDecimalPeriod.m; path = framework/Source/_CPTAnimationNSDecimalPeriod.m; sourceTree = ""; }; - 1B0C80CE53494F1FE8EAD9E6E0620E3A /* DFUPacket.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = DFUPacket.swift; path = iOSDFULibrary/Classes/Implementation/LegacyDFU/Characteristics/DFUPacket.swift; sourceTree = ""; }; - 1B77E643E14C3F3599646DABFE5D7475 /* _CPTFillImage.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = _CPTFillImage.m; path = framework/Source/_CPTFillImage.m; sourceTree = ""; }; - 1BA8FE6AB6A93B1C1FF88590553F6CD9 /* SWRevealViewController-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "SWRevealViewController-umbrella.h"; sourceTree = ""; }; - 1C2A52058F8DCB581C4FECF3A39D1946 /* EVDictionaryExtension.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = EVDictionaryExtension.swift; path = Source/EVDictionaryExtension.swift; sourceTree = ""; }; - 1C4DA802096579B106A13D3DA73CFD8C /* CPTPlotGroup.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = CPTPlotGroup.h; path = framework/Source/CPTPlotGroup.h; sourceTree = ""; }; - 1C5BEB7219AD560F69525EDF91DBC92F /* CPTPlotArea.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = CPTPlotArea.h; path = framework/Source/CPTPlotArea.h; sourceTree = ""; }; - 1C7173EF5B29ED2454B93B6D9B4C3A51 /* CPTMutableShadow.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = CPTMutableShadow.h; path = framework/Source/CPTMutableShadow.h; sourceTree = ""; }; - 1D056A03A06587D7AED33518211EDD0A /* _CPTAnimationCGRectPeriod.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = _CPTAnimationCGRectPeriod.m; path = framework/Source/_CPTAnimationCGRectPeriod.m; sourceTree = ""; }; - 1E94FF13B0AE76737065F1169443E025 /* CPTDebugQuickLook.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = CPTDebugQuickLook.h; path = framework/Source/CPTDebugQuickLook.h; sourceTree = ""; }; - 20515F1D751771CB9920480BAFC8D65B /* NSNumberExtensions.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = NSNumberExtensions.h; path = framework/Source/NSNumberExtensions.h; sourceTree = ""; }; - 20BF680002EFACC0138C71FB0D286AFD /* Zip-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "Zip-dummy.m"; sourceTree = ""; }; - 2207DEE7768FE13A9B98D5513E8DDB5F /* CorePlot.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = CorePlot.xcconfig; sourceTree = ""; }; - 2353E2527AC3A8A028AFF3E85EF5D436 /* ZipUtilities.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ZipUtilities.swift; path = Zip/ZipUtilities.swift; sourceTree = ""; }; - 23BF389BE0B2A0B0A1E567267B64F034 /* SecureDFUPeripheralDelegate.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = SecureDFUPeripheralDelegate.swift; path = iOSDFULibrary/Classes/Implementation/SecureDFU/Peripheral/SecureDFUPeripheralDelegate.swift; sourceTree = ""; }; - 24505FB34F9B2D89AAC94CDF1314F861 /* CPTGridLines.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = CPTGridLines.h; path = framework/Source/CPTGridLines.h; sourceTree = ""; }; - 24EF4F12879E2F0B9F11490E07461971 /* CPTMutableNumericData.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = CPTMutableNumericData.h; path = framework/Source/CPTMutableNumericData.h; sourceTree = ""; }; - 26B3089E020187D0B99B2ED96AA65F93 /* CPTNumericData+TypeConversion.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "CPTNumericData+TypeConversion.m"; path = "framework/Source/CPTNumericData+TypeConversion.m"; sourceTree = ""; }; - 27134F4B90C01332E0482CEEF626D4B1 /* CPTGridLines.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = CPTGridLines.m; path = framework/Source/CPTGridLines.m; sourceTree = ""; }; - 28EC7AE16D287AB78C5F2FFD791DB349 /* CPTPlotSpaceAnnotation.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = CPTPlotSpaceAnnotation.h; path = framework/Source/CPTPlotSpaceAnnotation.h; sourceTree = ""; }; - 2991527B2847C6DA989FD52D2D135126 /* CPTLegendEntry.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = CPTLegendEntry.m; path = framework/Source/CPTLegendEntry.m; sourceTree = ""; }; - 299610450FFABB05309D0DA74FEEEA9A /* CPTLegendEntry.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = CPTLegendEntry.h; path = framework/Source/CPTLegendEntry.h; sourceTree = ""; }; - 29AB9A06AA1BA46EEDBF62126D12FE75 /* CPTLimitBand.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = CPTLimitBand.h; path = framework/Source/CPTLimitBand.h; sourceTree = ""; }; - 2B0A5CCB5A334BDEDF3DFD3814692E44 /* crc32.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = crc32.swift; path = iOSDFULibrary/Classes/Utilities/crc32.swift; sourceTree = ""; }; - 2B7FFDED52F644E297708EE3D34B9135 /* EVReflection.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; path = EVReflection.modulemap; sourceTree = ""; }; - 2CE1C41EEDE3CD9F931B8B857DB83CD4 /* _CPTMaskLayer.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = _CPTMaskLayer.m; path = framework/Source/_CPTMaskLayer.m; sourceTree = ""; }; - 2E1E890C8A8BD54582AE5D3759AF0305 /* DFUServiceInitiator.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = DFUServiceInitiator.swift; path = iOSDFULibrary/Classes/Implementation/DFUServiceInitiator.swift; sourceTree = ""; }; - 2F7D1D00A11BC1E3A77E949B7FA1E1BB /* CPTMutableNumericData.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = CPTMutableNumericData.m; path = framework/Source/CPTMutableNumericData.m; sourceTree = ""; }; - 301F910B14FA579E297EB29FB017AFD0 /* CPTFunctionDataSource.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = CPTFunctionDataSource.h; path = framework/Source/CPTFunctionDataSource.h; sourceTree = ""; }; - 30F10185922847057963CBF50CD0FEDC /* CPTAxisSet.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = CPTAxisSet.m; path = framework/Source/CPTAxisSet.m; sourceTree = ""; }; - 316DA0542B38D62820052EF815DB9776 /* SWRevealViewController.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = SWRevealViewController.xcconfig; sourceTree = ""; }; - 31EBA5A262544BDA95070118D0C1BC97 /* Data.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Data.swift; path = iOSDFULibrary/Classes/Utilities/Data.swift; sourceTree = ""; }; - 3208A78E0A63D6E6FC26580C5ADC1B4E /* _CPTAnimationTimingFunctions.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = _CPTAnimationTimingFunctions.m; path = framework/Source/_CPTAnimationTimingFunctions.m; sourceTree = ""; }; - 3230D2AFCDE263F03FA2E5E35D0142A3 /* _CPTConstraintsRelative.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = _CPTConstraintsRelative.m; path = framework/Source/_CPTConstraintsRelative.m; sourceTree = ""; }; - 324A91CFDAFA5FA1566A65357C22F82A /* _CPTDarkGradientTheme.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = _CPTDarkGradientTheme.h; path = framework/Source/_CPTDarkGradientTheme.h; sourceTree = ""; }; - 32ACD4FBFF5E45142BC3DAD41BF5E1EA /* CorePlot.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = CorePlot.h; path = framework/CocoaPods/CorePlot.h; sourceTree = ""; }; - 32B65E72CC25A359844CBC128F4A9CB4 /* SoftdeviceBootloaderInfo.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = SoftdeviceBootloaderInfo.swift; path = iOSDFULibrary/Classes/Utilities/DFUPackage/Manifest/SoftdeviceBootloaderInfo.swift; sourceTree = ""; }; - 3396093B67A8067568A38ED3A69D8A3B /* Zip.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Zip.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - 344FC92E43FF06C5839AC7726C259739 /* CPTXYAxisSet.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = CPTXYAxisSet.h; path = framework/Source/CPTXYAxisSet.h; sourceTree = ""; }; - 34C7BE4D2239B2C90F9D7C620EE7CB7F /* DFUStream.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = DFUStream.swift; path = iOSDFULibrary/Classes/Utilities/Streams/DFUStream.swift; sourceTree = ""; }; - 3568E5E2F446DF770E9BA325DE518890 /* CPTPlotSymbol.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = CPTPlotSymbol.h; path = framework/Source/CPTPlotSymbol.h; sourceTree = ""; }; - 3599A78B7F7E04362BB0B287350A4859 /* iOSDFULibrary.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; path = iOSDFULibrary.modulemap; sourceTree = ""; }; - 35DEFD7F82CC1A931B60E3DF2149088B /* CorePlot.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; path = CorePlot.modulemap; sourceTree = ""; }; - 360F45BE31F12CB1180332E11114CD98 /* Zip-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "Zip-umbrella.h"; sourceTree = ""; }; - 36F1900A97D00FB577FB46C2E60F64B3 /* CPTPieChart.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = CPTPieChart.h; path = framework/Source/CPTPieChart.h; sourceTree = ""; }; - 3930BE842D20D5E502F96E11F3836317 /* Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; - 39D0C58377DFC4327CF0F90AE00B49F2 /* CPTGraphHostingView.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = CPTGraphHostingView.m; path = framework/iPhoneOnly/CPTGraphHostingView.m; sourceTree = ""; }; - 3B485E217FCABA585452286932ECA38F /* EVReflection-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "EVReflection-prefix.pch"; sourceTree = ""; }; - 3B91641EC7838910C70E38295CBF46C1 /* CPTTextStylePlatformSpecific.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = CPTTextStylePlatformSpecific.m; path = framework/iPhoneOnly/CPTTextStylePlatformSpecific.m; sourceTree = ""; }; - 3C0DB48741998F2B90846E2CC8776C8E /* CPTXYPlotSpace.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = CPTXYPlotSpace.m; path = framework/Source/CPTXYPlotSpace.m; sourceTree = ""; }; - 3C2442935EDC2E4828743FDB625FEE07 /* Pods-nRF Toolbox-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "Pods-nRF Toolbox-umbrella.h"; sourceTree = ""; }; - 3CF4AE8364749E629F50D5745BAAEE46 /* _CPTBorderLayer.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = _CPTBorderLayer.m; path = framework/Source/_CPTBorderLayer.m; sourceTree = ""; }; - 3D3B6255A67086BA1AA4874F91077236 /* DFUStreamHex.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = DFUStreamHex.swift; path = iOSDFULibrary/Classes/Utilities/Streams/DFUStreamHex.swift; sourceTree = ""; }; - 3E46F45F93400A0362D0BF4637EC7BDA /* DFUServiceController.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = DFUServiceController.swift; path = iOSDFULibrary/Classes/Implementation/DFUServiceController.swift; sourceTree = ""; }; - 3EC5E11DCF82A98DC43B28C1EC9A324D /* LoggerHelper.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = LoggerHelper.swift; path = iOSDFULibrary/Classes/Utilities/Logging/LoggerHelper.swift; sourceTree = ""; }; - 3EED4DB70B2DBAE5C247411689BDCFD7 /* QuickZip.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = QuickZip.swift; path = Zip/QuickZip.swift; sourceTree = ""; }; - 439DE3285762737F9BB6D4625B17C525 /* _CPTMaskLayer.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = _CPTMaskLayer.h; path = framework/Source/_CPTMaskLayer.h; sourceTree = ""; }; - 442EE2E01E447EB20081B69CE759D696 /* Zip.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; path = Zip.modulemap; sourceTree = ""; }; - 45B4CAE0884A395D8A36378BFCF186A3 /* SWRevealViewController.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; name = SWRevealViewController.framework; path = SWRevealViewController.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - 468861A3B02C94B3E9430BAF467A84D0 /* CPTPlotAreaFrame.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = CPTPlotAreaFrame.m; path = framework/Source/CPTPlotAreaFrame.m; sourceTree = ""; }; - 46B34D7456F87B7D20266303AC51C52A /* CPTXYAxisSet.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = CPTXYAxisSet.m; path = framework/Source/CPTXYAxisSet.m; sourceTree = ""; }; - 47BDB648371F10E45F2A802FE9B97F19 /* ioapi.c */ = {isa = PBXFileReference; includeInIndex = 1; name = ioapi.c; path = Zip/minizip/ioapi.c; sourceTree = ""; }; - 4835C193A487AE379DAF909329A57874 /* _CPTConstraintsFixed.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = _CPTConstraintsFixed.h; path = framework/Source/_CPTConstraintsFixed.h; sourceTree = ""; }; - 48F4C8068CDEEB4CE29FAF128C2DB83F /* zip.c */ = {isa = PBXFileReference; includeInIndex = 1; name = zip.c; path = Zip/minizip/zip.c; sourceTree = ""; }; - 4A43D7C0AEE6456E658832BCE6E9BD34 /* DFUController.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = DFUController.swift; path = iOSDFULibrary/Classes/Implementation/GenericDFU/DFUController.swift; sourceTree = ""; }; - 4BEBCF684F398645C023CCCC9CD59933 /* CPTConstraints.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = CPTConstraints.m; path = framework/Source/CPTConstraints.m; sourceTree = ""; }; - 4BF6BE214C994E44BB0BFE382D3A50C1 /* CPTMutableTextStyle.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = CPTMutableTextStyle.m; path = framework/Source/CPTMutableTextStyle.m; sourceTree = ""; }; - 4C015E2662187942B9FDE8B202CFEC76 /* ConversionOptions.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ConversionOptions.swift; path = Source/ConversionOptions.swift; sourceTree = ""; }; - 4C737DDB6DF28A27AF578547B6ECEF40 /* 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; }; - 4CC51DA8721D7AC99F6FA256274930D3 /* _CPTAnimationCGPointPeriod.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = _CPTAnimationCGPointPeriod.m; path = framework/Source/_CPTAnimationCGPointPeriod.m; sourceTree = ""; }; - 4D5FFAF332BC6A1C5EAB87A9ADA82A27 /* CPTLayer.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = CPTLayer.m; path = framework/Source/CPTLayer.m; sourceTree = ""; }; - 4DDF3B5D3E7E2E37EB37428465F5FB19 /* CPTPlotAreaFrame.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = CPTPlotAreaFrame.h; path = framework/Source/CPTPlotAreaFrame.h; sourceTree = ""; }; - 4F6CAB01B281D6CD23364D8D7A87E927 /* 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; }; - 50A7C21D4FADD23803F6EBC3DCC72F3E /* DFUFirmware.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = DFUFirmware.swift; path = iOSDFULibrary/Classes/Implementation/Firmware/DFUFirmware.swift; sourceTree = ""; }; - 50BEC9E9F8CD649BC442D73E3551539A /* CPTPlotSpaceAnnotation.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = CPTPlotSpaceAnnotation.m; path = framework/Source/CPTPlotSpaceAnnotation.m; sourceTree = ""; }; - 521CDA06FF7B98E4D527F98E4B6D9EE1 /* PrintOptions.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = PrintOptions.swift; path = Source/PrintOptions.swift; sourceTree = ""; }; - 5239005796EC303AE07E1CAF99D47420 /* EVReflection-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "EVReflection-umbrella.h"; sourceTree = ""; }; - 52403B92288EE4903900E6AA3DDCA860 /* SWRevealViewController.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SWRevealViewController.m; path = SWRevealViewController/SWRevealViewController.m; sourceTree = ""; }; - 528F8C687D0A78D72DC799E3D56D8830 /* NSDecimalNumberExtensions.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = NSDecimalNumberExtensions.h; path = framework/Source/NSDecimalNumberExtensions.h; sourceTree = ""; }; - 52D61377318370922136D8AAE1247591 /* SWRevealViewController.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SWRevealViewController.h; path = SWRevealViewController/SWRevealViewController.h; sourceTree = ""; }; - 537D89DD249D932B53CA0B65489C60C6 /* _CPTFillImage.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = _CPTFillImage.h; path = framework/Source/_CPTFillImage.h; sourceTree = ""; }; - 543F7AF699868A1992CD72B591765B36 /* LegacyDFUService.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = LegacyDFUService.swift; path = iOSDFULibrary/Classes/Implementation/LegacyDFU/Services/LegacyDFUService.swift; sourceTree = ""; }; - 54B40BAB3380B9346493FE4537F9F5D3 /* _CPTAnimationTimingFunctions.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = _CPTAnimationTimingFunctions.h; path = framework/Source/_CPTAnimationTimingFunctions.h; sourceTree = ""; }; - 55965B8281A596C4FBE368E567E64D52 /* IntelHex2BinConverter.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = IntelHex2BinConverter.h; path = iOSDFULibrary/Classes/Utilities/HexToBinConverter/IntelHex2BinConverter.h; sourceTree = ""; }; - 566352D74D0B33C4B7C2102C61E2D91A /* CPTLayerAnnotation.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = CPTLayerAnnotation.h; path = framework/Source/CPTLayerAnnotation.h; sourceTree = ""; }; - 56A3F703F29B3999C71E5592FFD9823C /* CPTXYAxis.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = CPTXYAxis.h; path = framework/Source/CPTXYAxis.h; sourceTree = ""; }; - 57395B064B85046094FBF807B89E15A7 /* CPTRangePlot.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = CPTRangePlot.h; path = framework/Source/CPTRangePlot.h; sourceTree = ""; }; - 5886939726690B2227011D401D324D29 /* CPTTextLayer.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = CPTTextLayer.m; path = framework/Source/CPTTextLayer.m; sourceTree = ""; }; - 59E99D5583D9025E9C6794A7FD8830F3 /* CPTPlatformSpecificFunctions.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = CPTPlatformSpecificFunctions.h; path = framework/iPhoneOnly/CPTPlatformSpecificFunctions.h; sourceTree = ""; }; - 5A420F7FAAD53D261E13634D494C4187 /* CPTAnimationPeriod.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = CPTAnimationPeriod.h; path = framework/Source/CPTAnimationPeriod.h; sourceTree = ""; }; - 5BEB03FECD1CF574A563D8A047EEF228 /* CPTAnimation.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = CPTAnimation.h; path = framework/Source/CPTAnimation.h; sourceTree = ""; }; - 5C138D79543C93928E84EF5B3FFC9252 /* _CPTAnimationNSNumberPeriod.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = _CPTAnimationNSNumberPeriod.h; path = framework/Source/_CPTAnimationNSNumberPeriod.h; sourceTree = ""; }; - 5C9AFEB8F1DD3C4C59B2F3EDE3409A80 /* _CPTAnimationCGFloatPeriod.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = _CPTAnimationCGFloatPeriod.m; path = framework/Source/_CPTAnimationCGFloatPeriod.m; sourceTree = ""; }; - 5F7C59A47F63149E78A750C65AEA4AFC /* CPTAxisSet.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = CPTAxisSet.h; path = framework/Source/CPTAxisSet.h; sourceTree = ""; }; - 60D43F1938E7970FD122421B634A98D6 /* CPTExceptions.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = CPTExceptions.h; path = framework/Source/CPTExceptions.h; sourceTree = ""; }; - 615248D32FD5392DC5FB0FED4F7E3AC8 /* unzip.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = unzip.h; path = Zip/minizip/unzip.h; sourceTree = ""; }; - 62056B3A417A525023BC34AA1EDB739E /* _CPTAnimationNSDecimalPeriod.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = _CPTAnimationNSDecimalPeriod.h; path = framework/Source/_CPTAnimationNSDecimalPeriod.h; sourceTree = ""; }; - 62FFCDBEE30A4F10A84583F837B0FDD6 /* CPTXYPlotSpace.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = CPTXYPlotSpace.h; path = framework/Source/CPTXYPlotSpace.h; sourceTree = ""; }; - 634323543C3BA42F1CC0F35A6E75D807 /* CorePlot-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "CorePlot-dummy.m"; sourceTree = ""; }; - 64425A7A041B986D72DE284E1EFBCC87 /* CPTScatterPlot.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = CPTScatterPlot.h; path = framework/Source/CPTScatterPlot.h; sourceTree = ""; }; - 662DCD750457BC3F0BDF093E16B3BD6B /* Zip.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Zip.swift; path = Zip/Zip.swift; sourceTree = ""; }; - 67B9ECE11236A9CE79948CA5A51FC537 /* CorePlot.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; name = CorePlot.framework; path = CorePlot.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - 67F9F97C839E185F2E74E9BEBD92285A /* CPTUtilities.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = CPTUtilities.m; path = framework/Source/CPTUtilities.m; sourceTree = ""; }; - 68D9606866B3357F259AF598B91AE39B /* DFUStreamZip.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = DFUStreamZip.swift; path = iOSDFULibrary/Classes/Utilities/Streams/DFUStreamZip.swift; sourceTree = ""; }; - 68DFE7676A43008C737C89C06753683F /* CPTAxisLabel.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = CPTAxisLabel.h; path = framework/Source/CPTAxisLabel.h; sourceTree = ""; }; - 69E6A2FFA4F45805A36842D01D7DEAFD /* CPTMutableLineStyle.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = CPTMutableLineStyle.m; path = framework/Source/CPTMutableLineStyle.m; sourceTree = ""; }; - 6AB78EFAB690D0A34E4CB876A2675EDD /* Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; - 6B0DE1BB742860945476B2692CE95A6D /* LegacyDFUExecutor.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = LegacyDFUExecutor.swift; path = iOSDFULibrary/Classes/Implementation/LegacyDFU/DFU/LegacyDFUExecutor.swift; sourceTree = ""; }; - 6BE1005077A4C2A7A7032CF8800B6821 /* CPTDerivedXYGraph.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = CPTDerivedXYGraph.h; path = framework/Source/CPTDerivedXYGraph.h; sourceTree = ""; }; - 6C352A616572514420DD065118D7F040 /* CPTNumericDataType.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = CPTNumericDataType.h; path = framework/Source/CPTNumericDataType.h; sourceTree = ""; }; - 6D77DF5B37F334C02FCA115C63FDAB9E /* CPTXYGraph.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = CPTXYGraph.h; path = framework/Source/CPTXYGraph.h; sourceTree = ""; }; - 6FF94D60351640A16DFFAB43E73B2C9B /* CPTNumericData+TypeConversion.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "CPTNumericData+TypeConversion.h"; path = "framework/Source/CPTNumericData+TypeConversion.h"; sourceTree = ""; }; - 7024FA3D2C9A8D107F4AFD7D413899F9 /* Zip.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; name = Zip.framework; path = Zip.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - 71811E5F3323ADD6DA844410A8AB5E31 /* DFUStarterPeripheral.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = DFUStarterPeripheral.swift; path = iOSDFULibrary/Classes/Implementation/DFUSelector/DFUStarterPeripheral.swift; sourceTree = ""; }; - 72DC628F292631744633B0CCBC73410B /* Pods-nRF Toolbox-resources.sh */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.script.sh; path = "Pods-nRF Toolbox-resources.sh"; sourceTree = ""; }; - 73041012D4F3779950211788CB866E29 /* CPTDerivedXYGraph.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = CPTDerivedXYGraph.m; path = framework/Source/CPTDerivedXYGraph.m; sourceTree = ""; }; - 755E5323A00EF2ADD1DE7308DAFE938D /* CPTLineStyle.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = CPTLineStyle.m; path = framework/Source/CPTLineStyle.m; sourceTree = ""; }; - 76183017EED76361BB0D8C7D9BCFE7DA /* _CPTDarkGradientTheme.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = _CPTDarkGradientTheme.m; path = framework/Source/_CPTDarkGradientTheme.m; sourceTree = ""; }; - 794612BC264847CE4C66C1308A3F8D1C /* DFUPeripheralSelector.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = DFUPeripheralSelector.swift; path = iOSDFULibrary/Classes/Implementation/DFUPeripheralSelector.swift; sourceTree = ""; }; - 7A8EC5202AE16BEEB1F0E861B3FAE05B /* CPTTextStylePlatformSpecific.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = CPTTextStylePlatformSpecific.h; path = framework/iPhoneOnly/CPTTextStylePlatformSpecific.h; sourceTree = ""; }; - 7BD1311ACCBD361B3A01339147B0FBD2 /* DFUControlPoint.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = DFUControlPoint.swift; path = iOSDFULibrary/Classes/Implementation/LegacyDFU/Characteristics/DFUControlPoint.swift; sourceTree = ""; }; - 7C324811068A8D01670AF09BD60679DE /* Accelerate.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Accelerate.framework; path = Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS10.3.sdk/System/Library/Frameworks/Accelerate.framework; sourceTree = DEVELOPER_DIR; }; - 7D0E8E522DFBFC5A6AB0A16805C5C422 /* CPTMutableTextStyle.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = CPTMutableTextStyle.h; path = framework/Source/CPTMutableTextStyle.h; sourceTree = ""; }; - 7D4D50FD0F177E9ACAB24367CF96769F /* 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; }; - 7DDF771AB3E34B93C88D9DFEE3B12988 /* iOSDFULibrary-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "iOSDFULibrary-prefix.pch"; sourceTree = ""; }; - 7E27D763BB2BD9E68CB1E57AB91E0492 /* Double.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Double.swift; path = iOSDFULibrary/Classes/Utilities/Double.swift; sourceTree = ""; }; - 7F0C9CD3229FF46342B38BE7FCF1045D /* CPTPlatformSpecificCategories.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = CPTPlatformSpecificCategories.h; path = framework/iPhoneOnly/CPTPlatformSpecificCategories.h; sourceTree = ""; }; - 7FC0C8518590B6060C90761E79FF9D85 /* CPTLegend.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = CPTLegend.h; path = framework/Source/CPTLegend.h; sourceTree = ""; }; - 80EE680976B213E3CA8F7810DA44D63A /* DeserializationStatus.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = DeserializationStatus.swift; path = Source/DeserializationStatus.swift; sourceTree = ""; }; - 810A2B3B1EB9D7DB5E7F4C5B17B45EC4 /* CPTCalendarFormatter.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = CPTCalendarFormatter.h; path = framework/Source/CPTCalendarFormatter.h; sourceTree = ""; }; - 819698922C7C2A752D57572F79DBB8C1 /* CPTColor.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = CPTColor.m; path = framework/Source/CPTColor.m; sourceTree = ""; }; - 82C980DBBD612AA5607EFA2C31DA9A64 /* _CPTAnimationCGSizePeriod.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = _CPTAnimationCGSizePeriod.h; path = framework/Source/_CPTAnimationCGSizePeriod.h; sourceTree = ""; }; - 833EAF7D8B0B09077B01CBAE2D75F6CA /* DFUPeripheralSelectorDelegate.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = DFUPeripheralSelectorDelegate.swift; path = iOSDFULibrary/Classes/Implementation/DFUPeripheralSelectorDelegate.swift; sourceTree = ""; }; - 83C27E8B6F241542DABAA40D4B41BC97 /* CPTPathExtensions.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = CPTPathExtensions.h; path = framework/Source/CPTPathExtensions.h; sourceTree = ""; }; - 84AEE798AEB5A8F620D491AFE774DFF7 /* CPTAnnotationHostLayer.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = CPTAnnotationHostLayer.m; path = framework/Source/CPTAnnotationHostLayer.m; sourceTree = ""; }; - 84FB0930DD432F0995DEF5CCF7F49F94 /* Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; - 85009D06BCF661FAB2D39F56D2131B08 /* CPTGridLineGroup.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = CPTGridLineGroup.m; path = framework/Source/CPTGridLineGroup.m; sourceTree = ""; }; - 8512382333DB87BED0A96C67606DD6DC /* CPTLineCap.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = CPTLineCap.m; path = framework/Source/CPTLineCap.m; sourceTree = ""; }; - 8529C656DE921454DF79414EDCC6BF0A /* Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; - 858269C3ED89478E9F088886FFDE60C9 /* CPTLineCap.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = CPTLineCap.h; path = framework/Source/CPTLineCap.h; sourceTree = ""; }; - 85FBDAFA769C4B53C44778757F25B92D /* CPTBarPlot.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = CPTBarPlot.h; path = framework/Source/CPTBarPlot.h; sourceTree = ""; }; - 8613D14ECF79B034909C86F41ADABA63 /* CPTImage.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = CPTImage.h; path = framework/Source/CPTImage.h; sourceTree = ""; }; - 87A4E962D0EC23B6FAC911520FF8001B /* _CPTXYTheme.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = _CPTXYTheme.m; path = framework/Source/_CPTXYTheme.m; sourceTree = ""; }; - 87A9E993F7C0C5B80F7A2E6A7F45D82F /* NSDecimalNumberExtensions.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = NSDecimalNumberExtensions.m; path = framework/Source/NSDecimalNumberExtensions.m; sourceTree = ""; }; - 891390C078201C43D52957C48AF27A12 /* CPTLayerAnnotation.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = CPTLayerAnnotation.m; path = framework/Source/CPTLayerAnnotation.m; sourceTree = ""; }; - 8980B9945CF4D67CB0505F2B5143EF12 /* CPTShadow.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = CPTShadow.h; path = framework/Source/CPTShadow.h; sourceTree = ""; }; - 89A821B6BD987F5A00B33206EB76AAD3 /* NSCoderExtensions.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = NSCoderExtensions.m; path = framework/Source/NSCoderExtensions.m; sourceTree = ""; }; - 8A0FF68CEC90075AB4F6E29B3D430454 /* Pods-nRF Toolbox-frameworks.sh */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.script.sh; path = "Pods-nRF Toolbox-frameworks.sh"; sourceTree = ""; }; - 8A3A1CCA37D439EDAF1BC30E571E4F76 /* _CPTConstraintsFixed.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = _CPTConstraintsFixed.m; path = framework/Source/_CPTConstraintsFixed.m; sourceTree = ""; }; - 8B19F41A2D158C36EB41D1B3AAC93A14 /* CPTGraphHostingView.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = CPTGraphHostingView.h; path = framework/iPhoneOnly/CPTGraphHostingView.h; sourceTree = ""; }; - 8B9D82D2590E268D96566490ACD99C69 /* Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; - 8BAC326E7CC5020C527188B84539B37B /* CPTTextLayer.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = CPTTextLayer.h; path = framework/Source/CPTTextLayer.h; sourceTree = ""; }; - 8C98EF3C833BF256324D0D2BCA03A948 /* Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; - 8EFF0407E8565CBCA4887C1C309EA9F4 /* CPTPlatformSpecificDefines.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = CPTPlatformSpecificDefines.h; path = framework/iPhoneOnly/CPTPlatformSpecificDefines.h; sourceTree = ""; }; - 90A798878D7777F30F316A3C8FC0B6ED /* CPTColorSpace.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = CPTColorSpace.m; path = framework/Source/CPTColorSpace.m; sourceTree = ""; }; - 91CBA17940041FD85A94CF8DF911A05F /* CPTLineStyle.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = CPTLineStyle.h; path = framework/Source/CPTLineStyle.h; sourceTree = ""; }; - 92099ED9EE29660852A8240B48C30589 /* _CPTPlainWhiteTheme.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = _CPTPlainWhiteTheme.m; path = framework/Source/_CPTPlainWhiteTheme.m; sourceTree = ""; }; - 92F2529C7C784D919E1CF92A9C14C544 /* SWRevealViewController.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; path = SWRevealViewController.modulemap; sourceTree = ""; }; - 9361E4A9E4A64C40C29FEA9DE3E833B9 /* EVWorkaroundHelpers.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = EVWorkaroundHelpers.swift; path = Source/EVWorkaroundHelpers.swift; sourceTree = ""; }; - 93A4A3777CF96A4AAC1D13BA6DCCEA73 /* Podfile */ = {isa = PBXFileReference; explicitFileType = text.script.ruby; includeInIndex = 1; lastKnownFileType = text; name = Podfile; path = ../Podfile; sourceTree = SOURCE_ROOT; xcLanguageSpecificationIdentifier = xcode.lang.ruby; }; - 9430CA5F90B7AFA6DF34E41C54575761 /* CPTPlotArea.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = CPTPlotArea.m; path = framework/Source/CPTPlotArea.m; sourceTree = ""; }; - 95C9ACA3FDFBEF7EFE0244142A32C711 /* CPTBorderedLayer.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = CPTBorderedLayer.m; path = framework/Source/CPTBorderedLayer.m; sourceTree = ""; }; - 9630033842485AED7ABD36002940D6D9 /* CPTImage.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = CPTImage.m; path = framework/Source/CPTImage.m; sourceTree = ""; }; - 96B79BCFE06CCEE5E53CE01A082E5CAE /* iOSDFULibrary-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "iOSDFULibrary-dummy.m"; sourceTree = ""; }; - 98E3E676A1625063C10DED770DA46A13 /* Manifest.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Manifest.swift; path = iOSDFULibrary/Classes/Utilities/DFUPackage/Manifest/Manifest.swift; sourceTree = ""; }; - 99CB1AFB0AB2CABECCC26DA850C2CDBB /* _CPTAnimationPlotRangePeriod.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = _CPTAnimationPlotRangePeriod.h; path = framework/Source/_CPTAnimationPlotRangePeriod.h; sourceTree = ""; }; - 99E5626266220BDB504E204680C7840C /* CPTPlatformSpecificCategories.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = CPTPlatformSpecificCategories.m; path = framework/iPhoneOnly/CPTPlatformSpecificCategories.m; sourceTree = ""; }; - 9A73C32674EEC8BE110976F5DD278410 /* CPTTimeFormatter.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = CPTTimeFormatter.m; path = framework/Source/CPTTimeFormatter.m; sourceTree = ""; }; - 9AC2057DE5775E9940CC780C9FF4F4C2 /* CPTAxis.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = CPTAxis.m; path = framework/Source/CPTAxis.m; sourceTree = ""; }; - 9ACC1B14584721FBF56B8548367E73B6 /* CPTBorderedLayer.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = CPTBorderedLayer.h; path = framework/Source/CPTBorderedLayer.h; sourceTree = ""; }; - 9B8B25B5F8B8CA97BDF0E46D2E03453D /* crypt.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = crypt.h; path = Zip/minizip/crypt.h; sourceTree = ""; }; - 9EB8DD8CAAE195866543691172A6DB89 /* ioapi.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = ioapi.h; path = Zip/minizip/ioapi.h; sourceTree = ""; }; - A01080D291F34097DAA32C34FABA5385 /* CPTFill.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = CPTFill.m; path = framework/Source/CPTFill.m; sourceTree = ""; }; - A1AC59C10E2DDD3576148834B8D6F3B4 /* CPTXYAxis.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = CPTXYAxis.m; path = framework/Source/CPTXYAxis.m; sourceTree = ""; }; - A299E5B3FD078790EAF1B79DF37F79D6 /* DFUExecutor.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = DFUExecutor.swift; path = iOSDFULibrary/Classes/Implementation/GenericDFU/DFUExecutor.swift; sourceTree = ""; }; - A2C7F624F0A4A1CA56829B7578892D17 /* CPTAnnotation.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = CPTAnnotation.h; path = framework/Source/CPTAnnotation.h; sourceTree = ""; }; - A319E03C2C3271B79F52C5E607BE74D8 /* CorePlot-CocoaTouch.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "CorePlot-CocoaTouch.h"; path = "framework/CorePlot-CocoaTouch.h"; sourceTree = ""; }; - A341C33C07760EEA8EE008521161A3C8 /* CPTMutablePlotRange.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = CPTMutablePlotRange.m; path = framework/Source/CPTMutablePlotRange.m; sourceTree = ""; }; - A52F022D7206834BBD6B7DD9E330B853 /* CPTDefinitions.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = CPTDefinitions.h; path = framework/Source/CPTDefinitions.h; sourceTree = ""; }; - A57F64AA709509A7083E8EDA7F1642C2 /* SecureDFUService.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = SecureDFUService.swift; path = iOSDFULibrary/Classes/Implementation/SecureDFU/Services/SecureDFUService.swift; sourceTree = ""; }; - A695BEBC7E222F74AD60DE62192A7A99 /* DFUVersion.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = DFUVersion.swift; path = iOSDFULibrary/Classes/Implementation/LegacyDFU/Characteristics/DFUVersion.swift; sourceTree = ""; }; - A6A46AA32BD19E7372284789C028B883 /* CPTNumericData.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = CPTNumericData.m; path = framework/Source/CPTNumericData.m; sourceTree = ""; }; - A714B281738A9868404D268E5BFBC293 /* NSNumberExtensions.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = NSNumberExtensions.m; path = framework/Source/NSNumberExtensions.m; sourceTree = ""; }; - A7FC5ADAD340DA14DC0A365AEB2F1B53 /* CPTTextStyle.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = CPTTextStyle.m; path = framework/Source/CPTTextStyle.m; sourceTree = ""; }; - A8844E2127D15B1C50F470A4E8A13F41 /* Pods-nRF Toolbox.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; path = "Pods-nRF Toolbox.modulemap"; sourceTree = ""; }; - A905F36E7BFB07ABA93A9C00F978499B /* EVReflection.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = EVReflection.xcconfig; sourceTree = ""; }; - A97FFEA8C127E89BD474CF7F8735C7EF /* _CPTAnimationCGPointPeriod.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = _CPTAnimationCGPointPeriod.h; path = framework/Source/_CPTAnimationCGPointPeriod.h; sourceTree = ""; }; - A9947D16D9FF90A97D9029E1A4AC31F7 /* CPTMutablePlotRange.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = CPTMutablePlotRange.h; path = framework/Source/CPTMutablePlotRange.h; sourceTree = ""; }; - AB4605AA58DB1FAC4FF15B33CAE19B60 /* CPTPlotGroup.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = CPTPlotGroup.m; path = framework/Source/CPTPlotGroup.m; sourceTree = ""; }; - ABF789C7DA5F63F2B505B670256264BA /* DFUPeripheralDelegate.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = DFUPeripheralDelegate.swift; path = iOSDFULibrary/Classes/Implementation/GenericDFU/DFUPeripheralDelegate.swift; sourceTree = ""; }; - AE639F4E2ECF2A3326D103D4AAC82948 /* CPTAnimationOperation.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = CPTAnimationOperation.h; path = framework/Source/CPTAnimationOperation.h; sourceTree = ""; }; - AEBD9641CCA73ED1552D919D22EE617D /* CPTAxisLabelGroup.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = CPTAxisLabelGroup.m; path = framework/Source/CPTAxisLabelGroup.m; sourceTree = ""; }; - AF0231D51A73A3559556B76A1960EC33 /* _CPTAnimationCGSizePeriod.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = _CPTAnimationCGSizePeriod.m; path = framework/Source/_CPTAnimationCGSizePeriod.m; sourceTree = ""; }; - AFF8F0E9517C4F6A507FF0AC2E80F97D /* Pods-nRF Toolbox-acknowledgements.markdown */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text; path = "Pods-nRF Toolbox-acknowledgements.markdown"; sourceTree = ""; }; - B23AAA92E7268F534F467A2284ABE722 /* SecureDFUPacket.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = SecureDFUPacket.swift; path = iOSDFULibrary/Classes/Implementation/SecureDFU/Characteristics/SecureDFUPacket.swift; sourceTree = ""; }; - B389368417F1BE3EB348B0999B9040B8 /* CPTRangePlot.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = CPTRangePlot.m; path = framework/Source/CPTRangePlot.m; sourceTree = ""; }; - B3AA3EACAD8852DC572C90305723E348 /* DFUService.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = DFUService.swift; path = iOSDFULibrary/Classes/Implementation/GenericDFU/DFUService.swift; sourceTree = ""; }; - B51DAA7ACAD064B7FC35EBC29439695E /* CPTPlotRange.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = CPTPlotRange.h; path = framework/Source/CPTPlotRange.h; sourceTree = ""; }; - B55A164E16003607876DA997AA7B3EC1 /* SWRevealViewController-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "SWRevealViewController-dummy.m"; sourceTree = ""; }; - B641EA0A28E1DA924AE52EA5C334C832 /* CPTAxis.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = CPTAxis.h; path = framework/Source/CPTAxis.h; sourceTree = ""; }; - B662404719848275789FC797DAF22071 /* CPTColor.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = CPTColor.h; path = framework/Source/CPTColor.h; sourceTree = ""; }; - B6E6109B3FC540C0E500EF1EF5BB32A2 /* EVReflection.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = EVReflection.swift; path = Source/EVReflection.swift; sourceTree = ""; }; - B6EB2D72A241D95211152DB0DC84666C /* CPTMutableNumericData+TypeConversion.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "CPTMutableNumericData+TypeConversion.h"; path = "framework/Source/CPTMutableNumericData+TypeConversion.h"; sourceTree = ""; }; - B7719CBFFA2AC3DAEE32FD039FAE2867 /* CPTPathExtensions.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = CPTPathExtensions.m; path = framework/Source/CPTPathExtensions.m; sourceTree = ""; }; - B9423232132F96DC3733C8AB0B9D747C /* NSCoderExtensions.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = NSCoderExtensions.h; path = framework/Source/NSCoderExtensions.h; sourceTree = ""; }; - B960FE16047D35498D9857D4AEA2D84B /* CorePlot-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "CorePlot-prefix.pch"; sourceTree = ""; }; - BA5A044B62EA4245F2A6D392B937C262 /* iOSDFULibrary.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; name = iOSDFULibrary.framework; path = iOSDFULibrary.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - BA92F9CDFB6473B585521493EC2FD673 /* EVObject.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = EVObject.swift; path = Source/EVObject.swift; sourceTree = ""; }; - BBE1D7FA89CD0DB46AC23A96B184E02D /* CPTPlotRange.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = CPTPlotRange.m; path = framework/Source/CPTPlotRange.m; sourceTree = ""; }; - BC54BF7F8CD95C66516A7527318E4850 /* LegacyDFUServiceInitiator.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = LegacyDFUServiceInitiator.swift; path = iOSDFULibrary/Classes/Implementation/LegacyDFU/DFU/LegacyDFUServiceInitiator.swift; sourceTree = ""; }; - BEB622810F43D63309C05BAEAC2FBDFC /* CPTGraph.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = CPTGraph.h; path = framework/Source/CPTGraph.h; sourceTree = ""; }; - C0D153EB1F09BC780B33D48D48733C31 /* CPTPieChart.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = CPTPieChart.m; path = framework/Source/CPTPieChart.m; sourceTree = ""; }; - C15B782740FCE18847DA123B721E0B45 /* LegacyDFUPeripheralDelegate.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = LegacyDFUPeripheralDelegate.swift; path = iOSDFULibrary/Classes/Implementation/LegacyDFU/Peripherals/LegacyDFUPeripheralDelegate.swift; sourceTree = ""; }; - C2730A974569CFAD198FE2FEFB095BAF /* LegacyDFUPeripheral.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = LegacyDFUPeripheral.swift; path = iOSDFULibrary/Classes/Implementation/LegacyDFU/Peripherals/LegacyDFUPeripheral.swift; sourceTree = ""; }; - C31CFAF0F1365E472CB351091360F57F /* CPTGradient.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = CPTGradient.h; path = framework/Source/CPTGradient.h; sourceTree = ""; }; - C4C51D99AF1C2BCFD711B87A36F108B8 /* EVArrayExtension.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = EVArrayExtension.swift; path = Source/EVArrayExtension.swift; sourceTree = ""; }; - C6ABB8C7E3254C175A1D541C1C18FC5B /* CPTPlotSpace.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = CPTPlotSpace.m; path = framework/Source/CPTPlotSpace.m; sourceTree = ""; }; - C8D45825F42ADDA377BCF2031EE6FA19 /* CPTUtilities.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = CPTUtilities.h; path = framework/Source/CPTUtilities.h; sourceTree = ""; }; - C8D49D523E4EA8E93D0CC7466ECEBB50 /* CorePlot-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "CorePlot-umbrella.h"; sourceTree = ""; }; - C941D1F0CFD6C0C09B3E405B24C305E5 /* _CPTPlainBlackTheme.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = _CPTPlainBlackTheme.m; path = framework/Source/_CPTPlainBlackTheme.m; sourceTree = ""; }; - CA5532F6A7063DB73FC3C9E232FFC9E6 /* CPTAnnotationHostLayer.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = CPTAnnotationHostLayer.h; path = framework/Source/CPTAnnotationHostLayer.h; sourceTree = ""; }; - CA5A4334CABF7459831D2ECF25060EE1 /* iOSDFULibrary-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "iOSDFULibrary-umbrella.h"; sourceTree = ""; }; - CC12F49FF41C8A2F41FC3C215BAD5EF1 /* CPTDefinitions.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = CPTDefinitions.m; path = framework/Source/CPTDefinitions.m; sourceTree = ""; }; - CC16472453375E36E51A3798DED62AB0 /* CPTAxisTitle.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = CPTAxisTitle.m; path = framework/Source/CPTAxisTitle.m; sourceTree = ""; }; - CC2167E7567AB8911A0F474E576897A5 /* _CPTXYTheme.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = _CPTXYTheme.h; path = framework/Source/_CPTXYTheme.h; sourceTree = ""; }; - CC27044FBAC839AA964BE73CB7858AF6 /* CPTTheme.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = CPTTheme.m; path = framework/Source/CPTTheme.m; sourceTree = ""; }; - CC91A00BE759B1D2FD29588305618958 /* Pods-nRF Toolbox.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-nRF Toolbox.release.xcconfig"; sourceTree = ""; }; - CE4FE8E99157CC26AA1BF63F5BEA7FCE /* CPTAxisLabelGroup.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = CPTAxisLabelGroup.h; path = framework/Source/CPTAxisLabelGroup.h; sourceTree = ""; }; - CE617C929CAC13B93892E239BD7819F4 /* CPTXYGraph.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = CPTXYGraph.m; path = framework/Source/CPTXYGraph.m; sourceTree = ""; }; - CF8EBDA49894F11DDC438D9105D01F36 /* CPTColorSpace.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = CPTColorSpace.h; path = framework/Source/CPTColorSpace.h; sourceTree = ""; }; - CFF23074D121727AE0E51B4B835D2DA2 /* CPTGridLineGroup.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = CPTGridLineGroup.h; path = framework/Source/CPTGridLineGroup.h; sourceTree = ""; }; - D0EEA70757E383DAC7B9E980A0FBB78F /* CPTPlotSpace.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = CPTPlotSpace.h; path = framework/Source/CPTPlotSpace.h; sourceTree = ""; }; - D125D6F2575E2DECA29408BF7D0064F2 /* CPTPlot.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = CPTPlot.m; path = framework/Source/CPTPlot.m; sourceTree = ""; }; - D1ACEF3E765A11937B651941AFDE00B8 /* CPTTimeFormatter.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = CPTTimeFormatter.h; path = framework/Source/CPTTimeFormatter.h; sourceTree = ""; }; - D30E58738B34BD19EDBF16A4023D1A7E /* CPTNumericDataType.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = CPTNumericDataType.m; path = framework/Source/CPTNumericDataType.m; sourceTree = ""; }; - D3FEA9638AD8BDF896293BD6DB669570 /* ButtonlessDFU.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ButtonlessDFU.swift; path = iOSDFULibrary/Classes/Implementation/SecureDFU/Characteristics/ButtonlessDFU.swift; sourceTree = ""; }; - D5831F808D898C9E45421D5FC6486CC8 /* CPTAnimation.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = CPTAnimation.m; path = framework/Source/CPTAnimation.m; sourceTree = ""; }; - D64D4F770C2C41731A5D005B0F9B5A88 /* _CPTPlainWhiteTheme.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = _CPTPlainWhiteTheme.h; path = framework/Source/_CPTPlainWhiteTheme.h; sourceTree = ""; }; - D8C9E914559D8231910C25DD10CEF631 /* CPTTradingRangePlot.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = CPTTradingRangePlot.m; path = framework/Source/CPTTradingRangePlot.m; sourceTree = ""; }; - D8D839419A767861651100DF16653144 /* DFUServiceDelegate.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = DFUServiceDelegate.swift; path = iOSDFULibrary/Classes/Implementation/DFUServiceDelegate.swift; sourceTree = ""; }; - D8DF352909A1CEE517647A3BEA19FF55 /* CPTBarPlot.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = CPTBarPlot.m; path = framework/Source/CPTBarPlot.m; sourceTree = ""; }; - D94002C0EF9551B2F63057346DCF928C /* EVReflection-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "EVReflection-dummy.m"; sourceTree = ""; }; - D952A20CE87F7E88C789611425A54729 /* _CPTConstraintsRelative.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = _CPTConstraintsRelative.h; path = framework/Source/_CPTConstraintsRelative.h; sourceTree = ""; }; - DA40B0DE746D9BCB22290DA8C18CEABA /* DFUStreamBin.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = DFUStreamBin.swift; path = iOSDFULibrary/Classes/Utilities/Streams/DFUStreamBin.swift; sourceTree = ""; }; - DB14653C1C3E76410F1382E63CB5AE7E /* _CPTSlateTheme.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = _CPTSlateTheme.h; path = framework/Source/_CPTSlateTheme.h; sourceTree = ""; }; - DD728724E88C3E4F7A772B803D7813D1 /* CPTMutableShadow.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = CPTMutableShadow.m; path = framework/Source/CPTMutableShadow.m; sourceTree = ""; }; - DD8D4E0F9B7EB70030D1EE95DEBAE326 /* Zip-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "Zip-prefix.pch"; sourceTree = ""; }; - DE079B141A7DF971CE8F70310A0F7204 /* CPTAnimationPeriod.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = CPTAnimationPeriod.m; path = framework/Source/CPTAnimationPeriod.m; sourceTree = ""; }; - DFCB19778392B28467E8C0C88531514C /* CPTNumericData.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = CPTNumericData.h; path = framework/Source/CPTNumericData.h; sourceTree = ""; }; - E1CCA74555CF6B7342ECB752BB5B17F1 /* EVReflection.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; name = EVReflection.framework; path = EVReflection.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - E3B0C2E9A840775DD2E17FDEE1244AFC /* CPTPlot.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = CPTPlot.h; path = framework/Source/CPTPlot.h; sourceTree = ""; }; - E49BF421ECAFA164E3B13B9D6845C3C2 /* SWRevealViewController-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "SWRevealViewController-prefix.pch"; sourceTree = ""; }; - E49C293D8B7B7733D9E2BC450E429FDC /* CPTAnimationOperation.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = CPTAnimationOperation.m; path = framework/Source/CPTAnimationOperation.m; sourceTree = ""; }; - E4AC71FB28F1A869549F06217EA412D3 /* IntelHex2BinConverter.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = IntelHex2BinConverter.m; path = iOSDFULibrary/Classes/Utilities/HexToBinConverter/IntelHex2BinConverter.m; sourceTree = ""; }; - E5C975DA139B1FE7AB941377FAB9FFDF /* LoggerDelegate.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = LoggerDelegate.swift; path = iOSDFULibrary/Classes/Utilities/Logging/LoggerDelegate.swift; sourceTree = ""; }; - E6161B99AAA5F4958CE95CDE516C4F0A /* CPTShadow.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = CPTShadow.m; path = framework/Source/CPTShadow.m; sourceTree = ""; }; - E698027A59B23BA2305169F210A02034 /* Pods-nRF Toolbox.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-nRF Toolbox.debug.xcconfig"; sourceTree = ""; }; - E79EB88C5002C142C5586F1E6F964757 /* CPTPlotSymbol.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = CPTPlotSymbol.m; path = framework/Source/CPTPlotSymbol.m; sourceTree = ""; }; - E80A6ADCE4F0CC11DF9B94C0ACCDF6A1 /* Zip.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = Zip.h; path = Zip/Zip.h; sourceTree = ""; }; - E8ED22F691F2EEACAE7413994B85BCE8 /* CPTResponder.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = CPTResponder.h; path = framework/Source/CPTResponder.h; sourceTree = ""; }; - EB0E4D01C52A3C7192E83BB1EBCE6F84 /* _CPTAnimationCGFloatPeriod.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = _CPTAnimationCGFloatPeriod.h; path = framework/Source/_CPTAnimationCGFloatPeriod.h; sourceTree = ""; }; - ED093B1BA87A0D0EA9F29A5D844CA148 /* CorePlotProbes.d */ = {isa = PBXFileReference; includeInIndex = 1; name = CorePlotProbes.d; path = framework/TestResources/CorePlotProbes.d; sourceTree = ""; }; - EDA5EFAEF5632EE5161B17B3096367AF /* _CPTFillColor.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = _CPTFillColor.h; path = framework/Source/_CPTFillColor.h; sourceTree = ""; }; - EDEF8371FA1E73FBB8C6DB0CA136CD43 /* zip.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = zip.h; path = Zip/minizip/zip.h; sourceTree = ""; }; - EF77FAEED31BBE668225B0C953219EA1 /* _CPTBorderLayer.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = _CPTBorderLayer.h; path = framework/Source/_CPTBorderLayer.h; sourceTree = ""; }; - F2AFEBCBB4C50A387E813AA515526D1F /* CoreGraphics.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreGraphics.framework; path = Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS10.3.sdk/System/Library/Frameworks/CoreGraphics.framework; sourceTree = DEVELOPER_DIR; }; - F3E3D82CC3AC1B3579BF9C36F87AFB7D /* DFUPeripheral.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = DFUPeripheral.swift; path = iOSDFULibrary/Classes/Implementation/GenericDFU/DFUPeripheral.swift; sourceTree = ""; }; - F5698D25B2299D16724989D2D9E3BCB9 /* CPTMutableNumericData+TypeConversion.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "CPTMutableNumericData+TypeConversion.m"; path = "framework/Source/CPTMutableNumericData+TypeConversion.m"; sourceTree = ""; }; - F6978EF1930634769F4579C98022922C /* Pods_nRF_Toolbox.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; name = Pods_nRF_Toolbox.framework; path = "Pods-nRF Toolbox.framework"; sourceTree = BUILT_PRODUCTS_DIR; }; - F7F258047948C731081A9C136699DC1C /* _CPTSlateTheme.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = _CPTSlateTheme.m; path = framework/Source/_CPTSlateTheme.m; sourceTree = ""; }; - F83F91E82EDC08748069AC8057DD9D40 /* CPTAxisTitle.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = CPTAxisTitle.h; path = framework/Source/CPTAxisTitle.h; sourceTree = ""; }; - F9BFD348FF56B4E186FBA5A4AC91A2ED /* CPTConstraints.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = CPTConstraints.h; path = framework/Source/CPTConstraints.h; sourceTree = ""; }; - F9C82F8E34D88A8CAA67A67FFB4237D5 /* Pods-nRF Toolbox-acknowledgements.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "Pods-nRF Toolbox-acknowledgements.plist"; sourceTree = ""; }; - FA0B990781EA3509D073F5400AE84069 /* CPTAxisLabel.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = CPTAxisLabel.m; path = framework/Source/CPTAxisLabel.m; sourceTree = ""; }; - FAFAA2A831D0EC9D83D9F322573F4F43 /* CPTLimitBand.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = CPTLimitBand.m; path = framework/Source/CPTLimitBand.m; sourceTree = ""; }; - FB6BF60D483B71BF1759CFBEE3BA2056 /* _CPTStocksTheme.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = _CPTStocksTheme.m; path = framework/Source/_CPTStocksTheme.m; sourceTree = ""; }; - FBBE34E926DFC0D57340E43083BAD3BF /* _CPTFillGradient.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = _CPTFillGradient.h; path = framework/Source/_CPTFillGradient.h; sourceTree = ""; }; - FD77B6AFEF2EEAB5581D91BC17524E53 /* CPTGradient.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = CPTGradient.m; path = framework/Source/CPTGradient.m; sourceTree = ""; }; - FE47FABCC71708B357D64D6D614EEA3C /* Pods-nRF Toolbox-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "Pods-nRF Toolbox-dummy.m"; sourceTree = ""; }; - FF0B8EE77830E3DA582D1FAD0D5E00A3 /* SecureDFUExecutor.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = SecureDFUExecutor.swift; path = iOSDFULibrary/Classes/Implementation/SecureDFU/DFU/SecureDFUExecutor.swift; sourceTree = ""; }; - FF193E2DC7BB23C9978C503CB485D100 /* CPTLayer.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = CPTLayer.h; path = framework/Source/CPTLayer.h; sourceTree = ""; }; - FF32F2F6333A7D2645E610779C44DBBC /* _CPTAnimationCGRectPeriod.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = _CPTAnimationCGRectPeriod.h; path = framework/Source/_CPTAnimationCGRectPeriod.h; sourceTree = ""; }; + 003406845EE62A8471E9B570A4CA5BCD /* CPTAnnotationHostLayer.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = CPTAnnotationHostLayer.m; path = framework/Source/CPTAnnotationHostLayer.m; sourceTree = ""; }; + 006B18CF0757496867C0824748CDFD3F /* CPTAnimation.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = CPTAnimation.h; path = framework/Source/CPTAnimation.h; sourceTree = ""; }; + 015F5BDEBC2DCFE270E670F01AC06DE1 /* _CPTBorderLayer.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = _CPTBorderLayer.h; path = framework/Source/_CPTBorderLayer.h; sourceTree = ""; }; + 02041B1CDBEDAD0D7078735B66331C2E /* _CPTFillGradient.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = _CPTFillGradient.h; path = framework/Source/_CPTFillGradient.h; sourceTree = ""; }; + 03B7ADCB0F94F798984266ED88C11936 /* CPTLineStyle.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = CPTLineStyle.h; path = framework/Source/CPTLineStyle.h; sourceTree = ""; }; + 03E3694870B28CC3C22F3E011FECFAE3 /* CPTLegendEntry.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = CPTLegendEntry.h; path = framework/Source/CPTLegendEntry.h; sourceTree = ""; }; + 04D2A3734AE0E27E46E50B5889C4FC49 /* Pods-nRF Toolbox-acknowledgements.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "Pods-nRF Toolbox-acknowledgements.plist"; sourceTree = ""; }; + 054265D9864CF8CF795C4124AB9F6482 /* unzip.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = unzip.h; path = Zip/minizip/unzip.h; sourceTree = ""; }; + 059C27C4C691F323C9B9318EAD268F65 /* SoftdeviceBootloaderInfo.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = SoftdeviceBootloaderInfo.swift; path = iOSDFULibrary/Classes/Utilities/DFUPackage/Manifest/SoftdeviceBootloaderInfo.swift; sourceTree = ""; }; + 05A2272C079071703F09729BA6DB6481 /* SecureDFUExecutor.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = SecureDFUExecutor.swift; path = iOSDFULibrary/Classes/Implementation/SecureDFU/DFU/SecureDFUExecutor.swift; sourceTree = ""; }; + 06F10A581D4E7DBC742488853092E58C /* CorePlot.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; name = CorePlot.framework; path = CorePlot.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + 08358DE9FE6882179782223CDA627495 /* SWRevealViewController.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = SWRevealViewController.xcconfig; sourceTree = ""; }; + 093EB71E379D7A7D00650481BEF5E373 /* Zip.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = Zip.h; path = Zip/Zip.h; sourceTree = ""; }; + 09E7041BAE266D7BCB060A7C3A0651F1 /* CPTMutableLineStyle.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = CPTMutableLineStyle.m; path = framework/Source/CPTMutableLineStyle.m; sourceTree = ""; }; + 0A5003600A730601AD45F37F9384F6BD /* DFUPacket.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = DFUPacket.swift; path = iOSDFULibrary/Classes/Implementation/LegacyDFU/Characteristics/DFUPacket.swift; sourceTree = ""; }; + 0A8CD193B2BE2DF8CCD36BF7127D59E4 /* NSNumberExtensions.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = NSNumberExtensions.m; path = framework/Source/NSNumberExtensions.m; sourceTree = ""; }; + 0EA11E9847BE4043445EFFCF0B17BD77 /* QuartzCore.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = QuartzCore.framework; path = Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS12.2.sdk/System/Library/Frameworks/QuartzCore.framework; sourceTree = DEVELOPER_DIR; }; + 0ECC944F70738F80E482CCB65B30EDFB /* CPTMutablePlotRange.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = CPTMutablePlotRange.h; path = framework/Source/CPTMutablePlotRange.h; sourceTree = ""; }; + 126A73F0771DE4822DD7E7818E980660 /* CPTLineCap.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = CPTLineCap.h; path = framework/Source/CPTLineCap.h; sourceTree = ""; }; + 1312DDB7428ACA18D721DE5F63E1C456 /* _CPTAnimationNSDecimalPeriod.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = _CPTAnimationNSDecimalPeriod.h; path = framework/Source/_CPTAnimationNSDecimalPeriod.h; sourceTree = ""; }; + 168F025FE1C07EEE7DDD83B7AAE0ABFD /* LoggerDelegate.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = LoggerDelegate.swift; path = iOSDFULibrary/Classes/Utilities/Logging/LoggerDelegate.swift; sourceTree = ""; }; + 16C7D476482E54D2CD4E620ECDDBB2B1 /* SecureDFUControlPoint.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = SecureDFUControlPoint.swift; path = iOSDFULibrary/Classes/Implementation/SecureDFU/Characteristics/SecureDFUControlPoint.swift; sourceTree = ""; }; + 171B7DF1E00BE330A34DBB544042452A /* CPTNumericDataType.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = CPTNumericDataType.m; path = framework/Source/CPTNumericDataType.m; sourceTree = ""; }; + 1A44BD9B338E726891F4A078998012EF /* CPTGridLineGroup.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = CPTGridLineGroup.h; path = framework/Source/CPTGridLineGroup.h; sourceTree = ""; }; + 1BED2567BB1FF5DA427DDE282910C2A8 /* _CPTConstraintsRelative.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = _CPTConstraintsRelative.m; path = framework/Source/_CPTConstraintsRelative.m; sourceTree = ""; }; + 1D305DBD844A36C35B75D196BB3FE046 /* SecureDFUPeripheral.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = SecureDFUPeripheral.swift; path = iOSDFULibrary/Classes/Implementation/SecureDFU/Peripheral/SecureDFUPeripheral.swift; sourceTree = ""; }; + 1D991570DFA0DB8FBCCDC7474FB6D467 /* iOSDFULibrary.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.module; path = iOSDFULibrary.modulemap; sourceTree = ""; }; + 1DB18B188108C05CBE0B4F8D8C759B31 /* CPTAnimationOperation.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = CPTAnimationOperation.h; path = framework/Source/CPTAnimationOperation.h; sourceTree = ""; }; + 1DE46EB3C90EC9D07936065473576EAB /* QuickZip.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = QuickZip.swift; path = Zip/QuickZip.swift; sourceTree = ""; }; + 1E64FCD0794C777EBB280C34A062AC8B /* EVCustomReflectable.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = EVCustomReflectable.swift; path = Source/EVCustomReflectable.swift; sourceTree = ""; }; + 1EEB2334E49F7D5AD005016C7E19C0DB /* CPTFunctionDataSource.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = CPTFunctionDataSource.m; path = framework/Source/CPTFunctionDataSource.m; sourceTree = ""; }; + 1FD05B2D2030D91E267C7027C1F275DA /* CPTXYAxisSet.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = CPTXYAxisSet.h; path = framework/Source/CPTXYAxisSet.h; sourceTree = ""; }; + 1FD99631043058BA3A8487922F4D0BFC /* CPTExceptions.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = CPTExceptions.m; path = framework/Source/CPTExceptions.m; sourceTree = ""; }; + 200E020B58CC09F63B87DDCA3072BFA1 /* DFUServiceDelegate.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = DFUServiceDelegate.swift; path = iOSDFULibrary/Classes/Implementation/DFUServiceDelegate.swift; sourceTree = ""; }; + 20B95365A9F472FCCC960399C57823C7 /* CPTAxis.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = CPTAxis.h; path = framework/Source/CPTAxis.h; sourceTree = ""; }; + 20C4BF7CDCB7A6CE73BB38891BA18142 /* SecureDFUPeripheralDelegate.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = SecureDFUPeripheralDelegate.swift; path = iOSDFULibrary/Classes/Implementation/SecureDFU/Peripheral/SecureDFUPeripheralDelegate.swift; sourceTree = ""; }; + 229173C8BDBAEF94EB78CAB1DEB3D7D9 /* CPTColorSpace.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = CPTColorSpace.h; path = framework/Source/CPTColorSpace.h; sourceTree = ""; }; + 22A6116E850EFC3BFA4D3FB7DF9FFF3E /* DFUPeripheral.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = DFUPeripheral.swift; path = iOSDFULibrary/Classes/Implementation/GenericDFU/DFUPeripheral.swift; sourceTree = ""; }; + 22C29E059FEB9C18339EB12798452FE2 /* CPTAnnotation.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = CPTAnnotation.m; path = framework/Source/CPTAnnotation.m; sourceTree = ""; }; + 242DD0BFA2CF395417BC8847FF562EA4 /* CPTPlatformSpecificDefines.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = CPTPlatformSpecificDefines.h; path = framework/iPhoneOnly/CPTPlatformSpecificDefines.h; sourceTree = ""; }; + 24413CB410EABF537F62F6947E89B3F1 /* CPTGraphHostingView.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = CPTGraphHostingView.h; path = framework/iPhoneOnly/CPTGraphHostingView.h; sourceTree = ""; }; + 2569E6F3A9B3CABFFB6BEAF8153DDFF9 /* CPTNumericData+TypeConversion.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "CPTNumericData+TypeConversion.h"; path = "framework/Source/CPTNumericData+TypeConversion.h"; sourceTree = ""; }; + 25A7000CA642BC63F952A86FE44A374D /* CPTTheme.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = CPTTheme.h; path = framework/Source/CPTTheme.h; sourceTree = ""; }; + 2654B16FA44715EA1F4FF96002F77E2D /* EVObject.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = EVObject.swift; path = Source/EVObject.swift; sourceTree = ""; }; + 2705106D0EAF1B2834FDDF404665ADE8 /* DFUStarterPeripheral.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = DFUStarterPeripheral.swift; path = iOSDFULibrary/Classes/Implementation/DFUSelector/DFUStarterPeripheral.swift; sourceTree = ""; }; + 270671B3613A8361100B6555CE2EE114 /* _CPTXYTheme.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = _CPTXYTheme.h; path = framework/Source/_CPTXYTheme.h; sourceTree = ""; }; + 282E316EAB0425B7250294DCD2E66D47 /* CPTDefinitions.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = CPTDefinitions.m; path = framework/Source/CPTDefinitions.m; sourceTree = ""; }; + 28F96E83275CCF61098967AC54A607C0 /* EVReflection-Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "EVReflection-Info.plist"; sourceTree = ""; }; + 2A2794D24ADE5DDEAEC3676A6C291113 /* DFUServiceController.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = DFUServiceController.swift; path = iOSDFULibrary/Classes/Implementation/DFUServiceController.swift; sourceTree = ""; }; + 2A47FFB56B51592AA8FDBA6963353BE1 /* _CPTAnimationTimingFunctions.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = _CPTAnimationTimingFunctions.h; path = framework/Source/_CPTAnimationTimingFunctions.h; sourceTree = ""; }; + 2A516B57D5EF2A72F2BB25DC3212C5D2 /* Zip-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "Zip-umbrella.h"; sourceTree = ""; }; + 2AED89F44BE1948D3DCBE6BD2B2589D9 /* _CPTConstraintsFixed.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = _CPTConstraintsFixed.h; path = framework/Source/_CPTConstraintsFixed.h; sourceTree = ""; }; + 2B0395D84E0526660B326882808034A0 /* CPTImagePlatformSpecific.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = CPTImagePlatformSpecific.m; path = framework/iPhoneOnly/CPTImagePlatformSpecific.m; sourceTree = ""; }; + 2B07F4C0158BAF71C781AFAE0CD78A92 /* CPTNumericData.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = CPTNumericData.m; path = framework/Source/CPTNumericData.m; sourceTree = ""; }; + 2B3879AF77481594F3CF7DBFAFB51CDD /* CPTPlotSymbol.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = CPTPlotSymbol.h; path = framework/Source/CPTPlotSymbol.h; sourceTree = ""; }; + 2C09683D9BF49967D26945C75310F778 /* CPTXYAxisSet.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = CPTXYAxisSet.m; path = framework/Source/CPTXYAxisSet.m; sourceTree = ""; }; + 2C61B2CA0EB87A6644FC8CB95EF8FDC7 /* CPTGraphHostingView.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = CPTGraphHostingView.m; path = framework/iPhoneOnly/CPTGraphHostingView.m; sourceTree = ""; }; + 2F0E15C381A25E6F58A2B599E2DD1659 /* NSCoderExtensions.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = NSCoderExtensions.h; path = framework/Source/NSCoderExtensions.h; sourceTree = ""; }; + 2F54346E12C6ED521D1148B2C4EEF005 /* CPTGraph.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = CPTGraph.m; path = framework/Source/CPTGraph.m; sourceTree = ""; }; + 30C3C3F88AC930DC372342470A27469A /* CPTExceptions.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = CPTExceptions.h; path = framework/Source/CPTExceptions.h; sourceTree = ""; }; + 326853B7B27FD0E72A73F9719CD341F0 /* CPTPlot.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = CPTPlot.h; path = framework/Source/CPTPlot.h; sourceTree = ""; }; + 328ED62BA6EA0DE736C32C6304B0870E /* DFUControlPoint.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = DFUControlPoint.swift; path = iOSDFULibrary/Classes/Implementation/LegacyDFU/Characteristics/DFUControlPoint.swift; sourceTree = ""; }; + 342CB39929F987A143CEA0C6C4D474FE /* _CPTFillGradient.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = _CPTFillGradient.m; path = framework/Source/_CPTFillGradient.m; sourceTree = ""; }; + 366446A57326AAAE419063593757F8B1 /* _CPTBorderLayer.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = _CPTBorderLayer.m; path = framework/Source/_CPTBorderLayer.m; sourceTree = ""; }; + 3A28528D1B354DB0E0891F0A1B4B5B6F /* CorePlotProbes.d */ = {isa = PBXFileReference; includeInIndex = 1; name = CorePlotProbes.d; path = framework/TestResources/CorePlotProbes.d; sourceTree = ""; }; + 3DDE53388B782F7BC87B8C0F604131F8 /* CPTLayerAnnotation.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = CPTLayerAnnotation.m; path = framework/Source/CPTLayerAnnotation.m; sourceTree = ""; }; + 3E2D90652F267ADD99B873DB31966B93 /* EVArrayExtension.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = EVArrayExtension.swift; path = Source/EVArrayExtension.swift; sourceTree = ""; }; + 3F3E894A6A3D64676AE277D334728DFB /* EVReflection.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.module; path = EVReflection.modulemap; sourceTree = ""; }; + 40B884019E926B529517AB24EA6C5CE7 /* _CPTAnimationTimingFunctions.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = _CPTAnimationTimingFunctions.m; path = framework/Source/_CPTAnimationTimingFunctions.m; sourceTree = ""; }; + 41B6D70D0C4AA0CE8EDF6BAB3C20700F /* CPTDerivedXYGraph.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = CPTDerivedXYGraph.m; path = framework/Source/CPTDerivedXYGraph.m; sourceTree = ""; }; + 427F77D6F7907CE7D8D1611C066E7147 /* CPTFunctionDataSource.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = CPTFunctionDataSource.h; path = framework/Source/CPTFunctionDataSource.h; sourceTree = ""; }; + 42FD2B5FF2C76032C595C5D0815D149B /* CPTAxis.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = CPTAxis.m; path = framework/Source/CPTAxis.m; sourceTree = ""; }; + 44217F252F3998D5A650F3489F75B98E /* CPTAxisLabelGroup.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = CPTAxisLabelGroup.m; path = framework/Source/CPTAxisLabelGroup.m; sourceTree = ""; }; + 442F8658F38F4E42F3779E9C000923B0 /* CPTAnimation.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = CPTAnimation.m; path = framework/Source/CPTAnimation.m; sourceTree = ""; }; + 44F45FAE950D7585A5A5C0BCA53DDF85 /* Accelerate.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Accelerate.framework; path = Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS12.2.sdk/System/Library/Frameworks/Accelerate.framework; sourceTree = DEVELOPER_DIR; }; + 457F79841F01CCF3C6B65CFF09CFB25F /* LegacyDFUServiceInitiator.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = LegacyDFUServiceInitiator.swift; path = iOSDFULibrary/Classes/Implementation/LegacyDFU/DFU/LegacyDFUServiceInitiator.swift; sourceTree = ""; }; + 459C421D92984822AF154227D1E27564 /* EVReflection-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "EVReflection-dummy.m"; sourceTree = ""; }; + 4611B554E0815F8D5761A40A7478E78D /* iOSDFULibrary-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "iOSDFULibrary-umbrella.h"; sourceTree = ""; }; + 46E5A5CC1EC189CA9A62AA3BBFC83332 /* Pods-nRF Toolbox-acknowledgements.markdown */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text; path = "Pods-nRF Toolbox-acknowledgements.markdown"; sourceTree = ""; }; + 470B153C071A2C2893A779B04D39A4BF /* SecureDFUPacket.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = SecureDFUPacket.swift; path = iOSDFULibrary/Classes/Implementation/SecureDFU/Characteristics/SecureDFUPacket.swift; sourceTree = ""; }; + 479CA370A17A4EA7D728292D6848A96F /* CPTMutableShadow.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = CPTMutableShadow.m; path = framework/Source/CPTMutableShadow.m; sourceTree = ""; }; + 4A81E2B17BD20659F0EE4EF986EEFA0B /* CPTPlatformSpecificFunctions.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = CPTPlatformSpecificFunctions.h; path = framework/iPhoneOnly/CPTPlatformSpecificFunctions.h; sourceTree = ""; }; + 4AB713F55C791BFFA30584FE81809050 /* Double.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Double.swift; path = iOSDFULibrary/Classes/Utilities/Double.swift; sourceTree = ""; }; + 4B901952AC1878518A0A624660E01C9B /* SWRevealViewController-Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "SWRevealViewController-Info.plist"; sourceTree = ""; }; + 4C46886E167D0DA9458C19B16834DF6A /* unzip.c */ = {isa = PBXFileReference; includeInIndex = 1; name = unzip.c; path = Zip/minizip/unzip.c; sourceTree = ""; }; + 4C6744EC5A2ED4D97A757D6E95D37B8D /* CPTAnimationOperation.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = CPTAnimationOperation.m; path = framework/Source/CPTAnimationOperation.m; sourceTree = ""; }; + 4C6A232B27F67300059A8F69A973051F /* SWRevealViewController-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "SWRevealViewController-umbrella.h"; sourceTree = ""; }; + 4C710F11EC297E716483C666611FD3C2 /* _CPTSlateTheme.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = _CPTSlateTheme.m; path = framework/Source/_CPTSlateTheme.m; sourceTree = ""; }; + 4CABD716518F32984747C89482E2FB76 /* CPTTextStyle.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = CPTTextStyle.h; path = framework/Source/CPTTextStyle.h; sourceTree = ""; }; + 4D2268C3F404244F4DE7E49C28DFEB30 /* LegacyDFUService.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = LegacyDFUService.swift; path = iOSDFULibrary/Classes/Implementation/LegacyDFU/Services/LegacyDFUService.swift; sourceTree = ""; }; + 4E282219FF47440EE82EE04AB536A418 /* _CPTPlainBlackTheme.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = _CPTPlainBlackTheme.m; path = framework/Source/_CPTPlainBlackTheme.m; sourceTree = ""; }; + 4F7BB9517690790869970006D1D2F959 /* DeserializationStatus.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = DeserializationStatus.swift; path = Source/DeserializationStatus.swift; sourceTree = ""; }; + 4F8729FDE3EA19A0692D4ECC01E2FEB2 /* DFUStream.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = DFUStream.swift; path = iOSDFULibrary/Classes/Utilities/Streams/DFUStream.swift; sourceTree = ""; }; + 50D0FE15925554288BACA60FCD62FE62 /* CPTShadow.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = CPTShadow.h; path = framework/Source/CPTShadow.h; sourceTree = ""; }; + 52CC26CAF1B29E1F249BD86445D8B327 /* CPTMutablePlotRange.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = CPTMutablePlotRange.m; path = framework/Source/CPTMutablePlotRange.m; sourceTree = ""; }; + 54231FB21E337B9CD117EC167C1CE94D /* CPTTextStyle.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = CPTTextStyle.m; path = framework/Source/CPTTextStyle.m; sourceTree = ""; }; + 57645843397853E64AC81B57A20A15E1 /* ButtonlessDFU.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ButtonlessDFU.swift; path = iOSDFULibrary/Classes/Implementation/SecureDFU/Characteristics/ButtonlessDFU.swift; sourceTree = ""; }; + 58C9CBD952069749711F9F8FBC12314E /* CPTPlotGroup.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = CPTPlotGroup.m; path = framework/Source/CPTPlotGroup.m; sourceTree = ""; }; + 59736EDE93692D255D3AD0ED7E08247F /* DFUService.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = DFUService.swift; path = iOSDFULibrary/Classes/Implementation/GenericDFU/DFUService.swift; sourceTree = ""; }; + 5A0979AF3C6D8D289693657DEF3C66A3 /* CPTResponder.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = CPTResponder.h; path = framework/Source/CPTResponder.h; sourceTree = ""; }; + 5AEC8D40C7E17B020CEA24C3E7DB31EF /* Pods-nRF Toolbox-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "Pods-nRF Toolbox-umbrella.h"; sourceTree = ""; }; + 5BB7376F80D302D98B5A42F4D8033E1B /* CPTLineStyle.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = CPTLineStyle.m; path = framework/Source/CPTLineStyle.m; sourceTree = ""; }; + 5BF0010088D9802D556EA300E82D5F1F /* Pods-nRF Toolbox.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-nRF Toolbox.debug.xcconfig"; sourceTree = ""; }; + 5C6C0EABC3685580EF3A0A04EB2FE0C2 /* CPTImage.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = CPTImage.h; path = framework/Source/CPTImage.h; sourceTree = ""; }; + 5DA425A60E34FA33D868A4CC8BECF471 /* CPTColor.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = CPTColor.m; path = framework/Source/CPTColor.m; sourceTree = ""; }; + 5DB9083AE3B753069170013D166408AC /* CPTLegendEntry.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = CPTLegendEntry.m; path = framework/Source/CPTLegendEntry.m; sourceTree = ""; }; + 5F7A6D68E1BE451DCF7937AAF0B76E4F /* DFUPeripheralSelectorDelegate.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = DFUPeripheralSelectorDelegate.swift; path = iOSDFULibrary/Classes/Implementation/DFUPeripheralSelectorDelegate.swift; sourceTree = ""; }; + 5FB83FCEF577C5B810E44FBFB4463CAB /* CPTTextStylePlatformSpecific.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = CPTTextStylePlatformSpecific.m; path = framework/iPhoneOnly/CPTTextStylePlatformSpecific.m; sourceTree = ""; }; + 5FDD12867EFCBD2F3496D2A15F9119E9 /* _CPTAnimationPlotRangePeriod.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = _CPTAnimationPlotRangePeriod.m; path = framework/Source/_CPTAnimationPlotRangePeriod.m; sourceTree = ""; }; + 605B2E2C87FDDACD1CBD260606FA780E /* LegacyDFUPeripheral.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = LegacyDFUPeripheral.swift; path = iOSDFULibrary/Classes/Implementation/LegacyDFU/Peripherals/LegacyDFUPeripheral.swift; sourceTree = ""; }; + 60B4E04571F4EBA97036F98EE1F3F66A /* CPTUtilities.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = CPTUtilities.m; path = framework/Source/CPTUtilities.m; sourceTree = ""; }; + 6177402B44EB3A8C0A6554016F655334 /* _CPTPlainWhiteTheme.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = _CPTPlainWhiteTheme.m; path = framework/Source/_CPTPlainWhiteTheme.m; sourceTree = ""; }; + 617C04B65F625004862D7B531C91C4D3 /* CPTPieChart.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = CPTPieChart.h; path = framework/Source/CPTPieChart.h; sourceTree = ""; }; + 6187060E6B64A2F577CCE5CDB66C1F94 /* CPTDebugQuickLook.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = CPTDebugQuickLook.h; path = framework/Source/CPTDebugQuickLook.h; sourceTree = ""; }; + 61F414135FAD6632D1A7EDF7B101AD3F /* CorePlot-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "CorePlot-prefix.pch"; sourceTree = ""; }; + 621983A235105D78039093A807A8BAB1 /* Zip-Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "Zip-Info.plist"; sourceTree = ""; }; + 633FF9F5B00247B63FF718A157EB240A /* CPTXYPlotSpace.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = CPTXYPlotSpace.h; path = framework/Source/CPTXYPlotSpace.h; sourceTree = ""; }; + 6374C24FCE6EC5E0105AAB9A81B7FC9D /* LoggerHelper.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = LoggerHelper.swift; path = iOSDFULibrary/Classes/Utilities/Logging/LoggerHelper.swift; sourceTree = ""; }; + 648FBB42E181DAD6FAB051BEB3901087 /* CPTFill.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = CPTFill.m; path = framework/Source/CPTFill.m; sourceTree = ""; }; + 64E656F55BB490E97D244FB857F10969 /* CPTPlotRange.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = CPTPlotRange.m; path = framework/Source/CPTPlotRange.m; sourceTree = ""; }; + 65989DB4F194AFE022440ACA39FB8DDD /* CPTGridLines.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = CPTGridLines.h; path = framework/Source/CPTGridLines.h; sourceTree = ""; }; + 6769396A35E8505DE966482750EF3322 /* Pods_nRF_Toolbox.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; name = Pods_nRF_Toolbox.framework; path = "Pods-nRF Toolbox.framework"; sourceTree = BUILT_PRODUCTS_DIR; }; + 67B15D5F3AB14B5B06896AA9F4CA76E9 /* _CPTXYTheme.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = _CPTXYTheme.m; path = framework/Source/_CPTXYTheme.m; sourceTree = ""; }; + 686D7767A47D5ED6439F8488315FF8F0 /* _CPTAnimationCGPointPeriod.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = _CPTAnimationCGPointPeriod.m; path = framework/Source/_CPTAnimationCGPointPeriod.m; sourceTree = ""; }; + 6871A545D15D2DD615B2C3B38C07DD9E /* ioapi.c */ = {isa = PBXFileReference; includeInIndex = 1; name = ioapi.c; path = Zip/minizip/ioapi.c; sourceTree = ""; }; + 69A9B35A98892E3BB79E46E6FEB3B5D4 /* CPTUtilities.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = CPTUtilities.h; path = framework/Source/CPTUtilities.h; sourceTree = ""; }; + 69EB917D9A3E166724690A0690024371 /* CorePlot-CocoaTouch.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "CorePlot-CocoaTouch.h"; path = "framework/CorePlot-CocoaTouch.h"; sourceTree = ""; }; + 6B9E201F9C0CE5923F2940D3815B2FE2 /* CPTLegend.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = CPTLegend.h; path = framework/Source/CPTLegend.h; sourceTree = ""; }; + 6C669B23222391549C6BA8BA6E730622 /* SWRevealViewController-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "SWRevealViewController-dummy.m"; sourceTree = ""; }; + 6CBECABBEE8E9E9919E10665A47BA4A1 /* CPTPlotSpace.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = CPTPlotSpace.h; path = framework/Source/CPTPlotSpace.h; sourceTree = ""; }; + 6CC072882BE80D42250144B1754FC687 /* CPTBarPlot.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = CPTBarPlot.h; path = framework/Source/CPTBarPlot.h; sourceTree = ""; }; + 6E1829C9308E6D43A6BF5E8CFDA51AC9 /* PrintOptions.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = PrintOptions.swift; path = Source/PrintOptions.swift; sourceTree = ""; }; + 6F122D45A3A09241E2B83E0AB1729B61 /* CPTAnimationPeriod.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = CPTAnimationPeriod.h; path = framework/Source/CPTAnimationPeriod.h; sourceTree = ""; }; + 724A2F31736A1DE0EF1B75F9840C759D /* CPTPlot.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = CPTPlot.m; path = framework/Source/CPTPlot.m; sourceTree = ""; }; + 724CF192BA5BCAC73F68568076AC4BDF /* CPTDerivedXYGraph.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = CPTDerivedXYGraph.h; path = framework/Source/CPTDerivedXYGraph.h; sourceTree = ""; }; + 72A980E92FAE3B91C4FC530C72D05C7C /* CPTBorderedLayer.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = CPTBorderedLayer.h; path = framework/Source/CPTBorderedLayer.h; sourceTree = ""; }; + 73E1A361D2935A491DC686AE3BA3A603 /* CPTPathExtensions.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = CPTPathExtensions.m; path = framework/Source/CPTPathExtensions.m; sourceTree = ""; }; + 762532946A12D76E977437E56B016D0D /* _CPTMaskLayer.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = _CPTMaskLayer.h; path = framework/Source/_CPTMaskLayer.h; sourceTree = ""; }; + 769B4833399403E89E2EC54AD238DEC6 /* Data.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Data.swift; path = iOSDFULibrary/Classes/Utilities/Data.swift; sourceTree = ""; }; + 781712DA6AD7C9BF6BADC2DE52863799 /* CorePlot.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = CorePlot.h; path = framework/CocoaPods/CorePlot.h; sourceTree = ""; }; + 78C37DAB61FA4B35BB3B29F46EED6CAB /* CorePlot.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = CorePlot.xcconfig; sourceTree = ""; }; + 78E311B1DF52FDAE4057160F01AC351E /* Pods-nRF Toolbox-frameworks.sh */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.script.sh; path = "Pods-nRF Toolbox-frameworks.sh"; sourceTree = ""; }; + 79AE50316FB672C09AFA8B1222881A09 /* DFUStreamHex.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = DFUStreamHex.swift; path = iOSDFULibrary/Classes/Utilities/Streams/DFUStreamHex.swift; sourceTree = ""; }; + 79DE6322CD81E12269635433A608B64F /* ManifestFirmwareInfo.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ManifestFirmwareInfo.swift; path = iOSDFULibrary/Classes/Utilities/DFUPackage/Manifest/ManifestFirmwareInfo.swift; sourceTree = ""; }; + 7AF7E7FC5E0D415F09B8F7B01197251E /* CPTAxisTitle.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = CPTAxisTitle.h; path = framework/Source/CPTAxisTitle.h; sourceTree = ""; }; + 7BD367BB9279B8CC218CBF4792711EB4 /* SWRevealViewController.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SWRevealViewController.m; path = SWRevealViewController/SWRevealViewController.m; sourceTree = ""; }; + 7BD46F872A76D8737B01241D6563AAEC /* CPTTheme.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = CPTTheme.m; path = framework/Source/CPTTheme.m; sourceTree = ""; }; + 7C3B609DB3F0CB2367A3A74F263100F7 /* CPTXYAxis.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = CPTXYAxis.h; path = framework/Source/CPTXYAxis.h; sourceTree = ""; }; + 7E0D696E85ED5F15D5C6E572D7C55C60 /* CPTConstraints.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = CPTConstraints.h; path = framework/Source/CPTConstraints.h; sourceTree = ""; }; + 7E45B97032219A8D3558DEDCC935B3FE /* CPTPlotSpace.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = CPTPlotSpace.m; path = framework/Source/CPTPlotSpace.m; sourceTree = ""; }; + 805428687153BE3A5CF440DF91FE94BC /* CPTPlotSpaceAnnotation.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = CPTPlotSpaceAnnotation.m; path = framework/Source/CPTPlotSpaceAnnotation.m; sourceTree = ""; }; + 806A31476B00E24A3A6FC740ADC7E3C6 /* CPTBorderedLayer.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = CPTBorderedLayer.m; path = framework/Source/CPTBorderedLayer.m; sourceTree = ""; }; + 80AF12F5465B5E5D03C68440DDF64E50 /* Zip.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Zip.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + 80DEDD9B09435A335D8444AAF27B819F /* EVReflection-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "EVReflection-umbrella.h"; sourceTree = ""; }; + 82D34D4CA00484A6964231C89220CA0D /* SWRevealViewController-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "SWRevealViewController-prefix.pch"; sourceTree = ""; }; + 836B45DEF4C40C97F5963F77CF02784C /* LegacyDFUPeripheralDelegate.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = LegacyDFUPeripheralDelegate.swift; path = iOSDFULibrary/Classes/Implementation/LegacyDFU/Peripherals/LegacyDFUPeripheralDelegate.swift; sourceTree = ""; }; + 83891E946E8924F14C30A325C7C6B594 /* SecureDFUServiceInitiator.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = SecureDFUServiceInitiator.swift; path = iOSDFULibrary/Classes/Implementation/SecureDFU/DFU/SecureDFUServiceInitiator.swift; sourceTree = ""; }; + 849B5F848A1D85E5DA37D858621FB7A5 /* _CPTAnimationNSNumberPeriod.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = _CPTAnimationNSNumberPeriod.h; path = framework/Source/_CPTAnimationNSNumberPeriod.h; sourceTree = ""; }; + 84AFC8DBC35D5137BB04BE5C914DFF30 /* DFUStreamZip.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = DFUStreamZip.swift; path = iOSDFULibrary/Classes/Utilities/Streams/DFUStreamZip.swift; sourceTree = ""; }; + 84DE8AEF525904103B5150FA2D25AA64 /* _CPTPlainWhiteTheme.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = _CPTPlainWhiteTheme.h; path = framework/Source/_CPTPlainWhiteTheme.h; sourceTree = ""; }; + 84FF814C84FE5E0D011822BE140188DD /* CPTPieChart.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = CPTPieChart.m; path = framework/Source/CPTPieChart.m; sourceTree = ""; }; + 85A35F3554D002BACAAB0D43BF98BA43 /* DFUFirmware.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = DFUFirmware.swift; path = iOSDFULibrary/Classes/Implementation/Firmware/DFUFirmware.swift; sourceTree = ""; }; + 874D886632C9C327E84A8C423A68ECF5 /* CPTShadow.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = CPTShadow.m; path = framework/Source/CPTShadow.m; sourceTree = ""; }; + 877884A05EBF6302B9E23715672CF993 /* CPTLayer.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = CPTLayer.h; path = framework/Source/CPTLayer.h; sourceTree = ""; }; + 88CBA720313D0093951801898852EC82 /* crypt.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = crypt.h; path = Zip/minizip/crypt.h; sourceTree = ""; }; + 89C3951FC927D3655855BE806A9C83BA /* Zip.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = Zip.xcconfig; sourceTree = ""; }; + 8B5D6DBC06CBD27361420E62818D549F /* SWRevealViewController.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SWRevealViewController.h; path = SWRevealViewController/SWRevealViewController.h; sourceTree = ""; }; + 8B636CEE91FD11890E96C17700D27850 /* CPTMutableNumericData.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = CPTMutableNumericData.m; path = framework/Source/CPTMutableNumericData.m; sourceTree = ""; }; + 8BB388AF25F99B97A8499064853137CD /* NSDecimalNumberExtensions.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = NSDecimalNumberExtensions.h; path = framework/Source/NSDecimalNumberExtensions.h; sourceTree = ""; }; + 8C3AC64F1D18E0B04D07337C60B6A0D6 /* CPTDefinitions.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = CPTDefinitions.h; path = framework/Source/CPTDefinitions.h; sourceTree = ""; }; + 8CE4D07A1F302A4076AF42014B694C87 /* CPTConstraints.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = CPTConstraints.m; path = framework/Source/CPTConstraints.m; sourceTree = ""; }; + 8CECC40844BED2975CE49BB924656617 /* DFUStreamBin.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = DFUStreamBin.swift; path = iOSDFULibrary/Classes/Utilities/Streams/DFUStreamBin.swift; sourceTree = ""; }; + 8D53900F992BC41ED18A759BBD69A6B4 /* CPTBarPlot.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = CPTBarPlot.m; path = framework/Source/CPTBarPlot.m; sourceTree = ""; }; + 8DFFB329A31E37CE6E0F1547E178B39F /* Zip-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "Zip-prefix.pch"; sourceTree = ""; }; + 8E7507B3E991E4F67CD50F7EA0F99FEE /* CPTPathExtensions.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = CPTPathExtensions.h; path = framework/Source/CPTPathExtensions.h; sourceTree = ""; }; + 8E811970F5C8649EC24BCD651A42F94F /* _CPTMaskLayer.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = _CPTMaskLayer.m; path = framework/Source/_CPTMaskLayer.m; sourceTree = ""; }; + 907701815D8593A6B837B65F5E0E333F /* zip.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = zip.h; path = Zip/minizip/zip.h; sourceTree = ""; }; + 91D50F1D83665EFB21C7B670B4CDE9D1 /* Zip.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; name = Zip.framework; path = Zip.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + 92A2207EDE796C4E708ED178D9403C3A /* _CPTPlainBlackTheme.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = _CPTPlainBlackTheme.h; path = framework/Source/_CPTPlainBlackTheme.h; sourceTree = ""; }; + 933E393F7D69FEF615A9EE73198C6174 /* _CPTAnimationCGRectPeriod.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = _CPTAnimationCGRectPeriod.m; path = framework/Source/_CPTAnimationCGRectPeriod.m; sourceTree = ""; }; + 93811C130B1EF7A929BAE27877A6EE55 /* CPTColorSpace.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = CPTColorSpace.m; path = framework/Source/CPTColorSpace.m; sourceTree = ""; }; + 94AB1C1F19BF5468FEDCC438F76A36DE /* CPTRangePlot.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = CPTRangePlot.m; path = framework/Source/CPTRangePlot.m; sourceTree = ""; }; + 95F180B025651004115808F2DBCD3C09 /* CPTAxisLabel.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = CPTAxisLabel.h; path = framework/Source/CPTAxisLabel.h; sourceTree = ""; }; + 9613EA6D5051E2FB7D7ECD2A170291FF /* CPTGradient.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = CPTGradient.m; path = framework/Source/CPTGradient.m; sourceTree = ""; }; + 976F7482837C260F318D68EDFB56570B /* CorePlot-Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "CorePlot-Info.plist"; sourceTree = ""; }; + 985414BDF40ABE52F80E33C9C4EB660D /* Zip.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.module; path = Zip.modulemap; sourceTree = ""; }; + 9988C9C1A337583A1CD0E58C5784AFD5 /* CPTTextLayer.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = CPTTextLayer.m; path = framework/Source/CPTTextLayer.m; sourceTree = ""; }; + 99E3EB3FA67A34F4B387AED1055D91B6 /* CPTNumericDataType.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = CPTNumericDataType.h; path = framework/Source/CPTNumericDataType.h; sourceTree = ""; }; + 9A6BECA6E8E387F77223CDE14718AA97 /* NSNumberExtensions.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = NSNumberExtensions.h; path = framework/Source/NSNumberExtensions.h; sourceTree = ""; }; + 9A74EFE91B48135D44F256FC2B61F62E /* IntelHex2BinConverter.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = IntelHex2BinConverter.m; path = iOSDFULibrary/Classes/Utilities/HexToBinConverter/IntelHex2BinConverter.m; sourceTree = ""; }; + 9B8A2EF738FB5E1110EB0EA03C9D5F4F /* CPTMutableTextStyle.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = CPTMutableTextStyle.h; path = framework/Source/CPTMutableTextStyle.h; sourceTree = ""; }; + 9C3ED538FE24DDCB9EA034E9E0D4B6FF /* CPTRangePlot.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = CPTRangePlot.h; path = framework/Source/CPTRangePlot.h; sourceTree = ""; }; + 9C636A9FA051C892B1C6C7A7974F256C /* CPTTextStylePlatformSpecific.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = CPTTextStylePlatformSpecific.h; path = framework/iPhoneOnly/CPTTextStylePlatformSpecific.h; sourceTree = ""; }; + 9CF334BDA4DA39EB2503FCA3C3322051 /* DFUVersion.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = DFUVersion.swift; path = iOSDFULibrary/Classes/Implementation/LegacyDFU/Characteristics/DFUVersion.swift; sourceTree = ""; }; + 9D2891B32A74354DF4544BEA81B52BCB /* _CPTAnimationCGSizePeriod.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = _CPTAnimationCGSizePeriod.m; path = framework/Source/_CPTAnimationCGSizePeriod.m; sourceTree = ""; }; + 9D3102F3680BC7EE5762BAAF4AFF1D81 /* ZipArchive.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ZipArchive.swift; path = iOSDFULibrary/Classes/Utilities/ZipArchive.swift; sourceTree = ""; }; + 9D940727FF8FB9C785EB98E56350EF41 /* Podfile */ = {isa = PBXFileReference; explicitFileType = text.script.ruby; includeInIndex = 1; indentWidth = 2; lastKnownFileType = text; name = Podfile; path = ../Podfile; sourceTree = SOURCE_ROOT; tabWidth = 2; xcLanguageSpecificationIdentifier = xcode.lang.ruby; }; + 9FC6B2457AC5A632973EA45D6A5954CB /* _CPTAnimationPlotRangePeriod.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = _CPTAnimationPlotRangePeriod.h; path = framework/Source/_CPTAnimationPlotRangePeriod.h; sourceTree = ""; }; + A043E2332A6A4637859F8ECACE0449DF /* CPTPlotSymbol.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = CPTPlotSymbol.m; path = framework/Source/CPTPlotSymbol.m; sourceTree = ""; }; + A096AEC599D4CCED05195D202A5B76A8 /* CPTPlatformSpecificCategories.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = CPTPlatformSpecificCategories.m; path = framework/iPhoneOnly/CPTPlatformSpecificCategories.m; sourceTree = ""; }; + A10F3533A09F7098055039FFC5C5F881 /* NSCoderExtensions.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = NSCoderExtensions.m; path = framework/Source/NSCoderExtensions.m; sourceTree = ""; }; + A1784BDFEDA469594BA05EAB440EEF7A /* zip.c */ = {isa = PBXFileReference; includeInIndex = 1; name = zip.c; path = Zip/minizip/zip.c; sourceTree = ""; }; + A22EFD01681E19D28B611AC3AE3370CE /* CPTLayer.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = CPTLayer.m; path = framework/Source/CPTLayer.m; sourceTree = ""; }; + A44E5C2999B06B7ACAC42ADF0D31790B /* _CPTAnimationCGRectPeriod.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = _CPTAnimationCGRectPeriod.h; path = framework/Source/_CPTAnimationCGRectPeriod.h; sourceTree = ""; }; + A58B1A53B5F65ED30D565676501B8C30 /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS12.2.sdk/System/Library/Frameworks/Foundation.framework; sourceTree = DEVELOPER_DIR; }; + AA38A1B93D2BDE61B2AD3E9EDD8FFC2B /* _CPTFillColor.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = _CPTFillColor.h; path = framework/Source/_CPTFillColor.h; sourceTree = ""; }; + AAF8FC6AC45D5B1F69468E07CB762415 /* iOSDFULibrary-Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "iOSDFULibrary-Info.plist"; sourceTree = ""; }; + AB24A0C09BBCE369C796B6FA5CEA197E /* CPTFill.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = CPTFill.h; path = framework/Source/CPTFill.h; sourceTree = ""; }; + AC81BED281DE1C953EB3FEFC02A997D8 /* _CPTSlateTheme.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = _CPTSlateTheme.h; path = framework/Source/_CPTSlateTheme.h; sourceTree = ""; }; + AD2D77ABF3A15B80E66107AA91B1A845 /* CPTGridLineGroup.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = CPTGridLineGroup.m; path = framework/Source/CPTGridLineGroup.m; sourceTree = ""; }; + ADA75779A99B6A079A6ACF8078B61ADD /* EVReflection.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = EVReflection.xcconfig; sourceTree = ""; }; + AE014BE7D287480ED1E0AC9973E59A2C /* CPTAnnotation.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = CPTAnnotation.h; path = framework/Source/CPTAnnotation.h; sourceTree = ""; }; + AFBAE8E26E7323795D42511DE089B63F /* CorePlot-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "CorePlot-umbrella.h"; sourceTree = ""; }; + B1301042B3886FE84C9D0352B6C8DD82 /* DFUServiceSelector.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = DFUServiceSelector.swift; path = iOSDFULibrary/Classes/Implementation/DFUSelector/DFUServiceSelector.swift; sourceTree = ""; }; + B140986F17B8BCF31924780ED10A3D5C /* CPTTextLayer.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = CPTTextLayer.h; path = framework/Source/CPTTextLayer.h; sourceTree = ""; }; + B163AE26D04356853DFEC9FFFFB5A30F /* DFUPeripheralSelector.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = DFUPeripheralSelector.swift; path = iOSDFULibrary/Classes/Implementation/DFUPeripheralSelector.swift; sourceTree = ""; }; + B517BD7C3A4409B4326EDC1B8EA187FE /* _CPTFillImage.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = _CPTFillImage.h; path = framework/Source/_CPTFillImage.h; sourceTree = ""; }; + B840EEE40EC4A37C00EF6A82C07C7E7D /* EVReflection.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = EVReflection.swift; path = Source/EVReflection.swift; sourceTree = ""; }; + B902DA3CC399D633509FB5B3ABF733FC /* _CPTStocksTheme.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = _CPTStocksTheme.m; path = framework/Source/_CPTStocksTheme.m; sourceTree = ""; }; + B9C290FC06445D38EB9BF7727578CAB5 /* CPTPlotAreaFrame.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = CPTPlotAreaFrame.h; path = framework/Source/CPTPlotAreaFrame.h; sourceTree = ""; }; + BA140C07AABC009860655D5CC09537C4 /* SWRevealViewController.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.module; path = SWRevealViewController.modulemap; sourceTree = ""; }; + BB82B7CF2FD1849BCE9AD5913C917418 /* _CPTAnimationCGPointPeriod.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = _CPTAnimationCGPointPeriod.h; path = framework/Source/_CPTAnimationCGPointPeriod.h; sourceTree = ""; }; + BEB0D74DC47801D629290EF773C6F723 /* ZipUtilities.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ZipUtilities.swift; path = Zip/ZipUtilities.swift; sourceTree = ""; }; + BEFCA1F3C7043344BC6A29D15A495E56 /* EVReflectable.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = EVReflectable.swift; path = Source/EVReflectable.swift; sourceTree = ""; }; + C0A263189D1033BF6AEC0B376F8C52D3 /* CPTTimeFormatter.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = CPTTimeFormatter.m; path = framework/Source/CPTTimeFormatter.m; sourceTree = ""; }; + C0C1E6757F17C2B165C659D07D595738 /* LegacyDFUExecutor.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = LegacyDFUExecutor.swift; path = iOSDFULibrary/Classes/Implementation/LegacyDFU/DFU/LegacyDFUExecutor.swift; sourceTree = ""; }; + C136228987C818CD7FA05E75A9E49209 /* Manifest.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Manifest.swift; path = iOSDFULibrary/Classes/Utilities/DFUPackage/Manifest/Manifest.swift; sourceTree = ""; }; + C19A9630B737ACB745169CB7FC61177D /* CPTPlotGroup.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = CPTPlotGroup.h; path = framework/Source/CPTPlotGroup.h; sourceTree = ""; }; + C2CAC495B68FACD0E03BC64D13046610 /* CPTAnnotationHostLayer.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = CPTAnnotationHostLayer.h; path = framework/Source/CPTAnnotationHostLayer.h; sourceTree = ""; }; + C4AF69DA9ABC7140DF59D7A91F29AE64 /* CPTTradingRangePlot.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = CPTTradingRangePlot.h; path = framework/Source/CPTTradingRangePlot.h; sourceTree = ""; }; + C68B5974DBCBFCF459FBA120D0FF597B /* _CPTAnimationNSDecimalPeriod.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = _CPTAnimationNSDecimalPeriod.m; path = framework/Source/_CPTAnimationNSDecimalPeriod.m; sourceTree = ""; }; + C6B8ACD1E7A6D015477188328F846957 /* DFUController.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = DFUController.swift; path = iOSDFULibrary/Classes/Implementation/GenericDFU/DFUController.swift; sourceTree = ""; }; + C6BECCA83DAD9BEC7E00B73705BEE9E8 /* Pods-nRF Toolbox-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "Pods-nRF Toolbox-dummy.m"; sourceTree = ""; }; + C7192D0C97F75A7052E59B31C16F84A2 /* Pods-nRF Toolbox-Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "Pods-nRF Toolbox-Info.plist"; sourceTree = ""; }; + C77F0B7E8BCD7BA131EAE3CD9DCF30CC /* _CPTAnimationCGFloatPeriod.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = _CPTAnimationCGFloatPeriod.h; path = framework/Source/_CPTAnimationCGFloatPeriod.h; sourceTree = ""; }; + C959756EBAA628D62D1DCA6FF2024331 /* CPTLimitBand.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = CPTLimitBand.m; path = framework/Source/CPTLimitBand.m; sourceTree = ""; }; + C97D902BBEFABF02CAD1A355714C8B11 /* EVDictionaryExtension.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = EVDictionaryExtension.swift; path = Source/EVDictionaryExtension.swift; sourceTree = ""; }; + CC866DE0D2CCFA452DF4D63B9EC0A6DB /* CPTAxisLabel.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = CPTAxisLabel.m; path = framework/Source/CPTAxisLabel.m; sourceTree = ""; }; + CE5BEDF1F981599AC796F2F0E9F83768 /* DFUExecutor.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = DFUExecutor.swift; path = iOSDFULibrary/Classes/Implementation/GenericDFU/DFUExecutor.swift; sourceTree = ""; }; + CF07642AC4F2D223ABAF25F6C41203B4 /* DFUPeripheralDelegate.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = DFUPeripheralDelegate.swift; path = iOSDFULibrary/Classes/Implementation/GenericDFU/DFUPeripheralDelegate.swift; sourceTree = ""; }; + CF2ED902DB6E40DEF2F55FBA15363A9C /* CorePlot-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "CorePlot-dummy.m"; sourceTree = ""; }; + D0B59A2FAD34AA880E8126FE21967381 /* CPTLineCap.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = CPTLineCap.m; path = framework/Source/CPTLineCap.m; sourceTree = ""; }; + D16D386919945B9124CBEC71749D5361 /* CPTPlotSpaceAnnotation.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = CPTPlotSpaceAnnotation.h; path = framework/Source/CPTPlotSpaceAnnotation.h; sourceTree = ""; }; + D207A8F275EB964371EC88258B56D8E1 /* CPTLegend.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = CPTLegend.m; path = framework/Source/CPTLegend.m; sourceTree = ""; }; + D34E7522D50CD4530972FA7EA7677BD0 /* CPTXYGraph.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = CPTXYGraph.m; path = framework/Source/CPTXYGraph.m; sourceTree = ""; }; + D35A3356C45382614797B199C9AAA588 /* CPTLimitBand.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = CPTLimitBand.h; path = framework/Source/CPTLimitBand.h; sourceTree = ""; }; + D3CF2FA44D6811A7223CBD044160BE70 /* DFUCharacteristic.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = DFUCharacteristic.swift; path = iOSDFULibrary/Classes/Implementation/GenericDFU/DFUCharacteristic.swift; sourceTree = ""; }; + D3E0AD84A6453CBA04AD56D40591FCFA /* CorePlot.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.module; path = CorePlot.modulemap; sourceTree = ""; }; + D41806467AA062627A1A552A2C981F9A /* CPTMutableTextStyle.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = CPTMutableTextStyle.m; path = framework/Source/CPTMutableTextStyle.m; sourceTree = ""; }; + D44D43948715E9265E61E2E03D006AD0 /* CPTCalendarFormatter.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = CPTCalendarFormatter.h; path = framework/Source/CPTCalendarFormatter.h; sourceTree = ""; }; + D46C439494C8055F2C2605950BA52058 /* NSDecimalNumberExtensions.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = NSDecimalNumberExtensions.m; path = framework/Source/NSDecimalNumberExtensions.m; sourceTree = ""; }; + D4CC8F8C9C9E0B83B1EC56F4E2D45DE3 /* _CPTAnimationCGSizePeriod.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = _CPTAnimationCGSizePeriod.h; path = framework/Source/_CPTAnimationCGSizePeriod.h; sourceTree = ""; }; + D5933C3AB00705BCD5CEF0FE0DFA6AF8 /* _CPTStocksTheme.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = _CPTStocksTheme.h; path = framework/Source/_CPTStocksTheme.h; sourceTree = ""; }; + D5E70C5AB487F5FE3F9AD8FFEBB8FD06 /* _CPTConstraintsFixed.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = _CPTConstraintsFixed.m; path = framework/Source/_CPTConstraintsFixed.m; sourceTree = ""; }; + D6F5AEFD88FCBE59799E37F6995BBE39 /* CPTTimeFormatter.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = CPTTimeFormatter.h; path = framework/Source/CPTTimeFormatter.h; sourceTree = ""; }; + D705862DF7BDFE69DF07BF527C353787 /* SWRevealViewController.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; name = SWRevealViewController.framework; path = SWRevealViewController.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + D73F1A64489E6D347FECD72C1FEEE781 /* CPTGradient.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = CPTGradient.h; path = framework/Source/CPTGradient.h; sourceTree = ""; }; + D83E7A851B4D2461B949EA4057F50564 /* CPTLayerAnnotation.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = CPTLayerAnnotation.h; path = framework/Source/CPTLayerAnnotation.h; sourceTree = ""; }; + D8F4366D24139769E28C6FB1B2F052AA /* CPTPlatformSpecificFunctions.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = CPTPlatformSpecificFunctions.m; path = framework/iPhoneOnly/CPTPlatformSpecificFunctions.m; sourceTree = ""; }; + D91F4E1C492FCA82BAE54CB965983835 /* CPTPlotArea.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = CPTPlotArea.m; path = framework/Source/CPTPlotArea.m; sourceTree = ""; }; + DA617D9A390F215101C113C4D5F41513 /* CPTMutableNumericData+TypeConversion.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "CPTMutableNumericData+TypeConversion.m"; path = "framework/Source/CPTMutableNumericData+TypeConversion.m"; sourceTree = ""; }; + DD76C1AD82D765998B02ADC7E821DC0B /* iOSDFULibrary.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = iOSDFULibrary.xcconfig; sourceTree = ""; }; + DEBAB5F2C86B3B40907FE57DCB139842 /* CPTNumericData+TypeConversion.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "CPTNumericData+TypeConversion.m"; path = "framework/Source/CPTNumericData+TypeConversion.m"; sourceTree = ""; }; + E0BA6191E11B5D9AE82B7B13979D2762 /* iOSDFULibrary-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "iOSDFULibrary-dummy.m"; sourceTree = ""; }; + E0DAD2C3E2CBE3351F43C17B38686910 /* CPTGridLines.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = CPTGridLines.m; path = framework/Source/CPTGridLines.m; sourceTree = ""; }; + E0E3A272314A617B56868E6BA59DD890 /* DFUUuidHelper.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = DFUUuidHelper.swift; path = iOSDFULibrary/Classes/Implementation/DFUUuidHelper.swift; sourceTree = ""; }; + E14449EC4F5654C18B06EB5175BF1441 /* CPTScatterPlot.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = CPTScatterPlot.h; path = framework/Source/CPTScatterPlot.h; sourceTree = ""; }; + E1943CDCB7EAA61EF3FC22D5BF2EFAC9 /* ConversionOptions.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ConversionOptions.swift; path = Source/ConversionOptions.swift; sourceTree = ""; }; + E39B1E3E136DAC949E34BDDAACA497FD /* DFUServiceInitiator.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = DFUServiceInitiator.swift; path = iOSDFULibrary/Classes/Implementation/DFUServiceInitiator.swift; sourceTree = ""; }; + E3C488E5A163B08C4E720BE883C94844 /* CPTMutableShadow.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = CPTMutableShadow.h; path = framework/Source/CPTMutableShadow.h; sourceTree = ""; }; + E66BA55B0F109EDEE181D5045BDB6665 /* CPTImage.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = CPTImage.m; path = framework/Source/CPTImage.m; sourceTree = ""; }; + E6B05DD37B5E93637E5D6B32496A9F12 /* CPTNumericData.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = CPTNumericData.h; path = framework/Source/CPTNumericData.h; sourceTree = ""; }; + E777BF5FBCD997185E2682D472EABB41 /* UIKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = UIKit.framework; path = Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS12.2.sdk/System/Library/Frameworks/UIKit.framework; sourceTree = DEVELOPER_DIR; }; + E851BB8E7EC637882B933536F1848FAE /* iOSDFULibrary-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "iOSDFULibrary-prefix.pch"; sourceTree = ""; }; + E8EEBDE9FA0D71E757B728068B8CB2BD /* CPTMutableLineStyle.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = CPTMutableLineStyle.h; path = framework/Source/CPTMutableLineStyle.h; sourceTree = ""; }; + EB13382AFFB572426135C29035BC3E83 /* CPTXYGraph.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = CPTXYGraph.h; path = framework/Source/CPTXYGraph.h; sourceTree = ""; }; + EB5186FAAA3115AB04629DD56B8F1C8C /* EVWorkaroundHelpers.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = EVWorkaroundHelpers.swift; path = Source/EVWorkaroundHelpers.swift; sourceTree = ""; }; + EC5C6EED98E775723CF84FE40850B17A /* Zip-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "Zip-dummy.m"; sourceTree = ""; }; + EC9F280F4866B51E2B8470C3E67E1F56 /* _CPTConstraintsRelative.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = _CPTConstraintsRelative.h; path = framework/Source/_CPTConstraintsRelative.h; sourceTree = ""; }; + ED34E3D475C4D6F24FF2EE51A87DC858 /* CPTCalendarFormatter.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = CPTCalendarFormatter.m; path = framework/Source/CPTCalendarFormatter.m; sourceTree = ""; }; + EDA1D6CD2E6009186FA316DAEB137B9C /* CPTScatterPlot.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = CPTScatterPlot.m; path = framework/Source/CPTScatterPlot.m; sourceTree = ""; }; + EDCEBBC17C72BF4E59A25438100C9326 /* Zip.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Zip.swift; path = Zip/Zip.swift; sourceTree = ""; }; + EE378EDE41682BA0FF6E5C946FFB936B /* CPTMutableNumericData.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = CPTMutableNumericData.h; path = framework/Source/CPTMutableNumericData.h; sourceTree = ""; }; + EE85C48A754EC2C3679A0FE474F3772D /* CoreGraphics.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreGraphics.framework; path = Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS12.2.sdk/System/Library/Frameworks/CoreGraphics.framework; sourceTree = DEVELOPER_DIR; }; + EEC44B6BECF1F272C66C329F8C1AB018 /* iOSDFULibrary.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; name = iOSDFULibrary.framework; path = iOSDFULibrary.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + EED13EF94EA85A952C774C92D36A2DC3 /* EVReflection.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; name = EVReflection.framework; path = EVReflection.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + EEF2B4803AC8391D9B9CD9B05DFC97E0 /* _CPTFillImage.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = _CPTFillImage.m; path = framework/Source/_CPTFillImage.m; sourceTree = ""; }; + EEFFCD3836E3779C8A22C40B94C6F968 /* _CPTAnimationCGFloatPeriod.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = _CPTAnimationCGFloatPeriod.m; path = framework/Source/_CPTAnimationCGFloatPeriod.m; sourceTree = ""; }; + EF8C06CD7D8C3E543E472FF28F341172 /* Pods-nRF Toolbox.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.module; path = "Pods-nRF Toolbox.modulemap"; sourceTree = ""; }; + F04E1033ADE8E7C797B05895510B2143 /* IntelHex2BinConverter.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = IntelHex2BinConverter.h; path = iOSDFULibrary/Classes/Utilities/HexToBinConverter/IntelHex2BinConverter.h; sourceTree = ""; }; + F0CD8A822C91B05C23D4D35D5293CBBC /* EVReflection-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "EVReflection-prefix.pch"; sourceTree = ""; }; + F200CAB5549D3BCDBBE500594C6CB31B /* SecureDFUService.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = SecureDFUService.swift; path = iOSDFULibrary/Classes/Implementation/SecureDFU/Services/SecureDFUService.swift; sourceTree = ""; }; + F2993974D1806BDE6EE86D7AB9CCE9F4 /* CPTXYAxis.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = CPTXYAxis.m; path = framework/Source/CPTXYAxis.m; sourceTree = ""; }; + F2A0635F7E709D8341A4CAC0C166C239 /* CPTPlotAreaFrame.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = CPTPlotAreaFrame.m; path = framework/Source/CPTPlotAreaFrame.m; sourceTree = ""; }; + F2F985525A3595CF1F934926057AAB53 /* _CPTDarkGradientTheme.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = _CPTDarkGradientTheme.h; path = framework/Source/_CPTDarkGradientTheme.h; sourceTree = ""; }; + F3ACB46F6517B885BE59045B5426CD6E /* CPTTradingRangePlot.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = CPTTradingRangePlot.m; path = framework/Source/CPTTradingRangePlot.m; sourceTree = ""; }; + F450F578C9AD6A71A840D2FD318F9A63 /* CPTAxisSet.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = CPTAxisSet.h; path = framework/Source/CPTAxisSet.h; sourceTree = ""; }; + F4D1A48769BB272FA90CA28696A3B2D9 /* _CPTDarkGradientTheme.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = _CPTDarkGradientTheme.m; path = framework/Source/_CPTDarkGradientTheme.m; sourceTree = ""; }; + F4F68A3FB6DD63A67E9A685AC9025833 /* CPTMutableNumericData+TypeConversion.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "CPTMutableNumericData+TypeConversion.h"; path = "framework/Source/CPTMutableNumericData+TypeConversion.h"; sourceTree = ""; }; + F56BC963D4231917FFB09A987849891A /* CPTPlatformSpecificDefines.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = CPTPlatformSpecificDefines.m; path = framework/iPhoneOnly/CPTPlatformSpecificDefines.m; sourceTree = ""; }; + F5E3F589FCD3E4EA0FB2568E7A1F6345 /* CPTAxisSet.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = CPTAxisSet.m; path = framework/Source/CPTAxisSet.m; sourceTree = ""; }; + F5E9E3168833BD0FC0FF6D3D08960627 /* Pods-nRF Toolbox.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-nRF Toolbox.release.xcconfig"; sourceTree = ""; }; + F6A01659C8D84A963BF5FC46EA155FE0 /* CPTPlotRange.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = CPTPlotRange.h; path = framework/Source/CPTPlotRange.h; sourceTree = ""; }; + F714C8473E010189534420C06A374775 /* CPTAxisTitle.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = CPTAxisTitle.m; path = framework/Source/CPTAxisTitle.m; sourceTree = ""; }; + F73A9476901835F5CF7CDA507BA97D6E /* CPTGraph.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = CPTGraph.h; path = framework/Source/CPTGraph.h; sourceTree = ""; }; + F7622C73911718EB763779A4887AFE22 /* CPTPlatformSpecificCategories.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = CPTPlatformSpecificCategories.h; path = framework/iPhoneOnly/CPTPlatformSpecificCategories.h; sourceTree = ""; }; + F7BD4121FC884A38FE05CDAA367840BB /* CPTAnimationPeriod.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = CPTAnimationPeriod.m; path = framework/Source/CPTAnimationPeriod.m; sourceTree = ""; }; + F832A621BC52363998D8DAB2383A5499 /* _CPTAnimationNSNumberPeriod.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = _CPTAnimationNSNumberPeriod.m; path = framework/Source/_CPTAnimationNSNumberPeriod.m; sourceTree = ""; }; + F973863539EF266BB135D58F5318B5DC /* _CPTFillColor.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = _CPTFillColor.m; path = framework/Source/_CPTFillColor.m; sourceTree = ""; }; + FBD54C61E2F4FE6C22AC0E6F8EC7C985 /* CPTXYPlotSpace.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = CPTXYPlotSpace.m; path = framework/Source/CPTXYPlotSpace.m; sourceTree = ""; }; + FC235CC0A6A86803A31AB71A41837182 /* CPTColor.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = CPTColor.h; path = framework/Source/CPTColor.h; sourceTree = ""; }; + FD43A283C042C2BA8DA561C4D178AE72 /* ioapi.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = ioapi.h; path = Zip/minizip/ioapi.h; sourceTree = ""; }; + FDFB53CACDD03676007E8B7A24A31EE6 /* CPTAxisLabelGroup.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = CPTAxisLabelGroup.h; path = framework/Source/CPTAxisLabelGroup.h; sourceTree = ""; }; + FE481195BBEC966BD4EDBA79A874DB24 /* CPTPlotArea.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = CPTPlotArea.h; path = framework/Source/CPTPlotArea.h; sourceTree = ""; }; + FF402165C4FBBA36ECBD9BE98F926FEB /* crc32.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = crc32.swift; path = iOSDFULibrary/Classes/Utilities/crc32.swift; sourceTree = ""; }; /* End PBXFileReference section */ /* Begin PBXFrameworksBuildPhase section */ - 123581EDC71E5741F757DFAAF01C5C86 /* Frameworks */ = { + 2185653F9D7919639142321B99613A5D /* Frameworks */ = { isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - E65C70C6880EF2F2E4CA2895F6577EB1 /* Foundation.framework in Frameworks */, + 12326861EB520360D1301D8B57B29D54 /* Foundation.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; - 20A8F4E52B0A7CF7DEB18F3BEDD6D9B9 /* Frameworks */ = { + 6CCCA96589DC05D10202796A9F61C23C /* Frameworks */ = { isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - E8BEB53CF91894673021B647B3E11BC6 /* Accelerate.framework in Frameworks */, - 23592A09B52B171715C0CD8A69A02868 /* Foundation.framework in Frameworks */, - 9AEE5393D1B12897A85DBFA45B24C717 /* QuartzCore.framework in Frameworks */, - 25A531EF9D487F80A7C05688B40C789E /* UIKit.framework in Frameworks */, + 8EEAE8EF4E2353E6BBFFD2C93F417869 /* CoreGraphics.framework in Frameworks */, + A2BFC084DE1E5BE63C94E50855D81639 /* Foundation.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; - 376FD61CB1BF3B79721A2D162EEB873D /* Frameworks */ = { + 91722B6B3817647F63BAF856095879D3 /* Frameworks */ = { isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - 01483794EBEE28D9AFB0DB92BB971A33 /* CoreGraphics.framework in Frameworks */, - 1E0F242AE596CBE66A17E3B54DDF203E /* Foundation.framework in Frameworks */, + 971F412F7B9FFE6F6ED33B4852365A9F /* Foundation.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; - 65256EE91631C3389C32CF9A5C33BFE0 /* Frameworks */ = { + F4D1BE0F5683930F83EFF0126BA0AFD7 /* Frameworks */ = { isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - 2BC0E3B02A97718ADD90B5248C94D71C /* Foundation.framework in Frameworks */, + 3268BF9F05C6312543CC2F943CB769B7 /* Foundation.framework in Frameworks */, + 3FF4C827CE6457107B017249FC0405F2 /* Zip.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; - 8F673A7F08D72EFF1E54E4AD0AF35D65 /* Frameworks */ = { + F90AC72F9597130E89A0284B34B2E032 /* Frameworks */ = { isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - 466513C00304341315AE13FC6D62F9D5 /* Foundation.framework in Frameworks */, + A3A11E5F6B99A1BA51FA7CE605694E6A /* Foundation.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; - BE8062B1EA73C0788A77D1BEC88A5112 /* Frameworks */ = { + F938631F1E3CA197A40C5DCFD5FDF58F /* Frameworks */ = { isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - 69552472DBFDD7697E0FD99BD398A44E /* Foundation.framework in Frameworks */, - DC5F430689C54F8E1FEA311572696A25 /* Zip.framework in Frameworks */, + 16F5200B27FEE5BA5507FCFFE2936929 /* Accelerate.framework in Frameworks */, + 831218419E157B0656EEAEE7E05F95A7 /* Foundation.framework in Frameworks */, + 7062B3CE207688F49248363AD1B2B6CA /* QuartzCore.framework in Frameworks */, + 9C826275607E748FB9AE1A9EC7200BF1 /* UIKit.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; /* End PBXFrameworksBuildPhase section */ /* Begin PBXGroup section */ - 1A244E862BFC2E2A86E3CEB2A3C6A935 /* Zip */ = { + 0468B2E2E25A3ABB599648533D6D0D9B /* Support Files */ = { isa = PBXGroup; children = ( - 9B8B25B5F8B8CA97BDF0E46D2E03453D /* crypt.h */, - 47BDB648371F10E45F2A802FE9B97F19 /* ioapi.c */, - 9EB8DD8CAAE195866543691172A6DB89 /* ioapi.h */, - 3EED4DB70B2DBAE5C247411689BDCFD7 /* QuickZip.swift */, - 1635D42003AE224BD21E4D0B64E8F250 /* unzip.c */, - 615248D32FD5392DC5FB0FED4F7E3AC8 /* unzip.h */, - 48F4C8068CDEEB4CE29FAF128C2DB83F /* zip.c */, - EDEF8371FA1E73FBB8C6DB0CA136CD43 /* zip.h */, - E80A6ADCE4F0CC11DF9B94C0ACCDF6A1 /* Zip.h */, - 662DCD750457BC3F0BDF093E16B3BD6B /* Zip.swift */, - 2353E2527AC3A8A028AFF3E85EF5D436 /* ZipUtilities.swift */, - 2E74DF4686B095BE4D8F5F65359EB985 /* Support Files */, + BA140C07AABC009860655D5CC09537C4 /* SWRevealViewController.modulemap */, + 08358DE9FE6882179782223CDA627495 /* SWRevealViewController.xcconfig */, + 6C669B23222391549C6BA8BA6E730622 /* SWRevealViewController-dummy.m */, + 4B901952AC1878518A0A624660E01C9B /* SWRevealViewController-Info.plist */, + 82D34D4CA00484A6964231C89220CA0D /* SWRevealViewController-prefix.pch */, + 4C6A232B27F67300059A8F69A973051F /* SWRevealViewController-umbrella.h */, ); - name = Zip; - path = Zip; + name = "Support Files"; + path = "../Target Support Files/SWRevealViewController"; sourceTree = ""; }; - 2DE5FF974F83EAD0E3A5672D20259E2F /* SWRevealViewController */ = { + 0C778B4D0F59281281D7223E278D9AAD /* Support Files */ = { isa = PBXGroup; children = ( - 52D61377318370922136D8AAE1247591 /* SWRevealViewController.h */, - 52403B92288EE4903900E6AA3DDCA860 /* SWRevealViewController.m */, - A40EAE8DF65FEBD347D582614902E8CC /* Support Files */, + D3E0AD84A6453CBA04AD56D40591FCFA /* CorePlot.modulemap */, + 78C37DAB61FA4B35BB3B29F46EED6CAB /* CorePlot.xcconfig */, + CF2ED902DB6E40DEF2F55FBA15363A9C /* CorePlot-dummy.m */, + 976F7482837C260F318D68EDFB56570B /* CorePlot-Info.plist */, + 61F414135FAD6632D1A7EDF7B101AD3F /* CorePlot-prefix.pch */, + AFBAE8E26E7323795D42511DE089B63F /* CorePlot-umbrella.h */, ); - name = SWRevealViewController; - path = SWRevealViewController; + name = "Support Files"; + path = "../Target Support Files/CorePlot"; sourceTree = ""; }; - 2E74DF4686B095BE4D8F5F65359EB985 /* Support Files */ = { + 3E37AA318CEF519886B41405EB039795 /* Support Files */ = { isa = PBXGroup; children = ( - 8C98EF3C833BF256324D0D2BCA03A948 /* Info.plist */, - 442EE2E01E447EB20081B69CE759D696 /* Zip.modulemap */, - 1B002F085ACC87BC6C39E4F132821927 /* Zip.xcconfig */, - 20BF680002EFACC0138C71FB0D286AFD /* Zip-dummy.m */, - DD8D4E0F9B7EB70030D1EE95DEBAE326 /* Zip-prefix.pch */, - 360F45BE31F12CB1180332E11114CD98 /* Zip-umbrella.h */, + 1D991570DFA0DB8FBCCDC7474FB6D467 /* iOSDFULibrary.modulemap */, + DD76C1AD82D765998B02ADC7E821DC0B /* iOSDFULibrary.xcconfig */, + E0BA6191E11B5D9AE82B7B13979D2762 /* iOSDFULibrary-dummy.m */, + AAF8FC6AC45D5B1F69468E07CB762415 /* iOSDFULibrary-Info.plist */, + E851BB8E7EC637882B933536F1848FAE /* iOSDFULibrary-prefix.pch */, + 4611B554E0815F8D5761A40A7478E78D /* iOSDFULibrary-umbrella.h */, ); name = "Support Files"; - path = "../Target Support Files/Zip"; + path = "../Target Support Files/iOSDFULibrary"; sourceTree = ""; }; - 3E9F4CDE477C58BA7042A0E44947CD7E /* iOSDFULibrary */ = { + 5AAF81E1E49F1213D79840D07EE02F7B /* iOSDFULibrary */ = { isa = PBXGroup; children = ( - D3FEA9638AD8BDF896293BD6DB669570 /* ButtonlessDFU.swift */, - 2B0A5CCB5A334BDEDF3DFD3814692E44 /* crc32.swift */, - 31EBA5A262544BDA95070118D0C1BC97 /* Data.swift */, - 4A43D7C0AEE6456E658832BCE6E9BD34 /* DFUController.swift */, - 7BD1311ACCBD361B3A01339147B0FBD2 /* DFUControlPoint.swift */, - A299E5B3FD078790EAF1B79DF37F79D6 /* DFUExecutor.swift */, - 50A7C21D4FADD23803F6EBC3DCC72F3E /* DFUFirmware.swift */, - 1B0C80CE53494F1FE8EAD9E6E0620E3A /* DFUPacket.swift */, - F3E3D82CC3AC1B3579BF9C36F87AFB7D /* DFUPeripheral.swift */, - ABF789C7DA5F63F2B505B670256264BA /* DFUPeripheralDelegate.swift */, - 794612BC264847CE4C66C1308A3F8D1C /* DFUPeripheralSelector.swift */, - 833EAF7D8B0B09077B01CBAE2D75F6CA /* DFUPeripheralSelectorDelegate.swift */, - B3AA3EACAD8852DC572C90305723E348 /* DFUService.swift */, - 3E46F45F93400A0362D0BF4637EC7BDA /* DFUServiceController.swift */, - D8D839419A767861651100DF16653144 /* DFUServiceDelegate.swift */, - 2E1E890C8A8BD54582AE5D3759AF0305 /* DFUServiceInitiator.swift */, - 0BF7BD7CDB130A2246433673E8C1F4F8 /* DFUServiceSelector.swift */, - 71811E5F3323ADD6DA844410A8AB5E31 /* DFUStarterPeripheral.swift */, - 34C7BE4D2239B2C90F9D7C620EE7CB7F /* DFUStream.swift */, - DA40B0DE746D9BCB22290DA8C18CEABA /* DFUStreamBin.swift */, - 3D3B6255A67086BA1AA4874F91077236 /* DFUStreamHex.swift */, - 68D9606866B3357F259AF598B91AE39B /* DFUStreamZip.swift */, - A695BEBC7E222F74AD60DE62192A7A99 /* DFUVersion.swift */, - 7E27D763BB2BD9E68CB1E57AB91E0492 /* Double.swift */, - 55965B8281A596C4FBE368E567E64D52 /* IntelHex2BinConverter.h */, - E4AC71FB28F1A869549F06217EA412D3 /* IntelHex2BinConverter.m */, - 6B0DE1BB742860945476B2692CE95A6D /* LegacyDFUExecutor.swift */, - C2730A974569CFAD198FE2FEFB095BAF /* LegacyDFUPeripheral.swift */, - C15B782740FCE18847DA123B721E0B45 /* LegacyDFUPeripheralDelegate.swift */, - 543F7AF699868A1992CD72B591765B36 /* LegacyDFUService.swift */, - BC54BF7F8CD95C66516A7527318E4850 /* LegacyDFUServiceInitiator.swift */, - E5C975DA139B1FE7AB941377FAB9FFDF /* LoggerDelegate.swift */, - 3EC5E11DCF82A98DC43B28C1EC9A324D /* LoggerHelper.swift */, - 98E3E676A1625063C10DED770DA46A13 /* Manifest.swift */, - 12D6B974C8AA758142A00E9CDFDA8C97 /* ManifestFirmwareInfo.swift */, - 07457F3B644DD80C3D71E156F2B4158C /* SecureDFUControlPoint.swift */, - FF0B8EE77830E3DA582D1FAD0D5E00A3 /* SecureDFUExecutor.swift */, - B23AAA92E7268F534F467A2284ABE722 /* SecureDFUPacket.swift */, - 0932D6DE45C05F21ABEC073A1C7B9208 /* SecureDFUPeripheral.swift */, - 23BF389BE0B2A0B0A1E567267B64F034 /* SecureDFUPeripheralDelegate.swift */, - A57F64AA709509A7083E8EDA7F1642C2 /* SecureDFUService.swift */, - 04CA43EC6B2FEB1D1482002AF5201B9A /* SecureDFUServiceInitiator.swift */, - 32B65E72CC25A359844CBC128F4A9CB4 /* SoftdeviceBootloaderInfo.swift */, - 12D492EB3D08ABF0C6940567F1A2E785 /* ZipArchive.swift */, - 785347709CBD78A0660166D8318E1A52 /* Support Files */, + 57645843397853E64AC81B57A20A15E1 /* ButtonlessDFU.swift */, + FF402165C4FBBA36ECBD9BE98F926FEB /* crc32.swift */, + 769B4833399403E89E2EC54AD238DEC6 /* Data.swift */, + D3CF2FA44D6811A7223CBD044160BE70 /* DFUCharacteristic.swift */, + C6B8ACD1E7A6D015477188328F846957 /* DFUController.swift */, + 328ED62BA6EA0DE736C32C6304B0870E /* DFUControlPoint.swift */, + CE5BEDF1F981599AC796F2F0E9F83768 /* DFUExecutor.swift */, + 85A35F3554D002BACAAB0D43BF98BA43 /* DFUFirmware.swift */, + 0A5003600A730601AD45F37F9384F6BD /* DFUPacket.swift */, + 22A6116E850EFC3BFA4D3FB7DF9FFF3E /* DFUPeripheral.swift */, + CF07642AC4F2D223ABAF25F6C41203B4 /* DFUPeripheralDelegate.swift */, + B163AE26D04356853DFEC9FFFFB5A30F /* DFUPeripheralSelector.swift */, + 5F7A6D68E1BE451DCF7937AAF0B76E4F /* DFUPeripheralSelectorDelegate.swift */, + 59736EDE93692D255D3AD0ED7E08247F /* DFUService.swift */, + 2A2794D24ADE5DDEAEC3676A6C291113 /* DFUServiceController.swift */, + 200E020B58CC09F63B87DDCA3072BFA1 /* DFUServiceDelegate.swift */, + E39B1E3E136DAC949E34BDDAACA497FD /* DFUServiceInitiator.swift */, + B1301042B3886FE84C9D0352B6C8DD82 /* DFUServiceSelector.swift */, + 2705106D0EAF1B2834FDDF404665ADE8 /* DFUStarterPeripheral.swift */, + 4F8729FDE3EA19A0692D4ECC01E2FEB2 /* DFUStream.swift */, + 8CECC40844BED2975CE49BB924656617 /* DFUStreamBin.swift */, + 79AE50316FB672C09AFA8B1222881A09 /* DFUStreamHex.swift */, + 84AFC8DBC35D5137BB04BE5C914DFF30 /* DFUStreamZip.swift */, + E0E3A272314A617B56868E6BA59DD890 /* DFUUuidHelper.swift */, + 9CF334BDA4DA39EB2503FCA3C3322051 /* DFUVersion.swift */, + 4AB713F55C791BFFA30584FE81809050 /* Double.swift */, + F04E1033ADE8E7C797B05895510B2143 /* IntelHex2BinConverter.h */, + 9A74EFE91B48135D44F256FC2B61F62E /* IntelHex2BinConverter.m */, + C0C1E6757F17C2B165C659D07D595738 /* LegacyDFUExecutor.swift */, + 605B2E2C87FDDACD1CBD260606FA780E /* LegacyDFUPeripheral.swift */, + 836B45DEF4C40C97F5963F77CF02784C /* LegacyDFUPeripheralDelegate.swift */, + 4D2268C3F404244F4DE7E49C28DFEB30 /* LegacyDFUService.swift */, + 457F79841F01CCF3C6B65CFF09CFB25F /* LegacyDFUServiceInitiator.swift */, + 168F025FE1C07EEE7DDD83B7AAE0ABFD /* LoggerDelegate.swift */, + 6374C24FCE6EC5E0105AAB9A81B7FC9D /* LoggerHelper.swift */, + C136228987C818CD7FA05E75A9E49209 /* Manifest.swift */, + 79DE6322CD81E12269635433A608B64F /* ManifestFirmwareInfo.swift */, + 16C7D476482E54D2CD4E620ECDDBB2B1 /* SecureDFUControlPoint.swift */, + 05A2272C079071703F09729BA6DB6481 /* SecureDFUExecutor.swift */, + 470B153C071A2C2893A779B04D39A4BF /* SecureDFUPacket.swift */, + 1D305DBD844A36C35B75D196BB3FE046 /* SecureDFUPeripheral.swift */, + 20C4BF7CDCB7A6CE73BB38891BA18142 /* SecureDFUPeripheralDelegate.swift */, + F200CAB5549D3BCDBBE500594C6CB31B /* SecureDFUService.swift */, + 83891E946E8924F14C30A325C7C6B594 /* SecureDFUServiceInitiator.swift */, + 059C27C4C691F323C9B9318EAD268F65 /* SoftdeviceBootloaderInfo.swift */, + 9D3102F3680BC7EE5762BAAF4AFF1D81 /* ZipArchive.swift */, + 3E37AA318CEF519886B41405EB039795 /* Support Files */, ); name = iOSDFULibrary; path = iOSDFULibrary; sourceTree = ""; }; - 5D4F02DA223D65A8FAC6FCB7E00144A9 /* Pods */ = { + 6169AC5B117EC10788FD71AF284A35E0 /* Core */ = { isa = PBXGroup; children = ( - B05FFFB0E27FAAF79DC875ACC03789E1 /* CorePlot */, - 8853254E0F24E77973ED03551FE008D0 /* EVReflection */, - 3E9F4CDE477C58BA7042A0E44947CD7E /* iOSDFULibrary */, - 2DE5FF974F83EAD0E3A5672D20259E2F /* SWRevealViewController */, - 1A244E862BFC2E2A86E3CEB2A3C6A935 /* Zip */, + E1943CDCB7EAA61EF3FC22D5BF2EFAC9 /* ConversionOptions.swift */, + 4F7BB9517690790869970006D1D2F959 /* DeserializationStatus.swift */, + 3E2D90652F267ADD99B873DB31966B93 /* EVArrayExtension.swift */, + 1E64FCD0794C777EBB280C34A062AC8B /* EVCustomReflectable.swift */, + C97D902BBEFABF02CAD1A355714C8B11 /* EVDictionaryExtension.swift */, + 2654B16FA44715EA1F4FF96002F77E2D /* EVObject.swift */, + BEFCA1F3C7043344BC6A29D15A495E56 /* EVReflectable.swift */, + B840EEE40EC4A37C00EF6A82C07C7E7D /* EVReflection.swift */, + EB5186FAAA3115AB04629DD56B8F1C8C /* EVWorkaroundHelpers.swift */, + 6E1829C9308E6D43A6BF5E8CFDA51AC9 /* PrintOptions.swift */, ); - name = Pods; + name = Core; sourceTree = ""; }; - 67E0068FE1DEF0B739D5999CAE660558 /* Core */ = { + 9165D629314EE436A00C5A847056FAAB /* Targets Support Files */ = { isa = PBXGroup; children = ( - 4C015E2662187942B9FDE8B202CFEC76 /* ConversionOptions.swift */, - 80EE680976B213E3CA8F7810DA44D63A /* DeserializationStatus.swift */, - C4C51D99AF1C2BCFD711B87A36F108B8 /* EVArrayExtension.swift */, - 1C2A52058F8DCB581C4FECF3A39D1946 /* EVDictionaryExtension.swift */, - BA92F9CDFB6473B585521493EC2FD673 /* EVObject.swift */, - 01BC86489992FBB6441003ED71B6B771 /* EVReflectable.swift */, - B6E6109B3FC540C0E500EF1EF5BB32A2 /* EVReflection.swift */, - 9361E4A9E4A64C40C29FEA9DE3E833B9 /* EVWorkaroundHelpers.swift */, - 521CDA06FF7B98E4D527F98E4B6D9EE1 /* PrintOptions.swift */, + ED91A6B292850C8FEC4628659817FA2D /* Pods-nRF Toolbox */, ); - name = Core; + name = "Targets Support Files"; sourceTree = ""; }; - 785347709CBD78A0660166D8318E1A52 /* Support Files */ = { + 9C4A81A27D8A04C074B929DD1108364B /* iOS */ = { isa = PBXGroup; children = ( - 3930BE842D20D5E502F96E11F3836317 /* Info.plist */, - 3599A78B7F7E04362BB0B287350A4859 /* iOSDFULibrary.modulemap */, - 0466F9A1C548F6DE3326942F91E277FF /* iOSDFULibrary.xcconfig */, - 96B79BCFE06CCEE5E53CE01A082E5CAE /* iOSDFULibrary-dummy.m */, - 7DDF771AB3E34B93C88D9DFEE3B12988 /* iOSDFULibrary-prefix.pch */, - CA5A4334CABF7459831D2ECF25060EE1 /* iOSDFULibrary-umbrella.h */, + 44F45FAE950D7585A5A5C0BCA53DDF85 /* Accelerate.framework */, + EE85C48A754EC2C3679A0FE474F3772D /* CoreGraphics.framework */, + A58B1A53B5F65ED30D565676501B8C30 /* Foundation.framework */, + 0EA11E9847BE4043445EFFCF0B17BD77 /* QuartzCore.framework */, + E777BF5FBCD997185E2682D472EABB41 /* UIKit.framework */, ); - name = "Support Files"; - path = "../Target Support Files/iOSDFULibrary"; + name = iOS; sourceTree = ""; }; - 7DB346D0F39D3F0E887471402A8071AB = { + 9EEA4890D7A95DA01425F15BBAFC086F /* EVReflection */ = { isa = PBXGroup; children = ( - 93A4A3777CF96A4AAC1D13BA6DCCEA73 /* Podfile */, - FBEFA15BC364E12C67576F8551BD1C4C /* Frameworks */, - 5D4F02DA223D65A8FAC6FCB7E00144A9 /* Pods */, - F72F40BA072DA2728B1CB87C330DF935 /* Products */, - D83D4205F82F6CB918C94C80BADC259B /* Targets Support Files */, + 6169AC5B117EC10788FD71AF284A35E0 /* Core */, + A7199F1426289635DC4EA5A18A214755 /* Support Files */, ); + name = EVReflection; + path = EVReflection; sourceTree = ""; }; - 8853254E0F24E77973ED03551FE008D0 /* EVReflection */ = { + A7199F1426289635DC4EA5A18A214755 /* Support Files */ = { isa = PBXGroup; children = ( - 67E0068FE1DEF0B739D5999CAE660558 /* Core */, - DE2928C48E66EEB39EA45A389D60E82A /* Support Files */, + 3F3E894A6A3D64676AE277D334728DFB /* EVReflection.modulemap */, + ADA75779A99B6A079A6ACF8078B61ADD /* EVReflection.xcconfig */, + 459C421D92984822AF154227D1E27564 /* EVReflection-dummy.m */, + 28F96E83275CCF61098967AC54A607C0 /* EVReflection-Info.plist */, + F0CD8A822C91B05C23D4D35D5293CBBC /* EVReflection-prefix.pch */, + 80DEDD9B09435A335D8444AAF27B819F /* EVReflection-umbrella.h */, ); - name = EVReflection; - path = EVReflection; + name = "Support Files"; + path = "../Target Support Files/EVReflection"; sourceTree = ""; }; - 93CF55960D0C5EEEDE154CBC6CDDEA1E /* Pods-nRF Toolbox */ = { + AB90CA9BA31130F8102115ECA3B65529 /* CorePlot */ = { isa = PBXGroup; children = ( - 6AB78EFAB690D0A34E4CB876A2675EDD /* Info.plist */, - A8844E2127D15B1C50F470A4E8A13F41 /* Pods-nRF Toolbox.modulemap */, - AFF8F0E9517C4F6A507FF0AC2E80F97D /* Pods-nRF Toolbox-acknowledgements.markdown */, - F9C82F8E34D88A8CAA67A67FFB4237D5 /* Pods-nRF Toolbox-acknowledgements.plist */, - FE47FABCC71708B357D64D6D614EEA3C /* Pods-nRF Toolbox-dummy.m */, - 8A0FF68CEC90075AB4F6E29B3D430454 /* Pods-nRF Toolbox-frameworks.sh */, - 72DC628F292631744633B0CCBC73410B /* Pods-nRF Toolbox-resources.sh */, - 3C2442935EDC2E4828743FDB625FEE07 /* Pods-nRF Toolbox-umbrella.h */, - E698027A59B23BA2305169F210A02034 /* Pods-nRF Toolbox.debug.xcconfig */, - CC91A00BE759B1D2FD29588305618958 /* Pods-nRF Toolbox.release.xcconfig */, + C77F0B7E8BCD7BA131EAE3CD9DCF30CC /* _CPTAnimationCGFloatPeriod.h */, + EEFFCD3836E3779C8A22C40B94C6F968 /* _CPTAnimationCGFloatPeriod.m */, + BB82B7CF2FD1849BCE9AD5913C917418 /* _CPTAnimationCGPointPeriod.h */, + 686D7767A47D5ED6439F8488315FF8F0 /* _CPTAnimationCGPointPeriod.m */, + A44E5C2999B06B7ACAC42ADF0D31790B /* _CPTAnimationCGRectPeriod.h */, + 933E393F7D69FEF615A9EE73198C6174 /* _CPTAnimationCGRectPeriod.m */, + D4CC8F8C9C9E0B83B1EC56F4E2D45DE3 /* _CPTAnimationCGSizePeriod.h */, + 9D2891B32A74354DF4544BEA81B52BCB /* _CPTAnimationCGSizePeriod.m */, + 1312DDB7428ACA18D721DE5F63E1C456 /* _CPTAnimationNSDecimalPeriod.h */, + C68B5974DBCBFCF459FBA120D0FF597B /* _CPTAnimationNSDecimalPeriod.m */, + 849B5F848A1D85E5DA37D858621FB7A5 /* _CPTAnimationNSNumberPeriod.h */, + F832A621BC52363998D8DAB2383A5499 /* _CPTAnimationNSNumberPeriod.m */, + 9FC6B2457AC5A632973EA45D6A5954CB /* _CPTAnimationPlotRangePeriod.h */, + 5FDD12867EFCBD2F3496D2A15F9119E9 /* _CPTAnimationPlotRangePeriod.m */, + 2A47FFB56B51592AA8FDBA6963353BE1 /* _CPTAnimationTimingFunctions.h */, + 40B884019E926B529517AB24EA6C5CE7 /* _CPTAnimationTimingFunctions.m */, + 015F5BDEBC2DCFE270E670F01AC06DE1 /* _CPTBorderLayer.h */, + 366446A57326AAAE419063593757F8B1 /* _CPTBorderLayer.m */, + 2AED89F44BE1948D3DCBE6BD2B2589D9 /* _CPTConstraintsFixed.h */, + D5E70C5AB487F5FE3F9AD8FFEBB8FD06 /* _CPTConstraintsFixed.m */, + EC9F280F4866B51E2B8470C3E67E1F56 /* _CPTConstraintsRelative.h */, + 1BED2567BB1FF5DA427DDE282910C2A8 /* _CPTConstraintsRelative.m */, + F2F985525A3595CF1F934926057AAB53 /* _CPTDarkGradientTheme.h */, + F4D1A48769BB272FA90CA28696A3B2D9 /* _CPTDarkGradientTheme.m */, + AA38A1B93D2BDE61B2AD3E9EDD8FFC2B /* _CPTFillColor.h */, + F973863539EF266BB135D58F5318B5DC /* _CPTFillColor.m */, + 02041B1CDBEDAD0D7078735B66331C2E /* _CPTFillGradient.h */, + 342CB39929F987A143CEA0C6C4D474FE /* _CPTFillGradient.m */, + B517BD7C3A4409B4326EDC1B8EA187FE /* _CPTFillImage.h */, + EEF2B4803AC8391D9B9CD9B05DFC97E0 /* _CPTFillImage.m */, + 762532946A12D76E977437E56B016D0D /* _CPTMaskLayer.h */, + 8E811970F5C8649EC24BCD651A42F94F /* _CPTMaskLayer.m */, + 92A2207EDE796C4E708ED178D9403C3A /* _CPTPlainBlackTheme.h */, + 4E282219FF47440EE82EE04AB536A418 /* _CPTPlainBlackTheme.m */, + 84DE8AEF525904103B5150FA2D25AA64 /* _CPTPlainWhiteTheme.h */, + 6177402B44EB3A8C0A6554016F655334 /* _CPTPlainWhiteTheme.m */, + AC81BED281DE1C953EB3FEFC02A997D8 /* _CPTSlateTheme.h */, + 4C710F11EC297E716483C666611FD3C2 /* _CPTSlateTheme.m */, + D5933C3AB00705BCD5CEF0FE0DFA6AF8 /* _CPTStocksTheme.h */, + B902DA3CC399D633509FB5B3ABF733FC /* _CPTStocksTheme.m */, + 270671B3613A8361100B6555CE2EE114 /* _CPTXYTheme.h */, + 67B15D5F3AB14B5B06896AA9F4CA76E9 /* _CPTXYTheme.m */, + 781712DA6AD7C9BF6BADC2DE52863799 /* CorePlot.h */, + 69EB917D9A3E166724690A0690024371 /* CorePlot-CocoaTouch.h */, + 3A28528D1B354DB0E0891F0A1B4B5B6F /* CorePlotProbes.d */, + 006B18CF0757496867C0824748CDFD3F /* CPTAnimation.h */, + 442F8658F38F4E42F3779E9C000923B0 /* CPTAnimation.m */, + 1DB18B188108C05CBE0B4F8D8C759B31 /* CPTAnimationOperation.h */, + 4C6744EC5A2ED4D97A757D6E95D37B8D /* CPTAnimationOperation.m */, + 6F122D45A3A09241E2B83E0AB1729B61 /* CPTAnimationPeriod.h */, + F7BD4121FC884A38FE05CDAA367840BB /* CPTAnimationPeriod.m */, + AE014BE7D287480ED1E0AC9973E59A2C /* CPTAnnotation.h */, + 22C29E059FEB9C18339EB12798452FE2 /* CPTAnnotation.m */, + C2CAC495B68FACD0E03BC64D13046610 /* CPTAnnotationHostLayer.h */, + 003406845EE62A8471E9B570A4CA5BCD /* CPTAnnotationHostLayer.m */, + 20B95365A9F472FCCC960399C57823C7 /* CPTAxis.h */, + 42FD2B5FF2C76032C595C5D0815D149B /* CPTAxis.m */, + 95F180B025651004115808F2DBCD3C09 /* CPTAxisLabel.h */, + CC866DE0D2CCFA452DF4D63B9EC0A6DB /* CPTAxisLabel.m */, + FDFB53CACDD03676007E8B7A24A31EE6 /* CPTAxisLabelGroup.h */, + 44217F252F3998D5A650F3489F75B98E /* CPTAxisLabelGroup.m */, + F450F578C9AD6A71A840D2FD318F9A63 /* CPTAxisSet.h */, + F5E3F589FCD3E4EA0FB2568E7A1F6345 /* CPTAxisSet.m */, + 7AF7E7FC5E0D415F09B8F7B01197251E /* CPTAxisTitle.h */, + F714C8473E010189534420C06A374775 /* CPTAxisTitle.m */, + 6CC072882BE80D42250144B1754FC687 /* CPTBarPlot.h */, + 8D53900F992BC41ED18A759BBD69A6B4 /* CPTBarPlot.m */, + 72A980E92FAE3B91C4FC530C72D05C7C /* CPTBorderedLayer.h */, + 806A31476B00E24A3A6FC740ADC7E3C6 /* CPTBorderedLayer.m */, + D44D43948715E9265E61E2E03D006AD0 /* CPTCalendarFormatter.h */, + ED34E3D475C4D6F24FF2EE51A87DC858 /* CPTCalendarFormatter.m */, + FC235CC0A6A86803A31AB71A41837182 /* CPTColor.h */, + 5DA425A60E34FA33D868A4CC8BECF471 /* CPTColor.m */, + 229173C8BDBAEF94EB78CAB1DEB3D7D9 /* CPTColorSpace.h */, + 93811C130B1EF7A929BAE27877A6EE55 /* CPTColorSpace.m */, + 7E0D696E85ED5F15D5C6E572D7C55C60 /* CPTConstraints.h */, + 8CE4D07A1F302A4076AF42014B694C87 /* CPTConstraints.m */, + 6187060E6B64A2F577CCE5CDB66C1F94 /* CPTDebugQuickLook.h */, + 8C3AC64F1D18E0B04D07337C60B6A0D6 /* CPTDefinitions.h */, + 282E316EAB0425B7250294DCD2E66D47 /* CPTDefinitions.m */, + 724CF192BA5BCAC73F68568076AC4BDF /* CPTDerivedXYGraph.h */, + 41B6D70D0C4AA0CE8EDF6BAB3C20700F /* CPTDerivedXYGraph.m */, + 30C3C3F88AC930DC372342470A27469A /* CPTExceptions.h */, + 1FD99631043058BA3A8487922F4D0BFC /* CPTExceptions.m */, + AB24A0C09BBCE369C796B6FA5CEA197E /* CPTFill.h */, + 648FBB42E181DAD6FAB051BEB3901087 /* CPTFill.m */, + 427F77D6F7907CE7D8D1611C066E7147 /* CPTFunctionDataSource.h */, + 1EEB2334E49F7D5AD005016C7E19C0DB /* CPTFunctionDataSource.m */, + D73F1A64489E6D347FECD72C1FEEE781 /* CPTGradient.h */, + 9613EA6D5051E2FB7D7ECD2A170291FF /* CPTGradient.m */, + F73A9476901835F5CF7CDA507BA97D6E /* CPTGraph.h */, + 2F54346E12C6ED521D1148B2C4EEF005 /* CPTGraph.m */, + 24413CB410EABF537F62F6947E89B3F1 /* CPTGraphHostingView.h */, + 2C61B2CA0EB87A6644FC8CB95EF8FDC7 /* CPTGraphHostingView.m */, + 1A44BD9B338E726891F4A078998012EF /* CPTGridLineGroup.h */, + AD2D77ABF3A15B80E66107AA91B1A845 /* CPTGridLineGroup.m */, + 65989DB4F194AFE022440ACA39FB8DDD /* CPTGridLines.h */, + E0DAD2C3E2CBE3351F43C17B38686910 /* CPTGridLines.m */, + 5C6C0EABC3685580EF3A0A04EB2FE0C2 /* CPTImage.h */, + E66BA55B0F109EDEE181D5045BDB6665 /* CPTImage.m */, + 2B0395D84E0526660B326882808034A0 /* CPTImagePlatformSpecific.m */, + 877884A05EBF6302B9E23715672CF993 /* CPTLayer.h */, + A22EFD01681E19D28B611AC3AE3370CE /* CPTLayer.m */, + D83E7A851B4D2461B949EA4057F50564 /* CPTLayerAnnotation.h */, + 3DDE53388B782F7BC87B8C0F604131F8 /* CPTLayerAnnotation.m */, + 6B9E201F9C0CE5923F2940D3815B2FE2 /* CPTLegend.h */, + D207A8F275EB964371EC88258B56D8E1 /* CPTLegend.m */, + 03E3694870B28CC3C22F3E011FECFAE3 /* CPTLegendEntry.h */, + 5DB9083AE3B753069170013D166408AC /* CPTLegendEntry.m */, + D35A3356C45382614797B199C9AAA588 /* CPTLimitBand.h */, + C959756EBAA628D62D1DCA6FF2024331 /* CPTLimitBand.m */, + 126A73F0771DE4822DD7E7818E980660 /* CPTLineCap.h */, + D0B59A2FAD34AA880E8126FE21967381 /* CPTLineCap.m */, + 03B7ADCB0F94F798984266ED88C11936 /* CPTLineStyle.h */, + 5BB7376F80D302D98B5A42F4D8033E1B /* CPTLineStyle.m */, + E8EEBDE9FA0D71E757B728068B8CB2BD /* CPTMutableLineStyle.h */, + 09E7041BAE266D7BCB060A7C3A0651F1 /* CPTMutableLineStyle.m */, + EE378EDE41682BA0FF6E5C946FFB936B /* CPTMutableNumericData.h */, + 8B636CEE91FD11890E96C17700D27850 /* CPTMutableNumericData.m */, + F4F68A3FB6DD63A67E9A685AC9025833 /* CPTMutableNumericData+TypeConversion.h */, + DA617D9A390F215101C113C4D5F41513 /* CPTMutableNumericData+TypeConversion.m */, + 0ECC944F70738F80E482CCB65B30EDFB /* CPTMutablePlotRange.h */, + 52CC26CAF1B29E1F249BD86445D8B327 /* CPTMutablePlotRange.m */, + E3C488E5A163B08C4E720BE883C94844 /* CPTMutableShadow.h */, + 479CA370A17A4EA7D728292D6848A96F /* CPTMutableShadow.m */, + 9B8A2EF738FB5E1110EB0EA03C9D5F4F /* CPTMutableTextStyle.h */, + D41806467AA062627A1A552A2C981F9A /* CPTMutableTextStyle.m */, + E6B05DD37B5E93637E5D6B32496A9F12 /* CPTNumericData.h */, + 2B07F4C0158BAF71C781AFAE0CD78A92 /* CPTNumericData.m */, + 2569E6F3A9B3CABFFB6BEAF8153DDFF9 /* CPTNumericData+TypeConversion.h */, + DEBAB5F2C86B3B40907FE57DCB139842 /* CPTNumericData+TypeConversion.m */, + 99E3EB3FA67A34F4B387AED1055D91B6 /* CPTNumericDataType.h */, + 171B7DF1E00BE330A34DBB544042452A /* CPTNumericDataType.m */, + 8E7507B3E991E4F67CD50F7EA0F99FEE /* CPTPathExtensions.h */, + 73E1A361D2935A491DC686AE3BA3A603 /* CPTPathExtensions.m */, + 617C04B65F625004862D7B531C91C4D3 /* CPTPieChart.h */, + 84FF814C84FE5E0D011822BE140188DD /* CPTPieChart.m */, + F7622C73911718EB763779A4887AFE22 /* CPTPlatformSpecificCategories.h */, + A096AEC599D4CCED05195D202A5B76A8 /* CPTPlatformSpecificCategories.m */, + 242DD0BFA2CF395417BC8847FF562EA4 /* CPTPlatformSpecificDefines.h */, + F56BC963D4231917FFB09A987849891A /* CPTPlatformSpecificDefines.m */, + 4A81E2B17BD20659F0EE4EF986EEFA0B /* CPTPlatformSpecificFunctions.h */, + D8F4366D24139769E28C6FB1B2F052AA /* CPTPlatformSpecificFunctions.m */, + 326853B7B27FD0E72A73F9719CD341F0 /* CPTPlot.h */, + 724A2F31736A1DE0EF1B75F9840C759D /* CPTPlot.m */, + FE481195BBEC966BD4EDBA79A874DB24 /* CPTPlotArea.h */, + D91F4E1C492FCA82BAE54CB965983835 /* CPTPlotArea.m */, + B9C290FC06445D38EB9BF7727578CAB5 /* CPTPlotAreaFrame.h */, + F2A0635F7E709D8341A4CAC0C166C239 /* CPTPlotAreaFrame.m */, + C19A9630B737ACB745169CB7FC61177D /* CPTPlotGroup.h */, + 58C9CBD952069749711F9F8FBC12314E /* CPTPlotGroup.m */, + F6A01659C8D84A963BF5FC46EA155FE0 /* CPTPlotRange.h */, + 64E656F55BB490E97D244FB857F10969 /* CPTPlotRange.m */, + 6CBECABBEE8E9E9919E10665A47BA4A1 /* CPTPlotSpace.h */, + 7E45B97032219A8D3558DEDCC935B3FE /* CPTPlotSpace.m */, + D16D386919945B9124CBEC71749D5361 /* CPTPlotSpaceAnnotation.h */, + 805428687153BE3A5CF440DF91FE94BC /* CPTPlotSpaceAnnotation.m */, + 2B3879AF77481594F3CF7DBFAFB51CDD /* CPTPlotSymbol.h */, + A043E2332A6A4637859F8ECACE0449DF /* CPTPlotSymbol.m */, + 9C3ED538FE24DDCB9EA034E9E0D4B6FF /* CPTRangePlot.h */, + 94AB1C1F19BF5468FEDCC438F76A36DE /* CPTRangePlot.m */, + 5A0979AF3C6D8D289693657DEF3C66A3 /* CPTResponder.h */, + E14449EC4F5654C18B06EB5175BF1441 /* CPTScatterPlot.h */, + EDA1D6CD2E6009186FA316DAEB137B9C /* CPTScatterPlot.m */, + 50D0FE15925554288BACA60FCD62FE62 /* CPTShadow.h */, + 874D886632C9C327E84A8C423A68ECF5 /* CPTShadow.m */, + B140986F17B8BCF31924780ED10A3D5C /* CPTTextLayer.h */, + 9988C9C1A337583A1CD0E58C5784AFD5 /* CPTTextLayer.m */, + 4CABD716518F32984747C89482E2FB76 /* CPTTextStyle.h */, + 54231FB21E337B9CD117EC167C1CE94D /* CPTTextStyle.m */, + 9C636A9FA051C892B1C6C7A7974F256C /* CPTTextStylePlatformSpecific.h */, + 5FB83FCEF577C5B810E44FBFB4463CAB /* CPTTextStylePlatformSpecific.m */, + 25A7000CA642BC63F952A86FE44A374D /* CPTTheme.h */, + 7BD46F872A76D8737B01241D6563AAEC /* CPTTheme.m */, + D6F5AEFD88FCBE59799E37F6995BBE39 /* CPTTimeFormatter.h */, + C0A263189D1033BF6AEC0B376F8C52D3 /* CPTTimeFormatter.m */, + C4AF69DA9ABC7140DF59D7A91F29AE64 /* CPTTradingRangePlot.h */, + F3ACB46F6517B885BE59045B5426CD6E /* CPTTradingRangePlot.m */, + 69A9B35A98892E3BB79E46E6FEB3B5D4 /* CPTUtilities.h */, + 60B4E04571F4EBA97036F98EE1F3F66A /* CPTUtilities.m */, + 7C3B609DB3F0CB2367A3A74F263100F7 /* CPTXYAxis.h */, + F2993974D1806BDE6EE86D7AB9CCE9F4 /* CPTXYAxis.m */, + 1FD05B2D2030D91E267C7027C1F275DA /* CPTXYAxisSet.h */, + 2C09683D9BF49967D26945C75310F778 /* CPTXYAxisSet.m */, + EB13382AFFB572426135C29035BC3E83 /* CPTXYGraph.h */, + D34E7522D50CD4530972FA7EA7677BD0 /* CPTXYGraph.m */, + 633FF9F5B00247B63FF718A157EB240A /* CPTXYPlotSpace.h */, + FBD54C61E2F4FE6C22AC0E6F8EC7C985 /* CPTXYPlotSpace.m */, + 2F0E15C381A25E6F58A2B599E2DD1659 /* NSCoderExtensions.h */, + A10F3533A09F7098055039FFC5C5F881 /* NSCoderExtensions.m */, + 8BB388AF25F99B97A8499064853137CD /* NSDecimalNumberExtensions.h */, + D46C439494C8055F2C2605950BA52058 /* NSDecimalNumberExtensions.m */, + 9A6BECA6E8E387F77223CDE14718AA97 /* NSNumberExtensions.h */, + 0A8CD193B2BE2DF8CCD36BF7127D59E4 /* NSNumberExtensions.m */, + 0C778B4D0F59281281D7223E278D9AAD /* Support Files */, ); - name = "Pods-nRF Toolbox"; - path = "Target Support Files/Pods-nRF Toolbox"; + name = CorePlot; + path = CorePlot; sourceTree = ""; }; - A40EAE8DF65FEBD347D582614902E8CC /* Support Files */ = { + BF14B49A070EA48827CA9D5AF58E3B85 /* SWRevealViewController */ = { isa = PBXGroup; children = ( - 84FB0930DD432F0995DEF5CCF7F49F94 /* Info.plist */, - 92F2529C7C784D919E1CF92A9C14C544 /* SWRevealViewController.modulemap */, - 316DA0542B38D62820052EF815DB9776 /* SWRevealViewController.xcconfig */, - B55A164E16003607876DA997AA7B3EC1 /* SWRevealViewController-dummy.m */, - E49BF421ECAFA164E3B13B9D6845C3C2 /* SWRevealViewController-prefix.pch */, - 1BA8FE6AB6A93B1C1FF88590553F6CD9 /* SWRevealViewController-umbrella.h */, + 8B5D6DBC06CBD27361420E62818D549F /* SWRevealViewController.h */, + 7BD367BB9279B8CC218CBF4792711EB4 /* SWRevealViewController.m */, + 0468B2E2E25A3ABB599648533D6D0D9B /* Support Files */, ); - name = "Support Files"; - path = "../Target Support Files/SWRevealViewController"; + name = SWRevealViewController; + path = SWRevealViewController; sourceTree = ""; }; - B05FFFB0E27FAAF79DC875ACC03789E1 /* CorePlot */ = { + C6A7C47112981A69C963A60897F650F9 /* Products */ = { isa = PBXGroup; children = ( - EB0E4D01C52A3C7192E83BB1EBCE6F84 /* _CPTAnimationCGFloatPeriod.h */, - 5C9AFEB8F1DD3C4C59B2F3EDE3409A80 /* _CPTAnimationCGFloatPeriod.m */, - A97FFEA8C127E89BD474CF7F8735C7EF /* _CPTAnimationCGPointPeriod.h */, - 4CC51DA8721D7AC99F6FA256274930D3 /* _CPTAnimationCGPointPeriod.m */, - FF32F2F6333A7D2645E610779C44DBBC /* _CPTAnimationCGRectPeriod.h */, - 1D056A03A06587D7AED33518211EDD0A /* _CPTAnimationCGRectPeriod.m */, - 82C980DBBD612AA5607EFA2C31DA9A64 /* _CPTAnimationCGSizePeriod.h */, - AF0231D51A73A3559556B76A1960EC33 /* _CPTAnimationCGSizePeriod.m */, - 62056B3A417A525023BC34AA1EDB739E /* _CPTAnimationNSDecimalPeriod.h */, - 1B03626C528CD75567DA8EB9EC015F74 /* _CPTAnimationNSDecimalPeriod.m */, - 5C138D79543C93928E84EF5B3FFC9252 /* _CPTAnimationNSNumberPeriod.h */, - 0EB43324C06E2A6A23CB25B92D7F8222 /* _CPTAnimationNSNumberPeriod.m */, - 99CB1AFB0AB2CABECCC26DA850C2CDBB /* _CPTAnimationPlotRangePeriod.h */, - 134821EA08ECD398E4C520620A0E5718 /* _CPTAnimationPlotRangePeriod.m */, - 54B40BAB3380B9346493FE4537F9F5D3 /* _CPTAnimationTimingFunctions.h */, - 3208A78E0A63D6E6FC26580C5ADC1B4E /* _CPTAnimationTimingFunctions.m */, - EF77FAEED31BBE668225B0C953219EA1 /* _CPTBorderLayer.h */, - 3CF4AE8364749E629F50D5745BAAEE46 /* _CPTBorderLayer.m */, - 4835C193A487AE379DAF909329A57874 /* _CPTConstraintsFixed.h */, - 8A3A1CCA37D439EDAF1BC30E571E4F76 /* _CPTConstraintsFixed.m */, - D952A20CE87F7E88C789611425A54729 /* _CPTConstraintsRelative.h */, - 3230D2AFCDE263F03FA2E5E35D0142A3 /* _CPTConstraintsRelative.m */, - 324A91CFDAFA5FA1566A65357C22F82A /* _CPTDarkGradientTheme.h */, - 76183017EED76361BB0D8C7D9BCFE7DA /* _CPTDarkGradientTheme.m */, - EDA5EFAEF5632EE5161B17B3096367AF /* _CPTFillColor.h */, - 191B8CD44DF3BA12293D1A20A556FC66 /* _CPTFillColor.m */, - FBBE34E926DFC0D57340E43083BAD3BF /* _CPTFillGradient.h */, - 158D5182D02F27B3DA8EAD5DEA60D891 /* _CPTFillGradient.m */, - 537D89DD249D932B53CA0B65489C60C6 /* _CPTFillImage.h */, - 1B77E643E14C3F3599646DABFE5D7475 /* _CPTFillImage.m */, - 439DE3285762737F9BB6D4625B17C525 /* _CPTMaskLayer.h */, - 2CE1C41EEDE3CD9F931B8B857DB83CD4 /* _CPTMaskLayer.m */, - 1968A84ACAFB763895C780C8B0D36E4D /* _CPTPlainBlackTheme.h */, - C941D1F0CFD6C0C09B3E405B24C305E5 /* _CPTPlainBlackTheme.m */, - D64D4F770C2C41731A5D005B0F9B5A88 /* _CPTPlainWhiteTheme.h */, - 92099ED9EE29660852A8240B48C30589 /* _CPTPlainWhiteTheme.m */, - DB14653C1C3E76410F1382E63CB5AE7E /* _CPTSlateTheme.h */, - F7F258047948C731081A9C136699DC1C /* _CPTSlateTheme.m */, - 046A007129539D3C0E942C13805A7362 /* _CPTStocksTheme.h */, - FB6BF60D483B71BF1759CFBEE3BA2056 /* _CPTStocksTheme.m */, - CC2167E7567AB8911A0F474E576897A5 /* _CPTXYTheme.h */, - 87A4E962D0EC23B6FAC911520FF8001B /* _CPTXYTheme.m */, - 32ACD4FBFF5E45142BC3DAD41BF5E1EA /* CorePlot.h */, - A319E03C2C3271B79F52C5E607BE74D8 /* CorePlot-CocoaTouch.h */, - ED093B1BA87A0D0EA9F29A5D844CA148 /* CorePlotProbes.d */, - 5BEB03FECD1CF574A563D8A047EEF228 /* CPTAnimation.h */, - D5831F808D898C9E45421D5FC6486CC8 /* CPTAnimation.m */, - AE639F4E2ECF2A3326D103D4AAC82948 /* CPTAnimationOperation.h */, - E49C293D8B7B7733D9E2BC450E429FDC /* CPTAnimationOperation.m */, - 5A420F7FAAD53D261E13634D494C4187 /* CPTAnimationPeriod.h */, - DE079B141A7DF971CE8F70310A0F7204 /* CPTAnimationPeriod.m */, - A2C7F624F0A4A1CA56829B7578892D17 /* CPTAnnotation.h */, - 0C78A76EDC86C7A670A232B484A0B72E /* CPTAnnotation.m */, - CA5532F6A7063DB73FC3C9E232FFC9E6 /* CPTAnnotationHostLayer.h */, - 84AEE798AEB5A8F620D491AFE774DFF7 /* CPTAnnotationHostLayer.m */, - B641EA0A28E1DA924AE52EA5C334C832 /* CPTAxis.h */, - 9AC2057DE5775E9940CC780C9FF4F4C2 /* CPTAxis.m */, - 68DFE7676A43008C737C89C06753683F /* CPTAxisLabel.h */, - FA0B990781EA3509D073F5400AE84069 /* CPTAxisLabel.m */, - CE4FE8E99157CC26AA1BF63F5BEA7FCE /* CPTAxisLabelGroup.h */, - AEBD9641CCA73ED1552D919D22EE617D /* CPTAxisLabelGroup.m */, - 5F7C59A47F63149E78A750C65AEA4AFC /* CPTAxisSet.h */, - 30F10185922847057963CBF50CD0FEDC /* CPTAxisSet.m */, - F83F91E82EDC08748069AC8057DD9D40 /* CPTAxisTitle.h */, - CC16472453375E36E51A3798DED62AB0 /* CPTAxisTitle.m */, - 85FBDAFA769C4B53C44778757F25B92D /* CPTBarPlot.h */, - D8DF352909A1CEE517647A3BEA19FF55 /* CPTBarPlot.m */, - 9ACC1B14584721FBF56B8548367E73B6 /* CPTBorderedLayer.h */, - 95C9ACA3FDFBEF7EFE0244142A32C711 /* CPTBorderedLayer.m */, - 810A2B3B1EB9D7DB5E7F4C5B17B45EC4 /* CPTCalendarFormatter.h */, - 167B1F654016A5E22BC2E6BE25B5A82F /* CPTCalendarFormatter.m */, - B662404719848275789FC797DAF22071 /* CPTColor.h */, - 819698922C7C2A752D57572F79DBB8C1 /* CPTColor.m */, - CF8EBDA49894F11DDC438D9105D01F36 /* CPTColorSpace.h */, - 90A798878D7777F30F316A3C8FC0B6ED /* CPTColorSpace.m */, - F9BFD348FF56B4E186FBA5A4AC91A2ED /* CPTConstraints.h */, - 4BEBCF684F398645C023CCCC9CD59933 /* CPTConstraints.m */, - 1E94FF13B0AE76737065F1169443E025 /* CPTDebugQuickLook.h */, - A52F022D7206834BBD6B7DD9E330B853 /* CPTDefinitions.h */, - CC12F49FF41C8A2F41FC3C215BAD5EF1 /* CPTDefinitions.m */, - 6BE1005077A4C2A7A7032CF8800B6821 /* CPTDerivedXYGraph.h */, - 73041012D4F3779950211788CB866E29 /* CPTDerivedXYGraph.m */, - 60D43F1938E7970FD122421B634A98D6 /* CPTExceptions.h */, - 0A982EEB5C148D5A0B6C49E6DA47B952 /* CPTExceptions.m */, - 009F8CD98E1408A9D7CCC0C0F0A29035 /* CPTFill.h */, - A01080D291F34097DAA32C34FABA5385 /* CPTFill.m */, - 301F910B14FA579E297EB29FB017AFD0 /* CPTFunctionDataSource.h */, - 0ADC6ACA4282A7D4F0EE73E3397C9A9E /* CPTFunctionDataSource.m */, - C31CFAF0F1365E472CB351091360F57F /* CPTGradient.h */, - FD77B6AFEF2EEAB5581D91BC17524E53 /* CPTGradient.m */, - BEB622810F43D63309C05BAEAC2FBDFC /* CPTGraph.h */, - 026B81CD6A4AD1558168413E6812D700 /* CPTGraph.m */, - 8B19F41A2D158C36EB41D1B3AAC93A14 /* CPTGraphHostingView.h */, - 39D0C58377DFC4327CF0F90AE00B49F2 /* CPTGraphHostingView.m */, - CFF23074D121727AE0E51B4B835D2DA2 /* CPTGridLineGroup.h */, - 85009D06BCF661FAB2D39F56D2131B08 /* CPTGridLineGroup.m */, - 24505FB34F9B2D89AAC94CDF1314F861 /* CPTGridLines.h */, - 27134F4B90C01332E0482CEEF626D4B1 /* CPTGridLines.m */, - 8613D14ECF79B034909C86F41ADABA63 /* CPTImage.h */, - 9630033842485AED7ABD36002940D6D9 /* CPTImage.m */, - 0FC9ED5FE4E70CFBCE69B61F55F8F400 /* CPTImagePlatformSpecific.m */, - FF193E2DC7BB23C9978C503CB485D100 /* CPTLayer.h */, - 4D5FFAF332BC6A1C5EAB87A9ADA82A27 /* CPTLayer.m */, - 566352D74D0B33C4B7C2102C61E2D91A /* CPTLayerAnnotation.h */, - 891390C078201C43D52957C48AF27A12 /* CPTLayerAnnotation.m */, - 7FC0C8518590B6060C90761E79FF9D85 /* CPTLegend.h */, - 07A4234A64C85B954CBD17C266D1FB41 /* CPTLegend.m */, - 299610450FFABB05309D0DA74FEEEA9A /* CPTLegendEntry.h */, - 2991527B2847C6DA989FD52D2D135126 /* CPTLegendEntry.m */, - 29AB9A06AA1BA46EEDBF62126D12FE75 /* CPTLimitBand.h */, - FAFAA2A831D0EC9D83D9F322573F4F43 /* CPTLimitBand.m */, - 858269C3ED89478E9F088886FFDE60C9 /* CPTLineCap.h */, - 8512382333DB87BED0A96C67606DD6DC /* CPTLineCap.m */, - 91CBA17940041FD85A94CF8DF911A05F /* CPTLineStyle.h */, - 755E5323A00EF2ADD1DE7308DAFE938D /* CPTLineStyle.m */, - 0073BA9B7252CB51EB80FB7C0B8BA859 /* CPTMutableLineStyle.h */, - 69E6A2FFA4F45805A36842D01D7DEAFD /* CPTMutableLineStyle.m */, - 24EF4F12879E2F0B9F11490E07461971 /* CPTMutableNumericData.h */, - 2F7D1D00A11BC1E3A77E949B7FA1E1BB /* CPTMutableNumericData.m */, - B6EB2D72A241D95211152DB0DC84666C /* CPTMutableNumericData+TypeConversion.h */, - F5698D25B2299D16724989D2D9E3BCB9 /* CPTMutableNumericData+TypeConversion.m */, - A9947D16D9FF90A97D9029E1A4AC31F7 /* CPTMutablePlotRange.h */, - A341C33C07760EEA8EE008521161A3C8 /* CPTMutablePlotRange.m */, - 1C7173EF5B29ED2454B93B6D9B4C3A51 /* CPTMutableShadow.h */, - DD728724E88C3E4F7A772B803D7813D1 /* CPTMutableShadow.m */, - 7D0E8E522DFBFC5A6AB0A16805C5C422 /* CPTMutableTextStyle.h */, - 4BF6BE214C994E44BB0BFE382D3A50C1 /* CPTMutableTextStyle.m */, - DFCB19778392B28467E8C0C88531514C /* CPTNumericData.h */, - A6A46AA32BD19E7372284789C028B883 /* CPTNumericData.m */, - 6FF94D60351640A16DFFAB43E73B2C9B /* CPTNumericData+TypeConversion.h */, - 26B3089E020187D0B99B2ED96AA65F93 /* CPTNumericData+TypeConversion.m */, - 6C352A616572514420DD065118D7F040 /* CPTNumericDataType.h */, - D30E58738B34BD19EDBF16A4023D1A7E /* CPTNumericDataType.m */, - 83C27E8B6F241542DABAA40D4B41BC97 /* CPTPathExtensions.h */, - B7719CBFFA2AC3DAEE32FD039FAE2867 /* CPTPathExtensions.m */, - 36F1900A97D00FB577FB46C2E60F64B3 /* CPTPieChart.h */, - C0D153EB1F09BC780B33D48D48733C31 /* CPTPieChart.m */, - 7F0C9CD3229FF46342B38BE7FCF1045D /* CPTPlatformSpecificCategories.h */, - 99E5626266220BDB504E204680C7840C /* CPTPlatformSpecificCategories.m */, - 8EFF0407E8565CBCA4887C1C309EA9F4 /* CPTPlatformSpecificDefines.h */, - 013D218FD00073689A675491D15C017D /* CPTPlatformSpecificDefines.m */, - 59E99D5583D9025E9C6794A7FD8830F3 /* CPTPlatformSpecificFunctions.h */, - 0BD17E786A686D10D6F77BC33A8E60D4 /* CPTPlatformSpecificFunctions.m */, - E3B0C2E9A840775DD2E17FDEE1244AFC /* CPTPlot.h */, - D125D6F2575E2DECA29408BF7D0064F2 /* CPTPlot.m */, - 1C5BEB7219AD560F69525EDF91DBC92F /* CPTPlotArea.h */, - 9430CA5F90B7AFA6DF34E41C54575761 /* CPTPlotArea.m */, - 4DDF3B5D3E7E2E37EB37428465F5FB19 /* CPTPlotAreaFrame.h */, - 468861A3B02C94B3E9430BAF467A84D0 /* CPTPlotAreaFrame.m */, - 1C4DA802096579B106A13D3DA73CFD8C /* CPTPlotGroup.h */, - AB4605AA58DB1FAC4FF15B33CAE19B60 /* CPTPlotGroup.m */, - B51DAA7ACAD064B7FC35EBC29439695E /* CPTPlotRange.h */, - BBE1D7FA89CD0DB46AC23A96B184E02D /* CPTPlotRange.m */, - D0EEA70757E383DAC7B9E980A0FBB78F /* CPTPlotSpace.h */, - C6ABB8C7E3254C175A1D541C1C18FC5B /* CPTPlotSpace.m */, - 28EC7AE16D287AB78C5F2FFD791DB349 /* CPTPlotSpaceAnnotation.h */, - 50BEC9E9F8CD649BC442D73E3551539A /* CPTPlotSpaceAnnotation.m */, - 3568E5E2F446DF770E9BA325DE518890 /* CPTPlotSymbol.h */, - E79EB88C5002C142C5586F1E6F964757 /* CPTPlotSymbol.m */, - 57395B064B85046094FBF807B89E15A7 /* CPTRangePlot.h */, - B389368417F1BE3EB348B0999B9040B8 /* CPTRangePlot.m */, - E8ED22F691F2EEACAE7413994B85BCE8 /* CPTResponder.h */, - 64425A7A041B986D72DE284E1EFBCC87 /* CPTScatterPlot.h */, - 01AF2F060803ADC09F70F61EB27EDFC8 /* CPTScatterPlot.m */, - 8980B9945CF4D67CB0505F2B5143EF12 /* CPTShadow.h */, - E6161B99AAA5F4958CE95CDE516C4F0A /* CPTShadow.m */, - 8BAC326E7CC5020C527188B84539B37B /* CPTTextLayer.h */, - 5886939726690B2227011D401D324D29 /* CPTTextLayer.m */, - 08675DF9CA153DFFA942AE1FDA6B7815 /* CPTTextStyle.h */, - A7FC5ADAD340DA14DC0A365AEB2F1B53 /* CPTTextStyle.m */, - 7A8EC5202AE16BEEB1F0E861B3FAE05B /* CPTTextStylePlatformSpecific.h */, - 3B91641EC7838910C70E38295CBF46C1 /* CPTTextStylePlatformSpecific.m */, - 133B6BF9D93181D869B20078BFE76B92 /* CPTTheme.h */, - CC27044FBAC839AA964BE73CB7858AF6 /* CPTTheme.m */, - D1ACEF3E765A11937B651941AFDE00B8 /* CPTTimeFormatter.h */, - 9A73C32674EEC8BE110976F5DD278410 /* CPTTimeFormatter.m */, - 03B6B663F1F1DB32C5B43361965CEFDA /* CPTTradingRangePlot.h */, - D8C9E914559D8231910C25DD10CEF631 /* CPTTradingRangePlot.m */, - C8D45825F42ADDA377BCF2031EE6FA19 /* CPTUtilities.h */, - 67F9F97C839E185F2E74E9BEBD92285A /* CPTUtilities.m */, - 56A3F703F29B3999C71E5592FFD9823C /* CPTXYAxis.h */, - A1AC59C10E2DDD3576148834B8D6F3B4 /* CPTXYAxis.m */, - 344FC92E43FF06C5839AC7726C259739 /* CPTXYAxisSet.h */, - 46B34D7456F87B7D20266303AC51C52A /* CPTXYAxisSet.m */, - 6D77DF5B37F334C02FCA115C63FDAB9E /* CPTXYGraph.h */, - CE617C929CAC13B93892E239BD7819F4 /* CPTXYGraph.m */, - 62FFCDBEE30A4F10A84583F837B0FDD6 /* CPTXYPlotSpace.h */, - 3C0DB48741998F2B90846E2CC8776C8E /* CPTXYPlotSpace.m */, - B9423232132F96DC3733C8AB0B9D747C /* NSCoderExtensions.h */, - 89A821B6BD987F5A00B33206EB76AAD3 /* NSCoderExtensions.m */, - 528F8C687D0A78D72DC799E3D56D8830 /* NSDecimalNumberExtensions.h */, - 87A9E993F7C0C5B80F7A2E6A7F45D82F /* NSDecimalNumberExtensions.m */, - 20515F1D751771CB9920480BAFC8D65B /* NSNumberExtensions.h */, - A714B281738A9868404D268E5BFBC293 /* NSNumberExtensions.m */, - D3D407B9382DC8C982929B1224E0C76A /* Support Files */, + 06F10A581D4E7DBC742488853092E58C /* CorePlot.framework */, + EED13EF94EA85A952C774C92D36A2DC3 /* EVReflection.framework */, + EEC44B6BECF1F272C66C329F8C1AB018 /* iOSDFULibrary.framework */, + 6769396A35E8505DE966482750EF3322 /* Pods_nRF_Toolbox.framework */, + D705862DF7BDFE69DF07BF527C353787 /* SWRevealViewController.framework */, + 91D50F1D83665EFB21C7B670B4CDE9D1 /* Zip.framework */, ); - name = CorePlot; - path = CorePlot; + name = Products; sourceTree = ""; }; - CBC3E01A0FE21D40310F6DF206800B59 /* iOS */ = { + CF1408CF629C7361332E53B88F7BD30C = { isa = PBXGroup; children = ( - 7C324811068A8D01670AF09BD60679DE /* Accelerate.framework */, - F2AFEBCBB4C50A387E813AA515526D1F /* CoreGraphics.framework */, - 4C737DDB6DF28A27AF578547B6ECEF40 /* Foundation.framework */, - 7D4D50FD0F177E9ACAB24367CF96769F /* QuartzCore.framework */, - 4F6CAB01B281D6CD23364D8D7A87E927 /* UIKit.framework */, + 9D940727FF8FB9C785EB98E56350EF41 /* Podfile */, + D7B5CBA8AFAADFAFE1326B9DC727479A /* Frameworks */, + F5B2FD0F800F21B9EDA995203E26AA8C /* Pods */, + C6A7C47112981A69C963A60897F650F9 /* Products */, + 9165D629314EE436A00C5A847056FAAB /* Targets Support Files */, ); - name = iOS; sourceTree = ""; }; - D3D407B9382DC8C982929B1224E0C76A /* Support Files */ = { + D7B5CBA8AFAADFAFE1326B9DC727479A /* Frameworks */ = { isa = PBXGroup; children = ( - 35DEFD7F82CC1A931B60E3DF2149088B /* CorePlot.modulemap */, - 2207DEE7768FE13A9B98D5513E8DDB5F /* CorePlot.xcconfig */, - 634323543C3BA42F1CC0F35A6E75D807 /* CorePlot-dummy.m */, - B960FE16047D35498D9857D4AEA2D84B /* CorePlot-prefix.pch */, - C8D49D523E4EA8E93D0CC7466ECEBB50 /* CorePlot-umbrella.h */, - 8B9D82D2590E268D96566490ACD99C69 /* Info.plist */, + 80AF12F5465B5E5D03C68440DDF64E50 /* Zip.framework */, + 9C4A81A27D8A04C074B929DD1108364B /* iOS */, ); - name = "Support Files"; - path = "../Target Support Files/CorePlot"; + name = Frameworks; sourceTree = ""; }; - D83D4205F82F6CB918C94C80BADC259B /* Targets Support Files */ = { + DDC2AC6DBD4329816690B8BF0622FCD6 /* Zip */ = { isa = PBXGroup; children = ( - 93CF55960D0C5EEEDE154CBC6CDDEA1E /* Pods-nRF Toolbox */, + 88CBA720313D0093951801898852EC82 /* crypt.h */, + 6871A545D15D2DD615B2C3B38C07DD9E /* ioapi.c */, + FD43A283C042C2BA8DA561C4D178AE72 /* ioapi.h */, + 1DE46EB3C90EC9D07936065473576EAB /* QuickZip.swift */, + 4C46886E167D0DA9458C19B16834DF6A /* unzip.c */, + 054265D9864CF8CF795C4124AB9F6482 /* unzip.h */, + A1784BDFEDA469594BA05EAB440EEF7A /* zip.c */, + 907701815D8593A6B837B65F5E0E333F /* zip.h */, + 093EB71E379D7A7D00650481BEF5E373 /* Zip.h */, + EDCEBBC17C72BF4E59A25438100C9326 /* Zip.swift */, + BEB0D74DC47801D629290EF773C6F723 /* ZipUtilities.swift */, + FB6EFE7DBDCF228687D00249B179B9BC /* Support Files */, ); - name = "Targets Support Files"; + name = Zip; + path = Zip; sourceTree = ""; }; - DE2928C48E66EEB39EA45A389D60E82A /* Support Files */ = { + ED91A6B292850C8FEC4628659817FA2D /* Pods-nRF Toolbox */ = { isa = PBXGroup; children = ( - 2B7FFDED52F644E297708EE3D34B9135 /* EVReflection.modulemap */, - A905F36E7BFB07ABA93A9C00F978499B /* EVReflection.xcconfig */, - D94002C0EF9551B2F63057346DCF928C /* EVReflection-dummy.m */, - 3B485E217FCABA585452286932ECA38F /* EVReflection-prefix.pch */, - 5239005796EC303AE07E1CAF99D47420 /* EVReflection-umbrella.h */, - 8529C656DE921454DF79414EDCC6BF0A /* Info.plist */, + EF8C06CD7D8C3E543E472FF28F341172 /* Pods-nRF Toolbox.modulemap */, + 46E5A5CC1EC189CA9A62AA3BBFC83332 /* Pods-nRF Toolbox-acknowledgements.markdown */, + 04D2A3734AE0E27E46E50B5889C4FC49 /* Pods-nRF Toolbox-acknowledgements.plist */, + C6BECCA83DAD9BEC7E00B73705BEE9E8 /* Pods-nRF Toolbox-dummy.m */, + 78E311B1DF52FDAE4057160F01AC351E /* Pods-nRF Toolbox-frameworks.sh */, + C7192D0C97F75A7052E59B31C16F84A2 /* Pods-nRF Toolbox-Info.plist */, + 5AEC8D40C7E17B020CEA24C3E7DB31EF /* Pods-nRF Toolbox-umbrella.h */, + 5BF0010088D9802D556EA300E82D5F1F /* Pods-nRF Toolbox.debug.xcconfig */, + F5E9E3168833BD0FC0FF6D3D08960627 /* Pods-nRF Toolbox.release.xcconfig */, ); - name = "Support Files"; - path = "../Target Support Files/EVReflection"; + name = "Pods-nRF Toolbox"; + path = "Target Support Files/Pods-nRF Toolbox"; sourceTree = ""; }; - F72F40BA072DA2728B1CB87C330DF935 /* Products */ = { + F5B2FD0F800F21B9EDA995203E26AA8C /* Pods */ = { isa = PBXGroup; children = ( - 67B9ECE11236A9CE79948CA5A51FC537 /* CorePlot.framework */, - E1CCA74555CF6B7342ECB752BB5B17F1 /* EVReflection.framework */, - BA5A044B62EA4245F2A6D392B937C262 /* iOSDFULibrary.framework */, - F6978EF1930634769F4579C98022922C /* Pods_nRF_Toolbox.framework */, - 45B4CAE0884A395D8A36378BFCF186A3 /* SWRevealViewController.framework */, - 7024FA3D2C9A8D107F4AFD7D413899F9 /* Zip.framework */, + AB90CA9BA31130F8102115ECA3B65529 /* CorePlot */, + 9EEA4890D7A95DA01425F15BBAFC086F /* EVReflection */, + 5AAF81E1E49F1213D79840D07EE02F7B /* iOSDFULibrary */, + BF14B49A070EA48827CA9D5AF58E3B85 /* SWRevealViewController */, + DDC2AC6DBD4329816690B8BF0622FCD6 /* Zip */, ); - name = Products; + name = Pods; sourceTree = ""; }; - FBEFA15BC364E12C67576F8551BD1C4C /* Frameworks */ = { + FB6EFE7DBDCF228687D00249B179B9BC /* Support Files */ = { isa = PBXGroup; children = ( - 3396093B67A8067568A38ED3A69D8A3B /* Zip.framework */, - CBC3E01A0FE21D40310F6DF206800B59 /* iOS */, + 985414BDF40ABE52F80E33C9C4EB660D /* Zip.modulemap */, + 89C3951FC927D3655855BE806A9C83BA /* Zip.xcconfig */, + EC5C6EED98E775723CF84FE40850B17A /* Zip-dummy.m */, + 621983A235105D78039093A807A8BAB1 /* Zip-Info.plist */, + 8DFFB329A31E37CE6E0F1547E178B39F /* Zip-prefix.pch */, + 2A516B57D5EF2A72F2BB25DC3212C5D2 /* Zip-umbrella.h */, ); - name = Frameworks; + name = "Support Files"; + path = "../Target Support Files/Zip"; sourceTree = ""; }; /* End PBXGroup section */ /* Begin PBXHeadersBuildPhase section */ - 2098324AB830103A61FB5C30F811F03D /* Headers */ = { + 077140873F47C670ADE655586AF9A228 /* Headers */ = { isa = PBXHeadersBuildPhase; buildActionMask = 2147483647; files = ( - 7134022D006EFFAAF4516E9C1F25AB9F /* SWRevealViewController-umbrella.h in Headers */, - 07FF739BC8CF39C871A54E33807FC6E1 /* SWRevealViewController.h in Headers */, + 38E5455B05C69FC1851D5D4EC3C80391 /* SWRevealViewController-umbrella.h in Headers */, + 5E2ACFCD96709DC3F7292975DE1CB485 /* SWRevealViewController.h in Headers */, ); runOnlyForDeploymentPostprocessing = 0; }; - 23BAFC6FA3BCB8CC274F81E6F6F4A5E2 /* Headers */ = { + 370D51F79E9D0FF5D102C04AD5A8F87B /* Headers */ = { isa = PBXHeadersBuildPhase; buildActionMask = 2147483647; files = ( - AF4857AFF976188D05457C8FFFD1EDDC /* EVReflection-umbrella.h in Headers */, + 48EDAB8557B57D8323CC70034A0F3A9B /* _CPTAnimationCGFloatPeriod.h in Headers */, + 992920AC88615C2FE274DC99A5709F49 /* _CPTAnimationCGPointPeriod.h in Headers */, + 7B4C3E96589F42C291832058EC64283D /* _CPTAnimationCGRectPeriod.h in Headers */, + 9D14B37BC20A58A859CC60E6A7F06F87 /* _CPTAnimationCGSizePeriod.h in Headers */, + 246366A1E84A841F897E1E8E0ADC1EC1 /* _CPTAnimationNSDecimalPeriod.h in Headers */, + C6298AFEF59D65C597BC57B94EA04042 /* _CPTAnimationNSNumberPeriod.h in Headers */, + 4F292B2F51E172634F98DFAF362F24ED /* _CPTAnimationPlotRangePeriod.h in Headers */, + D2578DACE4D389D445F557FD70944FEC /* _CPTAnimationTimingFunctions.h in Headers */, + 359A039A1E1835AB72E4CAD0D4724C23 /* _CPTBorderLayer.h in Headers */, + 696DB8F8D26B97DDA59E65F3BDB922FD /* _CPTConstraintsFixed.h in Headers */, + 498267090679CAA29FE7BAC73CB8C0F8 /* _CPTConstraintsRelative.h in Headers */, + 4CC5F95BA7728609DEC580099831B97A /* _CPTDarkGradientTheme.h in Headers */, + C5EF494C182A7D7C86EB9C90E77B6038 /* _CPTFillColor.h in Headers */, + 976940C715B1B4B3DDBC046F357FB360 /* _CPTFillGradient.h in Headers */, + 2BA3CEF3D92C8F24F1E150838AD0FF2F /* _CPTFillImage.h in Headers */, + 0928B16F9A94F341EB57CA5F1B3529DF /* _CPTMaskLayer.h in Headers */, + F5B61961F1543D751ABE9EDA4944A17A /* _CPTPlainBlackTheme.h in Headers */, + C22728C48A81E4B1469B7ED977B50644 /* _CPTPlainWhiteTheme.h in Headers */, + 242786EC3ED8734EBD613A0164024B52 /* _CPTSlateTheme.h in Headers */, + C682930D7CC7CB4CD47499A29356BFB2 /* _CPTStocksTheme.h in Headers */, + 3552144FD35E254812006B021EF11EC7 /* _CPTXYTheme.h in Headers */, + 27FCE4A19842423C29CC0CC577D8D02B /* CorePlot-CocoaTouch.h in Headers */, + 9C2D522E14845466DC3C0FA345DFD000 /* CorePlot-umbrella.h in Headers */, + AEBC14410213CB8F03178512D887491C /* CorePlot.h in Headers */, + 5C4AED95B9992C1803A2ABB97FE78631 /* CPTAnimation.h in Headers */, + DF5CB8E3F1B025373A2A5973AC10A69A /* CPTAnimationOperation.h in Headers */, + 98F853E4F5891A95115C65A324D03F51 /* CPTAnimationPeriod.h in Headers */, + 596CB367A29BA6BC53C9A5895D838F98 /* CPTAnnotation.h in Headers */, + B53FD0F1D7731A2E964A1213CFAF1CF9 /* CPTAnnotationHostLayer.h in Headers */, + 48913DE38B88FADECDF3798F37147926 /* CPTAxis.h in Headers */, + 4EB08E30D97D86DCF5129A564EE137D5 /* CPTAxisLabel.h in Headers */, + 285E476AA16912CEA8611EDB315EEBBA /* CPTAxisLabelGroup.h in Headers */, + 8EC5BB402156F8F17BBC767F43606EBE /* CPTAxisSet.h in Headers */, + 1B51FFA869F5E5C728D1DD30A9F73DBB /* CPTAxisTitle.h in Headers */, + 8F86720C8B4C5789451ECA2F307C1582 /* CPTBarPlot.h in Headers */, + 58ADF5C73ACB65BFAE4251146C7FDBBA /* CPTBorderedLayer.h in Headers */, + F102FE0A7328F0F5F40EE4A0E29F34EA /* CPTCalendarFormatter.h in Headers */, + 7EC82B311850E35805408C1FAC21C677 /* CPTColor.h in Headers */, + 86D24E119C97059E7C18362B6AE0DC28 /* CPTColorSpace.h in Headers */, + DF413A418950C3920EA6B431FE407085 /* CPTConstraints.h in Headers */, + 319ED25B995FFB38F841961645D14613 /* CPTDebugQuickLook.h in Headers */, + 3B63E245223441A131CF6F70AD22CBE5 /* CPTDefinitions.h in Headers */, + D46CDF9755D527503390899FA2AC15A8 /* CPTDerivedXYGraph.h in Headers */, + 8A171C42F702288492B8FC7AB574F483 /* CPTExceptions.h in Headers */, + 06EEA537BA833A6802507EBA34FA808F /* CPTFill.h in Headers */, + 86E3101F82F84CE029F11CBDAB9B8394 /* CPTFunctionDataSource.h in Headers */, + 563268318BB4E21E23DC5F58A4304F58 /* CPTGradient.h in Headers */, + 83E8EE429F68C8802A1C77147F9EB922 /* CPTGraph.h in Headers */, + 1F35D0CF95A5DCCB406C98244D69E254 /* CPTGraphHostingView.h in Headers */, + 1CE6F2917498C0BDAA38C92F2B0E4245 /* CPTGridLineGroup.h in Headers */, + 691F8BE20564223A6F4F1ED3D4BAC068 /* CPTGridLines.h in Headers */, + 0B11DFBE01DCAB2A8EF25725382AED27 /* CPTImage.h in Headers */, + E1D94320D29E86406B274B59D6550618 /* CPTLayer.h in Headers */, + 0CC25456AD02EA9880FB4B9B20291937 /* CPTLayerAnnotation.h in Headers */, + C889039D6CA3E3F3229C681D410F8C79 /* CPTLegend.h in Headers */, + AF64E555E36FC170360E6E656451021B /* CPTLegendEntry.h in Headers */, + 058239F0811EC88B7A794AFC90C51AD6 /* CPTLimitBand.h in Headers */, + B1853269AA068CFC35E4C95F51C1C1A1 /* CPTLineCap.h in Headers */, + 7BEC1C779DB3D2C9174158B8A9651D7C /* CPTLineStyle.h in Headers */, + 9C6CFB2440F8ED50FC39DD7E8F72415D /* CPTMutableLineStyle.h in Headers */, + D86A43A2266792EC27B263648E46FEEE /* CPTMutableNumericData+TypeConversion.h in Headers */, + 79413734D874A4102A4F5A033DA92620 /* CPTMutableNumericData.h in Headers */, + 7C42A86D4440070425F48C15717AB41B /* CPTMutablePlotRange.h in Headers */, + 8E33AC01AEBFF1AEB99F8C902EB3B081 /* CPTMutableShadow.h in Headers */, + D81CFD085CB8F91424F0B52C3A3755D8 /* CPTMutableTextStyle.h in Headers */, + 0C349722886D5AAC2D01460B6D78C1D1 /* CPTNumericData+TypeConversion.h in Headers */, + E4E4A5A3C98239A8F13747D7F0AE8F31 /* CPTNumericData.h in Headers */, + 54164047E918E4381D12345FC0D51BE4 /* CPTNumericDataType.h in Headers */, + D28DAC17DFB27CDF95915D13E52F323F /* CPTPathExtensions.h in Headers */, + 5F0BC7253C5F0514DDA7FB8D1BB10BCE /* CPTPieChart.h in Headers */, + 3430D72FA6FFFA9C07B96C697ACF7A28 /* CPTPlatformSpecificCategories.h in Headers */, + ED8C23B0D24BB7921A4693FC4972948B /* CPTPlatformSpecificDefines.h in Headers */, + F7CDDE6F1E96160DE6A251709C5BE392 /* CPTPlatformSpecificFunctions.h in Headers */, + F6820123F1553C59E0041CA6A830D273 /* CPTPlot.h in Headers */, + E42D7AB474C79DEF0BA6E3210E6654FE /* CPTPlotArea.h in Headers */, + A481B5DD53B317ECF2831911B05B98AF /* CPTPlotAreaFrame.h in Headers */, + 50B5C59EABD25E8F6BC6CBD50D0C067D /* CPTPlotGroup.h in Headers */, + 5FF4744D02C3162C6B67F4294F6A71CF /* CPTPlotRange.h in Headers */, + 8BCF663F936CF85663F33DF0007A8B64 /* CPTPlotSpace.h in Headers */, + 07DB9A1F8BCED23D7701FB333BCD4230 /* CPTPlotSpaceAnnotation.h in Headers */, + 38DE00921AD06BDF5B2101AD301F97DC /* CPTPlotSymbol.h in Headers */, + C49FC8A0B0A00A68A4D66AA7E1D96060 /* CPTRangePlot.h in Headers */, + 5757257D291614E0BA400ABF36B1C44A /* CPTResponder.h in Headers */, + C6C11475AB4DEB0F2466EBEEE3CCC489 /* CPTScatterPlot.h in Headers */, + FA8F07C174EEB99CA2F030F249AE3451 /* CPTShadow.h in Headers */, + AC73847DEC3B50D1E9C5F9E83C9C5B46 /* CPTTextLayer.h in Headers */, + 3EA701EE21477D1BBAB086CEFD63904C /* CPTTextStyle.h in Headers */, + B415A54C03D22B6133C6C92B51956FAB /* CPTTextStylePlatformSpecific.h in Headers */, + F850EE84BCC33657847FEFD4FF2F1DE7 /* CPTTheme.h in Headers */, + DC579F1400992D42788BC536BECA664C /* CPTTimeFormatter.h in Headers */, + AC56ABFDD79481FFA18180BB17A6A56C /* CPTTradingRangePlot.h in Headers */, + C4408C6DE05217AF9260E0364DC8DA44 /* CPTUtilities.h in Headers */, + 7A752AFCEA553F550A5A07392FF37E9F /* CPTXYAxis.h in Headers */, + FBFF886995AA8DA2CE10F5E67EEDC2C5 /* CPTXYAxisSet.h in Headers */, + 1781D675BCD43FA783E8AE9C3CE4B2E3 /* CPTXYGraph.h in Headers */, + B05E558EA2F268C036A283E7B9B2BEE2 /* CPTXYPlotSpace.h in Headers */, + 6E874FB9BA5511882977BABEBF1AA808 /* NSCoderExtensions.h in Headers */, + 11A78FA0D77A493CD80E7CF800C9A9B8 /* NSDecimalNumberExtensions.h in Headers */, + 5EC62A6C29CD9A6E1C0759A33274FCF0 /* NSNumberExtensions.h in Headers */, ); runOnlyForDeploymentPostprocessing = 0; }; - 37ADE5075FF8178853B1A5F4434D07C3 /* Headers */ = { + 9DAD32ECFE6F3626048E3F5FC62C94E1 /* Headers */ = { isa = PBXHeadersBuildPhase; buildActionMask = 2147483647; files = ( - E150143D27FBE04F2D73800E92BDCBD7 /* IntelHex2BinConverter.h in Headers */, - 752F6AE718819039CF2E00756745BF1C /* iOSDFULibrary-umbrella.h in Headers */, + 74540D6C03D2B69BEBC12E59513EED35 /* Pods-nRF Toolbox-umbrella.h in Headers */, ); runOnlyForDeploymentPostprocessing = 0; }; - 8814621B33DC4FCA0508D29A6D978D68 /* Headers */ = { + AD4A870342B368739D7EB5ACDBA85EEA /* Headers */ = { isa = PBXHeadersBuildPhase; buildActionMask = 2147483647; files = ( - 715B4FE1A3FCDC86DA913803F6A9C6FD /* Pods-nRF Toolbox-umbrella.h in Headers */, + 71B9911B8B53FC085C96D0244B246569 /* EVReflection-umbrella.h in Headers */, ); runOnlyForDeploymentPostprocessing = 0; }; - CE7DA4CC08B3728D35F64E9A43A2CBB2 /* Headers */ = { + E10C976D93A78C6384BB428A3B2B5219 /* Headers */ = { isa = PBXHeadersBuildPhase; buildActionMask = 2147483647; files = ( - BE45CE5C52F9613AEF1A71CE4390A764 /* _CPTAnimationCGFloatPeriod.h in Headers */, - CBC0B672D3022F64A7ABE22546888A47 /* _CPTAnimationCGPointPeriod.h in Headers */, - A72D3B2A39827A917FADE2142560EEDF /* _CPTAnimationCGRectPeriod.h in Headers */, - BB6D9F6956C0DE95FF9327A0492E47EA /* _CPTAnimationCGSizePeriod.h in Headers */, - 6E00EC4F4DD458B732F8D0EBE96323EE /* _CPTAnimationNSDecimalPeriod.h in Headers */, - 1185A332F9CA42098537A774C4845FBC /* _CPTAnimationNSNumberPeriod.h in Headers */, - 4ADE41DCCF3A3E1ED6307B74BDAF5FB0 /* _CPTAnimationPlotRangePeriod.h in Headers */, - 46EE56F043B007E1B0600CCF34F8DF13 /* _CPTAnimationTimingFunctions.h in Headers */, - 90C83F5762C58EB03528CE3F169561CD /* _CPTBorderLayer.h in Headers */, - 93C58AFCFE3D9882FD8C07FF09410BA6 /* _CPTConstraintsFixed.h in Headers */, - 53DCF200A6B613CB8632EA69530F6E40 /* _CPTConstraintsRelative.h in Headers */, - D734FEE9E8D20C1DD031FC08095DCD59 /* _CPTDarkGradientTheme.h in Headers */, - E2E11FB6DF80CE6A24335E820A86EB19 /* _CPTFillColor.h in Headers */, - 1DD7A07691AB1230B3DF0E9D43371F7F /* _CPTFillGradient.h in Headers */, - 1A9B352799073781F8B80E9B1FD3033C /* _CPTFillImage.h in Headers */, - 3EB21FB587920243CFCE372958F80BE6 /* _CPTMaskLayer.h in Headers */, - 7CF16CDFF60CAF6FE5094033769B104C /* _CPTPlainBlackTheme.h in Headers */, - DB3C4A812C4F8D4C2E25DEF5E662E48D /* _CPTPlainWhiteTheme.h in Headers */, - 678BE7E60FA6386FD7B4CBA8E436DC6A /* _CPTSlateTheme.h in Headers */, - 9E774B6F65D03037C243849CC0DFEAFF /* _CPTStocksTheme.h in Headers */, - 7AFF5108499812B0A0BEFB19BA5DA18D /* _CPTXYTheme.h in Headers */, - 7DFDDCBCCC17DCB3199A02660FB78B57 /* CorePlot-CocoaTouch.h in Headers */, - 0F23538062B03DED836FB21F5D9D8906 /* CorePlot-umbrella.h in Headers */, - D10293B5AE586D7D1A3CD10239F34368 /* CorePlot.h in Headers */, - 96A992910936109C55F46243C06284A9 /* CPTAnimation.h in Headers */, - FAD4D6E2C2C5062C8D7167B4324513CB /* CPTAnimationOperation.h in Headers */, - 66D933290D0E2EA1CB98AD3A5C7BF6C7 /* CPTAnimationPeriod.h in Headers */, - DA4A9D476C2E02712DBE7B667A24A37B /* CPTAnnotation.h in Headers */, - F08494E36653D3CDF388FB1849219EC4 /* CPTAnnotationHostLayer.h in Headers */, - DC84CEFED4EC6F6E9253389328AFCE37 /* CPTAxis.h in Headers */, - 1BC0310471F08E88D4005F4601D1B5DE /* CPTAxisLabel.h in Headers */, - E19C5DE41A08DF66B2CF9A512BFBA20E /* CPTAxisLabelGroup.h in Headers */, - 198247B009AE40D5E329611FC43677F8 /* CPTAxisSet.h in Headers */, - 5A5ADC0C76D0C7BE84F267F0C2B6D436 /* CPTAxisTitle.h in Headers */, - AD000E93B5FAA8B8340C8DB369E8D5C3 /* CPTBarPlot.h in Headers */, - FF38E209DEFD71903629B9565087C367 /* CPTBorderedLayer.h in Headers */, - AFB8BFDD7F1E741921E8A7B6AD29FEA9 /* CPTCalendarFormatter.h in Headers */, - 3F678F77806348921144DEDE13CBE124 /* CPTColor.h in Headers */, - A1E1E03888AF3A605D775CA16914E0F7 /* CPTColorSpace.h in Headers */, - F416A58561511DB6D8A8E34B2D627530 /* CPTConstraints.h in Headers */, - 19EAEA30D1211C56FD167E3E5564B12B /* CPTDebugQuickLook.h in Headers */, - 25A5EF982E9894C0F13AA4CBF7F7A97A /* CPTDefinitions.h in Headers */, - CD81B1DBAB4ACB57C1696625FAC9F46C /* CPTDerivedXYGraph.h in Headers */, - 4FF43FC081E7A5BF42854D2B9D7B42FA /* CPTExceptions.h in Headers */, - 23A8C39C4DEDF0605F9C7BE1B8272D1A /* CPTFill.h in Headers */, - 513291DAA450FABB2776C19CB1BFE5C5 /* CPTFunctionDataSource.h in Headers */, - 1B7E24BAF5D828E6C00A2DDA5602597F /* CPTGradient.h in Headers */, - 028908D3DB1E0E400C9AF6FBA8501F44 /* CPTGraph.h in Headers */, - 5A0F25136C9BDC7A847FD1BABAEA4940 /* CPTGraphHostingView.h in Headers */, - 0451C95193D9754C614F81500542FC8A /* CPTGridLineGroup.h in Headers */, - 89F638EB2AFA1895CB7E512AECE5F54F /* CPTGridLines.h in Headers */, - 39EDBA10388CFA33012211B9571B942F /* CPTImage.h in Headers */, - DDFF81496801A484CC6BA761538B1451 /* CPTLayer.h in Headers */, - CC3BED3600BDA9F8160F2E8FFD39098E /* CPTLayerAnnotation.h in Headers */, - 3F2F091AB29B601BC2D665B91B0F8BBB /* CPTLegend.h in Headers */, - 1EFBB8447C8B0B83F844113CC7271D4A /* CPTLegendEntry.h in Headers */, - BED3E632B926EF31DF2D935DF5FE2358 /* CPTLimitBand.h in Headers */, - 401477B35A68A554F819BE989D03D4CF /* CPTLineCap.h in Headers */, - F4AA544A8AE09FB824B8B72F2146FF3B /* CPTLineStyle.h in Headers */, - D37CDA97C07699EB27D78092FF9E8616 /* CPTMutableLineStyle.h in Headers */, - C2FE616B7A11D815848A91D1CAF7F249 /* CPTMutableNumericData+TypeConversion.h in Headers */, - D9B958EA746A747705DDDC69B0CFF280 /* CPTMutableNumericData.h in Headers */, - 34AC0CC8CD195E29DFE87A43F2133A5E /* CPTMutablePlotRange.h in Headers */, - EFCEBBF82C283D61CEF57DF424E4D113 /* CPTMutableShadow.h in Headers */, - 7574BDE9E8F472D3570948D392B77A84 /* CPTMutableTextStyle.h in Headers */, - 07B93BB9849DA0C9E6982F6A93DA3138 /* CPTNumericData+TypeConversion.h in Headers */, - 5F59436600D577C96599E1CE61A5A55A /* CPTNumericData.h in Headers */, - 8BE05576BC48A0345A657C52D81EFEDF /* CPTNumericDataType.h in Headers */, - 8A5F51EF80EF5F4913E771F907B83571 /* CPTPathExtensions.h in Headers */, - 8B5719D44041AA20D8E3792229B6679B /* CPTPieChart.h in Headers */, - 83F932A14C5A16FECACB37BB8BAC958B /* CPTPlatformSpecificCategories.h in Headers */, - 02C0E170B04FC72832A7B81AEC730C30 /* CPTPlatformSpecificDefines.h in Headers */, - 335B783CB8967C7F6183F60F2C700E51 /* CPTPlatformSpecificFunctions.h in Headers */, - 528CA8199E763C37AF92654C1AF0257F /* CPTPlot.h in Headers */, - 2503FFF10C7F6D3F999B2E3DFC4EAE11 /* CPTPlotArea.h in Headers */, - 8CB6E725A7504524815F2345EE3E7785 /* CPTPlotAreaFrame.h in Headers */, - 5D229D5355B13CD6877917740FF46D3C /* CPTPlotGroup.h in Headers */, - DA3D6197E11892299A59DFBEAA7B2A53 /* CPTPlotRange.h in Headers */, - 1217114B03B512D236DFF0478FB7E6AE /* CPTPlotSpace.h in Headers */, - 3F80C35328543034209A3C8F6621FF17 /* CPTPlotSpaceAnnotation.h in Headers */, - D8CCDCF1FFC7C01E07985CE117CE5BA6 /* CPTPlotSymbol.h in Headers */, - B9408A80CC748DDA0338CC9F524073DE /* CPTRangePlot.h in Headers */, - E82E42BA7877B308485D2C0586ACD87A /* CPTResponder.h in Headers */, - 46179F0741DB3DD6C3DEBE86EEA2E776 /* CPTScatterPlot.h in Headers */, - 814FB9D2472EE048AC0B58D093592125 /* CPTShadow.h in Headers */, - 960DBD78EE68C327698C7EDBCEA40D5B /* CPTTextLayer.h in Headers */, - D4298274F61CE9A072D27331B23EA03A /* CPTTextStyle.h in Headers */, - 164197A580CC9ABCEE253AB67921B4B9 /* CPTTextStylePlatformSpecific.h in Headers */, - D84AA5628EEF35ECE2083F70CA844148 /* CPTTheme.h in Headers */, - C033B3CE5270E7D40C85CBB7BEB2D66C /* CPTTimeFormatter.h in Headers */, - 7105148075A63EB697974B679B3A74F8 /* CPTTradingRangePlot.h in Headers */, - 155D0428AC64DC9322BDCAAA89F02AE5 /* CPTUtilities.h in Headers */, - 617E481396CC5361CA63DFF63D3CA18F /* CPTXYAxis.h in Headers */, - B63E72B41B307AB6AC9490E5913D9484 /* CPTXYAxisSet.h in Headers */, - E8AD0FE6415177D5E4096A99CA08F587 /* CPTXYGraph.h in Headers */, - F6E0D81948A97583CAC8A0CF1330F37B /* CPTXYPlotSpace.h in Headers */, - F7F1AB2AC1C4F3B7CF8A2B16822BCA5B /* NSCoderExtensions.h in Headers */, - 624F3F88C6C1664E620248B7256DD17A /* NSDecimalNumberExtensions.h in Headers */, - 380E1F1D09C5252C08DD1A5487196BB3 /* NSNumberExtensions.h in Headers */, + 70A275AF022B0082E689A4F7857A1DE4 /* IntelHex2BinConverter.h in Headers */, + BFD716317F18A84B01075774E55A4B64 /* iOSDFULibrary-umbrella.h in Headers */, ); runOnlyForDeploymentPostprocessing = 0; }; - D7E5ACCD9439D9B4B93818039F858A33 /* Headers */ = { + F7084006BEC5E4E95D013253B2129528 /* Headers */ = { isa = PBXHeadersBuildPhase; buildActionMask = 2147483647; files = ( - 7E5A8BA2A7944437068EE379EDD9DF11 /* crypt.h in Headers */, - 0A8CC78B7D5522AFDB7660C919492110 /* ioapi.h in Headers */, - 51E9BD655294E26BAC914FA7C601E7A0 /* unzip.h in Headers */, - 58C632C23C48C8DFE9E53A2C5E4BAEC5 /* Zip-umbrella.h in Headers */, - BACB9922ECE93352DFA4E17C4BB93AD9 /* Zip.h in Headers */, - 3D78A91C00E60807EE6B3B67D33A6E21 /* zip.h in Headers */, + C48D02009181413F165DD730C941E062 /* crypt.h in Headers */, + 81BD985E7C6F3302D80EAD53D30BE6BD /* ioapi.h in Headers */, + 3A0E265D4A5B0E1D32186553CCA5193A /* unzip.h in Headers */, + 9F88E84E39D0FE11FBDFFE34515AA9D0 /* Zip-umbrella.h in Headers */, + 58EBC2571C947339D66D294831B69F9C /* Zip.h in Headers */, + AED11D40733AE7148D04547F425CF353 /* zip.h in Headers */, ); runOnlyForDeploymentPostprocessing = 0; }; /* End PBXHeadersBuildPhase section */ /* Begin PBXNativeTarget section */ - 570B1EFB2D11F5B06166FDA2A614F81C /* iOSDFULibrary */ = { + 03DD7CB0D843ACA94CB5F68975736BB9 /* CorePlot */ = { isa = PBXNativeTarget; - buildConfigurationList = 46EC2299A313886B883737DA453B9A83 /* Build configuration list for PBXNativeTarget "iOSDFULibrary" */; + buildConfigurationList = 33D4EB7990578F2B167F60AA46704D0D /* Build configuration list for PBXNativeTarget "CorePlot" */; buildPhases = ( - 81A676E377B01413CE4DA639040C96B8 /* Sources */, - BE8062B1EA73C0788A77D1BEC88A5112 /* Frameworks */, - 37ADE5075FF8178853B1A5F4434D07C3 /* Headers */, + 370D51F79E9D0FF5D102C04AD5A8F87B /* Headers */, + 6022363B112867698ED58BFED7772C68 /* Sources */, + F938631F1E3CA197A40C5DCFD5FDF58F /* Frameworks */, + E98565E0BC5BF15824C7BB33B2211B68 /* Resources */, ); buildRules = ( ); dependencies = ( - FF61DF48D426C5344B04392F48B2FA74 /* PBXTargetDependency */, ); - name = iOSDFULibrary; - productName = iOSDFULibrary; - productReference = BA5A044B62EA4245F2A6D392B937C262 /* iOSDFULibrary.framework */; + name = CorePlot; + productName = CorePlot; + productReference = 06F10A581D4E7DBC742488853092E58C /* CorePlot.framework */; productType = "com.apple.product-type.framework"; }; - 6DE24706FE9CF4E6C5DB4508F180A481 /* Zip */ = { + 28689B9EA4494CFEC2E8F991ABC3E674 /* EVReflection */ = { isa = PBXNativeTarget; - buildConfigurationList = A9D29C9A0296183A72406337A608A484 /* Build configuration list for PBXNativeTarget "Zip" */; + buildConfigurationList = 9E9469FBAAE299C467FAD7E12FD46864 /* Build configuration list for PBXNativeTarget "EVReflection" */; buildPhases = ( - 7F8BFA09A2CE47432F43BEFA34547EF6 /* Sources */, - 65256EE91631C3389C32CF9A5C33BFE0 /* Frameworks */, - D7E5ACCD9439D9B4B93818039F858A33 /* Headers */, + AD4A870342B368739D7EB5ACDBA85EEA /* Headers */, + EC423332A059E7BEF7AD89FB596B452F /* Sources */, + F90AC72F9597130E89A0284B34B2E032 /* Frameworks */, + 20371C7873F22E35D8C3BDA8BA03042C /* Resources */, ); buildRules = ( ); dependencies = ( ); - name = Zip; - productName = Zip; - productReference = 7024FA3D2C9A8D107F4AFD7D413899F9 /* Zip.framework */; + name = EVReflection; + productName = EVReflection; + productReference = EED13EF94EA85A952C774C92D36A2DC3 /* EVReflection.framework */; productType = "com.apple.product-type.framework"; }; - B398238A0BBBCD10E4DB4C8A7062A3C5 /* EVReflection */ = { + 31708EE6929C61C0EDA6F5DAE3AF9DB7 /* Zip */ = { isa = PBXNativeTarget; - buildConfigurationList = A0AA13ADD17C82A6A60F692F4BC03165 /* Build configuration list for PBXNativeTarget "EVReflection" */; + buildConfigurationList = 682C06ECE131AEF8F5DBFE10BD78252B /* Build configuration list for PBXNativeTarget "Zip" */; buildPhases = ( - 78FF898BF084AFCDC3ED8D4B6B375F63 /* Sources */, - 123581EDC71E5741F757DFAAF01C5C86 /* Frameworks */, - 23BAFC6FA3BCB8CC274F81E6F6F4A5E2 /* Headers */, + F7084006BEC5E4E95D013253B2129528 /* Headers */, + 9787B8ECF90B1B0B4865EF21965F89AD /* Sources */, + 2185653F9D7919639142321B99613A5D /* Frameworks */, + 1796187EDCEEEB10EFB12FD3C6CEF378 /* Resources */, ); buildRules = ( ); dependencies = ( ); - name = EVReflection; - productName = EVReflection; - productReference = E1CCA74555CF6B7342ECB752BB5B17F1 /* EVReflection.framework */; + name = Zip; + productName = Zip; + productReference = 91D50F1D83665EFB21C7B670B4CDE9D1 /* Zip.framework */; productType = "com.apple.product-type.framework"; }; - D943AA02BD98F9D616595F4B475BAF22 /* SWRevealViewController */ = { + 4D6453FDF0B3D2DF6B0758759E4777E8 /* Pods-nRF Toolbox */ = { isa = PBXNativeTarget; - buildConfigurationList = C4FBE4BC3AC1E434F79611088D044B76 /* Build configuration list for PBXNativeTarget "SWRevealViewController" */; + buildConfigurationList = 45F895A199AD040F14A46B2137ED8972 /* Build configuration list for PBXNativeTarget "Pods-nRF Toolbox" */; buildPhases = ( - E451908DB2E8C0EB7DE14909D5E13DC7 /* Sources */, - 376FD61CB1BF3B79721A2D162EEB873D /* Frameworks */, - 2098324AB830103A61FB5C30F811F03D /* Headers */, + 9DAD32ECFE6F3626048E3F5FC62C94E1 /* Headers */, + 982C77901BF7E307D35E756E6849E29B /* Sources */, + 91722B6B3817647F63BAF856095879D3 /* Frameworks */, + 6158172647143BFEE61F2E55FCEE492A /* Resources */, ); buildRules = ( ); dependencies = ( + 5851922F2ED99D3B312640C13B1BAD0A /* PBXTargetDependency */, + 2BEC01E76467B25460FD1D6E1BA498A4 /* PBXTargetDependency */, + 9BC2EC0928D31C9466C1FB1CB3F64017 /* PBXTargetDependency */, + 19C7E74E1C5469D34DB6CE4877F15496 /* PBXTargetDependency */, + 61D56B1D17107F3313E6819EE45AF53B /* PBXTargetDependency */, ); - name = SWRevealViewController; - productName = SWRevealViewController; - productReference = 45B4CAE0884A395D8A36378BFCF186A3 /* SWRevealViewController.framework */; + name = "Pods-nRF Toolbox"; + productName = "Pods-nRF Toolbox"; + productReference = 6769396A35E8505DE966482750EF3322 /* Pods_nRF_Toolbox.framework */; productType = "com.apple.product-type.framework"; }; - DE8C7C227ACE26864DC8DA02CCA66BAA /* CorePlot */ = { + 9506C7FCDAE6E6967A99655F452EEE93 /* iOSDFULibrary */ = { isa = PBXNativeTarget; - buildConfigurationList = 5B99F95BBCEC6CF26319BFD4CF7250F1 /* Build configuration list for PBXNativeTarget "CorePlot" */; + buildConfigurationList = B9259EE88FC2E1CE4C5562A1CA1CDC29 /* Build configuration list for PBXNativeTarget "iOSDFULibrary" */; buildPhases = ( - CD0820131504DEE8AB4F4D05CED7D431 /* Sources */, - 20A8F4E52B0A7CF7DEB18F3BEDD6D9B9 /* Frameworks */, - CE7DA4CC08B3728D35F64E9A43A2CBB2 /* Headers */, + E10C976D93A78C6384BB428A3B2B5219 /* Headers */, + E57A543EA46BA1C837263EDFDE67D3AD /* Sources */, + F4D1BE0F5683930F83EFF0126BA0AFD7 /* Frameworks */, + BF836638F09C34590DAB3D4EEF9B86BF /* Resources */, ); buildRules = ( ); dependencies = ( + 9AE2D736514F1C2496D97B6089C55D39 /* PBXTargetDependency */, ); - name = CorePlot; - productName = CorePlot; - productReference = 67B9ECE11236A9CE79948CA5A51FC537 /* CorePlot.framework */; + name = iOSDFULibrary; + productName = iOSDFULibrary; + productReference = EEC44B6BECF1F272C66C329F8C1AB018 /* iOSDFULibrary.framework */; productType = "com.apple.product-type.framework"; }; - E94ACD75310AD8302D353F49559E3E81 /* Pods-nRF Toolbox */ = { + A54C3C20DA76528607950189DA743CA4 /* SWRevealViewController */ = { isa = PBXNativeTarget; - buildConfigurationList = D3833E1D0DC2901047E2C7F86A58927D /* Build configuration list for PBXNativeTarget "Pods-nRF Toolbox" */; + buildConfigurationList = A59459CC15A2C475D673A32657065616 /* Build configuration list for PBXNativeTarget "SWRevealViewController" */; buildPhases = ( - 5269ABD2B89EC0573B7AEEB133B7C5F0 /* Sources */, - 8F673A7F08D72EFF1E54E4AD0AF35D65 /* Frameworks */, - 8814621B33DC4FCA0508D29A6D978D68 /* Headers */, + 077140873F47C670ADE655586AF9A228 /* Headers */, + E938F39ECB145ED92837124964558FEF /* Sources */, + 6CCCA96589DC05D10202796A9F61C23C /* Frameworks */, + 03320A1D3FFE10C317F8FB9E76AF0735 /* Resources */, ); buildRules = ( ); dependencies = ( - 0475AC3E71008C2B5D1ABE843D36F2CA /* PBXTargetDependency */, - 7039E97FAC3F7200967C0546D4556B43 /* PBXTargetDependency */, - EB4BD4B84C7CA053902B338E83352234 /* PBXTargetDependency */, - 263069BD2DA6AEE12E33C7C092D58A72 /* PBXTargetDependency */, - 7456360A4B81FF125F1B077D11805382 /* PBXTargetDependency */, ); - name = "Pods-nRF Toolbox"; - productName = "Pods-nRF Toolbox"; - productReference = F6978EF1930634769F4579C98022922C /* Pods_nRF_Toolbox.framework */; + name = SWRevealViewController; + productName = SWRevealViewController; + productReference = D705862DF7BDFE69DF07BF527C353787 /* SWRevealViewController.framework */; productType = "com.apple.product-type.framework"; }; /* End PBXNativeTarget section */ /* Begin PBXProject section */ - D41D8CD98F00B204E9800998ECF8427E /* Project object */ = { + BFDFE7DC352907FC980B868725387E98 /* Project object */ = { isa = PBXProject; attributes = { - LastSwiftUpdateCheck = 0830; - LastUpgradeCheck = 0700; + LastSwiftUpdateCheck = 1020; + LastUpgradeCheck = 1020; }; - buildConfigurationList = 2D8E8EC45A3A1A1D94AE762CB5028504 /* Build configuration list for PBXProject "Pods" */; + buildConfigurationList = 4821239608C13582E20E6DA73FD5F1F9 /* Build configuration list for PBXProject "Pods" */; compatibilityVersion = "Xcode 3.2"; - developmentRegion = English; + developmentRegion = en; hasScannedForEncodings = 0; knownRegions = ( en, ); - mainGroup = 7DB346D0F39D3F0E887471402A8071AB; - productRefGroup = F72F40BA072DA2728B1CB87C330DF935 /* Products */; + mainGroup = CF1408CF629C7361332E53B88F7BD30C; + productRefGroup = C6A7C47112981A69C963A60897F650F9 /* Products */; projectDirPath = ""; projectRoot = ""; targets = ( - DE8C7C227ACE26864DC8DA02CCA66BAA /* CorePlot */, - B398238A0BBBCD10E4DB4C8A7062A3C5 /* EVReflection */, - 570B1EFB2D11F5B06166FDA2A614F81C /* iOSDFULibrary */, - E94ACD75310AD8302D353F49559E3E81 /* Pods-nRF Toolbox */, - D943AA02BD98F9D616595F4B475BAF22 /* SWRevealViewController */, - 6DE24706FE9CF4E6C5DB4508F180A481 /* Zip */, + 03DD7CB0D843ACA94CB5F68975736BB9 /* CorePlot */, + 28689B9EA4494CFEC2E8F991ABC3E674 /* EVReflection */, + 9506C7FCDAE6E6967A99655F452EEE93 /* iOSDFULibrary */, + 4D6453FDF0B3D2DF6B0758759E4777E8 /* Pods-nRF Toolbox */, + A54C3C20DA76528607950189DA743CA4 /* SWRevealViewController */, + 31708EE6929C61C0EDA6F5DAE3AF9DB7 /* Zip */, ); }; /* End PBXProject section */ +/* Begin PBXResourcesBuildPhase section */ + 03320A1D3FFE10C317F8FB9E76AF0735 /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 1796187EDCEEEB10EFB12FD3C6CEF378 /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 20371C7873F22E35D8C3BDA8BA03042C /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 6158172647143BFEE61F2E55FCEE492A /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; + BF836638F09C34590DAB3D4EEF9B86BF /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; + E98565E0BC5BF15824C7BB33B2211B68 /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXResourcesBuildPhase section */ + /* Begin PBXSourcesBuildPhase section */ - 5269ABD2B89EC0573B7AEEB133B7C5F0 /* Sources */ = { + 6022363B112867698ED58BFED7772C68 /* Sources */ = { isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; files = ( - B00D4E70075D6CDEFD3F92AE30357C17 /* Pods-nRF Toolbox-dummy.m in Sources */, + 3B2A84F0A3A7F59B6731BAB84232DFA8 /* _CPTAnimationCGFloatPeriod.m in Sources */, + CBC6738DC2D347E1B448D00195D0E427 /* _CPTAnimationCGPointPeriod.m in Sources */, + 72735509A8041EB6026E118BBBDE2F82 /* _CPTAnimationCGRectPeriod.m in Sources */, + E433832F9E175B10C95F2E8C4416089F /* _CPTAnimationCGSizePeriod.m in Sources */, + DDB90981077D0C569ADA96270B745486 /* _CPTAnimationNSDecimalPeriod.m in Sources */, + B05CA4C262721A96F513FF56DD16ACE2 /* _CPTAnimationNSNumberPeriod.m in Sources */, + 9616BA27B192980A6A1EE358BE71A3FE /* _CPTAnimationPlotRangePeriod.m in Sources */, + C69F920BF1E4CBB7135C3F4207C63609 /* _CPTAnimationTimingFunctions.m in Sources */, + 06B5A2FD28A09B718E2F56264A9C5A09 /* _CPTBorderLayer.m in Sources */, + F6573C4E75C7FAA201F9A028ED043315 /* _CPTConstraintsFixed.m in Sources */, + 254591BEB5ABE8CD4C6A10A9452BD09A /* _CPTConstraintsRelative.m in Sources */, + 361F647784F10DA130288EFEE7C9B5F0 /* _CPTDarkGradientTheme.m in Sources */, + 4C11855F5F9DE877296FB96ACC2F729E /* _CPTFillColor.m in Sources */, + 1600A11C1752FE09ABDDE61F36FB75F2 /* _CPTFillGradient.m in Sources */, + E1EBA7F91766B62ED9D40D1FD5ADCB7D /* _CPTFillImage.m in Sources */, + A223C246AE7B2B140E160EED7AB3ACBA /* _CPTMaskLayer.m in Sources */, + C1D50FA7D1DE7747766BC4E9E4CE0009 /* _CPTPlainBlackTheme.m in Sources */, + E7CC6960DC151BDBEEFCBAD666873FB0 /* _CPTPlainWhiteTheme.m in Sources */, + EFE16FBC017DE6FFEEBBE9A417A7D85E /* _CPTSlateTheme.m in Sources */, + 75F99ACAFA4D9CC6C5494BCFAF59D81F /* _CPTStocksTheme.m in Sources */, + CC56EF332190E4D1CEA393152473F453 /* _CPTXYTheme.m in Sources */, + 6894E64B3BDA30B42E82E87D0BFA5AFA /* CorePlot-dummy.m in Sources */, + 9F7F86E4AA020162E8802FCB48FC051A /* CorePlotProbes.d in Sources */, + 98AE2263A14827C3AD812057B532EBEE /* CPTAnimation.m in Sources */, + 5D1356B851C5DA2C5443187B3A23524C /* CPTAnimationOperation.m in Sources */, + 3A8714C9454510BD6CAD2FEC17670596 /* CPTAnimationPeriod.m in Sources */, + 19D4D12BE03CCB57FA2CCE4D26235297 /* CPTAnnotation.m in Sources */, + 43E24942250306EBF1EC19735B0EE377 /* CPTAnnotationHostLayer.m in Sources */, + 3CE20FA24DA39C8BD7D466F98ABC771C /* CPTAxis.m in Sources */, + 89965650A7E0385D8A335764401256C8 /* CPTAxisLabel.m in Sources */, + 56B88358E869E0E0A33E89D3628C5945 /* CPTAxisLabelGroup.m in Sources */, + 86B04A22A341EB38C8F25B539E3CE324 /* CPTAxisSet.m in Sources */, + 5EC5314E357590BA3750EF4F98DA571C /* CPTAxisTitle.m in Sources */, + 9CEEF4F6C38D942ADF8CBF90928B4548 /* CPTBarPlot.m in Sources */, + 96DE32FEC434D81F57D35711DE57558D /* CPTBorderedLayer.m in Sources */, + FB9BEDB9930E9E45767A40121C90A600 /* CPTCalendarFormatter.m in Sources */, + D7D565CD9FAF28AAF3159FC75776C36D /* CPTColor.m in Sources */, + 6ED99B46C425D5415233D418113F6289 /* CPTColorSpace.m in Sources */, + 1642EAE7BCC6286CFD02DA6F775946E2 /* CPTConstraints.m in Sources */, + 4AEA9D19937F4CDBBB0EEF2F9398B3A6 /* CPTDefinitions.m in Sources */, + 828F84EA65637993D8C90C954DD3C40C /* CPTDerivedXYGraph.m in Sources */, + D5DBB8DBD2F1040FCF692362DC4C2E77 /* CPTExceptions.m in Sources */, + 7A3A7E8EC25769F587398D6AE46F0D94 /* CPTFill.m in Sources */, + 5614B0997CF605C0AC8B9A704B8173A4 /* CPTFunctionDataSource.m in Sources */, + 0E1176E3B35630BF5F3937B5978B9E33 /* CPTGradient.m in Sources */, + 8D4320B5EF47192B130BE449E98AE4E4 /* CPTGraph.m in Sources */, + 48E5F9A0A5D76B1329A03F012556FA08 /* CPTGraphHostingView.m in Sources */, + 690FA0588E4A4E4EFEBF31F45AB73521 /* CPTGridLineGroup.m in Sources */, + E70C39F72AF0A9D3DA99364B6D7683E3 /* CPTGridLines.m in Sources */, + 491F508971AB435BC5ED5EBCEBB275DF /* CPTImage.m in Sources */, + 410E31ECC5956F4C8DB2DB6B35CAE94D /* CPTImagePlatformSpecific.m in Sources */, + A7E4D02DDD295FBD76F977569EBA4C30 /* CPTLayer.m in Sources */, + F03D6EC4045EDFF73F75C7A3F0FA7372 /* CPTLayerAnnotation.m in Sources */, + 1CF473617080096952AE59E23B3F7F0E /* CPTLegend.m in Sources */, + 50000AFCA2150502E95C743A7F65EF9E /* CPTLegendEntry.m in Sources */, + F920FCA4C34C03A38F2CE7534730754B /* CPTLimitBand.m in Sources */, + 222EB19FE4648A28548F3CC1F5AFC234 /* CPTLineCap.m in Sources */, + 620FA3F68B4D792BAB4D94AE59C85CFB /* CPTLineStyle.m in Sources */, + 48B7901C1B7B3427A7F282DCB3786EBA /* CPTMutableLineStyle.m in Sources */, + B5F4C94D522C330F7624CF378BF73921 /* CPTMutableNumericData+TypeConversion.m in Sources */, + 6CC48A95BA68FE0AC464AFBA29DFCA68 /* CPTMutableNumericData.m in Sources */, + 2DA3306B4D37363AFAF471EF6318BCF4 /* CPTMutablePlotRange.m in Sources */, + 0EEFC9184B7354AADB947AD728416037 /* CPTMutableShadow.m in Sources */, + 77F32AD3247B7E4E4BA3DCC097C98A14 /* CPTMutableTextStyle.m in Sources */, + 502572454188B9C037FA078C388E1BE4 /* CPTNumericData+TypeConversion.m in Sources */, + A7F15D3C0FA28267173C531DAA0EC1F6 /* CPTNumericData.m in Sources */, + 262BD3B373C519C98321AB60888C664D /* CPTNumericDataType.m in Sources */, + B6E52EEF0B7358D4C8B5FD55242E340C /* CPTPathExtensions.m in Sources */, + 970AA724F175C68A28A2AA3AFF53C33D /* CPTPieChart.m in Sources */, + AF0D40A2796C9A6E20484E105F54D74D /* CPTPlatformSpecificCategories.m in Sources */, + AD389254D3A6A9101BAA9D86546AFB4C /* CPTPlatformSpecificDefines.m in Sources */, + 6106EFC25BABD1020056EB99EB3CE6F2 /* CPTPlatformSpecificFunctions.m in Sources */, + 366F4954F2D911D89993FD6DC4DEE202 /* CPTPlot.m in Sources */, + 0DE82B0B997C9FBD26B9A30361355050 /* CPTPlotArea.m in Sources */, + 2B03694E6FAE9BDC521116CC13520C95 /* CPTPlotAreaFrame.m in Sources */, + E39E9541851501BCA537291D0F0272E3 /* CPTPlotGroup.m in Sources */, + E3068BD706632027B687B327305B465B /* CPTPlotRange.m in Sources */, + 3D342ECA1CA0589AFB597DDDDC5259A3 /* CPTPlotSpace.m in Sources */, + 72C72AE7CD3EC27C8AFD187B91D034F4 /* CPTPlotSpaceAnnotation.m in Sources */, + D131A1A4D81E6C3FDC8BA052F8A9BC01 /* CPTPlotSymbol.m in Sources */, + 8904AA779A900F7BCA691EB2C970042F /* CPTRangePlot.m in Sources */, + 629ADA84F1BD5656A4E28392199DE43B /* CPTScatterPlot.m in Sources */, + D270025A8F1E15609A2C783F17CEC017 /* CPTShadow.m in Sources */, + F32537C7E6DAD42486DA151A9A13B4B8 /* CPTTextLayer.m in Sources */, + 21D7E8B1FA347661D25A9A7F91128C5E /* CPTTextStyle.m in Sources */, + AA790E4FF27AE49483B3D5D7591DDA61 /* CPTTextStylePlatformSpecific.m in Sources */, + 58DA8CF1D216923CD98514B0E6C987FE /* CPTTheme.m in Sources */, + C45D07680AA365E1B32B065996EEA642 /* CPTTimeFormatter.m in Sources */, + 67C6E2E08F2D113418E4CA467F28731F /* CPTTradingRangePlot.m in Sources */, + 7C2CFEC47D63567352A2F2C910528997 /* CPTUtilities.m in Sources */, + 296C7DFB20CC622A8DC36A1603435A54 /* CPTXYAxis.m in Sources */, + 5A6DB821F9135C94EF6111F42CBD78A6 /* CPTXYAxisSet.m in Sources */, + 5B1CFD374E83E1276EC65CF00C01B046 /* CPTXYGraph.m in Sources */, + 68FC3F739FE4E82162CD3ECF1914AF14 /* CPTXYPlotSpace.m in Sources */, + 1FAB1DEC644B60BBFCE7B7B2E49C7088 /* NSCoderExtensions.m in Sources */, + D185FD97B633F7541A80020DCDC172C5 /* NSDecimalNumberExtensions.m in Sources */, + 73B496EA53DCF57DF5A3E5AA7E0324AE /* NSNumberExtensions.m in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; - 78FF898BF084AFCDC3ED8D4B6B375F63 /* Sources */ = { + 9787B8ECF90B1B0B4865EF21965F89AD /* Sources */ = { isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; files = ( - 45ED54C90624E2E6B3F7F6B3889D561E /* ConversionOptions.swift in Sources */, - A107C96757EB4C96950D1E1393B6D62B /* DeserializationStatus.swift in Sources */, - BD7F6B9EB9973D74092FB7C03238BECA /* EVArrayExtension.swift in Sources */, - 35588E15BD679CA290032D7544D1B044 /* EVDictionaryExtension.swift in Sources */, - B60EF5C9190B2BFC25F771674BDFBA9D /* EVObject.swift in Sources */, - D9E73DE262C7ED7902BEFA5BF4CD6C0A /* EVReflectable.swift in Sources */, - 7C4D883BC97A550C8235563A4F9A4CB2 /* EVReflection-dummy.m in Sources */, - A9543F2D997D67C1E84C7B82A2D4F863 /* EVReflection.swift in Sources */, - A58FD7129DF3F062E9C75E6F2DBF48FE /* EVWorkaroundHelpers.swift in Sources */, - 284096F8590C188EDC701BCE00C609F0 /* PrintOptions.swift in Sources */, + 78243A9C8EB23896A7060AD112768BE4 /* ioapi.c in Sources */, + 3F4951DF609B116C2D275BB0061F03FA /* QuickZip.swift in Sources */, + 9DF6FBB4FE177E132A003FE70C48BC53 /* unzip.c in Sources */, + 0DD66E633289926B39F3E80F0CF0A353 /* Zip-dummy.m in Sources */, + B8805D6C0964A4D45BB2F2D719A8812B /* zip.c in Sources */, + 36BAE5E1904A8797DFB9A36DAC478E3E /* Zip.swift in Sources */, + 55692EF8E5DDBACE835C68A9398BC3BD /* ZipUtilities.swift in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; - 7F8BFA09A2CE47432F43BEFA34547EF6 /* Sources */ = { + 982C77901BF7E307D35E756E6849E29B /* Sources */ = { isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; files = ( - B8819E4624E16D8177A9899E340C35AA /* ioapi.c in Sources */, - 4B12C32A76B1CE1E3EBA3FE5EF36FDD3 /* QuickZip.swift in Sources */, - D755535B0DF8EE88DBCCA40AF73A8CBE /* unzip.c in Sources */, - B5252700B06A7CEE763E68B5ECF69C78 /* Zip-dummy.m in Sources */, - 1C845F8441007558AE7386064FE833AD /* zip.c in Sources */, - 48EE55BDBD977CF0E0B59A56C6329901 /* Zip.swift in Sources */, - D2B25EDC91A9E93A3A099B1EB385E320 /* ZipUtilities.swift in Sources */, + C00DA0DA40AC10EC44908B4B23A5B7E4 /* Pods-nRF Toolbox-dummy.m in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; - 81A676E377B01413CE4DA639040C96B8 /* Sources */ = { + E57A543EA46BA1C837263EDFDE67D3AD /* Sources */ = { isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; files = ( - 400464B8A4A6E5897B6C6B6F67DE4219 /* ButtonlessDFU.swift in Sources */, - BBF10223BBE7FA3BC2A166AE047CD744 /* crc32.swift in Sources */, - 359752737A8C17F221B32FFACD30212B /* Data.swift in Sources */, - E8E991B5C8C7B55BBEECB9A0A822D307 /* DFUController.swift in Sources */, - CF9D92DCC22BEC637AFCCA5C8291C2FC /* DFUControlPoint.swift in Sources */, - 01322E33B313EBAC8C9C39CF8A5E46BB /* DFUExecutor.swift in Sources */, - 975B7FB1C5BFB02E56697335FEA425D7 /* DFUFirmware.swift in Sources */, - E844802FAA3AA30FB5EE281288C8E2A6 /* DFUPacket.swift in Sources */, - 10684EC843B5094D5E974B134A677717 /* DFUPeripheral.swift in Sources */, - 0D9F7CCBFC8144496C156C61020F26B6 /* DFUPeripheralDelegate.swift in Sources */, - EECC2055944AD402FC384B523811F67D /* DFUPeripheralSelector.swift in Sources */, - C6549066C22F81E10F8071B78F44D0EC /* DFUPeripheralSelectorDelegate.swift in Sources */, - 6454653B7C3EE76C7AF11644A935D2F1 /* DFUService.swift in Sources */, - FAC332B9C56587D7115FFEBCEF64C7DE /* DFUServiceController.swift in Sources */, - E6EFD83C3EA5EC920589ECE90956893D /* DFUServiceDelegate.swift in Sources */, - 7C23B87D1D226CF5E7D3E94949CFEB3E /* DFUServiceInitiator.swift in Sources */, - 098EA1C961FF0A005E9664F8CE1E4E3E /* DFUServiceSelector.swift in Sources */, - 941D05A452C1F2FCCFFD5A8B7A9EEF68 /* DFUStarterPeripheral.swift in Sources */, - 59D23731034D480FC7D6B5AE2B7FDFF2 /* DFUStream.swift in Sources */, - 2519C86FCEAD3E52A40787A134BAD94A /* DFUStreamBin.swift in Sources */, - 776499CEE8DF10BBAACE785C9F447A8E /* DFUStreamHex.swift in Sources */, - BD69F40211574CD9E7EA414022AB7614 /* DFUStreamZip.swift in Sources */, - B4FD35227C1800C253425D8271FC2DB8 /* DFUVersion.swift in Sources */, - E1596EE5C601F8570252AB5ED2542613 /* Double.swift in Sources */, - D419BA5A7DC20FBCB3D5726D349F5CAE /* IntelHex2BinConverter.m in Sources */, - 1E5062FD096EDDF190E68CD76882D96D /* iOSDFULibrary-dummy.m in Sources */, - 867CD2D647947D7D86EF724898A601DF /* LegacyDFUExecutor.swift in Sources */, - 0FC0B9F2D6FC5740273559C790C9B4EE /* LegacyDFUPeripheral.swift in Sources */, - 253AB194E391160253343A3E563E5CCD /* LegacyDFUPeripheralDelegate.swift in Sources */, - 8733CC03512833333E848F8C2A90A894 /* LegacyDFUService.swift in Sources */, - 8BE5EEDD0D189F165201A726C5B77C83 /* LegacyDFUServiceInitiator.swift in Sources */, - EEE56F6293B6F86444BED4CDC6234AAA /* LoggerDelegate.swift in Sources */, - 523E999816F70DB5ACFFA9F77A0F014D /* LoggerHelper.swift in Sources */, - 93E94C7A6E3F76EFF1B4F17FE5D332B9 /* Manifest.swift in Sources */, - 1C54A6B77203286061C3EA6504E8C610 /* ManifestFirmwareInfo.swift in Sources */, - C9481668EE25A75E3F03BD42CEB4636F /* SecureDFUControlPoint.swift in Sources */, - 7A96B3BB4FBC7AE48D70426635BD9640 /* SecureDFUExecutor.swift in Sources */, - 958479F1EB708A42D9A7FDC184B99E68 /* SecureDFUPacket.swift in Sources */, - 50D18CDC8CB1F47E501C5BDEED4B536F /* SecureDFUPeripheral.swift in Sources */, - B363F0EB578D43CD79BE93FDDA32582A /* SecureDFUPeripheralDelegate.swift in Sources */, - 3437D39A89FCCA78EC1575E17A524633 /* SecureDFUService.swift in Sources */, - 15CB30AF7FDA60B14201718F7A3828F1 /* SecureDFUServiceInitiator.swift in Sources */, - B3013DB2565885D18384F41AE84CB8FE /* SoftdeviceBootloaderInfo.swift in Sources */, - 664824A193F98B342B49FF257417C50F /* ZipArchive.swift in Sources */, + 84B272DAC569385CDC64409C750359A4 /* ButtonlessDFU.swift in Sources */, + 1B0005D7672F30D1763C7CB7AB56F7DD /* crc32.swift in Sources */, + 8D15CDB0855EF5448F484B4E29D6BB52 /* Data.swift in Sources */, + 9C132658571BB11B8B1D5F9C82018467 /* DFUCharacteristic.swift in Sources */, + 870D72F5750DBB3532B9A701213F249F /* DFUController.swift in Sources */, + 9AC55C428447F9168E77A66DBE0F4380 /* DFUControlPoint.swift in Sources */, + 70F5DB8DC7AF95A4975D05D2248867A4 /* DFUExecutor.swift in Sources */, + 801BFE40C72C105EBE741AD7C179FDA5 /* DFUFirmware.swift in Sources */, + 1B43410965E9C4C577822893EDD16D0D /* DFUPacket.swift in Sources */, + 0D34E8F8B264C87B20BB8F90ADA2A50F /* DFUPeripheral.swift in Sources */, + 9D2928F36717ED1DDA5FFE716498BD26 /* DFUPeripheralDelegate.swift in Sources */, + 9D68BC00A6818AE0E1ED7B573CBF5C58 /* DFUPeripheralSelector.swift in Sources */, + 1C945C55567B3DB4348BCC47396EB4C0 /* DFUPeripheralSelectorDelegate.swift in Sources */, + 0BA7E57BB20FFD4F72E7F64DA135634A /* DFUService.swift in Sources */, + 906062AE1653562351E87D1D2F3B5D34 /* DFUServiceController.swift in Sources */, + 83E7CEFCB9647C3B8AEBBDFB320E7896 /* DFUServiceDelegate.swift in Sources */, + 351F97CE5159DE2260FF8023210E948D /* DFUServiceInitiator.swift in Sources */, + 20F95156FBF365840518C3DD85165195 /* DFUServiceSelector.swift in Sources */, + 11C26AE941A330D4EE3CE8B78BD9F1B7 /* DFUStarterPeripheral.swift in Sources */, + F026D53055DC2433447C8745EDA06732 /* DFUStream.swift in Sources */, + 3B8ABEAB9E2A8BB06EF48C48642A458D /* DFUStreamBin.swift in Sources */, + E66CDDFF67F6C97078571128869786B5 /* DFUStreamHex.swift in Sources */, + 121D5E23A9E7EAB0E8E954EE0461C176 /* DFUStreamZip.swift in Sources */, + 400FEFD1EE862A29002E9CAF33698F61 /* DFUUuidHelper.swift in Sources */, + 1B3BED90A7D0E3745E4C76A9F330E707 /* DFUVersion.swift in Sources */, + 93D473C2C1AC2E6ABAAF741E3FE03E80 /* Double.swift in Sources */, + 2E31C385EEF78F9A1D9FB1E03F74274F /* IntelHex2BinConverter.m in Sources */, + 1FC61EA2779AF0A68079766F4FF01BDB /* iOSDFULibrary-dummy.m in Sources */, + 0B00ED941BCDBD48EFAAF498A35666B9 /* LegacyDFUExecutor.swift in Sources */, + 471AFF795236574510D1E3FF28F954B8 /* LegacyDFUPeripheral.swift in Sources */, + AD7A027425ED338CB5994B512BCFCDE5 /* LegacyDFUPeripheralDelegate.swift in Sources */, + 0B3B0412FBA24FD06F29FB124B06C0FA /* LegacyDFUService.swift in Sources */, + CDA0433E04F660F2A6EB533CFFD07DD9 /* LegacyDFUServiceInitiator.swift in Sources */, + 3177C2856B288774F9B74F48E0716F29 /* LoggerDelegate.swift in Sources */, + 0E3AE8087F95A116DFC559A197A2628D /* LoggerHelper.swift in Sources */, + BD04C32AF0BA3F566B2FB835EACDB08A /* Manifest.swift in Sources */, + 8F7967379EFB0A375E0537B87B98CDD7 /* ManifestFirmwareInfo.swift in Sources */, + 36988B7759EA28D6F11B9CE076AA93F6 /* SecureDFUControlPoint.swift in Sources */, + FA605DE18AEDB7FC22BCAD9625130D67 /* SecureDFUExecutor.swift in Sources */, + 3DB902D6E88CC2B4F7FB60D5BC2B750F /* SecureDFUPacket.swift in Sources */, + 0EDA396644E129571FAEEDE4DFCE28DF /* SecureDFUPeripheral.swift in Sources */, + A6F17357DA92285CD918A2A1982C03D1 /* SecureDFUPeripheralDelegate.swift in Sources */, + 1C34B65A435D234948A30B46F0C4B7D6 /* SecureDFUService.swift in Sources */, + 3958404A02CEB15C5CABF53AED2BD662 /* SecureDFUServiceInitiator.swift in Sources */, + 118322E85CCAEA5817A65994A25D3FE0 /* SoftdeviceBootloaderInfo.swift in Sources */, + 95E412942CCAD76685AA7BC6CECC5910 /* ZipArchive.swift in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; - CD0820131504DEE8AB4F4D05CED7D431 /* Sources */ = { + E938F39ECB145ED92837124964558FEF /* Sources */ = { isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; files = ( - 2EDE25B4066DE51BBD73E3202BEA9943 /* _CPTAnimationCGFloatPeriod.m in Sources */, - 3832987F32174D6FCF16DE91511F3813 /* _CPTAnimationCGPointPeriod.m in Sources */, - 3EB11CA12918E119C32061BA5999E1F5 /* _CPTAnimationCGRectPeriod.m in Sources */, - 741799C89CF60554E738CF27221251C8 /* _CPTAnimationCGSizePeriod.m in Sources */, - 898364C362D3DC5094351A532208D858 /* _CPTAnimationNSDecimalPeriod.m in Sources */, - 1389C6CDC8116A4DE3E35948AA49FB01 /* _CPTAnimationNSNumberPeriod.m in Sources */, - 0F65DECB2270037AD2B6A7AFEB07722A /* _CPTAnimationPlotRangePeriod.m in Sources */, - 5B765B124432D9F1E71A37D934E7D464 /* _CPTAnimationTimingFunctions.m in Sources */, - 51DB345B739AE99CC4CDB09E3871C3EB /* _CPTBorderLayer.m in Sources */, - BEF6FC33DFB122D8B090BAA95C24F036 /* _CPTConstraintsFixed.m in Sources */, - 2D251187441A1B6FE338ABA2B58175F8 /* _CPTConstraintsRelative.m in Sources */, - 5031F1CD78CD210CDBAF14AF0695317E /* _CPTDarkGradientTheme.m in Sources */, - 250C24643D266259DB6DE8A9243CCBB0 /* _CPTFillColor.m in Sources */, - 566B3DFA937B47DE04802E3D1C83A7FA /* _CPTFillGradient.m in Sources */, - 774A307D68F509968AE212BA5D31ED28 /* _CPTFillImage.m in Sources */, - 23B16C4343B17619981218B70D082DD6 /* _CPTMaskLayer.m in Sources */, - 89952D8B10CD4C1C3C09F48AAE1B3032 /* _CPTPlainBlackTheme.m in Sources */, - 812CC12BD629481642FF54333F22BEBE /* _CPTPlainWhiteTheme.m in Sources */, - 81B53A1F1D7959CCBCB407AC4FF92D11 /* _CPTSlateTheme.m in Sources */, - A74CAAA2EA22CDF59BED5E42DC42D5FF /* _CPTStocksTheme.m in Sources */, - C5501279ADA85FE7F88BACEE1EE0B9E6 /* _CPTXYTheme.m in Sources */, - 80B71769CB16EAA46BA16612014264C2 /* CorePlot-dummy.m in Sources */, - 382C1285BB931D2A740054FD3ECD9876 /* CorePlotProbes.d in Sources */, - 3E96EC9EDECAE779EBBA9B43FC47400C /* CPTAnimation.m in Sources */, - 7BF5DE2A1F3009723C8992FB21F82DF9 /* CPTAnimationOperation.m in Sources */, - 2C8AE7747106103E66AE0BD1795403FB /* CPTAnimationPeriod.m in Sources */, - 26C78B403BC4965587C084C5AA249C86 /* CPTAnnotation.m in Sources */, - 56EDB82E11DA82D42CB42D398B852169 /* CPTAnnotationHostLayer.m in Sources */, - 700E9130AFA6AC6E14B95EEE92A19654 /* CPTAxis.m in Sources */, - 91F0BDD19690D84C37B2EF42CBEC509D /* CPTAxisLabel.m in Sources */, - B078904B4299F6E9DB7AE48E15A1E90A /* CPTAxisLabelGroup.m in Sources */, - 66D158C23DC10F6BBE79BF5DF1F710F2 /* CPTAxisSet.m in Sources */, - 5C7EB87E957CFFCE59D90854FEFE9211 /* CPTAxisTitle.m in Sources */, - 8F9D90BDCDE25B78EAB3B520C8E6468B /* CPTBarPlot.m in Sources */, - 4268FA6470805557BB8042BA7F99BC1C /* CPTBorderedLayer.m in Sources */, - EDD24131BCFC7E8E3863F628AB0DBC50 /* CPTCalendarFormatter.m in Sources */, - 450B5D6BFB96D46AD18EA4A2DA89A35C /* CPTColor.m in Sources */, - 19C289DC226DBDBE103A42AFEA67633B /* CPTColorSpace.m in Sources */, - FE86DF0E83CCE302A7D3B816274C66AC /* CPTConstraints.m in Sources */, - F6203A2D51E706DAE136A3F83B9F8D6E /* CPTDefinitions.m in Sources */, - 1028534973092CDB7CBF8A79A48F0B78 /* CPTDerivedXYGraph.m in Sources */, - B202BD063622F4F4F6BEE617083DE094 /* CPTExceptions.m in Sources */, - DE42A26BFF336816DA3AF9EC1BA93E62 /* CPTFill.m in Sources */, - 31CB38FF5CB957A6764A583156CC7EBD /* CPTFunctionDataSource.m in Sources */, - A4C7E293D3F3430C5604C40EDCBD411C /* CPTGradient.m in Sources */, - 8753227C13A5B76FE2AB572C5A4D8CDA /* CPTGraph.m in Sources */, - 9C6FC311FFF7BECA75AC7D319A68AA0C /* CPTGraphHostingView.m in Sources */, - B63A6F09B56AD49C6A77CB544E380B43 /* CPTGridLineGroup.m in Sources */, - 47CD402EAC3FE69914EF8FBCEF61DF71 /* CPTGridLines.m in Sources */, - 9E216B82D9408490D22613C8847CE9FA /* CPTImage.m in Sources */, - 389CF3579EA8E9559F98A957EFD09E1C /* CPTImagePlatformSpecific.m in Sources */, - F86FCF7521D327A6B3A229DFA8069825 /* CPTLayer.m in Sources */, - 2FF4EA5F6D5CC7AF7077D12AA82F0432 /* CPTLayerAnnotation.m in Sources */, - C5A1D7FE4F06628172711A27C3E06AAD /* CPTLegend.m in Sources */, - B20A0FA8B3AA7DA56109F16FF5B34E54 /* CPTLegendEntry.m in Sources */, - 9EEA6B5D71ABD8FEA9873B27A795ECB9 /* CPTLimitBand.m in Sources */, - 522F26C14E50DA8F185837D2EFF34772 /* CPTLineCap.m in Sources */, - 6A8F43DE3930A482C9FAC00919506393 /* CPTLineStyle.m in Sources */, - 1AADEBDCF3B54C191B721009A150DD5F /* CPTMutableLineStyle.m in Sources */, - AE2A3B07F0D769B11C32F61D2EFA9946 /* CPTMutableNumericData+TypeConversion.m in Sources */, - 38AF66645579CE799202466343E4BF88 /* CPTMutableNumericData.m in Sources */, - 9D1F2157419F293917DD4A93CAF710E9 /* CPTMutablePlotRange.m in Sources */, - ACEFCF1F091DC108AA5DB1CFE27FEA55 /* CPTMutableShadow.m in Sources */, - B1D2E9A26782BFB61D60A54473601913 /* CPTMutableTextStyle.m in Sources */, - C79100349589FE1B1587F1590A16492F /* CPTNumericData+TypeConversion.m in Sources */, - 917577E7D36D4CEF32C49F5562B1248A /* CPTNumericData.m in Sources */, - FD3FD0911EAF8A67C9B2D10DB30AF23D /* CPTNumericDataType.m in Sources */, - 13546107B32994B5A86B7495C6E4E55C /* CPTPathExtensions.m in Sources */, - 3B105CB9E710D3E1131813BBB4D8ED65 /* CPTPieChart.m in Sources */, - 4B7047E812C1139A9E4F07E012E3498A /* CPTPlatformSpecificCategories.m in Sources */, - F94995F1CF0F76E327756209A9E85C13 /* CPTPlatformSpecificDefines.m in Sources */, - C34087E63BB237247A442F647D52273D /* CPTPlatformSpecificFunctions.m in Sources */, - 3AAA179F85C6140DC78335EBA62C8221 /* CPTPlot.m in Sources */, - 55031941E2F00B77392A39FC6AB85243 /* CPTPlotArea.m in Sources */, - A6D2079040A44F50D59E5B60E2C01CA9 /* CPTPlotAreaFrame.m in Sources */, - 21DC46F598662C2D5936B5F9A4C8D600 /* CPTPlotGroup.m in Sources */, - EE8B4B5DA32DF52359844F0EDE471493 /* CPTPlotRange.m in Sources */, - 938EB23A5765BFF93EA1975B5EE3B81C /* CPTPlotSpace.m in Sources */, - 7A07B04B237318940652323EBF4CA4F0 /* CPTPlotSpaceAnnotation.m in Sources */, - B2F7DA69BF65B14D2EF8D6F581ABCFEB /* CPTPlotSymbol.m in Sources */, - DE010CB1CB6FF9753F888B482FFC84C8 /* CPTRangePlot.m in Sources */, - C8B2B5DA036BA7C87402B5F8BBC1E016 /* CPTScatterPlot.m in Sources */, - 7FFA23B812923C0A3B856C0AE0A69F41 /* CPTShadow.m in Sources */, - B2081538C6D6ED5E88B5852B51D8D851 /* CPTTextLayer.m in Sources */, - 9C6A0376A5FA8752E94C6767923C5C3A /* CPTTextStyle.m in Sources */, - 7B92791B3647E85E0ED6CB38E0FA85D5 /* CPTTextStylePlatformSpecific.m in Sources */, - 31D7C38B55748540A9C9A557C0CE9EE4 /* CPTTheme.m in Sources */, - B84E97133641B2245203956FD70BD734 /* CPTTimeFormatter.m in Sources */, - 72CD03B2A0345111195909970EE15D8F /* CPTTradingRangePlot.m in Sources */, - 1CB6157BE9AAB376B94F3AE22E343399 /* CPTUtilities.m in Sources */, - 87B6E6BFE64A2241828154BC9FB94F7C /* CPTXYAxis.m in Sources */, - D027D0829AF0CA938AED64525DB4E31E /* CPTXYAxisSet.m in Sources */, - B97B67409B1A9DF17C4BF21A49691D35 /* CPTXYGraph.m in Sources */, - 0D08AAE20FD520DE1F075C785F010B39 /* CPTXYPlotSpace.m in Sources */, - F4C16B7405B73EAAB6A28C1133B85C37 /* NSCoderExtensions.m in Sources */, - 75D3A5EC77BAE19704C67E7B9F0FC860 /* NSDecimalNumberExtensions.m in Sources */, - 048F06D54736CB67915801AF30EB7328 /* NSNumberExtensions.m in Sources */, + 9F5668F0D62FB68AEF3D61D77747F4AD /* SWRevealViewController-dummy.m in Sources */, + D4522766C6A053C8A89955C42330C4C2 /* SWRevealViewController.m in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; - E451908DB2E8C0EB7DE14909D5E13DC7 /* Sources */ = { + EC423332A059E7BEF7AD89FB596B452F /* Sources */ = { isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; files = ( - 63F1583564B86AFECD95818CF380153E /* SWRevealViewController-dummy.m in Sources */, - E6C3B068C66A4E9845D6D3552A925802 /* SWRevealViewController.m in Sources */, + 6FD45E8DC90EEF01BAE504DF676CB1EA /* ConversionOptions.swift in Sources */, + 5D8BD843FD205DA7FA905AC5857E1B2E /* DeserializationStatus.swift in Sources */, + 991FA07C60FC6B8541402735EC2EE43B /* EVArrayExtension.swift in Sources */, + 684AB0098DB247DA95E29ABA0BAD86C0 /* EVCustomReflectable.swift in Sources */, + 9C69578ECE73AEEE905C7816356A896D /* EVDictionaryExtension.swift in Sources */, + D1B5AEDAF6B2C2855BFE938B43162E51 /* EVObject.swift in Sources */, + 2A7632D7546AA6080C049A54C29073AD /* EVReflectable.swift in Sources */, + BCF75E8A77DDF2D4CF5141D826024F17 /* EVReflection-dummy.m in Sources */, + AE2A0E47D2E538FFD8D5B7210277F4FC /* EVReflection.swift in Sources */, + 2D21B0BDA540DAA155AC66051DE78646 /* EVWorkaroundHelpers.swift in Sources */, + CEF0F1DA2066F1B2454B8C60BFE54A6A /* PrintOptions.swift in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; /* End PBXSourcesBuildPhase section */ /* Begin PBXTargetDependency section */ - 0475AC3E71008C2B5D1ABE843D36F2CA /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - name = CorePlot; - target = DE8C7C227ACE26864DC8DA02CCA66BAA /* CorePlot */; - targetProxy = 606433B86D100C967C252B19C98DCC7D /* PBXContainerItemProxy */; - }; - 263069BD2DA6AEE12E33C7C092D58A72 /* PBXTargetDependency */ = { + 19C7E74E1C5469D34DB6CE4877F15496 /* PBXTargetDependency */ = { isa = PBXTargetDependency; name = Zip; - target = 6DE24706FE9CF4E6C5DB4508F180A481 /* Zip */; - targetProxy = 0BF48EE9AE5A4F2E7CCF63859D23C491 /* PBXContainerItemProxy */; + target = 31708EE6929C61C0EDA6F5DAE3AF9DB7 /* Zip */; + targetProxy = 3EBFEEDE9D4D066E08555C96AF9FD89C /* PBXContainerItemProxy */; }; - 7039E97FAC3F7200967C0546D4556B43 /* PBXTargetDependency */ = { + 2BEC01E76467B25460FD1D6E1BA498A4 /* PBXTargetDependency */ = { isa = PBXTargetDependency; name = EVReflection; - target = B398238A0BBBCD10E4DB4C8A7062A3C5 /* EVReflection */; - targetProxy = 42454B63AB128DAA58602ADAC23B8C2E /* PBXContainerItemProxy */; + target = 28689B9EA4494CFEC2E8F991ABC3E674 /* EVReflection */; + targetProxy = FF8EFB9895F689ECC5B915B6F007BA9A /* PBXContainerItemProxy */; }; - 7456360A4B81FF125F1B077D11805382 /* PBXTargetDependency */ = { + 5851922F2ED99D3B312640C13B1BAD0A /* PBXTargetDependency */ = { isa = PBXTargetDependency; - name = iOSDFULibrary; - target = 570B1EFB2D11F5B06166FDA2A614F81C /* iOSDFULibrary */; - targetProxy = 0A5C823111C5639414A6C8B843461099 /* PBXContainerItemProxy */; + name = CorePlot; + target = 03DD7CB0D843ACA94CB5F68975736BB9 /* CorePlot */; + targetProxy = D198E59F320C315B11271E57BD6E2F3C /* PBXContainerItemProxy */; }; - EB4BD4B84C7CA053902B338E83352234 /* PBXTargetDependency */ = { + 61D56B1D17107F3313E6819EE45AF53B /* PBXTargetDependency */ = { isa = PBXTargetDependency; - name = SWRevealViewController; - target = D943AA02BD98F9D616595F4B475BAF22 /* SWRevealViewController */; - targetProxy = 9BCA78E35D82DF23E9D2AE41A4CBE38C /* PBXContainerItemProxy */; + name = iOSDFULibrary; + target = 9506C7FCDAE6E6967A99655F452EEE93 /* iOSDFULibrary */; + targetProxy = 16AC8908923F73D489C895B57C3D1D2D /* PBXContainerItemProxy */; }; - FF61DF48D426C5344B04392F48B2FA74 /* PBXTargetDependency */ = { + 9AE2D736514F1C2496D97B6089C55D39 /* PBXTargetDependency */ = { isa = PBXTargetDependency; name = Zip; - target = 6DE24706FE9CF4E6C5DB4508F180A481 /* Zip */; - targetProxy = F090DFC5DE05C05BCF027F5A7E1C58F6 /* PBXContainerItemProxy */; + target = 31708EE6929C61C0EDA6F5DAE3AF9DB7 /* Zip */; + targetProxy = E92E01C9BEF1B4A13910A84D7BDFC758 /* PBXContainerItemProxy */; + }; + 9BC2EC0928D31C9466C1FB1CB3F64017 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = SWRevealViewController; + target = A54C3C20DA76528607950189DA743CA4 /* SWRevealViewController */; + targetProxy = 03D4D34ECE300C08AF63A9401BAB59A3 /* PBXContainerItemProxy */; }; /* End PBXTargetDependency section */ /* Begin XCBuildConfiguration section */ - 0278C1AED03F3A191969B40EDC4642F7 /* Release */ = { + 07AA57B9683B5BF3BCDE7584C34E22C9 /* Release */ = { isa = XCBuildConfiguration; - baseConfigurationReference = CC91A00BE759B1D2FD29588305618958 /* Pods-nRF Toolbox.release.xcconfig */; - buildSettings = { - CODE_SIGN_IDENTITY = ""; - "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; - "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; - "CODE_SIGN_IDENTITY[sdk=watchos*]" = ""; - CURRENT_PROJECT_VERSION = 1; - DEFINES_MODULE = YES; - DYLIB_COMPATIBILITY_VERSION = 1; - DYLIB_CURRENT_VERSION = 1; - DYLIB_INSTALL_NAME_BASE = "@rpath"; - INFOPLIST_FILE = "Target Support Files/Pods-nRF Toolbox/Info.plist"; - INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; - IPHONEOS_DEPLOYMENT_TARGET = 8.0; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; - MACH_O_TYPE = staticlib; - MODULEMAP_FILE = "Target Support Files/Pods-nRF Toolbox/Pods-nRF Toolbox.modulemap"; - OTHER_LDFLAGS = ""; - OTHER_LIBTOOLFLAGS = ""; - PODS_ROOT = "$(SRCROOT)"; - PRODUCT_BUNDLE_IDENTIFIER = "org.cocoapods.${PRODUCT_NAME:rfc1034identifier}"; - PRODUCT_NAME = Pods_nRF_Toolbox; - SDKROOT = iphoneos; - SKIP_INSTALL = YES; - SWIFT_OPTIMIZATION_LEVEL = "-Owholemodule"; - TARGETED_DEVICE_FAMILY = "1,2"; - VALIDATE_PRODUCT = YES; - VERSIONING_SYSTEM = "apple-generic"; - VERSION_INFO_PREFIX = ""; - }; - name = Release; - }; - 0366A118026CFCBA616D826902450952 /* Release */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = 0466F9A1C548F6DE3326942F91E277FF /* iOSDFULibrary.xcconfig */; + baseConfigurationReference = DD76C1AD82D765998B02ADC7E821DC0B /* iOSDFULibrary.xcconfig */; buildSettings = { CODE_SIGN_IDENTITY = ""; "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; @@ -1768,17 +1795,17 @@ DYLIB_CURRENT_VERSION = 1; DYLIB_INSTALL_NAME_BASE = "@rpath"; GCC_PREFIX_HEADER = "Target Support Files/iOSDFULibrary/iOSDFULibrary-prefix.pch"; - INFOPLIST_FILE = "Target Support Files/iOSDFULibrary/Info.plist"; + INFOPLIST_FILE = "Target Support Files/iOSDFULibrary/iOSDFULibrary-Info.plist"; INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; IPHONEOS_DEPLOYMENT_TARGET = 8.0; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; MODULEMAP_FILE = "Target Support Files/iOSDFULibrary/iOSDFULibrary.modulemap"; + PRODUCT_MODULE_NAME = iOSDFULibrary; PRODUCT_NAME = iOSDFULibrary; SDKROOT = iphoneos; SKIP_INSTALL = YES; SWIFT_ACTIVE_COMPILATION_CONDITIONS = "$(inherited) "; - SWIFT_OPTIMIZATION_LEVEL = "-Owholemodule"; - SWIFT_VERSION = 4.0; + SWIFT_VERSION = 4.2; TARGETED_DEVICE_FAMILY = "1,2"; VALIDATE_PRODUCT = YES; VERSIONING_SYSTEM = "apple-generic"; @@ -1786,9 +1813,9 @@ }; name = Release; }; - 0B1C54E4ACB79BA4C0239095800A96C5 /* Release */ = { + 0FC5E7A07CA714D4882ACA31273A5567 /* Debug */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 2207DEE7768FE13A9B98D5513E8DDB5F /* CorePlot.xcconfig */; + baseConfigurationReference = ADA75779A99B6A079A6ACF8078B61ADD /* EVReflection.xcconfig */; buildSettings = { CODE_SIGN_IDENTITY = ""; "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; @@ -1799,28 +1826,28 @@ DYLIB_COMPATIBILITY_VERSION = 1; DYLIB_CURRENT_VERSION = 1; DYLIB_INSTALL_NAME_BASE = "@rpath"; - GCC_PREFIX_HEADER = "Target Support Files/CorePlot/CorePlot-prefix.pch"; - INFOPLIST_FILE = "Target Support Files/CorePlot/Info.plist"; + GCC_PREFIX_HEADER = "Target Support Files/EVReflection/EVReflection-prefix.pch"; + INFOPLIST_FILE = "Target Support Files/EVReflection/EVReflection-Info.plist"; INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; IPHONEOS_DEPLOYMENT_TARGET = 8.0; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; - MODULEMAP_FILE = "Target Support Files/CorePlot/CorePlot.modulemap"; - PRODUCT_NAME = CorePlot; + MODULEMAP_FILE = "Target Support Files/EVReflection/EVReflection.modulemap"; + PRODUCT_MODULE_NAME = EVReflection; + PRODUCT_NAME = EVReflection; SDKROOT = iphoneos; SKIP_INSTALL = YES; SWIFT_ACTIVE_COMPILATION_CONDITIONS = "$(inherited) "; - SWIFT_VERSION = 4.0; TARGETED_DEVICE_FAMILY = "1,2"; - VALIDATE_PRODUCT = YES; VERSIONING_SYSTEM = "apple-generic"; VERSION_INFO_PREFIX = ""; }; - name = Release; + name = Debug; }; - 18BFE867157A8E74653767731CE892B0 /* Release */ = { + 1126607F04F7CA7ECF5F9CB14DC5D4BC /* Debug */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 1B002F085ACC87BC6C39E4F132821927 /* Zip.xcconfig */; + baseConfigurationReference = 5BF0010088D9802D556EA300E82D5F1F /* Pods-nRF Toolbox.debug.xcconfig */; buildSettings = { + ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = NO; CODE_SIGN_IDENTITY = ""; "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; @@ -1830,28 +1857,28 @@ DYLIB_COMPATIBILITY_VERSION = 1; DYLIB_CURRENT_VERSION = 1; DYLIB_INSTALL_NAME_BASE = "@rpath"; - GCC_PREFIX_HEADER = "Target Support Files/Zip/Zip-prefix.pch"; - INFOPLIST_FILE = "Target Support Files/Zip/Info.plist"; + INFOPLIST_FILE = "Target Support Files/Pods-nRF Toolbox/Pods-nRF Toolbox-Info.plist"; INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; IPHONEOS_DEPLOYMENT_TARGET = 8.0; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; - MODULEMAP_FILE = "Target Support Files/Zip/Zip.modulemap"; - PRODUCT_NAME = Zip; + MACH_O_TYPE = staticlib; + MODULEMAP_FILE = "Target Support Files/Pods-nRF Toolbox/Pods-nRF Toolbox.modulemap"; + OTHER_LDFLAGS = ""; + OTHER_LIBTOOLFLAGS = ""; + PODS_ROOT = "$(SRCROOT)"; + PRODUCT_BUNDLE_IDENTIFIER = "org.cocoapods.${PRODUCT_NAME:rfc1034identifier}"; + PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)"; SDKROOT = iphoneos; SKIP_INSTALL = YES; - SWIFT_ACTIVE_COMPILATION_CONDITIONS = "$(inherited) "; - SWIFT_OPTIMIZATION_LEVEL = "-Owholemodule"; - SWIFT_VERSION = 4.0; TARGETED_DEVICE_FAMILY = "1,2"; - VALIDATE_PRODUCT = YES; VERSIONING_SYSTEM = "apple-generic"; VERSION_INFO_PREFIX = ""; }; - name = Release; + name = Debug; }; - 1FCEF718736CB0A9F91BA63FAF9AAE7D /* Release */ = { + 369DFBE61EBED5C1AA2D02B63139A1B6 /* Release */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 316DA0542B38D62820052EF815DB9776 /* SWRevealViewController.xcconfig */; + baseConfigurationReference = 08358DE9FE6882179782223CDA627495 /* SWRevealViewController.xcconfig */; buildSettings = { CODE_SIGN_IDENTITY = ""; "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; @@ -1863,11 +1890,12 @@ DYLIB_CURRENT_VERSION = 1; DYLIB_INSTALL_NAME_BASE = "@rpath"; GCC_PREFIX_HEADER = "Target Support Files/SWRevealViewController/SWRevealViewController-prefix.pch"; - INFOPLIST_FILE = "Target Support Files/SWRevealViewController/Info.plist"; + INFOPLIST_FILE = "Target Support Files/SWRevealViewController/SWRevealViewController-Info.plist"; INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; IPHONEOS_DEPLOYMENT_TARGET = 8.0; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; MODULEMAP_FILE = "Target Support Files/SWRevealViewController/SWRevealViewController.modulemap"; + PRODUCT_MODULE_NAME = SWRevealViewController; PRODUCT_NAME = SWRevealViewController; SDKROOT = iphoneos; SKIP_INSTALL = YES; @@ -1880,9 +1908,9 @@ }; name = Release; }; - 3BE8221C496DB45D3C1EFF75CF25E580 /* Debug */ = { + 38077D777C8D23E51F4B56149E59B17F /* Release */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 0466F9A1C548F6DE3326942F91E277FF /* iOSDFULibrary.xcconfig */; + baseConfigurationReference = 89C3951FC927D3655855BE806A9C83BA /* Zip.xcconfig */; buildSettings = { CODE_SIGN_IDENTITY = ""; "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; @@ -1893,27 +1921,28 @@ DYLIB_COMPATIBILITY_VERSION = 1; DYLIB_CURRENT_VERSION = 1; DYLIB_INSTALL_NAME_BASE = "@rpath"; - GCC_PREFIX_HEADER = "Target Support Files/iOSDFULibrary/iOSDFULibrary-prefix.pch"; - INFOPLIST_FILE = "Target Support Files/iOSDFULibrary/Info.plist"; + GCC_PREFIX_HEADER = "Target Support Files/Zip/Zip-prefix.pch"; + INFOPLIST_FILE = "Target Support Files/Zip/Zip-Info.plist"; INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; IPHONEOS_DEPLOYMENT_TARGET = 8.0; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; - MODULEMAP_FILE = "Target Support Files/iOSDFULibrary/iOSDFULibrary.modulemap"; - PRODUCT_NAME = iOSDFULibrary; + MODULEMAP_FILE = "Target Support Files/Zip/Zip.modulemap"; + PRODUCT_MODULE_NAME = Zip; + PRODUCT_NAME = Zip; SDKROOT = iphoneos; SKIP_INSTALL = YES; SWIFT_ACTIVE_COMPILATION_CONDITIONS = "$(inherited) "; - SWIFT_OPTIMIZATION_LEVEL = "-Onone"; SWIFT_VERSION = 4.0; TARGETED_DEVICE_FAMILY = "1,2"; + VALIDATE_PRODUCT = YES; VERSIONING_SYSTEM = "apple-generic"; VERSION_INFO_PREFIX = ""; }; - name = Debug; + name = Release; }; - 65E6819B8FA69BF93A5877E9E6438F35 /* Debug */ = { + 3885562EC871DEE93F17A225131FDCEB /* Debug */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 316DA0542B38D62820052EF815DB9776 /* SWRevealViewController.xcconfig */; + baseConfigurationReference = 89C3951FC927D3655855BE806A9C83BA /* Zip.xcconfig */; buildSettings = { CODE_SIGN_IDENTITY = ""; "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; @@ -1924,13 +1953,14 @@ DYLIB_COMPATIBILITY_VERSION = 1; DYLIB_CURRENT_VERSION = 1; DYLIB_INSTALL_NAME_BASE = "@rpath"; - GCC_PREFIX_HEADER = "Target Support Files/SWRevealViewController/SWRevealViewController-prefix.pch"; - INFOPLIST_FILE = "Target Support Files/SWRevealViewController/Info.plist"; + GCC_PREFIX_HEADER = "Target Support Files/Zip/Zip-prefix.pch"; + INFOPLIST_FILE = "Target Support Files/Zip/Zip-Info.plist"; INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; IPHONEOS_DEPLOYMENT_TARGET = 8.0; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; - MODULEMAP_FILE = "Target Support Files/SWRevealViewController/SWRevealViewController.modulemap"; - PRODUCT_NAME = SWRevealViewController; + MODULEMAP_FILE = "Target Support Files/Zip/Zip.modulemap"; + PRODUCT_MODULE_NAME = Zip; + PRODUCT_NAME = Zip; SDKROOT = iphoneos; SKIP_INSTALL = YES; SWIFT_ACTIVE_COMPILATION_CONDITIONS = "$(inherited) "; @@ -1941,7 +1971,7 @@ }; name = Debug; }; - B254DAA6CF0CE39F4A3D11B90A7E059A /* Release */ = { + 4BE66A09A74FD25164AAB3C2645B9B93 /* Release */ = { isa = XCBuildConfiguration; buildSettings = { ALWAYS_SEARCH_USER_PATHS = NO; @@ -1951,10 +1981,12 @@ CLANG_CXX_LIBRARY = "libc++"; CLANG_ENABLE_MODULES = YES; CLANG_ENABLE_OBJC_ARC = YES; + CLANG_ENABLE_OBJC_WEAK = YES; CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; CLANG_WARN_BOOL_CONVERSION = YES; CLANG_WARN_COMMA = YES; CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; CLANG_WARN_DOCUMENTATION_COMMENTS = YES; CLANG_WARN_EMPTY_BODY = YES; @@ -1962,6 +1994,7 @@ CLANG_WARN_INFINITE_RECURSION = YES; CLANG_WARN_INT_CONVERSION = YES; CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; @@ -1970,7 +2003,6 @@ CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; CLANG_WARN_UNREACHABLE_CODE = YES; CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; - CODE_SIGNING_REQUIRED = NO; COPY_PHASE_STRIP = NO; DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; ENABLE_NS_ASSERTIONS = NO; @@ -1989,17 +2021,85 @@ GCC_WARN_UNUSED_VARIABLE = YES; IPHONEOS_DEPLOYMENT_TARGET = 8.0; MTL_ENABLE_DEBUG_INFO = NO; + MTL_FAST_MATH = YES; PRODUCT_NAME = "$(TARGET_NAME)"; - PROVISIONING_PROFILE_SPECIFIER = NO_SIGNING/; STRIP_INSTALLED_PRODUCT = NO; + SWIFT_COMPILATION_MODE = wholemodule; + SWIFT_OPTIMIZATION_LEVEL = "-O"; + SWIFT_VERSION = 5.0; SYMROOT = "${SRCROOT}/../build"; }; name = Release; }; - C172F03AE0985D97ACED24DB2FF028A2 /* Release */ = { + 7EF7227D9B20A1D549000096ACCB23D7 /* Debug */ = { isa = XCBuildConfiguration; - baseConfigurationReference = A905F36E7BFB07ABA93A9C00F978499B /* EVReflection.xcconfig */; buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_ANALYZER_NONNULL = YES; + CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_ENABLE_OBJC_WEAK = YES; + CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_COMMA = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_DOCUMENTATION_COMMENTS = YES; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INFINITE_RECURSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; + CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; + CLANG_WARN_STRICT_PROTOTYPES = YES; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; + CLANG_WARN_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + COPY_PHASE_STRIP = NO; + DEBUG_INFORMATION_FORMAT = dwarf; + ENABLE_STRICT_OBJC_MSGSEND = YES; + ENABLE_TESTABILITY = YES; + GCC_C_LANGUAGE_STANDARD = gnu11; + GCC_DYNAMIC_NO_PIC = NO; + GCC_NO_COMMON_BLOCKS = YES; + GCC_OPTIMIZATION_LEVEL = 0; + GCC_PREPROCESSOR_DEFINITIONS = ( + "POD_CONFIGURATION_DEBUG=1", + "DEBUG=1", + "$(inherited)", + ); + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNDECLARED_SELECTOR = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + IPHONEOS_DEPLOYMENT_TARGET = 8.0; + MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE; + MTL_FAST_MATH = YES; + ONLY_ACTIVE_ARCH = YES; + PRODUCT_NAME = "$(TARGET_NAME)"; + STRIP_INSTALLED_PRODUCT = NO; + SWIFT_ACTIVE_COMPILATION_CONDITIONS = DEBUG; + SWIFT_OPTIMIZATION_LEVEL = "-Onone"; + SWIFT_VERSION = 5.0; + SYMROOT = "${SRCROOT}/../build"; + }; + name = Debug; + }; + 9015D70F2D505E82B6579621AE9C07FB /* Release */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = F5E9E3168833BD0FC0FF6D3D08960627 /* Pods-nRF Toolbox.release.xcconfig */; + buildSettings = { + ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = NO; CODE_SIGN_IDENTITY = ""; "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; @@ -2009,18 +2109,19 @@ DYLIB_COMPATIBILITY_VERSION = 1; DYLIB_CURRENT_VERSION = 1; DYLIB_INSTALL_NAME_BASE = "@rpath"; - GCC_PREFIX_HEADER = "Target Support Files/EVReflection/EVReflection-prefix.pch"; - INFOPLIST_FILE = "Target Support Files/EVReflection/Info.plist"; + INFOPLIST_FILE = "Target Support Files/Pods-nRF Toolbox/Pods-nRF Toolbox-Info.plist"; INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; IPHONEOS_DEPLOYMENT_TARGET = 8.0; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; - MODULEMAP_FILE = "Target Support Files/EVReflection/EVReflection.modulemap"; - PRODUCT_NAME = EVReflection; + MACH_O_TYPE = staticlib; + MODULEMAP_FILE = "Target Support Files/Pods-nRF Toolbox/Pods-nRF Toolbox.modulemap"; + OTHER_LDFLAGS = ""; + OTHER_LIBTOOLFLAGS = ""; + PODS_ROOT = "$(SRCROOT)"; + PRODUCT_BUNDLE_IDENTIFIER = "org.cocoapods.${PRODUCT_NAME:rfc1034identifier}"; + PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)"; SDKROOT = iphoneos; SKIP_INSTALL = YES; - SWIFT_ACTIVE_COMPILATION_CONDITIONS = "$(inherited) "; - SWIFT_OPTIMIZATION_LEVEL = "-Owholemodule"; - SWIFT_VERSION = 4.0; TARGETED_DEVICE_FAMILY = "1,2"; VALIDATE_PRODUCT = YES; VERSIONING_SYSTEM = "apple-generic"; @@ -2028,9 +2129,9 @@ }; name = Release; }; - D02E878AC7A481F01D92230D847E4D5F /* Debug */ = { + 91F81BD5B21A8D27546DDAA0C585E3D9 /* Debug */ = { isa = XCBuildConfiguration; - baseConfigurationReference = A905F36E7BFB07ABA93A9C00F978499B /* EVReflection.xcconfig */; + baseConfigurationReference = 78C37DAB61FA4B35BB3B29F46EED6CAB /* CorePlot.xcconfig */; buildSettings = { CODE_SIGN_IDENTITY = ""; "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; @@ -2041,17 +2142,17 @@ DYLIB_COMPATIBILITY_VERSION = 1; DYLIB_CURRENT_VERSION = 1; DYLIB_INSTALL_NAME_BASE = "@rpath"; - GCC_PREFIX_HEADER = "Target Support Files/EVReflection/EVReflection-prefix.pch"; - INFOPLIST_FILE = "Target Support Files/EVReflection/Info.plist"; + GCC_PREFIX_HEADER = "Target Support Files/CorePlot/CorePlot-prefix.pch"; + INFOPLIST_FILE = "Target Support Files/CorePlot/CorePlot-Info.plist"; INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; IPHONEOS_DEPLOYMENT_TARGET = 8.0; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; - MODULEMAP_FILE = "Target Support Files/EVReflection/EVReflection.modulemap"; - PRODUCT_NAME = EVReflection; + MODULEMAP_FILE = "Target Support Files/CorePlot/CorePlot.modulemap"; + PRODUCT_MODULE_NAME = CorePlot; + PRODUCT_NAME = CorePlot; SDKROOT = iphoneos; SKIP_INSTALL = YES; SWIFT_ACTIVE_COMPILATION_CONDITIONS = "$(inherited) "; - SWIFT_OPTIMIZATION_LEVEL = "-Onone"; SWIFT_VERSION = 4.0; TARGETED_DEVICE_FAMILY = "1,2"; VERSIONING_SYSTEM = "apple-generic"; @@ -2059,9 +2160,9 @@ }; name = Debug; }; - E16804DA00779F899166AAE54F204CC0 /* Debug */ = { + 94C31CAABBC9C4E4A68C0B5BF2D24E29 /* Debug */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 2207DEE7768FE13A9B98D5513E8DDB5F /* CorePlot.xcconfig */; + baseConfigurationReference = 08358DE9FE6882179782223CDA627495 /* SWRevealViewController.xcconfig */; buildSettings = { CODE_SIGN_IDENTITY = ""; "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; @@ -2072,13 +2173,14 @@ DYLIB_COMPATIBILITY_VERSION = 1; DYLIB_CURRENT_VERSION = 1; DYLIB_INSTALL_NAME_BASE = "@rpath"; - GCC_PREFIX_HEADER = "Target Support Files/CorePlot/CorePlot-prefix.pch"; - INFOPLIST_FILE = "Target Support Files/CorePlot/Info.plist"; + GCC_PREFIX_HEADER = "Target Support Files/SWRevealViewController/SWRevealViewController-prefix.pch"; + INFOPLIST_FILE = "Target Support Files/SWRevealViewController/SWRevealViewController-Info.plist"; INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; IPHONEOS_DEPLOYMENT_TARGET = 8.0; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; - MODULEMAP_FILE = "Target Support Files/CorePlot/CorePlot.modulemap"; - PRODUCT_NAME = CorePlot; + MODULEMAP_FILE = "Target Support Files/SWRevealViewController/SWRevealViewController.modulemap"; + PRODUCT_MODULE_NAME = SWRevealViewController; + PRODUCT_NAME = SWRevealViewController; SDKROOT = iphoneos; SKIP_INSTALL = YES; SWIFT_ACTIVE_COMPILATION_CONDITIONS = "$(inherited) "; @@ -2089,9 +2191,9 @@ }; name = Debug; }; - E3391FC91A26FB0B3C2E79B62D6FF818 /* Debug */ = { + C08A33F655BDC7390173F9B0CED5D512 /* Release */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 1B002F085ACC87BC6C39E4F132821927 /* Zip.xcconfig */; + baseConfigurationReference = 78C37DAB61FA4B35BB3B29F46EED6CAB /* CorePlot.xcconfig */; buildSettings = { CODE_SIGN_IDENTITY = ""; "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; @@ -2102,87 +2204,59 @@ DYLIB_COMPATIBILITY_VERSION = 1; DYLIB_CURRENT_VERSION = 1; DYLIB_INSTALL_NAME_BASE = "@rpath"; - GCC_PREFIX_HEADER = "Target Support Files/Zip/Zip-prefix.pch"; - INFOPLIST_FILE = "Target Support Files/Zip/Info.plist"; + GCC_PREFIX_HEADER = "Target Support Files/CorePlot/CorePlot-prefix.pch"; + INFOPLIST_FILE = "Target Support Files/CorePlot/CorePlot-Info.plist"; INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; IPHONEOS_DEPLOYMENT_TARGET = 8.0; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; - MODULEMAP_FILE = "Target Support Files/Zip/Zip.modulemap"; - PRODUCT_NAME = Zip; + MODULEMAP_FILE = "Target Support Files/CorePlot/CorePlot.modulemap"; + PRODUCT_MODULE_NAME = CorePlot; + PRODUCT_NAME = CorePlot; SDKROOT = iphoneos; SKIP_INSTALL = YES; SWIFT_ACTIVE_COMPILATION_CONDITIONS = "$(inherited) "; - SWIFT_OPTIMIZATION_LEVEL = "-Onone"; SWIFT_VERSION = 4.0; TARGETED_DEVICE_FAMILY = "1,2"; + VALIDATE_PRODUCT = YES; VERSIONING_SYSTEM = "apple-generic"; VERSION_INFO_PREFIX = ""; }; - name = Debug; + name = Release; }; - E4B68EE12B21C47CB798D9B1ECA6D7A7 /* Debug */ = { + CE0D681266AD14F0B25E05C3D73DD1F2 /* Release */ = { isa = XCBuildConfiguration; + baseConfigurationReference = ADA75779A99B6A079A6ACF8078B61ADD /* EVReflection.xcconfig */; buildSettings = { - ALWAYS_SEARCH_USER_PATHS = NO; - CLANG_ANALYZER_NONNULL = YES; - CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; - CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; - CLANG_CXX_LIBRARY = "libc++"; - CLANG_ENABLE_MODULES = YES; - CLANG_ENABLE_OBJC_ARC = YES; - CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; - CLANG_WARN_BOOL_CONVERSION = YES; - CLANG_WARN_COMMA = YES; - CLANG_WARN_CONSTANT_CONVERSION = YES; - CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; - CLANG_WARN_DOCUMENTATION_COMMENTS = YES; - CLANG_WARN_EMPTY_BODY = YES; - CLANG_WARN_ENUM_CONVERSION = YES; - CLANG_WARN_INFINITE_RECURSION = YES; - CLANG_WARN_INT_CONVERSION = YES; - CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; - CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; - CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; - CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; - CLANG_WARN_STRICT_PROTOTYPES = YES; - CLANG_WARN_SUSPICIOUS_MOVE = YES; - CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; - CLANG_WARN_UNREACHABLE_CODE = YES; - CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; - CODE_SIGNING_REQUIRED = NO; - COPY_PHASE_STRIP = NO; - DEBUG_INFORMATION_FORMAT = dwarf; - ENABLE_STRICT_OBJC_MSGSEND = YES; - ENABLE_TESTABILITY = YES; - GCC_C_LANGUAGE_STANDARD = gnu11; - GCC_DYNAMIC_NO_PIC = NO; - GCC_NO_COMMON_BLOCKS = YES; - GCC_OPTIMIZATION_LEVEL = 0; - GCC_PREPROCESSOR_DEFINITIONS = ( - "POD_CONFIGURATION_DEBUG=1", - "DEBUG=1", - "$(inherited)", - ); - GCC_WARN_64_TO_32_BIT_CONVERSION = YES; - GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; - GCC_WARN_UNDECLARED_SELECTOR = YES; - GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; - GCC_WARN_UNUSED_FUNCTION = YES; - GCC_WARN_UNUSED_VARIABLE = YES; + CODE_SIGN_IDENTITY = ""; + "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; + "CODE_SIGN_IDENTITY[sdk=watchos*]" = ""; + CURRENT_PROJECT_VERSION = 1; + DEFINES_MODULE = YES; + DYLIB_COMPATIBILITY_VERSION = 1; + DYLIB_CURRENT_VERSION = 1; + DYLIB_INSTALL_NAME_BASE = "@rpath"; + GCC_PREFIX_HEADER = "Target Support Files/EVReflection/EVReflection-prefix.pch"; + INFOPLIST_FILE = "Target Support Files/EVReflection/EVReflection-Info.plist"; + INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; IPHONEOS_DEPLOYMENT_TARGET = 8.0; - MTL_ENABLE_DEBUG_INFO = YES; - ONLY_ACTIVE_ARCH = YES; - PRODUCT_NAME = "$(TARGET_NAME)"; - PROVISIONING_PROFILE_SPECIFIER = NO_SIGNING/; - STRIP_INSTALLED_PRODUCT = NO; - SWIFT_ACTIVE_COMPILATION_CONDITIONS = DEBUG; - SYMROOT = "${SRCROOT}/../build"; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; + MODULEMAP_FILE = "Target Support Files/EVReflection/EVReflection.modulemap"; + PRODUCT_MODULE_NAME = EVReflection; + PRODUCT_NAME = EVReflection; + SDKROOT = iphoneos; + SKIP_INSTALL = YES; + SWIFT_ACTIVE_COMPILATION_CONDITIONS = "$(inherited) "; + TARGETED_DEVICE_FAMILY = "1,2"; + VALIDATE_PRODUCT = YES; + VERSIONING_SYSTEM = "apple-generic"; + VERSION_INFO_PREFIX = ""; }; - name = Debug; + name = Release; }; - EB6744A4DF879647E2C0A5484F05E599 /* Debug */ = { + FE501ECAF599BE9E4B2D0B1EA6E33F1B /* Debug */ = { isa = XCBuildConfiguration; - baseConfigurationReference = E698027A59B23BA2305169F210A02034 /* Pods-nRF Toolbox.debug.xcconfig */; + baseConfigurationReference = DD76C1AD82D765998B02ADC7E821DC0B /* iOSDFULibrary.xcconfig */; buildSettings = { CODE_SIGN_IDENTITY = ""; "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; @@ -2193,21 +2267,18 @@ DYLIB_COMPATIBILITY_VERSION = 1; DYLIB_CURRENT_VERSION = 1; DYLIB_INSTALL_NAME_BASE = "@rpath"; - INFOPLIST_FILE = "Target Support Files/Pods-nRF Toolbox/Info.plist"; + GCC_PREFIX_HEADER = "Target Support Files/iOSDFULibrary/iOSDFULibrary-prefix.pch"; + INFOPLIST_FILE = "Target Support Files/iOSDFULibrary/iOSDFULibrary-Info.plist"; INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; IPHONEOS_DEPLOYMENT_TARGET = 8.0; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; - MACH_O_TYPE = staticlib; - MODULEMAP_FILE = "Target Support Files/Pods-nRF Toolbox/Pods-nRF Toolbox.modulemap"; - OTHER_LDFLAGS = ""; - OTHER_LIBTOOLFLAGS = ""; - PODS_ROOT = "$(SRCROOT)"; - PRODUCT_BUNDLE_IDENTIFIER = "org.cocoapods.${PRODUCT_NAME:rfc1034identifier}"; - PRODUCT_NAME = Pods_nRF_Toolbox; + MODULEMAP_FILE = "Target Support Files/iOSDFULibrary/iOSDFULibrary.modulemap"; + PRODUCT_MODULE_NAME = iOSDFULibrary; + PRODUCT_NAME = iOSDFULibrary; SDKROOT = iphoneos; SKIP_INSTALL = YES; - SWIFT_ACTIVE_COMPILATION_CONDITIONS = DEBUG; - SWIFT_OPTIMIZATION_LEVEL = "-Onone"; + SWIFT_ACTIVE_COMPILATION_CONDITIONS = "$(inherited) "; + SWIFT_VERSION = 4.2; TARGETED_DEVICE_FAMILY = "1,2"; VERSIONING_SYSTEM = "apple-generic"; VERSION_INFO_PREFIX = ""; @@ -2217,70 +2288,70 @@ /* End XCBuildConfiguration section */ /* Begin XCConfigurationList section */ - 2D8E8EC45A3A1A1D94AE762CB5028504 /* Build configuration list for PBXProject "Pods" */ = { + 33D4EB7990578F2B167F60AA46704D0D /* Build configuration list for PBXNativeTarget "CorePlot" */ = { isa = XCConfigurationList; buildConfigurations = ( - E4B68EE12B21C47CB798D9B1ECA6D7A7 /* Debug */, - B254DAA6CF0CE39F4A3D11B90A7E059A /* Release */, + 91F81BD5B21A8D27546DDAA0C585E3D9 /* Debug */, + C08A33F655BDC7390173F9B0CED5D512 /* Release */, ); defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; }; - 46EC2299A313886B883737DA453B9A83 /* Build configuration list for PBXNativeTarget "iOSDFULibrary" */ = { + 45F895A199AD040F14A46B2137ED8972 /* Build configuration list for PBXNativeTarget "Pods-nRF Toolbox" */ = { isa = XCConfigurationList; buildConfigurations = ( - 3BE8221C496DB45D3C1EFF75CF25E580 /* Debug */, - 0366A118026CFCBA616D826902450952 /* Release */, + 1126607F04F7CA7ECF5F9CB14DC5D4BC /* Debug */, + 9015D70F2D505E82B6579621AE9C07FB /* Release */, ); defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; }; - 5B99F95BBCEC6CF26319BFD4CF7250F1 /* Build configuration list for PBXNativeTarget "CorePlot" */ = { + 4821239608C13582E20E6DA73FD5F1F9 /* Build configuration list for PBXProject "Pods" */ = { isa = XCConfigurationList; buildConfigurations = ( - E16804DA00779F899166AAE54F204CC0 /* Debug */, - 0B1C54E4ACB79BA4C0239095800A96C5 /* Release */, + 7EF7227D9B20A1D549000096ACCB23D7 /* Debug */, + 4BE66A09A74FD25164AAB3C2645B9B93 /* Release */, ); defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; }; - A0AA13ADD17C82A6A60F692F4BC03165 /* Build configuration list for PBXNativeTarget "EVReflection" */ = { + 682C06ECE131AEF8F5DBFE10BD78252B /* Build configuration list for PBXNativeTarget "Zip" */ = { isa = XCConfigurationList; buildConfigurations = ( - D02E878AC7A481F01D92230D847E4D5F /* Debug */, - C172F03AE0985D97ACED24DB2FF028A2 /* Release */, + 3885562EC871DEE93F17A225131FDCEB /* Debug */, + 38077D777C8D23E51F4B56149E59B17F /* Release */, ); defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; }; - A9D29C9A0296183A72406337A608A484 /* Build configuration list for PBXNativeTarget "Zip" */ = { + 9E9469FBAAE299C467FAD7E12FD46864 /* Build configuration list for PBXNativeTarget "EVReflection" */ = { isa = XCConfigurationList; buildConfigurations = ( - E3391FC91A26FB0B3C2E79B62D6FF818 /* Debug */, - 18BFE867157A8E74653767731CE892B0 /* Release */, + 0FC5E7A07CA714D4882ACA31273A5567 /* Debug */, + CE0D681266AD14F0B25E05C3D73DD1F2 /* Release */, ); defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; }; - C4FBE4BC3AC1E434F79611088D044B76 /* Build configuration list for PBXNativeTarget "SWRevealViewController" */ = { + A59459CC15A2C475D673A32657065616 /* Build configuration list for PBXNativeTarget "SWRevealViewController" */ = { isa = XCConfigurationList; buildConfigurations = ( - 65E6819B8FA69BF93A5877E9E6438F35 /* Debug */, - 1FCEF718736CB0A9F91BA63FAF9AAE7D /* Release */, + 94C31CAABBC9C4E4A68C0B5BF2D24E29 /* Debug */, + 369DFBE61EBED5C1AA2D02B63139A1B6 /* Release */, ); defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; }; - D3833E1D0DC2901047E2C7F86A58927D /* Build configuration list for PBXNativeTarget "Pods-nRF Toolbox" */ = { + B9259EE88FC2E1CE4C5562A1CA1CDC29 /* Build configuration list for PBXNativeTarget "iOSDFULibrary" */ = { isa = XCConfigurationList; buildConfigurations = ( - EB6744A4DF879647E2C0A5484F05E599 /* Debug */, - 0278C1AED03F3A191969B40EDC4642F7 /* Release */, + FE501ECAF599BE9E4B2D0B1EA6E33F1B /* Debug */, + 07AA57B9683B5BF3BCDE7584C34E22C9 /* Release */, ); defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; }; /* End XCConfigurationList section */ }; - rootObject = D41D8CD98F00B204E9800998ECF8427E /* Project object */; + rootObject = BFDFE7DC352907FC980B868725387E98 /* Project object */; } diff --git a/Pods/Target Support Files/CorePlot/CorePlot-Info.plist b/Pods/Target Support Files/CorePlot/CorePlot-Info.plist new file mode 100644 index 00000000..c054f9c1 --- /dev/null +++ b/Pods/Target Support Files/CorePlot/CorePlot-Info.plist @@ -0,0 +1,26 @@ + + + + + CFBundleDevelopmentRegion + en + CFBundleExecutable + ${EXECUTABLE_NAME} + CFBundleIdentifier + ${PRODUCT_BUNDLE_IDENTIFIER} + CFBundleInfoDictionaryVersion + 6.0 + CFBundleName + ${PRODUCT_NAME} + CFBundlePackageType + FMWK + CFBundleShortVersionString + 2.2.0 + CFBundleSignature + ???? + CFBundleVersion + ${CURRENT_PROJECT_VERSION} + NSPrincipalClass + + + diff --git a/Pods/Target Support Files/CorePlot/CorePlot.xcconfig b/Pods/Target Support Files/CorePlot/CorePlot.xcconfig index 027f9b0d..66ef8648 100644 --- a/Pods/Target Support Files/CorePlot/CorePlot.xcconfig +++ b/Pods/Target Support Files/CorePlot/CorePlot.xcconfig @@ -1,8 +1,8 @@ ALWAYS_SEARCH_USER_PATHS = YES CONFIGURATION_BUILD_DIR = ${PODS_CONFIGURATION_BUILD_DIR}/CorePlot GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 -HEADER_SEARCH_PATHS = "${PODS_ROOT}/Headers/Private" "${PODS_ROOT}/Headers/Public" "${PODS_ROOT}/Headers/Private/CorePlot/ios" -OTHER_LDFLAGS = -framework "Accelerate" -framework "Foundation" -framework "QuartzCore" -framework "UIKit" +HEADER_SEARCH_PATHS = $(inherited) "${PODS_ROOT}/Headers/Private/CorePlot/ios" +OTHER_LDFLAGS = $(inherited) -framework "Accelerate" -framework "Foundation" -framework "QuartzCore" -framework "UIKit" PODS_BUILD_DIR = ${BUILD_DIR} PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) PODS_ROOT = ${SRCROOT} diff --git a/Pods/Target Support Files/EVReflection/EVReflection-Info.plist b/Pods/Target Support Files/EVReflection/EVReflection-Info.plist new file mode 100644 index 00000000..6298d144 --- /dev/null +++ b/Pods/Target Support Files/EVReflection/EVReflection-Info.plist @@ -0,0 +1,26 @@ + + + + + CFBundleDevelopmentRegion + en + CFBundleExecutable + ${EXECUTABLE_NAME} + CFBundleIdentifier + ${PRODUCT_BUNDLE_IDENTIFIER} + CFBundleInfoDictionaryVersion + 6.0 + CFBundleName + ${PRODUCT_NAME} + CFBundlePackageType + FMWK + CFBundleShortVersionString + 5.10.1 + CFBundleSignature + ???? + CFBundleVersion + ${CURRENT_PROJECT_VERSION} + NSPrincipalClass + + + diff --git a/Pods/Target Support Files/EVReflection/EVReflection.xcconfig b/Pods/Target Support Files/EVReflection/EVReflection.xcconfig index 2c98bd0c..63bb21bf 100644 --- a/Pods/Target Support Files/EVReflection/EVReflection.xcconfig +++ b/Pods/Target Support Files/EVReflection/EVReflection.xcconfig @@ -1,12 +1,11 @@ CONFIGURATION_BUILD_DIR = ${PODS_CONFIGURATION_BUILD_DIR}/EVReflection GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 -HEADER_SEARCH_PATHS = "${PODS_ROOT}/Headers/Private" "${PODS_ROOT}/Headers/Public" -OTHER_LDFLAGS = -framework "Foundation" -OTHER_SWIFT_FLAGS = $(inherited) "-D" "COCOAPODS" +OTHER_LDFLAGS = $(inherited) -framework "Foundation" +OTHER_SWIFT_FLAGS = $(inherited) -D COCOAPODS PODS_BUILD_DIR = ${BUILD_DIR} PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) PODS_ROOT = ${SRCROOT} PODS_TARGET_SRCROOT = ${PODS_ROOT}/EVReflection PRODUCT_BUNDLE_IDENTIFIER = org.cocoapods.${PRODUCT_NAME:rfc1034identifier} SKIP_INSTALL = YES -SWIFT_VERSION = 4.0 +SWIFT_VERSION = 4.2 diff --git a/Pods/Target Support Files/Pods-nRF Toolbox/Pods-nRF Toolbox-Info.plist b/Pods/Target Support Files/Pods-nRF Toolbox/Pods-nRF Toolbox-Info.plist new file mode 100644 index 00000000..2243fe6e --- /dev/null +++ b/Pods/Target Support Files/Pods-nRF Toolbox/Pods-nRF Toolbox-Info.plist @@ -0,0 +1,26 @@ + + + + + CFBundleDevelopmentRegion + en + CFBundleExecutable + ${EXECUTABLE_NAME} + CFBundleIdentifier + ${PRODUCT_BUNDLE_IDENTIFIER} + CFBundleInfoDictionaryVersion + 6.0 + CFBundleName + ${PRODUCT_NAME} + CFBundlePackageType + FMWK + CFBundleShortVersionString + 1.0.0 + CFBundleSignature + ???? + CFBundleVersion + ${CURRENT_PROJECT_VERSION} + NSPrincipalClass + + + diff --git a/Pods/Target Support Files/Pods-nRF Toolbox/Pods-nRF Toolbox-frameworks.sh b/Pods/Target Support Files/Pods-nRF Toolbox/Pods-nRF Toolbox-frameworks.sh index 028c139f..7cc78f60 100755 --- a/Pods/Target Support Files/Pods-nRF Toolbox/Pods-nRF Toolbox-frameworks.sh +++ b/Pods/Target Support Files/Pods-nRF Toolbox/Pods-nRF Toolbox-frameworks.sh @@ -1,9 +1,23 @@ #!/bin/sh set -e +set -u +set -o pipefail + +function on_error { + echo "$(realpath -mq "${0}"):$1: error: Unexpected failure" +} +trap 'on_error $LINENO' ERR + +if [ -z ${FRAMEWORKS_FOLDER_PATH+x} ]; then + # If FRAMEWORKS_FOLDER_PATH is not set, then there's nowhere for us to copy + # frameworks to, so exit 0 (signalling the script phase was successful). + exit 0 +fi echo "mkdir -p ${CONFIGURATION_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}" mkdir -p "${CONFIGURATION_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}" +COCOAPODS_PARALLEL_CODE_SIGN="${COCOAPODS_PARALLEL_CODE_SIGN:-false}" SWIFT_STDLIB_PATH="${DT_TOOLCHAIN_DIR}/usr/lib/swift/${PLATFORM_NAME}" # Used as a return value for each invocation of `strip_invalid_archs` function. @@ -27,8 +41,8 @@ install_framework() local destination="${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}" if [ -L "${source}" ]; then - echo "Symlinked..." - source="$(readlink "${source}")" + echo "Symlinked..." + source="$(readlink "${source}")" fi # Use filter instead of exclude so missing patterns don't throw errors. @@ -38,8 +52,13 @@ install_framework() local basename basename="$(basename -s .framework "$1")" binary="${destination}/${basename}.framework/${basename}" + if ! [ -r "$binary" ]; then binary="${destination}/${basename}" + elif [ -L "${binary}" ]; then + echo "Destination binary is symlinked..." + dirname="$(dirname "${binary}")" + binary="${dirname}/$(readlink "${binary}")" fi # Strip invalid architectures so "fat" simulator / device frameworks work on device @@ -53,7 +72,7 @@ install_framework() # Embed linked Swift runtime libraries. No longer necessary as of Xcode 7. if [ "${XCODE_VERSION_MAJOR}" -lt 7 ]; then local swift_runtime_libs - swift_runtime_libs=$(xcrun otool -LX "$binary" | grep --color=never @rpath/libswift | sed -E s/@rpath\\/\(.+dylib\).*/\\1/g | uniq -u && exit ${PIPESTATUS[0]}) + swift_runtime_libs=$(xcrun otool -LX "$binary" | grep --color=never @rpath/libswift | sed -E s/@rpath\\/\(.+dylib\).*/\\1/g | uniq -u) for lib in $swift_runtime_libs; do echo "rsync -auv \"${SWIFT_STDLIB_PATH}/${lib}\" \"${destination}\"" rsync -auv "${SWIFT_STDLIB_PATH}/${lib}" "${destination}" @@ -75,7 +94,7 @@ install_dsym() { binary="${DERIVED_FILES_DIR}/${basename}.framework.dSYM/Contents/Resources/DWARF/${basename}" # Strip invalid architectures so "fat" simulator / device frameworks work on device - if [[ "$(file "$binary")" == *"Mach-O dSYM companion"* ]]; then + if [[ "$(file "$binary")" == *"Mach-O "*"dSYM companion"* ]]; then strip_invalid_archs "$binary" fi @@ -90,12 +109,20 @@ install_dsym() { fi } +# Copies the bcsymbolmap files of a vendored framework +install_bcsymbolmap() { + local bcsymbolmap_path="$1" + local destination="${BUILT_PRODUCTS_DIR}" + echo "rsync --delete -av "${RSYNC_PROTECT_TMP_FILES[@]}" --filter "- CVS/" --filter "- .svn/" --filter "- .git/" --filter "- .hg/" --filter "- Headers" --filter "- PrivateHeaders" --filter "- Modules" "${bcsymbolmap_path}" "${destination}"" + rsync --delete -av "${RSYNC_PROTECT_TMP_FILES[@]}" --filter "- CVS/" --filter "- .svn/" --filter "- .git/" --filter "- .hg/" --filter "- Headers" --filter "- PrivateHeaders" --filter "- Modules" "${bcsymbolmap_path}" "${destination}" +} + # Signs a framework with the provided identity code_sign_if_enabled() { - if [ -n "${EXPANDED_CODE_SIGN_IDENTITY}" -a "${CODE_SIGNING_REQUIRED}" != "NO" -a "${CODE_SIGNING_ALLOWED}" != "NO" ]; then - # Use the current code_sign_identitiy + if [ -n "${EXPANDED_CODE_SIGN_IDENTITY:-}" -a "${CODE_SIGNING_REQUIRED:-}" != "NO" -a "${CODE_SIGNING_ALLOWED}" != "NO" ]; then + # Use the current code_sign_identity echo "Code Signing $1 with Identity ${EXPANDED_CODE_SIGN_IDENTITY_NAME}" - local code_sign_cmd="/usr/bin/codesign --force --sign ${EXPANDED_CODE_SIGN_IDENTITY} ${OTHER_CODE_SIGN_FLAGS} --preserve-metadata=identifier,entitlements '$1'" + local code_sign_cmd="/usr/bin/codesign --force --sign ${EXPANDED_CODE_SIGN_IDENTITY} ${OTHER_CODE_SIGN_FLAGS:-} --preserve-metadata=identifier,entitlements '$1'" if [ "${COCOAPODS_PARALLEL_CODE_SIGN}" == "true" ]; then code_sign_cmd="$code_sign_cmd &" @@ -122,7 +149,7 @@ strip_invalid_archs() { for arch in $binary_archs; do if ! [[ "${ARCHS}" == *"$arch"* ]]; then # Strip non-valid architectures in-place - lipo -remove "$arch" -output "$binary" "$binary" || exit 1 + lipo -remove "$arch" -output "$binary" "$binary" stripped="$stripped $arch" fi done diff --git a/Pods/Target Support Files/Pods-nRF Toolbox/Pods-nRF Toolbox.debug.xcconfig b/Pods/Target Support Files/Pods-nRF Toolbox/Pods-nRF Toolbox.debug.xcconfig index 11f0a19d..77a393a9 100644 --- a/Pods/Target Support Files/Pods-nRF Toolbox/Pods-nRF Toolbox.debug.xcconfig +++ b/Pods/Target Support Files/Pods-nRF Toolbox/Pods-nRF Toolbox.debug.xcconfig @@ -2,11 +2,10 @@ ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES ALWAYS_SEARCH_USER_PATHS = YES FRAMEWORK_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/CorePlot" "${PODS_CONFIGURATION_BUILD_DIR}/EVReflection" "${PODS_CONFIGURATION_BUILD_DIR}/SWRevealViewController" "${PODS_CONFIGURATION_BUILD_DIR}/Zip" "${PODS_CONFIGURATION_BUILD_DIR}/iOSDFULibrary" GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 -HEADER_SEARCH_PATHS = "${PODS_ROOT}/Headers/Private/CorePlot/ios" +HEADER_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/CorePlot/CorePlot.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/EVReflection/EVReflection.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/SWRevealViewController/SWRevealViewController.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/Zip/Zip.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/iOSDFULibrary/iOSDFULibrary.framework/Headers" "${PODS_ROOT}/Headers/Private/CorePlot/ios" LD_RUNPATH_SEARCH_PATHS = $(inherited) '@executable_path/Frameworks' '@loader_path/Frameworks' -OTHER_CFLAGS = $(inherited) -iquote "${PODS_CONFIGURATION_BUILD_DIR}/CorePlot/CorePlot.framework/Headers" -iquote "${PODS_CONFIGURATION_BUILD_DIR}/EVReflection/EVReflection.framework/Headers" -iquote "${PODS_CONFIGURATION_BUILD_DIR}/SWRevealViewController/SWRevealViewController.framework/Headers" -iquote "${PODS_CONFIGURATION_BUILD_DIR}/Zip/Zip.framework/Headers" -iquote "${PODS_CONFIGURATION_BUILD_DIR}/iOSDFULibrary/iOSDFULibrary.framework/Headers" -OTHER_LDFLAGS = $(inherited) -framework "CorePlot" -framework "EVReflection" -framework "SWRevealViewController" -framework "Zip" -framework "iOSDFULibrary" -OTHER_SWIFT_FLAGS = $(inherited) "-D" "COCOAPODS" +OTHER_LDFLAGS = $(inherited) -l"z" -framework "Accelerate" -framework "CoreGraphics" -framework "CorePlot" -framework "EVReflection" -framework "Foundation" -framework "QuartzCore" -framework "SWRevealViewController" -framework "UIKit" -framework "Zip" -framework "iOSDFULibrary" +OTHER_SWIFT_FLAGS = $(inherited) -D COCOAPODS PODS_BUILD_DIR = ${BUILD_DIR} PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) PODS_PODFILE_DIR_PATH = ${SRCROOT}/. diff --git a/Pods/Target Support Files/Pods-nRF Toolbox/Pods-nRF Toolbox.release.xcconfig b/Pods/Target Support Files/Pods-nRF Toolbox/Pods-nRF Toolbox.release.xcconfig index 11f0a19d..77a393a9 100644 --- a/Pods/Target Support Files/Pods-nRF Toolbox/Pods-nRF Toolbox.release.xcconfig +++ b/Pods/Target Support Files/Pods-nRF Toolbox/Pods-nRF Toolbox.release.xcconfig @@ -2,11 +2,10 @@ ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES ALWAYS_SEARCH_USER_PATHS = YES FRAMEWORK_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/CorePlot" "${PODS_CONFIGURATION_BUILD_DIR}/EVReflection" "${PODS_CONFIGURATION_BUILD_DIR}/SWRevealViewController" "${PODS_CONFIGURATION_BUILD_DIR}/Zip" "${PODS_CONFIGURATION_BUILD_DIR}/iOSDFULibrary" GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 -HEADER_SEARCH_PATHS = "${PODS_ROOT}/Headers/Private/CorePlot/ios" +HEADER_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/CorePlot/CorePlot.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/EVReflection/EVReflection.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/SWRevealViewController/SWRevealViewController.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/Zip/Zip.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/iOSDFULibrary/iOSDFULibrary.framework/Headers" "${PODS_ROOT}/Headers/Private/CorePlot/ios" LD_RUNPATH_SEARCH_PATHS = $(inherited) '@executable_path/Frameworks' '@loader_path/Frameworks' -OTHER_CFLAGS = $(inherited) -iquote "${PODS_CONFIGURATION_BUILD_DIR}/CorePlot/CorePlot.framework/Headers" -iquote "${PODS_CONFIGURATION_BUILD_DIR}/EVReflection/EVReflection.framework/Headers" -iquote "${PODS_CONFIGURATION_BUILD_DIR}/SWRevealViewController/SWRevealViewController.framework/Headers" -iquote "${PODS_CONFIGURATION_BUILD_DIR}/Zip/Zip.framework/Headers" -iquote "${PODS_CONFIGURATION_BUILD_DIR}/iOSDFULibrary/iOSDFULibrary.framework/Headers" -OTHER_LDFLAGS = $(inherited) -framework "CorePlot" -framework "EVReflection" -framework "SWRevealViewController" -framework "Zip" -framework "iOSDFULibrary" -OTHER_SWIFT_FLAGS = $(inherited) "-D" "COCOAPODS" +OTHER_LDFLAGS = $(inherited) -l"z" -framework "Accelerate" -framework "CoreGraphics" -framework "CorePlot" -framework "EVReflection" -framework "Foundation" -framework "QuartzCore" -framework "SWRevealViewController" -framework "UIKit" -framework "Zip" -framework "iOSDFULibrary" +OTHER_SWIFT_FLAGS = $(inherited) -D COCOAPODS PODS_BUILD_DIR = ${BUILD_DIR} PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) PODS_PODFILE_DIR_PATH = ${SRCROOT}/. diff --git a/Pods/Target Support Files/SWRevealViewController/SWRevealViewController-Info.plist b/Pods/Target Support Files/SWRevealViewController/SWRevealViewController-Info.plist new file mode 100644 index 00000000..d135faf1 --- /dev/null +++ b/Pods/Target Support Files/SWRevealViewController/SWRevealViewController-Info.plist @@ -0,0 +1,26 @@ + + + + + CFBundleDevelopmentRegion + en + CFBundleExecutable + ${EXECUTABLE_NAME} + CFBundleIdentifier + ${PRODUCT_BUNDLE_IDENTIFIER} + CFBundleInfoDictionaryVersion + 6.0 + CFBundleName + ${PRODUCT_NAME} + CFBundlePackageType + FMWK + CFBundleShortVersionString + 2.3.0 + CFBundleSignature + ???? + CFBundleVersion + ${CURRENT_PROJECT_VERSION} + NSPrincipalClass + + + diff --git a/Pods/Target Support Files/SWRevealViewController/SWRevealViewController.xcconfig b/Pods/Target Support Files/SWRevealViewController/SWRevealViewController.xcconfig index b26e84b0..563c6812 100644 --- a/Pods/Target Support Files/SWRevealViewController/SWRevealViewController.xcconfig +++ b/Pods/Target Support Files/SWRevealViewController/SWRevealViewController.xcconfig @@ -1,7 +1,6 @@ CONFIGURATION_BUILD_DIR = ${PODS_CONFIGURATION_BUILD_DIR}/SWRevealViewController GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 -HEADER_SEARCH_PATHS = "${PODS_ROOT}/Headers/Private" "${PODS_ROOT}/Headers/Public" -OTHER_LDFLAGS = -framework "CoreGraphics" +OTHER_LDFLAGS = $(inherited) -framework "CoreGraphics" PODS_BUILD_DIR = ${BUILD_DIR} PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) PODS_ROOT = ${SRCROOT} diff --git a/Pods/Target Support Files/Zip/Zip-Info.plist b/Pods/Target Support Files/Zip/Zip-Info.plist new file mode 100644 index 00000000..21a30b4a --- /dev/null +++ b/Pods/Target Support Files/Zip/Zip-Info.plist @@ -0,0 +1,26 @@ + + + + + CFBundleDevelopmentRegion + en + CFBundleExecutable + ${EXECUTABLE_NAME} + CFBundleIdentifier + ${PRODUCT_BUNDLE_IDENTIFIER} + CFBundleInfoDictionaryVersion + 6.0 + CFBundleName + ${PRODUCT_NAME} + CFBundlePackageType + FMWK + CFBundleShortVersionString + 1.1.0 + CFBundleSignature + ???? + CFBundleVersion + ${CURRENT_PROJECT_VERSION} + NSPrincipalClass + + + diff --git a/Pods/Target Support Files/Zip/Zip.xcconfig b/Pods/Target Support Files/Zip/Zip.xcconfig index 498b4684..98e1c04c 100644 --- a/Pods/Target Support Files/Zip/Zip.xcconfig +++ b/Pods/Target Support Files/Zip/Zip.xcconfig @@ -1,13 +1,12 @@ CONFIGURATION_BUILD_DIR = ${PODS_CONFIGURATION_BUILD_DIR}/Zip GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 -HEADER_SEARCH_PATHS = "${PODS_ROOT}/Headers/Private" "${PODS_ROOT}/Headers/Public" LIBRARY_SEARCH_PATHS = $(inherited) $(SRCROOT)/Zip/Zip/ -OTHER_LDFLAGS = -l"z" -OTHER_SWIFT_FLAGS = $(inherited) "-D" "COCOAPODS" +OTHER_LDFLAGS = $(inherited) -l"z" +OTHER_SWIFT_FLAGS = $(inherited) -D COCOAPODS PODS_BUILD_DIR = ${BUILD_DIR} PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) PODS_ROOT = ${SRCROOT} PODS_TARGET_SRCROOT = ${PODS_ROOT}/Zip PRODUCT_BUNDLE_IDENTIFIER = org.cocoapods.${PRODUCT_NAME:rfc1034identifier} SKIP_INSTALL = YES -SWIFT_INCLUDE_PATHS = $(SRCROOT)/Zip/Zip/minizip/** +SWIFT_INCLUDE_PATHS = $(inherited) $(SRCROOT)/Zip/Zip/minizip/** diff --git a/Pods/Target Support Files/iOSDFULibrary/iOSDFULibrary-Info.plist b/Pods/Target Support Files/iOSDFULibrary/iOSDFULibrary-Info.plist new file mode 100644 index 00000000..b04e694e --- /dev/null +++ b/Pods/Target Support Files/iOSDFULibrary/iOSDFULibrary-Info.plist @@ -0,0 +1,26 @@ + + + + + CFBundleDevelopmentRegion + en + CFBundleExecutable + ${EXECUTABLE_NAME} + CFBundleIdentifier + ${PRODUCT_BUNDLE_IDENTIFIER} + CFBundleInfoDictionaryVersion + 6.0 + CFBundleName + ${PRODUCT_NAME} + CFBundlePackageType + FMWK + CFBundleShortVersionString + 4.2.2 + CFBundleSignature + ???? + CFBundleVersion + ${CURRENT_PROJECT_VERSION} + NSPrincipalClass + + + diff --git a/Pods/Target Support Files/iOSDFULibrary/iOSDFULibrary.xcconfig b/Pods/Target Support Files/iOSDFULibrary/iOSDFULibrary.xcconfig index 20f6b799..1138e56c 100644 --- a/Pods/Target Support Files/iOSDFULibrary/iOSDFULibrary.xcconfig +++ b/Pods/Target Support Files/iOSDFULibrary/iOSDFULibrary.xcconfig @@ -1,8 +1,7 @@ CONFIGURATION_BUILD_DIR = ${PODS_CONFIGURATION_BUILD_DIR}/iOSDFULibrary FRAMEWORK_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/Zip" GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 -HEADER_SEARCH_PATHS = "${PODS_ROOT}/Headers/Private" "${PODS_ROOT}/Headers/Public" -OTHER_SWIFT_FLAGS = $(inherited) "-D" "COCOAPODS" +OTHER_SWIFT_FLAGS = $(inherited) -D COCOAPODS PODS_BUILD_DIR = ${BUILD_DIR} PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) PODS_ROOT = ${SRCROOT} diff --git a/Pods/iOSDFULibrary/README.md b/Pods/iOSDFULibrary/README.md index da33803f..f17e1083 100644 --- a/Pods/iOSDFULibrary/README.md +++ b/Pods/iOSDFULibrary/README.md @@ -41,7 +41,7 @@ carthage update --platform iOS //also OSX platform is available for macOS builds ``` -- Carthage will build the **iOSDFULibrary.framework** and **Zip.framework** files in **Carthag/Build/**, you may now copy all those files to your project and use the library, additionally, carthade also builds **\*.dsym** files if you need to resymbolicate crash logs. you may want to keep those files bundled with your builds for future use. +- Carthage will build the **iOSDFULibrary.framework** and **Zip.framework** files in **Carthage/Build/**, you may now copy all those files to your project and use the library, additionally, carthade also builds **\*.dsym** files if you need to resymbolicate crash logs. you may want to keep those files bundled with your builds for future use. --- @@ -109,9 +109,16 @@ The library is compatible with nRF51 and nRF52 devices with S-Series Soft Device * **SDK 12.0.0** - New Secure DFU has been released. This library is fully backwards compatible so supports both the new and legacy DFU. * **SDK 13.0.0** - Buttonless DFU (still experimental) uses different UUIDs. No bond sharing supported. Bootloader will use address +1. * **SDK 14.0.0** - Buttonless DFU no longer experimental. New buttonless characteristic added for bonded devices (requires bond, cache cleaning relies on Service Changed indication). +* **SDK 15.0.0** - Support for higher MTUs will be added (may be postponed). + +This library is fully backwards compatible and supports both the new and legacy DFU. The experimental buttonless DFU service from SDK 12 is supported since version 1.1.0. Due to the fact, that this experimental service from SDK 12 is not safe, you have to call [dfuInitiator.enableUnsafeExperimentalButtonlessServiceInSecureDfu = true](https://github.com/NordicSemiconductor/IOS-Pods-DFU-Library/blob/master/iOSDFULibrary/Classes/Implementation/DFUServiceInitiator.swift#L196) to enable it, this is off by default. Read the method documentation for details. It is recommended to use the Buttonless service from SDK 13 (for non-bonded devices, or 14 for bonded). Both are supported since DFU Library 1.3.0. Check platform folders for mode details about compatibility for each library. +### React Native + +An unofficial library for both iOS and Android that is based on this library is available for React Native: [react-native-nordic-dfu](https://github.com/Pilloxa/react-native-nordic-dfu) + --- ### Resources diff --git a/Pods/iOSDFULibrary/iOSDFULibrary/Classes/Implementation/DFUPeripheralSelectorDelegate.swift b/Pods/iOSDFULibrary/iOSDFULibrary/Classes/Implementation/DFUPeripheralSelectorDelegate.swift index e94f57e5..9657935b 100644 --- a/Pods/iOSDFULibrary/iOSDFULibrary/Classes/Implementation/DFUPeripheralSelectorDelegate.swift +++ b/Pods/iOSDFULibrary/iOSDFULibrary/Classes/Implementation/DFUPeripheralSelectorDelegate.swift @@ -47,15 +47,16 @@ import CoreBluetooth peripheral selector. More: http://infocenter.nordicsemi.com/topic/com.nordic.infocenter.sdk5.v14.0.0/service_dfu.html */ @objc public protocol DFUPeripheralSelectorDelegate : class { + /** Returns whether the given peripheral is a device in DFU Bootloader mode. - - parameter peripheral: the peripheral to be checked - - parameter advertisementData: scanned advertising data - - parameter RSSI: received signal strength indication in dBm - - parameter name: an optional name to look for in the advertisement packet (see Buttonless DFU in SDK 14) + - parameter peripheral: The peripheral to be checked. + - parameter advertisementData: Scanned advertising data. + - parameter RSSI: Received signal strength indication in dBm. + - parameter name: An optional name to look for in the advertisement packet (see Buttonless DFU in SDK 14). - - returns: true (YES) if given peripheral is what service is looking for + - returns: True (YES) if given peripheral is what service is looking for. */ @objc func select(_ peripheral: CBPeripheral, advertisementData: [String : AnyObject], RSSI: NSNumber, hint name: String?) -> Bool @@ -64,13 +65,13 @@ import CoreBluetooth when scanning for a device in DFU Bootloader mode. To find out what UUID you should return, switch your device to DFU Bootloader mode (with a button!) and check the advertisment packet. The result of this method will be applied to - `centralManager.scanForPeripheralsWithServices([CBUUID]?, options: [String : AnyObject]?)` + `centralManager.scanForPeripheralsWithServices([CBUUID]?, options: [String : AnyObject]?)`. - - parameter dfuServiceUUID: the UUID of the DFU service that was used to flash SoftDevice and/or Bootloader. + - parameter dfuServiceUUID: The UUID of the DFU service that was used to flash SoftDevice and/or Bootloader. Usually this service UUID is present in the DFU Bootloader's advertising packet. Then this method may simply return [dfuServiceUUID]. - - returns: an optional list of services or nil + - returns: An optional list of services or nil. */ @objc func filterBy(hint dfuServiceUUID: CBUUID) -> [CBUUID]? } diff --git a/Pods/iOSDFULibrary/iOSDFULibrary/Classes/Implementation/DFUSelector/DFUServiceSelector.swift b/Pods/iOSDFULibrary/iOSDFULibrary/Classes/Implementation/DFUSelector/DFUServiceSelector.swift index 430c3762..ee102b60 100644 --- a/Pods/iOSDFULibrary/iOSDFULibrary/Classes/Implementation/DFUSelector/DFUServiceSelector.swift +++ b/Pods/iOSDFULibrary/iOSDFULibrary/Classes/Implementation/DFUSelector/DFUServiceSelector.swift @@ -23,16 +23,22 @@ import CoreBluetooth internal protocol DFUStarterPeripheralDelegate : BasePeripheralDelegate { + /** Callback called when a DFU service has been found on a remote device. - - returns: The executor type based on the found DFU Service: SecureDFUExecutor or LegacyDFUExecutor + + - parameter ExecutorType: The type of the seleceted executor. + + - returns: The executor type based on the found DFU Service: + SecureDFUExecutor or LegacyDFUExecutor. */ func peripheralDidSelectedExecutor(_ ExecutorType: DFUExecutorAPI.Type) } /** - This class has a responsibility to connect to a given peripheral and determin which DFU implementation should be used - based on the services found on the device. + This class has a responsibility to connect to a given peripheral and + determin which DFU implementation should be used based on the services + found on the device. */ internal class DFUServiceSelector : BaseDFUExecutor, DFUStarterPeripheralDelegate { typealias DFUPeripheralType = DFUStarterPeripheral diff --git a/Pods/iOSDFULibrary/iOSDFULibrary/Classes/Implementation/DFUSelector/DFUStarterPeripheral.swift b/Pods/iOSDFULibrary/iOSDFULibrary/Classes/Implementation/DFUSelector/DFUStarterPeripheral.swift index 7e9c25f9..58db6388 100644 --- a/Pods/iOSDFULibrary/iOSDFULibrary/Classes/Implementation/DFUSelector/DFUStarterPeripheral.swift +++ b/Pods/iOSDFULibrary/iOSDFULibrary/Classes/Implementation/DFUSelector/DFUStarterPeripheral.swift @@ -26,20 +26,23 @@ internal class DFUStarterPeripheral : BaseDFUPeripheral { /** Method called when a DFU service has been found. + + - parameter service: The DFU service found on the device. */ override func peripheralDidDiscoverDfuService(_ service: CBService) { - if SecureDFUService.matches(service) { + + if service.matches(uuid: uuidHelper.secureDFUService) { logger.v("Starting Secure DFU...") delegate?.peripheralDidSelectedExecutor(SecureDFUExecutor.self) - } else if LegacyDFUService.matches(service) { + } else if service.matches(uuid: uuidHelper.legacyDFUService) { logger.v("Starting Legacy DFU...") delegate?.peripheralDidSelectedExecutor(LegacyDFUExecutor.self) - } else if SecureDFUService.matches(experimental: service) { + } else if service.matches(uuid: uuidHelper.buttonlessExperimentalService) { logger.v("Starting Secure DFU...") delegate?.peripheralDidSelectedExecutor(SecureDFUExecutor.self) } else { // This will never go in here delegate?.error(.deviceNotSupported, didOccurWithMessage: "Device not supported") } - } + } } diff --git a/Pods/iOSDFULibrary/iOSDFULibrary/Classes/Implementation/DFUServiceController.swift b/Pods/iOSDFULibrary/iOSDFULibrary/Classes/Implementation/DFUServiceController.swift index c861793e..cfd90bd9 100644 --- a/Pods/iOSDFULibrary/iOSDFULibrary/Classes/Implementation/DFUServiceController.swift +++ b/Pods/iOSDFULibrary/iOSDFULibrary/Classes/Implementation/DFUServiceController.swift @@ -30,7 +30,7 @@ import CoreBluetooth private var serviceAborted = false internal override init() { - // empty internal constructor + // Empty internal constructor } /** diff --git a/Pods/iOSDFULibrary/iOSDFULibrary/Classes/Implementation/DFUServiceDelegate.swift b/Pods/iOSDFULibrary/iOSDFULibrary/Classes/Implementation/DFUServiceDelegate.swift index b46cf9c9..0f0d3da6 100644 --- a/Pods/iOSDFULibrary/iOSDFULibrary/Classes/Implementation/DFUServiceDelegate.swift +++ b/Pods/iOSDFULibrary/iOSDFULibrary/Classes/Implementation/DFUServiceDelegate.swift @@ -48,7 +48,7 @@ import Foundation case remoteExperimentalButtonlessDFUOpCodeNotSupported = 9002 // 9000 + 2 case remoteExperimentalButtonlessDFUOperationFailed = 9004 // 9000 + 4 - // Buttonless DFU errors (received value + 9000 as they overlap legacy and secure DFU errors) + // Buttonless DFU errors (received value + 30 as they overlap legacy and secure DFU errors) case remoteButtonlessDFUSuccess = 31 // 30 + 1 case remoteButtonlessDFUOpCodeNotSupported = 32 // 30 + 2 case remoteButtonlessDFUOperationFailed = 34 // 30 + 4 @@ -85,14 +85,14 @@ import Foundation /** The state of the DFU Service. - - connecting: Service is connecting to the DFU target - - starting: DFU Service is initializing DFU operation - - enablingDfuMode: Service is switching the device to DFU mode - - uploading: Service is uploading the firmware - - validating: The DFU target is validating the firmware - - disconnecting: The iDevice is disconnecting or waiting for disconnection - - completed: DFU operation is completed and successful - - aborted: DFU Operation was aborted + - connecting: Service is connecting to the DFU target. + - starting: DFU Service is initializing DFU operation. + - enablingDfuMode: Service is switching the device to DFU mode. + - uploading: Service is uploading the firmware. + - validating: The DFU target is validating the firmware. + - disconnecting: The iDevice is disconnecting or waiting for disconnection. + - completed: DFU operation is completed and successful. + - aborted: DFU Operation was aborted. */ @objc public enum DFUState : Int { @@ -124,6 +124,7 @@ import Foundation * The only method of the delegate is only called when the service is in the Uploading state. */ @objc public protocol DFUProgressDelegate { + /** Callback called in the `State.Uploading` state. Gives detailed information about the progress and speed of transmission. This method is always called at least two times (for 0% and 100%) @@ -131,19 +132,19 @@ import Foundation This method is called in the main thread and is safe to update any UI. - - parameter part: number of part that is currently being transmitted. Parts start from 1 + - parameter part: Number of part that is currently being transmitted. Parts start from 1 and may have value either 1 or 2. Part 2 is used only when there were Soft Device and/or Bootloader AND an Application in the Distribution Packet and the DFU target does not support sending all files in a single connection. First the SD and/or BL will be sent, then the service will disconnect, reconnect again to the (new) bootloader and send the Application. - - parameter totalParts: total number of parts that are to be send (this is always equal to 1 or 2). - - parameter progress: the current progress of uploading the current part in percentage (values 0-100). + - parameter totalParts: Total number of parts that are to be send (this is always equal to 1 or 2). + - parameter progress: The current progress of uploading the current part in percentage (values 0-100). Each value will be called at most once - in case of a large file a value e.g. 3% will be called only once, despite that it will take more than one packet to reach 4%. In case of a small firmware file some values may be ommited. For example, if firmware file would be only 20 bytes you would get a callback 0% (called always) and then 100% when done. - - parameter currentSpeedBytesPerSecond: the current speed in bytes per second - - parameter avgSpeedBytesPerSecond: the average speed in bytes per second + - parameter currentSpeedBytesPerSecond: The current speed in bytes per second. + - parameter avgSpeedBytesPerSecond: The average speed in bytes per second. */ @objc func dfuProgressDidChange(for part: Int, outOf totalParts: Int, to progress: Int, currentSpeedBytesPerSecond: Double, avgSpeedBytesPerSecond: Double) @@ -153,6 +154,7 @@ import Foundation * The service delegate reports about state changes and errors. */ @objc public protocol DFUServiceDelegate { + /** Callback called when state of the DFU Service has changed. diff --git a/Pods/iOSDFULibrary/iOSDFULibrary/Classes/Implementation/DFUServiceInitiator.swift b/Pods/iOSDFULibrary/iOSDFULibrary/Classes/Implementation/DFUServiceInitiator.swift index 59576ed9..c7b1242f 100644 --- a/Pods/iOSDFULibrary/iOSDFULibrary/Classes/Implementation/DFUServiceInitiator.swift +++ b/Pods/iOSDFULibrary/iOSDFULibrary/Classes/Implementation/DFUServiceInitiator.swift @@ -32,7 +32,7 @@ import CoreBluetooth //MARK: - Internal variables internal let centralManager : CBCentralManager - internal let target : CBPeripheral + internal var target : CBPeripheral! internal var file : DFUFirmware? //MARK: - Public variables @@ -194,24 +194,36 @@ import CoreBluetooth new service when SDK 13 (or later) is out. TODO: fix the docs when SDK 13 is out. */ @objc public var enableUnsafeExperimentalButtonlessServiceInSecureDfu = false - + + /** + UUIDs used during the DFU Process. + This allows you to pass in Custom UUIDs for the DFU Service/Characteristics. + */ + @objc public var uuidHelper: DFUUuidHelper + //MARK: - Public API /** Creates the DFUServiceInitializer that will allow to send an update to the given peripheral. - The peripheral should be disconnected prior to calling start() method. - The DFU service will automatically connect to the device, check if it has required DFU - service (return a delegate callback if does not have such), jump to the DFU Bootloader mode - if necessary and perform the DFU. Proper delegate methods will be called during the process. - - parameter centralManager: manager that will be used to connect to the peripheral - - parameter target: the DFU target peripheral + This constructor takes control over the central manager and peripheral objects. + Their delegates will be set to internal library objects and will NOT be reverted to + original objects, instead they will be set to nil when DFU is complete, aborted or + has failed with an error. An app should restore the delegates (if needed) after + receiving .completed or .aborted DFUState, or receiving an error. - - returns: the initiator instance + - important: This constructor has been deprecated in favor of `init(target: CBPeripheral)`, + which does not take control over the give peripheral, and is using a copy instead. + + - parameter centralManager: Manager that will be used to connect to the peripheral + - parameter target: The DFU target peripheral. + + - returns: The initiator instance. - seeAlso: peripheralSelector property - a selector used when scanning for a device in DFU Bootloader mode in case you want to update a Softdevice and Application from a single ZIP Distribution Packet. */ + @available(*, deprecated, message: "Use init(queue: DispatchQueue?) instead.") @objc public init(centralManager: CBCentralManager, target: CBPeripheral) { self.centralManager = centralManager // Just to be sure that manager is not scanning @@ -219,16 +231,41 @@ import CoreBluetooth self.target = target // Default peripheral selector will choose the service UUID as a filter self.peripheralSelector = DFUPeripheralSelector() + // Default UUID helper with standard set of UUIDs + self.uuidHelper = DFUUuidHelper() + super.init() } /** - Sets the file with the firmware. The file must be specified before calling `start()` method, - and must not be nil. + Creates the DFUServiceInitializer that will allow to send an update to peripherals. + + - parameter queue: The dispatch queue to run BLE operations on. - - parameter file: The firmware wrapper object + - returns: The initiator instance. - - returns: the initiator instance to allow chain use + - version: Added in version 4.2 of the iOS DFU Library. + - seeAlso: peripheralSelector property - a selector used when scanning for a device in DFU Bootloader mode + in case you want to update a Softdevice and Application from a single ZIP Distribution Packet. + */ + @objc public init(queue: DispatchQueue? = nil) { + // Create a new instance of CBCentralManager + self.centralManager = CBCentralManager(delegate: nil, queue: queue) + // Default peripheral selector will choose the service UUID as a filter + self.peripheralSelector = DFUPeripheralSelector() + // Default UUID helper with standard set of UUIDs + self.uuidHelper = DFUUuidHelper() + + super.init() + } + + /** + Sets the file with the firmware. The file must be specified before calling + `start(...)` method. + + - parameter file: The firmware wrapper object. + + - returns: The initiator instance to allow chain use. */ @objc public func with(firmware file: DFUFirmware) -> DFUServiceInitiator { self.file = file @@ -236,25 +273,110 @@ import CoreBluetooth } /** - Starts sending the specified firmware to the DFU target. + Starts sending the specified firmware to the DFU target specified in `init(centralManager:target)`. When started, the service will automatically connect to the target, switch to DFU Bootloader mode (if necessary), and send all the content of the specified firmware file in one or two connections. Two connections will be used if a ZIP file contains a Soft Device and/or Bootloader and an Application. - First the Soft Device and/or Bootloader will be transferred, then the service will disconnect, reconnect to - the (new) Bootloader again and send the Application (unless the target supports receiving all files in a single - connection). + First the Soft Device and/or Bootloader will be transferred, then the service will disconnect, reconnect + to the (new) Bootloader again and send the Application (unless the target supports receiving all files + in a single connection). The peripheral will NOT be reconnected after the DFU is completed, aborted + or has failed. - The current version of the DFU Bootloader, due to memory limitations, may receive together only a Softdevice and Bootloader. + The current version of the DFU Bootloader, due to memory limitations, may receive together only + a Softdevice and Bootloader. - - returns: A DFUServiceController object that can be used to control the DFU operation. + - important: Use `start(target: CBPeripheral)` instead. + + - returns: A DFUServiceController object that can be used to control the DFU operation, + or nil, if the file was not set, or the target peripheral was not set. */ + @available(*, deprecated, message: "Use start(target: CBPeripheral) instead.") @objc public func start() -> DFUServiceController? { - // The firmware file must be specified before calling `start()` + // The firmware file must be specified before calling `start()`. if file == nil { - delegate?.dfuError(.fileNotSpecified, didOccurWithMessage: "Firmare not specified") + delegate?.dfuError(.fileNotSpecified, didOccurWithMessage: "Firmware not specified") return nil } - + + // Make sure the target was set by the deprecated init. + guard let _ = target else { + delegate?.dfuError(.failedToConnect, didOccurWithMessage: "Target not specified: use start(target) instead") + return nil + } + + let controller = DFUServiceController() + let selector = DFUServiceSelector(initiator: self, controller: controller) + controller.executor = selector + selector.start() + + return controller + } + + /** + Starts sending the specified firmware to the given DFU target. + When started, the service will automatically connect to the target, switch to DFU Bootloader mode + (if necessary), and send all the content of the specified firmware file in one or two connections. + Two connections will be used if a ZIP file contains a Soft Device and/or Bootloader and an Application. + First the Soft Device and/or Bootloader will be transferred, then the service will disconnect, reconnect + to the (new) Bootloader again and send the Application (unless the target supports receiving all files + in a single connection). The peripheral will NOT be reconnected after the DFU is completed, aborted + or has failed. + + This method does not take control over the peripheral. + A new central manager is used, from which a copy of the peripheral is retrieved. Be warned, + that the original peripheral delegate may receive a lot of calls, and it will restart during + the process. The app should not send any data to DFU characteristics when DFU is in progress. + + The current version of the DFU Bootloader, due to memory limitations, may receive together only + a Softdevice and Bootloader. + + - parameter target: The DFU target peripheral. + + - returns: A DFUServiceController object that can be used to control the DFU operation, + or nil, if the file was not set, or the peripheral instance could not be retrieved. + */ + @objc public func start(target: CBPeripheral) -> DFUServiceController? { + return start(targetWithIdentifier: target.identifier) + } + + /** + Starts sending the specified firmware to the DFU target with given identifier. + When started, the service will automatically connect to the target, switch to DFU Bootloader mode + (if necessary), and send all the content of the specified firmware file in one or two connections. + Two connections will be used if a ZIP file contains a Soft Device and/or Bootloader and an Application. + First the Soft Device and/or Bootloader will be transferred, then the service will disconnect, reconnect + to the (new) Bootloader again and send the Application (unless the target supports receiving all files + in a single connection). The peripheral will NOT be reconnected after the DFU is completed, aborted + or has failed. + + This method does not take control over the peripheral. + A new central manager is used, from which a copy of the peripheral is retrieved. Be warned, + that the original peripheral delegate may receive a lot of calls, and it will restart during + the process. The app should not send any data to DFU characteristics when DFU is in progress. + + The current version of the DFU Bootloader, due to memory limitations, may receive together only + a Softdevice and Bootloader. + + - parameter uuid: The UUID associated with the peer. + + - returns: A DFUServiceController object that can be used to control the DFU operation, + or nil, if the file was not set, or the peripheral instance could not be retrieved. + */ + @objc public func start(targetWithIdentifier uuid: UUID) -> DFUServiceController? { + // The firmware file must be specified before calling `start(...)`. + if file == nil { + delegate?.dfuError(.fileNotSpecified, didOccurWithMessage: "Firmware not specified") + return nil + } + + // As the given peripheral was obtained using a different central manager, + // its new instance must be obtained from the new manager. + guard let peripheral = self.centralManager.retrievePeripherals(withIdentifiers: [uuid]).first else { + delegate?.dfuError(.bluetoothDisabled, didOccurWithMessage: "Could not obtain peripheral instance") + return nil + } + target = peripheral + let controller = DFUServiceController() let selector = DFUServiceSelector(initiator: self, controller: controller) controller.executor = selector diff --git a/Pods/iOSDFULibrary/iOSDFULibrary/Classes/Implementation/DFUUuidHelper.swift b/Pods/iOSDFULibrary/iOSDFULibrary/Classes/Implementation/DFUUuidHelper.swift new file mode 100644 index 00000000..e88dea1b --- /dev/null +++ b/Pods/iOSDFULibrary/iOSDFULibrary/Classes/Implementation/DFUUuidHelper.swift @@ -0,0 +1,214 @@ +// +/* + * Copyright (c) 2016, Nordic Semiconductor + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * 3. Neither the name of the copyright holder nor the names of its contributors may be used to endorse or promote products derived from this + * software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT + * HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON + * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE + * USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +import Foundation +import CoreBluetooth + +/// UUID Types for DFU. +@objc public enum DFUUuidType: Int { + /// Legacy DFU Service. + case lagacyService = 0 + /// Legacy DFU Control Point Characteristic. + case legacyControlPoint = 1 + /// Legacy DFU Packet Characteristic. + case legacyPacket = 2 + /// Legacy DFU Version Characteristic. + case legacyVersion = 3 + /// Secure DFU Service. + case secureService = 4 + /// Secure DFU Control Characteristic. + case secureControl = 5 + /// Secure DFU Packet Characteristic. + case securePacket = 6 + /// Buttonless DFU Service. + case buttonlessService = 7 + /// Buttonless DFU Characteristic. + case buttonlessCharacteristic = 8 + /// Buttonless DFU Without Bond Sharing Characterisitic. + case buttonlessWithoutBondSharing = 9 + /// Buttonless DFU With Bond Sharing Characterisitic. + case buttonlessWithBondSharing = 10 +} + +/// DFU UUID object. +@objc public class DFUUuid: NSObject { + + /// UUID For the DFU UUID Object. + @objc public let uuid: CBUUID + + /// Type of DFU UUID. + @objc public let type: DFUUuidType + + @objc public init(withUUID: CBUUID, forType: DFUUuidType) { + uuid = withUUID + type = forType + + super.init() + } +} + +/// UUID Helper for DFU Process +/// +/// The UUID can be modified for each of the DFU types supported by +/// the Nordic devices. +@objc public class DFUUuidHelper: NSObject { + + /// UUID for Legacy DFU Service. + @objc private(set) public var legacyDFUService: CBUUID + + /// UUID for Legacy DFU Control Point Characteristic. + @objc private(set) public var legacyDFUControlPoint: CBUUID + + /// UUID for Legacy DFU Packet Characteristic. + @objc private(set) public var legacyDFUPacket: CBUUID + + /// UUID for Legacy DFU Version Characteristic. + @objc private(set) public var legacyDFUVersion: CBUUID + + /// UUID for Secure DFU Service. + @objc private(set) public var secureDFUService: CBUUID + + /// UUID for Secure DFU Control Characteristic. + @objc private(set) public var secureDFUControlPoint: CBUUID + + /// UUID for Secure DFU Packet Characteristic. + @objc private(set) public var secureDFUPacket: CBUUID + + /// UUID for Buttonless DFU Service. + /// + /// This UUID is also used for the Characteristic. + @objc private(set) public var buttonlessExperimentalService: CBUUID + + /// UUID for Buttonless DFU Characteristic. + @objc private(set) public var buttonlessExperimentalCharacteristic: CBUUID + + /// UUID for Buttonless DFU Without Bond Sharing Characterisitic. + @objc private(set) public var buttonlessWithoutBonds: CBUUID + + /// UUID for Buttonless DFU With Bond Sharing Characterisitic. + @objc private(set) public var buttonlessWithBonds: CBUUID + + /// Creates the DFU Helper with Default UUIDs. + @objc public override init() { + // Legacy DFU + legacyDFUService = CBUUID(string: "00001530-1212-EFDE-1523-785FEABCD123") + legacyDFUControlPoint = CBUUID(string: "00001531-1212-EFDE-1523-785FEABCD123") + legacyDFUPacket = CBUUID(string: "00001532-1212-EFDE-1523-785FEABCD123") + legacyDFUVersion = CBUUID(string: "00001534-1212-EFDE-1523-785FEABCD123") + + // Secure DFU + secureDFUService = CBUUID(string: "FE59") + secureDFUControlPoint = CBUUID(string: "8EC90001-F315-4F60-9FB8-838830DAEA50") + secureDFUPacket = CBUUID(string: "8EC90002-F315-4F60-9FB8-838830DAEA50") + + // Buttonless DFU + buttonlessExperimentalService = CBUUID(string: "8E400001-F315-4F60-9FB8-838830DAEA50") + // The same UUID as the service + buttonlessExperimentalCharacteristic = CBUUID(string: "8E400001-F315-4F60-9FB8-838830DAEA50") + + buttonlessWithoutBonds = CBUUID(string: "8EC90003-F315-4F60-9FB8-838830DAEA50") + buttonlessWithBonds = CBUUID(string: "8EC90004-F315-4F60-9FB8-838830DAEA50") + + super.init() + } + + /** + Create the DFU UUID Helper with Custom UUIDs. + + - parameter uuids: Array of Custom UUIDs + */ + @objc public convenience init(customUuids uuids: [DFUUuid]) { + self.init() + + for uuid in uuids { + switch uuid.type { + case .lagacyService: + self.legacyDFUService = uuid.uuid + case .legacyControlPoint: + self.legacyDFUControlPoint = uuid.uuid + case .legacyPacket: + self.legacyDFUPacket = uuid.uuid + case .legacyVersion: + self.legacyDFUVersion = uuid.uuid + case .secureService: + self.secureDFUService = uuid.uuid + case .secureControl: + self.secureDFUControlPoint = uuid.uuid + case .securePacket: + self.secureDFUPacket = uuid.uuid + case .buttonlessService: + self.buttonlessExperimentalService = uuid.uuid + case .buttonlessCharacteristic: + self.buttonlessExperimentalCharacteristic = uuid.uuid + case .buttonlessWithoutBondSharing: + self.buttonlessWithoutBonds = uuid.uuid + case .buttonlessWithBondSharing: + self.buttonlessWithBonds = uuid.uuid + } + } + } +} + +internal extension DFUUuidHelper { + + /** + Checks if the Characteristic matches the Buttonless Characteristics. + + - parameter characteristic: Characteristic to check for match. + + - returns: Bool Value. + */ + func matchesButtonless(_ characteristic: CBCharacteristic) -> Bool { + return characteristic.uuid.isEqual(buttonlessWithBonds) + || characteristic.uuid.isEqual(buttonlessWithoutBonds) + || characteristic.uuid.isEqual(buttonlessExperimentalCharacteristic) + } +} + +internal extension CBCharacteristic { + + /** + Checks if the Characteristic has the given UUID. + + - parameter uuid: DFU UUID. + + - returns: True, if the charactersistic's UUID is equal to the given one. + */ + func matches(uuid: CBUUID) -> Bool { + return self.uuid.isEqual(uuid) + } +} + +internal extension CBService { + + /** + Checks if the Service has the given UUID. + + - parameter uuid: DFU UUID. + + - returns: True, if the service's UUID is equal to the given one. + */ + func matches(uuid: CBUUID) -> Bool { + return self.uuid.isEqual(uuid) + } +} diff --git a/Pods/iOSDFULibrary/iOSDFULibrary/Classes/Implementation/Firmware/DFUFirmware.swift b/Pods/iOSDFULibrary/iOSDFULibrary/Classes/Implementation/Firmware/DFUFirmware.swift index 7bd966e4..fca1d727 100644 --- a/Pods/iOSDFULibrary/iOSDFULibrary/Classes/Implementation/Firmware/DFUFirmware.swift +++ b/Pods/iOSDFULibrary/iOSDFULibrary/Classes/Implementation/Firmware/DFUFirmware.swift @@ -27,11 +27,11 @@ import Foundation only application). This works as a filter. If you have SD+BL+App in the ZIP, but want to send only App, you may set the type to .application. - - softdevice: Firmware file will be sent as a new Softdevice - - bootloader: Firmware file will be sent as a new Bootloader - - application: Firmware file will be sent as a new application - - softdeviceBootloader: Firmware file will be sent as a new Softdevice + Bootloader - - softdeviceBootloaderApplication: All content of the ZIP file will be sent + - softdevice: Firmware file will be sent as a new Softdevice. + - bootloader: Firmware file will be sent as a new Bootloader. + - application: Firmware file will be sent as a new application. + - softdeviceBootloader: Firmware file will be sent as a new Softdevice + Bootloader. + - softdeviceBootloaderApplication: All content of the ZIP file will be sent. */ @objc public enum DFUFirmwareType : UInt8 { case softdevice = 1 @@ -86,9 +86,9 @@ import Foundation with firmware metadata and at least one firmware binaries. Read more about the Distribution packet on the DFU documentation. - - parameter urlToZipFile: URL to the Distribution packet (ZIP) + - parameter urlToZipFile: URL to the Distribution packet (ZIP). - - returns: the DFU firmware object or null in case of an error + - returns: The DFU firmware object or null in case of an error. */ @objc convenience public init?(urlToZipFile: URL) { self.init(urlToZipFile: urlToZipFile, type: DFUFirmwareType.softdeviceBootloaderApplication) @@ -99,10 +99,10 @@ import Foundation with firmware metadata and at least one firmware binaries. Read more about the Distribution packet on the DFU documentation. - - parameter urlToZipFile: URL to the Distribution packet (ZIP) - - parameter type: The type of the firmware to use + - parameter urlToZipFile: URL to the Distribution packet (ZIP). + - parameter type: The type of the firmware to use. - - returns: the DFU firmware object or null in case of an error + - returns: The DFU firmware object or null in case of an error. */ @objc public init?(urlToZipFile: URL, type: DFUFirmwareType) { fileUrl = urlToZipFile @@ -133,9 +133,9 @@ import Foundation with firmware metadata and at least one firmware binaries. Read more about the Distribution packet on the DFU documentation. - - parameter zipFile: The Distribution packet (ZIP) data + - parameter zipFile: The Distribution packet (ZIP) data. - - returns: the DFU firmware object or null in case of an error + - returns: The DFU firmware object or null in case of an error. */ @objc convenience public init?(zipFile: Data) { self.init(zipFile: zipFile, type: DFUFirmwareType.softdeviceBootloaderApplication) @@ -146,10 +146,10 @@ import Foundation with firmware metadata and at least one firmware binaries. Read more about the Distribution packet on the DFU documentation. - - parameter zipFile: The Distribution packet (ZIP) data - - parameter type: The type of the firmware to use + - parameter zipFile: The Distribution packet (ZIP) data. + - parameter type: The type of the firmware to use. - - returns: the DFU firmware object or null in case of an error + - returns: The DFU firmware object or null in case of an error. */ @objc public init?(zipFile: Data, type: DFUFirmwareType) { fileUrl = nil @@ -170,11 +170,11 @@ import Foundation Creates the DFU Firmware object from a BIN or HEX file. Setting the DAT file with an Init packet is optional, but may be required by the bootloader (SDK 7.0.0+). - - parameter urlToBinOrHexFile: URL to a BIN or HEX file with the firmware - - parameter urlToDatFile: An optional URL to a DAT file with the Init packet - - parameter type: The type of the firmware + - parameter urlToBinOrHexFile: URL to a BIN or HEX file with the firmware. + - parameter urlToDatFile: An optional URL to a DAT file with the Init packet. + - parameter type: The type of the firmware. - - returns: the DFU firmware object or null in case of an error + - returns: The DFU firmware object or null in case of an error. */ @objc public init?(urlToBinOrHexFile: URL, urlToDatFile: URL?, type: DFUFirmwareType) { fileUrl = urlToBinOrHexFile @@ -213,11 +213,11 @@ import Foundation Creates the DFU Firmware object from a BIN data. Setting the DAT file with an Init packet is optional, but may be required by the bootloader (SDK 7.0.0+). - - parameter binFile: Content of the new firmware as BIN - - parameter datFile: An optional DAT file data with the Init packet - - parameter type: The type of the firmware + - parameter binFile: Content of the new firmware as BIN. + - parameter datFile: An optional DAT file data with the Init packet. + - parameter type: The type of the firmware. - - returns: the DFU firmware object or null in case of an error + - returns: The DFU firmware object or null in case of an error. */ @objc public init?(binFile: Data, datFile: Data?, type: DFUFirmwareType) { fileUrl = nil @@ -231,11 +231,11 @@ import Foundation Creates the DFU Firmware object from a HEX data. Setting the DAT file with an Init packet is optional, but may be required by the bootloader (SDK 7.0.0+). - - parameter binFile: Content of the HEX file containing new firmware - - parameter datFile: An optional DAT file data with the Init packet - - parameter type: The type of the firmware + - parameter hexFile: Content of the HEX file containing new firmware. + - parameter datFile: An optional DAT file data with the Init packet. + - parameter type: The type of the firmware. - - returns: the DFU firmware object or null in case of an error + - returns: The DFU firmware object or null in case of an error. */ @objc public init?(hexFile: Data, datFile: Data?, type: DFUFirmwareType) { fileUrl = nil diff --git a/Pods/iOSDFULibrary/iOSDFULibrary/Classes/Implementation/GenericDFU/DFUCharacteristic.swift b/Pods/iOSDFULibrary/iOSDFULibrary/Classes/Implementation/GenericDFU/DFUCharacteristic.swift new file mode 100644 index 00000000..528050b8 --- /dev/null +++ b/Pods/iOSDFULibrary/iOSDFULibrary/Classes/Implementation/GenericDFU/DFUCharacteristic.swift @@ -0,0 +1,37 @@ +/* + * Copyright (c) 2016, Nordic Semiconductor + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * 3. Neither the name of the copyright holder nor the names of its contributors may be used to endorse or promote products derived from this + * software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT + * HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON + * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE + * USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +import Foundation +import CoreBluetooth + +/// Describes a DFU Characteristic +internal protocol DFUCharacteristic { + + /// Discovered characteristic. + var characteristic: CBCharacteristic { get } + + /// Logger helper. + /// The logger inside may be nil, but the helper may not. + var logger: LoggerHelper { get } + + init(_ characteristic: CBCharacteristic, _ logger: LoggerHelper) +} diff --git a/Pods/iOSDFULibrary/iOSDFULibrary/Classes/Implementation/GenericDFU/DFUController.swift b/Pods/iOSDFULibrary/iOSDFULibrary/Classes/Implementation/GenericDFU/DFUController.swift index 2cbac2e3..ec65e3ad 100644 --- a/Pods/iOSDFULibrary/iOSDFULibrary/Classes/Implementation/GenericDFU/DFUController.swift +++ b/Pods/iOSDFULibrary/iOSDFULibrary/Classes/Implementation/GenericDFU/DFUController.swift @@ -21,18 +21,21 @@ */ internal protocol DFUController { + /** Call this method to pause uploading during the transmition process. The transmition can be resumed only when connection remains. If service has already started sending firmware data it will pause after receiving next Packet Receipt Notification. Otherwise it will continue to send Op Codes and pause before sending the first bytes of the firmware. With Packet Receipt Notifications disabled it is the only moment when upload may be paused. - - returns: true if DFU operation was paused, false otherwise + + - returns: True if DFU operation was paused, false otherwise. */ func pause() -> Bool /** Call this method to resume the paused transffer, otherwise does nothing. - - returns: true if DFU operation was resumed, false otherwise + + - returns: True if DFU operation was resumed, false otherwise. */ func resume() -> Bool @@ -44,7 +47,8 @@ internal protocol DFUController { Abort (Reset) command will be sent instead of a next Op Code, or after receiving a Packet Receipt Notification. It PRM procedure is disabled it will continue until the whole firmware is sent and then Reset will be sent instead of Verify Firmware op code. - - returns: true if DFU operation was aborted, false otherwise + + - returns: True if DFU operation was aborted, false otherwise. */ func abort() -> Bool } diff --git a/Pods/iOSDFULibrary/iOSDFULibrary/Classes/Implementation/GenericDFU/DFUExecutor.swift b/Pods/iOSDFULibrary/iOSDFULibrary/Classes/Implementation/GenericDFU/DFUExecutor.swift index 2c68823c..305ebdee 100644 --- a/Pods/iOSDFULibrary/iOSDFULibrary/Classes/Implementation/GenericDFU/DFUExecutor.swift +++ b/Pods/iOSDFULibrary/iOSDFULibrary/Classes/Implementation/GenericDFU/DFUExecutor.swift @@ -23,6 +23,7 @@ import CoreBluetooth internal protocol BaseExecutorAPI : class, DFUController { + /** Starts the DFU operation. */ @@ -31,6 +32,7 @@ internal protocol BaseExecutorAPI : class, DFUController { internal protocol BaseDFUExecutor : BaseExecutorAPI, BasePeripheralDelegate { associatedtype DFUPeripheralType : BaseDFUPeripheralAPI + /// Target peripheral object var peripheral: DFUPeripheralType { get } /// The DFU Service Initiator instance that was used to start the service. @@ -40,6 +42,7 @@ internal protocol BaseDFUExecutor : BaseExecutorAPI, BasePeripheralDelegate { } extension BaseDFUExecutor { + /// The service delegate will be informed about status changes and errors. internal var delegate: DFUServiceDelegate? { // The delegate may change during DFU operation (by setting a new one in the initiator). Let's always use the current one. @@ -135,7 +138,7 @@ internal protocol DFUExecutor : DFUExecutorAPI, BaseDFUExecutor, DFUPeripheralDe extension DFUExecutor { - // MARK: - BasePeripheralDelegate API + // MARK: - DFUPeripheralDelegate API func peripheralDidDisconnectAfterFirmwarePartSent() -> Bool { // Check if there is another part of the firmware that has to be sent diff --git a/Pods/iOSDFULibrary/iOSDFULibrary/Classes/Implementation/GenericDFU/DFUPeripheral.swift b/Pods/iOSDFULibrary/iOSDFULibrary/Classes/Implementation/GenericDFU/DFUPeripheral.swift index c6874fa7..9e27ea64 100644 --- a/Pods/iOSDFULibrary/iOSDFULibrary/Classes/Implementation/GenericDFU/DFUPeripheral.swift +++ b/Pods/iOSDFULibrary/iOSDFULibrary/Classes/Implementation/GenericDFU/DFUPeripheral.swift @@ -23,6 +23,7 @@ import CoreBluetooth internal protocol BaseDFUPeripheralAPI : class, DFUController { + /** This method starts DFU process for given peripheral. If the peripheral is not connected it will call the connect() method, if it is connected, but services were not discovered before, it will try to discover services instead. @@ -66,19 +67,22 @@ internal class BaseDFUPeripheral : NSObject, BaseDF /* // If the experimental feature was enabled if experimentalButtonlessServiceInSecureDfuEnabled { - return [LegacyDFUService.UUID, SecureDFUService.UUID, SecureDFUService.ExperimentalButtonlessDfuUUID] + return [uuidHelper.legacyDFUService, uuidHelper.secureDFUService, uuidHelper.buttonlessExperimentalService] } // By default only standard Secure and Legacy DFU services will be discovered - return [LegacyDFUService.UUID, SecureDFUService.UUID] + return [uuidHelper.legacyDFUService, uuidHelper.secureDFUService] */ } - /// A flag indicating whether the eperimental Buttonless DFU Service in Secure DFU is supported + /// A flag indicating whether the eperimental Buttonless DFU Service in Secure DFU is supported. internal let experimentalButtonlessServiceInSecureDfuEnabled: Bool - /// Default error callback + /// Default error callback. internal var defaultErrorCallback: ErrorCallback { return { (error, message) in self.delegate?.error(error, didOccurWithMessage: message) } } - + + /// UUIDs for Service/Characteristics. + internal var uuidHelper: DFUUuidHelper + /// A flag set when upload has been aborted. fileprivate var aborted: Bool = false @@ -86,6 +90,8 @@ internal class BaseDFUPeripheral : NSObject, BaseDF self.centralManager = initiator.centralManager self.logger = LoggerHelper(initiator.logger) self.experimentalButtonlessServiceInSecureDfuEnabled = initiator.enableUnsafeExperimentalButtonlessServiceInSecureDfu + self.uuidHelper = initiator.uuidHelper + super.init() // Set the initial peripheral. It may be changed later (flashing App fw after first flashing SD/BL) self.peripheral = initiator.target @@ -97,6 +103,11 @@ internal class BaseDFUPeripheral : NSObject, BaseDF aborted = false centralManager.delegate = self + if centralManager.state != .poweredOn { + // Central manager not ready. Wait for poweredOn state. + return + } + if peripheral!.state != .connected { connect() } else { @@ -129,6 +140,7 @@ internal class BaseDFUPeripheral : NSObject, BaseDF func destroy() { centralManager.delegate = nil peripheral?.delegate = nil + peripheral = nil delegate = nil } @@ -172,13 +184,21 @@ internal class BaseDFUPeripheral : NSObject, BaseDF stateAsString = "Unknown" } logger.d("[Callback] Central Manager did update state to: \(stateAsString)") - if central.state != .poweredOn { + if central.state == .poweredOn { + // We are now ready to rumble! + start() + } else { // The device has been already disconnected if it was connected delegate?.error(.bluetoothDisabled, didOccurWithMessage: "Bluetooth adapter powered off") + destroy() } } func centralManager(_ central: CBCentralManager, didConnect peripheral: CBPeripheral) { + guard peripheral.isEqual(self.peripheral) else { + return + } + cleanUp() logger.d("[Callback] Central Manager did connect peripheral") @@ -194,6 +214,10 @@ internal class BaseDFUPeripheral : NSObject, BaseDF } func centralManager(_ central: CBCentralManager, didFailToConnect peripheral: CBPeripheral, error: Error?) { + guard peripheral.isEqual(self.peripheral) else { + return + } + cleanUp() if let error = error { @@ -207,6 +231,10 @@ internal class BaseDFUPeripheral : NSObject, BaseDF } func centralManager(_ central: CBCentralManager, didDisconnectPeripheral peripheral: CBPeripheral, error: Error?) { + guard peripheral.isEqual(self.peripheral) else { + return + } + cleanUp() // We may expect an error with @@ -262,6 +290,18 @@ internal class BaseDFUPeripheral : NSObject, BaseDF // Search for DFU service guard let dfuService = findDfuService(in: peripheral.services) else { logger.e("DFU Service not found") + + // Log what was found in case of an error + if let services = peripheral.services, services.isEmpty == false { + logger.d("The following services were discovered:") + services.forEach { service in + logger.d(" - \(service.uuid.uuidString)") + } + } else { + logger.d("No services found") + } + logger.d("Did you connect to the correct target? It might be that the previous services were cached: toggle Bluetooth from iOS settings to clear cache. Also, ensure the device contains the Service Changed characteristic") + // The device does not support DFU, nor buttonless jump delegate?.error(.deviceNotSupported, didOccurWithMessage: "DFU Service not found") return @@ -310,22 +350,25 @@ internal class BaseDFUPeripheral : NSObject, BaseDF /** Looks for a DFU Service in given list of services. - - returns: a DFUService type if a DFU service has been found, or nil if services are nil or the list - does not contain any supported DFU Service. + + - returns: A DFUService type if a DFU service has been found, or nil if services + are nil or the list does not contain any supported DFU Service. */ private func findDfuService(in services:[CBService]?) -> CBService? { if let services = services { for service in services { // Skip the experimental Buttonless DFU Service if this feature wasn't enabled - if experimentalButtonlessServiceInSecureDfuEnabled && SecureDFUService.matches(experimental: service) { + if experimentalButtonlessServiceInSecureDfuEnabled && service.matches(uuid: uuidHelper.buttonlessExperimentalService) { // The experimental Buttonless DFU Service for Secure DFU has been found return service } - if SecureDFUService.matches(service) { + + if service.matches(uuid: uuidHelper.secureDFUService) { // Secure DFU Service has been found return service } - if LegacyDFUService.matches(service) { + + if service.matches(uuid: uuidHelper.legacyDFUService) { // Legacy DFU Service has been found return service } @@ -338,16 +381,21 @@ internal class BaseDFUPeripheral : NSObject, BaseDF Starts the service discovery. */ private func discoverServices() { - let services = requiredServices - // Discover DFU service on the device to determine the DFU implementation. - logger.v("Discovering services...") - if services != nil { - logger.d("peripheral.discoverServices(\(services!))") + if let peripheral = peripheral { + // Discover DFU service on the device to determine the DFU implementation. + logger.v("Discovering services...") + if let services = requiredServices { + logger.d("peripheral.discoverServices(\(services))") + } else { + logger.d("peripheral.discoverServices(nil)") + } + peripheral.delegate = self + peripheral.discoverServices(requiredServices) } else { - logger.d("peripheral.discoverServices(nil)") + logger.e("Unable to discover services: peripheral is nil. Is Bluetooth enabled?") + delegate?.error(.serviceDiscoveryFailed, didOccurWithMessage: "Peripheral is nil") + resetDevice() } - peripheral!.delegate = self - peripheral!.discoverServices(services) } /** @@ -366,13 +414,14 @@ internal class BaseDFUPeripheral : NSObject, BaseDF } internal protocol DFUPeripheralAPI : BaseDFUPeripheralAPI { + /** Checks whether the target device is in application mode and must be switched to the DFU mode. - parameter forceDfu: should the service assume the device is in DFU Bootloader mode when DFU Version characteristic does not exist and at least one other service has been found on the device. - - returns: true if device needs buttonless jump to DFU Bootloader mode + - returns: True if device needs buttonless jump to DFU Bootloader mode. */ func isInApplicationMode(_ forceDfu: Bool) -> Bool @@ -388,7 +437,7 @@ internal protocol DFUPeripheralAPI : BaseDFUPeripheralAPI { /** Returns whether the Init Packet is required by the target DFU device. - - returns: true if init packet is required, false if not. Init packet is required + - returns: True if init packet is required, false if not. Init packet is required since DFU Bootloader version 0.5 (SDK 7.0.0). */ func isInitPacketRequired() -> Bool @@ -399,7 +448,7 @@ internal protocol DFUPeripheralAPI : BaseDFUPeripheralAPI { var activating: Bool { get set } /// A flag set when the library should try again connecting to the device (it may be then in a correct state). var shouldReconnect: Bool { get set } - /// A unique name that the bootloader will use in advertisement packets (used since SDK 14) + /// A unique name that the bootloader will use in advertisement packets (used since SDK 14). var bootloaderName: String? { get set } } @@ -414,7 +463,7 @@ internal protocol DFUPeripheral : DFUPeripheralAPI { } internal class BaseCommonDFUPeripheral : BaseDFUPeripheral, DFUPeripheral { - /// The peripheral selector instance specified in the initiator + /// The peripheral selector instance specified in the initiator. internal let peripheralSelector: DFUPeripheralSelectorDelegate internal typealias DFUServiceType = TS @@ -444,7 +493,7 @@ internal class BaseCommonDFUPeripheral Bool } diff --git a/Pods/iOSDFULibrary/iOSDFULibrary/Classes/Implementation/GenericDFU/DFUService.swift b/Pods/iOSDFULibrary/iOSDFULibrary/Classes/Implementation/GenericDFU/DFUService.swift index 33978e57..f0072b3a 100644 --- a/Pods/iOSDFULibrary/iOSDFULibrary/Classes/Implementation/GenericDFU/DFUService.swift +++ b/Pods/iOSDFULibrary/iOSDFULibrary/Classes/Implementation/GenericDFU/DFUService.swift @@ -27,22 +27,20 @@ internal typealias ErrorCallback = (_ error: DFUError, _ withMessage: String) -> internal typealias ProgressCallback = (_ bytesReceived: UInt32?) -> Void internal protocol DFUService : DFUController { - /// The UUID of the service - static var UUID: CBUUID { get } - /// The target DFU Peripheral + + /// The target DFU Peripheral. var targetPeripheral: DFUPeripheralAPI? { get set } - /** - Returns true if given service matches this service UUID - - parameter service: the service to check - - returns: true if the service can be insanced based on the given service, false otherwise - */ - static func matches(_ service: CBService) -> Bool + /// UUID Helper. + var uuidHelper: DFUUuidHelper { get } + /// Returns the service UUID based on the UUID helper. + static func serviceUuid(from uuidHelper: DFUUuidHelper) -> CBUUID + /** Required constructor of a service. */ - init(_ service: CBService, _ logger: LoggerHelper) + init(_ service: CBService, _ logger: LoggerHelper, _ dfuHelper: DFUUuidHelper) /** Discovers characteristics in the DFU Service. This method also reads the DFU Version characteristic if such found. diff --git a/Pods/iOSDFULibrary/iOSDFULibrary/Classes/Implementation/LegacyDFU/Characteristics/DFUControlPoint.swift b/Pods/iOSDFULibrary/iOSDFULibrary/Classes/Implementation/LegacyDFU/Characteristics/DFUControlPoint.swift index cc3ded35..aecbc7cb 100644 --- a/Pods/iOSDFULibrary/iOSDFULibrary/Classes/Implementation/LegacyDFU/Characteristics/DFUControlPoint.swift +++ b/Pods/iOSDFULibrary/iOSDFULibrary/Classes/Implementation/LegacyDFU/Characteristics/DFUControlPoint.swift @@ -175,16 +175,11 @@ internal struct PacketReceiptNotification { } } -@objc internal class DFUControlPoint : NSObject, CBPeripheralDelegate { - static let UUID = CBUUID(string: "00001531-1212-EFDE-1523-785FEABCD123") - - static func matches(_ characteristic: CBCharacteristic) -> Bool { - return characteristic.uuid.isEqual(UUID) - } - - private var characteristic: CBCharacteristic - private var logger: LoggerHelper - +@objc internal class DFUControlPoint : NSObject, CBPeripheralDelegate, DFUCharacteristic { + + internal var characteristic: CBCharacteristic + internal var logger: LoggerHelper + private var success: Callback? private var proceed: ProgressCallback? private var report: ErrorCallback? @@ -197,21 +192,21 @@ internal struct PacketReceiptNotification { } // MARK: - Initialization - - init(_ characteristic: CBCharacteristic, _ logger: LoggerHelper) { + + required init(_ characteristic: CBCharacteristic, _ logger: LoggerHelper) { self.characteristic = characteristic self.logger = logger } - + // MARK: - Characteristic API methods /** - Enables notifications for the DFU Control Point characteristics. Reports success or an error - using callbacks. + Enables notifications for the DFU Control Point characteristics. + Reports success or an error using callbacks. - - parameter success: method called when notifications were successfully enabled - - parameter report: method called in case of an error - */ + - parameter success: Method called when notifications were successfully enabled. + - parameter report: Method called in case of an error. + */ func enableNotifications(onSuccess success: Callback?, onError report: ErrorCallback?) { // Save callbacks self.success = success @@ -229,12 +224,12 @@ internal struct PacketReceiptNotification { } /** - Sends given request to the DFU Control Point characteristic. Reports success or an error - using callbacks. + Sends given request to the DFU Control Point characteristic. + Reports success or an error using callbacks. - - parameter request: request to be sent - - parameter success: method called when peripheral reported with status success - - parameter report: method called in case of an error + - parameter request: Request to be sent. + - parameter success: Method called when peripheral reported with status success. + - parameter report: Method called in case of an error. */ func send(_ request: Request, onSuccess success: Callback?, onError report: ErrorCallback?) { // Save callbacks and parameter @@ -269,12 +264,15 @@ internal struct PacketReceiptNotification { } /** - Sets the callbacks used later on when a Packet Receipt Notification is received, a device reported an error or the whole firmware has been sent - and the notification with success status was received. Sending the firmware is done using DFU Packet characteristic. + Sets the callbacks used later on when a Packet Receipt Notification is received, + a device reported an error or the whole firmware has been sent and the notification + with success status was received. Sending the firmware is done using DFU Packet + characteristic. - - parameter success: method called when peripheral reported with status success - - parameter proceed: method called the a PRN has been received and sending following data can be resumed - - parameter report: method called in case of an error + - parameter success: Method called when peripheral reported with status success. + - parameter proceed: Method called the a PRN has been received and sending following + data can be resumed. + - parameter report: Method called in case of an error. */ func waitUntilUploadComplete(onSuccess success: Callback?, onPacketReceiptNofitication proceed: ProgressCallback?, onError report: ErrorCallback?) { // Save callbacks. The proceed callback will be called periodically whenever a packet receipt notification is received. It resumes uploading. @@ -288,17 +286,18 @@ internal struct PacketReceiptNotification { // Set the peripheral delegate to self peripheral.delegate = self - - logger.a("Uploading firmware...") - logger.v("Sending firmware to DFU Packet characteristic...") } // MARK: - Peripheral Delegate callbacks func peripheral(_ peripheral: CBPeripheral, didUpdateNotificationStateFor characteristic: CBCharacteristic, error: Error?) { if error != nil { - logger.e("Enabling notifications failed") + logger.e("Enabling notifications failed. Check if Service Changed service is enabled.") logger.e(error!) + // Note: + // Error 253: Unknown ATT error. + // This most proably is caching issue. Check if your device had Service Changed characteristic (for non-bonded devices) + // in both app and bootloader modes. For bonded devices make sure it sends the Service Changed indication after connecting. report?(.enablingControlPointFailed, "Enabling notifications failed") } else { logger.v("Notifications enabled for \(characteristic.uuid.uuidString)") @@ -311,14 +310,18 @@ internal struct PacketReceiptNotification { // This method, according to the iOS documentation, should be called only after writing with response to a characteristic. // However, on iOS 10 this method is called even after writing without response, which is a bug. // The DFU Control Point characteristic always writes with response, in oppose to the DFU Packet, which uses write without response. - guard characteristic.uuid.isEqual(DFUControlPoint.UUID) else { + guard self.characteristic.isEqual(characteristic) else { return } - + if error != nil { if !resetSent { - logger.e("Writing to characteristic failed") + logger.e("Writing to characteristic failed. Check if Service Changed service is enabled.") logger.e(error!) + // Note: + // Error 3: Writing is not permitted + // This most proably is caching issue. Check if your device had Service Changed characteristic (for non-bonded devices) + // in both app and bootloader modes. For bonded devices make sure it sends the Service Changed indication after connecting. report?(.writingCharacteristicFailed, "Writing to characteristic failed") } else { // When a 'JumpToBootloader', 'Activate and Reset' or 'Reset' command is sent the device may reset before sending the acknowledgement. @@ -355,10 +358,10 @@ internal struct PacketReceiptNotification { func peripheral(_ peripheral: CBPeripheral, didUpdateValueFor characteristic: CBCharacteristic, error: Error?) { // Ignore updates received for other characteristics - guard characteristic.uuid.isEqual(DFUControlPoint.UUID) else { + guard self.characteristic.isEqual(characteristic) else { return } - + if error != nil { // This characteristic is never read, the error may only pop up when notification is received logger.e("Receiving notification failed") diff --git a/Pods/iOSDFULibrary/iOSDFULibrary/Classes/Implementation/LegacyDFU/Characteristics/DFUPacket.swift b/Pods/iOSDFULibrary/iOSDFULibrary/Classes/Implementation/LegacyDFU/Characteristics/DFUPacket.swift index 442062fe..376613be 100644 --- a/Pods/iOSDFULibrary/iOSDFULibrary/Classes/Implementation/LegacyDFU/Characteristics/DFUPacket.swift +++ b/Pods/iOSDFULibrary/iOSDFULibrary/Classes/Implementation/LegacyDFU/Characteristics/DFUPacket.swift @@ -22,25 +22,20 @@ import CoreBluetooth -internal class DFUPacket { - static fileprivate let UUID = CBUUID(string: "00001532-1212-EFDE-1523-785FEABCD123") - - static func matches(_ characteristic: CBCharacteristic) -> Bool { - return characteristic.uuid.isEqual(UUID) - } - +internal class DFUPacket: DFUCharacteristic { + private let packetSize: UInt32 = 20 // Legacy DFU does not support higher MTUs - private var characteristic: CBCharacteristic - private var logger: LoggerHelper - + internal var characteristic: CBCharacteristic + internal var logger: LoggerHelper + /// Number of bytes of firmware already sent. private(set) var bytesSent: UInt32 = 0 /// Number of bytes sent at the last progress notification. This value is used to calculate the current speed. private var bytesSentSinceProgessNotification: UInt32 = 0 /// Current progress in percents (0-99). - private var progress: UInt8 = 0 + private var progressReported: UInt8 = 0 private var startTime: CFAbsoluteTime? private var lastTime: CFAbsoluteTime? @@ -48,7 +43,7 @@ internal class DFUPacket { return characteristic.properties.contains(.writeWithoutResponse) } - init(_ characteristic: CBCharacteristic, _ logger: LoggerHelper) { + required init(_ characteristic: CBCharacteristic, _ logger: LoggerHelper) { self.characteristic = characteristic self.logger = logger } @@ -56,10 +51,11 @@ internal class DFUPacket { // MARK: - Characteristic API methods /** - Sends the firmware sizes in format [softdevice size, bootloader size, application size], where each size is a UInt32 number. + Sends the firmware sizes in format [softdevice size, bootloader size, application size], + where each size is a UInt32 number. - - parameter size: sizes of firmware in the current part - */ + - parameter size: Sizes of firmware in the current part. + */ func sendFirmwareSize(_ size: DFUFirmwareSize) { // Get the peripheral object let peripheral = characteristic.service.peripheral @@ -68,16 +64,19 @@ internal class DFUPacket { data += size.softdevice.littleEndian data += size.bootloader.littleEndian data += size.application.littleEndian + + let packetUUID = characteristic.uuid.uuidString - logger.v("Writing image sizes (\(size.softdevice)b, \(size.bootloader)b, \(size.application)b) to characteristic \(DFUPacket.UUID.uuidString)...") - logger.d("peripheral.writeValue(0x\(data.hexString), for: \(DFUPacket.UUID.uuidString), type: .withoutResponse)") + logger.v("Writing image sizes (\(size.softdevice)b, \(size.bootloader)b, \(size.application)b) to characteristic \(packetUUID)...") + logger.d("peripheral.writeValue(0x\(data.hexString), for: \(packetUUID), type: .withoutResponse)") peripheral.writeValue(data, for: characteristic, type: .withoutResponse) } /** Sends the application firmware size in format [application size] (UInt32). - - parameter size: sizes of firmware in the current part. Only the application size may ne grater than 0. + - parameter size: Sizes of firmware in the current part. + Only the application size may ne grater than 0. */ func sendFirmwareSize_v1(_ size: DFUFirmwareSize) { // Get the peripheral object @@ -85,16 +84,18 @@ internal class DFUPacket { var data = Data(capacity: 4) data += size.application.littleEndian - - logger.v("Writing image size (\(size.application)b) to characteristic \(DFUPacket.UUID.uuidString)...") - logger.d("peripheral.writeValue(0x\(data.hexString), for: \(DFUPacket.UUID.uuidString), type: .withoutResponse)") + + let packetUUID = characteristic.uuid.uuidString + + logger.v("Writing image size (\(size.application)b) to characteristic \(packetUUID)...") + logger.d("peripheral.writeValue(0x\(data.hexString), for: \(packetUUID), type: .withoutResponse)") peripheral.writeValue(data, for: characteristic, type: .withoutResponse) } /** Sends the whole content of the data object. - - parameter data: the data to be sent + - parameter data: The data to be sent. */ func sendInitPacket(_ data: Data) { // Get the peripheral object @@ -107,8 +108,12 @@ internal class DFUPacket { repeat { let packetLength = min(bytesToSend, packetSize) let packet = data.subdata(in: Int(offset) ..< Int(offset + packetLength)) - logger.v("Writing to characteristic \(DFUPacket.UUID.uuidString)...") - logger.d("peripheral.writeValue(0x\(packet.hexString), for: \(DFUPacket.UUID.uuidString), type: .withoutResponse)") + + let packetUUID = characteristic.uuid.uuidString + + logger.v("Writing to characteristic \(packetUUID)...") + logger.d("peripheral.writeValue(0x\(packet.hexString), for: \(packetUUID), type: .withoutResponse)") + peripheral.writeValue(packet, for: characteristic, type: .withoutResponse) offset += packetLength @@ -120,24 +125,24 @@ internal class DFUPacket { Sends next number of packets from given firmware data and reports a progress. This method does not notify progress delegate twice about the same percentage. - - parameter aPRNValue: number of packets to be sent before a Packet Receipt Notification is expected - Set to 0 to disable Packet Receipt Notification procedure (not recommended) - - parameter aFirmware: the firmware to be sent - - parameter aProgressDelegate: an optional progress delegate + - parameter prnValue: Number of packets to be sent before a Packet Receipt Notification is expected + Set to 0 to disable Packet Receipt Notification procedure (not recommended). + - parameter firmware: The firmware to be sent. + - parameter progress: An optional progress delegate. */ - func sendNext(_ aPRNValue: UInt16, packetsOf aFirmware: DFUFirmware, andReportProgressTo aProgressDelegate: DFUProgressDelegate?) { + func sendNext(_ prnValue: UInt16, packetsOf firmware: DFUFirmware, andReportProgressTo progress: DFUProgressDelegate?) { // Get the peripheral object let peripheral = characteristic.service.peripheral // Some super complicated computations... - let bytesTotal = UInt32(aFirmware.data.count) + let bytesTotal = UInt32(firmware.data.count) let totalPackets = (bytesTotal + packetSize - 1) / packetSize let packetsSent = (bytesSent + packetSize - 1) / packetSize let packetsLeft = totalPackets - packetsSent // Calculate how many packets should be sent before EOF or next receipt notification - var packetsToSendNow = min(UInt32(aPRNValue), packetsLeft) - if aPRNValue == 0 { + var packetsToSendNow = min(UInt32(prnValue), packetsLeft) + if prnValue == 0 { // When Packet Receipt Notification procedure is disabled, the service will send all data here packetsToSendNow = packetsLeft } @@ -149,9 +154,9 @@ internal class DFUPacket { // Notify progress delegate that upload has started (0%) DispatchQueue.main.async(execute: { - aProgressDelegate?.dfuProgressDidChange( - for: aFirmware.currentPart, - outOf: aFirmware.parts, + progress?.dfuProgressDidChange( + for: firmware.currentPart, + outOf: firmware.parts, to: 0, currentSpeedBytesPerSecond: 0.0, avgSpeedBytesPerSecond: 0.0) @@ -166,13 +171,13 @@ internal class DFUPacket { canSendPacket = bytesSent == 0 || peripheral.canSendWriteWithoutResponse } // If PRNs are enabled we will ignore the new API and base synchronization on PRNs only - guard canSendPacket || aPRNValue > 0 else { + guard canSendPacket || prnValue > 0 else { break } let bytesLeft = bytesTotal - bytesSent let packetLength = min(bytesLeft, packetSize) - let packet = aFirmware.data.subdata(in: Int(bytesSent) ..< Int(bytesSent + packetLength)) + let packet = firmware.data.subdata(in: Int(bytesSent) ..< Int(bytesSent + packetLength)) peripheral.writeValue(packet, for: characteristic, type: .withoutResponse) bytesSent += packetLength @@ -182,7 +187,7 @@ internal class DFUPacket { let currentProgress = UInt8(bytesSent * 100 / bytesTotal) // in percantage (0-100) // Notify progress listener - if currentProgress > progress { + if currentProgress > progressReported { // Calculate current transfer speed in bytes per second let now = CFAbsoluteTimeGetCurrent() let currentSpeed = Double(bytesSent - bytesSentSinceProgessNotification) / (now - lastTime!) @@ -191,14 +196,14 @@ internal class DFUPacket { bytesSentSinceProgessNotification = bytesSent DispatchQueue.main.async(execute: { - aProgressDelegate?.dfuProgressDidChange( - for: aFirmware.currentPart, - outOf: aFirmware.parts, + progress?.dfuProgressDidChange( + for: firmware.currentPart, + outOf: firmware.parts, to: Int(currentProgress), currentSpeedBytesPerSecond: currentSpeed, avgSpeedBytesPerSecond: avgSpeed) }) - progress = currentProgress + progressReported = currentProgress } } } diff --git a/Pods/iOSDFULibrary/iOSDFULibrary/Classes/Implementation/LegacyDFU/Characteristics/DFUVersion.swift b/Pods/iOSDFULibrary/iOSDFULibrary/Classes/Implementation/LegacyDFU/Characteristics/DFUVersion.swift index 65b25dc1..e113e763 100644 --- a/Pods/iOSDFULibrary/iOSDFULibrary/Classes/Implementation/LegacyDFU/Characteristics/DFUVersion.swift +++ b/Pods/iOSDFULibrary/iOSDFULibrary/Classes/Implementation/LegacyDFU/Characteristics/DFUVersion.swift @@ -24,16 +24,11 @@ import CoreBluetooth internal typealias VersionCallback = (_ major: UInt8, _ minor: UInt8) -> Void -@objc internal class DFUVersion : NSObject, CBPeripheralDelegate { - static let UUID = CBUUID(string: "00001534-1212-EFDE-1523-785FEABCD123") - - static func matches(_ characteristic: CBCharacteristic) -> Bool { - return characteristic.uuid.isEqual(UUID) - } - - private var characteristic: CBCharacteristic - private var logger: LoggerHelper +@objc internal class DFUVersion : NSObject, CBPeripheralDelegate, DFUCharacteristic { + internal var characteristic: CBCharacteristic + internal var logger: LoggerHelper + private var success: VersionCallback? private var report: ErrorCallback? @@ -43,7 +38,7 @@ internal typealias VersionCallback = (_ major: UInt8, _ minor: UInt8) -> Void // MARK: - Initialization - init(_ characteristic: CBCharacteristic, _ logger: LoggerHelper) { + required init(_ characteristic: CBCharacteristic, _ logger: LoggerHelper) { self.characteristic = characteristic self.logger = logger } @@ -51,12 +46,12 @@ internal typealias VersionCallback = (_ major: UInt8, _ minor: UInt8) -> Void // MARK: - Characteristic API methods /** - Reads the value of the DFU Version characteristic. - The value, or an error, will be reported as a callback. + Reads the value of the DFU Version characteristic. + The value, or an error, will be reported as a callback. - - parameter callback: method called when version is read and is supported - - parameter error: method called on error of if version is not supported - */ + - parameter success: Method called when version is read and is supported. + - parameter report: Method called on error of if version is not supported. + */ func readVersion(onSuccess success: VersionCallback?, onError report: ErrorCallback?) { // Save callbacks self.success = success @@ -77,10 +72,10 @@ internal typealias VersionCallback = (_ major: UInt8, _ minor: UInt8) -> Void func peripheral(_ peripheral: CBPeripheral, didUpdateValueFor characteristic: CBCharacteristic, error: Error?) { // Ignore updates received for other characteristics - guard characteristic.uuid.isEqual(DFUVersion.UUID) else { + guard self.characteristic.isEqual(characteristic) else { return } - + if error != nil { logger.e("Reading DFU Version characteristic failed") logger.e(error!) diff --git a/Pods/iOSDFULibrary/iOSDFULibrary/Classes/Implementation/LegacyDFU/DFU/LegacyDFUExecutor.swift b/Pods/iOSDFULibrary/iOSDFULibrary/Classes/Implementation/LegacyDFU/DFU/LegacyDFUExecutor.swift index fe838c1e..7fd1e73e 100644 --- a/Pods/iOSDFULibrary/iOSDFULibrary/Classes/Implementation/LegacyDFU/DFU/LegacyDFUExecutor.swift +++ b/Pods/iOSDFULibrary/iOSDFULibrary/Classes/Implementation/LegacyDFU/DFU/LegacyDFUExecutor.swift @@ -30,7 +30,7 @@ internal class LegacyDFUExecutor : DFUExecutor, LegacyDFUPeripheralDelegate { internal var firmware : DFUFirmware internal var error : (error: DFUError, message: String)? - /// Retry counter for peripheral invalid state issue + /// Retry counter for peripheral invalid state issue. private let MaxRetryCount = 1 private var invalidStateRetryCount: Int @@ -139,6 +139,8 @@ internal class LegacyDFUExecutor : DFUExecutor, LegacyDFUPeripheralDelegate { // First the service will send the number of packets of firmware data to be received // by the DFU target before sending a new Packet Receipt Notification. // After receiving status Success it will send the firmware. - peripheral.sendFirmware(firmware, withPacketReceiptNotificationNumber: initiator.packetReceiptNotificationParameter, andReportProgressTo: progressDelegate) + peripheral.sendFirmware(firmware, + withPacketReceiptNotificationNumber: initiator.packetReceiptNotificationParameter, + andReportProgressTo: progressDelegate) } } diff --git a/Pods/iOSDFULibrary/iOSDFULibrary/Classes/Implementation/LegacyDFU/Peripherals/LegacyDFUPeripheral.swift b/Pods/iOSDFULibrary/iOSDFULibrary/Classes/Implementation/LegacyDFU/Peripherals/LegacyDFUPeripheral.swift index 24339e96..5a57e970 100644 --- a/Pods/iOSDFULibrary/iOSDFULibrary/Classes/Implementation/LegacyDFU/Peripherals/LegacyDFUPeripheral.swift +++ b/Pods/iOSDFULibrary/iOSDFULibrary/Classes/Implementation/LegacyDFU/Peripherals/LegacyDFUPeripheral.swift @@ -23,11 +23,12 @@ import CoreBluetooth internal class LegacyDFUPeripheral : BaseCommonDFUPeripheral { + var slowDfuMode = false // MARK: - Peripheral API override var requiredServices: [CBUUID]? { - return [LegacyDFUService.UUID] + return [LegacyDFUService.serviceUuid(from: uuidHelper)] } override func isInitPacketRequired() -> Bool { @@ -89,8 +90,8 @@ internal class LegacyDFUPeripheral : BaseCommonDFUPeripheral 2) { + prn = 2 + } + dfuService!.sendPacketReceiptNotificationRequest(prn, onSuccess: { // Now the service is ready to send the firmware - self.dfuService!.sendFirmware(aFirmware, andReportProgressTo: progressDelegate, + self.dfuService!.sendFirmware(firmware, withDelay: self.slowDfuMode, andReportProgressTo: progress, onSuccess: { self.delegate?.peripheralDidReceiveFirmware() }, onError: self.defaultErrorCallback ) @@ -173,9 +183,18 @@ internal class LegacyDFUPeripheral : BaseCommonDFUPeripheral Bool { - return service.uuid.isEqual(UUID) + static func serviceUuid(from uuidHelper: DFUUuidHelper) -> CBUUID { + return uuidHelper.legacyDFUService } - /// The target DFU Peripheral - internal var targetPeripheral: DFUPeripheralAPI? /// The logger helper. private var logger: LoggerHelper /// The service object from CoreBluetooth used to initialize the DFUService instance. @@ -38,6 +38,8 @@ import CoreBluetooth private var dfuPacketCharacteristic : DFUPacket? private var dfuControlPointCharacteristic : DFUControlPoint? private var dfuVersionCharacteristic : DFUVersion? + + /// This method returns true if DFU Control Point characteristc has been discovered. /// A device without this characteristic is not supported and even can't be resetted by sending a Reset command. internal func supportsReset() -> Bool { @@ -63,9 +65,11 @@ import CoreBluetooth // MARK: - Initialization - required init(_ service: CBService, _ logger: LoggerHelper) { + required init(_ service: CBService, _ logger: LoggerHelper, _ uuidHelper: DFUUuidHelper) { self.service = service self.logger = logger + self.uuidHelper = uuidHelper + super.init() self.logger.v("Legacy DFU Service found") } @@ -120,8 +124,8 @@ import CoreBluetooth /** Discovers characteristics in the DFU Service. Result it reported using callbacks. - - parameter success: method called when required DFU characteristics were discovered - - parameter report: method called when an error occurred + - parameter success: Method called when required DFU characteristics were discovered. + - parameter report: Method called when an error occurred. */ func discoverCharacteristics(onSuccess success: @escaping Callback, onError report: @escaping ErrorCallback) { // Save callbacks @@ -136,7 +140,8 @@ import CoreBluetooth // Discover DFU characteristics logger.v("Discovering characteristics in DFU Service...") - logger.d("peripheral.discoverCharacteristics(nil, for: \(LegacyDFUService.UUID.uuidString))") + logger.d("peripheral.discoverCharacteristics(nil, for: \(uuidHelper.legacyDFUService.uuidString))") + peripheral.discoverCharacteristics(nil, for: service) } @@ -144,7 +149,7 @@ import CoreBluetooth This method tries to estimate whether the DFU target device is in Application mode which supports the buttonless jump to the DFU Bootloader. - - returns: true, if it is for sure in the Application more, false, if definitely is not, nil if uknown + - returns: True, if it is for sure in the Application more, false, if definitely is not, nil if unknown. */ func isInApplicationMode() -> Bool? { // If DFU Version characteritsic returned a correct value... @@ -188,8 +193,8 @@ import CoreBluetooth /** Enables notifications for DFU Control Point characteristic. Result it reported using callbacks. - - parameter success: method called when notifications were enabled without a problem - - parameter report: method called when an error occurred + - parameter success: Method called when notifications were enabled without a problem. + - parameter report: Method called when an error occurred. */ func enableControlPoint(onSuccess success: @escaping Callback, onError report: @escaping ErrorCallback) { if !aborted { @@ -202,7 +207,7 @@ import CoreBluetooth /** Triggers a switch to DFU Bootloader mode on the remote target by sending DFU Start command. - - parameter report: method called when an error occurred + - parameter report: Method called when an error occurred. */ func jumpToBootloaderMode(onError report: @escaping ErrorCallback) { if !aborted { @@ -216,10 +221,10 @@ import CoreBluetooth This methods sends the Start DFU command with the firmware type to the DFU Control Point characterristic, followed by the sizes of each firware component (each as UInt32, Little Endian). - - parameter type: the type of the current firmware part - - parameter size: the sizes of firmware components in the current part - - parameter success: a callback called when a response with status Success is received - - parameter report: a callback called when a response with an error status is received + - parameter type: The type of the current firmware part. + - parameter size: The sizes of firmware components in the current part. + - parameter success: A callback called when a response with status Success is received. + - parameter report: A callback called when a response with an error status is received. */ func sendDfuStart(withFirmwareType type: UInt8, andSize size: DFUFirmwareSize, onSuccess success: @escaping Callback, onError report: @escaping ErrorCallback) { guard !aborted else { @@ -263,9 +268,9 @@ import CoreBluetooth This methods sends the old Start DFU command (without the firmware type) to the DFU Control Point characterristic, followed by the application size (UInt32, Little Endian). - - parameter size: the sizes of firmware components in the current part - - parameter success: a callback called when a response with status Success is received - - parameter report: a callback called when a response with an error status is received + - parameter size: The sizes of firmware components in the current part. + - parameter success: A callback called when a response with status Success is received. + - parameter report: A callback called when a response with an error status is received. */ func sendStartDfu(withFirmwareSize size: DFUFirmwareSize, onSuccess success: @escaping Callback, onError report: @escaping ErrorCallback) { guard !aborted else { @@ -298,9 +303,9 @@ import CoreBluetooth The extended Init Packet may also contain a hash of the firmware (since DFU from SDK 9.0.0). Before Init Packet became required it could have contained only 2-byte CRC of the firmware. - - parameter data: the Init Packet data - - parameter success: a callback called when a response with status Success is received - - parameter report: a callback called when a response with an error status is received + - parameter data: The Init Packet data. + - parameter success: A callback called when a response with status Success is received. + - parameter report: A callback called when a response with an error status is received. */ func sendInitPacket(_ data: Data, onSuccess success: @escaping Callback, onError report: @escaping ErrorCallback) { guard !aborted else { @@ -366,15 +371,15 @@ import CoreBluetooth Packet Receipt Notification procedure has been introduced to empty the outgoing buffer. Setting number to 0 will disable PRNs. - - parameter aPRNValue: number of packets of firmware data to be received by the DFU target before + - parameter prnValue: Number of packets of firmware data to be received by the DFU target before sending a new Packet Receipt Notification. - - parameter success: a callback called when a response with status Success is received - - parameter report: a callback called when a response with an error status is received + - parameter success: A callback called when a response with status Success is received. + - parameter report: A callback called when a response with an error status is received. */ - func sendPacketReceiptNotificationRequest(_ aPRNValue: UInt16, onSuccess success: @escaping Callback, onError report: @escaping ErrorCallback) { + func sendPacketReceiptNotificationRequest(_ prnValue: UInt16, onSuccess success: @escaping Callback, onError report: @escaping ErrorCallback) { if !aborted { - packetReceiptNotificationNumber = aPRNValue - dfuControlPointCharacteristic!.send(Request.packetReceiptNotificationRequest(number: aPRNValue), onSuccess: success, onError: report) + packetReceiptNotificationNumber = prnValue + dfuControlPointCharacteristic!.send(Request.packetReceiptNotificationRequest(number: prnValue), onSuccess: success, onError: report) } else { sendReset(onError: report) } @@ -383,14 +388,13 @@ import CoreBluetooth /** Sends the firmware data to the DFU target device. - - parameter aFirmware: the firmware to be sent - - parameter aPRNValue: number of packets of firmware data to be received by the DFU target before - sending a new Packet Receipt Notification - - parameter progressDelegate: a progress delagate that will be informed about transfer progress - - parameter success: a callback called when a response with status Success is received - - parameter report: a callback called when a response with an error status is received + - parameter firmware: The firmware to be sent. + - parameter delay: If true, upload will be delayed by 1000ms. + - parameter progress: A progress delagate that will be informed about transfer progress. + - parameter success: A callback called when a response with status Success is received. + - parameter report: A callback called when a response with an error status is received. */ - func sendFirmware(_ aFirmware: DFUFirmware, andReportProgressTo progressDelegate: DFUProgressDelegate?, + func sendFirmware(_ firmware: DFUFirmware, withDelay delay: Bool, andReportProgressTo progress: DFUProgressDelegate?, onSuccess success: @escaping Callback, onError report: @escaping ErrorCallback) { guard !aborted else { sendReset(onError: report) @@ -398,9 +402,9 @@ import CoreBluetooth } // Store parameters in case the upload was paused and resumed - self.firmware = aFirmware + self.firmware = firmware self.report = report - self.progressDelegate = progressDelegate + self.progressDelegate = progress // 1. Sends the Receive Firmware Image command to the DFU Control Point characteristic // 2. Sends firmware to the DFU Packet characteristic. If number > 0 it will receive Packet Receit Notifications @@ -432,7 +436,7 @@ import CoreBluetooth let bytesSent = self.dfuPacketCharacteristic!.bytesSent // Due to https://github.com/NordicSemiconductor/IOS-Pods-DFU-Library/issues/54 only 16 least significant bits are verified if peripheralIsReadyToSendWriteWithoutRequest || (bytesSent & 0xFFFF) == (bytesReceived! & 0xFFFF) { - self.dfuPacketCharacteristic!.sendNext(self.packetReceiptNotificationNumber, packetsOf: aFirmware, andReportProgressTo: progressDelegate) + self.dfuPacketCharacteristic!.sendNext(self.packetReceiptNotificationNumber, packetsOf: firmware, andReportProgressTo: progress) } else { // Target device deported invalid number of bytes received report(.bytesLost, "\(bytesSent) bytes were sent while \(bytesReceived!) bytes were reported as received") @@ -456,7 +460,18 @@ import CoreBluetooth ) // ...and start sending firmware if !self.paused && !self.aborted { - self.dfuPacketCharacteristic!.sendNext(self.packetReceiptNotificationNumber, packetsOf: aFirmware, andReportProgressTo: progressDelegate) + let start = { + self.logger.a("Uploading firmware...") + self.logger.v("Sending firmware to DFU Packet characteristic...") + self.dfuPacketCharacteristic!.sendNext(self.packetReceiptNotificationNumber, packetsOf: firmware, andReportProgressTo: progress) + } + // On devices running SDK 6.0 or older a delay is required before the device is ready to receive data + if delay { + self.logger.d("wait(1000)") + DispatchQueue.main.asyncAfter(deadline: .now() + .milliseconds(1000), execute: start) + } else { + start() + } } else if self.aborted { // Upload has been aborted. Reset the target device. It will disconnect automatically self.firmware = nil @@ -471,8 +486,8 @@ import CoreBluetooth /** Sends the Validate Firmware request to DFU Control Point characteristic. - - parameter success: a callback called when a response with status Success is received - - parameter report: a callback called when a response with an error status is received + - parameter success: A callback called when a response with status Success is received. + - parameter report: A callback called when a response with an error status is received. */ func sendValidateFirmwareRequest(onSuccess success: @escaping Callback, onError report: @escaping ErrorCallback) { if !aborted { @@ -486,7 +501,7 @@ import CoreBluetooth Sends a command that will activate the new firmware and reset the DFU target device. Soon after calling this method the device should disconnect. - - parameter report: a callback called when writing characteristic failed + - parameter report: A callback called when writing characteristic failed. */ func sendActivateAndResetRequest(onError report: @escaping ErrorCallback) { if !aborted { @@ -501,7 +516,7 @@ import CoreBluetooth previous application (if DFU dual bank was used and application wasn't removed to make space for a new softdevice) or bootloader. - - parameter report: a callback called when writing characteristic failed + - parameter report: A callback called when writing characteristic failed. */ func sendReset(onError report: @escaping ErrorCallback) { dfuControlPointCharacteristic!.send(Request.reset, onSuccess: nil, onError: report) @@ -512,8 +527,8 @@ import CoreBluetooth /** Reads the DFU Version characteristic value. The characteristic must not be nil. - - parameter success: the callback called when supported version number has been received - - parameter report: the error callback which is called in case of an error, or when obtained data are not supported + - parameter success: The callback called when supported version number has been received. + - parameter report: The error callback which is called in case of an error, or when obtained data are not supported. */ private func readDfuVersion(onSuccess success: @escaping Callback, onError report: @escaping ErrorCallback) { dfuVersionCharacteristic!.readVersion( @@ -535,54 +550,70 @@ import CoreBluetooth self.success = nil self.report = nil - if error != nil { + guard error == nil else { logger.e("Characteristics discovery failed") logger.e(error!) _report?(.serviceDiscoveryFailed, "Characteristics discovery failed") - } else { - logger.i("DFU characteristics discovered") - - // Find DFU characteristics - for characteristic in service.characteristics! { - if (DFUPacket.matches(characteristic)) { + return + } + + logger.i("DFU characteristics discovered") + + // Find DFU characteristics + if let characteristics = service.characteristics { + for characteristic in characteristics { + if characteristic.matches(uuid: uuidHelper.legacyDFUPacket) { dfuPacketCharacteristic = DFUPacket(characteristic, logger) - } else if (DFUControlPoint.matches(characteristic)) { + } else if characteristic.matches(uuid: uuidHelper.legacyDFUControlPoint) { dfuControlPointCharacteristic = DFUControlPoint(characteristic, logger) - } else if (DFUVersion.matches(characteristic)) { + } else if characteristic.matches(uuid: uuidHelper.legacyDFUVersion) { dfuVersionCharacteristic = DFUVersion(characteristic, logger) } } - - // Some validation - if dfuControlPointCharacteristic == nil { - logger.e("DFU Control Point characteristics not found") - // DFU Control Point characteristic is required - _report?(.deviceNotSupported, "DFU Control Point characteristic not found") - return - } - if !dfuControlPointCharacteristic!.valid { - logger.e("DFU Control Point characteristics must have Write and Notify properties") - // DFU Control Point characteristic must have Write and Notify properties - _report?(.deviceNotSupported, "DFU Control Point characteristic does not have the Write and Notify properties") - return - } - - // Note: DFU Packet characteristic is not required in the App mode. - // The mbed implementation of DFU Service doesn't have such. - - // Read DFU Version characteristic if such exists - if self.dfuVersionCharacteristic != nil { - if dfuVersionCharacteristic!.valid { - readDfuVersion(onSuccess: _success!, onError: _report!) - } else { - version = nil - _report?(.readingVersionFailed, "DFU Version found, but does not have the Read property") + } + + // Log what was found in case of an error + if dfuPacketCharacteristic == nil { + if let characteristics = service.characteristics, characteristics.isEmpty == false { + logger.d("The following characteristics were found:") + characteristics.forEach { characteristic in + logger.d(" - \(characteristic.uuid.uuidString)") } } else { - // Else... proceed + logger.d("No characteristics found in the service") + } + logger.d("Did you connect to the correct target? It might be that the previous services were cached: toggle Bluetooth from iOS settings to clear cache. Also, ensure the device contains the Service Changed characteristic") + } + + // Some validation + guard dfuControlPointCharacteristic != nil else { + logger.e("DFU Control Point characteristic not found") + // DFU Control Point characteristic is required + _report?(.deviceNotSupported, "DFU Control Point characteristic not found") + return + } + guard dfuControlPointCharacteristic!.valid else { + logger.e("DFU Control Point characteristic must have Write and Notify properties") + // DFU Control Point characteristic must have Write and Notify properties + _report?(.deviceNotSupported, "DFU Control Point characteristic does not have the Write and Notify properties") + return + } + + // Note: DFU Packet characteristic is not required in the App mode. + // The mbed implementation of DFU Service doesn't have such. + + // Read DFU Version characteristic if such exists + if self.dfuVersionCharacteristic != nil { + guard dfuVersionCharacteristic!.valid else { version = nil - _success?() + _report?(.readingVersionFailed, "DFU Version found, but does not have the Read property") + return } + readDfuVersion(onSuccess: _success!, onError: _report!) + } else { + // Else... proceed + version = nil + _success?() } } } diff --git a/Pods/iOSDFULibrary/iOSDFULibrary/Classes/Implementation/SecureDFU/Characteristics/ButtonlessDFU.swift b/Pods/iOSDFULibrary/iOSDFULibrary/Classes/Implementation/SecureDFU/Characteristics/ButtonlessDFU.swift index 91225177..dd88f62d 100644 --- a/Pods/iOSDFULibrary/iOSDFULibrary/Classes/Implementation/SecureDFU/Characteristics/ButtonlessDFU.swift +++ b/Pods/iOSDFULibrary/iOSDFULibrary/Classes/Implementation/SecureDFU/Characteristics/ButtonlessDFU.swift @@ -93,30 +93,28 @@ internal struct ButtonlessDFUResponse { } } -internal class ButtonlessDFU : NSObject, CBPeripheralDelegate { - static let EXPERIMENTAL_UUID = CBUUID(string: "8E400001-F315-4F60-9FB8-838830DAEA50") // the same UUID as the service - static let WITHOUT_BOND_SHARING_UUID = CBUUID(string: "8EC90003-F315-4F60-9FB8-838830DAEA50") - static let WITH_BOND_SHARING_UUID = CBUUID(string: "8EC90004-F315-4F60-9FB8-838830DAEA50") - - static func matches(_ characteristic: CBCharacteristic) -> Bool { - return characteristic.uuid.isEqual(WITHOUT_BOND_SHARING_UUID) || - characteristic.uuid.isEqual(WITH_BOND_SHARING_UUID) || - characteristic.uuid.isEqual(EXPERIMENTAL_UUID) - } - - private var characteristic: CBCharacteristic - private var logger: LoggerHelper +internal class ButtonlessDFU : NSObject, CBPeripheralDelegate, DFUCharacteristic { + internal var characteristic: CBCharacteristic + internal var logger: LoggerHelper + internal var uuidHelper: DFUUuidHelper! + private var success: Callback? private var report: ErrorCallback? internal var valid: Bool { - return (characteristic.properties.isSuperset(of: [.write, .notify]) && characteristic.uuid.isEqual(ButtonlessDFU.EXPERIMENTAL_UUID)) || - characteristic.properties.isSuperset(of: [.write, .indicate]) + return (characteristic.properties.isSuperset(of: [.write, .notify]) + && characteristic.uuid.isEqual(uuidHelper.buttonlessExperimentalCharacteristic)) + || characteristic.properties.isSuperset(of: [.write, .indicate]) } + /** + Returns true if the device address is expected to change. In that case, + the service should scan for another device using DFUPeripheralSelectorDelegate. + */ internal var newAddressExpected: Bool { - return characteristic.uuid.isEqual(ButtonlessDFU.EXPERIMENTAL_UUID) || characteristic.uuid.isEqual(ButtonlessDFU.WITHOUT_BOND_SHARING_UUID) + return characteristic.uuid.isEqual(uuidHelper.buttonlessExperimentalCharacteristic) + || characteristic.uuid.isEqual(uuidHelper.buttonlessWithoutBonds) } /** @@ -128,11 +126,11 @@ internal class ButtonlessDFU : NSObject, CBPeripheralDelegate { command to that characteristic will end with ButtonlessDFUResultCode.opCodeNotSupported. */ internal var maySupportSettingName: Bool { - return characteristic.uuid.isEqual(ButtonlessDFU.WITHOUT_BOND_SHARING_UUID) + return characteristic.uuid.isEqual(uuidHelper.buttonlessWithoutBonds) } // MARK: - Initialization - init(_ characteristic: CBCharacteristic, _ logger: LoggerHelper) { + required init(_ characteristic: CBCharacteristic, _ logger: LoggerHelper) { self.characteristic = characteristic self.logger = logger } @@ -143,8 +141,8 @@ internal class ButtonlessDFU : NSObject, CBPeripheralDelegate { Enables notifications or indications for the DFU Control Point characteristics, depending on the characteristic property. Reports success or an error using callbacks. - - parameter success: method called when notifications were successfully enabled - - parameter report: method called in case of an error + - parameter success: Method called when notifications were successfully enabled. + - parameter report: Method called in case of an error. */ func enable(onSuccess success: Callback?, onError report: ErrorCallback?) { // Save callbacks @@ -170,9 +168,9 @@ internal class ButtonlessDFU : NSObject, CBPeripheralDelegate { Sends given request to the Buttonless DFU characteristic. Reports success or an error using callbacks. - - parameter request: request to be sent - - parameter success: method called when peripheral reported with status success - - parameter report: method called in case of an error + - parameter request: Request to be sent. + - parameter success: Method called when peripheral reported with status success. + - parameter report: Method called in case of an error. */ func send(_ request: ButtonlessDFURequest, onSuccess success: Callback?, onError report: ErrorCallback?) { // Save callbacks and parameter @@ -185,8 +183,10 @@ internal class ButtonlessDFU : NSObject, CBPeripheralDelegate { // Set the peripheral delegate to self peripheral.delegate = self - logger.v("Writing to characteristic \(characteristic.uuid.uuidString)...") - logger.d("peripheral.writeValue(0x\(request.data.hexString), for: \(characteristic.uuid.uuidString), type: .withResponse)") + let buttonlessUUID = characteristic.uuid.uuidString + + logger.v("Writing to characteristic \(buttonlessUUID)...") + logger.d("peripheral.writeValue(0x\(request.data.hexString), for: \(buttonlessUUID), type: .withResponse)") peripheral.writeValue(request.data, for: characteristic, type: .withResponse) } @@ -227,10 +227,10 @@ internal class ButtonlessDFU : NSObject, CBPeripheralDelegate { func peripheral(_ peripheral: CBPeripheral, didUpdateValueFor characteristic: CBCharacteristic, error: Error?) { // Ignore updates received for other characteristics - guard ButtonlessDFU.matches(characteristic) else { + guard self.characteristic.isEqual(characteristic) else { return } - + if error != nil { // This characteristic is never read, the error may only pop up when notification/indication is received logger.e("Receiving response failed") @@ -253,7 +253,7 @@ internal class ButtonlessDFU : NSObject, CBPeripheralDelegate { logger.e("Error \(dfuResponse.status!.code): \(dfuResponse.status!.description)") // The returned errod code is incremented by 30 or 9000 to match Buttonless DFU or Experimental Buttonless DFU remote codes // See DFUServiceDelegate.swift -> DFUError - let offset = characteristic.uuid.isEqual(ButtonlessDFU.EXPERIMENTAL_UUID) ? 9000 : 30 + let offset = characteristic.uuid.isEqual(uuidHelper.buttonlessExperimentalCharacteristic) ? 9000 : 30 report?(DFUError(rawValue: Int(dfuResponse.status!.code) + offset)!, dfuResponse.status!.description) } } else { diff --git a/Pods/iOSDFULibrary/iOSDFULibrary/Classes/Implementation/SecureDFU/Characteristics/SecureDFUControlPoint.swift b/Pods/iOSDFULibrary/iOSDFULibrary/Classes/Implementation/SecureDFU/Characteristics/SecureDFUControlPoint.swift index 906763db..3ec253cd 100644 --- a/Pods/iOSDFULibrary/iOSDFULibrary/Classes/Implementation/SecureDFU/Characteristics/SecureDFUControlPoint.swift +++ b/Pods/iOSDFULibrary/iOSDFULibrary/Classes/Implementation/SecureDFU/Characteristics/SecureDFUControlPoint.swift @@ -294,16 +294,11 @@ internal struct SecureDFUPacketReceiptNotification { } } -internal class SecureDFUControlPoint : NSObject, CBPeripheralDelegate { - static let UUID = CBUUID(string: "8EC90001-F315-4F60-9FB8-838830DAEA50") - - static func matches(_ characteristic: CBCharacteristic) -> Bool { - return characteristic.uuid.isEqual(UUID) - } - - private var characteristic: CBCharacteristic - private var logger: LoggerHelper +internal class SecureDFUControlPoint : NSObject, CBPeripheralDelegate, DFUCharacteristic { + internal var characteristic: CBCharacteristic + internal var logger: LoggerHelper + private var success: Callback? private var response: SecureDFUResponseCallback? private var proceed: ProgressCallback? @@ -314,7 +309,7 @@ internal class SecureDFUControlPoint : NSObject, CBPeripheralDelegate { } // MARK: - Initialization - init(_ characteristic: CBCharacteristic, _ logger: LoggerHelper) { + required init(_ characteristic: CBCharacteristic, _ logger: LoggerHelper) { self.characteristic = characteristic self.logger = logger } @@ -326,16 +321,17 @@ internal class SecureDFUControlPoint : NSObject, CBPeripheralDelegate { // MARK: - Characteristic API methods /** - Enables notifications for the DFU Control Point characteristics. Reports success or an error - using callbacks. + Enables notifications for the DFU Control Point characteristics. + Reports success or an error using callbacks. - - parameter success: method called when notifications were successfully enabled - - parameter report: method called in case of an error - */ + - parameter success: Method called when notifications were successfully enabled. + - parameter report: Method called in case of an error. + */ func enableNotifications(onSuccess success: Callback?, onError report: ErrorCallback?) { // Save callbacks - self.success = success - self.report = report + self.success = success + self.response = nil + self.report = report // Get the peripheral object let peripheral = characteristic.service.peripheral @@ -343,8 +339,10 @@ internal class SecureDFUControlPoint : NSObject, CBPeripheralDelegate { // Set the peripheral delegate to self peripheral.delegate = self - logger.v("Enabling notifications for \(characteristic.uuid.uuidString)...") - logger.d("peripheral.setNotifyValue(true, for: \(characteristic.uuid.uuidString))") + let controlPointUUID = characteristic.uuid.uuidString + + logger.v("Enabling notifications for \(controlPointUUID)...") + logger.d("peripheral.setNotifyValue(true, for: \(controlPointUUID))") peripheral.setNotifyValue(true, for: characteristic) } @@ -352,14 +350,15 @@ internal class SecureDFUControlPoint : NSObject, CBPeripheralDelegate { Sends given request to the DFU Control Point characteristic. Reports success or an error using callbacks. - - parameter request: request to be sent - - parameter success: method called when peripheral reported with status success - - parameter report: method called in case of an error + - parameter request: Request to be sent. + - parameter success: Method called when peripheral reported with status success. + - parameter report: Method called in case of an error. */ func send(_ request: SecureDFURequest, onSuccess success: Callback?, onError report: ErrorCallback?) { // Save callbacks and parameter - self.success = success - self.report = report + self.success = success + self.response = nil + self.report = report // Get the peripheral object let peripheral = characteristic.service.peripheral @@ -367,8 +366,10 @@ internal class SecureDFUControlPoint : NSObject, CBPeripheralDelegate { // Set the peripheral delegate to self peripheral.delegate = self - logger.v("Writing to characteristic \(characteristic.uuid.uuidString)...") - logger.d("peripheral.writeValue(0x\(request.data.hexString), for: \(characteristic.uuid.uuidString), type: .withResponse)") + let controlPointUUID = characteristic.uuid.uuidString + + logger.v("Writing to characteristic \(controlPointUUID)...") + logger.d("peripheral.writeValue(0x\(request.data.hexString), for: \(controlPointUUID), type: .withResponse)") peripheral.writeValue(request.data, for: characteristic, type: .withResponse) } @@ -376,12 +377,13 @@ internal class SecureDFUControlPoint : NSObject, CBPeripheralDelegate { Sends given request to the DFU Control Point characteristic. Reports received data or an error using callbacks. - - parameter request: request to be sent - - parameter response: method called when peripheral sent a notification with requested data and status success - - parameter report: method called in case of an error + - parameter request: Request to be sent. + - parameter response: Method called when peripheral sent a notification with requested data and status success. + - parameter report: Method called in case of an error. */ func send(_ request: SecureDFURequest, onResponse response: SecureDFUResponseCallback?, onError report: ErrorCallback?) { // Save callbacks and parameter + self.success = nil self.response = response self.report = report @@ -391,18 +393,21 @@ internal class SecureDFUControlPoint : NSObject, CBPeripheralDelegate { // Set the peripheral delegate to self peripheral.delegate = self - logger.v("Writing to characteristic \(characteristic.uuid.uuidString)...") - logger.d("peripheral.writeValue(0x\(request.data.hexString), for: \(characteristic.uuid.uuidString), type: .withResponse)") + let controlPointUUID = characteristic.uuid.uuidString + + logger.v("Writing to characteristic \(controlPointUUID)...") + logger.d("peripheral.writeValue(0x\(request.data.hexString), for: \(controlPointUUID), type: .withResponse)") peripheral.writeValue(request.data, for: characteristic, type: .withResponse) } /** - Sets the callbacks used later on when a Packet Receipt Notification is received, a device reported an error or the whole firmware has been sent. + Sets the callbacks used later on when a Packet Receipt Notification is received, + a device reported an error or the whole firmware has been sent. Sending the firmware is done using DFU Packet characteristic. - - parameter success: method called when peripheral reported with status success - - parameter proceed: method called the a PRN has been received and sending following data can be resumed - - parameter report: method called in case of an error + - parameter success: Method called when peripheral reported with status success. + - parameter proceed: Method called the a PRN has been received and sending following data can be resumed. + - parameter report: Method called in case of an error. */ func waitUntilUploadComplete(onSuccess success: Callback?, onPacketReceiptNofitication proceed: ProgressCallback?, onError report: ErrorCallback?) { // Save callbacks. The proceed callback will be called periodically whenever a packet receipt notification is received. It resumes uploading. @@ -424,8 +429,12 @@ internal class SecureDFUControlPoint : NSObject, CBPeripheralDelegate { func peripheral(_ peripheral: CBPeripheral, didUpdateNotificationStateFor characteristic: CBCharacteristic, error: Error?) { if error != nil { - logger.e("Enabling notifications failed") + logger.e("Enabling notifications failed. Check if Service Changed service is enabled.") logger.e(error!) + // Note: + // Error 253: Unknown ATT error. + // This most proably is caching issue. Check if your device had Service Changed characteristic (for non-bonded devices) + // in both app and bootloader modes. For bonded devices make sure it sends the Service Changed indication after connecting. report?(.enablingControlPointFailed, "Enabling notifications failed") } else { logger.v("Notifications enabled for \(characteristic.uuid.uuidString)") @@ -438,13 +447,18 @@ internal class SecureDFUControlPoint : NSObject, CBPeripheralDelegate { // This method, according to the iOS documentation, should be called only after writing with response to a characteristic. // However, on iOS 10 this method is called even after writing without response, which is a bug. // The DFU Control Point characteristic always writes with response, in oppose to the DFU Packet, which uses write without response. - guard characteristic.uuid.isEqual(SecureDFUControlPoint.UUID) else { + guard self.characteristic.isEqual(characteristic) else { return } - + if error != nil { - logger.e("Writing to characteristic failed") + logger.e("Writing to characteristic failed. Check if Service Changed service is enabled.") logger.e(error!) + // Note: + // Error 3: Writing is not permitted. + // This most proably is caching issue. Check if your device had Service Changed characteristic (for non-bonded devices) + // in both app and bootloader modes. This is a specially a case in SDK 12.x, where it was disabled by default. + // For bonded devices make sure it sends the Service Changed indication after connecting. report?(.writingCharacteristicFailed, "Writing to characteristic failed") } else { logger.i("Data written to \(characteristic.uuid.uuidString)") @@ -453,10 +467,10 @@ internal class SecureDFUControlPoint : NSObject, CBPeripheralDelegate { func peripheral(_ peripheral: CBPeripheral, didUpdateValueFor characteristic: CBCharacteristic, error: Error?) { // Ignore updates received for other characteristics - guard characteristic.uuid.isEqual(SecureDFUControlPoint.UUID) else { + guard self.characteristic.isEqual(characteristic) else { return } - + if error != nil { // This characteristic is never read, the error may only pop up when notification is received logger.e("Receiving notification failed") @@ -470,7 +484,7 @@ internal class SecureDFUControlPoint : NSObject, CBPeripheralDelegate { return } } - //Otherwise... + // Otherwise... logger.i("Notification received from \(characteristic.uuid.uuidString), value (0x): \(characteristic.value!.hexString)") // Parse response received diff --git a/Pods/iOSDFULibrary/iOSDFULibrary/Classes/Implementation/SecureDFU/Characteristics/SecureDFUPacket.swift b/Pods/iOSDFULibrary/iOSDFULibrary/Classes/Implementation/SecureDFU/Characteristics/SecureDFUPacket.swift index f3de4590..8a5ed641 100644 --- a/Pods/iOSDFULibrary/iOSDFULibrary/Classes/Implementation/SecureDFU/Characteristics/SecureDFUPacket.swift +++ b/Pods/iOSDFULibrary/iOSDFULibrary/Classes/Implementation/SecureDFU/Characteristics/SecureDFUPacket.swift @@ -22,18 +22,13 @@ import CoreBluetooth -internal class SecureDFUPacket { - static fileprivate let UUID = CBUUID(string: "8EC90002-F315-4F60-9FB8-838830DAEA50") - - static func matches(_ characteristic: CBCharacteristic) -> Bool { - return characteristic.uuid.isEqual(UUID) - } +internal class SecureDFUPacket: DFUCharacteristic { private let packetSize: UInt32 - private var characteristic: CBCharacteristic - private var logger: LoggerHelper - + internal var characteristic: CBCharacteristic + internal var logger: LoggerHelper + /// Number of bytes of firmware already sent. private(set) var bytesSent: UInt32 = 0 /// Number of bytes sent at the last progress notification. This value is used to calculate the current speed. @@ -41,7 +36,7 @@ internal class SecureDFUPacket { private var totalBytesSentWhenDfuStarted: UInt32 = 0 /// Current progress in percents (0-99). - private var progress: UInt8 = 0 + private var progressReported: UInt8 = 0 private var startTime: CFAbsoluteTime? private var lastTime: CFAbsoluteTime? @@ -49,7 +44,7 @@ internal class SecureDFUPacket { return characteristic.properties.contains(.writeWithoutResponse) } - init(_ characteristic: CBCharacteristic, _ logger: LoggerHelper) { + required init(_ characteristic: CBCharacteristic, _ logger: LoggerHelper) { self.characteristic = characteristic self.logger = logger @@ -68,7 +63,7 @@ internal class SecureDFUPacket { /** Sends the whole content of the data object. - - parameter data: the data to be sent + - parameter data: The data to be sent. */ func sendInitPacket(_ data: Data){ // Get the peripheral object @@ -78,12 +73,13 @@ internal class SecureDFUPacket { var offset: UInt32 = 0 var bytesToSend = UInt32(data.count) + let packetUUID = characteristic.uuid.uuidString repeat { let packetLength = min(bytesToSend, packetSize) let packet = data.subdata(in: Int(offset) ..< Int(offset + packetLength)) - logger.v("Writing to characteristic \(characteristic.uuid.uuidString)...") - logger.d("peripheral.writeValue(0x\(packet.hexString), for: \(characteristic.uuid.uuidString), type: .withoutResponse)") + logger.v("Writing to characteristic \(packetUUID)...") + logger.d("peripheral.writeValue(0x\(packet.hexString), for: \(packetUUID), type: .withoutResponse)") peripheral.writeValue(packet, for: characteristic, type: .withoutResponse) offset += packetLength @@ -92,29 +88,36 @@ internal class SecureDFUPacket { } /** - Sends a given range of data from given firmware over DFU Packet characteristic. If the whole object is - completed the completition callback will be called. + Sends a given range of data from given firmware over DFU Packet characteristic. + If the whole object is completed the completition callback will be called. + + - parameters: + - prnValue: Packet Receipt Notification value used in the process. 0 to disable PRNs. + - range: The range of the firmware that is to be sent in this object. + - firmware: The whole firmware to be sent in this part. + - progress: An optional progress delegate. + - complete: The completon callback. */ - func sendNext(_ aPRNValue: UInt16, packetsFrom aRange: Range, of aFirmware: DFUFirmware, - andReportProgressTo aProgressDelegate: DFUProgressDelegate?, andCompletionTo aCompletion: @escaping Callback) { + func sendNext(_ prnValue: UInt16, packetsFrom range: Range, of firmware: DFUFirmware, + andReportProgressTo progress: DFUProgressDelegate?, andCompletionTo complete: @escaping Callback) { let peripheral = characteristic.service.peripheral - let objectData = aFirmware.data.subdata(in: aRange) + let objectData = firmware.data.subdata(in: range) let objectSizeInBytes = UInt32(objectData.count) let objectSizeInPackets = (objectSizeInBytes + packetSize - 1) / packetSize let packetsSent = (bytesSent + packetSize - 1) / packetSize let packetsLeft = objectSizeInPackets - packetsSent // Calculate how many packets should be sent before EOF or next receipt notification - var packetsToSendNow = min(UInt32(aPRNValue), packetsLeft) + var packetsToSendNow = min(UInt32(prnValue), packetsLeft) - if aPRNValue == 0 { + if prnValue == 0 { packetsToSendNow = packetsLeft } // This is called when we no longer have data to send (PRN received after the whole object was sent) // Fixes issue IDFU-9 if packetsToSendNow == 0 { - aCompletion() + complete() return } @@ -122,14 +125,14 @@ internal class SecureDFUPacket { if startTime == nil { startTime = CFAbsoluteTimeGetCurrent() lastTime = startTime - totalBytesSentWhenDfuStarted = UInt32(aRange.lowerBound) + totalBytesSentWhenDfuStarted = UInt32(range.lowerBound) totalBytesSentSinceProgessNotification = totalBytesSentWhenDfuStarted // Notify progress delegate that upload has started (0%) DispatchQueue.main.async(execute: { - aProgressDelegate?.dfuProgressDidChange( - for: aFirmware.currentPart, - outOf: aFirmware.parts, + progress?.dfuProgressDidChange( + for: firmware.currentPart, + outOf: firmware.parts, to: 0, currentSpeedBytesPerSecond: 0.0, avgSpeedBytesPerSecond: 0.0) @@ -145,7 +148,7 @@ internal class SecureDFUPacket { canSendPacket = bytesSent == 0 || peripheral.canSendWriteWithoutResponse } // If PRNs are enabled we will ignore the new API and base synchronization on PRNs only - guard canSendPacket || aPRNValue > 0 else { + guard canSendPacket || prnValue > 0 else { break } @@ -158,11 +161,11 @@ internal class SecureDFUPacket { packetsToSendNow -= 1 // Calculate the total progress of the firmware, presented to the delegate - let totalBytesSent = UInt32(aRange.lowerBound) + bytesSent - let totalProgress = UInt8(totalBytesSent * 100 / UInt32(aFirmware.data.count)) + let totalBytesSent = UInt32(range.lowerBound) + bytesSent + let currentProgress = UInt8(totalBytesSent * 100 / UInt32(firmware.data.count)) // in percantage (0-100) // Notify progress listener only if current progress has increased since last time - if totalProgress > progress { + if currentProgress > progressReported { // Calculate current transfer speed in bytes per second let now = CFAbsoluteTimeGetCurrent() let currentSpeed = Double(totalBytesSent - totalBytesSentSinceProgessNotification) / (now - lastTime!) @@ -172,20 +175,20 @@ internal class SecureDFUPacket { // Notify progress delegate of overall progress DispatchQueue.main.async(execute: { - aProgressDelegate?.dfuProgressDidChange( - for: aFirmware.currentPart, - outOf: aFirmware.parts, - to: Int(totalProgress), + progress?.dfuProgressDidChange( + for: firmware.currentPart, + outOf: firmware.parts, + to: Int(currentProgress), currentSpeedBytesPerSecond: currentSpeed, avgSpeedBytesPerSecond: avgSpeed) }) - progress = totalProgress + progressReported = currentProgress } // Notify handler of current object progress to start sending next one if bytesSent == objectSizeInBytes { - if aPRNValue == 0 || originalPacketsToSendNow < UInt32(aPRNValue) { - aCompletion() + if prnValue == 0 || originalPacketsToSendNow < UInt32(prnValue) { + complete() } else { // The whole object has been sent but the DFU target will // send a PRN notification as expected. diff --git a/Pods/iOSDFULibrary/iOSDFULibrary/Classes/Implementation/SecureDFU/DFU/SecureDFUExecutor.swift b/Pods/iOSDFULibrary/iOSDFULibrary/Classes/Implementation/SecureDFU/DFU/SecureDFUExecutor.swift index 834c7f07..c1098c1a 100644 --- a/Pods/iOSDFULibrary/iOSDFULibrary/Classes/Implementation/SecureDFU/DFU/SecureDFUExecutor.swift +++ b/Pods/iOSDFULibrary/iOSDFULibrary/Classes/Implementation/SecureDFU/DFU/SecureDFUExecutor.swift @@ -56,7 +56,7 @@ internal class SecureDFUExecutor : DFUExecutor, SecureDFUPeripheralDelegate { func start() { error = nil peripheral.delegate = self - peripheral.start() + peripheral.start() // -> peripheralDidBecomeReady() will be called when the device is connected and DFU services was found } // MARK: - DFU Peripheral Delegate methods @@ -71,7 +71,7 @@ internal class SecureDFUExecutor : DFUExecutor, SecureDFUPeripheralDelegate { DispatchQueue.main.async(execute: { self.delegate?.dfuStateDidChange(to: .starting) }) - peripheral.enableControlPoint() + peripheral.enableControlPoint() // -> peripheralDidEnableControlPoint() will be called when done } func peripheralDidEnableControlPoint() { @@ -80,12 +80,12 @@ internal class SecureDFUExecutor : DFUExecutor, SecureDFUPeripheralDelegate { DispatchQueue.main.async(execute: { self.delegate?.dfuStateDidChange(to: .enablingDfuMode) }) - peripheral.jumpToBootloader() + peripheral.jumpToBootloader() // -> peripheralDidBecomeReady() will be called again, when connected to the Bootloader } else { // The device is ready to proceed with DFU // Start by reading command object info to get the maximum write size. - peripheral.readCommandObjectInfo() + peripheral.readCommandObjectInfo() // -> peripheralDidSendCommandObjectInfo(...) will be called when object received } } @@ -94,47 +94,54 @@ internal class SecureDFUExecutor : DFUExecutor, SecureDFUPeripheralDelegate { self.offset = offset self.crc = crc + // Was Init packet sent, at least partially, before? if offset > 0 { - let match = verifyCRC(for: firmware.initPacket!, andPacketOffset: offset, matches: crc) - if match { + // Verify CRC of the part that was sent before + if verifyCRC(for: firmware.initPacket!, andPacketOffset: offset, matches: crc) { // Resume sending Init Packet if offset < UInt32(firmware.initPacket!.count) { logWith(.application, message: "Resuming sending Init packet...") // We need to send rest of the Init packet, but before that let's make sure the PRNs are disabled - peripheral.setPRNValue(0) + peripheral.setPRNValue(0) // -> peripheralDidSetPRNValue() will be called } else { + // The same Init Packet was already sent. We must execute it, as it may have not been executed before. logWith(.application, message: "Received CRC match Init packet") - peripheral.sendExecuteCommand() + peripheral.sendExecuteCommand() // -> peripheralDidExecuteObject() will be called } } else { - // Start new flash, we either are flashing a different firmware + // Start new update. We are either flashing a different firmware, // or we are resuming from a BL/SD + App and need to start all over again. self.offset = 0 self.crc = 0 - peripheral.createCommandObject(withLength: UInt32(firmware.initPacket!.count)) + peripheral.createCommandObject(withLength: UInt32(firmware.initPacket!.count)) // -> peripheralDidCreateCommandObject() } } else { - peripheral.createCommandObject(withLength: UInt32(firmware.initPacket!.count)) + // No Init Packet was sent before. Create the Command object. + peripheral.createCommandObject(withLength: UInt32(firmware.initPacket!.count)) // -> peripheralDidCreateCommandObject() } } func peripheralDidCreateCommandObject() { // Disable PRNs for first time while we write Init file - peripheral.setPRNValue(0) + peripheral.setPRNValue(0) // -> peripheralDidSetPRNValue() will be called } func peripheralDidSetPRNValue() { if initPacketSent == false { - sendInitPacket(fromOffset: offset!) + // PRNs are disabled, we may sent Init Packet data. + sendInitPacket(fromOffset: offset!) // -> peripheralDidReceiveInitPacket() will be called } else { - sendDataObject(currentRangeIdx, from: offset!) + // PRNs are ready, check out the Data object. + peripheral.readDataObjectInfo() // -> peripheralDidSendDataObjectInfo(...) will be called } } func peripheralDidReceiveInitPacket() { logWith(.application, message: String(format: "Command object sent (CRC = %08X)", CRC32(data: firmware.initPacket!).crc)) - peripheral.sendCalculateChecksumCommand() + + // Init Packet sent. Let's check the CRC before executing it. + peripheral.sendCalculateChecksumCommand() // -> peripheralDidSendChecksum(...) will be called } func peripheralDidSendChecksum(offset: UInt32, crc: UInt32) { @@ -142,24 +149,33 @@ internal class SecureDFUExecutor : DFUExecutor, SecureDFUPeripheralDelegate { self.offset = offset if initPacketSent == false { + // Verify CRC if verifyCRC(for: firmware.initPacket!, andPacketOffset: UInt32(firmware.initPacket!.count), matches: crc) { + // Init Packet sent correctly. crcOk() - peripheral.sendExecuteCommand() + + // It must be now executed. + peripheral.sendExecuteCommand() // -> peripheralDidExecuteObject() will be called } else { - // The CRC does not match, let's start from the beginning + // The CRC does not match, let's start from the beginning. retryOrReportCrcError({ - peripheral.createCommandObject(withLength: UInt32(firmware.initPacket!.count)) + self.offset = 0 + self.crc = 0 + peripheral.createCommandObject(withLength: UInt32(firmware.initPacket!.count)) // -> peripheralDidCreateCommandObject() }) } } else { // Verify CRC if verifyCRC(for: firmware.data, andPacketOffset: offset, matches: crc) { + // Data object sent correctly. crcOk() + + // It must be now executed. firmwareSent = offset == UInt32(firmware.data.count) - peripheral.sendExecuteCommand(andActivateIf: firmwareSent) + peripheral.sendExecuteCommand(andActivateIf: firmwareSent) // -> peripheralDidExecuteObject() } else { retryOrReportCrcError({ - createDataObject(currentRangeIdx) + createDataObject(currentRangeIdx) // -> peripheralDidCreateDataObject() will be called }) } } @@ -169,13 +185,16 @@ internal class SecureDFUExecutor : DFUExecutor, SecureDFUPeripheralDelegate { if initPacketSent == false { logWith(.application, message: "Command object executed") initPacketSent = true - peripheral.readDataObjectInfo() + // Set the correct PRN value. If initiator.packetReceiptNotificationParameter is 0 + // and PRNs were already disabled to send the Init packet, this method will immediately + // call peripheralDidSetPRNValue() callback. + peripheral.setPRNValue(initiator.packetReceiptNotificationParameter) // -> peripheralDidSetPRNValue() will be called } else { logWith(.application, message: "Data object executed") if firmwareSent == false { currentRangeIdx += 1 - createDataObject(currentRangeIdx) + createDataObject(currentRangeIdx) // -> peripheralDidCreateDataObject() will be called } else { // The last data object was sent // Now the device will reset itself and onTransferCompleted() method will ba called (from the extension) @@ -207,7 +226,7 @@ internal class SecureDFUExecutor : DFUExecutor, SecureDFUPeripheralDelegate { }) if offset > 0 { - // Find the current range index + // Find the current range index. currentRangeIdx = 0 for range in firmwareRanges! { if range.contains(Int(offset)) { @@ -216,24 +235,23 @@ internal class SecureDFUExecutor : DFUExecutor, SecureDFUPeripheralDelegate { currentRangeIdx += 1 } - let match = verifyCRC(for: firmware.data, andPacketOffset: offset, matches: crc) - if match { + if verifyCRC(for: firmware.data, andPacketOffset: offset, matches: crc) { logWith(.info, message: "\(offset) bytes of data sent before, CRC match") // Did we sent the whole firmware? if offset == UInt32(firmware.data.count) { firmwareSent = true - peripheral.sendExecuteCommand(andActivateIf: firmwareSent) + peripheral.sendExecuteCommand(andActivateIf: firmwareSent) // -> peripheralDidExecuteObject() will be called } else { logWith(.info, message: "Resuming uploading firmware...") - // If the PRNs are enabled the value must be sent to the target - if initiator.packetReceiptNotificationParameter > 0 { - peripheral.setPRNValue(initiator.packetReceiptNotificationParameter) + + // If the whole object was sent before, make sure it's executed + if (offset % maxLen) == 0 { + // currentRangeIdx won't go below 0 because offset > 0 and offset % maxLen == 0 + currentRangeIdx -= 1 + peripheral.sendExecuteCommand() // -> peripheralDidExecuteObject() will be called } else { - // Otherwise we can just start by creating the first object. PRNs were set to 0 before, to send the init packet. - // Note: setting PRNs to 0 (disabling them) will not work! - - // Otherwise create current object - sendDataObject(currentRangeIdx, from: offset) + // Otherwise, continue sending the current object from given offset + sendDataObject(currentRangeIdx, from: offset) // -> peripheralDidReceiveObject() will be called } } } else { @@ -243,30 +261,22 @@ internal class SecureDFUExecutor : DFUExecutor, SecureDFUPeripheralDelegate { currentRangeIdx -= 1 } retryOrReportCrcError({ - createDataObject(currentRangeIdx) + createDataObject(currentRangeIdx) // -> peripheralDidCreateDataObject() will be called }) } } else { - // If the PRNs are enabled the value must be sent to the target - if initiator.packetReceiptNotificationParameter > 0 { - peripheral.setPRNValue(initiator.packetReceiptNotificationParameter) - } else { - // Otherwise we can just start by creating the first object. PRNs were set to 0 before, to send the init packet. - // Note: setting PRNs to 0 (disabling them) will not work! - - // Create the first data object - createDataObject(currentRangeIdx) - } + // Create the first data object + createDataObject(currentRangeIdx) // -> peripheralDidCreateDataObject() will be called } } func peripheralDidCreateDataObject() { logWith(.info, message: "Data object \(currentRangeIdx + 1)/\(firmwareRanges!.count) created") - sendDataObject(currentRangeIdx) + sendDataObject(currentRangeIdx) // -> peripheralDidReceiveObject() will be called } func peripheralDidReceiveObject() { - peripheral.sendCalculateChecksumCommand() + peripheral.sendCalculateChecksumCommand() // -> peripheralDidSendChecksum(...) will be called } // MARK: - Private methods @@ -325,11 +335,13 @@ internal class SecureDFUExecutor : DFUExecutor, SecureDFUPeripheralDelegate { } /** - Verifies if the CRC-32 of the data for byte 0 to given offset matches the given CRC value. - - parameter data: firmware or Init packet data - - parameter offset: number of bytes that should be used for CRC calculation - - parameter crc: the CRC obtained from the DFU Target to be matched - - returns: true if CRCs are identical, false otherwise + Verifies if the CRC-32 of the data from byte 0 to given offset matches the given CRC value. + + - parameter data: Firmware or Init packet data. + - parameter offset: Number of bytes that should be used for CRC calculation. + - parameter crc: The CRC obtained from the DFU Target to be matched. + + - returns: True if CRCs are identical, false otherwise. */ private func verifyCRC(for data: Data, andPacketOffset offset: UInt32, matches crc: UInt32) -> Bool { // Edge case where a different objcet might be flashed with a biger init file @@ -345,24 +357,30 @@ internal class SecureDFUExecutor : DFUExecutor, SecureDFUPeripheralDelegate { } /** - Sends the Init packet starting from the given offset. This method is synchronous, however it calls + Sends the Init packet starting from the given offset. This method is asynchronous, it calls peripheralDidReceiveInitPacket() callback when done. + + - parameter offset: The starting offset from which the Init Packet should be sent. + This allows resuming uploading the Init Packet. */ private func sendInitPacket(fromOffset offset: UInt32) { let initPacketLength = UInt32(firmware.initPacket!.count) let data = firmware.initPacket!.subdata(in: Int(offset) ..< Int(initPacketLength - offset)) // Send following bytes of init packet (offset may be 0) - peripheral.sendInitPacket(data) + peripheral.sendInitPacket(data) // -> peripheralDidReceiveInitPacket() will be called } /** Creates the new data object with length equal to the length of the range with given index. The ranges were calculated using `calculateFirmwareRanges()`. + + - parameter rangeIdx: Index of a range of the firmware. */ private func createDataObject(_ rangeIdx: Int) { let currentRange = firmwareRanges![rangeIdx] peripheral.createDataObject(withLength: UInt32(currentRange.upperBound - currentRange.lowerBound)) + // -> peripheralDidCreateDataObject() will be called } /** @@ -370,8 +388,9 @@ internal class SecureDFUExecutor : DFUExecutor, SecureDFUPeripheralDelegate { If the resumeOffset is set and equal to lower bound of the given range it will create the object instead. When created, a onObjectCreated() method will be called which will call this method again, now with the offset parameter equal nil. - - parameter rangeIdx: index of the range to be sent. The ranges were calculated using `calculateFirmwareRanges()`. - - parameter resumeOffset: if set, this method will send only the part of firmware from the range. The offset must + + - parameter rangeIdx: Index of the range to be sent. The ranges were calculated using `calculateFirmwareRanges()`. + - parameter resumeOffset: If set, this method will send only the part of firmware from the range. The offset must be inside the given range. */ private func sendDataObject(_ rangeIdx: Int, from resumeOffset: UInt32? = nil) { @@ -390,5 +409,6 @@ internal class SecureDFUExecutor : DFUExecutor, SecureDFUPeripheralDelegate { } peripheral.sendNextObject(from: aRange, of: firmware, andReportProgressTo: progressDelegate) + // -> peripheralDidReceiveObject() will be called } } diff --git a/Pods/iOSDFULibrary/iOSDFULibrary/Classes/Implementation/SecureDFU/Peripheral/SecureDFUPeripheral.swift b/Pods/iOSDFULibrary/iOSDFULibrary/Classes/Implementation/SecureDFU/Peripheral/SecureDFUPeripheral.swift index dea728f6..3faaa040 100644 --- a/Pods/iOSDFULibrary/iOSDFULibrary/Classes/Implementation/SecureDFU/Peripheral/SecureDFUPeripheral.swift +++ b/Pods/iOSDFULibrary/iOSDFULibrary/Classes/Implementation/SecureDFU/Peripheral/SecureDFUPeripheral.swift @@ -25,12 +25,12 @@ import CoreBluetooth internal class SecureDFUPeripheral : BaseCommonDFUPeripheral { /// A flag indicating whether setting alternative advertising name is enabled (SDK 14+) (true by default) - internal let alternativeAdvertisingNameEnabled: Bool + let alternativeAdvertisingNameEnabled: Bool // MARK: - Peripheral API override var requiredServices: [CBUUID]? { - return [SecureDFUService.UUID] + return [SecureDFUService.serviceUuid(from: uuidHelper)] } override func isInitPacketRequired() -> Bool { @@ -64,7 +64,7 @@ internal class SecureDFUPeripheral : BaseCommonDFUPeripheral, of aFirmware: DFUFirmware, andReportProgressTo aProgressDelegate: DFUProgressDelegate?) { - dfuService!.sendNextObject(from: aRange, of: aFirmware, andReportProgressTo: aProgressDelegate, + func sendNextObject(from range: Range, of firmware: DFUFirmware, andReportProgressTo progress: DFUProgressDelegate?) { + dfuService!.sendNextObject(from: range, of: firmware, andReportProgressTo: progress, onSuccess: { self.delegate?.peripheralDidReceiveObject() }, onError: defaultErrorCallback ) } /** - Sets the Packet Receipt Notification value. 0 disables the PRN procedure. On iOS the value may not be greater than ~20 or equal to 0 - if more than ~20 are to be sent or a buffer overflow error may occur. + Sets the Packet Receipt Notification value. 0 disables the PRN procedure. + On older version of iOS the value may not be greater than ~20 or equal to 0, otherwise a buffer overflow error may occur. This library sends the Init packet without PRNs, but that's only because of the Init packet is small enough. - - parameter aValue: Packet Receipt Notification value (0 to disable PRNs) + - parameter newValue: Packet Receipt Notification value (0 to disable PRNs). */ - func setPRNValue(_ aValue: UInt16 = 0) { - dfuService!.setPacketReceiptNotificationValue(aValue, + func setPRNValue(_ newValue: UInt16 = 0) { + dfuService!.setPacketReceiptNotificationValue(newValue, onSuccess: { self.delegate?.peripheralDidSetPRNValue() }, onError: defaultErrorCallback ) } /** - Sends Init packet. This method is synchronuous and calls delegate's peripheralDidReceiveInitPacket() method ater the given data are sent. + Sends Init packet. This method is synchronuous and calls delegate's + `peripheralDidReceiveInitPacket()` method ater the given data are sent. - - parameter packetData: data to be sent as Init Packet + - parameter packetData: Data to be sent as Init Packet. */ func sendInitPacket(_ packetData: Data){ // This method is synchronuous. @@ -184,15 +185,18 @@ internal class SecureDFUPeripheral : BaseCommonDFUPeripheral Bool { - return service.uuid.isEqual(UUID) + static func serviceUuid(from uuidHelper: DFUUuidHelper) -> CBUUID { + return uuidHelper.secureDFUService } - /// The target DFU Peripheral - internal var targetPeripheral: DFUPeripheralAPI? /// The logger helper. private var logger: LoggerHelper /// The service object from CoreBluetooth used to initialize the SecureDFUService instance. @@ -50,15 +50,17 @@ import CoreBluetooth // -- Properties stored when upload started in order to resume it -- private var firmware: DFUFirmware? - private var packetReceiptNotificationNumber: UInt16 = 0 + private var packetReceiptNotificationNumber: UInt16? private var range: Range? // -- End -- // MARK: - Initialization - required init(_ service: CBService, _ logger: LoggerHelper) { + required init(_ service: CBService, _ logger: LoggerHelper, _ uuidHelper: DFUUuidHelper) { self.service = service self.logger = logger + self.uuidHelper = uuidHelper + super.init() self.logger.v("Secure DFU Service found") } @@ -81,7 +83,7 @@ import CoreBluetooth func resume() -> Bool { if !aborted && paused && firmware != nil { paused = false - dfuPacketCharacteristic!.sendNext(packetReceiptNotificationNumber, packetsFrom: range!, of: firmware!, + dfuPacketCharacteristic!.sendNext(packetReceiptNotificationNumber ?? 0, packetsFrom: range!, of: firmware!, andReportProgressTo: progressDelegate, andCompletionTo: success!) return paused } @@ -112,8 +114,8 @@ import CoreBluetooth /** Discovers characteristics in the DFU Service. Result it reported using callbacks. - - parameter success: method called when required DFU characteristics were discovered - - parameter report: method called when an error occurred + - parameter success: Method called when required DFU characteristics were discovered. + - parameter report: Method called when an error occurred. */ func discoverCharacteristics(onSuccess success: @escaping Callback, onError report: @escaping ErrorCallback) { // Save callbacks @@ -128,15 +130,16 @@ import CoreBluetooth // Discover DFU characteristics logger.v("Discovering characteristics in DFU Service...") - logger.d("peripheral.discoverCharacteristics(nil, for: \(SecureDFUService.UUID.uuidString))") + logger.d("peripheral.discoverCharacteristics(nil, for: \(uuidHelper.secureDFUService.uuidString))") + peripheral.discoverCharacteristics(nil, for: service) } /** Enables notifications for DFU Control Point characteristic. Result it reported using callbacks. - - parameter success: method called when notifications were enabled without a problem - - parameter report: method called when an error occurred + - parameter success: Method called when notifications were enabled without a problem. + - parameter report: Method called when an error occurred. */ func enableControlPoint(onSuccess success: @escaping Callback, onError report: @escaping ErrorCallback) { if !aborted { @@ -155,8 +158,8 @@ import CoreBluetooth /** Reads Command Object Info. Result it reported using callbacks. - - parameter response: method called when the response was received - - parameter report: method called when an error occurred + - parameter response: Method called when the response was received. + - parameter report: Method called when an error occurred. */ func readCommandObjectInfo(onReponse response: @escaping SecureDFUResponseCallback, onError report: @escaping ErrorCallback) { if !aborted { @@ -169,8 +172,8 @@ import CoreBluetooth /** Reads object info Data. Result it reported using callbacks. - - parameter response: method called when the response was received - - parameter report: method called when an error occurred + - parameter response: Method called when the response was received. + - parameter report: Method called when an error occurred. */ func readDataObjectInfo(onReponse response: @escaping SecureDFUResponseCallback, onError report: @escaping ErrorCallback) { if !aborted { @@ -183,14 +186,14 @@ import CoreBluetooth /** Creates object command. Result it reported using callbacks. - - parameter aLength: exact size of the object - - parameter success: method called when the object has been created - - parameter report: method called when an error occurred + - parameter length: Exact size of the object. + - parameter success: Method called when the object has been created. + - parameter report: Method called when an error occurred. */ - func createCommandObject(withLength aLength: UInt32, onSuccess success: @escaping Callback, onError report: @escaping ErrorCallback) { + func createCommandObject(withLength length: UInt32, onSuccess success: @escaping Callback, onError report: @escaping ErrorCallback) { if !aborted { - dfuControlPointCharacteristic!.send(SecureDFURequest.createCommandObject(withSize: aLength), onSuccess: success, onError:report) + dfuControlPointCharacteristic!.send(SecureDFURequest.createCommandObject(withSize: length), onSuccess: success, onError:report) } else { sendReset(onError: report) } @@ -199,13 +202,13 @@ import CoreBluetooth /** Creates object data. Result it reported using callbacks. - - parameter aLength: exact size of the object - - parameter success: method called when the object has been created - - parameter report: method called when an error occurred + - parameter length: Exact size of the object. + - parameter success: Method called when the object has been created. + - parameter report: Method called when an error occurred. */ - func createDataObject(withLength aLength: UInt32, onSuccess success: @escaping Callback, onError report: @escaping ErrorCallback) { + func createDataObject(withLength length: UInt32, onSuccess success: @escaping Callback, onError report: @escaping ErrorCallback) { if !aborted { - dfuControlPointCharacteristic!.send(SecureDFURequest.createDataObject(withSize: aLength), onSuccess: success, onError:report) + dfuControlPointCharacteristic!.send(SecureDFURequest.createDataObject(withSize: length), onSuccess: success, onError:report) } else { sendReset(onError: report) } @@ -214,30 +217,34 @@ import CoreBluetooth /** Sends a Packet Receipt Notification request with given value. Result it reported using callbacks. - - parameter aValue: Packet Receipt Notification value (0 to disable PRNs) - - parameter success: method called when the PRN value has been set - - parameter report: method called when an error occurred + - parameter newValue: Packet Receipt Notification value (0 to disable PRNs). + - parameter success: Method called when the PRN value has been set. + - parameter report: Method called when an error occurred. */ - func setPacketReceiptNotificationValue(_ aValue: UInt16 = 0, onSuccess success: @escaping Callback, onError report: @escaping ErrorCallback) { - self.packetReceiptNotificationNumber = aValue - dfuControlPointCharacteristic?.send(SecureDFURequest.setPacketReceiptNotification(value: aValue), - onSuccess: { - if aValue > 0 { - self.logger.a("Packet Receipt Notif enabled (Op Code = 2, Value = \(aValue))") - } else { - self.logger.a("Packet Receipt Notif disabled (Op Code = 2, Value = 0)") - } - success() - }, - onError: report - ) + func setPacketReceiptNotificationValue(_ newValue: UInt16 = 0, onSuccess success: @escaping Callback, onError report: @escaping ErrorCallback) { + if packetReceiptNotificationNumber == newValue { + success() + } else { + packetReceiptNotificationNumber = newValue + dfuControlPointCharacteristic?.send(SecureDFURequest.setPacketReceiptNotification(value: newValue), + onSuccess: { + if newValue > 0 { + self.logger.a("Packet Receipt Notif enabled (Op Code = 2, Value = \(newValue))") + } else { + self.logger.a("Packet Receipt Notif disabled (Op Code = 2, Value = 0)") + } + success() + }, + onError: report + ) + } } /** Sends Calculate checksum request. Result it reported using callbacks. - - parameter response: method called when the response was received - - parameter report: method called when an error occurred + - parameter response: Method called when the response was received. + - parameter report: Method called when an error occurred. */ func calculateChecksumCommand(onSuccess response: @escaping SecureDFUResponseCallback, onError report: @escaping ErrorCallback) { if !aborted { @@ -250,8 +257,8 @@ import CoreBluetooth /** Sends Execute command request. Result it reported using callbacks. - - parameter success: method called when the object was executed without an error - - parameter report: method called when an error occurred + - parameter success: Method called when the object was executed without an error. + - parameter report: Method called when an error occurred. */ func executeCommand(onSuccess success: @escaping Callback, onError report: @escaping ErrorCallback) { if !aborted { @@ -264,7 +271,7 @@ import CoreBluetooth /** Disconnects from the device. - - parameter report: a callback called when writing characteristic failed + - parameter report: A callback called when writing characteristic failed. */ private func sendReset(onError report: @escaping ErrorCallback) { aborted = true @@ -278,7 +285,7 @@ import CoreBluetooth Sends the init packet. This method is synchronous and will terminate when all data were written. The init data file should not have more than ~16 packets of data as the buffer overflow error may occur. - - parameter packetData: data to be sent as Init Packet + - parameter packetData: Data to be sent as Init Packet. */ func sendInitPacket(withdata packetData: Data){ dfuPacketCharacteristic!.sendInitPacket(packetData) @@ -287,11 +294,11 @@ import CoreBluetooth /** Sends the next object of firmware. Result it reported using callbacks. - - parameter aRange: given range of the firmware will be sent - - parameter aFirmware: the firmware from with part is to be sent - - parameter progressDelegate: an optional progress delegate - - parameter success: method called when the object was sent - - parameter report: method called when an error occurred + - parameter aRange: Given range of the firmware will be sent. + - parameter aFirmware: The firmware from with part is to be sent. + - parameter progressDelegate: An optional progress delegate. + - parameter success: Method called when the object was sent. + - parameter report: Method called when an error occurred. */ func sendNextObject(from aRange: Range, of aFirmware: DFUFirmware, andReportProgressTo progressDelegate: DFUProgressDelegate?, onSuccess success: @escaping Callback, onError report: @escaping ErrorCallback) { @@ -329,14 +336,14 @@ import CoreBluetooth // of bytes reported), or when the iOS reports the peripheralIsReady(toSendWriteWithoutResponse:) callback // (bytesReceived is nil). If PRNs are enabled we ignore this second case as the PRNs are responsible for synchronization. let peripheralIsReadyToSendWriteWithoutRequest = bytesReceived == nil - if self.packetReceiptNotificationNumber > 0 && peripheralIsReadyToSendWriteWithoutRequest { + if self.packetReceiptNotificationNumber ?? 0 > 0 && peripheralIsReadyToSendWriteWithoutRequest { return } if !self.paused && !self.aborted { let bytesSent = self.dfuPacketCharacteristic!.bytesSent + UInt32(aRange.lowerBound) if peripheralIsReadyToSendWriteWithoutRequest || bytesSent == bytesReceived! { - self.dfuPacketCharacteristic!.sendNext(self.packetReceiptNotificationNumber, packetsFrom: aRange, of: aFirmware, + self.dfuPacketCharacteristic!.sendNext(self.packetReceiptNotificationNumber ?? 0, packetsFrom: aRange, of: aFirmware, andReportProgressTo: progressDelegate, andCompletionTo: self.success!) } else { // Target device deported invalid number of bytes received @@ -358,7 +365,7 @@ import CoreBluetooth if !paused && !aborted { // ...and start sending firmware if - dfuPacketCharacteristic!.sendNext(packetReceiptNotificationNumber, packetsFrom: aRange, of: aFirmware, + dfuPacketCharacteristic!.sendNext(packetReceiptNotificationNumber ?? 0, packetsFrom: aRange, of: aFirmware, andReportProgressTo: progressDelegate, andCompletionTo: self.success!) } else if aborted { self.firmware = nil @@ -379,72 +386,91 @@ import CoreBluetooth self.success = nil self.report = nil - if error != nil { + guard error == nil else { logger.e("Characteristics discovery failed") logger.e(error!) _report?(.serviceDiscoveryFailed, "Characteristics discovery failed") - } else { - logger.i("DFU characteristics discovered") - - // Find DFU characteristics - for characteristic in service.characteristics! { - if SecureDFUPacket.matches(characteristic) { + return + } + + logger.i("DFU characteristics discovered") + + // Find DFU characteristics + if let characteristics = service.characteristics { + for characteristic in characteristics { + if characteristic.matches(uuid: uuidHelper.secureDFUPacket) { dfuPacketCharacteristic = SecureDFUPacket(characteristic, logger) - } else if SecureDFUControlPoint.matches(characteristic) { + } else if characteristic.matches(uuid: uuidHelper.secureDFUControlPoint) { dfuControlPointCharacteristic = SecureDFUControlPoint(characteristic, logger) } // Support for Buttonless DFU Service from SDK 12.x (as experimental). - // SDK 13 added a new characteristic in Secure DFU Service with buttonless feature without bond sharing (bootloader uses different device address). - // SDK 14 will add a new characteristic with buttonless service for bonded devices with bond information sharing between app and the bootloader. - else if ButtonlessDFU.matches(characteristic) { + // SDK 13 added a new characteristic in Secure DFU Service with buttonless + // feature without bond sharing (bootloader uses different device address). + // SDK 14 added a new characteristic with buttonless service for bonded + // devices with bond information sharing between app and the bootloader. + else if uuidHelper.matchesButtonless(characteristic) { buttonlessDfuCharacteristic = ButtonlessDFU(characteristic, logger) + buttonlessDfuCharacteristic?.uuidHelper = uuidHelper _success?() return } // End } - - // Some validation - if dfuControlPointCharacteristic == nil { - logger.e("DFU Control Point characteristics not found") - // DFU Control Point characteristic is required - _report?(.deviceNotSupported, "DFU Control Point characteristic not found") - return - } - if dfuPacketCharacteristic == nil { - logger.e("DFU Packet characteristics not found") - // DFU Packet characteristic is required - _report?(.deviceNotSupported, "DFU Packet characteristic not found") - return - } - if !dfuControlPointCharacteristic!.valid { - logger.e("DFU Control Point characteristics must have Write and Notify properties") - // DFU Control Point characteristic must have Write and Notify properties - _report?(.deviceNotSupported, "DFU Control Point characteristic does not have the Write and Notify properties") - return + } + + // Log what was found in case of an error + if dfuPacketCharacteristic == nil || dfuControlPointCharacteristic == nil { + if let characteristics = service.characteristics, characteristics.isEmpty == false { + logger.d("The following characteristics were found:") + characteristics.forEach { characteristic in + logger.d(" - \(characteristic.uuid.uuidString)") + } + } else { + logger.d("No characteristics found in the service") } - - _success?() + logger.d("Did you connect to the correct target? It might be that the previous services were cached: toggle Bluetooth from iOS settings to clear cache. Also, ensure the device contains the Service Changed characteristic") + } + + // Some validation + guard dfuControlPointCharacteristic != nil else { + logger.e("DFU Control Point characteristic not found") + // DFU Control Point characteristic is required + _report?(.deviceNotSupported, "DFU Control Point characteristic not found") + return } + guard dfuPacketCharacteristic != nil else { + logger.e("DFU Packet characteristic not found") + // DFU Packet characteristic is required + _report?(.deviceNotSupported, "DFU Packet characteristic not found") + return + } + guard dfuControlPointCharacteristic!.valid else { + logger.e("DFU Control Point characteristic must have Write and Notify properties") + // DFU Control Point characteristic must have Write and Notify properties + _report?(.deviceNotSupported, "DFU Control Point characteristic does not have the Write and Notify properties") + return + } + guard dfuPacketCharacteristic!.valid else { + logger.e("DFU Packet characteristic must have Write Without Response property") + // DFU Packet characteristic must have Write Without Response property + _report?(.deviceNotSupported, "DFU Packet characteristic must have Write Without Response property") + return + } + + _success?() } // MARK: - Support for Buttonless DFU Service /// The buttonless jump feature was experimental in SDK 12. It did not support passing bond information to the DFU bootloader, /// was not safe (possible DOS attack) and had bugs. This is the service UUID used by this service. - static internal let ExperimentalButtonlessDfuUUID = CBUUID(string: "8E400001-F315-4F60-9FB8-838830DAEA50") - - static func matches(experimental service: CBService) -> Bool { - return service.uuid.isEqual(ExperimentalButtonlessDfuUUID) - } - private var buttonlessDfuCharacteristic: ButtonlessDFU? /** This method tries to estimate whether the DFU target device is in Application mode which supports the buttonless jump to the DFU Bootloader. - - returns: true, if it is for sure in the Application more, false, if definitely is not, nil if uknown + - returns: True, if it is for sure in the Application more, false, if definitely is not, nil if unknown. */ func isInApplicationMode() -> Bool? { // If the buttonless DFU characteristic is not nil it means that the device is in app mode. @@ -467,7 +493,7 @@ import CoreBluetooth /** Triggers a switch to DFU Bootloader mode on the remote target by sending DFU Start command. - - parameter report: method called when an error occurred + - parameter report: Method called when an error occurred. */ func jumpToBootloaderMode(withAlternativeAdvertisingName rename: Bool, onError report: @escaping ErrorCallback) { if !aborted { diff --git a/Pods/iOSDFULibrary/iOSDFULibrary/Classes/Utilities/Logging/LoggerDelegate.swift b/Pods/iOSDFULibrary/iOSDFULibrary/Classes/Utilities/Logging/LoggerDelegate.swift index f49b1b29..6186ec72 100644 --- a/Pods/iOSDFULibrary/iOSDFULibrary/Classes/Utilities/Logging/LoggerDelegate.swift +++ b/Pods/iOSDFULibrary/iOSDFULibrary/Classes/Utilities/Logging/LoggerDelegate.swift @@ -40,22 +40,14 @@ Log level. Logger application may filter log entries based on their level. Level case error = 20 public func name() -> String { - var readableName: String - switch (self) { - case .debug: - readableName = "D" - case .verbose: - readableName = "V" - case .info: - readableName = "I" - case .application: - readableName = "A" - case .warning: - readableName = "W" - case .error: - readableName = "E" + switch self { + case .debug: return "D" + case .verbose: return "V" + case .info: return "I" + case .application: return "A" + case .warning: return "W" + case .error: return "E" } - return readableName } } diff --git a/Pods/iOSDFULibrary/iOSDFULibrary/Classes/Utilities/Logging/LoggerHelper.swift b/Pods/iOSDFULibrary/iOSDFULibrary/Classes/Utilities/Logging/LoggerHelper.swift index 3201b31e..9a11b027 100644 --- a/Pods/iOSDFULibrary/iOSDFULibrary/Classes/Utilities/Logging/LoggerHelper.swift +++ b/Pods/iOSDFULibrary/iOSDFULibrary/Classes/Utilities/Logging/LoggerHelper.swift @@ -22,7 +22,7 @@ import Foundation class LoggerHelper { - private var logger: LoggerDelegate? + private weak var logger: LoggerDelegate? init(_ logger: LoggerDelegate?) { self.logger = logger diff --git a/nRF Toolbox.xcodeproj/project.pbxproj b/nRF Toolbox.xcodeproj/project.pbxproj index 76929358..34ee345b 100644 --- a/nRF Toolbox.xcodeproj/project.pbxproj +++ b/nRF Toolbox.xcodeproj/project.pbxproj @@ -553,7 +553,6 @@ 5217F3E01859EE0000F2D5BB /* Resources */, 0E645A0E1CBF943000D36AD0 /* Embed Frameworks */, 1C633273D176F0D847977108 /* [CP] Embed Pods Frameworks */, - 443450C8244E84C1AFFCA266 /* [CP] Copy Pods Resources */, ); buildRules = ( ); @@ -633,7 +632,7 @@ files = ( ); inputPaths = ( - "${SRCROOT}/Pods/Target Support Files/Pods-nRF Toolbox/Pods-nRF Toolbox-frameworks.sh", + "${PODS_ROOT}/Target Support Files/Pods-nRF Toolbox/Pods-nRF Toolbox-frameworks.sh", "${BUILT_PRODUCTS_DIR}/CorePlot/CorePlot.framework", "${BUILT_PRODUCTS_DIR}/EVReflection/EVReflection.framework", "${BUILT_PRODUCTS_DIR}/SWRevealViewController/SWRevealViewController.framework", @@ -650,22 +649,7 @@ ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; - shellScript = "\"${SRCROOT}/Pods/Target Support Files/Pods-nRF Toolbox/Pods-nRF Toolbox-frameworks.sh\"\n"; - showEnvVarsInLog = 0; - }; - 443450C8244E84C1AFFCA266 /* [CP] Copy Pods Resources */ = { - isa = PBXShellScriptBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - inputPaths = ( - ); - name = "[CP] Copy Pods Resources"; - outputPaths = ( - ); - runOnlyForDeploymentPostprocessing = 0; - shellPath = /bin/sh; - shellScript = "\"${SRCROOT}/Pods/Target Support Files/Pods-nRF Toolbox/Pods-nRF Toolbox-resources.sh\"\n"; + shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-nRF Toolbox/Pods-nRF Toolbox-frameworks.sh\"\n"; showEnvVarsInLog = 0; }; 8B80C1585542D2D10E73CB3A /* [CP] Check Pods Manifest.lock */ = {