master c0ff6c65bfc0 cached
149 files
730.3 KB
194.9k tokens
1 requests
Download .txt
Showing preview only (779K chars total). Download the full file or copy to clipboard to get everything.
Repository: SwiftKickMobile/SwiftMessages
Branch: master
Commit: c0ff6c65bfc0
Files: 149
Total size: 730.3 KB

Directory structure:
gitextract__w424663/

├── .gitignore
├── CHANGELOG.md
├── Demo/
│   ├── .Podfile
│   ├── Demo/
│   │   ├── AppDelegate.swift
│   │   ├── Assets.xcassets/
│   │   │   ├── AppIcon.appiconset/
│   │   │   │   └── Contents.json
│   │   │   ├── Contents.json
│   │   │   ├── iconSwiftMessages.imageset/
│   │   │   │   └── Contents.json
│   │   │   ├── puppies.imageset/
│   │   │   │   └── Contents.json
│   │   │   └── splashBanner.imageset/
│   │   │       └── Contents.json
│   │   ├── Base.lproj/
│   │   │   ├── LaunchScreen.storyboard
│   │   │   └── Main.storyboard
│   │   ├── CountedMessageView.swift
│   │   ├── CountedViewController.swift
│   │   ├── ExploreViewController.swift
│   │   ├── Info.plist
│   │   ├── TacoDialogView.swift
│   │   ├── TacoDialogView.xib
│   │   ├── Utils.swift
│   │   ├── ViewController.swift
│   │   └── ViewControllersViewController.swift
│   └── Demo.xcodeproj/
│       ├── project.pbxproj
│       ├── project.xcworkspace/
│       │   ├── contents.xcworkspacedata
│       │   └── xcshareddata/
│       │       └── IDEWorkspaceChecks.plist
│       └── xcshareddata/
│           └── xcschemes/
│               └── Demo.xcscheme
├── Design/
│   ├── SwiftMessages Demo App Icon.sketch
│   └── SwiftMessagesDesign.sketch
├── LICENSE.md
├── Package.swift
├── README.md
├── SwiftMessages/
│   ├── AccessibleMessage.swift
│   ├── Animator.swift
│   ├── BackgroundViewable.swift
│   ├── BaseView.swift
│   ├── CALayer+Extensions.swift
│   ├── CornerRoundingView.swift
│   ├── Error.swift
│   ├── HapticMessage.swift
│   ├── Identifiable.swift
│   ├── Info.plist
│   ├── KeyboardTrackingView.swift
│   ├── MarginAdjustable+Extensions.swift
│   ├── MarginAdjustable.swift
│   ├── MaskingView.swift
│   ├── MessageGeometryProxy.swift
│   ├── MessageHostingView.swift
│   ├── MessageView.swift
│   ├── MessageViewConvertible.swift
│   ├── NSBundle+Extensions.swift
│   ├── NSLayoutConstraint+Extensions.swift
│   ├── PassthroughView.swift
│   ├── PassthroughWindow.swift
│   ├── PhysicsAnimation.swift
│   ├── PhysicsPanHandler.swift
│   ├── Presenter.swift
│   ├── Resources/
│   │   ├── CardView.xib
│   │   ├── CenteredView.xib
│   │   ├── MessageView.xib
│   │   ├── StatusLine.xib
│   │   └── TabView.xib
│   ├── SwiftMessageModifier.swift
│   ├── SwiftMessages.Config+Extensions.swift
│   ├── SwiftMessages.h
│   ├── SwiftMessages.swift
│   ├── SwiftMessagesHideAction.swift
│   ├── SwiftMessagesSegue.swift
│   ├── Task+Extensions.swift
│   ├── Theme.swift
│   ├── TopBottomAnimation.swift
│   ├── TopBottomAnimationStyle.swift
│   ├── TopBottomPresentable.swift
│   ├── UIEdgeInsets+Extensions.swift
│   ├── UIViewController+Extensions.swift
│   ├── UIWindow+Extensions.swift
│   ├── Weak.swift
│   ├── WindowScene.swift
│   └── WindowViewController.swift
├── SwiftMessages.podspec
├── SwiftMessages.xcodeproj/
│   ├── project.pbxproj
│   ├── project.xcworkspace/
│   │   ├── contents.xcworkspacedata
│   │   └── xcshareddata/
│   │       └── IDEWorkspaceChecks.plist
│   └── xcshareddata/
│       └── xcschemes/
│           └── SwiftMessages.xcscheme
├── SwiftMessagesTests/
│   ├── Info.plist
│   └── SwiftMessagesTests.swift
├── SwiftUIDemo/
│   ├── SwiftUIDemo/
│   │   ├── Assets.xcassets/
│   │   │   ├── AccentColor.colorset/
│   │   │   │   └── Contents.json
│   │   │   ├── AppIcon.appiconset/
│   │   │   │   └── Contents.json
│   │   │   ├── Contents.json
│   │   │   └── Demo message background.colorset/
│   │   │       └── Contents.json
│   │   ├── DemoMessage.swift
│   │   ├── DemoMessageView.swift
│   │   ├── DemoMessageWithButtonView.swift
│   │   ├── DemoView.swift
│   │   ├── Info.plist
│   │   ├── Preview Content/
│   │   │   └── Preview Assets.xcassets/
│   │   │       └── Contents.json
│   │   └── SwiftUIDemoApp.swift
│   └── SwiftUIDemo.xcodeproj/
│       ├── project.pbxproj
│       └── project.xcworkspace/
│           ├── contents.xcworkspacedata
│           └── xcshareddata/
│               └── IDEWorkspaceChecks.plist
├── ViewControllers.md
└── iMessageDemo/
    ├── .Podfile
    ├── Podfile
    ├── Pods/
    │   ├── Local Podspecs/
    │   │   └── SwiftMessages.podspec.json
    │   ├── Pods.xcodeproj/
    │   │   ├── project.pbxproj
    │   │   └── project.xcworkspace/
    │   │       ├── contents.xcworkspacedata
    │   │       └── xcshareddata/
    │   │           ├── IDEWorkspaceChecks.plist
    │   │           └── WorkspaceSettings.xcsettings
    │   └── Target Support Files/
    │       ├── Pods-iMessageDemo/
    │       │   ├── Pods-iMessageDemo-Info.plist
    │       │   ├── Pods-iMessageDemo-acknowledgements.markdown
    │       │   ├── Pods-iMessageDemo-acknowledgements.plist
    │       │   ├── Pods-iMessageDemo-dummy.m
    │       │   ├── Pods-iMessageDemo-frameworks-Debug-input-files.xcfilelist
    │       │   ├── Pods-iMessageDemo-frameworks-Debug-output-files.xcfilelist
    │       │   ├── Pods-iMessageDemo-frameworks-Release-input-files.xcfilelist
    │       │   ├── Pods-iMessageDemo-frameworks-Release-output-files.xcfilelist
    │       │   ├── Pods-iMessageDemo-frameworks.sh
    │       │   ├── Pods-iMessageDemo-umbrella.h
    │       │   ├── Pods-iMessageDemo.debug.xcconfig
    │       │   ├── Pods-iMessageDemo.modulemap
    │       │   └── Pods-iMessageDemo.release.xcconfig
    │       ├── Pods-iMessageExtensionDemo/
    │       │   ├── Pods-iMessageExtensionDemo-Info.plist
    │       │   ├── Pods-iMessageExtensionDemo-acknowledgements.markdown
    │       │   ├── Pods-iMessageExtensionDemo-acknowledgements.plist
    │       │   ├── Pods-iMessageExtensionDemo-dummy.m
    │       │   ├── Pods-iMessageExtensionDemo-umbrella.h
    │       │   ├── Pods-iMessageExtensionDemo.debug.xcconfig
    │       │   ├── Pods-iMessageExtensionDemo.modulemap
    │       │   └── Pods-iMessageExtensionDemo.release.xcconfig
    │       └── SwiftMessages/
    │           ├── ResourceBundle-SwiftMessages-SwiftMessages-Info.plist
    │           ├── ResourceBundle-SwiftMessages_SwiftMessages-SwiftMessages-Info.plist
    │           ├── SwiftMessages-Info.plist
    │           ├── SwiftMessages-dummy.m
    │           ├── SwiftMessages-prefix.pch
    │           ├── SwiftMessages-umbrella.h
    │           ├── SwiftMessages.debug.xcconfig
    │           ├── SwiftMessages.modulemap
    │           └── SwiftMessages.release.xcconfig
    ├── iMessageDemo/
    │   ├── AppDelegate.swift
    │   ├── Info.plist
    │   ├── LaunchScreen.storyboard
    │   └── Main.storyboard
    ├── iMessageDemo.xcodeproj/
    │   ├── project.pbxproj
    │   ├── project.xcworkspace/
    │   │   ├── contents.xcworkspacedata
    │   │   └── xcshareddata/
    │   │       └── IDEWorkspaceChecks.plist
    │   └── xcshareddata/
    │       └── xcschemes/
    │           └── iMessageExtensionDemo.xcscheme
    ├── iMessageDemo.xcworkspace/
    │   ├── contents.xcworkspacedata
    │   └── xcshareddata/
    │       ├── IDEWorkspaceChecks.plist
    │       └── WorkspaceSettings.xcsettings
    └── iMessageExtensionDemo/
        ├── Base.lproj/
        │   └── MainInterface.storyboard
        ├── Info.plist
        └── MessagesViewController.swift

================================================
FILE CONTENTS
================================================

================================================
FILE: .gitignore
================================================
# Xcode
#
# gitignore contributors: remember to update Global/Xcode.gitignore, Objective-C.gitignore & Swift.gitignore

## Build generated
build/
DerivedData

## Various settings
*.pbxuser
!default.pbxuser
*.mode1v3
!default.mode1v3
*.mode2v3
!default.mode2v3
*.perspectivev3
!default.perspectivev3
xcuserdata

## Other
*.xccheckout
*.moved-aside
*.xcuserstate
*.xcscmblueprint

## Obj-C/Swift specific
*.hmap
*.ipa
*.dSYM.zip

## Playgrounds
timeline.xctimeline
playground.xcworkspace

# Swift Package Manager
#
# Add this line if you want to avoid checking in source code from Swift Package Manager dependencies.
# Packages/
.swiftpm/

.DS_Store
*.mobileprovision
*.cer
*.certSigningRequest
*.p12
*.pem
*.pkey
screenshots
rvm.env
.build

================================================
FILE: CHANGELOG.md
================================================
# Change Log
All notable changes to this project will be documented in this file.

## 10.0.2

### Features
* #549 Create a formal dismissal mechanism for SwiftUI message. Use `@Environment(\.swiftMessagesHide) private var hide` then call `hide(animated: true)` to dismiss.
* #571 PhysicsPanHandler.swift make configure public.

### Fixes
* #581 [BUG]: SwiftUI message views don't respond to touch input on Xcode 26 beta 6 iOS 26 simulator.
* #581 [BUG]: SwiftUI message views don't respond to touch input on Xcode 26 beta 6 iOS 26 simulator
* #577 Hide Background Elements from Modal SwiftMessage in VoiceOver mode
* #578 Fix crash on iPadOS 18+ when presenting bottom SwiftMessage above UITabBarController

### Features

* #523 Add a `priority` configuration option.
* #548 Adds 'TopBottomPresentable' protocol to allow animators implementation to reuse 'top/bottom' integration in presentation
* #543 Make the `SwiftMessages` initializer `nonisolated` to improve interoperability with dependency injection frameworks like Factory.
* #560 Add a new `swiftMessage` modifier variation that provides a ` MessageGeometryProxy` type to the message view builder—this works around an inssue with `GeometryReader` not working in `UIHostingController`.

### Fixes
* Fix broken touch handling in iOS 18.

## 10.0.0

### Features

* Add a variation on the `.swiftMessage()` modifier that takes a view builder instead of requiring that the bound value conform to `MessageViewConvertible`. This syntax is more similar to the familiar `sheet()` modifier syntax and provides more flexibility for constructing message views.
* #207 Add optional haptic feedback

### Changes

* Use `@MainActor` to ensure that SwiftMessages is not called from a background queue.
* Bump minimum deployment target to iOS 13.

### Fixes

* #535 window being accessed from background thread when dequeueNext is called
* #534 Xcode warnings in two swift files
* #533 How do I show a message that appears above the keyboard, when the keyboard is already visible?

## 9.0.9

### Fixes

* Fix hit testing on SwiftUI views to allow touches around the view's margins to pass through to the underlying view.
* Update `KeyboardTrackingView` to continue tracking the keyboard even when not installed in the view hierarchy.

## 9.0.8

### Changes

* #529 Update readme and SwiftUI demo to demostrate how to mask edges.

## 9.0.7

### Features

* Added support for SwiftUI

### Fixes

* #527 Crash while clicking two times to hide the presenting controller
* #517 Prevent orphaned views from blocking the queue
* Prevent orphaned `SwiftMessagesSeque`s from retaining the presenting view controller

## 9.0.6

### Features

* Add `UIView` associated type to `Event`, e.g. `willShow(UIView)` so that event listeners can inspect the view.
* Add `Event.id: String?` property so that event listeners can reason about the view's ID.

## 9.0.5

### Fixes

* #482 Fix timing of `KeyboardTrackingView` callbacks.
* #483 KeyboardTrackingView causes a small space under bottom-style view

## 9.0.4

* #471 Xcode 13 issue - Enum cases with associated values cannot be marked potentially unavailable with '@available'
* Improve colors for dark mode.

## 9.0.3

### Fixes

* #467 Lower or equal level window's views disappear upon hide
* #466 Alert not shown after Biometry check
* #465 Fix broken Carthage build. The Carthage build was broken due to the `iMessageDemo` project's use of CocoaPods and the automatically generated `SwiftMessages` framework scheme created by CocoaPods. The podfile was modified to delete this scheme, but Carthage users may need to run `pod install` on the `iMessagesDemo` project, if they have CocoaPods installed, or manually delete the `iMessageDemo/Pods/Pods.xcodeproj/xcuserdata` folder.

## 9.0.2

### Fixes

* Fix app extension compile error when using CocoaPods.

## 9.0.1

### Fixes

* #455 #458 Restore key window after message is interacted with. When a message becomes the key window, such as if the user interacts with the message, iOS does not automatically restore the previous key window when the message is dismissed. SwiftMessages has some logic in `WindowViewController` to restore the key window. This change makes that logic more robust.

## 9.0.0

### Features

* #447 Add the ability to show view controller in a new window with `SwiftMessagesSegue`.
This capability is available when using `SwiftMessagesSegue` programmatically by supplying
an instance of `WindowViewController` as the segue's source view controller.

### Changes

* This release has minor breaking changes in the `WindowViewController` initializers.
The `windowLevel` is no longer accepted as an argument because the `config` parameter
should specify the window level in the `presentationContext` property.

### Fixes

* #451 Fix app extension crash

## 8.0.5

### Fixes

* #446 Restore previous key window on dismissal if the message assumed key window status.

## 8.0.4

### Features

* #442 Add `MarginAdjustable.respectSafeArea` option to exclude safe area from layout margins.
* #430 Support disable `becomeKeyWindow` from SwiftMessages.Config. This is a workaround for potential issues with apps that display additional windows.

### Fixes

* #437 Revert to explicitly specifying "SwiftMessages" as the module in nib files.
* #440 Fix crash when using SwiftMessages in app extension

## 8.0.3

### Features

* Full support for Swift Package Manager

### Fixes

* #328 ignoreDuplicates is not working
* #412 Fix deployment target on nib files to match target

## 8.0.2

### Changes

* [#395](https://github.com/SwiftKickMobile/SwiftMessages/pull/395) Add preliminary support for Swift Package Manager.

## 8.0.1

### Fixes

* #401 UIAlertController pops up but SwiftMessage layer absorbs all touches.

## 8.0.0

### Changes

* Add `SwiftMessages.PresentationContext.windowScene` option for targeting a specific window scene.
* Changed the behavior of the default `presentationContext`, `.automatic`. Previously, if the root view controller was presenting, the message would only be displayed over the presented view controller if the `modalPresentationStyle` was `fullScreen` or `overFullScreen`. Now, messages are always displayed over presented view controllers.
* Made `showDuraton` and `hideDuration` on `Animator` non-optional.
* Made `showDuraton` and `hideDuration` writable options on `TopBottomAnimation` and `PhysicsAnimation`.

### Fixes

* #365 Fix an issue with customized `TopBottomAnimation` where messages weren't properly displayed under navigation and tab bars.
* #352 Fix accessibility for view controllers presented with `SwiftMessagesSegue`.
* #355 Update card view layout to support centering of pure textual content 
* #354 Support `overrideUserInterfaceStyle` when view presented in its own window
* #360 Fix touch handing issue in iOS 13.1.3
* #382 Fix warnings in Xcode 11.4

## 7.0.1

### Changes

* Support iOS 13.

### Features
* #335 Add option to hide status bar when view is displayed in a window. As of iOS 13, windows can no longer cover the status bar. The only alternative is to set `Config.prefersStatusBarHidden = true` to hide it.

## 7.0.0

### Changes

* Swift 5
* Remove deprecated APIs

### Features

* #313 Improved sizing on iPad
  
>`SwiftMessagesSegue` provides default view controller sizing based on device, with width on iPad being limited to 500pt max. However, it is recommended that you explicitly specify size appropriate for your content using one of the following methods.
>  1. Define sufficient width and height constraints in your view controller such that it sizes itself.
>  1. Set the `preferredContentSize` property (a.k.a "Use Preferred Explicit Size" in Interface Builder's attribute inspector). Zeros are ignored, e.g. `CGSize(width: 0, height: 350)` only affects the height.
>  1. Add explicit width and/or height constraints to `segue.messageView.backgroundView`.  
>
>Note that `Layout.topMessage` and `Layout.bottomMessage` are always full screen width. For other layouts, the there is a maximum 500pt width on for regular horizontal size class (iPad) at 950 priority. This limit can be overridden by adding higher-priority constraints.

* #275 Add ability to avoid the keyboard.

>The `KeyboardTrackingView` class can be used to cause the message view to avoid the keyboard by sliding up when the keyboard gets too close.
>
>````swift
>// Message view
>var config = SwiftMessages.defaultConfig
>config.keyboardTrackingView = KeyboardTrackingView()
>
>// Or view controller
>segue.keyboardTrackingView = KeyboardTrackingView()
>````
>You can incorporate `KeyboardTrackingView` into your app even when you're not using SwiftMessages. Install into your view hierarchy by pinning `KeyboardTrackingView` to the bottom, leading, and trailing edges of the screen. Then pin the bottom of your content that should avoid the keyboard to the top `KeyboardTrackingView`. Use an equality constraint to strictly track the keyboard or an inequality constraint to only move when the keyboard gets too close. `KeyboardTrackingView` works by observing keyboard notifications and adjusting its height to maintain its top edge above the keyboard, thereby pushing your content up. See the comments in `KeyboardTrackingView` for configuration options.


* #276 Add ability to hide message without animation
* #272 Add duration for `SwiftMessagesSegue`
* #278 Make pan gesture recognizers public

## 6.0.2

### Features

* #262 Add event listeners to `SwiftMessagesSegue`.

## 6.0.1

### Features
* #257 The `.centered` presentation style, which is a shortcut for a specific configuration of the `PhysicsAnimation` animator, provides a physics-based dismissal gesture where the view can be flung off screen. When the view goes out of the container view's bounds, the animator calls `SwiftMessages.hide()`, which animates the dim view away and concludes the message view's lifecycle. There is currently a small delay of 0.2s before calling `hide()`.

This change adds the ability to configure the delay by customizing the animator. For example, to set the delay to zero, one would do:

````swift
let animation = PhysicsAnimation()
animation.panHandler.hideDelay = 0
config.presentationStyle = .custom(animator: animation)
````

## 6.0.0

### Changes

* Migrate to Swift 4.2

### Fixes

* Fix #228 restore shared SwiftMessages scheme

## 5.0.1

### Fixes

* Remove debug code that broke the view controller's section of the Demo app.

## 5.0.0

### Breaking Changes

* Removed support for iOS 8.

### Features
* Add support for modal view controller presentation using [`SwiftMessagesSegue`](./SwiftMessages/SwiftMessagesSegue.swift) custom segue subclass. Try it out in the "View Controllers" section of the Demo app. In addition to the class documentation, more can be found in the [View Controllers](./ViewControllers.md) readme.
* Update nib files to be more visually consistent with iPhone X:
  * Introduce [`CornerRoundingView`](./SwiftMessages/CornerRoundingView.swift), which provides configurable corner rounding using squircles (the smoother method of rounding corners that you see on app icons). Nib files that feature rounded corners have their `backgroundView` assigned to a `CornerRoundingView`. `CornerRoundingView` provides a `roundsLeadingCorners` option to dynamically round only the leading corners of the view when presented from top or bottom (a feature used for the tab-style layouts).
  * Increased the default corner radius to 20. Corner radius can be changed by either modifying the nib file or 
* Reworked the [`MarginAdjustable`](./SwiftMessages/MarginAdjustable.swift) to improve configurability of layout margins.
* Add rubber-banding to the interactive dismissal gesture. Rubber banding is automatically applied for views where `backgroundView` is inset from the message view's edges.
* Added `showDuration` and `hideDuration` properties to the `Animator` protocol (with default implementation that returns `nil`). These values enable animations to work for view controller presentation.

### Fixes

* #202 bodyLabel should set textAlignment to .natural
* #200 Automatic Presentation Context Broken
* Fix default value of `TopBottomAnimation.closePercentThreshold`

## 4.1.4

### Bug Fixes
* Fix #191 Prevent usage of UIApplication.shared when building for extensions

### Improvements
* #192 Add a way to test compilation with app extension

## 4.1.3

### Features
* #183 Added iOS app extension support at compile time.

### Bug Fixes
* Fix #185 Incorrect margin adjustments in landscape
* Fix #188 Physics animation visual glitch

## 4.1.2

### Features
* Updates for Swift 4.1
* #164 Added an optional `windowViewController` property to `SwiftMessages.Config` for supplying a custom subclass of `WindowViewController`.

### Bug Fixes
* Custom presentation styles using `TopBottomAnimation` now display properly under top and bottom bars.

## 4.1.1

### Features
* #152 Get current message being displayed without specifying an `id`

## 4.1.0

### Features

* Fix #134 add support for `CenterAnimation` displayed on top or bottom instead of center (renamed to `PhysicsAnimation`).

### Fixes

* Fix #128 move icons out of asset catalog to prevent mysterious crash
* Fix #129 adjust layout margins on orientation change to preserve layout when iOS hides status bar in landscape.
* Fix #131 by always completing hide/show animations if application isn't active.


## 4.0.0

### Features
* Swift 4.0 syntax
* Added support for iOS 11 and iPhone X. From the readme:

  SwiftMessages 4 supports iOS 11 out-of-the-box with built-in support   for safe areas. To ensur  that message view layouts look just right when overlapping safe areas, views that adopt the `MarginAdjustable` protocol (like `MessageView`) will have their layout margins automatically adjusted by SwiftMessages. However, there is no one-size-fits-all adjustment, so the following properties were added to `MarginAdjustable` to allow for additional adjustments to be made to the layout margins:

  ````swift
  public protocol MarginAdjustable {
      ...
      /// Safe area top adjustment in iOS 11+
      var safeAreaTopOffset: CGFloat { get set }
      /// Safe area bottom adjustment in iOS 11+
      var safeAreaBottomOffset: CGFloat { get set }
  }
  ````

  If you're using using custom nib files or view classes and your layouts don't look quite right, try adjusting the values of these properties. `BaseView` (the super class of `MessageView`) declares these properties to be `@IBDesignable` and you can find sample values in the nib files included with SwiftMessages.

### Bug Fixes
* Fix #100 memory leak.
* Change `Layout` enum capitalization to current Swift conventions.

## [3.5.1](https://github.com/SwiftKickMobile/SwiftMessages/releases/tag/3.5.0)

### Bug Fixes
* Undo change that broke `MessageView` class reference on nib files copied out of the SwiftMessages framework.

## [3.5.0](https://github.com/SwiftKickMobile/SwiftMessages/releases/tag/3.5.0)

### Features
* Added `SwiftMessages.hideCounted(id:)` method of hiding. The counted method hides when the number of calls to `show()` and `hideCounted(id:)` for a 
given message ID are equal. This can be useful for messages that may be
shown from  multiple code paths to ensure that all paths are ready to hide.

  Also added `SwiftMessages.count(id:)` to get the current count and `SwiftMessages.set(id:count:)` to set the current count.

* Added ways to retrieve message views currently being shown, hidden, or queued to be shown.

  ````swift
  // Get a message view with the given ID if it is currently 
  // being shown or hidden.
  if let view = SwiftMessages.current(id: "some id") { ... }
  
  // Get a message view with the given ID if is it currently 
  // queued to be shown. 
  if let view = SwiftMessages.queued(id: "some id") { ... }
  
  // Get a message view with the given ID if it is currently being
  // shown, hidden or in the queue to be shown.
  if let view = SwiftMessages.currentOrQueued(id: "some id") { ... }
  ````

### Bug Fixes
* Fix #116 for message views that don't adopt the `Identifiable` protocol by using the memory address as the ID.
* Fix #113 MessageView not hiding
* Fix #87 Support manual install

## [3.4.0](https://github.com/SwiftKickMobile/SwiftMessages/releases/tag/3.4.0)

### Features
* Added `.center` presentation style with a physics-based dismissal gesture.
* Added `.custom(animator:)` presentation style, where you provide an instance of the `Animator` protocol. The `TopBottomAnimation` and `CenterAnimation` animations both implement `Animator` and may be subclassed (configuration options will be added in a future release). `PhysicsPanHandler` class to provide a physics-based dismissal gesture.
* Added `.centered` message view layout with elements centered and arranged vertically.
* Added `configureBackgroundView(width:)` and `configureBackgroundView(sideMargin:)` convenience methods to `MessageView`.

## [3.3.4](https://github.com/SwiftKickMobile/SwiftMessages/releases/tag/3.3.4)

### Features
* #89 Add `blur` dim mode option.

### Bug Fixes
* #98 Fix touch handling in message view's background view.
* #97 Fix main thread checker warning 

## [3.3.3](https://github.com/SwiftKickMobile/SwiftMessages/releases/tag/3.3.3)

### Bug Fixes
* Fix an issue where rapidly showing and hiding messages could result in messages becoming orphaned on-screen.

## [3.3.2](https://github.com/SwiftKickMobile/SwiftMessages/releases/tag/3.3.2)

### Improvements
* `MessageView` is smarter about including additional accessibility views for cases where you've added accessible elements to the view. Previously only the `button` was included. Now all views where `isAccessibilityElement == true`.

    Note that all nib files now have `isAccessibilityElement == false` for `titleLabel`, `bodyLabel` and `iconLabel` (`titleLabel` and `bodyLabel` are read out as part of the overall message view's text). If any of these need to be directly accessible, then copy the nib file into your project and select "Enabled" in the Accessibility section of the Identity Inspector.

## [3.3.1](https://github.com/SwiftKickMobile/SwiftMessages/releases/tag/3.3.1)

### Bug Fixes
* Fix regression where the UI was being blocked when using `DimMode.none`.

## [3.3.0](https://github.com/SwiftKickMobile/SwiftMessages/releases/tag/3.3.0)

### Features
* Add proper support for VoiceOver. See the [Accessibility section](README.md#accessibility) of the readme.

## [3.2.1](https://github.com/SwiftKickMobile/SwiftMessages/releases/tag/3.2.1)

### Bug Fixes
* Fix infinite loop bug introduced in 3.2.0.

## [3.2.0](https://github.com/SwiftKickMobile/SwiftMessages/releases/tag/3.2.0)

### Features
* Added the ability to display messages for an indefinite duration while enforcing a minimum duration using `Duration.indefinite(delay:minimum)`.

This option is useful for displaying a message when a process is taking too long but you don't want to display the message if the process completes in a reasonable amount of time.
         
For example, if a URL load is expected to complete in 2 seconds, you may use the value `unknown(delay: 2, minimum 1)` to ensure that the message will not be displayed most of the time, but will be displayed for at least 1 second if the operation takes longer than 2 seconds. By specifying a minimum duration, you can avoid hiding the message too fast if the operation finishes right after the delay interval.

### Bug Fixes
* Prevent views below the dim view from receiving accessibility focus.
* Prevent taps in the message view from hiding when using interactive dim mode.
* Fix memory leak of single message view

## [3.1.5](https://github.com/SwiftKickMobile/SwiftMessages/releases/tag/3.1.5)

### Bug Fixes

* Fix memory leak of `MessageViews`.

## [3.1.4](https://github.com/SwiftKickMobile/SwiftMessages/releases/tag/3.1.4)

### Bug Fixes

* Fixed an issue where UIKit components were being instantiated off the main queue.

## [3.1.3](https://github.com/SwiftKickMobile/SwiftMessages/releases/tag/3.1.3)

### Features

* Added the ability to set a custom value on `MessageView.id`. This can be useful for dismissing specific messages using a pre-defined `id`.

## [3.1.2](https://github.com/SwiftKickMobile/SwiftMessages/releases/tag/3.1.2)

### Features

* Changed the default behavior when a message is displayed in its own window (such as with `.window` presentation context) to no longer become the key window in order to prevent the keyboard from dismissing. If one needs the message's window to become key, this can be done by setting `SwiftMessages.Config.becomeKeyWindow` to `true`. See 

### Bug Fixes

* Changed the internal logic of hiding a message view to always succeed to work around the problem of the hide animation failing, such as when started while the app is not active.
* Improved reliability of the automatic adjustments made to avoid message views overlapping the status bar, particularly when using the `.view` presentation context.

## [3.1.1](https://github.com/SwiftKickMobile/SwiftMessages/releases/tag/3.1.1)

### Features

* Added a `view` case to `presentationContext` for displaying the message in a specific container view.

## [3.1.0](https://github.com/SwiftKickMobile/SwiftMessages/releases/tag/3.1.0)

### Features

* Add `eventListeners` option to `SwiftMessages.Config` to specify a list of event listeners to be notified of message show and hide events.

## [3.0.3](https://github.com/SwiftKickMobile/SwiftMessages/releases/tag/3.0.3)

### Features

* Add `ignoreDuplicates` option to `SwiftMessages.Config` to specify whether or not to ignore duplicate `Identifiable` message views.

## [3.0.2](https://github.com/SwiftKickMobile/SwiftMessages/releases/tag/3.0.2)

### Features

* Add `shouldAutorotate` option to `SwiftMessages.Config` for customizing device rotation behavior when messages are presented in an overlay window. By default, message will auto-rotate.

## [3.0.1](https://github.com/SwiftKickMobile/SwiftMessages/releases/tag/3.0.1)

### Improvements

* Enable automatic provisioning on framework target

## [3.0.0](https://github.com/SwiftKickMobile/SwiftMessages/releases/tag/3.0.0)

### Breaking Changes

* Support for Swift 3.0.

## [2.0.0](https://github.com/SwiftKickMobile/SwiftMessages/releases/tag/2.0.0)

### Breaking Changes

* Support for Swift 2.3 and Xcode 8.

  The nib files needed to be updated to Xcode 8 format to work 
  around an iOS bug. Unfortunately, this makes it necessary 
  to break backward compatibility with Swift 2.2 and Xcode 7.

## [1.1.4](https://github.com/SwiftKickMobile/SwiftMessages/releases/tag/1.1.4)

### Bug Fixes

* Fix #16 Preserve status bar visibility when displaying message in a new window.

## [1.1.3](https://github.com/SwiftKickMobile/SwiftMessages/releases/tag/1.1.3)

### Features

* Add default configuration `SwiftMessages.defaultConfig` that can be used when calling the variants of `show()` that don't take a `config` argument or as a global base for custom configs.
* Add `Array.sm_random()` function that returns a random element from the array. Can be used to create a playful
     message that cycles randomly through a set of emoji icons, for example.

### Bug Fixes

* Fix #5 Emoji not shown!
* Fix #6 There is no way to create SwiftMessages instance as there is no public initializer

## [1.1.2](https://github.com/SwiftKickMobile/SwiftMessages/releases/tag/1.1.2)

### Bug Fixes

* Fix Carthage-related issues.

## [1.1.1](https://github.com/SwiftKickMobile/SwiftMessages/releases/tag/1.1.1)

### Features

* New layout `Layout.TabView` — like `Layout.CardView` with one end attached to the super view.

### Bug Fixes

* Fix spacing between title and body text in `Layout.CardView` when body text wraps.

## [1.1.0](https://github.com/SwiftKickMobile/SwiftMessages/releases/tag/1.1.0)

### Improvements

### API Changes

* The `BaseView.contentView` property of was removed because it no longer had any functionality in the framework.

    This is a minor backwards incompatible change. If you've copied one of the included nib files from a previous release, you may get a key-value coding runtime error related to contentView, in which case you can subclass the view and add a `contentView` property or you can remove the outlet connection in Interface Builder.

## [1.0.3](https://github.com/SwiftKickMobile/SwiftMessages/releases/tag/1.0.2)

### Improvements

* Remove the `iconContainer` property from `MessageView`.

### Bug Fixes

* Fix constraints generated by `BaseView.installContentView()`.

## [1.0.2](https://github.com/SwiftKickMobile/SwiftMessages/releases/tag/1.0.2)

### Features

* Add support for specifying an `IconStyle` in the `MessageView.configureTheme()` convenience function.

## [1.0.1](https://github.com/SwiftKickMobile/SwiftMessages/releases/tag/1.0.1)

* Add code comments.

## [1.0.0](https://github.com/SwiftKickMobile/SwiftMessages/releases/tag/1.0.0)

* Initial release.


================================================
FILE: Demo/.Podfile
================================================
target 'Demo' do
    use_frameworks!
    workspace 'Demo.xcworkspace'
    xcodeproj 'Demo.xcodeproj'
    pod 'SwiftMessages/App', :path => '../'
    pod 'SwiftMessages/SegueExtras', :path => '../'
end



================================================
FILE: Demo/Demo/AppDelegate.swift
================================================
//
//  AppDelegate.swift
//  Demo
//
//  Created by Tim Moose on 8/11/16.
//  Copyright © 2016 SwiftKick Mobile. All rights reserved.
//

import UIKit

let brandColor = UIColor(red: 42/255.0, green: 168/255.0, blue: 250/255.0, alpha: 1)

@UIApplicationMain
class AppDelegate: UIResponder, UIApplicationDelegate {

    var window: UIWindow?

    func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey : Any]? = nil) -> Bool {
        window?.tintColor = brandColor
        UISwitch.appearance().onTintColor = brandColor
        return true
    }
}



================================================
FILE: Demo/Demo/Assets.xcassets/AppIcon.appiconset/Contents.json
================================================
{
  "images" : [
    {
      "size" : "20x20",
      "idiom" : "iphone",
      "filename" : "Icon-App-20x20@2x.png",
      "scale" : "2x"
    },
    {
      "size" : "20x20",
      "idiom" : "iphone",
      "filename" : "Icon-App-20x20@3x.png",
      "scale" : "3x"
    },
    {
      "size" : "29x29",
      "idiom" : "iphone",
      "filename" : "Icon-App-29x29@1x.png",
      "scale" : "1x"
    },
    {
      "size" : "29x29",
      "idiom" : "iphone",
      "filename" : "Icon-App-29x29@2x.png",
      "scale" : "2x"
    },
    {
      "size" : "29x29",
      "idiom" : "iphone",
      "filename" : "Icon-App-29x29@3x.png",
      "scale" : "3x"
    },
    {
      "size" : "40x40",
      "idiom" : "iphone",
      "filename" : "Icon-App-40x40@2x.png",
      "scale" : "2x"
    },
    {
      "size" : "40x40",
      "idiom" : "iphone",
      "filename" : "Icon-App-40x40@3x.png",
      "scale" : "3x"
    },
    {
      "size" : "60x60",
      "idiom" : "iphone",
      "filename" : "Icon-App-60x60@2x.png",
      "scale" : "2x"
    },
    {
      "size" : "60x60",
      "idiom" : "iphone",
      "filename" : "Icon-App-60x60@3x.png",
      "scale" : "3x"
    },
    {
      "size" : "20x20",
      "idiom" : "ipad",
      "filename" : "Icon-App-20x20@1x.png",
      "scale" : "1x"
    },
    {
      "size" : "20x20",
      "idiom" : "ipad",
      "filename" : "Icon-App-20x20@2x-1.png",
      "scale" : "2x"
    },
    {
      "size" : "29x29",
      "idiom" : "ipad",
      "filename" : "Icon-App-29x29@1x-1.png",
      "scale" : "1x"
    },
    {
      "size" : "29x29",
      "idiom" : "ipad",
      "filename" : "Icon-App-29x29@2x-1.png",
      "scale" : "2x"
    },
    {
      "size" : "40x40",
      "idiom" : "ipad",
      "filename" : "Icon-App-20x20@2x-2.png",
      "scale" : "1x"
    },
    {
      "size" : "40x40",
      "idiom" : "ipad",
      "filename" : "Icon-App-40x40@2x-1.png",
      "scale" : "2x"
    },
    {
      "size" : "76x76",
      "idiom" : "ipad",
      "filename" : "Icon-App-76x76@1x.png",
      "scale" : "1x"
    },
    {
      "size" : "76x76",
      "idiom" : "ipad",
      "filename" : "Icon-App-76x76@2x.png",
      "scale" : "2x"
    },
    {
      "size" : "83.5x83.5",
      "idiom" : "ipad",
      "filename" : "Icon-App-83.5x83.5@2x.png",
      "scale" : "2x"
    },
    {
      "size" : "1024x1024",
      "idiom" : "ios-marketing",
      "filename" : "Icon-App-iTunes.png",
      "scale" : "1x"
    }
  ],
  "info" : {
    "version" : 1,
    "author" : "xcode"
  }
}

================================================
FILE: Demo/Demo/Assets.xcassets/Contents.json
================================================
{
  "info" : {
    "version" : 1,
    "author" : "xcode"
  }
}

================================================
FILE: Demo/Demo/Assets.xcassets/iconSwiftMessages.imageset/Contents.json
================================================
{
  "images" : [
    {
      "idiom" : "universal",
      "filename" : "iconSwiftMessages.pdf"
    }
  ],
  "info" : {
    "version" : 1,
    "author" : "xcode"
  },
  "properties" : {
    "template-rendering-intent" : "template"
  }
}

================================================
FILE: Demo/Demo/Assets.xcassets/puppies.imageset/Contents.json
================================================
{
  "images" : [
    {
      "idiom" : "universal",
      "scale" : "1x"
    },
    {
      "idiom" : "universal",
      "filename" : "puppies.png",
      "scale" : "2x"
    },
    {
      "idiom" : "universal",
      "scale" : "3x"
    }
  ],
  "info" : {
    "version" : 1,
    "author" : "xcode"
  }
}

================================================
FILE: Demo/Demo/Assets.xcassets/splashBanner.imageset/Contents.json
================================================
{
  "images" : [
    {
      "idiom" : "universal",
      "filename" : "splashBanner.pdf"
    }
  ],
  "info" : {
    "version" : 1,
    "author" : "xcode"
  },
  "properties" : {
    "template-rendering-intent" : "original"
  }
}

================================================
FILE: Demo/Demo/Base.lproj/LaunchScreen.storyboard
================================================
<?xml version="1.0" encoding="UTF-8"?>
<document type="com.apple.InterfaceBuilder3.CocoaTouch.Storyboard.XIB" version="3.0" toolsVersion="22505" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" launchScreen="YES" useTraitCollections="YES" colorMatched="YES" initialViewController="01J-lp-oVM">
    <device id="retina4_7" orientation="portrait" appearance="light"/>
    <dependencies>
        <deployment identifier="iOS"/>
        <plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="22504"/>
        <capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/>
    </dependencies>
    <scenes>
        <!--View Controller-->
        <scene sceneID="EHf-IW-A2E">
            <objects>
                <viewController id="01J-lp-oVM" sceneMemberID="viewController">
                    <layoutGuides>
                        <viewControllerLayoutGuide type="top" id="Llm-lL-Icb"/>
                        <viewControllerLayoutGuide type="bottom" id="xb3-aO-Qok"/>
                    </layoutGuides>
                    <view key="view" contentMode="scaleToFill" id="Ze5-6b-2t3">
                        <rect key="frame" x="0.0" y="0.0" width="375" height="667"/>
                        <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
                        <subviews>
                            <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="© 2024 SWIFTKICK MOBILE LLC" textAlignment="center" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="sBz-Dk-SSO">
                                <rect key="frame" x="46" y="643" width="283" height="16"/>
                                <fontDescription key="fontDescription" type="system" pointSize="13"/>
                                <color key="textColor" red="0.47391887630000001" green="0.47391887630000001" blue="0.47391887630000001" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
                                <nil key="highlightedColor"/>
                            </label>
                            <imageView userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="splashBanner" translatesAutoresizingMaskIntoConstraints="NO" id="236-Ta-JzA">
                                <rect key="frame" x="16" y="196.5" width="343" height="274"/>
                            </imageView>
                        </subviews>
                        <color key="backgroundColor" red="1" green="1" blue="1" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
                        <constraints>
                            <constraint firstItem="236-Ta-JzA" firstAttribute="centerY" secondItem="Ze5-6b-2t3" secondAttribute="centerY" id="CEe-Gz-yDf"/>
                            <constraint firstItem="sBz-Dk-SSO" firstAttribute="leading" secondItem="Ze5-6b-2t3" secondAttribute="leadingMargin" constant="30" id="Dkq-dl-gDt"/>
                            <constraint firstItem="xb3-aO-Qok" firstAttribute="top" secondItem="sBz-Dk-SSO" secondAttribute="bottom" constant="8" symbolic="YES" id="UrJ-mr-8Jj"/>
                            <constraint firstAttribute="trailingMargin" secondItem="sBz-Dk-SSO" secondAttribute="trailing" constant="30" id="ezd-98-VGo"/>
                            <constraint firstItem="236-Ta-JzA" firstAttribute="leading" secondItem="Ze5-6b-2t3" secondAttribute="leadingMargin" id="hFL-YR-MPf"/>
                            <constraint firstItem="236-Ta-JzA" firstAttribute="centerX" secondItem="Ze5-6b-2t3" secondAttribute="centerX" id="mTQ-eG-DFv"/>
                        </constraints>
                    </view>
                </viewController>
                <placeholder placeholderIdentifier="IBFirstResponder" id="iYj-Kq-Ea1" userLabel="First Responder" sceneMemberID="firstResponder"/>
            </objects>
            <point key="canvasLocation" x="53" y="375"/>
        </scene>
    </scenes>
    <resources>
        <image name="splashBanner" width="370" height="274"/>
    </resources>
</document>


================================================
FILE: Demo/Demo/Base.lproj/Main.storyboard
================================================
<?xml version="1.0" encoding="UTF-8"?>
<document type="com.apple.InterfaceBuilder3.CocoaTouch.Storyboard.XIB" version="3.0" toolsVersion="22505" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" useTraitCollections="YES" colorMatched="YES" initialViewController="JQZ-C5-7mw">
    <device id="retina4_7" orientation="portrait" appearance="light"/>
    <dependencies>
        <deployment identifier="iOS"/>
        <plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="22504"/>
        <capability name="System colors in document resources" minToolsVersion="11.0"/>
        <capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/>
    </dependencies>
    <scenes>
        <!--Tab Bar Controller-->
        <scene sceneID="hAI-jZ-7cq">
            <objects>
                <tabBarController id="JQZ-C5-7mw" sceneMemberID="viewController">
                    <tabBar key="tabBar" contentMode="scaleToFill" id="cwg-nW-Hjl">
                        <rect key="frame" x="0.0" y="0.0" width="320" height="49"/>
                        <autoresizingMask key="autoresizingMask"/>
                        <color key="backgroundColor" red="0.0" green="0.0" blue="0.0" alpha="0.0" colorSpace="custom" customColorSpace="sRGB"/>
                    </tabBar>
                    <connections>
                        <segue destination="UrZ-Dq-bGZ" kind="relationship" relationship="viewControllers" id="S26-Ux-PAK"/>
                    </connections>
                </tabBarController>
                <placeholder placeholderIdentifier="IBFirstResponder" id="J0t-Vs-UfA" userLabel="First Responder" sceneMemberID="firstResponder"/>
            </objects>
            <point key="canvasLocation" x="-327" y="305"/>
        </scene>
        <!--Demo-->
        <scene sceneID="H45-vn-dic">
            <objects>
                <tableViewController id="vur-BZ-g1e" customClass="ViewController" customModule="Demo" customModuleProvider="target" sceneMemberID="viewController">
                    <tableView key="view" clipsSubviews="YES" contentMode="scaleToFill" alwaysBounceVertical="YES" dataMode="prototypes" style="plain" separatorStyle="default" rowHeight="44" sectionHeaderHeight="28" sectionFooterHeight="28" id="j4a-wU-637">
                        <rect key="frame" x="0.0" y="0.0" width="375" height="667"/>
                        <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
                        <color key="backgroundColor" systemColor="systemBackgroundColor"/>
                        <prototypes>
                            <tableViewCell clipsSubviews="YES" contentMode="scaleToFill" selectionStyle="default" indentationWidth="10" reuseIdentifier="TitleBody" rowHeight="80" id="2n5-7h-3B5" userLabel="TitleBody Cell" customClass="TitleBodyCell" customModule="Demo" customModuleProvider="target">
                                <rect key="frame" x="0.0" y="50" width="375" height="80"/>
                                <autoresizingMask key="autoresizingMask"/>
                                <tableViewCellContentView key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" tableViewCell="2n5-7h-3B5" id="Q5r-8D-38q">
                                    <rect key="frame" x="0.0" y="0.0" width="375" height="80"/>
                                    <autoresizingMask key="autoresizingMask"/>
                                    <subviews>
                                        <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="252" verticalCompressionResistancePriority="752" text="TITLE" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="Icl-Ci-lfe">
                                            <rect key="frame" x="26" y="21" width="323" height="16"/>
                                            <fontDescription key="fontDescription" type="boldSystem" pointSize="13"/>
                                            <nil key="highlightedColor"/>
                                        </label>
                                        <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Body" textAlignment="natural" lineBreakMode="tailTruncation" numberOfLines="0" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="Gpd-DA-5jT">
                                            <rect key="frame" x="26" y="45" width="323" height="14"/>
                                            <fontDescription key="fontDescription" type="system" pointSize="16"/>
                                            <color key="textColor" systemColor="secondaryLabelColor"/>
                                            <nil key="highlightedColor"/>
                                        </label>
                                    </subviews>
                                    <constraints>
                                        <constraint firstItem="Icl-Ci-lfe" firstAttribute="top" secondItem="Q5r-8D-38q" secondAttribute="topMargin" constant="10" id="7qX-PS-7Br"/>
                                        <constraint firstAttribute="trailingMargin" secondItem="Icl-Ci-lfe" secondAttribute="trailing" constant="10" id="9Ha-2P-5dg"/>
                                        <constraint firstAttribute="bottomMargin" secondItem="Gpd-DA-5jT" secondAttribute="bottom" constant="10" id="VwJ-wz-P2g"/>
                                        <constraint firstItem="Gpd-DA-5jT" firstAttribute="top" secondItem="Icl-Ci-lfe" secondAttribute="bottom" constant="8" id="WE3-mw-fmP"/>
                                        <constraint firstAttribute="trailingMargin" secondItem="Gpd-DA-5jT" secondAttribute="trailing" constant="10" id="ZxR-2w-fCS"/>
                                        <constraint firstItem="Icl-Ci-lfe" firstAttribute="leading" secondItem="Q5r-8D-38q" secondAttribute="leadingMargin" constant="10" id="uRM-0T-hNk"/>
                                        <constraint firstItem="Gpd-DA-5jT" firstAttribute="leading" secondItem="Q5r-8D-38q" secondAttribute="leadingMargin" constant="10" id="wpS-N6-i5Z"/>
                                    </constraints>
                                </tableViewCellContentView>
                                <connections>
                                    <outlet property="bodyLabel" destination="Gpd-DA-5jT" id="36l-W7-Kpm"/>
                                    <outlet property="titleLabel" destination="Icl-Ci-lfe" id="XnB-LL-hx6"/>
                                </connections>
                            </tableViewCell>
                            <tableViewCell clipsSubviews="YES" contentMode="scaleToFill" selectionStyle="default" accessoryType="disclosureIndicator" indentationWidth="10" reuseIdentifier="Explore" rowHeight="80" id="4Pm-kC-YGr" userLabel="Explore Cell" customClass="TitleBodyCell" customModule="Demo" customModuleProvider="target">
                                <rect key="frame" x="0.0" y="130" width="375" height="80"/>
                                <autoresizingMask key="autoresizingMask"/>
                                <tableViewCellContentView key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" tableViewCell="4Pm-kC-YGr" id="LmG-UL-Bu8">
                                    <rect key="frame" x="0.0" y="0.0" width="348.5" height="80"/>
                                    <autoresizingMask key="autoresizingMask"/>
                                    <subviews>
                                        <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="252" verticalCompressionResistancePriority="752" text="EXPLORE" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="TbM-iT-SVg">
                                            <rect key="frame" x="26" y="21" width="304.5" height="16"/>
                                            <fontDescription key="fontDescription" type="boldSystem" pointSize="13"/>
                                            <nil key="highlightedColor"/>
                                        </label>
                                        <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Explore many of the SwiftMessages configuration options." textAlignment="natural" lineBreakMode="tailTruncation" numberOfLines="0" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="Siq-Fh-MNa">
                                            <rect key="frame" x="26" y="45" width="304.5" height="14"/>
                                            <fontDescription key="fontDescription" type="system" pointSize="16"/>
                                            <color key="textColor" systemColor="secondaryLabelColor"/>
                                            <nil key="highlightedColor"/>
                                        </label>
                                    </subviews>
                                    <constraints>
                                        <constraint firstAttribute="trailingMargin" secondItem="Siq-Fh-MNa" secondAttribute="trailing" constant="10" id="80d-y2-OaV"/>
                                        <constraint firstItem="TbM-iT-SVg" firstAttribute="top" secondItem="LmG-UL-Bu8" secondAttribute="topMargin" constant="10" id="8gG-fN-yDK"/>
                                        <constraint firstItem="TbM-iT-SVg" firstAttribute="leading" secondItem="LmG-UL-Bu8" secondAttribute="leadingMargin" constant="10" id="TRM-3t-LhI"/>
                                        <constraint firstAttribute="bottomMargin" secondItem="Siq-Fh-MNa" secondAttribute="bottom" constant="10" id="Tdt-Nk-UrS"/>
                                        <constraint firstItem="Siq-Fh-MNa" firstAttribute="leading" secondItem="LmG-UL-Bu8" secondAttribute="leadingMargin" constant="10" id="YMF-hA-DB8"/>
                                        <constraint firstItem="Siq-Fh-MNa" firstAttribute="top" secondItem="TbM-iT-SVg" secondAttribute="bottom" constant="8" id="vck-Dy-ghK"/>
                                        <constraint firstAttribute="trailingMargin" secondItem="TbM-iT-SVg" secondAttribute="trailing" constant="10" id="zxz-YD-4Rc"/>
                                    </constraints>
                                </tableViewCellContentView>
                                <connections>
                                    <outlet property="bodyLabel" destination="Siq-Fh-MNa" id="gAv-bW-aS2"/>
                                    <outlet property="titleLabel" destination="TbM-iT-SVg" id="qSC-ce-0UT"/>
                                    <segue destination="NF9-wZ-lbZ" kind="show" id="qqa-aN-MxW"/>
                                </connections>
                            </tableViewCell>
                            <tableViewCell clipsSubviews="YES" contentMode="scaleToFill" selectionStyle="default" accessoryType="disclosureIndicator" indentationWidth="10" reuseIdentifier="ViewController" rowHeight="80" id="edV-Vx-7mh" userLabel="View Controller Cell" customClass="TitleBodyCell" customModule="Demo" customModuleProvider="target">
                                <rect key="frame" x="0.0" y="210" width="375" height="80"/>
                                <autoresizingMask key="autoresizingMask"/>
                                <tableViewCellContentView key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" tableViewCell="edV-Vx-7mh" id="6Ng-ZR-L6v">
                                    <rect key="frame" x="0.0" y="0.0" width="348.5" height="80"/>
                                    <autoresizingMask key="autoresizingMask"/>
                                    <subviews>
                                        <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="252" verticalCompressionResistancePriority="752" text="VIEW CONTROLLERS" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="Qz1-BL-wQN">
                                            <rect key="frame" x="26" y="21" width="304.5" height="16"/>
                                            <fontDescription key="fontDescription" type="boldSystem" pointSize="13"/>
                                            <nil key="highlightedColor"/>
                                        </label>
                                        <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Present modal view controllers with SwiftMessages animations." textAlignment="natural" lineBreakMode="tailTruncation" numberOfLines="0" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="sCg-K7-URy">
                                            <rect key="frame" x="26" y="45" width="304.5" height="14"/>
                                            <fontDescription key="fontDescription" type="system" pointSize="16"/>
                                            <color key="textColor" systemColor="secondaryLabelColor"/>
                                            <nil key="highlightedColor"/>
                                        </label>
                                    </subviews>
                                    <constraints>
                                        <constraint firstAttribute="bottomMargin" secondItem="sCg-K7-URy" secondAttribute="bottom" constant="10" id="5CA-Mw-MCB"/>
                                        <constraint firstItem="sCg-K7-URy" firstAttribute="leading" secondItem="6Ng-ZR-L6v" secondAttribute="leadingMargin" constant="10" id="B2Y-Ni-QEB"/>
                                        <constraint firstAttribute="trailingMargin" secondItem="Qz1-BL-wQN" secondAttribute="trailing" constant="10" id="kJt-ef-Icu"/>
                                        <constraint firstItem="sCg-K7-URy" firstAttribute="top" secondItem="Qz1-BL-wQN" secondAttribute="bottom" constant="8" id="rMk-Ai-Ciy"/>
                                        <constraint firstItem="Qz1-BL-wQN" firstAttribute="leading" secondItem="6Ng-ZR-L6v" secondAttribute="leadingMargin" constant="10" id="t99-ux-IyQ"/>
                                        <constraint firstAttribute="trailingMargin" secondItem="sCg-K7-URy" secondAttribute="trailing" constant="10" id="xM7-x5-Q9q"/>
                                        <constraint firstItem="Qz1-BL-wQN" firstAttribute="top" secondItem="6Ng-ZR-L6v" secondAttribute="topMargin" constant="10" id="xjb-IK-xql"/>
                                    </constraints>
                                </tableViewCellContentView>
                                <connections>
                                    <outlet property="bodyLabel" destination="sCg-K7-URy" id="RNc-md-GU0"/>
                                    <outlet property="titleLabel" destination="Qz1-BL-wQN" id="U3l-JI-Mxx"/>
                                    <segue destination="bb1-hO-yeb" kind="show" id="1SB-WP-aOw"/>
                                </connections>
                            </tableViewCell>
                            <tableViewCell clipsSubviews="YES" contentMode="scaleToFill" selectionStyle="default" accessoryType="disclosureIndicator" indentationWidth="10" reuseIdentifier="ViewController2" rowHeight="80" id="5bv-q2-Q3k" userLabel="View Controller Cell" customClass="TitleBodyCell" customModule="Demo" customModuleProvider="target">
                                <rect key="frame" x="0.0" y="290" width="375" height="80"/>
                                <autoresizingMask key="autoresizingMask"/>
                                <tableViewCellContentView key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" tableViewCell="5bv-q2-Q3k" id="6q2-Qj-PQE">
                                    <rect key="frame" x="0.0" y="0.0" width="348.5" height="80"/>
                                    <autoresizingMask key="autoresizingMask"/>
                                    <subviews>
                                        <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="252" verticalCompressionResistancePriority="752" text="VIEW CONTROLLERS 2" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="N18-CP-QIt">
                                            <rect key="frame" x="26" y="21" width="304.5" height="16"/>
                                            <fontDescription key="fontDescription" type="boldSystem" pointSize="13"/>
                                            <nil key="highlightedColor"/>
                                        </label>
                                        <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Present modal view controllers with SwiftMessages animations." textAlignment="natural" lineBreakMode="tailTruncation" numberOfLines="0" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="T5Q-9f-KQC">
                                            <rect key="frame" x="26" y="45" width="304.5" height="14"/>
                                            <fontDescription key="fontDescription" type="system" pointSize="16"/>
                                            <color key="textColor" systemColor="secondaryLabelColor"/>
                                            <nil key="highlightedColor"/>
                                        </label>
                                    </subviews>
                                    <constraints>
                                        <constraint firstAttribute="bottomMargin" secondItem="T5Q-9f-KQC" secondAttribute="bottom" constant="10" id="27V-mS-1Sj"/>
                                        <constraint firstItem="T5Q-9f-KQC" firstAttribute="leading" secondItem="6q2-Qj-PQE" secondAttribute="leadingMargin" constant="10" id="BsF-AT-7xc"/>
                                        <constraint firstItem="N18-CP-QIt" firstAttribute="top" secondItem="6q2-Qj-PQE" secondAttribute="topMargin" constant="10" id="D8T-hb-QkI"/>
                                        <constraint firstItem="N18-CP-QIt" firstAttribute="leading" secondItem="6q2-Qj-PQE" secondAttribute="leadingMargin" constant="10" id="LFW-vb-Grc"/>
                                        <constraint firstAttribute="trailingMargin" secondItem="N18-CP-QIt" secondAttribute="trailing" constant="10" id="Xyo-9E-P0G"/>
                                        <constraint firstItem="T5Q-9f-KQC" firstAttribute="top" secondItem="N18-CP-QIt" secondAttribute="bottom" constant="8" id="frb-lP-XRd"/>
                                        <constraint firstAttribute="trailingMargin" secondItem="T5Q-9f-KQC" secondAttribute="trailing" constant="10" id="jp7-if-3V8"/>
                                    </constraints>
                                </tableViewCellContentView>
                                <connections>
                                    <outlet property="bodyLabel" destination="T5Q-9f-KQC" id="IwS-Zu-cgl"/>
                                    <outlet property="titleLabel" destination="N18-CP-QIt" id="Vwg-pB-W5F"/>
                                </connections>
                            </tableViewCell>
                            <tableViewCell clipsSubviews="YES" contentMode="scaleToFill" selectionStyle="default" accessoryType="disclosureIndicator" indentationWidth="10" reuseIdentifier="Counted" rowHeight="80" id="rS6-xs-t4z" userLabel="Counted Cell" customClass="TitleBodyCell" customModule="Demo" customModuleProvider="target">
                                <rect key="frame" x="0.0" y="370" width="375" height="80"/>
                                <autoresizingMask key="autoresizingMask"/>
                                <tableViewCellContentView key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" tableViewCell="rS6-xs-t4z" id="oQf-QH-2dc">
                                    <rect key="frame" x="0.0" y="0.0" width="348.5" height="80"/>
                                    <autoresizingMask key="autoresizingMask"/>
                                    <subviews>
                                        <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="252" verticalCompressionResistancePriority="752" text="COUNTED" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="rzv-E5-oaM">
                                            <rect key="frame" x="26" y="21" width="304.5" height="16"/>
                                            <fontDescription key="fontDescription" type="boldSystem" pointSize="13"/>
                                            <nil key="highlightedColor"/>
                                        </label>
                                        <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Hide a message based on equal number of show() and hideCounted(id:) calls." textAlignment="natural" lineBreakMode="tailTruncation" numberOfLines="0" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="ie4-WM-pe4">
                                            <rect key="frame" x="26" y="45" width="304.5" height="14"/>
                                            <fontDescription key="fontDescription" type="system" pointSize="16"/>
                                            <color key="textColor" systemColor="secondaryLabelColor"/>
                                            <nil key="highlightedColor"/>
                                        </label>
                                    </subviews>
                                    <constraints>
                                        <constraint firstItem="rzv-E5-oaM" firstAttribute="leading" secondItem="oQf-QH-2dc" secondAttribute="leadingMargin" constant="10" id="SFU-CL-Wty"/>
                                        <constraint firstItem="ie4-WM-pe4" firstAttribute="top" secondItem="rzv-E5-oaM" secondAttribute="bottom" constant="8" id="U2E-fs-p7F"/>
                                        <constraint firstAttribute="bottomMargin" secondItem="ie4-WM-pe4" secondAttribute="bottom" constant="10" id="cLR-EW-Ts2"/>
                                        <constraint firstItem="rzv-E5-oaM" firstAttribute="top" secondItem="oQf-QH-2dc" secondAttribute="topMargin" constant="10" id="l8I-It-z31"/>
                                        <constraint firstAttribute="trailingMargin" secondItem="rzv-E5-oaM" secondAttribute="trailing" constant="10" id="lLy-zd-IQq"/>
                                        <constraint firstItem="ie4-WM-pe4" firstAttribute="leading" secondItem="oQf-QH-2dc" secondAttribute="leadingMargin" constant="10" id="mRn-xu-Vb7"/>
                                        <constraint firstAttribute="trailingMargin" secondItem="ie4-WM-pe4" secondAttribute="trailing" constant="10" id="roT-wO-OEY"/>
                                    </constraints>
                                </tableViewCellContentView>
                                <connections>
                                    <outlet property="bodyLabel" destination="ie4-WM-pe4" id="O4J-r5-8Yi"/>
                                    <outlet property="titleLabel" destination="rzv-E5-oaM" id="R5w-fT-HnU"/>
                                </connections>
                            </tableViewCell>
                        </prototypes>
                        <connections>
                            <outlet property="dataSource" destination="vur-BZ-g1e" id="rfz-yY-IL6"/>
                            <outlet property="delegate" destination="vur-BZ-g1e" id="P2z-vo-Vm2"/>
                        </connections>
                    </tableView>
                    <navigationItem key="navigationItem" title="Demo" id="2KJ-2Z-WHF"/>
                </tableViewController>
                <placeholder placeholderIdentifier="IBFirstResponder" id="L1V-tt-hkn" userLabel="First Responder" sceneMemberID="firstResponder"/>
            </objects>
            <point key="canvasLocation" x="1283" y="305"/>
        </scene>
        <!--Explore-->
        <scene sceneID="HFO-dV-gYe">
            <objects>
                <tableViewController id="NF9-wZ-lbZ" customClass="ExploreViewController" customModule="Demo" customModuleProvider="target" sceneMemberID="viewController">
                    <tableView key="view" clipsSubviews="YES" contentMode="scaleToFill" alwaysBounceVertical="YES" dataMode="static" style="grouped" separatorStyle="none" allowsSelection="NO" rowHeight="-1" estimatedRowHeight="-1" sectionHeaderHeight="18" sectionFooterHeight="18" id="XwA-eF-0LG">
                        <rect key="frame" x="0.0" y="0.0" width="375" height="1200"/>
                        <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
                        <color key="backgroundColor" systemColor="systemBackgroundColor"/>
                        <sections>
                            <tableViewSection headerTitle="Presentation" id="ifN-uy-lWX">
                                <cells>
                                    <tableViewCell clipsSubviews="YES" contentMode="scaleToFill" selectionStyle="default" indentationWidth="10" id="nYa-Hy-Lda" userLabel="Presentation style cell">
                                        <rect key="frame" x="0.0" y="55.5" width="375" height="74"/>
                                        <autoresizingMask key="autoresizingMask"/>
                                        <tableViewCellContentView key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" tableViewCell="nYa-Hy-Lda" id="WC1-5B-Pa4">
                                            <rect key="frame" x="0.0" y="0.0" width="375" height="74"/>
                                            <autoresizingMask key="autoresizingMask"/>
                                            <subviews>
                                                <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="PRESENTATION STYLE" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="Epw-Yk-L8V">
                                                    <rect key="frame" x="26" y="11" width="146.5" height="16"/>
                                                    <fontDescription key="fontDescription" type="boldSystem" pointSize="13"/>
                                                    <color key="textColor" red="0.0" green="0.0" blue="0.0" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
                                                    <nil key="highlightedColor"/>
                                                </label>
                                                <segmentedControl opaque="NO" contentMode="scaleToFill" verticalCompressionResistancePriority="751" contentHorizontalAlignment="left" contentVerticalAlignment="top" segmentControlStyle="plain" selectedSegmentIndex="0" translatesAutoresizingMaskIntoConstraints="NO" id="Agu-Vo-ckI">
                                                    <rect key="frame" x="26" y="32" width="194" height="32"/>
                                                    <segments>
                                                        <segment title="Top"/>
                                                        <segment title="Bottom"/>
                                                        <segment title="Center"/>
                                                    </segments>
                                                </segmentedControl>
                                            </subviews>
                                            <constraints>
                                                <constraint firstItem="Agu-Vo-ckI" firstAttribute="leading" secondItem="WC1-5B-Pa4" secondAttribute="leadingMargin" constant="10" id="Cpb-Dt-E6Y"/>
                                                <constraint firstItem="Epw-Yk-L8V" firstAttribute="leading" secondItem="WC1-5B-Pa4" secondAttribute="leadingMargin" constant="10" id="J7Q-aQ-QaD"/>
                                                <constraint firstItem="Epw-Yk-L8V" firstAttribute="top" secondItem="WC1-5B-Pa4" secondAttribute="topMargin" id="Vit-Z4-Pbb"/>
                                                <constraint firstAttribute="trailing" relation="greaterThanOrEqual" secondItem="Epw-Yk-L8V" secondAttribute="trailingMargin" id="r47-xj-9xE"/>
                                                <constraint firstAttribute="trailingMargin" relation="greaterThanOrEqual" secondItem="Agu-Vo-ckI" secondAttribute="trailing" constant="10" id="sjj-OR-At0"/>
                                                <constraint firstItem="Agu-Vo-ckI" firstAttribute="top" secondItem="Epw-Yk-L8V" secondAttribute="bottom" constant="5" id="w3y-hH-POd"/>
                                                <constraint firstAttribute="bottomMargin" secondItem="Agu-Vo-ckI" secondAttribute="bottom" id="zKd-O2-Bv3"/>
                                            </constraints>
                                        </tableViewCellContentView>
                                    </tableViewCell>
                                    <tableViewCell clipsSubviews="YES" contentMode="scaleToFill" selectionStyle="default" indentationWidth="10" id="eMM-fw-ePY" userLabel="Presentation context cell">
                                        <rect key="frame" x="0.0" y="129.5" width="375" height="74"/>
                                        <autoresizingMask key="autoresizingMask"/>
                                        <tableViewCellContentView key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" tableViewCell="eMM-fw-ePY" id="qjs-CO-J4K">
                                            <rect key="frame" x="0.0" y="0.0" width="375" height="74"/>
                                            <autoresizingMask key="autoresizingMask"/>
                                            <subviews>
                                                <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="PRESENTATION CONTEXT" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="CU0-87-ZCD">
                                                    <rect key="frame" x="26" y="11" width="168.5" height="16"/>
                                                    <fontDescription key="fontDescription" type="boldSystem" pointSize="13"/>
                                                    <color key="textColor" red="0.0" green="0.0" blue="0.0" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
                                                    <nil key="highlightedColor"/>
                                                </label>
                                                <segmentedControl opaque="NO" contentMode="scaleToFill" verticalHuggingPriority="252" verticalCompressionResistancePriority="751" contentHorizontalAlignment="left" contentVerticalAlignment="top" apportionsSegmentWidthsByContent="YES" segmentControlStyle="plain" selectedSegmentIndex="0" translatesAutoresizingMaskIntoConstraints="NO" id="AYG-qj-yjv">
                                                    <rect key="frame" x="26" y="32" width="302" height="32"/>
                                                    <segments>
                                                        <segment title="Automatic"/>
                                                        <segment title="Normal Level"/>
                                                        <segment title="Status Bar Level"/>
                                                    </segments>
                                                </segmentedControl>
                                            </subviews>
                                            <constraints>
                                                <constraint firstItem="CU0-87-ZCD" firstAttribute="top" secondItem="qjs-CO-J4K" secondAttribute="topMargin" id="5OO-hZ-eoL"/>
                                                <constraint firstItem="AYG-qj-yjv" firstAttribute="top" secondItem="CU0-87-ZCD" secondAttribute="bottom" constant="5" id="crO-zT-nKO"/>
                                                <constraint firstAttribute="bottomMargin" secondItem="AYG-qj-yjv" secondAttribute="bottom" id="dEm-3s-rij"/>
                                                <constraint firstAttribute="trailing" relation="greaterThanOrEqual" secondItem="CU0-87-ZCD" secondAttribute="trailingMargin" id="jqI-ll-YAs"/>
                                                <constraint firstAttribute="trailingMargin" relation="greaterThanOrEqual" secondItem="AYG-qj-yjv" secondAttribute="trailing" constant="10" id="s4v-Cg-Y2K"/>
                                                <constraint firstItem="AYG-qj-yjv" firstAttribute="leading" secondItem="qjs-CO-J4K" secondAttribute="leadingMargin" constant="10" id="xKq-V9-Uib"/>
                                                <constraint firstItem="CU0-87-ZCD" firstAttribute="leading" secondItem="qjs-CO-J4K" secondAttribute="leadingMargin" constant="10" id="zZI-MM-YUE"/>
                                            </constraints>
                                        </tableViewCellContentView>
                                    </tableViewCell>
                                    <tableViewCell clipsSubviews="YES" contentMode="scaleToFill" selectionStyle="default" indentationWidth="10" id="fnL-fA-GeP" userLabel="Duration cell">
                                        <rect key="frame" x="0.0" y="203.5" width="375" height="74"/>
                                        <autoresizingMask key="autoresizingMask"/>
                                        <tableViewCellContentView key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" tableViewCell="fnL-fA-GeP" id="xfk-SM-u8I">
                                            <rect key="frame" x="0.0" y="0.0" width="375" height="74"/>
                                            <autoresizingMask key="autoresizingMask"/>
                                            <subviews>
                                                <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="252" verticalCompressionResistancePriority="751" text="DURATION" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="cad-I9-jeP">
                                                    <rect key="frame" x="26" y="11" width="69.5" height="16"/>
                                                    <fontDescription key="fontDescription" type="boldSystem" pointSize="13"/>
                                                    <nil key="highlightedColor"/>
                                                </label>
                                                <segmentedControl opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="left" contentVerticalAlignment="top" apportionsSegmentWidthsByContent="YES" segmentControlStyle="plain" selectedSegmentIndex="0" translatesAutoresizingMaskIntoConstraints="NO" id="nng-9a-v3B">
                                                    <rect key="frame" x="26" y="32" width="310" height="32"/>
                                                    <segments>
                                                        <segment title="Automatic"/>
                                                        <segment title="Forever"/>
                                                        <segment title="1 Second"/>
                                                        <segment title="5 Seconds"/>
                                                    </segments>
                                                </segmentedControl>
                                            </subviews>
                                            <constraints>
                                                <constraint firstItem="nng-9a-v3B" firstAttribute="top" secondItem="cad-I9-jeP" secondAttribute="bottom" constant="5" id="AaJ-Cs-FeO"/>
                                                <constraint firstItem="nng-9a-v3B" firstAttribute="leading" secondItem="xfk-SM-u8I" secondAttribute="leadingMargin" constant="10" id="Atx-vb-rTV"/>
                                                <constraint firstItem="cad-I9-jeP" firstAttribute="leading" secondItem="xfk-SM-u8I" secondAttribute="leadingMargin" constant="10" id="CSd-i5-VHE"/>
                                                <constraint firstItem="cad-I9-jeP" firstAttribute="top" secondItem="xfk-SM-u8I" secondAttribute="topMargin" id="HF3-KH-Gll"/>
                                                <constraint firstAttribute="trailing" relation="greaterThanOrEqual" secondItem="cad-I9-jeP" secondAttribute="trailingMargin" id="gtm-dc-eyX"/>
                                                <constraint firstAttribute="trailingMargin" relation="greaterThanOrEqual" secondItem="nng-9a-v3B" secondAttribute="trailing" constant="10" id="gzc-IX-LKG"/>
                                                <constraint firstAttribute="bottomMargin" secondItem="nng-9a-v3B" secondAttribute="bottom" id="izP-fi-ACu"/>
                                            </constraints>
                                        </tableViewCellContentView>
                                    </tableViewCell>
                                    <tableViewCell clipsSubviews="YES" contentMode="scaleToFill" selectionStyle="default" indentationWidth="10" id="hkB-YI-YQX" userLabel="Dim mode cell">
                                        <rect key="frame" x="0.0" y="277.5" width="375" height="74"/>
                                        <autoresizingMask key="autoresizingMask"/>
                                        <tableViewCellContentView key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" tableViewCell="hkB-YI-YQX" id="6ov-9U-ABh">
                                            <rect key="frame" x="0.0" y="0.0" width="375" height="74"/>
                                            <autoresizingMask key="autoresizingMask"/>
                                            <subviews>
                                                <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" verticalCompressionResistancePriority="751" text="DIM MODE" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="TsP-n5-Vko">
                                                    <rect key="frame" x="26" y="11" width="68.5" height="16"/>
                                                    <fontDescription key="fontDescription" type="boldSystem" pointSize="13"/>
                                                    <nil key="highlightedColor"/>
                                                </label>
                                                <segmentedControl opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="left" contentVerticalAlignment="top" segmentControlStyle="plain" selectedSegmentIndex="0" translatesAutoresizingMaskIntoConstraints="NO" id="iw9-KB-Nyd">
                                                    <rect key="frame" x="26" y="32" width="211" height="32"/>
                                                    <segments>
                                                        <segment title="None"/>
                                                        <segment title="Gray"/>
                                                        <segment title="Color"/>
                                                        <segment title="Blur"/>
                                                    </segments>
                                                </segmentedControl>
                                            </subviews>
                                            <constraints>
                                                <constraint firstItem="TsP-n5-Vko" firstAttribute="leading" secondItem="6ov-9U-ABh" secondAttribute="leadingMargin" constant="10" id="1lT-9J-nnY"/>
                                                <constraint firstAttribute="trailing" relation="greaterThanOrEqual" secondItem="TsP-n5-Vko" secondAttribute="trailingMargin" id="AQe-WE-6do"/>
                                                <constraint firstItem="iw9-KB-Nyd" firstAttribute="top" secondItem="TsP-n5-Vko" secondAttribute="bottom" constant="5" id="BKH-fV-3Jj"/>
                                                <constraint firstAttribute="trailingMargin" relation="greaterThanOrEqual" secondItem="iw9-KB-Nyd" secondAttribute="trailing" constant="10" id="JIs-wV-rvK"/>
                                                <constraint firstItem="iw9-KB-Nyd" firstAttribute="leading" secondItem="6ov-9U-ABh" secondAttribute="leadingMargin" constant="10" id="Mgi-JB-fHu"/>
                                                <constraint firstAttribute="bottomMargin" secondItem="iw9-KB-Nyd" secondAttribute="bottom" id="d3m-BM-mBr"/>
                                                <constraint firstItem="TsP-n5-Vko" firstAttribute="top" secondItem="6ov-9U-ABh" secondAttribute="topMargin" id="tKc-ds-gCa"/>
                                            </constraints>
                                        </tableViewCellContentView>
                                    </tableViewCell>
                                    <tableViewCell clipsSubviews="YES" contentMode="scaleToFill" selectionStyle="default" indentationWidth="10" id="zQR-VC-Yl3" userLabel="Interactive hide cell">
                                        <rect key="frame" x="0.0" y="351.5" width="375" height="53"/>
                                        <autoresizingMask key="autoresizingMask"/>
                                        <tableViewCellContentView key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" tableViewCell="zQR-VC-Yl3" id="RZq-YF-8fo">
                                            <rect key="frame" x="0.0" y="0.0" width="375" height="53"/>
                                            <autoresizingMask key="autoresizingMask"/>
                                            <subviews>
                                                <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="INTERACTIVE HIDE" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="dw8-96-uXk">
                                                    <rect key="frame" x="26" y="18.5" width="123" height="16"/>
                                                    <fontDescription key="fontDescription" type="boldSystem" pointSize="13"/>
                                                    <nil key="highlightedColor"/>
                                                </label>
                                                <switch opaque="NO" contentMode="scaleToFill" horizontalHuggingPriority="750" verticalHuggingPriority="750" contentHorizontalAlignment="center" contentVerticalAlignment="center" on="YES" translatesAutoresizingMaskIntoConstraints="NO" id="Vdr-7b-DJB">
                                                    <rect key="frame" x="300" y="11" width="51" height="31"/>
                                                </switch>
                                            </subviews>
                                            <constraints>
                                                <constraint firstItem="dw8-96-uXk" firstAttribute="leading" secondItem="RZq-YF-8fo" secondAttribute="leadingMargin" constant="10" id="5Yb-Fn-nX6"/>
                                                <constraint firstAttribute="trailingMargin" secondItem="Vdr-7b-DJB" secondAttribute="trailing" constant="10" id="5oG-04-THv"/>
                                                <constraint firstItem="dw8-96-uXk" firstAttribute="centerY" secondItem="RZq-YF-8fo" secondAttribute="centerY" id="6Td-Pc-Kix"/>
                                                <constraint firstItem="Vdr-7b-DJB" firstAttribute="centerY" secondItem="dw8-96-uXk" secondAttribute="centerY" id="7bs-jn-bU1"/>
                                                <constraint firstAttribute="bottomMargin" secondItem="Vdr-7b-DJB" secondAttribute="bottom" id="OsS-B4-XfA"/>
                                                <constraint firstItem="Vdr-7b-DJB" firstAttribute="top" secondItem="RZq-YF-8fo" secondAttribute="topMargin" id="vMT-Nx-zM2"/>
                                                <constraint firstAttribute="trailing" relation="greaterThanOrEqual" secondItem="dw8-96-uXk" secondAttribute="trailingMargin" id="wyo-o0-Hg8"/>
                                            </constraints>
                                            <variation key="default">
                                                <mask key="constraints">
                                                    <exclude reference="6Td-Pc-Kix"/>
                                                </mask>
                                            </variation>
                                        </tableViewCellContentView>
                                    </tableViewCell>
                                    <tableViewCell clipsSubviews="YES" contentMode="scaleToFill" selectionStyle="default" indentationWidth="10" id="BkJ-zT-C7Z" userLabel="Haptic cell">
                                        <rect key="frame" x="0.0" y="404.5" width="375" height="53"/>
                                        <autoresizingMask key="autoresizingMask"/>
                                        <tableViewCellContentView key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" tableViewCell="BkJ-zT-C7Z" id="GXF-qW-HHA">
                                            <rect key="frame" x="0.0" y="0.0" width="375" height="53"/>
                                            <autoresizingMask key="autoresizingMask"/>
                                            <subviews>
                                                <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Haptic Feedback" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="8Vy-cX-rMN">
                                                    <rect key="frame" x="26" y="18.5" width="109" height="16"/>
                                                    <fontDescription key="fontDescription" type="boldSystem" pointSize="13"/>
                                                    <nil key="highlightedColor"/>
                                                </label>
                                                <switch opaque="NO" contentMode="scaleToFill" horizontalHuggingPriority="750" verticalHuggingPriority="750" contentHorizontalAlignment="center" contentVerticalAlignment="center" on="YES" translatesAutoresizingMaskIntoConstraints="NO" id="ah6-5J-Psp">
                                                    <rect key="frame" x="300" y="11" width="51" height="31"/>
                                                </switch>
                                            </subviews>
                                            <constraints>
                                                <constraint firstItem="8Vy-cX-rMN" firstAttribute="centerY" secondItem="GXF-qW-HHA" secondAttribute="centerY" id="605-kz-s84"/>
                                                <constraint firstItem="ah6-5J-Psp" firstAttribute="centerY" secondItem="8Vy-cX-rMN" secondAttribute="centerY" id="CuY-eF-FkL"/>
                                                <constraint firstAttribute="bottomMargin" secondItem="ah6-5J-Psp" secondAttribute="bottom" id="FWM-LN-Om7"/>
                                                <constraint firstAttribute="trailing" relation="greaterThanOrEqual" secondItem="8Vy-cX-rMN" secondAttribute="trailingMargin" id="P7C-Bc-POB"/>
                                                <constraint firstAttribute="trailingMargin" secondItem="ah6-5J-Psp" secondAttribute="trailing" constant="10" id="QQa-X8-ldo"/>
                                                <constraint firstItem="ah6-5J-Psp" firstAttribute="top" secondItem="GXF-qW-HHA" secondAttribute="topMargin" id="Y7g-Sy-zJR"/>
                                                <constraint firstItem="8Vy-cX-rMN" firstAttribute="leading" secondItem="GXF-qW-HHA" secondAttribute="leadingMargin" constant="10" id="m3b-RD-jOz"/>
                                            </constraints>
                                            <variation key="default">
                                                <mask key="constraints">
                                                    <exclude reference="605-kz-s84"/>
                                                </mask>
                                            </variation>
                                        </tableViewCellContentView>
                                    </tableViewCell>
                                    <tableViewCell clipsSubviews="YES" contentMode="scaleToFill" selectionStyle="default" indentationWidth="10" id="jsU-7Q-nnr" userLabel="Auto rotate cell">
                                        <rect key="frame" x="0.0" y="457.5" width="375" height="53"/>
                                        <autoresizingMask key="autoresizingMask"/>
                                        <tableViewCellContentView key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" tableViewCell="jsU-7Q-nnr" id="Lyn-8c-LBy">
                                            <rect key="frame" x="0.0" y="0.0" width="375" height="53"/>
                                            <autoresizingMask key="autoresizingMask"/>
                                            <subviews>
                                                <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="AUTO ROTATE" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="VW7-M1-Q0o">
                                                    <rect key="frame" x="26" y="18.5" width="92" height="16"/>
                                                    <fontDescription key="fontDescription" type="boldSystem" pointSize="13"/>
                                                    <nil key="highlightedColor"/>
                                                </label>
                                                <switch opaque="NO" contentMode="scaleToFill" horizontalHuggingPriority="750" verticalHuggingPriority="750" contentHorizontalAlignment="center" contentVerticalAlignment="center" on="YES" translatesAutoresizingMaskIntoConstraints="NO" id="WfA-vA-cpG">
                                                    <rect key="frame" x="300" y="11" width="51" height="31"/>
                                                </switch>
                                            </subviews>
                                            <constraints>
                                                <constraint firstAttribute="trailingMargin" secondItem="WfA-vA-cpG" secondAttribute="trailing" constant="10" id="HBd-ud-36Q"/>
                                                <constraint firstAttribute="trailing" relation="greaterThanOrEqual" secondItem="VW7-M1-Q0o" secondAttribute="trailingMargin" id="O68-K8-nrx"/>
                                                <constraint firstItem="WfA-vA-cpG" firstAttribute="top" secondItem="Lyn-8c-LBy" secondAttribute="topMargin" id="Wjg-VI-0g6"/>
                                                <constraint firstItem="VW7-M1-Q0o" firstAttribute="centerY" secondItem="Lyn-8c-LBy" secondAttribute="centerY" id="Yjw-4P-Xec"/>
                                                <constraint firstAttribute="bottomMargin" secondItem="WfA-vA-cpG" secondAttribute="bottom" id="afn-K6-bfX"/>
                                                <constraint firstItem="WfA-vA-cpG" firstAttribute="centerY" secondItem="VW7-M1-Q0o" secondAttribute="centerY" id="uuV-KC-8Ti"/>
                                                <constraint firstItem="VW7-M1-Q0o" firstAttribute="leading" secondItem="Lyn-8c-LBy" secondAttribute="leadingMargin" constant="10" id="vmK-Hu-mBb"/>
                                            </constraints>
                                            <variation key="default">
                                                <mask key="constraints">
                                                    <exclude reference="Yjw-4P-Xec"/>
                                                </mask>
                                            </variation>
                                        </tableViewCellContentView>
                                    </tableViewCell>
                                </cells>
                            </tableViewSection>
                            <tableViewSection headerTitle="Styling" id="Ibz-q6-0d2">
                                <cells>
                                    <tableViewCell clipsSubviews="YES" contentMode="scaleToFill" selectionStyle="default" indentationWidth="10" id="u46-FS-ahC" userLabel="Theme cell">
                                        <rect key="frame" x="0.0" y="566.5" width="375" height="74"/>
                                        <autoresizingMask key="autoresizingMask"/>
                                        <tableViewCellContentView key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" tableViewCell="u46-FS-ahC" id="A01-Bb-OrK">
                                            <rect key="frame" x="0.0" y="0.0" width="375" height="74"/>
                                            <autoresizingMask key="autoresizingMask"/>
                                            <subviews>
                                                <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="LAYOUT" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="iQk-lG-ZCm">
                                                    <rect key="frame" x="26" y="11" width="53.5" height="16"/>
                                                    <fontDescription key="fontDescription" type="boldSystem" pointSize="13"/>
                                                    <nil key="highlightedColor"/>
                                                </label>
                                                <segmentedControl opaque="NO" contentMode="scaleToFill" verticalCompressionResistancePriority="751" contentHorizontalAlignment="left" contentVerticalAlignment="top" segmentControlStyle="plain" selectedSegmentIndex="0" translatesAutoresizingMaskIntoConstraints="NO" id="aBT-5M-2tg">
                                                    <rect key="frame" x="26" y="32" width="323" height="32"/>
                                                    <segments>
                                                        <segment title="Default"/>
                                                        <segment title="Card"/>
                                                        <segment title="Tab"/>
                                                        <segment title="Status Line"/>
                                                    </segments>
                                                </segmentedControl>
                                            </subviews>
                                            <constraints>
                                                <constraint firstItem="aBT-5M-2tg" firstAttribute="leading" secondItem="A01-Bb-OrK" secondAttribute="leadingMargin" constant="10" id="8Ot-I8-Po3"/>
                                                <constraint firstAttribute="trailing" relation="greaterThanOrEqual" secondItem="iQk-lG-ZCm" secondAttribute="trailingMargin" id="8uY-8p-iRR"/>
                                                <constraint firstAttribute="trailingMargin" relation="greaterThanOrEqual" secondItem="aBT-5M-2tg" secondAttribute="trailing" constant="10" id="9Kt-2l-w5O"/>
                                                <constraint firstItem="aBT-5M-2tg" firstAttribute="top" secondItem="iQk-lG-ZCm" secondAttribute="bottom" constant="5" id="K8i-JI-tIa"/>
                                                <constraint firstItem="iQk-lG-ZCm" firstAttribute="leading" secondItem="A01-Bb-OrK" secondAttribute="leadingMargin" constant="10" id="TZG-YE-R2B"/>
                                                <constraint firstItem="iQk-lG-ZCm" firstAttribute="top" secondItem="A01-Bb-OrK" secondAttribute="topMargin" id="XhZ-Em-VDW"/>
                                                <constraint firstAttribute="bottomMargin" secondItem="aBT-5M-2tg" secondAttribute="bottom" id="bWO-4u-AAG"/>
                                            </constraints>
                                        </tableViewCellContentView>
                                    </tableViewCell>
                                    <tableViewCell clipsSubviews="YES" contentMode="scaleToFill" selectionStyle="default" indentationWidth="10" id="v73-pR-Iy2" userLabel="Theme cell">
                                        <rect key="frame" x="0.0" y="640.5" width="375" height="74"/>
                                        <autoresizingMask key="autoresizingMask"/>
                                        <tableViewCellContentView key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" tableViewCell="v73-pR-Iy2" id="Fdp-gh-OCb">
                                            <rect key="frame" x="0.0" y="0.0" width="375" height="74"/>
                                            <autoresizingMask key="autoresizingMask"/>
                                            <subviews>
                                                <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="252" verticalCompressionResistancePriority="751" text="THEME" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="J7S-wJ-kt0">
                                                    <rect key="frame" x="26" y="11" width="46.5" height="16"/>
                                                    <fontDescription key="fontDescription" type="boldSystem" pointSize="13"/>
                                                    <nil key="highlightedColor"/>
                                                </label>
                                                <segmentedControl opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="left" contentVerticalAlignment="top" segmentControlStyle="plain" selectedSegmentIndex="0" translatesAutoresizingMaskIntoConstraints="NO" id="NoM-It-vKT">
                                                    <rect key="frame" x="26" y="32" width="323" height="32"/>
                                                    <segments>
                                                        <segment title="Info"/>
                                                        <segment title="Success"/>
                                                        <segment title="Warning"/>
                                                        <segment title="Error"/>
                                                        <segment title="Custom"/>
                                                    </segments>
                                                </segmentedControl>
                                            </subviews>
                                            <constraints>
                                                <constraint firstItem="NoM-It-vKT" firstAttribute="leading" secondItem="Fdp-gh-OCb" secondAttribute="leadingMargin" constant="10" id="3Dm-o8-hOx"/>
                                                <constraint firstItem="NoM-It-vKT" firstAttribute="top" secondItem="J7S-wJ-kt0" secondAttribute="bottom" constant="5" id="EGd-0G-8l9"/>
                                                <constraint firstAttribute="bottomMargin" secondItem="NoM-It-vKT" secondAttribute="bottom" id="O5S-3g-TaO"/>
                                                <constraint firstItem="J7S-wJ-kt0" firstAttribute="leading" secondItem="Fdp-gh-OCb" secondAttribute="leadingMargin" constant="10" id="gAM-iD-DoY"/>
                                                <constraint firstAttribute="trailing" relation="greaterThanOrEqual" secondItem="J7S-wJ-kt0" secondAttribute="trailingMargin" id="lgp-C7-ccc"/>
                                                <constraint firstItem="J7S-wJ-kt0" firstAttribute="top" secondItem="Fdp-gh-OCb" secondAttribute="topMargin" id="mVy-xe-CQk"/>
                                                <constraint firstAttribute="trailingMargin" relation="greaterThanOrEqual" secondItem="NoM-It-vKT" secondAttribute="trailing" constant="10" id="tQU-NQ-phM"/>
                                            </constraints>
                                        </tableViewCellContentView>
                                    </tableViewCell>
                                    <tableViewCell clipsSubviews="YES" contentMode="scaleToFill" selectionStyle="default" indentationWidth="10" id="0mE-sA-4rN" userLabel="Theme cell">
                                        <rect key="frame" x="0.0" y="714.5" width="375" height="74"/>
                                        <autoresizingMask key="autoresizingMask"/>
                                        <tableViewCellContentView key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" tableViewCell="0mE-sA-4rN" id="eVs-bm-01A">
                                            <rect key="frame" x="0.0" y="0.0" width="375" height="74"/>
                                            <autoresizingMask key="autoresizingMask"/>
                                            <subviews>
                                                <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="ICON STYLE" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="sXY-rl-8uH">
                                                    <rect key="frame" x="26" y="11" width="79" height="16"/>
                                                    <fontDescription key="fontDescription" type="boldSystem" pointSize="13"/>
                                                    <nil key="highlightedColor"/>
                                                </label>
                                                <segmentedControl opaque="NO" contentMode="scaleToFill" verticalHuggingPriority="252" verticalCompressionResistancePriority="751" contentHorizontalAlignment="left" contentVerticalAlignment="top" segmentControlStyle="plain" selectedSegmentIndex="0" translatesAutoresizingMaskIntoConstraints="NO" id="c2K-94-CuB">
                                                    <rect key="frame" x="26" y="32" width="200" height="32"/>
                                                    <segments>
                                                        <segment title="Regular"/>
                                                        <segment title="Light"/>
                                                        <segment title="Subtle"/>
                                                    </segments>
                                                </segmentedControl>
                                            </subviews>
                                            <constraints>
                                                <constraint firstItem="c2K-94-CuB" firstAttribute="leading" secondItem="eVs-bm-01A" secondAttribute="leadingMargin" constant="10" id="57X-r6-yn8"/>
                                                <constraint firstAttribute="trailing" relation="greaterThanOrEqual" secondItem="sXY-rl-8uH" secondAttribute="trailingMargin" id="6Hz-mY-AJF"/>
                                                <constraint firstItem="sXY-rl-8uH" firstAttribute="top" secondItem="eVs-bm-01A" secondAttribute="topMargin" id="aNb-k2-SZY"/>
                                                <constraint firstItem="c2K-94-CuB" firstAttribute="top" secondItem="sXY-rl-8uH" secondAttribute="bottom" constant="5" id="euE-AS-gZT"/>
                                                <constraint firstAttribute="bottomMargin" secondItem="c2K-94-CuB" secondAttribute="bottom" id="ifY-M2-nQa"/>
                                                <constraint firstAttribute="trailingMargin" relation="greaterThanOrEqual" secondItem="c2K-94-CuB" secondAttribute="trailing" constant="10" id="jMs-A0-qxE"/>
                                                <constraint firstItem="sXY-rl-8uH" firstAttribute="leading" secondItem="eVs-bm-01A" secondAttribute="leadingMargin" constant="10" id="rCc-O8-QkU"/>
                                            </constraints>
                                        </tableViewCellContentView>
                                    </tableViewCell>
                                    <tableViewCell clipsSubviews="YES" contentMode="scaleToFill" selectionStyle="default" indentationWidth="10" id="4RW-U9-BVB" userLabel="Drop shadow cell">
                                        <rect key="frame" x="0.0" y="788.5" width="375" height="53"/>
                                        <autoresizingMask key="autoresizingMask"/>
                                        <tableViewCellContentView key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" tableViewCell="4RW-U9-BVB" id="wdb-hX-CIv">
                                            <rect key="frame" x="0.0" y="0.0" width="375" height="53"/>
                                            <autoresizingMask key="autoresizingMask"/>
                                            <subviews>
                                                <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="DROP SHADOW" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="MUL-on-v9R">
                                                    <rect key="frame" x="26" y="18.5" width="101.5" height="16"/>
                                                    <fontDescription key="fontDescription" type="boldSystem" pointSize="13"/>
                                                    <nil key="highlightedColor"/>
                                                </label>
                                                <switch opaque="NO" contentMode="scaleToFill" horizontalHuggingPriority="750" verticalHuggingPriority="750" contentHorizontalAlignment="center" contentVerticalAlignment="center" translatesAutoresizingMaskIntoConstraints="NO" id="sqb-Fg-YR8">
                                                    <rect key="frame" x="300" y="11" width="51" height="31"/>
                                                </switch>
                                            </subviews>
                                            <constraints>
                                                <constraint firstAttribute="bottomMargin" secondItem="sqb-Fg-YR8" secondAttribute="bottom" id="8Os-Ki-ivF"/>
                                                <constraint firstAttribute="trailing" relation="greaterThanOrEqual" secondItem="MUL-on-v9R" secondAttribute="trailingMargin" id="LZS-OO-jq3"/>
                                                <constraint firstItem="sqb-Fg-YR8" firstAttribute="centerY" secondItem="MUL-on-v9R" secondAttribute="centerY" id="UHE-lU-Byf"/>
                                                <constraint firstAttribute="trailingMargin" secondItem="sqb-Fg-YR8" secondAttribute="trailing" constant="10" id="lo9-zU-2YQ"/>
                                                <constraint firstItem="MUL-on-v9R" firstAttribute="leading" secondItem="wdb-hX-CIv" secondAttribute="leadingMargin" constant="10" id="uKv-3s-QCh"/>
                                                <constraint firstItem="sqb-Fg-YR8" firstAttribute="top" secondItem="wdb-hX-CIv" secondAttribute="topMargin" id="wQm-n2-N5D"/>
                                            </constraints>
                                        </tableViewCellContentView>
                                    </tableViewCell>
                                </cells>
                            </tableViewSection>
                            <tableViewSection headerTitle="CONTENT" id="Mih-L6-PeE">
                                <cells>
                                    <tableViewCell clipsSubviews="YES" contentMode="scaleToFill" selectionStyle="default" indentationWidth="10" id="ddI-Jn-NgP" userLabel="Title cell">
                                        <rect key="frame" x="0.0" y="897.5" width="375" height="75"/>
                                        <autoresizingMask key="autoresizingMask"/>
                                        <tableViewCellContentView key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" tableViewCell="ddI-Jn-NgP" id="4HG-zA-HtF">
                                            <rect key="frame" x="0.0" y="0.0" width="375" height="75"/>
                                            <autoresizingMask key="autoresizingMask"/>
                                            <subviews>
                                                <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="TITLE" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="zs0-Qc-Tls">
                                                    <rect key="frame" x="26" y="11" width="37" height="16"/>
                                                    <fontDescription key="fontDescription" type="boldSystem" pointSize="13"/>
                                                    <nil key="highlightedColor"/>
                                                </label>
                                                <textField opaque="NO" clipsSubviews="YES" contentMode="scaleToFill" verticalCompressionResistancePriority="751" contentHorizontalAlignment="left" contentVerticalAlignment="center" text="Heads Up!" borderStyle="roundedRect" textAlignment="natural" minimumFontSize="17" clearButtonMode="whileEditing" translatesAutoresizingMaskIntoConstraints="NO" id="Z0U-kn-8rs">
                                                    <rect key="frame" x="26" y="30" width="323" height="34"/>
                                                    <fontDescription key="fontDescription" type="system" pointSize="14"/>
                                                    <textInputTraits key="textInputTraits" returnKeyType="done" enablesReturnKeyAutomatically="YES"/>
                                                </textField>
                                            </subviews>
                                            <constraints>
                                                <constraint firstItem="Z0U-kn-8rs" firstAttribute="top" secondItem="zs0-Qc-Tls" secondAttribute="bottom" constant="3" id="Rzd-5J-cB5"/>
                                                <constraint firstItem="Z0U-kn-8rs" firstAttribute="bottom" secondItem="4HG-zA-HtF" secondAttribute="bottomMargin" id="TcB-TW-PDr"/>
                                                <constraint firstItem="Z0U-kn-8rs" firstAttribute="leading" secondItem="4HG-zA-HtF" secondAttribute="leadingMargin" constant="10" id="Vdi-x1-PIO"/>
                                                <constraint firstAttribute="trailingMargin" secondItem="Z0U-kn-8rs" secondAttribute="trailing" constant="10" id="hIY-BQ-302"/>
                                                <constraint firstItem="zs0-Qc-Tls" firstAttribute="top" secondItem="4HG-zA-HtF" secondAttribute="topMargin" id="hjh-hv-09Y"/>
                                                <constraint firstAttribute="trailing" relation="greaterThanOrEqual" secondItem="zs0-Qc-Tls" secondAttribute="trailingMargin" id="iLg-aD-BQB"/>
                                                <constraint firstItem="zs0-Qc-Tls" firstAttribute="leading" secondItem="4HG-zA-HtF" secondAttribute="leadingMargin" constant="10" id="pcw-qp-Boc"/>
                                            </constraints>
                                        </tableViewCellContentView>
                                    </tableViewCell>
                                    <tableViewCell clipsSubviews="YES" contentMode="scaleToFill" selectionStyle="default" indentationWidth="10" id="bdE-R5-mtF" userLabel="Subtitle cell">
                                        <rect key="frame" x="0.0" y="972.5" width="375" height="75"/>
                                        <autoresizingMask key="autoresizingMask"/>
                                        <tableViewCellContentView key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" tableViewCell="bdE-R5-mtF" id="E8h-YG-8UX">
                                            <rect key="frame" x="0.0" y="0.0" width="375" height="75"/>
                                            <autoresizingMask key="autoresizingMask"/>
                                            <subviews>
                                                <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="BODY" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="KYf-CB-aEU">
                                                    <rect key="frame" x="26" y="11" width="37.5" height="16"/>
                                                    <fontDescription key="fontDescription" type="boldSystem" pointSize="13"/>
                                                    <nil key="highlightedColor"/>
                                                </label>
                                                <textField opaque="NO" clipsSubviews="YES" contentMode="scaleToFill" verticalCompressionResistancePriority="751" contentHorizontalAlignment="left" contentVerticalAlignment="center" text="This message is very important." borderStyle="roundedRect" textAlignment="natural" minimumFontSize="17" clearButtonMode="whileEditing" translatesAutoresizingMaskIntoConstraints="NO" id="Ev4-j7-wY0">
                                                    <rect key="frame" x="26" y="30" width="323" height="34"/>
                                                    <fontDescription key="fontDescription" type="system" pointSize="14"/>
                                                    <textInputTraits key="textInputTraits"/>
                                                </textField>
                                            </subviews>
                                            <constraints>
                                                <constraint firstItem="Ev4-j7-wY0" firstAttribute="leading" secondItem="E8h-YG-8UX" secondAttribute="leadingMargin" constant="10" id="1JE-I2-oso"/>
                                                <constraint firstAttribute="trailingMargin" secondItem="Ev4-j7-wY0" secondAttribute="trailing" constant="10" id="4Hf-KW-CsK"/>
                                                <constraint firstItem="Ev4-j7-wY0" firstAttribute="top" secondItem="KYf-CB-aEU" secondAttribute="bottom" constant="3" id="dZZ-Cf-rj2"/>
                                                <constraint firstItem="KYf-CB-aEU" firstAttribute="top" secondItem="E8h-YG-8UX" secondAttribute="topMargin" id="e5G-Ed-IdX"/>
                                                <constraint firstItem="Ev4-j7-wY0" firstAttribute="bottom" secondItem="E8h-YG-8UX" secondAttribute="bottomMargin" id="fb9-ZY-81L"/>
                                                <constraint firstAttribute="trailing" relation="greaterThanOrEqual" secondItem="KYf-CB-aEU" secondAttribute="trailingMargin" id="qOV-9d-yOF"/>
                                                <constraint firstItem="KYf-CB-aEU" firstAttribute="leading" secondItem="E8h-YG-8UX" secondAttribute="leadingMargin" constant="10" id="uL0-uX-tC7"/>
                                            </constraints>
                                        </tableViewCellContentView>
                                    </tableViewCell>
                                    <tableViewCell clipsSubviews="YES" contentMode="scaleToFill" selectionStyle="default" indentationWidth="10" id="i0m-Xn-tMe" userLabel="Hiding cell">
                                        <rect key="frame" x="0.0" y="1047.5" width="375" height="113"/>
                                        <autoresizingMask key="autoresizingMask"/>
                                        <tableViewCellContentView key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" tableViewCell="i0m-Xn-tMe" id="y4L-XO-6WY">
                                            <rect key="frame" x="0.0" y="0.0" width="375" height="113"/>
                                            <autoresizingMask key="autoresizingMask"/>
                                            <subviews>
                                                <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="SHOW" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="07f-nU-dvy">
                                                    <rect key="frame" x="26" y="11" width="42" height="16"/>
                                                    <fontDescription key="fontDescription" type="boldSystem" pointSize="13"/>
                                                    <nil key="highlightedColor"/>
                                                </label>
                                                <stackView opaque="NO" contentMode="scaleToFill" axis="vertical" distribution="fillEqually" spacing="5" translatesAutoresizingMaskIntoConstraints="NO" id="UMq-Yn-VYn">
                                                    <rect key="frame" x="26" y="35" width="323" height="67"/>
                                                    <subviews>
                                                        <stackView opaque="NO" contentMode="scaleToFill" distribution="fillEqually" spacing="40" translatesAutoresizingMaskIntoConstraints="NO" id="zwT-Yv-eyU">
                                                            <rect key="frame" x="0.0" y="0.0" width="323" height="31"/>
                                                            <subviews>
                                                                <stackView opaque="NO" contentMode="scaleToFill" alignment="center" spacing="20" translatesAutoresizingMaskIntoConstraints="NO" id="sWT-Ug-j6y">
                                                                    <rect key="frame" x="0.0" y="0.0" width="141.5" height="31"/>
                                                                    <subviews>
                                                                        <switch opaque="NO" contentMode="scaleToFill" horizontalHuggingPriority="750" verticalHuggingPriority="750" horizontalCompressionResistancePriority="751" contentHorizontalAlignment="center" contentVerticalAlignment="center" on="YES" translatesAutoresizingMaskIntoConstraints="NO" id="w9C-j2-COD">
                                                                            <rect key="frame" x="0.0" y="0.0" width="51" height="31"/>
                                                                        </switch>
                                                                        <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Button" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="dRM-c4-ORW">
                                                                            <rect key="frame" x="69" y="6" width="72.5" height="19.5"/>
                                                                            <fontDescription key="fontDescription" type="system" pointSize="16"/>
                                                                            <color key="textColor" systemColor="secondaryLabelColor"/>
                                                                            <nil key="highlightedColor"/>
                                                                        </label>
                                                                    </subviews>
                                                                </stackView>
                                                                <stackView opaque="NO" contentMode="scaleToFill" alignment="center" spacing="20" translatesAutoresizingMaskIntoConstraints="NO" id="WVf-N1-ipR">
                                                                    <rect key="frame" x="181.5" y="0.0" width="141.5" height="31"/>
                                                                    <subviews>
                                                                        <switch opaque="NO" contentMode="scaleToFill" horizontalHuggingPriority="750" verticalHuggingPriority="750" horizontalCompressionResistancePriority="751" contentHorizontalAlignment="center" contentVerticalAlignment="center" on="YES" translatesAutoresizingMaskIntoConstraints="NO" id="CDM-PI-gjl">
                                                                            <rect key="frame" x="0.0" y="0.0" width="51" height="31"/>
                                                                        </switch>
                                                                        <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Title" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="PfQ-eZ-O0L">
                                                                            <rect key="frame" x="69" y="6" width="72.5" height="19.5"/>
                                                                            <fontDescription key="fontDescription" type="system" pointSize="16"/>
                                                                            <color key="textColor" systemColor="secondaryLabelColor"/>
                                                                            <nil key="highlightedColor"/>
                                                                        </label>
                                                                    </subviews>
                                                                </stackView>
                                                            </subviews>
                                                        </stackView>
                                                        <stackView opaque="NO" contentMode="scaleToFill" distribution="fillEqually" spacing="40" translatesAutoresizingMaskIntoConstraints="NO" id="FqU-2E-xeu">
                                                            <rect key="frame" x="0.0" y="36" width="323" height="31"/>
                                                            <subviews>
                                                                <stackView opaque="NO" contentMode="scaleToFill" alignment="center" spacing="20" translatesAutoresizingMaskIntoConstraints="NO" id="VJa-y8-lxV">
                                                                    <rect key="frame" x="0.0" y="0.0" width="141.5" height="31"/>
                                                                    <subviews>
                                                                        <switch opaque="NO" contentMode="scaleToFill" horizontalHuggingPriority="750" verticalHuggingPriority="750" horizontalCompressionResistancePriority="751" contentHorizontalAlignment="center" contentVerticalAlignment="center" on="YES" translatesAutoresizingMaskIntoConstraints="NO" id="mfB-t8-O1h">
                                                                            <rect key="frame" x="0.0" y="0.0" width="51" height="31"/>
                                                                        </switch>
                                                                        <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Icon" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="XKN-W4-1jq">
                                                                            <rect key="frame" x="69" y="6" width="72.5" height="19.5"/>
                                                                            <fontDescription key="fontDescription" type="system" pointSize="16"/>
                                                                            <color key="textColor" systemColor="secondaryLabelColor"/>
                                                                            <nil key="highlightedColor"/>
                                                                        </label>
                                                                    </subviews>
                                                                </stackView>
                                                                <stackView opaque="NO" contentMode="scaleToFill" alignment="center" spacing="20" translatesAutoresizingMaskIntoConstraints="NO" id="9hh-9r-JQN">
                                                                    <rect key="frame" x="181.5" y="0.0" width="141.5" height="31"/>
                                                                    <subviews>
                                                                        <switch opaque="NO" contentMode="scaleToFill" horizontalHuggingPriority="750" verticalHuggingPriority="750" horizontalCompressionResistancePriority="751" contentHorizontalAlignment="center" contentVerticalAlignment="center" on="YES" translatesAutoresizingMaskIntoConstraints="NO" id="zUi-zd-sZL">
                                                                            <rect key="frame" x="0.0" y="0.0" width="51" height="31"/>
                                                                        </switch>
                                                                        <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Body" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="DGg-y8-Ln9">
                                                                            <rect key="frame" x="69" y="6" width="72.5" height="19.5"/>
                                                                            <fontDescription key="fontDescription" type="system" pointSize="16"/>
                                                                            <color key="textColor" systemColor="secondaryLabelColor"/>
                                                                            <nil key="highlightedColor"/>
                                                                        </label>
                                                                    </subviews>
                                                                </stackView>
                                                            </subviews>
                                                        </stackView>
                                                    </subviews>
                                                </stackView>
                                            </subviews>
                                            <constraints>
                                                <constraint firstItem="07f-nU-dvy" firstAttribute="top" secondItem="y4L-XO-6WY" secondAttribute="topMargin" id="9iU-v1-KQS"/>
                                                <constraint firstAttribute="trailingMargin" secondItem="UMq-Yn-VYn" secondAttribute="trailing" constant="10" id="FHb-yR-nEi"/>
                                                <constraint firstAttribute="trailing" relation="greaterThanOrEqual" secondItem="07f-nU-dvy" secondAttribute="trailingMargin" id="R40-d2-woT"/>
                                                <constraint firstItem="UMq-Yn-VYn" firstAttribute="leading" secondItem="y4L-XO-6WY" secondAttribute="leadingMargin" constant="10" id="dwS-rh-Hz0"/>
                                                <constraint firstItem="07f-nU-dvy" firstAttribute="leading" secondItem="y4L-XO-6WY" secondAttribute="leadingMargin" constant="10" id="gSR-TQ-PsI"/>
                                                <constraint firstAttribute="bottomMargin" secondItem="UMq-Yn-VYn" secondAttribute="bottom" id="m0V-Dc-OY5"/>
                                                <constraint firstItem="UMq-Yn-VYn" firstAttribute="top" secondItem="07f-nU-dvy" secondAttribute="bottom" constant="8" id="vid-6x-YXe"/>
                                            </constraints>
                                        </tableViewCellContentView>
                                    </tableViewCell>
                                </cells>
                            </tableViewSection>
                        </sections>
                        <connections>
                            <outlet property="dataSource" destination="NF9-wZ-lbZ" id="PpM-hK-flu"/>
                            <outlet property="delegate" destination="NF9-wZ-lbZ" id="rp6-SQ-4A1"/>
                        </connections>
                    </tableView>
                    <navigationItem key="navigationItem" title="Explore" id="rMg-O3-NIm">
                        <barButtonItem key="rightBarButtonItem" id="dQj-XX-UVC">
                            <view key="customView" contentMode="scaleToFill" id="put-HD-gTP">
                                <rect key="frame" x="234" y="0.0" width="125" height="44"/>
                                <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
                                <subviews>
                                    <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="PpV-jZ-Yo3">
                                        <rect key="frame" x="0.0" y="5" width="62" height="34"/>
                                        <color key="backgroundColor" red="0.1647058824" green="0.6588235294" blue="0.98039215690000003" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
                                        <constraints>
                                            <constraint firstAttribute="height" priority="900" constant="33" id="4dH-D2-IES"/>
                                        </constraints>
                                        <fontDescription key="fontDescription" type="boldSystem" pointSize="13"/>
                                        <inset key="contentEdgeInsets" minX="10" minY="0.0" maxX="10" maxY="0.0"/>
                                        <state key="normal" title="SHOW"/>
                                        <userDefinedRuntimeAttributes>
                                            <userDefinedRuntimeAttribute type="number" keyPath="layer.cornerRadius">
                                                <integer key="value" value="5"/>
                                            </userDefinedRuntimeAttribute>
                                        </userDefinedRuntimeAttributes>
                                        <connections>
                                            <action selector="show:" destination="NF9-wZ-lbZ" eventType="touchUpInside" id="M1F-VO-IXP"/>
                                        </connections>
                                    </button>
                                    <button opaque="NO" contentMode="scaleToFill" horizontalHuggingPriority="249" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="vaB-mE-Rve">
                                        <rect key="frame" x="67" y="5" width="58" height="34"/>
                                        <color key="backgroundColor" red="1" green="0.4665354619" blue="0.015686274510000001" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
                                        <constraints>
                                            <constraint firstAttribute="height" priority="900" constant="33" id="rTo-Jm-6qi"/>
                                        </constraints>
                                        <fontDescription key="fontDescription" type="boldSystem" pointSize="13"/>
                                        <inset key="contentEdgeInsets" minX="10" minY="0.0" maxX="10" maxY="0.0"/>
                                        <state key="normal" title="HIDE"/>
                                        <userDefinedRuntimeAttributes>
                                            <userDefinedRuntimeAttribute type="number" keyPath="layer.cornerRadius">
                                                <integer key="value" value="5"/>
                                            </userDefinedRuntimeAttribute>
                                        </userDefinedRuntimeAttributes>
                                        <connections>
                                            <action selector="hide:" destination="NF9-wZ-lbZ" eventType="touchUpInside" id="FxR-jN-Fyr"/>
                                        </connections>
                                    </button>
                                </subviews>
                                <color key="backgroundColor" red="0.0" green="0.0" blue="0.0" alpha="0.0" colorSpace="custom" customColorSpace="sRGB"/>
                                <constraints>
                                    <constraint firstItem="PpV-jZ-Yo3" firstAttribute="leading" secondItem="put-HD-gTP" secondAttribute="leading" id="NXb-Tj-zUQ"/>
                                    <constraint firstItem="PpV-jZ-Yo3" firstAttribute="top" secondItem="put-HD-gTP" secondAttribute="top" constant="5" id="aAq-G5-l4S"/>
                                    <constraint firstAttribute="bottom" secondItem="PpV-jZ-Yo3" secondAttribute="bottom" constant="5" id="aJ1-g1-cqw"/>
                                    <constraint firstAttribute="bottom" secondItem="vaB-mE-Rve" secondAttribute="bottom" constant="5" id="ej5-L3-QgG"/>
                                    <constraint firstAttribute="trailing" secondItem="vaB-mE-Rve" secondAttribute="trailing" id="er4-Vc-rhg"/>
                                    <constraint firstItem="vaB-mE-Rve" firstAttribute="top" secondItem="put-HD-gTP" secondAttribute="top" constant="5" id="fqH-mE-cIE"/>
                                    <constraint firstItem="vaB-mE-Rve" firstAttribute="leading" secondItem="PpV-jZ-Yo3" secondAttribute="trailing" constant="5" id="ngv-jV-JSb"/>
                                </constraints>
                            </view>
                        </barButtonItem>
                    </navigationItem>
                    <size key="freeformSize" width="375" height="1200"/>
                    <connections>
                        <outlet property="autoRotate" destination="WfA-vA-cpG" id="88o-Le-R5E"/>
                        <outlet property="bodyText" destination="Ev4-j7-wY0" id="mD6-Ge-qJY"/>
                        <outlet property="dimMode" destination="iw9-KB-Nyd" id="OiP-ss-kEO"/>
                        <outlet property="dropShadow" destination="sqb-Fg-YR8" id="zUz-6P-IFz"/>
                        <outlet property="duration" destination="nng-9a-v3B" id="4VC-Yi-AiA"/>
                        <outlet property="hapticFeedback" destination="ah6-5J-Psp" id="HSQ-XB-1nn"/>
                        <outlet property="iconStyle" destination="c2K-94-CuB" id="Qwt-xY-oZ2"/>
                        <outlet property="interactiveHide" destination="Vdr-7b-DJB" id="pEi-RT-l7U"/>
                        <outlet property="layout" destination="aBT-5M-2tg" id="4GZ-iP-oCa"/>
                        <outlet property="presentationContext" destination="AYG-qj-yjv" id="oxG-AK-tTF"/>
                        <outlet property="presentationStyle" destination="Agu-Vo-ckI" id="OuZ-YZ-Ktx"/>
                        <outlet property="showBody" destination="zUi-zd-sZL" id="LJh-6j-NzE"/>
                        <outlet property="showButton" destination="w9C-j2-COD" id="Tjc-CK-8lA"/>
                        <outlet property="showIcon" destination="mfB-t8-O1h" id="Ff9-V1-yuO"/>
                        <outlet property="showTitle" destination="CDM-PI-gjl" id="eaO-X0-VKt"/>
                        <outlet property="theme" destination="NoM-It-vKT" id="Nq3-8x-JAR"/>
                        <outlet property="titleText" destination="Z0U-kn-8rs" id="SwM-AJ-Wb8"/>
                    </connections>
                </tableViewController>
                <placeholder placeholderIdentifier="IBFirstResponder" id="skR-IF-bf8" userLabel="First Responder" sceneMemberID="firstResponder"/>
            </objects>
            <point key="canvasLocation" x="2280.8000000000002" y="-288.75562218890559"/>
        </scene>
        <!--View Controllers-->
        <scene sceneID="heM-VN-xQk">
            <objects>
                <viewController title="View Controllers" id="bb1-hO-yeb" customClass="ViewControllersViewController" customModule="Demo" customModuleProvider="target" sceneMemberID="viewController">
                    <layoutGuides>
                        <viewControllerLayoutGuide type="top" id="WeL-Zn-0tj"/>
                        <viewControllerLayoutGuide type="bottom" id="LAn-az-eMU"/>
                    </layoutGuides>
                    <view key="view" contentMode="scaleToFill" id="YlT-hO-kIK">
                        <rect key="frame" x="0.0" y="0.0" width="375" height="667"/>
                        <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
                        <subviews>
                            <stackView opaque="NO" contentMode="scaleToFill" axis="vertical" distribution="fillEqually" spacing="10" translatesAutoresizingMaskIntoConstraints="NO" id="mGe-El-haJ">
                                <rect key="frame" x="46" y="104" width="283" height="474"/>
                                <subviews>
                                    <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="DrN-Ei-Pg7">
                                        <rect key="frame" x="0.0" y="0.0" width="283" height="59"/>
                                        <color key="backgroundColor" red="0.16470588235294117" green="0.6588235294117647" blue="0.98039215686274506" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
                                        <fontDescription key="fontDescription" type="boldSystem" pointSize="18"/>
                                        <state key="normal" title="Top Message"/>
                                        <userDefinedRuntimeAttributes>
                                            <userDefinedRuntimeAttribute type="number" keyPath="layer.cornerRadius">
                                                <integer key="value" value="10"/>
                                            </userDefinedRuntimeAttribute>
                                        </userDefinedRuntimeAttributes>
                                        <connections>
                                            <segue destination="dHK-y5-h16" kind="custom" customClass="SwiftMessagesTopSegue" customModule="Demo" customModuleProvider="target" id="7xS-Ca-mnb"/>
                                        </connections>
                                    </button>
                                    <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="GeC-SP-rSC">
                                        <rect key="frame" x="0.0" y="69" width="283" height="59.5"/>
                                        <color key="backgroundColor" red="0.1647058824" green="0.6588235294" blue="0.98039215690000003" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
                                        <fontDescription key="fontDescription" type="boldSystem" pointSize="18"/>
                                        <state key="normal" title="Bottom Message"/>
                                        <userDefinedRuntimeAttributes>
                                            <userDefinedRuntimeAttribute type="number" keyPath="layer.cornerRadius">
                                                <integer key="value" value="10"/>
                                            </userDefinedRuntimeAttribute>
                                        </userDefinedRuntimeAttributes>
                                        <connections>
                                            <segue destination="dHK-y5-h16" kind="custom" customClass="SwiftMessagesBottomSegue" customModule="Demo" customModuleProvider="target" id="6Yg-dE-eXA"/>
                                        </connections>
                                    </button>
                                    <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="DGn-eY-EEX">
                                        <rect key="frame" x="0.0" y="138.5" width="283" height="59"/>
                                        <color key="backgroundColor" red="0.26627604170000002" green="0.76907009550000005" blue="0.32259114579999998" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
                                        <fontDescription key="fontDescription" type="boldSystem" pointSize="18"/>
                                        <state key="normal" title="Top Card"/>
                                        <userDefinedRuntimeAttributes>
                                            <userDefinedRuntimeAttribute type="number" keyPath="layer.cornerRadius">
                                                <integer key="value" value="10"/>
                                            </userDefinedRuntimeAttribute>
                                        </userDefinedRuntimeAttributes>
                                        <connections>
                                            <segue destination="dHK-y5-h16" kind="custom" customClass="SwiftMessagesTopCardSegue" customModule="Demo" customModuleProvider="target" id="qLf-js-3Ls"/>
                                        </connections>
                                    </button>
                                    <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="ZQs-MK-vK3">
                                        <rect key="frame" x="0.0" y="207.5" width="283" height="59"/>
                                        <color key="backgroundColor" red="0.26627604170000002" green="0.76907009550000005" blue="0.32259114579999998" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
                                        <fontDescription key="fontDescription" type="boldSystem" pointSize="18"/>
                                        <state key="normal" title="Bottom Card"/>
                                        <userDefinedRuntimeAttributes>
                                            <userDefinedRuntimeAttribute type="number" keyPath="layer.cornerRadius">
                                                <integer key="value" value="10"/>
                                            </userDefinedRuntimeAttribute>
                                        </userDefinedRuntimeAttributes>
                                        <connections>
                                            <segue destination="dHK-y5-h16" kind="custom" customClass="SwiftMessagesBottomCardSegue" customModule="Demo" customModuleProvider="target" id="TBl-s0-9vL"/>
                                        </connections>
                                    </button>
                                    <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="kux-aE-Bdv" userLabel="Top Tab">
                                        <rect key="frame" x="0.0" y="276.5" width="283" height="59"/>
                                        <color key="backgroundColor" red="0.80000000000000004" green="0.015686274510000067" blue="0.62082127703967116" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
                                        <fontDescription key="fontDescription" type="boldSystem" pointSize="18"/>
                                        <state key="normal" title="Top Tab"/>
                                        <userDefinedRuntimeAttributes>
                                            <userDefinedRuntimeAttribute type="number" keyPath="layer.cornerRadius">
                                                <integer key="value" value="10"/>
                                            </userDefinedRuntimeAttribute>
                                        </userDefinedRuntimeAttributes>
                                        <connections>
                                            <segue destination="dHK-y5-h16" kind="custom" customClass="SwiftMessagesTopTabSegue" customModule="Demo" customModuleProvider="target" id="p7Y-6q-gfK"/>
                                        </connections>
                                    </button>
                                    <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="dMQ-xF-RwV" userLabel="Bottom Tab">
                                        <rect key="frame" x="0.0" y="345.5" width="283" height="59.5"/>
                                        <color key="backgroundColor" red="0.80000000000000004" green="0.015686274510000001" blue="0.620821277" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
                                        <fontDescription key="fontDescription" type="boldSystem" pointSize="18"/>
                                        <state key="normal" title="Bottom Tab"/>
                                        <userDefinedRuntimeAttributes>
                                            <userDefinedRuntimeAttribute type="number" keyPath="layer.cornerRadius">
                                                <integer key="value" value="10"/>
                                            </userDefinedRuntimeAttribute>
                                        </userDefinedRuntimeAttributes>
                                        <connections>
                                            <segue destination="dHK-y5-h16" kind="custom" customClass="SwiftMessagesBottomTabSegue" customModule="Demo" customModuleProvider="target" id="EaG-Ea-U3j"/>
                                        </connections>
                                    </button>
                                    <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="CDi-Gu-bE2" userLabel="Centered">
                                        <rect key="frame" x="0.0" y="415" width="283" height="59"/>
                                        <color key="backgroundColor" red="1" green="0.46653546191345963" blue="0.015686274510000042" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
                                        <fontDescription key="fontDescription" type="boldSystem" pointSize="18"/>
                                        <state key="normal" title="Centered"/>
                                        <userDefinedRuntimeAttributes>
                                            <userDefinedRuntimeAttribute type="number" keyPath="layer.cornerRadius">
                                                <integer key="value" value="10"/>
                                            </userDefinedRuntimeAttribute>
                                        </userDefinedRuntimeAttributes>
                                        <connections>
                                            <segue destination="dHK-y5-h16" kind="custom" customClass="SwiftMessagesCenteredSegue" customModule="Demo" customModuleProvider="target" id="had-cE-9YN"/>
                                        </connections>
                                    </button>
                                </subviews>
                            </stackView>
                        </subviews>
                        <color key="backgroundColor" systemColor="systemBackgroundColor"/>
                        <constraints>
                            <constraint firstItem="mGe-El-haJ" firstAttribute="top" secondItem="WeL-Zn-0tj" secondAttribute="bottom" constant="40" id="6TI-R1-eMQ"/>
                            <constraint firstItem="mGe-El-haJ" firstAttribute="leading" secondItem="YlT-hO-kIK" secondAttribute="leadingMargin" constant="30" id="LqT-Kn-3v7"/>
                            <constraint firstItem="LAn-az-eMU" firstAttribute="top" secondItem="mGe-El-haJ" secondAttribute="bottom" constant="40" id="jWn-cy-X7E"/>
                            <constraint firstAttribute="trailingMargin" secondItem="mGe-El-haJ" secondAttribute="trailing" constant="30" id="xEo-4G-PBe"/>
                        </constraints>
                    </view>
                </viewController>
                <placeholder placeholderIdentifier="IBFirstResponder" id="l01-vw-7yr" userLabel="First Responder" sceneMemberID="firstResponder"/>
            </objects>
            <point key="canvasLocation" x="2281" y="689"/>
        </scene>
        <!--Item-->
        <scene sceneID="Ekq-Hc-xvY">
            <objects>
                <navigationController id="dHK-y5-h16" sceneMemberID="viewController">
                    <tabBarItem key="tabBarItem" title="Item" id="lRD-YW-2WT"/>
                    <value key="contentSizeForViewInPopover" type="size" width="0.0" height="250"/>
                    <navigationBar key="navigationBar" contentMode="scaleToFill" insetsLayoutMarginsFromSafeArea="NO" id="eD6-og-rzJ">
                        <rect key="frame" x="0.0" y="20" width="375" height="44"/>
                        <autoresizingMask key="autoresizingMask"/>
                    </navigationBar>
                    <connections>
                        <segue destination="CCQ-og-YsG" kind="relationship" relationship="rootViewController" id="Zcn-UD-uH6"/>
                    </connections>
                </navigationController>
                <placeholder placeholderIdentifier="IBFirstResponder" id="Ynl-rR-xVc" userLabel="First Responder" sceneMemberID="firstResponder"/>
            </objects>
            <point key="canvasLocation" x="3164" y="689"/>
        </scene>
        <!--Parent-->
        <scene sceneID="k3I-tw-Opi">
            <objects>
                <tableViewController id="CCQ-og-YsG" sceneMemberID="viewController">
                    <tableView key="view" clipsSubviews="YES" contentMode="scaleToFill" alwaysBounceVertical="YES" dataMode="static" style="plain" separatorStyle="default" rowHeight="-1" estimatedRowHeight="-1" sectionHeaderHeight="28" sectionFooterHeight="28" id="veg-5v-Pex">
                        <rect key="frame" x="0.0" y="0.0" width="375" height="667"/>
                        <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
                        <color key="backgroundColor" systemColor="systemBackgroundColor"/>
                        <sections>
                            <tableViewSection id="CqX-XV-4eD">
                                <cells>
                                    <tableViewCell clipsSubviews="YES" contentMode="scaleToFill" preservesSuperviewLayoutMargins="YES" selectionStyle="default" accessoryType="disclosureIndicator" indentationWidth="10" textLabel="09c-ne-yN9" style="IBUITableViewCellStyleDefault" id="Udi-FH-lzN">
                                        <rect key="frame" x="0.0" y="50" width="375" height="43.5"/>
                                        <autoresizingMask key="autoresizingMask"/>
                                        <tableViewCellContentView key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" preservesSuperviewLayoutMargins="YES" insetsLayoutMarginsFromSafeArea="NO" tableViewCell="Udi-FH-lzN" id="hKw-az-hVR">
                                            <rect key="frame" x="0.0" y="0.0" width="348.5" height="43.5"/>
                                            <autoresizingMask key="autoresizingMask"/>
                                            <subviews>
                                                <label opaque="NO" multipleTouchEnabled="YES" contentMode="left" insetsLayoutMarginsFromSafeArea="NO" text="Item 1" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" id="09c-ne-yN9">
                                                    <rect key="frame" x="16" y="0.0" width="324.5" height="43.5"/>
                                                    <autoresizingMask key="autoresizingMask"/>
                                                    <fontDescription key="fontDescription" type="system" pointSize="17"/>
                                                    <nil key="textColor"/>
                                                    <nil key="highlightedColor"/>
                                                </label>
                                            </subviews>
                                        </tableViewCellContentView>
                                        <connections>
                                            <segue destination="vdp-aa-LDH" kind="show" id="1PO-Ol-L8M"/>
                                        </connections>
                                    </tableViewCell>
                                    <tableViewCell clipsSubviews="YES" contentMode="scaleToFill" preservesSuperviewLayoutMargins="YES" selectionStyle="default" accessoryType="disclosureIndicator" indentationWidth="10" textLabel="idk-C0-F7z" style="IBUITableViewCellStyleDefault" id="hLA-of-n8g">
                                        <rect key="frame" x="0.0" y="93.5" width="375" height="43.5"/>
                                        <autoresizingMask key="autoresizingMask"/>
                                        <tableViewCellContentView key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" preservesSuperviewLayoutMargins="YES" insetsLayoutMarginsFromSafeArea="NO" tableViewCell="hLA-of-n8g" id="70t-ga-6jT">
                                            <rect key="frame" x="0.0" y="0.0" width="348.5" height="43.5"/>
                                            <autoresizingMask key="autoresizingMask"/>
                                            <subviews>
                                                <label opaque="NO" multipleTouchEnabled="YES" contentMode="left" insetsLayoutMarginsFromSafeArea="NO" text="Item 2" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" id="idk-C0-F7z">
                                                    <rect key="frame" x="16" y="0.0" width="324.5" height="43.5"/>
                                                    <autoresizingMask key="autoresizingMask"/>
                                                    <fontDescription key="fontDescription" type="system" pointSize="17"/>
                                                    <nil key="textColor"/>
                                                    <nil key="highlightedColor"/>
                                                </label>
                                            </subviews>
                                        </tableViewCellContentView>
                                        <connections>
                                            <segue destination="vdp-aa-LDH" kind="show" id="DSE-UC-Xqf"/>
                                        </connections>
                                    </tableViewCell>
                                    <tableViewCell clipsSubviews="YES" contentMode="scaleToFill" preservesSuperviewLayoutMargins="YES" selectionStyle="default" accessoryType="disclosureIndicator" indentationWidth="10" textLabel="fhG-aN-pzJ" style="IBUITableViewCellStyleDefault" id="jc4-aX-Ow9">
                                        <rect key="frame" x="0.0" y="137" width="375" height="43.5"/>
                                        <autoresizingMask key="autoresizingMask"/>
                                        <tableViewCellContentView key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" preservesSuperviewLayoutMargins="YES" insetsLayoutMarginsFromSafeArea="NO" tableViewCell="jc4-aX-Ow9" id="Jrq-7c-eSM">
                                            <rect key="frame" x="0.0" y="0.0" width="348.5" height="43.5"/>
                                            <autoresizingMask key="autoresizingMask"/>
                                            <subviews>
                                                <label opaque="NO" multipleTouchEnabled="YES" contentMode="left" insetsLayoutMarginsFromSafeArea="NO" text="Item 3" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" id="fhG-aN-pzJ">
                                                    <rect key="frame" x="16" y="0.0" width="324.5" height="43.5"/>
                                                    <autoresizingMask key="autoresizingMask"/>
                                                    <fontDescription key="fontDescription" type="system" pointSize="17"/>
                                                    <nil key="textColor"/>
                                                    <nil key="highlightedColor"/>
                                                </label>
                                            </subviews>
                                        </tableViewCellContentView>
                                        <connections>
                                            <segue destination="vdp-aa-LDH" kind="show" id="h5n-Vv-Q3y"/>
                                        </connections>
                                    </tableViewCell>
                                </cells>
                            </tableViewSection>
                        </sections>
                        <connections>
                            <outlet property="dataSource" destination="CCQ-og-YsG" id="tjb-6Z-zXO"/>
                            <outlet property="delegate" destination="CCQ-og-YsG" id="yKW-gj-hGn"/>
                        </connections>
                    </tableView>
                    <navigationItem key="navigationItem" title="Parent" id="jt3-Ix-FaW">
                        <barButtonItem key="rightBarButtonItem" title="Done" id="e8e-4N-bax">
                            <connections>
                                <segue destination="Eb3-jR-AqT" kind="unwind" unwindAction="dismissPresentedWithSegue:" id="jd5-2B-4LG"/>
                            </connections>
                        </barButtonItem>
                    </navigationItem>
                </tableViewController>
                <placeholder placeholderIdentifier="IBFirstResponder" id="sT7-d0-juG" userLabel="First Responder" sceneMemberID="firstResponder"/>
                <exit id="Eb3-jR-AqT" userLabel="Exit" sceneMemberID="exit"/>
            </objects>
            <point key="canvasLocation" x="4060" y="689"/>
        </scene>
        <!--Child-->
        <scene sceneID="HTk-O0-UX2">
            <objects>
                <viewController title="Child" id="vdp-aa-LDH" sceneMemberID="viewController">
                    <layoutGuides>
                        <viewControllerLayoutGuide type="top" id="vbE-7C-4e7"/>
                        <viewControllerLayoutGuide type="bottom" id="SPH-4M-bE7"/>
                    </layoutGuides>
                    <view key="view" contentMode="scaleToFill" id="0Cn-7n-ODp">
                        <rect key="frame" x="0.0" y="0.0" width="375" height="667"/>
                        <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
                        <subviews>
                            <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Nothing to see here." textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="2bv-DK-h4b">
                                <rect key="frame" x="110.5" y="355" width="154.5" height="21"/>
                                <fontDescription key="fontDescription" type="system" pointSize="17"/>
                                <nil key="textColor"/>
                                <nil key="highlightedColor"/>
                            </label>
                        </subviews>
                        <color key="backgroundColor" systemColor="systemBackgroundColor"/>
                        <constraints>
                            <constraint firstItem="2bv-DK-h4b" firstAttribute="centerX" secondItem="0Cn-7n-ODp" secondAttribute="centerX" id="1aC-Jw-Zyl"/>
                            <constraint firstItem="2bv-DK-h4b" firstAttribute="centerY" secondItem="0Cn-7n-ODp" secondAttribute="centerYWithinMargins" id="93w-dz-NPV"/>
                        </constraints>
                    </view>
                </viewController>
                <placeholder placeholderIdentifier="IBFirstResponder" id="mU1-MA-hwk" userLabel="First Responder" sceneMemberID="firstResponder"/>
            </objects>
            <point key="canvasLocation" x="4935" y="689"/>
        </scene>
        <!--Navigation Controller-->
        <scene sceneID="TNg-VF-1BI">
            <objects>
                <navigationController id="UrZ-Dq-bGZ" sceneMemberID="viewController">
                    <tabBarItem key="tabBarItem" title="" image="iconSwiftMessages" id="Ttu-oX-nwD"/>
                    <navigationBar key="navigationBar" contentMode="scaleToFill" id="vE6-lq-HY6">
                        <rect key="frame" x="0.0" y="20" width="375" height="44"/>
                        <autoresizingMask key="autoresizingMask"/>
                    </navigationBar>
                    <connections>
                        <segue destination="vur-BZ-g1e" kind="relationship" relationship="rootViewController" id="4V8-gA-ksC"/>
                    </connections>
                </navigationController>
                <placeholder placeholderIdentifier="IBFirstResponder" id="dhS-vl-bAg" userLabel="First Responder" sceneMemberID="firstResponder"/>
            </objects>
            <point key="canvasLocation" x="473" y="305"/>
        </scene>
    </scenes>
    <inferredMetricsTieBreakers>
        <segue reference="h5n-Vv-Q3y"/>
        <segue reference="EaG-Ea-U3j"/>
    </inferredMetricsTieBreakers>
    <resources>
        <image name="iconSwiftMessages" width="38" height="31"/>
        <systemColor name="secondaryLabelColor">
            <color red="0.23529411759999999" green="0.23529411759999999" blue="0.26274509800000001" alpha="0.59999999999999998" colorSpace="custom" customColorSpace="sRGB"/>
        </systemColor>
        <systemColor name="systemBackgroundColor">
            <color white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
        </systemColor>
    </resources>
</document>


================================================
FILE: Demo/Demo/CountedMessageView.swift
================================================
//
//  CountedMessageView.swift
//  Demo
//
//  Created by Timothy Moose on 8/25/17.
//  Copyright © 2017 SwiftKick Mobile. All rights reserved.
//

import UIKit
import SwiftMessages

class CountedMessageView: UIView, Identifiable {

    @IBOutlet weak var countLabel: UILabel!

    var id: String {
        return "counted"
    }
}


================================================
FILE: Demo/Demo/CountedViewController.swift
================================================
//
//  CountedViewController.swift
//  Demo
//
//  Created by Timothy Moose on 8/25/17.
//  Copyright © 2017 SwiftKick Mobile. All rights reserved.
//

import UIKit
import SwiftMessages

class CountedViewController: UIViewController {

    @IBOutlet weak var descriptionLabel: UILabel!
    @IBOutlet var messageView: CountedMessageView!
    @IBOutlet weak var messageContainer: UIView!

    override func viewDidLoad() {
        super.viewDidLoad()
        descriptionLabel.configureBodyTextStyle()
        descriptionLabel.configureCodeStyle(on: "show()")
        descriptionLabel.configureCodeStyle(on: "hideCounted(id:)")
    }

    @IBAction func show() {
        var config = SwiftMessages.defaultConfig
        config.presentationStyle = .center
        config.duration = .forever
        config.presentationContext = .view(messageContainer)
        SwiftMessages.show(config: config, view: messageView)
        updateCountLabel()
    }

    @IBAction func hide() {
        SwiftMessages.hideCounted(id: messageView.id)
        updateCountLabel()
    }

    private func updateCountLabel() {
        let count = SwiftMessages.count(id: messageView.id)
        let numberFormatter = NumberFormatter()
        numberFormatter.numberStyle = .spellOut
        messageView.countLabel.text = numberFormatter.string(from: NSNumber(value: count))?.uppercased()
    }
}


================================================
FILE: Demo/Demo/ExploreViewController.swift
================================================
//
//  ExploreViewController.swift
//  Demo
//
//  Created by Tim Moose on 8/13/16.
//  Copyright © 2016 SwiftKick Mobile. All rights reserved.
//

import UIKit
import SwiftMessages

class ExploreViewController: UITableViewController, UITextFieldDelegate {

    @IBAction func show(_ sender: AnyObject) {
        
        // View setup
        
        let view: MessageView
        switch layout.selectedSegmentIndex {
        case 1:
            view = MessageView.viewFromNib(layout: .cardView)
        case 2:
            view = MessageView.viewFromNib(layout: .tabView)
        case 3:
            view = MessageView.viewFromNib(layout: .statusLine)
        default:
            view = try! SwiftMessages.viewFromNib()
        }
        
        view.configureContent(title: titleText.text, body: bodyText.text, iconImage: nil, iconText: nil, buttonImage: nil, buttonTitle: "Hide", buttonTapHandler: { _ in SwiftMessages.hide() })

        let iconStyle: IconStyle
        switch self.iconStyle.selectedSegmentIndex {
        case 1:
            iconStyle = .light
        case 2:
            iconStyle = .subtle
        default:
            iconStyle = .default
        }
        
        switch theme.selectedSegmentIndex {
        case 0:
            view.configureTheme(.info, iconStyle: iconStyle, includeHaptic: hapticFeedback.isOn)
            view.accessibilityPrefix = "info"
        case 1:
            view.configureTheme(.success, iconStyle: iconStyle, includeHaptic: hapticFeedback.isOn)
            view.accessibilityPrefix = "success"
        case 2:
            view.configureTheme(.warning, iconStyle: iconStyle, includeHaptic: hapticFeedback.isOn)
            view.accessibilityPrefix = "warning"
        case 3:
            view.configureTheme(.error, iconStyle: iconStyle, includeHaptic: hapticFeedback.isOn)
            view.accessibilityPrefix = "error"
        default:
            let iconText = ["🐸", "🐷", "🐬", "🐠", "🐍", "🐹", "🐼"].randomElement()
            view.configureTheme(backgroundColor: UIColor.purple, foregroundColor: UIColor.white, iconImage: nil, iconText: iconText)
            view.button?.setImage(Icon.errorSubtle.image, for: .normal)
            view.button?.setTitle(nil, for: .normal)
            view.button?.backgroundColor = UIColor.clear
            view.button?.tintColor = UIColor.green.withAlphaComponent(0.7)
        }
        
        if dropShadow.isOn {
            view.configureDropShadow()
        }
        
        if !showButton.isOn {
            view.button?.isHidden = true
        }
        
        if !showIcon.isOn {
            view.iconImageView?.isHidden = true
            view.iconLabel?.isHidden = true
        }
        
        if !showTitle.isOn {
            view.titleLabel?.isHidden = true
        }
        
        if !showBody.isOn {
            view.bodyLabel?.isHidden = true
        }
        
        // Config setup
        
        var config = SwiftMessages.defaultConfig
        
        switch presentationStyle.selectedSegmentIndex {
        case 1:
            config.presentationStyle = .bottom
        case 2:
            config.presentationStyle = .center
        default:
            break
        }
        
        switch presentationContext.selectedSegmentIndex {
        case 1:
            config.presentationContext = .window(windowLevel: UIWindow.Level.normal)
        case 2:
            config.presentationContext = .window(windowLevel: UIWindow.Level.statusBar)
        default:
            break
        }
        
        switch duration.selectedSegmentIndex {
        case 1:
            config.duration = .forever
        case 2:
            config.duration = .seconds(seconds: 1)
        case 3:
            config.duration = .seconds(seconds: 5)
        default:
            break
        }
        
        switch dimMode.selectedSegmentIndex {
        case 1:
            config.dimMode = .gray(interactive: true)
        case 2:
            config.dimMode = .color(color: #colorLiteral(red: 0.1019607857, green: 0.2784313858, blue: 0.400000006, alpha: 0.7477525685), interactive: true)
        case 3:
            config.dimMode = .blur(style: .dark, alpha: 1.0, interactive: true)
        default:
            break
        }

        config.shouldAutorotate = self.autoRotate.isOn
        
        config.interactiveHide = interactiveHide.isOn
        
        // Set status bar style unless using card view (since it doesn't
        // go behind the status bar).
        if case .top = config.presentationStyle, layout.selectedSegmentIndex != 1 {
            switch theme.selectedSegmentIndex {
            case 1...4:
                config.preferredStatusBarStyle = .lightContent
            default:
                break
            }
        }

        if view.defaultHaptic == nil && hapticFeedback.isOn {
            config.haptic = .success
        }

        // Show
        SwiftMessages.show(config: config, view: view)
    }
    
    @IBAction func hide(_ sender: AnyObject) {
        SwiftMessages.hide()
    }

    @IBOutlet weak var presentationStyle: UISegmentedControl!
    @IBOutlet weak var presentationContext: UISegmentedControl!
    @IBOutlet weak var duration: UISegmentedControl!
    @IBOutlet weak var dimMode: UISegmentedControl!
    @IBOutlet weak var interactiveHide: UISwitch!
    @IBOutlet weak var hapticFeedback: UISwitch!
    @IBOutlet weak var layout: UISegmentedControl!
    @IBOutlet weak var theme: UISegmentedControl!
    @IBOutlet weak var iconStyle: UISegmentedControl!
    @IBOutlet weak var autoRotate: UISwitch!
    @IBOutlet weak var dropShadow: UISwitch!
    @IBOutlet weak var titleText: UITextField!
    @IBOutlet weak var bodyText: UITextField!
    @IBOutlet weak var showButton: UISwitch!
    @IBOutlet weak var showIcon: UISwitch!
    @IBOutlet weak var showTitle: UISwitch!
    @IBOutlet weak var showBody: UISwitch!
    
    override func viewDidLoad() {
        super.viewDidLoad()
        titleText.delegate = self
        bodyText.delegate = self
    }
    
    /*
     MARK: - UITextFieldDelegate
     */
    
    func textFieldShouldReturn(_ textField: UITextField) -> Bool {
        textField.resignFirstResponder()
        return true
    }
    
    func textFieldShouldEndEditing(_ textField: UITextField) -> Bool {
        return true
    }
}


================================================
FILE: Demo/Demo/Info.plist
================================================
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
	<key>CFBundleDevelopmentRegion</key>
	<string>en</string>
	<key>CFBundleExecutable</key>
	<string>$(EXECUTABLE_NAME)</string>
	<key>CFBundleIdentifier</key>
	<string>$(PRODUCT_BUNDLE_IDENTIFIER)</string>
	<key>CFBundleInfoDictionaryVersion</key>
	<string>6.0</string>
	<key>CFBundleName</key>
	<string>SM Demo</string>
	<key>CFBundlePackageType</key>
	<string>APPL</string>
	<key>CFBundleShortVersionString</key>
	<string>1.0</string>
	<key>CFBundleSignature</key>
	<string>????</string>
	<key>CFBundleVersion</key>
	<string>1</string>
	<key>LSRequiresIPhoneOS</key>
	<true/>
	<key>UILaunchStoryboardName</key>
	<string>LaunchScreen</string>
	<key>UIMainStoryboardFile</key>
	<string>Main</string>
	<key>UIRequiredDeviceCapabilities</key>
	<array>
		<string>armv7</string>
	</array>
	<key>UISupportedInterfaceOrientations</key>
	<array>
		<string>UIInterfaceOrientationPortrait</string>
		<string>UIInterfaceOrientationLandscapeLeft</string>
		<string>UIInterfaceOrientationLandscapeRight</string>
		<string>UIInterfaceOrientationPortraitUpsideDown</string>
	</array>
</dict>
</plist>


================================================
FILE: Demo/Demo/TacoDialogView.swift
================================================
//
//  TacoDialogView.swift
//  Demo
//
//  Created by Tim Moose on 8/12/16.
//  Copyright © 2016 SwiftKick Mobile. All rights reserved.
//

import UIKit
import SwiftMessages

class TacoDialogView: MessageView {

    fileprivate static var tacoTitles = [
        1 : "Just one, Please",
        2 : "Make it two!",
        3 : "Three!!!",
        4 : "Cuatro!!!!",
    ]

    var getTacosAction: ((_ count: Int) -> Void)?
    var cancelAction: (() -> Void)?
    
    fileprivate var count = 1 {
        didSet {
            iconLabel?.text = String(repeating: "🌮", count: count)//String(count: count, repeatedValue: )
            bodyLabel?.text = TacoDialogView.tacoTitles[count] ?? "\(count)" + String(repeating: "!", count: count)
        }
    }
    
    @IBAction func getTacos() {
        getTacosAction?(Int(tacoSlider.value))
    }

    @IBAction func cancel() {
        cancelAction?()
    }
    
    @IBOutlet weak var tacoSlider: UISlider!
    
    @IBAction func tacoSliderSlid(_ slider: UISlider) {
        count = Int(slider.value)
    }
    
    @IBAction func tacoSliderFinished(_ slider: UISlider) {
        slider.setValue(Float(count), animated: true)
    }
}


================================================
FILE: Demo/Demo/TacoDialogView.xib
================================================
<?xml version="1.0" encoding="UTF-8"?>
<document type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="3.0" toolsVersion="14113" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" useTraitCollections="YES" colorMatched="YES">
    <device id="retina4_7" orientation="portrait">
        <adaptation id="fullscreen"/>
    </device>
    <dependencies>
        <deployment identifier="iOS"/>
        <plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="14088"/>
        <capability name="Constraints to layout margins" minToolsVersion="6.0"/>
        <capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/>
    </dependencies>
    <objects>
        <placeholder placeholderIdentifier="IBFilesOwner" id="-1" userLabel="File's Owner"/>
        <placeholder placeholderIdentifier="IBFirstResponder" id="-2" customClass="UIResponder"/>
        <view contentMode="scaleToFill" id="JI3-gM-XBO" userLabel="Card View" customClass="TacoDialogView" customModule="Demo" customModuleProvider="target">
            <rect key="frame" x="0.0" y="0.0" width="600" height="309"/>
            <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
            <subviews>
                <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="dp3-Ae-zep" userLabel="Background view" customClass="CornerRoundingView" customModule="SwiftMessages">
                    <rect key="frame" x="30" y="10" width="540" height="289"/>
                    <subviews>
                        <stackView opaque="NO" contentMode="scaleToFill" axis="vertical" distribution="equalSpacing" spacing="10" translatesAutoresizingMaskIntoConstraints="NO" id="RJH-Fp-YDa" userLabel="Content view">
                            <rect key="frame" x="30" y="30" width="480" height="229"/>
                            <subviews>
                                <stackView opaque="NO" contentMode="scaleToFill" axis="vertical" alignment="center" translatesAutoresizingMaskIntoConstraints="NO" id="Irk-mj-bK8">
                                    <rect key="frame" x="0.0" y="0.0" width="480" height="60"/>
                                    <subviews>
                                        <stackView opaque="NO" contentMode="scaleToFill" distribution="fillProportionally" alignment="center" spacing="15" translatesAutoresizingMaskIntoConstraints="NO" id="aav-a1-ogq">
                                            <rect key="frame" x="0.0" y="0.0" width="480" height="60"/>
                                            <subviews>
                                                <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="xLT-bX-GJE">
                                                    <rect key="frame" x="0.0" y="0.0" width="480" height="60"/>
                                                    <subviews>
                                                        <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="252" verticalHuggingPriority="251" horizontalCompressionResistancePriority="748" text="🌮" textAlignment="natural" lineBreakMode="tailTruncation" numberOfLines="0" baselineAdjustment="alignBaselines" minimumScaleFactor="0.5" translatesAutoresizingMaskIntoConstraints="NO" id="pFx-Py-lZQ" userLabel="Icon label">
                                                            <rect key="frame" x="0.0" y="0.0" width="50" height="60"/>
                                                            <accessibility key="accessibilityConfiguration">
                                                                <bool key="isElement" value="NO"/>
                                                            </accessibility>
                                                            <constraints>
                                                                <constraint firstAttribute="height" constant="60" id="6yp-AT-q9O"/>
                                                            </constraints>
                                                            <fontDescription key="fontDescription" type="system" pointSize="45"/>
                                                            <color key="textColor" red="0.0" green="0.0" blue="0.0" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
                                                            <nil key="highlightedColor"/>
                                                        </label>
                                                        <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" horizontalCompressionResistancePriority="1000" text="Just one, please." textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="YAk-Zs-x2f">
                                                            <rect key="frame" x="65" y="0.0" width="415" height="60"/>
                                                            <accessibility key="accessibilityConfiguration">
                                                                <bool key="isElement" value="NO"/>
                                                            </accessibility>
                                                            <fontDescription key="fontDescription" name="Futura-CondensedMedium" family="Futura" pointSize="18"/>
                                                            <color key="textColor" red="0.6705882352941176" green="0.51372549019607838" blue="0.13333333333333333" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
                                                            <nil key="highlightedColor"/>
                                                        </label>
                                                    </subviews>
                                                    <color key="backgroundColor" red="0.0" green="0.0" blue="0.0" alpha="0.0" colorSpace="custom" customColorSpace="sRGB"/>
                                                    <constraints>
                                                        <constraint firstItem="YAk-Zs-x2f" firstAttribute="leading" secondItem="pFx-Py-lZQ" secondAttribute="trailing" constant="15" id="0za-KZ-w39"/>
                                                        <constraint firstAttribute="bottom" secondItem="YAk-Zs-x2f" secondAttribute="bottom" id="5TB-rj-159"/>
                                                        <constraint firstItem="pFx-Py-lZQ" firstAttribute="top" secondItem="xLT-bX-GJE" secondAttribute="top" id="Qeo-0t-HzA"/>
                                                        <constraint firstAttribute="bottom" secondItem="pFx-Py-lZQ" secondAttribute="bottom" id="Qxn-hu-B7m"/>
                                                        <constraint firstAttribute="height" constant="60" id="Y1Y-No-jwq"/>
                                                        <constraint firstItem="pFx-Py-lZQ" firstAttribute="leading" secondItem="xLT-bX-GJE" secondAttribute="leading" id="htv-Kw-h9G"/>
                                                        <constraint firstAttribute="trailing" secondItem="YAk-Zs-x2f" secondAttribute="trailing" id="u4s-eT-wmG"/>
                                                        <constraint firstItem="YAk-Zs-x2f" firstAttribute="top" secondItem="xLT-bX-GJE" secondAttribute="top" id="y1I-oh-uhx"/>
                                                    </constraints>
                                                </view>
                                            </subviews>
                                        </stackView>
                                    </subviews>
                                </stackView>
                                <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" verticalCompressionResistancePriority="748" text="How many tocos would you like?" textAlignment="center" lineBreakMode="tailTruncation" numberOfLines="0" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="gMT-Vh-S3z">
                                    <rect key="frame" x="0.0" y="75.5" width="480" height="23.5"/>
                                    <color key="backgroundColor" red="0.0" green="0.0" blue="0.0" alpha="0.0" colorSpace="custom" customColorSpace="sRGB"/>
                                    <accessibility key="accessibilityConfiguration">
                                        <bool key="isElement" value="NO"/>
                                    </accessibility>
                                    <fontDescription key="fontDescription" name="Futura-Medium" family="Futura" pointSize="18"/>
                                    <color key="textColor" red="0.40392156862745099" green="0.36862745098039218" blue="0.2627450980392157" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
                                    <nil key="highlightedColor"/>
                                </label>
                                <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Adjust the taco slider and place your order." textAlignment="center" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="U9w-CI-YK7">
                                    <rect key="frame" x="0.0" y="115" width="480" height="17"/>
                                    <fontDescription key="fontDescription" name="Futura-CondensedMedium" family="Futura" pointSize="14"/>
                                    <color key="textColor" red="0.60392156862745094" green="0.44313725490196076" blue="0.10588235294117647" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
                                    <nil key="highlightedColor"/>
                                </label>
                                <slider opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" value="1" minValue="1" maxValue="5" translatesAutoresizingMaskIntoConstraints="NO" id="MKs-Kv-aPL">
                                    <rect key="frame" x="-2" y="147.5" width="484" height="31"/>
                                    <color key="minimumTrackTintColor" red="0.94509803921568625" green="0.57647058823529407" blue="0.078431372549019607" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
                                    <connections>
                                        <action selector="tacoSliderFinished:" destination="JI3-gM-XBO" eventType="touchUpInside" id="ekV-4L-MLR"/>
                                        <action selector="tacoSliderFinished:" destination="JI3-gM-XBO" eventType="touchUpOutside" id="x7e-Y6-N1o"/>
                                        <action selector="tacoSliderSlid:" destination="JI3-gM-XBO" eventType="valueChanged" id="mwN-f7-zaf"/>
                                    </connections>
                                </slider>
                                <stackView opaque="NO" contentMode="scaleToFill" axis="vertical" alignment="bottom" translatesAutoresizingMaskIntoConstraints="NO" id="x8I-RG-nBX">
                                    <rect key="frame" x="0.0" y="193" width="480" height="36"/>
                                    <subviews>
                                        <stackView opaque="NO" contentMode="scaleToFill" spacing="15" translatesAutoresizingMaskIntoConstraints="NO" id="8Qt-TE-nPO">
                                            <rect key="frame" x="323" y="0.0" width="157" height="36"/>
                                            <subviews>
                                                <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="roundedRect" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="yFi-Ik-klX">
                                                    <rect key="frame" x="0.0" y="0.0" width="58" height="36"/>
                                                    <fontDescription key="fontDescription" type="system" pointSize="15"/>
                                                    <state key="normal" title="Forget It">
                                                        <color key="titleColor" red="0.94468559679999997" green="0.57750775359999995" blue="0.07530619559" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
                                                    </state>
                                                    <connections>
                                                        <action selector="cancel" destination="JI3-gM-XBO" eventType="touchUpInside" id="0BO-De-YH2"/>
                                                    </connections>
                                                </button>
                                                <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="rVu-Ei-t6A">
                                                    <rect key="frame" x="73" y="0.0" width="84" height="36"/>
                                                    <color key="backgroundColor" red="0.94117647058823528" green="0.57647058823529407" blue="0.074509803921568626" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
                                                    <fontDescription key="fontDescription" name="Futura-Medium" family="Futura" pointSize="15"/>
                                                    <inset key="contentEdgeInsets" minX="8" minY="8" maxX="8" maxY="8"/>
                                                    <state key="normal" title="Get Tacos">
                                                        <color key="titleColor" red="1" green="1" blue="1" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
                                                    </state>
                                                    <userDefinedRuntimeAttributes>
                                                        <userDefinedRuntimeAttribute type="number" keyPath="layer.cornerRadius">
                                                            <integer key="value" value="5"/>
                                                        </userDefinedRuntimeAttribute>
                                                    </userDefinedRuntimeAttributes>
                                                    <connections>
                                                        <action selector="getTacos" destination="JI3-gM-XBO" eventType="touchUpInside" id="zEF-BV-goX"/>
                                                    </connections>
                                                </button>
                                            </subviews>
                                        </stackView>
                                    </subviews>
                                </stackView>
                            </subviews>
                        </stackView>
                    </subviews>
                    <color key="backgroundColor" red="0.94919902146464641" green="0.92014732276780131" blue="0.81324995474381689" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
                    <constraints>
                        <constraint firstAttribute="bottom" secondItem="RJH-Fp-YDa" secondAttribute="bottom" constant="30" id="3t4-62-KuN"/>
                        <constraint firstItem="RJH-Fp-YDa" firstAttribute="top" secondItem="dp3-Ae-zep" secondAttribute="top" constant="30" id="6rK-Yv-gKZ"/>
                        <constraint firstAttribute="trailing" secondItem="RJH-Fp-YDa" secondAttribute="trailing" constant="30" id="dJi-po-g6O"/>
                        <constraint firstItem="RJH-Fp-YDa" firstAttribute="leading" secondItem="dp3-Ae-zep" secondAttribute="leading" constant="30" id="zmH-aG-8Ij"/>
                    </constraints>
                    <userDefinedRuntimeAttributes>
                        <userDefinedRuntimeAttribute type="number" keyPath="cornerRadius">
                            <real key="value" value="15"/>
                        </userDefinedRuntimeAttribute>
                    </userDefinedRuntimeAttributes>
                </view>
            </subviews>
            <color key="backgroundColor" red="0.0" green="0.0" blue="0.0" alpha="0.0" colorSpace="custom" customColorSpace="sRGB"/>
            <constraints>
                <constraint firstAttribute="trailingMargin" secondItem="dp3-Ae-zep" secondAttribute="trailing" constant="10" id="gGP-zK-6VU"/>
                <constraint firstItem="dp3-Ae-zep" firstAttribute="leading" secondItem="JI3-gM-XBO" secondAttribute="leadingMargin" constant="10" id="gyP-aD-uO3"/>
                <constraint firstAttribute="bottomMargin" secondItem="dp3-Ae-zep" secondAttribute="bottom" constant="10" id="le8-gK-lcY"/>
                <constraint firstItem="dp3-Ae-zep" firstAttribute="top" secondItem="JI3-gM-XBO" secondAttribute="topMargin" constant="10" id="s15-z9-aHc"/>
            </constraints>
            <freeformSimulatedSizeMetrics key="simulatedDestinationMetrics"/>
            <userDefinedRuntimeAttributes>
                <userDefinedRuntimeAttribute type="number" keyPath="bounceAnimationOffset">
                    <real key="value" value="0.0"/>
                </userDefinedRuntimeAttribute>
            </userDefinedRuntimeAttributes>
            <connections>
                <outlet property="backgroundView" destination="dp3-Ae-zep" id="ZiK-GN-SXH"/>
                <outlet property="bodyLabel" destination="YAk-Zs-x2f" id="Koz-Jf-jUo"/>
                <outlet property="iconLabel" destination="pFx-Py-lZQ" id="xKK-gA-Otu"/>
                <outlet property="tacoSlider" destination="MKs-Kv-aPL" id="Iky-UQ-58E"/>
                <outlet property="titleLabel" destination="gMT-Vh-S3z" id="FWK-Tl-hc6"/>
            </connections>
            <point key="canvasLocation" x="304" y="614.5"/>
        </view>
    </objects>
</document>


================================================
FILE: Demo/Demo/Utils.swift
================================================
//
//  Utils.swift
//  Demo
//
//  Created by Timothy Moose on 8/25/17.
//  Copyright © 2017 SwiftKick Mobile. All rights reserved.
//

import UIKit

extension UILabel {

    func configureBodyTextStyle() {
        let bodyStyle = NSMutableParagraphStyle()
        bodyStyle.lineSpacing = 5.0
        attributedText = NSAttributedString(string: text ?? "", attributes: [NSAttributedString.Key.paragraphStyle : bodyStyle])
    }

    func configureCodeStyle(on substring: String?) {
        var attributes: [NSAttributedString.Key : Any] = [:]
        let codeFont = UIFont(name: "CourierNewPSMT", size: font.pointSize)!
        attributes[NSAttributedString.Key.font] = codeFont
        attributes[NSAttributedString.Key.backgroundColor] = UIColor(white: 0.96, alpha: 1)
        attributedText = attributedText?.setAttributes(attributes: attributes, onSubstring: substring)
    }
}

extension NSAttributedString {

    public func setAttributes(attributes: [NSAttributedString.Key : Any], onSubstring substring: String?) -> NSAttributedString {
        let mutableSelf = NSMutableAttributedString(attributedString: self)
        if let substring = substring {
            var range = NSRange()
            repeat {
                let length = mutableSelf.length
                let start = range.location + range.length
                let remainingLength = length - start
                let remainingRange = NSRange(location: start, length: remainingLength)
                range = (mutableSelf.string as NSString).range(of: substring, options: .caseInsensitive, range: remainingRange)
                NSAttributedString.set(attributes: attributes, in: range, of: mutableSelf)
            } while range.length > 0
        } else {
            let range = NSRange(location: 0, length: mutableSelf.length)
            NSAttributedString.set(attributes: attributes, in: range, of: mutableSelf)
        }
        return mutableSelf
    }

    private static func set(attributes newAttributes: [NSAttributedString.Key : Any], in range: NSRange, of mutableString: NSMutableAttributedString) {
        if range.length > 0 {
            var attributes = mutableString.attributes(at: range.location, effectiveRange: nil)
            for (key, value) in newAttributes {
                attributes.updateValue(value, forKey: key)
            }
            mutableString.setAttributes(attributes, range: range)
        }
    }
}


================================================
FILE: Demo/Demo/ViewController.swift
================================================
//
//  ViewController.swift
//  Demo
//
//  Created by Tim Moose on 8/11/16.
//  Copyright © 2016 SwiftKick Mobile. All rights reserved.
//

import UIKit
import SwiftMessages

class ViewController: UITableViewController {

    var items: [Item] = [
        .titleBody(title: "MESSAGE VIEW", body: "SwiftMessages provides a standard message view along with a number of layouts, themes and presentation options.", function: ViewController.demoBasics),
        .titleBody(title: "ANY VIEW", body: "Any view, no matter how cute, can be displayed as a message.", function: ViewController.demoAnyView),
        .titleBody(title: "CUSTOMIZE", body: "Easily customize by copying one of the SwiftMessages nib files into your project as a starting point. Then order some tacos.", function: ViewController.demoCustomNib),
        .explore,
        .titleBody(title: "CENTERED", body: "Show cenetered messages with a fun, physics-based dismissal gesture.", function: ViewController.demoCentered),
        .viewController,
        //.counted,
    ]

    /*
     MARK: - UITableViewDataSource
     */
    
    override func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
        return items.count
    }
    
    override func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
        let item = items[(indexPath as NSIndexPath).row]
        return item.dequeueCell(tableView)
    }
    
    /*
     MARK: - UITableViewDelegate
     */

    override func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
        tableView.deselectRow(at: indexPath, animated: true)
        let item = items[(indexPath as NSIndexPath).row]
        item.performDemo()
    }
    
    override func tableView(_ tableView: UITableView, estimatedHeightForRowAt indexPath: IndexPath) -> CGFloat {
        return 50.0
    }
    
    override func tableView(_ tableView: UITableView, heightForRowAt indexPath: IndexPath) -> CGFloat {
        return UITableView.automaticDimension
    }
    
    /*
     MARK: - Demos
     */

    static func demoBasics() -> Void {
        
        let error = MessageView.viewFromNib(layout: .tabView)
        error.configureTheme(.error)
        error.configureContent(title: "Error", body: "Something is horribly wrong!")
        error.button?.setTitle("Stop", for: .normal)
        
        let warning = MessageView.viewFromNib(layout: .cardView)
        warning.configureTheme(.warning)
        warning.configureDropShadow()
        
        let iconText = ["🤔", "😳", "🙄", "😶"].randomElement()!
        warning.configureContent(title: "Warning", body: "Consider yourself warned.", iconText: iconText)
        warning.button?.isHidden = true
        var warningConfig = SwiftMessages.defaultConfig
        warningConfig.presentationContext = .window(windowLevel: UIWindow.Level.statusBar)

        let success = MessageView.viewFromNib(layout: .cardView)
        success.configureTheme(.success)
        success.configureDropShadow()
        success.configureContent(title: "Success", body: "Something good happened!")
        success.button?.isHidden = true
        var successConfig = SwiftMessages.defaultConfig
        successConfig.presentationStyle = .center
        successConfig.presentationContext = .window(windowLevel: UIWindow.Level.normal)

        let info = MessageView.viewFromNib(layout: .messageView)
        info.configureTheme(.info)
        info.button?.isHidden = true
        info.configureContent(title: "Info", body: "This is a very lengthy and informative info message that wraps across multiple lines and grows in height as needed.")
        var infoConfig = SwiftMessages.defaultConfig
        infoConfig.presentationStyle = .bottom
        infoConfig.duration = .seconds(seconds: 0.25)

        let status = MessageView.viewFromNib(layout: .statusLine)
        status.backgroundView.backgroundColor = UIColor.purple
        
Download .txt
gitextract__w424663/

├── .gitignore
├── CHANGELOG.md
├── Demo/
│   ├── .Podfile
│   ├── Demo/
│   │   ├── AppDelegate.swift
│   │   ├── Assets.xcassets/
│   │   │   ├── AppIcon.appiconset/
│   │   │   │   └── Contents.json
│   │   │   ├── Contents.json
│   │   │   ├── iconSwiftMessages.imageset/
│   │   │   │   └── Contents.json
│   │   │   ├── puppies.imageset/
│   │   │   │   └── Contents.json
│   │   │   └── splashBanner.imageset/
│   │   │       └── Contents.json
│   │   ├── Base.lproj/
│   │   │   ├── LaunchScreen.storyboard
│   │   │   └── Main.storyboard
│   │   ├── CountedMessageView.swift
│   │   ├── CountedViewController.swift
│   │   ├── ExploreViewController.swift
│   │   ├── Info.plist
│   │   ├── TacoDialogView.swift
│   │   ├── TacoDialogView.xib
│   │   ├── Utils.swift
│   │   ├── ViewController.swift
│   │   └── ViewControllersViewController.swift
│   └── Demo.xcodeproj/
│       ├── project.pbxproj
│       ├── project.xcworkspace/
│       │   ├── contents.xcworkspacedata
│       │   └── xcshareddata/
│       │       └── IDEWorkspaceChecks.plist
│       └── xcshareddata/
│           └── xcschemes/
│               └── Demo.xcscheme
├── Design/
│   ├── SwiftMessages Demo App Icon.sketch
│   └── SwiftMessagesDesign.sketch
├── LICENSE.md
├── Package.swift
├── README.md
├── SwiftMessages/
│   ├── AccessibleMessage.swift
│   ├── Animator.swift
│   ├── BackgroundViewable.swift
│   ├── BaseView.swift
│   ├── CALayer+Extensions.swift
│   ├── CornerRoundingView.swift
│   ├── Error.swift
│   ├── HapticMessage.swift
│   ├── Identifiable.swift
│   ├── Info.plist
│   ├── KeyboardTrackingView.swift
│   ├── MarginAdjustable+Extensions.swift
│   ├── MarginAdjustable.swift
│   ├── MaskingView.swift
│   ├── MessageGeometryProxy.swift
│   ├── MessageHostingView.swift
│   ├── MessageView.swift
│   ├── MessageViewConvertible.swift
│   ├── NSBundle+Extensions.swift
│   ├── NSLayoutConstraint+Extensions.swift
│   ├── PassthroughView.swift
│   ├── PassthroughWindow.swift
│   ├── PhysicsAnimation.swift
│   ├── PhysicsPanHandler.swift
│   ├── Presenter.swift
│   ├── Resources/
│   │   ├── CardView.xib
│   │   ├── CenteredView.xib
│   │   ├── MessageView.xib
│   │   ├── StatusLine.xib
│   │   └── TabView.xib
│   ├── SwiftMessageModifier.swift
│   ├── SwiftMessages.Config+Extensions.swift
│   ├── SwiftMessages.h
│   ├── SwiftMessages.swift
│   ├── SwiftMessagesHideAction.swift
│   ├── SwiftMessagesSegue.swift
│   ├── Task+Extensions.swift
│   ├── Theme.swift
│   ├── TopBottomAnimation.swift
│   ├── TopBottomAnimationStyle.swift
│   ├── TopBottomPresentable.swift
│   ├── UIEdgeInsets+Extensions.swift
│   ├── UIViewController+Extensions.swift
│   ├── UIWindow+Extensions.swift
│   ├── Weak.swift
│   ├── WindowScene.swift
│   └── WindowViewController.swift
├── SwiftMessages.podspec
├── SwiftMessages.xcodeproj/
│   ├── project.pbxproj
│   ├── project.xcworkspace/
│   │   ├── contents.xcworkspacedata
│   │   └── xcshareddata/
│   │       └── IDEWorkspaceChecks.plist
│   └── xcshareddata/
│       └── xcschemes/
│           └── SwiftMessages.xcscheme
├── SwiftMessagesTests/
│   ├── Info.plist
│   └── SwiftMessagesTests.swift
├── SwiftUIDemo/
│   ├── SwiftUIDemo/
│   │   ├── Assets.xcassets/
│   │   │   ├── AccentColor.colorset/
│   │   │   │   └── Contents.json
│   │   │   ├── AppIcon.appiconset/
│   │   │   │   └── Contents.json
│   │   │   ├── Contents.json
│   │   │   └── Demo message background.colorset/
│   │   │       └── Contents.json
│   │   ├── DemoMessage.swift
│   │   ├── DemoMessageView.swift
│   │   ├── DemoMessageWithButtonView.swift
│   │   ├── DemoView.swift
│   │   ├── Info.plist
│   │   ├── Preview Content/
│   │   │   └── Preview Assets.xcassets/
│   │   │       └── Contents.json
│   │   └── SwiftUIDemoApp.swift
│   └── SwiftUIDemo.xcodeproj/
│       ├── project.pbxproj
│       └── project.xcworkspace/
│           ├── contents.xcworkspacedata
│           └── xcshareddata/
│               └── IDEWorkspaceChecks.plist
├── ViewControllers.md
└── iMessageDemo/
    ├── .Podfile
    ├── Podfile
    ├── Pods/
    │   ├── Local Podspecs/
    │   │   └── SwiftMessages.podspec.json
    │   ├── Pods.xcodeproj/
    │   │   ├── project.pbxproj
    │   │   └── project.xcworkspace/
    │   │       ├── contents.xcworkspacedata
    │   │       └── xcshareddata/
    │   │           ├── IDEWorkspaceChecks.plist
    │   │           └── WorkspaceSettings.xcsettings
    │   └── Target Support Files/
    │       ├── Pods-iMessageDemo/
    │       │   ├── Pods-iMessageDemo-Info.plist
    │       │   ├── Pods-iMessageDemo-acknowledgements.markdown
    │       │   ├── Pods-iMessageDemo-acknowledgements.plist
    │       │   ├── Pods-iMessageDemo-dummy.m
    │       │   ├── Pods-iMessageDemo-frameworks-Debug-input-files.xcfilelist
    │       │   ├── Pods-iMessageDemo-frameworks-Debug-output-files.xcfilelist
    │       │   ├── Pods-iMessageDemo-frameworks-Release-input-files.xcfilelist
    │       │   ├── Pods-iMessageDemo-frameworks-Release-output-files.xcfilelist
    │       │   ├── Pods-iMessageDemo-frameworks.sh
    │       │   ├── Pods-iMessageDemo-umbrella.h
    │       │   ├── Pods-iMessageDemo.debug.xcconfig
    │       │   ├── Pods-iMessageDemo.modulemap
    │       │   └── Pods-iMessageDemo.release.xcconfig
    │       ├── Pods-iMessageExtensionDemo/
    │       │   ├── Pods-iMessageExtensionDemo-Info.plist
    │       │   ├── Pods-iMessageExtensionDemo-acknowledgements.markdown
    │       │   ├── Pods-iMessageExtensionDemo-acknowledgements.plist
    │       │   ├── Pods-iMessageExtensionDemo-dummy.m
    │       │   ├── Pods-iMessageExtensionDemo-umbrella.h
    │       │   ├── Pods-iMessageExtensionDemo.debug.xcconfig
    │       │   ├── Pods-iMessageExtensionDemo.modulemap
    │       │   └── Pods-iMessageExtensionDemo.release.xcconfig
    │       └── SwiftMessages/
    │           ├── ResourceBundle-SwiftMessages-SwiftMessages-Info.plist
    │           ├── ResourceBundle-SwiftMessages_SwiftMessages-SwiftMessages-Info.plist
    │           ├── SwiftMessages-Info.plist
    │           ├── SwiftMessages-dummy.m
    │           ├── SwiftMessages-prefix.pch
    │           ├── SwiftMessages-umbrella.h
    │           ├── SwiftMessages.debug.xcconfig
    │           ├── SwiftMessages.modulemap
    │           └── SwiftMessages.release.xcconfig
    ├── iMessageDemo/
    │   ├── AppDelegate.swift
    │   ├── Info.plist
    │   ├── LaunchScreen.storyboard
    │   └── Main.storyboard
    ├── iMessageDemo.xcodeproj/
    │   ├── project.pbxproj
    │   ├── project.xcworkspace/
    │   │   ├── contents.xcworkspacedata
    │   │   └── xcshareddata/
    │   │       └── IDEWorkspaceChecks.plist
    │   └── xcshareddata/
    │       └── xcschemes/
    │           └── iMessageExtensionDemo.xcscheme
    ├── iMessageDemo.xcworkspace/
    │   ├── contents.xcworkspacedata
    │   └── xcshareddata/
    │       ├── IDEWorkspaceChecks.plist
    │       └── WorkspaceSettings.xcsettings
    └── iMessageExtensionDemo/
        ├── Base.lproj/
        │   └── MainInterface.storyboard
        ├── Info.plist
        └── MessagesViewController.swift
Condensed preview — 149 files, each showing path, character count, and a content snippet. Download the .json file or copy for the full structured content (801K chars).
[
  {
    "path": ".gitignore",
    "chars": 738,
    "preview": "# Xcode\n#\n# gitignore contributors: remember to update Global/Xcode.gitignore, Objective-C.gitignore & Swift.gitignore\n\n"
  },
  {
    "path": "CHANGELOG.md",
    "chars": 24983,
    "preview": "# Change Log\nAll notable changes to this project will be documented in this file.\n\n## 10.0.2\n\n### Features\n* #549 Create"
  },
  {
    "path": "Demo/.Podfile",
    "chars": 202,
    "preview": "target 'Demo' do\n    use_frameworks!\n    workspace 'Demo.xcworkspace'\n    xcodeproj 'Demo.xcodeproj'\n    pod 'SwiftMessa"
  },
  {
    "path": "Demo/Demo/AppDelegate.swift",
    "chars": 617,
    "preview": "//\n//  AppDelegate.swift\n//  Demo\n//\n//  Created by Tim Moose on 8/11/16.\n//  Copyright © 2016 SwiftKick Mobile. All rig"
  },
  {
    "path": "Demo/Demo/Assets.xcassets/AppIcon.appiconset/Contents.json",
    "chars": 2522,
    "preview": "{\n  \"images\" : [\n    {\n      \"size\" : \"20x20\",\n      \"idiom\" : \"iphone\",\n      \"filename\" : \"Icon-App-20x20@2x.png\",\n   "
  },
  {
    "path": "Demo/Demo/Assets.xcassets/Contents.json",
    "chars": 62,
    "preview": "{\n  \"info\" : {\n    \"version\" : 1,\n    \"author\" : \"xcode\"\n  }\n}"
  },
  {
    "path": "Demo/Demo/Assets.xcassets/iconSwiftMessages.imageset/Contents.json",
    "chars": 235,
    "preview": "{\n  \"images\" : [\n    {\n      \"idiom\" : \"universal\",\n      \"filename\" : \"iconSwiftMessages.pdf\"\n    }\n  ],\n  \"info\" : {\n "
  },
  {
    "path": "Demo/Demo/Assets.xcassets/puppies.imageset/Contents.json",
    "chars": 304,
    "preview": "{\n  \"images\" : [\n    {\n      \"idiom\" : \"universal\",\n      \"scale\" : \"1x\"\n    },\n    {\n      \"idiom\" : \"universal\",\n     "
  },
  {
    "path": "Demo/Demo/Assets.xcassets/splashBanner.imageset/Contents.json",
    "chars": 230,
    "preview": "{\n  \"images\" : [\n    {\n      \"idiom\" : \"universal\",\n      \"filename\" : \"splashBanner.pdf\"\n    }\n  ],\n  \"info\" : {\n    \"v"
  },
  {
    "path": "Demo/Demo/Base.lproj/LaunchScreen.storyboard",
    "chars": 4272,
    "preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<document type=\"com.apple.InterfaceBuilder3.CocoaTouch.Storyboard.XIB\" version=\"3"
  },
  {
    "path": "Demo/Demo/Base.lproj/Main.storyboard",
    "chars": 127880,
    "preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<document type=\"com.apple.InterfaceBuilder3.CocoaTouch.Storyboard.XIB\" version=\"3"
  },
  {
    "path": "Demo/Demo/CountedMessageView.swift",
    "chars": 333,
    "preview": "//\n//  CountedMessageView.swift\n//  Demo\n//\n//  Created by Timothy Moose on 8/25/17.\n//  Copyright © 2017 SwiftKick Mobi"
  },
  {
    "path": "Demo/Demo/CountedViewController.swift",
    "chars": 1367,
    "preview": "//\n//  CountedViewController.swift\n//  Demo\n//\n//  Created by Timothy Moose on 8/25/17.\n//  Copyright © 2017 SwiftKick M"
  },
  {
    "path": "Demo/Demo/ExploreViewController.swift",
    "chars": 6330,
    "preview": "//\n//  ExploreViewController.swift\n//  Demo\n//\n//  Created by Tim Moose on 8/13/16.\n//  Copyright © 2016 SwiftKick Mobil"
  },
  {
    "path": "Demo/Demo/Info.plist",
    "chars": 1257,
    "preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<!DOCTYPE plist PUBLIC \"-//Apple//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/P"
  },
  {
    "path": "Demo/Demo/TacoDialogView.swift",
    "chars": 1179,
    "preview": "//\n//  TacoDialogView.swift\n//  Demo\n//\n//  Created by Tim Moose on 8/12/16.\n//  Copyright © 2016 SwiftKick Mobile. All "
  },
  {
    "path": "Demo/Demo/TacoDialogView.xib",
    "chars": 18426,
    "preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<document type=\"com.apple.InterfaceBuilder3.CocoaTouch.XIB\" version=\"3.0\" toolsVe"
  },
  {
    "path": "Demo/Demo/Utils.swift",
    "chars": 2420,
    "preview": "//\n//  Utils.swift\n//  Demo\n//\n//  Created by Timothy Moose on 8/25/17.\n//  Copyright © 2017 SwiftKick Mobile. All right"
  },
  {
    "path": "Demo/Demo/ViewController.swift",
    "chars": 9293,
    "preview": "//\n//  ViewController.swift\n//  Demo\n//\n//  Created by Tim Moose on 8/11/16.\n//  Copyright © 2016 SwiftKick Mobile. All "
  },
  {
    "path": "Demo/Demo/ViewControllersViewController.swift",
    "chars": 2430,
    "preview": "//\n//  ViewControllersViewController.swift\n//  Demo\n//\n//  Created by Timothy Moose on 7/28/18.\n//  Copyright © 2018 Swi"
  },
  {
    "path": "Demo/Demo.xcodeproj/project.pbxproj",
    "chars": 20588,
    "preview": "// !$*UTF8*$!\n{\n\tarchiveVersion = 1;\n\tclasses = {\n\t};\n\tobjectVersion = 46;\n\tobjects = {\n\n/* Begin PBXBuildFile section *"
  },
  {
    "path": "Demo/Demo.xcodeproj/project.xcworkspace/contents.xcworkspacedata",
    "chars": 149,
    "preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<Workspace\n   version = \"1.0\">\n   <FileRef\n      location = \"self:Demo.xcodeproj\""
  },
  {
    "path": "Demo/Demo.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist",
    "chars": 238,
    "preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<!DOCTYPE plist PUBLIC \"-//Apple//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/P"
  },
  {
    "path": "Demo/Demo.xcodeproj/xcshareddata/xcschemes/Demo.xcscheme",
    "chars": 2813,
    "preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<Scheme\n   LastUpgradeVersion = \"1200\"\n   version = \"1.3\">\n   <BuildAction\n      "
  },
  {
    "path": "LICENSE.md",
    "chars": 1064,
    "preview": "Copyright (c) 2016 SwiftKick Mobile LLC\n\n\nPermission is hereby granted, free of charge, to any person obtaining a copy o"
  },
  {
    "path": "Package.swift",
    "chars": 568,
    "preview": "// swift-tools-version:5.3\nimport PackageDescription\n\nlet package = Package(\n    name: \"SwiftMessages\",\n    platforms: ["
  },
  {
    "path": "README.md",
    "chars": 23264,
    "preview": "# SwiftMessages\n\n[![Twitter: @TimothyMoose](https://img.shields.io/badge/contact-@TimothyMoose-blue.svg?style=flat)](htt"
  },
  {
    "path": "SwiftMessages/AccessibleMessage.swift",
    "chars": 535,
    "preview": "//\n//  AccessibleMessage.swift\n//  SwiftMessages\n//\n//  Created by Timothy Moose on 3/11/17.\n//  Copyright © 2017 SwiftK"
  },
  {
    "path": "SwiftMessages/Animator.swift",
    "chars": 2748,
    "preview": "//\n//  Animator.swift\n//  SwiftMessages\n//\n//  Created by Timothy Moose on 6/4/17.\n//  Copyright © 2017 SwiftKick Mobile"
  },
  {
    "path": "SwiftMessages/BackgroundViewable.swift",
    "chars": 883,
    "preview": "//\n//  BackgroundViewable.swift\n//  SwiftMessages\n//\n//  Created by Timothy Moose on 8/15/16.\n//  Copyright © 2016 Swift"
  },
  {
    "path": "SwiftMessages/BaseView.swift",
    "chars": 16655,
    "preview": "\n//\n//  BaseView.swift\n//  SwiftMessages\n//\n//  Created by Timothy Moose on 8/17/16.\n//  Copyright © 2016 SwiftKick Mobi"
  },
  {
    "path": "SwiftMessages/CALayer+Extensions.swift",
    "chars": 448,
    "preview": "//\n//  CALayer+Extensions.swift\n//  SwiftMessages\n//\n//  Created by Timothy Moose on 8/3/18.\n//  Copyright © 2018 SwiftK"
  },
  {
    "path": "SwiftMessages/CornerRoundingView.swift",
    "chars": 2949,
    "preview": "//\n//  CornerRoundingView.swift\n//  SwiftMessages\n//\n//  Created by Timothy Moose on 7/28/18.\n//  Copyright © 2018 Swift"
  },
  {
    "path": "SwiftMessages/Error.swift",
    "chars": 364,
    "preview": "//\n//  Error.swift\n//  SwiftMessages\n//\n//  Created by Timothy Moose on 8/7/16.\n//  Copyright © 2016 SwiftKick Mobile LL"
  },
  {
    "path": "SwiftMessages/HapticMessage.swift",
    "chars": 364,
    "preview": "//\n//  HapticMessage.swift\n//  SwiftMessages\n//\n//  Created by Timothy Moose on 1/23/24.\n//  Copyright © 2024 SwiftKick "
  },
  {
    "path": "SwiftMessages/Identifiable.swift",
    "chars": 644,
    "preview": "//\n//  Identifiable.swift\n//  SwiftMessages\n//\n//  Created by Timothy Moose on 8/1/16.\n//  Copyright © 2016 SwiftKick Mo"
  },
  {
    "path": "SwiftMessages/Info.plist",
    "chars": 806,
    "preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<!DOCTYPE plist PUBLIC \"-//Apple//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/P"
  },
  {
    "path": "SwiftMessages/KeyboardTrackingView.swift",
    "chars": 6252,
    "preview": "//\n//  KeyboardTrackingView.swift\n//  SwiftMessages\n//\n//  Created by Timothy Moose on 5/20/19.\n//  Copyright © 2019 Swi"
  },
  {
    "path": "SwiftMessages/MarginAdjustable+Extensions.swift",
    "chars": 1448,
    "preview": "//\n//  MarginAdjustable+Extensions.swift\n//  SwiftMessages\n//\n//  Created by Timothy Moose on 11/5/17.\n//  Copyright © 2"
  },
  {
    "path": "SwiftMessages/MarginAdjustable.swift",
    "chars": 1609,
    "preview": "//\n//  MarginAdjustable.swift\n//  SwiftMessages\n//\n//  Created by Timothy Moose on 8/5/16.\n//  Copyright © 2016 SwiftKic"
  },
  {
    "path": "SwiftMessages/MaskingView.swift",
    "chars": 2503,
    "preview": "//\n//  MaskingView.swift\n//  SwiftMessages\n//\n//  Created by Timothy Moose on 3/11/17.\n//  Copyright © 2017 SwiftKick Mo"
  },
  {
    "path": "SwiftMessages/MessageGeometryProxy.swift",
    "chars": 578,
    "preview": "//\n//  MessageGeometryProxy.swift\n//  SwiftMessages\n//\n//  Created by Timothy Moose on 6/24/24.\n//  Copyright © 2024 Swi"
  },
  {
    "path": "SwiftMessages/MessageHostingView.swift",
    "chars": 5032,
    "preview": "//\n//  MessageHostingView.swift\n//  SwiftMessages\n//\n//  Created by Timothy Moose on 10/5/23.\n//\n\nimport SwiftUI\nimport "
  },
  {
    "path": "SwiftMessages/MessageView.swift",
    "chars": 16428,
    "preview": "//\n//  MessageView.swift\n//  SwiftMessages\n//\n//  Created by Timothy Moose on 7/30/16.\n//  Copyright © 2016 SwiftKick Mo"
  },
  {
    "path": "SwiftMessages/MessageViewConvertible.swift",
    "chars": 369,
    "preview": "//\n//  MessageViewConvertible.swift\n//  SwiftUIDemo\n//\n//  Created by Timothy Moose on 10/5/23.\n//\n\nimport SwiftUI\n\n@ava"
  },
  {
    "path": "SwiftMessages/NSBundle+Extensions.swift",
    "chars": 1369,
    "preview": "//\n//  NSBundle+Extensions.swift\n//  SwiftMessages\n//\n//  Created by Timothy Moose on 8/8/16.\n//  Copyright © 2016 Swift"
  },
  {
    "path": "SwiftMessages/NSLayoutConstraint+Extensions.swift",
    "chars": 341,
    "preview": "//\n//  NSLayoutConstraint+Extensions.swift\n//  SwiftMessages\n//\n//  Created by Timothy Moose on 5/18/19.\n//  Copyright ©"
  },
  {
    "path": "SwiftMessages/PassthroughView.swift",
    "chars": 830,
    "preview": "//\n//  PassthroughView.swift\n//  SwiftMessages\n//\n//  Created by Timothy Moose on 8/5/16.\n//  Copyright © 2016 SwiftKick"
  },
  {
    "path": "SwiftMessages/PassthroughWindow.swift",
    "chars": 1072,
    "preview": "//\n//  PassthroughWindow.swift\n//  SwiftMessages\n//\n//  Created by Timothy Moose on 8/5/16.\n//  Copyright © 2016 SwiftKi"
  },
  {
    "path": "SwiftMessages/PhysicsAnimation.swift",
    "chars": 5457,
    "preview": "//\n//  PhysicsAnimation.swift\n//  SwiftMessages\n//\n//  Created by Timothy Moose on 6/14/17.\n//  Copyright © 2017 SwiftKi"
  },
  {
    "path": "SwiftMessages/PhysicsPanHandler.swift",
    "chars": 7479,
    "preview": "//\n//  PhysicsPanHandler.swift\n//  SwiftMessages\n//\n//  Created by Timothy Moose on 6/25/17.\n//  Copyright © 2017 SwiftK"
  },
  {
    "path": "SwiftMessages/Presenter.swift",
    "chars": 17884,
    "preview": "//\n//  MessagePresenter.swift\n//  SwiftMessages\n//\n//  Created by Timothy Moose on 7/30/16.\n//  Copyright © 2016 SwiftKi"
  },
  {
    "path": "SwiftMessages/Resources/CardView.xib",
    "chars": 12842,
    "preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<document type=\"com.apple.InterfaceBuilder3.CocoaTouch.XIB\" version=\"3.0\" toolsVe"
  },
  {
    "path": "SwiftMessages/Resources/CenteredView.xib",
    "chars": 12812,
    "preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<document type=\"com.apple.InterfaceBuilder3.CocoaTouch.XIB\" version=\"3.0\" toolsVe"
  },
  {
    "path": "SwiftMessages/Resources/MessageView.xib",
    "chars": 9081,
    "preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<document type=\"com.apple.InterfaceBuilder3.CocoaTouch.XIB\" version=\"3.0\" toolsVe"
  },
  {
    "path": "SwiftMessages/Resources/StatusLine.xib",
    "chars": 4314,
    "preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<document type=\"com.apple.InterfaceBuilder3.CocoaTouch.XIB\" version=\"3.0\" toolsVe"
  },
  {
    "path": "SwiftMessages/Resources/TabView.xib",
    "chars": 13040,
    "preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<document type=\"com.apple.InterfaceBuilder3.CocoaTouch.XIB\" version=\"3.0\" toolsVe"
  },
  {
    "path": "SwiftMessages/SwiftMessageModifier.swift",
    "chars": 5208,
    "preview": "//\n//  SwiftMessageModifier.swift\n//  SwiftUIDemo\n//\n//  Created by Timothy Moose on 10/5/23.\n//\n\nimport SwiftUI\n\n@avail"
  },
  {
    "path": "SwiftMessages/SwiftMessages.Config+Extensions.swift",
    "chars": 1180,
    "preview": "//\n//  SwiftMessages.Config+Extensions.swift\n//  SwiftMessages\n//\n//  Created by Timothy Moose on 12/26/20.\n//  Copyrigh"
  },
  {
    "path": "SwiftMessages/SwiftMessages.h",
    "chars": 533,
    "preview": "//\n//  SwiftMessages.h\n//  SwiftMessages\n//\n//  Created by Timothy Moose on 8/9/16.\n//  Copyright © 2016 SwiftKick Mobil"
  },
  {
    "path": "SwiftMessages/SwiftMessages.swift",
    "chars": 33327,
    "preview": "//\n//  SwiftMessages.swift\n//  SwiftMessages\n//\n//  Created by Timothy Moose on 8/1/16.\n//  Copyright © 2016 SwiftKick M"
  },
  {
    "path": "SwiftMessages/SwiftMessagesHideAction.swift",
    "chars": 1264,
    "preview": "//\n//  SwiftMessagesHideKey.swift\n//  SwiftMessages\n//\n//  Created by Mofe Ejegi on 11/05/2025.\n//  Copyright © 2025 Swi"
  },
  {
    "path": "SwiftMessages/SwiftMessagesSegue.swift",
    "chars": 18525,
    "preview": "//\n//  SwiftMessagesSegue.swift\n//  SwiftMessages\n//\n//  Created by Timothy Moose on 5/30/18.\n//  Copyright © 2018 Swift"
  },
  {
    "path": "SwiftMessages/Task+Extensions.swift",
    "chars": 370,
    "preview": "//\n//  Task+Extensions.swift\n//  SwiftMessages\n//\n//  Created by Timothy Moose on 12/3/23.\n//  Copyright © 2023 SwiftKic"
  },
  {
    "path": "SwiftMessages/Theme.swift",
    "chars": 2157,
    "preview": "//\n//  Theme.swift\n//  SwiftMessages\n//\n//  Created by Timothy Moose on 8/7/16.\n//  Copyright © 2016 SwiftKick Mobile LL"
  },
  {
    "path": "SwiftMessages/TopBottomAnimation.swift",
    "chars": 9067,
    "preview": "//\n//  TopBottomAnimation.swift\n//  SwiftMessages\n//\n//  Created by Timothy Moose on 6/4/17.\n//  Copyright © 2017 SwiftK"
  },
  {
    "path": "SwiftMessages/TopBottomAnimationStyle.swift",
    "chars": 232,
    "preview": "//\n//  TopBottomAnimationStyle.swift\n//  SwiftMessages\n//\n//  Created by Timothy Moose on 6/23/24.\n//  Copyright © 2024 "
  },
  {
    "path": "SwiftMessages/TopBottomPresentable.swift",
    "chars": 1321,
    "preview": "//\n//  File.swift\n//  \n//\n//  Created by Julien Di Marco on 23/04/2024.\n//\n\nimport Foundation\n\n// MARK: - TopBottom Pres"
  },
  {
    "path": "SwiftMessages/UIEdgeInsets+Extensions.swift",
    "chars": 941,
    "preview": "//\n//  UIEdgeInsets+Extensions.swift\n//  SwiftMessages\n//\n//  Created by Timothy Moose on 5/23/18.\n//  Copyright © 2018 "
  },
  {
    "path": "SwiftMessages/UIViewController+Extensions.swift",
    "chars": 3972,
    "preview": "//\n//  UIViewController+Extensions.swift\n//  SwiftMessages\n//\n//  Created by Timothy Moose on 8/5/16.\n//  Copyright © 20"
  },
  {
    "path": "SwiftMessages/UIWindow+Extensions.swift",
    "chars": 889,
    "preview": "//\n//  UIWindow+Extensions.swift\n//  SwiftMessages\n//\n//  Created by Timothy Moose on 3/11/21.\n//  Copyright © 2021 Swif"
  },
  {
    "path": "SwiftMessages/Weak.swift",
    "chars": 291,
    "preview": "//\n//  Weak.swift\n//  SwiftMessages\n//\n//  Created by Timothy Moose on 6/4/17.\n//  Copyright © 2017 SwiftKick Mobile. Al"
  },
  {
    "path": "SwiftMessages/WindowScene.swift",
    "chars": 270,
    "preview": "import Foundation\nimport UIKit\n\n/// A workaround for the change in Xcode 13 that prevents using `@availability` attribut"
  },
  {
    "path": "SwiftMessages/WindowViewController.swift",
    "chars": 2498,
    "preview": "//\n//  WindowViewController.swift\n//  SwiftMessages\n//\n//  Created by Timothy Moose on 8/1/16.\n//  Copyright © 2016 Swif"
  },
  {
    "path": "SwiftMessages.podspec",
    "chars": 1475,
    "preview": "Pod::Spec.new do |spec|\n    spec.name             = 'SwiftMessages'\n    spec.version          = '10.0.2'\n    spec.licens"
  },
  {
    "path": "SwiftMessages.xcodeproj/project.pbxproj",
    "chars": 58327,
    "preview": "// !$*UTF8*$!\n{\n\tarchiveVersion = 1;\n\tclasses = {\n\t};\n\tobjectVersion = 54;\n\tobjects = {\n\n/* Begin PBXBuildFile section *"
  },
  {
    "path": "SwiftMessages.xcodeproj/project.xcworkspace/contents.xcworkspacedata",
    "chars": 158,
    "preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<Workspace\n   version = \"1.0\">\n   <FileRef\n      location = \"self:SwiftMessages.x"
  },
  {
    "path": "SwiftMessages.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist",
    "chars": 238,
    "preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<!DOCTYPE plist PUBLIC \"-//Apple//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/P"
  },
  {
    "path": "SwiftMessages.xcodeproj/xcshareddata/xcschemes/SwiftMessages.xcscheme",
    "chars": 3812,
    "preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<Scheme\n   LastUpgradeVersion = \"1510\"\n   version = \"1.3\">\n   <BuildAction\n      "
  },
  {
    "path": "SwiftMessagesTests/Info.plist",
    "chars": 733,
    "preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<!DOCTYPE plist PUBLIC \"-//Apple//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/P"
  },
  {
    "path": "SwiftMessagesTests/SwiftMessagesTests.swift",
    "chars": 1002,
    "preview": "//\n//  SwiftMessagesTests.swift\n//  SwiftMessagesTests\n//\n//  Created by Timothy Moose on 8/9/16.\n//  Copyright © 2016 S"
  },
  {
    "path": "SwiftUIDemo/SwiftUIDemo/Assets.xcassets/AccentColor.colorset/Contents.json",
    "chars": 123,
    "preview": "{\n  \"colors\" : [\n    {\n      \"idiom\" : \"universal\"\n    }\n  ],\n  \"info\" : {\n    \"author\" : \"xcode\",\n    \"version\" : 1\n  }"
  },
  {
    "path": "SwiftUIDemo/SwiftUIDemo/Assets.xcassets/AppIcon.appiconset/Contents.json",
    "chars": 177,
    "preview": "{\n  \"images\" : [\n    {\n      \"idiom\" : \"universal\",\n      \"platform\" : \"ios\",\n      \"size\" : \"1024x1024\"\n    }\n  ],\n  \"i"
  },
  {
    "path": "SwiftUIDemo/SwiftUIDemo/Assets.xcassets/Contents.json",
    "chars": 63,
    "preview": "{\n  \"info\" : {\n    \"author\" : \"xcode\",\n    \"version\" : 1\n  }\n}\n"
  },
  {
    "path": "SwiftUIDemo/SwiftUIDemo/Assets.xcassets/Demo message background.colorset/Contents.json",
    "chars": 326,
    "preview": "{\n  \"colors\" : [\n    {\n      \"color\" : {\n        \"color-space\" : \"srgb\",\n        \"components\" : {\n          \"alpha\" : \"1"
  },
  {
    "path": "SwiftUIDemo/SwiftUIDemo/DemoMessage.swift",
    "chars": 436,
    "preview": "//\n//  DemoMessage.swift\n//  SwiftUIDemo\n//\n//  Created by Timothy Moose on 10/5/23.\n//\n\nimport SwiftUI\nimport SwiftMess"
  },
  {
    "path": "SwiftUIDemo/SwiftUIDemo/DemoMessageView.swift",
    "chars": 1762,
    "preview": "//\n//  DemoMessageView.swift\n//  SwiftUIDemo\n//\n//  Created by Timothy Moose on 10/5/23.\n//\n\nimport SwiftUI\n\n// A messag"
  },
  {
    "path": "SwiftUIDemo/SwiftUIDemo/DemoMessageWithButtonView.swift",
    "chars": 2045,
    "preview": "//\n//  DemoMessageWithButtonView.swift\n//  SwiftUIDemo\n//\n//  Created by Timothy Moose on 1/15/24.\n//\n\nimport SwiftUI\n\n/"
  },
  {
    "path": "SwiftUIDemo/SwiftUIDemo/DemoView.swift",
    "chars": 2124,
    "preview": "//\n//  DemoView.swift\n//  SwiftUIDemo\n//\n//  Created by Timothy Moose on 10/5/23.\n//\n\nimport SwiftUI\nimport SwiftMessage"
  },
  {
    "path": "SwiftUIDemo/SwiftUIDemo/Info.plist",
    "chars": 181,
    "preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<!DOCTYPE plist PUBLIC \"-//Apple//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/P"
  },
  {
    "path": "SwiftUIDemo/SwiftUIDemo/Preview Content/Preview Assets.xcassets/Contents.json",
    "chars": 63,
    "preview": "{\n  \"info\" : {\n    \"author\" : \"xcode\",\n    \"version\" : 1\n  }\n}\n"
  },
  {
    "path": "SwiftUIDemo/SwiftUIDemo/SwiftUIDemoApp.swift",
    "chars": 233,
    "preview": "//\n//  SwiftUIDemoApp.swift\n//  SwiftUIDemo\n//\n//  Created by Timothy Moose on 10/5/23.\n//\n\nimport SwiftUI\n\n@main\nstruct"
  },
  {
    "path": "SwiftUIDemo/SwiftUIDemo.xcodeproj/project.pbxproj",
    "chars": 18730,
    "preview": "// !$*UTF8*$!\n{\n\tarchiveVersion = 1;\n\tclasses = {\n\t};\n\tobjectVersion = 56;\n\tobjects = {\n\n/* Begin PBXBuildFile section *"
  },
  {
    "path": "SwiftUIDemo/SwiftUIDemo.xcodeproj/project.xcworkspace/contents.xcworkspacedata",
    "chars": 135,
    "preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<Workspace\n   version = \"1.0\">\n   <FileRef\n      location = \"self:\">\n   </FileRef"
  },
  {
    "path": "SwiftUIDemo/SwiftUIDemo.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist",
    "chars": 238,
    "preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<!DOCTYPE plist PUBLIC \"-//Apple//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/P"
  },
  {
    "path": "ViewControllers.md",
    "chars": 7754,
    "preview": "# View Controllers\n\n[`SwiftMessagesSegue`](./SwiftMessages/SwiftMessagesSegue.swift) is a configurable subclass of `UISt"
  },
  {
    "path": "iMessageDemo/.Podfile",
    "chars": 314,
    "preview": "target 'iMessageDemo' do\n   use_frameworks!\n   workspace 'iMessageDemo.xcworkspace'\n   xcodeproj 'iMessageDemo.xcodeproj"
  },
  {
    "path": "iMessageDemo/Podfile",
    "chars": 1115,
    "preview": "# Uncomment the next line to define a global platform for your project\n# platform :ios, '9.0'\n\ninstall! 'cocoapods',\n   "
  },
  {
    "path": "iMessageDemo/Pods/Local Podspecs/SwiftMessages.podspec.json",
    "chars": 1276,
    "preview": "{\n  \"name\": \"SwiftMessages\",\n  \"version\": \"10.0.1\",\n  \"license\": {\n    \"type\": \"MIT\"\n  },\n  \"homepage\": \"https://github."
  },
  {
    "path": "iMessageDemo/Pods/Pods.xcodeproj/project.pbxproj",
    "chars": 88278,
    "preview": "// !$*UTF8*$!\n{\n\tarchiveVersion = 1;\n\tclasses = {\n\t};\n\tobjectVersion = 54;\n\tobjects = {\n\n/* Begin PBXBuildFile section *"
  },
  {
    "path": "iMessageDemo/Pods/Pods.xcodeproj/project.xcworkspace/contents.xcworkspacedata",
    "chars": 135,
    "preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<Workspace\n   version = \"1.0\">\n   <FileRef\n      location = \"self:\">\n   </FileRef"
  },
  {
    "path": "iMessageDemo/Pods/Pods.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist",
    "chars": 238,
    "preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<!DOCTYPE plist PUBLIC \"-//Apple//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/P"
  },
  {
    "path": "iMessageDemo/Pods/Pods.xcodeproj/project.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings",
    "chars": 264,
    "preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<!DOCTYPE plist PUBLIC \"-//Apple//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/P"
  },
  {
    "path": "iMessageDemo/Pods/Target Support Files/Pods-iMessageDemo/Pods-iMessageDemo-Info.plist",
    "chars": 854,
    "preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<!DOCTYPE plist PUBLIC \"-//Apple//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/P"
  },
  {
    "path": "iMessageDemo/Pods/Target Support Files/Pods-iMessageDemo/Pods-iMessageDemo-acknowledgements.markdown",
    "chars": 1217,
    "preview": "# Acknowledgements\nThis application makes use of the following third party libraries:\n\n## SwiftMessages\n\nCopyright (c) 2"
  },
  {
    "path": "iMessageDemo/Pods/Target Support Files/Pods-iMessageDemo/Pods-iMessageDemo-acknowledgements.plist",
    "chars": 2090,
    "preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<!DOCTYPE plist PUBLIC \"-//Apple//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/P"
  },
  {
    "path": "iMessageDemo/Pods/Target Support Files/Pods-iMessageDemo/Pods-iMessageDemo-dummy.m",
    "chars": 138,
    "preview": "#import <Foundation/Foundation.h>\n@interface PodsDummy_Pods_iMessageDemo : NSObject\n@end\n@implementation PodsDummy_Pods_"
  },
  {
    "path": "iMessageDemo/Pods/Target Support Files/Pods-iMessageDemo/Pods-iMessageDemo-frameworks-Debug-input-files.xcfilelist",
    "chars": 143,
    "preview": "${PODS_ROOT}/Target Support Files/Pods-iMessageDemo/Pods-iMessageDemo-frameworks.sh\n${BUILT_PRODUCTS_DIR}/SwiftMessages/"
  },
  {
    "path": "iMessageDemo/Pods/Target Support Files/Pods-iMessageDemo/Pods-iMessageDemo-frameworks-Debug-output-files.xcfilelist",
    "chars": 69,
    "preview": "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/SwiftMessages.framework"
  },
  {
    "path": "iMessageDemo/Pods/Target Support Files/Pods-iMessageDemo/Pods-iMessageDemo-frameworks-Release-input-files.xcfilelist",
    "chars": 143,
    "preview": "${PODS_ROOT}/Target Support Files/Pods-iMessageDemo/Pods-iMessageDemo-frameworks.sh\n${BUILT_PRODUCTS_DIR}/SwiftMessages/"
  },
  {
    "path": "iMessageDemo/Pods/Target Support Files/Pods-iMessageDemo/Pods-iMessageDemo-frameworks-Release-output-files.xcfilelist",
    "chars": 69,
    "preview": "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/SwiftMessages.framework"
  },
  {
    "path": "iMessageDemo/Pods/Target Support Files/Pods-iMessageDemo/Pods-iMessageDemo-frameworks.sh",
    "chars": 8513,
    "preview": "#!/bin/sh\nset -e\nset -u\nset -o pipefail\n\nfunction on_error {\n  echo \"$(realpath -mq \"${0}\"):$1: error: Unexpected failur"
  },
  {
    "path": "iMessageDemo/Pods/Target Support Files/Pods-iMessageDemo/Pods-iMessageDemo-umbrella.h",
    "chars": 326,
    "preview": "#ifdef __OBJC__\n#import <UIKit/UIKit.h>\n#else\n#ifndef FOUNDATION_EXPORT\n#if defined(__cplusplus)\n#define FOUNDATION_EXPO"
  },
  {
    "path": "iMessageDemo/Pods/Target Support Files/Pods-iMessageDemo/Pods-iMessageDemo.debug.xcconfig",
    "chars": 1009,
    "preview": "ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES\nCLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = NO\nFRAMEWORK_SEARCH_PATHS = "
  },
  {
    "path": "iMessageDemo/Pods/Target Support Files/Pods-iMessageDemo/Pods-iMessageDemo.modulemap",
    "chars": 124,
    "preview": "framework module Pods_iMessageDemo {\n  umbrella header \"Pods-iMessageDemo-umbrella.h\"\n\n  export *\n  module * { export * "
  },
  {
    "path": "iMessageDemo/Pods/Target Support Files/Pods-iMessageDemo/Pods-iMessageDemo.release.xcconfig",
    "chars": 1009,
    "preview": "ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES\nCLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = NO\nFRAMEWORK_SEARCH_PATHS = "
  },
  {
    "path": "iMessageDemo/Pods/Target Support Files/Pods-iMessageExtensionDemo/Pods-iMessageExtensionDemo-Info.plist",
    "chars": 854,
    "preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<!DOCTYPE plist PUBLIC \"-//Apple//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/P"
  },
  {
    "path": "iMessageDemo/Pods/Target Support Files/Pods-iMessageExtensionDemo/Pods-iMessageExtensionDemo-acknowledgements.markdown",
    "chars": 1217,
    "preview": "# Acknowledgements\nThis application makes use of the following third party libraries:\n\n## SwiftMessages\n\nCopyright (c) 2"
  },
  {
    "path": "iMessageDemo/Pods/Target Support Files/Pods-iMessageExtensionDemo/Pods-iMessageExtensionDemo-acknowledgements.plist",
    "chars": 2090,
    "preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<!DOCTYPE plist PUBLIC \"-//Apple//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/P"
  },
  {
    "path": "iMessageDemo/Pods/Target Support Files/Pods-iMessageExtensionDemo/Pods-iMessageExtensionDemo-dummy.m",
    "chars": 156,
    "preview": "#import <Foundation/Foundation.h>\n@interface PodsDummy_Pods_iMessageExtensionDemo : NSObject\n@end\n@implementation PodsDu"
  },
  {
    "path": "iMessageDemo/Pods/Target Support Files/Pods-iMessageExtensionDemo/Pods-iMessageExtensionDemo-umbrella.h",
    "chars": 344,
    "preview": "#ifdef __OBJC__\n#import <UIKit/UIKit.h>\n#else\n#ifndef FOUNDATION_EXPORT\n#if defined(__cplusplus)\n#define FOUNDATION_EXPO"
  },
  {
    "path": "iMessageDemo/Pods/Target Support Files/Pods-iMessageExtensionDemo/Pods-iMessageExtensionDemo.debug.xcconfig",
    "chars": 1001,
    "preview": "CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = NO\nFRAMEWORK_SEARCH_PATHS = $(inherited) \"${PODS_CONFIGURATION_BUILD_DIR"
  },
  {
    "path": "iMessageDemo/Pods/Target Support Files/Pods-iMessageExtensionDemo/Pods-iMessageExtensionDemo.modulemap",
    "chars": 142,
    "preview": "framework module Pods_iMessageExtensionDemo {\n  umbrella header \"Pods-iMessageExtensionDemo-umbrella.h\"\n\n  export *\n  mo"
  },
  {
    "path": "iMessageDemo/Pods/Target Support Files/Pods-iMessageExtensionDemo/Pods-iMessageExtensionDemo.release.xcconfig",
    "chars": 1001,
    "preview": "CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = NO\nFRAMEWORK_SEARCH_PATHS = $(inherited) \"${PODS_CONFIGURATION_BUILD_DIR"
  },
  {
    "path": "iMessageDemo/Pods/Target Support Files/SwiftMessages/ResourceBundle-SwiftMessages-SwiftMessages-Info.plist",
    "chars": 733,
    "preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<!DOCTYPE plist PUBLIC \"-//Apple//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/P"
  },
  {
    "path": "iMessageDemo/Pods/Target Support Files/SwiftMessages/ResourceBundle-SwiftMessages_SwiftMessages-SwiftMessages-Info.plist",
    "chars": 760,
    "preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<!DOCTYPE plist PUBLIC \"-//Apple//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/P"
  },
  {
    "path": "iMessageDemo/Pods/Target Support Files/SwiftMessages/SwiftMessages-Info.plist",
    "chars": 855,
    "preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<!DOCTYPE plist PUBLIC \"-//Apple//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/P"
  },
  {
    "path": "iMessageDemo/Pods/Target Support Files/SwiftMessages/SwiftMessages-dummy.m",
    "chars": 130,
    "preview": "#import <Foundation/Foundation.h>\n@interface PodsDummy_SwiftMessages : NSObject\n@end\n@implementation PodsDummy_SwiftMess"
  },
  {
    "path": "iMessageDemo/Pods/Target Support Files/SwiftMessages/SwiftMessages-prefix.pch",
    "chars": 195,
    "preview": "#ifdef __OBJC__\n#import <UIKit/UIKit.h>\n#else\n#ifndef FOUNDATION_EXPORT\n#if defined(__cplusplus)\n#define FOUNDATION_EXPO"
  },
  {
    "path": "iMessageDemo/Pods/Target Support Files/SwiftMessages/SwiftMessages-umbrella.h",
    "chars": 318,
    "preview": "#ifdef __OBJC__\n#import <UIKit/UIKit.h>\n#else\n#ifndef FOUNDATION_EXPORT\n#if defined(__cplusplus)\n#define FOUNDATION_EXPO"
  },
  {
    "path": "iMessageDemo/Pods/Target Support Files/SwiftMessages/SwiftMessages.debug.xcconfig",
    "chars": 980,
    "preview": "APPLICATION_EXTENSION_API_ONLY = YES\nCLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = NO\nCONFIGURATION_BUILD_DIR = ${PODS"
  },
  {
    "path": "iMessageDemo/Pods/Target Support Files/SwiftMessages/SwiftMessages.modulemap",
    "chars": 116,
    "preview": "framework module SwiftMessages {\n  umbrella header \"SwiftMessages-umbrella.h\"\n\n  export *\n  module * { export * }\n}\n"
  },
  {
    "path": "iMessageDemo/Pods/Target Support Files/SwiftMessages/SwiftMessages.release.xcconfig",
    "chars": 980,
    "preview": "APPLICATION_EXTENSION_API_ONLY = YES\nCLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = NO\nCONFIGURATION_BUILD_DIR = ${PODS"
  },
  {
    "path": "iMessageDemo/iMessageDemo/AppDelegate.swift",
    "chars": 264,
    "preview": "//\n//  AppDelegate.swift\n//  iMessageDemo\n//\n//  Created by Timothy Moose on 7/24/18.\n//  Copyright © 2018 it.swiftkick."
  },
  {
    "path": "iMessageDemo/iMessageDemo/Info.plist",
    "chars": 1463,
    "preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<!DOCTYPE plist PUBLIC \"-//Apple//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/P"
  },
  {
    "path": "iMessageDemo/iMessageDemo/LaunchScreen.storyboard",
    "chars": 4740,
    "preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<document type=\"com.apple.InterfaceBuilder3.CocoaTouch.Storyboard.XIB\" version=\"3"
  },
  {
    "path": "iMessageDemo/iMessageDemo/Main.storyboard",
    "chars": 3228,
    "preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<document type=\"com.apple.InterfaceBuilder3.CocoaTouch.Storyboard.XIB\" version=\"3"
  },
  {
    "path": "iMessageDemo/iMessageDemo.xcodeproj/project.pbxproj",
    "chars": 24722,
    "preview": "// !$*UTF8*$!\n{\n\tarchiveVersion = 1;\n\tclasses = {\n\t};\n\tobjectVersion = 54;\n\tobjects = {\n\n/* Begin PBXBuildFile section *"
  },
  {
    "path": "iMessageDemo/iMessageDemo.xcodeproj/project.xcworkspace/contents.xcworkspacedata",
    "chars": 217,
    "preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<Workspace\n   version = \"1.0\">\n   <FileRef\n      location = \"group:../../SwiftMes"
  },
  {
    "path": "iMessageDemo/iMessageDemo.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist",
    "chars": 238,
    "preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<!DOCTYPE plist PUBLIC \"-//Apple//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/P"
  },
  {
    "path": "iMessageDemo/iMessageDemo.xcodeproj/xcshareddata/xcschemes/iMessageExtensionDemo.xcscheme",
    "chars": 4072,
    "preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<Scheme\n   LastUpgradeVersion = \"0940\"\n   wasCreatedForAppExtension = \"YES\"\n   ve"
  },
  {
    "path": "iMessageDemo/iMessageDemo.xcworkspace/contents.xcworkspacedata",
    "chars": 230,
    "preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<Workspace\n   version = \"1.0\">\n   <FileRef\n      location = \"group:iMessageDemo.x"
  },
  {
    "path": "iMessageDemo/iMessageDemo.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist",
    "chars": 238,
    "preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<!DOCTYPE plist PUBLIC \"-//Apple//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/P"
  },
  {
    "path": "iMessageDemo/iMessageDemo.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings",
    "chars": 264,
    "preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<!DOCTYPE plist PUBLIC \"-//Apple//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/P"
  },
  {
    "path": "iMessageDemo/iMessageExtensionDemo/Base.lproj/MainInterface.storyboard",
    "chars": 3712,
    "preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<document type=\"com.apple.InterfaceBuilder3.CocoaTouch.Storyboard.XIB\" version=\"3"
  },
  {
    "path": "iMessageDemo/iMessageExtensionDemo/Info.plist",
    "chars": 980,
    "preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<!DOCTYPE plist PUBLIC \"-//Apple//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/P"
  },
  {
    "path": "iMessageDemo/iMessageExtensionDemo/MessagesViewController.swift",
    "chars": 1136,
    "preview": "//\n//  MessagesViewController.swift\n//  iMessageDemo\n//\n//  Created by Timothy Moose on 5/25/18.\n//  Copyright © 2018 Sw"
  }
]

// ... and 2 more files (download for full content)

About this extraction

This page contains the full source code of the SwiftKickMobile/SwiftMessages GitHub repository, extracted and formatted as plain text for AI agents and large language models (LLMs). The extraction includes 149 files (730.3 KB), approximately 194.9k tokens. Use this with OpenClaw, Claude, ChatGPT, Cursor, Windsurf, or any other AI tool that accepts text input. You can copy the full output to your clipboard or download it as a .txt file.

Extracted by GitExtract — free GitHub repo to text converter for AI. Built by Nikandr Surkov.

Copied to clipboard!