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

/* Begin PBXBuildFile section */
		57CEE31B0B674E20B43972E9 /* libPods.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 0304251BFD614405BA5AAB2C /* libPods.a */; };
		E5AE803B18DA83A400E0501F /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = E5AE803A18DA83A400E0501F /* Foundation.framework */; };
		E5AE803D18DA83A400E0501F /* CoreGraphics.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = E5AE803C18DA83A400E0501F /* CoreGraphics.framework */; };
		E5AE803F18DA83A400E0501F /* UIKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = E5AE803E18DA83A400E0501F /* UIKit.framework */; };
		E5AE804518DA83A400E0501F /* InfoPlist.strings in Resources */ = {isa = PBXBuildFile; fileRef = E5AE804318DA83A400E0501F /* InfoPlist.strings */; };
		E5AE804718DA83A400E0501F /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = E5AE804618DA83A400E0501F /* main.m */; };
		E5AE804B18DA83A400E0501F /* AppDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = E5AE804A18DA83A400E0501F /* AppDelegate.m */; };
		E5AE804E18DA83A400E0501F /* Main.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = E5AE804C18DA83A400E0501F /* Main.storyboard */; };
		E5AE805118DA83A400E0501F /* ViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = E5AE805018DA83A400E0501F /* ViewController.m */; };
		E5AE805318DA83A400E0501F /* Images.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = E5AE805218DA83A400E0501F /* Images.xcassets */; };
		E5AE805A18DA83A400E0501F /* XCTest.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = E5AE805918DA83A400E0501F /* XCTest.framework */; };
		E5AE805B18DA83A500E0501F /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = E5AE803A18DA83A400E0501F /* Foundation.framework */; };
		E5AE805C18DA83A500E0501F /* UIKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = E5AE803E18DA83A400E0501F /* UIKit.framework */; };
		E5AE806418DA83A500E0501F /* InfoPlist.strings in Resources */ = {isa = PBXBuildFile; fileRef = E5AE806218DA83A500E0501F /* InfoPlist.strings */; };
		E5AE806618DA83A500E0501F /* CaptureASLTests.m in Sources */ = {isa = PBXBuildFile; fileRef = E5AE806518DA83A500E0501F /* CaptureASLTests.m */; };
/* End PBXBuildFile section */

/* Begin PBXContainerItemProxy section */
		E5AE805D18DA83A500E0501F /* PBXContainerItemProxy */ = {
			isa = PBXContainerItemProxy;
			containerPortal = E5AE802F18DA83A400E0501F /* Project object */;
			proxyType = 1;
			remoteGlobalIDString = E5AE803618DA83A400E0501F;
			remoteInfo = CaptureASL;
		};
/* End PBXContainerItemProxy section */

/* Begin PBXFileReference section */
		0304251BFD614405BA5AAB2C /* libPods.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = libPods.a; sourceTree = BUILT_PRODUCTS_DIR; };
		0820C8635EE745228F578C87 /* Pods.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = Pods.xcconfig; path = Pods/Pods.xcconfig; sourceTree = "<group>"; };
		E5AE803718DA83A400E0501F /* CaptureASL.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = CaptureASL.app; sourceTree = BUILT_PRODUCTS_DIR; };
		E5AE803A18DA83A400E0501F /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = System/Library/Frameworks/Foundation.framework; sourceTree = SDKROOT; };
		E5AE803C18DA83A400E0501F /* CoreGraphics.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreGraphics.framework; path = System/Library/Frameworks/CoreGraphics.framework; sourceTree = SDKROOT; };
		E5AE803E18DA83A400E0501F /* UIKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = UIKit.framework; path = System/Library/Frameworks/UIKit.framework; sourceTree = SDKROOT; };
		E5AE804218DA83A400E0501F /* CaptureASL-Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = "CaptureASL-Info.plist"; sourceTree = "<group>"; };
		E5AE804418DA83A400E0501F /* en */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = en; path = en.lproj/InfoPlist.strings; sourceTree = "<group>"; };
		E5AE804618DA83A400E0501F /* main.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = main.m; sourceTree = "<group>"; };
		E5AE804818DA83A400E0501F /* CaptureASL-Prefix.pch */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "CaptureASL-Prefix.pch"; sourceTree = "<group>"; };
		E5AE804918DA83A400E0501F /* AppDelegate.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = AppDelegate.h; sourceTree = "<group>"; };
		E5AE804A18DA83A400E0501F /* AppDelegate.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = AppDelegate.m; sourceTree = "<group>"; };
		E5AE804D18DA83A400E0501F /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/Main.storyboard; sourceTree = "<group>"; };
		E5AE804F18DA83A400E0501F /* ViewController.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = ViewController.h; sourceTree = "<group>"; };
		E5AE805018DA83A400E0501F /* ViewController.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = ViewController.m; sourceTree = "<group>"; };
		E5AE805218DA83A400E0501F /* Images.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Images.xcassets; sourceTree = "<group>"; };
		E5AE805818DA83A400E0501F /* CaptureASLTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = CaptureASLTests.xctest; sourceTree = BUILT_PRODUCTS_DIR; };
		E5AE805918DA83A400E0501F /* XCTest.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = XCTest.framework; path = Library/Frameworks/XCTest.framework; sourceTree = DEVELOPER_DIR; };
		E5AE806118DA83A500E0501F /* CaptureASLTests-Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = "CaptureASLTests-Info.plist"; sourceTree = "<group>"; };
		E5AE806318DA83A500E0501F /* en */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = en; path = en.lproj/InfoPlist.strings; sourceTree = "<group>"; };
		E5AE806518DA83A500E0501F /* CaptureASLTests.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = CaptureASLTests.m; sourceTree = "<group>"; };
/* End PBXFileReference section */

/* Begin PBXFrameworksBuildPhase section */
		E5AE803418DA83A400E0501F /* Frameworks */ = {
			isa = PBXFrameworksBuildPhase;
			buildActionMask = 2147483647;
			files = (
				E5AE803D18DA83A400E0501F /* CoreGraphics.framework in Frameworks */,
				E5AE803F18DA83A400E0501F /* UIKit.framework in Frameworks */,
				E5AE803B18DA83A400E0501F /* Foundation.framework in Frameworks */,
				57CEE31B0B674E20B43972E9 /* libPods.a in Frameworks */,
			);
			runOnlyForDeploymentPostprocessing = 0;
		};
		E5AE805518DA83A400E0501F /* Frameworks */ = {
			isa = PBXFrameworksBuildPhase;
			buildActionMask = 2147483647;
			files = (
				E5AE805A18DA83A400E0501F /* XCTest.framework in Frameworks */,
				E5AE805C18DA83A500E0501F /* UIKit.framework in Frameworks */,
				E5AE805B18DA83A500E0501F /* Foundation.framework in Frameworks */,
			);
			runOnlyForDeploymentPostprocessing = 0;
		};
/* End PBXFrameworksBuildPhase section */

/* Begin PBXGroup section */
		E5AE802E18DA83A400E0501F = {
			isa = PBXGroup;
			children = (
				E5AE804018DA83A400E0501F /* CaptureASL */,
				E5AE805F18DA83A500E0501F /* CaptureASLTests */,
				E5AE803918DA83A400E0501F /* Frameworks */,
				E5AE803818DA83A400E0501F /* Products */,
				0820C8635EE745228F578C87 /* Pods.xcconfig */,
			);
			sourceTree = "<group>";
		};
		E5AE803818DA83A400E0501F /* Products */ = {
			isa = PBXGroup;
			children = (
				E5AE803718DA83A400E0501F /* CaptureASL.app */,
				E5AE805818DA83A400E0501F /* CaptureASLTests.xctest */,
			);
			name = Products;
			sourceTree = "<group>";
		};
		E5AE803918DA83A400E0501F /* Frameworks */ = {
			isa = PBXGroup;
			children = (
				E5AE803A18DA83A400E0501F /* Foundation.framework */,
				E5AE803C18DA83A400E0501F /* CoreGraphics.framework */,
				E5AE803E18DA83A400E0501F /* UIKit.framework */,
				E5AE805918DA83A400E0501F /* XCTest.framework */,
				0304251BFD614405BA5AAB2C /* libPods.a */,
			);
			name = Frameworks;
			sourceTree = "<group>";
		};
		E5AE804018DA83A400E0501F /* CaptureASL */ = {
			isa = PBXGroup;
			children = (
				E5AE804918DA83A400E0501F /* AppDelegate.h */,
				E5AE804A18DA83A400E0501F /* AppDelegate.m */,
				E5AE804C18DA83A400E0501F /* Main.storyboard */,
				E5AE804F18DA83A400E0501F /* ViewController.h */,
				E5AE805018DA83A400E0501F /* ViewController.m */,
				E5AE805218DA83A400E0501F /* Images.xcassets */,
				E5AE804118DA83A400E0501F /* Supporting Files */,
			);
			path = CaptureASL;
			sourceTree = "<group>";
		};
		E5AE804118DA83A400E0501F /* Supporting Files */ = {
			isa = PBXGroup;
			children = (
				E5AE804218DA83A400E0501F /* CaptureASL-Info.plist */,
				E5AE804318DA83A400E0501F /* InfoPlist.strings */,
				E5AE804618DA83A400E0501F /* main.m */,
				E5AE804818DA83A400E0501F /* CaptureASL-Prefix.pch */,
			);
			name = "Supporting Files";
			sourceTree = "<group>";
		};
		E5AE805F18DA83A500E0501F /* CaptureASLTests */ = {
			isa = PBXGroup;
			children = (
				E5AE806518DA83A500E0501F /* CaptureASLTests.m */,
				E5AE806018DA83A500E0501F /* Supporting Files */,
			);
			path = CaptureASLTests;
			sourceTree = "<group>";
		};
		E5AE806018DA83A500E0501F /* Supporting Files */ = {
			isa = PBXGroup;
			children = (
				E5AE806118DA83A500E0501F /* CaptureASLTests-Info.plist */,
				E5AE806218DA83A500E0501F /* InfoPlist.strings */,
			);
			name = "Supporting Files";
			sourceTree = "<group>";
		};
/* End PBXGroup section */

/* Begin PBXNativeTarget section */
		E5AE803618DA83A400E0501F /* CaptureASL */ = {
			isa = PBXNativeTarget;
			buildConfigurationList = E5AE806918DA83A500E0501F /* Build configuration list for PBXNativeTarget "CaptureASL" */;
			buildPhases = (
				F5E87D2C35224932B7B01D44 /* Check Pods Manifest.lock */,
				E5AE803318DA83A400E0501F /* Sources */,
				E5AE803418DA83A400E0501F /* Frameworks */,
				E5AE803518DA83A400E0501F /* Resources */,
				3C38B447E7BD4E5EA6361538 /* Copy Pods Resources */,
			);
			buildRules = (
			);
			dependencies = (
			);
			name = CaptureASL;
			productName = CaptureASL;
			productReference = E5AE803718DA83A400E0501F /* CaptureASL.app */;
			productType = "com.apple.product-type.application";
		};
		E5AE805718DA83A400E0501F /* CaptureASLTests */ = {
			isa = PBXNativeTarget;
			buildConfigurationList = E5AE806C18DA83A500E0501F /* Build configuration list for PBXNativeTarget "CaptureASLTests" */;
			buildPhases = (
				E5AE805418DA83A400E0501F /* Sources */,
				E5AE805518DA83A400E0501F /* Frameworks */,
				E5AE805618DA83A400E0501F /* Resources */,
			);
			buildRules = (
			);
			dependencies = (
				E5AE805E18DA83A500E0501F /* PBXTargetDependency */,
			);
			name = CaptureASLTests;
			productName = CaptureASLTests;
			productReference = E5AE805818DA83A400E0501F /* CaptureASLTests.xctest */;
			productType = "com.apple.product-type.bundle.unit-test";
		};
/* End PBXNativeTarget section */

/* Begin PBXProject section */
		E5AE802F18DA83A400E0501F /* Project object */ = {
			isa = PBXProject;
			attributes = {
				LastUpgradeCheck = 0510;
				TargetAttributes = {
					E5AE805718DA83A400E0501F = {
						TestTargetID = E5AE803618DA83A400E0501F;
					};
				};
			};
			buildConfigurationList = E5AE803218DA83A400E0501F /* Build configuration list for PBXProject "CaptureASL" */;
			compatibilityVersion = "Xcode 3.2";
			developmentRegion = English;
			hasScannedForEncodings = 0;
			knownRegions = (
				en,
				Base,
			);
			mainGroup = E5AE802E18DA83A400E0501F;
			productRefGroup = E5AE803818DA83A400E0501F /* Products */;
			projectDirPath = "";
			projectRoot = "";
			targets = (
				E5AE803618DA83A400E0501F /* CaptureASL */,
				E5AE805718DA83A400E0501F /* CaptureASLTests */,
			);
		};
/* End PBXProject section */

/* Begin PBXResourcesBuildPhase section */
		E5AE803518DA83A400E0501F /* Resources */ = {
			isa = PBXResourcesBuildPhase;
			buildActionMask = 2147483647;
			files = (
				E5AE805318DA83A400E0501F /* Images.xcassets in Resources */,
				E5AE804518DA83A400E0501F /* InfoPlist.strings in Resources */,
				E5AE804E18DA83A400E0501F /* Main.storyboard in Resources */,
			);
			runOnlyForDeploymentPostprocessing = 0;
		};
		E5AE805618DA83A400E0501F /* Resources */ = {
			isa = PBXResourcesBuildPhase;
			buildActionMask = 2147483647;
			files = (
				E5AE806418DA83A500E0501F /* InfoPlist.strings in Resources */,
			);
			runOnlyForDeploymentPostprocessing = 0;
		};
/* End PBXResourcesBuildPhase section */

/* Begin PBXShellScriptBuildPhase section */
		3C38B447E7BD4E5EA6361538 /* Copy Pods Resources */ = {
			isa = PBXShellScriptBuildPhase;
			buildActionMask = 2147483647;
			files = (
			);
			inputPaths = (
			);
			name = "Copy Pods Resources";
			outputPaths = (
			);
			runOnlyForDeploymentPostprocessing = 0;
			shellPath = /bin/sh;
			shellScript = "\"${SRCROOT}/Pods/Pods-resources.sh\"\n";
			showEnvVarsInLog = 0;
		};
		F5E87D2C35224932B7B01D44 /* Check Pods Manifest.lock */ = {
			isa = PBXShellScriptBuildPhase;
			buildActionMask = 2147483647;
			files = (
			);
			inputPaths = (
			);
			name = "Check Pods Manifest.lock";
			outputPaths = (
			);
			runOnlyForDeploymentPostprocessing = 0;
			shellPath = /bin/sh;
			shellScript = "diff \"${PODS_ROOT}/../Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [[ $? != 0 ]] ; then\n    cat << EOM\nerror: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\nEOM\n    exit 1\nfi\n";
			showEnvVarsInLog = 0;
		};
/* End PBXShellScriptBuildPhase section */

/* Begin PBXSourcesBuildPhase section */
		E5AE803318DA83A400E0501F /* Sources */ = {
			isa = PBXSourcesBuildPhase;
			buildActionMask = 2147483647;
			files = (
				E5AE805118DA83A400E0501F /* ViewController.m in Sources */,
				E5AE804B18DA83A400E0501F /* AppDelegate.m in Sources */,
				E5AE804718DA83A400E0501F /* main.m in Sources */,
			);
			runOnlyForDeploymentPostprocessing = 0;
		};
		E5AE805418DA83A400E0501F /* Sources */ = {
			isa = PBXSourcesBuildPhase;
			buildActionMask = 2147483647;
			files = (
				E5AE806618DA83A500E0501F /* CaptureASLTests.m in Sources */,
			);
			runOnlyForDeploymentPostprocessing = 0;
		};
/* End PBXSourcesBuildPhase section */

/* Begin PBXTargetDependency section */
		E5AE805E18DA83A500E0501F /* PBXTargetDependency */ = {
			isa = PBXTargetDependency;
			target = E5AE803618DA83A400E0501F /* CaptureASL */;
			targetProxy = E5AE805D18DA83A500E0501F /* PBXContainerItemProxy */;
		};
/* End PBXTargetDependency section */

/* Begin PBXVariantGroup section */
		E5AE804318DA83A400E0501F /* InfoPlist.strings */ = {
			isa = PBXVariantGroup;
			children = (
				E5AE804418DA83A400E0501F /* en */,
			);
			name = InfoPlist.strings;
			sourceTree = "<group>";
		};
		E5AE804C18DA83A400E0501F /* Main.storyboard */ = {
			isa = PBXVariantGroup;
			children = (
				E5AE804D18DA83A400E0501F /* Base */,
			);
			name = Main.storyboard;
			sourceTree = "<group>";
		};
		E5AE806218DA83A500E0501F /* InfoPlist.strings */ = {
			isa = PBXVariantGroup;
			children = (
				E5AE806318DA83A500E0501F /* en */,
			);
			name = InfoPlist.strings;
			sourceTree = "<group>";
		};
/* End PBXVariantGroup section */

/* Begin XCBuildConfiguration section */
		E5AE806718DA83A500E0501F /* Debug */ = {
			isa = XCBuildConfiguration;
			buildSettings = {
				ALWAYS_SEARCH_USER_PATHS = NO;
				CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x";
				CLANG_CXX_LIBRARY = "libc++";
				CLANG_ENABLE_MODULES = YES;
				CLANG_ENABLE_OBJC_ARC = YES;
				CLANG_WARN_BOOL_CONVERSION = YES;
				CLANG_WARN_CONSTANT_CONVERSION = YES;
				CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
				CLANG_WARN_EMPTY_BODY = YES;
				CLANG_WARN_ENUM_CONVERSION = YES;
				CLANG_WARN_INT_CONVERSION = YES;
				CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
				CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
				"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
				COPY_PHASE_STRIP = NO;
				GCC_C_LANGUAGE_STANDARD = gnu99;
				GCC_DYNAMIC_NO_PIC = NO;
				GCC_OPTIMIZATION_LEVEL = 0;
				GCC_PREPROCESSOR_DEFINITIONS = (
					"DEBUG=1",
					"$(inherited)",
				);
				GCC_SYMBOLS_PRIVATE_EXTERN = NO;
				GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
				GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
				GCC_WARN_UNDECLARED_SELECTOR = YES;
				GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
				GCC_WARN_UNUSED_FUNCTION = YES;
				GCC_WARN_UNUSED_VARIABLE = YES;
				IPHONEOS_DEPLOYMENT_TARGET = 7.1;
				ONLY_ACTIVE_ARCH = YES;
				SDKROOT = iphoneos;
			};
			name = Debug;
		};
		E5AE806818DA83A500E0501F /* Release */ = {
			isa = XCBuildConfiguration;
			buildSettings = {
				ALWAYS_SEARCH_USER_PATHS = NO;
				CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x";
				CLANG_CXX_LIBRARY = "libc++";
				CLANG_ENABLE_MODULES = YES;
				CLANG_ENABLE_OBJC_ARC = YES;
				CLANG_WARN_BOOL_CONVERSION = YES;
				CLANG_WARN_CONSTANT_CONVERSION = YES;
				CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
				CLANG_WARN_EMPTY_BODY = YES;
				CLANG_WARN_ENUM_CONVERSION = YES;
				CLANG_WARN_INT_CONVERSION = YES;
				CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
				CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
				"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
				COPY_PHASE_STRIP = YES;
				ENABLE_NS_ASSERTIONS = NO;
				GCC_C_LANGUAGE_STANDARD = gnu99;
				GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
				GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
				GCC_WARN_UNDECLARED_SELECTOR = YES;
				GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
				GCC_WARN_UNUSED_FUNCTION = YES;
				GCC_WARN_UNUSED_VARIABLE = YES;
				IPHONEOS_DEPLOYMENT_TARGET = 7.1;
				SDKROOT = iphoneos;
				VALIDATE_PRODUCT = YES;
			};
			name = Release;
		};
		E5AE806A18DA83A500E0501F /* Debug */ = {
			isa = XCBuildConfiguration;
			baseConfigurationReference = 0820C8635EE745228F578C87 /* Pods.xcconfig */;
			buildSettings = {
				ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
				ASSETCATALOG_COMPILER_LAUNCHIMAGE_NAME = LaunchImage;
				GCC_PRECOMPILE_PREFIX_HEADER = YES;
				GCC_PREFIX_HEADER = "CaptureASL/CaptureASL-Prefix.pch";
				INFOPLIST_FILE = "CaptureASL/CaptureASL-Info.plist";
				IPHONEOS_DEPLOYMENT_TARGET = 6.0;
				PRODUCT_NAME = "$(TARGET_NAME)";
				WRAPPER_EXTENSION = app;
			};
			name = Debug;
		};
		E5AE806B18DA83A500E0501F /* Release */ = {
			isa = XCBuildConfiguration;
			baseConfigurationReference = 0820C8635EE745228F578C87 /* Pods.xcconfig */;
			buildSettings = {
				ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
				ASSETCATALOG_COMPILER_LAUNCHIMAGE_NAME = LaunchImage;
				GCC_PRECOMPILE_PREFIX_HEADER = YES;
				GCC_PREFIX_HEADER = "CaptureASL/CaptureASL-Prefix.pch";
				INFOPLIST_FILE = "CaptureASL/CaptureASL-Info.plist";
				IPHONEOS_DEPLOYMENT_TARGET = 6.0;
				PRODUCT_NAME = "$(TARGET_NAME)";
				WRAPPER_EXTENSION = app;
			};
			name = Release;
		};
		E5AE806D18DA83A500E0501F /* Debug */ = {
			isa = XCBuildConfiguration;
			buildSettings = {
				BUNDLE_LOADER = "$(BUILT_PRODUCTS_DIR)/CaptureASL.app/CaptureASL";
				FRAMEWORK_SEARCH_PATHS = (
					"$(SDKROOT)/Developer/Library/Frameworks",
					"$(inherited)",
					"$(DEVELOPER_FRAMEWORKS_DIR)",
				);
				GCC_PRECOMPILE_PREFIX_HEADER = YES;
				GCC_PREFIX_HEADER = "CaptureASL/CaptureASL-Prefix.pch";
				GCC_PREPROCESSOR_DEFINITIONS = (
					"DEBUG=1",
					"$(inherited)",
				);
				INFOPLIST_FILE = "CaptureASLTests/CaptureASLTests-Info.plist";
				PRODUCT_NAME = "$(TARGET_NAME)";
				TEST_HOST = "$(BUNDLE_LOADER)";
				WRAPPER_EXTENSION = xctest;
			};
			name = Debug;
		};
		E5AE806E18DA83A500E0501F /* Release */ = {
			isa = XCBuildConfiguration;
			buildSettings = {
				BUNDLE_LOADER = "$(BUILT_PRODUCTS_DIR)/CaptureASL.app/CaptureASL";
				FRAMEWORK_SEARCH_PATHS = (
					"$(SDKROOT)/Developer/Library/Frameworks",
					"$(inherited)",
					"$(DEVELOPER_FRAMEWORKS_DIR)",
				);
				GCC_PRECOMPILE_PREFIX_HEADER = YES;
				GCC_PREFIX_HEADER = "CaptureASL/CaptureASL-Prefix.pch";
				INFOPLIST_FILE = "CaptureASLTests/CaptureASLTests-Info.plist";
				PRODUCT_NAME = "$(TARGET_NAME)";
				TEST_HOST = "$(BUNDLE_LOADER)";
				WRAPPER_EXTENSION = xctest;
			};
			name = Release;
		};
/* End XCBuildConfiguration section */

/* Begin XCConfigurationList section */
		E5AE803218DA83A400E0501F /* Build configuration list for PBXProject "CaptureASL" */ = {
			isa = XCConfigurationList;
			buildConfigurations = (
				E5AE806718DA83A500E0501F /* Debug */,
				E5AE806818DA83A500E0501F /* Release */,
			);
			defaultConfigurationIsVisible = 0;
			defaultConfigurationName = Release;
		};
		E5AE806918DA83A500E0501F /* Build configuration list for PBXNativeTarget "CaptureASL" */ = {
			isa = XCConfigurationList;
			buildConfigurations = (
				E5AE806A18DA83A500E0501F /* Debug */,
				E5AE806B18DA83A500E0501F /* Release */,
			);
			defaultConfigurationIsVisible = 0;
			defaultConfigurationName = Release;
		};
		E5AE806C18DA83A500E0501F /* Build configuration list for PBXNativeTarget "CaptureASLTests" */ = {
			isa = XCConfigurationList;
			buildConfigurations = (
				E5AE806D18DA83A500E0501F /* Debug */,
				E5AE806E18DA83A500E0501F /* Release */,
			);
			defaultConfigurationIsVisible = 0;
			defaultConfigurationName = Release;
		};
/* End XCConfigurationList section */
	};
	rootObject = E5AE802F18DA83A400E0501F /* Project object */;
}
