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

/* Begin PBXBuildFile section */
		379604B51D0F655B004CA8CC /* InviteViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 379604B41D0F655B004CA8CC /* InviteViewController.swift */; };
		37B018C91CFF7A9D004B0A15 /* AppDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 37B018BB1CFF7A9D004B0A15 /* AppDelegate.swift */; };
		37B018CA1CFF7A9D004B0A15 /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 37B018BC1CFF7A9D004B0A15 /* Assets.xcassets */; };
		37B018CB1CFF7A9D004B0A15 /* LaunchScreen.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 37B018BD1CFF7A9D004B0A15 /* LaunchScreen.storyboard */; };
		37B018CC1CFF7A9D004B0A15 /* Main.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 37B018BF1CFF7A9D004B0A15 /* Main.storyboard */; };
		37B018CD1CFF7A9D004B0A15 /* CircularImageView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 37B018C11CFF7A9D004B0A15 /* CircularImageView.swift */; };
		37B018CF1CFF7A9D004B0A15 /* MemberView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 37B018C31CFF7A9D004B0A15 /* MemberView.swift */; };
		37B018D01CFF7A9D004B0A15 /* Contact.swift in Sources */ = {isa = PBXBuildFile; fileRef = 37B018C41CFF7A9D004B0A15 /* Contact.swift */; };
		37B018D11CFF7A9D004B0A15 /* Task.swift in Sources */ = {isa = PBXBuildFile; fileRef = 37B018C51CFF7A9D004B0A15 /* Task.swift */; };
		37B018D21CFF7A9D004B0A15 /* TasksViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 37B018C61CFF7A9D004B0A15 /* TasksViewController.swift */; };
		37B018D31CFF7A9D004B0A15 /* TodoList.swift in Sources */ = {isa = PBXBuildFile; fileRef = 37B018C71CFF7A9D004B0A15 /* TodoList.swift */; };
		37B018D41CFF7A9D004B0A15 /* TodosViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 37B018C81CFF7A9D004B0A15 /* TodosViewController.swift */; };
		931F8BBD1D19254300B97CF3 /* GoogleSignIn.bundle in Resources */ = {isa = PBXBuildFile; fileRef = 931F8BB61D19254300B97CF3 /* GoogleSignIn.bundle */; };
		931F8BCF1D19257600B97CF3 /* libz.tbd in Frameworks */ = {isa = PBXBuildFile; fileRef = 931F8BCE1D19257600B97CF3 /* libz.tbd */; };
		931F8BD11D19258300B97CF3 /* AddressBook.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 931F8BD01D19258300B97CF3 /* AddressBook.framework */; };
		931F8BD31D19258800B97CF3 /* StoreKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 931F8BD21D19258800B97CF3 /* StoreKit.framework */; };
		931F8BD51D19258F00B97CF3 /* SystemConfiguration.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 931F8BD41D19258F00B97CF3 /* SystemConfiguration.framework */; };
		931F8BD71D19290B00B97CF3 /* LoginViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 931F8BD61D19290B00B97CF3 /* LoginViewController.swift */; };
		93213FEF1D1C8BB100297838 /* Syncbase.swift in Sources */ = {isa = PBXBuildFile; fileRef = 93213FEE1D1C8BB100297838 /* Syncbase.swift */; };
		932AD4E91D1A74A8000EA038 /* GoogleAppUtilities.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 931F8BB31D19254300B97CF3 /* GoogleAppUtilities.framework */; };
		932AD4EA1D1A74A8000EA038 /* GoogleAuthUtilities.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 931F8BB41D19254300B97CF3 /* GoogleAuthUtilities.framework */; };
		932AD4EB1D1A74A8000EA038 /* GoogleNetworkingUtilities.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 931F8BB51D19254300B97CF3 /* GoogleNetworkingUtilities.framework */; };
		932AD4EC1D1A74A8000EA038 /* GoogleSymbolUtilities.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 931F8BB81D19254300B97CF3 /* GoogleSymbolUtilities.framework */; };
		932AD4ED1D1A74A8000EA038 /* GoogleUtilities.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 931F8BB91D19254300B97CF3 /* GoogleUtilities.framework */; };
		932AD4EE1D1A74C5000EA038 /* GoogleSignIn.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 931F8BB71D19254300B97CF3 /* GoogleSignIn.framework */; };
		932AD4F21D1B1050000EA038 /* GoogleService-Info.plist in Resources */ = {isa = PBXBuildFile; fileRef = 932AD4F11D1B1050000EA038 /* GoogleService-Info.plist */; };
		932AD4FE1D1B202B000EA038 /* Syncbase.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 938DEA941D10DA4A003C9734 /* Syncbase.framework */; };
		932AD4FF1D1B202B000EA038 /* Syncbase.framework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = 938DEA941D10DA4A003C9734 /* Syncbase.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; };
		932AD5041D1B20C5000EA038 /* SafariServices.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 932AD5031D1B20C5000EA038 /* SafariServices.framework */; };
		932AD50E1D1BCFD3000EA038 /* Marshal.swift in Sources */ = {isa = PBXBuildFile; fileRef = 932AD50D1D1BCFD3000EA038 /* Marshal.swift */; };
		93824A7F1D2491A200F4851B /* SyncbaseCore.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 93824A7C1D24919600F4851B /* SyncbaseCore.framework */; };
		93824A801D2491A200F4851B /* SyncbaseCore.framework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = 93824A7C1D24919600F4851B /* SyncbaseCore.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; };
		93C462B01D2F108F00394BAB /* Dispatch.swift in Sources */ = {isa = PBXBuildFile; fileRef = 93C462AF1D2F108F00394BAB /* Dispatch.swift */; };
/* End PBXBuildFile section */

/* Begin PBXContainerItemProxy section */
		932AD5001D1B202B000EA038 /* PBXContainerItemProxy */ = {
			isa = PBXContainerItemProxy;
			containerPortal = 938DEA8D1D10DA4A003C9734 /* Syncbase.xcodeproj */;
			proxyType = 1;
			remoteGlobalIDString = 9374F6731D010711004ECE59;
			remoteInfo = Syncbase;
		};
		93824A7B1D24919600F4851B /* PBXContainerItemProxy */ = {
			isa = PBXContainerItemProxy;
			containerPortal = 93824A751D24919600F4851B /* SyncbaseCore.xcodeproj */;
			proxyType = 2;
			remoteGlobalIDString = 30AD2DFF1CDD506700A28A0C;
			remoteInfo = SyncbaseCore;
		};
		93824A7D1D24919600F4851B /* PBXContainerItemProxy */ = {
			isa = PBXContainerItemProxy;
			containerPortal = 93824A751D24919600F4851B /* SyncbaseCore.xcodeproj */;
			proxyType = 2;
			remoteGlobalIDString = 30AD2E091CDD506700A28A0C;
			remoteInfo = SyncbaseCoreTests;
		};
		93824A811D2491A200F4851B /* PBXContainerItemProxy */ = {
			isa = PBXContainerItemProxy;
			containerPortal = 93824A751D24919600F4851B /* SyncbaseCore.xcodeproj */;
			proxyType = 1;
			remoteGlobalIDString = 30AD2DFE1CDD506700A28A0C;
			remoteInfo = SyncbaseCore;
		};
		938DEA931D10DA4A003C9734 /* PBXContainerItemProxy */ = {
			isa = PBXContainerItemProxy;
			containerPortal = 938DEA8D1D10DA4A003C9734 /* Syncbase.xcodeproj */;
			proxyType = 2;
			remoteGlobalIDString = 9374F6741D010711004ECE59;
			remoteInfo = Syncbase;
		};
		938DEA951D10DA4A003C9734 /* PBXContainerItemProxy */ = {
			isa = PBXContainerItemProxy;
			containerPortal = 938DEA8D1D10DA4A003C9734 /* Syncbase.xcodeproj */;
			proxyType = 2;
			remoteGlobalIDString = 9374F67E1D010711004ECE59;
			remoteInfo = SyncbaseTests;
		};
/* End PBXContainerItemProxy section */

/* Begin PBXCopyFilesBuildPhase section */
		932AD5021D1B202B000EA038 /* Embed Frameworks */ = {
			isa = PBXCopyFilesBuildPhase;
			buildActionMask = 2147483647;
			dstPath = "";
			dstSubfolderSpec = 10;
			files = (
				932AD4FF1D1B202B000EA038 /* Syncbase.framework in Embed Frameworks */,
				93824A801D2491A200F4851B /* SyncbaseCore.framework in Embed Frameworks */,
			);
			name = "Embed Frameworks";
			runOnlyForDeploymentPostprocessing = 0;
		};
/* End PBXCopyFilesBuildPhase section */

/* Begin PBXFileReference section */
		378398671CF3ADB000C35566 /* SyncbaseTodos.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = SyncbaseTodos.app; sourceTree = BUILT_PRODUCTS_DIR; };
		379604B41D0F655B004CA8CC /* InviteViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = InviteViewController.swift; sourceTree = "<group>"; };
		37B018BB1CFF7A9D004B0A15 /* AppDelegate.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = AppDelegate.swift; sourceTree = "<group>"; };
		37B018BC1CFF7A9D004B0A15 /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = "<group>"; };
		37B018BE1CFF7A9D004B0A15 /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/LaunchScreen.storyboard; sourceTree = "<group>"; };
		37B018C01CFF7A9D004B0A15 /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/Main.storyboard; sourceTree = "<group>"; };
		37B018C11CFF7A9D004B0A15 /* CircularImageView.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = CircularImageView.swift; sourceTree = "<group>"; };
		37B018C21CFF7A9D004B0A15 /* Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = "<group>"; };
		37B018C31CFF7A9D004B0A15 /* MemberView.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = MemberView.swift; sourceTree = "<group>"; };
		37B018C41CFF7A9D004B0A15 /* Contact.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Contact.swift; sourceTree = "<group>"; };
		37B018C51CFF7A9D004B0A15 /* Task.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Task.swift; sourceTree = "<group>"; };
		37B018C61CFF7A9D004B0A15 /* TasksViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = TasksViewController.swift; sourceTree = "<group>"; };
		37B018C71CFF7A9D004B0A15 /* TodoList.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = TodoList.swift; sourceTree = "<group>"; };
		37B018C81CFF7A9D004B0A15 /* TodosViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = TodosViewController.swift; sourceTree = "<group>"; };
		931F8BB31D19254300B97CF3 /* GoogleAppUtilities.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = GoogleAppUtilities.framework; path = ../../../third_party/swift/google_signin_sdk_4_0_0/GoogleAppUtilities.framework; sourceTree = "<group>"; };
		931F8BB41D19254300B97CF3 /* GoogleAuthUtilities.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = GoogleAuthUtilities.framework; path = ../../../third_party/swift/google_signin_sdk_4_0_0/GoogleAuthUtilities.framework; sourceTree = "<group>"; };
		931F8BB51D19254300B97CF3 /* GoogleNetworkingUtilities.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = GoogleNetworkingUtilities.framework; path = ../../../third_party/swift/google_signin_sdk_4_0_0/GoogleNetworkingUtilities.framework; sourceTree = "<group>"; };
		931F8BB61D19254300B97CF3 /* GoogleSignIn.bundle */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.plug-in"; name = GoogleSignIn.bundle; path = ../../../third_party/swift/google_signin_sdk_4_0_0/GoogleSignIn.bundle; sourceTree = "<group>"; };
		931F8BB71D19254300B97CF3 /* GoogleSignIn.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = GoogleSignIn.framework; path = ../../../third_party/swift/google_signin_sdk_4_0_0/GoogleSignIn.framework; sourceTree = "<group>"; };
		931F8BB81D19254300B97CF3 /* GoogleSymbolUtilities.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = GoogleSymbolUtilities.framework; path = ../../../third_party/swift/google_signin_sdk_4_0_0/GoogleSymbolUtilities.framework; sourceTree = "<group>"; };
		931F8BB91D19254300B97CF3 /* GoogleUtilities.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = GoogleUtilities.framework; path = ../../../third_party/swift/google_signin_sdk_4_0_0/GoogleUtilities.framework; sourceTree = "<group>"; };
		931F8BCE1D19257600B97CF3 /* libz.tbd */ = {isa = PBXFileReference; lastKnownFileType = "sourcecode.text-based-dylib-definition"; name = libz.tbd; path = usr/lib/libz.tbd; sourceTree = SDKROOT; };
		931F8BD01D19258300B97CF3 /* AddressBook.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AddressBook.framework; path = System/Library/Frameworks/AddressBook.framework; sourceTree = SDKROOT; };
		931F8BD21D19258800B97CF3 /* StoreKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = StoreKit.framework; path = System/Library/Frameworks/StoreKit.framework; sourceTree = SDKROOT; };
		931F8BD41D19258F00B97CF3 /* SystemConfiguration.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = SystemConfiguration.framework; path = System/Library/Frameworks/SystemConfiguration.framework; sourceTree = SDKROOT; };
		931F8BD61D19290B00B97CF3 /* LoginViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = LoginViewController.swift; sourceTree = "<group>"; };
		93213FEE1D1C8BB100297838 /* Syncbase.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Syncbase.swift; sourceTree = "<group>"; };
		932AD4F11D1B1050000EA038 /* GoogleService-Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; name = "GoogleService-Info.plist"; path = "SyncbaseTodos/GoogleService-Info.plist"; sourceTree = "<group>"; };
		932AD5031D1B20C5000EA038 /* SafariServices.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = SafariServices.framework; path = System/Library/Frameworks/SafariServices.framework; sourceTree = SDKROOT; };
		932AD50D1D1BCFD3000EA038 /* Marshal.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Marshal.swift; sourceTree = "<group>"; };
		93824A751D24919600F4851B /* SyncbaseCore.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = SyncbaseCore.xcodeproj; path = ../SyncbaseCore/SyncbaseCore.xcodeproj; sourceTree = "<group>"; };
		938DEA8D1D10DA4A003C9734 /* Syncbase.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = Syncbase.xcodeproj; path = ../Syncbase/Syncbase.xcodeproj; sourceTree = "<group>"; };
		93C462AF1D2F108F00394BAB /* Dispatch.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Dispatch.swift; sourceTree = "<group>"; };
/* End PBXFileReference section */

/* Begin PBXFrameworksBuildPhase section */
		378398641CF3ADB000C35566 /* Frameworks */ = {
			isa = PBXFrameworksBuildPhase;
			buildActionMask = 2147483647;
			files = (
				932AD5041D1B20C5000EA038 /* SafariServices.framework in Frameworks */,
				932AD4E91D1A74A8000EA038 /* GoogleAppUtilities.framework in Frameworks */,
				932AD4FE1D1B202B000EA038 /* Syncbase.framework in Frameworks */,
				932AD4EA1D1A74A8000EA038 /* GoogleAuthUtilities.framework in Frameworks */,
				932AD4EB1D1A74A8000EA038 /* GoogleNetworkingUtilities.framework in Frameworks */,
				932AD4EE1D1A74C5000EA038 /* GoogleSignIn.framework in Frameworks */,
				932AD4EC1D1A74A8000EA038 /* GoogleSymbolUtilities.framework in Frameworks */,
				932AD4ED1D1A74A8000EA038 /* GoogleUtilities.framework in Frameworks */,
				931F8BD51D19258F00B97CF3 /* SystemConfiguration.framework in Frameworks */,
				931F8BD31D19258800B97CF3 /* StoreKit.framework in Frameworks */,
				931F8BD11D19258300B97CF3 /* AddressBook.framework in Frameworks */,
				931F8BCF1D19257600B97CF3 /* libz.tbd in Frameworks */,
				93824A7F1D2491A200F4851B /* SyncbaseCore.framework in Frameworks */,
			);
			runOnlyForDeploymentPostprocessing = 0;
		};
/* End PBXFrameworksBuildPhase section */

/* Begin PBXGroup section */
		3783985E1CF3ADB000C35566 = {
			isa = PBXGroup;
			children = (
				37B018BA1CFF7A9D004B0A15 /* SyncbaseTodos */,
				93824A831D2491AC00F4851B /* Frameworks */,
				378398681CF3ADB000C35566 /* Products */,
			);
			sourceTree = "<group>";
		};
		378398681CF3ADB000C35566 /* Products */ = {
			isa = PBXGroup;
			children = (
				378398671CF3ADB000C35566 /* SyncbaseTodos.app */,
			);
			name = Products;
			sourceTree = "<group>";
		};
		37B018BA1CFF7A9D004B0A15 /* SyncbaseTodos */ = {
			isa = PBXGroup;
			children = (
				37B018D71CFF7B5A004B0A15 /* Views */,
				37B018D51CFF7B48004B0A15 /* Model */,
				37B018D61CFF7B52004B0A15 /* Util */,
				37B018BB1CFF7A9D004B0A15 /* AppDelegate.swift */,
				37B018BC1CFF7A9D004B0A15 /* Assets.xcassets */,
				37B018BD1CFF7A9D004B0A15 /* LaunchScreen.storyboard */,
				37B018BF1CFF7A9D004B0A15 /* Main.storyboard */,
				37B018C21CFF7A9D004B0A15 /* Info.plist */,
			);
			path = SyncbaseTodos;
			sourceTree = "<group>";
		};
		37B018D51CFF7B48004B0A15 /* Model */ = {
			isa = PBXGroup;
			children = (
				37B018C41CFF7A9D004B0A15 /* Contact.swift */,
				37B018C51CFF7A9D004B0A15 /* Task.swift */,
				37B018C71CFF7A9D004B0A15 /* TodoList.swift */,
				932AD50D1D1BCFD3000EA038 /* Marshal.swift */,
				93213FEE1D1C8BB100297838 /* Syncbase.swift */,
			);
			name = Model;
			sourceTree = "<group>";
		};
		37B018D61CFF7B52004B0A15 /* Util */ = {
			isa = PBXGroup;
			children = (
				37B018C11CFF7A9D004B0A15 /* CircularImageView.swift */,
				93C462AF1D2F108F00394BAB /* Dispatch.swift */,
				37B018C31CFF7A9D004B0A15 /* MemberView.swift */,
			);
			name = Util;
			sourceTree = "<group>";
		};
		37B018D71CFF7B5A004B0A15 /* Views */ = {
			isa = PBXGroup;
			children = (
				379604B41D0F655B004CA8CC /* InviteViewController.swift */,
				931F8BD61D19290B00B97CF3 /* LoginViewController.swift */,
				37B018C61CFF7A9D004B0A15 /* TasksViewController.swift */,
				37B018C81CFF7A9D004B0A15 /* TodosViewController.swift */,
			);
			name = Views;
			sourceTree = "<group>";
		};
		931F8BC11D19254700B97CF3 /* Google Sign-In */ = {
			isa = PBXGroup;
			children = (
				931F8BB61D19254300B97CF3 /* GoogleSignIn.bundle */,
				931F8BD01D19258300B97CF3 /* AddressBook.framework */,
				931F8BB31D19254300B97CF3 /* GoogleAppUtilities.framework */,
				931F8BB41D19254300B97CF3 /* GoogleAuthUtilities.framework */,
				931F8BB51D19254300B97CF3 /* GoogleNetworkingUtilities.framework */,
				931F8BB71D19254300B97CF3 /* GoogleSignIn.framework */,
				931F8BB81D19254300B97CF3 /* GoogleSymbolUtilities.framework */,
				931F8BB91D19254300B97CF3 /* GoogleUtilities.framework */,
				932AD5031D1B20C5000EA038 /* SafariServices.framework */,
				931F8BD21D19258800B97CF3 /* StoreKit.framework */,
				931F8BD41D19258F00B97CF3 /* SystemConfiguration.framework */,
				932AD4F11D1B1050000EA038 /* GoogleService-Info.plist */,
				931F8BCE1D19257600B97CF3 /* libz.tbd */,
			);
			name = "Google Sign-In";
			sourceTree = "<group>";
		};
		93824A761D24919600F4851B /* Products */ = {
			isa = PBXGroup;
			children = (
				93824A7C1D24919600F4851B /* SyncbaseCore.framework */,
				93824A7E1D24919600F4851B /* SyncbaseCoreTests.xctest */,
			);
			name = Products;
			sourceTree = "<group>";
		};
		93824A831D2491AC00F4851B /* Frameworks */ = {
			isa = PBXGroup;
			children = (
				931F8BC11D19254700B97CF3 /* Google Sign-In */,
				938DEA8D1D10DA4A003C9734 /* Syncbase.xcodeproj */,
				93824A751D24919600F4851B /* SyncbaseCore.xcodeproj */,
			);
			name = Frameworks;
			sourceTree = "<group>";
		};
		938DEA8E1D10DA4A003C9734 /* Products */ = {
			isa = PBXGroup;
			children = (
				938DEA941D10DA4A003C9734 /* Syncbase.framework */,
				938DEA961D10DA4A003C9734 /* SyncbaseTests.xctest */,
			);
			name = Products;
			sourceTree = "<group>";
		};
/* End PBXGroup section */

/* Begin PBXNativeTarget section */
		378398661CF3ADB000C35566 /* SyncbaseTodos */ = {
			isa = PBXNativeTarget;
			buildConfigurationList = 3783987B1CF3ADB000C35566 /* Build configuration list for PBXNativeTarget "SyncbaseTodos" */;
			buildPhases = (
				378398631CF3ADB000C35566 /* Sources */,
				378398641CF3ADB000C35566 /* Frameworks */,
				378398651CF3ADB000C35566 /* Resources */,
				932AD5021D1B202B000EA038 /* Embed Frameworks */,
			);
			buildRules = (
			);
			dependencies = (
				932AD5011D1B202B000EA038 /* PBXTargetDependency */,
				93824A821D2491A200F4851B /* PBXTargetDependency */,
			);
			name = SyncbaseTodos;
			productName = VanadiumTodos;
			productReference = 378398671CF3ADB000C35566 /* SyncbaseTodos.app */;
			productType = "com.apple.product-type.application";
		};
/* End PBXNativeTarget section */

/* Begin PBXProject section */
		3783985F1CF3ADB000C35566 /* Project object */ = {
			isa = PBXProject;
			attributes = {
				LastSwiftUpdateCheck = 0730;
				LastUpgradeCheck = 0730;
				ORGANIZATIONNAME = Google;
				TargetAttributes = {
					378398661CF3ADB000C35566 = {
						CreatedOnToolsVersion = 7.3.1;
					};
				};
			};
			buildConfigurationList = 378398621CF3ADB000C35566 /* Build configuration list for PBXProject "SyncbaseTodos" */;
			compatibilityVersion = "Xcode 3.2";
			developmentRegion = English;
			hasScannedForEncodings = 0;
			knownRegions = (
				en,
				Base,
			);
			mainGroup = 3783985E1CF3ADB000C35566;
			productRefGroup = 378398681CF3ADB000C35566 /* Products */;
			projectDirPath = "";
			projectReferences = (
				{
					ProductGroup = 938DEA8E1D10DA4A003C9734 /* Products */;
					ProjectRef = 938DEA8D1D10DA4A003C9734 /* Syncbase.xcodeproj */;
				},
				{
					ProductGroup = 93824A761D24919600F4851B /* Products */;
					ProjectRef = 93824A751D24919600F4851B /* SyncbaseCore.xcodeproj */;
				},
			);
			projectRoot = "";
			targets = (
				378398661CF3ADB000C35566 /* SyncbaseTodos */,
			);
		};
/* End PBXProject section */

/* Begin PBXReferenceProxy section */
		93824A7C1D24919600F4851B /* SyncbaseCore.framework */ = {
			isa = PBXReferenceProxy;
			fileType = wrapper.framework;
			path = SyncbaseCore.framework;
			remoteRef = 93824A7B1D24919600F4851B /* PBXContainerItemProxy */;
			sourceTree = BUILT_PRODUCTS_DIR;
		};
		93824A7E1D24919600F4851B /* SyncbaseCoreTests.xctest */ = {
			isa = PBXReferenceProxy;
			fileType = wrapper.cfbundle;
			path = SyncbaseCoreTests.xctest;
			remoteRef = 93824A7D1D24919600F4851B /* PBXContainerItemProxy */;
			sourceTree = BUILT_PRODUCTS_DIR;
		};
		938DEA941D10DA4A003C9734 /* Syncbase.framework */ = {
			isa = PBXReferenceProxy;
			fileType = wrapper.framework;
			path = Syncbase.framework;
			remoteRef = 938DEA931D10DA4A003C9734 /* PBXContainerItemProxy */;
			sourceTree = BUILT_PRODUCTS_DIR;
		};
		938DEA961D10DA4A003C9734 /* SyncbaseTests.xctest */ = {
			isa = PBXReferenceProxy;
			fileType = wrapper.cfbundle;
			path = SyncbaseTests.xctest;
			remoteRef = 938DEA951D10DA4A003C9734 /* PBXContainerItemProxy */;
			sourceTree = BUILT_PRODUCTS_DIR;
		};
/* End PBXReferenceProxy section */

/* Begin PBXResourcesBuildPhase section */
		378398651CF3ADB000C35566 /* Resources */ = {
			isa = PBXResourcesBuildPhase;
			buildActionMask = 2147483647;
			files = (
				931F8BBD1D19254300B97CF3 /* GoogleSignIn.bundle in Resources */,
				37B018CC1CFF7A9D004B0A15 /* Main.storyboard in Resources */,
				932AD4F21D1B1050000EA038 /* GoogleService-Info.plist in Resources */,
				37B018CA1CFF7A9D004B0A15 /* Assets.xcassets in Resources */,
				37B018CB1CFF7A9D004B0A15 /* LaunchScreen.storyboard in Resources */,
			);
			runOnlyForDeploymentPostprocessing = 0;
		};
/* End PBXResourcesBuildPhase section */

/* Begin PBXSourcesBuildPhase section */
		378398631CF3ADB000C35566 /* Sources */ = {
			isa = PBXSourcesBuildPhase;
			buildActionMask = 2147483647;
			files = (
				379604B51D0F655B004CA8CC /* InviteViewController.swift in Sources */,
				37B018CF1CFF7A9D004B0A15 /* MemberView.swift in Sources */,
				37B018D31CFF7A9D004B0A15 /* TodoList.swift in Sources */,
				37B018C91CFF7A9D004B0A15 /* AppDelegate.swift in Sources */,
				37B018D11CFF7A9D004B0A15 /* Task.swift in Sources */,
				37B018D41CFF7A9D004B0A15 /* TodosViewController.swift in Sources */,
				37B018D01CFF7A9D004B0A15 /* Contact.swift in Sources */,
				37B018CD1CFF7A9D004B0A15 /* CircularImageView.swift in Sources */,
				932AD50E1D1BCFD3000EA038 /* Marshal.swift in Sources */,
				93213FEF1D1C8BB100297838 /* Syncbase.swift in Sources */,
				931F8BD71D19290B00B97CF3 /* LoginViewController.swift in Sources */,
				37B018D21CFF7A9D004B0A15 /* TasksViewController.swift in Sources */,
				93C462B01D2F108F00394BAB /* Dispatch.swift in Sources */,
			);
			runOnlyForDeploymentPostprocessing = 0;
		};
/* End PBXSourcesBuildPhase section */

/* Begin PBXTargetDependency section */
		932AD5011D1B202B000EA038 /* PBXTargetDependency */ = {
			isa = PBXTargetDependency;
			name = Syncbase;
			targetProxy = 932AD5001D1B202B000EA038 /* PBXContainerItemProxy */;
		};
		93824A821D2491A200F4851B /* PBXTargetDependency */ = {
			isa = PBXTargetDependency;
			name = SyncbaseCore;
			targetProxy = 93824A811D2491A200F4851B /* PBXContainerItemProxy */;
		};
/* End PBXTargetDependency section */

/* Begin PBXVariantGroup section */
		37B018BD1CFF7A9D004B0A15 /* LaunchScreen.storyboard */ = {
			isa = PBXVariantGroup;
			children = (
				37B018BE1CFF7A9D004B0A15 /* Base */,
			);
			name = LaunchScreen.storyboard;
			sourceTree = "<group>";
		};
		37B018BF1CFF7A9D004B0A15 /* Main.storyboard */ = {
			isa = PBXVariantGroup;
			children = (
				37B018C01CFF7A9D004B0A15 /* Base */,
			);
			name = Main.storyboard;
			sourceTree = "<group>";
		};
/* End PBXVariantGroup section */

/* Begin XCBuildConfiguration section */
		378398791CF3ADB000C35566 /* Debug */ = {
			isa = XCBuildConfiguration;
			buildSettings = {
				ALWAYS_SEARCH_USER_PATHS = NO;
				CLANG_ANALYZER_NONNULL = YES;
				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;
				"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
				COPY_PHASE_STRIP = NO;
				DEBUG_INFORMATION_FORMAT = dwarf;
				ENABLE_BITCODE = NO;
				ENABLE_STRICT_OBJC_MSGSEND = YES;
				ENABLE_TESTABILITY = YES;
				FRAMEWORK_SEARCH_PATHS = $SRCROOT/../../../third_party/swift/google_signin_sdk_4_0_0;
				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_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 = 9.0;
				MTL_ENABLE_DEBUG_INFO = YES;
				ONLY_ACTIVE_ARCH = YES;
				OTHER_LDFLAGS = "-ObjC";
				SDKROOT = iphoneos;
				SWIFT_OPTIMIZATION_LEVEL = "-Onone";
			};
			name = Debug;
		};
		3783987A1CF3ADB000C35566 /* Release */ = {
			isa = XCBuildConfiguration;
			buildSettings = {
				ALWAYS_SEARCH_USER_PATHS = NO;
				CLANG_ANALYZER_NONNULL = YES;
				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;
				"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
				COPY_PHASE_STRIP = NO;
				DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
				ENABLE_BITCODE = NO;
				ENABLE_NS_ASSERTIONS = NO;
				ENABLE_STRICT_OBJC_MSGSEND = YES;
				FRAMEWORK_SEARCH_PATHS = $SRCROOT/../../../third_party/swift/google_signin_sdk_4_0_0;
				GCC_C_LANGUAGE_STANDARD = gnu99;
				GCC_NO_COMMON_BLOCKS = 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 = 9.0;
				MTL_ENABLE_DEBUG_INFO = NO;
				OTHER_LDFLAGS = "-ObjC";
				SDKROOT = iphoneos;
				VALIDATE_PRODUCT = YES;
			};
			name = Release;
		};
		3783987C1CF3ADB000C35566 /* Debug */ = {
			isa = XCBuildConfiguration;
			buildSettings = {
				ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
				EMBEDDED_CONTENT_CONTAINS_SWIFT = YES;
				FRAMEWORK_SEARCH_PATHS = (
					"$(inherited)",
					"$(PROJECT_DIR)",
				);
				INFOPLIST_FILE = SyncbaseTodos/Info.plist;
				LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks";
				PRODUCT_BUNDLE_IDENTIFIER = io.v.zinman.SyncbaseTodos;
				PRODUCT_NAME = SyncbaseTodos;
				TARGETED_DEVICE_FAMILY = "1,2";
			};
			name = Debug;
		};
		3783987D1CF3ADB000C35566 /* Release */ = {
			isa = XCBuildConfiguration;
			buildSettings = {
				ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
				EMBEDDED_CONTENT_CONTAINS_SWIFT = YES;
				FRAMEWORK_SEARCH_PATHS = (
					"$(inherited)",
					"$(PROJECT_DIR)",
				);
				INFOPLIST_FILE = SyncbaseTodos/Info.plist;
				LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks";
				PRODUCT_BUNDLE_IDENTIFIER = io.v.zinman.SyncbaseTodos;
				PRODUCT_NAME = SyncbaseTodos;
				TARGETED_DEVICE_FAMILY = "1,2";
			};
			name = Release;
		};
/* End XCBuildConfiguration section */

/* Begin XCConfigurationList section */
		378398621CF3ADB000C35566 /* Build configuration list for PBXProject "SyncbaseTodos" */ = {
			isa = XCConfigurationList;
			buildConfigurations = (
				378398791CF3ADB000C35566 /* Debug */,
				3783987A1CF3ADB000C35566 /* Release */,
			);
			defaultConfigurationIsVisible = 0;
			defaultConfigurationName = Release;
		};
		3783987B1CF3ADB000C35566 /* Build configuration list for PBXNativeTarget "SyncbaseTodos" */ = {
			isa = XCConfigurationList;
			buildConfigurations = (
				3783987C1CF3ADB000C35566 /* Debug */,
				3783987D1CF3ADB000C35566 /* Release */,
			);
			defaultConfigurationIsVisible = 0;
			defaultConfigurationName = Release;
		};
/* End XCConfigurationList section */
	};
	rootObject = 3783985F1CF3ADB000C35566 /* Project object */;
}
