+
+Use `withAccess` parameter to specify the security level of the keychain storage.
+By default the `.accessibleWhenUnlocked` option is used. It is one of the most restrictive options and provides good data protection.
+
+```
+KeychainSwift().set("Hello world", forKey: "key 1", withAccess: .accessibleWhenUnlocked)
+```
+
+You can use `.accessibleAfterFirstUnlock` if you need your app to access the keychain item while in the background. Note that it is less secure than the `.accessibleWhenUnlocked` option.
+
+See the list of all available [access options](https://github.com/evgenyneu/keychain-swift/blob/master/Sources/KeychainSwiftAccessOptions.swift).
+
+
+
Synchronizing keychain items with other devices
+
+Set `synchronizable` property to `true` to enable keychain items synchronization across user's multiple devices. The synchronization will work for users who have the "Keychain" enabled in the iCloud settings on their devices.
+
+Setting `synchronizable` property to `true` will add the item to other devices with the `set` method and obtain synchronizable items with the `get` command. Deleting a synchronizable item will remove it from all devices.
+
+Note that you do NOT need to enable iCloud or Keychain Sharing capabilities in your app's target for this feature to work.
+
+
+```Swift
+// First device
+let keychain = KeychainSwift()
+keychain.synchronizable = true
+keychain.set("hello world", forKey: "my key")
+
+// Second device
+let keychain = KeychainSwift()
+keychain.synchronizable = true
+keychain.get("my key") // Returns "hello world"
+```
+
+We could not get the Keychain synchronization work on macOS.
+
+
+
Sharing keychain items with other apps
+
+In order to share keychain items between apps on the same device they need to have common *Keychain Groups* registered in *Capabilities > Keychain Sharing* settings. [This tutorial](http://evgenii.com/blog/sharing-keychain-in-ios/) shows how to set it up.
+
+Use `accessGroup` property to access shared keychain items. In the following example we specify an access group "CS671JRA62.com.myapp.KeychainGroup" that will be used to set, get and delete an item "my key".
+
+```Swift
+let keychain = KeychainSwift()
+keychain.accessGroup = "CS671JRA62.com.myapp.KeychainGroup" // Use your own access goup
+
+keychain.set("hello world", forKey: "my key")
+keychain.get("my key")
+keychain.delete("my key")
+keychain.clear()
+```
+
+*Note*: there is no way of sharing a keychain item between the watchOS 2.0 and its paired device: https://forums.developer.apple.com/thread/5938
+
+### Setting key prefix
+
+One can pass a `keyPrefix` argument when initializing a `KeychainSwift` object. The string passed in `keyPrefix` argument will be used as a prefix to **all the keys** used in `set`, `get`, `getData` and `delete` methods. Adding a prefix to the keychain keys can be useful in unit tests. This prevents the tests from changing the Keychain keys that are used when the app is launched manually.
+
+Note that `clear` method still clears everything from the Keychain regardless of the prefix used.
+
+
+```Swift
+let keychain = KeychainSwift(keyPrefix: "myTestKey_")
+keychain.set("hello world", forKey: "hello")
+// Value will be stored under "myTestKey_hello" key
+```
+
+### Check if operation was successful
+
+One can verify if `set`, `delete` and `clear` methods finished successfully by checking their return values. Those methods return `true` on success and `false` on error.
+
+```Swift
+if keychain.set("hello world", forKey: "my key") {
+ // Keychain item is saved successfully
+} else {
+ // Report error
+}
+```
+
+To get a specific failure reason use the `lastResultCode` property containing result code for the last operation. See [Keychain Result Codes](https://developer.apple.com/documentation/security/1542001-security_framework_result_codes).
+
+```Swift
+keychain.set("hello world", forKey: "my key")
+if keychain.lastResultCode != noErr { /* Report error */ }
+```
+
+## Using KeychainSwift from Objective-C
+
+[This manual](https://github.com/evgenyneu/keychain-swift/wiki/Using-KeychainSwift-in-Objective-C-project) describes how to use KeychainSwift in Objective-C apps.
+
+## Known serious issue
+
+It [has been reported](https://github.com/evgenyneu/keychain-swift/issues/15) that the library sometimes returns `nil` instead of the stored Keychain value. The issue seems to be random and hard to reproduce. It may be connected with [the Keychain issue](https://forums.developer.apple.com/thread/4743) reported on Apple developer forums. If you experienced this problem feel free to create an issue so we can discuss it and find solutions.
+
+## Demo app
+
+
+
+## Alternative solutions
+
+Here are some other Keychain libraries.
+
+* [DanielTomlinson/Latch](https://github.com/DanielTomlinson/Latch)
+* [jrendel/SwiftKeychainWrapper](https://github.com/jrendel/SwiftKeychainWrapper)
+* [kishikawakatsumi/KeychainAccess](https://github.com/kishikawakatsumi/KeychainAccess)
+* [matthewpalmer/Locksmith](https://github.com/matthewpalmer/Locksmith)
+* [phuonglm86/SwiftyKey](https://github.com/phuonglm86/SwiftyKey)
+* [s-aska/KeyClip](https://github.com/s-aska/KeyClip)
+* [yankodimitrov/SwiftKeychain](https://github.com/yankodimitrov/SwiftKeychain)
+
+## Thanks 👍
+
+* The code is based on this example: [https://gist.github.com/s-aska/e7ad24175fb7b04f78e7](https://gist.github.com/s-aska/e7ad24175fb7b04f78e7)
+* Thanks to [diogoguimaraes](https://github.com/diogoguimaraes) for adding Swift Package Manager setup option.
+* Thanks to [glyuck](https://github.com/glyuck) for taming booleans.
+* Thanks to [pepibumur](https://github.com/pepibumur) for adding macOS, watchOS and tvOS support.
+* Thanks to [ezura](https://github.com/ezura) for iOS 7 support.
+* Thanks to [mikaoj](https://github.com/mikaoj) for adding keychain synchronization.
+* Thanks to [tcirwin](https://github.com/tcirwin) for adding Swift 3.0 support.
+* Thanks to [Tulleb](https://github.com/Tulleb) for adding Xcode 8 beta 6 support.
+* Thanks to [CraigSiemens](https://github.com/CraigSiemens) for adding Swift 3.1 support.
+* Thanks to [maxkramerbcgdv](https://github.com/maxkramerbcgdv) for fixing Package Manager setup in Xcode 8.2.
+* Thanks to [elikohen](https://github.com/elikohen) for fixing concurrency issues.
+* Thanks to [beny](https://github.com/beny) for adding Swift 4.2 support.
+
+
+
+## Feedback is welcome
+
+If you notice any issue, got stuck or just want to chat feel free to create an issue. We will be happy to help you.
+
+## License
+
+Keychain Swift is released under the [MIT License](LICENSE).
diff --git a/iOS/MSTG-JWT/Pods/KeychainSwift/Sources/KeychainSwift.swift b/iOS/MSTG-JWT/Pods/KeychainSwift/Sources/KeychainSwift.swift
new file mode 100644
index 0000000..21dfbb9
--- /dev/null
+++ b/iOS/MSTG-JWT/Pods/KeychainSwift/Sources/KeychainSwift.swift
@@ -0,0 +1,277 @@
+import Security
+import Foundation
+
+/**
+
+A collection of helper functions for saving text and data in the keychain.
+
+*/
+open class KeychainSwift {
+
+ var lastQueryParameters: [String: Any]? // Used by the unit tests
+
+ /// Contains result code from the last operation. Value is noErr (0) for a successful result.
+ open var lastResultCode: OSStatus = noErr
+
+ var keyPrefix = "" // Can be useful in test.
+
+ /**
+
+ Specify an access group that will be used to access keychain items. Access groups can be used to share keychain items between applications. When access group value is nil all application access groups are being accessed. Access group name is used by all functions: set, get, delete and clear.
+
+ */
+ open var accessGroup: String?
+
+
+ /**
+
+ Specifies whether the items can be synchronized with other devices through iCloud. Setting this property to true will
+ add the item to other devices with the `set` method and obtain synchronizable items with the `get` command. Deleting synchronizable items will remove them from all devices. In order for keychain synchronization to work the user must enable "Keychain" in iCloud settings.
+
+ Does not work on macOS.
+
+ */
+ open var synchronizable: Bool = false
+
+ private let readLock = NSLock()
+
+ /// Instantiate a KeychainSwift object
+ public init() { }
+
+ /**
+
+ - parameter keyPrefix: a prefix that is added before the key in get/set methods. Note that `clear` method still clears everything from the Keychain.
+
+ */
+ public init(keyPrefix: String) {
+ self.keyPrefix = keyPrefix
+ }
+
+ /**
+
+ Stores the text value in the keychain item under the given key.
+
+ - parameter key: Key under which the text value is stored in the keychain.
+ - parameter value: Text string to be written to the keychain.
+ - parameter withAccess: Value that indicates when your app needs access to the text in the keychain item. By default the .AccessibleWhenUnlocked option is used that permits the data to be accessed only while the device is unlocked by the user.
+
+ - returns: True if the text was successfully written to the keychain.
+
+ */
+ @discardableResult
+ open func set(_ value: String, forKey key: String,
+ withAccess access: KeychainSwiftAccessOptions? = nil) -> Bool {
+
+ if let value = value.data(using: String.Encoding.utf8) {
+ return set(value, forKey: key, withAccess: access)
+ }
+
+ return false
+ }
+
+ /**
+
+ Stores the data in the keychain item under the given key.
+
+ - parameter key: Key under which the data is stored in the keychain.
+ - parameter value: Data to be written to the keychain.
+ - parameter withAccess: Value that indicates when your app needs access to the text in the keychain item. By default the .AccessibleWhenUnlocked option is used that permits the data to be accessed only while the device is unlocked by the user.
+
+ - returns: True if the text was successfully written to the keychain.
+
+ */
+ @discardableResult
+ open func set(_ value: Data, forKey key: String,
+ withAccess access: KeychainSwiftAccessOptions? = nil) -> Bool {
+
+ delete(key) // Delete any existing key before saving it
+
+ let accessible = access?.value ?? KeychainSwiftAccessOptions.defaultOption.value
+
+ let prefixedKey = keyWithPrefix(key)
+
+ var query: [String : Any] = [
+ KeychainSwiftConstants.klass : kSecClassGenericPassword,
+ KeychainSwiftConstants.attrAccount : prefixedKey,
+ KeychainSwiftConstants.valueData : value,
+ KeychainSwiftConstants.accessible : accessible
+ ]
+
+ query = addAccessGroupWhenPresent(query)
+ query = addSynchronizableIfRequired(query, addingItems: true)
+ lastQueryParameters = query
+
+ lastResultCode = SecItemAdd(query as CFDictionary, nil)
+
+ return lastResultCode == noErr
+ }
+
+ /**
+
+ Stores the boolean value in the keychain item under the given key.
+
+ - parameter key: Key under which the value is stored in the keychain.
+ - parameter value: Boolean to be written to the keychain.
+ - parameter withAccess: Value that indicates when your app needs access to the value in the keychain item. By default the .AccessibleWhenUnlocked option is used that permits the data to be accessed only while the device is unlocked by the user.
+
+ - returns: True if the value was successfully written to the keychain.
+
+ */
+ @discardableResult
+ open func set(_ value: Bool, forKey key: String,
+ withAccess access: KeychainSwiftAccessOptions? = nil) -> Bool {
+
+ let bytes: [UInt8] = value ? [1] : [0]
+ let data = Data(bytes: bytes)
+
+ return set(data, forKey: key, withAccess: access)
+ }
+
+ /**
+
+ Retrieves the text value from the keychain that corresponds to the given key.
+
+ - parameter key: The key that is used to read the keychain item.
+ - returns: The text value from the keychain. Returns nil if unable to read the item.
+
+ */
+ open func get(_ key: String) -> String? {
+ if let data = getData(key) {
+
+ if let currentString = String(data: data, encoding: .utf8) {
+ return currentString
+ }
+
+ lastResultCode = -67853 // errSecInvalidEncoding
+ }
+
+ return nil
+ }
+
+ /**
+
+ Retrieves the data from the keychain that corresponds to the given key.
+
+ - parameter key: The key that is used to read the keychain item.
+ - returns: The text value from the keychain. Returns nil if unable to read the item.
+
+ */
+ open func getData(_ key: String) -> Data? {
+ // The lock prevents the code to be run simlultaneously
+ // from multiple threads which may result in crashing
+ readLock.lock()
+ defer { readLock.unlock() }
+
+ let prefixedKey = keyWithPrefix(key)
+
+ var query: [String: Any] = [
+ KeychainSwiftConstants.klass : kSecClassGenericPassword,
+ KeychainSwiftConstants.attrAccount : prefixedKey,
+ KeychainSwiftConstants.returnData : kCFBooleanTrue,
+ KeychainSwiftConstants.matchLimit : kSecMatchLimitOne
+ ]
+
+ query = addAccessGroupWhenPresent(query)
+ query = addSynchronizableIfRequired(query, addingItems: false)
+ lastQueryParameters = query
+
+ var result: AnyObject?
+
+ lastResultCode = withUnsafeMutablePointer(to: &result) {
+ SecItemCopyMatching(query as CFDictionary, UnsafeMutablePointer($0))
+ }
+
+ if lastResultCode == noErr { return result as? Data }
+
+ return nil
+ }
+
+ /**
+
+ Retrieves the boolean value from the keychain that corresponds to the given key.
+
+ - parameter key: The key that is used to read the keychain item.
+ - returns: The boolean value from the keychain. Returns nil if unable to read the item.
+
+ */
+ open func getBool(_ key: String) -> Bool? {
+ guard let data = getData(key) else { return nil }
+ guard let firstBit = data.first else { return nil }
+ return firstBit == 1
+ }
+
+ /**
+
+ Deletes the single keychain item specified by the key.
+
+ - parameter key: The key that is used to delete the keychain item.
+ - returns: True if the item was successfully deleted.
+
+ */
+ @discardableResult
+ open func delete(_ key: String) -> Bool {
+ let prefixedKey = keyWithPrefix(key)
+
+ var query: [String: Any] = [
+ KeychainSwiftConstants.klass : kSecClassGenericPassword,
+ KeychainSwiftConstants.attrAccount : prefixedKey
+ ]
+
+ query = addAccessGroupWhenPresent(query)
+ query = addSynchronizableIfRequired(query, addingItems: false)
+ lastQueryParameters = query
+
+ lastResultCode = SecItemDelete(query as CFDictionary)
+
+ return lastResultCode == noErr
+ }
+
+ /**
+
+ Deletes all Keychain items used by the app. Note that this method deletes all items regardless of the prefix settings used for initializing the class.
+
+ - returns: True if the keychain items were successfully deleted.
+
+ */
+ @discardableResult
+ open func clear() -> Bool {
+ var query: [String: Any] = [ kSecClass as String : kSecClassGenericPassword ]
+ query = addAccessGroupWhenPresent(query)
+ query = addSynchronizableIfRequired(query, addingItems: false)
+ lastQueryParameters = query
+
+ lastResultCode = SecItemDelete(query as CFDictionary)
+
+ return lastResultCode == noErr
+ }
+
+ /// Returns the key with currently set prefix.
+ func keyWithPrefix(_ key: String) -> String {
+ return "\(keyPrefix)\(key)"
+ }
+
+ func addAccessGroupWhenPresent(_ items: [String: Any]) -> [String: Any] {
+ guard let accessGroup = accessGroup else { return items }
+
+ var result: [String: Any] = items
+ result[KeychainSwiftConstants.accessGroup] = accessGroup
+ return result
+ }
+
+ /**
+
+ Adds kSecAttrSynchronizable: kSecAttrSynchronizableAny` item to the dictionary when the `synchronizable` property is true.
+
+ - parameter items: The dictionary where the kSecAttrSynchronizable items will be added when requested.
+ - parameter addingItems: Use `true` when the dictionary will be used with `SecItemAdd` method (adding a keychain item). For getting and deleting items, use `false`.
+
+ - returns: the dictionary with kSecAttrSynchronizable item added if it was requested. Otherwise, it returns the original dictionary.
+
+ */
+ func addSynchronizableIfRequired(_ items: [String: Any], addingItems: Bool) -> [String: Any] {
+ if !synchronizable { return items }
+ var result: [String: Any] = items
+ result[KeychainSwiftConstants.attrSynchronizable] = addingItems == true ? true : kSecAttrSynchronizableAny
+ return result
+ }
+}
diff --git a/iOS/MSTG-JWT/Pods/KeychainSwift/Sources/KeychainSwiftAccessOptions.swift b/iOS/MSTG-JWT/Pods/KeychainSwift/Sources/KeychainSwiftAccessOptions.swift
new file mode 100644
index 0000000..94709d6
--- /dev/null
+++ b/iOS/MSTG-JWT/Pods/KeychainSwift/Sources/KeychainSwiftAccessOptions.swift
@@ -0,0 +1,107 @@
+import Security
+
+/**
+
+These options are used to determine when a keychain item should be readable. The default value is AccessibleWhenUnlocked.
+
+*/
+public enum KeychainSwiftAccessOptions {
+
+ /**
+
+ The data in the keychain item can be accessed only while the device is unlocked by the user.
+
+ This is recommended for items that need to be accessible only while the application is in the foreground. Items with this attribute migrate to a new device when using encrypted backups.
+
+ This is the default value for keychain items added without explicitly setting an accessibility constant.
+
+ */
+ case accessibleWhenUnlocked
+
+ /**
+
+ The data in the keychain item can be accessed only while the device is unlocked by the user.
+
+ This is recommended for items that need to be accessible only while the application is in the foreground. Items with this attribute do not migrate to a new device. Thus, after restoring from a backup of a different device, these items will not be present.
+
+ */
+ case accessibleWhenUnlockedThisDeviceOnly
+
+ /**
+
+ The data in the keychain item cannot be accessed after a restart until the device has been unlocked once by the user.
+
+ After the first unlock, the data remains accessible until the next restart. This is recommended for items that need to be accessed by background applications. Items with this attribute migrate to a new device when using encrypted backups.
+
+ */
+ case accessibleAfterFirstUnlock
+
+ /**
+
+ The data in the keychain item cannot be accessed after a restart until the device has been unlocked once by the user.
+
+ After the first unlock, the data remains accessible until the next restart. This is recommended for items that need to be accessed by background applications. Items with this attribute do not migrate to a new device. Thus, after restoring from a backup of a different device, these items will not be present.
+
+ */
+ case accessibleAfterFirstUnlockThisDeviceOnly
+
+ /**
+
+ The data in the keychain item can always be accessed regardless of whether the device is locked.
+
+ This is not recommended for application use. Items with this attribute migrate to a new device when using encrypted backups.
+
+ */
+ case accessibleAlways
+
+ /**
+
+ The data in the keychain can only be accessed when the device is unlocked. Only available if a passcode is set on the device.
+
+ This is recommended for items that only need to be accessible while the application is in the foreground. Items with this attribute never migrate to a new device. After a backup is restored to a new device, these items are missing. No items can be stored in this class on devices without a passcode. Disabling the device passcode causes all items in this class to be deleted.
+
+ */
+ case accessibleWhenPasscodeSetThisDeviceOnly
+
+ /**
+
+ The data in the keychain item can always be accessed regardless of whether the device is locked.
+
+ This is not recommended for application use. Items with this attribute do not migrate to a new device. Thus, after restoring from a backup of a different device, these items will not be present.
+
+ */
+ case accessibleAlwaysThisDeviceOnly
+
+ static var defaultOption: KeychainSwiftAccessOptions {
+ return .accessibleWhenUnlocked
+ }
+
+ var value: String {
+ switch self {
+ case .accessibleWhenUnlocked:
+ return toString(kSecAttrAccessibleWhenUnlocked)
+
+ case .accessibleWhenUnlockedThisDeviceOnly:
+ return toString(kSecAttrAccessibleWhenUnlockedThisDeviceOnly)
+
+ case .accessibleAfterFirstUnlock:
+ return toString(kSecAttrAccessibleAfterFirstUnlock)
+
+ case .accessibleAfterFirstUnlockThisDeviceOnly:
+ return toString(kSecAttrAccessibleAfterFirstUnlockThisDeviceOnly)
+
+ case .accessibleAlways:
+ return toString(kSecAttrAccessibleAlways)
+
+ case .accessibleWhenPasscodeSetThisDeviceOnly:
+ return toString(kSecAttrAccessibleWhenPasscodeSetThisDeviceOnly)
+
+ case .accessibleAlwaysThisDeviceOnly:
+ return toString(kSecAttrAccessibleAlwaysThisDeviceOnly)
+ }
+ }
+
+ func toString(_ value: CFString) -> String {
+ return KeychainSwiftConstants.toString(value)
+ }
+}
diff --git a/iOS/MSTG-JWT/Pods/KeychainSwift/Sources/TegKeychainConstants.swift b/iOS/MSTG-JWT/Pods/KeychainSwift/Sources/TegKeychainConstants.swift
new file mode 100644
index 0000000..4b6aca2
--- /dev/null
+++ b/iOS/MSTG-JWT/Pods/KeychainSwift/Sources/TegKeychainConstants.swift
@@ -0,0 +1,39 @@
+import Foundation
+import Security
+
+/// Constants used by the library
+public struct KeychainSwiftConstants {
+ /// Specifies a Keychain access group. Used for sharing Keychain items between apps.
+ public static var accessGroup: String { return toString(kSecAttrAccessGroup) }
+
+ /**
+
+ A value that indicates when your app needs access to the data in a keychain item. The default value is AccessibleWhenUnlocked. For a list of possible values, see KeychainSwiftAccessOptions.
+
+ */
+ public static var accessible: String { return toString(kSecAttrAccessible) }
+
+ /// Used for specifying a String key when setting/getting a Keychain value.
+ public static var attrAccount: String { return toString(kSecAttrAccount) }
+
+ /// Used for specifying synchronization of keychain items between devices.
+ public static var attrSynchronizable: String { return toString(kSecAttrSynchronizable) }
+
+ /// An item class key used to construct a Keychain search dictionary.
+ public static var klass: String { return toString(kSecClass) }
+
+ /// Specifies the number of values returned from the keychain. The library only supports single values.
+ public static var matchLimit: String { return toString(kSecMatchLimit) }
+
+ /// A return data type used to get the data from the Keychain.
+ public static var returnData: String { return toString(kSecReturnData) }
+
+ /// Used for specifying a value when setting a Keychain value.
+ public static var valueData: String { return toString(kSecValueData) }
+
+ static func toString(_ value: CFString) -> String {
+ return value as String
+ }
+}
+
+
diff --git a/iOS/MSTG-JWT/Pods/Manifest.lock b/iOS/MSTG-JWT/Pods/Manifest.lock
new file mode 100644
index 0000000..69af263
--- /dev/null
+++ b/iOS/MSTG-JWT/Pods/Manifest.lock
@@ -0,0 +1,24 @@
+PODS:
+ - Alamofire (4.5.1)
+ - KeychainSwift (12.0.0)
+ - SwiftyJSON (4.1.0)
+
+DEPENDENCIES:
+ - Alamofire (~> 4.3)
+ - KeychainSwift (~> 12.0)
+ - SwiftyJSON (~> 4.0)
+
+SPEC REPOS:
+ https://github.com/cocoapods/specs.git:
+ - Alamofire
+ - KeychainSwift
+ - SwiftyJSON
+
+SPEC CHECKSUMS:
+ Alamofire: 2d95912bf4c34f164fdfc335872e8c312acaea4a
+ KeychainSwift: d5e776578587ee5958ce36601df22f168f65138a
+ SwiftyJSON: c29297daf073d2aa016295d5809cdd68045c39b3
+
+PODFILE CHECKSUM: 68b0f1d95a0e874be632257bade3132ba1726c0f
+
+COCOAPODS: 1.5.3
diff --git a/iOS/MSTG-JWT/Pods/Pods.xcodeproj/project.pbxproj b/iOS/MSTG-JWT/Pods/Pods.xcodeproj/project.pbxproj
new file mode 100644
index 0000000..cb63484
--- /dev/null
+++ b/iOS/MSTG-JWT/Pods/Pods.xcodeproj/project.pbxproj
@@ -0,0 +1,1369 @@
+// !$*UTF8*$!
+{
+ archiveVersion = 1;
+ classes = {
+ };
+ objectVersion = 48;
+ objects = {
+
+/* Begin PBXBuildFile section */
+ 02C0EC8C112AFE0EE8476E62D32A9FDE /* SwiftyJSON-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = 8A86D9619E701EB082FDD146EBD0B482 /* SwiftyJSON-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ 03D16BFE8D45A8781FBAA96847CAD028 /* TegKeychainConstants.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5CF16697644772719AC73C163BA17608 /* TegKeychainConstants.swift */; };
+ 06BD10DA3A5280E5CD25E092DF92FC0E /* KeychainSwift-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = EA44D81B2990A113CA1EF4F9B726D558 /* KeychainSwift-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ 08B84702FBF6B722E6EDE9FE35DA988C /* KeychainSwift.swift in Sources */ = {isa = PBXBuildFile; fileRef = F37EF15EEFC2F56DF6DB7CA8FFFB7FBB /* KeychainSwift.swift */; };
+ 0E4AEF637F6A8E263138B6680753B68F /* SwiftyJSON-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = B20381E155B7A5220B93CB28C506B7F6 /* SwiftyJSON-dummy.m */; };
+ 1B3A8195D664A204B72F7DDB3CEC0F23 /* SwiftyJSON.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2C6D4D0DD258E4EA54F5395417A81073 /* SwiftyJSON.swift */; };
+ 1FC3FD39157C2FFFF3869A1300730086 /* SessionDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 13035241ECD0CE3DEC690E10F4209B42 /* SessionDelegate.swift */; };
+ 33688208BF8D54964F8FADBCB31E28F4 /* Pods-MSTG-JWTTests-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 1B4E5C0B7513AE849997578E25B9BD85 /* Pods-MSTG-JWTTests-dummy.m */; };
+ 36FF8853CB34A9297AFAA8F5F7456324 /* TaskDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = BC21CD6235882DC278A2062451F7E917 /* TaskDelegate.swift */; };
+ 3F260B5F091731E424E7BB9515AC3112 /* Pods-MSTG-JWT-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = B340344FE76ED1B1AF79A214486C847F /* Pods-MSTG-JWT-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ 46411E2B361A1F6E47B49B942C30196D /* Pods-MSTG-JWTUITests-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 5436C0984C28E6BB55C3B1B34574A08D /* Pods-MSTG-JWTUITests-dummy.m */; };
+ 475DC6B9B690C2D7FE60C513851A24FA /* Pods-MSTG-JWTUITests-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = EAACF9DB473C5742EC4F04490BF0336F /* Pods-MSTG-JWTUITests-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ 4E1A913EFB404FB11524718FF0298EFE /* Alamofire.swift in Sources */ = {isa = PBXBuildFile; fileRef = 98455A901E39108FE6C41597B792A01E /* Alamofire.swift */; };
+ 500C8EDA60C07B0F127C7FC385E17D38 /* Notifications.swift in Sources */ = {isa = PBXBuildFile; fileRef = 30C37F385414428179E0F2EFFBC5E4E3 /* Notifications.swift */; };
+ 52237C35642089F77DD4D723CEB25737 /* Response.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5D6F12CDE80CB1E236490362B6D1ACB5 /* Response.swift */; };
+ 58A9719584AFA2D108D9E5C585A79329 /* Validation.swift in Sources */ = {isa = PBXBuildFile; fileRef = FCED191360EC2BA65692B30433340DC7 /* Validation.swift */; };
+ 5EE5FED83B90A606A763CF1114D1D6FB /* ResponseSerialization.swift in Sources */ = {isa = PBXBuildFile; fileRef = 593740C5EF46707B1E5CA550E1E578A7 /* ResponseSerialization.swift */; };
+ 6BEA14EC335E07C7063CD1383C0C443C /* ServerTrustPolicy.swift in Sources */ = {isa = PBXBuildFile; fileRef = C44F28846725AA9791569217A292FB31 /* ServerTrustPolicy.swift */; };
+ 7068E8A7DDC1424EE8F24BC77E8746F4 /* SessionManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2CC2B66D3BF4F7819153FB99844441D4 /* SessionManager.swift */; };
+ 796177DE2762F24DAC16A709FD954838 /* ParameterEncoding.swift in Sources */ = {isa = PBXBuildFile; fileRef = B4747F9290F1D21911D3C308FAAFC021 /* ParameterEncoding.swift */; };
+ 849C1DD1F48C6592522F9056A0125C68 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 5A16F4CFC63FAC439D7A04994F579A03 /* Foundation.framework */; };
+ 89E63D515A8ECB72C958DD8CA34EEFEB /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 5A16F4CFC63FAC439D7A04994F579A03 /* Foundation.framework */; };
+ 965DACF3DC02857ECBE66C5CBA3DA5D4 /* Request.swift in Sources */ = {isa = PBXBuildFile; fileRef = D91D32905AD8FE4DA662B8E406817C43 /* Request.swift */; };
+ AD0A7E2E5F00339F9788B30DEF28A415 /* KeychainSwiftAccessOptions.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7015200CBF9DF152DCCCE39375217CA7 /* KeychainSwiftAccessOptions.swift */; };
+ B424F524BBBE34E685129945993809A8 /* Timeline.swift in Sources */ = {isa = PBXBuildFile; fileRef = EDE9CBC6A9B02873DB3CD254940EDB34 /* Timeline.swift */; };
+ B77705737566AE83ED7E448923D7FA60 /* NetworkReachabilityManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = FD3ACC35FEB039BF84ACE9BC14A953D0 /* NetworkReachabilityManager.swift */; };
+ BE4BA1EDE444A770F834605F4B65348E /* AFError.swift in Sources */ = {isa = PBXBuildFile; fileRef = C55D7B52A720B56A746E1B0AD3A4FDCB /* AFError.swift */; };
+ C5B7BD5773FDD2E505D20CD0202EA85E /* Pods-MSTG-JWT-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 09D92C150FF39B2DFA6B1C60969DA767 /* Pods-MSTG-JWT-dummy.m */; };
+ D4C3899574E9D5DF5E5DA52310560BCC /* Alamofire-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 44BCD2C7D9D9BFD68602A2B53E97F5F0 /* Alamofire-dummy.m */; };
+ D4F07D0870714576FE9E916725C0DA4F /* Pods-MSTG-JWTTests-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = DE509DDCE360A1848710319F62025E7D /* Pods-MSTG-JWTTests-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ D8EC5B74B9B5DC842F4179D19E6DE6D4 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 5A16F4CFC63FAC439D7A04994F579A03 /* Foundation.framework */; };
+ DBE6E2E4D205545E7988CFA5057C31D6 /* DispatchQueue+Alamofire.swift in Sources */ = {isa = PBXBuildFile; fileRef = BEE1F832ABFB51FE00BB4CD3F6BD36AB /* DispatchQueue+Alamofire.swift */; };
+ DD351B17744EBB28B7531FDB73348DB1 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 5A16F4CFC63FAC439D7A04994F579A03 /* Foundation.framework */; };
+ E1AD716B8B8597AF968CF2B45464D306 /* KeychainSwift-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = CAB8BA9A9D0499D2E56CADFCEABCAE6F /* KeychainSwift-dummy.m */; };
+ E364974B4FFDE5788C90008D8457D6C1 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 5A16F4CFC63FAC439D7A04994F579A03 /* Foundation.framework */; };
+ EB5C074A333A14661BC2F9AD124F0518 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 5A16F4CFC63FAC439D7A04994F579A03 /* Foundation.framework */; };
+ EF1461221681BCA12A4147900A704727 /* Alamofire-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = E274A37A907D95DFD65FA25B9FFB236B /* Alamofire-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ F9EA61D484CC15FDDAB0D8C0D26D7949 /* Result.swift in Sources */ = {isa = PBXBuildFile; fileRef = 96B2646F07A91AFFEEDD78F885DBD734 /* Result.swift */; };
+ FF9C7BC64DB23D2CED48197DE67F0335 /* MultipartFormData.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2B2CFFC01B1301CF907CDDCE6E8B3C3B /* MultipartFormData.swift */; };
+/* End PBXBuildFile section */
+
+/* Begin PBXContainerItemProxy section */
+ 00CAEE5EF60BC68D2F145C1C40CC8FAE /* PBXContainerItemProxy */ = {
+ isa = PBXContainerItemProxy;
+ containerPortal = D41D8CD98F00B204E9800998ECF8427E /* Project object */;
+ proxyType = 1;
+ remoteGlobalIDString = F77CB8641335597B5799015AC1F16B0B;
+ remoteInfo = "Pods-MSTG-JWT";
+ };
+ 03C400CC06FF9A8D9F245E85381B04E5 /* PBXContainerItemProxy */ = {
+ isa = PBXContainerItemProxy;
+ containerPortal = D41D8CD98F00B204E9800998ECF8427E /* Project object */;
+ proxyType = 1;
+ remoteGlobalIDString = E76458C58C9140B6A16D60547E68E80C;
+ remoteInfo = Alamofire;
+ };
+ 4A9023D585341B2B5FC146CE3D97F752 /* PBXContainerItemProxy */ = {
+ isa = PBXContainerItemProxy;
+ containerPortal = D41D8CD98F00B204E9800998ECF8427E /* Project object */;
+ proxyType = 1;
+ remoteGlobalIDString = F77CB8641335597B5799015AC1F16B0B;
+ remoteInfo = "Pods-MSTG-JWT";
+ };
+ 75BBF15A9F7F7BEC5689EBB7DE24212A /* PBXContainerItemProxy */ = {
+ isa = PBXContainerItemProxy;
+ containerPortal = D41D8CD98F00B204E9800998ECF8427E /* Project object */;
+ proxyType = 1;
+ remoteGlobalIDString = F22D56C144AB60AC83CE25002C8F6788;
+ remoteInfo = SwiftyJSON;
+ };
+ A5E5E3AEC0532432E6271B5B65F8E8BE /* PBXContainerItemProxy */ = {
+ isa = PBXContainerItemProxy;
+ containerPortal = D41D8CD98F00B204E9800998ECF8427E /* Project object */;
+ proxyType = 1;
+ remoteGlobalIDString = 956F9DE46491F445E8C560707D22D645;
+ remoteInfo = KeychainSwift;
+ };
+/* End PBXContainerItemProxy section */
+
+/* Begin PBXFileReference section */
+ 02861BDB6008C5D62246216343556580 /* Pods-MSTG-JWTTests-resources.sh */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.script.sh; path = "Pods-MSTG-JWTTests-resources.sh"; sourceTree = ""; };
+ 09D92C150FF39B2DFA6B1C60969DA767 /* Pods-MSTG-JWT-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "Pods-MSTG-JWT-dummy.m"; sourceTree = ""; };
+ 0D3772DDCB5725B0800B47063538072D /* Pods-MSTG-JWTUITests.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.module; path = "Pods-MSTG-JWTUITests.modulemap"; sourceTree = ""; };
+ 13035241ECD0CE3DEC690E10F4209B42 /* SessionDelegate.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = SessionDelegate.swift; path = Source/SessionDelegate.swift; sourceTree = ""; };
+ 1327C117F84602ED6F2122628F6034AD /* Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; };
+ 1589BB2DEED6589FFF43A5E148E6023C /* KeychainSwift.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; name = KeychainSwift.framework; path = KeychainSwift.framework; sourceTree = BUILT_PRODUCTS_DIR; };
+ 1B4E5C0B7513AE849997578E25B9BD85 /* Pods-MSTG-JWTTests-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "Pods-MSTG-JWTTests-dummy.m"; sourceTree = ""; };
+ 2390C85EB6CB10256F9E23857B420277 /* SwiftyJSON-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "SwiftyJSON-prefix.pch"; sourceTree = ""; };
+ 2A25E70C0B54AC8070F49C80A9FBD14E /* KeychainSwift.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = KeychainSwift.xcconfig; sourceTree = ""; };
+ 2B2CFFC01B1301CF907CDDCE6E8B3C3B /* MultipartFormData.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = MultipartFormData.swift; path = Source/MultipartFormData.swift; sourceTree = ""; };
+ 2C6D4D0DD258E4EA54F5395417A81073 /* SwiftyJSON.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = SwiftyJSON.swift; path = Source/SwiftyJSON.swift; sourceTree = ""; };
+ 2CC2B66D3BF4F7819153FB99844441D4 /* SessionManager.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = SessionManager.swift; path = Source/SessionManager.swift; sourceTree = ""; };
+ 2D79B848F00B02023DDE719BD0C6E7E3 /* SwiftyJSON.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.module; path = SwiftyJSON.modulemap; sourceTree = ""; };
+ 2E7E259FC3226877237E73A8B3D42137 /* Pods-MSTG-JWTUITests-acknowledgements.markdown */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text; path = "Pods-MSTG-JWTUITests-acknowledgements.markdown"; sourceTree = ""; };
+ 2F93E00922FC466B8B89FE0DD5FAF22F /* Pods-MSTG-JWT.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-MSTG-JWT.release.xcconfig"; sourceTree = ""; };
+ 30C37F385414428179E0F2EFFBC5E4E3 /* Notifications.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Notifications.swift; path = Source/Notifications.swift; sourceTree = ""; };
+ 3496A11BA779774370ABD94DD76D144F /* Pods-MSTG-JWT-frameworks.sh */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.script.sh; path = "Pods-MSTG-JWT-frameworks.sh"; sourceTree = ""; };
+ 416D2391AC645977F5F2ED690935C07A /* Pods-MSTG-JWTTests-acknowledgements.markdown */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text; path = "Pods-MSTG-JWTTests-acknowledgements.markdown"; sourceTree = ""; };
+ 44BCD2C7D9D9BFD68602A2B53E97F5F0 /* Alamofire-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "Alamofire-dummy.m"; sourceTree = ""; };
+ 460111BE25EDBD29D360908532D59D5E /* Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; };
+ 4660CC14EA8C306C88E59FC2FC41D30C /* Pods-MSTG-JWT-acknowledgements.markdown */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text; path = "Pods-MSTG-JWT-acknowledgements.markdown"; sourceTree = ""; };
+ 4C6157A9DE3BDD573A82E8A235A775AE /* Pods-MSTG-JWTTests-frameworks.sh */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.script.sh; path = "Pods-MSTG-JWTTests-frameworks.sh"; sourceTree = ""; };
+ 53EC6893534EDB923B80465768C719AD /* SwiftyJSON.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; name = SwiftyJSON.framework; path = SwiftyJSON.framework; sourceTree = BUILT_PRODUCTS_DIR; };
+ 5436C0984C28E6BB55C3B1B34574A08D /* Pods-MSTG-JWTUITests-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "Pods-MSTG-JWTUITests-dummy.m"; sourceTree = ""; };
+ 593740C5EF46707B1E5CA550E1E578A7 /* ResponseSerialization.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ResponseSerialization.swift; path = Source/ResponseSerialization.swift; sourceTree = ""; };
+ 5972623CC80D770710B2CD33E6CAEC1A /* KeychainSwift-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "KeychainSwift-prefix.pch"; sourceTree = ""; };
+ 5A16F4CFC63FAC439D7A04994F579A03 /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS11.3.sdk/System/Library/Frameworks/Foundation.framework; sourceTree = DEVELOPER_DIR; };
+ 5CF16697644772719AC73C163BA17608 /* TegKeychainConstants.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = TegKeychainConstants.swift; path = Sources/TegKeychainConstants.swift; sourceTree = ""; };
+ 5D6F12CDE80CB1E236490362B6D1ACB5 /* Response.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Response.swift; path = Source/Response.swift; sourceTree = ""; };
+ 61D8110D08C1378F4241206F3E1D8329 /* Alamofire-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "Alamofire-prefix.pch"; sourceTree = ""; };
+ 65C12069EE030E14ACCE2401B642FD4D /* Alamofire.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; name = Alamofire.framework; path = Alamofire.framework; sourceTree = BUILT_PRODUCTS_DIR; };
+ 6891A66754922CE742948AB745825933 /* Pods-MSTG-JWTUITests.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-MSTG-JWTUITests.release.xcconfig"; sourceTree = ""; };
+ 6BAAEBEB1510E31C4C6FD1C90A513DB9 /* Pods-MSTG-JWT.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.module; path = "Pods-MSTG-JWT.modulemap"; sourceTree = ""; };
+ 6EA2F282AC278484FEEDE19816D29305 /* Pods-MSTG-JWT-acknowledgements.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "Pods-MSTG-JWT-acknowledgements.plist"; sourceTree = ""; };
+ 7015200CBF9DF152DCCCE39375217CA7 /* KeychainSwiftAccessOptions.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = KeychainSwiftAccessOptions.swift; path = Sources/KeychainSwiftAccessOptions.swift; sourceTree = ""; };
+ 8A49F8517274FF0034516938AB66D97B /* Pods_MSTG_JWTTests.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; name = Pods_MSTG_JWTTests.framework; path = "Pods-MSTG-JWTTests.framework"; sourceTree = BUILT_PRODUCTS_DIR; };
+ 8A86D9619E701EB082FDD146EBD0B482 /* SwiftyJSON-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "SwiftyJSON-umbrella.h"; sourceTree = ""; };
+ 8C5F2F771D2BBF3E8054C74729440B02 /* Alamofire.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.module; path = Alamofire.modulemap; sourceTree = ""; };
+ 93A4A3777CF96A4AAC1D13BA6DCCEA73 /* Podfile */ = {isa = PBXFileReference; explicitFileType = text.script.ruby; includeInIndex = 1; lastKnownFileType = text; name = Podfile; path = ../Podfile; sourceTree = SOURCE_ROOT; xcLanguageSpecificationIdentifier = xcode.lang.ruby; };
+ 96B2646F07A91AFFEEDD78F885DBD734 /* Result.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Result.swift; path = Source/Result.swift; sourceTree = ""; };
+ 98455A901E39108FE6C41597B792A01E /* Alamofire.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Alamofire.swift; path = Source/Alamofire.swift; sourceTree = ""; };
+ 9FB691227C7D392036CAEED2856D1A64 /* Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; };
+ A018B0569D3558EC1AC6E5AAB8EDDB6F /* Pods-MSTG-JWTTests.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-MSTG-JWTTests.release.xcconfig"; sourceTree = ""; };
+ A1D28A21456CFE832D0F10B94390BCF5 /* Alamofire.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = Alamofire.xcconfig; sourceTree = ""; };
+ A4BB26C522F995598EC6F5915272A33D /* Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; };
+ AE2ED0D362B86DEA2B008CF813E1D73A /* Pods-MSTG-JWTTests.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-MSTG-JWTTests.debug.xcconfig"; sourceTree = ""; };
+ B20381E155B7A5220B93CB28C506B7F6 /* SwiftyJSON-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "SwiftyJSON-dummy.m"; sourceTree = ""; };
+ B212BF14726143C37E9BA30678A78A3F /* Pods_MSTG_JWT.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; name = Pods_MSTG_JWT.framework; path = "Pods-MSTG-JWT.framework"; sourceTree = BUILT_PRODUCTS_DIR; };
+ B340344FE76ED1B1AF79A214486C847F /* Pods-MSTG-JWT-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "Pods-MSTG-JWT-umbrella.h"; sourceTree = ""; };
+ B4747F9290F1D21911D3C308FAAFC021 /* ParameterEncoding.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ParameterEncoding.swift; path = Source/ParameterEncoding.swift; sourceTree = ""; };
+ B8ECFEEEACFF9C474D8A14A8BBB6D490 /* Pods-MSTG-JWTUITests-acknowledgements.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "Pods-MSTG-JWTUITests-acknowledgements.plist"; sourceTree = ""; };
+ BC21CD6235882DC278A2062451F7E917 /* TaskDelegate.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = TaskDelegate.swift; path = Source/TaskDelegate.swift; sourceTree = ""; };
+ BEE1F832ABFB51FE00BB4CD3F6BD36AB /* DispatchQueue+Alamofire.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "DispatchQueue+Alamofire.swift"; path = "Source/DispatchQueue+Alamofire.swift"; sourceTree = ""; };
+ C3BB4BF5C54BF0183DF3FE9571E6B4BF /* SwiftyJSON.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = SwiftyJSON.xcconfig; sourceTree = ""; };
+ C44F28846725AA9791569217A292FB31 /* ServerTrustPolicy.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ServerTrustPolicy.swift; path = Source/ServerTrustPolicy.swift; sourceTree = ""; };
+ C55D7B52A720B56A746E1B0AD3A4FDCB /* AFError.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = AFError.swift; path = Source/AFError.swift; sourceTree = ""; };
+ C62483A5277D9C1453C4A1B25191F48E /* Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; };
+ CAB8BA9A9D0499D2E56CADFCEABCAE6F /* KeychainSwift-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "KeychainSwift-dummy.m"; sourceTree = ""; };
+ CDACE31D828BBC3ACF18E1F13924EEF9 /* Pods-MSTG-JWTTests.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.module; path = "Pods-MSTG-JWTTests.modulemap"; sourceTree = ""; };
+ D0FDC8624575F37DEF02423B1D3716FF /* Pods-MSTG-JWTTests-acknowledgements.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "Pods-MSTG-JWTTests-acknowledgements.plist"; sourceTree = ""; };
+ D814730BCFD41BA3F0D121384B8EEC53 /* Pods-MSTG-JWTUITests.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-MSTG-JWTUITests.debug.xcconfig"; sourceTree = ""; };
+ D88E2224BFE9D70677D7513DC4E770BD /* Pods_MSTG_JWTUITests.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; name = Pods_MSTG_JWTUITests.framework; path = "Pods-MSTG-JWTUITests.framework"; sourceTree = BUILT_PRODUCTS_DIR; };
+ D91D32905AD8FE4DA662B8E406817C43 /* Request.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Request.swift; path = Source/Request.swift; sourceTree = ""; };
+ DBE6CECA0E3143AA509DA0D766C3DCBC /* Pods-MSTG-JWTUITests-frameworks.sh */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.script.sh; path = "Pods-MSTG-JWTUITests-frameworks.sh"; sourceTree = ""; };
+ DD2971EDCFEA07594769B94513BA699F /* Pods-MSTG-JWTUITests-resources.sh */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.script.sh; path = "Pods-MSTG-JWTUITests-resources.sh"; sourceTree = ""; };
+ DE509DDCE360A1848710319F62025E7D /* Pods-MSTG-JWTTests-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "Pods-MSTG-JWTTests-umbrella.h"; sourceTree = ""; };
+ DEFB5BA280620D22825062D43F0400DC /* Pods-MSTG-JWT.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-MSTG-JWT.debug.xcconfig"; sourceTree = ""; };
+ E274A37A907D95DFD65FA25B9FFB236B /* Alamofire-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "Alamofire-umbrella.h"; sourceTree = ""; };
+ EA44D81B2990A113CA1EF4F9B726D558 /* KeychainSwift-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "KeychainSwift-umbrella.h"; sourceTree = ""; };
+ EAACF9DB473C5742EC4F04490BF0336F /* Pods-MSTG-JWTUITests-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "Pods-MSTG-JWTUITests-umbrella.h"; sourceTree = ""; };
+ EDE9CBC6A9B02873DB3CD254940EDB34 /* Timeline.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Timeline.swift; path = Source/Timeline.swift; sourceTree = ""; };
+ F318229D9EF8CCDBC3486CCFB246B0B6 /* Pods-MSTG-JWT-resources.sh */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.script.sh; path = "Pods-MSTG-JWT-resources.sh"; sourceTree = ""; };
+ F37EF15EEFC2F56DF6DB7CA8FFFB7FBB /* KeychainSwift.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = KeychainSwift.swift; path = Sources/KeychainSwift.swift; sourceTree = ""; };
+ F78A087583CFA46F36E84A31410FFF31 /* Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; };
+ FCED191360EC2BA65692B30433340DC7 /* Validation.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Validation.swift; path = Source/Validation.swift; sourceTree = ""; };
+ FD3ACC35FEB039BF84ACE9BC14A953D0 /* NetworkReachabilityManager.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = NetworkReachabilityManager.swift; path = Source/NetworkReachabilityManager.swift; sourceTree = ""; };
+ FE26AD6866BE7BE4113F525A67D1658B /* KeychainSwift.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.module; path = KeychainSwift.modulemap; sourceTree = ""; };
+/* End PBXFileReference section */
+
+/* Begin PBXFrameworksBuildPhase section */
+ 0AAC591ACFF50E9BE309B24DD77235F5 /* Frameworks */ = {
+ isa = PBXFrameworksBuildPhase;
+ buildActionMask = 2147483647;
+ files = (
+ 849C1DD1F48C6592522F9056A0125C68 /* Foundation.framework in Frameworks */,
+ );
+ runOnlyForDeploymentPostprocessing = 0;
+ };
+ 41240BBC35EB0D784725997254987FE4 /* Frameworks */ = {
+ isa = PBXFrameworksBuildPhase;
+ buildActionMask = 2147483647;
+ files = (
+ 89E63D515A8ECB72C958DD8CA34EEFEB /* Foundation.framework in Frameworks */,
+ );
+ runOnlyForDeploymentPostprocessing = 0;
+ };
+ 4A0604F59A83748E0196EB7FC64011BC /* Frameworks */ = {
+ isa = PBXFrameworksBuildPhase;
+ buildActionMask = 2147483647;
+ files = (
+ DD351B17744EBB28B7531FDB73348DB1 /* Foundation.framework in Frameworks */,
+ );
+ runOnlyForDeploymentPostprocessing = 0;
+ };
+ 6E8AF668A2161F7D6F680F721DB65D2D /* Frameworks */ = {
+ isa = PBXFrameworksBuildPhase;
+ buildActionMask = 2147483647;
+ files = (
+ D8EC5B74B9B5DC842F4179D19E6DE6D4 /* Foundation.framework in Frameworks */,
+ );
+ runOnlyForDeploymentPostprocessing = 0;
+ };
+ 71725AD62CB66D53E9AB5221CC01991C /* Frameworks */ = {
+ isa = PBXFrameworksBuildPhase;
+ buildActionMask = 2147483647;
+ files = (
+ E364974B4FFDE5788C90008D8457D6C1 /* Foundation.framework in Frameworks */,
+ );
+ runOnlyForDeploymentPostprocessing = 0;
+ };
+ 8748600C705F0E83E30FF871E0E046E1 /* Frameworks */ = {
+ isa = PBXFrameworksBuildPhase;
+ buildActionMask = 2147483647;
+ files = (
+ EB5C074A333A14661BC2F9AD124F0518 /* Foundation.framework in Frameworks */,
+ );
+ runOnlyForDeploymentPostprocessing = 0;
+ };
+/* End PBXFrameworksBuildPhase section */
+
+/* Begin PBXGroup section */
+ 1D806C263D68B5BD770B2E46D78B2239 /* SwiftyJSON */ = {
+ isa = PBXGroup;
+ children = (
+ 2C6D4D0DD258E4EA54F5395417A81073 /* SwiftyJSON.swift */,
+ 932F16FE472B9C27A50EE1612A7F5D65 /* Support Files */,
+ );
+ name = SwiftyJSON;
+ path = SwiftyJSON;
+ sourceTree = "";
+ };
+ 5E0D919E635D23B70123790B8308F8EF /* iOS */ = {
+ isa = PBXGroup;
+ children = (
+ 5A16F4CFC63FAC439D7A04994F579A03 /* Foundation.framework */,
+ );
+ name = iOS;
+ sourceTree = "";
+ };
+ 6D0185A84384178148E8A1110EE151BB /* Alamofire */ = {
+ isa = PBXGroup;
+ children = (
+ C55D7B52A720B56A746E1B0AD3A4FDCB /* AFError.swift */,
+ 98455A901E39108FE6C41597B792A01E /* Alamofire.swift */,
+ BEE1F832ABFB51FE00BB4CD3F6BD36AB /* DispatchQueue+Alamofire.swift */,
+ 2B2CFFC01B1301CF907CDDCE6E8B3C3B /* MultipartFormData.swift */,
+ FD3ACC35FEB039BF84ACE9BC14A953D0 /* NetworkReachabilityManager.swift */,
+ 30C37F385414428179E0F2EFFBC5E4E3 /* Notifications.swift */,
+ B4747F9290F1D21911D3C308FAAFC021 /* ParameterEncoding.swift */,
+ D91D32905AD8FE4DA662B8E406817C43 /* Request.swift */,
+ 5D6F12CDE80CB1E236490362B6D1ACB5 /* Response.swift */,
+ 593740C5EF46707B1E5CA550E1E578A7 /* ResponseSerialization.swift */,
+ 96B2646F07A91AFFEEDD78F885DBD734 /* Result.swift */,
+ C44F28846725AA9791569217A292FB31 /* ServerTrustPolicy.swift */,
+ 13035241ECD0CE3DEC690E10F4209B42 /* SessionDelegate.swift */,
+ 2CC2B66D3BF4F7819153FB99844441D4 /* SessionManager.swift */,
+ BC21CD6235882DC278A2062451F7E917 /* TaskDelegate.swift */,
+ EDE9CBC6A9B02873DB3CD254940EDB34 /* Timeline.swift */,
+ FCED191360EC2BA65692B30433340DC7 /* Validation.swift */,
+ B88F97BB2B53AD9C36669262A3CF6266 /* Support Files */,
+ );
+ name = Alamofire;
+ path = Alamofire;
+ sourceTree = "";
+ };
+ 727331A60C5B6AA65BEC3F0A5F039846 /* Pods-MSTG-JWTUITests */ = {
+ isa = PBXGroup;
+ children = (
+ A4BB26C522F995598EC6F5915272A33D /* Info.plist */,
+ 0D3772DDCB5725B0800B47063538072D /* Pods-MSTG-JWTUITests.modulemap */,
+ 2E7E259FC3226877237E73A8B3D42137 /* Pods-MSTG-JWTUITests-acknowledgements.markdown */,
+ B8ECFEEEACFF9C474D8A14A8BBB6D490 /* Pods-MSTG-JWTUITests-acknowledgements.plist */,
+ 5436C0984C28E6BB55C3B1B34574A08D /* Pods-MSTG-JWTUITests-dummy.m */,
+ DBE6CECA0E3143AA509DA0D766C3DCBC /* Pods-MSTG-JWTUITests-frameworks.sh */,
+ DD2971EDCFEA07594769B94513BA699F /* Pods-MSTG-JWTUITests-resources.sh */,
+ EAACF9DB473C5742EC4F04490BF0336F /* Pods-MSTG-JWTUITests-umbrella.h */,
+ D814730BCFD41BA3F0D121384B8EEC53 /* Pods-MSTG-JWTUITests.debug.xcconfig */,
+ 6891A66754922CE742948AB745825933 /* Pods-MSTG-JWTUITests.release.xcconfig */,
+ );
+ name = "Pods-MSTG-JWTUITests";
+ path = "Target Support Files/Pods-MSTG-JWTUITests";
+ sourceTree = "";
+ };
+ 73DC03069E44E1F730824D55221445FB /* Pods-MSTG-JWTTests */ = {
+ isa = PBXGroup;
+ children = (
+ 9FB691227C7D392036CAEED2856D1A64 /* Info.plist */,
+ CDACE31D828BBC3ACF18E1F13924EEF9 /* Pods-MSTG-JWTTests.modulemap */,
+ 416D2391AC645977F5F2ED690935C07A /* Pods-MSTG-JWTTests-acknowledgements.markdown */,
+ D0FDC8624575F37DEF02423B1D3716FF /* Pods-MSTG-JWTTests-acknowledgements.plist */,
+ 1B4E5C0B7513AE849997578E25B9BD85 /* Pods-MSTG-JWTTests-dummy.m */,
+ 4C6157A9DE3BDD573A82E8A235A775AE /* Pods-MSTG-JWTTests-frameworks.sh */,
+ 02861BDB6008C5D62246216343556580 /* Pods-MSTG-JWTTests-resources.sh */,
+ DE509DDCE360A1848710319F62025E7D /* Pods-MSTG-JWTTests-umbrella.h */,
+ AE2ED0D362B86DEA2B008CF813E1D73A /* Pods-MSTG-JWTTests.debug.xcconfig */,
+ A018B0569D3558EC1AC6E5AAB8EDDB6F /* Pods-MSTG-JWTTests.release.xcconfig */,
+ );
+ name = "Pods-MSTG-JWTTests";
+ path = "Target Support Files/Pods-MSTG-JWTTests";
+ sourceTree = "";
+ };
+ 7DB346D0F39D3F0E887471402A8071AB = {
+ isa = PBXGroup;
+ children = (
+ 93A4A3777CF96A4AAC1D13BA6DCCEA73 /* Podfile */,
+ BC3CA7F9E30CC8F7E2DD044DD34432FC /* Frameworks */,
+ 8A1FCE6C3E59AA23D32C7DA42DEAF6F3 /* Pods */,
+ 881AC0644D33916276CFDD08F4724482 /* Products */,
+ D85BFEB4B67E897FC2B950F776158541 /* Targets Support Files */,
+ );
+ sourceTree = "";
+ };
+ 881AC0644D33916276CFDD08F4724482 /* Products */ = {
+ isa = PBXGroup;
+ children = (
+ 65C12069EE030E14ACCE2401B642FD4D /* Alamofire.framework */,
+ 1589BB2DEED6589FFF43A5E148E6023C /* KeychainSwift.framework */,
+ B212BF14726143C37E9BA30678A78A3F /* Pods_MSTG_JWT.framework */,
+ 8A49F8517274FF0034516938AB66D97B /* Pods_MSTG_JWTTests.framework */,
+ D88E2224BFE9D70677D7513DC4E770BD /* Pods_MSTG_JWTUITests.framework */,
+ 53EC6893534EDB923B80465768C719AD /* SwiftyJSON.framework */,
+ );
+ name = Products;
+ sourceTree = "";
+ };
+ 8A1FCE6C3E59AA23D32C7DA42DEAF6F3 /* Pods */ = {
+ isa = PBXGroup;
+ children = (
+ 6D0185A84384178148E8A1110EE151BB /* Alamofire */,
+ D45DF89EA0E61EA3BFC7736D9CAC6CD7 /* KeychainSwift */,
+ 1D806C263D68B5BD770B2E46D78B2239 /* SwiftyJSON */,
+ );
+ name = Pods;
+ sourceTree = "";
+ };
+ 932F16FE472B9C27A50EE1612A7F5D65 /* Support Files */ = {
+ isa = PBXGroup;
+ children = (
+ F78A087583CFA46F36E84A31410FFF31 /* Info.plist */,
+ 2D79B848F00B02023DDE719BD0C6E7E3 /* SwiftyJSON.modulemap */,
+ C3BB4BF5C54BF0183DF3FE9571E6B4BF /* SwiftyJSON.xcconfig */,
+ B20381E155B7A5220B93CB28C506B7F6 /* SwiftyJSON-dummy.m */,
+ 2390C85EB6CB10256F9E23857B420277 /* SwiftyJSON-prefix.pch */,
+ 8A86D9619E701EB082FDD146EBD0B482 /* SwiftyJSON-umbrella.h */,
+ );
+ name = "Support Files";
+ path = "../Target Support Files/SwiftyJSON";
+ sourceTree = "";
+ };
+ 973BD5FEF3D541AF3C6EB5492D5FA9AE /* Pods-MSTG-JWT */ = {
+ isa = PBXGroup;
+ children = (
+ 460111BE25EDBD29D360908532D59D5E /* Info.plist */,
+ 6BAAEBEB1510E31C4C6FD1C90A513DB9 /* Pods-MSTG-JWT.modulemap */,
+ 4660CC14EA8C306C88E59FC2FC41D30C /* Pods-MSTG-JWT-acknowledgements.markdown */,
+ 6EA2F282AC278484FEEDE19816D29305 /* Pods-MSTG-JWT-acknowledgements.plist */,
+ 09D92C150FF39B2DFA6B1C60969DA767 /* Pods-MSTG-JWT-dummy.m */,
+ 3496A11BA779774370ABD94DD76D144F /* Pods-MSTG-JWT-frameworks.sh */,
+ F318229D9EF8CCDBC3486CCFB246B0B6 /* Pods-MSTG-JWT-resources.sh */,
+ B340344FE76ED1B1AF79A214486C847F /* Pods-MSTG-JWT-umbrella.h */,
+ DEFB5BA280620D22825062D43F0400DC /* Pods-MSTG-JWT.debug.xcconfig */,
+ 2F93E00922FC466B8B89FE0DD5FAF22F /* Pods-MSTG-JWT.release.xcconfig */,
+ );
+ name = "Pods-MSTG-JWT";
+ path = "Target Support Files/Pods-MSTG-JWT";
+ sourceTree = "";
+ };
+ B88F97BB2B53AD9C36669262A3CF6266 /* Support Files */ = {
+ isa = PBXGroup;
+ children = (
+ 8C5F2F771D2BBF3E8054C74729440B02 /* Alamofire.modulemap */,
+ A1D28A21456CFE832D0F10B94390BCF5 /* Alamofire.xcconfig */,
+ 44BCD2C7D9D9BFD68602A2B53E97F5F0 /* Alamofire-dummy.m */,
+ 61D8110D08C1378F4241206F3E1D8329 /* Alamofire-prefix.pch */,
+ E274A37A907D95DFD65FA25B9FFB236B /* Alamofire-umbrella.h */,
+ C62483A5277D9C1453C4A1B25191F48E /* Info.plist */,
+ );
+ name = "Support Files";
+ path = "../Target Support Files/Alamofire";
+ sourceTree = "";
+ };
+ BC3CA7F9E30CC8F7E2DD044DD34432FC /* Frameworks */ = {
+ isa = PBXGroup;
+ children = (
+ 5E0D919E635D23B70123790B8308F8EF /* iOS */,
+ );
+ name = Frameworks;
+ sourceTree = "";
+ };
+ CC2353FD742D5C0D7AC89D4146FEDE13 /* Support Files */ = {
+ isa = PBXGroup;
+ children = (
+ 1327C117F84602ED6F2122628F6034AD /* Info.plist */,
+ FE26AD6866BE7BE4113F525A67D1658B /* KeychainSwift.modulemap */,
+ 2A25E70C0B54AC8070F49C80A9FBD14E /* KeychainSwift.xcconfig */,
+ CAB8BA9A9D0499D2E56CADFCEABCAE6F /* KeychainSwift-dummy.m */,
+ 5972623CC80D770710B2CD33E6CAEC1A /* KeychainSwift-prefix.pch */,
+ EA44D81B2990A113CA1EF4F9B726D558 /* KeychainSwift-umbrella.h */,
+ );
+ name = "Support Files";
+ path = "../Target Support Files/KeychainSwift";
+ sourceTree = "";
+ };
+ D45DF89EA0E61EA3BFC7736D9CAC6CD7 /* KeychainSwift */ = {
+ isa = PBXGroup;
+ children = (
+ F37EF15EEFC2F56DF6DB7CA8FFFB7FBB /* KeychainSwift.swift */,
+ 7015200CBF9DF152DCCCE39375217CA7 /* KeychainSwiftAccessOptions.swift */,
+ 5CF16697644772719AC73C163BA17608 /* TegKeychainConstants.swift */,
+ CC2353FD742D5C0D7AC89D4146FEDE13 /* Support Files */,
+ );
+ name = KeychainSwift;
+ path = KeychainSwift;
+ sourceTree = "";
+ };
+ D85BFEB4B67E897FC2B950F776158541 /* Targets Support Files */ = {
+ isa = PBXGroup;
+ children = (
+ 973BD5FEF3D541AF3C6EB5492D5FA9AE /* Pods-MSTG-JWT */,
+ 73DC03069E44E1F730824D55221445FB /* Pods-MSTG-JWTTests */,
+ 727331A60C5B6AA65BEC3F0A5F039846 /* Pods-MSTG-JWTUITests */,
+ );
+ name = "Targets Support Files";
+ sourceTree = "";
+ };
+/* End PBXGroup section */
+
+/* Begin PBXHeadersBuildPhase section */
+ 18AB0B24FEF3B3437405C9B527B6D741 /* Headers */ = {
+ isa = PBXHeadersBuildPhase;
+ buildActionMask = 2147483647;
+ files = (
+ D4F07D0870714576FE9E916725C0DA4F /* Pods-MSTG-JWTTests-umbrella.h in Headers */,
+ );
+ runOnlyForDeploymentPostprocessing = 0;
+ };
+ 2280EAF709DF7A54DA302A6BBDAC5350 /* Headers */ = {
+ isa = PBXHeadersBuildPhase;
+ buildActionMask = 2147483647;
+ files = (
+ 02C0EC8C112AFE0EE8476E62D32A9FDE /* SwiftyJSON-umbrella.h in Headers */,
+ );
+ runOnlyForDeploymentPostprocessing = 0;
+ };
+ 574A45163D32819F5B3AC47E25C0C459 /* Headers */ = {
+ isa = PBXHeadersBuildPhase;
+ buildActionMask = 2147483647;
+ files = (
+ 3F260B5F091731E424E7BB9515AC3112 /* Pods-MSTG-JWT-umbrella.h in Headers */,
+ );
+ runOnlyForDeploymentPostprocessing = 0;
+ };
+ A6A607506FEAAC7C41268D3E5CF4E5FE /* Headers */ = {
+ isa = PBXHeadersBuildPhase;
+ buildActionMask = 2147483647;
+ files = (
+ EF1461221681BCA12A4147900A704727 /* Alamofire-umbrella.h in Headers */,
+ );
+ runOnlyForDeploymentPostprocessing = 0;
+ };
+ BB2DCB2E86010F5561713B31C97D98F4 /* Headers */ = {
+ isa = PBXHeadersBuildPhase;
+ buildActionMask = 2147483647;
+ files = (
+ 06BD10DA3A5280E5CD25E092DF92FC0E /* KeychainSwift-umbrella.h in Headers */,
+ );
+ runOnlyForDeploymentPostprocessing = 0;
+ };
+ C8A5D15EF1E1579A496CC72A90949E6E /* Headers */ = {
+ isa = PBXHeadersBuildPhase;
+ buildActionMask = 2147483647;
+ files = (
+ 475DC6B9B690C2D7FE60C513851A24FA /* Pods-MSTG-JWTUITests-umbrella.h in Headers */,
+ );
+ runOnlyForDeploymentPostprocessing = 0;
+ };
+/* End PBXHeadersBuildPhase section */
+
+/* Begin PBXNativeTarget section */
+ 5AB80F3CD7D2B857763ED0E2AB866E77 /* Pods-MSTG-JWTTests */ = {
+ isa = PBXNativeTarget;
+ buildConfigurationList = 5D22864F93C614C1E8F958F37D1823F4 /* Build configuration list for PBXNativeTarget "Pods-MSTG-JWTTests" */;
+ buildPhases = (
+ 18AB0B24FEF3B3437405C9B527B6D741 /* Headers */,
+ DD36E131DE1E797A8F6F7197C85C3899 /* Sources */,
+ 71725AD62CB66D53E9AB5221CC01991C /* Frameworks */,
+ B81BE6CCE318D6466B98D261459A8584 /* Resources */,
+ );
+ buildRules = (
+ );
+ dependencies = (
+ C5B81B21ECC08AD1514F1AEB98C25B15 /* PBXTargetDependency */,
+ );
+ name = "Pods-MSTG-JWTTests";
+ productName = "Pods-MSTG-JWTTests";
+ productReference = 8A49F8517274FF0034516938AB66D97B /* Pods_MSTG_JWTTests.framework */;
+ productType = "com.apple.product-type.framework";
+ };
+ 956F9DE46491F445E8C560707D22D645 /* KeychainSwift */ = {
+ isa = PBXNativeTarget;
+ buildConfigurationList = C6C058B7945849048A5415DE4179C7A8 /* Build configuration list for PBXNativeTarget "KeychainSwift" */;
+ buildPhases = (
+ BB2DCB2E86010F5561713B31C97D98F4 /* Headers */,
+ 8A67707D5726C3B1C10240F36DF8506C /* Sources */,
+ 41240BBC35EB0D784725997254987FE4 /* Frameworks */,
+ 33FAB174B24954BF8071CAFB4C3B2871 /* Resources */,
+ );
+ buildRules = (
+ );
+ dependencies = (
+ );
+ name = KeychainSwift;
+ productName = KeychainSwift;
+ productReference = 1589BB2DEED6589FFF43A5E148E6023C /* KeychainSwift.framework */;
+ productType = "com.apple.product-type.framework";
+ };
+ E4E5DDDF4A6897957F79886B33E94FE4 /* Pods-MSTG-JWTUITests */ = {
+ isa = PBXNativeTarget;
+ buildConfigurationList = C3C20285A51A3786B9EF5510756291FE /* Build configuration list for PBXNativeTarget "Pods-MSTG-JWTUITests" */;
+ buildPhases = (
+ C8A5D15EF1E1579A496CC72A90949E6E /* Headers */,
+ 2C739BAFBD570D3B6911185CBFA6A332 /* Sources */,
+ 8748600C705F0E83E30FF871E0E046E1 /* Frameworks */,
+ 4551C7D07064738F14CB1641CB4736C8 /* Resources */,
+ );
+ buildRules = (
+ );
+ dependencies = (
+ F02A4213D0979095220A6FDE96D0843C /* PBXTargetDependency */,
+ );
+ name = "Pods-MSTG-JWTUITests";
+ productName = "Pods-MSTG-JWTUITests";
+ productReference = D88E2224BFE9D70677D7513DC4E770BD /* Pods_MSTG_JWTUITests.framework */;
+ productType = "com.apple.product-type.framework";
+ };
+ E76458C58C9140B6A16D60547E68E80C /* Alamofire */ = {
+ isa = PBXNativeTarget;
+ buildConfigurationList = 427F0F003A1AD80AE00155AFCDEFAC20 /* Build configuration list for PBXNativeTarget "Alamofire" */;
+ buildPhases = (
+ A6A607506FEAAC7C41268D3E5CF4E5FE /* Headers */,
+ CC399CEC576B42C962CEB290481CAF95 /* Sources */,
+ 6E8AF668A2161F7D6F680F721DB65D2D /* Frameworks */,
+ 3DDB7E21141D7764AE4658D5B6AFF8C6 /* Resources */,
+ );
+ buildRules = (
+ );
+ dependencies = (
+ );
+ name = Alamofire;
+ productName = Alamofire;
+ productReference = 65C12069EE030E14ACCE2401B642FD4D /* Alamofire.framework */;
+ productType = "com.apple.product-type.framework";
+ };
+ F22D56C144AB60AC83CE25002C8F6788 /* SwiftyJSON */ = {
+ isa = PBXNativeTarget;
+ buildConfigurationList = 98D88FF0193E326D7F8A81C65F0BF234 /* Build configuration list for PBXNativeTarget "SwiftyJSON" */;
+ buildPhases = (
+ 2280EAF709DF7A54DA302A6BBDAC5350 /* Headers */,
+ 68FE938A61C3336CFF8B4983145B06BA /* Sources */,
+ 4A0604F59A83748E0196EB7FC64011BC /* Frameworks */,
+ D6E6809E56337B071D7B830AE10A7847 /* Resources */,
+ );
+ buildRules = (
+ );
+ dependencies = (
+ );
+ name = SwiftyJSON;
+ productName = SwiftyJSON;
+ productReference = 53EC6893534EDB923B80465768C719AD /* SwiftyJSON.framework */;
+ productType = "com.apple.product-type.framework";
+ };
+ F77CB8641335597B5799015AC1F16B0B /* Pods-MSTG-JWT */ = {
+ isa = PBXNativeTarget;
+ buildConfigurationList = C5F1BBB736267231E266CB5BD366553C /* Build configuration list for PBXNativeTarget "Pods-MSTG-JWT" */;
+ buildPhases = (
+ 574A45163D32819F5B3AC47E25C0C459 /* Headers */,
+ 7588F92B2B47ABE539365FA4C3086C8C /* Sources */,
+ 0AAC591ACFF50E9BE309B24DD77235F5 /* Frameworks */,
+ AE492A725586B63AFE22A5CFE1B736B7 /* Resources */,
+ );
+ buildRules = (
+ );
+ dependencies = (
+ 60226A736FCABDFD51C307E954D48164 /* PBXTargetDependency */,
+ CE423679B006E561ACC369B9B4B20731 /* PBXTargetDependency */,
+ A8A4F3A633F66D834DF64D829B311F24 /* PBXTargetDependency */,
+ );
+ name = "Pods-MSTG-JWT";
+ productName = "Pods-MSTG-JWT";
+ productReference = B212BF14726143C37E9BA30678A78A3F /* Pods_MSTG_JWT.framework */;
+ productType = "com.apple.product-type.framework";
+ };
+/* End PBXNativeTarget section */
+
+/* Begin PBXProject section */
+ D41D8CD98F00B204E9800998ECF8427E /* Project object */ = {
+ isa = PBXProject;
+ attributes = {
+ LastSwiftUpdateCheck = 0930;
+ LastUpgradeCheck = 0930;
+ };
+ buildConfigurationList = 2D8E8EC45A3A1A1D94AE762CB5028504 /* Build configuration list for PBXProject "Pods" */;
+ compatibilityVersion = "Xcode 3.2";
+ developmentRegion = English;
+ hasScannedForEncodings = 0;
+ knownRegions = (
+ en,
+ );
+ mainGroup = 7DB346D0F39D3F0E887471402A8071AB;
+ productRefGroup = 881AC0644D33916276CFDD08F4724482 /* Products */;
+ projectDirPath = "";
+ projectRoot = "";
+ targets = (
+ E76458C58C9140B6A16D60547E68E80C /* Alamofire */,
+ 956F9DE46491F445E8C560707D22D645 /* KeychainSwift */,
+ F77CB8641335597B5799015AC1F16B0B /* Pods-MSTG-JWT */,
+ 5AB80F3CD7D2B857763ED0E2AB866E77 /* Pods-MSTG-JWTTests */,
+ E4E5DDDF4A6897957F79886B33E94FE4 /* Pods-MSTG-JWTUITests */,
+ F22D56C144AB60AC83CE25002C8F6788 /* SwiftyJSON */,
+ );
+ };
+/* End PBXProject section */
+
+/* Begin PBXResourcesBuildPhase section */
+ 33FAB174B24954BF8071CAFB4C3B2871 /* Resources */ = {
+ isa = PBXResourcesBuildPhase;
+ buildActionMask = 2147483647;
+ files = (
+ );
+ runOnlyForDeploymentPostprocessing = 0;
+ };
+ 3DDB7E21141D7764AE4658D5B6AFF8C6 /* Resources */ = {
+ isa = PBXResourcesBuildPhase;
+ buildActionMask = 2147483647;
+ files = (
+ );
+ runOnlyForDeploymentPostprocessing = 0;
+ };
+ 4551C7D07064738F14CB1641CB4736C8 /* Resources */ = {
+ isa = PBXResourcesBuildPhase;
+ buildActionMask = 2147483647;
+ files = (
+ );
+ runOnlyForDeploymentPostprocessing = 0;
+ };
+ AE492A725586B63AFE22A5CFE1B736B7 /* Resources */ = {
+ isa = PBXResourcesBuildPhase;
+ buildActionMask = 2147483647;
+ files = (
+ );
+ runOnlyForDeploymentPostprocessing = 0;
+ };
+ B81BE6CCE318D6466B98D261459A8584 /* Resources */ = {
+ isa = PBXResourcesBuildPhase;
+ buildActionMask = 2147483647;
+ files = (
+ );
+ runOnlyForDeploymentPostprocessing = 0;
+ };
+ D6E6809E56337B071D7B830AE10A7847 /* Resources */ = {
+ isa = PBXResourcesBuildPhase;
+ buildActionMask = 2147483647;
+ files = (
+ );
+ runOnlyForDeploymentPostprocessing = 0;
+ };
+/* End PBXResourcesBuildPhase section */
+
+/* Begin PBXSourcesBuildPhase section */
+ 2C739BAFBD570D3B6911185CBFA6A332 /* Sources */ = {
+ isa = PBXSourcesBuildPhase;
+ buildActionMask = 2147483647;
+ files = (
+ 46411E2B361A1F6E47B49B942C30196D /* Pods-MSTG-JWTUITests-dummy.m in Sources */,
+ );
+ runOnlyForDeploymentPostprocessing = 0;
+ };
+ 68FE938A61C3336CFF8B4983145B06BA /* Sources */ = {
+ isa = PBXSourcesBuildPhase;
+ buildActionMask = 2147483647;
+ files = (
+ 0E4AEF637F6A8E263138B6680753B68F /* SwiftyJSON-dummy.m in Sources */,
+ 1B3A8195D664A204B72F7DDB3CEC0F23 /* SwiftyJSON.swift in Sources */,
+ );
+ runOnlyForDeploymentPostprocessing = 0;
+ };
+ 7588F92B2B47ABE539365FA4C3086C8C /* Sources */ = {
+ isa = PBXSourcesBuildPhase;
+ buildActionMask = 2147483647;
+ files = (
+ C5B7BD5773FDD2E505D20CD0202EA85E /* Pods-MSTG-JWT-dummy.m in Sources */,
+ );
+ runOnlyForDeploymentPostprocessing = 0;
+ };
+ 8A67707D5726C3B1C10240F36DF8506C /* Sources */ = {
+ isa = PBXSourcesBuildPhase;
+ buildActionMask = 2147483647;
+ files = (
+ E1AD716B8B8597AF968CF2B45464D306 /* KeychainSwift-dummy.m in Sources */,
+ 08B84702FBF6B722E6EDE9FE35DA988C /* KeychainSwift.swift in Sources */,
+ AD0A7E2E5F00339F9788B30DEF28A415 /* KeychainSwiftAccessOptions.swift in Sources */,
+ 03D16BFE8D45A8781FBAA96847CAD028 /* TegKeychainConstants.swift in Sources */,
+ );
+ runOnlyForDeploymentPostprocessing = 0;
+ };
+ CC399CEC576B42C962CEB290481CAF95 /* Sources */ = {
+ isa = PBXSourcesBuildPhase;
+ buildActionMask = 2147483647;
+ files = (
+ BE4BA1EDE444A770F834605F4B65348E /* AFError.swift in Sources */,
+ D4C3899574E9D5DF5E5DA52310560BCC /* Alamofire-dummy.m in Sources */,
+ 4E1A913EFB404FB11524718FF0298EFE /* Alamofire.swift in Sources */,
+ DBE6E2E4D205545E7988CFA5057C31D6 /* DispatchQueue+Alamofire.swift in Sources */,
+ FF9C7BC64DB23D2CED48197DE67F0335 /* MultipartFormData.swift in Sources */,
+ B77705737566AE83ED7E448923D7FA60 /* NetworkReachabilityManager.swift in Sources */,
+ 500C8EDA60C07B0F127C7FC385E17D38 /* Notifications.swift in Sources */,
+ 796177DE2762F24DAC16A709FD954838 /* ParameterEncoding.swift in Sources */,
+ 965DACF3DC02857ECBE66C5CBA3DA5D4 /* Request.swift in Sources */,
+ 52237C35642089F77DD4D723CEB25737 /* Response.swift in Sources */,
+ 5EE5FED83B90A606A763CF1114D1D6FB /* ResponseSerialization.swift in Sources */,
+ F9EA61D484CC15FDDAB0D8C0D26D7949 /* Result.swift in Sources */,
+ 6BEA14EC335E07C7063CD1383C0C443C /* ServerTrustPolicy.swift in Sources */,
+ 1FC3FD39157C2FFFF3869A1300730086 /* SessionDelegate.swift in Sources */,
+ 7068E8A7DDC1424EE8F24BC77E8746F4 /* SessionManager.swift in Sources */,
+ 36FF8853CB34A9297AFAA8F5F7456324 /* TaskDelegate.swift in Sources */,
+ B424F524BBBE34E685129945993809A8 /* Timeline.swift in Sources */,
+ 58A9719584AFA2D108D9E5C585A79329 /* Validation.swift in Sources */,
+ );
+ runOnlyForDeploymentPostprocessing = 0;
+ };
+ DD36E131DE1E797A8F6F7197C85C3899 /* Sources */ = {
+ isa = PBXSourcesBuildPhase;
+ buildActionMask = 2147483647;
+ files = (
+ 33688208BF8D54964F8FADBCB31E28F4 /* Pods-MSTG-JWTTests-dummy.m in Sources */,
+ );
+ runOnlyForDeploymentPostprocessing = 0;
+ };
+/* End PBXSourcesBuildPhase section */
+
+/* Begin PBXTargetDependency section */
+ 60226A736FCABDFD51C307E954D48164 /* PBXTargetDependency */ = {
+ isa = PBXTargetDependency;
+ name = Alamofire;
+ target = E76458C58C9140B6A16D60547E68E80C /* Alamofire */;
+ targetProxy = 03C400CC06FF9A8D9F245E85381B04E5 /* PBXContainerItemProxy */;
+ };
+ A8A4F3A633F66D834DF64D829B311F24 /* PBXTargetDependency */ = {
+ isa = PBXTargetDependency;
+ name = SwiftyJSON;
+ target = F22D56C144AB60AC83CE25002C8F6788 /* SwiftyJSON */;
+ targetProxy = 75BBF15A9F7F7BEC5689EBB7DE24212A /* PBXContainerItemProxy */;
+ };
+ C5B81B21ECC08AD1514F1AEB98C25B15 /* PBXTargetDependency */ = {
+ isa = PBXTargetDependency;
+ name = "Pods-MSTG-JWT";
+ target = F77CB8641335597B5799015AC1F16B0B /* Pods-MSTG-JWT */;
+ targetProxy = 00CAEE5EF60BC68D2F145C1C40CC8FAE /* PBXContainerItemProxy */;
+ };
+ CE423679B006E561ACC369B9B4B20731 /* PBXTargetDependency */ = {
+ isa = PBXTargetDependency;
+ name = KeychainSwift;
+ target = 956F9DE46491F445E8C560707D22D645 /* KeychainSwift */;
+ targetProxy = A5E5E3AEC0532432E6271B5B65F8E8BE /* PBXContainerItemProxy */;
+ };
+ F02A4213D0979095220A6FDE96D0843C /* PBXTargetDependency */ = {
+ isa = PBXTargetDependency;
+ name = "Pods-MSTG-JWT";
+ target = F77CB8641335597B5799015AC1F16B0B /* Pods-MSTG-JWT */;
+ targetProxy = 4A9023D585341B2B5FC146CE3D97F752 /* PBXContainerItemProxy */;
+ };
+/* End PBXTargetDependency section */
+
+/* Begin XCBuildConfiguration section */
+ 11501F35A84F5D7DD09552223A70AEB4 /* Release */ = {
+ isa = XCBuildConfiguration;
+ baseConfigurationReference = A1D28A21456CFE832D0F10B94390BCF5 /* Alamofire.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";
+ GCC_PREFIX_HEADER = "Target Support Files/Alamofire/Alamofire-prefix.pch";
+ INFOPLIST_FILE = "Target Support Files/Alamofire/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/Alamofire/Alamofire.modulemap";
+ PRODUCT_MODULE_NAME = Alamofire;
+ PRODUCT_NAME = Alamofire;
+ SDKROOT = iphoneos;
+ SKIP_INSTALL = YES;
+ SWIFT_ACTIVE_COMPILATION_CONDITIONS = "$(inherited) ";
+ SWIFT_COMPILATION_MODE = wholemodule;
+ SWIFT_OPTIMIZATION_LEVEL = "-O";
+ SWIFT_VERSION = 4.0;
+ TARGETED_DEVICE_FAMILY = "1,2";
+ VALIDATE_PRODUCT = YES;
+ VERSIONING_SYSTEM = "apple-generic";
+ VERSION_INFO_PREFIX = "";
+ };
+ name = Release;
+ };
+ 290F4EF6B0CDE2E5833F1CF60BB8F40F /* Release */ = {
+ isa = XCBuildConfiguration;
+ baseConfigurationReference = 6891A66754922CE742948AB745825933 /* Pods-MSTG-JWTUITests.release.xcconfig */;
+ buildSettings = {
+ ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = NO;
+ 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-MSTG-JWTUITests/Info.plist";
+ INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks";
+ IPHONEOS_DEPLOYMENT_TARGET = 9.0;
+ LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks";
+ MACH_O_TYPE = staticlib;
+ MODULEMAP_FILE = "Target Support Files/Pods-MSTG-JWTUITests/Pods-MSTG-JWTUITests.modulemap";
+ OTHER_LDFLAGS = "";
+ OTHER_LIBTOOLFLAGS = "";
+ PODS_ROOT = "$(SRCROOT)";
+ PRODUCT_BUNDLE_IDENTIFIER = "org.cocoapods.${PRODUCT_NAME:rfc1034identifier}";
+ PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)";
+ SDKROOT = iphoneos;
+ SKIP_INSTALL = YES;
+ TARGETED_DEVICE_FAMILY = "1,2";
+ VALIDATE_PRODUCT = YES;
+ VERSIONING_SYSTEM = "apple-generic";
+ VERSION_INFO_PREFIX = "";
+ };
+ name = Release;
+ };
+ 4AEE1231B16E94426E37115436470F5E /* Release */ = {
+ isa = XCBuildConfiguration;
+ baseConfigurationReference = C3BB4BF5C54BF0183DF3FE9571E6B4BF /* SwiftyJSON.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";
+ GCC_PREFIX_HEADER = "Target Support Files/SwiftyJSON/SwiftyJSON-prefix.pch";
+ INFOPLIST_FILE = "Target Support Files/SwiftyJSON/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/SwiftyJSON/SwiftyJSON.modulemap";
+ PRODUCT_MODULE_NAME = SwiftyJSON;
+ PRODUCT_NAME = SwiftyJSON;
+ SDKROOT = iphoneos;
+ SKIP_INSTALL = YES;
+ SWIFT_ACTIVE_COMPILATION_CONDITIONS = "$(inherited) ";
+ SWIFT_COMPILATION_MODE = wholemodule;
+ SWIFT_OPTIMIZATION_LEVEL = "-O";
+ SWIFT_VERSION = 4.0;
+ TARGETED_DEVICE_FAMILY = "1,2";
+ VALIDATE_PRODUCT = YES;
+ VERSIONING_SYSTEM = "apple-generic";
+ VERSION_INFO_PREFIX = "";
+ };
+ name = Release;
+ };
+ 5D85F1C738D146BBBFF136DFA42524E5 /* Release */ = {
+ isa = XCBuildConfiguration;
+ baseConfigurationReference = 2A25E70C0B54AC8070F49C80A9FBD14E /* KeychainSwift.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";
+ GCC_PREFIX_HEADER = "Target Support Files/KeychainSwift/KeychainSwift-prefix.pch";
+ INFOPLIST_FILE = "Target Support Files/KeychainSwift/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/KeychainSwift/KeychainSwift.modulemap";
+ PRODUCT_MODULE_NAME = KeychainSwift;
+ PRODUCT_NAME = KeychainSwift;
+ SDKROOT = iphoneos;
+ SKIP_INSTALL = YES;
+ SWIFT_ACTIVE_COMPILATION_CONDITIONS = "$(inherited) ";
+ SWIFT_COMPILATION_MODE = wholemodule;
+ SWIFT_OPTIMIZATION_LEVEL = "-O";
+ SWIFT_VERSION = 4.2;
+ TARGETED_DEVICE_FAMILY = "1,2";
+ VALIDATE_PRODUCT = YES;
+ VERSIONING_SYSTEM = "apple-generic";
+ VERSION_INFO_PREFIX = "";
+ };
+ name = Release;
+ };
+ 5FBC038127261EBAC1F022EE6F8BF3DB /* Release */ = {
+ isa = XCBuildConfiguration;
+ baseConfigurationReference = 2F93E00922FC466B8B89FE0DD5FAF22F /* Pods-MSTG-JWT.release.xcconfig */;
+ buildSettings = {
+ ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = NO;
+ 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-MSTG-JWT/Info.plist";
+ INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks";
+ IPHONEOS_DEPLOYMENT_TARGET = 9.0;
+ LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks";
+ MACH_O_TYPE = staticlib;
+ MODULEMAP_FILE = "Target Support Files/Pods-MSTG-JWT/Pods-MSTG-JWT.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_COMPILATION_MODE = wholemodule;
+ SWIFT_OPTIMIZATION_LEVEL = "-O";
+ TARGETED_DEVICE_FAMILY = "1,2";
+ VALIDATE_PRODUCT = YES;
+ VERSIONING_SYSTEM = "apple-generic";
+ VERSION_INFO_PREFIX = "";
+ };
+ name = Release;
+ };
+ 60DAF49CA7A9F362148D49C3C3123B2A /* Debug */ = {
+ isa = XCBuildConfiguration;
+ 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;
+ CODE_SIGNING_ALLOWED = NO;
+ 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;
+ IPHONEOS_DEPLOYMENT_TARGET = 9.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;
+ SYMROOT = "${SRCROOT}/../build";
+ };
+ name = Debug;
+ };
+ 74373415C8B70CBD3AFDAA0EF858C1D5 /* Debug */ = {
+ isa = XCBuildConfiguration;
+ baseConfigurationReference = 2A25E70C0B54AC8070F49C80A9FBD14E /* KeychainSwift.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";
+ GCC_PREFIX_HEADER = "Target Support Files/KeychainSwift/KeychainSwift-prefix.pch";
+ INFOPLIST_FILE = "Target Support Files/KeychainSwift/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/KeychainSwift/KeychainSwift.modulemap";
+ PRODUCT_MODULE_NAME = KeychainSwift;
+ PRODUCT_NAME = KeychainSwift;
+ SDKROOT = iphoneos;
+ SKIP_INSTALL = YES;
+ SWIFT_ACTIVE_COMPILATION_CONDITIONS = "$(inherited) ";
+ SWIFT_OPTIMIZATION_LEVEL = "-Onone";
+ SWIFT_VERSION = 4.2;
+ TARGETED_DEVICE_FAMILY = "1,2";
+ VERSIONING_SYSTEM = "apple-generic";
+ VERSION_INFO_PREFIX = "";
+ };
+ name = Debug;
+ };
+ 899340BA3CD2E9EEE8F39397F06D44CE /* Release */ = {
+ isa = XCBuildConfiguration;
+ baseConfigurationReference = A018B0569D3558EC1AC6E5AAB8EDDB6F /* Pods-MSTG-JWTTests.release.xcconfig */;
+ buildSettings = {
+ ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = NO;
+ 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-MSTG-JWTTests/Info.plist";
+ INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks";
+ IPHONEOS_DEPLOYMENT_TARGET = 9.0;
+ LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks";
+ MACH_O_TYPE = staticlib;
+ MODULEMAP_FILE = "Target Support Files/Pods-MSTG-JWTTests/Pods-MSTG-JWTTests.modulemap";
+ OTHER_LDFLAGS = "";
+ OTHER_LIBTOOLFLAGS = "";
+ PODS_ROOT = "$(SRCROOT)";
+ PRODUCT_BUNDLE_IDENTIFIER = "org.cocoapods.${PRODUCT_NAME:rfc1034identifier}";
+ PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)";
+ SDKROOT = iphoneos;
+ SKIP_INSTALL = YES;
+ TARGETED_DEVICE_FAMILY = "1,2";
+ VALIDATE_PRODUCT = YES;
+ VERSIONING_SYSTEM = "apple-generic";
+ VERSION_INFO_PREFIX = "";
+ };
+ name = Release;
+ };
+ A87E3F0EE1F6200F14E2DFA58BA68228 /* Debug */ = {
+ isa = XCBuildConfiguration;
+ baseConfigurationReference = AE2ED0D362B86DEA2B008CF813E1D73A /* Pods-MSTG-JWTTests.debug.xcconfig */;
+ buildSettings = {
+ ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = NO;
+ 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-MSTG-JWTTests/Info.plist";
+ INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks";
+ IPHONEOS_DEPLOYMENT_TARGET = 9.0;
+ LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks";
+ MACH_O_TYPE = staticlib;
+ MODULEMAP_FILE = "Target Support Files/Pods-MSTG-JWTTests/Pods-MSTG-JWTTests.modulemap";
+ OTHER_LDFLAGS = "";
+ OTHER_LIBTOOLFLAGS = "";
+ PODS_ROOT = "$(SRCROOT)";
+ PRODUCT_BUNDLE_IDENTIFIER = "org.cocoapods.${PRODUCT_NAME:rfc1034identifier}";
+ PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)";
+ SDKROOT = iphoneos;
+ SKIP_INSTALL = YES;
+ TARGETED_DEVICE_FAMILY = "1,2";
+ VERSIONING_SYSTEM = "apple-generic";
+ VERSION_INFO_PREFIX = "";
+ };
+ name = Debug;
+ };
+ BC26ACE7A8E469B7CB4DF93AB98ED9BA /* Debug */ = {
+ isa = XCBuildConfiguration;
+ baseConfigurationReference = A1D28A21456CFE832D0F10B94390BCF5 /* Alamofire.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";
+ GCC_PREFIX_HEADER = "Target Support Files/Alamofire/Alamofire-prefix.pch";
+ INFOPLIST_FILE = "Target Support Files/Alamofire/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/Alamofire/Alamofire.modulemap";
+ PRODUCT_MODULE_NAME = Alamofire;
+ PRODUCT_NAME = Alamofire;
+ 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";
+ VERSION_INFO_PREFIX = "";
+ };
+ name = Debug;
+ };
+ C4EAA84F44D044E108500A81C635F21E /* Release */ = {
+ isa = XCBuildConfiguration;
+ 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;
+ CODE_SIGNING_ALLOWED = NO;
+ CODE_SIGNING_REQUIRED = NO;
+ COPY_PHASE_STRIP = NO;
+ DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
+ ENABLE_NS_ASSERTIONS = NO;
+ ENABLE_STRICT_OBJC_MSGSEND = YES;
+ GCC_C_LANGUAGE_STANDARD = gnu11;
+ GCC_NO_COMMON_BLOCKS = YES;
+ GCC_PREPROCESSOR_DEFINITIONS = (
+ "POD_CONFIGURATION_RELEASE=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 = 9.0;
+ MTL_ENABLE_DEBUG_INFO = NO;
+ MTL_FAST_MATH = YES;
+ PRODUCT_NAME = "$(TARGET_NAME)";
+ STRIP_INSTALLED_PRODUCT = NO;
+ SYMROOT = "${SRCROOT}/../build";
+ };
+ name = Release;
+ };
+ DFAD65B54ED7993DB9462D9E25961544 /* Debug */ = {
+ isa = XCBuildConfiguration;
+ baseConfigurationReference = C3BB4BF5C54BF0183DF3FE9571E6B4BF /* SwiftyJSON.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";
+ GCC_PREFIX_HEADER = "Target Support Files/SwiftyJSON/SwiftyJSON-prefix.pch";
+ INFOPLIST_FILE = "Target Support Files/SwiftyJSON/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/SwiftyJSON/SwiftyJSON.modulemap";
+ PRODUCT_MODULE_NAME = SwiftyJSON;
+ PRODUCT_NAME = SwiftyJSON;
+ 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";
+ VERSION_INFO_PREFIX = "";
+ };
+ name = Debug;
+ };
+ EE677B35ED9A07781CAA9822344B69CE /* Debug */ = {
+ isa = XCBuildConfiguration;
+ baseConfigurationReference = D814730BCFD41BA3F0D121384B8EEC53 /* Pods-MSTG-JWTUITests.debug.xcconfig */;
+ buildSettings = {
+ ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = NO;
+ 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-MSTG-JWTUITests/Info.plist";
+ INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks";
+ IPHONEOS_DEPLOYMENT_TARGET = 9.0;
+ LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks";
+ MACH_O_TYPE = staticlib;
+ MODULEMAP_FILE = "Target Support Files/Pods-MSTG-JWTUITests/Pods-MSTG-JWTUITests.modulemap";
+ OTHER_LDFLAGS = "";
+ OTHER_LIBTOOLFLAGS = "";
+ PODS_ROOT = "$(SRCROOT)";
+ PRODUCT_BUNDLE_IDENTIFIER = "org.cocoapods.${PRODUCT_NAME:rfc1034identifier}";
+ PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)";
+ SDKROOT = iphoneos;
+ SKIP_INSTALL = YES;
+ TARGETED_DEVICE_FAMILY = "1,2";
+ VERSIONING_SYSTEM = "apple-generic";
+ VERSION_INFO_PREFIX = "";
+ };
+ name = Debug;
+ };
+ F4C9B5ECF0006189B3FDB1ED11728C69 /* Debug */ = {
+ isa = XCBuildConfiguration;
+ baseConfigurationReference = DEFB5BA280620D22825062D43F0400DC /* Pods-MSTG-JWT.debug.xcconfig */;
+ buildSettings = {
+ ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = NO;
+ 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-MSTG-JWT/Info.plist";
+ INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks";
+ IPHONEOS_DEPLOYMENT_TARGET = 9.0;
+ LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks";
+ MACH_O_TYPE = staticlib;
+ MODULEMAP_FILE = "Target Support Files/Pods-MSTG-JWT/Pods-MSTG-JWT.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 = DEBUG;
+ SWIFT_OPTIMIZATION_LEVEL = "-Onone";
+ TARGETED_DEVICE_FAMILY = "1,2";
+ VERSIONING_SYSTEM = "apple-generic";
+ VERSION_INFO_PREFIX = "";
+ };
+ name = Debug;
+ };
+/* End XCBuildConfiguration section */
+
+/* Begin XCConfigurationList section */
+ 2D8E8EC45A3A1A1D94AE762CB5028504 /* Build configuration list for PBXProject "Pods" */ = {
+ isa = XCConfigurationList;
+ buildConfigurations = (
+ 60DAF49CA7A9F362148D49C3C3123B2A /* Debug */,
+ C4EAA84F44D044E108500A81C635F21E /* Release */,
+ );
+ defaultConfigurationIsVisible = 0;
+ defaultConfigurationName = Release;
+ };
+ 427F0F003A1AD80AE00155AFCDEFAC20 /* Build configuration list for PBXNativeTarget "Alamofire" */ = {
+ isa = XCConfigurationList;
+ buildConfigurations = (
+ BC26ACE7A8E469B7CB4DF93AB98ED9BA /* Debug */,
+ 11501F35A84F5D7DD09552223A70AEB4 /* Release */,
+ );
+ defaultConfigurationIsVisible = 0;
+ defaultConfigurationName = Release;
+ };
+ 5D22864F93C614C1E8F958F37D1823F4 /* Build configuration list for PBXNativeTarget "Pods-MSTG-JWTTests" */ = {
+ isa = XCConfigurationList;
+ buildConfigurations = (
+ A87E3F0EE1F6200F14E2DFA58BA68228 /* Debug */,
+ 899340BA3CD2E9EEE8F39397F06D44CE /* Release */,
+ );
+ defaultConfigurationIsVisible = 0;
+ defaultConfigurationName = Release;
+ };
+ 98D88FF0193E326D7F8A81C65F0BF234 /* Build configuration list for PBXNativeTarget "SwiftyJSON" */ = {
+ isa = XCConfigurationList;
+ buildConfigurations = (
+ DFAD65B54ED7993DB9462D9E25961544 /* Debug */,
+ 4AEE1231B16E94426E37115436470F5E /* Release */,
+ );
+ defaultConfigurationIsVisible = 0;
+ defaultConfigurationName = Release;
+ };
+ C3C20285A51A3786B9EF5510756291FE /* Build configuration list for PBXNativeTarget "Pods-MSTG-JWTUITests" */ = {
+ isa = XCConfigurationList;
+ buildConfigurations = (
+ EE677B35ED9A07781CAA9822344B69CE /* Debug */,
+ 290F4EF6B0CDE2E5833F1CF60BB8F40F /* Release */,
+ );
+ defaultConfigurationIsVisible = 0;
+ defaultConfigurationName = Release;
+ };
+ C5F1BBB736267231E266CB5BD366553C /* Build configuration list for PBXNativeTarget "Pods-MSTG-JWT" */ = {
+ isa = XCConfigurationList;
+ buildConfigurations = (
+ F4C9B5ECF0006189B3FDB1ED11728C69 /* Debug */,
+ 5FBC038127261EBAC1F022EE6F8BF3DB /* Release */,
+ );
+ defaultConfigurationIsVisible = 0;
+ defaultConfigurationName = Release;
+ };
+ C6C058B7945849048A5415DE4179C7A8 /* Build configuration list for PBXNativeTarget "KeychainSwift" */ = {
+ isa = XCConfigurationList;
+ buildConfigurations = (
+ 74373415C8B70CBD3AFDAA0EF858C1D5 /* Debug */,
+ 5D85F1C738D146BBBFF136DFA42524E5 /* Release */,
+ );
+ defaultConfigurationIsVisible = 0;
+ defaultConfigurationName = Release;
+ };
+/* End XCConfigurationList section */
+ };
+ rootObject = D41D8CD98F00B204E9800998ECF8427E /* Project object */;
+}
diff --git a/iOS/MSTG-JWT/Pods/Pods.xcodeproj/xcuserdata/sven.xcuserdatad/xcschemes/Alamofire.xcscheme b/iOS/MSTG-JWT/Pods/Pods.xcodeproj/xcuserdata/sven.xcuserdatad/xcschemes/Alamofire.xcscheme
new file mode 100644
index 0000000..7481111
--- /dev/null
+++ b/iOS/MSTG-JWT/Pods/Pods.xcodeproj/xcuserdata/sven.xcuserdatad/xcschemes/Alamofire.xcscheme
@@ -0,0 +1,60 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/iOS/MSTG-JWT/Pods/Pods.xcodeproj/xcuserdata/sven.xcuserdatad/xcschemes/KeychainSwift.xcscheme b/iOS/MSTG-JWT/Pods/Pods.xcodeproj/xcuserdata/sven.xcuserdatad/xcschemes/KeychainSwift.xcscheme
new file mode 100644
index 0000000..8afd6a0
--- /dev/null
+++ b/iOS/MSTG-JWT/Pods/Pods.xcodeproj/xcuserdata/sven.xcuserdatad/xcschemes/KeychainSwift.xcscheme
@@ -0,0 +1,60 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/iOS/MSTG-JWT/Pods/Pods.xcodeproj/xcuserdata/sven.xcuserdatad/xcschemes/Pods-MSTG-JWT.xcscheme b/iOS/MSTG-JWT/Pods/Pods.xcodeproj/xcuserdata/sven.xcuserdatad/xcschemes/Pods-MSTG-JWT.xcscheme
new file mode 100644
index 0000000..87f9c87
--- /dev/null
+++ b/iOS/MSTG-JWT/Pods/Pods.xcodeproj/xcuserdata/sven.xcuserdatad/xcschemes/Pods-MSTG-JWT.xcscheme
@@ -0,0 +1,71 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/iOS/MSTG-JWT/Pods/Pods.xcodeproj/xcuserdata/sven.xcuserdatad/xcschemes/Pods-MSTG-JWTTests.xcscheme b/iOS/MSTG-JWT/Pods/Pods.xcodeproj/xcuserdata/sven.xcuserdatad/xcschemes/Pods-MSTG-JWTTests.xcscheme
new file mode 100644
index 0000000..2cfcccc
--- /dev/null
+++ b/iOS/MSTG-JWT/Pods/Pods.xcodeproj/xcuserdata/sven.xcuserdatad/xcschemes/Pods-MSTG-JWTTests.xcscheme
@@ -0,0 +1,71 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/iOS/MSTG-JWT/Pods/Pods.xcodeproj/xcuserdata/sven.xcuserdatad/xcschemes/Pods-MSTG-JWTUITests.xcscheme b/iOS/MSTG-JWT/Pods/Pods.xcodeproj/xcuserdata/sven.xcuserdatad/xcschemes/Pods-MSTG-JWTUITests.xcscheme
new file mode 100644
index 0000000..e809607
--- /dev/null
+++ b/iOS/MSTG-JWT/Pods/Pods.xcodeproj/xcuserdata/sven.xcuserdatad/xcschemes/Pods-MSTG-JWTUITests.xcscheme
@@ -0,0 +1,71 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/iOS/MSTG-JWT/Pods/Pods.xcodeproj/xcuserdata/sven.xcuserdatad/xcschemes/SwiftyJSON.xcscheme b/iOS/MSTG-JWT/Pods/Pods.xcodeproj/xcuserdata/sven.xcuserdatad/xcschemes/SwiftyJSON.xcscheme
new file mode 100644
index 0000000..33175fd
--- /dev/null
+++ b/iOS/MSTG-JWT/Pods/Pods.xcodeproj/xcuserdata/sven.xcuserdatad/xcschemes/SwiftyJSON.xcscheme
@@ -0,0 +1,60 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/iOS/MSTG-JWT/Pods/Pods.xcodeproj/xcuserdata/sven.xcuserdatad/xcschemes/xcschememanagement.plist b/iOS/MSTG-JWT/Pods/Pods.xcodeproj/xcuserdata/sven.xcuserdatad/xcschemes/xcschememanagement.plist
new file mode 100644
index 0000000..f359e2f
--- /dev/null
+++ b/iOS/MSTG-JWT/Pods/Pods.xcodeproj/xcuserdata/sven.xcuserdatad/xcschemes/xcschememanagement.plist
@@ -0,0 +1,53 @@
+
+
+
+
+ SchemeUserState
+
+ Alamofire.xcscheme
+
+ isShown
+
+ orderHint
+ 0
+
+ KeychainSwift.xcscheme
+
+ isShown
+
+ orderHint
+ 1
+
+ Pods-MSTG-JWT.xcscheme
+
+ isShown
+
+ orderHint
+ 2
+
+ Pods-MSTG-JWTTests.xcscheme
+
+ isShown
+
+ orderHint
+ 3
+
+ Pods-MSTG-JWTUITests.xcscheme
+
+ isShown
+
+ orderHint
+ 4
+
+ SwiftyJSON.xcscheme
+
+ isShown
+
+ orderHint
+ 5
+
+
+ SuppressBuildableAutocreation
+
+
+
diff --git a/iOS/MSTG-JWT/Pods/SwiftyJSON/LICENSE b/iOS/MSTG-JWT/Pods/SwiftyJSON/LICENSE
new file mode 100644
index 0000000..68e3fd7
--- /dev/null
+++ b/iOS/MSTG-JWT/Pods/SwiftyJSON/LICENSE
@@ -0,0 +1,21 @@
+The MIT License (MIT)
+
+Copyright (c) 2017 Ruoyu Fu
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in
+all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+THE SOFTWARE.
diff --git a/iOS/MSTG-JWT/Pods/SwiftyJSON/README.md b/iOS/MSTG-JWT/Pods/SwiftyJSON/README.md
new file mode 100644
index 0000000..3274979
--- /dev/null
+++ b/iOS/MSTG-JWT/Pods/SwiftyJSON/README.md
@@ -0,0 +1,549 @@
+# SwiftyJSON
+
+[![Travis CI](https://travis-ci.org/SwiftyJSON/SwiftyJSON.svg?branch=master)](https://travis-ci.org/SwiftyJSON/SwiftyJSON) [![Carthage compatible](https://img.shields.io/badge/Carthage-compatible-4BC51D.svg?style=flat)](https://github.com/Carthage/Carthage) ![CocoaPods](https://img.shields.io/cocoapods/v/SwiftyJSON.svg) ![Platform](https://img.shields.io/badge/platforms-iOS%208.0+%20%7C%20macOS%2010.10+%20%7C%20tvOS%209.0+%20%7C%20watchOS%202.0+-333333.svg)
+
+SwiftyJSON makes it easy to deal with JSON data in Swift.
+
+1. [Why is the typical JSON handling in Swift NOT good](#why-is-the-typical-json-handling-in-swift-not-good)
+2. [Requirements](#requirements)
+3. [Integration](#integration)
+4. [Usage](#usage)
+ - [Initialization](#initialization)
+ - [Subscript](#subscript)
+ - [Loop](#loop)
+ - [Error](#error)
+ - [Optional getter](#optional-getter)
+ - [Non-optional getter](#non-optional-getter)
+ - [Setter](#setter)
+ - [Raw object](#raw-object)
+ - [Literal convertibles](#literal-convertibles)
+ - [Merging](#merging)
+5. [Work with Alamofire](#work-with-alamofire)
+6. [Work with Moya](#work-with-moya)
+
+> [中文介绍](http://tangplin.github.io/swiftyjson/)
+
+
+## Why is the typical JSON handling in Swift NOT good?
+
+Swift is very strict about types. But although explicit typing is good for saving us from mistakes, it becomes painful when dealing with JSON and other areas that are, by nature, implicit about types.
+
+Take the Twitter API for example. Say we want to retrieve a user's "name" value of some tweet in Swift (according to [Twitter's API](https://developer.twitter.com/en/docs/tweets/timelines/api-reference/get-statuses-home_timeline)).
+
+The code would look like this:
+
+```swift
+if let statusesArray = try? JSONSerialization.jsonObject(with: data, options: .allowFragments) as? [[String: Any]],
+ let user = statusesArray[0]["user"] as? [String: Any],
+ let username = user["name"] as? String {
+ // Finally we got the username
+}
+```
+
+It's not good.
+
+Even if we use optional chaining, it would be messy:
+
+```swift
+if let JSONObject = try JSONSerialization.jsonObject(with: data, options: .allowFragments) as? [[String: Any]],
+ let username = (JSONObject[0]["user"] as? [String: Any])?["name"] as? String {
+ // There's our username
+}
+```
+
+An unreadable mess--for something that should really be simple!
+
+With SwiftyJSON all you have to do is:
+
+```swift
+let json = JSON(data: dataFromNetworking)
+if let userName = json[0]["user"]["name"].string {
+ //Now you got your value
+}
+```
+
+And don't worry about the Optional Wrapping thing. It's done for you automatically.
+
+```swift
+let json = JSON(data: dataFromNetworking)
+if let userName = json[999999]["wrong_key"]["wrong_name"].string {
+ //Calm down, take it easy, the ".string" property still produces the correct Optional String type with safety
+} else {
+ //Print the error
+ print(json[999999]["wrong_key"]["wrong_name"])
+}
+```
+
+## Requirements
+
+- iOS 8.0+ | macOS 10.10+ | tvOS 9.0+ | watchOS 2.0+
+- Xcode 8
+
+## Integration
+
+#### CocoaPods (iOS 8+, OS X 10.9+)
+
+You can use [CocoaPods](http://cocoapods.org/) to install `SwiftyJSON` by adding it to your `Podfile`:
+
+```ruby
+platform :ios, '8.0'
+use_frameworks!
+
+target 'MyApp' do
+ pod 'SwiftyJSON', '~> 4.0'
+end
+```
+
+#### Carthage (iOS 8+, OS X 10.9+)
+
+You can use [Carthage](https://github.com/Carthage/Carthage) to install `SwiftyJSON` by adding it to your `Cartfile`:
+
+```
+github "SwiftyJSON/SwiftyJSON" ~> 4.0
+```
+
+If you use Carthage to build your dependencies, make sure you have added `SwiftyJSON.framework` to the "Linked Frameworks and Libraries" section of your target, and have included them in your Carthage framework copying build phase.
+
+#### Swift Package Manager
+
+You can use [The Swift Package Manager](https://swift.org/package-manager) to install `SwiftyJSON` by adding the proper description to your `Package.swift` file:
+
+```swift
+// swift-tools-version:4.0
+import PackageDescription
+
+let package = Package(
+ name: "YOUR_PROJECT_NAME",
+ dependencies: [
+ .package(url: "https://github.com/SwiftyJSON/SwiftyJSON.git", from: "4.0.0"),
+ ]
+)
+```
+Then run `swift build` whenever you get prepared.
+
+#### Manually (iOS 7+, OS X 10.9+)
+
+To use this library in your project manually you may:
+
+1. for Projects, just drag SwiftyJSON.swift to the project tree
+2. for Workspaces, include the whole SwiftyJSON.xcodeproj
+
+## Usage
+
+#### Initialization
+
+```swift
+import SwiftyJSON
+```
+
+```swift
+let json = JSON(data: dataFromNetworking)
+```
+Or
+
+```swift
+let json = JSON(jsonObject)
+```
+Or
+
+```swift
+if let dataFromString = jsonString.data(using: .utf8, allowLossyConversion: false) {
+ let json = JSON(data: dataFromString)
+}
+```
+
+#### Subscript
+
+```swift
+// Getting a double from a JSON Array
+let name = json[0].double
+```
+
+```swift
+// Getting an array of string from a JSON Array
+let arrayNames = json["users"].arrayValue.map({$0["name"].stringValue})
+```
+
+```swift
+// Getting a string from a JSON Dictionary
+let name = json["name"].stringValue
+```
+
+```swift
+// Getting a string using a path to the element
+let path: [JSONSubscriptType] = [1,"list",2,"name"]
+let name = json[path].string
+// Just the same
+let name = json[1]["list"][2]["name"].string
+// Alternatively
+let name = json[1,"list",2,"name"].string
+```
+
+```swift
+// With a hard way
+let name = json[].string
+```
+
+```swift
+// With a custom way
+let keys:[JSONSubscriptType] = [1,"list",2,"name"]
+let name = json[keys].string
+```
+
+#### Loop
+
+```swift
+// If json is .Dictionary
+for (key,subJson):(String, JSON) in json {
+ // Do something you want
+}
+```
+
+*The first element is always a String, even if the JSON is an Array*
+
+```swift
+// If json is .Array
+// The `index` is 0.. = json["list"].arrayValue
+```
+
+```swift
+// If not a Dictionary or nil, return [:]
+let user: Dictionary = json["user"].dictionaryValue
+```
+
+#### Setter
+
+```swift
+json["name"] = JSON("new-name")
+json[0] = JSON(1)
+```
+
+```swift
+json["id"].int = 1234567890
+json["coordinate"].double = 8766.766
+json["name"].string = "Jack"
+json.arrayObject = [1,2,3,4]
+json.dictionaryObject = ["name":"Jack", "age":25]
+```
+
+#### Raw object
+
+```swift
+let rawObject: Any = json.object
+```
+
+```swift
+let rawValue: Any = json.rawValue
+```
+
+```swift
+//convert the JSON to raw NSData
+do {
+ let rawData = try json.rawData()
+ //Do something you want
+} catch {
+ print("Error \(error)")
+}
+```
+
+```swift
+//convert the JSON to a raw String
+if let rawString = json.rawString() {
+ //Do something you want
+} else {
+ print("json.rawString is nil")
+}
+```
+
+#### Existence
+
+```swift
+// shows you whether value specified in JSON or not
+if json["name"].exists()
+```
+
+#### Literal convertibles
+
+For more info about literal convertibles: [Swift Literal Convertibles](http://nshipster.com/swift-literal-convertible/)
+
+```swift
+// StringLiteralConvertible
+let json: JSON = "I'm a json"
+```
+
+```swift
+/ /IntegerLiteralConvertible
+let json: JSON = 12345
+```
+
+```swift
+// BooleanLiteralConvertible
+let json: JSON = true
+```
+
+```swift
+// FloatLiteralConvertible
+let json: JSON = 2.8765
+```
+
+```swift
+// DictionaryLiteralConvertible
+let json: JSON = ["I":"am", "a":"json"]
+```
+
+```swift
+// ArrayLiteralConvertible
+let json: JSON = ["I", "am", "a", "json"]
+```
+
+```swift
+// With subscript in array
+var json: JSON = [1,2,3]
+json[0] = 100
+json[1] = 200
+json[2] = 300
+json[999] = 300 // Don't worry, nothing will happen
+```
+
+```swift
+// With subscript in dictionary
+var json: JSON = ["name": "Jack", "age": 25]
+json["name"] = "Mike"
+json["age"] = "25" // It's OK to set String
+json["address"] = "L.A." // Add the "address": "L.A." in json
+```
+
+```swift
+// Array & Dictionary
+var json: JSON = ["name": "Jack", "age": 25, "list": ["a", "b", "c", ["what": "this"]]]
+json["list"][3]["what"] = "that"
+json["list",3,"what"] = "that"
+let path: [JSONSubscriptType] = ["list",3,"what"]
+json[path] = "that"
+```
+
+```swift
+// With other JSON objects
+let user: JSON = ["username" : "Steve", "password": "supersecurepassword"]
+let auth: JSON = [
+ "user": user.object, // use user.object instead of just user
+ "apikey": "supersecretapitoken"
+]
+```
+
+#### Merging
+
+It is possible to merge one JSON into another JSON. Merging a JSON into another JSON adds all non existing values to the original JSON which are only present in the `other` JSON.
+
+If both JSONs contain a value for the same key, _mostly_ this value gets overwritten in the original JSON, but there are two cases where it provides some special treatment:
+
+- In case of both values being a `JSON.Type.array` the values form the array found in the `other` JSON getting appended to the original JSON's array value.
+- In case of both values being a `JSON.Type.dictionary` both JSON-values are getting merged the same way the encapsulating JSON is merged.
+
+In case, where two fields in a JSON have a different types, the value will get always overwritten.
+
+There are two different fashions for merging: `merge` modifies the original JSON, whereas `merged` works non-destructively on a copy.
+
+```swift
+let original: JSON = [
+ "first_name": "John",
+ "age": 20,
+ "skills": ["Coding", "Reading"],
+ "address": [
+ "street": "Front St",
+ "zip": "12345",
+ ]
+]
+
+let update: JSON = [
+ "last_name": "Doe",
+ "age": 21,
+ "skills": ["Writing"],
+ "address": [
+ "zip": "12342",
+ "city": "New York City"
+ ]
+]
+
+let updated = original.merge(with: update)
+// [
+// "first_name": "John",
+// "last_name": "Doe",
+// "age": 21,
+// "skills": ["Coding", "Reading", "Writing"],
+// "address": [
+// "street": "Front St",
+// "zip": "12342",
+// "city": "New York City"
+// ]
+// ]
+```
+
+## String representation
+There are two options available:
+- use the default Swift one
+- use a custom one that will handle optionals well and represent `nil` as `"null"`:
+```swift
+let dict = ["1":2, "2":"two", "3": nil] as [String: Any?]
+let json = JSON(dict)
+let representation = json.rawString(options: [.castNilToNSNull: true])
+// representation is "{\"1\":2,\"2\":\"two\",\"3\":null}", which represents {"1":2,"2":"two","3":null}
+```
+
+## Work with [Alamofire](https://github.com/Alamofire/Alamofire)
+
+SwiftyJSON nicely wraps the result of the Alamofire JSON response handler:
+
+```swift
+Alamofire.request(url, method: .get).validate().responseJSON { response in
+ switch response.result {
+ case .success(let value):
+ let json = JSON(value)
+ print("JSON: \(json)")
+ case .failure(let error):
+ print(error)
+ }
+}
+```
+
+We also provide an extension of Alamofire for serializing NSData to SwiftyJSON's JSON.
+
+See: [Alamofire-SwiftyJSON](https://github.com/SwiftyJSON/Alamofire-SwiftyJSON)
+
+
+## Work with [Moya](https://github.com/Moya/Moya)
+
+SwiftyJSON parse data to JSON:
+
+```swift
+let provider = MoyaProvider()
+provider.request(.showProducts) { result in
+ switch result {
+ case let .success(moyaResponse):
+ let data = moyaResponse.data
+ let json = JSON(data: data) // convert network data to json
+ print(json)
+ case let .failure(error):
+ print("error: \(error)")
+ }
+}
+
+```
diff --git a/iOS/MSTG-JWT/Pods/SwiftyJSON/Source/SwiftyJSON.swift b/iOS/MSTG-JWT/Pods/SwiftyJSON/Source/SwiftyJSON.swift
new file mode 100644
index 0000000..f3553fe
--- /dev/null
+++ b/iOS/MSTG-JWT/Pods/SwiftyJSON/Source/SwiftyJSON.swift
@@ -0,0 +1,1563 @@
+// SwiftyJSON.swift
+//
+// Copyright (c) 2014 - 2017 Ruoyu Fu, Pinglin Tang
+//
+// Permission is hereby granted, free of charge, to any person obtaining a copy
+// of this software and associated documentation files (the "Software"), to deal
+// in the Software without restriction, including without limitation the rights
+// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+// copies of the Software, and to permit persons to whom the Software is
+// furnished to do so, subject to the following conditions:
+//
+// The above copyright notice and this permission notice shall be included in
+// all copies or substantial portions of the Software.
+//
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+// THE SOFTWARE.
+
+import Foundation
+
+// MARK: - Error
+// swiftlint:disable line_length
+/// Error domain
+@available(*, deprecated, message: "ErrorDomain is deprecated. Use `SwiftyJSONError.errorDomain` instead.", renamed: "SwiftyJSONError.errorDomain")
+public let ErrorDomain: String = "SwiftyJSONErrorDomain"
+
+/// Error code
+@available(*, deprecated, message: "ErrorUnsupportedType is deprecated. Use `SwiftyJSONError.unsupportedType` instead.", renamed: "SwiftyJSONError.unsupportedType")
+public let ErrorUnsupportedType: Int = 999
+@available(*, deprecated, message: "ErrorIndexOutOfBounds is deprecated. Use `SwiftyJSONError.indexOutOfBounds` instead.", renamed: "SwiftyJSONError.indexOutOfBounds")
+public let ErrorIndexOutOfBounds: Int = 900
+@available(*, deprecated, message: "ErrorWrongType is deprecated. Use `SwiftyJSONError.wrongType` instead.", renamed: "SwiftyJSONError.wrongType")
+public let ErrorWrongType: Int = 901
+@available(*, deprecated, message: "ErrorNotExist is deprecated. Use `SwiftyJSONError.notExist` instead.", renamed: "SwiftyJSONError.notExist")
+public let ErrorNotExist: Int = 500
+@available(*, deprecated, message: "ErrorInvalidJSON is deprecated. Use `SwiftyJSONError.invalidJSON` instead.", renamed: "SwiftyJSONError.invalidJSON")
+public let ErrorInvalidJSON: Int = 490
+
+public enum SwiftyJSONError: Int, Swift.Error {
+ case unsupportedType = 999
+ case indexOutOfBounds = 900
+ case elementTooDeep = 902
+ case wrongType = 901
+ case notExist = 500
+ case invalidJSON = 490
+}
+
+extension SwiftyJSONError: CustomNSError {
+
+ /// return the error domain of SwiftyJSONError
+ public static var errorDomain: String { return "com.swiftyjson.SwiftyJSON" }
+
+ /// return the error code of SwiftyJSONError
+ public var errorCode: Int { return self.rawValue }
+
+ /// return the userInfo of SwiftyJSONError
+ public var errorUserInfo: [String: Any] {
+ switch self {
+ case .unsupportedType:
+ return [NSLocalizedDescriptionKey: "It is an unsupported type."]
+ case .indexOutOfBounds:
+ return [NSLocalizedDescriptionKey: "Array Index is out of bounds."]
+ case .wrongType:
+ return [NSLocalizedDescriptionKey: "Couldn't merge, because the JSONs differ in type on top level."]
+ case .notExist:
+ return [NSLocalizedDescriptionKey: "Dictionary key does not exist."]
+ case .invalidJSON:
+ return [NSLocalizedDescriptionKey: "JSON is invalid."]
+ case .elementTooDeep:
+ return [NSLocalizedDescriptionKey: "Element too deep. Increase maxObjectDepth and make sure there is no reference loop."]
+ }
+ }
+}
+
+// MARK: - JSON Type
+
+/**
+JSON's type definitions.
+
+See http://www.json.org
+*/
+public enum Type: Int {
+ case number
+ case string
+ case bool
+ case array
+ case dictionary
+ case null
+ case unknown
+}
+
+// MARK: - JSON Base
+
+public struct JSON {
+
+ /**
+ Creates a JSON using the data.
+
+ - parameter data: The NSData used to convert to json.Top level object in data is an NSArray or NSDictionary
+ - parameter opt: The JSON serialization reading options. `[]` by default.
+
+ - returns: The created JSON
+ */
+ public init(data: Data, options opt: JSONSerialization.ReadingOptions = []) throws {
+ let object: Any = try JSONSerialization.jsonObject(with: data, options: opt)
+ self.init(jsonObject: object)
+ }
+
+ /**
+ Creates a JSON object
+ - note: this does not parse a `String` into JSON, instead use `init(parseJSON: String)`
+
+ - parameter object: the object
+
+ - returns: the created JSON object
+ */
+ public init(_ object: Any) {
+ switch object {
+ case let object as Data:
+ do {
+ try self.init(data: object)
+ } catch {
+ self.init(jsonObject: NSNull())
+ }
+ default:
+ self.init(jsonObject: object)
+ }
+ }
+
+ /**
+ Parses the JSON string into a JSON object
+
+ - parameter json: the JSON string
+
+ - returns: the created JSON object
+ */
+ public init(parseJSON jsonString: String) {
+ if let data = jsonString.data(using: .utf8) {
+ self.init(data)
+ } else {
+ self.init(NSNull())
+ }
+ }
+
+ /**
+ Creates a JSON from JSON string
+
+ - parameter json: Normal json string like '{"a":"b"}'
+
+ - returns: The created JSON
+ */
+ @available(*, deprecated, message: "Use instead `init(parseJSON: )`")
+ public static func parse(_ json: String) -> JSON {
+ return json.data(using: String.Encoding.utf8)
+ .flatMap { try? JSON(data: $0) } ?? JSON(NSNull())
+ }
+
+ /**
+ Creates a JSON using the object.
+
+ - parameter jsonObject: The object must have the following properties: All objects are NSString/String, NSNumber/Int/Float/Double/Bool, NSArray/Array, NSDictionary/Dictionary, or NSNull; All dictionary keys are NSStrings/String; NSNumbers are not NaN or infinity.
+
+ - returns: The created JSON
+ */
+ fileprivate init(jsonObject: Any) {
+ self.object = jsonObject
+ }
+
+ /**
+ Merges another JSON into this JSON, whereas primitive values which are not present in this JSON are getting added,
+ present values getting overwritten, array values getting appended and nested JSONs getting merged the same way.
+
+ - parameter other: The JSON which gets merged into this JSON
+
+ - throws `ErrorWrongType` if the other JSONs differs in type on the top level.
+ */
+ public mutating func merge(with other: JSON) throws {
+ try self.merge(with: other, typecheck: true)
+ }
+
+ /**
+ Merges another JSON into this JSON and returns a new JSON, whereas primitive values which are not present in this JSON are getting added,
+ present values getting overwritten, array values getting appended and nested JSONS getting merged the same way.
+
+ - parameter other: The JSON which gets merged into this JSON
+
+ - throws `ErrorWrongType` if the other JSONs differs in type on the top level.
+
+ - returns: New merged JSON
+ */
+ public func merged(with other: JSON) throws -> JSON {
+ var merged = self
+ try merged.merge(with: other, typecheck: true)
+ return merged
+ }
+
+ /**
+ Private woker function which does the actual merging
+ Typecheck is set to true for the first recursion level to prevent total override of the source JSON
+ */
+ fileprivate mutating func merge(with other: JSON, typecheck: Bool) throws {
+ if self.type == other.type {
+ switch self.type {
+ case .dictionary:
+ for (key, _) in other {
+ try self[key].merge(with: other[key], typecheck: false)
+ }
+ case .array:
+ self = JSON(self.arrayValue + other.arrayValue)
+ default:
+ self = other
+ }
+ } else {
+ if typecheck {
+ throw SwiftyJSONError.wrongType
+ } else {
+ self = other
+ }
+ }
+ }
+
+ /// Private object
+ fileprivate var rawArray: [Any] = []
+ fileprivate var rawDictionary: [String: Any] = [:]
+ fileprivate var rawString: String = ""
+ fileprivate var rawNumber: NSNumber = 0
+ fileprivate var rawNull: NSNull = NSNull()
+ fileprivate var rawBool: Bool = false
+
+ /// JSON type, fileprivate setter
+ public fileprivate(set) var type: Type = .null
+
+ /// Error in JSON, fileprivate setter
+ public fileprivate(set) var error: SwiftyJSONError?
+
+ /// Object in JSON
+ public var object: Any {
+ get {
+ switch self.type {
+ case .array:
+ return self.rawArray
+ case .dictionary:
+ return self.rawDictionary
+ case .string:
+ return self.rawString
+ case .number:
+ return self.rawNumber
+ case .bool:
+ return self.rawBool
+ default:
+ return self.rawNull
+ }
+ }
+ set {
+ error = nil
+ switch unwrap(newValue) {
+ case let number as NSNumber:
+ if number.isBool {
+ type = .bool
+ self.rawBool = number.boolValue
+ } else {
+ type = .number
+ self.rawNumber = number
+ }
+ case let string as String:
+ type = .string
+ self.rawString = string
+ case _ as NSNull:
+ type = .null
+ case nil:
+ type = .null
+ case let array as [Any]:
+ type = .array
+ self.rawArray = array
+ case let dictionary as [String: Any]:
+ type = .dictionary
+ self.rawDictionary = dictionary
+ default:
+ type = .unknown
+ error = SwiftyJSONError.unsupportedType
+ }
+ }
+ }
+
+ /// The static null JSON
+ @available(*, unavailable, renamed:"null")
+ public static var nullJSON: JSON { return null }
+ public static var null: JSON { return JSON(NSNull()) }
+}
+
+/// Private method to unwarp an object recursively
+private func unwrap(_ object: Any) -> Any {
+ switch object {
+ case let json as JSON:
+ return unwrap(json.object)
+ case let array as [Any]:
+ return array.map(unwrap)
+ case let dictionary as [String: Any]:
+ var unwrappedDic = dictionary
+ for (k, v) in dictionary {
+ unwrappedDic[k] = unwrap(v)
+ }
+ return unwrappedDic
+ default:
+ return object
+ }
+}
+
+public enum Index: Comparable {
+ case array(Int)
+ case dictionary(DictionaryIndex)
+ case null
+
+ static public func == (lhs: Index, rhs: Index) -> Bool {
+ switch (lhs, rhs) {
+ case (.array(let left), .array(let right)):
+ return left == right
+ case (.dictionary(let left), .dictionary(let right)):
+ return left == right
+ case (.null, .null): return true
+ default:
+ return false
+ }
+ }
+
+ static public func < (lhs: Index, rhs: Index) -> Bool {
+ switch (lhs, rhs) {
+ case (.array(let left), .array(let right)):
+ return left < right
+ case (.dictionary(let left), .dictionary(let right)):
+ return left < right
+ default:
+ return false
+ }
+ }
+}
+
+public typealias JSONIndex = Index
+public typealias JSONRawIndex = Index
+
+extension JSON: Swift.Collection {
+
+ public typealias Index = JSONRawIndex
+
+ public var startIndex: Index {
+ switch type {
+ case .array:
+ return .array(rawArray.startIndex)
+ case .dictionary:
+ return .dictionary(rawDictionary.startIndex)
+ default:
+ return .null
+ }
+ }
+
+ public var endIndex: Index {
+ switch type {
+ case .array:
+ return .array(rawArray.endIndex)
+ case .dictionary:
+ return .dictionary(rawDictionary.endIndex)
+ default:
+ return .null
+ }
+ }
+
+ public func index(after i: Index) -> Index {
+ switch i {
+ case .array(let idx):
+ return .array(rawArray.index(after: idx))
+ case .dictionary(let idx):
+ return .dictionary(rawDictionary.index(after: idx))
+ default:
+ return .null
+ }
+ }
+
+ public subscript (position: Index) -> (String, JSON) {
+ switch position {
+ case .array(let idx):
+ return (String(idx), JSON(self.rawArray[idx]))
+ case .dictionary(let idx):
+ let (key, value) = self.rawDictionary[idx]
+ return (key, JSON(value))
+ default:
+ return ("", JSON.null)
+ }
+ }
+}
+
+// MARK: - Subscript
+
+/**
+ * To mark both String and Int can be used in subscript.
+ */
+public enum JSONKey {
+ case index(Int)
+ case key(String)
+}
+
+public protocol JSONSubscriptType {
+ var jsonKey: JSONKey { get }
+}
+
+extension Int: JSONSubscriptType {
+ public var jsonKey: JSONKey {
+ return JSONKey.index(self)
+ }
+}
+
+extension String: JSONSubscriptType {
+ public var jsonKey: JSONKey {
+ return JSONKey.key(self)
+ }
+}
+
+extension JSON {
+
+ /// If `type` is `.array`, return json whose object is `array[index]`, otherwise return null json with error.
+ fileprivate subscript(index index: Int) -> JSON {
+ get {
+ if self.type != .array {
+ var r = JSON.null
+ r.error = self.error ?? SwiftyJSONError.wrongType
+ return r
+ } else if self.rawArray.indices.contains(index) {
+ return JSON(self.rawArray[index])
+ } else {
+ var r = JSON.null
+ r.error = SwiftyJSONError.indexOutOfBounds
+ return r
+ }
+ }
+ set {
+ if self.type == .array &&
+ self.rawArray.indices.contains(index) &&
+ newValue.error == nil {
+ self.rawArray[index] = newValue.object
+ }
+ }
+ }
+
+ /// If `type` is `.dictionary`, return json whose object is `dictionary[key]` , otherwise return null json with error.
+ fileprivate subscript(key key: String) -> JSON {
+ get {
+ var r = JSON.null
+ if self.type == .dictionary {
+ if let o = self.rawDictionary[key] {
+ r = JSON(o)
+ } else {
+ r.error = SwiftyJSONError.notExist
+ }
+ } else {
+ r.error = self.error ?? SwiftyJSONError.wrongType
+ }
+ return r
+ }
+ set {
+ if self.type == .dictionary && newValue.error == nil {
+ self.rawDictionary[key] = newValue.object
+ }
+ }
+ }
+
+ /// If `sub` is `Int`, return `subscript(index:)`; If `sub` is `String`, return `subscript(key:)`.
+ fileprivate subscript(sub sub: JSONSubscriptType) -> JSON {
+ get {
+ switch sub.jsonKey {
+ case .index(let index): return self[index: index]
+ case .key(let key): return self[key: key]
+ }
+ }
+ set {
+ switch sub.jsonKey {
+ case .index(let index): self[index: index] = newValue
+ case .key(let key): self[key: key] = newValue
+ }
+ }
+ }
+
+ /**
+ Find a json in the complex data structures by using array of Int and/or String as path.
+
+ Example:
+
+ ```
+ let json = JSON[data]
+ let path = [9,"list","person","name"]
+ let name = json[path]
+ ```
+
+ The same as: let name = json[9]["list"]["person"]["name"]
+
+ - parameter path: The target json's path.
+
+ - returns: Return a json found by the path or a null json with error
+ */
+ public subscript(path: [JSONSubscriptType]) -> JSON {
+ get {
+ return path.reduce(self) { $0[sub: $1] }
+ }
+ set {
+ switch path.count {
+ case 0:
+ return
+ case 1:
+ self[sub:path[0]].object = newValue.object
+ default:
+ var aPath = path
+ aPath.remove(at: 0)
+ var nextJSON = self[sub: path[0]]
+ nextJSON[aPath] = newValue
+ self[sub: path[0]] = nextJSON
+ }
+ }
+ }
+
+ /**
+ Find a json in the complex data structures by using array of Int and/or String as path.
+
+ - parameter path: The target json's path. Example:
+
+ let name = json[9,"list","person","name"]
+
+ The same as: let name = json[9]["list"]["person"]["name"]
+
+ - returns: Return a json found by the path or a null json with error
+ */
+ public subscript(path: JSONSubscriptType...) -> JSON {
+ get {
+ return self[path]
+ }
+ set {
+ self[path] = newValue
+ }
+ }
+}
+
+// MARK: - LiteralConvertible
+
+extension JSON: Swift.ExpressibleByStringLiteral {
+
+ public init(stringLiteral value: StringLiteralType) {
+ self.init(value)
+ }
+
+ public init(extendedGraphemeClusterLiteral value: StringLiteralType) {
+ self.init(value)
+ }
+
+ public init(unicodeScalarLiteral value: StringLiteralType) {
+ self.init(value)
+ }
+}
+
+extension JSON: Swift.ExpressibleByIntegerLiteral {
+
+ public init(integerLiteral value: IntegerLiteralType) {
+ self.init(value)
+ }
+}
+
+extension JSON: Swift.ExpressibleByBooleanLiteral {
+
+ public init(booleanLiteral value: BooleanLiteralType) {
+ self.init(value)
+ }
+}
+
+extension JSON: Swift.ExpressibleByFloatLiteral {
+
+ public init(floatLiteral value: FloatLiteralType) {
+ self.init(value)
+ }
+}
+
+extension JSON: Swift.ExpressibleByDictionaryLiteral {
+ public init(dictionaryLiteral elements: (String, Any)...) {
+ let dictionary = elements.reduce(into: [String: Any](), { $0[$1.0] = $1.1})
+ self.init(dictionary)
+ }
+}
+
+extension JSON: Swift.ExpressibleByArrayLiteral {
+
+ public init(arrayLiteral elements: Any...) {
+ self.init(elements)
+ }
+}
+
+extension JSON: Swift.ExpressibleByNilLiteral {
+
+ @available(*, deprecated, message: "use JSON.null instead. Will be removed in future versions")
+ public init(nilLiteral: ()) {
+ self.init(NSNull() as Any)
+ }
+}
+
+// MARK: - Raw
+
+extension JSON: Swift.RawRepresentable {
+
+ public init?(rawValue: Any) {
+ if JSON(rawValue).type == .unknown {
+ return nil
+ } else {
+ self.init(rawValue)
+ }
+ }
+
+ public var rawValue: Any {
+ return self.object
+ }
+
+ public func rawData(options opt: JSONSerialization.WritingOptions = JSONSerialization.WritingOptions(rawValue: 0)) throws -> Data {
+ guard JSONSerialization.isValidJSONObject(self.object) else {
+ throw SwiftyJSONError.invalidJSON
+ }
+
+ return try JSONSerialization.data(withJSONObject: self.object, options: opt)
+ }
+
+ public func rawString(_ encoding: String.Encoding = .utf8, options opt: JSONSerialization.WritingOptions = .prettyPrinted) -> String? {
+ do {
+ return try _rawString(encoding, options: [.jsonSerialization: opt])
+ } catch {
+ print("Could not serialize object to JSON because:", error.localizedDescription)
+ return nil
+ }
+ }
+
+ public func rawString(_ options: [writingOptionsKeys: Any]) -> String? {
+ let encoding = options[.encoding] as? String.Encoding ?? String.Encoding.utf8
+ let maxObjectDepth = options[.maxObjextDepth] as? Int ?? 10
+ do {
+ return try _rawString(encoding, options: options, maxObjectDepth: maxObjectDepth)
+ } catch {
+ print("Could not serialize object to JSON because:", error.localizedDescription)
+ return nil
+ }
+ }
+
+ fileprivate func _rawString(_ encoding: String.Encoding = .utf8, options: [writingOptionsKeys: Any], maxObjectDepth: Int = 10) throws -> String? {
+ guard maxObjectDepth > 0 else { throw SwiftyJSONError.invalidJSON }
+ switch self.type {
+ case .dictionary:
+ do {
+ if !(options[.castNilToNSNull] as? Bool ?? false) {
+ let jsonOption = options[.jsonSerialization] as? JSONSerialization.WritingOptions ?? JSONSerialization.WritingOptions.prettyPrinted
+ let data = try self.rawData(options: jsonOption)
+ return String(data: data, encoding: encoding)
+ }
+
+ guard let dict = self.object as? [String: Any?] else {
+ return nil
+ }
+ let body = try dict.keys.map { key throws -> String in
+ guard let value = dict[key] else {
+ return "\"\(key)\": null"
+ }
+ guard let unwrappedValue = value else {
+ return "\"\(key)\": null"
+ }
+
+ let nestedValue = JSON(unwrappedValue)
+ guard let nestedString = try nestedValue._rawString(encoding, options: options, maxObjectDepth: maxObjectDepth - 1) else {
+ throw SwiftyJSONError.elementTooDeep
+ }
+ if nestedValue.type == .string {
+ return "\"\(key)\": \"\(nestedString.replacingOccurrences(of: "\\", with: "\\\\").replacingOccurrences(of: "\"", with: "\\\""))\""
+ } else {
+ return "\"\(key)\": \(nestedString)"
+ }
+ }
+
+ return "{\(body.joined(separator: ","))}"
+ } catch _ {
+ return nil
+ }
+ case .array:
+ do {
+ if !(options[.castNilToNSNull] as? Bool ?? false) {
+ let jsonOption = options[.jsonSerialization] as? JSONSerialization.WritingOptions ?? JSONSerialization.WritingOptions.prettyPrinted
+ let data = try self.rawData(options: jsonOption)
+ return String(data: data, encoding: encoding)
+ }
+
+ guard let array = self.object as? [Any?] else {
+ return nil
+ }
+ let body = try array.map { value throws -> String in
+ guard let unwrappedValue = value else {
+ return "null"
+ }
+
+ let nestedValue = JSON(unwrappedValue)
+ guard let nestedString = try nestedValue._rawString(encoding, options: options, maxObjectDepth: maxObjectDepth - 1) else {
+ throw SwiftyJSONError.invalidJSON
+ }
+ if nestedValue.type == .string {
+ return "\"\(nestedString.replacingOccurrences(of: "\\", with: "\\\\").replacingOccurrences(of: "\"", with: "\\\""))\""
+ } else {
+ return nestedString
+ }
+ }
+
+ return "[\(body.joined(separator: ","))]"
+ } catch _ {
+ return nil
+ }
+ case .string:
+ return self.rawString
+ case .number:
+ return self.rawNumber.stringValue
+ case .bool:
+ return self.rawBool.description
+ case .null:
+ return "null"
+ default:
+ return nil
+ }
+ }
+}
+
+// MARK: - Printable, DebugPrintable
+
+extension JSON: Swift.CustomStringConvertible, Swift.CustomDebugStringConvertible {
+
+ public var description: String {
+ if let string = self.rawString(options: .prettyPrinted) {
+ return string
+ } else {
+ return "unknown"
+ }
+ }
+
+ public var debugDescription: String {
+ return description
+ }
+}
+
+// MARK: - Array
+
+extension JSON {
+
+ //Optional [JSON]
+ public var array: [JSON]? {
+ if self.type == .array {
+ return self.rawArray.map { JSON($0) }
+ } else {
+ return nil
+ }
+ }
+
+ //Non-optional [JSON]
+ public var arrayValue: [JSON] {
+ return self.array ?? []
+ }
+
+ //Optional [Any]
+ public var arrayObject: [Any]? {
+ get {
+ switch self.type {
+ case .array:
+ return self.rawArray
+ default:
+ return nil
+ }
+ }
+ set {
+ if let array = newValue {
+ self.object = array
+ } else {
+ self.object = NSNull()
+ }
+ }
+ }
+}
+
+// MARK: - Dictionary
+
+extension JSON {
+
+ //Optional [String : JSON]
+ public var dictionary: [String: JSON]? {
+ if self.type == .dictionary {
+ var d = [String: JSON](minimumCapacity: rawDictionary.count)
+ for (key, value) in rawDictionary {
+ d[key] = JSON(value)
+ }
+ return d
+ } else {
+ return nil
+ }
+ }
+
+ //Non-optional [String : JSON]
+ public var dictionaryValue: [String: JSON] {
+ return self.dictionary ?? [:]
+ }
+
+ //Optional [String : Any]
+
+ public var dictionaryObject: [String: Any]? {
+ get {
+ switch self.type {
+ case .dictionary:
+ return self.rawDictionary
+ default:
+ return nil
+ }
+ }
+ set {
+ if let v = newValue {
+ self.object = v
+ } else {
+ self.object = NSNull()
+ }
+ }
+ }
+}
+
+// MARK: - Bool
+
+extension JSON { // : Swift.Bool
+
+ //Optional bool
+ public var bool: Bool? {
+ get {
+ switch self.type {
+ case .bool:
+ return self.rawBool
+ default:
+ return nil
+ }
+ }
+ set {
+ if let newValue = newValue {
+ self.object = newValue as Bool
+ } else {
+ self.object = NSNull()
+ }
+ }
+ }
+
+ //Non-optional bool
+ public var boolValue: Bool {
+ get {
+ switch self.type {
+ case .bool:
+ return self.rawBool
+ case .number:
+ return self.rawNumber.boolValue
+ case .string:
+ return ["true", "y", "t", "yes", "1"].contains { self.rawString.caseInsensitiveCompare($0) == .orderedSame }
+ default:
+ return false
+ }
+ }
+ set {
+ self.object = newValue
+ }
+ }
+}
+
+// MARK: - String
+
+extension JSON {
+
+ //Optional string
+ public var string: String? {
+ get {
+ switch self.type {
+ case .string:
+ return self.object as? String
+ default:
+ return nil
+ }
+ }
+ set {
+ if let newValue = newValue {
+ self.object = NSString(string: newValue)
+ } else {
+ self.object = NSNull()
+ }
+ }
+ }
+
+ //Non-optional string
+ public var stringValue: String {
+ get {
+ switch self.type {
+ case .string:
+ return self.object as? String ?? ""
+ case .number:
+ return self.rawNumber.stringValue
+ case .bool:
+ return (self.object as? Bool).map { String($0) } ?? ""
+ default:
+ return ""
+ }
+ }
+ set {
+ self.object = NSString(string: newValue)
+ }
+ }
+}
+
+// MARK: - Number
+
+extension JSON {
+
+ //Optional number
+ public var number: NSNumber? {
+ get {
+ switch self.type {
+ case .number:
+ return self.rawNumber
+ case .bool:
+ return NSNumber(value: self.rawBool ? 1 : 0)
+ default:
+ return nil
+ }
+ }
+ set {
+ self.object = newValue ?? NSNull()
+ }
+ }
+
+ //Non-optional number
+ public var numberValue: NSNumber {
+ get {
+ switch self.type {
+ case .string:
+ let decimal = NSDecimalNumber(string: self.object as? String)
+ if decimal == NSDecimalNumber.notANumber { // indicates parse error
+ return NSDecimalNumber.zero
+ }
+ return decimal
+ case .number:
+ return self.object as? NSNumber ?? NSNumber(value: 0)
+ case .bool:
+ return NSNumber(value: self.rawBool ? 1 : 0)
+ default:
+ return NSNumber(value: 0.0)
+ }
+ }
+ set {
+ self.object = newValue
+ }
+ }
+}
+
+// MARK: - Null
+
+extension JSON {
+
+ public var null: NSNull? {
+ get {
+ switch self.type {
+ case .null:
+ return self.rawNull
+ default:
+ return nil
+ }
+ }
+ set {
+ self.object = NSNull()
+ }
+ }
+ public func exists() -> Bool {
+ if let errorValue = error, (400...1000).contains(errorValue.errorCode) {
+ return false
+ }
+ return true
+ }
+}
+
+// MARK: - URL
+
+extension JSON {
+
+ //Optional URL
+ public var url: URL? {
+ get {
+ switch self.type {
+ case .string:
+ // Check for existing percent escapes first to prevent double-escaping of % character
+ if self.rawString.range(of: "%[0-9A-Fa-f]{2}", options: .regularExpression, range: nil, locale: nil) != nil {
+ return Foundation.URL(string: self.rawString)
+ } else if let encodedString_ = self.rawString.addingPercentEncoding(withAllowedCharacters: CharacterSet.urlQueryAllowed) {
+ // We have to use `Foundation.URL` otherwise it conflicts with the variable name.
+ return Foundation.URL(string: encodedString_)
+ } else {
+ return nil
+ }
+ default:
+ return nil
+ }
+ }
+ set {
+ self.object = newValue?.absoluteString ?? NSNull()
+ }
+ }
+}
+
+// MARK: - Int, Double, Float, Int8, Int16, Int32, Int64
+
+extension JSON {
+
+ public var double: Double? {
+ get {
+ return self.number?.doubleValue
+ }
+ set {
+ if let newValue = newValue {
+ self.object = NSNumber(value: newValue)
+ } else {
+ self.object = NSNull()
+ }
+ }
+ }
+
+ public var doubleValue: Double {
+ get {
+ return self.numberValue.doubleValue
+ }
+ set {
+ self.object = NSNumber(value: newValue)
+ }
+ }
+
+ public var float: Float? {
+ get {
+ return self.number?.floatValue
+ }
+ set {
+ if let newValue = newValue {
+ self.object = NSNumber(value: newValue)
+ } else {
+ self.object = NSNull()
+ }
+ }
+ }
+
+ public var floatValue: Float {
+ get {
+ return self.numberValue.floatValue
+ }
+ set {
+ self.object = NSNumber(value: newValue)
+ }
+ }
+
+ public var int: Int? {
+ get {
+ return self.number?.intValue
+ }
+ set {
+ if let newValue = newValue {
+ self.object = NSNumber(value: newValue)
+ } else {
+ self.object = NSNull()
+ }
+ }
+ }
+
+ public var intValue: Int {
+ get {
+ return self.numberValue.intValue
+ }
+ set {
+ self.object = NSNumber(value: newValue)
+ }
+ }
+
+ public var uInt: UInt? {
+ get {
+ return self.number?.uintValue
+ }
+ set {
+ if let newValue = newValue {
+ self.object = NSNumber(value: newValue)
+ } else {
+ self.object = NSNull()
+ }
+ }
+ }
+
+ public var uIntValue: UInt {
+ get {
+ return self.numberValue.uintValue
+ }
+ set {
+ self.object = NSNumber(value: newValue)
+ }
+ }
+
+ public var int8: Int8? {
+ get {
+ return self.number?.int8Value
+ }
+ set {
+ if let newValue = newValue {
+ self.object = NSNumber(value: Int(newValue))
+ } else {
+ self.object = NSNull()
+ }
+ }
+ }
+
+ public var int8Value: Int8 {
+ get {
+ return self.numberValue.int8Value
+ }
+ set {
+ self.object = NSNumber(value: Int(newValue))
+ }
+ }
+
+ public var uInt8: UInt8? {
+ get {
+ return self.number?.uint8Value
+ }
+ set {
+ if let newValue = newValue {
+ self.object = NSNumber(value: newValue)
+ } else {
+ self.object = NSNull()
+ }
+ }
+ }
+
+ public var uInt8Value: UInt8 {
+ get {
+ return self.numberValue.uint8Value
+ }
+ set {
+ self.object = NSNumber(value: newValue)
+ }
+ }
+
+ public var int16: Int16? {
+ get {
+ return self.number?.int16Value
+ }
+ set {
+ if let newValue = newValue {
+ self.object = NSNumber(value: newValue)
+ } else {
+ self.object = NSNull()
+ }
+ }
+ }
+
+ public var int16Value: Int16 {
+ get {
+ return self.numberValue.int16Value
+ }
+ set {
+ self.object = NSNumber(value: newValue)
+ }
+ }
+
+ public var uInt16: UInt16? {
+ get {
+ return self.number?.uint16Value
+ }
+ set {
+ if let newValue = newValue {
+ self.object = NSNumber(value: newValue)
+ } else {
+ self.object = NSNull()
+ }
+ }
+ }
+
+ public var uInt16Value: UInt16 {
+ get {
+ return self.numberValue.uint16Value
+ }
+ set {
+ self.object = NSNumber(value: newValue)
+ }
+ }
+
+ public var int32: Int32? {
+ get {
+ return self.number?.int32Value
+ }
+ set {
+ if let newValue = newValue {
+ self.object = NSNumber(value: newValue)
+ } else {
+ self.object = NSNull()
+ }
+ }
+ }
+
+ public var int32Value: Int32 {
+ get {
+ return self.numberValue.int32Value
+ }
+ set {
+ self.object = NSNumber(value: newValue)
+ }
+ }
+
+ public var uInt32: UInt32? {
+ get {
+ return self.number?.uint32Value
+ }
+ set {
+ if let newValue = newValue {
+ self.object = NSNumber(value: newValue)
+ } else {
+ self.object = NSNull()
+ }
+ }
+ }
+
+ public var uInt32Value: UInt32 {
+ get {
+ return self.numberValue.uint32Value
+ }
+ set {
+ self.object = NSNumber(value: newValue)
+ }
+ }
+
+ public var int64: Int64? {
+ get {
+ return self.number?.int64Value
+ }
+ set {
+ if let newValue = newValue {
+ self.object = NSNumber(value: newValue)
+ } else {
+ self.object = NSNull()
+ }
+ }
+ }
+
+ public var int64Value: Int64 {
+ get {
+ return self.numberValue.int64Value
+ }
+ set {
+ self.object = NSNumber(value: newValue)
+ }
+ }
+
+ public var uInt64: UInt64? {
+ get {
+ return self.number?.uint64Value
+ }
+ set {
+ if let newValue = newValue {
+ self.object = NSNumber(value: newValue)
+ } else {
+ self.object = NSNull()
+ }
+ }
+ }
+
+ public var uInt64Value: UInt64 {
+ get {
+ return self.numberValue.uint64Value
+ }
+ set {
+ self.object = NSNumber(value: newValue)
+ }
+ }
+}
+
+// MARK: - Comparable
+
+extension JSON: Swift.Comparable {}
+
+public func == (lhs: JSON, rhs: JSON) -> Bool {
+
+ switch (lhs.type, rhs.type) {
+ case (.number, .number):
+ return lhs.rawNumber == rhs.rawNumber
+ case (.string, .string):
+ return lhs.rawString == rhs.rawString
+ case (.bool, .bool):
+ return lhs.rawBool == rhs.rawBool
+ case (.array, .array):
+ return lhs.rawArray as NSArray == rhs.rawArray as NSArray
+ case (.dictionary, .dictionary):
+ return lhs.rawDictionary as NSDictionary == rhs.rawDictionary as NSDictionary
+ case (.null, .null):
+ return true
+ default:
+ return false
+ }
+}
+
+public func <= (lhs: JSON, rhs: JSON) -> Bool {
+
+ switch (lhs.type, rhs.type) {
+ case (.number, .number):
+ return lhs.rawNumber <= rhs.rawNumber
+ case (.string, .string):
+ return lhs.rawString <= rhs.rawString
+ case (.bool, .bool):
+ return lhs.rawBool == rhs.rawBool
+ case (.array, .array):
+ return lhs.rawArray as NSArray == rhs.rawArray as NSArray
+ case (.dictionary, .dictionary):
+ return lhs.rawDictionary as NSDictionary == rhs.rawDictionary as NSDictionary
+ case (.null, .null):
+ return true
+ default:
+ return false
+ }
+}
+
+public func >= (lhs: JSON, rhs: JSON) -> Bool {
+
+ switch (lhs.type, rhs.type) {
+ case (.number, .number):
+ return lhs.rawNumber >= rhs.rawNumber
+ case (.string, .string):
+ return lhs.rawString >= rhs.rawString
+ case (.bool, .bool):
+ return lhs.rawBool == rhs.rawBool
+ case (.array, .array):
+ return lhs.rawArray as NSArray == rhs.rawArray as NSArray
+ case (.dictionary, .dictionary):
+ return lhs.rawDictionary as NSDictionary == rhs.rawDictionary as NSDictionary
+ case (.null, .null):
+ return true
+ default:
+ return false
+ }
+}
+
+public func > (lhs: JSON, rhs: JSON) -> Bool {
+
+ switch (lhs.type, rhs.type) {
+ case (.number, .number):
+ return lhs.rawNumber > rhs.rawNumber
+ case (.string, .string):
+ return lhs.rawString > rhs.rawString
+ default:
+ return false
+ }
+}
+
+public func < (lhs: JSON, rhs: JSON) -> Bool {
+
+ switch (lhs.type, rhs.type) {
+ case (.number, .number):
+ return lhs.rawNumber < rhs.rawNumber
+ case (.string, .string):
+ return lhs.rawString < rhs.rawString
+ default:
+ return false
+ }
+}
+
+private let trueNumber = NSNumber(value: true)
+private let falseNumber = NSNumber(value: false)
+private let trueObjCType = String(cString: trueNumber.objCType)
+private let falseObjCType = String(cString: falseNumber.objCType)
+
+// MARK: - NSNumber: Comparable
+
+extension NSNumber {
+ fileprivate var isBool: Bool {
+ let objCType = String(cString: self.objCType)
+ if (self.compare(trueNumber) == .orderedSame && objCType == trueObjCType) || (self.compare(falseNumber) == .orderedSame && objCType == falseObjCType) {
+ return true
+ } else {
+ return false
+ }
+ }
+}
+
+func == (lhs: NSNumber, rhs: NSNumber) -> Bool {
+ switch (lhs.isBool, rhs.isBool) {
+ case (false, true):
+ return false
+ case (true, false):
+ return false
+ default:
+ return lhs.compare(rhs) == .orderedSame
+ }
+}
+
+func != (lhs: NSNumber, rhs: NSNumber) -> Bool {
+ return !(lhs == rhs)
+}
+
+func < (lhs: NSNumber, rhs: NSNumber) -> Bool {
+
+ switch (lhs.isBool, rhs.isBool) {
+ case (false, true):
+ return false
+ case (true, false):
+ return false
+ default:
+ return lhs.compare(rhs) == .orderedAscending
+ }
+}
+
+func > (lhs: NSNumber, rhs: NSNumber) -> Bool {
+
+ switch (lhs.isBool, rhs.isBool) {
+ case (false, true):
+ return false
+ case (true, false):
+ return false
+ default:
+ return lhs.compare(rhs) == ComparisonResult.orderedDescending
+ }
+}
+
+func <= (lhs: NSNumber, rhs: NSNumber) -> Bool {
+
+ switch (lhs.isBool, rhs.isBool) {
+ case (false, true):
+ return false
+ case (true, false):
+ return false
+ default:
+ return lhs.compare(rhs) != .orderedDescending
+ }
+}
+
+func >= (lhs: NSNumber, rhs: NSNumber) -> Bool {
+
+ switch (lhs.isBool, rhs.isBool) {
+ case (false, true):
+ return false
+ case (true, false):
+ return false
+ default:
+ return lhs.compare(rhs) != .orderedAscending
+ }
+}
+
+public enum writingOptionsKeys {
+ case jsonSerialization
+ case castNilToNSNull
+ case maxObjextDepth
+ case encoding
+}
+
+// MARK: - JSON: Codable
+extension JSON: Codable {
+ private static var codableTypes: [Codable.Type] {
+ return [
+ Bool.self,
+ Int.self,
+ Int8.self,
+ Int16.self,
+ Int32.self,
+ Int64.self,
+ UInt.self,
+ UInt8.self,
+ UInt16.self,
+ UInt32.self,
+ UInt64.self,
+ Double.self,
+ String.self,
+ [JSON].self,
+ [String: JSON].self
+ ]
+ }
+ public init(from decoder: Decoder) throws {
+ var object: Any?
+
+ if let container = try? decoder.singleValueContainer(), !container.decodeNil() {
+ for type in JSON.codableTypes {
+ if object != nil {
+ break
+ }
+ // try to decode value
+ switch type {
+ case let boolType as Bool.Type:
+ object = try? container.decode(boolType)
+ case let intType as Int.Type:
+ object = try? container.decode(intType)
+ case let int8Type as Int8.Type:
+ object = try? container.decode(int8Type)
+ case let int32Type as Int32.Type:
+ object = try? container.decode(int32Type)
+ case let int64Type as Int64.Type:
+ object = try? container.decode(int64Type)
+ case let uintType as UInt.Type:
+ object = try? container.decode(uintType)
+ case let uint8Type as UInt8.Type:
+ object = try? container.decode(uint8Type)
+ case let uint16Type as UInt16.Type:
+ object = try? container.decode(uint16Type)
+ case let uint32Type as UInt32.Type:
+ object = try? container.decode(uint32Type)
+ case let uint64Type as UInt64.Type:
+ object = try? container.decode(uint64Type)
+ case let doubleType as Double.Type:
+ object = try? container.decode(doubleType)
+ case let stringType as String.Type:
+ object = try? container.decode(stringType)
+ case let jsonValueArrayType as [JSON].Type:
+ object = try? container.decode(jsonValueArrayType)
+ case let jsonValueDictType as [String: JSON].Type:
+ object = try? container.decode(jsonValueDictType)
+ default:
+ break
+ }
+ }
+ }
+ self.init(object ?? NSNull())
+ }
+ public func encode(to encoder: Encoder) throws {
+ var container = encoder.singleValueContainer()
+ if object is NSNull {
+ try container.encodeNil()
+ return
+ }
+ switch object {
+ case let intValue as Int:
+ try container.encode(intValue)
+ case let int8Value as Int8:
+ try container.encode(int8Value)
+ case let int32Value as Int32:
+ try container.encode(int32Value)
+ case let int64Value as Int64:
+ try container.encode(int64Value)
+ case let uintValue as UInt:
+ try container.encode(uintValue)
+ case let uint8Value as UInt8:
+ try container.encode(uint8Value)
+ case let uint16Value as UInt16:
+ try container.encode(uint16Value)
+ case let uint32Value as UInt32:
+ try container.encode(uint32Value)
+ case let uint64Value as UInt64:
+ try container.encode(uint64Value)
+ case let doubleValue as Double:
+ try container.encode(doubleValue)
+ case let boolValue as Bool:
+ try container.encode(boolValue)
+ case let stringValue as String:
+ try container.encode(stringValue)
+ case is [Any]:
+ let jsonValueArray = array ?? []
+ try container.encode(jsonValueArray)
+ case is [String: Any]:
+ let jsonValueDictValue = dictionary ?? [:]
+ try container.encode(jsonValueDictValue)
+ default:
+ break
+ }
+ }
+}
diff --git a/iOS/MSTG-JWT/Pods/Target Support Files/Alamofire/Alamofire-dummy.m b/iOS/MSTG-JWT/Pods/Target Support Files/Alamofire/Alamofire-dummy.m
new file mode 100644
index 0000000..a6c4594
--- /dev/null
+++ b/iOS/MSTG-JWT/Pods/Target Support Files/Alamofire/Alamofire-dummy.m
@@ -0,0 +1,5 @@
+#import
+@interface PodsDummy_Alamofire : NSObject
+@end
+@implementation PodsDummy_Alamofire
+@end
diff --git a/iOS/MSTG-JWT/Pods/Target Support Files/Alamofire/Alamofire-prefix.pch b/iOS/MSTG-JWT/Pods/Target Support Files/Alamofire/Alamofire-prefix.pch
new file mode 100644
index 0000000..beb2a24
--- /dev/null
+++ b/iOS/MSTG-JWT/Pods/Target Support Files/Alamofire/Alamofire-prefix.pch
@@ -0,0 +1,12 @@
+#ifdef __OBJC__
+#import
+#else
+#ifndef FOUNDATION_EXPORT
+#if defined(__cplusplus)
+#define FOUNDATION_EXPORT extern "C"
+#else
+#define FOUNDATION_EXPORT extern
+#endif
+#endif
+#endif
+
diff --git a/iOS/MSTG-JWT/Pods/Target Support Files/Alamofire/Alamofire-umbrella.h b/iOS/MSTG-JWT/Pods/Target Support Files/Alamofire/Alamofire-umbrella.h
new file mode 100644
index 0000000..00014e3
--- /dev/null
+++ b/iOS/MSTG-JWT/Pods/Target Support Files/Alamofire/Alamofire-umbrella.h
@@ -0,0 +1,16 @@
+#ifdef __OBJC__
+#import
+#else
+#ifndef FOUNDATION_EXPORT
+#if defined(__cplusplus)
+#define FOUNDATION_EXPORT extern "C"
+#else
+#define FOUNDATION_EXPORT extern
+#endif
+#endif
+#endif
+
+
+FOUNDATION_EXPORT double AlamofireVersionNumber;
+FOUNDATION_EXPORT const unsigned char AlamofireVersionString[];
+
diff --git a/iOS/MSTG-JWT/Pods/Target Support Files/Alamofire/Alamofire.modulemap b/iOS/MSTG-JWT/Pods/Target Support Files/Alamofire/Alamofire.modulemap
new file mode 100644
index 0000000..d1f125f
--- /dev/null
+++ b/iOS/MSTG-JWT/Pods/Target Support Files/Alamofire/Alamofire.modulemap
@@ -0,0 +1,6 @@
+framework module Alamofire {
+ umbrella header "Alamofire-umbrella.h"
+
+ export *
+ module * { export * }
+}
diff --git a/iOS/MSTG-JWT/Pods/Target Support Files/Alamofire/Alamofire.xcconfig b/iOS/MSTG-JWT/Pods/Target Support Files/Alamofire/Alamofire.xcconfig
new file mode 100644
index 0000000..6b8baab
--- /dev/null
+++ b/iOS/MSTG-JWT/Pods/Target Support Files/Alamofire/Alamofire.xcconfig
@@ -0,0 +1,9 @@
+CONFIGURATION_BUILD_DIR = ${PODS_CONFIGURATION_BUILD_DIR}/Alamofire
+GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1
+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}/Alamofire
+PRODUCT_BUNDLE_IDENTIFIER = org.cocoapods.${PRODUCT_NAME:rfc1034identifier}
+SKIP_INSTALL = YES
diff --git a/iOS/MSTG-JWT/Pods/Target Support Files/Alamofire/Info.plist b/iOS/MSTG-JWT/Pods/Target Support Files/Alamofire/Info.plist
new file mode 100644
index 0000000..eaa7c2e
--- /dev/null
+++ b/iOS/MSTG-JWT/Pods/Target Support Files/Alamofire/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.5.1
+ CFBundleSignature
+ ????
+ CFBundleVersion
+ ${CURRENT_PROJECT_VERSION}
+ NSPrincipalClass
+
+
+
diff --git a/iOS/MSTG-JWT/Pods/Target Support Files/KeychainSwift/Info.plist b/iOS/MSTG-JWT/Pods/Target Support Files/KeychainSwift/Info.plist
new file mode 100644
index 0000000..a5b642f
--- /dev/null
+++ b/iOS/MSTG-JWT/Pods/Target Support Files/KeychainSwift/Info.plist
@@ -0,0 +1,26 @@
+
+
+
+
+ CFBundleDevelopmentRegion
+ en
+ CFBundleExecutable
+ ${EXECUTABLE_NAME}
+ CFBundleIdentifier
+ ${PRODUCT_BUNDLE_IDENTIFIER}
+ CFBundleInfoDictionaryVersion
+ 6.0
+ CFBundleName
+ ${PRODUCT_NAME}
+ CFBundlePackageType
+ FMWK
+ CFBundleShortVersionString
+ 12.0.0
+ CFBundleSignature
+ ????
+ CFBundleVersion
+ ${CURRENT_PROJECT_VERSION}
+ NSPrincipalClass
+
+
+
diff --git a/iOS/MSTG-JWT/Pods/Target Support Files/KeychainSwift/KeychainSwift-dummy.m b/iOS/MSTG-JWT/Pods/Target Support Files/KeychainSwift/KeychainSwift-dummy.m
new file mode 100644
index 0000000..ab17f9f
--- /dev/null
+++ b/iOS/MSTG-JWT/Pods/Target Support Files/KeychainSwift/KeychainSwift-dummy.m
@@ -0,0 +1,5 @@
+#import
+@interface PodsDummy_KeychainSwift : NSObject
+@end
+@implementation PodsDummy_KeychainSwift
+@end
diff --git a/iOS/MSTG-JWT/Pods/Target Support Files/KeychainSwift/KeychainSwift-prefix.pch b/iOS/MSTG-JWT/Pods/Target Support Files/KeychainSwift/KeychainSwift-prefix.pch
new file mode 100644
index 0000000..beb2a24
--- /dev/null
+++ b/iOS/MSTG-JWT/Pods/Target Support Files/KeychainSwift/KeychainSwift-prefix.pch
@@ -0,0 +1,12 @@
+#ifdef __OBJC__
+#import
+#else
+#ifndef FOUNDATION_EXPORT
+#if defined(__cplusplus)
+#define FOUNDATION_EXPORT extern "C"
+#else
+#define FOUNDATION_EXPORT extern
+#endif
+#endif
+#endif
+
diff --git a/iOS/MSTG-JWT/Pods/Target Support Files/KeychainSwift/KeychainSwift-umbrella.h b/iOS/MSTG-JWT/Pods/Target Support Files/KeychainSwift/KeychainSwift-umbrella.h
new file mode 100644
index 0000000..bb37bd5
--- /dev/null
+++ b/iOS/MSTG-JWT/Pods/Target Support Files/KeychainSwift/KeychainSwift-umbrella.h
@@ -0,0 +1,16 @@
+#ifdef __OBJC__
+#import
+#else
+#ifndef FOUNDATION_EXPORT
+#if defined(__cplusplus)
+#define FOUNDATION_EXPORT extern "C"
+#else
+#define FOUNDATION_EXPORT extern
+#endif
+#endif
+#endif
+
+
+FOUNDATION_EXPORT double KeychainSwiftVersionNumber;
+FOUNDATION_EXPORT const unsigned char KeychainSwiftVersionString[];
+
diff --git a/iOS/MSTG-JWT/Pods/Target Support Files/KeychainSwift/KeychainSwift.modulemap b/iOS/MSTG-JWT/Pods/Target Support Files/KeychainSwift/KeychainSwift.modulemap
new file mode 100644
index 0000000..c09b75a
--- /dev/null
+++ b/iOS/MSTG-JWT/Pods/Target Support Files/KeychainSwift/KeychainSwift.modulemap
@@ -0,0 +1,6 @@
+framework module KeychainSwift {
+ umbrella header "KeychainSwift-umbrella.h"
+
+ export *
+ module * { export * }
+}
diff --git a/iOS/MSTG-JWT/Pods/Target Support Files/KeychainSwift/KeychainSwift.xcconfig b/iOS/MSTG-JWT/Pods/Target Support Files/KeychainSwift/KeychainSwift.xcconfig
new file mode 100644
index 0000000..1bd92ed
--- /dev/null
+++ b/iOS/MSTG-JWT/Pods/Target Support Files/KeychainSwift/KeychainSwift.xcconfig
@@ -0,0 +1,9 @@
+CONFIGURATION_BUILD_DIR = ${PODS_CONFIGURATION_BUILD_DIR}/KeychainSwift
+GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1
+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}/KeychainSwift
+PRODUCT_BUNDLE_IDENTIFIER = org.cocoapods.${PRODUCT_NAME:rfc1034identifier}
+SKIP_INSTALL = YES
diff --git a/iOS/MSTG-JWT/Pods/Target Support Files/Pods-MSTG-JWT/Info.plist b/iOS/MSTG-JWT/Pods/Target Support Files/Pods-MSTG-JWT/Info.plist
new file mode 100644
index 0000000..2243fe6
--- /dev/null
+++ b/iOS/MSTG-JWT/Pods/Target Support Files/Pods-MSTG-JWT/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/iOS/MSTG-JWT/Pods/Target Support Files/Pods-MSTG-JWT/Pods-MSTG-JWT-acknowledgements.markdown b/iOS/MSTG-JWT/Pods/Target Support Files/Pods-MSTG-JWT/Pods-MSTG-JWT-acknowledgements.markdown
new file mode 100644
index 0000000..7da4a3c
--- /dev/null
+++ b/iOS/MSTG-JWT/Pods/Target Support Files/Pods-MSTG-JWT/Pods-MSTG-JWT-acknowledgements.markdown
@@ -0,0 +1,75 @@
+# Acknowledgements
+This application makes use of the following third party libraries:
+
+## Alamofire
+
+Copyright (c) 2014-2017 Alamofire Software Foundation (http://alamofire.org/)
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in
+all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+THE SOFTWARE.
+
+
+## KeychainSwift
+
+The MIT License
+
+Copyright (c) 2015 Evgenii Neumerzhitckii
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in
+all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+THE SOFTWARE.
+
+## SwiftyJSON
+
+The MIT License (MIT)
+
+Copyright (c) 2017 Ruoyu Fu
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in
+all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+THE SOFTWARE.
+
+Generated by CocoaPods - https://cocoapods.org
diff --git a/iOS/MSTG-JWT/Pods/Target Support Files/Pods-MSTG-JWT/Pods-MSTG-JWT-acknowledgements.plist b/iOS/MSTG-JWT/Pods/Target Support Files/Pods-MSTG-JWT/Pods-MSTG-JWT-acknowledgements.plist
new file mode 100644
index 0000000..1fd9e2f
--- /dev/null
+++ b/iOS/MSTG-JWT/Pods/Target Support Files/Pods-MSTG-JWT/Pods-MSTG-JWT-acknowledgements.plist
@@ -0,0 +1,119 @@
+
+
+
+
+ PreferenceSpecifiers
+
+
+ FooterText
+ This application makes use of the following third party libraries:
+ Title
+ Acknowledgements
+ Type
+ PSGroupSpecifier
+
+
+ FooterText
+ Copyright (c) 2014-2017 Alamofire Software Foundation (http://alamofire.org/)
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in
+all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+THE SOFTWARE.
+
+ License
+ MIT
+ Title
+ Alamofire
+ Type
+ PSGroupSpecifier
+
+
+ FooterText
+ The MIT License
+
+Copyright (c) 2015 Evgenii Neumerzhitckii
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in
+all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+THE SOFTWARE.
+ License
+ MIT
+ Title
+ KeychainSwift
+ Type
+ PSGroupSpecifier
+
+
+ FooterText
+ The MIT License (MIT)
+
+Copyright (c) 2017 Ruoyu Fu
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in
+all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+THE SOFTWARE.
+
+ License
+ MIT
+ Title
+ SwiftyJSON
+ Type
+ PSGroupSpecifier
+
+
+ FooterText
+ Generated by CocoaPods - https://cocoapods.org
+ Title
+
+ Type
+ PSGroupSpecifier
+
+
+ StringsTable
+ Acknowledgements
+ Title
+ Acknowledgements
+
+
diff --git a/iOS/MSTG-JWT/Pods/Target Support Files/Pods-MSTG-JWT/Pods-MSTG-JWT-dummy.m b/iOS/MSTG-JWT/Pods/Target Support Files/Pods-MSTG-JWT/Pods-MSTG-JWT-dummy.m
new file mode 100644
index 0000000..d288c0f
--- /dev/null
+++ b/iOS/MSTG-JWT/Pods/Target Support Files/Pods-MSTG-JWT/Pods-MSTG-JWT-dummy.m
@@ -0,0 +1,5 @@
+#import
+@interface PodsDummy_Pods_MSTG_JWT : NSObject
+@end
+@implementation PodsDummy_Pods_MSTG_JWT
+@end
diff --git a/iOS/MSTG-JWT/Pods/Target Support Files/Pods-MSTG-JWT/Pods-MSTG-JWT-frameworks.sh b/iOS/MSTG-JWT/Pods/Target Support Files/Pods-MSTG-JWT/Pods-MSTG-JWT-frameworks.sh
new file mode 100755
index 0000000..3ec7ca3
--- /dev/null
+++ b/iOS/MSTG-JWT/Pods/Target Support Files/Pods-MSTG-JWT/Pods-MSTG-JWT-frameworks.sh
@@ -0,0 +1,157 @@
+#!/bin/sh
+set -e
+set -u
+set -o pipefail
+
+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.
+STRIP_BINARY_RETVAL=0
+
+# This protects against multiple targets copying the same framework dependency at the same time. The solution
+# was originally proposed here: https://lists.samba.org/archive/rsync/2008-February/020158.html
+RSYNC_PROTECT_TMP_FILES=(--filter "P .*.??????")
+
+# Copies and strips a vendored framework
+install_framework()
+{
+ if [ -r "${BUILT_PRODUCTS_DIR}/$1" ]; then
+ local source="${BUILT_PRODUCTS_DIR}/$1"
+ elif [ -r "${BUILT_PRODUCTS_DIR}/$(basename "$1")" ]; then
+ local source="${BUILT_PRODUCTS_DIR}/$(basename "$1")"
+ elif [ -r "$1" ]; then
+ local source="$1"
+ fi
+
+ local destination="${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}"
+
+ if [ -L "${source}" ]; then
+ echo "Symlinked..."
+ source="$(readlink "${source}")"
+ fi
+
+ # Use filter instead of exclude so missing patterns don't throw errors.
+ echo "rsync --delete -av "${RSYNC_PROTECT_TMP_FILES[@]}" --filter \"- CVS/\" --filter \"- .svn/\" --filter \"- .git/\" --filter \"- .hg/\" --filter \"- Headers\" --filter \"- PrivateHeaders\" --filter \"- Modules\" \"${source}\" \"${destination}\""
+ rsync --delete -av "${RSYNC_PROTECT_TMP_FILES[@]}" --filter "- CVS/" --filter "- .svn/" --filter "- .git/" --filter "- .hg/" --filter "- Headers" --filter "- PrivateHeaders" --filter "- Modules" "${source}" "${destination}"
+
+ local basename
+ basename="$(basename -s .framework "$1")"
+ binary="${destination}/${basename}.framework/${basename}"
+ if ! [ -r "$binary" ]; then
+ binary="${destination}/${basename}"
+ fi
+
+ # Strip invalid architectures so "fat" simulator / device frameworks work on device
+ if [[ "$(file "$binary")" == *"dynamically linked shared library"* ]]; then
+ strip_invalid_archs "$binary"
+ fi
+
+ # Resign the code if required by the build settings to avoid unstable apps
+ code_sign_if_enabled "${destination}/$(basename "$1")"
+
+ # 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]})
+ for lib in $swift_runtime_libs; do
+ echo "rsync -auv \"${SWIFT_STDLIB_PATH}/${lib}\" \"${destination}\""
+ rsync -auv "${SWIFT_STDLIB_PATH}/${lib}" "${destination}"
+ code_sign_if_enabled "${destination}/${lib}"
+ done
+ fi
+}
+
+# Copies and strips a vendored dSYM
+install_dsym() {
+ local source="$1"
+ if [ -r "$source" ]; then
+ # Copy the dSYM into a the targets temp dir.
+ echo "rsync --delete -av "${RSYNC_PROTECT_TMP_FILES[@]}" --filter \"- CVS/\" --filter \"- .svn/\" --filter \"- .git/\" --filter \"- .hg/\" --filter \"- Headers\" --filter \"- PrivateHeaders\" --filter \"- Modules\" \"${source}\" \"${DERIVED_FILES_DIR}\""
+ rsync --delete -av "${RSYNC_PROTECT_TMP_FILES[@]}" --filter "- CVS/" --filter "- .svn/" --filter "- .git/" --filter "- .hg/" --filter "- Headers" --filter "- PrivateHeaders" --filter "- Modules" "${source}" "${DERIVED_FILES_DIR}"
+
+ local basename
+ basename="$(basename -s .framework.dSYM "$source")"
+ 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
+ strip_invalid_archs "$binary"
+ fi
+
+ if [[ $STRIP_BINARY_RETVAL == 1 ]]; then
+ # Move the stripped file into its final destination.
+ echo "rsync --delete -av "${RSYNC_PROTECT_TMP_FILES[@]}" --filter \"- CVS/\" --filter \"- .svn/\" --filter \"- .git/\" --filter \"- .hg/\" --filter \"- Headers\" --filter \"- PrivateHeaders\" --filter \"- Modules\" \"${DERIVED_FILES_DIR}/${basename}.framework.dSYM\" \"${DWARF_DSYM_FOLDER_PATH}\""
+ rsync --delete -av "${RSYNC_PROTECT_TMP_FILES[@]}" --filter "- CVS/" --filter "- .svn/" --filter "- .git/" --filter "- .hg/" --filter "- Headers" --filter "- PrivateHeaders" --filter "- Modules" "${DERIVED_FILES_DIR}/${basename}.framework.dSYM" "${DWARF_DSYM_FOLDER_PATH}"
+ else
+ # The dSYM was not stripped at all, in this case touch a fake folder so the input/output paths from Xcode do not reexecute this script because the file is missing.
+ touch "${DWARF_DSYM_FOLDER_PATH}/${basename}.framework.dSYM"
+ fi
+ fi
+}
+
+# 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
+ 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'"
+
+ if [ "${COCOAPODS_PARALLEL_CODE_SIGN}" == "true" ]; then
+ code_sign_cmd="$code_sign_cmd &"
+ fi
+ echo "$code_sign_cmd"
+ eval "$code_sign_cmd"
+ fi
+}
+
+# Strip invalid architectures
+strip_invalid_archs() {
+ binary="$1"
+ # Get architectures for current target binary
+ binary_archs="$(lipo -info "$binary" | rev | cut -d ':' -f1 | awk '{$1=$1;print}' | rev)"
+ # Intersect them with the architectures we are building for
+ intersected_archs="$(echo ${ARCHS[@]} ${binary_archs[@]} | tr ' ' '\n' | sort | uniq -d)"
+ # If there are no archs supported by this binary then warn the user
+ if [[ -z "$intersected_archs" ]]; then
+ echo "warning: [CP] Vendored binary '$binary' contains architectures ($binary_archs) none of which match the current build architectures ($ARCHS)."
+ STRIP_BINARY_RETVAL=0
+ return
+ fi
+ stripped=""
+ for arch in $binary_archs; do
+ if ! [[ "${ARCHS}" == *"$arch"* ]]; then
+ # Strip non-valid architectures in-place
+ lipo -remove "$arch" -output "$binary" "$binary" || exit 1
+ stripped="$stripped $arch"
+ fi
+ done
+ if [[ "$stripped" ]]; then
+ echo "Stripped $binary of architectures:$stripped"
+ fi
+ STRIP_BINARY_RETVAL=1
+}
+
+
+if [[ "$CONFIGURATION" == "Debug" ]]; then
+ install_framework "${BUILT_PRODUCTS_DIR}/Alamofire/Alamofire.framework"
+ install_framework "${BUILT_PRODUCTS_DIR}/KeychainSwift/KeychainSwift.framework"
+ install_framework "${BUILT_PRODUCTS_DIR}/SwiftyJSON/SwiftyJSON.framework"
+fi
+if [[ "$CONFIGURATION" == "Release" ]]; then
+ install_framework "${BUILT_PRODUCTS_DIR}/Alamofire/Alamofire.framework"
+ install_framework "${BUILT_PRODUCTS_DIR}/KeychainSwift/KeychainSwift.framework"
+ install_framework "${BUILT_PRODUCTS_DIR}/SwiftyJSON/SwiftyJSON.framework"
+fi
+if [ "${COCOAPODS_PARALLEL_CODE_SIGN}" == "true" ]; then
+ wait
+fi
diff --git a/iOS/MSTG-JWT/Pods/Target Support Files/Pods-MSTG-JWT/Pods-MSTG-JWT-resources.sh b/iOS/MSTG-JWT/Pods/Target Support Files/Pods-MSTG-JWT/Pods-MSTG-JWT-resources.sh
new file mode 100755
index 0000000..345301f
--- /dev/null
+++ b/iOS/MSTG-JWT/Pods/Target Support Files/Pods-MSTG-JWT/Pods-MSTG-JWT-resources.sh
@@ -0,0 +1,118 @@
+#!/bin/sh
+set -e
+set -u
+set -o pipefail
+
+if [ -z ${UNLOCALIZED_RESOURCES_FOLDER_PATH+x} ]; then
+ # If UNLOCALIZED_RESOURCES_FOLDER_PATH is not set, then there's nowhere for us to copy
+ # resources to, so exit 0 (signalling the script phase was successful).
+ exit 0
+fi
+
+mkdir -p "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}"
+
+RESOURCES_TO_COPY=${PODS_ROOT}/resources-to-copy-${TARGETNAME}.txt
+> "$RESOURCES_TO_COPY"
+
+XCASSET_FILES=()
+
+# This protects against multiple targets copying the same framework dependency at the same time. The solution
+# was originally proposed here: https://lists.samba.org/archive/rsync/2008-February/020158.html
+RSYNC_PROTECT_TMP_FILES=(--filter "P .*.??????")
+
+case "${TARGETED_DEVICE_FAMILY:-}" in
+ 1,2)
+ TARGET_DEVICE_ARGS="--target-device ipad --target-device iphone"
+ ;;
+ 1)
+ TARGET_DEVICE_ARGS="--target-device iphone"
+ ;;
+ 2)
+ TARGET_DEVICE_ARGS="--target-device ipad"
+ ;;
+ 3)
+ TARGET_DEVICE_ARGS="--target-device tv"
+ ;;
+ 4)
+ TARGET_DEVICE_ARGS="--target-device watch"
+ ;;
+ *)
+ TARGET_DEVICE_ARGS="--target-device mac"
+ ;;
+esac
+
+install_resource()
+{
+ if [[ "$1" = /* ]] ; then
+ RESOURCE_PATH="$1"
+ else
+ RESOURCE_PATH="${PODS_ROOT}/$1"
+ fi
+ if [[ ! -e "$RESOURCE_PATH" ]] ; then
+ cat << EOM
+error: Resource "$RESOURCE_PATH" not found. Run 'pod install' to update the copy resources script.
+EOM
+ exit 1
+ fi
+ case $RESOURCE_PATH in
+ *.storyboard)
+ echo "ibtool --reference-external-strings-file --errors --warnings --notices --minimum-deployment-target ${!DEPLOYMENT_TARGET_SETTING_NAME} --output-format human-readable-text --compile ${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename \"$RESOURCE_PATH\" .storyboard`.storyboardc $RESOURCE_PATH --sdk ${SDKROOT} ${TARGET_DEVICE_ARGS}" || true
+ ibtool --reference-external-strings-file --errors --warnings --notices --minimum-deployment-target ${!DEPLOYMENT_TARGET_SETTING_NAME} --output-format human-readable-text --compile "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename \"$RESOURCE_PATH\" .storyboard`.storyboardc" "$RESOURCE_PATH" --sdk "${SDKROOT}" ${TARGET_DEVICE_ARGS}
+ ;;
+ *.xib)
+ echo "ibtool --reference-external-strings-file --errors --warnings --notices --minimum-deployment-target ${!DEPLOYMENT_TARGET_SETTING_NAME} --output-format human-readable-text --compile ${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename \"$RESOURCE_PATH\" .xib`.nib $RESOURCE_PATH --sdk ${SDKROOT} ${TARGET_DEVICE_ARGS}" || true
+ ibtool --reference-external-strings-file --errors --warnings --notices --minimum-deployment-target ${!DEPLOYMENT_TARGET_SETTING_NAME} --output-format human-readable-text --compile "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename \"$RESOURCE_PATH\" .xib`.nib" "$RESOURCE_PATH" --sdk "${SDKROOT}" ${TARGET_DEVICE_ARGS}
+ ;;
+ *.framework)
+ echo "mkdir -p ${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}" || true
+ mkdir -p "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}"
+ echo "rsync --delete -av "${RSYNC_PROTECT_TMP_FILES[@]}" $RESOURCE_PATH ${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}" || true
+ rsync --delete -av "${RSYNC_PROTECT_TMP_FILES[@]}" "$RESOURCE_PATH" "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}"
+ ;;
+ *.xcdatamodel)
+ echo "xcrun momc \"$RESOURCE_PATH\" \"${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename "$RESOURCE_PATH"`.mom\"" || true
+ xcrun momc "$RESOURCE_PATH" "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename "$RESOURCE_PATH" .xcdatamodel`.mom"
+ ;;
+ *.xcdatamodeld)
+ echo "xcrun momc \"$RESOURCE_PATH\" \"${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename "$RESOURCE_PATH" .xcdatamodeld`.momd\"" || true
+ xcrun momc "$RESOURCE_PATH" "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename "$RESOURCE_PATH" .xcdatamodeld`.momd"
+ ;;
+ *.xcmappingmodel)
+ echo "xcrun mapc \"$RESOURCE_PATH\" \"${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename "$RESOURCE_PATH" .xcmappingmodel`.cdm\"" || true
+ xcrun mapc "$RESOURCE_PATH" "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename "$RESOURCE_PATH" .xcmappingmodel`.cdm"
+ ;;
+ *.xcassets)
+ ABSOLUTE_XCASSET_FILE="$RESOURCE_PATH"
+ XCASSET_FILES+=("$ABSOLUTE_XCASSET_FILE")
+ ;;
+ *)
+ echo "$RESOURCE_PATH" || true
+ echo "$RESOURCE_PATH" >> "$RESOURCES_TO_COPY"
+ ;;
+ esac
+}
+
+mkdir -p "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}"
+rsync -avr --copy-links --no-relative --exclude '*/.svn/*' --files-from="$RESOURCES_TO_COPY" / "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}"
+if [[ "${ACTION}" == "install" ]] && [[ "${SKIP_INSTALL}" == "NO" ]]; then
+ mkdir -p "${INSTALL_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}"
+ rsync -avr --copy-links --no-relative --exclude '*/.svn/*' --files-from="$RESOURCES_TO_COPY" / "${INSTALL_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}"
+fi
+rm -f "$RESOURCES_TO_COPY"
+
+if [[ -n "${WRAPPER_EXTENSION}" ]] && [ "`xcrun --find actool`" ] && [ -n "${XCASSET_FILES:-}" ]
+then
+ # Find all other xcassets (this unfortunately includes those of path pods and other targets).
+ OTHER_XCASSETS=$(find "$PWD" -iname "*.xcassets" -type d)
+ while read line; do
+ if [[ $line != "${PODS_ROOT}*" ]]; then
+ XCASSET_FILES+=("$line")
+ fi
+ done <<<"$OTHER_XCASSETS"
+
+ if [ -z ${ASSETCATALOG_COMPILER_APPICON_NAME+x} ]; then
+ printf "%s\0" "${XCASSET_FILES[@]}" | xargs -0 xcrun actool --output-format human-readable-text --notices --warnings --platform "${PLATFORM_NAME}" --minimum-deployment-target "${!DEPLOYMENT_TARGET_SETTING_NAME}" ${TARGET_DEVICE_ARGS} --compress-pngs --compile "${BUILT_PRODUCTS_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}"
+ else
+ printf "%s\0" "${XCASSET_FILES[@]}" | xargs -0 xcrun actool --output-format human-readable-text --notices --warnings --platform "${PLATFORM_NAME}" --minimum-deployment-target "${!DEPLOYMENT_TARGET_SETTING_NAME}" ${TARGET_DEVICE_ARGS} --compress-pngs --compile "${BUILT_PRODUCTS_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}" --app-icon "${ASSETCATALOG_COMPILER_APPICON_NAME}" --output-partial-info-plist "${TARGET_TEMP_DIR}/assetcatalog_generated_info_cocoapods.plist"
+ fi
+fi
diff --git a/iOS/MSTG-JWT/Pods/Target Support Files/Pods-MSTG-JWT/Pods-MSTG-JWT-umbrella.h b/iOS/MSTG-JWT/Pods/Target Support Files/Pods-MSTG-JWT/Pods-MSTG-JWT-umbrella.h
new file mode 100644
index 0000000..ba72d2f
--- /dev/null
+++ b/iOS/MSTG-JWT/Pods/Target Support Files/Pods-MSTG-JWT/Pods-MSTG-JWT-umbrella.h
@@ -0,0 +1,16 @@
+#ifdef __OBJC__
+#import
+#else
+#ifndef FOUNDATION_EXPORT
+#if defined(__cplusplus)
+#define FOUNDATION_EXPORT extern "C"
+#else
+#define FOUNDATION_EXPORT extern
+#endif
+#endif
+#endif
+
+
+FOUNDATION_EXPORT double Pods_MSTG_JWTVersionNumber;
+FOUNDATION_EXPORT const unsigned char Pods_MSTG_JWTVersionString[];
+
diff --git a/iOS/MSTG-JWT/Pods/Target Support Files/Pods-MSTG-JWT/Pods-MSTG-JWT.debug.xcconfig b/iOS/MSTG-JWT/Pods/Target Support Files/Pods-MSTG-JWT/Pods-MSTG-JWT.debug.xcconfig
new file mode 100644
index 0000000..965d127
--- /dev/null
+++ b/iOS/MSTG-JWT/Pods/Target Support Files/Pods-MSTG-JWT/Pods-MSTG-JWT.debug.xcconfig
@@ -0,0 +1,11 @@
+ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES
+FRAMEWORK_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/Alamofire" "${PODS_CONFIGURATION_BUILD_DIR}/KeychainSwift" "${PODS_CONFIGURATION_BUILD_DIR}/SwiftyJSON"
+GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1
+LD_RUNPATH_SEARCH_PATHS = $(inherited) '@executable_path/Frameworks' '@loader_path/Frameworks'
+OTHER_CFLAGS = $(inherited) -iquote "${PODS_CONFIGURATION_BUILD_DIR}/Alamofire/Alamofire.framework/Headers" -iquote "${PODS_CONFIGURATION_BUILD_DIR}/KeychainSwift/KeychainSwift.framework/Headers" -iquote "${PODS_CONFIGURATION_BUILD_DIR}/SwiftyJSON/SwiftyJSON.framework/Headers"
+OTHER_LDFLAGS = $(inherited) -framework "Alamofire" -framework "KeychainSwift" -framework "SwiftyJSON"
+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}/.
+PODS_ROOT = ${SRCROOT}/Pods
diff --git a/iOS/MSTG-JWT/Pods/Target Support Files/Pods-MSTG-JWT/Pods-MSTG-JWT.modulemap b/iOS/MSTG-JWT/Pods/Target Support Files/Pods-MSTG-JWT/Pods-MSTG-JWT.modulemap
new file mode 100644
index 0000000..29c5188
--- /dev/null
+++ b/iOS/MSTG-JWT/Pods/Target Support Files/Pods-MSTG-JWT/Pods-MSTG-JWT.modulemap
@@ -0,0 +1,6 @@
+framework module Pods_MSTG_JWT {
+ umbrella header "Pods-MSTG-JWT-umbrella.h"
+
+ export *
+ module * { export * }
+}
diff --git a/iOS/MSTG-JWT/Pods/Target Support Files/Pods-MSTG-JWT/Pods-MSTG-JWT.release.xcconfig b/iOS/MSTG-JWT/Pods/Target Support Files/Pods-MSTG-JWT/Pods-MSTG-JWT.release.xcconfig
new file mode 100644
index 0000000..965d127
--- /dev/null
+++ b/iOS/MSTG-JWT/Pods/Target Support Files/Pods-MSTG-JWT/Pods-MSTG-JWT.release.xcconfig
@@ -0,0 +1,11 @@
+ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES
+FRAMEWORK_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/Alamofire" "${PODS_CONFIGURATION_BUILD_DIR}/KeychainSwift" "${PODS_CONFIGURATION_BUILD_DIR}/SwiftyJSON"
+GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1
+LD_RUNPATH_SEARCH_PATHS = $(inherited) '@executable_path/Frameworks' '@loader_path/Frameworks'
+OTHER_CFLAGS = $(inherited) -iquote "${PODS_CONFIGURATION_BUILD_DIR}/Alamofire/Alamofire.framework/Headers" -iquote "${PODS_CONFIGURATION_BUILD_DIR}/KeychainSwift/KeychainSwift.framework/Headers" -iquote "${PODS_CONFIGURATION_BUILD_DIR}/SwiftyJSON/SwiftyJSON.framework/Headers"
+OTHER_LDFLAGS = $(inherited) -framework "Alamofire" -framework "KeychainSwift" -framework "SwiftyJSON"
+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}/.
+PODS_ROOT = ${SRCROOT}/Pods
diff --git a/iOS/MSTG-JWT/Pods/Target Support Files/Pods-MSTG-JWTTests/Info.plist b/iOS/MSTG-JWT/Pods/Target Support Files/Pods-MSTG-JWTTests/Info.plist
new file mode 100644
index 0000000..2243fe6
--- /dev/null
+++ b/iOS/MSTG-JWT/Pods/Target Support Files/Pods-MSTG-JWTTests/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/iOS/MSTG-JWT/Pods/Target Support Files/Pods-MSTG-JWTTests/Pods-MSTG-JWTTests-acknowledgements.markdown b/iOS/MSTG-JWT/Pods/Target Support Files/Pods-MSTG-JWTTests/Pods-MSTG-JWTTests-acknowledgements.markdown
new file mode 100644
index 0000000..102af75
--- /dev/null
+++ b/iOS/MSTG-JWT/Pods/Target Support Files/Pods-MSTG-JWTTests/Pods-MSTG-JWTTests-acknowledgements.markdown
@@ -0,0 +1,3 @@
+# Acknowledgements
+This application makes use of the following third party libraries:
+Generated by CocoaPods - https://cocoapods.org
diff --git a/iOS/MSTG-JWT/Pods/Target Support Files/Pods-MSTG-JWTTests/Pods-MSTG-JWTTests-acknowledgements.plist b/iOS/MSTG-JWT/Pods/Target Support Files/Pods-MSTG-JWTTests/Pods-MSTG-JWTTests-acknowledgements.plist
new file mode 100644
index 0000000..7acbad1
--- /dev/null
+++ b/iOS/MSTG-JWT/Pods/Target Support Files/Pods-MSTG-JWTTests/Pods-MSTG-JWTTests-acknowledgements.plist
@@ -0,0 +1,29 @@
+
+
+
+
+ PreferenceSpecifiers
+
+
+ FooterText
+ This application makes use of the following third party libraries:
+ Title
+ Acknowledgements
+ Type
+ PSGroupSpecifier
+
+
+ FooterText
+ Generated by CocoaPods - https://cocoapods.org
+ Title
+
+ Type
+ PSGroupSpecifier
+
+
+ StringsTable
+ Acknowledgements
+ Title
+ Acknowledgements
+
+
diff --git a/iOS/MSTG-JWT/Pods/Target Support Files/Pods-MSTG-JWTTests/Pods-MSTG-JWTTests-dummy.m b/iOS/MSTG-JWT/Pods/Target Support Files/Pods-MSTG-JWTTests/Pods-MSTG-JWTTests-dummy.m
new file mode 100644
index 0000000..6ae41d1
--- /dev/null
+++ b/iOS/MSTG-JWT/Pods/Target Support Files/Pods-MSTG-JWTTests/Pods-MSTG-JWTTests-dummy.m
@@ -0,0 +1,5 @@
+#import
+@interface PodsDummy_Pods_MSTG_JWTTests : NSObject
+@end
+@implementation PodsDummy_Pods_MSTG_JWTTests
+@end
diff --git a/iOS/MSTG-JWT/Pods/Target Support Files/Pods-MSTG-JWTTests/Pods-MSTG-JWTTests-frameworks.sh b/iOS/MSTG-JWT/Pods/Target Support Files/Pods-MSTG-JWTTests/Pods-MSTG-JWTTests-frameworks.sh
new file mode 100755
index 0000000..08e3eaa
--- /dev/null
+++ b/iOS/MSTG-JWT/Pods/Target Support Files/Pods-MSTG-JWTTests/Pods-MSTG-JWTTests-frameworks.sh
@@ -0,0 +1,146 @@
+#!/bin/sh
+set -e
+set -u
+set -o pipefail
+
+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.
+STRIP_BINARY_RETVAL=0
+
+# This protects against multiple targets copying the same framework dependency at the same time. The solution
+# was originally proposed here: https://lists.samba.org/archive/rsync/2008-February/020158.html
+RSYNC_PROTECT_TMP_FILES=(--filter "P .*.??????")
+
+# Copies and strips a vendored framework
+install_framework()
+{
+ if [ -r "${BUILT_PRODUCTS_DIR}/$1" ]; then
+ local source="${BUILT_PRODUCTS_DIR}/$1"
+ elif [ -r "${BUILT_PRODUCTS_DIR}/$(basename "$1")" ]; then
+ local source="${BUILT_PRODUCTS_DIR}/$(basename "$1")"
+ elif [ -r "$1" ]; then
+ local source="$1"
+ fi
+
+ local destination="${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}"
+
+ if [ -L "${source}" ]; then
+ echo "Symlinked..."
+ source="$(readlink "${source}")"
+ fi
+
+ # Use filter instead of exclude so missing patterns don't throw errors.
+ echo "rsync --delete -av "${RSYNC_PROTECT_TMP_FILES[@]}" --filter \"- CVS/\" --filter \"- .svn/\" --filter \"- .git/\" --filter \"- .hg/\" --filter \"- Headers\" --filter \"- PrivateHeaders\" --filter \"- Modules\" \"${source}\" \"${destination}\""
+ rsync --delete -av "${RSYNC_PROTECT_TMP_FILES[@]}" --filter "- CVS/" --filter "- .svn/" --filter "- .git/" --filter "- .hg/" --filter "- Headers" --filter "- PrivateHeaders" --filter "- Modules" "${source}" "${destination}"
+
+ local basename
+ basename="$(basename -s .framework "$1")"
+ binary="${destination}/${basename}.framework/${basename}"
+ if ! [ -r "$binary" ]; then
+ binary="${destination}/${basename}"
+ fi
+
+ # Strip invalid architectures so "fat" simulator / device frameworks work on device
+ if [[ "$(file "$binary")" == *"dynamically linked shared library"* ]]; then
+ strip_invalid_archs "$binary"
+ fi
+
+ # Resign the code if required by the build settings to avoid unstable apps
+ code_sign_if_enabled "${destination}/$(basename "$1")"
+
+ # 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]})
+ for lib in $swift_runtime_libs; do
+ echo "rsync -auv \"${SWIFT_STDLIB_PATH}/${lib}\" \"${destination}\""
+ rsync -auv "${SWIFT_STDLIB_PATH}/${lib}" "${destination}"
+ code_sign_if_enabled "${destination}/${lib}"
+ done
+ fi
+}
+
+# Copies and strips a vendored dSYM
+install_dsym() {
+ local source="$1"
+ if [ -r "$source" ]; then
+ # Copy the dSYM into a the targets temp dir.
+ echo "rsync --delete -av "${RSYNC_PROTECT_TMP_FILES[@]}" --filter \"- CVS/\" --filter \"- .svn/\" --filter \"- .git/\" --filter \"- .hg/\" --filter \"- Headers\" --filter \"- PrivateHeaders\" --filter \"- Modules\" \"${source}\" \"${DERIVED_FILES_DIR}\""
+ rsync --delete -av "${RSYNC_PROTECT_TMP_FILES[@]}" --filter "- CVS/" --filter "- .svn/" --filter "- .git/" --filter "- .hg/" --filter "- Headers" --filter "- PrivateHeaders" --filter "- Modules" "${source}" "${DERIVED_FILES_DIR}"
+
+ local basename
+ basename="$(basename -s .framework.dSYM "$source")"
+ 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
+ strip_invalid_archs "$binary"
+ fi
+
+ if [[ $STRIP_BINARY_RETVAL == 1 ]]; then
+ # Move the stripped file into its final destination.
+ echo "rsync --delete -av "${RSYNC_PROTECT_TMP_FILES[@]}" --filter \"- CVS/\" --filter \"- .svn/\" --filter \"- .git/\" --filter \"- .hg/\" --filter \"- Headers\" --filter \"- PrivateHeaders\" --filter \"- Modules\" \"${DERIVED_FILES_DIR}/${basename}.framework.dSYM\" \"${DWARF_DSYM_FOLDER_PATH}\""
+ rsync --delete -av "${RSYNC_PROTECT_TMP_FILES[@]}" --filter "- CVS/" --filter "- .svn/" --filter "- .git/" --filter "- .hg/" --filter "- Headers" --filter "- PrivateHeaders" --filter "- Modules" "${DERIVED_FILES_DIR}/${basename}.framework.dSYM" "${DWARF_DSYM_FOLDER_PATH}"
+ else
+ # The dSYM was not stripped at all, in this case touch a fake folder so the input/output paths from Xcode do not reexecute this script because the file is missing.
+ touch "${DWARF_DSYM_FOLDER_PATH}/${basename}.framework.dSYM"
+ fi
+ fi
+}
+
+# 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
+ 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'"
+
+ if [ "${COCOAPODS_PARALLEL_CODE_SIGN}" == "true" ]; then
+ code_sign_cmd="$code_sign_cmd &"
+ fi
+ echo "$code_sign_cmd"
+ eval "$code_sign_cmd"
+ fi
+}
+
+# Strip invalid architectures
+strip_invalid_archs() {
+ binary="$1"
+ # Get architectures for current target binary
+ binary_archs="$(lipo -info "$binary" | rev | cut -d ':' -f1 | awk '{$1=$1;print}' | rev)"
+ # Intersect them with the architectures we are building for
+ intersected_archs="$(echo ${ARCHS[@]} ${binary_archs[@]} | tr ' ' '\n' | sort | uniq -d)"
+ # If there are no archs supported by this binary then warn the user
+ if [[ -z "$intersected_archs" ]]; then
+ echo "warning: [CP] Vendored binary '$binary' contains architectures ($binary_archs) none of which match the current build architectures ($ARCHS)."
+ STRIP_BINARY_RETVAL=0
+ return
+ fi
+ stripped=""
+ for arch in $binary_archs; do
+ if ! [[ "${ARCHS}" == *"$arch"* ]]; then
+ # Strip non-valid architectures in-place
+ lipo -remove "$arch" -output "$binary" "$binary" || exit 1
+ stripped="$stripped $arch"
+ fi
+ done
+ if [[ "$stripped" ]]; then
+ echo "Stripped $binary of architectures:$stripped"
+ fi
+ STRIP_BINARY_RETVAL=1
+}
+
+if [ "${COCOAPODS_PARALLEL_CODE_SIGN}" == "true" ]; then
+ wait
+fi
diff --git a/iOS/MSTG-JWT/Pods/Target Support Files/Pods-MSTG-JWTTests/Pods-MSTG-JWTTests-resources.sh b/iOS/MSTG-JWT/Pods/Target Support Files/Pods-MSTG-JWTTests/Pods-MSTG-JWTTests-resources.sh
new file mode 100755
index 0000000..345301f
--- /dev/null
+++ b/iOS/MSTG-JWT/Pods/Target Support Files/Pods-MSTG-JWTTests/Pods-MSTG-JWTTests-resources.sh
@@ -0,0 +1,118 @@
+#!/bin/sh
+set -e
+set -u
+set -o pipefail
+
+if [ -z ${UNLOCALIZED_RESOURCES_FOLDER_PATH+x} ]; then
+ # If UNLOCALIZED_RESOURCES_FOLDER_PATH is not set, then there's nowhere for us to copy
+ # resources to, so exit 0 (signalling the script phase was successful).
+ exit 0
+fi
+
+mkdir -p "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}"
+
+RESOURCES_TO_COPY=${PODS_ROOT}/resources-to-copy-${TARGETNAME}.txt
+> "$RESOURCES_TO_COPY"
+
+XCASSET_FILES=()
+
+# This protects against multiple targets copying the same framework dependency at the same time. The solution
+# was originally proposed here: https://lists.samba.org/archive/rsync/2008-February/020158.html
+RSYNC_PROTECT_TMP_FILES=(--filter "P .*.??????")
+
+case "${TARGETED_DEVICE_FAMILY:-}" in
+ 1,2)
+ TARGET_DEVICE_ARGS="--target-device ipad --target-device iphone"
+ ;;
+ 1)
+ TARGET_DEVICE_ARGS="--target-device iphone"
+ ;;
+ 2)
+ TARGET_DEVICE_ARGS="--target-device ipad"
+ ;;
+ 3)
+ TARGET_DEVICE_ARGS="--target-device tv"
+ ;;
+ 4)
+ TARGET_DEVICE_ARGS="--target-device watch"
+ ;;
+ *)
+ TARGET_DEVICE_ARGS="--target-device mac"
+ ;;
+esac
+
+install_resource()
+{
+ if [[ "$1" = /* ]] ; then
+ RESOURCE_PATH="$1"
+ else
+ RESOURCE_PATH="${PODS_ROOT}/$1"
+ fi
+ if [[ ! -e "$RESOURCE_PATH" ]] ; then
+ cat << EOM
+error: Resource "$RESOURCE_PATH" not found. Run 'pod install' to update the copy resources script.
+EOM
+ exit 1
+ fi
+ case $RESOURCE_PATH in
+ *.storyboard)
+ echo "ibtool --reference-external-strings-file --errors --warnings --notices --minimum-deployment-target ${!DEPLOYMENT_TARGET_SETTING_NAME} --output-format human-readable-text --compile ${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename \"$RESOURCE_PATH\" .storyboard`.storyboardc $RESOURCE_PATH --sdk ${SDKROOT} ${TARGET_DEVICE_ARGS}" || true
+ ibtool --reference-external-strings-file --errors --warnings --notices --minimum-deployment-target ${!DEPLOYMENT_TARGET_SETTING_NAME} --output-format human-readable-text --compile "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename \"$RESOURCE_PATH\" .storyboard`.storyboardc" "$RESOURCE_PATH" --sdk "${SDKROOT}" ${TARGET_DEVICE_ARGS}
+ ;;
+ *.xib)
+ echo "ibtool --reference-external-strings-file --errors --warnings --notices --minimum-deployment-target ${!DEPLOYMENT_TARGET_SETTING_NAME} --output-format human-readable-text --compile ${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename \"$RESOURCE_PATH\" .xib`.nib $RESOURCE_PATH --sdk ${SDKROOT} ${TARGET_DEVICE_ARGS}" || true
+ ibtool --reference-external-strings-file --errors --warnings --notices --minimum-deployment-target ${!DEPLOYMENT_TARGET_SETTING_NAME} --output-format human-readable-text --compile "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename \"$RESOURCE_PATH\" .xib`.nib" "$RESOURCE_PATH" --sdk "${SDKROOT}" ${TARGET_DEVICE_ARGS}
+ ;;
+ *.framework)
+ echo "mkdir -p ${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}" || true
+ mkdir -p "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}"
+ echo "rsync --delete -av "${RSYNC_PROTECT_TMP_FILES[@]}" $RESOURCE_PATH ${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}" || true
+ rsync --delete -av "${RSYNC_PROTECT_TMP_FILES[@]}" "$RESOURCE_PATH" "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}"
+ ;;
+ *.xcdatamodel)
+ echo "xcrun momc \"$RESOURCE_PATH\" \"${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename "$RESOURCE_PATH"`.mom\"" || true
+ xcrun momc "$RESOURCE_PATH" "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename "$RESOURCE_PATH" .xcdatamodel`.mom"
+ ;;
+ *.xcdatamodeld)
+ echo "xcrun momc \"$RESOURCE_PATH\" \"${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename "$RESOURCE_PATH" .xcdatamodeld`.momd\"" || true
+ xcrun momc "$RESOURCE_PATH" "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename "$RESOURCE_PATH" .xcdatamodeld`.momd"
+ ;;
+ *.xcmappingmodel)
+ echo "xcrun mapc \"$RESOURCE_PATH\" \"${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename "$RESOURCE_PATH" .xcmappingmodel`.cdm\"" || true
+ xcrun mapc "$RESOURCE_PATH" "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename "$RESOURCE_PATH" .xcmappingmodel`.cdm"
+ ;;
+ *.xcassets)
+ ABSOLUTE_XCASSET_FILE="$RESOURCE_PATH"
+ XCASSET_FILES+=("$ABSOLUTE_XCASSET_FILE")
+ ;;
+ *)
+ echo "$RESOURCE_PATH" || true
+ echo "$RESOURCE_PATH" >> "$RESOURCES_TO_COPY"
+ ;;
+ esac
+}
+
+mkdir -p "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}"
+rsync -avr --copy-links --no-relative --exclude '*/.svn/*' --files-from="$RESOURCES_TO_COPY" / "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}"
+if [[ "${ACTION}" == "install" ]] && [[ "${SKIP_INSTALL}" == "NO" ]]; then
+ mkdir -p "${INSTALL_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}"
+ rsync -avr --copy-links --no-relative --exclude '*/.svn/*' --files-from="$RESOURCES_TO_COPY" / "${INSTALL_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}"
+fi
+rm -f "$RESOURCES_TO_COPY"
+
+if [[ -n "${WRAPPER_EXTENSION}" ]] && [ "`xcrun --find actool`" ] && [ -n "${XCASSET_FILES:-}" ]
+then
+ # Find all other xcassets (this unfortunately includes those of path pods and other targets).
+ OTHER_XCASSETS=$(find "$PWD" -iname "*.xcassets" -type d)
+ while read line; do
+ if [[ $line != "${PODS_ROOT}*" ]]; then
+ XCASSET_FILES+=("$line")
+ fi
+ done <<<"$OTHER_XCASSETS"
+
+ if [ -z ${ASSETCATALOG_COMPILER_APPICON_NAME+x} ]; then
+ printf "%s\0" "${XCASSET_FILES[@]}" | xargs -0 xcrun actool --output-format human-readable-text --notices --warnings --platform "${PLATFORM_NAME}" --minimum-deployment-target "${!DEPLOYMENT_TARGET_SETTING_NAME}" ${TARGET_DEVICE_ARGS} --compress-pngs --compile "${BUILT_PRODUCTS_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}"
+ else
+ printf "%s\0" "${XCASSET_FILES[@]}" | xargs -0 xcrun actool --output-format human-readable-text --notices --warnings --platform "${PLATFORM_NAME}" --minimum-deployment-target "${!DEPLOYMENT_TARGET_SETTING_NAME}" ${TARGET_DEVICE_ARGS} --compress-pngs --compile "${BUILT_PRODUCTS_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}" --app-icon "${ASSETCATALOG_COMPILER_APPICON_NAME}" --output-partial-info-plist "${TARGET_TEMP_DIR}/assetcatalog_generated_info_cocoapods.plist"
+ fi
+fi
diff --git a/iOS/MSTG-JWT/Pods/Target Support Files/Pods-MSTG-JWTTests/Pods-MSTG-JWTTests-umbrella.h b/iOS/MSTG-JWT/Pods/Target Support Files/Pods-MSTG-JWTTests/Pods-MSTG-JWTTests-umbrella.h
new file mode 100644
index 0000000..425fe62
--- /dev/null
+++ b/iOS/MSTG-JWT/Pods/Target Support Files/Pods-MSTG-JWTTests/Pods-MSTG-JWTTests-umbrella.h
@@ -0,0 +1,16 @@
+#ifdef __OBJC__
+#import
+#else
+#ifndef FOUNDATION_EXPORT
+#if defined(__cplusplus)
+#define FOUNDATION_EXPORT extern "C"
+#else
+#define FOUNDATION_EXPORT extern
+#endif
+#endif
+#endif
+
+
+FOUNDATION_EXPORT double Pods_MSTG_JWTTestsVersionNumber;
+FOUNDATION_EXPORT const unsigned char Pods_MSTG_JWTTestsVersionString[];
+
diff --git a/iOS/MSTG-JWT/Pods/Target Support Files/Pods-MSTG-JWTTests/Pods-MSTG-JWTTests.debug.xcconfig b/iOS/MSTG-JWT/Pods/Target Support Files/Pods-MSTG-JWTTests/Pods-MSTG-JWTTests.debug.xcconfig
new file mode 100644
index 0000000..4af1446
--- /dev/null
+++ b/iOS/MSTG-JWT/Pods/Target Support Files/Pods-MSTG-JWTTests/Pods-MSTG-JWTTests.debug.xcconfig
@@ -0,0 +1,8 @@
+FRAMEWORK_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/Alamofire" "${PODS_CONFIGURATION_BUILD_DIR}/KeychainSwift" "${PODS_CONFIGURATION_BUILD_DIR}/SwiftyJSON"
+GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1
+LD_RUNPATH_SEARCH_PATHS = $(inherited) '@executable_path/Frameworks' '@loader_path/Frameworks'
+OTHER_CFLAGS = $(inherited) -iquote "${PODS_CONFIGURATION_BUILD_DIR}/Alamofire/Alamofire.framework/Headers" -iquote "${PODS_CONFIGURATION_BUILD_DIR}/KeychainSwift/KeychainSwift.framework/Headers" -iquote "${PODS_CONFIGURATION_BUILD_DIR}/SwiftyJSON/SwiftyJSON.framework/Headers"
+PODS_BUILD_DIR = ${BUILD_DIR}
+PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)
+PODS_PODFILE_DIR_PATH = ${SRCROOT}/.
+PODS_ROOT = ${SRCROOT}/Pods
diff --git a/iOS/MSTG-JWT/Pods/Target Support Files/Pods-MSTG-JWTTests/Pods-MSTG-JWTTests.modulemap b/iOS/MSTG-JWT/Pods/Target Support Files/Pods-MSTG-JWTTests/Pods-MSTG-JWTTests.modulemap
new file mode 100644
index 0000000..41a9eda
--- /dev/null
+++ b/iOS/MSTG-JWT/Pods/Target Support Files/Pods-MSTG-JWTTests/Pods-MSTG-JWTTests.modulemap
@@ -0,0 +1,6 @@
+framework module Pods_MSTG_JWTTests {
+ umbrella header "Pods-MSTG-JWTTests-umbrella.h"
+
+ export *
+ module * { export * }
+}
diff --git a/iOS/MSTG-JWT/Pods/Target Support Files/Pods-MSTG-JWTTests/Pods-MSTG-JWTTests.release.xcconfig b/iOS/MSTG-JWT/Pods/Target Support Files/Pods-MSTG-JWTTests/Pods-MSTG-JWTTests.release.xcconfig
new file mode 100644
index 0000000..4af1446
--- /dev/null
+++ b/iOS/MSTG-JWT/Pods/Target Support Files/Pods-MSTG-JWTTests/Pods-MSTG-JWTTests.release.xcconfig
@@ -0,0 +1,8 @@
+FRAMEWORK_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/Alamofire" "${PODS_CONFIGURATION_BUILD_DIR}/KeychainSwift" "${PODS_CONFIGURATION_BUILD_DIR}/SwiftyJSON"
+GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1
+LD_RUNPATH_SEARCH_PATHS = $(inherited) '@executable_path/Frameworks' '@loader_path/Frameworks'
+OTHER_CFLAGS = $(inherited) -iquote "${PODS_CONFIGURATION_BUILD_DIR}/Alamofire/Alamofire.framework/Headers" -iquote "${PODS_CONFIGURATION_BUILD_DIR}/KeychainSwift/KeychainSwift.framework/Headers" -iquote "${PODS_CONFIGURATION_BUILD_DIR}/SwiftyJSON/SwiftyJSON.framework/Headers"
+PODS_BUILD_DIR = ${BUILD_DIR}
+PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)
+PODS_PODFILE_DIR_PATH = ${SRCROOT}/.
+PODS_ROOT = ${SRCROOT}/Pods
diff --git a/iOS/MSTG-JWT/Pods/Target Support Files/Pods-MSTG-JWTUITests/Info.plist b/iOS/MSTG-JWT/Pods/Target Support Files/Pods-MSTG-JWTUITests/Info.plist
new file mode 100644
index 0000000..2243fe6
--- /dev/null
+++ b/iOS/MSTG-JWT/Pods/Target Support Files/Pods-MSTG-JWTUITests/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/iOS/MSTG-JWT/Pods/Target Support Files/Pods-MSTG-JWTUITests/Pods-MSTG-JWTUITests-acknowledgements.markdown b/iOS/MSTG-JWT/Pods/Target Support Files/Pods-MSTG-JWTUITests/Pods-MSTG-JWTUITests-acknowledgements.markdown
new file mode 100644
index 0000000..102af75
--- /dev/null
+++ b/iOS/MSTG-JWT/Pods/Target Support Files/Pods-MSTG-JWTUITests/Pods-MSTG-JWTUITests-acknowledgements.markdown
@@ -0,0 +1,3 @@
+# Acknowledgements
+This application makes use of the following third party libraries:
+Generated by CocoaPods - https://cocoapods.org
diff --git a/iOS/MSTG-JWT/Pods/Target Support Files/Pods-MSTG-JWTUITests/Pods-MSTG-JWTUITests-acknowledgements.plist b/iOS/MSTG-JWT/Pods/Target Support Files/Pods-MSTG-JWTUITests/Pods-MSTG-JWTUITests-acknowledgements.plist
new file mode 100644
index 0000000..7acbad1
--- /dev/null
+++ b/iOS/MSTG-JWT/Pods/Target Support Files/Pods-MSTG-JWTUITests/Pods-MSTG-JWTUITests-acknowledgements.plist
@@ -0,0 +1,29 @@
+
+
+
+
+ PreferenceSpecifiers
+
+
+ FooterText
+ This application makes use of the following third party libraries:
+ Title
+ Acknowledgements
+ Type
+ PSGroupSpecifier
+
+
+ FooterText
+ Generated by CocoaPods - https://cocoapods.org
+ Title
+
+ Type
+ PSGroupSpecifier
+
+
+ StringsTable
+ Acknowledgements
+ Title
+ Acknowledgements
+
+
diff --git a/iOS/MSTG-JWT/Pods/Target Support Files/Pods-MSTG-JWTUITests/Pods-MSTG-JWTUITests-dummy.m b/iOS/MSTG-JWT/Pods/Target Support Files/Pods-MSTG-JWTUITests/Pods-MSTG-JWTUITests-dummy.m
new file mode 100644
index 0000000..5171a76
--- /dev/null
+++ b/iOS/MSTG-JWT/Pods/Target Support Files/Pods-MSTG-JWTUITests/Pods-MSTG-JWTUITests-dummy.m
@@ -0,0 +1,5 @@
+#import
+@interface PodsDummy_Pods_MSTG_JWTUITests : NSObject
+@end
+@implementation PodsDummy_Pods_MSTG_JWTUITests
+@end
diff --git a/iOS/MSTG-JWT/Pods/Target Support Files/Pods-MSTG-JWTUITests/Pods-MSTG-JWTUITests-frameworks.sh b/iOS/MSTG-JWT/Pods/Target Support Files/Pods-MSTG-JWTUITests/Pods-MSTG-JWTUITests-frameworks.sh
new file mode 100755
index 0000000..08e3eaa
--- /dev/null
+++ b/iOS/MSTG-JWT/Pods/Target Support Files/Pods-MSTG-JWTUITests/Pods-MSTG-JWTUITests-frameworks.sh
@@ -0,0 +1,146 @@
+#!/bin/sh
+set -e
+set -u
+set -o pipefail
+
+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.
+STRIP_BINARY_RETVAL=0
+
+# This protects against multiple targets copying the same framework dependency at the same time. The solution
+# was originally proposed here: https://lists.samba.org/archive/rsync/2008-February/020158.html
+RSYNC_PROTECT_TMP_FILES=(--filter "P .*.??????")
+
+# Copies and strips a vendored framework
+install_framework()
+{
+ if [ -r "${BUILT_PRODUCTS_DIR}/$1" ]; then
+ local source="${BUILT_PRODUCTS_DIR}/$1"
+ elif [ -r "${BUILT_PRODUCTS_DIR}/$(basename "$1")" ]; then
+ local source="${BUILT_PRODUCTS_DIR}/$(basename "$1")"
+ elif [ -r "$1" ]; then
+ local source="$1"
+ fi
+
+ local destination="${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}"
+
+ if [ -L "${source}" ]; then
+ echo "Symlinked..."
+ source="$(readlink "${source}")"
+ fi
+
+ # Use filter instead of exclude so missing patterns don't throw errors.
+ echo "rsync --delete -av "${RSYNC_PROTECT_TMP_FILES[@]}" --filter \"- CVS/\" --filter \"- .svn/\" --filter \"- .git/\" --filter \"- .hg/\" --filter \"- Headers\" --filter \"- PrivateHeaders\" --filter \"- Modules\" \"${source}\" \"${destination}\""
+ rsync --delete -av "${RSYNC_PROTECT_TMP_FILES[@]}" --filter "- CVS/" --filter "- .svn/" --filter "- .git/" --filter "- .hg/" --filter "- Headers" --filter "- PrivateHeaders" --filter "- Modules" "${source}" "${destination}"
+
+ local basename
+ basename="$(basename -s .framework "$1")"
+ binary="${destination}/${basename}.framework/${basename}"
+ if ! [ -r "$binary" ]; then
+ binary="${destination}/${basename}"
+ fi
+
+ # Strip invalid architectures so "fat" simulator / device frameworks work on device
+ if [[ "$(file "$binary")" == *"dynamically linked shared library"* ]]; then
+ strip_invalid_archs "$binary"
+ fi
+
+ # Resign the code if required by the build settings to avoid unstable apps
+ code_sign_if_enabled "${destination}/$(basename "$1")"
+
+ # 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]})
+ for lib in $swift_runtime_libs; do
+ echo "rsync -auv \"${SWIFT_STDLIB_PATH}/${lib}\" \"${destination}\""
+ rsync -auv "${SWIFT_STDLIB_PATH}/${lib}" "${destination}"
+ code_sign_if_enabled "${destination}/${lib}"
+ done
+ fi
+}
+
+# Copies and strips a vendored dSYM
+install_dsym() {
+ local source="$1"
+ if [ -r "$source" ]; then
+ # Copy the dSYM into a the targets temp dir.
+ echo "rsync --delete -av "${RSYNC_PROTECT_TMP_FILES[@]}" --filter \"- CVS/\" --filter \"- .svn/\" --filter \"- .git/\" --filter \"- .hg/\" --filter \"- Headers\" --filter \"- PrivateHeaders\" --filter \"- Modules\" \"${source}\" \"${DERIVED_FILES_DIR}\""
+ rsync --delete -av "${RSYNC_PROTECT_TMP_FILES[@]}" --filter "- CVS/" --filter "- .svn/" --filter "- .git/" --filter "- .hg/" --filter "- Headers" --filter "- PrivateHeaders" --filter "- Modules" "${source}" "${DERIVED_FILES_DIR}"
+
+ local basename
+ basename="$(basename -s .framework.dSYM "$source")"
+ 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
+ strip_invalid_archs "$binary"
+ fi
+
+ if [[ $STRIP_BINARY_RETVAL == 1 ]]; then
+ # Move the stripped file into its final destination.
+ echo "rsync --delete -av "${RSYNC_PROTECT_TMP_FILES[@]}" --filter \"- CVS/\" --filter \"- .svn/\" --filter \"- .git/\" --filter \"- .hg/\" --filter \"- Headers\" --filter \"- PrivateHeaders\" --filter \"- Modules\" \"${DERIVED_FILES_DIR}/${basename}.framework.dSYM\" \"${DWARF_DSYM_FOLDER_PATH}\""
+ rsync --delete -av "${RSYNC_PROTECT_TMP_FILES[@]}" --filter "- CVS/" --filter "- .svn/" --filter "- .git/" --filter "- .hg/" --filter "- Headers" --filter "- PrivateHeaders" --filter "- Modules" "${DERIVED_FILES_DIR}/${basename}.framework.dSYM" "${DWARF_DSYM_FOLDER_PATH}"
+ else
+ # The dSYM was not stripped at all, in this case touch a fake folder so the input/output paths from Xcode do not reexecute this script because the file is missing.
+ touch "${DWARF_DSYM_FOLDER_PATH}/${basename}.framework.dSYM"
+ fi
+ fi
+}
+
+# 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
+ 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'"
+
+ if [ "${COCOAPODS_PARALLEL_CODE_SIGN}" == "true" ]; then
+ code_sign_cmd="$code_sign_cmd &"
+ fi
+ echo "$code_sign_cmd"
+ eval "$code_sign_cmd"
+ fi
+}
+
+# Strip invalid architectures
+strip_invalid_archs() {
+ binary="$1"
+ # Get architectures for current target binary
+ binary_archs="$(lipo -info "$binary" | rev | cut -d ':' -f1 | awk '{$1=$1;print}' | rev)"
+ # Intersect them with the architectures we are building for
+ intersected_archs="$(echo ${ARCHS[@]} ${binary_archs[@]} | tr ' ' '\n' | sort | uniq -d)"
+ # If there are no archs supported by this binary then warn the user
+ if [[ -z "$intersected_archs" ]]; then
+ echo "warning: [CP] Vendored binary '$binary' contains architectures ($binary_archs) none of which match the current build architectures ($ARCHS)."
+ STRIP_BINARY_RETVAL=0
+ return
+ fi
+ stripped=""
+ for arch in $binary_archs; do
+ if ! [[ "${ARCHS}" == *"$arch"* ]]; then
+ # Strip non-valid architectures in-place
+ lipo -remove "$arch" -output "$binary" "$binary" || exit 1
+ stripped="$stripped $arch"
+ fi
+ done
+ if [[ "$stripped" ]]; then
+ echo "Stripped $binary of architectures:$stripped"
+ fi
+ STRIP_BINARY_RETVAL=1
+}
+
+if [ "${COCOAPODS_PARALLEL_CODE_SIGN}" == "true" ]; then
+ wait
+fi
diff --git a/iOS/MSTG-JWT/Pods/Target Support Files/Pods-MSTG-JWTUITests/Pods-MSTG-JWTUITests-resources.sh b/iOS/MSTG-JWT/Pods/Target Support Files/Pods-MSTG-JWTUITests/Pods-MSTG-JWTUITests-resources.sh
new file mode 100755
index 0000000..345301f
--- /dev/null
+++ b/iOS/MSTG-JWT/Pods/Target Support Files/Pods-MSTG-JWTUITests/Pods-MSTG-JWTUITests-resources.sh
@@ -0,0 +1,118 @@
+#!/bin/sh
+set -e
+set -u
+set -o pipefail
+
+if [ -z ${UNLOCALIZED_RESOURCES_FOLDER_PATH+x} ]; then
+ # If UNLOCALIZED_RESOURCES_FOLDER_PATH is not set, then there's nowhere for us to copy
+ # resources to, so exit 0 (signalling the script phase was successful).
+ exit 0
+fi
+
+mkdir -p "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}"
+
+RESOURCES_TO_COPY=${PODS_ROOT}/resources-to-copy-${TARGETNAME}.txt
+> "$RESOURCES_TO_COPY"
+
+XCASSET_FILES=()
+
+# This protects against multiple targets copying the same framework dependency at the same time. The solution
+# was originally proposed here: https://lists.samba.org/archive/rsync/2008-February/020158.html
+RSYNC_PROTECT_TMP_FILES=(--filter "P .*.??????")
+
+case "${TARGETED_DEVICE_FAMILY:-}" in
+ 1,2)
+ TARGET_DEVICE_ARGS="--target-device ipad --target-device iphone"
+ ;;
+ 1)
+ TARGET_DEVICE_ARGS="--target-device iphone"
+ ;;
+ 2)
+ TARGET_DEVICE_ARGS="--target-device ipad"
+ ;;
+ 3)
+ TARGET_DEVICE_ARGS="--target-device tv"
+ ;;
+ 4)
+ TARGET_DEVICE_ARGS="--target-device watch"
+ ;;
+ *)
+ TARGET_DEVICE_ARGS="--target-device mac"
+ ;;
+esac
+
+install_resource()
+{
+ if [[ "$1" = /* ]] ; then
+ RESOURCE_PATH="$1"
+ else
+ RESOURCE_PATH="${PODS_ROOT}/$1"
+ fi
+ if [[ ! -e "$RESOURCE_PATH" ]] ; then
+ cat << EOM
+error: Resource "$RESOURCE_PATH" not found. Run 'pod install' to update the copy resources script.
+EOM
+ exit 1
+ fi
+ case $RESOURCE_PATH in
+ *.storyboard)
+ echo "ibtool --reference-external-strings-file --errors --warnings --notices --minimum-deployment-target ${!DEPLOYMENT_TARGET_SETTING_NAME} --output-format human-readable-text --compile ${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename \"$RESOURCE_PATH\" .storyboard`.storyboardc $RESOURCE_PATH --sdk ${SDKROOT} ${TARGET_DEVICE_ARGS}" || true
+ ibtool --reference-external-strings-file --errors --warnings --notices --minimum-deployment-target ${!DEPLOYMENT_TARGET_SETTING_NAME} --output-format human-readable-text --compile "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename \"$RESOURCE_PATH\" .storyboard`.storyboardc" "$RESOURCE_PATH" --sdk "${SDKROOT}" ${TARGET_DEVICE_ARGS}
+ ;;
+ *.xib)
+ echo "ibtool --reference-external-strings-file --errors --warnings --notices --minimum-deployment-target ${!DEPLOYMENT_TARGET_SETTING_NAME} --output-format human-readable-text --compile ${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename \"$RESOURCE_PATH\" .xib`.nib $RESOURCE_PATH --sdk ${SDKROOT} ${TARGET_DEVICE_ARGS}" || true
+ ibtool --reference-external-strings-file --errors --warnings --notices --minimum-deployment-target ${!DEPLOYMENT_TARGET_SETTING_NAME} --output-format human-readable-text --compile "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename \"$RESOURCE_PATH\" .xib`.nib" "$RESOURCE_PATH" --sdk "${SDKROOT}" ${TARGET_DEVICE_ARGS}
+ ;;
+ *.framework)
+ echo "mkdir -p ${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}" || true
+ mkdir -p "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}"
+ echo "rsync --delete -av "${RSYNC_PROTECT_TMP_FILES[@]}" $RESOURCE_PATH ${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}" || true
+ rsync --delete -av "${RSYNC_PROTECT_TMP_FILES[@]}" "$RESOURCE_PATH" "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}"
+ ;;
+ *.xcdatamodel)
+ echo "xcrun momc \"$RESOURCE_PATH\" \"${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename "$RESOURCE_PATH"`.mom\"" || true
+ xcrun momc "$RESOURCE_PATH" "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename "$RESOURCE_PATH" .xcdatamodel`.mom"
+ ;;
+ *.xcdatamodeld)
+ echo "xcrun momc \"$RESOURCE_PATH\" \"${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename "$RESOURCE_PATH" .xcdatamodeld`.momd\"" || true
+ xcrun momc "$RESOURCE_PATH" "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename "$RESOURCE_PATH" .xcdatamodeld`.momd"
+ ;;
+ *.xcmappingmodel)
+ echo "xcrun mapc \"$RESOURCE_PATH\" \"${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename "$RESOURCE_PATH" .xcmappingmodel`.cdm\"" || true
+ xcrun mapc "$RESOURCE_PATH" "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename "$RESOURCE_PATH" .xcmappingmodel`.cdm"
+ ;;
+ *.xcassets)
+ ABSOLUTE_XCASSET_FILE="$RESOURCE_PATH"
+ XCASSET_FILES+=("$ABSOLUTE_XCASSET_FILE")
+ ;;
+ *)
+ echo "$RESOURCE_PATH" || true
+ echo "$RESOURCE_PATH" >> "$RESOURCES_TO_COPY"
+ ;;
+ esac
+}
+
+mkdir -p "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}"
+rsync -avr --copy-links --no-relative --exclude '*/.svn/*' --files-from="$RESOURCES_TO_COPY" / "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}"
+if [[ "${ACTION}" == "install" ]] && [[ "${SKIP_INSTALL}" == "NO" ]]; then
+ mkdir -p "${INSTALL_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}"
+ rsync -avr --copy-links --no-relative --exclude '*/.svn/*' --files-from="$RESOURCES_TO_COPY" / "${INSTALL_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}"
+fi
+rm -f "$RESOURCES_TO_COPY"
+
+if [[ -n "${WRAPPER_EXTENSION}" ]] && [ "`xcrun --find actool`" ] && [ -n "${XCASSET_FILES:-}" ]
+then
+ # Find all other xcassets (this unfortunately includes those of path pods and other targets).
+ OTHER_XCASSETS=$(find "$PWD" -iname "*.xcassets" -type d)
+ while read line; do
+ if [[ $line != "${PODS_ROOT}*" ]]; then
+ XCASSET_FILES+=("$line")
+ fi
+ done <<<"$OTHER_XCASSETS"
+
+ if [ -z ${ASSETCATALOG_COMPILER_APPICON_NAME+x} ]; then
+ printf "%s\0" "${XCASSET_FILES[@]}" | xargs -0 xcrun actool --output-format human-readable-text --notices --warnings --platform "${PLATFORM_NAME}" --minimum-deployment-target "${!DEPLOYMENT_TARGET_SETTING_NAME}" ${TARGET_DEVICE_ARGS} --compress-pngs --compile "${BUILT_PRODUCTS_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}"
+ else
+ printf "%s\0" "${XCASSET_FILES[@]}" | xargs -0 xcrun actool --output-format human-readable-text --notices --warnings --platform "${PLATFORM_NAME}" --minimum-deployment-target "${!DEPLOYMENT_TARGET_SETTING_NAME}" ${TARGET_DEVICE_ARGS} --compress-pngs --compile "${BUILT_PRODUCTS_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}" --app-icon "${ASSETCATALOG_COMPILER_APPICON_NAME}" --output-partial-info-plist "${TARGET_TEMP_DIR}/assetcatalog_generated_info_cocoapods.plist"
+ fi
+fi
diff --git a/iOS/MSTG-JWT/Pods/Target Support Files/Pods-MSTG-JWTUITests/Pods-MSTG-JWTUITests-umbrella.h b/iOS/MSTG-JWT/Pods/Target Support Files/Pods-MSTG-JWTUITests/Pods-MSTG-JWTUITests-umbrella.h
new file mode 100644
index 0000000..4abc8f1
--- /dev/null
+++ b/iOS/MSTG-JWT/Pods/Target Support Files/Pods-MSTG-JWTUITests/Pods-MSTG-JWTUITests-umbrella.h
@@ -0,0 +1,16 @@
+#ifdef __OBJC__
+#import
+#else
+#ifndef FOUNDATION_EXPORT
+#if defined(__cplusplus)
+#define FOUNDATION_EXPORT extern "C"
+#else
+#define FOUNDATION_EXPORT extern
+#endif
+#endif
+#endif
+
+
+FOUNDATION_EXPORT double Pods_MSTG_JWTUITestsVersionNumber;
+FOUNDATION_EXPORT const unsigned char Pods_MSTG_JWTUITestsVersionString[];
+
diff --git a/iOS/MSTG-JWT/Pods/Target Support Files/Pods-MSTG-JWTUITests/Pods-MSTG-JWTUITests.debug.xcconfig b/iOS/MSTG-JWT/Pods/Target Support Files/Pods-MSTG-JWTUITests/Pods-MSTG-JWTUITests.debug.xcconfig
new file mode 100644
index 0000000..4af1446
--- /dev/null
+++ b/iOS/MSTG-JWT/Pods/Target Support Files/Pods-MSTG-JWTUITests/Pods-MSTG-JWTUITests.debug.xcconfig
@@ -0,0 +1,8 @@
+FRAMEWORK_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/Alamofire" "${PODS_CONFIGURATION_BUILD_DIR}/KeychainSwift" "${PODS_CONFIGURATION_BUILD_DIR}/SwiftyJSON"
+GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1
+LD_RUNPATH_SEARCH_PATHS = $(inherited) '@executable_path/Frameworks' '@loader_path/Frameworks'
+OTHER_CFLAGS = $(inherited) -iquote "${PODS_CONFIGURATION_BUILD_DIR}/Alamofire/Alamofire.framework/Headers" -iquote "${PODS_CONFIGURATION_BUILD_DIR}/KeychainSwift/KeychainSwift.framework/Headers" -iquote "${PODS_CONFIGURATION_BUILD_DIR}/SwiftyJSON/SwiftyJSON.framework/Headers"
+PODS_BUILD_DIR = ${BUILD_DIR}
+PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)
+PODS_PODFILE_DIR_PATH = ${SRCROOT}/.
+PODS_ROOT = ${SRCROOT}/Pods
diff --git a/iOS/MSTG-JWT/Pods/Target Support Files/Pods-MSTG-JWTUITests/Pods-MSTG-JWTUITests.modulemap b/iOS/MSTG-JWT/Pods/Target Support Files/Pods-MSTG-JWTUITests/Pods-MSTG-JWTUITests.modulemap
new file mode 100644
index 0000000..2bba1e8
--- /dev/null
+++ b/iOS/MSTG-JWT/Pods/Target Support Files/Pods-MSTG-JWTUITests/Pods-MSTG-JWTUITests.modulemap
@@ -0,0 +1,6 @@
+framework module Pods_MSTG_JWTUITests {
+ umbrella header "Pods-MSTG-JWTUITests-umbrella.h"
+
+ export *
+ module * { export * }
+}
diff --git a/iOS/MSTG-JWT/Pods/Target Support Files/Pods-MSTG-JWTUITests/Pods-MSTG-JWTUITests.release.xcconfig b/iOS/MSTG-JWT/Pods/Target Support Files/Pods-MSTG-JWTUITests/Pods-MSTG-JWTUITests.release.xcconfig
new file mode 100644
index 0000000..4af1446
--- /dev/null
+++ b/iOS/MSTG-JWT/Pods/Target Support Files/Pods-MSTG-JWTUITests/Pods-MSTG-JWTUITests.release.xcconfig
@@ -0,0 +1,8 @@
+FRAMEWORK_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/Alamofire" "${PODS_CONFIGURATION_BUILD_DIR}/KeychainSwift" "${PODS_CONFIGURATION_BUILD_DIR}/SwiftyJSON"
+GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1
+LD_RUNPATH_SEARCH_PATHS = $(inherited) '@executable_path/Frameworks' '@loader_path/Frameworks'
+OTHER_CFLAGS = $(inherited) -iquote "${PODS_CONFIGURATION_BUILD_DIR}/Alamofire/Alamofire.framework/Headers" -iquote "${PODS_CONFIGURATION_BUILD_DIR}/KeychainSwift/KeychainSwift.framework/Headers" -iquote "${PODS_CONFIGURATION_BUILD_DIR}/SwiftyJSON/SwiftyJSON.framework/Headers"
+PODS_BUILD_DIR = ${BUILD_DIR}
+PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)
+PODS_PODFILE_DIR_PATH = ${SRCROOT}/.
+PODS_ROOT = ${SRCROOT}/Pods
diff --git a/iOS/MSTG-JWT/Pods/Target Support Files/SwiftyJSON/Info.plist b/iOS/MSTG-JWT/Pods/Target Support Files/SwiftyJSON/Info.plist
new file mode 100644
index 0000000..c26f36f
--- /dev/null
+++ b/iOS/MSTG-JWT/Pods/Target Support Files/SwiftyJSON/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.1.0
+ CFBundleSignature
+ ????
+ CFBundleVersion
+ ${CURRENT_PROJECT_VERSION}
+ NSPrincipalClass
+
+
+
diff --git a/iOS/MSTG-JWT/Pods/Target Support Files/SwiftyJSON/SwiftyJSON-dummy.m b/iOS/MSTG-JWT/Pods/Target Support Files/SwiftyJSON/SwiftyJSON-dummy.m
new file mode 100644
index 0000000..3159bec
--- /dev/null
+++ b/iOS/MSTG-JWT/Pods/Target Support Files/SwiftyJSON/SwiftyJSON-dummy.m
@@ -0,0 +1,5 @@
+#import
+@interface PodsDummy_SwiftyJSON : NSObject
+@end
+@implementation PodsDummy_SwiftyJSON
+@end
diff --git a/iOS/MSTG-JWT/Pods/Target Support Files/SwiftyJSON/SwiftyJSON-prefix.pch b/iOS/MSTG-JWT/Pods/Target Support Files/SwiftyJSON/SwiftyJSON-prefix.pch
new file mode 100644
index 0000000..beb2a24
--- /dev/null
+++ b/iOS/MSTG-JWT/Pods/Target Support Files/SwiftyJSON/SwiftyJSON-prefix.pch
@@ -0,0 +1,12 @@
+#ifdef __OBJC__
+#import
+#else
+#ifndef FOUNDATION_EXPORT
+#if defined(__cplusplus)
+#define FOUNDATION_EXPORT extern "C"
+#else
+#define FOUNDATION_EXPORT extern
+#endif
+#endif
+#endif
+
diff --git a/iOS/MSTG-JWT/Pods/Target Support Files/SwiftyJSON/SwiftyJSON-umbrella.h b/iOS/MSTG-JWT/Pods/Target Support Files/SwiftyJSON/SwiftyJSON-umbrella.h
new file mode 100644
index 0000000..b627dec
--- /dev/null
+++ b/iOS/MSTG-JWT/Pods/Target Support Files/SwiftyJSON/SwiftyJSON-umbrella.h
@@ -0,0 +1,16 @@
+#ifdef __OBJC__
+#import
+#else
+#ifndef FOUNDATION_EXPORT
+#if defined(__cplusplus)
+#define FOUNDATION_EXPORT extern "C"
+#else
+#define FOUNDATION_EXPORT extern
+#endif
+#endif
+#endif
+
+
+FOUNDATION_EXPORT double SwiftyJSONVersionNumber;
+FOUNDATION_EXPORT const unsigned char SwiftyJSONVersionString[];
+
diff --git a/iOS/MSTG-JWT/Pods/Target Support Files/SwiftyJSON/SwiftyJSON.modulemap b/iOS/MSTG-JWT/Pods/Target Support Files/SwiftyJSON/SwiftyJSON.modulemap
new file mode 100644
index 0000000..6f41751
--- /dev/null
+++ b/iOS/MSTG-JWT/Pods/Target Support Files/SwiftyJSON/SwiftyJSON.modulemap
@@ -0,0 +1,6 @@
+framework module SwiftyJSON {
+ umbrella header "SwiftyJSON-umbrella.h"
+
+ export *
+ module * { export * }
+}
diff --git a/iOS/MSTG-JWT/Pods/Target Support Files/SwiftyJSON/SwiftyJSON.xcconfig b/iOS/MSTG-JWT/Pods/Target Support Files/SwiftyJSON/SwiftyJSON.xcconfig
new file mode 100644
index 0000000..749cb73
--- /dev/null
+++ b/iOS/MSTG-JWT/Pods/Target Support Files/SwiftyJSON/SwiftyJSON.xcconfig
@@ -0,0 +1,9 @@
+CONFIGURATION_BUILD_DIR = ${PODS_CONFIGURATION_BUILD_DIR}/SwiftyJSON
+GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1
+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}/SwiftyJSON
+PRODUCT_BUNDLE_IDENTIFIER = org.cocoapods.${PRODUCT_NAME:rfc1034identifier}
+SKIP_INSTALL = YES
diff --git a/iOS/MSTG-JWT/hack.html b/iOS/MSTG-JWT/hack.html
new file mode 100644
index 0000000..5067f9b
--- /dev/null
+++ b/iOS/MSTG-JWT/hack.html
@@ -0,0 +1,20 @@
+
+
+
+
+
+