Remove Tulsi.xcodeproj.

PiperOrigin-RevId: 217165283
diff --git a/.gitignore b/.gitignore
index 8590517..d61559e 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,10 +1,6 @@
 # AppCode files.
 */.idea/
 
-# Xcode user data.
-*/Tulsi.xcodeproj/project.xcworkspace/xcuserdata
-*/Tulsi.xcodeproj/xcuserdata
-
 # Build artifacts
 src/build/
 /bazel-*
diff --git a/src/Tulsi.xcodeproj/project.pbxproj b/src/Tulsi.xcodeproj/project.pbxproj
deleted file mode 100644
index 9a18e8a..0000000
--- a/src/Tulsi.xcodeproj/project.pbxproj
+++ /dev/null
@@ -1,1328 +0,0 @@
-// !$*UTF8*$!
-{
-	archiveVersion = 1;
-	classes = {
-	};
-	objectVersion = 46;
-	objects = {
-
-/* Begin PBXBuildFile section */
-		2D7A8EB51F67220400392DA3 /* macOSXCTRunner.entitlements in Resources */ = {isa = PBXBuildFile; fileRef = 2D7A8EB41F6720EB00392DA3 /* macOSXCTRunner.entitlements */; };
-		2D9DB34A1E5DECA40021EAF4 /* iOSXCTRunner.entitlements in Resources */ = {isa = PBXBuildFile; fileRef = 2D9DB3491E5DEC680021EAF4 /* iOSXCTRunner.entitlements */; };
-		2DD7C6C21F6886D400163B92 /* TulsiError.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3D387BB71C761B8800544AE0 /* TulsiError.swift */; };
-		2DD7C6C41F6887DB00163B92 /* DeploymentTarget.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2DD7C6C31F6887DB00163B92 /* DeploymentTarget.swift */; };
-		3D029B581C6421B400779E8E /* ProcessRunner.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3D029B571C6421B400779E8E /* ProcessRunner.swift */; };
-		3D029C7E1C650DD100779E8E /* ProjectEditorPackageManagerViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3D029C7C1C650DD100779E8E /* ProjectEditorPackageManagerViewController.swift */; };
-		3D0849F11C739D75005F5ABA /* TulsiGeneratorConfigDocument.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3D0849F01C739D75005F5ABA /* TulsiGeneratorConfigDocument.swift */; };
-		3D0849FC1C73AE77005F5ABA /* ProjectEditorTabViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3D0849FB1C73AE77005F5ABA /* ProjectEditorTabViewController.swift */; };
-		3D084A021C73C902005F5ABA /* OptionsEditorModelProtocol.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3D084A011C73C902005F5ABA /* OptionsEditorModelProtocol.swift */; };
-		3D084A041C73CEEF005F5ABA /* ProjectEditorConfigManagerViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3D084A031C73CEEF005F5ABA /* ProjectEditorConfigManagerViewController.swift */; };
-		3D0C9C181C5A87AF00417963 /* OptionsEditorNode.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3D0C9C171C5A87AF00417963 /* OptionsEditorNode.swift */; };
-		3D123A531C659688002BEBA2 /* TulsiProject.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3DD0DE461C654E79008B0CDF /* TulsiProject.swift */; };
-		3D167E271C5B1FA700DD485C /* Credits.html in Resources */ = {isa = PBXBuildFile; fileRef = 3D167E291C5B1FA700DD485C /* Credits.html */; };
-		3D1F2E261CF760420008CE83 /* BazelLocator.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3D1F2E251CF760420008CE83 /* BazelLocator.swift */; };
-		3D250B7F1C5DCE120091C7A5 /* XcodeScheme.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3D250B7E1C5DCE120091C7A5 /* XcodeScheme.swift */; };
-		3D329D0E1C4831EF00DFBD0F /* bazel_build.py in Resources */ = {isa = PBXBuildFile; fileRef = 3D329D0D1C4831EF00DFBD0F /* bazel_build.py */; };
-		3D387BAB1C7500A100544AE0 /* NewGeneratorConfigViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3D387BA91C7500A100544AE0 /* NewGeneratorConfigViewController.swift */; };
-		3D387BAD1C7500B500544AE0 /* NewGeneratorConfigViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = 3D387BAF1C7500B500544AE0 /* NewGeneratorConfigViewController.xib */; };
-		3D387BB21C75352E00544AE0 /* XcodeProjectGenerationProgressViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3D387BB01C75352E00544AE0 /* XcodeProjectGenerationProgressViewController.swift */; };
-		3D387BB41C75354C00544AE0 /* XcodeProjectGenerationProgressViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = 3D387BB61C75354C00544AE0 /* XcodeProjectGenerationProgressViewController.xib */; };
-		3D3DDD141CCA7BCF00E21FA4 /* ErrorAlertDetailView.xib in Resources */ = {isa = PBXBuildFile; fileRef = 3D3DDD161CCA7BCF00E21FA4 /* ErrorAlertDetailView.xib */; };
-		3D47D6BA1D13190E005B5BF3 /* NSJSONSerializationExtensions.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3D47D6B91D13190E005B5BF3 /* NSJSONSerializationExtensions.swift */; };
-		3D4E5A421D07123900DAB0B4 /* HeadlessXcodeProjectGenerator.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3D4E5A411D07123900DAB0B4 /* HeadlessXcodeProjectGenerator.swift */; };
-		3D51A8001C52C10A00FE90A6 /* TulsiOption.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3D51A7FF1C52C10A00FE90A6 /* TulsiOption.swift */; };
-		3D51A80C1C52CB6C00FE90A6 /* TulsiOptionSetTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3D51A80B1C52CB6C00FE90A6 /* TulsiOptionSetTests.swift */; };
-		3D53323F1D243BE400951579 /* EventLogger.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3D53323B1D2425E600951579 /* EventLogger.swift */; };
-		3D5A1B581D1B3485006FC2A6 /* StubInfoPlist.plist in Resources */ = {isa = PBXBuildFile; fileRef = 3D5A1B571D1B3485006FC2A6 /* StubInfoPlist.plist */; };
-		3D7B5EB11C8B7415004786EF /* BazelWorkspaceInfoExtractor.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3D7B5EB01C8B7415004786EF /* BazelWorkspaceInfoExtractor.swift */; };
-		3D7B77431C8F2DD3004786EF /* UISourcePath.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3D7B77421C8F2DD3004786EF /* UISourcePath.swift */; };
-		3D7CED5B1CC171CD0073204D /* SplashScreenWindowController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3D7CED591CC171CD0073204D /* SplashScreenWindowController.swift */; };
-		3D7CED5D1CC171E60073204D /* SplashScreenWindowController.xib in Resources */ = {isa = PBXBuildFile; fileRef = 3D7CED5F1CC171E60073204D /* SplashScreenWindowController.xib */; };
-		3D800DE91C6C24C000F4D08C /* BugReporter.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3D800DE81C6C24C000F4D08C /* BugReporter.swift */; };
-		3D8B34BA1C4EB37C0090F3AD /* TulsiNotifications.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3D8B34B91C4EB37C0090F3AD /* TulsiNotifications.swift */; };
-		3D8B34C21C4ED5D50090F3AD /* WizardSubviewProtocol.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3D8B34C11C4ED5D50090F3AD /* WizardSubviewProtocol.swift */; };
-		3D8B37ED1C4F100F0090F3AD /* BazelOpenSheetAccessoryView.xib in Resources */ = {isa = PBXBuildFile; fileRef = 3D8B37EF1C4F100F0090F3AD /* BazelOpenSheetAccessoryView.xib */; };
-		3D903A7A1D775AE800B034E9 /* StubWatchOS2InfoPlist.plist in Resources */ = {isa = PBXBuildFile; fileRef = 3D903A791D775AE800B034E9 /* StubWatchOS2InfoPlist.plist */; };
-		3D91B4DC1C78CE6B006ED85C /* TulsiDocumentController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3D91B4DB1C78CE6B006ED85C /* TulsiDocumentController.swift */; };
-		3D94853E1C31924B0026CE41 /* TulsiOptionSet.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3D94853D1C31924B0026CE41 /* TulsiOptionSet.swift */; };
-		3D9485411C3193F00026CE41 /* Options.strings in Resources */ = {isa = PBXBuildFile; fileRef = 3D9485431C3193F00026CE41 /* Options.strings */; };
-		3D99266D1C29F0A30094E098 /* TulsiGenerator.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 3D9926631C29F0A20094E098 /* TulsiGenerator.framework */; };
-		3D9926781C29F0A30094E098 /* TulsiGenerator.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 3D9926631C29F0A20094E098 /* TulsiGenerator.framework */; };
-		3D9926791C29F0A30094E098 /* TulsiGenerator.framework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = 3D9926631C29F0A20094E098 /* TulsiGenerator.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; };
-		3D9926811C29F0CC0094E098 /* PBXTargetGeneratorTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3D4A123B1C1882F5006E592D /* PBXTargetGeneratorTests.swift */; };
-		3D9926821C29F0CC0094E098 /* BuildLabelTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3D9DAF541C23604100955CD5 /* BuildLabelTests.swift */; };
-		3D9926841C29F0CC0094E098 /* PBXObjectsTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3DE40AA41C17A2F60055E464 /* PBXObjectsTests.swift */; };
-		3D9926851C29F0CC0094E098 /* PBXProjSerializerTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8B8F55AC1BE3ECDC0095AF7F /* PBXProjSerializerTests.swift */; };
-		3D9926871C29F10B0094E098 /* BazelQueryInfoExtractor.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3DFAB53A1C17764A0090CC6F /* BazelQueryInfoExtractor.swift */; };
-		3D9926881C29F10B0094E098 /* PBXTargetGenerator.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3D7830051C17918D00AF67A4 /* PBXTargetGenerator.swift */; };
-		3D9926891C29F10B0094E098 /* BuildLabel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8B8F1B111BF6BDD50008013B /* BuildLabel.swift */; };
-		3D99268A1C29F10B0094E098 /* GIDGenerator.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8BFC8F461BE7CFC70066E8BA /* GIDGenerator.swift */; };
-		3D99268B1C29F1100094E098 /* PBXObjects.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8BFC8F441BE7CF140066E8BA /* PBXObjects.swift */; };
-		3D99268C1C29F1100094E098 /* PBXUniformTypeIdentifiers.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3D9F439F1C160AFA00032F32 /* PBXUniformTypeIdentifiers.swift */; };
-		3D99268E1C29F1100094E098 /* BazelWorkspaceInfoExtractorProtocol.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3DFAB53C1C1778640090CC6F /* BazelWorkspaceInfoExtractorProtocol.swift */; };
-		3D99268F1C29F1100094E098 /* PBXProjSerializer.swift in Sources */ = {isa = PBXBuildFile; fileRef = AB18C05C3361CD7B83A8DADF /* PBXProjSerializer.swift */; };
-		3D9926911C29F1410094E098 /* bazel_clean.sh in Resources */ = {isa = PBXBuildFile; fileRef = 3D156AE11C1C8D9C00183439 /* bazel_clean.sh */; };
-		3D9926931C29F1BC0094E098 /* UIRuleEntry.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3D9926921C29F1BC0094E098 /* UIRuleEntry.swift */; };
-		3D9926951C29F1E80094E098 /* RuleEntry.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3D9926941C29F1E80094E098 /* RuleEntry.swift */; };
-		3D9926971C29FB180094E098 /* TulsiProjectInfoExtractor.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3D9926961C29FB180094E098 /* TulsiProjectInfoExtractor.swift */; };
-		3D9E11B71C6D4D750026EE68 /* main.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3D9E11B61C6D4D750026EE68 /* main.swift */; };
-		3D9E1A511C6F87670026EE68 /* NSThreadExtensions.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3D9E1A501C6F87670026EE68 /* NSThreadExtensions.swift */; };
-		3DA65B1B1C67B9DE0055448E /* TulsiGeneratorConfig.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3DA65B1A1C67B9DE0055448E /* TulsiGeneratorConfig.swift */; };
-		3DA65B281C67E9720055448E /* TulsiXcodeProjectGenerator.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3DA65B271C67E9720055448E /* TulsiXcodeProjectGenerator.swift */; };
-		3DA65B3E1C6849140055448E /* XcodeProjectGeneratorTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3DA65B3D1C6849140055448E /* XcodeProjectGeneratorTests.swift */; };
-		3DA65B441C6854EF0055448E /* LocalizedMessageLogger.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3DA65B431C6854EF0055448E /* LocalizedMessageLogger.swift */; };
-		3DA65B461C68558A0055448E /* XcodeProjectGenerator.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3DA65B451C68558A0055448E /* XcodeProjectGenerator.swift */; };
-		3DA65B481C685BF30055448E /* MockWorkspaceInfoExtractor.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3DA65B471C685BF30055448E /* MockWorkspaceInfoExtractor.swift */; };
-		3DA65B5E1C692FA20055448E /* NSURLExtensions.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3DA65B5D1C692FA20055448E /* NSURLExtensions.swift */; };
-		3DA65B601C6930210055448E /* NSURLExtensionsTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3DA65B5F1C6930210055448E /* NSURLExtensionsTests.swift */; };
-		3DA65B621C693B570055448E /* TulsiGeneratorConfigTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3DA65B611C693B570055448E /* TulsiGeneratorConfigTests.swift */; };
-		3DA65B661C693B7E0055448E /* TulsiProjectTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3DA65B651C693B7E0055448E /* TulsiProjectTests.swift */; };
-		3DAEE45E1C85128600BA1C67 /* BazelWorkspacePathInfoFetcher.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3DAEE45D1C85128600BA1C67 /* BazelWorkspacePathInfoFetcher.swift */; };
-		3DAFE8AE1DF1F23D0055AF56 /* StubIOSAppExtensionInfoPlist.plist in Resources */ = {isa = PBXBuildFile; fileRef = 3DAFE8AD1DF1F23D0055AF56 /* StubIOSAppExtensionInfoPlist.plist */; };
-		3DB1FBFC1C31DDCB0080198C /* ProjectEditorSplitViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3DB1FBFB1C31DDCB0080198C /* ProjectEditorSplitViewController.swift */; };
-		3DB1FC1B1C3235E30080198C /* UIMessage.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3DB1FC1A1C3235E30080198C /* UIMessage.swift */; };
-		3DB1FC2B1C32DCBC0080198C /* MessageViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3DB1FC2A1C32DCBC0080198C /* MessageViewController.swift */; };
-		3DBCB5201CCA94E7000801A5 /* BazelErrorExtractor.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3DBCB51F1CCA94E7000801A5 /* BazelErrorExtractor.swift */; };
-		3DBEFACD1C2A1F7200119556 /* Localizable.strings in Resources */ = {isa = PBXBuildFile; fileRef = 3DBEFACF1C2A1F7200119556 /* Localizable.strings */; };
-		3DBEFAED1C2A3E5900119556 /* MockLocalizedMessageLogger.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3DBEFAEC1C2A3E5900119556 /* MockLocalizedMessageLogger.swift */; };
-		3DC5CE0E1CFF3BAC00688AD6 /* NewProjectViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = 3DC5CE101CFF3BAC00688AD6 /* NewProjectViewController.xib */; };
-		3DCD08111D779576006ABE5B /* StubWatchOS2AppExtensionInfoPlist.plist in Resources */ = {isa = PBXBuildFile; fileRef = 3DCD08101D779576006ABE5B /* StubWatchOS2AppExtensionInfoPlist.plist */; };
-		3DCF74B61C34699100521F1F /* OptionsEditorViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3DCF74B51C34699100521F1F /* OptionsEditorViewController.swift */; };
-		3DCFE5D51C80A64600D7F31B /* WORKSPACE in Resources */ = {isa = PBXBuildFile; fileRef = 3DCFE5D21C80A64600D7F31B /* WORKSPACE */; };
-		3DCFE5DE1C80B70700D7F31B /* BazelAspectInfoExtractor.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3DCFE5DD1C80B70700D7F31B /* BazelAspectInfoExtractor.swift */; };
-		3DCFE5E21C80B92D00D7F31B /* ProgressNotifier.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3DCFE5E11C80B92D00D7F31B /* ProgressNotifier.swift */; };
-		3DD0DE441C65404F008B0CDF /* NewProjectViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3DD0DE421C65404F008B0CDF /* NewProjectViewController.swift */; };
-		3DD0DE491C656C15008B0CDF /* FilteredOpenPanel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3DD0DE481C656C15008B0CDF /* FilteredOpenPanel.swift */; };
-		3DD0EB0E1C40AEC7005C0469 /* OptionsEditorController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3DD0EB0D1C40AEC7005C0469 /* OptionsEditorController.swift */; };
-		3DD0EB101C40AED8005C0469 /* OptionsTargetSelectorController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3DD0EB0F1C40AED8005C0469 /* OptionsTargetSelectorController.swift */; };
-		3DDA83921C7BB1F100CA7BB5 /* BazelSelectionPanel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3DDA83911C7BB1F100CA7BB5 /* BazelSelectionPanel.swift */; };
-		3DEC9EDD1CF3421600769251 /* TulsiProcessRunner.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3DEC9EDC1CF3421600769251 /* TulsiProcessRunner.swift */; };
-		3DF313B41C3488BE00A34C14 /* UISelectableOutlineViewNode.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3DF313B31C3488BE00A34C14 /* UISelectableOutlineViewNode.swift */; };
-		3DF313B71C34898500A34C14 /* Localizable.strings in Resources */ = {isa = PBXBuildFile; fileRef = 3DF313B91C34898500A34C14 /* Localizable.strings */; };
-		3DFB7C4B1C81F78000376760 /* command_line_splitter.sh in Resources */ = {isa = PBXBuildFile; fileRef = 3DFB7C4A1C81F78000376760 /* command_line_splitter.sh */; };
-		3DFB7C4D1C835EC000376760 /* CommandLineSplitter.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3DFB7C4C1C835EC000376760 /* CommandLineSplitter.swift */; };
-		3DFB7C4F1C835EFB00376760 /* CommandLineSplitterTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3DFB7C4E1C835EFB00376760 /* CommandLineSplitterTests.swift */; };
-		5416093C1F5854090016769C /* BazelBuildEvents.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5416093B1F5854090016769C /* BazelBuildEvents.swift */; };
-		5429EA8B1F38C4DB00A78405 /* BazelPBXReferencePatcher.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5429EA8A1F38C4DB00A78405 /* BazelPBXReferencePatcher.swift */; };
-		5429EA911F38F56200A78405 /* BazelXcodeProjectPatcher.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5429EA901F38F56200A78405 /* BazelXcodeProjectPatcher.swift */; };
-		5442049C2064156D00EBF343 /* install_genfiles.py in Resources */ = {isa = PBXBuildFile; fileRef = 5442049B2064156D00EBF343 /* install_genfiles.py */; };
-		546AE0AF1F75BE1D00FE9562 /* StringExtensions.swift in Sources */ = {isa = PBXBuildFile; fileRef = 546AE0AE1F75BE1D00FE9562 /* StringExtensions.swift */; };
-		546AE0B11F75C0C800FE9562 /* ShellEscapingTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 546AE0B01F75C0C800FE9562 /* ShellEscapingTests.swift */; };
-		54A7E04620CC596A00B3AF4C /* bazel_build_settings.py.template in Resources */ = {isa = PBXBuildFile; fileRef = 54A7E04520CC596A00B3AF4C /* bazel_build_settings.py.template */; };
-		54A7E04A20D04C5A00B3AF4C /* user_build.py in Resources */ = {isa = PBXBuildFile; fileRef = 54A7E04920D04C5A00B3AF4C /* user_build.py */; };
-		54BDD0181F4E0FD000AAC99A /* TulsiParameter.swift in Sources */ = {isa = PBXBuildFile; fileRef = 54BDD0171F4E0FD000AAC99A /* TulsiParameter.swift */; };
-		54CA33F320C735C200E32515 /* BazelBuildSettings.swift in Sources */ = {isa = PBXBuildFile; fileRef = 54CA33F220C735C200E32515 /* BazelBuildSettings.swift */; };
-		54D17A5220D94C4B0028D377 /* PythonableTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 54D17A5120D94C4B0028D377 /* PythonableTests.swift */; };
-		54D8453F20CB121D004F6CF2 /* BazelSettingsProvider.swift in Sources */ = {isa = PBXBuildFile; fileRef = 54D8453E20CB121D004F6CF2 /* BazelSettingsProvider.swift */; };
-		54EA05C81F62E3A700472AB6 /* RuleEntryMap.swift in Sources */ = {isa = PBXBuildFile; fileRef = 54EA05C71F62E3A700472AB6 /* RuleEntryMap.swift */; };
-		54EC201820D1A8270050AF12 /* TulsiApplicationSupport.swift in Sources */ = {isa = PBXBuildFile; fileRef = 54EC201720D1A8270050AF12 /* TulsiApplicationSupport.swift */; };
-		54EDD24520D9BC27001A1B35 /* BuildSettingsTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 54EDD24420D9BC26001A1B35 /* BuildSettingsTests.swift */; };
-		54EF320A1F3E0804009E9C7F /* bazel_build_events.py in Resources */ = {isa = PBXBuildFile; fileRef = 54EF32091F3E0804009E9C7F /* bazel_build_events.py */; };
-		8B0F78C81BE5BC7E00357561 /* ConfigEditorSourceFilterViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8B0F78C71BE5BC7E00357561 /* ConfigEditorSourceFilterViewController.swift */; };
-		8B29E2D01BF9386200680E11 /* TulsiProjectDocument.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8B29E2CF1BF9386200680E11 /* TulsiProjectDocument.swift */; };
-		8B8F559B1BE3ECDC0095AF7F /* AppDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8B8F559A1BE3ECDC0095AF7F /* AppDelegate.swift */; };
-		8B8F559D1BE3ECDC0095AF7F /* ConfigEditorWizardViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8B8F559C1BE3ECDC0095AF7F /* ConfigEditorWizardViewController.swift */; };
-		8B8F559F1BE3ECDC0095AF7F /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 8B8F559E1BE3ECDC0095AF7F /* Assets.xcassets */; };
-		8B8F55A21BE3ECDC0095AF7F /* Main.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 8B8F55A01BE3ECDC0095AF7F /* Main.storyboard */; };
-		8B8F55C81BE4100A0095AF7F /* ConfigEditorBuildTargetSelectorViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8B8F55C71BE410090095AF7F /* ConfigEditorBuildTargetSelectorViewController.swift */; };
-		8BC3D1051CF3643800D6D10E /* SplashScreenRecentDocumentView.xib in Resources */ = {isa = PBXBuildFile; fileRef = 8BC3D1031CF3643800D6D10E /* SplashScreenRecentDocumentView.xib */; };
-		AB18C7AE39198BE26CB112C0 /* HeadlessModeError.swift in Sources */ = {isa = PBXBuildFile; fileRef = AB18C78A05BFF81B82FFE890 /* HeadlessModeError.swift */; };
-		AB18CB663B4A10F9BA45D02F /* TulsiCommandlineParser.swift in Sources */ = {isa = PBXBuildFile; fileRef = AB18C4E9FB80370FC40B500A /* TulsiCommandlineParser.swift */; };
-		AB18CC4A7B1A308E23A1CE6F /* HeadlessTulsiProjectCreator.swift in Sources */ = {isa = PBXBuildFile; fileRef = AB18CFC29644CD1B3B860056 /* HeadlessTulsiProjectCreator.swift */; };
-		D33C204F1EC108CC00867450 /* tulsi_logging.py in Resources */ = {isa = PBXBuildFile; fileRef = D33C204E1EC108CC00867450 /* tulsi_logging.py */; };
-		D3F78C681F391E9700AE0571 /* bazel_options.py in Resources */ = {isa = PBXBuildFile; fileRef = D3F78C671F391E9700AE0571 /* bazel_options.py */; };
-		E11AFAB02052655500C97875 /* bazel_cache_reader in Copy Utility resources */ = {isa = PBXBuildFile; fileRef = E1D770EA20523E790026802A /* bazel_cache_reader */; settings = {ATTRIBUTES = (CodeSignOnCopy, ); }; };
-		E135A781205880720082E4D0 /* apfs_clone_copy.py in Resources */ = {isa = PBXBuildFile; fileRef = E135A780205880720082E4D0 /* apfs_clone_copy.py */; };
-		E1542A0E206ED51900D3D339 /* bootstrap_lldbinit.py in Resources */ = {isa = PBXBuildFile; fileRef = E1542A0D206ED51900D3D339 /* bootstrap_lldbinit.py */; };
-		E155E20C1FCE47DA002B16BB /* BazelBuildSettingsFeatures.swift in Sources */ = {isa = PBXBuildFile; fileRef = E155E20B1FCE47D9002B16BB /* BazelBuildSettingsFeatures.swift */; };
-		E19C1C571F5886A000D6E38A /* QueuedLogging.swift in Sources */ = {isa = PBXBuildFile; fileRef = E19C1C561F5886A000D6E38A /* QueuedLogging.swift */; };
-		E1C0186D2051B65D000580CC /* clean_symbol_cache.py in Resources */ = {isa = PBXBuildFile; fileRef = E1C018692051B65B000580CC /* clean_symbol_cache.py */; };
-		E1C018702051B65D000580CC /* symbol_cache_schema.py in Resources */ = {isa = PBXBuildFile; fileRef = E1C0186C2051B65C000580CC /* symbol_cache_schema.py */; };
-		E1C018722051B66C000580CC /* update_symbol_cache.py in Resources */ = {isa = PBXBuildFile; fileRef = E1C018712051B66C000580CC /* update_symbol_cache.py */; };
-		E1C0EBDB1F70982300FA2054 /* XcodeGeneratorInvalidPaths.swift in Sources */ = {isa = PBXBuildFile; fileRef = E1C0EBDA1F70982300FA2054 /* XcodeGeneratorInvalidPaths.swift */; };
-/* End PBXBuildFile section */
-
-/* Begin PBXContainerItemProxy section */
-		3D99266E1C29F0A30094E098 /* PBXContainerItemProxy */ = {
-			isa = PBXContainerItemProxy;
-			containerPortal = 8B8F558F1BE3ECDC0095AF7F /* Project object */;
-			proxyType = 1;
-			remoteGlobalIDString = 3D9926621C29F0A20094E098;
-			remoteInfo = TulsiGenerator;
-		};
-		3D9926761C29F0A30094E098 /* PBXContainerItemProxy */ = {
-			isa = PBXContainerItemProxy;
-			containerPortal = 8B8F558F1BE3ECDC0095AF7F /* Project object */;
-			proxyType = 1;
-			remoteGlobalIDString = 3D9926621C29F0A20094E098;
-			remoteInfo = TulsiGenerator;
-		};
-		E11AFAAD205264C200C97875 /* PBXContainerItemProxy */ = {
-			isa = PBXContainerItemProxy;
-			containerPortal = E1D770E520523E780026802A /* bazel_cache_reader.xcodeproj */;
-			proxyType = 1;
-			remoteGlobalIDString = E1D770DA20523E770026802A;
-			remoteInfo = bazel_cache_reader;
-		};
-		E1D770E920523E790026802A /* PBXContainerItemProxy */ = {
-			isa = PBXContainerItemProxy;
-			containerPortal = E1D770E520523E780026802A /* bazel_cache_reader.xcodeproj */;
-			proxyType = 2;
-			remoteGlobalIDString = E1D770DB20523E770026802A;
-			remoteInfo = bazel_cache_reader;
-		};
-/* End PBXContainerItemProxy section */
-
-/* Begin PBXCopyFilesBuildPhase section */
-		3D99267F1C29F0A30094E098 /* Embed Frameworks */ = {
-			isa = PBXCopyFilesBuildPhase;
-			buildActionMask = 2147483647;
-			dstPath = "";
-			dstSubfolderSpec = 10;
-			files = (
-				3D9926791C29F0A30094E098 /* TulsiGenerator.framework in Embed Frameworks */,
-			);
-			name = "Embed Frameworks";
-			runOnlyForDeploymentPostprocessing = 0;
-		};
-		3DBA77761D6CB3EF00BD5B7C /* Copy Utility resources */ = {
-			isa = PBXCopyFilesBuildPhase;
-			buildActionMask = 2147483647;
-			dstPath = "";
-			dstSubfolderSpec = 7;
-			files = (
-				E11AFAB02052655500C97875 /* bazel_cache_reader in Copy Utility resources */,
-			);
-			name = "Copy Utility resources";
-			runOnlyForDeploymentPostprocessing = 0;
-		};
-/* End PBXCopyFilesBuildPhase section */
-
-/* Begin PBXFileReference section */
-		2D7A8EB41F6720EB00392DA3 /* macOSXCTRunner.entitlements */ = {isa = PBXFileReference; lastKnownFileType = text.plist.entitlements; path = macOSXCTRunner.entitlements; sourceTree = "<group>"; };
-		2D9DB3491E5DEC680021EAF4 /* iOSXCTRunner.entitlements */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.entitlements; path = iOSXCTRunner.entitlements; sourceTree = "<group>"; };
-		2DD7C6C31F6887DB00163B92 /* DeploymentTarget.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DeploymentTarget.swift; sourceTree = "<group>"; };
-		3D029B571C6421B400779E8E /* ProcessRunner.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ProcessRunner.swift; sourceTree = "<group>"; };
-		3D029C7C1C650DD100779E8E /* ProjectEditorPackageManagerViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ProjectEditorPackageManagerViewController.swift; sourceTree = "<group>"; };
-		3D0849F01C739D75005F5ABA /* TulsiGeneratorConfigDocument.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = TulsiGeneratorConfigDocument.swift; sourceTree = "<group>"; };
-		3D0849FB1C73AE77005F5ABA /* ProjectEditorTabViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ProjectEditorTabViewController.swift; sourceTree = "<group>"; };
-		3D084A011C73C902005F5ABA /* OptionsEditorModelProtocol.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = OptionsEditorModelProtocol.swift; sourceTree = "<group>"; };
-		3D084A031C73CEEF005F5ABA /* ProjectEditorConfigManagerViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ProjectEditorConfigManagerViewController.swift; sourceTree = "<group>"; };
-		3D0C9C171C5A87AF00417963 /* OptionsEditorNode.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = OptionsEditorNode.swift; sourceTree = "<group>"; };
-		3D156AE11C1C8D9C00183439 /* bazel_clean.sh */ = {isa = PBXFileReference; lastKnownFileType = text.script.sh; path = bazel_clean.sh; sourceTree = "<group>"; };
-		3D1F2E251CF760420008CE83 /* BazelLocator.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = BazelLocator.swift; sourceTree = "<group>"; };
-		3D250B7E1C5DCE120091C7A5 /* XcodeScheme.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = XcodeScheme.swift; sourceTree = "<group>"; };
-		3D329D0D1C4831EF00DFBD0F /* bazel_build.py */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.script.python; path = bazel_build.py; sourceTree = "<group>"; };
-		3D387BA91C7500A100544AE0 /* NewGeneratorConfigViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = NewGeneratorConfigViewController.swift; sourceTree = "<group>"; };
-		3D387BAE1C7500B500544AE0 /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = Base; path = Base.lproj/NewGeneratorConfigViewController.xib; sourceTree = "<group>"; };
-		3D387BB01C75352E00544AE0 /* XcodeProjectGenerationProgressViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = XcodeProjectGenerationProgressViewController.swift; sourceTree = "<group>"; };
-		3D387BB51C75354C00544AE0 /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = Base; path = Base.lproj/XcodeProjectGenerationProgressViewController.xib; sourceTree = "<group>"; };
-		3D387BB71C761B8800544AE0 /* TulsiError.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = TulsiError.swift; sourceTree = "<group>"; };
-		3D3DDD151CCA7BCF00E21FA4 /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = Base; path = Base.lproj/ErrorAlertDetailView.xib; sourceTree = "<group>"; };
-		3D47D6B91D13190E005B5BF3 /* NSJSONSerializationExtensions.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = NSJSONSerializationExtensions.swift; sourceTree = "<group>"; };
-		3D4A123B1C1882F5006E592D /* PBXTargetGeneratorTests.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = PBXTargetGeneratorTests.swift; sourceTree = "<group>"; };
-		3D4E5A411D07123900DAB0B4 /* HeadlessXcodeProjectGenerator.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = HeadlessXcodeProjectGenerator.swift; sourceTree = "<group>"; };
-		3D51A7FF1C52C10A00FE90A6 /* TulsiOption.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = TulsiOption.swift; sourceTree = "<group>"; };
-		3D51A80B1C52CB6C00FE90A6 /* TulsiOptionSetTests.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = TulsiOptionSetTests.swift; sourceTree = "<group>"; };
-		3D53323B1D2425E600951579 /* EventLogger.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; name = EventLogger.swift; path = Tulsi/EventLogger.swift; sourceTree = SOURCE_ROOT; };
-		3D5A1B571D1B3485006FC2A6 /* StubInfoPlist.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; name = StubInfoPlist.plist; path = GeneratedProjectResources/StubInfoPlist.plist; sourceTree = "<group>"; };
-		3D7830051C17918D00AF67A4 /* PBXTargetGenerator.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = PBXTargetGenerator.swift; sourceTree = "<group>"; };
-		3D7B5EB01C8B7415004786EF /* BazelWorkspaceInfoExtractor.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = BazelWorkspaceInfoExtractor.swift; sourceTree = "<group>"; };
-		3D7B77421C8F2DD3004786EF /* UISourcePath.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = UISourcePath.swift; sourceTree = "<group>"; };
-		3D7CED591CC171CD0073204D /* SplashScreenWindowController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SplashScreenWindowController.swift; sourceTree = "<group>"; };
-		3D7CED5E1CC171E60073204D /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = Base; path = Base.lproj/SplashScreenWindowController.xib; sourceTree = "<group>"; };
-		3D800DE81C6C24C000F4D08C /* BugReporter.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = BugReporter.swift; sourceTree = "<group>"; };
-		3D8B34B91C4EB37C0090F3AD /* TulsiNotifications.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = TulsiNotifications.swift; sourceTree = "<group>"; };
-		3D8B34C11C4ED5D50090F3AD /* WizardSubviewProtocol.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = WizardSubviewProtocol.swift; sourceTree = "<group>"; };
-		3D8B37EE1C4F100F0090F3AD /* Base */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; name = Base; path = Base.lproj/BazelOpenSheetAccessoryView.xib; sourceTree = "<group>"; };
-		3D903A791D775AE800B034E9 /* StubWatchOS2InfoPlist.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; name = StubWatchOS2InfoPlist.plist; path = GeneratedProjectResources/StubWatchOS2InfoPlist.plist; sourceTree = "<group>"; };
-		3D91B4DB1C78CE6B006ED85C /* TulsiDocumentController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = TulsiDocumentController.swift; sourceTree = "<group>"; };
-		3D94853D1C31924B0026CE41 /* TulsiOptionSet.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = TulsiOptionSet.swift; sourceTree = "<group>"; };
-		3D9926631C29F0A20094E098 /* TulsiGenerator.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = TulsiGenerator.framework; sourceTree = BUILT_PRODUCTS_DIR; };
-		3D9926671C29F0A20094E098 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = "<group>"; };
-		3D99266C1C29F0A20094E098 /* TulsiGeneratorTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = TulsiGeneratorTests.xctest; sourceTree = BUILT_PRODUCTS_DIR; };
-		3D9926751C29F0A30094E098 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = "<group>"; };
-		3D9926921C29F1BC0094E098 /* UIRuleEntry.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = UIRuleEntry.swift; sourceTree = "<group>"; };
-		3D9926941C29F1E80094E098 /* RuleEntry.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = RuleEntry.swift; sourceTree = "<group>"; };
-		3D9926961C29FB180094E098 /* TulsiProjectInfoExtractor.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = TulsiProjectInfoExtractor.swift; sourceTree = "<group>"; };
-		3D9DAF541C23604100955CD5 /* BuildLabelTests.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = BuildLabelTests.swift; sourceTree = "<group>"; };
-		3D9E11B61C6D4D750026EE68 /* main.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = main.swift; sourceTree = "<group>"; };
-		3D9E1A501C6F87670026EE68 /* NSThreadExtensions.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = NSThreadExtensions.swift; sourceTree = "<group>"; };
-		3D9F439F1C160AFA00032F32 /* PBXUniformTypeIdentifiers.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = PBXUniformTypeIdentifiers.swift; sourceTree = "<group>"; };
-		3DA65B1A1C67B9DE0055448E /* TulsiGeneratorConfig.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = TulsiGeneratorConfig.swift; sourceTree = "<group>"; };
-		3DA65B271C67E9720055448E /* TulsiXcodeProjectGenerator.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = TulsiXcodeProjectGenerator.swift; sourceTree = "<group>"; };
-		3DA65B3D1C6849140055448E /* XcodeProjectGeneratorTests.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = XcodeProjectGeneratorTests.swift; sourceTree = "<group>"; };
-		3DA65B431C6854EF0055448E /* LocalizedMessageLogger.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = LocalizedMessageLogger.swift; sourceTree = "<group>"; };
-		3DA65B451C68558A0055448E /* XcodeProjectGenerator.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = XcodeProjectGenerator.swift; sourceTree = "<group>"; };
-		3DA65B471C685BF30055448E /* MockWorkspaceInfoExtractor.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = MockWorkspaceInfoExtractor.swift; sourceTree = "<group>"; };
-		3DA65B5D1C692FA20055448E /* NSURLExtensions.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = NSURLExtensions.swift; sourceTree = "<group>"; };
-		3DA65B5F1C6930210055448E /* NSURLExtensionsTests.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = NSURLExtensionsTests.swift; sourceTree = "<group>"; };
-		3DA65B611C693B570055448E /* TulsiGeneratorConfigTests.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = TulsiGeneratorConfigTests.swift; sourceTree = "<group>"; };
-		3DA65B651C693B7E0055448E /* TulsiProjectTests.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = TulsiProjectTests.swift; sourceTree = "<group>"; };
-		3DAEE45D1C85128600BA1C67 /* BazelWorkspacePathInfoFetcher.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = BazelWorkspacePathInfoFetcher.swift; sourceTree = "<group>"; };
-		3DAFE8AD1DF1F23D0055AF56 /* StubIOSAppExtensionInfoPlist.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; name = StubIOSAppExtensionInfoPlist.plist; path = GeneratedProjectResources/StubIOSAppExtensionInfoPlist.plist; sourceTree = "<group>"; };
-		3DB1FBFB1C31DDCB0080198C /* ProjectEditorSplitViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ProjectEditorSplitViewController.swift; sourceTree = "<group>"; };
-		3DB1FC1A1C3235E30080198C /* UIMessage.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = UIMessage.swift; sourceTree = "<group>"; };
-		3DB1FC2A1C32DCBC0080198C /* MessageViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = MessageViewController.swift; sourceTree = "<group>"; };
-		3DB8F6C01CA9E0FC0045B0CF /* aspect.BUILD */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; name = aspect.BUILD; path = tulsi/aspect.BUILD; sourceTree = "<group>"; };
-		3DB8F6C11CA9E0FC0045B0CF /* tulsi_aspects.bzl */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; name = tulsi_aspects.bzl; path = tulsi/tulsi_aspects.bzl; sourceTree = "<group>"; xcLanguageSpecificationIdentifier = xcode.lang.python; };
-		3DBCB51F1CCA94E7000801A5 /* BazelErrorExtractor.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = BazelErrorExtractor.swift; sourceTree = "<group>"; };
-		3DBEFAEC1C2A3E5900119556 /* MockLocalizedMessageLogger.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = MockLocalizedMessageLogger.swift; sourceTree = "<group>"; };
-		3DC5CE0F1CFF3BAC00688AD6 /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = Base; path = Base.lproj/NewProjectViewController.xib; sourceTree = "<group>"; };
-		3DCD08101D779576006ABE5B /* StubWatchOS2AppExtensionInfoPlist.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist; name = StubWatchOS2AppExtensionInfoPlist.plist; path = GeneratedProjectResources/StubWatchOS2AppExtensionInfoPlist.plist; sourceTree = "<group>"; };
-		3DCF74B51C34699100521F1F /* OptionsEditorViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = OptionsEditorViewController.swift; sourceTree = "<group>"; };
-		3DCFE5D21C80A64600D7F31B /* WORKSPACE */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = WORKSPACE; sourceTree = "<group>"; };
-		3DCFE5DD1C80B70700D7F31B /* BazelAspectInfoExtractor.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = BazelAspectInfoExtractor.swift; sourceTree = "<group>"; };
-		3DCFE5E11C80B92D00D7F31B /* ProgressNotifier.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ProgressNotifier.swift; sourceTree = "<group>"; };
-		3DD0DE421C65404F008B0CDF /* NewProjectViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = NewProjectViewController.swift; sourceTree = "<group>"; };
-		3DD0DE461C654E79008B0CDF /* TulsiProject.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = TulsiProject.swift; sourceTree = "<group>"; };
-		3DD0DE481C656C15008B0CDF /* FilteredOpenPanel.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = FilteredOpenPanel.swift; sourceTree = "<group>"; };
-		3DD0EB0D1C40AEC7005C0469 /* OptionsEditorController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = OptionsEditorController.swift; sourceTree = "<group>"; };
-		3DD0EB0F1C40AED8005C0469 /* OptionsTargetSelectorController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = OptionsTargetSelectorController.swift; sourceTree = "<group>"; };
-		3DDA83911C7BB1F100CA7BB5 /* BazelSelectionPanel.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = BazelSelectionPanel.swift; sourceTree = "<group>"; };
-		3DE40AA41C17A2F60055E464 /* PBXObjectsTests.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = PBXObjectsTests.swift; sourceTree = "<group>"; };
-		3DEC9EDC1CF3421600769251 /* TulsiProcessRunner.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = TulsiProcessRunner.swift; sourceTree = "<group>"; };
-		3DF313B31C3488BE00A34C14 /* UISelectableOutlineViewNode.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = UISelectableOutlineViewNode.swift; sourceTree = "<group>"; };
-		3DFAB53A1C17764A0090CC6F /* BazelQueryInfoExtractor.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = BazelQueryInfoExtractor.swift; sourceTree = "<group>"; };
-		3DFAB53C1C1778640090CC6F /* BazelWorkspaceInfoExtractorProtocol.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = BazelWorkspaceInfoExtractorProtocol.swift; sourceTree = "<group>"; };
-		3DFB7C4A1C81F78000376760 /* command_line_splitter.sh */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.script.sh; path = command_line_splitter.sh; sourceTree = "<group>"; };
-		3DFB7C4C1C835EC000376760 /* CommandLineSplitter.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = CommandLineSplitter.swift; sourceTree = "<group>"; };
-		3DFB7C4E1C835EFB00376760 /* CommandLineSplitterTests.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = CommandLineSplitterTests.swift; sourceTree = "<group>"; };
-		5416093B1F5854090016769C /* BazelBuildEvents.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = BazelBuildEvents.swift; sourceTree = "<group>"; };
-		5429EA8A1F38C4DB00A78405 /* BazelPBXReferencePatcher.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = BazelPBXReferencePatcher.swift; sourceTree = "<group>"; };
-		5429EA901F38F56200A78405 /* BazelXcodeProjectPatcher.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = BazelXcodeProjectPatcher.swift; sourceTree = "<group>"; };
-		5442049B2064156D00EBF343 /* install_genfiles.py */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.script.python; path = install_genfiles.py; sourceTree = "<group>"; };
-		546AE0AE1F75BE1D00FE9562 /* StringExtensions.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = StringExtensions.swift; sourceTree = "<group>"; };
-		546AE0B01F75C0C800FE9562 /* ShellEscapingTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ShellEscapingTests.swift; sourceTree = "<group>"; };
-		54A7E04520CC596A00B3AF4C /* bazel_build_settings.py.template */ = {isa = PBXFileReference; explicitFileType = text.script.python; path = bazel_build_settings.py.template; sourceTree = "<group>"; };
-		54A7E04920D04C5A00B3AF4C /* user_build.py */ = {isa = PBXFileReference; lastKnownFileType = text.script.python; path = user_build.py; sourceTree = "<group>"; };
-		54BDD0171F4E0FD000AAC99A /* TulsiParameter.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TulsiParameter.swift; sourceTree = "<group>"; };
-		54CA33F220C735C200E32515 /* BazelBuildSettings.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = BazelBuildSettings.swift; sourceTree = "<group>"; };
-		54D17A5120D94C4B0028D377 /* PythonableTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PythonableTests.swift; sourceTree = "<group>"; };
-		54D8453E20CB121D004F6CF2 /* BazelSettingsProvider.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = BazelSettingsProvider.swift; sourceTree = "<group>"; };
-		54EA05C71F62E3A700472AB6 /* RuleEntryMap.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = RuleEntryMap.swift; sourceTree = "<group>"; };
-		54EC201720D1A8270050AF12 /* TulsiApplicationSupport.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TulsiApplicationSupport.swift; sourceTree = "<group>"; };
-		54EDD24420D9BC26001A1B35 /* BuildSettingsTests.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = BuildSettingsTests.swift; sourceTree = "<group>"; };
-		54EF32091F3E0804009E9C7F /* bazel_build_events.py */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.script.python; path = bazel_build_events.py; sourceTree = "<group>"; };
-		8B0F78C71BE5BC7E00357561 /* ConfigEditorSourceFilterViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ConfigEditorSourceFilterViewController.swift; sourceTree = "<group>"; };
-		8B29E2CF1BF9386200680E11 /* TulsiProjectDocument.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = TulsiProjectDocument.swift; sourceTree = "<group>"; };
-		8B8F1B111BF6BDD50008013B /* BuildLabel.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = BuildLabel.swift; sourceTree = "<group>"; };
-		8B8F55971BE3ECDC0095AF7F /* Tulsi.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = Tulsi.app; sourceTree = BUILT_PRODUCTS_DIR; };
-		8B8F559A1BE3ECDC0095AF7F /* AppDelegate.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppDelegate.swift; sourceTree = "<group>"; };
-		8B8F559C1BE3ECDC0095AF7F /* ConfigEditorWizardViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ConfigEditorWizardViewController.swift; sourceTree = "<group>"; };
-		8B8F559E1BE3ECDC0095AF7F /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = "<group>"; };
-		8B8F55A11BE3ECDC0095AF7F /* Base */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/Main.storyboard; sourceTree = "<group>"; };
-		8B8F55A31BE3ECDC0095AF7F /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = "<group>"; };
-		8B8F55AC1BE3ECDC0095AF7F /* PBXProjSerializerTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PBXProjSerializerTests.swift; sourceTree = "<group>"; };
-		8B8F55C71BE410090095AF7F /* ConfigEditorBuildTargetSelectorViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ConfigEditorBuildTargetSelectorViewController.swift; sourceTree = "<group>"; };
-		8BBC041D2092311000A4826E /* en */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = en; path = en.lproj/Localizable.strings; sourceTree = "<group>"; };
-		8BBC041E2092312000A4826E /* en */ = {isa = PBXFileReference; lastKnownFileType = text.html; name = en; path = en.lproj/Credits.html; sourceTree = "<group>"; };
-		8BBC0423209235EC00A4826E /* en */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = en; path = en.lproj/Localizable.strings; sourceTree = "<group>"; };
-		8BBC0424209235F500A4826E /* en */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = en; path = en.lproj/Options.strings; sourceTree = "<group>"; };
-		8BC3D1041CF3643800D6D10E /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = Base; path = Tulsi/Base.lproj/SplashScreenRecentDocumentView.xib; sourceTree = "<group>"; };
-		8BFC8F441BE7CF140066E8BA /* PBXObjects.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = PBXObjects.swift; sourceTree = "<group>"; };
-		8BFC8F461BE7CFC70066E8BA /* GIDGenerator.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = GIDGenerator.swift; sourceTree = "<group>"; };
-		AB18C05C3361CD7B83A8DADF /* PBXProjSerializer.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = PBXProjSerializer.swift; sourceTree = "<group>"; };
-		AB18C4E9FB80370FC40B500A /* TulsiCommandlineParser.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = TulsiCommandlineParser.swift; sourceTree = "<group>"; };
-		AB18C78A05BFF81B82FFE890 /* HeadlessModeError.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = HeadlessModeError.swift; sourceTree = "<group>"; };
-		AB18CFC29644CD1B3B860056 /* HeadlessTulsiProjectCreator.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = HeadlessTulsiProjectCreator.swift; sourceTree = "<group>"; };
-		D33C204E1EC108CC00867450 /* tulsi_logging.py */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.script.python; path = tulsi_logging.py; sourceTree = "<group>"; };
-		D3F78C671F391E9700AE0571 /* bazel_options.py */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.script.python; path = bazel_options.py; sourceTree = "<group>"; };
-		E132B8B51F86FA3400DF7F9A /* tulsi_aspects_paths.bzl */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; name = tulsi_aspects_paths.bzl; path = tulsi/tulsi_aspects_paths.bzl; sourceTree = "<group>"; };
-		E135A780205880720082E4D0 /* apfs_clone_copy.py */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.script.python; path = apfs_clone_copy.py; sourceTree = "<group>"; };
-		E1542A0D206ED51900D3D339 /* bootstrap_lldbinit.py */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.script.python; path = bootstrap_lldbinit.py; sourceTree = "<group>"; };
-		E155E20B1FCE47D9002B16BB /* BazelBuildSettingsFeatures.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = BazelBuildSettingsFeatures.swift; sourceTree = "<group>"; };
-		E19C1C561F5886A000D6E38A /* QueuedLogging.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = QueuedLogging.swift; sourceTree = "<group>"; };
-		E1C018692051B65B000580CC /* clean_symbol_cache.py */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.script.python; path = clean_symbol_cache.py; sourceTree = "<group>"; };
-		E1C0186C2051B65C000580CC /* symbol_cache_schema.py */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.script.python; path = symbol_cache_schema.py; sourceTree = "<group>"; };
-		E1C018712051B66C000580CC /* update_symbol_cache.py */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.script.python; path = update_symbol_cache.py; sourceTree = "<group>"; };
-		E1C0EBDA1F70982300FA2054 /* XcodeGeneratorInvalidPaths.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = XcodeGeneratorInvalidPaths.swift; sourceTree = "<group>"; };
-		E1D770E520523E780026802A /* bazel_cache_reader.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = bazel_cache_reader.xcodeproj; path = tools/bazel_cache_reader/bazel_cache_reader.xcodeproj; sourceTree = "<group>"; };
-		F4469ECE1C5BCA5900BCFAA1 /* TulsiVersion.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = TulsiVersion.xcconfig; sourceTree = "<group>"; };
-/* End PBXFileReference section */
-
-/* Begin PBXFrameworksBuildPhase section */
-		3D99265F1C29F0A20094E098 /* Frameworks */ = {
-			isa = PBXFrameworksBuildPhase;
-			buildActionMask = 2147483647;
-			files = (
-			);
-			runOnlyForDeploymentPostprocessing = 0;
-		};
-		3D9926691C29F0A20094E098 /* Frameworks */ = {
-			isa = PBXFrameworksBuildPhase;
-			buildActionMask = 2147483647;
-			files = (
-				3D99266D1C29F0A30094E098 /* TulsiGenerator.framework in Frameworks */,
-			);
-			runOnlyForDeploymentPostprocessing = 0;
-		};
-		8B8F55941BE3ECDC0095AF7F /* Frameworks */ = {
-			isa = PBXFrameworksBuildPhase;
-			buildActionMask = 2147483647;
-			files = (
-				3D9926781C29F0A30094E098 /* TulsiGenerator.framework in Frameworks */,
-			);
-			runOnlyForDeploymentPostprocessing = 0;
-		};
-/* End PBXFrameworksBuildPhase section */
-
-/* Begin PBXGroup section */
-		3D5A1B561D1B3432006FC2A6 /* GeneratedProjectResources */ = {
-			isa = PBXGroup;
-			children = (
-				3D5A1B571D1B3485006FC2A6 /* StubInfoPlist.plist */,
-				3DAFE8AD1DF1F23D0055AF56 /* StubIOSAppExtensionInfoPlist.plist */,
-				3DCD08101D779576006ABE5B /* StubWatchOS2AppExtensionInfoPlist.plist */,
-				3D903A791D775AE800B034E9 /* StubWatchOS2InfoPlist.plist */,
-				2D9DB3491E5DEC680021EAF4 /* iOSXCTRunner.entitlements */,
-				2D7A8EB41F6720EB00392DA3 /* macOSXCTRunner.entitlements */,
-			);
-			name = GeneratedProjectResources;
-			sourceTree = "<group>";
-		};
-		3D78698C1C57D6DB0070FCC8 /* Resources */ = {
-			isa = PBXGroup;
-			children = (
-				3D5A1B561D1B3432006FC2A6 /* GeneratedProjectResources */,
-				3DCFE5CE1C80A64600D7F31B /* Bazel */,
-				3D9926671C29F0A20094E098 /* Info.plist */,
-				3DBEFACF1C2A1F7200119556 /* Localizable.strings */,
-				3D9485431C3193F00026CE41 /* Options.strings */,
-				3DAC27671C3AD2510040F42C /* Scripts */,
-			);
-			name = Resources;
-			sourceTree = "<group>";
-		};
-		3D9926641C29F0A20094E098 /* TulsiGenerator */ = {
-			isa = PBXGroup;
-			children = (
-				3DA65B421C6854BA0055448E /* Implementation */,
-				3DA65B1C1C67B9F10055448E /* Models */,
-				3D78698C1C57D6DB0070FCC8 /* Resources */,
-				3D029B571C6421B400779E8E /* ProcessRunner.swift */,
-				3D8B34B91C4EB37C0090F3AD /* TulsiNotifications.swift */,
-				3D9926961C29FB180094E098 /* TulsiProjectInfoExtractor.swift */,
-				3DEC9EDC1CF3421600769251 /* TulsiProcessRunner.swift */,
-				3DA65B271C67E9720055448E /* TulsiXcodeProjectGenerator.swift */,
-				546AE0AE1F75BE1D00FE9562 /* StringExtensions.swift */,
-			);
-			path = TulsiGenerator;
-			sourceTree = "<group>";
-		};
-		3D9926721C29F0A30094E098 /* TulsiGeneratorTests */ = {
-			isa = PBXGroup;
-			children = (
-				3D9DAF541C23604100955CD5 /* BuildLabelTests.swift */,
-				54EDD24420D9BC26001A1B35 /* BuildSettingsTests.swift */,
-				3DFB7C4E1C835EFB00376760 /* CommandLineSplitterTests.swift */,
-				3D9926751C29F0A30094E098 /* Info.plist */,
-				3DA65B411C68539F0055448E /* Mocks */,
-				3DA65B5F1C6930210055448E /* NSURLExtensionsTests.swift */,
-				3DE40AA41C17A2F60055E464 /* PBXObjectsTests.swift */,
-				8B8F55AC1BE3ECDC0095AF7F /* PBXProjSerializerTests.swift */,
-				3D4A123B1C1882F5006E592D /* PBXTargetGeneratorTests.swift */,
-				54D17A5120D94C4B0028D377 /* PythonableTests.swift */,
-				546AE0B01F75C0C800FE9562 /* ShellEscapingTests.swift */,
-				3DA65B611C693B570055448E /* TulsiGeneratorConfigTests.swift */,
-				3D51A80B1C52CB6C00FE90A6 /* TulsiOptionSetTests.swift */,
-				3DA65B651C693B7E0055448E /* TulsiProjectTests.swift */,
-				3DA65B3D1C6849140055448E /* XcodeProjectGeneratorTests.swift */,
-			);
-			path = TulsiGeneratorTests;
-			sourceTree = "<group>";
-		};
-		3DA65B1C1C67B9F10055448E /* Models */ = {
-			isa = PBXGroup;
-			children = (
-				8B8F1B111BF6BDD50008013B /* BuildLabel.swift */,
-				8BFC8F441BE7CF140066E8BA /* PBXObjects.swift */,
-				3D9926941C29F1E80094E098 /* RuleEntry.swift */,
-				3DA65B1A1C67B9DE0055448E /* TulsiGeneratorConfig.swift */,
-				3D51A7FF1C52C10A00FE90A6 /* TulsiOption.swift */,
-				3D94853D1C31924B0026CE41 /* TulsiOptionSet.swift */,
-				3DD0DE461C654E79008B0CDF /* TulsiProject.swift */,
-				3D250B7E1C5DCE120091C7A5 /* XcodeScheme.swift */,
-				54BDD0171F4E0FD000AAC99A /* TulsiParameter.swift */,
-				2DD7C6C31F6887DB00163B92 /* DeploymentTarget.swift */,
-				E1C0EBDA1F70982300FA2054 /* XcodeGeneratorInvalidPaths.swift */,
-				54EA05C71F62E3A700472AB6 /* RuleEntryMap.swift */,
-				54CA33F220C735C200E32515 /* BazelBuildSettings.swift */,
-			);
-			name = Models;
-			sourceTree = "<group>";
-		};
-		3DA65B411C68539F0055448E /* Mocks */ = {
-			isa = PBXGroup;
-			children = (
-				3DBEFAEC1C2A3E5900119556 /* MockLocalizedMessageLogger.swift */,
-				3DA65B471C685BF30055448E /* MockWorkspaceInfoExtractor.swift */,
-			);
-			name = Mocks;
-			sourceTree = "<group>";
-		};
-		3DA65B421C6854BA0055448E /* Implementation */ = {
-			isa = PBXGroup;
-			children = (
-				5429EA8A1F38C4DB00A78405 /* BazelPBXReferencePatcher.swift */,
-				3DCFE5DD1C80B70700D7F31B /* BazelAspectInfoExtractor.swift */,
-				3DBCB51F1CCA94E7000801A5 /* BazelErrorExtractor.swift */,
-				3D1F2E251CF760420008CE83 /* BazelLocator.swift */,
-				3DFAB53A1C17764A0090CC6F /* BazelQueryInfoExtractor.swift */,
-				3D7B5EB01C8B7415004786EF /* BazelWorkspaceInfoExtractor.swift */,
-				3DFAB53C1C1778640090CC6F /* BazelWorkspaceInfoExtractorProtocol.swift */,
-				3DAEE45D1C85128600BA1C67 /* BazelWorkspacePathInfoFetcher.swift */,
-				E19C1C561F5886A000D6E38A /* QueuedLogging.swift */,
-				3DFB7C4C1C835EC000376760 /* CommandLineSplitter.swift */,
-				8BFC8F461BE7CFC70066E8BA /* GIDGenerator.swift */,
-				3DA65B431C6854EF0055448E /* LocalizedMessageLogger.swift */,
-				3D47D6B91D13190E005B5BF3 /* NSJSONSerializationExtensions.swift */,
-				3D9E1A501C6F87670026EE68 /* NSThreadExtensions.swift */,
-				3DA65B5D1C692FA20055448E /* NSURLExtensions.swift */,
-				AB18C05C3361CD7B83A8DADF /* PBXProjSerializer.swift */,
-				3D7830051C17918D00AF67A4 /* PBXTargetGenerator.swift */,
-				3D9F439F1C160AFA00032F32 /* PBXUniformTypeIdentifiers.swift */,
-				3DCFE5E11C80B92D00D7F31B /* ProgressNotifier.swift */,
-				3DA65B451C68558A0055448E /* XcodeProjectGenerator.swift */,
-				5429EA901F38F56200A78405 /* BazelXcodeProjectPatcher.swift */,
-				5416093B1F5854090016769C /* BazelBuildEvents.swift */,
-				E155E20B1FCE47D9002B16BB /* BazelBuildSettingsFeatures.swift */,
-				54D8453E20CB121D004F6CF2 /* BazelSettingsProvider.swift */,
-				54EC201720D1A8270050AF12 /* TulsiApplicationSupport.swift */,
-			);
-			name = Implementation;
-			sourceTree = "<group>";
-		};
-		3DAC27671C3AD2510040F42C /* Scripts */ = {
-			isa = PBXGroup;
-			children = (
-				E1542A0D206ED51900D3D339 /* bootstrap_lldbinit.py */,
-				5442049B2064156D00EBF343 /* install_genfiles.py */,
-				E135A780205880720082E4D0 /* apfs_clone_copy.py */,
-				54EF32091F3E0804009E9C7F /* bazel_build_events.py */,
-				3D329D0D1C4831EF00DFBD0F /* bazel_build.py */,
-				D33C204E1EC108CC00867450 /* tulsi_logging.py */,
-				D3F78C671F391E9700AE0571 /* bazel_options.py */,
-				3D156AE11C1C8D9C00183439 /* bazel_clean.sh */,
-				E1C018692051B65B000580CC /* clean_symbol_cache.py */,
-				E1C0186C2051B65C000580CC /* symbol_cache_schema.py */,
-				E1C018712051B66C000580CC /* update_symbol_cache.py */,
-				3DFB7C4A1C81F78000376760 /* command_line_splitter.sh */,
-				54A7E04520CC596A00B3AF4C /* bazel_build_settings.py.template */,
-				54A7E04920D04C5A00B3AF4C /* user_build.py */,
-			);
-			path = Scripts;
-			sourceTree = "<group>";
-		};
-		3DB8F6C41CA9E1060045B0CF /* tulsi */ = {
-			isa = PBXGroup;
-			children = (
-				E132B8B51F86FA3400DF7F9A /* tulsi_aspects_paths.bzl */,
-				3DB8F6C01CA9E0FC0045B0CF /* aspect.BUILD */,
-				3DB8F6C11CA9E0FC0045B0CF /* tulsi_aspects.bzl */,
-			);
-			name = tulsi;
-			sourceTree = "<group>";
-		};
-		3DCFE5CE1C80A64600D7F31B /* Bazel */ = {
-			isa = PBXGroup;
-			children = (
-				3DB8F6C41CA9E1060045B0CF /* tulsi */,
-				3DCFE5D21C80A64600D7F31B /* WORKSPACE */,
-			);
-			path = Bazel;
-			sourceTree = "<group>";
-		};
-		3DFAD2691C4FE05900C7D7AF /* Resources */ = {
-			isa = PBXGroup;
-			children = (
-				8B8F559E1BE3ECDC0095AF7F /* Assets.xcassets */,
-				3D8B37EF1C4F100F0090F3AD /* BazelOpenSheetAccessoryView.xib */,
-				3D167E291C5B1FA700DD485C /* Credits.html */,
-				3D3DDD161CCA7BCF00E21FA4 /* ErrorAlertDetailView.xib */,
-				8B8F55A31BE3ECDC0095AF7F /* Info.plist */,
-				3DF313B91C34898500A34C14 /* Localizable.strings */,
-				8B8F55A01BE3ECDC0095AF7F /* Main.storyboard */,
-				3D387BAF1C7500B500544AE0 /* NewGeneratorConfigViewController.xib */,
-				3DC5CE101CFF3BAC00688AD6 /* NewProjectViewController.xib */,
-				8BC3D1031CF3643800D6D10E /* SplashScreenRecentDocumentView.xib */,
-				3D7CED5F1CC171E60073204D /* SplashScreenWindowController.xib */,
-				3D387BB61C75354C00544AE0 /* XcodeProjectGenerationProgressViewController.xib */,
-			);
-			name = Resources;
-			sourceTree = "<group>";
-		};
-		8B8F558E1BE3ECDC0095AF7F = {
-			isa = PBXGroup;
-			children = (
-				E1D770E520523E780026802A /* bazel_cache_reader.xcodeproj */,
-				8B8F55981BE3ECDC0095AF7F /* Products */,
-				8B8F55991BE3ECDC0095AF7F /* Tulsi */,
-				3D9926641C29F0A20094E098 /* TulsiGenerator */,
-				3D9926721C29F0A30094E098 /* TulsiGeneratorTests */,
-				F4469ECD1C5BCA3200BCFAA1 /* XcodeConfig */,
-			);
-			sourceTree = "<group>";
-		};
-		8B8F55981BE3ECDC0095AF7F /* Products */ = {
-			isa = PBXGroup;
-			children = (
-				8B8F55971BE3ECDC0095AF7F /* Tulsi.app */,
-				3D9926631C29F0A20094E098 /* TulsiGenerator.framework */,
-				3D99266C1C29F0A20094E098 /* TulsiGeneratorTests.xctest */,
-			);
-			name = Products;
-			sourceTree = "<group>";
-		};
-		8B8F55991BE3ECDC0095AF7F /* Tulsi */ = {
-			isa = PBXGroup;
-			children = (
-				8B8F559A1BE3ECDC0095AF7F /* AppDelegate.swift */,
-				3DDA83911C7BB1F100CA7BB5 /* BazelSelectionPanel.swift */,
-				3D800DE81C6C24C000F4D08C /* BugReporter.swift */,
-				8B8F55C71BE410090095AF7F /* ConfigEditorBuildTargetSelectorViewController.swift */,
-				8B0F78C71BE5BC7E00357561 /* ConfigEditorSourceFilterViewController.swift */,
-				8B8F559C1BE3ECDC0095AF7F /* ConfigEditorWizardViewController.swift */,
-				3D53323B1D2425E600951579 /* EventLogger.swift */,
-				3DD0DE481C656C15008B0CDF /* FilteredOpenPanel.swift */,
-				AB18C78A05BFF81B82FFE890 /* HeadlessModeError.swift */,
-				AB18CFC29644CD1B3B860056 /* HeadlessTulsiProjectCreator.swift */,
-				3D4E5A411D07123900DAB0B4 /* HeadlessXcodeProjectGenerator.swift */,
-				3D9E11B61C6D4D750026EE68 /* main.swift */,
-				3DB1FC2A1C32DCBC0080198C /* MessageViewController.swift */,
-				3D387BA91C7500A100544AE0 /* NewGeneratorConfigViewController.swift */,
-				3DD0DE421C65404F008B0CDF /* NewProjectViewController.swift */,
-				3DD0EB0D1C40AEC7005C0469 /* OptionsEditorController.swift */,
-				3D084A011C73C902005F5ABA /* OptionsEditorModelProtocol.swift */,
-				3D0C9C171C5A87AF00417963 /* OptionsEditorNode.swift */,
-				3DCF74B51C34699100521F1F /* OptionsEditorViewController.swift */,
-				3DD0EB0F1C40AED8005C0469 /* OptionsTargetSelectorController.swift */,
-				3D084A031C73CEEF005F5ABA /* ProjectEditorConfigManagerViewController.swift */,
-				3D029C7C1C650DD100779E8E /* ProjectEditorPackageManagerViewController.swift */,
-				3DB1FBFB1C31DDCB0080198C /* ProjectEditorSplitViewController.swift */,
-				3D0849FB1C73AE77005F5ABA /* ProjectEditorTabViewController.swift */,
-				3DFAD2691C4FE05900C7D7AF /* Resources */,
-				3D7CED591CC171CD0073204D /* SplashScreenWindowController.swift */,
-				AB18C4E9FB80370FC40B500A /* TulsiCommandlineParser.swift */,
-				3D91B4DB1C78CE6B006ED85C /* TulsiDocumentController.swift */,
-				3D387BB71C761B8800544AE0 /* TulsiError.swift */,
-				3D0849F01C739D75005F5ABA /* TulsiGeneratorConfigDocument.swift */,
-				8B29E2CF1BF9386200680E11 /* TulsiProjectDocument.swift */,
-				3DB1FC1A1C3235E30080198C /* UIMessage.swift */,
-				3D9926921C29F1BC0094E098 /* UIRuleEntry.swift */,
-				3DF313B31C3488BE00A34C14 /* UISelectableOutlineViewNode.swift */,
-				3D7B77421C8F2DD3004786EF /* UISourcePath.swift */,
-				3D8B34C11C4ED5D50090F3AD /* WizardSubviewProtocol.swift */,
-				3D387BB01C75352E00544AE0 /* XcodeProjectGenerationProgressViewController.swift */,
-			);
-			path = Tulsi;
-			sourceTree = "<group>";
-		};
-		E1D770E620523E780026802A /* Products */ = {
-			isa = PBXGroup;
-			children = (
-				E1D770EA20523E790026802A /* bazel_cache_reader */,
-			);
-			name = Products;
-			sourceTree = "<group>";
-		};
-		F4469ECD1C5BCA3200BCFAA1 /* XcodeConfig */ = {
-			isa = PBXGroup;
-			children = (
-				F4469ECE1C5BCA5900BCFAA1 /* TulsiVersion.xcconfig */,
-			);
-			path = XcodeConfig;
-			sourceTree = "<group>";
-		};
-/* End PBXGroup section */
-
-/* Begin PBXHeadersBuildPhase section */
-		3D9926601C29F0A20094E098 /* Headers */ = {
-			isa = PBXHeadersBuildPhase;
-			buildActionMask = 2147483647;
-			files = (
-			);
-			runOnlyForDeploymentPostprocessing = 0;
-		};
-/* End PBXHeadersBuildPhase section */
-
-/* Begin PBXNativeTarget section */
-		3D9926621C29F0A20094E098 /* TulsiGenerator */ = {
-			isa = PBXNativeTarget;
-			buildConfigurationList = 3D99267E1C29F0A30094E098 /* Build configuration list for PBXNativeTarget "TulsiGenerator" */;
-			buildPhases = (
-				3D99265E1C29F0A20094E098 /* Sources */,
-				3D99265F1C29F0A20094E098 /* Frameworks */,
-				3D9926601C29F0A20094E098 /* Headers */,
-				3D9926611C29F0A20094E098 /* Resources */,
-				3DB8F6C71CA9E3440045B0CF /* Copy Tulsi aspect bundle resources */,
-				3DBA77761D6CB3EF00BD5B7C /* Copy Utility resources */,
-			);
-			buildRules = (
-			);
-			dependencies = (
-				E11AFAAE205264C200C97875 /* PBXTargetDependency */,
-			);
-			name = TulsiGenerator;
-			productName = TulsiGenerator;
-			productReference = 3D9926631C29F0A20094E098 /* TulsiGenerator.framework */;
-			productType = "com.apple.product-type.framework";
-		};
-		3D99266B1C29F0A20094E098 /* TulsiGeneratorTests */ = {
-			isa = PBXNativeTarget;
-			buildConfigurationList = 3D9926801C29F0A30094E098 /* Build configuration list for PBXNativeTarget "TulsiGeneratorTests" */;
-			buildPhases = (
-				3D9926681C29F0A20094E098 /* Sources */,
-				3D9926691C29F0A20094E098 /* Frameworks */,
-				3D99266A1C29F0A20094E098 /* Resources */,
-			);
-			buildRules = (
-			);
-			dependencies = (
-				3D99266F1C29F0A30094E098 /* PBXTargetDependency */,
-			);
-			name = TulsiGeneratorTests;
-			productName = TulsiGeneratorTests;
-			productReference = 3D99266C1C29F0A20094E098 /* TulsiGeneratorTests.xctest */;
-			productType = "com.apple.product-type.bundle.unit-test";
-		};
-		8B8F55961BE3ECDC0095AF7F /* Tulsi */ = {
-			isa = PBXNativeTarget;
-			buildConfigurationList = 8B8F55BC1BE3ECDC0095AF7F /* Build configuration list for PBXNativeTarget "Tulsi" */;
-			buildPhases = (
-				8B8F55931BE3ECDC0095AF7F /* Sources */,
-				8B8F55941BE3ECDC0095AF7F /* Frameworks */,
-				8B8F55951BE3ECDC0095AF7F /* Resources */,
-				3D99267F1C29F0A30094E098 /* Embed Frameworks */,
-			);
-			buildRules = (
-			);
-			dependencies = (
-				3D9926771C29F0A30094E098 /* PBXTargetDependency */,
-			);
-			name = Tulsi;
-			productName = Tulsi;
-			productReference = 8B8F55971BE3ECDC0095AF7F /* Tulsi.app */;
-			productType = "com.apple.product-type.application";
-		};
-/* End PBXNativeTarget section */
-
-/* Begin PBXProject section */
-		8B8F558F1BE3ECDC0095AF7F /* Project object */ = {
-			isa = PBXProject;
-			attributes = {
-				LastSwiftUpdateCheck = 0720;
-				LastUpgradeCheck = 0820;
-				ORGANIZATIONNAME = "The Tulsi Authors";
-				TargetAttributes = {
-					3D9926621C29F0A20094E098 = {
-						CreatedOnToolsVersion = 7.2;
-						LastSwiftMigration = 0920;
-					};
-					3D99266B1C29F0A20094E098 = {
-						CreatedOnToolsVersion = 7.2;
-						LastSwiftMigration = 0920;
-					};
-					8B8F55961BE3ECDC0095AF7F = {
-						CreatedOnToolsVersion = 7.1;
-						LastSwiftMigration = 0920;
-					};
-				};
-			};
-			buildConfigurationList = 8B8F55921BE3ECDC0095AF7F /* Build configuration list for PBXProject "Tulsi" */;
-			compatibilityVersion = "Xcode 3.2";
-			developmentRegion = English;
-			hasScannedForEncodings = 0;
-			knownRegions = (
-				en,
-				Base,
-			);
-			mainGroup = 8B8F558E1BE3ECDC0095AF7F;
-			productRefGroup = 8B8F55981BE3ECDC0095AF7F /* Products */;
-			projectDirPath = "";
-			projectReferences = (
-				{
-					ProductGroup = E1D770E620523E780026802A /* Products */;
-					ProjectRef = E1D770E520523E780026802A /* bazel_cache_reader.xcodeproj */;
-				},
-			);
-			projectRoot = "";
-			targets = (
-				8B8F55961BE3ECDC0095AF7F /* Tulsi */,
-				3D9926621C29F0A20094E098 /* TulsiGenerator */,
-				3D99266B1C29F0A20094E098 /* TulsiGeneratorTests */,
-			);
-		};
-/* End PBXProject section */
-
-/* Begin PBXReferenceProxy section */
-		E1D770EA20523E790026802A /* bazel_cache_reader */ = {
-			isa = PBXReferenceProxy;
-			fileType = "compiled.mach-o.executable";
-			path = bazel_cache_reader;
-			remoteRef = E1D770E920523E790026802A /* PBXContainerItemProxy */;
-			sourceTree = BUILT_PRODUCTS_DIR;
-		};
-/* End PBXReferenceProxy section */
-
-/* Begin PBXResourcesBuildPhase section */
-		3D9926611C29F0A20094E098 /* Resources */ = {
-			isa = PBXResourcesBuildPhase;
-			buildActionMask = 2147483647;
-			files = (
-				2D7A8EB51F67220400392DA3 /* macOSXCTRunner.entitlements in Resources */,
-				E1C018702051B65D000580CC /* symbol_cache_schema.py in Resources */,
-				E1C0186D2051B65D000580CC /* clean_symbol_cache.py in Resources */,
-				2D9DB34A1E5DECA40021EAF4 /* iOSXCTRunner.entitlements in Resources */,
-				3D329D0E1C4831EF00DFBD0F /* bazel_build.py in Resources */,
-				D33C204F1EC108CC00867450 /* tulsi_logging.py in Resources */,
-				54EF320A1F3E0804009E9C7F /* bazel_build_events.py in Resources */,
-				D3F78C681F391E9700AE0571 /* bazel_options.py in Resources */,
-				3D9926911C29F1410094E098 /* bazel_clean.sh in Resources */,
-				3DFB7C4B1C81F78000376760 /* command_line_splitter.sh in Resources */,
-				3DBEFACD1C2A1F7200119556 /* Localizable.strings in Resources */,
-				3D9485411C3193F00026CE41 /* Options.strings in Resources */,
-				3D5A1B581D1B3485006FC2A6 /* StubInfoPlist.plist in Resources */,
-				E135A781205880720082E4D0 /* apfs_clone_copy.py in Resources */,
-				54A7E04620CC596A00B3AF4C /* bazel_build_settings.py.template in Resources */,
-				3DAFE8AE1DF1F23D0055AF56 /* StubIOSAppExtensionInfoPlist.plist in Resources */,
-				3DCD08111D779576006ABE5B /* StubWatchOS2AppExtensionInfoPlist.plist in Resources */,
-				54A7E04A20D04C5A00B3AF4C /* user_build.py in Resources */,
-				3D903A7A1D775AE800B034E9 /* StubWatchOS2InfoPlist.plist in Resources */,
-				5442049C2064156D00EBF343 /* install_genfiles.py in Resources */,
-				E1C018722051B66C000580CC /* update_symbol_cache.py in Resources */,
-				3DCFE5D51C80A64600D7F31B /* WORKSPACE in Resources */,
-				E1542A0E206ED51900D3D339 /* bootstrap_lldbinit.py in Resources */,
-			);
-			runOnlyForDeploymentPostprocessing = 0;
-		};
-		3D99266A1C29F0A20094E098 /* Resources */ = {
-			isa = PBXResourcesBuildPhase;
-			buildActionMask = 2147483647;
-			files = (
-			);
-			runOnlyForDeploymentPostprocessing = 0;
-		};
-		8B8F55951BE3ECDC0095AF7F /* Resources */ = {
-			isa = PBXResourcesBuildPhase;
-			buildActionMask = 2147483647;
-			files = (
-				8B8F559F1BE3ECDC0095AF7F /* Assets.xcassets in Resources */,
-				3DF313B71C34898500A34C14 /* Localizable.strings in Resources */,
-				3D8B37ED1C4F100F0090F3AD /* BazelOpenSheetAccessoryView.xib in Resources */,
-				3D387BB41C75354C00544AE0 /* XcodeProjectGenerationProgressViewController.xib in Resources */,
-				3D7CED5D1CC171E60073204D /* SplashScreenWindowController.xib in Resources */,
-				3D387BAD1C7500B500544AE0 /* NewGeneratorConfigViewController.xib in Resources */,
-				3D3DDD141CCA7BCF00E21FA4 /* ErrorAlertDetailView.xib in Resources */,
-				8BC3D1051CF3643800D6D10E /* SplashScreenRecentDocumentView.xib in Resources */,
-				8B8F55A21BE3ECDC0095AF7F /* Main.storyboard in Resources */,
-				3DC5CE0E1CFF3BAC00688AD6 /* NewProjectViewController.xib in Resources */,
-				3D167E271C5B1FA700DD485C /* Credits.html in Resources */,
-			);
-			runOnlyForDeploymentPostprocessing = 0;
-		};
-/* End PBXResourcesBuildPhase section */
-
-/* Begin PBXShellScriptBuildPhase section */
-		3DB8F6C71CA9E3440045B0CF /* Copy Tulsi aspect bundle resources */ = {
-			isa = PBXShellScriptBuildPhase;
-			buildActionMask = 2147483647;
-			files = (
-			);
-			inputPaths = (
-				"$(SRCROOT)/TulsiGenerator/Bazel/tulsi/aspect.BUILD",
-				"$(SRCROOT)/TulsiGenerator/Bazel/tulsi/tulsi_aspects.bzl",
-				"$(SRCROOT)/TulsiGenerator/Bazel/tulsi/tulsi_aspects_paths.bzl",
-			);
-			name = "Copy Tulsi aspect bundle resources";
-			outputPaths = (
-				"${BUILT_PRODUCTS_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/tulsi/BUILD",
-				"${BUILT_PRODUCTS_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/tulsi/tulsi_aspects.bzl",
-			);
-			runOnlyForDeploymentPostprocessing = 0;
-			shellPath = /bin/bash;
-			shellScript = "set -eu\nreadonly target_dir=\"${BUILT_PRODUCTS_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/tulsi\"\nmkdir -p \"${target_dir}\"\ncp -f \"${SRCROOT}/TulsiGenerator/Bazel/tulsi/tulsi_aspects.bzl\" \"${target_dir}\"\ncp -f \"${SRCROOT}/TulsiGenerator/Bazel/tulsi/tulsi_aspects_paths.bzl\" \"${target_dir}\"\ncp -f \"${SRCROOT}/TulsiGenerator/Bazel/tulsi/aspect.BUILD\" \"${target_dir}/BUILD\"\n";
-			showEnvVarsInLog = 0;
-		};
-/* End PBXShellScriptBuildPhase section */
-
-/* Begin PBXSourcesBuildPhase section */
-		3D99265E1C29F0A20094E098 /* Sources */ = {
-			isa = PBXSourcesBuildPhase;
-			buildActionMask = 2147483647;
-			files = (
-				3D99268B1C29F1100094E098 /* PBXObjects.swift in Sources */,
-				3D123A531C659688002BEBA2 /* TulsiProject.swift in Sources */,
-				E155E20C1FCE47DA002B16BB /* BazelBuildSettingsFeatures.swift in Sources */,
-				3D99268A1C29F10B0094E098 /* GIDGenerator.swift in Sources */,
-				3D7B5EB11C8B7415004786EF /* BazelWorkspaceInfoExtractor.swift in Sources */,
-				3DEC9EDD1CF3421600769251 /* TulsiProcessRunner.swift in Sources */,
-				3DBCB5201CCA94E7000801A5 /* BazelErrorExtractor.swift in Sources */,
-				3D029B581C6421B400779E8E /* ProcessRunner.swift in Sources */,
-				5429EA8B1F38C4DB00A78405 /* BazelPBXReferencePatcher.swift in Sources */,
-				3D99268F1C29F1100094E098 /* PBXProjSerializer.swift in Sources */,
-				2DD7C6C41F6887DB00163B92 /* DeploymentTarget.swift in Sources */,
-				3D99268C1C29F1100094E098 /* PBXUniformTypeIdentifiers.swift in Sources */,
-				3D1F2E261CF760420008CE83 /* BazelLocator.swift in Sources */,
-				3DAEE45E1C85128600BA1C67 /* BazelWorkspacePathInfoFetcher.swift in Sources */,
-				54EC201820D1A8270050AF12 /* TulsiApplicationSupport.swift in Sources */,
-				3DCFE5DE1C80B70700D7F31B /* BazelAspectInfoExtractor.swift in Sources */,
-				54EA05C81F62E3A700472AB6 /* RuleEntryMap.swift in Sources */,
-				3D51A8001C52C10A00FE90A6 /* TulsiOption.swift in Sources */,
-				3DCFE5E21C80B92D00D7F31B /* ProgressNotifier.swift in Sources */,
-				3DA65B281C67E9720055448E /* TulsiXcodeProjectGenerator.swift in Sources */,
-				3D250B7F1C5DCE120091C7A5 /* XcodeScheme.swift in Sources */,
-				3DFB7C4D1C835EC000376760 /* CommandLineSplitter.swift in Sources */,
-				3D94853E1C31924B0026CE41 /* TulsiOptionSet.swift in Sources */,
-				3D9926871C29F10B0094E098 /* BazelQueryInfoExtractor.swift in Sources */,
-				3D8B34BA1C4EB37C0090F3AD /* TulsiNotifications.swift in Sources */,
-				E1C0EBDB1F70982300FA2054 /* XcodeGeneratorInvalidPaths.swift in Sources */,
-				3DA65B5E1C692FA20055448E /* NSURLExtensions.swift in Sources */,
-				3D9926951C29F1E80094E098 /* RuleEntry.swift in Sources */,
-				54BDD0181F4E0FD000AAC99A /* TulsiParameter.swift in Sources */,
-				3DA65B441C6854EF0055448E /* LocalizedMessageLogger.swift in Sources */,
-				5416093C1F5854090016769C /* BazelBuildEvents.swift in Sources */,
-				3D9926891C29F10B0094E098 /* BuildLabel.swift in Sources */,
-				3D9926971C29FB180094E098 /* TulsiProjectInfoExtractor.swift in Sources */,
-				54D8453F20CB121D004F6CF2 /* BazelSettingsProvider.swift in Sources */,
-				54CA33F320C735C200E32515 /* BazelBuildSettings.swift in Sources */,
-				5429EA911F38F56200A78405 /* BazelXcodeProjectPatcher.swift in Sources */,
-				546AE0AF1F75BE1D00FE9562 /* StringExtensions.swift in Sources */,
-				3DA65B461C68558A0055448E /* XcodeProjectGenerator.swift in Sources */,
-				3D9E1A511C6F87670026EE68 /* NSThreadExtensions.swift in Sources */,
-				3D99268E1C29F1100094E098 /* BazelWorkspaceInfoExtractorProtocol.swift in Sources */,
-				3D9926881C29F10B0094E098 /* PBXTargetGenerator.swift in Sources */,
-				3DA65B1B1C67B9DE0055448E /* TulsiGeneratorConfig.swift in Sources */,
-				3D47D6BA1D13190E005B5BF3 /* NSJSONSerializationExtensions.swift in Sources */,
-				E19C1C571F5886A000D6E38A /* QueuedLogging.swift in Sources */,
-			);
-			runOnlyForDeploymentPostprocessing = 0;
-		};
-		3D9926681C29F0A20094E098 /* Sources */ = {
-			isa = PBXSourcesBuildPhase;
-			buildActionMask = 2147483647;
-			files = (
-				3DBEFAED1C2A3E5900119556 /* MockLocalizedMessageLogger.swift in Sources */,
-				546AE0B11F75C0C800FE9562 /* ShellEscapingTests.swift in Sources */,
-				3D51A80C1C52CB6C00FE90A6 /* TulsiOptionSetTests.swift in Sources */,
-				3DA65B481C685BF30055448E /* MockWorkspaceInfoExtractor.swift in Sources */,
-				3D9926811C29F0CC0094E098 /* PBXTargetGeneratorTests.swift in Sources */,
-				3D9926821C29F0CC0094E098 /* BuildLabelTests.swift in Sources */,
-				3D9926841C29F0CC0094E098 /* PBXObjectsTests.swift in Sources */,
-				54EDD24520D9BC27001A1B35 /* BuildSettingsTests.swift in Sources */,
-				3DA65B621C693B570055448E /* TulsiGeneratorConfigTests.swift in Sources */,
-				3DA65B3E1C6849140055448E /* XcodeProjectGeneratorTests.swift in Sources */,
-				54D17A5220D94C4B0028D377 /* PythonableTests.swift in Sources */,
-				3DFB7C4F1C835EFB00376760 /* CommandLineSplitterTests.swift in Sources */,
-				3DA65B661C693B7E0055448E /* TulsiProjectTests.swift in Sources */,
-				3DA65B601C6930210055448E /* NSURLExtensionsTests.swift in Sources */,
-				3D9926851C29F0CC0094E098 /* PBXProjSerializerTests.swift in Sources */,
-			);
-			runOnlyForDeploymentPostprocessing = 0;
-		};
-		8B8F55931BE3ECDC0095AF7F /* Sources */ = {
-			isa = PBXSourcesBuildPhase;
-			buildActionMask = 2147483647;
-			files = (
-				3DB1FC2B1C32DCBC0080198C /* MessageViewController.swift in Sources */,
-				3D4E5A421D07123900DAB0B4 /* HeadlessXcodeProjectGenerator.swift in Sources */,
-				2DD7C6C21F6886D400163B92 /* TulsiError.swift in Sources */,
-				3D0849F11C739D75005F5ABA /* TulsiGeneratorConfigDocument.swift in Sources */,
-				3DDA83921C7BB1F100CA7BB5 /* BazelSelectionPanel.swift in Sources */,
-				3D7CED5B1CC171CD0073204D /* SplashScreenWindowController.swift in Sources */,
-				3DF313B41C3488BE00A34C14 /* UISelectableOutlineViewNode.swift in Sources */,
-				3DD0DE491C656C15008B0CDF /* FilteredOpenPanel.swift in Sources */,
-				3DD0DE441C65404F008B0CDF /* NewProjectViewController.swift in Sources */,
-				8B29E2D01BF9386200680E11 /* TulsiProjectDocument.swift in Sources */,
-				3D0C9C181C5A87AF00417963 /* OptionsEditorNode.swift in Sources */,
-				3D7B77431C8F2DD3004786EF /* UISourcePath.swift in Sources */,
-				3D800DE91C6C24C000F4D08C /* BugReporter.swift in Sources */,
-				3D387BAB1C7500A100544AE0 /* NewGeneratorConfigViewController.swift in Sources */,
-				3D91B4DC1C78CE6B006ED85C /* TulsiDocumentController.swift in Sources */,
-				3DCF74B61C34699100521F1F /* OptionsEditorViewController.swift in Sources */,
-				3D084A021C73C902005F5ABA /* OptionsEditorModelProtocol.swift in Sources */,
-				3D387BB21C75352E00544AE0 /* XcodeProjectGenerationProgressViewController.swift in Sources */,
-				3D9926931C29F1BC0094E098 /* UIRuleEntry.swift in Sources */,
-				3DD0EB101C40AED8005C0469 /* OptionsTargetSelectorController.swift in Sources */,
-				3D9E11B71C6D4D750026EE68 /* main.swift in Sources */,
-				3DB1FBFC1C31DDCB0080198C /* ProjectEditorSplitViewController.swift in Sources */,
-				3D53323F1D243BE400951579 /* EventLogger.swift in Sources */,
-				3DB1FC1B1C3235E30080198C /* UIMessage.swift in Sources */,
-				8B8F559D1BE3ECDC0095AF7F /* ConfigEditorWizardViewController.swift in Sources */,
-				8B8F559B1BE3ECDC0095AF7F /* AppDelegate.swift in Sources */,
-				3D8B34C21C4ED5D50090F3AD /* WizardSubviewProtocol.swift in Sources */,
-				3D084A041C73CEEF005F5ABA /* ProjectEditorConfigManagerViewController.swift in Sources */,
-				3D0849FC1C73AE77005F5ABA /* ProjectEditorTabViewController.swift in Sources */,
-				8B8F55C81BE4100A0095AF7F /* ConfigEditorBuildTargetSelectorViewController.swift in Sources */,
-				3D029C7E1C650DD100779E8E /* ProjectEditorPackageManagerViewController.swift in Sources */,
-				8B0F78C81BE5BC7E00357561 /* ConfigEditorSourceFilterViewController.swift in Sources */,
-				3DD0EB0E1C40AEC7005C0469 /* OptionsEditorController.swift in Sources */,
-				AB18CB663B4A10F9BA45D02F /* TulsiCommandlineParser.swift in Sources */,
-				AB18CC4A7B1A308E23A1CE6F /* HeadlessTulsiProjectCreator.swift in Sources */,
-				AB18C7AE39198BE26CB112C0 /* HeadlessModeError.swift in Sources */,
-			);
-			runOnlyForDeploymentPostprocessing = 0;
-		};
-/* End PBXSourcesBuildPhase section */
-
-/* Begin PBXTargetDependency section */
-		3D99266F1C29F0A30094E098 /* PBXTargetDependency */ = {
-			isa = PBXTargetDependency;
-			target = 3D9926621C29F0A20094E098 /* TulsiGenerator */;
-			targetProxy = 3D99266E1C29F0A30094E098 /* PBXContainerItemProxy */;
-		};
-		3D9926771C29F0A30094E098 /* PBXTargetDependency */ = {
-			isa = PBXTargetDependency;
-			target = 3D9926621C29F0A20094E098 /* TulsiGenerator */;
-			targetProxy = 3D9926761C29F0A30094E098 /* PBXContainerItemProxy */;
-		};
-		E11AFAAE205264C200C97875 /* PBXTargetDependency */ = {
-			isa = PBXTargetDependency;
-			name = bazel_cache_reader;
-			targetProxy = E11AFAAD205264C200C97875 /* PBXContainerItemProxy */;
-		};
-/* End PBXTargetDependency section */
-
-/* Begin PBXVariantGroup section */
-		3D167E291C5B1FA700DD485C /* Credits.html */ = {
-			isa = PBXVariantGroup;
-			children = (
-				8BBC041E2092312000A4826E /* en */,
-			);
-			name = Credits.html;
-			sourceTree = "<group>";
-		};
-		3D387BAF1C7500B500544AE0 /* NewGeneratorConfigViewController.xib */ = {
-			isa = PBXVariantGroup;
-			children = (
-				3D387BAE1C7500B500544AE0 /* Base */,
-			);
-			name = NewGeneratorConfigViewController.xib;
-			sourceTree = "<group>";
-		};
-		3D387BB61C75354C00544AE0 /* XcodeProjectGenerationProgressViewController.xib */ = {
-			isa = PBXVariantGroup;
-			children = (
-				3D387BB51C75354C00544AE0 /* Base */,
-			);
-			name = XcodeProjectGenerationProgressViewController.xib;
-			sourceTree = "<group>";
-		};
-		3D3DDD161CCA7BCF00E21FA4 /* ErrorAlertDetailView.xib */ = {
-			isa = PBXVariantGroup;
-			children = (
-				3D3DDD151CCA7BCF00E21FA4 /* Base */,
-			);
-			name = ErrorAlertDetailView.xib;
-			sourceTree = "<group>";
-		};
-		3D7CED5F1CC171E60073204D /* SplashScreenWindowController.xib */ = {
-			isa = PBXVariantGroup;
-			children = (
-				3D7CED5E1CC171E60073204D /* Base */,
-			);
-			name = SplashScreenWindowController.xib;
-			sourceTree = "<group>";
-		};
-		3D8B37EF1C4F100F0090F3AD /* BazelOpenSheetAccessoryView.xib */ = {
-			isa = PBXVariantGroup;
-			children = (
-				3D8B37EE1C4F100F0090F3AD /* Base */,
-			);
-			name = BazelOpenSheetAccessoryView.xib;
-			sourceTree = "<group>";
-		};
-		3D9485431C3193F00026CE41 /* Options.strings */ = {
-			isa = PBXVariantGroup;
-			children = (
-				8BBC0424209235F500A4826E /* en */,
-			);
-			name = Options.strings;
-			sourceTree = "<group>";
-		};
-		3DBEFACF1C2A1F7200119556 /* Localizable.strings */ = {
-			isa = PBXVariantGroup;
-			children = (
-				8BBC0423209235EC00A4826E /* en */,
-			);
-			name = Localizable.strings;
-			sourceTree = "<group>";
-		};
-		3DC5CE101CFF3BAC00688AD6 /* NewProjectViewController.xib */ = {
-			isa = PBXVariantGroup;
-			children = (
-				3DC5CE0F1CFF3BAC00688AD6 /* Base */,
-			);
-			name = NewProjectViewController.xib;
-			sourceTree = "<group>";
-		};
-		3DF313B91C34898500A34C14 /* Localizable.strings */ = {
-			isa = PBXVariantGroup;
-			children = (
-				8BBC041D2092311000A4826E /* en */,
-			);
-			name = Localizable.strings;
-			sourceTree = "<group>";
-		};
-		8B8F55A01BE3ECDC0095AF7F /* Main.storyboard */ = {
-			isa = PBXVariantGroup;
-			children = (
-				8B8F55A11BE3ECDC0095AF7F /* Base */,
-			);
-			name = Main.storyboard;
-			sourceTree = "<group>";
-		};
-		8BC3D1031CF3643800D6D10E /* SplashScreenRecentDocumentView.xib */ = {
-			isa = PBXVariantGroup;
-			children = (
-				8BC3D1041CF3643800D6D10E /* Base */,
-			);
-			name = SplashScreenRecentDocumentView.xib;
-			path = ..;
-			sourceTree = "<group>";
-		};
-/* End PBXVariantGroup section */
-
-/* Begin XCBuildConfiguration section */
-		3D99267A1C29F0A30094E098 /* Debug */ = {
-			isa = XCBuildConfiguration;
-			buildSettings = {
-				DEFINES_MODULE = YES;
-				DYLIB_COMPATIBILITY_VERSION = 1;
-				DYLIB_CURRENT_VERSION = 1;
-				DYLIB_INSTALL_NAME_BASE = "@rpath";
-				FRAMEWORK_VERSION = A;
-				INFOPLIST_FILE = TulsiGenerator/Info.plist;
-				LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/../Frameworks @loader_path/Frameworks";
-				PRODUCT_BUNDLE_IDENTIFIER = "com.google.devinfra.${PRODUCT_NAME}";
-				PRODUCT_NAME = "$(TARGET_NAME)";
-				SKIP_INSTALL = YES;
-				SWIFT_VERSION = 4.0;
-				VERSIONING_SYSTEM = "";
-			};
-			name = Debug;
-		};
-		3D99267B1C29F0A30094E098 /* Release */ = {
-			isa = XCBuildConfiguration;
-			buildSettings = {
-				DEFINES_MODULE = YES;
-				DYLIB_COMPATIBILITY_VERSION = 1;
-				DYLIB_CURRENT_VERSION = 1;
-				DYLIB_INSTALL_NAME_BASE = "@rpath";
-				FRAMEWORK_VERSION = A;
-				INFOPLIST_FILE = TulsiGenerator/Info.plist;
-				LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/../Frameworks @loader_path/Frameworks";
-				PRODUCT_BUNDLE_IDENTIFIER = "com.google.devinfra.${PRODUCT_NAME}";
-				PRODUCT_NAME = "$(TARGET_NAME)";
-				SKIP_INSTALL = YES;
-				SWIFT_VERSION = 4.0;
-				VERSIONING_SYSTEM = "";
-			};
-			name = Release;
-		};
-		3D99267C1C29F0A30094E098 /* Debug */ = {
-			isa = XCBuildConfiguration;
-			buildSettings = {
-				GCC_OPTIMIZATION_LEVEL = 0;
-				INFOPLIST_FILE = TulsiGeneratorTests/Info.plist;
-				LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/../Frameworks @loader_path/../Frameworks";
-				PRODUCT_BUNDLE_IDENTIFIER = "com.google.devinfra.${PRODUCT_NAME}";
-				PRODUCT_NAME = "$(TARGET_NAME)";
-				SWIFT_VERSION = 4.0;
-			};
-			name = Debug;
-		};
-		3D99267D1C29F0A30094E098 /* Release */ = {
-			isa = XCBuildConfiguration;
-			buildSettings = {
-				GCC_OPTIMIZATION_LEVEL = 0;
-				INFOPLIST_FILE = TulsiGeneratorTests/Info.plist;
-				LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/../Frameworks @loader_path/../Frameworks";
-				PRODUCT_BUNDLE_IDENTIFIER = "com.google.devinfra.${PRODUCT_NAME}";
-				PRODUCT_NAME = "$(TARGET_NAME)";
-				SWIFT_VERSION = 4.0;
-			};
-			name = Release;
-		};
-		8B8F55BA1BE3ECDC0095AF7F /* Debug */ = {
-			isa = XCBuildConfiguration;
-			baseConfigurationReference = F4469ECE1C5BCA5900BCFAA1 /* TulsiVersion.xcconfig */;
-			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_ASSIGN_ENUM = YES;
-				CLANG_WARN_BOOL_CONVERSION = YES;
-				CLANG_WARN_CONSTANT_CONVERSION = YES;
-				CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES;
-				CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
-				CLANG_WARN_DOCUMENTATION_COMMENTS = YES;
-				CLANG_WARN_EMPTY_BODY = YES;
-				CLANG_WARN_ENUM_CONVERSION = YES;
-				CLANG_WARN_INFINITE_RECURSION = YES;
-				CLANG_WARN_INT_CONVERSION = YES;
-				CLANG_WARN_NULLABLE_TO_NONNULL_CONVERSION = YES;
-				CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES;
-				CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
-				CLANG_WARN_SUSPICIOUS_IMPLICIT_CONVERSION = YES;
-				CLANG_WARN_SUSPICIOUS_MOVE = YES;
-				CLANG_WARN_UNREACHABLE_CODE = YES;
-				CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
-				COMBINE_HIDPI_IMAGES = YES;
-				COPY_PHASE_STRIP = NO;
-				DEBUG_INFORMATION_FORMAT = dwarf;
-				ENABLE_STRICT_OBJC_MSGSEND = YES;
-				ENABLE_TESTABILITY = YES;
-				GCC_C_LANGUAGE_STANDARD = gnu99;
-				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_MISSING_NEWLINE = YES;
-				GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
-				GCC_WARN_HIDDEN_VIRTUAL_FUNCTIONS = YES;
-				GCC_WARN_NON_VIRTUAL_DESTRUCTOR = YES;
-				GCC_WARN_SHADOW = YES;
-				GCC_WARN_UNDECLARED_SELECTOR = YES;
-				GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
-				GCC_WARN_UNUSED_FUNCTION = YES;
-				GCC_WARN_UNUSED_LABEL = YES;
-				GCC_WARN_UNUSED_VARIABLE = YES;
-				MACOSX_DEPLOYMENT_TARGET = 10.12;
-				MTL_ENABLE_DEBUG_INFO = YES;
-				ONLY_ACTIVE_ARCH = YES;
-				OTHER_SWIFT_FLAGS = "-DDEBUG";
-				SDKROOT = macosx;
-				SWIFT_OPTIMIZATION_LEVEL = "-Onone";
-				SWIFT_VERSION = 3.0;
-				USE_HEADERMAP = NO;
-			};
-			name = Debug;
-		};
-		8B8F55BB1BE3ECDC0095AF7F /* Release */ = {
-			isa = XCBuildConfiguration;
-			baseConfigurationReference = F4469ECE1C5BCA5900BCFAA1 /* TulsiVersion.xcconfig */;
-			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_ASSIGN_ENUM = YES;
-				CLANG_WARN_BOOL_CONVERSION = YES;
-				CLANG_WARN_CONSTANT_CONVERSION = YES;
-				CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES;
-				CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
-				CLANG_WARN_DOCUMENTATION_COMMENTS = YES;
-				CLANG_WARN_EMPTY_BODY = YES;
-				CLANG_WARN_ENUM_CONVERSION = YES;
-				CLANG_WARN_INFINITE_RECURSION = YES;
-				CLANG_WARN_INT_CONVERSION = YES;
-				CLANG_WARN_NULLABLE_TO_NONNULL_CONVERSION = YES;
-				CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES;
-				CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
-				CLANG_WARN_SUSPICIOUS_IMPLICIT_CONVERSION = YES;
-				CLANG_WARN_SUSPICIOUS_MOVE = YES;
-				CLANG_WARN_UNREACHABLE_CODE = YES;
-				CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
-				COMBINE_HIDPI_IMAGES = 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_WARN_64_TO_32_BIT_CONVERSION = YES;
-				GCC_WARN_ABOUT_MISSING_NEWLINE = YES;
-				GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
-				GCC_WARN_HIDDEN_VIRTUAL_FUNCTIONS = YES;
-				GCC_WARN_NON_VIRTUAL_DESTRUCTOR = YES;
-				GCC_WARN_SHADOW = YES;
-				GCC_WARN_UNDECLARED_SELECTOR = YES;
-				GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
-				GCC_WARN_UNUSED_FUNCTION = YES;
-				GCC_WARN_UNUSED_LABEL = YES;
-				GCC_WARN_UNUSED_VARIABLE = YES;
-				MACOSX_DEPLOYMENT_TARGET = 10.12;
-				MTL_ENABLE_DEBUG_INFO = NO;
-				SDKROOT = macosx;
-				SWIFT_OPTIMIZATION_LEVEL = "-Owholemodule";
-				SWIFT_VERSION = 3.0;
-				USE_HEADERMAP = NO;
-			};
-			name = Release;
-		};
-		8B8F55BD1BE3ECDC0095AF7F /* Debug */ = {
-			isa = XCBuildConfiguration;
-			buildSettings = {
-				ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES;
-				ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
-				INFOPLIST_FILE = Tulsi/Info.plist;
-				LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/../Frameworks";
-				PRODUCT_BUNDLE_IDENTIFIER = "com.google.${PRODUCT_NAME}";
-				PRODUCT_NAME = "$(TARGET_NAME)";
-				SWIFT_VERSION = 4.0;
-			};
-			name = Debug;
-		};
-		8B8F55BE1BE3ECDC0095AF7F /* Release */ = {
-			isa = XCBuildConfiguration;
-			buildSettings = {
-				ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES;
-				ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
-				INFOPLIST_FILE = Tulsi/Info.plist;
-				LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/../Frameworks";
-				PRODUCT_BUNDLE_IDENTIFIER = "com.google.${PRODUCT_NAME}";
-				PRODUCT_NAME = "$(TARGET_NAME)";
-				SWIFT_VERSION = 4.0;
-			};
-			name = Release;
-		};
-/* End XCBuildConfiguration section */
-
-/* Begin XCConfigurationList section */
-		3D99267E1C29F0A30094E098 /* Build configuration list for PBXNativeTarget "TulsiGenerator" */ = {
-			isa = XCConfigurationList;
-			buildConfigurations = (
-				3D99267A1C29F0A30094E098 /* Debug */,
-				3D99267B1C29F0A30094E098 /* Release */,
-			);
-			defaultConfigurationIsVisible = 0;
-			defaultConfigurationName = Release;
-		};
-		3D9926801C29F0A30094E098 /* Build configuration list for PBXNativeTarget "TulsiGeneratorTests" */ = {
-			isa = XCConfigurationList;
-			buildConfigurations = (
-				3D99267C1C29F0A30094E098 /* Debug */,
-				3D99267D1C29F0A30094E098 /* Release */,
-			);
-			defaultConfigurationIsVisible = 0;
-			defaultConfigurationName = Release;
-		};
-		8B8F55921BE3ECDC0095AF7F /* Build configuration list for PBXProject "Tulsi" */ = {
-			isa = XCConfigurationList;
-			buildConfigurations = (
-				8B8F55BA1BE3ECDC0095AF7F /* Debug */,
-				8B8F55BB1BE3ECDC0095AF7F /* Release */,
-			);
-			defaultConfigurationIsVisible = 0;
-			defaultConfigurationName = Release;
-		};
-		8B8F55BC1BE3ECDC0095AF7F /* Build configuration list for PBXNativeTarget "Tulsi" */ = {
-			isa = XCConfigurationList;
-			buildConfigurations = (
-				8B8F55BD1BE3ECDC0095AF7F /* Debug */,
-				8B8F55BE1BE3ECDC0095AF7F /* Release */,
-			);
-			defaultConfigurationIsVisible = 0;
-			defaultConfigurationName = Release;
-		};
-/* End XCConfigurationList section */
-	};
-	rootObject = 8B8F558F1BE3ECDC0095AF7F /* Project object */;
-}
diff --git a/src/Tulsi.xcodeproj/project.xcworkspace/contents.xcworkspacedata b/src/Tulsi.xcodeproj/project.xcworkspace/contents.xcworkspacedata
deleted file mode 100644
index 919434a..0000000
--- a/src/Tulsi.xcodeproj/project.xcworkspace/contents.xcworkspacedata
+++ /dev/null
@@ -1,7 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<Workspace
-   version = "1.0">
-   <FileRef
-      location = "self:">
-   </FileRef>
-</Workspace>
diff --git a/src/Tulsi.xcodeproj/project.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings b/src/Tulsi.xcodeproj/project.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings
deleted file mode 100644
index 08de0be..0000000
--- a/src/Tulsi.xcodeproj/project.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings
+++ /dev/null
@@ -1,8 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
-<plist version="1.0">
-<dict>
-	<key>IDEWorkspaceSharedSettings_AutocreateContextsIfNeeded</key>
-	<false/>
-</dict>
-</plist>
diff --git a/src/Tulsi.xcodeproj/xcshareddata/xcschemes/TulsiApp.xcscheme b/src/Tulsi.xcodeproj/xcshareddata/xcschemes/TulsiApp.xcscheme
deleted file mode 100644
index 78bc373..0000000
--- a/src/Tulsi.xcodeproj/xcshareddata/xcschemes/TulsiApp.xcscheme
+++ /dev/null
@@ -1,103 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<Scheme
-   LastUpgradeVersion = "0820"
-   version = "1.3">
-   <BuildAction
-      parallelizeBuildables = "YES"
-      buildImplicitDependencies = "NO">
-      <BuildActionEntries>
-         <BuildActionEntry
-            buildForTesting = "YES"
-            buildForRunning = "YES"
-            buildForProfiling = "YES"
-            buildForArchiving = "YES"
-            buildForAnalyzing = "YES">
-            <BuildableReference
-               BuildableIdentifier = "primary"
-               BlueprintIdentifier = "8B8F55961BE3ECDC0095AF7F"
-               BuildableName = "Tulsi.app"
-               BlueprintName = "Tulsi"
-               ReferencedContainer = "container:Tulsi.xcodeproj">
-            </BuildableReference>
-         </BuildActionEntry>
-      </BuildActionEntries>
-   </BuildAction>
-   <TestAction
-      buildConfiguration = "Debug"
-      selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
-      selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
-      language = ""
-      shouldUseLaunchSchemeArgsEnv = "YES"
-      codeCoverageEnabled = "YES">
-      <Testables>
-         <TestableReference
-            skipped = "NO">
-            <BuildableReference
-               BuildableIdentifier = "primary"
-               BlueprintIdentifier = "3D99266B1C29F0A20094E098"
-               BuildableName = "TulsiGeneratorTests.xctest"
-               BlueprintName = "TulsiGeneratorTests"
-               ReferencedContainer = "container:Tulsi.xcodeproj">
-            </BuildableReference>
-         </TestableReference>
-      </Testables>
-      <MacroExpansion>
-         <BuildableReference
-            BuildableIdentifier = "primary"
-            BlueprintIdentifier = "8B8F55961BE3ECDC0095AF7F"
-            BuildableName = "Tulsi.app"
-            BlueprintName = "Tulsi"
-            ReferencedContainer = "container:Tulsi.xcodeproj">
-         </BuildableReference>
-      </MacroExpansion>
-      <AdditionalOptions>
-      </AdditionalOptions>
-   </TestAction>
-   <LaunchAction
-      buildConfiguration = "Debug"
-      selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
-      selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
-      language = ""
-      launchStyle = "0"
-      useCustomWorkingDirectory = "NO"
-      ignoresPersistentStateOnLaunch = "NO"
-      debugDocumentVersioning = "YES"
-      debugServiceExtension = "internal"
-      allowLocationSimulation = "YES">
-      <BuildableProductRunnable
-         runnableDebuggingMode = "0">
-         <BuildableReference
-            BuildableIdentifier = "primary"
-            BlueprintIdentifier = "8B8F55961BE3ECDC0095AF7F"
-            BuildableName = "Tulsi.app"
-            BlueprintName = "Tulsi"
-            ReferencedContainer = "container:Tulsi.xcodeproj">
-         </BuildableReference>
-      </BuildableProductRunnable>
-      <AdditionalOptions>
-      </AdditionalOptions>
-   </LaunchAction>
-   <ProfileAction
-      buildConfiguration = "Release"
-      shouldUseLaunchSchemeArgsEnv = "YES"
-      savedToolIdentifier = ""
-      useCustomWorkingDirectory = "NO"
-      debugDocumentVersioning = "YES">
-      <MacroExpansion>
-         <BuildableReference
-            BuildableIdentifier = "primary"
-            BlueprintIdentifier = "8B8F55961BE3ECDC0095AF7F"
-            BuildableName = "Tulsi.app"
-            BlueprintName = "Tulsi"
-            ReferencedContainer = "container:Tulsi.xcodeproj">
-         </BuildableReference>
-      </MacroExpansion>
-   </ProfileAction>
-   <AnalyzeAction
-      buildConfiguration = "Debug">
-   </AnalyzeAction>
-   <ArchiveAction
-      buildConfiguration = "Release"
-      revealArchiveInOrganizer = "YES">
-   </ArchiveAction>
-</Scheme>