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

/* Begin PBXBuildFile section */
		DC25B76B146A0294000F32F4 /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = DC25B76A146A0294000F32F4 /* Cocoa.framework */; };
		DC25B775146A0294000F32F4 /* InfoPlist.strings in Resources */ = {isa = PBXBuildFile; fileRef = DC25B773146A0294000F32F4 /* InfoPlist.strings */; };
		DC25B777146A0294000F32F4 /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = DC25B776146A0294000F32F4 /* main.m */; };
		DC25B77B146A0294000F32F4 /* Credits.rtf in Resources */ = {isa = PBXBuildFile; fileRef = DC25B779146A0294000F32F4 /* Credits.rtf */; };
		DC25B77E146A0294000F32F4 /* AppDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = DC25B77D146A0294000F32F4 /* AppDelegate.m */; };
		DC25B781146A0295000F32F4 /* MainMenu.xib in Resources */ = {isa = PBXBuildFile; fileRef = DC25B77F146A0295000F32F4 /* MainMenu.xib */; };
		DC25B799146A02B6000F32F4 /* DDAbstractDatabaseLogger.m in Sources */ = {isa = PBXBuildFile; fileRef = DC25B78A146A02B6000F32F4 /* DDAbstractDatabaseLogger.m */; };
		DC25B79A146A02B6000F32F4 /* DDASLLogger.m in Sources */ = {isa = PBXBuildFile; fileRef = DC25B78C146A02B6000F32F4 /* DDASLLogger.m */; };
		DC25B79B146A02B6000F32F4 /* DDFileLogger.m in Sources */ = {isa = PBXBuildFile; fileRef = DC25B78E146A02B6000F32F4 /* DDFileLogger.m */; };
		DC25B79C146A02B6000F32F4 /* DDLog.m in Sources */ = {isa = PBXBuildFile; fileRef = DC25B790146A02B6000F32F4 /* DDLog.m */; };
		DC25B79D146A02B6000F32F4 /* DDTTYLogger.m in Sources */ = {isa = PBXBuildFile; fileRef = DC25B792146A02B6000F32F4 /* DDTTYLogger.m */; };
		DC25B79E146A02B6000F32F4 /* DDContextFilterLogFormatter.m in Sources */ = {isa = PBXBuildFile; fileRef = DC25B795146A02B6000F32F4 /* DDContextFilterLogFormatter.m */; };
		DC25B79F146A02B6000F32F4 /* DDDispatchQueueLogFormatter.m in Sources */ = {isa = PBXBuildFile; fileRef = DC25B797146A02B6000F32F4 /* DDDispatchQueueLogFormatter.m */; };
		DC25B7A0146A02B6000F32F4 /* README.txt in Resources */ = {isa = PBXBuildFile; fileRef = DC25B798146A02B6000F32F4 /* README.txt */; };
/* End PBXBuildFile section */

/* Begin PBXFileReference section */
		DC25B766146A0294000F32F4 /* DispatchQueueLogger.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = DispatchQueueLogger.app; sourceTree = BUILT_PRODUCTS_DIR; };
		DC25B76A146A0294000F32F4 /* Cocoa.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Cocoa.framework; path = System/Library/Frameworks/Cocoa.framework; sourceTree = SDKROOT; };
		DC25B76D146A0294000F32F4 /* AppKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AppKit.framework; path = System/Library/Frameworks/AppKit.framework; sourceTree = SDKROOT; };
		DC25B76E146A0294000F32F4 /* CoreData.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreData.framework; path = System/Library/Frameworks/CoreData.framework; sourceTree = SDKROOT; };
		DC25B76F146A0294000F32F4 /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = System/Library/Frameworks/Foundation.framework; sourceTree = SDKROOT; };
		DC25B772146A0294000F32F4 /* DispatchQueueLogger-Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = "DispatchQueueLogger-Info.plist"; sourceTree = "<group>"; };
		DC25B774146A0294000F32F4 /* en */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = en; path = en.lproj/InfoPlist.strings; sourceTree = "<group>"; };
		DC25B776146A0294000F32F4 /* main.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = main.m; sourceTree = "<group>"; };
		DC25B778146A0294000F32F4 /* DispatchQueueLogger-Prefix.pch */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "DispatchQueueLogger-Prefix.pch"; sourceTree = "<group>"; };
		DC25B77A146A0294000F32F4 /* en */ = {isa = PBXFileReference; lastKnownFileType = text.rtf; name = en; path = en.lproj/Credits.rtf; sourceTree = "<group>"; };
		DC25B77C146A0294000F32F4 /* AppDelegate.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = AppDelegate.h; sourceTree = "<group>"; };
		DC25B77D146A0294000F32F4 /* AppDelegate.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = AppDelegate.m; sourceTree = "<group>"; };
		DC25B780146A0295000F32F4 /* en */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = en; path = en.lproj/MainMenu.xib; sourceTree = "<group>"; };
		DC25B789146A02B6000F32F4 /* DDAbstractDatabaseLogger.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = DDAbstractDatabaseLogger.h; sourceTree = "<group>"; };
		DC25B78A146A02B6000F32F4 /* DDAbstractDatabaseLogger.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = DDAbstractDatabaseLogger.m; sourceTree = "<group>"; };
		DC25B78B146A02B6000F32F4 /* DDASLLogger.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = DDASLLogger.h; sourceTree = "<group>"; };
		DC25B78C146A02B6000F32F4 /* DDASLLogger.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = DDASLLogger.m; sourceTree = "<group>"; };
		DC25B78D146A02B6000F32F4 /* DDFileLogger.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = DDFileLogger.h; sourceTree = "<group>"; };
		DC25B78E146A02B6000F32F4 /* DDFileLogger.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = DDFileLogger.m; sourceTree = "<group>"; };
		DC25B78F146A02B6000F32F4 /* DDLog.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = DDLog.h; sourceTree = "<group>"; };
		DC25B790146A02B6000F32F4 /* DDLog.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = DDLog.m; sourceTree = "<group>"; };
		DC25B791146A02B6000F32F4 /* DDTTYLogger.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = DDTTYLogger.h; sourceTree = "<group>"; };
		DC25B792146A02B6000F32F4 /* DDTTYLogger.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = DDTTYLogger.m; sourceTree = "<group>"; };
		DC25B794146A02B6000F32F4 /* DDContextFilterLogFormatter.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = DDContextFilterLogFormatter.h; sourceTree = "<group>"; };
		DC25B795146A02B6000F32F4 /* DDContextFilterLogFormatter.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = DDContextFilterLogFormatter.m; sourceTree = "<group>"; };
		DC25B796146A02B6000F32F4 /* DDDispatchQueueLogFormatter.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = DDDispatchQueueLogFormatter.h; sourceTree = "<group>"; };
		DC25B797146A02B6000F32F4 /* DDDispatchQueueLogFormatter.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = DDDispatchQueueLogFormatter.m; sourceTree = "<group>"; };
		DC25B798146A02B6000F32F4 /* README.txt */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = README.txt; sourceTree = "<group>"; };
/* End PBXFileReference section */

/* Begin PBXFrameworksBuildPhase section */
		DC25B763146A0294000F32F4 /* Frameworks */ = {
			isa = PBXFrameworksBuildPhase;
			buildActionMask = 2147483647;
			files = (
				DC25B76B146A0294000F32F4 /* Cocoa.framework in Frameworks */,
			);
			runOnlyForDeploymentPostprocessing = 0;
		};
/* End PBXFrameworksBuildPhase section */

/* Begin PBXGroup section */
		DC25B75B146A0294000F32F4 = {
			isa = PBXGroup;
			children = (
				DC25B788146A02B6000F32F4 /* Lumberjack */,
				DC25B770146A0294000F32F4 /* DispatchQueueLogger */,
				DC25B769146A0294000F32F4 /* Frameworks */,
				DC25B767146A0294000F32F4 /* Products */,
			);
			sourceTree = "<group>";
		};
		DC25B767146A0294000F32F4 /* Products */ = {
			isa = PBXGroup;
			children = (
				DC25B766146A0294000F32F4 /* DispatchQueueLogger.app */,
			);
			name = Products;
			sourceTree = "<group>";
		};
		DC25B769146A0294000F32F4 /* Frameworks */ = {
			isa = PBXGroup;
			children = (
				DC25B76A146A0294000F32F4 /* Cocoa.framework */,
				DC25B76C146A0294000F32F4 /* Other Frameworks */,
			);
			name = Frameworks;
			sourceTree = "<group>";
		};
		DC25B76C146A0294000F32F4 /* Other Frameworks */ = {
			isa = PBXGroup;
			children = (
				DC25B76D146A0294000F32F4 /* AppKit.framework */,
				DC25B76E146A0294000F32F4 /* CoreData.framework */,
				DC25B76F146A0294000F32F4 /* Foundation.framework */,
			);
			name = "Other Frameworks";
			sourceTree = "<group>";
		};
		DC25B770146A0294000F32F4 /* DispatchQueueLogger */ = {
			isa = PBXGroup;
			children = (
				DC25B77C146A0294000F32F4 /* AppDelegate.h */,
				DC25B77D146A0294000F32F4 /* AppDelegate.m */,
				DC25B77F146A0295000F32F4 /* MainMenu.xib */,
				DC25B771146A0294000F32F4 /* Supporting Files */,
			);
			path = DispatchQueueLogger;
			sourceTree = "<group>";
		};
		DC25B771146A0294000F32F4 /* Supporting Files */ = {
			isa = PBXGroup;
			children = (
				DC25B772146A0294000F32F4 /* DispatchQueueLogger-Info.plist */,
				DC25B773146A0294000F32F4 /* InfoPlist.strings */,
				DC25B776146A0294000F32F4 /* main.m */,
				DC25B778146A0294000F32F4 /* DispatchQueueLogger-Prefix.pch */,
				DC25B779146A0294000F32F4 /* Credits.rtf */,
			);
			name = "Supporting Files";
			sourceTree = "<group>";
		};
		DC25B788146A02B6000F32F4 /* Lumberjack */ = {
			isa = PBXGroup;
			children = (
				DC25B789146A02B6000F32F4 /* DDAbstractDatabaseLogger.h */,
				DC25B78A146A02B6000F32F4 /* DDAbstractDatabaseLogger.m */,
				DC25B78B146A02B6000F32F4 /* DDASLLogger.h */,
				DC25B78C146A02B6000F32F4 /* DDASLLogger.m */,
				DC25B78D146A02B6000F32F4 /* DDFileLogger.h */,
				DC25B78E146A02B6000F32F4 /* DDFileLogger.m */,
				DC25B78F146A02B6000F32F4 /* DDLog.h */,
				DC25B790146A02B6000F32F4 /* DDLog.m */,
				DC25B791146A02B6000F32F4 /* DDTTYLogger.h */,
				DC25B792146A02B6000F32F4 /* DDTTYLogger.m */,
				DC25B793146A02B6000F32F4 /* Extensions */,
			);
			name = Lumberjack;
			path = ../../Lumberjack;
			sourceTree = "<group>";
		};
		DC25B793146A02B6000F32F4 /* Extensions */ = {
			isa = PBXGroup;
			children = (
				DC25B794146A02B6000F32F4 /* DDContextFilterLogFormatter.h */,
				DC25B795146A02B6000F32F4 /* DDContextFilterLogFormatter.m */,
				DC25B796146A02B6000F32F4 /* DDDispatchQueueLogFormatter.h */,
				DC25B797146A02B6000F32F4 /* DDDispatchQueueLogFormatter.m */,
				DC25B798146A02B6000F32F4 /* README.txt */,
			);
			path = Extensions;
			sourceTree = "<group>";
		};
/* End PBXGroup section */

/* Begin PBXNativeTarget section */
		DC25B765146A0294000F32F4 /* DispatchQueueLogger */ = {
			isa = PBXNativeTarget;
			buildConfigurationList = DC25B784146A0295000F32F4 /* Build configuration list for PBXNativeTarget "DispatchQueueLogger" */;
			buildPhases = (
				DC25B762146A0294000F32F4 /* Sources */,
				DC25B763146A0294000F32F4 /* Frameworks */,
				DC25B764146A0294000F32F4 /* Resources */,
			);
			buildRules = (
			);
			dependencies = (
			);
			name = DispatchQueueLogger;
			productName = DispatchQueueLogger;
			productReference = DC25B766146A0294000F32F4 /* DispatchQueueLogger.app */;
			productType = "com.apple.product-type.application";
		};
/* End PBXNativeTarget section */

/* Begin PBXProject section */
		DC25B75D146A0294000F32F4 /* Project object */ = {
			isa = PBXProject;
			attributes = {
				LastUpgradeCheck = 0500;
			};
			buildConfigurationList = DC25B760146A0294000F32F4 /* Build configuration list for PBXProject "DispatchQueueLogger" */;
			compatibilityVersion = "Xcode 3.2";
			developmentRegion = English;
			hasScannedForEncodings = 0;
			knownRegions = (
				en,
			);
			mainGroup = DC25B75B146A0294000F32F4;
			productRefGroup = DC25B767146A0294000F32F4 /* Products */;
			projectDirPath = "";
			projectRoot = "";
			targets = (
				DC25B765146A0294000F32F4 /* DispatchQueueLogger */,
			);
		};
/* End PBXProject section */

/* Begin PBXResourcesBuildPhase section */
		DC25B764146A0294000F32F4 /* Resources */ = {
			isa = PBXResourcesBuildPhase;
			buildActionMask = 2147483647;
			files = (
				DC25B775146A0294000F32F4 /* InfoPlist.strings in Resources */,
				DC25B77B146A0294000F32F4 /* Credits.rtf in Resources */,
				DC25B781146A0295000F32F4 /* MainMenu.xib in Resources */,
				DC25B7A0146A02B6000F32F4 /* README.txt in Resources */,
			);
			runOnlyForDeploymentPostprocessing = 0;
		};
/* End PBXResourcesBuildPhase section */

/* Begin PBXSourcesBuildPhase section */
		DC25B762146A0294000F32F4 /* Sources */ = {
			isa = PBXSourcesBuildPhase;
			buildActionMask = 2147483647;
			files = (
				DC25B777146A0294000F32F4 /* main.m in Sources */,
				DC25B77E146A0294000F32F4 /* AppDelegate.m in Sources */,
				DC25B799146A02B6000F32F4 /* DDAbstractDatabaseLogger.m in Sources */,
				DC25B79A146A02B6000F32F4 /* DDASLLogger.m in Sources */,
				DC25B79B146A02B6000F32F4 /* DDFileLogger.m in Sources */,
				DC25B79C146A02B6000F32F4 /* DDLog.m in Sources */,
				DC25B79D146A02B6000F32F4 /* DDTTYLogger.m in Sources */,
				DC25B79E146A02B6000F32F4 /* DDContextFilterLogFormatter.m in Sources */,
				DC25B79F146A02B6000F32F4 /* DDDispatchQueueLogFormatter.m in Sources */,
			);
			runOnlyForDeploymentPostprocessing = 0;
		};
/* End PBXSourcesBuildPhase section */

/* Begin PBXVariantGroup section */
		DC25B773146A0294000F32F4 /* InfoPlist.strings */ = {
			isa = PBXVariantGroup;
			children = (
				DC25B774146A0294000F32F4 /* en */,
			);
			name = InfoPlist.strings;
			sourceTree = "<group>";
		};
		DC25B779146A0294000F32F4 /* Credits.rtf */ = {
			isa = PBXVariantGroup;
			children = (
				DC25B77A146A0294000F32F4 /* en */,
			);
			name = Credits.rtf;
			sourceTree = "<group>";
		};
		DC25B77F146A0295000F32F4 /* MainMenu.xib */ = {
			isa = PBXVariantGroup;
			children = (
				DC25B780146A0295000F32F4 /* en */,
			);
			name = MainMenu.xib;
			sourceTree = "<group>";
		};
/* End PBXVariantGroup section */

/* Begin XCBuildConfiguration section */
		DC25B782146A0295000F32F4 /* Debug */ = {
			isa = XCBuildConfiguration;
			buildSettings = {
				ALWAYS_SEARCH_USER_PATHS = NO;
				CLANG_WARN_BOOL_CONVERSION = YES;
				CLANG_WARN_CONSTANT_CONVERSION = YES;
				CLANG_WARN_EMPTY_BODY = YES;
				CLANG_WARN_ENUM_CONVERSION = YES;
				CLANG_WARN_INT_CONVERSION = YES;
				CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
				COPY_PHASE_STRIP = NO;
				GCC_C_LANGUAGE_STANDARD = gnu99;
				GCC_DYNAMIC_NO_PIC = NO;
				GCC_ENABLE_OBJC_EXCEPTIONS = YES;
				GCC_OPTIMIZATION_LEVEL = 0;
				GCC_PREPROCESSOR_DEFINITIONS = (
					"DEBUG=1",
					"$(inherited)",
				);
				GCC_SYMBOLS_PRIVATE_EXTERN = NO;
				GCC_VERSION = com.apple.compilers.llvm.clang.1_0;
				GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
				GCC_WARN_ABOUT_MISSING_PROTOTYPES = YES;
				GCC_WARN_ABOUT_RETURN_TYPE = YES;
				GCC_WARN_UNDECLARED_SELECTOR = YES;
				GCC_WARN_UNINITIALIZED_AUTOS = YES;
				GCC_WARN_UNUSED_FUNCTION = YES;
				GCC_WARN_UNUSED_VARIABLE = YES;
				MACOSX_DEPLOYMENT_TARGET = 10.8;
				ONLY_ACTIVE_ARCH = YES;
				SDKROOT = macosx;
			};
			name = Debug;
		};
		DC25B783146A0295000F32F4 /* Release */ = {
			isa = XCBuildConfiguration;
			buildSettings = {
				ALWAYS_SEARCH_USER_PATHS = NO;
				CLANG_WARN_BOOL_CONVERSION = YES;
				CLANG_WARN_CONSTANT_CONVERSION = YES;
				CLANG_WARN_EMPTY_BODY = YES;
				CLANG_WARN_ENUM_CONVERSION = YES;
				CLANG_WARN_INT_CONVERSION = YES;
				CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
				COPY_PHASE_STRIP = YES;
				DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
				GCC_C_LANGUAGE_STANDARD = gnu99;
				GCC_ENABLE_OBJC_EXCEPTIONS = YES;
				GCC_VERSION = com.apple.compilers.llvm.clang.1_0;
				GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
				GCC_WARN_ABOUT_MISSING_PROTOTYPES = YES;
				GCC_WARN_ABOUT_RETURN_TYPE = YES;
				GCC_WARN_UNDECLARED_SELECTOR = YES;
				GCC_WARN_UNINITIALIZED_AUTOS = YES;
				GCC_WARN_UNUSED_FUNCTION = YES;
				GCC_WARN_UNUSED_VARIABLE = YES;
				MACOSX_DEPLOYMENT_TARGET = 10.8;
				SDKROOT = macosx;
			};
			name = Release;
		};
		DC25B785146A0295000F32F4 /* Debug */ = {
			isa = XCBuildConfiguration;
			buildSettings = {
				CLANG_ENABLE_OBJC_ARC = YES;
				COMBINE_HIDPI_IMAGES = YES;
				GCC_PRECOMPILE_PREFIX_HEADER = YES;
				GCC_PREFIX_HEADER = "DispatchQueueLogger/DispatchQueueLogger-Prefix.pch";
				INFOPLIST_FILE = "DispatchQueueLogger/DispatchQueueLogger-Info.plist";
				PRODUCT_NAME = "$(TARGET_NAME)";
				WRAPPER_EXTENSION = app;
			};
			name = Debug;
		};
		DC25B786146A0295000F32F4 /* Release */ = {
			isa = XCBuildConfiguration;
			buildSettings = {
				CLANG_ENABLE_OBJC_ARC = YES;
				COMBINE_HIDPI_IMAGES = YES;
				GCC_PRECOMPILE_PREFIX_HEADER = YES;
				GCC_PREFIX_HEADER = "DispatchQueueLogger/DispatchQueueLogger-Prefix.pch";
				INFOPLIST_FILE = "DispatchQueueLogger/DispatchQueueLogger-Info.plist";
				PRODUCT_NAME = "$(TARGET_NAME)";
				WRAPPER_EXTENSION = app;
			};
			name = Release;
		};
/* End XCBuildConfiguration section */

/* Begin XCConfigurationList section */
		DC25B760146A0294000F32F4 /* Build configuration list for PBXProject "DispatchQueueLogger" */ = {
			isa = XCConfigurationList;
			buildConfigurations = (
				DC25B782146A0295000F32F4 /* Debug */,
				DC25B783146A0295000F32F4 /* Release */,
			);
			defaultConfigurationIsVisible = 0;
			defaultConfigurationName = Release;
		};
		DC25B784146A0295000F32F4 /* Build configuration list for PBXNativeTarget "DispatchQueueLogger" */ = {
			isa = XCConfigurationList;
			buildConfigurations = (
				DC25B785146A0295000F32F4 /* Debug */,
				DC25B786146A0295000F32F4 /* Release */,
			);
			defaultConfigurationIsVisible = 0;
			defaultConfigurationName = Release;
		};
/* End XCConfigurationList section */
	};
	rootObject = DC25B75D146A0294000F32F4 /* Project object */;
}
