[
  {
    "path": ".gitignore",
    "content": "# xcode noise\nbuild/\n*.pbxuser\n*.mode1v3\n*.mode2v3\n*.perspectivev3\nxcuserdata/\n*.xccheckout\n\n# old skool\n.svn\n\n# osx noise\n.DS_Store\nprofile\n\n# vim noise\n*~\n*.swp\n\n# AppCode noise\n.idea/\n\n# Ruby\n.ruby-version\n\n# Carthage\nCarthage/Build\n"
  },
  {
    "path": ".travis.yml",
    "content": "language: objective-c\nosx_image: xcode11.2\n\nbefore_install:\n  - env\n  - locale\n  - xcpretty --version\n  - xcodebuild -version\n  - xcodebuild -showsdks\n\nscript:\n  - set -o pipefail\n\n  - xcodebuild clean build -workspace MBProgressHUD.xcworkspace -scheme HudDemo -sdk iphonesimulator -configuration Debug | xcpretty -c\n  - xcodebuild clean build -workspace MBProgressHUD.xcworkspace -scheme HudDemoTV -sdk appletvsimulator -configuration Debug | xcpretty -c\n  - xcodebuild clean build test -workspace MBProgressHUD.xcworkspace -scheme HudTests -sdk iphonesimulator -destination \"platform=iOS Simulator,name=iPad Air (3rd generation),OS=13.2.2\" -configuration Debug GCC_INSTRUMENT_PROGRAM_FLOW_ARCS=YES GCC_GENERATE_TEST_COVERAGE_FILES=YES | xcpretty -c\n\nafter_success:\n  - bash <(curl -s https://codecov.io/bash)\n"
  },
  {
    "path": "CHANGELOG.mdown",
    "content": "**Version 1.0.0** @ 14.07.16\n\n- Requires ARC and iOS 6+.\n- Includes a new default design for iOS 7+.\n- Deprecates certain helpers and exposes some more flexible API.\n- Removes KVO observing of local properties.\n- Migrates layout code to Auto Layout. \n- Includes a rewritten demo app. \n- Includes a rewritten iOS example app.\n- Updates and extends documentation.\n- Adds a new button property (cancellation support).\n- Adds support for `NSProgress`\n- Adds a new customizable background view class. \n- Adds new assertions. \n- Adds basic unit tests.\n- Adds support for motion effects.\n- Adds nullability.\n- Adds basic interface builder support. \n- Adds tvOS support.\n- Adds a simple tvOS example app.\n- Improves behavior when showing and hiding in quick succession. \n- Improves support for `UIAppearance `. \n- Various smaller bug-fixes\n\n**Version 0.9.2** @ 22.12.15\n\n- Timer improvements\n- Additional assertions \n- Added a framework target\n- Tint progress tint color enhancements\n\n**Version 0.9.1** @ 06.03.15\n\n- Bug-fixes\n- Modernization\n\n**Version 0.9** @ 12.08.14\n\n- iOS 8 compatibility and some bug fixes.\n- Additional iOS 7 / iOS 8 styling enhancements. \n- Improved 64bit support. \n- Demo modernization. \n\n**Version 0.8** @ 19.09.13\n\n- iOS 7 compatibility and some bug fixes.\n\n**Version 0.7** @ 25.06.13\n\n- Added horizontal bar mode. ([jjxtra](https://github.com/jjxtra)).\n- CI integration.\n\n**Version 0.6** @ 13.03.13\n\n- Full cocoapods support.\n- Static library integration option.\n- Improved blocks support. \n- Bezel color. \n- Demo app fixes (iOS 6).\n- Various bug-fixes and enhancements.\n\n**Version 0.5** @ 22.03.12\n\n- Major source code modernization and cleanup (KVO, layout code, instance vars, etc.).\n- New annular determinate mode.\n- New text only mode. \n- Added a static library project and Xcode 4 workspace. \n- Added methods to find and return HUD(s) on a view.\n- Various bug fixes.\n- Various demo project enhancements (hi-res rescues, new samples). \n\nIMPORTANT: Requires LLVM 3+.\n\n**Version 0.41** @ 03.01.12\n\n- Support for ARC.\n\n**Version 0.4** @ 25.07.10\n\n- Different animation modes. Default set to zoom.\n- Class convenience methods ([tadelv](http://github.com/tadelv)).\n- Autorotation when added to a UIWindow ([wuf810](http://github.com/wuf810)).\n- Extended demo app. \n- Several smaller fixes.\n\n**Version 0.33** @ 27.03.10\n\n- Custom view operation mode added.\n- Fixed a memory leak.\n\n**Version 0.32** @ 4.01.10\n\n- Added minShowTime, graceTime, xOffset, yOffset.\n- Various fixes.\n\n**Version 0.31** @ 8.10.09\n\n- Fix for touch through during the fade-out animation.\n\n**Version 0.3** @ 30.9.09\n\n- Added show: and hide: methods.\n- Now using UIViews layoutSubviews to automate layout calls.\n- Added some floors to round pixel positions and thereby prevent unsharp views.\n- Some additional documentation and code cleanup. \n\n**Version 0.2** @ 21.7.09\n\n- Added determinate progress mode and switching capabilities between determinate and indeterminate modes. \n- Various bug-fixes.\n\n**Version 0.11** @ 2.6.09.\n\n- Updated labelText and detailsLabelText properties to support text modifications while the HUD is being shown. \n\n**Version 0.1** @ 2.4.09\n\n- Initial release.\n"
  },
  {
    "path": "CONTRIBUTING.md",
    "content": "Please take a moment to review this document in order to make the contribution\nprocess easy and effective for everyone involved.\n\n\n# Using the issue tracker\n\nThe issue tracker is the preferred channel for [bug reports](#bugs) and\n[features requests](#features), but please respect the following restriction:\n\n* Please **do not** use the issue tracker for personal support requests (use\n  a service like [Stack Overflow](http://stackoverflow.com) instead).\n\n<a name=\"bugs\"></a>\n## Bug reports\n\nA bug is a _demonstrable problem_ that is caused by the code in the repository.\nGood bug reports are extremely helpful - thank you!\n\nGuidelines for bug reports:\n\n1. **Use the GitHub issue search** &mdash; check if the issue has already been\n   reported.\n\n2. **Check if the issue has been fixed** &mdash; try to reproduce it using the\n   latest `master` branch in the repository.\n\n3. **Isolate the problem** &mdash; provide exact reproduction steps, preferably\n   in the form of a failing test case or by providing modification steps in the \n   `MBProgressHUD` Demo application.\n\nA good bug report shouldn't leave others needing to chase you up for more\ninformation. Please try to be as detailed as possible in your report. What is\nyour environment? What steps will reproduce the issue? What iOS version did \nyou use? What would you expect to be the outcome? \n\n\n<a name=\"features\"></a>\n## Feature requests\n\nFeature requests are welcome. But take a moment to find out whether your idea\nfits with the scope and aims of the project. It's up to *you* to make a strong\ncase to convince the project's developers of the merits of this feature. Please\nprovide as much detail and context as possible.\n\n<a name=\"pull-requests\"></a>\n\n# Pull requests\n\nGood pull requests - patches, improvements, new features - are a fantastic\nhelp. They should remain focused in scope and avoid containing unrelated\ncommits.\n\n**Please ask first** before embarking on any significant pull request (e.g.\nimplementing features, refactoring code, porting to a different language),\notherwise you risk spending a lot of time working on something that the\nproject's developers might not want to merge into the project.\n\nPlease adhere to the coding conventions used throughout a project (indentation,\naccurate comments, etc.) and any other requirements (such as test coverage).\n\n**IMPORTANT**: By submitting a patch, you agree to allow the project owner to\nlicense your work under the same license as that used by the project.\n\nThis document is based on https://github.com/necolas/issue-guidelines/blob/master/CONTRIBUTING.md. \n"
  },
  {
    "path": "Demo/HudDemo/HudDemo.entitlements",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<!DOCTYPE plist PUBLIC \"-//Apple//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/PropertyList-1.0.dtd\">\n<plist version=\"1.0\">\n<dict>\n\t<key>com.apple.security.app-sandbox</key>\n\t<true/>\n\t<key>com.apple.security.network.client</key>\n\t<true/>\n</dict>\n</plist>\n"
  },
  {
    "path": "Demo/HudDemo/HudDemo_Prefix.pch",
    "content": "//\n// Prefix header for all source files of the 'HudDemo' target in the 'HudDemo' project\n//\n\n#ifdef __OBJC__\n    #import <Foundation/Foundation.h>\n    #import <UIKit/UIKit.h>\n#endif\n"
  },
  {
    "path": "Demo/HudDemo/Images.xcassets/AppIcon.appiconset/Contents.json",
    "content": "{\n  \"images\" : [\n    {\n      \"size\" : \"20x20\",\n      \"idiom\" : \"iphone\",\n      \"filename\" : \"Icon-40.png\",\n      \"scale\" : \"2x\"\n    },\n    {\n      \"size\" : \"20x20\",\n      \"idiom\" : \"iphone\",\n      \"filename\" : \"Icon-60.png\",\n      \"scale\" : \"3x\"\n    },\n    {\n      \"size\" : \"29x29\",\n      \"idiom\" : \"iphone\",\n      \"filename\" : \"Icon-Small.png\",\n      \"scale\" : \"1x\"\n    },\n    {\n      \"size\" : \"29x29\",\n      \"idiom\" : \"iphone\",\n      \"filename\" : \"Icon-Small@2x.png\",\n      \"scale\" : \"2x\"\n    },\n    {\n      \"size\" : \"29x29\",\n      \"idiom\" : \"iphone\",\n      \"filename\" : \"Icon-Small@3x.png\",\n      \"scale\" : \"3x\"\n    },\n    {\n      \"size\" : \"40x40\",\n      \"idiom\" : \"iphone\",\n      \"filename\" : \"Icon-Small-40@2x.png\",\n      \"scale\" : \"2x\"\n    },\n    {\n      \"size\" : \"40x40\",\n      \"idiom\" : \"iphone\",\n      \"filename\" : \"Icon-Small-40@3x.png\",\n      \"scale\" : \"3x\"\n    },\n    {\n      \"size\" : \"57x57\",\n      \"idiom\" : \"iphone\",\n      \"filename\" : \"Icon.png\",\n      \"scale\" : \"1x\"\n    },\n    {\n      \"size\" : \"57x57\",\n      \"idiom\" : \"iphone\",\n      \"filename\" : \"Icon@2x.png\",\n      \"scale\" : \"2x\"\n    },\n    {\n      \"size\" : \"60x60\",\n      \"idiom\" : \"iphone\",\n      \"filename\" : \"Icon-60@2x.png\",\n      \"scale\" : \"2x\"\n    },\n    {\n      \"size\" : \"60x60\",\n      \"idiom\" : \"iphone\",\n      \"filename\" : \"Icon-60@3x.png\",\n      \"scale\" : \"3x\"\n    },\n    {\n      \"size\" : \"20x20\",\n      \"idiom\" : \"ipad\",\n      \"filename\" : \"Icon-20.png\",\n      \"scale\" : \"1x\"\n    },\n    {\n      \"size\" : \"20x20\",\n      \"idiom\" : \"ipad\",\n      \"filename\" : \"Icon-41.png\",\n      \"scale\" : \"2x\"\n    },\n    {\n      \"size\" : \"29x29\",\n      \"idiom\" : \"ipad\",\n      \"filename\" : \"Icon-Small-1.png\",\n      \"scale\" : \"1x\"\n    },\n    {\n      \"size\" : \"29x29\",\n      \"idiom\" : \"ipad\",\n      \"filename\" : \"Icon-Small@2x-1.png\",\n      \"scale\" : \"2x\"\n    },\n    {\n      \"size\" : \"40x40\",\n      \"idiom\" : \"ipad\",\n      \"filename\" : \"Icon-Small-40.png\",\n      \"scale\" : \"1x\"\n    },\n    {\n      \"size\" : \"40x40\",\n      \"idiom\" : \"ipad\",\n      \"filename\" : \"Icon-Small-40@2x-1.png\",\n      \"scale\" : \"2x\"\n    },\n    {\n      \"size\" : \"50x50\",\n      \"idiom\" : \"ipad\",\n      \"filename\" : \"Icon-Small-50.png\",\n      \"scale\" : \"1x\"\n    },\n    {\n      \"size\" : \"50x50\",\n      \"idiom\" : \"ipad\",\n      \"filename\" : \"Icon-Small-50@2x.png\",\n      \"scale\" : \"2x\"\n    },\n    {\n      \"size\" : \"72x72\",\n      \"idiom\" : \"ipad\",\n      \"filename\" : \"Icon-72.png\",\n      \"scale\" : \"1x\"\n    },\n    {\n      \"size\" : \"72x72\",\n      \"idiom\" : \"ipad\",\n      \"filename\" : \"Icon-72@2x.png\",\n      \"scale\" : \"2x\"\n    },\n    {\n      \"size\" : \"76x76\",\n      \"idiom\" : \"ipad\",\n      \"filename\" : \"Icon-76.png\",\n      \"scale\" : \"1x\"\n    },\n    {\n      \"size\" : \"76x76\",\n      \"idiom\" : \"ipad\",\n      \"filename\" : \"Icon-76@2x.png\",\n      \"scale\" : \"2x\"\n    },\n    {\n      \"size\" : \"83.5x83.5\",\n      \"idiom\" : \"ipad\",\n      \"filename\" : \"Icon-167.png\",\n      \"scale\" : \"2x\"\n    },\n    {\n      \"size\" : \"1024x1024\",\n      \"idiom\" : \"ios-marketing\",\n      \"filename\" : \"AppStore.png\",\n      \"scale\" : \"1x\"\n    }\n  ],\n  \"info\" : {\n    \"version\" : 1,\n    \"author\" : \"xcode\"\n  }\n}"
  },
  {
    "path": "Demo/HudDemo/Images.xcassets/Checkmark.imageset/Contents.json",
    "content": "{\n  \"images\" : [\n    {\n      \"idiom\" : \"universal\",\n      \"filename\" : \"Checkmark.png\",\n      \"scale\" : \"1x\"\n    },\n    {\n      \"idiom\" : \"universal\",\n      \"filename\" : \"Checkmark@2x.png\",\n      \"scale\" : \"2x\"\n    },\n    {\n      \"idiom\" : \"universal\",\n      \"filename\" : \"Checkmark@3x.png\",\n      \"scale\" : \"3x\"\n    }\n  ],\n  \"info\" : {\n    \"version\" : 1,\n    \"author\" : \"xcode\"\n  }\n}"
  },
  {
    "path": "Demo/HudDemo/Images.xcassets/Contents.json",
    "content": "{\n  \"info\" : {\n    \"version\" : 1,\n    \"author\" : \"xcode\"\n  }\n}"
  },
  {
    "path": "Demo/HudDemo/Info.plist",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<!DOCTYPE plist PUBLIC \"-//Apple//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/PropertyList-1.0.dtd\">\n<plist version=\"1.0\">\n<dict>\n\t<key>CFBundleDevelopmentRegion</key>\n\t<string>English</string>\n\t<key>CFBundleDisplayName</key>\n\t<string>${PRODUCT_NAME}</string>\n\t<key>CFBundleExecutable</key>\n\t<string>${EXECUTABLE_NAME}</string>\n\t<key>CFBundleIcons</key>\n\t<dict/>\n\t<key>CFBundleIcons~ipad</key>\n\t<dict/>\n\t<key>CFBundleIdentifier</key>\n\t<string>$(PRODUCT_BUNDLE_IDENTIFIER)</string>\n\t<key>CFBundleInfoDictionaryVersion</key>\n\t<string>6.0</string>\n\t<key>CFBundleName</key>\n\t<string>${PRODUCT_NAME}</string>\n\t<key>CFBundlePackageType</key>\n\t<string>APPL</string>\n\t<key>CFBundleShortVersionString</key>\n\t<string>1.0</string>\n\t<key>CFBundleSignature</key>\n\t<string>????</string>\n\t<key>CFBundleVersion</key>\n\t<string>1.0</string>\n\t<key>LSRequiresIPhoneOS</key>\n\t<true/>\n\t<key>UILaunchStoryboardName</key>\n\t<string>Launch</string>\n\t<key>UIMainStoryboardFile</key>\n\t<string>Main</string>\n\t<key>UISupportedInterfaceOrientations</key>\n\t<array>\n\t\t<string>UIInterfaceOrientationPortrait</string>\n\t\t<string>UIInterfaceOrientationPortraitUpsideDown</string>\n\t\t<string>UIInterfaceOrientationLandscapeLeft</string>\n\t\t<string>UIInterfaceOrientationLandscapeRight</string>\n\t</array>\n</dict>\n</plist>\n"
  },
  {
    "path": "Demo/HudDemo/MBHudDemoAppDelegate.h",
    "content": "//\n//  MBHudDemoAppDelegate.h\n//  HudDemo\n//\n//  Created by Matej Bukovinski on 2.4.09.\n//  Copyright © 2009-2016 Matej Bukovinski. All rights reserved.\n//\n\n#import <UIKit/UIKit.h>\n\n@interface MBHudDemoAppDelegate : NSObject <UIApplicationDelegate>\n\n@property (strong, nonatomic) UIWindow *window;\n\n@end\n"
  },
  {
    "path": "Demo/HudDemo/MBHudDemoAppDelegate.m",
    "content": "//\n//  MBHudDemoAppDelegate.m\n//  HudDemo\n//\n//  Created by Matej Bukovinski on 2.4.09.\n//  Copyright © 2009-2016 Matej Bukovinski. All rights reserved.\n//\n\n#import \"MBHudDemoAppDelegate.h\"\n#import \"MBHudDemoViewController.h\"\n\n\n@implementation MBHudDemoAppDelegate\n\n- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {\n    self.window.tintColor = [UIColor colorWithRed:.337f green:.57f blue:.731f alpha:1.f];\n    return YES;\n}\n\n@end\n"
  },
  {
    "path": "Demo/HudDemo/MBHudDemoViewController.h",
    "content": "//\n//  HudDemoViewController.h\n//  HudDemo\n//\n//  Created by Matej Bukovinski on 30.9.09.\n//  Copyright © 2009-2016 Matej Bukovinski. All rights reserved.\n//\n\n#import <UIKit/UIKit.h>\n\n\n@interface MBHudDemoViewController : UITableViewController\n\n@end\n"
  },
  {
    "path": "Demo/HudDemo/MBHudDemoViewController.m",
    "content": "//\n//  MBHudDemoViewController.m\n//  HudDemo\n//\n//  Created by Matej Bukovinski on 30.9.09.\n//  Copyright © 2009-2016 Matej Bukovinski. All rights reserved.\n//\n\n#import \"MBHudDemoViewController.h\"\n#import \"MBProgressHUD.h\"\n#import <QuartzCore/QuartzCore.h>\n\n@interface MBExample : NSObject\n\n@property (nonatomic, copy) NSString *title;\n@property (nonatomic, assign) SEL selector;\n\n@end\n\n\n@implementation MBExample\n\n+ (instancetype)exampleWithTitle:(NSString *)title selector:(SEL)selector {\n    MBExample *example = [[self class] new];\n    example.title = title;\n    example.selector = selector;\n    return example;\n}\n\n@end\n\n\n@interface MBHudDemoViewController () <NSURLSessionDelegate>\n\n@property (nonatomic, strong) NSArray<NSArray<MBExample *> *> *examples;\n// Atomic, because it may be canceled from main thread, flag is read on a background thread\n@property (atomic, assign) BOOL canceled;\n\n@end\n\n\n@implementation MBHudDemoViewController\n\n#pragma mark - Lifecycle\n\n- (void)awakeFromNib {\n    [super awakeFromNib];\n    self.examples =\n    @[@[[MBExample exampleWithTitle:@\"Indeterminate mode\" selector:@selector(indeterminateExample)],\n        [MBExample exampleWithTitle:@\"With label\" selector:@selector(labelExample)],\n        [MBExample exampleWithTitle:@\"With details label\" selector:@selector(detailsLabelExample)]],\n      @[[MBExample exampleWithTitle:@\"Determinate mode\" selector:@selector(determinateExample)],\n        [MBExample exampleWithTitle:@\"Annular determinate mode\" selector:@selector(annularDeterminateExample)],\n        [MBExample exampleWithTitle:@\"Bar determinate mode\" selector:@selector(barDeterminateExample)]],\n      @[[MBExample exampleWithTitle:@\"Text only\" selector:@selector(textExample)],\n        [MBExample exampleWithTitle:@\"Custom view\" selector:@selector(customViewExample)],\n        [MBExample exampleWithTitle:@\"With action button\" selector:@selector(cancelationExample)],\n        [MBExample exampleWithTitle:@\"Mode switching\" selector:@selector(modeSwitchingExample)]],\n      @[[MBExample exampleWithTitle:@\"On window\" selector:@selector(windowExample)],\n        [MBExample exampleWithTitle:@\"NSURLSession\" selector:@selector(networkingExample)],\n        [MBExample exampleWithTitle:@\"Determinate with NSProgress\" selector:@selector(determinateNSProgressExample)],\n        [MBExample exampleWithTitle:@\"Dim background\" selector:@selector(dimBackgroundExample)],\n        [MBExample exampleWithTitle:@\"Colored\" selector:@selector(colorExample)]]\n      ];\n}\n\n#pragma mark - Examples\n\n- (void)indeterminateExample {\n    // Show the HUD on the root view (self.view is a scrollable table view and thus not suitable,\n    // as the HUD would move with the content as we scroll).\n    MBProgressHUD *hud = [MBProgressHUD showHUDAddedTo:self.navigationController.view animated:YES];\n\n    // Fire off an asynchronous task, giving UIKit the opportunity to redraw wit the HUD added to the\n    // view hierarchy.\n    dispatch_async(dispatch_get_global_queue(QOS_CLASS_USER_INITIATED, 0), ^{\n\n        // Do something useful in the background\n        [self doSomeWork];\n\n        // IMPORTANT - Dispatch back to the main thread. Always access UI\n        // classes (including MBProgressHUD) on the main thread.\n        dispatch_async(dispatch_get_main_queue(), ^{\n            [hud hideAnimated:YES];\n        });\n    });\n}\n\n- (void)labelExample {\n    MBProgressHUD *hud = [MBProgressHUD showHUDAddedTo:self.navigationController.view animated:YES];\n\n    // Set the label text.\n    hud.label.text = NSLocalizedString(@\"Loading...\", @\"HUD loading title\");\n    // You can also adjust other label properties if needed.\n    // hud.label.font = [UIFont italicSystemFontOfSize:16.f];\n\n    dispatch_async(dispatch_get_global_queue(QOS_CLASS_USER_INITIATED, 0), ^{\n        [self doSomeWork];\n        dispatch_async(dispatch_get_main_queue(), ^{\n            [hud hideAnimated:YES];\n        });\n    });\n}\n\n- (void)detailsLabelExample {\n    MBProgressHUD *hud = [MBProgressHUD showHUDAddedTo:self.navigationController.view animated:YES];\n\n    // Set the label text.\n    hud.label.text = NSLocalizedString(@\"Loading...\", @\"HUD loading title\");\n    // Set the details label text. Let's make it multiline this time.\n    hud.detailsLabel.text = NSLocalizedString(@\"Parsing data\\n(1/1)\", @\"HUD title\");\n\n    dispatch_async(dispatch_get_global_queue(QOS_CLASS_USER_INITIATED, 0), ^{\n        [self doSomeWork];\n        dispatch_async(dispatch_get_main_queue(), ^{\n            [hud hideAnimated:YES];\n        });\n    });\n}\n\n- (void)windowExample {\n    // Covers the entire screen. Similar to using the root view controller view.\n    MBProgressHUD *hud = [MBProgressHUD showHUDAddedTo:self.view.window animated:YES];\n    dispatch_async(dispatch_get_global_queue(QOS_CLASS_USER_INITIATED, 0), ^{\n        [self doSomeWork];\n        dispatch_async(dispatch_get_main_queue(), ^{\n            [hud hideAnimated:YES];\n        });\n    });\n}\n\n- (void)determinateExample {\n    MBProgressHUD *hud = [MBProgressHUD showHUDAddedTo:self.navigationController.view animated:YES];\n\n    // Set the determinate mode to show task progress.\n    hud.mode = MBProgressHUDModeDeterminate;\n    hud.label.text = NSLocalizedString(@\"Loading...\", @\"HUD loading title\");\n\n    dispatch_async(dispatch_get_global_queue(QOS_CLASS_USER_INITIATED, 0), ^{\n        // Do something useful in the background and update the HUD periodically.\n        [self doSomeWorkWithProgress];\n        dispatch_async(dispatch_get_main_queue(), ^{\n            [hud hideAnimated:YES];\n        });\n    });\n}\n\n- (void)determinateNSProgressExample {\n\tMBProgressHUD *hud = [MBProgressHUD showHUDAddedTo:self.navigationController.view animated:YES];\n\t\n\t// Set the determinate mode to show task progress.\n\thud.mode = MBProgressHUDModeDeterminate;\n\thud.label.text = NSLocalizedString(@\"Loading...\", @\"HUD loading title\");\n\n\t// Set up NSProgress\n\tNSProgress *progressObject = [NSProgress progressWithTotalUnitCount:100];\n\thud.progressObject = progressObject;\n\n\t// Configure a cancel button.\n\t[hud.button setTitle:NSLocalizedString(@\"Cancel\", @\"HUD cancel button title\") forState:UIControlStateNormal];\n\t[hud.button addTarget:progressObject action:@selector(cancel) forControlEvents:UIControlEventTouchUpInside];\n\n\tdispatch_async(dispatch_get_global_queue(QOS_CLASS_USER_INITIATED, 0), ^{\n\t\t// Do something useful in the background and update the HUD periodically.\n\t\t[self doSomeWorkWithProgressObject:progressObject];\n\t\tdispatch_async(dispatch_get_main_queue(), ^{\n\t\t\t[hud hideAnimated:YES];\n\t\t});\n\t});\n}\n\n- (void)annularDeterminateExample {\n    MBProgressHUD *hud = [MBProgressHUD showHUDAddedTo:self.navigationController.view animated:YES];\n\n    // Set the annular determinate mode to show task progress.\n    hud.mode = MBProgressHUDModeAnnularDeterminate;\n    hud.label.text = NSLocalizedString(@\"Loading...\", @\"HUD loading title\");\n\n    dispatch_async(dispatch_get_global_queue(QOS_CLASS_USER_INITIATED, 0), ^{\n        // Do something useful in the background and update the HUD periodically.\n        [self doSomeWorkWithProgress];\n        dispatch_async(dispatch_get_main_queue(), ^{\n            [hud hideAnimated:YES];\n        });\n    });\n}\n\n- (void)barDeterminateExample {\n    MBProgressHUD *hud = [MBProgressHUD showHUDAddedTo:self.navigationController.view animated:YES];\n\n    // Set the bar determinate mode to show task progress.\n    hud.mode = MBProgressHUDModeDeterminateHorizontalBar;\n    hud.label.text = NSLocalizedString(@\"Loading...\", @\"HUD loading title\");\n\n    dispatch_async(dispatch_get_global_queue(QOS_CLASS_USER_INITIATED, 0), ^{\n        // Do something useful in the background and update the HUD periodically.\n        [self doSomeWorkWithProgress];\n        dispatch_async(dispatch_get_main_queue(), ^{\n            [hud hideAnimated:YES];\n        });\n    });\n}\n\n- (void)customViewExample {\n    MBProgressHUD *hud = [MBProgressHUD showHUDAddedTo:self.navigationController.view animated:YES];\n\n    // Set the custom view mode to show any view.\n    hud.mode = MBProgressHUDModeCustomView;\n    // Set an image view with a checkmark.\n    UIImage *image = [[UIImage imageNamed:@\"Checkmark\"] imageWithRenderingMode:UIImageRenderingModeAlwaysTemplate];\n    hud.customView = [[UIImageView alloc] initWithImage:image];\n    // Looks a bit nicer if we make it square.\n    hud.square = YES;\n    // Optional label text.\n    hud.label.text = NSLocalizedString(@\"Done\", @\"HUD done title\");\n\n    [hud hideAnimated:YES afterDelay:3.f];\n}\n\n- (void)textExample {\n    MBProgressHUD *hud = [MBProgressHUD showHUDAddedTo:self.navigationController.view animated:YES];\n\n    // Set the text mode to show only text.\n    hud.mode = MBProgressHUDModeText;\n    hud.label.text = NSLocalizedString(@\"Message here!\", @\"HUD message title\");\n    // Move to bottm center.\n    hud.offset = CGPointMake(0.f, MBProgressMaxOffset);\n\n    [hud hideAnimated:YES afterDelay:3.f];\n}\n\n- (void)cancelationExample {\n    MBProgressHUD *hud = [MBProgressHUD showHUDAddedTo:self.navigationController.view animated:YES];\n\n    // Set the determinate mode to show task progress.\n    hud.mode = MBProgressHUDModeDeterminate;\n    hud.label.text = NSLocalizedString(@\"Loading...\", @\"HUD loading title\");\n\n    // Configure the button.\n    [hud.button setTitle:NSLocalizedString(@\"Cancel\", @\"HUD cancel button title\") forState:UIControlStateNormal];\n    [hud.button addTarget:self action:@selector(cancelWork:) forControlEvents:UIControlEventTouchUpInside];\n\n    dispatch_async(dispatch_get_global_queue(QOS_CLASS_USER_INITIATED, 0), ^{\n        // Do something useful in the background and update the HUD periodically.\n        [self doSomeWorkWithProgress];\n        dispatch_async(dispatch_get_main_queue(), ^{\n            [hud hideAnimated:YES];\n        });\n    });\n}\n\n- (void)modeSwitchingExample {\n    MBProgressHUD *hud = [MBProgressHUD showHUDAddedTo:self.navigationController.view animated:YES];\n\n    // Set some text to show the initial status.\n    hud.label.text = NSLocalizedString(@\"Preparing...\", @\"HUD preparing title\");\n    // Will look best, if we set a minimum size.\n    hud.minSize = CGSizeMake(150.f, 100.f);\n\n    dispatch_async(dispatch_get_global_queue(QOS_CLASS_USER_INITIATED, 0), ^{\n        // Do something useful in the background and update the HUD periodically.\n        [self doSomeWorkWithMixedProgress:hud];\n        dispatch_async(dispatch_get_main_queue(), ^{\n            [hud hideAnimated:YES];\n        });\n    });\n}\n\n- (void)networkingExample {\n    MBProgressHUD *hud = [MBProgressHUD showHUDAddedTo:self.navigationController.view animated:YES];\n\n    // Set some text to show the initial status.\n    hud.label.text = NSLocalizedString(@\"Preparing...\", @\"HUD preparing title\");\n    // Will look best, if we set a minimum size.\n    hud.minSize = CGSizeMake(150.f, 100.f);\n\n    [self doSomeNetworkWorkWithProgress];\n}\n\n- (void)dimBackgroundExample {\n\tMBProgressHUD *hud = [MBProgressHUD showHUDAddedTo:self.navigationController.view animated:YES];\n\n\t// Change the background view style and color.\n\thud.backgroundView.style = MBProgressHUDBackgroundStyleSolidColor;\n\thud.backgroundView.color = [UIColor colorWithWhite:0.f alpha:0.1f];\n\n\tdispatch_async(dispatch_get_global_queue(QOS_CLASS_USER_INITIATED, 0), ^{\n\t\t[self doSomeWork];\n\t\tdispatch_async(dispatch_get_main_queue(), ^{\n\t\t\t[hud hideAnimated:YES];\n\t\t});\n\t});\n}\n\n- (void)colorExample {\n\tMBProgressHUD *hud = [MBProgressHUD showHUDAddedTo:self.navigationController.view animated:YES];\n\thud.contentColor = [UIColor colorWithRed:0.f green:0.6f blue:0.7f alpha:1.f];\n\n\t// Set the label text.\n\thud.label.text = NSLocalizedString(@\"Loading...\", @\"HUD loading title\");\n\n\tdispatch_async(dispatch_get_global_queue(QOS_CLASS_USER_INITIATED, 0), ^{\n\t\t[self doSomeWork];\n\t\tdispatch_async(dispatch_get_main_queue(), ^{\n\t\t\t[hud hideAnimated:YES];\n\t\t});\n\t});\n}\n\n#pragma mark - Tasks\n\n- (void)doSomeWork {\n    // Simulate by just waiting.\n    sleep(3.);\n}\n\n- (void)doSomeWorkWithProgressObject:(NSProgress *)progressObject {\n\t// This just increases the progress indicator in a loop.\n\twhile (progressObject.fractionCompleted < 1.0f) {\n\t\tif (progressObject.isCancelled) break;\n\t\t[progressObject becomeCurrentWithPendingUnitCount:1];\n\t\t[progressObject resignCurrent];\n\t\tusleep(50000);\n\t}\n}\n\n- (void)doSomeWorkWithProgress {\n    self.canceled = NO;\n    // This just increases the progress indicator in a loop.\n    float progress = 0.0f;\n    while (progress < 1.0f) {\n        if (self.canceled) break;\n        progress += 0.01f;\n        dispatch_async(dispatch_get_main_queue(), ^{\n            // Instead we could have also passed a reference to the HUD\n            // to the HUD to myProgressTask as a method parameter.\n            [MBProgressHUD HUDForView:self.navigationController.view].progress = progress;\n        });\n        usleep(50000);\n    }\n}\n\n- (void)doSomeWorkWithMixedProgress:(MBProgressHUD *)hud {\n    // Indeterminate mode\n    sleep(2);\n    // Switch to determinate mode\n    dispatch_async(dispatch_get_main_queue(), ^{\n        hud.mode = MBProgressHUDModeDeterminate;\n        hud.label.text = NSLocalizedString(@\"Loading...\", @\"HUD loading title\");\n    });\n    float progress = 0.0f;\n    while (progress < 1.0f) {\n        progress += 0.01f;\n        dispatch_async(dispatch_get_main_queue(), ^{\n            hud.progress = progress;\n        });\n        usleep(50000);\n    }\n    // Back to indeterminate mode\n    dispatch_async(dispatch_get_main_queue(), ^{\n        hud.mode = MBProgressHUDModeIndeterminate;\n        hud.label.text = NSLocalizedString(@\"Cleaning up...\", @\"HUD cleanining up title\");\n    });\n    sleep(2);\n    dispatch_sync(dispatch_get_main_queue(), ^{\n        UIImage *image = [[UIImage imageNamed:@\"Checkmark\"] imageWithRenderingMode:UIImageRenderingModeAlwaysTemplate];\n        UIImageView *imageView = [[UIImageView alloc] initWithImage:image];\n        hud.customView = imageView;\n        hud.mode = MBProgressHUDModeCustomView;\n        hud.label.text = NSLocalizedString(@\"Completed\", @\"HUD completed title\");\n    });\n    sleep(2);\n}\n\n- (void)doSomeNetworkWorkWithProgress {\n    NSURLSessionConfiguration *sessionConfig = [NSURLSessionConfiguration defaultSessionConfiguration];\n    NSURLSession *session = [NSURLSession sessionWithConfiguration:sessionConfig delegate:self delegateQueue:nil];\n    NSURL *URL = [NSURL URLWithString:@\"https://support.apple.com/library/APPLE/APPLECARE_ALLGEOS/HT1425/sample_iPod.m4v.zip\"];\n    NSURLSessionDownloadTask *task = [session downloadTaskWithURL:URL];\n    [task resume];\n}\n\n- (void)cancelWork:(id)sender {\n    self.canceled = YES;\n}\n\n#pragma mark - UITableViewDelegate\n\n- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView {\n    return self.examples.count;\n}\n\n- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {\n    return self.examples[section].count;\n}\n\n- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {\n    MBExample *example = self.examples[indexPath.section][indexPath.row];\n    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:@\"MBExampleCell\" forIndexPath:indexPath];\n    cell.textLabel.text = example.title;\n    cell.textLabel.textColor = self.view.tintColor;\n    cell.textLabel.textAlignment = NSTextAlignmentCenter;\n    cell.selectedBackgroundView = [UIView new];\n    cell.selectedBackgroundView.backgroundColor = [cell.textLabel.textColor colorWithAlphaComponent:0.1f];\n    return cell;\n}\n\n#pragma mark - UITableViewDelegate\n\n- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {\n    MBExample *example = self.examples[indexPath.section][indexPath.row];\n#pragma clang diagnostic push\n#pragma clang diagnostic ignored \"-Warc-performSelector-leaks\"\n    [self performSelector:example.selector];\n#pragma clang diagnostic pop\n\n    dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(0.1 * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{\n        [tableView deselectRowAtIndexPath:indexPath animated:YES];\n    });\n}\n\n#pragma mark - NSURLSessionDelegate\n\n- (void)URLSession:(NSURLSession *)session downloadTask:(NSURLSessionDownloadTask *)downloadTask didFinishDownloadingToURL:(NSURL *)location {\n    // Do something with the data at location...\n\n    // Update the UI on the main thread\n    dispatch_async(dispatch_get_main_queue(), ^{\n        MBProgressHUD *hud = [MBProgressHUD HUDForView:self.navigationController.view];\n        UIImage *image = [[UIImage imageNamed:@\"Checkmark\"] imageWithRenderingMode:UIImageRenderingModeAlwaysTemplate];\n        UIImageView *imageView = [[UIImageView alloc] initWithImage:image];\n        hud.customView = imageView;\n        hud.mode = MBProgressHUDModeCustomView;\n        hud.label.text = NSLocalizedString(@\"Completed\", @\"HUD completed title\");\n        [hud hideAnimated:YES afterDelay:3.f];\n    });\n}\n\n- (void)URLSession:(NSURLSession *)session downloadTask:(NSURLSessionDownloadTask *)downloadTask didWriteData:(int64_t)bytesWritten totalBytesWritten:(int64_t)totalBytesWritten totalBytesExpectedToWrite:(int64_t)totalBytesExpectedToWrite {\n    float progress = (float)totalBytesWritten / (float)totalBytesExpectedToWrite;\n\n    // Update the UI on the main thread\n    dispatch_async(dispatch_get_main_queue(), ^{\n        MBProgressHUD *hud = [MBProgressHUD HUDForView:self.navigationController.view];\n        hud.mode = MBProgressHUDModeDeterminate;\n        hud.progress = progress;\n    });\n}\n\n@end\n"
  },
  {
    "path": "Demo/HudDemo/en.lproj/Launch.storyboard",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<document type=\"com.apple.InterfaceBuilder3.CocoaTouch.Storyboard.XIB\" version=\"3.0\" toolsVersion=\"15702\" targetRuntime=\"iOS.CocoaTouch\" propertyAccessControl=\"none\" useAutolayout=\"YES\" useTraitCollections=\"YES\" colorMatched=\"YES\" initialViewController=\"Fq2-vR-Rsu\">\n    <device id=\"retina6_1\" orientation=\"portrait\" appearance=\"light\"/>\n    <dependencies>\n        <deployment identifier=\"iOS\"/>\n        <plugIn identifier=\"com.apple.InterfaceBuilder.IBCocoaTouchPlugin\" version=\"15704\"/>\n        <capability name=\"documents saved in the Xcode 8 format\" minToolsVersion=\"8.0\"/>\n    </dependencies>\n    <scenes>\n        <!--Navigation Controller-->\n        <scene sceneID=\"gfk-xX-zgL\">\n            <objects>\n                <navigationController id=\"Fq2-vR-Rsu\" sceneMemberID=\"viewController\">\n                    <navigationBar key=\"navigationBar\" contentMode=\"scaleToFill\" id=\"2LN-7G-jZD\">\n                        <rect key=\"frame\" x=\"0.0\" y=\"44\" width=\"414\" height=\"44\"/>\n                        <autoresizingMask key=\"autoresizingMask\"/>\n                    </navigationBar>\n                    <connections>\n                        <segue destination=\"iXE-FA-91q\" kind=\"relationship\" relationship=\"rootViewController\" id=\"peN-oI-nI6\"/>\n                    </connections>\n                </navigationController>\n                <placeholder placeholderIdentifier=\"IBFirstResponder\" id=\"blx-hg-yRR\" userLabel=\"First Responder\" sceneMemberID=\"firstResponder\"/>\n            </objects>\n            <point key=\"canvasLocation\" x=\"-328\" y=\"525\"/>\n        </scene>\n        <!--MBProgressHUD-->\n        <scene sceneID=\"v3e-zg-M0g\">\n            <objects>\n                <viewController id=\"iXE-FA-91q\" sceneMemberID=\"viewController\">\n                    <layoutGuides>\n                        <viewControllerLayoutGuide type=\"top\" id=\"Qu9-82-m3K\"/>\n                        <viewControllerLayoutGuide type=\"bottom\" id=\"YSo-zR-oqe\"/>\n                    </layoutGuides>\n                    <view key=\"view\" contentMode=\"scaleToFill\" id=\"TWt-Z9-CWt\">\n                        <rect key=\"frame\" x=\"0.0\" y=\"0.0\" width=\"414\" height=\"896\"/>\n                        <autoresizingMask key=\"autoresizingMask\" widthSizable=\"YES\" heightSizable=\"YES\"/>\n                        <color key=\"backgroundColor\" red=\"0.93725490199999995\" green=\"0.93725490199999995\" blue=\"0.95686274510000002\" alpha=\"1\" colorSpace=\"custom\" customColorSpace=\"sRGB\"/>\n                    </view>\n                    <navigationItem key=\"navigationItem\" title=\"MBProgressHUD\" id=\"IuF-Dp-Voh\"/>\n                </viewController>\n                <placeholder placeholderIdentifier=\"IBFirstResponder\" id=\"zfE-vP-CLG\" userLabel=\"First Responder\" sceneMemberID=\"firstResponder\"/>\n            </objects>\n            <point key=\"canvasLocation\" x=\"413\" y=\"525\"/>\n        </scene>\n    </scenes>\n</document>\n"
  },
  {
    "path": "Demo/HudDemo/en.lproj/Main.storyboard",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<document type=\"com.apple.InterfaceBuilder3.CocoaTouch.Storyboard.XIB\" version=\"3.0\" toolsVersion=\"15702\" targetRuntime=\"iOS.CocoaTouch\" propertyAccessControl=\"none\" useAutolayout=\"YES\" useTraitCollections=\"YES\" colorMatched=\"YES\" initialViewController=\"9dw-fs-BGe\">\n    <device id=\"retina6_1\" orientation=\"portrait\" appearance=\"light\"/>\n    <dependencies>\n        <deployment identifier=\"iOS\"/>\n        <plugIn identifier=\"com.apple.InterfaceBuilder.IBCocoaTouchPlugin\" version=\"15704\"/>\n        <capability name=\"documents saved in the Xcode 8 format\" minToolsVersion=\"8.0\"/>\n    </dependencies>\n    <scenes>\n        <!--MBProgressHUD-->\n        <scene sceneID=\"t7O-Gz-sDn\">\n            <objects>\n                <tableViewController id=\"1VA-J6-vTg\" customClass=\"MBHudDemoViewController\" sceneMemberID=\"viewController\">\n                    <tableView key=\"view\" clipsSubviews=\"YES\" contentMode=\"scaleToFill\" alwaysBounceVertical=\"YES\" dataMode=\"prototypes\" style=\"grouped\" separatorStyle=\"default\" rowHeight=\"44\" sectionHeaderHeight=\"18\" sectionFooterHeight=\"18\" id=\"v14-ld-S1m\">\n                        <rect key=\"frame\" x=\"0.0\" y=\"0.0\" width=\"414\" height=\"896\"/>\n                        <autoresizingMask key=\"autoresizingMask\" widthSizable=\"YES\" heightSizable=\"YES\"/>\n                        <color key=\"backgroundColor\" cocoaTouchSystemColor=\"groupTableViewBackgroundColor\"/>\n                        <inset key=\"separatorInset\" minX=\"30\" minY=\"0.0\" maxX=\"30\" maxY=\"0.0\"/>\n                        <prototypes>\n                            <tableViewCell clipsSubviews=\"YES\" contentMode=\"scaleToFill\" selectionStyle=\"blue\" indentationWidth=\"10\" reuseIdentifier=\"MBExampleCell\" id=\"EW9-df-ImK\">\n                                <rect key=\"frame\" x=\"0.0\" y=\"55.5\" width=\"414\" height=\"44\"/>\n                                <autoresizingMask key=\"autoresizingMask\"/>\n                                <tableViewCellContentView key=\"contentView\" opaque=\"NO\" clipsSubviews=\"YES\" multipleTouchEnabled=\"YES\" contentMode=\"center\" tableViewCell=\"EW9-df-ImK\" id=\"TMc-hr-0mm\">\n                                    <rect key=\"frame\" x=\"0.0\" y=\"0.0\" width=\"414\" height=\"44\"/>\n                                    <autoresizingMask key=\"autoresizingMask\"/>\n                                </tableViewCellContentView>\n                            </tableViewCell>\n                        </prototypes>\n                        <sections/>\n                        <connections>\n                            <outlet property=\"dataSource\" destination=\"1VA-J6-vTg\" id=\"hKQ-Jz-Rff\"/>\n                            <outlet property=\"delegate\" destination=\"1VA-J6-vTg\" id=\"JHC-qg-dsn\"/>\n                        </connections>\n                    </tableView>\n                    <navigationItem key=\"navigationItem\" title=\"MBProgressHUD\" id=\"0xs-aB-nPy\"/>\n                </tableViewController>\n                <placeholder placeholderIdentifier=\"IBFirstResponder\" id=\"e7W-Fd-fGX\" userLabel=\"First Responder\" sceneMemberID=\"firstResponder\"/>\n            </objects>\n            <point key=\"canvasLocation\" x=\"553\" y=\"428\"/>\n        </scene>\n        <!--Navigation Controller-->\n        <scene sceneID=\"sbm-9a-RlC\">\n            <objects>\n                <navigationController id=\"9dw-fs-BGe\" sceneMemberID=\"viewController\">\n                    <navigationBar key=\"navigationBar\" contentMode=\"scaleToFill\" id=\"355-tf-2jt\">\n                        <rect key=\"frame\" x=\"0.0\" y=\"44\" width=\"414\" height=\"44\"/>\n                        <autoresizingMask key=\"autoresizingMask\"/>\n                    </navigationBar>\n                    <connections>\n                        <segue destination=\"1VA-J6-vTg\" kind=\"relationship\" relationship=\"rootViewController\" id=\"JkN-8S-WYA\"/>\n                    </connections>\n                </navigationController>\n                <placeholder placeholderIdentifier=\"IBFirstResponder\" id=\"umT-Lr-spd\" userLabel=\"First Responder\" sceneMemberID=\"firstResponder\"/>\n            </objects>\n            <point key=\"canvasLocation\" x=\"-267\" y=\"428\"/>\n        </scene>\n    </scenes>\n</document>\n"
  },
  {
    "path": "Demo/HudDemo/main.m",
    "content": "//\n//  main.m\n//  HudDemo\n//\n//  Created by Matej Bukovinski on 2.4.09.\n//  Copyright bukovinski.com 2009-2016. All rights reserved.\n//\n\n#import <UIKit/UIKit.h>\n#import \"MBHudDemoAppDelegate.h\"\n\nint main(int argc, char *argv[]) {\n    @autoreleasepool {\n        return UIApplicationMain(argc, argv, nil, NSStringFromClass([MBHudDemoAppDelegate class]));\n    }\n}\n"
  },
  {
    "path": "Demo/HudDemo.xcodeproj/project.pbxproj",
    "content": "// !$*UTF8*$!\n{\n\tarchiveVersion = 1;\n\tclasses = {\n\t};\n\tobjectVersion = 46;\n\tobjects = {\n\n/* Begin PBXBuildFile section */\n\t\t1D60589F0D05DD5A006BFB54 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1D30AB110D05D00D00671497 /* Foundation.framework */; };\n\t\t1DF5F4E00D08C38300B7A737 /* UIKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1DF5F4DF0D08C38300B7A737 /* UIKit.framework */; };\n\t\t5BE141EE1CD8C33D0023BC9E /* QuartzCore.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 5BE141ED1CD8C33D0023BC9E /* QuartzCore.framework */; };\n\t\tD22F7D810F85241C00550BB3 /* MBProgressHUD.m in Sources */ = {isa = PBXBuildFile; fileRef = D22F7D800F85241C00550BB3 /* MBProgressHUD.m */; };\n\t\tD274948B1D3B74AA00ABEB66 /* Images.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = D274948A1D3B74AA00ABEB66 /* Images.xcassets */; };\n\t\tD27F18451D3B5878009D7482 /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = D27F18441D3B5878009D7482 /* main.m */; };\n\t\tD27F18481D3B5878009D7482 /* MBHudDemoTVAppDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = D27F18471D3B5878009D7482 /* MBHudDemoTVAppDelegate.m */; };\n\t\tD27F184B1D3B5878009D7482 /* MBHudDemoTVViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = D27F184A1D3B5878009D7482 /* MBHudDemoTVViewController.m */; };\n\t\tD27F184E1D3B5878009D7482 /* Main.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = D27F184C1D3B5878009D7482 /* Main.storyboard */; };\n\t\tD27F18551D3B5AAF009D7482 /* MBProgressHUD.m in Sources */ = {isa = PBXBuildFile; fileRef = D22F7D800F85241C00550BB3 /* MBProgressHUD.m */; };\n\t\tD27F185A1D3B5DFF009D7482 /* MBHudDemoAppDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = D27F18581D3B5DFF009D7482 /* MBHudDemoAppDelegate.m */; };\n\t\tD27F185B1D3B5DFF009D7482 /* MBHudDemoViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = D27F18591D3B5DFF009D7482 /* MBHudDemoViewController.m */; };\n\t\tD27F185E1D3B5E0D009D7482 /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = D27F185D1D3B5E0D009D7482 /* main.m */; };\n\t\tD27F18631D3B5E21009D7482 /* Launch.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = D27F185F1D3B5E21009D7482 /* Launch.storyboard */; };\n\t\tD27F18641D3B5E21009D7482 /* Main.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = D27F18611D3B5E21009D7482 /* Main.storyboard */; };\n\t\tD286A76D1518CA9F00E13FB8 /* CoreGraphics.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D286A76C1518CA9F00E13FB8 /* CoreGraphics.framework */; };\n\t\tD2B174121C5E3A3D00021915 /* HudTests.m in Sources */ = {isa = PBXBuildFile; fileRef = D2B174111C5E3A3D00021915 /* HudTests.m */; };\n\t\tD2D75D5323A8193100485497 /* Launch.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = D2D75D5123A8193000485497 /* Launch.storyboard */; };\n\t\tD2EEB3811B55967200F59EC1 /* Images.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = D2EEB3801B55967200F59EC1 /* Images.xcassets */; };\n/* End PBXBuildFile section */\n\n/* Begin PBXContainerItemProxy section */\n\t\tD2B174141C5E3A3D00021915 /* PBXContainerItemProxy */ = {\n\t\t\tisa = PBXContainerItemProxy;\n\t\t\tcontainerPortal = 29B97313FDCFA39411CA2CEA /* Project object */;\n\t\t\tproxyType = 1;\n\t\t\tremoteGlobalIDString = 1D6058900D05DD3D006BFB54;\n\t\t\tremoteInfo = HudDemo;\n\t\t};\n/* End PBXContainerItemProxy section */\n\n/* Begin PBXFileReference section */\n\t\t1D30AB110D05D00D00671497 /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = System/Library/Frameworks/Foundation.framework; sourceTree = SDKROOT; };\n\t\t1D6058910D05DD3D006BFB54 /* HudDemo.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = HudDemo.app; sourceTree = BUILT_PRODUCTS_DIR; };\n\t\t1DF5F4DF0D08C38300B7A737 /* UIKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = UIKit.framework; path = System/Library/Frameworks/UIKit.framework; sourceTree = SDKROOT; };\n\t\t5BE141ED1CD8C33D0023BC9E /* QuartzCore.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = QuartzCore.framework; path = System/Library/Frameworks/QuartzCore.framework; sourceTree = SDKROOT; };\n\t\tD22F7D7F0F85241C00550BB3 /* MBProgressHUD.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = MBProgressHUD.h; path = ../MBProgressHUD.h; sourceTree = SOURCE_ROOT; };\n\t\tD22F7D800F85241C00550BB3 /* MBProgressHUD.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = MBProgressHUD.m; path = ../MBProgressHUD.m; sourceTree = \"<group>\"; };\n\t\tD274948A1D3B74AA00ABEB66 /* Images.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Images.xcassets; sourceTree = \"<group>\"; };\n\t\tD27F18411D3B5878009D7482 /* HudDemoTV.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = HudDemoTV.app; sourceTree = BUILT_PRODUCTS_DIR; };\n\t\tD27F18441D3B5878009D7482 /* main.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = main.m; sourceTree = \"<group>\"; };\n\t\tD27F18461D3B5878009D7482 /* MBHudDemoTVAppDelegate.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = MBHudDemoTVAppDelegate.h; sourceTree = \"<group>\"; };\n\t\tD27F18471D3B5878009D7482 /* MBHudDemoTVAppDelegate.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = MBHudDemoTVAppDelegate.m; sourceTree = \"<group>\"; };\n\t\tD27F18491D3B5878009D7482 /* MBHudDemoTVViewController.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = MBHudDemoTVViewController.h; sourceTree = \"<group>\"; };\n\t\tD27F184A1D3B5878009D7482 /* MBHudDemoTVViewController.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = MBHudDemoTVViewController.m; sourceTree = \"<group>\"; };\n\t\tD27F184D1D3B5878009D7482 /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/Main.storyboard; sourceTree = \"<group>\"; };\n\t\tD27F18511D3B5878009D7482 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = \"<group>\"; };\n\t\tD27F18561D3B5DFF009D7482 /* MBHudDemoAppDelegate.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = MBHudDemoAppDelegate.h; path = HudDemo/MBHudDemoAppDelegate.h; sourceTree = SOURCE_ROOT; };\n\t\tD27F18571D3B5DFF009D7482 /* MBHudDemoViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = MBHudDemoViewController.h; path = HudDemo/MBHudDemoViewController.h; sourceTree = SOURCE_ROOT; };\n\t\tD27F18581D3B5DFF009D7482 /* MBHudDemoAppDelegate.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = MBHudDemoAppDelegate.m; path = HudDemo/MBHudDemoAppDelegate.m; sourceTree = SOURCE_ROOT; };\n\t\tD27F18591D3B5DFF009D7482 /* MBHudDemoViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = MBHudDemoViewController.m; path = HudDemo/MBHudDemoViewController.m; sourceTree = SOURCE_ROOT; };\n\t\tD27F185C1D3B5E0D009D7482 /* HudDemo_Prefix.pch */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = HudDemo_Prefix.pch; path = HudDemo/HudDemo_Prefix.pch; sourceTree = \"<group>\"; };\n\t\tD27F185D1D3B5E0D009D7482 /* main.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = main.m; path = HudDemo/main.m; sourceTree = \"<group>\"; };\n\t\tD27F18601D3B5E21009D7482 /* en */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = en; path = HudDemo/en.lproj/Launch.storyboard; sourceTree = \"<group>\"; };\n\t\tD27F18621D3B5E21009D7482 /* en */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = en; path = HudDemo/en.lproj/Main.storyboard; sourceTree = \"<group>\"; };\n\t\tD27F18651D3B5E2D009D7482 /* Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; name = Info.plist; path = HudDemo/Info.plist; sourceTree = \"<group>\"; };\n\t\tD286A76C1518CA9F00E13FB8 /* CoreGraphics.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreGraphics.framework; path = System/Library/Frameworks/CoreGraphics.framework; sourceTree = SDKROOT; };\n\t\tD2B1269B23CB8D9C00A01F4C /* HudDemo.entitlements */ = {isa = PBXFileReference; lastKnownFileType = text.plist.entitlements; path = HudDemo.entitlements; sourceTree = \"<group>\"; };\n\t\tD2B1740F1C5E3A3D00021915 /* HudTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = HudTests.xctest; sourceTree = BUILT_PRODUCTS_DIR; };\n\t\tD2B174111C5E3A3D00021915 /* HudTests.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = HudTests.m; sourceTree = \"<group>\"; };\n\t\tD2B174131C5E3A3D00021915 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = \"<group>\"; };\n\t\tD2D75D5223A8193000485497 /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/Launch.storyboard; sourceTree = \"<group>\"; };\n\t\tD2EEB3801B55967200F59EC1 /* Images.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; name = Images.xcassets; path = HudDemo/Images.xcassets; sourceTree = SOURCE_ROOT; };\n/* End PBXFileReference section */\n\n/* Begin PBXFrameworksBuildPhase section */\n\t\t1D60588F0D05DD3D006BFB54 /* Frameworks */ = {\n\t\t\tisa = PBXFrameworksBuildPhase;\n\t\t\tbuildActionMask = 2147483647;\n\t\t\tfiles = (\n\t\t\t\t5BE141EE1CD8C33D0023BC9E /* QuartzCore.framework in Frameworks */,\n\t\t\t\tD286A76D1518CA9F00E13FB8 /* CoreGraphics.framework in Frameworks */,\n\t\t\t\t1D60589F0D05DD5A006BFB54 /* Foundation.framework in Frameworks */,\n\t\t\t\t1DF5F4E00D08C38300B7A737 /* UIKit.framework in Frameworks */,\n\t\t\t);\n\t\t\trunOnlyForDeploymentPostprocessing = 0;\n\t\t};\n\t\tD27F183E1D3B5878009D7482 /* Frameworks */ = {\n\t\t\tisa = PBXFrameworksBuildPhase;\n\t\t\tbuildActionMask = 2147483647;\n\t\t\tfiles = (\n\t\t\t);\n\t\t\trunOnlyForDeploymentPostprocessing = 0;\n\t\t};\n\t\tD2B1740C1C5E3A3D00021915 /* Frameworks */ = {\n\t\t\tisa = PBXFrameworksBuildPhase;\n\t\t\tbuildActionMask = 2147483647;\n\t\t\tfiles = (\n\t\t\t);\n\t\t\trunOnlyForDeploymentPostprocessing = 0;\n\t\t};\n/* End PBXFrameworksBuildPhase section */\n\n/* Begin PBXGroup section */\n\t\t080E96DDFE201D6D7F000001 /* HudDemo */ = {\n\t\t\tisa = PBXGroup;\n\t\t\tchildren = (\n\t\t\t\tD2B1269B23CB8D9C00A01F4C /* HudDemo.entitlements */,\n\t\t\t\tD27F18561D3B5DFF009D7482 /* MBHudDemoAppDelegate.h */,\n\t\t\t\tD27F18571D3B5DFF009D7482 /* MBHudDemoViewController.h */,\n\t\t\t\tD27F18581D3B5DFF009D7482 /* MBHudDemoAppDelegate.m */,\n\t\t\t\tD27F18591D3B5DFF009D7482 /* MBHudDemoViewController.m */,\n\t\t\t\t29B97315FDCFA39411CA2CEA /* Other Sources */,\n\t\t\t\t29B97317FDCFA39411CA2CEA /* Resources */,\n\t\t\t);\n\t\t\tpath = HudDemo;\n\t\t\tsourceTree = \"<group>\";\n\t\t};\n\t\t19C28FACFE9D520D11CA2CBB /* Products */ = {\n\t\t\tisa = PBXGroup;\n\t\t\tchildren = (\n\t\t\t\t1D6058910D05DD3D006BFB54 /* HudDemo.app */,\n\t\t\t\tD2B1740F1C5E3A3D00021915 /* HudTests.xctest */,\n\t\t\t\tD27F18411D3B5878009D7482 /* HudDemoTV.app */,\n\t\t\t);\n\t\t\tname = Products;\n\t\t\tsourceTree = \"<group>\";\n\t\t};\n\t\t29B97314FDCFA39411CA2CEA /* CustomTemplate */ = {\n\t\t\tisa = PBXGroup;\n\t\t\tchildren = (\n\t\t\t\t080E96DDFE201D6D7F000001 /* HudDemo */,\n\t\t\t\tD27F18421D3B5878009D7482 /* HudDemoTV */,\n\t\t\t\tD2B174101C5E3A3D00021915 /* HudTests */,\n\t\t\t\tD28CBB391A87A6B00052DCEC /* MBProgressHUD */,\n\t\t\t\t29B97323FDCFA39411CA2CEA /* Frameworks */,\n\t\t\t\t19C28FACFE9D520D11CA2CBB /* Products */,\n\t\t\t);\n\t\t\tname = CustomTemplate;\n\t\t\tsourceTree = \"<group>\";\n\t\t};\n\t\t29B97315FDCFA39411CA2CEA /* Other Sources */ = {\n\t\t\tisa = PBXGroup;\n\t\t\tchildren = (\n\t\t\t\tD27F185C1D3B5E0D009D7482 /* HudDemo_Prefix.pch */,\n\t\t\t\tD27F185D1D3B5E0D009D7482 /* main.m */,\n\t\t\t);\n\t\t\tname = \"Other Sources\";\n\t\t\tpath = ..;\n\t\t\tsourceTree = \"<group>\";\n\t\t};\n\t\t29B97317FDCFA39411CA2CEA /* Resources */ = {\n\t\t\tisa = PBXGroup;\n\t\t\tchildren = (\n\t\t\t\tD27F18651D3B5E2D009D7482 /* Info.plist */,\n\t\t\t\tD277FDBF11FC880100304321 /* UI */,\n\t\t\t\tD2EEB3801B55967200F59EC1 /* Images.xcassets */,\n\t\t\t);\n\t\t\tname = Resources;\n\t\t\tpath = ..;\n\t\t\tsourceTree = \"<group>\";\n\t\t};\n\t\t29B97323FDCFA39411CA2CEA /* Frameworks */ = {\n\t\t\tisa = PBXGroup;\n\t\t\tchildren = (\n\t\t\t\t5BE141ED1CD8C33D0023BC9E /* QuartzCore.framework */,\n\t\t\t\tD286A76C1518CA9F00E13FB8 /* CoreGraphics.framework */,\n\t\t\t\t1DF5F4DF0D08C38300B7A737 /* UIKit.framework */,\n\t\t\t\t1D30AB110D05D00D00671497 /* Foundation.framework */,\n\t\t\t);\n\t\t\tname = Frameworks;\n\t\t\tsourceTree = \"<group>\";\n\t\t};\n\t\tD277FDBF11FC880100304321 /* UI */ = {\n\t\t\tisa = PBXGroup;\n\t\t\tchildren = (\n\t\t\t\tD27F185F1D3B5E21009D7482 /* Launch.storyboard */,\n\t\t\t\tD27F18611D3B5E21009D7482 /* Main.storyboard */,\n\t\t\t);\n\t\t\tname = UI;\n\t\t\tsourceTree = \"<group>\";\n\t\t};\n\t\tD27F18421D3B5878009D7482 /* HudDemoTV */ = {\n\t\t\tisa = PBXGroup;\n\t\t\tchildren = (\n\t\t\t\tD27F18461D3B5878009D7482 /* MBHudDemoTVAppDelegate.h */,\n\t\t\t\tD27F18471D3B5878009D7482 /* MBHudDemoTVAppDelegate.m */,\n\t\t\t\tD27F18491D3B5878009D7482 /* MBHudDemoTVViewController.h */,\n\t\t\t\tD27F184A1D3B5878009D7482 /* MBHudDemoTVViewController.m */,\n\t\t\t\tD27F18431D3B5878009D7482 /* Other Sources */,\n\t\t\t\tD27F18671D3B5E43009D7482 /* Resources */,\n\t\t\t);\n\t\t\tpath = HudDemoTV;\n\t\t\tsourceTree = \"<group>\";\n\t\t};\n\t\tD27F18431D3B5878009D7482 /* Other Sources */ = {\n\t\t\tisa = PBXGroup;\n\t\t\tchildren = (\n\t\t\t\tD27F18441D3B5878009D7482 /* main.m */,\n\t\t\t);\n\t\t\tname = \"Other Sources\";\n\t\t\tsourceTree = \"<group>\";\n\t\t};\n\t\tD27F18671D3B5E43009D7482 /* Resources */ = {\n\t\t\tisa = PBXGroup;\n\t\t\tchildren = (\n\t\t\t\tD2D75D5123A8193000485497 /* Launch.storyboard */,\n\t\t\t\tD27F184C1D3B5878009D7482 /* Main.storyboard */,\n\t\t\t\tD27F18511D3B5878009D7482 /* Info.plist */,\n\t\t\t\tD274948A1D3B74AA00ABEB66 /* Images.xcassets */,\n\t\t\t);\n\t\t\tname = Resources;\n\t\t\tsourceTree = \"<group>\";\n\t\t};\n\t\tD28CBB391A87A6B00052DCEC /* MBProgressHUD */ = {\n\t\t\tisa = PBXGroup;\n\t\t\tchildren = (\n\t\t\t\tD22F7D7F0F85241C00550BB3 /* MBProgressHUD.h */,\n\t\t\t\tD22F7D800F85241C00550BB3 /* MBProgressHUD.m */,\n\t\t\t);\n\t\t\tname = MBProgressHUD;\n\t\t\tsourceTree = \"<group>\";\n\t\t};\n\t\tD2B174101C5E3A3D00021915 /* HudTests */ = {\n\t\t\tisa = PBXGroup;\n\t\t\tchildren = (\n\t\t\t\tD2B174111C5E3A3D00021915 /* HudTests.m */,\n\t\t\t\tD2B174131C5E3A3D00021915 /* Info.plist */,\n\t\t\t);\n\t\t\tpath = HudTests;\n\t\t\tsourceTree = \"<group>\";\n\t\t};\n/* End PBXGroup section */\n\n/* Begin PBXNativeTarget section */\n\t\t1D6058900D05DD3D006BFB54 /* HudDemo */ = {\n\t\t\tisa = PBXNativeTarget;\n\t\t\tbuildConfigurationList = 1D6058960D05DD3E006BFB54 /* Build configuration list for PBXNativeTarget \"HudDemo\" */;\n\t\t\tbuildPhases = (\n\t\t\t\t1D60588D0D05DD3D006BFB54 /* Resources */,\n\t\t\t\t1D60588E0D05DD3D006BFB54 /* Sources */,\n\t\t\t\t1D60588F0D05DD3D006BFB54 /* Frameworks */,\n\t\t\t);\n\t\t\tbuildRules = (\n\t\t\t);\n\t\t\tdependencies = (\n\t\t\t);\n\t\t\tname = HudDemo;\n\t\t\tproductName = HudDemo;\n\t\t\tproductReference = 1D6058910D05DD3D006BFB54 /* HudDemo.app */;\n\t\t\tproductType = \"com.apple.product-type.application\";\n\t\t};\n\t\tD27F18401D3B5878009D7482 /* HudDemoTV */ = {\n\t\t\tisa = PBXNativeTarget;\n\t\t\tbuildConfigurationList = D27F18541D3B5878009D7482 /* Build configuration list for PBXNativeTarget \"HudDemoTV\" */;\n\t\t\tbuildPhases = (\n\t\t\t\tD27F183D1D3B5878009D7482 /* Sources */,\n\t\t\t\tD27F183E1D3B5878009D7482 /* Frameworks */,\n\t\t\t\tD27F183F1D3B5878009D7482 /* Resources */,\n\t\t\t);\n\t\t\tbuildRules = (\n\t\t\t);\n\t\t\tdependencies = (\n\t\t\t);\n\t\t\tname = HudDemoTV;\n\t\t\tproductName = HudDemoTV;\n\t\t\tproductReference = D27F18411D3B5878009D7482 /* HudDemoTV.app */;\n\t\t\tproductType = \"com.apple.product-type.application\";\n\t\t};\n\t\tD2B1740E1C5E3A3D00021915 /* HudTests */ = {\n\t\t\tisa = PBXNativeTarget;\n\t\t\tbuildConfigurationList = D2B174161C5E3A3D00021915 /* Build configuration list for PBXNativeTarget \"HudTests\" */;\n\t\t\tbuildPhases = (\n\t\t\t\tD2B1740B1C5E3A3D00021915 /* Sources */,\n\t\t\t\tD2B1740C1C5E3A3D00021915 /* Frameworks */,\n\t\t\t\tD2B1740D1C5E3A3D00021915 /* Resources */,\n\t\t\t);\n\t\t\tbuildRules = (\n\t\t\t);\n\t\t\tdependencies = (\n\t\t\t\tD2B174151C5E3A3D00021915 /* PBXTargetDependency */,\n\t\t\t);\n\t\t\tname = HudTests;\n\t\t\tproductName = HudTests;\n\t\t\tproductReference = D2B1740F1C5E3A3D00021915 /* HudTests.xctest */;\n\t\t\tproductType = \"com.apple.product-type.bundle.unit-test\";\n\t\t};\n/* End PBXNativeTarget section */\n\n/* Begin PBXProject section */\n\t\t29B97313FDCFA39411CA2CEA /* Project object */ = {\n\t\t\tisa = PBXProject;\n\t\t\tattributes = {\n\t\t\t\tCLASSPREFIX = MB;\n\t\t\t\tLastUpgradeCheck = 0930;\n\t\t\t\tORGANIZATIONNAME = \"Matej Bukovinski\";\n\t\t\t\tTargetAttributes = {\n\t\t\t\t\tD27F18401D3B5878009D7482 = {\n\t\t\t\t\t\tCreatedOnToolsVersion = 7.3.1;\n\t\t\t\t\t};\n\t\t\t\t\tD2B1740E1C5E3A3D00021915 = {\n\t\t\t\t\t\tCreatedOnToolsVersion = 7.2;\n\t\t\t\t\t\tTestTargetID = 1D6058900D05DD3D006BFB54;\n\t\t\t\t\t};\n\t\t\t\t};\n\t\t\t};\n\t\t\tbuildConfigurationList = C01FCF4E08A954540054247B /* Build configuration list for PBXProject \"HudDemo\" */;\n\t\t\tcompatibilityVersion = \"Xcode 3.2\";\n\t\t\tdevelopmentRegion = en;\n\t\t\thasScannedForEncodings = 1;\n\t\t\tknownRegions = (\n\t\t\t\ten,\n\t\t\t\tBase,\n\t\t\t);\n\t\t\tmainGroup = 29B97314FDCFA39411CA2CEA /* CustomTemplate */;\n\t\t\tprojectDirPath = \"\";\n\t\t\tprojectRoot = \"\";\n\t\t\ttargets = (\n\t\t\t\t1D6058900D05DD3D006BFB54 /* HudDemo */,\n\t\t\t\tD27F18401D3B5878009D7482 /* HudDemoTV */,\n\t\t\t\tD2B1740E1C5E3A3D00021915 /* HudTests */,\n\t\t\t);\n\t\t};\n/* End PBXProject section */\n\n/* Begin PBXResourcesBuildPhase section */\n\t\t1D60588D0D05DD3D006BFB54 /* Resources */ = {\n\t\t\tisa = PBXResourcesBuildPhase;\n\t\t\tbuildActionMask = 2147483647;\n\t\t\tfiles = (\n\t\t\t\tD27F18641D3B5E21009D7482 /* Main.storyboard in Resources */,\n\t\t\t\tD2EEB3811B55967200F59EC1 /* Images.xcassets in Resources */,\n\t\t\t\tD27F18631D3B5E21009D7482 /* Launch.storyboard in Resources */,\n\t\t\t);\n\t\t\trunOnlyForDeploymentPostprocessing = 0;\n\t\t};\n\t\tD27F183F1D3B5878009D7482 /* Resources */ = {\n\t\t\tisa = PBXResourcesBuildPhase;\n\t\t\tbuildActionMask = 2147483647;\n\t\t\tfiles = (\n\t\t\t\tD27F184E1D3B5878009D7482 /* Main.storyboard in Resources */,\n\t\t\t\tD274948B1D3B74AA00ABEB66 /* Images.xcassets in Resources */,\n\t\t\t\tD2D75D5323A8193100485497 /* Launch.storyboard in Resources */,\n\t\t\t);\n\t\t\trunOnlyForDeploymentPostprocessing = 0;\n\t\t};\n\t\tD2B1740D1C5E3A3D00021915 /* Resources */ = {\n\t\t\tisa = PBXResourcesBuildPhase;\n\t\t\tbuildActionMask = 2147483647;\n\t\t\tfiles = (\n\t\t\t);\n\t\t\trunOnlyForDeploymentPostprocessing = 0;\n\t\t};\n/* End PBXResourcesBuildPhase section */\n\n/* Begin PBXSourcesBuildPhase section */\n\t\t1D60588E0D05DD3D006BFB54 /* Sources */ = {\n\t\t\tisa = PBXSourcesBuildPhase;\n\t\t\tbuildActionMask = 2147483647;\n\t\t\tfiles = (\n\t\t\t\tD27F185B1D3B5DFF009D7482 /* MBHudDemoViewController.m in Sources */,\n\t\t\t\tD22F7D810F85241C00550BB3 /* MBProgressHUD.m in Sources */,\n\t\t\t\tD27F185E1D3B5E0D009D7482 /* main.m in Sources */,\n\t\t\t\tD27F185A1D3B5DFF009D7482 /* MBHudDemoAppDelegate.m in Sources */,\n\t\t\t);\n\t\t\trunOnlyForDeploymentPostprocessing = 0;\n\t\t};\n\t\tD27F183D1D3B5878009D7482 /* Sources */ = {\n\t\t\tisa = PBXSourcesBuildPhase;\n\t\t\tbuildActionMask = 2147483647;\n\t\t\tfiles = (\n\t\t\t\tD27F184B1D3B5878009D7482 /* MBHudDemoTVViewController.m in Sources */,\n\t\t\t\tD27F18481D3B5878009D7482 /* MBHudDemoTVAppDelegate.m in Sources */,\n\t\t\t\tD27F18451D3B5878009D7482 /* main.m in Sources */,\n\t\t\t\tD27F18551D3B5AAF009D7482 /* MBProgressHUD.m in Sources */,\n\t\t\t);\n\t\t\trunOnlyForDeploymentPostprocessing = 0;\n\t\t};\n\t\tD2B1740B1C5E3A3D00021915 /* Sources */ = {\n\t\t\tisa = PBXSourcesBuildPhase;\n\t\t\tbuildActionMask = 2147483647;\n\t\t\tfiles = (\n\t\t\t\tD2B174121C5E3A3D00021915 /* HudTests.m in Sources */,\n\t\t\t);\n\t\t\trunOnlyForDeploymentPostprocessing = 0;\n\t\t};\n/* End PBXSourcesBuildPhase section */\n\n/* Begin PBXTargetDependency section */\n\t\tD2B174151C5E3A3D00021915 /* PBXTargetDependency */ = {\n\t\t\tisa = PBXTargetDependency;\n\t\t\ttarget = 1D6058900D05DD3D006BFB54 /* HudDemo */;\n\t\t\ttargetProxy = D2B174141C5E3A3D00021915 /* PBXContainerItemProxy */;\n\t\t};\n/* End PBXTargetDependency section */\n\n/* Begin PBXVariantGroup section */\n\t\tD27F184C1D3B5878009D7482 /* Main.storyboard */ = {\n\t\t\tisa = PBXVariantGroup;\n\t\t\tchildren = (\n\t\t\t\tD27F184D1D3B5878009D7482 /* Base */,\n\t\t\t);\n\t\t\tname = Main.storyboard;\n\t\t\tsourceTree = \"<group>\";\n\t\t};\n\t\tD27F185F1D3B5E21009D7482 /* Launch.storyboard */ = {\n\t\t\tisa = PBXVariantGroup;\n\t\t\tchildren = (\n\t\t\t\tD27F18601D3B5E21009D7482 /* en */,\n\t\t\t);\n\t\t\tname = Launch.storyboard;\n\t\t\tsourceTree = \"<group>\";\n\t\t};\n\t\tD27F18611D3B5E21009D7482 /* Main.storyboard */ = {\n\t\t\tisa = PBXVariantGroup;\n\t\t\tchildren = (\n\t\t\t\tD27F18621D3B5E21009D7482 /* en */,\n\t\t\t);\n\t\t\tname = Main.storyboard;\n\t\t\tsourceTree = \"<group>\";\n\t\t};\n\t\tD2D75D5123A8193000485497 /* Launch.storyboard */ = {\n\t\t\tisa = PBXVariantGroup;\n\t\t\tchildren = (\n\t\t\t\tD2D75D5223A8193000485497 /* Base */,\n\t\t\t);\n\t\t\tname = Launch.storyboard;\n\t\t\tsourceTree = \"<group>\";\n\t\t};\n/* End PBXVariantGroup section */\n\n/* Begin XCBuildConfiguration section */\n\t\t1D6058940D05DD3E006BFB54 /* Debug */ = {\n\t\t\tisa = XCBuildConfiguration;\n\t\t\tbuildSettings = {\n\t\t\t\tALWAYS_SEARCH_USER_PATHS = NO;\n\t\t\t\tASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;\n\t\t\t\tCODE_SIGN_ENTITLEMENTS = HudDemo/HudDemo.entitlements;\n\t\t\t\tCOPY_PHASE_STRIP = NO;\n\t\t\t\tDERIVE_MACCATALYST_PRODUCT_BUNDLE_IDENTIFIER = YES;\n\t\t\t\tGCC_DYNAMIC_NO_PIC = NO;\n\t\t\t\tGCC_OPTIMIZATION_LEVEL = 0;\n\t\t\t\tGCC_PRECOMPILE_PREFIX_HEADER = YES;\n\t\t\t\tGCC_PREFIX_HEADER = HudDemo/HudDemo_Prefix.pch;\n\t\t\t\tINFOPLIST_FILE = HudDemo/Info.plist;\n\t\t\t\tIPHONEOS_DEPLOYMENT_TARGET = 9.0;\n\t\t\t\tPRODUCT_BUNDLE_IDENTIFIER = \"com.bukovinski.${PRODUCT_NAME:identifier}\";\n\t\t\t\tPRODUCT_NAME = HudDemo;\n\t\t\t\tSUPPORTS_MACCATALYST = YES;\n\t\t\t\tTARGETED_DEVICE_FAMILY = \"1,2\";\n\t\t\t};\n\t\t\tname = Debug;\n\t\t};\n\t\t1D6058950D05DD3E006BFB54 /* Release */ = {\n\t\t\tisa = XCBuildConfiguration;\n\t\t\tbuildSettings = {\n\t\t\t\tALWAYS_SEARCH_USER_PATHS = NO;\n\t\t\t\tASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;\n\t\t\t\tCODE_SIGN_ENTITLEMENTS = HudDemo/HudDemo.entitlements;\n\t\t\t\tCOPY_PHASE_STRIP = YES;\n\t\t\t\tDERIVE_MACCATALYST_PRODUCT_BUNDLE_IDENTIFIER = YES;\n\t\t\t\tGCC_PRECOMPILE_PREFIX_HEADER = YES;\n\t\t\t\tGCC_PREFIX_HEADER = HudDemo/HudDemo_Prefix.pch;\n\t\t\t\tINFOPLIST_FILE = HudDemo/Info.plist;\n\t\t\t\tIPHONEOS_DEPLOYMENT_TARGET = 9.0;\n\t\t\t\tPRODUCT_BUNDLE_IDENTIFIER = \"com.bukovinski.${PRODUCT_NAME:identifier}\";\n\t\t\t\tPRODUCT_NAME = HudDemo;\n\t\t\t\tSDKROOT = iphoneos;\n\t\t\t\tSUPPORTS_MACCATALYST = YES;\n\t\t\t\tTARGETED_DEVICE_FAMILY = \"1,2\";\n\t\t\t};\n\t\t\tname = Release;\n\t\t};\n\t\tC01FCF4F08A954540054247B /* Debug */ = {\n\t\t\tisa = XCBuildConfiguration;\n\t\t\tbuildSettings = {\n\t\t\t\tCLANG_ANALYZER_LOCALIZABILITY_NONLOCALIZED = YES;\n\t\t\t\tCLANG_ENABLE_OBJC_ARC = YES;\n\t\t\t\tCLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES;\n\t\t\t\tCLANG_WARN_BOOL_CONVERSION = YES;\n\t\t\t\tCLANG_WARN_COMMA = YES;\n\t\t\t\tCLANG_WARN_CONSTANT_CONVERSION = YES;\n\t\t\t\tCLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES;\n\t\t\t\tCLANG_WARN_EMPTY_BODY = YES;\n\t\t\t\tCLANG_WARN_ENUM_CONVERSION = YES;\n\t\t\t\tCLANG_WARN_INFINITE_RECURSION = YES;\n\t\t\t\tCLANG_WARN_INT_CONVERSION = YES;\n\t\t\t\tCLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES;\n\t\t\t\tCLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES;\n\t\t\t\tCLANG_WARN_OBJC_LITERAL_CONVERSION = YES;\n\t\t\t\tCLANG_WARN_RANGE_LOOP_ANALYSIS = YES;\n\t\t\t\tCLANG_WARN_STRICT_PROTOTYPES = YES;\n\t\t\t\tCLANG_WARN_SUSPICIOUS_MOVE = YES;\n\t\t\t\tCLANG_WARN_UNREACHABLE_CODE = YES;\n\t\t\t\tCLANG_WARN__DUPLICATE_METHOD_MATCH = YES;\n\t\t\t\tENABLE_STRICT_OBJC_MSGSEND = YES;\n\t\t\t\tENABLE_TESTABILITY = YES;\n\t\t\t\tGCC_C_LANGUAGE_STANDARD = c99;\n\t\t\t\tGCC_NO_COMMON_BLOCKS = YES;\n\t\t\t\tGCC_VERSION = com.apple.compilers.llvm.clang.1_0;\n\t\t\t\tGCC_WARN_64_TO_32_BIT_CONVERSION = YES;\n\t\t\t\tGCC_WARN_ABOUT_RETURN_TYPE = YES;\n\t\t\t\tGCC_WARN_UNDECLARED_SELECTOR = YES;\n\t\t\t\tGCC_WARN_UNINITIALIZED_AUTOS = YES;\n\t\t\t\tGCC_WARN_UNUSED_FUNCTION = YES;\n\t\t\t\tGCC_WARN_UNUSED_VARIABLE = YES;\n\t\t\t\tIPHONEOS_DEPLOYMENT_TARGET = 9.0;\n\t\t\t\tONLY_ACTIVE_ARCH = YES;\n\t\t\t\tSDKROOT = iphoneos;\n\t\t\t};\n\t\t\tname = Debug;\n\t\t};\n\t\tC01FCF5008A954540054247B /* Release */ = {\n\t\t\tisa = XCBuildConfiguration;\n\t\t\tbuildSettings = {\n\t\t\t\tCLANG_ANALYZER_LOCALIZABILITY_NONLOCALIZED = YES;\n\t\t\t\tCLANG_ENABLE_OBJC_ARC = YES;\n\t\t\t\tCLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES;\n\t\t\t\tCLANG_WARN_BOOL_CONVERSION = YES;\n\t\t\t\tCLANG_WARN_COMMA = YES;\n\t\t\t\tCLANG_WARN_CONSTANT_CONVERSION = YES;\n\t\t\t\tCLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES;\n\t\t\t\tCLANG_WARN_EMPTY_BODY = YES;\n\t\t\t\tCLANG_WARN_ENUM_CONVERSION = YES;\n\t\t\t\tCLANG_WARN_INFINITE_RECURSION = YES;\n\t\t\t\tCLANG_WARN_INT_CONVERSION = YES;\n\t\t\t\tCLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES;\n\t\t\t\tCLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES;\n\t\t\t\tCLANG_WARN_OBJC_LITERAL_CONVERSION = YES;\n\t\t\t\tCLANG_WARN_RANGE_LOOP_ANALYSIS = YES;\n\t\t\t\tCLANG_WARN_STRICT_PROTOTYPES = YES;\n\t\t\t\tCLANG_WARN_SUSPICIOUS_MOVE = YES;\n\t\t\t\tCLANG_WARN_UNREACHABLE_CODE = YES;\n\t\t\t\tCLANG_WARN__DUPLICATE_METHOD_MATCH = YES;\n\t\t\t\tENABLE_STRICT_OBJC_MSGSEND = YES;\n\t\t\t\tGCC_C_LANGUAGE_STANDARD = c99;\n\t\t\t\tGCC_NO_COMMON_BLOCKS = YES;\n\t\t\t\tGCC_VERSION = com.apple.compilers.llvm.clang.1_0;\n\t\t\t\tGCC_WARN_64_TO_32_BIT_CONVERSION = YES;\n\t\t\t\tGCC_WARN_ABOUT_RETURN_TYPE = YES;\n\t\t\t\tGCC_WARN_UNDECLARED_SELECTOR = YES;\n\t\t\t\tGCC_WARN_UNINITIALIZED_AUTOS = YES;\n\t\t\t\tGCC_WARN_UNUSED_FUNCTION = YES;\n\t\t\t\tGCC_WARN_UNUSED_VARIABLE = YES;\n\t\t\t\tIPHONEOS_DEPLOYMENT_TARGET = 9.0;\n\t\t\t\tSDKROOT = iphoneos;\n\t\t\t};\n\t\t\tname = Release;\n\t\t};\n\t\tD27F18521D3B5878009D7482 /* Debug */ = {\n\t\t\tisa = XCBuildConfiguration;\n\t\t\tbuildSettings = {\n\t\t\t\tALWAYS_SEARCH_USER_PATHS = NO;\n\t\t\t\tCLANG_ANALYZER_NONNULL = YES;\n\t\t\t\tCLANG_CXX_LANGUAGE_STANDARD = \"gnu++0x\";\n\t\t\t\tCLANG_CXX_LIBRARY = \"libc++\";\n\t\t\t\tCLANG_ENABLE_MODULES = YES;\n\t\t\t\tCLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;\n\t\t\t\tCLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;\n\t\t\t\tCLANG_WARN_UNREACHABLE_CODE = YES_AGGRESSIVE;\n\t\t\t\tCOPY_PHASE_STRIP = NO;\n\t\t\t\tDEBUG_INFORMATION_FORMAT = dwarf;\n\t\t\t\tGCC_C_LANGUAGE_STANDARD = gnu99;\n\t\t\t\tGCC_DYNAMIC_NO_PIC = NO;\n\t\t\t\tGCC_OPTIMIZATION_LEVEL = 0;\n\t\t\t\tGCC_PREPROCESSOR_DEFINITIONS = (\n\t\t\t\t\t\"DEBUG=1\",\n\t\t\t\t\t\"$(inherited)\",\n\t\t\t\t);\n\t\t\t\tGCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;\n\t\t\t\tGCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;\n\t\t\t\tINFOPLIST_FILE = HudDemoTV/Info.plist;\n\t\t\t\tLD_RUNPATH_SEARCH_PATHS = \"$(inherited) @executable_path/Frameworks\";\n\t\t\t\tMTL_ENABLE_DEBUG_INFO = YES;\n\t\t\t\tPRODUCT_BUNDLE_IDENTIFIER = com.bukovinski.HudDemoTV;\n\t\t\t\tPRODUCT_NAME = \"$(TARGET_NAME)\";\n\t\t\t\tSDKROOT = appletvos;\n\t\t\t\tTARGETED_DEVICE_FAMILY = 3;\n\t\t\t\tTVOS_DEPLOYMENT_TARGET = 9.0;\n\t\t\t};\n\t\t\tname = Debug;\n\t\t};\n\t\tD27F18531D3B5878009D7482 /* Release */ = {\n\t\t\tisa = XCBuildConfiguration;\n\t\t\tbuildSettings = {\n\t\t\t\tALWAYS_SEARCH_USER_PATHS = NO;\n\t\t\t\tCLANG_ANALYZER_NONNULL = YES;\n\t\t\t\tCLANG_CXX_LANGUAGE_STANDARD = \"gnu++0x\";\n\t\t\t\tCLANG_CXX_LIBRARY = \"libc++\";\n\t\t\t\tCLANG_ENABLE_MODULES = YES;\n\t\t\t\tCLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;\n\t\t\t\tCLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;\n\t\t\t\tCLANG_WARN_UNREACHABLE_CODE = YES_AGGRESSIVE;\n\t\t\t\tCOPY_PHASE_STRIP = NO;\n\t\t\t\tDEBUG_INFORMATION_FORMAT = \"dwarf-with-dsym\";\n\t\t\t\tENABLE_NS_ASSERTIONS = NO;\n\t\t\t\tGCC_C_LANGUAGE_STANDARD = gnu99;\n\t\t\t\tGCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;\n\t\t\t\tGCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;\n\t\t\t\tINFOPLIST_FILE = HudDemoTV/Info.plist;\n\t\t\t\tLD_RUNPATH_SEARCH_PATHS = \"$(inherited) @executable_path/Frameworks\";\n\t\t\t\tMTL_ENABLE_DEBUG_INFO = NO;\n\t\t\t\tPRODUCT_BUNDLE_IDENTIFIER = com.bukovinski.HudDemoTV;\n\t\t\t\tPRODUCT_NAME = \"$(TARGET_NAME)\";\n\t\t\t\tSDKROOT = appletvos;\n\t\t\t\tTARGETED_DEVICE_FAMILY = 3;\n\t\t\t\tTVOS_DEPLOYMENT_TARGET = 9.0;\n\t\t\t\tVALIDATE_PRODUCT = YES;\n\t\t\t};\n\t\t\tname = Release;\n\t\t};\n\t\tD2B174171C5E3A3D00021915 /* Debug */ = {\n\t\t\tisa = XCBuildConfiguration;\n\t\t\tbuildSettings = {\n\t\t\t\tALWAYS_SEARCH_USER_PATHS = NO;\n\t\t\t\tBUNDLE_LOADER = \"$(TEST_HOST)\";\n\t\t\t\tCLANG_CXX_LANGUAGE_STANDARD = \"gnu++0x\";\n\t\t\t\tCLANG_CXX_LIBRARY = \"libc++\";\n\t\t\t\tCLANG_ENABLE_MODULES = YES;\n\t\t\t\tCLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;\n\t\t\t\tCLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;\n\t\t\t\tCOPY_PHASE_STRIP = NO;\n\t\t\t\tDEBUG_INFORMATION_FORMAT = dwarf;\n\t\t\t\tGCC_C_LANGUAGE_STANDARD = gnu99;\n\t\t\t\tGCC_DYNAMIC_NO_PIC = NO;\n\t\t\t\tGCC_OPTIMIZATION_LEVEL = 0;\n\t\t\t\tGCC_PREPROCESSOR_DEFINITIONS = (\n\t\t\t\t\t\"DEBUG=1\",\n\t\t\t\t\t\"$(inherited)\",\n\t\t\t\t);\n\t\t\t\tGCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;\n\t\t\t\tGCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;\n\t\t\t\tINFOPLIST_FILE = HudTests/Info.plist;\n\t\t\t\tIPHONEOS_DEPLOYMENT_TARGET = 9.2;\n\t\t\t\tLD_RUNPATH_SEARCH_PATHS = \"$(inherited) @executable_path/Frameworks @loader_path/Frameworks\";\n\t\t\t\tMTL_ENABLE_DEBUG_INFO = YES;\n\t\t\t\tPRODUCT_BUNDLE_IDENTIFIER = com.bukovinski.HudTests;\n\t\t\t\tPRODUCT_NAME = \"$(TARGET_NAME)\";\n\t\t\t\tTARGETED_DEVICE_FAMILY = \"1,2\";\n\t\t\t\tTEST_HOST = \"$(BUILT_PRODUCTS_DIR)/HudDemo.app/HudDemo\";\n\t\t\t};\n\t\t\tname = Debug;\n\t\t};\n\t\tD2B174181C5E3A3D00021915 /* Release */ = {\n\t\t\tisa = XCBuildConfiguration;\n\t\t\tbuildSettings = {\n\t\t\t\tALWAYS_SEARCH_USER_PATHS = NO;\n\t\t\t\tBUNDLE_LOADER = \"$(TEST_HOST)\";\n\t\t\t\tCLANG_CXX_LANGUAGE_STANDARD = \"gnu++0x\";\n\t\t\t\tCLANG_CXX_LIBRARY = \"libc++\";\n\t\t\t\tCLANG_ENABLE_MODULES = YES;\n\t\t\t\tCLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;\n\t\t\t\tCLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;\n\t\t\t\tCOPY_PHASE_STRIP = NO;\n\t\t\t\tDEBUG_INFORMATION_FORMAT = \"dwarf-with-dsym\";\n\t\t\t\tENABLE_NS_ASSERTIONS = NO;\n\t\t\t\tGCC_C_LANGUAGE_STANDARD = gnu99;\n\t\t\t\tGCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;\n\t\t\t\tGCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;\n\t\t\t\tINFOPLIST_FILE = HudTests/Info.plist;\n\t\t\t\tIPHONEOS_DEPLOYMENT_TARGET = 9.2;\n\t\t\t\tLD_RUNPATH_SEARCH_PATHS = \"$(inherited) @executable_path/Frameworks @loader_path/Frameworks\";\n\t\t\t\tMTL_ENABLE_DEBUG_INFO = NO;\n\t\t\t\tPRODUCT_BUNDLE_IDENTIFIER = com.bukovinski.HudTests;\n\t\t\t\tPRODUCT_NAME = \"$(TARGET_NAME)\";\n\t\t\t\tTARGETED_DEVICE_FAMILY = \"1,2\";\n\t\t\t\tTEST_HOST = \"$(BUILT_PRODUCTS_DIR)/HudDemo.app/HudDemo\";\n\t\t\t\tVALIDATE_PRODUCT = YES;\n\t\t\t};\n\t\t\tname = Release;\n\t\t};\n/* End XCBuildConfiguration section */\n\n/* Begin XCConfigurationList section */\n\t\t1D6058960D05DD3E006BFB54 /* Build configuration list for PBXNativeTarget \"HudDemo\" */ = {\n\t\t\tisa = XCConfigurationList;\n\t\t\tbuildConfigurations = (\n\t\t\t\t1D6058940D05DD3E006BFB54 /* Debug */,\n\t\t\t\t1D6058950D05DD3E006BFB54 /* Release */,\n\t\t\t);\n\t\t\tdefaultConfigurationIsVisible = 0;\n\t\t\tdefaultConfigurationName = Release;\n\t\t};\n\t\tC01FCF4E08A954540054247B /* Build configuration list for PBXProject \"HudDemo\" */ = {\n\t\t\tisa = XCConfigurationList;\n\t\t\tbuildConfigurations = (\n\t\t\t\tC01FCF4F08A954540054247B /* Debug */,\n\t\t\t\tC01FCF5008A954540054247B /* Release */,\n\t\t\t);\n\t\t\tdefaultConfigurationIsVisible = 0;\n\t\t\tdefaultConfigurationName = Release;\n\t\t};\n\t\tD27F18541D3B5878009D7482 /* Build configuration list for PBXNativeTarget \"HudDemoTV\" */ = {\n\t\t\tisa = XCConfigurationList;\n\t\t\tbuildConfigurations = (\n\t\t\t\tD27F18521D3B5878009D7482 /* Debug */,\n\t\t\t\tD27F18531D3B5878009D7482 /* Release */,\n\t\t\t);\n\t\t\tdefaultConfigurationIsVisible = 0;\n\t\t\tdefaultConfigurationName = Release;\n\t\t};\n\t\tD2B174161C5E3A3D00021915 /* Build configuration list for PBXNativeTarget \"HudTests\" */ = {\n\t\t\tisa = XCConfigurationList;\n\t\t\tbuildConfigurations = (\n\t\t\t\tD2B174171C5E3A3D00021915 /* Debug */,\n\t\t\t\tD2B174181C5E3A3D00021915 /* Release */,\n\t\t\t);\n\t\t\tdefaultConfigurationIsVisible = 0;\n\t\t\tdefaultConfigurationName = Release;\n\t\t};\n/* End XCConfigurationList section */\n\t};\n\trootObject = 29B97313FDCFA39411CA2CEA /* Project object */;\n}\n"
  },
  {
    "path": "Demo/HudDemo.xcodeproj/project.xcworkspace/contents.xcworkspacedata",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<Workspace>\n   <FileRef\n      location = \"self:HudDemo.xcodeproj\">\n   </FileRef>\n</Workspace>\n"
  },
  {
    "path": "Demo/HudDemo.xcodeproj/xcshareddata/xcschemes/HudDemo.xcscheme",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<Scheme\n   LastUpgradeVersion = \"1120\"\n   version = \"1.8\">\n   <BuildAction\n      parallelizeBuildables = \"YES\"\n      buildImplicitDependencies = \"YES\">\n      <BuildActionEntries>\n         <BuildActionEntry\n            buildForTesting = \"YES\"\n            buildForRunning = \"YES\"\n            buildForProfiling = \"YES\"\n            buildForArchiving = \"YES\"\n            buildForAnalyzing = \"YES\">\n            <BuildableReference\n               BuildableIdentifier = \"primary\"\n               BlueprintIdentifier = \"1D6058900D05DD3D006BFB54\"\n               BuildableName = \"HudDemo.app\"\n               BlueprintName = \"HudDemo\"\n               ReferencedContainer = \"container:HudDemo.xcodeproj\">\n            </BuildableReference>\n         </BuildActionEntry>\n         <BuildActionEntry\n            buildForTesting = \"YES\"\n            buildForRunning = \"YES\"\n            buildForProfiling = \"NO\"\n            buildForArchiving = \"NO\"\n            buildForAnalyzing = \"YES\">\n            <BuildableReference\n               BuildableIdentifier = \"primary\"\n               BlueprintIdentifier = \"D2B1740E1C5E3A3D00021915\"\n               BuildableName = \"HudTests.xctest\"\n               BlueprintName = \"HudTests\"\n               ReferencedContainer = \"container:HudDemo.xcodeproj\">\n            </BuildableReference>\n         </BuildActionEntry>\n      </BuildActionEntries>\n   </BuildAction>\n   <TestAction\n      buildConfiguration = \"Debug\"\n      selectedDebuggerIdentifier = \"Xcode.DebuggerFoundation.Debugger.LLDB\"\n      selectedLauncherIdentifier = \"Xcode.DebuggerFoundation.Launcher.LLDB\"\n      shouldUseLaunchSchemeArgsEnv = \"YES\">\n      <MacroExpansion>\n         <BuildableReference\n            BuildableIdentifier = \"primary\"\n            BlueprintIdentifier = \"1D6058900D05DD3D006BFB54\"\n            BuildableName = \"HudDemo.app\"\n            BlueprintName = \"HudDemo\"\n            ReferencedContainer = \"container:HudDemo.xcodeproj\">\n         </BuildableReference>\n      </MacroExpansion>\n      <Testables>\n         <TestableReference\n            skipped = \"NO\">\n            <BuildableReference\n               BuildableIdentifier = \"primary\"\n               BlueprintIdentifier = \"D2B1740E1C5E3A3D00021915\"\n               BuildableName = \"HudTests.xctest\"\n               BlueprintName = \"HudTests\"\n               ReferencedContainer = \"container:HudDemo.xcodeproj\">\n            </BuildableReference>\n         </TestableReference>\n      </Testables>\n   </TestAction>\n   <LaunchAction\n      buildConfiguration = \"Debug\"\n      selectedDebuggerIdentifier = \"Xcode.DebuggerFoundation.Debugger.LLDB\"\n      selectedLauncherIdentifier = \"Xcode.DebuggerFoundation.Launcher.LLDB\"\n      displayScaleIsEnabled = \"NO\"\n      displayScale = \"1.00\"\n      launchStyle = \"0\"\n      useCustomWorkingDirectory = \"NO\"\n      ignoresPersistentStateOnLaunch = \"NO\"\n      debugDocumentVersioning = \"YES\"\n      debugServiceExtension = \"internal\"\n      allowLocationSimulation = \"YES\">\n      <BuildableProductRunnable\n         runnableDebuggingMode = \"0\">\n         <BuildableReference\n            BuildableIdentifier = \"primary\"\n            BlueprintIdentifier = \"1D6058900D05DD3D006BFB54\"\n            BuildableName = \"HudDemo.app\"\n            BlueprintName = \"HudDemo\"\n            ReferencedContainer = \"container:HudDemo.xcodeproj\">\n         </BuildableReference>\n      </BuildableProductRunnable>\n   </LaunchAction>\n   <ProfileAction\n      displayScaleIsEnabled = \"NO\"\n      displayScale = \"1.00\"\n      buildConfiguration = \"Release\"\n      shouldUseLaunchSchemeArgsEnv = \"YES\"\n      savedToolIdentifier = \"\"\n      useCustomWorkingDirectory = \"NO\"\n      debugDocumentVersioning = \"YES\">\n      <BuildableProductRunnable\n         runnableDebuggingMode = \"0\">\n         <BuildableReference\n            BuildableIdentifier = \"primary\"\n            BlueprintIdentifier = \"1D6058900D05DD3D006BFB54\"\n            BuildableName = \"HudDemo.app\"\n            BlueprintName = \"HudDemo\"\n            ReferencedContainer = \"container:HudDemo.xcodeproj\">\n         </BuildableReference>\n      </BuildableProductRunnable>\n   </ProfileAction>\n   <AnalyzeAction\n      buildConfiguration = \"Debug\">\n   </AnalyzeAction>\n   <ArchiveAction\n      buildConfiguration = \"Release\"\n      revealArchiveInOrganizer = \"YES\">\n   </ArchiveAction>\n</Scheme>\n"
  },
  {
    "path": "Demo/HudDemo.xcodeproj/xcshareddata/xcschemes/HudDemoTV.xcscheme",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<Scheme\n   LastUpgradeVersion = \"1120\"\n   version = \"1.3\">\n   <BuildAction\n      parallelizeBuildables = \"YES\"\n      buildImplicitDependencies = \"YES\">\n      <BuildActionEntries>\n         <BuildActionEntry\n            buildForTesting = \"YES\"\n            buildForRunning = \"YES\"\n            buildForProfiling = \"YES\"\n            buildForArchiving = \"YES\"\n            buildForAnalyzing = \"YES\">\n            <BuildableReference\n               BuildableIdentifier = \"primary\"\n               BlueprintIdentifier = \"D27F18401D3B5878009D7482\"\n               BuildableName = \"HudDemoTV.app\"\n               BlueprintName = \"HudDemoTV\"\n               ReferencedContainer = \"container:HudDemo.xcodeproj\">\n            </BuildableReference>\n         </BuildActionEntry>\n      </BuildActionEntries>\n   </BuildAction>\n   <TestAction\n      buildConfiguration = \"Debug\"\n      selectedDebuggerIdentifier = \"Xcode.DebuggerFoundation.Debugger.LLDB\"\n      selectedLauncherIdentifier = \"Xcode.DebuggerFoundation.Launcher.LLDB\"\n      shouldUseLaunchSchemeArgsEnv = \"YES\">\n      <MacroExpansion>\n         <BuildableReference\n            BuildableIdentifier = \"primary\"\n            BlueprintIdentifier = \"D27F18401D3B5878009D7482\"\n            BuildableName = \"HudDemoTV.app\"\n            BlueprintName = \"HudDemoTV\"\n            ReferencedContainer = \"container:HudDemo.xcodeproj\">\n         </BuildableReference>\n      </MacroExpansion>\n      <Testables>\n      </Testables>\n   </TestAction>\n   <LaunchAction\n      buildConfiguration = \"Debug\"\n      selectedDebuggerIdentifier = \"Xcode.DebuggerFoundation.Debugger.LLDB\"\n      selectedLauncherIdentifier = \"Xcode.DebuggerFoundation.Launcher.LLDB\"\n      launchStyle = \"0\"\n      useCustomWorkingDirectory = \"NO\"\n      ignoresPersistentStateOnLaunch = \"NO\"\n      debugDocumentVersioning = \"YES\"\n      debugServiceExtension = \"internal\"\n      allowLocationSimulation = \"YES\">\n      <BuildableProductRunnable\n         runnableDebuggingMode = \"0\">\n         <BuildableReference\n            BuildableIdentifier = \"primary\"\n            BlueprintIdentifier = \"D27F18401D3B5878009D7482\"\n            BuildableName = \"HudDemoTV.app\"\n            BlueprintName = \"HudDemoTV\"\n            ReferencedContainer = \"container:HudDemo.xcodeproj\">\n         </BuildableReference>\n      </BuildableProductRunnable>\n   </LaunchAction>\n   <ProfileAction\n      buildConfiguration = \"Release\"\n      shouldUseLaunchSchemeArgsEnv = \"YES\"\n      savedToolIdentifier = \"\"\n      useCustomWorkingDirectory = \"NO\"\n      debugDocumentVersioning = \"YES\">\n      <BuildableProductRunnable\n         runnableDebuggingMode = \"0\">\n         <BuildableReference\n            BuildableIdentifier = \"primary\"\n            BlueprintIdentifier = \"D27F18401D3B5878009D7482\"\n            BuildableName = \"HudDemoTV.app\"\n            BlueprintName = \"HudDemoTV\"\n            ReferencedContainer = \"container:HudDemo.xcodeproj\">\n         </BuildableReference>\n      </BuildableProductRunnable>\n   </ProfileAction>\n   <AnalyzeAction\n      buildConfiguration = \"Debug\">\n   </AnalyzeAction>\n   <ArchiveAction\n      buildConfiguration = \"Release\"\n      revealArchiveInOrganizer = \"YES\">\n   </ArchiveAction>\n</Scheme>\n"
  },
  {
    "path": "Demo/HudDemo.xcodeproj/xcshareddata/xcschemes/HudTests.xcscheme",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<Scheme\n   LastUpgradeVersion = \"1120\"\n   version = \"1.3\">\n   <BuildAction\n      parallelizeBuildables = \"YES\"\n      buildImplicitDependencies = \"YES\">\n   </BuildAction>\n   <TestAction\n      buildConfiguration = \"Debug\"\n      selectedDebuggerIdentifier = \"Xcode.DebuggerFoundation.Debugger.LLDB\"\n      selectedLauncherIdentifier = \"Xcode.DebuggerFoundation.Launcher.LLDB\"\n      shouldUseLaunchSchemeArgsEnv = \"YES\">\n      <MacroExpansion>\n         <BuildableReference\n            BuildableIdentifier = \"primary\"\n            BlueprintIdentifier = \"1D6058900D05DD3D006BFB54\"\n            BuildableName = \"HudDemo.app\"\n            BlueprintName = \"HudDemo\"\n            ReferencedContainer = \"container:HudDemo.xcodeproj\">\n         </BuildableReference>\n      </MacroExpansion>\n      <Testables>\n         <TestableReference\n            skipped = \"NO\">\n            <BuildableReference\n               BuildableIdentifier = \"primary\"\n               BlueprintIdentifier = \"D2B1740E1C5E3A3D00021915\"\n               BuildableName = \"HudTests.xctest\"\n               BlueprintName = \"HudTests\"\n               ReferencedContainer = \"container:HudDemo.xcodeproj\">\n            </BuildableReference>\n         </TestableReference>\n      </Testables>\n   </TestAction>\n   <LaunchAction\n      buildConfiguration = \"Debug\"\n      selectedDebuggerIdentifier = \"Xcode.DebuggerFoundation.Debugger.LLDB\"\n      selectedLauncherIdentifier = \"Xcode.DebuggerFoundation.Launcher.LLDB\"\n      launchStyle = \"0\"\n      useCustomWorkingDirectory = \"NO\"\n      ignoresPersistentStateOnLaunch = \"NO\"\n      debugDocumentVersioning = \"YES\"\n      debugServiceExtension = \"internal\"\n      allowLocationSimulation = \"YES\">\n      <BuildableProductRunnable\n         runnableDebuggingMode = \"0\">\n         <BuildableReference\n            BuildableIdentifier = \"primary\"\n            BlueprintIdentifier = \"1D6058900D05DD3D006BFB54\"\n            BuildableName = \"HudDemo.app\"\n            BlueprintName = \"HudDemo\"\n            ReferencedContainer = \"container:HudDemo.xcodeproj\">\n         </BuildableReference>\n      </BuildableProductRunnable>\n   </LaunchAction>\n   <ProfileAction\n      buildConfiguration = \"Release\"\n      shouldUseLaunchSchemeArgsEnv = \"YES\"\n      savedToolIdentifier = \"\"\n      useCustomWorkingDirectory = \"NO\"\n      debugDocumentVersioning = \"YES\">\n      <MacroExpansion>\n         <BuildableReference\n            BuildableIdentifier = \"primary\"\n            BlueprintIdentifier = \"1D6058900D05DD3D006BFB54\"\n            BuildableName = \"HudDemo.app\"\n            BlueprintName = \"HudDemo\"\n            ReferencedContainer = \"container:HudDemo.xcodeproj\">\n         </BuildableReference>\n      </MacroExpansion>\n   </ProfileAction>\n   <AnalyzeAction\n      buildConfiguration = \"Debug\">\n   </AnalyzeAction>\n   <ArchiveAction\n      buildConfiguration = \"Release\"\n      revealArchiveInOrganizer = \"YES\">\n   </ArchiveAction>\n</Scheme>\n"
  },
  {
    "path": "Demo/HudDemoTV/Base.lproj/Launch.storyboard",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<document type=\"com.apple.InterfaceBuilder.AppleTV.Storyboard\" version=\"3.0\" toolsVersion=\"15702\" targetRuntime=\"AppleTV\" propertyAccessControl=\"none\" useAutolayout=\"YES\" colorMatched=\"YES\" initialViewController=\"BYZ-38-t0r\">\n    <device id=\"appleTV\" appearance=\"light\"/>\n    <dependencies>\n        <deployment identifier=\"tvOS\"/>\n        <plugIn identifier=\"com.apple.InterfaceBuilder.IBCocoaTouchPlugin\" version=\"15704\"/>\n        <capability name=\"documents saved in the Xcode 8 format\" minToolsVersion=\"8.0\"/>\n    </dependencies>\n    <scenes>\n        <!--View Controller-->\n        <scene sceneID=\"tne-QT-ifu\">\n            <objects>\n                <viewController id=\"BYZ-38-t0r\" sceneMemberID=\"viewController\">\n                    <layoutGuides>\n                        <viewControllerLayoutGuide type=\"top\" id=\"y3c-jy-aDJ\"/>\n                        <viewControllerLayoutGuide type=\"bottom\" id=\"wfy-db-euE\"/>\n                    </layoutGuides>\n                    <view key=\"view\" contentMode=\"scaleToFill\" id=\"8bC-Xf-vdC\">\n                        <rect key=\"frame\" x=\"0.0\" y=\"0.0\" width=\"1920\" height=\"1080\"/>\n                        <autoresizingMask key=\"autoresizingMask\" widthSizable=\"YES\" heightSizable=\"YES\"/>\n                        <color key=\"backgroundColor\" red=\"0.0\" green=\"0.0\" blue=\"0.0\" alpha=\"0.0\" colorSpace=\"custom\" customColorSpace=\"sRGB\"/>\n                    </view>\n                </viewController>\n                <placeholder placeholderIdentifier=\"IBFirstResponder\" id=\"dkx-z0-nzr\" sceneMemberID=\"firstResponder\"/>\n            </objects>\n            <point key=\"canvasLocation\" x=\"438\" y=\"544\"/>\n        </scene>\n    </scenes>\n</document>\n"
  },
  {
    "path": "Demo/HudDemoTV/Base.lproj/Main.storyboard",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"no\"?>\n<document type=\"com.apple.InterfaceBuilder.AppleTV.Storyboard\" version=\"3.0\" toolsVersion=\"10117\" systemVersion=\"15F34\" targetRuntime=\"AppleTV\" propertyAccessControl=\"none\" useAutolayout=\"YES\" initialViewController=\"BYZ-38-t0r\">\n    <dependencies>\n        <plugIn identifier=\"com.apple.InterfaceBuilder.IBCocoaTouchPlugin\" version=\"10085\"/>\n    </dependencies>\n    <scenes>\n        <!--Hud DemoTV View Controller-->\n        <scene sceneID=\"tne-QT-ifu\">\n            <objects>\n                <viewController id=\"BYZ-38-t0r\" customClass=\"MBHudDemoTVViewController\" sceneMemberID=\"viewController\">\n                    <layoutGuides>\n                        <viewControllerLayoutGuide type=\"top\" id=\"y3c-jy-aDJ\"/>\n                        <viewControllerLayoutGuide type=\"bottom\" id=\"wfy-db-euE\"/>\n                    </layoutGuides>\n                    <view key=\"view\" contentMode=\"scaleToFill\" id=\"8bC-Xf-vdC\">\n                        <rect key=\"frame\" x=\"0.0\" y=\"0.0\" width=\"1920\" height=\"1080\"/>\n                        <autoresizingMask key=\"autoresizingMask\" widthSizable=\"YES\" heightSizable=\"YES\"/>\n                        <subviews>\n                            <button opaque=\"NO\" contentMode=\"scaleToFill\" contentHorizontalAlignment=\"center\" contentVerticalAlignment=\"center\" buttonType=\"roundedRect\" lineBreakMode=\"middleTruncation\" translatesAutoresizingMaskIntoConstraints=\"NO\" id=\"eq8-Tn-jxG\">\n                                <rect key=\"frame\" x=\"827\" y=\"20\" width=\"266\" height=\"86\"/>\n                                <inset key=\"contentEdgeInsets\" minX=\"40\" minY=\"20\" maxX=\"40\" maxY=\"20\"/>\n                                <state key=\"normal\" title=\"Show HUD\"/>\n                                <connections>\n                                    <action selector=\"showHud:\" destination=\"BYZ-38-t0r\" eventType=\"primaryActionTriggered\" id=\"s9S-8k-jtW\"/>\n                                </connections>\n                            </button>\n                        </subviews>\n                        <color key=\"backgroundColor\" white=\"0.0\" alpha=\"0.0\" colorSpace=\"custom\" customColorSpace=\"calibratedWhite\"/>\n                        <constraints>\n                            <constraint firstItem=\"eq8-Tn-jxG\" firstAttribute=\"centerX\" secondItem=\"8bC-Xf-vdC\" secondAttribute=\"centerX\" id=\"LhD-Fp-nSs\"/>\n                            <constraint firstItem=\"eq8-Tn-jxG\" firstAttribute=\"top\" secondItem=\"y3c-jy-aDJ\" secondAttribute=\"bottom\" constant=\"20\" id=\"deC-38-WIW\"/>\n                        </constraints>\n                    </view>\n                </viewController>\n                <placeholder placeholderIdentifier=\"IBFirstResponder\" id=\"dkx-z0-nzr\" sceneMemberID=\"firstResponder\"/>\n            </objects>\n            <point key=\"canvasLocation\" x=\"438\" y=\"544\"/>\n        </scene>\n    </scenes>\n</document>\n"
  },
  {
    "path": "Demo/HudDemoTV/Images.xcassets/Contents.json",
    "content": "{\n  \"info\" : {\n    \"version\" : 1,\n    \"author\" : \"xcode\"\n  }\n}"
  },
  {
    "path": "Demo/HudDemoTV/Images.xcassets/Icons.brandassets/App Icon - Large.imagestack/Back.imagestacklayer/Content.imageset/Contents.json",
    "content": "{\n  \"images\" : [\n    {\n      \"idiom\" : \"tv\",\n      \"filename\" : \"gradient-fill-6-copy.png\",\n      \"scale\" : \"1x\"\n    }\n  ],\n  \"info\" : {\n    \"version\" : 1,\n    \"author\" : \"xcode\"\n  }\n}"
  },
  {
    "path": "Demo/HudDemoTV/Images.xcassets/Icons.brandassets/App Icon - Large.imagestack/Back.imagestacklayer/Contents.json",
    "content": "{\n  \"info\" : {\n    \"version\" : 1,\n    \"author\" : \"xcode\"\n  }\n}"
  },
  {
    "path": "Demo/HudDemoTV/Images.xcassets/Icons.brandassets/App Icon - Large.imagestack/Contents.json",
    "content": "{\n  \"layers\" : [\n    {\n      \"filename\" : \"Front.imagestacklayer\"\n    },\n    {\n      \"filename\" : \"Back.imagestacklayer\"\n    }\n  ],\n  \"info\" : {\n    \"version\" : 1,\n    \"author\" : \"xcode\"\n  }\n}"
  },
  {
    "path": "Demo/HudDemoTV/Images.xcassets/Icons.brandassets/App Icon - Large.imagestack/Front.imagestacklayer/Content.imageset/Contents.json",
    "content": "{\n  \"images\" : [\n    {\n      \"idiom\" : \"tv\",\n      \"filename\" : \"vector-smart-object.png\",\n      \"scale\" : \"1x\"\n    }\n  ],\n  \"info\" : {\n    \"version\" : 1,\n    \"author\" : \"xcode\"\n  }\n}"
  },
  {
    "path": "Demo/HudDemoTV/Images.xcassets/Icons.brandassets/App Icon - Large.imagestack/Front.imagestacklayer/Contents.json",
    "content": "{\n  \"info\" : {\n    \"version\" : 1,\n    \"author\" : \"xcode\"\n  }\n}"
  },
  {
    "path": "Demo/HudDemoTV/Images.xcassets/Icons.brandassets/App Icon - Small.imagestack/Back.imagestacklayer/Content.imageset/Contents.json",
    "content": "{\n  \"images\" : [\n    {\n      \"idiom\" : \"tv\",\n      \"filename\" : \"gradient-fill-6-copy.png\",\n      \"scale\" : \"1x\"\n    }\n  ],\n  \"info\" : {\n    \"version\" : 1,\n    \"author\" : \"xcode\"\n  }\n}"
  },
  {
    "path": "Demo/HudDemoTV/Images.xcassets/Icons.brandassets/App Icon - Small.imagestack/Back.imagestacklayer/Contents.json",
    "content": "{\n  \"info\" : {\n    \"version\" : 1,\n    \"author\" : \"xcode\"\n  }\n}"
  },
  {
    "path": "Demo/HudDemoTV/Images.xcassets/Icons.brandassets/App Icon - Small.imagestack/Contents.json",
    "content": "{\n  \"layers\" : [\n    {\n      \"filename\" : \"Front.imagestacklayer\"\n    },\n    {\n      \"filename\" : \"Back.imagestacklayer\"\n    }\n  ],\n  \"info\" : {\n    \"version\" : 1,\n    \"author\" : \"xcode\"\n  }\n}"
  },
  {
    "path": "Demo/HudDemoTV/Images.xcassets/Icons.brandassets/App Icon - Small.imagestack/Front.imagestacklayer/Content.imageset/Contents.json",
    "content": "{\n  \"images\" : [\n    {\n      \"idiom\" : \"tv\",\n      \"filename\" : \"vector-smart-object.png\",\n      \"scale\" : \"1x\"\n    }\n  ],\n  \"info\" : {\n    \"version\" : 1,\n    \"author\" : \"xcode\"\n  }\n}"
  },
  {
    "path": "Demo/HudDemoTV/Images.xcassets/Icons.brandassets/App Icon - Small.imagestack/Front.imagestacklayer/Contents.json",
    "content": "{\n  \"info\" : {\n    \"version\" : 1,\n    \"author\" : \"xcode\"\n  }\n}"
  },
  {
    "path": "Demo/HudDemoTV/Images.xcassets/Icons.brandassets/Contents.json",
    "content": "{\n  \"assets\" : [\n    {\n      \"size\" : \"1280x768\",\n      \"idiom\" : \"tv\",\n      \"filename\" : \"App Icon - Large.imagestack\",\n      \"role\" : \"primary-app-icon\"\n    },\n    {\n      \"size\" : \"400x240\",\n      \"idiom\" : \"tv\",\n      \"filename\" : \"App Icon - Small.imagestack\",\n      \"role\" : \"primary-app-icon\"\n    },\n    {\n      \"size\" : \"1920x720\",\n      \"idiom\" : \"tv\",\n      \"filename\" : \"Top Shelf Image.imageset\",\n      \"role\" : \"top-shelf-image\"\n    }\n  ],\n  \"info\" : {\n    \"version\" : 1,\n    \"author\" : \"xcode\"\n  }\n}"
  },
  {
    "path": "Demo/HudDemoTV/Images.xcassets/Icons.brandassets/Top Shelf Image.imageset/Contents.json",
    "content": "{\n  \"images\" : [\n    {\n      \"idiom\" : \"tv\",\n      \"filename\" : \"AppleTV-TopShelf-1920x720.png\",\n      \"scale\" : \"1x\"\n    }\n  ],\n  \"info\" : {\n    \"version\" : 1,\n    \"author\" : \"xcode\"\n  }\n}"
  },
  {
    "path": "Demo/HudDemoTV/Images.xcassets/LaunchImage.launchimage/Contents.json",
    "content": "{\n  \"images\" : [\n    {\n      \"orientation\" : \"landscape\",\n      \"idiom\" : \"tv\",\n      \"filename\" : \"AppleTV-Launch.png\",\n      \"extent\" : \"full-screen\",\n      \"minimum-system-version\" : \"9.0\",\n      \"scale\" : \"1x\"\n    }\n  ],\n  \"info\" : {\n    \"version\" : 1,\n    \"author\" : \"xcode\"\n  }\n}"
  },
  {
    "path": "Demo/HudDemoTV/Info.plist",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<!DOCTYPE plist PUBLIC \"-//Apple//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/PropertyList-1.0.dtd\">\n<plist version=\"1.0\">\n<dict>\n\t<key>CFBundleDevelopmentRegion</key>\n\t<string>en</string>\n\t<key>CFBundleExecutable</key>\n\t<string>$(EXECUTABLE_NAME)</string>\n\t<key>CFBundleIcons</key>\n\t<dict/>\n\t<key>CFBundleIcons~ipad</key>\n\t<dict/>\n\t<key>CFBundleIdentifier</key>\n\t<string>$(PRODUCT_BUNDLE_IDENTIFIER)</string>\n\t<key>CFBundleInfoDictionaryVersion</key>\n\t<string>6.0</string>\n\t<key>CFBundleName</key>\n\t<string>$(PRODUCT_NAME)</string>\n\t<key>CFBundlePackageType</key>\n\t<string>APPL</string>\n\t<key>CFBundleShortVersionString</key>\n\t<string>1.0</string>\n\t<key>CFBundleSignature</key>\n\t<string>????</string>\n\t<key>CFBundleVersion</key>\n\t<string>1</string>\n\t<key>LSRequiresIPhoneOS</key>\n\t<true/>\n\t<key>UILaunchStoryboardName</key>\n\t<string>Launch</string>\n\t<key>UIMainStoryboardFile</key>\n\t<string>Main</string>\n\t<key>UIRequiredDeviceCapabilities</key>\n\t<array>\n\t\t<string>arm64</string>\n\t</array>\n</dict>\n</plist>\n"
  },
  {
    "path": "Demo/HudDemoTV/MBHudDemoTVAppDelegate.h",
    "content": "//\n//  MBHudDemoTV.h\n//  HudDemoTV\n//\n//  Created by Matej Bukovinski on 17. 07. 16.\n//  Copyright © 2016 Matej Bukovinski. All rights reserved.\n//\n\n#import <UIKit/UIKit.h>\n\n@interface MBHudDemoTVAppDelegate : UIResponder <UIApplicationDelegate>\n\n@property (strong, nonatomic) UIWindow *window;\n\n@end\n\n"
  },
  {
    "path": "Demo/HudDemoTV/MBHudDemoTVAppDelegate.m",
    "content": "//\n//  MBHudDemoTV.m\n//  HudDemoTV\n//\n//  Created by Matej Bukovinski on 17. 07. 16.\n//  Copyright © 2016 Matej Bukovinski. All rights reserved.\n//\n\n#import \"MBHudDemoTVAppDelegate.h\"\n\n@implementation MBHudDemoTVAppDelegate\n\n- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {\n    return YES;\n}\n\n@end\n"
  },
  {
    "path": "Demo/HudDemoTV/MBHudDemoTVViewController.h",
    "content": "//\n//  MBHudDemoTVViewController.h\n//  HudDemoTV\n//\n//  Created by Matej Bukovinski on 17. 07. 16.\n//  Copyright © 2016 Matej Bukovinski. All rights reserved.\n//\n\n#import <UIKit/UIKit.h>\n\n@interface MBHudDemoTVViewController : UIViewController\n\n@end\n\n"
  },
  {
    "path": "Demo/HudDemoTV/MBHudDemoTVViewController.m",
    "content": "//\n//  MBHudDemoTVViewController.m\n//  HudDemoTV\n//\n//  Created by Matej Bukovinski on 17. 07. 16.\n//  Copyright © 2016 Matej Bukovinski. All rights reserved.\n//\n\n#import \"MBHudDemoTVViewController.h\"\n#import \"MBProgressHUD.h\"\n\n@implementation MBHudDemoTVViewController\n\n- (IBAction)showHud:(UIButton *)sender {\n    sender.enabled = NO;\n\n    MBProgressHUD *hud = [MBProgressHUD showHUDAddedTo:self.view animated:YES];\n\n    // Set the determinate mode to show task progress.\n    hud.mode = MBProgressHUDModeDeterminate;\n    hud.label.text = NSLocalizedString(@\"Loading...\", @\"HUD loading title\");\n\n    dispatch_async(dispatch_get_global_queue(QOS_CLASS_USER_INITIATED, 0), ^{\n        // Do something useful in the background and update the HUD periodically.\n        [self doSomeWorkWithProgress];\n        dispatch_async(dispatch_get_main_queue(), ^{\n            [hud hideAnimated:YES];\n            sender.enabled = YES;\n        });\n    });\n}\n\n- (void)doSomeWorkWithProgress {\n    // This just increases the progress indicator in a loop.\n    float progress = 0.0f;\n    while (progress < 1.0f) {\n        progress += 0.01f;\n        dispatch_async(dispatch_get_main_queue(), ^{\n            // Instead we could have also passed a reference to the HUD\n            // to the HUD to myProgressTask as a method parameter.\n            [MBProgressHUD HUDForView:self.view].progress = progress;\n        });\n        usleep(50000);\n    }\n}\n\n@end\n"
  },
  {
    "path": "Demo/HudDemoTV/main.m",
    "content": "//\n//  main.m\n//  HudDemoTV\n//\n//  Created by Matej Bukovinski on 17. 07. 16.\n//  Copyright © 2016 Matej Bukovinski. All rights reserved.\n//\n\n#import <UIKit/UIKit.h>\n#import \"MBHudDemoTVAppDelegate.h\"\n\nint main(int argc, char * argv[]) {\n    @autoreleasepool {\n        return UIApplicationMain(argc, argv, nil, NSStringFromClass([MBHudDemoTVAppDelegate class]));\n    }\n}\n"
  },
  {
    "path": "Demo/HudTests/HudTests.m",
    "content": "//\n//  HudTests.m\n//  HudTests\n//\n//  Created by Matej Bukovinski on 31. 01. 16.\n//  Copyright © 2016 Matej Bukovinski. All rights reserved.\n//\n\n#import <XCTest/XCTest.h>\n#import \"MBProgressHUD.h\"\n\n\n#define weakify(var) __weak typeof(var) weak_##var = var;\n\n#define strongify(var) \\\n_Pragma(\"clang diagnostic push\") \\\n_Pragma(\"clang diagnostic ignored \\\"-Wshadow\\\"\") \\\n__strong typeof(var) var = weak_##var; \\\n_Pragma(\"clang diagnostic pop\")\n\n#define MBTestHUDIsVisible(hud, rootView) \\\ndo { \\\nXCTAssertEqualObjects(hud.superview, rootView, @\"The hud should be added to the view.\"); \\\nXCTAssertEqual(hud.alpha, 1.f, @\"The HUD should be visible.\"); \\\nXCTAssertFalse(hud.hidden, @\"The HUD should be visible.\"); \\\nXCTAssertEqual(hud.bezelView.alpha, 1.f, @\"The HUD should be visible.\"); \\\n} while (0)\n\n#define MBTestHUDIsHiden(hud, rootView) \\\ndo { \\\nXCTAssertEqual(hud.alpha, 0.f, @\"The hud should be faded out.\"); \\\n} while (0)\n\n#define MBTestHUDIsHidenAndRemoved(hud, rootView) \\\ndo { \\\nXCTAssertFalse([rootView.subviews containsObject:hud], @\"The HUD should not be part of the view hierarchy.\"); \\\nMBTestHUDIsHiden(hud, rootView); \\\nXCTAssertNil(hud.superview, @\"The HUD should not have a superview.\"); \\\n} while (0)\n\n@interface HudTests : XCTestCase <MBProgressHUDDelegate>\n\n@property (nonatomic) XCTestExpectation *hideExpectation;\n@property (nonatomic, copy) dispatch_block_t hideChecks;\n\n@end\n\n\n@implementation HudTests\n\n#pragma mark - Initialization\n\n- (void)testInitializers {\n    XCTAssertNotNil([[MBProgressHUD alloc] initWithView:[UIView new]]);\n    UIView *nilView = nil;\n    XCTAssertThrows([[MBProgressHUD alloc] initWithView:nilView]);\n    XCTAssertNotNil([[MBProgressHUD alloc] initWithFrame:CGRectZero]);\n    NSKeyedUnarchiver *dummyUnarchiver;\n#if !TARGET_OS_MACCATALYST\n    if (@available(iOS 11.0, *)) {\n#endif\n        dummyUnarchiver = [[NSKeyedUnarchiver alloc] initForReadingFromData:[NSData data] error:nil];\n#if !TARGET_OS_MACCATALYST\n    } else {\n        dummyUnarchiver = [[NSKeyedUnarchiver alloc] initForReadingWithData:[NSData data]];\n    }\n#endif\n    XCTAssertNotNil([[MBProgressHUD alloc] initWithCoder:dummyUnarchiver]);\n}\n\n#pragma mark - Convenience\n\n- (void)testNonAnimatedConvenienceHUDPresentation {\n    UIViewController *rootViewController = UIApplication.sharedApplication.windows.firstObject.rootViewController;\n    UIView *rootView = rootViewController.view;\n\n    MBProgressHUD *hud = [MBProgressHUD showHUDAddedTo:rootView animated:NO];\n\n    XCTAssertNotNil(hud, @\"A HUD should be created.\");\n    MBTestHUDIsVisible(hud, rootView);\n\n    XCTAssertEqual(hud.bezelView.alpha, 1.f, @\"The HUD should be visible.\");\n    XCTAssertFalse([hud.bezelView.layer.animationKeys containsObject:@\"opacity\"], @\"The opacity should NOT be animated.\");\n\n    XCTAssertEqualObjects([MBProgressHUD HUDForView:rootView], hud, @\"The HUD should be found via the convenience operation.\");\n\n    XCTAssertTrue([MBProgressHUD hideHUDForView:rootView animated:NO], @\"The HUD should be found and removed.\");\n\n    MBTestHUDIsHidenAndRemoved(hud, rootView);\n\n    XCTAssertFalse([MBProgressHUD hideHUDForView:rootView animated:NO], @\"A subsequent HUD hide operation should fail.\");\n}\n\n- (void)testAnimatedConvenienceHUDPresentation {\n    UIViewController *rootViewController = UIApplication.sharedApplication.windows.firstObject.rootViewController;\n    UIView *rootView = rootViewController.view;\n\n    self.hideExpectation = [self expectationWithDescription:@\"The hudWasHidden: delegate should have been called.\"];\n\n    MBProgressHUD *hud = [MBProgressHUD showHUDAddedTo:rootView animated:YES];\n    hud.delegate = self;\n\n    XCTAssertNotNil(hud, @\"A HUD should be created.\");\n    MBTestHUDIsVisible(hud, rootView);\n\n    XCTAssertEqual(hud.bezelView.alpha, 1.f, @\"The HUD should be visible.\");\n    XCTAssertTrue([hud.bezelView.layer.animationKeys containsObject:@\"opacity\"], @\"The opacity should be animated.\");\n\n    XCTAssertEqualObjects([MBProgressHUD HUDForView:rootView], hud, @\"The HUD should be found via the convenience operation.\");\n\n    XCTAssertTrue([MBProgressHUD hideHUDForView:rootView animated:YES], @\"The HUD should be found and removed.\");\n\n    XCTAssertTrue([rootView.subviews containsObject:hud], @\"The HUD should still be part of the view hierarchy.\");\n    XCTAssertEqual(hud.alpha, 1.f, @\"The hud should still be visible.\");\n    XCTAssertEqualObjects(hud.superview, rootView, @\"The hud should be added to the view.\");\n    XCTAssertEqual(hud.bezelView.alpha, 0.f, @\"The HUD bezel should be animated out.\");\n    XCTAssertTrue([hud.bezelView.layer.animationKeys containsObject:@\"opacity\"], @\"The opacity should be animated.\");\n\n    weakify(self);\n    self.hideChecks = ^{\n        strongify(self);\n        MBTestHUDIsHidenAndRemoved(hud, rootView);\n\n        XCTAssertFalse([MBProgressHUD hideHUDForView:rootView animated:YES], @\"A subsequent HUD hide operation should fail.\");\n    };\n\n    [self waitForExpectationsWithTimeout:5. handler:nil];\n}\n\n- (void)testCompletionBlock {\n    UIViewController *rootViewController = UIApplication.sharedApplication.windows.firstObject.rootViewController;\n    UIView *rootView = rootViewController.view;\n\n    self.hideExpectation = [self expectationWithDescription:@\"The hudWasHidden: delegate should have been called.\"];\n    XCTestExpectation *completionExpectation = [self expectationWithDescription:@\"The completionBlock: should have been called.\"];\n\n    MBProgressHUD *hud = [MBProgressHUD showHUDAddedTo:rootView animated:YES];\n    hud.delegate = self;\n    hud.completionBlock = ^{\n        [completionExpectation fulfill];\n    };\n\n    [hud hideAnimated:YES];\n\n    [self waitForExpectationsWithTimeout:5. handler:nil];\n}\n\n#pragma mark - Modes\n\n- (void)testRoundDeterminate {\n    UIViewController *rootViewController = UIApplication.sharedApplication.windows.firstObject.rootViewController;\n    UIView *rootView = rootViewController.view;\n\n    MBProgressHUD *hud = [[MBProgressHUD alloc] initWithView:rootView];\n    hud.mode = MBProgressHUDModeDeterminate;\n    [rootView addSubview:hud];\n    [hud showAnimated:NO];\n\n    MBTestHUDIsVisible(hud, rootView);\n    XCTAssertNotNil([self view:hud firstSubviewOfClass:[MBRoundProgressView class]]);\n\n    XCTAssertTrue([MBProgressHUD hideHUDForView:rootView animated:NO], @\"The HUD should be found and removed.\");\n    MBTestHUDIsHidenAndRemoved(hud, rootView);\n}\n\n- (void)testRoundAnnularDeterminate {\n    UIViewController *rootViewController = UIApplication.sharedApplication.windows.firstObject.rootViewController;\n    UIView *rootView = rootViewController.view;\n\n    MBProgressHUD *hud = [[MBProgressHUD alloc] initWithView:rootView];\n    hud.mode = MBProgressHUDModeAnnularDeterminate;\n    [rootView addSubview:hud];\n    [hud showAnimated:NO];\n\n    MBTestHUDIsVisible(hud, rootView);\n    XCTAssertNotNil([self view:hud firstSubviewOfClass:[MBRoundProgressView class]]);\n\n    XCTAssertTrue([MBProgressHUD hideHUDForView:rootView animated:NO], @\"The HUD should be found and removed.\");\n    MBTestHUDIsHidenAndRemoved(hud, rootView);\n}\n\n- (void)testDeterminateHorizontalBar {\n    UIViewController *rootViewController = UIApplication.sharedApplication.windows.firstObject.rootViewController;\n    UIView *rootView = rootViewController.view;\n\n    MBProgressHUD *hud = [[MBProgressHUD alloc] initWithView:rootView];\n    hud.mode = MBProgressHUDModeDeterminateHorizontalBar;\n    [rootView addSubview:hud];\n    [hud showAnimated:NO];\n\n    MBTestHUDIsVisible(hud, rootView);\n    XCTAssertNotNil([self view:hud firstSubviewOfClass:[MBBarProgressView class]]);\n\n    XCTAssertTrue([MBProgressHUD hideHUDForView:rootView animated:NO], @\"The HUD should be found and removed.\");\n    MBTestHUDIsHidenAndRemoved(hud, rootView);\n\n}\n\n#pragma mark - Customization\n\n- (void)testEffectViewOrderAfterSettingBlurStyle {\n    UIViewController *rootViewController = UIApplication.sharedApplication.windows.firstObject.rootViewController;\n    UIView *rootView = rootViewController.view;\n\n    MBProgressHUD *hud = [[MBProgressHUD alloc] initWithView:rootView];\n\n    [hud.bezelView.subviews enumerateObjectsUsingBlock:^(UIView *view, NSUInteger idx, BOOL *stop) {\n        XCTAssert(![view isKindOfClass:UIVisualEffectView.class] || idx == 0, @\"Just the first subview should be a visual effect view.\");\n    }];\n\n    hud.bezelView.blurEffectStyle = UIBlurEffectStyleDark;\n\n    [hud.bezelView.subviews enumerateObjectsUsingBlock:^(UIView *view, NSUInteger idx, BOOL *stop) {\n        XCTAssert(![view isKindOfClass:UIVisualEffectView.class] || idx == 0, @\"Just the first subview should be a visual effect view even after changing the blurEffectStyle.\");\n    }];\n}\n\n#pragma mark - Delay\n\n- (void)testDelayedHide {\n    UIViewController *rootViewController = UIApplication.sharedApplication.windows.firstObject.rootViewController;\n    UIView *rootView = rootViewController.view;\n\n    self.hideExpectation = [self expectationWithDescription:@\"The hudWasHidden: delegate should have been called.\"];\n\n    MBProgressHUD *hud = [MBProgressHUD showHUDAddedTo:rootView animated:NO];\n    hud.delegate = self;\n\n    XCTAssertNotNil(hud, @\"A HUD should be created.\");\n\n    [hud hideAnimated:NO afterDelay:2];\n\n    MBTestHUDIsVisible(hud, rootView);\n\n    dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(1 * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{\n        MBTestHUDIsVisible(hud, rootView);\n    });\n\n    XCTestExpectation *hideCheckExpectation = [self expectationWithDescription:@\"Hide check\"];\n    dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(3 * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{\n        // After the grace time passes, the HUD should still not be shown.\n        MBTestHUDIsHidenAndRemoved(hud, rootView);\n        [hideCheckExpectation fulfill];\n    });\n\n    [self waitForExpectationsWithTimeout:5. handler:nil];\n\n    MBTestHUDIsHidenAndRemoved(hud, rootView);\n}\n\n- (void)testDelayedHideDoesNotRace {\n    // https://github.com/jdg/MBProgressHUD/issues/503\n    UIViewController *rootViewController = UIApplication.sharedApplication.windows.firstObject.rootViewController;\n    UIView *rootView = rootViewController.view;\n\n    MBProgressHUD *hud = [[MBProgressHUD alloc] initWithView:rootView];\n    [rootView addSubview:hud];\n\n    [hud showAnimated:YES];\n    [hud hideAnimated:YES afterDelay:0.3];\n    MBTestHUDIsVisible(hud, rootView);\n\n    XCTestExpectation *hideCheckExpectation = [self expectationWithDescription:@\"Hide check\"];\n    dispatch_after(dispatch_time(DISPATCH_TIME_NOW, 0.3 * NSEC_PER_SEC), dispatch_get_main_queue(), ^{\n        [hud showAnimated:YES];\n        [hud hideAnimated:YES afterDelay:0.3];\n        dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(1 * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{\n            MBTestHUDIsHiden(hud, rootView);\n            [hideCheckExpectation fulfill];\n        });\n    });\n\n    [self waitForExpectationsWithTimeout:5. handler:nil];\n\n    [hud removeFromSuperview];\n    MBTestHUDIsHidenAndRemoved(hud, rootView);\n}\n\n#pragma mark - Ruse\n\n- (void)testNonAnimatedHudReuse {\n    UIViewController *rootViewController = UIApplication.sharedApplication.windows.firstObject.rootViewController;\n    UIView *rootView = rootViewController.view;\n\n    MBProgressHUD *hud = [[MBProgressHUD alloc] initWithView:rootView];\n    [rootView addSubview:hud];\n    [hud showAnimated:NO];\n\n    XCTAssertNotNil(hud, @\"A HUD should be created.\");\n\n    [hud hideAnimated:NO];\n    [hud showAnimated:NO];\n\n    MBTestHUDIsVisible(hud, rootView);\n\n    [hud hideAnimated:NO];\n    [hud removeFromSuperview];\n}\n\n- (void)testUnfinishedHidingAnimation {\n  UIViewController *rootViewController = UIApplication.sharedApplication.windows.firstObject.rootViewController;\n  UIView *rootView = rootViewController.view;\n\n  MBProgressHUD *hud = [MBProgressHUD showHUDAddedTo:rootView animated:NO];\n\n  [hud hideAnimated:YES];\n\n  // Cancel all animations. It will cause `UIView+animate...` to call completionBlock with `finished = NO`.\n  // It's same as if you call `[hud hideAnimated:YES]` while the app is in background.\n  [hud.bezelView.layer removeAllAnimations];\n  [hud.backgroundView.layer removeAllAnimations];\n\n  XCTestExpectation *hideCheckExpectation = [self expectationWithDescription:@\"Hide check\"];\n  dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(3 * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{\n    // After the grace time passes, the HUD should still not be shown.\n    MBTestHUDIsHidenAndRemoved(hud, rootView);\n    [hideCheckExpectation fulfill];\n  });\n\n  [self waitForExpectationsWithTimeout:5. handler:nil];\n\n  MBTestHUDIsHidenAndRemoved(hud, rootView);\n}\n\n- (void)testAnimatedImmediateHudReuse {\n    UIViewController *rootViewController = UIApplication.sharedApplication.windows.firstObject.rootViewController;\n    UIView *rootView = rootViewController.view;\n\n    XCTestExpectation *hideExpectation = [self expectationWithDescription:@\"The hud should have been hidden.\"];\n\n    MBProgressHUD *hud = [[MBProgressHUD alloc] initWithView:rootView];\n    [rootView addSubview:hud];\n    [hud showAnimated:YES];\n\n    XCTAssertNotNil(hud, @\"A HUD should be created.\");\n\n    [hud hideAnimated:YES];\n    [hud showAnimated:YES];\n\n    dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(1 * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{\n        MBTestHUDIsVisible(hud, rootView);\n\n        [hud hideAnimated:NO];\n        [hud removeFromSuperview];\n\n        [hideExpectation fulfill];\n    });\n\n    [self waitForExpectationsWithTimeout:5. handler:nil];\n}\n\n#pragma mark - Min show time\n\n- (void)testMinShowTime {\n    UIViewController *rootViewController = UIApplication.sharedApplication.windows.firstObject.rootViewController;\n    UIView *rootView = rootViewController.view;\n\n    self.hideExpectation = [self expectationWithDescription:@\"The hudWasHidden: delegate should have been called.\"];\n\n    MBProgressHUD *hud = [[MBProgressHUD alloc] initWithView:rootView];\n    hud.delegate = self;\n    hud.removeFromSuperViewOnHide = YES;\n    hud.minShowTime = 2.;\n    [rootView addSubview:hud];\n    [hud showAnimated:YES];\n\n    XCTAssertNotNil(hud, @\"A HUD should be created.\");\n\n    [hud hideAnimated:YES];\n\n    __block BOOL checkedAfterOneSecond = NO;\n    dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(1 * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{\n        // Check that the hud is still visible\n        MBTestHUDIsVisible(hud, rootView);\n        checkedAfterOneSecond = YES;\n    });\n\n    weakify(self);\n    self.hideChecks = ^{\n        strongify(self);\n        XCTAssertTrue(checkedAfterOneSecond);\n    };\n\n    [self waitForExpectationsWithTimeout:5. handler:nil];\n\n    MBTestHUDIsHidenAndRemoved(hud, rootView);\n}\n\n#pragma mark - Grace time\n\n- (void)testGraceTime {\n    UIViewController *rootViewController = UIApplication.sharedApplication.windows.firstObject.rootViewController;\n    UIView *rootView = rootViewController.view;\n\n    self.hideExpectation = [self expectationWithDescription:@\"The hudWasHidden: delegate should have been called.\"];\n\n    MBProgressHUD *hud = [[MBProgressHUD alloc] initWithView:rootView];\n    hud.delegate = self;\n    hud.removeFromSuperViewOnHide = YES;\n    hud.graceTime = 2.;\n    [rootView addSubview:hud];\n    [hud showAnimated:YES];\n\n    XCTAssertNotNil(hud, @\"A HUD should be created.\");\n\n    // The HUD should be added to the view but still hidden\n    XCTAssertEqualObjects(hud.superview, rootView, @\"The hud should be added to the view.\"); \\\n    XCTAssertEqual(hud.alpha, 0.f, @\"The HUD should not be visible.\"); \\\n    XCTAssertFalse(hud.hidden, @\"The HUD should be visible.\"); \\\n    XCTAssertEqual(hud.bezelView.alpha, 0.f, @\"The HUD should not be visible.\"); \\\n\n\n    dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(1 * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{\n        // The HUD should be added to the view but still hidden\n        XCTAssertEqualObjects(hud.superview, rootView, @\"The hud should be added to the view.\"); \\\n        XCTAssertEqual(hud.alpha, 0.f, @\"The HUD should not be visible.\"); \\\n        XCTAssertFalse(hud.hidden, @\"The HUD should be visible.\"); \\\n        XCTAssertEqual(hud.bezelView.alpha, 0.f, @\"The HUD should not be visible.\"); \\\n    });\n\n    dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(3 * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{\n        // After the grace time passes, the HUD should be shown.\n        MBTestHUDIsVisible(hud, rootView);\n        [hud hideAnimated:YES];\n    });\n\n    [self waitForExpectationsWithTimeout:5. handler:nil];\n\n    MBTestHUDIsHidenAndRemoved(hud, rootView);\n}\n\n- (void)testHideBeforeGraceTimeElapsed {\n    UIViewController *rootViewController = UIApplication.sharedApplication.windows.firstObject.rootViewController;\n    UIView *rootView = rootViewController.view;\n\n    self.hideExpectation = [self expectationWithDescription:@\"The hudWasHidden: delegate should have been called.\"];\n\n    MBProgressHUD *hud = [[MBProgressHUD alloc] initWithView:rootView];\n    hud.delegate = self;\n    hud.removeFromSuperViewOnHide = YES;\n    hud.graceTime = 2.;\n    [rootView addSubview:hud];\n    [hud showAnimated:YES];\n\n    XCTAssertNotNil(hud, @\"A HUD should be created.\");\n\n    // The HUD should be added to the view but still hidden\n    XCTAssertEqualObjects(hud.superview, rootView, @\"The hud should be added to the view.\"); \\\n    XCTAssertEqual(hud.alpha, 0.f, @\"The HUD should not be visible.\"); \\\n    XCTAssertFalse(hud.hidden, @\"The HUD should be visible.\"); \\\n    XCTAssertEqual(hud.bezelView.alpha, 0.f, @\"The HUD should not be visible.\"); \\\n\n    dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(1 * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{\n        // The HUD should be added to the view but still hidden\n        XCTAssertEqualObjects(hud.superview, rootView, @\"The hud should be added to the view.\"); \\\n        XCTAssertEqual(hud.alpha, 0.f, @\"The HUD should not be visible.\"); \\\n        XCTAssertFalse(hud.hidden, @\"The HUD should be visible.\"); \\\n        XCTAssertEqual(hud.bezelView.alpha, 0.f, @\"The HUD should not be visible.\"); \\\n        [hud hideAnimated:YES];\n    });\n\n    XCTestExpectation *hideCheckExpectation = [self expectationWithDescription:@\"Hide check\"];\n    dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(3 * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{\n        // After the grace time passes, the HUD should still not be shown.\n        MBTestHUDIsHidenAndRemoved(hud, rootView);\n        [hideCheckExpectation fulfill];\n    });\n\n    [self waitForExpectationsWithTimeout:5. handler:nil];\n\n    MBTestHUDIsHidenAndRemoved(hud, rootView);\n}\n\n#pragma mark - Customization\n\n- (void)testShape {\n    UIViewController *rootViewController = UIApplication.sharedApplication.windows.firstObject.rootViewController;\n    UIView *rootView = rootViewController.view;\n\n    MBProgressHUD *hud = [[MBProgressHUD alloc] initWithView:rootView];\n    hud.removeFromSuperViewOnHide = YES;\n    hud.offset = CGPointMake(50, 50);\n    hud.square = YES;\n    hud.label.text = @\"Some long text...\";\n    [rootView addSubview:hud];\n    [hud showAnimated:NO];\n\n    [hud setNeedsLayout];\n    [hud layoutIfNeeded];\n\n    CGRect frame = hud.bezelView.frame;\n    XCTAssertEqual(frame.size.width, frame.size.height);\n\n    [hud hideAnimated:NO];\n\n    MBTestHUDIsHidenAndRemoved(hud, rootView);\n}\n\n#pragma mark - MBProgressHUDDelegate\n\n- (void)hudWasHidden:(MBProgressHUD *)hud {\n    if (self.hideChecks) self.hideChecks();\n    self.hideChecks = nil;\n\n    [self.hideExpectation fulfill];\n    self.hideExpectation = nil;\n}\n\n#pragma mark - Helpers\n\n- (nullable UIView *)view:(UIView *)view firstSubviewOfClass:(Class)clazz {\n    for (__unsafe_unretained UIView *subview in view.subviews) {\n        if ([subview isKindOfClass:clazz]) {\n            return subview;\n        }\n    }\n    __unsafe_unretained UIView *theView;\n    for (__unsafe_unretained UIView *subview in view.subviews) {\n        theView = [self view:subview firstSubviewOfClass:clazz];\n        if (theView) { break; }\n    }\n    return theView;\n}\n\n@end\n"
  },
  {
    "path": "Demo/HudTests/Info.plist",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<!DOCTYPE plist PUBLIC \"-//Apple//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/PropertyList-1.0.dtd\">\n<plist version=\"1.0\">\n<dict>\n\t<key>CFBundleDevelopmentRegion</key>\n\t<string>en</string>\n\t<key>CFBundleExecutable</key>\n\t<string>$(EXECUTABLE_NAME)</string>\n\t<key>CFBundleIdentifier</key>\n\t<string>$(PRODUCT_BUNDLE_IDENTIFIER)</string>\n\t<key>CFBundleInfoDictionaryVersion</key>\n\t<string>6.0</string>\n\t<key>CFBundleName</key>\n\t<string>$(PRODUCT_NAME)</string>\n\t<key>CFBundlePackageType</key>\n\t<string>BNDL</string>\n\t<key>CFBundleShortVersionString</key>\n\t<string>1.0</string>\n\t<key>CFBundleSignature</key>\n\t<string>????</string>\n\t<key>CFBundleVersion</key>\n\t<string>1</string>\n</dict>\n</plist>\n"
  },
  {
    "path": "Framework-Info.plist",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<!DOCTYPE plist PUBLIC \"-//Apple//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/PropertyList-1.0.dtd\">\n<plist version=\"1.0\">\n<dict>\n\t<key>CFBundleDevelopmentRegion</key>\n\t<string>en</string>\n\t<key>CFBundleExecutable</key>\n\t<string>$(EXECUTABLE_NAME)</string>\n\t<key>CFBundleIdentifier</key>\n\t<string>$(PRODUCT_BUNDLE_IDENTIFIER)</string>\n\t<key>CFBundleInfoDictionaryVersion</key>\n\t<string>6.0</string>\n\t<key>CFBundleName</key>\n\t<string>$(PRODUCT_NAME)</string>\n\t<key>CFBundlePackageType</key>\n\t<string>FMWK</string>\n\t<key>CFBundleShortVersionString</key>\n\t<string>$(MARKETING_VERSION)</string>\n\t<key>CFBundleSignature</key>\n\t<string>????</string>\n\t<key>CFBundleVersion</key>\n\t<string>$(CURRENT_PROJECT_VERSION)</string>\n\t<key>NSPrincipalClass</key>\n\t<string></string>\n</dict>\n</plist>\n"
  },
  {
    "path": "Framework-tvOS-Info.plist",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<!DOCTYPE plist PUBLIC \"-//Apple//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/PropertyList-1.0.dtd\">\n<plist version=\"1.0\">\n<dict>\n\t<key>CFBundleDevelopmentRegion</key>\n\t<string>en</string>\n\t<key>CFBundleExecutable</key>\n\t<string>$(EXECUTABLE_NAME)</string>\n\t<key>CFBundleIdentifier</key>\n\t<string>$(PRODUCT_BUNDLE_IDENTIFIER)</string>\n\t<key>CFBundleInfoDictionaryVersion</key>\n\t<string>6.0</string>\n\t<key>CFBundleName</key>\n\t<string>$(PRODUCT_NAME)</string>\n\t<key>CFBundlePackageType</key>\n\t<string>FMWK</string>\n\t<key>CFBundleShortVersionString</key>\n\t<string>$(MARKETING_VERSION)</string>\n\t<key>CFBundleVersion</key>\n\t<string>$(CURRENT_PROJECT_VERSION)</string>\n\t<key>NSPrincipalClass</key>\n\t<string></string>\n</dict>\n</plist>\n"
  },
  {
    "path": "LICENSE",
    "content": "Copyright © 2009-2020 Matej Bukovinski\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE."
  },
  {
    "path": "MBProgressHUD-Prefix.pch",
    "content": "//\n// Prefix header for all source files of the 'MBProgressHUD' target in the 'MBProgressHUD' project\n//\n\n#import <Availability.h>\n\n#ifndef __IPHONE_8_0\n#warning \"This project uses features only available in iOS SDK 8.0 and later.\"\n#endif\n\n#ifdef __OBJC__\n    #import <UIKit/UIKit.h>\n    #import <Foundation/Foundation.h>\n    #import <CoreGraphics/CoreGraphics.h>\n#endif\n"
  },
  {
    "path": "MBProgressHUD.h",
    "content": "//\n//  MBProgressHUD.h\n//  Version 1.2.0\n//  Created by Matej Bukovinski on 2.4.09.\n//\n\n// This code is distributed under the terms and conditions of the MIT license.\n\n// Copyright © 2009-2020 Matej Bukovinski\n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n//\n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n\n#import <Foundation/Foundation.h>\n#import <UIKit/UIKit.h>\n#import <CoreGraphics/CoreGraphics.h>\n\n@class MBBackgroundView;\n@protocol MBProgressHUDDelegate;\n\n\nextern CGFloat const MBProgressMaxOffset;\n\ntypedef NS_ENUM(NSInteger, MBProgressHUDMode) {\n    /// UIActivityIndicatorView.\n    MBProgressHUDModeIndeterminate,\n    /// A round, pie-chart like, progress view.\n    MBProgressHUDModeDeterminate,\n    /// Horizontal progress bar.\n    MBProgressHUDModeDeterminateHorizontalBar,\n    /// Ring-shaped progress view.\n    MBProgressHUDModeAnnularDeterminate,\n    /// Shows a custom view.\n    MBProgressHUDModeCustomView,\n    /// Shows only labels.\n    MBProgressHUDModeText\n};\n\ntypedef NS_ENUM(NSInteger, MBProgressHUDAnimation) {\n    /// Opacity animation\n    MBProgressHUDAnimationFade,\n    /// Opacity + scale animation (zoom in when appearing zoom out when disappearing)\n    MBProgressHUDAnimationZoom,\n    /// Opacity + scale animation (zoom out style)\n    MBProgressHUDAnimationZoomOut,\n    /// Opacity + scale animation (zoom in style)\n    MBProgressHUDAnimationZoomIn\n};\n\ntypedef NS_ENUM(NSInteger, MBProgressHUDBackgroundStyle) {\n    /// Solid color background\n    MBProgressHUDBackgroundStyleSolidColor,\n    /// UIVisualEffectView or UIToolbar.layer background view\n    MBProgressHUDBackgroundStyleBlur\n};\n\ntypedef void (^MBProgressHUDCompletionBlock)(void);\n\n\nNS_ASSUME_NONNULL_BEGIN\n\n\n/**\n * Displays a simple HUD window containing a progress indicator and two optional labels for short messages.\n *\n * This is a simple drop-in class for displaying a progress HUD view similar to Apple's private UIProgressHUD class.\n * The MBProgressHUD window spans over the entire space given to it by the initWithFrame: constructor and catches all\n * user input on this region, thereby preventing the user operations on components below the view.\n *\n * @note To still allow touches to pass through the HUD, you can set hud.userInteractionEnabled = NO.\n * @attention MBProgressHUD is a UI class and should therefore only be accessed on the main thread.\n */\n@interface MBProgressHUD : UIView\n\n/**\n * Creates a new HUD, adds it to provided view and shows it. The counterpart to this method is hideHUDForView:animated:.\n *\n * @note This method sets removeFromSuperViewOnHide. The HUD will automatically be removed from the view hierarchy when hidden.\n *\n * @param view The view that the HUD will be added to\n * @param animated If set to YES the HUD will appear using the current animationType. If set to NO the HUD will not use\n * animations while appearing.\n * @return A reference to the created HUD.\n *\n * @see hideHUDForView:animated:\n * @see animationType\n */\n+ (instancetype)showHUDAddedTo:(UIView *)view animated:(BOOL)animated;\n\n/// @name Showing and hiding\n\n/**\n * Finds the top-most HUD subview that hasn't finished and hides it. The counterpart to this method is showHUDAddedTo:animated:.\n *\n * @note This method sets removeFromSuperViewOnHide. The HUD will automatically be removed from the view hierarchy when hidden.\n *\n * @param view The view that is going to be searched for a HUD subview.\n * @param animated If set to YES the HUD will disappear using the current animationType. If set to NO the HUD will not use\n * animations while disappearing.\n * @return YES if a HUD was found and removed, NO otherwise.\n *\n * @see showHUDAddedTo:animated:\n * @see animationType\n */\n+ (BOOL)hideHUDForView:(UIView *)view animated:(BOOL)animated;\n\n/**\n * Finds the top-most HUD subview that hasn't finished and returns it.\n *\n * @param view The view that is going to be searched.\n * @return A reference to the last HUD subview discovered.\n */\n+ (nullable MBProgressHUD *)HUDForView:(UIView *)view NS_SWIFT_NAME(forView(_:));\n\n/**\n * A convenience constructor that initializes the HUD with the view's bounds. Calls the designated constructor with\n * view.bounds as the parameter.\n *\n * @param view The view instance that will provide the bounds for the HUD. Should be the same instance as\n * the HUD's superview (i.e., the view that the HUD will be added to).\n */\n- (instancetype)initWithView:(UIView *)view;\n\n/**\n * Displays the HUD.\n *\n * @note You need to make sure that the main thread completes its run loop soon after this method call so that\n * the user interface can be updated. Call this method when your task is already set up to be executed in a new thread\n * (e.g., when using something like NSOperation or making an asynchronous call like NSURLRequest).\n *\n * @param animated If set to YES the HUD will appear using the current animationType. If set to NO the HUD will not use\n * animations while appearing.\n *\n * @see animationType\n */\n- (void)showAnimated:(BOOL)animated;\n\n/**\n * Hides the HUD. This still calls the hudWasHidden: delegate. This is the counterpart of the show: method. Use it to\n * hide the HUD when your task completes.\n *\n * @param animated If set to YES the HUD will disappear using the current animationType. If set to NO the HUD will not use\n * animations while disappearing.\n *\n * @see animationType\n */\n- (void)hideAnimated:(BOOL)animated;\n\n/**\n * Hides the HUD after a delay. This still calls the hudWasHidden: delegate. This is the counterpart of the show: method. Use it to\n * hide the HUD when your task completes.\n *\n * @param animated If set to YES the HUD will disappear using the current animationType. If set to NO the HUD will not use\n * animations while disappearing.\n * @param delay Delay in seconds until the HUD is hidden.\n *\n * @see animationType\n */\n- (void)hideAnimated:(BOOL)animated afterDelay:(NSTimeInterval)delay;\n\n/**\n * The HUD delegate object. Receives HUD state notifications.\n */\n@property (weak, nonatomic) id<MBProgressHUDDelegate> delegate;\n\n/**\n * Called after the HUD is hidden.\n */\n@property (copy, nullable) MBProgressHUDCompletionBlock completionBlock;\n\n/**\n * Grace period is the time (in seconds) that the invoked method may be run without\n * showing the HUD. If the task finishes before the grace time runs out, the HUD will\n * not be shown at all.\n * This may be used to prevent HUD display for very short tasks.\n * Defaults to 0 (no grace time).\n * @note The graceTime needs to be set before the hud is shown. You thus can't use `showHUDAddedTo:animated:`,\n * but instead need to alloc / init the HUD, configure the grace time and than show it manually.\n */\n@property (assign, nonatomic) NSTimeInterval graceTime;\n\n/**\n * The minimum time (in seconds) that the HUD is shown.\n * This avoids the problem of the HUD being shown and than instantly hidden.\n * Defaults to 0 (no minimum show time).\n */\n@property (assign, nonatomic) NSTimeInterval minShowTime;\n\n/**\n * Removes the HUD from its parent view when hidden.\n * Defaults to NO.\n */\n@property (assign, nonatomic) BOOL removeFromSuperViewOnHide;\n\n/// @name Appearance\n\n/**\n * MBProgressHUD operation mode. The default is MBProgressHUDModeIndeterminate.\n */\n@property (assign, nonatomic) MBProgressHUDMode mode;\n\n/**\n * A color that gets forwarded to all labels and supported indicators. Also sets the tintColor\n * for custom views on iOS 7+. Set to nil to manage color individually.\n * Defaults to semi-translucent black on iOS 7 and later and white on earlier iOS versions.\n */\n@property (strong, nonatomic, nullable) UIColor *contentColor UI_APPEARANCE_SELECTOR;\n\n/**\n * The animation type that should be used when the HUD is shown and hidden.\n */\n@property (assign, nonatomic) MBProgressHUDAnimation animationType UI_APPEARANCE_SELECTOR;\n\n/**\n * The bezel offset relative to the center of the view. You can use MBProgressMaxOffset\n * and -MBProgressMaxOffset to move the HUD all the way to the screen edge in each direction.\n * E.g., CGPointMake(0.f, MBProgressMaxOffset) would position the HUD centered on the bottom edge.\n */\n@property (assign, nonatomic) CGPoint offset UI_APPEARANCE_SELECTOR;\n\n/**\n * The amount of space between the HUD edge and the HUD elements (labels, indicators or custom views).\n * This also represents the minimum bezel distance to the edge of the HUD view.\n * Defaults to 20.f\n */\n@property (assign, nonatomic) CGFloat margin UI_APPEARANCE_SELECTOR;\n\n/**\n * The minimum size of the HUD bezel. Defaults to CGSizeZero (no minimum size).\n */\n@property (assign, nonatomic) CGSize minSize UI_APPEARANCE_SELECTOR;\n\n/**\n * Force the HUD dimensions to be equal if possible.\n */\n@property (assign, nonatomic, getter = isSquare) BOOL square UI_APPEARANCE_SELECTOR;\n\n/**\n * When enabled, the bezel center gets slightly affected by the device accelerometer data.\n * Defaults to NO.\n *\n * @note This can cause main thread checker assertions on certain devices. https://github.com/jdg/MBProgressHUD/issues/552\n */\n@property (assign, nonatomic, getter=areDefaultMotionEffectsEnabled) BOOL defaultMotionEffectsEnabled UI_APPEARANCE_SELECTOR;\n\n/// @name Progress\n\n/**\n * The progress of the progress indicator, from 0.0 to 1.0. Defaults to 0.0.\n */\n@property (assign, nonatomic) float progress;\n\n/// @name ProgressObject\n\n/**\n * The NSProgress object feeding the progress information to the progress indicator.\n */\n@property (strong, nonatomic, nullable) NSProgress *progressObject;\n\n/// @name Views\n\n/**\n * The view containing the labels and indicator (or customView).\n */\n@property (strong, nonatomic, readonly) MBBackgroundView *bezelView;\n\n/**\n * View covering the entire HUD area, placed behind bezelView.\n */\n@property (strong, nonatomic, readonly) MBBackgroundView *backgroundView;\n\n/**\n * The UIView (e.g., a UIImageView) to be shown when the HUD is in MBProgressHUDModeCustomView.\n * The view should implement intrinsicContentSize for proper sizing. For best results use approximately 37 by 37 pixels.\n */\n@property (strong, nonatomic, nullable) UIView *customView;\n\n/**\n * A label that holds an optional short message to be displayed below the activity indicator. The HUD is automatically resized to fit\n * the entire text.\n */\n@property (strong, nonatomic, readonly) UILabel *label;\n\n/**\n * A label that holds an optional details message displayed below the labelText message. The details text can span multiple lines.\n */\n@property (strong, nonatomic, readonly) UILabel *detailsLabel;\n\n/**\n * A button that is placed below the labels. Visible only if a target / action is added and a title is assigned..\n */\n@property (strong, nonatomic, readonly) UIButton *button;\n\n@end\n\n\n@protocol MBProgressHUDDelegate <NSObject>\n\n@optional\n\n/**\n * Called after the HUD was fully hidden from the screen.\n */\n- (void)hudWasHidden:(MBProgressHUD *)hud;\n\n@end\n\n\n/**\n * A progress view for showing definite progress by filling up a circle (pie chart).\n */\n@interface MBRoundProgressView : UIView\n\n/**\n * Progress (0.0 to 1.0)\n */\n@property (nonatomic, assign) float progress;\n\n/**\n * Indicator progress color.\n * Defaults to white [UIColor whiteColor].\n */\n@property (nonatomic, strong) UIColor *progressTintColor;\n\n/**\n * Indicator background (non-progress) color.\n * Only applicable on iOS versions older than iOS 7.\n * Defaults to translucent white (alpha 0.1).\n */\n@property (nonatomic, strong) UIColor *backgroundTintColor;\n\n/*\n * Display mode - NO = round or YES = annular. Defaults to round.\n */\n@property (nonatomic, assign, getter = isAnnular) BOOL annular;\n\n@end\n\n\n/**\n * A flat bar progress view.\n */\n@interface MBBarProgressView : UIView\n\n/**\n * Progress (0.0 to 1.0)\n */\n@property (nonatomic, assign) float progress;\n\n/**\n * Bar border line color.\n * Defaults to white [UIColor whiteColor].\n */\n@property (nonatomic, strong) UIColor *lineColor;\n\n/**\n * Bar background color.\n * Defaults to clear [UIColor clearColor];\n */\n@property (nonatomic, strong) UIColor *progressRemainingColor;\n\n/**\n * Bar progress color.\n * Defaults to white [UIColor whiteColor].\n */\n@property (nonatomic, strong) UIColor *progressColor;\n\n@end\n\n\n@interface MBBackgroundView : UIView\n\n/**\n * The background style.\n * Defaults to MBProgressHUDBackgroundStyleBlur.\n */\n@property (nonatomic) MBProgressHUDBackgroundStyle style;\n\n/**\n * The blur effect style, when using MBProgressHUDBackgroundStyleBlur.\n * Defaults to UIBlurEffectStyleLight.\n */\n@property (nonatomic) UIBlurEffectStyle blurEffectStyle;\n\n/**\n * The background color or the blur tint color.\n *\n * Defaults to nil on iOS 13 and later and\n * `[UIColor colorWithWhite:0.8f alpha:0.6f]`\n * on older systems.\n */\n@property (nonatomic, strong, nullable) UIColor *color;\n\n@end\n\nNS_ASSUME_NONNULL_END\n"
  },
  {
    "path": "MBProgressHUD.m",
    "content": "//\n// MBProgressHUD.m\n// Version 1.2.0\n// Created by Matej Bukovinski on 2.4.09.\n//\n\n#import \"MBProgressHUD.h\"\n#import <tgmath.h>\n\n#define MBMainThreadAssert() NSAssert([NSThread isMainThread], @\"MBProgressHUD needs to be accessed on the main thread.\");\n\nCGFloat const MBProgressMaxOffset = 1000000.f;\n\nstatic const CGFloat MBDefaultPadding = 4.f;\nstatic const CGFloat MBDefaultLabelFontSize = 16.f;\nstatic const CGFloat MBDefaultDetailsLabelFontSize = 12.f;\n\n\n@interface MBProgressHUD ()\n\n@property (nonatomic, assign) BOOL useAnimation;\n@property (nonatomic, assign, getter=hasFinished) BOOL finished;\n@property (nonatomic, strong) UIView *indicator;\n@property (nonatomic, strong) NSDate *showStarted;\n@property (nonatomic, strong) NSArray *paddingConstraints;\n@property (nonatomic, strong) NSArray *bezelConstraints;\n@property (nonatomic, strong) UIView *topSpacer;\n@property (nonatomic, strong) UIView *bottomSpacer;\n@property (nonatomic, strong) UIMotionEffectGroup *bezelMotionEffects;\n@property (nonatomic, weak) NSTimer *graceTimer;\n@property (nonatomic, weak) NSTimer *minShowTimer;\n@property (nonatomic, weak) NSTimer *hideDelayTimer;\n@property (nonatomic, weak) CADisplayLink *progressObjectDisplayLink;\n\n@end\n\n\n@interface MBProgressHUDRoundedButton : UIButton\n@end\n\n\n@implementation MBProgressHUD\n\n#pragma mark - Class methods\n\n+ (instancetype)showHUDAddedTo:(UIView *)view animated:(BOOL)animated {\n    MBProgressHUD *hud = [[self alloc] initWithView:view];\n    hud.removeFromSuperViewOnHide = YES;\n    [view addSubview:hud];\n    [hud showAnimated:animated];\n    return hud;\n}\n\n+ (BOOL)hideHUDForView:(UIView *)view animated:(BOOL)animated {\n    MBProgressHUD *hud = [self HUDForView:view];\n    if (hud != nil) {\n        hud.removeFromSuperViewOnHide = YES;\n        [hud hideAnimated:animated];\n        return YES;\n    }\n    return NO;\n}\n\n+ (MBProgressHUD *)HUDForView:(UIView *)view {\n    NSEnumerator *subviewsEnum = [view.subviews reverseObjectEnumerator];\n    for (UIView *subview in subviewsEnum) {\n        if ([subview isKindOfClass:self]) {\n            MBProgressHUD *hud = (MBProgressHUD *)subview;\n            if (hud.hasFinished == NO) {\n                return hud;\n            }\n        }\n    }\n    return nil;\n}\n\n#pragma mark - Lifecycle\n\n- (void)commonInit {\n    // Set default values for properties\n    _animationType = MBProgressHUDAnimationFade;\n    _mode = MBProgressHUDModeIndeterminate;\n    _margin = 20.0f;\n    _defaultMotionEffectsEnabled = NO;\n\n    if (@available(iOS 13.0, tvOS 13, *)) {\n       _contentColor = [[UIColor labelColor] colorWithAlphaComponent:0.7f];\n    } else {\n        _contentColor = [UIColor colorWithWhite:0.f alpha:0.7f];\n    }\n\n    // Transparent background\n    self.opaque = NO;\n    self.backgroundColor = [UIColor clearColor];\n    // Make it invisible for now\n    self.alpha = 0.0f;\n    self.autoresizingMask = UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight;\n    self.layer.allowsGroupOpacity = NO;\n\n    [self setupViews];\n    [self updateIndicators];\n    [self registerForNotifications];\n}\n\n- (instancetype)initWithFrame:(CGRect)frame {\n    if ((self = [super initWithFrame:frame])) {\n        [self commonInit];\n    }\n    return self;\n}\n\n- (instancetype)initWithCoder:(NSCoder *)aDecoder {\n    if ((self = [super initWithCoder:aDecoder])) {\n        [self commonInit];\n    }\n    return self;\n}\n\n- (id)initWithView:(UIView *)view {\n    NSAssert(view, @\"View must not be nil.\");\n    return [self initWithFrame:view.bounds];\n}\n\n- (void)dealloc {\n    [self unregisterFromNotifications];\n}\n\n#pragma mark - Show & hide\n\n- (void)showAnimated:(BOOL)animated {\n    MBMainThreadAssert();\n    [self.minShowTimer invalidate];\n    self.useAnimation = animated;\n    self.finished = NO;\n    // If the grace time is set, postpone the HUD display\n    if (self.graceTime > 0.0) {\n        NSTimer *timer = [NSTimer timerWithTimeInterval:self.graceTime target:self selector:@selector(handleGraceTimer:) userInfo:nil repeats:NO];\n        [[NSRunLoop currentRunLoop] addTimer:timer forMode:NSRunLoopCommonModes];\n        self.graceTimer = timer;\n    }\n    // ... otherwise show the HUD immediately\n    else {\n        [self showUsingAnimation:self.useAnimation];\n    }\n}\n\n- (void)hideAnimated:(BOOL)animated {\n    MBMainThreadAssert();\n    [self.graceTimer invalidate];\n    self.useAnimation = animated;\n    self.finished = YES;\n    // If the minShow time is set, calculate how long the HUD was shown,\n    // and postpone the hiding operation if necessary\n    if (self.minShowTime > 0.0 && self.showStarted) {\n        NSTimeInterval interv = [[NSDate date] timeIntervalSinceDate:self.showStarted];\n        if (interv < self.minShowTime) {\n            NSTimer *timer = [NSTimer timerWithTimeInterval:(self.minShowTime - interv) target:self selector:@selector(handleMinShowTimer:) userInfo:nil repeats:NO];\n            [[NSRunLoop currentRunLoop] addTimer:timer forMode:NSRunLoopCommonModes];\n            self.minShowTimer = timer;\n            return;\n        }\n    }\n    // ... otherwise hide the HUD immediately\n    [self hideUsingAnimation:self.useAnimation];\n}\n\n- (void)hideAnimated:(BOOL)animated afterDelay:(NSTimeInterval)delay {\n    // Cancel any scheduled hideAnimated:afterDelay: calls\n    [self.hideDelayTimer invalidate];\n\n    NSTimer *timer = [NSTimer timerWithTimeInterval:delay target:self selector:@selector(handleHideTimer:) userInfo:@(animated) repeats:NO];\n    [[NSRunLoop currentRunLoop] addTimer:timer forMode:NSRunLoopCommonModes];\n    self.hideDelayTimer = timer;\n}\n\n#pragma mark - Timer callbacks\n\n- (void)handleGraceTimer:(NSTimer *)theTimer {\n    // Show the HUD only if the task is still running\n    if (!self.hasFinished) {\n        [self showUsingAnimation:self.useAnimation];\n    }\n}\n\n- (void)handleMinShowTimer:(NSTimer *)theTimer {\n    [self hideUsingAnimation:self.useAnimation];\n}\n\n- (void)handleHideTimer:(NSTimer *)timer {\n    [self hideAnimated:[timer.userInfo boolValue]];\n}\n\n#pragma mark - View Hierrarchy\n\n- (void)didMoveToSuperview {\n    [self updateForCurrentOrientationAnimated:NO];\n}\n\n#pragma mark - Internal show & hide operations\n\n- (void)showUsingAnimation:(BOOL)animated {\n    // Cancel any previous animations\n    [self.bezelView.layer removeAllAnimations];\n    [self.backgroundView.layer removeAllAnimations];\n\n    // Cancel any scheduled hideAnimated:afterDelay: calls\n    [self.hideDelayTimer invalidate];\n\n    self.showStarted = [NSDate date];\n    self.alpha = 1.f;\n\n    // Needed in case we hide and re-show with the same NSProgress object attached.\n    [self setNSProgressDisplayLinkEnabled:YES];\n\n    // Set up motion effects only at this point to avoid needlessly\n    // creating the effect if it was disabled after initialization.\n    [self updateBezelMotionEffects];\n\n    if (animated) {\n        [self animateIn:YES withType:self.animationType completion:NULL];\n    } else {\n        self.bezelView.alpha = 1.f;\n        self.backgroundView.alpha = 1.f;\n    }\n}\n\n- (void)hideUsingAnimation:(BOOL)animated {\n    // Cancel any scheduled hideAnimated:afterDelay: calls.\n    // This needs to happen here instead of in done,\n    // to avoid races if another hideAnimated:afterDelay:\n    // call comes in while the HUD is animating out.\n    [self.hideDelayTimer invalidate];\n\n    if (animated && self.showStarted) {\n        self.showStarted = nil;\n        [self animateIn:NO withType:self.animationType completion:^(BOOL finished) {\n            [self done];\n        }];\n    } else {\n        self.showStarted = nil;\n        self.bezelView.alpha = 0.f;\n        self.backgroundView.alpha = 1.f;\n        [self done];\n    }\n}\n\n- (void)animateIn:(BOOL)animatingIn withType:(MBProgressHUDAnimation)type completion:(void(^)(BOOL finished))completion {\n    // Automatically determine the correct zoom animation type\n    if (type == MBProgressHUDAnimationZoom) {\n        type = animatingIn ? MBProgressHUDAnimationZoomIn : MBProgressHUDAnimationZoomOut;\n    }\n\n    CGAffineTransform small = CGAffineTransformMakeScale(0.5f, 0.5f);\n    CGAffineTransform large = CGAffineTransformMakeScale(1.5f, 1.5f);\n\n    // Set starting state\n    UIView *bezelView = self.bezelView;\n    if (animatingIn && bezelView.alpha == 0.f && type == MBProgressHUDAnimationZoomIn) {\n        bezelView.transform = small;\n    } else if (animatingIn && bezelView.alpha == 0.f && type == MBProgressHUDAnimationZoomOut) {\n        bezelView.transform = large;\n    }\n\n    // Perform animations\n    dispatch_block_t animations = ^{\n        if (animatingIn) {\n            bezelView.transform = CGAffineTransformIdentity;\n        } else if (!animatingIn && type == MBProgressHUDAnimationZoomIn) {\n            bezelView.transform = large;\n        } else if (!animatingIn && type == MBProgressHUDAnimationZoomOut) {\n            bezelView.transform = small;\n        }\n        CGFloat alpha = animatingIn ? 1.f : 0.f;\n        bezelView.alpha = alpha;\n        self.backgroundView.alpha = alpha;\n    };\n    [UIView animateWithDuration:0.3 delay:0. usingSpringWithDamping:1.f initialSpringVelocity:0.f options:UIViewAnimationOptionBeginFromCurrentState animations:animations completion:completion];\n}\n\n- (void)done {\n    [self setNSProgressDisplayLinkEnabled:NO];\n\n    if (self.hasFinished) {\n        self.alpha = 0.0f;\n        if (self.removeFromSuperViewOnHide) {\n            [self removeFromSuperview];\n        }\n    }\n    MBProgressHUDCompletionBlock completionBlock = self.completionBlock;\n    if (completionBlock) {\n        completionBlock();\n    }\n    id<MBProgressHUDDelegate> delegate = self.delegate;\n    if ([delegate respondsToSelector:@selector(hudWasHidden:)]) {\n        [delegate performSelector:@selector(hudWasHidden:) withObject:self];\n    }\n}\n\n#pragma mark - UI\n\n- (void)setupViews {\n    UIColor *defaultColor = self.contentColor;\n\n    MBBackgroundView *backgroundView = [[MBBackgroundView alloc] initWithFrame:self.bounds];\n    backgroundView.style = MBProgressHUDBackgroundStyleSolidColor;\n    backgroundView.backgroundColor = [UIColor clearColor];\n    backgroundView.autoresizingMask = UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight;\n    backgroundView.alpha = 0.f;\n    [self addSubview:backgroundView];\n    _backgroundView = backgroundView;\n\n    MBBackgroundView *bezelView = [MBBackgroundView new];\n    bezelView.translatesAutoresizingMaskIntoConstraints = NO;\n    bezelView.layer.cornerRadius = 5.f;\n    bezelView.alpha = 0.f;\n    [self addSubview:bezelView];\n    _bezelView = bezelView;\n\n    UILabel *label = [UILabel new];\n    label.adjustsFontSizeToFitWidth = NO;\n    label.textAlignment = NSTextAlignmentCenter;\n    label.textColor = defaultColor;\n    label.font = [UIFont boldSystemFontOfSize:MBDefaultLabelFontSize];\n    label.opaque = NO;\n    label.backgroundColor = [UIColor clearColor];\n    _label = label;\n\n    UILabel *detailsLabel = [UILabel new];\n    detailsLabel.adjustsFontSizeToFitWidth = NO;\n    detailsLabel.textAlignment = NSTextAlignmentCenter;\n    detailsLabel.textColor = defaultColor;\n    detailsLabel.numberOfLines = 0;\n    detailsLabel.font = [UIFont boldSystemFontOfSize:MBDefaultDetailsLabelFontSize];\n    detailsLabel.opaque = NO;\n    detailsLabel.backgroundColor = [UIColor clearColor];\n    _detailsLabel = detailsLabel;\n\n    UIButton *button = [MBProgressHUDRoundedButton buttonWithType:UIButtonTypeCustom];\n    button.titleLabel.textAlignment = NSTextAlignmentCenter;\n    button.titleLabel.font = [UIFont boldSystemFontOfSize:MBDefaultDetailsLabelFontSize];\n    [button setTitleColor:defaultColor forState:UIControlStateNormal];\n    _button = button;\n\n    for (UIView *view in @[label, detailsLabel, button]) {\n        view.translatesAutoresizingMaskIntoConstraints = NO;\n        [view setContentCompressionResistancePriority:998.f forAxis:UILayoutConstraintAxisHorizontal];\n        [view setContentCompressionResistancePriority:998.f forAxis:UILayoutConstraintAxisVertical];\n        [bezelView addSubview:view];\n    }\n\n    UIView *topSpacer = [UIView new];\n    topSpacer.translatesAutoresizingMaskIntoConstraints = NO;\n    topSpacer.hidden = YES;\n    [bezelView addSubview:topSpacer];\n    _topSpacer = topSpacer;\n\n    UIView *bottomSpacer = [UIView new];\n    bottomSpacer.translatesAutoresizingMaskIntoConstraints = NO;\n    bottomSpacer.hidden = YES;\n    [bezelView addSubview:bottomSpacer];\n    _bottomSpacer = bottomSpacer;\n}\n\n- (void)updateIndicators {\n    UIView *indicator = self.indicator;\n    BOOL isActivityIndicator = [indicator isKindOfClass:[UIActivityIndicatorView class]];\n    BOOL isRoundIndicator = [indicator isKindOfClass:[MBRoundProgressView class]];\n\n    MBProgressHUDMode mode = self.mode;\n    if (mode == MBProgressHUDModeIndeterminate) {\n        if (!isActivityIndicator) {\n            // Update to indeterminate indicator\n            UIActivityIndicatorView *activityIndicator;\n            [indicator removeFromSuperview];\n#if !TARGET_OS_MACCATALYST\n            if (@available(iOS 13.0, tvOS 13.0, *)) {\n#endif\n                activityIndicator = [[UIActivityIndicatorView alloc] initWithActivityIndicatorStyle:UIActivityIndicatorViewStyleLarge];\n                activityIndicator.color = [UIColor whiteColor];\n#if !TARGET_OS_MACCATALYST\n            } else {\n               activityIndicator = [[UIActivityIndicatorView alloc] initWithActivityIndicatorStyle:UIActivityIndicatorViewStyleWhiteLarge];\n            }\n#endif\n            [activityIndicator startAnimating];\n            indicator = activityIndicator;\n            [self.bezelView addSubview:indicator];\n        }\n    }\n    else if (mode == MBProgressHUDModeDeterminateHorizontalBar) {\n        // Update to bar determinate indicator\n        [indicator removeFromSuperview];\n        indicator = [[MBBarProgressView alloc] init];\n        [self.bezelView addSubview:indicator];\n    }\n    else if (mode == MBProgressHUDModeDeterminate || mode == MBProgressHUDModeAnnularDeterminate) {\n        if (!isRoundIndicator) {\n            // Update to determinante indicator\n            [indicator removeFromSuperview];\n            indicator = [[MBRoundProgressView alloc] init];\n            [self.bezelView addSubview:indicator];\n        }\n        if (mode == MBProgressHUDModeAnnularDeterminate) {\n            [(MBRoundProgressView *)indicator setAnnular:YES];\n        }\n    }\n    else if (mode == MBProgressHUDModeCustomView && self.customView != indicator) {\n        // Update custom view indicator\n        [indicator removeFromSuperview];\n        indicator = self.customView;\n        [self.bezelView addSubview:indicator];\n    }\n    else if (mode == MBProgressHUDModeText) {\n        [indicator removeFromSuperview];\n        indicator = nil;\n    }\n    indicator.translatesAutoresizingMaskIntoConstraints = NO;\n    self.indicator = indicator;\n\n    if ([indicator respondsToSelector:@selector(setProgress:)]) {\n        [(id)indicator setValue:@(self.progress) forKey:@\"progress\"];\n    }\n\n    [indicator setContentCompressionResistancePriority:998.f forAxis:UILayoutConstraintAxisHorizontal];\n    [indicator setContentCompressionResistancePriority:998.f forAxis:UILayoutConstraintAxisVertical];\n\n    [self updateViewsForColor:self.contentColor];\n    [self setNeedsUpdateConstraints];\n}\n\n- (void)updateViewsForColor:(UIColor *)color {\n    if (!color) return;\n\n    self.label.textColor = color;\n    self.detailsLabel.textColor = color;\n    [self.button setTitleColor:color forState:UIControlStateNormal];\n\n    // UIAppearance settings are prioritized. If they are preset the set color is ignored.\n\n    UIView *indicator = self.indicator;\n    if ([indicator isKindOfClass:[UIActivityIndicatorView class]]) {\n        UIActivityIndicatorView *appearance = nil;\n#if __IPHONE_OS_VERSION_MIN_REQUIRED < 90000\n        appearance = [UIActivityIndicatorView appearanceWhenContainedIn:[MBProgressHUD class], nil];\n#else\n        // For iOS 9+\n        appearance = [UIActivityIndicatorView appearanceWhenContainedInInstancesOfClasses:@[[MBProgressHUD class]]];\n#endif\n\n        if (appearance.color == nil) {\n            ((UIActivityIndicatorView *)indicator).color = color;\n        }\n    } else if ([indicator isKindOfClass:[MBRoundProgressView class]]) {\n        MBRoundProgressView *appearance = nil;\n#if __IPHONE_OS_VERSION_MIN_REQUIRED < 90000\n        appearance = [MBRoundProgressView appearanceWhenContainedIn:[MBProgressHUD class], nil];\n#else\n        appearance = [MBRoundProgressView appearanceWhenContainedInInstancesOfClasses:@[[MBProgressHUD class]]];\n#endif\n        if (appearance.progressTintColor == nil) {\n            ((MBRoundProgressView *)indicator).progressTintColor = color;\n        }\n        if (appearance.backgroundTintColor == nil) {\n            ((MBRoundProgressView *)indicator).backgroundTintColor = [color colorWithAlphaComponent:0.1];\n        }\n    } else if ([indicator isKindOfClass:[MBBarProgressView class]]) {\n        MBBarProgressView *appearance = nil;\n#if __IPHONE_OS_VERSION_MIN_REQUIRED < 90000\n        appearance = [MBBarProgressView appearanceWhenContainedIn:[MBProgressHUD class], nil];\n#else\n        appearance = [MBBarProgressView appearanceWhenContainedInInstancesOfClasses:@[[MBProgressHUD class]]];\n#endif\n        if (appearance.progressColor == nil) {\n            ((MBBarProgressView *)indicator).progressColor = color;\n        }\n        if (appearance.lineColor == nil) {\n            ((MBBarProgressView *)indicator).lineColor = color;\n        }\n    } else {\n        [indicator setTintColor:color];\n    }\n}\n\n- (void)updateBezelMotionEffects {\n    MBBackgroundView *bezelView = self.bezelView;\n    UIMotionEffectGroup *bezelMotionEffects = self.bezelMotionEffects;\n\n    if (self.defaultMotionEffectsEnabled && !bezelMotionEffects) {\n        CGFloat effectOffset = 10.f;\n        UIInterpolatingMotionEffect *effectX = [[UIInterpolatingMotionEffect alloc] initWithKeyPath:@\"center.x\" type:UIInterpolatingMotionEffectTypeTiltAlongHorizontalAxis];\n        effectX.maximumRelativeValue = @(effectOffset);\n        effectX.minimumRelativeValue = @(-effectOffset);\n\n        UIInterpolatingMotionEffect *effectY = [[UIInterpolatingMotionEffect alloc] initWithKeyPath:@\"center.y\" type:UIInterpolatingMotionEffectTypeTiltAlongVerticalAxis];\n        effectY.maximumRelativeValue = @(effectOffset);\n        effectY.minimumRelativeValue = @(-effectOffset);\n\n        UIMotionEffectGroup *group = [[UIMotionEffectGroup alloc] init];\n        group.motionEffects = @[effectX, effectY];\n\n        self.bezelMotionEffects = group;\n        [bezelView addMotionEffect:group];\n    } else if (bezelMotionEffects) {\n        self.bezelMotionEffects = nil;\n        [bezelView removeMotionEffect:bezelMotionEffects];\n    }\n}\n\n#pragma mark - Layout\n\n- (void)updateConstraints {\n    UIView *bezel = self.bezelView;\n    UIView *topSpacer = self.topSpacer;\n    UIView *bottomSpacer = self.bottomSpacer;\n    CGFloat margin = self.margin;\n    NSMutableArray *bezelConstraints = [NSMutableArray array];\n    NSDictionary *metrics = @{@\"margin\": @(margin)};\n\n    NSMutableArray *subviews = [NSMutableArray arrayWithObjects:self.topSpacer, self.label, self.detailsLabel, self.button, self.bottomSpacer, nil];\n    if (self.indicator) [subviews insertObject:self.indicator atIndex:1];\n\n    // Remove existing constraints\n    [self removeConstraints:self.constraints];\n    [topSpacer removeConstraints:topSpacer.constraints];\n    [bottomSpacer removeConstraints:bottomSpacer.constraints];\n    if (self.bezelConstraints) {\n        [bezel removeConstraints:self.bezelConstraints];\n        self.bezelConstraints = nil;\n    }\n\n    // Center bezel in container (self), applying the offset if set\n    CGPoint offset = self.offset;\n    NSMutableArray *centeringConstraints = [NSMutableArray array];\n    [centeringConstraints addObject:[NSLayoutConstraint constraintWithItem:bezel attribute:NSLayoutAttributeCenterX relatedBy:NSLayoutRelationEqual toItem:self attribute:NSLayoutAttributeCenterX multiplier:1.f constant:offset.x]];\n    [centeringConstraints addObject:[NSLayoutConstraint constraintWithItem:bezel attribute:NSLayoutAttributeCenterY relatedBy:NSLayoutRelationEqual toItem:self attribute:NSLayoutAttributeCenterY multiplier:1.f constant:offset.y]];\n    [self applyPriority:998.f toConstraints:centeringConstraints];\n    [self addConstraints:centeringConstraints];\n\n    // Ensure minimum side margin is kept\n    NSMutableArray *sideConstraints = [NSMutableArray array];\n    [sideConstraints addObjectsFromArray:[NSLayoutConstraint constraintsWithVisualFormat:@\"|-(>=margin)-[bezel]-(>=margin)-|\" options:0 metrics:metrics views:NSDictionaryOfVariableBindings(bezel)]];\n    [sideConstraints addObjectsFromArray:[NSLayoutConstraint constraintsWithVisualFormat:@\"V:|-(>=margin)-[bezel]-(>=margin)-|\" options:0 metrics:metrics views:NSDictionaryOfVariableBindings(bezel)]];\n    [self applyPriority:999.f toConstraints:sideConstraints];\n    [self addConstraints:sideConstraints];\n\n    // Minimum bezel size, if set\n    CGSize minimumSize = self.minSize;\n    if (!CGSizeEqualToSize(minimumSize, CGSizeZero)) {\n        NSMutableArray *minSizeConstraints = [NSMutableArray array];\n        [minSizeConstraints addObject:[NSLayoutConstraint constraintWithItem:bezel attribute:NSLayoutAttributeWidth relatedBy:NSLayoutRelationGreaterThanOrEqual toItem:nil attribute:NSLayoutAttributeNotAnAttribute multiplier:1.f constant:minimumSize.width]];\n        [minSizeConstraints addObject:[NSLayoutConstraint constraintWithItem:bezel attribute:NSLayoutAttributeHeight relatedBy:NSLayoutRelationGreaterThanOrEqual toItem:nil attribute:NSLayoutAttributeNotAnAttribute multiplier:1.f constant:minimumSize.height]];\n        [self applyPriority:997.f toConstraints:minSizeConstraints];\n        [bezelConstraints addObjectsFromArray:minSizeConstraints];\n    }\n\n    // Square aspect ratio, if set\n    if (self.square) {\n        NSLayoutConstraint *square = [NSLayoutConstraint constraintWithItem:bezel attribute:NSLayoutAttributeHeight relatedBy:NSLayoutRelationEqual toItem:bezel attribute:NSLayoutAttributeWidth multiplier:1.f constant:0];\n        square.priority = 997.f;\n        [bezelConstraints addObject:square];\n    }\n\n    // Top and bottom spacing\n    [topSpacer addConstraint:[NSLayoutConstraint constraintWithItem:topSpacer attribute:NSLayoutAttributeHeight relatedBy:NSLayoutRelationGreaterThanOrEqual toItem:nil attribute:NSLayoutAttributeNotAnAttribute multiplier:1.f constant:margin]];\n    [bottomSpacer addConstraint:[NSLayoutConstraint constraintWithItem:bottomSpacer attribute:NSLayoutAttributeHeight relatedBy:NSLayoutRelationGreaterThanOrEqual toItem:nil attribute:NSLayoutAttributeNotAnAttribute multiplier:1.f constant:margin]];\n    // Top and bottom spaces should be equal\n    [bezelConstraints addObject:[NSLayoutConstraint constraintWithItem:topSpacer attribute:NSLayoutAttributeHeight relatedBy:NSLayoutRelationEqual toItem:bottomSpacer attribute:NSLayoutAttributeHeight multiplier:1.f constant:0.f]];\n\n    // Layout subviews in bezel\n    NSMutableArray *paddingConstraints = [NSMutableArray new];\n    [subviews enumerateObjectsUsingBlock:^(UIView *view, NSUInteger idx, BOOL *stop) {\n        // Center in bezel\n        [bezelConstraints addObject:[NSLayoutConstraint constraintWithItem:view attribute:NSLayoutAttributeCenterX relatedBy:NSLayoutRelationEqual toItem:bezel attribute:NSLayoutAttributeCenterX multiplier:1.f constant:0.f]];\n        // Ensure the minimum edge margin is kept\n        [bezelConstraints addObjectsFromArray:[NSLayoutConstraint constraintsWithVisualFormat:@\"|-(>=margin)-[view]-(>=margin)-|\" options:0 metrics:metrics views:NSDictionaryOfVariableBindings(view)]];\n        // Element spacing\n        if (idx == 0) {\n            // First, ensure spacing to bezel edge\n            [bezelConstraints addObject:[NSLayoutConstraint constraintWithItem:view attribute:NSLayoutAttributeTop relatedBy:NSLayoutRelationEqual toItem:bezel attribute:NSLayoutAttributeTop multiplier:1.f constant:0.f]];\n        } else if (idx == subviews.count - 1) {\n            // Last, ensure spacing to bezel edge\n            [bezelConstraints addObject:[NSLayoutConstraint constraintWithItem:view attribute:NSLayoutAttributeBottom relatedBy:NSLayoutRelationEqual toItem:bezel attribute:NSLayoutAttributeBottom multiplier:1.f constant:0.f]];\n        }\n        if (idx > 0) {\n            // Has previous\n            NSLayoutConstraint *padding = [NSLayoutConstraint constraintWithItem:view attribute:NSLayoutAttributeTop relatedBy:NSLayoutRelationEqual toItem:subviews[idx - 1] attribute:NSLayoutAttributeBottom multiplier:1.f constant:0.f];\n            [bezelConstraints addObject:padding];\n            [paddingConstraints addObject:padding];\n        }\n    }];\n\n    [bezel addConstraints:bezelConstraints];\n    self.bezelConstraints = bezelConstraints;\n\n    self.paddingConstraints = [paddingConstraints copy];\n    [self updatePaddingConstraints];\n\n    [super updateConstraints];\n}\n\n- (void)layoutSubviews {\n    // There is no need to update constraints if they are going to\n    // be recreated in [super layoutSubviews] due to needsUpdateConstraints being set.\n    // This also avoids an issue on iOS 8, where updatePaddingConstraints\n    // would trigger a zombie object access.\n    if (!self.needsUpdateConstraints) {\n        [self updatePaddingConstraints];\n    }\n    [super layoutSubviews];\n}\n\n- (void)updatePaddingConstraints {\n    // Set padding dynamically, depending on whether the view is visible or not\n    __block BOOL hasVisibleAncestors = NO;\n    [self.paddingConstraints enumerateObjectsUsingBlock:^(NSLayoutConstraint *padding, NSUInteger idx, BOOL *stop) {\n        UIView *firstView = (UIView *)padding.firstItem;\n        UIView *secondView = (UIView *)padding.secondItem;\n        BOOL firstVisible = !firstView.hidden && !CGSizeEqualToSize(firstView.intrinsicContentSize, CGSizeZero);\n        BOOL secondVisible = !secondView.hidden && !CGSizeEqualToSize(secondView.intrinsicContentSize, CGSizeZero);\n        // Set if both views are visible or if there's a visible view on top that doesn't have padding\n        // added relative to the current view yet\n        padding.constant = (firstVisible && (secondVisible || hasVisibleAncestors)) ? MBDefaultPadding : 0.f;\n        hasVisibleAncestors |= secondVisible;\n    }];\n}\n\n- (void)applyPriority:(UILayoutPriority)priority toConstraints:(NSArray *)constraints {\n    for (NSLayoutConstraint *constraint in constraints) {\n        constraint.priority = priority;\n    }\n}\n\n#pragma mark - Properties\n\n- (void)setMode:(MBProgressHUDMode)mode {\n    if (mode != _mode) {\n        _mode = mode;\n        [self updateIndicators];\n    }\n}\n\n- (void)setCustomView:(UIView *)customView {\n    if (customView != _customView) {\n        _customView = customView;\n        if (self.mode == MBProgressHUDModeCustomView) {\n            [self updateIndicators];\n        }\n    }\n}\n\n- (void)setOffset:(CGPoint)offset {\n    if (!CGPointEqualToPoint(offset, _offset)) {\n        _offset = offset;\n        [self setNeedsUpdateConstraints];\n    }\n}\n\n- (void)setMargin:(CGFloat)margin {\n    if (margin != _margin) {\n        _margin = margin;\n        [self setNeedsUpdateConstraints];\n    }\n}\n\n- (void)setMinSize:(CGSize)minSize {\n    if (!CGSizeEqualToSize(minSize, _minSize)) {\n        _minSize = minSize;\n        [self setNeedsUpdateConstraints];\n    }\n}\n\n- (void)setSquare:(BOOL)square {\n    if (square != _square) {\n        _square = square;\n        [self setNeedsUpdateConstraints];\n    }\n}\n\n- (void)setProgressObjectDisplayLink:(CADisplayLink *)progressObjectDisplayLink {\n    if (progressObjectDisplayLink != _progressObjectDisplayLink) {\n        [_progressObjectDisplayLink invalidate];\n\n        _progressObjectDisplayLink = progressObjectDisplayLink;\n\n        [_progressObjectDisplayLink addToRunLoop:[NSRunLoop mainRunLoop] forMode:NSDefaultRunLoopMode];\n    }\n}\n\n- (void)setProgressObject:(NSProgress *)progressObject {\n    if (progressObject != _progressObject) {\n        _progressObject = progressObject;\n        [self setNSProgressDisplayLinkEnabled:YES];\n    }\n}\n\n- (void)setProgress:(float)progress {\n    if (progress != _progress) {\n        _progress = progress;\n        UIView *indicator = self.indicator;\n        if ([indicator respondsToSelector:@selector(setProgress:)]) {\n            [(id)indicator setValue:@(self.progress) forKey:@\"progress\"];\n        }\n    }\n}\n\n- (void)setContentColor:(UIColor *)contentColor {\n    if (contentColor != _contentColor && ![contentColor isEqual:_contentColor]) {\n        _contentColor = contentColor;\n        [self updateViewsForColor:contentColor];\n    }\n}\n\n- (void)setDefaultMotionEffectsEnabled:(BOOL)defaultMotionEffectsEnabled {\n    if (defaultMotionEffectsEnabled != _defaultMotionEffectsEnabled) {\n        _defaultMotionEffectsEnabled = defaultMotionEffectsEnabled;\n        [self updateBezelMotionEffects];\n    }\n}\n\n#pragma mark - NSProgress\n\n- (void)setNSProgressDisplayLinkEnabled:(BOOL)enabled {\n    // We're using CADisplayLink, because NSProgress can change very quickly and observing it may starve the main thread,\n    // so we're refreshing the progress only every frame draw\n    if (enabled && self.progressObject) {\n        // Only create if not already active.\n        if (!self.progressObjectDisplayLink) {\n            self.progressObjectDisplayLink = [CADisplayLink displayLinkWithTarget:self selector:@selector(updateProgressFromProgressObject)];\n        }\n    } else {\n        self.progressObjectDisplayLink = nil;\n    }\n}\n\n- (void)updateProgressFromProgressObject {\n    self.progress = self.progressObject.fractionCompleted;\n}\n\n#pragma mark - Notifications\n\n- (void)registerForNotifications {\n#if !TARGET_OS_TV && !TARGET_OS_MACCATALYST\n    NSNotificationCenter *nc = [NSNotificationCenter defaultCenter];\n\n    [nc addObserver:self selector:@selector(statusBarOrientationDidChange:)\n               name:UIApplicationDidChangeStatusBarOrientationNotification object:nil];\n#endif\n}\n\n- (void)unregisterFromNotifications {\n#if !TARGET_OS_TV && !TARGET_OS_MACCATALYST\n    NSNotificationCenter *nc = [NSNotificationCenter defaultCenter];\n    [nc removeObserver:self name:UIApplicationDidChangeStatusBarOrientationNotification object:nil];\n#endif\n}\n\n#if !TARGET_OS_TV && !TARGET_OS_MACCATALYST\n- (void)statusBarOrientationDidChange:(NSNotification *)notification {\n    UIView *superview = self.superview;\n    if (!superview) {\n        return;\n    } else {\n        [self updateForCurrentOrientationAnimated:YES];\n    }\n}\n#endif\n\n- (void)updateForCurrentOrientationAnimated:(BOOL)animated {\n    // Stay in sync with the superview in any case\n    if (self.superview) {\n        self.frame = self.superview.bounds;\n    }\n\n    // Not needed on iOS 8+, compile out when the deployment target allows,\n    // to avoid sharedApplication problems on extension targets\n#if __IPHONE_OS_VERSION_MIN_REQUIRED < 80000\n    // Only needed pre iOS 8 when added to a window\n    BOOL iOS8OrLater = kCFCoreFoundationVersionNumber >= kCFCoreFoundationVersionNumber_iOS_8_0;\n    if (iOS8OrLater || ![self.superview isKindOfClass:[UIWindow class]]) return;\n\n    // Make extension friendly. Will not get called on extensions (iOS 8+) due to the above check.\n    // This just ensures we don't get a warning about extension-unsafe API.\n    Class UIApplicationClass = NSClassFromString(@\"UIApplication\");\n    if (!UIApplicationClass || ![UIApplicationClass respondsToSelector:@selector(sharedApplication)]) return;\n\n    UIApplication *application = [UIApplication performSelector:@selector(sharedApplication)];\n    UIInterfaceOrientation orientation = application.statusBarOrientation;\n    CGFloat radians = 0;\n\n    if (UIInterfaceOrientationIsLandscape(orientation)) {\n        radians = orientation == UIInterfaceOrientationLandscapeLeft ? -(CGFloat)M_PI_2 : (CGFloat)M_PI_2;\n        // Window coordinates differ!\n        self.bounds = CGRectMake(0, 0, self.bounds.size.height, self.bounds.size.width);\n    } else {\n        radians = orientation == UIInterfaceOrientationPortraitUpsideDown ? (CGFloat)M_PI : 0.f;\n    }\n\n    if (animated) {\n        [UIView animateWithDuration:0.3 animations:^{\n            self.transform = CGAffineTransformMakeRotation(radians);\n        }];\n    } else {\n        self.transform = CGAffineTransformMakeRotation(radians);\n    }\n#endif\n}\n\n@end\n\n\n@implementation MBRoundProgressView\n\n#pragma mark - Lifecycle\n\n- (id)init {\n    return [self initWithFrame:CGRectMake(0.f, 0.f, 37.f, 37.f)];\n}\n\n- (id)initWithFrame:(CGRect)frame {\n    self = [super initWithFrame:frame];\n    if (self) {\n        self.backgroundColor = [UIColor clearColor];\n        self.opaque = NO;\n        _progress = 0.f;\n        _annular = NO;\n        _progressTintColor = [[UIColor alloc] initWithWhite:1.f alpha:1.f];\n        _backgroundTintColor = [[UIColor alloc] initWithWhite:1.f alpha:.1f];\n    }\n    return self;\n}\n\n#pragma mark - Layout\n\n- (CGSize)intrinsicContentSize {\n    return CGSizeMake(37.f, 37.f);\n}\n\n#pragma mark - Properties\n\n- (void)setProgress:(float)progress {\n    if (progress != _progress) {\n        _progress = progress;\n        [self setNeedsDisplay];\n    }\n}\n\n- (void)setProgressTintColor:(UIColor *)progressTintColor {\n    NSAssert(progressTintColor, @\"The color should not be nil.\");\n    if (progressTintColor != _progressTintColor && ![progressTintColor isEqual:_progressTintColor]) {\n        _progressTintColor = progressTintColor;\n        [self setNeedsDisplay];\n    }\n}\n\n- (void)setBackgroundTintColor:(UIColor *)backgroundTintColor {\n    NSAssert(backgroundTintColor, @\"The color should not be nil.\");\n    if (backgroundTintColor != _backgroundTintColor && ![backgroundTintColor isEqual:_backgroundTintColor]) {\n        _backgroundTintColor = backgroundTintColor;\n        [self setNeedsDisplay];\n    }\n}\n\n#pragma mark - Drawing\n\n- (void)drawRect:(CGRect)rect {\n    CGContextRef context = UIGraphicsGetCurrentContext();\n\n    if (_annular) {\n        // Draw background\n        CGFloat lineWidth = 2.f;\n        UIBezierPath *processBackgroundPath = [UIBezierPath bezierPath];\n        processBackgroundPath.lineWidth = lineWidth;\n        processBackgroundPath.lineCapStyle = kCGLineCapButt;\n        CGPoint center = CGPointMake(CGRectGetMidX(self.bounds), CGRectGetMidY(self.bounds));\n        CGFloat radius = (self.bounds.size.width - lineWidth)/2;\n        CGFloat startAngle = - ((float)M_PI / 2); // 90 degrees\n        CGFloat endAngle = (2 * (float)M_PI) + startAngle;\n        [processBackgroundPath addArcWithCenter:center radius:radius startAngle:startAngle endAngle:endAngle clockwise:YES];\n        [_backgroundTintColor set];\n        [processBackgroundPath stroke];\n        // Draw progress\n        UIBezierPath *processPath = [UIBezierPath bezierPath];\n        processPath.lineCapStyle = kCGLineCapSquare;\n        processPath.lineWidth = lineWidth;\n        endAngle = (self.progress * 2 * (float)M_PI) + startAngle;\n        [processPath addArcWithCenter:center radius:radius startAngle:startAngle endAngle:endAngle clockwise:YES];\n        [_progressTintColor set];\n        [processPath stroke];\n    } else {\n        // Draw background\n        CGFloat lineWidth = 2.f;\n        CGRect allRect = self.bounds;\n        CGRect circleRect = CGRectInset(allRect, lineWidth/2.f, lineWidth/2.f);\n        CGPoint center = CGPointMake(CGRectGetMidX(self.bounds), CGRectGetMidY(self.bounds));\n        [_progressTintColor setStroke];\n        [_backgroundTintColor setFill];\n        CGContextSetLineWidth(context, lineWidth);\n        CGContextStrokeEllipseInRect(context, circleRect);\n        // 90 degrees\n        CGFloat startAngle = - ((float)M_PI / 2.f);\n        // Draw progress\n        UIBezierPath *processPath = [UIBezierPath bezierPath];\n        processPath.lineCapStyle = kCGLineCapButt;\n        processPath.lineWidth = lineWidth * 2.f;\n        CGFloat radius = (CGRectGetWidth(self.bounds) / 2.f) - (processPath.lineWidth / 2.f);\n        CGFloat endAngle = (self.progress * 2.f * (float)M_PI) + startAngle;\n        [processPath addArcWithCenter:center radius:radius startAngle:startAngle endAngle:endAngle clockwise:YES];\n        // Ensure that we don't get color overlapping when _progressTintColor alpha < 1.f.\n        CGContextSetBlendMode(context, kCGBlendModeCopy);\n        [_progressTintColor set];\n        [processPath stroke];\n    }\n}\n\n@end\n\n\n@implementation MBBarProgressView\n\n#pragma mark - Lifecycle\n\n- (id)init {\n    return [self initWithFrame:CGRectMake(.0f, .0f, 120.0f, 20.0f)];\n}\n\n- (id)initWithFrame:(CGRect)frame {\n    self = [super initWithFrame:frame];\n    if (self) {\n        _progress = 0.f;\n        _lineColor = [UIColor whiteColor];\n        _progressColor = [UIColor whiteColor];\n        _progressRemainingColor = [UIColor clearColor];\n        self.backgroundColor = [UIColor clearColor];\n        self.opaque = NO;\n    }\n    return self;\n}\n\n#pragma mark - Layout\n\n- (CGSize)intrinsicContentSize {\n    return CGSizeMake(120.f, 10.f);\n}\n\n#pragma mark - Properties\n\n- (void)setProgress:(float)progress {\n    if (progress != _progress) {\n        _progress = progress;\n        [self setNeedsDisplay];\n    }\n}\n\n- (void)setProgressColor:(UIColor *)progressColor {\n    NSAssert(progressColor, @\"The color should not be nil.\");\n    if (progressColor != _progressColor && ![progressColor isEqual:_progressColor]) {\n        _progressColor = progressColor;\n        [self setNeedsDisplay];\n    }\n}\n\n- (void)setProgressRemainingColor:(UIColor *)progressRemainingColor {\n    NSAssert(progressRemainingColor, @\"The color should not be nil.\");\n    if (progressRemainingColor != _progressRemainingColor && ![progressRemainingColor isEqual:_progressRemainingColor]) {\n        _progressRemainingColor = progressRemainingColor;\n        [self setNeedsDisplay];\n    }\n}\n\n#pragma mark - Drawing\n\n- (void)drawRect:(CGRect)rect {\n    CGContextRef context = UIGraphicsGetCurrentContext();\n\n    CGContextSetLineWidth(context, 2);\n    CGContextSetStrokeColorWithColor(context,[_lineColor CGColor]);\n    CGContextSetFillColorWithColor(context, [_progressRemainingColor CGColor]);\n\n    // Draw background and Border\n    CGFloat radius = (rect.size.height / 2) - 2;\n    CGContextMoveToPoint(context, 2, rect.size.height/2);\n    CGContextAddArcToPoint(context, 2, 2, radius + 2, 2, radius);\n    CGContextAddArcToPoint(context, rect.size.width - 2, 2, rect.size.width - 2, rect.size.height / 2, radius);\n    CGContextAddArcToPoint(context, rect.size.width - 2, rect.size.height - 2, rect.size.width - radius - 2, rect.size.height - 2, radius);\n    CGContextAddArcToPoint(context, 2, rect.size.height - 2, 2, rect.size.height/2, radius);\n    CGContextDrawPath(context, kCGPathFillStroke);\n\n    CGContextSetFillColorWithColor(context, [_progressColor CGColor]);\n    radius = radius - 2;\n    CGFloat amount = self.progress * rect.size.width;\n\n    // Progress in the middle area\n    if (amount >= radius + 4 && amount <= (rect.size.width - radius - 4)) {\n        CGContextMoveToPoint(context, 4, rect.size.height/2);\n        CGContextAddArcToPoint(context, 4, 4, radius + 4, 4, radius);\n        CGContextAddLineToPoint(context, amount, 4);\n        CGContextAddLineToPoint(context, amount, radius + 4);\n\n        CGContextMoveToPoint(context, 4, rect.size.height/2);\n        CGContextAddArcToPoint(context, 4, rect.size.height - 4, radius + 4, rect.size.height - 4, radius);\n        CGContextAddLineToPoint(context, amount, rect.size.height - 4);\n        CGContextAddLineToPoint(context, amount, radius + 4);\n\n        CGContextFillPath(context);\n    }\n\n    // Progress in the right arc\n    else if (amount > radius + 4) {\n        CGFloat x = amount - (rect.size.width - radius - 4);\n\n        CGContextMoveToPoint(context, 4, rect.size.height/2);\n        CGContextAddArcToPoint(context, 4, 4, radius + 4, 4, radius);\n        CGContextAddLineToPoint(context, rect.size.width - radius - 4, 4);\n        CGFloat angle = -acos(x/radius);\n        if (isnan(angle)) angle = 0;\n        CGContextAddArc(context, rect.size.width - radius - 4, rect.size.height/2, radius, M_PI, angle, 0);\n        CGContextAddLineToPoint(context, amount, rect.size.height/2);\n\n        CGContextMoveToPoint(context, 4, rect.size.height/2);\n        CGContextAddArcToPoint(context, 4, rect.size.height - 4, radius + 4, rect.size.height - 4, radius);\n        CGContextAddLineToPoint(context, rect.size.width - radius - 4, rect.size.height - 4);\n        angle = acos(x/radius);\n        if (isnan(angle)) angle = 0;\n        CGContextAddArc(context, rect.size.width - radius - 4, rect.size.height/2, radius, -M_PI, angle, 1);\n        CGContextAddLineToPoint(context, amount, rect.size.height/2);\n\n        CGContextFillPath(context);\n    }\n\n    // Progress is in the left arc\n    else if (amount < radius + 4 && amount > 0) {\n        CGContextMoveToPoint(context, 4, rect.size.height/2);\n        CGContextAddArcToPoint(context, 4, 4, radius + 4, 4, radius);\n        CGContextAddLineToPoint(context, radius + 4, rect.size.height/2);\n\n        CGContextMoveToPoint(context, 4, rect.size.height/2);\n        CGContextAddArcToPoint(context, 4, rect.size.height - 4, radius + 4, rect.size.height - 4, radius);\n        CGContextAddLineToPoint(context, radius + 4, rect.size.height/2);\n\n        CGContextFillPath(context);\n    }\n}\n\n@end\n\n\n@interface MBBackgroundView ()\n\n@property UIVisualEffectView *effectView;\n\n@end\n\n\n@implementation MBBackgroundView\n\n#pragma mark - Lifecycle\n\n- (instancetype)initWithFrame:(CGRect)frame {\n    if ((self = [super initWithFrame:frame])) {\n        _style = MBProgressHUDBackgroundStyleBlur;\n        if (@available(iOS 13.0, *)) {\n            #if TARGET_OS_TV\n            _blurEffectStyle = UIBlurEffectStyleRegular;\n            #else\n            _blurEffectStyle = UIBlurEffectStyleSystemThickMaterial;\n            #endif\n            // Leaving the color unassigned yields best results.\n        } else {\n            _blurEffectStyle = UIBlurEffectStyleLight;\n            _color = [UIColor colorWithWhite:0.8f alpha:0.6f];\n        }\n\n        self.clipsToBounds = YES;\n\n        [self updateForBackgroundStyle];\n    }\n    return self;\n}\n\n#pragma mark - Layout\n\n- (CGSize)intrinsicContentSize {\n    // Smallest size possible. Content pushes against this.\n    return CGSizeZero;\n}\n\n#pragma mark - Appearance\n\n- (void)setStyle:(MBProgressHUDBackgroundStyle)style {\n    if (_style != style) {\n        _style = style;\n        [self updateForBackgroundStyle];\n    }\n}\n\n- (void)setColor:(UIColor *)color {\n    NSAssert(color, @\"The color should not be nil.\");\n    if (color != _color && ![color isEqual:_color]) {\n        _color = color;\n        [self updateViewsForColor:color];\n    }\n}\n\n- (void)setBlurEffectStyle:(UIBlurEffectStyle)blurEffectStyle {\n    if (_blurEffectStyle == blurEffectStyle) {\n        return;\n    }\n\n    _blurEffectStyle = blurEffectStyle;\n\n    [self updateForBackgroundStyle];\n}\n\n///////////////////////////////////////////////////////////////////////////////////////////\n#pragma mark - Views\n\n- (void)updateForBackgroundStyle {\n    [self.effectView removeFromSuperview];\n    self.effectView = nil;\n\n    MBProgressHUDBackgroundStyle style = self.style;\n    if (style == MBProgressHUDBackgroundStyleBlur) {\n        UIBlurEffect *effect =  [UIBlurEffect effectWithStyle:self.blurEffectStyle];\n        UIVisualEffectView *effectView = [[UIVisualEffectView alloc] initWithEffect:effect];\n        [self insertSubview:effectView atIndex:0];\n        effectView.frame = self.bounds;\n        effectView.autoresizingMask = UIViewAutoresizingFlexibleHeight | UIViewAutoresizingFlexibleWidth;\n        self.backgroundColor = self.color;\n        self.layer.allowsGroupOpacity = NO;\n        self.effectView = effectView;\n    } else {\n        self.backgroundColor = self.color;\n    }\n}\n\n- (void)updateViewsForColor:(UIColor *)color {\n    if (self.style == MBProgressHUDBackgroundStyleBlur) {\n        self.backgroundColor = self.color;\n    } else {\n        self.backgroundColor = self.color;\n    }\n}\n\n@end\n\n\n@implementation MBProgressHUDRoundedButton\n\n#pragma mark - Lifecycle\n\n- (instancetype)initWithFrame:(CGRect)frame {\n    self = [super initWithFrame:frame];\n    if (self) {\n        CALayer *layer = self.layer;\n        layer.borderWidth = 1.f;\n    }\n    return self;\n}\n\n#pragma mark - Layout\n\n- (void)layoutSubviews {\n    [super layoutSubviews];\n    // Fully rounded corners\n    CGFloat height = CGRectGetHeight(self.bounds);\n    self.layer.cornerRadius = ceil(height / 2.f);\n}\n\n- (CGSize)intrinsicContentSize {\n    // Only show if we have associated control events and a title\n    if ((self.allControlEvents == 0) || ([self titleForState:UIControlStateNormal].length == 0))\n\t\treturn CGSizeZero;\n    CGSize size = [super intrinsicContentSize];\n    // Add some side padding\n    size.width += 20.f;\n    return size;\n}\n\n#pragma mark - Color\n\n- (void)setTitleColor:(UIColor *)color forState:(UIControlState)state {\n    [super setTitleColor:color forState:state];\n    // Update related colors\n    [self setHighlighted:self.highlighted];\n    self.layer.borderColor = color.CGColor;\n}\n\n- (void)setHighlighted:(BOOL)highlighted {\n    [super setHighlighted:highlighted];\n    UIColor *baseColor = [self titleColorForState:UIControlStateSelected];\n    self.backgroundColor = highlighted ? [baseColor colorWithAlphaComponent:0.1f] : [UIColor clearColor];\n}\n\n@end\n"
  },
  {
    "path": "MBProgressHUD.podspec",
    "content": "Pod::Spec.new do |s|\n  s.name         = \"MBProgressHUD\"\n  s.version      = \"1.2.0\"\n  s.summary      = \"An iOS activity indicator view.\"\n  s.description  = <<-DESC\n                    MBProgressHUD is an iOS drop-in class that displays a translucent HUD\n                    with an indicator and/or labels while work is being done in a background thread.\n                    The HUD is meant as a replacement for the undocumented, private UIKit UIProgressHUD\n                    with some additional features.\n                   DESC\n  s.homepage     = \"http://www.bukovinski.com\"\n  s.license      = { :type => 'MIT', :file => 'LICENSE' }\n  s.author       = { 'Matej Bukovinski' => 'matej@bukovinski.com' }\n  s.source       = { :git => \"https://github.com/matej/MBProgressHUD.git\", :tag => s.version.to_s }\n  s.ios.deployment_target = '9.0'\n  s.tvos.deployment_target = '9.0'\n  s.source_files = '*.{h,m}'\n  s.resource_bundles = {'MBProgressHUD' => ['PrivacyInfo.xcprivacy']}\n  s.frameworks   = \"CoreGraphics\", \"QuartzCore\"\n  s.requires_arc = true\nend\n"
  },
  {
    "path": "MBProgressHUD.xcodeproj/project.pbxproj",
    "content": "// !$*UTF8*$!\n{\n\tarchiveVersion = 1;\n\tclasses = {\n\t};\n\tobjectVersion = 46;\n\tobjects = {\n\n/* Begin PBXBuildFile section */\n\t\t1315DD7617804CBC0032507D /* MBProgressHUD.h in CopyFiles */ = {isa = PBXBuildFile; fileRef = D286A7511518C70F00E13FB8 /* MBProgressHUD.h */; };\n\t\t1777D3E71D757B690037C7F1 /* MBProgressHUD.h in Headers */ = {isa = PBXBuildFile; fileRef = D286A7511518C70F00E13FB8 /* MBProgressHUD.h */; settings = {ATTRIBUTES = (Public, ); }; };\n\t\t1777D3E81D757B6E0037C7F1 /* MBProgressHUD.m in Sources */ = {isa = PBXBuildFile; fileRef = D286A7521518C70F00E13FB8 /* MBProgressHUD.m */; };\n\t\t1D104D931ACA371400973364 /* MBProgressHUD.m in Sources */ = {isa = PBXBuildFile; fileRef = D286A7521518C70F00E13FB8 /* MBProgressHUD.m */; };\n\t\t1D104D941ACA373100973364 /* MBProgressHUD.h in Headers */ = {isa = PBXBuildFile; fileRef = D286A7511518C70F00E13FB8 /* MBProgressHUD.h */; settings = {ATTRIBUTES = (Public, ); }; };\n\t\tAAD69D522B51630200BE0369 /* PrivacyInfo.xcprivacy in Resources */ = {isa = PBXBuildFile; fileRef = AAD69D512B5162AE00BE0369 /* PrivacyInfo.xcprivacy */; };\n\t\tAAD69D532B51630200BE0369 /* PrivacyInfo.xcprivacy in Resources */ = {isa = PBXBuildFile; fileRef = AAD69D512B5162AE00BE0369 /* PrivacyInfo.xcprivacy */; };\n\t\tD286A74D1518C70F00E13FB8 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D286A74C1518C70F00E13FB8 /* Foundation.framework */; };\n\t\tD286A7531518C70F00E13FB8 /* MBProgressHUD.m in Sources */ = {isa = PBXBuildFile; fileRef = D286A7521518C70F00E13FB8 /* MBProgressHUD.m */; };\n\t\tD286A75E1518C89600E13FB8 /* UIKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D286A75D1518C89600E13FB8 /* UIKit.framework */; };\n\t\tD286A76F1518CAAD00E13FB8 /* CoreGraphics.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D286A76E1518CAAD00E13FB8 /* CoreGraphics.framework */; };\n/* End PBXBuildFile section */\n\n/* Begin PBXCopyFilesBuildPhase section */\n\t\t1315DD7517804C970032507D /* CopyFiles */ = {\n\t\t\tisa = PBXCopyFilesBuildPhase;\n\t\t\tbuildActionMask = 2147483647;\n\t\t\tdstPath = \"include/${PRODUCT_NAME}\";\n\t\t\tdstSubfolderSpec = 16;\n\t\t\tfiles = (\n\t\t\t\t1315DD7617804CBC0032507D /* MBProgressHUD.h in CopyFiles */,\n\t\t\t);\n\t\t\trunOnlyForDeploymentPostprocessing = 0;\n\t\t};\n/* End PBXCopyFilesBuildPhase section */\n\n/* Begin PBXFileReference section */\n\t\t1315DD73178045000032507D /* MBProgressHUD-Prefix.pch */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = \"MBProgressHUD-Prefix.pch\"; sourceTree = SOURCE_ROOT; };\n\t\t1777D3DF1D757AF50037C7F1 /* MBProgressHUD.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = MBProgressHUD.framework; sourceTree = BUILT_PRODUCTS_DIR; };\n\t\t1777D3E21D757AF50037C7F1 /* Framework-tvOS-Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = \"Framework-tvOS-Info.plist\"; sourceTree = SOURCE_ROOT; };\n\t\t1D104D7A1ACA36CC00973364 /* MBProgressHUD.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = MBProgressHUD.framework; sourceTree = BUILT_PRODUCTS_DIR; };\n\t\t1D104D951ACA376200973364 /* Framework-Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = \"Framework-Info.plist\"; sourceTree = SOURCE_ROOT; };\n\t\tAAD69D512B5162AE00BE0369 /* PrivacyInfo.xcprivacy */ = {isa = PBXFileReference; lastKnownFileType = text.xml; path = PrivacyInfo.xcprivacy; sourceTree = \"<group>\"; };\n\t\tD286A7491518C70F00E13FB8 /* libMBProgressHUD.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = libMBProgressHUD.a; sourceTree = BUILT_PRODUCTS_DIR; };\n\t\tD286A74C1518C70F00E13FB8 /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = System/Library/Frameworks/Foundation.framework; sourceTree = SDKROOT; };\n\t\tD286A7511518C70F00E13FB8 /* MBProgressHUD.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = MBProgressHUD.h; sourceTree = SOURCE_ROOT; };\n\t\tD286A7521518C70F00E13FB8 /* MBProgressHUD.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = MBProgressHUD.m; sourceTree = SOURCE_ROOT; };\n\t\tD286A75D1518C89600E13FB8 /* UIKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = UIKit.framework; path = System/Library/Frameworks/UIKit.framework; sourceTree = SDKROOT; };\n\t\tD286A76E1518CAAD00E13FB8 /* CoreGraphics.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreGraphics.framework; path = System/Library/Frameworks/CoreGraphics.framework; sourceTree = SDKROOT; };\n/* End PBXFileReference section */\n\n/* Begin PBXFrameworksBuildPhase section */\n\t\t1777D3DB1D757AF50037C7F1 /* Frameworks */ = {\n\t\t\tisa = PBXFrameworksBuildPhase;\n\t\t\tbuildActionMask = 2147483647;\n\t\t\tfiles = (\n\t\t\t);\n\t\t\trunOnlyForDeploymentPostprocessing = 0;\n\t\t};\n\t\t1D104D761ACA36CC00973364 /* Frameworks */ = {\n\t\t\tisa = PBXFrameworksBuildPhase;\n\t\t\tbuildActionMask = 2147483647;\n\t\t\tfiles = (\n\t\t\t);\n\t\t\trunOnlyForDeploymentPostprocessing = 0;\n\t\t};\n\t\tD286A7461518C70F00E13FB8 /* Frameworks */ = {\n\t\t\tisa = PBXFrameworksBuildPhase;\n\t\t\tbuildActionMask = 2147483647;\n\t\t\tfiles = (\n\t\t\t\tD286A75E1518C89600E13FB8 /* UIKit.framework in Frameworks */,\n\t\t\t\tD286A74D1518C70F00E13FB8 /* Foundation.framework in Frameworks */,\n\t\t\t\tD286A76F1518CAAD00E13FB8 /* CoreGraphics.framework in Frameworks */,\n\t\t\t);\n\t\t\trunOnlyForDeploymentPostprocessing = 0;\n\t\t};\n/* End PBXFrameworksBuildPhase section */\n\n/* Begin PBXGroup section */\n\t\t1315DD72178044770032507D /* Supporting Files */ = {\n\t\t\tisa = PBXGroup;\n\t\t\tchildren = (\n\t\t\t\t1D104D951ACA376200973364 /* Framework-Info.plist */,\n\t\t\t\t1777D3E21D757AF50037C7F1 /* Framework-tvOS-Info.plist */,\n\t\t\t\t1315DD73178045000032507D /* MBProgressHUD-Prefix.pch */,\n\t\t\t);\n\t\t\tname = \"Supporting Files\";\n\t\t\tsourceTree = \"<group>\";\n\t\t};\n\t\tD286A73E1518C70E00E13FB8 = {\n\t\t\tisa = PBXGroup;\n\t\t\tchildren = (\n\t\t\t\tD286A74E1518C70F00E13FB8 /* MBProgressHUD */,\n\t\t\t\tD286A74B1518C70F00E13FB8 /* Frameworks */,\n\t\t\t\tD286A74A1518C70F00E13FB8 /* Products */,\n\t\t\t);\n\t\t\tsourceTree = \"<group>\";\n\t\t};\n\t\tD286A74A1518C70F00E13FB8 /* Products */ = {\n\t\t\tisa = PBXGroup;\n\t\t\tchildren = (\n\t\t\t\tD286A7491518C70F00E13FB8 /* libMBProgressHUD.a */,\n\t\t\t\t1D104D7A1ACA36CC00973364 /* MBProgressHUD.framework */,\n\t\t\t\t1777D3DF1D757AF50037C7F1 /* MBProgressHUD.framework */,\n\t\t\t);\n\t\t\tname = Products;\n\t\t\tsourceTree = \"<group>\";\n\t\t};\n\t\tD286A74B1518C70F00E13FB8 /* Frameworks */ = {\n\t\t\tisa = PBXGroup;\n\t\t\tchildren = (\n\t\t\t\tD286A75D1518C89600E13FB8 /* UIKit.framework */,\n\t\t\t\tD286A74C1518C70F00E13FB8 /* Foundation.framework */,\n\t\t\t\tD286A76E1518CAAD00E13FB8 /* CoreGraphics.framework */,\n\t\t\t);\n\t\t\tname = Frameworks;\n\t\t\tsourceTree = \"<group>\";\n\t\t};\n\t\tD286A74E1518C70F00E13FB8 /* MBProgressHUD */ = {\n\t\t\tisa = PBXGroup;\n\t\t\tchildren = (\n\t\t\t\tD286A7511518C70F00E13FB8 /* MBProgressHUD.h */,\n\t\t\t\tD286A7521518C70F00E13FB8 /* MBProgressHUD.m */,\n\t\t\t\tAAD69D512B5162AE00BE0369 /* PrivacyInfo.xcprivacy */,\n\t\t\t\t1315DD72178044770032507D /* Supporting Files */,\n\t\t\t);\n\t\t\tname = MBProgressHUD;\n\t\t\tsourceTree = \"<group>\";\n\t\t};\n/* End PBXGroup section */\n\n/* Begin PBXHeadersBuildPhase section */\n\t\t1777D3DC1D757AF50037C7F1 /* Headers */ = {\n\t\t\tisa = PBXHeadersBuildPhase;\n\t\t\tbuildActionMask = 2147483647;\n\t\t\tfiles = (\n\t\t\t\t1777D3E71D757B690037C7F1 /* MBProgressHUD.h in Headers */,\n\t\t\t);\n\t\t\trunOnlyForDeploymentPostprocessing = 0;\n\t\t};\n\t\t1D104D771ACA36CC00973364 /* Headers */ = {\n\t\t\tisa = PBXHeadersBuildPhase;\n\t\t\tbuildActionMask = 2147483647;\n\t\t\tfiles = (\n\t\t\t\t1D104D941ACA373100973364 /* MBProgressHUD.h in Headers */,\n\t\t\t);\n\t\t\trunOnlyForDeploymentPostprocessing = 0;\n\t\t};\n/* End PBXHeadersBuildPhase section */\n\n/* Begin PBXNativeTarget section */\n\t\t1777D3DE1D757AF50037C7F1 /* MBProgressHUD Framework tvOS */ = {\n\t\t\tisa = PBXNativeTarget;\n\t\t\tbuildConfigurationList = 1777D3E61D757AF50037C7F1 /* Build configuration list for PBXNativeTarget \"MBProgressHUD Framework tvOS\" */;\n\t\t\tbuildPhases = (\n\t\t\t\t1777D3DA1D757AF50037C7F1 /* Sources */,\n\t\t\t\t1777D3DB1D757AF50037C7F1 /* Frameworks */,\n\t\t\t\t1777D3DC1D757AF50037C7F1 /* Headers */,\n\t\t\t\t1777D3DD1D757AF50037C7F1 /* Resources */,\n\t\t\t);\n\t\t\tbuildRules = (\n\t\t\t);\n\t\t\tdependencies = (\n\t\t\t);\n\t\t\tname = \"MBProgressHUD Framework tvOS\";\n\t\t\tproductName = \"MBProgressHUD Framework tvOS\";\n\t\t\tproductReference = 1777D3DF1D757AF50037C7F1 /* MBProgressHUD.framework */;\n\t\t\tproductType = \"com.apple.product-type.framework\";\n\t\t};\n\t\t1D104D791ACA36CC00973364 /* MBProgressHUD Framework */ = {\n\t\t\tisa = PBXNativeTarget;\n\t\t\tbuildConfigurationList = 1D104D8D1ACA36CC00973364 /* Build configuration list for PBXNativeTarget \"MBProgressHUD Framework\" */;\n\t\t\tbuildPhases = (\n\t\t\t\t1D104D751ACA36CC00973364 /* Sources */,\n\t\t\t\t1D104D761ACA36CC00973364 /* Frameworks */,\n\t\t\t\t1D104D771ACA36CC00973364 /* Headers */,\n\t\t\t\t1D104D781ACA36CC00973364 /* Resources */,\n\t\t\t);\n\t\t\tbuildRules = (\n\t\t\t);\n\t\t\tdependencies = (\n\t\t\t);\n\t\t\tname = \"MBProgressHUD Framework\";\n\t\t\tproductName = \"MBProgressHUD Framework\";\n\t\t\tproductReference = 1D104D7A1ACA36CC00973364 /* MBProgressHUD.framework */;\n\t\t\tproductType = \"com.apple.product-type.framework\";\n\t\t};\n\t\tD286A7481518C70F00E13FB8 /* MBProgressHUD Static Library */ = {\n\t\t\tisa = PBXNativeTarget;\n\t\t\tbuildConfigurationList = D286A7561518C70F00E13FB8 /* Build configuration list for PBXNativeTarget \"MBProgressHUD Static Library\" */;\n\t\t\tbuildPhases = (\n\t\t\t\tD286A7451518C70F00E13FB8 /* Sources */,\n\t\t\t\tD286A7461518C70F00E13FB8 /* Frameworks */,\n\t\t\t\t1315DD7517804C970032507D /* CopyFiles */,\n\t\t\t);\n\t\t\tbuildRules = (\n\t\t\t);\n\t\t\tdependencies = (\n\t\t\t);\n\t\t\tname = \"MBProgressHUD Static Library\";\n\t\t\tproductName = MBProgressHUD;\n\t\t\tproductReference = D286A7491518C70F00E13FB8 /* libMBProgressHUD.a */;\n\t\t\tproductType = \"com.apple.product-type.library.static\";\n\t\t};\n/* End PBXNativeTarget section */\n\n/* Begin PBXProject section */\n\t\tD286A7401518C70E00E13FB8 /* Project object */ = {\n\t\t\tisa = PBXProject;\n\t\t\tattributes = {\n\t\t\t\tCLASSPREFIX = MB;\n\t\t\t\tLastUpgradeCheck = 1120;\n\t\t\t\tORGANIZATIONNAME = \"Matej Bukovinski\";\n\t\t\t\tTargetAttributes = {\n\t\t\t\t\t1777D3DE1D757AF50037C7F1 = {\n\t\t\t\t\t\tCreatedOnToolsVersion = 8.0;\n\t\t\t\t\t\tProvisioningStyle = Automatic;\n\t\t\t\t\t};\n\t\t\t\t\t1D104D791ACA36CC00973364 = {\n\t\t\t\t\t\tCreatedOnToolsVersion = 6.2;\n\t\t\t\t\t};\n\t\t\t\t};\n\t\t\t};\n\t\t\tbuildConfigurationList = D286A7431518C70E00E13FB8 /* Build configuration list for PBXProject \"MBProgressHUD\" */;\n\t\t\tcompatibilityVersion = \"Xcode 3.2\";\n\t\t\tdevelopmentRegion = en;\n\t\t\thasScannedForEncodings = 0;\n\t\t\tknownRegions = (\n\t\t\t\ten,\n\t\t\t\tBase,\n\t\t\t);\n\t\t\tmainGroup = D286A73E1518C70E00E13FB8;\n\t\t\tproductRefGroup = D286A74A1518C70F00E13FB8 /* Products */;\n\t\t\tprojectDirPath = \"\";\n\t\t\tprojectRoot = \"\";\n\t\t\ttargets = (\n\t\t\t\tD286A7481518C70F00E13FB8 /* MBProgressHUD Static Library */,\n\t\t\t\t1D104D791ACA36CC00973364 /* MBProgressHUD Framework */,\n\t\t\t\t1777D3DE1D757AF50037C7F1 /* MBProgressHUD Framework tvOS */,\n\t\t\t);\n\t\t};\n/* End PBXProject section */\n\n/* Begin PBXResourcesBuildPhase section */\n\t\t1777D3DD1D757AF50037C7F1 /* Resources */ = {\n\t\t\tisa = PBXResourcesBuildPhase;\n\t\t\tbuildActionMask = 2147483647;\n\t\t\tfiles = (\n\t\t\t\tAAD69D532B51630200BE0369 /* PrivacyInfo.xcprivacy in Resources */,\n\t\t\t);\n\t\t\trunOnlyForDeploymentPostprocessing = 0;\n\t\t};\n\t\t1D104D781ACA36CC00973364 /* Resources */ = {\n\t\t\tisa = PBXResourcesBuildPhase;\n\t\t\tbuildActionMask = 2147483647;\n\t\t\tfiles = (\n\t\t\t\tAAD69D522B51630200BE0369 /* PrivacyInfo.xcprivacy in Resources */,\n\t\t\t);\n\t\t\trunOnlyForDeploymentPostprocessing = 0;\n\t\t};\n/* End PBXResourcesBuildPhase section */\n\n/* Begin PBXSourcesBuildPhase section */\n\t\t1777D3DA1D757AF50037C7F1 /* Sources */ = {\n\t\t\tisa = PBXSourcesBuildPhase;\n\t\t\tbuildActionMask = 2147483647;\n\t\t\tfiles = (\n\t\t\t\t1777D3E81D757B6E0037C7F1 /* MBProgressHUD.m in Sources */,\n\t\t\t);\n\t\t\trunOnlyForDeploymentPostprocessing = 0;\n\t\t};\n\t\t1D104D751ACA36CC00973364 /* Sources */ = {\n\t\t\tisa = PBXSourcesBuildPhase;\n\t\t\tbuildActionMask = 2147483647;\n\t\t\tfiles = (\n\t\t\t\t1D104D931ACA371400973364 /* MBProgressHUD.m in Sources */,\n\t\t\t);\n\t\t\trunOnlyForDeploymentPostprocessing = 0;\n\t\t};\n\t\tD286A7451518C70F00E13FB8 /* Sources */ = {\n\t\t\tisa = PBXSourcesBuildPhase;\n\t\t\tbuildActionMask = 2147483647;\n\t\t\tfiles = (\n\t\t\t\tD286A7531518C70F00E13FB8 /* MBProgressHUD.m in Sources */,\n\t\t\t);\n\t\t\trunOnlyForDeploymentPostprocessing = 0;\n\t\t};\n/* End PBXSourcesBuildPhase section */\n\n/* Begin XCBuildConfiguration section */\n\t\t1777D3E41D757AF50037C7F1 /* Debug */ = {\n\t\t\tisa = XCBuildConfiguration;\n\t\t\tbuildSettings = {\n\t\t\t\tCLANG_ANALYZER_NONNULL = YES;\n\t\t\t\tCLANG_CXX_LANGUAGE_STANDARD = \"gnu++0x\";\n\t\t\t\tCLANG_ENABLE_MODULES = YES;\n\t\t\t\tCLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;\n\t\t\t\tCLANG_WARN_DOCUMENTATION_COMMENTS = YES;\n\t\t\t\tCLANG_WARN_INFINITE_RECURSION = YES;\n\t\t\t\tCLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;\n\t\t\t\tCLANG_WARN_SUSPICIOUS_MOVES = YES;\n\t\t\t\tCODE_SIGN_IDENTITY = \"\";\n\t\t\t\tCURRENT_PROJECT_VERSION = 1;\n\t\t\t\tDEBUG_INFORMATION_FORMAT = dwarf;\n\t\t\t\tDEFINES_MODULE = YES;\n\t\t\t\tDEVELOPMENT_TEAM = \"\";\n\t\t\t\tDYLIB_COMPATIBILITY_VERSION = 1;\n\t\t\t\tDYLIB_CURRENT_VERSION = 1;\n\t\t\t\tDYLIB_INSTALL_NAME_BASE = \"@rpath\";\n\t\t\t\tGCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;\n\t\t\t\tGCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;\n\t\t\t\tINFOPLIST_FILE = \"Framework-tvOS-Info.plist\";\n\t\t\t\tINSTALL_PATH = \"$(LOCAL_LIBRARY_DIR)/Frameworks\";\n\t\t\t\tLD_RUNPATH_SEARCH_PATHS = \"$(inherited) @executable_path/Frameworks @loader_path/Frameworks\";\n\t\t\t\tMARKETING_VERSION = 1.2;\n\t\t\t\tMTL_ENABLE_DEBUG_INFO = YES;\n\t\t\t\tPRODUCT_BUNDLE_IDENTIFIER = com.matej.MBProgressHUD;\n\t\t\t\tPRODUCT_NAME = MBProgressHUD;\n\t\t\t\tSDKROOT = appletvos;\n\t\t\t\tSKIP_INSTALL = YES;\n\t\t\t\tTARGETED_DEVICE_FAMILY = 3;\n\t\t\t\tTVOS_DEPLOYMENT_TARGET = 9.0;\n\t\t\t\tVERSIONING_SYSTEM = \"apple-generic\";\n\t\t\t\tVERSION_INFO_PREFIX = \"\";\n\t\t\t};\n\t\t\tname = Debug;\n\t\t};\n\t\t1777D3E51D757AF50037C7F1 /* Release */ = {\n\t\t\tisa = XCBuildConfiguration;\n\t\t\tbuildSettings = {\n\t\t\t\tCLANG_ANALYZER_NONNULL = YES;\n\t\t\t\tCLANG_CXX_LANGUAGE_STANDARD = \"gnu++0x\";\n\t\t\t\tCLANG_ENABLE_MODULES = YES;\n\t\t\t\tCLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;\n\t\t\t\tCLANG_WARN_DOCUMENTATION_COMMENTS = YES;\n\t\t\t\tCLANG_WARN_INFINITE_RECURSION = YES;\n\t\t\t\tCLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;\n\t\t\t\tCLANG_WARN_SUSPICIOUS_MOVES = YES;\n\t\t\t\tCODE_SIGN_IDENTITY = \"\";\n\t\t\t\tCOPY_PHASE_STRIP = NO;\n\t\t\t\tCURRENT_PROJECT_VERSION = 1;\n\t\t\t\tDEBUG_INFORMATION_FORMAT = \"dwarf-with-dsym\";\n\t\t\t\tDEFINES_MODULE = YES;\n\t\t\t\tDEVELOPMENT_TEAM = \"\";\n\t\t\t\tDYLIB_COMPATIBILITY_VERSION = 1;\n\t\t\t\tDYLIB_CURRENT_VERSION = 1;\n\t\t\t\tDYLIB_INSTALL_NAME_BASE = \"@rpath\";\n\t\t\t\tENABLE_NS_ASSERTIONS = NO;\n\t\t\t\tGCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;\n\t\t\t\tGCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;\n\t\t\t\tINFOPLIST_FILE = \"Framework-tvOS-Info.plist\";\n\t\t\t\tINSTALL_PATH = \"$(LOCAL_LIBRARY_DIR)/Frameworks\";\n\t\t\t\tLD_RUNPATH_SEARCH_PATHS = \"$(inherited) @executable_path/Frameworks @loader_path/Frameworks\";\n\t\t\t\tMARKETING_VERSION = 1.2;\n\t\t\t\tMTL_ENABLE_DEBUG_INFO = NO;\n\t\t\t\tPRODUCT_BUNDLE_IDENTIFIER = com.matej.MBProgressHUD;\n\t\t\t\tPRODUCT_NAME = MBProgressHUD;\n\t\t\t\tSDKROOT = appletvos;\n\t\t\t\tSKIP_INSTALL = YES;\n\t\t\t\tTARGETED_DEVICE_FAMILY = 3;\n\t\t\t\tTVOS_DEPLOYMENT_TARGET = 9.0;\n\t\t\t\tVERSIONING_SYSTEM = \"apple-generic\";\n\t\t\t\tVERSION_INFO_PREFIX = \"\";\n\t\t\t};\n\t\t\tname = Release;\n\t\t};\n\t\t1D104D8E1ACA36CC00973364 /* Debug */ = {\n\t\t\tisa = XCBuildConfiguration;\n\t\t\tbuildSettings = {\n\t\t\t\tAPPLICATION_EXTENSION_API_ONLY = YES;\n\t\t\t\tCLANG_CXX_LANGUAGE_STANDARD = \"gnu++0x\";\n\t\t\t\tCLANG_ENABLE_MODULES = YES;\n\t\t\t\tCLANG_ENABLE_OBJC_ARC = YES;\n\t\t\t\tCLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;\n\t\t\t\tCLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;\n\t\t\t\tCLANG_WARN_STRICT_PROTOTYPES = YES;\n\t\t\t\t\"CODE_SIGN_IDENTITY[sdk=iphoneos*]\" = \"\";\n\t\t\t\tCURRENT_PROJECT_VERSION = 1;\n\t\t\t\tDEFINES_MODULE = YES;\n\t\t\t\tDEVELOPMENT_TEAM = \"\";\n\t\t\t\tDYLIB_COMPATIBILITY_VERSION = 1;\n\t\t\t\tDYLIB_CURRENT_VERSION = 1;\n\t\t\t\tDYLIB_INSTALL_NAME_BASE = \"@rpath\";\n\t\t\t\tGCC_PREPROCESSOR_DEFINITIONS = (\n\t\t\t\t\t\"DEBUG=1\",\n\t\t\t\t\t\"$(inherited)\",\n\t\t\t\t);\n\t\t\t\tGCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;\n\t\t\t\tGCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;\n\t\t\t\tINFOPLIST_FILE = \"Framework-Info.plist\";\n\t\t\t\tINSTALL_PATH = \"$(LOCAL_LIBRARY_DIR)/Frameworks\";\n\t\t\t\tLD_RUNPATH_SEARCH_PATHS = \"$(inherited) @executable_path/Frameworks @loader_path/Frameworks\";\n\t\t\t\tMARKETING_VERSION = 1.2;\n\t\t\t\tMTL_ENABLE_DEBUG_INFO = YES;\n\t\t\t\tPRODUCT_BUNDLE_IDENTIFIER = \"com.matej.$(PRODUCT_NAME:rfc1034identifier)\";\n\t\t\t\tPRODUCT_NAME = MBProgressHUD;\n\t\t\t\tSKIP_INSTALL = YES;\n\t\t\t\tTARGETED_DEVICE_FAMILY = \"1,2\";\n\t\t\t\tVERSIONING_SYSTEM = \"apple-generic\";\n\t\t\t\tVERSION_INFO_PREFIX = \"\";\n\t\t\t};\n\t\t\tname = Debug;\n\t\t};\n\t\t1D104D8F1ACA36CC00973364 /* Release */ = {\n\t\t\tisa = XCBuildConfiguration;\n\t\t\tbuildSettings = {\n\t\t\t\tAPPLICATION_EXTENSION_API_ONLY = YES;\n\t\t\t\tCLANG_CXX_LANGUAGE_STANDARD = \"gnu++0x\";\n\t\t\t\tCLANG_ENABLE_MODULES = YES;\n\t\t\t\tCLANG_ENABLE_OBJC_ARC = YES;\n\t\t\t\tCLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;\n\t\t\t\tCLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;\n\t\t\t\tCLANG_WARN_STRICT_PROTOTYPES = YES;\n\t\t\t\t\"CODE_SIGN_IDENTITY[sdk=iphoneos*]\" = \"\";\n\t\t\t\tCOPY_PHASE_STRIP = NO;\n\t\t\t\tCURRENT_PROJECT_VERSION = 1;\n\t\t\t\tDEFINES_MODULE = YES;\n\t\t\t\tDEVELOPMENT_TEAM = \"\";\n\t\t\t\tDYLIB_COMPATIBILITY_VERSION = 1;\n\t\t\t\tDYLIB_CURRENT_VERSION = 1;\n\t\t\t\tDYLIB_INSTALL_NAME_BASE = \"@rpath\";\n\t\t\t\tENABLE_NS_ASSERTIONS = NO;\n\t\t\t\tGCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;\n\t\t\t\tGCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;\n\t\t\t\tINFOPLIST_FILE = \"Framework-Info.plist\";\n\t\t\t\tINSTALL_PATH = \"$(LOCAL_LIBRARY_DIR)/Frameworks\";\n\t\t\t\tLD_RUNPATH_SEARCH_PATHS = \"$(inherited) @executable_path/Frameworks @loader_path/Frameworks\";\n\t\t\t\tMARKETING_VERSION = 1.2;\n\t\t\t\tMTL_ENABLE_DEBUG_INFO = NO;\n\t\t\t\tPRODUCT_BUNDLE_IDENTIFIER = \"com.matej.$(PRODUCT_NAME:rfc1034identifier)\";\n\t\t\t\tPRODUCT_NAME = MBProgressHUD;\n\t\t\t\tSKIP_INSTALL = YES;\n\t\t\t\tTARGETED_DEVICE_FAMILY = \"1,2\";\n\t\t\t\tVERSIONING_SYSTEM = \"apple-generic\";\n\t\t\t\tVERSION_INFO_PREFIX = \"\";\n\t\t\t};\n\t\t\tname = Release;\n\t\t};\n\t\tD286A7541518C70F00E13FB8 /* Debug */ = {\n\t\t\tisa = XCBuildConfiguration;\n\t\t\tbuildSettings = {\n\t\t\t\tALWAYS_SEARCH_USER_PATHS = NO;\n\t\t\t\tCLANG_ANALYZER_LOCALIZABILITY_NONLOCALIZED = YES;\n\t\t\t\tCLANG_CXX_LANGUAGE_STANDARD = \"c++0x\";\n\t\t\t\tCLANG_CXX_LIBRARY = \"libc++\";\n\t\t\t\tCLANG_ENABLE_OBJC_ARC = YES;\n\t\t\t\tCLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES;\n\t\t\t\tCLANG_WARN_BOOL_CONVERSION = YES;\n\t\t\t\tCLANG_WARN_COMMA = YES;\n\t\t\t\tCLANG_WARN_CONSTANT_CONVERSION = YES;\n\t\t\t\tCLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES;\n\t\t\t\tCLANG_WARN_EMPTY_BODY = YES;\n\t\t\t\tCLANG_WARN_ENUM_CONVERSION = YES;\n\t\t\t\tCLANG_WARN_INFINITE_RECURSION = YES;\n\t\t\t\tCLANG_WARN_INT_CONVERSION = YES;\n\t\t\t\tCLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES;\n\t\t\t\tCLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES;\n\t\t\t\tCLANG_WARN_OBJC_LITERAL_CONVERSION = YES;\n\t\t\t\tCLANG_WARN_RANGE_LOOP_ANALYSIS = YES;\n\t\t\t\tCLANG_WARN_STRICT_PROTOTYPES = YES;\n\t\t\t\tCLANG_WARN_SUSPICIOUS_MOVE = YES;\n\t\t\t\tCLANG_WARN_UNREACHABLE_CODE = YES;\n\t\t\t\tCLANG_WARN__DUPLICATE_METHOD_MATCH = YES;\n\t\t\t\tCOPY_PHASE_STRIP = NO;\n\t\t\t\tENABLE_STRICT_OBJC_MSGSEND = YES;\n\t\t\t\tENABLE_TESTABILITY = YES;\n\t\t\t\tGCC_C_LANGUAGE_STANDARD = gnu99;\n\t\t\t\tGCC_DYNAMIC_NO_PIC = NO;\n\t\t\t\tGCC_NO_COMMON_BLOCKS = YES;\n\t\t\t\tGCC_OPTIMIZATION_LEVEL = 0;\n\t\t\t\tGCC_PREPROCESSOR_DEFINITIONS = (\n\t\t\t\t\t\"DEBUG=1\",\n\t\t\t\t\t\"$(inherited)\",\n\t\t\t\t);\n\t\t\t\tGCC_SYMBOLS_PRIVATE_EXTERN = NO;\n\t\t\t\tGCC_VERSION = com.apple.compilers.llvm.clang.1_0;\n\t\t\t\tGCC_WARN_64_TO_32_BIT_CONVERSION = YES;\n\t\t\t\tGCC_WARN_ABOUT_RETURN_TYPE = YES;\n\t\t\t\tGCC_WARN_UNDECLARED_SELECTOR = YES;\n\t\t\t\tGCC_WARN_UNINITIALIZED_AUTOS = YES;\n\t\t\t\tGCC_WARN_UNUSED_FUNCTION = YES;\n\t\t\t\tGCC_WARN_UNUSED_VARIABLE = YES;\n\t\t\t\tIPHONEOS_DEPLOYMENT_TARGET = 9.0;\n\t\t\t\tONLY_ACTIVE_ARCH = YES;\n\t\t\t\tSDKROOT = iphoneos;\n\t\t\t};\n\t\t\tname = Debug;\n\t\t};\n\t\tD286A7551518C70F00E13FB8 /* Release */ = {\n\t\t\tisa = XCBuildConfiguration;\n\t\t\tbuildSettings = {\n\t\t\t\tALWAYS_SEARCH_USER_PATHS = NO;\n\t\t\t\tCLANG_ANALYZER_LOCALIZABILITY_NONLOCALIZED = YES;\n\t\t\t\tCLANG_CXX_LANGUAGE_STANDARD = \"c++0x\";\n\t\t\t\tCLANG_CXX_LIBRARY = \"libc++\";\n\t\t\t\tCLANG_ENABLE_OBJC_ARC = YES;\n\t\t\t\tCLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES;\n\t\t\t\tCLANG_WARN_BOOL_CONVERSION = YES;\n\t\t\t\tCLANG_WARN_COMMA = YES;\n\t\t\t\tCLANG_WARN_CONSTANT_CONVERSION = YES;\n\t\t\t\tCLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES;\n\t\t\t\tCLANG_WARN_EMPTY_BODY = YES;\n\t\t\t\tCLANG_WARN_ENUM_CONVERSION = YES;\n\t\t\t\tCLANG_WARN_INFINITE_RECURSION = YES;\n\t\t\t\tCLANG_WARN_INT_CONVERSION = YES;\n\t\t\t\tCLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES;\n\t\t\t\tCLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES;\n\t\t\t\tCLANG_WARN_OBJC_LITERAL_CONVERSION = YES;\n\t\t\t\tCLANG_WARN_RANGE_LOOP_ANALYSIS = YES;\n\t\t\t\tCLANG_WARN_STRICT_PROTOTYPES = YES;\n\t\t\t\tCLANG_WARN_SUSPICIOUS_MOVE = YES;\n\t\t\t\tCLANG_WARN_UNREACHABLE_CODE = YES;\n\t\t\t\tCLANG_WARN__DUPLICATE_METHOD_MATCH = YES;\n\t\t\t\tCOPY_PHASE_STRIP = YES;\n\t\t\t\tENABLE_STRICT_OBJC_MSGSEND = YES;\n\t\t\t\tGCC_C_LANGUAGE_STANDARD = gnu99;\n\t\t\t\tGCC_NO_COMMON_BLOCKS = YES;\n\t\t\t\tGCC_VERSION = com.apple.compilers.llvm.clang.1_0;\n\t\t\t\tGCC_WARN_64_TO_32_BIT_CONVERSION = YES;\n\t\t\t\tGCC_WARN_ABOUT_RETURN_TYPE = YES;\n\t\t\t\tGCC_WARN_UNDECLARED_SELECTOR = YES;\n\t\t\t\tGCC_WARN_UNINITIALIZED_AUTOS = YES;\n\t\t\t\tGCC_WARN_UNUSED_FUNCTION = YES;\n\t\t\t\tGCC_WARN_UNUSED_VARIABLE = YES;\n\t\t\t\tIPHONEOS_DEPLOYMENT_TARGET = 9.0;\n\t\t\t\tSDKROOT = iphoneos;\n\t\t\t\tVALIDATE_PRODUCT = YES;\n\t\t\t};\n\t\t\tname = Release;\n\t\t};\n\t\tD286A7571518C70F00E13FB8 /* Debug */ = {\n\t\t\tisa = XCBuildConfiguration;\n\t\t\tbuildSettings = {\n\t\t\t\tDSTROOT = /tmp/MBProgressHUD.dst;\n\t\t\t\tGCC_PRECOMPILE_PREFIX_HEADER = YES;\n\t\t\t\tGCC_PREFIX_HEADER = \"MBProgressHUD-Prefix.pch\";\n\t\t\t\tOTHER_LDFLAGS = \"-ObjC\";\n\t\t\t\tPRODUCT_NAME = MBProgressHUD;\n\t\t\t\tSKIP_INSTALL = YES;\n\t\t\t};\n\t\t\tname = Debug;\n\t\t};\n\t\tD286A7581518C70F00E13FB8 /* Release */ = {\n\t\t\tisa = XCBuildConfiguration;\n\t\t\tbuildSettings = {\n\t\t\t\tDSTROOT = /tmp/MBProgressHUD.dst;\n\t\t\t\tGCC_PRECOMPILE_PREFIX_HEADER = YES;\n\t\t\t\tGCC_PREFIX_HEADER = \"MBProgressHUD-Prefix.pch\";\n\t\t\t\tOTHER_LDFLAGS = \"-ObjC\";\n\t\t\t\tPRODUCT_NAME = MBProgressHUD;\n\t\t\t\tSKIP_INSTALL = YES;\n\t\t\t};\n\t\t\tname = Release;\n\t\t};\n/* End XCBuildConfiguration section */\n\n/* Begin XCConfigurationList section */\n\t\t1777D3E61D757AF50037C7F1 /* Build configuration list for PBXNativeTarget \"MBProgressHUD Framework tvOS\" */ = {\n\t\t\tisa = XCConfigurationList;\n\t\t\tbuildConfigurations = (\n\t\t\t\t1777D3E41D757AF50037C7F1 /* Debug */,\n\t\t\t\t1777D3E51D757AF50037C7F1 /* Release */,\n\t\t\t);\n\t\t\tdefaultConfigurationIsVisible = 0;\n\t\t\tdefaultConfigurationName = Release;\n\t\t};\n\t\t1D104D8D1ACA36CC00973364 /* Build configuration list for PBXNativeTarget \"MBProgressHUD Framework\" */ = {\n\t\t\tisa = XCConfigurationList;\n\t\t\tbuildConfigurations = (\n\t\t\t\t1D104D8E1ACA36CC00973364 /* Debug */,\n\t\t\t\t1D104D8F1ACA36CC00973364 /* Release */,\n\t\t\t);\n\t\t\tdefaultConfigurationIsVisible = 0;\n\t\t\tdefaultConfigurationName = Release;\n\t\t};\n\t\tD286A7431518C70E00E13FB8 /* Build configuration list for PBXProject \"MBProgressHUD\" */ = {\n\t\t\tisa = XCConfigurationList;\n\t\t\tbuildConfigurations = (\n\t\t\t\tD286A7541518C70F00E13FB8 /* Debug */,\n\t\t\t\tD286A7551518C70F00E13FB8 /* Release */,\n\t\t\t);\n\t\t\tdefaultConfigurationIsVisible = 0;\n\t\t\tdefaultConfigurationName = Release;\n\t\t};\n\t\tD286A7561518C70F00E13FB8 /* Build configuration list for PBXNativeTarget \"MBProgressHUD Static Library\" */ = {\n\t\t\tisa = XCConfigurationList;\n\t\t\tbuildConfigurations = (\n\t\t\t\tD286A7571518C70F00E13FB8 /* Debug */,\n\t\t\t\tD286A7581518C70F00E13FB8 /* Release */,\n\t\t\t);\n\t\t\tdefaultConfigurationIsVisible = 0;\n\t\t\tdefaultConfigurationName = Release;\n\t\t};\n/* End XCConfigurationList section */\n\t};\n\trootObject = D286A7401518C70E00E13FB8 /* Project object */;\n}\n"
  },
  {
    "path": "MBProgressHUD.xcodeproj/project.xcworkspace/contents.xcworkspacedata",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<Workspace\n   version = \"1.0\">\n   <FileRef\n      location = \"self:MBProgressHUD.xcodeproj\">\n   </FileRef>\n</Workspace>\n"
  },
  {
    "path": "MBProgressHUD.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<!DOCTYPE plist PUBLIC \"-//Apple//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/PropertyList-1.0.dtd\">\n<plist version=\"1.0\">\n<dict>\n\t<key>IDEDidComputeMac32BitWarning</key>\n\t<true/>\n</dict>\n</plist>\n"
  },
  {
    "path": "MBProgressHUD.xcodeproj/xcshareddata/xcschemes/MBProgressHUD Framework tvOS.xcscheme",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<Scheme\n   LastUpgradeVersion = \"1120\"\n   version = \"1.3\">\n   <BuildAction\n      parallelizeBuildables = \"YES\"\n      buildImplicitDependencies = \"YES\">\n      <BuildActionEntries>\n         <BuildActionEntry\n            buildForTesting = \"YES\"\n            buildForRunning = \"YES\"\n            buildForProfiling = \"YES\"\n            buildForArchiving = \"YES\"\n            buildForAnalyzing = \"YES\">\n            <BuildableReference\n               BuildableIdentifier = \"primary\"\n               BlueprintIdentifier = \"1777D3DE1D757AF50037C7F1\"\n               BuildableName = \"MBProgressHUD.framework\"\n               BlueprintName = \"MBProgressHUD Framework tvOS\"\n               ReferencedContainer = \"container:MBProgressHUD.xcodeproj\">\n            </BuildableReference>\n         </BuildActionEntry>\n      </BuildActionEntries>\n   </BuildAction>\n   <TestAction\n      buildConfiguration = \"Debug\"\n      selectedDebuggerIdentifier = \"Xcode.DebuggerFoundation.Debugger.LLDB\"\n      selectedLauncherIdentifier = \"Xcode.DebuggerFoundation.Launcher.LLDB\"\n      shouldUseLaunchSchemeArgsEnv = \"YES\">\n      <Testables>\n      </Testables>\n   </TestAction>\n   <LaunchAction\n      buildConfiguration = \"Debug\"\n      selectedDebuggerIdentifier = \"Xcode.DebuggerFoundation.Debugger.LLDB\"\n      selectedLauncherIdentifier = \"Xcode.DebuggerFoundation.Launcher.LLDB\"\n      launchStyle = \"0\"\n      useCustomWorkingDirectory = \"NO\"\n      ignoresPersistentStateOnLaunch = \"NO\"\n      debugDocumentVersioning = \"YES\"\n      debugServiceExtension = \"internal\"\n      allowLocationSimulation = \"YES\">\n      <MacroExpansion>\n         <BuildableReference\n            BuildableIdentifier = \"primary\"\n            BlueprintIdentifier = \"1777D3DE1D757AF50037C7F1\"\n            BuildableName = \"MBProgressHUD.framework\"\n            BlueprintName = \"MBProgressHUD Framework tvOS\"\n            ReferencedContainer = \"container:MBProgressHUD.xcodeproj\">\n         </BuildableReference>\n      </MacroExpansion>\n   </LaunchAction>\n   <ProfileAction\n      buildConfiguration = \"Release\"\n      shouldUseLaunchSchemeArgsEnv = \"YES\"\n      savedToolIdentifier = \"\"\n      useCustomWorkingDirectory = \"NO\"\n      debugDocumentVersioning = \"YES\">\n      <MacroExpansion>\n         <BuildableReference\n            BuildableIdentifier = \"primary\"\n            BlueprintIdentifier = \"1777D3DE1D757AF50037C7F1\"\n            BuildableName = \"MBProgressHUD.framework\"\n            BlueprintName = \"MBProgressHUD Framework tvOS\"\n            ReferencedContainer = \"container:MBProgressHUD.xcodeproj\">\n         </BuildableReference>\n      </MacroExpansion>\n   </ProfileAction>\n   <AnalyzeAction\n      buildConfiguration = \"Debug\">\n   </AnalyzeAction>\n   <ArchiveAction\n      buildConfiguration = \"Release\"\n      revealArchiveInOrganizer = \"YES\">\n   </ArchiveAction>\n</Scheme>\n"
  },
  {
    "path": "MBProgressHUD.xcodeproj/xcshareddata/xcschemes/MBProgressHUD Framework.xcscheme",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<Scheme\n   LastUpgradeVersion = \"1120\"\n   version = \"1.3\">\n   <BuildAction\n      parallelizeBuildables = \"YES\"\n      buildImplicitDependencies = \"YES\">\n      <BuildActionEntries>\n         <BuildActionEntry\n            buildForTesting = \"YES\"\n            buildForRunning = \"YES\"\n            buildForProfiling = \"YES\"\n            buildForArchiving = \"YES\"\n            buildForAnalyzing = \"YES\">\n            <BuildableReference\n               BuildableIdentifier = \"primary\"\n               BlueprintIdentifier = \"1D104D791ACA36CC00973364\"\n               BuildableName = \"MBProgressHUD.framework\"\n               BlueprintName = \"MBProgressHUD Framework\"\n               ReferencedContainer = \"container:MBProgressHUD.xcodeproj\">\n            </BuildableReference>\n         </BuildActionEntry>\n      </BuildActionEntries>\n   </BuildAction>\n   <TestAction\n      buildConfiguration = \"Debug\"\n      selectedDebuggerIdentifier = \"Xcode.DebuggerFoundation.Debugger.LLDB\"\n      selectedLauncherIdentifier = \"Xcode.DebuggerFoundation.Launcher.LLDB\"\n      shouldUseLaunchSchemeArgsEnv = \"YES\">\n      <Testables>\n      </Testables>\n   </TestAction>\n   <LaunchAction\n      buildConfiguration = \"Debug\"\n      selectedDebuggerIdentifier = \"Xcode.DebuggerFoundation.Debugger.LLDB\"\n      selectedLauncherIdentifier = \"Xcode.DebuggerFoundation.Launcher.LLDB\"\n      launchStyle = \"0\"\n      useCustomWorkingDirectory = \"NO\"\n      ignoresPersistentStateOnLaunch = \"NO\"\n      debugDocumentVersioning = \"YES\"\n      debugServiceExtension = \"internal\"\n      allowLocationSimulation = \"YES\">\n      <MacroExpansion>\n         <BuildableReference\n            BuildableIdentifier = \"primary\"\n            BlueprintIdentifier = \"1D104D791ACA36CC00973364\"\n            BuildableName = \"MBProgressHUD.framework\"\n            BlueprintName = \"MBProgressHUD Framework\"\n            ReferencedContainer = \"container:MBProgressHUD.xcodeproj\">\n         </BuildableReference>\n      </MacroExpansion>\n   </LaunchAction>\n   <ProfileAction\n      buildConfiguration = \"Release\"\n      shouldUseLaunchSchemeArgsEnv = \"YES\"\n      savedToolIdentifier = \"\"\n      useCustomWorkingDirectory = \"NO\"\n      debugDocumentVersioning = \"YES\">\n      <MacroExpansion>\n         <BuildableReference\n            BuildableIdentifier = \"primary\"\n            BlueprintIdentifier = \"1D104D791ACA36CC00973364\"\n            BuildableName = \"MBProgressHUD.framework\"\n            BlueprintName = \"MBProgressHUD Framework\"\n            ReferencedContainer = \"container:MBProgressHUD.xcodeproj\">\n         </BuildableReference>\n      </MacroExpansion>\n   </ProfileAction>\n   <AnalyzeAction\n      buildConfiguration = \"Debug\">\n   </AnalyzeAction>\n   <ArchiveAction\n      buildConfiguration = \"Release\"\n      revealArchiveInOrganizer = \"YES\">\n   </ArchiveAction>\n</Scheme>\n"
  },
  {
    "path": "MBProgressHUD.xcodeproj/xcshareddata/xcschemes/MBProgressHUD.xcscheme",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<Scheme\n   LastUpgradeVersion = \"1120\"\n   version = \"1.3\">\n   <BuildAction\n      parallelizeBuildables = \"YES\"\n      buildImplicitDependencies = \"YES\">\n      <BuildActionEntries>\n         <BuildActionEntry\n            buildForTesting = \"YES\"\n            buildForRunning = \"YES\"\n            buildForProfiling = \"YES\"\n            buildForArchiving = \"YES\"\n            buildForAnalyzing = \"YES\">\n            <BuildableReference\n               BuildableIdentifier = \"primary\"\n               BlueprintIdentifier = \"D286A7481518C70F00E13FB8\"\n               BuildableName = \"libMBProgressHUD.a\"\n               BlueprintName = \"MBProgressHUD Static Library\"\n               ReferencedContainer = \"container:MBProgressHUD.xcodeproj\">\n            </BuildableReference>\n         </BuildActionEntry>\n      </BuildActionEntries>\n   </BuildAction>\n   <TestAction\n      buildConfiguration = \"Debug\"\n      selectedDebuggerIdentifier = \"Xcode.DebuggerFoundation.Debugger.LLDB\"\n      selectedLauncherIdentifier = \"Xcode.DebuggerFoundation.Launcher.LLDB\"\n      shouldUseLaunchSchemeArgsEnv = \"YES\">\n      <Testables>\n      </Testables>\n   </TestAction>\n   <LaunchAction\n      buildConfiguration = \"Debug\"\n      selectedDebuggerIdentifier = \"Xcode.DebuggerFoundation.Debugger.LLDB\"\n      selectedLauncherIdentifier = \"Xcode.DebuggerFoundation.Launcher.LLDB\"\n      launchStyle = \"0\"\n      useCustomWorkingDirectory = \"NO\"\n      ignoresPersistentStateOnLaunch = \"NO\"\n      debugDocumentVersioning = \"YES\"\n      debugServiceExtension = \"internal\"\n      allowLocationSimulation = \"YES\">\n      <MacroExpansion>\n         <BuildableReference\n            BuildableIdentifier = \"primary\"\n            BlueprintIdentifier = \"D286A7481518C70F00E13FB8\"\n            BuildableName = \"libMBProgressHUD.a\"\n            BlueprintName = \"MBProgressHUD Static Library\"\n            ReferencedContainer = \"container:MBProgressHUD.xcodeproj\">\n         </BuildableReference>\n      </MacroExpansion>\n   </LaunchAction>\n   <ProfileAction\n      buildConfiguration = \"Release\"\n      shouldUseLaunchSchemeArgsEnv = \"YES\"\n      savedToolIdentifier = \"\"\n      useCustomWorkingDirectory = \"NO\"\n      debugDocumentVersioning = \"YES\">\n   </ProfileAction>\n   <AnalyzeAction\n      buildConfiguration = \"Debug\">\n   </AnalyzeAction>\n   <ArchiveAction\n      buildConfiguration = \"Release\"\n      revealArchiveInOrganizer = \"YES\">\n   </ArchiveAction>\n</Scheme>\n"
  },
  {
    "path": "MBProgressHUD.xcworkspace/contents.xcworkspacedata",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<Workspace\n   version = \"1.0\">\n   <FileRef\n      location = \"group:MBProgressHUD.xcodeproj\">\n   </FileRef>\n   <FileRef\n      location = \"group:Demo/HudDemo.xcodeproj\">\n   </FileRef>\n   <FileRef\n      location = \"group:README.mdown\">\n   </FileRef>\n   <FileRef\n      location = \"group:LICENSE\">\n   </FileRef>\n   <FileRef\n      location = \"group:MBProgressHUD.podspec\">\n   </FileRef>\n</Workspace>\n"
  },
  {
    "path": "MBProgressHUD.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<!DOCTYPE plist PUBLIC \"-//Apple//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/PropertyList-1.0.dtd\">\n<plist version=\"1.0\">\n<dict>\n\t<key>IDEDidComputeMac32BitWarning</key>\n\t<true/>\n</dict>\n</plist>\n"
  },
  {
    "path": "Package.swift",
    "content": "// swift-tools-version:5.9\nimport PackageDescription\n\nlet package = Package(\n    name: \"MBProgressHUD\",\n    products: [\n        .library(name: \"MBProgressHUD\", targets: [\"MBProgressHUD\"])\n    ],\n    targets: [\n        .target(\n            name: \"MBProgressHUD\",\n            dependencies: [],\n            path: \".\",\n            exclude: [\"Demo\"],\n            sources: [\"MBProgressHUD.h\", \"MBProgressHUD.m\"],\n            resources: [.copy(\"PrivacyInfo.xcprivacy\")],\n            publicHeadersPath: \"include\"\n        )\n    ]\n)\n"
  },
  {
    "path": "PrivacyInfo.xcprivacy",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<!DOCTYPE plist PUBLIC \"-//Apple//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/PropertyList-1.0.dtd\">\n<plist version=\"1.0\">\n<dict>\n    <key>NSPrivacyTracking</key>\n    <false/>\n    <key>NSPrivacyCollectedDataTypes</key>\n    <array/>\n    <key>NSPrivacyTrackingDomains</key>\n    <array/>\n    <key>NSPrivacyAccessedAPITypes</key>\n    <array/>\n</dict>\n</plist>\n"
  },
  {
    "path": "README.mdown",
    "content": "# MBProgressHUD\n\n[![Build Status](https://travis-ci.org/matej/MBProgressHUD.svg?branch=master)](https://travis-ci.org/matej/MBProgressHUD) [![codecov.io](https://codecov.io/github/matej/MBProgressHUD/coverage.svg?branch=master)](https://codecov.io/github/matej/MBProgressHUD?branch=master)\n [![SwiftPM compatible](https://img.shields.io/badge/SwiftPM-compatible-brightgreen.svg)](https://github.com/apple/swift-package-manager) [![Carthage compatible](https://img.shields.io/badge/Carthage-compatible-4BC51D.svg?style=flat)](https://github.com/Carthage/Carthage#adding-frameworks-to-an-application) [![Accio supported](https://img.shields.io/badge/Accio-supported-0A7CF5.svg?style=flat)](https://github.com/JamitLabs/Accio) [![CocoaPods compatible](https://img.shields.io/cocoapods/v/MBProgressHUD.svg?style=flat)](https://cocoapods.org/pods/MBProgressHUD) [![License: MIT](https://img.shields.io/cocoapods/l/MBProgressHUD.svg?style=flat)](http://opensource.org/licenses/MIT)\n\n`MBProgressHUD` is an iOS drop-in class that displays a translucent HUD with an indicator and/or labels while work is being done in a background thread. The HUD is meant as a replacement for the undocumented, private `UIKit` `UIProgressHUD` with some additional features.\n\n[![](https://raw.githubusercontent.com/wiki/matej/MBProgressHUD/Screenshots/1-small.png)](https://raw.githubusercontent.com/wiki/matej/MBProgressHUD/Screenshots/1.png)\n[![](https://raw.githubusercontent.com/wiki/matej/MBProgressHUD/Screenshots/2-small.png)](https://raw.githubusercontent.com/wiki/matej/MBProgressHUD/Screenshots/2.png)\n[![](https://raw.githubusercontent.com/wiki/matej/MBProgressHUD/Screenshots/3-small.png)](https://raw.githubusercontent.com/wiki/matej/MBProgressHUD/Screenshots/3.png)\n[![](https://raw.githubusercontent.com/wiki/matej/MBProgressHUD/Screenshots/4-small.png)](https://raw.githubusercontent.com/wiki/matej/MBProgressHUD/Screenshots/4.png)\n[![](https://raw.githubusercontent.com/wiki/matej/MBProgressHUD/Screenshots/5-small.png)](https://raw.githubusercontent.com/wiki/matej/MBProgressHUD/Screenshots/5.png)\n[![](https://raw.githubusercontent.com/wiki/matej/MBProgressHUD/Screenshots/6-small.png)](https://raw.githubusercontent.com/wiki/matej/MBProgressHUD/Screenshots/6.png)\n[![](https://raw.githubusercontent.com/wiki/matej/MBProgressHUD/Screenshots/7-small.png)](https://raw.githubusercontent.com/wiki/matej/MBProgressHUD/Screenshots/7.png)\n\n## Requirements\n\n`MBProgressHUD` works on iOS 9.0+. It depends on the following Apple frameworks, which should already be included with most Xcode templates:\n\n* Foundation.framework\n* UIKit.framework\n* CoreGraphics.framework\n\nYou will need the latest developer tools in order to build `MBProgressHUD`. Old Xcode versions might work, but compatibility will not be explicitly maintained.\n\n## Adding MBProgressHUD to your project\n\n### CocoaPods\n\n[CocoaPods](http://cocoapods.org) is the recommended way to add MBProgressHUD to your project.\n\n1. Add a pod entry for MBProgressHUD to your Podfile `pod 'MBProgressHUD', '~> 1.2.0'`\n2. Install the pod(s) by running `pod install`.\n3. Include MBProgressHUD wherever you need it with `#import \"MBProgressHUD.h\"`.\n\n### Carthage\n\n1. Add MBProgressHUD to your Cartfile. e.g., `github \"jdg/MBProgressHUD\" ~> 1.2.0`\n2. Run `carthage update`\n3. Follow the rest of the [standard Carthage installation instructions](https://github.com/Carthage/Carthage#adding-frameworks-to-an-application) to add MBProgressHUD to your project.\n\n### SwiftPM / Accio\n\n1. Add the following to your `Package.swift`:\n\t```swift\n\t.package(url: \"https://github.com/jdg/MBProgressHUD.git\", .upToNextMajor(from: \"1.2.0\")),\n\t```\n2. Next, add `MBProgressHUD` to your App targets dependencies like so:\n\t```swift\n\t.target(name: \"App\", dependencies: [\"MBProgressHUD\"]),\n\t```\n3. Then open your project in Xcode 11+ (SwiftPM) or run `accio update` (Accio).\n\n### Source files\n\nAlternatively you can directly add the `MBProgressHUD.h` and `MBProgressHUD.m` source files to your project.\n\n1. Download the [latest code version](https://github.com/matej/MBProgressHUD/archive/master.zip) or add the repository as a git submodule to your git-tracked project.\n2. Open your project in Xcode, then drag and drop `MBProgressHUD.h` and `MBProgressHUD.m` onto your project (use the \"Product Navigator view\"). Make sure to select Copy items when asked if you extracted the code archive outside of your project.\n3. Include MBProgressHUD wherever you need it with `#import \"MBProgressHUD.h\"`.\n\n### Static library\n\nYou can also add MBProgressHUD as a static library to your project or workspace.\n\n1. Download the [latest code version](https://github.com/matej/MBProgressHUD/downloads) or add the repository as a git submodule to your git-tracked project.\n2. Open your project in Xcode, then drag and drop `MBProgressHUD.xcodeproj` onto your project or workspace (use the \"Product Navigator view\").\n3. Select your target and go to the Build phases tab. In the Link Binary With Libraries section select the add button. On the sheet find and add `libMBProgressHUD.a`. You might also need to add `MBProgressHUD` to the Target Dependencies list.\n4. Include MBProgressHUD wherever you need it with `#import <MBProgressHUD/MBProgressHUD.h>`.\n\n## Usage\n\nThe main guideline you need to follow when dealing with MBProgressHUD while running long-running tasks is keeping the main thread work-free, so the UI can be updated promptly. The recommended way of using MBProgressHUD is therefore to set it up on the main thread and then spinning the task, that you want to perform, off onto a new thread.\n\n```objective-c\n[MBProgressHUD showHUDAddedTo:self.view animated:YES];\ndispatch_async(dispatch_get_global_queue( DISPATCH_QUEUE_PRIORITY_LOW, 0), ^{\n\t// Do something...\n\tdispatch_async(dispatch_get_main_queue(), ^{\n\t\t[MBProgressHUD hideHUDForView:self.view animated:YES];\n\t});\n});\n```\n\nYou can add the HUD on any view or window. It is however a good idea to avoid adding the HUD to certain `UIKit` views with complex view hierarchies - like `UITableView` or `UICollectionView`. Those can mutate their subviews in unexpected ways and thereby break HUD display.\n\nIf you need to configure the HUD you can do this by using the MBProgressHUD reference that showHUDAddedTo:animated: returns.\n\n```objective-c\nMBProgressHUD *hud = [MBProgressHUD showHUDAddedTo:self.view animated:YES];\nhud.mode = MBProgressHUDModeAnnularDeterminate;\nhud.label.text = @\"Loading\";\n[self doSomethingInBackgroundWithProgressCallback:^(float progress) {\n\thud.progress = progress;\n} completionCallback:^{\n\t[hud hideAnimated:YES];\n}];\n```\n\nYou can also use a `NSProgress` object and MBProgressHUD will update itself when there is progress reported through that object.\n\n```objective-c\nMBProgressHUD *hud = [MBProgressHUD showHUDAddedTo:self.view animated:YES];\nhud.mode = MBProgressHUDModeAnnularDeterminate;\nhud.label.text = @\"Loading\";\nNSProgress *progress = [self doSomethingInBackgroundCompletion:^{\n\t[hud hideAnimated:YES];\n}];\nhud.progressObject = progress;\n```\n\nKeep in mind that UI updates, including calls to MBProgressHUD should always be done on the main thread.\n\nIf you need to run your long-running task in the main thread, you should perform it with a slight delay, so UIKit will have enough time to update the UI (i.e., draw the HUD) before you block the main thread with your task.\n\n```objective-c\n[MBProgressHUD showHUDAddedTo:self.view animated:YES];\ndispatch_time_t popTime = dispatch_time(DISPATCH_TIME_NOW, 0.01 * NSEC_PER_SEC);\ndispatch_after(popTime, dispatch_get_main_queue(), ^(void){\n\t// Do something...\n\t[MBProgressHUD hideHUDForView:self.view animated:YES];\n});\n```\n\nYou should be aware that any HUD updates issued inside the above block won't be displayed until the block completes.\n\nFor more examples, including how to use MBProgressHUD with asynchronous operations such as NSURLConnection, take a look at the bundled demo project. Extensive API documentation is provided in the header file (MBProgressHUD.h).\n\n\n## License\n\nThis code is distributed under the terms and conditions of the [MIT license](LICENSE).\n\n## Change-log\n\nA brief summary of each MBProgressHUD release can be found in the [CHANGELOG](CHANGELOG.mdown).\n\n## Privacy\n\nMBProgressHUD does not collect any data. See [SDK Privacy Practices](https://bukovinski.com/sdk-privacy/mbprogresshud/) for more information.\n"
  },
  {
    "path": "include/module.modulemap",
    "content": "module MBProgressHUD {\n     umbrella header \"MBProgressHUD/MBProgressHUD.h\"\n     export *\n     module * { export * }\n }\n"
  }
]