From http://www.jwz.org/xscreensaver/xscreensaver-5.30.tar.gz
[xscreensaver] / xscreensaver.xcodeproj / project.pbxproj
index cf9adb8824911df36d022b4dc3b21187f1717745..b1af34a93dbfd3ec711137382487ac3426302d55 100644 (file)
                                AF7778FB09B6604600EA3033 /* PBXTargetDependency */,
                                AF7778F909B6604600EA3033 /* PBXTargetDependency */,
                                AF7778F709B6604600EA3033 /* PBXTargetDependency */,
+                               AF68A49E19196EA000D41CD1 /* PBXTargetDependency */,
                                AF7778F309B6604600EA3033 /* PBXTargetDependency */,
                                AF7778F109B6604600EA3033 /* PBXTargetDependency */,
                                AF7778EF09B6604600EA3033 /* PBXTargetDependency */,
                        buildPhases = (
                        );
                        dependencies = (
+                               AF39E2BA198A16920064A58D /* PBXTargetDependency */,
                                AFF3CA0117CCAE210028F240 /* PBXTargetDependency */,
                                AF777A6509B660B700EA3033 /* PBXTargetDependency */,
                                AF777A6309B660B700EA3033 /* PBXTargetDependency */,
                                AF7779FD09B660B100EA3033 /* PBXTargetDependency */,
                                AF7779FB09B660B100EA3033 /* PBXTargetDependency */,
                                AF7779F909B660B100EA3033 /* PBXTargetDependency */,
+                               AFFAB33519158F1E0020F021 /* PBXTargetDependency */,
                                AF7779F709B660B100EA3033 /* PBXTargetDependency */,
                                AF7779F509B660B100EA3033 /* PBXTargetDependency */,
                                AFBFE7401786405E00432B21 /* PBXTargetDependency */,
                        );
                        dependencies = (
                                AFCAD5F90992DFE00009617A /* PBXTargetDependency */,
+                               AF36340118540D050086A439 /* PBXTargetDependency */,
                                AF480D60098EED6900FB32B8 /* PBXTargetDependency */,
                                AF480D5E098EED6900FB32B8 /* PBXTargetDependency */,
                                AF480D5C098EED6900FB32B8 /* PBXTargetDependency */,
                AF0FAF2809CA712600EE1051 /* xscreensaver-getimage-file in Resources */ = {isa = PBXBuildFile; fileRef = AF0FAF1209CA712600EE1051 /* xscreensaver-getimage-file */; };
                AF0FAF2909CA712600EE1051 /* xscreensaver-getimage-file in Resources */ = {isa = PBXBuildFile; fileRef = AF0FAF1209CA712600EE1051 /* xscreensaver-getimage-file */; };
                AF0FAF3C159BAC7C00BCE2F7 /* CoreText.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF0FAF3B159BAC7B00BCE2F7 /* CoreText.framework */; };
-               AF1A17660D6D6EE3008AF328 /* xscreensaver-getimage-file in Resources */ = {isa = PBXBuildFile; fileRef = AF0FAF1209CA712600EE1051 /* xscreensaver-getimage-file */; };
                AF1A17680D6D6EE3008AF328 /* XScreenSaverSubclass.m in Sources */ = {isa = PBXBuildFile; fileRef = AF9CC7A0099580E70075E99B /* XScreenSaverSubclass.m */; };
                AF1A177F0D6D6F3E008AF328 /* lcdscrub.c in Sources */ = {isa = PBXBuildFile; fileRef = AF1A177E0D6D6F3E008AF328 /* lcdscrub.c */; };
                AF1A17810D6D6F62008AF328 /* lcdscrub.xml in Resources */ = {isa = PBXBuildFile; fileRef = AF1A17800D6D6F62008AF328 /* lcdscrub.xml */; };
+               AF1AD9E318500F9F00932759 /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1058C7A1FEA54F0111CA2CBB /* Cocoa.framework */; };
+               AF1ADA141850132600932759 /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = 29B97316FDCFA39411CA2CEA /* main.m */; };
+               AF1ADA161850157400932759 /* Updater.xib in Resources */ = {isa = PBXBuildFile; fileRef = AF1ADA151850157400932759 /* Updater.xib */; };
+               AF1ADA181850180E00932759 /* Sparkle.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF1ADA171850180E00932759 /* Sparkle.framework */; };
+               AF1ADA1A1850186B00932759 /* Sparkle.framework in CopyFiles */ = {isa = PBXBuildFile; fileRef = AF1ADA171850180E00932759 /* Sparkle.framework */; };
+               AF1ADA1B18501B3D00932759 /* SaverRunner.icns in Resources */ = {isa = PBXBuildFile; fileRef = AF2D522513E954A0002AA818 /* SaverRunner.icns */; };
+               AF1ADA1F18504A4F00932759 /* ScreenSaver.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF976ED30989BF59001F8B92 /* ScreenSaver.framework */; };
                AF1FD713158FF96500C40F17 /* libjwxyz.a in Frameworks */ = {isa = PBXBuildFile; fileRef = AF4808C1098C3B6C00FB32B8 /* libjwxyz.a */; };
                AF1FD714158FF96500C40F17 /* ScreenSaver.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF976ED30989BF59001F8B92 /* ScreenSaver.framework */; };
                AF1FD715158FF96500C40F17 /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1058C7A1FEA54F0111CA2CBB /* Cocoa.framework */; };
                AF35E8900E63823600691F2F /* XScreenSaverSubclass.m in Sources */ = {isa = PBXBuildFile; fileRef = AF9CC7A0099580E70075E99B /* XScreenSaverSubclass.m */; };
                AF35EB240E63829600691F2F /* jigsaw.xml in Resources */ = {isa = PBXBuildFile; fileRef = AFC258CF0988A468000655EE /* jigsaw.xml */; };
                AF35EB260E6382BA00691F2F /* jigsaw.c in Sources */ = {isa = PBXBuildFile; fileRef = AF35EB250E6382BA00691F2F /* jigsaw.c */; };
+               AF3633FC18530DD90086A439 /* sparkle_dsa_pub.pem in Resources */ = {isa = PBXBuildFile; fileRef = AF3633F918530DD90086A439 /* sparkle_dsa_pub.pem */; };
+               AF3633FD18530DD90086A439 /* Updater.m in Sources */ = {isa = PBXBuildFile; fileRef = AF3633FB18530DD90086A439 /* Updater.m */; };
                AF39483E15A164680000FFCD /* jigsaw.c in Sources */ = {isa = PBXBuildFile; fileRef = AF35EB250E6382BA00691F2F /* jigsaw.c */; settings = {COMPILER_FLAGS = "-DUSE_GL"; }; };
                AF39483F15A1647A0000FFCD /* jigsaw.xml in Resources */ = {isa = PBXBuildFile; fileRef = AFC258CF0988A468000655EE /* jigsaw.xml */; };
+               AF39E289198A11F60064A58D /* XScreenSaverSubclass.m in Sources */ = {isa = PBXBuildFile; fileRef = AF9CC7A0099580E70075E99B /* XScreenSaverSubclass.m */; };
+               AF39E28B198A11F60064A58D /* libjwxyz.a in Frameworks */ = {isa = PBXBuildFile; fileRef = AF4808C1098C3B6C00FB32B8 /* libjwxyz.a */; };
+               AF39E28C198A11F60064A58D /* ScreenSaver.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF976ED30989BF59001F8B92 /* ScreenSaver.framework */; };
+               AF39E28D198A11F60064A58D /* QuartzCore.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF2C31E515C0F7FE007A6896 /* QuartzCore.framework */; };
+               AF39E28E198A11F60064A58D /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1058C7A1FEA54F0111CA2CBB /* Cocoa.framework */; };
+               AF39E28F198A11F60064A58D /* Carbon.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF48112B0990A2C700FB32B8 /* Carbon.framework */; };
+               AF39E290198A11F60064A58D /* libz.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = AF78369617DB9F25003B9FC0 /* libz.dylib */; };
+               AF39E2AA198A13F50064A58D /* robot-wireframe.c in Sources */ = {isa = PBXBuildFile; fileRef = AF39E2A0198A13F50064A58D /* robot-wireframe.c */; };
+               AF39E2AB198A13F50064A58D /* winduprobot.c in Sources */ = {isa = PBXBuildFile; fileRef = AF39E2A1198A13F50064A58D /* winduprobot.c */; };
+               AF39E2AD198A15820064A58D /* winduprobot.xml in Resources */ = {isa = PBXBuildFile; fileRef = AF39E2AC198A15820064A58D /* winduprobot.xml */; };
+               AF39E2AE198A15820064A58D /* winduprobot.xml in Resources */ = {isa = PBXBuildFile; fileRef = AF39E2AC198A15820064A58D /* winduprobot.xml */; };
+               AF39E2B7198A15EE0064A58D /* robot-wireframe.c in Sources */ = {isa = PBXBuildFile; fileRef = AF39E2A0198A13F50064A58D /* robot-wireframe.c */; settings = {COMPILER_FLAGS = "-DUSE_GL"; }; };
+               AF39E2B8198A15EE0064A58D /* winduprobot.c in Sources */ = {isa = PBXBuildFile; fileRef = AF39E2A1198A13F50064A58D /* winduprobot.c */; settings = {COMPILER_FLAGS = "-DUSE_GL"; }; };
                AF3C714B0D624BF50030CC0D /* XScreenSaverSubclass.m in Sources */ = {isa = PBXBuildFile; fileRef = AF9CC7A0099580E70075E99B /* XScreenSaverSubclass.m */; };
                AF3C715E0D624C600030CC0D /* hypnowheel.c in Sources */ = {isa = PBXBuildFile; fileRef = AF3C715D0D624C600030CC0D /* hypnowheel.c */; };
                AF3C71600D624C7C0030CC0D /* hypnowheel.xml in Resources */ = {isa = PBXBuildFile; fileRef = AF3C715F0D624C7C0030CC0D /* hypnowheel.xml */; };
                AF4A3450102A593600A81B2A /* XScreenSaverSubclass.m in Sources */ = {isa = PBXBuildFile; fileRef = AF9CC7A0099580E70075E99B /* XScreenSaverSubclass.m */; };
                AF4A3462102A59EB00A81B2A /* surfaces.xml in Resources */ = {isa = PBXBuildFile; fileRef = AF4A3461102A59EB00A81B2A /* surfaces.xml */; };
                AF4A3464102A5A0E00A81B2A /* surfaces.c in Sources */ = {isa = PBXBuildFile; fileRef = AF4A3463102A5A0E00A81B2A /* surfaces.c */; };
+               AF4A6692191F7CAE00C74753 /* xscreensaver-getimage-file in Resources */ = {isa = PBXBuildFile; fileRef = AF0FAF1209CA712600EE1051 /* xscreensaver-getimage-file */; };
                AF4A8CA010B609B50074B062 /* xscreensaver-getimage-file in Resources */ = {isa = PBXBuildFile; fileRef = AF0FAF1209CA712600EE1051 /* xscreensaver-getimage-file */; };
                AF4FD6EC0CE7A486005EE58E /* XScreenSaverSubclass.m in Sources */ = {isa = PBXBuildFile; fileRef = AF9CC7A0099580E70075E99B /* XScreenSaverSubclass.m */; };
                AF4FD7010CE7A577005EE58E /* lockward.c in Sources */ = {isa = PBXBuildFile; fileRef = AF4FD7000CE7A577005EE58E /* lockward.c */; };
                AF6427BA09A2DF09000F4CD4 /* bubbles.xml in Resources */ = {isa = PBXBuildFile; fileRef = AFC258800988A468000655EE /* bubbles.xml */; };
                AF6427BE09A2DF47000F4CD4 /* bubbles-default.c in Sources */ = {isa = PBXBuildFile; fileRef = AF6427BB09A2DF47000F4CD4 /* bubbles-default.c */; };
                AF6427BF09A2DF47000F4CD4 /* bubbles.c in Sources */ = {isa = PBXBuildFile; fileRef = AF6427BC09A2DF47000F4CD4 /* bubbles.c */; };
+               AF68A48519196CF800D41CD1 /* XScreenSaverSubclass.m in Sources */ = {isa = PBXBuildFile; fileRef = AF9CC7A0099580E70075E99B /* XScreenSaverSubclass.m */; };
+               AF68A48719196CF800D41CD1 /* libjwxyz.a in Frameworks */ = {isa = PBXBuildFile; fileRef = AF4808C1098C3B6C00FB32B8 /* libjwxyz.a */; };
+               AF68A48819196CF800D41CD1 /* ScreenSaver.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF976ED30989BF59001F8B92 /* ScreenSaver.framework */; };
+               AF68A48919196CF800D41CD1 /* QuartzCore.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF2C31E515C0F7FE007A6896 /* QuartzCore.framework */; };
+               AF68A48A19196CF800D41CD1 /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1058C7A1FEA54F0111CA2CBB /* Cocoa.framework */; };
+               AF68A48B19196CF800D41CD1 /* Carbon.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF48112B0990A2C700FB32B8 /* Carbon.framework */; };
+               AF68A48C19196CF800D41CD1 /* libz.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = AF78369617DB9F25003B9FC0 /* libz.dylib */; };
+               AF68A49719196E3E00D41CD1 /* tessellimage.xml in Resources */ = {isa = PBXBuildFile; fileRef = AF68A49419196E3E00D41CD1 /* tessellimage.xml */; };
+               AF68A49819196E3E00D41CD1 /* tessellimage.xml in Resources */ = {isa = PBXBuildFile; fileRef = AF68A49419196E3E00D41CD1 /* tessellimage.xml */; };
+               AF68A49919196E3E00D41CD1 /* tessellimage.c in Sources */ = {isa = PBXBuildFile; fileRef = AF68A49519196E3E00D41CD1 /* tessellimage.c */; };
+               AF68A49A19196E3E00D41CD1 /* tessellimage.c in Sources */ = {isa = PBXBuildFile; fileRef = AF68A49519196E3E00D41CD1 /* tessellimage.c */; };
+               AF68A49B19196E3E00D41CD1 /* delaunay.c in Sources */ = {isa = PBXBuildFile; fileRef = AF68A49619196E3E00D41CD1 /* delaunay.c */; };
+               AF68A49C19196E3E00D41CD1 /* delaunay.c in Sources */ = {isa = PBXBuildFile; fileRef = AF68A49619196E3E00D41CD1 /* delaunay.c */; };
                AF69640B0E4FE3470085DBCE /* teapot.c in Sources */ = {isa = PBXBuildFile; fileRef = AFC211930E4E30C800D87B6E /* teapot.c */; };
+               AF72284818D943DF000D36EC /* iSaverRunner76.png in Resources */ = {isa = PBXBuildFile; fileRef = AF72284518D943DF000D36EC /* iSaverRunner76.png */; };
+               AF72284918D943DF000D36EC /* iSaverRunner120.png in Resources */ = {isa = PBXBuildFile; fileRef = AF72284618D943DF000D36EC /* iSaverRunner120.png */; };
+               AF72284A18D943DF000D36EC /* iSaverRunner152.png in Resources */ = {isa = PBXBuildFile; fileRef = AF72284718D943DF000D36EC /* iSaverRunner152.png */; };
                AF7511051782B5B900380EA1 /* XScreenSaverSubclass.m in Sources */ = {isa = PBXBuildFile; fileRef = AF9CC7A0099580E70075E99B /* XScreenSaverSubclass.m */; };
                AF7511081782B5B900380EA1 /* libjwxyz.a in Frameworks */ = {isa = PBXBuildFile; fileRef = AF4808C1098C3B6C00FB32B8 /* libjwxyz.a */; };
                AF7511091782B5B900380EA1 /* ScreenSaver.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF976ED30989BF59001F8B92 /* ScreenSaver.framework */; };
                AF9D4E0409B5BC85006E59CF /* apple2.xml in Resources */ = {isa = PBXBuildFile; fileRef = AFC2586F0988A468000655EE /* apple2.xml */; };
                AF9D4E0609B5BC9D006E59CF /* apple2-main.c in Sources */ = {isa = PBXBuildFile; fileRef = AF9D4E0509B5BC9D006E59CF /* apple2-main.c */; };
                AF9D4E2209B63413006E59CF /* jwxyz-timers.m in Sources */ = {isa = PBXBuildFile; fileRef = AF9D4E2109B63413006E59CF /* jwxyz-timers.m */; };
+               AF9E7EC9190F4C4000A8B01F /* enable_gc.c in Sources */ = {isa = PBXBuildFile; fileRef = AF9E7EC8190F4C4000A8B01F /* enable_gc.c */; };
                AFA339350B058505002B0E7D /* XScreenSaverSubclass.m in Sources */ = {isa = PBXBuildFile; fileRef = AF9CC7A0099580E70075E99B /* XScreenSaverSubclass.m */; };
                AFA33BAF0B0585F7002B0E7D /* webcollage-cocoa.m in Sources */ = {isa = PBXBuildFile; fileRef = AFA33BAE0B0585F7002B0E7D /* webcollage-cocoa.m */; };
                AFA33BB00B05860F002B0E7D /* webcollage.xml in Resources */ = {isa = PBXBuildFile; fileRef = AFC2592C0988A469000655EE /* webcollage.xml */; };
                AFB8A69B1782BA34004EDB85 /* kaleidocycle.xml in Resources */ = {isa = PBXBuildFile; fileRef = AFB8A69A1782BA34004EDB85 /* kaleidocycle.xml */; };
                AFB8A69C1782BF6C004EDB85 /* kaleidocycle.xml in Resources */ = {isa = PBXBuildFile; fileRef = AFB8A69A1782BA34004EDB85 /* kaleidocycle.xml */; };
                AFB8A69D1782BFA6004EDB85 /* kaleidocycle.c in Sources */ = {isa = PBXBuildFile; fileRef = AF7511141782B64300380EA1 /* kaleidocycle.c */; settings = {COMPILER_FLAGS = "-DUSE_GL"; }; };
+               AFBE744019A7C6930018AA35 /* robot.c in Sources */ = {isa = PBXBuildFile; fileRef = AFBE743F19A7C6930018AA35 /* robot.c */; };
+               AFBE744119A7C6EF0018AA35 /* robot.c in Sources */ = {isa = PBXBuildFile; fileRef = AFBE743F19A7C6930018AA35 /* robot.c */; settings = {COMPILER_FLAGS = "-DUSE_GL"; }; };
                AFBF893E0E41D930006A2D66 /* fps.c in Sources */ = {isa = PBXBuildFile; fileRef = AFBF893C0E41D930006A2D66 /* fps.c */; };
                AFBF893F0E41D930006A2D66 /* fps.h in Headers */ = {isa = PBXBuildFile; fileRef = AFBF893D0E41D930006A2D66 /* fps.h */; };
                AFBF89AF0E423FC3006A2D66 /* fps-gl.c in Sources */ = {isa = PBXBuildFile; fileRef = AFBF89AE0E423FC3006A2D66 /* fps-gl.c */; };
                AFCF4545159878C300E6E8CC /* polyhedra-gl.c in Sources */ = {isa = PBXBuildFile; fileRef = AFA561B209937DCB00F3E977 /* polyhedra-gl.c */; settings = {COMPILER_FLAGS = "-DUSE_GL"; }; };
                AFCF4546159878C300E6E8CC /* polyhedra.c in Sources */ = {isa = PBXBuildFile; fileRef = AFA561B309937DCC00F3E977 /* polyhedra.c */; settings = {COMPILER_FLAGS = "-DUSE_GL"; }; };
                AFCF4547159878D500E6E8CC /* polyhedra.xml in Resources */ = {isa = PBXBuildFile; fileRef = AFC258F70988A469000655EE /* polyhedra.xml */; };
+               AFCF509C198A1861005B0DB1 /* involute.c in Sources */ = {isa = PBXBuildFile; fileRef = AFE6A16A0CDD78EA002805BF /* involute.c */; };
+               AFCF509D198C3612005B0DB1 /* xscreensaver-text in Resources */ = {isa = PBXBuildFile; fileRef = AF0FAF0B09CA6FF900EE1051 /* xscreensaver-text */; };
                AFCFF1D90CE4517C00C7D111 /* involute.c in Sources */ = {isa = PBXBuildFile; fileRef = AFE6A16A0CDD78EA002805BF /* involute.c */; };
                AFCFF1DA0CE4518B00C7D111 /* tube.c in Sources */ = {isa = PBXBuildFile; fileRef = AF480ED2098F652A00FB32B8 /* tube.c */; };
                AFCFF1DB0CE451A300C7D111 /* normals.c in Sources */ = {isa = PBXBuildFile; fileRef = AFA55A93099336D800F3E977 /* normals.c */; };
                AFD573630997411200BA26F7 /* XScreenSaverSubclass.m in Sources */ = {isa = PBXBuildFile; fileRef = AF9CC7A0099580E70075E99B /* XScreenSaverSubclass.m */; };
                AFD573700997418D00BA26F7 /* strange.xml in Resources */ = {isa = PBXBuildFile; fileRef = AFC2591D0988A469000655EE /* strange.xml */; };
                AFD57372099741A200BA26F7 /* strange.c in Sources */ = {isa = PBXBuildFile; fileRef = AFD57371099741A200BA26F7 /* strange.c */; };
+               AFDA11251934424D003D397F /* aligned_malloc.c in Sources */ = {isa = PBXBuildFile; fileRef = AFDA11211934424D003D397F /* aligned_malloc.c */; };
+               AFDA11261934424D003D397F /* aligned_malloc.h in Headers */ = {isa = PBXBuildFile; fileRef = AFDA11221934424D003D397F /* aligned_malloc.h */; };
+               AFDA11271934424D003D397F /* thread_util.c in Sources */ = {isa = PBXBuildFile; fileRef = AFDA11231934424D003D397F /* thread_util.c */; };
+               AFDA11281934424D003D397F /* thread_util.h in Headers */ = {isa = PBXBuildFile; fileRef = AFDA11241934424D003D397F /* thread_util.h */; };
                AFDA6595178A52B70070D24B /* XScreenSaverSubclass.m in Sources */ = {isa = PBXBuildFile; fileRef = AF9CC7A0099580E70075E99B /* XScreenSaverSubclass.m */; };
                AFDA6597178A52B70070D24B /* libjwxyz.a in Frameworks */ = {isa = PBXBuildFile; fileRef = AF4808C1098C3B6C00FB32B8 /* libjwxyz.a */; };
                AFDA6598178A52B70070D24B /* ScreenSaver.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF976ED30989BF59001F8B92 /* ScreenSaver.framework */; };
                AFE6A18A0CDD7B2E002805BF /* involute.c in Sources */ = {isa = PBXBuildFile; fileRef = AFE6A16A0CDD78EA002805BF /* involute.c */; };
                AFE6A40C0CDD7BC3002805BF /* moebiusgears.c in Sources */ = {isa = PBXBuildFile; fileRef = AFE6A40B0CDD7BC3002805BF /* moebiusgears.c */; };
                AFE6A40E0CDD7BDC002805BF /* moebiusgears.xml in Resources */ = {isa = PBXBuildFile; fileRef = AFE6A40D0CDD7BDC002805BF /* moebiusgears.xml */; };
-               AFE6A4200CDD7FAA002805BF /* xscreensaver-getimage-file in Resources */ = {isa = PBXBuildFile; fileRef = AF0FAF1209CA712600EE1051 /* xscreensaver-getimage-file */; };
                AFE6A4220CDD7FAA002805BF /* XScreenSaverSubclass.m in Sources */ = {isa = PBXBuildFile; fileRef = AF9CC7A0099580E70075E99B /* XScreenSaverSubclass.m */; };
                AFE6A4350CDD800F002805BF /* abstractile.c in Sources */ = {isa = PBXBuildFile; fileRef = AFE6A4340CDD800F002805BF /* abstractile.c */; };
                AFE6A4370CDD8027002805BF /* abstractile.xml in Resources */ = {isa = PBXBuildFile; fileRef = AFE6A4360CDD8026002805BF /* abstractile.xml */; };
                AFEB9C3D15900558003974F3 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AFEB9C3C15900558003974F3 /* Foundation.framework */; };
                AFEB9C401590056A003974F3 /* CoreGraphics.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AFEB9C3E1590056A003974F3 /* CoreGraphics.framework */; };
                AFEB9C411590056A003974F3 /* QuartzCore.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AFEB9C3F1590056A003974F3 /* QuartzCore.framework */; };
+               AFF1BA0F19A96D8B0016A88D /* lament_model.c in Sources */ = {isa = PBXBuildFile; fileRef = AFF1BA0E19A96D8B0016A88D /* lament_model.c */; };
+               AFF1BA1019A96D8B0016A88D /* lament_model.c in Sources */ = {isa = PBXBuildFile; fileRef = AFF1BA0E19A96D8B0016A88D /* lament_model.c */; settings = {COMPILER_FLAGS = "-DUSE_GL"; }; };
                AFF2868617860E830050A578 /* XScreenSaverSubclass.m in Sources */ = {isa = PBXBuildFile; fileRef = AF9CC7A0099580E70075E99B /* XScreenSaverSubclass.m */; };
                AFF2868817860E830050A578 /* libjwxyz.a in Frameworks */ = {isa = PBXBuildFile; fileRef = AF4808C1098C3B6C00FB32B8 /* libjwxyz.a */; };
                AFF2868917860E830050A578 /* ScreenSaver.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF976ED30989BF59001F8B92 /* ScreenSaver.framework */; };
                AFF4635F0C440AEF00EE6509 /* XScreenSaverSubclass.m in Sources */ = {isa = PBXBuildFile; fileRef = AF9CC7A0099580E70075E99B /* XScreenSaverSubclass.m */; };
                AFF463720C440B9200EE6509 /* glcells.c in Sources */ = {isa = PBXBuildFile; fileRef = AFF463710C440B9200EE6509 /* glcells.c */; };
                AFF463740C440BAC00EE6509 /* glcells.xml in Resources */ = {isa = PBXBuildFile; fileRef = AFF463730C440BAC00EE6509 /* glcells.xml */; };
+               AFFAB31C19158CE40020F021 /* XScreenSaverSubclass.m in Sources */ = {isa = PBXBuildFile; fileRef = AF9CC7A0099580E70075E99B /* XScreenSaverSubclass.m */; };
+               AFFAB31E19158CE40020F021 /* libjwxyz.a in Frameworks */ = {isa = PBXBuildFile; fileRef = AF4808C1098C3B6C00FB32B8 /* libjwxyz.a */; };
+               AFFAB31F19158CE40020F021 /* ScreenSaver.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF976ED30989BF59001F8B92 /* ScreenSaver.framework */; };
+               AFFAB32019158CE40020F021 /* QuartzCore.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF2C31E515C0F7FE007A6896 /* QuartzCore.framework */; };
+               AFFAB32119158CE40020F021 /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1058C7A1FEA54F0111CA2CBB /* Cocoa.framework */; };
+               AFFAB32219158CE40020F021 /* Carbon.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF48112B0990A2C700FB32B8 /* Carbon.framework */; };
+               AFFAB32319158CE40020F021 /* libz.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = AF78369617DB9F25003B9FC0 /* libz.dylib */; };
+               AFFAB32F19158E2A0020F021 /* projectiveplane.xml in Resources */ = {isa = PBXBuildFile; fileRef = AFFAB32C19158E2A0020F021 /* projectiveplane.xml */; };
+               AFFAB33019158E2A0020F021 /* projectiveplane.xml in Resources */ = {isa = PBXBuildFile; fileRef = AFFAB32C19158E2A0020F021 /* projectiveplane.xml */; };
+               AFFAB33219158EA80020F021 /* projectiveplane.c in Sources */ = {isa = PBXBuildFile; fileRef = AFFAB33119158EA80020F021 /* projectiveplane.c */; };
+               AFFAB33319158EA80020F021 /* projectiveplane.c in Sources */ = {isa = PBXBuildFile; fileRef = AFFAB33119158EA80020F021 /* projectiveplane.c */; settings = {COMPILER_FLAGS = "-DUSE_GL"; }; };
 /* End PBXBuildFile section */
 
 /* Begin PBXContainerItemProxy section */
                        remoteGlobalIDString = AF35E88A0E63823600691F2F;
                        remoteInfo = Jigsaw;
                };
+               AF36340018540D050086A439 /* PBXContainerItemProxy */ = {
+                       isa = PBXContainerItemProxy;
+                       containerPortal = 29B97313FDCFA39411CA2CEA /* Project object */;
+                       proxyType = 1;
+                       remoteGlobalIDString = AF1AD9E118500F9F00932759;
+                       remoteInfo = XScreenSaverUpdater;
+               };
+               AF39E284198A11F60064A58D /* PBXContainerItemProxy */ = {
+                       isa = PBXContainerItemProxy;
+                       containerPortal = 29B97313FDCFA39411CA2CEA /* Project object */;
+                       proxyType = 1;
+                       remoteGlobalIDString = AF4808C0098C3B6C00FB32B8;
+                       remoteInfo = jwxyz;
+               };
+               AF39E2B9198A16920064A58D /* PBXContainerItemProxy */ = {
+                       isa = PBXContainerItemProxy;
+                       containerPortal = 29B97313FDCFA39411CA2CEA /* Project object */;
+                       proxyType = 1;
+                       remoteGlobalIDString = AF39E282198A11F60064A58D;
+                       remoteInfo = WindupRobot;
+               };
                AF3C71470D624BF50030CC0D /* PBXContainerItemProxy */ = {
                        isa = PBXContainerItemProxy;
                        containerPortal = 29B97313FDCFA39411CA2CEA /* Project object */;
                        remoteGlobalIDString = AF4808C0098C3B6C00FB32B8;
                        remoteInfo = jwxyz;
                };
+               AF68A48019196CF800D41CD1 /* PBXContainerItemProxy */ = {
+                       isa = PBXContainerItemProxy;
+                       containerPortal = 29B97313FDCFA39411CA2CEA /* Project object */;
+                       proxyType = 1;
+                       remoteGlobalIDString = AF4808C0098C3B6C00FB32B8;
+                       remoteInfo = jwxyz;
+               };
+               AF68A49D19196EA000D41CD1 /* PBXContainerItemProxy */ = {
+                       isa = PBXContainerItemProxy;
+                       containerPortal = 29B97313FDCFA39411CA2CEA /* Project object */;
+                       proxyType = 1;
+                       remoteGlobalIDString = AF68A47E19196CF800D41CD1;
+                       remoteInfo = Tessellimage;
+               };
                AF714E4E105613410046AB1D /* PBXContainerItemProxy */ = {
                        isa = PBXContainerItemProxy;
                        containerPortal = 29B97313FDCFA39411CA2CEA /* Project object */;
                        remoteGlobalIDString = AF4808C0098C3B6C00FB32B8;
                        remoteInfo = jwxyz;
                };
+               AF9E7EDE190F4F7200A8B01F /* PBXContainerItemProxy */ = {
+                       isa = PBXContainerItemProxy;
+                       containerPortal = 29B97313FDCFA39411CA2CEA /* Project object */;
+                       proxyType = 1;
+                       remoteGlobalIDString = AF9E7EBE190F4C1B00A8B01F;
+                       remoteInfo = enable_gc;
+               };
                AFA160911052FF87009B93AA /* PBXContainerItemProxy */ = {
                        isa = PBXContainerItemProxy;
                        containerPortal = 29B97313FDCFA39411CA2CEA /* Project object */;
                        remoteGlobalIDString = AFF463580C440AEF00EE6509;
                        remoteInfo = GLCells;
                };
+               AFFAB31719158CE40020F021 /* PBXContainerItemProxy */ = {
+                       isa = PBXContainerItemProxy;
+                       containerPortal = 29B97313FDCFA39411CA2CEA /* Project object */;
+                       proxyType = 1;
+                       remoteGlobalIDString = AF4808C0098C3B6C00FB32B8;
+                       remoteInfo = jwxyz;
+               };
+               AFFAB33419158F1E0020F021 /* PBXContainerItemProxy */ = {
+                       isa = PBXContainerItemProxy;
+                       containerPortal = 29B97313FDCFA39411CA2CEA /* Project object */;
+                       proxyType = 1;
+                       remoteGlobalIDString = AFFAB31519158CE40020F021;
+                       remoteInfo = ProjectivePlane;
+               };
 /* End PBXContainerItemProxy section */
 
+/* Begin PBXCopyFilesBuildPhase section */
+               AF1ADA191850185F00932759 /* CopyFiles */ = {
+                       isa = PBXCopyFilesBuildPhase;
+                       buildActionMask = 2147483647;
+                       dstPath = "";
+                       dstSubfolderSpec = 10;
+                       files = (
+                               AF1ADA1A1850186B00932759 /* Sparkle.framework in CopyFiles */,
+                       );
+                       runOnlyForDeploymentPostprocessing = 0;
+               };
+               AF9E7EBD190F4C1B00A8B01F /* CopyFiles */ = {
+                       isa = PBXCopyFilesBuildPhase;
+                       buildActionMask = 2147483647;
+                       dstPath = /usr/share/man/man1/;
+                       dstSubfolderSpec = 0;
+                       files = (
+                       );
+                       runOnlyForDeploymentPostprocessing = 1;
+               };
+/* End PBXCopyFilesBuildPhase section */
+
 /* Begin PBXFileReference section */
                089C165DFE840E0CC02AAC07 /* InfoPlist.strings */ = {isa = PBXFileReference; fileEncoding = 10; lastKnownFileType = text.plist.strings; name = InfoPlist.strings; path = OSX/English.lproj/InfoPlist.strings; sourceTree = "<group>"; };
                1058C7A1FEA54F0111CA2CBB /* Cocoa.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Cocoa.framework; path = /System/Library/Frameworks/Cocoa.framework; sourceTree = "<absolute>"; };
                AF1A17730D6D6EE3008AF328 /* LCDscrub.saver */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = LCDscrub.saver; sourceTree = BUILT_PRODUCTS_DIR; };
                AF1A177E0D6D6F3E008AF328 /* lcdscrub.c */ = {isa = PBXFileReference; fileEncoding = 5; lastKnownFileType = sourcecode.c.c; name = lcdscrub.c; path = hacks/lcdscrub.c; sourceTree = "<group>"; };
                AF1A17800D6D6F62008AF328 /* lcdscrub.xml */ = {isa = PBXFileReference; fileEncoding = 5; lastKnownFileType = text.xml; path = lcdscrub.xml; sourceTree = "<group>"; };
+               AF1AD9E218500F9F00932759 /* XScreenSaverUpdater.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = XScreenSaverUpdater.app; sourceTree = BUILT_PRODUCTS_DIR; };
+               AF1AD9E518500F9F00932759 /* AppKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AppKit.framework; path = System/Library/Frameworks/AppKit.framework; sourceTree = SDKROOT; };
+               AF1AD9E618500FA000932759 /* CoreData.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreData.framework; path = System/Library/Frameworks/CoreData.framework; sourceTree = SDKROOT; };
+               AF1AD9E718500FA000932759 /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = System/Library/Frameworks/Foundation.framework; sourceTree = SDKROOT; };
+               AF1ADA0118500FA100932759 /* XCTest.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = XCTest.framework; path = Library/Frameworks/XCTest.framework; sourceTree = DEVELOPER_DIR; };
+               AF1ADA151850157400932759 /* Updater.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; name = Updater.xib; path = OSX/Updater.xib; sourceTree = SOURCE_ROOT; };
+               AF1ADA171850180E00932759 /* Sparkle.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Sparkle.framework; path = OSX/Sparkle.framework; sourceTree = "<group>"; };
                AF241F81107C38DF00046A84 /* dropshadow.c */ = {isa = PBXFileReference; fileEncoding = 5; lastKnownFileType = sourcecode.c.c; name = dropshadow.c; path = hacks/glx/dropshadow.c; sourceTree = "<group>"; };
                AF241F82107C38DF00046A84 /* dropshadow.h */ = {isa = PBXFileReference; fileEncoding = 5; lastKnownFileType = sourcecode.c.h; name = dropshadow.h; path = hacks/glx/dropshadow.h; sourceTree = "<group>"; };
                AF2C31E515C0F7FE007A6896 /* QuartzCore.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = QuartzCore.framework; path = System/Library/Frameworks/QuartzCore.framework; sourceTree = SDKROOT; };
                AF3582211433318500E09C51 /* tronbit.xml */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xml; path = tronbit.xml; sourceTree = "<group>"; };
                AF35E8A00E63823600691F2F /* Jigsaw.saver */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = Jigsaw.saver; sourceTree = BUILT_PRODUCTS_DIR; };
                AF35EB250E6382BA00691F2F /* jigsaw.c */ = {isa = PBXFileReference; fileEncoding = 5; lastKnownFileType = sourcecode.c.c; name = jigsaw.c; path = hacks/glx/jigsaw.c; sourceTree = "<group>"; };
+               AF3633F918530DD90086A439 /* sparkle_dsa_pub.pem */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; name = sparkle_dsa_pub.pem; path = OSX/sparkle_dsa_pub.pem; sourceTree = "<group>"; };
+               AF3633FA18530DD90086A439 /* Updater.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = Updater.h; path = OSX/Updater.h; sourceTree = "<group>"; };
+               AF3633FB18530DD90086A439 /* Updater.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = Updater.m; path = OSX/Updater.m; sourceTree = "<group>"; };
+               AF3633FE18530DFF0086A439 /* Updater.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; name = Updater.plist; path = OSX/Updater.plist; sourceTree = "<group>"; };
+               AF39E296198A11F60064A58D /* WindupRobot.saver */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = WindupRobot.saver; sourceTree = BUILT_PRODUCTS_DIR; };
+               AF39E2A0198A13F50064A58D /* robot-wireframe.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = "robot-wireframe.c"; path = "hacks/glx/robot-wireframe.c"; sourceTree = "<group>"; };
+               AF39E2A1198A13F50064A58D /* winduprobot.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = winduprobot.c; path = hacks/glx/winduprobot.c; sourceTree = "<group>"; };
+               AF39E2AC198A15820064A58D /* winduprobot.xml */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xml; path = winduprobot.xml; sourceTree = "<group>"; };
                AF3C71590D624BF50030CC0D /* Hypnowheel.saver */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = Hypnowheel.saver; sourceTree = BUILT_PRODUCTS_DIR; };
                AF3C715D0D624C600030CC0D /* hypnowheel.c */ = {isa = PBXFileReference; fileEncoding = 5; lastKnownFileType = sourcecode.c.c; name = hypnowheel.c; path = hacks/glx/hypnowheel.c; sourceTree = "<group>"; };
                AF3C715F0D624C7C0030CC0D /* hypnowheel.xml */ = {isa = PBXFileReference; fileEncoding = 5; lastKnownFileType = text.xml; path = hypnowheel.xml; sourceTree = "<group>"; };
                AF6427BB09A2DF47000F4CD4 /* bubbles-default.c */ = {isa = PBXFileReference; fileEncoding = 5; lastKnownFileType = sourcecode.c.c; name = "bubbles-default.c"; path = "hacks/bubbles-default.c"; sourceTree = "<group>"; };
                AF6427BC09A2DF47000F4CD4 /* bubbles.c */ = {isa = PBXFileReference; fileEncoding = 5; lastKnownFileType = sourcecode.c.c; name = bubbles.c; path = hacks/bubbles.c; sourceTree = "<group>"; };
                AF6427BD09A2DF47000F4CD4 /* bubbles.h */ = {isa = PBXFileReference; fileEncoding = 5; lastKnownFileType = sourcecode.c.h; name = bubbles.h; path = hacks/bubbles.h; sourceTree = "<group>"; };
+               AF68A49219196CF800D41CD1 /* Tessellimage.saver */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = Tessellimage.saver; sourceTree = BUILT_PRODUCTS_DIR; };
+               AF68A49419196E3E00D41CD1 /* tessellimage.xml */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xml; path = tessellimage.xml; sourceTree = "<group>"; };
+               AF68A49519196E3E00D41CD1 /* tessellimage.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = tessellimage.c; path = hacks/tessellimage.c; sourceTree = "<group>"; };
+               AF68A49619196E3E00D41CD1 /* delaunay.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = delaunay.c; path = hacks/delaunay.c; sourceTree = "<group>"; };
+               AF72284518D943DF000D36EC /* iSaverRunner76.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = iSaverRunner76.png; path = OSX/iSaverRunner76.png; sourceTree = "<group>"; };
+               AF72284618D943DF000D36EC /* iSaverRunner120.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = iSaverRunner120.png; path = OSX/iSaverRunner120.png; sourceTree = "<group>"; };
+               AF72284718D943DF000D36EC /* iSaverRunner152.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = iSaverRunner152.png; path = OSX/iSaverRunner152.png; sourceTree = "<group>"; };
                AF7511121782B5B900380EA1 /* Kaleidocycle.saver */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = Kaleidocycle.saver; sourceTree = BUILT_PRODUCTS_DIR; };
                AF7511141782B64300380EA1 /* kaleidocycle.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = kaleidocycle.c; path = hacks/glx/kaleidocycle.c; sourceTree = "<group>"; };
                AF7511161782B66400380EA1 /* kaleidescope.xml */ = {isa = PBXFileReference; lastKnownFileType = text.xml; path = kaleidescope.xml; sourceTree = "<group>"; };
                AF9D4DFE09B5BB19006E59CF /* Apple2.saver */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = Apple2.saver; sourceTree = BUILT_PRODUCTS_DIR; };
                AF9D4E0509B5BC9D006E59CF /* apple2-main.c */ = {isa = PBXFileReference; fileEncoding = 5; lastKnownFileType = sourcecode.c.c; name = "apple2-main.c"; path = "hacks/apple2-main.c"; sourceTree = "<group>"; };
                AF9D4E2109B63413006E59CF /* jwxyz-timers.m */ = {isa = PBXFileReference; fileEncoding = 5; lastKnownFileType = sourcecode.c.objc; name = "jwxyz-timers.m"; path = "OSX/jwxyz-timers.m"; sourceTree = "<group>"; };
+               AF9E7EBF190F4C1B00A8B01F /* enable_gc */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.executable"; includeInIndex = 0; path = enable_gc; sourceTree = BUILT_PRODUCTS_DIR; };
+               AF9E7EC8190F4C4000A8B01F /* enable_gc.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = enable_gc.c; path = OSX/enable_gc.c; sourceTree = "<group>"; };
                AFA339400B058505002B0E7D /* WebCollage.saver */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = WebCollage.saver; sourceTree = BUILT_PRODUCTS_DIR; };
                AFA33BAE0B0585F7002B0E7D /* webcollage-cocoa.m */ = {isa = PBXFileReference; fileEncoding = 5; lastKnownFileType = sourcecode.c.objc; name = "webcollage-cocoa.m"; path = "hacks/webcollage-cocoa.m"; sourceTree = "<group>"; };
                AFA33BC70B058740002B0E7D /* webcollage-helper */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.executable"; includeInIndex = 0; path = "webcollage-helper"; sourceTree = BUILT_PRODUCTS_DIR; };
                AFB5A0ED0981FF8B00871B16 /* usleep.c */ = {isa = PBXFileReference; fileEncoding = 12; lastKnownFileType = sourcecode.c.c; name = usleep.c; path = utils/usleep.c; sourceTree = "<group>"; };
                AFB5A0EE0981FF8B00871B16 /* usleep.h */ = {isa = PBXFileReference; fileEncoding = 12; lastKnownFileType = sourcecode.c.h; name = usleep.h; path = utils/usleep.h; sourceTree = "<group>"; };
                AFB8A69A1782BA34004EDB85 /* kaleidocycle.xml */ = {isa = PBXFileReference; lastKnownFileType = text.xml; path = kaleidocycle.xml; sourceTree = "<group>"; };
+               AFBE743F19A7C6930018AA35 /* robot.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = robot.c; path = hacks/glx/robot.c; sourceTree = "<group>"; };
                AFBF893C0E41D930006A2D66 /* fps.c */ = {isa = PBXFileReference; fileEncoding = 5; lastKnownFileType = sourcecode.c.c; name = fps.c; path = hacks/fps.c; sourceTree = "<group>"; };
                AFBF893D0E41D930006A2D66 /* fps.h */ = {isa = PBXFileReference; fileEncoding = 5; lastKnownFileType = sourcecode.c.h; name = fps.h; path = hacks/fps.h; sourceTree = "<group>"; };
                AFBF89AE0E423FC3006A2D66 /* fps-gl.c */ = {isa = PBXFileReference; fileEncoding = 5; lastKnownFileType = sourcecode.c.c; name = "fps-gl.c"; path = "hacks/glx/fps-gl.c"; sourceTree = "<group>"; };
                AFD5730C099702C800BA26F7 /* julia.c */ = {isa = PBXFileReference; fileEncoding = 5; lastKnownFileType = sourcecode.c.c; name = julia.c; path = hacks/julia.c; sourceTree = "<group>"; };
                AFD5736D0997411200BA26F7 /* Strange.saver */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = Strange.saver; sourceTree = BUILT_PRODUCTS_DIR; };
                AFD57371099741A200BA26F7 /* strange.c */ = {isa = PBXFileReference; fileEncoding = 5; lastKnownFileType = sourcecode.c.c; name = strange.c; path = hacks/strange.c; sourceTree = "<group>"; };
+               AFDA11211934424D003D397F /* aligned_malloc.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = aligned_malloc.c; path = utils/aligned_malloc.c; sourceTree = "<group>"; };
+               AFDA11221934424D003D397F /* aligned_malloc.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = aligned_malloc.h; path = utils/aligned_malloc.h; sourceTree = "<group>"; };
+               AFDA11231934424D003D397F /* thread_util.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = thread_util.c; path = utils/thread_util.c; sourceTree = "<group>"; };
+               AFDA11241934424D003D397F /* thread_util.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = thread_util.h; path = utils/thread_util.h; sourceTree = "<group>"; };
                AFDA65A1178A52B70070D24B /* UnknownPleasures.saver */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = UnknownPleasures.saver; sourceTree = BUILT_PRODUCTS_DIR; };
                AFDA65A3178A541A0070D24B /* unknownpleasures.xml */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xml; path = unknownpleasures.xml; sourceTree = "<group>"; };
                AFDA65A4178A541A0070D24B /* unknownpleasures.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = unknownpleasures.c; path = hacks/glx/unknownpleasures.c; sourceTree = "<group>"; };
                AFEB9C3C15900558003974F3 /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS5.0.sdk/System/Library/Frameworks/Foundation.framework; sourceTree = DEVELOPER_DIR; };
                AFEB9C3E1590056A003974F3 /* CoreGraphics.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreGraphics.framework; path = Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS5.0.sdk/System/Library/Frameworks/CoreGraphics.framework; sourceTree = DEVELOPER_DIR; };
                AFEB9C3F1590056A003974F3 /* QuartzCore.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = QuartzCore.framework; path = Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS5.0.sdk/System/Library/Frameworks/QuartzCore.framework; sourceTree = DEVELOPER_DIR; };
+               AFF1BA0E19A96D8B0016A88D /* lament_model.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = lament_model.c; path = hacks/glx/lament_model.c; sourceTree = "<group>"; };
                AFF2869217860E830050A578 /* QuasiCrystal.saver */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = QuasiCrystal.saver; sourceTree = BUILT_PRODUCTS_DIR; };
                AFF28694178611720050A578 /* quasicrystal.xml */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xml; path = quasicrystal.xml; sourceTree = "<group>"; };
                AFF28695178611720050A578 /* quasicrystal.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = quasicrystal.c; path = hacks/glx/quasicrystal.c; sourceTree = "<group>"; };
                AFF4636C0C440AEF00EE6509 /* GLCells.saver */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = GLCells.saver; sourceTree = BUILT_PRODUCTS_DIR; };
                AFF463710C440B9200EE6509 /* glcells.c */ = {isa = PBXFileReference; fileEncoding = 5; lastKnownFileType = sourcecode.c.c; name = glcells.c; path = hacks/glx/glcells.c; sourceTree = "<group>"; };
                AFF463730C440BAC00EE6509 /* glcells.xml */ = {isa = PBXFileReference; fileEncoding = 5; lastKnownFileType = text.xml; path = glcells.xml; sourceTree = "<group>"; };
+               AFFAB32919158CE40020F021 /* ProjectivePlane.saver */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = ProjectivePlane.saver; sourceTree = BUILT_PRODUCTS_DIR; };
+               AFFAB32C19158E2A0020F021 /* projectiveplane.xml */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xml; path = projectiveplane.xml; sourceTree = "<group>"; };
+               AFFAB33119158EA80020F021 /* projectiveplane.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = projectiveplane.c; path = hacks/glx/projectiveplane.c; sourceTree = "<group>"; };
 /* End PBXFileReference section */
 
 /* Begin PBXFrameworksBuildPhase section */
                        );
                        runOnlyForDeploymentPostprocessing = 0;
                };
+               AF1AD9DF18500F9F00932759 /* Frameworks */ = {
+                       isa = PBXFrameworksBuildPhase;
+                       buildActionMask = 2147483647;
+                       files = (
+                               AF1ADA181850180E00932759 /* Sparkle.framework in Frameworks */,
+                               AF1ADA1F18504A4F00932759 /* ScreenSaver.framework in Frameworks */,
+                               AF1AD9E318500F9F00932759 /* Cocoa.framework in Frameworks */,
+                       );
+                       runOnlyForDeploymentPostprocessing = 0;
+               };
                AF2D4D8813E902F5002AA818 /* Frameworks */ = {
                        isa = PBXFrameworksBuildPhase;
                        buildActionMask = 2147483647;
                        );
                        runOnlyForDeploymentPostprocessing = 0;
                };
+               AF39E28A198A11F60064A58D /* Frameworks */ = {
+                       isa = PBXFrameworksBuildPhase;
+                       buildActionMask = 2147483647;
+                       files = (
+                               AF39E28B198A11F60064A58D /* libjwxyz.a in Frameworks */,
+                               AF39E28C198A11F60064A58D /* ScreenSaver.framework in Frameworks */,
+                               AF39E28D198A11F60064A58D /* QuartzCore.framework in Frameworks */,
+                               AF39E28E198A11F60064A58D /* Cocoa.framework in Frameworks */,
+                               AF39E28F198A11F60064A58D /* Carbon.framework in Frameworks */,
+                               AF39E290198A11F60064A58D /* libz.dylib in Frameworks */,
+                       );
+                       runOnlyForDeploymentPostprocessing = 0;
+               };
                AF3C714D0D624BF50030CC0D /* Frameworks */ = {
                        isa = PBXFrameworksBuildPhase;
                        buildActionMask = 2147483647;
                        );
                        runOnlyForDeploymentPostprocessing = 0;
                };
+               AF68A48619196CF800D41CD1 /* Frameworks */ = {
+                       isa = PBXFrameworksBuildPhase;
+                       buildActionMask = 2147483647;
+                       files = (
+                               AF68A48719196CF800D41CD1 /* libjwxyz.a in Frameworks */,
+                               AF68A48819196CF800D41CD1 /* ScreenSaver.framework in Frameworks */,
+                               AF68A48919196CF800D41CD1 /* QuartzCore.framework in Frameworks */,
+                               AF68A48A19196CF800D41CD1 /* Cocoa.framework in Frameworks */,
+                               AF68A48B19196CF800D41CD1 /* Carbon.framework in Frameworks */,
+                               AF68A48C19196CF800D41CD1 /* libz.dylib in Frameworks */,
+                       );
+                       runOnlyForDeploymentPostprocessing = 0;
+               };
                AF7511071782B5B900380EA1 /* Frameworks */ = {
                        isa = PBXFrameworksBuildPhase;
                        buildActionMask = 2147483647;
                        );
                        runOnlyForDeploymentPostprocessing = 0;
                };
+               AF9E7EBC190F4C1B00A8B01F /* Frameworks */ = {
+                       isa = PBXFrameworksBuildPhase;
+                       buildActionMask = 2147483647;
+                       files = (
+                       );
+                       runOnlyForDeploymentPostprocessing = 0;
+               };
                AFA339370B058505002B0E7D /* Frameworks */ = {
                        isa = PBXFrameworksBuildPhase;
                        buildActionMask = 2147483647;
                        );
                        runOnlyForDeploymentPostprocessing = 0;
                };
+               AFFAB31D19158CE40020F021 /* Frameworks */ = {
+                       isa = PBXFrameworksBuildPhase;
+                       buildActionMask = 2147483647;
+                       files = (
+                               AFFAB31E19158CE40020F021 /* libjwxyz.a in Frameworks */,
+                               AFFAB31F19158CE40020F021 /* ScreenSaver.framework in Frameworks */,
+                               AFFAB32019158CE40020F021 /* QuartzCore.framework in Frameworks */,
+                               AFFAB32119158CE40020F021 /* Cocoa.framework in Frameworks */,
+                               AFFAB32219158CE40020F021 /* Carbon.framework in Frameworks */,
+                               AFFAB32319158CE40020F021 /* libz.dylib in Frameworks */,
+                       );
+                       runOnlyForDeploymentPostprocessing = 0;
+               };
 /* End PBXFrameworksBuildPhase section */
 
 /* Begin PBXGroup section */
                                AF9CC7A0099580E70075E99B /* XScreenSaverSubclass.m */,
                                AFC254C409882C97000655EE /* XScreenSaverView.h */,
                                AFC254C509882C97000655EE /* XScreenSaverView.m */,
+                               AF9E7EC8190F4C4000A8B01F /* enable_gc.c */,
                        );
                        name = libjwxyz;
                        sourceTree = "<group>";
                                AFDA65A1178A52B70070D24B /* UnknownPleasures.saver */,
                                AFB591BA178B812C00EA4005 /* Hexadrop.saver */,
                                AFF3C9FB17CCAC440028F240 /* Geodesic.saver */,
+                               AF1AD9E218500F9F00932759 /* XScreenSaverUpdater.app */,
+                               AF9E7EBF190F4C1B00A8B01F /* enable_gc */,
+                               AFFAB32919158CE40020F021 /* ProjectivePlane.saver */,
+                               AF68A49219196CF800D41CD1 /* Tessellimage.saver */,
+                               AF39E296198A11F60064A58D /* WindupRobot.saver */,
                        );
                        name = Products;
                        sourceTree = "<group>";
                        children = (
                                AF480AB9098C66E200FB32B8 /* SaverRunner */,
                                080E96DDFE201D6D7F000001 /* libjwxyz */,
+                               AF1AD9E818500FA000932759 /* Updater */,
                                AFE1FD520981E35400F7970E /* Utils */,
                                AFE1FD610981E3E700F7970E /* Hacks */,
                                AFC258670988A468000655EE /* config */,
                                AF01295B157D5C2C00C396E1 /* iSaverRunner50.png */,
                                AF01295C157D5C2C00C396E1 /* iSaverRunner57.png */,
                                AF01295D157D5C2C00C396E1 /* iSaverRunner72.png */,
+                               AF72284518D943DF000D36EC /* iSaverRunner76.png */,
                                AF01295E157D5C2C00C396E1 /* iSaverRunner114.png */,
+                               AF72284618D943DF000D36EC /* iSaverRunner120.png */,
+                               AF72284718D943DF000D36EC /* iSaverRunner152.png */,
                                AFC6BBC1161CE07E0084EDB1 /* Default-568h@2x.png */,
                                AF9771D90989DC4A001F8B92 /* SaverRunner.plist */,
                                AF01294C157D31DD00C396E1 /* iSaverRunner.plist */,
                29B97323FDCFA39411CA2CEA /* Frameworks */ = {
                        isa = PBXGroup;
                        children = (
+                               AF1ADA171850180E00932759 /* Sparkle.framework */,
                                AF78377C17DBA85D003B9FC0 /* libz.dylib */,
                                AF78369617DB9F25003B9FC0 /* libz.dylib */,
                                AFEB9C3E1590056A003974F3 /* CoreGraphics.framework */,
                                AFEB9C3F1590056A003974F3 /* QuartzCore.framework */,
+                               AF1AD9E718500FA000932759 /* Foundation.framework */,
                                AFEB9C3C15900558003974F3 /* Foundation.framework */,
                                AFEB9C3A1590054B003974F3 /* OpenGLES.framework */,
                                AFEB9C3815900514003974F3 /* UIKit.framework */,
+                               AF1AD9E618500FA000932759 /* CoreData.framework */,
+                               AF1AD9E518500F9F00932759 /* AppKit.framework */,
                                AF0F46DC104E1809000A929C /* AppKit.framework */,
                                AF976ED30989BF59001F8B92 /* ScreenSaver.framework */,
                                AF2C31E515C0F7FE007A6896 /* QuartzCore.framework */,
                                AF480FE70990375900FB32B8 /* AGL.framework */,
                                AF84FD4109B1209E00F3AB06 /* GLUT.framework */,
                                AF48112B0990A2C700FB32B8 /* Carbon.framework */,
+                               AF1ADA0118500FA100932759 /* XCTest.framework */,
                        );
                        name = Frameworks;
                        sourceTree = "<group>";
                };
+               AF1AD9E818500FA000932759 /* Updater */ = {
+                       isa = PBXGroup;
+                       children = (
+                               AF3633F918530DD90086A439 /* sparkle_dsa_pub.pem */,
+                               AF3633FA18530DD90086A439 /* Updater.h */,
+                               AF3633FB18530DD90086A439 /* Updater.m */,
+                               AF3633FE18530DFF0086A439 /* Updater.plist */,
+                               AF1ADA151850157400932759 /* Updater.xib */,
+                       );
+                       name = Updater;
+                       sourceTree = "<group>";
+               };
                AF480AB9098C66E200FB32B8 /* SaverRunner */ = {
                        isa = PBXGroup;
                        children = (
                                AF4778FB099DDE79001F091E /* cynosure.c */,
                                AF9D467809B5110B006E59CF /* decayscreen.c */,
                                AFC25B5E0988BA63000655EE /* deco.c */,
+                               AF68A49619196E3E00D41CD1 /* delaunay.c */,
                                AF477145099D43E2001F091E /* deluxe.c */,
                                AF9D490709B536F7006E59CF /* distort.c */,
                                AF477605099DA097001F091E /* epicycle.c */,
                                AF4775B3099D9D67001F091E /* starfish.c */,
                                AF477736099DB104001F091E /* substrate.c */,
                                AF4771BA099D4997001F091E /* t3d.c */,
+                               AF68A49519196E3E00D41CD1 /* tessellimage.c */,
                                AF35821B1433314C00E09C51 /* tronbit.c */,
                                AF3582171433314C00E09C51 /* tronbit_idle1.c */,
                                AF3582181433314C00E09C51 /* tronbit_idle2.c */,
                                AF7511141782B64300380EA1 /* kaleidocycle.c */,
                                AFA55F3F0993626E00F3E977 /* klein.c */,
                                AFA55A8E0993369100F3E977 /* lament.c */,
+                               AFF1BA0E19A96D8B0016A88D /* lament_model.c */,
                                AFA55DDD09935DB600F3E977 /* lavalite.c */,
                                AF4FD7000CE7A577005EE58E /* lockward.c */,
                                AFA55DE109935DFB00F3E977 /* marching.c */,
                                AFA561B309937DCC00F3E977 /* polyhedra.c */,
                                AFA561B409937DCC00F3E977 /* polyhedra.h */,
                                AFA560C3099371D500F3E977 /* polytopes.c */,
+                               AFFAB33119158EA80020F021 /* projectiveplane.c */,
                                AFA5621C099384F600F3E977 /* providence.c */,
                                AFA55B3F09933EC600F3E977 /* pulsar.c */,
                                AFF28695178611720050A578 /* quasicrystal.c */,
                                AFA55E0609935EB800F3E977 /* queens.c */,
+                               AFBE743F19A7C6930018AA35 /* robot.c */,
+                               AF39E2A0198A13F50064A58D /* robot-wireframe.c */,
                                AFA559EA0993335C00F3E977 /* rubik.c */,
                                AF32D9FA0F3AD1200080F535 /* rubikblocks.c */,
                                AFA55A400993351F00F3E977 /* s1_1.c */,
                                AFDA65A4178A541A0070D24B /* unknownpleasures.c */,
                                AF0DCA5F0C4CBB7300D76972 /* voronoi.c */,
                                AF0839AD09930C4900277BE9 /* whale.c */,
+                               AF39E2A1198A13F50064A58D /* winduprobot.c */,
                        );
                        name = OpenGL;
                        sourceTree = "<group>";
                                AFC258F90988A469000655EE /* polytopes.xml */,
                                AFC258FA0988A469000655EE /* pong.xml */,
                                AFC258FB0988A469000655EE /* popsquares.xml */,
+                               AFFAB32C19158E2A0020F021 /* projectiveplane.xml */,
                                AFC258FC0988A469000655EE /* providence.xml */,
                                AFC258FD0988A469000655EE /* pulsar.xml */,
                                AFC258FE0988A469000655EE /* pyro.xml */,
                                AFC259200988A469000655EE /* swirl.xml */,
                                AFC259210988A469000655EE /* t3d.xml */,
                                AFC259220988A469000655EE /* tangram.xml */,
+                               AF68A49419196E3E00D41CD1 /* tessellimage.xml */,
                                AFC259230988A469000655EE /* thornbird.xml */,
                                AFC259240988A469000655EE /* timetunnel.xml */,
                                AF998EFA0A083E8C0051049D /* topblock.xml */,
                                AFC2592C0988A469000655EE /* webcollage.xml */,
                                AFC2592D0988A469000655EE /* whirlwindwarp.xml */,
                                AFC2592F0988A469000655EE /* whirlygig.xml */,
+                               AF39E2AC198A15820064A58D /* winduprobot.xml */,
                                AFC259300988A469000655EE /* worm.xml */,
                                AFC259310988A469000655EE /* wormhole.xml */,
                                AFC259320988A469000655EE /* xanalogtv.xml */,
                AFE1FD520981E35400F7970E /* Utils */ = {
                        isa = PBXGroup;
                        children = (
+                               AFDA11211934424D003D397F /* aligned_malloc.c */,
+                               AFDA11221934424D003D397F /* aligned_malloc.h */,
                                AF9D473609B52EE0006E59CF /* colorbars.c */,
                                AF9D473709B52EE0006E59CF /* colorbars.h */,
                                AFC25B990988BC08000655EE /* colors.c */,
                                AF77780909B64F4900EA3033 /* texfont.h */,
                                AFC7592B158D8E8B00C5458E /* textclient.c */,
                                AFC7592C158D8E8B00C5458E /* textclient.h */,
+                               AFDA11231934424D003D397F /* thread_util.c */,
+                               AFDA11241934424D003D397F /* thread_util.h */,
                                AF480EAD098F63BE00FB32B8 /* trackball.c */,
                                AF480EAF098F63CD00FB32B8 /* trackball.h */,
                                AF480ED2098F652A00FB32B8 /* tube.c */,
                                AF4775C1099D9E79001F091E /* resources.h in Headers */,
                                AF9D473909B52EE0006E59CF /* colorbars.h in Headers */,
                                AF7778C709B65CFE00EA3033 /* font-ximage.h in Headers */,
+                               AFDA11261934424D003D397F /* aligned_malloc.h in Headers */,
+                               AFDA11281934424D003D397F /* thread_util.h in Headers */,
                                AFBF893F0E41D930006A2D66 /* fps.h in Headers */,
                                AFBF89B20E424036006A2D66 /* fpsI.h in Headers */,
                                AF6048FC157C07C600CA21E4 /* jwzgles.h in Headers */,
                        productReference = AF1A17730D6D6EE3008AF328 /* LCDscrub.saver */;
                        productType = "com.apple.product-type.bundle";
                };
+               AF1AD9E118500F9F00932759 /* XScreenSaverUpdater */ = {
+                       isa = PBXNativeTarget;
+                       buildConfigurationList = AF1ADA0E18500FA200932759 /* Build configuration list for PBXNativeTarget "XScreenSaverUpdater" */;
+                       buildPhases = (
+                               AF1AD9DE18500F9F00932759 /* Sources */,
+                               AF1AD9DF18500F9F00932759 /* Frameworks */,
+                               AF1AD9E018500F9F00932759 /* Resources */,
+                               AF1ADA191850185F00932759 /* CopyFiles */,
+                               AF1ADA1E18501DC200932759 /* Run Update Info Plist */,
+                       );
+                       buildRules = (
+                       );
+                       dependencies = (
+                       );
+                       name = XScreenSaverUpdater;
+                       productName = XScreenSaverUpdater;
+                       productReference = AF1AD9E218500F9F00932759 /* XScreenSaverUpdater.app */;
+                       productType = "com.apple.product-type.application";
+               };
                AF2D4D7F13E902F5002AA818 /* Phosphor-iOS */ = {
                        isa = PBXNativeTarget;
                        buildConfigurationList = AF2D4D8C13E902F5002AA818 /* Build configuration list for PBXNativeTarget "Phosphor-iOS" */;
                        productReference = AF35E8A00E63823600691F2F /* Jigsaw.saver */;
                        productType = "com.apple.product-type.bundle";
                };
+               AF39E282198A11F60064A58D /* WindupRobot */ = {
+                       isa = PBXNativeTarget;
+                       buildConfigurationList = AF39E293198A11F60064A58D /* Build configuration list for PBXNativeTarget "WindupRobot" */;
+                       buildPhases = (
+                               AF39E285198A11F60064A58D /* Resources */,
+                               AF39E287198A11F60064A58D /* Sources */,
+                               AF39E28A198A11F60064A58D /* Frameworks */,
+                               AF39E291198A11F60064A58D /* Rez */,
+                               AF39E292198A11F60064A58D /* Run Update Info Plist */,
+                       );
+                       buildRules = (
+                       );
+                       dependencies = (
+                               AF39E283198A11F60064A58D /* PBXTargetDependency */,
+                       );
+                       name = WindupRobot;
+                       productName = DangerBall;
+                       productReference = AF39E296198A11F60064A58D /* WindupRobot.saver */;
+                       productType = "com.apple.product-type.bundle";
+               };
                AF3C71450D624BF50030CC0D /* Hypnowheel */ = {
                        isa = PBXNativeTarget;
                        buildConfigurationList = AF3C71560D624BF50030CC0D /* Build configuration list for PBXNativeTarget "Hypnowheel" */;
                        buildRules = (
                        );
                        dependencies = (
+                               AF9E7EDF190F4F7200A8B01F /* PBXTargetDependency */,
                        );
                        name = jwxyz;
                        productName = jwxyz;
                        productReference = AF6427B809A2DE36000F4CD4 /* Bubbles.saver */;
                        productType = "com.apple.product-type.bundle";
                };
+               AF68A47E19196CF800D41CD1 /* Tessellimage */ = {
+                       isa = PBXNativeTarget;
+                       buildConfigurationList = AF68A48F19196CF800D41CD1 /* Build configuration list for PBXNativeTarget "Tessellimage" */;
+                       buildPhases = (
+                               AF68A48119196CF800D41CD1 /* Resources */,
+                               AF68A48319196CF800D41CD1 /* Sources */,
+                               AF68A48619196CF800D41CD1 /* Frameworks */,
+                               AF68A48D19196CF800D41CD1 /* Rez */,
+                               AF68A48E19196CF800D41CD1 /* Run Update Info Plist */,
+                       );
+                       buildRules = (
+                       );
+                       dependencies = (
+                               AF68A47F19196CF800D41CD1 /* PBXTargetDependency */,
+                       );
+                       name = Tessellimage;
+                       productName = Attraction;
+                       productReference = AF68A49219196CF800D41CD1 /* Tessellimage.saver */;
+                       productType = "com.apple.product-type.bundle";
+               };
                AF7510FF1782B5B900380EA1 /* Kaleidocycle */ = {
                        isa = PBXNativeTarget;
                        buildConfigurationList = AF75110F1782B5B900380EA1 /* Build configuration list for PBXNativeTarget "Kaleidocycle" */;
                        productReference = AF9D4DFE09B5BB19006E59CF /* Apple2.saver */;
                        productType = "com.apple.product-type.bundle";
                };
+               AF9E7EBE190F4C1B00A8B01F /* enable_gc */ = {
+                       isa = PBXNativeTarget;
+                       buildConfigurationList = AF9E7EC5190F4C1C00A8B01F /* Build configuration list for PBXNativeTarget "enable_gc" */;
+                       buildPhases = (
+                               AF9E7EBB190F4C1B00A8B01F /* Sources */,
+                               AF9E7EBC190F4C1B00A8B01F /* Frameworks */,
+                               AF9E7EBD190F4C1B00A8B01F /* CopyFiles */,
+                       );
+                       buildRules = (
+                       );
+                       dependencies = (
+                       );
+                       name = enable_gc;
+                       productName = enable_gc;
+                       productReference = AF9E7EBF190F4C1B00A8B01F /* enable_gc */;
+                       productType = "com.apple.product-type.tool";
+               };
                AFA3392E0B058505002B0E7D /* WebCollage */ = {
                        isa = PBXNativeTarget;
                        buildConfigurationList = AFA3393D0B058505002B0E7D /* Build configuration list for PBXNativeTarget "WebCollage" */;
                        productReference = AFF4636C0C440AEF00EE6509 /* GLCells.saver */;
                        productType = "com.apple.product-type.bundle";
                };
+               AFFAB31519158CE40020F021 /* ProjectivePlane */ = {
+                       isa = PBXNativeTarget;
+                       buildConfigurationList = AFFAB32619158CE40020F021 /* Build configuration list for PBXNativeTarget "ProjectivePlane" */;
+                       buildPhases = (
+                               AFFAB31819158CE40020F021 /* Resources */,
+                               AFFAB31A19158CE40020F021 /* Sources */,
+                               AFFAB31D19158CE40020F021 /* Frameworks */,
+                               AFFAB32419158CE40020F021 /* Rez */,
+                               AFFAB32519158CE40020F021 /* Run Update Info Plist */,
+                       );
+                       buildRules = (
+                       );
+                       dependencies = (
+                               AFFAB31619158CE40020F021 /* PBXTargetDependency */,
+                       );
+                       name = ProjectivePlane;
+                       productName = DangerBall;
+                       productReference = AFFAB32919158CE40020F021 /* ProjectivePlane.saver */;
+                       productType = "com.apple.product-type.bundle";
+               };
 /* End PBXNativeTarget section */
 
 /* Begin PBXProject section */
                29B97313FDCFA39411CA2CEA /* Project object */ = {
                        isa = PBXProject;
                        attributes = {
-                               LastUpgradeCheck = 0460;
+                               LastUpgradeCheck = 0510;
+                               TargetAttributes = {
+                                       AF918977158FC00A002B5D1E = {
+                                               DevelopmentTeam = 4627ATJELP;
+                                       };
+                               };
                        };
                        buildConfigurationList = C01FCF4E08A954540054247B /* Build configuration list for PBXProject "xscreensaver" */;
                        compatibilityVersion = "Xcode 3.2";
                                French,
                                German,
                                en,
+                               Base,
                        );
                        mainGroup = 29B97314FDCFA39411CA2CEA /* xscreensaver */;
                        projectDirPath = "";
                                AF477644099DA6D0001F091E /* Squiral */,
                                AF47759F099D9CF7001F091E /* Starfish */,
                                AF477723099DB044001F091E /* Substrate */,
+                               AF68A47E19196CF800D41CD1 /* Tessellimage */,
                                AF476FDA099D1686001F091E /* Truchet */,
                                AF9D496C09B5411D006E59CF /* Twang */,
                                AF4776F1099DAE7A001F091E /* Vermiculate */,
                                AF4812B30990D3D900FB32B8 /* Pipes */,
                                AFA5619D09937D7E00F3E977 /* Polyhedra */,
                                AFA560AE0993718D00F3E977 /* Polytopes */,
+                               AFFAB31519158CE40020F021 /* ProjectivePlane */,
                                AFA562060993849F00F3E977 /* Providence */,
                                AFA55B2509933E8D00F3E977 /* Pulsar */,
                                AFF2867F17860E830050A578 /* QuasiCrystal */,
                                AF3581FB143330F900E09C51 /* TronBit */,
                                AFDA658E178A52B70070D24B /* Unknown Pleasures */,
                                AF0DCA420C4CBB0D00D76972 /* Voronoi */,
+                               AF39E282198A11F60064A58D /* WindupRobot */,
                                AF137D410F075C9B004DE3B2 /* Obsolete */,
                                AFA55CCC09934CE400F3E977 /* GLForestFire */,
                                AFD570C90996B9F800BA26F7 /* Ant */,
                                AFD56F0B0996AAFA00BA26F7 /* Vines */,
                                AF477208099D4EE8001F091E /* Whirlygig */,
                                AFD5709B0996B88E00BA26F7 /* Worm */,
+                               AF9E7EBE190F4C1B00A8B01F /* enable_gc */,
                                AF9771D60989DC4A001F8B92 /* SaverTester */,
                                AF918977158FC00A002B5D1E /* XScreenSaver-iOS */,
+                               AF1AD9E118500F9F00932759 /* XScreenSaverUpdater */,
                        );
                };
 /* End PBXProject section */
                        isa = PBXResourcesBuildPhase;
                        buildActionMask = 2147483647;
                        files = (
-                               AF1A17660D6D6EE3008AF328 /* xscreensaver-getimage-file in Resources */,
                                AF1A17810D6D6F62008AF328 /* lcdscrub.xml in Resources */,
                        );
                        runOnlyForDeploymentPostprocessing = 0;
                };
+               AF1AD9E018500F9F00932759 /* Resources */ = {
+                       isa = PBXResourcesBuildPhase;
+                       buildActionMask = 2147483647;
+                       files = (
+                               AF1ADA1B18501B3D00932759 /* SaverRunner.icns in Resources */,
+                               AF3633FC18530DD90086A439 /* sparkle_dsa_pub.pem in Resources */,
+                               AF1ADA161850157400932759 /* Updater.xib in Resources */,
+                       );
+                       runOnlyForDeploymentPostprocessing = 0;
+               };
                AF2D4D8213E902F5002AA818 /* Resources */ = {
                        isa = PBXResourcesBuildPhase;
                        buildActionMask = 2147483647;
                        );
                        runOnlyForDeploymentPostprocessing = 0;
                };
+               AF39E285198A11F60064A58D /* Resources */ = {
+                       isa = PBXResourcesBuildPhase;
+                       buildActionMask = 2147483647;
+                       files = (
+                               AF39E2AD198A15820064A58D /* winduprobot.xml in Resources */,
+                               AFCF509D198C3612005B0DB1 /* xscreensaver-text in Resources */,
+                       );
+                       runOnlyForDeploymentPostprocessing = 0;
+               };
                AF3C71480D624BF50030CC0D /* Resources */ = {
                        isa = PBXResourcesBuildPhase;
                        buildActionMask = 2147483647;
                        );
                        runOnlyForDeploymentPostprocessing = 0;
                };
+               AF68A48119196CF800D41CD1 /* Resources */ = {
+                       isa = PBXResourcesBuildPhase;
+                       buildActionMask = 2147483647;
+                       files = (
+                               AF68A49719196E3E00D41CD1 /* tessellimage.xml in Resources */,
+                               AF4A6692191F7CAE00C74753 /* xscreensaver-getimage-file in Resources */,
+                       );
+                       runOnlyForDeploymentPostprocessing = 0;
+               };
                AF7511021782B5B900380EA1 /* Resources */ = {
                        isa = PBXResourcesBuildPhase;
                        buildActionMask = 2147483647;
                                AF91897F158FC00A002B5D1E /* iSaverRunner50.png in Resources */,
                                AF918980158FC00A002B5D1E /* iSaverRunner57.png in Resources */,
                                AF918981158FC00A002B5D1E /* iSaverRunner72.png in Resources */,
+                               AF72284818D943DF000D36EC /* iSaverRunner76.png in Resources */,
                                AF918982158FC00A002B5D1E /* iSaverRunner114.png in Resources */,
+                               AF72284918D943DF000D36EC /* iSaverRunner120.png in Resources */,
+                               AF72284A18D943DF000D36EC /* iSaverRunner152.png in Resources */,
                                AF918AB4158FC53D002B5D1E /* abstractile.xml in Resources */,
                                AF918AB5158FC53D002B5D1E /* anemone.xml in Resources */,
                                AF918AB6158FC53D002B5D1E /* anemotaxis.xml in Resources */,
                                AF918B0A158FC53D002B5D1E /* glschool.xml in Resources */,
                                AF918B0B158FC53D002B5D1E /* glslideshow.xml in Resources */,
                                AF918B0C158FC53D002B5D1E /* glsnake.xml in Resources */,
+                               AF918B10158FC53D002B5D1E /* greynetic.xml in Resources */,
                                AF918B0D158FC53D002B5D1E /* gltext.xml in Resources */,
                                AF918B0E158FC53D002B5D1E /* goop.xml in Resources */,
                                AF918B0F158FC53D002B5D1E /* grav.xml in Resources */,
-                               AF918B10158FC53D002B5D1E /* greynetic.xml in Resources */,
                                AF918B11158FC53D002B5D1E /* halftone.xml in Resources */,
                                AF918B12158FC53D002B5D1E /* halo.xml in Resources */,
                                AF918B13158FC53D002B5D1E /* helix.xml in Resources */,
                                AF918B4F158FC53E002B5D1E /* polytopes.xml in Resources */,
                                AF918B50158FC53E002B5D1E /* pong.xml in Resources */,
                                AF918B51158FC53E002B5D1E /* popsquares.xml in Resources */,
+                               AFFAB33019158E2A0020F021 /* projectiveplane.xml in Resources */,
                                AF918B52158FC53E002B5D1E /* providence.xml in Resources */,
                                AF918B53158FC53E002B5D1E /* pulsar.xml in Resources */,
                                AF918B54158FC53E002B5D1E /* pyro.xml in Resources */,
                                AF918B75158FC53E002B5D1E /* surfaces.xml in Resources */,
                                AF918B76158FC53E002B5D1E /* swirl.xml in Resources */,
                                AF918B78158FC53E002B5D1E /* tangram.xml in Resources */,
+                               AF68A49819196E3E00D41CD1 /* tessellimage.xml in Resources */,
                                AF918B79158FC53E002B5D1E /* thornbird.xml in Resources */,
                                AF918B7A158FC53E002B5D1E /* timetunnel.xml in Resources */,
                                AF918B7B158FC53E002B5D1E /* topblock.xml in Resources */,
                                AF918B83158FC53E002B5D1E /* voronoi.xml in Resources */,
                                AF918B84158FC53E002B5D1E /* wander.xml in Resources */,
                                AF918B86158FC53E002B5D1E /* whirlwindwarp.xml in Resources */,
+                               AF39E2AE198A15820064A58D /* winduprobot.xml in Resources */,
                                AF918B89158FC53E002B5D1E /* wormhole.xml in Resources */,
                                AF918B8A158FC53E002B5D1E /* xanalogtv.xml in Resources */,
                                AF918B8B158FC53E002B5D1E /* xflame.xml in Resources */,
                        isa = PBXResourcesBuildPhase;
                        buildActionMask = 2147483647;
                        files = (
-                               AFE6A4200CDD7FAA002805BF /* xscreensaver-getimage-file in Resources */,
                                AFE6A4370CDD8027002805BF /* abstractile.xml in Resources */,
                        );
                        runOnlyForDeploymentPostprocessing = 0;
                        );
                        runOnlyForDeploymentPostprocessing = 0;
                };
+               AFFAB31819158CE40020F021 /* Resources */ = {
+                       isa = PBXResourcesBuildPhase;
+                       buildActionMask = 2147483647;
+                       files = (
+                               AFFAB32F19158E2A0020F021 /* projectiveplane.xml in Resources */,
+                       );
+                       runOnlyForDeploymentPostprocessing = 0;
+               };
 /* End PBXResourcesBuildPhase section */
 
 /* Begin PBXRezBuildPhase section */
                        );
                        runOnlyForDeploymentPostprocessing = 0;
                };
+               AF39E291198A11F60064A58D /* Rez */ = {
+                       isa = PBXRezBuildPhase;
+                       buildActionMask = 2147483647;
+                       files = (
+                       );
+                       runOnlyForDeploymentPostprocessing = 0;
+               };
                AF3C71540D624BF50030CC0D /* Rez */ = {
                        isa = PBXRezBuildPhase;
                        buildActionMask = 2147483647;
                        );
                        runOnlyForDeploymentPostprocessing = 0;
                };
+               AF68A48D19196CF800D41CD1 /* Rez */ = {
+                       isa = PBXRezBuildPhase;
+                       buildActionMask = 2147483647;
+                       files = (
+                       );
+                       runOnlyForDeploymentPostprocessing = 0;
+               };
                AF75110D1782B5B900380EA1 /* Rez */ = {
                        isa = PBXRezBuildPhase;
                        buildActionMask = 2147483647;
                        );
                        runOnlyForDeploymentPostprocessing = 0;
                };
+               AFFAB32419158CE40020F021 /* Rez */ = {
+                       isa = PBXRezBuildPhase;
+                       buildActionMask = 2147483647;
+                       files = (
+                       );
+                       runOnlyForDeploymentPostprocessing = 0;
+               };
 /* End PBXRezBuildPhase section */
 
 /* Begin PBXShellScriptBuildPhase section */
                        shellScript = "$SOURCE_ROOT/OSX/update-info-plist.pl -q $BUILT_PRODUCTS_DIR/$PRODUCT_NAME$WRAPPER_SUFFIX";
                        showEnvVarsInLog = 0;
                };
+               AF1ADA1E18501DC200932759 /* Run Update Info Plist */ = {
+                       isa = PBXShellScriptBuildPhase;
+                       buildActionMask = 2147483647;
+                       files = (
+                       );
+                       inputPaths = (
+                       );
+                       name = "Run Update Info Plist";
+                       outputPaths = (
+                       );
+                       runOnlyForDeploymentPostprocessing = 0;
+                       shellPath = /bin/sh;
+                       shellScript = "$SOURCE_ROOT/OSX/update-info-plist.pl -q $BUILT_PRODUCTS_DIR/$PRODUCT_NAME$WRAPPER_SUFFIX";
+                       showEnvVarsInLog = 0;
+               };
                AF2D51F413E94AC4002AA818 /* Run Update Info Plist */ = {
                        isa = PBXShellScriptBuildPhase;
                        buildActionMask = 2147483647;
                        shellScript = "$SOURCE_ROOT/OSX/update-info-plist.pl -q $BUILT_PRODUCTS_DIR/$PRODUCT_NAME$WRAPPER_SUFFIX";
                        showEnvVarsInLog = 0;
                };
+               AF39E292198A11F60064A58D /* Run Update Info Plist */ = {
+                       isa = PBXShellScriptBuildPhase;
+                       buildActionMask = 2147483647;
+                       files = (
+                       );
+                       inputPaths = (
+                       );
+                       name = "Run Update Info Plist";
+                       outputPaths = (
+                       );
+                       runOnlyForDeploymentPostprocessing = 0;
+                       shellPath = /bin/sh;
+                       shellScript = "$SOURCE_ROOT/OSX/update-info-plist.pl -q $BUILT_PRODUCTS_DIR/$PRODUCT_NAME$WRAPPER_SUFFIX";
+                       showEnvVarsInLog = 0;
+               };
                AF3C71550D624BF50030CC0D /* Run Update Info Plist */ = {
                        isa = PBXShellScriptBuildPhase;
                        buildActionMask = 2147483647;
                        shellScript = "$SOURCE_ROOT/OSX/update-info-plist.pl -q $BUILT_PRODUCTS_DIR/$PRODUCT_NAME$WRAPPER_SUFFIX";
                        showEnvVarsInLog = 0;
                };
+               AF68A48E19196CF800D41CD1 /* Run Update Info Plist */ = {
+                       isa = PBXShellScriptBuildPhase;
+                       buildActionMask = 2147483647;
+                       files = (
+                       );
+                       inputPaths = (
+                       );
+                       name = "Run Update Info Plist";
+                       outputPaths = (
+                       );
+                       runOnlyForDeploymentPostprocessing = 0;
+                       shellPath = /bin/sh;
+                       shellScript = "$SOURCE_ROOT/OSX/update-info-plist.pl -q $BUILT_PRODUCTS_DIR/$PRODUCT_NAME$WRAPPER_SUFFIX";
+                       showEnvVarsInLog = 0;
+               };
                AF75110E1782B5B900380EA1 /* Run Update Info Plist */ = {
                        isa = PBXShellScriptBuildPhase;
                        buildActionMask = 2147483647;
                        shellScript = "$SOURCE_ROOT/OSX/update-info-plist.pl -q $BUILT_PRODUCTS_DIR/$PRODUCT_NAME$WRAPPER_SUFFIX";
                        showEnvVarsInLog = 0;
                };
+               AFFAB32519158CE40020F021 /* Run Update Info Plist */ = {
+                       isa = PBXShellScriptBuildPhase;
+                       buildActionMask = 2147483647;
+                       files = (
+                       );
+                       inputPaths = (
+                       );
+                       name = "Run Update Info Plist";
+                       outputPaths = (
+                       );
+                       runOnlyForDeploymentPostprocessing = 0;
+                       shellPath = /bin/sh;
+                       shellScript = "$SOURCE_ROOT/OSX/update-info-plist.pl -q $BUILT_PRODUCTS_DIR/$PRODUCT_NAME$WRAPPER_SUFFIX";
+                       showEnvVarsInLog = 0;
+               };
 /* End PBXShellScriptBuildPhase section */
 
 /* Begin PBXSourcesBuildPhase section */
                        );
                        runOnlyForDeploymentPostprocessing = 0;
                };
+               AF1AD9DE18500F9F00932759 /* Sources */ = {
+                       isa = PBXSourcesBuildPhase;
+                       buildActionMask = 2147483647;
+                       files = (
+                               AF1ADA141850132600932759 /* main.m in Sources */,
+                               AF3633FD18530DD90086A439 /* Updater.m in Sources */,
+                       );
+                       runOnlyForDeploymentPostprocessing = 0;
+               };
                AF2D4D8513E902F5002AA818 /* Sources */ = {
                        isa = PBXSourcesBuildPhase;
                        buildActionMask = 2147483647;
                        );
                        runOnlyForDeploymentPostprocessing = 0;
                };
+               AF39E287198A11F60064A58D /* Sources */ = {
+                       isa = PBXSourcesBuildPhase;
+                       buildActionMask = 2147483647;
+                       files = (
+                               AFCF509C198A1861005B0DB1 /* involute.c in Sources */,
+                               AF39E289198A11F60064A58D /* XScreenSaverSubclass.m in Sources */,
+                               AF39E2AB198A13F50064A58D /* winduprobot.c in Sources */,
+                               AFBE744019A7C6930018AA35 /* robot.c in Sources */,
+                               AF39E2AA198A13F50064A58D /* robot-wireframe.c in Sources */,
+                       );
+                       runOnlyForDeploymentPostprocessing = 0;
+               };
                AF3C714A0D624BF50030CC0D /* Sources */ = {
                        isa = PBXSourcesBuildPhase;
                        buildActionMask = 2147483647;
                                AF4808C8098C3BE800FB32B8 /* InvertedSlider.m in Sources */,
                                AF4808C9098C3BEC00FB32B8 /* jwxyz.m in Sources */,
                                AF4808CA098C3BEE00FB32B8 /* PrefsReader.m in Sources */,
+                               AFDA11251934424D003D397F /* aligned_malloc.c in Sources */,
                                AF4808CC098C3BF200FB32B8 /* spline.c in Sources */,
                                AF4808CD098C3BF400FB32B8 /* usleep.c in Sources */,
                                AF4808CE098C3BF800FB32B8 /* XScreenSaverConfigSheet.m in Sources */,
                                AFA55A530993353500F3E977 /* gllist.c in Sources */,
                                AFA55A95099336D800F3E977 /* normals.c in Sources */,
                                AFA55C570993482800F3E977 /* glxfonts.c in Sources */,
+                               AFDA11271934424D003D397F /* thread_util.c in Sources */,
                                AF975C93099C929800B05160 /* xpm-pixmap.c in Sources */,
                                AF4774E8099D8D8C001F091E /* logo.c in Sources */,
                                AF4775C0099D9E79001F091E /* resources.c in Sources */,
                        );
                        runOnlyForDeploymentPostprocessing = 0;
                };
+               AF68A48319196CF800D41CD1 /* Sources */ = {
+                       isa = PBXSourcesBuildPhase;
+                       buildActionMask = 2147483647;
+                       files = (
+                               AF68A49919196E3E00D41CD1 /* tessellimage.c in Sources */,
+                               AF68A49B19196E3E00D41CD1 /* delaunay.c in Sources */,
+                               AF68A48519196CF800D41CD1 /* XScreenSaverSubclass.m in Sources */,
+                       );
+                       runOnlyForDeploymentPostprocessing = 0;
+               };
                AF7511041782B5B900380EA1 /* Sources */ = {
                        isa = PBXSourcesBuildPhase;
                        buildActionMask = 2147483647;
                                AF918A1F158FC38A002B5D1E /* slip.c in Sources */,
                                AF918A22158FC38A002B5D1E /* strange.c in Sources */,
                                AF918A23158FC38A002B5D1E /* swirl.c in Sources */,
+                               AF68A49A19196E3E00D41CD1 /* tessellimage.c in Sources */,
                                AF918A24158FC38A002B5D1E /* thornbird.c in Sources */,
+                               AF68A49C19196E3E00D41CD1 /* delaunay.c in Sources */,
                                AF918A25158FC38A002B5D1E /* triangle.c in Sources */,
                                AF918A28158FC3BB002B5D1E /* antinspect.c in Sources */,
                                AF918A29158FC3BB002B5D1E /* antmaze.c in Sources */,
                                AFB8A69D1782BFA6004EDB85 /* kaleidocycle.c in Sources */,
                                AF918A70158FC417002B5D1E /* klein.c in Sources */,
                                AF918A71158FC417002B5D1E /* lament.c in Sources */,
+                               AFF1BA1019A96D8B0016A88D /* lament_model.c in Sources */,
                                AF918A72158FC417002B5D1E /* lavalite.c in Sources */,
                                AF918A74158FC417002B5D1E /* marching.c in Sources */,
                                AF918A75158FC417002B5D1E /* menger.c in Sources */,
                                AF918A79158FC417002B5D1E /* molecule.c in Sources */,
                                AF918A7A158FC417002B5D1E /* morph3d.c in Sources */,
                                AF918A7B158FC417002B5D1E /* noof.c in Sources */,
+                               AFFAB33319158EA80020F021 /* projectiveplane.c in Sources */,
                                AF918A7C158FC417002B5D1E /* photopile.c in Sources */,
                                AF918A7D158FC417002B5D1E /* pinion.c in Sources */,
                                AF918A7E158FC417002B5D1E /* pipeobjs.c in Sources */,
                                AF918A84158FC417002B5D1E /* pulsar.c in Sources */,
                                AFF28699178611720050A578 /* quasicrystal.c in Sources */,
                                AF918A85158FC417002B5D1E /* queens.c in Sources */,
+                               AFBE744119A7C6EF0018AA35 /* robot.c in Sources */,
+                               AF39E2B7198A15EE0064A58D /* robot-wireframe.c in Sources */,
                                AF918A86158FC417002B5D1E /* rubik.c in Sources */,
                                AF918A87158FC417002B5D1E /* rubikblocks.c in Sources */,
                                AF918A88158FC417002B5D1E /* s1_1.c in Sources */,
                                AFDA65A8178A541A0070D24B /* unknownpleasures.c in Sources */,
                                AF918AB2158FC47B002B5D1E /* voronoi.c in Sources */,
                                AF918AB3158FC47B002B5D1E /* whale.c in Sources */,
+                               AF39E2B8198A15EE0064A58D /* winduprobot.c in Sources */,
                                AFAA6B451773F07800DE720C /* ios-function-table.m in Sources */,
                        );
                        runOnlyForDeploymentPostprocessing = 0;
                        );
                        runOnlyForDeploymentPostprocessing = 0;
                };
+               AF9E7EBB190F4C1B00A8B01F /* Sources */ = {
+                       isa = PBXSourcesBuildPhase;
+                       buildActionMask = 2147483647;
+                       files = (
+                               AF9E7EC9190F4C4000A8B01F /* enable_gc.c in Sources */,
+                       );
+                       runOnlyForDeploymentPostprocessing = 0;
+               };
                AFA339340B058505002B0E7D /* Sources */ = {
                        isa = PBXSourcesBuildPhase;
                        buildActionMask = 2147483647;
                        buildActionMask = 2147483647;
                        files = (
                                AFA55A8F0993369100F3E977 /* lament.c in Sources */,
+                               AFF1BA0F19A96D8B0016A88D /* lament_model.c in Sources */,
                                AF9CCAC409959D450075E99B /* XScreenSaverSubclass.m in Sources */,
                        );
                        runOnlyForDeploymentPostprocessing = 0;
                        );
                        runOnlyForDeploymentPostprocessing = 0;
                };
+               AFFAB31A19158CE40020F021 /* Sources */ = {
+                       isa = PBXSourcesBuildPhase;
+                       buildActionMask = 2147483647;
+                       files = (
+                               AFFAB31C19158CE40020F021 /* XScreenSaverSubclass.m in Sources */,
+                               AFFAB33219158EA80020F021 /* projectiveplane.c in Sources */,
+                       );
+                       runOnlyForDeploymentPostprocessing = 0;
+               };
 /* End PBXSourcesBuildPhase section */
 
 /* Begin PBXTargetDependency section */
                        target = AF35E88A0E63823600691F2F /* Jigsaw */;
                        targetProxy = AF35E8A20E63825600691F2F /* PBXContainerItemProxy */;
                };
+               AF36340118540D050086A439 /* PBXTargetDependency */ = {
+                       isa = PBXTargetDependency;
+                       target = AF1AD9E118500F9F00932759 /* XScreenSaverUpdater */;
+                       targetProxy = AF36340018540D050086A439 /* PBXContainerItemProxy */;
+               };
+               AF39E283198A11F60064A58D /* PBXTargetDependency */ = {
+                       isa = PBXTargetDependency;
+                       target = AF4808C0098C3B6C00FB32B8 /* jwxyz */;
+                       targetProxy = AF39E284198A11F60064A58D /* PBXContainerItemProxy */;
+               };
+               AF39E2BA198A16920064A58D /* PBXTargetDependency */ = {
+                       isa = PBXTargetDependency;
+                       target = AF39E282198A11F60064A58D /* WindupRobot */;
+                       targetProxy = AF39E2B9198A16920064A58D /* PBXContainerItemProxy */;
+               };
                AF3C71460D624BF50030CC0D /* PBXTargetDependency */ = {
                        isa = PBXTargetDependency;
                        target = AF4808C0098C3B6C00FB32B8 /* jwxyz */;
                        target = AF4808C0098C3B6C00FB32B8 /* jwxyz */;
                        targetProxy = AF6427AA09A2DE36000F4CD4 /* PBXContainerItemProxy */;
                };
+               AF68A47F19196CF800D41CD1 /* PBXTargetDependency */ = {
+                       isa = PBXTargetDependency;
+                       target = AF4808C0098C3B6C00FB32B8 /* jwxyz */;
+                       targetProxy = AF68A48019196CF800D41CD1 /* PBXContainerItemProxy */;
+               };
+               AF68A49E19196EA000D41CD1 /* PBXTargetDependency */ = {
+                       isa = PBXTargetDependency;
+                       target = AF68A47E19196CF800D41CD1 /* Tessellimage */;
+                       targetProxy = AF68A49D19196EA000D41CD1 /* PBXContainerItemProxy */;
+               };
                AF714E4F105613410046AB1D /* PBXTargetDependency */ = {
                        isa = PBXTargetDependency;
                        target = AF4774B4099D8B5F001F091E /* LMorph */;
                        target = AF4808C0098C3B6C00FB32B8 /* jwxyz */;
                        targetProxy = AF9D4DEE09B5BB19006E59CF /* PBXContainerItemProxy */;
                };
+               AF9E7EDF190F4F7200A8B01F /* PBXTargetDependency */ = {
+                       isa = PBXTargetDependency;
+                       target = AF9E7EBE190F4C1B00A8B01F /* enable_gc */;
+                       targetProxy = AF9E7EDE190F4F7200A8B01F /* PBXContainerItemProxy */;
+               };
                AFA160921052FF87009B93AA /* PBXTargetDependency */ = {
                        isa = PBXTargetDependency;
                        target = AF6425CC09A18855000F4CD4 /* HyperCube */;
                        target = AFF463580C440AEF00EE6509 /* GLCells */;
                        targetProxy = AFF4636E0C440B3B00EE6509 /* PBXContainerItemProxy */;
                };
+               AFFAB31619158CE40020F021 /* PBXTargetDependency */ = {
+                       isa = PBXTargetDependency;
+                       target = AF4808C0098C3B6C00FB32B8 /* jwxyz */;
+                       targetProxy = AFFAB31719158CE40020F021 /* PBXContainerItemProxy */;
+               };
+               AFFAB33519158F1E0020F021 /* PBXTargetDependency */ = {
+                       isa = PBXTargetDependency;
+                       target = AFFAB31519158CE40020F021 /* ProjectivePlane */;
+                       targetProxy = AFFAB33419158F1E0020F021 /* PBXContainerItemProxy */;
+               };
 /* End PBXTargetDependency section */
 
 /* Begin PBXVariantGroup section */
                        };
                        name = Release;
                };
+               AF1ADA0F18500FA200932759 /* Debug */ = {
+                       isa = XCBuildConfiguration;
+                       buildSettings = {
+                               BUNDLE_IDENTIFIER = "org.jwz.${PROJECT_NAME:rfc1034identifier}.updater";
+                               FRAMEWORK_SEARCH_PATHS = (
+                                       "$(inherited)",
+                                       /Users/jwz/src/xscreensaver/OSX,
+                               );
+                               INFOPLIST_FILE = "$(SRCROOT)/OSX/Updater.plist";
+                               "OTHER_CFLAGS[sdk=macosx*]" = "-fno-objc-gc";
+                               PRODUCT_NAME = "$(TARGET_NAME)";
+                               WRAPPER_EXTENSION = app;
+                       };
+                       name = Debug;
+               };
+               AF1ADA1018500FA200932759 /* Release */ = {
+                       isa = XCBuildConfiguration;
+                       buildSettings = {
+                               BUNDLE_IDENTIFIER = "org.jwz.${PROJECT_NAME:rfc1034identifier}.updater";
+                               FRAMEWORK_SEARCH_PATHS = (
+                                       "$(inherited)",
+                                       /Users/jwz/src/xscreensaver/OSX,
+                               );
+                               INFOPLIST_FILE = "$(SRCROOT)/OSX/Updater.plist";
+                               "OTHER_CFLAGS[sdk=macosx*]" = "-fno-objc-gc";
+                               PRODUCT_NAME = "$(TARGET_NAME)";
+                               WRAPPER_EXTENSION = app;
+                       };
+                       name = Release;
+               };
                AF2D4D8D13E902F5002AA818 /* Debug */ = {
                        isa = XCBuildConfiguration;
                        buildSettings = {
                        };
                        name = Release;
                };
+               AF39E294198A11F60064A58D /* Debug */ = {
+                       isa = XCBuildConfiguration;
+                       buildSettings = {
+                               GCC_PREPROCESSOR_DEFINITIONS_NOT_USED_IN_PRECOMPS = (
+                                       "USE_GL=1",
+                                       "$(GCC_PREPROCESSOR_DEFINITIONS_NOT_USED_IN_PRECOMPS)",
+                               );
+                               "OTHER_LDFLAGS[sdk=macosx*]" = (
+                                       "-ljwxyz",
+                                       "-framework",
+                                       ScreenSaver,
+                                       "-framework",
+                                       Cocoa,
+                                       "-framework",
+                                       Carbon,
+                                       "-framework",
+                                       AGL,
+                                       "-framework",
+                                       OpenGL,
+                               );
+                               PRODUCT_NAME = WindupRobot;
+                       };
+                       name = Debug;
+               };
+               AF39E295198A11F60064A58D /* Release */ = {
+                       isa = XCBuildConfiguration;
+                       buildSettings = {
+                               GCC_PREPROCESSOR_DEFINITIONS_NOT_USED_IN_PRECOMPS = (
+                                       "USE_GL=1",
+                                       "$(GCC_PREPROCESSOR_DEFINITIONS_NOT_USED_IN_PRECOMPS)",
+                               );
+                               "OTHER_LDFLAGS[sdk=macosx*]" = (
+                                       "-ljwxyz",
+                                       "-framework",
+                                       ScreenSaver,
+                                       "-framework",
+                                       Cocoa,
+                                       "-framework",
+                                       Carbon,
+                                       "-framework",
+                                       AGL,
+                                       "-framework",
+                                       OpenGL,
+                               );
+                               PRODUCT_NAME = WindupRobot;
+                       };
+                       name = Release;
+               };
                AF3C71570D624BF50030CC0D /* Debug */ = {
                        isa = XCBuildConfiguration;
                        buildSettings = {
                                INSTALL_PATH = /usr/local/lib;
                                SKIP_INSTALL = YES;
                                SUPPORTED_PLATFORMS = "macosx iphonesimulator iphoneos";
-                               VALID_ARCHS = "i386 x86_64 armv6 armv7 armv7s";
+                               VALID_ARCHS = "i386 x86_64 armv6 armv7 armv7s arm64";
                        };
                        name = Debug;
                };
                                INSTALL_PATH = /usr/local/lib;
                                SKIP_INSTALL = YES;
                                SUPPORTED_PLATFORMS = "macosx iphonesimulator iphoneos";
-                               VALID_ARCHS = "i386 x86_64 armv6 armv7 armv7s";
+                               VALID_ARCHS = "i386 x86_64 armv6 armv7 armv7s arm64";
                        };
                        name = Release;
                };
                        };
                        name = Release;
                };
+               AF68A49019196CF800D41CD1 /* Debug */ = {
+                       isa = XCBuildConfiguration;
+                       buildSettings = {
+                               PRODUCT_NAME = Tessellimage;
+                       };
+                       name = Debug;
+               };
+               AF68A49119196CF800D41CD1 /* Release */ = {
+                       isa = XCBuildConfiguration;
+                       buildSettings = {
+                               PRODUCT_NAME = Tessellimage;
+                       };
+                       name = Release;
+               };
                AF7511101782B5B900380EA1 /* Debug */ = {
                        isa = XCBuildConfiguration;
                        buildSettings = {
                        isa = XCBuildConfiguration;
                        buildSettings = {
                                BUNDLE_IDENTIFIER = "org.jwz.${PROJECT_NAME:rfc1034identifier}";
+                               CODE_SIGN_IDENTITY = "iPhone Developer";
+                               "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
                                GCC_PREPROCESSOR_DEFINITIONS = (
                                        "USE_IPHONE=1",
                                        "$(inherited)",
                                );
+                               "GCC_WARN_64_TO_32_BIT_CONVERSION[arch=*64]" = NO;
                                INFOPLIST_FILE = OSX/iSaverRunner.plist;
                                INSTALL_PATH = "$(HOME)/Applications";
                                PRODUCT_NAME = XScreenSaver;
+                               PROVISIONING_PROFILE = "";
                                SDKROOT = iphoneos;
                                WRAPPER_EXTENSION = app;
                        };
                        isa = XCBuildConfiguration;
                        buildSettings = {
                                BUNDLE_IDENTIFIER = "org.jwz.${PROJECT_NAME:rfc1034identifier}";
+                               CODE_SIGN_IDENTITY = "iPhone Developer";
+                               "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
                                GCC_PREPROCESSOR_DEFINITIONS = (
                                        "USE_IPHONE=1",
                                        "$(inherited)",
                                );
+                               "GCC_WARN_64_TO_32_BIT_CONVERSION[arch=*64]" = NO;
                                INFOPLIST_FILE = OSX/iSaverRunner.plist;
                                INSTALL_PATH = "$(HOME)/Applications";
                                PRODUCT_NAME = XScreenSaver;
+                               PROVISIONING_PROFILE = "";
                                SDKROOT = iphoneos;
                                WRAPPER_EXTENSION = app;
                        };
                        };
                        name = Release;
                };
+               AF9E7EC6190F4C1C00A8B01F /* Debug */ = {
+                       isa = XCBuildConfiguration;
+                       buildSettings = {
+                               PRODUCT_NAME = "$(TARGET_NAME)";
+                               SKIP_INSTALL = YES;
+                       };
+                       name = Debug;
+               };
+               AF9E7EC7190F4C1C00A8B01F /* Release */ = {
+                       isa = XCBuildConfiguration;
+                       buildSettings = {
+                               PRODUCT_NAME = "$(TARGET_NAME)";
+                               SKIP_INSTALL = YES;
+                       };
+                       name = Release;
+               };
                AFA3393E0B058505002B0E7D /* Debug */ = {
                        isa = XCBuildConfiguration;
                        buildSettings = {
                        };
                        name = Release;
                };
+               AFFAB32719158CE40020F021 /* Debug */ = {
+                       isa = XCBuildConfiguration;
+                       buildSettings = {
+                               GCC_PREPROCESSOR_DEFINITIONS_NOT_USED_IN_PRECOMPS = (
+                                       "USE_GL=1",
+                                       "$(GCC_PREPROCESSOR_DEFINITIONS_NOT_USED_IN_PRECOMPS)",
+                               );
+                               "OTHER_LDFLAGS[sdk=macosx*]" = (
+                                       "-ljwxyz",
+                                       "-framework",
+                                       ScreenSaver,
+                                       "-framework",
+                                       Cocoa,
+                                       "-framework",
+                                       Carbon,
+                                       "-framework",
+                                       AGL,
+                                       "-framework",
+                                       OpenGL,
+                               );
+                       };
+                       name = Debug;
+               };
+               AFFAB32819158CE40020F021 /* Release */ = {
+                       isa = XCBuildConfiguration;
+                       buildSettings = {
+                               GCC_PREPROCESSOR_DEFINITIONS_NOT_USED_IN_PRECOMPS = (
+                                       "USE_GL=1",
+                                       "$(GCC_PREPROCESSOR_DEFINITIONS_NOT_USED_IN_PRECOMPS)",
+                               );
+                               "OTHER_LDFLAGS[sdk=macosx*]" = (
+                                       "-ljwxyz",
+                                       "-framework",
+                                       ScreenSaver,
+                                       "-framework",
+                                       Cocoa,
+                                       "-framework",
+                                       Carbon,
+                                       "-framework",
+                                       AGL,
+                                       "-framework",
+                                       OpenGL,
+                               );
+                       };
+                       name = Release;
+               };
                C01FCF4F08A954540054247B /* Debug */ = {
                        isa = XCBuildConfiguration;
                        buildSettings = {
                                        "HAVE_GETIFADDRS=1",
                                        "HAVE_FORKPTY=1",
                                        "HAVE_UTIL_H=1",
+                                       "HAVE_PTHREAD=1",
                                        "$(GCC_PREPROCESSOR_DEFINITIONS)",
                                );
                                GCC_PREPROCESSOR_DEFINITIONS_NOT_USED_IN_PRECOMPS = (
                                );
                                INFOPLIST_FILE = OSX/XScreenSaver.plist;
                                INSTALL_PATH = "$(HOME)/Library/Screen Savers";
-                               IPHONEOS_DEPLOYMENT_TARGET = 4.3;
+                               IPHONEOS_DEPLOYMENT_TARGET = 5.1.1;
                                LIBRARY_SEARCH_PATHS = "$(BUILD_DIR)/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)";
                                MACOSX_DEPLOYMENT_TARGET = 10.4;
+                               OTHER_CFLAGS = "";
                                "OTHER_CFLAGS[sdk=macosx*]" = "-fobjc-gc";
+                               "OTHER_LDFLAGS[sdk=macosx*]" = "-headerpad_max_install_names";
                                PRODUCT_NAME = "$(TARGET_NAME)";
                                SDKROOT = macosx;
                                "SDKROOT[arch=arm*]" = iphoneos;
                        buildSettings = {
                                ARCHS = "$(ARCHS_STANDARD_32_64_BIT)";
                                BUNDLE_IDENTIFIER = "org.jwz.${PROJECT_NAME:rfc1034identifier}.${PRODUCT_NAME:rfc1034identifier}";
-                               "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Distribution: Jamie Zawinski";
-                               "CODE_SIGN_IDENTITY[sdk=iphonesimulator*]" = "iPhone Distribution: Jamie Zawinski";
+                               "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Distribution: Jamie Zawinski (4627ATJELP)";
+                               "CODE_SIGN_IDENTITY[sdk=iphonesimulator*]" = "iPhone Distribution: Jamie Zawinski (4627ATJELP)";
                                COMBINE_HIDPI_IMAGES = YES;
                                GCC_GENERATE_DEBUGGING_SYMBOLS = NO;
                                GCC_PRECOMPILE_PREFIX_HEADER = YES;
                                        "HAVE_GETIFADDRS=1",
                                        "HAVE_FORKPTY=1",
                                        "HAVE_UTIL_H=1",
+                                       "HAVE_PTHREAD=1",
                                        "$(GCC_PREPROCESSOR_DEFINITIONS)",
                                );
                                GCC_PREPROCESSOR_DEFINITIONS_NOT_USED_IN_PRECOMPS = (
                                );
                                INFOPLIST_FILE = OSX/XScreenSaver.plist;
                                INSTALL_PATH = "$(HOME)/Library/Screen Savers";
-                               IPHONEOS_DEPLOYMENT_TARGET = 4.3;
+                               IPHONEOS_DEPLOYMENT_TARGET = 5.1.1;
                                LIBRARY_SEARCH_PATHS = "$(BUILD_DIR)/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)";
                                LLVM_LTO = NO;
                                "LLVM_LTO[sdk=macosx*]" = YES;
                                MACOSX_DEPLOYMENT_TARGET = 10.4;
+                               OTHER_CFLAGS = "";
                                "OTHER_CFLAGS[sdk=macosx*]" = "-fobjc-gc";
+                               "OTHER_LDFLAGS[sdk=macosx*]" = "-headerpad_max_install_names";
                                PRODUCT_NAME = "$(TARGET_NAME)";
                                SDKROOT = macosx;
                                "SDKROOT[arch=arm*]" = iphoneos;
                        defaultConfigurationIsVisible = 0;
                        defaultConfigurationName = Release;
                };
+               AF1ADA0E18500FA200932759 /* Build configuration list for PBXNativeTarget "XScreenSaverUpdater" */ = {
+                       isa = XCConfigurationList;
+                       buildConfigurations = (
+                               AF1ADA0F18500FA200932759 /* Debug */,
+                               AF1ADA1018500FA200932759 /* Release */,
+                       );
+                       defaultConfigurationIsVisible = 0;
+                       defaultConfigurationName = Release;
+               };
                AF2D4D8C13E902F5002AA818 /* Build configuration list for PBXNativeTarget "Phosphor-iOS" */ = {
                        isa = XCConfigurationList;
                        buildConfigurations = (
                        defaultConfigurationIsVisible = 0;
                        defaultConfigurationName = Release;
                };
+               AF39E293198A11F60064A58D /* Build configuration list for PBXNativeTarget "WindupRobot" */ = {
+                       isa = XCConfigurationList;
+                       buildConfigurations = (
+                               AF39E294198A11F60064A58D /* Debug */,
+                               AF39E295198A11F60064A58D /* Release */,
+                       );
+                       defaultConfigurationIsVisible = 0;
+                       defaultConfigurationName = Release;
+               };
                AF3C71560D624BF50030CC0D /* Build configuration list for PBXNativeTarget "Hypnowheel" */ = {
                        isa = XCConfigurationList;
                        buildConfigurations = (
                        defaultConfigurationIsVisible = 0;
                        defaultConfigurationName = Release;
                };
+               AF68A48F19196CF800D41CD1 /* Build configuration list for PBXNativeTarget "Tessellimage" */ = {
+                       isa = XCConfigurationList;
+                       buildConfigurations = (
+                               AF68A49019196CF800D41CD1 /* Debug */,
+                               AF68A49119196CF800D41CD1 /* Release */,
+                       );
+                       defaultConfigurationIsVisible = 0;
+                       defaultConfigurationName = Release;
+               };
                AF75110F1782B5B900380EA1 /* Build configuration list for PBXNativeTarget "Kaleidocycle" */ = {
                        isa = XCConfigurationList;
                        buildConfigurations = (
                        defaultConfigurationIsVisible = 0;
                        defaultConfigurationName = Release;
                };
+               AF9E7EC5190F4C1C00A8B01F /* Build configuration list for PBXNativeTarget "enable_gc" */ = {
+                       isa = XCConfigurationList;
+                       buildConfigurations = (
+                               AF9E7EC6190F4C1C00A8B01F /* Debug */,
+                               AF9E7EC7190F4C1C00A8B01F /* Release */,
+                       );
+                       defaultConfigurationIsVisible = 0;
+                       defaultConfigurationName = Release;
+               };
                AFA3393D0B058505002B0E7D /* Build configuration list for PBXNativeTarget "WebCollage" */ = {
                        isa = XCConfigurationList;
                        buildConfigurations = (
                        defaultConfigurationIsVisible = 0;
                        defaultConfigurationName = Release;
                };
+               AFFAB32619158CE40020F021 /* Build configuration list for PBXNativeTarget "ProjectivePlane" */ = {
+                       isa = XCConfigurationList;
+                       buildConfigurations = (
+                               AFFAB32719158CE40020F021 /* Debug */,
+                               AFFAB32819158CE40020F021 /* Release */,
+                       );
+                       defaultConfigurationIsVisible = 0;
+                       defaultConfigurationName = Release;
+               };
                C01FCF4E08A954540054247B /* Build configuration list for PBXProject "xscreensaver" */ = {
                        isa = XCConfigurationList;
                        buildConfigurations = (