Loading...
libmalloc.xcodeproj/project.pbxproj libmalloc-140.40.1 libmalloc-166.220.1
--- libmalloc/libmalloc-140.40.1/libmalloc.xcodeproj/project.pbxproj
+++ libmalloc/libmalloc-166.220.1/libmalloc.xcodeproj/project.pbxproj
@@ -34,6 +34,17 @@
 			name = libmalloc_test;
 			productName = libmalloc_test;
 		};
+		B60A57932009307E006215CB /* executables */ = {
+			isa = PBXAggregateTarget;
+			buildConfigurationList = B60A57962009307E006215CB /* Build configuration list for PBXAggregateTarget "executables" */;
+			buildPhases = (
+			);
+			dependencies = (
+				B60A579820093093006215CB /* PBXTargetDependency */,
+			);
+			name = executables;
+			productName = executables;
+		};
 /* End PBXAggregateTarget section */
 
 /* Begin PBXBuildFile section */
@@ -44,6 +55,8 @@
 		08FEED021D501F6B00BE8A69 /* radix_tree_main.m in Sources */ = {isa = PBXBuildFile; fileRef = 08C28B421D501D2C000AE997 /* radix_tree_main.m */; };
 		0D468DCF1C7BEF51006FACF5 /* magazine_lite.c in Sources */ = {isa = PBXBuildFile; fileRef = 0D468DCC1C7BEE56006FACF5 /* magazine_lite.c */; };
 		0D468DD01C7BEF71006FACF5 /* stack_logging_internal.h in Headers */ = {isa = PBXBuildFile; fileRef = 0D468DCD1C7BEE65006FACF5 /* stack_logging_internal.h */; };
+		2B67B5682040B3AF0003E78F /* _malloc.h in Headers */ = {isa = PBXBuildFile; fileRef = 2B67B5672040B3A50003E78F /* _malloc.h */; settings = {ATTRIBUTES = (Public, ); }; };
+		3D157E7420354E02001630BF /* perfdata.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 3D157E7320354E02001630BF /* perfdata.framework */; };
 		3FE91FED16A90B9200D1238A /* bitarray.c in Sources */ = {isa = PBXBuildFile; fileRef = 3FE91FD116A90A8D00D1238A /* bitarray.c */; };
 		3FE91FF016A90B9200D1238A /* magazine_malloc.c in Sources */ = {isa = PBXBuildFile; fileRef = 3FE91FD616A90A8D00D1238A /* magazine_malloc.c */; };
 		3FE91FF116A90B9200D1238A /* magmallocProvider.d in Sources */ = {isa = PBXBuildFile; fileRef = 3FE91FD716A90A8D00D1238A /* magmallocProvider.d */; };
@@ -58,6 +71,64 @@
 		3FE9200416A9109E00D1238A /* nano_malloc.c in Sources */ = {isa = PBXBuildFile; fileRef = 3FE91FDA16A90A8D00D1238A /* nano_malloc.c */; };
 		3FE9200616A9109E00D1238A /* stack_logging_disk.c in Sources */ = {isa = PBXBuildFile; fileRef = 3FE91FDC16A90A8D00D1238A /* stack_logging_disk.c */; };
 		925383DA1BD03D5100F745DB /* stress_test.c in Sources */ = {isa = PBXBuildFile; fileRef = 925383D11BD03B4A00F745DB /* stress_test.c */; };
+		B61341DE20114B660038D163 /* ktrace.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = B61341DD20114B070038D163 /* ktrace.framework */; };
+		B629CF28202BA149007719B9 /* nanov2_malloc.c in Sources */ = {isa = PBXBuildFile; fileRef = B68B7FA41FCDD9A500BAD1AA /* nanov2_malloc.c */; };
+		B629CF2D202BB337007719B9 /* radix_tree.c in Sources */ = {isa = PBXBuildFile; fileRef = 088C4D741D1AEFB5005C6B36 /* radix_tree.c */; };
+		B629CF2E202BB337007719B9 /* bitarray.c in Sources */ = {isa = PBXBuildFile; fileRef = 3FE91FD116A90A8D00D1238A /* bitarray.c */; };
+		B629CF2F202BB337007719B9 /* purgeable_malloc.c in Sources */ = {isa = PBXBuildFile; fileRef = C957429E1BF681B00027269A /* purgeable_malloc.c */; };
+		B629CF30202BB337007719B9 /* magazine_large.c in Sources */ = {isa = PBXBuildFile; fileRef = C957429B1BF672F80027269A /* magazine_large.c */; };
+		B629CF31202BB337007719B9 /* magazine_malloc.c in Sources */ = {isa = PBXBuildFile; fileRef = 3FE91FD616A90A8D00D1238A /* magazine_malloc.c */; };
+		B629CF32202BB337007719B9 /* empty.s in Sources */ = {isa = PBXBuildFile; fileRef = C9ABCA041CB6FC6800ECB399 /* empty.s */; };
+		B629CF33202BB337007719B9 /* magazine_small.c in Sources */ = {isa = PBXBuildFile; fileRef = C95742981BF670D00027269A /* magazine_small.c */; };
+		B629CF34202BB337007719B9 /* legacy_malloc.c in Sources */ = {isa = PBXBuildFile; fileRef = C95742AA1BF685CB0027269A /* legacy_malloc.c */; };
+		B629CF35202BB337007719B9 /* magmallocProvider.d in Sources */ = {isa = PBXBuildFile; fileRef = 3FE91FD716A90A8D00D1238A /* magmallocProvider.d */; };
+		B629CF36202BB337007719B9 /* malloc.c in Sources */ = {isa = PBXBuildFile; fileRef = 3FE91FD816A90A8D00D1238A /* malloc.c */; };
+		B629CF37202BB337007719B9 /* frozen_malloc.c in Sources */ = {isa = PBXBuildFile; fileRef = C95742A41BF6842F0027269A /* frozen_malloc.c */; };
+		B629CF38202BB337007719B9 /* nanov2_malloc.c in Sources */ = {isa = PBXBuildFile; fileRef = B68B7FA41FCDD9A500BAD1AA /* nanov2_malloc.c */; };
+		B629CF39202BB337007719B9 /* nano_malloc.c in Sources */ = {isa = PBXBuildFile; fileRef = 3FE91FDA16A90A8D00D1238A /* nano_malloc.c */; };
+		B629CF3A202BB337007719B9 /* stack_logging_disk.c in Sources */ = {isa = PBXBuildFile; fileRef = 3FE91FDC16A90A8D00D1238A /* stack_logging_disk.c */; };
+		B629CF3B202BB337007719B9 /* magazine_tiny.c in Sources */ = {isa = PBXBuildFile; fileRef = C957428F1BF419DF0027269A /* magazine_tiny.c */; };
+		B629CF3C202BB337007719B9 /* nano_malloc_common.c in Sources */ = {isa = PBXBuildFile; fileRef = B68B7F9D1FCDCBC600BAD1AA /* nano_malloc_common.c */; };
+		B65FBE2C2087AA2F00E21F59 /* malloc_printf.c in Sources */ = {isa = PBXBuildFile; fileRef = B65FBE2B2087AA2F00E21F59 /* malloc_printf.c */; };
+		B66C71D92034BFAE0047E265 /* malloc_common.h in Headers */ = {isa = PBXBuildFile; fileRef = B66C71D72034BFAE0047E265 /* malloc_common.h */; };
+		B66C71DA2034BFAE0047E265 /* malloc_common.c in Sources */ = {isa = PBXBuildFile; fileRef = B66C71D82034BFAE0047E265 /* malloc_common.c */; };
+		B66C71DB2034BFD30047E265 /* malloc_common.c in Sources */ = {isa = PBXBuildFile; fileRef = B66C71D82034BFAE0047E265 /* malloc_common.c */; };
+		B66C71DC2034BFD40047E265 /* malloc_common.c in Sources */ = {isa = PBXBuildFile; fileRef = B66C71D82034BFAE0047E265 /* malloc_common.c */; };
+		B68B7F9E1FCDCBC600BAD1AA /* nano_malloc_common.h in Headers */ = {isa = PBXBuildFile; fileRef = B68B7F9C1FCDCBC600BAD1AA /* nano_malloc_common.h */; };
+		B68B7F9F1FCDCBC600BAD1AA /* nano_malloc_common.c in Sources */ = {isa = PBXBuildFile; fileRef = B68B7F9D1FCDCBC600BAD1AA /* nano_malloc_common.c */; };
+		B68B7FA01FCDCBE700BAD1AA /* nano_malloc_common.c in Sources */ = {isa = PBXBuildFile; fileRef = B68B7F9D1FCDCBC600BAD1AA /* nano_malloc_common.c */; };
+		B68B7FA11FCDCBE800BAD1AA /* nano_malloc_common.c in Sources */ = {isa = PBXBuildFile; fileRef = B68B7F9D1FCDCBC600BAD1AA /* nano_malloc_common.c */; };
+		B68B7FA31FCDD67100BAD1AA /* nanov2_malloc.h in Headers */ = {isa = PBXBuildFile; fileRef = B68B7FA21FCDD60F00BAD1AA /* nanov2_malloc.h */; };
+		B68B7FA51FCDD9A500BAD1AA /* nanov2_malloc.c in Sources */ = {isa = PBXBuildFile; fileRef = B68B7FA41FCDD9A500BAD1AA /* nanov2_malloc.c */; };
+		B68B7FA61FCDD9B200BAD1AA /* nanov2_malloc.c in Sources */ = {isa = PBXBuildFile; fileRef = B68B7FA41FCDD9A500BAD1AA /* nanov2_malloc.c */; };
+		B68B7FA71FCDD9B200BAD1AA /* nanov2_malloc.c in Sources */ = {isa = PBXBuildFile; fileRef = B68B7FA41FCDD9A500BAD1AA /* nanov2_malloc.c */; };
+		B6910F67202B630D00FF2EB0 /* radix_tree.c in Sources */ = {isa = PBXBuildFile; fileRef = 088C4D741D1AEFB5005C6B36 /* radix_tree.c */; };
+		B6910F68202B630D00FF2EB0 /* bitarray.c in Sources */ = {isa = PBXBuildFile; fileRef = 3FE91FD116A90A8D00D1238A /* bitarray.c */; };
+		B6910F69202B630D00FF2EB0 /* purgeable_malloc.c in Sources */ = {isa = PBXBuildFile; fileRef = C957429E1BF681B00027269A /* purgeable_malloc.c */; };
+		B6910F6A202B630D00FF2EB0 /* magazine_large.c in Sources */ = {isa = PBXBuildFile; fileRef = C957429B1BF672F80027269A /* magazine_large.c */; };
+		B6910F6B202B630D00FF2EB0 /* magazine_malloc.c in Sources */ = {isa = PBXBuildFile; fileRef = 3FE91FD616A90A8D00D1238A /* magazine_malloc.c */; };
+		B6910F6C202B630D00FF2EB0 /* empty.s in Sources */ = {isa = PBXBuildFile; fileRef = C9ABCA041CB6FC6800ECB399 /* empty.s */; };
+		B6910F6D202B630D00FF2EB0 /* magazine_small.c in Sources */ = {isa = PBXBuildFile; fileRef = C95742981BF670D00027269A /* magazine_small.c */; };
+		B6910F6E202B630D00FF2EB0 /* legacy_malloc.c in Sources */ = {isa = PBXBuildFile; fileRef = C95742AA1BF685CB0027269A /* legacy_malloc.c */; };
+		B6910F6F202B630D00FF2EB0 /* magmallocProvider.d in Sources */ = {isa = PBXBuildFile; fileRef = 3FE91FD716A90A8D00D1238A /* magmallocProvider.d */; };
+		B6910F70202B630D00FF2EB0 /* malloc.c in Sources */ = {isa = PBXBuildFile; fileRef = 3FE91FD816A90A8D00D1238A /* malloc.c */; };
+		B6910F71202B630D00FF2EB0 /* frozen_malloc.c in Sources */ = {isa = PBXBuildFile; fileRef = C95742A41BF6842F0027269A /* frozen_malloc.c */; };
+		B6910F73202B630D00FF2EB0 /* nano_malloc.c in Sources */ = {isa = PBXBuildFile; fileRef = 3FE91FDA16A90A8D00D1238A /* nano_malloc.c */; };
+		B6910F74202B630D00FF2EB0 /* stack_logging_disk.c in Sources */ = {isa = PBXBuildFile; fileRef = 3FE91FDC16A90A8D00D1238A /* stack_logging_disk.c */; };
+		B6910F75202B630D00FF2EB0 /* magazine_tiny.c in Sources */ = {isa = PBXBuildFile; fileRef = C957428F1BF419DF0027269A /* magazine_tiny.c */; };
+		B6910F76202B630D00FF2EB0 /* nano_malloc_common.c in Sources */ = {isa = PBXBuildFile; fileRef = B68B7F9D1FCDCBC600BAD1AA /* nano_malloc_common.c */; };
+		B6CA644E1FCE2C1900DEBA12 /* nanov2_zone.h in Headers */ = {isa = PBXBuildFile; fileRef = B6CA644D1FCE2C0A00DEBA12 /* nanov2_zone.h */; };
+		B6CA644F1FCE2C1A00DEBA12 /* nanov2_zone.h in Headers */ = {isa = PBXBuildFile; fileRef = B6CA644D1FCE2C0A00DEBA12 /* nanov2_zone.h */; };
+		B6CA64501FCE2C1B00DEBA12 /* nanov2_zone.h in Headers */ = {isa = PBXBuildFile; fileRef = B6CA644D1FCE2C0A00DEBA12 /* nanov2_zone.h */; };
+		B6CA64521FCF1AD200DEBA12 /* nano_zone_common.h in Headers */ = {isa = PBXBuildFile; fileRef = B6CA64511FCF1AAD00DEBA12 /* nano_zone_common.h */; };
+		B6CA64531FCF1AD400DEBA12 /* nano_zone_common.h in Headers */ = {isa = PBXBuildFile; fileRef = B6CA64511FCF1AAD00DEBA12 /* nano_zone_common.h */; };
+		B6CA64541FCF1AD400DEBA12 /* nano_zone_common.h in Headers */ = {isa = PBXBuildFile; fileRef = B6CA64511FCF1AAD00DEBA12 /* nano_zone_common.h */; };
+		B6D2ED572007D91A007AF994 /* malloc_replay.cpp in Sources */ = {isa = PBXBuildFile; fileRef = B6D2ED552007D91A007AF994 /* malloc_replay.cpp */; };
+		B6D5C7F1202E26F80035E376 /* resolver.c in Sources */ = {isa = PBXBuildFile; fileRef = B6D5C7ED202E26CA0035E376 /* resolver.c */; };
+		B6D5C7F2202E26F80035E376 /* resolver.c in Sources */ = {isa = PBXBuildFile; fileRef = B6D5C7ED202E26CA0035E376 /* resolver.c */; };
+		B6D5C7F3202E26F90035E376 /* resolver.c in Sources */ = {isa = PBXBuildFile; fileRef = B6D5C7ED202E26CA0035E376 /* resolver.c */; };
+		B6D5C7F4202E26F90035E376 /* resolver.c in Sources */ = {isa = PBXBuildFile; fileRef = B6D5C7ED202E26CA0035E376 /* resolver.c */; };
+		B6D5C7F5202E26FA0035E376 /* resolver.c in Sources */ = {isa = PBXBuildFile; fileRef = B6D5C7ED202E26CA0035E376 /* resolver.c */; };
 		C0352EC71C3F3C4400DB5126 /* malloc_private.h in Headers */ = {isa = PBXBuildFile; fileRef = C0352EC61C3F3C3600DB5126 /* malloc_private.h */; settings = {ATTRIBUTES = (Private, ); }; };
 		C0CE45311C52C90500C24048 /* bitarray.c in Sources */ = {isa = PBXBuildFile; fileRef = 3FE91FD116A90A8D00D1238A /* bitarray.c */; };
 		C0CE45321C52C90500C24048 /* purgeable_malloc.c in Sources */ = {isa = PBXBuildFile; fileRef = C957429E1BF681B00027269A /* purgeable_malloc.c */; };
@@ -156,6 +227,27 @@
 			remoteGlobalIDString = 925383D41BD03C0500F745DB;
 			remoteInfo = darwintests;
 		};
+		B60A579720093093006215CB /* PBXContainerItemProxy */ = {
+			isa = PBXContainerItemProxy;
+			containerPortal = 3FFC1BE516A908F800027192 /* Project object */;
+			proxyType = 1;
+			remoteGlobalIDString = B6D2ED492007D76F007AF994;
+			remoteInfo = libmalloc_replay;
+		};
+		B629CF43202BB389007719B9 /* PBXContainerItemProxy */ = {
+			isa = PBXContainerItemProxy;
+			containerPortal = 3FFC1BE516A908F800027192 /* Project object */;
+			proxyType = 1;
+			remoteGlobalIDString = B629CF2B202BB337007719B9;
+			remoteInfo = libmalloc_alt;
+		};
+		B676F4AB202B66EF00933F6D /* PBXContainerItemProxy */ = {
+			isa = PBXContainerItemProxy;
+			containerPortal = 3FFC1BE516A908F800027192 /* Project object */;
+			proxyType = 1;
+			remoteGlobalIDString = B6910F65202B630D00FF2EB0;
+			remoteInfo = libmalloc_mp;
+		};
 		C0CE454F1C52CCBD00C24048 /* PBXContainerItemProxy */ = {
 			isa = PBXContainerItemProxy;
 			containerPortal = 3FFC1BE516A908F800027192 /* Project object */;
@@ -199,6 +291,8 @@
 		0D468DCC1C7BEE56006FACF5 /* magazine_lite.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = magazine_lite.c; sourceTree = "<group>"; };
 		0D468DCD1C7BEE65006FACF5 /* stack_logging_internal.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = stack_logging_internal.h; sourceTree = "<group>"; };
 		0D468DCE1C7BEE74006FACF5 /* stack_logging_test.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = stack_logging_test.c; sourceTree = "<group>"; };
+		2B67B5672040B3A50003E78F /* _malloc.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = _malloc.h; sourceTree = "<group>"; };
+		3D157E7320354E02001630BF /* perfdata.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = perfdata.framework; path = ../MacOSX10.14.Internal.sdk/System/Library/PrivateFrameworks/perfdata.framework; sourceTree = SDKROOT; };
 		3FC452FF18E4ABFE003D6A38 /* manpages.sh */ = {isa = PBXFileReference; lastKnownFileType = text.script.sh; path = manpages.sh; sourceTree = "<group>"; };
 		3FE91FC916A90A8D00D1238A /* malloc.3 */ = {isa = PBXFileReference; lastKnownFileType = text; path = malloc.3; sourceTree = "<group>"; };
 		3FE91FCA16A90A8D00D1238A /* malloc_size.3 */ = {isa = PBXFileReference; lastKnownFileType = text; path = malloc_size.3; sourceTree = "<group>"; };
@@ -219,9 +313,42 @@
 		3FE91FFB16A90E6C00D1238A /* legacy_malloc.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = legacy_malloc.h; sourceTree = "<group>"; };
 		3FE9201016A9109E00D1238A /* libmalloc_eOS.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = libmalloc_eOS.a; sourceTree = BUILT_PRODUCTS_DIR; };
 		456E51C9197DF0D600A7E488 /* libmalloc_stress_test */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.executable"; includeInIndex = 0; path = libmalloc_stress_test; sourceTree = BUILT_PRODUCTS_DIR; };
+		8CB962B01F7E9F610046942E /* asan.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = asan.c; sourceTree = "<group>"; };
+		8CB962B11F7E9FD00046942E /* tsan.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = tsan.c; sourceTree = "<group>"; };
 		925383D01BD03B4A00F745DB /* Makefile */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.make; path = Makefile; sourceTree = "<group>"; };
 		925383D11BD03B4A00F745DB /* stress_test.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = stress_test.c; sourceTree = "<group>"; };
 		925383D31BD03B8F00F745DB /* manpages.lst */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = manpages.lst; sourceTree = "<group>"; };
+		B61341DD20114B070038D163 /* ktrace.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = ktrace.framework; path = Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.14.Internal.sdk/System/Library/PrivateFrameworks/ktrace.framework; sourceTree = DEVELOPER_DIR; };
+		B629CF29202BA3C2007719B9 /* libmalloc_resolver.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; path = libmalloc_resolver.xcconfig; sourceTree = "<group>"; };
+		B629CF42202BB337007719B9 /* libmalloc_alt.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = libmalloc_alt.a; sourceTree = BUILT_PRODUCTS_DIR; };
+		B629CF46202BBDEC007719B9 /* resolver_internal.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = resolver_internal.h; sourceTree = "<group>"; };
+		B629CF48202BBE3B007719B9 /* resolver.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = resolver.h; sourceTree = "<group>"; };
+		B64E100A205311DC004C4BA6 /* malloc_size_test.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = malloc_size_test.c; sourceTree = "<group>"; };
+		B6536A62204754B6005FBE22 /* perf_contended_malloc_free.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = perf_contended_malloc_free.c; sourceTree = "<group>"; };
+		B6536A6320475BA4005FBE22 /* basic_malloc_free_perf.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = basic_malloc_free_perf.c; sourceTree = "<group>"; };
+		B65FBE2B2087AA2F00E21F59 /* malloc_printf.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = malloc_printf.c; sourceTree = "<group>"; };
+		B66AA658202A70B00019D607 /* libmalloc_resolved.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; path = libmalloc_resolved.xcconfig; sourceTree = "<group>"; };
+		B66C71D72034BFAE0047E265 /* malloc_common.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = malloc_common.h; sourceTree = "<group>"; };
+		B66C71D82034BFAE0047E265 /* malloc_common.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = malloc_common.c; sourceTree = "<group>"; };
+		B670DABD2072D0BB00139A1D /* perf_realloc.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = perf_realloc.c; sourceTree = "<group>"; };
+		B671CFFD207578CC00EEAF20 /* libmalloc.dirty */ = {isa = PBXFileReference; lastKnownFileType = text; path = libmalloc.dirty; sourceTree = "<group>"; };
+		B675F74520213D0A00B5038B /* nano_tests.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = nano_tests.c; sourceTree = "<group>"; };
+		B68B7F9C1FCDCBC600BAD1AA /* nano_malloc_common.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = nano_malloc_common.h; sourceTree = "<group>"; };
+		B68B7F9D1FCDCBC600BAD1AA /* nano_malloc_common.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = nano_malloc_common.c; sourceTree = "<group>"; };
+		B68B7FA21FCDD60F00BAD1AA /* nanov2_malloc.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = nanov2_malloc.h; sourceTree = "<group>"; };
+		B68B7FA41FCDD9A500BAD1AA /* nanov2_malloc.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = nanov2_malloc.c; sourceTree = "<group>"; };
+		B6910F89202B630D00FF2EB0 /* libmalloc_mp.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = libmalloc_mp.a; sourceTree = BUILT_PRODUCTS_DIR; };
+		B69B2B941FB3D00500FD5A8F /* magazine_malloc.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = magazine_malloc.c; sourceTree = "<group>"; };
+		B6A414EA1FBDF01C0038DC53 /* malloc_claimed_address_tests.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = malloc_claimed_address_tests.c; sourceTree = "<group>"; };
+		B6A494971F9918DD0016A799 /* calloc_test.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = calloc_test.c; sourceTree = "<group>"; };
+		B6A9C48C1F991716007D0853 /* malloc_free_test.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = malloc_free_test.c; sourceTree = "<group>"; };
+		B6C1C9C720D9B70F002CCC0B /* nano_trace_replay.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = nano_trace_replay.c; sourceTree = "<group>"; };
+		B6CA644D1FCE2C0A00DEBA12 /* nanov2_zone.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = nanov2_zone.h; sourceTree = "<group>"; };
+		B6CA64511FCF1AAD00DEBA12 /* nano_zone_common.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = nano_zone_common.h; sourceTree = "<group>"; };
+		B6D2ED512007D76F007AF994 /* libmalloc_replay */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.executable"; includeInIndex = 0; path = libmalloc_replay; sourceTree = BUILT_PRODUCTS_DIR; };
+		B6D2ED552007D91A007AF994 /* malloc_replay.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = malloc_replay.cpp; sourceTree = "<group>"; };
+		B6D2ED562007D91A007AF994 /* malloc_replay.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = malloc_replay.h; sourceTree = "<group>"; };
+		B6D5C7ED202E26CA0035E376 /* resolver.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = resolver.c; sourceTree = "<group>"; };
 		C0352EC61C3F3C3600DB5126 /* malloc_private.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = malloc_private.h; sourceTree = "<group>"; };
 		C0CE450E1C52B9E300C24048 /* libmalloc_static.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; path = libmalloc_static.xcconfig; sourceTree = "<group>"; };
 		C0CE454C1C52C90500C24048 /* libmalloc.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = libmalloc.a; sourceTree = BUILT_PRODUCTS_DIR; };
@@ -325,6 +452,29 @@
 			);
 			runOnlyForDeploymentPostprocessing = 0;
 		};
+		B629CF3D202BB337007719B9 /* Frameworks */ = {
+			isa = PBXFrameworksBuildPhase;
+			buildActionMask = 2147483647;
+			files = (
+			);
+			runOnlyForDeploymentPostprocessing = 0;
+		};
+		B6910F77202B630D00FF2EB0 /* Frameworks */ = {
+			isa = PBXFrameworksBuildPhase;
+			buildActionMask = 2147483647;
+			files = (
+			);
+			runOnlyForDeploymentPostprocessing = 0;
+		};
+		B6D2ED4C2007D76F007AF994 /* Frameworks */ = {
+			isa = PBXFrameworksBuildPhase;
+			buildActionMask = 2147483647;
+			files = (
+				3D157E7420354E02001630BF /* perfdata.framework in Frameworks */,
+				B61341DE20114B660038D163 /* ktrace.framework in Frameworks */,
+			);
+			runOnlyForDeploymentPostprocessing = 0;
+		};
 		C0CE453E1C52C90500C24048 /* Frameworks */ = {
 			isa = PBXFrameworksBuildPhase;
 			buildActionMask = 2147483647;
@@ -338,6 +488,8 @@
 		084F5E821D50204F006CD296 /* Frameworks */ = {
 			isa = PBXGroup;
 			children = (
+				3D157E7320354E02001630BF /* perfdata.framework */,
+				B61341DD20114B070038D163 /* ktrace.framework */,
 				084F5E831D50204F006CD296 /* Foundation.framework */,
 			);
 			name = Frameworks;
@@ -347,6 +499,8 @@
 			isa = PBXGroup;
 			children = (
 				08C28B421D501D2C000AE997 /* radix_tree_main.m */,
+				B6D2ED552007D91A007AF994 /* malloc_replay.cpp */,
+				B6D2ED562007D91A007AF994 /* malloc_replay.h */,
 			);
 			path = tools;
 			sourceTree = "<group>";
@@ -386,6 +540,7 @@
 				0D468DCC1C7BEE56006FACF5 /* magazine_lite.c */,
 				3FE91FD616A90A8D00D1238A /* magazine_malloc.c */,
 				C95742951BF41E480027269A /* magazine_malloc.h */,
+				B65FBE2B2087AA2F00E21F59 /* malloc_printf.c */,
 				C99E32091D6F7366005655A8 /* magazine_rack.c */,
 				C99E320A1D6F7366005655A8 /* magazine_rack.h */,
 				C95742981BF670D00027269A /* magazine_small.c */,
@@ -393,9 +548,17 @@
 				C95742861BF3F9550027269A /* magazine_zone.h */,
 				3FE91FD716A90A8D00D1238A /* magmallocProvider.d */,
 				3FE91FD816A90A8D00D1238A /* malloc.c */,
+				B66C71D82034BFAE0047E265 /* malloc_common.c */,
+				B66C71D72034BFAE0047E265 /* malloc_common.h */,
+				B68B7F9D1FCDCBC600BAD1AA /* nano_malloc_common.c */,
+				B68B7F9C1FCDCBC600BAD1AA /* nano_malloc_common.h */,
 				3FE91FDA16A90A8D00D1238A /* nano_malloc.c */,
 				C95742791BF2C5F40027269A /* nano_malloc.h */,
 				C957427E1BF33D130027269A /* nano_zone.h */,
+				B6CA64511FCF1AAD00DEBA12 /* nano_zone_common.h */,
+				B68B7FA41FCDD9A500BAD1AA /* nanov2_malloc.c */,
+				B68B7FA21FCDD60F00BAD1AA /* nanov2_malloc.h */,
+				B6CA644D1FCE2C0A00DEBA12 /* nanov2_zone.h */,
 				C9F77BBA1BF2B84800812E13 /* platform.h */,
 				3FE91FD916A90A8D00D1238A /* printf.h */,
 				C957429E1BF681B00027269A /* purgeable_malloc.c */,
@@ -416,6 +579,9 @@
 				3FE91FE016A90A8D00D1238A /* libmalloc.xcconfig */,
 				3FE91FE116A90A8D00D1238A /* libmalloc_eos.xcconfig */,
 				C0CE450E1C52B9E300C24048 /* libmalloc_static.xcconfig */,
+				B66AA658202A70B00019D607 /* libmalloc_resolved.xcconfig */,
+				B629CF29202BA3C2007719B9 /* libmalloc_resolver.xcconfig */,
+				B671CFFD207578CC00EEAF20 /* libmalloc.dirty */,
 			);
 			path = xcodeconfig;
 			sourceTree = "<group>";
@@ -438,6 +604,9 @@
 				456E51C9197DF0D600A7E488 /* libmalloc_stress_test */,
 				C0CE454C1C52C90500C24048 /* libmalloc.a */,
 				08C28B401D501D2C000AE997 /* radix-tree */,
+				B6D2ED512007D76F007AF994 /* libmalloc_replay */,
+				B6910F89202B630D00FF2EB0 /* libmalloc_mp.a */,
+				B629CF42202BB337007719B9 /* libmalloc_alt.a */,
 			);
 			name = Products;
 			sourceTree = "<group>";
@@ -453,6 +622,7 @@
 		3FE91FF816A90BEF00D1238A /* malloc */ = {
 			isa = PBXGroup;
 			children = (
+				2B67B5672040B3A50003E78F /* _malloc.h */,
 				3FE91FF916A90BEF00D1238A /* malloc.h */,
 			);
 			path = malloc;
@@ -465,6 +635,7 @@
 				3FE91FC816A90A8D00D1238A /* man */,
 				C9571C381C18AA0A00A67EE3 /* private */,
 				3FE91FCC16A90A8D00D1238A /* src */,
+				B629CF45202BBDCC007719B9 /* resolver */,
 				925383BD1BD03B4A00F745DB /* tests */,
 				3FE91FDF16A90A8D00D1238A /* xcodeconfig */,
 				3FE91FE216A90A8D00D1238A /* xcodescripts */,
@@ -479,19 +650,41 @@
 		925383BD1BD03B4A00F745DB /* tests */ = {
 			isa = PBXGroup;
 			children = (
+				8CB962B01F7E9F610046942E /* asan.c */,
+				8CB962B11F7E9FD00046942E /* tsan.c */,
 				C931B58F1C81248100D0D230 /* madvise.c */,
 				C9F8C2691D74C93A008C4044 /* magazine_rack.c */,
+				B6A494971F9918DD0016A799 /* calloc_test.c */,
+				B6A9C48C1F991716007D0853 /* malloc_free_test.c */,
+				B6A414EA1FBDF01C0038DC53 /* malloc_claimed_address_tests.c */,
 				C9F8C2681D70B521008C4044 /* magazine_small_test.c */,
+				B64E100A205311DC004C4BA6 /* malloc_size_test.c */,
 				C93F76D71D6B9F8C0088931B /* magazine_testing.h */,
 				C932D2631D6B6ED40063B19E /* magazine_tiny_test.c */,
+				B69B2B941FB3D00500FD5A8F /* magazine_malloc.c */,
 				925383D01BD03B4A00F745DB /* Makefile */,
 				C9571C3B1C18AD4F00A67EE3 /* MallocBench */,
 				C9571C661C18AD6A00A67EE3 /* MallocBench.cpp */,
+				B6536A6320475BA4005FBE22 /* basic_malloc_free_perf.c */,
+				B675F74520213D0A00B5038B /* nano_tests.c */,
+				B6C1C9C720D9B70F002CCC0B /* nano_trace_replay.c */,
+				B6536A62204754B6005FBE22 /* perf_contended_malloc_free.c */,
+				B670DABD2072D0BB00139A1D /* perf_realloc.c */,
 				088C4D761D1AEFC5005C6B36 /* radix_tree_test.m */,
 				0D468DCE1C7BEE74006FACF5 /* stack_logging_test.c */,
 				925383D11BD03B4A00F745DB /* stress_test.c */,
 			);
 			path = tests;
+			sourceTree = "<group>";
+		};
+		B629CF45202BBDCC007719B9 /* resolver */ = {
+			isa = PBXGroup;
+			children = (
+				B629CF48202BBE3B007719B9 /* resolver.h */,
+				B629CF46202BBDEC007719B9 /* resolver_internal.h */,
+				B6D5C7ED202E26CA0035E376 /* resolver.c */,
+			);
+			path = resolver;
 			sourceTree = "<group>";
 		};
 		C9571C381C18AA0A00A67EE3 /* private */ = {
@@ -555,23 +748,29 @@
 				C0352EC71C3F3C4400DB5126 /* malloc_private.h in Headers */,
 				0D468DD01C7BEF71006FACF5 /* stack_logging_internal.h in Headers */,
 				C95742731BF2C2880027269A /* internal.h in Headers */,
+				B6CA644E1FCE2C1900DEBA12 /* nanov2_zone.h in Headers */,
 				C99E320C1D6F7366005655A8 /* magazine_rack.h in Headers */,
 				C95742721BF2C2880027269A /* bitarray.h in Headers */,
 				C932D2691D6B8D840063B19E /* vm.h in Headers */,
+				B6CA64521FCF1AD200DEBA12 /* nano_zone_common.h in Headers */,
 				C938BBD31C74F7A400522BBD /* trace.h in Headers */,
 				C95742A81BF6842F0027269A /* frozen_malloc.h in Headers */,
 				C957428D1BF411330027269A /* thresholds.h in Headers */,
 				C95742741BF2C2880027269A /* locking.h in Headers */,
 				C95742931BF41C970027269A /* magazine_inline.h in Headers */,
+				B68B7FA31FCDD67100BAD1AA /* nanov2_malloc.h in Headers */,
 				C95742761BF2C2880027269A /* platform.h in Headers */,
 				C957427A1BF2C67E0027269A /* nano_malloc.h in Headers */,
+				B66C71D92034BFAE0047E265 /* malloc_common.h in Headers */,
 				C957427C1BF2C8DE0027269A /* debug.h in Headers */,
+				2B67B5682040B3AF0003E78F /* _malloc.h in Headers */,
 				C95742961BF41E480027269A /* magazine_malloc.h in Headers */,
 				C9571C3A1C18AA1D00A67EE3 /* stack_logging.h in Headers */,
 				3FE91FFA16A90BEF00D1238A /* malloc.h in Headers */,
 				C95742871BF3F9550027269A /* magazine_zone.h in Headers */,
 				C95742771BF2C2880027269A /* legacy_malloc.h in Headers */,
 				C95742A21BF681B00027269A /* purgeable_malloc.h in Headers */,
+				B68B7F9E1FCDCBC600BAD1AA /* nano_malloc_common.h in Headers */,
 				C957427F1BF33D130027269A /* nano_zone.h in Headers */,
 				C95742751BF2C2880027269A /* printf.h in Headers */,
 			);
@@ -583,6 +782,7 @@
 			files = (
 				C95742941BF41C970027269A /* magazine_inline.h in Headers */,
 				C95742801BF33D130027269A /* nano_zone.h in Headers */,
+				B6CA644F1FCE2C1A00DEBA12 /* nanov2_zone.h in Headers */,
 				C957428E1BF411330027269A /* thresholds.h in Headers */,
 				C957427D1BF2C8DE0027269A /* debug.h in Headers */,
 				C95742A91BF6842F0027269A /* frozen_malloc.h in Headers */,
@@ -590,6 +790,7 @@
 				C95742971BF41E480027269A /* magazine_malloc.h in Headers */,
 				C95742A31BF681B00027269A /* purgeable_malloc.h in Headers */,
 				C957428B1BF3FD290027269A /* base.h in Headers */,
+				B6CA64531FCF1AD400DEBA12 /* nano_zone_common.h in Headers */,
 			);
 			runOnlyForDeploymentPostprocessing = 0;
 		};
@@ -599,6 +800,7 @@
 			files = (
 				C0CE45401C52C90500C24048 /* magazine_inline.h in Headers */,
 				C0CE45411C52C90500C24048 /* nano_zone.h in Headers */,
+				B6CA64501FCE2C1B00DEBA12 /* nanov2_zone.h in Headers */,
 				C0CE45421C52C90500C24048 /* thresholds.h in Headers */,
 				C0CE45431C52C90500C24048 /* debug.h in Headers */,
 				C0CE45441C52C90500C24048 /* frozen_malloc.h in Headers */,
@@ -606,6 +808,7 @@
 				C0CE45461C52C90500C24048 /* magazine_malloc.h in Headers */,
 				C0CE45471C52C90500C24048 /* purgeable_malloc.h in Headers */,
 				C0CE45481C52C90500C24048 /* base.h in Headers */,
+				B6CA64541FCF1AD400DEBA12 /* nano_zone_common.h in Headers */,
 			);
 			runOnlyForDeploymentPostprocessing = 0;
 		};
@@ -657,6 +860,8 @@
 			buildRules = (
 			);
 			dependencies = (
+				B676F4AC202B66EF00933F6D /* PBXTargetDependency */,
+				B629CF44202BB389007719B9 /* PBXTargetDependency */,
 			);
 			name = libsystem_malloc;
 			productName = libmalloc;
@@ -695,6 +900,56 @@
 			name = libmalloc_stress_test;
 			productName = libmalloc_stress_test;
 			productReference = 456E51C9197DF0D600A7E488 /* libmalloc_stress_test */;
+			productType = "com.apple.product-type.tool";
+		};
+		B629CF2B202BB337007719B9 /* libmalloc_alt */ = {
+			isa = PBXNativeTarget;
+			buildConfigurationList = B629CF3F202BB337007719B9 /* Build configuration list for PBXNativeTarget "libmalloc_alt" */;
+			buildPhases = (
+				B629CF2C202BB337007719B9 /* Sources */,
+				B629CF3D202BB337007719B9 /* Frameworks */,
+				B629CF3E202BB337007719B9 /* Symlink normal variant */,
+			);
+			buildRules = (
+			);
+			dependencies = (
+			);
+			name = libmalloc_alt;
+			productName = libmalloc;
+			productReference = B629CF42202BB337007719B9 /* libmalloc_alt.a */;
+			productType = "com.apple.product-type.library.static";
+		};
+		B6910F65202B630D00FF2EB0 /* libmalloc_mp */ = {
+			isa = PBXNativeTarget;
+			buildConfigurationList = B6910F86202B630D00FF2EB0 /* Build configuration list for PBXNativeTarget "libmalloc_mp" */;
+			buildPhases = (
+				B6910F66202B630D00FF2EB0 /* Sources */,
+				B6910F77202B630D00FF2EB0 /* Frameworks */,
+				B629CF2A202BB226007719B9 /* Symlink normal variant */,
+			);
+			buildRules = (
+			);
+			dependencies = (
+			);
+			name = libmalloc_mp;
+			productName = libmalloc;
+			productReference = B6910F89202B630D00FF2EB0 /* libmalloc_mp.a */;
+			productType = "com.apple.product-type.library.static";
+		};
+		B6D2ED492007D76F007AF994 /* libmalloc_replay */ = {
+			isa = PBXNativeTarget;
+			buildConfigurationList = B6D2ED4E2007D76F007AF994 /* Build configuration list for PBXNativeTarget "libmalloc_replay" */;
+			buildPhases = (
+				B6D2ED4A2007D76F007AF994 /* Sources */,
+				B6D2ED4C2007D76F007AF994 /* Frameworks */,
+			);
+			buildRules = (
+			);
+			dependencies = (
+			);
+			name = libmalloc_replay;
+			productName = libmalloc_stress_test;
+			productReference = B6D2ED512007D76F007AF994 /* libmalloc_replay */;
 			productType = "com.apple.product-type.tool";
 		};
 		C0CE452F1C52C90500C24048 /* libmalloc_static */ = {
@@ -737,6 +992,10 @@
 					925383D41BD03C0500F745DB = {
 						CreatedOnToolsVersion = 7.1;
 					};
+					B60A57932009307E006215CB = {
+						CreatedOnToolsVersion = 9.3;
+						ProvisioningStyle = Automatic;
+					};
 				};
 			};
 			buildConfigurationList = 3FFC1BE816A908F800027192 /* Build configuration list for PBXProject "libmalloc" */;
@@ -754,11 +1013,15 @@
 				3FE9201116A9111000D1238A /* libmalloc */,
 				45039161198FFF73004EE2A3 /* libmalloc_test */,
 				3FE91FE716A90AEC00D1238A /* libsystem_malloc */,
+				B6910F65202B630D00FF2EB0 /* libmalloc_mp */,
+				B629CF2B202BB337007719B9 /* libmalloc_alt */,
 				3FE91FFD16A9109E00D1238A /* libmalloc_eOS */,
 				C0CE452F1C52C90500C24048 /* libmalloc_static */,
+				B6D2ED492007D76F007AF994 /* libmalloc_replay */,
 				456E51C8197DF0D600A7E488 /* libmalloc_stress_test */,
 				08C28B3F1D501D2C000AE997 /* radix-tree */,
 				925383D41BD03C0500F745DB /* darwintests */,
+				B60A57932009307E006215CB /* executables */,
 			);
 		};
 /* End PBXProject section */
@@ -794,6 +1057,38 @@
 			shellPath = /bin/sh;
 			shellScript = ". \"${SCRIPT_INPUT_FILE_0}\"";
 		};
+		B629CF2A202BB226007719B9 /* Symlink normal variant */ = {
+			isa = PBXShellScriptBuildPhase;
+			buildActionMask = 2147483647;
+			files = (
+			);
+			inputPaths = (
+			);
+			name = "Symlink normal variant";
+			outputPaths = (
+				"$(CONFIGURATION_BUILD_DIR)/$(EXECUTABLE_PREFIX)$(PRODUCT_NAME)_normal$(EXECUTABLE_SUFFIX)",
+			);
+			runOnlyForDeploymentPostprocessing = 0;
+			shellPath = "/bin/bash -e -x";
+			shellScript = "ln -fs \"${EXECUTABLE_PREFIX}${PRODUCT_NAME}${EXECUTABLE_SUFFIX}\" \"${SCRIPT_OUTPUT_FILE_0}\"";
+			showEnvVarsInLog = 0;
+		};
+		B629CF3E202BB337007719B9 /* Symlink normal variant */ = {
+			isa = PBXShellScriptBuildPhase;
+			buildActionMask = 2147483647;
+			files = (
+			);
+			inputPaths = (
+			);
+			name = "Symlink normal variant";
+			outputPaths = (
+				"$(CONFIGURATION_BUILD_DIR)/$(EXECUTABLE_PREFIX)$(PRODUCT_NAME)_normal$(EXECUTABLE_SUFFIX)",
+			);
+			runOnlyForDeploymentPostprocessing = 0;
+			shellPath = "/bin/bash -e -x";
+			shellScript = "ln -fs \"${EXECUTABLE_PREFIX}${PRODUCT_NAME}${EXECUTABLE_SUFFIX}\" \"${SCRIPT_OUTPUT_FILE_0}\"";
+			showEnvVarsInLog = 0;
+		};
 		C92853A11C767F78001FEAF3 /* Install Codes File */ = {
 			isa = PBXShellScriptBuildPhase;
 			buildActionMask = 2147483647;
@@ -828,6 +1123,7 @@
 			files = (
 				088C4D771D1AF049005C6B36 /* radix_tree.c in Sources */,
 				3FE91FED16A90B9200D1238A /* bitarray.c in Sources */,
+				B66C71DA2034BFAE0047E265 /* malloc_common.c in Sources */,
 				C95742A01BF681B00027269A /* purgeable_malloc.c in Sources */,
 				C957429C1BF672F80027269A /* magazine_large.c in Sources */,
 				3FE91FF016A90B9200D1238A /* magazine_malloc.c in Sources */,
@@ -837,11 +1133,15 @@
 				C932D2681D6B8D840063B19E /* vm.c in Sources */,
 				3FE91FF116A90B9200D1238A /* magmallocProvider.d in Sources */,
 				0D468DCF1C7BEF51006FACF5 /* magazine_lite.c in Sources */,
+				B68B7FA51FCDD9A500BAD1AA /* nanov2_malloc.c in Sources */,
+				B6D5C7F1202E26F80035E376 /* resolver.c in Sources */,
+				B68B7F9F1FCDCBC600BAD1AA /* nano_malloc_common.c in Sources */,
 				3FE91FF216A90B9200D1238A /* malloc.c in Sources */,
 				C95742A61BF6842F0027269A /* frozen_malloc.c in Sources */,
 				3FE91FF416A90B9200D1238A /* nano_malloc.c in Sources */,
 				3FE91FF616A90B9200D1238A /* stack_logging_disk.c in Sources */,
 				C95742901BF419DF0027269A /* magazine_tiny.c in Sources */,
+				B65FBE2C2087AA2F00E21F59 /* malloc_printf.c in Sources */,
 			);
 			runOnlyForDeploymentPostprocessing = 0;
 		};
@@ -849,18 +1149,22 @@
 			isa = PBXSourcesBuildPhase;
 			buildActionMask = 2147483647;
 			files = (
+				B66C71DB2034BFD30047E265 /* malloc_common.c in Sources */,
 				3FE91FFF16A9109E00D1238A /* bitarray.c in Sources */,
 				C95742A11BF681B00027269A /* purgeable_malloc.c in Sources */,
 				C957429D1BF672F80027269A /* magazine_large.c in Sources */,
 				3FE9200116A9109E00D1238A /* magazine_malloc.c in Sources */,
 				C957429A1BF670D00027269A /* magazine_small.c in Sources */,
 				C95742AC1BF685CB0027269A /* legacy_malloc.c in Sources */,
+				B68B7FA01FCDCBE700BAD1AA /* nano_malloc_common.c in Sources */,
+				B68B7FA61FCDD9B200BAD1AA /* nanov2_malloc.c in Sources */,
 				3FE9200216A9109E00D1238A /* magmallocProvider.d in Sources */,
 				3FE9200316A9109E00D1238A /* malloc.c in Sources */,
 				C95742A71BF6842F0027269A /* frozen_malloc.c in Sources */,
 				3FE9200416A9109E00D1238A /* nano_malloc.c in Sources */,
 				3FE9200616A9109E00D1238A /* stack_logging_disk.c in Sources */,
 				C95742911BF419DF0027269A /* magazine_tiny.c in Sources */,
+				B6D5C7F4202E26F90035E376 /* resolver.c in Sources */,
 			);
 			runOnlyForDeploymentPostprocessing = 0;
 		};
@@ -869,6 +1173,62 @@
 			buildActionMask = 2147483647;
 			files = (
 				925383DA1BD03D5100F745DB /* stress_test.c in Sources */,
+			);
+			runOnlyForDeploymentPostprocessing = 0;
+		};
+		B629CF2C202BB337007719B9 /* Sources */ = {
+			isa = PBXSourcesBuildPhase;
+			buildActionMask = 2147483647;
+			files = (
+				B629CF2D202BB337007719B9 /* radix_tree.c in Sources */,
+				B629CF2E202BB337007719B9 /* bitarray.c in Sources */,
+				B629CF2F202BB337007719B9 /* purgeable_malloc.c in Sources */,
+				B6D5C7F3202E26F90035E376 /* resolver.c in Sources */,
+				B629CF30202BB337007719B9 /* magazine_large.c in Sources */,
+				B629CF31202BB337007719B9 /* magazine_malloc.c in Sources */,
+				B629CF32202BB337007719B9 /* empty.s in Sources */,
+				B629CF33202BB337007719B9 /* magazine_small.c in Sources */,
+				B629CF34202BB337007719B9 /* legacy_malloc.c in Sources */,
+				B629CF35202BB337007719B9 /* magmallocProvider.d in Sources */,
+				B629CF36202BB337007719B9 /* malloc.c in Sources */,
+				B629CF37202BB337007719B9 /* frozen_malloc.c in Sources */,
+				B629CF38202BB337007719B9 /* nanov2_malloc.c in Sources */,
+				B629CF39202BB337007719B9 /* nano_malloc.c in Sources */,
+				B629CF3A202BB337007719B9 /* stack_logging_disk.c in Sources */,
+				B629CF3B202BB337007719B9 /* magazine_tiny.c in Sources */,
+				B629CF3C202BB337007719B9 /* nano_malloc_common.c in Sources */,
+			);
+			runOnlyForDeploymentPostprocessing = 0;
+		};
+		B6910F66202B630D00FF2EB0 /* Sources */ = {
+			isa = PBXSourcesBuildPhase;
+			buildActionMask = 2147483647;
+			files = (
+				B6910F67202B630D00FF2EB0 /* radix_tree.c in Sources */,
+				B6910F68202B630D00FF2EB0 /* bitarray.c in Sources */,
+				B6910F69202B630D00FF2EB0 /* purgeable_malloc.c in Sources */,
+				B6D5C7F2202E26F80035E376 /* resolver.c in Sources */,
+				B6910F6A202B630D00FF2EB0 /* magazine_large.c in Sources */,
+				B6910F6B202B630D00FF2EB0 /* magazine_malloc.c in Sources */,
+				B6910F6C202B630D00FF2EB0 /* empty.s in Sources */,
+				B6910F6D202B630D00FF2EB0 /* magazine_small.c in Sources */,
+				B6910F6E202B630D00FF2EB0 /* legacy_malloc.c in Sources */,
+				B6910F6F202B630D00FF2EB0 /* magmallocProvider.d in Sources */,
+				B6910F70202B630D00FF2EB0 /* malloc.c in Sources */,
+				B6910F71202B630D00FF2EB0 /* frozen_malloc.c in Sources */,
+				B629CF28202BA149007719B9 /* nanov2_malloc.c in Sources */,
+				B6910F73202B630D00FF2EB0 /* nano_malloc.c in Sources */,
+				B6910F74202B630D00FF2EB0 /* stack_logging_disk.c in Sources */,
+				B6910F75202B630D00FF2EB0 /* magazine_tiny.c in Sources */,
+				B6910F76202B630D00FF2EB0 /* nano_malloc_common.c in Sources */,
+			);
+			runOnlyForDeploymentPostprocessing = 0;
+		};
+		B6D2ED4A2007D76F007AF994 /* Sources */ = {
+			isa = PBXSourcesBuildPhase;
+			buildActionMask = 2147483647;
+			files = (
+				B6D2ED572007D91A007AF994 /* malloc_replay.cpp in Sources */,
 			);
 			runOnlyForDeploymentPostprocessing = 0;
 		};
@@ -879,6 +1239,7 @@
 				088C4D841D1AF16F005C6B36 /* radix_tree.c in Sources */,
 				C0CE45311C52C90500C24048 /* bitarray.c in Sources */,
 				C0CE45321C52C90500C24048 /* purgeable_malloc.c in Sources */,
+				B6D5C7F5202E26FA0035E376 /* resolver.c in Sources */,
 				C0CE45331C52C90500C24048 /* magazine_large.c in Sources */,
 				C0CE45341C52C90500C24048 /* magazine_malloc.c in Sources */,
 				C9ABCA051CB6FC6800ECB399 /* empty.s in Sources */,
@@ -887,9 +1248,12 @@
 				C0CE45371C52C90500C24048 /* magmallocProvider.d in Sources */,
 				C0CE45381C52C90500C24048 /* malloc.c in Sources */,
 				C0CE45391C52C90500C24048 /* frozen_malloc.c in Sources */,
+				B68B7FA71FCDD9B200BAD1AA /* nanov2_malloc.c in Sources */,
+				B66C71DC2034BFD40047E265 /* malloc_common.c in Sources */,
 				C0CE453A1C52C90500C24048 /* nano_malloc.c in Sources */,
 				C0CE453C1C52C90500C24048 /* stack_logging_disk.c in Sources */,
 				C0CE453D1C52C90500C24048 /* magazine_tiny.c in Sources */,
+				B68B7FA11FCDCBE800BAD1AA /* nano_malloc_common.c in Sources */,
 			);
 			runOnlyForDeploymentPostprocessing = 0;
 		};
@@ -916,6 +1280,21 @@
 			target = 925383D41BD03C0500F745DB /* darwintests */;
 			targetProxy = 925383D81BD03D0000F745DB /* PBXContainerItemProxy */;
 		};
+		B60A579820093093006215CB /* PBXTargetDependency */ = {
+			isa = PBXTargetDependency;
+			target = B6D2ED492007D76F007AF994 /* libmalloc_replay */;
+			targetProxy = B60A579720093093006215CB /* PBXContainerItemProxy */;
+		};
+		B629CF44202BB389007719B9 /* PBXTargetDependency */ = {
+			isa = PBXTargetDependency;
+			target = B629CF2B202BB337007719B9 /* libmalloc_alt */;
+			targetProxy = B629CF43202BB389007719B9 /* PBXContainerItemProxy */;
+		};
+		B676F4AC202B66EF00933F6D /* PBXTargetDependency */ = {
+			isa = PBXTargetDependency;
+			target = B6910F65202B630D00FF2EB0 /* libmalloc_mp */;
+			targetProxy = B676F4AB202B66EF00933F6D /* PBXContainerItemProxy */;
+		};
 		C0CE45501C52CCBD00C24048 /* PBXTargetDependency */ = {
 			isa = PBXTargetDependency;
 			target = C0CE452F1C52C90500C24048 /* libmalloc_static */;
@@ -940,7 +1319,7 @@
 		};
 		3FE91FEB16A90AEC00D1238A /* Debug */ = {
 			isa = XCBuildConfiguration;
-			baseConfigurationReference = 3FE91FE016A90A8D00D1238A /* libmalloc.xcconfig */;
+			baseConfigurationReference = B629CF29202BA3C2007719B9 /* libmalloc_resolver.xcconfig */;
 			buildSettings = {
 				COMBINE_HIDPI_IMAGES = YES;
 			};
@@ -948,7 +1327,7 @@
 		};
 		3FE91FEC16A90AEC00D1238A /* Release */ = {
 			isa = XCBuildConfiguration;
-			baseConfigurationReference = 3FE91FE016A90A8D00D1238A /* libmalloc.xcconfig */;
+			baseConfigurationReference = B629CF29202BA3C2007719B9 /* libmalloc_resolver.xcconfig */;
 			buildSettings = {
 				COMBINE_HIDPI_IMAGES = YES;
 			};
@@ -1079,6 +1458,124 @@
 			};
 			name = Release;
 		};
+		B60A57942009307E006215CB /* Debug */ = {
+			isa = XCBuildConfiguration;
+			buildSettings = {
+				CODE_SIGN_STYLE = Automatic;
+				PRODUCT_NAME = "$(TARGET_NAME)";
+			};
+			name = Debug;
+		};
+		B60A57952009307E006215CB /* Release */ = {
+			isa = XCBuildConfiguration;
+			buildSettings = {
+				CODE_SIGN_STYLE = Automatic;
+				PRODUCT_NAME = "$(TARGET_NAME)";
+			};
+			name = Release;
+		};
+		B629CF40202BB337007719B9 /* Debug */ = {
+			isa = XCBuildConfiguration;
+			baseConfigurationReference = B66AA658202A70B00019D607 /* libmalloc_resolved.xcconfig */;
+			buildSettings = {
+				COMBINE_HIDPI_IMAGES = YES;
+				PRODUCT_NAME = "$(PRODUCT_NAME)";
+				RESOLVED_VARIANT = alt;
+			};
+			name = Debug;
+		};
+		B629CF41202BB337007719B9 /* Release */ = {
+			isa = XCBuildConfiguration;
+			baseConfigurationReference = B66AA658202A70B00019D607 /* libmalloc_resolved.xcconfig */;
+			buildSettings = {
+				COMBINE_HIDPI_IMAGES = YES;
+				PRODUCT_NAME = "$(PRODUCT_NAME)";
+				RESOLVED_VARIANT = alt;
+			};
+			name = Release;
+		};
+		B6910F87202B630D00FF2EB0 /* Debug */ = {
+			isa = XCBuildConfiguration;
+			baseConfigurationReference = B66AA658202A70B00019D607 /* libmalloc_resolved.xcconfig */;
+			buildSettings = {
+				COMBINE_HIDPI_IMAGES = YES;
+				PRODUCT_NAME = "$(PRODUCT_NAME)";
+				RESOLVED_VARIANT = mp;
+			};
+			name = Debug;
+		};
+		B6910F88202B630D00FF2EB0 /* Release */ = {
+			isa = XCBuildConfiguration;
+			baseConfigurationReference = B66AA658202A70B00019D607 /* libmalloc_resolved.xcconfig */;
+			buildSettings = {
+				COMBINE_HIDPI_IMAGES = YES;
+				PRODUCT_NAME = "$(PRODUCT_NAME)";
+				RESOLVED_VARIANT = mp;
+			};
+			name = Release;
+		};
+		B6D2ED4F2007D76F007AF994 /* Debug */ = {
+			isa = XCBuildConfiguration;
+			buildSettings = {
+				CLANG_CXX_LANGUAGE_STANDARD = "c++0x";
+				CLANG_WARN_BOOL_CONVERSION = YES;
+				CLANG_WARN_CONSTANT_CONVERSION = YES;
+				CLANG_WARN_EMPTY_BODY = YES;
+				CLANG_WARN_ENUM_CONVERSION = YES;
+				CLANG_WARN_INT_CONVERSION = YES;
+				CLANG_WARN_UNREACHABLE_CODE = YES;
+				COPY_PHASE_STRIP = NO;
+				FRAMEWORK_SEARCH_PATHS = (
+					"$(SDKROOT)/System/Library/PrivateFrameworks",
+					"$(SDKROOT)$(SYSTEM_LIBRARY_DIR)/PrivateFrameworks",
+				);
+				GCC_OPTIMIZATION_LEVEL = 0;
+				GCC_PREPROCESSOR_DEFINITIONS = (
+					"DEBUG=1",
+					"$(inherited)",
+				);
+				GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
+				GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
+				GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
+				GCC_WARN_UNUSED_FUNCTION = YES;
+				GCC_WARN_UNUSED_VARIABLE = YES;
+				HEADER_SEARCH_PATHS = "$(SRCROOT)/src";
+				PRODUCT_NAME = "$(TARGET_NAME)";
+				SDKROOT = macosx.internal;
+				SUPPORTED_PLATFORMS = "macosx iphoneos iphonesimulator appletvos appletvsimulator watchos watchsimulator";
+				VALID_ARCHS = "armv6 armv7 arm64 arm64_32 armv7k x86_64 x86_64h";
+			};
+			name = Debug;
+		};
+		B6D2ED502007D76F007AF994 /* Release */ = {
+			isa = XCBuildConfiguration;
+			buildSettings = {
+				CLANG_CXX_LANGUAGE_STANDARD = "c++0x";
+				CLANG_WARN_BOOL_CONVERSION = YES;
+				CLANG_WARN_CONSTANT_CONVERSION = YES;
+				CLANG_WARN_EMPTY_BODY = YES;
+				CLANG_WARN_ENUM_CONVERSION = YES;
+				CLANG_WARN_INT_CONVERSION = YES;
+				CLANG_WARN_UNREACHABLE_CODE = YES;
+				DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
+				FRAMEWORK_SEARCH_PATHS = (
+					"$(SDKROOT)/System/Library/PrivateFrameworks",
+					"$(SDKROOT)$(SYSTEM_LIBRARY_DIR)/PrivateFrameworks",
+				);
+				GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
+				GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
+				GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
+				GCC_WARN_UNUSED_FUNCTION = YES;
+				GCC_WARN_UNUSED_VARIABLE = YES;
+				HEADER_SEARCH_PATHS = "$(SRCROOT)/src";
+				PRODUCT_NAME = "$(TARGET_NAME)";
+				SDKROOT = macosx.internal;
+				"SKIP_INSTALL[sdk=iphonesimulator*]" = YES;
+				SUPPORTED_PLATFORMS = "macosx iphoneos iphonesimulator appletvos appletvsimulator watchos watchsimulator";
+				VALID_ARCHS = "armv6 armv7 arm64 arm64_32 armv7k x86_64 x86_64h";
+			};
+			name = Release;
+		};
 		C0CE454A1C52C90500C24048 /* Debug */ = {
 			isa = XCBuildConfiguration;
 			baseConfigurationReference = C0CE450E1C52B9E300C24048 /* libmalloc_static.xcconfig */;
@@ -1172,6 +1669,42 @@
 			defaultConfigurationIsVisible = 0;
 			defaultConfigurationName = Release;
 		};
+		B60A57962009307E006215CB /* Build configuration list for PBXAggregateTarget "executables" */ = {
+			isa = XCConfigurationList;
+			buildConfigurations = (
+				B60A57942009307E006215CB /* Debug */,
+				B60A57952009307E006215CB /* Release */,
+			);
+			defaultConfigurationIsVisible = 0;
+			defaultConfigurationName = Release;
+		};
+		B629CF3F202BB337007719B9 /* Build configuration list for PBXNativeTarget "libmalloc_alt" */ = {
+			isa = XCConfigurationList;
+			buildConfigurations = (
+				B629CF40202BB337007719B9 /* Debug */,
+				B629CF41202BB337007719B9 /* Release */,
+			);
+			defaultConfigurationIsVisible = 0;
+			defaultConfigurationName = Release;
+		};
+		B6910F86202B630D00FF2EB0 /* Build configuration list for PBXNativeTarget "libmalloc_mp" */ = {
+			isa = XCConfigurationList;
+			buildConfigurations = (
+				B6910F87202B630D00FF2EB0 /* Debug */,
+				B6910F88202B630D00FF2EB0 /* Release */,
+			);
+			defaultConfigurationIsVisible = 0;
+			defaultConfigurationName = Release;
+		};
+		B6D2ED4E2007D76F007AF994 /* Build configuration list for PBXNativeTarget "libmalloc_replay" */ = {
+			isa = XCConfigurationList;
+			buildConfigurations = (
+				B6D2ED4F2007D76F007AF994 /* Debug */,
+				B6D2ED502007D76F007AF994 /* Release */,
+			);
+			defaultConfigurationIsVisible = 0;
+			defaultConfigurationName = Release;
+		};
 		C0CE45491C52C90500C24048 /* Build configuration list for PBXNativeTarget "libmalloc_static" */ = {
 			isa = XCConfigurationList;
 			buildConfigurations = (