Index: trunk/Cocoa/Pester/Source/English.lproj/MainMenu.nib/classes.nib
===================================================================
--- trunk/Cocoa/Pester/Source/English.lproj/MainMenu.nib/classes.nib	(revision 348)
+++ trunk/Cocoa/Pester/Source/English.lproj/MainMenu.nib/classes.nib	(revision 355)
@@ -1,111 +1,251 @@
-{
-    IBClasses = (
-        {CLASS = FirstResponder; LANGUAGE = ObjC; SUPERCLASS = NSObject; }, 
-        {CLASS = NJRDateFormatter; LANGUAGE = ObjC; SUPERCLASS = NSDateFormatter; }, 
-        {
-            ACTIONS = {select = id; }; 
-            CLASS = NJRFSObjectSelector; 
-            LANGUAGE = ObjC; 
-            SUPERCLASS = NSButton; 
-        }, 
-        {
-            ACTIONS = {clearAllEntries = id; removeEntry = id; }; 
-            CLASS = NJRHistoryTrackingComboBox; 
-            LANGUAGE = ObjC; 
-            SUPERCLASS = NSComboBox; 
-        }, 
-        {CLASS = NJRIntegerFilter; LANGUAGE = ObjC; SUPERCLASS = NSNumberFormatter; }, 
-        {
-            CLASS = NJRIntervalField; 
-            LANGUAGE = ObjC; 
-            OUTLETS = {intervalUnits = NSPopUpButton; }; 
-            SUPERCLASS = NSTextField; 
-        }, 
-        {
-            ACTIONS = {stopSoundPreview = id; }; 
-            CLASS = NJRQTMediaPopUpButton; 
-            LANGUAGE = ObjC; 
-            OUTLETS = {preview = NSMovieView; }; 
-            SUPERCLASS = NSPopUpButton; 
-        }, 
-        {CLASS = NJRUnfocusableMovieView; LANGUAGE = ObjC; SUPERCLASS = NSMovieView; }, 
-        {
-            ACTIONS = {stopVoicePreview = id; }; 
-            CLASS = NJRVoicePopUpButton; 
-            LANGUAGE = ObjC; 
-            SUPERCLASS = NSPopUpButton; 
-        }, 
-        {CLASS = NSDisclosureButtonCell; LANGUAGE = ObjC; SUPERCLASS = NSButtonCell; }, 
-        {CLASS = NSObject; LANGUAGE = ObjC; }, 
-        {
-            ACTIONS = {
-                dateCompleted = id; 
-                doScriptChanged = id; 
-                doSpeakChanged = id; 
-                editAlertChanged = id; 
-                inAtChanged = id; 
-                playSoundChanged = id; 
-                setAlarm = id; 
-                setSoundRepetitionCount = id; 
-                showCalendar = id; 
-                showVolume = id; 
-                silence = id; 
-                toggleAlertEditor = id; 
-                update = id; 
-            }; 
-            CLASS = PSAlarmSetController; 
-            LANGUAGE = ObjC; 
-            OUTLETS = {
-                alertTabs = NSTabView; 
-                alertView = NSTextField; 
-                bounceDockIcon = NSButton; 
-                cancelButton = NSButton; 
-                displayMessage = NSButtonCell; 
-                doScript = NSButtonCell; 
-                doSpeak = NSButtonCell; 
-                editAlert = NSButtonCell; 
-                inAtMatrix = NSMatrix; 
-                messageField = NSTextField; 
-                playSound = NSButtonCell; 
-                script = NJRFSObjectSelector; 
-                scriptSelectButton = NSButton; 
-                setButton = NSButton; 
-                sound = NJRQTMediaPopUpButton; 
-                soundRepetitionStepper = NSStepper; 
-                soundRepetitions = NSTextField; 
-                soundRepetitionsLabel = NSTextField; 
-                soundVolumeButton = NSButton; 
-                timeCalendarButton = NSButton; 
-                timeDate = NSTextField; 
-                timeDateCompletions = NSPopUpButton; 
-                timeInterval = NJRIntervalField; 
-                timeIntervalRepeats = NSButton; 
-                timeIntervalUnits = NSPopUpButton; 
-                timeOfDay = NSTextField; 
-                timeSummary = NSTextField; 
-                voice = NJRVoicePopUpButton; 
-                wakeUp = NSButtonCell; 
-            }; 
-            SUPERCLASS = NSWindowController; 
-        }, 
-        {
-            CLASS = PSAlarmsController; 
-            LANGUAGE = ObjC; 
-            OUTLETS = {tableView = NSTableView; }; 
-            SUPERCLASS = NSWindowController; 
-        }, 
-        {
-            ACTIONS = {
-                orderFrontAlarmsPanel = id; 
-                orderFrontPreferencesPanel = id; 
-                orderFrontSetAlarmPanel = id; 
-                stopAlerts = id; 
-            }; 
-            CLASS = PSApplication; 
-            LANGUAGE = ObjC; 
-            OUTLETS = {alarmSetController = PSAlarmSetController; }; 
-            SUPERCLASS = NSApplication; 
-        }
-    ); 
-    IBVersion = 1; 
-}
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
+<plist version="1.0">
+<dict>
+	<key>IBClasses</key>
+	<array>
+		<dict>
+			<key>ACTIONS</key>
+			<dict>
+				<key>stopVoicePreview</key>
+				<string>id</string>
+			</dict>
+			<key>CLASS</key>
+			<string>NJRVoicePopUpButton</string>
+			<key>LANGUAGE</key>
+			<string>ObjC</string>
+			<key>SUPERCLASS</key>
+			<string>NSPopUpButton</string>
+		</dict>
+		<dict>
+			<key>ACTIONS</key>
+			<dict>
+				<key>dateCompleted</key>
+				<string>NSPopUpButton</string>
+				<key>doScriptChanged</key>
+				<string>id</string>
+				<key>doSpeakChanged</key>
+				<string>id</string>
+				<key>editAlertChanged</key>
+				<string>id</string>
+				<key>inAtChanged</key>
+				<string>id</string>
+				<key>playSoundChanged</key>
+				<string>id</string>
+				<key>setAlarm</key>
+				<string>NSButton</string>
+				<key>setSoundRepetitionCount</key>
+				<string>id</string>
+				<key>showCalendar</key>
+				<string>NSButton</string>
+				<key>showVolume</key>
+				<string>NSButton</string>
+				<key>silence</key>
+				<string>id</string>
+				<key>toggleAlertEditor</key>
+				<string>id</string>
+				<key>update</key>
+				<string>id</string>
+			</dict>
+			<key>CLASS</key>
+			<string>PSAlarmSetController</string>
+			<key>LANGUAGE</key>
+			<string>ObjC</string>
+			<key>OUTLETS</key>
+			<dict>
+				<key>alertTabs</key>
+				<string>NSTabView</string>
+				<key>alertView</key>
+				<string>NSTextField</string>
+				<key>bounceDockIcon</key>
+				<string>NSButton</string>
+				<key>cancelButton</key>
+				<string>NSButton</string>
+				<key>displayMessage</key>
+				<string>NSButtonCell</string>
+				<key>doScript</key>
+				<string>NSButtonCell</string>
+				<key>doSpeak</key>
+				<string>NSButtonCell</string>
+				<key>editAlert</key>
+				<string>NSButtonCell</string>
+				<key>inAtMatrix</key>
+				<string>NSMatrix</string>
+				<key>messageField</key>
+				<string>NSTextField</string>
+				<key>playSound</key>
+				<string>NSButtonCell</string>
+				<key>script</key>
+				<string>NJRFSObjectSelector</string>
+				<key>scriptSelectButton</key>
+				<string>NSButton</string>
+				<key>setButton</key>
+				<string>NSButton</string>
+				<key>sound</key>
+				<string>NJRQTMediaPopUpButton</string>
+				<key>soundRepetitionStepper</key>
+				<string>NSStepper</string>
+				<key>soundRepetitions</key>
+				<string>NSTextField</string>
+				<key>soundRepetitionsLabel</key>
+				<string>NSTextField</string>
+				<key>soundVolumeButton</key>
+				<string>NSButton</string>
+				<key>timeCalendarButton</key>
+				<string>NSButton</string>
+				<key>timeDate</key>
+				<string>NSTextField</string>
+				<key>timeDateCompletions</key>
+				<string>NSPopUpButton</string>
+				<key>timeInterval</key>
+				<string>NJRIntervalField</string>
+				<key>timeIntervalRepeats</key>
+				<string>NSButton</string>
+				<key>timeIntervalUnits</key>
+				<string>NSPopUpButton</string>
+				<key>timeOfDay</key>
+				<string>NSTextField</string>
+				<key>timeSummary</key>
+				<string>NSTextField</string>
+				<key>voice</key>
+				<string>NJRVoicePopUpButton</string>
+				<key>wakeUp</key>
+				<string>NSButtonCell</string>
+			</dict>
+			<key>SUPERCLASS</key>
+			<string>NSWindowController</string>
+		</dict>
+		<dict>
+			<key>CLASS</key>
+			<string>NSDisclosureButtonCell</string>
+			<key>LANGUAGE</key>
+			<string>ObjC</string>
+			<key>SUPERCLASS</key>
+			<string>NSButtonCell</string>
+		</dict>
+		<dict>
+			<key>ACTIONS</key>
+			<dict>
+				<key>clearAllEntries</key>
+				<string>id</string>
+				<key>removeEntry</key>
+				<string>id</string>
+			</dict>
+			<key>CLASS</key>
+			<string>NJRHistoryTrackingComboBox</string>
+			<key>LANGUAGE</key>
+			<string>ObjC</string>
+			<key>SUPERCLASS</key>
+			<string>NSComboBox</string>
+		</dict>
+		<dict>
+			<key>CLASS</key>
+			<string>NSMenuItem</string>
+			<key>LANGUAGE</key>
+			<string>ObjC</string>
+			<key>SUPERCLASS</key>
+			<string>NSObject</string>
+		</dict>
+		<dict>
+			<key>ACTIONS</key>
+			<dict>
+				<key>stopSoundPreview</key>
+				<string>id</string>
+			</dict>
+			<key>CLASS</key>
+			<string>NJRQTMediaPopUpButton</string>
+			<key>LANGUAGE</key>
+			<string>ObjC</string>
+			<key>OUTLETS</key>
+			<dict>
+				<key>preview</key>
+				<string>NSMovieView</string>
+			</dict>
+			<key>SUPERCLASS</key>
+			<string>NSPopUpButton</string>
+		</dict>
+		<dict>
+			<key>CLASS</key>
+			<string>FirstResponder</string>
+			<key>LANGUAGE</key>
+			<string>ObjC</string>
+			<key>SUPERCLASS</key>
+			<string>NSObject</string>
+		</dict>
+		<dict>
+			<key>CLASS</key>
+			<string>NJRUnfocusableMovieView</string>
+			<key>LANGUAGE</key>
+			<string>ObjC</string>
+			<key>SUPERCLASS</key>
+			<string>NSMovieView</string>
+		</dict>
+		<dict>
+			<key>CLASS</key>
+			<string>NSObject</string>
+			<key>LANGUAGE</key>
+			<string>ObjC</string>
+		</dict>
+		<dict>
+			<key>CLASS</key>
+			<string>NJRIntervalField</string>
+			<key>LANGUAGE</key>
+			<string>ObjC</string>
+			<key>OUTLETS</key>
+			<dict>
+				<key>intervalUnits</key>
+				<string>NSPopUpButton</string>
+			</dict>
+			<key>SUPERCLASS</key>
+			<string>NSTextField</string>
+		</dict>
+		<dict>
+			<key>ACTIONS</key>
+			<dict>
+				<key>orderFrontAlarmsPanel</key>
+				<string>id</string>
+				<key>orderFrontPreferencesPanel</key>
+				<string>id</string>
+				<key>orderFrontSetAlarmPanel</key>
+				<string>id</string>
+				<key>stopAlerts</key>
+				<string>id</string>
+			</dict>
+			<key>CLASS</key>
+			<string>PSApplication</string>
+			<key>LANGUAGE</key>
+			<string>ObjC</string>
+			<key>OUTLETS</key>
+			<dict>
+				<key>alarmSetController</key>
+				<string>PSAlarmSetController</string>
+			</dict>
+			<key>SUPERCLASS</key>
+			<string>NSApplication</string>
+		</dict>
+		<dict>
+			<key>CLASS</key>
+			<string>NJRIntegerFilter</string>
+			<key>LANGUAGE</key>
+			<string>ObjC</string>
+			<key>SUPERCLASS</key>
+			<string>NSNumberFormatter</string>
+		</dict>
+		<dict>
+			<key>ACTIONS</key>
+			<dict>
+				<key>select</key>
+				<string>id</string>
+			</dict>
+			<key>CLASS</key>
+			<string>NJRFSObjectSelector</string>
+			<key>LANGUAGE</key>
+			<string>ObjC</string>
+			<key>SUPERCLASS</key>
+			<string>NSButton</string>
+		</dict>
+	</array>
+	<key>IBVersion</key>
+	<string>1</string>
+</dict>
+</plist>
Index: trunk/Cocoa/Pester/Source/English.lproj/MainMenu.nib/info.nib
===================================================================
--- trunk/Cocoa/Pester/Source/English.lproj/MainMenu.nib/info.nib	(revision 348)
+++ trunk/Cocoa/Pester/Source/English.lproj/MainMenu.nib/info.nib	(revision 355)
@@ -1,44 +1,20 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
+<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
 <plist version="1.0">
 <dict>
-	<key>IBDocumentLocation</key>
-	<string>63 2 356 240 0 0 1280 832 </string>
-	<key>IBEditorPositions</key>
-	<dict>
-		<key>29</key>
-		<string>130 241 273 44 0 0 1280 832 </string>
-		<key>640</key>
-		<string>63 247 111 180 0 0 1280 832 </string>
-	</dict>
 	<key>IBFramework Version</key>
-	<string>291.0</string>
+	<string>629</string>
+	<key>IBLastKnownRelativeProjectPath</key>
+	<string>../../Pester.xcodeproj</string>
+	<key>IBOldestOS</key>
+	<integer>5</integer>
 	<key>IBOpenObjects</key>
 	<array>
-		<integer>640</integer>
-		<integer>21</integer>
+		<integer>2</integer>
 	</array>
 	<key>IBSystem Version</key>
-	<string>6I32</string>
-	<key>IBUserGuides</key>
-	<dict>
-		<key>21</key>
-		<dict>
-			<key>guideLocations</key>
-			<array>
-				<string>Horizontal:122.000000</string>
-				<string>Horizontal:178.000000</string>
-				<string>Horizontal:192.000000</string>
-				<string>Vertical:36.000000</string>
-				<string>Vertical:16.000000</string>
-				<string>Vertical:85.000000</string>
-				<string>Vertical:422.000000</string>
-				<string>Horizontal:150.000000</string>
-				<string>Horizontal:150.000000</string>
-			</array>
-			<key>guidesLocked</key>
-			<false/>
-		</dict>
-	</dict>
+	<string>9B18</string>
+	<key>targetFramework</key>
+	<string>IBCocoaFramework</string>
 </dict>
 </plist>
Index: trunk/Cocoa/Pester/Source/Info-Pester.plist
===================================================================
--- trunk/Cocoa/Pester/Source/Info-Pester.plist	(revision 355)
+++ trunk/Cocoa/Pester/Source/Info-Pester.plist	(revision 355)
@@ -0,0 +1,32 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
+<plist version="1.0">
+<dict>
+	<key>CFBundleDevelopmentRegion</key>
+	<string>English</string>
+	<key>CFBundleExecutable</key>
+	<string>Pester</string>
+	<key>CFBundleGetInfoString</key>
+	<string>Pester 1.1b4, © 2002–03 Nicholas Riley</string>
+	<key>CFBundleIconFile</key>
+	<string>Application icon</string>
+	<key>CFBundleIdentifier</key>
+	<string>net.sabi.Pester</string>
+	<key>CFBundleInfoDictionaryVersion</key>
+	<string>6.0</string>
+	<key>CFBundleName</key>
+	<string>Pester</string>
+	<key>CFBundlePackageType</key>
+	<string>APPL</string>
+	<key>CFBundleShortVersionString</key>
+	<string>1.1b4</string>
+	<key>CFBundleSignature</key>
+	<string>Pest</string>
+	<key>CFBundleVersion</key>
+	<string>17</string>
+	<key>NSMainNibFile</key>
+	<string>MainMenu</string>
+	<key>NSPrincipalClass</key>
+	<string>PSApplication</string>
+</dict>
+</plist>
Index: trunk/Cocoa/Pester/Source/NJRFSObjectSelector.m
===================================================================
--- trunk/Cocoa/Pester/Source/NJRFSObjectSelector.m	(revision 348)
+++ trunk/Cocoa/Pester/Source/NJRFSObjectSelector.m	(revision 355)
@@ -1,3 +1,4 @@
 #import "NJRFSObjectSelector.h"
+#import "NSMenuItem-NJRExtensions.h"
 #import "NSImage-NJRExtensions.h"
 #import "NSString-NJRExtensions.h"
@@ -84,4 +85,5 @@
 - (void)setImage:(NSImage *)image;
 {
+    // XXX change to use IconRef; see ICeCoffEELabeledIconCell and Google
     [super setImage: [image bestFitImageForSize: [[self cell] cellSize]]];
 }
@@ -111,5 +113,6 @@
         NSAssert1([files count] == 1, @"%d items returned, only one expected", [files count]);
         [self setPath: [files objectAtIndex: 0]];
-        [[self target] tryToPerform: [self action] with: self];
+		if ([self target] != nil && [[self target] respondsToSelector:[self action]])
+			[[self target] performSelector: [self action] withObject: self];
     }
 }
@@ -145,4 +148,5 @@
             }
             do {
+                NSAssert1(![path isEqualToString: revealPath], @"Stuck on path |%@|", [alias fullPath]);
                 item = [menu addItemWithTitle: [fmgr displayNameAtPath: path]
                                        action: @selector(revealInFinder:)
@@ -150,9 +154,7 @@
                 [item setTarget: self];
                 [item setRepresentedObject: revealPath];
-                [item setImage:
-                    [[[NSWorkspace sharedWorkspace] iconForFile: path] bestFitImageForSize: NSMakeSize(16, 16)]];
+                [item setImageFromPath: path];
                 revealPath = path;
                 path = [path stringByDeletingLastPathComponent];
-                NSAssert1(![path isEqualToString: revealPath], @"Stuck on path |%@|", [alias fullPath]);
             } while (![revealPath isEqualToString: @"/"] && ![path isEqualToString: @"/Volumes"]);
             [[self cell] setMenu: menu];
@@ -195,4 +197,6 @@
 - (void)mouseDown:(NSEvent *)theEvent;
 {
+    if (![self isEnabled]) return;
+    
     NSMenu *menu = [[self cell] menu];
     MenuRef mRef = _NSGetCarbonMenu(menu);
@@ -219,7 +223,8 @@
                                   pressure: [theEvent pressure]];
 
-    // this undocumented API does not work any better; contextual menu items are still added:
-    // [menu _popUpMenuWithEvent: theEvent forView: self];
-    [NSMenu popUpContextMenu: menu withEvent: theEvent forView: self];
+    // XXX otherwise Cocoa thoughtfully doesn't give me the font I want
+    NSFont *font = [[self cell] font];
+    [NSMenu popUpContextMenu: menu withEvent: theEvent forView: self withFont: 
+     [NSFont fontWithName: [font fontName] size: [font pointSize] - 0.001]];
 }
 
@@ -310,5 +315,6 @@
         if (url == nil) return NO;
         [self setPath: [url path]];
-        [[self target] tryToPerform: [self action] with: self];
+		if ([self target] != nil && [[self target] respondsToSelector:[self action]])
+			[[self target] performSelector: [self action] withObject: self];
     }
     return YES;
Index: trunk/Cocoa/Pester/Source/NJRHistoryTrackingComboBox.m
===================================================================
--- trunk/Cocoa/Pester/Source/NJRHistoryTrackingComboBox.m	(revision 348)
+++ trunk/Cocoa/Pester/Source/NJRHistoryTrackingComboBox.m	(revision 355)
@@ -27,5 +27,4 @@
     [self removeAllItems];
     [self addItemsWithObjectValues: [[NSUserDefaults standardUserDefaults] stringArrayForKey: [self _defaultKey]]];
-    [self setItemHeight: [self itemHeight] + 2];
 }
 
Index: trunk/Cocoa/Pester/Source/NJRHotKey.m
===================================================================
--- trunk/Cocoa/Pester/Source/NJRHotKey.m	(revision 348)
+++ trunk/Cocoa/Pester/Source/NJRHotKey.m	(revision 355)
@@ -39,4 +39,5 @@
 {
     [hotKeyCharacters release];
+    [super dealloc];
 }
 
Index: trunk/Cocoa/Pester/Source/NJRHotKeyField.m
===================================================================
--- trunk/Cocoa/Pester/Source/NJRHotKeyField.m	(revision 348)
+++ trunk/Cocoa/Pester/Source/NJRHotKeyField.m	(revision 355)
@@ -65,4 +65,5 @@
 {
     [hotKey release];
+    [super dealloc];
 }
 
Index: trunk/Cocoa/Pester/Source/NJRHotKeyManager.m
===================================================================
--- trunk/Cocoa/Pester/Source/NJRHotKeyManager.m	(revision 348)
+++ trunk/Cocoa/Pester/Source/NJRHotKeyManager.m	(revision 355)
@@ -32,4 +32,5 @@
     [hotKey release];
     [target release];
+    [super dealloc];
 }
 
Index: trunk/Cocoa/Pester/Source/NJRIntervalField.m
===================================================================
--- trunk/Cocoa/Pester/Source/NJRIntervalField.m	(revision 348)
+++ trunk/Cocoa/Pester/Source/NJRIntervalField.m	(revision 355)
@@ -84,5 +84,5 @@
     NSString *alertMessage = nil;
     NSString *alternateButtonString = nil;
-    NSDecimalNumber *proposedValue = nil;
+    NSNumber *proposedValue = nil;
     NSDictionary *contextInfo;
 
Index: trunk/Cocoa/Pester/Source/NJRQTMediaPopUpButton.m
===================================================================
--- trunk/Cocoa/Pester/Source/NJRQTMediaPopUpButton.m	(revision 348)
+++ trunk/Cocoa/Pester/Source/NJRQTMediaPopUpButton.m	(revision 355)
@@ -8,15 +8,12 @@
 
 #import "NJRQTMediaPopUpButton.h"
-#import "SoundFileManager.h"
 #import "NJRSoundManager.h"
 #import "NSMovie-NJRExtensions.h"
-#import "NSImage-NJRExtensions.h"
-#import <QuickTime/Movies.h>
-
-// XXX workaround for SoundFileManager log message in 10.2.3 and earlier
-#include <stdio.h>
-#include <unistd.h>
-#include <fcntl.h>
-// XXX end workaround
+#import "NSMenuItem-NJRExtensions.h"
+
+#import <QTKit/QTKit.h>
+
+#include <QuickTime/Movies.h>
+#include <limits.h>
 
 static const int NJRQTMediaPopUpButtonMaxRecentItems = 10;
@@ -66,5 +63,5 @@
     [item setTarget: self];
     [item setRepresentedObject: alias];
-    [item setImage: [[[NSWorkspace sharedWorkspace] iconForFile: path] bestFitImageForSize: NSMakeSize(16, 16)]];
+    [item setImageFromPath: path];
     [recentMediaAliasData addObject: [alias aliasData]];
     if ([recentMediaAliasData count] > NJRQTMediaPopUpButtonMaxRecentItems) {
@@ -115,29 +112,63 @@
 - (void)_setUp;
 {
-    NSMenu *menu;
-    NSMenuItem *item;
-    SoundFileManager *sfm = [SoundFileManager sharedSoundFileManager];
-    int soundCount = [sfm count];
-
+    NSMenu *menu = [self menu];
     [self removeAllItems];
-    menu = [self menu];
-    item = [menu addItemWithTitle: @"Alert sound" action: @selector(_beepSelected:) keyEquivalent: @""];
+    [menu setAutoenablesItems: NO];
+
+    NSMenuItem *item = [menu addItemWithTitle: @"Alert sound" action: @selector(_beepSelected:) keyEquivalent: @""];
     [item setTarget: self];
     [menu addItem: [NSMenuItem separatorItem]];
-    if (soundCount == 0) {
+
+    NSMutableArray *soundFolderPaths = [[NSMutableArray alloc] initWithCapacity: kLastDomainConstant - kSystemDomain + 1];
+    for (FSVolumeRefNum domain = kSystemDomain ; domain <= kLastDomainConstant ; domain++) {
+	OSStatus err;
+	FSRef fsr;
+	err = FSFindFolder(domain, kSystemSoundsFolderType, false, &fsr);
+	if (err != noErr) continue;
+
+	UInt8 path[PATH_MAX];
+	err = FSRefMakePath(&fsr, path, PATH_MAX);
+	if (err != noErr) continue;
+
+	CFStringRef pathString = CFStringCreateWithFileSystemRepresentation(NULL, (const char *)path);
+	if (pathString == NULL) continue;
+
+	[soundFolderPaths addObject: (NSString *)pathString];
+	CFRelease(pathString);
+    }
+    NSFileManager *fm = [NSFileManager defaultManager];
+    NSEnumerator *e = [soundFolderPaths objectEnumerator];
+    NSString *folderPath;
+    while ( (folderPath = [e nextObject]) != nil) {
+	if (![fm changeCurrentDirectoryPath: folderPath]) continue;
+
+	NSDirectoryEnumerator *de = [fm enumeratorAtPath: folderPath];
+	NSString *path;
+	while ( (path = [de nextObject]) != nil) {
+	    BOOL isDir;
+	    if (![fm fileExistsAtPath: path isDirectory: &isDir] || isDir) {
+		[de skipDescendents];
+		continue;
+	    }
+
+	    if (![QTMovie canInitWithFile: path]) continue;
+	    
+	    item = [menu addItemWithTitle: [fm displayNameAtPath: path]
+				   action: @selector(_systemSoundSelected:)
+			    keyEquivalent: @""];
+            [item setTarget: self];
+            [item setImageFromPath: path];
+	    path = [folderPath stringByAppendingPathComponent: path];
+            [item setRepresentedObject: path];
+	    [item setToolTip: path];
+        }
+    }
+    [soundFolderPaths release];
+    
+    if ([menu numberOfItems] == 2) {
         item = [menu addItemWithTitle: NSLocalizedString(@"Can't locate alert sounds", "QuickTime media popup menu item surrogate for alert sound list if no sounds are found") action: nil keyEquivalent: @""];
         [item setEnabled: NO];
-    } else {
-        SoundFile *sf;
-        int i;
-        [sfm sortByName];
-        for (i = 0 ; i < soundCount ; i++) {
-            sf = [sfm soundFileAtIndex: i];
-            item = [menu addItemWithTitle: [sf name] action: @selector(_soundFileSelected:) keyEquivalent: @""];
-            [item setTarget: self];
-            [item setRepresentedObject: sf];
-            [item setImage: [[[NSWorkspace sharedWorkspace] iconForFile: [sf path]] bestFitImageForSize: NSMakeSize(16, 16)]];
-        }
-    }
+    }
+	 
     [menu addItem: [NSMenuItem separatorItem]];
     item = [menu addItemWithTitle: NSLocalizedString(@"Other...", "Media popup item to select another sound/movie/image") action: @selector(select:) keyEquivalent: @""];
@@ -212,29 +243,14 @@
 - (NSMenuItem *)_itemForAlias:(BDAlias *)alias;
 {
-    NSString *path;
-    SoundFile *sf;
-    if (alias == nil) {
-        return [self itemAtIndex: 0];
-    }
+    if (alias == nil) return [self itemAtIndex: 0];
 
     // [self _validateRecentMedia];
-    path = [alias fullPath];
-    {   // XXX suppress log message from Apple's code:
-        // 2002-12-14 14:09:58.740 Pester[26529] Could not find sound type for directory /Users/nicholas/Desktop
-        int errfd = dup(STDERR_FILENO), nullfd = open("/dev/null", O_WRONLY, 0);
-        // need to have something open in STDERR_FILENO because if it isn't,
-        // NSLog will log to /dev/console
-        dup2(nullfd, STDERR_FILENO);
-        close(nullfd);
-        sf = [[SoundFileManager sharedSoundFileManager] soundFileFromPath: path];
-        dup2(errfd, STDERR_FILENO);
-        close(errfd);
-    }
-    // NSLog(@"_itemForAlias: %@", path);
+    NSString *path = [alias fullPath];
 
     // selected a system sound?
-    if (sf != nil) {
+    int itemIndex = [[self menu] indexOfItemWithRepresentedObject: path];
+    if (itemIndex != -1) {
         // NSLog(@"_itemForAlias: selected system sound");
-        return [self itemAtIndex: [self indexOfItemWithRepresentedObject: sf]];
+        return [self itemAtIndex: itemIndex];
     } else {
         NSEnumerator *e = [recentMediaAliasData reverseObjectEnumerator];
@@ -406,7 +422,7 @@
 }
 
-- (void)_soundFileSelected:(NSMenuItem *)sender;
-{
-    [self _setPath: [(SoundFile *)[sender representedObject] path]];
+- (void)_systemSoundSelected:(NSMenuItem *)sender;
+{
+    [self _setPath: [sender representedObject]];
     if (![self _validateWithPreview: YES]) {
         [[self menu] removeItem: sender];
Index: trunk/Cocoa/Pester/Source/NJRReadMeController.m
===================================================================
--- trunk/Cocoa/Pester/Source/NJRReadMeController.m	(revision 348)
+++ trunk/Cocoa/Pester/Source/NJRReadMeController.m	(revision 355)
@@ -64,5 +64,5 @@
     unsigned i;
     for (i = 0 ; i < level ; i++) {
-        [s appendString: @"ÊÊ"];
+        [s appendString: @"  "];
     }
     [s appendString: description];
@@ -101,5 +101,5 @@
         NSString *frameAutosaveName;
         if ( (frameAutosaveName = [window frameAutosaveName]) == nil) {
-            // XXX workaround for bug in 10.1.5Ð10.2.4 (at least): autosave name set in IB doesn't show up
+            // XXX workaround for bug in 10.1.5–10.2.4 (at least): autosave name set in IB doesn't show up
             [self setWindowFrameAutosaveName: @"Read Me"];
             frameAutosaveName = [window frameAutosaveName];
Index: trunk/Cocoa/Pester/Source/NJRSoundManager.m
===================================================================
--- trunk/Cocoa/Pester/Source/NJRSoundManager.m	(revision 348)
+++ trunk/Cocoa/Pester/Source/NJRSoundManager.m	(revision 355)
@@ -34,5 +34,5 @@
 
     propertySize = sizeof(stereoChannels);
-    err = AudioDeviceGetProperty(deviceID, NULL, false, kAudioDevicePropertyPreferredChannelsForStereo, &propertySize, &stereoChannels);
+    err = AudioDeviceGetProperty(deviceID, 0, false, kAudioDevicePropertyPreferredChannelsForStereo, &propertySize, &stereoChannels);
     if (err != noErr) return NO;
     return YES;
Index: trunk/Cocoa/Pester/Source/NJRVoicePopUpButton.m
===================================================================
--- trunk/Cocoa/Pester/Source/NJRVoicePopUpButton.m	(revision 348)
+++ trunk/Cocoa/Pester/Source/NJRVoicePopUpButton.m	(revision 355)
@@ -21,5 +21,5 @@
     [menu setAutoenablesItems: NO];
     // XXX would be more elegant with surrogate support like my font popup menu
-    item = [menu addItemWithTitle: @"ÇunknownÈ" action: nil keyEquivalent: @""];
+    item = [menu addItemWithTitle: @"«unknown»" action: nil keyEquivalent: @""];
     [item setEnabled: NO];
     [menu addItem: [NSMenuItem separatorItem]];
Index: trunk/Cocoa/Pester/Source/NSMenuItem-NJRExtensions.h
===================================================================
--- trunk/Cocoa/Pester/Source/NSMenuItem-NJRExtensions.h	(revision 355)
+++ trunk/Cocoa/Pester/Source/NSMenuItem-NJRExtensions.h	(revision 355)
@@ -0,0 +1,16 @@
+//
+//  NSMenuItem-NJRExtensions.h
+//  Pester
+//
+//  Created by Nicholas Riley on 11/22/07.
+//  Copyright 2007 Nicholas Riley. All rights reserved.
+//
+
+#import <Cocoa/Cocoa.h>
+
+
+@interface NSMenuItem (NJRExtensions)
+
+- (void)setImageFromPath:(NSString *)path;
+
+@end
Index: trunk/Cocoa/Pester/Source/NSMenuItem-NJRExtensions.m
===================================================================
--- trunk/Cocoa/Pester/Source/NSMenuItem-NJRExtensions.m	(revision 355)
+++ trunk/Cocoa/Pester/Source/NSMenuItem-NJRExtensions.m	(revision 355)
@@ -0,0 +1,35 @@
+//
+//  NSMenuItem-NJRExtensions.m
+//  Pester
+//
+//  Created by Nicholas Riley on 11/22/07.
+//  Copyright 2007 Nicholas Riley. All rights reserved.
+//
+
+#import "NSMenuItem-NJRExtensions.h"
+
+@interface NSMenuItem (Private)
+- (void)_setIconRef:(IconRef)iconRef;
+@end
+
+@implementation NSMenuItem (NJRExtensions)
+
+// from ICeCoffEE's ICCF_CopyIconRefForPath
+- (void)setImageFromPath:(NSString *)path;
+{
+    IconRef icon;
+    FSRef fsr;
+    SInt16 label;
+    OSStatus err = noErr;
+    
+    err = FSPathMakeRef((const UInt8 *)[path fileSystemRepresentation], &fsr, NULL);
+    if (err != noErr) return;
+    
+    err = GetIconRefFromFileInfo(&fsr, 0, NULL, kFSCatInfoNone, NULL, kIconServicesNormalUsageFlag, &icon, &label);
+    if (err != noErr) return;
+    
+    [self _setIconRef: icon];
+    ReleaseIconRef(icon);
+}
+
+@end
Index: trunk/Cocoa/Pester/Source/PSAlarm.m
===================================================================
--- trunk/Cocoa/Pester/Source/PSAlarm.m	(revision 348)
+++ trunk/Cocoa/Pester/Source/PSAlarm.m	(revision 355)
@@ -343,5 +343,5 @@
     NSString *timeRemainingString = [self _stringForInterval: llround([self timeRemaining])];
     
-    if (timeRemainingString == nil) return @"ÇexpiredÈ";
+    if (timeRemainingString == nil) return @"«expired»";
     return timeRemainingString;
 }
Index: trunk/Cocoa/Pester/Source/PSAlarmSetController.m
===================================================================
--- trunk/Cocoa/Pester/Source/PSAlarmSetController.m	(revision 348)
+++ trunk/Cocoa/Pester/Source/PSAlarmSetController.m	(revision 355)
@@ -373,4 +373,6 @@
         [[self window] makeFirstResponder: scriptSelectButton];
         if ([script alias] == nil) [scriptSelectButton performClick: sender];
+    } else {
+	[[self window] makeFirstResponder: sender];
     }
 }
@@ -382,4 +384,6 @@
     if (doSpeakSelected && sender != nil)
         [[self window] makeFirstResponder: voice];
+    else
+	[[self window] makeFirstResponder: sender];	
 }
 
Index: trunk/Cocoa/Pester/Source/PSAlarms.m
===================================================================
--- trunk/Cocoa/Pester/Source/PSAlarms.m	(revision 348)
+++ trunk/Cocoa/Pester/Source/PSAlarms.m	(revision 355)
@@ -176,6 +176,6 @@
     NSEnumerator *e = [indices objectEnumerator];
     NSNumber *n;
-    int indexCount = [indices count], i = 0, alarmIndex;
-    int *indexArray = (int *)malloc(indexCount * sizeof(int));
+    unsigned indexCount = [indices count], i = 0, alarmIndex;
+    unsigned *indexArray = (unsigned *)malloc(indexCount * sizeof(unsigned));
     NS_DURING
         while ( (n = [e nextObject]) != nil) {
Index: trunk/Cocoa/Pester/Source/PSAlarmsController.m
===================================================================
--- trunk/Cocoa/Pester/Source/PSAlarmsController.m	(revision 348)
+++ trunk/Cocoa/Pester/Source/PSAlarmsController.m	(revision 355)
@@ -106,5 +106,5 @@
         if ([[tableColumn identifier] isEqualToString: @"date"]) return [alarm shortDateString];
         if ([[tableColumn identifier] isEqualToString: @"time"]) {
-            if (date == nil) return @"ÇexpiredÈ";
+            if (date == nil) return @"«expired»";
             return [alarm timeString];
         }
Index: trunk/Cocoa/Pester/Source/PSAlerts.m
===================================================================
--- trunk/Cocoa/Pester/Source/PSAlerts.m	(revision 348)
+++ trunk/Cocoa/Pester/Source/PSAlerts.m	(revision 355)
@@ -41,4 +41,5 @@
 {
     [alerts release]; alerts = nil;
+    [super dealloc];
 }
 
@@ -121,5 +122,7 @@
         [plAlerts addObject: [alert propertyListRepresentation]];
     }
-    return [NSDictionary dictionaryWithObject: plAlerts forKey: PLAlerts];
+    NSDictionary *dict = [NSDictionary dictionaryWithObject: plAlerts forKey: PLAlerts];
+    [plAlerts release];
+    return dict;
 }
 
Index: trunk/Cocoa/Pester/Source/PSPowerManager.h
===================================================================
--- trunk/Cocoa/Pester/Source/PSPowerManager.h	(revision 348)
+++ trunk/Cocoa/Pester/Source/PSPowerManager.h	(revision 355)
@@ -21,7 +21,5 @@
 
 + (BOOL)autoWakeSupported;
-+ (NSDate *)wakeTime;
-+ (void)setWakeInterval:(unsigned long)wakeInterval;
-+ (void)setWakeTime:(NSDate *)time overrideIfEarlier:(BOOL)override;
++ (void)setWakeTime:(NSDate *)time;
 + (void)clearWakeTime;
 
Index: trunk/Cocoa/Pester/Source/PSPowerManager.m
===================================================================
--- trunk/Cocoa/Pester/Source/PSPowerManager.m	(revision 348)
+++ trunk/Cocoa/Pester/Source/PSPowerManager.m	(revision 355)
@@ -11,152 +11,4 @@
 #import <IOKit/pwr_mgt/IOPMLib.h>
 #import <IOKit/IOMessage.h>
-#import <CoreFoundation/CoreFoundation.h>
-
-/*
- * Copyright (c) 2002 Apple Computer, Inc. All rights reserved.
- *
- * @APPLE_LICENSE_HEADER_START@
- *
- * The contents of this file constitute Original Code as defined in and
- * are subject to the Apple Public Source License Version 1.1 (the
- * "License").  You may not use this file except in compliance with the
- * License.  Please obtain a copy of the License at
- * http://www.apple.com/publicsource and read it before using this file.
- *
- * This Original Code and all software distributed under the License are
- * distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, EITHER
- * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
- * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE OR NON-INFRINGEMENT.  Please see the
- * License for the specific language governing rights and limitations
- * under the License.
- *
- * @APPLE_LICENSE_HEADER_END@
- */
-
-/* Sample code to set an automatic wakeup timer to wake machines from sleep.
-
-When a machine is asleep, most hardware (including the processor) is
-powered off. The PMU chip is one of the few things left powered on, and it's
-able to generate a wakeup event on a timer.
-This code shows how to set the wakeup timer within the PMU.
-*/
-
-// From autowake.cpp:
-
-// #define kAppleVIAUserClientMagicCookie 0x101face // or 0x101beef -- for PMU
-// #define kAppleVIAUserClientMagicCookie 0x101beef // or 0x101face  -- for PMU
-
-// The difference is 101beef is only for superusers and 101face works for
-// non-privileged users.  I have not determined which calls are only available
-// for superusers
-
-#define PMU_MAGIC_PASSWORD	0x0101FACE
-
-/* ==========================================
-* Close a device user client
-* =========================================== */
-static kern_return_t
-closeDevice(io_connect_t con)
-{
-    kern_return_t ret = IOServiceClose(con);
-
-    NSCAssert1(ret == kIOReturnSuccess, @"closeDevice: IOServiceClose returned an error of type %08lx", (unsigned long)ret);
-
-    return ret;
-}
-
-/* ==========================================
-* Open an IORegistry device user client
-* =========================================== */
-static void
-openDevice(io_object_t obj, unsigned int type, io_connect_t * con)
-{
-    kern_return_t ret = IOServiceOpen(obj, mach_task_self(), type, con);
-
-    NSCAssert1(ret == kIOReturnSuccess, @"openDevice: IOServiceOpen returned an error of type %08lx", (unsigned long)ret);
-}
-
-/* ===========================================
-* Changes the string for a registry
-* property.
-* ===========================================  */
-void
-writeDataProperty(io_object_t handle, CFStringRef name,
-                  unsigned char * bytes, unsigned int size)
-{
-    kern_return_t kr = kIOReturnNoMemory;
-    CFDataRef data;
-
-    data = CFDataCreate(kCFAllocatorDefault, bytes, size);
-    NSCAssert(data != NULL, @"writeDataProperty: CFDataCreate failed");
-    [(NSData *)data autorelease];
-
-    kr = IOConnectSetCFProperty(handle, name, data);
-    NSCAssert1(kr == KERN_SUCCESS, @"writeDataProperty: IOConnectSetCFProperty returned an error of type %08lx", (unsigned long)kr);
-}
-
-/* ==========================================
-* Write a data property to the PMU driver
-* Arguments
-*     pmuReference - the IORegistry device to write to
-*     propertyName - Name of the property to write to
-*     data - Data to write
-*     dataSize - Data size
-* =========================================== */
-void
-writePMUProperty(io_object_t pmuReference, CFStringRef propertyName, void *data, size_t dataSize)
-{
-    io_connect_t conObj;
-    openDevice(pmuReference, PMU_MAGIC_PASSWORD, &conObj);
-    writeDataProperty(conObj, propertyName, (unsigned char *)data, dataSize);
-    closeDevice(conObj);
-}
-
-
-/* ==========================================
-* Look through the registry and search for an
-* IONetworkInterface objects with the given
-* name.
-* If a match is found, the object is returned.
-* =========================================== */
-
-io_service_t
-getInterfaceWithName(mach_port_t masterPort, char *className)
-{
-    io_service_t obj;
-
-    obj = IOServiceGetMatchingService(masterPort, IOServiceMatching(className));
-
-    NSCAssert(obj != NULL, @"getInterfaceWithName: IOServiceGetMatchingService returned NULL");
-
-    return obj;
-}
-
-/* ==========================================
-* Find the PMU in the IORegistry
-* =========================================== */
-io_service_t
-openPMUComPort(void)
-{
-    static mach_port_t masterPort;
-    kern_return_t kr;
-
-    // Get a master port to talk with the mach_kernel
-    kr = IOMasterPort(bootstrap_port, &masterPort);
-    NSCAssert1(kr == KERN_SUCCESS, @"openPMUComPort: IOMasterPort returned an error of type %08lx", (unsigned long)kr);
-
-    return getInterfaceWithName(masterPort, "ApplePMU");
-}
-
-
-/* ==========================================
-* Release our reference to the PMU in the IORegistry
-* =========================================== */
-void
-closePMUComPort(io_object_t pmuRef)
-{
-    IOObjectRelease(pmuRef);
-}
 
 @implementation PSPowerManager
@@ -164,64 +16,16 @@
 + (BOOL)autoWakeSupported;
 {
-    io_service_t pmuReference = openPMUComPort();
-    if (pmuReference == NULL) return NO;
-    closePMUComPort(pmuReference);
+    // XXX imagine it's supported on all machines that support 10.4
     return YES;
 }
 
-+ (io_service_t)_pmuReference;
++ (void)setWakeTime:(NSDate *)time;
 {
-    io_service_t pmuReference = openPMUComPort();
-    NSAssert(pmuReference != NULL, NSLocalizedString(@"Couldn't find PMU in IORegistry. This computer may not support automatic wake from sleep.", "Assertion message: couldn't open ApplePMU"));
-    return pmuReference;
-}
-
-+ (NSDate *)wakeTime;
-{
-    io_service_t pmuReference = [self _pmuReference];
-    NSNumber *autoWakeTime;
-    unsigned long long rawWakeTime;
-    
-    autoWakeTime = (NSNumber *)IORegistryEntryCreateCFProperty(pmuReference, CFSTR("AutoWake"), NULL, 0);
-    closePMUComPort(pmuReference);
-
-    if (autoWakeTime == nil) return nil;
-    rawWakeTime = [autoWakeTime unsignedLongLongValue];
-    if (rawWakeTime == 0) return nil;
-    // XXX no idea what the epoch is supposed to be, but this works...
-    return [NSDate dateWithTimeIntervalSinceReferenceDate: rawWakeTime - [[NSTimeZone systemTimeZone] secondsFromGMT] - 18446744072475736320LLU];
-}
-
-+ (void)setWakeInterval:(unsigned long)wakeInterval;
-{
-    io_service_t pmuReference = [self _pmuReference];
-    writePMUProperty(pmuReference, CFSTR("AutoWake"), (unsigned long *)&wakeInterval, sizeof(wakeInterval));
-    closePMUComPort(pmuReference);
-}
-
-+ (void)setWakeTime:(NSDate *)time overrideIfEarlier:(BOOL)override;
-{
-    unsigned long wakeInterval;
-
-    if (time == nil) {
-        wakeInterval = 0;
-        override = YES;
-    } else {
-        wakeInterval = [time timeIntervalSinceNow];
-        if (wakeInterval == 0) wakeInterval++; // 0 will disable
-        if (!override) {
-            NSDate *wakeTime = [self wakeTime];
-            override = (wakeTime == nil || [wakeTime compare: time] == NSOrderedAscending);
-        }
-    }
-
-    if (override) {
-        [self setWakeInterval: wakeInterval];
-    }
+    IOPMSchedulePowerEvent((CFDateRef)time, (CFStringRef)[[NSBundle mainBundle] bundleIdentifier], CFSTR(kIOPMAutoWake));
 }
 
 + (void)clearWakeTime;
 {
-    [self setWakeTime: nil overrideIfEarlier: YES];
+    // XXX implement (IOPMCancelScheduledPowerEvent)
 }
 
@@ -266,5 +70,5 @@
         delegate = [aDelegate retain];
         root_port = IORegisterForSystemPower(self, &notificationPort, powerCallback, &notifier);
-        NSAssert(root_port != NULL, @"IORegisterForSystemPower failed");
+        NSAssert(root_port != 0, @"IORegisterForSystemPower failed");
 
         CFRunLoopAddSource(CFRunLoopGetCurrent(), IONotificationPortGetRunLoopSource(notificationPort), kCFRunLoopDefaultMode);
Index: trunk/Cocoa/Pester/Source/PSPreferencesController.m
===================================================================
--- trunk/Cocoa/Pester/Source/PSPreferencesController.m	(revision 348)
+++ trunk/Cocoa/Pester/Source/PSPreferencesController.m	(revision 355)
@@ -102,4 +102,5 @@
     [commandShiftRejectSet release];
     [commandOptionRejectSet release];
+    [super dealloc];
 }
 
Index: trunk/Cocoa/Pester/Source/PSScriptAlert.m
===================================================================
--- trunk/Cocoa/Pester/Source/PSScriptAlert.m	(revision 348)
+++ trunk/Cocoa/Pester/Source/PSScriptAlert.m	(revision 355)
@@ -50,8 +50,8 @@
             if (errorMessage == nil) errorMessage = [errorInfo objectForKey: NSAppleScriptErrorBriefMessage];
             NSRunAlertPanel(@"Script loading error",
-                            @"Pester encountered an error while attempting to load Ò%@Ó%@ %@",
+                            @"Pester encountered an error while attempting to load “%@”%@ %@",
                             nil, nil, nil,
                             [[NSFileManager defaultManager] displayNameAtPath: scriptPath],
-                            errorMessage == nil ? @"" : [NSString stringWithFormat: @":\n\n%@%@", appName == nil ? @"" : @"Ò%@Ó reported an error: ", errorMessage],
+                            errorMessage == nil ? @"" : [NSString stringWithFormat: @":\n\n%@%@", appName == nil ? @"" : @"“%@” reported an error: ", errorMessage],
                             errorNumber == nil ? @"" : [NSString stringWithFormat: @"(%@)", errorNumber]);
         } else {
@@ -63,8 +63,8 @@
                 if (errorMessage == nil) errorMessage = [errorInfo objectForKey: NSAppleScriptErrorBriefMessage];
                 NSRunAlertPanel(@"Script execution error",
-                                @"Pester encountered an error while attempting to execute the script Ò%@Ó%@ %@",
+                                @"Pester encountered an error while attempting to execute the script “%@”%@ %@",
                                 nil, nil, nil,
                                 [[NSFileManager defaultManager] displayNameAtPath: scriptPath],
-                                errorMessage == nil ? @"" : [NSString stringWithFormat: @":\n\n%@%@", appName == nil ? @"" : @"Ò%@Ó reported an error: ", errorMessage],
+                                errorMessage == nil ? @"" : [NSString stringWithFormat: @":\n\n%@%@", appName == nil ? @"" : @"“%@” reported an error: ", errorMessage],
                                 errorNumber == nil ? @"" : [NSString stringWithFormat: @"(%@)", errorNumber]);
             }
Index: trunk/Cocoa/Pester/Source/PSTimeDateEditor.m
===================================================================
--- trunk/Cocoa/Pester/Source/PSTimeDateEditor.m	(revision 348)
+++ trunk/Cocoa/Pester/Source/PSTimeDateEditor.m	(revision 355)
@@ -32,5 +32,5 @@
     NSRange matchingRange;
     while ( (title = [e nextObject]) != nil) {
-        matchingRange = [title rangeOfString: @"ÇdayÈ"];
+        matchingRange = [title rangeOfString: @"«day»"];
         if (matchingRange.location != NSNotFound) {
             NSMutableString *format = [title mutableCopy];
@@ -44,4 +44,5 @@
                 itemIndex++;
             }
+	    [format release];
         } else itemIndex++;
     }
Index: trunk/Cocoa/Pester/Source/PSTimer.m
===================================================================
--- trunk/Cocoa/Pester/Source/PSTimer.m	(revision 348)
+++ trunk/Cocoa/Pester/Source/PSTimer.m	(revision 355)
@@ -231,5 +231,5 @@
             // NSLog(@"going to sleep, setting timer %@", PSTimerOnWake);
             NS_DURING
-                [PSPowerManager setWakeTime: [[PSTimerOnWake fireDate] addTimeInterval: -15] overrideIfEarlier: NO];
+                [PSPowerManager setWakeTime: [[PSTimerOnWake fireDate] addTimeInterval: -15]];
             NS_HANDLER
                 [self performSelectorOnMainThread: @selector(_runScheduledWakeErrorPanel:) withObject: [localException description] waitUntilDone: YES];
Index: trunk/Cocoa/Pester/Source/Pester.xcodeproj/nicholas.mode2v3
===================================================================
--- trunk/Cocoa/Pester/Source/Pester.xcodeproj/nicholas.mode2v3	(revision 355)
+++ trunk/Cocoa/Pester/Source/Pester.xcodeproj/nicholas.mode2v3	(revision 355)
@@ -0,0 +1,1473 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
+<plist version="1.0">
+<dict>
+	<key>ActivePerspectiveName</key>
+	<string>Project</string>
+	<key>AllowedModules</key>
+	<array>
+		<dict>
+			<key>BundleLoadPath</key>
+			<string></string>
+			<key>MaxInstances</key>
+			<string>n</string>
+			<key>Module</key>
+			<string>PBXSmartGroupTreeModule</string>
+			<key>Name</key>
+			<string>Groups and Files Outline View</string>
+		</dict>
+		<dict>
+			<key>BundleLoadPath</key>
+			<string></string>
+			<key>MaxInstances</key>
+			<string>n</string>
+			<key>Module</key>
+			<string>PBXNavigatorGroup</string>
+			<key>Name</key>
+			<string>Editor</string>
+		</dict>
+		<dict>
+			<key>BundleLoadPath</key>
+			<string></string>
+			<key>MaxInstances</key>
+			<string>n</string>
+			<key>Module</key>
+			<string>XCTaskListModule</string>
+			<key>Name</key>
+			<string>Task List</string>
+		</dict>
+		<dict>
+			<key>BundleLoadPath</key>
+			<string></string>
+			<key>MaxInstances</key>
+			<string>n</string>
+			<key>Module</key>
+			<string>XCDetailModule</string>
+			<key>Name</key>
+			<string>File and Smart Group Detail Viewer</string>
+		</dict>
+		<dict>
+			<key>BundleLoadPath</key>
+			<string></string>
+			<key>MaxInstances</key>
+			<string>1</string>
+			<key>Module</key>
+			<string>PBXBuildResultsModule</string>
+			<key>Name</key>
+			<string>Detailed Build Results Viewer</string>
+		</dict>
+		<dict>
+			<key>BundleLoadPath</key>
+			<string></string>
+			<key>MaxInstances</key>
+			<string>1</string>
+			<key>Module</key>
+			<string>PBXProjectFindModule</string>
+			<key>Name</key>
+			<string>Project Batch Find Tool</string>
+		</dict>
+		<dict>
+			<key>BundleLoadPath</key>
+			<string></string>
+			<key>MaxInstances</key>
+			<string>n</string>
+			<key>Module</key>
+			<string>XCProjectFormatConflictsModule</string>
+			<key>Name</key>
+			<string>Project Format Conflicts List</string>
+		</dict>
+		<dict>
+			<key>BundleLoadPath</key>
+			<string></string>
+			<key>MaxInstances</key>
+			<string>n</string>
+			<key>Module</key>
+			<string>PBXBookmarksModule</string>
+			<key>Name</key>
+			<string>Bookmarks Tool</string>
+		</dict>
+		<dict>
+			<key>BundleLoadPath</key>
+			<string></string>
+			<key>MaxInstances</key>
+			<string>n</string>
+			<key>Module</key>
+			<string>PBXClassBrowserModule</string>
+			<key>Name</key>
+			<string>Class Browser</string>
+		</dict>
+		<dict>
+			<key>BundleLoadPath</key>
+			<string></string>
+			<key>MaxInstances</key>
+			<string>n</string>
+			<key>Module</key>
+			<string>PBXCVSModule</string>
+			<key>Name</key>
+			<string>Source Code Control Tool</string>
+		</dict>
+		<dict>
+			<key>BundleLoadPath</key>
+			<string></string>
+			<key>MaxInstances</key>
+			<string>n</string>
+			<key>Module</key>
+			<string>PBXDebugBreakpointsModule</string>
+			<key>Name</key>
+			<string>Debug Breakpoints Tool</string>
+		</dict>
+		<dict>
+			<key>BundleLoadPath</key>
+			<string></string>
+			<key>MaxInstances</key>
+			<string>n</string>
+			<key>Module</key>
+			<string>XCDockableInspector</string>
+			<key>Name</key>
+			<string>Inspector</string>
+		</dict>
+		<dict>
+			<key>BundleLoadPath</key>
+			<string></string>
+			<key>MaxInstances</key>
+			<string>n</string>
+			<key>Module</key>
+			<string>PBXOpenQuicklyModule</string>
+			<key>Name</key>
+			<string>Open Quickly Tool</string>
+		</dict>
+		<dict>
+			<key>BundleLoadPath</key>
+			<string></string>
+			<key>MaxInstances</key>
+			<string>1</string>
+			<key>Module</key>
+			<string>PBXDebugSessionModule</string>
+			<key>Name</key>
+			<string>Debugger</string>
+		</dict>
+		<dict>
+			<key>BundleLoadPath</key>
+			<string></string>
+			<key>MaxInstances</key>
+			<string>1</string>
+			<key>Module</key>
+			<string>PBXDebugCLIModule</string>
+			<key>Name</key>
+			<string>Debug Console</string>
+		</dict>
+		<dict>
+			<key>BundleLoadPath</key>
+			<string></string>
+			<key>MaxInstances</key>
+			<string>n</string>
+			<key>Module</key>
+			<string>XCSnapshotModule</string>
+			<key>Name</key>
+			<string>Snapshots Tool</string>
+		</dict>
+	</array>
+	<key>BundlePath</key>
+	<string>/Developer/Library/PrivateFrameworks/DevToolsInterface.framework/Resources</string>
+	<key>Description</key>
+	<string>CondensedDescriptionKey</string>
+	<key>DockingSystemVisible</key>
+	<false/>
+	<key>Extension</key>
+	<string>mode2v3</string>
+	<key>FavBarConfig</key>
+	<dict>
+		<key>PBXProjectModuleGUID</key>
+		<string>E1B11F970CF5F49B004975AA</string>
+		<key>XCBarModuleItemNames</key>
+		<dict/>
+		<key>XCBarModuleItems</key>
+		<array/>
+	</dict>
+	<key>FirstTimeWindowDisplayed</key>
+	<false/>
+	<key>Identifier</key>
+	<string>com.apple.perspectives.project.mode2v3</string>
+	<key>MajorVersion</key>
+	<integer>34</integer>
+	<key>MinorVersion</key>
+	<integer>0</integer>
+	<key>Name</key>
+	<string>Condensed</string>
+	<key>Notifications</key>
+	<array/>
+	<key>OpenEditors</key>
+	<array/>
+	<key>PerspectiveWidths</key>
+	<array>
+		<integer>-1</integer>
+	</array>
+	<key>Perspectives</key>
+	<array>
+		<dict>
+			<key>ChosenToolbarItems</key>
+			<array>
+				<string>buildOrClean</string>
+				<string>build-and-goOrGo</string>
+				<string>com.apple.ide.PBXToolbarStopButton</string>
+				<string>NSToolbarFlexibleSpaceItem</string>
+				<string>get-info</string>
+			</array>
+			<key>ControllerClassBaseName</key>
+			<string></string>
+			<key>IconName</key>
+			<string>WindowOfProject</string>
+			<key>Identifier</key>
+			<string>perspective.project</string>
+			<key>IsVertical</key>
+			<false/>
+			<key>Layout</key>
+			<array>
+				<dict>
+					<key>Proportion</key>
+					<string>350pt</string>
+					<key>Tabs</key>
+					<array>
+						<dict>
+							<key>BecomeActive</key>
+							<true/>
+							<key>ContentConfiguration</key>
+							<dict>
+								<key>PBXBottomSmartGroupGIDs</key>
+								<array/>
+								<key>PBXProjectModuleGUID</key>
+								<string>1C9437FD063B20B00039CFAC</string>
+								<key>PBXProjectModuleLabel</key>
+								<string>Files</string>
+								<key>PBXProjectStructureProvided</key>
+								<string>yes</string>
+								<key>PBXSmartGroupTreeModuleColumnData</key>
+								<dict>
+									<key>PBXSmartGroupTreeModuleColumnWidthsKey</key>
+									<array>
+										<real>22</real>
+										<real>311</real>
+									</array>
+									<key>PBXSmartGroupTreeModuleColumnsKey_v4</key>
+									<array>
+										<string>SCMStatusColumn</string>
+										<string>MainColumn</string>
+									</array>
+								</dict>
+								<key>PBXSmartGroupTreeModuleOutlineStateKey_v7</key>
+								<dict>
+									<key>PBXSmartGroupTreeModuleOutlineStateExpansionKey</key>
+									<array>
+										<string>29B97314FDCFA39411CA2CEA</string>
+										<string>080E96DDFE201D6D7F000001</string>
+										<string>F59E47AF036AAC31016B311C</string>
+										<string>29B97317FDCFA39411CA2CEA</string>
+									</array>
+									<key>PBXSmartGroupTreeModuleOutlineStateSelectionKey</key>
+									<array>
+										<array>
+											<integer>30</integer>
+											<integer>0</integer>
+										</array>
+									</array>
+									<key>PBXSmartGroupTreeModuleOutlineStateVisibleRectKey</key>
+									<string>{{0, 0}, {333, 655}}</string>
+								</dict>
+								<key>PBXTopSmartGroupGIDs</key>
+								<array/>
+								<key>XCIncludePerspectivesSwitch</key>
+								<false/>
+							</dict>
+							<key>GeometryConfiguration</key>
+							<dict>
+								<key>Frame</key>
+								<string>{{10, 27}, {350, 673}}</string>
+								<key>GroupTreeTableConfiguration</key>
+								<array>
+									<string>SCMStatusColumn</string>
+									<real>22</real>
+									<string>MainColumn</string>
+									<real>311</real>
+								</array>
+								<key>RubberWindowFrame</key>
+								<string>1570 437 350 741 0 0 1920 1178 </string>
+							</dict>
+							<key>Module</key>
+							<string>PBXSmartGroupTreeModule</string>
+						</dict>
+						<dict>
+							<key>ContentConfiguration</key>
+							<dict>
+								<key>PBXBottomSmartGroupGIDs</key>
+								<array>
+									<string>1C37FBAC04509CD000000102</string>
+									<string>1C37FAAC04509CD000000102</string>
+								</array>
+								<key>PBXProjectModuleGUID</key>
+								<string>1C9437FE063B20B00039CFAC</string>
+								<key>PBXProjectModuleLabel</key>
+								<string>Targets</string>
+								<key>PBXProjectStructureProvided</key>
+								<string>no</string>
+								<key>PBXSmartGroupTreeModuleColumnData</key>
+								<dict>
+									<key>PBXSmartGroupTreeModuleColumnWidthsKey</key>
+									<array>
+										<real>333</real>
+									</array>
+									<key>PBXSmartGroupTreeModuleColumnsKey_v4</key>
+									<array>
+										<string>MainColumn</string>
+									</array>
+								</dict>
+								<key>PBXSmartGroupTreeModuleOutlineStateKey_v7</key>
+								<dict>
+									<key>PBXSmartGroupTreeModuleOutlineStateExpansionKey</key>
+									<array>
+										<string>1C37FBAC04509CD000000102</string>
+										<string>1C37FAAC04509CD000000102</string>
+									</array>
+									<key>PBXSmartGroupTreeModuleOutlineStateSelectionKey</key>
+									<array>
+										<array>
+											<integer>2</integer>
+										</array>
+									</array>
+									<key>PBXSmartGroupTreeModuleOutlineStateVisibleRectKey</key>
+									<string>{{0, 0}, {333, 655}}</string>
+								</dict>
+								<key>PBXTopSmartGroupGIDs</key>
+								<array/>
+								<key>XCIncludePerspectivesSwitch</key>
+								<false/>
+							</dict>
+							<key>GeometryConfiguration</key>
+							<dict>
+								<key>Frame</key>
+								<string>{{10, 27}, {350, 673}}</string>
+								<key>GroupTreeTableConfiguration</key>
+								<array>
+									<string>MainColumn</string>
+									<real>333</real>
+								</array>
+							</dict>
+							<key>Module</key>
+							<string>PBXSmartGroupTreeModule</string>
+						</dict>
+						<dict>
+							<key>ContentConfiguration</key>
+							<dict>
+								<key>PBXBottomSmartGroupGIDs</key>
+								<array>
+									<string>1C08E77C0454961000C914BD</string>
+									<string>1C37FABC05509CD000000102</string>
+									<string>1C37FABC05539CD112110102</string>
+									<string>E2644B35053B69B200211256</string>
+									<string>1C37FABC04509CD000100104</string>
+									<string>1CC0EA4004350EF90044410B</string>
+									<string>1CC0EA4004350EF90041110B</string>
+								</array>
+								<key>PBXProjectModuleGUID</key>
+								<string>1C9437FF063B20B00039CFAC</string>
+								<key>PBXProjectModuleLabel</key>
+								<string>Other</string>
+								<key>PBXProjectStructureProvided</key>
+								<string>no</string>
+								<key>PBXSmartGroupTreeModuleColumnData</key>
+								<dict>
+									<key>PBXSmartGroupTreeModuleColumnWidthsKey</key>
+									<array>
+										<real>555</real>
+									</array>
+									<key>PBXSmartGroupTreeModuleColumnsKey_v4</key>
+									<array>
+										<string>MainColumn</string>
+									</array>
+								</dict>
+								<key>PBXSmartGroupTreeModuleOutlineStateKey_v7</key>
+								<dict>
+									<key>PBXSmartGroupTreeModuleOutlineStateExpansionKey</key>
+									<array/>
+									<key>PBXSmartGroupTreeModuleOutlineStateSelectionKey</key>
+									<array>
+										<array>
+											<integer>0</integer>
+										</array>
+									</array>
+									<key>PBXSmartGroupTreeModuleOutlineStateVisibleRectKey</key>
+									<string>{{0, 0}, {555, 301}}</string>
+								</dict>
+								<key>PBXTopSmartGroupGIDs</key>
+								<array/>
+								<key>XCIncludePerspectivesSwitch</key>
+								<false/>
+							</dict>
+							<key>GeometryConfiguration</key>
+							<dict>
+								<key>Frame</key>
+								<string>{{0, 0}, {572, 319}}</string>
+								<key>GroupTreeTableConfiguration</key>
+								<array>
+									<string>MainColumn</string>
+									<real>555</real>
+								</array>
+							</dict>
+							<key>Module</key>
+							<string>PBXSmartGroupTreeModule</string>
+						</dict>
+					</array>
+				</dict>
+			</array>
+			<key>Name</key>
+			<string>Project</string>
+			<key>ServiceClasses</key>
+			<array>
+				<string>XCModuleDock</string>
+				<string>XCDockableTabModule</string>
+				<string>PBXSmartGroupTreeModule</string>
+				<string>PBXSmartGroupTreeModule</string>
+				<string>PBXSmartGroupTreeModule</string>
+			</array>
+			<key>TableOfContents</key>
+			<array>
+				<string>E17CA63F0CF6950E00018B34</string>
+				<string>E17CA6400CF6950E00018B34</string>
+				<string>1C9437FD063B20B00039CFAC</string>
+				<string>1C9437FE063B20B00039CFAC</string>
+				<string>1C9437FF063B20B00039CFAC</string>
+			</array>
+			<key>ToolbarConfiguration</key>
+			<string>xcode.toolbar.config.default.shortV3</string>
+		</dict>
+	</array>
+	<key>PerspectivesBarVisible</key>
+	<false/>
+	<key>ShelfIsVisible</key>
+	<false/>
+	<key>SourceDescription</key>
+	<string>file at '/Developer/Library/PrivateFrameworks/DevToolsInterface.framework/Resources/XCPerspectivesSpecificationMode2.xcperspec'</string>
+	<key>StatusbarIsVisible</key>
+	<true/>
+	<key>TimeStamp</key>
+	<real>0.0</real>
+	<key>ToolbarDisplayMode</key>
+	<integer>2</integer>
+	<key>ToolbarIsVisible</key>
+	<true/>
+	<key>ToolbarSizeMode</key>
+	<integer>2</integer>
+	<key>Type</key>
+	<string>Perspectives</string>
+	<key>UpdateMessage</key>
+	<string></string>
+	<key>WindowJustification</key>
+	<integer>0</integer>
+	<key>WindowOrderList</key>
+	<array>
+		<string>E17CA6490CF6954200018B34</string>
+		<string>E1B123120CF664D6004975AA</string>
+		<string>/Users/nicholas/Documents/Development/Pester/Source/Pester.xcodeproj</string>
+		<string>1C530D52069F1CE1000CFCEE</string>
+	</array>
+	<key>WindowString</key>
+	<string>1570 437 350 741 0 0 1920 1178 </string>
+	<key>WindowToolsV3</key>
+	<array>
+		<dict>
+			<key>Identifier</key>
+			<string>windowTool.detail</string>
+			<key>IsVertical</key>
+			<integer>0</integer>
+			<key>Layout</key>
+			<array>
+				<dict>
+					<key>Dock</key>
+					<array>
+						<dict>
+							<key>BecomeActive</key>
+							<integer>1</integer>
+							<key>ContentConfiguration</key>
+							<dict>
+								<key>PBXBottomSmartGroupGIDs</key>
+								<array>
+									<string>1C37FBAC04509CD000000102</string>
+									<string>1C37FAAC04509CD000000102</string>
+									<string>1C08E77C0454961000C914BD</string>
+									<string>1C37FABC05509CD000000102</string>
+									<string>1C37FABC05539CD112110102</string>
+									<string>E2644B35053B69B200211256</string>
+									<string>1C37FABC04509CD000100104</string>
+									<string>1CC0EA4004350EF90044410B</string>
+									<string>1CC0EA4004350EF90041110B</string>
+								</array>
+								<key>PBXProjectModuleGUID</key>
+								<string>1CE0B1FE06471DED0097A5F4</string>
+								<key>PBXProjectModuleLabel</key>
+								<string>Files</string>
+								<key>PBXProjectStructureProvided</key>
+								<string>yes</string>
+								<key>PBXSmartGroupTreeModuleColumnData</key>
+								<dict>
+									<key>PBXSmartGroupTreeModuleColumnWidthsKey</key>
+									<array>
+										<real>245</real>
+									</array>
+									<key>PBXSmartGroupTreeModuleColumnsKey_v4</key>
+									<array>
+										<string>MainColumn</string>
+									</array>
+								</dict>
+								<key>PBXSmartGroupTreeModuleOutlineStateKey_v7</key>
+								<dict>
+									<key>PBXSmartGroupTreeModuleOutlineStateExpansionKey</key>
+									<array>
+										<string>00C654E9FEEE28EC7F000001</string>
+										<string>1C37FABC05509CD000000102</string>
+									</array>
+									<key>PBXSmartGroupTreeModuleOutlineStateSelectionKey</key>
+									<array>
+										<array>
+											<integer>0</integer>
+										</array>
+									</array>
+									<key>PBXSmartGroupTreeModuleOutlineStateVisibleRectKey</key>
+									<string>{{0, 0}, {245, 350}}</string>
+								</dict>
+								<key>PBXTopSmartGroupGIDs</key>
+								<array/>
+								<key>XCIncludePerspectivesSwitch</key>
+								<integer>0</integer>
+							</dict>
+							<key>GeometryConfiguration</key>
+							<dict>
+								<key>Frame</key>
+								<string>{{0, 0}, {262, 368}}</string>
+								<key>GroupTreeTableConfiguration</key>
+								<array>
+									<string>MainColumn</string>
+									<real>245</real>
+								</array>
+								<key>RubberWindowFrame</key>
+								<string>31 446 744 409 0 0 1440 878 </string>
+							</dict>
+							<key>Module</key>
+							<string>PBXSmartGroupTreeModule</string>
+							<key>Proportion</key>
+							<string>262pt</string>
+						</dict>
+						<dict>
+							<key>ContentConfiguration</key>
+							<dict>
+								<key>PBXProjectModuleGUID</key>
+								<string>1CA1AED706398EBD00589147</string>
+								<key>PBXProjectModuleLabel</key>
+								<string>Detail</string>
+							</dict>
+							<key>GeometryConfiguration</key>
+							<dict>
+								<key>Frame</key>
+								<string>{{267, 0}, {477, 368}}</string>
+								<key>RubberWindowFrame</key>
+								<string>31 446 744 409 0 0 1440 878 </string>
+							</dict>
+							<key>Module</key>
+							<string>XCDetailModule</string>
+							<key>Proportion</key>
+							<string>477pt</string>
+						</dict>
+					</array>
+					<key>Proportion</key>
+					<string>100%</string>
+				</dict>
+			</array>
+			<key>Name</key>
+			<string>Detail</string>
+			<key>ServiceClasses</key>
+			<array>
+				<string>PBXSmartGroupTreeModule</string>
+				<string>XCDetailModule</string>
+			</array>
+			<key>StatusbarIsVisible</key>
+			<integer>1</integer>
+			<key>TableOfContents</key>
+			<array>
+				<string>1C335F2C07B51CD20023D4EE</string>
+				<string>1C335F2D07B51CD20023D4EE</string>
+				<string>1C335F2E07B51CD20023D4EE</string>
+				<string>1CE0B1FE06471DED0097A5F4</string>
+				<string>1CA1AED706398EBD00589147</string>
+			</array>
+			<key>ToolbarConfiguration</key>
+			<string>xcode.toolbar.config.defaultV3</string>
+			<key>WindowString</key>
+			<string>31 446 744 409 0 0 1440 878 </string>
+			<key>WindowToolGUID</key>
+			<string>1C335F2C07B51CD20023D4EE</string>
+			<key>WindowToolIsVisible</key>
+			<integer>1</integer>
+		</dict>
+		<dict>
+			<key>Identifier</key>
+			<string>MENUSEPARATOR</string>
+		</dict>
+		<dict>
+			<key>FirstTimeWindowDisplayed</key>
+			<false/>
+			<key>Identifier</key>
+			<string>windowTool.build</string>
+			<key>IsVertical</key>
+			<true/>
+			<key>Layout</key>
+			<array>
+				<dict>
+					<key>Dock</key>
+					<array>
+						<dict>
+							<key>ContentConfiguration</key>
+							<dict>
+								<key>PBXProjectModuleGUID</key>
+								<string>1CD0528F0623707200166675</string>
+								<key>PBXProjectModuleLabel</key>
+								<string>SUSpeaker.m</string>
+								<key>StatusBarVisibility</key>
+								<true/>
+							</dict>
+							<key>GeometryConfiguration</key>
+							<dict>
+								<key>Frame</key>
+								<string>{{0, 0}, {930, 253}}</string>
+								<key>RubberWindowFrame</key>
+								<string>788 152 930 535 0 0 1920 1178 </string>
+							</dict>
+							<key>Module</key>
+							<string>PBXNavigatorGroup</string>
+							<key>Proportion</key>
+							<string>253pt</string>
+						</dict>
+						<dict>
+							<key>BecomeActive</key>
+							<true/>
+							<key>ContentConfiguration</key>
+							<dict>
+								<key>PBXProjectModuleGUID</key>
+								<string>XCMainBuildResultsModuleGUID</string>
+								<key>PBXProjectModuleLabel</key>
+								<string>Build</string>
+								<key>XCBuildResultsTrigger_Collapse</key>
+								<integer>1021</integer>
+								<key>XCBuildResultsTrigger_Open</key>
+								<integer>1011</integer>
+							</dict>
+							<key>GeometryConfiguration</key>
+							<dict>
+								<key>Frame</key>
+								<string>{{0, 258}, {930, 236}}</string>
+								<key>RubberWindowFrame</key>
+								<string>788 152 930 535 0 0 1920 1178 </string>
+							</dict>
+							<key>Module</key>
+							<string>PBXBuildResultsModule</string>
+							<key>Proportion</key>
+							<string>236pt</string>
+						</dict>
+					</array>
+					<key>Proportion</key>
+					<string>494pt</string>
+				</dict>
+			</array>
+			<key>Name</key>
+			<string>Build Results</string>
+			<key>ServiceClasses</key>
+			<array>
+				<string>PBXBuildResultsModule</string>
+			</array>
+			<key>StatusbarIsVisible</key>
+			<true/>
+			<key>TableOfContents</key>
+			<array>
+				<string>1C530D52069F1CE1000CFCEE</string>
+				<string>E17CA6410CF6950E00018B34</string>
+				<string>1CD0528F0623707200166675</string>
+				<string>XCMainBuildResultsModuleGUID</string>
+			</array>
+			<key>ToolbarConfiguration</key>
+			<string>xcode.toolbar.config.buildV3</string>
+			<key>WindowString</key>
+			<string>788 152 930 535 0 0 1920 1178 </string>
+			<key>WindowToolGUID</key>
+			<string>1C530D52069F1CE1000CFCEE</string>
+			<key>WindowToolIsVisible</key>
+			<true/>
+		</dict>
+		<dict>
+			<key>FirstTimeWindowDisplayed</key>
+			<false/>
+			<key>Identifier</key>
+			<string>windowTool.debugger</string>
+			<key>IsVertical</key>
+			<true/>
+			<key>Layout</key>
+			<array>
+				<dict>
+					<key>Dock</key>
+					<array>
+						<dict>
+							<key>ContentConfiguration</key>
+							<dict>
+								<key>Debugger</key>
+								<dict>
+									<key>HorizontalSplitView</key>
+									<dict>
+										<key>_collapsingFrameDimension</key>
+										<real>0.0</real>
+										<key>_indexOfCollapsedView</key>
+										<integer>0</integer>
+										<key>_percentageOfCollapsedView</key>
+										<real>0.0</real>
+										<key>isCollapsed</key>
+										<string>yes</string>
+										<key>sizes</key>
+										<array>
+											<string>{{0, 0}, {445, 323}}</string>
+											<string>{{445, 0}, {536, 323}}</string>
+										</array>
+									</dict>
+									<key>VerticalSplitView</key>
+									<dict>
+										<key>_collapsingFrameDimension</key>
+										<real>0.0</real>
+										<key>_indexOfCollapsedView</key>
+										<integer>0</integer>
+										<key>_percentageOfCollapsedView</key>
+										<real>0.0</real>
+										<key>isCollapsed</key>
+										<string>yes</string>
+										<key>sizes</key>
+										<array>
+											<string>{{0, 0}, {981, 323}}</string>
+											<string>{{0, 323}, {981, 395}}</string>
+										</array>
+									</dict>
+								</dict>
+								<key>LauncherConfigVersion</key>
+								<string>8</string>
+								<key>PBXProjectModuleGUID</key>
+								<string>1C162984064C10D400B95A72</string>
+								<key>PBXProjectModuleLabel</key>
+								<string>Debug - GLUTExamples (Underwater)</string>
+							</dict>
+							<key>GeometryConfiguration</key>
+							<dict>
+								<key>DebugConsoleVisible</key>
+								<string>None</string>
+								<key>DebugConsoleWindowFrame</key>
+								<string>{{200, 200}, {500, 300}}</string>
+								<key>DebugSTDIOWindowFrame</key>
+								<string>{{200, 200}, {500, 300}}</string>
+								<key>Frame</key>
+								<string>{{0, 0}, {981, 718}}</string>
+								<key>PBXDebugSessionStackFrameViewKey</key>
+								<dict>
+									<key>DebugVariablesTableConfiguration</key>
+									<array>
+										<string>Name</string>
+										<real>120</real>
+										<string>Value</string>
+										<real>85</real>
+										<string>Summary</string>
+										<real>306</real>
+									</array>
+									<key>Frame</key>
+									<string>{{445, 0}, {536, 323}}</string>
+									<key>RubberWindowFrame</key>
+									<string>697 149 981 759 0 0 1920 1178 </string>
+								</dict>
+								<key>RubberWindowFrame</key>
+								<string>697 149 981 759 0 0 1920 1178 </string>
+							</dict>
+							<key>Module</key>
+							<string>PBXDebugSessionModule</string>
+							<key>Proportion</key>
+							<string>718pt</string>
+						</dict>
+					</array>
+					<key>Proportion</key>
+					<string>718pt</string>
+				</dict>
+			</array>
+			<key>Name</key>
+			<string>Debugger</string>
+			<key>ServiceClasses</key>
+			<array>
+				<string>PBXDebugSessionModule</string>
+			</array>
+			<key>StatusbarIsVisible</key>
+			<true/>
+			<key>TableOfContents</key>
+			<array>
+				<string>1C530D54069F1CE1000CFCEE</string>
+				<string>E1B121350CF61036004975AA</string>
+				<string>1C162984064C10D400B95A72</string>
+				<string>E1B121360CF61036004975AA</string>
+				<string>E1B121370CF61036004975AA</string>
+				<string>E1B121380CF61036004975AA</string>
+				<string>E1B121390CF61036004975AA</string>
+				<string>E1B1213A0CF61036004975AA</string>
+			</array>
+			<key>ToolbarConfiguration</key>
+			<string>xcode.toolbar.config.debugV3</string>
+			<key>WindowString</key>
+			<string>697 149 981 759 0 0 1920 1178 </string>
+			<key>WindowToolGUID</key>
+			<string>1C530D54069F1CE1000CFCEE</string>
+			<key>WindowToolIsVisible</key>
+			<false/>
+		</dict>
+		<dict>
+			<key>FirstTimeWindowDisplayed</key>
+			<false/>
+			<key>Identifier</key>
+			<string>windowTool.find</string>
+			<key>IsVertical</key>
+			<true/>
+			<key>Layout</key>
+			<array>
+				<dict>
+					<key>Dock</key>
+					<array>
+						<dict>
+							<key>Dock</key>
+							<array>
+								<dict>
+									<key>ContentConfiguration</key>
+									<dict>
+										<key>PBXProjectModuleGUID</key>
+										<string>1CDD528C0622207200134675</string>
+										<key>PBXProjectModuleLabel</key>
+										<string>NJRQTMediaPopUpButton.m</string>
+										<key>StatusBarVisibility</key>
+										<true/>
+									</dict>
+									<key>GeometryConfiguration</key>
+									<dict>
+										<key>Frame</key>
+										<string>{{0, 0}, {878, 61}}</string>
+										<key>RubberWindowFrame</key>
+										<string>488 199 878 716 0 0 1920 1178 </string>
+									</dict>
+									<key>Module</key>
+									<string>PBXNavigatorGroup</string>
+									<key>Proportion</key>
+									<string>878pt</string>
+								</dict>
+							</array>
+							<key>Proportion</key>
+							<string>61pt</string>
+						</dict>
+						<dict>
+							<key>BecomeActive</key>
+							<true/>
+							<key>ContentConfiguration</key>
+							<dict>
+								<key>PBXProjectModuleGUID</key>
+								<string>1CD0528E0623707200166675</string>
+								<key>PBXProjectModuleLabel</key>
+								<string>Project Find</string>
+							</dict>
+							<key>GeometryConfiguration</key>
+							<dict>
+								<key>Frame</key>
+								<string>{{0, 66}, {878, 609}}</string>
+								<key>RubberWindowFrame</key>
+								<string>488 199 878 716 0 0 1920 1178 </string>
+							</dict>
+							<key>Module</key>
+							<string>PBXProjectFindModule</string>
+							<key>Proportion</key>
+							<string>609pt</string>
+						</dict>
+					</array>
+					<key>Proportion</key>
+					<string>675pt</string>
+				</dict>
+			</array>
+			<key>Name</key>
+			<string>Project Find</string>
+			<key>ServiceClasses</key>
+			<array>
+				<string>PBXProjectFindModule</string>
+			</array>
+			<key>StatusbarIsVisible</key>
+			<true/>
+			<key>TableOfContents</key>
+			<array>
+				<string>1C530D57069F1CE1000CFCEE</string>
+				<string>E1B121600CF62EDE004975AA</string>
+				<string>E1B121610CF62EDE004975AA</string>
+				<string>1CDD528C0622207200134675</string>
+				<string>1CD0528E0623707200166675</string>
+			</array>
+			<key>WindowString</key>
+			<string>488 199 878 716 0 0 1920 1178 </string>
+			<key>WindowToolGUID</key>
+			<string>1C530D57069F1CE1000CFCEE</string>
+			<key>WindowToolIsVisible</key>
+			<false/>
+		</dict>
+		<dict>
+			<key>Identifier</key>
+			<string>MENUSEPARATOR</string>
+		</dict>
+		<dict>
+			<key>FirstTimeWindowDisplayed</key>
+			<false/>
+			<key>Identifier</key>
+			<string>windowTool.debuggerConsole</string>
+			<key>IsVertical</key>
+			<true/>
+			<key>Layout</key>
+			<array>
+				<dict>
+					<key>Dock</key>
+					<array>
+						<dict>
+							<key>BecomeActive</key>
+							<true/>
+							<key>ContentConfiguration</key>
+							<dict>
+								<key>PBXProjectModuleGUID</key>
+								<string>1C78EAAC065D492600B07095</string>
+								<key>PBXProjectModuleLabel</key>
+								<string>Debugger Console</string>
+							</dict>
+							<key>GeometryConfiguration</key>
+							<dict>
+								<key>Frame</key>
+								<string>{{0, 0}, {1079, 478}}</string>
+								<key>RubberWindowFrame</key>
+								<string>597 84 1079 519 0 0 1920 1178 </string>
+							</dict>
+							<key>Module</key>
+							<string>PBXDebugCLIModule</string>
+							<key>Proportion</key>
+							<string>478pt</string>
+						</dict>
+					</array>
+					<key>Proportion</key>
+					<string>478pt</string>
+				</dict>
+			</array>
+			<key>Name</key>
+			<string>Debugger Console</string>
+			<key>ServiceClasses</key>
+			<array>
+				<string>PBXDebugCLIModule</string>
+			</array>
+			<key>StatusbarIsVisible</key>
+			<true/>
+			<key>TableOfContents</key>
+			<array>
+				<string>1C530D5B069F1CE1000CFCEE</string>
+				<string>E1B121420CF617DA004975AA</string>
+				<string>1C78EAAC065D492600B07095</string>
+			</array>
+			<key>ToolbarConfiguration</key>
+			<string>xcode.toolbar.config.consoleV3</string>
+			<key>WindowString</key>
+			<string>597 84 1079 519 0 0 1920 1178 </string>
+			<key>WindowToolGUID</key>
+			<string>1C530D5B069F1CE1000CFCEE</string>
+			<key>WindowToolIsVisible</key>
+			<false/>
+		</dict>
+		<dict>
+			<key>Identifier</key>
+			<string>windowTool.snapshots</string>
+			<key>Layout</key>
+			<array>
+				<dict>
+					<key>Dock</key>
+					<array>
+						<dict>
+							<key>Module</key>
+							<string>XCSnapshotModule</string>
+							<key>Proportion</key>
+							<string>100%</string>
+						</dict>
+					</array>
+					<key>Proportion</key>
+					<string>100%</string>
+				</dict>
+			</array>
+			<key>Name</key>
+			<string>Snapshots</string>
+			<key>ServiceClasses</key>
+			<array>
+				<string>XCSnapshotModule</string>
+			</array>
+			<key>StatusbarIsVisible</key>
+			<string>Yes</string>
+			<key>ToolbarConfiguration</key>
+			<string>xcode.toolbar.config.snapshots</string>
+			<key>WindowString</key>
+			<string>315 824 300 550 0 0 1440 878 </string>
+			<key>WindowToolIsVisible</key>
+			<string>Yes</string>
+		</dict>
+		<dict>
+			<key>FirstTimeWindowDisplayed</key>
+			<false/>
+			<key>Identifier</key>
+			<string>windowTool.scm</string>
+			<key>IsVertical</key>
+			<true/>
+			<key>Layout</key>
+			<array>
+				<dict>
+					<key>Dock</key>
+					<array>
+						<dict>
+							<key>ContentConfiguration</key>
+							<dict>
+								<key>PBXProjectModuleGUID</key>
+								<string>1C78EAB2065D492600B07095</string>
+								<key>PBXProjectModuleLabel</key>
+								<string></string>
+								<key>StatusBarVisibility</key>
+								<true/>
+							</dict>
+							<key>GeometryConfiguration</key>
+							<dict>
+								<key>Frame</key>
+								<string>{{0, 0}, {828, 0}}</string>
+								<key>RubberWindowFrame</key>
+								<string>276 29 828 611 0 0 1920 1178 </string>
+							</dict>
+							<key>Module</key>
+							<string>PBXNavigatorGroup</string>
+							<key>Proportion</key>
+							<string>0pt</string>
+						</dict>
+						<dict>
+							<key>BecomeActive</key>
+							<true/>
+							<key>ContentConfiguration</key>
+							<dict>
+								<key>PBXCVSModuleFilterTypeKey</key>
+								<integer>1031</integer>
+								<key>PBXCVSModuleTreeModuleColumnData</key>
+								<dict>
+									<key>PBXCVSModuleTreeModuleColumnWidthsKey</key>
+									<array>
+										<real>210</real>
+										<real>56</real>
+										<real>63</real>
+										<real>60</real>
+										<real>63</real>
+										<real>355</real>
+									</array>
+									<key>PBXCVSModuleTreeModuleColumnsKey</key>
+									<array>
+										<string>Name</string>
+										<string>Status</string>
+										<string>Update</string>
+										<string>Revision</string>
+										<string>Author</string>
+										<string>Date</string>
+									</array>
+								</dict>
+								<key>PBXProjectModuleGUID</key>
+								<string>1CD052920623707200166675</string>
+								<key>PBXProjectModuleLabel</key>
+								<string>SCM Results</string>
+							</dict>
+							<key>GeometryConfiguration</key>
+							<dict>
+								<key>Frame</key>
+								<string>{{0, 5}, {828, 565}}</string>
+								<key>RubberWindowFrame</key>
+								<string>276 29 828 611 0 0 1920 1178 </string>
+							</dict>
+							<key>Module</key>
+							<string>PBXCVSModule</string>
+							<key>Proportion</key>
+							<string>565pt</string>
+						</dict>
+					</array>
+					<key>Proportion</key>
+					<string>570pt</string>
+				</dict>
+			</array>
+			<key>Name</key>
+			<string>SCM</string>
+			<key>ServiceClasses</key>
+			<array>
+				<string>PBXCVSModule</string>
+			</array>
+			<key>StatusbarIsVisible</key>
+			<true/>
+			<key>TableOfContents</key>
+			<array>
+				<string>E1B123120CF664D6004975AA</string>
+				<string>E17CA63B0CF694D400018B34</string>
+				<string>1C78EAB2065D492600B07095</string>
+				<string>1CD052920623707200166675</string>
+			</array>
+			<key>ToolbarConfiguration</key>
+			<string>xcode.toolbar.config.scm</string>
+			<key>WindowString</key>
+			<string>276 29 828 611 0 0 1920 1178 </string>
+			<key>WindowToolGUID</key>
+			<string>E1B123120CF664D6004975AA</string>
+			<key>WindowToolIsVisible</key>
+			<false/>
+		</dict>
+		<dict>
+			<key>FirstTimeWindowDisplayed</key>
+			<false/>
+			<key>Identifier</key>
+			<string>windowTool.breakpoints</string>
+			<key>IsVertical</key>
+			<false/>
+			<key>Layout</key>
+			<array>
+				<dict>
+					<key>Dock</key>
+					<array>
+						<dict>
+							<key>ContentConfiguration</key>
+							<dict>
+								<key>PBXBottomSmartGroupGIDs</key>
+								<array>
+									<string>1C77FABC04509CD000000102</string>
+								</array>
+								<key>PBXProjectModuleGUID</key>
+								<string>1CE0B1FE06471DED0097A5F4</string>
+								<key>PBXProjectModuleLabel</key>
+								<string>Files</string>
+								<key>PBXProjectStructureProvided</key>
+								<string>no</string>
+								<key>PBXSmartGroupTreeModuleColumnData</key>
+								<dict>
+									<key>PBXSmartGroupTreeModuleColumnWidthsKey</key>
+									<array>
+										<real>168</real>
+									</array>
+									<key>PBXSmartGroupTreeModuleColumnsKey_v4</key>
+									<array>
+										<string>MainColumn</string>
+									</array>
+								</dict>
+								<key>PBXSmartGroupTreeModuleOutlineStateKey_v7</key>
+								<dict>
+									<key>PBXSmartGroupTreeModuleOutlineStateExpansionKey</key>
+									<array>
+										<string>1C77FABC04509CD000000102</string>
+									</array>
+									<key>PBXSmartGroupTreeModuleOutlineStateSelectionKey</key>
+									<array>
+										<array>
+											<integer>0</integer>
+										</array>
+									</array>
+									<key>PBXSmartGroupTreeModuleOutlineStateVisibleRectKey</key>
+									<string>{{0, 0}, {168, 350}}</string>
+								</dict>
+								<key>PBXTopSmartGroupGIDs</key>
+								<array/>
+								<key>XCIncludePerspectivesSwitch</key>
+								<false/>
+							</dict>
+							<key>GeometryConfiguration</key>
+							<dict>
+								<key>Frame</key>
+								<string>{{0, 0}, {185, 368}}</string>
+								<key>GroupTreeTableConfiguration</key>
+								<array>
+									<string>MainColumn</string>
+									<real>168</real>
+								</array>
+								<key>RubberWindowFrame</key>
+								<string>290 117 744 409 0 0 1920 1178 </string>
+							</dict>
+							<key>Module</key>
+							<string>PBXSmartGroupTreeModule</string>
+							<key>Proportion</key>
+							<string>185pt</string>
+						</dict>
+						<dict>
+							<key>BecomeActive</key>
+							<true/>
+							<key>ContentConfiguration</key>
+							<dict>
+								<key>PBXProjectModuleGUID</key>
+								<string>1CA1AED706398EBD00589147</string>
+								<key>PBXProjectModuleLabel</key>
+								<string>Detail</string>
+							</dict>
+							<key>GeometryConfiguration</key>
+							<dict>
+								<key>Frame</key>
+								<string>{{190, 0}, {554, 368}}</string>
+								<key>RubberWindowFrame</key>
+								<string>290 117 744 409 0 0 1920 1178 </string>
+							</dict>
+							<key>Module</key>
+							<string>XCDetailModule</string>
+							<key>Proportion</key>
+							<string>554pt</string>
+						</dict>
+					</array>
+					<key>Proportion</key>
+					<string>368pt</string>
+				</dict>
+			</array>
+			<key>MajorVersion</key>
+			<integer>3</integer>
+			<key>MinorVersion</key>
+			<integer>0</integer>
+			<key>Name</key>
+			<string>Breakpoints</string>
+			<key>ServiceClasses</key>
+			<array>
+				<string>PBXSmartGroupTreeModule</string>
+				<string>XCDetailModule</string>
+			</array>
+			<key>StatusbarIsVisible</key>
+			<true/>
+			<key>TableOfContents</key>
+			<array>
+				<string>E1B1236F0CF67A4B004975AA</string>
+				<string>E1B123700CF67A4B004975AA</string>
+				<string>1CE0B1FE06471DED0097A5F4</string>
+				<string>1CA1AED706398EBD00589147</string>
+			</array>
+			<key>ToolbarConfiguration</key>
+			<string>xcode.toolbar.config.breakpointsV3</string>
+			<key>WindowString</key>
+			<string>290 117 744 409 0 0 1920 1178 </string>
+			<key>WindowToolGUID</key>
+			<string>E1B1236F0CF67A4B004975AA</string>
+			<key>WindowToolIsVisible</key>
+			<false/>
+		</dict>
+		<dict>
+			<key>Identifier</key>
+			<string>windowTool.debugAnimator</string>
+			<key>Layout</key>
+			<array>
+				<dict>
+					<key>Dock</key>
+					<array>
+						<dict>
+							<key>Module</key>
+							<string>PBXNavigatorGroup</string>
+							<key>Proportion</key>
+							<string>100%</string>
+						</dict>
+					</array>
+					<key>Proportion</key>
+					<string>100%</string>
+				</dict>
+			</array>
+			<key>Name</key>
+			<string>Debug Visualizer</string>
+			<key>ServiceClasses</key>
+			<array>
+				<string>PBXNavigatorGroup</string>
+			</array>
+			<key>StatusbarIsVisible</key>
+			<integer>1</integer>
+			<key>ToolbarConfiguration</key>
+			<string>xcode.toolbar.config.debugAnimatorV3</string>
+			<key>WindowString</key>
+			<string>100 100 700 500 0 0 1280 1002 </string>
+		</dict>
+		<dict>
+			<key>Identifier</key>
+			<string>windowTool.bookmarks</string>
+			<key>Layout</key>
+			<array>
+				<dict>
+					<key>Dock</key>
+					<array>
+						<dict>
+							<key>Module</key>
+							<string>PBXBookmarksModule</string>
+							<key>Proportion</key>
+							<string>100%</string>
+						</dict>
+					</array>
+					<key>Proportion</key>
+					<string>100%</string>
+				</dict>
+			</array>
+			<key>Name</key>
+			<string>Bookmarks</string>
+			<key>ServiceClasses</key>
+			<array>
+				<string>PBXBookmarksModule</string>
+			</array>
+			<key>StatusbarIsVisible</key>
+			<integer>0</integer>
+			<key>WindowString</key>
+			<string>538 42 401 187 0 0 1280 1002 </string>
+		</dict>
+		<dict>
+			<key>Identifier</key>
+			<string>windowTool.projectFormatConflicts</string>
+			<key>Layout</key>
+			<array>
+				<dict>
+					<key>Dock</key>
+					<array>
+						<dict>
+							<key>Module</key>
+							<string>XCProjectFormatConflictsModule</string>
+							<key>Proportion</key>
+							<string>100%</string>
+						</dict>
+					</array>
+					<key>Proportion</key>
+					<string>100%</string>
+				</dict>
+			</array>
+			<key>Name</key>
+			<string>Project Format Conflicts</string>
+			<key>ServiceClasses</key>
+			<array>
+				<string>XCProjectFormatConflictsModule</string>
+			</array>
+			<key>StatusbarIsVisible</key>
+			<integer>0</integer>
+			<key>WindowContentMinSize</key>
+			<string>450 300</string>
+			<key>WindowString</key>
+			<string>50 850 472 307 0 0 1440 877</string>
+		</dict>
+		<dict>
+			<key>Identifier</key>
+			<string>windowTool.classBrowser</string>
+			<key>Layout</key>
+			<array>
+				<dict>
+					<key>Dock</key>
+					<array>
+						<dict>
+							<key>BecomeActive</key>
+							<integer>1</integer>
+							<key>ContentConfiguration</key>
+							<dict>
+								<key>OptionsSetName</key>
+								<string>Hierarchy, all classes</string>
+								<key>PBXProjectModuleGUID</key>
+								<string>1CA6456E063B45B4001379D8</string>
+								<key>PBXProjectModuleLabel</key>
+								<string>Class Browser - NSObject</string>
+							</dict>
+							<key>GeometryConfiguration</key>
+							<dict>
+								<key>ClassesFrame</key>
+								<string>{{0, 0}, {368, 96}}</string>
+								<key>ClassesTreeTableConfiguration</key>
+								<array>
+									<string>PBXClassNameColumnIdentifier</string>
+									<real>208</real>
+									<string>PBXClassBookColumnIdentifier</string>
+									<real>22</real>
+								</array>
+								<key>Frame</key>
+								<string>{{0, 0}, {624, 318}}</string>
+								<key>MembersFrame</key>
+								<string>{{0, 105}, {368, 395}}</string>
+								<key>MembersTreeTableConfiguration</key>
+								<array>
+									<string>PBXMemberTypeIconColumnIdentifier</string>
+									<real>22</real>
+									<string>PBXMemberNameColumnIdentifier</string>
+									<real>216</real>
+									<string>PBXMemberTypeColumnIdentifier</string>
+									<real>91</real>
+									<string>PBXMemberBookColumnIdentifier</string>
+									<real>22</real>
+								</array>
+								<key>PBXModuleWindowStatusBarHidden2</key>
+								<integer>1</integer>
+								<key>RubberWindowFrame</key>
+								<string>128 171 624 339 0 0 1440 878 </string>
+							</dict>
+							<key>Module</key>
+							<string>PBXClassBrowserModule</string>
+							<key>Proportion</key>
+							<string>319pt</string>
+						</dict>
+					</array>
+					<key>Proportion</key>
+					<string>319pt</string>
+				</dict>
+			</array>
+			<key>Name</key>
+			<string>Class Browser</string>
+			<key>ServiceClasses</key>
+			<array>
+				<string>PBXClassBrowserModule</string>
+			</array>
+			<key>StatusbarIsVisible</key>
+			<integer>0</integer>
+			<key>TableOfContents</key>
+			<array>
+				<string>1C530D60069F1CE1000CFCEE</string>
+				<string>1C530D61069F1CE1000CFCEE</string>
+				<string>1CA6456E063B45B4001379D8</string>
+			</array>
+			<key>ToolbarConfiguration</key>
+			<string>xcode.toolbar.config.classbrowser</string>
+			<key>WindowString</key>
+			<string>128 171 624 339 0 0 1440 878 </string>
+			<key>WindowToolGUID</key>
+			<string>1C530D60069F1CE1000CFCEE</string>
+			<key>WindowToolIsVisible</key>
+			<integer>0</integer>
+		</dict>
+		<dict>
+			<key>Identifier</key>
+			<string>windowTool.refactoring</string>
+			<key>IncludeInToolsMenu</key>
+			<integer>0</integer>
+			<key>Layout</key>
+			<array>
+				<dict>
+					<key>Dock</key>
+					<array>
+						<dict>
+							<key>BecomeActive</key>
+							<integer>1</integer>
+							<key>GeometryConfiguration</key>
+							<dict>
+								<key>Frame</key>
+								<string>{0, 0}, {500, 335}</string>
+								<key>RubberWindowFrame</key>
+								<string>{0, 0}, {500, 335}</string>
+							</dict>
+							<key>Module</key>
+							<string>XCRefactoringModule</string>
+							<key>Proportion</key>
+							<string>100%</string>
+						</dict>
+					</array>
+					<key>Proportion</key>
+					<string>100%</string>
+				</dict>
+			</array>
+			<key>Name</key>
+			<string>Refactoring</string>
+			<key>ServiceClasses</key>
+			<array>
+				<string>XCRefactoringModule</string>
+			</array>
+			<key>WindowString</key>
+			<string>200 200 500 356 0 0 1920 1200 </string>
+		</dict>
+	</array>
+</dict>
+</plist>
Index: trunk/Cocoa/Pester/Source/Pester.xcodeproj/nicholas.pbxuser
===================================================================
--- trunk/Cocoa/Pester/Source/Pester.xcodeproj/nicholas.pbxuser	(revision 355)
+++ trunk/Cocoa/Pester/Source/Pester.xcodeproj/nicholas.pbxuser	(revision 355)
@@ -0,0 +1,1355 @@
+// !$*UTF8*$!
+{
+	29B97313FDCFA39411CA2CEA /* Project object */ = {
+		activeArchitecture = i386;
+		activeBuildConfigurationName = Development;
+		activeExecutable = E1B11F8D0CF5F30F004975AA /* Pester */;
+		activeTarget = E1B11EE30CF5F30F004975AA /* Pester */;
+		addToTargets = (
+			E1B11EE30CF5F30F004975AA /* Pester */,
+		);
+		breakpoints = (
+			F596730D0355CFA301407038 /* -[_NSZombie methodSignatureForSelector:] */,
+			F500E5370359719B01AEEDB1 /* szone_error */,
+			F5B15F74037E42EB01AEEDB1 /* -[NSException raise] */,
+			E1A9DEE703BF3C110089E8B2 /* -[_NSZombie release] */,
+			E120D65F0418AE0E00050002 /* PSAlarm.m:46 */,
+			E120D6610418B08700050002 /* PSAlarm.m:46 */,
+			E145384C043A31D900050002 /* NJRHotKeyManager.m:158 */,
+		);
+		codeSenseManager = E1B11EDD0CF5F2EB004975AA /* Code sense */;
+		executables = (
+			E1B11F8D0CF5F30F004975AA /* Pester */,
+		);
+		perUserDictionary = {
+			"PBXConfiguration.PBXBreakpointsDataSource.v1:1CA1AED706398EBD00589147" = {
+				PBXFileTableDataSourceColumnSortingDirectionKey = "-1";
+				PBXFileTableDataSourceColumnSortingKey = PBXBreakpointsDataSource_BreakpointID;
+				PBXFileTableDataSourceColumnWidthsKey = (
+					20,
+					20,
+					198,
+					20,
+					99,
+					99,
+					29,
+					20,
+				);
+				PBXFileTableDataSourceColumnsKey = (
+					PBXBreakpointsDataSource_ActionID,
+					PBXBreakpointsDataSource_TypeID,
+					PBXBreakpointsDataSource_BreakpointID,
+					PBXBreakpointsDataSource_UseID,
+					PBXBreakpointsDataSource_LocationID,
+					PBXBreakpointsDataSource_ConditionID,
+					PBXBreakpointsDataSource_IgnoreCountID,
+					PBXBreakpointsDataSource_ContinueID,
+				);
+			};
+			PBXConfiguration.PBXFileTableDataSource3.PBXFileTableDataSource = {
+				PBXFileTableDataSourceColumnSortingDirectionKey = "-1";
+				PBXFileTableDataSourceColumnSortingKey = PBXFileDataSource_Filename_ColumnID;
+				PBXFileTableDataSourceColumnWidthsKey = (
+					20,
+					315,
+					20,
+					48.16259765625,
+					43,
+					43,
+					20,
+				);
+				PBXFileTableDataSourceColumnsKey = (
+					PBXFileDataSource_FiletypeID,
+					PBXFileDataSource_Filename_ColumnID,
+					PBXFileDataSource_Built_ColumnID,
+					PBXFileDataSource_ObjectSize_ColumnID,
+					PBXFileDataSource_Errors_ColumnID,
+					PBXFileDataSource_Warnings_ColumnID,
+					PBXFileDataSource_Target_ColumnID,
+				);
+			};
+			PBXPerProjectTemplateStateSaveDate = 217486546;
+			"PBXTemplateGeometry-F5314676015831810DCA290F" = {
+				ContentSize = "{618, 257}";
+				LeftSlideOut = {
+					Collapsed = NO;
+					Frame = "{{0, 23}, {618, 234}}";
+					Split0 = {
+						ActiveTab = 2;
+						ActiveTabName = PBXBuildResultsModule;
+						Collapsed = YES;
+						Frame = "{{0, 0}, {618, 234}}";
+						Split0 = {
+							Frame = "{{1e+06, 1e+06}, {618, 0}}";
+						};
+						SplitCount = 1;
+						Tab0 = {
+							Frame = "{{0, 0}, {952, 321}}";
+						};
+						Tab1 = {
+							Debugger = {
+								Collapsed = NO;
+								Frame = "{{0, 0}, {781, 452}}";
+								Split0 = {
+									Frame = "{{0, 24}, {781, 428}}";
+									Split0 = {
+										Frame = "{{0, 0}, {383, 428}}";
+									};
+									Split1 = {
+										DebugVariablesTableConfiguration = (
+											Name,
+											123,
+											Value,
+											85,
+											Summary,
+											155.123,
+										);
+										Frame = "{{392, 0}, {389, 428}}";
+									};
+									SplitCount = 2;
+								};
+								SplitCount = 1;
+								Tab0 = {
+									Frame = "{{0, 0}, {100, 50}}";
+								};
+								Tab1 = {
+									Frame = "{{0, 0}, {100, 50}}";
+								};
+								TabCount = 2;
+								TabsVisible = YES;
+							};
+							Frame = "{{0, 0}, {781, 452}}";
+							LauncherConfigVersion = 7;
+						};
+						Tab2 = {
+							Frame = "{{0, 0}, {618, 228}}";
+							LauncherConfigVersion = 3;
+							Runner = {
+								Frame = "{{0, 0}, {618, 228}}";
+							};
+						};
+						Tab3 = {
+							BuildMessageFrame = "{{0, 0}, {620, 195}}";
+							BuildTranscriptFrame = "{{0, 204}, {620, 2}}";
+							BuildTranscriptFrameExpanded = YES;
+							Frame = "{{0, 0}, {618, 228}}";
+						};
+						Tab4 = {
+							Frame = "{{0, 0}, {612, 295}}";
+						};
+						TabCount = 5;
+						TabsVisible = NO;
+					};
+					SplitCount = 1;
+					Tab0 = {
+						Frame = "{{0, 0}, {300, 533}}";
+						GroupTreeTableConfiguration = (
+							TargetStatusColumn,
+							18,
+							MainColumn,
+							267,
+						);
+					};
+					Tab1 = {
+						ClassesFrame = "{{0, 0}, {280, 398}}";
+						ClassesTreeTableConfiguration = (
+							PBXBookColumnIdentifier,
+							20,
+							PBXClassColumnIdentifier,
+							237,
+						);
+						Frame = "{{0, 0}, {278, 659}}";
+						MembersFrame = "{{0, 407}, {280, 252}}";
+						MembersTreeTableConfiguration = (
+							PBXBookColumnIdentifier,
+							20,
+							PBXMethodColumnIdentifier,
+							236,
+						);
+					};
+					Tab2 = {
+						Frame = "{{0, 0}, {200, 100}}";
+					};
+					Tab3 = {
+						Frame = "{{0, 0}, {200, 100}}";
+						TargetTableConfiguration = (
+							ActiveObject,
+							16,
+							ObjectNames,
+							202.296,
+						);
+					};
+					Tab4 = {
+						BreakpointsTreeTableConfiguration = (
+							breakpointColumn,
+							197,
+							enabledColumn,
+							31,
+						);
+						Frame = "{{0, 0}, {250, 100}}";
+					};
+					TabCount = 5;
+					TabsVisible = NO;
+				};
+				NavBarShownByDefault = YES;
+				StatusViewVisible = YES;
+				Template = F5314676015831810DCA290F;
+				ToolbarVisible = YES;
+				WindowLocation = "{565, 336}";
+			};
+			"PBXTemplateGeometry-F5534CB2020F3F8A0DCA290F" = {
+				ContentSize = "{594, 303}";
+				LeftSlideOut = {
+					Collapsed = NO;
+					Frame = "{{0, 23}, {594, 280}}";
+					Split0 = {
+						ActiveTab = 1;
+						ActiveTabName = PBXRunSessionModule;
+						Collapsed = YES;
+						Frame = "{{0, 0}, {594, 280}}";
+						Split0 = {
+							Frame = "{{1e+06, 1e+06}, {594, 0}}";
+						};
+						SplitCount = 1;
+						Tab0 = {
+							Frame = "{{0, 0}, {804, 321}}";
+						};
+						Tab1 = {
+							Debugger = {
+								Collapsed = NO;
+								Frame = "{{0, 0}, {594, 274}}";
+								Split0 = {
+									Frame = "{{0, 24}, {594, 250}}";
+									Split0 = {
+										Frame = "{{0, 0}, {290, 250}}";
+									};
+									Split1 = {
+										DebugVariablesTableConfiguration = (
+											Name,
+											123,
+											Value,
+											85,
+											Summary,
+											62.123,
+										);
+										Frame = "{{299, 0}, {295, 250}}";
+									};
+									SplitCount = 2;
+								};
+								SplitCount = 1;
+								Tab0 = {
+									Frame = "{{0, 0}, {100, 50}}";
+								};
+								Tab1 = {
+									Frame = "{{0, 0}, {100, 50}}";
+								};
+								TabCount = 2;
+								TabsVisible = YES;
+							};
+							Frame = "{{0, 0}, {594, 274}}";
+							LauncherConfigVersion = 7;
+						};
+						Tab2 = {
+							Frame = "{{0, 0}, {594, 274}}";
+							LauncherConfigVersion = 3;
+							Runner = {
+								Frame = "{{0, 0}, {594, 274}}";
+							};
+						};
+						Tab3 = {
+							BuildMessageFrame = "{{0, 0}, {614, 262}}";
+							BuildTranscriptFrame = "{{0, 271}, {614, 2}}";
+							BuildTranscriptFrameExpanded = YES;
+							Frame = "{{0, 0}, {612, 295}}";
+						};
+						Tab4 = {
+							Frame = "{{0, 0}, {612, 295}}";
+						};
+						TabCount = 5;
+						TabsVisible = NO;
+					};
+					SplitCount = 1;
+					Tab0 = {
+						Frame = "{{0, 0}, {300, 533}}";
+						GroupTreeTableConfiguration = (
+							TargetStatusColumn,
+							18,
+							MainColumn,
+							267,
+						);
+					};
+					Tab1 = {
+						ClassesFrame = "{{0, 0}, {280, 398}}";
+						ClassesTreeTableConfiguration = (
+							PBXBookColumnIdentifier,
+							20,
+							PBXClassColumnIdentifier,
+							237,
+						);
+						Frame = "{{0, 0}, {278, 659}}";
+						MembersFrame = "{{0, 407}, {280, 252}}";
+						MembersTreeTableConfiguration = (
+							PBXBookColumnIdentifier,
+							20,
+							PBXMethodColumnIdentifier,
+							236,
+						);
+					};
+					Tab2 = {
+						Frame = "{{0, 0}, {200, 100}}";
+					};
+					Tab3 = {
+						Frame = "{{0, 0}, {200, 386}}";
+						TargetTableConfiguration = (
+							ActiveObject,
+							16,
+							ObjectNames,
+							202.296,
+						);
+					};
+					Tab4 = {
+						BreakpointsTreeTableConfiguration = (
+							breakpointColumn,
+							197,
+							enabledColumn,
+							31,
+						);
+						Frame = "{{0, 0}, {250, 386}}";
+					};
+					TabCount = 5;
+					TabsVisible = NO;
+				};
+				NavBarShownByDefault = YES;
+				StatusViewVisible = YES;
+				Template = F5534CB2020F3F8A0DCA290F;
+				ToolbarVisible = YES;
+				WindowLocation = "{4, 633}";
+			};
+			"PBXTemplateGeometry-F5CA7ECB015C094F0DCA290F" = {
+				ContentSize = "{668, 621}";
+				LeftSlideOut = {
+					Collapsed = NO;
+					Frame = "{{0, 0}, {668, 621}}";
+					Split0 = {
+						Collapsed = NO;
+						Frame = "{{0, 0}, {668, 621}}";
+						Split0 = {
+							Frame = "{{0, 0}, {668, 621}}";
+						};
+						SplitCount = 1;
+						Tab0 = {
+							Frame = "{{0, 0}, {484, 208}}";
+						};
+						Tab1 = {
+							Debugger = {
+								Collapsed = NO;
+								Frame = "{{0, 0}, {664, 208}}";
+								Split0 = {
+									Frame = "{{0, 24}, {664, 184}}";
+									Split0 = {
+										Frame = "{{0, 0}, {325, 184}}";
+									};
+									Split1 = {
+										DebugVariablesTableConfiguration = (
+											Name,
+											123,
+											Value,
+											85,
+											Summary,
+											96.123,
+										);
+										Frame = "{{334, 0}, {330, 184}}";
+									};
+									SplitCount = 2;
+								};
+								SplitCount = 1;
+								Tab0 = {
+									Frame = "{{0, 0}, {100, 50}}";
+								};
+								Tab1 = {
+									Frame = "{{0, 0}, {100, 50}}";
+								};
+								TabCount = 2;
+								TabsVisible = YES;
+							};
+							Frame = "{{0, 0}, {664, 208}}";
+							LauncherConfigVersion = 7;
+						};
+						Tab2 = {
+							Frame = "{{0, 0}, {664, 50}}";
+							LauncherConfigVersion = 3;
+							Runner = {
+								Frame = "{{0, 0}, {664, 50}}";
+							};
+						};
+						Tab3 = {
+							BuildMessageFrame = "{{0, 0}, {614, 262}}";
+							BuildTranscriptFrame = "{{0, 271}, {614, 2}}";
+							BuildTranscriptFrameExpanded = YES;
+							Frame = "{{0, 0}, {612, 295}}";
+						};
+						Tab4 = {
+							Frame = "{{0, 0}, {612, 295}}";
+						};
+						TabCount = 5;
+						TabsVisible = NO;
+					};
+					SplitCount = 1;
+					Tab0 = {
+						Frame = "{{0, 0}, {313, 531}}";
+						GroupTreeTableConfiguration = (
+							TargetStatusColumn,
+							18,
+							MainColumn,
+							280,
+						);
+					};
+					Tab1 = {
+						ClassesFrame = "{{0, 0}, {280, 398}}";
+						ClassesTreeTableConfiguration = (
+							PBXBookColumnIdentifier,
+							20,
+							PBXClassColumnIdentifier,
+							237,
+						);
+						Frame = "{{0, 0}, {278, 659}}";
+						MembersFrame = "{{0, 407}, {280, 252}}";
+						MembersTreeTableConfiguration = (
+							PBXBookColumnIdentifier,
+							20,
+							PBXMethodColumnIdentifier,
+							236,
+						);
+					};
+					Tab2 = {
+						Frame = "{{0, 0}, {200, 100}}";
+					};
+					Tab3 = {
+						Frame = "{{0, 0}, {200, 557}}";
+						TargetTableConfiguration = (
+							ActiveObject,
+							16,
+							ObjectNames,
+							202.296,
+						);
+					};
+					Tab4 = {
+						BreakpointsTreeTableConfiguration = (
+							breakpointColumn,
+							197,
+							enabledColumn,
+							31,
+						);
+						Frame = "{{0, 0}, {250, 100}}";
+					};
+					TabCount = 5;
+					TabsVisible = NO;
+				};
+				NavBarShownByDefault = YES;
+				StatusViewVisible = NO;
+				Template = F5CA7ECB015C094F0DCA290F;
+				ToolbarVisible = NO;
+				WindowLocation = "{357, 379}";
+			};
+			PBXWorkspaceContents = (
+				{
+					LeftSlideOut = {
+						Split0 = {
+							Split0 = {
+								NavCount = 1;
+								NavGeometry0 = {
+									Frame = "{{0, 0}, {150, 530}}";
+									NavBarVisible = YES;
+								};
+								NavSplitVertical = NO;
+							};
+							SplitCount = 1;
+							Tab1 = {
+								Debugger = {
+									Split0 = {
+										SplitCount = 2;
+									};
+									SplitCount = 1;
+									TabCount = 2;
+								};
+								LauncherConfigVersion = 7;
+							};
+							Tab2 = {
+								LauncherConfigVersion = 3;
+								Runner = {
+								};
+							};
+							TabCount = 5;
+						};
+						SplitCount = 1;
+						Tab1 = {
+							OptionsSetName = "Hierarchy, all classes";
+						};
+						TabCount = 5;
+					};
+				},
+				{
+					LeftSlideOut = {
+						Split0 = {
+							Split0 = {
+								NavContent0 = {
+									bookmark = E18829600478B3C300AEEDB1;
+									history = (
+										E188295F0478B3C300AEEDB1,
+									);
+								};
+								NavCount = 1;
+								NavGeometry0 = {
+									Frame = "{{0, 0}, {668, 621}}";
+									NavBarVisible = YES;
+								};
+								NavSplitVertical = NO;
+							};
+							SplitCount = 1;
+							Tab1 = {
+								Debugger = {
+									Split0 = {
+										SplitCount = 2;
+									};
+									SplitCount = 1;
+									TabCount = 2;
+								};
+								LauncherConfigVersion = 7;
+							};
+							Tab2 = {
+								LauncherConfigVersion = 3;
+								Runner = {
+								};
+							};
+							TabCount = 5;
+						};
+						SplitCount = 1;
+						Tab1 = {
+							OptionsSetName = "Hierarchy, all classes";
+						};
+						TabCount = 5;
+					};
+				},
+			);
+			PBXWorkspaceGeometries = (
+				{
+					ContentSize = "{326, 763}";
+					LeftSlideOut = {
+						ActiveTab = 0;
+						ActiveTabName = PBXGroupTreeModule;
+						Collapsed = YES;
+						Frame = "{{0, 23}, {326, 740}}";
+						Split0 = {
+							Collapsed = NO;
+							Frame = "{{1e+06, 1e+06}, {0, 740}}";
+							Split0 = {
+								Frame = "{{0, 0}, {0, 740}}";
+							};
+							SplitCount = 1;
+							Tab0 = {
+								Frame = "{{0, 0}, {484, 208}}";
+							};
+							Tab1 = {
+								Debugger = {
+									Collapsed = NO;
+									Frame = "{{0, 0}, {664, 208}}";
+									Split0 = {
+										Frame = "{{0, 24}, {664, 184}}";
+										Split0 = {
+											Frame = "{{0, 0}, {325, 184}}";
+										};
+										Split1 = {
+											DebugVariablesTableConfiguration = (
+												Name,
+												123,
+												Value,
+												85,
+												Summary,
+												96.123,
+											);
+											Frame = "{{334, 0}, {330, 184}}";
+										};
+										SplitCount = 2;
+									};
+									SplitCount = 1;
+									Tab0 = {
+										Frame = "{{0, 0}, {100, 50}}";
+									};
+									Tab1 = {
+										Frame = "{{0, 0}, {100, 50}}";
+									};
+									TabCount = 2;
+									TabsVisible = YES;
+								};
+								Frame = "{{0, 0}, {664, 208}}";
+								LauncherConfigVersion = 7;
+							};
+							Tab2 = {
+								Frame = "{{0, 0}, {664, 50}}";
+								LauncherConfigVersion = 3;
+								Runner = {
+									Frame = "{{0, 0}, {664, 50}}";
+								};
+							};
+							Tab3 = {
+								BuildMessageFrame = "{{0, 0}, {614, 262}}";
+								BuildTranscriptFrame = "{{0, 271}, {614, 2}}";
+								BuildTranscriptFrameExpanded = YES;
+								Frame = "{{0, 0}, {612, 295}}";
+							};
+							Tab4 = {
+								Frame = "{{0, 0}, {612, 295}}";
+							};
+							TabCount = 5;
+							TabsVisible = NO;
+						};
+						SplitCount = 1;
+						Tab0 = {
+							Frame = "{{0, 0}, {302, 740}}";
+							GroupTreeTableConfiguration = (
+								TargetStatusColumn,
+								18,
+								MainColumn,
+								269,
+							);
+						};
+						Tab1 = {
+							ClassesFrame = "{{0, 0}, {343, 348}}";
+							ClassesTreeTableConfiguration = (
+								PBXBookColumnIdentifier,
+								20,
+								PBXClassColumnIdentifier,
+								300,
+							);
+							Frame = "{{0, 0}, {341, 578}}";
+							MembersFrame = "{{0, 357}, {343, 221}}";
+							MembersTreeTableConfiguration = (
+								PBXBookColumnIdentifier,
+								20,
+								PBXMethodColumnIdentifier,
+								299,
+							);
+						};
+						Tab2 = {
+							Frame = "{{0, 0}, {319, 576}}";
+						};
+						Tab3 = {
+							Frame = "{{0, 0}, {341, 578}}";
+							TargetTableConfiguration = (
+								ActiveObject,
+								16,
+								ObjectNames,
+								308.296,
+							);
+						};
+						Tab4 = {
+							BreakpointsTreeTableConfiguration = (
+								breakpointColumn,
+								266,
+								enabledColumn,
+								31,
+							);
+							Frame = "{{0, 0}, {319, 576}}";
+						};
+						TabCount = 5;
+						TabsVisible = YES;
+					};
+					NavBarShownByDefault = YES;
+					StatusViewVisible = YES;
+					Template = F5E465990156DFB90DCA290F;
+					ToolbarVisible = YES;
+					WindowLocation = "{421, 275}";
+				},
+				{
+					ContentSize = "{668, 621}";
+					LeftSlideOut = {
+						Collapsed = NO;
+						Frame = "{{0, 0}, {668, 621}}";
+						Split0 = {
+							Collapsed = NO;
+							Frame = "{{0, 0}, {668, 621}}";
+							Split0 = {
+								Frame = "{{0, 0}, {668, 621}}";
+							};
+							SplitCount = 1;
+							Tab0 = {
+								Frame = "{{0, 0}, {484, 208}}";
+							};
+							Tab1 = {
+								Debugger = {
+									Collapsed = NO;
+									Frame = "{{0, 0}, {664, 208}}";
+									Split0 = {
+										Frame = "{{0, 24}, {664, 184}}";
+										Split0 = {
+											Frame = "{{0, 0}, {325, 184}}";
+										};
+										Split1 = {
+											DebugVariablesTableConfiguration = (
+												Name,
+												123,
+												Value,
+												85,
+												Summary,
+												96.123,
+											);
+											Frame = "{{334, 0}, {330, 184}}";
+										};
+										SplitCount = 2;
+									};
+									SplitCount = 1;
+									Tab0 = {
+										Frame = "{{0, 0}, {100, 50}}";
+									};
+									Tab1 = {
+										Frame = "{{0, 0}, {100, 50}}";
+									};
+									TabCount = 2;
+									TabsVisible = YES;
+								};
+								Frame = "{{0, 0}, {664, 208}}";
+								LauncherConfigVersion = 7;
+							};
+							Tab2 = {
+								Frame = "{{0, 0}, {664, 50}}";
+								LauncherConfigVersion = 3;
+								Runner = {
+									Frame = "{{0, 0}, {664, 50}}";
+								};
+							};
+							Tab3 = {
+								BuildMessageFrame = "{{0, 0}, {614, 262}}";
+								BuildTranscriptFrame = "{{0, 271}, {614, 2}}";
+								BuildTranscriptFrameExpanded = YES;
+								Frame = "{{0, 0}, {612, 295}}";
+							};
+							Tab4 = {
+								Frame = "{{0, 0}, {612, 295}}";
+							};
+							TabCount = 5;
+							TabsVisible = NO;
+						};
+						SplitCount = 1;
+						Tab0 = {
+							Frame = "{{0, 0}, {313, 531}}";
+							GroupTreeTableConfiguration = (
+								TargetStatusColumn,
+								18,
+								MainColumn,
+								280,
+							);
+						};
+						Tab1 = {
+							ClassesFrame = "{{0, 0}, {280, 398}}";
+							ClassesTreeTableConfiguration = (
+								PBXBookColumnIdentifier,
+								20,
+								PBXClassColumnIdentifier,
+								237,
+							);
+							Frame = "{{0, 0}, {278, 659}}";
+							MembersFrame = "{{0, 407}, {280, 252}}";
+							MembersTreeTableConfiguration = (
+								PBXBookColumnIdentifier,
+								20,
+								PBXMethodColumnIdentifier,
+								236,
+							);
+						};
+						Tab2 = {
+							Frame = "{{0, 0}, {200, 100}}";
+						};
+						Tab3 = {
+							Frame = "{{0, 0}, {200, 557}}";
+							TargetTableConfiguration = (
+								ActiveObject,
+								16,
+								ObjectNames,
+								202.296,
+							);
+						};
+						Tab4 = {
+							BreakpointsTreeTableConfiguration = (
+								breakpointColumn,
+								197,
+								enabledColumn,
+								31,
+							);
+							Frame = "{{0, 0}, {250, 100}}";
+						};
+						TabCount = 5;
+						TabsVisible = NO;
+					};
+					NavBarShownByDefault = YES;
+					StatusViewVisible = NO;
+					Template = F5CA7ECB015C094F0DCA290F;
+					ToolbarVisible = NO;
+					WindowLocation = "{357, 379}";
+				},
+			);
+			PBXWorkspaceStateSaveDate = 217486546;
+		};
+		sourceControlManager = E1B11EDC0CF5F2EB004975AA /* Source Control */;
+		userBookmarkGroup = E130B91603B69C6300000028 /* PBXBookmarkGroup */;
+		userBuildSettings = {
+		};
+	};
+	E10F2A3F0402E71400050002 /* NJRReadMeController.m */ = {
+		uiCtxt = {
+			sepNavIntBoundsRect = "{{0, 0}, {830, 3828}}";
+			sepNavSelRange = "{1651, 0}";
+			sepNavVisRange = "{1047, 1289}";
+			sepNavWindowFrame = "{{268, 244}, {889, 698}}";
+		};
+	};
+	E11373150439FCC700050002 /* NJRHotKey.m */ = {
+		uiCtxt = {
+			sepNavIntBoundsRect = "{{0, 0}, {830, 1287}}";
+			sepNavSelRange = "{1856, 46}";
+			sepNavVisRange = "{1263, 1577}";
+			sepNavWindowFrame = "{{199, 307}, {889, 698}}";
+		};
+	};
+	E11373180439FE6A00050002 /* PBXTextBookmark */ = {
+		isa = PBXTextBookmark;
+		fRef = E11373150439FCC700050002 /* NJRHotKey.m */;
+		name = "NJRHotKey.m: 27";
+		rLen = 0;
+		rLoc = 1801;
+		rType = 0;
+		vrLen = 1001;
+		vrLoc = 30;
+	};
+	E120D65F0418AE0E00050002 /* PSAlarm.m:46 */ = {
+		isa = PBXFileBreakpoint;
+		actions = (
+		);
+		breakpointStyle = 0;
+		continueAfterActions = 0;
+		countType = 0;
+		delayBeforeContinue = 0;
+		fileReference = F59F6CB50354E7DA01AEEDB1 /* PSAlarm.m */;
+		hitCount = 0;
+		ignoreCount = 0;
+		lineNumber = 46;
+		modificationTime = 217479629.252993;
+		state = 2;
+	};
+	E120D6610418B08700050002 /* PSAlarm.m:46 */ = {
+		isa = PBXFileBreakpoint;
+		actions = (
+		);
+		breakpointStyle = 0;
+		continueAfterActions = 0;
+		countType = 0;
+		delayBeforeContinue = 0;
+		fileReference = F59F6CB50354E7DA01AEEDB1 /* PSAlarm.m */;
+		hitCount = 0;
+		ignoreCount = 0;
+		lineNumber = 46;
+		modificationTime = 217479629.253012;
+		state = 2;
+	};
+	E130B91603B69C6300000028 /* PBXBookmarkGroup */ = {
+		isa = PBXBookmarkGroup;
+		children = (
+			E1F99AAA0436379100050002 /* PBXTextBookmark */,
+			E1F99AAB0436379900050002 /* PBXTextBookmark */,
+			E1F99AAD043637C200050002 /* PBXTextBookmark */,
+			E11373180439FE6A00050002 /* PBXTextBookmark */,
+			E18DAB000442DCB300050002 /* PBXTextBookmark */,
+		);
+		name = Root;
+	};
+	E130B9AC03B7C59700000028 /* PSPowerManager.h */ = {
+		uiCtxt = {
+			sepNavIntBoundsRect = "{{0, 0}, {940, 1093}}";
+			sepNavSelRange = "{451, 11}";
+			sepNavVisRange = "{0, 756}";
+		};
+	};
+	E130B9AD03B7C59700000028 /* PSPowerManager.m */ = {
+		uiCtxt = {
+			sepNavIntBoundsRect = "{{0, 0}, {940, 1070}}";
+			sepNavSelRange = "{303, 0}";
+			sepNavVisRange = "{0, 2522}";
+			sepNavWindowFrame = "{{153, 349}, {889, 698}}";
+		};
+	};
+	E13919E303B9E4E100000028 /* NJRIntervalField.m */ = {
+		uiCtxt = {
+			sepNavIntBoundsRect = "{{0, 0}, {761, 1980}}";
+			sepNavSelRange = "{3944, 0}";
+			sepNavVisRange = "{2218, 3841}";
+			sepNavWindowFrame = "{{15, 334}, {820, 839}}";
+		};
+	};
+	E145383F043A1DB200050002 /* NJRHotKeyManager.m */ = {
+		uiCtxt = {
+			sepNavIntBoundsRect = "{{0, 0}, {920, 2937}}";
+			sepNavSelRange = "{4910, 0}";
+			sepNavVisRange = "{4514, 884}";
+			sepNavWindowFrame = "{{176, 328}, {889, 698}}";
+		};
+	};
+	E145384C043A31D900050002 /* NJRHotKeyManager.m:158 */ = {
+		isa = PBXFileBreakpoint;
+		actions = (
+		);
+		breakpointStyle = 0;
+		continueAfterActions = 0;
+		countType = 0;
+		delayBeforeContinue = 0;
+		fileReference = E145383F043A1DB200050002 /* NJRHotKeyManager.m */;
+		hitCount = 0;
+		ignoreCount = 0;
+		lineNumber = 158;
+		location = Pester;
+		modificationTime = 217479629.253024;
+		state = 1;
+	};
+	E162698303B6189000000028 /* NSTableView-NJRExtensions.m */ = {
+		uiCtxt = {
+			sepNavIntBoundsRect = "{{0, 0}, {761, 803}}";
+			sepNavSelRange = "{748, 0}";
+			sepNavVisRange = "{0, 1295}";
+			sepNavWindowFrame = "{{84, 271}, {820, 839}}";
+		};
+	};
+	E16959290437A4A400050002 /* NSFont-NJRExtensions.h */ = {
+		uiCtxt = {
+			sepNavIntBoundsRect = "{{0, 0}, {761, 803}}";
+			sepNavSelRange = "{0, 0}";
+			sepNavVisRange = "{0, 304}";
+			sepNavWindowFrame = "{{717, 228}, {820, 839}}";
+		};
+	};
+	E169592A0437A4A400050002 /* NSFont-NJRExtensions.m */ = {
+		uiCtxt = {
+			sepNavIntBoundsRect = "{{0, 0}, {761, 803}}";
+			sepNavSelRange = "{0, 0}";
+			sepNavVisRange = "{0, 1070}";
+		};
+	};
+	E17F2F4303FDF67700050002 /* NSImage-OAExtensions.m */ = {
+		uiCtxt = {
+			sepNavIntBoundsRect = "{{0, 0}, {817, 2365}}";
+			sepNavSelRange = "{6730, 19}";
+			sepNavVisRange = "{6628, 252}";
+		};
+	};
+	E18DA4090442C56D00050002 /* PSMediaAlert.m */ = {
+		uiCtxt = {
+			sepNavIntBoundsRect = "{{0, 0}, {761, 803}}";
+			sepNavSelRange = "{1287, 99}";
+			sepNavVisRange = "{0, 1723}";
+			sepNavWindowFrame = "{{153, 208}, {820, 839}}";
+		};
+	};
+	E18DAAEB0442CC3E00050002 /* NJRSoundManager.m */ = {
+		uiCtxt = {
+			sepNavIntBoundsRect = "{{0, 0}, {761, 1254}}";
+			sepNavSelRange = "{846, 134}";
+			sepNavVisRange = "{0, 2251}";
+			sepNavWindowFrame = "{{61, 292}, {820, 839}}";
+		};
+	};
+	E18DAB000442DCB300050002 /* PBXTextBookmark */ = {
+		isa = PBXTextBookmark;
+		fRef = F5F240CD036A877301FE7503 /* NJRQTMediaPopUpButton.h */;
+		name = "NJRQTMediaPopUpButton.h: 21";
+		rLen = 0;
+		rLoc = 562;
+		rType = 0;
+		vrLen = 777;
+		vrLoc = 0;
+	};
+	E1A18CAC03B4344C00000028 /* PSAlerts.m */ = {
+		uiCtxt = {
+			sepNavIntBoundsRect = "{{0, 0}, {830, 1595}}";
+			sepNavSelRange = "{3455, 0}";
+			sepNavVisRange = "{1586, 2280}";
+			sepNavWindowFrame = "{{130, 370}, {889, 698}}";
+		};
+	};
+	E1A9DEE703BF3C110089E8B2 /* -[_NSZombie release] */ = {
+		isa = PBXSymbolicBreakpoint;
+		actions = (
+		);
+		breakpointStyle = 0;
+		continueAfterActions = 0;
+		countType = 0;
+		delayBeforeContinue = 0;
+		hitCount = 0;
+		ignoreCount = 0;
+		location = "";
+		modificationTime = 217479631.074307;
+		state = 0;
+		symbolName = "-[_NSZombie release]";
+	};
+	E1B11EDC0CF5F2EB004975AA /* Source Control */ = {
+		isa = PBXSourceControlManager;
+		fallbackIsa = XCSourceControlManager;
+		isSCMEnabled = 0;
+		scmConfiguration = {
+			repositoryName = dev.sabi.net;
+		};
+	};
+	E1B11EDD0CF5F2EB004975AA /* Code sense */ = {
+		isa = PBXCodeSenseManager;
+		indexTemplatePath = "";
+	};
+	E1B11EE30CF5F30F004975AA /* Pester */ = {
+		activeExec = 0;
+		executables = (
+			E1B11F8D0CF5F30F004975AA /* Pester */,
+		);
+	};
+	E1B11F8B0CF5F30F004975AA /* Info-Pester.plist */ = {
+		uiCtxt = {
+			sepNavIntBoundsRect = "{{0, 0}, {940, 1069}}";
+			sepNavSelRange = "{357, 0}";
+			sepNavVisRange = "{0, 976}";
+			sepNavWindowFrame = "{{38, 50}, {999, 1128}}";
+		};
+	};
+	E1B11F8D0CF5F30F004975AA /* Pester */ = {
+		isa = PBXExecutable;
+		activeArgIndices = (
+		);
+		argumentStrings = (
+		);
+		autoAttachOnCrash = 1;
+		breakpointsEnabled = 0;
+		configStateDict = {
+		};
+		customDataFormattersEnabled = 1;
+		debuggerPlugin = GDBDebugging;
+		disassemblyDisplayState = 0;
+		dylibVariantSuffix = "";
+		enableDebugStr = 1;
+		environmentEntries = (
+			{
+				active = NO;
+				name = NSZombieEnabled;
+				value = YES;
+			},
+			{
+				active = YES;
+				name = MallocStackLogging;
+				value = 1;
+			},
+		);
+		executableSystemSymbolLevel = 0;
+		executableUserSymbolLevel = 0;
+		libgmallocEnabled = 0;
+		name = Pester;
+		savedGlobals = {
+		};
+		sourceDirectories = (
+		);
+		variableFormatDictionary = {
+		};
+	};
+	E1B121950CF62FD1004975AA /* NSMenuItem-NJRExtensions.h */ = {
+		uiCtxt = {
+			sepNavIntBoundsRect = "{{0, 0}, {761, 803}}";
+			sepNavSelRange = "{216, 43}";
+			sepNavVisRange = "{0, 265}";
+		};
+	};
+	E1B121960CF62FD1004975AA /* NSMenuItem-NJRExtensions.m */ = {
+		uiCtxt = {
+			sepNavIntBoundsRect = "{{0, 0}, {761, 803}}";
+			sepNavSelRange = "{264, 0}";
+			sepNavVisRange = "{0, 815}";
+			sepNavWindowFrame = "{{144, -29}, {820, 839}}";
+		};
+	};
+	E1BF6E9103C928D200050002 /* PSTimer.m */ = {
+		uiCtxt = {
+			sepNavIntBoundsRect = "{{0, 0}, {940, 2908}}";
+			sepNavSelRange = "{6853, 0}";
+			sepNavVisRange = "{4539, 2679}";
+			sepNavWindowFrame = "{{38, 23}, {999, 1129}}";
+		};
+	};
+	E1DEF116040014EB00050002 /* PSTimeDateEditor.h */ = {
+		uiCtxt = {
+			sepNavIntBoundsRect = "{{0, 0}, {830, 662}}";
+			sepNavSelRange = "{0, 0}";
+			sepNavVisRange = "{0, 366}";
+		};
+	};
+	E1DEF117040014EB00050002 /* PSTimeDateEditor.m */ = {
+		uiCtxt = {
+			sepNavIntBoundsRect = "{{0, 0}, {830, 662}}";
+			sepNavSelRange = "{2041, 0}";
+			sepNavVisRange = "{0, 2083}";
+			sepNavWindowFrame = "{{291, 223}, {889, 698}}";
+		};
+	};
+	E1E9A33903C8EF6700050002 /* SUSpeaker.m */ = {
+		uiCtxt = {
+			sepNavIntBoundsRect = "{{0, 0}, {869, 3223}}";
+			sepNavSelRange = "{1416, 91}";
+			sepNavVisRange = "{1108, 730}";
+			sepNavWindowFrame = "{{314, 202}, {889, 698}}";
+		};
+	};
+	E1F0B14F03ADBE3800AEFBE0 /* NSString-NJRExtensions.m */ = {
+		uiCtxt = {
+			sepNavIntBoundsRect = "{{0, 0}, {940, 2035}}";
+			sepNavSelRange = "{0, 0}";
+			sepNavVisRange = "{0, 3838}";
+			sepNavWindowFrame = "{{15, 44}, {999, 1129}}";
+		};
+	};
+	E1F993C20436280200050002 /* NJRHotKeyField.m */ = {
+		uiCtxt = {
+			sepNavIntBoundsRect = "{{0, 0}, {830, 2057}}";
+			sepNavSelRange = "{1811, 0}";
+			sepNavVisRange = "{1261, 1684}";
+			sepNavWindowFrame = "{{245, 265}, {889, 698}}";
+		};
+	};
+	E1F993C70436310F00050002 /* PSPreferencesController.m */ = {
+		uiCtxt = {
+			sepNavIntBoundsRect = "{{0, 0}, {869, 1749}}";
+			sepNavSelRange = "{4128, 2}";
+			sepNavVisRange = "{3634, 594}";
+			sepNavWindowFrame = "{{222, 286}, {889, 698}}";
+		};
+	};
+	E1F99AAA0436379100050002 /* PBXTextBookmark */ = {
+		isa = PBXTextBookmark;
+		fRef = E1F993C70436310F00050002 /* PSPreferencesController.m */;
+		name = "PSPreferencesController.m: 25";
+		rLen = 0;
+		rLoc = 2265;
+		rType = 0;
+		vrLen = 756;
+		vrLoc = 3;
+	};
+	E1F99AAB0436379900050002 /* PBXTextBookmark */ = {
+		isa = PBXTextBookmark;
+		fRef = E1F993C20436280200050002 /* NJRHotKeyField.m */;
+		name = "NJRHotKeyField.m: 15";
+		rLen = 0;
+		rLoc = 3335;
+		rType = 0;
+		vrLen = 517;
+		vrLoc = 0;
+	};
+	E1F99AAD043637C200050002 /* PBXTextBookmark */ = {
+		isa = PBXTextBookmark;
+		fRef = E1F0B14F03ADBE3800AEFBE0 /* NSString-NJRExtensions.m */;
+		name = "NSString-NJRExtensions.m: keyEquivalentString";
+		rLen = 0;
+		rLoc = 1550;
+		rType = 0;
+		vrLen = 1295;
+		vrLoc = 0;
+	};
+	F500E5370359719B01AEEDB1 /* szone_error */ = {
+		isa = PBXSymbolicBreakpoint;
+		actions = (
+		);
+		breakpointStyle = 0;
+		continueAfterActions = 0;
+		countType = 0;
+		delayBeforeContinue = 0;
+		hitCount = 0;
+		ignoreCount = 0;
+		location = libSystem.B.dylib;
+		modificationTime = 217479629.253318;
+		state = 1;
+		symbolName = szone_error;
+	};
+	F517D63E0356B80C016D68B9 /* PSAlarmsController.m */ = {
+		uiCtxt = {
+			sepNavIntBoundsRect = "{{0, 0}, {830, 2057}}";
+			sepNavSelRange = "{3828, 50}";
+			sepNavVisRange = "{2755, 1818}";
+			sepNavWindowFrame = "{{360, 160}, {889, 698}}";
+		};
+	};
+	F517D6420356B8CC016D68B9 /* PSAlarms.m */ = {
+		uiCtxt = {
+			sepNavIntBoundsRect = "{{0, 0}, {830, 3762}}";
+			sepNavSelRange = "{4513, 1}";
+			sepNavVisRange = "{4469, 1446}";
+		};
+	};
+	F560E2F10357506401A4E466 /* PSApplication.m */ = {
+		uiCtxt = {
+			sepNavIntBoundsRect = "{{0, 0}, {761, 3157}}";
+			sepNavSelRange = "{1549, 0}";
+			sepNavVisRange = "{0, 1956}";
+			sepNavWindowFrame = "{{586, 75}, {820, 839}}";
+		};
+	};
+	F560E3150357895001A4E466 /* NJRHistoryTrackingComboBox.h */ = {
+		uiCtxt = {
+			sepNavIntBoundsRect = "{{0, 0}, {817, 231}}";
+			sepNavSelRange = "{231, 10}";
+			sepNavVisRange = "{190, 55}";
+		};
+	};
+	F560E3160357895001A4E466 /* NJRHistoryTrackingComboBox.m */ = {
+		uiCtxt = {
+			sepNavIntBoundsRect = "{{0, 0}, {761, 840}}";
+			sepNavSelRange = "{203, 0}";
+			sepNavVisRange = "{48, 2262}";
+			sepNavWindowFrame = "{{548, 60}, {820, 839}}";
+		};
+	};
+	F589C9C6035AA12B0155F4B2 /* Read Me.rtfd */ = {
+		uiCtxt = {
+			sepNavIntBoundsRect = "{{0, 0}, {960, 4291}}";
+			sepNavSelRange = "{1901, 0}";
+			sepNavVisRect = "{{0, 644}, {960, 1069}}";
+			sepNavWindowFrame = "{{15, 44}, {999, 1129}}";
+		};
+	};
+	F596730D0355CFA301407038 /* -[_NSZombie methodSignatureForSelector:] */ = {
+		isa = PBXSymbolicBreakpoint;
+		actions = (
+		);
+		breakpointStyle = 0;
+		continueAfterActions = 0;
+		countType = 0;
+		delayBeforeContinue = 0;
+		hitCount = 0;
+		ignoreCount = 0;
+		location = "";
+		modificationTime = 217479631.03672;
+		state = 0;
+		symbolName = "-[_NSZombie methodSignatureForSelector:]";
+	};
+	F59DC6D30353C9E601AEEDB1 /* PSAlarmSetController.h */ = {
+		uiCtxt = {
+			sepNavIntBoundsRect = "{{0, 0}, {940, 1092}}";
+			sepNavSelRange = "{2264, 0}";
+			sepNavVisRange = "{0, 2303}";
+			sepNavWindowFrame = "{{619, 50}, {999, 1128}}";
+		};
+	};
+	F59DC6D40353C9E601AEEDB1 /* PSAlarmSetController.m */ = {
+		uiCtxt = {
+			sepNavIntBoundsRect = "{{0, 0}, {920, 6754}}";
+			sepNavSelRange = "{6415, 0}";
+			sepNavVisRange = "{5716, 1570}";
+			sepNavWindowFrame = "{{619, 50}, {999, 1128}}";
+		};
+	};
+	F59E47A7036AAA6D016B311C /* PSAlert.m */ = {
+		uiCtxt = {
+			sepNavIntBoundsRect = "{{0, 0}, {761, 880}}";
+			sepNavSelRange = "{1151, 46}";
+			sepNavVisRange = "{0, 1813}";
+			sepNavWindowFrame = "{{199, 166}, {820, 839}}";
+		};
+	};
+	F59E47B8036AB217016B311C /* PSDockBounceAlert.m */ = {
+		uiCtxt = {
+			sepNavIntBoundsRect = "{{0, 0}, {761, 780}}";
+			sepNavSelRange = "{871, 0}";
+			sepNavVisRange = "{0, 1152}";
+			sepNavWindowFrame = "{{130, 229}, {820, 839}}";
+		};
+	};
+	F59E4BE6036B2E5E016B311C /* PSScriptAlert.m */ = {
+		uiCtxt = {
+			sepNavIntBoundsRect = "{{0, 0}, {830, 1251}}";
+			sepNavSelRange = "{919, 0}";
+			sepNavVisRange = "{0, 2284}";
+			sepNavWindowFrame = "{{337, 181}, {889, 698}}";
+		};
+	};
+	F59E4C0D036B43D2016B311C /* NSMovie-NJRExtensions.m */ = {
+		uiCtxt = {
+			sepNavIntBoundsRect = "{{0, 0}, {761, 780}}";
+			sepNavSelRange = "{601, 18}";
+			sepNavVisRange = "{0, 1083}";
+			sepNavWindowFrame = "{{590, 339}, {820, 839}}";
+		};
+	};
+	F59F6CB50354E7DA01AEEDB1 /* PSAlarm.m */ = {
+		uiCtxt = {
+			sepNavIntBoundsRect = "{{0, 0}, {830, 6424}}";
+			sepNavSelRange = "{14871, 46}";
+			sepNavVisRange = "{14190, 2337}";
+			sepNavWindowFrame = "{{371, 93}, {889, 698}}";
+		};
+	};
+	F5B15F74037E42EB01AEEDB1 /* -[NSException raise] */ = {
+		isa = PBXSymbolicBreakpoint;
+		actions = (
+		);
+		breakpointStyle = 0;
+		continueAfterActions = 0;
+		countType = 0;
+		delayBeforeContinue = 0;
+		hitCount = 0;
+		ignoreCount = 0;
+		location = CoreFoundation;
+		modificationTime = 217479629.253324;
+		state = 1;
+		symbolName = "-[NSException raise]";
+	};
+	F5F1986C036B813101EB0372 /* PSSpeechAlert.m */ = {
+		uiCtxt = {
+			sepNavIntBoundsRect = "{{0, 0}, {761, 1078}}";
+			sepNavSelRange = "{932, 0}";
+			sepNavVisRange = "{177, 1917}";
+			sepNavWindowFrame = "{{533, 79}, {820, 839}}";
+		};
+	};
+	F5F19870036B822E01EB0372 /* NJRVoicePopUpButton.m */ = {
+		uiCtxt = {
+			sepNavIntBoundsRect = "{{0, 0}, {869, 1496}}";
+			sepNavSelRange = "{514, 81}";
+			sepNavVisRange = "{226, 979}";
+			sepNavWindowFrame = "{{61, 433}, {889, 698}}";
+		};
+	};
+	F5F240B5036A862101FE7503 /* NJRFSObjectSelector.m */ = {
+		uiCtxt = {
+			sepNavIntBoundsRect = "{{0, 0}, {869, 3575}}";
+			sepNavSelRange = "{2553, 75}";
+			sepNavVisRange = "{2223, 704}";
+			sepNavWindowFrame = "{{996, 92}, {820, 839}}";
+		};
+	};
+	F5F240B6036A862101FE7503 /* NJRFSObjectSelector.h */ = {
+		uiCtxt = {
+			sepNavIntBoundsRect = "{{0, 0}, {761, 780}}";
+			sepNavSelRange = "{0, 0}";
+			sepNavVisRange = "{0, 653}";
+		};
+	};
+	F5F240CC036A877301FE7503 /* NJRQTMediaPopUpButton.m */ = {
+		uiCtxt = {
+			sepNavIntBoundsRect = "{{0, 0}, {817, 6850}}";
+			sepNavSelRange = "{11434, 4}";
+			sepNavVisRange = "{11288, 266}";
+			sepNavWindowFrame = "{{14, 32}, {999, 1129}}";
+		};
+	};
+	F5F240CD036A877301FE7503 /* NJRQTMediaPopUpButton.h */ = {
+		uiCtxt = {
+			sepNavIntBoundsRect = "{{0, 0}, {940, 1069}}";
+			sepNavSelRange = "{461, 0}";
+			sepNavVisRange = "{0, 827}";
+			sepNavWindowFrame = "{{14, 50}, {999, 1128}}";
+		};
+	};
+	F5F2418A036A910B01FE7503 /* SoundFileManager.h */ = {
+		uiCtxt = {
+			sepNavIntBoundsRect = "{{0, 0}, {830, 639}}";
+			sepNavSelRange = "{146, 103}";
+			sepNavVisRange = "{0, 1367}";
+		};
+	};
+}
Index: trunk/Cocoa/Pester/Source/Pester.xcodeproj/project.pbxproj
===================================================================
--- trunk/Cocoa/Pester/Source/Pester.xcodeproj/project.pbxproj	(revision 355)
+++ trunk/Cocoa/Pester/Source/Pester.xcodeproj/project.pbxproj	(revision 355)
@@ -0,0 +1,971 @@
+// !$*UTF8*$!
+{
+	archiveVersion = 1;
+	classes = {
+	};
+	objectVersion = 42;
+	objects = {
+
+/* Begin PBXBuildFile section */
+		E1B11F270CF5F30F004975AA /* Notifier.nib in Resources */ = {isa = PBXBuildFile; fileRef = F59DC6DF0353DF5E01AEEDB1 /* Notifier.nib */; };
+		E1B11F280CF5F30F004975AA /* Application icon.icns in Resources */ = {isa = PBXBuildFile; fileRef = F59DC6E30353ED1201AEEDB1 /* Application icon.icns */; };
+		E1B11F290CF5F30F004975AA /* Alarms.nib in Resources */ = {isa = PBXBuildFile; fileRef = F560E2EE03574F8A01A4E466 /* Alarms.nib */; };
+		E1B11F2A0CF5F30F004975AA /* MainMenu.nib in Resources */ = {isa = PBXBuildFile; fileRef = 29B97318FDCFA39411CA2CEA /* MainMenu.nib */; };
+		E1B11F2B0CF5F30F004975AA /* InfoPlist.strings in Resources */ = {isa = PBXBuildFile; fileRef = 089C165CFE840E0CC02AAC07 /* InfoPlist.strings */; };
+		E1B11F2C0CF5F30F004975AA /* Credits.html in Resources */ = {isa = PBXBuildFile; fileRef = F59DD44F0358ABF4017318D0 /* Credits.html */; };
+		E1B11F2D0CF5F30F004975AA /* Read Me.rtfd in Resources */ = {isa = PBXBuildFile; fileRef = F589C9C6035AA12B0155F4B2 /* Read Me.rtfd */; };
+		E1B11F2E0CF5F30F004975AA /* Movie alert.nib in Resources */ = {isa = PBXBuildFile; fileRef = F59E4BDE036B1D94016B311C /* Movie alert.nib */; };
+		E1B11F2F0CF5F30F004975AA /* Popup triangle.tiff in Resources */ = {isa = PBXBuildFile; fileRef = F5243DA40378681101AEEDB1 /* Popup triangle.tiff */; };
+		E1B11F300CF5F30F004975AA /* Calendar.nib in Resources */ = {isa = PBXBuildFile; fileRef = E17F2F4D03FDFB3100050002 /* Calendar.nib */; };
+		E1B11F310CF5F30F004975AA /* Calendar.tiff in Resources */ = {isa = PBXBuildFile; fileRef = E17F2F6B03FDFE2C00050002 /* Calendar.tiff */; };
+		E1B11F320CF5F30F004975AA /* OARightArrowPressed.tiff in Resources */ = {isa = PBXBuildFile; fileRef = E1DEF0EA03FE1BF100050002 /* OARightArrowPressed.tiff */; };
+		E1B11F330CF5F30F004975AA /* OALeftArrow.tiff in Resources */ = {isa = PBXBuildFile; fileRef = E1DEF0EB03FE1BF100050002 /* OALeftArrow.tiff */; };
+		E1B11F340CF5F30F004975AA /* OARightArrow.tiff in Resources */ = {isa = PBXBuildFile; fileRef = E1DEF0EC03FE1BF100050002 /* OARightArrow.tiff */; };
+		E1B11F350CF5F30F004975AA /* OALeftArrowPressed.tiff in Resources */ = {isa = PBXBuildFile; fileRef = E1DEF0ED03FE1BF100050002 /* OALeftArrowPressed.tiff */; };
+		E1B11F360CF5F30F004975AA /* Snooze until.nib in Resources */ = {isa = PBXBuildFile; fileRef = E1DEF10603FF83AC00050002 /* Snooze until.nib */; };
+		E1B11F370CF5F30F004975AA /* Read Me.nib in Resources */ = {isa = PBXBuildFile; fileRef = E10F2A3B0402E61C00050002 /* Read Me.nib */; };
+		E1B11F380CF5F30F004975AA /* Localizable.strings in Resources */ = {isa = PBXBuildFile; fileRef = E10E71F3040C335800050002 /* Localizable.strings */; };
+		E1B11F390CF5F30F004975AA /* Preferences.nib in Resources */ = {isa = PBXBuildFile; fileRef = E11CB6E0043025F500050002 /* Preferences.nib */; };
+		E1B11F3A0CF5F30F004975AA /* Volume 2.png in Resources */ = {isa = PBXBuildFile; fileRef = E127900104429F9300050002 /* Volume 2.png */; };
+		E1B11F3B0CF5F30F004975AA /* Volume 0.png in Resources */ = {isa = PBXBuildFile; fileRef = E127900204429F9300050002 /* Volume 0.png */; };
+		E1B11F3C0CF5F30F004975AA /* Volume 3.png in Resources */ = {isa = PBXBuildFile; fileRef = E127900304429F9300050002 /* Volume 3.png */; };
+		E1B11F3D0CF5F30F004975AA /* Volume 1.png in Resources */ = {isa = PBXBuildFile; fileRef = E127900404429F9300050002 /* Volume 1.png */; };
+		E1B11F3E0CF5F30F004975AA /* Volume.nib in Resources */ = {isa = PBXBuildFile; fileRef = E12790090442A5B100050002 /* Volume.nib */; };
+		E1B11F400CF5F30F004975AA /* BDAlias.m in Sources */ = {isa = PBXBuildFile; fileRef = F5F240CA036A869401FE7503 /* BDAlias.m */; };
+		E1B11F410CF5F30F004975AA /* NJRDateFormatter.m in Sources */ = {isa = PBXBuildFile; fileRef = F59DC6FD0354188F01AEEDB1 /* NJRDateFormatter.m */; };
+		E1B11F420CF5F30F004975AA /* NJRFSObjectSelector.m in Sources */ = {isa = PBXBuildFile; fileRef = F5F240B5036A862101FE7503 /* NJRFSObjectSelector.m */; };
+		E1B11F430CF5F30F004975AA /* NJRHistoryTrackingComboBox.m in Sources */ = {isa = PBXBuildFile; fileRef = F560E3160357895001A4E466 /* NJRHistoryTrackingComboBox.m */; };
+		E1B11F440CF5F30F004975AA /* NJRIntegerFilter.m in Sources */ = {isa = PBXBuildFile; fileRef = F59DC6E80353F58B01AEEDB1 /* NJRIntegerFilter.m */; };
+		E1B11F450CF5F30F004975AA /* NJRQTMediaPopUpButton.m in Sources */ = {isa = PBXBuildFile; fileRef = F5F240CC036A877301FE7503 /* NJRQTMediaPopUpButton.m */; };
+		E1B11F460CF5F30F004975AA /* NJRScrollView.m in Sources */ = {isa = PBXBuildFile; fileRef = F552A8AC0358E8B201AEEDB1 /* NJRScrollView.m */; };
+		E1B11F470CF5F30F004975AA /* NJRTableDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = F5F198D0036BE57401EB0372 /* NJRTableDelegate.m */; };
+		E1B11F480CF5F30F004975AA /* NJRTableView.m in Sources */ = {isa = PBXBuildFile; fileRef = F5B79836035F64F80136A8DD /* NJRTableView.m */; };
+		E1B11F490CF5F30F004975AA /* NJRUnfocusableMovieView.m in Sources */ = {isa = PBXBuildFile; fileRef = E1F0B14B03AD8CEF00AEFBE0 /* NJRUnfocusableMovieView.m */; };
+		E1B11F4A0CF5F30F004975AA /* NJRVoicePopUpButton.m in Sources */ = {isa = PBXBuildFile; fileRef = F5F19870036B822E01EB0372 /* NJRVoicePopUpButton.m */; };
+		E1B11F4B0CF5F30F004975AA /* NSAttributedString-NJRExtensions.m in Sources */ = {isa = PBXBuildFile; fileRef = E1F0B26903AEDE8600AEFBE0 /* NSAttributedString-NJRExtensions.m */; };
+		E1B11F4C0CF5F30F004975AA /* NSCalendarDate-NJRExtensions.m in Sources */ = {isa = PBXBuildFile; fileRef = E162698A03B6190B00000028 /* NSCalendarDate-NJRExtensions.m */; };
+		E1B11F4D0CF5F30F004975AA /* NSCharacterSet-NJRExtensions.m in Sources */ = {isa = PBXBuildFile; fileRef = F5B79865038865B30136A8DD /* NSCharacterSet-NJRExtensions.m */; };
+		E1B11F4E0CF5F30F004975AA /* NSDictionary-NJRExtensions.m in Sources */ = {isa = PBXBuildFile; fileRef = F5EE8DB9038A76AC0134BEAC /* NSDictionary-NJRExtensions.m */; };
+		E1B11F500CF5F30F004975AA /* NSMovie-NJRExtensions.m in Sources */ = {isa = PBXBuildFile; fileRef = F59E4C0D036B43D2016B311C /* NSMovie-NJRExtensions.m */; };
+		E1B11F510CF5F30F004975AA /* NSString-NJRExtensions.m in Sources */ = {isa = PBXBuildFile; fileRef = E1F0B14F03ADBE3800AEFBE0 /* NSString-NJRExtensions.m */; };
+		E1B11F520CF5F30F004975AA /* NSTableView-NJRExtensions.m in Sources */ = {isa = PBXBuildFile; fileRef = E162698303B6189000000028 /* NSTableView-NJRExtensions.m */; };
+		E1B11F530CF5F30F004975AA /* PSAlarm.m in Sources */ = {isa = PBXBuildFile; fileRef = F59F6CB50354E7DA01AEEDB1 /* PSAlarm.m */; };
+		E1B11F540CF5F30F004975AA /* PSAlarmAlertController.m in Sources */ = {isa = PBXBuildFile; fileRef = F59E47B4036AAD55016B311C /* PSAlarmAlertController.m */; };
+		E1B11F550CF5F30F004975AA /* PSAlarmNotifierController.m in Sources */ = {isa = PBXBuildFile; fileRef = F59DC6DC0353DE5101AEEDB1 /* PSAlarmNotifierController.m */; };
+		E1B11F560CF5F30F004975AA /* PSAlarmSetController.m in Sources */ = {isa = PBXBuildFile; fileRef = F59DC6D40353C9E601AEEDB1 /* PSAlarmSetController.m */; };
+		E1B11F570CF5F30F004975AA /* PSAlarms.m in Sources */ = {isa = PBXBuildFile; fileRef = F517D6420356B8CC016D68B9 /* PSAlarms.m */; };
+		E1B11F580CF5F30F004975AA /* PSAlarmsController.m in Sources */ = {isa = PBXBuildFile; fileRef = F517D63E0356B80C016D68B9 /* PSAlarmsController.m */; };
+		E1B11F590CF5F30F004975AA /* PSAlert.m in Sources */ = {isa = PBXBuildFile; fileRef = F59E47A7036AAA6D016B311C /* PSAlert.m */; };
+		E1B11F5A0CF5F30F004975AA /* PSAlerts.m in Sources */ = {isa = PBXBuildFile; fileRef = E1A18CAC03B4344C00000028 /* PSAlerts.m */; };
+		E1B11F5B0CF5F30F004975AA /* PSApplication.m in Sources */ = {isa = PBXBuildFile; fileRef = F560E2F10357506401A4E466 /* PSApplication.m */; };
+		E1B11F5C0CF5F30F004975AA /* PSBeepAlert.m in Sources */ = {isa = PBXBuildFile; fileRef = F59E47AB036AAC1E016B311C /* PSBeepAlert.m */; };
+		E1B11F5D0CF5F30F004975AA /* PSDockBounceAlert.m in Sources */ = {isa = PBXBuildFile; fileRef = F59E47B8036AB217016B311C /* PSDockBounceAlert.m */; };
+		E1B11F5E0CF5F30F004975AA /* PSMovieAlert.m in Sources */ = {isa = PBXBuildFile; fileRef = F59E47BC036AB228016B311C /* PSMovieAlert.m */; };
+		E1B11F5F0CF5F30F004975AA /* PSMovieAlertController.m in Sources */ = {isa = PBXBuildFile; fileRef = F59E47C0036B1ADD016B311C /* PSMovieAlertController.m */; };
+		E1B11F600CF5F30F004975AA /* PSNotifierAlert.m in Sources */ = {isa = PBXBuildFile; fileRef = F59E47B0036AACD1016B311C /* PSNotifierAlert.m */; };
+		E1B11F610CF5F30F004975AA /* PSPowerManager.m in Sources */ = {isa = PBXBuildFile; fileRef = E130B9AD03B7C59700000028 /* PSPowerManager.m */; };
+		E1B11F620CF5F30F004975AA /* PSScriptAlert.m in Sources */ = {isa = PBXBuildFile; fileRef = F59E4BE6036B2E5E016B311C /* PSScriptAlert.m */; };
+		E1B11F630CF5F30F004975AA /* PSSpeechAlert.m in Sources */ = {isa = PBXBuildFile; fileRef = F5F1986C036B813101EB0372 /* PSSpeechAlert.m */; };
+		E1B11F640CF5F30F004975AA /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = 29B97316FDCFA39411CA2CEA /* main.m */; settings = {ATTRIBUTES = (); }; };
+		E1B11F650CF5F30F004975AA /* NJRIntervalField.m in Sources */ = {isa = PBXBuildFile; fileRef = E13919E303B9E4E100000028 /* NJRIntervalField.m */; };
+		E1B11F660CF5F30F004975AA /* PSError.m in Sources */ = {isa = PBXBuildFile; fileRef = E1ECA00703C002B300F54C66 /* PSError.m */; };
+		E1B11F670CF5F30F004975AA /* NJRCenteringMovieView.m in Sources */ = {isa = PBXBuildFile; fileRef = E1D358BA03C60CE900C8A18E /* NJRCenteringMovieView.m */; };
+		E1B11F680CF5F30F004975AA /* SUSpeaker.m in Sources */ = {isa = PBXBuildFile; fileRef = E1E9A33903C8EF6700050002 /* SUSpeaker.m */; };
+		E1B11F690CF5F30F004975AA /* PSTimer.m in Sources */ = {isa = PBXBuildFile; fileRef = E1BF6E9103C928D200050002 /* PSTimer.m */; };
+		E1B11F6A0CF5F30F004975AA /* PSWakeAlert.m in Sources */ = {isa = PBXBuildFile; fileRef = E19FD39F03C98645001509F3 /* PSWakeAlert.m */; };
+		E1B11F6B0CF5F30F004975AA /* PSCalendarController.m in Sources */ = {isa = PBXBuildFile; fileRef = E17F2F3303FDF2F000050002 /* PSCalendarController.m */; };
+		E1B11F6C0CF5F30F004975AA /* OACalendarView.m in Sources */ = {isa = PBXBuildFile; fileRef = E17F2F4103FDF67700050002 /* OACalendarView.m */; };
+		E1B11F6D0CF5F30F004975AA /* NSImage-OAExtensions.m in Sources */ = {isa = PBXBuildFile; fileRef = E17F2F4303FDF67700050002 /* NSImage-OAExtensions.m */; };
+		E1B11F6E0CF5F30F004975AA /* NSCalendarDate-OFExtensions.m in Sources */ = {isa = PBXBuildFile; fileRef = E17F2F4503FDF67800050002 /* NSCalendarDate-OFExtensions.m */; };
+		E1B11F6F0CF5F30F004975AA /* NJROffCenterPanel.m in Sources */ = {isa = PBXBuildFile; fileRef = E1DEF0FA03FE9F2C00050002 /* NJROffCenterPanel.m */; };
+		E1B11F700CF5F30F004975AA /* PSSnoozeUntilController.m in Sources */ = {isa = PBXBuildFile; fileRef = E1DEF10303FF816300050002 /* PSSnoozeUntilController.m */; };
+		E1B11F710CF5F30F004975AA /* PSTimeDateEditor.m in Sources */ = {isa = PBXBuildFile; fileRef = E1DEF117040014EB00050002 /* PSTimeDateEditor.m */; };
+		E1B11F720CF5F30F004975AA /* NJRReadMeController.m in Sources */ = {isa = PBXBuildFile; fileRef = E10F2A3F0402E71400050002 /* NJRReadMeController.m */; };
+		E1B11F730CF5F30F004975AA /* NJRSplitView.m in Sources */ = {isa = PBXBuildFile; fileRef = E1B46FE904057E3400050002 /* NJRSplitView.m */; };
+		E1B11F740CF5F30F004975AA /* NJRHotKeyField.m in Sources */ = {isa = PBXBuildFile; fileRef = E1F993C20436280200050002 /* NJRHotKeyField.m */; };
+		E1B11F750CF5F30F004975AA /* PSPreferencesController.m in Sources */ = {isa = PBXBuildFile; fileRef = E1F993C70436310F00050002 /* PSPreferencesController.m */; };
+		E1B11F760CF5F30F004975AA /* NSFont-NJRExtensions.m in Sources */ = {isa = PBXBuildFile; fileRef = E169592A0437A4A400050002 /* NSFont-NJRExtensions.m */; };
+		E1B11F770CF5F30F004975AA /* NJRHotKeyFieldCell.m in Sources */ = {isa = PBXBuildFile; fileRef = E14DEC830438969400050002 /* NJRHotKeyFieldCell.m */; };
+		E1B11F780CF5F30F004975AA /* NJRHotKey.m in Sources */ = {isa = PBXBuildFile; fileRef = E11373150439FCC700050002 /* NJRHotKey.m */; };
+		E1B11F790CF5F30F004975AA /* NJRHotKeyManager.m in Sources */ = {isa = PBXBuildFile; fileRef = E145383F043A1DB200050002 /* NJRHotKeyManager.m */; };
+		E1B11F7A0CF5F30F004975AA /* PSVolumeController.m in Sources */ = {isa = PBXBuildFile; fileRef = E127900D0442A92900050002 /* PSVolumeController.m */; };
+		E1B11F7B0CF5F30F004975AA /* PSMediaAlert.m in Sources */ = {isa = PBXBuildFile; fileRef = E18DA4090442C56D00050002 /* PSMediaAlert.m */; };
+		E1B11F7C0CF5F30F004975AA /* NJRSoundManager.m in Sources */ = {isa = PBXBuildFile; fileRef = E18DAAEB0442CC3E00050002 /* NJRSoundManager.m */; };
+		E1B11F7D0CF5F30F004975AA /* NJRNonCenteringWindow.m in Sources */ = {isa = PBXBuildFile; fileRef = E1CDEC3E0444053F00AEEDB1 /* NJRNonCenteringWindow.m */; };
+		E1B11F7F0CF5F30F004975AA /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1058C7A1FEA54F0111CA2CBB /* Cocoa.framework */; };
+		E1B11F800CF5F30F004975AA /* Carbon.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = F5F240D0036A87E301FE7503 /* Carbon.framework */; };
+		E1B11F820CF5F30F004975AA /* QuickTime.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = F59E4BEA036B33EC016B311C /* QuickTime.framework */; };
+		E1B11F830CF5F30F004975AA /* IOKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = E14DB31203B8038300000028 /* IOKit.framework */; };
+		E1B11F840CF5F30F004975AA /* CoreAudio.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = E18DAAEE0442D02500050002 /* CoreAudio.framework */; };
+		E1B121970CF62FD1004975AA /* NSMenuItem-NJRExtensions.m in Sources */ = {isa = PBXBuildFile; fileRef = E1B121960CF62FD1004975AA /* NSMenuItem-NJRExtensions.m */; };
+		E1B1219E0CF63858004975AA /* NSImage-NJRExtensions.m in Sources */ = {isa = PBXBuildFile; fileRef = E1B1219C0CF63858004975AA /* NSImage-NJRExtensions.m */; };
+		E1B121B40CF639A1004975AA /* QTKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = E1B121B30CF639A1004975AA /* QTKit.framework */; };
+/* End PBXBuildFile section */
+
+/* Begin PBXFileReference section */
+		089C165DFE840E0CC02AAC07 /* English */ = {isa = PBXFileReference; fileEncoding = 10; lastKnownFileType = text.plist.strings; name = English; path = 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>"; };
+		29B97316FDCFA39411CA2CEA /* main.m */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.objc; path = main.m; sourceTree = "<group>"; };
+		29B97319FDCFA39411CA2CEA /* English */ = {isa = PBXFileReference; lastKnownFileType = wrapper.nib; name = English; path = English.lproj/MainMenu.nib; sourceTree = "<group>"; };
+		29B97324FDCFA39411CA2CEA /* AppKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AppKit.framework; path = /System/Library/Frameworks/AppKit.framework; sourceTree = "<absolute>"; };
+		29B97325FDCFA39411CA2CEA /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = /System/Library/Frameworks/Foundation.framework; sourceTree = "<absolute>"; };
+		E10E71F4040C335800050002 /* English */ = {isa = PBXFileReference; fileEncoding = 10; lastKnownFileType = text.plist.strings; name = English; path = English.lproj/Localizable.strings; sourceTree = "<group>"; };
+		E10F2A3C0402E61C00050002 /* English */ = {isa = PBXFileReference; lastKnownFileType = wrapper.nib; name = English; path = "English.lproj/Read Me.nib"; sourceTree = "<group>"; };
+		E10F2A3E0402E71400050002 /* NJRReadMeController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = NJRReadMeController.h; sourceTree = "<group>"; };
+		E10F2A3F0402E71400050002 /* NJRReadMeController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = NJRReadMeController.m; sourceTree = "<group>"; };
+		E11373140439FCC700050002 /* NJRHotKey.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = NJRHotKey.h; sourceTree = "<group>"; };
+		E11373150439FCC700050002 /* NJRHotKey.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = NJRHotKey.m; sourceTree = "<group>"; };
+		E11CB6E1043025F500050002 /* English */ = {isa = PBXFileReference; lastKnownFileType = wrapper.nib; name = English; path = English.lproj/Preferences.nib; sourceTree = "<group>"; };
+		E127900104429F9300050002 /* Volume 2.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "Volume 2.png"; sourceTree = "<group>"; };
+		E127900204429F9300050002 /* Volume 0.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "Volume 0.png"; sourceTree = "<group>"; };
+		E127900304429F9300050002 /* Volume 3.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "Volume 3.png"; sourceTree = "<group>"; };
+		E127900404429F9300050002 /* Volume 1.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "Volume 1.png"; sourceTree = "<group>"; };
+		E127900A0442A5B100050002 /* Volume.nib */ = {isa = PBXFileReference; lastKnownFileType = wrapper.nib; name = Volume.nib; path = English.lproj/Volume.nib; sourceTree = "<group>"; };
+		E127900C0442A92900050002 /* PSVolumeController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PSVolumeController.h; sourceTree = "<group>"; };
+		E127900D0442A92900050002 /* PSVolumeController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = PSVolumeController.m; sourceTree = "<group>"; };
+		E130B9AC03B7C59700000028 /* PSPowerManager.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PSPowerManager.h; sourceTree = "<group>"; };
+		E130B9AD03B7C59700000028 /* PSPowerManager.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = PSPowerManager.m; sourceTree = "<group>"; };
+		E13919E203B9E4E100000028 /* NJRIntervalField.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = NJRIntervalField.h; sourceTree = "<group>"; };
+		E13919E303B9E4E100000028 /* NJRIntervalField.m */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.objc; path = NJRIntervalField.m; sourceTree = "<group>"; };
+		E145383E043A1DB200050002 /* NJRHotKeyManager.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = NJRHotKeyManager.h; sourceTree = "<group>"; };
+		E145383F043A1DB200050002 /* NJRHotKeyManager.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = NJRHotKeyManager.m; sourceTree = "<group>"; };
+		E14DB31203B8038300000028 /* IOKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = IOKit.framework; path = /System/Library/Frameworks/IOKit.framework; sourceTree = "<absolute>"; };
+		E14DEC820438969400050002 /* NJRHotKeyFieldCell.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = NJRHotKeyFieldCell.h; sourceTree = "<group>"; };
+		E14DEC830438969400050002 /* NJRHotKeyFieldCell.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = NJRHotKeyFieldCell.m; sourceTree = "<group>"; };
+		E162698303B6189000000028 /* NSTableView-NJRExtensions.m */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.objc; path = "NSTableView-NJRExtensions.m"; sourceTree = "<group>"; };
+		E162698403B6189000000028 /* NSTableView-NJRExtensions.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = "NSTableView-NJRExtensions.h"; sourceTree = "<group>"; };
+		E162698903B6190B00000028 /* NSCalendarDate-NJRExtensions.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "NSCalendarDate-NJRExtensions.h"; sourceTree = "<group>"; };
+		E162698A03B6190B00000028 /* NSCalendarDate-NJRExtensions.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "NSCalendarDate-NJRExtensions.m"; sourceTree = "<group>"; };
+		E16959290437A4A400050002 /* NSFont-NJRExtensions.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "NSFont-NJRExtensions.h"; sourceTree = "<group>"; };
+		E169592A0437A4A400050002 /* NSFont-NJRExtensions.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "NSFont-NJRExtensions.m"; sourceTree = "<group>"; };
+		E17F2F3203FDF2F000050002 /* PSCalendarController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PSCalendarController.h; sourceTree = "<group>"; };
+		E17F2F3303FDF2F000050002 /* PSCalendarController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = PSCalendarController.m; sourceTree = "<group>"; };
+		E17F2F4003FDF67700050002 /* NSCalendarDate-OFExtensions.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = "NSCalendarDate-OFExtensions.h"; sourceTree = "<group>"; };
+		E17F2F4103FDF67700050002 /* OACalendarView.m */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.objc; path = OACalendarView.m; sourceTree = "<group>"; };
+		E17F2F4203FDF67700050002 /* OACalendarView.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = OACalendarView.h; sourceTree = "<group>"; };
+		E17F2F4303FDF67700050002 /* NSImage-OAExtensions.m */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.objc; path = "NSImage-OAExtensions.m"; sourceTree = "<group>"; };
+		E17F2F4403FDF67800050002 /* NSImage-OAExtensions.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = "NSImage-OAExtensions.h"; sourceTree = "<group>"; };
+		E17F2F4503FDF67800050002 /* NSCalendarDate-OFExtensions.m */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.objc; path = "NSCalendarDate-OFExtensions.m"; sourceTree = "<group>"; };
+		E17F2F4E03FDFB3100050002 /* English */ = {isa = PBXFileReference; lastKnownFileType = wrapper.nib; name = English; path = English.lproj/Calendar.nib; sourceTree = "<group>"; };
+		E17F2F6B03FDFE2C00050002 /* Calendar.tiff */ = {isa = PBXFileReference; lastKnownFileType = image.tiff; path = Calendar.tiff; sourceTree = "<group>"; };
+		E18DA4080442C56D00050002 /* PSMediaAlert.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PSMediaAlert.h; sourceTree = "<group>"; };
+		E18DA4090442C56D00050002 /* PSMediaAlert.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = PSMediaAlert.m; sourceTree = "<group>"; };
+		E18DAAEA0442CC3E00050002 /* NJRSoundManager.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = NJRSoundManager.h; sourceTree = "<group>"; };
+		E18DAAEB0442CC3E00050002 /* NJRSoundManager.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = NJRSoundManager.m; sourceTree = "<group>"; };
+		E18DAAEE0442D02500050002 /* CoreAudio.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreAudio.framework; path = /System/Library/Frameworks/CoreAudio.framework; sourceTree = "<absolute>"; };
+		E191700B03AD24A600AEFBE0 /* NSDisclosureButtonCell.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = NSDisclosureButtonCell.h; sourceTree = "<group>"; };
+		E19DCBD203BE4AA200B934BF /* Pester_Prefix.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = Pester_Prefix.h; sourceTree = "<group>"; };
+		E19FD39E03C98645001509F3 /* PSWakeAlert.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PSWakeAlert.h; sourceTree = "<group>"; };
+		E19FD39F03C98645001509F3 /* PSWakeAlert.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = PSWakeAlert.m; sourceTree = "<group>"; };
+		E1A18CAB03B4344C00000028 /* PSAlerts.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PSAlerts.h; sourceTree = "<group>"; };
+		E1A18CAC03B4344C00000028 /* PSAlerts.m */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.objc; path = PSAlerts.m; sourceTree = "<group>"; };
+		E1A18CB203B439CF00000028 /* PSPropertyListSerialization.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PSPropertyListSerialization.h; sourceTree = SOURCE_ROOT; };
+		E1B11F8B0CF5F30F004975AA /* Info-Pester.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = "Info-Pester.plist"; sourceTree = "<group>"; };
+		E1B11F8C0CF5F30F004975AA /* Pester.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = Pester.app; sourceTree = BUILT_PRODUCTS_DIR; };
+		E1B121950CF62FD1004975AA /* NSMenuItem-NJRExtensions.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "NSMenuItem-NJRExtensions.h"; sourceTree = "<group>"; };
+		E1B121960CF62FD1004975AA /* NSMenuItem-NJRExtensions.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "NSMenuItem-NJRExtensions.m"; sourceTree = "<group>"; };
+		E1B1219C0CF63858004975AA /* NSImage-NJRExtensions.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "NSImage-NJRExtensions.m"; sourceTree = "<group>"; };
+		E1B1219D0CF63858004975AA /* NSImage-NJRExtensions.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "NSImage-NJRExtensions.h"; sourceTree = "<group>"; };
+		E1B121B30CF639A1004975AA /* QTKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = QTKit.framework; path = /System/Library/Frameworks/QTKit.framework; sourceTree = "<absolute>"; };
+		E1B46FE804057E3400050002 /* NJRSplitView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = NJRSplitView.h; sourceTree = "<group>"; };
+		E1B46FE904057E3400050002 /* NJRSplitView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = NJRSplitView.m; sourceTree = "<group>"; };
+		E1BF6E9003C928D200050002 /* PSTimer.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PSTimer.h; sourceTree = "<group>"; };
+		E1BF6E9103C928D200050002 /* PSTimer.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = PSTimer.m; sourceTree = "<group>"; };
+		E1CDEC3D0444053F00AEEDB1 /* NJRNonCenteringWindow.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = NJRNonCenteringWindow.h; sourceTree = "<group>"; };
+		E1CDEC3E0444053F00AEEDB1 /* NJRNonCenteringWindow.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = NJRNonCenteringWindow.m; sourceTree = "<group>"; };
+		E1D358B903C60CE900C8A18E /* NJRCenteringMovieView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = NJRCenteringMovieView.h; sourceTree = "<group>"; };
+		E1D358BA03C60CE900C8A18E /* NJRCenteringMovieView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = NJRCenteringMovieView.m; sourceTree = "<group>"; };
+		E1DEF0EA03FE1BF100050002 /* OARightArrowPressed.tiff */ = {isa = PBXFileReference; lastKnownFileType = image.tiff; path = OARightArrowPressed.tiff; sourceTree = "<group>"; };
+		E1DEF0EB03FE1BF100050002 /* OALeftArrow.tiff */ = {isa = PBXFileReference; lastKnownFileType = image.tiff; path = OALeftArrow.tiff; sourceTree = "<group>"; };
+		E1DEF0EC03FE1BF100050002 /* OARightArrow.tiff */ = {isa = PBXFileReference; lastKnownFileType = image.tiff; path = OARightArrow.tiff; sourceTree = "<group>"; };
+		E1DEF0ED03FE1BF100050002 /* OALeftArrowPressed.tiff */ = {isa = PBXFileReference; lastKnownFileType = image.tiff; path = OALeftArrowPressed.tiff; sourceTree = "<group>"; };
+		E1DEF0F903FE9F2C00050002 /* NJROffCenterPanel.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = NJROffCenterPanel.h; sourceTree = "<group>"; };
+		E1DEF0FA03FE9F2C00050002 /* NJROffCenterPanel.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = NJROffCenterPanel.m; sourceTree = "<group>"; };
+		E1DEF10203FF816300050002 /* PSSnoozeUntilController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PSSnoozeUntilController.h; sourceTree = "<group>"; };
+		E1DEF10303FF816300050002 /* PSSnoozeUntilController.m */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.objc; path = PSSnoozeUntilController.m; sourceTree = "<group>"; };
+		E1DEF10703FF83AC00050002 /* English */ = {isa = PBXFileReference; lastKnownFileType = wrapper.nib; name = English; path = "English.lproj/Snooze until.nib"; sourceTree = "<group>"; };
+		E1DEF116040014EB00050002 /* PSTimeDateEditor.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PSTimeDateEditor.h; sourceTree = "<group>"; };
+		E1DEF117040014EB00050002 /* PSTimeDateEditor.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = PSTimeDateEditor.m; sourceTree = "<group>"; };
+		E1E9A33903C8EF6700050002 /* SUSpeaker.m */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.objc; path = SUSpeaker.m; sourceTree = "<group>"; };
+		E1E9A33A03C8EF6700050002 /* SUSpeaker.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = SUSpeaker.h; sourceTree = "<group>"; };
+		E1ECA00603C002B300F54C66 /* PSError.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PSError.h; sourceTree = SOURCE_ROOT; };
+		E1ECA00703C002B300F54C66 /* PSError.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = PSError.m; sourceTree = SOURCE_ROOT; };
+		E1F0B14A03AD8CEF00AEFBE0 /* NJRUnfocusableMovieView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = NJRUnfocusableMovieView.h; sourceTree = "<group>"; };
+		E1F0B14B03AD8CEF00AEFBE0 /* NJRUnfocusableMovieView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = NJRUnfocusableMovieView.m; sourceTree = "<group>"; };
+		E1F0B14E03ADBE3800AEFBE0 /* NSString-NJRExtensions.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "NSString-NJRExtensions.h"; sourceTree = "<group>"; };
+		E1F0B14F03ADBE3800AEFBE0 /* NSString-NJRExtensions.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "NSString-NJRExtensions.m"; sourceTree = "<group>"; };
+		E1F0B26803AEDE8600AEFBE0 /* NSAttributedString-NJRExtensions.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "NSAttributedString-NJRExtensions.h"; sourceTree = "<group>"; };
+		E1F0B26903AEDE8600AEFBE0 /* NSAttributedString-NJRExtensions.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "NSAttributedString-NJRExtensions.m"; sourceTree = "<group>"; };
+		E1F993C10436280200050002 /* NJRHotKeyField.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = NJRHotKeyField.h; sourceTree = "<group>"; };
+		E1F993C20436280200050002 /* NJRHotKeyField.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = NJRHotKeyField.m; sourceTree = "<group>"; };
+		E1F993C60436310F00050002 /* PSPreferencesController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PSPreferencesController.h; sourceTree = "<group>"; };
+		E1F993C70436310F00050002 /* PSPreferencesController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = PSPreferencesController.m; sourceTree = "<group>"; };
+		F517D63E0356B80C016D68B9 /* PSAlarmsController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = PSAlarmsController.m; sourceTree = "<group>"; };
+		F517D63F0356B80C016D68B9 /* PSAlarmsController.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = PSAlarmsController.h; sourceTree = "<group>"; };
+		F517D6420356B8CC016D68B9 /* PSAlarms.m */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.objc; path = PSAlarms.m; sourceTree = "<group>"; };
+		F517D6430356B8CC016D68B9 /* PSAlarms.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = PSAlarms.h; sourceTree = "<group>"; };
+		F5243DA40378681101AEEDB1 /* Popup triangle.tiff */ = {isa = PBXFileReference; lastKnownFileType = image.tiff; path = "Popup triangle.tiff"; sourceTree = "<group>"; };
+		F552A8AB0358E8B201AEEDB1 /* NJRScrollView.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = NJRScrollView.h; sourceTree = "<group>"; };
+		F552A8AC0358E8B201AEEDB1 /* NJRScrollView.m */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.objc; path = NJRScrollView.m; sourceTree = "<group>"; };
+		F560E2EF03574F8A01A4E466 /* English */ = {isa = PBXFileReference; lastKnownFileType = wrapper.nib; name = English; path = English.lproj/Alarms.nib; sourceTree = "<group>"; };
+		F560E2F10357506401A4E466 /* PSApplication.m */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.objc; path = PSApplication.m; sourceTree = "<group>"; };
+		F560E2F20357506401A4E466 /* PSApplication.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = PSApplication.h; sourceTree = "<group>"; };
+		F560E3150357895001A4E466 /* NJRHistoryTrackingComboBox.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = NJRHistoryTrackingComboBox.h; sourceTree = "<group>"; };
+		F560E3160357895001A4E466 /* NJRHistoryTrackingComboBox.m */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.objc; path = NJRHistoryTrackingComboBox.m; sourceTree = "<group>"; };
+		F562F809037E5D0101AEEDB1 /* VERSION */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text; path = VERSION; sourceTree = "<group>"; };
+		F589C9C6035AA12B0155F4B2 /* Read Me.rtfd */ = {isa = PBXFileReference; lastKnownFileType = wrapper.rtfd; path = "Read Me.rtfd"; sourceTree = "<group>"; };
+		F59DC6D30353C9E601AEEDB1 /* PSAlarmSetController.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = PSAlarmSetController.h; sourceTree = "<group>"; };
+		F59DC6D40353C9E601AEEDB1 /* PSAlarmSetController.m */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.objc; path = PSAlarmSetController.m; sourceTree = "<group>"; };
+		F59DC6DB0353DE5101AEEDB1 /* PSAlarmNotifierController.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = PSAlarmNotifierController.h; sourceTree = "<group>"; };
+		F59DC6DC0353DE5101AEEDB1 /* PSAlarmNotifierController.m */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.objc; path = PSAlarmNotifierController.m; sourceTree = "<group>"; };
+		F59DC6E00353DF5E01AEEDB1 /* English */ = {isa = PBXFileReference; lastKnownFileType = wrapper.nib; name = English; path = English.lproj/Notifier.nib; sourceTree = "<group>"; };
+		F59DC6E30353ED1201AEEDB1 /* Application icon.icns */ = {isa = PBXFileReference; lastKnownFileType = image.icns; path = "Application icon.icns"; sourceTree = "<group>"; };
+		F59DC6E80353F58B01AEEDB1 /* NJRIntegerFilter.m */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.objc; path = NJRIntegerFilter.m; sourceTree = "<group>"; };
+		F59DC6E90353F58B01AEEDB1 /* NJRIntegerFilter.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = NJRIntegerFilter.h; sourceTree = "<group>"; };
+		F59DC6FC0354188F01AEEDB1 /* NJRDateFormatter.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = NJRDateFormatter.h; sourceTree = "<group>"; };
+		F59DC6FD0354188F01AEEDB1 /* NJRDateFormatter.m */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.objc; path = NJRDateFormatter.m; sourceTree = "<group>"; };
+		F59DD4500358ABF4017318D0 /* English */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text.html; name = English; path = English.lproj/Credits.html; sourceTree = "<group>"; };
+		F59E47A7036AAA6D016B311C /* PSAlert.m */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.objc; path = PSAlert.m; sourceTree = "<group>"; };
+		F59E47A8036AAA6D016B311C /* PSAlert.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = PSAlert.h; sourceTree = "<group>"; };
+		F59E47AB036AAC1E016B311C /* PSBeepAlert.m */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.objc; path = PSBeepAlert.m; sourceTree = "<group>"; };
+		F59E47AC036AAC1E016B311C /* PSBeepAlert.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = PSBeepAlert.h; sourceTree = "<group>"; };
+		F59E47B0036AACD1016B311C /* PSNotifierAlert.m */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.objc; path = PSNotifierAlert.m; sourceTree = "<group>"; };
+		F59E47B1036AACD1016B311C /* PSNotifierAlert.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = PSNotifierAlert.h; sourceTree = "<group>"; };
+		F59E47B4036AAD55016B311C /* PSAlarmAlertController.m */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.objc; path = PSAlarmAlertController.m; sourceTree = "<group>"; };
+		F59E47B5036AAD55016B311C /* PSAlarmAlertController.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = PSAlarmAlertController.h; sourceTree = "<group>"; };
+		F59E47B8036AB217016B311C /* PSDockBounceAlert.m */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.objc; path = PSDockBounceAlert.m; sourceTree = "<group>"; };
+		F59E47B9036AB217016B311C /* PSDockBounceAlert.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = PSDockBounceAlert.h; sourceTree = "<group>"; };
+		F59E47BC036AB228016B311C /* PSMovieAlert.m */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.objc; path = PSMovieAlert.m; sourceTree = "<group>"; };
+		F59E47BD036AB228016B311C /* PSMovieAlert.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = PSMovieAlert.h; sourceTree = "<group>"; };
+		F59E47C0036B1ADD016B311C /* PSMovieAlertController.m */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.objc; path = PSMovieAlertController.m; sourceTree = "<group>"; };
+		F59E47C1036B1ADD016B311C /* PSMovieAlertController.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = PSMovieAlertController.h; sourceTree = "<group>"; };
+		F59E4BDF036B1D94016B311C /* English */ = {isa = PBXFileReference; lastKnownFileType = wrapper.nib; name = English; path = "English.lproj/Movie alert.nib"; sourceTree = "<group>"; };
+		F59E4BE6036B2E5E016B311C /* PSScriptAlert.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = PSScriptAlert.m; sourceTree = "<group>"; };
+		F59E4BE7036B2E5E016B311C /* PSScriptAlert.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = PSScriptAlert.h; sourceTree = "<group>"; };
+		F59E4BEA036B33EC016B311C /* QuickTime.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = QuickTime.framework; path = /System/Library/Frameworks/QuickTime.framework; sourceTree = "<absolute>"; };
+		F59E4C0D036B43D2016B311C /* NSMovie-NJRExtensions.m */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.objc; path = "NSMovie-NJRExtensions.m"; sourceTree = "<group>"; };
+		F59E4C0E036B43D2016B311C /* NSMovie-NJRExtensions.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = "NSMovie-NJRExtensions.h"; sourceTree = "<group>"; };
+		F59F6CB40354E7DA01AEEDB1 /* PSAlarm.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = PSAlarm.h; sourceTree = "<group>"; };
+		F59F6CB50354E7DA01AEEDB1 /* PSAlarm.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = PSAlarm.m; sourceTree = "<group>"; };
+		F5B79836035F64F80136A8DD /* NJRTableView.m */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.objc; path = NJRTableView.m; sourceTree = "<group>"; };
+		F5B79837035F64F80136A8DD /* NJRTableView.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = NJRTableView.h; sourceTree = "<group>"; };
+		F5B79865038865B30136A8DD /* NSCharacterSet-NJRExtensions.m */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.objc; path = "NSCharacterSet-NJRExtensions.m"; sourceTree = "<group>"; };
+		F5B79866038865B30136A8DD /* NSCharacterSet-NJRExtensions.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = "NSCharacterSet-NJRExtensions.h"; sourceTree = "<group>"; };
+		F5EE8DB9038A76AC0134BEAC /* NSDictionary-NJRExtensions.m */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.objc; path = "NSDictionary-NJRExtensions.m"; sourceTree = "<group>"; };
+		F5EE8DBA038A76AC0134BEAC /* NSDictionary-NJRExtensions.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = "NSDictionary-NJRExtensions.h"; sourceTree = "<group>"; };
+		F5F1986C036B813101EB0372 /* PSSpeechAlert.m */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.objc; path = PSSpeechAlert.m; sourceTree = "<group>"; };
+		F5F1986D036B813101EB0372 /* PSSpeechAlert.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = PSSpeechAlert.h; sourceTree = "<group>"; };
+		F5F19870036B822E01EB0372 /* NJRVoicePopUpButton.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = NJRVoicePopUpButton.m; sourceTree = "<group>"; };
+		F5F19871036B822E01EB0372 /* NJRVoicePopUpButton.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = NJRVoicePopUpButton.h; sourceTree = "<group>"; };
+		F5F198D0036BE57401EB0372 /* NJRTableDelegate.m */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.objc; path = NJRTableDelegate.m; sourceTree = "<group>"; };
+		F5F198D1036BE57401EB0372 /* NJRTableDelegate.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = NJRTableDelegate.h; sourceTree = "<group>"; };
+		F5F240B5036A862101FE7503 /* NJRFSObjectSelector.m */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.objc; path = NJRFSObjectSelector.m; sourceTree = "<group>"; };
+		F5F240B6036A862101FE7503 /* NJRFSObjectSelector.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = NJRFSObjectSelector.h; sourceTree = "<group>"; };
+		F5F240B9036A867901FE7503 /* BDAlias.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = BDAlias.h; sourceTree = "<group>"; };
+		F5F240CA036A869401FE7503 /* BDAlias.m */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.objc; path = BDAlias.m; sourceTree = "<group>"; };
+		F5F240CC036A877301FE7503 /* NJRQTMediaPopUpButton.m */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.objc; path = NJRQTMediaPopUpButton.m; sourceTree = "<group>"; };
+		F5F240CD036A877301FE7503 /* NJRQTMediaPopUpButton.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = NJRQTMediaPopUpButton.h; sourceTree = "<group>"; };
+		F5F240D0036A87E301FE7503 /* Carbon.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Carbon.framework; path = /System/Library/Frameworks/Carbon.framework; sourceTree = "<absolute>"; };
+		F5F2418A036A910B01FE7503 /* SoundFileManager.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = SoundFileManager.h; sourceTree = "<group>"; };
+/* End PBXFileReference section */
+
+/* Begin PBXFrameworksBuildPhase section */
+		E1B11F7E0CF5F30F004975AA /* Frameworks */ = {
+			isa = PBXFrameworksBuildPhase;
+			buildActionMask = 2147483647;
+			files = (
+				E1B11F7F0CF5F30F004975AA /* Cocoa.framework in Frameworks */,
+				E1B11F800CF5F30F004975AA /* Carbon.framework in Frameworks */,
+				E1B11F820CF5F30F004975AA /* QuickTime.framework in Frameworks */,
+				E1B11F830CF5F30F004975AA /* IOKit.framework in Frameworks */,
+				E1B11F840CF5F30F004975AA /* CoreAudio.framework in Frameworks */,
+				E1B121B40CF639A1004975AA /* QTKit.framework in Frameworks */,
+			);
+			runOnlyForDeploymentPostprocessing = 0;
+		};
+/* End PBXFrameworksBuildPhase section */
+
+/* Begin PBXGroup section */
+		080E96DDFE201D6D7F000001 /* Classes */ = {
+			isa = PBXGroup;
+			children = (
+				F560E2F20357506401A4E466 /* PSApplication.h */,
+				F560E2F10357506401A4E466 /* PSApplication.m */,
+				F560E311035787D501A4E466 /* Controllers */,
+				F560E314035787F901A4E466 /* Views */,
+				F59E47AF036AAC31016B311C /* Alerts */,
+				F560E312035787E001A4E466 /* Alarms */,
+				F560E313035787ED01A4E466 /* Utilities */,
+				E162698703B6189D00000028 /* Categories */,
+			);
+			name = Classes;
+			sourceTree = "<group>";
+		};
+		1058C7A0FEA54F0111CA2CBB /* Linked Frameworks */ = {
+			isa = PBXGroup;
+			children = (
+				1058C7A1FEA54F0111CA2CBB /* Cocoa.framework */,
+				F5F240D0036A87E301FE7503 /* Carbon.framework */,
+				E18DAAEE0442D02500050002 /* CoreAudio.framework */,
+				E1B121B30CF639A1004975AA /* QTKit.framework */,
+				F59E4BEA036B33EC016B311C /* QuickTime.framework */,
+				E14DB31203B8038300000028 /* IOKit.framework */,
+			);
+			name = "Linked Frameworks";
+			sourceTree = "<group>";
+		};
+		1058C7A2FEA54F0111CA2CBB /* Other Frameworks */ = {
+			isa = PBXGroup;
+			children = (
+				29B97325FDCFA39411CA2CEA /* Foundation.framework */,
+				29B97324FDCFA39411CA2CEA /* AppKit.framework */,
+			);
+			name = "Other Frameworks";
+			sourceTree = "<group>";
+		};
+		19C28FACFE9D520D11CA2CBB /* Products */ = {
+			isa = PBXGroup;
+			children = (
+				F562F809037E5D0101AEEDB1 /* VERSION */,
+				E1B11F8C0CF5F30F004975AA /* Pester.app */,
+			);
+			name = Products;
+			sourceTree = "<group>";
+		};
+		29B97314FDCFA39411CA2CEA /* Pester */ = {
+			isa = PBXGroup;
+			children = (
+				080E96DDFE201D6D7F000001 /* Classes */,
+				29B97315FDCFA39411CA2CEA /* Other Sources */,
+				E19DCBE503BE516000B934BF /* Documentation */,
+				29B97317FDCFA39411CA2CEA /* Resources */,
+				29B97323FDCFA39411CA2CEA /* Frameworks */,
+				19C28FACFE9D520D11CA2CBB /* Products */,
+				E1B11F8B0CF5F30F004975AA /* Info-Pester.plist */,
+			);
+			name = Pester;
+			sourceTree = "<group>";
+		};
+		29B97315FDCFA39411CA2CEA /* Other Sources */ = {
+			isa = PBXGroup;
+			children = (
+				E19DCBD203BE4AA200B934BF /* Pester_Prefix.h */,
+				29B97316FDCFA39411CA2CEA /* main.m */,
+			);
+			name = "Other Sources";
+			sourceTree = "<group>";
+		};
+		29B97317FDCFA39411CA2CEA /* Resources */ = {
+			isa = PBXGroup;
+			children = (
+				F5243DA40378681101AEEDB1 /* Popup triangle.tiff */,
+				E18830410442B5FC00050002 /* Calendar icons */,
+				E18830420442B60000050002 /* Volume icons */,
+				29B97318FDCFA39411CA2CEA /* MainMenu.nib */,
+				F560E2EE03574F8A01A4E466 /* Alarms.nib */,
+				F59DC6DF0353DF5E01AEEDB1 /* Notifier.nib */,
+				F59E4BDE036B1D94016B311C /* Movie alert.nib */,
+				E12790090442A5B100050002 /* Volume.nib */,
+				E17F2F4D03FDFB3100050002 /* Calendar.nib */,
+				E1DEF10603FF83AC00050002 /* Snooze until.nib */,
+				E10F2A3B0402E61C00050002 /* Read Me.nib */,
+				E11CB6E0043025F500050002 /* Preferences.nib */,
+				089C165CFE840E0CC02AAC07 /* InfoPlist.strings */,
+				E10E71F3040C335800050002 /* Localizable.strings */,
+				F59DD44F0358ABF4017318D0 /* Credits.html */,
+				F59DC6E30353ED1201AEEDB1 /* Application icon.icns */,
+			);
+			name = Resources;
+			sourceTree = "<group>";
+		};
+		29B97323FDCFA39411CA2CEA /* Frameworks */ = {
+			isa = PBXGroup;
+			children = (
+				1058C7A0FEA54F0111CA2CBB /* Linked Frameworks */,
+				1058C7A2FEA54F0111CA2CBB /* Other Frameworks */,
+				E162698803B618BD00000028 /* Private Headers */,
+			);
+			name = Frameworks;
+			sourceTree = "<group>";
+		};
+		E162698703B6189D00000028 /* Categories */ = {
+			isa = PBXGroup;
+			children = (
+				E1F0B26803AEDE8600AEFBE0 /* NSAttributedString-NJRExtensions.h */,
+				E1F0B26903AEDE8600AEFBE0 /* NSAttributedString-NJRExtensions.m */,
+				E162698903B6190B00000028 /* NSCalendarDate-NJRExtensions.h */,
+				E162698A03B6190B00000028 /* NSCalendarDate-NJRExtensions.m */,
+				F5B79866038865B30136A8DD /* NSCharacterSet-NJRExtensions.h */,
+				F5B79865038865B30136A8DD /* NSCharacterSet-NJRExtensions.m */,
+				F5EE8DBA038A76AC0134BEAC /* NSDictionary-NJRExtensions.h */,
+				F5EE8DB9038A76AC0134BEAC /* NSDictionary-NJRExtensions.m */,
+				E16959290437A4A400050002 /* NSFont-NJRExtensions.h */,
+				E169592A0437A4A400050002 /* NSFont-NJRExtensions.m */,
+				E1B1219C0CF63858004975AA /* NSImage-NJRExtensions.m */,
+				E1B1219D0CF63858004975AA /* NSImage-NJRExtensions.h */,
+				F59E4C0E036B43D2016B311C /* NSMovie-NJRExtensions.h */,
+				F59E4C0D036B43D2016B311C /* NSMovie-NJRExtensions.m */,
+				E1F0B14E03ADBE3800AEFBE0 /* NSString-NJRExtensions.h */,
+				E1F0B14F03ADBE3800AEFBE0 /* NSString-NJRExtensions.m */,
+				E162698303B6189000000028 /* NSTableView-NJRExtensions.m */,
+				E162698403B6189000000028 /* NSTableView-NJRExtensions.h */,
+				E1B121950CF62FD1004975AA /* NSMenuItem-NJRExtensions.h */,
+				E1B121960CF62FD1004975AA /* NSMenuItem-NJRExtensions.m */,
+			);
+			name = Categories;
+			sourceTree = "<group>";
+		};
+		E162698803B618BD00000028 /* Private Headers */ = {
+			isa = PBXGroup;
+			children = (
+				F5F2418A036A910B01FE7503 /* SoundFileManager.h */,
+				E191700B03AD24A600AEFBE0 /* NSDisclosureButtonCell.h */,
+			);
+			name = "Private Headers";
+			sourceTree = "<group>";
+		};
+		E17F2F4C03FDF67D00050002 /* OACalendarView */ = {
+			isa = PBXGroup;
+			children = (
+				E17F2F4003FDF67700050002 /* NSCalendarDate-OFExtensions.h */,
+				E17F2F4503FDF67800050002 /* NSCalendarDate-OFExtensions.m */,
+				E17F2F4203FDF67700050002 /* OACalendarView.h */,
+				E17F2F4103FDF67700050002 /* OACalendarView.m */,
+				E17F2F4403FDF67800050002 /* NSImage-OAExtensions.h */,
+				E17F2F4303FDF67700050002 /* NSImage-OAExtensions.m */,
+				E1DEF0F903FE9F2C00050002 /* NJROffCenterPanel.h */,
+				E1DEF0FA03FE9F2C00050002 /* NJROffCenterPanel.m */,
+			);
+			name = OACalendarView;
+			sourceTree = "<group>";
+		};
+		E18830410442B5FC00050002 /* Calendar icons */ = {
+			isa = PBXGroup;
+			children = (
+				E17F2F6B03FDFE2C00050002 /* Calendar.tiff */,
+				E1DEF0EA03FE1BF100050002 /* OARightArrowPressed.tiff */,
+				E1DEF0EB03FE1BF100050002 /* OALeftArrow.tiff */,
+				E1DEF0EC03FE1BF100050002 /* OARightArrow.tiff */,
+				E1DEF0ED03FE1BF100050002 /* OALeftArrowPressed.tiff */,
+			);
+			name = "Calendar icons";
+			sourceTree = "<group>";
+		};
+		E18830420442B60000050002 /* Volume icons */ = {
+			isa = PBXGroup;
+			children = (
+				E127900204429F9300050002 /* Volume 0.png */,
+				E127900404429F9300050002 /* Volume 1.png */,
+				E127900104429F9300050002 /* Volume 2.png */,
+				E127900304429F9300050002 /* Volume 3.png */,
+			);
+			name = "Volume icons";
+			sourceTree = "<group>";
+		};
+		E19DCBE503BE516000B934BF /* Documentation */ = {
+			isa = PBXGroup;
+			children = (
+				F589C9C6035AA12B0155F4B2 /* Read Me.rtfd */,
+			);
+			name = Documentation;
+			sourceTree = "<group>";
+		};
+		E1E9A33D03C8EF6800050002 /* SpeechUtilities */ = {
+			isa = PBXGroup;
+			children = (
+				E1E9A33903C8EF6700050002 /* SUSpeaker.m */,
+				E1E9A33A03C8EF6700050002 /* SUSpeaker.h */,
+			);
+			name = SpeechUtilities;
+			sourceTree = "<group>";
+		};
+		F560E311035787D501A4E466 /* Controllers */ = {
+			isa = PBXGroup;
+			children = (
+				F517D63F0356B80C016D68B9 /* PSAlarmsController.h */,
+				F517D63E0356B80C016D68B9 /* PSAlarmsController.m */,
+				F59DC6D30353C9E601AEEDB1 /* PSAlarmSetController.h */,
+				F59DC6D40353C9E601AEEDB1 /* PSAlarmSetController.m */,
+				F59E47B5036AAD55016B311C /* PSAlarmAlertController.h */,
+				F59E47B4036AAD55016B311C /* PSAlarmAlertController.m */,
+				F59DC6DB0353DE5101AEEDB1 /* PSAlarmNotifierController.h */,
+				F59DC6DC0353DE5101AEEDB1 /* PSAlarmNotifierController.m */,
+				F59E47C1036B1ADD016B311C /* PSMovieAlertController.h */,
+				F59E47C0036B1ADD016B311C /* PSMovieAlertController.m */,
+				E17F2F3203FDF2F000050002 /* PSCalendarController.h */,
+				E17F2F3303FDF2F000050002 /* PSCalendarController.m */,
+				E127900C0442A92900050002 /* PSVolumeController.h */,
+				E127900D0442A92900050002 /* PSVolumeController.m */,
+				E1F993C60436310F00050002 /* PSPreferencesController.h */,
+				E1F993C70436310F00050002 /* PSPreferencesController.m */,
+				E1DEF10203FF816300050002 /* PSSnoozeUntilController.h */,
+				E1DEF10303FF816300050002 /* PSSnoozeUntilController.m */,
+				E10F2A3E0402E71400050002 /* NJRReadMeController.h */,
+				E10F2A3F0402E71400050002 /* NJRReadMeController.m */,
+				F5F198D1036BE57401EB0372 /* NJRTableDelegate.h */,
+				F5F198D0036BE57401EB0372 /* NJRTableDelegate.m */,
+			);
+			name = Controllers;
+			sourceTree = "<group>";
+		};
+		F560E312035787E001A4E466 /* Alarms */ = {
+			isa = PBXGroup;
+			children = (
+				F517D6430356B8CC016D68B9 /* PSAlarms.h */,
+				F517D6420356B8CC016D68B9 /* PSAlarms.m */,
+				F59F6CB40354E7DA01AEEDB1 /* PSAlarm.h */,
+				F59F6CB50354E7DA01AEEDB1 /* PSAlarm.m */,
+				E1BF6E9003C928D200050002 /* PSTimer.h */,
+				E1BF6E9103C928D200050002 /* PSTimer.m */,
+			);
+			name = Alarms;
+			sourceTree = "<group>";
+		};
+		F560E313035787ED01A4E466 /* Utilities */ = {
+			isa = PBXGroup;
+			children = (
+				E1E9A33D03C8EF6800050002 /* SpeechUtilities */,
+				F59E47A6036AA5FC016B311C /* BDAlias */,
+				E1DEF116040014EB00050002 /* PSTimeDateEditor.h */,
+				E1DEF117040014EB00050002 /* PSTimeDateEditor.m */,
+				E1ECA00603C002B300F54C66 /* PSError.h */,
+				E1ECA00703C002B300F54C66 /* PSError.m */,
+				E1A18CB203B439CF00000028 /* PSPropertyListSerialization.h */,
+				E130B9AC03B7C59700000028 /* PSPowerManager.h */,
+				E130B9AD03B7C59700000028 /* PSPowerManager.m */,
+				F59DC6E90353F58B01AEEDB1 /* NJRIntegerFilter.h */,
+				F59DC6E80353F58B01AEEDB1 /* NJRIntegerFilter.m */,
+				F59DC6FC0354188F01AEEDB1 /* NJRDateFormatter.h */,
+				F59DC6FD0354188F01AEEDB1 /* NJRDateFormatter.m */,
+				E11373140439FCC700050002 /* NJRHotKey.h */,
+				E11373150439FCC700050002 /* NJRHotKey.m */,
+				E145383E043A1DB200050002 /* NJRHotKeyManager.h */,
+				E145383F043A1DB200050002 /* NJRHotKeyManager.m */,
+				E18DAAEA0442CC3E00050002 /* NJRSoundManager.h */,
+				E18DAAEB0442CC3E00050002 /* NJRSoundManager.m */,
+				E1CDEC3D0444053F00AEEDB1 /* NJRNonCenteringWindow.h */,
+				E1CDEC3E0444053F00AEEDB1 /* NJRNonCenteringWindow.m */,
+			);
+			name = Utilities;
+			sourceTree = "<group>";
+		};
+		F560E314035787F901A4E466 /* Views */ = {
+			isa = PBXGroup;
+			children = (
+				E17F2F4C03FDF67D00050002 /* OACalendarView */,
+				E1D358B903C60CE900C8A18E /* NJRCenteringMovieView.h */,
+				E1D358BA03C60CE900C8A18E /* NJRCenteringMovieView.m */,
+				E1F0B14A03AD8CEF00AEFBE0 /* NJRUnfocusableMovieView.h */,
+				E1F0B14B03AD8CEF00AEFBE0 /* NJRUnfocusableMovieView.m */,
+				F5B79837035F64F80136A8DD /* NJRTableView.h */,
+				F5B79836035F64F80136A8DD /* NJRTableView.m */,
+				F552A8AB0358E8B201AEEDB1 /* NJRScrollView.h */,
+				F552A8AC0358E8B201AEEDB1 /* NJRScrollView.m */,
+				E1B46FE804057E3400050002 /* NJRSplitView.h */,
+				E1B46FE904057E3400050002 /* NJRSplitView.m */,
+				F560E3150357895001A4E466 /* NJRHistoryTrackingComboBox.h */,
+				F560E3160357895001A4E466 /* NJRHistoryTrackingComboBox.m */,
+				E1F993C10436280200050002 /* NJRHotKeyField.h */,
+				E1F993C20436280200050002 /* NJRHotKeyField.m */,
+				E14DEC820438969400050002 /* NJRHotKeyFieldCell.h */,
+				E14DEC830438969400050002 /* NJRHotKeyFieldCell.m */,
+				E13919E203B9E4E100000028 /* NJRIntervalField.h */,
+				E13919E303B9E4E100000028 /* NJRIntervalField.m */,
+				F5F240B6036A862101FE7503 /* NJRFSObjectSelector.h */,
+				F5F240B5036A862101FE7503 /* NJRFSObjectSelector.m */,
+				F5F240CD036A877301FE7503 /* NJRQTMediaPopUpButton.h */,
+				F5F240CC036A877301FE7503 /* NJRQTMediaPopUpButton.m */,
+				F5F19871036B822E01EB0372 /* NJRVoicePopUpButton.h */,
+				F5F19870036B822E01EB0372 /* NJRVoicePopUpButton.m */,
+			);
+			name = Views;
+			sourceTree = "<group>";
+		};
+		F59E47A6036AA5FC016B311C /* BDAlias */ = {
+			isa = PBXGroup;
+			children = (
+				F5F240B9036A867901FE7503 /* BDAlias.h */,
+				F5F240CA036A869401FE7503 /* BDAlias.m */,
+			);
+			name = BDAlias;
+			sourceTree = "<group>";
+		};
+		F59E47AF036AAC31016B311C /* Alerts */ = {
+			isa = PBXGroup;
+			children = (
+				E1A18CAB03B4344C00000028 /* PSAlerts.h */,
+				E1A18CAC03B4344C00000028 /* PSAlerts.m */,
+				F59E47A8036AAA6D016B311C /* PSAlert.h */,
+				F59E47A7036AAA6D016B311C /* PSAlert.m */,
+				F59E47B9036AB217016B311C /* PSDockBounceAlert.h */,
+				F59E47B8036AB217016B311C /* PSDockBounceAlert.m */,
+				F59E4BE7036B2E5E016B311C /* PSScriptAlert.h */,
+				F59E4BE6036B2E5E016B311C /* PSScriptAlert.m */,
+				F59E47B1036AACD1016B311C /* PSNotifierAlert.h */,
+				F59E47B0036AACD1016B311C /* PSNotifierAlert.m */,
+				E18DA4080442C56D00050002 /* PSMediaAlert.h */,
+				E18DA4090442C56D00050002 /* PSMediaAlert.m */,
+				F59E47AC036AAC1E016B311C /* PSBeepAlert.h */,
+				F59E47AB036AAC1E016B311C /* PSBeepAlert.m */,
+				F59E47BD036AB228016B311C /* PSMovieAlert.h */,
+				F59E47BC036AB228016B311C /* PSMovieAlert.m */,
+				F5F1986D036B813101EB0372 /* PSSpeechAlert.h */,
+				F5F1986C036B813101EB0372 /* PSSpeechAlert.m */,
+				E19FD39E03C98645001509F3 /* PSWakeAlert.h */,
+				E19FD39F03C98645001509F3 /* PSWakeAlert.m */,
+			);
+			name = Alerts;
+			sourceTree = "<group>";
+		};
+/* End PBXGroup section */
+
+/* Begin PBXNativeTarget section */
+		E1B11EE30CF5F30F004975AA /* Pester */ = {
+			isa = PBXNativeTarget;
+			buildConfigurationList = E1B11F870CF5F30F004975AA /* Build configuration list for PBXNativeTarget "Pester" */;
+			buildPhases = (
+				E1B11F3F0CF5F30F004975AA /* Sources */,
+				E1B11F260CF5F30F004975AA /* Resources */,
+				E1B11F7E0CF5F30F004975AA /* Frameworks */,
+				E1B11F860CF5F30F004975AA /* ShellScript */,
+			);
+			buildRules = (
+			);
+			dependencies = (
+			);
+			name = Pester;
+			productInstallPath = /;
+			productName = Pester;
+			productReference = E1B11F8C0CF5F30F004975AA /* Pester.app */;
+			productType = "com.apple.product-type.application";
+		};
+/* End PBXNativeTarget section */
+
+/* Begin PBXProject section */
+		29B97313FDCFA39411CA2CEA /* Project object */ = {
+			isa = PBXProject;
+			buildConfigurationList = E1B11EDA0CF5F2EB004975AA /* Build configuration list for PBXProject "Pester" */;
+			compatibilityVersion = "Xcode 2.4";
+			hasScannedForEncodings = 1;
+			mainGroup = 29B97314FDCFA39411CA2CEA /* Pester */;
+			projectDirPath = "";
+			projectRoot = "";
+			targets = (
+				E1B11EE30CF5F30F004975AA /* Pester */,
+			);
+		};
+/* End PBXProject section */
+
+/* Begin PBXResourcesBuildPhase section */
+		E1B11F260CF5F30F004975AA /* Resources */ = {
+			isa = PBXResourcesBuildPhase;
+			buildActionMask = 2147483647;
+			files = (
+				E1B11F270CF5F30F004975AA /* Notifier.nib in Resources */,
+				E1B11F280CF5F30F004975AA /* Application icon.icns in Resources */,
+				E1B11F290CF5F30F004975AA /* Alarms.nib in Resources */,
+				E1B11F2A0CF5F30F004975AA /* MainMenu.nib in Resources */,
+				E1B11F2B0CF5F30F004975AA /* InfoPlist.strings in Resources */,
+				E1B11F2C0CF5F30F004975AA /* Credits.html in Resources */,
+				E1B11F2D0CF5F30F004975AA /* Read Me.rtfd in Resources */,
+				E1B11F2E0CF5F30F004975AA /* Movie alert.nib in Resources */,
+				E1B11F2F0CF5F30F004975AA /* Popup triangle.tiff in Resources */,
+				E1B11F300CF5F30F004975AA /* Calendar.nib in Resources */,
+				E1B11F310CF5F30F004975AA /* Calendar.tiff in Resources */,
+				E1B11F320CF5F30F004975AA /* OARightArrowPressed.tiff in Resources */,
+				E1B11F330CF5F30F004975AA /* OALeftArrow.tiff in Resources */,
+				E1B11F340CF5F30F004975AA /* OARightArrow.tiff in Resources */,
+				E1B11F350CF5F30F004975AA /* OALeftArrowPressed.tiff in Resources */,
+				E1B11F360CF5F30F004975AA /* Snooze until.nib in Resources */,
+				E1B11F370CF5F30F004975AA /* Read Me.nib in Resources */,
+				E1B11F380CF5F30F004975AA /* Localizable.strings in Resources */,
+				E1B11F390CF5F30F004975AA /* Preferences.nib in Resources */,
+				E1B11F3A0CF5F30F004975AA /* Volume 2.png in Resources */,
+				E1B11F3B0CF5F30F004975AA /* Volume 0.png in Resources */,
+				E1B11F3C0CF5F30F004975AA /* Volume 3.png in Resources */,
+				E1B11F3D0CF5F30F004975AA /* Volume 1.png in Resources */,
+				E1B11F3E0CF5F30F004975AA /* Volume.nib in Resources */,
+			);
+			runOnlyForDeploymentPostprocessing = 0;
+		};
+/* End PBXResourcesBuildPhase section */
+
+/* Begin PBXShellScriptBuildPhase section */
+		E1B11F860CF5F30F004975AA /* ShellScript */ = {
+			isa = PBXShellScriptBuildPhase;
+			buildActionMask = 2147483647;
+			files = (
+			);
+			runOnlyForDeploymentPostprocessing = 0;
+			shellPath = /bin/sh;
+			shellScript = "/usr/bin/agvtool mvers -terse1 >| ${SRCROOT}/VERSION";
+		};
+/* End PBXShellScriptBuildPhase section */
+
+/* Begin PBXSourcesBuildPhase section */
+		E1B11F3F0CF5F30F004975AA /* Sources */ = {
+			isa = PBXSourcesBuildPhase;
+			buildActionMask = 2147483647;
+			files = (
+				E1B11F400CF5F30F004975AA /* BDAlias.m in Sources */,
+				E1B11F410CF5F30F004975AA /* NJRDateFormatter.m in Sources */,
+				E1B11F420CF5F30F004975AA /* NJRFSObjectSelector.m in Sources */,
+				E1B11F430CF5F30F004975AA /* NJRHistoryTrackingComboBox.m in Sources */,
+				E1B11F440CF5F30F004975AA /* NJRIntegerFilter.m in Sources */,
+				E1B11F450CF5F30F004975AA /* NJRQTMediaPopUpButton.m in Sources */,
+				E1B11F460CF5F30F004975AA /* NJRScrollView.m in Sources */,
+				E1B11F470CF5F30F004975AA /* NJRTableDelegate.m in Sources */,
+				E1B11F480CF5F30F004975AA /* NJRTableView.m in Sources */,
+				E1B11F490CF5F30F004975AA /* NJRUnfocusableMovieView.m in Sources */,
+				E1B11F4A0CF5F30F004975AA /* NJRVoicePopUpButton.m in Sources */,
+				E1B11F4B0CF5F30F004975AA /* NSAttributedString-NJRExtensions.m in Sources */,
+				E1B11F4C0CF5F30F004975AA /* NSCalendarDate-NJRExtensions.m in Sources */,
+				E1B11F4D0CF5F30F004975AA /* NSCharacterSet-NJRExtensions.m in Sources */,
+				E1B11F4E0CF5F30F004975AA /* NSDictionary-NJRExtensions.m in Sources */,
+				E1B11F500CF5F30F004975AA /* NSMovie-NJRExtensions.m in Sources */,
+				E1B11F510CF5F30F004975AA /* NSString-NJRExtensions.m in Sources */,
+				E1B11F520CF5F30F004975AA /* NSTableView-NJRExtensions.m in Sources */,
+				E1B11F530CF5F30F004975AA /* PSAlarm.m in Sources */,
+				E1B11F540CF5F30F004975AA /* PSAlarmAlertController.m in Sources */,
+				E1B11F550CF5F30F004975AA /* PSAlarmNotifierController.m in Sources */,
+				E1B11F560CF5F30F004975AA /* PSAlarmSetController.m in Sources */,
+				E1B11F570CF5F30F004975AA /* PSAlarms.m in Sources */,
+				E1B11F580CF5F30F004975AA /* PSAlarmsController.m in Sources */,
+				E1B11F590CF5F30F004975AA /* PSAlert.m in Sources */,
+				E1B11F5A0CF5F30F004975AA /* PSAlerts.m in Sources */,
+				E1B11F5B0CF5F30F004975AA /* PSApplication.m in Sources */,
+				E1B11F5C0CF5F30F004975AA /* PSBeepAlert.m in Sources */,
+				E1B11F5D0CF5F30F004975AA /* PSDockBounceAlert.m in Sources */,
+				E1B11F5E0CF5F30F004975AA /* PSMovieAlert.m in Sources */,
+				E1B11F5F0CF5F30F004975AA /* PSMovieAlertController.m in Sources */,
+				E1B11F600CF5F30F004975AA /* PSNotifierAlert.m in Sources */,
+				E1B11F610CF5F30F004975AA /* PSPowerManager.m in Sources */,
+				E1B11F620CF5F30F004975AA /* PSScriptAlert.m in Sources */,
+				E1B11F630CF5F30F004975AA /* PSSpeechAlert.m in Sources */,
+				E1B11F640CF5F30F004975AA /* main.m in Sources */,
+				E1B11F650CF5F30F004975AA /* NJRIntervalField.m in Sources */,
+				E1B11F660CF5F30F004975AA /* PSError.m in Sources */,
+				E1B11F670CF5F30F004975AA /* NJRCenteringMovieView.m in Sources */,
+				E1B11F680CF5F30F004975AA /* SUSpeaker.m in Sources */,
+				E1B11F690CF5F30F004975AA /* PSTimer.m in Sources */,
+				E1B11F6A0CF5F30F004975AA /* PSWakeAlert.m in Sources */,
+				E1B11F6B0CF5F30F004975AA /* PSCalendarController.m in Sources */,
+				E1B11F6C0CF5F30F004975AA /* OACalendarView.m in Sources */,
+				E1B11F6D0CF5F30F004975AA /* NSImage-OAExtensions.m in Sources */,
+				E1B11F6E0CF5F30F004975AA /* NSCalendarDate-OFExtensions.m in Sources */,
+				E1B11F6F0CF5F30F004975AA /* NJROffCenterPanel.m in Sources */,
+				E1B11F700CF5F30F004975AA /* PSSnoozeUntilController.m in Sources */,
+				E1B11F710CF5F30F004975AA /* PSTimeDateEditor.m in Sources */,
+				E1B11F720CF5F30F004975AA /* NJRReadMeController.m in Sources */,
+				E1B11F730CF5F30F004975AA /* NJRSplitView.m in Sources */,
+				E1B11F740CF5F30F004975AA /* NJRHotKeyField.m in Sources */,
+				E1B11F750CF5F30F004975AA /* PSPreferencesController.m in Sources */,
+				E1B11F760CF5F30F004975AA /* NSFont-NJRExtensions.m in Sources */,
+				E1B11F770CF5F30F004975AA /* NJRHotKeyFieldCell.m in Sources */,
+				E1B11F780CF5F30F004975AA /* NJRHotKey.m in Sources */,
+				E1B11F790CF5F30F004975AA /* NJRHotKeyManager.m in Sources */,
+				E1B11F7A0CF5F30F004975AA /* PSVolumeController.m in Sources */,
+				E1B11F7B0CF5F30F004975AA /* PSMediaAlert.m in Sources */,
+				E1B11F7C0CF5F30F004975AA /* NJRSoundManager.m in Sources */,
+				E1B11F7D0CF5F30F004975AA /* NJRNonCenteringWindow.m in Sources */,
+				E1B121970CF62FD1004975AA /* NSMenuItem-NJRExtensions.m in Sources */,
+				E1B1219E0CF63858004975AA /* NSImage-NJRExtensions.m in Sources */,
+			);
+			runOnlyForDeploymentPostprocessing = 0;
+		};
+/* End PBXSourcesBuildPhase section */
+
+/* Begin PBXVariantGroup section */
+		089C165CFE840E0CC02AAC07 /* InfoPlist.strings */ = {
+			isa = PBXVariantGroup;
+			children = (
+				089C165DFE840E0CC02AAC07 /* English */,
+			);
+			name = InfoPlist.strings;
+			sourceTree = "<group>";
+		};
+		29B97318FDCFA39411CA2CEA /* MainMenu.nib */ = {
+			isa = PBXVariantGroup;
+			children = (
+				29B97319FDCFA39411CA2CEA /* English */,
+			);
+			name = MainMenu.nib;
+			sourceTree = "<group>";
+		};
+		E10E71F3040C335800050002 /* Localizable.strings */ = {
+			isa = PBXVariantGroup;
+			children = (
+				E10E71F4040C335800050002 /* English */,
+			);
+			name = Localizable.strings;
+			sourceTree = "<group>";
+		};
+		E10F2A3B0402E61C00050002 /* Read Me.nib */ = {
+			isa = PBXVariantGroup;
+			children = (
+				E10F2A3C0402E61C00050002 /* English */,
+			);
+			name = "Read Me.nib";
+			sourceTree = "<group>";
+		};
+		E11CB6E0043025F500050002 /* Preferences.nib */ = {
+			isa = PBXVariantGroup;
+			children = (
+				E11CB6E1043025F500050002 /* English */,
+			);
+			name = Preferences.nib;
+			sourceTree = "<group>";
+		};
+		E12790090442A5B100050002 /* Volume.nib */ = {
+			isa = PBXVariantGroup;
+			children = (
+				E127900A0442A5B100050002 /* Volume.nib */,
+			);
+			name = Volume.nib;
+			sourceTree = "<group>";
+		};
+		E17F2F4D03FDFB3100050002 /* Calendar.nib */ = {
+			isa = PBXVariantGroup;
+			children = (
+				E17F2F4E03FDFB3100050002 /* English */,
+			);
+			name = Calendar.nib;
+			sourceTree = "<group>";
+		};
+		E1DEF10603FF83AC00050002 /* Snooze until.nib */ = {
+			isa = PBXVariantGroup;
+			children = (
+				E1DEF10703FF83AC00050002 /* English */,
+			);
+			name = "Snooze until.nib";
+			sourceTree = "<group>";
+		};
+		F560E2EE03574F8A01A4E466 /* Alarms.nib */ = {
+			isa = PBXVariantGroup;
+			children = (
+				F560E2EF03574F8A01A4E466 /* English */,
+			);
+			name = Alarms.nib;
+			sourceTree = "<group>";
+		};
+		F59DC6DF0353DF5E01AEEDB1 /* Notifier.nib */ = {
+			isa = PBXVariantGroup;
+			children = (
+				F59DC6E00353DF5E01AEEDB1 /* English */,
+			);
+			name = Notifier.nib;
+			sourceTree = "<group>";
+		};
+		F59DD44F0358ABF4017318D0 /* Credits.html */ = {
+			isa = PBXVariantGroup;
+			children = (
+				F59DD4500358ABF4017318D0 /* English */,
+			);
+			name = Credits.html;
+			sourceTree = "<group>";
+		};
+		F59E4BDE036B1D94016B311C /* Movie alert.nib */ = {
+			isa = PBXVariantGroup;
+			children = (
+				F59E4BDF036B1D94016B311C /* English */,
+			);
+			name = "Movie alert.nib";
+			sourceTree = "<group>";
+		};
+/* End PBXVariantGroup section */
+
+/* Begin XCBuildConfiguration section */
+		E1B11ED40CF5F2EB004975AA /* Development */ = {
+			isa = XCBuildConfiguration;
+			buildSettings = {
+				GCC_C_LANGUAGE_STANDARD = c99;
+				SDKROOT = /Developer/SDKs/MacOSX10.4u.sdk;
+			};
+			name = Development;
+		};
+		E1B11ED50CF5F2EB004975AA /* Deployment */ = {
+			isa = XCBuildConfiguration;
+			buildSettings = {
+				GCC_C_LANGUAGE_STANDARD = c99;
+				SDKROOT = /Developer/SDKs/MacOSX10.4u.sdk;
+			};
+			name = Deployment;
+		};
+		E1B11F880CF5F30F004975AA /* Development */ = {
+			isa = XCBuildConfiguration;
+			buildSettings = {
+				COPY_PHASE_STRIP = NO;
+				CURRENT_PROJECT_VERSION = 17;
+				FRAMEWORK_SEARCH_PATHS = "\"$(SYSTEM_LIBRARY_DIR)/PrivateFrameworks\"";
+				GCC_DYNAMIC_NO_PIC = NO;
+				GCC_ENABLE_FIX_AND_CONTINUE = YES;
+				GCC_GENERATE_DEBUGGING_SYMBOLS = YES;
+				GCC_OPTIMIZATION_LEVEL = 0;
+				GCC_PRECOMPILE_PREFIX_HEADER = YES;
+				GCC_PREFIX_HEADER = Pester_Prefix.h;
+				GCC_PREPROCESSOR_DEFINITIONS = NDEBUG;
+				GCC_SYMBOLS_PRIVATE_EXTERN = NO;
+				GCC_USE_GCC3_PFE_SUPPORT = YES;
+				INFOPLIST_FILE = "Info-Pester.plist";
+				INSTALL_PATH = /;
+				PRODUCT_NAME = Pester;
+				PRODUCT_VERSION = 1.1a4;
+				VERSIONING_SYSTEM = "apple-generic";
+				WARNING_CFLAGS = (
+					"-Wmost",
+					"-Wno-four-char-constants",
+					"-Wno-unknown-pragmas",
+				);
+			};
+			name = Development;
+		};
+		E1B11F890CF5F30F004975AA /* Deployment */ = {
+			isa = XCBuildConfiguration;
+			buildSettings = {
+				COPY_PHASE_STRIP = YES;
+				CURRENT_PROJECT_VERSION = 17;
+				FRAMEWORK_SEARCH_PATHS = "\"$(SYSTEM_LIBRARY_DIR)/PrivateFrameworks\"";
+				GCC_ENABLE_FIX_AND_CONTINUE = NO;
+				GCC_PRECOMPILE_PREFIX_HEADER = YES;
+				GCC_PREFIX_HEADER = Pester_Prefix.h;
+				GCC_PREPROCESSOR_DEFINITIONS = NDEBUG;
+				GCC_SYMBOLS_PRIVATE_EXTERN = NO;
+				GCC_USE_GCC3_PFE_SUPPORT = YES;
+				INFOPLIST_FILE = "Info-Pester.plist";
+				INSTALL_PATH = /;
+				PRODUCT_NAME = Pester;
+				PRODUCT_VERSION = 1.1a4;
+				VERSIONING_SYSTEM = "apple-generic";
+				WARNING_CFLAGS = (
+					"-Wmost",
+					"-Wno-four-char-constants",
+					"-Wno-unknown-pragmas",
+				);
+			};
+			name = Deployment;
+		};
+/* End XCBuildConfiguration section */
+
+/* Begin XCConfigurationList section */
+		E1B11EDA0CF5F2EB004975AA /* Build configuration list for PBXProject "Pester" */ = {
+			isa = XCConfigurationList;
+			buildConfigurations = (
+				E1B11ED40CF5F2EB004975AA /* Development */,
+				E1B11ED50CF5F2EB004975AA /* Deployment */,
+			);
+			defaultConfigurationIsVisible = 0;
+			defaultConfigurationName = Development;
+		};
+		E1B11F870CF5F30F004975AA /* Build configuration list for PBXNativeTarget "Pester" */ = {
+			isa = XCConfigurationList;
+			buildConfigurations = (
+				E1B11F880CF5F30F004975AA /* Development */,
+				E1B11F890CF5F30F004975AA /* Deployment */,
+			);
+			defaultConfigurationIsVisible = 0;
+			defaultConfigurationName = Development;
+		};
+/* End XCConfigurationList section */
+	};
+	rootObject = 29B97313FDCFA39411CA2CEA /* Project object */;
+}
Index: trunk/Cocoa/Pester/Source/SoundFileManager.h
===================================================================
--- trunk/Cocoa/Pester/Source/SoundFileManager.h	(revision 348)
+++ 	(revision )
@@ -1,56 +1,0 @@
-/*
- *     Generated by class-dump (version 2.1.5).
- *
- *     class-dump is Copyright (C) 1997, 1999, 2000, 2001 by Steve Nygard.
- */
-
-/*
- * File: /Volumes/Mac OS X/System/Library/PrivateFrameworks/MachineSettings.framework/Versions/A/MachineSettings
- */
-
-// Note: dumped from Mac OS X 10.1.5; Mac OS X 10.2.1's SoundFileManager is identical.
-
-@class SoundFile;
-
-@interface SoundFileManager
-{
-    NSMutableArray *_soundFiles;
-    NSFileManager *_fileManager;
-}
-
-+ (void)initialize;
-+ (SoundFileManager *)sharedSoundFileManager;
-- (id)init;
-- (void)dealloc;
-- (void)findSoundFiles;
-- (void)addSoundFilesFromDirectory:(NSString *)directory asType:(int)type;
-- (void)sortByType;
-- (void)sortByName;
-- (SoundFile *)soundFileAtIndex:(int)index;
-- (int)count;
-- (int)indexOfSoundFile:index;
-- (SoundFile *)soundFileFromPath:(NSString *)path;
-- (SoundFile *)soundFileWithName:(NSString *)name type:(int)type;
-
-@end
-
-@interface SoundFile
-{
-    int _type;
-    NSString *_name;
-}
-
-- (id)initWithName:(NSString *)name type:(int)type;
-- (void)dealloc;
-- (int)type;
-- (NSString *)name;
-- (NSString *)path;
-- (NSString *)pathWithoutExtension;
-- (void)setType:(int)type;
-- (void)setName:(NSString *)name;
-- (int)compareName:(SoundFile *)other;
-- (int)compareType:(SoundFile *)other;
-- (int)compareNameThenType:(SoundFile *)other;
-- (int)compareTypeThenName:(SoundFile *)other;
-
-@end
