// !$*UTF8*$!
{
	archiveVersion = 1;
	classes = {
	};
	objectVersion = 46;
	objects = {

/* Begin PBXBuildFile section */
		3E75A9861742DBE700DA412D /* CustomPathImages in Resources */ = {isa = PBXBuildFile; fileRef = 3E75A9851742DBE700DA412D /* CustomPathImages */; };
		531041C1157EAC8F00BBABC3 /* ImageIO.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 537612E6155ABA44005750A4 /* ImageIO.framework */; };
		5376129A155AB74D005750A4 /* UIKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 53761299155AB74D005750A4 /* UIKit.framework */; };
		5376129C155AB74D005750A4 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 5376129B155AB74D005750A4 /* Foundation.framework */; };
		5376129E155AB74D005750A4 /* CoreGraphics.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 5376129D155AB74D005750A4 /* CoreGraphics.framework */; };
		537612A6155AB74D005750A4 /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = 537612A5155AB74D005750A4 /* main.m */; };
		537612AA155AB74D005750A4 /* AppDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = 537612A9155AB74D005750A4 /* AppDelegate.m */; };
		537612AD155AB74D005750A4 /* MasterViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 537612AC155AB74D005750A4 /* MasterViewController.m */; };
		537612B0155AB74D005750A4 /* DetailViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 537612AF155AB74D005750A4 /* DetailViewController.m */; };
		537612B3155AB74D005750A4 /* MasterViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = 537612B1155AB74D005750A4 /* MasterViewController.xib */; };
		537612B6155AB74D005750A4 /* DetailViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = 537612B4155AB74D005750A4 /* DetailViewController.xib */; };
		53A2B50D155B155A00B12423 /* placeholder.png in Resources */ = {isa = PBXBuildFile; fileRef = 53A2B50B155B155A00B12423 /* placeholder.png */; };
		53A2B50E155B155A00B12423 /* placeholder@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 53A2B50C155B155A00B12423 /* placeholder@2x.png */; };
		53EEC18916484553007601E1 /* Default-568h@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 53EEC18816484553007601E1 /* Default-568h@2x.png */; };
		DA248D44195470FD00390AB0 /* MapKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 537612E3155ABA3C005750A4 /* MapKit.framework */; };
		DA248D79195484A500390AB0 /* libSDWebImage+WebP.a in Frameworks */ = {isa = PBXBuildFile; fileRef = DA248D761954841D00390AB0 /* libSDWebImage+WebP.a */; };
/* End PBXBuildFile section */

/* Begin PBXContainerItemProxy section */
		DA248D731954841D00390AB0 /* PBXContainerItemProxy */ = {
			isa = PBXContainerItemProxy;
			containerPortal = DA248D6C1954841D00390AB0 /* SDWebImage.xcodeproj */;
			proxyType = 2;
			remoteGlobalIDString = 53761325155AD0D5005750A4;
			remoteInfo = SDWebImage;
		};
		DA248D751954841D00390AB0 /* PBXContainerItemProxy */ = {
			isa = PBXContainerItemProxy;
			containerPortal = DA248D6C1954841D00390AB0 /* SDWebImage.xcodeproj */;
			proxyType = 2;
			remoteGlobalIDString = 537D95C117ECC1FE0097C263;
			remoteInfo = "SDWebImage+WebP";
		};
		DA248D771954841D00390AB0 /* PBXContainerItemProxy */ = {
			isa = PBXContainerItemProxy;
			containerPortal = DA248D6C1954841D00390AB0 /* SDWebImage.xcodeproj */;
			proxyType = 2;
			remoteGlobalIDString = 531041E0157EAFA400BBABC3;
			remoteInfo = "SDWebImage+MKAnnotation";
		};
/* End PBXContainerItemProxy section */

/* Begin PBXFileReference section */
		3E75A9851742DBE700DA412D /* CustomPathImages */ = {isa = PBXFileReference; lastKnownFileType = folder; path = CustomPathImages; sourceTree = SOURCE_ROOT; };
		53761295155AB74D005750A4 /* SDWebImage Demo.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = "SDWebImage Demo.app"; sourceTree = BUILT_PRODUCTS_DIR; };
		53761299155AB74D005750A4 /* UIKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = UIKit.framework; path = System/Library/Frameworks/UIKit.framework; sourceTree = SDKROOT; };
		5376129B155AB74D005750A4 /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = System/Library/Frameworks/Foundation.framework; sourceTree = SDKROOT; };
		5376129D155AB74D005750A4 /* CoreGraphics.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreGraphics.framework; path = System/Library/Frameworks/CoreGraphics.framework; sourceTree = SDKROOT; };
		537612A1155AB74D005750A4 /* SDWebImage Demo-Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = "SDWebImage Demo-Info.plist"; sourceTree = "<group>"; };
		537612A5155AB74D005750A4 /* main.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = main.m; sourceTree = "<group>"; };
		537612A7155AB74D005750A4 /* SDWebImage Demo-Prefix.pch */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "SDWebImage Demo-Prefix.pch"; sourceTree = "<group>"; };
		537612A8155AB74D005750A4 /* AppDelegate.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = AppDelegate.h; sourceTree = "<group>"; };
		537612A9155AB74D005750A4 /* AppDelegate.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = AppDelegate.m; sourceTree = "<group>"; };
		537612AB155AB74D005750A4 /* MasterViewController.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = MasterViewController.h; sourceTree = "<group>"; };
		537612AC155AB74D005750A4 /* MasterViewController.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = MasterViewController.m; sourceTree = "<group>"; };
		537612AE155AB74D005750A4 /* DetailViewController.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = DetailViewController.h; sourceTree = "<group>"; };
		537612AF155AB74D005750A4 /* DetailViewController.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = DetailViewController.m; sourceTree = "<group>"; };
		537612B2155AB74D005750A4 /* en */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = en; path = en.lproj/MasterViewController.xib; sourceTree = "<group>"; };
		537612B5155AB74D005750A4 /* en */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = en; path = en.lproj/DetailViewController.xib; sourceTree = "<group>"; };
		537612E3155ABA3C005750A4 /* MapKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = MapKit.framework; path = System/Library/Frameworks/MapKit.framework; sourceTree = SDKROOT; };
		537612E6155ABA44005750A4 /* ImageIO.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = ImageIO.framework; path = System/Library/Frameworks/ImageIO.framework; sourceTree = SDKROOT; };
		53A2B50B155B155A00B12423 /* placeholder.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = placeholder.png; sourceTree = "<group>"; };
		53A2B50C155B155A00B12423 /* placeholder@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "placeholder@2x.png"; sourceTree = "<group>"; };
		53EEC18816484553007601E1 /* Default-568h@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = "Default-568h@2x.png"; path = "../Default-568h@2x.png"; sourceTree = "<group>"; };
		DA248D6C1954841D00390AB0 /* SDWebImage.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = SDWebImage.xcodeproj; path = ../SDWebImage.xcodeproj; sourceTree = "<group>"; };
/* End PBXFileReference section */

/* Begin PBXFrameworksBuildPhase section */
		53761292155AB74D005750A4 /* Frameworks */ = {
			isa = PBXFrameworksBuildPhase;
			buildActionMask = 2147483647;
			files = (
				DA248D79195484A500390AB0 /* libSDWebImage+WebP.a in Frameworks */,
				DA248D44195470FD00390AB0 /* MapKit.framework in Frameworks */,
				531041C1157EAC8F00BBABC3 /* ImageIO.framework in Frameworks */,
				5376129A155AB74D005750A4 /* UIKit.framework in Frameworks */,
				5376129C155AB74D005750A4 /* Foundation.framework in Frameworks */,
				5376129E155AB74D005750A4 /* CoreGraphics.framework in Frameworks */,
			);
			runOnlyForDeploymentPostprocessing = 0;
		};
/* End PBXFrameworksBuildPhase section */

/* Begin PBXGroup section */
		5376128A155AB74D005750A4 = {
			isa = PBXGroup;
			children = (
				DA248D6C1954841D00390AB0 /* SDWebImage.xcodeproj */,
				5376129F155AB74D005750A4 /* SDWebImage Demo */,
				53761298155AB74D005750A4 /* Frameworks */,
				53761296155AB74D005750A4 /* Products */,
			);
			sourceTree = "<group>";
		};
		53761296155AB74D005750A4 /* Products */ = {
			isa = PBXGroup;
			children = (
				53761295155AB74D005750A4 /* SDWebImage Demo.app */,
			);
			name = Products;
			sourceTree = "<group>";
		};
		53761298155AB74D005750A4 /* Frameworks */ = {
			isa = PBXGroup;
			children = (
				537612E6155ABA44005750A4 /* ImageIO.framework */,
				537612E3155ABA3C005750A4 /* MapKit.framework */,
				53761299155AB74D005750A4 /* UIKit.framework */,
				5376129B155AB74D005750A4 /* Foundation.framework */,
				5376129D155AB74D005750A4 /* CoreGraphics.framework */,
			);
			name = Frameworks;
			sourceTree = "<group>";
		};
		5376129F155AB74D005750A4 /* SDWebImage Demo */ = {
			isa = PBXGroup;
			children = (
				3E75A9851742DBE700DA412D /* CustomPathImages */,
				537612A8155AB74D005750A4 /* AppDelegate.h */,
				537612A9155AB74D005750A4 /* AppDelegate.m */,
				537612AB155AB74D005750A4 /* MasterViewController.h */,
				537612AC155AB74D005750A4 /* MasterViewController.m */,
				537612AE155AB74D005750A4 /* DetailViewController.h */,
				537612AF155AB74D005750A4 /* DetailViewController.m */,
				537612B1155AB74D005750A4 /* MasterViewController.xib */,
				537612B4155AB74D005750A4 /* DetailViewController.xib */,
				537612A0155AB74D005750A4 /* Supporting Files */,
			);
			path = "SDWebImage Demo";
			sourceTree = "<group>";
		};
		537612A0155AB74D005750A4 /* Supporting Files */ = {
			isa = PBXGroup;
			children = (
				53EEC18816484553007601E1 /* Default-568h@2x.png */,
				537612A1155AB74D005750A4 /* SDWebImage Demo-Info.plist */,
				537612A5155AB74D005750A4 /* main.m */,
				537612A7155AB74D005750A4 /* SDWebImage Demo-Prefix.pch */,
				53A2B50B155B155A00B12423 /* placeholder.png */,
				53A2B50C155B155A00B12423 /* placeholder@2x.png */,
			);
			name = "Supporting Files";
			sourceTree = "<group>";
		};
		DA248D6D1954841D00390AB0 /* Products */ = {
			isa = PBXGroup;
			children = (
				DA248D741954841D00390AB0 /* libSDWebImage.a */,
				DA248D761954841D00390AB0 /* libSDWebImage+WebP.a */,
				DA248D781954841D00390AB0 /* libSDWebImage+MKAnnotation.a */,
			);
			name = Products;
			sourceTree = "<group>";
		};
/* End PBXGroup section */

/* Begin PBXNativeTarget section */
		53761294155AB74D005750A4 /* SDWebImage Demo */ = {
			isa = PBXNativeTarget;
			buildConfigurationList = 537612B9155AB74D005750A4 /* Build configuration list for PBXNativeTarget "SDWebImage Demo" */;
			buildPhases = (
				53761291155AB74D005750A4 /* Sources */,
				53761292155AB74D005750A4 /* Frameworks */,
				53761293155AB74D005750A4 /* Resources */,
			);
			buildRules = (
			);
			dependencies = (
			);
			name = "SDWebImage Demo";
			productName = "SDWebImage Demo";
			productReference = 53761295155AB74D005750A4 /* SDWebImage Demo.app */;
			productType = "com.apple.product-type.application";
		};
/* End PBXNativeTarget section */

/* Begin PBXProject section */
		5376128C155AB74D005750A4 /* Project object */ = {
			isa = PBXProject;
			attributes = {
				LastUpgradeCheck = 0500;
				ORGANIZATIONNAME = Dailymotion;
			};
			buildConfigurationList = 5376128F155AB74D005750A4 /* Build configuration list for PBXProject "SDWebImage Demo" */;
			compatibilityVersion = "Xcode 3.2";
			developmentRegion = English;
			hasScannedForEncodings = 0;
			knownRegions = (
				en,
			);
			mainGroup = 5376128A155AB74D005750A4;
			productRefGroup = 53761296155AB74D005750A4 /* Products */;
			projectDirPath = "";
			projectReferences = (
				{
					ProductGroup = DA248D6D1954841D00390AB0 /* Products */;
					ProjectRef = DA248D6C1954841D00390AB0 /* SDWebImage.xcodeproj */;
				},
			);
			projectRoot = "";
			targets = (
				53761294155AB74D005750A4 /* SDWebImage Demo */,
			);
		};
/* End PBXProject section */

/* Begin PBXReferenceProxy section */
		DA248D741954841D00390AB0 /* libSDWebImage.a */ = {
			isa = PBXReferenceProxy;
			fileType = archive.ar;
			path = libSDWebImage.a;
			remoteRef = DA248D731954841D00390AB0 /* PBXContainerItemProxy */;
			sourceTree = BUILT_PRODUCTS_DIR;
		};
		DA248D761954841D00390AB0 /* libSDWebImage+WebP.a */ = {
			isa = PBXReferenceProxy;
			fileType = archive.ar;
			path = "libSDWebImage+WebP.a";
			remoteRef = DA248D751954841D00390AB0 /* PBXContainerItemProxy */;
			sourceTree = BUILT_PRODUCTS_DIR;
		};
		DA248D781954841D00390AB0 /* libSDWebImage+MKAnnotation.a */ = {
			isa = PBXReferenceProxy;
			fileType = archive.ar;
			path = "libSDWebImage+MKAnnotation.a";
			remoteRef = DA248D771954841D00390AB0 /* PBXContainerItemProxy */;
			sourceTree = BUILT_PRODUCTS_DIR;
		};
/* End PBXReferenceProxy section */

/* Begin PBXResourcesBuildPhase section */
		53761293155AB74D005750A4 /* Resources */ = {
			isa = PBXResourcesBuildPhase;
			buildActionMask = 2147483647;
			files = (
				537612B3155AB74D005750A4 /* MasterViewController.xib in Resources */,
				537612B6155AB74D005750A4 /* DetailViewController.xib in Resources */,
				53A2B50D155B155A00B12423 /* placeholder.png in Resources */,
				53A2B50E155B155A00B12423 /* placeholder@2x.png in Resources */,
				53EEC18916484553007601E1 /* Default-568h@2x.png in Resources */,
				3E75A9861742DBE700DA412D /* CustomPathImages in Resources */,
			);
			runOnlyForDeploymentPostprocessing = 0;
		};
/* End PBXResourcesBuildPhase section */

/* Begin PBXSourcesBuildPhase section */
		53761291155AB74D005750A4 /* Sources */ = {
			isa = PBXSourcesBuildPhase;
			buildActionMask = 2147483647;
			files = (
				537612A6155AB74D005750A4 /* main.m in Sources */,
				537612AA155AB74D005750A4 /* AppDelegate.m in Sources */,
				537612AD155AB74D005750A4 /* MasterViewController.m in Sources */,
				537612B0155AB74D005750A4 /* DetailViewController.m in Sources */,
			);
			runOnlyForDeploymentPostprocessing = 0;
		};
/* End PBXSourcesBuildPhase section */

/* Begin PBXVariantGroup section */
		537612B1155AB74D005750A4 /* MasterViewController.xib */ = {
			isa = PBXVariantGroup;
			children = (
				537612B2155AB74D005750A4 /* en */,
			);
			name = MasterViewController.xib;
			sourceTree = "<group>";
		};
		537612B4155AB74D005750A4 /* DetailViewController.xib */ = {
			isa = PBXVariantGroup;
			children = (
				537612B5155AB74D005750A4 /* en */,
			);
			name = DetailViewController.xib;
			sourceTree = "<group>";
		};
/* End PBXVariantGroup section */

/* Begin XCBuildConfiguration section */
		537612B7155AB74D005750A4 /* Debug */ = {
			isa = XCBuildConfiguration;
			buildSettings = {
				ALWAYS_SEARCH_USER_PATHS = NO;
				CLANG_ENABLE_OBJC_ARC = YES;
				"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
				COPY_PHASE_STRIP = NO;
				GCC_C_LANGUAGE_STANDARD = "compiler-default";
				GCC_DYNAMIC_NO_PIC = NO;
				GCC_OPTIMIZATION_LEVEL = 0;
				GCC_PREPROCESSOR_DEFINITIONS = (
					"DEBUG=1",
					"$(inherited)",
				);
				GCC_SYMBOLS_PRIVATE_EXTERN = NO;
				GCC_VERSION = "";
				GCC_WARN_ABOUT_RETURN_TYPE = YES;
				GCC_WARN_UNINITIALIZED_AUTOS = YES;
				GCC_WARN_UNUSED_VARIABLE = YES;
				IPHONEOS_DEPLOYMENT_TARGET = 5.0;
				ONLY_ACTIVE_ARCH = YES;
				SDKROOT = iphoneos;
			};
			name = Debug;
		};
		537612B8155AB74D005750A4 /* Release */ = {
			isa = XCBuildConfiguration;
			buildSettings = {
				ALWAYS_SEARCH_USER_PATHS = NO;
				CLANG_ENABLE_OBJC_ARC = YES;
				"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
				COPY_PHASE_STRIP = YES;
				GCC_C_LANGUAGE_STANDARD = "compiler-default";
				GCC_VERSION = "";
				GCC_WARN_ABOUT_RETURN_TYPE = YES;
				GCC_WARN_UNINITIALIZED_AUTOS = YES;
				GCC_WARN_UNUSED_VARIABLE = YES;
				IPHONEOS_DEPLOYMENT_TARGET = 5.0;
				OTHER_CFLAGS = "-DNS_BLOCK_ASSERTIONS=1";
				SDKROOT = iphoneos;
				VALIDATE_PRODUCT = YES;
			};
			name = Release;
		};
		537612BA155AB74D005750A4 /* Debug */ = {
			isa = XCBuildConfiguration;
			buildSettings = {
				FRAMEWORK_SEARCH_PATHS = (
					"$(inherited)",
					"\"$(SRCROOT)\"",
				);
				GCC_PRECOMPILE_PREFIX_HEADER = YES;
				GCC_PREFIX_HEADER = "SDWebImage Demo/SDWebImage Demo-Prefix.pch";
				GCC_PREPROCESSOR_DEFINITIONS = "DEBUG=1";
				HEADER_SEARCH_PATHS = (
					"\"$(OBJROOT)/UninstalledProducts/include\"",
					"\"$(TARGET_BUILD_DIR)/usr/local/lib/include\"",
				);
				INFOPLIST_FILE = "SDWebImage Demo/SDWebImage Demo-Info.plist";
				OTHER_CFLAGS = "";
				OTHER_LDFLAGS = "-ObjC";
				PRODUCT_NAME = "$(TARGET_NAME)";
				WRAPPER_EXTENSION = app;
			};
			name = Debug;
		};
		537612BB155AB74D005750A4 /* Release */ = {
			isa = XCBuildConfiguration;
			buildSettings = {
				FRAMEWORK_SEARCH_PATHS = (
					"$(inherited)",
					"\"$(SRCROOT)\"",
				);
				GCC_PRECOMPILE_PREFIX_HEADER = YES;
				GCC_PREFIX_HEADER = "SDWebImage Demo/SDWebImage Demo-Prefix.pch";
				GCC_PREPROCESSOR_DEFINITIONS = "";
				HEADER_SEARCH_PATHS = (
					"\"$(OBJROOT)/UninstalledProducts/include\"",
					"\"$(TARGET_BUILD_DIR)/usr/local/lib/include\"",
				);
				INFOPLIST_FILE = "SDWebImage Demo/SDWebImage Demo-Info.plist";
				OTHER_LDFLAGS = "-ObjC";
				PRODUCT_NAME = "$(TARGET_NAME)";
				WRAPPER_EXTENSION = app;
			};
			name = Release;
		};
/* End XCBuildConfiguration section */

/* Begin XCConfigurationList section */
		5376128F155AB74D005750A4 /* Build configuration list for PBXProject "SDWebImage Demo" */ = {
			isa = XCConfigurationList;
			buildConfigurations = (
				537612B7155AB74D005750A4 /* Debug */,
				537612B8155AB74D005750A4 /* Release */,
			);
			defaultConfigurationIsVisible = 0;
			defaultConfigurationName = Release;
		};
		537612B9155AB74D005750A4 /* Build configuration list for PBXNativeTarget "SDWebImage Demo" */ = {
			isa = XCConfigurationList;
			buildConfigurations = (
				537612BA155AB74D005750A4 /* Debug */,
				537612BB155AB74D005750A4 /* Release */,
			);
			defaultConfigurationIsVisible = 0;
			defaultConfigurationName = Release;
		};
/* End XCConfigurationList section */
	};
	rootObject = 5376128C155AB74D005750A4 /* Project object */;
}
