Full Code of kaunteya/ProgressKit for AI

master f19f111ec32a cached
28 files
194.9 KB
42.6k tokens
1 requests
Download .txt
Showing preview only (205K chars total). Download the full file or copy to clipboard to get everything.
Repository: kaunteya/ProgressKit
Branch: master
Commit: f19f111ec32a
Files: 28
Total size: 194.9 KB

Directory structure:
gitextract_lvo65_ut/

├── .gitignore
├── .swift-version
├── BaseView.swift
├── Determinate/
│   ├── CircularProgressView.swift
│   ├── DeterminateAnimation.swift
│   └── ProgressBar.swift
├── InDeterminate/
│   ├── Crawler.swift
│   ├── IndeterminateAnimation.swift
│   ├── MaterialProgress.swift
│   ├── Rainbow.swift
│   ├── RotatingArc.swift
│   ├── ShootingStars.swift
│   └── Spinner.swift
├── LICENSE
├── ProgressKit/
│   ├── AppDelegate.swift
│   ├── Base.lproj/
│   │   └── Main.storyboard
│   ├── Determinate.swift
│   ├── DeterminateVC.swift
│   ├── InDeterminate.swift
│   ├── InDeterminateVC.swift
│   └── Info.plist
├── ProgressKit.podspec
├── ProgressKit.xcodeproj/
│   ├── project.pbxproj
│   └── project.xcworkspace/
│       └── contents.xcworkspacedata
├── ProgressKitTests/
│   ├── Info.plist
│   └── ProgressKitTests.swift
├── ProgressUtils.swift
└── README.md

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

================================================
FILE: .gitignore
================================================
.DS_Store
# Xcode
#
build/
*.pbxuser
!default.pbxuser
*.mode1v3
!default.mode1v3
*.mode2v3
!default.mode2v3
*.perspectivev3
!default.perspectivev3
xcuserdata
*.xccheckout
*.moved-aside
DerivedData
*.hmap
*.ipa
*.xcuserstate

# CocoaPods
#
# We recommend against adding the Pods directory to your .gitignore. However
# you should judge for yourself, the pros and cons are mentioned at:
# http://guides.cocoapods.org/using/using-cocoapods.html#should-i-ignore-the-pods-directory-in-source-control
#
# Pods/

# Carthage
#
# Add this line if you want to avoid checking in source code from Carthage dependencies.
# Carthage/Checkouts

Carthage/Build


================================================
FILE: .swift-version
================================================
3.0


================================================
FILE: BaseView.swift
================================================
//
//  BaseView.swift
//  ProgressKit
//
//  Created by Kauntey Suryawanshi on 04/10/15.
//  Copyright (c) 2015 Kauntey Suryawanshi. All rights reserved.
//

import AppKit

@IBDesignable
open class BaseView : NSView {

    override public init(frame frameRect: NSRect) {
        super.init(frame: frameRect)
        self.configureLayers()
    }

    required public init?(coder: NSCoder) {
        super.init(coder: coder)
        self.configureLayers()
    }

    /// Configure the Layers
    func configureLayers() {
        self.wantsLayer = true
        notifyViewRedesigned()
    }

    @IBInspectable open var background: NSColor = NSColor(red: 88.3 / 256, green: 104.4 / 256, blue: 118.5 / 256, alpha: 1.0) {
        didSet {
            self.notifyViewRedesigned()
        }
    }

    @IBInspectable open var foreground: NSColor = NSColor(red: 66.3 / 256, green: 173.7 / 256, blue: 106.4 / 256, alpha: 1.0) {
        didSet {
            self.notifyViewRedesigned()
        }
    }

    @IBInspectable open var cornerRadius: CGFloat = 5.0 {
        didSet {
            self.notifyViewRedesigned()
        }
    }

    /// Call when any IBInspectable variable is changed
    func notifyViewRedesigned() {
        self.layer?.backgroundColor = background.cgColor
        self.layer?.cornerRadius = cornerRadius
    }
}


================================================
FILE: Determinate/CircularProgressView.swift
================================================
//
//  CircularView.swift
//  Animo
//
//  Created by Kauntey Suryawanshi on 29/06/15.
//  Copyright (c) 2015 Kauntey Suryawanshi. All rights reserved.
//

import Foundation
import Cocoa

@IBDesignable
open class CircularProgressView: DeterminateAnimation {

    open var backgroundCircle = CAShapeLayer()
    open var progressLayer = CAShapeLayer()
    open var percentLabelLayer = CATextLayer()

    @IBInspectable open var strokeWidth: CGFloat = -1 {
        didSet {
            notifyViewRedesigned()
        }
    }
    
    @IBInspectable open var showPercent: Bool = true {
        didSet {
            notifyViewRedesigned()
        }
    }

    override func notifyViewRedesigned() {
        super.notifyViewRedesigned()
        backgroundCircle.lineWidth = self.strokeWidth / 2
        progressLayer.lineWidth = strokeWidth
        percentLabelLayer.isHidden = !showPercent

        backgroundCircle.strokeColor = foreground.withAlphaComponent(0.5).cgColor
        progressLayer.strokeColor = foreground.cgColor
        percentLabelLayer.foregroundColor = foreground.cgColor
    }

    override func updateProgress() {
        CATransaction.begin()
        if animated {
            CATransaction.setAnimationDuration(0.5)
        } else {
            CATransaction.setDisableActions(true)
        }
        let timing = CAMediaTimingFunction(name: CAMediaTimingFunctionName.easeOut)
        CATransaction.setAnimationTimingFunction(timing)
        progressLayer.strokeEnd = max(0, min(progress, 1))
        percentLabelLayer.string = "\(Int(progress * 100))%"
        CATransaction.commit()
    }

    override func configureLayers() {
        super.configureLayers()
        let rect = self.bounds
        let radius = (rect.width / 2) * 0.75
        let strokeScalingFactor = CGFloat(0.05)
        

        // Add background Circle
        do {
            backgroundCircle.frame = rect
            backgroundCircle.lineWidth = strokeWidth == -1 ? (rect.width * strokeScalingFactor / 2) : strokeWidth / 2
            
            backgroundCircle.strokeColor = foreground.withAlphaComponent(0.5).cgColor
            backgroundCircle.fillColor = NSColor.clear.cgColor
            let backgroundPath = NSBezierPath()
            backgroundPath.appendArc(withCenter: rect.mid, radius: radius, startAngle: 0, endAngle: 360)
            backgroundCircle.path = backgroundPath.CGPath
            self.layer?.addSublayer(backgroundCircle)
        }
        
        // Progress Layer
        do {
            progressLayer.strokeEnd = 0 //REMOVe this
            progressLayer.fillColor = NSColor.clear.cgColor
            progressLayer.lineCap = .round
            progressLayer.lineWidth = strokeWidth == -1 ? (rect.width * strokeScalingFactor) : strokeWidth
            
            progressLayer.frame = rect
            progressLayer.strokeColor = foreground.cgColor
            let arcPath = NSBezierPath()
            let startAngle = CGFloat(90)
            arcPath.appendArc(withCenter: rect.mid, radius: radius, startAngle: startAngle, endAngle: (startAngle - 360), clockwise: true)
            progressLayer.path = arcPath.CGPath
            self.layer?.addSublayer(progressLayer)
        }

        // Percentage Layer
        do {
            percentLabelLayer.string = "0%"
            percentLabelLayer.foregroundColor = foreground.cgColor
            percentLabelLayer.frame = rect
            percentLabelLayer.font = "Helvetica Neue Light" as CFTypeRef
            percentLabelLayer.alignmentMode = CATextLayerAlignmentMode.center
            percentLabelLayer.position.y = rect.midY * 0.25
            percentLabelLayer.fontSize = rect.width * 0.2
            self.layer?.addSublayer(percentLabelLayer)
        }
    }
}


================================================
FILE: Determinate/DeterminateAnimation.swift
================================================
//
//  DeterminateAnimation.swift
//  ProgressKit
//
//  Created by Kauntey Suryawanshi on 09/07/15.
//  Copyright (c) 2015 Kauntey Suryawanshi. All rights reserved.
//

import Foundation
import Cocoa

protocol DeterminableAnimation {
    func updateProgress()
}

@IBDesignable
open class DeterminateAnimation: BaseView, DeterminableAnimation {
    
    @IBInspectable open var animated: Bool = true

    /// Value of progress now. Range 0..1
    @IBInspectable open var progress: CGFloat = 0 {
        didSet {
            updateProgress()
        }
    }

    /// This function will only be called by didSet of progress. Every subclass will have its own implementation
    func updateProgress() {
        fatalError("Must be overriden in subclass")
    }
}


================================================
FILE: Determinate/ProgressBar.swift
================================================
//
//  ProgressBar.swift
//  ProgressKit
//
//  Created by Kauntey Suryawanshi on 31/07/15.
//  Copyright (c) 2015 Kauntey Suryawanshi. All rights reserved.
//

import Foundation
import Cocoa

@IBDesignable
open class ProgressBar: DeterminateAnimation {

    open var borderLayer = CAShapeLayer()
    open var progressLayer = CAShapeLayer()
    
    @IBInspectable open var borderColor: NSColor = .black {
        didSet {
            notifyViewRedesigned()
        }
    }

    override func notifyViewRedesigned() {
        super.notifyViewRedesigned()
        self.layer?.cornerRadius = self.frame.height / 2
        borderLayer.borderColor = borderColor.cgColor
        progressLayer.backgroundColor = foreground.cgColor
    }

    override func configureLayers() {
        super.configureLayers()

        borderLayer.frame = self.bounds
        borderLayer.cornerRadius = borderLayer.frame.height / 2
        borderLayer.borderWidth = 1.0
        self.layer?.addSublayer(borderLayer)

        progressLayer.frame = NSInsetRect(borderLayer.bounds, 3, 3)
        progressLayer.frame.size.width = (borderLayer.bounds.width - 6)
        progressLayer.cornerRadius = progressLayer.frame.height / 2
        progressLayer.backgroundColor = foreground.cgColor
        borderLayer.addSublayer(progressLayer)

    }
    
    override func updateProgress() {
        CATransaction.begin()
        if animated {
            CATransaction.setAnimationDuration(0.5)
        } else {
            CATransaction.setDisableActions(true)
        }
        let timing = CAMediaTimingFunction(name: .easeOut)
        CATransaction.setAnimationTimingFunction(timing)
        progressLayer.frame.size.width = (borderLayer.bounds.width - 6) * progress
        CATransaction.commit()
    }
}


================================================
FILE: InDeterminate/Crawler.swift
================================================
//
//  Crawler.swift
//  ProgressKit
//
//  Created by Kauntey Suryawanshi on 11/07/15.
//  Copyright (c) 2015 Kauntey Suryawanshi. All rights reserved.
//

import Foundation
import Cocoa

private let defaultForegroundColor = NSColor.white
private let defaultBackgroundColor = NSColor(white: 0.0, alpha: 0.4)
private let duration = 1.2

@IBDesignable
open class Crawler: IndeterminateAnimation {
    
    var starList = [CAShapeLayer]()

    var smallCircleSize: Double {
        return Double(self.bounds.width) * 0.2
    }

    var animationGroups = [CAAnimation]()

    override func notifyViewRedesigned() {
        super.notifyViewRedesigned()
        for star in starList {
            star.backgroundColor = foreground.cgColor
        }
    }
    
    override func configureLayers() {
        super.configureLayers()
        let rect = self.bounds
        let insetRect = NSInsetRect(rect, rect.width * 0.15, rect.width * 0.15)

        for i in 0 ..< 5 {
            let starShape = CAShapeLayer()
            starList.append(starShape)
            starShape.backgroundColor = foreground.cgColor

            let circleWidth = smallCircleSize - Double(i) * 2
            starShape.bounds = CGRect(x: 0, y: 0, width: circleWidth, height: circleWidth)
            starShape.cornerRadius = CGFloat(circleWidth / 2)
            starShape.position = CGPoint(x: rect.midX, y: rect.midY + insetRect.height / 2)
            self.layer?.addSublayer(starShape)

            let arcPath = NSBezierPath()
            arcPath.appendArc(withCenter: insetRect.mid, radius: insetRect.width / 2, startAngle: 90, endAngle: -360 + 90, clockwise: true)

            let rotationAnimation = CAKeyframeAnimation(keyPath: "position")
            rotationAnimation.path = arcPath.CGPath
            rotationAnimation.timingFunction = CAMediaTimingFunction(name: CAMediaTimingFunctionName.easeOut)
            rotationAnimation.beginTime = (duration * 0.075) * Double(i)
            rotationAnimation.calculationMode = .cubicPaced

            let animationGroup = CAAnimationGroup()
            animationGroup.animations = [rotationAnimation]
            animationGroup.duration = duration
            animationGroup.repeatCount = .infinity
            animationGroups.append(animationGroup)

        }
    }

    override func startAnimation() {
        for (index, star) in starList.enumerated() {
            star.add(animationGroups[index], forKey: "")
        }
    }

    override func stopAnimation() {
        for star in starList {
            star.removeAllAnimations()
        }
    }
}



================================================
FILE: InDeterminate/IndeterminateAnimation.swift
================================================
//
//  InDeterminateAnimation.swift
//  ProgressKit
//
//  Created by Kauntey Suryawanshi on 09/07/15.
//  Copyright (c) 2015 Kauntey Suryawanshi. All rights reserved.
//

import Cocoa

protocol AnimationStatusDelegate {
    func startAnimation()
    func stopAnimation()
}

open class IndeterminateAnimation: BaseView, AnimationStatusDelegate {

    /// View is hidden when *animate* property is false
    @IBInspectable open var displayAfterAnimationEnds: Bool = false

    /**
    Control point for all Indeterminate animation
    True invokes `startAnimation()` on subclass of IndeterminateAnimation
    False invokes `stopAnimation()` on subclass of IndeterminateAnimation
    */
    open var animate: Bool = false {
        didSet {
            guard animate != oldValue else { return }
            if animate {
                self.isHidden = false
                startAnimation()
            } else {
                if !displayAfterAnimationEnds {
                    self.isHidden = true
                }
                stopAnimation()
            }
        }
    }

    /**
    Every function that extends Indeterminate animation must define startAnimation().
    `animate` property of Indeterminate animation will indynamically invoke the subclass method
    */
    func startAnimation() {
        fatalError("This is an abstract function")
    }

    /**
    Every function that extends Indeterminate animation must define **stopAnimation()**.

    *animate* property of Indeterminate animation will dynamically invoke the subclass method
    */
    func stopAnimation() {
        fatalError("This is an abstract function")
    }
}


================================================
FILE: InDeterminate/MaterialProgress.swift
================================================
//
//  MaterialProgress.swift
//  ProgressKit
//
//  Created by Kauntey Suryawanshi on 30/06/15.
//  Copyright (c) 2015 Kauntey Suryawanshi. All rights reserved.
//

import Foundation
import Cocoa

private let duration = 1.5
private let strokeRange = (start: 0.0, end: 0.8)

@IBDesignable
open class MaterialProgress: IndeterminateAnimation {

    @IBInspectable open var lineWidth: CGFloat = -1 {
        didSet {
            progressLayer.lineWidth = lineWidth
        }
    }

    override func notifyViewRedesigned() {
        super.notifyViewRedesigned()
        progressLayer.strokeColor = foreground.cgColor
    }

    var backgroundRotationLayer = CAShapeLayer()

    var progressLayer: CAShapeLayer = {
        var tempLayer = CAShapeLayer()
        tempLayer.strokeEnd = CGFloat(strokeRange.end)
        tempLayer.lineCap = .round
        tempLayer.fillColor = NSColor.clear.cgColor
        return tempLayer
    }()

    //MARK: Animation Declaration
    var animationGroup: CAAnimationGroup = {
        var tempGroup = CAAnimationGroup()
        tempGroup.repeatCount = 1
        tempGroup.duration = duration
        return tempGroup
    }()
    

    var rotationAnimation: CABasicAnimation = {
        var tempRotation = CABasicAnimation(keyPath: "transform.rotation")
        tempRotation.repeatCount = Float.infinity
        tempRotation.fromValue = 0
        tempRotation.toValue = 1
        tempRotation.isCumulative = true
        tempRotation.duration = duration / 2
        return tempRotation
        }()

    /// Makes animation for Stroke Start and Stroke End
    func makeStrokeAnimationGroup() {
        var strokeStartAnimation: CABasicAnimation!
        var strokeEndAnimation: CABasicAnimation!

        func makeAnimationforKeyPath(_ keyPath: String) -> CABasicAnimation {
            let tempAnimation = CABasicAnimation(keyPath: keyPath)
            tempAnimation.repeatCount = 1
            tempAnimation.speed = 2.0
            tempAnimation.timingFunction = CAMediaTimingFunction(name: .easeInEaseOut)

            tempAnimation.fromValue = strokeRange.start
            tempAnimation.toValue =  strokeRange.end
            tempAnimation.duration = duration

            return tempAnimation
        }
        strokeEndAnimation = makeAnimationforKeyPath("strokeEnd")
        strokeStartAnimation = makeAnimationforKeyPath("strokeStart")
        strokeStartAnimation.beginTime = duration / 2
        animationGroup.animations = [strokeEndAnimation, strokeStartAnimation, ]
        animationGroup.delegate = self
    }

    override func configureLayers() {
        super.configureLayers()
        makeStrokeAnimationGroup()
        let rect = self.bounds

        backgroundRotationLayer.frame = rect
        self.layer?.addSublayer(backgroundRotationLayer)

        // Progress Layer
        let radius = (rect.width / 2) * 0.75
        progressLayer.frame =  rect
        progressLayer.lineWidth = lineWidth == -1 ? radius / 10: lineWidth
        let arcPath = NSBezierPath()
        arcPath.appendArc(withCenter: rect.mid, radius: radius, startAngle: 0, endAngle: 360, clockwise: false)
        progressLayer.path = arcPath.CGPath
        backgroundRotationLayer.addSublayer(progressLayer)
    }

    var currentRotation = 0.0
    let π2 = Double.pi * 2

    override func startAnimation() {
        progressLayer.add(animationGroup, forKey: "strokeEnd")
        backgroundRotationLayer.add(rotationAnimation, forKey: rotationAnimation.keyPath)
    }
    override func stopAnimation() {
        backgroundRotationLayer.removeAllAnimations()
        progressLayer.removeAllAnimations()
    }
}

extension MaterialProgress: CAAnimationDelegate {
    open func animationDidStop(_ anim: CAAnimation, finished flag: Bool) {
        if !animate { return }
        CATransaction.begin()
        CATransaction.setDisableActions(true)
        currentRotation += strokeRange.end * π2
        currentRotation = currentRotation.truncatingRemainder(dividingBy: π2)
        progressLayer.setAffineTransform(CGAffineTransform(rotationAngle: CGFloat( currentRotation)))
        CATransaction.commit()
        progressLayer.add(animationGroup, forKey: "strokeEnd")
    }
}


================================================
FILE: InDeterminate/Rainbow.swift
================================================
//
//  Rainbow.swift
//  ProgressKit
//
//  Created by Kauntey Suryawanshi on 09/07/15.
//  Copyright (c) 2015 Kauntey Suryawanshi. All rights reserved.
//

import Foundation
import Cocoa

@IBDesignable
open class Rainbow: MaterialProgress {

    @IBInspectable open var onLightOffDark: Bool = false

    override func configureLayers() {
        super.configureLayers()
        self.background = NSColor.clear
    }

    override open func animationDidStop(_ anim: CAAnimation, finished flag: Bool) {
        super.animationDidStop(anim, finished: flag)
        if onLightOffDark {
            progressLayer.strokeColor = lightColorList[Int(arc4random()) % lightColorList.count].cgColor
        } else {
            progressLayer.strokeColor = darkColorList[Int(arc4random()) % darkColorList.count].cgColor
        }
    }
}

var randomColor: NSColor {
    let red   = CGFloat(Double(arc4random()).truncatingRemainder(dividingBy: 256.0) / 256.0)
    let green = CGFloat(Double(arc4random()).truncatingRemainder(dividingBy: 256.0) / 256.0)
    let blue  = CGFloat(Double(arc4random()).truncatingRemainder(dividingBy: 256.0) / 256.0)
    return NSColor(calibratedRed: red, green: green, blue: blue, alpha: 1.0)
}

private let lightColorList:[NSColor] = [
    NSColor(red: 0.9461, green: 0.6699, blue: 0.6243, alpha: 1.0),
    NSColor(red: 0.8625, green: 0.7766, blue: 0.8767, alpha: 1.0),
    NSColor(red: 0.6676, green: 0.6871, blue: 0.8313, alpha: 1.0),
    NSColor(red: 0.7263, green: 0.6189, blue: 0.8379, alpha: 1.0),
    NSColor(red: 0.8912, green: 0.9505, blue: 0.9971, alpha: 1.0),
    NSColor(red: 0.7697, green: 0.9356, blue: 0.9692, alpha: 1.0),
    NSColor(red: 0.3859, green: 0.7533, blue: 0.9477, alpha: 1.0),
    NSColor(red: 0.6435, green: 0.8554, blue: 0.8145, alpha: 1.0),
    NSColor(red: 0.8002, green: 0.936,  blue: 0.7639, alpha: 1.0),
    NSColor(red: 0.5362, green: 0.8703, blue: 0.8345, alpha: 1.0),
    NSColor(red: 0.9785, green: 0.8055, blue: 0.4049, alpha: 1.0),
    NSColor(red: 1.0,    green: 0.8667, blue: 0.6453, alpha: 1.0),
    NSColor(red: 0.9681, green: 0.677,  blue: 0.2837, alpha: 1.0),
    NSColor(red: 0.9898, green: 0.7132, blue: 0.1746, alpha: 1.0),
    NSColor(red: 0.8238, green: 0.84,   blue: 0.8276, alpha: 1.0),
    NSColor(red: 0.8532, green: 0.8763, blue: 0.883,  alpha: 1.0),
]

let darkColorList: [NSColor] = [
    NSColor(red: 0.9472, green: 0.2496, blue: 0.0488, alpha: 1.0),
    NSColor(red: 0.8098, green: 0.1695, blue: 0.0467, alpha: 1.0),
    NSColor(red: 0.853,  green: 0.2302, blue: 0.3607, alpha: 1.0),
    NSColor(red: 0.8152, green: 0.3868, blue: 0.5021, alpha: 1.0),
    NSColor(red: 0.96,   green: 0.277,  blue: 0.3515, alpha: 1.0),
    NSColor(red: 0.3686, green: 0.3069, blue: 0.6077, alpha: 1.0),
    NSColor(red: 0.5529, green: 0.3198, blue: 0.5409, alpha: 1.0),
    NSColor(red: 0.2132, green: 0.4714, blue: 0.7104, alpha: 1.0),
    NSColor(red: 0.1706, green: 0.2432, blue: 0.3106, alpha: 1.0),
    NSColor(red: 0.195,  green: 0.2982, blue: 0.3709, alpha: 1.0),
    NSColor(red: 0.0,    green: 0.3091, blue: 0.5859, alpha: 1.0),
    NSColor(red: 0.2261, green: 0.6065, blue: 0.3403, alpha: 1.0),
    NSColor(red: 0.1101, green: 0.5694, blue: 0.4522, alpha: 1.0),
    NSColor(red: 0.1716, green: 0.4786, blue: 0.2877, alpha: 1.0),
    NSColor(red: 0.8289, green: 0.33,   blue: 0.0,    alpha: 1.0),
    NSColor(red: 0.4183, green: 0.4842, blue: 0.5372, alpha: 1.0),
    NSColor(red: 0.0,    green: 0.0,    blue: 0.0,    alpha: 1.0),
]


================================================
FILE: InDeterminate/RotatingArc.swift
================================================
//
//  RotatingArc.swift
//  ProgressKit
//
//  Created by Kauntey Suryawanshi on 26/10/15.
//  Copyright © 2015 Kauntey Suryawanshi. All rights reserved.
//

import Foundation
import Cocoa

private let duration = 0.25

@IBDesignable
open class RotatingArc: IndeterminateAnimation {

    var backgroundCircle = CAShapeLayer()
    var arcLayer = CAShapeLayer()

    @IBInspectable open var strokeWidth: CGFloat = 5 {
        didSet {
            notifyViewRedesigned()
        }
    }

    @IBInspectable open var arcLength: Int = 35 {
        didSet {
            notifyViewRedesigned()
        }
    }

    @IBInspectable open var clockWise: Bool = true {
        didSet {
            notifyViewRedesigned()
        }
    }

    var radius: CGFloat {
        return (self.frame.width / 2) * CGFloat(0.75)
    }

    var rotationAnimation: CABasicAnimation = {
        var tempRotation = CABasicAnimation(keyPath: "transform.rotation")
        tempRotation.repeatCount = .infinity
        tempRotation.fromValue = 0
        tempRotation.toValue = 1
        tempRotation.isCumulative = true
        tempRotation.duration = duration
        return tempRotation
        }()

    override func notifyViewRedesigned() {
        super.notifyViewRedesigned()

        arcLayer.strokeColor = foreground.cgColor
        backgroundCircle.strokeColor = foreground.withAlphaComponent(0.4).cgColor

        backgroundCircle.lineWidth = self.strokeWidth
        arcLayer.lineWidth = strokeWidth
        rotationAnimation.toValue = clockWise ? -1 : 1

        let arcPath = NSBezierPath()
        let endAngle: CGFloat = CGFloat(-360) * CGFloat(arcLength) / 100
        arcPath.appendArc(withCenter: self.bounds.mid, radius: radius, startAngle: 0, endAngle: endAngle, clockwise: true)

        arcLayer.path = arcPath.CGPath
    }

    override func configureLayers() {
        super.configureLayers()
        let rect = self.bounds

        // Add background Circle
        do {
            backgroundCircle.frame = rect
            backgroundCircle.lineWidth = strokeWidth

            backgroundCircle.strokeColor = foreground.withAlphaComponent(0.5).cgColor
            backgroundCircle.fillColor = NSColor.clear.cgColor
            let backgroundPath = NSBezierPath()
            backgroundPath.appendArc(withCenter: rect.mid, radius: radius, startAngle: 0, endAngle: 360)
            backgroundCircle.path = backgroundPath.CGPath
            self.layer?.addSublayer(backgroundCircle)
        }

        // Arc Layer
        do {
            arcLayer.fillColor = NSColor.clear.cgColor
            arcLayer.lineWidth = strokeWidth

            arcLayer.frame = rect
            arcLayer.strokeColor = foreground.cgColor
            self.layer?.addSublayer(arcLayer)
        }
    }

    override func startAnimation() {
        arcLayer.add(rotationAnimation, forKey: "")
    }

    override func stopAnimation() {
        arcLayer.removeAllAnimations()
    }
}


================================================
FILE: InDeterminate/ShootingStars.swift
================================================
//
//  ShootingStars.swift
//  ProgressKit
//
//  Created by Kauntey Suryawanshi on 09/07/15.
//  Copyright (c) 2015 Kauntey Suryawanshi. All rights reserved.
//

import Foundation
import Cocoa

@IBDesignable
open class ShootingStars: IndeterminateAnimation {
    fileprivate let animationDuration = 1.0

    var starLayer1 = CAShapeLayer()
    var starLayer2 = CAShapeLayer()
    var animation = CABasicAnimation(keyPath: "position.x")
    var tempAnimation = CABasicAnimation(keyPath: "position.x")

    override func notifyViewRedesigned() {
        super.notifyViewRedesigned()
        starLayer1.backgroundColor = foreground.cgColor
        starLayer2.backgroundColor = foreground.cgColor
    }

    override func configureLayers() {
        super.configureLayers()

        let rect = self.bounds
        let dimension = rect.height
        let starWidth = dimension * 1.5
        
        self.layer?.cornerRadius = 0

        /// Add Stars
        do {
            starLayer1.position = CGPoint(x: dimension / 2, y: dimension / 2)
            starLayer1.bounds.size = CGSize(width: starWidth, height: dimension)
            starLayer1.backgroundColor = foreground.cgColor
            self.layer?.addSublayer(starLayer1)
            
            starLayer2.position = CGPoint(x: rect.midX, y: dimension / 2)
            starLayer2.bounds.size = CGSize(width: starWidth, height: dimension)
            starLayer2.backgroundColor = foreground.cgColor
            self.layer?.addSublayer(starLayer2)
        }
        
        /// Add default animation
        do {
            animation.fromValue = -dimension
            animation.toValue = rect.width * 0.9
            animation.duration = animationDuration
            animation.timingFunction = CAMediaTimingFunction(name: .easeIn)
            animation.isRemovedOnCompletion = false
            animation.repeatCount = .infinity
        }
        
        /** Temp animation will be removed after first animation
            After finishing it will invoke animationDidStop and starLayer2 is also given default animation.
        The purpose of temp animation is to generate an temporary offset
        */
        tempAnimation.fromValue = rect.midX
        tempAnimation.toValue = rect.width
        tempAnimation.delegate = self
        tempAnimation.duration = animationDuration / 2
        tempAnimation.timingFunction = CAMediaTimingFunction(name: .easeIn)
    }

    //MARK: Indeterminable protocol
    override func startAnimation() {
        starLayer1.add(animation, forKey: "default")
        starLayer2.add(tempAnimation, forKey: "tempAnimation")
    }
    
    override func stopAnimation() {
        starLayer1.removeAllAnimations()
        starLayer2.removeAllAnimations()
    }
}

extension ShootingStars: CAAnimationDelegate {
    open func animationDidStop(_ anim: CAAnimation, finished flag: Bool) {
        starLayer2.add(animation, forKey: "default")
    }
}


================================================
FILE: InDeterminate/Spinner.swift
================================================
//
//  Spinner.swift
//  ProgressKit
//
//  Created by Kauntey Suryawanshi on 28/07/15.
//  Copyright (c) 2015 Kauntey Suryawanshi. All rights reserved.
//

import Foundation
import Cocoa

@IBDesignable
open class Spinner: IndeterminateAnimation {
    
    var basicShape = CAShapeLayer()
    var containerLayer = CAShapeLayer()
    var starList = [CAShapeLayer]()
    
    var animation: CAKeyframeAnimation = {
        var animation = CAKeyframeAnimation(keyPath: "transform.rotation")
        animation.repeatCount = .infinity
        animation.calculationMode = .discrete
        return animation
        }()

    @IBInspectable open var starSize:CGSize = CGSize(width: 6, height: 15) {
        didSet {
            notifyViewRedesigned()
        }
    }

    @IBInspectable open var roundedCorners: Bool = true {
        didSet {
            notifyViewRedesigned()
        }
    }

    
    @IBInspectable open var distance: CGFloat = CGFloat(20) {
        didSet {
            notifyViewRedesigned()
        }
    }

    @IBInspectable open var starCount: Int = 10 {
        didSet {
            notifyViewRedesigned()
        }
    }

    @IBInspectable open var duration: Double = 1 {
        didSet {
            animation.duration = duration
        }
    }

    @IBInspectable open var clockwise: Bool = false {
        didSet {
            notifyViewRedesigned()
        }
    }

    override func configureLayers() {
        super.configureLayers()

        containerLayer.frame = self.bounds
        containerLayer.cornerRadius = frame.width / 2
        self.layer?.addSublayer(containerLayer)
        
        animation.duration = duration
    }
    
    override func notifyViewRedesigned() {
        super.notifyViewRedesigned()
        starList.removeAll(keepingCapacity: true)
        containerLayer.sublayers = nil
        animation.values = [Double]()
        var i = 0.0
        while i < 360 {
            var iRadian = CGFloat(i * Double.pi / 180.0)
            if clockwise { iRadian = -iRadian }

            animation.values?.append(iRadian)
            let starShape = CAShapeLayer()
            starShape.cornerRadius = roundedCorners ? starSize.width / 2 : 0

            let centerLocation = CGPoint(x: frame.width / 2 - starSize.width / 2, y: frame.width / 2 - starSize.height / 2)

            starShape.frame = CGRect(origin: centerLocation, size: starSize)

            starShape.backgroundColor = foreground.cgColor
            starShape.anchorPoint = CGPoint(x: 0.5, y: 0)

            var  rotation: CATransform3D = CATransform3DMakeTranslation(0, 0, 0.0);

            rotation = CATransform3DRotate(rotation, -iRadian, 0.0, 0.0, 1.0);
            rotation = CATransform3DTranslate(rotation, 0, distance, 0.0);
            starShape.transform = rotation

            starShape.opacity = Float(360 - i) / 360
            containerLayer.addSublayer(starShape)
            starList.append(starShape)
            i = i + Double(360 / starCount)
        }
    }

    override func startAnimation() {
        containerLayer.add(animation, forKey: "rotation")
    }
    
    override func stopAnimation() {
        containerLayer.removeAllAnimations()
    }
}


================================================
FILE: LICENSE
================================================
The MIT License (MIT)

Copyright (c) 2015 Kaunteya Suryawanshi

Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.



================================================
FILE: ProgressKit/AppDelegate.swift
================================================
//
//  AppDelegate.swift
//  ProgressKit
//
//  Created by Kauntey Suryawanshi on 30/06/15.
//  Copyright (c) 2015 Kauntey Suryawanshi. All rights reserved.
//

import Cocoa

@NSApplicationMain
class AppDelegate: NSObject, NSApplicationDelegate {

    func applicationDidFinishLaunching(_ aNotification: Notification) {
        // Insert code here to initialize your application
    }

    func applicationShouldTerminateAfterLastWindowClosed(_ sender: NSApplication) -> Bool {
        return true
    }

}


================================================
FILE: ProgressKit/Base.lproj/Main.storyboard
================================================
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<document type="com.apple.InterfaceBuilder3.Cocoa.Storyboard.XIB" version="3.0" toolsVersion="11198.2" systemVersion="15G31" targetRuntime="MacOSX.Cocoa" propertyAccessControl="none" useAutolayout="YES" initialViewController="B8D-0N-5wS">
    <dependencies>
        <plugIn identifier="com.apple.InterfaceBuilder.CocoaPlugin" version="11198.2"/>
    </dependencies>
    <scenes>
        <!--Application-->
        <scene sceneID="JPo-4y-FX3">
            <objects>
                <application id="hnw-xV-0zn" sceneMemberID="viewController">
                    <menu key="mainMenu" title="Main Menu" systemMenu="main" id="AYu-sK-qS6">
                        <items>
                            <menuItem title="ProgressKit" id="1Xt-HY-uBw">
                                <modifierMask key="keyEquivalentModifierMask"/>
                                <menu key="submenu" title="ProgressKit" systemMenu="apple" id="uQy-DD-JDr">
                                    <items>
                                        <menuItem title="About ProgressKit" id="5kV-Vb-QxS">
                                            <modifierMask key="keyEquivalentModifierMask"/>
                                            <connections>
                                                <action selector="orderFrontStandardAboutPanel:" target="Ady-hI-5gd" id="Exp-CZ-Vem"/>
                                            </connections>
                                        </menuItem>
                                        <menuItem isSeparatorItem="YES" id="VOq-y0-SEH"/>
                                        <menuItem title="Preferences…" keyEquivalent="," id="BOF-NM-1cW"/>
                                        <menuItem isSeparatorItem="YES" id="wFC-TO-SCJ"/>
                                        <menuItem title="Services" id="NMo-om-nkz">
                                            <modifierMask key="keyEquivalentModifierMask"/>
                                            <menu key="submenu" title="Services" systemMenu="services" id="hz9-B4-Xy5"/>
                                        </menuItem>
                                        <menuItem isSeparatorItem="YES" id="4je-JR-u6R"/>
                                        <menuItem title="Hide ProgressKit" keyEquivalent="h" id="Olw-nP-bQN">
                                            <connections>
                                                <action selector="hide:" target="Ady-hI-5gd" id="PnN-Uc-m68"/>
                                            </connections>
                                        </menuItem>
                                        <menuItem title="Hide Others" keyEquivalent="h" id="Vdr-fp-XzO">
                                            <modifierMask key="keyEquivalentModifierMask" option="YES" command="YES"/>
                                            <connections>
                                                <action selector="hideOtherApplications:" target="Ady-hI-5gd" id="VT4-aY-XCT"/>
                                            </connections>
                                        </menuItem>
                                        <menuItem title="Show All" id="Kd2-mp-pUS">
                                            <modifierMask key="keyEquivalentModifierMask"/>
                                            <connections>
                                                <action selector="unhideAllApplications:" target="Ady-hI-5gd" id="Dhg-Le-xox"/>
                                            </connections>
                                        </menuItem>
                                        <menuItem isSeparatorItem="YES" id="kCx-OE-vgT"/>
                                        <menuItem title="Quit ProgressKit" keyEquivalent="q" id="4sb-4s-VLi">
                                            <connections>
                                                <action selector="terminate:" target="Ady-hI-5gd" id="Te7-pn-YzF"/>
                                            </connections>
                                        </menuItem>
                                    </items>
                                </menu>
                            </menuItem>
                            <menuItem title="File" id="dMs-cI-mzQ">
                                <modifierMask key="keyEquivalentModifierMask"/>
                                <menu key="submenu" title="File" id="bib-Uj-vzu">
                                    <items>
                                        <menuItem title="New" keyEquivalent="n" id="Was-JA-tGl">
                                            <connections>
                                                <action selector="newDocument:" target="Ady-hI-5gd" id="4Si-XN-c54"/>
                                            </connections>
                                        </menuItem>
                                        <menuItem title="Open…" keyEquivalent="o" id="IAo-SY-fd9">
                                            <connections>
                                                <action selector="openDocument:" target="Ady-hI-5gd" id="bVn-NM-KNZ"/>
                                            </connections>
                                        </menuItem>
                                        <menuItem title="Open Recent" id="tXI-mr-wws">
                                            <modifierMask key="keyEquivalentModifierMask"/>
                                            <menu key="submenu" title="Open Recent" systemMenu="recentDocuments" id="oas-Oc-fiZ">
                                                <items>
                                                    <menuItem title="Clear Menu" id="vNY-rz-j42">
                                                        <modifierMask key="keyEquivalentModifierMask"/>
                                                        <connections>
                                                            <action selector="clearRecentDocuments:" target="Ady-hI-5gd" id="Daa-9d-B3U"/>
                                                        </connections>
                                                    </menuItem>
                                                </items>
                                            </menu>
                                        </menuItem>
                                        <menuItem isSeparatorItem="YES" id="m54-Is-iLE"/>
                                        <menuItem title="Close" keyEquivalent="w" id="DVo-aG-piG">
                                            <connections>
                                                <action selector="performClose:" target="Ady-hI-5gd" id="HmO-Ls-i7Q"/>
                                            </connections>
                                        </menuItem>
                                        <menuItem title="Save…" keyEquivalent="s" id="pxx-59-PXV">
                                            <connections>
                                                <action selector="saveDocument:" target="Ady-hI-5gd" id="teZ-XB-qJY"/>
                                            </connections>
                                        </menuItem>
                                        <menuItem title="Save As…" keyEquivalent="S" id="Bw7-FT-i3A">
                                            <connections>
                                                <action selector="saveDocumentAs:" target="Ady-hI-5gd" id="mDf-zr-I0C"/>
                                            </connections>
                                        </menuItem>
                                        <menuItem title="Revert to Saved" id="KaW-ft-85H">
                                            <modifierMask key="keyEquivalentModifierMask"/>
                                            <connections>
                                                <action selector="revertDocumentToSaved:" target="Ady-hI-5gd" id="iJ3-Pv-kwq"/>
                                            </connections>
                                        </menuItem>
                                        <menuItem isSeparatorItem="YES" id="aJh-i4-bef"/>
                                        <menuItem title="Page Setup…" keyEquivalent="P" id="qIS-W8-SiK">
                                            <modifierMask key="keyEquivalentModifierMask" shift="YES" command="YES"/>
                                            <connections>
                                                <action selector="runPageLayout:" target="Ady-hI-5gd" id="Din-rz-gC5"/>
                                            </connections>
                                        </menuItem>
                                        <menuItem title="Print…" keyEquivalent="p" id="aTl-1u-JFS">
                                            <connections>
                                                <action selector="print:" target="Ady-hI-5gd" id="qaZ-4w-aoO"/>
                                            </connections>
                                        </menuItem>
                                    </items>
                                </menu>
                            </menuItem>
                            <menuItem title="Edit" id="5QF-Oa-p0T">
                                <modifierMask key="keyEquivalentModifierMask"/>
                                <menu key="submenu" title="Edit" id="W48-6f-4Dl">
                                    <items>
                                        <menuItem title="Undo" keyEquivalent="z" id="dRJ-4n-Yzg">
                                            <connections>
                                                <action selector="undo:" target="Ady-hI-5gd" id="M6e-cu-g7V"/>
                                            </connections>
                                        </menuItem>
                                        <menuItem title="Redo" keyEquivalent="Z" id="6dh-zS-Vam">
                                            <connections>
                                                <action selector="redo:" target="Ady-hI-5gd" id="oIA-Rs-6OD"/>
                                            </connections>
                                        </menuItem>
                                        <menuItem isSeparatorItem="YES" id="WRV-NI-Exz"/>
                                        <menuItem title="Cut" keyEquivalent="x" id="uRl-iY-unG">
                                            <connections>
                                                <action selector="cut:" target="Ady-hI-5gd" id="YJe-68-I9s"/>
                                            </connections>
                                        </menuItem>
                                        <menuItem title="Copy" keyEquivalent="c" id="x3v-GG-iWU">
                                            <connections>
                                                <action selector="copy:" target="Ady-hI-5gd" id="G1f-GL-Joy"/>
                                            </connections>
                                        </menuItem>
                                        <menuItem title="Paste" keyEquivalent="v" id="gVA-U4-sdL">
                                            <connections>
                                                <action selector="paste:" target="Ady-hI-5gd" id="UvS-8e-Qdg"/>
                                            </connections>
                                        </menuItem>
                                        <menuItem title="Paste and Match Style" keyEquivalent="V" id="WeT-3V-zwk">
                                            <modifierMask key="keyEquivalentModifierMask" option="YES" command="YES"/>
                                            <connections>
                                                <action selector="pasteAsPlainText:" target="Ady-hI-5gd" id="cEh-KX-wJQ"/>
                                            </connections>
                                        </menuItem>
                                        <menuItem title="Delete" id="pa3-QI-u2k">
                                            <modifierMask key="keyEquivalentModifierMask"/>
                                            <connections>
                                                <action selector="delete:" target="Ady-hI-5gd" id="0Mk-Ml-PaM"/>
                                            </connections>
                                        </menuItem>
                                        <menuItem title="Select All" keyEquivalent="a" id="Ruw-6m-B2m">
                                            <connections>
                                                <action selector="selectAll:" target="Ady-hI-5gd" id="VNm-Mi-diN"/>
                                            </connections>
                                        </menuItem>
                                        <menuItem isSeparatorItem="YES" id="uyl-h8-XO2"/>
                                        <menuItem title="Find" id="4EN-yA-p0u">
                                            <modifierMask key="keyEquivalentModifierMask"/>
                                            <menu key="submenu" title="Find" id="1b7-l0-nxx">
                                                <items>
                                                    <menuItem title="Find…" tag="1" keyEquivalent="f" id="Xz5-n4-O0W">
                                                        <connections>
                                                            <action selector="performFindPanelAction:" target="Ady-hI-5gd" id="cD7-Qs-BN4"/>
                                                        </connections>
                                                    </menuItem>
                                                    <menuItem title="Find and Replace…" tag="12" keyEquivalent="f" id="YEy-JH-Tfz">
                                                        <modifierMask key="keyEquivalentModifierMask" option="YES" command="YES"/>
                                                        <connections>
                                                            <action selector="performFindPanelAction:" target="Ady-hI-5gd" id="WD3-Gg-5AJ"/>
                                                        </connections>
                                                    </menuItem>
                                                    <menuItem title="Find Next" tag="2" keyEquivalent="g" id="q09-fT-Sye">
                                                        <connections>
                                                            <action selector="performFindPanelAction:" target="Ady-hI-5gd" id="NDo-RZ-v9R"/>
                                                        </connections>
                                                    </menuItem>
                                                    <menuItem title="Find Previous" tag="3" keyEquivalent="G" id="OwM-mh-QMV">
                                                        <connections>
                                                            <action selector="performFindPanelAction:" target="Ady-hI-5gd" id="HOh-sY-3ay"/>
                                                        </connections>
                                                    </menuItem>
                                                    <menuItem title="Use Selection for Find" tag="7" keyEquivalent="e" id="buJ-ug-pKt">
                                                        <connections>
                                                            <action selector="performFindPanelAction:" target="Ady-hI-5gd" id="U76-nv-p5D"/>
                                                        </connections>
                                                    </menuItem>
                                                    <menuItem title="Jump to Selection" keyEquivalent="j" id="S0p-oC-mLd">
                                                        <connections>
                                                            <action selector="centerSelectionInVisibleArea:" target="Ady-hI-5gd" id="IOG-6D-g5B"/>
                                                        </connections>
                                                    </menuItem>
                                                </items>
                                            </menu>
                                        </menuItem>
                                        <menuItem title="Spelling and Grammar" id="Dv1-io-Yv7">
                                            <modifierMask key="keyEquivalentModifierMask"/>
                                            <menu key="submenu" title="Spelling" id="3IN-sU-3Bg">
                                                <items>
                                                    <menuItem title="Show Spelling and Grammar" keyEquivalent=":" id="HFo-cy-zxI">
                                                        <connections>
                                                            <action selector="showGuessPanel:" target="Ady-hI-5gd" id="vFj-Ks-hy3"/>
                                                        </connections>
                                                    </menuItem>
                                                    <menuItem title="Check Document Now" keyEquivalent=";" id="hz2-CU-CR7">
                                                        <connections>
                                                            <action selector="checkSpelling:" target="Ady-hI-5gd" id="fz7-VC-reM"/>
                                                        </connections>
                                                    </menuItem>
                                                    <menuItem isSeparatorItem="YES" id="bNw-od-mp5"/>
                                                    <menuItem title="Check Spelling While Typing" id="rbD-Rh-wIN">
                                                        <modifierMask key="keyEquivalentModifierMask"/>
                                                        <connections>
                                                            <action selector="toggleContinuousSpellChecking:" target="Ady-hI-5gd" id="7w6-Qz-0kB"/>
                                                        </connections>
                                                    </menuItem>
                                                    <menuItem title="Check Grammar With Spelling" id="mK6-2p-4JG">
                                                        <modifierMask key="keyEquivalentModifierMask"/>
                                                        <connections>
                                                            <action selector="toggleGrammarChecking:" target="Ady-hI-5gd" id="muD-Qn-j4w"/>
                                                        </connections>
                                                    </menuItem>
                                                    <menuItem title="Correct Spelling Automatically" id="78Y-hA-62v">
                                                        <modifierMask key="keyEquivalentModifierMask"/>
                                                        <connections>
                                                            <action selector="toggleAutomaticSpellingCorrection:" target="Ady-hI-5gd" id="2lM-Qi-WAP"/>
                                                        </connections>
                                                    </menuItem>
                                                </items>
                                            </menu>
                                        </menuItem>
                                        <menuItem title="Substitutions" id="9ic-FL-obx">
                                            <modifierMask key="keyEquivalentModifierMask"/>
                                            <menu key="submenu" title="Substitutions" id="FeM-D8-WVr">
                                                <items>
                                                    <menuItem title="Show Substitutions" id="z6F-FW-3nz">
                                                        <modifierMask key="keyEquivalentModifierMask"/>
                                                        <connections>
                                                            <action selector="orderFrontSubstitutionsPanel:" target="Ady-hI-5gd" id="oku-mr-iSq"/>
                                                        </connections>
                                                    </menuItem>
                                                    <menuItem isSeparatorItem="YES" id="gPx-C9-uUO"/>
                                                    <menuItem title="Smart Copy/Paste" id="9yt-4B-nSM">
                                                        <modifierMask key="keyEquivalentModifierMask"/>
                                                        <connections>
                                                            <action selector="toggleSmartInsertDelete:" target="Ady-hI-5gd" id="3IJ-Se-DZD"/>
                                                        </connections>
                                                    </menuItem>
                                                    <menuItem title="Smart Quotes" id="hQb-2v-fYv">
                                                        <modifierMask key="keyEquivalentModifierMask"/>
                                                        <connections>
                                                            <action selector="toggleAutomaticQuoteSubstitution:" target="Ady-hI-5gd" id="ptq-xd-QOA"/>
                                                        </connections>
                                                    </menuItem>
                                                    <menuItem title="Smart Dashes" id="rgM-f4-ycn">
                                                        <modifierMask key="keyEquivalentModifierMask"/>
                                                        <connections>
                                                            <action selector="toggleAutomaticDashSubstitution:" target="Ady-hI-5gd" id="oCt-pO-9gS"/>
                                                        </connections>
                                                    </menuItem>
                                                    <menuItem title="Smart Links" id="cwL-P1-jid">
                                                        <modifierMask key="keyEquivalentModifierMask"/>
                                                        <connections>
                                                            <action selector="toggleAutomaticLinkDetection:" target="Ady-hI-5gd" id="Gip-E3-Fov"/>
                                                        </connections>
                                                    </menuItem>
                                                    <menuItem title="Data Detectors" id="tRr-pd-1PS">
                                                        <modifierMask key="keyEquivalentModifierMask"/>
                                                        <connections>
                                                            <action selector="toggleAutomaticDataDetection:" target="Ady-hI-5gd" id="R1I-Nq-Kbl"/>
                                                        </connections>
                                                    </menuItem>
                                                    <menuItem title="Text Replacement" id="HFQ-gK-NFA">
                                                        <modifierMask key="keyEquivalentModifierMask"/>
                                                        <connections>
                                                            <action selector="toggleAutomaticTextReplacement:" target="Ady-hI-5gd" id="DvP-Fe-Py6"/>
                                                        </connections>
                                                    </menuItem>
                                                </items>
                                            </menu>
                                        </menuItem>
                                        <menuItem title="Transformations" id="2oI-Rn-ZJC">
                                            <modifierMask key="keyEquivalentModifierMask"/>
                                            <menu key="submenu" title="Transformations" id="c8a-y6-VQd">
                                                <items>
                                                    <menuItem title="Make Upper Case" id="vmV-6d-7jI">
                                                        <modifierMask key="keyEquivalentModifierMask"/>
                                                        <connections>
                                                            <action selector="uppercaseWord:" target="Ady-hI-5gd" id="sPh-Tk-edu"/>
                                                        </connections>
                                                    </menuItem>
                                                    <menuItem title="Make Lower Case" id="d9M-CD-aMd">
                                                        <modifierMask key="keyEquivalentModifierMask"/>
                                                        <connections>
                                                            <action selector="lowercaseWord:" target="Ady-hI-5gd" id="iUZ-b5-hil"/>
                                                        </connections>
                                                    </menuItem>
                                                    <menuItem title="Capitalize" id="UEZ-Bs-lqG">
                                                        <modifierMask key="keyEquivalentModifierMask"/>
                                                        <connections>
                                                            <action selector="capitalizeWord:" target="Ady-hI-5gd" id="26H-TL-nsh"/>
                                                        </connections>
                                                    </menuItem>
                                                </items>
                                            </menu>
                                        </menuItem>
                                        <menuItem title="Speech" id="xrE-MZ-jX0">
                                            <modifierMask key="keyEquivalentModifierMask"/>
                                            <menu key="submenu" title="Speech" id="3rS-ZA-NoH">
                                                <items>
                                                    <menuItem title="Start Speaking" id="Ynk-f8-cLZ">
                                                        <modifierMask key="keyEquivalentModifierMask"/>
                                                        <connections>
                                                            <action selector="startSpeaking:" target="Ady-hI-5gd" id="654-Ng-kyl"/>
                                                        </connections>
                                                    </menuItem>
                                                    <menuItem title="Stop Speaking" id="Oyz-dy-DGm">
                                                        <modifierMask key="keyEquivalentModifierMask"/>
                                                        <connections>
                                                            <action selector="stopSpeaking:" target="Ady-hI-5gd" id="dX8-6p-jy9"/>
                                                        </connections>
                                                    </menuItem>
                                                </items>
                                            </menu>
                                        </menuItem>
                                    </items>
                                </menu>
                            </menuItem>
                            <menuItem title="Format" id="jxT-CU-nIS">
                                <modifierMask key="keyEquivalentModifierMask"/>
                                <menu key="submenu" title="Format" id="GEO-Iw-cKr">
                                    <items>
                                        <menuItem title="Font" id="Gi5-1S-RQB">
                                            <modifierMask key="keyEquivalentModifierMask"/>
                                            <menu key="submenu" title="Font" systemMenu="font" id="aXa-aM-Jaq">
                                                <items>
                                                    <menuItem title="Show Fonts" keyEquivalent="t" id="Q5e-8K-NDq"/>
                                                    <menuItem title="Bold" tag="2" keyEquivalent="b" id="GB9-OM-e27"/>
                                                    <menuItem title="Italic" tag="1" keyEquivalent="i" id="Vjx-xi-njq"/>
                                                    <menuItem title="Underline" keyEquivalent="u" id="WRG-CD-K1S">
                                                        <connections>
                                                            <action selector="underline:" target="Ady-hI-5gd" id="FYS-2b-JAY"/>
                                                        </connections>
                                                    </menuItem>
                                                    <menuItem isSeparatorItem="YES" id="5gT-KC-WSO"/>
                                                    <menuItem title="Bigger" tag="3" keyEquivalent="+" id="Ptp-SP-VEL"/>
                                                    <menuItem title="Smaller" tag="4" keyEquivalent="-" id="i1d-Er-qST"/>
                                                    <menuItem isSeparatorItem="YES" id="kx3-Dk-x3B"/>
                                                    <menuItem title="Kern" id="jBQ-r6-VK2">
                                                        <modifierMask key="keyEquivalentModifierMask"/>
                                                        <menu key="submenu" title="Kern" id="tlD-Oa-oAM">
                                                            <items>
                                                                <menuItem title="Use Default" id="GUa-eO-cwY">
                                                                    <modifierMask key="keyEquivalentModifierMask"/>
                                                                    <connections>
                                                                        <action selector="useStandardKerning:" target="Ady-hI-5gd" id="6dk-9l-Ckg"/>
                                                                    </connections>
                                                                </menuItem>
                                                                <menuItem title="Use None" id="cDB-IK-hbR">
                                                                    <modifierMask key="keyEquivalentModifierMask"/>
                                                                    <connections>
                                                                        <action selector="turnOffKerning:" target="Ady-hI-5gd" id="U8a-gz-Maa"/>
                                                                    </connections>
                                                                </menuItem>
                                                                <menuItem title="Tighten" id="46P-cB-AYj">
                                                                    <modifierMask key="keyEquivalentModifierMask"/>
                                                                    <connections>
                                                                        <action selector="tightenKerning:" target="Ady-hI-5gd" id="hr7-Nz-8ro"/>
                                                                    </connections>
                                                                </menuItem>
                                                                <menuItem title="Loosen" id="ogc-rX-tC1">
                                                                    <modifierMask key="keyEquivalentModifierMask"/>
                                                                    <connections>
                                                                        <action selector="loosenKerning:" target="Ady-hI-5gd" id="8i4-f9-FKE"/>
                                                                    </connections>
                                                                </menuItem>
                                                            </items>
                                                        </menu>
                                                    </menuItem>
                                                    <menuItem title="Ligatures" id="o6e-r0-MWq">
                                                        <modifierMask key="keyEquivalentModifierMask"/>
                                                        <menu key="submenu" title="Ligatures" id="w0m-vy-SC9">
                                                            <items>
                                                                <menuItem title="Use Default" id="agt-UL-0e3">
                                                                    <modifierMask key="keyEquivalentModifierMask"/>
                                                                    <connections>
                                                                        <action selector="useStandardLigatures:" target="Ady-hI-5gd" id="7uR-wd-Dx6"/>
                                                                    </connections>
                                                                </menuItem>
                                                                <menuItem title="Use None" id="J7y-lM-qPV">
                                                                    <modifierMask key="keyEquivalentModifierMask"/>
                                                                    <connections>
                                                                        <action selector="turnOffLigatures:" target="Ady-hI-5gd" id="iX2-gA-Ilz"/>
                                                                    </connections>
                                                                </menuItem>
                                                                <menuItem title="Use All" id="xQD-1f-W4t">
                                                                    <modifierMask key="keyEquivalentModifierMask"/>
                                                                    <connections>
                                                                        <action selector="useAllLigatures:" target="Ady-hI-5gd" id="KcB-kA-TuK"/>
                                                                    </connections>
                                                                </menuItem>
                                                            </items>
                                                        </menu>
                                                    </menuItem>
                                                    <menuItem title="Baseline" id="OaQ-X3-Vso">
                                                        <modifierMask key="keyEquivalentModifierMask"/>
                                                        <menu key="submenu" title="Baseline" id="ijk-EB-dga">
                                                            <items>
                                                                <menuItem title="Use Default" id="3Om-Ey-2VK">
                                                                    <modifierMask key="keyEquivalentModifierMask"/>
                                                                    <connections>
                                                                        <action selector="unscript:" target="Ady-hI-5gd" id="0vZ-95-Ywn"/>
                                                                    </connections>
                                                                </menuItem>
                                                                <menuItem title="Superscript" id="Rqc-34-cIF">
                                                                    <modifierMask key="keyEquivalentModifierMask"/>
                                                                    <connections>
                                                                        <action selector="superscript:" target="Ady-hI-5gd" id="3qV-fo-wpU"/>
                                                                    </connections>
                                                                </menuItem>
                                                                <menuItem title="Subscript" id="I0S-gh-46l">
                                                                    <modifierMask key="keyEquivalentModifierMask"/>
                                                                    <connections>
                                                                        <action selector="subscript:" target="Ady-hI-5gd" id="Q6W-4W-IGz"/>
                                                                    </connections>
                                                                </menuItem>
                                                                <menuItem title="Raise" id="2h7-ER-AoG">
                                                                    <modifierMask key="keyEquivalentModifierMask"/>
                                                                    <connections>
                                                                        <action selector="raiseBaseline:" target="Ady-hI-5gd" id="4sk-31-7Q9"/>
                                                                    </connections>
                                                                </menuItem>
                                                                <menuItem title="Lower" id="1tx-W0-xDw">
                                                                    <modifierMask key="keyEquivalentModifierMask"/>
                                                                    <connections>
                                                                        <action selector="lowerBaseline:" target="Ady-hI-5gd" id="OF1-bc-KW4"/>
                                                                    </connections>
                                                                </menuItem>
                                                            </items>
                                                        </menu>
                                                    </menuItem>
                                                    <menuItem isSeparatorItem="YES" id="Ndw-q3-faq"/>
                                                    <menuItem title="Show Colors" keyEquivalent="C" id="bgn-CT-cEk">
                                                        <connections>
                                                            <action selector="orderFrontColorPanel:" target="Ady-hI-5gd" id="mSX-Xz-DV3"/>
                                                        </connections>
                                                    </menuItem>
                                                    <menuItem isSeparatorItem="YES" id="iMs-zA-UFJ"/>
                                                    <menuItem title="Copy Style" keyEquivalent="c" id="5Vv-lz-BsD">
                                                        <modifierMask key="keyEquivalentModifierMask" option="YES" command="YES"/>
                                                        <connections>
                                                            <action selector="copyFont:" target="Ady-hI-5gd" id="GJO-xA-L4q"/>
                                                        </connections>
                                                    </menuItem>
                                                    <menuItem title="Paste Style" keyEquivalent="v" id="vKC-jM-MkH">
                                                        <modifierMask key="keyEquivalentModifierMask" option="YES" command="YES"/>
                                                        <connections>
                                                            <action selector="pasteFont:" target="Ady-hI-5gd" id="JfD-CL-leO"/>
                                                        </connections>
                                                    </menuItem>
                                                </items>
                                            </menu>
                                        </menuItem>
                                        <menuItem title="Text" id="Fal-I4-PZk">
                                            <modifierMask key="keyEquivalentModifierMask"/>
                                            <menu key="submenu" title="Text" id="d9c-me-L2H">
                                                <items>
                                                    <menuItem title="Align Left" keyEquivalent="{" id="ZM1-6Q-yy1">
                                                        <connections>
                                                            <action selector="alignLeft:" target="Ady-hI-5gd" id="zUv-R1-uAa"/>
                                                        </connections>
                                                    </menuItem>
                                                    <menuItem title="Center" keyEquivalent="|" id="VIY-Ag-zcb">
                                                        <connections>
                                                            <action selector="alignCenter:" target="Ady-hI-5gd" id="spX-mk-kcS"/>
                                                        </connections>
                                                    </menuItem>
                                                    <menuItem title="Justify" id="J5U-5w-g23">
                                                        <modifierMask key="keyEquivalentModifierMask"/>
                                                        <connections>
                                                            <action selector="alignJustified:" target="Ady-hI-5gd" id="ljL-7U-jND"/>
                                                        </connections>
                                                    </menuItem>
                                                    <menuItem title="Align Right" keyEquivalent="}" id="wb2-vD-lq4">
                                                        <connections>
                                                            <action selector="alignRight:" target="Ady-hI-5gd" id="r48-bG-YeY"/>
                                                        </connections>
                                                    </menuItem>
                                                    <menuItem isSeparatorItem="YES" id="4s2-GY-VfK"/>
                                                    <menuItem title="Writing Direction" id="H1b-Si-o9J">
                                                        <modifierMask key="keyEquivalentModifierMask"/>
                                                        <menu key="submenu" title="Writing Direction" id="8mr-sm-Yjd">
                                                            <items>
                                                                <menuItem title="Paragraph" enabled="NO" id="ZvO-Gk-QUH">
                                                                    <modifierMask key="keyEquivalentModifierMask"/>
                                                                </menuItem>
                                                                <menuItem id="YGs-j5-SAR">
                                                                    <string key="title">	Default</string>
                                                                    <modifierMask key="keyEquivalentModifierMask"/>
                                                                    <connections>
                                                                        <action selector="makeBaseWritingDirectionNatural:" target="Ady-hI-5gd" id="qtV-5e-UBP"/>
                                                                    </connections>
                                                                </menuItem>
                                                                <menuItem id="Lbh-J2-qVU">
                                                                    <string key="title">	Left to Right</string>
                                                                    <modifierMask key="keyEquivalentModifierMask"/>
                                                                    <connections>
                                                                        <action selector="makeBaseWritingDirectionLeftToRight:" target="Ady-hI-5gd" id="S0X-9S-QSf"/>
                                                                    </connections>
                                                                </menuItem>
                                                                <menuItem id="jFq-tB-4Kx">
                                                                    <string key="title">	Right to Left</string>
                                                                    <modifierMask key="keyEquivalentModifierMask"/>
                                                                    <connections>
                                                                        <action selector="makeBaseWritingDirectionRightToLeft:" target="Ady-hI-5gd" id="5fk-qB-AqJ"/>
                                                                    </connections>
                                                                </menuItem>
                                                                <menuItem isSeparatorItem="YES" id="swp-gr-a21"/>
                                                                <menuItem title="Selection" enabled="NO" id="cqv-fj-IhA">
                                                                    <modifierMask key="keyEquivalentModifierMask"/>
                                                                </menuItem>
                                                                <menuItem id="Nop-cj-93Q">
                                                                    <string key="title">	Default</string>
                                                                    <modifierMask key="keyEquivalentModifierMask"/>
                                                                    <connections>
                                                                        <action selector="makeTextWritingDirectionNatural:" target="Ady-hI-5gd" id="lPI-Se-ZHp"/>
                                                                    </connections>
                                                                </menuItem>
                                                                <menuItem id="BgM-ve-c93">
                                                                    <string key="title">	Left to Right</string>
                                                                    <modifierMask key="keyEquivalentModifierMask"/>
                                                                    <connections>
                                                                        <action selector="makeTextWritingDirectionLeftToRight:" target="Ady-hI-5gd" id="caW-Bv-w94"/>
                                                                    </connections>
                                                                </menuItem>
                                                                <menuItem id="RB4-Sm-HuC">
                                                                    <string key="title">	Right to Left</string>
                                                                    <modifierMask key="keyEquivalentModifierMask"/>
                                                                    <connections>
                                                                        <action selector="makeTextWritingDirectionRightToLeft:" target="Ady-hI-5gd" id="EXD-6r-ZUu"/>
                                                                    </connections>
                                                                </menuItem>
                                                            </items>
                                                        </menu>
                                                    </menuItem>
                                                    <menuItem isSeparatorItem="YES" id="fKy-g9-1gm"/>
                                                    <menuItem title="Show Ruler" id="vLm-3I-IUL">
                                                        <modifierMask key="keyEquivalentModifierMask"/>
                                                        <connections>
                                                            <action selector="toggleRuler:" target="Ady-hI-5gd" id="FOx-HJ-KwY"/>
                                                        </connections>
                                                    </menuItem>
                                                    <menuItem title="Copy Ruler" keyEquivalent="c" id="MkV-Pr-PK5">
                                                        <modifierMask key="keyEquivalentModifierMask" control="YES" command="YES"/>
                                                        <connections>
                                                            <action selector="copyRuler:" target="Ady-hI-5gd" id="71i-fW-3W2"/>
                                                        </connections>
                                                    </menuItem>
                                                    <menuItem title="Paste Ruler" keyEquivalent="v" id="LVM-kO-fVI">
                                                        <modifierMask key="keyEquivalentModifierMask" control="YES" command="YES"/>
                                                        <connections>
                                                            <action selector="pasteRuler:" target="Ady-hI-5gd" id="cSh-wd-qM2"/>
                                                        </connections>
                                                    </menuItem>
                                                </items>
                                            </menu>
                                        </menuItem>
                                    </items>
                                </menu>
                            </menuItem>
                            <menuItem title="View" id="H8h-7b-M4v">
                                <modifierMask key="keyEquivalentModifierMask"/>
                                <menu key="submenu" title="View" id="HyV-fh-RgO">
                                    <items>
                                        <menuItem title="Show Toolbar" keyEquivalent="t" id="snW-S8-Cw5">
                                            <modifierMask key="keyEquivalentModifierMask" option="YES" command="YES"/>
                                            <connections>
                                                <action selector="toggleToolbarShown:" target="Ady-hI-5gd" id="BXY-wc-z0C"/>
                                            </connections>
                                        </menuItem>
                                        <menuItem title="Customize Toolbar…" id="1UK-8n-QPP">
                                            <modifierMask key="keyEquivalentModifierMask"/>
                                            <connections>
                                                <action selector="runToolbarCustomizationPalette:" target="Ady-hI-5gd" id="pQI-g3-MTW"/>
                                            </connections>
                                        </menuItem>
                                    </items>
                                </menu>
                            </menuItem>
                            <menuItem title="Window" id="aUF-d1-5bR">
                                <modifierMask key="keyEquivalentModifierMask"/>
                                <menu key="submenu" title="Window" systemMenu="window" id="Td7-aD-5lo">
                                    <items>
                                        <menuItem title="Minimize" keyEquivalent="m" id="OY7-WF-poV">
                                            <connections>
                                                <action selector="performMiniaturize:" target="Ady-hI-5gd" id="VwT-WD-YPe"/>
                                            </connections>
                                        </menuItem>
                                        <menuItem title="Zoom" keyEquivalent="m" id="R4o-n2-Eq4">
                                            <connections>
                                                <action selector="performZoom:" target="Ady-hI-5gd" id="DIl-cC-cCs"/>
                                            </connections>
                                        </menuItem>
                                        <menuItem isSeparatorItem="YES" id="eu3-7i-yIM"/>
                                        <menuItem title="Bring All to Front" id="LE2-aR-0XJ">
                                            <modifierMask key="keyEquivalentModifierMask"/>
                                            <connections>
                                                <action selector="arrangeInFront:" target="Ady-hI-5gd" id="DRN-fu-gQh"/>
                                            </connections>
                                        </menuItem>
                                    </items>
                                </menu>
                            </menuItem>
                            <menuItem title="Help" id="wpr-3q-Mcd">
                                <modifierMask key="keyEquivalentModifierMask"/>
                                <menu key="submenu" title="Help" systemMenu="help" id="F2S-fz-NVQ">
                                    <items>
                                        <menuItem title="ProgressKit Help" keyEquivalent="?" id="FKE-Sm-Kum">
                                            <connections>
                                                <action selector="showHelp:" target="Ady-hI-5gd" id="y7X-2Q-9no"/>
                                            </connections>
                                        </menuItem>
                                    </items>
                                </menu>
                            </menuItem>
                        </items>
                    </menu>
                    <connections>
                        <outlet property="delegate" destination="Voe-Tx-rLC" id="PrD-fu-P6m"/>
                    </connections>
                </application>
                <customObject id="Voe-Tx-rLC" customClass="AppDelegate" customModule="ProgressKit" customModuleProvider="target"/>
                <customObject id="Ady-hI-5gd" userLabel="First Responder" customClass="NSResponder" sceneMemberID="firstResponder"/>
            </objects>
            <point key="canvasLocation" x="-51" y="-333"/>
        </scene>
        <!--Window Controller-->
        <scene sceneID="R2V-B0-nI4">
            <objects>
                <windowController id="B8D-0N-5wS" sceneMemberID="viewController">
                    <window key="window" title="ProgressKit" allowsToolTipsWhenApplicationIsInactive="NO" autorecalculatesKeyViewLoop="NO" restorable="NO" oneShot="NO" releasedWhenClosed="NO" showsToolbarButton="NO" visibleAtLaunch="NO" animationBehavior="default" id="IQv-IB-iLA">
                        <windowStyleMask key="styleMask" titled="YES" closable="YES" miniaturizable="YES" resizable="YES" unifiedTitleAndToolbar="YES"/>
                        <windowPositionMask key="initialPositionMask" leftStrut="YES" rightStrut="YES" topStrut="YES" bottomStrut="YES"/>
                        <rect key="contentRect" x="196" y="240" width="206" height="54"/>
                        <rect key="screenRect" x="0.0" y="0.0" width="1680" height="1027"/>
                    </window>
                    <connections>
                        <segue destination="GTh-XG-eDn" kind="relationship" relationship="window.shadowedContentViewController" id="ztZ-rM-59J"/>
                    </connections>
                </windowController>
                <customObject id="Oky-zY-oP4" userLabel="First Responder" customClass="NSResponder" sceneMemberID="firstResponder"/>
            </objects>
            <point key="canvasLocation" x="-276" y="-230"/>
        </scene>
        <!--Tab View Controller-->
        <scene sceneID="rXQ-85-vI9">
            <objects>
                <tabViewController selectedTabViewItemIndex="1" id="GTh-XG-eDn" sceneMemberID="viewController">
                    <tabViewItems>
                        <tabViewItem label="Determinate" id="90h-OW-Y1a"/>
                        <tabViewItem label="Indeterminate" id="T4v-4q-PhE"/>
                    </tabViewItems>
                    <tabView key="tabView" focusRingType="none" type="noTabsNoBorder" id="nfr-Au-q0a">
                        <rect key="frame" x="0.0" y="0.0" width="321" height="113"/>
                        <autoresizingMask key="autoresizingMask"/>
                        <font key="font" metaFont="message"/>
                        <tabViewItems/>
                    </tabView>
                    <connections>
                        <segue destination="XfG-lQ-9wD" kind="relationship" relationship="tabItems" id="nlJ-xP-ZKw"/>
                        <segue destination="rgo-kk-Wcf" kind="relationship" relationship="tabItems" id="4Yk-6n-yUT"/>
                    </connections>
                </tabViewController>
                <customObject id="1OV-ck-e09" userLabel="First Responder" customClass="NSResponder" sceneMemberID="firstResponder"/>
            </objects>
            <point key="canvasLocation" x="188" y="-107"/>
        </scene>
        <!--In Determinate View Controller-->
        <scene sceneID="poQ-ev-CZa">
            <objects>
                <viewController id="rgo-kk-Wcf" customClass="InDeterminateViewController" customModule="ProgressKit" customModuleProvider="target" sceneMemberID="viewController">
                    <view key="view" wantsLayer="YES" id="lmx-kT-Si1">
                        <rect key="frame" x="0.0" y="0.0" width="500" height="184"/>
                        <autoresizingMask key="autoresizingMask"/>
                        <subviews>
                            <customView fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="qjG-BT-qLK" customClass="MaterialProgress" customModule="ProgressKit" customModuleProvider="target">
                                <rect key="frame" x="20" y="84" width="80" height="80"/>
                                <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMinY="YES"/>
                            </customView>
                            <button verticalHuggingPriority="750" fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="8Ph-2H-wiR">
                                <rect key="frame" x="59" y="59" width="41" height="17"/>
                                <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMinY="YES"/>
                                <buttonCell key="cell" type="inline" title="More" bezelStyle="inline" alignment="center" borderStyle="border" inset="2" id="lBv-3R-Zg0">
                                    <behavior key="behavior" pushIn="YES" lightByBackground="YES" lightByGray="YES"/>
                                    <font key="font" metaFont="smallSystemBold"/>
                                </buttonCell>
                                <connections>
                                    <segue destination="Y7I-2Q-c7j" kind="popover" popoverAnchorView="8Ph-2H-wiR" popoverBehavior="t" preferredEdge="maxY" id="AC1-VV-XDE"/>
                                </connections>
                            </button>
                            <customView fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="3VR-oT-y2I" customClass="Spinner" customModule="ProgressKit" customModuleProvider="target">
                                <rect key="frame" x="250" y="84" width="80" height="80"/>
                                <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMinY="YES"/>
                                <userDefinedRuntimeAttributes>
                                    <userDefinedRuntimeAttribute type="size" keyPath="starSize">
                                        <size key="value" width="7" height="14"/>
                                    </userDefinedRuntimeAttribute>
                                    <userDefinedRuntimeAttribute type="boolean" keyPath="roundedCorners" value="YES"/>
                                    <userDefinedRuntimeAttribute type="number" keyPath="starCount">
                                        <integer key="value" value="10"/>
                                    </userDefinedRuntimeAttribute>
                                </userDefinedRuntimeAttributes>
                            </customView>
                            <customView fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="haM-Vg-aIY" customClass="Crawler" customModule="ProgressKit" customModuleProvider="target">
                                <rect key="frame" x="129" y="84" width="80" height="80"/>
                                <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMinY="YES"/>
                                <userDefinedRuntimeAttributes>
                                    <userDefinedRuntimeAttribute type="boolean" keyPath="displayAfterAnimationEnds" value="YES"/>
                                </userDefinedRuntimeAttributes>
                            </customView>
                            <button verticalHuggingPriority="750" fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="Npu-8G-HkC">
                                <rect key="frame" x="168" y="59" width="41" height="17"/>
                                <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMinY="YES"/>
                                <buttonCell key="cell" type="inline" title="More" bezelStyle="inline" alignment="center" borderStyle="border" inset="2" id="SqX-Fr-AwH">
                                    <behavior key="behavior" pushIn="YES" lightByBackground="YES" lightByGray="YES"/>
                                    <font key="font" metaFont="smallSystemBold"/>
                                </buttonCell>
                                <connections>
                                    <segue destination="iQ1-7I-gIf" kind="popover" popoverAnchorView="Npu-8G-HkC" popoverBehavior="t" preferredEdge="maxY" id="cHP-vz-pJQ"/>
                                </connections>
                            </button>
                            <customView fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="kmB-H3-AT2" customClass="ShootingStars" customModule="ProgressKit" customModuleProvider="target">
                                <rect key="frame" x="20" y="34" width="438" height="3"/>
                                <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMinY="YES"/>
                                <userDefinedRuntimeAttributes>
                                    <userDefinedRuntimeAttribute type="color" keyPath="foreground">
                                        <color key="value" white="1" alpha="1" colorSpace="calibratedWhite"/>
                                    </userDefinedRuntimeAttribute>
                                    <userDefinedRuntimeAttribute type="number" keyPath="cornerRadius">
                                        <real key="value" value="0.0"/>
                                    </userDefinedRuntimeAttribute>
                                </userDefinedRuntimeAttributes>
                            </customView>
                            <customView fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="NfH-n9-vtu" customClass="ShootingStars" customModule="ProgressKit" customModuleProvider="target">
                                <rect key="frame" x="20" y="11" width="438" height="3"/>
                                <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMinY="YES"/>
                                <shadow key="shadow" blurRadius="1">
                                    <color key="color" red="0.25490197539329529" green="0.63529413938522339" blue="0.87058824300765991" alpha="1" colorSpace="calibratedRGB"/>
                                </shadow>
                                <userDefinedRuntimeAttributes>
                                    <userDefinedRuntimeAttribute type="color" keyPath="foreground">
                                        <color key="value" white="1" alpha="1" colorSpace="calibratedWhite"/>
                                    </userDefinedRuntimeAttribute>
                                    <userDefinedRuntimeAttribute type="number" keyPath="cornerRadius">
                                        <real key="value" value="0.0"/>
                                    </userDefinedRuntimeAttribute>
                                    <userDefinedRuntimeAttribute type="color" keyPath="background">
                                        <color key="value" red="0.25490197539329529" green="0.63529413938522339" blue="0.87058824300765991" alpha="1" colorSpace="calibratedRGB"/>
                                    </userDefinedRuntimeAttribute>
                                </userDefinedRuntimeAttributes>
                            </customView>
                            <button verticalHuggingPriority="750" fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="Q8N-1B-PXN">
                                <rect key="frame" x="289" y="59" width="41" height="17"/>
                                <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMinY="YES"/>
                                <buttonCell key="cell" type="inline" title="More" bezelStyle="inline" alignment="center" controlSize="small" borderStyle="border" inset="2" id="Z8O-Rd-zkL">
                                    <behavior key="behavior" pushIn="YES" lightByBackground="YES" lightByGray="YES"/>
                                    <font key="font" metaFont="smallSystemBold"/>
                                </buttonCell>
                                <connections>
                                    <segue destination="DYk-pp-mvu" kind="popover" popoverAnchorView="Q8N-1B-PXN" popoverBehavior="t" preferredEdge="maxY" id="4W2-kM-ewl"/>
                                </connections>
                            </button>
                            <button verticalHuggingPriority="750" fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="vs0-Bp-9Zv">
                                <rect key="frame" x="422" y="59" width="41" height="17"/>
                                <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMinY="YES"/>
                                <buttonCell key="cell" type="inline" title="More" bezelStyle="inline" alignment="center" controlSize="small" borderStyle="border" inset="2" id="zgh-wl-Oer">
                                    <behavior key="behavior" pushIn="YES" lightByBackground="YES" lightByGray="YES"/>
                                    <font key="font" metaFont="smallSystemBold"/>
                                </buttonCell>
                                <connections>
                                    <segue destination="yv4-ZL-xud" kind="popover" popoverAnchorView="vs0-Bp-9Zv" popoverBehavior="t" preferredEdge="maxY" id="6Tb-kJ-Lhz"/>
                                </connections>
                            </button>
                            <customView fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="lR0-9k-CEu" customClass="RotatingArc" customModule="ProgressKit" customModuleProvider="target">
                                <rect key="frame" x="378" y="84" width="80" height="80"/>
                                <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMinY="YES"/>
                            </customView>
                        </subviews>
                    </view>
                </viewController>
                <customObject id="lcO-Gc-g97" userLabel="First Responder" customClass="NSResponder" sceneMemberID="firstResponder"/>
            </objects>
            <point key="canvasLocation" x="477" y="228"/>
        </scene>
        <!--In Determinate View Controller-->
        <scene sceneID="vp2-ly-Hqp">
            <objects>
                <viewController id="yv4-ZL-xud" customClass="InDeterminateViewController" customModule="ProgressKit" customModuleProvider="target" sceneMemberID="viewController">
                    <view key="view" id="loM-yl-24e">
                        <rect key="frame" x="0.0" y="0.0" width="324" height="220"/>
                        <autoresizingMask key="autoresizingMask"/>
                        <subviews>
                            <customView fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="kmw-BV-WIW" customClass="RotatingArc" customModule="ProgressKit" customModuleProvider="target">
                                <rect key="frame" x="14" y="126" width="80" height="80"/>
                                <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMinY="YES"/>
                                <userDefinedRuntimeAttributes>
                                    <userDefinedRuntimeAttribute type="number" keyPath="strokeWidth">
                                        <real key="value" value="9"/>
                                    </userDefinedRuntimeAttribute>
                                    <userDefinedRuntimeAttribute type="color" keyPath="background">
                                        <color key="value" red="0.78039216995239258" green="0.24705882370471954" blue="0.0078431377187371254" alpha="0.0" colorSpace="calibratedRGB"/>
                                    </userDefinedRuntimeAttribute>
                                </userDefinedRuntimeAttributes>
                            </customView>
                            <customView fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="BN1-ct-TGA" customClass="RotatingArc" customModule="ProgressKit" customModuleProvider="target">
                                <rect key="frame" x="215" y="126" width="80" height="80"/>
                                <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMinY="YES"/>
                                <userDefinedRuntimeAttributes>
                                    <userDefinedRuntimeAttribute type="number" keyPath="arcLength">
                                        <integer key="value" value="75"/>
                                    </userDefinedRuntimeAttribute>
                                    <userDefinedRuntimeAttribute type="number" keyPath="cornerRadius">
                                        <real key="value" value="40"/>
                                    </userDefinedRuntimeAttribute>
                                </userDefinedRuntimeAttributes>
                            </customView>
                            <customView fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="IUA-cq-CIL" customClass="RotatingArc" customModule="ProgressKit" customModuleProvider="target">
                                <rect key="frame" x="20" y="31" width="80" height="80"/>
                                <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMinY="YES"/>
                                <userDefinedRuntimeAttributes>
                                    <userDefinedRuntimeAttribute type="boolean" keyPath="clockWise" value="NO"/>
                                    <userDefinedRuntimeAttribute type="number" keyPath="arcLength">
                                        <integer key="value" value="20"/>
                                    </userDefinedRuntimeAttribute>
                                </userDefinedRuntimeAttributes>
                            </customView>
                            <customView fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="hgU-aF-axh" customClass="RotatingArc" customModule="ProgressKit" customModuleProvider="target">
                                <rect key="frame" x="113" y="126" width="80" height="80"/>
                                <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMinY="YES"/>
                                <userDefinedRuntimeAttributes>
                                    <userDefinedRuntimeAttribute type="color" keyPath="background">
                                        <color key="value" red="0.1647058874" green="0.65882354970000001" blue="0.53333336109999996" alpha="0.0" colorSpace="calibratedRGB"/>
                                    </userDefinedRuntimeAttribute>
                                    <userDefinedRuntimeAttribute type="color" keyPath="foreground">
                                        <color key="value" red="0.90106928350000004" green="0.30634868139999999" blue="0.1696610898" alpha="1" colorSpace="calibratedRGB"/>
                                    </userDefinedRuntimeAttribute>
                                    <userDefinedRuntimeAttribute type="number" keyPath="strokeWidth">
                                        <real key="value" value="2"/>
                                    </userDefinedRuntimeAttribute>
                                </userDefinedRuntimeAttributes>
                            </customView>
                            <customView fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="qTF-Fa-o4i" customClass="RotatingArc" customModule="ProgressKit" customModuleProvider="target">
                                <rect key="frame" x="20" y="31" width="80" height="80"/>
                                <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMinY="YES"/>
                                <userDefinedRuntimeAttributes>
                                    <userDefinedRuntimeAttribute type="color" keyPath="background">
                                        <color key="value" red="0.0" green="0.23137255012989044" blue="0.51372551918029785" alpha="0.0" colorSpace="calibratedRGB"/>
                                    </userDefinedRuntimeAttribute>
                                    <userDefinedRuntimeAttribute type="boolean" keyPath="clockWise" value="YES"/>
                                    <userDefinedRuntimeAttribute type="number" keyPath="arcLength">
                                        <integer key="value" value="20"/>
                                    </userDefinedRuntimeAttribute>
                                </userDefinedRuntimeAttributes>
                            </customView>
                            <customView fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="gqN-0P-V6h" customClass="RotatingArc" customModule="ProgressKit" customModuleProvider="target">
                                <rect key="frame" x="128" y="30" width="80" height="80"/>
                                <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMinY="YES"/>
                                <userDefinedRuntimeAttributes>
                                    <userDefinedRuntimeAttribute type="color" keyPath="background">
                                        <color key="value" red="0.0" green="0.23137255012989044" blue="0.51372551918029785" alpha="0.0" colorSpace="calibratedRGB"/>
                                    </userDefinedRuntimeAttribute>
                                    <userDefinedRuntimeAttribute type="color" keyPath="foreground">
                                        <color key="value" red="0.47450980544090271" green="0.23529411852359772" blue="0.46666666865348816" alpha="1" colorSpace="calibratedRGB"/>
                                    </userDefinedRuntimeAttribute>
                                </userDefinedRuntimeAttributes>
                            </customView>
                            <customView fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="swG-XB-dD9" customClass="RotatingArc" customModule="ProgressKit" customModuleProvider="target">
                                <rect key="frame" x="121" y="23" width="95" height="95"/>
                                <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMinY="YES"/>
                                <userDefinedRuntimeAttributes>
                                    <userDefinedRuntimeAttribute type="color" keyPath="background">
                                        <color key="value" red="0.0" green="0.23137255009999999" blue="0.51372551919999998" alpha="0.0" colorSpace="calibratedRGB"/>
                                    </userDefinedRuntimeAttribute>
                                    <userDefinedRuntimeAttribute type="color" keyPath="foreground">
                                        <color key="value" red="0.47450980539999998" green="0.23529411850000001" blue="0.46666666870000001" alpha="1" colorSpace="calibratedRGB"/>
                                    </userDefinedRuntimeAttribute>
                                    <userDefinedRuntimeAttribute type="number" keyPath="strokeWidth">
                                        <real key="value" value="1"/>
                                    </userDefinedRuntimeAttribute>
                                </userDefinedRuntimeAttributes>
                            </customView>
                            <customView fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="8WU-rT-wd5" customClass="RotatingArc" customModule="ProgressKit" customModuleProvider="target">
                                <rect key="frame" x="138" y="40" width="60" height="60"/>
                                <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMinY="YES"/>
                                <userDefinedRuntimeAttributes>
                                    <userDefinedRuntimeAttribute type="color" keyPath="background">
                                        <color key="value" red="0.0" green="0.23137255009999999" blue="0.51372551919999998" alpha="0.0" colorSpace="calibratedRGB"/>
                                    </userDefinedRuntimeAttribute>
                                    <userDefinedRuntimeAttribute type="color" keyPath="foreground">
                                        <color key="value" red="0.47450980539999998" green="0.23529411850000001" blue="0.46666666870000001" alpha="1" colorSpace="calibratedRGB"/>
                                    </userDefinedRuntimeAttribute>
                                    <userDefinedRuntimeAttribute type="number" keyPath="strokeWidth">
                                        <real key="value" value="3"/>
                                    </userDefinedRuntimeAttribute>
                                </userDefinedRuntimeAttributes>
                            </customView>
                            <customView fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="bfz-P2-8sn" customClass="RotatingArc" customModule="ProgressKit" customModuleProvider="target">
                                <rect key="frame" x="224" y="30" width="80" height="80"/>
                                <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMinY="YES"/>
                                <userDefinedRuntimeAttributes>
                                    <userDefinedRuntimeAttribute type="color" keyPath="background">
                                        <color key="value" red="0.47450980544090271" green="0.23529411852359772" blue="0.46666666865348816" alpha="0.0" colorSpace="calibratedRGB"/>
                                    </userDefinedRuntimeAttribute>
                                    <userDefinedRuntimeAttribute type="color" keyPath="foreground">
                                        <color key="value" red="0.88627451658248901" green="0.40392157435417175" blue="0.0" alpha="1" colorSpace="calibratedRGB"/>
                                    </userDefinedRuntimeAttribute>
                                    <userDefinedRuntimeAttribute type="number" keyPath="strokeWidth">
                                        <real key="value" value="2"/>
                                    </userDefinedRuntimeAttribute>
                                    <userDefinedRuntimeAttribute type="number" keyPath="arcLength">
                                        <integer key="value" value="47"/>
                                    </userDefinedRuntimeAttribute>
                                </userDefinedRuntimeAttributes>
                            </customView>
                            <customView fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="j2W-FJ-v1G" customClass="RotatingArc" customModule="ProgressKit" customModuleProvider="target">
                                <rect key="frame" x="229" y="35" width="70" height="70"/>
                                <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMinY="YES"/>
                                <userDefinedRuntimeAttributes>
                                    <userDefinedRuntimeAttribute type="color" keyPath="background">
                                        <color key="value" red="0.47450980539999998" green="0.23529411850000001" blue="0.46666666870000001" alpha="0.0" colorSpace="calibratedRGB"/>
                                    </userDefinedRuntimeAttribute>
                                    <userDefinedRuntimeAttribute type="color" keyPath="foreground">
                                        <color key="value" red="0.88627451660000001" green="0.40392157439999998" blue="0.0" alpha="1" colorSpace="calibratedRGB"/>
                                    </userDefinedRuntimeAttribute>
                                    <userDefinedRuntimeAttribute type="number" keyPath="strokeWidth">
                                        <real key="value" value="2"/>
                                    </userDefinedRuntimeAttribute>
                                </userDefinedRuntimeAttributes>
                            </customView>
                            <customView fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="bgf-hY-ZRh" customClass="RotatingArc" customModule="ProgressKit" customModuleProvider="target">
                                <rect key="frame" x="234" y="40" width="60" height="60"/>
                                <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMinY="YES"/>
                                <userDefinedRuntimeAttributes>
                                    <userDefinedRuntimeAttribute type="color" keyPath="background">
                                        <color key="value" red="0.47450980539999998" green="0.23529411850000001" blue="0.46666666870000001" alpha="0.0" colorSpace="calibratedRGB"/>
                                    </userDefinedRuntimeAttribute>
                                    <userDefinedRuntimeAttribute type="color" keyPath="foreground">
                                        <color key="value" red="0.88627451660000001" green="0.40392157439999998" blue="0.0" alpha="1" colorSpace="calibratedRGB"/>
                                    </userDefinedRuntimeAttribute>
                                    <userDefinedRuntimeAttribute type="number" keyPath="strokeWidth">
                                        <real key="value" value="2"/>
                                    </userDefinedRuntimeAttribute>
                                    <userDefinedRuntimeAttribute type="number" keyPath="arcLength">
                                        <integer key="value" value="22"/>
                                    </userDefinedRuntimeAttribute>
                                </userDefinedRuntimeAttributes>
                            </customView>
                            <customView fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="RtF-Gh-lRq" customClass="RotatingArc" customModule="ProgressKit" customModuleProvider="target">
                                <rect key="frame" x="239" y="45" width="50" height="50"/>
                                <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMinY="YES"/>
                                <userDefinedRuntimeAttributes>
                                    <userDefinedRuntimeAttribute type="color" keyPath="background">
                                        <color key="value" red="0.47450980539999998" green="0.23529411850000001" blue="0.46666666870000001" alpha="0.0" colorSpace="calibratedRGB"/>
                                    </userDefinedRuntimeAttribute>
                                    <userDefinedRuntimeAttribute type="color" keyPath="foreground">
                                        <color key="value" red="0.88627451660000001" green="0.40392157439999998" blue="0.0" alpha="1" colorSpace="calibratedRGB"/>
                                    </userDefinedRuntimeAttribute>
                                    <userDefinedRuntimeAttribute type="number" keyPath="strokeWidth">
                                        <real key="value" value="2"/>
                                    </userDefinedRuntimeAttribute>
                                    <userDefinedRuntimeAttribute type="number" keyPath="arcLength">
                                        <integer key="value" value="11"/>
                                    </userDefinedRuntimeAttribute>
                                </userDefinedRuntimeAttributes>
                            </customView>
                        </subviews>
                    </view>
                </viewController>
                <customObject id="Aep-y6-iJb" userLabel="First Responder" customClass="NSResponder" sceneMemberID="firstResponder"/>
            </objects>
            <point key="canvasLocation" x="1053" y="221"/>
        </scene>
        <!--In Determinate View Controller-->
        <scene sceneID="A7n-21-b2E">
            <objects>
                <viewController id="Y7I-2Q-c7j" customClass="InDeterminateViewController" customModule="ProgressKit" customModuleProvider="target" sceneMemberID="viewController">
                    <view key="view" id="tpW-6T-RtR">
                        <rect key="frame" x="0.0" y="0.0" width="450" height="180"/>
                        <autoresizingMask key="autoresizingMask"/>
                        <subviews>
                            <customView fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="Qkh-Jc-Yju" customClass="MaterialProgress" customModule="ProgressKit" customModuleProvider="target">
                                <rect key="frame" x="20" y="80" width="80" height="80"/>
                                <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMinY="YES"/>
                                <userDefinedRuntimeAttributes>
                                    <userDefinedRuntimeAttribute type="color" keyPath="background">
                                        <color key="value" red="0.93725490570068359" green="0.92941176891326904" blue="0.92156863212585449" alpha="0.0" colorSpace="calibratedRGB"/>
                                    </userDefinedRuntimeAttribute>
                                    <userDefinedRuntimeAttribute type="number" keyPath="lineWidth">
                                        <real key="value" value="6"/>
                                    </userDefinedRuntimeAttribute>
                                </userDefinedRuntimeAttributes>
                            </customView>
                            <customView fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="lq1-2r-OsR" customClass="MaterialProgress" customModule="ProgressKit" customModuleProvider="target">
                                <rect key="frame" x="235" y="80" width="80" height="80"/>
                                <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMinY="YES"/>
                                <userDefinedRuntimeAttributes>
                                    <userDefinedRuntimeAttribute type="color" keyPath="background">
                                        <color key="value" red="0.13725490868091583" green="0.49019607901573181" blue="0.81568628549575806" alpha="0.57000000000000006" colorSpace="calibratedRGB"/>
                                    </userDefinedRuntimeAttribute>
                                    <userDefinedRuntimeAttribute type="color" keyPath="foreground">
                                        <color key="value" red="0.13725490868091583" green="0.49019607901573181" blue="0.81568628549575806" alpha="1" colorSpace="calibratedRGB"/>
                                    </userDefinedRuntimeAttribute>
                                    <userDefinedRuntimeAttribute type="number" keyPath="lineWidth">
                                        <real key="value" value="6"/>
                                    </userDefinedRuntimeAttribute>
                                    <userDefinedRuntimeAttribute type="number" keyPath="cornerRadius">
                                        <real key="value" value="7"/>
                                    </userDefinedRuntimeAttribute>
                                </userDefinedRuntimeAttributes>
                            </customView>
                            <customView fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="Zv2-cL-kGS" customClass="MaterialProgress" customModule="ProgressKit" customModuleProvider="target">
                                <rect key="frame" x="370" y="102" width="40" height="40"/>
                                <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMinY="YES"/>
                                <userDefinedRuntimeAttributes>
                                    <userDefinedRuntimeAttribute type="color" keyPath="background">
                                        <color key="value" red="0.13725490868091583" green="0.49019607901573181" blue="0.81568628549575806" alpha="0.0" colorSpace="calibratedRGB"/>
                                    </userDefinedRuntimeAttribute>
                                    <userDefinedRuntimeAttribute type="color" keyPath="foreground">
                                        <color key="value" red="0.96470588445663452" green="0.48627451062202454" blue="0.0" alpha="1" colorSpace="calibratedRGB"/>
                                    </userDefinedRuntimeAttribute>
                                    <userDefinedRuntimeAttribute type="number" keyPath="lineWidth">
                                        <real key="value" value="4"/>
                                    </userDefinedRuntimeAttribute>
                                </userDefinedRuntimeAttributes>
                            </customView>
                            <customView fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="BCf-PU-fcx" customClass="MaterialProgress" customModule="ProgressKit" customModuleProvider="target">
                                <rect key="frame" x="123" y="80" width="80" height="80"/>
                                <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMinY="YES"/>
                                <userDefinedRuntimeAttributes>
                                    <userDefinedRuntimeAttribute type="number" keyPath="cornerRadius">
                                        <real key="value" value="40"/>
                                    </userDefinedRuntimeAttribute>
                                </userDefinedRuntimeAttributes>
                            </customView>
                            <customView fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="Rp1-na-hhA" customClass="Rainbow" customModule="ProgressKit" customModuleProvider="target">
                                <rect key="frame" x="20" y="0.0" width="80" height="80"/>
                                <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMinY="YES"/>
                            </customView>
                            <customView fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="Gyx-mO-3Yh" customClass="Rainbow" customModule="ProgressKit" customModuleProvider="target">
                                <rect key="frame" x="123" y="0.0" width="80" height="80"/>
                                <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMinY="YES"/>
                                <userDefinedRuntimeAttributes>
                                    <userDefinedRuntimeAttribute type="boolean" keyPath="onLightOffDark" value="YES"/>
                                    <userDefinedRuntimeAttribute type="number" keyPath="lineWidth">
                                        <real key="value" value="6"/>
                                    </userDefinedRuntimeAttribute>
                                </userDefinedRuntimeAttributes>
                            </customView>
                        </subviews>
                    </view>
                </viewController>
                <customObject id="qek-pA-X3K" userLabel="First Responder" customClass="NSResponder" sceneMemberID="firstResponder"/>
            </objects>
            <point key="canvasLocation" x="804" y="525"/>
        </scene>
        <!--Determinate View Controller-->
        <scene sceneID="hIz-AP-VOD">
            <objects>
                <viewController id="XfG-lQ-9wD" customClass="DeterminateViewController" customModule="ProgressKit" customModuleProvider="target" sceneMemberID="viewController">
                    <view key="view" id="m2S-Jp-Qdl">
                        <rect key="frame" x="0.0" y="0.0" width="500" height="286"/>
                        <autoresizingMask key="autoresizingMask"/>
                        <subviews>
                            <slider verticalHuggingPriority="750" fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="vwx-DU-bI3">
                                <rect key="frame" x="136" y="264" width="289" height="20"/>
                                <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMinY="YES"/>
                                <sliderCell key="cell" continuous="YES" state="on" alignment="left" maxValue="1" doubleValue="0.29999999999999999" tickMarkPosition="above" sliderType="linear" id="kV7-A8-t5m"/>
                                <connections>
                                    <action selector="sliderDragged:" target="XfG-lQ-9wD" id="mes-ql-pK5"/>
                                </connections>
                            </slider>
                            <button fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="p9y-Jj-cPs">
                                <rect key="frame" x="18" y="266" width="106" height="18"/>
                                <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMinY="YES"/>
                                <buttonCell key="cell" type="check" title="Live Progress" bezelStyle="regularSquare" imagePosition="left" state="on" inset="2" id="Pp0-aX-cfK">
                                    <behavior key="behavior" changeContents="YES" doesNotDimImage="YES" lightByContents="YES"/>
                                    <font key="font" metaFont="system"/>
                                </buttonCell>
                                <connections>
                                    <binding destination="XfG-lQ-9wD" name="value" keyPath="liveProgress" id="HLe-KU-Em3"/>
                                </connections>
                            </button>
                            <textField horizontalHuggingPriority="251" verticalHuggingPriority="750" fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="0tx-N3-gG1">
                                <rect key="frame" x="437" y="265" width="45" height="17"/>
                                <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMinY="YES"/>
                                <textFieldCell key="cell" scrollable="YES" lineBreakMode="clipping" sendsActionOnEndEditing="YES" title="100 %" id="7Nr-gz-yTj">
                                    <font key="font" metaFont="system"/>
                                    <color key="textColor" name="labelColor" catalog="System" colorSpace="catalog"/>
                                    <color key="backgroundColor" name="controlColor" catalog="System" colorSpace="catalog"/>
                                </textFieldCell>
                                <connections>
                                    <binding destination="XfG-lQ-9wD" name="value" keyPath="labelPercentage" id="iOe-WH-Nsd"/>
                                </connections>
                            </textField>
                            <customView fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="fRz-hN-yoj" customClass="ProgressBar" customModule="ProgressKit" customModuleProvider="target">
                                <rect key="frame" x="26" y="45" width="454" height="9"/>
                                <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMinY="YES"/>
                                <userDefinedRuntimeAttributes>
                                    <userDefinedRuntimeAttribute type="color" keyPath="foreground">
                                        <color key="value" red="0.29411765933036804" green="0.22352941334247589" blue="0.5372549295425415" alpha="1" colorSpace="calibratedRGB"/>
                                    </userDefinedRuntimeAttribute>
                                    <userDefinedRuntimeAttribute type="color" keyPath="background">
                                        <color key="value" white="1" alpha="0.0" colorSpace="calibratedWhite"/>
                                    </userDefinedRuntimeAttribute>
                                    <userDefinedRuntimeAttribute type="number" keyPath="progress">
                                        <real key="value" value="0.59999999999999998"/>
                                    </userDefinedRuntimeAttribute>
                                </userDefinedRuntimeAttributes>
                            </customView>
                            <customView fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="ejA-gs-jO8" customClass="ProgressBar" customModule="ProgressKit" customModuleProvider="target">
                                <rect key="frame" x="26" y="91" width="454" height="15"/>
                                <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMinY="YES"/>
                                <userDefinedRuntimeAttributes>
                                    <userDefinedRuntimeAttribute type="number" keyPath="progress">
                                        <real key="value" value="0.34999999999999998"/>
                                    </userDefinedRuntimeAttribute>
                                </userDefinedRuntimeAttributes>
                            </customView>
                            <customView fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="dYN-D7-hBy" customClass="CircularProgressView" customModule="ProgressKit" customModuleProvider="target">
                                <rect key="frame" x="26" y="132" width="101" height="101"/>
                                <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMinY="YES"/>
                                <userDefinedRuntimeAttributes>
                                    <userDefinedRuntimeAttribute type="number" keyPath="progress">
                                        <real key="value" value="0.40999999999999998"/>
                                    </userDefinedRuntimeAttribute>
                                </userDefinedRuntimeAttributes>
                            </customView>
                            <customView fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="S81-p1-vGt" customClass="CircularProgressView" customModule="ProgressKit" customModuleProvider="target">
                                <rect key="frame" x="171" y="150" width="64" height="64"/>
                                <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMinY="YES"/>
                                <userDefinedRuntimeAttributes>
                                    <userDefinedRuntimeAttribute type="color" keyPath="background">
                                        <color key="value" red="0.83921569585800171" green="0.44705882668495178" blue="0.43921568989753723" alpha="1" colorSpace="calibratedRGB"/>
                                    </userDefinedRuntimeAttribute>
                                    <userDefinedRuntimeAttribute type="color" keyPath="foreground">
                                        <color key="value" red="0.29411765933036804" green="0.22352941334247589" blue="0.5372549295425415" alpha="1" colorSpace="calibratedRGB"/>
                                    </userDefinedRuntimeAttribute>
                                    <userDefinedRuntimeAttribute type="number" keyPath="strokeWidth">
                                        <real key="value" value="5"/>
                                    </userDefinedRuntimeAttribute>
                                    <userDefinedRuntimeAttribute type="number" keyPath="progress">
                                        <real key="value" value="0.76000000000000001"/>
                                    </userDefinedRuntimeAttribute>
                                </userDefinedRuntimeAttributes>
                            </customView>
                            <customView fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="Bbh-Em-IM9" customClass="CircularProgressView" customModule="ProgressKit" customModuleProvider="target">
                                <rect key="frame" x="265" y="132" width="101" height="101"/>
                                <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMinY="YES"/>
                                <userDefinedRuntimeAttributes>
                                    <userDefinedRuntimeAttribute type="color" keyPath="background">
                                        <color key="value" white="1" alpha="0.0" colorSpace="calibratedWhite"/>
                                    </userDefinedRuntimeAttribute>
                                    <userDefinedRuntimeAttribute type="number" keyPath="strokeWidth">
                                        <real key="value" value="7"/>
                                    </userDefinedRuntimeAttribute>
                                    <userDefinedRuntimeAttribute type="boolean" keyPath="showPercent" value="NO"/>
                                    <userDefinedRuntimeAttribute type="color" keyPath="foreground">
                                        <color key="value" red="0.070588238537311554" green="0.40392157435417175" blue="0.60392159223556519" alpha="1" colorSpace="calibratedRGB"/>
                                    </userDefinedRuntimeAttribute>
                                    <userDefinedRuntimeAttribute type="number" keyPath="progress">
                                        <real key="value" value="0.37"/>
                                    </userDefinedRuntimeAttribute>
                                </userDefinedRuntimeAttributes>
                            </customView>
                            <customView fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="4q2-PV-rE0" customClass="ProgressBar" customModule="ProgressKit" customModuleProvider="target">
                                <rect key="frame" x="26" y="67" width="454" height="11"/>
                                <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMinY="YES"/>
                                <userDefinedRuntimeAttributes>
                                    <userDefinedRuntimeAttribute type="number" keyPath="progress">
                                        <real key="value" value="0.80000000000000004"/>
                                    </userDefinedRuntimeAttribute>
                                    <userDefinedRuntimeAttribute type="color" keyPath="borderColor">
                                        <color key="value" red="0.92941176891326904" green="0.39215686917304993" blue="0.14509804546833038" alpha="1" colorSpace="calibratedRGB"/>
                                    </userDefinedRuntimeAttribute>
                                    <userDefinedRuntimeAttribute type="color" keyPath="background">
                                        <color key="value" white="0.72216796875" alpha="1" colorSpace="calibratedWhite"/>
                                    </userDefinedRuntimeAttribute>
                                    <userDefinedRuntimeAttribute type="color" keyPath="foreground">
                                        <color key="value" red="0.070588238537311554" green="0.40392157435417175" blue="0.60392159223556519" alpha="1" colorSpace="calibratedRGB"/>
                                    </userDefinedRuntimeAttribute>
                                </userDefinedRuntimeAttributes>
                            </customView>
                        </subviews>
                    </view>
                    <connections>
                        <outlet property="slider" destination="vwx-DU-bI3" id="esn-lC-yUN"/>
                    </connections>
                </viewController>
                <customObject id="rPt-NT-nkU" userLabel="First Responder" customClass="NSResponder" sceneMemberID="firstResponder"/>
            </objects>
            <point key="canvasLocation" x="-151" y="337"/>
        </scene>
        <!--In Determinate View Controller-->
        <scene sceneID="0yA-Up-0Gd">
            <objects>
                <viewController id="DYk-pp-mvu" customClass="InDeterminateViewController" customModule="ProgressKit" customModuleProvider="target" sceneMemberID="viewController">
                    <view key="view" id="pdD-eA-dkI">
                        <rect key="frame" x="0.0" y="0.0" width="450" height="193"/>
                        <autoresizingMask key="autoresizingMask"/>
                        <subviews>
                            <customView fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="X2k-vb-sC9" customClass="Spinner" customModule="ProgressKit" customModuleProvider="target">
                                <rect key="frame" x="20" y="122" width="56" height="56"/>
                                <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMinY="YES"/>
                                <userDefinedRuntimeAttributes>
                                    <userDefinedRuntimeAttribute type="size" keyPath="starSize">
                                        <size key="value" width="7" height="7"/>
                                    </userDefinedRuntimeAttribute>
                                    <userDefinedRuntimeAttribute type="number" keyPath="distance">
                                        <real key="value" value="12"/>
                                    </userDefinedRuntimeAttribute>
                                </userDefinedRuntimeAttributes>
                            </customView>
                            <customView fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="EOH-IG-9v8" customClass="Spinner" customModule="ProgressKit" customModuleProvider="target">
                                <rect key="frame" x="103" y="117" width="67" height="67"/>
                                <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMinY="YES"/>
                                <userDefinedRuntimeAttributes>
                                    <userDefinedRuntimeAttribute type="size" keyPath="starSize">
                                        <size key="value" width="3" height="13"/>
                                    </userDefinedRuntimeAttribute>
                                    <userDefinedRuntimeAttribute type="boolean" keyPath="roundedCorners" value="NO"/>
                                    <userDefinedRuntimeAttribute type="number" keyPath="distance">
                                        <real key="value" value="10"/>
                                    </userDefinedRuntimeAttribute>
                                    <userDefinedRuntimeAttribute type="color" keyPath="foreground">
                                        <color key="value" red="0.78039216995239258" green="0.24705882370471954" blue="0.0078431377187371254" alpha="1" colorSpace="calibratedRGB"/>
                                    </userDefinedRuntimeAttribute>
                                </userDefinedRuntimeAttributes>
                            </customView>
                            <customView fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="xbE-4t-MsT" customClass="Spinner" customModule="ProgressKit" customModuleProvider="target">
                                <rect key="frame" x="198" y="98" width="87" height="87"/>
                                <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMinY="YES"/>
                                <userDefinedRuntimeAttributes>
                                    <userDefinedRuntimeAttribute type="size" keyPath="starSize">
                                        <size key="value" width="8" height="8"/>
                                    </userDefinedRuntimeAttribute>
                                    <userDefinedRuntimeAttribute type="number" keyPath="starCount">
                                        <integer key="value" value="25"/>
                                    </userDefinedRuntimeAttribute>
                                    <userDefinedRuntimeAttribute type="color" keyPath="foreground">
                                        <color key="value" red="0.19215686619281769" green="0.43137255311012268" blue="0.69803923368453979" alpha="1" colorSpace="calibratedRGB"/>
                                    </userDefinedRuntimeAttribute>
                                    <userDefinedRuntimeAttribute type="color" keyPath="background">
                                        <color key="value" red="0.19215686619281769" green="0.43137255311012268" blue="0.69803923368453979" alpha="0.0" colorSpace="calibratedRGB"/>
                                    </userDefinedRuntimeAttribute>
                                </userDefinedRuntimeAttributes>
                            </customView>
                            <customView fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="4re-h9-0B8" customClass="Spinner" customModule="ProgressKit" customModuleProvider="target">
                                <rect key="frame" x="324" y="98" width="87" height="87"/>
                                <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMinY="YES"/>
                                <userDefinedRuntimeAttributes>
                                    <userDefinedRuntimeAttribute type="size" keyPath="starSize">
                                        <size key="value" width="8" height="8"/>
                                    </userDefinedRuntimeAttribute>
                                    <userDefinedRuntimeAttribute type="number" keyPath="starCount">
                                        <integer key="value" value="22"/>
                                    </userDefinedRuntimeAttribute>
                                    <userDefinedRuntimeAttribute type="color" keyPath="background">
                                        <color key="value" red="0.19215686619281769" green="0.43137255311012268" blue="0.69803923368453979" alpha="0.0" colorSpace="calibratedRGB"/>
                                    </userDefinedRuntimeAttribute>
                                    <userDefinedRuntimeAttribute type="color" keyPath="foreground">
                                        <color key="value" red="0.80784314870834351" green="0.13725490868091583" blue="0.29019609093666077" alpha="1" colorSpace="calibratedRGB"/>
                                    </userDefinedRuntimeAttribute>
                                    <userDefinedRuntimeAttribute type="boolean" keyPath="clockwise" value="YES"/>
                                </userDefinedRuntimeAttributes>
                            </customView>
                            <customView fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="cxV-XU-BMs" customClass="Spinner" customModule="ProgressKit" customModuleProvider="target">
                                <rect key="frame" x="324" y="98" width="87" height="87"/>
                                <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMinY="YES"/>
                                <userDefinedRuntimeAttributes>
                                    <userDefinedRuntimeAttribute type="size" keyPath="starSize">
                                        <size key="value" width="8" height="8"/>
                                    </userDefinedRuntimeAttribute>
                                    <userDefinedRuntimeAttribute type="number" keyPath="starCount">
                                        <integer key="value" value="22"/>
                                    </userDefinedRuntimeAttribute>
                                    <userDefinedRuntimeAttribute type="color" keyPath="background">
                                        <color key="value" red="0.1921568662" green="0.4313725531" blue="0.69803923369999998" alpha="0.0" colorSpace="calibratedRGB"/>
                                    </userDefinedRuntimeAttribute>
                                    <userDefinedRuntimeAttribute type="color" keyPath="foreground">
                                        <color key="value" red="0.80784314869999996" green="0.13725490870000001" blue="0.29019609089999998" alpha="1" colorSpace="calibratedRGB"/>
                                    </userDefinedRuntimeAttribute>
                                    <userDefinedRuntimeAttribute type="boolean" keyPath="clockwise" value="NO"/>
                                </userDefinedRuntimeAttributes>
                            </customView>
                            <customView fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="LQW-TQ-ZTf" customClass="Spinner" customModule="ProgressKit" customModuleProvider="target">
                                <rect key="frame" x="198" y="13" width="87" height="87"/>
                                <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMinY="YES"/>
                                <userDefinedRuntimeAttributes>
                                    <userDefinedRuntimeAttribute type="size" keyPath="starSize">
                                        <size key="value" width="8" height="8"/>
                                    </userDefinedRuntimeAttribute>
                                    <userDefinedRuntimeAttribute type="number" keyPath="starCount">
                                        <integer key="value" value="11"/>
                                    </userDefinedRuntimeAttribute>
                                    <userDefinedRuntimeAttribute type="color" keyPath="background">
                                        <color key="value" red="0.1921568662" green="0.4313725531" blue="0.69803923369999998" alpha="0.0" colorSpace="calibratedRGB"/>
                                    </userDefinedRuntimeAttribute>
                                    <userDefinedRuntimeAttribute type="color" keyPath="foreground">
                                        <color key="value" red="0.070588238537311554" green="0.40392157435417175" blue="0.60392159223556519" alpha="1" colorSpace="calibratedRGB"/>
                                    </userDefinedRuntimeAttribute>
                                    <userDefinedRuntimeAttribute type="boolean" keyPath="clockwise" value="NO"/>
                                    <userDefinedRuntimeAttribute type="number" keyPath="distance">
                                        <real key="value" value="21"/>
                                    </userDefinedRuntimeAttribute>
                                </userDefinedRuntimeAttributes>
                            </customView>
                            <customView fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="qCX-xw-cn0" customClass="Spinner" customModule="ProgressKit" customModuleProvider="target">
                                <rect key="frame" x="198" y="13" width="87" height="87"/>
                                <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMinY="YES"/>
                                <userDefinedRuntimeAttributes>
                                    <userDefinedRuntimeAttribute type="size" keyPath="starSize">
                                        <size key="value" width="7" height="7"/>
                                    </userDefinedRuntimeAttribute>
                                    <userDefinedRuntimeAttribute type="number" keyPath="starCount">
                                        <integer key="value" value="11"/>
                                    </userDefinedRuntimeAttribute>
                                    <userDefinedRuntimeAttribute type="color" keyPath="background">
                                        <color key="value" red="0.1921568662" green="0.4313725531" blue="0.69803923369999998" alpha="0.0" colorSpace="calibratedRGB"/>
                                    </userDefinedRuntimeAttribute>
                                    <userDefinedRuntimeAttribute type="color" keyPath="foreground">
                                        <color key="value" red="0.070588238540000001" green="0.40392157439999998" blue="0.60392159219999997" alpha="1" colorSpace="calibratedRGB"/>
                                    </userDefinedRuntimeAttribute>
                                    <userDefinedRuntimeAttribute type="boolean" keyPath="clockwise" value="YES"/>
                                    <userDefinedRuntimeAttribute type="number" keyPath="distance">
                                        <real key="value" value="11"/>
                                    </userDefinedRuntimeAttribute>
                                </userDefinedRuntimeAttributes>
                            </customView>
                            <progressIndicator horizontalHuggingPriority="750" verticalHuggingPriority="750" fixedFrame="YES" maxValue="100" bezeled="NO" indeterminate="YES" controlSize="small" style="spinning" translatesAutoresizingMaskIntoConstraints="NO" id="rV6-J2-9Jn">
                                <rect key="frame" x="20" y="48" width="16" height="16"/>
                                <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMinY="YES"/>
                            </progressIndicator>
                            <customView fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="M0A-06-Wvu" customClass="Spinner" customModule="ProgressKit" customModuleProvider="target">
                                <rect key="frame" x="103" y="23" width="67" height="67"/>
                                <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMinY="YES"/>
                                <userDefinedRuntimeAttributes>
                                    <userDefinedRuntimeAttribute type="size" keyPath="starSize">
                                        <size key="value" width="9" height="6"/>
                                    </userDefinedRuntimeAttribute>
                                    <userDefinedRuntimeAttribute type="boolean" keyPath="roundedCorners" value="NO"/>
                                    <userDefinedRuntimeAttribute type="number" keyPath="distance">
                                        <real key="value" value="16"/>
                                    </userDefinedRuntimeAttribute>
                                    <userDefinedRuntimeAttribute type="color" keyPath="foreground">
                                        <color key="value" red="0.78039217000000005" green="0.24705882370000001" blue="0.0078431377190000002" alpha="1" colorSpace="calibratedRGB"/>
                                    </userDefinedRuntimeAttribute>
                                    <userDefinedRuntimeAttribute type="number" keyPath="starCount">
                                        <integer key="value" value="10"/>
                                    </userDefinedRuntimeAttribute>
                                    <userDefinedRuntimeAttribute type="number" keyPath="duration">
                                        <real key="value" value="2"/>
                                    </userDefinedRuntimeAttribute>
                                </userDefinedRuntimeAttributes>
                            </customView>
                            <customView fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="cRc-hQ-H17" customClass="Spinner" customModule="ProgressKit" customModuleProvider="target">
                                <rect key="frame" x="339" y="28" width="56" height="56"/>
                                <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMinY="YES"/>
                                <userDefinedRuntimeAttributes>
                                    <userDefinedRuntimeAttribute type="size" keyPath="starSize">
                                        <size key="value" width="7" height="7"/>
                                    </userDefinedRuntimeAttribute>
                                    <userDefinedRuntimeAttribute type="number" keyPath="distance">
                                        <real key="value" value="12"/>
                                    </userDefinedRuntimeAttribute>
                                    <userDefinedRuntimeAttribute type="number" keyPath="starCount">
                                        <integer key="value" value="32"/>
                                    </userDefinedRuntimeAttribute>
                                </userDefinedRuntimeAttributes>
                            </customView>
                            <customView fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="sop-qz-vfQ" customClass="Spinner" customModule="ProgressKit" customModuleProvider="target">
                                <rect key="frame" x="58" y="48" width="18" height="18"/>
                                <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMinY="YES"/>
                                <userDefinedRuntimeAttributes>
                                    <userDefinedRuntimeAttribute type="size" keyPath="starSize">
                                        <size key="value" width="2" height="4"/>
                                    </userDefinedRuntimeAttribute>
                                    <userDefinedRuntimeAttribute type="number" keyPath="distance">
                                        <real key="value" value="3"/>
                                    </userDefinedRuntimeAttribute>
                                    <userDefinedRuntimeAttribute type="color" keyPath="background">
                                        <color key="value" red="0.070588238537311554" green="0.40392157435417175" blue="0.60392159223556519" alpha="0.0" colorSpace="calibratedRGB"/>
                                    </userDefinedRuntimeAttribute>
                                    <userDefinedRuntimeAttribute type="color" keyPath="foreground">
                                        <color key="value" white="0.0" alpha="1" colorSpace="calibratedWhite"/>
                                    </userDefinedRuntimeAttribute>
                                    <userDefinedRuntimeAttribute type="boolean" keyPath="roundedCorners" value="NO"/>
                                    <userDefinedRuntimeAttribute type="number" keyPath="starCount">
                                        <integer key="value" value="10"/>
                                    </userDefinedRuntimeAttribute>
                                </userDefinedRuntimeAttributes>
                            </customView>
                        </subviews>
                    </view>
                </viewController>
                <customObject id="aXo-xa-gLk" userLabel="First Responder" customClass="NSResponder" sceneMemberID="firstResponder"/>
            </objects>
            <point key="canvasLocation" x="328" y="518.5"/>
        </scene>
        <!--In Determinate View Controller-->
        <scene sceneID="7yv-As-dUl">
            <objects>
                <viewController id="iQ1-7I-gIf" customClass="InDeterminateViewController" customModule="ProgressKit" customModuleProvider="target" sceneMemberID="viewController">
                    <view key="view" id="JIR-lN-laJ">
                        <rect key="frame" x="0.0" y="0.0" width="447" height="104"/>
                        <autoresizingMask key="autoresizingMask"/>
                        <subviews>
                            <customView fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="4ZV-ge-io4" customClass="Crawler" customModule="ProgressKit" customModuleProvider="target">
                                <rect key="frame" x="12" y="17" width="70" height="70"/>
                                <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMinY="YES"/>
                                <userDefinedRuntimeAttributes>
                                    <userDefinedRuntimeAttribute type="color" keyPath="background">
                                        <color key="value" red="0.96470588445663452" green="0.48627451062202454" blue="0.0" alpha="0.0" colorSpace="calibratedRGB"/>
                                    </userDefinedRuntimeAttribute>
                                    <userDefinedRuntimeAttribute type="color" keyPath="foreground">
                                        <color key="value" red="0.78039216995239258" green="0.24705882370471954" blue="0.0078431377187371254" alpha="1" colorSpace="calibratedRGB"/>
                                    </userDefinedRuntimeAttribute>
                                </userDefinedRuntimeAttributes>
                            </customView>
                            <customView fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="mje-ex-whw" customClass="Crawler" customModule="ProgressKit" customModuleProvider="target">
                                <rect key="frame" x="105" y="17" width="70" height="70"/>
                                <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMinY="YES"/>
                                <userDefinedRuntimeAttributes>
                                    <userDefinedRuntimeAttribute type="number" keyPath="cornerRadius">
                                        <real key="value" value="35"/>
                                    </userDefinedRuntimeAttribute>
                                </userDefinedRuntimeAttributes>
                            </customView>
                            <customView fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="C1d-xS-5EM" customClass="Crawler" customModule="ProgressKit" customModuleProvider="target">
                                <rect key="frame" x="193" y="17" width="70" height="70"/>
                                <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMinY="YES"/>
                                <userDefinedRuntimeAttributes>
                                    <userDefinedRuntimeAttribute type="color" keyPath="background">
                                        <color key="value" red="0.76862746477127075" green="0.25882354378700256" blue="0.27058824896812439" alpha="1" colorSpace="calibratedRGB"/>
                                    </userDefinedRuntimeAttribute>
                                    <userDefinedRuntimeAttribute type="color" keyPath="foreground">
                                        <color key="value" red="0.50980395078659058" green="0.12941177189350128" blue="0.078431375324726105" alpha="1" colorSpace="calibratedRGB"/>
                                    </userDefinedRuntimeAttribute>
                                </userDefinedRuntimeAttributes>
                            </customView>
                            <customView fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="5mj-vA-VO1" customClass="Crawler" customModule="ProgressKit" customModuleProvider="target">
                                <rect key="frame" x="284" y="17" width="70" height="70"/>
                                <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMinY="YES"/>
                                <userDefinedRuntimeAttributes>
                                    <userDefinedRuntimeAttribute type="color" keyPath="background">
                                        <color key="value" white="0.1178155164969595" alpha="0.65000000000000002" colorSpace="calibratedWhite"/>
                                    </userDefinedRuntimeAttribute>
                                    <userDefinedRuntimeAttribute type="color" keyPath="foreground">
                                        <color key="value" white="1" alpha="1" colorSpace="calibratedWhite"/>
                                    </userDefinedRuntimeAttribute>
                                </userDefinedRuntimeAttributes>
                            </customView>
                            <customView fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="GLF-fC-Weh" customClass="Crawler" customModule="ProgressKit" customModuleProvider="target">
                                <rect key="frame" x="369" y="17" width="70" height="70"/>
                                <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMinY="YES"/>
                                <userDefinedRuntimeAttributes>
                                    <userDefinedRuntimeAttribute type="color" keyPath="background">
                                        <color key="value" red="0.46666666865348816" green="0.7137255072593689" blue="0.94901961088180542" alpha="1" colorSpace="calibratedRGB"/>
                                    </userDefinedRuntimeAttribute>
                                    <userDefinedRuntimeAttribute type="color" keyPath="foreground">
                                        <color key="value" red="0.97647058963775635" green="0.70196080207824707" blue="0.0" alpha="1" colorSpace="calibratedRGB"/>
                                    </userDefinedRuntimeAttribute>
                                </userDefinedRuntimeAttributes>
                            </customView>
                        </subviews>
                    </view>
                </viewController>
                <customObject id="puf-Qu-TvG" userLabel="First Responder" customClass="NSResponder" sceneMemberID="firstResponder"/>
            </objects>
            <point key="canvasLocation" x="616.5" y="721"/>
        </scene>
    </scenes>
</document>


================================================
FILE: ProgressKit/Determinate.swift
================================================
//
//  ViewController.swift
//  ProgressKit
//
//  Created by Kauntey Suryawanshi on 30/06/15.
//  Copyright (c) 2015 Kauntey Suryawanshi. All rights reserved.
//

import Cocoa

class DeterminateViewController: NSViewController {

    dynamic var liveProgress: Bool = true
    dynamic var labelPercentage: String = "30%"

    @IBOutlet weak var circularView1: CircularProgressView!
    @IBOutlet weak var circularView2: CircularProgressView!
    @IBOutlet weak var circularView3: CircularProgressView!
    @IBOutlet weak var circularView4: CircularProgressView!
    @IBOutlet weak var circularView5: CircularProgressView!
    @IBOutlet weak var slider: NSSlider!

    @IBAction func sliderDragged(sender: NSSlider) {

        let event = NSApplication.sharedApplication().currentEvent
        let dragStart = event!.type == NSEventType.LeftMouseDown
        let dragEnd = event!.type == NSEventType.LeftMouseUp
        let dragging = event!.type == NSEventType.LeftMouseDragged

        if liveProgress || dragEnd {
            setProgress(CGFloat(sender.floatValue))
        }
        labelPercentage = "\(Int(sender.floatValue * 100))%"
    }

    func setProgress(progress: CGFloat) {
        circularView1.setProgressValue(progress, animated: true)
        circularView2.setProgressValue(progress, animated: true)
        circularView3.setProgressValue(progress, animated: true)
        circularView4.setProgressValue(progress, animated: true)
        circularView5.setProgressValue(progress, animated: false)
    }
    
    override func viewDidLoad() {
        preferredContentSize = NSMakeSize(500, 500)
    }
}



================================================
FILE: ProgressKit/DeterminateVC.swift
================================================
//
//  ViewController.swift
//  ProgressKit
//
//  Created by Kauntey Suryawanshi on 30/06/15.
//  Copyright (c) 2015 Kauntey Suryawanshi. All rights reserved.
//

import Cocoa

class DeterminateViewController: NSViewController {

    @objc dynamic var liveProgress: Bool = true
    @objc dynamic var labelPercentage: String = "30%"

    override func viewDidLoad() {
        preferredContentSize = NSMakeSize(500, 300)
    }

    @IBOutlet weak var slider: NSSlider!

    @IBAction func sliderDragged(_ sender: NSSlider) {

        let event = NSApplication.shared.currentEvent
//        let dragStart = event!.type == NSEventType.LeftMouseDown
        let dragEnd = event!.type == NSEvent.EventType.leftMouseUp
//        let dragging = event!.type == NSEventType.LeftMouseDragged

        if liveProgress || dragEnd {
            setProgress(CGFloat(sender.floatValue))
        }
        labelPercentage = "\(Int(sender.floatValue * 100))%"
    }

    func setProgress(_ progress: CGFloat) {
        for view in self.view.subviews {
            if view is DeterminateAnimation {
                (view as! DeterminateAnimation).progress = progress
            }
        }
    }
    
}



================================================
FILE: ProgressKit/InDeterminate.swift
================================================
//
//  WhatsAppCircular.swift
//  ProgressKit
//
//  Created by Kauntey Suryawanshi on 30/06/15.
//  Copyright (c) 2015 Kauntey Suryawanshi. All rights reserved.
//

import Foundation
import Cocoa

class InDeterminateViewController: NSViewController {
    @IBOutlet weak var doing1: DoingCircular!
    @IBOutlet weak var doing2: DoingCircular!
    @IBOutlet weak var doing3: DoingCircular!
    @IBOutlet weak var doing4: DoingCircular!
    
    override func viewDidLoad() {
        preferredContentSize = NSMakeSize(500, 500)
    }
    
    @IBAction func startStopAnimation(sender: NSButton) {
        let isOn = sender.state == NSOnState
        doing1.animate = isOn
        doing2.animate = isOn
        doing3.animate = isOn
        doing4.animate = isOn
    }
}

================================================
FILE: ProgressKit/InDeterminateVC.swift
================================================
//
//  WhatsAppCircular.swift
//  ProgressKit
//
//  Created by Kauntey Suryawanshi on 30/06/15.
//  Copyright (c) 2015 Kauntey Suryawanshi. All rights reserved.
//

import Foundation
import Cocoa

class InDeterminateViewController: NSViewController {

    override func viewDidAppear() {
        for view in self.view.subviews {
            (view as? IndeterminateAnimation)?.animate = true
        }
    }

    override func viewWillDisappear() {
        for view in self.view.subviews {
            (view as? IndeterminateAnimation)?.animate = false
        }
    }
}


================================================
FILE: ProgressKit/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>CFBundleIconFile</key>
	<string></string>
	<key>CFBundleIdentifier</key>
	<string>$(PRODUCT_BUNDLE_IDENTIFIER)</string>
	<key>CFBundleInfoDictionaryVersion</key>
	<string>6.0</string>
	<key>CFBundleName</key>
	<string>$(PRODUCT_NAME)</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>LSMinimumSystemVersion</key>
	<string>$(MACOSX_DEPLOYMENT_TARGET)</string>
	<key>NSHumanReadableCopyright</key>
	<string>Copyright © 2015 Kauntey Suryawanshi. All rights reserved.</string>
	<key>NSMainStoryboardFile</key>
	<string>Main</string>
	<key>NSPrincipalClass</key>
	<string>NSApplication</string>
</dict>
</plist>


================================================
FILE: ProgressKit.podspec
================================================
Pod::Spec.new do |spec|
  spec.name = 'ProgressKit'
  spec.version = '0.8'
  spec.license = 'MIT'
  spec.summary = 'Animated ProgressViews for macOS'
  spec.homepage = 'https://github.com/kaunteya/ProgressKit'
  spec.authors = { 'Kaunteya Suryawanshi' => 'k.suryawanshi@gmail.com' }
  spec.source = { :git => 'https://github.com/kaunteya/ProgressKit.git', :tag => spec.version }

  spec.platform = :osx, '10.10'
  spec.requires_arc = true

  spec.source_files = 'Determinate/*.swift', 'InDeterminate/*.swift', 'ProgressUtils.swift', 'BaseView.swift'
end


================================================
FILE: ProgressKit.xcodeproj/project.pbxproj
================================================
// !$*UTF8*$!
{
	archiveVersion = 1;
	classes = {
	};
	objectVersion = 46;
	objects = {

/* Begin PBXBuildFile section */
		E31617A61BC0596C007AD70F /* BaseView.swift in Sources */ = {isa = PBXBuildFile; fileRef = E31617A51BC0596C007AD70F /* BaseView.swift */; };
		E340FDB81BDE45F000CE6550 /* RotatingArc.swift in Sources */ = {isa = PBXBuildFile; fileRef = E340FDB71BDE45F000CE6550 /* RotatingArc.swift */; };
		E35D1C6C1B676889001DBAF2 /* Spinner.swift in Sources */ = {isa = PBXBuildFile; fileRef = E35D1C6B1B676889001DBAF2 /* Spinner.swift */; };
		E37568DF1B6AAB530073E26F /* ProgressBar.swift in Sources */ = {isa = PBXBuildFile; fileRef = E37568DE1B6AAB530073E26F /* ProgressBar.swift */; };
		E3918F811B4E88CF00558DAB /* CircularProgressView.swift in Sources */ = {isa = PBXBuildFile; fileRef = E3918F801B4E88CF00558DAB /* CircularProgressView.swift */; };
		E3918F841B4E88DE00558DAB /* MaterialProgress.swift in Sources */ = {isa = PBXBuildFile; fileRef = E3918F821B4E88DE00558DAB /* MaterialProgress.swift */; };
		E3918F851B4E88DE00558DAB /* ShootingStars.swift in Sources */ = {isa = PBXBuildFile; fileRef = E3918F831B4E88DE00558DAB /* ShootingStars.swift */; };
		E3918F8D1B4E8AB100558DAB /* IndeterminateAnimation.swift in Sources */ = {isa = PBXBuildFile; fileRef = E3918F8C1B4E8AB100558DAB /* IndeterminateAnimation.swift */; };
		E3918F8F1B4E8C2900558DAB /* DeterminateAnimation.swift in Sources */ = {isa = PBXBuildFile; fileRef = E3918F8E1B4E8C2900558DAB /* DeterminateAnimation.swift */; };
		E3918FA81B4ECF7100558DAB /* Rainbow.swift in Sources */ = {isa = PBXBuildFile; fileRef = E3918FA71B4ECF7100558DAB /* Rainbow.swift */; };
		E3A468521B5434F7006DDE31 /* Crawler.swift in Sources */ = {isa = PBXBuildFile; fileRef = E3A468511B5434F7006DDE31 /* Crawler.swift */; };
		E3AD65D81B426758009541CD /* AppDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = E3AD65D71B426758009541CD /* AppDelegate.swift */; };
		E3AD65DA1B426758009541CD /* DeterminateVC.swift in Sources */ = {isa = PBXBuildFile; fileRef = E3AD65D91B426758009541CD /* DeterminateVC.swift */; };
		E3AD65DF1B426758009541CD /* Main.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = E3AD65DD1B426758009541CD /* Main.storyboard */; };
		E3AD65EB1B426758009541CD /* ProgressKitTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = E3AD65EA1B426758009541CD /* ProgressKitTests.swift */; };
		E3AD65F71B427511009541CD /* InDeterminateVC.swift in Sources */ = {isa = PBXBuildFile; fileRef = E3AD65F61B427511009541CD /* InDeterminateVC.swift */; };
		E3CCD59A1BBC2B9B00F7DB9A /* ProgressUtils.swift in Sources */ = {isa = PBXBuildFile; fileRef = E3CCD5991BBC2B9B00F7DB9A /* ProgressUtils.swift */; };
/* End PBXBuildFile section */

/* Begin PBXContainerItemProxy section */
		E3AD65E51B426758009541CD /* PBXContainerItemProxy */ = {
			isa = PBXContainerItemProxy;
			containerPortal = E3AD65CA1B426758009541CD /* Project object */;
			proxyType = 1;
			remoteGlobalIDString = E3AD65D11B426758009541CD;
			remoteInfo = ProgressKit;
		};
/* End PBXContainerItemProxy section */

/* Begin PBXFileReference section */
		E310B1D21D7AB2D4008DEF62 /* README.md */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = net.daringfireball.markdown; path = README.md; sourceTree = SOURCE_ROOT; };
		E310B1D41D7AB2EA008DEF62 /* LICENSE */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = LICENSE; sourceTree = SOURCE_ROOT; };
		E31617A51BC0596C007AD70F /* BaseView.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = BaseView.swift; sourceTree = "<group>"; };
		E340FDB71BDE45F000CE6550 /* RotatingArc.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; name = RotatingArc.swift; path = InDeterminate/RotatingArc.swift; sourceTree = "<group>"; };
		E35D1C6B1B676889001DBAF2 /* Spinner.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; name = Spinner.swift; path = InDeterminate/Spinner.swift; sourceTree = "<group>"; };
		E37568DE1B6AAB530073E26F /* ProgressBar.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; name = ProgressBar.swift; path = Determinate/ProgressBar.swift; sourceTree = "<group>"; };
		E3918F801B4E88CF00558DAB /* CircularProgressView.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; name = CircularProgressView.swift; path = Determinate/CircularProgressView.swift; sourceTree = "<group>"; };
		E3918F821B4E88DE00558DAB /* MaterialProgress.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; name = MaterialProgress.swift; path = InDeterminate/MaterialProgress.swift; sourceTree = "<group>"; };
		E3918F831B4E88DE00558DAB /* ShootingStars.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; name = ShootingStars.swift; path = InDeterminate/ShootingStars.swift; sourceTree = "<group>"; };
		E3918F8C1B4E8AB100558DAB /* IndeterminateAnimation.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; name = IndeterminateAnimation.swift; path = InDeterminate/IndeterminateAnimation.swift; sourceTree = "<group>"; };
		E3918F8E1B4E8C2900558DAB /* DeterminateAnimation.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; name = DeterminateAnimation.swift; path = Determinate/DeterminateAnimation.swift; sourceTree = "<group>"; };
		E3918FA71B4ECF7100558DAB /* Rainbow.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; name = Rainbow.swift; path = InDeterminate/Rainbow.swift; sourceTree = "<group>"; };
		E3A468511B5434F7006DDE31 /* Crawler.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; name = Crawler.swift; path = InDeterminate/Crawler.swift; sourceTree = "<group>"; };
		E3AD65D21B426758009541CD /* ProgressKit.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = ProgressKit.app; sourceTree = BUILT_PRODUCTS_DIR; };
		E3AD65D61B426758009541CD /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = "<group>"; };
		E3AD65D71B426758009541CD /* AppDelegate.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppDelegate.swift; sourceTree = "<group>"; };
		E3AD65D91B426758009541CD /* DeterminateVC.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DeterminateVC.swift; sourceTree = "<group>"; };
		E3AD65DE1B426758009541CD /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/Main.storyboard; sourceTree = "<group>"; };
		E3AD65E41B426758009541CD /* ProgressKitTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = ProgressKitTests.xctest; sourceTree = BUILT_PRODUCTS_DIR; };
		E3AD65E91B426758009541CD /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = "<group>"; };
		E3AD65EA1B426758009541CD /* ProgressKitTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ProgressKitTests.swift; sourceTree = "<group>"; };
		E3AD65F61B427511009541CD /* InDeterminateVC.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = InDeterminateVC.swift; sourceTree = "<group>"; };
		E3CCD5971BBC19ED00F7DB9A /* ProgressKit.podspec */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = ProgressKit.podspec; sourceTree = SOURCE_ROOT; };
		E3CCD5991BBC2B9B00F7DB9A /* ProgressUtils.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ProgressUtils.swift; sourceTree = SOURCE_ROOT; };
/* End PBXFileReference section */

/* Begin PBXFrameworksBuildPhase section */
		E3AD65CF1B426758009541CD /* Frameworks */ = {
			isa = PBXFrameworksBuildPhase;
			buildActionMask = 2147483647;
			files = (
			);
			runOnlyForDeploymentPostprocessing = 0;
		};
		E3AD65E11B426758009541CD /* Frameworks */ = {
			isa = PBXFrameworksBuildPhase;
			buildActionMask = 2147483647;
			files = (
			);
			runOnlyForDeploymentPostprocessing = 0;
		};
/* End PBXFrameworksBuildPhase section */

/* Begin PBXGroup section */
		E316CCAA1B4E8633005A9A31 /* Indeterminate */ = {
			isa = PBXGroup;
			children = (
				E3918F8C1B4E8AB100558DAB /* IndeterminateAnimation.swift */,
				E3918F821B4E88DE00558DAB /* MaterialProgress.swift */,
				E3918FA71B4ECF7100558DAB /* Rainbow.swift */,
				E3A468511B5434F7006DDE31 /* Crawler.swift */,
				E3918F831B4E88DE00558DAB /* ShootingStars.swift */,
				E35D1C6B1B676889001DBAF2 /* Spinner.swift */,
				E340FDB71BDE45F000CE6550 /* RotatingArc.swift */,
			);
			name = Indeterminate;
			sourceTree = "<group>";
		};
		E316CCAB1B4E8642005A9A31 /* Determinate */ = {
			isa = PBXGroup;
			children = (
				E3918F8E1B4E8C2900558DAB /* DeterminateAnimation.swift */,
				E3918F801B4E88CF00558DAB /* CircularProgressView.swift */,
				E37568DE1B6AAB530073E26F /* ProgressBar.swift */,
			);
			name = Determinate;
			sourceTree = "<group>";
		};
		E3AD65C91B426758009541CD = {
			isa = PBXGroup;
			children = (
				E31617A51BC0596C007AD70F /* BaseView.swift */,
				E316CCAA1B4E8633005A9A31 /* Indeterminate */,
				E316CCAB1B4E8642005A9A31 /* Determinate */,
				E3AD65D41B426758009541CD /* ProgressKit */,
				E3AD65E71B426758009541CD /* ProgressKitTests */,
				E3AD65D31B426758009541CD /* Products */,
			);
			sourceTree = "<group>";
		};
		E3AD65D31B426758009541CD /* Products */ = {
			isa = PBXGroup;
			children = (
				E3AD65D21B426758009541CD /* ProgressKit.app */,
				E3AD65E41B426758009541CD /* ProgressKitTests.xctest */,
			);
			name = Products;
			sourceTree = "<group>";
		};
		E3AD65D41B426758009541CD /* ProgressKit */ = {
			isa = PBXGroup;
			children = (
				E3AD65D71B426758009541CD /* AppDelegate.swift */,
				E3AD65D91B426758009541CD /* DeterminateVC.swift */,
				E3AD65F61B427511009541CD /* InDeterminateVC.swift */,
				E3AD65DD1B426758009541CD /* Main.storyboard */,
				E3AD65D51B426758009541CD /* Supporting Files */,
			);
			path = ProgressKit;
			sourceTree = "<group>";
		};
		E3AD65D51B426758009541CD /* Supporting Files */ = {
			isa = PBXGroup;
			children = (
				E310B1D21D7AB2D4008DEF62 /* README.md */,
				E310B1D41D7AB2EA008DEF62 /* LICENSE */,
				E3CCD5991BBC2B9B00F7DB9A /* ProgressUtils.swift */,
				E3CCD5971BBC19ED00F7DB9A /* ProgressKit.podspec */,
				E3AD65D61B426758009541CD /* Info.plist */,
			);
			name = "Supporting Files";
			sourceTree = "<group>";
		};
		E3AD65E71B426758009541CD /* ProgressKitTests */ = {
			isa = PBXGroup;
			children = (
				E3AD65EA1B426758009541CD /* ProgressKitTests.swift */,
				E3AD65E81B426758009541CD /* Supporting Files */,
			);
			path = ProgressKitTests;
			sourceTree = "<group>";
		};
		E3AD65E81B426758009541CD /* Supporting Files */ = {
			isa = PBXGroup;
			children = (
				E3AD65E91B426758009541CD /* Info.plist */,
			);
			name = "Supporting Files";
			sourceTree = "<group>";
		};
/* End PBXGroup section */

/* Begin PBXNativeTarget section */
		E3AD65D11B426758009541CD /* ProgressKit */ = {
			isa = PBXNativeTarget;
			buildConfigurationList = E3AD65EE1B426758009541CD /* Build configuration list for PBXNativeTarget "ProgressKit" */;
			buildPhases = (
				E3AD65CE1B426758009541CD /* Sources */,
				E3AD65CF1B426758009541CD /* Frameworks */,
				E3AD65D01B426758009541CD /* Resources */,
			);
			buildRules = (
			);
			dependencies = (
			);
			name = ProgressKit;
			productName = ProgressKit;
			productReference = E3AD65D21B426758009541CD /* ProgressKit.app */;
			productType = "com.apple.product-type.application";
		};
		E3AD65E31B426758009541CD /* ProgressKitTests */ = {
			isa = PBXNativeTarget;
			buildConfigurationList = E3AD65F11B426758009541CD /* Build configuration list for PBXNativeTarget "ProgressKitTests" */;
			buildPhases = (
				E3AD65E01B426758009541CD /* Sources */,
				E3AD65E11B426758009541CD /* Frameworks */,
				E3AD65E21B426758009541CD /* Resources */,
			);
			buildRules = (
			);
			dependencies = (
				E3AD65E61B426758009541CD /* PBXTargetDependency */,
			);
			name = ProgressKitTests;
			productName = ProgressKitTests;
			productReference = E3AD65E41B426758009541CD /* ProgressKitTests.xctest */;
			productType = "com.apple.product-type.bundle.unit-test";
		};
/* End PBXNativeTarget section */

/* Begin PBXProject section */
		E3AD65CA1B426758009541CD /* Project object */ = {
			isa = PBXProject;
			attributes = {
				LastSwiftMigration = 0700;
				LastSwiftUpdateCheck = 0700;
				LastUpgradeCheck = 1000;
				ORGANIZATIONNAME = "Kauntey Suryawanshi";
				TargetAttributes = {
					E3AD65D11B426758009541CD = {
						CreatedOnToolsVersion = 6.3.2;
						LastSwiftMigration = 0920;
					};
					E3AD65E31B426758009541CD = {
						CreatedOnToolsVersion = 6.3.2;
						LastSwiftMigration = 0920;
						TestTargetID = E3AD65D11B426758009541CD;
					};
				};
			};
			buildConfigurationList = E3AD65CD1B426758009541CD /* Build configuration list for PBXProject "ProgressKit" */;
			compatibilityVersion = "Xcode 3.2";
			developmentRegion = English;
			hasScannedForEncodings = 0;
			knownRegions = (
				en,
				Base,
			);
			mainGroup = E3AD65C91B426758009541CD;
			productRefGroup = E3AD65D31B426758009541CD /* Products */;
			projectDirPath = "";
			projectRoot = "";
			targets = (
				E3AD65D11B426758009541CD /* ProgressKit */,
				E3AD65E31B426758009541CD /* ProgressKitTests */,
			);
		};
/* End PBXProject section */

/* Begin PBXResourcesBuildPhase section */
		E3AD65D01B426758009541CD /* Resources */ = {
			isa = PBXResourcesBuildPhase;
			buildActionMask = 2147483647;
			files = (
				E3AD65DF1B426758009541CD /* Main.storyboard in Resources */,
			);
			runOnlyForDeploymentPostprocessing = 0;
		};
		E3AD65E21B426758009541CD /* Resources */ = {
			isa = PBXResourcesBuildPhase;
			buildActionMask = 2147483647;
			files = (
			);
			runOnlyForDeploymentPostprocessing = 0;
		};
/* End PBXResourcesBuildPhase section */

/* Begin PBXSourcesBuildPhase section */
		E3AD65CE1B426758009541CD /* Sources */ = {
			isa = PBXSourcesBuildPhase;
			buildActionMask = 2147483647;
			files = (
				E3A468521B5434F7006DDE31 /* Crawler.swift in Sources */,
				E3AD65DA1B426758009541CD /* DeterminateVC.swift in Sources */,
				E3918F8D1B4E8AB100558DAB /* IndeterminateAnimation.swift in Sources */,
				E3AD65F71B427511009541CD /* InDeterminateVC.swift in Sources */,
				E3918F851B4E88DE00558DAB /* ShootingStars.swift in Sources */,
				E3918F811B4E88CF00558DAB /* CircularProgressView.swift in Sources */,
				E35D1C6C1B676889001DBAF2 /* Spinner.swift in Sources */,
				E3918F841B4E88DE00558DAB /* MaterialProgress.swift in Sources */,
				E3AD65D81B426758009541CD /* AppDelegate.swift in Sources */,
				E37568DF1B6AAB530073E26F /* ProgressBar.swift in Sources */,
				E340FDB81BDE45F000CE6550 /* RotatingArc.swift in Sources */,
				E3CCD59A1BBC2B9B00F7DB9A /* ProgressUtils.swift in Sources */,
				E31617A61BC0596C007AD70F /* BaseView.swift in Sources */,
				E3918FA81B4ECF7100558DAB /* Rainbow.swift in Sources */,
				E3918F8F1B4E8C2900558DAB /* DeterminateAnimation.swift in Sources */,
			);
			runOnlyForDeploymentPostprocessing = 0;
		};
		E3AD65E01B426758009541CD /* Sources */ = {
			isa = PBXSourcesBuildPhase;
			buildActionMask = 2147483647;
			files = (
				E3AD65EB1B426758009541CD /* ProgressKitTests.swift in Sources */,
			);
			runOnlyForDeploymentPostprocessing = 0;
		};
/* End PBXSourcesBuildPhase section */

/* Begin PBXTargetDependency section */
		E3AD65E61B426758009541CD /* PBXTargetDependency */ = {
			isa = PBXTargetDependency;
			target = E3AD65D11B426758009541CD /* ProgressKit */;
			targetProxy = E3AD65E51B426758009541CD /* PBXContainerItemProxy */;
		};
/* End PBXTargetDependency section */

/* Begin PBXVariantGroup section */
		E3AD65DD1B426758009541CD /* Main.storyboard */ = {
			isa = PBXVariantGroup;
			children = (
				E3AD65DE1B426758009541CD /* Base */,
			);
			name = Main.storyboard;
			sourceTree = "<group>";
		};
/* End PBXVariantGroup section */

/* Begin XCBuildConfiguration section */
		E3AD65EC1B426758009541CD /* Debug */ = {
			isa = XCBuildConfiguration;
			buildSettings = {
				ALWAYS_SEARCH_USER_PATHS = NO;
				CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x";
				CLANG_CXX_LIBRARY = "libc++";
				CLANG_ENABLE_MODULES = YES;
				CLANG_ENABLE_OBJC_ARC = YES;
				CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES;
				CLANG_WARN_BOOL_CONVERSION = YES;
				CLANG_WARN_COMMA = YES;
				CLANG_WARN_CONSTANT_CONVERSION = YES;
				CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES;
				CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
				CLANG_WARN_EMPTY_BODY = YES;
				CLANG_WARN_ENUM_CONVERSION = YES;
				CLANG_WARN_INFINITE_RECURSION = YES;
				CLANG_WARN_INT_CONVERSION = YES;
				CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES;
				CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES;
				CLANG_WARN_OBJC_LITERAL_CONVERSION = YES;
				CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
				CLANG_WARN_RANGE_LOOP_ANALYSIS = YES;
				CLANG_WARN_STRICT_PROTOTYPES = YES;
				CLANG_WARN_SUSPICIOUS_MOVE = YES;
				CLANG_WARN_UNREACHABLE_CODE = YES;
				CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
				CODE_SIGN_IDENTITY = "-";
				COPY_PHASE_STRIP = NO;
				DEBUG_INFORMATION_FORMAT = dwarf;
				ENABLE_STRICT_OBJC_MSGSEND = YES;
				ENABLE_TESTABILITY = YES;
				GCC_C_LANGUAGE_STANDARD = gnu99;
				GCC_DYNAMIC_NO_PIC = NO;
				GCC_NO_COMMON_BLOCKS = YES;
				GCC_OPTIMIZATION_LEVEL = 0;
				GCC_PREPROCESSOR_DEFINITIONS = (
					"DEBUG=1",
					"$(inherited)",
				);
				GCC_SYMBOLS_PRIVATE_EXTERN = NO;
				GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
				GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
				GCC_WARN_UNDECLARED_SELECTOR = YES;
				GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
				GCC_WARN_UNUSED_FUNCTION = YES;
				GCC_WARN_UNUSED_VARIABLE = YES;
				MACOSX_DEPLOYMENT_TARGET = 10.10;
				MTL_ENABLE_DEBUG_INFO = YES;
				ONLY_ACTIVE_ARCH = YES;
				SDKROOT = macosx;
				SWIFT_OPTIMIZATION_LEVEL = "-Onone";
			};
			name = Debug;
		};
		E3AD65ED1B426758009541CD /* Release */ = {
			isa = XCBuildConfiguration;
			buildSettings = {
				ALWAYS_SEARCH_USER_PATHS = NO;
				CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x";
				CLANG_CXX_LIBRARY = "libc++";
				CLANG_ENABLE_MODULES = YES;
				CLANG_ENABLE_OBJC_ARC = YES;
				CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES;
				CLANG_WARN_BOOL_CONVERSION = YES;
				CLANG_WARN_COMMA = YES;
				CLANG_WARN_CONSTANT_CONVERSION = YES;
				CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES;
				CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
				CLANG_WARN_EMPTY_BODY = YES;
				CLANG_WARN_ENUM_CONVERSION = YES;
				CLANG_WARN_INFINITE_RECURSION = YES;
				CLANG_WARN_INT_CONVERSION = YES;
				CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES;
				CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES;
				CLANG_WARN_OBJC_LITERAL_CONVERSION = YES;
				CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
				CLANG_WARN_RANGE_LOOP_ANALYSIS = YES;
				CLANG_WARN_STRICT_PROTOTYPES = YES;
				CLANG_WARN_SUSPICIOUS_MOVE = YES;
				CLANG_WARN_UNREACHABLE_CODE = YES;
				CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
				CODE_SIGN_IDENTITY = "-";
				COPY_PHASE_STRIP = NO;
				DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
				ENABLE_NS_ASSERTIONS = NO;
				ENABLE_STRICT_OBJC_MSGSEND = YES;
				GCC_C_LANGUAGE_STANDARD = gnu99;
				GCC_NO_COMMON_BLOCKS = YES;
				GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
				GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
				GCC_WARN_UNDECLARED_SELECTOR = YES;
				GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
				GCC_WARN_UNUSED_FUNCTION = YES;
				GCC_WARN_UNUSED_VARIABLE = YES;
				MACOSX_DEPLOYMENT_TARGET = 10.10;
				MTL_ENABLE_DEBUG_INFO = NO;
				SDKROOT = macosx;
				SWIFT_OPTIMIZATION_LEVEL = "-Owholemodule";
			};
			name = Release;
		};
		E3AD65EF1B426758009541CD /* Debug */ = {
			isa = XCBuildConfiguration;
			buildSettings = {
				ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
				COMBINE_HIDPI_IMAGES = YES;
				INFOPLIST_FILE = ProgressKit/Info.plist;
				LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/../Frameworks";
				PRODUCT_BUNDLE_IDENTIFIER = "com.kaunteya.$(PRODUCT_NAME:rfc1034identifier)";
				PRODUCT_NAME = "$(TARGET_NAME)";
				SWIFT_SWIFT3_OBJC_INFERENCE = Default;
				SWIFT_VERSION = 4.2;
			};
			name = Debug;
		};
		E3AD65F01B426758009541CD /* Release */ = {
			isa = XCBuildConfiguration;
			buildSettings = {
				ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
				COMBINE_HIDPI_IMAGES = YES;
				INFOPLIST_FILE = ProgressKit/Info.plist;
				LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/../Frameworks";
				PRODUCT_BUNDLE_IDENTIFIER = "com.kaunteya.$(PRODUCT_NAME:rfc1034identifier)";
				PRODUCT_NAME = "$(TARGET_NAME)";
				SWIFT_SWIFT3_OBJC_INFERENCE = Default;
				SWIFT_VERSION = 4.2;
			};
			name = Release;
		};
		E3AD65F21B426758009541CD /* Debug */ = {
			isa = XCBuildConfiguration;
			buildSettings = {
				BUNDLE_LOADER = "$(TEST_HOST)";
				COMBINE_HIDPI_IMAGES = YES;
				FRAMEWORK_SEARCH_PATHS = (
					"$(DEVELOPER_FRAMEWORKS_DIR)",
					"$(inherited)",
				);
				GCC_PREPROCESSOR_DEFINITIONS = (
					"DEBUG=1",
					"$(inherited)",
				);
				INFOPLIST_FILE = ProgressKitTests/Info.plist;
				LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/../Frameworks @loader_path/../Frameworks";
				PRODUCT_BUNDLE_IDENTIFIER = "com.kaunteya.$(PRODUCT_NAME:rfc1034identifier)";
				PRODUCT_NAME = "$(TARGET_NAME)";
				SWIFT_SWIFT3_OBJC_INFERENCE = On;
				SWIFT_VERSION = 4.0;
				TEST_HOST = "$(BUILT_PRODUCTS_DIR)/ProgressKit.app/Contents/MacOS/ProgressKit";
			};
			name = Debug;
		};
		E3AD65F31B426758009541CD /* Release */ = {
			isa = XCBuildConfiguration;
			buildSettings = {
				BUNDLE_LOADER = "$(TEST_HOST)";
				COMBINE_HIDPI_IMAGES = YES;
				FRAMEWORK_SEARCH_PATHS = (
					"$(DEVELOPER_FRAMEWORKS_DIR)",
					"$(inherited)",
				);
				INFOPLIST_FILE = ProgressKitTests/Info.plist;
				LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/../Frameworks @loader_path/../Frameworks";
				PRODUCT_BUNDLE_IDENTIFIER = "com.kaunteya.$(PRODUCT_NAME:rfc1034identifier)";
				PRODUCT_NAME = "$(TARGET_NAME)";
				SWIFT_SWIFT3_OBJC_INFERENCE = On;
				SWIFT_VERSION = 4.0;
				TEST_HOST = "$(BUILT_PRODUCTS_DIR)/ProgressKit.app/Contents/MacOS/ProgressKit";
			};
			name = Release;
		};
/* End XCBuildConfiguration section */

/* Begin XCConfigurationList section */
		E3AD65CD1B426758009541CD /* Build configuration list for PBXProject "ProgressKit" */ = {
			isa = XCConfigurationList;
			buildConfigurations = (
				E3AD65EC1B426758009541CD /* Debug */,
				E3AD65ED1B426758009541CD /* Release */,
			);
			defaultConfigurationIsVisible = 0;
			defaultConfigurationName = Release;
		};
		E3AD65EE1B426758009541CD /* Build configuration list for PBXNativeTarget "ProgressKit" */ = {
			isa = XCConfigurationList;
			buildConfigurations = (
				E3AD65EF1B426758009541CD /* Debug */,
				E3AD65F01B426758009541CD /* Release */,
			);
			defaultConfigurationIsVisible = 0;
			defaultConfigurationName = Release;
		};
		E3AD65F11B426758009541CD /* Build configuration list for PBXNativeTarget "ProgressKitTests" */ = {
			isa = XCConfigurationList;
			buildConfigurations = (
				E3AD65F21B426758009541CD /* Debug */,
				E3AD65F31B426758009541CD /* Release */,
			);
			defaultConfigurationIsVisible = 0;
			defaultConfigurationName = Release;
		};
/* End XCConfigurationList section */
	};
	rootObject = E3AD65CA1B426758009541CD /* Project object */;
}


================================================
FILE: ProgressKit.xcodeproj/project.xcworkspace/contents.xcworkspacedata
================================================
<?xml version="1.0" encoding="UTF-8"?>
<Workspace
   version = "1.0">
   <FileRef
      location = "self:ProgressKit.xcodeproj">
   </FileRef>
</Workspace>


================================================
FILE: ProgressKitTests/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>$(PRODUCT_NAME)</string>
	<key>CFBundlePackageType</key>
	<string>BNDL</string>
	<key>CFBundleShortVersionString</key>
	<string>1.0</string>
	<key>CFBundleSignature</key>
	<string>????</string>
	<key>CFBundleVersion</key>
	<string>1</string>
</dict>
</plist>


================================================
FILE: ProgressKitTests/ProgressKitTests.swift
================================================
//
//  ProgressKitTests.swift
//  ProgressKitTests
//
//  Created by Kauntey Suryawanshi on 30/06/15.
//  Copyright (c) 2015 Kauntey Suryawanshi. All rights reserved.
//

import Cocoa
import XCTest

class ProgressKitTests: XCTestCase {
    
    override func setUp() {
        super.setUp()
        // Put setup code here. This method is called before the invocation of each test method in the class.
    }
    
    override func tearDown() {
        // Put teardown code here. This method is called after the invocation of each test method in the class.
        super.tearDown()
    }
    
    func testExample() {
        // This is an example of a functional test case.
        XCTAssert(true, "Pass")
    }
    
    func testPerformanceExample() {
        // This is an example of a performance test case.
    }
    
}


================================================
FILE: ProgressUtils.swift
================================================
//
//  ProgressUtils.swift
//  ProgressKit
//
//  Created by Kauntey Suryawanshi on 09/07/15.
//  Copyright (c) 2015 Kauntey Suryawanshi. All rights reserved.
//


import AppKit

extension NSRect {
    var mid: CGPoint {
        return CGPoint(x: self.midX, y: self.midY)
    }
}

extension NSBezierPath {
    /// Converts NSBezierPath to CGPath
    var CGPath: CGPath {
        let path = CGMutablePath()
        let points = UnsafeMutablePointer<NSPoint>.allocate(capacity: 3)
        let numElements = self.elementCount

        for index in 0..<numElements {
            let pathType = self.element(at: index, associatedPoints: points)
            switch pathType {
            case .moveTo:
                path.move(to: points[0])
            case .lineTo:
                path.addLine(to: points[0])
            case .curveTo:
                path.addCurve(to: points[2], control1: points[0], control2: points[1])
            case .closePath:
                path.closeSubpath()
            }
        }

        points.deallocate()
        return path
    }
}

func degreeToRadian(_ degree: Int) -> Double {
    return Double(degree) * (Double.pi / 180)
}

func radianToDegree(_ radian: Double) -> Int {
    return Int(radian * (180 / Double.pi))
}

func + (p1: CGPoint, p2: CGPoint) -> CGPoint {
    return CGPoint(x: p1.x + p2.x, y: p1.y + p2.y)
}



================================================
FILE: README.md
================================================

![ProgressKit Banner](/Images/banner.gif)

[![Cocoapods Compatible](https://img.shields.io/cocoapods/v/ProgressKit.svg)](https://img.shields.io/cocoapods/v/ProgressKit.svg)
[![Platform](https://img.shields.io/cocoapods/p/ProgressKit.svg?style=flat)](http://cocoadocs.org/docsets/ProgressKit)
[![License](http
Download .txt
gitextract_lvo65_ut/

├── .gitignore
├── .swift-version
├── BaseView.swift
├── Determinate/
│   ├── CircularProgressView.swift
│   ├── DeterminateAnimation.swift
│   └── ProgressBar.swift
├── InDeterminate/
│   ├── Crawler.swift
│   ├── IndeterminateAnimation.swift
│   ├── MaterialProgress.swift
│   ├── Rainbow.swift
│   ├── RotatingArc.swift
│   ├── ShootingStars.swift
│   └── Spinner.swift
├── LICENSE
├── ProgressKit/
│   ├── AppDelegate.swift
│   ├── Base.lproj/
│   │   └── Main.storyboard
│   ├── Determinate.swift
│   ├── DeterminateVC.swift
│   ├── InDeterminate.swift
│   ├── InDeterminateVC.swift
│   └── Info.plist
├── ProgressKit.podspec
├── ProgressKit.xcodeproj/
│   ├── project.pbxproj
│   └── project.xcworkspace/
│       └── contents.xcworkspacedata
├── ProgressKitTests/
│   ├── Info.plist
│   └── ProgressKitTests.swift
├── ProgressUtils.swift
└── README.md
Condensed preview — 28 files, each showing path, character count, and a content snippet. Download the .json file or copy for the full structured content (212K chars).
[
  {
    "path": ".gitignore",
    "chars": 645,
    "preview": ".DS_Store\n# Xcode\n#\nbuild/\n*.pbxuser\n!default.pbxuser\n*.mode1v3\n!default.mode1v3\n*.mode2v3\n!default.mode2v3\n*.perspectiv"
  },
  {
    "path": ".swift-version",
    "chars": 4,
    "preview": "3.0\n"
  },
  {
    "path": "BaseView.swift",
    "chars": 1327,
    "preview": "//\n//  BaseView.swift\n//  ProgressKit\n//\n//  Created by Kauntey Suryawanshi on 04/10/15.\n//  Copyright (c) 2015 Kauntey "
  },
  {
    "path": "Determinate/CircularProgressView.swift",
    "chars": 3748,
    "preview": "//\n//  CircularView.swift\n//  Animo\n//\n//  Created by Kauntey Suryawanshi on 29/06/15.\n//  Copyright (c) 2015 Kauntey Su"
  },
  {
    "path": "Determinate/DeterminateAnimation.swift",
    "chars": 759,
    "preview": "//\n//  DeterminateAnimation.swift\n//  ProgressKit\n//\n//  Created by Kauntey Suryawanshi on 09/07/15.\n//  Copyright (c) 2"
  },
  {
    "path": "Determinate/ProgressBar.swift",
    "chars": 1773,
    "preview": "//\n//  ProgressBar.swift\n//  ProgressKit\n//\n//  Created by Kauntey Suryawanshi on 31/07/15.\n//  Copyright (c) 2015 Kaunt"
  },
  {
    "path": "InDeterminate/Crawler.swift",
    "chars": 2584,
    "preview": "//\n//  Crawler.swift\n//  ProgressKit\n//\n//  Created by Kauntey Suryawanshi on 11/07/15.\n//  Copyright (c) 2015 Kauntey S"
  },
  {
    "path": "InDeterminate/IndeterminateAnimation.swift",
    "chars": 1648,
    "preview": "//\n//  InDeterminateAnimation.swift\n//  ProgressKit\n//\n//  Created by Kauntey Suryawanshi on 09/07/15.\n//  Copyright (c)"
  },
  {
    "path": "InDeterminate/MaterialProgress.swift",
    "chars": 4194,
    "preview": "//\n//  MaterialProgress.swift\n//  ProgressKit\n//\n//  Created by Kauntey Suryawanshi on 30/06/15.\n//  Copyright (c) 2015 "
  },
  {
    "path": "InDeterminate/Rainbow.swift",
    "chars": 3503,
    "preview": "//\n//  Rainbow.swift\n//  ProgressKit\n//\n//  Created by Kauntey Suryawanshi on 09/07/15.\n//  Copyright (c) 2015 Kauntey S"
  },
  {
    "path": "InDeterminate/RotatingArc.swift",
    "chars": 2951,
    "preview": "//\n//  RotatingArc.swift\n//  ProgressKit\n//\n//  Created by Kauntey Suryawanshi on 26/10/15.\n//  Copyright © 2015 Kauntey"
  },
  {
    "path": "InDeterminate/ShootingStars.swift",
    "chars": 2938,
    "preview": "//\n//  ShootingStars.swift\n//  ProgressKit\n//\n//  Created by Kauntey Suryawanshi on 09/07/15.\n//  Copyright (c) 2015 Kau"
  },
  {
    "path": "InDeterminate/Spinner.swift",
    "chars": 3192,
    "preview": "//\n//  Spinner.swift\n//  ProgressKit\n//\n//  Created by Kauntey Suryawanshi on 28/07/15.\n//  Copyright (c) 2015 Kauntey S"
  },
  {
    "path": "LICENSE",
    "chars": 1088,
    "preview": "The MIT License (MIT)\n\nCopyright (c) 2015 Kaunteya Suryawanshi\n\nPermission is hereby granted, free of charge, to any per"
  },
  {
    "path": "ProgressKit/AppDelegate.swift",
    "chars": 507,
    "preview": "//\n//  AppDelegate.swift\n//  ProgressKit\n//\n//  Created by Kauntey Suryawanshi on 30/06/15.\n//  Copyright (c) 2015 Kaunt"
  },
  {
    "path": "ProgressKit/Base.lproj/Main.storyboard",
    "chars": 132397,
    "preview": "<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"no\"?>\n<document type=\"com.apple.InterfaceBuilder3.Cocoa.Storyboard.XIB\""
  },
  {
    "path": "ProgressKit/Determinate.swift",
    "chars": 1620,
    "preview": "//\n//  ViewController.swift\n//  ProgressKit\n//\n//  Created by Kauntey Suryawanshi on 30/06/15.\n//  Copyright (c) 2015 Ka"
  },
  {
    "path": "ProgressKit/DeterminateVC.swift",
    "chars": 1187,
    "preview": "//\n//  ViewController.swift\n//  ProgressKit\n//\n//  Created by Kauntey Suryawanshi on 30/06/15.\n//  Copyright (c) 2015 Ka"
  },
  {
    "path": "ProgressKit/InDeterminate.swift",
    "chars": 768,
    "preview": "//\n//  WhatsAppCircular.swift\n//  ProgressKit\n//\n//  Created by Kauntey Suryawanshi on 30/06/15.\n//  Copyright (c) 2015 "
  },
  {
    "path": "ProgressKit/InDeterminateVC.swift",
    "chars": 571,
    "preview": "//\n//  WhatsAppCircular.swift\n//  ProgressKit\n//\n//  Created by Kauntey Suryawanshi on 30/06/15.\n//  Copyright (c) 2015 "
  },
  {
    "path": "ProgressKit/Info.plist",
    "chars": 1093,
    "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": "ProgressKit.podspec",
    "chars": 554,
    "preview": "Pod::Spec.new do |spec|\n  spec.name = 'ProgressKit'\n  spec.version = '0.8'\n  spec.license = 'MIT'\n  spec.summary = 'Anim"
  },
  {
    "path": "ProgressKit.xcodeproj/project.pbxproj",
    "chars": 23774,
    "preview": "// !$*UTF8*$!\n{\n\tarchiveVersion = 1;\n\tclasses = {\n\t};\n\tobjectVersion = 46;\n\tobjects = {\n\n/* Begin PBXBuildFile section *"
  },
  {
    "path": "ProgressKit.xcodeproj/project.xcworkspace/contents.xcworkspacedata",
    "chars": 156,
    "preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<Workspace\n   version = \"1.0\">\n   <FileRef\n      location = \"self:ProgressKit.xco"
  },
  {
    "path": "ProgressKitTests/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": "ProgressKitTests/ProgressKitTests.swift",
    "chars": 823,
    "preview": "//\n//  ProgressKitTests.swift\n//  ProgressKitTests\n//\n//  Created by Kauntey Suryawanshi on 30/06/15.\n//  Copyright (c) "
  },
  {
    "path": "ProgressUtils.swift",
    "chars": 1358,
    "preview": "//\n//  ProgressUtils.swift\n//  ProgressKit\n//\n//  Created by Kauntey Suryawanshi on 09/07/15.\n//  Copyright (c) 2015 Kau"
  },
  {
    "path": "README.md",
    "chars": 3729,
    "preview": "\n![ProgressKit Banner](/Images/banner.gif)\n\n[![Cocoapods Compatible](https://img.shields.io/cocoapods/v/ProgressKit.svg)"
  }
]

About this extraction

This page contains the full source code of the kaunteya/ProgressKit GitHub repository, extracted and formatted as plain text for AI agents and large language models (LLMs). The extraction includes 28 files (194.9 KB), approximately 42.6k 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!