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

/* Begin PBXBuildFile section */
		09B76D9585ACE7403804D9DC /* libPods-InteropTestsRemoteWithCronet.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 9E9444C764F0FFF64A7EB58E /* libPods-InteropTestsRemoteWithCronet.a */; };
		0F9232F984C08643FD40C34F /* libPods-InteropTestsRemote.a in Frameworks */ = {isa = PBXBuildFile; fileRef = DBE059B4AC7A51919467EEC0 /* libPods-InteropTestsRemote.a */; };
		16A9E77B6E336B3C0B9BA6E0 /* libPods-InteropTestsLocalSSL.a in Frameworks */ = {isa = PBXBuildFile; fileRef = DBEDE45BDA60DF1E1C8950C0 /* libPods-InteropTestsLocalSSL.a */; };
		20DFDF829DD993A4A00D5662 /* libPods-RxLibraryUnitTests.a in Frameworks */ = {isa = PBXBuildFile; fileRef = A58BE6DF1C62D1739EBB2C78 /* libPods-RxLibraryUnitTests.a */; };
		333E8FC01C8285B7C547D799 /* libPods-InteropTestsLocalCleartext.a in Frameworks */ = {isa = PBXBuildFile; fileRef = FD346DB2C23F676C4842F3FF /* libPods-InteropTestsLocalCleartext.a */; };
		3D7C85F6AA68C4A205E3BA16 /* libPods-Tests.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 20DFF2F3C97EF098FE5A3171 /* libPods-Tests.a */; };
		5E8A5DA71D3840B4000F8BC4 /* CoreCronetEnd2EndTests.m in Sources */ = {isa = PBXBuildFile; fileRef = 5E8A5DA61D3840B4000F8BC4 /* CoreCronetEnd2EndTests.m */; };
		5E8A5DA91D3840B4000F8BC4 /* libTests.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 635697C71B14FC11007A7283 /* libTests.a */; };
		5EE84BF41D4717E40050C6CC /* InteropTestsRemoteWithCronet.m in Sources */ = {isa = PBXBuildFile; fileRef = 5EE84BF31D4717E40050C6CC /* InteropTestsRemoteWithCronet.m */; };
		5EE84BF61D4717E40050C6CC /* libTests.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 635697C71B14FC11007A7283 /* libTests.a */; };
		5EE84BFE1D471D400050C6CC /* InteropTests.m in Sources */ = {isa = PBXBuildFile; fileRef = 635ED2EB1B1A3BC400FDE5C3 /* InteropTests.m */; };
		60D2A57ED559F34428C2EEC5 /* libPods-CoreCronetEnd2EndTests.a in Frameworks */ = {isa = PBXBuildFile; fileRef = FBD98AC417B9882D32B19F28 /* libPods-CoreCronetEnd2EndTests.a */; };
		6312AE4E1B1BF49B00341DEE /* GRPCClientTests.m in Sources */ = {isa = PBXBuildFile; fileRef = 6312AE4D1B1BF49B00341DEE /* GRPCClientTests.m */; };
		63423F4A1B150A5F006CF63C /* libTests.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 635697C71B14FC11007A7283 /* libTests.a */; };
		635697CD1B14FC11007A7283 /* Tests.m in Sources */ = {isa = PBXBuildFile; fileRef = 635697CC1B14FC11007A7283 /* Tests.m */; };
		635ED2EC1B1A3BC400FDE5C3 /* InteropTests.m in Sources */ = {isa = PBXBuildFile; fileRef = 635ED2EB1B1A3BC400FDE5C3 /* InteropTests.m */; };
		63715F561B780C020029CB0B /* InteropTestsLocalCleartext.m in Sources */ = {isa = PBXBuildFile; fileRef = 63715F551B780C020029CB0B /* InteropTestsLocalCleartext.m */; };
		6379CC4D1BE1662A001BC0A1 /* InteropTests.m in Sources */ = {isa = PBXBuildFile; fileRef = 635ED2EB1B1A3BC400FDE5C3 /* InteropTests.m */; };
		6379CC4E1BE1662B001BC0A1 /* InteropTests.m in Sources */ = {isa = PBXBuildFile; fileRef = 635ED2EB1B1A3BC400FDE5C3 /* InteropTests.m */; };
		6379CC501BE16703001BC0A1 /* InteropTestsRemote.m in Sources */ = {isa = PBXBuildFile; fileRef = 6379CC4F1BE16703001BC0A1 /* InteropTestsRemote.m */; };
		6379CC511BE1683B001BC0A1 /* InteropTestsRemote.m in Sources */ = {isa = PBXBuildFile; fileRef = 6379CC4F1BE16703001BC0A1 /* InteropTestsRemote.m */; };
		6379CC531BE17709001BC0A1 /* TestCertificates.bundle in Resources */ = {isa = PBXBuildFile; fileRef = 63E240CF1B6C63DC005F3B0E /* TestCertificates.bundle */; };
		63DC84181BE15179000708E8 /* libTests.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 635697C71B14FC11007A7283 /* libTests.a */; };
		63DC841E1BE15180000708E8 /* RxLibraryUnitTests.m in Sources */ = {isa = PBXBuildFile; fileRef = 63423F501B151B77006CF63C /* RxLibraryUnitTests.m */; };
		63DC84281BE15267000708E8 /* libTests.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 635697C71B14FC11007A7283 /* libTests.a */; };
		63DC842E1BE15278000708E8 /* RxLibraryUnitTests.m in Sources */ = {isa = PBXBuildFile; fileRef = 63423F501B151B77006CF63C /* RxLibraryUnitTests.m */; };
		63DC842F1BE1527D000708E8 /* InteropTests.m in Sources */ = {isa = PBXBuildFile; fileRef = 635ED2EB1B1A3BC400FDE5C3 /* InteropTests.m */; };
		63DC84391BE15294000708E8 /* libTests.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 635697C71B14FC11007A7283 /* libTests.a */; };
		63DC84481BE152B5000708E8 /* libTests.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 635697C71B14FC11007A7283 /* libTests.a */; };
		63DC844E1BE15350000708E8 /* InteropTestsLocalCleartext.m in Sources */ = {isa = PBXBuildFile; fileRef = 63715F551B780C020029CB0B /* InteropTestsLocalCleartext.m */; };
		63DC844F1BE15353000708E8 /* InteropTestsLocalSSL.m in Sources */ = {isa = PBXBuildFile; fileRef = 63E240CD1B6C4E2B005F3B0E /* InteropTestsLocalSSL.m */; };
		63DC84501BE153AA000708E8 /* GRPCClientTests.m in Sources */ = {isa = PBXBuildFile; fileRef = 6312AE4D1B1BF49B00341DEE /* GRPCClientTests.m */; };
		63E240CE1B6C4E2B005F3B0E /* InteropTestsLocalSSL.m in Sources */ = {isa = PBXBuildFile; fileRef = 63E240CD1B6C4E2B005F3B0E /* InteropTestsLocalSSL.m */; };
		63E240D01B6C63DC005F3B0E /* TestCertificates.bundle in Resources */ = {isa = PBXBuildFile; fileRef = 63E240CF1B6C63DC005F3B0E /* TestCertificates.bundle */; };
		F15EF7852DC70770EFDB1D2C /* libPods-AllTests.a in Frameworks */ = {isa = PBXBuildFile; fileRef = CAE086D5B470DA367D415AB0 /* libPods-AllTests.a */; };
/* End PBXBuildFile section */

/* Begin PBXContainerItemProxy section */
		5E8A5DAA1D3840B4000F8BC4 /* PBXContainerItemProxy */ = {
			isa = PBXContainerItemProxy;
			containerPortal = 635697BF1B14FC11007A7283 /* Project object */;
			proxyType = 1;
			remoteGlobalIDString = 635697C61B14FC11007A7283;
			remoteInfo = Tests;
		};
		5EE84BF71D4717E40050C6CC /* PBXContainerItemProxy */ = {
			isa = PBXContainerItemProxy;
			containerPortal = 635697BF1B14FC11007A7283 /* Project object */;
			proxyType = 1;
			remoteGlobalIDString = 635697C61B14FC11007A7283;
			remoteInfo = Tests;
		};
		63423F4B1B150A5F006CF63C /* PBXContainerItemProxy */ = {
			isa = PBXContainerItemProxy;
			containerPortal = 635697BF1B14FC11007A7283 /* Project object */;
			proxyType = 1;
			remoteGlobalIDString = 635697C61B14FC11007A7283;
			remoteInfo = Tests;
		};
		63DC84191BE15179000708E8 /* PBXContainerItemProxy */ = {
			isa = PBXContainerItemProxy;
			containerPortal = 635697BF1B14FC11007A7283 /* Project object */;
			proxyType = 1;
			remoteGlobalIDString = 635697C61B14FC11007A7283;
			remoteInfo = Tests;
		};
		63DC84291BE15267000708E8 /* PBXContainerItemProxy */ = {
			isa = PBXContainerItemProxy;
			containerPortal = 635697BF1B14FC11007A7283 /* Project object */;
			proxyType = 1;
			remoteGlobalIDString = 635697C61B14FC11007A7283;
			remoteInfo = Tests;
		};
		63DC843A1BE15294000708E8 /* PBXContainerItemProxy */ = {
			isa = PBXContainerItemProxy;
			containerPortal = 635697BF1B14FC11007A7283 /* Project object */;
			proxyType = 1;
			remoteGlobalIDString = 635697C61B14FC11007A7283;
			remoteInfo = Tests;
		};
		63DC84491BE152B5000708E8 /* PBXContainerItemProxy */ = {
			isa = PBXContainerItemProxy;
			containerPortal = 635697BF1B14FC11007A7283 /* Project object */;
			proxyType = 1;
			remoteGlobalIDString = 635697C61B14FC11007A7283;
			remoteInfo = Tests;
		};
/* End PBXContainerItemProxy section */

/* Begin PBXCopyFilesBuildPhase section */
		635697C51B14FC11007A7283 /* CopyFiles */ = {
			isa = PBXCopyFilesBuildPhase;
			buildActionMask = 2147483647;
			dstPath = "include/$(PRODUCT_NAME)";
			dstSubfolderSpec = 16;
			files = (
			);
			runOnlyForDeploymentPostprocessing = 0;
		};
/* End PBXCopyFilesBuildPhase section */

/* Begin PBXFileReference section */
		060EF32D7EC0DF67ED617507 /* Pods-Tests.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Tests.debug.xcconfig"; path = "Pods/Target Support Files/Pods-Tests/Pods-Tests.debug.xcconfig"; sourceTree = "<group>"; };
		07D10A965323BEA7FE59A74B /* Pods-RxLibraryUnitTests.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-RxLibraryUnitTests.debug.xcconfig"; path = "Pods/Target Support Files/Pods-RxLibraryUnitTests/Pods-RxLibraryUnitTests.debug.xcconfig"; sourceTree = "<group>"; };
		0A4F89D9C90E9C30990218F0 /* Pods.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = Pods.release.xcconfig; path = "Pods/Target Support Files/Pods/Pods.release.xcconfig"; sourceTree = "<group>"; };
		0D2284C3DF7E57F0ED504E39 /* Pods-CoreCronetEnd2EndTests.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-CoreCronetEnd2EndTests.debug.xcconfig"; path = "Pods/Target Support Files/Pods-CoreCronetEnd2EndTests/Pods-CoreCronetEnd2EndTests.debug.xcconfig"; sourceTree = "<group>"; };
		14B09A58FEE53A7A6B838920 /* Pods-InteropTestsLocalSSL.cronet.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-InteropTestsLocalSSL.cronet.xcconfig"; path = "Pods/Target Support Files/Pods-InteropTestsLocalSSL/Pods-InteropTestsLocalSSL.cronet.xcconfig"; sourceTree = "<group>"; };
		17F60BF2871F6AF85FB3FA12 /* Pods-InteropTestsRemoteWithCronet.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-InteropTestsRemoteWithCronet.debug.xcconfig"; path = "Pods/Target Support Files/Pods-InteropTestsRemoteWithCronet/Pods-InteropTestsRemoteWithCronet.debug.xcconfig"; sourceTree = "<group>"; };
		20DFF2F3C97EF098FE5A3171 /* libPods-Tests.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = "libPods-Tests.a"; sourceTree = BUILT_PRODUCTS_DIR; };
		35F2B6BF3BAE8F0DC4AFD76E /* libPods.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = libPods.a; sourceTree = BUILT_PRODUCTS_DIR; };
		3B0861FC805389C52DB260D4 /* Pods-RxLibraryUnitTests.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-RxLibraryUnitTests.release.xcconfig"; path = "Pods/Target Support Files/Pods-RxLibraryUnitTests/Pods-RxLibraryUnitTests.release.xcconfig"; sourceTree = "<group>"; };
		3F27B2E744482771EB93C394 /* Pods-InteropTestsRemoteWithCronet.cronet.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-InteropTestsRemoteWithCronet.cronet.xcconfig"; path = "Pods/Target Support Files/Pods-InteropTestsRemoteWithCronet/Pods-InteropTestsRemoteWithCronet.cronet.xcconfig"; sourceTree = "<group>"; };
		4AD97096D13D7416DC91A72A /* Pods-CoreCronetEnd2EndTests.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-CoreCronetEnd2EndTests.release.xcconfig"; path = "Pods/Target Support Files/Pods-CoreCronetEnd2EndTests/Pods-CoreCronetEnd2EndTests.release.xcconfig"; sourceTree = "<group>"; };
		4ADEA1C8BBE10D90940AC68E /* Pods-InteropTestsRemote.cronet.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-InteropTestsRemote.cronet.xcconfig"; path = "Pods/Target Support Files/Pods-InteropTestsRemote/Pods-InteropTestsRemote.cronet.xcconfig"; sourceTree = "<group>"; };
		51A275E86C141416ED63FF76 /* Pods-InteropTestsLocalCleartext.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-InteropTestsLocalCleartext.release.xcconfig"; path = "Pods/Target Support Files/Pods-InteropTestsLocalCleartext/Pods-InteropTestsLocalCleartext.release.xcconfig"; sourceTree = "<group>"; };
		553BBBED24E4162D1F769D65 /* Pods-InteropTestsLocalSSL.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-InteropTestsLocalSSL.debug.xcconfig"; path = "Pods/Target Support Files/Pods-InteropTestsLocalSSL/Pods-InteropTestsLocalSSL.debug.xcconfig"; sourceTree = "<group>"; };
		573450F334B331D0BED8B961 /* Pods-CoreCronetEnd2EndTests.cronet.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-CoreCronetEnd2EndTests.cronet.xcconfig"; path = "Pods/Target Support Files/Pods-CoreCronetEnd2EndTests/Pods-CoreCronetEnd2EndTests.cronet.xcconfig"; sourceTree = "<group>"; };
		5761E98978DDDF136A58CB7E /* Pods-AllTests.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-AllTests.release.xcconfig"; path = "Pods/Target Support Files/Pods-AllTests/Pods-AllTests.release.xcconfig"; sourceTree = "<group>"; };
		5E8A5DA41D3840B4000F8BC4 /* CoreCronetEnd2EndTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = CoreCronetEnd2EndTests.xctest; sourceTree = BUILT_PRODUCTS_DIR; };
		5E8A5DA61D3840B4000F8BC4 /* CoreCronetEnd2EndTests.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = CoreCronetEnd2EndTests.m; sourceTree = "<group>"; };
		5EE84BF11D4717E40050C6CC /* InteropTestsRemoteWithCronet.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = InteropTestsRemoteWithCronet.xctest; sourceTree = BUILT_PRODUCTS_DIR; };
		5EE84BF31D4717E40050C6CC /* InteropTestsRemoteWithCronet.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = InteropTestsRemoteWithCronet.m; sourceTree = "<group>"; };
		5EE84BF51D4717E40050C6CC /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = "<group>"; };
		6312AE4D1B1BF49B00341DEE /* GRPCClientTests.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = GRPCClientTests.m; sourceTree = "<group>"; };
		63423F441B150A5F006CF63C /* AllTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = AllTests.xctest; sourceTree = BUILT_PRODUCTS_DIR; };
		63423F501B151B77006CF63C /* RxLibraryUnitTests.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = RxLibraryUnitTests.m; sourceTree = "<group>"; };
		635697C71B14FC11007A7283 /* libTests.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = libTests.a; sourceTree = BUILT_PRODUCTS_DIR; };
		635697CC1B14FC11007A7283 /* Tests.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = Tests.m; sourceTree = "<group>"; };
		635697D81B14FC11007A7283 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = "<group>"; };
		635ED2EB1B1A3BC400FDE5C3 /* InteropTests.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = InteropTests.m; sourceTree = "<group>"; };
		63715F551B780C020029CB0B /* InteropTestsLocalCleartext.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = InteropTestsLocalCleartext.m; sourceTree = "<group>"; };
		6379CC4F1BE16703001BC0A1 /* InteropTestsRemote.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = InteropTestsRemote.m; sourceTree = "<group>"; };
		63DC84131BE15179000708E8 /* RxLibraryUnitTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = RxLibraryUnitTests.xctest; sourceTree = BUILT_PRODUCTS_DIR; };
		63DC84231BE15267000708E8 /* InteropTestsRemote.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = InteropTestsRemote.xctest; sourceTree = BUILT_PRODUCTS_DIR; };
		63DC84341BE15294000708E8 /* InteropTestsLocalSSL.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = InteropTestsLocalSSL.xctest; sourceTree = BUILT_PRODUCTS_DIR; };
		63DC84431BE152B5000708E8 /* InteropTestsLocalCleartext.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = InteropTestsLocalCleartext.xctest; sourceTree = BUILT_PRODUCTS_DIR; };
		63E240CC1B6C4D3A005F3B0E /* InteropTests.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = InteropTests.h; sourceTree = "<group>"; };
		63E240CD1B6C4E2B005F3B0E /* InteropTestsLocalSSL.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = InteropTestsLocalSSL.m; sourceTree = "<group>"; };
		63E240CF1B6C63DC005F3B0E /* TestCertificates.bundle */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.plug-in"; path = TestCertificates.bundle; sourceTree = "<group>"; };
		79C68EFFCB5533475D810B79 /* Pods-RxLibraryUnitTests.cronet.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-RxLibraryUnitTests.cronet.xcconfig"; path = "Pods/Target Support Files/Pods-RxLibraryUnitTests/Pods-RxLibraryUnitTests.cronet.xcconfig"; sourceTree = "<group>"; };
		7A2E97E3F469CC2A758D77DE /* Pods-InteropTestsLocalSSL.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-InteropTestsLocalSSL.release.xcconfig"; path = "Pods/Target Support Files/Pods-InteropTestsLocalSSL/Pods-InteropTestsLocalSSL.release.xcconfig"; sourceTree = "<group>"; };
		9E9444C764F0FFF64A7EB58E /* libPods-InteropTestsRemoteWithCronet.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = "libPods-InteropTestsRemoteWithCronet.a"; sourceTree = BUILT_PRODUCTS_DIR; };
		A58BE6DF1C62D1739EBB2C78 /* libPods-RxLibraryUnitTests.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = "libPods-RxLibraryUnitTests.a"; sourceTree = BUILT_PRODUCTS_DIR; };
		AA7CB64B4DD9915AE7C03163 /* Pods-InteropTestsLocalCleartext.cronet.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-InteropTestsLocalCleartext.cronet.xcconfig"; path = "Pods/Target Support Files/Pods-InteropTestsLocalCleartext/Pods-InteropTestsLocalCleartext.cronet.xcconfig"; sourceTree = "<group>"; };
		AC414EF7A6BF76ED02B6E480 /* Pods-InteropTestsRemoteWithCronet.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-InteropTestsRemoteWithCronet.release.xcconfig"; path = "Pods/Target Support Files/Pods-InteropTestsRemoteWithCronet/Pods-InteropTestsRemoteWithCronet.release.xcconfig"; sourceTree = "<group>"; };
		B94C27C06733CF98CE1B2757 /* Pods-AllTests.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-AllTests.debug.xcconfig"; path = "Pods/Target Support Files/Pods-AllTests/Pods-AllTests.debug.xcconfig"; sourceTree = "<group>"; };
		CAE086D5B470DA367D415AB0 /* libPods-AllTests.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = "libPods-AllTests.a"; sourceTree = BUILT_PRODUCTS_DIR; };
		DBE059B4AC7A51919467EEC0 /* libPods-InteropTestsRemote.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = "libPods-InteropTestsRemote.a"; sourceTree = BUILT_PRODUCTS_DIR; };
		DBEDE45BDA60DF1E1C8950C0 /* libPods-InteropTestsLocalSSL.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = "libPods-InteropTestsLocalSSL.a"; sourceTree = BUILT_PRODUCTS_DIR; };
		DC3CA1D948F068E76957A861 /* Pods-InteropTestsRemote.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-InteropTestsRemote.debug.xcconfig"; path = "Pods/Target Support Files/Pods-InteropTestsRemote/Pods-InteropTestsRemote.debug.xcconfig"; sourceTree = "<group>"; };
		E1486220285AF123EB124008 /* Pods-InteropTestsLocalCleartext.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-InteropTestsLocalCleartext.debug.xcconfig"; path = "Pods/Target Support Files/Pods-InteropTestsLocalCleartext/Pods-InteropTestsLocalCleartext.debug.xcconfig"; sourceTree = "<group>"; };
		E4275A759BDBDF143B9B438F /* Pods-InteropTestsRemote.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-InteropTestsRemote.release.xcconfig"; path = "Pods/Target Support Files/Pods-InteropTestsRemote/Pods-InteropTestsRemote.release.xcconfig"; sourceTree = "<group>"; };
		E6733B838B28453434B556E2 /* Pods-Tests.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Tests.release.xcconfig"; path = "Pods/Target Support Files/Pods-Tests/Pods-Tests.release.xcconfig"; sourceTree = "<group>"; };
		E7E4D3FD76E3B745D992AF5F /* Pods-AllTests.cronet.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-AllTests.cronet.xcconfig"; path = "Pods/Target Support Files/Pods-AllTests/Pods-AllTests.cronet.xcconfig"; sourceTree = "<group>"; };
		F671D4CAD2864FB203B920B4 /* Pods-Tests.cronet.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Tests.cronet.xcconfig"; path = "Pods/Target Support Files/Pods-Tests/Pods-Tests.cronet.xcconfig"; sourceTree = "<group>"; };
		FBD98AC417B9882D32B19F28 /* libPods-CoreCronetEnd2EndTests.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = "libPods-CoreCronetEnd2EndTests.a"; sourceTree = BUILT_PRODUCTS_DIR; };
		FD346DB2C23F676C4842F3FF /* libPods-InteropTestsLocalCleartext.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = "libPods-InteropTestsLocalCleartext.a"; sourceTree = BUILT_PRODUCTS_DIR; };
		FF7B5489BCFE40111D768DD0 /* Pods.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = Pods.debug.xcconfig; path = "Pods/Target Support Files/Pods/Pods.debug.xcconfig"; sourceTree = "<group>"; };
/* End PBXFileReference section */

/* Begin PBXFrameworksBuildPhase section */
		5E8A5DA11D3840B4000F8BC4 /* Frameworks */ = {
			isa = PBXFrameworksBuildPhase;
			buildActionMask = 2147483647;
			files = (
				5E8A5DA91D3840B4000F8BC4 /* libTests.a in Frameworks */,
				60D2A57ED559F34428C2EEC5 /* libPods-CoreCronetEnd2EndTests.a in Frameworks */,
			);
			runOnlyForDeploymentPostprocessing = 0;
		};
		5EE84BEE1D4717E40050C6CC /* Frameworks */ = {
			isa = PBXFrameworksBuildPhase;
			buildActionMask = 2147483647;
			files = (
				5EE84BF61D4717E40050C6CC /* libTests.a in Frameworks */,
				09B76D9585ACE7403804D9DC /* libPods-InteropTestsRemoteWithCronet.a in Frameworks */,
			);
			runOnlyForDeploymentPostprocessing = 0;
		};
		63423F411B150A5F006CF63C /* Frameworks */ = {
			isa = PBXFrameworksBuildPhase;
			buildActionMask = 2147483647;
			files = (
				63423F4A1B150A5F006CF63C /* libTests.a in Frameworks */,
				F15EF7852DC70770EFDB1D2C /* libPods-AllTests.a in Frameworks */,
			);
			runOnlyForDeploymentPostprocessing = 0;
		};
		635697C41B14FC11007A7283 /* Frameworks */ = {
			isa = PBXFrameworksBuildPhase;
			buildActionMask = 2147483647;
			files = (
				3D7C85F6AA68C4A205E3BA16 /* libPods-Tests.a in Frameworks */,
			);
			runOnlyForDeploymentPostprocessing = 0;
		};
		63DC84101BE15179000708E8 /* Frameworks */ = {
			isa = PBXFrameworksBuildPhase;
			buildActionMask = 2147483647;
			files = (
				63DC84181BE15179000708E8 /* libTests.a in Frameworks */,
				20DFDF829DD993A4A00D5662 /* libPods-RxLibraryUnitTests.a in Frameworks */,
			);
			runOnlyForDeploymentPostprocessing = 0;
		};
		63DC84201BE15267000708E8 /* Frameworks */ = {
			isa = PBXFrameworksBuildPhase;
			buildActionMask = 2147483647;
			files = (
				63DC84281BE15267000708E8 /* libTests.a in Frameworks */,
				0F9232F984C08643FD40C34F /* libPods-InteropTestsRemote.a in Frameworks */,
			);
			runOnlyForDeploymentPostprocessing = 0;
		};
		63DC84311BE15294000708E8 /* Frameworks */ = {
			isa = PBXFrameworksBuildPhase;
			buildActionMask = 2147483647;
			files = (
				63DC84391BE15294000708E8 /* libTests.a in Frameworks */,
				16A9E77B6E336B3C0B9BA6E0 /* libPods-InteropTestsLocalSSL.a in Frameworks */,
			);
			runOnlyForDeploymentPostprocessing = 0;
		};
		63DC84401BE152B5000708E8 /* Frameworks */ = {
			isa = PBXFrameworksBuildPhase;
			buildActionMask = 2147483647;
			files = (
				63DC84481BE152B5000708E8 /* libTests.a in Frameworks */,
				333E8FC01C8285B7C547D799 /* libPods-InteropTestsLocalCleartext.a in Frameworks */,
			);
			runOnlyForDeploymentPostprocessing = 0;
		};
/* End PBXFrameworksBuildPhase section */

/* Begin PBXGroup section */
		136D535E19727099B941D7B1 /* Frameworks */ = {
			isa = PBXGroup;
			children = (
				35F2B6BF3BAE8F0DC4AFD76E /* libPods.a */,
				CAE086D5B470DA367D415AB0 /* libPods-AllTests.a */,
				FD346DB2C23F676C4842F3FF /* libPods-InteropTestsLocalCleartext.a */,
				DBEDE45BDA60DF1E1C8950C0 /* libPods-InteropTestsLocalSSL.a */,
				DBE059B4AC7A51919467EEC0 /* libPods-InteropTestsRemote.a */,
				A58BE6DF1C62D1739EBB2C78 /* libPods-RxLibraryUnitTests.a */,
				20DFF2F3C97EF098FE5A3171 /* libPods-Tests.a */,
				FBD98AC417B9882D32B19F28 /* libPods-CoreCronetEnd2EndTests.a */,
				9E9444C764F0FFF64A7EB58E /* libPods-InteropTestsRemoteWithCronet.a */,
			);
			name = Frameworks;
			sourceTree = "<group>";
		};
		51E4650F34F854F41FF053B3 /* Pods */ = {
			isa = PBXGroup;
			children = (
				FF7B5489BCFE40111D768DD0 /* Pods.debug.xcconfig */,
				0A4F89D9C90E9C30990218F0 /* Pods.release.xcconfig */,
				B94C27C06733CF98CE1B2757 /* Pods-AllTests.debug.xcconfig */,
				5761E98978DDDF136A58CB7E /* Pods-AllTests.release.xcconfig */,
				E1486220285AF123EB124008 /* Pods-InteropTestsLocalCleartext.debug.xcconfig */,
				51A275E86C141416ED63FF76 /* Pods-InteropTestsLocalCleartext.release.xcconfig */,
				553BBBED24E4162D1F769D65 /* Pods-InteropTestsLocalSSL.debug.xcconfig */,
				7A2E97E3F469CC2A758D77DE /* Pods-InteropTestsLocalSSL.release.xcconfig */,
				DC3CA1D948F068E76957A861 /* Pods-InteropTestsRemote.debug.xcconfig */,
				E4275A759BDBDF143B9B438F /* Pods-InteropTestsRemote.release.xcconfig */,
				07D10A965323BEA7FE59A74B /* Pods-RxLibraryUnitTests.debug.xcconfig */,
				3B0861FC805389C52DB260D4 /* Pods-RxLibraryUnitTests.release.xcconfig */,
				060EF32D7EC0DF67ED617507 /* Pods-Tests.debug.xcconfig */,
				E6733B838B28453434B556E2 /* Pods-Tests.release.xcconfig */,
				0D2284C3DF7E57F0ED504E39 /* Pods-CoreCronetEnd2EndTests.debug.xcconfig */,
				4AD97096D13D7416DC91A72A /* Pods-CoreCronetEnd2EndTests.release.xcconfig */,
				17F60BF2871F6AF85FB3FA12 /* Pods-InteropTestsRemoteWithCronet.debug.xcconfig */,
				AC414EF7A6BF76ED02B6E480 /* Pods-InteropTestsRemoteWithCronet.release.xcconfig */,
				E7E4D3FD76E3B745D992AF5F /* Pods-AllTests.cronet.xcconfig */,
				573450F334B331D0BED8B961 /* Pods-CoreCronetEnd2EndTests.cronet.xcconfig */,
				AA7CB64B4DD9915AE7C03163 /* Pods-InteropTestsLocalCleartext.cronet.xcconfig */,
				14B09A58FEE53A7A6B838920 /* Pods-InteropTestsLocalSSL.cronet.xcconfig */,
				4ADEA1C8BBE10D90940AC68E /* Pods-InteropTestsRemote.cronet.xcconfig */,
				3F27B2E744482771EB93C394 /* Pods-InteropTestsRemoteWithCronet.cronet.xcconfig */,
				79C68EFFCB5533475D810B79 /* Pods-RxLibraryUnitTests.cronet.xcconfig */,
				F671D4CAD2864FB203B920B4 /* Pods-Tests.cronet.xcconfig */,
			);
			name = Pods;
			sourceTree = "<group>";
		};
		5E8A5DA51D3840B4000F8BC4 /* CoreCronetEnd2EndTests */ = {
			isa = PBXGroup;
			children = (
				5E8A5DA61D3840B4000F8BC4 /* CoreCronetEnd2EndTests.m */,
			);
			path = CoreCronetEnd2EndTests;
			sourceTree = "<group>";
		};
		5EE84BF21D4717E40050C6CC /* InteropTestsRemoteWithCronet */ = {
			isa = PBXGroup;
			children = (
				5EE84BF31D4717E40050C6CC /* InteropTestsRemoteWithCronet.m */,
				5EE84BF51D4717E40050C6CC /* Info.plist */,
			);
			path = InteropTestsRemoteWithCronet;
			sourceTree = "<group>";
		};
		635697BE1B14FC11007A7283 = {
			isa = PBXGroup;
			children = (
				635697C91B14FC11007A7283 /* Tests */,
				63E240CF1B6C63DC005F3B0E /* TestCertificates.bundle */,
				5E8A5DA51D3840B4000F8BC4 /* CoreCronetEnd2EndTests */,
				5EE84BF21D4717E40050C6CC /* InteropTestsRemoteWithCronet */,
				635697C81B14FC11007A7283 /* Products */,
				51E4650F34F854F41FF053B3 /* Pods */,
				136D535E19727099B941D7B1 /* Frameworks */,
			);
			sourceTree = "<group>";
		};
		635697C81B14FC11007A7283 /* Products */ = {
			isa = PBXGroup;
			children = (
				635697C71B14FC11007A7283 /* libTests.a */,
				63423F441B150A5F006CF63C /* AllTests.xctest */,
				63DC84131BE15179000708E8 /* RxLibraryUnitTests.xctest */,
				63DC84231BE15267000708E8 /* InteropTestsRemote.xctest */,
				63DC84341BE15294000708E8 /* InteropTestsLocalSSL.xctest */,
				63DC84431BE152B5000708E8 /* InteropTestsLocalCleartext.xctest */,
				5E8A5DA41D3840B4000F8BC4 /* CoreCronetEnd2EndTests.xctest */,
				5EE84BF11D4717E40050C6CC /* InteropTestsRemoteWithCronet.xctest */,
			);
			name = Products;
			sourceTree = "<group>";
		};
		635697C91B14FC11007A7283 /* Tests */ = {
			isa = PBXGroup;
			children = (
				6312AE4D1B1BF49B00341DEE /* GRPCClientTests.m */,
				63E240CC1B6C4D3A005F3B0E /* InteropTests.h */,
				635ED2EB1B1A3BC400FDE5C3 /* InteropTests.m */,
				6379CC4F1BE16703001BC0A1 /* InteropTestsRemote.m */,
				63E240CD1B6C4E2B005F3B0E /* InteropTestsLocalSSL.m */,
				63715F551B780C020029CB0B /* InteropTestsLocalCleartext.m */,
				63423F501B151B77006CF63C /* RxLibraryUnitTests.m */,
				635697CC1B14FC11007A7283 /* Tests.m */,
				635697D71B14FC11007A7283 /* Supporting Files */,
			);
			name = Tests;
			sourceTree = SOURCE_ROOT;
		};
		635697D71B14FC11007A7283 /* Supporting Files */ = {
			isa = PBXGroup;
			children = (
				635697D81B14FC11007A7283 /* Info.plist */,
			);
			name = "Supporting Files";
			sourceTree = "<group>";
		};
/* End PBXGroup section */

/* Begin PBXNativeTarget section */
		5E8A5DA31D3840B4000F8BC4 /* CoreCronetEnd2EndTests */ = {
			isa = PBXNativeTarget;
			buildConfigurationList = 5E8A5DAE1D3840B4000F8BC4 /* Build configuration list for PBXNativeTarget "CoreCronetEnd2EndTests" */;
			buildPhases = (
				F58F17E425446B15028B9F74 /* [CP] Check Pods Manifest.lock */,
				5E8A5DA01D3840B4000F8BC4 /* Sources */,
				5E8A5DA11D3840B4000F8BC4 /* Frameworks */,
				5E8A5DA21D3840B4000F8BC4 /* Resources */,
				E63468C760D0724F18861822 /* [CP] Embed Pods Frameworks */,
				6DFE9E77CAB5760196D79E0F /* [CP] Copy Pods Resources */,
			);
			buildRules = (
			);
			dependencies = (
				5E8A5DAB1D3840B4000F8BC4 /* PBXTargetDependency */,
			);
			name = CoreCronetEnd2EndTests;
			productName = CoreCronetEnd2EndTests;
			productReference = 5E8A5DA41D3840B4000F8BC4 /* CoreCronetEnd2EndTests.xctest */;
			productType = "com.apple.product-type.bundle.unit-test";
		};
		5EE84BF01D4717E40050C6CC /* InteropTestsRemoteWithCronet */ = {
			isa = PBXNativeTarget;
			buildConfigurationList = 5EE84BFB1D4717E40050C6CC /* Build configuration list for PBXNativeTarget "InteropTestsRemoteWithCronet" */;
			buildPhases = (
				C0F7B1FF6F88CC5FBF362F4C /* [CP] Check Pods Manifest.lock */,
				5EE84BED1D4717E40050C6CC /* Sources */,
				5EE84BEE1D4717E40050C6CC /* Frameworks */,
				5EE84BEF1D4717E40050C6CC /* Resources */,
				31F8D1C407195CBF0C02929B /* [CP] Embed Pods Frameworks */,
				DB4D0E73C229F2FF3B364AB3 /* [CP] Copy Pods Resources */,
			);
			buildRules = (
			);
			dependencies = (
				5EE84BF81D4717E40050C6CC /* PBXTargetDependency */,
			);
			name = InteropTestsRemoteWithCronet;
			productName = InteropTestsRemoteWithCronet;
			productReference = 5EE84BF11D4717E40050C6CC /* InteropTestsRemoteWithCronet.xctest */;
			productType = "com.apple.product-type.bundle.unit-test";
		};
		63423F431B150A5F006CF63C /* AllTests */ = {
			isa = PBXNativeTarget;
			buildConfigurationList = 63423F4D1B150A5F006CF63C /* Build configuration list for PBXNativeTarget "AllTests" */;
			buildPhases = (
				914ADDD7106BA9BB8A7E569F /* [CP] Check Pods Manifest.lock */,
				63423F401B150A5F006CF63C /* Sources */,
				63423F411B150A5F006CF63C /* Frameworks */,
				63423F421B150A5F006CF63C /* Resources */,
				A441F71824DCB9D0CA297748 /* [CP] Copy Pods Resources */,
				5F14F59509E10C2852014F9E /* [CP] Embed Pods Frameworks */,
			);
			buildRules = (
			);
			dependencies = (
				63423F4C1B150A5F006CF63C /* PBXTargetDependency */,
			);
			name = AllTests;
			productName = AllTests;
			productReference = 63423F441B150A5F006CF63C /* AllTests.xctest */;
			productType = "com.apple.product-type.bundle.unit-test";
		};
		635697C61B14FC11007A7283 /* Tests */ = {
			isa = PBXNativeTarget;
			buildConfigurationList = 635697DB1B14FC11007A7283 /* Build configuration list for PBXNativeTarget "Tests" */;
			buildPhases = (
				796680C7599CB4ED736DD62A /* [CP] Check Pods Manifest.lock */,
				635697C31B14FC11007A7283 /* Sources */,
				635697C41B14FC11007A7283 /* Frameworks */,
				635697C51B14FC11007A7283 /* CopyFiles */,
				AEEBFC914CBAEE347382E8C4 /* [CP] Copy Pods Resources */,
			);
			buildRules = (
			);
			dependencies = (
			);
			name = Tests;
			productName = Tests;
			productReference = 635697C71B14FC11007A7283 /* libTests.a */;
			productType = "com.apple.product-type.library.static";
		};
		63DC84121BE15179000708E8 /* RxLibraryUnitTests */ = {
			isa = PBXNativeTarget;
			buildConfigurationList = 63DC841B1BE15179000708E8 /* Build configuration list for PBXNativeTarget "RxLibraryUnitTests" */;
			buildPhases = (
				B2986CEEE8CDD4901C97598B /* [CP] Check Pods Manifest.lock */,
				63DC840F1BE15179000708E8 /* Sources */,
				63DC84101BE15179000708E8 /* Frameworks */,
				63DC84111BE15179000708E8 /* Resources */,
				4F5690DC0E6AD6663FE78B8B /* [CP] Embed Pods Frameworks */,
				C977426A8727267BBAC7D48E /* [CP] Copy Pods Resources */,
			);
			buildRules = (
			);
			dependencies = (
				63DC841A1BE15179000708E8 /* PBXTargetDependency */,
			);
			name = RxLibraryUnitTests;
			productName = RxLibraryUnitTests;
			productReference = 63DC84131BE15179000708E8 /* RxLibraryUnitTests.xctest */;
			productType = "com.apple.product-type.bundle.unit-test";
		};
		63DC84221BE15267000708E8 /* InteropTestsRemote */ = {
			isa = PBXNativeTarget;
			buildConfigurationList = 63DC842B1BE15267000708E8 /* Build configuration list for PBXNativeTarget "InteropTestsRemote" */;
			buildPhases = (
				4C406327D3907A5E5FBA8AC9 /* [CP] Check Pods Manifest.lock */,
				63DC841F1BE15267000708E8 /* Sources */,
				63DC84201BE15267000708E8 /* Frameworks */,
				63DC84211BE15267000708E8 /* Resources */,
				900B6EDD4D16BE7D765C3885 /* [CP] Embed Pods Frameworks */,
				C2E09DC4BD239F71160F0CC1 /* [CP] Copy Pods Resources */,
			);
			buildRules = (
			);
			dependencies = (
				63DC842A1BE15267000708E8 /* PBXTargetDependency */,
			);
			name = InteropTestsRemote;
			productName = InteropTests;
			productReference = 63DC84231BE15267000708E8 /* InteropTestsRemote.xctest */;
			productType = "com.apple.product-type.bundle.unit-test";
		};
		63DC84331BE15294000708E8 /* InteropTestsLocalSSL */ = {
			isa = PBXNativeTarget;
			buildConfigurationList = 63DC843C1BE15294000708E8 /* Build configuration list for PBXNativeTarget "InteropTestsLocalSSL" */;
			buildPhases = (
				5C20DCCB71C3991E6FE78C22 /* [CP] Check Pods Manifest.lock */,
				63DC84301BE15294000708E8 /* Sources */,
				63DC84311BE15294000708E8 /* Frameworks */,
				63DC84321BE15294000708E8 /* Resources */,
				C591129ACE9F6CC5EE03FCDE /* [CP] Embed Pods Frameworks */,
				693DD0B453431D64EA24FD66 /* [CP] Copy Pods Resources */,
			);
			buildRules = (
			);
			dependencies = (
				63DC843B1BE15294000708E8 /* PBXTargetDependency */,
			);
			name = InteropTestsLocalSSL;
			productName = InteropTestsLocalSSL;
			productReference = 63DC84341BE15294000708E8 /* InteropTestsLocalSSL.xctest */;
			productType = "com.apple.product-type.bundle.unit-test";
		};
		63DC84421BE152B5000708E8 /* InteropTestsLocalCleartext */ = {
			isa = PBXNativeTarget;
			buildConfigurationList = 63DC844B1BE152B5000708E8 /* Build configuration list for PBXNativeTarget "InteropTestsLocalCleartext" */;
			buildPhases = (
				7418AC7B3844B29E48D24FC7 /* [CP] Check Pods Manifest.lock */,
				63DC843F1BE152B5000708E8 /* Sources */,
				63DC84401BE152B5000708E8 /* Frameworks */,
				63DC84411BE152B5000708E8 /* Resources */,
				A8E3AC66DF770B774114A30E /* [CP] Embed Pods Frameworks */,
				8AD3130D3C58A0FB32FF2A36 /* [CP] Copy Pods Resources */,
			);
			buildRules = (
			);
			dependencies = (
				63DC844A1BE152B5000708E8 /* PBXTargetDependency */,
			);
			name = InteropTestsLocalCleartext;
			productName = InteropTestsLocalCleartext;
			productReference = 63DC84431BE152B5000708E8 /* InteropTestsLocalCleartext.xctest */;
			productType = "com.apple.product-type.bundle.unit-test";
		};
/* End PBXNativeTarget section */

/* Begin PBXProject section */
		635697BF1B14FC11007A7283 /* Project object */ = {
			isa = PBXProject;
			attributes = {
				LastUpgradeCheck = 0630;
				ORGANIZATIONNAME = gRPC;
				TargetAttributes = {
					5E8A5DA31D3840B4000F8BC4 = {
						CreatedOnToolsVersion = 7.3.1;
					};
					5EE84BF01D4717E40050C6CC = {
						CreatedOnToolsVersion = 7.3.1;
					};
					63423F431B150A5F006CF63C = {
						CreatedOnToolsVersion = 6.3.1;
					};
					635697C61B14FC11007A7283 = {
						CreatedOnToolsVersion = 6.3.1;
					};
					63DC84121BE15179000708E8 = {
						CreatedOnToolsVersion = 7.0.1;
					};
					63DC84221BE15267000708E8 = {
						CreatedOnToolsVersion = 7.0.1;
					};
					63DC84331BE15294000708E8 = {
						CreatedOnToolsVersion = 7.0.1;
					};
					63DC84421BE152B5000708E8 = {
						CreatedOnToolsVersion = 7.0.1;
					};
				};
			};
			buildConfigurationList = 635697C21B14FC11007A7283 /* Build configuration list for PBXProject "Tests" */;
			compatibilityVersion = "Xcode 3.2";
			developmentRegion = English;
			hasScannedForEncodings = 0;
			knownRegions = (
				en,
			);
			mainGroup = 635697BE1B14FC11007A7283;
			productRefGroup = 635697C81B14FC11007A7283 /* Products */;
			projectDirPath = "";
			projectRoot = "";
			targets = (
				635697C61B14FC11007A7283 /* Tests */,
				63423F431B150A5F006CF63C /* AllTests */,
				63DC84121BE15179000708E8 /* RxLibraryUnitTests */,
				63DC84221BE15267000708E8 /* InteropTestsRemote */,
				63DC84331BE15294000708E8 /* InteropTestsLocalSSL */,
				63DC84421BE152B5000708E8 /* InteropTestsLocalCleartext */,
				5E8A5DA31D3840B4000F8BC4 /* CoreCronetEnd2EndTests */,
				5EE84BF01D4717E40050C6CC /* InteropTestsRemoteWithCronet */,
			);
		};
/* End PBXProject section */

/* Begin PBXResourcesBuildPhase section */
		5E8A5DA21D3840B4000F8BC4 /* Resources */ = {
			isa = PBXResourcesBuildPhase;
			buildActionMask = 2147483647;
			files = (
			);
			runOnlyForDeploymentPostprocessing = 0;
		};
		5EE84BEF1D4717E40050C6CC /* Resources */ = {
			isa = PBXResourcesBuildPhase;
			buildActionMask = 2147483647;
			files = (
			);
			runOnlyForDeploymentPostprocessing = 0;
		};
		63423F421B150A5F006CF63C /* Resources */ = {
			isa = PBXResourcesBuildPhase;
			buildActionMask = 2147483647;
			files = (
				63E240D01B6C63DC005F3B0E /* TestCertificates.bundle in Resources */,
			);
			runOnlyForDeploymentPostprocessing = 0;
		};
		63DC84111BE15179000708E8 /* Resources */ = {
			isa = PBXResourcesBuildPhase;
			buildActionMask = 2147483647;
			files = (
			);
			runOnlyForDeploymentPostprocessing = 0;
		};
		63DC84211BE15267000708E8 /* Resources */ = {
			isa = PBXResourcesBuildPhase;
			buildActionMask = 2147483647;
			files = (
			);
			runOnlyForDeploymentPostprocessing = 0;
		};
		63DC84321BE15294000708E8 /* Resources */ = {
			isa = PBXResourcesBuildPhase;
			buildActionMask = 2147483647;
			files = (
				6379CC531BE17709001BC0A1 /* TestCertificates.bundle in Resources */,
			);
			runOnlyForDeploymentPostprocessing = 0;
		};
		63DC84411BE152B5000708E8 /* Resources */ = {
			isa = PBXResourcesBuildPhase;
			buildActionMask = 2147483647;
			files = (
			);
			runOnlyForDeploymentPostprocessing = 0;
		};
/* End PBXResourcesBuildPhase section */

/* Begin PBXShellScriptBuildPhase section */
		31F8D1C407195CBF0C02929B /* [CP] Embed Pods Frameworks */ = {
			isa = PBXShellScriptBuildPhase;
			buildActionMask = 2147483647;
			files = (
			);
			inputPaths = (
			);
			name = "[CP] Embed Pods Frameworks";
			outputPaths = (
			);
			runOnlyForDeploymentPostprocessing = 0;
			shellPath = /bin/sh;
			shellScript = "\"${SRCROOT}/Pods/Target Support Files/Pods-InteropTestsRemoteWithCronet/Pods-InteropTestsRemoteWithCronet-frameworks.sh\"\n";
			showEnvVarsInLog = 0;
		};
		4C406327D3907A5E5FBA8AC9 /* [CP] Check Pods Manifest.lock */ = {
			isa = PBXShellScriptBuildPhase;
			buildActionMask = 2147483647;
			files = (
			);
			inputPaths = (
			);
			name = "[CP] 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;
		};
		4F5690DC0E6AD6663FE78B8B /* [CP] Embed Pods Frameworks */ = {
			isa = PBXShellScriptBuildPhase;
			buildActionMask = 2147483647;
			files = (
			);
			inputPaths = (
			);
			name = "[CP] Embed Pods Frameworks";
			outputPaths = (
			);
			runOnlyForDeploymentPostprocessing = 0;
			shellPath = /bin/sh;
			shellScript = "\"${SRCROOT}/Pods/Target Support Files/Pods-RxLibraryUnitTests/Pods-RxLibraryUnitTests-frameworks.sh\"\n";
			showEnvVarsInLog = 0;
		};
		5C20DCCB71C3991E6FE78C22 /* [CP] Check Pods Manifest.lock */ = {
			isa = PBXShellScriptBuildPhase;
			buildActionMask = 2147483647;
			files = (
			);
			inputPaths = (
			);
			name = "[CP] 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;
		};
		5F14F59509E10C2852014F9E /* [CP] Embed Pods Frameworks */ = {
			isa = PBXShellScriptBuildPhase;
			buildActionMask = 2147483647;
			files = (
			);
			inputPaths = (
			);
			name = "[CP] Embed Pods Frameworks";
			outputPaths = (
			);
			runOnlyForDeploymentPostprocessing = 0;
			shellPath = /bin/sh;
			shellScript = "\"${SRCROOT}/Pods/Target Support Files/Pods-AllTests/Pods-AllTests-frameworks.sh\"\n";
			showEnvVarsInLog = 0;
		};
		693DD0B453431D64EA24FD66 /* [CP] Copy Pods Resources */ = {
			isa = PBXShellScriptBuildPhase;
			buildActionMask = 2147483647;
			files = (
			);
			inputPaths = (
			);
			name = "[CP] Copy Pods Resources";
			outputPaths = (
			);
			runOnlyForDeploymentPostprocessing = 0;
			shellPath = /bin/sh;
			shellScript = "\"${SRCROOT}/Pods/Target Support Files/Pods-InteropTestsLocalSSL/Pods-InteropTestsLocalSSL-resources.sh\"\n";
			showEnvVarsInLog = 0;
		};
		6DFE9E77CAB5760196D79E0F /* [CP] Copy Pods Resources */ = {
			isa = PBXShellScriptBuildPhase;
			buildActionMask = 2147483647;
			files = (
			);
			inputPaths = (
			);
			name = "[CP] Copy Pods Resources";
			outputPaths = (
			);
			runOnlyForDeploymentPostprocessing = 0;
			shellPath = /bin/sh;
			shellScript = "\"${SRCROOT}/Pods/Target Support Files/Pods-CoreCronetEnd2EndTests/Pods-CoreCronetEnd2EndTests-resources.sh\"\n";
			showEnvVarsInLog = 0;
		};
		7418AC7B3844B29E48D24FC7 /* [CP] Check Pods Manifest.lock */ = {
			isa = PBXShellScriptBuildPhase;
			buildActionMask = 2147483647;
			files = (
			);
			inputPaths = (
			);
			name = "[CP] 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;
		};
		796680C7599CB4ED736DD62A /* [CP] Check Pods Manifest.lock */ = {
			isa = PBXShellScriptBuildPhase;
			buildActionMask = 2147483647;
			files = (
			);
			inputPaths = (
			);
			name = "[CP] 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;
		};
		8AD3130D3C58A0FB32FF2A36 /* [CP] Copy Pods Resources */ = {
			isa = PBXShellScriptBuildPhase;
			buildActionMask = 2147483647;
			files = (
			);
			inputPaths = (
			);
			name = "[CP] Copy Pods Resources";
			outputPaths = (
			);
			runOnlyForDeploymentPostprocessing = 0;
			shellPath = /bin/sh;
			shellScript = "\"${SRCROOT}/Pods/Target Support Files/Pods-InteropTestsLocalCleartext/Pods-InteropTestsLocalCleartext-resources.sh\"\n";
			showEnvVarsInLog = 0;
		};
		900B6EDD4D16BE7D765C3885 /* [CP] Embed Pods Frameworks */ = {
			isa = PBXShellScriptBuildPhase;
			buildActionMask = 2147483647;
			files = (
			);
			inputPaths = (
			);
			name = "[CP] Embed Pods Frameworks";
			outputPaths = (
			);
			runOnlyForDeploymentPostprocessing = 0;
			shellPath = /bin/sh;
			shellScript = "\"${SRCROOT}/Pods/Target Support Files/Pods-InteropTestsRemote/Pods-InteropTestsRemote-frameworks.sh\"\n";
			showEnvVarsInLog = 0;
		};
		914ADDD7106BA9BB8A7E569F /* [CP] Check Pods Manifest.lock */ = {
			isa = PBXShellScriptBuildPhase;
			buildActionMask = 2147483647;
			files = (
			);
			inputPaths = (
			);
			name = "[CP] 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;
		};
		A441F71824DCB9D0CA297748 /* [CP] Copy Pods Resources */ = {
			isa = PBXShellScriptBuildPhase;
			buildActionMask = 2147483647;
			files = (
			);
			inputPaths = (
			);
			name = "[CP] Copy Pods Resources";
			outputPaths = (
			);
			runOnlyForDeploymentPostprocessing = 0;
			shellPath = /bin/sh;
			shellScript = "\"${SRCROOT}/Pods/Target Support Files/Pods-AllTests/Pods-AllTests-resources.sh\"\n";
			showEnvVarsInLog = 0;
		};
		A8E3AC66DF770B774114A30E /* [CP] Embed Pods Frameworks */ = {
			isa = PBXShellScriptBuildPhase;
			buildActionMask = 2147483647;
			files = (
			);
			inputPaths = (
			);
			name = "[CP] Embed Pods Frameworks";
			outputPaths = (
			);
			runOnlyForDeploymentPostprocessing = 0;
			shellPath = /bin/sh;
			shellScript = "\"${SRCROOT}/Pods/Target Support Files/Pods-InteropTestsLocalCleartext/Pods-InteropTestsLocalCleartext-frameworks.sh\"\n";
			showEnvVarsInLog = 0;
		};
		AEEBFC914CBAEE347382E8C4 /* [CP] Copy Pods Resources */ = {
			isa = PBXShellScriptBuildPhase;
			buildActionMask = 2147483647;
			files = (
			);
			inputPaths = (
			);
			name = "[CP] Copy Pods Resources";
			outputPaths = (
			);
			runOnlyForDeploymentPostprocessing = 0;
			shellPath = /bin/sh;
			shellScript = "\"${SRCROOT}/Pods/Target Support Files/Pods-Tests/Pods-Tests-resources.sh\"\n";
			showEnvVarsInLog = 0;
		};
		B2986CEEE8CDD4901C97598B /* [CP] Check Pods Manifest.lock */ = {
			isa = PBXShellScriptBuildPhase;
			buildActionMask = 2147483647;
			files = (
			);
			inputPaths = (
			);
			name = "[CP] 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;
		};
		C0F7B1FF6F88CC5FBF362F4C /* [CP] Check Pods Manifest.lock */ = {
			isa = PBXShellScriptBuildPhase;
			buildActionMask = 2147483647;
			files = (
			);
			inputPaths = (
			);
			name = "[CP] 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;
		};
		C2E09DC4BD239F71160F0CC1 /* [CP] Copy Pods Resources */ = {
			isa = PBXShellScriptBuildPhase;
			buildActionMask = 2147483647;
			files = (
			);
			inputPaths = (
			);
			name = "[CP] Copy Pods Resources";
			outputPaths = (
			);
			runOnlyForDeploymentPostprocessing = 0;
			shellPath = /bin/sh;
			shellScript = "\"${SRCROOT}/Pods/Target Support Files/Pods-InteropTestsRemote/Pods-InteropTestsRemote-resources.sh\"\n";
			showEnvVarsInLog = 0;
		};
		C591129ACE9F6CC5EE03FCDE /* [CP] Embed Pods Frameworks */ = {
			isa = PBXShellScriptBuildPhase;
			buildActionMask = 2147483647;
			files = (
			);
			inputPaths = (
			);
			name = "[CP] Embed Pods Frameworks";
			outputPaths = (
			);
			runOnlyForDeploymentPostprocessing = 0;
			shellPath = /bin/sh;
			shellScript = "\"${SRCROOT}/Pods/Target Support Files/Pods-InteropTestsLocalSSL/Pods-InteropTestsLocalSSL-frameworks.sh\"\n";
			showEnvVarsInLog = 0;
		};
		C977426A8727267BBAC7D48E /* [CP] Copy Pods Resources */ = {
			isa = PBXShellScriptBuildPhase;
			buildActionMask = 2147483647;
			files = (
			);
			inputPaths = (
			);
			name = "[CP] Copy Pods Resources";
			outputPaths = (
			);
			runOnlyForDeploymentPostprocessing = 0;
			shellPath = /bin/sh;
			shellScript = "\"${SRCROOT}/Pods/Target Support Files/Pods-RxLibraryUnitTests/Pods-RxLibraryUnitTests-resources.sh\"\n";
			showEnvVarsInLog = 0;
		};
		DB4D0E73C229F2FF3B364AB3 /* [CP] Copy Pods Resources */ = {
			isa = PBXShellScriptBuildPhase;
			buildActionMask = 2147483647;
			files = (
			);
			inputPaths = (
			);
			name = "[CP] Copy Pods Resources";
			outputPaths = (
			);
			runOnlyForDeploymentPostprocessing = 0;
			shellPath = /bin/sh;
			shellScript = "\"${SRCROOT}/Pods/Target Support Files/Pods-InteropTestsRemoteWithCronet/Pods-InteropTestsRemoteWithCronet-resources.sh\"\n";
			showEnvVarsInLog = 0;
		};
		E63468C760D0724F18861822 /* [CP] Embed Pods Frameworks */ = {
			isa = PBXShellScriptBuildPhase;
			buildActionMask = 2147483647;
			files = (
			);
			inputPaths = (
			);
			name = "[CP] Embed Pods Frameworks";
			outputPaths = (
			);
			runOnlyForDeploymentPostprocessing = 0;
			shellPath = /bin/sh;
			shellScript = "\"${SRCROOT}/Pods/Target Support Files/Pods-CoreCronetEnd2EndTests/Pods-CoreCronetEnd2EndTests-frameworks.sh\"\n";
			showEnvVarsInLog = 0;
		};
		F58F17E425446B15028B9F74 /* [CP] Check Pods Manifest.lock */ = {
			isa = PBXShellScriptBuildPhase;
			buildActionMask = 2147483647;
			files = (
			);
			inputPaths = (
			);
			name = "[CP] 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 */
		5E8A5DA01D3840B4000F8BC4 /* Sources */ = {
			isa = PBXSourcesBuildPhase;
			buildActionMask = 2147483647;
			files = (
				5E8A5DA71D3840B4000F8BC4 /* CoreCronetEnd2EndTests.m in Sources */,
			);
			runOnlyForDeploymentPostprocessing = 0;
		};
		5EE84BED1D4717E40050C6CC /* Sources */ = {
			isa = PBXSourcesBuildPhase;
			buildActionMask = 2147483647;
			files = (
				5EE84BFE1D471D400050C6CC /* InteropTests.m in Sources */,
				5EE84BF41D4717E40050C6CC /* InteropTestsRemoteWithCronet.m in Sources */,
			);
			runOnlyForDeploymentPostprocessing = 0;
		};
		63423F401B150A5F006CF63C /* Sources */ = {
			isa = PBXSourcesBuildPhase;
			buildActionMask = 2147483647;
			files = (
				63715F561B780C020029CB0B /* InteropTestsLocalCleartext.m in Sources */,
				6379CC511BE1683B001BC0A1 /* InteropTestsRemote.m in Sources */,
				63E240CE1B6C4E2B005F3B0E /* InteropTestsLocalSSL.m in Sources */,
				6312AE4E1B1BF49B00341DEE /* GRPCClientTests.m in Sources */,
				635ED2EC1B1A3BC400FDE5C3 /* InteropTests.m in Sources */,
				63DC842E1BE15278000708E8 /* RxLibraryUnitTests.m in Sources */,
			);
			runOnlyForDeploymentPostprocessing = 0;
		};
		635697C31B14FC11007A7283 /* Sources */ = {
			isa = PBXSourcesBuildPhase;
			buildActionMask = 2147483647;
			files = (
				635697CD1B14FC11007A7283 /* Tests.m in Sources */,
			);
			runOnlyForDeploymentPostprocessing = 0;
		};
		63DC840F1BE15179000708E8 /* Sources */ = {
			isa = PBXSourcesBuildPhase;
			buildActionMask = 2147483647;
			files = (
				63DC841E1BE15180000708E8 /* RxLibraryUnitTests.m in Sources */,
			);
			runOnlyForDeploymentPostprocessing = 0;
		};
		63DC841F1BE15267000708E8 /* Sources */ = {
			isa = PBXSourcesBuildPhase;
			buildActionMask = 2147483647;
			files = (
				63DC842F1BE1527D000708E8 /* InteropTests.m in Sources */,
				6379CC501BE16703001BC0A1 /* InteropTestsRemote.m in Sources */,
			);
			runOnlyForDeploymentPostprocessing = 0;
		};
		63DC84301BE15294000708E8 /* Sources */ = {
			isa = PBXSourcesBuildPhase;
			buildActionMask = 2147483647;
			files = (
				63DC844F1BE15353000708E8 /* InteropTestsLocalSSL.m in Sources */,
				6379CC4D1BE1662A001BC0A1 /* InteropTests.m in Sources */,
			);
			runOnlyForDeploymentPostprocessing = 0;
		};
		63DC843F1BE152B5000708E8 /* Sources */ = {
			isa = PBXSourcesBuildPhase;
			buildActionMask = 2147483647;
			files = (
				63DC84501BE153AA000708E8 /* GRPCClientTests.m in Sources */,
				63DC844E1BE15350000708E8 /* InteropTestsLocalCleartext.m in Sources */,
				6379CC4E1BE1662B001BC0A1 /* InteropTests.m in Sources */,
			);
			runOnlyForDeploymentPostprocessing = 0;
		};
/* End PBXSourcesBuildPhase section */

/* Begin PBXTargetDependency section */
		5E8A5DAB1D3840B4000F8BC4 /* PBXTargetDependency */ = {
			isa = PBXTargetDependency;
			target = 635697C61B14FC11007A7283 /* Tests */;
			targetProxy = 5E8A5DAA1D3840B4000F8BC4 /* PBXContainerItemProxy */;
		};
		5EE84BF81D4717E40050C6CC /* PBXTargetDependency */ = {
			isa = PBXTargetDependency;
			target = 635697C61B14FC11007A7283 /* Tests */;
			targetProxy = 5EE84BF71D4717E40050C6CC /* PBXContainerItemProxy */;
		};
		63423F4C1B150A5F006CF63C /* PBXTargetDependency */ = {
			isa = PBXTargetDependency;
			target = 635697C61B14FC11007A7283 /* Tests */;
			targetProxy = 63423F4B1B150A5F006CF63C /* PBXContainerItemProxy */;
		};
		63DC841A1BE15179000708E8 /* PBXTargetDependency */ = {
			isa = PBXTargetDependency;
			target = 635697C61B14FC11007A7283 /* Tests */;
			targetProxy = 63DC84191BE15179000708E8 /* PBXContainerItemProxy */;
		};
		63DC842A1BE15267000708E8 /* PBXTargetDependency */ = {
			isa = PBXTargetDependency;
			target = 635697C61B14FC11007A7283 /* Tests */;
			targetProxy = 63DC84291BE15267000708E8 /* PBXContainerItemProxy */;
		};
		63DC843B1BE15294000708E8 /* PBXTargetDependency */ = {
			isa = PBXTargetDependency;
			target = 635697C61B14FC11007A7283 /* Tests */;
			targetProxy = 63DC843A1BE15294000708E8 /* PBXContainerItemProxy */;
		};
		63DC844A1BE152B5000708E8 /* PBXTargetDependency */ = {
			isa = PBXTargetDependency;
			target = 635697C61B14FC11007A7283 /* Tests */;
			targetProxy = 63DC84491BE152B5000708E8 /* PBXContainerItemProxy */;
		};
/* End PBXTargetDependency section */

/* Begin XCBuildConfiguration section */
		5E8A5DAC1D3840B4000F8BC4 /* Debug */ = {
			isa = XCBuildConfiguration;
			baseConfigurationReference = 0D2284C3DF7E57F0ED504E39 /* Pods-CoreCronetEnd2EndTests.debug.xcconfig */;
			buildSettings = {
				CLANG_ANALYZER_NONNULL = YES;
				"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
				DEBUG_INFORMATION_FORMAT = dwarf;
				ENABLE_TESTABILITY = YES;
				INFOPLIST_FILE = CoreCronetEnd2EndTests/Info.plist;
				IPHONEOS_DEPLOYMENT_TARGET = 9.3;
				LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks";
				PRODUCT_BUNDLE_IDENTIFIER = io.grpc.CoreCronetEnd2EndTests;
				PRODUCT_NAME = "$(TARGET_NAME)";
				USER_HEADER_SEARCH_PATHS = "$(inherited) \"${PODS_ROOT}/../../../..\"";
			};
			name = Debug;
		};
		5E8A5DAD1D3840B4000F8BC4 /* Release */ = {
			isa = XCBuildConfiguration;
			baseConfigurationReference = 4AD97096D13D7416DC91A72A /* Pods-CoreCronetEnd2EndTests.release.xcconfig */;
			buildSettings = {
				CLANG_ANALYZER_NONNULL = YES;
				"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
				INFOPLIST_FILE = CoreCronetEnd2EndTests/Info.plist;
				IPHONEOS_DEPLOYMENT_TARGET = 9.3;
				LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks";
				PRODUCT_BUNDLE_IDENTIFIER = io.grpc.CoreCronetEnd2EndTests;
				PRODUCT_NAME = "$(TARGET_NAME)";
				USER_HEADER_SEARCH_PATHS = "$(inherited) \"${PODS_ROOT}/../../../..\"";
			};
			name = Release;
		};
		5EC3C7A01D4FC18C000330E2 /* Cronet */ = {
			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_UNREACHABLE_CODE = YES;
				CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
				COPY_PHASE_STRIP = NO;
				DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
				ENABLE_STRICT_OBJC_MSGSEND = YES;
				GCC_C_LANGUAGE_STANDARD = gnu99;
				GCC_DYNAMIC_NO_PIC = NO;
				GCC_NO_COMMON_BLOCKS = YES;
				GCC_OPTIMIZATION_LEVEL = 0;
				GCC_PREPROCESSOR_DEFINITIONS = (
					"DEBUG=1",
					"$(inherited)",
				);
				GCC_SYMBOLS_PRIVATE_EXTERN = NO;
				GCC_TREAT_WARNINGS_AS_ERRORS = YES;
				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 = 8.3;
				MTL_ENABLE_DEBUG_INFO = YES;
				ONLY_ACTIVE_ARCH = YES;
				SDKROOT = iphoneos;
			};
			name = Cronet;
		};
		5EC3C7A11D4FC18C000330E2 /* Cronet */ = {
			isa = XCBuildConfiguration;
			baseConfigurationReference = F671D4CAD2864FB203B920B4 /* Pods-Tests.cronet.xcconfig */;
			buildSettings = {
				GCC_TREAT_WARNINGS_AS_ERRORS = YES;
				PRODUCT_NAME = "$(TARGET_NAME)";
				SKIP_INSTALL = YES;
			};
			name = Cronet;
		};
		5EC3C7A21D4FC18C000330E2 /* Cronet */ = {
			isa = XCBuildConfiguration;
			baseConfigurationReference = E7E4D3FD76E3B745D992AF5F /* Pods-AllTests.cronet.xcconfig */;
			buildSettings = {
				FRAMEWORK_SEARCH_PATHS = (
					"$(SDKROOT)/Developer/Library/Frameworks",
					"$(inherited)",
				);
				GCC_PREPROCESSOR_DEFINITIONS = (
					"DEBUG=1",
					"$(inherited)",
				);
				INFOPLIST_FILE = Info.plist;
				LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks";
				PRODUCT_NAME = "$(TARGET_NAME)";
			};
			name = Cronet;
		};
		5EC3C7A31D4FC18C000330E2 /* Cronet */ = {
			isa = XCBuildConfiguration;
			baseConfigurationReference = 79C68EFFCB5533475D810B79 /* Pods-RxLibraryUnitTests.cronet.xcconfig */;
			buildSettings = {
				DEBUG_INFORMATION_FORMAT = dwarf;
				ENABLE_TESTABILITY = YES;
				INFOPLIST_FILE = Info.plist;
				IPHONEOS_DEPLOYMENT_TARGET = 9.0;
				LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks";
				PRODUCT_BUNDLE_IDENTIFIER = io.grpc.RxLibraryUnitTests;
				PRODUCT_NAME = "$(TARGET_NAME)";
			};
			name = Cronet;
		};
		5EC3C7A41D4FC18C000330E2 /* Cronet */ = {
			isa = XCBuildConfiguration;
			baseConfigurationReference = 4ADEA1C8BBE10D90940AC68E /* Pods-InteropTestsRemote.cronet.xcconfig */;
			buildSettings = {
				DEBUG_INFORMATION_FORMAT = dwarf;
				ENABLE_TESTABILITY = YES;
				INFOPLIST_FILE = Info.plist;
				IPHONEOS_DEPLOYMENT_TARGET = 9.0;
				LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks";
				PRODUCT_BUNDLE_IDENTIFIER = io.grpc.InteropTests;
				PRODUCT_NAME = "$(TARGET_NAME)";
			};
			name = Cronet;
		};
		5EC3C7A51D4FC18C000330E2 /* Cronet */ = {
			isa = XCBuildConfiguration;
			baseConfigurationReference = 14B09A58FEE53A7A6B838920 /* Pods-InteropTestsLocalSSL.cronet.xcconfig */;
			buildSettings = {
				DEBUG_INFORMATION_FORMAT = dwarf;
				ENABLE_TESTABILITY = YES;
				INFOPLIST_FILE = Info.plist;
				IPHONEOS_DEPLOYMENT_TARGET = 9.0;
				LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks";
				PRODUCT_BUNDLE_IDENTIFIER = io.grpc.InteropTestsLocalSSL;
				PRODUCT_NAME = "$(TARGET_NAME)";
			};
			name = Cronet;
		};
		5EC3C7A61D4FC18C000330E2 /* Cronet */ = {
			isa = XCBuildConfiguration;
			baseConfigurationReference = AA7CB64B4DD9915AE7C03163 /* Pods-InteropTestsLocalCleartext.cronet.xcconfig */;
			buildSettings = {
				DEBUG_INFORMATION_FORMAT = dwarf;
				ENABLE_TESTABILITY = YES;
				INFOPLIST_FILE = Info.plist;
				IPHONEOS_DEPLOYMENT_TARGET = 9.0;
				LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks";
				PRODUCT_BUNDLE_IDENTIFIER = io.grpc.InteropTestsLocalCleartext;
				PRODUCT_NAME = "$(TARGET_NAME)";
			};
			name = Cronet;
		};
		5EC3C7A71D4FC18C000330E2 /* Cronet */ = {
			isa = XCBuildConfiguration;
			baseConfigurationReference = 573450F334B331D0BED8B961 /* Pods-CoreCronetEnd2EndTests.cronet.xcconfig */;
			buildSettings = {
				CLANG_ANALYZER_NONNULL = YES;
				"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
				DEBUG_INFORMATION_FORMAT = dwarf;
				ENABLE_TESTABILITY = YES;
				INFOPLIST_FILE = CoreCronetEnd2EndTests/Info.plist;
				IPHONEOS_DEPLOYMENT_TARGET = 9.3;
				LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks";
				PRODUCT_BUNDLE_IDENTIFIER = io.grpc.CoreCronetEnd2EndTests;
				PRODUCT_NAME = "$(TARGET_NAME)";
				USER_HEADER_SEARCH_PATHS = "$(inherited) \"${PODS_ROOT}/../../../..\"";
			};
			name = Cronet;
		};
		5EC3C7A81D4FC18C000330E2 /* Cronet */ = {
			isa = XCBuildConfiguration;
			baseConfigurationReference = 3F27B2E744482771EB93C394 /* Pods-InteropTestsRemoteWithCronet.cronet.xcconfig */;
			buildSettings = {
				CLANG_ANALYZER_NONNULL = YES;
				"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
				DEBUG_INFORMATION_FORMAT = dwarf;
				ENABLE_TESTABILITY = YES;
				GCC_PREPROCESSOR_DEFINITIONS = (
					"$(inherited)",
					"COCOAPODS=1",
					"$(inherited)",
					"GPB_USE_PROTOBUF_FRAMEWORK_IMPORTS=1",
					"GRPC_COMPILE_WITH_CRONET=1",
				);
				INFOPLIST_FILE = InteropTestsRemoteWithCronet/Info.plist;
				IPHONEOS_DEPLOYMENT_TARGET = 9.3;
				LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks";
				PRODUCT_BUNDLE_IDENTIFIER = io.grpc.InteropTestsRemoteWithCronet;
				PRODUCT_NAME = "$(TARGET_NAME)";
			};
			name = Cronet;
		};
		5EE84BF91D4717E40050C6CC /* Debug */ = {
			isa = XCBuildConfiguration;
			baseConfigurationReference = 17F60BF2871F6AF85FB3FA12 /* Pods-InteropTestsRemoteWithCronet.debug.xcconfig */;
			buildSettings = {
				CLANG_ANALYZER_NONNULL = YES;
				"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
				DEBUG_INFORMATION_FORMAT = dwarf;
				ENABLE_TESTABILITY = YES;
				GCC_PREPROCESSOR_DEFINITIONS = (
					"$(inherited)",
					"COCOAPODS=1",
					"$(inherited)",
					"GPB_USE_PROTOBUF_FRAMEWORK_IMPORTS=1",
				);
				INFOPLIST_FILE = InteropTestsRemoteWithCronet/Info.plist;
				IPHONEOS_DEPLOYMENT_TARGET = 9.3;
				LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks";
				PRODUCT_BUNDLE_IDENTIFIER = io.grpc.InteropTestsRemoteWithCronet;
				PRODUCT_NAME = "$(TARGET_NAME)";
			};
			name = Debug;
		};
		5EE84BFA1D4717E40050C6CC /* Release */ = {
			isa = XCBuildConfiguration;
			baseConfigurationReference = AC414EF7A6BF76ED02B6E480 /* Pods-InteropTestsRemoteWithCronet.release.xcconfig */;
			buildSettings = {
				CLANG_ANALYZER_NONNULL = YES;
				"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
				GCC_PREPROCESSOR_DEFINITIONS = (
					"$(inherited)",
					"COCOAPODS=1",
					"$(inherited)",
					"GPB_USE_PROTOBUF_FRAMEWORK_IMPORTS=1",
					"GRPC_COMPILE_WITH_CRONET=1",
				);
				INFOPLIST_FILE = InteropTestsRemoteWithCronet/Info.plist;
				IPHONEOS_DEPLOYMENT_TARGET = 9.3;
				LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks";
				PRODUCT_BUNDLE_IDENTIFIER = io.grpc.InteropTestsRemoteWithCronet;
				PRODUCT_NAME = "$(TARGET_NAME)";
			};
			name = Release;
		};
		63423F4E1B150A5F006CF63C /* Debug */ = {
			isa = XCBuildConfiguration;
			baseConfigurationReference = B94C27C06733CF98CE1B2757 /* Pods-AllTests.debug.xcconfig */;
			buildSettings = {
				FRAMEWORK_SEARCH_PATHS = (
					"$(SDKROOT)/Developer/Library/Frameworks",
					"$(inherited)",
				);
				GCC_PREPROCESSOR_DEFINITIONS = (
					"DEBUG=1",
					"$(inherited)",
				);
				INFOPLIST_FILE = Info.plist;
				LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks";
				PRODUCT_NAME = "$(TARGET_NAME)";
			};
			name = Debug;
		};
		63423F4F1B150A5F006CF63C /* Release */ = {
			isa = XCBuildConfiguration;
			baseConfigurationReference = 5761E98978DDDF136A58CB7E /* Pods-AllTests.release.xcconfig */;
			buildSettings = {
				FRAMEWORK_SEARCH_PATHS = (
					"$(SDKROOT)/Developer/Library/Frameworks",
					"$(inherited)",
				);
				INFOPLIST_FILE = Info.plist;
				LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks";
				PRODUCT_NAME = "$(TARGET_NAME)";
			};
			name = Release;
		};
		635697D91B14FC11007A7283 /* 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_UNREACHABLE_CODE = YES;
				CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
				COPY_PHASE_STRIP = NO;
				DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
				ENABLE_STRICT_OBJC_MSGSEND = YES;
				GCC_C_LANGUAGE_STANDARD = gnu99;
				GCC_DYNAMIC_NO_PIC = NO;
				GCC_NO_COMMON_BLOCKS = YES;
				GCC_OPTIMIZATION_LEVEL = 0;
				GCC_PREPROCESSOR_DEFINITIONS = (
					"DEBUG=1",
					"$(inherited)",
				);
				GCC_SYMBOLS_PRIVATE_EXTERN = NO;
				GCC_TREAT_WARNINGS_AS_ERRORS = YES;
				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 = 8.3;
				MTL_ENABLE_DEBUG_INFO = YES;
				ONLY_ACTIVE_ARCH = YES;
				SDKROOT = iphoneos;
			};
			name = Debug;
		};
		635697DA1B14FC11007A7283 /* 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_UNREACHABLE_CODE = YES;
				CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
				COPY_PHASE_STRIP = NO;
				DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
				ENABLE_NS_ASSERTIONS = NO;
				ENABLE_STRICT_OBJC_MSGSEND = YES;
				GCC_C_LANGUAGE_STANDARD = gnu99;
				GCC_NO_COMMON_BLOCKS = YES;
				GCC_TREAT_WARNINGS_AS_ERRORS = YES;
				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 = 8.3;
				MTL_ENABLE_DEBUG_INFO = NO;
				SDKROOT = iphoneos;
				VALIDATE_PRODUCT = YES;
			};
			name = Release;
		};
		635697DC1B14FC11007A7283 /* Debug */ = {
			isa = XCBuildConfiguration;
			baseConfigurationReference = 060EF32D7EC0DF67ED617507 /* Pods-Tests.debug.xcconfig */;
			buildSettings = {
				GCC_TREAT_WARNINGS_AS_ERRORS = YES;
				PRODUCT_NAME = "$(TARGET_NAME)";
				SKIP_INSTALL = YES;
			};
			name = Debug;
		};
		635697DD1B14FC11007A7283 /* Release */ = {
			isa = XCBuildConfiguration;
			baseConfigurationReference = E6733B838B28453434B556E2 /* Pods-Tests.release.xcconfig */;
			buildSettings = {
				GCC_TREAT_WARNINGS_AS_ERRORS = YES;
				PRODUCT_NAME = "$(TARGET_NAME)";
				SKIP_INSTALL = YES;
			};
			name = Release;
		};
		63DC841C1BE15179000708E8 /* Debug */ = {
			isa = XCBuildConfiguration;
			baseConfigurationReference = 07D10A965323BEA7FE59A74B /* Pods-RxLibraryUnitTests.debug.xcconfig */;
			buildSettings = {
				DEBUG_INFORMATION_FORMAT = dwarf;
				ENABLE_TESTABILITY = YES;
				INFOPLIST_FILE = Info.plist;
				IPHONEOS_DEPLOYMENT_TARGET = 9.0;
				LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks";
				PRODUCT_BUNDLE_IDENTIFIER = io.grpc.RxLibraryUnitTests;
				PRODUCT_NAME = "$(TARGET_NAME)";
			};
			name = Debug;
		};
		63DC841D1BE15179000708E8 /* Release */ = {
			isa = XCBuildConfiguration;
			baseConfigurationReference = 3B0861FC805389C52DB260D4 /* Pods-RxLibraryUnitTests.release.xcconfig */;
			buildSettings = {
				INFOPLIST_FILE = Info.plist;
				IPHONEOS_DEPLOYMENT_TARGET = 9.0;
				LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks";
				PRODUCT_BUNDLE_IDENTIFIER = io.grpc.RxLibraryUnitTests;
				PRODUCT_NAME = "$(TARGET_NAME)";
			};
			name = Release;
		};
		63DC842C1BE15267000708E8 /* Debug */ = {
			isa = XCBuildConfiguration;
			baseConfigurationReference = DC3CA1D948F068E76957A861 /* Pods-InteropTestsRemote.debug.xcconfig */;
			buildSettings = {
				DEBUG_INFORMATION_FORMAT = dwarf;
				ENABLE_TESTABILITY = YES;
				INFOPLIST_FILE = Info.plist;
				IPHONEOS_DEPLOYMENT_TARGET = 9.0;
				LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks";
				PRODUCT_BUNDLE_IDENTIFIER = io.grpc.InteropTests;
				PRODUCT_NAME = "$(TARGET_NAME)";
			};
			name = Debug;
		};
		63DC842D1BE15267000708E8 /* Release */ = {
			isa = XCBuildConfiguration;
			baseConfigurationReference = E4275A759BDBDF143B9B438F /* Pods-InteropTestsRemote.release.xcconfig */;
			buildSettings = {
				INFOPLIST_FILE = Info.plist;
				IPHONEOS_DEPLOYMENT_TARGET = 9.0;
				LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks";
				PRODUCT_BUNDLE_IDENTIFIER = io.grpc.InteropTests;
				PRODUCT_NAME = "$(TARGET_NAME)";
			};
			name = Release;
		};
		63DC843D1BE15294000708E8 /* Debug */ = {
			isa = XCBuildConfiguration;
			baseConfigurationReference = 553BBBED24E4162D1F769D65 /* Pods-InteropTestsLocalSSL.debug.xcconfig */;
			buildSettings = {
				DEBUG_INFORMATION_FORMAT = dwarf;
				ENABLE_TESTABILITY = YES;
				INFOPLIST_FILE = Info.plist;
				IPHONEOS_DEPLOYMENT_TARGET = 9.0;
				LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks";
				PRODUCT_BUNDLE_IDENTIFIER = io.grpc.InteropTestsLocalSSL;
				PRODUCT_NAME = "$(TARGET_NAME)";
			};
			name = Debug;
		};
		63DC843E1BE15294000708E8 /* Release */ = {
			isa = XCBuildConfiguration;
			baseConfigurationReference = 7A2E97E3F469CC2A758D77DE /* Pods-InteropTestsLocalSSL.release.xcconfig */;
			buildSettings = {
				INFOPLIST_FILE = Info.plist;
				IPHONEOS_DEPLOYMENT_TARGET = 9.0;
				LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks";
				PRODUCT_BUNDLE_IDENTIFIER = io.grpc.InteropTestsLocalSSL;
				PRODUCT_NAME = "$(TARGET_NAME)";
			};
			name = Release;
		};
		63DC844C1BE152B5000708E8 /* Debug */ = {
			isa = XCBuildConfiguration;
			baseConfigurationReference = E1486220285AF123EB124008 /* Pods-InteropTestsLocalCleartext.debug.xcconfig */;
			buildSettings = {
				DEBUG_INFORMATION_FORMAT = dwarf;
				ENABLE_TESTABILITY = YES;
				INFOPLIST_FILE = Info.plist;
				IPHONEOS_DEPLOYMENT_TARGET = 9.0;
				LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks";
				PRODUCT_BUNDLE_IDENTIFIER = io.grpc.InteropTestsLocalCleartext;
				PRODUCT_NAME = "$(TARGET_NAME)";
			};
			name = Debug;
		};
		63DC844D1BE152B5000708E8 /* Release */ = {
			isa = XCBuildConfiguration;
			baseConfigurationReference = 51A275E86C141416ED63FF76 /* Pods-InteropTestsLocalCleartext.release.xcconfig */;
			buildSettings = {
				INFOPLIST_FILE = Info.plist;
				IPHONEOS_DEPLOYMENT_TARGET = 9.0;
				LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks";
				PRODUCT_BUNDLE_IDENTIFIER = io.grpc.InteropTestsLocalCleartext;
				PRODUCT_NAME = "$(TARGET_NAME)";
			};
			name = Release;
		};
/* End XCBuildConfiguration section */

/* Begin XCConfigurationList section */
		5E8A5DAE1D3840B4000F8BC4 /* Build configuration list for PBXNativeTarget "CoreCronetEnd2EndTests" */ = {
			isa = XCConfigurationList;
			buildConfigurations = (
				5E8A5DAC1D3840B4000F8BC4 /* Debug */,
				5EC3C7A71D4FC18C000330E2 /* Cronet */,
				5E8A5DAD1D3840B4000F8BC4 /* Release */,
			);
			defaultConfigurationIsVisible = 0;
			defaultConfigurationName = Release;
		};
		5EE84BFB1D4717E40050C6CC /* Build configuration list for PBXNativeTarget "InteropTestsRemoteWithCronet" */ = {
			isa = XCConfigurationList;
			buildConfigurations = (
				5EE84BF91D4717E40050C6CC /* Debug */,
				5EC3C7A81D4FC18C000330E2 /* Cronet */,
				5EE84BFA1D4717E40050C6CC /* Release */,
			);
			defaultConfigurationIsVisible = 0;
			defaultConfigurationName = Release;
		};
		63423F4D1B150A5F006CF63C /* Build configuration list for PBXNativeTarget "AllTests" */ = {
			isa = XCConfigurationList;
			buildConfigurations = (
				63423F4E1B150A5F006CF63C /* Debug */,
				5EC3C7A21D4FC18C000330E2 /* Cronet */,
				63423F4F1B150A5F006CF63C /* Release */,
			);
			defaultConfigurationIsVisible = 0;
			defaultConfigurationName = Release;
		};
		635697C21B14FC11007A7283 /* Build configuration list for PBXProject "Tests" */ = {
			isa = XCConfigurationList;
			buildConfigurations = (
				635697D91B14FC11007A7283 /* Debug */,
				5EC3C7A01D4FC18C000330E2 /* Cronet */,
				635697DA1B14FC11007A7283 /* Release */,
			);
			defaultConfigurationIsVisible = 0;
			defaultConfigurationName = Release;
		};
		635697DB1B14FC11007A7283 /* Build configuration list for PBXNativeTarget "Tests" */ = {
			isa = XCConfigurationList;
			buildConfigurations = (
				635697DC1B14FC11007A7283 /* Debug */,
				5EC3C7A11D4FC18C000330E2 /* Cronet */,
				635697DD1B14FC11007A7283 /* Release */,
			);
			defaultConfigurationIsVisible = 0;
			defaultConfigurationName = Release;
		};
		63DC841B1BE15179000708E8 /* Build configuration list for PBXNativeTarget "RxLibraryUnitTests" */ = {
			isa = XCConfigurationList;
			buildConfigurations = (
				63DC841C1BE15179000708E8 /* Debug */,
				5EC3C7A31D4FC18C000330E2 /* Cronet */,
				63DC841D1BE15179000708E8 /* Release */,
			);
			defaultConfigurationIsVisible = 0;
			defaultConfigurationName = Release;
		};
		63DC842B1BE15267000708E8 /* Build configuration list for PBXNativeTarget "InteropTestsRemote" */ = {
			isa = XCConfigurationList;
			buildConfigurations = (
				63DC842C1BE15267000708E8 /* Debug */,
				5EC3C7A41D4FC18C000330E2 /* Cronet */,
				63DC842D1BE15267000708E8 /* Release */,
			);
			defaultConfigurationIsVisible = 0;
			defaultConfigurationName = Release;
		};
		63DC843C1BE15294000708E8 /* Build configuration list for PBXNativeTarget "InteropTestsLocalSSL" */ = {
			isa = XCConfigurationList;
			buildConfigurations = (
				63DC843D1BE15294000708E8 /* Debug */,
				5EC3C7A51D4FC18C000330E2 /* Cronet */,
				63DC843E1BE15294000708E8 /* Release */,
			);
			defaultConfigurationIsVisible = 0;
			defaultConfigurationName = Release;
		};
		63DC844B1BE152B5000708E8 /* Build configuration list for PBXNativeTarget "InteropTestsLocalCleartext" */ = {
			isa = XCConfigurationList;
			buildConfigurations = (
				63DC844C1BE152B5000708E8 /* Debug */,
				5EC3C7A61D4FC18C000330E2 /* Cronet */,
				63DC844D1BE152B5000708E8 /* Release */,
			);
			defaultConfigurationIsVisible = 0;
			defaultConfigurationName = Release;
		};
/* End XCConfigurationList section */
	};
	rootObject = 635697BF1B14FC11007A7283 /* Project object */;
}
