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

/* Begin PBXBuildFile section */
		8806106918ABF3280057AC6D /* libBroker.a in Frameworks */ = {isa = PBXBuildFile; fileRef = DB4C0E22143D2F4F0090F5E3 /* libBroker.a */; };
		881BDFDB187E283F0005DD08 /* NSString+Broker.m in Sources */ = {isa = PBXBuildFile; fileRef = 881BDFDA187E283F0005DD08 /* NSString+Broker.m */; };
		881BDFDC187E28670005DD08 /* NSString+Broker.h in CopyFiles */ = {isa = PBXBuildFile; fileRef = 881BDFD9187E283F0005DD08 /* NSString+Broker.h */; };
		88317D1A18804F4C003C6BCF /* NSManagedObjectContextTests.m in Sources */ = {isa = PBXBuildFile; fileRef = 88317D1918804F4C003C6BCF /* NSManagedObjectContextTests.m */; };
		88317D1C188053B0003C6BCF /* BKEntityMapTests.m in Sources */ = {isa = PBXBuildFile; fileRef = 88317D1B188053B0003C6BCF /* BKEntityMapTests.m */; };
		8840C597182C61380025A26E /* TestCounter.m in Sources */ = {isa = PBXBuildFile; fileRef = 8840C596182C61380025A26E /* TestCounter.m */; };
		886DB1D01818472700A5AA4E /* XCTest.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 886DB1CF1818472700A5AA4E /* XCTest.framework */; };
		886DB2211819F11C00A5AA4E /* BKEntityControllerTests.m in Sources */ = {isa = PBXBuildFile; fileRef = 886DB2201819F11C00A5AA4E /* BKEntityControllerTests.m */; };
		886DB2241819F18300A5AA4E /* BKTestStore.m in Sources */ = {isa = PBXBuildFile; fileRef = 886DB2231819F18300A5AA4E /* BKTestStore.m */; };
		886DB2261819F53600A5AA4E /* BKTestCase.m in Sources */ = {isa = PBXBuildFile; fileRef = 886DB2251819F53600A5AA4E /* BKTestCase.m */; };
		886DB22C1819F8B600A5AA4E /* BKJSONController.m in Sources */ = {isa = PBXBuildFile; fileRef = 886DB22A1819F8B600A5AA4E /* BKJSONController.m */; };
		886DB22E1819FCD800A5AA4E /* BKJSONControllerTests.m in Sources */ = {isa = PBXBuildFile; fileRef = 886DB22D1819FCD800A5AA4E /* BKJSONControllerTests.m */; };
		886DB230181A016D00A5AA4E /* BKEntityDescriptionTests.m in Sources */ = {isa = PBXBuildFile; fileRef = 886DB22F181A016D00A5AA4E /* BKEntityDescriptionTests.m */; };
		886DB249181B3CBB00A5AA4E /* BKControllerTests.m in Sources */ = {isa = PBXBuildFile; fileRef = 886DB248181B3CBB00A5AA4E /* BKControllerTests.m */; };
		886DB27A1821E84E00A5AA4E /* Employee.m in Sources */ = {isa = PBXBuildFile; fileRef = 886DB2791821E84E00A5AA4E /* Employee.m */; };
		886DB2F51824311B00A5AA4E /* NSManagedObjectBrokerTests.m in Sources */ = {isa = PBXBuildFile; fileRef = 886DB2F41824311B00A5AA4E /* NSManagedObjectBrokerTests.m */; };
		886DB2F718246CA600A5AA4E /* BKAttributeDescriptionTests.m in Sources */ = {isa = PBXBuildFile; fileRef = 886DB2F618246CA600A5AA4E /* BKAttributeDescriptionTests.m */; };
		8887A551187DF09900B999F3 /* BKAttributeDescription.h in CopyFiles */ = {isa = PBXBuildFile; fileRef = DB4C0E54143D334C0090F5E3 /* BKAttributeDescription.h */; };
		8887A552187DF09900B999F3 /* BKEntityDescription.h in CopyFiles */ = {isa = PBXBuildFile; fileRef = DBFF95E9143E568C008511EA /* BKEntityDescription.h */; };
		8887A553187DF09900B999F3 /* BKEntityMap.h in CopyFiles */ = {isa = PBXBuildFile; fileRef = DBBC61D61761855C007D0B76 /* BKEntityMap.h */; };
		8887A554187DF09900B999F3 /* BKJSONController.h in CopyFiles */ = {isa = PBXBuildFile; fileRef = 886DB2291819F8B600A5AA4E /* BKJSONController.h */; };
		8887A556187DF09900B999F3 /* Broker.h in CopyFiles */ = {isa = PBXBuildFile; fileRef = 886DB24C181B3E0700A5AA4E /* Broker.h */; };
		8887A557187DF09900B999F3 /* NSManagedObject+Broker.h in CopyFiles */ = {isa = PBXBuildFile; fileRef = DB5997E5159916B100AB65C9 /* NSManagedObject+Broker.h */; };
		8887A558187DF09900B999F3 /* NSManagedObjectContext+Broker.h in CopyFiles */ = {isa = PBXBuildFile; fileRef = DB39B5C615BF68C50046FD96 /* NSManagedObjectContext+Broker.h */; };
		8887A58E187E072100B999F3 /* BKController.m in Sources */ = {isa = PBXBuildFile; fileRef = 8887A58D187E072100B999F3 /* BKController.m */; };
		8887A58F187E0C2400B999F3 /* BKController.h in CopyFiles */ = {isa = PBXBuildFile; fileRef = 8887A58C187E072100B999F3 /* BKController.h */; };
		DB0DE49215B8F68E007F382F /* UIKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = DB0DE49115B8F68D007F382F /* UIKit.framework */; };
		DB39B5C915BF68C50046FD96 /* NSManagedObjectContext+Broker.m in Sources */ = {isa = PBXBuildFile; fileRef = DB39B5C715BF68C50046FD96 /* NSManagedObjectContext+Broker.m */; };
		DB4C0E26143D2F4F0090F5E3 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = DB4C0E25143D2F4F0090F5E3 /* Foundation.framework */; };
		DB4C0E37143D2F4F0090F5E3 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = DB4C0E25143D2F4F0090F5E3 /* Foundation.framework */; };
		DB4C0E40143D2F4F0090F5E3 /* InfoPlist.strings in Resources */ = {isa = PBXBuildFile; fileRef = DB4C0E3E143D2F4F0090F5E3 /* InfoPlist.strings */; };
		DB4C0E57143D334C0090F5E3 /* BKAttributeDescription.m in Sources */ = {isa = PBXBuildFile; fileRef = DB4C0E55143D334C0090F5E3 /* BKAttributeDescription.m */; };
		DB4C0E59143D34E50090F5E3 /* CoreData.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = DB4C0E58143D34E50090F5E3 /* CoreData.framework */; };
		DB5997E8159916B100AB65C9 /* NSManagedObject+Broker.m in Sources */ = {isa = PBXBuildFile; fileRef = DB5997E6159916B100AB65C9 /* NSManagedObject+Broker.m */; };
		DBBC61D91761855C007D0B76 /* BKEntityMap.m in Sources */ = {isa = PBXBuildFile; fileRef = DBBC61D71761855C007D0B76 /* BKEntityMap.m */; };
		DBFF95C9143D8D80008511EA /* BrokerTestModel.xcdatamodeld in Sources */ = {isa = PBXBuildFile; fileRef = DBFF95C7143D8D80008511EA /* BrokerTestModel.xcdatamodeld */; };
		DBFF95CD143D9060008511EA /* CoreData.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = DB4C0E58143D34E50090F5E3 /* CoreData.framework */; };
		DBFF95D3143E17D9008511EA /* BrokerTestsHelpers.m in Sources */ = {isa = PBXBuildFile; fileRef = DBFF95D2143E17D9008511EA /* BrokerTestsHelpers.m */; };
		DBFF95D5143E187D008511EA /* TestResources.bundle in Resources */ = {isa = PBXBuildFile; fileRef = DBFF95D4143E187D008511EA /* TestResources.bundle */; };
		DBFF95EC143E568C008511EA /* BKEntityDescription.m in Sources */ = {isa = PBXBuildFile; fileRef = DBFF95EA143E568C008511EA /* BKEntityDescription.m */; };
/* End PBXBuildFile section */

/* Begin PBXContainerItemProxy section */
		DB4C0E38143D2F4F0090F5E3 /* PBXContainerItemProxy */ = {
			isa = PBXContainerItemProxy;
			containerPortal = DB4C0E17143D2E770090F5E3 /* Project object */;
			proxyType = 1;
			remoteGlobalIDString = DB4C0E21143D2F4F0090F5E3;
			remoteInfo = Broker;
		};
/* End PBXContainerItemProxy section */

/* Begin PBXCopyFilesBuildPhase section */
		8887A550187DF08600B999F3 /* CopyFiles */ = {
			isa = PBXCopyFilesBuildPhase;
			buildActionMask = 2147483647;
			dstPath = "include/$(PRODUCT_NAME)";
			dstSubfolderSpec = 16;
			files = (
				881BDFDC187E28670005DD08 /* NSString+Broker.h in CopyFiles */,
				8887A58F187E0C2400B999F3 /* BKController.h in CopyFiles */,
				8887A551187DF09900B999F3 /* BKAttributeDescription.h in CopyFiles */,
				8887A552187DF09900B999F3 /* BKEntityDescription.h in CopyFiles */,
				8887A553187DF09900B999F3 /* BKEntityMap.h in CopyFiles */,
				8887A554187DF09900B999F3 /* BKJSONController.h in CopyFiles */,
				8887A556187DF09900B999F3 /* Broker.h in CopyFiles */,
				8887A557187DF09900B999F3 /* NSManagedObject+Broker.h in CopyFiles */,
				8887A558187DF09900B999F3 /* NSManagedObjectContext+Broker.h in CopyFiles */,
			);
			runOnlyForDeploymentPostprocessing = 0;
		};
/* End PBXCopyFilesBuildPhase section */

/* Begin PBXFileReference section */
		880179C6194B9EF200DCE26B /* BrokerLog.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = BrokerLog.h; sourceTree = "<group>"; };
		881BDFD9187E283F0005DD08 /* NSString+Broker.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "NSString+Broker.h"; sourceTree = "<group>"; };
		881BDFDA187E283F0005DD08 /* NSString+Broker.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "NSString+Broker.m"; sourceTree = "<group>"; };
		88317D1918804F4C003C6BCF /* NSManagedObjectContextTests.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = NSManagedObjectContextTests.m; sourceTree = "<group>"; };
		88317D1B188053B0003C6BCF /* BKEntityMapTests.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = BKEntityMapTests.m; sourceTree = "<group>"; };
		8840C595182C61380025A26E /* TestCounter.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TestCounter.h; sourceTree = "<group>"; };
		8840C596182C61380025A26E /* TestCounter.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = TestCounter.m; sourceTree = "<group>"; };
		886DB1CF1818472700A5AA4E /* XCTest.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = XCTest.framework; path = Library/Frameworks/XCTest.framework; sourceTree = DEVELOPER_DIR; };
		886DB2201819F11C00A5AA4E /* BKEntityControllerTests.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = BKEntityControllerTests.m; sourceTree = "<group>"; };
		886DB2221819F18300A5AA4E /* BKTestStore.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = BKTestStore.h; sourceTree = "<group>"; };
		886DB2231819F18300A5AA4E /* BKTestStore.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = BKTestStore.m; sourceTree = "<group>"; };
		886DB2251819F53600A5AA4E /* BKTestCase.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = BKTestCase.m; sourceTree = "<group>"; };
		886DB2271819F55F00A5AA4E /* BKTestCase.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = BKTestCase.h; sourceTree = "<group>"; };
		886DB2281819F72800A5AA4E /* BKTestConstants.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = BKTestConstants.h; sourceTree = "<group>"; };
		886DB2291819F8B600A5AA4E /* BKJSONController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = BKJSONController.h; sourceTree = "<group>"; };
		886DB22A1819F8B600A5AA4E /* BKJSONController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = BKJSONController.m; sourceTree = "<group>"; };
		886DB22D1819FCD800A5AA4E /* BKJSONControllerTests.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = BKJSONControllerTests.m; sourceTree = "<group>"; };
		886DB22F181A016D00A5AA4E /* BKEntityDescriptionTests.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = BKEntityDescriptionTests.m; sourceTree = "<group>"; };
		886DB248181B3CBB00A5AA4E /* BKControllerTests.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = BKControllerTests.m; sourceTree = "<group>"; };
		886DB24C181B3E0700A5AA4E /* Broker.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Broker.h; sourceTree = "<group>"; };
		886DB2781821E84E00A5AA4E /* Employee.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Employee.h; sourceTree = "<group>"; };
		886DB2791821E84E00A5AA4E /* Employee.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = Employee.m; sourceTree = "<group>"; };
		886DB2F41824311B00A5AA4E /* NSManagedObjectBrokerTests.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = NSManagedObjectBrokerTests.m; sourceTree = "<group>"; };
		886DB2F618246CA600A5AA4E /* BKAttributeDescriptionTests.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = BKAttributeDescriptionTests.m; sourceTree = "<group>"; };
		8887A58C187E072100B999F3 /* BKController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = BKController.h; sourceTree = "<group>"; };
		8887A58D187E072100B999F3 /* BKController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = BKController.m; sourceTree = "<group>"; };
		DB0DE49115B8F68D007F382F /* UIKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = UIKit.framework; path = System/Library/Frameworks/UIKit.framework; sourceTree = SDKROOT; };
		DB39B5C615BF68C50046FD96 /* NSManagedObjectContext+Broker.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "NSManagedObjectContext+Broker.h"; sourceTree = "<group>"; };
		DB39B5C715BF68C50046FD96 /* NSManagedObjectContext+Broker.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "NSManagedObjectContext+Broker.m"; sourceTree = "<group>"; };
		DB4C0E22143D2F4F0090F5E3 /* libBroker.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = libBroker.a; sourceTree = BUILT_PRODUCTS_DIR; };
		DB4C0E25143D2F4F0090F5E3 /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = System/Library/Frameworks/Foundation.framework; sourceTree = SDKROOT; };
		DB4C0E29143D2F4F0090F5E3 /* Broker-Prefix.pch */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; lineEnding = 0; path = "Broker-Prefix.pch"; sourceTree = "<group>"; xcLanguageSpecificationIdentifier = xcode.lang.objc; };
		DB4C0E32143D2F4F0090F5E3 /* BrokerTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = BrokerTests.xctest; sourceTree = BUILT_PRODUCTS_DIR; };
		DB4C0E3D143D2F4F0090F5E3 /* BrokerTests-Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = "BrokerTests-Info.plist"; sourceTree = "<group>"; };
		DB4C0E3F143D2F4F0090F5E3 /* en */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = en; path = en.lproj/InfoPlist.strings; sourceTree = "<group>"; };
		DB4C0E54143D334C0090F5E3 /* BKAttributeDescription.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; lineEnding = 0; path = BKAttributeDescription.h; sourceTree = "<group>"; xcLanguageSpecificationIdentifier = xcode.lang.objcpp; };
		DB4C0E55143D334C0090F5E3 /* BKAttributeDescription.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; lineEnding = 0; path = BKAttributeDescription.m; sourceTree = "<group>"; xcLanguageSpecificationIdentifier = xcode.lang.objc; };
		DB4C0E58143D34E50090F5E3 /* CoreData.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreData.framework; path = System/Library/Frameworks/CoreData.framework; sourceTree = SDKROOT; };
		DB5997E5159916B100AB65C9 /* NSManagedObject+Broker.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "NSManagedObject+Broker.h"; sourceTree = "<group>"; };
		DB5997E6159916B100AB65C9 /* NSManagedObject+Broker.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "NSManagedObject+Broker.m"; sourceTree = "<group>"; };
		DBBC61D61761855C007D0B76 /* BKEntityMap.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = BKEntityMap.h; sourceTree = "<group>"; };
		DBBC61D71761855C007D0B76 /* BKEntityMap.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = BKEntityMap.m; sourceTree = "<group>"; };
		DBFF95C8143D8D80008511EA /* BrokerTestModel.xcdatamodel */ = {isa = PBXFileReference; lastKnownFileType = wrapper.xcdatamodel; path = BrokerTestModel.xcdatamodel; sourceTree = "<group>"; };
		DBFF95D1143E17D9008511EA /* BrokerTestsHelpers.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = BrokerTestsHelpers.h; sourceTree = "<group>"; };
		DBFF95D2143E17D9008511EA /* BrokerTestsHelpers.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = BrokerTestsHelpers.m; sourceTree = "<group>"; };
		DBFF95D4143E187D008511EA /* TestResources.bundle */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.plug-in"; path = TestResources.bundle; sourceTree = "<group>"; };
		DBFF95E9143E568C008511EA /* BKEntityDescription.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; lineEnding = 0; path = BKEntityDescription.h; sourceTree = "<group>"; xcLanguageSpecificationIdentifier = xcode.lang.objcpp; };
		DBFF95EA143E568C008511EA /* BKEntityDescription.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; lineEnding = 0; path = BKEntityDescription.m; sourceTree = "<group>"; xcLanguageSpecificationIdentifier = xcode.lang.objc; };
/* End PBXFileReference section */

/* Begin PBXFrameworksBuildPhase section */
		DB4C0E1F143D2F4F0090F5E3 /* Frameworks */ = {
			isa = PBXFrameworksBuildPhase;
			buildActionMask = 2147483647;
			files = (
				DB4C0E26143D2F4F0090F5E3 /* Foundation.framework in Frameworks */,
				DB4C0E59143D34E50090F5E3 /* CoreData.framework in Frameworks */,
			);
			runOnlyForDeploymentPostprocessing = 0;
		};
		DB4C0E2E143D2F4F0090F5E3 /* Frameworks */ = {
			isa = PBXFrameworksBuildPhase;
			buildActionMask = 2147483647;
			files = (
				8806106918ABF3280057AC6D /* libBroker.a in Frameworks */,
				886DB1D01818472700A5AA4E /* XCTest.framework in Frameworks */,
				DB0DE49215B8F68E007F382F /* UIKit.framework in Frameworks */,
				DB4C0E37143D2F4F0090F5E3 /* Foundation.framework in Frameworks */,
				DBFF95CD143D9060008511EA /* CoreData.framework in Frameworks */,
			);
			runOnlyForDeploymentPostprocessing = 0;
		};
/* End PBXFrameworksBuildPhase section */

/* Begin PBXGroup section */
		886DB2771821E7F200A5AA4E /* Helpers */ = {
			isa = PBXGroup;
			children = (
				886DB2221819F18300A5AA4E /* BKTestStore.h */,
				886DB2231819F18300A5AA4E /* BKTestStore.m */,
				DBFF95D1143E17D9008511EA /* BrokerTestsHelpers.h */,
				DBFF95D2143E17D9008511EA /* BrokerTestsHelpers.m */,
				886DB2781821E84E00A5AA4E /* Employee.h */,
				886DB2791821E84E00A5AA4E /* Employee.m */,
				8840C595182C61380025A26E /* TestCounter.h */,
				8840C596182C61380025A26E /* TestCounter.m */,
			);
			name = Helpers;
			sourceTree = "<group>";
		};
		DB4C0E15143D2E770090F5E3 = {
			isa = PBXGroup;
			children = (
				DB4C0E27143D2F4F0090F5E3 /* Broker */,
				DB4C0E3B143D2F4F0090F5E3 /* BrokerTests */,
				DB4C0E24143D2F4F0090F5E3 /* Frameworks */,
				DB4C0E23143D2F4F0090F5E3 /* Products */,
			);
			sourceTree = "<group>";
		};
		DB4C0E23143D2F4F0090F5E3 /* Products */ = {
			isa = PBXGroup;
			children = (
				DB4C0E22143D2F4F0090F5E3 /* libBroker.a */,
				DB4C0E32143D2F4F0090F5E3 /* BrokerTests.xctest */,
			);
			name = Products;
			sourceTree = "<group>";
		};
		DB4C0E24143D2F4F0090F5E3 /* Frameworks */ = {
			isa = PBXGroup;
			children = (
				886DB1CF1818472700A5AA4E /* XCTest.framework */,
				DB0DE49115B8F68D007F382F /* UIKit.framework */,
				DB4C0E58143D34E50090F5E3 /* CoreData.framework */,
				DB4C0E25143D2F4F0090F5E3 /* Foundation.framework */,
			);
			name = Frameworks;
			sourceTree = "<group>";
		};
		DB4C0E27143D2F4F0090F5E3 /* Broker */ = {
			isa = PBXGroup;
			children = (
				DB4C0E54143D334C0090F5E3 /* BKAttributeDescription.h */,
				DB4C0E55143D334C0090F5E3 /* BKAttributeDescription.m */,
				8887A58C187E072100B999F3 /* BKController.h */,
				8887A58D187E072100B999F3 /* BKController.m */,
				DBFF95E9143E568C008511EA /* BKEntityDescription.h */,
				DBFF95EA143E568C008511EA /* BKEntityDescription.m */,
				DBBC61D61761855C007D0B76 /* BKEntityMap.h */,
				DBBC61D71761855C007D0B76 /* BKEntityMap.m */,
				886DB2291819F8B600A5AA4E /* BKJSONController.h */,
				886DB22A1819F8B600A5AA4E /* BKJSONController.m */,
				886DB24C181B3E0700A5AA4E /* Broker.h */,
				880179C6194B9EF200DCE26B /* BrokerLog.h */,
				DB5997E5159916B100AB65C9 /* NSManagedObject+Broker.h */,
				DB5997E6159916B100AB65C9 /* NSManagedObject+Broker.m */,
				DB39B5C615BF68C50046FD96 /* NSManagedObjectContext+Broker.h */,
				DB39B5C715BF68C50046FD96 /* NSManagedObjectContext+Broker.m */,
				881BDFD9187E283F0005DD08 /* NSString+Broker.h */,
				881BDFDA187E283F0005DD08 /* NSString+Broker.m */,
				DB4C0E28143D2F4F0090F5E3 /* Supporting Files */,
			);
			path = Broker;
			sourceTree = "<group>";
		};
		DB4C0E28143D2F4F0090F5E3 /* Supporting Files */ = {
			isa = PBXGroup;
			children = (
				DB4C0E29143D2F4F0090F5E3 /* Broker-Prefix.pch */,
			);
			name = "Supporting Files";
			sourceTree = "<group>";
		};
		DB4C0E3B143D2F4F0090F5E3 /* BrokerTests */ = {
			isa = PBXGroup;
			children = (
				886DB2F618246CA600A5AA4E /* BKAttributeDescriptionTests.m */,
				886DB248181B3CBB00A5AA4E /* BKControllerTests.m */,
				886DB2201819F11C00A5AA4E /* BKEntityControllerTests.m */,
				886DB22F181A016D00A5AA4E /* BKEntityDescriptionTests.m */,
				88317D1B188053B0003C6BCF /* BKEntityMapTests.m */,
				886DB22D1819FCD800A5AA4E /* BKJSONControllerTests.m */,
				886DB2271819F55F00A5AA4E /* BKTestCase.h */,
				886DB2251819F53600A5AA4E /* BKTestCase.m */,
				886DB2281819F72800A5AA4E /* BKTestConstants.h */,
				DBFF95C7143D8D80008511EA /* BrokerTestModel.xcdatamodeld */,
				886DB2771821E7F200A5AA4E /* Helpers */,
				886DB2F41824311B00A5AA4E /* NSManagedObjectBrokerTests.m */,
				88317D1918804F4C003C6BCF /* NSManagedObjectContextTests.m */,
				DB4C0E3C143D2F4F0090F5E3 /* Supporting Files */,
				DBFF95D4143E187D008511EA /* TestResources.bundle */,
			);
			path = BrokerTests;
			sourceTree = "<group>";
		};
		DB4C0E3C143D2F4F0090F5E3 /* Supporting Files */ = {
			isa = PBXGroup;
			children = (
				DB4C0E3D143D2F4F0090F5E3 /* BrokerTests-Info.plist */,
				DB4C0E3E143D2F4F0090F5E3 /* InfoPlist.strings */,
			);
			name = "Supporting Files";
			sourceTree = "<group>";
		};
/* End PBXGroup section */

/* Begin PBXNativeTarget section */
		DB4C0E21143D2F4F0090F5E3 /* Broker */ = {
			isa = PBXNativeTarget;
			buildConfigurationList = DB4C0E44143D2F4F0090F5E3 /* Build configuration list for PBXNativeTarget "Broker" */;
			buildPhases = (
				DB4C0E1E143D2F4F0090F5E3 /* Sources */,
				DB4C0E1F143D2F4F0090F5E3 /* Frameworks */,
				8887A550187DF08600B999F3 /* CopyFiles */,
			);
			buildRules = (
			);
			dependencies = (
			);
			name = Broker;
			productName = Broker;
			productReference = DB4C0E22143D2F4F0090F5E3 /* libBroker.a */;
			productType = "com.apple.product-type.library.static";
		};
		DB4C0E31143D2F4F0090F5E3 /* BrokerTests */ = {
			isa = PBXNativeTarget;
			buildConfigurationList = DB4C0E47143D2F4F0090F5E3 /* Build configuration list for PBXNativeTarget "BrokerTests" */;
			buildPhases = (
				DB4C0E2D143D2F4F0090F5E3 /* Sources */,
				DB4C0E2E143D2F4F0090F5E3 /* Frameworks */,
				DB4C0E2F143D2F4F0090F5E3 /* Resources */,
				DB4C0E30143D2F4F0090F5E3 /* ShellScript */,
			);
			buildRules = (
			);
			dependencies = (
				DB4C0E39143D2F4F0090F5E3 /* PBXTargetDependency */,
			);
			name = BrokerTests;
			productName = BrokerTests;
			productReference = DB4C0E32143D2F4F0090F5E3 /* BrokerTests.xctest */;
			productType = "com.apple.product-type.bundle.unit-test";
		};
/* End PBXNativeTarget section */

/* Begin PBXProject section */
		DB4C0E17143D2E770090F5E3 /* Project object */ = {
			isa = PBXProject;
			attributes = {
				LastUpgradeCheck = 0500;
				ORGANIZATIONNAME = "Andrew B. Smith";
			};
			buildConfigurationList = DB4C0E1A143D2E770090F5E3 /* Build configuration list for PBXProject "Broker" */;
			compatibilityVersion = "Xcode 3.2";
			developmentRegion = English;
			hasScannedForEncodings = 0;
			knownRegions = (
				en,
			);
			mainGroup = DB4C0E15143D2E770090F5E3;
			productRefGroup = DB4C0E23143D2F4F0090F5E3 /* Products */;
			projectDirPath = "";
			projectRoot = "";
			targets = (
				DB4C0E21143D2F4F0090F5E3 /* Broker */,
				DB4C0E31143D2F4F0090F5E3 /* BrokerTests */,
			);
		};
/* End PBXProject section */

/* Begin PBXResourcesBuildPhase section */
		DB4C0E2F143D2F4F0090F5E3 /* Resources */ = {
			isa = PBXResourcesBuildPhase;
			buildActionMask = 2147483647;
			files = (
				DB4C0E40143D2F4F0090F5E3 /* InfoPlist.strings in Resources */,
				DBFF95D5143E187D008511EA /* TestResources.bundle in Resources */,
			);
			runOnlyForDeploymentPostprocessing = 0;
		};
/* End PBXResourcesBuildPhase section */

/* Begin PBXShellScriptBuildPhase section */
		DB4C0E30143D2F4F0090F5E3 /* ShellScript */ = {
			isa = PBXShellScriptBuildPhase;
			buildActionMask = 2147483647;
			files = (
			);
			inputPaths = (
			);
			outputPaths = (
			);
			runOnlyForDeploymentPostprocessing = 0;
			shellPath = /bin/sh;
			shellScript = "# Run the unit tests in this test bundle.\n\"${SYSTEM_DEVELOPER_DIR}/Tools/RunUnitTests\"\n";
		};
/* End PBXShellScriptBuildPhase section */

/* Begin PBXSourcesBuildPhase section */
		DB4C0E1E143D2F4F0090F5E3 /* Sources */ = {
			isa = PBXSourcesBuildPhase;
			buildActionMask = 2147483647;
			files = (
				DB4C0E57143D334C0090F5E3 /* BKAttributeDescription.m in Sources */,
				8887A58E187E072100B999F3 /* BKController.m in Sources */,
				DBFF95EC143E568C008511EA /* BKEntityDescription.m in Sources */,
				DB5997E8159916B100AB65C9 /* NSManagedObject+Broker.m in Sources */,
				881BDFDB187E283F0005DD08 /* NSString+Broker.m in Sources */,
				886DB22C1819F8B600A5AA4E /* BKJSONController.m in Sources */,
				DB39B5C915BF68C50046FD96 /* NSManagedObjectContext+Broker.m in Sources */,
				DBBC61D91761855C007D0B76 /* BKEntityMap.m in Sources */,
			);
			runOnlyForDeploymentPostprocessing = 0;
		};
		DB4C0E2D143D2F4F0090F5E3 /* Sources */ = {
			isa = PBXSourcesBuildPhase;
			buildActionMask = 2147483647;
			files = (
				886DB22E1819FCD800A5AA4E /* BKJSONControllerTests.m in Sources */,
				88317D1A18804F4C003C6BCF /* NSManagedObjectContextTests.m in Sources */,
				886DB249181B3CBB00A5AA4E /* BKControllerTests.m in Sources */,
				886DB2F51824311B00A5AA4E /* NSManagedObjectBrokerTests.m in Sources */,
				886DB2211819F11C00A5AA4E /* BKEntityControllerTests.m in Sources */,
				886DB2F718246CA600A5AA4E /* BKAttributeDescriptionTests.m in Sources */,
				886DB230181A016D00A5AA4E /* BKEntityDescriptionTests.m in Sources */,
				88317D1C188053B0003C6BCF /* BKEntityMapTests.m in Sources */,
				886DB2261819F53600A5AA4E /* BKTestCase.m in Sources */,
				886DB27A1821E84E00A5AA4E /* Employee.m in Sources */,
				886DB2241819F18300A5AA4E /* BKTestStore.m in Sources */,
				DBFF95C9143D8D80008511EA /* BrokerTestModel.xcdatamodeld in Sources */,
				DBFF95D3143E17D9008511EA /* BrokerTestsHelpers.m in Sources */,
				8840C597182C61380025A26E /* TestCounter.m in Sources */,
			);
			runOnlyForDeploymentPostprocessing = 0;
		};
/* End PBXSourcesBuildPhase section */

/* Begin PBXTargetDependency section */
		DB4C0E39143D2F4F0090F5E3 /* PBXTargetDependency */ = {
			isa = PBXTargetDependency;
			target = DB4C0E21143D2F4F0090F5E3 /* Broker */;
			targetProxy = DB4C0E38143D2F4F0090F5E3 /* PBXContainerItemProxy */;
		};
/* End PBXTargetDependency section */

/* Begin PBXVariantGroup section */
		DB4C0E3E143D2F4F0090F5E3 /* InfoPlist.strings */ = {
			isa = PBXVariantGroup;
			children = (
				DB4C0E3F143D2F4F0090F5E3 /* en */,
			);
			name = InfoPlist.strings;
			sourceTree = "<group>";
		};
/* End PBXVariantGroup section */

/* Begin XCBuildConfiguration section */
		886DB2B71823120600A5AA4E /* Coverage */ = {
			isa = XCBuildConfiguration;
			buildSettings = {
				GCC_GENERATE_TEST_COVERAGE_FILES = YES;
				GCC_INSTRUMENT_PROGRAM_FLOW_ARCS = YES;
				GENERATE_PROFILING_CODE = YES;
				ONLY_ACTIVE_ARCH = YES;
				SCAN_ALL_SOURCE_FILES_FOR_INCLUDES = YES;
				SDKROOT = iphoneos;
			};
			name = Coverage;
		};
		886DB2B81823120600A5AA4E /* Coverage */ = {
			isa = XCBuildConfiguration;
			buildSettings = {
				CLANG_ENABLE_OBJC_ARC = YES;
				COPY_PHASE_STRIP = NO;
				DSTROOT = /tmp/Broker.dst;
				GCC_C_LANGUAGE_STANDARD = gnu99;
				GCC_DYNAMIC_NO_PIC = NO;
				GCC_OPTIMIZATION_LEVEL = 0;
				GCC_PRECOMPILE_PREFIX_HEADER = YES;
				GCC_PREFIX_HEADER = "Broker/Broker-Prefix.pch";
				GCC_SYMBOLS_PRIVATE_EXTERN = NO;
				GCC_WARN_ABOUT_MISSING_PROTOTYPES = YES;
				GCC_WARN_ABOUT_RETURN_TYPE = YES;
				GCC_WARN_UNUSED_VARIABLE = YES;
				IPHONEOS_DEPLOYMENT_TARGET = 6.1;
				OTHER_LDFLAGS = "";
				PRODUCT_NAME = "$(TARGET_NAME)";
				SDKROOT = iphoneos;
				SKIP_INSTALL = YES;
			};
			name = Coverage;
		};
		886DB2B91823120600A5AA4E /* Coverage */ = {
			isa = XCBuildConfiguration;
			buildSettings = {
				ALWAYS_SEARCH_USER_PATHS = YES;
				CLANG_ENABLE_OBJC_ARC = YES;
				COPY_PHASE_STRIP = NO;
				FRAMEWORK_SEARCH_PATHS = (
					"$(SDKROOT)/Developer/Library/Frameworks",
					"$(DEVELOPER_FRAMEWORKS_DIR)",
				);
				GCC_C_LANGUAGE_STANDARD = gnu99;
				GCC_DYNAMIC_NO_PIC = NO;
				GCC_OPTIMIZATION_LEVEL = 0;
				GCC_PRECOMPILE_PREFIX_HEADER = YES;
				GCC_PREFIX_HEADER = "Broker/Broker-Prefix.pch";
				GCC_PREPROCESSOR_DEFINITIONS = (
					"DEBUG=1",
					"$(inherited)",
				);
				GCC_SYMBOLS_PRIVATE_EXTERN = NO;
				GCC_VERSION = com.apple.compilers.llvm.clang.1_0;
				GCC_WARN_ABOUT_MISSING_PROTOTYPES = YES;
				GCC_WARN_ABOUT_RETURN_TYPE = YES;
				GCC_WARN_UNUSED_VARIABLE = YES;
				INFOPLIST_FILE = "BrokerTests/BrokerTests-Info.plist";
				IPHONEOS_DEPLOYMENT_TARGET = 7.0;
				OTHER_LDFLAGS = "-ObjC";
				PRODUCT_NAME = "$(TARGET_NAME)";
				SDKROOT = iphoneos;
			};
			name = Coverage;
		};
		DB4C0E1C143D2E770090F5E3 /* Debug */ = {
			isa = XCBuildConfiguration;
			buildSettings = {
				ONLY_ACTIVE_ARCH = YES;
				SCAN_ALL_SOURCE_FILES_FOR_INCLUDES = YES;
				SDKROOT = iphoneos;
			};
			name = Debug;
		};
		DB4C0E1D143D2E770090F5E3 /* Release */ = {
			isa = XCBuildConfiguration;
			buildSettings = {
				SCAN_ALL_SOURCE_FILES_FOR_INCLUDES = YES;
				SDKROOT = iphoneos;
			};
			name = Release;
		};
		DB4C0E45143D2F4F0090F5E3 /* Debug */ = {
			isa = XCBuildConfiguration;
			buildSettings = {
				CLANG_ENABLE_OBJC_ARC = YES;
				COPY_PHASE_STRIP = NO;
				DSTROOT = /tmp/Broker.dst;
				GCC_C_LANGUAGE_STANDARD = gnu99;
				GCC_DYNAMIC_NO_PIC = NO;
				GCC_OPTIMIZATION_LEVEL = 0;
				GCC_PRECOMPILE_PREFIX_HEADER = YES;
				GCC_PREFIX_HEADER = "Broker/Broker-Prefix.pch";
				GCC_SYMBOLS_PRIVATE_EXTERN = NO;
				GCC_WARN_ABOUT_MISSING_PROTOTYPES = YES;
				GCC_WARN_ABOUT_RETURN_TYPE = YES;
				GCC_WARN_UNUSED_VARIABLE = YES;
				IPHONEOS_DEPLOYMENT_TARGET = 6.1;
				OTHER_LDFLAGS = "";
				PRODUCT_NAME = "$(TARGET_NAME)";
				SDKROOT = iphoneos;
				SKIP_INSTALL = YES;
			};
			name = Debug;
		};
		DB4C0E46143D2F4F0090F5E3 /* Release */ = {
			isa = XCBuildConfiguration;
			buildSettings = {
				CLANG_ENABLE_OBJC_ARC = YES;
				COPY_PHASE_STRIP = YES;
				DSTROOT = /tmp/Broker.dst;
				GCC_C_LANGUAGE_STANDARD = gnu99;
				GCC_PRECOMPILE_PREFIX_HEADER = YES;
				GCC_PREFIX_HEADER = "Broker/Broker-Prefix.pch";
				GCC_WARN_ABOUT_MISSING_PROTOTYPES = YES;
				GCC_WARN_ABOUT_RETURN_TYPE = YES;
				GCC_WARN_UNUSED_VARIABLE = YES;
				IPHONEOS_DEPLOYMENT_TARGET = 6.1;
				OTHER_LDFLAGS = "";
				PRODUCT_NAME = "$(TARGET_NAME)";
				SDKROOT = iphoneos;
				SKIP_INSTALL = YES;
				VALIDATE_PRODUCT = YES;
			};
			name = Release;
		};
		DB4C0E48143D2F4F0090F5E3 /* Debug */ = {
			isa = XCBuildConfiguration;
			buildSettings = {
				ALWAYS_SEARCH_USER_PATHS = YES;
				CLANG_ENABLE_OBJC_ARC = YES;
				COPY_PHASE_STRIP = NO;
				FRAMEWORK_SEARCH_PATHS = (
					"$(SDKROOT)/Developer/Library/Frameworks",
					"$(DEVELOPER_FRAMEWORKS_DIR)",
				);
				GCC_C_LANGUAGE_STANDARD = gnu99;
				GCC_DYNAMIC_NO_PIC = NO;
				GCC_OPTIMIZATION_LEVEL = 0;
				GCC_PRECOMPILE_PREFIX_HEADER = YES;
				GCC_PREFIX_HEADER = "Broker/Broker-Prefix.pch";
				GCC_PREPROCESSOR_DEFINITIONS = (
					"DEBUG=1",
					"$(inherited)",
				);
				GCC_SYMBOLS_PRIVATE_EXTERN = NO;
				GCC_VERSION = com.apple.compilers.llvm.clang.1_0;
				GCC_WARN_ABOUT_MISSING_PROTOTYPES = YES;
				GCC_WARN_ABOUT_RETURN_TYPE = YES;
				GCC_WARN_UNUSED_VARIABLE = YES;
				INFOPLIST_FILE = "BrokerTests/BrokerTests-Info.plist";
				IPHONEOS_DEPLOYMENT_TARGET = 7.0;
				OTHER_LDFLAGS = "-ObjC";
				PRODUCT_NAME = "$(TARGET_NAME)";
				SDKROOT = iphoneos;
			};
			name = Debug;
		};
		DB4C0E49143D2F4F0090F5E3 /* Release */ = {
			isa = XCBuildConfiguration;
			buildSettings = {
				ALWAYS_SEARCH_USER_PATHS = YES;
				CLANG_ENABLE_OBJC_ARC = YES;
				COPY_PHASE_STRIP = YES;
				FRAMEWORK_SEARCH_PATHS = (
					"$(SDKROOT)/Developer/Library/Frameworks",
					"$(DEVELOPER_FRAMEWORKS_DIR)",
				);
				GCC_C_LANGUAGE_STANDARD = gnu99;
				GCC_PRECOMPILE_PREFIX_HEADER = YES;
				GCC_PREFIX_HEADER = "Broker/Broker-Prefix.pch";
				GCC_PREPROCESSOR_DEFINITIONS = "";
				GCC_VERSION = com.apple.compilers.llvm.clang.1_0;
				GCC_WARN_ABOUT_MISSING_PROTOTYPES = YES;
				GCC_WARN_ABOUT_RETURN_TYPE = YES;
				GCC_WARN_UNUSED_VARIABLE = YES;
				INFOPLIST_FILE = "BrokerTests/BrokerTests-Info.plist";
				IPHONEOS_DEPLOYMENT_TARGET = 7.0;
				OTHER_LDFLAGS = "-ObjC";
				PRODUCT_NAME = "$(TARGET_NAME)";
				SDKROOT = iphoneos;
				VALIDATE_PRODUCT = YES;
			};
			name = Release;
		};
/* End XCBuildConfiguration section */

/* Begin XCConfigurationList section */
		DB4C0E1A143D2E770090F5E3 /* Build configuration list for PBXProject "Broker" */ = {
			isa = XCConfigurationList;
			buildConfigurations = (
				DB4C0E1C143D2E770090F5E3 /* Debug */,
				886DB2B71823120600A5AA4E /* Coverage */,
				DB4C0E1D143D2E770090F5E3 /* Release */,
			);
			defaultConfigurationIsVisible = 0;
			defaultConfigurationName = Release;
		};
		DB4C0E44143D2F4F0090F5E3 /* Build configuration list for PBXNativeTarget "Broker" */ = {
			isa = XCConfigurationList;
			buildConfigurations = (
				DB4C0E45143D2F4F0090F5E3 /* Debug */,
				886DB2B81823120600A5AA4E /* Coverage */,
				DB4C0E46143D2F4F0090F5E3 /* Release */,
			);
			defaultConfigurationIsVisible = 0;
			defaultConfigurationName = Release;
		};
		DB4C0E47143D2F4F0090F5E3 /* Build configuration list for PBXNativeTarget "BrokerTests" */ = {
			isa = XCConfigurationList;
			buildConfigurations = (
				DB4C0E48143D2F4F0090F5E3 /* Debug */,
				886DB2B91823120600A5AA4E /* Coverage */,
				DB4C0E49143D2F4F0090F5E3 /* Release */,
			);
			defaultConfigurationIsVisible = 0;
			defaultConfigurationName = Release;
		};
/* End XCConfigurationList section */

/* Begin XCVersionGroup section */
		DBFF95C7143D8D80008511EA /* BrokerTestModel.xcdatamodeld */ = {
			isa = XCVersionGroup;
			children = (
				DBFF95C8143D8D80008511EA /* BrokerTestModel.xcdatamodel */,
			);
			currentVersion = DBFF95C8143D8D80008511EA /* BrokerTestModel.xcdatamodel */;
			path = BrokerTestModel.xcdatamodeld;
			sourceTree = "<group>";
			versionGroupType = wrapper.xcdatamodel;
		};
/* End XCVersionGroup section */
	};
	rootObject = DB4C0E17143D2E770090F5E3 /* Project object */;
}
