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

/* Begin PBXBuildFile section */
		6DA3F3EC0DE5D3D80039CADE /* gen_input.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 6D0FC7170DE5BA4D0026B02B /* gen_input.cpp */; };
		A1F593A60B8F042A00073279 /* square.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A1F593A50B8F042A00073279 /* square.cpp */; };
		A1F593B70B8F06F900073279 /* libtbb.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = A1F593B30B8F06F900073279 /* libtbb.dylib */; };
		A1F593BB0B8F072500073279 /* libtbb.dylib in CopyFiles */ = {isa = PBXBuildFile; fileRef = A1F593B30B8F06F900073279 /* libtbb.dylib */; };
/* End PBXBuildFile section */

/* Begin PBXContainerItemProxy section */
		6DA3F3ED0DE5D4090039CADE /* PBXContainerItemProxy */ = {
			isa = PBXContainerItemProxy;
			containerPortal = 08FB7793FE84155DC02AAC07 /* Project object */;
			proxyType = 1;
			remoteGlobalIDString = 6DA3F3E10DE5D34A0039CADE;
			remoteInfo = "gen-input";
		};
/* End PBXContainerItemProxy section */

/* Begin PBXCopyFilesBuildPhase section */
		8DD76F690486A84900D96B5E /* CopyFiles */ = {
			isa = PBXCopyFilesBuildPhase;
			buildActionMask = 12;
			dstPath = "";
			dstSubfolderSpec = 16;
			files = (
				A1F593BB0B8F072500073279 /* libtbb.dylib in CopyFiles */,
			);
			runOnlyForDeploymentPostprocessing = 0;
		};
/* End PBXCopyFilesBuildPhase section */

/* Begin PBXFileReference section */
		6D0FC7170DE5BA4D0026B02B /* gen_input.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = gen_input.cpp; path = ../gen_input.cpp; sourceTree = SOURCE_ROOT; };
		6DA3F3E20DE5D34A0039CADE /* gen-input */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.executable"; includeInIndex = 0; path = "gen-input"; sourceTree = BUILT_PRODUCTS_DIR; };
		8DD76F6C0486A84900D96B5E /* square */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.executable"; includeInIndex = 0; path = square; sourceTree = BUILT_PRODUCTS_DIR; };
		A1F593A50B8F042A00073279 /* square.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = square.cpp; path = ../square.cpp; sourceTree = SOURCE_ROOT; };
		A1F593B30B8F06F900073279 /* libtbb.dylib */ = {isa = PBXFileReference; lastKnownFileType = "compiled.mach-o.dylib"; name = libtbb.dylib; path = /Library/Frameworks/TBB.framework/Libraries/libtbb.dylib; sourceTree = "<absolute>"; };
/* End PBXFileReference section */

/* Begin PBXFrameworksBuildPhase section */
		6DA3F3E00DE5D34A0039CADE /* Frameworks */ = {
			isa = PBXFrameworksBuildPhase;
			buildActionMask = 2147483647;
			files = (
			);
			runOnlyForDeploymentPostprocessing = 0;
		};
		8DD76F660486A84900D96B5E /* Frameworks */ = {
			isa = PBXFrameworksBuildPhase;
			buildActionMask = 2147483647;
			files = (
				A1F593B70B8F06F900073279 /* libtbb.dylib in Frameworks */,
			);
			runOnlyForDeploymentPostprocessing = 0;
		};
/* End PBXFrameworksBuildPhase section */

/* Begin PBXGroup section */
		08FB7794FE84155DC02AAC07 /* square */ = {
			isa = PBXGroup;
			children = (
				08FB7795FE84155DC02AAC07 /* Source */,
				A1F593B20B8F06F900073279 /* External Frameworks and Libraries */,
				1AB674ADFE9D54B511CA2CBB /* Products */,
			);
			name = square;
			sourceTree = "<group>";
		};
		08FB7795FE84155DC02AAC07 /* Source */ = {
			isa = PBXGroup;
			children = (
				6D0FC7170DE5BA4D0026B02B /* gen_input.cpp */,
				A1F593A50B8F042A00073279 /* square.cpp */,
			);
			name = Source;
			sourceTree = "<group>";
		};
		1AB674ADFE9D54B511CA2CBB /* Products */ = {
			isa = PBXGroup;
			children = (
				8DD76F6C0486A84900D96B5E /* square */,
				6DA3F3E20DE5D34A0039CADE /* gen-input */,
			);
			name = Products;
			sourceTree = "<group>";
		};
		A1F593B20B8F06F900073279 /* External Frameworks and Libraries */ = {
			isa = PBXGroup;
			children = (
				A1F593B30B8F06F900073279 /* libtbb.dylib */,
			);
			name = "External Frameworks and Libraries";
			sourceTree = "<group>";
		};
/* End PBXGroup section */

/* Begin PBXNativeTarget section */
		6DA3F3E10DE5D34A0039CADE /* gen-input */ = {
			isa = PBXNativeTarget;
			buildConfigurationList = 6DA3F3E40DE5D36B0039CADE /* Build configuration list for PBXNativeTarget "gen-input" */;
			buildPhases = (
				6DA3F3DF0DE5D34A0039CADE /* Sources */,
				6DA3F3E00DE5D34A0039CADE /* Frameworks */,
			);
			buildRules = (
			);
			dependencies = (
			);
			name = "gen-input";
			productName = "gen-input";
			productReference = 6DA3F3E20DE5D34A0039CADE /* gen-input */;
			productType = "com.apple.product-type.tool";
		};
		8DD76F620486A84900D96B5E /* square */ = {
			isa = PBXNativeTarget;
			buildConfigurationList = 1DEB923108733DC60010E9CD /* Build configuration list for PBXNativeTarget "square" */;
			buildPhases = (
				8DD76F640486A84900D96B5E /* Sources */,
				8DD76F660486A84900D96B5E /* Frameworks */,
				8DD76F690486A84900D96B5E /* CopyFiles */,
				6D3576C90DE5C7A500C03B6D /* ShellScript */,
			);
			buildRules = (
			);
			dependencies = (
				6DA3F3EE0DE5D4090039CADE /* PBXTargetDependency */,
			);
			name = square;
			productInstallPath = "$(HOME)/bin";
			productName = square;
			productReference = 8DD76F6C0486A84900D96B5E /* square */;
			productType = "com.apple.product-type.tool";
		};
/* End PBXNativeTarget section */

/* Begin PBXProject section */
		08FB7793FE84155DC02AAC07 /* Project object */ = {
			isa = PBXProject;
			buildConfigurationList = 1DEB923508733DC60010E9CD /* Build configuration list for PBXProject "square" */;
			compatibilityVersion = "Xcode 2.4";
			hasScannedForEncodings = 1;
			mainGroup = 08FB7794FE84155DC02AAC07 /* square */;
			projectDirPath = "";
			projectRoot = "";
			targets = (
				8DD76F620486A84900D96B5E /* square */,
				6DA3F3E10DE5D34A0039CADE /* gen-input */,
			);
		};
/* End PBXProject section */

/* Begin PBXShellScriptBuildPhase section */
		6D3576C90DE5C7A500C03B6D /* ShellScript */ = {
			isa = PBXShellScriptBuildPhase;
			buildActionMask = 2147483647;
			files = (
			);
			inputPaths = (
			);
			outputPaths = (
				"$(TARGET_BUILD_DIR)/input.txt",
			);
			runOnlyForDeploymentPostprocessing = 0;
			shellPath = /bin/sh;
			shellScript = "$TARGET_BUILD_DIR/gen-input >$TARGET_BUILD_DIR/input.txt";
		};
/* End PBXShellScriptBuildPhase section */

/* Begin PBXSourcesBuildPhase section */
		6DA3F3DF0DE5D34A0039CADE /* Sources */ = {
			isa = PBXSourcesBuildPhase;
			buildActionMask = 2147483647;
			files = (
				6DA3F3EC0DE5D3D80039CADE /* gen_input.cpp in Sources */,
			);
			runOnlyForDeploymentPostprocessing = 0;
		};
		8DD76F640486A84900D96B5E /* Sources */ = {
			isa = PBXSourcesBuildPhase;
			buildActionMask = 2147483647;
			files = (
				A1F593A60B8F042A00073279 /* square.cpp in Sources */,
			);
			runOnlyForDeploymentPostprocessing = 0;
		};
/* End PBXSourcesBuildPhase section */

/* Begin PBXTargetDependency section */
		6DA3F3EE0DE5D4090039CADE /* PBXTargetDependency */ = {
			isa = PBXTargetDependency;
			target = 6DA3F3E10DE5D34A0039CADE /* gen-input */;
			targetProxy = 6DA3F3ED0DE5D4090039CADE /* PBXContainerItemProxy */;
		};
/* End PBXTargetDependency section */

/* Begin XCBuildConfiguration section */
		1DEB923208733DC60010E9CD /* Debug */ = {
			isa = XCBuildConfiguration;
			buildSettings = {
				COPY_PHASE_STRIP = NO;
				GCC_DYNAMIC_NO_PIC = NO;
				GCC_ENABLE_FIX_AND_CONTINUE = YES;
				GCC_OPTIMIZATION_LEVEL = 0;
				GCC_VERSION = 4.0;
				INSTALL_PATH = "$(HOME)/bin";
				LIBRARY_SEARCH_PATHS = (
					"$(inherited)",
					"$(LIBRARY_SEARCH_PATHS_QUOTED_1)",
				);
				LIBRARY_SEARCH_PATHS_QUOTED_1 = "\"$(LOCAL_LIBRARY_DIR)/Frameworks/TBB.framework/Libraries\"";
				PRODUCT_NAME = square;
				ZERO_LINK = NO;
			};
			name = Debug;
		};
		1DEB923308733DC60010E9CD /* Release */ = {
			isa = XCBuildConfiguration;
			buildSettings = {
				GCC_GENERATE_DEBUGGING_SYMBOLS = NO;
				GCC_VERSION = 4.0;
				INSTALL_PATH = "$(HOME)/bin";
				LIBRARY_SEARCH_PATHS = (
					"$(inherited)",
					"$(LIBRARY_SEARCH_PATHS_QUOTED_1)",
				);
				LIBRARY_SEARCH_PATHS_QUOTED_1 = "\"$(LOCAL_LIBRARY_DIR)/Frameworks/TBB.framework/Libraries\"";
				PRODUCT_NAME = square;
				ZERO_LINK = NO;
			};
			name = Release;
		};
		1DEB923608733DC60010E9CD /* Debug */ = {
			isa = XCBuildConfiguration;
			buildSettings = {
				ALWAYS_SEARCH_USER_PATHS = NO;
				ARCHS = i386;
				GCC_ENABLE_CPP_RTTI = YES;
				GCC_MODEL_TUNING = "";
				GCC_VERSION = 4.0;
				GCC_WARN_ABOUT_RETURN_TYPE = YES;
				GCC_WARN_UNUSED_VARIABLE = YES;
				PREBINDING = NO;
				PRECOMPS_INCLUDE_HEADERS_FROM_BUILT_PRODUCTS_DIR = NO;
				SYMROOT = "/tmp/tbb-$(USER)";
			};
			name = Debug;
		};
		1DEB923708733DC60010E9CD /* Release */ = {
			isa = XCBuildConfiguration;
			buildSettings = {
				ALWAYS_SEARCH_USER_PATHS = NO;
				ARCHS = i386;
				GCC_ENABLE_CPP_RTTI = YES;
				GCC_MODEL_TUNING = "";
				GCC_VERSION = 4.0;
				GCC_WARN_ABOUT_RETURN_TYPE = YES;
				GCC_WARN_UNUSED_VARIABLE = YES;
				PREBINDING = NO;
				PRECOMPS_INCLUDE_HEADERS_FROM_BUILT_PRODUCTS_DIR = NO;
				SYMROOT = "/tmp/tbb-$(USER)";
			};
			name = Release;
		};
		6DA3F3E50DE5D36B0039CADE /* Debug */ = {
			isa = XCBuildConfiguration;
			buildSettings = {
				COPY_PHASE_STRIP = NO;
				GCC_DYNAMIC_NO_PIC = NO;
				GCC_ENABLE_FIX_AND_CONTINUE = YES;
				GCC_GENERATE_DEBUGGING_SYMBOLS = YES;
				GCC_MODEL_TUNING = G5;
				GCC_OPTIMIZATION_LEVEL = 0;
				GCC_VERSION = 4.0;
				INSTALL_PATH = "$(HOME)/bin";
				PREBINDING = NO;
				PRODUCT_NAME = "gen-input";
				ZERO_LINK = YES;
			};
			name = Debug;
		};
		6DA3F3E60DE5D36B0039CADE /* Debug64 */ = {
			isa = XCBuildConfiguration;
			buildSettings = {
				ARCHS = "$(ARCHS_STANDARD_64_BIT_PRE_XCODE_3_1)";
				ARCHS_STANDARD_64_BIT_PRE_XCODE_3_1 = x86_64;
				GCC_ENABLE_FIX_AND_CONTINUE = YES;
				GCC_MODEL_TUNING = G5;
				GCC_VERSION = 4.0;
				INSTALL_PATH = "$(HOME)/bin";
				PREBINDING = NO;
				PRODUCT_NAME = "gen-input";
				ZERO_LINK = YES;
			};
			name = Debug64;
		};
		6DA3F3E70DE5D36B0039CADE /* Release */ = {
			isa = XCBuildConfiguration;
			buildSettings = {
				COPY_PHASE_STRIP = YES;
				GCC_ENABLE_FIX_AND_CONTINUE = NO;
				GCC_GENERATE_DEBUGGING_SYMBOLS = NO;
				GCC_MODEL_TUNING = G5;
				GCC_VERSION = 4.0;
				INSTALL_PATH = "$(HOME)/bin";
				PREBINDING = NO;
				PRODUCT_NAME = "gen-input";
				ZERO_LINK = NO;
			};
			name = Release;
		};
		6DA3F3E80DE5D36B0039CADE /* Release64 */ = {
			isa = XCBuildConfiguration;
			buildSettings = {
				ARCHS = "$(ARCHS_STANDARD_64_BIT_PRE_XCODE_3_1)";
				ARCHS_STANDARD_64_BIT_PRE_XCODE_3_1 = x86_64;
				GCC_ENABLE_FIX_AND_CONTINUE = YES;
				GCC_MODEL_TUNING = G5;
				GCC_VERSION = 4.0;
				INSTALL_PATH = "$(HOME)/bin";
				PREBINDING = NO;
				PRODUCT_NAME = "gen-input";
				ZERO_LINK = YES;
			};
			name = Release64;
		};
		A1F593C60B8F0E6E00073279 /* Debug64 */ = {
			isa = XCBuildConfiguration;
			buildSettings = {
				ARCHS = "$(ARCHS_STANDARD_64_BIT_PRE_XCODE_3_1)";
				ARCHS_STANDARD_64_BIT_PRE_XCODE_3_1 = x86_64;
				COPY_PHASE_STRIP = NO;
				GCC_DYNAMIC_NO_PIC = NO;
				GCC_ENABLE_FIX_AND_CONTINUE = YES;
				GCC_OPTIMIZATION_LEVEL = 0;
				GCC_VERSION = 4.0;
				INSTALL_PATH = "$(HOME)/bin";
				LIBRARY_SEARCH_PATHS = (
					"$(inherited)",
					"$(LIBRARY_SEARCH_PATHS_QUOTED_1)",
				);
				LIBRARY_SEARCH_PATHS_QUOTED_1 = "\"$(LOCAL_LIBRARY_DIR)/Frameworks/TBB.framework/Libraries\"";
				PRODUCT_NAME = square;
				ZERO_LINK = NO;
			};
			name = Debug64;
		};
		A1F593C70B8F0E6E00073279 /* Release64 */ = {
			isa = XCBuildConfiguration;
			buildSettings = {
				ARCHS = "$(ARCHS_STANDARD_64_BIT_PRE_XCODE_3_1)";
				ARCHS_STANDARD_64_BIT_PRE_XCODE_3_1 = x86_64;
				GCC_GENERATE_DEBUGGING_SYMBOLS = NO;
				GCC_VERSION = 4.0;
				INSTALL_PATH = "$(HOME)/bin";
				LIBRARY_SEARCH_PATHS = (
					"$(inherited)",
					"$(LIBRARY_SEARCH_PATHS_QUOTED_1)",
				);
				LIBRARY_SEARCH_PATHS_QUOTED_1 = "\"$(LOCAL_LIBRARY_DIR)/Frameworks/TBB.framework/Libraries\"";
				PRODUCT_NAME = square;
				ZERO_LINK = NO;
			};
			name = Release64;
		};
		A1F593C80B8F0E6E00073279 /* Debug64 */ = {
			isa = XCBuildConfiguration;
			buildSettings = {
				ALWAYS_SEARCH_USER_PATHS = NO;
				ARCHS = i386;
				GCC_ENABLE_CPP_RTTI = YES;
				GCC_MODEL_TUNING = "";
				GCC_VERSION = 4.0;
				GCC_WARN_ABOUT_RETURN_TYPE = YES;
				GCC_WARN_UNUSED_VARIABLE = YES;
				OTHER_CPLUSPLUSFLAGS = (
					"$(OTHER_CFLAGS)",
					"-m64",
				);
				OTHER_LDFLAGS = "-m64";
				PREBINDING = NO;
				PRECOMPS_INCLUDE_HEADERS_FROM_BUILT_PRODUCTS_DIR = NO;
				SYMROOT = "/tmp/tbb-$(USER)";
			};
			name = Debug64;
		};
		A1F593C90B8F0E6E00073279 /* Release64 */ = {
			isa = XCBuildConfiguration;
			buildSettings = {
				ALWAYS_SEARCH_USER_PATHS = NO;
				ARCHS = i386;
				GCC_ENABLE_CPP_RTTI = YES;
				GCC_MODEL_TUNING = "";
				GCC_VERSION = 4.0;
				GCC_WARN_ABOUT_RETURN_TYPE = YES;
				GCC_WARN_UNUSED_VARIABLE = YES;
				OTHER_CPLUSPLUSFLAGS = (
					"$(OTHER_CFLAGS)",
					"-m64",
				);
				OTHER_LDFLAGS = "-m64";
				PREBINDING = NO;
				PRECOMPS_INCLUDE_HEADERS_FROM_BUILT_PRODUCTS_DIR = NO;
				SYMROOT = "/tmp/tbb-$(USER)";
			};
			name = Release64;
		};
/* End XCBuildConfiguration section */

/* Begin XCConfigurationList section */
		1DEB923108733DC60010E9CD /* Build configuration list for PBXNativeTarget "square" */ = {
			isa = XCConfigurationList;
			buildConfigurations = (
				1DEB923208733DC60010E9CD /* Debug */,
				A1F593C60B8F0E6E00073279 /* Debug64 */,
				1DEB923308733DC60010E9CD /* Release */,
				A1F593C70B8F0E6E00073279 /* Release64 */,
			);
			defaultConfigurationIsVisible = 0;
			defaultConfigurationName = Release;
		};
		1DEB923508733DC60010E9CD /* Build configuration list for PBXProject "square" */ = {
			isa = XCConfigurationList;
			buildConfigurations = (
				1DEB923608733DC60010E9CD /* Debug */,
				A1F593C80B8F0E6E00073279 /* Debug64 */,
				1DEB923708733DC60010E9CD /* Release */,
				A1F593C90B8F0E6E00073279 /* Release64 */,
			);
			defaultConfigurationIsVisible = 0;
			defaultConfigurationName = Release;
		};
		6DA3F3E40DE5D36B0039CADE /* Build configuration list for PBXNativeTarget "gen-input" */ = {
			isa = XCConfigurationList;
			buildConfigurations = (
				6DA3F3E50DE5D36B0039CADE /* Debug */,
				6DA3F3E60DE5D36B0039CADE /* Debug64 */,
				6DA3F3E70DE5D36B0039CADE /* Release */,
				6DA3F3E80DE5D36B0039CADE /* Release64 */,
			);
			defaultConfigurationIsVisible = 0;
			defaultConfigurationName = Release;
		};
/* End XCConfigurationList section */
	};
	rootObject = 08FB7793FE84155DC02AAC07 /* Project object */;
}
